# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2016, Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: ../Doc/library/zipapp.rst:2
msgid ":mod:`zipapp` --- Manage executable python zip archives"
msgstr ""

#: ../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 "
"<using-on-interface-options>`.  The module provides both a :ref:`zipapp-"
"command-line-interface` and a :ref:`zipapp-python-api`."
msgstr ""

#: ../Doc/library/zipapp.rst:23
msgid "Basic Example"
msgstr ""

#: ../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 ""

#: ../Doc/library/zipapp.rst:40
msgid "Command-Line Interface"
msgstr ""

#: ../Doc/library/zipapp.rst:42
msgid ""
"When called as a program from the command line, the following form is used:"
msgstr ""

#: ../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 ""

#: ../Doc/library/zipapp.rst:53
msgid "The following options are understood:"
msgstr ""

#: ../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 ""

#: ../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 ""

#: ../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 ""

#: ../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 ""

#: ../Doc/library/zipapp.rst:80
msgid ":option:`--main` cannot be specified when copying an archive."
msgstr ""

#: ../Doc/library/zipapp.rst:84
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 ""

#: ../Doc/library/zipapp.rst:90
msgid "Print a short usage message and exit."
msgstr ""

#: ../Doc/library/zipapp.rst:96
msgid "Python API"
msgstr "API Python"

#: ../Doc/library/zipapp.rst:98
msgid "The module defines two convenience functions:"
msgstr ""

#: ../Doc/library/zipapp.rst:103
msgid ""
"Create an application archive from *source*.  The source can be any of the "
"following:"
msgstr ""

#: ../Doc/library/zipapp.rst:106
msgid ""
"The name of a directory, or a :class:`pathlib.Path` object referring to a "
"directory, in which case a new application archive will be created from the "
"content of that directory."
msgstr ""

#: ../Doc/library/zipapp.rst:109
msgid ""
"The name of an existing application archive file, or a :class:`pathlib.Path` "
"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 ""

#: ../Doc/library/zipapp.rst:113
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 ""

#: ../Doc/library/zipapp.rst:117
msgid ""
"The *target* argument determines where the resulting archive will be written:"
msgstr ""

#: ../Doc/library/zipapp.rst:120
msgid ""
"If it is the name of a file, or a :class:`pathlb.Path` object, the archive "
"will be written to that file."
msgstr ""

#: ../Doc/library/zipapp.rst:122
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 ""

#: ../Doc/library/zipapp.rst:124
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 ""

#: ../Doc/library/zipapp.rst:128
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 ""

#: ../Doc/library/zipapp.rst:136
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 ""

#: ../Doc/library/zipapp.rst:146
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 ""

#: ../Doc/library/zipapp.rst:149
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 ""

#: ../Doc/library/zipapp.rst:157
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 ""

#: ../Doc/library/zipapp.rst:166
msgid "Examples"
msgstr "Exemples"

#: ../Doc/library/zipapp.rst:168
msgid "Pack up a directory into an archive, and run it."
msgstr ""

#: ../Doc/library/zipapp.rst:176
msgid "The same can be done using the :func:`create_archive` functon::"
msgstr ""

#: ../Doc/library/zipapp.rst:181
msgid ""
"To make the application directly executable on POSIX, specify an interpreter "
"to use."
msgstr ""

#: ../Doc/library/zipapp.rst:190
msgid ""
"To replace the shebang line on an existing archive, create a modified "
"archive using the :func:`create_archive` function::"
msgstr ""

#: ../Doc/library/zipapp.rst:196
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 ""

#: ../Doc/library/zipapp.rst:214
msgid "Specifying the Interpreter"
msgstr ""

#: ../Doc/library/zipapp.rst:216
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 ""

#: ../Doc/library/zipapp.rst:221
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 ""

#: ../Doc/library/zipapp.rst:225
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 ""

#: ../Doc/library/zipapp.rst:228
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 ""

#: ../Doc/library/zipapp.rst:232
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 ""

#: ../Doc/library/zipapp.rst:237
msgid "Creating Standalone Applications with zipapp"
msgstr ""

#: ../Doc/library/zipapp.rst:239
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 ""

#: ../Doc/library/zipapp.rst:245
msgid "The steps to create a standalone archive are as follows:"
msgstr ""

#: ../Doc/library/zipapp.rst:247
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 ""

#: ../Doc/library/zipapp.rst:251
msgid ""
"Install all of your application's dependencies into the ``myapp`` directory, "
"using pip:"
msgstr ""

#: ../Doc/library/zipapp.rst:258
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 ""

#: ../Doc/library/zipapp.rst:262
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 ""

#: ../Doc/library/zipapp.rst:267
msgid "Package the application using:"
msgstr ""

#: ../Doc/library/zipapp.rst:273
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 ""

#: ../Doc/library/zipapp.rst:277
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 ""

#: ../Doc/library/zipapp.rst:285
msgid "Making a Windows executable"
msgstr ""

#: ../Doc/library/zipapp.rst:287
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 ""

#: ../Doc/library/zipapp.rst:293
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 ""

#: ../Doc/library/zipapp.rst:300
msgid "A suitable launcher can be as simple as the following::"
msgstr ""

#: ../Doc/library/zipapp.rst:325
msgid ""
"If you define the ``WINDOWS`` preprocessor symbol, this will generate a GUI "
"executable, and without it, a console executable."
msgstr ""

#: ../Doc/library/zipapp.rst:328
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 ""

#: ../Doc/library/zipapp.rst:355
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 ""

#: ../Doc/library/zipapp.rst:359
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 ""

#: ../Doc/library/zipapp.rst:365
msgid "Caveats"
msgstr ""

#: ../Doc/library/zipapp.rst:367
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 ""

#: ../Doc/library/zipapp.rst:371
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 ""

#: ../Doc/library/zipapp.rst:381
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 ""

#: ../Doc/library/zipapp.rst:386
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 ""

#: ../Doc/library/zipapp.rst:396
msgid "The Python Zip Application Archive Format"
msgstr ""

#: ../Doc/library/zipapp.rst:398
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 ""

#: ../Doc/library/zipapp.rst:405
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 ""

#: ../Doc/library/zipapp.rst:409
msgid "Formally, the Python zip application format is therefore:"
msgstr ""

#: ../Doc/library/zipapp.rst:411
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 ""

#: ../Doc/library/zipapp.rst:416
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 ""

#: ../Doc/library/zipapp.rst:421
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 ""

#: ../Doc/library/zipapp.rst:424
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 ""
