# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2016, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # #, fuzzy 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: LANGUAGE \n" "Language: \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." msgstr "" #: ../Doc/library/signal.rst:21 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:28 msgid "Execution of Python signal handlers" msgstr "" #: ../Doc/library/signal.rst:30 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:36 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:43 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:53 msgid "Signals and threads" msgstr "" #: ../Doc/library/signal.rst:55 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:60 msgid "Besides, only the main thread is allowed to set a new signal handler." msgstr "" #: ../Doc/library/signal.rst:64 msgid "Module contents" msgstr "" #: ../Doc/library/signal.rst:66 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:76 msgid "The variables defined in the :mod:`signal` module are:" msgstr "" #: ../Doc/library/signal.rst:81 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:89 msgid "" "This is another standard signal handler, which will simply ignore the given " "signal." msgstr "" #: ../Doc/library/signal.rst:95 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:106 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:109 ../Doc/library/signal.rst:119 msgid "Availability: Windows." msgstr "Disponibilité : Windows." #: ../Doc/library/signal.rst:116 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:126 msgid "One more than the number of the highest signal number." msgstr "" #: ../Doc/library/signal.rst:131 msgid "" "Decrements interval timer in real time, and delivers :const:`SIGALRM` upon " "expiration." msgstr "" #: ../Doc/library/signal.rst:137 msgid "" "Decrements interval timer only when the process is executing, and delivers " "SIGVTALRM upon expiration." msgstr "" #: ../Doc/library/signal.rst:143 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:151 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that signals are to be blocked." msgstr "" #: ../Doc/library/signal.rst:158 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that signals are to be unblocked." msgstr "" #: ../Doc/library/signal.rst:165 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:171 msgid "The :mod:`signal` module defines one exception:" msgstr "" #: ../Doc/library/signal.rst:175 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:180 msgid "" "This error used to be a subtype of :exc:`IOError`, which is now an alias of :" "exc:`OSError`." msgstr "" #: ../Doc/library/signal.rst:185 msgid "The :mod:`signal` module defines the following functions:" msgstr "" #: ../Doc/library/signal.rst:190 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)`.) Availability: Unix." msgstr "" #: ../Doc/library/signal.rst:201 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:212 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:216 msgid "" "See also :func:`sigwait`, :func:`sigwaitinfo`, :func:`sigtimedwait` and :" "func:`sigpending`." msgstr "" #: ../Doc/library/signal.rst:222 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:230 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:234 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:237 msgid "" "Availability: Unix (see the man page :manpage:`pthread_kill(3)` for further " "information)." msgstr "" #: ../Doc/library/signal.rst:240 msgid "See also :func:`os.kill`." msgstr "" #: ../Doc/library/signal.rst:247 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:251 msgid "" "The behavior of the call is dependent on the value of *how*, as follows." msgstr "" #: ../Doc/library/signal.rst:253 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:255 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:258 msgid "" ":data:`SIG_SETMASK`: The set of blocked signals is set to the *mask* " "argument." msgstr "" #: ../Doc/library/signal.rst:261 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:265 msgid "" "For example, ``signal.pthread_sigmask(signal.SIG_BLOCK, [])`` reads the " "signal mask of the calling thread." msgstr "" #: ../Doc/library/signal.rst:268 msgid "" "Availability: Unix. See the man page :manpage:`sigprocmask(3)` and :manpage:" "`pthread_sigmask(3)` for further information." msgstr "" #: ../Doc/library/signal.rst:271 msgid "See also :func:`pause`, :func:`sigpending` and :func:`sigwait`." msgstr "" #: ../Doc/library/signal.rst:278 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. The interval timer specified by " "*which* can be cleared by setting seconds to zero." msgstr "" #: ../Doc/library/signal.rst:284 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:290 msgid "The old values are returned as a tuple: (delay, interval)." msgstr "" #: ../Doc/library/signal.rst:292 msgid "" "Attempting to pass an invalid interval timer will cause an :exc:" "`ItimerError`. Availability: Unix." msgstr "" #: ../Doc/library/signal.rst:298 msgid "" "Returns current value of a given interval timer specified by *which*. " "Availability: Unix." msgstr "" #: ../Doc/library/signal.rst:304 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:309 msgid "" "The old wakeup fd is returned. *fd* must be non-blocking. It is up to the " "library to remove any bytes before calling poll or select again." msgstr "" #: ../Doc/library/signal.rst:312 msgid "" "Use for example ``struct.unpack('%uB' % len(data), data)`` to decode the " "signal numbers list." msgstr "" #: ../Doc/library/signal.rst:315 ../Doc/library/signal.rst:343 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:319 msgid "On Windows, the function now also supports socket handles." msgstr "" #: ../Doc/library/signal.rst:325 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. Availability: Unix (see " "the man page :manpage:`siginterrupt(3)` for further information)." msgstr "" #: ../Doc/library/signal.rst:330 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:337 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:347 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:352 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:363 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:367 msgid "" "Availability: Unix (see the man page :manpage:`sigpending(2)` for further " "information)." msgstr "" #: ../Doc/library/signal.rst:370 msgid "See also :func:`pause`, :func:`pthread_sigmask` and :func:`sigwait`." msgstr "" #: ../Doc/library/signal.rst:377 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:381 msgid "" "Availability: Unix (see the man page :manpage:`sigwait(3)` for further " "information)." msgstr "" #: ../Doc/library/signal.rst:384 msgid "" "See also :func:`pause`, :func:`pthread_sigmask`, :func:`sigpending`, :func:" "`sigwaitinfo` and :func:`sigtimedwait`." msgstr "" #: ../Doc/library/signal.rst:392 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:401 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:406 msgid "" "Availability: Unix (see the man page :manpage:`sigwaitinfo(2)` for further " "information)." msgstr "" #: ../Doc/library/signal.rst:409 msgid "See also :func:`pause`, :func:`sigwait` and :func:`sigtimedwait`." msgstr "" #: ../Doc/library/signal.rst:413 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:421 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:425 msgid "" "Availability: Unix (see the man page :manpage:`sigtimedwait(2)` for further " "information)." msgstr "" #: ../Doc/library/signal.rst:428 msgid "See also :func:`pause`, :func:`sigwait` and :func:`sigwaitinfo`." msgstr "" #: ../Doc/library/signal.rst:432 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:441 msgid "Example" msgstr "Exemple" #: ../Doc/library/signal.rst:443 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 ""