# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: # python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-04-11 14:31+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Polish (https://app.transifex.com/python-doc/teams/5390/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && " "(n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && " "n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" msgid "Subprocesses" msgstr "" msgid "" "**Source code:** :source:`Lib/asyncio/subprocess.py`, :source:`Lib/asyncio/" "base_subprocess.py`" msgstr "" "**Kod źródłowy:** :source:`Lib/asyncio/subprocess.py`, :source:`Lib/asyncio/" "base_subprocess.py`" msgid "" "This section describes high-level async/await asyncio APIs to create and " "manage subprocesses." msgstr "" msgid "" "Here's an example of how asyncio can run a shell command and obtain its " "result::" msgstr "" msgid "" "import asyncio\n" "\n" "async def run(cmd):\n" " proc = await asyncio.create_subprocess_shell(\n" " cmd,\n" " stdout=asyncio.subprocess.PIPE,\n" " stderr=asyncio.subprocess.PIPE)\n" "\n" " stdout, stderr = await proc.communicate()\n" "\n" " print(f'[{cmd!r} exited with {proc.returncode}]')\n" " if stdout:\n" " print(f'[stdout]\\n{stdout.decode()}')\n" " if stderr:\n" " print(f'[stderr]\\n{stderr.decode()}')\n" "\n" "asyncio.run(run('ls /zzz'))" msgstr "" msgid "will print::" msgstr "" msgid "" "['ls /zzz' exited with 1]\n" "[stderr]\n" "ls: /zzz: No such file or directory" msgstr "" 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 "" msgid "" "async def main():\n" " await asyncio.gather(\n" " run('ls /zzz'),\n" " run('sleep 1; echo \"hello\"'))\n" "\n" "asyncio.run(main())" msgstr "" msgid "See also the `Examples`_ subsection." msgstr "" msgid "Creating Subprocesses" msgstr "" msgid "Create a subprocess." msgstr "" msgid "" "The *limit* argument sets the buffer limit for :class:`StreamReader` " "wrappers for :attr:`~asyncio.subprocess.Process.stdout` and :attr:`~asyncio." "subprocess.Process.stderr` (if :const:`subprocess.PIPE` is passed to " "*stdout* and *stderr* arguments)." msgstr "" msgid "Return a :class:`~asyncio.subprocess.Process` instance." msgstr "" msgid "" "See the documentation of :meth:`loop.subprocess_exec` for other parameters." msgstr "" msgid "" "If the process object is garbage collected while the process is still " "running, the child process will be killed." msgstr "" msgid "Removed the *loop* parameter." msgstr "" msgid "Run the *cmd* shell command." msgstr "" msgid "" "See the documentation of :meth:`loop.subprocess_shell` for other parameters." msgstr "" 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 "" msgid "" "Subprocesses are available for Windows if a :class:`ProactorEventLoop` is " "used. See :ref:`Subprocess Support on Windows ` " "for details." msgstr "" 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 "" msgid "Constants" msgstr "Stały" msgid "Can be passed to the *stdin*, *stdout* or *stderr* parameters." msgstr "" msgid "" "If *PIPE* is passed to *stdin* argument, the :attr:`Process.stdin ` attribute will point to a :class:`~asyncio." "StreamWriter` instance." msgstr "" msgid "" "If *PIPE* is passed to *stdout* or *stderr* arguments, the :attr:`Process." "stdout ` and :attr:`Process.stderr " "` attributes will point to :class:" "`~asyncio.StreamReader` instances." msgstr "" msgid "" "Special value that can be used as the *stderr* argument and indicates that " "standard error should be redirected into standard output." msgstr "" 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 "" msgid "Interacting with Subprocesses" msgstr "" 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 "" msgid "" "An object that wraps OS processes created by the :func:`~asyncio." "create_subprocess_exec` and :func:`~asyncio.create_subprocess_shell` " "functions." msgstr "" msgid "" "This class is designed to have a similar API to the :class:`subprocess." "Popen` class, but there are some notable differences:" msgstr "" msgid "" "unlike Popen, Process instances do not have an equivalent to the :meth:" "`~subprocess.Popen.poll` method;" msgstr "" msgid "" "the :meth:`~asyncio.subprocess.Process.communicate` and :meth:`~asyncio." "subprocess.Process.wait` methods don't have a *timeout* parameter: use the :" "func:`~asyncio.wait_for` function;" msgstr "" msgid "" "the :meth:`Process.wait() ` method is " "asynchronous, whereas :meth:`subprocess.Popen.wait` method is implemented as " "a blocking busy loop;" msgstr "" msgid "the *universal_newlines* parameter is not supported." msgstr "" msgid "This class is :ref:`not thread safe `." msgstr "" msgid "" "See also the :ref:`Subprocess and Threads ` " "section." msgstr "" msgid "Wait for the child process to terminate." msgstr "" msgid "Set and return the :attr:`returncode` attribute." msgstr "" 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 "" msgid "Interact with process:" msgstr "" msgid "send data to *stdin* (if *input* is not ``None``);" msgstr "" msgid "closes *stdin*;" msgstr "" msgid "read data from *stdout* and *stderr*, until EOF is reached;" msgstr "" msgid "wait for process to terminate." msgstr "" msgid "" "The optional *input* argument is the data (:class:`bytes` object) that will " "be sent to the child process." msgstr "" msgid "Return a tuple ``(stdout_data, stderr_data)``." msgstr "" 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 "" 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 "" 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 "" msgid "*stdin* gets closed when ``input=None`` too." msgstr "" msgid "Sends the signal *signal* to the child process." msgstr "" msgid "" "On Windows, :py:const:`~signal.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 "" msgid "Stop the child process." msgstr "" msgid "" "On POSIX systems this method sends :py:const:`~signal.SIGTERM` to the child " "process." msgstr "" msgid "" "On Windows the Win32 API function :c:func:`!TerminateProcess` is called to " "stop the child process." msgstr "" msgid "Kill the child process." msgstr "" msgid "" "On POSIX systems this method sends :py:data:`~signal.SIGKILL` to the child " "process." msgstr "" msgid "On Windows this method is an alias for :meth:`terminate`." msgstr "" msgid "" "Standard input stream (:class:`~asyncio.StreamWriter`) or ``None`` if the " "process was created with ``stdin=None``." msgstr "" msgid "" "Standard output stream (:class:`~asyncio.StreamReader`) or ``None`` if the " "process was created with ``stdout=None``." msgstr "" msgid "" "Standard error stream (:class:`~asyncio.StreamReader`) or ``None`` if the " "process was created with ``stderr=None``." msgstr "" 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 "" msgid "Process identification number (PID)." msgstr "" msgid "" "Note that for processes created by the :func:`~asyncio." "create_subprocess_shell` function, this attribute is the PID of the spawned " "shell." msgstr "" msgid "Return code of the process when it exits." msgstr "" msgid "A ``None`` value indicates that the process has not terminated yet." msgstr "" msgid "" "For processes created with :func:`~asyncio.create_subprocess_exec`, a " "negative value ``-N`` indicates that the child was terminated by signal " "``N`` (POSIX only)." msgstr "" msgid "" "For processes created with :func:`~asyncio.create_subprocess_shell`, the " "return code reflects the exit status of the shell itself (e.g. ``/bin/sh``), " "which may map signals to codes such as ``128+N``. See the documentation of " "the shell (for example, the Bash manual's Exit Status) for details." msgstr "" msgid "Subprocess and Threads" msgstr "" msgid "" "Standard asyncio event loop supports running subprocesses from different " "threads by default." msgstr "" msgid "" "On Windows subprocesses are provided by :class:`ProactorEventLoop` only " "(default), :class:`SelectorEventLoop` has no subprocess support." msgstr "" msgid "" "Note that alternative event loop implementations might have own limitations; " "please refer to their documentation." msgstr "" msgid "" "The :ref:`Concurrency and multithreading in asyncio ` section." msgstr "" msgid "Examples" msgstr "Przykłady" 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 "" msgid "" "The subprocess is created by the :func:`create_subprocess_exec` function::" msgstr "" msgid "" "import asyncio\n" "import sys\n" "\n" "async def get_date():\n" " code = 'import datetime as dt; print(dt.datetime.now())'\n" "\n" " # Create the subprocess; redirect the standard output\n" " # into a pipe.\n" " proc = await asyncio.create_subprocess_exec(\n" " sys.executable, '-c', code,\n" " stdout=asyncio.subprocess.PIPE)\n" "\n" " # Read one line of output.\n" " data = await proc.stdout.readline()\n" " line = data.decode('ascii').rstrip()\n" "\n" " # Wait for the subprocess exit.\n" " await proc.wait()\n" " return line\n" "\n" "date = asyncio.run(get_date())\n" "print(f\"Current date: {date}\")" msgstr "" msgid "" "See also the :ref:`same example ` written " "using low-level APIs." msgstr ""