From 7bf7457e3382bf7e3405030bb59571a6b452cc03 Mon Sep 17 00:00:00 2001 From: skpanagiotis Date: Sun, 30 Nov 2025 21:46:16 +0200 Subject: [PATCH 01/14] Sync cpython and update makefile --- Makefile | 2 +- cpython | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 15704319..ffcec083 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ # from which we generated our po files. We use it here so when we # test build, we're building with the .rst files that generated our # .po files. -CPYTHON_CURRENT_COMMIT := 250bb7fffd0b7270064505a3acaa025a268985ce +CPYTHON_CURRENT_COMMIT := 3d8ad2d3661b6bf3bb2b7eb812e26ddc08e861e3 CPYTHON_PATH := ./cpython diff --git a/cpython b/cpython index 250bb7ff..23d771a5 160000 --- a/cpython +++ b/cpython @@ -1 +1 @@ -Subproject commit 250bb7fffd0b7270064505a3acaa025a268985ce +Subproject commit 23d771a5de04fe05e43021d48ae8219a224132ed From 88c3a8e555a790ad1ad1ba8638f14c753f6c6338 Mon Sep 17 00:00:00 2001 From: skpanagiotis Date: Mon, 1 Dec 2025 00:33:38 +0200 Subject: [PATCH 02/14] Sync files and update translations --- about.po | 2 +- bugs.po | 62 +- c-api/abstract.po | 2 +- c-api/allocation.po | 63 +- c-api/apiabiversion.po | 2 +- c-api/arg.po | 395 +- c-api/bool.po | 2 +- c-api/buffer.po | 136 +- c-api/bytearray.po | 2 +- c-api/bytes.po | 53 +- c-api/call.po | 2 +- c-api/capsule.po | 78 +- c-api/cell.po | 4 +- c-api/code.po | 160 +- c-api/codec.po | 19 +- c-api/complex.po | 2 +- c-api/concrete.po | 6 +- c-api/contextvars.po | 2 +- c-api/conversion.po | 132 +- c-api/coro.po | 2 +- c-api/curses.po | 183 + c-api/datetime.po | 166 +- c-api/descriptor.po | 56 +- c-api/dict.po | 223 +- c-api/exceptions.po | 1087 +- c-api/extension-modules.po | 7 +- c-api/file.po | 32 +- c-api/float.po | 161 +- c-api/frame.po | 121 +- c-api/function.po | 67 +- c-api/gcsupport.po | 2 +- c-api/gen.po | 42 +- c-api/hash.po | 121 +- c-api/import.po | 15 +- c-api/index.po | 2 +- c-api/init.po | 969 +- c-api/init_config.po | 4 +- c-api/intro.po | 354 +- c-api/iter.po | 2 +- c-api/iterator.po | 76 +- c-api/lifecycle.po | 3 +- c-api/list.po | 2 +- c-api/long.po | 367 +- c-api/mapping.po | 12 +- c-api/marshal.po | 4 +- c-api/memory.po | 71 +- c-api/memoryview.po | 26 +- c-api/method.po | 2 +- c-api/module.po | 260 +- c-api/monitoring.po | 4 +- c-api/none.po | 2 +- c-api/number.po | 2 +- c-api/object.po | 73 +- c-api/objimpl.po | 2 +- c-api/perfmaps.po | 2 +- c-api/picklebuffer.po | 100 + c-api/refcounting.po | 2 +- c-api/reflection.po | 2 +- c-api/sequence.po | 2 +- c-api/set.po | 2 +- c-api/slice.po | 2 +- c-api/stable.po | 2 +- c-api/structures.po | 562 +- c-api/sys.po | 157 +- c-api/time.po | 2 +- c-api/tuple.po | 4 +- c-api/type.po | 286 +- c-api/typehints.po | 2 +- c-api/typeobj.po | 995 +- c-api/unicode.po | 730 +- c-api/utilities.po | 2 +- c-api/veryhigh.po | 253 +- c-api/weakref.po | 52 +- contents.po | 2 +- copyright.po | 2 +- deprecations/c-api-pending-removal-in-3.14.po | 2 +- deprecations/c-api-pending-removal-in-3.15.po | 92 +- deprecations/c-api-pending-removal-in-3.16.po | 25 + deprecations/c-api-pending-removal-in-3.18.po | 53 +- .../c-api-pending-removal-in-future.po | 2 +- deprecations/index.po | 319 +- deprecations/pending-removal-in-3.13.po | 41 +- deprecations/pending-removal-in-3.14.po | 54 +- deprecations/pending-removal-in-3.15.po | 2 +- deprecations/pending-removal-in-3.16.po | 2 +- deprecations/pending-removal-in-3.17.po | 48 +- deprecations/pending-removal-in-3.19.po | 2 +- deprecations/pending-removal-in-future.po | 132 +- distributing/index.po | 2 +- extending/building.po | 2 +- extending/embedding.po | 2 +- extending/extending.po | 490 +- extending/index.po | 2 +- extending/newtypes.po | 2 +- extending/newtypes_tutorial.po | 8 +- extending/windows.po | 2 +- faq/design.po | 6 +- faq/extending.po | 2 +- faq/general.po | 4 +- faq/gui.po | 2 +- faq/index.po | 2 +- faq/installed.po | 2 +- faq/library.po | 9 +- faq/programming.po | 19 +- faq/windows.po | 2 +- glossary.po | 1012 +- howto/a-conceptual-overview-of-asyncio.po | 812 + howto/annotations.po | 2 +- howto/argparse-optparse.po | 2 +- howto/argparse.po | 2 +- howto/clinic.po | 2 +- howto/cporting.po | 2 +- howto/curses.po | 2 +- howto/descriptor.po | 4 +- howto/enum.po | 6 +- howto/free-threading-extensions.po | 165 +- howto/free-threading-python.po | 52 +- howto/functional.po | 6 +- howto/gdb_helpers.po | 2 +- howto/index.po | 64 +- howto/instrumentation.po | 56 +- howto/ipaddress.po | 2 +- howto/isolating-extensions.po | 21 +- howto/logging-cookbook.po | 180 +- howto/logging.po | 6 +- howto/mro.po | 2 +- howto/perf_profiling.po | 2 +- howto/pyporting.po | 2 +- howto/regex.po | 184 +- howto/remote_debugging.po | 358 +- howto/sockets.po | 2 +- howto/sorting.po | 2 +- howto/timerfd.po | 2 +- howto/unicode.po | 154 +- howto/urllib2.po | 2 +- installing/index.po | 2 +- library/__future__.po | 120 +- library/__main__.po | 2 +- library/_thread.po | 2 +- library/abc.po | 2 +- library/aifc.po | 2 +- library/allos.po | 2 +- library/annotationlib.po | 329 +- library/archiving.po | 2 +- library/argparse.po | 759 +- library/array.po | 84 +- library/ast.po | 613 +- library/asynchat.po | 2 +- library/asyncio-api-index.po | 2 +- library/asyncio-dev.po | 2 +- library/asyncio-eventloop.po | 750 +- library/asyncio-exceptions.po | 2 +- library/asyncio-extending.po | 2 +- library/asyncio-future.po | 92 +- library/asyncio-graph.po | 2 +- library/asyncio-llapi-index.po | 2 +- library/asyncio-platforms.po | 2 +- library/asyncio-policy.po | 2 +- library/asyncio-protocol.po | 8 +- library/asyncio-queue.po | 148 +- library/asyncio-runner.po | 2 +- library/asyncio-stream.po | 98 +- library/asyncio-subprocess.po | 138 +- library/asyncio-sync.po | 6 +- library/asyncio-task.po | 140 +- library/asyncio.po | 59 +- library/asyncore.po | 2 +- library/atexit.po | 2 +- library/audioop.po | 2 +- library/audit_events.po | 2 +- library/base64.po | 2 +- library/bdb.po | 2 +- library/binary.po | 2 +- library/binascii.po | 2 +- library/bisect.po | 80 +- library/builtins.po | 2 +- library/bz2.po | 144 +- library/calendar.po | 2 +- library/cgi.po | 2 +- library/cgitb.po | 2 +- library/chunk.po | 2 +- library/cmath.po | 4 +- library/cmd.po | 2 +- library/cmdline.po | 39 +- library/cmdlinelibs.po | 4 +- library/code.po | 2 +- library/codecs.po | 1273 +- library/codeop.po | 2 +- library/collections.abc.po | 285 +- library/collections.po | 14 +- library/colorsys.po | 2 +- library/compileall.po | 2 +- library/compression.po | 15 +- library/compression.zstd.po | 360 +- library/concurrency.po | 2 +- library/concurrent.futures.po | 169 +- library/concurrent.interpreters.po | 384 +- library/concurrent.po | 2 +- library/configparser.po | 2 +- library/constants.po | 35 +- library/contextlib.po | 2 +- library/contextvars.po | 2 +- library/copy.po | 2 +- library/copyreg.po | 2 +- library/crypt.po | 6 +- library/crypto.po | 2 +- library/csv.po | 300 +- library/ctypes.po | 1358 +- library/curses.ascii.po | 2 +- library/curses.panel.po | 2 +- library/curses.po | 982 +- library/custominterp.po | 2 +- library/dataclasses.po | 365 +- library/datatypes.po | 2 +- library/datetime.po | 2 +- library/dbm.po | 261 +- library/debug.po | 2 +- library/decimal.po | 4 +- library/development.po | 2 +- library/devmode.po | 2 +- library/dialog.po | 2 +- library/difflib.po | 11 +- library/dis.po | 664 +- library/distribution.po | 2 +- library/distutils.po | 2 +- library/doctest.po | 658 +- library/email.charset.po | 2 +- library/email.compat32-message.po | 34 +- library/email.contentmanager.po | 2 +- library/email.encoders.po | 2 +- library/email.errors.po | 2 +- library/email.examples.po | 2 +- library/email.generator.po | 2 +- library/email.header.po | 6 +- library/email.headerregistry.po | 2 +- library/email.iterators.po | 2 +- library/email.message.po | 2 +- library/email.mime.po | 2 +- library/email.parser.po | 14 +- library/email.po | 2 +- library/email.policy.po | 2 +- library/email.utils.po | 2 +- library/ensurepip.po | 76 +- library/enum.po | 434 +- library/errno.po | 2 +- library/exceptions.po | 351 +- library/faulthandler.po | 55 +- library/fcntl.po | 2 +- library/filecmp.po | 2 +- library/fileformats.po | 2 +- library/fileinput.po | 2 +- library/filesys.po | 2 +- library/fnmatch.po | 5 +- library/fractions.po | 50 +- library/frameworks.po | 23 +- library/ftplib.po | 2 +- library/functional.po | 2 +- library/functions.po | 1999 +- library/functools.po | 250 +- library/gc.po | 8 +- library/getopt.po | 2 +- library/getpass.po | 29 +- library/gettext.po | 2 +- library/glob.po | 91 +- library/graphlib.po | 2 +- library/grp.po | 2 +- library/gzip.po | 154 +- library/hashlib.po | 6 +- library/heapq.po | 14 +- library/hmac.po | 56 +- library/html.entities.po | 2 +- library/html.parser.po | 143 +- library/html.po | 18 +- library/http.client.po | 4 +- library/http.cookiejar.po | 14 +- library/http.cookies.po | 59 +- library/http.po | 90 +- library/http.server.po | 4 +- library/i18n.po | 2 +- library/idle.po | 582 +- library/imaplib.po | 110 +- library/imghdr.po | 2 +- library/imp.po | 2 +- library/importlib.metadata.po | 2 +- library/importlib.po | 514 +- library/importlib.resources.abc.po | 2 +- library/importlib.resources.po | 134 +- library/index.po | 2 +- library/inspect.po | 596 +- library/internet.po | 2 +- library/intro.po | 2 +- library/io.po | 2 +- library/ipaddress.po | 257 +- library/ipc.po | 2 +- library/itertools.po | 6 +- library/json.po | 302 +- library/keyword.po | 2 +- library/language.po | 2 +- library/linecache.po | 2 +- library/locale.po | 394 +- library/logging.config.po | 2 +- library/logging.handlers.po | 367 +- library/logging.po | 478 +- library/lzma.po | 232 +- library/mailbox.po | 4 +- library/mailcap.po | 2 +- library/markup.po | 2 +- library/marshal.po | 2 +- library/math.po | 6 +- library/mimetypes.po | 2 +- library/mm.po | 2 +- library/mmap.po | 70 +- library/modulefinder.po | 2 +- library/modules.po | 2 +- library/msilib.po | 2 +- library/msvcrt.po | 88 +- library/multiprocessing.po | 1319 +- library/multiprocessing.shared_memory.po | 2 +- library/netdata.po | 2 +- library/netrc.po | 49 +- library/nis.po | 2 +- library/nntplib.po | 2 +- library/numbers.po | 8 +- library/numeric.po | 2 +- library/operator.po | 2 +- library/optparse.po | 2 +- library/os.path.po | 126 +- library/os.po | 931 +- library/ossaudiodev.po | 2 +- library/pathlib.po | 6 +- library/pdb.po | 318 +- library/persistence.po | 2 +- library/pickle.po | 10 +- library/pickletools.po | 2 +- library/pipes.po | 2 +- library/pkgutil.po | 2 +- library/platform.po | 261 +- library/plistlib.po | 2 +- library/poplib.po | 2 +- library/posix.po | 2 +- library/pprint.po | 94 +- library/profile.po | 4 +- library/pty.po | 2 +- library/pwd.po | 2 +- library/py_compile.po | 2 +- library/pyclbr.po | 2 +- library/pydoc.po | 2 +- library/pyexpat.po | 376 +- library/python.po | 2 +- library/queue.po | 90 +- library/quopri.po | 2 +- library/random.po | 102 +- library/re.po | 2 +- library/readline.po | 114 +- library/removed.po | 2 +- library/reprlib.po | 2 +- library/resource.po | 209 +- library/rlcompleter.po | 2 +- library/runpy.po | 2 +- library/sched.po | 2 +- library/secrets.po | 2 +- library/security_warnings.po | 4 +- library/select.po | 2 +- library/selectors.po | 2 +- library/shelve.po | 2 +- library/shlex.po | 2 +- library/shutil.po | 400 +- library/signal.po | 230 +- library/site.po | 4 +- library/smtpd.po | 2 +- library/smtplib.po | 254 +- library/sndhdr.po | 2 +- library/socket.po | 2 +- library/socketserver.po | 6 +- library/spwd.po | 2 +- library/sqlite3.po | 958 +- library/ssl.po | 1107 +- library/stat.po | 2 +- library/statistics.po | 2 +- library/stdtypes.po | 4692 ++-- library/string.po | 404 +- library/string.templatelib.po | 323 + library/stringprep.po | 2 +- library/struct.po | 2 +- library/subprocess.po | 323 +- library/sunau.po | 2 +- library/superseded.po | 2 +- library/symtable.po | 2 +- library/sys.monitoring.po | 255 +- library/sys.po | 615 +- library/sys_path_init.po | 2 +- library/sysconfig.po | 62 +- library/syslog.po | 2 +- library/tabnanny.po | 2 +- library/tarfile.po | 809 +- library/telnetlib.po | 2 +- library/tempfile.po | 2 +- library/termios.po | 2 +- library/test.po | 162 +- library/text.po | 2 +- library/textwrap.po | 2 +- library/threading.po | 8 +- library/time.po | 509 +- library/timeit.po | 2 +- library/tk.po | 4 +- library/tkinter.colorchooser.po | 2 +- library/tkinter.dnd.po | 2 +- library/tkinter.font.po | 2 +- library/tkinter.messagebox.po | 2 +- library/tkinter.po | 658 +- library/tkinter.scrolledtext.po | 2 +- library/tkinter.ttk.po | 2 +- library/token.po | 2 +- library/tokenize.po | 2 +- library/tomllib.po | 2 +- library/trace.po | 2 +- library/traceback.po | 2 +- library/tracemalloc.po | 2 +- library/tty.po | 2 +- library/turtle.po | 1285 +- library/types.po | 2 +- library/typing.po | 1671 +- library/unicodedata.po | 181 +- library/unittest.mock-examples.po | 174 +- library/unittest.mock.po | 8 +- library/unittest.po | 131 +- library/unix.po | 4 +- library/urllib.error.po | 2 +- library/urllib.parse.po | 2 +- library/urllib.po | 2 +- library/urllib.request.po | 519 +- library/urllib.robotparser.po | 8 +- library/uu.po | 2 +- library/uuid.po | 137 +- library/venv.po | 293 +- library/warnings.po | 314 +- library/wave.po | 2 +- library/weakref.po | 2 +- library/webbrowser.po | 170 +- library/windows.po | 2 +- library/winreg.po | 364 +- library/winsound.po | 82 +- library/wsgiref.po | 2 +- library/xdrlib.po | 2 +- library/xml.dom.minidom.po | 113 +- library/xml.dom.po | 2 +- library/xml.dom.pulldom.po | 59 +- library/xml.etree.elementtree.po | 533 +- library/xml.po | 217 +- library/xml.sax.handler.po | 236 +- library/xml.sax.po | 63 +- library/xml.sax.reader.po | 2 +- library/xml.sax.utils.po | 4 +- library/xmlrpc.client.po | 8 +- library/xmlrpc.po | 2 +- library/xmlrpc.server.po | 6 +- library/zipapp.po | 2 +- library/zipfile.po | 525 +- library/zipimport.po | 25 +- library/zlib.po | 313 +- library/zoneinfo.po | 20 +- license.po | 2 +- reference/compound_stmts.po | 947 +- reference/datamodel.po | 1982 +- reference/executionmodel.po | 409 +- reference/expressions.po | 1138 +- reference/grammar.po | 95 +- reference/import.po | 2 +- reference/index.po | 2 +- reference/introduction.po | 70 +- reference/lexical_analysis.po | 1541 +- reference/simple_stmts.po | 155 +- reference/toplevel_components.po | 2 +- sphinx.po | 244 +- tutorial/appendix.po | 40 +- tutorial/appetite.po | 2 +- tutorial/classes.po | 8 +- tutorial/controlflow.po | 413 +- tutorial/datastructures.po | 328 +- tutorial/errors.po | 2 +- tutorial/floatingpoint.po | 2 +- tutorial/index.po | 11 +- tutorial/inputoutput.po | 214 +- tutorial/interactive.po | 2 +- tutorial/interpreter.po | 2 +- tutorial/introduction.po | 10 +- tutorial/modules.po | 16 +- tutorial/stdlib.po | 22 +- tutorial/stdlib2.po | 2 +- tutorial/venv.po | 2 +- tutorial/whatnow.po | 6 +- using/android.po | 40 +- using/cmdline.po | 279 +- using/configure.po | 1135 +- using/editors.po | 2 +- using/index.po | 2 +- using/ios.po | 324 +- using/mac.po | 8 +- using/unix.po | 86 +- using/windows.po | 1386 +- whatsnew/2.0.po | 208 +- whatsnew/2.1.po | 2 +- whatsnew/2.2.po | 2 +- whatsnew/2.3.po | 2 +- whatsnew/2.4.po | 2 +- whatsnew/2.5.po | 19 +- whatsnew/2.6.po | 1301 +- whatsnew/2.7.po | 274 +- whatsnew/3.0.po | 2 +- whatsnew/3.1.po | 2 +- whatsnew/3.10.po | 28 +- whatsnew/3.11.po | 2 +- whatsnew/3.12.po | 1044 +- whatsnew/3.13.po | 936 +- whatsnew/3.14.po | 5961 +++-- whatsnew/3.2.po | 4 +- whatsnew/3.3.po | 413 +- whatsnew/3.4.po | 716 +- whatsnew/3.5.po | 931 +- whatsnew/3.6.po | 206 +- whatsnew/3.7.po | 725 +- whatsnew/3.8.po | 287 +- whatsnew/3.9.po | 10 +- whatsnew/changelog.po | 22225 ++++++++-------- whatsnew/index.po | 2 +- 525 files changed, 55065 insertions(+), 46940 deletions(-) create mode 100644 c-api/curses.po create mode 100644 c-api/picklebuffer.po create mode 100644 deprecations/c-api-pending-removal-in-3.16.po create mode 100644 howto/a-conceptual-overview-of-asyncio.po create mode 100644 library/string.templatelib.po diff --git a/about.po b/about.po index ffef9082..bc26896b 100644 --- a/about.po +++ b/about.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-03-31 19:50+0000\n" "Last-Translator: Theofanis Petkos \n" "Language-Team: PyGreece \n" diff --git a/bugs.po b/bugs.po index 6d07837f..4998459c 100644 --- a/bugs.po +++ b/bugs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-05-06 12:51+0000\n" "Last-Translator: Theofanis Petkos \n" "Language-Team: PyGreece \n" @@ -58,7 +58,17 @@ msgstr "" "tracker>`. Εάν έχετε μια πρόταση για το πώς να το διορθώσετε, συμπεριλάβετε " "και αυτήν." -#: bugs.rst:22 +#: bugs.rst:24 +msgid "" +"If the bug or suggested improvement concerns the translation of this " +"documentation, submit the report to the `translation’s repository " +"`_ instead." +msgstr "" +"Αν το σφάλμα ή η προτεινόμενη βελτίωση αφορά τη μετάφραση αυτή της " +"τεκμηρίωσης, υποβάλετε την αναφορά στο αποθετήριο της μετάφρασης " +"`_ αντί γι' αυτό." + +#: bugs.rst:28 msgid "" "You can also open a discussion item on our `Documentation Discourse forum " "`_." @@ -66,7 +76,7 @@ msgstr "" "Μπορείτε επίσης να ανοίξετε ένα θέμα συζήτησης στο `Φόρουμ της συζήτησης για " "την τεκμηρίωση `_." -#: bugs.rst:25 +#: bugs.rst:31 msgid "" "If you find a bug in the theme (HTML / CSS / JavaScript) of the " "documentation, please submit a bug report on the `python-doc-theme issue " @@ -77,11 +87,11 @@ msgstr "" "παρακολούθησης σφαλμάτων `python-doc-theme bug tracker `_." -#: bugs.rst:31 +#: bugs.rst:37 msgid "`Documentation bugs`_" msgstr "`Σφάλματα τεκμηρίωσης`_" -#: bugs.rst:32 +#: bugs.rst:38 msgid "" "A list of documentation bugs that have been submitted to the Python issue " "tracker." @@ -89,18 +99,18 @@ msgstr "" "Μια λίστα σφαλμάτων τεκμηρίωσης που έχουν υποβληθεί στον Python issue " "tracker." -#: bugs.rst:34 +#: bugs.rst:40 msgid "`Issue Tracking `_" msgstr "`Παρακολούθηση Issue `_" -#: bugs.rst:35 +#: bugs.rst:41 msgid "" "Overview of the process involved in reporting an improvement on the tracker." msgstr "" "Επισκόπηση της διαδικασίας που περιλαμβάνει η αναφορά μιας βελτίωσης στον " "tracker." -#: bugs.rst:37 +#: bugs.rst:43 msgid "" "`Helping with Documentation `_" @@ -108,7 +118,7 @@ msgstr "" "`Βοηθώντας με την Τεκμηρίωση `_" -#: bugs.rst:38 +#: bugs.rst:44 msgid "" "Comprehensive guide for individuals that are interested in contributing to " "Python documentation." @@ -116,7 +126,7 @@ msgstr "" "Ολοκληρωμένος οδηγός για άτομα που ενδιαφέρονται να συνεισφέρουν στην " "Τεκμηρίωση της Python." -#: bugs.rst:40 +#: bugs.rst:46 msgid "" "`Documentation Translations `_" @@ -124,7 +134,7 @@ msgstr "" "`Μεταφράσεις Τεκμηρίωσης `_" -#: bugs.rst:41 +#: bugs.rst:47 msgid "" "A list of GitHub pages for documentation translation and their primary " "contacts." @@ -132,11 +142,11 @@ msgstr "" "Μια λίστα από Github pages για την μετάφραση της τεκμηρίωσης και τις " "κυριότερες επαφές." -#: bugs.rst:47 +#: bugs.rst:53 msgid "Using the Python issue tracker" msgstr "Χρησιμοποιώντας τον Python issue tracker" -#: bugs.rst:49 +#: bugs.rst:55 msgid "" "Issue reports for Python itself should be submitted via the GitHub issues " "tracker (https://github.com/python/cpython/issues). The GitHub issues " @@ -148,7 +158,7 @@ msgstr "" "GitHub issues tracker προσφέρει μια web φόρμα που επιτρέπει την εισαγωγή και " "υποβολή σχετικών πληροφοριών στους προγραμματιστές." -#: bugs.rst:54 +#: bugs.rst:60 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 " @@ -167,7 +177,7 @@ msgstr "" "αναζητήστε στον tracker χρησιμοποιώντας το πλαίσιο αναζήτησης στο επάνω " "μέρος της σελίδας." -#: bugs.rst:61 +#: bugs.rst:67 msgid "" "If the problem you're reporting is not already in the list, log in to " "GitHub. If you don't already have a GitHub account, create a new account " @@ -179,7 +189,7 @@ msgstr "" "λογαριασμό χρησιμοποιώντας τον σύνδεσμο \"Sign up\". Δεν είναι δυνατή η " "υποβολή αναφοράς σφαλμάτων ανώνυμα." -#: bugs.rst:66 +#: bugs.rst:72 msgid "" "Being now logged in, you can submit an issue. Click on the \"New issue\" " "button in the top bar to report a new issue." @@ -187,11 +197,11 @@ msgstr "" "Όταν πλέον είστε συνδεδεμένοι, μπορείτε να υποβάλετε ένα issue. Κάντε κλικ " "στο κουμπί \"New issue\" στην επάνω γραμμή για να αναφέρετε ένα νέο issue." -#: bugs.rst:69 +#: bugs.rst:75 msgid "The submission form has two fields, \"Title\" and \"Comment\"." msgstr "Η φόρμα υποβολής έχει δύο πεδία, \"Title\" και \"Comment\"." -#: bugs.rst:71 +#: bugs.rst:77 msgid "" "For the \"Title\" field, enter a *very* short description of the problem; " "fewer than ten words is good." @@ -199,7 +209,7 @@ msgstr "" "Για το πεδίο \"Title\", εισαγάγετε μια *πολύ* σύντομη περιγραφή του " "προβλήματος' λιγότερες από δέκα λέξεις είναι καλές." -#: bugs.rst:74 +#: bugs.rst:80 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 " @@ -212,7 +222,7 @@ msgstr "" "ποια πλατφόρμα υλικού και λογισμικού (συμπεριλαμβανομένων των πληροφοριών " "έκδοσης ανάλογα με την περίπτωση)." -#: bugs.rst:79 +#: bugs.rst:85 msgid "" "Each issue report will be reviewed by a developer who will determine what " "needs to be done to correct the problem. You will receive an update each " @@ -222,7 +232,7 @@ msgstr "" "καθορίσει τι πρέπει να γίνει για να διορθωθεί το πρόβλημα. Θα λαμβάνετε μια " "ενημέρωση κάθε φορά που γίνεται κάποια ενέργεια για το πρόβλημα." -#: bugs.rst:86 +#: bugs.rst:92 msgid "" "`How to Report Bugs Effectively `_" @@ -230,7 +240,7 @@ msgstr "" "`Πως να Αναφέρεται Σφάλματα Αποτελεσματικά `_" -#: bugs.rst:87 +#: bugs.rst:93 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." @@ -239,7 +249,7 @@ msgstr "" "μιας χρήσιμης αναφοράς σφάλματος. Περιγράφει τι είδους πληροφορίες είναι " "χρήσιμες και γιατί είναι χρήσιμες." -#: bugs.rst:90 +#: bugs.rst:96 msgid "" "`Bug Writing Guidelines `_" @@ -247,7 +257,7 @@ msgstr "" "Οδηγίες Συγγραφής Αναφορών Σφαλμάτων `_" -#: bugs.rst:91 +#: bugs.rst:97 msgid "" "Information about writing a good bug report. Some of this is specific to " "the Mozilla project, but describes general good practices." @@ -256,11 +266,11 @@ msgstr "" "αυτά αφορούν ειδικά το πρότζεκτ Mozilla, αλλά περιγράφουν και γενικές καλές " "πρακτικές." -#: bugs.rst:97 +#: bugs.rst:103 msgid "Getting started contributing to Python yourself" msgstr "Ξεκινήστε να συνεισφέρετε και εσείς στην Python" -#: bugs.rst:99 +#: bugs.rst:105 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 " diff --git a/c-api/abstract.po b/c-api/abstract.po index 41807f2d..3d7fd9f3 100644 --- a/c-api/abstract.po +++ b/c-api/abstract.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/allocation.po b/c-api/allocation.po index b3f303f8..a3a0eea4 100644 --- a/c-api/allocation.po +++ b/c-api/allocation.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-06-04 11:27+0300\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" @@ -129,7 +129,7 @@ msgstr "" msgid "PyObject *foo = PyObject_CallNoArgs((PyObject *)&PyFoo_Type);" msgstr "" -#: c-api/allocation.rst:137 +#: c-api/allocation.rst:137 c-api/allocation.rst:184 c-api/allocation.rst:186 #, fuzzy msgid ":c:func:`PyObject_Free`" msgstr "Ίδιο με την :c:func:`PyObject_Free`." @@ -195,10 +195,6 @@ msgid ":c:macro:`PyObject_GC_NewVar`" msgstr "" #: c-api/allocation.rst:145 -msgid "Same as :c:func:`PyObject_Free`." -msgstr "Ίδιο με την :c:func:`PyObject_Free`." - -#: c-api/allocation.rst:149 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 " @@ -208,14 +204,65 @@ msgstr "" "προσπελαύνεται μόνο χρησιμοποιώντας τη μακροεντολή :c:macro:`Py_None`, η " "οποία αξιολογείται σε έναν δείκτη σε αυτό το αντικείμενο." -#: c-api/allocation.rst:156 +#: c-api/allocation.rst:152 msgid ":ref:`moduleobjects`" msgstr "" -#: c-api/allocation.rst:157 +#: c-api/allocation.rst:153 msgid "To allocate and create extension modules." msgstr "Για να δεσμεύσετε και να δημιουργήσετε επεκτάσεις modules." +#: c-api/allocation.rst:157 +msgid "Deprecated aliases" +msgstr "" + +#: c-api/allocation.rst:159 +msgid "" +"These are :term:`soft deprecated` aliases to existing functions and macros. " +"They exist solely for backwards compatibility." +msgstr "" + +#: c-api/allocation.rst:167 +msgid "Deprecated alias" +msgstr "" + +#: c-api/allocation.rst:168 +msgid "Function" +msgstr "" + +#: c-api/allocation.rst:170 +#, fuzzy +msgid ":c:macro:`PyObject_New`" +msgstr "Ίδιο με την :c:func:`PyObject_Free`." + +#: c-api/allocation.rst:172 +#, fuzzy +msgid ":c:macro:`PyObject_NewVar`" +msgstr "Ίδιο με την :c:func:`PyObject_Free`." + +#: c-api/allocation.rst:174 +#, fuzzy +msgid ":c:func:`PyObject_Init`" +msgstr "Ίδιο με την :c:func:`PyObject_Free`." + +#: c-api/allocation.rst:176 +#, fuzzy +msgid ":c:func:`PyObject_InitVar`" +msgstr "Ίδιο με την :c:func:`PyObject_Free`." + +#: c-api/allocation.rst:178 +#, fuzzy +msgid ":c:func:`PyObject_Malloc`" +msgstr "Ίδιο με την :c:func:`PyObject_Free`." + +#: c-api/allocation.rst:180 +#, fuzzy +msgid ":c:func:`PyObject_Realloc`" +msgstr "Ίδιο με την :c:func:`PyObject_Free`." + +#~ msgid "Same as :c:func:`PyObject_Free`." +#~ msgstr "Ίδιο με την :c:func:`PyObject_Free`." + #~ msgid "" #~ "Initialize a newly allocated object *op* with its type and initial " #~ "reference. Returns the initialized object. Other fields of the object " diff --git a/c-api/apiabiversion.po b/c-api/apiabiversion.po index cd0b791a..3019693a 100644 --- a/c-api/apiabiversion.po +++ b/c-api/apiabiversion.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/arg.po b/c-api/arg.po index c0a74cc0..4a584bfa 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -175,48 +175,44 @@ msgid "" "encoding." msgstr "" -#: c-api/arg.rst:629 +#: c-api/arg.rst:614 msgid "``z`` (:class:`str` or ``None``) [const char \\*]" msgstr "" #: c-api/arg.rst:114 msgid "" "Like ``s``, but the Python object may also be ``None``, in which case the C " -"pointer is set to ``NULL``. It is the same as ``s?`` with the C pointer was " -"initialized to ``NULL``." +"pointer is set to ``NULL``." msgstr "" -#: c-api/arg.rst:118 +#: c-api/arg.rst:117 msgid "" "``z*`` (:class:`str`, :term:`bytes-like object` or ``None``) [Py_buffer]" msgstr "" -#: c-api/arg.rst:119 +#: c-api/arg.rst:118 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``. It " -"is the same as ``s*?`` with the ``buf`` member of the :c:type:`Py_buffer` " -"structure was initialized to ``NULL``." +"``buf`` member of the :c:type:`Py_buffer` structure is set to ``NULL``." msgstr "" -#: c-api/arg.rst:124 +#: c-api/arg.rst:121 msgid "" "``z#`` (:class:`str`, read-only :term:`bytes-like object` or ``None``) " "[const char \\*, :c:type:`Py_ssize_t`]" msgstr "" -#: c-api/arg.rst:125 +#: c-api/arg.rst:122 msgid "" "Like ``s#``, but the Python object may also be ``None``, in which case the C " -"pointer is set to ``NULL``. It is the same as ``s#?`` with the C pointer was " -"initialized to ``NULL``." +"pointer is set to ``NULL``." msgstr "" -#: c-api/arg.rst:129 +#: c-api/arg.rst:125 msgid "``y`` (read-only :term:`bytes-like object`) [const char \\*]" msgstr "" -#: c-api/arg.rst:130 +#: c-api/arg.rst:126 msgid "" "This format converts a bytes-like object to a C pointer to a :ref:`borrowed " "` character string; it does not accept Unicode " @@ -224,50 +220,50 @@ msgid "" "a :exc:`ValueError` exception is raised." msgstr "" -#: c-api/arg.rst:136 +#: c-api/arg.rst:132 msgid "" "Previously, :exc:`TypeError` was raised when embedded null bytes were " "encountered in the bytes buffer." msgstr "" -#: c-api/arg.rst:140 +#: c-api/arg.rst:136 msgid "``y*`` (:term:`bytes-like object`) [Py_buffer]" msgstr "" -#: c-api/arg.rst:141 +#: c-api/arg.rst:137 msgid "" "This variant on ``s*`` doesn't accept Unicode objects, only bytes-like " "objects. **This is the recommended way to accept binary data.**" msgstr "" -#: c-api/arg.rst:145 +#: c-api/arg.rst:141 msgid "" "``y#`` (read-only :term:`bytes-like object`) [const char \\*, :c:type:" "`Py_ssize_t`]" msgstr "" -#: c-api/arg.rst:146 +#: c-api/arg.rst:142 msgid "" "This variant on ``s#`` doesn't accept Unicode objects, only bytes-like " "objects." msgstr "" -#: c-api/arg.rst:149 +#: c-api/arg.rst:145 msgid "``S`` (:class:`bytes`) [PyBytesObject \\*]" msgstr "" -#: c-api/arg.rst:150 +#: c-api/arg.rst:146 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:expr:`PyObject*`." msgstr "" -#: c-api/arg.rst:154 +#: c-api/arg.rst:150 msgid "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" msgstr "" -#: c-api/arg.rst:155 +#: c-api/arg.rst:151 msgid "" "Requires that the Python object is a :class:`bytearray` object, without " "attempting any conversion. Raises :exc:`TypeError` if the object is not a :" @@ -275,40 +271,40 @@ msgid "" "`PyObject*`." msgstr "" -#: c-api/arg.rst:159 +#: c-api/arg.rst:155 msgid "``U`` (:class:`str`) [PyObject \\*]" msgstr "" -#: c-api/arg.rst:160 +#: c-api/arg.rst:156 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:expr:`PyObject*`." msgstr "" -#: c-api/arg.rst:164 +#: c-api/arg.rst:160 msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" msgstr "" -#: c-api/arg.rst:165 +#: c-api/arg.rst:161 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:" +"The buffer may contain embedded null bytes. The caller has to call :c:func:" "`PyBuffer_Release` when it is done with the buffer." msgstr "" -#: c-api/arg.rst:170 +#: c-api/arg.rst:166 msgid "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]" msgstr "" -#: c-api/arg.rst:171 +#: c-api/arg.rst:167 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 "" -#: c-api/arg.rst:174 +#: c-api/arg.rst:170 msgid "" "This format requires two arguments. The first is only used as input, and " "must be a :c:expr:`const char*` which points to the name of an encoding as a " @@ -319,7 +315,7 @@ msgid "" "The text will be encoded in the encoding specified by the first argument." msgstr "" -#: c-api/arg.rst:182 +#: c-api/arg.rst:178 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 " @@ -327,33 +323,33 @@ msgid "" "`PyMem_Free` to free the allocated buffer after use." msgstr "" -#: c-api/arg.rst:187 +#: c-api/arg.rst:183 msgid "" "``et`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " "\\*encoding, char \\*\\*buffer]" msgstr "" -#: c-api/arg.rst:188 +#: c-api/arg.rst:184 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 "" -#: c-api/arg.rst:192 +#: c-api/arg.rst:188 msgid "" "``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, :c:type:" "`Py_ssize_t` \\*buffer_length]" msgstr "" -#: c-api/arg.rst:193 +#: c-api/arg.rst:189 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 "" -#: c-api/arg.rst:197 +#: c-api/arg.rst:193 msgid "" "It requires three arguments. The first is only used as input, and must be " "a :c:expr:`const char*` which points to the name of an encoding as a NUL-" @@ -366,11 +362,11 @@ msgid "" "will be set to the number of bytes in the output buffer." msgstr "" -#: c-api/arg.rst:207 +#: c-api/arg.rst:203 msgid "There are two modes of operation:" msgstr "" -#: c-api/arg.rst:209 +#: c-api/arg.rst:205 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 " @@ -379,7 +375,7 @@ msgid "" "after usage." msgstr "" -#: c-api/arg.rst:214 +#: c-api/arg.rst:210 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 " @@ -388,36 +384,36 @@ msgid "" "the buffer is not large enough, a :exc:`ValueError` will be set." msgstr "" -#: c-api/arg.rst:220 +#: c-api/arg.rst:216 msgid "" "In both cases, *\\*buffer_length* is set to the length of the encoded data " "without the trailing NUL byte." msgstr "" -#: c-api/arg.rst:223 +#: c-api/arg.rst:219 msgid "" "``et#`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " "\\*encoding, char \\*\\*buffer, :c:type:`Py_ssize_t` \\*buffer_length]" msgstr "" -#: c-api/arg.rst:224 +#: c-api/arg.rst:220 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 "" -#: c-api/arg.rst:228 +#: c-api/arg.rst:224 msgid "" "``u``, ``u#``, ``Z``, and ``Z#`` are removed because they used a legacy " "``Py_UNICODE*`` representation." msgstr "" -#: c-api/arg.rst:234 +#: c-api/arg.rst:230 msgid "Numbers" msgstr "" -#: c-api/arg.rst:236 +#: c-api/arg.rst:232 msgid "" "These formats allow representing Python numbers or single characters as C " "numbers. Formats that require :class:`int`, :class:`float` or :class:" @@ -426,7 +422,7 @@ msgid "" "convert the Python object to the required type." msgstr "" -#: c-api/arg.rst:242 +#: c-api/arg.rst:238 msgid "" "For signed integer formats, :exc:`OverflowError` is raised if the value is " "out of range for the C type. For unsigned integer formats, no range checking " @@ -434,167 +430,167 @@ msgid "" "receiving field is too small to receive the value." msgstr "" -#: c-api/arg.rst:248 +#: c-api/arg.rst:244 msgid "``b`` (:class:`int`) [unsigned char]" msgstr "" -#: c-api/arg.rst:249 +#: c-api/arg.rst:245 msgid "" "Convert a nonnegative Python integer to an unsigned tiny integer, stored in " "a C :c:expr:`unsigned char`." msgstr "" -#: c-api/arg.rst:663 +#: c-api/arg.rst:648 msgid "``B`` (:class:`int`) [unsigned char]" msgstr "" -#: c-api/arg.rst:253 +#: c-api/arg.rst:249 msgid "" "Convert a Python integer to a tiny integer without overflow checking, stored " "in a C :c:expr:`unsigned char`." msgstr "" -#: c-api/arg.rst:657 +#: c-api/arg.rst:642 msgid "``h`` (:class:`int`) [short int]" msgstr "" -#: c-api/arg.rst:257 +#: c-api/arg.rst:253 msgid "Convert a Python integer to a C :c:expr:`short int`." msgstr "" -#: c-api/arg.rst:666 +#: c-api/arg.rst:651 msgid "``H`` (:class:`int`) [unsigned short int]" msgstr "" -#: c-api/arg.rst:260 +#: c-api/arg.rst:256 msgid "" "Convert a Python integer to a C :c:expr:`unsigned short int`, without " "overflow checking." msgstr "" -#: c-api/arg.rst:651 +#: c-api/arg.rst:636 msgid "``i`` (:class:`int`) [int]" msgstr "" -#: c-api/arg.rst:264 +#: c-api/arg.rst:260 msgid "Convert a Python integer to a plain C :c:expr:`int`." msgstr "" -#: c-api/arg.rst:669 +#: c-api/arg.rst:654 msgid "``I`` (:class:`int`) [unsigned int]" msgstr "" -#: c-api/arg.rst:267 +#: c-api/arg.rst:263 msgid "" "Convert a Python integer to a C :c:expr:`unsigned int`, without overflow " "checking." msgstr "" -#: c-api/arg.rst:660 +#: c-api/arg.rst:645 msgid "``l`` (:class:`int`) [long int]" msgstr "" -#: c-api/arg.rst:271 +#: c-api/arg.rst:267 msgid "Convert a Python integer to a C :c:expr:`long int`." msgstr "" -#: c-api/arg.rst:672 +#: c-api/arg.rst:657 msgid "``k`` (:class:`int`) [unsigned long]" msgstr "" -#: c-api/arg.rst:274 +#: c-api/arg.rst:270 msgid "" "Convert a Python integer to a C :c:expr:`unsigned long` without overflow " "checking." msgstr "" -#: c-api/arg.rst:287 +#: c-api/arg.rst:283 msgid "Use :meth:`~object.__index__` if available." msgstr "" -#: c-api/arg.rst:675 +#: c-api/arg.rst:660 msgid "``L`` (:class:`int`) [long long]" msgstr "" -#: c-api/arg.rst:281 +#: c-api/arg.rst:277 msgid "Convert a Python integer to a C :c:expr:`long long`." msgstr "" -#: c-api/arg.rst:680 +#: c-api/arg.rst:665 msgid "``K`` (:class:`int`) [unsigned long long]" msgstr "" -#: c-api/arg.rst:284 +#: c-api/arg.rst:280 msgid "" "Convert a Python integer to a C :c:expr:`unsigned long long` without " "overflow checking." msgstr "" -#: c-api/arg.rst:683 +#: c-api/arg.rst:668 msgid "``n`` (:class:`int`) [:c:type:`Py_ssize_t`]" msgstr "" -#: c-api/arg.rst:291 +#: c-api/arg.rst:287 msgid "Convert a Python integer to a C :c:type:`Py_ssize_t`." msgstr "" -#: c-api/arg.rst:293 +#: c-api/arg.rst:289 msgid "``c`` (:class:`bytes` or :class:`bytearray` of length 1) [char]" msgstr "" -#: c-api/arg.rst:294 +#: c-api/arg.rst:290 msgid "" "Convert a Python byte, represented as a :class:`bytes` or :class:`bytearray` " "object of length 1, to a C :c:expr:`char`." msgstr "" -#: c-api/arg.rst:297 +#: c-api/arg.rst:293 msgid "Allow :class:`bytearray` objects." msgstr "" -#: c-api/arg.rst:695 +#: c-api/arg.rst:686 msgid "``C`` (:class:`str` of length 1) [int]" msgstr "" -#: c-api/arg.rst:301 +#: c-api/arg.rst:297 msgid "" "Convert a Python character, represented as a :class:`str` object of length " "1, to a C :c:expr:`int`." msgstr "" -#: c-api/arg.rst:702 +#: c-api/arg.rst:693 msgid "``f`` (:class:`float`) [float]" msgstr "" -#: c-api/arg.rst:305 +#: c-api/arg.rst:301 msgid "Convert a Python floating-point number to a C :c:expr:`float`." msgstr "" -#: c-api/arg.rst:699 +#: c-api/arg.rst:690 msgid "``d`` (:class:`float`) [double]" msgstr "" -#: c-api/arg.rst:308 +#: c-api/arg.rst:304 msgid "Convert a Python floating-point number to a C :c:expr:`double`." msgstr "" -#: c-api/arg.rst:310 +#: c-api/arg.rst:306 msgid "``D`` (:class:`complex`) [Py_complex]" msgstr "" -#: c-api/arg.rst:311 +#: c-api/arg.rst:307 msgid "Convert a Python complex number to a C :c:type:`Py_complex` structure." msgstr "" -#: c-api/arg.rst:314 +#: c-api/arg.rst:310 msgid "Other objects" msgstr "" -#: c-api/arg.rst:708 +#: c-api/arg.rst:699 msgid "``O`` (object) [PyObject \\*]" msgstr "" -#: c-api/arg.rst:317 +#: c-api/arg.rst:313 msgid "" "Store a Python object (without any conversion) in a C object pointer. The C " "program thus receives the actual object that was passed. A new :term:" @@ -602,11 +598,11 @@ msgid "" "not increased). The pointer stored is not ``NULL``." msgstr "" -#: c-api/arg.rst:323 +#: c-api/arg.rst:319 msgid "``O!`` (object) [*typeobject*, PyObject \\*]" msgstr "" -#: c-api/arg.rst:324 +#: c-api/arg.rst:320 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 " @@ -615,11 +611,11 @@ msgid "" "required type, :exc:`TypeError` is raised." msgstr "" -#: c-api/arg.rst:332 +#: c-api/arg.rst:328 msgid "``O&`` (object) [*converter*, *address*]" msgstr "" -#: c-api/arg.rst:333 +#: c-api/arg.rst:329 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 " @@ -627,11 +623,11 @@ msgid "" "*converter* function in turn is called as follows::" msgstr "" -#: c-api/arg.rst:338 +#: c-api/arg.rst:334 msgid "status = converter(object, address);" msgstr "" -#: c-api/arg.rst:340 +#: c-api/arg.rst:336 msgid "" "where *object* is the Python object to be converted and *address* is the :c:" "expr:`void*` argument that was passed to the ``PyArg_Parse*`` function. The " @@ -641,7 +637,7 @@ msgid "" "unmodified." msgstr "" -#: c-api/arg.rst:349 +#: c-api/arg.rst:345 msgid "" "If the *converter* returns :c:macro:`!Py_CLEANUP_SUPPORTED`, it may get " "called a second time if the argument parsing eventually fails, giving the " @@ -650,21 +646,21 @@ msgid "" "have the same value as in the original call." msgstr "" -#: c-api/arg.rst:355 +#: c-api/arg.rst:351 msgid "" "Examples of converters: :c:func:`PyUnicode_FSConverter` and :c:func:" "`PyUnicode_FSDecoder`." msgstr "" -#: c-api/arg.rst:358 +#: c-api/arg.rst:354 msgid ":c:macro:`!Py_CLEANUP_SUPPORTED` was added." msgstr "" -#: c-api/arg.rst:686 +#: c-api/arg.rst:671 msgid "``p`` (:class:`bool`) [int]" msgstr "" -#: c-api/arg.rst:362 +#: c-api/arg.rst:358 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 " @@ -673,11 +669,11 @@ msgid "" "how Python tests values for truth." msgstr "" -#: c-api/arg.rst:370 +#: c-api/arg.rst:366 msgid "``(items)`` (sequence) [*matching-items*]" msgstr "" -#: c-api/arg.rst:371 +#: c-api/arg.rst:367 msgid "" "The object must be a Python sequence (except :class:`str`, :class:`bytes` " "or :class:`bytearray`) whose length is the number of format units in " @@ -685,7 +681,7 @@ msgid "" "*items*. Format units for sequences may be nested." msgstr "" -#: c-api/arg.rst:376 +#: c-api/arg.rst:372 msgid "" "If *items* contains format units which store a :ref:`borrowed buffer ` (``s``, ``s#``, ``z``, ``z#``, ``y``, or ``y#``) or a :" @@ -694,41 +690,28 @@ msgid "" "*items* must not store a borrowed buffer or a borrowed reference." msgstr "" -#: c-api/arg.rst:383 +#: c-api/arg.rst:379 msgid "" ":class:`str` and :class:`bytearray` objects no longer accepted as a sequence." msgstr "" -#: c-api/arg.rst:386 +#: c-api/arg.rst:382 msgid "" "Non-tuple sequences are deprecated if *items* contains format units which " "store a borrowed buffer or a borrowed reference." msgstr "" -#: c-api/arg.rst:390 -msgid "``unit?`` (anything or ``None``) [*matching-variable(s)*]" -msgstr "" - -#: c-api/arg.rst:391 -msgid "" -"``?`` modifies the behavior of the preceding format unit. The C variable(s) " -"corresponding to that parameter should be initialized to their default value " -"--- when the argument is ``None``, :c:func:`PyArg_ParseTuple` does not touch " -"the contents of the corresponding C variable(s). If the argument is not " -"``None``, it is parsed according to the specified format unit." -msgstr "" - -#: c-api/arg.rst:401 +#: c-api/arg.rst:386 msgid "" "A few other characters have a meaning in a format string. These may not " "occur inside nested parentheses. They are:" msgstr "" -#: c-api/arg.rst:404 +#: c-api/arg.rst:389 msgid "``|``" msgstr "" -#: c-api/arg.rst:405 +#: c-api/arg.rst:390 msgid "" "Indicates that the remaining arguments in the Python argument list are " "optional. The C variables corresponding to optional arguments should be " @@ -737,11 +720,11 @@ msgid "" "corresponding C variable(s)." msgstr "" -#: c-api/arg.rst:411 +#: c-api/arg.rst:396 msgid "``$``" msgstr "" -#: c-api/arg.rst:412 +#: c-api/arg.rst:397 msgid "" ":c:func:`PyArg_ParseTupleAndKeywords` only: Indicates that the remaining " "arguments in the Python argument list are keyword-only. Currently, all " @@ -749,36 +732,36 @@ msgid "" "be specified before ``$`` in the format string." msgstr "" -#: c-api/arg.rst:420 +#: c-api/arg.rst:405 msgid "``:``" msgstr "" -#: c-api/arg.rst:421 +#: c-api/arg.rst:406 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 "" -#: c-api/arg.rst:425 +#: c-api/arg.rst:410 msgid "``;``" msgstr "" -#: c-api/arg.rst:426 +#: c-api/arg.rst:411 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 "" -#: c-api/arg.rst:430 +#: c-api/arg.rst:415 msgid "" "Note that any Python object references which are provided to the caller are " "*borrowed* references; do not release them (i.e. do not decrement their " "reference count)!" msgstr "" -#: c-api/arg.rst:434 +#: c-api/arg.rst:419 msgid "" "Additional arguments passed to these functions must be addresses of " "variables whose type is determined by the format string; these are used to " @@ -788,7 +771,7 @@ msgid "" "unit in that case." msgstr "" -#: c-api/arg.rst:440 +#: c-api/arg.rst:425 msgid "" "For the conversion to succeed, the *arg* object must match the format and " "the format must be exhausted. On success, the ``PyArg_Parse*`` functions " @@ -798,24 +781,24 @@ msgid "" "the following format units are left untouched." msgstr "" -#: c-api/arg.rst:449 +#: c-api/arg.rst:434 msgid "API Functions" msgstr "" -#: c-api/arg.rst:453 +#: c-api/arg.rst:438 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 "" -#: c-api/arg.rst:460 +#: c-api/arg.rst:445 msgid "" "Identical to :c:func:`PyArg_ParseTuple`, except that it accepts a va_list " "rather than a variable number of arguments." msgstr "" -#: c-api/arg.rst:466 +#: c-api/arg.rst:451 msgid "" "Parse the parameters of a function that takes both positional and keyword " "parameters into local variables. The *keywords* argument is a ``NULL``-" @@ -825,51 +808,51 @@ msgid "" "failure, it returns false and raises the appropriate exception." msgstr "" -#: c-api/arg.rst:477 +#: c-api/arg.rst:462 msgid "" "The *keywords* parameter declaration is :c:expr:`char * const *` in C and :c:" "expr:`const char * const *` in C++. This can be overridden with the :c:macro:" "`PY_CXX_CONST` macro." msgstr "" -#: c-api/arg.rst:481 +#: c-api/arg.rst:466 msgid "" "Added support for :ref:`positional-only parameters `." msgstr "" -#: c-api/arg.rst:485 +#: c-api/arg.rst:470 msgid "" "The *keywords* parameter has now type :c:expr:`char * const *` in C and :c:" "expr:`const char * const *` in C++, instead of :c:expr:`char **`. Added " "support for non-ASCII keyword parameter names." msgstr "" -#: c-api/arg.rst:494 +#: c-api/arg.rst:479 msgid "" "Identical to :c:func:`PyArg_ParseTupleAndKeywords`, except that it accepts a " "va_list rather than a variable number of arguments." msgstr "" -#: c-api/arg.rst:500 +#: c-api/arg.rst:485 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 "" -#: c-api/arg.rst:509 +#: c-api/arg.rst:494 msgid "" "Parse the parameter of a function that takes a single positional parameter " "into a local variable. Returns true on success; on failure, it returns " "false and raises the appropriate exception." msgstr "" -#: c-api/arg.rst:513 +#: c-api/arg.rst:498 msgid "Example::" msgstr "" -#: c-api/arg.rst:515 +#: c-api/arg.rst:500 msgid "" "// Function using METH_O calling convention\n" "static PyObject*\n" @@ -883,7 +866,7 @@ msgid "" "}" msgstr "" -#: c-api/arg.rst:529 +#: c-api/arg.rst:514 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 " @@ -901,13 +884,13 @@ msgid "" "if there was a failure." msgstr "" -#: c-api/arg.rst:544 +#: c-api/arg.rst:529 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 "" -#: c-api/arg.rst:547 +#: c-api/arg.rst:532 msgid "" "static PyObject *\n" "weakref_ref(PyObject *self, PyObject *args)\n" @@ -923,17 +906,17 @@ msgid "" "}" msgstr "" -#: c-api/arg.rst:560 +#: c-api/arg.rst:545 msgid "" "The call to :c:func:`PyArg_UnpackTuple` in this example is entirely " "equivalent to this call to :c:func:`PyArg_ParseTuple`::" msgstr "" -#: c-api/arg.rst:563 +#: c-api/arg.rst:548 msgid "PyArg_ParseTuple(args, \"O|O:ref\", &object, &callback)" msgstr "" -#: c-api/arg.rst:567 +#: c-api/arg.rst:552 msgid "" "The value to be inserted, if any, before :c:expr:`char * const *` in the " "*keywords* parameter declaration of :c:func:`PyArg_ParseTupleAndKeywords` " @@ -942,11 +925,11 @@ msgid "" "to the desired value before including :file:`Python.h`." msgstr "" -#: c-api/arg.rst:581 +#: c-api/arg.rst:566 msgid "Building values" msgstr "" -#: c-api/arg.rst:585 +#: c-api/arg.rst:570 msgid "" "Create a new value based on a format string similar to those accepted by the " "``PyArg_Parse*`` family of functions and a sequence of values. Returns the " @@ -954,7 +937,7 @@ msgid "" "``NULL`` is returned." msgstr "" -#: c-api/arg.rst:590 +#: c-api/arg.rst:575 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 " @@ -963,7 +946,7 @@ msgid "" "it to return a tuple of size 0 or one, parenthesize the format string." msgstr "" -#: c-api/arg.rst:596 +#: c-api/arg.rst:581 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. " @@ -974,7 +957,7 @@ msgid "" "`Py_BuildValue` returns." msgstr "" -#: c-api/arg.rst:604 +#: c-api/arg.rst:589 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 " @@ -982,184 +965,192 @@ msgid "" "be passed." msgstr "" -#: c-api/arg.rst:608 +#: c-api/arg.rst:593 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 "" -#: c-api/arg.rst:612 +#: c-api/arg.rst:597 msgid "``s`` (:class:`str` or ``None``) [const char \\*]" msgstr "" -#: c-api/arg.rst:613 +#: c-api/arg.rst:598 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 "" -#: c-api/arg.rst:616 +#: c-api/arg.rst:601 msgid "" "``s#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" -#: c-api/arg.rst:617 +#: c-api/arg.rst:602 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 "" -#: c-api/arg.rst:621 +#: c-api/arg.rst:606 msgid "``y`` (:class:`bytes`) [const char \\*]" msgstr "" -#: c-api/arg.rst:622 +#: c-api/arg.rst:607 msgid "" "This converts a C string to a Python :class:`bytes` object. If the C string " "pointer is ``NULL``, ``None`` is returned." msgstr "" -#: c-api/arg.rst:625 +#: c-api/arg.rst:610 msgid "``y#`` (:class:`bytes`) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" -#: c-api/arg.rst:626 +#: c-api/arg.rst:611 msgid "" "This converts a C string and its lengths to a Python object. If the C " "string pointer is ``NULL``, ``None`` is returned." msgstr "" -#: c-api/arg.rst:646 +#: c-api/arg.rst:631 msgid "Same as ``s``." msgstr "" -#: c-api/arg.rst:632 +#: c-api/arg.rst:617 msgid "" "``z#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" -#: c-api/arg.rst:649 +#: c-api/arg.rst:634 msgid "Same as ``s#``." msgstr "" -#: c-api/arg.rst:635 +#: c-api/arg.rst:620 msgid "``u`` (:class:`str`) [const wchar_t \\*]" msgstr "" -#: c-api/arg.rst:636 +#: c-api/arg.rst:621 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 "" -#: c-api/arg.rst:640 +#: c-api/arg.rst:625 msgid "``u#`` (:class:`str`) [const wchar_t \\*, :c:type:`Py_ssize_t`]" msgstr "" -#: c-api/arg.rst:641 +#: c-api/arg.rst:626 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 "" -#: c-api/arg.rst:645 +#: c-api/arg.rst:630 msgid "``U`` (:class:`str` or ``None``) [const char \\*]" msgstr "" -#: c-api/arg.rst:648 +#: c-api/arg.rst:633 msgid "" "``U#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" -#: c-api/arg.rst:652 +#: c-api/arg.rst:637 msgid "Convert a plain C :c:expr:`int` to a Python integer object." msgstr "" -#: c-api/arg.rst:654 +#: c-api/arg.rst:639 msgid "``b`` (:class:`int`) [char]" msgstr "" -#: c-api/arg.rst:655 +#: c-api/arg.rst:640 msgid "Convert a plain C :c:expr:`char` to a Python integer object." msgstr "" -#: c-api/arg.rst:658 +#: c-api/arg.rst:643 msgid "Convert a plain C :c:expr:`short int` to a Python integer object." msgstr "" -#: c-api/arg.rst:661 +#: c-api/arg.rst:646 msgid "Convert a C :c:expr:`long int` to a Python integer object." msgstr "" -#: c-api/arg.rst:664 +#: c-api/arg.rst:649 msgid "Convert a C :c:expr:`unsigned char` to a Python integer object." msgstr "" -#: c-api/arg.rst:667 +#: c-api/arg.rst:652 msgid "Convert a C :c:expr:`unsigned short int` to a Python integer object." msgstr "" -#: c-api/arg.rst:670 +#: c-api/arg.rst:655 msgid "Convert a C :c:expr:`unsigned int` to a Python integer object." msgstr "" -#: c-api/arg.rst:673 +#: c-api/arg.rst:658 msgid "Convert a C :c:expr:`unsigned long` to a Python integer object." msgstr "" -#: c-api/arg.rst:676 +#: c-api/arg.rst:661 msgid "Convert a C :c:expr:`long long` to a Python integer object." msgstr "" -#: c-api/arg.rst:681 +#: c-api/arg.rst:666 msgid "Convert a C :c:expr:`unsigned long long` to a Python integer object." msgstr "" -#: c-api/arg.rst:684 +#: c-api/arg.rst:669 msgid "Convert a C :c:type:`Py_ssize_t` to a Python integer." msgstr "" -#: c-api/arg.rst:687 +#: c-api/arg.rst:672 msgid "Convert a C :c:expr:`int` to a Python :class:`bool` object." msgstr "" -#: c-api/arg.rst:691 +#: c-api/arg.rst:674 +msgid "" +"Be aware that this format requires an ``int`` argument. Unlike most other " +"contexts in C, variadic arguments are not coerced to a suitable type " +"automatically. You can convert another type (for example, a pointer or a " +"float) to a suitable ``int`` value using ``(x) ? 1 : 0`` or ``!!x``." +msgstr "" + +#: c-api/arg.rst:682 msgid "``c`` (:class:`bytes` of length 1) [char]" msgstr "" -#: c-api/arg.rst:692 +#: c-api/arg.rst:683 msgid "" "Convert a C :c:expr:`int` representing a byte to a Python :class:`bytes` " "object of length 1." msgstr "" -#: c-api/arg.rst:696 +#: c-api/arg.rst:687 msgid "" "Convert a C :c:expr:`int` representing a character to Python :class:`str` " "object of length 1." msgstr "" -#: c-api/arg.rst:700 +#: c-api/arg.rst:691 msgid "Convert a C :c:expr:`double` to a Python floating-point number." msgstr "" -#: c-api/arg.rst:703 +#: c-api/arg.rst:694 msgid "Convert a C :c:expr:`float` to a Python floating-point number." msgstr "" -#: c-api/arg.rst:705 +#: c-api/arg.rst:696 msgid "``D`` (:class:`complex`) [Py_complex \\*]" msgstr "" -#: c-api/arg.rst:706 +#: c-api/arg.rst:697 msgid "Convert a C :c:type:`Py_complex` structure to a Python complex number." msgstr "" -#: c-api/arg.rst:709 +#: c-api/arg.rst:700 msgid "" "Pass a Python object untouched but create a new :term:`strong reference` to " "it (i.e. its reference count is incremented by one). If the object passed in " @@ -1169,30 +1160,30 @@ msgid "" "no exception has been raised yet, :exc:`SystemError` is set." msgstr "" -#: c-api/arg.rst:718 +#: c-api/arg.rst:709 msgid "``S`` (object) [PyObject \\*]" msgstr "" -#: c-api/arg.rst:719 +#: c-api/arg.rst:710 msgid "Same as ``O``." msgstr "" -#: c-api/arg.rst:721 +#: c-api/arg.rst:712 msgid "``N`` (object) [PyObject \\*]" msgstr "" -#: c-api/arg.rst:722 +#: c-api/arg.rst:713 msgid "" "Same as ``O``, except it doesn't create a new :term:`strong reference`. " "Useful when the object is created by a call to an object constructor in the " "argument list." msgstr "" -#: c-api/arg.rst:726 +#: c-api/arg.rst:717 msgid "``O&`` (object) [*converter*, *anything*]" msgstr "" -#: c-api/arg.rst:727 +#: c-api/arg.rst:718 msgid "" "Convert *anything* to a Python object through a *converter* function. The " "function is called with *anything* (which should be compatible with :c:expr:" @@ -1200,44 +1191,44 @@ msgid "" "``NULL`` if an error occurred." msgstr "" -#: c-api/arg.rst:732 +#: c-api/arg.rst:723 msgid "``(items)`` (:class:`tuple`) [*matching-items*]" msgstr "" -#: c-api/arg.rst:733 +#: c-api/arg.rst:724 msgid "" "Convert a sequence of C values to a Python tuple with the same number of " "items." msgstr "" -#: c-api/arg.rst:735 +#: c-api/arg.rst:726 msgid "``[items]`` (:class:`list`) [*matching-items*]" msgstr "" -#: c-api/arg.rst:736 +#: c-api/arg.rst:727 msgid "" "Convert a sequence of C values to a Python list with the same number of " "items." msgstr "" -#: c-api/arg.rst:738 +#: c-api/arg.rst:729 msgid "``{items}`` (:class:`dict`) [*matching-items*]" msgstr "" -#: c-api/arg.rst:739 +#: c-api/arg.rst:730 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 "" -#: c-api/arg.rst:743 +#: c-api/arg.rst:734 msgid "" "If there is an error in the format string, the :exc:`SystemError` exception " "is set and ``NULL`` returned." msgstr "" -#: c-api/arg.rst:748 +#: c-api/arg.rst:739 msgid "" "Identical to :c:func:`Py_BuildValue`, except that it accepts a va_list " "rather than a variable number of arguments." diff --git a/c-api/bool.po b/c-api/bool.po index 2d4b2293..4194ed4d 100644 --- a/c-api/bool.po +++ b/c-api/bool.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/buffer.po b/c-api/buffer.po index 3c640686..6d571412 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -362,12 +362,16 @@ msgid "" msgstr "" #: c-api/buffer.rst:266 +msgid "This is a :term:`soft deprecated` alias to :c:macro:`PyBUF_WRITABLE`." +msgstr "" + +#: c-api/buffer.rst:270 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 "" -#: c-api/buffer.rst:270 +#: c-api/buffer.rst:274 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:" @@ -375,140 +379,140 @@ msgid "" "writable buffer." msgstr "" -#: c-api/buffer.rst:274 +#: c-api/buffer.rst:278 msgid "" ":c:macro:`PyBUF_FORMAT` must be \\|'d to any of the flags except :c:macro:" "`PyBUF_SIMPLE`, because the latter already implies format ``B`` (unsigned " "bytes). :c:macro:`!PyBUF_FORMAT` cannot be used on its own." msgstr "" -#: c-api/buffer.rst:280 +#: c-api/buffer.rst:284 msgid "shape, strides, suboffsets" msgstr "" -#: c-api/buffer.rst:282 +#: c-api/buffer.rst:286 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 "" -#: c-api/buffer.rst:313 c-api/buffer.rst:338 +#: c-api/buffer.rst:317 c-api/buffer.rst:342 msgid "Request" msgstr "" -#: c-api/buffer.rst:313 c-api/buffer.rst:338 +#: c-api/buffer.rst:317 c-api/buffer.rst:342 msgid "shape" msgstr "" -#: c-api/buffer.rst:313 c-api/buffer.rst:338 +#: c-api/buffer.rst:317 c-api/buffer.rst:342 msgid "strides" msgstr "" -#: c-api/buffer.rst:313 c-api/buffer.rst:338 +#: c-api/buffer.rst:317 c-api/buffer.rst:342 msgid "suboffsets" msgstr "" -#: c-api/buffer.rst:293 c-api/buffer.rst:315 c-api/buffer.rst:319 -#: c-api/buffer.rst:340 c-api/buffer.rst:344 c-api/buffer.rst:348 -#: c-api/buffer.rst:352 c-api/buffer.rst:354 +#: c-api/buffer.rst:297 c-api/buffer.rst:319 c-api/buffer.rst:323 +#: c-api/buffer.rst:344 c-api/buffer.rst:348 c-api/buffer.rst:352 +#: c-api/buffer.rst:356 c-api/buffer.rst:358 msgid "yes" msgstr "" -#: c-api/buffer.rst:340 c-api/buffer.rst:342 +#: c-api/buffer.rst:344 c-api/buffer.rst:346 msgid "if needed" msgstr "" -#: c-api/buffer.rst:295 c-api/buffer.rst:315 c-api/buffer.rst:319 -#: c-api/buffer.rst:344 c-api/buffer.rst:348 c-api/buffer.rst:352 -#: c-api/buffer.rst:354 +#: c-api/buffer.rst:299 c-api/buffer.rst:319 c-api/buffer.rst:323 +#: c-api/buffer.rst:348 c-api/buffer.rst:352 c-api/buffer.rst:356 +#: c-api/buffer.rst:358 msgid "NULL" msgstr "" -#: c-api/buffer.rst:304 +#: c-api/buffer.rst:308 msgid "contiguity requests" msgstr "" -#: c-api/buffer.rst:306 +#: c-api/buffer.rst:310 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 "" -#: c-api/buffer.rst:338 +#: c-api/buffer.rst:342 msgid "contig" msgstr "" -#: c-api/buffer.rst:321 c-api/buffer.rst:354 +#: c-api/buffer.rst:325 c-api/buffer.rst:358 msgid "C" msgstr "" -#: c-api/buffer.rst:317 +#: c-api/buffer.rst:321 msgid "F" msgstr "" -#: c-api/buffer.rst:319 +#: c-api/buffer.rst:323 msgid "C or F" msgstr "" -#: c-api/buffer.rst:321 +#: c-api/buffer.rst:325 msgid ":c:macro:`PyBUF_ND`" msgstr "" -#: c-api/buffer.rst:326 +#: c-api/buffer.rst:330 msgid "compound requests" msgstr "" -#: c-api/buffer.rst:328 +#: c-api/buffer.rst:332 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 "" -#: c-api/buffer.rst:332 +#: c-api/buffer.rst:336 msgid "" "In the following table *U* stands for undefined contiguity. The consumer " "would have to call :c:func:`PyBuffer_IsContiguous` to determine contiguity." msgstr "" -#: c-api/buffer.rst:338 +#: c-api/buffer.rst:342 msgid "readonly" msgstr "" -#: c-api/buffer.rst:338 +#: c-api/buffer.rst:342 msgid "format" msgstr "" -#: c-api/buffer.rst:342 c-api/buffer.rst:346 c-api/buffer.rst:350 +#: c-api/buffer.rst:346 c-api/buffer.rst:350 c-api/buffer.rst:354 msgid "U" msgstr "" -#: c-api/buffer.rst:344 c-api/buffer.rst:352 +#: c-api/buffer.rst:348 c-api/buffer.rst:356 msgid "0" msgstr "" -#: c-api/buffer.rst:346 c-api/buffer.rst:354 +#: c-api/buffer.rst:350 c-api/buffer.rst:358 msgid "1 or 0" msgstr "" -#: c-api/buffer.rst:359 +#: c-api/buffer.rst:363 msgid "Complex arrays" msgstr "" -#: c-api/buffer.rst:362 +#: c-api/buffer.rst:366 msgid "NumPy-style: shape and strides" msgstr "" -#: c-api/buffer.rst:364 +#: c-api/buffer.rst:368 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 "" -#: c-api/buffer.rst:367 +#: c-api/buffer.rst:371 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 " @@ -516,28 +520,28 @@ msgid "" "strides` are ``NULL``." msgstr "" -#: c-api/buffer.rst:371 +#: c-api/buffer.rst:375 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 "" -#: c-api/buffer.rst:375 +#: c-api/buffer.rst:379 msgid "" "ptr = (char *)buf + indices[0] * strides[0] + ... + indices[n-1] * " "strides[n-1];\n" "item = *((typeof(item) *)ptr);" msgstr "" -#: c-api/buffer.rst:381 +#: c-api/buffer.rst:385 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 "" -#: c-api/buffer.rst:385 +#: c-api/buffer.rst:389 msgid "" "def verify_structure(memlen, itemsize, ndim, shape, strides, offset):\n" " \"\"\"Verify that the parameters represent a valid array within\n" @@ -566,11 +570,11 @@ msgid "" " return 0 <= offset+imin and offset+imax+itemsize <= memlen" msgstr "" -#: c-api/buffer.rst:415 +#: c-api/buffer.rst:419 msgid "PIL-style: shape, strides and suboffsets" msgstr "" -#: c-api/buffer.rst:417 +#: c-api/buffer.rst:421 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 " @@ -581,14 +585,14 @@ msgid "" "x[2][3]`` arrays that can be located anywhere in memory." msgstr "" -#: c-api/buffer.rst:426 +#: c-api/buffer.rst:430 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 "" -#: c-api/buffer.rst:430 +#: c-api/buffer.rst:434 msgid "" "void *get_item_pointer(int ndim, void *buf, Py_ssize_t *strides,\n" " Py_ssize_t *suboffsets, Py_ssize_t *indices) {\n" @@ -604,25 +608,25 @@ msgid "" "}" msgstr "" -#: c-api/buffer.rst:445 +#: c-api/buffer.rst:449 msgid "Buffer-related functions" msgstr "" -#: c-api/buffer.rst:449 +#: c-api/buffer.rst:453 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 "" -#: c-api/buffer.rst:456 +#: c-api/buffer.rst:460 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 :exc:" "`BufferError`, set ``view->obj`` to ``NULL`` and return ``-1``." msgstr "" -#: c-api/buffer.rst:461 +#: c-api/buffer.rst:465 msgid "" "On success, fill in *view*, set ``view->obj`` to a new reference to " "*exporter* and return 0. In the case of chained buffer providers that " @@ -630,7 +634,7 @@ msgid "" "instead of *exporter* (See :ref:`Buffer Object Structures `)." msgstr "" -#: c-api/buffer.rst:466 +#: c-api/buffer.rst:470 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:" @@ -638,7 +642,7 @@ msgid "" "`PyBuffer_Release` must be called exactly once." msgstr "" -#: c-api/buffer.rst:474 +#: c-api/buffer.rst:478 msgid "" "Release the buffer *view* and release the :term:`strong reference` (i.e. " "decrement the reference count) to the view's supporting object, ``view-" @@ -646,19 +650,19 @@ msgid "" "used, otherwise reference leaks may occur." msgstr "" -#: c-api/buffer.rst:479 +#: c-api/buffer.rst:483 msgid "" "It is an error to call this function on a buffer that was not obtained via :" "c:func:`PyObject_GetBuffer`." msgstr "" -#: c-api/buffer.rst:485 +#: c-api/buffer.rst:489 msgid "" "Return the implied :c:member:`~Py_buffer.itemsize` from :c:member:" "`~Py_buffer.format`. On error, raise an exception and return -1." msgstr "" -#: c-api/buffer.rst:493 +#: c-api/buffer.rst:497 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 " @@ -666,69 +670,69 @@ msgid "" "succeeds." msgstr "" -#: c-api/buffer.rst:500 +#: c-api/buffer.rst:504 msgid "" "Get the memory area pointed to by the *indices* inside the given *view*. " "*indices* must point to an array of ``view->ndim`` indices." msgstr "" -#: c-api/buffer.rst:506 +#: c-api/buffer.rst:510 msgid "" "Copy contiguous *len* bytes from *buf* to *view*. *fort* can be ``'C'`` or " "``'F'`` (for C-style or Fortran-style ordering). ``0`` is returned on " "success, ``-1`` on error." msgstr "" -#: c-api/buffer.rst:513 +#: c-api/buffer.rst:517 msgid "" "Copy *len* bytes from *src* to its contiguous representation in *buf*. " "*order* can be ``'C'`` or ``'F'`` or ``'A'`` (for C-style or Fortran-style " "ordering or either one). ``0`` is returned on success, ``-1`` on error." msgstr "" -#: c-api/buffer.rst:517 +#: c-api/buffer.rst:521 msgid "This function fails if *len* != *src->len*." msgstr "" -#: c-api/buffer.rst:522 +#: c-api/buffer.rst:526 msgid "" "Copy data from *src* to *dest* buffer. Can convert between C-style and or " "Fortran-style buffers." msgstr "" -#: c-api/buffer.rst:525 +#: c-api/buffer.rst:529 msgid "``0`` is returned on success, ``-1`` on error." msgstr "" -#: c-api/buffer.rst:529 +#: c-api/buffer.rst:533 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 "" -#: c-api/buffer.rst:536 +#: c-api/buffer.rst:540 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 "" -#: c-api/buffer.rst:540 +#: c-api/buffer.rst:544 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 "" -#: c-api/buffer.rst:544 +#: c-api/buffer.rst:548 msgid "" "On success, set ``view->obj`` to a new reference to *exporter* and return 0. " "Otherwise, raise :exc:`BufferError`, set ``view->obj`` to ``NULL`` and " "return ``-1``;" msgstr "" -#: c-api/buffer.rst:548 +#: c-api/buffer.rst:552 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 " @@ -755,14 +759,14 @@ msgstr "" msgid "PyBufferProcs (C type)" msgstr "" -#: c-api/buffer.rst:301 +#: c-api/buffer.rst:305 msgid "contiguous" msgstr "" -#: c-api/buffer.rst:301 +#: c-api/buffer.rst:305 msgid "C-contiguous" msgstr "" -#: c-api/buffer.rst:301 +#: c-api/buffer.rst:305 msgid "Fortran contiguous" msgstr "" diff --git a/c-api/bytearray.po b/c-api/bytearray.po index cb13d06a..01dd5d2c 100644 --- a/c-api/bytearray.po +++ b/c-api/bytearray.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/bytes.po b/c-api/bytes.po index d5cc4e77..0c8ecd6c 100644 --- a/c-api/bytes.po +++ b/c-api/bytes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -347,6 +347,57 @@ msgid "" "``NULL``, :exc:`MemoryError` is set, and ``-1`` is returned." msgstr "" +#: c-api/bytes.rst:226 +msgid "" +"Get the string representation of *bytes*. This function is currently used to " +"implement :meth:`!bytes.__repr__` in Python." +msgstr "" + +#: c-api/bytes.rst:229 +msgid "" +"This function does not do type checking; it is undefined behavior to pass " +"*bytes* as a non-bytes object or ``NULL``." +msgstr "" + +#: c-api/bytes.rst:232 +msgid "" +"If *smartquotes* is true, the representation will use a double-quoted string " +"instead of single-quoted string when single-quotes are present in *bytes*. " +"For example, the byte string ``'Python'`` would be represented as " +"``b\"'Python'\"`` when *smartquotes* is true, or ``b'\\'Python\\''`` when it " +"is false." +msgstr "" + +#: c-api/bytes.rst:238 +msgid "" +"On success, this function returns a :term:`strong reference` to a :class:" +"`str` object containing the representation. On failure, this returns " +"``NULL`` with an exception set." +msgstr "" + +#: c-api/bytes.rst:245 +msgid "" +"Unescape a backslash-escaped string *s*. *s* must not be ``NULL``. *len* " +"must be the size of *s*." +msgstr "" + +#: c-api/bytes.rst:248 +msgid "" +"*errors* must be one of ``\"strict\"``, ``\"replace\"``, or ``\"ignore\"``. " +"If *errors* is ``NULL``, then ``\"strict\"`` is used by default." +msgstr "" + +#: c-api/bytes.rst:251 +msgid "" +"On success, this function returns a :term:`strong reference` to a Python :" +"class:`bytes` object containing the unescaped string. On failure, this " +"function returns ``NULL`` with an exception set." +msgstr "" + +#: c-api/bytes.rst:255 +msgid "*unicode* and *recode_encoding* are now unused." +msgstr "" + #: c-api/bytes.rst:11 msgid "object" msgstr "" diff --git a/c-api/call.po b/c-api/call.po index f254d939..b907820e 100644 --- a/c-api/call.po +++ b/c-api/call.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/capsule.po b/c-api/capsule.po index 77ad2c98..18f2c88c 100644 --- a/c-api/capsule.po +++ b/c-api/capsule.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -29,7 +29,7 @@ msgstr "" #: 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:expr:`void*` " +"extension modules which need to pass an opaque value (as a :c:expr:`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 " @@ -37,62 +37,68 @@ msgid "" msgstr "" #: c-api/capsule.rst:27 +msgid "" +"The type object corresponding to capsule objects. This is the same object " +"as :class:`types.CapsuleType` in the Python layer." +msgstr "" + +#: c-api/capsule.rst:33 msgid "The type of a destructor callback for a capsule. Defined as::" msgstr "" -#: c-api/capsule.rst:29 +#: c-api/capsule.rst:35 msgid "typedef void (*PyCapsule_Destructor)(PyObject *);" msgstr "" -#: c-api/capsule.rst:31 +#: c-api/capsule.rst:37 msgid "" "See :c:func:`PyCapsule_New` for the semantics of PyCapsule_Destructor " "callbacks." msgstr "" -#: c-api/capsule.rst:37 +#: c-api/capsule.rst:43 msgid "" "Return true if its argument is a :c:type:`PyCapsule`. This function always " "succeeds." msgstr "" -#: c-api/capsule.rst:43 +#: c-api/capsule.rst:49 msgid "" "Create a :c:type:`PyCapsule` encapsulating the *pointer*. The *pointer* " "argument may not be ``NULL``." msgstr "" -#: c-api/capsule.rst:46 +#: c-api/capsule.rst:52 msgid "On failure, set an exception and return ``NULL``." msgstr "" -#: c-api/capsule.rst:48 +#: c-api/capsule.rst:54 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 "" -#: c-api/capsule.rst:52 +#: c-api/capsule.rst:58 msgid "" "If the *destructor* argument is not ``NULL``, it will be called with the " "capsule as its argument when it is destroyed." msgstr "" -#: c-api/capsule.rst:55 +#: c-api/capsule.rst:61 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 "" -#: c-api/capsule.rst:62 +#: c-api/capsule.rst:68 msgid "" "Retrieve the *pointer* stored in the capsule. On failure, set an exception " "and return ``NULL``." msgstr "" -#: c-api/capsule.rst:65 +#: c-api/capsule.rst:71 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 " @@ -100,46 +106,46 @@ msgid "" "capsule names." msgstr "" -#: c-api/capsule.rst:73 +#: c-api/capsule.rst:79 msgid "" "Return the current destructor stored in the capsule. On failure, set an " "exception and return ``NULL``." msgstr "" -#: c-api/capsule.rst:76 +#: c-api/capsule.rst:82 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 "" -#: c-api/capsule.rst:83 +#: c-api/capsule.rst:89 msgid "" "Return the current context stored in the capsule. On failure, set an " "exception and return ``NULL``." msgstr "" -#: c-api/capsule.rst:86 +#: c-api/capsule.rst:92 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 "" -#: c-api/capsule.rst:93 +#: c-api/capsule.rst:99 msgid "" "Return the current name stored in the capsule. On failure, set an exception " "and return ``NULL``." msgstr "" -#: c-api/capsule.rst:96 +#: c-api/capsule.rst:102 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 "" -#: c-api/capsule.rst:103 +#: c-api/capsule.rst:109 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 " @@ -147,17 +153,31 @@ msgid "" "string exactly." msgstr "" -#: c-api/capsule.rst:108 +#: c-api/capsule.rst:114 +msgid "" +"This function splits *name* on the ``.`` character, and imports the first " +"element. It then processes further elements using attribute lookups." +msgstr "" + +#: c-api/capsule.rst:117 msgid "" "Return the capsule's internal *pointer* on success. On failure, set an " "exception and return ``NULL``." msgstr "" -#: c-api/capsule.rst:111 +#: c-api/capsule.rst:122 +msgid "" +"If *name* points to an attribute of some submodule or subpackage, this " +"submodule or subpackage must be previously imported using other means (for " +"example, by using :c:func:`PyImport_ImportModule`) for the attribute lookups " +"to succeed." +msgstr "" + +#: c-api/capsule.rst:127 msgid "*no_block* has no effect anymore." msgstr "" -#: c-api/capsule.rst:117 +#: c-api/capsule.rst:133 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`` " @@ -166,40 +186,40 @@ msgid "" "compared.)" msgstr "" -#: c-api/capsule.rst:123 +#: c-api/capsule.rst:139 msgid "" "In other words, if :c:func:`PyCapsule_IsValid` returns a true value, calls " "to any of the accessors (any function starting with ``PyCapsule_Get``) are " "guaranteed to succeed." msgstr "" -#: c-api/capsule.rst:127 +#: c-api/capsule.rst:143 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 "" -#: c-api/capsule.rst:133 +#: c-api/capsule.rst:149 msgid "Set the context pointer inside *capsule* to *context*." msgstr "" -#: c-api/capsule.rst:142 c-api/capsule.rst:159 +#: c-api/capsule.rst:158 c-api/capsule.rst:175 msgid "" "Return ``0`` on success. Return nonzero and set an exception on failure." msgstr "" -#: c-api/capsule.rst:140 +#: c-api/capsule.rst:156 msgid "Set the destructor inside *capsule* to *destructor*." msgstr "" -#: c-api/capsule.rst:147 +#: c-api/capsule.rst:163 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 "" -#: c-api/capsule.rst:156 +#: c-api/capsule.rst:172 msgid "" "Set the void pointer inside *capsule* to *pointer*. The pointer may not be " "``NULL``." diff --git a/c-api/cell.po b/c-api/cell.po index ae7f396c..0cbd7337 100644 --- a/c-api/cell.po +++ b/c-api/cell.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,7 +25,7 @@ msgstr "" 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 " +"the local variables of each stack frame that references the value contain 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 " diff --git a/c-api/code.po b/c-api/code.po index e0c1345e..70a1003a 100644 --- a/c-api/code.po +++ b/c-api/code.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -251,85 +251,205 @@ msgid "" "it before returning." msgstr "" -#: c-api/code.rst:215 +#: c-api/code.rst:216 +msgid "This is a :term:`soft deprecated` function that does nothing." +msgstr "" + +#: c-api/code.rst:218 +msgid "" +"Prior to Python 3.10, this function would perform basic optimizations to a " +"code object." +msgstr "" + +#: c-api/code.rst:221 +msgid "This function now does nothing." +msgstr "" + +#: c-api/code.rst:228 +msgid "Code Object Flags" +msgstr "" + +#: c-api/code.rst:230 +msgid "" +"Code objects contain a bit-field of flags, which can be retrieved as the :" +"attr:`~codeobject.co_flags` Python attribute (for example using :c:func:" +"`PyObject_GetAttrString`), and set using a *flags* argument to :c:func:" +"`PyUnstable_Code_New` and similar functions." +msgstr "" + +#: c-api/code.rst:235 +msgid "" +"Flags whose names start with ``CO_FUTURE_`` correspond to features normally " +"selectable by :ref:`future statements `. These flags can be used in :" +"c:member:`PyCompilerFlags.cf_flags`. Note that many ``CO_FUTURE_`` flags are " +"mandatory in current versions of Python, and setting them has no effect." +msgstr "" + +#: c-api/code.rst:241 +msgid "" +"The following flags are available. For their meaning, see the linked " +"documentation of their Python equivalents." +msgstr "" + +#: c-api/code.rst:249 +msgid "Flag" +msgstr "" + +#: c-api/code.rst:250 +msgid "Meaning" +msgstr "" + +#: c-api/code.rst:252 +msgid ":py:data:`inspect.CO_OPTIMIZED`" +msgstr "" + +#: c-api/code.rst:254 +msgid ":py:data:`inspect.CO_NEWLOCALS`" +msgstr "" + +#: c-api/code.rst:256 +msgid ":py:data:`inspect.CO_VARARGS`" +msgstr "" + +#: c-api/code.rst:258 +msgid ":py:data:`inspect.CO_VARKEYWORDS`" +msgstr "" + +#: c-api/code.rst:260 +msgid ":py:data:`inspect.CO_NESTED`" +msgstr "" + +#: c-api/code.rst:262 +msgid ":py:data:`inspect.CO_GENERATOR`" +msgstr "" + +#: c-api/code.rst:264 +msgid ":py:data:`inspect.CO_COROUTINE`" +msgstr "" + +#: c-api/code.rst:266 +msgid ":py:data:`inspect.CO_ITERABLE_COROUTINE`" +msgstr "" + +#: c-api/code.rst:268 +msgid ":py:data:`inspect.CO_ASYNC_GENERATOR`" +msgstr "" + +#: c-api/code.rst:270 +msgid ":py:data:`inspect.CO_HAS_DOCSTRING`" +msgstr "" + +#: c-api/code.rst:272 +msgid ":py:data:`inspect.CO_METHOD`" +msgstr "" + +#: c-api/code.rst:275 +msgid "no effect (:py:data:`__future__.division`)" +msgstr "" + +#: c-api/code.rst:277 +msgid "no effect (:py:data:`__future__.absolute_import`)" +msgstr "" + +#: c-api/code.rst:279 +msgid "no effect (:py:data:`__future__.with_statement`)" +msgstr "" + +#: c-api/code.rst:281 +msgid "no effect (:py:data:`__future__.print_function`)" +msgstr "" + +#: c-api/code.rst:283 +msgid "no effect (:py:data:`__future__.unicode_literals`)" +msgstr "" + +#: c-api/code.rst:285 +msgid "no effect (:py:data:`__future__.generator_stop`)" +msgstr "" + +#: c-api/code.rst:287 +msgid ":py:data:`__future__.annotations`" +msgstr "" + +#: c-api/code.rst:291 msgid "Extra information" msgstr "" -#: c-api/code.rst:217 +#: c-api/code.rst:293 msgid "" "To support low-level extensions to frame evaluation, such as external just-" "in-time compilers, it is possible to attach arbitrary extra data to code " "objects." msgstr "" -#: c-api/code.rst:221 +#: c-api/code.rst:297 msgid "" "These functions are part of the unstable C API tier: this functionality is a " "CPython implementation detail, and the API may change without deprecation " "warnings." msgstr "" -#: c-api/code.rst:227 -msgid "Return a new an opaque index value used to adding data to code objects." +#: c-api/code.rst:303 +msgid "Return a new opaque index value used to adding data to code objects." msgstr "" -#: c-api/code.rst:229 +#: c-api/code.rst:305 msgid "" "You generally call this function once (per interpreter) and use the result " "with ``PyCode_GetExtra`` and ``PyCode_SetExtra`` to manipulate data on " "individual code objects." msgstr "" -#: c-api/code.rst:233 +#: c-api/code.rst:309 msgid "" "If *free* is not ``NULL``: when a code object is deallocated, *free* will be " "called on non-``NULL`` data stored under the new index. Use :c:func:" "`Py_DecRef` when storing :c:type:`PyObject`." msgstr "" -#: c-api/code.rst:239 +#: c-api/code.rst:315 msgid "as ``_PyEval_RequestCodeExtraIndex``" msgstr "" -#: c-api/code.rst:243 +#: c-api/code.rst:319 msgid "" "Renamed to ``PyUnstable_Eval_RequestCodeExtraIndex``. The old private name " "is deprecated, but will be available until the API changes." msgstr "" -#: c-api/code.rst:249 +#: c-api/code.rst:325 msgid "" "Set *extra* to the extra data stored under the given index. Return 0 on " "success. Set an exception and return -1 on failure." msgstr "" -#: c-api/code.rst:252 +#: c-api/code.rst:328 msgid "" "If no data was set under the index, set *extra* to ``NULL`` and return 0 " "without setting an exception." msgstr "" -#: c-api/code.rst:257 +#: c-api/code.rst:333 msgid "as ``_PyCode_GetExtra``" msgstr "" -#: c-api/code.rst:261 +#: c-api/code.rst:337 msgid "" "Renamed to ``PyUnstable_Code_GetExtra``. The old private name is deprecated, " "but will be available until the API changes." msgstr "" -#: c-api/code.rst:267 +#: c-api/code.rst:343 msgid "" "Set the extra data stored under the given index to *extra*. Return 0 on " "success. Set an exception and return -1 on failure." msgstr "" -#: c-api/code.rst:272 +#: c-api/code.rst:348 msgid "as ``_PyCode_SetExtra``" msgstr "" -#: c-api/code.rst:276 +#: c-api/code.rst:352 msgid "" "Renamed to ``PyUnstable_Code_SetExtra``. The old private name is deprecated, " "but will be available until the API changes." @@ -355,14 +475,14 @@ msgstr "" msgid "PyCode_NewWithPosOnlyArgs (C function)" msgstr "" -#: c-api/code.rst:237 +#: c-api/code.rst:313 msgid "_PyEval_RequestCodeExtraIndex (C function)" msgstr "" -#: c-api/code.rst:255 +#: c-api/code.rst:331 msgid "_PyCode_GetExtra (C function)" msgstr "" -#: c-api/code.rst:270 +#: c-api/code.rst:346 msgid "_PyCode_SetExtra (C function)" msgstr "" diff --git a/c-api/codec.po b/c-api/codec.po index 19ebd7ac..1cc56599 100644 --- a/c-api/codec.po +++ b/c-api/codec.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -27,8 +27,9 @@ msgstr "" #: 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." +"As a 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 "" #: c-api/codec.rst:15 @@ -65,7 +66,7 @@ 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." +"exc:`LookupError` if no decoder can be found." msgstr "" #: c-api/codec.rst:46 @@ -171,3 +172,13 @@ msgstr "" #: c-api/codec.rst:129 msgid "Replace the unicode encode error with ``\\N{...}`` escapes." msgstr "" + +#: c-api/codec.rst:135 +msgid "Codec utility variables" +msgstr "" + +#: c-api/codec.rst:139 +msgid "" +"A string constant containing the lowercase hexadecimal digits: " +"``\"0123456789abcdef\"``." +msgstr "" diff --git a/c-api/complex.po b/c-api/complex.po index 219d710f..90d1ed5d 100644 --- a/c-api/complex.po +++ b/c-api/complex.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/concrete.po b/c-api/concrete.po index ecd69d68..7a0c8ab1 100644 --- a/c-api/concrete.po +++ b/c-api/concrete.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -76,6 +76,10 @@ msgstr "" msgid "Other Objects" msgstr "" +#: c-api/concrete.rst:123 +msgid "C API for extension modules" +msgstr "" + #: c-api/concrete.rst:58 c-api/concrete.rst:80 msgid "object" msgstr "" diff --git a/c-api/contextvars.po b/c-api/contextvars.po index 9de5127c..1c45d35d 100644 --- a/c-api/contextvars.po +++ b/c-api/contextvars.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/conversion.po b/c-api/conversion.po index f23adbb6..d312a52c 100644 --- a/c-api/conversion.po +++ b/c-api/conversion.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -78,9 +78,9 @@ msgstr "" #: c-api/conversion.rst:44 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." +"When ``rv < 0``, the output conversion failed and ``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 "" #: c-api/conversion.rst:49 @@ -190,30 +190,30 @@ msgid "" msgstr "" #: c-api/conversion.rst:131 -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:" +msgid "*flags* can be zero or more of the following values or-ed together:" msgstr "" -#: c-api/conversion.rst:134 +#: c-api/conversion.rst:135 msgid "" -"``Py_DTSF_SIGN`` means to always precede the returned string with a sign " -"character, even if *val* is non-negative." +"Always precede the returned string with a sign character, even if *val* is " +"non-negative." msgstr "" -#: c-api/conversion.rst:137 -msgid "" -"``Py_DTSF_ADD_DOT_0`` means to ensure that the returned string will not look " -"like an integer." +#: c-api/conversion.rst:140 +msgid "Ensure that the returned string will not look like an integer." msgstr "" -#: c-api/conversion.rst:140 +#: c-api/conversion.rst:144 msgid "" -"``Py_DTSF_ALT`` means to apply \"alternate\" formatting rules. See the " -"documentation for the :c:func:`PyOS_snprintf` ``'#'`` specifier for details." +"Apply \"alternate\" formatting rules. See the documentation for the :c:func:" +"`PyOS_snprintf` ``'#'`` specifier for details." msgstr "" -#: c-api/conversion.rst:144 +#: c-api/conversion.rst:150 +msgid "Negative zero is converted to positive zero." +msgstr "" + +#: c-api/conversion.rst:154 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 " @@ -221,21 +221,103 @@ msgid "" "respectively." msgstr "" -#: c-api/conversion.rst:148 +#: c-api/conversion.rst:158 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 "" -#: c-api/conversion.rst:157 +#: c-api/conversion.rst:168 +msgid "" +"Case insensitive comparison of strings. These functions work almost " +"identically to :c:func:`!strcmp` and :c:func:`!strncmp` (respectively), " +"except that they ignore the case of ASCII characters." +msgstr "" + +#: c-api/conversion.rst:172 msgid "" -"Case insensitive comparison of strings. The function works almost " -"identically to :c:func:`!strcmp` except that it ignores the case." +"Return ``0`` if the strings are equal, a negative value if *str1* sorts " +"lexicographically before *str2*, or a positive value if it sorts after." msgstr "" -#: c-api/conversion.rst:163 +#: c-api/conversion.rst:175 msgid "" -"Case insensitive comparison of strings. The function works almost " -"identically to :c:func:`!strncmp` except that it ignores the case." +"In the *str1* or *str2* arguments, a NUL byte marks the end of the string. " +"For :c:func:`!PyOS_mystrnicmp`, the *size* argument gives the maximum size " +"of the string, as if NUL was present at the index given by *size*." +msgstr "" + +#: c-api/conversion.rst:179 +msgid "These functions do not use the locale." +msgstr "" + +#: c-api/conversion.rst:185 +msgid "Case insensitive comparison of strings." +msgstr "" + +#: c-api/conversion.rst:187 +msgid "" +"On Windows, these are aliases of :c:func:`!stricmp` and :c:func:`!strnicmp`, " +"respectively." +msgstr "" + +#: c-api/conversion.rst:190 +msgid "" +"On other platforms, they are aliases of :c:func:`PyOS_mystricmp` and :c:func:" +"`PyOS_mystrnicmp`, respectively." +msgstr "" + +#: c-api/conversion.rst:195 +msgid "Character classification and conversion" +msgstr "" + +#: c-api/conversion.rst:197 +msgid "" +"The following macros provide locale-independent (unlike the C standard " +"library ``ctype.h``) character classification and conversion. The argument " +"must be a signed or unsigned :c:expr:`char`." +msgstr "" + +#: c-api/conversion.rst:204 +msgid "Return true if the character *c* is an alphanumeric character." +msgstr "" + +#: c-api/conversion.rst:209 +msgid "" +"Return true if the character *c* is an alphabetic character (``a-z`` and ``A-" +"Z``)." +msgstr "" + +#: c-api/conversion.rst:214 +msgid "Return true if the character *c* is a decimal digit (``0-9``)." +msgstr "" + +#: c-api/conversion.rst:219 +msgid "Return true if the character *c* is a lowercase ASCII letter (``a-z``)." +msgstr "" + +#: c-api/conversion.rst:224 +msgid "" +"Return true if the character *c* is an uppercase ASCII letter (``A-Z``)." +msgstr "" + +#: c-api/conversion.rst:229 +msgid "" +"Return true if the character *c* is a whitespace character (space, tab, " +"carriage return, newline, vertical tab, or form feed)." +msgstr "" + +#: c-api/conversion.rst:235 +msgid "" +"Return true if the character *c* is a hexadecimal digit (``0-9``, ``a-f``, " +"and ``A-F``)." +msgstr "" + +#: c-api/conversion.rst:241 +msgid "Return the lowercase equivalent of the character *c*." +msgstr "" + +#: c-api/conversion.rst:246 +msgid "Return the uppercase equivalent of the character *c*." msgstr "" diff --git a/c-api/coro.po b/c-api/coro.po index 3117f8c6..214ef551 100644 --- a/c-api/coro.po +++ b/c-api/coro.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/curses.po b/c-api/curses.po new file mode 100644 index 00000000..c10fdf20 --- /dev/null +++ b/c-api/curses.po @@ -0,0 +1,183 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 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.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: c-api/curses.rst:4 +msgid "Curses C API" +msgstr "" + +#: c-api/curses.rst:6 +msgid "" +":mod:`curses` exposes a small C interface for extension modules. Consumers " +"must include the header file :file:`py_curses.h` (which is not included by " +"default by :file:`Python.h`) and :c:func:`import_curses` must be invoked, " +"usually as part of the module initialisation function, to populate :c:var:" +"`PyCurses_API`." +msgstr "" + +#: c-api/curses.rst:14 +msgid "" +"Neither the C API nor the pure Python :mod:`curses` module are compatible " +"with subinterpreters." +msgstr "" + +#: c-api/curses.rst:19 +msgid "" +"Import the curses C API. The macro does not need a semi-colon to be called." +msgstr "" + +#: c-api/curses.rst:21 +msgid "On success, populate the :c:var:`PyCurses_API` pointer." +msgstr "" + +#: c-api/curses.rst:23 +msgid "" +"On failure, set :c:var:`PyCurses_API` to NULL and set an exception. The " +"caller must check if an error occurred via :c:func:`PyErr_Occurred`:" +msgstr "" + +#: c-api/curses.rst:26 +msgid "" +"import_curses(); // semi-colon is optional but recommended\n" +"if (PyErr_Occurred()) { /* cleanup */ }" +msgstr "" + +#: c-api/curses.rst:34 +msgid "" +"Dynamically allocated object containing the curses C API. This variable is " +"only available once :c:macro:`import_curses` succeeds." +msgstr "" + +#: c-api/curses.rst:37 +msgid "``PyCurses_API[0]`` corresponds to :c:data:`PyCursesWindow_Type`." +msgstr "" + +#: c-api/curses.rst:39 +msgid "" +"``PyCurses_API[1]``, ``PyCurses_API[2]``, and ``PyCurses_API[3]`` are " +"pointers to predicate functions of type ``int (*)(void)``." +msgstr "" + +#: c-api/curses.rst:42 +msgid "" +"When called, these predicates return whether :func:`curses.setupterm`, :func:" +"`curses.initscr`, and :func:`curses.start_color` have been called " +"respectively." +msgstr "" + +#: c-api/curses.rst:46 +msgid "" +"See also the convenience macros :c:macro:`PyCursesSetupTermCalled`, :c:macro:" +"`PyCursesInitialised`, and :c:macro:`PyCursesInitialisedColor`." +msgstr "" + +#: c-api/curses.rst:51 +msgid "" +"The number of entries in this structure is subject to changes. Consider " +"using :c:macro:`PyCurses_API_pointers` to check if new fields are available " +"or not." +msgstr "" + +#: c-api/curses.rst:58 +msgid "" +"The number of accessible fields (``4``) in :c:var:`PyCurses_API`. This " +"number is incremented whenever new fields are added." +msgstr "" + +#: c-api/curses.rst:64 +msgid "" +"The :ref:`heap type ` corresponding to :class:`curses.window`." +msgstr "" + +#: c-api/curses.rst:69 +msgid "" +"Return true if *op* is a :class:`curses.window` instance, false otherwise." +msgstr "" + +#: c-api/curses.rst:72 +msgid "" +"The following macros are convenience macros expanding into C statements. In " +"particular, they can only be used as ``macro;`` or ``macro``, but not " +"``macro()`` or ``macro();``." +msgstr "" + +#: c-api/curses.rst:78 +msgid "Macro checking if :func:`curses.setupterm` has been called." +msgstr "" + +#: c-api/curses.rst:97 c-api/curses.rst:114 +msgid "The macro expansion is roughly equivalent to:" +msgstr "" + +#: c-api/curses.rst:82 +msgid "" +"{\n" +" typedef int (*predicate_t)(void);\n" +" predicate_t was_setupterm_called = (predicate_t)PyCurses_API[1];\n" +" if (!was_setupterm_called()) {\n" +" return NULL;\n" +" }\n" +"}" +msgstr "" + +#: c-api/curses.rst:95 +msgid "Macro checking if :func:`curses.initscr` has been called." +msgstr "" + +#: c-api/curses.rst:99 +msgid "" +"{\n" +" typedef int (*predicate_t)(void);\n" +" predicate_t was_initscr_called = (predicate_t)PyCurses_API[2];\n" +" if (!was_initscr_called()) {\n" +" return NULL;\n" +" }\n" +"}" +msgstr "" + +#: c-api/curses.rst:112 +msgid "Macro checking if :func:`curses.start_color` has been called." +msgstr "" + +#: c-api/curses.rst:116 +msgid "" +"{\n" +" typedef int (*predicate_t)(void);\n" +" predicate_t was_start_color_called = (predicate_t)PyCurses_API[3];\n" +" if (!was_start_color_called()) {\n" +" return NULL;\n" +" }\n" +"}" +msgstr "" + +#: c-api/curses.rst:128 +msgid "Internal data" +msgstr "" + +#: c-api/curses.rst:130 +msgid "" +"The following objects are exposed by the C API but should be considered " +"internal-only." +msgstr "" + +#: c-api/curses.rst:135 +msgid "Name of the curses capsule to pass to :c:func:`PyCapsule_Import`." +msgstr "" + +#: c-api/curses.rst:137 +msgid "Internal usage only. Use :c:macro:`import_curses` instead." +msgstr "" diff --git a/c-api/datetime.po b/c-api/datetime.po index f03f03af..ea1c9c5a 100644 --- a/c-api/datetime.po +++ b/c-api/datetime.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -26,175 +26,217 @@ 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 " +"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 " +"structure into a static variable, :c:data:`PyDateTimeAPI`, that is used by " "the following macros." msgstr "" #: c-api/datetime.rst:18 +msgid "Import the datetime C API." +msgstr "" + +#: c-api/datetime.rst:20 +msgid "" +"On success, populate the :c:var:`PyDateTimeAPI` pointer. On failure, set :c:" +"var:`PyDateTimeAPI` to ``NULL`` and set an exception. The caller must check " +"if an error occurred via :c:func:`PyErr_Occurred`:" +msgstr "" + +#: c-api/datetime.rst:24 +msgid "" +"PyDateTime_IMPORT;\n" +"if (PyErr_Occurred()) { /* cleanup */ }" +msgstr "" + +#: c-api/datetime.rst:31 +msgid "This is not compatible with subinterpreters." +msgstr "" + +#: c-api/datetime.rst:35 +msgid "Structure containing the fields for the datetime C API." +msgstr "" + +#: c-api/datetime.rst:37 +msgid "The fields of this structure are private and subject to change." +msgstr "" + +#: c-api/datetime.rst:39 +msgid "Do not use this directly; prefer ``PyDateTime_*`` APIs instead." +msgstr "" + +#: c-api/datetime.rst:43 +msgid "Dynamically allocated object containing the datetime C API." +msgstr "" + +#: c-api/datetime.rst:45 +msgid "" +"This variable is only available once :c:macro:`PyDateTime_IMPORT` succeeds." +msgstr "" + +#: c-api/datetime.rst:49 msgid "This subtype of :c:type:`PyObject` represents a Python date object." msgstr "" -#: c-api/datetime.rst:22 +#: c-api/datetime.rst:53 msgid "This subtype of :c:type:`PyObject` represents a Python datetime object." msgstr "" -#: c-api/datetime.rst:26 +#: c-api/datetime.rst:57 msgid "This subtype of :c:type:`PyObject` represents a Python time object." msgstr "" -#: c-api/datetime.rst:30 +#: c-api/datetime.rst:61 msgid "" "This subtype of :c:type:`PyObject` represents the difference between two " "datetime values." msgstr "" -#: c-api/datetime.rst:34 +#: c-api/datetime.rst:65 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python date type; it " "is the same object as :class:`datetime.date` in the Python layer." msgstr "" -#: c-api/datetime.rst:39 +#: c-api/datetime.rst:70 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python datetime type; " "it is the same object as :class:`datetime.datetime` in the Python layer." msgstr "" -#: c-api/datetime.rst:44 +#: c-api/datetime.rst:75 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python time type; it " "is the same object as :class:`datetime.time` in the Python layer." msgstr "" -#: c-api/datetime.rst:49 +#: c-api/datetime.rst:80 msgid "" -"This instance of :c:type:`PyTypeObject` represents Python type for the " +"This instance of :c:type:`PyTypeObject` represents the Python type for the " "difference between two datetime values; it is the same object as :class:" "`datetime.timedelta` in the Python layer." msgstr "" -#: c-api/datetime.rst:55 +#: c-api/datetime.rst:86 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python time zone info " "type; it is the same object as :class:`datetime.tzinfo` in the Python layer." msgstr "" -#: c-api/datetime.rst:59 +#: c-api/datetime.rst:90 msgid "Macro for access to the UTC singleton:" msgstr "" -#: c-api/datetime.rst:63 +#: c-api/datetime.rst:94 msgid "" "Returns the time zone singleton representing UTC, the same object as :attr:" "`datetime.timezone.utc`." msgstr "" -#: c-api/datetime.rst:69 +#: c-api/datetime.rst:100 msgid "Type-check macros:" msgstr "" -#: c-api/datetime.rst:73 +#: c-api/datetime.rst:104 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``. This " "function always succeeds." msgstr "" -#: c-api/datetime.rst:80 +#: c-api/datetime.rst:111 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType`. *ob* must not " "be ``NULL``. This function always succeeds." msgstr "" -#: c-api/datetime.rst:86 +#: c-api/datetime.rst:117 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``. " "This function always succeeds." msgstr "" -#: c-api/datetime.rst:93 +#: c-api/datetime.rst:124 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must " "not be ``NULL``. This function always succeeds." msgstr "" -#: c-api/datetime.rst:99 +#: c-api/datetime.rst:130 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``. This " "function always succeeds." msgstr "" -#: c-api/datetime.rst:106 +#: c-api/datetime.rst:137 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not " "be ``NULL``. This function always succeeds." msgstr "" -#: c-api/datetime.rst:112 +#: c-api/datetime.rst:143 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``. This " "function always succeeds." msgstr "" -#: c-api/datetime.rst:119 +#: c-api/datetime.rst:150 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType`. *ob* must not " "be ``NULL``. This function always succeeds." msgstr "" -#: c-api/datetime.rst:125 +#: c-api/datetime.rst:156 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``. This " "function always succeeds." msgstr "" -#: c-api/datetime.rst:132 +#: c-api/datetime.rst:163 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType`. *ob* must " "not be ``NULL``. This function always succeeds." msgstr "" -#: c-api/datetime.rst:136 +#: c-api/datetime.rst:167 msgid "Macros to create objects:" msgstr "" -#: c-api/datetime.rst:140 +#: c-api/datetime.rst:171 msgid "" "Return a :class:`datetime.date` object with the specified year, month and " "day." msgstr "" -#: c-api/datetime.rst:145 +#: c-api/datetime.rst:176 msgid "" "Return a :class:`datetime.datetime` object with the specified year, month, " "day, hour, minute, second and microsecond." msgstr "" -#: c-api/datetime.rst:151 +#: c-api/datetime.rst:182 msgid "" "Return a :class:`datetime.datetime` object with the specified year, month, " "day, hour, minute, second, microsecond and fold." msgstr "" -#: c-api/datetime.rst:159 +#: c-api/datetime.rst:190 msgid "" "Return a :class:`datetime.time` object with the specified hour, minute, " "second and microsecond." msgstr "" -#: c-api/datetime.rst:165 +#: c-api/datetime.rst:196 msgid "" "Return a :class:`datetime.time` object with the specified hour, minute, " "second, microsecond and fold." msgstr "" -#: c-api/datetime.rst:173 +#: c-api/datetime.rst:204 msgid "" "Return a :class:`datetime.timedelta` object representing the given number of " "days, seconds and microseconds. Normalization is performed so that the " @@ -202,19 +244,19 @@ msgid "" "for :class:`datetime.timedelta` objects." msgstr "" -#: c-api/datetime.rst:181 +#: c-api/datetime.rst:212 msgid "" "Return a :class:`datetime.timezone` object with an unnamed fixed offset " "represented by the *offset* argument." msgstr "" -#: c-api/datetime.rst:189 +#: c-api/datetime.rst:220 msgid "" "Return a :class:`datetime.timezone` object with a fixed offset represented " "by the *offset* argument and with tzname *name*." msgstr "" -#: c-api/datetime.rst:195 +#: c-api/datetime.rst:226 msgid "" "Macros to extract fields from date objects. The argument must be an " "instance of :c:type:`PyDateTime_Date`, including subclasses (such as :c:type:" @@ -222,87 +264,105 @@ msgid "" "not checked:" msgstr "" -#: c-api/datetime.rst:202 +#: c-api/datetime.rst:233 msgid "Return the year, as a positive int." msgstr "" -#: c-api/datetime.rst:207 +#: c-api/datetime.rst:238 msgid "Return the month, as an int from 1 through 12." msgstr "" -#: c-api/datetime.rst:212 +#: c-api/datetime.rst:243 msgid "Return the day, as an int from 1 through 31." msgstr "" -#: c-api/datetime.rst:215 +#: c-api/datetime.rst:246 msgid "" "Macros to extract fields from datetime objects. The argument must be an " "instance of :c:type:`PyDateTime_DateTime`, including subclasses. The " "argument must not be ``NULL``, and the type is not checked:" msgstr "" -#: c-api/datetime.rst:259 +#: c-api/datetime.rst:290 msgid "Return the hour, as an int from 0 through 23." msgstr "" -#: c-api/datetime.rst:264 +#: c-api/datetime.rst:295 msgid "Return the minute, as an int from 0 through 59." msgstr "" -#: c-api/datetime.rst:269 +#: c-api/datetime.rst:300 msgid "Return the second, as an int from 0 through 59." msgstr "" -#: c-api/datetime.rst:274 +#: c-api/datetime.rst:305 msgid "Return the microsecond, as an int from 0 through 999999." msgstr "" -#: c-api/datetime.rst:279 +#: c-api/datetime.rst:310 msgid "Return the fold, as an int from 0 through 1." msgstr "" -#: c-api/datetime.rst:286 +#: c-api/datetime.rst:317 msgid "Return the tzinfo (which may be ``None``)." msgstr "" -#: c-api/datetime.rst:253 +#: c-api/datetime.rst:284 msgid "" "Macros to extract fields from time objects. The argument must be an " "instance of :c:type:`PyDateTime_Time`, including subclasses. The argument " "must not be ``NULL``, and the type is not checked:" msgstr "" -#: c-api/datetime.rst:291 +#: c-api/datetime.rst:322 msgid "" "Macros to extract fields from time delta objects. The argument must be an " "instance of :c:type:`PyDateTime_Delta`, including subclasses. The argument " "must not be ``NULL``, and the type is not checked:" msgstr "" -#: c-api/datetime.rst:297 +#: c-api/datetime.rst:328 msgid "Return the number of days, as an int from -999999999 to 999999999." msgstr "" -#: c-api/datetime.rst:304 +#: c-api/datetime.rst:335 msgid "Return the number of seconds, as an int from 0 through 86399." msgstr "" -#: c-api/datetime.rst:311 +#: c-api/datetime.rst:342 msgid "Return the number of microseconds, as an int from 0 through 999999." msgstr "" -#: c-api/datetime.rst:316 +#: c-api/datetime.rst:347 msgid "Macros for the convenience of modules implementing the DB API:" msgstr "" -#: c-api/datetime.rst:320 +#: c-api/datetime.rst:351 msgid "" "Create and return a new :class:`datetime.datetime` object given an argument " "tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp`." msgstr "" -#: c-api/datetime.rst:326 +#: c-api/datetime.rst:357 msgid "" "Create and return a new :class:`datetime.date` object given an argument " "tuple suitable for passing to :meth:`datetime.date.fromtimestamp`." msgstr "" + +#: c-api/datetime.rst:362 +msgid "Internal data" +msgstr "" + +#: c-api/datetime.rst:364 +msgid "" +"The following symbols are exposed by the C API but should be considered " +"internal-only." +msgstr "" + +#: c-api/datetime.rst:369 +msgid "Name of the datetime capsule to pass to :c:func:`PyCapsule_Import`." +msgstr "" + +#: c-api/datetime.rst:371 +msgid "Internal usage only. Use :c:macro:`PyDateTime_IMPORT` instead." +msgstr "" diff --git a/c-api/descriptor.po b/c-api/descriptor.po index 662169b0..17972c06 100644 --- a/c-api/descriptor.po +++ b/c-api/descriptor.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,7 +33,55 @@ msgstr "" #: c-api/descriptor.rst:35 msgid "" -"Return non-zero if the descriptor objects *descr* describes a data " -"attribute, or ``0`` if it describes a method. *descr* must be a descriptor " -"object; there is no error checking." +"Return non-zero if the descriptor object *descr* describes a data attribute, " +"or ``0`` if it describes a method. *descr* must be a descriptor object; " +"there is no error checking." +msgstr "" + +#: c-api/descriptor.rst:44 +msgid "Built-in descriptors" +msgstr "" + +#: c-api/descriptor.rst:48 +msgid "" +"The type object for super objects. This is the same object as :class:`super` " +"in the Python layer." +msgstr "" + +#: c-api/descriptor.rst:54 +msgid "" +"The type of class method objects. This is the same object as :class:" +"`classmethod` in the Python layer." +msgstr "" + +#: c-api/descriptor.rst:60 +msgid "" +"Create a new :class:`classmethod` object wrapping *callable*. *callable* " +"must be a callable object and must not be ``NULL``." +msgstr "" + +#: c-api/descriptor.rst:63 +msgid "" +"On success, this function returns a :term:`strong reference` to a new class " +"method descriptor. On failure, this function returns ``NULL`` with an " +"exception set." +msgstr "" + +#: c-api/descriptor.rst:70 +msgid "" +"The type of static method objects. This is the same object as :class:" +"`staticmethod` in the Python layer." +msgstr "" + +#: c-api/descriptor.rst:76 +msgid "" +"Create a new :class:`staticmethod` object wrapping *callable*. *callable* " +"must be a callable object and must not be ``NULL``." +msgstr "" + +#: c-api/descriptor.rst:79 +msgid "" +"On success, this function returns a :term:`strong reference` to a new static " +"method descriptor. On failure, this function returns ``NULL`` with an " +"exception set." msgstr "" diff --git a/c-api/dict.po b/c-api/dict.po index 2635fbd3..f42d0e56 100644 --- a/c-api/dict.po +++ b/c-api/dict.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -61,7 +61,7 @@ msgstr "" #: c-api/dict.rst:53 msgid "" -"Determine if dictionary *p* contains *key*. If an item in *p* is matches " +"Determine if dictionary *p* contains *key*. If an item in *p* matches " "*key*, return ``1``, otherwise return ``0``. On error, return ``-1``. This " "is equivalent to the Python expression ``key in p``." msgstr "" @@ -212,7 +212,7 @@ msgstr "" #: c-api/dict.rst:200 msgid "" "Remove *key* from dictionary *p* and optionally return the removed value. Do " -"not raise :exc:`KeyError` if the key missing." +"not raise :exc:`KeyError` if the key is missing." msgstr "" #: c-api/dict.rst:203 @@ -230,7 +230,7 @@ msgstr "" #: c-api/dict.rst:209 msgid "" "Similar to :meth:`dict.pop`, but without the default value and not raising :" -"exc:`KeyError` if the key missing." +"exc:`KeyError` if the key is missing." msgstr "" #: c-api/dict.rst:217 @@ -262,6 +262,10 @@ msgid "" msgstr "" #: c-api/dict.rst:250 +msgid "Similar to :c:func:`PyDict_Size`, but without error checking." +msgstr "" + +#: c-api/dict.rst:255 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 " @@ -275,11 +279,11 @@ msgid "" "structure is sparse, the offsets are not consecutive." msgstr "" -#: c-api/dict.rst:261 +#: c-api/dict.rst:266 msgid "For example::" msgstr "" -#: c-api/dict.rst:263 +#: c-api/dict.rst:268 msgid "" "PyObject *key, *value;\n" "Py_ssize_t pos = 0;\n" @@ -290,14 +294,14 @@ msgid "" "}" msgstr "" -#: c-api/dict.rst:271 +#: c-api/dict.rst:276 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 "" -#: c-api/dict.rst:275 +#: c-api/dict.rst:280 msgid "" "PyObject *key, *value;\n" "Py_ssize_t pos = 0;\n" @@ -318,14 +322,14 @@ msgid "" "}" msgstr "" -#: c-api/dict.rst:293 +#: c-api/dict.rst:298 msgid "" "The function is not thread-safe in the :term:`free-threaded ` build without external synchronization. You can use :c:macro:" "`Py_BEGIN_CRITICAL_SECTION` to lock the dictionary while iterating over it::" msgstr "" -#: c-api/dict.rst:298 +#: c-api/dict.rst:303 msgid "" "Py_BEGIN_CRITICAL_SECTION(self->dict);\n" "while (PyDict_Next(self->dict, &pos, &key, &value)) {\n" @@ -334,7 +338,18 @@ msgid "" "Py_END_CRITICAL_SECTION();" msgstr "" -#: c-api/dict.rst:307 +#: c-api/dict.rst:311 +msgid "" +"On the free-threaded build, this function can be used safely inside a " +"critical section. However, the references returned for *pkey* and *pvalue* " +"are :term:`borrowed ` and are only valid while the " +"critical section is held. If you need to use these objects outside the " +"critical section or when the critical section can be suspended, create a :" +"term:`strong reference ` (for example, using :c:func:" +"`Py_NewRef`)." +msgstr "" + +#: c-api/dict.rst:321 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` " @@ -344,7 +359,7 @@ msgid "" "or ``-1`` if an exception was raised." msgstr "" -#: c-api/dict.rst:317 +#: c-api/dict.rst:331 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 " @@ -353,7 +368,7 @@ msgid "" "exception was raised." msgstr "" -#: c-api/dict.rst:326 +#: c-api/dict.rst:340 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, " @@ -362,7 +377,7 @@ msgid "" "if an exception was raised. Equivalent Python (except for the return value)::" msgstr "" -#: c-api/dict.rst:333 +#: c-api/dict.rst:347 msgid "" "def PyDict_MergeFromSeq2(a, seq2, override):\n" " for key, value in seq2:\n" @@ -370,7 +385,7 @@ msgid "" " a[key] = value" msgstr "" -#: c-api/dict.rst:340 +#: c-api/dict.rst:354 msgid "" "Register *callback* as a dictionary watcher. Return a non-negative integer " "id which must be passed to future calls to :c:func:`PyDict_Watch`. In case " @@ -378,21 +393,21 @@ msgid "" "exception." msgstr "" -#: c-api/dict.rst:349 +#: c-api/dict.rst:363 msgid "" "Clear watcher identified by *watcher_id* previously returned from :c:func:" "`PyDict_AddWatcher`. Return ``0`` on success, ``-1`` on error (e.g. if the " "given *watcher_id* was never registered.)" msgstr "" -#: c-api/dict.rst:357 +#: c-api/dict.rst:371 msgid "" "Mark dictionary *dict* as watched. The callback granted *watcher_id* by :c:" "func:`PyDict_AddWatcher` will be called when *dict* is modified or " "deallocated. Return ``0`` on success or ``-1`` on error." msgstr "" -#: c-api/dict.rst:365 +#: c-api/dict.rst:379 msgid "" "Mark dictionary *dict* as no longer watched. The callback granted " "*watcher_id* by :c:func:`PyDict_AddWatcher` will no longer be called when " @@ -400,7 +415,7 @@ msgid "" "watched by this watcher. Return ``0`` on success or ``-1`` on error." msgstr "" -#: c-api/dict.rst:374 +#: c-api/dict.rst:388 msgid "" "Enumeration of possible dictionary watcher events: ``PyDict_EVENT_ADDED``, " "``PyDict_EVENT_MODIFIED``, ``PyDict_EVENT_DELETED``, " @@ -408,11 +423,11 @@ msgid "" "``PyDict_EVENT_DEALLOCATED``." msgstr "" -#: c-api/dict.rst:382 +#: c-api/dict.rst:396 msgid "Type of a dict watcher callback function." msgstr "" -#: c-api/dict.rst:384 +#: c-api/dict.rst:398 msgid "" "If *event* is ``PyDict_EVENT_CLEARED`` or ``PyDict_EVENT_DEALLOCATED``, both " "*key* and *new_value* will be ``NULL``. If *event* is ``PyDict_EVENT_ADDED`` " @@ -421,7 +436,7 @@ msgid "" "dictionary and *new_value* will be ``NULL``." msgstr "" -#: c-api/dict.rst:390 +#: c-api/dict.rst:404 msgid "" "``PyDict_EVENT_CLONED`` occurs when *dict* was previously empty and another " "dict is merged into it. To maintain efficiency of this operation, per-key " @@ -429,14 +444,14 @@ msgid "" "``PyDict_EVENT_CLONED`` is issued, and *key* will be the source dictionary." msgstr "" -#: c-api/dict.rst:396 +#: c-api/dict.rst:410 msgid "" "The callback may inspect but must not modify *dict*; doing so could have " "unpredictable effects, including infinite recursion. Do not trigger Python " "code execution in the callback, as it could modify the dict as a side effect." msgstr "" -#: c-api/dict.rst:400 +#: c-api/dict.rst:414 msgid "" "If *event* is ``PyDict_EVENT_DEALLOCATED``, taking a new reference in the " "callback to the about-to-be-destroyed dictionary will resurrect it and " @@ -445,20 +460,20 @@ msgid "" "again." msgstr "" -#: c-api/dict.rst:406 +#: c-api/dict.rst:420 msgid "" "Callbacks occur before the notified modification to *dict* takes place, so " "the prior state of *dict* can be inspected." msgstr "" -#: c-api/dict.rst:409 +#: c-api/dict.rst:423 msgid "" "If the callback sets an exception, it must return ``-1``; this exception " "will be printed as an unraisable exception using :c:func:" "`PyErr_WriteUnraisable`. Otherwise it should return ``0``." msgstr "" -#: c-api/dict.rst:413 +#: c-api/dict.rst:427 msgid "" "There may already be a pending exception set on entry to the callback. In " "this case, the callback should return ``0`` with the same exception still " @@ -467,6 +482,160 @@ msgid "" "it before returning." msgstr "" +#: c-api/dict.rst:437 +msgid "Dictionary View Objects" +msgstr "" + +#: c-api/dict.rst:441 +msgid "" +"Return true if *op* is a view of a set inside a dictionary. This is " +"currently equivalent to :c:expr:`PyDictKeys_Check(op) || " +"PyDictItems_Check(op)`. This function always succeeds." +msgstr "" + +#: c-api/dict.rst:448 +msgid "" +"Type object for a view of dictionary keys. In Python, this is the type of " +"the object returned by :meth:`dict.keys`." +msgstr "" + +#: c-api/dict.rst:454 +msgid "" +"Return true if *op* is an instance of a dictionary keys view. This function " +"always succeeds." +msgstr "" + +#: c-api/dict.rst:460 +msgid "" +"Type object for a view of dictionary values. In Python, this is the type of " +"the object returned by :meth:`dict.values`." +msgstr "" + +#: c-api/dict.rst:466 +msgid "" +"Return true if *op* is an instance of a dictionary values view. This " +"function always succeeds." +msgstr "" + +#: c-api/dict.rst:472 +msgid "" +"Type object for a view of dictionary items. In Python, this is the type of " +"the object returned by :meth:`dict.items`." +msgstr "" + +#: c-api/dict.rst:478 +msgid "" +"Return true if *op* is an instance of a dictionary items view. This function " +"always succeeds." +msgstr "" + +#: c-api/dict.rst:483 +msgid "Ordered Dictionaries" +msgstr "" + +#: c-api/dict.rst:485 +msgid "" +"Python's C API provides interface for :class:`collections.OrderedDict` from " +"C. Since Python 3.7, dictionaries are ordered by default, so there is " +"usually little need for these functions; prefer ``PyDict*`` where possible." +msgstr "" + +#: c-api/dict.rst:492 +msgid "" +"Type object for ordered dictionaries. This is the same object as :class:" +"`collections.OrderedDict` in the Python layer." +msgstr "" + +#: c-api/dict.rst:498 +msgid "" +"Return true if *od* is an ordered dictionary object or an instance of a " +"subtype of the :class:`~collections.OrderedDict` type. This function always " +"succeeds." +msgstr "" + +#: c-api/dict.rst:505 +msgid "" +"Return true if *od* is an ordered dictionary object, but not an instance of " +"a subtype of the :class:`~collections.OrderedDict` type. This function " +"always succeeds." +msgstr "" + +#: c-api/dict.rst:512 +msgid "Analogous to :c:type:`PyDictKeys_Type` for ordered dictionaries." +msgstr "" + +#: c-api/dict.rst:517 +msgid "Analogous to :c:type:`PyDictValues_Type` for ordered dictionaries." +msgstr "" + +#: c-api/dict.rst:522 +msgid "Analogous to :c:type:`PyDictItems_Type` for ordered dictionaries." +msgstr "" + +#: c-api/dict.rst:527 +msgid "Return a new empty ordered dictionary, or ``NULL`` on failure." +msgstr "" + +#: c-api/dict.rst:529 +msgid "This is analogous to :c:func:`PyDict_New`." +msgstr "" + +#: c-api/dict.rst:534 +msgid "" +"Insert *value* into the ordered dictionary *od* with a key of *key*. Return " +"``0`` on success or ``-1`` with an exception set on failure." +msgstr "" + +#: c-api/dict.rst:537 +msgid "This is analogous to :c:func:`PyDict_SetItem`." +msgstr "" + +#: c-api/dict.rst:542 +msgid "" +"Remove the entry in the ordered dictionary *od* with key *key*. Return ``0`` " +"on success or ``-1`` with an exception set on failure." +msgstr "" + +#: c-api/dict.rst:545 +msgid "This is analogous to :c:func:`PyDict_DelItem`." +msgstr "" + +#: c-api/dict.rst:548 +msgid "These are :term:`soft deprecated` aliases to ``PyDict`` APIs:" +msgstr "" + +#: c-api/dict.rst:555 +msgid "``PyODict``" +msgstr "" + +#: c-api/dict.rst:556 +msgid "``PyDict``" +msgstr "" + +#: c-api/dict.rst:558 +msgid ":c:func:`PyDict_GetItem`" +msgstr "" + +#: c-api/dict.rst:560 +msgid ":c:func:`PyDict_GetItemWithError`" +msgstr "" + +#: c-api/dict.rst:562 +msgid ":c:func:`PyDict_GetItemString`" +msgstr "" + +#: c-api/dict.rst:564 +msgid ":c:func:`PyDict_Contains`" +msgstr "" + +#: c-api/dict.rst:566 +msgid ":c:func:`PyDict_Size`" +msgstr "" + +#: c-api/dict.rst:568 +msgid ":c:func:`PyDict_GET_SIZE`" +msgstr "" + #: c-api/dict.rst:8 msgid "object" msgstr "" diff --git a/c-api/exceptions.po b/c-api/exceptions.po index ecd12141..12da7d15 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -325,17 +325,23 @@ msgstr "" #: c-api/exceptions.rst:314 msgid "" +"Similar to :c:func:`PyErr_SyntaxLocationObject`, but also sets the " +"*end_lineno* and *end_col_offset* information for the current exception." +msgstr "" + +#: c-api/exceptions.rst:322 +msgid "" "Like :c:func:`PyErr_SyntaxLocationObject`, but *filename* is a byte string " "decoded from the :term:`filesystem encoding and error handler`." msgstr "" -#: c-api/exceptions.rst:322 +#: c-api/exceptions.rst:330 msgid "" "Like :c:func:`PyErr_SyntaxLocationEx`, but the *col_offset* parameter is " "omitted." msgstr "" -#: c-api/exceptions.rst:328 +#: c-api/exceptions.rst:336 msgid "" "This is a shorthand for ``PyErr_SetString(PyExc_SystemError, message)``, " "where *message* indicates that an internal operation (e.g. a Python/C API " @@ -343,11 +349,30 @@ msgid "" "use." msgstr "" -#: c-api/exceptions.rst:335 +#: c-api/exceptions.rst:344 +msgid "" +"Get the source line in *filename* at line *lineno*. *filename* should be a " +"Python :class:`str` object." +msgstr "" + +#: c-api/exceptions.rst:347 +msgid "" +"On success, this function returns a Python string object with the found " +"line. On failure, this function returns ``NULL`` without an exception set." +msgstr "" + +#: c-api/exceptions.rst:353 +msgid "" +"Similar to :c:func:`PyErr_ProgramTextObject`, but *filename* is a :c:expr:" +"`const char *`, which is decoded with the :term:`filesystem encoding and " +"error handler`, instead of a Python object reference." +msgstr "" + +#: c-api/exceptions.rst:360 msgid "Issuing warnings" msgstr "" -#: c-api/exceptions.rst:337 +#: c-api/exceptions.rst:362 msgid "" "Use these functions to issue warnings from C code. They mirror similar " "functions exported by the Python :mod:`warnings` module. They normally " @@ -363,7 +388,7 @@ msgid "" "return an error value)." msgstr "" -#: c-api/exceptions.rst:352 +#: c-api/exceptions.rst:377 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. " @@ -373,7 +398,7 @@ msgid "" "`PyErr_WarnEx`, 2 is the function above that, and so forth." msgstr "" -#: c-api/exceptions.rst:359 +#: c-api/exceptions.rst:384 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 " @@ -382,14 +407,14 @@ msgid "" "enumerated at :ref:`standardwarningcategories`." msgstr "" -#: c-api/exceptions.rst:365 +#: c-api/exceptions.rst:390 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 "" -#: c-api/exceptions.rst:372 +#: c-api/exceptions.rst:397 msgid "" "Issue a warning message with explicit control over all warning attributes. " "This is a straightforward wrapper around the Python function :func:`warnings." @@ -397,32 +422,39 @@ msgid "" "arguments may be set to ``NULL`` to get the default effect described there." msgstr "" -#: c-api/exceptions.rst:383 +#: c-api/exceptions.rst:408 msgid "" "Similar to :c:func:`PyErr_WarnExplicitObject` except that *message* and " "*module* are UTF-8 encoded strings, and *filename* is decoded from the :term:" "`filesystem encoding and error handler`." msgstr "" -#: c-api/exceptions.rst:390 +#: c-api/exceptions.rst:415 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 "" -#: c-api/exceptions.rst:399 +#: c-api/exceptions.rst:424 +msgid "" +"Similar to :c:func:`PyErr_WarnExplicit`, but uses :c:func:" +"`PyUnicode_FromFormat` to format the warning message. *format* is an ASCII-" +"encoded string." +msgstr "" + +#: c-api/exceptions.rst:433 msgid "" "Function similar to :c:func:`PyErr_WarnFormat`, but *category* is :exc:" "`ResourceWarning` and it passes *source* to :class:`!warnings." "WarningMessage`." msgstr "" -#: c-api/exceptions.rst:406 +#: c-api/exceptions.rst:440 msgid "Querying the error indicator" msgstr "" -#: c-api/exceptions.rst:410 +#: c-api/exceptions.rst:444 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 ``PyErr_Set*`` " @@ -431,11 +463,11 @@ msgid "" "`Py_DECREF` it." msgstr "" -#: c-api/exceptions.rst:416 +#: c-api/exceptions.rst:450 msgid "The caller must have an :term:`attached thread state`." msgstr "" -#: c-api/exceptions.rst:420 +#: c-api/exceptions.rst:454 msgid "" "Do not compare the return value to a specific exception; use :c:func:" "`PyErr_ExceptionMatches` instead, shown below. (The comparison could easily " @@ -443,14 +475,14 @@ msgid "" "of a class exception, or it may be a subclass of the expected exception.)" msgstr "" -#: c-api/exceptions.rst:428 +#: c-api/exceptions.rst:462 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 "" -#: c-api/exceptions.rst:435 +#: c-api/exceptions.rst:469 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 " @@ -458,23 +490,23 @@ msgid "" "tuple (and recursively in subtuples) are searched for a match." msgstr "" -#: c-api/exceptions.rst:443 +#: c-api/exceptions.rst:477 msgid "" "Return the exception currently being raised, clearing the error indicator at " "the same time. Return ``NULL`` if the error indicator is not set." msgstr "" -#: c-api/exceptions.rst:446 +#: c-api/exceptions.rst:480 msgid "" "This function is used by code that needs to catch exceptions, or code that " "needs to save and restore the error indicator temporarily." msgstr "" -#: c-api/exceptions.rst:493 +#: c-api/exceptions.rst:527 msgid "For example::" msgstr "" -#: c-api/exceptions.rst:451 +#: c-api/exceptions.rst:485 msgid "" "{\n" " PyObject *exc = PyErr_GetRaisedException();\n" @@ -485,27 +517,27 @@ msgid "" "}" msgstr "" -#: c-api/exceptions.rst:459 +#: c-api/exceptions.rst:493 msgid "" ":c:func:`PyErr_GetHandledException`, to save the exception currently being " "handled." msgstr "" -#: c-api/exceptions.rst:467 +#: c-api/exceptions.rst:501 msgid "" "Set *exc* as the exception currently being raised, clearing the existing " "exception if one is set." msgstr "" -#: c-api/exceptions.rst:472 +#: c-api/exceptions.rst:506 msgid "This call steals a reference to *exc*, which must be a valid exception." msgstr "" -#: c-api/exceptions.rst:481 +#: c-api/exceptions.rst:515 msgid "Use :c:func:`PyErr_GetRaisedException` instead." msgstr "" -#: c-api/exceptions.rst:483 +#: c-api/exceptions.rst:517 msgid "" "Retrieve the error indicator into three variables whose addresses are " "passed. If the error indicator is not set, set all three variables to " @@ -514,13 +546,13 @@ msgid "" "the type object is not." msgstr "" -#: c-api/exceptions.rst:490 +#: c-api/exceptions.rst:524 msgid "" "This function is normally only used by legacy code that needs to catch " "exceptions or save and restore the error indicator temporarily." msgstr "" -#: c-api/exceptions.rst:495 +#: c-api/exceptions.rst:529 msgid "" "{\n" " PyObject *type, *value, *traceback;\n" @@ -532,11 +564,11 @@ msgid "" "}" msgstr "" -#: c-api/exceptions.rst:509 +#: c-api/exceptions.rst:543 msgid "Use :c:func:`PyErr_SetRaisedException` instead." msgstr "" -#: c-api/exceptions.rst:511 +#: c-api/exceptions.rst:545 msgid "" "Set the error indicator from the three objects, *type*, *value*, and " "*traceback*, clearing the existing exception if one is set. If the objects " @@ -549,20 +581,20 @@ msgid "" "don't use this function. I warned you.)" msgstr "" -#: c-api/exceptions.rst:525 +#: c-api/exceptions.rst:559 msgid "" "This function is normally only used by legacy code that needs to save and " "restore the error indicator temporarily. Use :c:func:`PyErr_Fetch` to save " "the current error indicator." msgstr "" -#: c-api/exceptions.rst:534 +#: c-api/exceptions.rst:568 msgid "" "Use :c:func:`PyErr_GetRaisedException` instead, to avoid any possible de-" "normalization." msgstr "" -#: c-api/exceptions.rst:537 +#: c-api/exceptions.rst:571 msgid "" "Under certain circumstances, the values returned by :c:func:`PyErr_Fetch` " "below can be \"unnormalized\", meaning that ``*exc`` is a class object but " @@ -572,21 +604,21 @@ msgid "" "improve performance." msgstr "" -#: c-api/exceptions.rst:545 +#: c-api/exceptions.rst:579 msgid "" "This function *does not* implicitly set the :attr:`~BaseException." "__traceback__` attribute on the exception value. If setting the traceback " "appropriately is desired, the following additional snippet is needed::" msgstr "" -#: c-api/exceptions.rst:550 +#: c-api/exceptions.rst:584 msgid "" "if (tb != NULL) {\n" " PyException_SetTraceback(val, tb);\n" "}" msgstr "" -#: c-api/exceptions.rst:557 +#: c-api/exceptions.rst:591 msgid "" "Retrieve the active exception instance, as would be returned by :func:`sys." "exception`. This refers to an exception that was *already caught*, not to an " @@ -594,7 +626,7 @@ msgid "" "or ``NULL``. Does not modify the interpreter's exception state." msgstr "" -#: c-api/exceptions.rst:564 +#: c-api/exceptions.rst:598 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 " @@ -602,14 +634,14 @@ msgid "" "clear the exception state." msgstr "" -#: c-api/exceptions.rst:573 +#: c-api/exceptions.rst:607 msgid "" "Set the active exception, as known from ``sys.exception()``. This refers to " "an exception that was *already caught*, not to an exception that was freshly " "raised. To clear the exception state, pass ``NULL``." msgstr "" -#: c-api/exceptions.rst:580 +#: c-api/exceptions.rst:614 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 " @@ -617,7 +649,7 @@ msgid "" "exception state." msgstr "" -#: c-api/exceptions.rst:589 +#: c-api/exceptions.rst:623 msgid "" "Retrieve the old-style representation of the exception info, as known from :" "func:`sys.exc_info`. This refers to an exception that was *already caught*, " @@ -627,7 +659,7 @@ msgid "" "using :c:func:`PyErr_GetHandledException`." msgstr "" -#: c-api/exceptions.rst:598 +#: c-api/exceptions.rst:632 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 " @@ -635,7 +667,7 @@ msgid "" "exception state." msgstr "" -#: c-api/exceptions.rst:608 +#: c-api/exceptions.rst:642 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 " @@ -645,7 +677,7 @@ msgid "" "`PyErr_SetHandledException`." msgstr "" -#: c-api/exceptions.rst:617 +#: c-api/exceptions.rst:651 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 " @@ -653,22 +685,22 @@ msgid "" "state." msgstr "" -#: c-api/exceptions.rst:624 +#: c-api/exceptions.rst:658 msgid "" "The ``type`` and ``traceback`` arguments are no longer used and can be NULL. " "The interpreter now derives them from the exception instance (the ``value`` " "argument). The function still steals references of all three arguments." msgstr "" -#: c-api/exceptions.rst:632 +#: c-api/exceptions.rst:666 msgid "Signal Handling" msgstr "" -#: c-api/exceptions.rst:642 +#: c-api/exceptions.rst:676 msgid "This function interacts with Python's signal handling." msgstr "" -#: c-api/exceptions.rst:644 +#: c-api/exceptions.rst:678 msgid "" "If the function is called from the main thread and under the main Python " "interpreter, it checks whether a signal has been sent to the processes and " @@ -676,7 +708,7 @@ msgid "" "module is supported, this can invoke a signal handler written in Python." msgstr "" -#: c-api/exceptions.rst:649 +#: c-api/exceptions.rst:683 msgid "" "The function attempts to handle all pending signals, and then returns ``0``. " "However, if a Python signal handler raises an exception, the error indicator " @@ -685,44 +717,44 @@ msgid "" "`PyErr_CheckSignals()` invocation)." msgstr "" -#: c-api/exceptions.rst:655 +#: c-api/exceptions.rst:689 msgid "" "If the function is called from a non-main thread, or under a non-main Python " "interpreter, it does nothing and returns ``0``." msgstr "" -#: c-api/exceptions.rst:658 +#: c-api/exceptions.rst:692 msgid "" "This function can be called by long-running C code that wants to be " "interruptible by user requests (such as by pressing Ctrl-C)." msgstr "" -#: c-api/exceptions.rst:662 +#: c-api/exceptions.rst:696 msgid "" "The default Python signal handler for :c:macro:`!SIGINT` raises the :exc:" "`KeyboardInterrupt` exception." msgstr "" -#: c-api/exceptions.rst:673 +#: c-api/exceptions.rst:707 msgid "" "Simulate the effect of a :c:macro:`!SIGINT` signal arriving. This is " "equivalent to ``PyErr_SetInterruptEx(SIGINT)``." msgstr "" -#: c-api/exceptions.rst:704 +#: c-api/exceptions.rst:738 msgid "" "This function is async-signal-safe. It can be called without an :term:" "`attached thread state` and from a C signal handler." msgstr "" -#: c-api/exceptions.rst:687 +#: c-api/exceptions.rst:721 msgid "" "Simulate the effect of a signal arriving. The next time :c:func:" "`PyErr_CheckSignals` is called, the Python signal handler for the given " "signal number will be called." msgstr "" -#: c-api/exceptions.rst:691 +#: c-api/exceptions.rst:725 msgid "" "This function can be called by C code that sets up its own signal handling " "and wants Python signal handlers to be invoked as expected when an " @@ -730,27 +762,27 @@ msgid "" "interrupt an operation)." msgstr "" -#: c-api/exceptions.rst:696 +#: c-api/exceptions.rst:730 msgid "" "If the given signal isn't handled by Python (it was set to :py:const:`signal." "SIG_DFL` or :py:const:`signal.SIG_IGN`), it will be ignored." msgstr "" -#: c-api/exceptions.rst:699 +#: c-api/exceptions.rst:733 msgid "" "If *signum* is outside of the allowed range of signal numbers, ``-1`` is " "returned. Otherwise, ``0`` is returned. The error indicator is never " "changed by this function." msgstr "" -#: c-api/exceptions.rst:712 +#: c-api/exceptions.rst:746 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 "" -#: c-api/exceptions.rst:716 +#: c-api/exceptions.rst:750 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 " @@ -758,15 +790,15 @@ msgid "" "be called from the main thread." msgstr "" -#: c-api/exceptions.rst:721 +#: c-api/exceptions.rst:755 msgid "On Windows, the function now also supports socket handles." msgstr "" -#: c-api/exceptions.rst:726 +#: c-api/exceptions.rst:760 msgid "Exception Classes" msgstr "" -#: c-api/exceptions.rst:730 +#: c-api/exceptions.rst:764 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 " @@ -775,7 +807,7 @@ msgid "" "(accessible in C as :c:data:`PyExc_Exception`)." msgstr "" -#: c-api/exceptions.rst:736 +#: c-api/exceptions.rst:770 msgid "" "The :attr:`~type.__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 " @@ -785,31 +817,51 @@ msgid "" "variables and methods." msgstr "" -#: c-api/exceptions.rst:745 +#: c-api/exceptions.rst:779 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 "" -#: c-api/exceptions.rst:753 +#: c-api/exceptions.rst:788 +msgid "" +"Return non-zero if *ob* is an exception class, zero otherwise. This function " +"always succeeds." +msgstr "" + +#: c-api/exceptions.rst:793 +msgid "Return :c:member:`~PyTypeObject.tp_name` of the exception class *ob*." +msgstr "" + +#: c-api/exceptions.rst:797 msgid "Exception Objects" msgstr "" -#: c-api/exceptions.rst:757 +#: c-api/exceptions.rst:801 +msgid "" +"Return true if *op* is an instance of :class:`BaseException`, false " +"otherwise. This function always succeeds." +msgstr "" + +#: c-api/exceptions.rst:807 +msgid "Equivalent to :c:func:`Py_TYPE(op) `." +msgstr "" + +#: c-api/exceptions.rst:812 msgid "" "Return the traceback associated with the exception as a new reference, as " "accessible from Python through the :attr:`~BaseException.__traceback__` " "attribute. If there is no traceback associated, this returns ``NULL``." msgstr "" -#: c-api/exceptions.rst:765 +#: c-api/exceptions.rst:820 msgid "" "Set the traceback associated with the exception to *tb*. Use ``Py_None`` to " "clear it." msgstr "" -#: c-api/exceptions.rst:771 +#: c-api/exceptions.rst:826 msgid "" "Return the context (another exception instance during whose handling *ex* " "was raised) associated with the exception as a new reference, as accessible " @@ -817,14 +869,14 @@ msgid "" "there is no context associated, this returns ``NULL``." msgstr "" -#: c-api/exceptions.rst:779 +#: c-api/exceptions.rst:834 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 "" -#: c-api/exceptions.rst:786 +#: c-api/exceptions.rst:841 msgid "" "Return the cause (either an exception instance, or ``None``, set by " "``raise ... from ...``) associated with the exception as a new reference, as " @@ -832,28 +884,28 @@ msgid "" "attribute." msgstr "" -#: c-api/exceptions.rst:794 +#: c-api/exceptions.rst:849 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 ``None``. This steals a reference to *cause*." msgstr "" -#: c-api/exceptions.rst:798 +#: c-api/exceptions.rst:853 msgid "" "The :attr:`~BaseException.__suppress_context__` attribute is implicitly set " "to ``True`` by this function." msgstr "" -#: c-api/exceptions.rst:804 +#: c-api/exceptions.rst:859 msgid "Return :attr:`~BaseException.args` of exception *ex*." msgstr "" -#: c-api/exceptions.rst:809 +#: c-api/exceptions.rst:864 msgid "Set :attr:`~BaseException.args` of exception *ex* to *args*." msgstr "" -#: c-api/exceptions.rst:813 +#: c-api/exceptions.rst:868 msgid "" "Implement part of the interpreter's implementation of :keyword:`!except*`. " "*orig* is the original exception that was caught, and *excs* is the list of " @@ -865,98 +917,98 @@ msgid "" "if there is nothing to reraise." msgstr "" -#: c-api/exceptions.rst:827 +#: c-api/exceptions.rst:882 msgid "Unicode Exception Objects" msgstr "" -#: c-api/exceptions.rst:829 +#: c-api/exceptions.rst:884 msgid "" "The following functions are used to create and modify Unicode exceptions " "from C." msgstr "" -#: c-api/exceptions.rst:833 +#: c-api/exceptions.rst:888 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 "" -#: c-api/exceptions.rst:840 +#: c-api/exceptions.rst:895 msgid "Return the *encoding* attribute of the given exception object." msgstr "" -#: c-api/exceptions.rst:846 +#: c-api/exceptions.rst:901 msgid "Return the *object* attribute of the given exception object." msgstr "" -#: c-api/exceptions.rst:852 +#: c-api/exceptions.rst:907 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 "" -#: c-api/exceptions.rst:856 +#: c-api/exceptions.rst:911 msgid "" "If the :attr:`UnicodeError.object` is an empty sequence, the resulting " "*start* is ``0``. Otherwise, it is clipped to ``[0, len(object) - 1]``." msgstr "" -#: c-api/exceptions.rst:859 +#: c-api/exceptions.rst:914 msgid ":attr:`UnicodeError.start`" msgstr "" -#: c-api/exceptions.rst:865 +#: c-api/exceptions.rst:920 msgid "" "Set the *start* attribute of the given exception object to *start*. Return " "``0`` on success, ``-1`` on failure." msgstr "" -#: c-api/exceptions.rst:870 +#: c-api/exceptions.rst:925 msgid "" "While passing a negative *start* does not raise an exception, the " "corresponding getters will not consider it as a relative offset." msgstr "" -#: c-api/exceptions.rst:878 +#: c-api/exceptions.rst:933 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 "" -#: c-api/exceptions.rst:882 +#: c-api/exceptions.rst:937 msgid "" "If the :attr:`UnicodeError.object` is an empty sequence, the resulting *end* " "is ``0``. Otherwise, it is clipped to ``[1, len(object)]``." msgstr "" -#: c-api/exceptions.rst:889 +#: c-api/exceptions.rst:944 msgid "" "Set the *end* attribute of the given exception object to *end*. Return " "``0`` on success, ``-1`` on failure." msgstr "" -#: c-api/exceptions.rst:892 +#: c-api/exceptions.rst:947 msgid ":attr:`UnicodeError.end`" msgstr "" -#: c-api/exceptions.rst:898 +#: c-api/exceptions.rst:953 msgid "Return the *reason* attribute of the given exception object." msgstr "" -#: c-api/exceptions.rst:904 +#: c-api/exceptions.rst:959 msgid "" "Set the *reason* attribute of the given exception object to *reason*. " "Return ``0`` on success, ``-1`` on failure." msgstr "" -#: c-api/exceptions.rst:911 +#: c-api/exceptions.rst:966 msgid "Recursion Control" msgstr "" -#: c-api/exceptions.rst:913 +#: c-api/exceptions.rst:968 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 " @@ -966,37 +1018,41 @@ msgid "" "recursion handling." msgstr "" -#: c-api/exceptions.rst:922 +#: c-api/exceptions.rst:977 msgid "Marks a point where a recursive C-level call is about to be performed." msgstr "" -#: c-api/exceptions.rst:924 +#: c-api/exceptions.rst:979 msgid "" "The function then checks if the stack limit is reached. If this is the " "case, a :exc:`RecursionError` is set and a nonzero value is returned. " "Otherwise, zero is returned." msgstr "" -#: c-api/exceptions.rst:928 +#: c-api/exceptions.rst:983 msgid "" "*where* should be a UTF-8 encoded string such as ``\" in instance check\"`` " "to be concatenated to the :exc:`RecursionError` message caused by the " "recursion depth limit." msgstr "" -#: c-api/exceptions.rst:940 +#: c-api/exceptions.rst:988 +msgid "The :c:func:`PyUnstable_ThreadState_SetStackProtection` function." +msgstr "" + +#: c-api/exceptions.rst:998 msgid "" "This function is now also available in the :ref:`limited API `." msgstr "" -#: c-api/exceptions.rst:937 +#: c-api/exceptions.rst:995 msgid "" "Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each " "*successful* invocation of :c:func:`Py_EnterRecursiveCall`." msgstr "" -#: c-api/exceptions.rst:943 +#: c-api/exceptions.rst:1001 msgid "" "Properly implementing :c:member:`~PyTypeObject.tp_repr` for container types " "requires special recursion handling. In addition to protecting the stack, :" @@ -1005,13 +1061,13 @@ msgid "" "Effectively, these are the C equivalent to :func:`reprlib.recursive_repr`." msgstr "" -#: c-api/exceptions.rst:951 +#: c-api/exceptions.rst:1009 msgid "" "Called at the beginning of the :c:member:`~PyTypeObject.tp_repr` " "implementation to detect cycles." msgstr "" -#: c-api/exceptions.rst:954 +#: c-api/exceptions.rst:1012 msgid "" "If the object has already been processed, the function returns a positive " "integer. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " @@ -1019,495 +1075,298 @@ msgid "" "`dict` objects return ``{...}`` and :class:`list` objects return ``[...]``." msgstr "" -#: c-api/exceptions.rst:960 +#: c-api/exceptions.rst:1018 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 "" -#: c-api/exceptions.rst:964 +#: c-api/exceptions.rst:1022 msgid "" "Otherwise, the function returns zero and the :c:member:`~PyTypeObject." "tp_repr` implementation can continue normally." msgstr "" -#: c-api/exceptions.rst:969 +#: c-api/exceptions.rst:1027 msgid "" "Ends a :c:func:`Py_ReprEnter`. Must be called once for each invocation of :" "c:func:`Py_ReprEnter` that returns zero." msgstr "" -#: c-api/exceptions.rst:976 -msgid "Standard Exceptions" +#: c-api/exceptions.rst:1032 +msgid "" +"Get the recursion limit for the current interpreter. It can be set with :c:" +"func:`Py_SetRecursionLimit`. The recursion limit prevents the Python " +"interpreter stack from growing infinitely." msgstr "" -#: c-api/exceptions.rst:978 +#: c-api/exceptions.rst:1046 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:expr:`PyObject*`; they are all class objects. For completeness, here are " -"all the variables:" +"This function cannot fail, and the caller must hold an :term:`attached " +"thread state`." msgstr "" -#: c-api/exceptions.rst:1181 c-api/exceptions.rst:1227 -msgid "C Name" +#: c-api/exceptions.rst:1040 +msgid ":py:func:`sys.getrecursionlimit`" msgstr "" -#: c-api/exceptions.rst:1227 -msgid "Python Name" +#: c-api/exceptions.rst:1044 +msgid "Set the recursion limit for the current interpreter." msgstr "" -#: c-api/exceptions.rst:1181 c-api/exceptions.rst:1227 -msgid "Notes" +#: c-api/exceptions.rst:1050 +msgid ":py:func:`sys.setrecursionlimit`" msgstr "" -#: c-api/exceptions.rst:1043 -msgid ":c:data:`PyExc_BaseException`" +#: c-api/exceptions.rst:1055 +msgid "Exception and warning types" msgstr "" -#: c-api/exceptions.rst:1043 -msgid ":exc:`BaseException`" +#: c-api/exceptions.rst:1057 +msgid "" +"All standard Python exceptions and warning categories are available as " +"global variables whose names are ``PyExc_`` followed by the Python exception " +"name. These have the type :c:expr:`PyObject*`; they are all class objects." msgstr "" -#: c-api/exceptions.rst:1045 c-api/exceptions.rst:1049 -#: c-api/exceptions.rst:1107 -msgid "[1]_" +#: c-api/exceptions.rst:1061 +msgid "For completeness, here are all the variables:" msgstr "" -#: c-api/exceptions.rst:1045 -msgid ":c:data:`PyExc_BaseExceptionGroup`" +#: c-api/exceptions.rst:1064 +msgid "Exception types" msgstr "" -#: c-api/exceptions.rst:1045 -msgid ":exc:`BaseExceptionGroup`" +#: c-api/exceptions.rst:1217 c-api/exceptions.rst:1247 +msgid "C name" msgstr "" -#: c-api/exceptions.rst:1047 -msgid ":c:data:`PyExc_Exception`" +#: c-api/exceptions.rst:1218 c-api/exceptions.rst:1248 +msgid "Python name" msgstr "" -#: c-api/exceptions.rst:1047 -msgid ":exc:`Exception`" +#: c-api/exceptions.rst:1074 +msgid ":exc:`BaseException`" msgstr "" -#: c-api/exceptions.rst:1049 -msgid ":c:data:`PyExc_ArithmeticError`" +#: c-api/exceptions.rst:1076 +msgid ":exc:`BaseExceptionGroup`" msgstr "" -#: c-api/exceptions.rst:1049 -msgid ":exc:`ArithmeticError`" +#: c-api/exceptions.rst:1078 +msgid ":exc:`Exception`" msgstr "" -#: c-api/exceptions.rst:1051 -msgid ":c:data:`PyExc_AssertionError`" +#: c-api/exceptions.rst:1080 +msgid ":exc:`ArithmeticError`" msgstr "" -#: c-api/exceptions.rst:1051 +#: c-api/exceptions.rst:1082 msgid ":exc:`AssertionError`" msgstr "" -#: c-api/exceptions.rst:1053 -msgid ":c:data:`PyExc_AttributeError`" -msgstr "" - -#: c-api/exceptions.rst:1053 +#: c-api/exceptions.rst:1084 msgid ":exc:`AttributeError`" msgstr "" -#: c-api/exceptions.rst:1055 -msgid ":c:data:`PyExc_BlockingIOError`" -msgstr "" - -#: c-api/exceptions.rst:1055 +#: c-api/exceptions.rst:1086 msgid ":exc:`BlockingIOError`" msgstr "" -#: c-api/exceptions.rst:1057 -msgid ":c:data:`PyExc_BrokenPipeError`" -msgstr "" - -#: c-api/exceptions.rst:1057 +#: c-api/exceptions.rst:1088 msgid ":exc:`BrokenPipeError`" msgstr "" -#: c-api/exceptions.rst:1059 -msgid ":c:data:`PyExc_BufferError`" -msgstr "" - -#: c-api/exceptions.rst:1059 +#: c-api/exceptions.rst:1090 msgid ":exc:`BufferError`" msgstr "" -#: c-api/exceptions.rst:1061 -msgid ":c:data:`PyExc_ChildProcessError`" -msgstr "" - -#: c-api/exceptions.rst:1061 +#: c-api/exceptions.rst:1092 msgid ":exc:`ChildProcessError`" msgstr "" -#: c-api/exceptions.rst:1063 -msgid ":c:data:`PyExc_ConnectionAbortedError`" -msgstr "" - -#: c-api/exceptions.rst:1063 +#: c-api/exceptions.rst:1094 msgid ":exc:`ConnectionAbortedError`" msgstr "" -#: c-api/exceptions.rst:1065 -msgid ":c:data:`PyExc_ConnectionError`" -msgstr "" - -#: c-api/exceptions.rst:1065 +#: c-api/exceptions.rst:1096 msgid ":exc:`ConnectionError`" msgstr "" -#: c-api/exceptions.rst:1067 -msgid ":c:data:`PyExc_ConnectionRefusedError`" -msgstr "" - -#: c-api/exceptions.rst:1067 +#: c-api/exceptions.rst:1098 msgid ":exc:`ConnectionRefusedError`" msgstr "" -#: c-api/exceptions.rst:1069 -msgid ":c:data:`PyExc_ConnectionResetError`" -msgstr "" - -#: c-api/exceptions.rst:1069 +#: c-api/exceptions.rst:1100 msgid ":exc:`ConnectionResetError`" msgstr "" -#: c-api/exceptions.rst:1071 -msgid ":c:data:`PyExc_EOFError`" -msgstr "" - -#: c-api/exceptions.rst:1071 +#: c-api/exceptions.rst:1102 msgid ":exc:`EOFError`" msgstr "" -#: c-api/exceptions.rst:1073 -msgid ":c:data:`PyExc_FileExistsError`" -msgstr "" - -#: c-api/exceptions.rst:1073 +#: c-api/exceptions.rst:1104 msgid ":exc:`FileExistsError`" msgstr "" -#: c-api/exceptions.rst:1075 -msgid ":c:data:`PyExc_FileNotFoundError`" -msgstr "" - -#: c-api/exceptions.rst:1075 +#: c-api/exceptions.rst:1106 msgid ":exc:`FileNotFoundError`" msgstr "" -#: c-api/exceptions.rst:1077 -msgid ":c:data:`PyExc_FloatingPointError`" -msgstr "" - -#: c-api/exceptions.rst:1077 +#: c-api/exceptions.rst:1108 msgid ":exc:`FloatingPointError`" msgstr "" -#: c-api/exceptions.rst:1079 -msgid ":c:data:`PyExc_GeneratorExit`" -msgstr "" - -#: c-api/exceptions.rst:1079 +#: c-api/exceptions.rst:1110 msgid ":exc:`GeneratorExit`" msgstr "" -#: c-api/exceptions.rst:1081 -msgid ":c:data:`PyExc_ImportError`" -msgstr "" - -#: c-api/exceptions.rst:1081 +#: c-api/exceptions.rst:1112 msgid ":exc:`ImportError`" msgstr "" -#: c-api/exceptions.rst:1083 -msgid ":c:data:`PyExc_IndentationError`" -msgstr "" - -#: c-api/exceptions.rst:1083 +#: c-api/exceptions.rst:1114 msgid ":exc:`IndentationError`" msgstr "" -#: c-api/exceptions.rst:1085 -msgid ":c:data:`PyExc_IndexError`" -msgstr "" - -#: c-api/exceptions.rst:1085 +#: c-api/exceptions.rst:1116 msgid ":exc:`IndexError`" msgstr "" -#: c-api/exceptions.rst:1087 -msgid ":c:data:`PyExc_InterruptedError`" -msgstr "" - -#: c-api/exceptions.rst:1087 +#: c-api/exceptions.rst:1118 msgid ":exc:`InterruptedError`" msgstr "" -#: c-api/exceptions.rst:1089 -msgid ":c:data:`PyExc_IsADirectoryError`" -msgstr "" - -#: c-api/exceptions.rst:1089 +#: c-api/exceptions.rst:1120 msgid ":exc:`IsADirectoryError`" msgstr "" -#: c-api/exceptions.rst:1091 -msgid ":c:data:`PyExc_KeyError`" -msgstr "" - -#: c-api/exceptions.rst:1091 +#: c-api/exceptions.rst:1122 msgid ":exc:`KeyError`" msgstr "" -#: c-api/exceptions.rst:1093 -msgid ":c:data:`PyExc_KeyboardInterrupt`" -msgstr "" - -#: c-api/exceptions.rst:1093 +#: c-api/exceptions.rst:1124 msgid ":exc:`KeyboardInterrupt`" msgstr "" -#: c-api/exceptions.rst:1095 -msgid ":c:data:`PyExc_LookupError`" -msgstr "" - -#: c-api/exceptions.rst:1095 +#: c-api/exceptions.rst:1126 msgid ":exc:`LookupError`" msgstr "" -#: c-api/exceptions.rst:1097 -msgid ":c:data:`PyExc_MemoryError`" -msgstr "" - -#: c-api/exceptions.rst:1097 +#: c-api/exceptions.rst:1128 msgid ":exc:`MemoryError`" msgstr "" -#: c-api/exceptions.rst:1099 -msgid ":c:data:`PyExc_ModuleNotFoundError`" -msgstr "" - -#: c-api/exceptions.rst:1099 +#: c-api/exceptions.rst:1130 msgid ":exc:`ModuleNotFoundError`" msgstr "" -#: c-api/exceptions.rst:1101 -msgid ":c:data:`PyExc_NameError`" -msgstr "" - -#: c-api/exceptions.rst:1101 +#: c-api/exceptions.rst:1132 msgid ":exc:`NameError`" msgstr "" -#: c-api/exceptions.rst:1103 -msgid ":c:data:`PyExc_NotADirectoryError`" -msgstr "" - -#: c-api/exceptions.rst:1103 +#: c-api/exceptions.rst:1134 msgid ":exc:`NotADirectoryError`" msgstr "" -#: c-api/exceptions.rst:1105 -msgid ":c:data:`PyExc_NotImplementedError`" -msgstr "" - -#: c-api/exceptions.rst:1105 +#: c-api/exceptions.rst:1136 msgid ":exc:`NotImplementedError`" msgstr "" -#: c-api/exceptions.rst:1107 -msgid ":c:data:`PyExc_OSError`" -msgstr "" - -#: c-api/exceptions.rst:1107 +#: c-api/exceptions.rst:1221 c-api/exceptions.rst:1227 msgid ":exc:`OSError`" msgstr "" -#: c-api/exceptions.rst:1109 -msgid ":c:data:`PyExc_OverflowError`" -msgstr "" - -#: c-api/exceptions.rst:1109 +#: c-api/exceptions.rst:1140 msgid ":exc:`OverflowError`" msgstr "" -#: c-api/exceptions.rst:1111 -msgid ":c:data:`PyExc_PermissionError`" -msgstr "" - -#: c-api/exceptions.rst:1111 +#: c-api/exceptions.rst:1142 msgid ":exc:`PermissionError`" msgstr "" -#: c-api/exceptions.rst:1113 -msgid ":c:data:`PyExc_ProcessLookupError`" -msgstr "" - -#: c-api/exceptions.rst:1113 +#: c-api/exceptions.rst:1144 msgid ":exc:`ProcessLookupError`" msgstr "" -#: c-api/exceptions.rst:1115 -msgid ":c:data:`PyExc_PythonFinalizationError`" -msgstr "" - -#: c-api/exceptions.rst:1115 +#: c-api/exceptions.rst:1146 msgid ":exc:`PythonFinalizationError`" msgstr "" -#: c-api/exceptions.rst:1117 -msgid ":c:data:`PyExc_RecursionError`" -msgstr "" - -#: c-api/exceptions.rst:1117 +#: c-api/exceptions.rst:1148 msgid ":exc:`RecursionError`" msgstr "" -#: c-api/exceptions.rst:1119 -msgid ":c:data:`PyExc_ReferenceError`" -msgstr "" - -#: c-api/exceptions.rst:1119 +#: c-api/exceptions.rst:1150 msgid ":exc:`ReferenceError`" msgstr "" -#: c-api/exceptions.rst:1121 -msgid ":c:data:`PyExc_RuntimeError`" -msgstr "" - -#: c-api/exceptions.rst:1121 +#: c-api/exceptions.rst:1152 msgid ":exc:`RuntimeError`" msgstr "" -#: c-api/exceptions.rst:1123 -msgid ":c:data:`PyExc_StopAsyncIteration`" -msgstr "" - -#: c-api/exceptions.rst:1123 +#: c-api/exceptions.rst:1154 msgid ":exc:`StopAsyncIteration`" msgstr "" -#: c-api/exceptions.rst:1125 -msgid ":c:data:`PyExc_StopIteration`" -msgstr "" - -#: c-api/exceptions.rst:1125 +#: c-api/exceptions.rst:1156 msgid ":exc:`StopIteration`" msgstr "" -#: c-api/exceptions.rst:1127 -msgid ":c:data:`PyExc_SyntaxError`" -msgstr "" - -#: c-api/exceptions.rst:1127 +#: c-api/exceptions.rst:1158 msgid ":exc:`SyntaxError`" msgstr "" -#: c-api/exceptions.rst:1129 -msgid ":c:data:`PyExc_SystemError`" -msgstr "" - -#: c-api/exceptions.rst:1129 +#: c-api/exceptions.rst:1160 msgid ":exc:`SystemError`" msgstr "" -#: c-api/exceptions.rst:1131 -msgid ":c:data:`PyExc_SystemExit`" -msgstr "" - -#: c-api/exceptions.rst:1131 +#: c-api/exceptions.rst:1162 msgid ":exc:`SystemExit`" msgstr "" -#: c-api/exceptions.rst:1133 -msgid ":c:data:`PyExc_TabError`" -msgstr "" - -#: c-api/exceptions.rst:1133 +#: c-api/exceptions.rst:1164 msgid ":exc:`TabError`" msgstr "" -#: c-api/exceptions.rst:1135 -msgid ":c:data:`PyExc_TimeoutError`" -msgstr "" - -#: c-api/exceptions.rst:1135 +#: c-api/exceptions.rst:1166 msgid ":exc:`TimeoutError`" msgstr "" -#: c-api/exceptions.rst:1137 -msgid ":c:data:`PyExc_TypeError`" -msgstr "" - -#: c-api/exceptions.rst:1137 +#: c-api/exceptions.rst:1168 msgid ":exc:`TypeError`" msgstr "" -#: c-api/exceptions.rst:1139 -msgid ":c:data:`PyExc_UnboundLocalError`" -msgstr "" - -#: c-api/exceptions.rst:1139 +#: c-api/exceptions.rst:1170 msgid ":exc:`UnboundLocalError`" msgstr "" -#: c-api/exceptions.rst:1141 -msgid ":c:data:`PyExc_UnicodeDecodeError`" -msgstr "" - -#: c-api/exceptions.rst:1141 +#: c-api/exceptions.rst:1172 msgid ":exc:`UnicodeDecodeError`" msgstr "" -#: c-api/exceptions.rst:1143 -msgid ":c:data:`PyExc_UnicodeEncodeError`" -msgstr "" - -#: c-api/exceptions.rst:1143 +#: c-api/exceptions.rst:1174 msgid ":exc:`UnicodeEncodeError`" msgstr "" -#: c-api/exceptions.rst:1145 -msgid ":c:data:`PyExc_UnicodeError`" -msgstr "" - -#: c-api/exceptions.rst:1145 +#: c-api/exceptions.rst:1176 msgid ":exc:`UnicodeError`" msgstr "" -#: c-api/exceptions.rst:1147 -msgid ":c:data:`PyExc_UnicodeTranslateError`" -msgstr "" - -#: c-api/exceptions.rst:1147 +#: c-api/exceptions.rst:1178 msgid ":exc:`UnicodeTranslateError`" msgstr "" -#: c-api/exceptions.rst:1149 -msgid ":c:data:`PyExc_ValueError`" -msgstr "" - -#: c-api/exceptions.rst:1149 +#: c-api/exceptions.rst:1180 msgid ":exc:`ValueError`" msgstr "" -#: c-api/exceptions.rst:1151 -msgid ":c:data:`PyExc_ZeroDivisionError`" -msgstr "" - -#: c-api/exceptions.rst:1151 +#: c-api/exceptions.rst:1182 msgid ":exc:`ZeroDivisionError`" msgstr "" -#: c-api/exceptions.rst:1154 +#: c-api/exceptions.rst:1184 msgid "" ":c:data:`PyExc_BlockingIOError`, :c:data:`PyExc_BrokenPipeError`, :c:data:" "`PyExc_ChildProcessError`, :c:data:`PyExc_ConnectionError`, :c:data:" @@ -1519,476 +1378,160 @@ msgid "" "`PyExc_TimeoutError` were introduced following :pep:`3151`." msgstr "" -#: c-api/exceptions.rst:1164 +#: c-api/exceptions.rst:1194 msgid ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`." msgstr "" -#: c-api/exceptions.rst:1167 +#: c-api/exceptions.rst:1197 msgid ":c:data:`PyExc_ModuleNotFoundError`." msgstr "" -#: c-api/exceptions.rst:1170 +#: c-api/exceptions.rst:1200 msgid ":c:data:`PyExc_BaseExceptionGroup`." msgstr "" -#: c-api/exceptions.rst:1173 -msgid "These are compatibility aliases to :c:data:`PyExc_OSError`:" -msgstr "" - -#: c-api/exceptions.rst:1183 -msgid ":c:data:`!PyExc_EnvironmentError`" -msgstr "" - -#: c-api/exceptions.rst:1185 -msgid ":c:data:`!PyExc_IOError`" -msgstr "" - -#: c-api/exceptions.rst:1187 -msgid ":c:data:`!PyExc_WindowsError`" +#: c-api/exceptions.rst:1205 +msgid "OSError aliases" msgstr "" -#: c-api/exceptions.rst:1187 -msgid "[2]_" +#: c-api/exceptions.rst:1207 +msgid "The following are a compatibility aliases to :c:data:`PyExc_OSError`." msgstr "" -#: c-api/exceptions.rst:1190 +#: c-api/exceptions.rst:1209 msgid "These aliases used to be separate exception types." msgstr "" -#: c-api/exceptions.rst:1260 -msgid "Notes:" -msgstr "" - -#: c-api/exceptions.rst:1196 -msgid "This is a base class for other standard exceptions." +#: c-api/exceptions.rst:1219 +msgid "Notes" msgstr "" -#: c-api/exceptions.rst:1199 -msgid "" -"Only defined on Windows; protect code that uses this by testing that the " -"preprocessor macro ``MS_WINDOWS`` is defined." +#: c-api/exceptions.rst:1228 +msgid "[win]_" msgstr "" -#: c-api/exceptions.rst:1205 -msgid "Standard Warning Categories" +#: c-api/exceptions.rst:1230 +msgid "Notes:" msgstr "" -#: c-api/exceptions.rst:1207 +#: c-api/exceptions.rst:1233 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:expr:`PyObject*`; they are all class objects. For completeness, " -"here are all the variables:" +":c:var:`!PyExc_WindowsError` is only defined on Windows; protect code that " +"uses this by testing that the preprocessor macro ``MS_WINDOWS`` is defined." msgstr "" -#: c-api/exceptions.rst:1229 -msgid ":c:data:`PyExc_Warning`" +#: c-api/exceptions.rst:1240 +msgid "Warning types" msgstr "" -#: c-api/exceptions.rst:1229 +#: c-api/exceptions.rst:1250 msgid ":exc:`Warning`" msgstr "" -#: c-api/exceptions.rst:1229 -msgid "[3]_" -msgstr "" - -#: c-api/exceptions.rst:1231 -msgid ":c:data:`PyExc_BytesWarning`" -msgstr "" - -#: c-api/exceptions.rst:1231 +#: c-api/exceptions.rst:1252 msgid ":exc:`BytesWarning`" msgstr "" -#: c-api/exceptions.rst:1233 -msgid ":c:data:`PyExc_DeprecationWarning`" -msgstr "" - -#: c-api/exceptions.rst:1233 +#: c-api/exceptions.rst:1254 msgid ":exc:`DeprecationWarning`" msgstr "" -#: c-api/exceptions.rst:1235 -msgid ":c:data:`PyExc_EncodingWarning`" -msgstr "" - -#: c-api/exceptions.rst:1235 +#: c-api/exceptions.rst:1256 msgid ":exc:`EncodingWarning`" msgstr "" -#: c-api/exceptions.rst:1237 -msgid ":c:data:`PyExc_FutureWarning`" -msgstr "" - -#: c-api/exceptions.rst:1237 +#: c-api/exceptions.rst:1258 msgid ":exc:`FutureWarning`" msgstr "" -#: c-api/exceptions.rst:1239 -msgid ":c:data:`PyExc_ImportWarning`" -msgstr "" - -#: c-api/exceptions.rst:1239 +#: c-api/exceptions.rst:1260 msgid ":exc:`ImportWarning`" msgstr "" -#: c-api/exceptions.rst:1241 -msgid ":c:data:`PyExc_PendingDeprecationWarning`" -msgstr "" - -#: c-api/exceptions.rst:1241 +#: c-api/exceptions.rst:1262 msgid ":exc:`PendingDeprecationWarning`" msgstr "" -#: c-api/exceptions.rst:1243 -msgid ":c:data:`PyExc_ResourceWarning`" -msgstr "" - -#: c-api/exceptions.rst:1243 +#: c-api/exceptions.rst:1264 msgid ":exc:`ResourceWarning`" msgstr "" -#: c-api/exceptions.rst:1245 -msgid ":c:data:`PyExc_RuntimeWarning`" -msgstr "" - -#: c-api/exceptions.rst:1245 +#: c-api/exceptions.rst:1266 msgid ":exc:`RuntimeWarning`" msgstr "" -#: c-api/exceptions.rst:1247 -msgid ":c:data:`PyExc_SyntaxWarning`" -msgstr "" - -#: c-api/exceptions.rst:1247 +#: c-api/exceptions.rst:1268 msgid ":exc:`SyntaxWarning`" msgstr "" -#: c-api/exceptions.rst:1249 -msgid ":c:data:`PyExc_UnicodeWarning`" -msgstr "" - -#: c-api/exceptions.rst:1249 +#: c-api/exceptions.rst:1270 msgid ":exc:`UnicodeWarning`" msgstr "" -#: c-api/exceptions.rst:1251 -msgid ":c:data:`PyExc_UserWarning`" -msgstr "" - -#: c-api/exceptions.rst:1251 +#: c-api/exceptions.rst:1272 msgid ":exc:`UserWarning`" msgstr "" -#: c-api/exceptions.rst:1254 +#: c-api/exceptions.rst:1274 msgid ":c:data:`PyExc_ResourceWarning`." msgstr "" -#: c-api/exceptions.rst:1257 +#: c-api/exceptions.rst:1277 msgid ":c:data:`PyExc_EncodingWarning`." msgstr "" -#: c-api/exceptions.rst:1263 -msgid "This is a base class for other standard warning categories." -msgstr "" - -#: c-api/exceptions.rst:183 -msgid "strerror (C function)" -msgstr "" - -#: c-api/exceptions.rst:668 c-api/exceptions.rst:683 -msgid "module" -msgstr "" - -#: c-api/exceptions.rst:668 c-api/exceptions.rst:683 -msgid "signal" -msgstr "" - -#: c-api/exceptions.rst:668 -msgid "SIGINT (C macro)" -msgstr "" - -#: c-api/exceptions.rst:668 c-api/exceptions.rst:683 -msgid "KeyboardInterrupt (built-in exception)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_BaseException (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_BaseExceptionGroup (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_Exception (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_ArithmeticError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_AssertionError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_AttributeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_BlockingIOError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_BrokenPipeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_BufferError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_ChildProcessError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_ConnectionAbortedError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_ConnectionError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_ConnectionRefusedError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_ConnectionResetError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_EOFError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_FileExistsError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_FileNotFoundError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_FloatingPointError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_GeneratorExit (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_ImportError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_IndentationError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_IndexError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_InterruptedError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_IsADirectoryError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_KeyError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_KeyboardInterrupt (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_LookupError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_MemoryError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_ModuleNotFoundError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_NameError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_NotADirectoryError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_NotImplementedError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_OSError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_OverflowError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_PermissionError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_ProcessLookupError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_PythonFinalizationError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_RecursionError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_ReferenceError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_RuntimeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_StopAsyncIteration (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_StopIteration (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_SyntaxError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_SystemError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_SystemExit (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_TabError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_TimeoutError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_TypeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_UnboundLocalError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_UnicodeDecodeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_UnicodeEncodeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_UnicodeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_UnicodeTranslateError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_ValueError (C var)" -msgstr "" - -#: c-api/exceptions.rst:983 -msgid "PyExc_ZeroDivisionError (C var)" -msgstr "" - -#: c-api/exceptions.rst:1175 -msgid "PyExc_EnvironmentError (C var)" +#: c-api/exceptions.rst:1282 +msgid "Tracebacks" msgstr "" -#: c-api/exceptions.rst:1175 -msgid "PyExc_IOError (C var)" -msgstr "" - -#: c-api/exceptions.rst:1175 -msgid "PyExc_WindowsError (C var)" -msgstr "" - -#: c-api/exceptions.rst:1212 -msgid "PyExc_Warning (C var)" -msgstr "" - -#: c-api/exceptions.rst:1212 -msgid "PyExc_BytesWarning (C var)" +#: c-api/exceptions.rst:1286 +msgid "" +"Type object for traceback objects. This is available as :class:`types." +"TracebackType` in the Python layer." msgstr "" -#: c-api/exceptions.rst:1212 -msgid "PyExc_DeprecationWarning (C var)" +#: c-api/exceptions.rst:1292 +msgid "" +"Return true if *op* is a traceback object, false otherwise. This function " +"does not account for subtypes." msgstr "" -#: c-api/exceptions.rst:1212 -msgid "PyExc_EncodingWarning (C var)" +#: c-api/exceptions.rst:1298 +msgid "" +"Replace the :attr:`~BaseException.__traceback__` attribute on the current " +"exception with a new traceback prepending *f* to the existing chain." msgstr "" -#: c-api/exceptions.rst:1212 -msgid "PyExc_FutureWarning (C var)" +#: c-api/exceptions.rst:1301 +msgid "Calling this function without an exception set is undefined behavior." msgstr "" -#: c-api/exceptions.rst:1212 -msgid "PyExc_ImportWarning (C var)" +#: c-api/exceptions.rst:1311 +msgid "" +"This function returns ``0`` on success, and returns ``-1`` with an exception " +"set on failure." msgstr "" -#: c-api/exceptions.rst:1212 -msgid "PyExc_PendingDeprecationWarning (C var)" +#: c-api/exceptions.rst:1309 +msgid "Write the traceback *tb* into the file *f*." msgstr "" -#: c-api/exceptions.rst:1212 -msgid "PyExc_ResourceWarning (C var)" +#: c-api/exceptions.rst:183 +msgid "strerror (C function)" msgstr "" -#: c-api/exceptions.rst:1212 -msgid "PyExc_RuntimeWarning (C var)" +#: c-api/exceptions.rst:702 c-api/exceptions.rst:717 +msgid "module" msgstr "" -#: c-api/exceptions.rst:1212 -msgid "PyExc_SyntaxWarning (C var)" +#: c-api/exceptions.rst:702 c-api/exceptions.rst:717 +msgid "signal" msgstr "" -#: c-api/exceptions.rst:1212 -msgid "PyExc_UnicodeWarning (C var)" +#: c-api/exceptions.rst:702 +msgid "SIGINT (C macro)" msgstr "" -#: c-api/exceptions.rst:1212 -msgid "PyExc_UserWarning (C var)" +#: c-api/exceptions.rst:702 c-api/exceptions.rst:717 +msgid "KeyboardInterrupt (built-in exception)" msgstr "" diff --git a/c-api/extension-modules.po b/c-api/extension-modules.po index 5e36e113..66ed01f0 100644 --- a/c-api/extension-modules.po +++ b/c-api/extension-modules.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+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" @@ -349,6 +350,6 @@ msgstr "" #: c-api/extension-modules.rst:245 msgid "" -"``_testsinglephase`` is an internal module used \\ in CPython's self-test " -"suite; your installation may or may not \\ include it." +"``_testsinglephase`` is an internal module used in CPython's self-test " +"suite; your installation may or may not include it." msgstr "" diff --git a/c-api/file.po b/c-api/file.po index 92c99e61..75008782 100644 --- a/c-api/file.po +++ b/c-api/file.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -123,7 +123,31 @@ msgid "" "arguments." msgstr "" -#: c-api/file.rst:101 +#: c-api/file.rst:98 +msgid "" +"Open *path* with the mode ``'rb'``. *path* must be a Python :class:`str` " +"object. The behavior of this function may be overridden by :c:func:" +"`PyFile_SetOpenCodeHook` to allow for some preprocessing of the text." +msgstr "" + +#: c-api/file.rst:103 +msgid "This is analogous to :func:`io.open_code` in Python." +msgstr "" + +#: c-api/file.rst:105 +msgid "" +"On success, this function returns a :term:`strong reference` to a Python " +"file object. On failure, this function returns ``NULL`` with an exception " +"set." +msgstr "" + +#: c-api/file.rst:114 +msgid "" +"Similar to :c:func:`PyFile_OpenCodeObject`, but *path* is a UTF-8 encoded :c:" +"expr:`const char*`." +msgstr "" + +#: c-api/file.rst:124 msgid "" "Write object *obj* to file object *p*. The only supported flag for *flags* " "is :c:macro:`Py_PRINT_RAW`; if given, the :func:`str` of the object is " @@ -131,7 +155,7 @@ msgid "" "failure; the appropriate exception will be set." msgstr "" -#: c-api/file.rst:109 +#: c-api/file.rst:132 msgid "" "Write string *s* to file object *p*. Return ``0`` on success or ``-1`` on " "failure; the appropriate exception will be set." @@ -149,6 +173,6 @@ msgstr "" msgid "EOFError (built-in exception)" msgstr "" -#: c-api/file.rst:99 +#: c-api/file.rst:122 msgid "Py_PRINT_RAW (C macro)" msgstr "" diff --git a/c-api/float.po b/c-api/float.po index 4b63ec4c..7de64544 100644 --- a/c-api/float.po +++ b/c-api/float.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -93,11 +93,124 @@ msgid "" "Return the minimum normalized positive float *DBL_MIN* as C :c:expr:`double`." msgstr "" -#: c-api/float.rst:82 +#: c-api/float.rst:83 +msgid "" +"This macro expands a to constant expression of type :c:expr:`double`, that " +"represents the positive infinity." +msgstr "" + +#: c-api/float.rst:86 +msgid "" +"On most platforms, this is equivalent to the :c:macro:`!INFINITY` macro from " +"the C11 standard ```` header." +msgstr "" + +#: c-api/float.rst:92 +msgid "" +"This macro expands a to constant expression of type :c:expr:`double`, that " +"represents a quiet not-a-number (qNaN) value." +msgstr "" + +#: c-api/float.rst:95 +msgid "" +"On most platforms, this is equivalent to the :c:macro:`!NAN` macro from the " +"C11 standard ```` header." +msgstr "" + +#: c-api/float.rst:101 +msgid "Equivalent to :c:macro:`!INFINITY`." +msgstr "" + +#: c-api/float.rst:103 +msgid "The macro is :term:`soft deprecated`." +msgstr "" + +#: c-api/float.rst:109 +msgid "" +"The definition (accurate for a :c:expr:`double` type) of the :data:`math.e` " +"constant." +msgstr "" + +#: c-api/float.rst:114 +msgid "High precision (long double) definition of :data:`~math.e` constant." +msgstr "" + +#: c-api/float.rst:119 +msgid "" +"The definition (accurate for a :c:expr:`double` type) of the :data:`math.pi` " +"constant." +msgstr "" + +#: c-api/float.rst:124 +msgid "High precision (long double) definition of :data:`~math.pi` constant." +msgstr "" + +#: c-api/float.rst:129 +msgid "" +"The definition (accurate for a :c:expr:`double` type) of the :data:`math." +"tau` constant." +msgstr "" + +#: c-api/float.rst:136 +msgid "Return :data:`math.nan` from a function." +msgstr "" + +#: c-api/float.rst:138 +msgid "" +"On most platforms, this is equivalent to ``return PyFloat_FromDouble(NAN)``." +msgstr "" + +#: c-api/float.rst:143 +msgid "" +"Return :data:`math.inf` or :data:`-math.inf ` from a function, " +"depending on the sign of *sign*." +msgstr "" + +#: c-api/float.rst:146 +msgid "On most platforms, this is equivalent to the following::" +msgstr "" + +#: c-api/float.rst:148 +msgid "return PyFloat_FromDouble(copysign(INFINITY, sign));" +msgstr "" + +#: c-api/float.rst:153 +msgid "" +"Return ``1`` if the given floating-point number *X* is finite, that is, it " +"is normal, subnormal or zero, but not infinite or NaN. Return ``0`` " +"otherwise." +msgstr "" + +#: c-api/float.rst:157 +msgid "" +"The macro is :term:`soft deprecated`. Use :c:macro:`!isfinite` instead." +msgstr "" + +#: c-api/float.rst:163 +msgid "" +"Return ``1`` if the given floating-point number *X* is positive or negative " +"infinity. Return ``0`` otherwise." +msgstr "" + +#: c-api/float.rst:166 +msgid "The macro is :term:`soft deprecated`. Use :c:macro:`!isinf` instead." +msgstr "" + +#: c-api/float.rst:172 +msgid "" +"Return ``1`` if the given floating-point number *X* is a not-a-number (NaN) " +"value. Return ``0`` otherwise." +msgstr "" + +#: c-api/float.rst:175 +msgid "The macro is :term:`soft deprecated`. Use :c:macro:`!isnan` instead." +msgstr "" + +#: c-api/float.rst:180 msgid "Pack and Unpack functions" msgstr "" -#: c-api/float.rst:84 +#: c-api/float.rst:182 msgid "" "The pack and unpack functions provide an efficient platform-independent way " "to store floating-point values as byte strings. The Pack routines produce a " @@ -106,7 +219,7 @@ msgid "" "the number of bytes in the bytes string." msgstr "" -#: c-api/float.rst:90 +#: c-api/float.rst:188 msgid "" "On platforms that appear to use IEEE 754 formats these functions work by " "copying bits. On other platforms, the 2-byte format is identical to the IEEE " @@ -118,13 +231,13 @@ msgid "" "an exception." msgstr "" -#: c-api/float.rst:99 +#: c-api/float.rst:197 msgid "" -"Note that NaNs type may not be preserved on IEEE platforms (silent NaN " -"become quiet), for example on x86 systems in 32-bit mode." +"Note that NaNs type may not be preserved on IEEE platforms (signaling NaN " +"become quiet NaN), for example on x86 systems in 32-bit mode." msgstr "" -#: c-api/float.rst:102 +#: c-api/float.rst:200 msgid "" "On non-IEEE platforms with more precision, or larger dynamic range, than " "IEEE 754 supports, not all values can be packed; on non-IEEE platforms with " @@ -132,11 +245,11 @@ msgid "" "What happens in such cases is partly accidental (alas)." msgstr "" -#: c-api/float.rst:110 +#: c-api/float.rst:208 msgid "Pack functions" msgstr "" -#: c-api/float.rst:112 +#: c-api/float.rst:210 msgid "" "The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:" "`int` argument, non-zero if you want the bytes string in little-endian " @@ -146,41 +259,41 @@ msgid "" "to ``1`` on big endian processor, or ``0`` on little endian processor." msgstr "" -#: c-api/float.rst:119 +#: c-api/float.rst:217 msgid "" "Return value: ``0`` if all is OK, ``-1`` if error (and an exception is set, " "most likely :exc:`OverflowError`)." msgstr "" -#: c-api/float.rst:122 +#: c-api/float.rst:220 msgid "There are two problems on non-IEEE platforms:" msgstr "" -#: c-api/float.rst:124 +#: c-api/float.rst:222 msgid "What this does is undefined if *x* is a NaN or infinity." msgstr "" -#: c-api/float.rst:125 +#: c-api/float.rst:223 msgid "``-0.0`` and ``+0.0`` produce the same bytes string." msgstr "" -#: c-api/float.rst:129 +#: c-api/float.rst:227 msgid "Pack a C double as the IEEE 754 binary16 half-precision format." msgstr "" -#: c-api/float.rst:133 +#: c-api/float.rst:231 msgid "Pack a C double as the IEEE 754 binary32 single precision format." msgstr "" -#: c-api/float.rst:137 +#: c-api/float.rst:235 msgid "Pack a C double as the IEEE 754 binary64 double precision format." msgstr "" -#: c-api/float.rst:141 +#: c-api/float.rst:239 msgid "Unpack functions" msgstr "" -#: c-api/float.rst:143 +#: c-api/float.rst:241 msgid "" "The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is an :c:" "expr:`int` argument, non-zero if the bytes string is in little-endian format " @@ -190,28 +303,28 @@ msgid "" "processor, or ``0`` on little endian processor." msgstr "" -#: c-api/float.rst:150 +#: c-api/float.rst:248 msgid "" "Return value: The unpacked double. On error, this is ``-1.0`` and :c:func:" "`PyErr_Occurred` is true (and an exception is set, most likely :exc:" "`OverflowError`)." msgstr "" -#: c-api/float.rst:154 +#: c-api/float.rst:252 msgid "" "Note that on a non-IEEE platform this will refuse to unpack a bytes string " "that represents a NaN or infinity." msgstr "" -#: c-api/float.rst:159 +#: c-api/float.rst:257 msgid "Unpack the IEEE 754 binary16 half-precision format as a C double." msgstr "" -#: c-api/float.rst:163 +#: c-api/float.rst:261 msgid "Unpack the IEEE 754 binary32 single precision format as a C double." msgstr "" -#: c-api/float.rst:167 +#: c-api/float.rst:265 msgid "Unpack the IEEE 754 binary64 double precision format as a C double." msgstr "" diff --git a/c-api/frame.po b/c-api/frame.po index 0f68bb6f..7db6919c 100644 --- a/c-api/frame.po +++ b/c-api/frame.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -57,95 +57,102 @@ msgid "" msgstr "" #: c-api/frame.rst:34 +msgid "" +"Create a new frame object. This function returns a :term:`strong reference` " +"to the new frame object on success, and returns ``NULL`` with an exception " +"set on failure." +msgstr "" + +#: c-api/frame.rst:40 msgid "Return non-zero if *obj* is a frame object." msgstr "" -#: c-api/frame.rst:38 +#: c-api/frame.rst:44 msgid "" "Previously, this function was only available after including ````." msgstr "" -#: c-api/frame.rst:43 +#: c-api/frame.rst:49 msgid "Get the *frame* next outer frame." msgstr "" -#: c-api/frame.rst:45 +#: c-api/frame.rst:51 msgid "" "Return a :term:`strong reference`, or ``NULL`` if *frame* has no outer frame." msgstr "" -#: c-api/frame.rst:53 +#: c-api/frame.rst:59 msgid "Get the *frame*'s :attr:`~frame.f_builtins` attribute." msgstr "" -#: c-api/frame.rst:86 +#: c-api/frame.rst:92 msgid "Return a :term:`strong reference`. The result cannot be ``NULL``." msgstr "" -#: c-api/frame.rst:62 +#: c-api/frame.rst:68 msgid "Get the *frame* code." msgstr "" -#: c-api/frame.rst:130 +#: c-api/frame.rst:136 msgid "Return a :term:`strong reference`." msgstr "" -#: c-api/frame.rst:66 +#: c-api/frame.rst:72 msgid "The result (frame code) cannot be ``NULL``." msgstr "" -#: c-api/frame.rst:73 +#: c-api/frame.rst:79 msgid "" "Get the generator, coroutine, or async generator that owns this frame, or " "``NULL`` if this frame is not owned by a generator. Does not raise an " "exception, even if the return value is ``NULL``." msgstr "" -#: c-api/frame.rst:77 +#: c-api/frame.rst:83 msgid "Return a :term:`strong reference`, or ``NULL``." msgstr "" -#: c-api/frame.rst:84 +#: c-api/frame.rst:90 msgid "Get the *frame*'s :attr:`~frame.f_globals` attribute." msgstr "" -#: c-api/frame.rst:93 +#: c-api/frame.rst:99 msgid "Get the *frame*'s :attr:`~frame.f_lasti` attribute." msgstr "" -#: c-api/frame.rst:95 +#: c-api/frame.rst:101 msgid "Returns -1 if ``frame.f_lasti`` is ``None``." msgstr "" -#: c-api/frame.rst:102 +#: c-api/frame.rst:108 msgid "Get the variable *name* of *frame*." msgstr "" -#: c-api/frame.rst:104 +#: c-api/frame.rst:110 msgid "Return a :term:`strong reference` to the variable value on success." msgstr "" -#: c-api/frame.rst:105 +#: c-api/frame.rst:111 msgid "" "Raise :exc:`NameError` and return ``NULL`` if the variable does not exist." msgstr "" -#: c-api/frame.rst:106 +#: c-api/frame.rst:112 msgid "Raise an exception and return ``NULL`` on error." msgstr "" -#: c-api/frame.rst:108 +#: c-api/frame.rst:114 msgid "*name* type must be a :class:`str`." msgstr "" -#: c-api/frame.rst:115 +#: c-api/frame.rst:121 msgid "" "Similar to :c:func:`PyFrame_GetVar`, but the variable name is a C string " "encoded in UTF-8." msgstr "" -#: c-api/frame.rst:123 +#: c-api/frame.rst:129 msgid "" "Get the *frame*'s :attr:`~frame.f_locals` attribute. If the frame refers to " "an :term:`optimized scope`, this returns a write-through proxy object that " @@ -154,21 +161,21 @@ msgid "" "directly (as described for :func:`locals`)." msgstr "" -#: c-api/frame.rst:134 +#: c-api/frame.rst:140 msgid "" "As part of :pep:`667`, return an instance of :c:var:" "`PyFrameLocalsProxy_Type`." msgstr "" -#: c-api/frame.rst:140 +#: c-api/frame.rst:146 msgid "Return the line number that *frame* is currently executing." msgstr "" -#: c-api/frame.rst:144 +#: c-api/frame.rst:150 msgid "Frame Locals Proxies" msgstr "" -#: c-api/frame.rst:148 +#: c-api/frame.rst:154 msgid "" "The :attr:`~frame.f_locals` attribute on a :ref:`frame object ` is an instance of a \"frame-locals proxy\". The proxy object " @@ -177,39 +184,85 @@ msgid "" "to date with the live local variables in the frame itself." msgstr "" -#: c-api/frame.rst:154 +#: c-api/frame.rst:160 msgid "See :pep:`667` for more information." msgstr "" -#: c-api/frame.rst:158 +#: c-api/frame.rst:164 msgid "The type of frame :func:`locals` proxy objects." msgstr "" -#: c-api/frame.rst:162 +#: c-api/frame.rst:168 msgid "Return non-zero if *obj* is a frame :func:`locals` proxy." msgstr "" -#: c-api/frame.rst:165 +#: c-api/frame.rst:172 +msgid "Legacy Local Variable APIs" +msgstr "" + +#: c-api/frame.rst:174 +msgid "" +"These APIs are :term:`soft deprecated`. As of Python 3.13, they do nothing. " +"They exist solely for backwards compatibility." +msgstr "" + +#: c-api/frame.rst:194 c-api/frame.rst:207 +msgid "This function is :term:`soft deprecated` and does nothing." +msgstr "" + +#: c-api/frame.rst:182 +msgid "" +"Prior to Python 3.13, this function would copy the :attr:`~frame.f_locals` " +"attribute of *f* to the internal \"fast\" array of local variables, allowing " +"changes in frame objects to be visible to the interpreter. If *clear* was " +"true, this function would process variables that were unset in the locals " +"dictionary." +msgstr "" + +#: c-api/frame.rst:201 c-api/frame.rst:213 +msgid "This function now does nothing." +msgstr "" + +#: c-api/frame.rst:196 +msgid "" +"Prior to Python 3.13, this function would copy the internal \"fast\" array " +"of local variables (which is used by the interpreter) to the :attr:`~frame." +"f_locals` attribute of *f*, allowing changes in local variables to be " +"visible to frame objects." +msgstr "" + +#: c-api/frame.rst:209 +msgid "" +"Prior to Python 3.13, this function was similar to :c:func:" +"`PyFrame_FastToLocals`, but would return ``0`` on success, and ``-1`` with " +"an exception set on failure." +msgstr "" + +#: c-api/frame.rst:218 +msgid ":pep:`667`" +msgstr "" + +#: c-api/frame.rst:222 msgid "Internal Frames" msgstr "" -#: c-api/frame.rst:167 +#: c-api/frame.rst:224 msgid "Unless using :pep:`523`, you will not need this." msgstr "" -#: c-api/frame.rst:171 +#: c-api/frame.rst:228 msgid "The interpreter's internal frame representation." msgstr "" -#: c-api/frame.rst:177 +#: c-api/frame.rst:234 msgid "Return a :term:`strong reference` to the code object for the frame." msgstr "" -#: c-api/frame.rst:184 +#: c-api/frame.rst:241 msgid "Return the byte offset into the last executed instruction." msgstr "" -#: c-api/frame.rst:191 +#: c-api/frame.rst:248 msgid "" "Return the currently executing line number, or -1 if there is no line number." msgstr "" diff --git a/c-api/function.po b/c-api/function.po index 5478479f..a237ec8c 100644 --- a/c-api/function.po +++ b/c-api/function.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -100,7 +100,7 @@ msgid "" "must be ``Py_None`` or a tuple." msgstr "" -#: c-api/function.rst:109 c-api/function.rst:123 +#: c-api/function.rst:125 c-api/function.rst:139 msgid "Raises :exc:`SystemError` and returns ``-1`` on failure." msgstr "" @@ -114,31 +114,56 @@ msgid "" "unaltered (default) vectorcall function!" msgstr "" -#: c-api/function.rst:100 +#: c-api/function.rst:101 +msgid "" +"Return the keyword-only argument default values of the function object *op*. " +"This can be a dictionary of arguments or ``NULL``." +msgstr "" + +#: c-api/function.rst:107 +msgid "" +"Set the keyword-only argument default values of the function object *op*. " +"*defaults* must be a dictionary of keyword-only arguments or ``Py_None``." +msgstr "" + +#: c-api/function.rst:110 +msgid "" +"This function returns ``0`` on success, and returns ``-1`` with an exception " +"set on failure." +msgstr "" + +#: c-api/function.rst:116 msgid "" "Return the closure associated with the function object *op*. This can be " "``NULL`` or a tuple of cell objects." msgstr "" -#: c-api/function.rst:106 +#: c-api/function.rst:122 msgid "" "Set the closure associated with the function object *op*. *closure* must be " "``Py_None`` or a tuple of cell objects." msgstr "" -#: c-api/function.rst:114 +#: c-api/function.rst:130 msgid "" "Return the annotations of the function object *op*. This can be a mutable " "dictionary or ``NULL``." msgstr "" -#: c-api/function.rst:120 +#: c-api/function.rst:136 msgid "" "Set the annotations for the function object *op*. *annotations* must be a " "dictionary or ``Py_None``." msgstr "" -#: c-api/function.rst:128 +#: c-api/function.rst:150 +msgid "" +"These functions are similar to their ``PyFunction_Get*`` counterparts, but " +"do not do type checking. Passing anything other than an instance of :c:data:" +"`PyFunction_Type` is undefined behavior." +msgstr "" + +#: c-api/function.rst:157 msgid "" "Register *callback* as a function watcher for the current interpreter. " "Return an ID which may be passed to :c:func:`PyFunction_ClearWatcher`. In " @@ -146,7 +171,7 @@ msgid "" "exception." msgstr "" -#: c-api/function.rst:138 +#: c-api/function.rst:167 msgid "" "Clear watcher identified by *watcher_id* previously returned from :c:func:" "`PyFunction_AddWatcher` for the current interpreter. Return ``0`` on " @@ -154,35 +179,35 @@ msgid "" "*watcher_id* was never registered.)" msgstr "" -#: c-api/function.rst:148 +#: c-api/function.rst:177 msgid "Enumeration of possible function watcher events:" msgstr "" -#: c-api/function.rst:150 +#: c-api/function.rst:179 msgid "``PyFunction_EVENT_CREATE``" msgstr "" -#: c-api/function.rst:151 +#: c-api/function.rst:180 msgid "``PyFunction_EVENT_DESTROY``" msgstr "" -#: c-api/function.rst:152 +#: c-api/function.rst:181 msgid "``PyFunction_EVENT_MODIFY_CODE``" msgstr "" -#: c-api/function.rst:153 +#: c-api/function.rst:182 msgid "``PyFunction_EVENT_MODIFY_DEFAULTS``" msgstr "" -#: c-api/function.rst:154 +#: c-api/function.rst:183 msgid "``PyFunction_EVENT_MODIFY_KWDEFAULTS``" msgstr "" -#: c-api/function.rst:161 +#: c-api/function.rst:190 msgid "Type of a function watcher callback function." msgstr "" -#: c-api/function.rst:163 +#: c-api/function.rst:192 msgid "" "If *event* is ``PyFunction_EVENT_CREATE`` or ``PyFunction_EVENT_DESTROY`` " "then *new_value* will be ``NULL``. Otherwise, *new_value* will hold a :term:" @@ -190,13 +215,13 @@ msgid "" "for the attribute that is being modified." msgstr "" -#: c-api/function.rst:168 +#: c-api/function.rst:197 msgid "" "The callback may inspect but must not modify *func*; doing so could have " "unpredictable effects, including infinite recursion." msgstr "" -#: c-api/function.rst:171 +#: c-api/function.rst:200 msgid "" "If *event* is ``PyFunction_EVENT_CREATE``, then the callback is invoked " "after *func* has been fully initialized. Otherwise, the callback is invoked " @@ -208,7 +233,7 @@ msgid "" "semantics of the Python code being executed." msgstr "" -#: c-api/function.rst:180 +#: c-api/function.rst:209 msgid "" "If *event* is ``PyFunction_EVENT_DESTROY``, Taking a reference in the " "callback to the about-to-be-destroyed function will resurrect it, preventing " @@ -216,14 +241,14 @@ msgid "" "later, any watcher callbacks active at that time will be called again." msgstr "" -#: c-api/function.rst:185 +#: c-api/function.rst:214 msgid "" "If the callback sets an exception, it must return ``-1``; this exception " "will be printed as an unraisable exception using :c:func:" "`PyErr_WriteUnraisable`. Otherwise it should return ``0``." msgstr "" -#: c-api/function.rst:189 +#: c-api/function.rst:218 msgid "" "There may already be a pending exception set on entry to the callback. In " "this case, the callback should return ``0`` with the same exception still " diff --git a/c-api/gcsupport.po b/c-api/gcsupport.po index dd6b56f8..a6323ab2 100644 --- a/c-api/gcsupport.po +++ b/c-api/gcsupport.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/gen.po b/c-api/gen.po index 2c27a415..997ede92 100644 --- a/c-api/gen.po +++ b/c-api/gen.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -63,3 +63,43 @@ msgid "" "to *frame* is stolen by this function. The *frame* argument must not be " "``NULL``." msgstr "" + +#: c-api/gen.rst:50 +msgid "" +"Return a new :term:`strong reference` to the code object wrapped by *gen*. " +"This function always succeeds." +msgstr "" + +#: c-api/gen.rst:55 +msgid "Asynchronous Generator Objects" +msgstr "" + +#: c-api/gen.rst:58 +msgid ":pep:`525`" +msgstr "" + +#: c-api/gen.rst:62 +msgid "" +"The type object corresponding to asynchronous generator objects. This is " +"available as :class:`types.AsyncGeneratorType` in the Python layer." +msgstr "" + +#: c-api/gen.rst:69 +msgid "" +"Create a new asynchronous generator wrapping *frame*, with ``__name__`` and " +"``__qualname__`` set to *name* and *qualname*. *frame* is stolen by this " +"function and must not be ``NULL``." +msgstr "" + +#: c-api/gen.rst:73 +msgid "" +"On success, this function returns a :term:`strong reference` to the new " +"asynchronous generator. On failure, this function returns ``NULL`` with an " +"exception set." +msgstr "" + +#: c-api/gen.rst:81 +msgid "" +"Return true if *op* is an asynchronous generator object, false otherwise. " +"This function always succeeds." +msgstr "" diff --git a/c-api/hash.po b/c-api/hash.po index 5b3cc691..12cc7b55 100644 --- a/c-api/hash.po +++ b/c-api/hash.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,67 +30,146 @@ msgstr "" msgid "Hash value type: signed integer." msgstr "" -#: c-api/hash.rst:16 +#: c-api/hash.rst:17 msgid "Hash value type: unsigned integer." msgstr "" -#: c-api/hash.rst:22 +#: c-api/hash.rst:24 +msgid "" +"A numerical value indicating the algorithm for hashing of :class:`str`, :" +"class:`bytes`, and :class:`memoryview`." +msgstr "" + +#: c-api/hash.rst:27 +msgid "The algorithm name is exposed by :data:`sys.hash_info.algorithm`." +msgstr "" + +#: c-api/hash.rst:36 +msgid "" +"Numerical values to compare to :c:macro:`Py_HASH_ALGORITHM` to determine " +"which algorithm is used for hashing. The hash algorithm can be configured " +"via the configure :option:`--with-hash-algorithm` option." +msgstr "" + +#: c-api/hash.rst:40 +msgid "Add :c:macro:`!Py_HASH_FNV` and :c:macro:`!Py_HASH_SIPHASH24`." +msgstr "" + +#: c-api/hash.rst:43 +msgid "Add :c:macro:`!Py_HASH_SIPHASH13`." +msgstr "" + +#: c-api/hash.rst:49 +msgid "" +"Buffers of length in range ``[1, Py_HASH_CUTOFF)`` are hashed using DJBX33A " +"instead of the algorithm described by :c:macro:`Py_HASH_ALGORITHM`." +msgstr "" + +#: c-api/hash.rst:52 +msgid "A :c:macro:`!Py_HASH_CUTOFF` of 0 disables the optimization." +msgstr "" + +#: c-api/hash.rst:53 +msgid "" +":c:macro:`!Py_HASH_CUTOFF` must be non-negative and less or equal than 7." +msgstr "" + +#: c-api/hash.rst:55 +msgid "" +"32-bit platforms should use a cutoff smaller than 64-bit platforms because " +"it is easier to create colliding strings. A cutoff of 7 on 64-bit platforms " +"and 5 on 32-bit platforms should provide a decent safety margin." +msgstr "" + +#: c-api/hash.rst:59 +msgid "This corresponds to the :data:`sys.hash_info.cutoff` constant." +msgstr "" + +#: c-api/hash.rst:66 msgid "" "The `Mersenne prime `_ ``P = " "2**n -1``, used for numeric hash scheme." msgstr "" -#: c-api/hash.rst:28 +#: c-api/hash.rst:69 +msgid "This corresponds to the :data:`sys.hash_info.modulus` constant." +msgstr "" + +#: c-api/hash.rst:76 msgid "The exponent ``n`` of ``P`` in :c:macro:`PyHASH_MODULUS`." msgstr "" -#: c-api/hash.rst:34 +#: c-api/hash.rst:83 msgid "Prime multiplier used in string and various other hashes." msgstr "" -#: c-api/hash.rst:40 +#: c-api/hash.rst:90 msgid "The hash value returned for a positive infinity." msgstr "" -#: c-api/hash.rst:46 +#: c-api/hash.rst:92 +msgid "This corresponds to the :data:`sys.hash_info.inf` constant." +msgstr "" + +#: c-api/hash.rst:99 msgid "The multiplier used for the imaginary part of a complex number." msgstr "" -#: c-api/hash.rst:52 +#: c-api/hash.rst:101 +msgid "This corresponds to the :data:`sys.hash_info.imag` constant." +msgstr "" + +#: c-api/hash.rst:108 msgid "Hash function definition used by :c:func:`PyHash_GetFuncDef`." msgstr "" -#: c-api/hash.rst:60 +#: c-api/hash.rst:112 +msgid "Hash function." +msgstr "" + +#: c-api/hash.rst:116 msgid "Hash function name (UTF-8 encoded string)." msgstr "" -#: c-api/hash.rst:64 +#: c-api/hash.rst:118 +msgid "This corresponds to the :data:`sys.hash_info.algorithm` constant." +msgstr "" + +#: c-api/hash.rst:122 msgid "Internal size of the hash value in bits." msgstr "" -#: c-api/hash.rst:68 +#: c-api/hash.rst:124 +msgid "This corresponds to the :data:`sys.hash_info.hash_bits` constant." +msgstr "" + +#: c-api/hash.rst:128 msgid "Size of seed input in bits." msgstr "" -#: c-api/hash.rst:75 +#: c-api/hash.rst:130 +msgid "This corresponds to the :data:`sys.hash_info.seed_bits` constant." +msgstr "" + +#: c-api/hash.rst:137 msgid "Get the hash function definition." msgstr "" -#: c-api/hash.rst:78 +#: c-api/hash.rst:140 msgid ":pep:`456` \"Secure and interchangeable hash algorithm\"." msgstr "" -#: c-api/hash.rst:85 +#: c-api/hash.rst:147 msgid "" "Hash a pointer value: process the pointer value as an integer (cast it to " "``uintptr_t`` internally). The pointer is not dereferenced." msgstr "" -#: c-api/hash.rst:88 +#: c-api/hash.rst:150 msgid "The function cannot fail: it cannot return ``-1``." msgstr "" -#: c-api/hash.rst:95 +#: c-api/hash.rst:157 msgid "" "Compute and return the hash value of a buffer of *len* bytes starting at " "address *ptr*. The hash is guaranteed to match that of :class:`bytes`, :" @@ -98,26 +177,26 @@ msgid "" "`buffer protocol `." msgstr "" -#: c-api/hash.rst:100 +#: c-api/hash.rst:162 msgid "" "Use this function to implement hashing for immutable objects whose :c:member:" "`~PyTypeObject.tp_richcompare` function compares to another object's buffer." msgstr "" -#: c-api/hash.rst:104 +#: c-api/hash.rst:166 msgid "*len* must be greater than or equal to ``0``." msgstr "" -#: c-api/hash.rst:106 +#: c-api/hash.rst:168 msgid "This function always succeeds." msgstr "" -#: c-api/hash.rst:113 +#: c-api/hash.rst:175 msgid "" "Generic hashing function that is meant to be put into a type object's " "``tp_hash`` slot. Its result only depends on the object's identity." msgstr "" -#: c-api/hash.rst:118 +#: c-api/hash.rst:180 msgid "In CPython, it is equivalent to :c:func:`Py_HashPointer`." msgstr "" diff --git a/c-api/import.po b/c-api/import.po index 3cb25b4e..e9d3387f 100644 --- a/c-api/import.po +++ b/c-api/import.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -374,14 +374,21 @@ msgid "" msgstr "" #: c-api/import.rst:332 +msgid "" +"The table of built-in modules used by Python initialization. Do not use this " +"directly; use :c:func:`PyImport_AppendInittab` and :c:func:" +"`PyImport_ExtendInittab` instead." +msgstr "" + +#: c-api/import.rst:339 msgid "Import the module *mod_name* and get its attribute *attr_name*." msgstr "" -#: c-api/import.rst:334 +#: c-api/import.rst:341 msgid "Names must be Python :class:`str` objects." msgstr "" -#: c-api/import.rst:336 +#: c-api/import.rst:343 msgid "" "Helper function combining :c:func:`PyImport_Import` and :c:func:" "`PyObject_GetAttr`. For example, it can raise :exc:`ImportError` if the " @@ -389,7 +396,7 @@ msgid "" "exist." msgstr "" -#: c-api/import.rst:345 +#: c-api/import.rst:352 msgid "" "Similar to :c:func:`PyImport_ImportModuleAttr`, but names are UTF-8 encoded " "strings instead of Python :class:`str` objects." diff --git a/c-api/index.po b/c-api/index.po index 1cfed0a0..c9dc7944 100644 --- a/c-api/index.po +++ b/c-api/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/init.po b/c-api/init.po index 2b5ba9b9..a0147060 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1501,54 +1501,60 @@ msgid "" "which interpreter they belong." msgstr "" -#: c-api/init.rst:1190 +#: c-api/init.rst:1189 +msgid "" +":pep:`684` introduced the possibility of a :ref:`per-interpreter GIL `. See :c:func:`Py_NewInterpreterFromConfig`." +msgstr "" + +#: c-api/init.rst:1196 msgid "" "This data structure represents the state of a single thread. The only " "public data member is:" msgstr "" -#: c-api/init.rst:1195 +#: c-api/init.rst:1201 msgid "This thread's interpreter state." msgstr "" -#: c-api/init.rst:1206 +#: c-api/init.rst:1212 msgid "Deprecated function which does nothing." msgstr "" -#: c-api/init.rst:1208 +#: c-api/init.rst:1214 msgid "" "In Python 3.6 and older, this function created the GIL if it didn't exist." msgstr "" -#: c-api/init.rst:1210 +#: c-api/init.rst:1216 msgid "The function now does nothing." msgstr "" -#: c-api/init.rst:1213 +#: c-api/init.rst:1219 msgid "" "This function is now called by :c:func:`Py_Initialize()`, so you don't have " "to call it yourself anymore." msgstr "" -#: c-api/init.rst:1217 +#: c-api/init.rst:1223 msgid "" "This function cannot be called before :c:func:`Py_Initialize()` anymore." msgstr "" -#: c-api/init.rst:1227 +#: c-api/init.rst:1233 msgid "" "Detach the :term:`attached thread state` and return it. The thread will have " "no :term:`thread state` upon returning." msgstr "" -#: c-api/init.rst:1233 +#: c-api/init.rst:1239 msgid "" "Set the :term:`attached thread state` to *tstate*. The passed :term:`thread " "state` **should not** be :term:`attached `, otherwise " "deadlock ensues. *tstate* will be attached upon returning." msgstr "" -#: c-api/init.rst:1609 +#: c-api/init.rst:1688 msgid "" "Calling this function from a thread when the runtime is finalizing will hang " "the thread until the program exits, even if the thread was not created by " @@ -1556,13 +1562,13 @@ msgid "" "details." msgstr "" -#: c-api/init.rst:1314 c-api/init.rst:1619 +#: c-api/init.rst:1333 c-api/init.rst:1698 msgid "" "Hangs the current thread, rather than terminating it, if called while the " "interpreter is finalizing." msgstr "" -#: c-api/init.rst:1249 +#: c-api/init.rst:1255 msgid "" "Return the :term:`attached thread state`. If the thread has no attached " "thread state, (such as when inside of :c:macro:`Py_BEGIN_ALLOW_THREADS` " @@ -1570,48 +1576,66 @@ msgid "" "``NULL``)." msgstr "" -#: c-api/init.rst:1254 +#: c-api/init.rst:1260 msgid "See also :c:func:`PyThreadState_GetUnchecked`." msgstr "" -#: c-api/init.rst:1258 +#: c-api/init.rst:1264 msgid "" "Similar to :c:func:`PyThreadState_Get`, but don't kill the process with a " "fatal error if it is NULL. The caller is responsible to check if the result " "is NULL." msgstr "" -#: c-api/init.rst:1262 +#: c-api/init.rst:1268 msgid "" "In Python 3.5 to 3.12, the function was private and known as " "``_PyThreadState_UncheckedGet()``." msgstr "" -#: c-api/init.rst:1269 +#: c-api/init.rst:1275 msgid "" "Set the :term:`attached thread state` to *tstate*, and return the :term:" "`thread state` that was attached prior to calling." msgstr "" -#: c-api/init.rst:1272 +#: c-api/init.rst:1278 msgid "" "This function is safe to call without an :term:`attached thread state`; it " "will simply return ``NULL`` indicating that there was no prior thread state." msgstr "" -#: c-api/init.rst:1279 +#: c-api/init.rst:1282 +msgid ":c:func:`PyEval_ReleaseThread`" +msgstr "" + +#: c-api/init.rst:1285 msgid "" "Similar to :c:func:`PyGILState_Ensure`, this function will hang the thread " "if the runtime is finalizing." msgstr "" -#: c-api/init.rst:1283 +#: c-api/init.rst:1289 msgid "" "The following functions use thread-local storage, and are not compatible " "with sub-interpreters:" msgstr "" -#: c-api/init.rst:1288 +#: c-api/init.rst:1294 +msgid "" +"The type of the value returned by :c:func:`PyGILState_Ensure` and passed to :" +"c:func:`PyGILState_Release`." +msgstr "" + +#: c-api/init.rst:1299 +msgid "The GIL was already held when :c:func:`PyGILState_Ensure` was called." +msgstr "" + +#: c-api/init.rst:1303 +msgid "The GIL was not held when :c:func:`PyGILState_Ensure` was called." +msgstr "" + +#: c-api/init.rst:1307 msgid "" "Ensure that the current thread is ready to call the Python C API regardless " "of the current state of Python, or of the :term:`attached thread state`. " @@ -1624,7 +1648,7 @@ msgid "" "is acceptable." msgstr "" -#: c-api/init.rst:1298 +#: c-api/init.rst:1317 msgid "" "The return value is an opaque \"handle\" to the :term:`attached thread " "state` when :c:func:`PyGILState_Ensure` was called, and must be passed to :c:" @@ -1634,14 +1658,14 @@ msgid "" "to :c:func:`PyGILState_Release`." msgstr "" -#: c-api/init.rst:1305 +#: c-api/init.rst:1324 msgid "" "When the function returns, there will be an :term:`attached thread state` " "and the thread will be able to call arbitrary Python code. Failure is a " "fatal error." msgstr "" -#: c-api/init.rst:1309 +#: c-api/init.rst:1328 msgid "" "Calling this function when the runtime is finalizing is unsafe. Doing so " "will either hang the thread until the program ends, or fully crash the " @@ -1649,7 +1673,7 @@ msgid "" "finalization` for more details." msgstr "" -#: c-api/init.rst:1320 +#: c-api/init.rst:1339 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:" @@ -1657,13 +1681,13 @@ msgid "" "caller, hence the use of the GILState API)." msgstr "" -#: c-api/init.rst:1325 +#: c-api/init.rst:1344 msgid "" "Every call to :c:func:`PyGILState_Ensure` must be matched by a call to :c:" "func:`PyGILState_Release` on the same thread." msgstr "" -#: c-api/init.rst:1330 +#: c-api/init.rst:1349 msgid "" "Get the :term:`attached thread state` for this thread. May return ``NULL`` " "if no GILState API has been used on the current thread. Note that the main " @@ -1671,15 +1695,18 @@ msgid "" "been made on the main thread. This is mainly a helper/diagnostic function." msgstr "" -#: c-api/init.rst:1336 +#: c-api/init.rst:1355 msgid "" -"This function does not account for :term:`thread states ` " -"created by something other than :c:func:`PyGILState_Ensure` (such as :c:func:" -"`PyThreadState_New`). Prefer :c:func:`PyThreadState_Get` or :c:func:" +"This function may return non-``NULL`` even when the :term:`thread state` is " +"detached. Prefer :c:func:`PyThreadState_Get` or :c:func:" "`PyThreadState_GetUnchecked` for most cases." msgstr "" -#: c-api/init.rst:1345 +#: c-api/init.rst:1360 +msgid ":c:func:`PyThreadState_Get`" +msgstr "" + +#: c-api/init.rst:1364 msgid "" "Return ``1`` if the current thread is holding the :term:`GIL` and ``0`` " "otherwise. This function can be called from any thread at any time. Only if " @@ -1691,20 +1718,20 @@ msgid "" "differently." msgstr "" -#: c-api/init.rst:1355 +#: c-api/init.rst:1374 msgid "" "If the current Python process has ever created a subinterpreter, this " "function will *always* return ``1``. Prefer :c:func:" "`PyThreadState_GetUnchecked` for most cases." msgstr "" -#: c-api/init.rst:1362 +#: c-api/init.rst:1381 msgid "" "The following macros are normally used without a trailing semicolon; look " "for example usage in the Python source distribution." msgstr "" -#: c-api/init.rst:1368 +#: c-api/init.rst:1387 msgid "" "This macro expands to ``{ PyThreadState *_save; _save = PyEval_SaveThread();" "``. Note that it contains an opening brace; it must be matched with a " @@ -1712,7 +1739,7 @@ msgid "" "discussion of this macro." msgstr "" -#: c-api/init.rst:1376 +#: c-api/init.rst:1395 msgid "" "This macro expands to ``PyEval_RestoreThread(_save); }``. Note that it " "contains a closing brace; it must be matched with an earlier :c:macro:" @@ -1720,60 +1747,60 @@ msgid "" "macro." msgstr "" -#: c-api/init.rst:1384 +#: c-api/init.rst:1403 msgid "" "This macro expands to ``PyEval_RestoreThread(_save);``: it is equivalent to :" "c:macro:`Py_END_ALLOW_THREADS` without the closing brace." msgstr "" -#: c-api/init.rst:1390 +#: c-api/init.rst:1409 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 "" -#: c-api/init.rst:1396 +#: c-api/init.rst:1415 msgid "Low-level API" msgstr "" -#: c-api/init.rst:1398 +#: c-api/init.rst:1417 msgid "" "All of the following functions must be called after :c:func:`Py_Initialize`." msgstr "" -#: c-api/init.rst:1400 +#: c-api/init.rst:1419 msgid "" ":c:func:`Py_Initialize()` now initializes the :term:`GIL` and sets an :term:" "`attached thread state`." msgstr "" -#: c-api/init.rst:1407 +#: c-api/init.rst:1426 msgid "" "Create a new interpreter state object. An :term:`attached thread state` is " "not needed, but may optionally exist if it is necessary to serialize calls " "to this function." msgstr "" -#: c-api/init.rst:1411 +#: c-api/init.rst:1430 msgid "" "Raises an :ref:`auditing event ` ``cpython." "PyInterpreterState_New`` with no arguments." msgstr "" -#: c-api/init.rst:1416 +#: c-api/init.rst:1435 msgid "" "Reset all information in an interpreter state object. There must be an :" -"term:`attached thread state` for the the interpreter." +"term:`attached thread state` for the interpreter." msgstr "" -#: c-api/init.rst:1419 +#: c-api/init.rst:1438 msgid "" "Raises an :ref:`auditing event ` ``cpython." "PyInterpreterState_Clear`` with no arguments." msgstr "" -#: c-api/init.rst:1424 +#: c-api/init.rst:1443 msgid "" "Destroy an interpreter state object. There **should not** be an :term:" "`attached thread state` for the target interpreter. The interpreter state " @@ -1781,162 +1808,227 @@ msgid "" "`PyInterpreterState_Clear`." msgstr "" -#: c-api/init.rst:1431 +#: c-api/init.rst:1450 msgid "" "Create a new thread state object belonging to the given interpreter object. " "An :term:`attached thread state` is not needed." msgstr "" -#: c-api/init.rst:1436 +#: c-api/init.rst:1455 msgid "" "Reset all information in a :term:`thread state` object. *tstate* must be :" "term:`attached `" msgstr "" -#: c-api/init.rst:1439 +#: c-api/init.rst:1458 msgid "" -"This function now calls the :c:member:`PyThreadState.on_delete` callback. " +"This function now calls the :c:member:`!PyThreadState.on_delete` callback. " "Previously, that happened in :c:func:`PyThreadState_Delete`." msgstr "" -#: c-api/init.rst:1443 -msgid "The :c:member:`PyThreadState.on_delete` callback was removed." +#: c-api/init.rst:1462 +msgid "The :c:member:`!PyThreadState.on_delete` callback was removed." msgstr "" -#: c-api/init.rst:1449 +#: c-api/init.rst:1468 msgid "" "Destroy a :term:`thread state` object. *tstate* should not be :term:" "`attached ` to any thread. *tstate* must have been " "reset with a previous call to :c:func:`PyThreadState_Clear`." msgstr "" -#: c-api/init.rst:1457 +#: c-api/init.rst:1476 msgid "" "Detach the :term:`attached thread state` (which must have been reset with a " "previous call to :c:func:`PyThreadState_Clear`) and then destroy it." msgstr "" -#: c-api/init.rst:1460 +#: c-api/init.rst:1479 msgid "" "No :term:`thread state` will be :term:`attached ` " "upon returning." msgstr "" -#: c-api/init.rst:1465 +#: c-api/init.rst:1484 msgid "Get the current frame of the Python thread state *tstate*." msgstr "" -#: c-api/init.rst:1467 +#: c-api/init.rst:1486 msgid "" "Return a :term:`strong reference`. Return ``NULL`` if no frame is currently " "executing." msgstr "" -#: c-api/init.rst:1470 +#: c-api/init.rst:1489 msgid "See also :c:func:`PyEval_GetFrame`." msgstr "" -#: c-api/init.rst:1481 c-api/init.rst:1490 +#: c-api/init.rst:1500 c-api/init.rst:1509 msgid "" "*tstate* must not be ``NULL``, and must be :term:`attached `." msgstr "" -#: c-api/init.rst:1479 +#: c-api/init.rst:1498 msgid "" "Get the unique :term:`thread state` identifier of the Python thread state " "*tstate*." msgstr "" -#: c-api/init.rst:1488 +#: c-api/init.rst:1507 msgid "Get the interpreter of the Python thread state *tstate*." msgstr "" -#: c-api/init.rst:1497 +#: c-api/init.rst:1516 msgid "Suspend tracing and profiling in the Python thread state *tstate*." msgstr "" -#: c-api/init.rst:1499 +#: c-api/init.rst:1518 msgid "Resume them using the :c:func:`PyThreadState_LeaveTracing` function." msgstr "" -#: c-api/init.rst:1506 +#: c-api/init.rst:1525 msgid "" "Resume tracing and profiling in the Python thread state *tstate* suspended " "by the :c:func:`PyThreadState_EnterTracing` function." msgstr "" -#: c-api/init.rst:1509 +#: c-api/init.rst:1528 msgid "" "See also :c:func:`PyEval_SetTrace` and :c:func:`PyEval_SetProfile` functions." msgstr "" -#: c-api/init.rst:1517 +#: c-api/init.rst:1536 +msgid "" +"Set the stack protection start address and stack protection size of a Python " +"thread state." +msgstr "" + +#: c-api/init.rst:1539 +msgid "" +"On success, return ``0``. On failure, set an exception and return ``-1``." +msgstr "" + +#: c-api/init.rst:1542 +msgid "" +"CPython implements :ref:`recursion control ` for C code by " +"raising :py:exc:`RecursionError` when it notices that the machine execution " +"stack is close to overflow. See for example the :c:func:" +"`Py_EnterRecursiveCall` function. For this, it needs to know the location of " +"the current thread's stack, which it normally gets from the operating " +"system. When the stack is changed, for example using context switching " +"techniques like the Boost library's ``boost::context``, you must call :c:" +"func:`~PyUnstable_ThreadState_SetStackProtection` to inform CPython of the " +"change." +msgstr "" + +#: c-api/init.rst:1551 +msgid "" +"Call :c:func:`~PyUnstable_ThreadState_SetStackProtection` either before or " +"after changing the stack. Do not call any other Python C API between the " +"call and the stack change." +msgstr "" + +#: c-api/init.rst:1556 +msgid "" +"See :c:func:`PyUnstable_ThreadState_ResetStackProtection` for undoing this " +"operation." +msgstr "" + +#: c-api/init.rst:1582 +msgid "" +"This function was added in a bugfix release, and extensions that use it will " +"be incompatible with Python 3.14.0. Most packaging tools for Python are not " +"able to handle this incompatibility automatically, and will need explicit " +"configuration. When using PyPA standards (wheels and source distributions), " +"specify ``Requires-Python: != 3.14.0.*`` in `core metadata `_." +msgstr "" + +#: c-api/init.rst:1573 +msgid "" +"Reset the stack protection start address and stack protection size of a " +"Python thread state to the operating system defaults." +msgstr "" + +#: c-api/init.rst:1576 +msgid "" +"See :c:func:`PyUnstable_ThreadState_SetStackProtection` for an explanation." +msgstr "" + +#: c-api/init.rst:1593 msgid "Get the current interpreter." msgstr "" -#: c-api/init.rst:1519 +#: c-api/init.rst:1595 msgid "" "Issue a fatal error if there no :term:`attached thread state`. It cannot " "return NULL." msgstr "" -#: c-api/init.rst:1527 +#: c-api/init.rst:1603 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 "" -#: c-api/init.rst:2117 c-api/init.rst:2143 c-api/init.rst:2150 +#: c-api/init.rst:2221 c-api/init.rst:2247 c-api/init.rst:2254 msgid "The caller must have an :term:`attached thread state`." msgstr "" -#: c-api/init.rst:1537 +#: c-api/init.rst:1613 msgid "" "Return a dictionary in which interpreter-specific data may be stored. If " "this function returns ``NULL`` then no exception has been raised and the " "caller should assume no interpreter-specific dict is available." msgstr "" -#: c-api/init.rst:1541 +#: c-api/init.rst:1617 msgid "" "This is not a replacement for :c:func:`PyModule_GetState()`, which " "extensions should use to store interpreter-specific state information." msgstr "" -#: c-api/init.rst:1549 +#: c-api/init.rst:1620 +msgid "" +"The returned dictionary is borrowed from the interpreter and is valid until " +"interpreter shutdown." +msgstr "" + +#: c-api/init.rst:1628 msgid "Type of a frame evaluation function." msgstr "" -#: c-api/init.rst:1551 +#: c-api/init.rst:1630 msgid "" "The *throwflag* parameter is used by the ``throw()`` method of generators: " "if non-zero, handle the current exception." msgstr "" -#: c-api/init.rst:1554 +#: c-api/init.rst:1633 msgid "The function now takes a *tstate* parameter." msgstr "" -#: c-api/init.rst:1557 +#: c-api/init.rst:1636 msgid "" "The *frame* parameter changed from ``PyFrameObject*`` to " "``_PyInterpreterFrame*``." msgstr "" -#: c-api/init.rst:1562 +#: c-api/init.rst:1641 msgid "Get the frame evaluation function." msgstr "" -#: c-api/init.rst:1572 +#: c-api/init.rst:1651 msgid "See the :pep:`523` \"Adding a frame evaluation API to CPython\"." msgstr "" -#: c-api/init.rst:1570 +#: c-api/init.rst:1649 msgid "Set the frame evaluation function." msgstr "" -#: c-api/init.rst:1579 +#: c-api/init.rst:1658 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 " @@ -1946,7 +2038,7 @@ msgid "" "thread state is attached." msgstr "" -#: c-api/init.rst:1589 +#: c-api/init.rst:1668 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. " @@ -1958,54 +2050,54 @@ msgid "" "is cleared. This raises no exceptions." msgstr "" -#: c-api/init.rst:1597 +#: c-api/init.rst:1676 msgid "" "The type of the *id* parameter changed from :c:expr:`long` to :c:expr:" "`unsigned long`." msgstr "" -#: c-api/init.rst:1603 +#: c-api/init.rst:1682 msgid "" ":term:`Attach ` *tstate* to the current thread, which " "must not be ``NULL`` or already :term:`attached `." msgstr "" -#: c-api/init.rst:1606 +#: c-api/init.rst:1685 msgid "" "The calling thread must not already have an :term:`attached thread state`." msgstr "" -#: c-api/init.rst:1614 +#: c-api/init.rst:1693 msgid "" "Updated to be consistent with :c:func:`PyEval_RestoreThread`, :c:func:" "`Py_END_ALLOW_THREADS`, and :c:func:`PyGILState_Ensure`, and terminate the " "current thread if called while the interpreter is finalizing." msgstr "" -#: c-api/init.rst:1623 +#: c-api/init.rst:1702 msgid "" ":c:func:`PyEval_RestoreThread` is a higher-level function which is always " "available (even when threads have not been initialized)." msgstr "" -#: c-api/init.rst:1629 +#: c-api/init.rst:1708 msgid "" "Detach the :term:`attached thread state`. The *tstate* argument, which must " "not be ``NULL``, is only used to check that it represents the :term:" "`attached thread state` --- if it isn't, a fatal error is reported." msgstr "" -#: c-api/init.rst:1634 +#: c-api/init.rst:1713 msgid "" ":c:func:`PyEval_SaveThread` is a higher-level function which is always " "available (even when threads have not been initialized)." msgstr "" -#: c-api/init.rst:1641 +#: c-api/init.rst:1720 msgid "Sub-interpreter support" msgstr "" -#: c-api/init.rst:1643 +#: c-api/init.rst:1722 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 " @@ -2013,7 +2105,7 @@ msgid "" "to do that." msgstr "" -#: c-api/init.rst:1648 +#: c-api/init.rst:1727 msgid "" "The \"main\" interpreter is the first one created when the runtime " "initializes. It is usually the only Python interpreter in a process. Unlike " @@ -2024,31 +2116,31 @@ msgid "" "returns a pointer to its state." msgstr "" -#: c-api/init.rst:1655 +#: c-api/init.rst:1734 msgid "" "You can switch between sub-interpreters using the :c:func:" "`PyThreadState_Swap` function. You can create and destroy them using the " "following functions:" msgstr "" -#: c-api/init.rst:1661 +#: c-api/init.rst:1740 msgid "" "Structure containing most parameters to configure a sub-interpreter. Its " "values are used only in :c:func:`Py_NewInterpreterFromConfig` and never " "modified by the runtime." msgstr "" -#: c-api/init.rst:1667 +#: c-api/init.rst:1746 msgid "Structure fields:" msgstr "" -#: c-api/init.rst:1671 +#: c-api/init.rst:1750 msgid "" "If this is ``0`` then the sub-interpreter will use its own \"object\" " "allocator state. Otherwise it will use (share) the main interpreter's." msgstr "" -#: c-api/init.rst:1675 +#: c-api/init.rst:1754 msgid "" "If this is ``0`` then :c:member:`~PyInterpreterConfig." "check_multi_interp_extensions` must be ``1`` (non-zero). If this is ``1`` " @@ -2056,44 +2148,44 @@ msgid "" "`PyInterpreterConfig_OWN_GIL`." msgstr "" -#: c-api/init.rst:1683 +#: c-api/init.rst:1762 msgid "" "If this is ``0`` then the runtime will not support forking the process in " "any thread where the sub-interpreter is currently active. Otherwise fork is " "unrestricted." msgstr "" -#: c-api/init.rst:1687 +#: c-api/init.rst:1766 msgid "" "Note that the :mod:`subprocess` module still works when fork is disallowed." msgstr "" -#: c-api/init.rst:1692 +#: c-api/init.rst:1771 msgid "" "If this is ``0`` then the runtime will not support replacing the current " "process via exec (e.g. :func:`os.execv`) in any thread where the sub-" "interpreter is currently active. Otherwise exec is unrestricted." msgstr "" -#: c-api/init.rst:1697 +#: c-api/init.rst:1776 msgid "" "Note that the :mod:`subprocess` module still works when exec is disallowed." msgstr "" -#: c-api/init.rst:1702 +#: c-api/init.rst:1781 msgid "" "If this is ``0`` then the sub-interpreter's :mod:`threading` module won't " "create threads. Otherwise threads are allowed." msgstr "" -#: c-api/init.rst:1708 +#: c-api/init.rst:1787 msgid "" "If this is ``0`` then the sub-interpreter's :mod:`threading` module won't " "create daemon threads. Otherwise daemon threads are allowed (as long as :c:" "member:`~PyInterpreterConfig.allow_threads` is non-zero)." msgstr "" -#: c-api/init.rst:1715 +#: c-api/init.rst:1794 msgid "" "If this is ``0`` then all extension modules may be imported, including " "legacy (single-phase init) modules, in any thread where the sub-interpreter " @@ -2102,37 +2194,37 @@ msgid "" "`Py_mod_multiple_interpreters`.)" msgstr "" -#: c-api/init.rst:1722 +#: c-api/init.rst:1801 msgid "" "This must be ``1`` (non-zero) if :c:member:`~PyInterpreterConfig." "use_main_obmalloc` is ``0``." msgstr "" -#: c-api/init.rst:1727 +#: c-api/init.rst:1806 msgid "" "This determines the operation of the GIL for the sub-interpreter. It may be " "one of the following:" msgstr "" -#: c-api/init.rst:1734 +#: c-api/init.rst:1813 msgid "Use the default selection (:c:macro:`PyInterpreterConfig_SHARED_GIL`)." msgstr "" -#: c-api/init.rst:1738 +#: c-api/init.rst:1817 msgid "Use (share) the main interpreter's GIL." msgstr "" -#: c-api/init.rst:1742 +#: c-api/init.rst:1821 msgid "Use the sub-interpreter's own GIL." msgstr "" -#: c-api/init.rst:1744 +#: c-api/init.rst:1823 msgid "" "If this is :c:macro:`PyInterpreterConfig_OWN_GIL` then :c:member:" "`PyInterpreterConfig.use_main_obmalloc` must be ``0``." msgstr "" -#: c-api/init.rst:1758 +#: c-api/init.rst:1837 msgid "" "Create a new sub-interpreter. This is an (almost) totally separate " "environment for the execution of Python code. In particular, the new " @@ -2145,13 +2237,13 @@ msgid "" "underlying file descriptors)." msgstr "" -#: c-api/init.rst:1768 +#: c-api/init.rst:1847 msgid "" "The given *config* controls the options with which the interpreter is " "initialized." msgstr "" -#: c-api/init.rst:1771 +#: c-api/init.rst:1850 msgid "" "Upon success, *tstate_p* will be set to the first :term:`thread state` " "created in the new sub-interpreter. This thread state is :term:`attached " @@ -2162,7 +2254,7 @@ msgid "" "not exist." msgstr "" -#: c-api/init.rst:1780 +#: c-api/init.rst:1859 msgid "" "Like all other Python/C API functions, an :term:`attached thread state` must " "be present before calling this function, but it might be detached upon " @@ -2175,13 +2267,13 @@ msgid "" "will remain detached." msgstr "" -#: c-api/init.rst:1791 +#: c-api/init.rst:1870 msgid "" "Sub-interpreters are most effective when isolated from each other, with " "certain functionality restricted::" msgstr "" -#: c-api/init.rst:1794 +#: c-api/init.rst:1873 msgid "" "PyInterpreterConfig config = {\n" " .use_main_obmalloc = 0,\n" @@ -2199,7 +2291,7 @@ msgid "" "}" msgstr "" -#: c-api/init.rst:1809 +#: c-api/init.rst:1888 msgid "" "Note that the config is used only briefly and does not get modified. During " "initialization the config's values are converted into various :c:type:" @@ -2207,11 +2299,11 @@ msgid "" "internally on the :c:type:`PyInterpreterState`." msgstr "" -#: c-api/init.rst:1818 +#: c-api/init.rst:1897 msgid "Extension modules are shared between (sub-)interpreters as follows:" msgstr "" -#: c-api/init.rst:1820 +#: c-api/init.rst:1899 msgid "" "For modules using multi-phase initialization, e.g. :c:func:" "`PyModule_FromDefAndSpec`, a separate module object is created and " @@ -2219,7 +2311,7 @@ msgid "" "are shared between these module objects." msgstr "" -#: c-api/init.rst:1826 +#: c-api/init.rst:1905 msgid "" "For modules using single-phase initialization, e.g. :c:func:" "`PyModule_Create`, the first time a particular extension is imported, it is " @@ -2231,7 +2323,7 @@ msgid "" "might cause unwanted behavior (see `Bugs and caveats`_ below)." msgstr "" -#: c-api/init.rst:1837 +#: c-api/init.rst:1916 msgid "" "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:" @@ -2241,7 +2333,7 @@ msgid "" "shared between these modules." msgstr "" -#: c-api/init.rst:1857 +#: c-api/init.rst:1936 msgid "" "Create a new sub-interpreter. This is essentially just a wrapper around :c:" "func:`Py_NewInterpreterFromConfig` with a config that preserves the existing " @@ -2250,7 +2342,7 @@ msgid "" "single-phase init modules." msgstr "" -#: c-api/init.rst:1869 +#: c-api/init.rst:1948 msgid "" "Destroy the (sub-)interpreter represented by the given :term:`thread state`. " "The given thread state must be :term:`attached `. " @@ -2258,17 +2350,17 @@ msgid "" "thread states associated with this interpreter are destroyed." msgstr "" -#: c-api/init.rst:1874 +#: c-api/init.rst:1953 msgid "" ":c:func:`Py_FinalizeEx` will destroy all sub-interpreters that haven't been " "explicitly destroyed at that point." msgstr "" -#: c-api/init.rst:1879 +#: c-api/init.rst:1960 msgid "A Per-Interpreter GIL" msgstr "" -#: c-api/init.rst:1881 +#: c-api/init.rst:1962 msgid "" "Using :c:func:`Py_NewInterpreterFromConfig` you can create a sub-interpreter " "that is completely isolated from other interpreters, including having its " @@ -2277,10 +2369,10 @@ msgid "" "interpreters or blocking any others. Thus a single Python process can truly " "take advantage of multiple CPU cores when running Python code. The " "isolation also encourages a different approach to concurrency than that of " -"just using threads. (See :pep:`554`.)" +"just using threads. (See :pep:`554` and :pep:`684`.)" msgstr "" -#: c-api/init.rst:1891 +#: c-api/init.rst:1972 msgid "" "Using an isolated interpreter requires vigilance in preserving that " "isolation. That especially means not sharing any objects or mutable state " @@ -2294,7 +2386,7 @@ msgid "" "builtin objects." msgstr "" -#: c-api/init.rst:1902 +#: c-api/init.rst:1983 msgid "" "If you preserve isolation then you will have access to proper multi-core " "computing without the complications that come with free-threading. Failure " @@ -2302,7 +2394,7 @@ msgid "" "threading, including races and hard-to-debug crashes." msgstr "" -#: c-api/init.rst:1907 +#: c-api/init.rst:1988 msgid "" "Aside from that, one of the main challenges of using multiple isolated " "interpreters is how to communicate between them safely (not break isolation) " @@ -2312,11 +2404,11 @@ msgid "" "sharing) data between interpreters." msgstr "" -#: c-api/init.rst:1918 +#: c-api/init.rst:1999 msgid "Bugs and caveats" msgstr "" -#: c-api/init.rst:1920 +#: c-api/init.rst:2001 msgid "" "Because sub-interpreters (and the main interpreter) are part of the same " "process, the insulation between them isn't perfect --- for example, using " @@ -2329,7 +2421,7 @@ msgid "" "should be avoided if possible." msgstr "" -#: c-api/init.rst:1930 +#: c-api/init.rst:2011 msgid "" "Special care should be taken to avoid sharing user-defined functions, " "methods, instances or classes between sub-interpreters, since import " @@ -2338,7 +2430,7 @@ msgid "" "objects from which the above are reachable." msgstr "" -#: c-api/init.rst:1936 +#: c-api/init.rst:2017 msgid "" "Also note that combining this functionality with ``PyGILState_*`` APIs is " "delicate, because these APIs assume a bijection between Python thread states " @@ -2350,25 +2442,25 @@ msgid "" "created threads will probably be broken when using sub-interpreters." msgstr "" -#: c-api/init.rst:1947 +#: c-api/init.rst:2028 msgid "Asynchronous Notifications" msgstr "" -#: c-api/init.rst:1949 +#: c-api/init.rst:2030 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 "" -#: c-api/init.rst:1956 +#: c-api/init.rst:2037 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 "" -#: c-api/init.rst:1960 +#: c-api/init.rst:2041 msgid "" "When successfully queued, *func* will be *eventually* called from the main " "interpreter thread with the argument *arg*. It will be called " @@ -2376,17 +2468,17 @@ msgid "" "these conditions met:" msgstr "" -#: c-api/init.rst:1965 +#: c-api/init.rst:2046 msgid "on a :term:`bytecode` boundary;" msgstr "" -#: c-api/init.rst:1966 +#: c-api/init.rst:2047 msgid "" "with the main thread holding an :term:`attached thread state` (*func* can " "therefore use the full C API)." msgstr "" -#: c-api/init.rst:1969 +#: c-api/init.rst:2050 msgid "" "*func* must return ``0`` on success, or ``-1`` on failure with an exception " "set. *func* won't be interrupted to perform another asynchronous " @@ -2394,7 +2486,7 @@ msgid "" "if the :term:`thread state ` is detached." msgstr "" -#: c-api/init.rst:1974 +#: c-api/init.rst:2055 msgid "" "This function doesn't need an :term:`attached thread state`. However, to " "call this function in a subinterpreter, the caller must have an :term:" @@ -2402,7 +2494,7 @@ msgid "" "be called from the wrong interpreter." msgstr "" -#: c-api/init.rst:1979 +#: c-api/init.rst:2060 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 " @@ -2412,7 +2504,7 @@ msgid "" "`PyGILState API`." msgstr "" -#: c-api/init.rst:1988 +#: c-api/init.rst:2069 msgid "" "If this function is called in a subinterpreter, the function *func* is now " "scheduled to be called from the subinterpreter, rather than being called " @@ -2420,18 +2512,46 @@ msgid "" "scheduled calls." msgstr "" -#: c-api/init.rst:1997 +#: c-api/init.rst:2075 +msgid "" +"This function now always schedules *func* to be run in the main interpreter." +msgstr "" + +#: c-api/init.rst:2082 +msgid "" +"Execute all pending calls. This is usually executed automatically by the " +"interpreter." +msgstr "" + +#: c-api/init.rst:2085 +msgid "" +"This function returns ``0`` on success, and returns ``-1`` with an exception " +"set on failure." +msgstr "" + +#: c-api/init.rst:2088 +msgid "" +"If this is not called in the main thread of the main interpreter, this " +"function does nothing and returns ``0``. The caller must hold an :term:" +"`attached thread state`." +msgstr "" + +#: c-api/init.rst:2094 +msgid "This function only runs pending calls in the main interpreter." +msgstr "" + +#: c-api/init.rst:2101 msgid "Profiling and Tracing" msgstr "" -#: c-api/init.rst:2002 +#: c-api/init.rst:2106 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 "" -#: c-api/init.rst:2006 +#: c-api/init.rst:2110 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 " @@ -2441,7 +2561,7 @@ msgid "" "reported to the Python-level trace functions in previous versions." msgstr "" -#: c-api/init.rst:2016 +#: c-api/init.rst:2120 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 " @@ -2453,64 +2573,64 @@ msgid "" "value of *what*:" msgstr "" -#: c-api/init.rst:2025 +#: c-api/init.rst:2129 msgid "Value of *what*" msgstr "" -#: c-api/init.rst:2025 +#: c-api/init.rst:2129 msgid "Meaning of *arg*" msgstr "" -#: c-api/init.rst:2027 +#: c-api/init.rst:2131 msgid ":c:data:`PyTrace_CALL`" msgstr "" -#: c-api/init.rst:2032 c-api/init.rst:2043 +#: c-api/init.rst:2136 c-api/init.rst:2147 msgid "Always :c:data:`Py_None`." msgstr "" -#: c-api/init.rst:2029 +#: c-api/init.rst:2133 msgid ":c:data:`PyTrace_EXCEPTION`" msgstr "" -#: c-api/init.rst:2029 +#: c-api/init.rst:2133 msgid "Exception information as returned by :func:`sys.exc_info`." msgstr "" -#: c-api/init.rst:2032 +#: c-api/init.rst:2136 msgid ":c:data:`PyTrace_LINE`" msgstr "" -#: c-api/init.rst:2034 +#: c-api/init.rst:2138 msgid ":c:data:`PyTrace_RETURN`" msgstr "" -#: c-api/init.rst:2034 +#: c-api/init.rst:2138 msgid "" "Value being returned to the caller, or ``NULL`` if caused by an exception." msgstr "" -#: c-api/init.rst:2037 +#: c-api/init.rst:2141 msgid ":c:data:`PyTrace_C_CALL`" msgstr "" -#: c-api/init.rst:2039 c-api/init.rst:2041 +#: c-api/init.rst:2143 c-api/init.rst:2145 msgid "Function object being called." msgstr "" -#: c-api/init.rst:2039 +#: c-api/init.rst:2143 msgid ":c:data:`PyTrace_C_EXCEPTION`" msgstr "" -#: c-api/init.rst:2041 +#: c-api/init.rst:2145 msgid ":c:data:`PyTrace_C_RETURN`" msgstr "" -#: c-api/init.rst:2043 +#: c-api/init.rst:2147 msgid ":c:data:`PyTrace_OPCODE`" msgstr "" -#: c-api/init.rst:2048 +#: c-api/init.rst:2152 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 " @@ -2519,7 +2639,7 @@ msgid "" "the corresponding frame." msgstr "" -#: c-api/init.rst:2057 +#: c-api/init.rst:2161 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 " @@ -2531,7 +2651,7 @@ msgid "" "profiler." msgstr "" -#: c-api/init.rst:2068 +#: c-api/init.rst:2172 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 " @@ -2539,31 +2659,31 @@ msgid "" "f_trace_lines` to *0* on that frame." msgstr "" -#: c-api/init.rst:2076 +#: c-api/init.rst:2180 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a call is about to return." msgstr "" -#: c-api/init.rst:2082 +#: c-api/init.rst:2186 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function is about to be called." msgstr "" -#: c-api/init.rst:2088 +#: c-api/init.rst:2192 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function has raised an exception." msgstr "" -#: c-api/init.rst:2094 +#: c-api/init.rst:2198 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function has returned." msgstr "" -#: c-api/init.rst:2100 +#: c-api/init.rst:2204 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 " @@ -2571,7 +2691,7 @@ msgid "" "attr:`~frame.f_trace_opcodes` to *1* on the frame." msgstr "" -#: c-api/init.rst:2108 +#: c-api/init.rst:2212 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``. " @@ -2581,24 +2701,24 @@ msgid "" "`PyTrace_LINE` :c:data:`PyTrace_OPCODE` and :c:data:`PyTrace_EXCEPTION`." msgstr "" -#: c-api/init.rst:2115 +#: c-api/init.rst:2219 msgid "See also the :func:`sys.setprofile` function." msgstr "" -#: c-api/init.rst:2121 +#: c-api/init.rst:2225 msgid "" "Like :c:func:`PyEval_SetProfile` but sets the profile function in all " "running threads belonging to the current interpreter instead of the setting " "it only on the current thread." msgstr "" -#: c-api/init.rst:2126 +#: c-api/init.rst:2230 msgid "" "As :c:func:`PyEval_SetProfile`, this function ignores any exceptions raised " "while setting the profile functions in all threads." msgstr "" -#: c-api/init.rst:2134 +#: c-api/init.rst:2238 msgid "" "Set the tracing function to *func*. This is similar to :c:func:" "`PyEval_SetProfile`, except the tracing function does receive line-number " @@ -2609,28 +2729,28 @@ msgid "" "*what* parameter." msgstr "" -#: c-api/init.rst:2141 +#: c-api/init.rst:2245 msgid "See also the :func:`sys.settrace` function." msgstr "" -#: c-api/init.rst:2147 +#: c-api/init.rst:2251 msgid "" "Like :c:func:`PyEval_SetTrace` but sets the tracing function in all running " "threads belonging to the current interpreter instead of the setting it only " "on the current thread." msgstr "" -#: c-api/init.rst:2152 +#: c-api/init.rst:2256 msgid "" "As :c:func:`PyEval_SetTrace`, this function ignores any exceptions raised " "while setting the trace functions in all threads." msgstr "" -#: c-api/init.rst:2158 +#: c-api/init.rst:2262 msgid "Reference tracing" msgstr "" -#: c-api/init.rst:2164 +#: c-api/init.rst:2268 msgid "" "The type of the trace function registered using :c:func:" "`PyRefTracer_SetTracer`. The first parameter is a Python object that has " @@ -2640,19 +2760,19 @@ msgid "" "provided when :c:func:`PyRefTracer_SetTracer` was called." msgstr "" -#: c-api/init.rst:2174 +#: c-api/init.rst:2278 msgid "" "The value for the *event* parameter to :c:type:`PyRefTracer` functions when " "a Python object has been created." msgstr "" -#: c-api/init.rst:2179 +#: c-api/init.rst:2283 msgid "" "The value for the *event* parameter to :c:type:`PyRefTracer` functions when " "a Python object has been destroyed." msgstr "" -#: c-api/init.rst:2184 +#: c-api/init.rst:2288 msgid "" "Register a reference tracer function. The function will be called when a new " "Python has been created or when an object is going to be destroyed. If " @@ -2661,7 +2781,7 @@ msgid "" "return ``-1`` on error." msgstr "" -#: c-api/init.rst:2190 +#: c-api/init.rst:2294 msgid "" "Not that tracer functions **must not** create Python objects inside or " "otherwise the call will be re-entrant. The tracer also **must not** clear " @@ -2669,12 +2789,12 @@ msgid "" "active every time the tracer function is called." msgstr "" -#: c-api/init.rst:2206 +#: c-api/init.rst:2310 msgid "" "There must be an :term:`attached thread state` when calling this function." msgstr "" -#: c-api/init.rst:2201 +#: c-api/init.rst:2305 msgid "" "Get the registered reference tracer function and the value of the opaque " "data pointer that was registered when :c:func:`PyRefTracer_SetTracer` was " @@ -2682,48 +2802,48 @@ msgid "" "set the **data** pointer to NULL." msgstr "" -#: c-api/init.rst:2213 +#: c-api/init.rst:2317 msgid "Advanced Debugger Support" msgstr "" -#: c-api/init.rst:2218 +#: c-api/init.rst:2322 msgid "" "These functions are only intended to be used by advanced debugging tools." msgstr "" -#: c-api/init.rst:2223 +#: c-api/init.rst:2327 msgid "" "Return the interpreter state object at the head of the list of all such " "objects." msgstr "" -#: c-api/init.rst:2228 +#: c-api/init.rst:2332 msgid "Return the main interpreter state object." msgstr "" -#: c-api/init.rst:2233 +#: c-api/init.rst:2337 msgid "" "Return the next interpreter state object after *interp* from the list of all " "such objects." msgstr "" -#: c-api/init.rst:2239 +#: c-api/init.rst:2343 msgid "" "Return the pointer to the first :c:type:`PyThreadState` object in the list " "of threads associated with the interpreter *interp*." msgstr "" -#: c-api/init.rst:2245 +#: c-api/init.rst:2349 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 "" -#: c-api/init.rst:2252 +#: c-api/init.rst:2356 msgid "Thread Local Storage Support" msgstr "" -#: c-api/init.rst:2256 +#: c-api/init.rst:2360 msgid "" "The Python interpreter provides low-level support for thread-local storage " "(TLS) which wraps the underlying native TLS implementation to support the " @@ -2733,19 +2853,19 @@ msgid "" "thread." msgstr "" -#: c-api/init.rst:2263 +#: c-api/init.rst:2367 msgid "" "A :term:`thread state` does *not* need to be :term:`attached ` when calling these functions; they suppl their own locking." msgstr "" -#: c-api/init.rst:2266 +#: c-api/init.rst:2370 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 "" -#: c-api/init.rst:2270 +#: c-api/init.rst:2374 msgid "" "None of these API functions handle memory management on behalf of the :c:" "expr:`void*` values. You need to allocate and deallocate them yourself. If " @@ -2753,22 +2873,22 @@ msgid "" "don't do refcount operations on them either." msgstr "" -#: c-api/init.rst:2278 +#: c-api/init.rst:2382 msgid "Thread Specific Storage (TSS) API" msgstr "" -#: c-api/init.rst:2280 +#: c-api/init.rst:2384 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:expr:`int` to represent thread keys." msgstr "" -#: c-api/init.rst:2286 +#: c-api/init.rst:2390 msgid "\"A New C-API for Thread-Local Storage in CPython\" (:pep:`539`)" msgstr "" -#: c-api/init.rst:2291 +#: c-api/init.rst:2395 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 " @@ -2776,52 +2896,52 @@ msgid "" "public members in this structure." msgstr "" -#: c-api/init.rst:2296 +#: c-api/init.rst:2400 msgid "" "When :ref:`Py_LIMITED_API ` is not defined, static allocation of " "this type by :c:macro:`Py_tss_NEEDS_INIT` is allowed." msgstr "" -#: c-api/init.rst:2302 +#: c-api/init.rst:2406 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 "" -#: c-api/init.rst:2307 +#: c-api/init.rst:2411 msgid "Dynamic Allocation" msgstr "" -#: c-api/init.rst:2309 +#: c-api/init.rst:2413 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 "" -#: c-api/init.rst:2316 +#: c-api/init.rst:2420 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 "" -#: c-api/init.rst:2323 +#: c-api/init.rst:2427 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 "" -#: c-api/init.rst:2329 +#: c-api/init.rst:2433 msgid "" "A freed key becomes a dangling pointer. You should reset the key to ``NULL``." msgstr "" -#: c-api/init.rst:2334 +#: c-api/init.rst:2438 msgid "Methods" msgstr "" -#: c-api/init.rst:2336 +#: c-api/init.rst:2440 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 " @@ -2829,13 +2949,13 @@ msgid "" "func:`PyThread_tss_create`." msgstr "" -#: c-api/init.rst:2344 +#: c-api/init.rst:2448 msgid "" "Return a non-zero value if the given :c:type:`Py_tss_t` has been initialized " "by :c:func:`PyThread_tss_create`." msgstr "" -#: c-api/init.rst:2350 +#: c-api/init.rst:2454 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 " @@ -2844,7 +2964,7 @@ msgid "" "no-op and immediately returns success." msgstr "" -#: c-api/init.rst:2359 +#: c-api/init.rst:2463 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 " @@ -2853,31 +2973,31 @@ msgid "" "key -- calling it on an already destroyed key is a no-op." msgstr "" -#: c-api/init.rst:2368 +#: c-api/init.rst:2472 msgid "" "Return a zero value to indicate successfully associating a :c:expr:`void*` " "value with a TSS key in the current thread. Each thread has a distinct " "mapping of the key to a :c:expr:`void*` value." msgstr "" -#: c-api/init.rst:2375 +#: c-api/init.rst:2479 msgid "" "Return the :c:expr:`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 "" -#: c-api/init.rst:2383 +#: c-api/init.rst:2487 msgid "Thread Local Storage (TLS) API" msgstr "" -#: c-api/init.rst:2385 +#: c-api/init.rst:2489 msgid "" "This API is superseded by :ref:`Thread Specific Storage (TSS) API `." msgstr "" -#: c-api/init.rst:2390 +#: c-api/init.rst:2494 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 " @@ -2886,45 +3006,45 @@ msgid "" "platforms." msgstr "" -#: c-api/init.rst:2395 +#: c-api/init.rst:2499 msgid "" "Due to the compatibility problem noted above, this version of the API should " "not be used in new code." msgstr "" -#: c-api/init.rst:2406 +#: c-api/init.rst:2510 msgid "Synchronization Primitives" msgstr "" -#: c-api/init.rst:2408 +#: c-api/init.rst:2512 msgid "The C-API provides a basic mutual exclusion lock." msgstr "" -#: c-api/init.rst:2412 +#: c-api/init.rst:2516 msgid "" "A mutual exclusion lock. The :c:type:`!PyMutex` should be initialized to " "zero to represent the unlocked state. For example::" msgstr "" -#: c-api/init.rst:2415 +#: c-api/init.rst:2519 msgid "PyMutex mutex = {0};" msgstr "" -#: c-api/init.rst:2417 +#: c-api/init.rst:2521 msgid "" "Instances of :c:type:`!PyMutex` should not be copied or moved. Both the " "contents and address of a :c:type:`!PyMutex` are meaningful, and it must " "remain at a fixed, writable location in memory." msgstr "" -#: c-api/init.rst:2423 +#: c-api/init.rst:2527 msgid "" "A :c:type:`!PyMutex` currently occupies one byte, but the size should be " "considered unstable. The size may change in future Python releases without " "a deprecation period." msgstr "" -#: c-api/init.rst:2431 +#: c-api/init.rst:2535 msgid "" "Lock mutex *m*. If another thread has already locked it, the calling thread " "will block until the mutex is unlocked. While blocked, the thread will " @@ -2932,17 +3052,28 @@ msgid "" "exists." msgstr "" -#: c-api/init.rst:2439 +#: c-api/init.rst:2543 msgid "" "Unlock mutex *m*. The mutex must be locked --- otherwise, the function will " "issue a fatal error." msgstr "" -#: c-api/init.rst:2447 +#: c-api/init.rst:2550 +msgid "Returns non-zero if the mutex *m* is currently locked, zero otherwise." +msgstr "" + +#: c-api/init.rst:2554 +msgid "" +"This function is intended for use in assertions and debugging only and " +"should not be used to make concurrency control decisions, as the lock state " +"may change immediately after the check." +msgstr "" + +#: c-api/init.rst:2563 msgid "Python Critical Section API" msgstr "" -#: c-api/init.rst:2449 +#: c-api/init.rst:2565 msgid "" "The critical section API provides a deadlock avoidance layer on top of per-" "object locks for :term:`free-threaded ` CPython. They are " @@ -2950,17 +3081,36 @@ msgid "" "no-ops in versions of Python with the global interpreter lock." msgstr "" -#: c-api/init.rst:2454 +#: c-api/init.rst:2570 +msgid "" +"Critical sections are intended to be used for custom types implemented in C-" +"API extensions. They should generally not be used with built-in types like :" +"class:`list` and :class:`dict` because their public C-APIs already use " +"critical sections internally, with the notable exception of :c:func:" +"`PyDict_Next`, which requires critical section to be acquired externally." +msgstr "" + +#: c-api/init.rst:2577 msgid "" "Critical sections avoid deadlocks by implicitly suspending active critical " -"sections and releasing the locks during calls to :c:func:" -"`PyEval_SaveThread`. When :c:func:`PyEval_RestoreThread` is called, the most " -"recent critical section is resumed, and its locks reacquired. This means " -"the critical section API provides weaker guarantees than traditional locks " -"-- they are useful because their behavior is similar to the :term:`GIL`." +"sections, hence, they do not provide exclusive access such as provided by " +"traditional locks like :c:type:`PyMutex`. When a critical section is " +"started, the per-object lock for the object is acquired. If the code " +"executed inside the critical section calls C-API functions then it can " +"suspend the critical section thereby releasing the per-object lock, so other " +"threads can acquire the per-object lock for the same object." +msgstr "" + +#: c-api/init.rst:2585 +msgid "" +"Variants that accept :c:type:`PyMutex` pointers rather than Python objects " +"are also available. Use these variants to start a critical section in a " +"situation where there is no :c:type:`PyObject` -- for example, when working " +"with a C type that does not extend or wrap :c:type:`PyObject` but still " +"needs to call into the C API in a manner that might lead to deadlocks." msgstr "" -#: c-api/init.rst:2461 +#: c-api/init.rst:2591 msgid "" "The functions and structs used by the macros are exposed for cases where C " "macros are not available. They should only be used as in the given macro " @@ -2968,7 +3118,7 @@ msgid "" "future Python versions." msgstr "" -#: c-api/init.rst:2468 +#: c-api/init.rst:2598 msgid "" "Operations that need to lock two objects at once must use :c:macro:" "`Py_BEGIN_CRITICAL_SECTION2`. You *cannot* use nested critical sections to " @@ -2977,11 +3127,11 @@ msgid "" "lock more than two objects at once." msgstr "" -#: c-api/init.rst:2474 +#: c-api/init.rst:2604 msgid "Example usage::" msgstr "" -#: c-api/init.rst:2476 +#: c-api/init.rst:2606 msgid "" "static PyObject *\n" "set_field(MyObject *self, PyObject *value)\n" @@ -2993,7 +3143,7 @@ msgid "" "}" msgstr "" -#: c-api/init.rst:2485 +#: c-api/init.rst:2615 msgid "" "In the above example, :c:macro:`Py_SETREF` calls :c:macro:`Py_DECREF`, which " "can call arbitrary code through an object's deallocation function. The " @@ -3003,65 +3153,352 @@ msgid "" "`PyEval_SaveThread`." msgstr "" -#: c-api/init.rst:2493 +#: c-api/init.rst:2623 msgid "" "Acquires the per-object lock for the object *op* and begins a critical " "section." msgstr "" -#: c-api/init.rst:2510 c-api/init.rst:2539 +#: c-api/init.rst:2640 c-api/init.rst:2672 c-api/init.rst:2703 msgid "In the free-threaded build, this macro expands to::" msgstr "" -#: c-api/init.rst:2498 +#: c-api/init.rst:2628 msgid "" "{\n" " PyCriticalSection _py_cs;\n" " PyCriticalSection_Begin(&_py_cs, (PyObject*)(op))" msgstr "" -#: c-api/init.rst:2531 +#: c-api/init.rst:2678 msgid "In the default build, this macro expands to ``{``." msgstr "" -#: c-api/init.rst:2508 +#: c-api/init.rst:2638 +msgid "Locks the mutex *m* and begins a critical section." +msgstr "" + +#: c-api/init.rst:2642 +msgid "" +"{\n" +" PyCriticalSection _py_cs;\n" +" PyCriticalSection_BeginMutex(&_py_cs, m)" +msgstr "" + +#: c-api/init.rst:2646 +msgid "" +"Note that unlike :c:macro:`Py_BEGIN_CRITICAL_SECTION`, there is no cast for " +"the argument of the macro - it must be a :c:type:`PyMutex` pointer." +msgstr "" + +#: c-api/init.rst:2695 +msgid "On the default build, this macro expands to ``{``." +msgstr "" + +#: c-api/init.rst:2655 msgid "Ends the critical section and releases the per-object lock." msgstr "" -#: c-api/init.rst:2512 +#: c-api/init.rst:2659 msgid "" " PyCriticalSection_End(&_py_cs);\n" "}" msgstr "" -#: c-api/init.rst:2544 +#: c-api/init.rst:2708 msgid "In the default build, this macro expands to ``}``." msgstr "" -#: c-api/init.rst:2521 +#: c-api/init.rst:2668 msgid "" "Acquires the per-objects locks for the objects *a* and *b* and begins a " "critical section. The locks are acquired in a consistent order (lowest " "address first) to avoid lock ordering deadlocks." msgstr "" -#: c-api/init.rst:2527 +#: c-api/init.rst:2674 msgid "" "{\n" " PyCriticalSection2 _py_cs2;\n" " PyCriticalSection2_Begin(&_py_cs2, (PyObject*)(a), (PyObject*)(b))" msgstr "" -#: c-api/init.rst:2537 +#: c-api/init.rst:2684 +msgid "Locks the mutexes *m1* and *m2* and begins a critical section." +msgstr "" + +#: c-api/init.rst:2688 +msgid "" +"{\n" +" PyCriticalSection2 _py_cs2;\n" +" PyCriticalSection2_BeginMutex(&_py_cs2, m1, m2)" +msgstr "" + +#: c-api/init.rst:2692 +msgid "" +"Note that unlike :c:macro:`Py_BEGIN_CRITICAL_SECTION2`, there is no cast for " +"the arguments of the macro - they must be :c:type:`PyMutex` pointers." +msgstr "" + +#: c-api/init.rst:2701 msgid "Ends the critical section and releases the per-object locks." msgstr "" -#: c-api/init.rst:2541 +#: c-api/init.rst:2705 msgid "" " PyCriticalSection2_End(&_py_cs2);\n" "}" msgstr "" +#: c-api/init.rst:2714 +msgid "Legacy Locking APIs" +msgstr "" + +#: c-api/init.rst:2716 +msgid "" +"These APIs are obsolete since Python 3.13 with the introduction of :c:type:" +"`PyMutex`." +msgstr "" + +#: c-api/init.rst:2719 +msgid "These APIs are now a simple wrapper around ``PyMutex``." +msgstr "" + +#: c-api/init.rst:2725 +msgid "A pointer to a mutual exclusion lock." +msgstr "" + +#: c-api/init.rst:2730 +msgid "The result of acquiring a lock with a timeout." +msgstr "" + +#: c-api/init.rst:2736 +msgid "Failed to acquire the lock." +msgstr "" + +#: c-api/init.rst:2740 +msgid "The lock was successfully acquired." +msgstr "" + +#: c-api/init.rst:2744 +msgid "The lock was interrupted by a signal." +msgstr "" + +#: c-api/init.rst:2749 +msgid "Allocate a new lock." +msgstr "" + +#: c-api/init.rst:2751 +msgid "" +"On success, this function returns a lock; on failure, this function returns " +"``0`` without an exception set." +msgstr "" + +#: c-api/init.rst:2766 c-api/init.rst:2804 c-api/init.rst:2835 +#: c-api/init.rst:2927 +msgid "The caller does not need to hold an :term:`attached thread state`." +msgstr "" + +#: c-api/init.rst:2756 +msgid "" +"This function now always uses :c:type:`PyMutex`. In prior versions, this " +"would use a lock provided by the operating system." +msgstr "" + +#: c-api/init.rst:2763 +msgid "" +"Destroy *lock*. The lock should not be held by any thread when calling this." +msgstr "" + +#: c-api/init.rst:2771 +msgid "Acquire *lock* with a timeout." +msgstr "" + +#: c-api/init.rst:2773 +msgid "" +"This will wait for *microseconds* microseconds to acquire the lock. If the " +"timeout expires, this function returns :c:enumerator:`PY_LOCK_FAILURE`. If " +"*microseconds* is ``-1``, this will wait indefinitely until the lock has " +"been released." +msgstr "" + +#: c-api/init.rst:2778 +msgid "" +"If *intr_flag* is ``1``, acquiring the lock may be interrupted by a signal, " +"in which case this function returns :c:enumerator:`PY_LOCK_INTR`. Upon " +"interruption, it's generally expected that the caller makes a call to :c:" +"func:`Py_MakePendingCalls` to propagate an exception to Python code." +msgstr "" + +#: c-api/init.rst:2783 +msgid "" +"If the lock is successfully acquired, this function returns :c:enumerator:" +"`PY_LOCK_ACQUIRED`." +msgstr "" + +#: c-api/init.rst:2791 +msgid "Acquire *lock*." +msgstr "" + +#: c-api/init.rst:2793 +msgid "" +"If *waitflag* is ``1`` and another thread currently holds the lock, this " +"function will wait until the lock can be acquired and will always return " +"``1``." +msgstr "" + +#: c-api/init.rst:2797 +msgid "" +"If *waitflag* is ``0`` and another thread holds the lock, this function will " +"not wait and instead return ``0``. If the lock is not held by any other " +"thread, then this function will acquire it and return ``1``." +msgstr "" + +#: c-api/init.rst:2801 +msgid "" +"Unlike :c:func:`PyThread_acquire_lock_timed`, acquiring the lock cannot be " +"interrupted by a signal." +msgstr "" + +#: c-api/init.rst:2809 +msgid "" +"Release *lock*. If *lock* is not held, then this function issues a fatal " +"error." +msgstr "" + +#: c-api/init.rst:2816 +msgid "Operating System Thread APIs" +msgstr "" + +#: c-api/init.rst:2820 +msgid "Sentinel value for an invalid thread ID." +msgstr "" + +#: c-api/init.rst:2822 +msgid "This is currently equivalent to ``(unsigned long)-1``." +msgstr "" + +#: c-api/init.rst:2827 +msgid "" +"Start function *func* in a new thread with argument *arg*. The resulting " +"thread is not intended to be joined." +msgstr "" + +#: c-api/init.rst:2830 +msgid "*func* must not be ``NULL``, but *arg* may be ``NULL``." +msgstr "" + +#: c-api/init.rst:2832 +msgid "" +"On success, this function returns the identifier of the new thread; on " +"failure, this returns :c:macro:`PYTHREAD_INVALID_THREAD_ID`." +msgstr "" + +#: c-api/init.rst:2840 +msgid "Return the identifier of the current thread, which will never be zero." +msgstr "" + +#: c-api/init.rst:2874 +msgid "" +"This function cannot fail, and the caller does not need to hold an :term:" +"`attached thread state`." +msgstr "" + +#: c-api/init.rst:2846 +msgid ":py:func:`threading.get_ident`" +msgstr "" + +#: c-api/init.rst:2851 +msgid "" +"Get general information about the current thread in the form of a :ref:" +"`struct sequence ` object. This information is " +"accessible as :py:attr:`sys.thread_info` in Python." +msgstr "" + +#: c-api/init.rst:2855 +msgid "" +"On success, this returns a new :term:`strong reference` to the thread " +"information; on failure, this returns ``NULL`` with an exception set." +msgstr "" + +#: c-api/init.rst:2858 +msgid "The caller must hold an :term:`attached thread state`." +msgstr "" + +#: c-api/init.rst:2863 +msgid "This macro is defined when the system supports native thread IDs." +msgstr "" + +#: c-api/init.rst:2868 +msgid "" +"Get the native identifier of the current thread as it was assigned by the " +"operating system's kernel, which will never be less than zero." +msgstr "" + +#: c-api/init.rst:2871 +msgid "" +"This function is only available when :c:macro:`PY_HAVE_THREAD_NATIVE_ID` is " +"defined." +msgstr "" + +#: c-api/init.rst:2878 +msgid ":py:func:`threading.get_native_id`" +msgstr "" + +#: c-api/init.rst:2883 +msgid "" +"Terminate the current thread. This function is generally considered unsafe " +"and should be avoided. It is kept solely for backwards compatibility." +msgstr "" + +#: c-api/init.rst:2886 +msgid "" +"This function is only safe to call if all functions in the full call stack " +"are written to safely allow it." +msgstr "" + +#: c-api/init.rst:2891 +msgid "" +"If the current system uses POSIX threads (also known as \"pthreads\"), this " +"calls :manpage:`pthread_exit(3)`, which attempts to unwind the stack and " +"call C++ destructors on some libc implementations. However, if a " +"``noexcept`` function is reached, it may terminate the process. Other " +"systems, such as macOS, do unwinding." +msgstr "" + +#: c-api/init.rst:2897 +msgid "" +"On Windows, this function calls ``_endthreadex()``, which kills the thread " +"without calling C++ destructors." +msgstr "" + +#: c-api/init.rst:2900 +msgid "In any case, there is a risk of corruption on the thread's stack." +msgstr "" + +#: c-api/init.rst:2907 +msgid "" +"Initialize ``PyThread*`` APIs. Python executes this function automatically, " +"so there's little need to call it from an extension module." +msgstr "" + +#: c-api/init.rst:2913 +msgid "Set the stack size of the current thread to *size* bytes." +msgstr "" + +#: c-api/init.rst:2915 +msgid "" +"This function returns ``0`` on success, ``-1`` if *size* is invalid, or " +"``-2`` if the system does not support changing the stack size. This function " +"does not set exceptions." +msgstr "" + +#: c-api/init.rst:2924 +msgid "" +"Return the stack size of the current thread in bytes, or ``0`` if the " +"system's default stack size is in use." +msgstr "" + #: c-api/init.rst:350 msgid "PyEval_InitThreads()" msgstr "" @@ -3074,19 +3511,19 @@ msgstr "" msgid "path (in module sys)" msgstr "" -#: c-api/init.rst:712 c-api/init.rst:1750 c-api/init.rst:1849 +#: c-api/init.rst:712 c-api/init.rst:1829 c-api/init.rst:1928 msgid "module" msgstr "" -#: c-api/init.rst:1750 c-api/init.rst:1849 +#: c-api/init.rst:1829 c-api/init.rst:1928 msgid "builtins" msgstr "" -#: c-api/init.rst:1750 c-api/init.rst:1849 +#: c-api/init.rst:1829 c-api/init.rst:1928 msgid "__main__" msgstr "" -#: c-api/init.rst:1750 c-api/init.rst:1849 +#: c-api/init.rst:1829 c-api/init.rst:1928 msgid "sys" msgstr "" @@ -3098,7 +3535,7 @@ msgstr "" msgid "path" msgstr "" -#: c-api/init.rst:1814 c-api/init.rst:1867 +#: c-api/init.rst:1893 c-api/init.rst:1946 msgid "Py_FinalizeEx (C function)" msgstr "" @@ -3174,42 +3611,42 @@ msgstr "" msgid "PyEval_SaveThread (C function)" msgstr "" -#: c-api/init.rst:1200 +#: c-api/init.rst:1206 msgid "PyEval_AcquireThread()" msgstr "" -#: c-api/init.rst:1200 +#: c-api/init.rst:1206 msgid "PyEval_ReleaseThread()" msgstr "" -#: c-api/init.rst:1200 +#: c-api/init.rst:1206 msgid "PyEval_SaveThread()" msgstr "" -#: c-api/init.rst:1200 +#: c-api/init.rst:1206 msgid "PyEval_RestoreThread()" msgstr "" -#: c-api/init.rst:1222 +#: c-api/init.rst:1228 msgid "_thread" msgstr "" -#: c-api/init.rst:1849 +#: c-api/init.rst:1928 msgid "stdout (in module sys)" msgstr "" -#: c-api/init.rst:1849 +#: c-api/init.rst:1928 msgid "stderr (in module sys)" msgstr "" -#: c-api/init.rst:1849 +#: c-api/init.rst:1928 msgid "stdin (in module sys)" msgstr "" -#: c-api/init.rst:1814 +#: c-api/init.rst:1893 msgid "Py_Initialize (C function)" msgstr "" -#: c-api/init.rst:1844 +#: c-api/init.rst:1923 msgid "close (in module os)" msgstr "" diff --git a/c-api/init_config.po b/c-api/init_config.po index 0f5ad363..4573d122 100644 --- a/c-api/init_config.po +++ b/c-api/init_config.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -138,7 +138,7 @@ msgid "Set *\\*err_msg* to ``NULL`` and return ``0`` otherwise." msgstr "" #: c-api/init_config.rst:105 -msgid "An error message is an UTF-8 encoded string." +msgid "An error message is a UTF-8 encoded string." msgstr "" #: c-api/init_config.rst:107 diff --git a/c-api/intro.po b/c-api/intro.po index 019d7a7c..437965df 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -177,104 +177,133 @@ msgstr "" msgid "Return the absolute value of ``x``." msgstr "" -#: c-api/intro.rst:128 +#: c-api/intro.rst:124 +msgid "" +"If the result cannot be represented (for example, if ``x`` has :c:macro:`!" +"INT_MIN` value for :c:expr:`int` type), the behavior is undefined." +msgstr "" + +#: c-api/intro.rst:132 msgid "" "Ask the compiler to always inline a static inline function. The compiler can " "ignore it and decide to not inline the function." msgstr "" -#: c-api/intro.rst:131 +#: c-api/intro.rst:135 msgid "" "It can be used to inline performance critical static inline functions when " "building Python in debug mode with function inlining disabled. For example, " "MSC disables function inlining when building in debug mode." msgstr "" -#: c-api/intro.rst:135 +#: c-api/intro.rst:139 msgid "" "Marking blindly a static inline function with Py_ALWAYS_INLINE can result in " "worse performances (due to increased code size for example). The compiler is " "usually smarter than the developer for the cost/benefit analysis." msgstr "" -#: c-api/intro.rst:139 +#: c-api/intro.rst:143 msgid "" "If Python is :ref:`built in debug mode ` (if the :c:macro:" "`Py_DEBUG` macro is defined), the :c:macro:`Py_ALWAYS_INLINE` macro does " "nothing." msgstr "" -#: c-api/intro.rst:142 +#: c-api/intro.rst:146 msgid "It must be specified before the function return type. Usage::" msgstr "" -#: c-api/intro.rst:144 +#: c-api/intro.rst:148 msgid "static inline Py_ALWAYS_INLINE int random(void) { return 4; }" msgstr "" -#: c-api/intro.rst:150 +#: c-api/intro.rst:154 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 "" -#: c-api/intro.rst:155 +#: c-api/intro.rst:159 msgid "" "Use this for deprecated declarations. The macro must be placed before the " "symbol name." msgstr "" -#: c-api/intro.rst:244 c-api/intro.rst:262 +#: c-api/intro.rst:290 c-api/intro.rst:308 msgid "Example::" msgstr "" -#: c-api/intro.rst:160 +#: c-api/intro.rst:164 msgid "Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void);" msgstr "" -#: c-api/intro.rst:162 +#: c-api/intro.rst:166 msgid "MSVC support was added." msgstr "" -#: c-api/intro.rst:167 +#: c-api/intro.rst:171 msgid "" "Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the " "command line (see :c:member:`PyConfig.use_environment`)." msgstr "" -#: c-api/intro.rst:172 +#: c-api/intro.rst:176 +msgid "" +"Declare a function returning the specified *type* using a fast-calling " +"qualifier for functions that are local to the current file. Semantically, " +"this is equivalent to ``static type``." +msgstr "" + +#: c-api/intro.rst:182 +msgid "" +"Equivalent to :c:macro:`Py_LOCAL` but additionally requests the function be " +"inlined." +msgstr "" + +#: c-api/intro.rst:187 msgid "Return the maximum value between ``x`` and ``y``." msgstr "" -#: c-api/intro.rst:178 +#: c-api/intro.rst:193 msgid "Return the size of a structure (``type``) ``member`` in bytes." msgstr "" -#: c-api/intro.rst:184 +#: c-api/intro.rst:199 +msgid "" +"This is a :term:`soft deprecated` alias to :c:func:`!memcpy`. Use :c:func:`!" +"memcpy` directly instead." +msgstr "" + +#: c-api/intro.rst:202 +msgid "The macro is :term:`soft deprecated`." +msgstr "" + +#: c-api/intro.rst:207 msgid "Return the minimum value between ``x`` and ``y``." msgstr "" -#: c-api/intro.rst:190 +#: c-api/intro.rst:213 msgid "" "Disable inlining on a function. For example, it reduces the C stack " "consumption: useful on LTO+PGO builds which heavily inline code (see :issue:" "`33720`)." msgstr "" -#: c-api/intro.rst:194 +#: c-api/intro.rst:217 msgid "Usage::" msgstr "" -#: c-api/intro.rst:196 +#: c-api/intro.rst:219 msgid "Py_NO_INLINE static int random(void) { return 4; }" msgstr "" -#: c-api/intro.rst:202 +#: c-api/intro.rst:225 msgid "" "Convert ``x`` to a C string. E.g. ``Py_STRINGIFY(123)`` returns ``\"123\"``." msgstr "" -#: c-api/intro.rst:209 +#: c-api/intro.rst:232 msgid "" "Use this when you have a code path that cannot be reached by design. For " "example, in the ``default:`` clause in a ``switch`` statement for which all " @@ -282,20 +311,20 @@ msgid "" "where you might be tempted to put an ``assert(0)`` or ``abort()`` call." msgstr "" -#: c-api/intro.rst:214 +#: c-api/intro.rst:237 msgid "" "In release mode, the macro helps the compiler to optimize the code, and " "avoids a warning about unreachable code. For example, the macro is " "implemented with ``__builtin_unreachable()`` on GCC in release mode." msgstr "" -#: c-api/intro.rst:218 +#: c-api/intro.rst:241 msgid "" "A use for ``Py_UNREACHABLE()`` is following a call a function that never " "returns but that is not declared :c:macro:`_Py_NO_RETURN`." msgstr "" -#: c-api/intro.rst:221 +#: c-api/intro.rst:244 msgid "" "If a code path is very unlikely code but can be reached under exceptional " "case, this macro must not be used. For example, under low memory condition " @@ -304,25 +333,52 @@ msgid "" "reported to caller, :c:func:`Py_FatalError` can be used." msgstr "" -#: c-api/intro.rst:231 +#: c-api/intro.rst:254 msgid "" "Use this for unused arguments in a function definition to silence compiler " "warnings. Example: ``int func(int a, int Py_UNUSED(b)) { return a; }``." msgstr "" -#: c-api/intro.rst:238 +#: c-api/intro.rst:261 +msgid "" +"Asserts a compile-time condition *cond*, as a statement. The build will fail " +"if the condition is false or cannot be evaluated at compile time." +msgstr "" + +#: c-api/intro.rst:275 c-api/intro.rst:320 +msgid "For example::" +msgstr "" + +#: c-api/intro.rst:266 +msgid "Py_BUILD_ASSERT(sizeof(PyTime_t) == sizeof(int64_t));" +msgstr "" + +#: c-api/intro.rst:272 msgid "" -"Creates a variable with name ``name`` that can be used in docstrings. If " +"Asserts a compile-time condition *cond*, as an expression that evaluates to " +"``0``. The build will fail if the condition is false or cannot be evaluated " +"at compile time." +msgstr "" + +#: c-api/intro.rst:277 +msgid "" +"#define foo_to_char(foo) \\\n" +" ((char *)(foo) + Py_BUILD_ASSERT_EXPR(offsetof(struct foo, string) == 0))" +msgstr "" + +#: c-api/intro.rst:284 +msgid "" +"Creates a variable with name *name* that can be used in docstrings. If " "Python is built without docstrings, the value will be empty." msgstr "" -#: c-api/intro.rst:241 +#: c-api/intro.rst:287 msgid "" "Use :c:macro:`PyDoc_STRVAR` for docstrings to support building Python " "without docstrings, as specified in :pep:`7`." msgstr "" -#: c-api/intro.rst:246 +#: c-api/intro.rst:292 msgid "" "PyDoc_STRVAR(pop_doc, \"Remove and return the rightmost element.\");\n" "\n" @@ -333,19 +389,19 @@ msgid "" "}" msgstr "" -#: c-api/intro.rst:256 +#: c-api/intro.rst:302 msgid "" "Creates a docstring for the given input string or an empty string if " "docstrings are disabled." msgstr "" -#: c-api/intro.rst:259 +#: c-api/intro.rst:305 msgid "" "Use :c:macro:`PyDoc_STR` in specifying docstrings to support building Python " "without docstrings, as specified in :pep:`7`." msgstr "" -#: c-api/intro.rst:264 +#: c-api/intro.rst:310 msgid "" "static PyMethodDef pysqlite_row_methods[] = {\n" " {\"keys\", (PyCFunction)pysqlite_row_keys, METH_NOARGS,\n" @@ -354,11 +410,43 @@ msgid "" "};" msgstr "" -#: c-api/intro.rst:274 +#: c-api/intro.rst:318 +msgid "Declares a static character array variable with the given name *name*." +msgstr "" + +#: c-api/intro.rst:322 +msgid "" +"PyDoc_VAR(python_doc) = PyDoc_STR(\"A genus of constricting snakes in the " +"Pythonidae family native \"\n" +" \"to the tropics and subtropics of the " +"Eastern Hemisphere.\");" +msgstr "" + +#: c-api/intro.rst:327 +msgid "Compute the length of a statically allocated C array at compile time." +msgstr "" + +#: c-api/intro.rst:329 +msgid "" +"The *array* argument must be a C array with a size known at compile time. " +"Passing an array with an unknown size, such as a heap-allocated array, will " +"result in a compilation error on some compilers, or otherwise produce " +"incorrect results." +msgstr "" + +#: c-api/intro.rst:334 +msgid "This is roughly equivalent to::" +msgstr "" + +#: c-api/intro.rst:336 +msgid "sizeof(array) / sizeof((array)[0])" +msgstr "" + +#: c-api/intro.rst:342 msgid "Objects, Types and Reference Counts" msgstr "" -#: c-api/intro.rst:278 +#: c-api/intro.rst:346 msgid "" "Most Python/C API functions have one or more arguments as well as a return " "value of type :c:expr:`PyObject*`. This type is a pointer to an opaque data " @@ -373,7 +461,7 @@ msgid "" "objects." msgstr "" -#: c-api/intro.rst:289 +#: c-api/intro.rst:357 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." @@ -384,11 +472,11 @@ msgid "" "a Python list." msgstr "" -#: c-api/intro.rst:300 +#: c-api/intro.rst:368 msgid "Reference Counts" msgstr "" -#: c-api/intro.rst:302 +#: c-api/intro.rst:370 msgid "" "The reference count is important because today's computers have a finite " "(and often severely limited) memory size; it counts how many different " @@ -403,7 +491,7 @@ msgid "" "that.\")" msgstr "" -#: c-api/intro.rst:319 +#: c-api/intro.rst:387 msgid "" "Reference counts are always manipulated explicitly. The normal way is to " "use the macro :c:func:`Py_INCREF` to take a new reference to an object (i.e. " @@ -422,7 +510,7 @@ msgid "" "increment is a simple operation." msgstr "" -#: c-api/intro.rst:335 +#: c-api/intro.rst:403 msgid "" "It is not necessary to hold a :term:`strong reference` (i.e. increment the " "reference count) for every local variable that contains a pointer to an " @@ -440,7 +528,7 @@ msgid "" "reference to every argument for the duration of the call." msgstr "" -#: c-api/intro.rst:351 +#: c-api/intro.rst:419 msgid "" "However, a common pitfall is to extract an object from a list and hold on to " "it for a while without taking a new reference. Some other operation might " @@ -451,7 +539,7 @@ msgid "" "`Py_DECREF`, so almost any operation is potentially dangerous." msgstr "" -#: c-api/intro.rst:359 +#: c-api/intro.rst:427 msgid "" "A safe approach is to always use the generic operations (functions whose " "name begins with ``PyObject_``, ``PyNumber_``, ``PySequence_`` or " @@ -461,11 +549,11 @@ msgid "" "when they are done with the result; this soon becomes second nature." msgstr "" -#: c-api/intro.rst:370 +#: c-api/intro.rst:438 msgid "Reference Count Details" msgstr "" -#: c-api/intro.rst:372 +#: c-api/intro.rst:440 msgid "" "The reference count behavior of functions in the Python/C API is best " "explained in terms of *ownership of references*. Ownership pertains to " @@ -482,7 +570,7 @@ msgid "" "`borrowed reference`." msgstr "" -#: c-api/intro.rst:385 +#: c-api/intro.rst:453 msgid "" "Conversely, when a calling function passes in a reference to an object, " "there are two possibilities: the function *steals* a reference to the " @@ -491,7 +579,7 @@ msgid "" "reference, and you are not responsible for it any longer." msgstr "" -#: c-api/intro.rst:395 +#: c-api/intro.rst:463 msgid "" "Few functions steal references; the two notable exceptions are :c:func:" "`PyList_SetItem` and :c:func:`PyTuple_SetItem`, which steal a reference to " @@ -503,7 +591,7 @@ msgid "" "below)::" msgstr "" -#: c-api/intro.rst:403 +#: c-api/intro.rst:471 msgid "" "PyObject *t;\n" "\n" @@ -513,7 +601,7 @@ msgid "" "PyTuple_SetItem(t, 2, PyUnicode_FromString(\"three\"));" msgstr "" -#: c-api/intro.rst:410 +#: c-api/intro.rst:478 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 " @@ -521,7 +609,7 @@ msgid "" "another reference before calling the reference-stealing function." msgstr "" -#: c-api/intro.rst:415 +#: c-api/intro.rst:483 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 " @@ -529,13 +617,13 @@ msgid "" "func:`PyTuple_SetItem` for tuples that you are creating yourself." msgstr "" -#: c-api/intro.rst:420 +#: c-api/intro.rst:488 msgid "" "Equivalent code for populating a list can be written using :c:func:" "`PyList_New` and :c:func:`PyList_SetItem`." msgstr "" -#: c-api/intro.rst:423 +#: c-api/intro.rst:491 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:" @@ -544,7 +632,7 @@ msgid "" "be replaced by the following (which also takes care of the error checking)::" msgstr "" -#: c-api/intro.rst:429 +#: c-api/intro.rst:497 msgid "" "PyObject *tuple, *list;\n" "\n" @@ -552,7 +640,7 @@ msgid "" "list = Py_BuildValue(\"[iis]\", 1, 2, \"three\");" msgstr "" -#: c-api/intro.rst:434 +#: c-api/intro.rst:502 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 " @@ -563,7 +651,7 @@ msgid "" "sequence) to a given item::" msgstr "" -#: c-api/intro.rst:441 +#: c-api/intro.rst:509 msgid "" "int\n" "set_all(PyObject *target, PyObject *item)\n" @@ -587,7 +675,7 @@ msgid "" "}" msgstr "" -#: c-api/intro.rst:464 +#: c-api/intro.rst:532 msgid "" "The situation is slightly different for function return values. While " "passing a reference to most functions does not change your ownership " @@ -600,7 +688,7 @@ msgid "" "becomes the owner of the reference)." msgstr "" -#: c-api/intro.rst:473 +#: c-api/intro.rst:541 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 " @@ -611,14 +699,14 @@ msgid "" "the same arguments), you do own a reference to the returned object." msgstr "" -#: c-api/intro.rst:485 +#: c-api/intro.rst:553 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 "" -#: c-api/intro.rst:489 +#: c-api/intro.rst:557 msgid "" "long\n" "sum_list(PyObject *list)\n" @@ -643,7 +731,7 @@ msgid "" "}" msgstr "" -#: c-api/intro.rst:515 +#: c-api/intro.rst:583 msgid "" "long\n" "sum_sequence(PyObject *sequence)\n" @@ -674,11 +762,11 @@ msgid "" "}" msgstr "" -#: c-api/intro.rst:549 +#: c-api/intro.rst:617 msgid "Types" msgstr "" -#: c-api/intro.rst:551 +#: c-api/intro.rst:619 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:expr:`int`, :c:expr:`long`, :c:expr:" @@ -689,7 +777,7 @@ msgid "" "that use them." msgstr "" -#: c-api/intro.rst:561 +#: c-api/intro.rst:629 msgid "" "A signed integral type such that ``sizeof(Py_ssize_t) == sizeof(size_t)``. " "C99 doesn't define such a thing directly (size_t is an unsigned integral " @@ -697,11 +785,11 @@ msgid "" "positive value of type :c:type:`Py_ssize_t`." msgstr "" -#: c-api/intro.rst:570 +#: c-api/intro.rst:638 msgid "Exceptions" msgstr "" -#: c-api/intro.rst:572 +#: c-api/intro.rst:640 msgid "" "The Python programmer only needs to deal with exceptions if specific error " "handling is required; unhandled exceptions are automatically propagated to " @@ -710,7 +798,7 @@ msgid "" "stack traceback." msgstr "" -#: c-api/intro.rst:580 +#: c-api/intro.rst:648 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 " @@ -725,7 +813,7 @@ msgid "" "explicitly documented." msgstr "" -#: c-api/intro.rst:595 +#: c-api/intro.rst:663 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 " @@ -738,7 +826,7 @@ msgid "" "clears the exception state." msgstr "" -#: c-api/intro.rst:605 +#: c-api/intro.rst:673 msgid "" "The full exception state consists of three objects (all of which can be " "``NULL``): the exception type, the corresponding exception value, and the " @@ -751,7 +839,7 @@ msgid "" "``sys.exc_info()`` and friends." msgstr "" -#: c-api/intro.rst:617 +#: c-api/intro.rst:685 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." @@ -765,7 +853,7 @@ msgid "" "referenced by the stack frames in the traceback." msgstr "" -#: c-api/intro.rst:628 +#: c-api/intro.rst:696 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 " @@ -776,7 +864,7 @@ msgid "" "of the error." msgstr "" -#: c-api/intro.rst:637 +#: c-api/intro.rst:705 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 " @@ -785,7 +873,7 @@ msgid "" "why you like Python, we show the equivalent Python code::" msgstr "" -#: c-api/intro.rst:643 +#: c-api/intro.rst:711 msgid "" "def incr_item(dict, key):\n" " try:\n" @@ -795,11 +883,11 @@ msgid "" " dict[key] = item + 1" msgstr "" -#: c-api/intro.rst:652 +#: c-api/intro.rst:720 msgid "Here is the corresponding C code, in all its glory::" msgstr "" -#: c-api/intro.rst:654 +#: c-api/intro.rst:722 msgid "" "int\n" "incr_item(PyObject *dict, PyObject *key)\n" @@ -845,7 +933,7 @@ msgid "" "}" msgstr "" -#: c-api/intro.rst:704 +#: c-api/intro.rst:772 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:" @@ -858,11 +946,11 @@ msgid "" "success after the final call made is successful." msgstr "" -#: c-api/intro.rst:718 +#: c-api/intro.rst:786 msgid "Embedding Python" msgstr "" -#: c-api/intro.rst:720 +#: c-api/intro.rst:788 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 " @@ -870,7 +958,7 @@ msgid "" "the interpreter can only be used after the interpreter has been initialized." msgstr "" -#: c-api/intro.rst:733 +#: c-api/intro.rst:801 msgid "" "The basic initialization function is :c:func:`Py_Initialize`. This " "initializes the table of loaded modules, and creates the fundamental " @@ -878,7 +966,7 @@ msgid "" "initializes the module search path (``sys.path``)." msgstr "" -#: c-api/intro.rst:738 +#: c-api/intro.rst:806 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 " @@ -886,7 +974,7 @@ msgid "" "must be set: see :ref:`Python Initialization Configuration `." msgstr "" -#: c-api/intro.rst:743 +#: c-api/intro.rst:811 msgid "" "On most systems (in particular, on Unix and Windows, although the details " "are slightly different), :c:func:`Py_Initialize` calculates the module " @@ -898,7 +986,7 @@ msgid "" "on the shell command search path (the environment variable :envvar:`PATH`)." msgstr "" -#: c-api/intro.rst:752 +#: c-api/intro.rst:820 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/" @@ -909,7 +997,7 @@ msgid "" "in front of the standard path by setting :envvar:`PYTHONPATH`." msgstr "" -#: c-api/intro.rst:766 +#: c-api/intro.rst:834 msgid "" "The embedding application can steer the search by setting :c:member:" "`PyConfig.program_name` *before* calling :c:func:`Py_InitializeFromConfig`. " @@ -920,7 +1008,7 @@ msgid "" "func:`Py_GetProgramFullPath` (all defined in :file:`Modules/getpath.c`)." msgstr "" -#: c-api/intro.rst:777 +#: c-api/intro.rst:845 msgid "" "Sometimes, it is desirable to \"uninitialize\" Python. For instance, the " "application may want to start over (make another call to :c:func:" @@ -934,18 +1022,18 @@ msgid "" "released." msgstr "" -#: c-api/intro.rst:791 +#: c-api/intro.rst:859 msgid "Debugging Builds" msgstr "" -#: c-api/intro.rst:793 +#: c-api/intro.rst:861 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 "" -#: c-api/intro.rst:797 +#: c-api/intro.rst:865 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 " @@ -955,7 +1043,7 @@ msgid "" "section." msgstr "" -#: c-api/intro.rst:805 +#: c-api/intro.rst:873 msgid "" "Compiling the interpreter with the :c:macro:`!Py_DEBUG` macro defined " "produces what is generally meant by :ref:`a debug build of Python `." msgstr "" -#: c-api/intro.rst:816 +#: c-api/intro.rst:884 msgid "" "Defining :c:macro:`Py_TRACE_REFS` enables reference tracing (see the :option:" "`configure --with-trace-refs option <--with-trace-refs>`). When defined, a " @@ -982,55 +1070,55 @@ msgid "" "this happens after every statement run by the interpreter.)" msgstr "" -#: c-api/intro.rst:823 +#: c-api/intro.rst:891 msgid "" "Please refer to :file:`Misc/SpecialBuilds.txt` in the Python source " "distribution for more detailed information." msgstr "" -#: c-api/intro.rst:830 +#: c-api/intro.rst:898 msgid "Recommended third party tools" msgstr "" -#: c-api/intro.rst:832 +#: c-api/intro.rst:900 msgid "" "The following third party tools offer both simpler and more sophisticated " "approaches to creating C, C++ and Rust extensions for Python:" msgstr "" -#: c-api/intro.rst:835 +#: c-api/intro.rst:903 msgid "`Cython `_" msgstr "" -#: c-api/intro.rst:836 +#: c-api/intro.rst:904 msgid "`cffi `_" msgstr "" -#: c-api/intro.rst:837 +#: c-api/intro.rst:905 msgid "`HPy `_" msgstr "" -#: c-api/intro.rst:838 +#: c-api/intro.rst:906 msgid "`nanobind `_ (C++)" msgstr "" -#: c-api/intro.rst:839 +#: c-api/intro.rst:907 msgid "`Numba `_" msgstr "" -#: c-api/intro.rst:840 +#: c-api/intro.rst:908 msgid "`pybind11 `_ (C++)" msgstr "" -#: c-api/intro.rst:841 +#: c-api/intro.rst:909 msgid "`PyO3 `_ (Rust)" msgstr "" -#: c-api/intro.rst:842 +#: c-api/intro.rst:910 msgid "`SWIG `_" msgstr "" -#: c-api/intro.rst:844 +#: c-api/intro.rst:912 msgid "" "Using tools such as these can help avoid writing code that is tightly bound " "to a particular version of CPython, avoid reference counting errors, and " @@ -1041,7 +1129,7 @@ msgid "" "sources." msgstr "" -#: c-api/intro.rst:851 +#: c-api/intro.rst:919 msgid "" "These projects are not supported by the same people who maintain Python, and " "issues need to be raised with the projects directly. Remember to check that " @@ -1049,139 +1137,139 @@ msgid "" "outdated." msgstr "" -#: c-api/intro.rst:858 +#: c-api/intro.rst:926 msgid "" "`Python Packaging User Guide: Binary Extensions `_" msgstr "" -#: c-api/intro.rst:859 +#: c-api/intro.rst:927 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 "" -#: c-api/intro.rst:276 +#: c-api/intro.rst:344 msgid "object" msgstr "" -#: c-api/intro.rst:276 +#: c-api/intro.rst:344 msgid "type" msgstr "" -#: c-api/intro.rst:315 +#: c-api/intro.rst:383 msgid "Py_INCREF (C function)" msgstr "" -#: c-api/intro.rst:315 +#: c-api/intro.rst:383 msgid "Py_DECREF (C function)" msgstr "" -#: c-api/intro.rst:391 +#: c-api/intro.rst:459 msgid "PyList_SetItem (C function)" msgstr "" -#: c-api/intro.rst:391 +#: c-api/intro.rst:459 msgid "PyTuple_SetItem (C function)" msgstr "" -#: c-api/intro.rst:462 +#: c-api/intro.rst:530 msgid "set_all()" msgstr "" -#: c-api/intro.rst:481 +#: c-api/intro.rst:549 msgid "PyList_GetItem (C function)" msgstr "" -#: c-api/intro.rst:481 +#: c-api/intro.rst:549 msgid "PySequence_GetItem (C function)" msgstr "" -#: c-api/intro.rst:511 +#: c-api/intro.rst:579 msgid "sum_list()" msgstr "" -#: c-api/intro.rst:635 +#: c-api/intro.rst:703 msgid "sum_sequence()" msgstr "" -#: c-api/intro.rst:578 +#: c-api/intro.rst:646 msgid "PyErr_Occurred (C function)" msgstr "" -#: c-api/intro.rst:591 +#: c-api/intro.rst:659 msgid "PyErr_SetString (C function)" msgstr "" -#: c-api/intro.rst:699 +#: c-api/intro.rst:767 msgid "PyErr_Clear (C function)" msgstr "" -#: c-api/intro.rst:615 +#: c-api/intro.rst:683 msgid "exc_info (in module sys)" msgstr "" -#: c-api/intro.rst:697 +#: c-api/intro.rst:765 msgid "incr_item()" msgstr "" -#: c-api/intro.rst:699 +#: c-api/intro.rst:767 msgid "PyErr_ExceptionMatches (C function)" msgstr "" -#: c-api/intro.rst:699 +#: c-api/intro.rst:767 msgid "Py_XDECREF (C function)" msgstr "" -#: c-api/intro.rst:725 +#: c-api/intro.rst:793 msgid "Py_Initialize (C function)" msgstr "" -#: c-api/intro.rst:725 +#: c-api/intro.rst:793 msgid "module" msgstr "" -#: c-api/intro.rst:725 +#: c-api/intro.rst:793 msgid "builtins" msgstr "" -#: c-api/intro.rst:725 +#: c-api/intro.rst:793 msgid "__main__" msgstr "" -#: c-api/intro.rst:725 +#: c-api/intro.rst:793 msgid "sys" msgstr "" -#: c-api/intro.rst:725 +#: c-api/intro.rst:793 msgid "search" msgstr "" -#: c-api/intro.rst:725 +#: c-api/intro.rst:793 msgid "path" msgstr "" -#: c-api/intro.rst:725 +#: c-api/intro.rst:793 msgid "path (in module sys)" msgstr "" -#: c-api/intro.rst:760 +#: c-api/intro.rst:828 msgid "Py_GetPath (C function)" msgstr "" -#: c-api/intro.rst:760 +#: c-api/intro.rst:828 msgid "Py_GetPrefix (C function)" msgstr "" -#: c-api/intro.rst:760 +#: c-api/intro.rst:828 msgid "Py_GetExecPrefix (C function)" msgstr "" -#: c-api/intro.rst:760 +#: c-api/intro.rst:828 msgid "Py_GetProgramFullPath (C function)" msgstr "" -#: c-api/intro.rst:775 +#: c-api/intro.rst:843 msgid "Py_IsInitialized (C function)" msgstr "" diff --git a/c-api/iter.po b/c-api/iter.po index 72d8bd95..a9414014 100644 --- a/c-api/iter.po +++ b/c-api/iter.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/iterator.po b/c-api/iterator.po index 4d300363..2310bcb3 100644 --- a/c-api/iterator.po +++ b/c-api/iterator.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -69,3 +69,77 @@ msgid "" "should return the next item in the iteration. When *callable* returns a " "value equal to *sentinel*, the iteration will be terminated." msgstr "" + +#: c-api/iterator.rst:56 +msgid "Range Objects" +msgstr "" + +#: c-api/iterator.rst:60 +msgid "The type object for :class:`range` objects." +msgstr "" + +#: c-api/iterator.rst:65 +msgid "" +"Return true if the object *o* is an instance of a :class:`range` object. " +"This function always succeeds." +msgstr "" + +#: c-api/iterator.rst:70 +msgid "Builtin Iterator Types" +msgstr "" + +#: c-api/iterator.rst:72 +msgid "" +"These are built-in iteration types that are included in Python's C API, but " +"provide no additional functions. They are here for completeness." +msgstr "" + +#: c-api/iterator.rst:80 +msgid "C type" +msgstr "" + +#: c-api/iterator.rst:81 +msgid "Python type" +msgstr "" + +#: c-api/iterator.rst:83 +msgid ":py:class:`enumerate`" +msgstr "" + +#: c-api/iterator.rst:85 +msgid ":py:class:`filter`" +msgstr "" + +#: c-api/iterator.rst:87 +msgid ":py:class:`map`" +msgstr "" + +#: c-api/iterator.rst:89 +msgid ":py:class:`reversed`" +msgstr "" + +#: c-api/iterator.rst:91 +msgid ":py:class:`zip`" +msgstr "" + +#: c-api/iterator.rst:95 +msgid "Other Iterator Objects" +msgstr "" + +#: c-api/iterator.rst:113 +msgid "Type objects for iterators of various built-in objects." +msgstr "" + +#: c-api/iterator.rst:115 +msgid "" +"Do not create instances of these directly; prefer calling :c:func:" +"`PyObject_GetIter` instead." +msgstr "" + +#: c-api/iterator.rst:118 +msgid "" +"Note that there is no guarantee that a given built-in type uses a given " +"iterator type. For example, iterating over :class:`range` will use one of " +"two iterator types depending on the size of the range. Other types may start " +"using a similar scheme in the future, without warning." +msgstr "" diff --git a/c-api/lifecycle.po b/c-api/lifecycle.po index dd7d7eba..6a51e627 100644 --- a/c-api/lifecycle.po +++ b/c-api/lifecycle.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+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" diff --git a/c-api/list.po b/c-api/list.po index ac6372b4..e65044c2 100644 --- a/c-api/list.po +++ b/c-api/list.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/long.po b/c-api/long.po index f35ab52e..6c030bcf 100644 --- a/c-api/long.po +++ b/c-api/long.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -60,63 +60,63 @@ msgid "" "Return a new :c:type:`PyLongObject` object from *v*, or ``NULL`` on failure." msgstr "" -#: c-api/long.rst:43 +#: c-api/long.rst:45 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." +"CPython 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." msgstr "" -#: c-api/long.rst:50 +#: c-api/long.rst:52 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long`, " "or ``NULL`` on failure." msgstr "" -#: c-api/long.rst:56 +#: 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 "" -#: c-api/long.rst:62 +#: 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 "" -#: c-api/long.rst:68 +#: c-api/long.rst:70 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:expr:`long long`, or " "``NULL`` on failure." msgstr "" -#: c-api/long.rst:75 +#: c-api/long.rst:77 msgid "" "Return a new :c:type:`PyLongObject` object from a signed C :c:expr:`int32_t` " "or :c:expr:`int64_t`, or ``NULL`` with an exception set on failure." msgstr "" -#: c-api/long.rst:84 +#: c-api/long.rst:86 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long " "long`, or ``NULL`` on failure." msgstr "" -#: c-api/long.rst:91 +#: c-api/long.rst:93 msgid "" "Return a new :c:type:`PyLongObject` object from an unsigned C :c:expr:" "`uint32_t` or :c:expr:`uint64_t`, or ``NULL`` with an exception set on " "failure." msgstr "" -#: c-api/long.rst:100 +#: c-api/long.rst:102 msgid "" "Return a new :c:type:`PyLongObject` object from the integer part of *v*, or " "``NULL`` on failure." msgstr "" -#: c-api/long.rst:106 +#: c-api/long.rst:108 msgid "" "Return a new :c:type:`PyLongObject` based on the string value in *str*, " "which is interpreted according to the radix in *base*, or ``NULL`` on " @@ -131,32 +131,32 @@ msgid "" "whitespace, :exc:`ValueError` will be raised." msgstr "" -#: c-api/long.rst:117 +#: c-api/long.rst:119 msgid "" ":c:func:`PyLong_AsNativeBytes()` and :c:func:`PyLong_FromNativeBytes()` " "functions can be used to convert a :c:type:`PyLongObject` to/from an array " "of bytes in base ``256``." msgstr "" -#: c-api/long.rst:124 +#: c-api/long.rst:126 msgid "" "Convert a sequence of Unicode digits in the string *u* to a Python integer " "value." msgstr "" -#: c-api/long.rst:132 +#: c-api/long.rst:134 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 "" -#: c-api/long.rst:138 +#: c-api/long.rst:140 msgid "" "Create a Python integer from the value contained in the first *n_bytes* of " "*buffer*, interpreted as a two's-complement signed number." msgstr "" -#: c-api/long.rst:141 +#: c-api/long.rst:143 msgid "" "*flags* are as for :c:func:`PyLong_AsNativeBytes`. Passing ``-1`` will " "select the native endian that CPython was compiled with and assume that the " @@ -165,62 +165,72 @@ msgid "" "calling :c:func:`PyLong_FromUnsignedNativeBytes`. Other flags are ignored." msgstr "" -#: c-api/long.rst:152 +#: c-api/long.rst:154 msgid "" "Create a Python integer from the value contained in the first *n_bytes* of " "*buffer*, interpreted as an unsigned number." msgstr "" -#: c-api/long.rst:155 +#: c-api/long.rst:157 msgid "" "*flags* are as for :c:func:`PyLong_AsNativeBytes`. Passing ``-1`` will " "select the native endian that CPython was compiled with and assume that the " "most-significant bit is not a sign bit. Flags other than endian are ignored." msgstr "" -#: c-api/long.rst:204 +#: c-api/long.rst:166 +msgid "Macro for creating a Python integer from a process identifier." +msgstr "" + +#: c-api/long.rst:168 +msgid "" +"This can be defined as an alias to :c:func:`PyLong_FromLong` or :c:func:" +"`PyLong_FromLongLong`, depending on the size of the system's PID type." +msgstr "" + +#: c-api/long.rst:217 msgid "" "Return a C :c:expr:`long` representation of *obj*. If *obj* is not an " "instance of :c:type:`PyLongObject`, first call its :meth:`~object.__index__` " "method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" -#: c-api/long.rst:172 +#: c-api/long.rst:185 msgid "" "Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" "expr:`long`." msgstr "" -#: c-api/long.rst:213 c-api/long.rst:254 c-api/long.rst:277 +#: c-api/long.rst:226 c-api/long.rst:267 c-api/long.rst:290 msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" -#: c-api/long.rst:215 c-api/long.rst:258 c-api/long.rst:362 +#: c-api/long.rst:228 c-api/long.rst:271 c-api/long.rst:375 msgid "Use :meth:`~object.__index__` if available." msgstr "" -#: c-api/long.rst:218 c-api/long.rst:261 c-api/long.rst:365 +#: c-api/long.rst:231 c-api/long.rst:274 c-api/long.rst:378 msgid "This function will no longer use :meth:`~object.__int__`." msgstr "" -#: c-api/long.rst:187 +#: c-api/long.rst:200 msgid "" "A :term:`soft deprecated` alias. Exactly equivalent to the preferred " "``PyLong_AsLong``. In particular, it can fail with :exc:`OverflowError` or " "another exception." msgstr "" -#: c-api/long.rst:191 +#: c-api/long.rst:204 msgid "The function is soft deprecated." msgstr "" -#: c-api/long.rst:196 +#: c-api/long.rst:209 msgid "" "Similar to :c:func:`PyLong_AsLong`, but store the result in a C :c:expr:" "`int` instead of a C :c:expr:`long`." msgstr "" -#: c-api/long.rst:208 +#: c-api/long.rst:221 msgid "" "If the value of *obj* is greater than :c:macro:`LONG_MAX` or less than :c:" "macro:`LONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and " @@ -228,20 +238,20 @@ msgid "" "exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." msgstr "" -#: c-api/long.rst:245 +#: c-api/long.rst:258 msgid "" "Return a C :c:expr:`long long` representation of *obj*. If *obj* is not an " "instance of :c:type:`PyLongObject`, first call its :meth:`~object.__index__` " "method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" -#: c-api/long.rst:231 +#: c-api/long.rst:244 msgid "" "Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" "expr:`long long`." msgstr "" -#: c-api/long.rst:249 +#: c-api/long.rst:262 msgid "" "If the value of *obj* is greater than :c:macro:`LLONG_MAX` or less than :c:" "macro:`LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and " @@ -249,170 +259,170 @@ msgid "" "exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." msgstr "" -#: c-api/long.rst:271 +#: c-api/long.rst:284 msgid "" "Return a C :c:type:`Py_ssize_t` representation of *pylong*. *pylong* must " "be an instance of :c:type:`PyLongObject`." msgstr "" -#: c-api/long.rst:274 +#: c-api/long.rst:287 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`Py_ssize_t`." msgstr "" -#: c-api/long.rst:286 +#: c-api/long.rst:299 msgid "" "Return a C :c:expr:`unsigned long` representation of *pylong*. *pylong* " "must be an instance of :c:type:`PyLongObject`." msgstr "" -#: c-api/long.rst:289 +#: c-api/long.rst:302 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "expr:`unsigned long`." msgstr "" -#: c-api/long.rst:292 +#: c-api/long.rst:305 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: c-api/long.rst:302 +#: c-api/long.rst:315 msgid "" "Return a C :c:type:`size_t` representation of *pylong*. *pylong* must be an " "instance of :c:type:`PyLongObject`." msgstr "" -#: c-api/long.rst:305 +#: c-api/long.rst:318 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`size_t`." msgstr "" -#: c-api/long.rst:308 +#: c-api/long.rst:321 msgid "" "Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: c-api/long.rst:317 +#: c-api/long.rst:330 msgid "" "Return a C :c:expr:`unsigned long long` representation of *pylong*. " "*pylong* must be an instance of :c:type:`PyLongObject`." msgstr "" -#: c-api/long.rst:320 +#: c-api/long.rst:333 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for an :" "c:expr:`unsigned long long`." msgstr "" -#: c-api/long.rst:323 +#: c-api/long.rst:336 msgid "" "Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: c-api/long.rst:326 +#: c-api/long.rst:339 msgid "" "A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`." msgstr "" -#: c-api/long.rst:332 +#: c-api/long.rst:345 msgid "" "Return a C :c:expr:`unsigned long` representation of *obj*. If *obj* is not " "an instance of :c:type:`PyLongObject`, first call its :meth:`~object." "__index__` method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" -#: c-api/long.rst:336 +#: c-api/long.rst:349 msgid "" "If the value of *obj* is out of range for an :c:expr:`unsigned long`, return " "the reduction of that value modulo ``ULONG_MAX + 1``." msgstr "" -#: c-api/long.rst:339 +#: c-api/long.rst:352 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: c-api/long.rst:351 +#: c-api/long.rst:364 msgid "" "Return a C :c:expr:`unsigned long long` representation of *obj*. If *obj* " "is not an instance of :c:type:`PyLongObject`, first call its :meth:`~object." "__index__` method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" -#: c-api/long.rst:356 +#: c-api/long.rst:369 msgid "" "If the value of *obj* is out of range for an :c:expr:`unsigned long long`, " "return the reduction of that value modulo ``ULLONG_MAX + 1``." msgstr "" -#: c-api/long.rst:359 +#: c-api/long.rst:372 msgid "" "Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` " "to disambiguate." msgstr "" -#: c-api/long.rst:372 +#: c-api/long.rst:385 msgid "" "Set *\\*value* to a signed C :c:expr:`int32_t` or :c:expr:`int64_t` " "representation of *obj*." msgstr "" -#: c-api/long.rst:396 +#: c-api/long.rst:408 +msgid "" +"If *obj* is not an instance of :c:type:`PyLongObject`, first call its :meth:" +"`~object.__index__` method (if present) to convert it to a :c:type:" +"`PyLongObject`." +msgstr "" + +#: c-api/long.rst:413 msgid "If the *obj* value is out of range, raise an :exc:`OverflowError`." msgstr "" -#: c-api/long.rst:398 +#: c-api/long.rst:415 msgid "" "Set *\\*value* and return ``0`` on success. Set an exception and return " "``-1`` on error." msgstr "" -#: c-api/long.rst:401 +#: c-api/long.rst:418 msgid "*value* must not be ``NULL``." msgstr "" -#: c-api/long.rst:388 +#: c-api/long.rst:405 msgid "" "Set *\\*value* to an unsigned C :c:expr:`uint32_t` or :c:expr:`uint64_t` " "representation of *obj*." msgstr "" -#: c-api/long.rst:391 -msgid "" -"If *obj* is not an instance of :c:type:`PyLongObject`, first call its :meth:" -"`~object.__index__` method (if present) to convert it to a :c:type:" -"`PyLongObject`." -msgstr "" - -#: c-api/long.rst:395 +#: c-api/long.rst:412 msgid "If *obj* is negative, raise a :exc:`ValueError`." msgstr "" -#: c-api/long.rst:408 +#: c-api/long.rst:425 msgid "" "Return a C :c:expr:`double` representation of *pylong*. *pylong* must be an " "instance of :c:type:`PyLongObject`." msgstr "" -#: c-api/long.rst:411 +#: c-api/long.rst:428 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "expr:`double`." msgstr "" -#: c-api/long.rst:414 +#: c-api/long.rst:431 msgid "" "Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" -#: c-api/long.rst:419 +#: c-api/long.rst:436 msgid "" "Convert a Python integer *pylong* to a C :c:expr:`void` pointer. If *pylong* " "cannot be converted, an :exc:`OverflowError` will be raised. This is only " @@ -420,59 +430,59 @@ msgid "" "c:func:`PyLong_FromVoidPtr`." msgstr "" -#: c-api/long.rst:424 +#: c-api/long.rst:441 msgid "" "Returns ``NULL`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" -#: c-api/long.rst:429 +#: c-api/long.rst:446 msgid "" "Copy the Python integer value *pylong* to a native *buffer* of size " "*n_bytes*. The *flags* can be set to ``-1`` to behave similarly to a C cast, " "or to values documented below to control the behavior." msgstr "" -#: c-api/long.rst:433 +#: c-api/long.rst:450 msgid "" "Returns ``-1`` with an exception raised on error. This may happen if " "*pylong* cannot be interpreted as an integer, or if *pylong* was negative " "and the ``Py_ASNATIVEBYTES_REJECT_NEGATIVE`` flag was set." msgstr "" -#: c-api/long.rst:437 +#: c-api/long.rst:454 msgid "" "Otherwise, returns the number of bytes required to store the value. If this " "is equal to or less than *n_bytes*, the entire value was copied. All " "*n_bytes* of the buffer are written: large buffers are padded with zeroes." msgstr "" -#: c-api/long.rst:442 +#: c-api/long.rst:459 msgid "" -"If the returned value is greater than than *n_bytes*, the value was " -"truncated: as many of the lowest bits of the value as could fit are written, " -"and the higher bits are ignored. This matches the typical behavior of a C-" -"style downcast." +"If the returned value is greater than *n_bytes*, the value was truncated: as " +"many of the lowest bits of the value as could fit are written, and the " +"higher bits are ignored. This matches the typical behavior of a C-style " +"downcast." msgstr "" -#: c-api/long.rst:449 +#: c-api/long.rst:466 msgid "" "Overflow is not considered an error. If the returned value is larger than " "*n_bytes*, most significant bits were discarded." msgstr "" -#: c-api/long.rst:452 +#: c-api/long.rst:469 msgid "``0`` will never be returned." msgstr "" -#: c-api/long.rst:454 +#: c-api/long.rst:471 msgid "Values are always copied as two's-complement." msgstr "" -#: c-api/long.rst:456 +#: c-api/long.rst:473 msgid "Usage example::" msgstr "" -#: c-api/long.rst:458 +#: c-api/long.rst:475 msgid "" "int32_t value;\n" "Py_ssize_t bytes = PyLong_AsNativeBytes(pylong, &value, sizeof(value), -1);\n" @@ -489,26 +499,26 @@ msgid "" "}" msgstr "" -#: c-api/long.rst:472 +#: c-api/long.rst:489 msgid "" "Passing zero to *n_bytes* will return the size of a buffer that would be " "large enough to hold the value. This may be larger than technically " "necessary, but not unreasonably so. If *n_bytes=0*, *buffer* may be ``NULL``." msgstr "" -#: c-api/long.rst:479 +#: c-api/long.rst:496 msgid "" "Passing *n_bytes=0* to this function is not an accurate way to determine the " "bit length of the value." msgstr "" -#: c-api/long.rst:482 +#: c-api/long.rst:499 msgid "" "To get at the entire Python value of an unknown size, the function can be " "called twice: first to determine the buffer size, then to fill it::" msgstr "" -#: c-api/long.rst:485 +#: c-api/long.rst:502 msgid "" "// Ask how much space we need.\n" "Py_ssize_t expected = PyLong_AsNativeBytes(pylong, NULL, 0, -1);\n" @@ -539,69 +549,69 @@ msgid "" "free(bignum);" msgstr "" -#: c-api/long.rst:513 +#: c-api/long.rst:530 msgid "" "*flags* is either ``-1`` (``Py_ASNATIVEBYTES_DEFAULTS``) to select defaults " "that behave most like a C cast, or a combination of the other flags in the " "table below. Note that ``-1`` cannot be combined with other flags." msgstr "" -#: c-api/long.rst:518 +#: c-api/long.rst:535 msgid "" "Currently, ``-1`` corresponds to ``Py_ASNATIVEBYTES_NATIVE_ENDIAN | " "Py_ASNATIVEBYTES_UNSIGNED_BUFFER``." msgstr "" -#: c-api/long.rst:524 +#: c-api/long.rst:541 msgid "Flag" msgstr "" -#: c-api/long.rst:524 +#: c-api/long.rst:541 msgid "Value" msgstr "" -#: c-api/long.rst:526 +#: c-api/long.rst:543 msgid "``-1``" msgstr "" -#: c-api/long.rst:527 +#: c-api/long.rst:544 msgid "``0``" msgstr "" -#: c-api/long.rst:528 +#: c-api/long.rst:545 msgid "``1``" msgstr "" -#: c-api/long.rst:529 +#: c-api/long.rst:546 msgid "``3``" msgstr "" -#: c-api/long.rst:530 +#: c-api/long.rst:547 msgid "``4``" msgstr "" -#: c-api/long.rst:531 +#: c-api/long.rst:548 msgid "``8``" msgstr "" -#: c-api/long.rst:532 +#: c-api/long.rst:549 msgid "``16``" msgstr "" -#: c-api/long.rst:535 +#: c-api/long.rst:552 msgid "" "Specifying ``Py_ASNATIVEBYTES_NATIVE_ENDIAN`` will override any other endian " "flags. Passing ``2`` is reserved." msgstr "" -#: c-api/long.rst:538 +#: c-api/long.rst:555 msgid "" "By default, sufficient buffer will be requested to include a sign bit. For " "example, when converting 128 with *n_bytes=1*, the function will return 2 " "(or more) in order to store a zero sign bit." msgstr "" -#: c-api/long.rst:542 +#: c-api/long.rst:559 msgid "" "If ``Py_ASNATIVEBYTES_UNSIGNED_BUFFER`` is specified, a zero sign bit will " "be omitted from size calculations. This allows, for example, 128 to fit in a " @@ -611,7 +621,7 @@ msgid "" "requested." msgstr "" -#: c-api/long.rst:549 +#: c-api/long.rst:566 msgid "" "Specifying ``Py_ASNATIVEBYTES_REJECT_NEGATIVE`` causes an exception to be " "set if *pylong* is negative. Without this flag, negative values will be " @@ -619,7 +629,7 @@ msgid "" "of whether ``Py_ASNATIVEBYTES_UNSIGNED_BUFFER`` was specified." msgstr "" -#: c-api/long.rst:554 +#: c-api/long.rst:571 msgid "" "If ``Py_ASNATIVEBYTES_ALLOW_INDEX`` is specified and a non-integer value is " "passed, its :meth:`~object.__index__` method will be called first. This may " @@ -629,7 +639,7 @@ msgid "" "`TypeError`." msgstr "" -#: c-api/long.rst:563 +#: c-api/long.rst:580 msgid "" "With the default *flags* (``-1``, or *UNSIGNED_BUFFER* without " "*REJECT_NEGATIVE*), multiple Python integers can map to a single value " @@ -637,71 +647,82 @@ msgid "" "buffer and set all its bits. This matches typical C cast behavior." msgstr "" -#: c-api/long.rst:574 +#: c-api/long.rst:591 +msgid "Macro for converting a Python integer into a process identifier." +msgstr "" + +#: c-api/long.rst:593 +msgid "" +"This can be defined as an alias to :c:func:`PyLong_AsLong`, :c:func:" +"`PyLong_FromLongLong`, or :c:func:`PyLong_AsInt`, depending on the size of " +"the system's PID type." +msgstr "" + +#: c-api/long.rst:602 msgid "Get the sign of the integer object *obj*." msgstr "" -#: c-api/long.rst:576 +#: c-api/long.rst:604 msgid "" "On success, set *\\*sign* to the integer sign (0, -1 or +1 for zero, " "negative or positive integer, respectively) and return 0." msgstr "" -#: c-api/long.rst:579 +#: c-api/long.rst:607 msgid "" "On failure, return -1 with an exception set. This function always succeeds " "if *obj* is a :c:type:`PyLongObject` or its subtype." msgstr "" -#: c-api/long.rst:587 +#: c-api/long.rst:615 msgid "Check if the integer object *obj* is positive (``obj > 0``)." msgstr "" -#: c-api/long.rst:589 +#: c-api/long.rst:617 msgid "" "If *obj* is an instance of :c:type:`PyLongObject` or its subtype, return " "``1`` when it's positive and ``0`` otherwise. Else set an exception and " "return ``-1``." msgstr "" -#: c-api/long.rst:598 +#: c-api/long.rst:626 msgid "Check if the integer object *obj* is negative (``obj < 0``)." msgstr "" -#: c-api/long.rst:600 +#: c-api/long.rst:628 msgid "" "If *obj* is an instance of :c:type:`PyLongObject` or its subtype, return " "``1`` when it's negative and ``0`` otherwise. Else set an exception and " "return ``-1``." msgstr "" -#: c-api/long.rst:609 +#: c-api/long.rst:637 msgid "Check if the integer object *obj* is zero." msgstr "" -#: c-api/long.rst:611 +#: c-api/long.rst:639 msgid "" "If *obj* is an instance of :c:type:`PyLongObject` or its subtype, return " "``1`` when it's zero and ``0`` otherwise. Else set an exception and return " "``-1``." msgstr "" -#: c-api/long.rst:620 +#: c-api/long.rst:648 msgid "" "On success, return a read only :term:`named tuple`, that holds information " "about Python's internal representation of integers. See :data:`sys.int_info` " "for description of individual fields." msgstr "" -#: c-api/long.rst:624 +#: c-api/long.rst:652 msgid "On failure, return ``NULL`` with an exception set." msgstr "" -#: c-api/long.rst:631 +#: c-api/long.rst:659 msgid "Return 1 if *op* is compact, 0 otherwise." msgstr "" -#: c-api/long.rst:633 +#: c-api/long.rst:661 msgid "" "This function makes it possible for performance-critical code to implement a " "“fast path” for small integers. For compact values use :c:func:" @@ -709,93 +730,93 @@ msgid "" "`PyLong_As* ` function or :c:func:`PyLong_AsNativeBytes`." msgstr "" -#: c-api/long.rst:639 +#: c-api/long.rst:667 msgid "The speedup is expected to be negligible for most users." msgstr "" -#: c-api/long.rst:641 +#: c-api/long.rst:669 msgid "" "Exactly what values are considered compact is an implementation detail and " "is subject to change." msgstr "" -#: c-api/long.rst:649 +#: c-api/long.rst:677 msgid "" "If *op* is compact, as determined by :c:func:`PyUnstable_Long_IsCompact`, " "return its value." msgstr "" -#: c-api/long.rst:652 +#: c-api/long.rst:680 msgid "Otherwise, the return value is undefined." msgstr "" -#: c-api/long.rst:658 +#: c-api/long.rst:686 msgid "Export API" msgstr "" -#: c-api/long.rst:664 +#: c-api/long.rst:692 msgid "" "Layout of an array of \"digits\" (\"limbs\" in the GMP terminology), used to " "represent absolute value for arbitrary precision integers." msgstr "" -#: c-api/long.rst:667 +#: c-api/long.rst:695 msgid "" "Use :c:func:`PyLong_GetNativeLayout` to get the native layout of Python :" "class:`int` objects, used internally for integers with \"big enough\" " "absolute value." msgstr "" -#: c-api/long.rst:671 +#: c-api/long.rst:699 msgid "" "See also :data:`sys.int_info` which exposes similar information in Python." msgstr "" -#: c-api/long.rst:675 +#: c-api/long.rst:703 msgid "" "Bits per digit. For example, a 15 bit digit means that bits 0-14 contain " "meaningful information." msgstr "" -#: c-api/long.rst:680 +#: c-api/long.rst:708 msgid "" "Digit size in bytes. For example, a 15 bit digit will require at least 2 " "bytes." msgstr "" -#: c-api/long.rst:685 +#: c-api/long.rst:713 msgid "Digits order:" msgstr "" -#: c-api/long.rst:687 +#: c-api/long.rst:715 msgid "``1`` for most significant digit first" msgstr "" -#: c-api/long.rst:688 +#: c-api/long.rst:716 msgid "``-1`` for least significant digit first" msgstr "" -#: c-api/long.rst:692 +#: c-api/long.rst:720 msgid "Digit endianness:" msgstr "" -#: c-api/long.rst:694 +#: c-api/long.rst:722 msgid "``1`` for most significant byte first (big endian)" msgstr "" -#: c-api/long.rst:695 +#: c-api/long.rst:723 msgid "``-1`` for least significant byte first (little endian)" msgstr "" -#: c-api/long.rst:700 +#: c-api/long.rst:728 msgid "Get the native layout of Python :class:`int` objects." msgstr "" -#: c-api/long.rst:702 +#: c-api/long.rst:730 msgid "See the :c:struct:`PyLongLayout` structure." msgstr "" -#: c-api/long.rst:704 +#: c-api/long.rst:732 msgid "" "The function must not be called before Python initialization nor after " "Python finalization. The returned layout is valid until Python is finalized. " @@ -803,128 +824,128 @@ msgid "" "it can be cached." msgstr "" -#: c-api/long.rst:712 +#: c-api/long.rst:740 msgid "Export of a Python :class:`int` object." msgstr "" -#: c-api/long.rst:714 +#: c-api/long.rst:742 msgid "There are two cases:" msgstr "" -#: c-api/long.rst:716 +#: c-api/long.rst:744 msgid "" "If :c:member:`digits` is ``NULL``, only use the :c:member:`value` member." msgstr "" -#: c-api/long.rst:717 +#: c-api/long.rst:745 msgid "" "If :c:member:`digits` is not ``NULL``, use :c:member:`negative`, :c:member:" "`ndigits` and :c:member:`digits` members." msgstr "" -#: c-api/long.rst:722 +#: c-api/long.rst:750 msgid "" "The native integer value of the exported :class:`int` object. Only valid if :" "c:member:`digits` is ``NULL``." msgstr "" -#: c-api/long.rst:727 +#: c-api/long.rst:755 msgid "" "``1`` if the number is negative, ``0`` otherwise. Only valid if :c:member:" "`digits` is not ``NULL``." msgstr "" -#: c-api/long.rst:732 +#: c-api/long.rst:760 msgid "" "Number of digits in :c:member:`digits` array. Only valid if :c:member:" "`digits` is not ``NULL``." msgstr "" -#: c-api/long.rst:737 +#: c-api/long.rst:765 msgid "Read-only array of unsigned digits. Can be ``NULL``." msgstr "" -#: c-api/long.rst:742 +#: c-api/long.rst:770 msgid "Export a Python :class:`int` object." msgstr "" -#: c-api/long.rst:744 +#: c-api/long.rst:772 msgid "" "*export_long* must point to a :c:struct:`PyLongExport` structure allocated " "by the caller. It must not be ``NULL``." msgstr "" -#: c-api/long.rst:747 +#: c-api/long.rst:775 msgid "" "On success, fill in *\\*export_long* and return ``0``. On error, set an " "exception and return ``-1``." msgstr "" -#: c-api/long.rst:750 +#: c-api/long.rst:778 msgid "" ":c:func:`PyLong_FreeExport` must be called when the export is no longer " "needed." msgstr "" -#: c-api/long.rst:754 +#: c-api/long.rst:782 msgid "" "This function always succeeds if *obj* is a Python :class:`int` object or a " "subclass." msgstr "" -#: c-api/long.rst:760 +#: c-api/long.rst:788 msgid "Release the export *export_long* created by :c:func:`PyLong_Export`." msgstr "" -#: c-api/long.rst:763 +#: c-api/long.rst:791 msgid "" "Calling :c:func:`PyLong_FreeExport` is optional if *export_long->digits* is " "``NULL``." msgstr "" -#: c-api/long.rst:768 +#: c-api/long.rst:796 msgid "PyLongWriter API" msgstr "" -#: c-api/long.rst:770 +#: c-api/long.rst:798 msgid "The :c:type:`PyLongWriter` API can be used to import an integer." msgstr "" -#: c-api/long.rst:776 +#: c-api/long.rst:804 msgid "A Python :class:`int` writer instance." msgstr "" -#: c-api/long.rst:778 +#: c-api/long.rst:806 msgid "" "The instance must be destroyed by :c:func:`PyLongWriter_Finish` or :c:func:" "`PyLongWriter_Discard`." msgstr "" -#: c-api/long.rst:784 +#: c-api/long.rst:812 msgid "Create a :c:type:`PyLongWriter`." msgstr "" -#: c-api/long.rst:786 +#: c-api/long.rst:814 msgid "" "On success, allocate *\\*digits* and return a writer. On error, set an " "exception and return ``NULL``." msgstr "" -#: c-api/long.rst:789 +#: c-api/long.rst:817 msgid "*negative* is ``1`` if the number is negative, or ``0`` otherwise." msgstr "" -#: c-api/long.rst:791 +#: c-api/long.rst:819 msgid "" "*ndigits* is the number of digits in the *digits* array. It must be greater " "than 0." msgstr "" -#: c-api/long.rst:794 +#: c-api/long.rst:822 msgid "*digits* must not be NULL." msgstr "" -#: c-api/long.rst:796 +#: c-api/long.rst:824 msgid "" "After a successful call to this function, the caller should fill in the " "array of digits *digits* and then call :c:func:`PyLongWriter_Finish` to get " @@ -932,46 +953,46 @@ msgid "" "`PyLong_GetNativeLayout`." msgstr "" -#: c-api/long.rst:801 +#: c-api/long.rst:829 msgid "" "Digits must be in the range [``0``; ``(1 << bits_per_digit) - 1``] (where " "the :c:struct:`~PyLongLayout.bits_per_digit` is the number of bits per " "digit). Any unused most significant digits must be set to ``0``." msgstr "" -#: c-api/long.rst:806 +#: c-api/long.rst:834 msgid "" "Alternately, call :c:func:`PyLongWriter_Discard` to destroy the writer " "instance without creating an :class:`~int` object." msgstr "" -#: c-api/long.rst:812 +#: c-api/long.rst:840 msgid "" "Finish a :c:type:`PyLongWriter` created by :c:func:`PyLongWriter_Create`." msgstr "" -#: c-api/long.rst:814 +#: c-api/long.rst:842 msgid "" "On success, return a Python :class:`int` object. On error, set an exception " "and return ``NULL``." msgstr "" -#: c-api/long.rst:817 +#: c-api/long.rst:845 msgid "" "The function takes care of normalizing the digits and converts the object to " "a compact integer if needed." msgstr "" -#: c-api/long.rst:829 +#: c-api/long.rst:857 msgid "The writer instance and the *digits* array are invalid after the call." msgstr "" -#: c-api/long.rst:825 +#: c-api/long.rst:853 msgid "" "Discard a :c:type:`PyLongWriter` created by :c:func:`PyLongWriter_Create`." msgstr "" -#: c-api/long.rst:827 +#: c-api/long.rst:855 msgid "If *writer* is ``NULL``, no operation is performed." msgstr "" @@ -987,22 +1008,22 @@ msgstr "" msgid "integer" msgstr "" -#: c-api/long.rst:164 +#: c-api/long.rst:177 msgid "LONG_MAX (C macro)" msgstr "" -#: c-api/long.rst:224 c-api/long.rst:282 c-api/long.rst:314 +#: c-api/long.rst:237 c-api/long.rst:295 c-api/long.rst:327 msgid "OverflowError (built-in exception)" msgstr "" -#: c-api/long.rst:267 +#: c-api/long.rst:280 msgid "PY_SSIZE_T_MAX (C macro)" msgstr "" -#: c-api/long.rst:282 +#: c-api/long.rst:295 msgid "ULONG_MAX (C macro)" msgstr "" -#: c-api/long.rst:298 +#: c-api/long.rst:311 msgid "SIZE_MAX (C macro)" msgstr "" diff --git a/c-api/mapping.po b/c-api/mapping.po index dcca8519..43a612ca 100644 --- a/c-api/mapping.po +++ b/c-api/mapping.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -112,8 +112,8 @@ msgstr "" #: c-api/mapping.rst:105 msgid "" -"Exceptions which occur when this calls :meth:`~object.__getitem__` method " -"are silently ignored. For proper error handling, use :c:func:" +"Exceptions which occur when this calls the :meth:`~object.__getitem__` " +"method are silently ignored. For proper error handling, use :c:func:" "`PyMapping_HasKeyWithError`, :c:func:`PyMapping_GetOptionalItem` or :c:func:" "`PyObject_GetItem()` instead." msgstr "" @@ -127,9 +127,9 @@ msgstr "" #: c-api/mapping.rst:119 msgid "" -"Exceptions that occur when this calls :meth:`~object.__getitem__` method or " -"while creating the temporary :class:`str` object are silently ignored. For " -"proper error handling, use :c:func:`PyMapping_HasKeyStringWithError`, :c:" +"Exceptions that occur when this calls the :meth:`~object.__getitem__` method " +"or while creating the temporary :class:`str` object are silently ignored. " +"For proper error handling, use :c:func:`PyMapping_HasKeyStringWithError`, :c:" "func:`PyMapping_GetOptionalItemString` or :c:func:`PyMapping_GetItemString` " "instead." msgstr "" diff --git a/c-api/marshal.po b/c-api/marshal.po index 4132989f..3af54aca 100644 --- a/c-api/marshal.po +++ b/c-api/marshal.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -112,7 +112,7 @@ msgid "" "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 " +"file. Only use this variant if you are certain that you won't be reading " "anything else from the file." msgstr "" diff --git a/c-api/memory.po b/c-api/memory.po index 6d5f60fe..27e3d2e1 100644 --- a/c-api/memory.po +++ b/c-api/memory.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -132,8 +132,8 @@ msgid "" "allocation strategies and are optimized for different purposes. The specific " "details on how every domain allocates memory or what internal functions each " "domain calls is considered an implementation detail, but for debugging " -"purposes a simplified table can be found at :ref:`here `. The APIs used to allocate and free a block of memory must be " +"purposes a simplified table can be found at :ref:`default-memory-" +"allocators`. The APIs used to allocate and free a block of memory must be " "from the same domain. For example, :c:func:`PyMem_Free` must be used to free " "memory allocated using :c:func:`PyMem_Malloc`." msgstr "" @@ -626,19 +626,19 @@ msgid "" "following fields:" msgstr "" -#: c-api/memory.rst:686 +#: c-api/memory.rst:690 msgid "Field" msgstr "" -#: c-api/memory.rst:686 +#: c-api/memory.rst:690 msgid "Meaning" msgstr "" -#: c-api/memory.rst:688 +#: c-api/memory.rst:692 msgid "``void *ctx``" msgstr "" -#: c-api/memory.rst:688 +#: c-api/memory.rst:692 msgid "user context passed as first argument" msgstr "" @@ -1030,45 +1030,52 @@ msgid "" "envvar:`PYTHONMALLOC` environment variable (ex: ``PYTHONMALLOC=malloc``)." msgstr "" -#: c-api/memory.rst:676 +#: c-api/memory.rst:675 +msgid "" +"Typically, it makes sense to disable the pymalloc allocator when building " +"Python with AddressSanitizer (:option:`--with-address-sanitizer`) which " +"helps uncover low level bugs within the C code." +msgstr "" + +#: c-api/memory.rst:680 msgid "Customize pymalloc Arena Allocator" msgstr "" -#: c-api/memory.rst:682 +#: c-api/memory.rst:686 msgid "" "Structure used to describe an arena allocator. The structure has three " "fields:" msgstr "" -#: c-api/memory.rst:690 +#: c-api/memory.rst:694 msgid "``void* alloc(void *ctx, size_t size)``" msgstr "" -#: c-api/memory.rst:690 +#: c-api/memory.rst:694 msgid "allocate an arena of size bytes" msgstr "" -#: c-api/memory.rst:692 +#: c-api/memory.rst:696 msgid "``void free(void *ctx, void *ptr, size_t size)``" msgstr "" -#: c-api/memory.rst:692 +#: c-api/memory.rst:696 msgid "free an arena" msgstr "" -#: c-api/memory.rst:697 +#: c-api/memory.rst:701 msgid "Get the arena allocator." msgstr "" -#: c-api/memory.rst:701 +#: c-api/memory.rst:705 msgid "Set the arena allocator." msgstr "" -#: c-api/memory.rst:706 +#: c-api/memory.rst:710 msgid "The mimalloc allocator" msgstr "" -#: c-api/memory.rst:710 +#: c-api/memory.rst:714 msgid "" "Python supports the mimalloc allocator when the underlying platform support " "is available. mimalloc \"is a general purpose allocator with excellent " @@ -1076,46 +1083,46 @@ msgid "" "runtime systems of the Koka and Lean languages.\"" msgstr "" -#: c-api/memory.rst:715 +#: c-api/memory.rst:719 msgid "tracemalloc C API" msgstr "" -#: c-api/memory.rst:721 +#: c-api/memory.rst:725 msgid "Track an allocated memory block in the :mod:`tracemalloc` module." msgstr "" -#: c-api/memory.rst:723 +#: c-api/memory.rst:727 msgid "" "Return ``0`` on success, return ``-1`` on error (failed to allocate memory " "to store the trace). Return ``-2`` if tracemalloc is disabled." msgstr "" -#: c-api/memory.rst:726 +#: c-api/memory.rst:730 msgid "If memory block is already tracked, update the existing trace." msgstr "" -#: c-api/memory.rst:730 +#: c-api/memory.rst:734 msgid "" "Untrack an allocated memory block in the :mod:`tracemalloc` module. Do " "nothing if the block was not tracked." msgstr "" -#: c-api/memory.rst:733 +#: c-api/memory.rst:737 msgid "Return ``-2`` if tracemalloc is disabled, otherwise return ``0``." msgstr "" -#: c-api/memory.rst:739 +#: c-api/memory.rst:743 msgid "Examples" msgstr "" -#: c-api/memory.rst:741 +#: c-api/memory.rst:745 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 "" -#: c-api/memory.rst:744 +#: c-api/memory.rst:748 msgid "" "PyObject *res;\n" "char *buf = (char *) PyMem_Malloc(BUFSIZ); /* for I/O */\n" @@ -1128,11 +1135,11 @@ msgid "" "return res;" msgstr "" -#: c-api/memory.rst:754 +#: c-api/memory.rst:758 msgid "The same code using the type-oriented function set::" msgstr "" -#: c-api/memory.rst:756 +#: c-api/memory.rst:760 msgid "" "PyObject *res;\n" "char *buf = PyMem_New(char, BUFSIZ); /* for I/O */\n" @@ -1145,7 +1152,7 @@ msgid "" "return res;" msgstr "" -#: c-api/memory.rst:766 +#: c-api/memory.rst:770 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 " @@ -1155,7 +1162,7 @@ msgid "" "different allocators operating on different heaps. ::" msgstr "" -#: c-api/memory.rst:773 +#: c-api/memory.rst:777 msgid "" "char *buf1 = PyMem_New(char, BUFSIZ);\n" "char *buf2 = (char *) malloc(BUFSIZ);\n" @@ -1166,14 +1173,14 @@ msgid "" "free(buf1); /* Fatal -- should be PyMem_Free() */" msgstr "" -#: c-api/memory.rst:781 +#: c-api/memory.rst:785 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:macro:" "`PyObject_New`, :c:macro:`PyObject_NewVar` and :c:func:`PyObject_Free`." msgstr "" -#: c-api/memory.rst:785 +#: c-api/memory.rst:789 msgid "" "These will be explained in the next chapter on defining and implementing new " "object types in C." diff --git a/c-api/memoryview.po b/c-api/memoryview.po index eaab4e2a..6a47b189 100644 --- a/c-api/memoryview.po +++ b/c-api/memoryview.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,34 +30,40 @@ msgstr "" #: c-api/memoryview.rst:18 msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python memoryview " +"type. This is the same object as :class:`memoryview` in the Python layer." +msgstr "" + +#: c-api/memoryview.rst:24 +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 "" -#: c-api/memoryview.rst:26 +#: c-api/memoryview.rst:32 msgid "Flag to request a readonly buffer." msgstr "" -#: c-api/memoryview.rst:31 +#: c-api/memoryview.rst:37 msgid "Flag to request a writable buffer." msgstr "" -#: c-api/memoryview.rst:36 +#: c-api/memoryview.rst:42 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 "" -#: c-api/memoryview.rst:43 +#: c-api/memoryview.rst:49 msgid "" "Create a memoryview object wrapping the given buffer structure *view*. For " "simple byte buffers, :c:func:`PyMemoryView_FromMemory` is the preferred " "function." msgstr "" -#: c-api/memoryview.rst:49 +#: c-api/memoryview.rst:55 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 " @@ -66,26 +72,26 @@ msgid "" "new bytes object." msgstr "" -#: c-api/memoryview.rst:55 +#: c-api/memoryview.rst:61 msgid "" "*buffertype* can be one of :c:macro:`PyBUF_READ` or :c:macro:`PyBUF_WRITE`." msgstr "" -#: c-api/memoryview.rst:60 +#: c-api/memoryview.rst:66 msgid "" "Return true if the object *obj* is a memoryview object. It is not currently " "allowed to create subclasses of :class:`memoryview`. This function always " "succeeds." msgstr "" -#: c-api/memoryview.rst:67 +#: c-api/memoryview.rst:73 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 "" -#: c-api/memoryview.rst:73 +#: c-api/memoryview.rst:79 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:" diff --git a/c-api/method.po b/c-api/method.po index 5bea97ac..66a09653 100644 --- a/c-api/method.po +++ b/c-api/method.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/module.po b/c-api/module.po index c926c7b4..e1ed9c85 100644 --- a/c-api/module.po +++ b/c-api/module.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -24,7 +24,7 @@ msgstr "" #: 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``." +"This is exposed to Python programs as :py:class:`types.ModuleType`." msgstr "" #: c-api/module.rst:21 @@ -48,7 +48,7 @@ msgid "" "setting a :attr:`~module.__file__` attribute." msgstr "" -#: c-api/module.rst:416 c-api/module.rst:443 +#: c-api/module.rst:434 c-api/module.rst:461 msgid "Return ``NULL`` with an exception set on error." msgstr "" @@ -79,27 +79,40 @@ msgid "" "__dict__`." msgstr "" -#: c-api/module.rst:81 +#: c-api/module.rst:74 +msgid "" +"The returned reference is borrowed from the module; it is valid until the " +"module is destroyed." +msgstr "" + +#: c-api/module.rst:84 msgid "" "Return *module*'s :attr:`~module.__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 "" -#: c-api/module.rst:90 +#: c-api/module.rst:93 msgid "" "Similar to :c:func:`PyModule_GetNameObject` but return the name encoded to " "``'utf-8'``." msgstr "" -#: c-api/module.rst:95 +#: c-api/module.rst:96 +msgid "" +"The returned buffer is only valid until the module is renamed or destroyed. " +"Note that Python code may rename a module by setting its :py:attr:`~module." +"__name__` attribute." +msgstr "" + +#: c-api/module.rst:102 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 "" -#: c-api/module.rst:102 +#: c-api/module.rst:109 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." @@ -107,49 +120,62 @@ msgstr "" #: c-api/module.rst:112 msgid "" +"On error, return ``NULL`` with an exception set. Use :c:func:" +"`PyErr_Occurred` to tell this case apart from a missing :c:type:`!" +"PyModuleDef`." +msgstr "" + +#: c-api/module.rst:123 +msgid "" "Return the name of the file from which *module* was loaded using *module*'s :" "attr:`~module.__file__` attribute. If this is not defined, or if it is not " "a string, raise :exc:`SystemError` and return ``NULL``; otherwise return a " "reference to a Unicode object." msgstr "" -#: c-api/module.rst:122 +#: c-api/module.rst:133 msgid "" "Similar to :c:func:`PyModule_GetFilenameObject` but return the filename " "encoded to 'utf-8'." msgstr "" -#: c-api/module.rst:125 +#: c-api/module.rst:136 +msgid "" +"The returned buffer is only valid until the module's :py:attr:`~module." +"__file__` attribute is reassigned or the module is destroyed." +msgstr "" + +#: c-api/module.rst:139 msgid "" ":c:func:`PyModule_GetFilename` raises :exc:`UnicodeEncodeError` on " "unencodable filenames, use :c:func:`PyModule_GetFilenameObject` instead." msgstr "" -#: c-api/module.rst:133 +#: c-api/module.rst:147 msgid "Module definitions" msgstr "" -#: c-api/module.rst:135 +#: c-api/module.rst:149 msgid "" "The functions in the previous section work on any module object, including " "modules imported from Python code." msgstr "" -#: c-api/module.rst:138 +#: c-api/module.rst:152 msgid "" "Modules defined using the C API typically use a *module definition*, :c:type:" "`PyModuleDef` -- a statically allocated, constant “description\" of how a " "module should be created." msgstr "" -#: c-api/module.rst:142 +#: c-api/module.rst:156 msgid "" "The definition is usually used to define an extension's “main” module object " "(see :ref:`extension-modules` for details). It is also used to :ref:`create " "extension modules dynamically `." msgstr "" -#: c-api/module.rst:147 +#: c-api/module.rst:161 msgid "" "Unlike :c:func:`PyModule_New`, the definition allows management of *module " "state* -- a piece of memory that is allocated and cleared together with the " @@ -157,7 +183,7 @@ msgid "" "replace or delete data stored in module state." msgstr "" -#: c-api/module.rst:155 +#: c-api/module.rst:169 msgid "" "The module definition struct, which holds all information needed to create a " "module object. This structure must be statically allocated (or be otherwise " @@ -165,42 +191,42 @@ msgid "" "there is only one variable of this type for each extension module." msgstr "" -#: c-api/module.rst:163 +#: c-api/module.rst:177 msgid "Always initialize this member to :c:macro:`PyModuleDef_HEAD_INIT`." msgstr "" -#: c-api/module.rst:167 +#: c-api/module.rst:181 msgid "Name for the new module." msgstr "" -#: c-api/module.rst:171 +#: c-api/module.rst:185 msgid "" "Docstring for the module; usually a docstring variable created with :c:macro:" "`PyDoc_STRVAR` is used." msgstr "" -#: c-api/module.rst:176 +#: c-api/module.rst:190 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 "" -#: c-api/module.rst:180 +#: c-api/module.rst:194 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:" "`~PyModuleDef.m_free` function has been called, if present." msgstr "" -#: c-api/module.rst:184 +#: c-api/module.rst:198 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." msgstr "" -#: c-api/module.rst:188 +#: c-api/module.rst:202 msgid "" "Setting ``m_size`` to ``-1`` means that the module does not support sub-" "interpreters, because it has global state. Negative ``m_size`` is only " @@ -209,36 +235,36 @@ msgid "" "dynamic>`." msgstr "" -#: c-api/module.rst:194 +#: c-api/module.rst:208 msgid "See :PEP:`3121` for more details." msgstr "" -#: c-api/module.rst:198 +#: c-api/module.rst:212 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 "" -#: c-api/module.rst:203 +#: c-api/module.rst:217 msgid "" "An array of slot definitions for multi-phase initialization, terminated by a " "``{0, NULL}`` entry. When using legacy single-phase initialization, " "*m_slots* must be ``NULL``." msgstr "" -#: c-api/module.rst:209 +#: c-api/module.rst:223 msgid "" "Prior to version 3.5, this member was always set to ``NULL``, and was " "defined as:" msgstr "" -#: c-api/module.rst:216 +#: c-api/module.rst:230 msgid "" "A traversal function to call during GC traversal of the module object, or " "``NULL`` if not needed." msgstr "" -#: c-api/module.rst:234 c-api/module.rst:255 +#: c-api/module.rst:248 c-api/module.rst:269 msgid "" "This function is not called if the module state was requested but is not " "allocated yet. This is the case immediately after the module is created and " @@ -248,17 +274,17 @@ msgid "" "`PyModule_GetState`) is ``NULL``." msgstr "" -#: c-api/module.rst:247 c-api/module.rst:262 +#: c-api/module.rst:261 c-api/module.rst:276 msgid "No longer called before the module state is allocated." msgstr "" -#: c-api/module.rst:231 +#: c-api/module.rst:245 msgid "" "A clear function to call during GC clearing of the module object, or " "``NULL`` if not needed." msgstr "" -#: c-api/module.rst:241 +#: c-api/module.rst:255 msgid "" "Like :c:member:`PyTypeObject.tp_clear`, this function is not *always* called " "before a module is deallocated. For example, when reference counting is " @@ -267,55 +293,55 @@ msgid "" "directly." msgstr "" -#: c-api/module.rst:252 +#: c-api/module.rst:266 msgid "" "A function to call during deallocation of the module object, or ``NULL`` if " "not needed." msgstr "" -#: c-api/module.rst:267 +#: c-api/module.rst:281 msgid "Module slots" msgstr "" -#: c-api/module.rst:273 +#: c-api/module.rst:287 msgid "A slot ID, chosen from the available values explained below." msgstr "" -#: c-api/module.rst:277 +#: c-api/module.rst:291 msgid "Value of the slot, whose meaning depends on the slot ID." msgstr "" -#: c-api/module.rst:281 +#: c-api/module.rst:295 msgid "The available slot types are:" msgstr "" -#: c-api/module.rst:285 +#: c-api/module.rst:299 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 "" -#: c-api/module.rst:292 +#: c-api/module.rst:306 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 "" -#: c-api/module.rst:297 +#: c-api/module.rst:311 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 "" -#: c-api/module.rst:301 +#: c-api/module.rst:315 msgid "" "Multiple ``Py_mod_create`` slots may not be specified in one module " "definition." msgstr "" -#: c-api/module.rst:304 +#: c-api/module.rst:318 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 " @@ -324,7 +350,7 @@ msgid "" "through symlinks, all while sharing a single module definition." msgstr "" -#: c-api/module.rst:310 +#: c-api/module.rst:324 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 " @@ -334,7 +360,7 @@ msgid "" "``Py_mod_create``." msgstr "" -#: c-api/module.rst:319 +#: c-api/module.rst:335 msgid "" "Specifies a function that is called to *execute* the module. This is " "equivalent to executing the code of a Python module: typically, this " @@ -342,61 +368,61 @@ msgid "" "function is:" msgstr "" -#: c-api/module.rst:328 +#: c-api/module.rst:344 msgid "" "If multiple ``Py_mod_exec`` slots are specified, they are processed in the " "order they appear in the *m_slots* array." msgstr "" -#: c-api/module.rst:366 +#: c-api/module.rst:384 msgid "Specifies one of the following values:" msgstr "" -#: c-api/module.rst:339 +#: c-api/module.rst:357 msgid "The module does not support being imported in subinterpreters." msgstr "" -#: c-api/module.rst:343 +#: c-api/module.rst:361 msgid "" "The module supports being imported in subinterpreters, but only when they " "share the main interpreter's GIL. (See :ref:`isolating-extensions-howto`.)" msgstr "" -#: c-api/module.rst:349 +#: c-api/module.rst:367 msgid "" "The module supports being imported in subinterpreters, even when they have " "their own GIL. (See :ref:`isolating-extensions-howto`.)" msgstr "" -#: c-api/module.rst:353 +#: c-api/module.rst:371 msgid "" "This slot determines whether or not importing this module in a " "subinterpreter will fail." msgstr "" -#: c-api/module.rst:356 +#: c-api/module.rst:374 msgid "" "Multiple ``Py_mod_multiple_interpreters`` slots may not be specified in one " "module definition." msgstr "" -#: c-api/module.rst:359 +#: c-api/module.rst:377 msgid "" "If ``Py_mod_multiple_interpreters`` is not specified, the import machinery " "defaults to ``Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED``." msgstr "" -#: c-api/module.rst:372 +#: c-api/module.rst:390 msgid "" "The module depends on the presence of the global interpreter lock (GIL), and " "may access global state without synchronization." msgstr "" -#: c-api/module.rst:377 +#: c-api/module.rst:395 msgid "The module is safe to run without an active GIL." msgstr "" -#: c-api/module.rst:379 +#: c-api/module.rst:397 msgid "" "This slot is ignored by Python builds not configured with :option:`--disable-" "gil`. Otherwise, it determines whether or not importing this module will " @@ -404,22 +430,22 @@ msgid "" "threaded-cpython` for more detail." msgstr "" -#: c-api/module.rst:384 +#: c-api/module.rst:402 msgid "" "Multiple ``Py_mod_gil`` slots may not be specified in one module definition." msgstr "" -#: c-api/module.rst:386 +#: c-api/module.rst:404 msgid "" "If ``Py_mod_gil`` is not specified, the import machinery defaults to " "``Py_MOD_GIL_USED``." msgstr "" -#: c-api/module.rst:395 +#: c-api/module.rst:413 msgid "Creating extension modules dynamically" msgstr "" -#: c-api/module.rst:397 +#: c-api/module.rst:415 msgid "" "The following functions may be used to create a module outside of an " "extension's :ref:`initialization function `. They are " @@ -427,7 +453,7 @@ msgid "" "initialization>`." msgstr "" -#: c-api/module.rst:404 +#: c-api/module.rst:422 msgid "" "Create a new module object, given the definition in *def*. This is a macro " "that calls :c:func:`PyModule_Create2` with *module_api_version* set to :c:" @@ -435,33 +461,33 @@ msgid "" "the :ref:`limited API `." msgstr "" -#: c-api/module.rst:412 +#: c-api/module.rst:430 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 "" -#: c-api/module.rst:418 +#: c-api/module.rst:436 msgid "" "This function does not support slots. The :c:member:`~PyModuleDef.m_slots` " "member of *def* must be ``NULL``." msgstr "" -#: c-api/module.rst:424 +#: c-api/module.rst:442 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 "" -#: c-api/module.rst:429 +#: c-api/module.rst:447 msgid "" "This macro calls :c:func:`PyModule_FromDefAndSpec2` with " "*module_api_version* set to :c:macro:`PYTHON_API_VERSION`, or to :c:macro:" "`PYTHON_ABI_VERSION` if using the :ref:`limited API `." msgstr "" -#: c-api/module.rst:438 +#: c-api/module.rst:456 msgid "" "Create a new module object, given the definition in *def* and the ModuleSpec " "*spec*, assuming the API version *module_api_version*. If that version does " @@ -469,42 +495,42 @@ msgid "" "emitted." msgstr "" -#: c-api/module.rst:445 +#: c-api/module.rst:463 msgid "" "Note that this does not process execution slots (:c:data:`Py_mod_exec`). " "Both ``PyModule_FromDefAndSpec`` and ``PyModule_ExecDef`` must be called to " "fully initialize a module." msgstr "" -#: c-api/module.rst:451 +#: c-api/module.rst:469 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 "" -#: c-api/module.rst:458 +#: c-api/module.rst:476 msgid "Process any execution slots (:c:data:`Py_mod_exec`) given in *def*." msgstr "" -#: c-api/module.rst:464 +#: c-api/module.rst:482 msgid "The C API version. Defined for backwards compatibility." msgstr "" -#: c-api/module.rst:473 +#: c-api/module.rst:491 msgid "" "Currently, this constant is not updated in new Python versions, and is not " "useful for versioning. This may change in the future." msgstr "" -#: c-api/module.rst:471 +#: c-api/module.rst:489 msgid "Defined as ``3`` for backwards compatibility." msgstr "" -#: c-api/module.rst:478 +#: c-api/module.rst:496 msgid "Support functions" msgstr "" -#: c-api/module.rst:480 +#: c-api/module.rst:498 msgid "" "The following functions are provided to help initialize a module state. They " "are intended for a module's execution slots (:c:data:`Py_mod_exec`), the " @@ -512,22 +538,22 @@ msgid "" "phase-initialization>`, or code that creates modules dynamically." msgstr "" -#: c-api/module.rst:488 +#: c-api/module.rst:506 msgid "" "Add an object to *module* as *name*. This is a convenience function which " "can be used from the module's initialization function." msgstr "" -#: c-api/module.rst:491 +#: c-api/module.rst:509 msgid "" "On success, return ``0``. On error, raise an exception and return ``-1``." msgstr "" -#: c-api/module.rst:544 c-api/module.rst:571 +#: c-api/module.rst:562 c-api/module.rst:589 msgid "Example usage::" msgstr "" -#: c-api/module.rst:495 +#: c-api/module.rst:513 msgid "" "static int\n" "add_spam(PyObject *module, int value)\n" @@ -542,20 +568,20 @@ msgid "" " }" msgstr "" -#: c-api/module.rst:507 +#: c-api/module.rst:525 msgid "" "To be convenient, the function accepts ``NULL`` *value* with an exception " "set. In this case, return ``-1`` and just leave the raised exception " "unchanged." msgstr "" -#: c-api/module.rst:511 +#: c-api/module.rst:529 msgid "" "The example can also be written without checking explicitly if *obj* is " "``NULL``::" msgstr "" -#: c-api/module.rst:514 +#: c-api/module.rst:532 msgid "" "static int\n" "add_spam(PyObject *module, int value)\n" @@ -567,13 +593,13 @@ msgid "" " }" msgstr "" -#: c-api/module.rst:523 +#: c-api/module.rst:541 msgid "" "Note that ``Py_XDECREF()`` should be used instead of ``Py_DECREF()`` in this " "case, since *obj* can be ``NULL``." msgstr "" -#: c-api/module.rst:526 +#: c-api/module.rst:544 msgid "" "The number of different *name* strings passed to this function should be " "kept small, usually by only using statically allocated strings as *name*. " @@ -583,7 +609,7 @@ msgid "" "internally to create a key object." msgstr "" -#: c-api/module.rst:539 +#: c-api/module.rst:557 msgid "" "Similar to :c:func:`PyModule_AddObjectRef`, but \"steals\" a reference to " "*value*. It can be called with a result of function that returns a new " @@ -591,39 +617,39 @@ msgid "" "variable." msgstr "" -#: c-api/module.rst:546 +#: c-api/module.rst:564 msgid "" "if (PyModule_Add(module, \"spam\", PyBytes_FromString(value)) < 0) {\n" " goto error;\n" "}" msgstr "" -#: c-api/module.rst:555 +#: c-api/module.rst:573 msgid "" "Similar to :c:func:`PyModule_AddObjectRef`, but steals a reference to " "*value* on success (if it returns ``0``)." msgstr "" -#: c-api/module.rst:558 +#: c-api/module.rst:576 msgid "" "The new :c:func:`PyModule_Add` or :c:func:`PyModule_AddObjectRef` functions " "are recommended, since it is easy to introduce reference leaks by misusing " "the :c:func:`PyModule_AddObject` function." msgstr "" -#: c-api/module.rst:565 +#: c-api/module.rst:583 msgid "" "Unlike other functions that steal references, ``PyModule_AddObject()`` only " "releases the reference to *value* **on success**." msgstr "" -#: c-api/module.rst:568 +#: c-api/module.rst:586 msgid "" "This means that its return value must be checked, and calling code must :c:" "func:`Py_XDECREF` *value* manually on error." msgstr "" -#: c-api/module.rst:573 +#: c-api/module.rst:591 msgid "" "PyObject *obj = PyBytes_FromString(value);\n" "if (PyModule_AddObject(module, \"spam\", obj) < 0) {\n" @@ -637,24 +663,24 @@ msgid "" "// Py_XDECREF(obj) is not needed here." msgstr "" -#: c-api/module.rst:586 +#: c-api/module.rst:604 msgid ":c:func:`PyModule_AddObject` is :term:`soft deprecated`." msgstr "" -#: c-api/module.rst:591 +#: c-api/module.rst:609 msgid "" "Add an integer constant to *module* as *name*. This convenience function " "can be used from the module's initialization function. Return ``-1`` with an " "exception set on error, ``0`` on success." msgstr "" -#: c-api/module.rst:595 +#: c-api/module.rst:613 msgid "" "This is a convenience function that calls :c:func:`PyLong_FromLong` and :c:" "func:`PyModule_AddObjectRef`; see their documentation for details." msgstr "" -#: c-api/module.rst:601 +#: c-api/module.rst:619 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 " @@ -662,14 +688,14 @@ msgid "" "on success." msgstr "" -#: c-api/module.rst:606 +#: c-api/module.rst:624 msgid "" "This is a convenience function that calls :c:func:" "`PyUnicode_InternFromString` and :c:func:`PyModule_AddObjectRef`; see their " "documentation for details." msgstr "" -#: c-api/module.rst:613 +#: c-api/module.rst:631 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 " @@ -677,11 +703,11 @@ msgid "" "with an exception set on error, ``0`` on success." msgstr "" -#: c-api/module.rst:621 +#: c-api/module.rst:639 msgid "Add a string constant to *module*." msgstr "" -#: c-api/module.rst:625 +#: c-api/module.rst:643 msgid "" "Add a type object to *module*. The type object is finalized by calling " "internally :c:func:`PyType_Ready`. The name of the type object is taken from " @@ -689,7 +715,7 @@ msgid "" "``-1`` with an exception set on error, ``0`` on success." msgstr "" -#: c-api/module.rst:635 +#: c-api/module.rst:653 msgid "" "Add the functions from the ``NULL`` terminated *functions* array to " "*module*. Refer to the :c:type:`PyMethodDef` documentation for details on " @@ -698,7 +724,7 @@ msgid "" "first parameter, making them similar to instance methods on Python classes)." msgstr "" -#: c-api/module.rst:641 +#: c-api/module.rst:659 msgid "" "This function is called automatically when creating a module from " "``PyModuleDef`` (such as when using :ref:`multi-phase-initialization`, " @@ -707,7 +733,13 @@ msgid "" "that case they should call this function directly." msgstr "" -#: c-api/module.rst:652 +#: c-api/module.rst:666 +msgid "" +"The *functions* array must be statically allocated (or otherwise guaranteed " +"to outlive the module object)." +msgstr "" + +#: c-api/module.rst:673 msgid "" "Set the docstring for *module* to *docstring*. This function is called " "automatically when creating a module from ``PyModuleDef`` (such as when " @@ -715,7 +747,7 @@ msgid "" "``PyModule_FromDefAndSpec``)." msgstr "" -#: c-api/module.rst:661 +#: c-api/module.rst:682 msgid "" "Indicate that *module* does or does not support running without the global " "interpreter lock (GIL), using one of the values from :c:macro:`Py_mod_gil`. " @@ -727,11 +759,11 @@ msgid "" "on error, ``0`` on success." msgstr "" -#: c-api/module.rst:675 +#: c-api/module.rst:696 msgid "Module lookup (single-phase initialization)" msgstr "" -#: c-api/module.rst:677 +#: c-api/module.rst:698 msgid "" "The legacy :ref:`single-phase initialization ` " "initialization scheme creates singleton modules that can be looked up in the " @@ -739,14 +771,14 @@ msgid "" "retrieved later with only a reference to the module definition." msgstr "" -#: c-api/module.rst:682 +#: c-api/module.rst:703 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 "" -#: c-api/module.rst:687 +#: c-api/module.rst:708 msgid "" "Returns the module object that was created from *def* for the current " "interpreter. This method requires that the module object has been attached " @@ -755,18 +787,18 @@ msgid "" "to the interpreter state yet, it returns ``NULL``." msgstr "" -#: c-api/module.rst:694 +#: c-api/module.rst:715 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 "" -#: c-api/module.rst:697 +#: c-api/module.rst:718 msgid "Only effective on modules created using single-phase initialization." msgstr "" -#: c-api/module.rst:699 +#: c-api/module.rst:720 msgid "" "Python calls ``PyState_AddModule`` automatically after importing a module " "that uses :ref:`single-phase initialization `, " @@ -778,21 +810,21 @@ msgid "" "state updates)." msgstr "" -#: c-api/module.rst:708 +#: c-api/module.rst:729 msgid "" "If a module was attached previously using the same *def*, it is replaced by " "the new *module*." msgstr "" -#: c-api/module.rst:722 +#: c-api/module.rst:743 msgid "The caller must have an :term:`attached thread state`." msgstr "" -#: c-api/module.rst:713 +#: c-api/module.rst:734 msgid "Return ``-1`` with an exception set on error, ``0`` on success." msgstr "" -#: c-api/module.rst:719 +#: c-api/module.rst:740 msgid "" "Removes the module object created from *def* from the interpreter state. " "Return ``-1`` with an exception set on error, ``0`` on success." @@ -810,7 +842,7 @@ msgstr "" msgid "ModuleType (in module types)" msgstr "" -#: c-api/module.rst:77 +#: c-api/module.rst:80 msgid "__name__ (module attribute)" msgstr "" @@ -818,7 +850,7 @@ msgstr "" msgid "__doc__ (module attribute)" msgstr "" -#: c-api/module.rst:108 +#: c-api/module.rst:119 msgid "__file__ (module attribute)" msgstr "" @@ -834,6 +866,6 @@ msgstr "" msgid "__dict__ (module attribute)" msgstr "" -#: c-api/module.rst:108 +#: c-api/module.rst:119 msgid "SystemError (built-in exception)" msgstr "" diff --git a/c-api/monitoring.po b/c-api/monitoring.po index 72ea2ef1..44379fe7 100644 --- a/c-api/monitoring.po +++ b/c-api/monitoring.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -168,7 +168,7 @@ msgstr "" #: c-api/monitoring.rst:138 msgid "" "Monitoring states can be managed with the help of monitoring scopes. A scope " -"would typically correspond to a python function." +"would typically correspond to a Python function." msgstr "" #: c-api/monitoring.rst:143 diff --git a/c-api/none.po b/c-api/none.po index c719f3a2..66c06244 100644 --- a/c-api/none.po +++ b/c-api/none.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/number.po b/c-api/number.po index f5640bd0..cd90b7c6 100644 --- a/c-api/number.po +++ b/c-api/number.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/object.po b/c-api/object.po index 50105219..731ced3c 100644 --- a/c-api/object.po +++ b/c-api/object.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -161,7 +161,7 @@ msgstr "" msgid "" "Flag to be used with multiple functions that print the object (like :c:func:" "`PyObject_Print` and :c:func:`PyFile_WriteObject`). If passed, these " -"function would use the :func:`str` of the object instead of the :func:`repr`." +"functions use the :func:`str` of the object instead of the :func:`repr`." msgstr "" #: c-api/object.rst:82 @@ -698,7 +698,7 @@ msgstr "" msgid "Visit the managed dictionary of *obj*." msgstr "" -#: c-api/object.rst:588 +#: c-api/object.rst:579 msgid "" "This function must only be called in a traverse function of the type which " "has the :c:macro:`Py_TPFLAGS_MANAGED_DICT` flag set." @@ -708,6 +708,12 @@ msgstr "" msgid "Clear the managed dictionary of *obj*." msgstr "" +#: c-api/object.rst:588 +msgid "" +"This function must only be called in a clear function of the type which has " +"the :c:macro:`Py_TPFLAGS_MANAGED_DICT` flag set." +msgstr "" + #: c-api/object.rst:595 msgid "" "Enable `deferred reference counting ` build, this allows the " "interpreter to avoid reference count adjustments to *obj*, which may improve " "multi-threaded performance. The tradeoff is that *obj* will only be " -"deallocated by the tracing garbage collector." +"deallocated by the tracing garbage collector, and not when the interpreter " +"no longer has any references to it." msgstr "" -#: c-api/object.rst:601 +#: c-api/object.rst:602 msgid "" "This function returns ``1`` if deferred reference counting is enabled on " -"*obj* (including when it was enabled before the call), and ``0`` if deferred " -"reference counting is not supported or if the hint was ignored by the " -"runtime. This function is thread-safe, and cannot fail." +"*obj*, and ``0`` if deferred reference counting is not supported or if the " +"hint was ignored by the interpreter, such as when deferred reference " +"counting is already enabled on *obj*. This function is thread-safe, and " +"cannot fail." msgstr "" -#: c-api/object.rst:606 +#: c-api/object.rst:607 msgid "" "This function does nothing on builds with the :term:`GIL` enabled, which do " "not support deferred reference counting. This also does nothing if *obj* is " @@ -734,13 +742,14 @@ msgid "" "and :c:func:`PyObject_GC_IsTracked`)." msgstr "" -#: c-api/object.rst:611 +#: c-api/object.rst:612 msgid "" "This function is intended to be used soon after *obj* is created, by the " -"code that creates it." +"code that creates it, such as in the object's :c:member:`~PyTypeObject." +"tp_new` slot." msgstr "" -#: c-api/object.rst:618 +#: c-api/object.rst:620 msgid "" "Check if *obj* is a unique temporary object. Returns ``1`` if *obj* is known " "to be a unique temporary object, and ``0`` otherwise. This function cannot " @@ -748,7 +757,7 @@ msgid "" "if *obj* is a unique temporary object." msgstr "" -#: c-api/object.rst:624 +#: c-api/object.rst:626 msgid "" "If an object is a unique temporary, it is guaranteed that the current code " "has the only reference to the object. For arguments to C functions, this " @@ -760,65 +769,65 @@ msgid "" "argument uniquely referenced." msgstr "" -#: c-api/object.rst:633 +#: c-api/object.rst:635 msgid "" "In the example below, ``my_func`` is called with a unique temporary object " "as its argument::" msgstr "" -#: c-api/object.rst:636 +#: c-api/object.rst:638 msgid "my_func([1, 2, 3])" msgstr "" -#: c-api/object.rst:638 +#: c-api/object.rst:640 msgid "" "In the example below, ``my_func`` is **not** called with a unique temporary " "object as its argument, even if its refcount is ``1``::" msgstr "" -#: c-api/object.rst:641 +#: c-api/object.rst:643 msgid "" "my_list = [1, 2, 3]\n" "my_func(my_list)" msgstr "" -#: c-api/object.rst:644 +#: c-api/object.rst:646 msgid "See also the function :c:func:`Py_REFCNT`." msgstr "" -#: c-api/object.rst:650 +#: c-api/object.rst:652 msgid "" "This function returns non-zero if *obj* is :term:`immortal`, and zero " "otherwise. This function cannot fail." msgstr "" -#: c-api/object.rst:655 +#: c-api/object.rst:657 msgid "" "Objects that are immortal in one CPython version are not guaranteed to be " "immortal in another." msgstr "" -#: c-api/object.rst:662 +#: c-api/object.rst:664 msgid "" "Increments the reference count of *obj* if it is not zero. Returns ``1`` if " "the object's reference count was successfully incremented. Otherwise, this " "function returns ``0``." msgstr "" -#: c-api/object.rst:666 +#: c-api/object.rst:668 msgid "" ":c:func:`PyUnstable_EnableTryIncRef` must have been called earlier on *obj* " "or this function may spuriously return ``0`` in the :term:`free threading` " "build." msgstr "" -#: c-api/object.rst:670 +#: c-api/object.rst:672 msgid "" "This function is logically equivalent to the following C code, except that " "it behaves atomically in the :term:`free threading` build::" msgstr "" -#: c-api/object.rst:673 +#: c-api/object.rst:675 msgid "" "if (Py_REFCNT(op) > 0) {\n" " Py_INCREF(op);\n" @@ -827,13 +836,13 @@ msgid "" "return 0;" msgstr "" -#: c-api/object.rst:679 +#: c-api/object.rst:681 msgid "" "This is intended as a building block for managing weak references without " "the overhead of a Python :ref:`weak reference object `." msgstr "" -#: c-api/object.rst:682 +#: c-api/object.rst:684 msgid "" "Typically, correct use of this function requires support from *obj*'s " "deallocator (:c:member:`~PyTypeObject.tp_dealloc`). For example, the " @@ -841,7 +850,7 @@ msgid "" "a :py:class:`~weakref.WeakValueDictionary` for a specific type:" msgstr "" -#: c-api/object.rst:688 +#: c-api/object.rst:690 msgid "" "PyMutex mutex;\n" "\n" @@ -886,23 +895,23 @@ msgid "" "}" msgstr "" -#: c-api/object.rst:736 +#: c-api/object.rst:738 msgid "" "Enables subsequent uses of :c:func:`PyUnstable_TryIncRef` on *obj*. The " "caller must hold a :term:`strong reference` to *obj* when calling this." msgstr "" -#: c-api/object.rst:743 +#: c-api/object.rst:745 msgid "Determine if *op* only has one reference." msgstr "" -#: c-api/object.rst:745 +#: c-api/object.rst:747 msgid "" "On GIL-enabled builds, this function is equivalent to :c:expr:`Py_REFCNT(op) " "== 1`." msgstr "" -#: c-api/object.rst:748 +#: c-api/object.rst:750 msgid "" "On a :term:`free threaded ` build, this checks if *op*'s :" "term:`reference count` is equal to one and additionally checks if *op* is " @@ -910,7 +919,7 @@ msgid "" "safe on free threaded builds; prefer this function." msgstr "" -#: c-api/object.rst:753 +#: c-api/object.rst:755 msgid "" "The caller must hold an :term:`attached thread state`, despite the fact that " "this function doesn't call into the Python interpreter. This function cannot " diff --git a/c-api/objimpl.po b/c-api/objimpl.po index 8f80a93c..98b04dca 100644 --- a/c-api/objimpl.po +++ b/c-api/objimpl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/perfmaps.po b/c-api/perfmaps.po index 0ada290f..6cbe6e2a 100644 --- a/c-api/perfmaps.po +++ b/c-api/perfmaps.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/picklebuffer.po b/c-api/picklebuffer.po new file mode 100644 index 00000000..ffa9fe0a --- /dev/null +++ b/c-api/picklebuffer.po @@ -0,0 +1,100 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 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.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: c-api/picklebuffer.rst:9 +msgid "Pickle buffer objects" +msgstr "" + +#: c-api/picklebuffer.rst:13 +msgid "" +"A :class:`pickle.PickleBuffer` object wraps a :ref:`buffer-providing object " +"` for out-of-band data transfer with the :mod:`pickle` module." +msgstr "" + +#: c-api/picklebuffer.rst:19 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python pickle buffer " +"type. This is the same object as :class:`pickle.PickleBuffer` in the Python " +"layer." +msgstr "" + +#: c-api/picklebuffer.rst:25 +msgid "" +"Return true if *op* is a pickle buffer instance. This function always " +"succeeds." +msgstr "" + +#: c-api/picklebuffer.rst:31 +msgid "Create a pickle buffer from the object *obj*." +msgstr "" + +#: c-api/picklebuffer.rst:33 +msgid "" +"This function will fail if *obj* doesn't support the :ref:`buffer protocol " +"`." +msgstr "" + +#: c-api/picklebuffer.rst:35 +msgid "" +"On success, return a new pickle buffer instance. On failure, set an " +"exception and return ``NULL``." +msgstr "" + +#: c-api/picklebuffer.rst:38 +msgid "Analogous to calling :class:`pickle.PickleBuffer` with *obj* in Python." +msgstr "" + +#: c-api/picklebuffer.rst:43 +msgid "" +"Get a pointer to the underlying :c:type:`Py_buffer` that the pickle buffer " +"wraps." +msgstr "" + +#: c-api/picklebuffer.rst:45 +msgid "" +"The returned pointer is valid as long as *picklebuf* is alive and has not " +"been released. The caller must not modify or free the returned :c:type:" +"`Py_buffer`. If the pickle buffer has been released, raise :exc:`ValueError`." +msgstr "" + +#: c-api/picklebuffer.rst:49 +msgid "" +"On success, return a pointer to the buffer view. On failure, set an " +"exception and return ``NULL``." +msgstr "" + +#: c-api/picklebuffer.rst:55 +msgid "Release the underlying buffer held by the pickle buffer." +msgstr "" + +#: c-api/picklebuffer.rst:57 +msgid "" +"Return ``0`` on success. On failure, set an exception and return ``-1``." +msgstr "" + +#: c-api/picklebuffer.rst:59 +msgid "Analogous to calling :meth:`pickle.PickleBuffer.release` in Python." +msgstr "" + +#: c-api/picklebuffer.rst:5 +msgid "object" +msgstr "" + +#: c-api/picklebuffer.rst:5 +msgid "PickleBuffer" +msgstr "" diff --git a/c-api/refcounting.po b/c-api/refcounting.po index f7f8f227..0a2502ab 100644 --- a/c-api/refcounting.po +++ b/c-api/refcounting.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/reflection.po b/c-api/reflection.po index fd7c6c8b..35786935 100644 --- a/c-api/reflection.po +++ b/c-api/reflection.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/sequence.po b/c-api/sequence.po index c309dc92..a29d794e 100644 --- a/c-api/sequence.po +++ b/c-api/sequence.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/set.po b/c-api/set.po index bbe10037..eadd43ab 100644 --- a/c-api/set.po +++ b/c-api/set.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/slice.po b/c-api/slice.po index e1718c6c..7d3e7d96 100644 --- a/c-api/slice.po +++ b/c-api/slice.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/stable.po b/c-api/stable.po index d751f01e..88db7e77 100644 --- a/c-api/stable.po +++ b/c-api/stable.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/structures.po b/c-api/structures.po index 247d920f..4a86fc9e 100644 --- a/c-api/structures.po +++ b/c-api/structures.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -50,152 +50,220 @@ msgid "" "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:expr:`PyObject*`. Access to the members must be done by using the " -"macros :c:macro:`Py_REFCNT` and :c:macro:`Py_TYPE`." +"to a :c:expr:`PyObject*`." +msgstr "" + +#: c-api/structures.rst:33 +msgid "" +"The members must not be accessed directly; instead use macros such as :c:" +"macro:`Py_REFCNT` and :c:macro:`Py_TYPE`." msgstr "" #: c-api/structures.rst:38 msgid "" -"This is an extension of :c:type:`PyObject` that adds the :c:member:" -"`~PyVarObject.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`." +"The object's reference count, as returned by :c:macro:`Py_REFCNT`. Do not " +"use this field directly; instead use functions and macros such as :c:macro:`!" +"Py_REFCNT`, :c:func:`Py_INCREF` and :c:func:`Py_DecRef`." +msgstr "" + +#: c-api/structures.rst:42 +msgid "" +"The field type may be different from ``Py_ssize_t``, depending on build " +"configuration and platform." msgstr "" #: c-api/structures.rst:47 msgid "" +"The object's type. Do not use this field directly; use :c:macro:`Py_TYPE` " +"and :c:func:`Py_SET_TYPE` instead." +msgstr "" + +#: c-api/structures.rst:54 +msgid "" +"An extension of :c:type:`PyObject` that adds the :c:member:`~PyVarObject." +"ob_size` field. This is intended for objects that have some notion of " +"*length*." +msgstr "" + +#: c-api/structures.rst:58 +msgid "" +"As with :c:type:`!PyObject`, the members must not be accessed directly; " +"instead use macros such as :c:macro:`Py_SIZE`, :c:macro:`Py_REFCNT` and :c:" +"macro:`Py_TYPE`." +msgstr "" + +#: c-api/structures.rst:64 +msgid "" +"A size field, whose contents should be considered an object's internal " +"implementation detail." +msgstr "" + +#: c-api/structures.rst:67 +msgid "Do not use this field directly; use :c:macro:`Py_SIZE` instead." +msgstr "" + +#: c-api/structures.rst:69 +msgid "" +"Object creation functions such as :c:func:`PyObject_NewVar` will generally " +"set this field to the requested size (number of items). After creation, " +"arbitrary values can be stored in :c:member:`!ob_size` using :c:macro:" +"`Py_SET_SIZE`." +msgstr "" + +#: c-api/structures.rst:74 +msgid "" +"To get an object's publicly exposed length, as returned by the Python " +"function :py:func:`len`, use :c:func:`PyObject_Length` instead." +msgstr "" + +#: c-api/structures.rst:81 +msgid "" "This is a macro used when declaring new types which represent objects " "without a varying length. The PyObject_HEAD macro expands to::" msgstr "" -#: c-api/structures.rst:50 +#: c-api/structures.rst:84 msgid "PyObject ob_base;" msgstr "" -#: c-api/structures.rst:52 +#: c-api/structures.rst:86 msgid "See documentation of :c:type:`PyObject` above." msgstr "" -#: c-api/structures.rst:57 +#: c-api/structures.rst:91 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 "" -#: c-api/structures.rst:61 +#: c-api/structures.rst:95 msgid "PyVarObject ob_base;" msgstr "" -#: c-api/structures.rst:63 +#: c-api/structures.rst:97 msgid "See documentation of :c:type:`PyVarObject` above." msgstr "" -#: c-api/structures.rst:68 +#: c-api/structures.rst:102 msgid "" "The base class of all other objects, the same as :class:`object` in Python." msgstr "" -#: c-api/structures.rst:73 +#: c-api/structures.rst:107 msgid "" "Test if the *x* object is the *y* object, the same as ``x is y`` in Python." msgstr "" -#: c-api/structures.rst:80 +#: c-api/structures.rst:114 msgid "" "Test if an object is the ``None`` singleton, the same as ``x is None`` in " "Python." msgstr "" -#: c-api/structures.rst:88 +#: c-api/structures.rst:122 msgid "" "Test if an object is the ``True`` singleton, the same as ``x is True`` in " "Python." msgstr "" -#: c-api/structures.rst:96 +#: c-api/structures.rst:130 msgid "" "Test if an object is the ``False`` singleton, the same as ``x is False`` in " "Python." msgstr "" -#: c-api/structures.rst:104 +#: c-api/structures.rst:138 msgid "Get the type of the Python object *o*." msgstr "" -#: c-api/structures.rst:106 -msgid "Return a :term:`borrowed reference`." -msgstr "" - -#: c-api/structures.rst:108 -msgid "Use the :c:func:`Py_SET_TYPE` function to set an object type." +#: c-api/structures.rst:140 +msgid "" +"The returned reference is :term:`borrowed ` from *o*. Do " +"not release it with :c:func:`Py_DECREF` or similar." msgstr "" -#: c-api/structures.rst:110 +#: c-api/structures.rst:143 msgid "" ":c:func:`Py_TYPE()` is changed to an inline static function. The parameter " "type is no longer :c:expr:`const PyObject*`." msgstr "" -#: c-api/structures.rst:117 +#: c-api/structures.rst:150 msgid "" "Return non-zero if the object *o* type is *type*. Return zero otherwise. " "Equivalent to: ``Py_TYPE(o) == type``." msgstr "" -#: c-api/structures.rst:125 -msgid "Set the object *o* type to *type*." +#: c-api/structures.rst:158 +msgid "" +"Set the type of object *o* to *type*, without any checking or reference " +"counting." msgstr "" -#: c-api/structures.rst:132 -msgid "Get the size of the Python object *o*." +#: c-api/structures.rst:161 +msgid "" +"This is a very low-level operation. Consider instead setting the Python " +"attribute :attr:`~object.__class__` using :c:func:`PyObject_SetAttrString` " +"or similar." msgstr "" -#: c-api/structures.rst:134 -msgid "Use the :c:func:`Py_SET_SIZE` function to set an object size." +#: c-api/structures.rst:165 +msgid "" +"Note that assigning an incompatible type can lead to undefined behavior." msgstr "" -#: c-api/structures.rst:136 +#: c-api/structures.rst:167 +msgid "" +"If *type* is a :ref:`heap type `, the caller must create a new " +"reference to it. Similarly, if the old type of *o* is a heap type, the " +"caller must release a reference to that type." +msgstr "" + +#: c-api/structures.rst:177 +msgid "Get the :c:member:`~PyVarObject.ob_size` field of *o*." +msgstr "" + +#: c-api/structures.rst:179 msgid "" ":c:func:`Py_SIZE()` is changed to an inline static function. The parameter " "type is no longer :c:expr:`const PyVarObject*`." msgstr "" -#: c-api/structures.rst:143 -msgid "Set the object *o* size to *size*." +#: c-api/structures.rst:186 +msgid "Set the :c:member:`~PyVarObject.ob_size` field of *o* to *size*." msgstr "" -#: c-api/structures.rst:150 +#: c-api/structures.rst:193 msgid "" "This is a macro which expands to initialization values for a new :c:type:" "`PyObject` type. This macro expands to::" msgstr "" -#: c-api/structures.rst:153 +#: c-api/structures.rst:196 msgid "" "_PyObject_EXTRA_INIT\n" "1, type," msgstr "" -#: c-api/structures.rst:159 +#: c-api/structures.rst:202 msgid "" "This is a macro which expands to initialization values for a new :c:type:" "`PyVarObject` type, including the :c:member:`~PyVarObject.ob_size` field. " "This macro expands to::" msgstr "" -#: c-api/structures.rst:163 +#: c-api/structures.rst:206 msgid "" "_PyObject_EXTRA_INIT\n" "1, type, size," msgstr "" -#: c-api/structures.rst:168 +#: c-api/structures.rst:211 msgid "Implementing functions and methods" msgstr "" -#: c-api/structures.rst:172 +#: c-api/structures.rst:215 msgid "" "Type of the functions used to implement most Python callables in C. " "Functions of this type take two :c:expr:`PyObject*` parameters and return " @@ -205,51 +273,51 @@ msgid "" "reference." msgstr "" -#: c-api/structures.rst:179 +#: c-api/structures.rst:222 msgid "The function signature is::" msgstr "" -#: c-api/structures.rst:181 +#: c-api/structures.rst:224 msgid "" "PyObject *PyCFunction(PyObject *self,\n" " PyObject *args);" msgstr "" -#: c-api/structures.rst:186 +#: c-api/structures.rst:229 msgid "" "Type of the functions used to implement Python callables in C with " "signature :ref:`METH_VARARGS | METH_KEYWORDS `. " "The function signature is::" msgstr "" -#: c-api/structures.rst:190 +#: c-api/structures.rst:233 msgid "" "PyObject *PyCFunctionWithKeywords(PyObject *self,\n" " PyObject *args,\n" " PyObject *kwargs);" msgstr "" -#: c-api/structures.rst:197 +#: c-api/structures.rst:240 msgid "" "Type of the functions used to implement Python callables in C with " "signature :c:macro:`METH_FASTCALL`. The function signature is::" msgstr "" -#: c-api/structures.rst:201 +#: c-api/structures.rst:244 msgid "" "PyObject *PyCFunctionFast(PyObject *self,\n" " PyObject *const *args,\n" " Py_ssize_t nargs);" msgstr "" -#: c-api/structures.rst:207 +#: c-api/structures.rst:250 msgid "" "Type of the functions used to implement Python callables in C with " "signature :ref:`METH_FASTCALL | METH_KEYWORDS `. The function signature is::" msgstr "" -#: c-api/structures.rst:211 +#: c-api/structures.rst:254 msgid "" "PyObject *PyCFunctionFastWithKeywords(PyObject *self,\n" " PyObject *const *args,\n" @@ -257,14 +325,14 @@ msgid "" " PyObject *kwnames);" msgstr "" -#: c-api/structures.rst:218 +#: c-api/structures.rst:261 msgid "" "Type of the functions used to implement Python callables in C with " "signature :ref:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS `. The function signature is::" msgstr "" -#: c-api/structures.rst:222 +#: c-api/structures.rst:265 msgid "" "PyObject *PyCMethod(PyObject *self,\n" " PyTypeObject *defining_class,\n" @@ -273,29 +341,29 @@ msgid "" " PyObject *kwnames)" msgstr "" -#: c-api/structures.rst:233 +#: c-api/structures.rst:276 msgid "" "Structure used to describe a method of an extension type. This structure " "has four fields:" msgstr "" -#: c-api/structures.rst:238 +#: c-api/structures.rst:281 msgid "Name of the method." msgstr "" -#: c-api/structures.rst:242 +#: c-api/structures.rst:285 msgid "Pointer to the C implementation." msgstr "" -#: c-api/structures.rst:246 +#: c-api/structures.rst:289 msgid "Flags bits indicating how the call should be constructed." msgstr "" -#: c-api/structures.rst:250 +#: c-api/structures.rst:293 msgid "Points to the contents of the docstring." msgstr "" -#: c-api/structures.rst:252 +#: c-api/structures.rst:295 msgid "" "The :c:member:`~PyMethodDef.ml_meth` is a C function pointer. The functions " "may be of different types, but they always return :c:expr:`PyObject*`. If " @@ -305,18 +373,18 @@ msgid "" "implementation uses the specific C type of the *self* object." msgstr "" -#: c-api/structures.rst:260 +#: c-api/structures.rst:303 msgid "" "The :c:member:`~PyMethodDef.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 "" -#: c-api/structures.rst:265 +#: c-api/structures.rst:308 msgid "There are these calling conventions:" msgstr "" -#: c-api/structures.rst:269 +#: c-api/structures.rst:312 msgid "" "This is the typical calling convention, where the methods have the type :c:" "type:`PyCFunction`. The function expects two :c:expr:`PyObject*` values. The " @@ -326,7 +394,7 @@ msgid "" "func:`PyArg_ParseTuple` or :c:func:`PyArg_UnpackTuple`." msgstr "" -#: c-api/structures.rst:279 +#: c-api/structures.rst:322 msgid "" "Can only be used in certain combinations with other flags: :ref:" "`METH_VARARGS | METH_KEYWORDS `, :ref:" @@ -335,11 +403,11 @@ msgid "" "METH_KEYWORDS>`." msgstr "" -#: c-api/structures.rst:287 +#: c-api/structures.rst:330 msgid ":c:expr:`METH_VARARGS | METH_KEYWORDS`" msgstr "" -#: c-api/structures.rst:288 +#: c-api/structures.rst:331 msgid "" "Methods with these flags must be of type :c:type:`PyCFunctionWithKeywords`. " "The function expects three parameters: *self*, *args*, *kwargs* where " @@ -348,7 +416,7 @@ msgid "" "using :c:func:`PyArg_ParseTupleAndKeywords`." msgstr "" -#: c-api/structures.rst:297 +#: c-api/structures.rst:340 msgid "" "Fast calling convention supporting only positional arguments. The methods " "have the type :c:type:`PyCFunctionFast`. The first parameter is *self*, the " @@ -357,15 +425,15 @@ msgid "" "the array)." msgstr "" -#: c-api/structures.rst:307 +#: c-api/structures.rst:350 msgid "``METH_FASTCALL`` is now part of the :ref:`stable ABI `." msgstr "" -#: c-api/structures.rst:312 +#: c-api/structures.rst:355 msgid ":c:expr:`METH_FASTCALL | METH_KEYWORDS`" msgstr "" -#: c-api/structures.rst:313 +#: c-api/structures.rst:356 msgid "" "Extension of :c:macro:`METH_FASTCALL` supporting also keyword arguments, " "with methods of type :c:type:`PyCFunctionFastWithKeywords`. Keyword " @@ -377,17 +445,17 @@ msgid "" "the positional arguments." msgstr "" -#: c-api/structures.rst:328 +#: c-api/structures.rst:371 msgid "" "Can only be used in the combination with other flags: :ref:`METH_METHOD | " "METH_FASTCALL | METH_KEYWORDS `." msgstr "" -#: c-api/structures.rst:334 +#: c-api/structures.rst:377 msgid ":c:expr:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`" msgstr "" -#: c-api/structures.rst:335 +#: c-api/structures.rst:378 msgid "" "Extension of :ref:`METH_FASTCALL | METH_KEYWORDS ` supporting the *defining class*, that is, the class that " @@ -395,14 +463,14 @@ msgid "" "``Py_TYPE(self)``." msgstr "" -#: c-api/structures.rst:340 +#: c-api/structures.rst:383 msgid "" "The method needs to be of type :c:type:`PyCMethod`, the same as for " "``METH_FASTCALL | METH_KEYWORDS`` with ``defining_class`` argument added " "after ``self``." msgstr "" -#: c-api/structures.rst:349 +#: c-api/structures.rst:392 msgid "" "Methods without parameters don't need to check whether arguments are given " "if they are listed with the :c:macro:`METH_NOARGS` flag. They need to be of " @@ -411,13 +479,13 @@ msgid "" "the second parameter will be ``NULL``." msgstr "" -#: c-api/structures.rst:355 +#: c-api/structures.rst:398 msgid "" "The function must have 2 parameters. Since the second parameter is unused, :" "c:macro:`Py_UNUSED` can be used to prevent a compiler warning." msgstr "" -#: c-api/structures.rst:361 +#: c-api/structures.rst:404 msgid "" "Methods with a single object argument can be listed with the :c:macro:" "`METH_O` flag, instead of invoking :c:func:`PyArg_ParseTuple` with a " @@ -426,7 +494,7 @@ msgid "" "single argument." msgstr "" -#: c-api/structures.rst:367 +#: c-api/structures.rst:410 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 " @@ -434,27 +502,27 @@ msgid "" "any given method." msgstr "" -#: c-api/structures.rst:377 +#: c-api/structures.rst:420 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 "" -#: c-api/structures.rst:387 +#: c-api/structures.rst:430 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 "" -#: c-api/structures.rst:391 +#: c-api/structures.rst:434 msgid "" "One other constant controls whether a method is loaded in place of another " "definition with the same method name." msgstr "" -#: c-api/structures.rst:397 +#: c-api/structures.rst:440 msgid "" "The method will be loaded in place of existing definitions. Without " "*METH_COEXIST*, the default is to skip repeated definitions. Since slot " @@ -467,20 +535,38 @@ msgid "" "wrapper object calls." msgstr "" -#: c-api/structures.rst:409 +#: c-api/structures.rst:453 +msgid "" +"The type object corresponding to Python C method objects. This is available " +"as :class:`types.BuiltinMethodType` in the Python layer." +msgstr "" + +#: c-api/structures.rst:459 +msgid "" +"Return true if *op* is an instance of the :c:type:`PyCMethod_Type` type or a " +"subtype of it. This function always succeeds." +msgstr "" + +#: c-api/structures.rst:465 +msgid "" +"This is the same as :c:func:`PyCMethod_Check`, but does not account for " +"subtypes." +msgstr "" + +#: c-api/structures.rst:471 msgid "" "Turn *ml* into a Python :term:`callable` object. The caller must ensure that " "*ml* outlives the :term:`callable`. Typically, *ml* is defined as a static " "variable." msgstr "" -#: c-api/structures.rst:413 +#: c-api/structures.rst:475 msgid "" "The *self* parameter will be passed as the *self* argument to the C function " "in ``ml->ml_meth`` when invoked. *self* can be ``NULL``." msgstr "" -#: c-api/structures.rst:417 +#: c-api/structures.rst:479 msgid "" "The :term:`callable` object's ``__module__`` attribute can be set from the " "given *module* argument. *module* should be a Python string, which will be " @@ -488,71 +574,151 @@ msgid "" "can be set to :const:`None` or ``NULL``." msgstr "" -#: c-api/structures.rst:423 +#: c-api/structures.rst:485 msgid ":attr:`function.__module__`" msgstr "" -#: c-api/structures.rst:425 +#: c-api/structures.rst:487 msgid "" "The *cls* parameter will be passed as the *defining_class* argument to the C " "function. Must be set if :c:macro:`METH_METHOD` is set on ``ml->ml_flags``." msgstr "" -#: c-api/structures.rst:434 +#: c-api/structures.rst:496 +msgid "" +"The type object corresponding to Python C function objects. This is " +"available as :class:`types.BuiltinFunctionType` in the Python layer." +msgstr "" + +#: c-api/structures.rst:502 +msgid "" +"Return true if *op* is an instance of the :c:type:`PyCFunction_Type` type or " +"a subtype of it. This function always succeeds." +msgstr "" + +#: c-api/structures.rst:508 +msgid "" +"This is the same as :c:func:`PyCFunction_Check`, but does not account for " +"subtypes." +msgstr "" + +#: c-api/structures.rst:514 msgid "Equivalent to ``PyCMethod_New(ml, self, module, NULL)``." msgstr "" -#: c-api/structures.rst:439 +#: c-api/structures.rst:519 msgid "Equivalent to ``PyCMethod_New(ml, self, NULL, NULL)``." msgstr "" -#: c-api/structures.rst:443 +#: c-api/structures.rst:524 +msgid "" +"Get the function's flags on *func* as they were passed to :c:member:" +"`~PyMethodDef.ml_flags`." +msgstr "" + +#: c-api/structures.rst:545 c-api/structures.rst:565 +msgid "" +"If *func* is not a C function object, this fails with an exception. *func* " +"must not be ``NULL``." +msgstr "" + +#: c-api/structures.rst:530 +msgid "" +"This function returns the function's flags on success, and ``-1`` with an " +"exception set on failure." +msgstr "" + +#: c-api/structures.rst:536 +msgid "" +"This is the same as :c:func:`PyCFunction_GetFlags`, but without error or " +"type checking." +msgstr "" + +#: c-api/structures.rst:542 +msgid "" +"Get the function pointer on *func* as it was passed to :c:member:" +"`~PyMethodDef.ml_meth`." +msgstr "" + +#: c-api/structures.rst:548 +msgid "" +"This function returns the function pointer on success, and ``NULL`` with an " +"exception set on failure." +msgstr "" + +#: c-api/structures.rst:554 +msgid "" +"This is the same as :c:func:`PyCFunction_GetFunction`, but without error or " +"type checking." +msgstr "" + +#: c-api/structures.rst:560 +msgid "" +"Get the \"self\" object on *func*. This is the object that would be passed " +"to the first argument of a :c:type:`PyCFunction`. For C function objects " +"created through a :c:type:`PyMethodDef` on a :c:type:`PyModuleDef`, this is " +"the resulting module object." +msgstr "" + +#: c-api/structures.rst:568 +msgid "" +"This function returns a :term:`borrowed reference` to the \"self\" object on " +"success, and ``NULL`` with an exception set on failure." +msgstr "" + +#: c-api/structures.rst:574 +msgid "" +"This is the same as :c:func:`PyCFunction_GetSelf`, but without error or type " +"checking." +msgstr "" + +#: c-api/structures.rst:579 msgid "Accessing attributes of extension types" msgstr "" -#: c-api/structures.rst:447 +#: c-api/structures.rst:583 msgid "" "Structure which describes an attribute of a type which corresponds to a C " "struct member. When defining a class, put a NULL-terminated array of these " "structures in the :c:member:`~PyTypeObject.tp_members` slot." msgstr "" -#: c-api/structures.rst:452 +#: c-api/structures.rst:588 msgid "Its fields are, in order:" msgstr "" -#: c-api/structures.rst:456 +#: c-api/structures.rst:592 msgid "" "Name of the member. A NULL value marks the end of a ``PyMemberDef[]`` array." msgstr "" -#: c-api/structures.rst:459 +#: c-api/structures.rst:595 msgid "The string should be static, no copy is made of it." msgstr "" -#: c-api/structures.rst:463 +#: c-api/structures.rst:599 msgid "" "The type of the member in the C struct. See :ref:`PyMemberDef-types` for the " "possible values." msgstr "" -#: c-api/structures.rst:468 +#: c-api/structures.rst:604 msgid "" "The offset in bytes that the member is located on the type’s object struct." msgstr "" -#: c-api/structures.rst:472 +#: c-api/structures.rst:608 msgid "" "Zero or more of the :ref:`PyMemberDef-flags`, combined using bitwise OR." msgstr "" -#: c-api/structures.rst:476 +#: c-api/structures.rst:612 msgid "" "The docstring, or NULL. The string should be static, no copy is made of it. " "Typically, it is defined using :c:macro:`PyDoc_STR`." msgstr "" -#: c-api/structures.rst:480 +#: c-api/structures.rst:616 msgid "" "By default (when :c:member:`~PyMemberDef.flags` is ``0``), members allow " "both read and write access. Use the :c:macro:`Py_READONLY` flag for read-" @@ -561,7 +727,7 @@ msgid "" "`T_OBJECT`) members can be deleted." msgstr "" -#: c-api/structures.rst:489 +#: c-api/structures.rst:625 msgid "" "For heap-allocated types (created using :c:func:`PyType_FromSpec` or " "similar), ``PyMemberDef`` may contain a definition for the special member " @@ -571,7 +737,7 @@ msgid "" "Py_RELATIVE_OFFSET``. For example::" msgstr "" -#: c-api/structures.rst:496 +#: c-api/structures.rst:632 msgid "" "static PyMemberDef spam_type_members[] = {\n" " {\"__vectorcalloffset__\", Py_T_PYSSIZET,\n" @@ -580,11 +746,11 @@ msgid "" "};" msgstr "" -#: c-api/structures.rst:502 +#: c-api/structures.rst:638 msgid "(You may need to ``#include `` for :c:func:`!offsetof`.)" msgstr "" -#: c-api/structures.rst:504 +#: c-api/structures.rst:640 msgid "" "The legacy offsets :c:member:`~PyTypeObject.tp_dictoffset` and :c:member:" "`~PyTypeObject.tp_weaklistoffset` can be defined similarly using " @@ -593,84 +759,80 @@ msgid "" "and :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` instead." msgstr "" -#: c-api/structures.rst:512 +#: c-api/structures.rst:648 msgid "" "``PyMemberDef`` is always available. Previously, it required including " "``\"structmember.h\"``." msgstr "" -#: c-api/structures.rst:517 +#: c-api/structures.rst:653 msgid "" ":c:macro:`Py_RELATIVE_OFFSET` is now allowed for " "``\"__vectorcalloffset__\"``, ``\"__dictoffset__\"`` and " "``\"__weaklistoffset__\"``." msgstr "" -#: c-api/structures.rst:523 +#: c-api/structures.rst:659 msgid "" "Get an attribute belonging to the object at address *obj_addr*. The " "attribute is described by ``PyMemberDef`` *m*. Returns ``NULL`` on error." msgstr "" -#: c-api/structures.rst:529 +#: c-api/structures.rst:665 msgid "" "``PyMember_GetOne`` is always available. Previously, it required including " "``\"structmember.h\"``." msgstr "" -#: c-api/structures.rst:534 +#: c-api/structures.rst:670 msgid "" "Set an attribute belonging to the object at address *obj_addr* to object " "*o*. The attribute to set is described by ``PyMemberDef`` *m*. Returns " "``0`` if successful and a negative value on failure." msgstr "" -#: c-api/structures.rst:540 +#: c-api/structures.rst:676 msgid "" "``PyMember_SetOne`` is always available. Previously, it required including " "``\"structmember.h\"``." msgstr "" -#: c-api/structures.rst:546 +#: c-api/structures.rst:682 msgid "Member flags" msgstr "" -#: c-api/structures.rst:548 +#: c-api/structures.rst:684 msgid "The following flags can be used with :c:member:`PyMemberDef.flags`:" msgstr "" -#: c-api/structures.rst:552 +#: c-api/structures.rst:688 msgid "Not writable." msgstr "" -#: c-api/structures.rst:556 +#: c-api/structures.rst:692 msgid "" "Emit an ``object.__getattr__`` :ref:`audit event ` before " "reading." msgstr "" -#: c-api/structures.rst:561 +#: c-api/structures.rst:697 msgid "" "Indicates that the :c:member:`~PyMemberDef.offset` of this ``PyMemberDef`` " "entry indicates an offset from the subclass-specific data, rather than from " "``PyObject``." msgstr "" -#: c-api/structures.rst:565 +#: c-api/structures.rst:701 msgid "" -"Can only be used as part of :c:member:`Py_tp_members ` :c:type:`slot ` when creating a class using " -"negative :c:member:`~PyType_Spec.basicsize`. It is mandatory in that case." +"Can only be used as part of the :c:data:`Py_tp_members` :c:type:`slot " +"` when creating a class using negative :c:member:`~PyType_Spec." +"basicsize`. It is mandatory in that case. When setting :c:member:" +"`~PyTypeObject.tp_members` from the slot during class creation, Python " +"clears the flag and sets :c:member:`PyMemberDef.offset` to the offset from " +"the ``PyObject`` struct." msgstr "" -#: c-api/structures.rst:570 -msgid "" -"This flag is only used in :c:type:`PyType_Slot`. When setting :c:member:" -"`~PyTypeObject.tp_members` during class creation, Python clears it and sets :" -"c:member:`PyMemberDef.offset` to the offset from the ``PyObject`` struct." -msgstr "" - -#: c-api/structures.rst:582 +#: c-api/structures.rst:716 msgid "" "The :c:macro:`!RESTRICTED`, :c:macro:`!READ_RESTRICTED` and :c:macro:`!" "WRITE_RESTRICTED` macros available with ``#include \"structmember.h\"`` are " @@ -679,7 +841,7 @@ msgid "" "nothing." msgstr "" -#: c-api/structures.rst:593 +#: c-api/structures.rst:727 msgid "" "The :c:macro:`!READONLY` macro was renamed to :c:macro:`Py_READONLY`. The :c:" "macro:`!PY_AUDIT_READ` macro was renamed with the ``Py_`` prefix. The new " @@ -688,11 +850,11 @@ msgid "" "names." msgstr "" -#: c-api/structures.rst:602 +#: c-api/structures.rst:736 msgid "Member types" msgstr "" -#: c-api/structures.rst:604 +#: c-api/structures.rst:738 msgid "" ":c:member:`PyMemberDef.type` can be one of the following macros " "corresponding to various C types. When the member is accessed in Python, it " @@ -701,143 +863,143 @@ msgid "" "exception such as :exc:`TypeError` or :exc:`ValueError` is raised." msgstr "" -#: c-api/structures.rst:612 +#: c-api/structures.rst:746 msgid "" "Unless marked (D), attributes defined this way cannot be deleted using e.g. :" "keyword:`del` or :py:func:`delattr`." msgstr "" -#: c-api/structures.rst:616 +#: c-api/structures.rst:750 msgid "Macro name" msgstr "" -#: c-api/structures.rst:616 +#: c-api/structures.rst:750 msgid "C type" msgstr "" -#: c-api/structures.rst:616 +#: c-api/structures.rst:750 msgid "Python type" msgstr "" -#: c-api/structures.rst:618 +#: c-api/structures.rst:752 msgid ":c:expr:`char`" msgstr "" -#: c-api/structures.rst:619 c-api/structures.rst:621 c-api/structures.rst:623 -#: c-api/structures.rst:625 c-api/structures.rst:627 c-api/structures.rst:628 +#: c-api/structures.rst:753 c-api/structures.rst:755 c-api/structures.rst:757 +#: c-api/structures.rst:759 c-api/structures.rst:761 c-api/structures.rst:762 msgid ":py:class:`int`" msgstr "" -#: c-api/structures.rst:619 +#: c-api/structures.rst:753 msgid ":c:expr:`short`" msgstr "" -#: c-api/structures.rst:620 +#: c-api/structures.rst:754 msgid ":c:expr:`int`" msgstr "" -#: c-api/structures.rst:621 +#: c-api/structures.rst:755 msgid ":c:expr:`long`" msgstr "" -#: c-api/structures.rst:622 +#: c-api/structures.rst:756 msgid ":c:expr:`long long`" msgstr "" -#: c-api/structures.rst:623 +#: c-api/structures.rst:757 msgid ":c:expr:`unsigned char`" msgstr "" -#: c-api/structures.rst:624 +#: c-api/structures.rst:758 msgid ":c:expr:`unsigned int`" msgstr "" -#: c-api/structures.rst:625 +#: c-api/structures.rst:759 msgid ":c:expr:`unsigned short`" msgstr "" -#: c-api/structures.rst:626 +#: c-api/structures.rst:760 msgid ":c:expr:`unsigned long`" msgstr "" -#: c-api/structures.rst:627 +#: c-api/structures.rst:761 msgid ":c:expr:`unsigned long long`" msgstr "" -#: c-api/structures.rst:628 +#: c-api/structures.rst:762 msgid ":c:expr:`Py_ssize_t`" msgstr "" -#: c-api/structures.rst:629 +#: c-api/structures.rst:763 msgid ":c:expr:`float`" msgstr "" -#: c-api/structures.rst:630 +#: c-api/structures.rst:764 msgid ":py:class:`float`" msgstr "" -#: c-api/structures.rst:630 +#: c-api/structures.rst:764 msgid ":c:expr:`double`" msgstr "" -#: c-api/structures.rst:631 +#: c-api/structures.rst:765 msgid ":c:expr:`char` (written as 0 or 1)" msgstr "" -#: c-api/structures.rst:631 +#: c-api/structures.rst:765 msgid ":py:class:`bool`" msgstr "" -#: c-api/structures.rst:633 +#: c-api/structures.rst:767 msgid ":c:expr:`const char *` (*)" msgstr "" -#: c-api/structures.rst:634 +#: c-api/structures.rst:768 msgid ":py:class:`str` (RO)" msgstr "" -#: c-api/structures.rst:634 +#: c-api/structures.rst:768 msgid ":c:expr:`const char[]` (*)" msgstr "" -#: c-api/structures.rst:635 +#: c-api/structures.rst:769 msgid ":c:expr:`char` (0-127)" msgstr "" -#: c-api/structures.rst:635 +#: c-api/structures.rst:769 msgid ":py:class:`str` (**)" msgstr "" -#: c-api/structures.rst:636 +#: c-api/structures.rst:770 msgid ":c:expr:`PyObject *`" msgstr "" -#: c-api/structures.rst:636 +#: c-api/structures.rst:770 msgid ":py:class:`object` (D)" msgstr "" -#: c-api/structures.rst:639 +#: c-api/structures.rst:773 msgid "" "(*): Zero-terminated, UTF8-encoded C string. With :c:macro:`!Py_T_STRING` " "the C representation is a pointer; with :c:macro:`!Py_T_STRING_INPLACE` the " "string is stored directly in the structure." msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:778 msgid "(**): String of length 1. Only ASCII is accepted." msgstr "" -#: c-api/structures.rst:646 +#: c-api/structures.rst:780 msgid "(RO): Implies :c:macro:`Py_READONLY`." msgstr "" -#: c-api/structures.rst:648 +#: c-api/structures.rst:782 msgid "" "(D): Can be deleted, in which case the pointer is set to ``NULL``. Reading a " "``NULL`` pointer raises :py:exc:`AttributeError`." msgstr "" -#: c-api/structures.rst:674 +#: c-api/structures.rst:808 msgid "" "In previous versions, the macros were only available with ``#include " "\"structmember.h\"`` and were named without the ``Py_`` prefix (e.g. as " @@ -845,174 +1007,174 @@ msgid "" "with the following deprecated types:" msgstr "" -#: c-api/structures.rst:682 +#: c-api/structures.rst:816 msgid "" "Like ``Py_T_OBJECT_EX``, but ``NULL`` is converted to ``None``. This results " "in surprising behavior in Python: deleting the attribute effectively sets it " "to ``None``." msgstr "" -#: c-api/structures.rst:688 +#: c-api/structures.rst:822 msgid "Always ``None``. Must be used with :c:macro:`Py_READONLY`." msgstr "" -#: c-api/structures.rst:691 +#: c-api/structures.rst:825 msgid "Defining Getters and Setters" msgstr "" -#: c-api/structures.rst:695 +#: c-api/structures.rst:829 msgid "" "Structure to define property-like access for a type. See also description of " "the :c:member:`PyTypeObject.tp_getset` slot." msgstr "" -#: c-api/structures.rst:700 +#: c-api/structures.rst:834 msgid "attribute name" msgstr "" -#: c-api/structures.rst:704 +#: c-api/structures.rst:838 msgid "C function to get the attribute." msgstr "" -#: c-api/structures.rst:708 +#: c-api/structures.rst:842 msgid "" "Optional C function to set or delete the attribute. If ``NULL``, the " "attribute is read-only." msgstr "" -#: c-api/structures.rst:713 +#: c-api/structures.rst:847 msgid "optional docstring" msgstr "" -#: c-api/structures.rst:717 +#: c-api/structures.rst:851 msgid "" "Optional user data pointer, providing additional data for getter and setter." msgstr "" -#: c-api/structures.rst:721 +#: c-api/structures.rst:855 msgid "" "The ``get`` function takes one :c:expr:`PyObject*` parameter (the instance) " "and a user data pointer (the associated ``closure``):" msgstr "" -#: c-api/structures.rst:724 +#: c-api/structures.rst:858 msgid "" "It should return a new reference on success or ``NULL`` with a set exception " "on failure." msgstr "" -#: c-api/structures.rst:729 +#: c-api/structures.rst:863 msgid "" "``set`` functions take two :c:expr:`PyObject*` parameters (the instance and " "the value to be set) and a user data pointer (the associated ``closure``):" msgstr "" -#: c-api/structures.rst:732 +#: c-api/structures.rst:866 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 "" -#: c-api/structures.rst:385 +#: c-api/structures.rst:428 msgid "built-in function" msgstr "" -#: c-api/structures.rst:375 +#: c-api/structures.rst:418 msgid "classmethod" msgstr "" -#: c-api/structures.rst:385 +#: c-api/structures.rst:428 msgid "staticmethod" msgstr "" -#: c-api/structures.rst:575 +#: c-api/structures.rst:709 msgid "READ_RESTRICTED (C macro)" msgstr "" -#: c-api/structures.rst:575 +#: c-api/structures.rst:709 msgid "WRITE_RESTRICTED (C macro)" msgstr "" -#: c-api/structures.rst:575 +#: c-api/structures.rst:709 msgid "RESTRICTED (C macro)" msgstr "" -#: c-api/structures.rst:588 +#: c-api/structures.rst:722 msgid "READONLY (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_BYTE (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_SHORT (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_INT (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_LONG (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_LONGLONG (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_UBYTE (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_USHORT (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_UINT (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_ULONG (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_ULONGULONG (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_PYSSIZET (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_FLOAT (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_DOUBLE (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_BOOL (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_CHAR (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_STRING (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_STRING_INPLACE (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "T_OBJECT_EX (C macro)" msgstr "" -#: c-api/structures.rst:651 +#: c-api/structures.rst:785 msgid "structmember.h" msgstr "" diff --git a/c-api/sys.po b/c-api/sys.po index 84d1373f..eaca8fa9 100644 --- a/c-api/sys.po +++ b/c-api/sys.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -135,20 +135,45 @@ msgid "" msgstr "" #: c-api/sys.rst:129 +msgid "Check if a :c:macro:`!SIGINT` signal has been received." +msgstr "" + +#: c-api/sys.rst:131 +msgid "" +"Returns ``1`` if a :c:macro:`!SIGINT` has occurred and clears the signal " +"flag, or ``0`` otherwise." +msgstr "" + +#: c-api/sys.rst:134 +msgid "" +"In most cases, you should prefer :c:func:`PyErr_CheckSignals` over this " +"function. :c:func:`!PyErr_CheckSignals` invokes the appropriate signal " +"handlers for all pending signals, allowing Python code to handle the signal " +"properly. This function only detects :c:macro:`!SIGINT` and does not invoke " +"any Python signal handlers." +msgstr "" + +#: c-api/sys.rst:140 +msgid "" +"This function is async-signal-safe and this function cannot fail. The caller " +"must hold an :term:`attached thread state`." +msgstr "" + +#: c-api/sys.rst:147 msgid "" "This function should not be called directly: use the :c:type:`PyConfig` API " "with the :c:func:`PyConfig_SetBytesString` function which ensures that :ref:" "`Python is preinitialized `." msgstr "" -#: c-api/sys.rst:200 +#: c-api/sys.rst:218 msgid "" "This function must not be called before :ref:`Python is preinitialized ` and so that the LC_CTYPE locale is properly configured: see the :c:" "func:`Py_PreInitialize` function." msgstr "" -#: c-api/sys.rst:137 +#: c-api/sys.rst:155 msgid "" "Decode a byte string from the :term:`filesystem encoding and error handler`. " "If the error handler is :ref:`surrogateescape error handler " @@ -158,57 +183,57 @@ msgid "" "instead of decoding them." msgstr "" -#: c-api/sys.rst:144 +#: c-api/sys.rst:162 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 "" -#: c-api/sys.rst:148 +#: c-api/sys.rst:166 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 "" -#: c-api/sys.rst:192 +#: c-api/sys.rst:210 msgid "" "The :term:`filesystem encoding and error handler` are selected by :c:func:" "`PyConfig_Read`: see :c:member:`~PyConfig.filesystem_encoding` and :c:member:" "`~PyConfig.filesystem_errors` members of :c:type:`PyConfig`." msgstr "" -#: c-api/sys.rst:156 +#: c-api/sys.rst:174 msgid "" "Decoding errors should never happen, unless there is a bug in the C library." msgstr "" -#: c-api/sys.rst:159 +#: c-api/sys.rst:177 msgid "" "Use the :c:func:`Py_EncodeLocale` function to encode the character string " "back to a byte string." msgstr "" -#: c-api/sys.rst:164 +#: c-api/sys.rst:182 msgid "" "The :c:func:`PyUnicode_DecodeFSDefaultAndSize` and :c:func:" "`PyUnicode_DecodeLocaleAndSize` functions." msgstr "" -#: c-api/sys.rst:211 +#: c-api/sys.rst:229 msgid "" "The function now uses the UTF-8 encoding in the :ref:`Python UTF-8 Mode " "`." msgstr "" -#: c-api/sys.rst:173 +#: c-api/sys.rst:191 msgid "" "The function now uses the UTF-8 encoding on Windows if :c:member:" "`PyPreConfig.legacy_windows_fs_encoding` is zero;" msgstr "" -#: c-api/sys.rst:180 +#: c-api/sys.rst:198 msgid "" "Encode a wide character string to the :term:`filesystem encoding and error " "handler`. If the error handler is :ref:`surrogateescape error handler " @@ -216,85 +241,85 @@ msgid "" "converted to bytes 0x80..0xFF." msgstr "" -#: c-api/sys.rst:185 +#: c-api/sys.rst:203 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 "" -#: c-api/sys.rst:189 +#: c-api/sys.rst:207 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 "" -#: c-api/sys.rst:196 +#: c-api/sys.rst:214 msgid "" "Use the :c:func:`Py_DecodeLocale` function to decode the bytes string back " "to a wide character string." msgstr "" -#: c-api/sys.rst:206 +#: c-api/sys.rst:224 msgid "" "The :c:func:`PyUnicode_EncodeFSDefault` and :c:func:`PyUnicode_EncodeLocale` " "functions." msgstr "" -#: c-api/sys.rst:215 +#: c-api/sys.rst:233 msgid "" "The function now uses the UTF-8 encoding on Windows if :c:member:" "`PyPreConfig.legacy_windows_fs_encoding` is zero." msgstr "" -#: c-api/sys.rst:221 +#: c-api/sys.rst:239 msgid "" "Similar to :c:func:`!fopen`, but *path* is a Python object and an exception " "is set on error." msgstr "" -#: c-api/sys.rst:224 +#: c-api/sys.rst:242 msgid "" "*path* must be a :class:`str` object, a :class:`bytes` object, or a :term:" "`path-like object`." msgstr "" -#: c-api/sys.rst:227 +#: c-api/sys.rst:245 msgid "" "On success, return the new file pointer. On error, set an exception and " "return ``NULL``." msgstr "" -#: c-api/sys.rst:230 +#: c-api/sys.rst:248 msgid "" "The file must be closed by :c:func:`Py_fclose` rather than calling directly :" "c:func:`!fclose`." msgstr "" -#: c-api/sys.rst:233 +#: c-api/sys.rst:251 msgid "The file descriptor is created non-inheritable (:pep:`446`)." msgstr "" -#: c-api/sys.rst:235 +#: c-api/sys.rst:253 msgid "The caller must have an :term:`attached thread state`." msgstr "" -#: c-api/sys.rst:242 +#: c-api/sys.rst:260 msgid "Close a file that was opened by :c:func:`Py_fopen`." msgstr "" -#: c-api/sys.rst:244 +#: c-api/sys.rst:262 msgid "" "On success, return ``0``. On error, return ``EOF`` and ``errno`` is set to " "indicate the error. In either case, any further access (including another " "call to :c:func:`Py_fclose`) to the stream results in undefined behavior." msgstr "" -#: c-api/sys.rst:255 +#: c-api/sys.rst:273 msgid "System Functions" msgstr "" -#: c-api/sys.rst:257 +#: c-api/sys.rst:275 msgid "" "These are utility functions that make functionality from the :mod:`sys` " "module accessible to C code. They all work with the current interpreter " @@ -302,36 +327,36 @@ msgid "" "state structure." msgstr "" -#: c-api/sys.rst:263 +#: c-api/sys.rst:281 msgid "" "Return the object *name* from the :mod:`sys` module or ``NULL`` if it does " "not exist, without setting an exception." msgstr "" -#: c-api/sys.rst:268 +#: c-api/sys.rst:286 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 "" -#: c-api/sys.rst:274 +#: c-api/sys.rst:292 msgid "" "Reset :data:`sys.warnoptions` to an empty list. This function may be called " "prior to :c:func:`Py_Initialize`." msgstr "" -#: c-api/sys.rst:277 +#: c-api/sys.rst:295 msgid "Clear :data:`sys.warnoptions` and :data:`!warnings.filters` instead." msgstr "" -#: c-api/sys.rst:282 +#: c-api/sys.rst:300 msgid "" "Write the output string described by *format* to :data:`sys.stdout`. No " "exceptions are raised, even if truncation occurs (see below)." msgstr "" -#: c-api/sys.rst:285 +#: c-api/sys.rst:303 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 " @@ -342,48 +367,48 @@ msgid "" "of digits for very large numbers." msgstr "" -#: c-api/sys.rst:293 +#: c-api/sys.rst:311 msgid "" "If a problem occurs, or :data:`sys.stdout` is unset, the formatted message " "is written to the real (C level) *stdout*." msgstr "" -#: c-api/sys.rst:298 +#: c-api/sys.rst:316 msgid "" "As :c:func:`PySys_WriteStdout`, but write to :data:`sys.stderr` or *stderr* " "instead." msgstr "" -#: c-api/sys.rst:303 +#: c-api/sys.rst:321 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 "" -#: c-api/sys.rst:311 +#: c-api/sys.rst:329 msgid "" "As :c:func:`PySys_FormatStdout`, but write to :data:`sys.stderr` or *stderr* " "instead." msgstr "" -#: c-api/sys.rst:318 +#: c-api/sys.rst:336 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 "" -#: c-api/sys.rst:327 +#: c-api/sys.rst:345 msgid "" "Raise an auditing event with any active hooks. Return zero for success and " "non-zero with an exception set on failure." msgstr "" -#: c-api/sys.rst:330 +#: c-api/sys.rst:348 msgid "The *event* string argument must not be *NULL*." msgstr "" -#: c-api/sys.rst:332 +#: c-api/sys.rst:350 msgid "" "If any hooks have been added, *format* and other arguments will be used to " "construct a tuple to pass. Apart from ``N``, the same format characters as " @@ -391,40 +416,40 @@ msgid "" "tuple, it will be added into a single-element tuple." msgstr "" -#: c-api/sys.rst:337 +#: c-api/sys.rst:355 msgid "" "The ``N`` format option must not be used. It consumes a reference, but since " "there is no way to know whether arguments to this function will be consumed, " "using it may cause reference leaks." msgstr "" -#: c-api/sys.rst:341 +#: c-api/sys.rst:359 msgid "" "Note that ``#`` format characters should always be treated as :c:type:" "`Py_ssize_t`, regardless of whether ``PY_SSIZE_T_CLEAN`` was defined." msgstr "" -#: c-api/sys.rst:344 +#: c-api/sys.rst:362 msgid ":func:`sys.audit` performs the same function from Python code." msgstr "" -#: c-api/sys.rst:346 +#: c-api/sys.rst:364 msgid "See also :c:func:`PySys_AuditTuple`." msgstr "" -#: c-api/sys.rst:352 +#: c-api/sys.rst:370 msgid "" "Require :c:type:`Py_ssize_t` for ``#`` format characters. Previously, an " "unavoidable deprecation warning was raised." msgstr "" -#: c-api/sys.rst:358 +#: c-api/sys.rst:376 msgid "" "Similar to :c:func:`PySys_Audit`, but pass arguments as a Python object. " "*args* must be a :class:`tuple`. To pass no arguments, *args* can be *NULL*." msgstr "" -#: c-api/sys.rst:366 +#: c-api/sys.rst:384 msgid "" "Append the callable *hook* to the list of active auditing hooks. Return zero " "on success and non-zero on failure. If the runtime has been initialized, " @@ -432,14 +457,14 @@ msgid "" "all interpreters created by the runtime." msgstr "" -#: c-api/sys.rst:372 +#: c-api/sys.rst:390 msgid "" "The *userData* pointer is passed into the hook function. Since hook " "functions may be called from different runtimes, this pointer should not " "refer directly to Python state." msgstr "" -#: c-api/sys.rst:376 +#: c-api/sys.rst:394 msgid "" "This function is safe to call before :c:func:`Py_Initialize`. When called " "after runtime initialization, existing audit hooks are notified and may " @@ -447,20 +472,20 @@ msgid "" "`Exception` (other errors will not be silenced)." msgstr "" -#: c-api/sys.rst:381 +#: c-api/sys.rst:399 msgid "" "The hook function is always called with an :term:`attached thread state` by " "the Python interpreter that raised the event." msgstr "" -#: c-api/sys.rst:384 +#: c-api/sys.rst:402 msgid "" "See :pep:`578` for a detailed description of auditing. Functions in the " "runtime and standard library that raise events are listed in the :ref:`audit " "events table `. Details are in each function's documentation." msgstr "" -#: c-api/sys.rst:391 +#: c-api/sys.rst:409 msgid "" "If the interpreter is initialized, this function raises an auditing event " "``sys.addaudithook`` with no arguments. If any existing hooks raise an " @@ -469,7 +494,7 @@ msgid "" "hook has been added unless they control all existing hooks." msgstr "" -#: c-api/sys.rst:400 +#: c-api/sys.rst:418 msgid "" "The type of the hook function. *event* is the C string event argument passed " "to :c:func:`PySys_Audit` or :c:func:`PySys_AuditTuple`. *args* is guaranteed " @@ -477,11 +502,11 @@ msgid "" "PySys_AddAuditHook()." msgstr "" -#: c-api/sys.rst:412 +#: c-api/sys.rst:430 msgid "Process Control" msgstr "" -#: c-api/sys.rst:419 +#: c-api/sys.rst:437 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 " @@ -491,29 +516,29 @@ msgid "" "file:`core` file." msgstr "" -#: c-api/sys.rst:426 +#: c-api/sys.rst:444 msgid "" "The ``Py_FatalError()`` function is replaced with a macro which logs " "automatically the name of the current function, unless the " "``Py_LIMITED_API`` macro is defined." msgstr "" -#: c-api/sys.rst:430 +#: c-api/sys.rst:448 msgid "Log the function name automatically." msgstr "" -#: c-api/sys.rst:440 +#: c-api/sys.rst:458 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 "" -#: c-api/sys.rst:444 +#: c-api/sys.rst:462 msgid "Errors from finalization no longer ignored." msgstr "" -#: c-api/sys.rst:454 +#: c-api/sys.rst:472 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 " @@ -525,7 +550,7 @@ msgid "" "should be called by *func*." msgstr "" -#: c-api/sys.rst:464 +#: c-api/sys.rst:482 msgid ":c:func:`PyUnstable_AtExit` for passing a ``void *data`` argument." msgstr "" @@ -533,18 +558,18 @@ msgstr "" msgid "USE_STACKCHECK (C macro)" msgstr "" -#: c-api/sys.rst:417 +#: c-api/sys.rst:435 msgid "abort (C function)" msgstr "" -#: c-api/sys.rst:450 +#: c-api/sys.rst:468 msgid "Py_FinalizeEx (C function)" msgstr "" -#: c-api/sys.rst:436 +#: c-api/sys.rst:454 msgid "exit (C function)" msgstr "" -#: c-api/sys.rst:450 +#: c-api/sys.rst:468 msgid "cleanup functions" msgstr "" diff --git a/c-api/time.po b/c-api/time.po index 37e6684c..3fcd1c91 100644 --- a/c-api/time.po +++ b/c-api/time.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/tuple.po b/c-api/tuple.po index 22299644..13b966c5 100644 --- a/c-api/tuple.po +++ b/c-api/tuple.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -60,7 +60,7 @@ msgstr "" #: c-api/tuple.rst:50 msgid "" "Take a pointer to a tuple object, and return the size of that tuple. On " -"error, return ``-1`` and with an exception set." +"error, return ``-1`` with an exception set." msgstr "" #: c-api/tuple.rst:56 diff --git a/c-api/type.po b/c-api/type.po index 4c825543..a8340e3f 100644 --- a/c-api/type.po +++ b/c-api/type.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -135,40 +135,72 @@ msgid "" msgstr "" #: c-api/type.rst:121 +msgid "" +"Mark *type* as not watched. This undoes a previous call to :c:func:" +"`PyType_Watch`. *type* must not be ``NULL``." +msgstr "" + +#: c-api/type.rst:124 +msgid "" +"An extension should never call this function with a *watcher_id* that was " +"not returned to it by a previous call to :c:func:`PyType_AddWatcher`." +msgstr "" + +#: c-api/type.rst:127 +msgid "" +"On success, this function returns ``0``. On failure, this function returns " +"``-1`` with an exception set." +msgstr "" + +#: c-api/type.rst:135 msgid "Type of a type-watcher callback function." msgstr "" -#: c-api/type.rst:123 +#: c-api/type.rst:137 msgid "" "The callback must not modify *type* or cause :c:func:`PyType_Modified` to be " "called on *type* or any type in its MRO; violating this rule could cause " "infinite recursion." msgstr "" -#: c-api/type.rst:132 +#: c-api/type.rst:146 msgid "" "Return non-zero if the type object *o* sets the feature *feature*. Type " "features are denoted by single bit flags." msgstr "" -#: c-api/type.rst:138 +#: c-api/type.rst:152 +msgid "" +"Return non-zero if the type object *type* sets the subclass flag *flag*. " +"Subclass flags are denoted by :c:macro:`Py_TPFLAGS_*_SUBCLASS " +"`. This function is used by many ``_Check`` " +"functions for common types." +msgstr "" + +#: c-api/type.rst:158 +msgid "" +":c:func:`PyObject_TypeCheck`, which is used as a slower alternative in " +"``_Check`` functions for types that don't come with subclass flags." +msgstr "" + +#: c-api/type.rst:164 msgid "" "Return true if the type object includes support for the cycle detector; this " "tests the type flag :c:macro:`Py_TPFLAGS_HAVE_GC`." msgstr "" -#: c-api/type.rst:144 +#: c-api/type.rst:170 msgid "Return true if *a* is a subtype of *b*." msgstr "" -#: c-api/type.rst:146 +#: c-api/type.rst:172 msgid "" "This function only checks for actual subtypes, which means that :meth:`~type." "__subclasscheck__` is not called on *b*. Call :c:func:`PyObject_IsSubclass` " "to do the same check that :func:`issubclass` would do." msgstr "" -#: c-api/type.rst:154 +#: c-api/type.rst:180 msgid "" "Generic handler for the :c:member:`~PyTypeObject.tp_alloc` slot of a type " "object. Uses Python's default memory allocation mechanism to allocate " @@ -176,13 +208,13 @@ msgid "" "if by calling :c:func:`PyObject_Init` or :c:func:`PyObject_InitVar`." msgstr "" -#: c-api/type.rst:159 +#: c-api/type.rst:185 msgid "" "Do not call this directly to allocate memory for an object; call the type's :" "c:member:`~PyTypeObject.tp_alloc` slot instead." msgstr "" -#: c-api/type.rst:162 +#: c-api/type.rst:188 msgid "" "For types that support garbage collection (i.e., the :c:macro:" "`Py_TPFLAGS_HAVE_GC` flag is set), this function behaves like :c:macro:" @@ -194,14 +226,14 @@ msgid "" "paired with :c:func:`PyObject_Free` in :c:member:`~PyTypeObject.tp_free`." msgstr "" -#: c-api/type.rst:174 +#: c-api/type.rst:201 msgid "" "Generic handler for the :c:member:`~PyTypeObject.tp_new` slot of a type " "object. Creates a new instance using the type's :c:member:`~PyTypeObject." "tp_alloc` slot and returns the resulting object." msgstr "" -#: c-api/type.rst:180 +#: c-api/type.rst:208 msgid "" "Finalize a type object. This should be called on all type objects to finish " "their initialization. This function is responsible for adding inherited " @@ -209,7 +241,7 @@ msgid "" "and sets an exception on error." msgstr "" -#: c-api/type.rst:186 +#: c-api/type.rst:214 msgid "" "If some of the base classes implements the GC protocol and the provided type " "does not include the :c:macro:`Py_TPFLAGS_HAVE_GC` in its flags, then the GC " @@ -220,32 +252,32 @@ msgid "" "handle." msgstr "" -#: c-api/type.rst:196 +#: c-api/type.rst:225 msgid "" "Return the type's name. Equivalent to getting the type's :attr:`~type." "__name__` attribute." msgstr "" -#: c-api/type.rst:203 +#: c-api/type.rst:233 msgid "" "Return the type's qualified name. Equivalent to getting the type's :attr:" "`~type.__qualname__` attribute." msgstr "" -#: c-api/type.rst:210 +#: c-api/type.rst:240 msgid "" "Return the type's fully qualified name. Equivalent to ``f\"{type.__module__}." "{type.__qualname__}\"``, or :attr:`type.__qualname__` if :attr:`type." "__module__` is not a string or is equal to ``\"builtins\"``." msgstr "" -#: c-api/type.rst:218 +#: c-api/type.rst:249 msgid "" "Return the type's module name. Equivalent to getting the :attr:`type." "__module__` attribute." msgstr "" -#: c-api/type.rst:225 +#: c-api/type.rst:257 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 " @@ -253,30 +285,30 @@ msgid "" "result pointer into the appropriate function type." msgstr "" -#: c-api/type.rst:231 +#: c-api/type.rst:263 msgid "" "See :c:member:`PyType_Slot.slot` for possible values of the *slot* argument." msgstr "" -#: c-api/type.rst:235 +#: c-api/type.rst:267 msgid "" ":c:func:`PyType_GetSlot` can now accept all types. Previously, it was " "limited to :ref:`heap types `." msgstr "" -#: c-api/type.rst:241 +#: c-api/type.rst:274 msgid "" "Return the module object associated with the given type when the type was " "created using :c:func:`PyType_FromModuleAndSpec`." msgstr "" -#: c-api/type.rst:264 +#: c-api/type.rst:298 msgid "" "If no module is associated with the given type, sets :py:class:`TypeError` " "and returns ``NULL``." msgstr "" -#: c-api/type.rst:247 +#: c-api/type.rst:280 msgid "" "This function is usually used to get the module in which a method is " "defined. Note that in such a method, ``PyType_GetModule(Py_TYPE(self))`` may " @@ -287,31 +319,31 @@ msgid "" "type:`!PyCMethod` cannot be used." msgstr "" -#: c-api/type.rst:260 +#: c-api/type.rst:294 msgid "" "Return the state of the module object associated with the given type. This " "is a shortcut for calling :c:func:`PyModule_GetState()` on the result of :c:" "func:`PyType_GetModule`." msgstr "" -#: c-api/type.rst:267 +#: c-api/type.rst:301 msgid "" "If the *type* has an associated module but its state is ``NULL``, returns " "``NULL`` without setting an exception." msgstr "" -#: c-api/type.rst:274 +#: c-api/type.rst:309 msgid "" "Find the first superclass whose module was created from the given :c:type:" "`PyModuleDef` *def*, and return that module." msgstr "" -#: c-api/type.rst:277 +#: c-api/type.rst:312 msgid "" "If no module is found, raises a :py:class:`TypeError` and returns ``NULL``." msgstr "" -#: c-api/type.rst:279 +#: c-api/type.rst:314 msgid "" "This function is intended to be used together with :c:func:" "`PyModule_GetState()` to get module state from slot methods (such as :c:" @@ -320,94 +352,108 @@ msgid "" "type:`PyCMethod` calling convention." msgstr "" -#: c-api/type.rst:285 +#: c-api/type.rst:320 msgid "" "The returned reference is :term:`borrowed ` from *type*, " "and will be valid as long as you hold a reference to *type*. Do not release " "it with :c:func:`Py_DECREF` or similar." msgstr "" -#: c-api/type.rst:293 +#: c-api/type.rst:329 msgid "" "Find the first superclass in *type*'s :term:`method resolution order` whose :" "c:macro:`Py_tp_token` token is equal to the given one." msgstr "" -#: c-api/type.rst:296 +#: c-api/type.rst:332 msgid "" "If found, set *\\*result* to a new :term:`strong reference` to it and return " "``1``." msgstr "" -#: c-api/type.rst:298 +#: c-api/type.rst:334 msgid "If not found, set *\\*result* to ``NULL`` and return ``0``." msgstr "" -#: c-api/type.rst:299 +#: c-api/type.rst:335 msgid "" "On error, set *\\*result* to ``NULL`` and return ``-1`` with an exception " "set." msgstr "" -#: c-api/type.rst:302 +#: c-api/type.rst:338 msgid "" "The *result* argument may be ``NULL``, in which case *\\*result* is not set. " "Use this if you need only the return value." msgstr "" -#: c-api/type.rst:305 +#: c-api/type.rst:341 msgid "The *token* argument may not be ``NULL``." msgstr "" -#: c-api/type.rst:311 +#: c-api/type.rst:348 msgid "Attempt to assign a version tag to the given type." msgstr "" -#: c-api/type.rst:313 +#: c-api/type.rst:350 msgid "" "Returns 1 if the type already had a valid version tag or a new one was " "assigned, or 0 if a new tag could not be assigned." msgstr "" -#: c-api/type.rst:320 +#: c-api/type.rst:358 +msgid "" +"Return true if instances of *type* support creating weak references, false " +"otherwise. This function always succeeds. *type* must not be ``NULL``." +msgstr "" + +#: c-api/type.rst:362 +msgid ":ref:`weakrefobjects`" +msgstr "" + +#: c-api/type.rst:363 +msgid ":py:mod:`weakref`" +msgstr "" + +#: c-api/type.rst:367 msgid "Creating Heap-Allocated Types" msgstr "" -#: c-api/type.rst:322 +#: c-api/type.rst:369 msgid "" "The following functions and structs are used to create :ref:`heap types " "`." msgstr "" -#: c-api/type.rst:327 +#: c-api/type.rst:374 msgid "" "Create and return a :ref:`heap type ` from the *spec* (see :c:" "macro:`Py_TPFLAGS_HEAPTYPE`)." msgstr "" -#: c-api/type.rst:330 +#: c-api/type.rst:377 msgid "" "The metaclass *metaclass* is used to construct the resulting type object. " "When *metaclass* is ``NULL``, the metaclass is derived from *bases* (or " "*Py_tp_base[s]* slots if *bases* is ``NULL``, see below)." msgstr "" -#: c-api/type.rst:334 +#: c-api/type.rst:381 msgid "" "Metaclasses that override :c:member:`~PyTypeObject.tp_new` are not " "supported, except if ``tp_new`` is ``NULL``." msgstr "" -#: c-api/type.rst:337 +#: c-api/type.rst:384 msgid "" "The *bases* argument can be used to specify base classes; it can either be " -"only one class or a tuple of classes. If *bases* is ``NULL``, the " -"*Py_tp_bases* slot is used instead. If that also is ``NULL``, the " -"*Py_tp_base* slot is used instead. If that also is ``NULL``, the new type " +"only one class or a tuple of classes. If *bases* is ``NULL``, the :c:data:" +"`Py_tp_bases` slot is used instead. If that also is ``NULL``, the :c:data:" +"`Py_tp_base` slot is used instead. If that also is ``NULL``, the new type " "derives from :class:`object`." msgstr "" -#: c-api/type.rst:343 +#: c-api/type.rst:390 msgid "" "The *module* argument can be used to record the module in which the new " "class is defined. It must be a module object or ``NULL``. If not ``NULL``, " @@ -416,11 +462,11 @@ msgid "" "subclasses; it must be specified for each class individually." msgstr "" -#: c-api/type.rst:350 +#: c-api/type.rst:397 msgid "This function calls :c:func:`PyType_Ready` on the new type." msgstr "" -#: c-api/type.rst:352 +#: c-api/type.rst:399 msgid "" "Note that this function does *not* fully match the behavior of calling :py:" "class:`type() ` or using the :keyword:`class` statement. With user-" @@ -429,108 +475,108 @@ msgid "" "Specifically:" msgstr "" -#: c-api/type.rst:359 +#: c-api/type.rst:406 msgid "" ":py:meth:`~object.__new__` is not called on the new class (and it must be " "set to ``type.__new__``)." msgstr "" -#: c-api/type.rst:361 +#: c-api/type.rst:408 msgid ":py:meth:`~object.__init__` is not called on the new class." msgstr "" -#: c-api/type.rst:362 +#: c-api/type.rst:409 msgid ":py:meth:`~object.__init_subclass__` is not called on any bases." msgstr "" -#: c-api/type.rst:363 +#: c-api/type.rst:410 msgid ":py:meth:`~object.__set_name__` is not called on new descriptors." msgstr "" -#: c-api/type.rst:369 +#: c-api/type.rst:417 msgid "Equivalent to ``PyType_FromMetaclass(NULL, module, spec, bases)``." msgstr "" -#: c-api/type.rst:375 +#: c-api/type.rst:423 msgid "" "The function now accepts a single class as the *bases* argument and ``NULL`` " "as the ``tp_doc`` slot." msgstr "" -#: c-api/type.rst:401 +#: c-api/type.rst:450 msgid "" "The function now finds and uses a metaclass corresponding to the provided " "base classes. Previously, only :class:`type` instances were returned." msgstr "" -#: c-api/type.rst:404 c-api/type.rst:424 +#: c-api/type.rst:453 c-api/type.rst:474 msgid "" "The :c:member:`~PyTypeObject.tp_new` of the metaclass is *ignored*. which " "may result in incomplete initialization. Creating classes whose metaclass " "overrides :c:member:`~PyTypeObject.tp_new` is deprecated." msgstr "" -#: c-api/type.rst:411 c-api/type.rst:431 +#: c-api/type.rst:460 c-api/type.rst:481 msgid "" "Creating classes whose metaclass overrides :c:member:`~PyTypeObject.tp_new` " "is no longer allowed." msgstr "" -#: c-api/type.rst:395 +#: c-api/type.rst:444 msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, bases)``." msgstr "" -#: c-api/type.rst:416 +#: c-api/type.rst:466 msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, NULL)``." msgstr "" -#: c-api/type.rst:420 +#: c-api/type.rst:470 msgid "" "The function now finds and uses a metaclass corresponding to the base " "classes provided in *Py_tp_base[s]* slots. Previously, only :class:`type` " "instances were returned." msgstr "" -#: c-api/type.rst:436 +#: c-api/type.rst:487 msgid "" "Make a type immutable: set the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag." msgstr "" -#: c-api/type.rst:438 +#: c-api/type.rst:489 msgid "All base classes of *type* must be immutable." msgstr "" -#: c-api/type.rst:440 +#: c-api/type.rst:491 msgid "On success, return ``0``. On error, set an exception and return ``-1``." msgstr "" -#: c-api/type.rst:443 +#: c-api/type.rst:494 msgid "" "The type must not be used before it's made immutable. For example, type " "instances must not be created before the type is made immutable." msgstr "" -#: c-api/type.rst:459 +#: c-api/type.rst:510 msgid "Structure defining a type's behavior." msgstr "" -#: c-api/type.rst:463 +#: c-api/type.rst:514 msgid "Name of the type, used to set :c:member:`PyTypeObject.tp_name`." msgstr "" -#: c-api/type.rst:467 +#: c-api/type.rst:518 msgid "" "If positive, specifies the size of the instance in bytes. It is used to set :" "c:member:`PyTypeObject.tp_basicsize`." msgstr "" -#: c-api/type.rst:470 +#: c-api/type.rst:521 msgid "" "If zero, specifies that :c:member:`~PyTypeObject.tp_basicsize` should be " "inherited." msgstr "" -#: c-api/type.rst:473 +#: c-api/type.rst:524 msgid "" "If negative, the absolute value specifies how much space instances of the " "class need *in addition* to the superclass. Use :c:func:" @@ -540,17 +586,17 @@ msgid "" "requirements." msgstr "" -#: c-api/type.rst:483 +#: c-api/type.rst:534 msgid "Previously, this field could not be negative." msgstr "" -#: c-api/type.rst:487 +#: c-api/type.rst:538 msgid "" "Size of one element of a variable-size type, in bytes. Used to set :c:member:" "`PyTypeObject.tp_itemsize`. See ``tp_itemsize`` documentation for caveats." msgstr "" -#: c-api/type.rst:491 +#: c-api/type.rst:542 msgid "" "If zero, :c:member:`~PyTypeObject.tp_itemsize` is inherited. Extending " "arbitrary variable-sized classes is dangerous, since some types use a fixed " @@ -559,58 +605,58 @@ msgid "" "only possible in the following situations:" msgstr "" -#: c-api/type.rst:498 +#: c-api/type.rst:549 msgid "" "The base is not variable-sized (its :c:member:`~PyTypeObject.tp_itemsize`)." msgstr "" -#: c-api/type.rst:500 +#: c-api/type.rst:551 msgid "" "The requested :c:member:`PyType_Spec.basicsize` is positive, suggesting that " "the memory layout of the base class is known." msgstr "" -#: c-api/type.rst:502 +#: c-api/type.rst:553 msgid "" "The requested :c:member:`PyType_Spec.basicsize` is zero, suggesting that the " "subclass does not access the instance's memory directly." msgstr "" -#: c-api/type.rst:505 +#: c-api/type.rst:556 msgid "With the :c:macro:`Py_TPFLAGS_ITEMS_AT_END` flag." msgstr "" -#: c-api/type.rst:509 +#: c-api/type.rst:560 msgid "Type flags, used to set :c:member:`PyTypeObject.tp_flags`." msgstr "" -#: c-api/type.rst:511 +#: c-api/type.rst:562 msgid "" "If the ``Py_TPFLAGS_HEAPTYPE`` flag is not set, :c:func:" "`PyType_FromSpecWithBases` sets it automatically." msgstr "" -#: c-api/type.rst:516 +#: c-api/type.rst:567 msgid "" "Array of :c:type:`PyType_Slot` structures. Terminated by the special slot " "value ``{0, NULL}``." msgstr "" -#: c-api/type.rst:519 +#: c-api/type.rst:570 msgid "Each slot ID should be specified at most once." msgstr "" -#: c-api/type.rst:529 +#: c-api/type.rst:580 msgid "" "Structure defining optional functionality of a type, containing a slot ID " "and a value pointer." msgstr "" -#: c-api/type.rst:534 +#: c-api/type.rst:585 msgid "A slot ID." msgstr "" -#: c-api/type.rst:536 +#: c-api/type.rst:587 msgid "" "Slot IDs are named like the field names of the structures :c:type:" "`PyTypeObject`, :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, :c:" @@ -618,162 +664,162 @@ msgid "" "prefix. For example, use:" msgstr "" -#: c-api/type.rst:542 -msgid "``Py_tp_dealloc`` to set :c:member:`PyTypeObject.tp_dealloc`" +#: c-api/type.rst:593 +msgid ":c:data:`Py_tp_dealloc` to set :c:member:`PyTypeObject.tp_dealloc`" msgstr "" -#: c-api/type.rst:543 -msgid "``Py_nb_add`` to set :c:member:`PyNumberMethods.nb_add`" +#: c-api/type.rst:594 +msgid ":c:data:`Py_nb_add` to set :c:member:`PyNumberMethods.nb_add`" msgstr "" -#: c-api/type.rst:544 -msgid "``Py_sq_length`` to set :c:member:`PySequenceMethods.sq_length`" +#: c-api/type.rst:595 +msgid ":c:data:`Py_sq_length` to set :c:member:`PySequenceMethods.sq_length`" msgstr "" -#: c-api/type.rst:546 +#: c-api/type.rst:597 msgid "" "An additional slot is supported that does not correspond to a :c:type:`!" "PyTypeObject` struct field:" msgstr "" -#: c-api/type.rst:549 +#: c-api/type.rst:600 msgid ":c:data:`Py_tp_token`" msgstr "" -#: c-api/type.rst:551 +#: c-api/type.rst:602 msgid "" "The following “offset” fields cannot be set using :c:type:`PyType_Slot`:" msgstr "" -#: c-api/type.rst:553 +#: c-api/type.rst:604 msgid "" ":c:member:`~PyTypeObject.tp_weaklistoffset` (use :c:macro:" "`Py_TPFLAGS_MANAGED_WEAKREF` instead if possible)" msgstr "" -#: c-api/type.rst:555 +#: c-api/type.rst:606 msgid "" ":c:member:`~PyTypeObject.tp_dictoffset` (use :c:macro:" "`Py_TPFLAGS_MANAGED_DICT` instead if possible)" msgstr "" -#: c-api/type.rst:557 +#: c-api/type.rst:608 msgid "" ":c:member:`~PyTypeObject.tp_vectorcall_offset` (use " "``\"__vectorcalloffset__\"`` in :ref:`PyMemberDef `)" msgstr "" -#: c-api/type.rst:561 +#: c-api/type.rst:612 msgid "" "If it is not possible to switch to a ``MANAGED`` flag (for example, for " "vectorcall or to support Python older than 3.12), specify the offset in :c:" -"member:`Py_tp_members `. See :ref:`PyMemberDef " -"documentation ` for details." +"data:`Py_tp_members`. See :ref:`PyMemberDef documentation ` for details." msgstr "" -#: c-api/type.rst:567 +#: c-api/type.rst:618 msgid "" "The following internal fields cannot be set at all when creating a heap type:" msgstr "" -#: c-api/type.rst:570 +#: c-api/type.rst:621 msgid "" ":c:member:`~PyTypeObject.tp_dict`, :c:member:`~PyTypeObject.tp_mro`, :c:" "member:`~PyTypeObject.tp_cache`, :c:member:`~PyTypeObject.tp_subclasses`, " "and :c:member:`~PyTypeObject.tp_weaklist`." msgstr "" -#: c-api/type.rst:576 +#: c-api/type.rst:627 msgid "" "Setting :c:data:`Py_tp_bases` or :c:data:`Py_tp_base` may be problematic on " "some platforms. To avoid issues, use the *bases* argument of :c:func:" "`PyType_FromSpecWithBases` instead." msgstr "" -#: c-api/type.rst:581 +#: c-api/type.rst:632 msgid "Slots in :c:type:`PyBufferProcs` may be set in the unlimited API." msgstr "" -#: c-api/type.rst:584 +#: c-api/type.rst:635 msgid "" ":c:member:`~PyBufferProcs.bf_getbuffer` and :c:member:`~PyBufferProcs." "bf_releasebuffer` are now available under the :ref:`limited API `." msgstr "" -#: c-api/type.rst:589 +#: c-api/type.rst:640 msgid "" -"The field :c:member:`~PyTypeObject.tp_vectorcall` can now set using " -"``Py_tp_vectorcall``. See the field's documentation for details." +"The field :c:member:`~PyTypeObject.tp_vectorcall` can now be set using :c:" +"data:`Py_tp_vectorcall`. See the field's documentation for details." msgstr "" -#: c-api/type.rst:596 +#: c-api/type.rst:647 msgid "" "The desired value of the slot. In most cases, this is a pointer to a " "function." msgstr "" -#: c-api/type.rst:599 +#: c-api/type.rst:650 msgid "*pfunc* values may not be ``NULL``, except for the following slots:" msgstr "" -#: c-api/type.rst:601 -msgid "``Py_tp_doc``" +#: c-api/type.rst:652 +msgid ":c:data:`Py_tp_doc`" msgstr "" -#: c-api/type.rst:602 +#: c-api/type.rst:653 msgid "" ":c:data:`Py_tp_token` (for clarity, prefer :c:data:`Py_TP_USE_SPEC` rather " "than ``NULL``)" msgstr "" -#: c-api/type.rst:607 +#: c-api/type.rst:659 msgid "" "A :c:member:`~PyType_Slot.slot` that records a static memory layout ID for a " "class." msgstr "" -#: c-api/type.rst:610 +#: c-api/type.rst:662 msgid "" "If the :c:type:`PyType_Spec` of the class is statically allocated, the token " "can be set to the spec using the special value :c:data:`Py_TP_USE_SPEC`:" msgstr "" -#: c-api/type.rst:614 +#: c-api/type.rst:666 msgid "" "static PyType_Slot foo_slots[] = {\n" " {Py_tp_token, Py_TP_USE_SPEC}," msgstr "" -#: c-api/type.rst:619 +#: c-api/type.rst:671 msgid "It can also be set to an arbitrary pointer, but you must ensure that:" msgstr "" -#: c-api/type.rst:621 +#: c-api/type.rst:673 msgid "" "The pointer outlives the class, so it's not reused for something else while " "the class exists." msgstr "" -#: c-api/type.rst:623 +#: c-api/type.rst:675 msgid "" "It \"belongs\" to the extension module where the class lives, so it will not " "clash with other extensions." msgstr "" -#: c-api/type.rst:626 +#: c-api/type.rst:678 msgid "" "Use :c:func:`PyType_GetBaseByToken` to check if a class's superclass has a " "given token -- that is, check whether the memory layout is compatible." msgstr "" -#: c-api/type.rst:629 +#: c-api/type.rst:681 msgid "" "To get the token for a given class (without considering superclasses), use :" "c:func:`PyType_GetSlot` with ``Py_tp_token``." msgstr "" -#: c-api/type.rst:638 +#: c-api/type.rst:690 msgid "" "Used as a value with :c:data:`Py_tp_token` to set the token to the class's :" "c:type:`PyType_Spec`. Expands to ``NULL``." diff --git a/c-api/typehints.po b/c-api/typehints.po index 4a178450..cc8493e6 100644 --- a/c-api/typehints.po +++ b/c-api/typehints.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/typeobj.po b/c-api/typeobj.po index 4931341e..059413f4 100644 --- a/c-api/typeobj.po +++ b/c-api/typeobj.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1243,9 +1243,13 @@ msgid "" "the :c:member:`~PyVarObject.ob_size` field." msgstr "" +#: c-api/typeobj.rst:495 +msgid ":c:member:`PyObject.ob_refcnt`" +msgstr "" + #: c-api/typeobj.rst:497 msgid "" -"This is the type object's reference count, initialized to ``1`` by the " +"The type object's reference count is initialized to ``1`` by the " "``PyObject_HEAD_INIT`` macro. Note that for :ref:`statically allocated type " "objects `, the type's instances (objects whose :c:member:" "`~PyObject.ob_type` points back to the type) do *not* count as references. " @@ -1253,24 +1257,28 @@ msgid "" "instances *do* count as references." msgstr "" -#: c-api/typeobj.rst:527 c-api/typeobj.rst:588 c-api/typeobj.rst:808 -#: c-api/typeobj.rst:870 c-api/typeobj.rst:905 c-api/typeobj.rst:946 -#: c-api/typeobj.rst:970 c-api/typeobj.rst:1025 c-api/typeobj.rst:1066 -#: c-api/typeobj.rst:1111 c-api/typeobj.rst:1167 c-api/typeobj.rst:1188 -#: c-api/typeobj.rst:1212 c-api/typeobj.rst:1253 c-api/typeobj.rst:1284 -#: c-api/typeobj.rst:1350 c-api/typeobj.rst:1390 c-api/typeobj.rst:1442 -#: c-api/typeobj.rst:1559 c-api/typeobj.rst:1768 c-api/typeobj.rst:1829 -#: c-api/typeobj.rst:1865 c-api/typeobj.rst:1894 c-api/typeobj.rst:1956 -#: c-api/typeobj.rst:2000 c-api/typeobj.rst:2073 c-api/typeobj.rst:2130 -#: c-api/typeobj.rst:2191 c-api/typeobj.rst:2232 c-api/typeobj.rst:2259 -#: c-api/typeobj.rst:2290 c-api/typeobj.rst:2490 +#: c-api/typeobj.rst:527 c-api/typeobj.rst:587 c-api/typeobj.rst:809 +#: c-api/typeobj.rst:873 c-api/typeobj.rst:910 c-api/typeobj.rst:953 +#: c-api/typeobj.rst:977 c-api/typeobj.rst:1036 c-api/typeobj.rst:1081 +#: c-api/typeobj.rst:1128 c-api/typeobj.rst:1184 c-api/typeobj.rst:1205 +#: c-api/typeobj.rst:1229 c-api/typeobj.rst:1270 c-api/typeobj.rst:1301 +#: c-api/typeobj.rst:1367 c-api/typeobj.rst:1407 c-api/typeobj.rst:1459 +#: c-api/typeobj.rst:1580 c-api/typeobj.rst:1793 c-api/typeobj.rst:1856 +#: c-api/typeobj.rst:1896 c-api/typeobj.rst:1929 c-api/typeobj.rst:1993 +#: c-api/typeobj.rst:2041 c-api/typeobj.rst:2116 c-api/typeobj.rst:2177 +#: c-api/typeobj.rst:2242 c-api/typeobj.rst:2285 c-api/typeobj.rst:2312 +#: c-api/typeobj.rst:2345 c-api/typeobj.rst:2549 msgid "**Inheritance:**" msgstr "" -#: c-api/typeobj.rst:546 c-api/typeobj.rst:590 +#: c-api/typeobj.rst:545 c-api/typeobj.rst:589 msgid "This field is not inherited by subtypes." msgstr "" +#: c-api/typeobj.rst:509 +msgid ":c:member:`PyObject.ob_type`" +msgstr "" + #: c-api/typeobj.rst:511 msgid "" "This is the type's type, in other words its metatype. It is initialized by " @@ -1295,8 +1303,8 @@ msgid "" "class. :c:func:`PyType_Ready` will not change this field if it is non-zero." msgstr "" -#: c-api/typeobj.rst:810 c-api/typeobj.rst:1027 c-api/typeobj.rst:1831 -#: c-api/typeobj.rst:1984 c-api/typeobj.rst:2075 c-api/typeobj.rst:2434 +#: c-api/typeobj.rst:811 c-api/typeobj.rst:1038 c-api/typeobj.rst:1858 +#: c-api/typeobj.rst:2023 c-api/typeobj.rst:2118 c-api/typeobj.rst:2491 msgid "This field is inherited by subtypes." msgstr "" @@ -1304,6 +1312,10 @@ msgstr "" msgid "PyVarObject Slots" msgstr "" +#: c-api/typeobj.rst:535 +msgid ":c:member:`PyVarObject.ob_size`" +msgstr "" + #: c-api/typeobj.rst:537 msgid "" "For :ref:`statically allocated type objects `, this should be " @@ -1312,16 +1324,14 @@ msgid "" msgstr "" #: c-api/typeobj.rst:541 -msgid "" -"This field should be accessed using the :c:func:`Py_SIZE()` and :c:func:" -"`Py_SET_SIZE()` macros." +msgid "This field should be accessed using the :c:func:`Py_SIZE()` macro." msgstr "" -#: c-api/typeobj.rst:550 +#: c-api/typeobj.rst:549 msgid "PyTypeObject Slots" msgstr "" -#: c-api/typeobj.rst:552 +#: c-api/typeobj.rst:551 msgid "" "Each slot has a section describing inheritance. If :c:func:`PyType_Ready` " "may set a value when the field is set to ``NULL`` then there will also be a " @@ -1329,7 +1339,7 @@ msgid "" "`PyBaseObject_Type` and :c:data:`PyType_Type` effectively act as defaults.)" msgstr "" -#: c-api/typeobj.rst:559 +#: c-api/typeobj.rst:558 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 " @@ -1341,14 +1351,14 @@ msgid "" "tp_name` initializer ``\"P.Q.M.T\"``." msgstr "" -#: c-api/typeobj.rst:567 +#: c-api/typeobj.rst:566 msgid "" "For :ref:`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 "" -#: c-api/typeobj.rst:572 +#: c-api/typeobj.rst:571 msgid "" "For :ref:`statically allocated type objects `, the *tp_name* " "field should contain a dot. Everything before the last dot is made " @@ -1356,7 +1366,7 @@ msgid "" "the last dot is made accessible as the :attr:`~type.__name__` attribute." msgstr "" -#: c-api/typeobj.rst:578 +#: c-api/typeobj.rst:577 msgid "" "If no dot is present, the entire :c:member:`~PyTypeObject.tp_name` field is " "made accessible as the :attr:`~type.__name__` attribute, and the :attr:" @@ -1366,19 +1376,19 @@ msgid "" "created with pydoc." msgstr "" -#: c-api/typeobj.rst:584 +#: c-api/typeobj.rst:583 msgid "" "This field must not be ``NULL``. It is the only required field in :c:func:" "`PyTypeObject` (other than potentially :c:member:`~PyTypeObject." "tp_itemsize`)." msgstr "" -#: c-api/typeobj.rst:596 +#: c-api/typeobj.rst:595 msgid "" "These fields allow calculating the size in bytes of instances of the type." msgstr "" -#: c-api/typeobj.rst:598 +#: c-api/typeobj.rst:597 msgid "" "There are two kinds of types: types with fixed-length instances have a zero :" "c:member:`!tp_itemsize` field, types with variable-length instances have a " @@ -1388,7 +1398,7 @@ msgid "" "`PyUnstable_Object_GC_NewWithExtraData`.)" msgstr "" -#: c-api/typeobj.rst:605 +#: c-api/typeobj.rst:604 msgid "" "For a type with variable-length instances, the instances must have an :c:" "member:`~PyVarObject.ob_size` field, and the instance size is :c:member:`!" @@ -1396,7 +1406,7 @@ msgid "" "\"length\" of the object." msgstr "" -#: c-api/typeobj.rst:610 +#: c-api/typeobj.rst:609 msgid "" "Functions like :c:func:`PyObject_NewVar` will take the value of N as an " "argument, and store in the instance's :c:member:`~PyVarObject.ob_size` " @@ -1407,13 +1417,13 @@ msgid "" "`PyLong_Export`." msgstr "" -#: c-api/typeobj.rst:620 +#: c-api/typeobj.rst:619 msgid "" "The :c:member:`~PyVarObject.ob_size` field should be accessed using the :c:" "func:`Py_SIZE()` and :c:func:`Py_SET_SIZE()` macros." msgstr "" -#: c-api/typeobj.rst:623 +#: c-api/typeobj.rst:622 msgid "" "Also, the presence of an :c:member:`~PyVarObject.ob_size` field in the " "instance layout doesn't mean that the instance structure is variable-length. " @@ -1423,13 +1433,13 @@ msgid "" "`PyList_Size` instead.)" msgstr "" -#: c-api/typeobj.rst:630 +#: c-api/typeobj.rst:629 msgid "" "The :c:member:`!tp_basicsize` includes size needed for data of the type's :c:" "member:`~PyTypeObject.tp_base`, plus any extra data needed by each instance." msgstr "" -#: c-api/typeobj.rst:634 +#: c-api/typeobj.rst:633 msgid "" "The correct way to set :c:member:`!tp_basicsize` is to use the ``sizeof`` " "operator on the struct used to declare the instance layout. This struct must " @@ -1438,7 +1448,7 @@ msgid "" "tp_basicsize`." msgstr "" -#: c-api/typeobj.rst:640 +#: c-api/typeobj.rst:639 msgid "" "Since every type is a subtype of :py:type:`object`, this struct must " "include :c:type:`PyObject` or :c:type:`PyVarObject` (depending on whether :c:" @@ -1447,23 +1457,23 @@ msgid "" "respectively." msgstr "" -#: c-api/typeobj.rst:646 +#: c-api/typeobj.rst:645 msgid "" "The basic size does not include the GC header size, as that header is not " "part of :c:macro:`PyObject_HEAD`." msgstr "" -#: c-api/typeobj.rst:649 +#: c-api/typeobj.rst:648 msgid "" "For cases where struct used to declare the base type is unknown, see :c:" "member:`PyType_Spec.basicsize` and :c:func:`PyType_FromMetaclass`." msgstr "" -#: c-api/typeobj.rst:652 +#: c-api/typeobj.rst:651 msgid "Notes about alignment:" msgstr "" -#: c-api/typeobj.rst:654 +#: c-api/typeobj.rst:653 msgid "" ":c:member:`!tp_basicsize` must be a multiple of ``_Alignof(PyObject)``. When " "using ``sizeof`` on a ``struct`` that includes :c:macro:`PyObject_HEAD`, as " @@ -1472,7 +1482,7 @@ msgid "" "you." msgstr "" -#: c-api/typeobj.rst:659 +#: c-api/typeobj.rst:658 msgid "" "If the variable items require a particular alignment, :c:member:`!" "tp_basicsize` and :c:member:`!tp_itemsize` must each be a multiple of that " @@ -1480,14 +1490,14 @@ msgid "" "your responsibility that both fields are a multiple of ``_Alignof(double)``." msgstr "" -#: c-api/typeobj.rst:668 +#: c-api/typeobj.rst:667 msgid "" "These fields are inherited separately by subtypes. (That is, if the field is " "set to zero, :c:func:`PyType_Ready` will copy the value from the base type, " "indicating that the instances do not need additional storage.)" msgstr "" -#: c-api/typeobj.rst:673 +#: c-api/typeobj.rst:672 msgid "" "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 " @@ -1495,16 +1505,16 @@ msgid "" "implementation of the base type)." msgstr "" -#: c-api/typeobj.rst:680 +#: c-api/typeobj.rst:681 msgid "" "A pointer to the instance destructor function. The function signature is::" msgstr "" -#: c-api/typeobj.rst:682 +#: c-api/typeobj.rst:683 msgid "void tp_dealloc(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:684 +#: c-api/typeobj.rst:685 msgid "" "The destructor function should remove all references which the instance owns " "(e.g., call :c:func:`Py_CLEAR`), free all memory buffers owned by the " @@ -1512,7 +1522,7 @@ msgid "" "free the object itself." msgstr "" -#: c-api/typeobj.rst:689 +#: c-api/typeobj.rst:690 msgid "" "If you may call functions that may set the error indicator, you must use :c:" "func:`PyErr_GetRaisedException` and :c:func:`PyErr_SetRaisedException` to " @@ -1520,7 +1530,7 @@ msgid "" "could have occurred while processing a different error):" msgstr "" -#: c-api/typeobj.rst:694 +#: c-api/typeobj.rst:695 msgid "" "static void\n" "foo_dealloc(foo_object *self)\n" @@ -1532,53 +1542,53 @@ msgid "" "}" msgstr "" -#: c-api/typeobj.rst:705 +#: c-api/typeobj.rst:706 msgid "" "The dealloc handler itself must not raise an exception; if it hits an error " "case it should call :c:func:`PyErr_FormatUnraisable` to log (and clear) an " "unraisable exception." msgstr "" -#: c-api/typeobj.rst:709 +#: c-api/typeobj.rst:710 msgid "No guarantees are made about when an object is destroyed, except:" msgstr "" -#: c-api/typeobj.rst:711 +#: c-api/typeobj.rst:712 msgid "" "Python will destroy an object immediately or some time after the final " "reference to the object is deleted, unless its finalizer (:c:member:" "`~PyTypeObject.tp_finalize`) subsequently resurrects the object." msgstr "" -#: c-api/typeobj.rst:715 +#: c-api/typeobj.rst:716 msgid "" "An object will not be destroyed while it is being automatically finalized (:" "c:member:`~PyTypeObject.tp_finalize`) or automatically cleared (:c:member:" "`~PyTypeObject.tp_clear`)." msgstr "" -#: c-api/typeobj.rst:719 +#: c-api/typeobj.rst:720 msgid "" "CPython currently destroys an object immediately from :c:func:`Py_DECREF` " "when the new reference count is zero, but this may change in a future " "version." msgstr "" -#: c-api/typeobj.rst:723 +#: c-api/typeobj.rst:724 msgid "" "It is recommended to call :c:func:`PyObject_CallFinalizerFromDealloc` at the " "beginning of :c:member:`!tp_dealloc` to guarantee that the object is always " "finalized before destruction." msgstr "" -#: c-api/typeobj.rst:727 +#: c-api/typeobj.rst:728 msgid "" "If the type supports garbage collection (the :c:macro:`Py_TPFLAGS_HAVE_GC` " "flag is set), the destructor should call :c:func:`PyObject_GC_UnTrack` " "before clearing any member fields." msgstr "" -#: c-api/typeobj.rst:731 +#: c-api/typeobj.rst:732 msgid "" "It is permissible to call :c:member:`~PyTypeObject.tp_clear` from :c:member:" "`!tp_dealloc` to reduce code duplication and to guarantee that the object is " @@ -1586,7 +1596,7 @@ msgid "" "have already been called." msgstr "" -#: c-api/typeobj.rst:736 +#: c-api/typeobj.rst:737 msgid "" "If the type is heap allocated (:c:macro:`Py_TPFLAGS_HEAPTYPE`), the " "deallocator should release the owned reference to its type object (via :c:" @@ -1594,7 +1604,7 @@ msgid "" "below.::" msgstr "" -#: c-api/typeobj.rst:741 +#: c-api/typeobj.rst:742 msgid "" "static void\n" "foo_dealloc(PyObject *op)\n" @@ -1606,7 +1616,7 @@ msgid "" "}" msgstr "" -#: c-api/typeobj.rst:750 +#: c-api/typeobj.rst:751 msgid "" ":c:member:`!tp_dealloc` must leave the exception status unchanged. If it " "needs to call something that might raise an exception, the exception state " @@ -1614,11 +1624,11 @@ msgid "" "with :c:func:`PyErr_WriteUnraisable`)." msgstr "" -#: c-api/typeobj.rst:755 +#: c-api/typeobj.rst:756 msgid "Example::" msgstr "" -#: c-api/typeobj.rst:757 +#: c-api/typeobj.rst:758 msgid "" "static void\n" "foo_dealloc(PyObject *self)\n" @@ -1660,7 +1670,7 @@ msgid "" "}" msgstr "" -#: c-api/typeobj.rst:796 +#: c-api/typeobj.rst:797 msgid "" ":c:member:`!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 " @@ -1673,33 +1683,33 @@ msgid "" "violate any assumptions of the library." msgstr "" -#: c-api/typeobj.rst:1714 c-api/typeobj.rst:2447 +#: c-api/typeobj.rst:1737 c-api/typeobj.rst:2504 msgid "" ":ref:`life-cycle` for details about how this slot relates to other slots." msgstr "" -#: c-api/typeobj.rst:819 +#: c-api/typeobj.rst:820 msgid "" "An optional offset to a per-instance function that implements calling the " "object using the :ref:`vectorcall protocol `, a more efficient " "alternative of the simpler :c:member:`~PyTypeObject.tp_call`." msgstr "" -#: c-api/typeobj.rst:824 +#: c-api/typeobj.rst:825 msgid "" "This field is only used if the flag :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` is " "set. If so, this must be a positive integer containing the offset in the " "instance of a :c:type:`vectorcallfunc` pointer." msgstr "" -#: c-api/typeobj.rst:828 +#: c-api/typeobj.rst:829 msgid "" "The *vectorcallfunc* pointer may be ``NULL``, in which case the instance " "behaves as if :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` was not set: calling the " "instance falls back to :c:member:`~PyTypeObject.tp_call`." msgstr "" -#: c-api/typeobj.rst:832 +#: c-api/typeobj.rst:833 msgid "" "Any class that sets ``Py_TPFLAGS_HAVE_VECTORCALL`` must also set :c:member:" "`~PyTypeObject.tp_call` and make sure its behaviour is consistent with the " @@ -1707,13 +1717,13 @@ msgid "" "`PyVectorcall_Call`." msgstr "" -#: c-api/typeobj.rst:839 +#: c-api/typeobj.rst:840 msgid "" "Before version 3.8, this slot was named ``tp_print``. In Python 2.x, it was " "used for printing to a file. In Python 3.0 to 3.7, it was unused." msgstr "" -#: c-api/typeobj.rst:845 +#: c-api/typeobj.rst:846 msgid "" "Before version 3.12, it was not recommended for :ref:`mutable heap types " "` to implement the vectorcall protocol. When a user sets :attr:" @@ -1723,7 +1733,7 @@ msgid "" "`Py_TPFLAGS_HAVE_VECTORCALL` flag." msgstr "" -#: c-api/typeobj.rst:855 +#: c-api/typeobj.rst:856 msgid "" "This field is always inherited. However, the :c:macro:" "`Py_TPFLAGS_HAVE_VECTORCALL` flag is not always inherited. If it's not set, " @@ -1731,11 +1741,11 @@ msgid "" "func:`PyVectorcall_Call` is explicitly called." msgstr "" -#: c-api/typeobj.rst:864 +#: c-api/typeobj.rst:867 msgid "An optional pointer to the get-attribute-string function." msgstr "" -#: c-api/typeobj.rst:866 +#: c-api/typeobj.rst:869 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, " @@ -1743,13 +1753,13 @@ msgid "" "attribute name." msgstr "" -#: c-api/typeobj.rst:1068 +#: c-api/typeobj.rst:1083 msgid "" "Group: :c:member:`~PyTypeObject.tp_getattr`, :c:member:`~PyTypeObject." "tp_getattro`" msgstr "" -#: c-api/typeobj.rst:874 +#: c-api/typeobj.rst:877 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_getattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " @@ -1758,12 +1768,12 @@ msgid "" "tp_getattro` are both ``NULL``." msgstr "" -#: c-api/typeobj.rst:1081 +#: c-api/typeobj.rst:1098 msgid "" "An optional pointer to the function for setting and deleting attributes." msgstr "" -#: c-api/typeobj.rst:883 +#: c-api/typeobj.rst:888 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, " @@ -1771,13 +1781,13 @@ msgid "" "attribute name." msgstr "" -#: c-api/typeobj.rst:1094 +#: c-api/typeobj.rst:1111 msgid "" "Group: :c:member:`~PyTypeObject.tp_setattr`, :c:member:`~PyTypeObject." "tp_setattro`" msgstr "" -#: c-api/typeobj.rst:891 +#: c-api/typeobj.rst:896 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_setattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` " @@ -1786,38 +1796,38 @@ msgid "" "tp_setattro` are both ``NULL``." msgstr "" -#: c-api/typeobj.rst:898 +#: c-api/typeobj.rst:903 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 "" -#: c-api/typeobj.rst:902 +#: c-api/typeobj.rst:907 msgid "Formerly known as ``tp_compare`` and ``tp_reserved``." msgstr "" -#: c-api/typeobj.rst:907 +#: c-api/typeobj.rst:912 msgid "" "The :c:member:`~PyTypeObject.tp_as_async` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: c-api/typeobj.rst:915 +#: c-api/typeobj.rst:922 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`repr`." msgstr "" -#: c-api/typeobj.rst:918 +#: c-api/typeobj.rst:925 msgid "The signature is the same as for :c:func:`PyObject_Repr`::" msgstr "" -#: c-api/typeobj.rst:920 +#: c-api/typeobj.rst:927 msgid "PyObject *tp_repr(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:922 +#: c-api/typeobj.rst:929 msgid "" "The function must return a string or a Unicode object. Ideally, this " "function should return a string that, when passed to :func:`eval`, given a " @@ -1826,80 +1836,80 @@ msgid "" "``'>'`` from which both the type and the value of the object can be deduced." msgstr "" -#: c-api/typeobj.rst:1012 c-api/typeobj.rst:1074 c-api/typeobj.rst:1142 -#: c-api/typeobj.rst:1811 c-api/typeobj.rst:1961 c-api/typeobj.rst:2077 -#: c-api/typeobj.rst:2136 c-api/typeobj.rst:2195 +#: c-api/typeobj.rst:1021 c-api/typeobj.rst:1089 c-api/typeobj.rst:1159 +#: c-api/typeobj.rst:1836 c-api/typeobj.rst:1998 c-api/typeobj.rst:2120 +#: c-api/typeobj.rst:2183 c-api/typeobj.rst:2246 msgid "**Default:**" msgstr "" -#: c-api/typeobj.rst:935 +#: c-api/typeobj.rst:942 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 "" -#: c-api/typeobj.rst:942 +#: c-api/typeobj.rst:949 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 "" -#: c-api/typeobj.rst:948 +#: c-api/typeobj.rst:955 msgid "" "The :c:member:`~PyTypeObject.tp_as_number` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: c-api/typeobj.rst:954 +#: c-api/typeobj.rst:961 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 "" -#: c-api/typeobj.rst:960 +#: c-api/typeobj.rst:967 msgid "" "The :c:member:`~PyTypeObject.tp_as_sequence` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: c-api/typeobj.rst:966 +#: c-api/typeobj.rst:973 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 "" -#: c-api/typeobj.rst:972 +#: c-api/typeobj.rst:979 msgid "" "The :c:member:`~PyTypeObject.tp_as_mapping` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: c-api/typeobj.rst:980 +#: c-api/typeobj.rst:989 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`hash`." msgstr "" -#: c-api/typeobj.rst:983 +#: c-api/typeobj.rst:992 msgid "The signature is the same as for :c:func:`PyObject_Hash`::" msgstr "" -#: c-api/typeobj.rst:985 +#: c-api/typeobj.rst:994 msgid "Py_hash_t tp_hash(PyObject *);" msgstr "" -#: c-api/typeobj.rst:987 +#: c-api/typeobj.rst:996 msgid "" "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 "" -#: c-api/typeobj.rst:991 +#: c-api/typeobj.rst:1000 msgid "" "When this field is not set (*and* :c:member:`~PyTypeObject.tp_richcompare` " "is not set), an attempt to take the hash of the object raises :exc:" @@ -1907,7 +1917,7 @@ msgid "" "`PyObject_HashNotImplemented`." msgstr "" -#: c-api/typeobj.rst:995 +#: c-api/typeobj.rst:1004 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 " @@ -1918,13 +1928,13 @@ msgid "" "`PyObject_HashNotImplemented`." msgstr "" -#: c-api/typeobj.rst:1770 +#: c-api/typeobj.rst:1795 msgid "" "Group: :c:member:`~PyTypeObject.tp_hash`, :c:member:`~PyTypeObject." "tp_richcompare`" msgstr "" -#: c-api/typeobj.rst:1007 +#: c-api/typeobj.rst:1016 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_richcompare`: a subtype inherits both of :c:member:`~PyTypeObject." @@ -1933,22 +1943,22 @@ msgid "" "are both ``NULL``." msgstr "" -#: c-api/typeobj.rst:1014 +#: c-api/typeobj.rst:1023 msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericHash`." msgstr "" -#: c-api/typeobj.rst:1019 +#: c-api/typeobj.rst:1030 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 "" -#: c-api/typeobj.rst:1023 +#: c-api/typeobj.rst:1034 msgid "PyObject *tp_call(PyObject *self, PyObject *args, PyObject *kwargs);" msgstr "" -#: c-api/typeobj.rst:1032 +#: c-api/typeobj.rst:1045 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 " @@ -1957,15 +1967,15 @@ msgid "" "this handler.)" msgstr "" -#: c-api/typeobj.rst:1037 +#: c-api/typeobj.rst:1050 msgid "The signature is the same as for :c:func:`PyObject_Str`::" msgstr "" -#: c-api/typeobj.rst:1039 +#: c-api/typeobj.rst:1052 msgid "PyObject *tp_str(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:1041 +#: c-api/typeobj.rst:1054 msgid "" "The function must return a string or a Unicode object. It should be a " "\"friendly\" string representation of the object, as this is the " @@ -1973,32 +1983,32 @@ msgid "" "function." msgstr "" -#: c-api/typeobj.rst:1051 +#: c-api/typeobj.rst:1064 msgid "" "When this field is not set, :c:func:`PyObject_Repr` is called to return a " "string representation." msgstr "" -#: c-api/typeobj.rst:1057 +#: c-api/typeobj.rst:1072 msgid "An optional pointer to the get-attribute function." msgstr "" -#: c-api/typeobj.rst:1059 +#: c-api/typeobj.rst:1074 msgid "The signature is the same as for :c:func:`PyObject_GetAttr`::" msgstr "" -#: c-api/typeobj.rst:1061 +#: c-api/typeobj.rst:1076 msgid "PyObject *tp_getattro(PyObject *self, PyObject *attr);" msgstr "" -#: c-api/typeobj.rst:1063 +#: c-api/typeobj.rst:1078 msgid "" "It is usually convenient to set this field to :c:func:" "`PyObject_GenericGetAttr`, which implements the normal way of looking for " "object attributes." msgstr "" -#: c-api/typeobj.rst:1070 +#: c-api/typeobj.rst:1085 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_getattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " @@ -2007,19 +2017,19 @@ msgid "" "tp_getattro` are both ``NULL``." msgstr "" -#: c-api/typeobj.rst:1076 +#: c-api/typeobj.rst:1091 msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericGetAttr`." msgstr "" -#: c-api/typeobj.rst:1083 +#: c-api/typeobj.rst:1100 msgid "The signature is the same as for :c:func:`PyObject_SetAttr`::" msgstr "" -#: c-api/typeobj.rst:1085 +#: c-api/typeobj.rst:1102 msgid "int tp_setattro(PyObject *self, PyObject *attr, PyObject *value);" msgstr "" -#: c-api/typeobj.rst:1087 +#: c-api/typeobj.rst:1104 msgid "" "In addition, setting *value* to ``NULL`` to delete an attribute must be " "supported. It is usually convenient to set this field to :c:func:" @@ -2027,7 +2037,7 @@ msgid "" "attributes." msgstr "" -#: c-api/typeobj.rst:1096 +#: c-api/typeobj.rst:1113 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_setattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` " @@ -2036,24 +2046,24 @@ msgid "" "tp_setattro` are both ``NULL``." msgstr "" -#: c-api/typeobj.rst:1102 +#: c-api/typeobj.rst:1119 msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericSetAttr`." msgstr "" -#: c-api/typeobj.rst:1107 +#: c-api/typeobj.rst:1124 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 "" -#: c-api/typeobj.rst:1113 +#: c-api/typeobj.rst:1130 msgid "" "The :c:member:`~PyTypeObject.tp_as_buffer` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: c-api/typeobj.rst:1119 +#: c-api/typeobj.rst:1136 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 " @@ -2065,7 +2075,7 @@ msgid "" "accessed and must be considered to have a zero or ``NULL`` value instead." msgstr "" -#: c-api/typeobj.rst:1129 +#: c-api/typeobj.rst:1146 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 " @@ -2080,17 +2090,17 @@ msgid "" "the subtype exist and have ``NULL`` values." msgstr "" -#: c-api/typeobj.rst:1144 +#: c-api/typeobj.rst:1161 msgid "" ":c:data:`PyBaseObject_Type` uses ``Py_TPFLAGS_DEFAULT | " "Py_TPFLAGS_BASETYPE``." msgstr "" -#: c-api/typeobj.rst:1147 +#: c-api/typeobj.rst:1164 msgid "**Bit Masks:**" msgstr "" -#: c-api/typeobj.rst:1151 +#: c-api/typeobj.rst:1168 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." @@ -2099,7 +2109,7 @@ msgid "" "zero." msgstr "" -#: c-api/typeobj.rst:1158 +#: c-api/typeobj.rst:1175 msgid "" "This bit is set when the type object itself is allocated on the heap, for " "example, types created dynamically using :c:func:`PyType_FromSpec`. In this " @@ -2112,30 +2122,30 @@ msgid "" "reference cycle with their own module object." msgstr "" -#: c-api/typeobj.rst:1180 c-api/typeobj.rst:1200 c-api/typeobj.rst:1232 +#: c-api/typeobj.rst:1197 c-api/typeobj.rst:1217 c-api/typeobj.rst:1249 msgid "???" msgstr "" -#: c-api/typeobj.rst:1174 +#: c-api/typeobj.rst:1191 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 "" -#: c-api/typeobj.rst:1185 +#: c-api/typeobj.rst:1202 msgid "" "This bit is set when the type object has been fully initialized by :c:func:" "`PyType_Ready`." msgstr "" -#: c-api/typeobj.rst:1195 +#: c-api/typeobj.rst:1212 msgid "" "This bit is set while :c:func:`PyType_Ready` is in the process of " "initializing the type object." msgstr "" -#: c-api/typeobj.rst:1205 +#: c-api/typeobj.rst:1222 msgid "" "This bit is set when the object supports garbage collection. If this bit is " "set, memory for new instances (see :c:member:`~PyTypeObject.tp_alloc`) must " @@ -2145,13 +2155,13 @@ msgid "" "`supporting-cycle-detection`." msgstr "" -#: c-api/typeobj.rst:1561 c-api/typeobj.rst:1705 +#: c-api/typeobj.rst:1582 c-api/typeobj.rst:1728 msgid "" "Group: :c:macro:`Py_TPFLAGS_HAVE_GC`, :c:member:`~PyTypeObject." "tp_traverse`, :c:member:`~PyTypeObject.tp_clear`" msgstr "" -#: c-api/typeobj.rst:1216 +#: c-api/typeobj.rst:1233 msgid "" "The :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is inherited together with the :c:" "member:`~PyTypeObject.tp_traverse` and :c:member:`~PyTypeObject.tp_clear` " @@ -2161,199 +2171,200 @@ msgid "" "values." msgstr "" -#: c-api/typeobj.rst:1226 +#: c-api/typeobj.rst:1243 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: :c:macro:`Py_TPFLAGS_HAVE_STACKLESS_EXTENSION`." msgstr "" -#: c-api/typeobj.rst:1237 +#: c-api/typeobj.rst:1254 msgid "This bit indicates that objects behave like unbound methods." msgstr "" -#: c-api/typeobj.rst:1239 +#: c-api/typeobj.rst:1256 msgid "If this flag is set for ``type(meth)``, then:" msgstr "" -#: c-api/typeobj.rst:1241 +#: c-api/typeobj.rst:1258 msgid "" "``meth.__get__(obj, cls)(*args, **kwds)`` (with ``obj`` not None) must be " "equivalent to ``meth(obj, *args, **kwds)``." msgstr "" -#: c-api/typeobj.rst:1244 +#: c-api/typeobj.rst:1261 msgid "" "``meth.__get__(None, cls)(*args, **kwds)`` must be equivalent to " "``meth(*args, **kwds)``." msgstr "" -#: c-api/typeobj.rst:1247 +#: c-api/typeobj.rst:1264 msgid "" "This flag enables an optimization for typical method calls like ``obj." "meth()``: it avoids creating a temporary \"bound method\" object for ``obj." "meth``." msgstr "" -#: c-api/typeobj.rst:1255 +#: c-api/typeobj.rst:1272 msgid "" "This flag is never inherited by types without the :c:macro:" "`Py_TPFLAGS_IMMUTABLETYPE` flag set. For extension types, it is inherited " "whenever :c:member:`~PyTypeObject.tp_descr_get` is inherited." msgstr "" -#: c-api/typeobj.rst:1261 +#: c-api/typeobj.rst:1278 msgid "" "This bit indicates that instances of the class have a :attr:`~object." "__dict__` attribute, and that the space for the dictionary is managed by the " "VM." msgstr "" -#: c-api/typeobj.rst:1264 +#: c-api/typeobj.rst:1281 msgid "If this flag is set, :c:macro:`Py_TPFLAGS_HAVE_GC` should also be set." msgstr "" -#: c-api/typeobj.rst:1266 +#: c-api/typeobj.rst:1283 msgid "" "The type traverse function must call :c:func:`PyObject_VisitManagedDict` and " "its clear function must call :c:func:`PyObject_ClearManagedDict`." msgstr "" -#: c-api/typeobj.rst:1273 +#: c-api/typeobj.rst:1290 msgid "" "This flag is inherited unless the :c:member:`~PyTypeObject.tp_dictoffset` " "field is set in a superclass." msgstr "" -#: c-api/typeobj.rst:1279 +#: c-api/typeobj.rst:1296 msgid "" "This bit indicates that instances of the class should be weakly " "referenceable." msgstr "" -#: c-api/typeobj.rst:1286 +#: c-api/typeobj.rst:1303 msgid "" "This flag is inherited unless the :c:member:`~PyTypeObject." "tp_weaklistoffset` field is set in a superclass." msgstr "" -#: c-api/typeobj.rst:1292 +#: c-api/typeobj.rst:1309 msgid "" "Only usable with variable-size types, i.e. ones with non-zero :c:member:" "`~PyTypeObject.tp_itemsize`." msgstr "" -#: c-api/typeobj.rst:1295 +#: c-api/typeobj.rst:1312 msgid "" "Indicates that the variable-sized portion of an instance of this type is at " "the end of the instance's memory area, at an offset of ``Py_TYPE(obj)-" ">tp_basicsize`` (which may be different in each subclass)." msgstr "" -#: c-api/typeobj.rst:1300 +#: c-api/typeobj.rst:1317 msgid "" "When setting this flag, be sure that all superclasses either use this memory " "layout, or are not variable-sized. Python does not check this." msgstr "" -#: c-api/typeobj.rst:1308 +#: c-api/typeobj.rst:1325 msgid "This flag is inherited." msgstr "" -#: c-api/typeobj.rst:1322 +#: c-api/typeobj.rst:1339 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." +"Functions such as :c:func:`PyLong_Check` will call :c:func:" +"`PyType_FastSubclass` with one of these flags 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 "" -#: c-api/typeobj.rst:1333 +#: c-api/typeobj.rst:1350 msgid "" "This bit is set when the :c:member:`~PyTypeObject.tp_finalize` slot is " "present in the type structure." msgstr "" -#: c-api/typeobj.rst:1338 +#: c-api/typeobj.rst:1355 msgid "" "This flag isn't necessary anymore, as the interpreter assumes the :c:member:" "`~PyTypeObject.tp_finalize` slot is always present in the type structure." msgstr "" -#: c-api/typeobj.rst:1346 +#: c-api/typeobj.rst:1363 msgid "" "This bit is set when the class implements the :ref:`vectorcall protocol " "`. See :c:member:`~PyTypeObject.tp_vectorcall_offset` for " "details." msgstr "" -#: c-api/typeobj.rst:1352 +#: c-api/typeobj.rst:1369 msgid "" "This bit is inherited if :c:member:`~PyTypeObject.tp_call` is also inherited." msgstr "" -#: c-api/typeobj.rst:1359 +#: c-api/typeobj.rst:1376 msgid "" "This flag is now removed from a class when the class's :py:meth:`~object." "__call__` method is reassigned." msgstr "" -#: c-api/typeobj.rst:1362 +#: c-api/typeobj.rst:1379 msgid "This flag can now be inherited by mutable classes." msgstr "" -#: c-api/typeobj.rst:1366 +#: c-api/typeobj.rst:1383 msgid "" "This bit is set for type objects that are immutable: type attributes cannot " "be set nor deleted." msgstr "" -#: c-api/typeobj.rst:1368 +#: c-api/typeobj.rst:1385 msgid "" ":c:func:`PyType_Ready` automatically applies this flag to :ref:`static types " "`." msgstr "" -#: c-api/typeobj.rst:1373 +#: c-api/typeobj.rst:1390 msgid "This flag is not inherited." msgstr "" -#: c-api/typeobj.rst:1379 +#: c-api/typeobj.rst:1396 msgid "" "Disallow creating instances of the type: set :c:member:`~PyTypeObject." "tp_new` to NULL and don't create the ``__new__`` key in the type dictionary." msgstr "" -#: c-api/typeobj.rst:1383 +#: c-api/typeobj.rst:1400 msgid "" "The flag must be set before creating the type, not after. For example, it " "must be set before :c:func:`PyType_Ready` is called on the type." msgstr "" -#: c-api/typeobj.rst:1386 +#: c-api/typeobj.rst:1403 msgid "" "The flag is set automatically on :ref:`static types ` if :c:" "member:`~PyTypeObject.tp_base` is NULL or ``&PyBaseObject_Type`` and :c:" "member:`~PyTypeObject.tp_new` is NULL." msgstr "" -#: c-api/typeobj.rst:1392 +#: c-api/typeobj.rst:1409 msgid "" "This flag is not inherited. However, subclasses will not be instantiable " "unless they provide a non-NULL :c:member:`~PyTypeObject.tp_new` (which is " "only possible via the C API)." msgstr "" -#: c-api/typeobj.rst:1399 +#: c-api/typeobj.rst:1416 msgid "" "To disallow instantiating a class directly but allow instantiating its " "subclasses (e.g. for an :term:`abstract base class`), do not use this flag. " "Instead, make :c:member:`~PyTypeObject.tp_new` only succeed for subclasses." msgstr "" -#: c-api/typeobj.rst:1410 +#: c-api/typeobj.rst:1427 msgid "" "This bit indicates that instances of the class may match mapping patterns " "when used as the subject of a :keyword:`match` block. It is automatically " @@ -2361,23 +2372,23 @@ msgid "" "unset when registering :class:`collections.abc.Sequence`." msgstr "" -#: c-api/typeobj.rst:1439 +#: c-api/typeobj.rst:1456 msgid "" ":c:macro:`Py_TPFLAGS_MAPPING` and :c:macro:`Py_TPFLAGS_SEQUENCE` are " "mutually exclusive; it is an error to enable both flags simultaneously." msgstr "" -#: c-api/typeobj.rst:1422 +#: c-api/typeobj.rst:1439 msgid "" "This flag is inherited by types that do not already set :c:macro:" "`Py_TPFLAGS_SEQUENCE`." msgstr "" -#: c-api/typeobj.rst:1447 +#: c-api/typeobj.rst:1464 msgid ":pep:`634` -- Structural Pattern Matching: Specification" msgstr "" -#: c-api/typeobj.rst:1432 +#: c-api/typeobj.rst:1449 msgid "" "This bit indicates that instances of the class may match sequence patterns " "when used as the subject of a :keyword:`match` block. It is automatically " @@ -2385,53 +2396,53 @@ msgid "" "unset when registering :class:`collections.abc.Mapping`." msgstr "" -#: c-api/typeobj.rst:1444 +#: c-api/typeobj.rst:1461 msgid "" "This flag is inherited by types that do not already set :c:macro:" "`Py_TPFLAGS_MAPPING`." msgstr "" -#: c-api/typeobj.rst:1454 +#: c-api/typeobj.rst:1471 msgid "" "Internal. Do not set or unset this flag. To indicate that a class has " "changed call :c:func:`PyType_Modified`" msgstr "" -#: c-api/typeobj.rst:1458 +#: c-api/typeobj.rst:1475 msgid "" "This flag is present in header files, but is not be used. It will be removed " "in a future version of CPython" msgstr "" -#: c-api/typeobj.rst:1464 +#: c-api/typeobj.rst:1483 msgid "" "An optional pointer to a NUL-terminated C string giving the docstring for " "this type object. This is exposed as the :attr:`~type.__doc__` attribute on " "the type and instances of the type." msgstr "" -#: c-api/typeobj.rst:1470 +#: c-api/typeobj.rst:1489 msgid "This field is *not* inherited by subtypes." msgstr "" -#: c-api/typeobj.rst:1475 +#: c-api/typeobj.rst:1496 msgid "" "An optional pointer to a traversal function for the garbage collector. This " "is only used if the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is set. The " "signature is::" msgstr "" -#: c-api/typeobj.rst:1478 +#: c-api/typeobj.rst:1499 msgid "int tp_traverse(PyObject *self, visitproc visit, void *arg);" msgstr "" -#: c-api/typeobj.rst:1700 +#: c-api/typeobj.rst:1723 msgid "" "More information about Python's garbage collection scheme can be found in " "section :ref:`supporting-cycle-detection`." msgstr "" -#: c-api/typeobj.rst:1483 +#: c-api/typeobj.rst:1504 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` pointer is used by the garbage " "collector to detect reference cycles. A typical implementation of a :c:" @@ -2441,7 +2452,7 @@ msgid "" "`!_thread` extension module::" msgstr "" -#: c-api/typeobj.rst:1489 +#: c-api/typeobj.rst:1510 msgid "" "static int\n" "local_traverse(PyObject *op, visitproc visit, void *arg)\n" @@ -2454,7 +2465,7 @@ msgid "" "}" msgstr "" -#: c-api/typeobj.rst:1499 +#: c-api/typeobj.rst:1520 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`` " @@ -2462,47 +2473,47 @@ msgid "" "part of a reference cycle." msgstr "" -#: c-api/typeobj.rst:1503 +#: c-api/typeobj.rst:1524 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 "" -#: c-api/typeobj.rst:1507 +#: c-api/typeobj.rst:1528 msgid "" "Heap types (:c:macro:`Py_TPFLAGS_HEAPTYPE`) must visit their type with::" msgstr "" -#: c-api/typeobj.rst:1509 +#: c-api/typeobj.rst:1530 msgid "Py_VISIT(Py_TYPE(self));" msgstr "" -#: c-api/typeobj.rst:1511 +#: c-api/typeobj.rst:1532 msgid "" "It is only needed since Python 3.9. To support Python 3.8 and older, this " "line must be conditional::" msgstr "" -#: c-api/typeobj.rst:1514 +#: c-api/typeobj.rst:1535 msgid "" "#if PY_VERSION_HEX >= 0x03090000\n" " Py_VISIT(Py_TYPE(self));\n" "#endif" msgstr "" -#: c-api/typeobj.rst:1518 +#: c-api/typeobj.rst:1539 msgid "" "If the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit is set in the :c:member:" "`~PyTypeObject.tp_flags` field, the traverse function must call :c:func:" "`PyObject_VisitManagedDict` like this::" msgstr "" -#: c-api/typeobj.rst:1522 +#: c-api/typeobj.rst:1543 msgid "PyObject_VisitManagedDict((PyObject*)self, visit, arg);" msgstr "" -#: c-api/typeobj.rst:1525 +#: c-api/typeobj.rst:1546 msgid "" "When implementing :c:member:`~PyTypeObject.tp_traverse`, only the members " "that the instance *owns* (by having :term:`strong references ` hold a reference to " "their type. Their traversal function must therefore either visit :c:func:" @@ -2531,20 +2542,20 @@ msgid "" "superclass). If they do not, the type object may not be garbage-collected." msgstr "" -#: c-api/typeobj.rst:1549 +#: c-api/typeobj.rst:1570 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` function can be called from any " "thread." msgstr "" -#: c-api/typeobj.rst:1554 +#: c-api/typeobj.rst:1575 msgid "" "Heap-allocated types are expected to visit ``Py_TYPE(self)`` in " "``tp_traverse``. In earlier versions of Python, due to `bug 40217 `_, doing this may lead to crashes in subclasses." msgstr "" -#: c-api/typeobj.rst:1563 +#: c-api/typeobj.rst:1584 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_clear` and the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :c:" @@ -2552,15 +2563,15 @@ msgid "" "are all inherited from the base type if they are all zero in the subtype." msgstr "" -#: c-api/typeobj.rst:1571 +#: c-api/typeobj.rst:1594 msgid "An optional pointer to a clear function. The signature is::" msgstr "" -#: c-api/typeobj.rst:1573 +#: c-api/typeobj.rst:1596 msgid "int tp_clear(PyObject *);" msgstr "" -#: c-api/typeobj.rst:1575 +#: c-api/typeobj.rst:1598 msgid "" "The purpose of this function is to break reference cycles that are causing " "a :term:`cyclic isolate` so that the objects can be safely destroyed. A " @@ -2568,7 +2579,7 @@ msgid "" "to satisfy design invariants held during normal use." msgstr "" -#: c-api/typeobj.rst:1580 +#: c-api/typeobj.rst:1603 msgid "" ":c:member:`!tp_clear` does not need to delete references to objects that " "can't participate in reference cycles, such as Python strings or Python " @@ -2579,44 +2590,44 @@ msgid "" "func:`Py_CLEAR`.)" msgstr "" -#: c-api/typeobj.rst:1588 +#: c-api/typeobj.rst:1611 msgid "" "Any non-trivial cleanup should be performed in :c:member:`~PyTypeObject." "tp_finalize` instead of :c:member:`!tp_clear`." msgstr "" -#: c-api/typeobj.rst:1593 +#: c-api/typeobj.rst:1616 msgid "" "If :c:member:`!tp_clear` fails to break a reference cycle then the objects " "in the :term:`cyclic isolate` may remain indefinitely uncollectable " "(\"leak\"). See :data:`gc.garbage`." msgstr "" -#: c-api/typeobj.rst:1599 +#: c-api/typeobj.rst:1622 msgid "" "Referents (direct and indirect) might have already been cleared; they are " "not guaranteed to be in a consistent state." msgstr "" -#: c-api/typeobj.rst:1604 +#: c-api/typeobj.rst:1627 msgid "" "The :c:member:`~PyTypeObject.tp_clear` function can be called from any " "thread." msgstr "" -#: c-api/typeobj.rst:1609 +#: c-api/typeobj.rst:1632 msgid "" "An object is not guaranteed to be automatically cleared before its " "destructor (:c:member:`~PyTypeObject.tp_dealloc`) is called." msgstr "" -#: c-api/typeobj.rst:1612 +#: c-api/typeobj.rst:1635 msgid "" "This function differs from the destructor (:c:member:`~PyTypeObject." "tp_dealloc`) in the following ways:" msgstr "" -#: c-api/typeobj.rst:1615 +#: c-api/typeobj.rst:1638 msgid "" "The purpose of clearing an object is to remove references to other objects " "that might participate in a reference cycle. The purpose of the destructor, " @@ -2626,7 +2637,7 @@ msgid "" "`~PyTypeObject.tp_free`)." msgstr "" -#: c-api/typeobj.rst:1621 +#: c-api/typeobj.rst:1644 msgid "" "When :c:member:`!tp_clear` is called, other objects might still hold " "references to the object being cleared. Because of this, :c:member:`!" @@ -2636,7 +2647,7 @@ msgid "" "object itself by deallocating it." msgstr "" -#: c-api/typeobj.rst:1627 +#: c-api/typeobj.rst:1650 msgid "" ":c:member:`!tp_clear` might never be automatically called. An object's " "destructor, on the other hand, will be automatically called some time after " @@ -2644,20 +2655,20 @@ msgid "" "object or the object is a member of a :term:`cyclic isolate`)." msgstr "" -#: c-api/typeobj.rst:1632 +#: c-api/typeobj.rst:1655 msgid "" "No guarantees are made about when, if, or how often Python automatically " "clears an object, except:" msgstr "" -#: c-api/typeobj.rst:1635 +#: c-api/typeobj.rst:1658 msgid "" "Python will not automatically clear an object if it is reachable, i.e., " "there is a reference to it and it is not a member of a :term:`cyclic " "isolate`." msgstr "" -#: c-api/typeobj.rst:1638 +#: c-api/typeobj.rst:1661 msgid "" "Python will not automatically clear an object if it has not been " "automatically finalized (see :c:member:`~PyTypeObject.tp_finalize`). (If " @@ -2665,14 +2676,14 @@ msgid "" "automatically finalized again before it is cleared.)" msgstr "" -#: c-api/typeobj.rst:1642 +#: c-api/typeobj.rst:1665 msgid "" "If an object is a member of a :term:`cyclic isolate`, Python will not " "automatically clear it if any member of the cyclic isolate has not yet been " "automatically finalized (:c:member:`~PyTypeObject.tp_finalize`)." msgstr "" -#: c-api/typeobj.rst:1645 +#: c-api/typeobj.rst:1668 msgid "" "Python will not destroy an object until after any automatic calls to its :c:" "member:`!tp_clear` function have returned. This ensures that the act of " @@ -2680,20 +2691,20 @@ msgid "" "member:`!tp_clear` is still executing." msgstr "" -#: c-api/typeobj.rst:1649 +#: c-api/typeobj.rst:1672 msgid "" "Python will not automatically call :c:member:`!tp_clear` multiple times " "concurrently." msgstr "" -#: c-api/typeobj.rst:1652 +#: c-api/typeobj.rst:1675 msgid "" "CPython currently only automatically clears objects as needed to break " "reference cycles in a :term:`cyclic isolate`, but future versions might " "clear objects regularly before their destruction." msgstr "" -#: c-api/typeobj.rst:1656 +#: c-api/typeobj.rst:1679 msgid "" "Taken together, all :c:member:`~PyTypeObject.tp_clear` functions in the " "system must combine to break all reference cycles. This is subtle, and if " @@ -2706,7 +2717,7 @@ msgid "" "good reason to avoid implementing :c:member:`~PyTypeObject.tp_clear`." msgstr "" -#: c-api/typeobj.rst:1667 +#: c-api/typeobj.rst:1690 msgid "" "Implementations of :c:member:`~PyTypeObject.tp_clear` should drop the " "instance's references to those of its members that may be Python objects, " @@ -2714,7 +2725,7 @@ msgid "" "example::" msgstr "" -#: c-api/typeobj.rst:1671 +#: c-api/typeobj.rst:1694 msgid "" "static int\n" "local_clear(PyObject *op)\n" @@ -2728,7 +2739,7 @@ msgid "" "}" msgstr "" -#: c-api/typeobj.rst:1682 +#: c-api/typeobj.rst:1705 msgid "" "The :c:func:`Py_CLEAR` macro should be used, because clearing references is " "delicate: the reference to the contained object must not be released (via :" @@ -2743,18 +2754,18 @@ msgid "" "performs the operations in a safe order." msgstr "" -#: c-api/typeobj.rst:1694 +#: c-api/typeobj.rst:1717 msgid "" "If the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit is set in the :c:member:" -"`~PyTypeObject.tp_flags` field, the traverse function must call :c:func:" +"`~PyTypeObject.tp_flags` field, the clear function must call :c:func:" "`PyObject_ClearManagedDict` like this::" msgstr "" -#: c-api/typeobj.rst:1698 +#: c-api/typeobj.rst:1721 msgid "PyObject_ClearManagedDict((PyObject*)self);" msgstr "" -#: c-api/typeobj.rst:1707 +#: c-api/typeobj.rst:1730 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_traverse` and the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :" @@ -2762,22 +2773,22 @@ msgid "" "are all inherited from the base type if they are all zero in the subtype." msgstr "" -#: c-api/typeobj.rst:1719 +#: c-api/typeobj.rst:1744 msgid "" "An optional pointer to the rich comparison function, whose signature is::" msgstr "" -#: c-api/typeobj.rst:1721 +#: c-api/typeobj.rst:1746 msgid "PyObject *tp_richcompare(PyObject *self, PyObject *other, int op);" msgstr "" -#: c-api/typeobj.rst:1723 +#: c-api/typeobj.rst:1748 msgid "" "The first parameter is guaranteed to be an instance of the type that is " "defined by :c:type:`PyTypeObject`." msgstr "" -#: c-api/typeobj.rst:1726 +#: c-api/typeobj.rst:1751 msgid "" "The function should return the result of the comparison (usually ``Py_True`` " "or ``Py_False``). If the comparison is undefined, it must return " @@ -2785,50 +2796,50 @@ msgid "" "set an exception condition." msgstr "" -#: c-api/typeobj.rst:1731 +#: c-api/typeobj.rst:1756 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 "" -#: c-api/typeobj.rst:1737 +#: c-api/typeobj.rst:1762 msgid "Constant" msgstr "" -#: c-api/typeobj.rst:1737 +#: c-api/typeobj.rst:1762 msgid "Comparison" msgstr "" -#: c-api/typeobj.rst:1739 +#: c-api/typeobj.rst:1764 msgid "``<``" msgstr "" -#: c-api/typeobj.rst:1741 +#: c-api/typeobj.rst:1766 msgid "``<=``" msgstr "" -#: c-api/typeobj.rst:1743 +#: c-api/typeobj.rst:1768 msgid "``==``" msgstr "" -#: c-api/typeobj.rst:1745 +#: c-api/typeobj.rst:1770 msgid "``!=``" msgstr "" -#: c-api/typeobj.rst:1747 +#: c-api/typeobj.rst:1772 msgid "``>``" msgstr "" -#: c-api/typeobj.rst:1749 +#: c-api/typeobj.rst:1774 msgid "``>=``" msgstr "" -#: c-api/typeobj.rst:1752 +#: c-api/typeobj.rst:1777 msgid "" "The following macro is defined to ease writing rich comparison functions:" msgstr "" -#: c-api/typeobj.rst:1756 +#: c-api/typeobj.rst:1781 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 " @@ -2836,15 +2847,15 @@ msgid "" "specifies the requested operation, as for :c:func:`PyObject_RichCompare`." msgstr "" -#: c-api/typeobj.rst:1762 +#: c-api/typeobj.rst:1787 msgid "The returned value is a new :term:`strong reference`." msgstr "" -#: c-api/typeobj.rst:1764 +#: c-api/typeobj.rst:1789 msgid "On error, sets an exception and returns ``NULL`` from the function." msgstr "" -#: c-api/typeobj.rst:1772 +#: c-api/typeobj.rst:1797 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_hash`: a subtype inherits :c:member:`~PyTypeObject.tp_richcompare` and :c:" @@ -2852,7 +2863,7 @@ msgid "" "tp_richcompare` and :c:member:`~PyTypeObject.tp_hash` are both ``NULL``." msgstr "" -#: c-api/typeobj.rst:1779 +#: c-api/typeobj.rst:1804 msgid "" ":c:data:`PyBaseObject_Type` provides a :c:member:`~PyTypeObject." "tp_richcompare` implementation, which may be inherited. However, if only :c:" @@ -2861,13 +2872,13 @@ msgid "" "comparisons." msgstr "" -#: c-api/typeobj.rst:1788 +#: c-api/typeobj.rst:1813 msgid "" "While this field is still supported, :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` " "should be used instead, if at all possible." msgstr "" -#: c-api/typeobj.rst:1791 +#: c-api/typeobj.rst:1816 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 " @@ -2877,19 +2888,19 @@ msgid "" "`PyObject*` which is initialized to ``NULL``." msgstr "" -#: c-api/typeobj.rst:1798 +#: c-api/typeobj.rst:1823 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 "" -#: c-api/typeobj.rst:1801 +#: c-api/typeobj.rst:1826 msgid "" "It is an error to set both the :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` bit " "and :c:member:`~PyTypeObject.tp_weaklistoffset`." msgstr "" -#: c-api/typeobj.rst:1806 +#: c-api/typeobj.rst:1831 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 " @@ -2898,7 +2909,7 @@ msgid "" "not be a problem." msgstr "" -#: c-api/typeobj.rst:1813 +#: c-api/typeobj.rst:1838 msgid "" "If the :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` bit is set in the :c:member:" "`~PyTypeObject.tp_flags` field, then :c:member:`~PyTypeObject." @@ -2906,32 +2917,32 @@ msgid "" "unsafe to use this field." msgstr "" -#: c-api/typeobj.rst:1821 +#: c-api/typeobj.rst:1848 msgid "" "An optional pointer to a function that returns an :term:`iterator` for the " "object. Its presence normally signals that the instances of this type are :" "term:`iterable` (although sequences may be iterable without this function)." msgstr "" -#: c-api/typeobj.rst:1825 +#: c-api/typeobj.rst:1852 msgid "This function has the same signature as :c:func:`PyObject_GetIter`::" msgstr "" -#: c-api/typeobj.rst:1827 +#: c-api/typeobj.rst:1854 msgid "PyObject *tp_iter(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:1836 +#: c-api/typeobj.rst:1865 msgid "" "An optional pointer to a function that returns the next item in an :term:" "`iterator`. The signature is::" msgstr "" -#: c-api/typeobj.rst:1839 +#: c-api/typeobj.rst:1868 msgid "PyObject *tp_iternext(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:1841 +#: c-api/typeobj.rst:1870 msgid "" "When the iterator is exhausted, it must return ``NULL``; a :exc:" "`StopIteration` exception may or may not be set. When another error occurs, " @@ -2939,74 +2950,74 @@ msgid "" "this type are iterators." msgstr "" -#: c-api/typeobj.rst:1846 +#: c-api/typeobj.rst:1875 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 "" -#: c-api/typeobj.rst:1850 +#: c-api/typeobj.rst:1879 msgid "This function has the same signature as :c:func:`PyIter_Next`." msgstr "" -#: c-api/typeobj.rst:1859 +#: c-api/typeobj.rst:1890 msgid "" "An optional pointer to a static ``NULL``-terminated array of :c:type:" "`PyMethodDef` structures, declaring regular methods of this type." msgstr "" -#: c-api/typeobj.rst:1862 +#: c-api/typeobj.rst:1893 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 "" -#: c-api/typeobj.rst:1867 +#: c-api/typeobj.rst:1898 msgid "" "This field is not inherited by subtypes (methods are inherited through a " "different mechanism)." msgstr "" -#: c-api/typeobj.rst:1873 +#: c-api/typeobj.rst:1906 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 "" -#: c-api/typeobj.rst:1877 +#: c-api/typeobj.rst:1910 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 "" -#: c-api/typeobj.rst:1882 +#: c-api/typeobj.rst:1915 msgid "" "This field is not inherited by subtypes (members are inherited through a " "different mechanism)." msgstr "" -#: c-api/typeobj.rst:1888 +#: c-api/typeobj.rst:1923 msgid "" "An optional pointer to a static ``NULL``-terminated array of :c:type:" "`PyGetSetDef` structures, declaring computed attributes of instances of this " "type." msgstr "" -#: c-api/typeobj.rst:1891 +#: c-api/typeobj.rst:1926 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 "" -#: c-api/typeobj.rst:1896 +#: c-api/typeobj.rst:1931 msgid "" "This field is not inherited by subtypes (computed attributes are inherited " "through a different mechanism)." msgstr "" -#: c-api/typeobj.rst:1902 +#: c-api/typeobj.rst:1939 msgid "" "An optional pointer to a base type from which type properties are " "inherited. At this level, only single inheritance is supported; multiple " @@ -3014,7 +3025,7 @@ msgid "" "metatype." msgstr "" -#: c-api/typeobj.rst:1910 +#: c-api/typeobj.rst:1947 msgid "" "Slot initialization is subject to the rules of initializing globals. C99 " "requires the initializers to be \"address constants\". Function designators " @@ -3022,7 +3033,7 @@ msgid "" "valid C99 address constants." msgstr "" -#: c-api/typeobj.rst:1915 +#: c-api/typeobj.rst:1952 msgid "" "However, the unary '&' operator applied to a non-static variable like :c:" "data:`PyBaseObject_Type` is not required to produce an address constant. " @@ -3030,27 +3041,27 @@ msgid "" "strictly standard conforming in this particular behavior." msgstr "" -#: c-api/typeobj.rst:1921 +#: c-api/typeobj.rst:1958 msgid "" "Consequently, :c:member:`~PyTypeObject.tp_base` should be set in the " "extension module's init function." msgstr "" -#: c-api/typeobj.rst:1926 +#: c-api/typeobj.rst:1963 msgid "This field is not inherited by subtypes (obviously)." msgstr "" -#: c-api/typeobj.rst:1930 +#: c-api/typeobj.rst:1967 msgid "" "This field defaults to ``&PyBaseObject_Type`` (which to Python programmers " "is known as the type :class:`object`)." msgstr "" -#: c-api/typeobj.rst:1936 +#: c-api/typeobj.rst:1973 msgid "The type's dictionary is stored here by :c:func:`PyType_Ready`." msgstr "" -#: c-api/typeobj.rst:1938 +#: c-api/typeobj.rst:1975 msgid "" "This field should normally be initialized to ``NULL`` before PyType_Ready is " "called; it may also be initialized to a dictionary containing initial " @@ -3061,70 +3072,70 @@ msgid "" "be treated as read-only." msgstr "" -#: c-api/typeobj.rst:1946 +#: c-api/typeobj.rst:1983 msgid "" "Some types may not store their dictionary in this slot. Use :c:func:" "`PyType_GetDict` to retrieve the dictionary for an arbitrary type." msgstr "" -#: c-api/typeobj.rst:1952 +#: c-api/typeobj.rst:1989 msgid "" "Internals detail: For static builtin types, this is always ``NULL``. " "Instead, the dict for such types is stored on ``PyInterpreterState``. Use :c:" "func:`PyType_GetDict` to get the dict for an arbitrary type." msgstr "" -#: c-api/typeobj.rst:1958 +#: c-api/typeobj.rst:1995 msgid "" "This field is not inherited by subtypes (though the attributes defined in " "here are inherited through a different mechanism)." msgstr "" -#: c-api/typeobj.rst:1963 +#: c-api/typeobj.rst:2000 msgid "" "If this field is ``NULL``, :c:func:`PyType_Ready` will assign a new " "dictionary to it." msgstr "" -#: c-api/typeobj.rst:1968 +#: c-api/typeobj.rst:2005 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 "" -#: c-api/typeobj.rst:1974 +#: c-api/typeobj.rst:2013 msgid "An optional pointer to a \"descriptor get\" function." msgstr "" -#: c-api/typeobj.rst:1992 c-api/typeobj.rst:2086 c-api/typeobj.rst:2109 +#: c-api/typeobj.rst:2033 c-api/typeobj.rst:2131 c-api/typeobj.rst:2156 msgid "The function signature is::" msgstr "" -#: c-api/typeobj.rst:1978 +#: c-api/typeobj.rst:2017 msgid "PyObject * tp_descr_get(PyObject *self, PyObject *obj, PyObject *type);" msgstr "" -#: c-api/typeobj.rst:1989 +#: c-api/typeobj.rst:2030 msgid "" "An optional pointer to a function for setting and deleting a descriptor's " "value." msgstr "" -#: c-api/typeobj.rst:1994 +#: c-api/typeobj.rst:2035 msgid "int tp_descr_set(PyObject *self, PyObject *obj, PyObject *value);" msgstr "" -#: c-api/typeobj.rst:1996 +#: c-api/typeobj.rst:2037 msgid "The *value* argument is set to ``NULL`` to delete the value." msgstr "" -#: c-api/typeobj.rst:2007 +#: c-api/typeobj.rst:2048 msgid "" "While this field is still supported, :c:macro:`Py_TPFLAGS_MANAGED_DICT` " "should be used instead, if at all possible." msgstr "" -#: c-api/typeobj.rst:2010 +#: c-api/typeobj.rst:2051 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 " @@ -3132,19 +3143,19 @@ msgid "" "func:`PyObject_GenericGetAttr`." msgstr "" -#: c-api/typeobj.rst:2015 +#: c-api/typeobj.rst:2056 msgid "" "Do not confuse this field with :c:member:`~PyTypeObject.tp_dict`; that is " "the dictionary for attributes of the type object itself." msgstr "" -#: c-api/typeobj.rst:2018 +#: c-api/typeobj.rst:2059 msgid "" "The value specifies the offset of the dictionary from the start of the " "instance structure." msgstr "" -#: c-api/typeobj.rst:2020 +#: c-api/typeobj.rst:2061 msgid "" "The :c:member:`~PyTypeObject.tp_dictoffset` should be regarded as write-" "only. To get the pointer to the dictionary call :c:func:" @@ -3153,13 +3164,13 @@ msgid "" "to call :c:func:`PyObject_GetAttr` when accessing an attribute on the object." msgstr "" -#: c-api/typeobj.rst:2026 +#: c-api/typeobj.rst:2067 msgid "" "It is an error to set both the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit and :c:" "member:`~PyTypeObject.tp_dictoffset`." msgstr "" -#: c-api/typeobj.rst:2031 +#: c-api/typeobj.rst:2072 msgid "" "This field is inherited by subtypes. A subtype should not override this " "offset; doing so could be unsafe, if C code tries to access the dictionary " @@ -3167,25 +3178,25 @@ msgid "" "`Py_TPFLAGS_MANAGED_DICT`." msgstr "" -#: c-api/typeobj.rst:2038 +#: c-api/typeobj.rst:2079 msgid "" "This slot has no default. For :ref:`static types `, if the " "field is ``NULL`` then no :attr:`~object.__dict__` gets created for " "instances." msgstr "" -#: c-api/typeobj.rst:2041 +#: c-api/typeobj.rst:2082 msgid "" "If the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit is set in the :c:member:" "`~PyTypeObject.tp_flags` field, then :c:member:`~PyTypeObject.tp_dictoffset` " "will be set to ``-1``, to indicate that it is unsafe to use this field." msgstr "" -#: c-api/typeobj.rst:2049 +#: c-api/typeobj.rst:2092 msgid "An optional pointer to an instance initialization function." msgstr "" -#: c-api/typeobj.rst:2051 +#: c-api/typeobj.rst:2094 msgid "" "This function corresponds to the :meth:`~object.__init__` method of " "classes. Like :meth:`!__init__`, it is possible to create an instance " @@ -3193,18 +3204,18 @@ msgid "" "instance by calling its :meth:`!__init__` method again." msgstr "" -#: c-api/typeobj.rst:2058 +#: c-api/typeobj.rst:2101 msgid "int tp_init(PyObject *self, PyObject *args, PyObject *kwds);" msgstr "" -#: c-api/typeobj.rst:2060 +#: c-api/typeobj.rst:2103 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:" "`~object.__init__`." msgstr "" -#: c-api/typeobj.rst:2064 +#: c-api/typeobj.rst:2107 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 :" @@ -3216,52 +3227,52 @@ msgid "" "subtype's :c:member:`~PyTypeObject.tp_init` is called." msgstr "" -#: c-api/typeobj.rst:2071 +#: c-api/typeobj.rst:2114 msgid "Returns ``0`` on success, ``-1`` and sets an exception on error." msgstr "" -#: c-api/typeobj.rst:2079 +#: c-api/typeobj.rst:2122 msgid "" "For :ref:`static types ` this field does not have a default." msgstr "" -#: c-api/typeobj.rst:2084 +#: c-api/typeobj.rst:2129 msgid "An optional pointer to an instance allocation function." msgstr "" -#: c-api/typeobj.rst:2088 +#: c-api/typeobj.rst:2133 msgid "PyObject *tp_alloc(PyTypeObject *self, Py_ssize_t nitems);" msgstr "" -#: c-api/typeobj.rst:2092 +#: c-api/typeobj.rst:2137 msgid "" "Static subtypes inherit this slot, which will be :c:func:" "`PyType_GenericAlloc` if inherited from :class:`object`." msgstr "" -#: c-api/typeobj.rst:2162 +#: c-api/typeobj.rst:2211 msgid ":ref:`Heap subtypes ` do not inherit this slot." msgstr "" -#: c-api/typeobj.rst:2099 +#: c-api/typeobj.rst:2144 msgid "" "For heap subtypes, this field is always set to :c:func:`PyType_GenericAlloc`." msgstr "" -#: c-api/typeobj.rst:2170 +#: c-api/typeobj.rst:2219 msgid "For static subtypes, this slot is inherited (see above)." msgstr "" -#: c-api/typeobj.rst:2107 +#: c-api/typeobj.rst:2154 msgid "An optional pointer to an instance creation function." msgstr "" -#: c-api/typeobj.rst:2111 +#: c-api/typeobj.rst:2158 msgid "" "PyObject *tp_new(PyTypeObject *subtype, PyObject *args, PyObject *kwds);" msgstr "" -#: c-api/typeobj.rst:2113 +#: c-api/typeobj.rst:2160 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 " @@ -3270,7 +3281,7 @@ msgid "" "that type (but not an unrelated type)." msgstr "" -#: c-api/typeobj.rst:2119 +#: c-api/typeobj.rst:2166 msgid "" "The :c:member:`~PyTypeObject.tp_new` function should call ``subtype-" ">tp_alloc(subtype, nitems)`` to allocate space for the object, and then do " @@ -3282,20 +3293,20 @@ msgid "" "be deferred to :c:member:`~PyTypeObject.tp_init`." msgstr "" -#: c-api/typeobj.rst:2127 +#: c-api/typeobj.rst:2174 msgid "" "Set the :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag to disallow " "creating instances of the type in Python." msgstr "" -#: c-api/typeobj.rst:2132 +#: c-api/typeobj.rst:2179 msgid "" "This field is inherited by subtypes, except it is not inherited by :ref:" "`static types ` whose :c:member:`~PyTypeObject.tp_base` is " "``NULL`` or ``&PyBaseObject_Type``." msgstr "" -#: c-api/typeobj.rst:2138 +#: c-api/typeobj.rst:2185 msgid "" "For :ref:`static types ` this field has no default. This means " "if the slot is defined as ``NULL``, the type cannot be called to create new " @@ -3303,22 +3314,22 @@ msgid "" "factory function." msgstr "" -#: c-api/typeobj.rst:2146 +#: c-api/typeobj.rst:2195 msgid "" "An optional pointer to an instance deallocation function. Its signature is::" msgstr "" -#: c-api/typeobj.rst:2148 +#: c-api/typeobj.rst:2197 msgid "void tp_free(void *self);" msgstr "" -#: c-api/typeobj.rst:2150 +#: c-api/typeobj.rst:2199 msgid "" "This function must free the memory allocated by :c:member:`~PyTypeObject." "tp_alloc`." msgstr "" -#: c-api/typeobj.rst:2155 +#: c-api/typeobj.rst:2204 msgid "" "Static subtypes inherit this slot, which will be :c:func:`PyObject_Free` if " "inherited from :class:`object`. Exception: If the type supports garbage " @@ -3327,18 +3338,18 @@ msgid "" "this slot is not inherited but instead defaults to :c:func:`PyObject_GC_Del`." msgstr "" -#: c-api/typeobj.rst:2166 +#: c-api/typeobj.rst:2215 msgid "" "For :ref:`heap subtypes `, this slot defaults to a deallocator " "suitable to match :c:func:`PyType_GenericAlloc` and the value of the :c:" "macro:`Py_TPFLAGS_HAVE_GC` flag." msgstr "" -#: c-api/typeobj.rst:2175 +#: c-api/typeobj.rst:2226 msgid "An optional pointer to a function called by the garbage collector." msgstr "" -#: c-api/typeobj.rst:2177 +#: c-api/typeobj.rst:2228 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 " @@ -3350,91 +3361,91 @@ msgid "" "instance. The signature is::" msgstr "" -#: c-api/typeobj.rst:2185 +#: c-api/typeobj.rst:2236 msgid "int tp_is_gc(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:2187 +#: c-api/typeobj.rst:2238 msgid "" "(The only example of this are types themselves. The metatype, :c:data:" "`PyType_Type`, defines this function to distinguish between statically and :" "ref:`dynamically allocated types `.)" msgstr "" -#: c-api/typeobj.rst:2197 +#: c-api/typeobj.rst:2248 msgid "" "This slot has no default. If this field is ``NULL``, :c:macro:" "`Py_TPFLAGS_HAVE_GC` is used as the functional equivalent." msgstr "" -#: c-api/typeobj.rst:2203 +#: c-api/typeobj.rst:2256 msgid "Tuple of base types." msgstr "" -#: c-api/typeobj.rst:2229 +#: c-api/typeobj.rst:2282 msgid "" "This field should be set to ``NULL`` and treated as read-only. Python will " "fill it in when the type is :c:func:`initialized `." msgstr "" -#: c-api/typeobj.rst:2208 +#: c-api/typeobj.rst:2261 msgid "" -"For dynamically created classes, the ``Py_tp_bases`` :c:type:`slot " +"For dynamically created classes, the :c:data:`Py_tp_bases` :c:type:`slot " "` can be used instead of the *bases* argument of :c:func:" "`PyType_FromSpecWithBases`. The argument form is preferred." msgstr "" -#: c-api/typeobj.rst:2215 +#: c-api/typeobj.rst:2268 msgid "" "Multiple inheritance does not work well for statically defined types. If you " "set ``tp_bases`` to a tuple, Python will not raise an error, but some slots " "will only be inherited from the first base." msgstr "" -#: c-api/typeobj.rst:2244 c-api/typeobj.rst:2278 c-api/typeobj.rst:2292 +#: c-api/typeobj.rst:2297 c-api/typeobj.rst:2331 c-api/typeobj.rst:2347 msgid "This field is not inherited." msgstr "" -#: c-api/typeobj.rst:2226 +#: c-api/typeobj.rst:2279 msgid "" "Tuple containing the expanded set of base types, starting with the type " "itself and ending with :class:`object`, in Method Resolution Order." msgstr "" -#: c-api/typeobj.rst:2234 +#: c-api/typeobj.rst:2287 msgid "" "This field is not inherited; it is calculated fresh by :c:func:" "`PyType_Ready`." msgstr "" -#: c-api/typeobj.rst:2240 +#: c-api/typeobj.rst:2293 msgid "Unused. Internal use only." msgstr "" -#: c-api/typeobj.rst:2249 +#: c-api/typeobj.rst:2302 msgid "" "A collection of subclasses. Internal use only. May be an invalid pointer." msgstr "" -#: c-api/typeobj.rst:2251 +#: c-api/typeobj.rst:2304 msgid "" "To get a list of subclasses, call the Python method :py:meth:`~type." "__subclasses__`." msgstr "" -#: c-api/typeobj.rst:2256 +#: c-api/typeobj.rst:2309 msgid "" "For some types, this field does not hold a valid :c:expr:`PyObject*`. The " "type was changed to :c:expr:`void*` to indicate this." msgstr "" -#: c-api/typeobj.rst:2266 +#: c-api/typeobj.rst:2319 msgid "" "Weak reference list head, for weak references to this type object. Not " "inherited. Internal use only." msgstr "" -#: c-api/typeobj.rst:2271 +#: c-api/typeobj.rst:2324 msgid "" "Internals detail: For the static builtin types this is always ``NULL``, even " "if weakrefs are added. Instead, the weakrefs for each are stored on " @@ -3442,27 +3453,27 @@ msgid "" "``_PyObject_GET_WEAKREFS_LISTPTR()`` macro to avoid the distinction." msgstr "" -#: c-api/typeobj.rst:2283 +#: c-api/typeobj.rst:2338 msgid "" "This field is deprecated. Use :c:member:`~PyTypeObject.tp_finalize` instead." msgstr "" -#: c-api/typeobj.rst:2288 +#: c-api/typeobj.rst:2343 msgid "Used to index into the method cache. Internal use only." msgstr "" -#: c-api/typeobj.rst:2297 +#: c-api/typeobj.rst:2354 msgid "" "An optional pointer to an instance finalization function. This is the C " "implementation of the :meth:`~object.__del__` special method. Its signature " "is::" msgstr "" -#: c-api/typeobj.rst:2301 +#: c-api/typeobj.rst:2358 msgid "void tp_finalize(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:2303 +#: c-api/typeobj.rst:2360 msgid "" "The primary purpose of finalization is to perform any non-trivial cleanup " "that must be performed before the object is destroyed, while the object and " @@ -3470,7 +3481,7 @@ msgid "" "consistent state. The finalizer is allowed to execute arbitrary Python code." msgstr "" -#: c-api/typeobj.rst:2309 +#: c-api/typeobj.rst:2366 msgid "" "Before Python automatically finalizes an object, some of the object's direct " "or indirect referents might have themselves been automatically finalized. " @@ -3478,14 +3489,14 @@ msgid "" "member:`~PyTypeObject.tp_clear`) yet." msgstr "" -#: c-api/typeobj.rst:2314 +#: c-api/typeobj.rst:2371 msgid "" "Other non-finalized objects might still be using a finalized object, so the " "finalizer must leave the object in a sane state (e.g., invariants are still " "met)." msgstr "" -#: c-api/typeobj.rst:2320 +#: c-api/typeobj.rst:2377 msgid "" "After Python automatically finalizes an object, Python might start " "automatically clearing (:c:member:`~PyTypeObject.tp_clear`) the object and " @@ -3494,7 +3505,7 @@ msgid "" "cleared referents." msgstr "" -#: c-api/typeobj.rst:2328 +#: c-api/typeobj.rst:2385 msgid "" "An object is not guaranteed to be automatically finalized before its " "destructor (:c:member:`~PyTypeObject.tp_dealloc`) is called. It is " @@ -3503,25 +3514,25 @@ msgid "" "finalized before destruction." msgstr "" -#: c-api/typeobj.rst:2336 +#: c-api/typeobj.rst:2393 msgid "" "The :c:member:`~PyTypeObject.tp_finalize` function can be called from any " "thread, although the :term:`GIL` will be held." msgstr "" -#: c-api/typeobj.rst:2341 +#: c-api/typeobj.rst:2398 msgid "" "The :c:member:`!tp_finalize` function can be called during shutdown, after " "some global variables have been deleted. See the documentation of the :meth:" "`~object.__del__` method for details." msgstr "" -#: c-api/typeobj.rst:2345 +#: c-api/typeobj.rst:2402 msgid "" "When Python finalizes an object, it behaves like the following algorithm:" msgstr "" -#: c-api/typeobj.rst:2347 +#: c-api/typeobj.rst:2404 msgid "" "Python might mark the object as *finalized*. Currently, Python always marks " "objects whose type supports garbage collection (i.e., the :c:macro:" @@ -3529,13 +3540,13 @@ msgid "" "never marks other types of objects; this might change in a future version." msgstr "" -#: c-api/typeobj.rst:2352 +#: c-api/typeobj.rst:2409 msgid "" "If the object is not marked as *finalized* and its :c:member:`!tp_finalize` " "finalizer function is non-``NULL``, the finalizer function is called." msgstr "" -#: c-api/typeobj.rst:2355 +#: c-api/typeobj.rst:2412 msgid "" "If the finalizer function was called and the finalizer made the object " "reachable (i.e., there is a reference to the object and it is not a member " @@ -3545,7 +3556,7 @@ msgid "" "make it reachable, i.e., the object is (still) a member of a cyclic isolate." msgstr "" -#: c-api/typeobj.rst:2362 +#: c-api/typeobj.rst:2419 msgid "" "If the finalizer resurrected the object, the object's pending destruction is " "canceled and the object's *finalized* mark might be removed if present. " @@ -3553,7 +3564,7 @@ msgid "" "future version." msgstr "" -#: c-api/typeobj.rst:2367 +#: c-api/typeobj.rst:2424 msgid "" "*Automatic finalization* refers to any finalization performed by Python " "except via calls to :c:func:`PyObject_CallFinalizer` or :c:func:" @@ -3561,14 +3572,14 @@ msgid "" "or how often an object is automatically finalized, except:" msgstr "" -#: c-api/typeobj.rst:2372 +#: c-api/typeobj.rst:2429 msgid "" "Python will not automatically finalize an object if it is reachable, i.e., " "there is a reference to it and it is not a member of a :term:`cyclic " "isolate`." msgstr "" -#: c-api/typeobj.rst:2375 +#: c-api/typeobj.rst:2432 msgid "" "Python will not automatically finalize an object if finalizing it would not " "mark the object as *finalized*. Currently, this applies to objects whose " @@ -3578,53 +3589,53 @@ msgid "" "`PyObject_CallFinalizerFromDealloc`." msgstr "" -#: c-api/typeobj.rst:2381 +#: c-api/typeobj.rst:2438 msgid "" "Python will not automatically finalize any two members of a :term:`cyclic " "isolate` concurrently." msgstr "" -#: c-api/typeobj.rst:2383 +#: c-api/typeobj.rst:2440 msgid "" "Python will not automatically finalize an object after it has automatically " "cleared (:c:member:`~PyTypeObject.tp_clear`) the object." msgstr "" -#: c-api/typeobj.rst:2385 +#: c-api/typeobj.rst:2442 msgid "" "If an object is a member of a :term:`cyclic isolate`, Python will not " "automatically finalize it after automatically clearing (see :c:member:" "`~PyTypeObject.tp_clear`) any other member." msgstr "" -#: c-api/typeobj.rst:2388 +#: c-api/typeobj.rst:2445 msgid "" "Python will automatically finalize every member of a :term:`cyclic isolate` " "before it automatically clears (see :c:member:`~PyTypeObject.tp_clear`) any " "of them." msgstr "" -#: c-api/typeobj.rst:2391 +#: c-api/typeobj.rst:2448 msgid "" "If Python is going to automatically clear an object (:c:member:" "`~PyTypeObject.tp_clear`), it will automatically finalize the object first." msgstr "" -#: c-api/typeobj.rst:2395 +#: c-api/typeobj.rst:2452 msgid "" "Python currently only automatically finalizes objects that are members of a :" "term:`cyclic isolate`, but future versions might finalize objects regularly " "before their destruction." msgstr "" -#: c-api/typeobj.rst:2399 +#: c-api/typeobj.rst:2456 msgid "" "To manually finalize an object, do not call this function directly; call :c:" "func:`PyObject_CallFinalizer` or :c:func:`PyObject_CallFinalizerFromDealloc` " "instead." msgstr "" -#: c-api/typeobj.rst:2403 +#: c-api/typeobj.rst:2460 msgid "" ":c:member:`~PyTypeObject.tp_finalize` should leave the current exception " "status unchanged. The recommended way to write a non-trivial finalizer is " @@ -3635,7 +3646,7 @@ msgid "" "`PyErr_WriteUnraisable` or :c:func:`PyErr_FormatUnraisable`. For example::" msgstr "" -#: c-api/typeobj.rst:2412 +#: c-api/typeobj.rst:2469 msgid "" "static void\n" "foo_finalize(PyObject *self)\n" @@ -3658,26 +3669,26 @@ msgid "" "}" msgstr "" -#: c-api/typeobj.rst:2440 +#: c-api/typeobj.rst:2497 msgid "" "Before version 3.8 it was necessary to set the :c:macro:" "`Py_TPFLAGS_HAVE_FINALIZE` flags bit in order for this field to be used. " "This is no longer required." msgstr "" -#: c-api/typeobj.rst:2446 +#: c-api/typeobj.rst:2503 msgid ":pep:`442`: \"Safe object finalization\"" msgstr "" -#: c-api/typeobj.rst:2449 +#: c-api/typeobj.rst:2506 msgid ":c:func:`PyObject_CallFinalizer`" msgstr "" -#: c-api/typeobj.rst:2450 +#: c-api/typeobj.rst:2507 msgid ":c:func:`PyObject_CallFinalizerFromDealloc`" msgstr "" -#: c-api/typeobj.rst:2455 +#: c-api/typeobj.rst:2514 msgid "" "A :ref:`vectorcall function ` to use for calls of this type " "object (rather than instances). In other words, ``tp_vectorcall`` can be " @@ -3685,13 +3696,13 @@ msgid "" "of *type*." msgstr "" -#: c-api/typeobj.rst:2460 +#: c-api/typeobj.rst:2519 msgid "" "As with any vectorcall function, if ``tp_vectorcall`` is ``NULL``, the " "*tp_call* protocol (``Py_TYPE(type)->tp_call``) is used instead." msgstr "" -#: c-api/typeobj.rst:2465 +#: c-api/typeobj.rst:2524 msgid "" "The :ref:`vectorcall protocol ` requires that the vectorcall " "function has the same behavior as the corresponding ``tp_call``. This means " @@ -3699,27 +3710,27 @@ msgid "" ">tp_call``." msgstr "" -#: c-api/typeobj.rst:2470 +#: c-api/typeobj.rst:2529 msgid "" "Specifically, if *type* uses the default metaclass, ``type->tp_vectorcall`` " "must behave the same as :c:expr:`PyType_Type->tp_call`, which:" msgstr "" -#: c-api/typeobj.rst:2474 +#: c-api/typeobj.rst:2533 msgid "calls ``type->tp_new``," msgstr "" -#: c-api/typeobj.rst:2476 +#: c-api/typeobj.rst:2535 msgid "" "if the result is a subclass of *type*, calls ``type->tp_init`` on the result " "of ``tp_new``, and" msgstr "" -#: c-api/typeobj.rst:2479 +#: c-api/typeobj.rst:2538 msgid "returns the result of ``tp_new``." msgstr "" -#: c-api/typeobj.rst:2481 +#: c-api/typeobj.rst:2540 msgid "" "Typically, ``tp_vectorcall`` is overridden to optimize this process for " "specific :c:member:`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject." @@ -3728,65 +3739,65 @@ msgid "" "__init__`, respectively)." msgstr "" -#: c-api/typeobj.rst:2492 +#: c-api/typeobj.rst:2551 msgid "This field is never inherited." msgstr "" -#: c-api/typeobj.rst:2494 +#: c-api/typeobj.rst:2553 msgid "(the field exists since 3.8 but it's only used since 3.9)" msgstr "" -#: c-api/typeobj.rst:2499 +#: c-api/typeobj.rst:2558 msgid "Internal. Do not use." msgstr "" -#: c-api/typeobj.rst:2507 +#: c-api/typeobj.rst:2566 msgid "Static Types" msgstr "" -#: c-api/typeobj.rst:2509 +#: c-api/typeobj.rst:2568 msgid "" "Traditionally, types defined in C code are *static*, that is, a static :c:" "type:`PyTypeObject` structure is defined directly in code and initialized " "using :c:func:`PyType_Ready`." msgstr "" -#: c-api/typeobj.rst:2513 +#: c-api/typeobj.rst:2572 msgid "" "This results in types that are limited relative to types defined in Python:" msgstr "" -#: c-api/typeobj.rst:2515 +#: c-api/typeobj.rst:2574 msgid "" "Static types are limited to one base, i.e. they cannot use multiple " "inheritance." msgstr "" -#: c-api/typeobj.rst:2517 +#: c-api/typeobj.rst:2576 msgid "" "Static type objects (but not necessarily their instances) are immutable. It " "is not possible to add or modify the type object's attributes from Python." msgstr "" -#: c-api/typeobj.rst:2519 +#: c-api/typeobj.rst:2578 msgid "" "Static type objects are shared across :ref:`sub-interpreters `, so they should not include any subinterpreter-" "specific state." msgstr "" -#: c-api/typeobj.rst:2523 +#: c-api/typeobj.rst:2582 msgid "" "Also, since :c:type:`PyTypeObject` is only part of the :ref:`Limited API " "` as an opaque struct, any extension modules using static " "types must be compiled for a specific Python minor version." msgstr "" -#: c-api/typeobj.rst:2531 +#: c-api/typeobj.rst:2590 msgid "Heap Types" msgstr "" -#: c-api/typeobj.rst:2533 +#: c-api/typeobj.rst:2592 msgid "" "An alternative to :ref:`static types ` is *heap-allocated " "types*, or *heap types* for short, which correspond closely to classes " @@ -3794,29 +3805,29 @@ msgid "" "`Py_TPFLAGS_HEAPTYPE` flag set." msgstr "" -#: c-api/typeobj.rst:2538 +#: c-api/typeobj.rst:2597 msgid "" "This is done by filling a :c:type:`PyType_Spec` structure and calling :c:" "func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases`, :c:func:" "`PyType_FromModuleAndSpec`, or :c:func:`PyType_FromMetaclass`." msgstr "" -#: c-api/typeobj.rst:2546 +#: c-api/typeobj.rst:2605 msgid "Number Object Structures" msgstr "" -#: c-api/typeobj.rst:2553 +#: c-api/typeobj.rst:2612 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 "" -#: c-api/typeobj.rst:2883 +#: c-api/typeobj.rst:3074 msgid "Here is the structure definition::" msgstr "" -#: c-api/typeobj.rst:2561 +#: c-api/typeobj.rst:2620 msgid "" "typedef struct {\n" " binaryfunc nb_add;\n" @@ -3862,7 +3873,7 @@ msgid "" "} PyNumberMethods;" msgstr "" -#: c-api/typeobj.rst:2606 +#: c-api/typeobj.rst:2665 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 " @@ -3872,31 +3883,31 @@ msgid "" "and set an exception." msgstr "" -#: c-api/typeobj.rst:2615 +#: c-api/typeobj.rst:2674 msgid "" "The :c:member:`~PyNumberMethods.nb_reserved` field should always be " "``NULL``. It was previously called :c:member:`!nb_long`, and was renamed in " "Python 3.0.1." msgstr "" -#: c-api/typeobj.rst:2660 +#: c-api/typeobj.rst:2825 msgid "Mapping Object Structures" msgstr "" -#: c-api/typeobj.rst:2667 +#: c-api/typeobj.rst:2832 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the mapping protocol. It has three members:" msgstr "" -#: c-api/typeobj.rst:2672 +#: c-api/typeobj.rst:2839 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 "" -#: c-api/typeobj.rst:2678 +#: c-api/typeobj.rst:2847 msgid "" "This function is used by :c:func:`PyObject_GetItem` and :c:func:" "`PySequence_GetSlice`, and has the same signature as :c:func:`!" @@ -3904,7 +3915,7 @@ msgid "" "`PyMapping_Check` function to return ``1``, it can be ``NULL`` otherwise." msgstr "" -#: c-api/typeobj.rst:2686 +#: c-api/typeobj.rst:2857 msgid "" "This function is used by :c:func:`PyObject_SetItem`, :c:func:" "`PyObject_DelItem`, :c:func:`PySequence_SetSlice` and :c:func:" @@ -3914,17 +3925,17 @@ msgid "" "deletion." msgstr "" -#: c-api/typeobj.rst:2697 +#: c-api/typeobj.rst:2868 msgid "Sequence Object Structures" msgstr "" -#: c-api/typeobj.rst:2704 +#: c-api/typeobj.rst:2875 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the sequence protocol." msgstr "" -#: c-api/typeobj.rst:2709 +#: c-api/typeobj.rst:2882 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 " @@ -3932,21 +3943,21 @@ msgid "" "member:`~PySequenceMethods.sq_ass_item` slots." msgstr "" -#: c-api/typeobj.rst:2716 +#: c-api/typeobj.rst:2891 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 "" -#: c-api/typeobj.rst:2722 +#: c-api/typeobj.rst:2899 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 "" -#: c-api/typeobj.rst:2728 +#: c-api/typeobj.rst:2907 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 " @@ -3955,7 +3966,7 @@ msgid "" "``1``, it can be ``NULL`` otherwise." msgstr "" -#: c-api/typeobj.rst:2734 +#: c-api/typeobj.rst:2913 msgid "" "Negative indexes are handled as follows: if the :c:member:" "`~PySequenceMethods.sq_length` slot is filled, it is called and the sequence " @@ -3964,7 +3975,7 @@ msgid "" "index is passed as is to the function." msgstr "" -#: c-api/typeobj.rst:2741 +#: c-api/typeobj.rst:2922 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:" @@ -3973,14 +3984,14 @@ msgid "" "``NULL`` if the object does not support item assignment and deletion." msgstr "" -#: c-api/typeobj.rst:2750 +#: c-api/typeobj.rst:2933 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 "" -#: c-api/typeobj.rst:2757 +#: c-api/typeobj.rst:2942 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 " @@ -3990,7 +4001,7 @@ msgid "" "c:member:`~PyNumberMethods.nb_inplace_add` slot." msgstr "" -#: c-api/typeobj.rst:2766 +#: c-api/typeobj.rst:2953 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 " @@ -4000,74 +4011,74 @@ msgid "" "via the :c:member:`~PyNumberMethods.nb_inplace_multiply` slot." msgstr "" -#: c-api/typeobj.rst:2777 +#: c-api/typeobj.rst:2964 msgid "Buffer Object Structures" msgstr "" -#: c-api/typeobj.rst:2785 +#: c-api/typeobj.rst:2972 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 "" -#: c-api/typeobj.rst:2840 c-api/typeobj.rst:2905 c-api/typeobj.rst:2927 +#: c-api/typeobj.rst:3031 c-api/typeobj.rst:3100 c-api/typeobj.rst:3126 msgid "The signature of this function is::" msgstr "" -#: c-api/typeobj.rst:2793 +#: c-api/typeobj.rst:2982 msgid "int (PyObject *exporter, Py_buffer *view, int flags);" msgstr "" -#: c-api/typeobj.rst:2795 +#: c-api/typeobj.rst:2984 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 "" -#: c-api/typeobj.rst:2799 +#: c-api/typeobj.rst:2988 msgid "" "Check if the request can be met. If not, raise :exc:`BufferError`, set :c:" "expr:`view->obj` to ``NULL`` and return ``-1``." msgstr "" -#: c-api/typeobj.rst:2802 +#: c-api/typeobj.rst:2991 msgid "Fill in the requested fields." msgstr "" -#: c-api/typeobj.rst:2804 +#: c-api/typeobj.rst:2993 msgid "Increment an internal counter for the number of exports." msgstr "" -#: c-api/typeobj.rst:2806 +#: c-api/typeobj.rst:2995 msgid "" "Set :c:expr:`view->obj` to *exporter* and increment :c:expr:`view->obj`." msgstr "" -#: c-api/typeobj.rst:2808 +#: c-api/typeobj.rst:2997 msgid "Return ``0``." msgstr "" -#: c-api/typeobj.rst:2810 +#: c-api/typeobj.rst:2999 msgid "" "If *exporter* is part of a chain or tree of buffer providers, two main " "schemes can be used:" msgstr "" -#: c-api/typeobj.rst:2813 +#: c-api/typeobj.rst:3002 msgid "" "Re-export: Each member of the tree acts as the exporting object and sets :c:" "expr:`view->obj` to a new reference to itself." msgstr "" -#: c-api/typeobj.rst:2816 +#: c-api/typeobj.rst:3005 msgid "" "Redirect: The buffer request is redirected to the root object of the tree. " "Here, :c:expr:`view->obj` will be a new reference to the root object." msgstr "" -#: c-api/typeobj.rst:2820 +#: c-api/typeobj.rst:3009 msgid "" "The individual fields of *view* are described in section :ref:`Buffer " "structure `, the rules how an exporter must react to " @@ -4075,7 +4086,7 @@ msgid "" "types>`." msgstr "" -#: c-api/typeobj.rst:2825 +#: c-api/typeobj.rst:3014 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:" @@ -4084,23 +4095,23 @@ msgid "" "internal` are read-only for the consumer." msgstr "" -#: c-api/typeobj.rst:2832 +#: c-api/typeobj.rst:3021 msgid "" ":c:func:`PyBuffer_FillInfo` provides an easy way of exposing a simple bytes " "buffer while dealing correctly with all request types." msgstr "" -#: c-api/typeobj.rst:2835 +#: c-api/typeobj.rst:3024 msgid "" ":c:func:`PyObject_GetBuffer` is the interface for the consumer that wraps " "this function." msgstr "" -#: c-api/typeobj.rst:2842 +#: c-api/typeobj.rst:3033 msgid "void (PyObject *exporter, Py_buffer *view);" msgstr "" -#: c-api/typeobj.rst:2844 +#: c-api/typeobj.rst:3035 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 " @@ -4108,15 +4119,15 @@ msgid "" "these optional steps:" msgstr "" -#: c-api/typeobj.rst:2849 +#: c-api/typeobj.rst:3040 msgid "Decrement an internal counter for the number of exports." msgstr "" -#: c-api/typeobj.rst:2851 +#: c-api/typeobj.rst:3042 msgid "If the counter is ``0``, free all memory associated with *view*." msgstr "" -#: c-api/typeobj.rst:2853 +#: c-api/typeobj.rst:3044 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 " @@ -4124,30 +4135,30 @@ msgid "" "*view* argument." msgstr "" -#: c-api/typeobj.rst:2859 +#: c-api/typeobj.rst:3050 msgid "" "This function MUST NOT decrement :c:expr:`view->obj`, since that is done " "automatically in :c:func:`PyBuffer_Release` (this scheme is useful for " "breaking reference cycles)." msgstr "" -#: c-api/typeobj.rst:2864 +#: c-api/typeobj.rst:3055 msgid "" ":c:func:`PyBuffer_Release` is the interface for the consumer that wraps this " "function." msgstr "" -#: c-api/typeobj.rst:2872 +#: c-api/typeobj.rst:3063 msgid "Async Object Structures" msgstr "" -#: c-api/typeobj.rst:2880 +#: c-api/typeobj.rst:3071 msgid "" "This structure holds pointers to the functions required to implement :term:" "`awaitable` and :term:`asynchronous iterator` objects." msgstr "" -#: c-api/typeobj.rst:2885 +#: c-api/typeobj.rst:3076 msgid "" "typedef struct {\n" " unaryfunc am_await;\n" @@ -4157,61 +4168,61 @@ msgid "" "} PyAsyncMethods;" msgstr "" -#: c-api/typeobj.rst:2896 +#: c-api/typeobj.rst:3089 msgid "PyObject *am_await(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:2898 +#: c-api/typeobj.rst:3091 msgid "" "The returned object must be an :term:`iterator`, i.e. :c:func:`PyIter_Check` " "must return ``1`` for it." msgstr "" -#: c-api/typeobj.rst:2901 +#: c-api/typeobj.rst:3094 msgid "" "This slot may be set to ``NULL`` if an object is not an :term:`awaitable`." msgstr "" -#: c-api/typeobj.rst:2907 +#: c-api/typeobj.rst:3102 msgid "PyObject *am_aiter(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:2909 +#: c-api/typeobj.rst:3104 msgid "" "Must return an :term:`asynchronous iterator` object. See :meth:`~object." "__anext__` for details." msgstr "" -#: c-api/typeobj.rst:2912 +#: c-api/typeobj.rst:3107 msgid "" "This slot may be set to ``NULL`` if an object does not implement " "asynchronous iteration protocol." msgstr "" -#: c-api/typeobj.rst:2919 +#: c-api/typeobj.rst:3116 msgid "PyObject *am_anext(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:2921 +#: c-api/typeobj.rst:3118 msgid "" "Must return an :term:`awaitable` object. See :meth:`~object.__anext__` for " "details. This slot may be set to ``NULL``." msgstr "" -#: c-api/typeobj.rst:2929 +#: c-api/typeobj.rst:3128 msgid "PySendResult am_send(PyObject *self, PyObject *arg, PyObject **result);" msgstr "" -#: c-api/typeobj.rst:2931 +#: c-api/typeobj.rst:3130 msgid "" "See :c:func:`PyIter_Send` for details. This slot may be set to ``NULL``." msgstr "" -#: c-api/typeobj.rst:2940 +#: c-api/typeobj.rst:3139 msgid "Slot Type typedefs" msgstr "" -#: c-api/typeobj.rst:2944 +#: c-api/typeobj.rst:3143 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 " @@ -4225,80 +4236,80 @@ msgid "" "length of the block should be :c:member:`~PyTypeObject.tp_basicsize`." msgstr "" -#: c-api/typeobj.rst:2954 +#: c-api/typeobj.rst:3153 msgid "" "This function should not do any other instance initialization, not even to " "allocate additional memory; that should be done by :c:member:`~PyTypeObject." "tp_new`." msgstr "" -#: c-api/typeobj.rst:2961 +#: c-api/typeobj.rst:3160 msgid "See :c:member:`~PyTypeObject.tp_free`." msgstr "" -#: c-api/typeobj.rst:2965 +#: c-api/typeobj.rst:3164 msgid "See :c:member:`~PyTypeObject.tp_new`." msgstr "" -#: c-api/typeobj.rst:2969 +#: c-api/typeobj.rst:3168 msgid "See :c:member:`~PyTypeObject.tp_init`." msgstr "" -#: c-api/typeobj.rst:2973 +#: c-api/typeobj.rst:3172 msgid "See :c:member:`~PyTypeObject.tp_repr`." msgstr "" -#: c-api/typeobj.rst:2986 +#: c-api/typeobj.rst:3185 msgid "Return the value of the named attribute for the object." msgstr "" -#: c-api/typeobj.rst:2992 +#: c-api/typeobj.rst:3191 msgid "" "Set the value of the named attribute for the object. The value argument is " "set to ``NULL`` to delete the attribute." msgstr "" -#: c-api/typeobj.rst:2988 +#: c-api/typeobj.rst:3187 msgid "See :c:member:`~PyTypeObject.tp_getattro`." msgstr "" -#: c-api/typeobj.rst:2995 +#: c-api/typeobj.rst:3194 msgid "See :c:member:`~PyTypeObject.tp_setattro`." msgstr "" -#: c-api/typeobj.rst:2999 +#: c-api/typeobj.rst:3198 msgid "See :c:member:`~PyTypeObject.tp_descr_get`." msgstr "" -#: c-api/typeobj.rst:3003 +#: c-api/typeobj.rst:3202 msgid "See :c:member:`~PyTypeObject.tp_descr_set`." msgstr "" -#: c-api/typeobj.rst:3007 +#: c-api/typeobj.rst:3206 msgid "See :c:member:`~PyTypeObject.tp_hash`." msgstr "" -#: c-api/typeobj.rst:3011 +#: c-api/typeobj.rst:3210 msgid "See :c:member:`~PyTypeObject.tp_richcompare`." msgstr "" -#: c-api/typeobj.rst:3015 +#: c-api/typeobj.rst:3214 msgid "See :c:member:`~PyTypeObject.tp_iter`." msgstr "" -#: c-api/typeobj.rst:3019 +#: c-api/typeobj.rst:3218 msgid "See :c:member:`~PyTypeObject.tp_iternext`." msgstr "" -#: c-api/typeobj.rst:3033 +#: c-api/typeobj.rst:3232 msgid "See :c:member:`~PyAsyncMethods.am_send`." msgstr "" -#: c-api/typeobj.rst:3049 +#: c-api/typeobj.rst:3248 msgid "Examples" msgstr "" -#: c-api/typeobj.rst:3051 +#: c-api/typeobj.rst:3250 msgid "" "The following are simple examples of Python type definitions. They include " "common usage you may encounter. Some demonstrate tricky corner cases. For " @@ -4306,11 +4317,11 @@ msgid "" "and :ref:`new-types-topics`." msgstr "" -#: c-api/typeobj.rst:3056 +#: c-api/typeobj.rst:3255 msgid "A basic :ref:`static type `::" msgstr "" -#: c-api/typeobj.rst:3058 +#: c-api/typeobj.rst:3257 msgid "" "typedef struct {\n" " PyObject_HEAD\n" @@ -4328,13 +4339,13 @@ msgid "" "};" msgstr "" -#: c-api/typeobj.rst:3073 +#: c-api/typeobj.rst:3272 msgid "" "You may also find older code (especially in the CPython code base) with a " "more verbose initializer::" msgstr "" -#: c-api/typeobj.rst:3076 +#: c-api/typeobj.rst:3275 msgid "" "static PyTypeObject MyObject_Type = {\n" " PyVarObject_HEAD_INIT(NULL, 0)\n" @@ -4378,11 +4389,11 @@ msgid "" "};" msgstr "" -#: c-api/typeobj.rst:3117 +#: c-api/typeobj.rst:3316 msgid "A type that supports weakrefs, instance dicts, and hashing::" msgstr "" -#: c-api/typeobj.rst:3119 +#: c-api/typeobj.rst:3318 msgid "" "typedef struct {\n" " PyObject_HEAD\n" @@ -4408,14 +4419,14 @@ msgid "" "};" msgstr "" -#: c-api/typeobj.rst:3142 +#: c-api/typeobj.rst:3341 msgid "" "A str subclass that cannot be subclassed and cannot be called to create " "instances (e.g. uses a separate factory func) using :c:macro:" "`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag::" msgstr "" -#: c-api/typeobj.rst:3146 +#: c-api/typeobj.rst:3345 msgid "" "typedef struct {\n" " PyUnicodeObject raw;\n" @@ -4433,12 +4444,12 @@ msgid "" "};" msgstr "" -#: c-api/typeobj.rst:3161 +#: c-api/typeobj.rst:3360 msgid "" "The simplest :ref:`static type ` with fixed-length instances::" msgstr "" -#: c-api/typeobj.rst:3163 +#: c-api/typeobj.rst:3362 msgid "" "typedef struct {\n" " PyObject_HEAD\n" @@ -4450,13 +4461,13 @@ msgid "" "};" msgstr "" -#: c-api/typeobj.rst:3172 +#: c-api/typeobj.rst:3371 msgid "" "The simplest :ref:`static type ` with variable-length " "instances::" msgstr "" -#: c-api/typeobj.rst:3174 +#: c-api/typeobj.rst:3373 msgid "" "typedef struct {\n" " PyObject_VAR_HEAD\n" @@ -4471,14 +4482,14 @@ msgid "" "};" msgstr "" -#: c-api/typeobj.rst:978 +#: c-api/typeobj.rst:987 msgid "built-in function" msgstr "" -#: c-api/typeobj.rst:913 +#: c-api/typeobj.rst:920 msgid "repr" msgstr "" -#: c-api/typeobj.rst:978 +#: c-api/typeobj.rst:987 msgid "hash" msgstr "" diff --git a/c-api/unicode.po b/c-api/unicode.po index afd2dde3..2d040318 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -310,34 +310,46 @@ msgstr "" #: c-api/unicode.rst:310 msgid "" +"Return the high UTF-16 surrogate (``0xD800`` to ``0xDBFF``) for a Unicode " +"code point in the range ``[0x10000; 0x10FFFF]``." +msgstr "" + +#: c-api/unicode.rst:315 +msgid "" +"Return the low UTF-16 surrogate (``0xDC00`` to ``0xDFFF``) for a Unicode " +"code point in the range ``[0x10000; 0x10FFFF]``." +msgstr "" + +#: c-api/unicode.rst:320 +msgid "" "Join two surrogate code points and return a single :c:type:`Py_UCS4` value. " "*high* and *low* are respectively the leading and trailing surrogates in a " -"surrogate pair. *high* must be in the range [0xD800; 0xDBFF] and *low* must " -"be in the range [0xDC00; 0xDFFF]." +"surrogate pair. *high* must be in the range ``[0xD800; 0xDBFF]`` and *low* " +"must be in the range ``[0xDC00; 0xDFFF]``." msgstr "" -#: c-api/unicode.rst:317 +#: c-api/unicode.rst:327 msgid "Creating and accessing Unicode strings" msgstr "" -#: c-api/unicode.rst:319 +#: c-api/unicode.rst:329 msgid "" "To create Unicode objects and access their basic sequence properties, use " "these APIs:" msgstr "" -#: c-api/unicode.rst:324 +#: c-api/unicode.rst:334 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 "" -#: c-api/unicode.rst:328 +#: c-api/unicode.rst:338 msgid "On error, set an exception and return ``NULL``." msgstr "" -#: c-api/unicode.rst:330 +#: c-api/unicode.rst:340 msgid "" "After creation, the string can be filled by :c:func:`PyUnicode_WriteChar`, :" "c:func:`PyUnicode_CopyCharacters`, :c:func:`PyUnicode_Fill`, :c:func:" @@ -346,38 +358,38 @@ msgid "" "before it's filled with its final contents, a string:" msgstr "" -#: c-api/unicode.rst:337 +#: c-api/unicode.rst:347 msgid "must not be hashed," msgstr "" -#: c-api/unicode.rst:338 +#: c-api/unicode.rst:348 msgid "" "must not be :c:func:`converted to UTF-8 `, or " "another non-\"canonical\" representation," msgstr "" -#: c-api/unicode.rst:340 +#: c-api/unicode.rst:350 msgid "must not have its reference count changed," msgstr "" -#: c-api/unicode.rst:341 +#: c-api/unicode.rst:351 msgid "must not be shared with code that might do one of the above." msgstr "" -#: c-api/unicode.rst:343 +#: c-api/unicode.rst:353 msgid "" "This list is not exhaustive. Avoiding these uses is your responsibility; " "Python does not always check these requirements." msgstr "" -#: c-api/unicode.rst:346 +#: c-api/unicode.rst:356 msgid "" "To avoid accidentally exposing a partially-written string object, prefer " "using the :c:type:`PyUnicodeWriter` API, or one of the ``PyUnicode_From*`` " "functions below." msgstr "" -#: c-api/unicode.rst:357 +#: c-api/unicode.rst:367 msgid "" "Create a new Unicode object with the given *kind* (possible values are :c:" "macro:`PyUnicode_1BYTE_KIND` etc., as returned by :c:func:" @@ -385,7 +397,7 @@ msgid "" "1, 2 or 4 bytes per character, as given by the kind." msgstr "" -#: c-api/unicode.rst:362 +#: c-api/unicode.rst:372 msgid "" "If necessary, the input *buffer* is copied and transformed into the " "canonical representation. For example, if the *buffer* is a UCS4 string (:c:" @@ -393,7 +405,7 @@ msgid "" "range, it will be transformed into UCS1 (:c:macro:`PyUnicode_1BYTE_KIND`)." msgstr "" -#: c-api/unicode.rst:373 +#: c-api/unicode.rst:383 msgid "" "Create a Unicode object from the char buffer *str*. The bytes will be " "interpreted as being UTF-8 encoded. The buffer is copied into the new " @@ -401,29 +413,29 @@ msgid "" "data is not allowed." msgstr "" -#: c-api/unicode.rst:379 +#: c-api/unicode.rst:389 msgid "This function raises :exc:`SystemError` when:" msgstr "" -#: c-api/unicode.rst:381 +#: c-api/unicode.rst:391 msgid "*size* < 0," msgstr "" -#: c-api/unicode.rst:382 +#: c-api/unicode.rst:392 msgid "*str* is ``NULL`` and *size* > 0" msgstr "" -#: c-api/unicode.rst:384 +#: c-api/unicode.rst:394 msgid "*str* == ``NULL`` with *size* > 0 is not allowed anymore." msgstr "" -#: c-api/unicode.rst:390 +#: c-api/unicode.rst:400 msgid "" "Create a Unicode object from a UTF-8 encoded null-terminated char buffer " "*str*." msgstr "" -#: c-api/unicode.rst:396 +#: c-api/unicode.rst:406 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 " @@ -432,23 +444,23 @@ msgid "" "*format* ASCII-encoded string." msgstr "" -#: c-api/unicode.rst:402 +#: c-api/unicode.rst:412 msgid "" "A conversion specifier contains two or more characters and has the following " "components, which must occur in this order:" msgstr "" -#: c-api/unicode.rst:405 +#: c-api/unicode.rst:415 msgid "The ``'%'`` character, which marks the start of the specifier." msgstr "" -#: c-api/unicode.rst:407 +#: c-api/unicode.rst:417 msgid "" "Conversion flags (optional), which affect the result of some conversion " "types." msgstr "" -#: c-api/unicode.rst:410 +#: c-api/unicode.rst:420 msgid "" "Minimum field width (optional). If specified as an ``'*'`` (asterisk), the " "actual width is given in the next argument, which must be of type :c:expr:" @@ -456,7 +468,7 @@ msgid "" "optional precision." msgstr "" -#: c-api/unicode.rst:415 +#: c-api/unicode.rst:425 msgid "" "Precision (optional), given as a ``'.'`` (dot) followed by the precision. If " "specified as ``'*'`` (an asterisk), the actual precision is given in the " @@ -464,312 +476,312 @@ msgid "" "comes after the precision." msgstr "" -#: c-api/unicode.rst:420 +#: c-api/unicode.rst:430 msgid "Length modifier (optional)." msgstr "" -#: c-api/unicode.rst:422 +#: c-api/unicode.rst:432 msgid "Conversion type." msgstr "" -#: c-api/unicode.rst:424 +#: c-api/unicode.rst:434 msgid "The conversion flag characters are:" msgstr "" -#: c-api/unicode.rst:429 +#: c-api/unicode.rst:439 msgid "Flag" msgstr "" -#: c-api/unicode.rst:429 +#: c-api/unicode.rst:439 msgid "Meaning" msgstr "" -#: c-api/unicode.rst:431 +#: c-api/unicode.rst:441 msgid "``0``" msgstr "" -#: c-api/unicode.rst:431 +#: c-api/unicode.rst:441 msgid "The conversion will be zero padded for numeric values." msgstr "" -#: c-api/unicode.rst:433 +#: c-api/unicode.rst:443 msgid "``-``" msgstr "" -#: c-api/unicode.rst:433 +#: c-api/unicode.rst:443 msgid "" "The converted value is left adjusted (overrides the ``0`` flag if both are " "given)." msgstr "" -#: c-api/unicode.rst:437 +#: c-api/unicode.rst:447 msgid "" "The length modifiers for following integer conversions (``d``, ``i``, ``o``, " "``u``, ``x``, or ``X``) specify the type of the argument (:c:expr:`int` by " "default):" msgstr "" -#: c-api/unicode.rst:444 +#: c-api/unicode.rst:454 msgid "Modifier" msgstr "" -#: c-api/unicode.rst:444 +#: c-api/unicode.rst:454 msgid "Types" msgstr "" -#: c-api/unicode.rst:446 +#: c-api/unicode.rst:456 msgid "``l``" msgstr "" -#: c-api/unicode.rst:446 +#: c-api/unicode.rst:456 msgid ":c:expr:`long` or :c:expr:`unsigned long`" msgstr "" -#: c-api/unicode.rst:448 +#: c-api/unicode.rst:458 msgid "``ll``" msgstr "" -#: c-api/unicode.rst:448 +#: c-api/unicode.rst:458 msgid ":c:expr:`long long` or :c:expr:`unsigned long long`" msgstr "" -#: c-api/unicode.rst:450 +#: c-api/unicode.rst:460 msgid "``j``" msgstr "" -#: c-api/unicode.rst:450 +#: c-api/unicode.rst:460 msgid ":c:type:`intmax_t` or :c:type:`uintmax_t`" msgstr "" -#: c-api/unicode.rst:452 +#: c-api/unicode.rst:462 msgid "``z``" msgstr "" -#: c-api/unicode.rst:452 +#: c-api/unicode.rst:462 msgid ":c:type:`size_t` or :c:type:`ssize_t`" msgstr "" -#: c-api/unicode.rst:454 +#: c-api/unicode.rst:464 msgid "``t``" msgstr "" -#: c-api/unicode.rst:454 +#: c-api/unicode.rst:464 msgid ":c:type:`ptrdiff_t`" msgstr "" -#: c-api/unicode.rst:457 +#: c-api/unicode.rst:467 msgid "" "The length modifier ``l`` for following conversions ``s`` or ``V`` specify " "that the type of the argument is :c:expr:`const wchar_t*`." msgstr "" -#: c-api/unicode.rst:460 +#: c-api/unicode.rst:470 msgid "The conversion specifiers are:" msgstr "" -#: c-api/unicode.rst:466 +#: c-api/unicode.rst:476 msgid "Conversion Specifier" msgstr "" -#: c-api/unicode.rst:467 +#: c-api/unicode.rst:477 msgid "Type" msgstr "" -#: c-api/unicode.rst:468 +#: c-api/unicode.rst:478 msgid "Comment" msgstr "" -#: c-api/unicode.rst:470 +#: c-api/unicode.rst:480 msgid "``%``" msgstr "" -#: c-api/unicode.rst:471 +#: c-api/unicode.rst:481 msgid "*n/a*" msgstr "" -#: c-api/unicode.rst:472 +#: c-api/unicode.rst:482 msgid "The literal ``%`` character." msgstr "" -#: c-api/unicode.rst:474 +#: c-api/unicode.rst:484 msgid "``d``, ``i``" msgstr "" -#: c-api/unicode.rst:479 c-api/unicode.rst:487 c-api/unicode.rst:491 +#: c-api/unicode.rst:489 c-api/unicode.rst:497 c-api/unicode.rst:501 msgid "Specified by the length modifier" msgstr "" -#: c-api/unicode.rst:476 +#: c-api/unicode.rst:486 msgid "The decimal representation of a signed C integer." msgstr "" -#: c-api/unicode.rst:478 +#: c-api/unicode.rst:488 msgid "``u``" msgstr "" -#: c-api/unicode.rst:480 +#: c-api/unicode.rst:490 msgid "The decimal representation of an unsigned C integer." msgstr "" -#: c-api/unicode.rst:482 +#: c-api/unicode.rst:492 msgid "``o``" msgstr "" -#: c-api/unicode.rst:484 +#: c-api/unicode.rst:494 msgid "The octal representation of an unsigned C integer." msgstr "" -#: c-api/unicode.rst:486 +#: c-api/unicode.rst:496 msgid "``x``" msgstr "" -#: c-api/unicode.rst:488 +#: c-api/unicode.rst:498 msgid "The hexadecimal representation of an unsigned C integer (lowercase)." msgstr "" -#: c-api/unicode.rst:490 +#: c-api/unicode.rst:500 msgid "``X``" msgstr "" -#: c-api/unicode.rst:492 +#: c-api/unicode.rst:502 msgid "The hexadecimal representation of an unsigned C integer (uppercase)." msgstr "" -#: c-api/unicode.rst:494 +#: c-api/unicode.rst:504 msgid "``c``" msgstr "" -#: c-api/unicode.rst:495 +#: c-api/unicode.rst:505 msgid ":c:expr:`int`" msgstr "" -#: c-api/unicode.rst:496 +#: c-api/unicode.rst:506 msgid "A single character." msgstr "" -#: c-api/unicode.rst:498 +#: c-api/unicode.rst:508 msgid "``s``" msgstr "" -#: c-api/unicode.rst:499 +#: c-api/unicode.rst:509 msgid ":c:expr:`const char*` or :c:expr:`const wchar_t*`" msgstr "" -#: c-api/unicode.rst:500 +#: c-api/unicode.rst:510 msgid "A null-terminated C character array." msgstr "" -#: c-api/unicode.rst:502 +#: c-api/unicode.rst:512 msgid "``p``" msgstr "" -#: c-api/unicode.rst:503 +#: c-api/unicode.rst:513 msgid ":c:expr:`const void*`" msgstr "" -#: c-api/unicode.rst:504 +#: c-api/unicode.rst:514 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 "" -#: c-api/unicode.rst:509 +#: c-api/unicode.rst:519 msgid "``A``" msgstr "" -#: c-api/unicode.rst:514 c-api/unicode.rst:528 c-api/unicode.rst:537 +#: c-api/unicode.rst:524 c-api/unicode.rst:538 c-api/unicode.rst:547 msgid ":c:expr:`PyObject*`" msgstr "" -#: c-api/unicode.rst:511 +#: c-api/unicode.rst:521 msgid "The result of calling :func:`ascii`." msgstr "" -#: c-api/unicode.rst:513 +#: c-api/unicode.rst:523 msgid "``U``" msgstr "" -#: c-api/unicode.rst:515 +#: c-api/unicode.rst:525 msgid "A Unicode object." msgstr "" -#: c-api/unicode.rst:517 +#: c-api/unicode.rst:527 msgid "``V``" msgstr "" -#: c-api/unicode.rst:518 +#: c-api/unicode.rst:528 msgid ":c:expr:`PyObject*`, :c:expr:`const char*` or :c:expr:`const wchar_t*`" msgstr "" -#: c-api/unicode.rst:519 +#: c-api/unicode.rst:529 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 "" -#: c-api/unicode.rst:523 +#: c-api/unicode.rst:533 msgid "``S``" msgstr "" -#: c-api/unicode.rst:525 +#: c-api/unicode.rst:535 msgid "The result of calling :c:func:`PyObject_Str`." msgstr "" -#: c-api/unicode.rst:527 +#: c-api/unicode.rst:537 msgid "``R``" msgstr "" -#: c-api/unicode.rst:529 +#: c-api/unicode.rst:539 msgid "The result of calling :c:func:`PyObject_Repr`." msgstr "" -#: c-api/unicode.rst:531 +#: c-api/unicode.rst:541 msgid "``T``" msgstr "" -#: c-api/unicode.rst:533 +#: c-api/unicode.rst:543 msgid "" "Get the fully qualified name of an object type; call :c:func:" "`PyType_GetFullyQualifiedName`." msgstr "" -#: c-api/unicode.rst:536 +#: c-api/unicode.rst:546 msgid "``#T``" msgstr "" -#: c-api/unicode.rst:538 +#: c-api/unicode.rst:548 msgid "" "Similar to ``T`` format, but use a colon (``:``) as separator between the " "module name and the qualified name." msgstr "" -#: c-api/unicode.rst:541 +#: c-api/unicode.rst:551 msgid "``N``" msgstr "" -#: c-api/unicode.rst:547 +#: c-api/unicode.rst:557 msgid ":c:expr:`PyTypeObject*`" msgstr "" -#: c-api/unicode.rst:543 +#: c-api/unicode.rst:553 msgid "" "Get the fully qualified name of a type; call :c:func:" "`PyType_GetFullyQualifiedName`." msgstr "" -#: c-api/unicode.rst:546 +#: c-api/unicode.rst:556 msgid "``#N``" msgstr "" -#: c-api/unicode.rst:548 +#: c-api/unicode.rst:558 msgid "" "Similar to ``N`` format, but use a colon (``:``) as separator between the " "module name and the qualified name." msgstr "" -#: c-api/unicode.rst:552 +#: c-api/unicode.rst:562 msgid "" "The width formatter unit is number of characters rather than bytes. The " "precision formatter unit is number of bytes or :c:type:`wchar_t` items (if " @@ -779,28 +791,28 @@ msgid "" "``PyObject*`` argument is not ``NULL``)." msgstr "" -#: c-api/unicode.rst:560 +#: c-api/unicode.rst:570 msgid "" "Unlike to C :c:func:`printf` the ``0`` flag has effect even when a precision " "is given for integer conversions (``d``, ``i``, ``u``, ``o``, ``x``, or " "``X``)." msgstr "" -#: c-api/unicode.rst:564 +#: c-api/unicode.rst:574 msgid "Support for ``\"%lld\"`` and ``\"%llu\"`` added." msgstr "" -#: c-api/unicode.rst:567 +#: c-api/unicode.rst:577 msgid "Support for ``\"%li\"``, ``\"%lli\"`` and ``\"%zi\"`` added." msgstr "" -#: c-api/unicode.rst:570 +#: c-api/unicode.rst:580 msgid "" "Support width and precision formatter for ``\"%s\"``, ``\"%A\"``, " "``\"%U\"``, ``\"%V\"``, ``\"%S\"``, ``\"%R\"`` added." msgstr "" -#: c-api/unicode.rst:574 +#: c-api/unicode.rst:584 msgid "" "Support for conversion specifiers ``o`` and ``X``. Support for length " "modifiers ``j`` and ``t``. Length modifiers are now applied to all integer " @@ -809,50 +821,50 @@ msgid "" "flag ``-``." msgstr "" -#: c-api/unicode.rst:582 +#: c-api/unicode.rst:592 msgid "" "An unrecognized format character now sets a :exc:`SystemError`. In previous " "versions it caused all the rest of the format string to be copied as-is to " "the result string, and any extra arguments discarded." msgstr "" -#: c-api/unicode.rst:586 +#: c-api/unicode.rst:596 msgid "Support for ``%T``, ``%#T``, ``%N`` and ``%#N`` formats added." msgstr "" -#: c-api/unicode.rst:592 +#: c-api/unicode.rst:602 msgid "" "Identical to :c:func:`PyUnicode_FromFormat` except that it takes exactly two " "arguments." msgstr "" -#: c-api/unicode.rst:598 +#: c-api/unicode.rst:608 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 " "a new :term:`strong reference` to the object." msgstr "" -#: c-api/unicode.rst:602 +#: c-api/unicode.rst:612 msgid "" "Objects other than Unicode or its subtypes will cause a :exc:`TypeError`." msgstr "" -#: c-api/unicode.rst:607 +#: c-api/unicode.rst:617 msgid "Create a Unicode Object from the given Unicode code point *ordinal*." msgstr "" -#: c-api/unicode.rst:609 +#: c-api/unicode.rst:619 msgid "" "The ordinal must be in ``range(0x110000)``. A :exc:`ValueError` is raised in " "the case it is not." msgstr "" -#: c-api/unicode.rst:616 +#: c-api/unicode.rst:626 msgid "Decode an encoded object *obj* to a Unicode object." msgstr "" -#: c-api/unicode.rst:618 +#: c-api/unicode.rst:628 msgid "" ":class:`bytes`, :class:`bytearray` and other :term:`bytes-like objects " "` are decoded according to the given *encoding* and using " @@ -860,40 +872,40 @@ msgid "" "interface use the default values (see :ref:`builtincodecs` for details)." msgstr "" -#: c-api/unicode.rst:624 +#: c-api/unicode.rst:634 msgid "" "All other objects, including Unicode objects, cause a :exc:`TypeError` to be " "set." msgstr "" -#: c-api/unicode.rst:627 +#: c-api/unicode.rst:637 msgid "" "The API returns ``NULL`` if there was an error. The caller is responsible " "for decref'ing the returned objects." msgstr "" -#: c-api/unicode.rst:633 +#: c-api/unicode.rst:643 msgid "" "Append the string *right* to the end of *p_left*. *p_left* must point to a :" "term:`strong reference` to a Unicode object; :c:func:`!PyUnicode_Append` " "releases (\"steals\") this reference." msgstr "" -#: c-api/unicode.rst:637 +#: c-api/unicode.rst:647 msgid "On error, set *\\*p_left* to ``NULL`` and set an exception." msgstr "" -#: c-api/unicode.rst:639 +#: c-api/unicode.rst:649 msgid "On success, set *\\*p_left* to a new strong reference to the result." msgstr "" -#: c-api/unicode.rst:644 +#: c-api/unicode.rst:654 msgid "" "The function is similar to :c:func:`PyUnicode_Append`, with the only " "difference being that it decrements the reference count of *right* by one." msgstr "" -#: c-api/unicode.rst:650 +#: c-api/unicode.rst:660 msgid "" "Return a mapping suitable for decoding a custom single-byte encoding. Given " "a Unicode string *string* of up to 256 characters representing an encoding " @@ -902,27 +914,27 @@ msgid "" "return ``NULL`` on invalid input." msgstr "" -#: c-api/unicode.rst:661 +#: c-api/unicode.rst:671 msgid "" "Return the name of the default string encoding, ``\"utf-8\"``. See :func:" "`sys.getdefaultencoding`." msgstr "" -#: c-api/unicode.rst:664 +#: c-api/unicode.rst:674 msgid "" "The returned string does not need to be freed, and is valid until " "interpreter shutdown." msgstr "" -#: c-api/unicode.rst:670 +#: c-api/unicode.rst:680 msgid "Return the length of the Unicode object, in code points." msgstr "" -#: c-api/unicode.rst:672 +#: c-api/unicode.rst:682 msgid "On error, set an exception and return ``-1``." msgstr "" -#: c-api/unicode.rst:683 +#: c-api/unicode.rst:693 msgid "" "Copy characters from one Unicode object into another. This function " "performs character conversion when necessary and falls back to :c:func:`!" @@ -930,87 +942,87 @@ msgid "" "otherwise returns the number of copied characters." msgstr "" -#: c-api/unicode.rst:718 c-api/unicode.rst:738 +#: c-api/unicode.rst:728 c-api/unicode.rst:748 msgid "" "The string must not have been “used” yet. See :c:func:`PyUnicode_New` for " "details." msgstr "" -#: c-api/unicode.rst:696 +#: c-api/unicode.rst:706 msgid "" "Resize a Unicode object *\\*unicode* to the new *length* in code points." msgstr "" -#: c-api/unicode.rst:698 +#: c-api/unicode.rst:708 msgid "" "Try to resize the string in place (which is usually faster than allocating a " "new string and copying characters), or create a new string." msgstr "" -#: c-api/unicode.rst:701 +#: c-api/unicode.rst:711 msgid "" "*\\*unicode* is modified to point to the new (resized) object and ``0`` is " "returned on success. Otherwise, ``-1`` is returned and an exception is set, " "and *\\*unicode* is left untouched." msgstr "" -#: c-api/unicode.rst:705 +#: c-api/unicode.rst:715 msgid "" "The function doesn't check string content, the result may not be a string in " "canonical representation." msgstr "" -#: c-api/unicode.rst:712 +#: c-api/unicode.rst:722 msgid "" "Fill a string with a character: write *fill_char* into ``unicode[start:" "start+length]``." msgstr "" -#: c-api/unicode.rst:715 +#: c-api/unicode.rst:725 msgid "" "Fail if *fill_char* is bigger than the string maximum character, or if the " "string has more than 1 reference." msgstr "" -#: c-api/unicode.rst:721 +#: c-api/unicode.rst:731 msgid "" "Return the number of written character, or return ``-1`` and raise an " "exception on error." msgstr "" -#: c-api/unicode.rst:730 +#: c-api/unicode.rst:740 msgid "" "Write a *character* to the string *unicode* at the zero-based *index*. " "Return ``0`` on success, ``-1`` on error with an exception set." msgstr "" -#: c-api/unicode.rst:733 +#: c-api/unicode.rst:743 msgid "" "This function checks that *unicode* is a Unicode object, that the index is " -"not out of bounds, and that the object's reference count is one). See :c:" -"func:`PyUnicode_WRITE` for a version that skips these checks, making them " -"your responsibility." +"not out of bounds, and that the object's reference count is one. See :c:func:" +"`PyUnicode_WRITE` for a version that skips these checks, making them your " +"responsibility." msgstr "" -#: c-api/unicode.rst:746 +#: c-api/unicode.rst:756 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 :c:func:" "`PyUnicode_READ_CHAR`, which performs no error checking." msgstr "" -#: c-api/unicode.rst:750 +#: c-api/unicode.rst:760 msgid "Return character on success, ``-1`` on error with an exception set." msgstr "" -#: c-api/unicode.rst:758 +#: c-api/unicode.rst:768 msgid "" "Return a substring of *unicode*, from character index *start* (included) to " "character index *end* (excluded). Negative indices are not supported. On " "error, set an exception and return ``NULL``." msgstr "" -#: c-api/unicode.rst:768 +#: c-api/unicode.rst:778 msgid "" "Copy the string *unicode* into a UCS4 buffer, including a null character, if " "*copy_null* is set. Returns ``NULL`` and sets an exception on error (in " @@ -1018,7 +1030,7 @@ msgid "" "*unicode*). *buffer* is returned on success." msgstr "" -#: c-api/unicode.rst:778 +#: c-api/unicode.rst:788 msgid "" "Copy the string *unicode* into a new UCS4 buffer that is allocated using :c:" "func:`PyMem_Malloc`. If this fails, ``NULL`` is returned with a :exc:" @@ -1026,17 +1038,17 @@ msgid "" "appended." msgstr "" -#: c-api/unicode.rst:787 +#: c-api/unicode.rst:797 msgid "Locale Encoding" msgstr "" -#: c-api/unicode.rst:789 +#: c-api/unicode.rst:799 msgid "" "The current locale encoding can be used to decode text from the operating " "system." msgstr "" -#: c-api/unicode.rst:796 +#: c-api/unicode.rst:806 msgid "" "Decode a string from UTF-8 on Android and VxWorks, or from the current " "locale encoding on other platforms. The supported error handlers are " @@ -1045,21 +1057,21 @@ msgid "" "null character but cannot contain embedded null characters." msgstr "" -#: c-api/unicode.rst:803 +#: c-api/unicode.rst:813 msgid "" "Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` to decode a string from the :" "term:`filesystem encoding and error handler`." msgstr "" -#: c-api/unicode.rst:841 +#: c-api/unicode.rst:851 msgid "This function ignores the :ref:`Python UTF-8 Mode `." msgstr "" -#: c-api/unicode.rst:926 +#: c-api/unicode.rst:936 msgid "The :c:func:`Py_DecodeLocale` function." msgstr "" -#: c-api/unicode.rst:814 +#: c-api/unicode.rst:824 msgid "" "The function now also uses the current locale encoding for the " "``surrogateescape`` error handler, except on Android. Previously, :c:func:" @@ -1067,13 +1079,13 @@ msgid "" "locale encoding was used for ``strict``." msgstr "" -#: c-api/unicode.rst:823 +#: c-api/unicode.rst:833 msgid "" "Similar to :c:func:`PyUnicode_DecodeLocaleAndSize`, but compute the string " "length using :c:func:`!strlen`." msgstr "" -#: c-api/unicode.rst:831 +#: c-api/unicode.rst:841 msgid "" "Encode a Unicode object to UTF-8 on Android and VxWorks, or to the current " "locale encoding on other platforms. The supported error handlers are " @@ -1082,17 +1094,17 @@ msgid "" "`bytes` object. *unicode* cannot contain embedded null characters." msgstr "" -#: c-api/unicode.rst:838 +#: c-api/unicode.rst:848 msgid "" "Use :c:func:`PyUnicode_EncodeFSDefault` to encode a string to the :term:" "`filesystem encoding and error handler`." msgstr "" -#: c-api/unicode.rst:957 +#: c-api/unicode.rst:967 msgid "The :c:func:`Py_EncodeLocale` function." msgstr "" -#: c-api/unicode.rst:849 +#: c-api/unicode.rst:859 msgid "" "The function now also uses the current locale encoding for the " "``surrogateescape`` error handler, except on Android. Previously, :c:func:" @@ -1100,24 +1112,24 @@ msgid "" "locale encoding was used for ``strict``." msgstr "" -#: c-api/unicode.rst:858 +#: c-api/unicode.rst:868 msgid "File System Encoding" msgstr "" -#: c-api/unicode.rst:860 +#: c-api/unicode.rst:870 msgid "" "Functions encoding to and decoding from the :term:`filesystem encoding and " "error handler` (:pep:`383` and :pep:`529`)." msgstr "" -#: c-api/unicode.rst:863 +#: c-api/unicode.rst:873 msgid "" "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 "" -#: c-api/unicode.rst:869 +#: c-api/unicode.rst:879 msgid "" ":ref:`PyArg_Parse\\* converter `: encode :class:`str` objects " "-- obtained directly or through the :class:`os.PathLike` interface -- to :" @@ -1130,24 +1142,24 @@ msgid "" "not allowed in the result. On failure, return ``0`` with an exception set." msgstr "" -#: c-api/unicode.rst:881 +#: c-api/unicode.rst:891 msgid "" "If *obj* is ``NULL``, the function releases a strong reference stored in the " "variable referred by *result* and returns ``1``." msgstr "" -#: c-api/unicode.rst:913 +#: c-api/unicode.rst:923 msgid "Accepts a :term:`path-like object`." msgstr "" -#: c-api/unicode.rst:889 +#: c-api/unicode.rst:899 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 "" -#: c-api/unicode.rst:895 +#: c-api/unicode.rst:905 msgid "" ":ref:`PyArg_Parse\\* converter `: decode :class:`bytes` objects " "-- obtained either directly or indirectly through the :class:`os.PathLike` " @@ -1161,62 +1173,62 @@ msgid "" "result. On failure, return ``0`` with an exception set." msgstr "" -#: c-api/unicode.rst:908 +#: c-api/unicode.rst:918 msgid "" "If *obj* is ``NULL``, release the strong reference to the object referred to " "by *result* and return ``1``." msgstr "" -#: c-api/unicode.rst:919 +#: c-api/unicode.rst:929 msgid "Decode a string from the :term:`filesystem encoding and error handler`." msgstr "" -#: c-api/unicode.rst:921 +#: c-api/unicode.rst:931 msgid "" "If you need to decode a string from the current locale encoding, use :c:func:" "`PyUnicode_DecodeLocaleAndSize`." msgstr "" -#: c-api/unicode.rst:941 c-api/unicode.rst:961 +#: c-api/unicode.rst:951 c-api/unicode.rst:971 msgid "" "The :term:`filesystem error handler ` " "is now used." msgstr "" -#: c-api/unicode.rst:935 +#: c-api/unicode.rst:945 msgid "" "Decode a null-terminated string from the :term:`filesystem encoding and " "error handler`." msgstr "" -#: c-api/unicode.rst:938 +#: c-api/unicode.rst:948 msgid "" "If the string length is known, use :c:func:" "`PyUnicode_DecodeFSDefaultAndSize`." msgstr "" -#: c-api/unicode.rst:948 +#: c-api/unicode.rst:958 msgid "" "Encode a Unicode object to the :term:`filesystem encoding and error " "handler`, and return :class:`bytes`. Note that the resulting :class:`bytes` " "object can contain null bytes." msgstr "" -#: c-api/unicode.rst:952 +#: c-api/unicode.rst:962 msgid "" "If you need to encode a string to the current locale encoding, use :c:func:" "`PyUnicode_EncodeLocale`." msgstr "" -#: c-api/unicode.rst:966 +#: c-api/unicode.rst:976 msgid "wchar_t Support" msgstr "" -#: c-api/unicode.rst:968 +#: c-api/unicode.rst:978 msgid ":c:type:`wchar_t` support for platforms which support it:" msgstr "" -#: c-api/unicode.rst:972 +#: c-api/unicode.rst:982 msgid "" "Create a Unicode object from the :c:type:`wchar_t` buffer *wstr* of the " "given *size*. Passing ``-1`` as the *size* indicates that the function must " @@ -1224,7 +1236,7 @@ msgid "" "failure." msgstr "" -#: c-api/unicode.rst:980 +#: c-api/unicode.rst:990 msgid "" "Copy the Unicode object contents into the :c:type:`wchar_t` buffer *wstr*. " "At most *size* :c:type:`wchar_t` characters are copied (excluding a possibly " @@ -1232,13 +1244,13 @@ msgid "" "`wchar_t` characters copied or ``-1`` in case of an error." msgstr "" -#: c-api/unicode.rst:985 +#: c-api/unicode.rst:995 msgid "" "When *wstr* is ``NULL``, instead return the *size* that would be required to " "store all of *unicode* including a terminating null." msgstr "" -#: c-api/unicode.rst:988 +#: c-api/unicode.rst:998 msgid "" "Note that the resulting :c:expr:`wchar_t*` string may or may not be null-" "terminated. It is the responsibility of the caller to make sure that the :c:" @@ -1248,7 +1260,7 @@ msgid "" "most C functions." msgstr "" -#: c-api/unicode.rst:998 +#: c-api/unicode.rst:1008 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 " @@ -1259,37 +1271,37 @@ msgid "" "`wchar_t*` string contains null characters a :exc:`ValueError` is raised." msgstr "" -#: c-api/unicode.rst:1006 +#: c-api/unicode.rst:1016 msgid "" "Returns a buffer allocated by :c:macro:`PyMem_New` (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 "" -#: c-api/unicode.rst:1013 +#: c-api/unicode.rst:1023 msgid "" "Raises a :exc:`ValueError` if *size* is ``NULL`` and the :c:expr:`wchar_t*` " "string contains null characters." msgstr "" -#: c-api/unicode.rst:1021 +#: c-api/unicode.rst:1031 msgid "Built-in Codecs" msgstr "" -#: c-api/unicode.rst:1023 +#: c-api/unicode.rst:1033 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 "" -#: c-api/unicode.rst:1026 +#: c-api/unicode.rst:1036 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 "" -#: c-api/unicode.rst:1030 +#: c-api/unicode.rst:1040 msgid "" "Setting encoding to ``NULL`` causes the default encoding to be used which is " "UTF-8. The file system calls should use :c:func:`PyUnicode_FSConverter` for " @@ -1297,42 +1309,42 @@ msgid "" "handler` internally." msgstr "" -#: c-api/unicode.rst:1035 +#: c-api/unicode.rst:1045 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 "" -#: c-api/unicode.rst:1039 +#: c-api/unicode.rst:1049 msgid "" "The codecs all use a similar interface. Only deviations from the following " "generic ones are documented for simplicity." msgstr "" -#: c-api/unicode.rst:1044 +#: c-api/unicode.rst:1054 msgid "Generic Codecs" msgstr "" -#: c-api/unicode.rst:1046 +#: c-api/unicode.rst:1056 msgid "The following macro is provided:" msgstr "" -#: c-api/unicode.rst:1051 +#: c-api/unicode.rst:1061 msgid "The Unicode code point ``U+FFFD`` (replacement character)." msgstr "" -#: c-api/unicode.rst:1053 +#: c-api/unicode.rst:1063 msgid "" "This Unicode character is used as the replacement character during decoding " "if the *errors* argument is set to \"replace\"." msgstr "" -#: c-api/unicode.rst:1057 +#: c-api/unicode.rst:1067 msgid "These are the generic codec APIs:" msgstr "" -#: c-api/unicode.rst:1063 +#: c-api/unicode.rst:1073 msgid "" "Create a Unicode object by decoding *size* bytes of the encoded string " "*str*. *encoding* and *errors* have the same meaning as the parameters of " @@ -1341,7 +1353,7 @@ msgid "" "was raised by the codec." msgstr "" -#: c-api/unicode.rst:1073 +#: c-api/unicode.rst:1083 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 " @@ -1350,21 +1362,21 @@ msgid "" "was raised by the codec." msgstr "" -#: c-api/unicode.rst:1081 +#: c-api/unicode.rst:1091 msgid "UTF-8 Codecs" msgstr "" -#: c-api/unicode.rst:1083 +#: c-api/unicode.rst:1093 msgid "These are the UTF-8 codec APIs:" msgstr "" -#: c-api/unicode.rst:1088 +#: c-api/unicode.rst:1098 msgid "" "Create a Unicode object by decoding *size* bytes of the UTF-8 encoded string " "*str*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: c-api/unicode.rst:1095 +#: c-api/unicode.rst:1105 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF8`. If " "*consumed* is not ``NULL``, trailing incomplete UTF-8 byte sequences will " @@ -1372,20 +1384,20 @@ msgid "" "of bytes that have been decoded will be stored in *consumed*." msgstr "" -#: c-api/unicode.rst:1103 +#: c-api/unicode.rst:1113 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 "" -#: c-api/unicode.rst:1122 +#: c-api/unicode.rst:1132 msgid "" "The function fails if the string contains surrogate code points (``U+D800`` " "- ``U+DFFF``)." msgstr "" -#: c-api/unicode.rst:1113 +#: c-api/unicode.rst:1123 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* " @@ -1394,13 +1406,13 @@ msgid "" "regardless of whether there are any other null code points." msgstr "" -#: c-api/unicode.rst:1119 +#: c-api/unicode.rst:1129 msgid "" "On error, set an exception, set *size* to ``-1`` (if it's not NULL) and " "return ``NULL``." msgstr "" -#: c-api/unicode.rst:1125 +#: c-api/unicode.rst:1135 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 " @@ -1409,19 +1421,19 @@ msgid "" "collected." msgstr "" -#: c-api/unicode.rst:1154 +#: c-api/unicode.rst:1164 msgid "The return type is now ``const char *`` rather of ``char *``." msgstr "" -#: c-api/unicode.rst:1135 +#: c-api/unicode.rst:1145 msgid "This function is a part of the :ref:`limited API `." msgstr "" -#: c-api/unicode.rst:1141 +#: c-api/unicode.rst:1151 msgid "As :c:func:`PyUnicode_AsUTF8AndSize`, but does not store the size." msgstr "" -#: c-api/unicode.rst:1145 +#: c-api/unicode.rst:1155 msgid "" "This function does not have any special behavior for `null characters " "`_ embedded within *unicode*. " @@ -1431,35 +1443,35 @@ msgid "" "c:func:`PyUnicode_AsUTF8AndSize` instead." msgstr "" -#: c-api/unicode.rst:1159 +#: c-api/unicode.rst:1169 msgid "UTF-32 Codecs" msgstr "" -#: c-api/unicode.rst:1161 +#: c-api/unicode.rst:1171 msgid "These are the UTF-32 codec APIs:" msgstr "" -#: c-api/unicode.rst:1167 +#: c-api/unicode.rst:1177 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 "" -#: c-api/unicode.rst:1221 +#: c-api/unicode.rst:1231 msgid "" "If *byteorder* is non-``NULL``, the decoder starts decoding using the given " "byte order::" msgstr "" -#: c-api/unicode.rst:1224 +#: c-api/unicode.rst:1234 msgid "" "*byteorder == -1: little endian\n" "*byteorder == 0: native order\n" "*byteorder == 1: big endian" msgstr "" -#: c-api/unicode.rst:1178 +#: c-api/unicode.rst:1188 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 " @@ -1467,21 +1479,21 @@ msgid "" "``-1`` or ``1``, any byte order mark is copied to the output." msgstr "" -#: c-api/unicode.rst:1183 +#: c-api/unicode.rst:1193 msgid "" "After completion, *\\*byteorder* is set to the current byte order at the end " "of input data." msgstr "" -#: c-api/unicode.rst:1237 +#: c-api/unicode.rst:1247 msgid "If *byteorder* is ``NULL``, the codec starts in native order mode." msgstr "" -#: c-api/unicode.rst:1239 +#: c-api/unicode.rst:1249 msgid "Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: c-api/unicode.rst:1194 +#: c-api/unicode.rst:1204 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF32`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF32Stateful` will not " @@ -1490,29 +1502,29 @@ msgid "" "number of bytes that have been decoded will be stored in *consumed*." msgstr "" -#: c-api/unicode.rst:1203 +#: c-api/unicode.rst:1213 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 "" -#: c-api/unicode.rst:1209 +#: c-api/unicode.rst:1219 msgid "UTF-16 Codecs" msgstr "" -#: c-api/unicode.rst:1211 +#: c-api/unicode.rst:1221 msgid "These are the UTF-16 codec APIs:" msgstr "" -#: c-api/unicode.rst:1217 +#: c-api/unicode.rst:1227 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 "" -#: c-api/unicode.rst:1228 +#: c-api/unicode.rst:1238 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 " @@ -1521,13 +1533,13 @@ msgid "" "result in either a ``\\ufeff`` or a ``\\ufffe`` character)." msgstr "" -#: c-api/unicode.rst:1234 +#: c-api/unicode.rst:1244 msgid "" "After completion, ``*byteorder`` is set to the current byte order at the end " "of input data." msgstr "" -#: c-api/unicode.rst:1245 +#: c-api/unicode.rst:1255 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF16`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF16Stateful` will not " @@ -1537,28 +1549,28 @@ msgid "" "*consumed*." msgstr "" -#: c-api/unicode.rst:1254 +#: c-api/unicode.rst:1264 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 "" -#: c-api/unicode.rst:1260 +#: c-api/unicode.rst:1270 msgid "UTF-7 Codecs" msgstr "" -#: c-api/unicode.rst:1262 +#: c-api/unicode.rst:1272 msgid "These are the UTF-7 codec APIs:" msgstr "" -#: c-api/unicode.rst:1267 +#: c-api/unicode.rst:1277 msgid "" "Create a Unicode object by decoding *size* bytes of the UTF-7 encoded string " "*str*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: c-api/unicode.rst:1274 +#: c-api/unicode.rst:1284 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF7`. If " "*consumed* is not ``NULL``, trailing incomplete UTF-7 base-64 sections will " @@ -1566,101 +1578,101 @@ msgid "" "of bytes that have been decoded will be stored in *consumed*." msgstr "" -#: c-api/unicode.rst:1281 +#: c-api/unicode.rst:1291 msgid "Unicode-Escape Codecs" msgstr "" -#: c-api/unicode.rst:1283 +#: c-api/unicode.rst:1293 msgid "These are the \"Unicode Escape\" codec APIs:" msgstr "" -#: c-api/unicode.rst:1289 +#: c-api/unicode.rst:1299 msgid "" "Create a Unicode object by decoding *size* bytes of the Unicode-Escape " "encoded string *str*. Return ``NULL`` if an exception was raised by the " "codec." msgstr "" -#: c-api/unicode.rst:1295 +#: c-api/unicode.rst:1305 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 "" -#: c-api/unicode.rst:1301 +#: c-api/unicode.rst:1311 msgid "Raw-Unicode-Escape Codecs" msgstr "" -#: c-api/unicode.rst:1303 +#: c-api/unicode.rst:1313 msgid "These are the \"Raw Unicode Escape\" codec APIs:" msgstr "" -#: c-api/unicode.rst:1309 +#: c-api/unicode.rst:1319 msgid "" "Create a Unicode object by decoding *size* bytes of the Raw-Unicode-Escape " "encoded string *str*. Return ``NULL`` if an exception was raised by the " "codec." msgstr "" -#: c-api/unicode.rst:1315 +#: c-api/unicode.rst:1325 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 "" -#: c-api/unicode.rst:1321 +#: c-api/unicode.rst:1331 msgid "Latin-1 Codecs" msgstr "" -#: c-api/unicode.rst:1323 +#: c-api/unicode.rst:1333 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 "" -#: c-api/unicode.rst:1329 +#: c-api/unicode.rst:1339 msgid "" "Create a Unicode object by decoding *size* bytes of the Latin-1 encoded " "string *str*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: c-api/unicode.rst:1335 +#: c-api/unicode.rst:1345 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 "" -#: c-api/unicode.rst:1341 +#: c-api/unicode.rst:1351 msgid "ASCII Codecs" msgstr "" -#: c-api/unicode.rst:1343 +#: c-api/unicode.rst:1353 msgid "" "These are the ASCII codec APIs. Only 7-bit ASCII data is accepted. All " "other codes generate errors." msgstr "" -#: c-api/unicode.rst:1349 +#: c-api/unicode.rst:1359 msgid "" "Create a Unicode object by decoding *size* bytes of the ASCII encoded string " "*str*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: c-api/unicode.rst:1355 +#: c-api/unicode.rst:1365 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 "" -#: c-api/unicode.rst:1361 +#: c-api/unicode.rst:1371 msgid "Character Map Codecs" msgstr "" -#: c-api/unicode.rst:1363 +#: c-api/unicode.rst:1373 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 " @@ -1670,18 +1682,18 @@ msgid "" "sequences work well." msgstr "" -#: c-api/unicode.rst:1369 +#: c-api/unicode.rst:1379 msgid "These are the mapping codec APIs:" msgstr "" -#: c-api/unicode.rst:1374 +#: c-api/unicode.rst:1384 msgid "" "Create a Unicode object by decoding *size* bytes of the encoded string *str* " "using the given *mapping* object. Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: c-api/unicode.rst:1378 +#: c-api/unicode.rst:1388 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 " @@ -1691,14 +1703,14 @@ msgid "" "treated as undefined mappings and cause an error." msgstr "" -#: c-api/unicode.rst:1389 +#: c-api/unicode.rst:1399 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 "" -#: c-api/unicode.rst:1393 +#: c-api/unicode.rst:1403 msgid "" "The *mapping* object must map Unicode ordinal integers to bytes objects, " "integers in the range from 0 to 255 or ``None``. Unmapped character " @@ -1706,41 +1718,41 @@ msgid "" "``None`` are treated as \"undefined mapping\" and cause an error." msgstr "" -#: c-api/unicode.rst:1399 +#: c-api/unicode.rst:1409 msgid "The following codec API is special in that maps Unicode to Unicode." msgstr "" -#: c-api/unicode.rst:1403 +#: c-api/unicode.rst:1413 msgid "" "Translate a string by applying a character mapping table to it and return " "the resulting Unicode object. Return ``NULL`` if an exception was raised by " "the codec." msgstr "" -#: c-api/unicode.rst:1407 +#: c-api/unicode.rst:1417 msgid "" "The mapping table must map Unicode ordinal integers to Unicode ordinal " "integers or ``None`` (causing deletion of the character)." msgstr "" -#: c-api/unicode.rst:1410 +#: c-api/unicode.rst:1420 msgid "" "Mapping tables need only provide the :meth:`~object.__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 "" -#: c-api/unicode.rst:1414 +#: c-api/unicode.rst:1424 msgid "" "*errors* has the usual meaning for codecs. It may be ``NULL`` which " "indicates to use the default error handling." msgstr "" -#: c-api/unicode.rst:1419 +#: c-api/unicode.rst:1429 msgid "MBCS codecs for Windows" msgstr "" -#: c-api/unicode.rst:1421 +#: c-api/unicode.rst:1431 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 " @@ -1748,13 +1760,13 @@ msgid "" "is defined by the user settings on the machine running the codec." msgstr "" -#: c-api/unicode.rst:1428 +#: c-api/unicode.rst:1438 msgid "" "Create a Unicode object by decoding *size* bytes of the MBCS encoded string " "*str*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: c-api/unicode.rst:1435 +#: c-api/unicode.rst:1445 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeMBCS`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeMBCSStateful` will not " @@ -1762,46 +1774,46 @@ msgid "" "will be stored in *consumed*." msgstr "" -#: c-api/unicode.rst:1444 +#: c-api/unicode.rst:1454 msgid "" "Similar to :c:func:`PyUnicode_DecodeMBCSStateful`, except uses the code page " "specified by *code_page*." msgstr "" -#: c-api/unicode.rst:1450 +#: c-api/unicode.rst:1460 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 "" -#: c-api/unicode.rst:1457 +#: c-api/unicode.rst:1467 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:macro:`!CP_ACP` code page to get the MBCS encoder." msgstr "" -#: c-api/unicode.rst:1467 +#: c-api/unicode.rst:1477 msgid "Methods and Slot Functions" msgstr "" -#: c-api/unicode.rst:1469 +#: c-api/unicode.rst:1479 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 "" -#: c-api/unicode.rst:1473 +#: c-api/unicode.rst:1483 msgid "They all return ``NULL`` or ``-1`` if an exception occurs." msgstr "" -#: c-api/unicode.rst:1478 +#: c-api/unicode.rst:1488 msgid "Concat two strings giving a new Unicode string." msgstr "" -#: c-api/unicode.rst:1483 +#: c-api/unicode.rst:1493 msgid "" "Split a string giving a list of Unicode strings. If *sep* is ``NULL``, " "splitting will be done at all whitespace substrings. Otherwise, splits " @@ -1810,32 +1822,32 @@ msgid "" "list." msgstr "" -#: c-api/unicode.rst:1498 c-api/unicode.rst:1532 +#: c-api/unicode.rst:1508 c-api/unicode.rst:1542 msgid "On error, return ``NULL`` with an exception set." msgstr "" -#: c-api/unicode.rst:1490 +#: c-api/unicode.rst:1500 msgid "Equivalent to :py:meth:`str.split`." msgstr "" -#: c-api/unicode.rst:1495 +#: c-api/unicode.rst:1505 msgid "" "Similar to :c:func:`PyUnicode_Split`, but splitting will be done beginning " "at the end of the string." msgstr "" -#: c-api/unicode.rst:1500 +#: c-api/unicode.rst:1510 msgid "Equivalent to :py:meth:`str.rsplit`." msgstr "" -#: c-api/unicode.rst:1505 +#: c-api/unicode.rst:1515 msgid "" "Split a Unicode string at line breaks, returning a list of Unicode strings. " "CRLF is considered to be one line break. If *keepends* is ``0``, the Line " "break characters are not included in the resulting strings." msgstr "" -#: c-api/unicode.rst:1512 +#: c-api/unicode.rst:1522 msgid "" "Split a Unicode string at the first occurrence of *sep*, and return a 3-" "tuple containing the part before the separator, the separator itself, and " @@ -1843,39 +1855,39 @@ msgid "" "tuple containing the string itself, followed by two empty strings." msgstr "" -#: c-api/unicode.rst:1530 +#: c-api/unicode.rst:1540 msgid "*sep* must not be empty." msgstr "" -#: c-api/unicode.rst:1521 +#: c-api/unicode.rst:1531 msgid "Equivalent to :py:meth:`str.partition`." msgstr "" -#: c-api/unicode.rst:1526 +#: c-api/unicode.rst:1536 msgid "" "Similar to :c:func:`PyUnicode_Partition`, but split a Unicode string at the " "last occurrence of *sep*. If the separator is not found, return a 3-tuple " "containing two empty strings, followed by the string itself." msgstr "" -#: c-api/unicode.rst:1534 +#: c-api/unicode.rst:1544 msgid "Equivalent to :py:meth:`str.rpartition`." msgstr "" -#: c-api/unicode.rst:1539 +#: c-api/unicode.rst:1549 msgid "" "Join a sequence of strings using the given *separator* and return the " "resulting Unicode string." msgstr "" -#: c-api/unicode.rst:1546 +#: c-api/unicode.rst:1556 msgid "" "Return ``1`` if *substr* matches ``unicode[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 "" -#: c-api/unicode.rst:1554 +#: c-api/unicode.rst:1564 msgid "" "Return the first position of *substr* in ``unicode[start:end]`` using the " "given *direction* (*direction* == ``1`` means to do a forward search, " @@ -1884,7 +1896,7 @@ msgid "" "``-2`` indicates that an error occurred and an exception has been set." msgstr "" -#: c-api/unicode.rst:1564 +#: c-api/unicode.rst:1574 msgid "" "Return the first position of the character *ch* in ``unicode[start:end]`` " "using the given *direction* (*direction* == ``1`` means to do a forward " @@ -1894,73 +1906,73 @@ msgid "" "set." msgstr "" -#: c-api/unicode.rst:1572 +#: c-api/unicode.rst:1582 msgid "" "*start* and *end* are now adjusted to behave like ``unicode[start:end]``." msgstr "" -#: c-api/unicode.rst:1579 +#: c-api/unicode.rst:1589 msgid "" "Return the number of non-overlapping occurrences of *substr* in " "``unicode[start:end]``. Return ``-1`` if an error occurred." msgstr "" -#: c-api/unicode.rst:1586 +#: c-api/unicode.rst:1596 msgid "" "Replace at most *maxcount* occurrences of *substr* in *unicode* with " "*replstr* and return the resulting Unicode object. *maxcount* == ``-1`` " "means replace all occurrences." msgstr "" -#: c-api/unicode.rst:1593 +#: c-api/unicode.rst:1603 msgid "" "Compare two strings and return ``-1``, ``0``, ``1`` for less than, equal, " "and greater than, respectively." msgstr "" -#: c-api/unicode.rst:1596 +#: c-api/unicode.rst:1606 msgid "" "This function returns ``-1`` upon failure, so one should call :c:func:" "`PyErr_Occurred` to check for errors." msgstr "" -#: c-api/unicode.rst:1601 +#: c-api/unicode.rst:1611 msgid "The :c:func:`PyUnicode_Equal` function." msgstr "" -#: c-api/unicode.rst:1606 +#: c-api/unicode.rst:1616 msgid "Test if two strings are equal:" msgstr "" -#: c-api/unicode.rst:1608 +#: c-api/unicode.rst:1618 msgid "Return ``1`` if *a* is equal to *b*." msgstr "" -#: c-api/unicode.rst:1609 +#: c-api/unicode.rst:1619 msgid "Return ``0`` if *a* is not equal to *b*." msgstr "" -#: c-api/unicode.rst:1610 +#: c-api/unicode.rst:1620 msgid "" "Set a :exc:`TypeError` exception and return ``-1`` if *a* or *b* is not a :" "class:`str` object." msgstr "" -#: c-api/unicode.rst:1613 +#: c-api/unicode.rst:1623 msgid "The function always succeeds if *a* and *b* are :class:`str` objects." msgstr "" -#: c-api/unicode.rst:1615 +#: c-api/unicode.rst:1625 msgid "" "The function works for :class:`str` subclasses, but does not honor custom " "``__eq__()`` method." msgstr "" -#: c-api/unicode.rst:1620 +#: c-api/unicode.rst:1630 msgid "The :c:func:`PyUnicode_Compare` function." msgstr "" -#: c-api/unicode.rst:1627 +#: c-api/unicode.rst:1637 msgid "" "Compare a Unicode object with a char buffer which is interpreted as being " "UTF-8 or ASCII encoded and return true (``1``) if they are equal, or false " @@ -1969,18 +1981,18 @@ msgid "" "is returned." msgstr "" -#: c-api/unicode.rst:1655 +#: c-api/unicode.rst:1665 msgid "This function does not raise exceptions." msgstr "" -#: c-api/unicode.rst:1641 +#: c-api/unicode.rst:1651 msgid "" "Similar to :c:func:`PyUnicode_EqualToUTF8AndSize`, but compute *string* " "length using :c:func:`!strlen`. If the Unicode object contains null " "characters, false (``0``) is returned." msgstr "" -#: c-api/unicode.rst:1650 +#: c-api/unicode.rst:1660 msgid "" "Compare a Unicode object, *unicode*, with *string* and return ``-1``, ``0``, " "``1`` for less than, equal, and greater than, respectively. It is best to " @@ -1988,47 +2000,47 @@ msgid "" "string as ISO-8859-1 if it contains non-ASCII characters." msgstr "" -#: c-api/unicode.rst:1660 +#: c-api/unicode.rst:1670 msgid "Rich compare two Unicode strings and return one of the following:" msgstr "" -#: c-api/unicode.rst:1662 +#: c-api/unicode.rst:1672 msgid "``NULL`` in case an exception was raised" msgstr "" -#: c-api/unicode.rst:1663 +#: c-api/unicode.rst:1673 msgid ":c:data:`Py_True` or :c:data:`Py_False` for successful comparisons" msgstr "" -#: c-api/unicode.rst:1664 +#: c-api/unicode.rst:1674 msgid ":c:data:`Py_NotImplemented` in case the type combination is unknown" msgstr "" -#: c-api/unicode.rst:1666 +#: c-api/unicode.rst:1676 msgid "" "Possible values for *op* are :c:macro:`Py_GT`, :c:macro:`Py_GE`, :c:macro:" "`Py_EQ`, :c:macro:`Py_NE`, :c:macro:`Py_LT`, and :c:macro:`Py_LE`." msgstr "" -#: c-api/unicode.rst:1672 +#: c-api/unicode.rst:1682 msgid "" "Return a new string object from *format* and *args*; this is analogous to " "``format % args``." msgstr "" -#: c-api/unicode.rst:1678 +#: c-api/unicode.rst:1688 msgid "" "Check whether *substr* is contained in *unicode* and return true or false " "accordingly." msgstr "" -#: c-api/unicode.rst:1681 +#: c-api/unicode.rst:1691 msgid "" "*substr* has to coerce to a one element Unicode string. ``-1`` is returned " "if there was an error." msgstr "" -#: c-api/unicode.rst:1687 +#: c-api/unicode.rst:1697 msgid "" "Intern the argument :c:expr:`*p_unicode` in place. The argument must be the " "address of a pointer variable pointing to a Python Unicode string object. " @@ -2039,7 +2051,7 @@ msgid "" "interns it." msgstr "" -#: c-api/unicode.rst:1694 +#: c-api/unicode.rst:1704 msgid "" "(Clarification: even though there is a lot of talk about references, think " "of this function as reference-neutral. You must own the object you pass in; " @@ -2047,39 +2059,39 @@ msgid "" "the result.)" msgstr "" -#: c-api/unicode.rst:1699 +#: c-api/unicode.rst:1709 msgid "" "This function never raises an exception. On error, it leaves its argument " "unchanged without interning it." msgstr "" -#: c-api/unicode.rst:1702 +#: c-api/unicode.rst:1712 msgid "" "Instances of subclasses of :py:class:`str` may not be interned, that is, :c:" "expr:`PyUnicode_CheckExact(*p_unicode)` must be true. If it is not, then -- " "as with any other error -- the argument is left unchanged." msgstr "" -#: c-api/unicode.rst:1706 +#: c-api/unicode.rst:1716 msgid "" "Note that interned strings are not “immortal”. You must keep a reference to " "the result to benefit from interning." msgstr "" -#: c-api/unicode.rst:1712 +#: c-api/unicode.rst:1722 msgid "" "A combination of :c:func:`PyUnicode_FromString` and :c:func:" "`PyUnicode_InternInPlace`, meant for statically allocated strings." msgstr "" -#: c-api/unicode.rst:1715 +#: c-api/unicode.rst:1725 msgid "" "Return a new (\"owned\") reference to either a new Unicode string object " "that has been interned, or an earlier interned string object with the same " "value." msgstr "" -#: c-api/unicode.rst:1719 +#: c-api/unicode.rst:1729 msgid "" "Python may keep a reference to the result, or make it :term:`immortal`, " "preventing it from being garbage-collected promptly. For interning an " @@ -2088,14 +2100,14 @@ msgid "" "`PyUnicode_InternInPlace` directly." msgstr "" -#: c-api/unicode.rst:1728 +#: c-api/unicode.rst:1738 msgid "" "Return a non-zero value if *str* is interned, zero if not. The *str* " "argument must be a string; this is not checked. This function always " "succeeds." msgstr "" -#: c-api/unicode.rst:1734 +#: c-api/unicode.rst:1744 msgid "" "A non-zero return value may carry additional information about *how* the " "string is interned. The meaning of such non-zero values, as well as each " @@ -2103,208 +2115,208 @@ msgid "" "versions." msgstr "" -#: c-api/unicode.rst:1741 +#: c-api/unicode.rst:1751 msgid "PyUnicodeWriter" msgstr "" -#: c-api/unicode.rst:1743 +#: c-api/unicode.rst:1753 msgid "" "The :c:type:`PyUnicodeWriter` API can be used to create a Python :class:" "`str` object." msgstr "" -#: c-api/unicode.rst:1750 +#: c-api/unicode.rst:1760 msgid "A Unicode writer instance." msgstr "" -#: c-api/unicode.rst:1752 +#: c-api/unicode.rst:1762 msgid "" "The instance must be destroyed by :c:func:`PyUnicodeWriter_Finish` on " "success, or :c:func:`PyUnicodeWriter_Discard` on error." msgstr "" -#: c-api/unicode.rst:1757 +#: c-api/unicode.rst:1767 msgid "Create a Unicode writer instance." msgstr "" -#: c-api/unicode.rst:1759 +#: c-api/unicode.rst:1769 msgid "*length* must be greater than or equal to ``0``." msgstr "" -#: c-api/unicode.rst:1761 +#: c-api/unicode.rst:1771 msgid "" "If *length* is greater than ``0``, preallocate an internal buffer of " "*length* characters." msgstr "" -#: c-api/unicode.rst:1770 +#: c-api/unicode.rst:1780 msgid "Set an exception and return ``NULL`` on error." msgstr "" -#: c-api/unicode.rst:1768 +#: c-api/unicode.rst:1778 msgid "" "Return the final Python :class:`str` object and destroy the writer instance." msgstr "" -#: c-api/unicode.rst:1780 +#: c-api/unicode.rst:1790 msgid "The writer instance is invalid after this call." msgstr "" -#: c-api/unicode.rst:1776 +#: c-api/unicode.rst:1786 msgid "Discard the internal Unicode buffer and destroy the writer instance." msgstr "" -#: c-api/unicode.rst:1778 +#: c-api/unicode.rst:1788 msgid "If *writer* is ``NULL``, no operation is performed." msgstr "" -#: c-api/unicode.rst:1784 +#: c-api/unicode.rst:1794 msgid "Write the single Unicode character *ch* into *writer*." msgstr "" -#: c-api/unicode.rst:1796 c-api/unicode.rst:1823 c-api/unicode.rst:1839 -#: c-api/unicode.rst:1857 c-api/unicode.rst:1883 +#: c-api/unicode.rst:1806 c-api/unicode.rst:1833 c-api/unicode.rst:1849 +#: c-api/unicode.rst:1867 c-api/unicode.rst:1893 msgid "" "On success, return ``0``. On error, set an exception, leave the writer " "unchanged, and return ``-1``." msgstr "" -#: c-api/unicode.rst:1791 +#: c-api/unicode.rst:1801 msgid "" "Decode the string *str* from UTF-8 in strict mode and write the output into " "*writer*." msgstr "" -#: c-api/unicode.rst:1805 c-api/unicode.rst:1872 +#: c-api/unicode.rst:1815 c-api/unicode.rst:1882 msgid "" "*size* is the string length in bytes. If *size* is equal to ``-1``, call " "``strlen(str)`` to get the string length." msgstr "" -#: c-api/unicode.rst:1799 +#: c-api/unicode.rst:1809 msgid "See also :c:func:`PyUnicodeWriter_DecodeUTF8Stateful`." msgstr "" -#: c-api/unicode.rst:1803 +#: c-api/unicode.rst:1813 msgid "Write the ASCII string *str* into *writer*." msgstr "" -#: c-api/unicode.rst:1808 +#: c-api/unicode.rst:1818 msgid "" "*str* must only contain ASCII characters. The behavior is undefined if *str* " "contains non-ASCII characters." msgstr "" -#: c-api/unicode.rst:1818 +#: c-api/unicode.rst:1828 msgid "Write the wide string *str* into *writer*." msgstr "" -#: c-api/unicode.rst:1820 +#: c-api/unicode.rst:1830 msgid "" "*size* is a number of wide characters. If *size* is equal to ``-1``, call " "``wcslen(str)`` to get the string length." msgstr "" -#: c-api/unicode.rst:1828 +#: c-api/unicode.rst:1838 msgid "Writer the UCS4 string *str* into *writer*." msgstr "" -#: c-api/unicode.rst:1830 +#: c-api/unicode.rst:1840 msgid "*size* is a number of UCS4 characters." msgstr "" -#: c-api/unicode.rst:1837 +#: c-api/unicode.rst:1847 msgid "" "Call :c:func:`PyObject_Str` on *obj* and write the output into *writer*." msgstr "" -#: c-api/unicode.rst:1844 +#: c-api/unicode.rst:1854 msgid "" "Call :c:func:`PyObject_Repr` on *obj* and write the output into *writer*." msgstr "" -#: c-api/unicode.rst:1851 +#: c-api/unicode.rst:1861 msgid "Write the substring ``str[start:end]`` into *writer*." msgstr "" -#: c-api/unicode.rst:1853 +#: c-api/unicode.rst:1863 msgid "" "*str* must be Python :class:`str` object. *start* must be greater than or " "equal to 0, and less than or equal to *end*. *end* must be less than or " "equal to *str* length." msgstr "" -#: c-api/unicode.rst:1862 +#: c-api/unicode.rst:1872 msgid "" "Similar to :c:func:`PyUnicode_FromFormat`, but write the output directly " "into *writer*." msgstr "" -#: c-api/unicode.rst:1869 +#: c-api/unicode.rst:1879 msgid "" "Decode the string *str* from UTF-8 with *errors* error handler and write the " "output into *writer*." msgstr "" -#: c-api/unicode.rst:1875 +#: c-api/unicode.rst:1885 msgid "" "*errors* is an :ref:`error handler ` name, such as " "``\"replace\"``. If *errors* is ``NULL``, use the strict error handler." msgstr "" -#: c-api/unicode.rst:1878 +#: c-api/unicode.rst:1888 msgid "" "If *consumed* is not ``NULL``, set *\\*consumed* to the number of decoded " "bytes on success. If *consumed* is ``NULL``, treat trailing incomplete UTF-8 " "byte sequences as an error." msgstr "" -#: c-api/unicode.rst:1886 +#: c-api/unicode.rst:1896 msgid "See also :c:func:`PyUnicodeWriter_WriteUTF8`." msgstr "" -#: c-api/unicode.rst:1889 +#: c-api/unicode.rst:1899 msgid "Deprecated API" msgstr "" -#: c-api/unicode.rst:1891 +#: c-api/unicode.rst:1901 msgid "The following API is deprecated." msgstr "" -#: c-api/unicode.rst:1895 +#: c-api/unicode.rst:1905 msgid "" "This is a typedef of :c:type:`wchar_t`, which is a 16-bit type or 32-bit " "type depending on the platform. Please use :c:type:`wchar_t` directly " "instead." msgstr "" -#: c-api/unicode.rst:1899 +#: c-api/unicode.rst:1909 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 "" -#: c-api/unicode.rst:1909 +#: c-api/unicode.rst:1919 msgid "" "Do nothing and return ``0``. This API is kept only for backward " "compatibility, but there are no plans to remove it." msgstr "" -#: c-api/unicode.rst:1915 +#: c-api/unicode.rst:1925 msgid "" "This API does nothing since Python 3.12. Previously, this needed to be " "called for each string created using the old API (:c:func:`!" "PyUnicode_FromUnicode` or similar)." msgstr "" -#: c-api/unicode.rst:1923 +#: c-api/unicode.rst:1933 msgid "" "Do nothing and return ``1``. This API is kept only for backward " "compatibility, but there are no plans to remove it." msgstr "" -#: c-api/unicode.rst:1929 +#: c-api/unicode.rst:1939 msgid "" "This API does nothing since Python 3.12. Previously, this could be called to " "check if :c:func:`PyUnicode_READY` is necessary." diff --git a/c-api/utilities.po b/c-api/utilities.po index 429a654a..6d572da2 100644 --- a/c-api/utilities.po +++ b/c-api/utilities.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po index 7d48d522..72191193 100644 --- a/c-api/veryhigh.po +++ b/c-api/veryhigh.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -32,11 +32,12 @@ msgstr "" msgid "" "Several of these functions accept a start symbol from the grammar as a " "parameter. The available start symbols are :c:data:`Py_eval_input`, :c:data:" -"`Py_file_input`, and :c:data:`Py_single_input`. These are described " -"following the functions which accept them as parameters." +"`Py_file_input`, :c:data:`Py_single_input`, and :c:data:" +"`Py_func_type_input`. These are described following the functions which " +"accept them as parameters." msgstr "" -#: c-api/veryhigh.rst:19 +#: c-api/veryhigh.rst:20 msgid "" "Note also that several of these functions take :c:expr:`FILE*` parameters. " "One particular issue which needs to be handled carefully is that the :c:type:" @@ -48,25 +49,25 @@ msgid "" "runtime is using." msgstr "" -#: c-api/veryhigh.rst:30 +#: c-api/veryhigh.rst:31 msgid "" "This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " "leaving *closeit* set to ``0`` and *flags* set to ``NULL``." msgstr "" -#: c-api/veryhigh.rst:36 +#: c-api/veryhigh.rst:37 msgid "" "This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " "leaving the *closeit* argument set to ``0``." msgstr "" -#: c-api/veryhigh.rst:42 +#: c-api/veryhigh.rst:43 msgid "" "This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " "leaving the *flags* argument set to ``NULL``." msgstr "" -#: c-api/veryhigh.rst:48 +#: c-api/veryhigh.rst:49 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:" @@ -77,13 +78,13 @@ msgid "" "before ``PyRun_SimpleFileExFlags()`` returns." msgstr "" -#: c-api/veryhigh.rst:60 +#: c-api/veryhigh.rst:61 msgid "" "This is a simplified interface to :c:func:`PyRun_SimpleStringFlags` below, " "leaving the :c:struct:`PyCompilerFlags`\\* argument set to ``NULL``." msgstr "" -#: c-api/veryhigh.rst:66 +#: c-api/veryhigh.rst:67 msgid "" "Executes the Python source code from *command* in the :mod:`__main__` module " "according to the *flags* argument. If :mod:`__main__` does not already " @@ -92,26 +93,26 @@ msgid "" "information. For the meaning of *flags*, see below." msgstr "" -#: c-api/veryhigh.rst:72 +#: c-api/veryhigh.rst:73 msgid "" "Note that if an otherwise unhandled :exc:`SystemExit` is raised, this " "function will not return ``-1``, but exit the process, as long as :c:member:" "`PyConfig.inspect` is zero." msgstr "" -#: c-api/veryhigh.rst:79 +#: c-api/veryhigh.rst:80 msgid "" "This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, " "leaving *closeit* set to ``0`` and *flags* set to ``NULL``." msgstr "" -#: c-api/veryhigh.rst:85 +#: c-api/veryhigh.rst:86 msgid "" "This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, " "leaving *flags* set to ``NULL``." msgstr "" -#: c-api/veryhigh.rst:91 +#: c-api/veryhigh.rst:92 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 " @@ -120,28 +121,22 @@ msgid "" "``PyRun_SimpleFileExFlags()`` returns." msgstr "" -#: c-api/veryhigh.rst:98 +#: c-api/veryhigh.rst:99 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 "" -#: c-api/veryhigh.rst:104 -msgid "" -"This is a simplified interface to :c:func:`PyRun_InteractiveOneFlags` below, " -"leaving *flags* set to ``NULL``." -msgstr "" - -#: c-api/veryhigh.rst:110 +#: c-api/veryhigh.rst:105 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 :" -"term:`filesystem encoding and error handler`." +"prompted using ``sys.ps1`` and ``sys.ps2``. *filename* must be a Python :" +"class:`str` object." msgstr "" -#: c-api/veryhigh.rst:115 +#: c-api/veryhigh.rst:110 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 " @@ -150,13 +145,26 @@ msgid "" "specifically if needed.)" msgstr "" -#: c-api/veryhigh.rst:124 +#: c-api/veryhigh.rst:119 +msgid "" +"This is a simplified interface to :c:func:`PyRun_InteractiveOneFlags` below, " +"leaving *flags* set to ``NULL``." +msgstr "" + +#: c-api/veryhigh.rst:125 +msgid "" +"Similar to :c:func:`PyRun_InteractiveOneObject`, but *filename* is a :c:expr:" +"`const char*`, which is decoded from the :term:`filesystem encoding and " +"error handler`." +msgstr "" + +#: c-api/veryhigh.rst:132 msgid "" "This is a simplified interface to :c:func:`PyRun_InteractiveLoopFlags` " "below, leaving *flags* set to ``NULL``." msgstr "" -#: c-api/veryhigh.rst:130 +#: c-api/veryhigh.rst:138 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`` " @@ -164,23 +172,23 @@ msgid "" "and error handler`. Returns ``0`` at EOF or a negative number upon failure." msgstr "" -#: c-api/veryhigh.rst:138 +#: c-api/veryhigh.rst:146 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." +"prompt with other event loops, as done in :file:`Modules/_tkinter.c` in the " +"Python source code." msgstr "" -#: c-api/veryhigh.rst:170 +#: c-api/veryhigh.rst:178 msgid "" "This function is only called from the :ref:`main interpreter `." msgstr "" -#: c-api/veryhigh.rst:153 +#: c-api/veryhigh.rst:161 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 " @@ -191,59 +199,59 @@ msgid "" "line-editing and tab-completion features." msgstr "" -#: c-api/veryhigh.rst:162 +#: c-api/veryhigh.rst:170 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 "" -#: c-api/veryhigh.rst:165 +#: c-api/veryhigh.rst:173 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 "" -#: c-api/veryhigh.rst:176 +#: c-api/veryhigh.rst:184 msgid "" "This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving " "*flags* set to ``NULL``." msgstr "" -#: c-api/veryhigh.rst:182 +#: c-api/veryhigh.rst:190 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." +"symbol and must one of the :ref:`available start symbols `." msgstr "" -#: c-api/veryhigh.rst:188 +#: c-api/veryhigh.rst:196 msgid "" "Returns the result of executing the code as a Python object, or ``NULL`` if " "an exception was raised." msgstr "" -#: c-api/veryhigh.rst:194 +#: c-api/veryhigh.rst:202 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*closeit* set to ``0`` and *flags* set to ``NULL``." msgstr "" -#: c-api/veryhigh.rst:200 +#: c-api/veryhigh.rst:208 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*flags* set to ``NULL``." msgstr "" -#: c-api/veryhigh.rst:206 +#: c-api/veryhigh.rst:214 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*closeit* set to ``0``." msgstr "" -#: c-api/veryhigh.rst:212 +#: c-api/veryhigh.rst:220 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 " @@ -252,30 +260,30 @@ msgid "" "`PyRun_FileExFlags` returns." msgstr "" -#: c-api/veryhigh.rst:221 +#: c-api/veryhigh.rst:229 msgid "" "This is a simplified interface to :c:func:`Py_CompileStringFlags` below, " "leaving *flags* set to ``NULL``." msgstr "" -#: c-api/veryhigh.rst:227 +#: c-api/veryhigh.rst:235 msgid "" "This is a simplified interface to :c:func:`Py_CompileStringExFlags` below, " "with *optimize* set to ``-1``." msgstr "" -#: c-api/veryhigh.rst:233 +#: c-api/veryhigh.rst:241 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 :c:data:" -"`Py_eval_input`, :c:data:`Py_file_input`, or :c:data:`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." +"code object. The start symbol is given by *start*; this can be used to " +"constrain the code which can be compiled and should be :ref:`available start " +"symbols `. 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 "" -#: c-api/veryhigh.rst:241 +#: c-api/veryhigh.rst:249 msgid "" "The integer *optimize* specifies the optimization level of the compiler; a " "value of ``-1`` selects the optimization level of the interpreter as given " @@ -284,20 +292,20 @@ msgid "" "or ``2`` (docstrings are removed too)." msgstr "" -#: c-api/veryhigh.rst:252 +#: c-api/veryhigh.rst:260 msgid "" "Like :c:func:`Py_CompileStringObject`, but *filename* is a byte string " "decoded from the :term:`filesystem encoding and error handler`." msgstr "" -#: c-api/veryhigh.rst:259 +#: c-api/veryhigh.rst:267 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 "" -#: c-api/veryhigh.rst:266 +#: c-api/veryhigh.rst:274 msgid "" "Evaluate a precompiled code object, given a particular environment for its " "evaluation. This environment consists of a dictionary of global variables, " @@ -306,13 +314,13 @@ msgid "" "only_parameter>` arguments and a closure tuple of cells." msgstr "" -#: c-api/veryhigh.rst:275 +#: c-api/veryhigh.rst:283 msgid "" "Evaluate an execution frame. This is a simplified interface to :c:func:" "`PyEval_EvalFrameEx`, for backward compatibility." msgstr "" -#: c-api/veryhigh.rst:281 +#: c-api/veryhigh.rst:289 msgid "" "This is the main, unvarnished function of Python interpretation. The code " "object associated with the execution frame *f* is executed, interpreting " @@ -322,39 +330,19 @@ msgid "" "of generator objects." msgstr "" -#: c-api/veryhigh.rst:288 +#: c-api/veryhigh.rst:296 msgid "" "This function now includes a debug assertion to help ensure that it does not " "silently discard an active exception." msgstr "" -#: c-api/veryhigh.rst:295 +#: c-api/veryhigh.rst:303 msgid "" "This function changes the flags of the current evaluation frame, and returns " "true on success, false on failure." msgstr "" -#: c-api/veryhigh.rst:303 -msgid "" -"The start symbol from the Python grammar for isolated expressions; for use " -"with :c:func:`Py_CompileString`." -msgstr "" - -#: c-api/veryhigh.rst:311 -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 "" - -#: c-api/veryhigh.rst:320 -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 "" - -#: c-api/veryhigh.rst:327 +#: c-api/veryhigh.rst:309 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 " @@ -362,49 +350,132 @@ msgid "" "case, ``from __future__ import`` can modify *flags*." msgstr "" -#: c-api/veryhigh.rst:332 +#: c-api/veryhigh.rst:314 msgid "" "Whenever ``PyCompilerFlags *flags`` is ``NULL``, :c:member:`~PyCompilerFlags." "cf_flags` is treated as equal to ``0``, and any modification due to ``from " "__future__ import`` is discarded." msgstr "" -#: c-api/veryhigh.rst:338 +#: c-api/veryhigh.rst:320 msgid "Compiler flags." msgstr "" -#: c-api/veryhigh.rst:342 +#: c-api/veryhigh.rst:324 msgid "" "*cf_feature_version* is the minor Python version. It should be initialized " "to ``PY_MINOR_VERSION``." msgstr "" -#: c-api/veryhigh.rst:345 +#: c-api/veryhigh.rst:327 msgid "" "The field is ignored by default, it is used if and only if ``PyCF_ONLY_AST`` " "flag is set in :c:member:`~PyCompilerFlags.cf_flags`." msgstr "" -#: c-api/veryhigh.rst:348 +#: c-api/veryhigh.rst:330 msgid "Added *cf_feature_version* field." msgstr "" -#: c-api/veryhigh.rst:351 +#: c-api/veryhigh.rst:333 msgid "The available compiler flags are accessible as macros:" msgstr "" -#: c-api/veryhigh.rst:360 +#: c-api/veryhigh.rst:342 msgid "" "See :ref:`compiler flags ` in documentation of the :py:" "mod:`!ast` Python module, which exports these constants under the same names." msgstr "" -#: c-api/veryhigh.rst:366 +#: c-api/veryhigh.rst:346 +msgid "" +"The \"``PyCF``\" flags above can be combined with \"``CO_FUTURE``\" flags " +"such as :c:macro:`CO_FUTURE_ANNOTATIONS` to enable features normally " +"selectable using :ref:`future statements `. See :ref:" +"`c_codeobject_flags` for a complete list." +msgstr "" + +#: c-api/veryhigh.rst:355 +msgid "Available start symbols" +msgstr "" + +#: c-api/veryhigh.rst:362 +msgid "" +"The start symbol from the Python grammar for isolated expressions; for use " +"with :c:func:`Py_CompileString`." +msgstr "" + +#: c-api/veryhigh.rst:370 +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 "" + +#: c-api/veryhigh.rst:379 +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 "" + +#: c-api/veryhigh.rst:388 +msgid "" +"The start symbol from the Python grammar for a function type; for use with :" +"c:func:`Py_CompileString`. This is used to parse \"signature type comments\" " +"from :pep:`484`." +msgstr "" + +#: c-api/veryhigh.rst:392 +msgid "This requires the :c:macro:`PyCF_ONLY_AST` flag to be set." +msgstr "" + +#: c-api/veryhigh.rst:395 +msgid ":py:class:`ast.FunctionType`" +msgstr "" + +#: c-api/veryhigh.rst:396 +msgid ":pep:`484`" +msgstr "" + +#: c-api/veryhigh.rst:402 +msgid "Stack Effects" +msgstr "" + +#: c-api/veryhigh.rst:405 +msgid ":py:func:`dis.stack_effect`" +msgstr "" + +#: c-api/veryhigh.rst:410 +msgid "Sentinel value representing an invalid stack effect." +msgstr "" + +#: c-api/veryhigh.rst:412 +msgid "This is currently equivalent to ``INT_MAX``." +msgstr "" + +#: c-api/veryhigh.rst:419 +msgid "Compute the stack effect of *opcode* with argument *oparg*." +msgstr "" + +#: c-api/veryhigh.rst:435 +msgid "" +"On success, this function returns the stack effect; on failure, this " +"returns :c:macro:`PY_INVALID_STACK_EFFECT`." +msgstr "" + +#: c-api/veryhigh.rst:429 +msgid "" +"Similar to :c:func:`PyCompile_OpcodeStackEffect`, but don't include the " +"stack effect of jumping if *jump* is zero." +msgstr "" + +#: c-api/veryhigh.rst:432 msgid "" -"This bit can be set in *flags* to cause division operator ``/`` to be " -"interpreted as \"true division\" according to :pep:`238`." +"If *jump* is ``0``, this will not include the stack effect of jumping, but " +"if *jump* is ``1`` or ``-1``, this will include it." msgstr "" -#: c-api/veryhigh.rst:309 c-api/veryhigh.rst:318 +#: c-api/veryhigh.rst:368 c-api/veryhigh.rst:386 msgid "Py_CompileString (C function)" msgstr "" diff --git a/c-api/weakref.po b/c-api/weakref.po index a886ebd3..b3c48166 100644 --- a/c-api/weakref.po +++ b/c-api/weakref.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -37,16 +37,22 @@ msgstr "" #: c-api/weakref.rst:22 msgid "" -"Return non-zero if *ob* is a reference object. This function always " -"succeeds." +"Return non-zero if *ob* is a reference object or a subclass of the reference " +"type. This function always succeeds." msgstr "" -#: c-api/weakref.rst:27 +#: c-api/weakref.rst:28 +msgid "" +"Return non-zero if *ob* is a reference object, but not a subclass of the " +"reference type. This function always succeeds." +msgstr "" + +#: c-api/weakref.rst:34 msgid "" "Return non-zero if *ob* is a proxy object. This function always succeeds." msgstr "" -#: c-api/weakref.rst:32 +#: c-api/weakref.rst:39 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 " @@ -58,7 +64,13 @@ msgid "" "``NULL``, this will return ``NULL`` and raise :exc:`TypeError`." msgstr "" -#: c-api/weakref.rst:44 +#: c-api/weakref.rst:65 +msgid "" +":c:func:`PyType_SUPPORTS_WEAKREFS` for checking if *ob* is weakly " +"referenceable." +msgstr "" + +#: c-api/weakref.rst:55 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 " @@ -70,33 +82,33 @@ msgid "" "``None``, or ``NULL``, this will return ``NULL`` and raise :exc:`TypeError`." msgstr "" -#: c-api/weakref.rst:56 +#: c-api/weakref.rst:71 msgid "" "Get a :term:`strong reference` to the referenced object from a weak " "reference, *ref*, into *\\*pobj*." msgstr "" -#: c-api/weakref.rst:59 +#: c-api/weakref.rst:74 msgid "" "On success, set *\\*pobj* to a new :term:`strong reference` to the " "referenced object and return 1." msgstr "" -#: c-api/weakref.rst:61 +#: c-api/weakref.rst:76 msgid "If the reference is dead, set *\\*pobj* to ``NULL`` and return 0." msgstr "" -#: c-api/weakref.rst:62 +#: c-api/weakref.rst:77 msgid "On error, raise an exception and return -1." msgstr "" -#: c-api/weakref.rst:69 +#: c-api/weakref.rst:84 msgid "" "Return a :term:`borrowed reference` to the referenced object from a weak " "reference, *ref*. If the referent is no longer live, returns ``Py_None``." msgstr "" -#: c-api/weakref.rst:74 +#: c-api/weakref.rst:89 msgid "" "This function returns a :term:`borrowed reference` to the referenced object. " "This means that you should always call :c:func:`Py_INCREF` on the object " @@ -104,39 +116,39 @@ msgid "" "reference." msgstr "" -#: c-api/weakref.rst:87 +#: c-api/weakref.rst:102 msgid "Use :c:func:`PyWeakref_GetRef` instead." msgstr "" -#: c-api/weakref.rst:85 +#: c-api/weakref.rst:100 msgid "Similar to :c:func:`PyWeakref_GetObject`, but does no error checking." msgstr "" -#: c-api/weakref.rst:93 +#: c-api/weakref.rst:108 msgid "" "Test if the weak reference *ref* is dead. Returns 1 if the reference is " "dead, 0 if it is alive, and -1 with an error set if *ref* is not a weak " "reference object." msgstr "" -#: c-api/weakref.rst:102 +#: c-api/weakref.rst:117 msgid "" "This function is called by the :c:member:`~PyTypeObject.tp_dealloc` handler " "to clear weak references." msgstr "" -#: c-api/weakref.rst:105 +#: c-api/weakref.rst:120 msgid "" "This iterates through the weak references for *object* and calls callbacks " "for those references which have one. It returns when all callbacks have been " "attempted." msgstr "" -#: c-api/weakref.rst:112 +#: c-api/weakref.rst:127 msgid "Clears the weakrefs for *object* without calling the callbacks." msgstr "" -#: c-api/weakref.rst:114 +#: c-api/weakref.rst:129 msgid "" "This function is called by the :c:member:`~PyTypeObject.tp_dealloc` handler " "for types with finalizers (i.e., :meth:`~object.__del__`). The handler for " @@ -145,7 +157,7 @@ msgid "" "clear any weakrefs that may have been created by the finalizer." msgstr "" -#: c-api/weakref.rst:120 +#: c-api/weakref.rst:135 msgid "" "In most circumstances, it's more appropriate to use :c:func:" "`PyObject_ClearWeakRefs` to clear weakrefs instead of this function." diff --git a/contents.po b/contents.po index 1fce9052..67c44e40 100644 --- a/contents.po +++ b/contents.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-04-24 22:37+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" diff --git a/copyright.po b/copyright.po index 70f78b59..3737efa3 100644 --- a/copyright.po +++ b/copyright.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-04-24 22:33+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" diff --git a/deprecations/c-api-pending-removal-in-3.14.po b/deprecations/c-api-pending-removal-in-3.14.po index 3699b994..c7cf06a4 100644 --- a/deprecations/c-api-pending-removal-in-3.14.po +++ b/deprecations/c-api-pending-removal-in-3.14.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/deprecations/c-api-pending-removal-in-3.15.po b/deprecations/c-api-pending-removal-in-3.15.po index f8368ac4..1079ba00 100644 --- a/deprecations/c-api-pending-removal-in-3.15.po +++ b/deprecations/c-api-pending-removal-in-3.15.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,16 +22,12 @@ msgid "Pending removal in Python 3.15" msgstr "" #: deprecations/c-api-pending-removal-in-3.15.rst:4 -msgid "The bundled copy of ``libmpdecimal``." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:5 msgid "" "The :c:func:`PyImport_ImportModuleNoBlock`: Use :c:func:" "`PyImport_ImportModule` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:7 +#: deprecations/c-api-pending-removal-in-3.15.rst:6 msgid "" ":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: Use :c:" "func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project ` (:data:`sys.path`) instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:28 +#: deprecations/c-api-pending-removal-in-3.15.rst:27 msgid "" ":c:func:`Py_GetPrefix`: Use :c:func:`PyConfig_Get(\"base_prefix\") " "` (:data:`sys.base_prefix`) instead. Use :c:func:" @@ -87,7 +83,7 @@ msgid "" "`virtual environments ` need to be handled." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:33 +#: deprecations/c-api-pending-removal-in-3.15.rst:32 msgid "" ":c:func:`Py_GetExecPrefix`: Use :c:func:`PyConfig_Get(\"base_exec_prefix\") " "` (:data:`sys.base_exec_prefix`) instead. Use :c:func:" @@ -95,176 +91,176 @@ msgid "" "ref:`virtual environments ` need to be handled." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:39 +#: deprecations/c-api-pending-removal-in-3.15.rst:38 msgid "" ":c:func:`Py_GetProgramFullPath`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:42 +#: deprecations/c-api-pending-removal-in-3.15.rst:41 msgid "" ":c:func:`Py_GetProgramName`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:45 +#: deprecations/c-api-pending-removal-in-3.15.rst:44 msgid "" ":c:func:`Py_GetPythonHome`: Use :c:func:`PyConfig_Get(\"home\") " "` or the :envvar:`PYTHONHOME` environment variable instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:49 +#: deprecations/c-api-pending-removal-in-3.15.rst:48 msgid "" "The `pythoncapi-compat project `__ can be used to get :c:func:`PyConfig_Get` on Python 3.13 and older." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:53 +#: deprecations/c-api-pending-removal-in-3.15.rst:52 msgid "" "Functions to configure Python's initialization, deprecated in Python 3.11:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:55 +#: deprecations/c-api-pending-removal-in-3.15.rst:54 msgid ":c:func:`!PySys_SetArgvEx()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:57 +#: deprecations/c-api-pending-removal-in-3.15.rst:56 msgid ":c:func:`!PySys_SetArgv()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:59 +#: deprecations/c-api-pending-removal-in-3.15.rst:58 msgid "" ":c:func:`!Py_SetProgramName()`: Set :c:member:`PyConfig.program_name` " "instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:61 +#: deprecations/c-api-pending-removal-in-3.15.rst:60 msgid ":c:func:`!Py_SetPythonHome()`: Set :c:member:`PyConfig.home` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:63 +#: deprecations/c-api-pending-removal-in-3.15.rst:62 msgid "" ":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" "warnings.filters` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:66 +#: deprecations/c-api-pending-removal-in-3.15.rst:65 msgid "" "The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" "`PyConfig` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:69 +#: deprecations/c-api-pending-removal-in-3.15.rst:68 msgid "Global configuration variables:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:71 +#: deprecations/c-api-pending-removal-in-3.15.rst:70 msgid "" ":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` or :c:func:" "`PyConfig_Get(\"parser_debug\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:74 +#: deprecations/c-api-pending-removal-in-3.15.rst:73 msgid "" ":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` or :c:func:" "`PyConfig_Get(\"verbose\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:77 +#: deprecations/c-api-pending-removal-in-3.15.rst:76 msgid "" ":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` or :c:func:" "`PyConfig_Get(\"quiet\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:80 +#: deprecations/c-api-pending-removal-in-3.15.rst:79 msgid "" ":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` or :c:func:" "`PyConfig_Get(\"interactive\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:83 +#: deprecations/c-api-pending-removal-in-3.15.rst:82 msgid "" ":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` or :c:func:" "`PyConfig_Get(\"inspect\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:86 +#: deprecations/c-api-pending-removal-in-3.15.rst:85 msgid "" ":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` or :c:" "func:`PyConfig_Get(\"optimization_level\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:89 +#: deprecations/c-api-pending-removal-in-3.15.rst:88 msgid "" ":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` or :c:func:" "`PyConfig_Get(\"site_import\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:92 +#: deprecations/c-api-pending-removal-in-3.15.rst:91 msgid "" ":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` or :c:" "func:`PyConfig_Get(\"bytes_warning\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:95 +#: deprecations/c-api-pending-removal-in-3.15.rst:94 msgid "" ":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` or :c:" "func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:98 +#: deprecations/c-api-pending-removal-in-3.15.rst:97 msgid "" ":c:var:`Py_IgnoreEnvironmentFlag`: Use :c:member:`PyConfig.use_environment` " "or :c:func:`PyConfig_Get(\"use_environment\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:101 +#: deprecations/c-api-pending-removal-in-3.15.rst:100 msgid "" ":c:var:`Py_DontWriteBytecodeFlag`: Use :c:member:`PyConfig.write_bytecode` " "or :c:func:`PyConfig_Get(\"write_bytecode\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:104 +#: deprecations/c-api-pending-removal-in-3.15.rst:103 msgid "" ":c:var:`Py_NoUserSiteDirectory`: Use :c:member:`PyConfig." "user_site_directory` or :c:func:`PyConfig_Get(\"user_site_directory\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:107 +#: deprecations/c-api-pending-removal-in-3.15.rst:106 msgid "" ":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` or :" "c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:110 +#: deprecations/c-api-pending-removal-in-3.15.rst:109 msgid "" ":c:var:`Py_HashRandomizationFlag`: Use :c:member:`PyConfig.use_hash_seed` " "and :c:member:`PyConfig.hash_seed` or :c:func:`PyConfig_Get(\"hash_seed\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:114 +#: deprecations/c-api-pending-removal-in-3.15.rst:113 msgid "" ":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` or :c:func:" "`PyConfig_Get(\"isolated\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:117 +#: deprecations/c-api-pending-removal-in-3.15.rst:116 msgid "" ":c:var:`Py_LegacyWindowsFSEncodingFlag`: Use :c:member:`PyPreConfig." "legacy_windows_fs_encoding` or :c:func:" "`PyConfig_Get(\"legacy_windows_fs_encoding\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:120 +#: deprecations/c-api-pending-removal-in-3.15.rst:119 msgid "" ":c:var:`Py_LegacyWindowsStdioFlag`: Use :c:member:`PyConfig." "legacy_windows_stdio` or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:123 +#: deprecations/c-api-pending-removal-in-3.15.rst:122 msgid "" ":c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!" "Py_HasFileSystemDefaultEncoding`: Use :c:member:`PyConfig." @@ -272,21 +268,21 @@ msgid "" "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:126 +#: deprecations/c-api-pending-removal-in-3.15.rst:125 msgid "" ":c:var:`!Py_FileSystemDefaultEncodeErrors`: Use :c:member:`PyConfig." "filesystem_errors` or :c:func:`PyConfig_Get(\"filesystem_errors\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:129 +#: deprecations/c-api-pending-removal-in-3.15.rst:128 msgid "" ":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` or :c:func:" "`PyConfig_Get(\"utf8_mode\") ` instead. (see :c:func:" "`Py_PreInitialize`)" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:134 +#: deprecations/c-api-pending-removal-in-3.15.rst:133 msgid "" "The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" "`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can be used to " diff --git a/deprecations/c-api-pending-removal-in-3.16.po b/deprecations/c-api-pending-removal-in-3.16.po new file mode 100644 index 00000000..8672affe --- /dev/null +++ b/deprecations/c-api-pending-removal-in-3.16.po @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 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.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: deprecations/c-api-pending-removal-in-3.16.rst:2 +msgid "Pending removal in Python 3.16" +msgstr "" + +#: deprecations/c-api-pending-removal-in-3.16.rst:4 +msgid "The bundled copy of ``libmpdec``." +msgstr "" diff --git a/deprecations/c-api-pending-removal-in-3.18.po b/deprecations/c-api-pending-removal-in-3.18.po index 41a81dc6..75bc2f2a 100644 --- a/deprecations/c-api-pending-removal-in-3.18.po +++ b/deprecations/c-api-pending-removal-in-3.18.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,78 +22,80 @@ msgid "Pending removal in Python 3.18" msgstr "" #: deprecations/c-api-pending-removal-in-3.18.rst:4 -msgid "Deprecated private functions (:gh:`128863`):" +msgid "" +"The following private functions are deprecated and planned for removal in " +"Python 3.18:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:6 +#: deprecations/c-api-pending-removal-in-3.18.rst:7 msgid ":c:func:`!_PyBytes_Join`: use :c:func:`PyBytes_Join`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:7 +#: deprecations/c-api-pending-removal-in-3.18.rst:8 msgid "" ":c:func:`!_PyDict_GetItemStringWithError`: use :c:func:" "`PyDict_GetItemStringRef`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:8 -msgid ":c:func:`!_PyDict_Pop()`: :c:func:`PyDict_Pop`." +#: deprecations/c-api-pending-removal-in-3.18.rst:9 +msgid ":c:func:`!_PyDict_Pop()`: use :c:func:`PyDict_Pop`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:9 +#: deprecations/c-api-pending-removal-in-3.18.rst:10 msgid ":c:func:`!_PyLong_Sign()`: use :c:func:`PyLong_GetSign`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:10 +#: deprecations/c-api-pending-removal-in-3.18.rst:11 msgid "" ":c:func:`!_PyLong_FromDigits` and :c:func:`!_PyLong_New`: use :c:func:" "`PyLongWriter_Create`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:12 +#: deprecations/c-api-pending-removal-in-3.18.rst:13 msgid "" ":c:func:`!_PyThreadState_UncheckedGet`: use :c:func:" "`PyThreadState_GetUnchecked`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:13 +#: deprecations/c-api-pending-removal-in-3.18.rst:14 msgid ":c:func:`!_PyUnicode_AsString`: use :c:func:`PyUnicode_AsUTF8`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:14 +#: deprecations/c-api-pending-removal-in-3.18.rst:15 msgid "" ":c:func:`!_PyUnicodeWriter_Init`: replace ``_PyUnicodeWriter_Init(&writer)`` " "with :c:func:`writer = PyUnicodeWriter_Create(0) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:17 +#: deprecations/c-api-pending-removal-in-3.18.rst:18 msgid "" ":c:func:`!_PyUnicodeWriter_Finish`: replace " "``_PyUnicodeWriter_Finish(&writer)`` with :c:func:" "`PyUnicodeWriter_Finish(writer) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:20 +#: deprecations/c-api-pending-removal-in-3.18.rst:21 msgid "" ":c:func:`!_PyUnicodeWriter_Dealloc`: replace " "``_PyUnicodeWriter_Dealloc(&writer)`` with :c:func:" "`PyUnicodeWriter_Discard(writer) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:23 +#: deprecations/c-api-pending-removal-in-3.18.rst:24 msgid "" ":c:func:`!_PyUnicodeWriter_WriteChar`: replace " "``_PyUnicodeWriter_WriteChar(&writer, ch)`` with :c:func:" "`PyUnicodeWriter_WriteChar(writer, ch) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:26 +#: deprecations/c-api-pending-removal-in-3.18.rst:27 msgid "" ":c:func:`!_PyUnicodeWriter_WriteStr`: replace " "``_PyUnicodeWriter_WriteStr(&writer, str)`` with :c:func:" "`PyUnicodeWriter_WriteStr(writer, str) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:29 +#: deprecations/c-api-pending-removal-in-3.18.rst:30 msgid "" ":c:func:`!_PyUnicodeWriter_WriteSubstring`: replace " "``_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)`` with :c:func:" @@ -101,38 +103,39 @@ msgid "" "`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:32 +#: deprecations/c-api-pending-removal-in-3.18.rst:33 msgid "" ":c:func:`!_PyUnicodeWriter_WriteASCIIString`: replace " "``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` with :c:func:" -"`PyUnicodeWriter_WriteUTF8(writer, str) `." +"`PyUnicodeWriter_WriteASCII(writer, str) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:35 +#: deprecations/c-api-pending-removal-in-3.18.rst:36 msgid "" ":c:func:`!_PyUnicodeWriter_WriteLatin1String`: replace " "``_PyUnicodeWriter_WriteLatin1String(&writer, str)`` with :c:func:" "`PyUnicodeWriter_WriteUTF8(writer, str) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:38 +#: deprecations/c-api-pending-removal-in-3.18.rst:39 msgid ":c:func:`!_PyUnicodeWriter_Prepare`: (no replacement)." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:39 +#: deprecations/c-api-pending-removal-in-3.18.rst:40 msgid ":c:func:`!_PyUnicodeWriter_PrepareKind`: (no replacement)." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:40 +#: deprecations/c-api-pending-removal-in-3.18.rst:41 msgid ":c:func:`!_Py_HashPointer`: use :c:func:`Py_HashPointer`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:41 +#: deprecations/c-api-pending-removal-in-3.18.rst:42 msgid ":c:func:`!_Py_fopen_obj`: use :c:func:`Py_fopen`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:43 +#: deprecations/c-api-pending-removal-in-3.18.rst:44 msgid "" "The `pythoncapi-compat project `__ can be used to get these new public functions on Python 3.13 and older." +">`__ can be used to get these new public functions on Python 3.13 and older. " +"(Contributed by Victor Stinner in :gh:`128863`.)" msgstr "" diff --git a/deprecations/c-api-pending-removal-in-future.po b/deprecations/c-api-pending-removal-in-future.po index 76f3e83b..8fdd4889 100644 --- a/deprecations/c-api-pending-removal-in-future.po +++ b/deprecations/c-api-pending-removal-in-future.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/deprecations/index.po b/deprecations/index.po index f07bf655..ec2b69c4 100644 --- a/deprecations/index.po +++ b/deprecations/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -76,7 +76,7 @@ msgid "" msgstr "" #: deprecations/pending-removal-in-3.15.rst:32 -#: deprecations/pending-removal-in-future.rst:64 +#: deprecations/pending-removal-in-future.rst:63 msgid ":mod:`importlib`:" msgstr "" @@ -154,7 +154,7 @@ msgid "" msgstr "" #: deprecations/pending-removal-in-3.15.rst:80 -#: deprecations/pending-removal-in-3.17.rst:4 +#: deprecations/pending-removal-in-3.17.rst:26 msgid ":mod:`typing`:" msgstr "" @@ -393,8 +393,46 @@ msgstr "" msgid "Pending removal in Python 3.17" msgstr "" +#: deprecations/pending-removal-in-3.17.rst:4 +msgid ":mod:`collections.abc`:" +msgstr "" + #: deprecations/pending-removal-in-3.17.rst:6 msgid "" +":class:`collections.abc.ByteString` is scheduled for removal in Python 3.17." +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:8 +#: deprecations/pending-removal-in-3.17.rst:36 +msgid "" +"Use ``isinstance(obj, collections.abc.Buffer)`` to test if ``obj`` " +"implements the :ref:`buffer protocol ` at runtime. For use in " +"type annotations, either use :class:`~collections.abc.Buffer` or a union " +"that explicitly specifies the types your code supports (e.g., ``bytes | " +"bytearray | memoryview``)." +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:14 +#: deprecations/pending-removal-in-3.17.rst:42 +msgid "" +":class:`!ByteString` was originally intended to be an abstract class that " +"would serve as a supertype of both :class:`bytes` and :class:`bytearray`. " +"However, since the ABC never had any methods, knowing that an object was an " +"instance of :class:`!ByteString` never actually told you anything useful " +"about the object. Other common buffer types such as :class:`memoryview` were " +"also never understood as subtypes of :class:`!ByteString` (either at runtime " +"or by static type checkers)." +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:22 +#: deprecations/pending-removal-in-3.17.rst:50 +msgid "" +"See :pep:`PEP 688 <688#current-options>` for more details. (Contributed by " +"Shantanu Jain in :gh:`91896`.)" +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:28 +msgid "" "Before Python 3.14, old-style unions were implemented using the private " "class ``typing._UnionGenericAlias``. This class is no longer needed for the " "implementation, but it has been retained for backward compatibility, with " @@ -403,6 +441,12 @@ msgid "" "of relying on private implementation details." msgstr "" +#: deprecations/pending-removal-in-3.17.rst:33 +msgid "" +":class:`typing.ByteString`, deprecated since Python 3.9, is scheduled for " +"removal in Python 3.17." +msgstr "" + #: deprecations/pending-removal-in-3.19.rst:2 msgid "Pending removal in Python 3.19" msgstr "" @@ -445,17 +489,13 @@ msgid "The :class:`argparse.FileType` type converter is deprecated." msgstr "" #: deprecations/pending-removal-in-future.rst:18 -msgid "``bool(NotImplemented)``." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:19 msgid "" "Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)`` signature " "is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " "argument signature." msgstr "" -#: deprecations/pending-removal-in-future.rst:22 +#: deprecations/pending-removal-in-future.rst:21 msgid "" "Currently Python accepts numeric literals immediately followed by keywords, " "for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " @@ -467,32 +507,32 @@ msgid "" "syntax error. (:gh:`87999`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:30 +#: deprecations/pending-removal-in-future.rst:29 msgid "" "Support for ``__index__()`` and ``__int__()`` method returning non-int type: " "these methods will be required to return an instance of a strict subclass " "of :class:`int`." msgstr "" -#: deprecations/pending-removal-in-future.rst:33 +#: deprecations/pending-removal-in-future.rst:32 msgid "" "Support for ``__float__()`` method returning a strict subclass of :class:" "`float`: these methods will be required to return an instance of :class:" "`float`." msgstr "" -#: deprecations/pending-removal-in-future.rst:36 +#: deprecations/pending-removal-in-future.rst:35 msgid "" "Support for ``__complex__()`` method returning a strict subclass of :class:" "`complex`: these methods will be required to return an instance of :class:" "`complex`." msgstr "" -#: deprecations/pending-removal-in-future.rst:39 +#: deprecations/pending-removal-in-future.rst:38 msgid "Delegation of ``int()`` to ``__trunc__()`` method." msgstr "" -#: deprecations/pending-removal-in-future.rst:40 +#: deprecations/pending-removal-in-future.rst:39 msgid "" "Passing a complex number as the *real* or *imag* argument in the :func:" "`complex` constructor is now deprecated; it should only be passed as a " @@ -500,87 +540,87 @@ msgid "" "`109218`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:45 +#: deprecations/pending-removal-in-future.rst:44 msgid "" ":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " "are deprecated and replaced by :data:`calendar.JANUARY` and :data:`calendar." "FEBRUARY`. (Contributed by Prince Roshan in :gh:`103636`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:50 +#: deprecations/pending-removal-in-future.rst:49 msgid "" ":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. (:gh:" "`133038`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:52 +#: deprecations/pending-removal-in-future.rst:51 msgid "" ":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:55 +#: deprecations/pending-removal-in-future.rst:54 msgid ":mod:`datetime`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:57 +#: deprecations/pending-removal-in-future.rst:56 msgid "" ":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." "UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:59 +#: deprecations/pending-removal-in-future.rst:58 msgid "" ":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." "fromtimestamp(timestamp, tz=datetime.UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:62 +#: deprecations/pending-removal-in-future.rst:61 msgid ":mod:`gettext`: Plural value must be an integer." msgstr "" -#: deprecations/pending-removal-in-future.rst:66 +#: deprecations/pending-removal-in-future.rst:65 msgid "" ":func:`~importlib.util.cache_from_source` *debug_override* parameter is " "deprecated: use the *optimization* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:69 +#: deprecations/pending-removal-in-future.rst:68 msgid ":mod:`importlib.metadata`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:71 +#: deprecations/pending-removal-in-future.rst:70 msgid "``EntryPoints`` tuple interface." msgstr "" -#: deprecations/pending-removal-in-future.rst:72 +#: deprecations/pending-removal-in-future.rst:71 msgid "Implicit ``None`` on return values." msgstr "" -#: deprecations/pending-removal-in-future.rst:74 +#: deprecations/pending-removal-in-future.rst:73 msgid "" ":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " "use :meth:`~logging.warning` instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:77 +#: deprecations/pending-removal-in-future.rst:76 msgid "" ":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " "BytesIO and binary mode instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:80 +#: deprecations/pending-removal-in-future.rst:79 msgid "" ":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." msgstr "" -#: deprecations/pending-removal-in-future.rst:82 +#: deprecations/pending-removal-in-future.rst:81 msgid "" ":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " "deprecated, use an exception instance." msgstr "" -#: deprecations/pending-removal-in-future.rst:85 +#: deprecations/pending-removal-in-future.rst:84 msgid "" ":mod:`re`: More strict rules are now applied for numerical group references " "and group names in regular expressions. Only sequence of ASCII digits is " @@ -589,110 +629,110 @@ msgid "" "underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:92 +#: deprecations/pending-removal-in-future.rst:91 msgid "" ":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." msgstr "" -#: deprecations/pending-removal-in-future.rst:94 +#: deprecations/pending-removal-in-future.rst:93 msgid "" ":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " "Python 3.12; use the *onexc* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:97 +#: deprecations/pending-removal-in-future.rst:96 msgid ":mod:`ssl` options and protocols:" msgstr "" -#: deprecations/pending-removal-in-future.rst:99 +#: deprecations/pending-removal-in-future.rst:98 msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." msgstr "" -#: deprecations/pending-removal-in-future.rst:100 +#: deprecations/pending-removal-in-future.rst:99 msgid "" ":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` and :meth:" "`!selected_npn_protocol` are deprecated: use ALPN instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:103 +#: deprecations/pending-removal-in-future.rst:102 msgid "``ssl.OP_NO_SSL*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:104 +#: deprecations/pending-removal-in-future.rst:103 msgid "``ssl.OP_NO_TLS*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:105 +#: deprecations/pending-removal-in-future.rst:104 msgid "``ssl.PROTOCOL_SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:106 +#: deprecations/pending-removal-in-future.rst:105 msgid "``ssl.PROTOCOL_TLS``" msgstr "" -#: deprecations/pending-removal-in-future.rst:107 +#: deprecations/pending-removal-in-future.rst:106 msgid "``ssl.PROTOCOL_TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:108 +#: deprecations/pending-removal-in-future.rst:107 msgid "``ssl.PROTOCOL_TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:109 +#: deprecations/pending-removal-in-future.rst:108 msgid "``ssl.PROTOCOL_TLSv1_2``" msgstr "" -#: deprecations/pending-removal-in-future.rst:110 +#: deprecations/pending-removal-in-future.rst:109 msgid "``ssl.TLSVersion.SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:111 +#: deprecations/pending-removal-in-future.rst:110 msgid "``ssl.TLSVersion.TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:112 +#: deprecations/pending-removal-in-future.rst:111 msgid "``ssl.TLSVersion.TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:114 +#: deprecations/pending-removal-in-future.rst:113 msgid ":mod:`threading` methods:" msgstr "" -#: deprecations/pending-removal-in-future.rst:116 +#: deprecations/pending-removal-in-future.rst:115 msgid "" ":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." "notify_all`." msgstr "" -#: deprecations/pending-removal-in-future.rst:117 +#: deprecations/pending-removal-in-future.rst:116 msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." msgstr "" -#: deprecations/pending-removal-in-future.rst:118 +#: deprecations/pending-removal-in-future.rst:117 msgid "" ":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :" "attr:`threading.Thread.daemon` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:120 +#: deprecations/pending-removal-in-future.rst:119 msgid "" ":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :" "attr:`threading.Thread.name` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:122 +#: deprecations/pending-removal-in-future.rst:121 msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." msgstr "" -#: deprecations/pending-removal-in-future.rst:123 +#: deprecations/pending-removal-in-future.rst:122 msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." msgstr "" -#: deprecations/pending-removal-in-future.rst:125 +#: deprecations/pending-removal-in-future.rst:124 msgid ":class:`typing.Text` (:gh:`92332`)." msgstr "" -#: deprecations/pending-removal-in-future.rst:127 +#: deprecations/pending-removal-in-future.rst:126 msgid "" "The internal class ``typing._UnionGenericAlias`` is no longer used to " "implement :class:`typing.Union`. To preserve compatibility with users using " @@ -700,69 +740,69 @@ msgid "" "Python 3.17. (Contributed by Jelle Zijlstra in :gh:`105499`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:132 +#: deprecations/pending-removal-in-future.rst:131 msgid "" ":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " "value that is not ``None`` from a test case." msgstr "" -#: deprecations/pending-removal-in-future.rst:135 +#: deprecations/pending-removal-in-future.rst:134 msgid "" ":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " "instead" msgstr "" -#: deprecations/pending-removal-in-future.rst:137 +#: deprecations/pending-removal-in-future.rst:136 msgid "``splitattr()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:138 +#: deprecations/pending-removal-in-future.rst:137 msgid "``splithost()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:139 +#: deprecations/pending-removal-in-future.rst:138 msgid "``splitnport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:140 +#: deprecations/pending-removal-in-future.rst:139 msgid "``splitpasswd()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:141 +#: deprecations/pending-removal-in-future.rst:140 msgid "``splitport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:142 +#: deprecations/pending-removal-in-future.rst:141 msgid "``splitquery()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:143 +#: deprecations/pending-removal-in-future.rst:142 msgid "``splittag()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:144 +#: deprecations/pending-removal-in-future.rst:143 msgid "``splittype()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:145 +#: deprecations/pending-removal-in-future.rst:144 msgid "``splituser()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:146 +#: deprecations/pending-removal-in-future.rst:145 msgid "``splitvalue()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:147 +#: deprecations/pending-removal-in-future.rst:146 msgid "``to_bytes()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:149 +#: deprecations/pending-removal-in-future.rst:148 msgid "" ":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " "writes." msgstr "" -#: deprecations/pending-removal-in-future.rst:152 +#: deprecations/pending-removal-in-future.rst:151 msgid "" ":mod:`xml.etree.ElementTree`: Testing the truth value of an :class:`~xml." "etree.ElementTree.Element` is deprecated. In a future release it will always " @@ -770,7 +810,7 @@ msgid "" "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:157 +#: deprecations/pending-removal-in-future.rst:156 msgid "" ":func:`sys._clear_type_cache` is deprecated: use :func:`sys." "_clear_internal_caches` instead." @@ -781,16 +821,12 @@ msgid "C API deprecations" msgstr "" #: deprecations/c-api-pending-removal-in-3.15.rst:4 -msgid "The bundled copy of ``libmpdecimal``." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:5 msgid "" "The :c:func:`PyImport_ImportModuleNoBlock`: Use :c:func:" "`PyImport_ImportModule` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:7 +#: deprecations/c-api-pending-removal-in-3.15.rst:6 msgid "" ":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: Use :c:" "func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project ` (:data:`sys.path`) instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:28 +#: deprecations/c-api-pending-removal-in-3.15.rst:27 msgid "" ":c:func:`Py_GetPrefix`: Use :c:func:`PyConfig_Get(\"base_prefix\") " "` (:data:`sys.base_prefix`) instead. Use :c:func:" @@ -846,7 +882,7 @@ msgid "" "`virtual environments ` need to be handled." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:33 +#: deprecations/c-api-pending-removal-in-3.15.rst:32 msgid "" ":c:func:`Py_GetExecPrefix`: Use :c:func:`PyConfig_Get(\"base_exec_prefix\") " "` (:data:`sys.base_exec_prefix`) instead. Use :c:func:" @@ -854,176 +890,176 @@ msgid "" "ref:`virtual environments ` need to be handled." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:39 +#: deprecations/c-api-pending-removal-in-3.15.rst:38 msgid "" ":c:func:`Py_GetProgramFullPath`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:42 +#: deprecations/c-api-pending-removal-in-3.15.rst:41 msgid "" ":c:func:`Py_GetProgramName`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:45 +#: deprecations/c-api-pending-removal-in-3.15.rst:44 msgid "" ":c:func:`Py_GetPythonHome`: Use :c:func:`PyConfig_Get(\"home\") " "` or the :envvar:`PYTHONHOME` environment variable instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:49 +#: deprecations/c-api-pending-removal-in-3.15.rst:48 msgid "" "The `pythoncapi-compat project `__ can be used to get :c:func:`PyConfig_Get` on Python 3.13 and older." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:53 +#: deprecations/c-api-pending-removal-in-3.15.rst:52 msgid "" "Functions to configure Python's initialization, deprecated in Python 3.11:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:55 +#: deprecations/c-api-pending-removal-in-3.15.rst:54 msgid ":c:func:`!PySys_SetArgvEx()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:57 +#: deprecations/c-api-pending-removal-in-3.15.rst:56 msgid ":c:func:`!PySys_SetArgv()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:59 +#: deprecations/c-api-pending-removal-in-3.15.rst:58 msgid "" ":c:func:`!Py_SetProgramName()`: Set :c:member:`PyConfig.program_name` " "instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:61 +#: deprecations/c-api-pending-removal-in-3.15.rst:60 msgid ":c:func:`!Py_SetPythonHome()`: Set :c:member:`PyConfig.home` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:63 +#: deprecations/c-api-pending-removal-in-3.15.rst:62 msgid "" ":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" "warnings.filters` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:66 +#: deprecations/c-api-pending-removal-in-3.15.rst:65 msgid "" "The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" "`PyConfig` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:69 +#: deprecations/c-api-pending-removal-in-3.15.rst:68 msgid "Global configuration variables:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:71 +#: deprecations/c-api-pending-removal-in-3.15.rst:70 msgid "" ":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` or :c:func:" "`PyConfig_Get(\"parser_debug\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:74 +#: deprecations/c-api-pending-removal-in-3.15.rst:73 msgid "" ":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` or :c:func:" "`PyConfig_Get(\"verbose\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:77 +#: deprecations/c-api-pending-removal-in-3.15.rst:76 msgid "" ":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` or :c:func:" "`PyConfig_Get(\"quiet\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:80 +#: deprecations/c-api-pending-removal-in-3.15.rst:79 msgid "" ":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` or :c:func:" "`PyConfig_Get(\"interactive\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:83 +#: deprecations/c-api-pending-removal-in-3.15.rst:82 msgid "" ":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` or :c:func:" "`PyConfig_Get(\"inspect\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:86 +#: deprecations/c-api-pending-removal-in-3.15.rst:85 msgid "" ":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` or :c:" "func:`PyConfig_Get(\"optimization_level\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:89 +#: deprecations/c-api-pending-removal-in-3.15.rst:88 msgid "" ":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` or :c:func:" "`PyConfig_Get(\"site_import\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:92 +#: deprecations/c-api-pending-removal-in-3.15.rst:91 msgid "" ":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` or :c:" "func:`PyConfig_Get(\"bytes_warning\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:95 +#: deprecations/c-api-pending-removal-in-3.15.rst:94 msgid "" ":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` or :c:" "func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:98 +#: deprecations/c-api-pending-removal-in-3.15.rst:97 msgid "" ":c:var:`Py_IgnoreEnvironmentFlag`: Use :c:member:`PyConfig.use_environment` " "or :c:func:`PyConfig_Get(\"use_environment\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:101 +#: deprecations/c-api-pending-removal-in-3.15.rst:100 msgid "" ":c:var:`Py_DontWriteBytecodeFlag`: Use :c:member:`PyConfig.write_bytecode` " "or :c:func:`PyConfig_Get(\"write_bytecode\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:104 +#: deprecations/c-api-pending-removal-in-3.15.rst:103 msgid "" ":c:var:`Py_NoUserSiteDirectory`: Use :c:member:`PyConfig." "user_site_directory` or :c:func:`PyConfig_Get(\"user_site_directory\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:107 +#: deprecations/c-api-pending-removal-in-3.15.rst:106 msgid "" ":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` or :" "c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:110 +#: deprecations/c-api-pending-removal-in-3.15.rst:109 msgid "" ":c:var:`Py_HashRandomizationFlag`: Use :c:member:`PyConfig.use_hash_seed` " "and :c:member:`PyConfig.hash_seed` or :c:func:`PyConfig_Get(\"hash_seed\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:114 +#: deprecations/c-api-pending-removal-in-3.15.rst:113 msgid "" ":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` or :c:func:" "`PyConfig_Get(\"isolated\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:117 +#: deprecations/c-api-pending-removal-in-3.15.rst:116 msgid "" ":c:var:`Py_LegacyWindowsFSEncodingFlag`: Use :c:member:`PyPreConfig." "legacy_windows_fs_encoding` or :c:func:" "`PyConfig_Get(\"legacy_windows_fs_encoding\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:120 +#: deprecations/c-api-pending-removal-in-3.15.rst:119 msgid "" ":c:var:`Py_LegacyWindowsStdioFlag`: Use :c:member:`PyConfig." "legacy_windows_stdio` or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:123 +#: deprecations/c-api-pending-removal-in-3.15.rst:122 msgid "" ":c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!" "Py_HasFileSystemDefaultEncoding`: Use :c:member:`PyConfig." @@ -1031,21 +1067,21 @@ msgid "" "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:126 +#: deprecations/c-api-pending-removal-in-3.15.rst:125 msgid "" ":c:var:`!Py_FileSystemDefaultEncodeErrors`: Use :c:member:`PyConfig." "filesystem_errors` or :c:func:`PyConfig_Get(\"filesystem_errors\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:129 +#: deprecations/c-api-pending-removal-in-3.15.rst:128 msgid "" ":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` or :c:func:" "`PyConfig_Get(\"utf8_mode\") ` instead. (see :c:func:" "`Py_PreInitialize`)" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:134 +#: deprecations/c-api-pending-removal-in-3.15.rst:133 msgid "" "The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" "`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can be used to " @@ -1057,78 +1093,80 @@ msgid "Pending removal in Python 3.18" msgstr "" #: deprecations/c-api-pending-removal-in-3.18.rst:4 -msgid "Deprecated private functions (:gh:`128863`):" +msgid "" +"The following private functions are deprecated and planned for removal in " +"Python 3.18:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:6 +#: deprecations/c-api-pending-removal-in-3.18.rst:7 msgid ":c:func:`!_PyBytes_Join`: use :c:func:`PyBytes_Join`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:7 +#: deprecations/c-api-pending-removal-in-3.18.rst:8 msgid "" ":c:func:`!_PyDict_GetItemStringWithError`: use :c:func:" "`PyDict_GetItemStringRef`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:8 -msgid ":c:func:`!_PyDict_Pop()`: :c:func:`PyDict_Pop`." +#: deprecations/c-api-pending-removal-in-3.18.rst:9 +msgid ":c:func:`!_PyDict_Pop()`: use :c:func:`PyDict_Pop`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:9 +#: deprecations/c-api-pending-removal-in-3.18.rst:10 msgid ":c:func:`!_PyLong_Sign()`: use :c:func:`PyLong_GetSign`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:10 +#: deprecations/c-api-pending-removal-in-3.18.rst:11 msgid "" ":c:func:`!_PyLong_FromDigits` and :c:func:`!_PyLong_New`: use :c:func:" "`PyLongWriter_Create`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:12 +#: deprecations/c-api-pending-removal-in-3.18.rst:13 msgid "" ":c:func:`!_PyThreadState_UncheckedGet`: use :c:func:" "`PyThreadState_GetUnchecked`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:13 +#: deprecations/c-api-pending-removal-in-3.18.rst:14 msgid ":c:func:`!_PyUnicode_AsString`: use :c:func:`PyUnicode_AsUTF8`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:14 +#: deprecations/c-api-pending-removal-in-3.18.rst:15 msgid "" ":c:func:`!_PyUnicodeWriter_Init`: replace ``_PyUnicodeWriter_Init(&writer)`` " "with :c:func:`writer = PyUnicodeWriter_Create(0) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:17 +#: deprecations/c-api-pending-removal-in-3.18.rst:18 msgid "" ":c:func:`!_PyUnicodeWriter_Finish`: replace " "``_PyUnicodeWriter_Finish(&writer)`` with :c:func:" "`PyUnicodeWriter_Finish(writer) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:20 +#: deprecations/c-api-pending-removal-in-3.18.rst:21 msgid "" ":c:func:`!_PyUnicodeWriter_Dealloc`: replace " "``_PyUnicodeWriter_Dealloc(&writer)`` with :c:func:" "`PyUnicodeWriter_Discard(writer) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:23 +#: deprecations/c-api-pending-removal-in-3.18.rst:24 msgid "" ":c:func:`!_PyUnicodeWriter_WriteChar`: replace " "``_PyUnicodeWriter_WriteChar(&writer, ch)`` with :c:func:" "`PyUnicodeWriter_WriteChar(writer, ch) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:26 +#: deprecations/c-api-pending-removal-in-3.18.rst:27 msgid "" ":c:func:`!_PyUnicodeWriter_WriteStr`: replace " "``_PyUnicodeWriter_WriteStr(&writer, str)`` with :c:func:" "`PyUnicodeWriter_WriteStr(writer, str) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:29 +#: deprecations/c-api-pending-removal-in-3.18.rst:30 msgid "" ":c:func:`!_PyUnicodeWriter_WriteSubstring`: replace " "``_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)`` with :c:func:" @@ -1136,40 +1174,41 @@ msgid "" "`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:32 +#: deprecations/c-api-pending-removal-in-3.18.rst:33 msgid "" ":c:func:`!_PyUnicodeWriter_WriteASCIIString`: replace " "``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` with :c:func:" -"`PyUnicodeWriter_WriteUTF8(writer, str) `." +"`PyUnicodeWriter_WriteASCII(writer, str) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:35 +#: deprecations/c-api-pending-removal-in-3.18.rst:36 msgid "" ":c:func:`!_PyUnicodeWriter_WriteLatin1String`: replace " "``_PyUnicodeWriter_WriteLatin1String(&writer, str)`` with :c:func:" "`PyUnicodeWriter_WriteUTF8(writer, str) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:38 +#: deprecations/c-api-pending-removal-in-3.18.rst:39 msgid ":c:func:`!_PyUnicodeWriter_Prepare`: (no replacement)." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:39 +#: deprecations/c-api-pending-removal-in-3.18.rst:40 msgid ":c:func:`!_PyUnicodeWriter_PrepareKind`: (no replacement)." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:40 +#: deprecations/c-api-pending-removal-in-3.18.rst:41 msgid ":c:func:`!_Py_HashPointer`: use :c:func:`Py_HashPointer`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:41 +#: deprecations/c-api-pending-removal-in-3.18.rst:42 msgid ":c:func:`!_Py_fopen_obj`: use :c:func:`Py_fopen`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:43 +#: deprecations/c-api-pending-removal-in-3.18.rst:44 msgid "" "The `pythoncapi-compat project `__ can be used to get these new public functions on Python 3.13 and older." +">`__ can be used to get these new public functions on Python 3.13 and older. " +"(Contributed by Victor Stinner in :gh:`128863`.)" msgstr "" #: deprecations/c-api-pending-removal-in-future.rst:4 diff --git a/deprecations/pending-removal-in-3.13.po b/deprecations/pending-removal-in-3.13.po index 9a750879..562446fe 100644 --- a/deprecations/pending-removal-in-3.13.po +++ b/deprecations/pending-removal-in-3.13.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -148,42 +148,3 @@ msgstr "" #: deprecations/pending-removal-in-3.13.rst:40 msgid ":class:`classmethod` descriptor chaining (:gh:`89519`)" msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:41 -msgid ":mod:`importlib.resources` deprecated methods:" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:43 -msgid "``contents()``" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:44 -msgid "``is_resource()``" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:45 -msgid "``open_binary()``" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:46 -msgid "``open_text()``" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:47 -msgid "``path()``" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:48 -msgid "``read_binary()``" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:49 -msgid "``read_text()``" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:51 -msgid "" -"Use :func:`importlib.resources.files` instead. Refer to `importlib-" -"resources: Migrating from Legacy `_ (:gh:`106531`)" -msgstr "" diff --git a/deprecations/pending-removal-in-3.14.po b/deprecations/pending-removal-in-3.14.po index 4a33d8db..26ee8490 100644 --- a/deprecations/pending-removal-in-3.14.po +++ b/deprecations/pending-removal-in-3.14.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -91,51 +91,43 @@ msgstr "" #: deprecations/pending-removal-in-3.14.rst:41 msgid "" -":mod:`collections.abc`: Deprecated :class:`!collections.abc.ByteString`. " -"Prefer :class:`!Sequence` or :class:`~collections.abc.Buffer`. For use in " -"typing, prefer a union, like ``bytes | bytearray``, or :class:`collections." -"abc.Buffer`. (Contributed by Shantanu Jain in :gh:`91896`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:47 -msgid "" ":mod:`email`: Deprecated the *isdst* parameter in :func:`email.utils." "localtime`. (Contributed by Alan Williams in :gh:`72346`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:50 +#: deprecations/pending-removal-in-3.14.rst:44 msgid ":mod:`importlib.abc` deprecated classes:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:52 +#: deprecations/pending-removal-in-3.14.rst:46 msgid ":class:`!importlib.abc.ResourceReader`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:53 +#: deprecations/pending-removal-in-3.14.rst:47 msgid ":class:`!importlib.abc.Traversable`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:54 +#: deprecations/pending-removal-in-3.14.rst:48 msgid ":class:`!importlib.abc.TraversableResources`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:56 +#: deprecations/pending-removal-in-3.14.rst:50 msgid "Use :mod:`importlib.resources.abc` classes instead:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:58 +#: deprecations/pending-removal-in-3.14.rst:52 msgid ":class:`importlib.resources.abc.Traversable`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:59 +#: deprecations/pending-removal-in-3.14.rst:53 msgid ":class:`importlib.resources.abc.TraversableResources`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:61 +#: deprecations/pending-removal-in-3.14.rst:55 msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:63 +#: deprecations/pending-removal-in-3.14.rst:57 msgid "" ":mod:`itertools` had undocumented, inefficient, historically buggy, and " "inconsistent support for copy, deepcopy, and pickle operations. This will be " @@ -143,7 +135,7 @@ msgid "" "burden. (Contributed by Raymond Hettinger in :gh:`101588`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:69 +#: deprecations/pending-removal-in-3.14.rst:63 msgid "" ":mod:`multiprocessing`: The default start method will change to a safer one " "on Linux, BSDs, and other non-macOS POSIX platforms where ``'fork'`` is " @@ -154,53 +146,47 @@ msgid "" "``'fork'``. See :ref:`multiprocessing-start-methods`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:77 +#: deprecations/pending-removal-in-3.14.rst:71 msgid "" ":mod:`pathlib`: :meth:`~pathlib.PurePath.is_relative_to` and :meth:`~pathlib." "PurePath.relative_to`: passing additional arguments is deprecated." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:81 +#: deprecations/pending-removal-in-3.14.rst:75 msgid "" ":mod:`pkgutil`: :func:`!pkgutil.find_loader` and :func:`!pkgutil.get_loader` " "now raise :exc:`DeprecationWarning`; use :func:`importlib.util.find_spec` " "instead. (Contributed by Nikita Sobolev in :gh:`97850`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:86 +#: deprecations/pending-removal-in-3.14.rst:80 msgid ":mod:`pty`:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:88 +#: deprecations/pending-removal-in-3.14.rst:82 msgid "``master_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:89 +#: deprecations/pending-removal-in-3.14.rst:83 msgid "``slave_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:91 +#: deprecations/pending-removal-in-3.14.rst:85 msgid ":mod:`sqlite3`:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:93 +#: deprecations/pending-removal-in-3.14.rst:87 msgid ":data:`!version` and :data:`!version_info`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:95 +#: deprecations/pending-removal-in-3.14.rst:89 msgid "" ":meth:`~sqlite3.Cursor.execute` and :meth:`~sqlite3.Cursor.executemany` if :" "ref:`named placeholders ` are used and *parameters* is " "a sequence instead of a :class:`dict`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:99 -msgid "" -":mod:`typing`: :class:`!typing.ByteString`, deprecated since Python 3.9, now " -"causes a :exc:`DeprecationWarning` to be emitted when it is used." -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:102 +#: deprecations/pending-removal-in-3.14.rst:93 msgid "" ":mod:`urllib`: :class:`!urllib.parse.Quoter` is deprecated: it was not " "intended to be a public API. (Contributed by Gregory P. Smith in :gh:" diff --git a/deprecations/pending-removal-in-3.15.po b/deprecations/pending-removal-in-3.15.po index 8c08319f..c829d4d1 100644 --- a/deprecations/pending-removal-in-3.15.po +++ b/deprecations/pending-removal-in-3.15.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/deprecations/pending-removal-in-3.16.po b/deprecations/pending-removal-in-3.16.po index 43085b77..ad21c9fe 100644 --- a/deprecations/pending-removal-in-3.16.po +++ b/deprecations/pending-removal-in-3.16.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/deprecations/pending-removal-in-3.17.po b/deprecations/pending-removal-in-3.17.po index 14be65a9..fba641ba 100644 --- a/deprecations/pending-removal-in-3.17.po +++ b/deprecations/pending-removal-in-3.17.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,11 +22,49 @@ msgid "Pending removal in Python 3.17" msgstr "" #: deprecations/pending-removal-in-3.17.rst:4 -msgid ":mod:`typing`:" +msgid ":mod:`collections.abc`:" msgstr "" #: deprecations/pending-removal-in-3.17.rst:6 msgid "" +":class:`collections.abc.ByteString` is scheduled for removal in Python 3.17." +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:8 +#: deprecations/pending-removal-in-3.17.rst:36 +msgid "" +"Use ``isinstance(obj, collections.abc.Buffer)`` to test if ``obj`` " +"implements the :ref:`buffer protocol ` at runtime. For use in " +"type annotations, either use :class:`~collections.abc.Buffer` or a union " +"that explicitly specifies the types your code supports (e.g., ``bytes | " +"bytearray | memoryview``)." +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:14 +#: deprecations/pending-removal-in-3.17.rst:42 +msgid "" +":class:`!ByteString` was originally intended to be an abstract class that " +"would serve as a supertype of both :class:`bytes` and :class:`bytearray`. " +"However, since the ABC never had any methods, knowing that an object was an " +"instance of :class:`!ByteString` never actually told you anything useful " +"about the object. Other common buffer types such as :class:`memoryview` were " +"also never understood as subtypes of :class:`!ByteString` (either at runtime " +"or by static type checkers)." +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:22 +#: deprecations/pending-removal-in-3.17.rst:50 +msgid "" +"See :pep:`PEP 688 <688#current-options>` for more details. (Contributed by " +"Shantanu Jain in :gh:`91896`.)" +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:26 +msgid ":mod:`typing`:" +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:28 +msgid "" "Before Python 3.14, old-style unions were implemented using the private " "class ``typing._UnionGenericAlias``. This class is no longer needed for the " "implementation, but it has been retained for backward compatibility, with " @@ -34,3 +72,9 @@ msgid "" "helpers like :func:`typing.get_origin` and :func:`typing.get_args` instead " "of relying on private implementation details." msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:33 +msgid "" +":class:`typing.ByteString`, deprecated since Python 3.9, is scheduled for " +"removal in Python 3.17." +msgstr "" diff --git a/deprecations/pending-removal-in-3.19.po b/deprecations/pending-removal-in-3.19.po index 5f920483..20864aa8 100644 --- a/deprecations/pending-removal-in-3.19.po +++ b/deprecations/pending-removal-in-3.19.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/deprecations/pending-removal-in-future.po b/deprecations/pending-removal-in-future.po index 867770e4..b8be295c 100644 --- a/deprecations/pending-removal-in-future.po +++ b/deprecations/pending-removal-in-future.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -51,17 +51,13 @@ msgid ":mod:`builtins`:" msgstr "" #: deprecations/pending-removal-in-future.rst:18 -msgid "``bool(NotImplemented)``." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:19 msgid "" "Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)`` signature " "is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " "argument signature." msgstr "" -#: deprecations/pending-removal-in-future.rst:22 +#: deprecations/pending-removal-in-future.rst:21 msgid "" "Currently Python accepts numeric literals immediately followed by keywords, " "for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " @@ -73,32 +69,32 @@ msgid "" "syntax error. (:gh:`87999`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:30 +#: deprecations/pending-removal-in-future.rst:29 msgid "" "Support for ``__index__()`` and ``__int__()`` method returning non-int type: " "these methods will be required to return an instance of a strict subclass " "of :class:`int`." msgstr "" -#: deprecations/pending-removal-in-future.rst:33 +#: deprecations/pending-removal-in-future.rst:32 msgid "" "Support for ``__float__()`` method returning a strict subclass of :class:" "`float`: these methods will be required to return an instance of :class:" "`float`." msgstr "" -#: deprecations/pending-removal-in-future.rst:36 +#: deprecations/pending-removal-in-future.rst:35 msgid "" "Support for ``__complex__()`` method returning a strict subclass of :class:" "`complex`: these methods will be required to return an instance of :class:" "`complex`." msgstr "" -#: deprecations/pending-removal-in-future.rst:39 +#: deprecations/pending-removal-in-future.rst:38 msgid "Delegation of ``int()`` to ``__trunc__()`` method." msgstr "" -#: deprecations/pending-removal-in-future.rst:40 +#: deprecations/pending-removal-in-future.rst:39 msgid "" "Passing a complex number as the *real* or *imag* argument in the :func:" "`complex` constructor is now deprecated; it should only be passed as a " @@ -106,91 +102,91 @@ msgid "" "`109218`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:45 +#: deprecations/pending-removal-in-future.rst:44 msgid "" ":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " "are deprecated and replaced by :data:`calendar.JANUARY` and :data:`calendar." "FEBRUARY`. (Contributed by Prince Roshan in :gh:`103636`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:50 +#: deprecations/pending-removal-in-future.rst:49 msgid "" ":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. (:gh:" "`133038`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:52 +#: deprecations/pending-removal-in-future.rst:51 msgid "" ":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:55 +#: deprecations/pending-removal-in-future.rst:54 msgid ":mod:`datetime`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:57 +#: deprecations/pending-removal-in-future.rst:56 msgid "" ":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." "UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:59 +#: deprecations/pending-removal-in-future.rst:58 msgid "" ":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." "fromtimestamp(timestamp, tz=datetime.UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:62 +#: deprecations/pending-removal-in-future.rst:61 msgid ":mod:`gettext`: Plural value must be an integer." msgstr "" -#: deprecations/pending-removal-in-future.rst:64 +#: deprecations/pending-removal-in-future.rst:63 msgid ":mod:`importlib`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:66 +#: deprecations/pending-removal-in-future.rst:65 msgid "" ":func:`~importlib.util.cache_from_source` *debug_override* parameter is " "deprecated: use the *optimization* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:69 +#: deprecations/pending-removal-in-future.rst:68 msgid ":mod:`importlib.metadata`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:71 +#: deprecations/pending-removal-in-future.rst:70 msgid "``EntryPoints`` tuple interface." msgstr "" -#: deprecations/pending-removal-in-future.rst:72 +#: deprecations/pending-removal-in-future.rst:71 msgid "Implicit ``None`` on return values." msgstr "" -#: deprecations/pending-removal-in-future.rst:74 +#: deprecations/pending-removal-in-future.rst:73 msgid "" ":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " "use :meth:`~logging.warning` instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:77 +#: deprecations/pending-removal-in-future.rst:76 msgid "" ":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " "BytesIO and binary mode instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:80 +#: deprecations/pending-removal-in-future.rst:79 msgid "" ":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." msgstr "" -#: deprecations/pending-removal-in-future.rst:82 +#: deprecations/pending-removal-in-future.rst:81 msgid "" ":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " "deprecated, use an exception instance." msgstr "" -#: deprecations/pending-removal-in-future.rst:85 +#: deprecations/pending-removal-in-future.rst:84 msgid "" ":mod:`re`: More strict rules are now applied for numerical group references " "and group names in regular expressions. Only sequence of ASCII digits is " @@ -199,110 +195,110 @@ msgid "" "underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:92 +#: deprecations/pending-removal-in-future.rst:91 msgid "" ":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." msgstr "" -#: deprecations/pending-removal-in-future.rst:94 +#: deprecations/pending-removal-in-future.rst:93 msgid "" ":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " "Python 3.12; use the *onexc* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:97 +#: deprecations/pending-removal-in-future.rst:96 msgid ":mod:`ssl` options and protocols:" msgstr "" -#: deprecations/pending-removal-in-future.rst:99 +#: deprecations/pending-removal-in-future.rst:98 msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." msgstr "" -#: deprecations/pending-removal-in-future.rst:100 +#: deprecations/pending-removal-in-future.rst:99 msgid "" ":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` and :meth:" "`!selected_npn_protocol` are deprecated: use ALPN instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:103 +#: deprecations/pending-removal-in-future.rst:102 msgid "``ssl.OP_NO_SSL*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:104 +#: deprecations/pending-removal-in-future.rst:103 msgid "``ssl.OP_NO_TLS*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:105 +#: deprecations/pending-removal-in-future.rst:104 msgid "``ssl.PROTOCOL_SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:106 +#: deprecations/pending-removal-in-future.rst:105 msgid "``ssl.PROTOCOL_TLS``" msgstr "" -#: deprecations/pending-removal-in-future.rst:107 +#: deprecations/pending-removal-in-future.rst:106 msgid "``ssl.PROTOCOL_TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:108 +#: deprecations/pending-removal-in-future.rst:107 msgid "``ssl.PROTOCOL_TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:109 +#: deprecations/pending-removal-in-future.rst:108 msgid "``ssl.PROTOCOL_TLSv1_2``" msgstr "" -#: deprecations/pending-removal-in-future.rst:110 +#: deprecations/pending-removal-in-future.rst:109 msgid "``ssl.TLSVersion.SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:111 +#: deprecations/pending-removal-in-future.rst:110 msgid "``ssl.TLSVersion.TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:112 +#: deprecations/pending-removal-in-future.rst:111 msgid "``ssl.TLSVersion.TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:114 +#: deprecations/pending-removal-in-future.rst:113 msgid ":mod:`threading` methods:" msgstr "" -#: deprecations/pending-removal-in-future.rst:116 +#: deprecations/pending-removal-in-future.rst:115 msgid "" ":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." "notify_all`." msgstr "" -#: deprecations/pending-removal-in-future.rst:117 +#: deprecations/pending-removal-in-future.rst:116 msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." msgstr "" -#: deprecations/pending-removal-in-future.rst:118 +#: deprecations/pending-removal-in-future.rst:117 msgid "" ":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :" "attr:`threading.Thread.daemon` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:120 +#: deprecations/pending-removal-in-future.rst:119 msgid "" ":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :" "attr:`threading.Thread.name` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:122 +#: deprecations/pending-removal-in-future.rst:121 msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." msgstr "" -#: deprecations/pending-removal-in-future.rst:123 +#: deprecations/pending-removal-in-future.rst:122 msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." msgstr "" -#: deprecations/pending-removal-in-future.rst:125 +#: deprecations/pending-removal-in-future.rst:124 msgid ":class:`typing.Text` (:gh:`92332`)." msgstr "" -#: deprecations/pending-removal-in-future.rst:127 +#: deprecations/pending-removal-in-future.rst:126 msgid "" "The internal class ``typing._UnionGenericAlias`` is no longer used to " "implement :class:`typing.Union`. To preserve compatibility with users using " @@ -310,69 +306,69 @@ msgid "" "Python 3.17. (Contributed by Jelle Zijlstra in :gh:`105499`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:132 +#: deprecations/pending-removal-in-future.rst:131 msgid "" ":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " "value that is not ``None`` from a test case." msgstr "" -#: deprecations/pending-removal-in-future.rst:135 +#: deprecations/pending-removal-in-future.rst:134 msgid "" ":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " "instead" msgstr "" -#: deprecations/pending-removal-in-future.rst:137 +#: deprecations/pending-removal-in-future.rst:136 msgid "``splitattr()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:138 +#: deprecations/pending-removal-in-future.rst:137 msgid "``splithost()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:139 +#: deprecations/pending-removal-in-future.rst:138 msgid "``splitnport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:140 +#: deprecations/pending-removal-in-future.rst:139 msgid "``splitpasswd()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:141 +#: deprecations/pending-removal-in-future.rst:140 msgid "``splitport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:142 +#: deprecations/pending-removal-in-future.rst:141 msgid "``splitquery()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:143 +#: deprecations/pending-removal-in-future.rst:142 msgid "``splittag()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:144 +#: deprecations/pending-removal-in-future.rst:143 msgid "``splittype()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:145 +#: deprecations/pending-removal-in-future.rst:144 msgid "``splituser()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:146 +#: deprecations/pending-removal-in-future.rst:145 msgid "``splitvalue()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:147 +#: deprecations/pending-removal-in-future.rst:146 msgid "``to_bytes()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:149 +#: deprecations/pending-removal-in-future.rst:148 msgid "" ":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " "writes." msgstr "" -#: deprecations/pending-removal-in-future.rst:152 +#: deprecations/pending-removal-in-future.rst:151 msgid "" ":mod:`xml.etree.ElementTree`: Testing the truth value of an :class:`~xml." "etree.ElementTree.Element` is deprecated. In a future release it will always " @@ -380,7 +376,7 @@ msgid "" "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:157 +#: deprecations/pending-removal-in-future.rst:156 msgid "" ":func:`sys._clear_type_cache` is deprecated: use :func:`sys." "_clear_internal_caches` instead." diff --git a/distributing/index.po b/distributing/index.po index 8bde0585..eb730dcd 100644 --- a/distributing/index.po +++ b/distributing/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-11-25 20:18+0000\n" "Last-Translator: Artemis Leonardou \n" "Language-Team: PyGreece \n" diff --git a/extending/building.po b/extending/building.po index 9b64153d..a5920f60 100644 --- a/extending/building.po +++ b/extending/building.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-06-19 17:57+0300\n" "Last-Translator: ALEXANDROS TZIORAS alextzioras23@gmail.com\n" "Language-Team: Language-Team: PyGreece \n" diff --git a/extending/embedding.po b/extending/embedding.po index 144e94f0..ade606b5 100644 --- a/extending/embedding.po +++ b/extending/embedding.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/extending/extending.po b/extending/extending.po index d9267b22..7dfcc035 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -87,7 +87,7 @@ msgstr "" msgid "The first two lines of our file can be::" msgstr "" -#: extending/extending.rst:681 +#: extending/extending.rst:706 msgid "" "#define PY_SSIZE_T_CLEAN\n" "#include " @@ -117,22 +117,93 @@ msgstr "" #: extending/extending.rst:77 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." +"or ``PY``, except those defined in standard header files." msgstr "" -#: extending/extending.rst:85 +#: extending/extending.rst:82 +msgid "" +"For backward compatibility, :file:`Python.h` includes several standard " +"header files. C extensions should include the standard headers that they " +"use, and should not rely on these implicit includes. If using the limited C " +"API version 3.13 or newer, the implicit includes are:" +msgstr "" + +#: extending/extending.rst:87 +msgid "````" +msgstr "" + +#: extending/extending.rst:88 +msgid "```` (on Windows)" +msgstr "" + +#: extending/extending.rst:89 +msgid "````" +msgstr "" + +#: extending/extending.rst:90 +msgid "````" +msgstr "" + +#: extending/extending.rst:91 +msgid "````" +msgstr "" + +#: extending/extending.rst:92 +msgid "````" +msgstr "" + +#: extending/extending.rst:93 +msgid "````" +msgstr "" + +#: extending/extending.rst:94 +msgid "```` (if present)" +msgstr "" + +#: extending/extending.rst:96 +msgid "" +"If :c:macro:`Py_LIMITED_API` is not defined, or is set to version 3.12 or " +"older, the headers below are also included:" +msgstr "" + +#: extending/extending.rst:99 +msgid "````" +msgstr "" + +#: extending/extending.rst:100 +msgid "```` (on POSIX)" +msgstr "" + +#: extending/extending.rst:102 +msgid "" +"If :c:macro:`Py_LIMITED_API` is not defined, or is set to version 3.10 or " +"older, the headers below are also included:" +msgstr "" + +#: extending/extending.rst:105 +msgid "````" +msgstr "" + +#: extending/extending.rst:106 +msgid "````" +msgstr "" + +#: extending/extending.rst:107 +msgid "````" +msgstr "" + +#: extending/extending.rst:108 +msgid "````" +msgstr "" + +#: extending/extending.rst:110 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 "" -#: extending/extending.rst:89 +#: extending/extending.rst:114 msgid "" "static PyObject *\n" "spam_system(PyObject *self, PyObject *args)\n" @@ -147,7 +218,7 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:101 +#: extending/extending.rst:126 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 " @@ -155,13 +226,13 @@ msgid "" "*self* and *args*." msgstr "" -#: extending/extending.rst:106 +#: extending/extending.rst:131 msgid "" "The *self* argument points to the module object for module-level functions; " "for a method it would point to the object instance." msgstr "" -#: extending/extending.rst:109 +#: extending/extending.rst:134 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 " @@ -173,7 +244,7 @@ msgid "" "variables into which to store the converted values. More about this later." msgstr "" -#: extending/extending.rst:118 +#: extending/extending.rst:143 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 " @@ -183,11 +254,11 @@ msgid "" "example)." msgstr "" -#: extending/extending.rst:128 +#: extending/extending.rst:153 msgid "Intermezzo: Errors and Exceptions" msgstr "" -#: extending/extending.rst:130 +#: extending/extending.rst:155 msgid "" "An important convention throughout the Python interpreter is the following: " "when a function fails, it should set an exception condition and return an " @@ -199,13 +270,13 @@ msgid "" "important to know about them to understand how errors are passed around." msgstr "" -#: extending/extending.rst:139 +#: extending/extending.rst:164 msgid "" "The Python API defines a number of functions to set various types of " "exceptions." msgstr "" -#: extending/extending.rst:141 +#: extending/extending.rst:166 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 " @@ -214,7 +285,7 @@ msgid "" "and stored as the \"associated value\" of the exception." msgstr "" -#: extending/extending.rst:147 +#: extending/extending.rst:172 msgid "" "Another useful function is :c:func:`PyErr_SetFromErrno`, which only takes an " "exception argument and constructs the associated value by inspection of the " @@ -224,7 +295,7 @@ msgid "" "to any of these functions." msgstr "" -#: extending/extending.rst:154 +#: extending/extending.rst:179 msgid "" "You can test non-destructively whether an exception has been set with :c:" "func:`PyErr_Occurred`. This returns the current exception object, or " @@ -233,7 +304,7 @@ msgid "" "since you should be able to tell from the return value." msgstr "" -#: extending/extending.rst:160 +#: extending/extending.rst:185 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 " @@ -246,7 +317,7 @@ msgid "" "tries to find an exception handler specified by the Python programmer." msgstr "" -#: extending/extending.rst:170 +#: extending/extending.rst:195 msgid "" "(There are situations where a module can actually give a more detailed error " "message by calling another ``PyErr_*`` function, and in such cases it is " @@ -255,7 +326,7 @@ msgid "" "can fail for a variety of reasons.)" msgstr "" -#: extending/extending.rst:176 +#: extending/extending.rst:201 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 " @@ -264,7 +335,7 @@ msgid "" "itself (possibly by trying something else, or pretending nothing went wrong)." msgstr "" -#: extending/extending.rst:182 +#: extending/extending.rst:207 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:" @@ -273,7 +344,7 @@ msgid "" "so this note is only relevant to those who call :c:func:`malloc` directly." msgstr "" -#: extending/extending.rst:188 +#: extending/extending.rst:213 msgid "" "Also note that, with the important exception of :c:func:`PyArg_ParseTuple` " "and friends, functions that return an integer status usually return a " @@ -281,14 +352,14 @@ msgid "" "calls." msgstr "" -#: extending/extending.rst:192 +#: extending/extending.rst:217 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 "" -#: extending/extending.rst:196 +#: extending/extending.rst:221 msgid "" "The choice of which exception to raise is entirely yours. There are " "predeclared C objects corresponding to all built-in Python exceptions, such " @@ -301,41 +372,41 @@ msgid "" "satisfy other conditions, :c:data:`PyExc_ValueError` is appropriate." msgstr "" -#: extending/extending.rst:206 +#: extending/extending.rst:231 msgid "" "You can also define a new exception that is unique to your module. The " "simplest way to do this is to declare a static global object variable at the " "beginning of the file::" msgstr "" -#: extending/extending.rst:210 +#: extending/extending.rst:235 msgid "static PyObject *SpamError = NULL;" msgstr "" -#: extending/extending.rst:212 +#: extending/extending.rst:237 msgid "" "and initialize it by calling :c:func:`PyErr_NewException` in the module's :c:" "data:`Py_mod_exec` function (:c:func:`!spam_module_exec`)::" msgstr "" -#: extending/extending.rst:215 +#: extending/extending.rst:240 msgid "SpamError = PyErr_NewException(\"spam.error\", NULL, NULL);" msgstr "" -#: extending/extending.rst:217 +#: extending/extending.rst:242 msgid "" -"Since :c:data:`!SpamError` is a global variable, it will be overwitten every " -"time the module is reinitialized, when the :c:data:`Py_mod_exec` function is " -"called." +"Since :c:data:`!SpamError` is a global variable, it will be overwritten " +"every time the module is reinitialized, when the :c:data:`Py_mod_exec` " +"function is called." msgstr "" -#: extending/extending.rst:220 +#: extending/extending.rst:245 msgid "" "For now, let's avoid the issue: we will block repeated initialization by " "raising an :py:exc:`ImportError`::" msgstr "" -#: extending/extending.rst:223 +#: extending/extending.rst:248 msgid "" "static PyObject *SpamError = NULL;\n" "\n" @@ -374,7 +445,7 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:259 +#: extending/extending.rst:284 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 " @@ -382,7 +453,7 @@ msgid "" "``NULL``), described in :ref:`bltin-exceptions`." msgstr "" -#: extending/extending.rst:264 +#: extending/extending.rst:289 msgid "" "Note also that the :c:data:`!SpamError` variable retains a reference to the " "newly created exception class; this is intentional! Since the exception " @@ -393,7 +464,7 @@ msgid "" "unintended side effects." msgstr "" -#: extending/extending.rst:271 +#: extending/extending.rst:296 msgid "" "For now, the :c:func:`Py_DECREF` call to remove this reference is missing. " "Even when the Python interpreter shuts down, the global :c:data:`!SpamError` " @@ -401,19 +472,19 @@ msgid "" "ensure that this will happen at most once per process." msgstr "" -#: extending/extending.rst:276 +#: extending/extending.rst:301 msgid "" "We discuss the use of :c:macro:`PyMODINIT_FUNC` as a function return type " "later in this sample." msgstr "" -#: extending/extending.rst:279 +#: extending/extending.rst:304 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 "" -#: extending/extending.rst:282 +#: extending/extending.rst:307 msgid "" "static PyObject *\n" "spam_system(PyObject *self, PyObject *args)\n" @@ -432,23 +503,23 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:302 +#: extending/extending.rst:327 msgid "Back to the Example" msgstr "" -#: extending/extending.rst:304 +#: extending/extending.rst:329 msgid "" "Going back to our example function, you should now be able to understand " "this statement::" msgstr "" -#: extending/extending.rst:307 +#: extending/extending.rst:332 msgid "" "if (!PyArg_ParseTuple(args, \"s\", &command))\n" " return NULL;" msgstr "" -#: extending/extending.rst:310 +#: extending/extending.rst:335 msgid "" "It returns ``NULL`` (the error indicator for functions returning object " "pointers) if an error is detected in the argument list, relying on the " @@ -459,34 +530,34 @@ msgid "" "properly be declared as ``const char *command``)." msgstr "" -#: extending/extending.rst:318 +#: extending/extending.rst:343 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 "" -#: extending/extending.rst:321 +#: extending/extending.rst:346 msgid "sts = system(command);" msgstr "" -#: extending/extending.rst:323 +#: extending/extending.rst:348 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 "" -#: extending/extending.rst:326 +#: extending/extending.rst:351 msgid "return PyLong_FromLong(sts);" msgstr "" -#: extending/extending.rst:328 +#: extending/extending.rst:353 msgid "" "In this case, it will return an integer object. (Yes, even integers are " "objects on the heap in Python!)" msgstr "" -#: extending/extending.rst:331 +#: extending/extending.rst:356 msgid "" "If you have a C function that returns no useful argument (a function " "returning :c:expr:`void`), the corresponding Python function must return " @@ -494,30 +565,30 @@ msgid "" "macro:`Py_RETURN_NONE` macro)::" msgstr "" -#: extending/extending.rst:336 +#: extending/extending.rst:361 msgid "" "Py_INCREF(Py_None);\n" "return Py_None;" msgstr "" -#: extending/extending.rst:339 +#: extending/extending.rst:364 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 "" -#: extending/extending.rst:347 +#: extending/extending.rst:372 msgid "The Module's Method Table and Initialization Function" msgstr "" -#: extending/extending.rst:349 +#: extending/extending.rst:374 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 "" -#: extending/extending.rst:352 +#: extending/extending.rst:377 msgid "" "static PyMethodDef spam_methods[] = {\n" " ...\n" @@ -528,7 +599,7 @@ msgid "" "};" msgstr "" -#: extending/extending.rst:360 +#: extending/extending.rst:385 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 " @@ -537,14 +608,14 @@ msgid "" "is used." msgstr "" -#: extending/extending.rst:365 +#: extending/extending.rst:390 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 "" -#: extending/extending.rst:369 +#: extending/extending.rst:394 msgid "" "The :c:macro:`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 " @@ -553,12 +624,12 @@ msgid "" "to such a function." msgstr "" -#: extending/extending.rst:375 +#: extending/extending.rst:400 msgid "" "The method table must be referenced in the module definition structure::" msgstr "" -#: extending/extending.rst:377 +#: extending/extending.rst:402 msgid "" "static struct PyModuleDef spam_module = {\n" " ...\n" @@ -567,7 +638,7 @@ msgid "" "};" msgstr "" -#: extending/extending.rst:383 +#: extending/extending.rst:408 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:" @@ -575,7 +646,7 @@ msgid "" "only non-\\ ``static`` item defined in the module file::" msgstr "" -#: extending/extending.rst:388 +#: extending/extending.rst:413 msgid "" "PyMODINIT_FUNC\n" "PyInit_spam(void)\n" @@ -584,14 +655,14 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:394 +#: extending/extending.rst:419 msgid "" "Note that :c:macro:`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 "" -#: extending/extending.rst:398 +#: extending/extending.rst:423 msgid "" ":c:func:`!PyInit_spam` is called when each interpreter imports its module :" "mod:`!spam` for the first time. (See below for comments about embedding " @@ -600,7 +671,7 @@ msgid "" "store it in ``sys.modules``." msgstr "" -#: extending/extending.rst:403 +#: extending/extending.rst:428 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` " @@ -608,7 +679,7 @@ msgid "" "`PyImport_AppendInittab`, optionally followed by an import of the module::" msgstr "" -#: extending/extending.rst:408 +#: extending/extending.rst:433 msgid "" "#define PY_SSIZE_T_CLEAN\n" "#include \n" @@ -661,7 +732,7 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:458 +#: extending/extending.rst:483 msgid "" "If you declare a global variable or a local static one, the module may " "experience unintended side-effects on re-initialisation, for example when " @@ -673,18 +744,18 @@ msgid "" "`Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED`)." msgstr "" -#: extending/extending.rst:467 +#: extending/extending.rst:492 msgid "" "A more substantial example module is included in the Python source " "distribution as :file:`Modules/xxlimited.c`. This file may be used as a " "template or simply read as an example." msgstr "" -#: extending/extending.rst:475 +#: extending/extending.rst:500 msgid "Compilation and Linkage" msgstr "" -#: extending/extending.rst:477 +#: extending/extending.rst:502 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 " @@ -694,7 +765,7 @@ msgid "" "Windows (chapter :ref:`building-on-windows`) for more information about this." msgstr "" -#: extending/extending.rst:484 +#: extending/extending.rst:509 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 " @@ -704,11 +775,11 @@ msgid "" "line to the file :file:`Modules/Setup.local` describing your file:" msgstr "" -#: extending/extending.rst:491 +#: extending/extending.rst:516 msgid "spam spammodule.o" msgstr "" -#: extending/extending.rst:495 +#: extending/extending.rst:520 msgid "" "and rebuild the interpreter by running :program:`make` in the toplevel " "directory. You can also run :program:`make` in the :file:`Modules/` " @@ -717,21 +788,21 @@ msgid "" "the :file:`Setup` file.)" msgstr "" -#: extending/extending.rst:501 +#: extending/extending.rst:526 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 "" -#: extending/extending.rst:504 +#: extending/extending.rst:529 msgid "spam spammodule.o -lX11" msgstr "" -#: extending/extending.rst:512 +#: extending/extending.rst:537 msgid "Calling Python Functions from C" msgstr "" -#: extending/extending.rst:514 +#: extending/extending.rst:539 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 " @@ -742,7 +813,7 @@ msgid "" "uses are also imaginable." msgstr "" -#: extending/extending.rst:522 +#: extending/extending.rst:547 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 " @@ -751,7 +822,7 @@ msgid "" "line option in :file:`Modules/main.c` from the Python source code.)" msgstr "" -#: extending/extending.rst:528 +#: extending/extending.rst:553 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 " @@ -761,7 +832,7 @@ msgid "" "function might be part of a module definition::" msgstr "" -#: extending/extending.rst:535 +#: extending/extending.rst:560 msgid "" "static PyObject *my_callback = NULL;\n" "\n" @@ -788,7 +859,7 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:558 +#: extending/extending.rst:583 msgid "" "This function must be registered with the interpreter using the :c:macro:" "`METH_VARARGS` flag; this is described in section :ref:`methodtable`. The :" @@ -796,7 +867,7 @@ msgid "" "section :ref:`parsetuple`." msgstr "" -#: extending/extending.rst:563 +#: extending/extending.rst:588 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`` " @@ -804,7 +875,7 @@ msgid "" "info on them in section :ref:`refcounts`." msgstr "" -#: extending/extending.rst:570 +#: extending/extending.rst:595 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 " @@ -816,7 +887,7 @@ msgid "" "or more format codes between parentheses. For example::" msgstr "" -#: extending/extending.rst:579 +#: extending/extending.rst:604 msgid "" "int arg;\n" "PyObject *arglist;\n" @@ -830,7 +901,7 @@ msgid "" "Py_DECREF(arglist);" msgstr "" -#: extending/extending.rst:590 +#: extending/extending.rst:615 msgid "" ":c:func:`PyObject_CallObject` returns a Python object pointer: this is the " "return value of the Python function. :c:func:`PyObject_CallObject` is " @@ -839,7 +910,7 @@ msgid "" "`Py_DECREF`\\ -ed immediately after the :c:func:`PyObject_CallObject` call." msgstr "" -#: extending/extending.rst:597 +#: extending/extending.rst:622 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 " @@ -848,7 +919,7 @@ msgid "" "not interested in its value." msgstr "" -#: extending/extending.rst:603 +#: extending/extending.rst:628 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 " @@ -859,7 +930,7 @@ msgid "" "should be cleared by calling :c:func:`PyErr_Clear`. For example::" msgstr "" -#: extending/extending.rst:611 +#: extending/extending.rst:636 msgid "" "if (result == NULL)\n" " return NULL; /* Pass error back */\n" @@ -867,7 +938,7 @@ msgid "" "Py_DECREF(result);" msgstr "" -#: extending/extending.rst:616 +#: extending/extending.rst:641 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 " @@ -879,7 +950,7 @@ msgid "" "you want to pass an integral event code, you might use the following code::" msgstr "" -#: extending/extending.rst:625 +#: extending/extending.rst:650 msgid "" "PyObject *arglist;\n" "...\n" @@ -892,7 +963,7 @@ msgid "" "Py_DECREF(result);" msgstr "" -#: extending/extending.rst:635 +#: extending/extending.rst:660 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 " @@ -900,14 +971,14 @@ msgid "" "checked." msgstr "" -#: extending/extending.rst:639 +#: extending/extending.rst:664 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 "" -#: extending/extending.rst:643 +#: extending/extending.rst:668 msgid "" "PyObject *dict;\n" "...\n" @@ -920,19 +991,19 @@ msgid "" "Py_DECREF(result);" msgstr "" -#: extending/extending.rst:657 +#: extending/extending.rst:682 msgid "Extracting Parameters in Extension Functions" msgstr "" -#: extending/extending.rst:661 +#: extending/extending.rst:686 msgid "The :c:func:`PyArg_ParseTuple` function is declared as follows::" msgstr "" -#: extending/extending.rst:663 +#: extending/extending.rst:688 msgid "int PyArg_ParseTuple(PyObject *arg, const char *format, ...);" msgstr "" -#: extending/extending.rst:665 +#: extending/extending.rst:690 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, " @@ -941,7 +1012,7 @@ msgid "" "whose type is determined by the format string." msgstr "" -#: extending/extending.rst:671 +#: extending/extending.rst:696 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 " @@ -949,17 +1020,17 @@ msgid "" "probably crash or at least overwrite random bits in memory. So be careful!" msgstr "" -#: extending/extending.rst:676 +#: extending/extending.rst:701 msgid "" "Note that any Python object references which are provided to the caller are " "*borrowed* references; do not decrement their reference count!" msgstr "" -#: extending/extending.rst:679 +#: extending/extending.rst:704 msgid "Some example calls::" msgstr "" -#: extending/extending.rst:686 +#: extending/extending.rst:711 msgid "" "int ok;\n" "int i, j;\n" @@ -971,27 +1042,27 @@ msgid "" " /* Python call: f() */" msgstr "" -#: extending/extending.rst:697 +#: extending/extending.rst:722 msgid "" "ok = PyArg_ParseTuple(args, \"s\", &s); /* A string */\n" " /* Possible Python call: f('whoops!') */" msgstr "" -#: extending/extending.rst:702 +#: extending/extending.rst:727 msgid "" "ok = PyArg_ParseTuple(args, \"lls\", &k, &l, &s); /* Two longs and a string " "*/\n" " /* Possible Python call: f(1, 2, 'three') */" msgstr "" -#: extending/extending.rst:707 +#: extending/extending.rst:732 msgid "" "ok = PyArg_ParseTuple(args, \"(ii)s#\", &i, &j, &s, &size);\n" " /* A pair of ints and a string, whose size is also returned */\n" " /* Possible Python call: f((1, 2), 'three') */" msgstr "" -#: extending/extending.rst:713 +#: extending/extending.rst:738 msgid "" "{\n" " const char *file;\n" @@ -1006,7 +1077,7 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:727 +#: extending/extending.rst:752 msgid "" "{\n" " int left, top, right, bottom, h, v;\n" @@ -1018,7 +1089,7 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:738 +#: extending/extending.rst:763 msgid "" "{\n" " Py_complex c;\n" @@ -1028,23 +1099,23 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:749 +#: extending/extending.rst:774 msgid "Keyword Parameters for Extension Functions" msgstr "" -#: extending/extending.rst:753 +#: extending/extending.rst:778 msgid "" "The :c:func:`PyArg_ParseTupleAndKeywords` function is declared as follows::" msgstr "" -#: extending/extending.rst:755 +#: extending/extending.rst:780 msgid "" "int PyArg_ParseTupleAndKeywords(PyObject *arg, PyObject *kwdict,\n" " const char *format, char * const " "*kwlist, ...);" msgstr "" -#: extending/extending.rst:758 +#: extending/extending.rst:783 msgid "" "The *arg* and *format* parameters are identical to those of the :c:func:" "`PyArg_ParseTuple` function. The *kwdict* parameter is the dictionary of " @@ -1056,20 +1127,20 @@ msgid "" "raises an appropriate exception." msgstr "" -#: extending/extending.rst:768 +#: extending/extending.rst:793 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 "" -#: extending/extending.rst:774 +#: extending/extending.rst:799 msgid "" "Here is an example module which uses keywords, based on an example by Geoff " "Philbrick (philbrick@hks.com)::" msgstr "" -#: extending/extending.rst:777 +#: extending/extending.rst:802 msgid "" "#define PY_SSIZE_T_CLEAN\n" "#include \n" @@ -1122,21 +1193,21 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:828 +#: extending/extending.rst:853 msgid "Building Arbitrary Values" msgstr "" -#: extending/extending.rst:830 +#: extending/extending.rst:855 msgid "" "This function is the counterpart to :c:func:`PyArg_ParseTuple`. It is " "declared as follows::" msgstr "" -#: extending/extending.rst:833 +#: extending/extending.rst:858 msgid "PyObject *Py_BuildValue(const char *format, ...);" msgstr "" -#: extending/extending.rst:835 +#: extending/extending.rst:860 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, " @@ -1144,7 +1215,7 @@ msgid "" "object, suitable for returning from a C function called from Python." msgstr "" -#: extending/extending.rst:840 +#: extending/extending.rst:865 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 " @@ -1156,12 +1227,12 @@ msgid "" "parenthesize the format string." msgstr "" -#: extending/extending.rst:848 +#: extending/extending.rst:873 msgid "" "Examples (to the left the call, to the right the resulting Python value):" msgstr "" -#: extending/extending.rst:850 +#: extending/extending.rst:875 msgid "" "Py_BuildValue(\"\") None\n" "Py_BuildValue(\"i\", 123) 123\n" @@ -1182,11 +1253,11 @@ msgid "" " 1, 2, 3, 4, 5, 6) (((1, 2), (3, 4)), (5, 6))" msgstr "" -#: extending/extending.rst:874 +#: extending/extending.rst:899 msgid "Reference Counts" msgstr "" -#: extending/extending.rst:876 +#: extending/extending.rst:901 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 " @@ -1195,7 +1266,7 @@ msgid "" "restrict the following discussion to the C case." msgstr "" -#: extending/extending.rst:882 +#: extending/extending.rst:907 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:" @@ -1210,7 +1281,7 @@ msgid "" "crashes." msgstr "" -#: extending/extending.rst:893 +#: extending/extending.rst:918 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, " @@ -1227,7 +1298,7 @@ msgid "" "of errors." msgstr "" -#: extending/extending.rst:906 +#: extending/extending.rst:931 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. " @@ -1238,7 +1309,7 @@ msgid "" "reference to the object has been deleted and the object is freed." msgstr "" -#: extending/extending.rst:914 +#: extending/extending.rst:939 msgid "" "An alternative strategy is called :dfn:`automatic garbage collection`. " "(Sometimes, reference counting is also referred to as a garbage collection " @@ -1254,7 +1325,7 @@ msgid "" "with reference counts." msgstr "" -#: extending/extending.rst:926 +#: extending/extending.rst:951 msgid "" "While Python uses the traditional reference counting implementation, it also " "offers a cycle detector that works to detect reference cycles. This allows " @@ -1268,7 +1339,7 @@ msgid "" "though there are no further references to the cycle itself." msgstr "" -#: extending/extending.rst:937 +#: extending/extending.rst:962 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." @@ -1276,11 +1347,11 @@ msgid "" "disable the detector at runtime." msgstr "" -#: extending/extending.rst:946 +#: extending/extending.rst:971 msgid "Reference Counting in Python" msgstr "" -#: extending/extending.rst:948 +#: extending/extending.rst:973 msgid "" "There are two macros, ``Py_INCREF(x)`` and ``Py_DECREF(x)``, which handle " "the incrementing and decrementing of the reference count. :c:func:" @@ -1291,7 +1362,7 @@ msgid "" "object." msgstr "" -#: extending/extending.rst:955 +#: extending/extending.rst:980 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 " @@ -1304,7 +1375,7 @@ msgid "" "reference creates a memory leak." msgstr "" -#: extending/extending.rst:964 +#: extending/extending.rst:989 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 " @@ -1313,7 +1384,7 @@ msgid "" "risks using freed memory and should be avoided completely [#]_." msgstr "" -#: extending/extending.rst:970 +#: extending/extending.rst:995 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 " @@ -1324,7 +1395,7 @@ msgid "" "borrowed has in fact disposed of it." msgstr "" -#: extending/extending.rst:978 +#: extending/extending.rst:1003 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 " @@ -1333,18 +1404,18 @@ msgid "" "properly, as well as the previous owner)." msgstr "" -#: extending/extending.rst:988 +#: extending/extending.rst:1013 msgid "Ownership Rules" msgstr "" -#: extending/extending.rst:990 +#: extending/extending.rst:1015 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 "" -#: extending/extending.rst:994 +#: extending/extending.rst:1019 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 " @@ -1355,7 +1426,7 @@ msgid "" "reference to a cached item." msgstr "" -#: extending/extending.rst:1002 +#: extending/extending.rst:1027 msgid "" "Many functions that extract objects from other objects also transfer " "ownership with the reference, for instance :c:func:" @@ -1366,14 +1437,14 @@ msgid "" "list or dictionary." msgstr "" -#: extending/extending.rst:1009 +#: extending/extending.rst:1034 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 "" -#: extending/extending.rst:1013 +#: extending/extending.rst:1038 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 " @@ -1384,7 +1455,7 @@ msgid "" "don't take over ownership --- they are \"normal.\")" msgstr "" -#: extending/extending.rst:1021 +#: extending/extending.rst:1046 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 " @@ -1393,18 +1464,18 @@ msgid "" "turned into an owned reference by calling :c:func:`Py_INCREF`." msgstr "" -#: extending/extending.rst:1027 +#: extending/extending.rst:1052 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 "" -#: extending/extending.rst:1035 +#: extending/extending.rst:1060 msgid "Thin Ice" msgstr "" -#: extending/extending.rst:1037 +#: extending/extending.rst:1062 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 " @@ -1412,14 +1483,14 @@ msgid "" "dispose of it." msgstr "" -#: extending/extending.rst:1041 +#: extending/extending.rst:1066 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 "" -#: extending/extending.rst:1044 +#: extending/extending.rst:1069 msgid "" "void\n" "bug(PyObject *list)\n" @@ -1431,24 +1502,31 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:1053 +#: extending/extending.rst:1078 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 "" -#: extending/extending.rst:1057 +#: extending/extending.rst:1082 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." +"count of 1, disposing of it will call its :meth:`!__del__` method. " +"Internally, :c:func:`PyList_SetItem` calls :c:func:`Py_DECREF` on the " +"replaced item, which invokes replaced item's corresponding :c:member:" +"`~PyTypeObject.tp_dealloc` function. During deallocation, :c:member:" +"`~PyTypeObject.tp_dealloc` calls :c:member:`~PyTypeObject.tp_finalize`, " +"which is mapped to the :meth:`!__del__` method for class instances (see :pep:" +"`442`). This entire sequence happens synchronously within the :c:func:" +"`PyList_SetItem` call." msgstr "" -#: extending/extending.rst:1064 +#: extending/extending.rst:1096 msgid "" "Since it is written in Python, the :meth:`!__del__` method can execute " "arbitrary Python code. Could it perhaps do something to invalidate the " @@ -1459,13 +1537,13 @@ msgid "" "associated with it, thereby invalidating ``item``." msgstr "" -#: extending/extending.rst:1072 +#: extending/extending.rst:1104 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 "" -#: extending/extending.rst:1075 +#: extending/extending.rst:1107 msgid "" "void\n" "no_bug(PyObject *list)\n" @@ -1479,14 +1557,14 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:1086 +#: extending/extending.rst:1118 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 "" -#: extending/extending.rst:1090 +#: extending/extending.rst:1122 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 " @@ -1499,7 +1577,7 @@ msgid "" "Obviously, the following function has the same problem as the previous one::" msgstr "" -#: extending/extending.rst:1100 +#: extending/extending.rst:1132 msgid "" "void\n" "bug(PyObject *list)\n" @@ -1512,11 +1590,11 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:1114 +#: extending/extending.rst:1146 msgid "NULL Pointers" msgstr "" -#: extending/extending.rst:1116 +#: extending/extending.rst:1148 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 " @@ -1528,21 +1606,21 @@ msgid "" "more slowly." msgstr "" -#: extending/extending.rst:1124 +#: extending/extending.rst:1156 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 "" -#: extending/extending.rst:1128 +#: extending/extending.rst:1160 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 "" -#: extending/extending.rst:1132 +#: extending/extending.rst:1164 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 " @@ -1551,24 +1629,24 @@ msgid "" "variants with ``NULL`` checking." msgstr "" -#: extending/extending.rst:1138 +#: extending/extending.rst:1170 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 "" -#: extending/extending.rst:1142 +#: extending/extending.rst:1174 msgid "" "It is a severe error to ever let a ``NULL`` pointer \"escape\" to the Python " "user." msgstr "" -#: extending/extending.rst:1153 +#: extending/extending.rst:1185 msgid "Writing Extensions in C++" msgstr "" -#: extending/extending.rst:1155 +#: extending/extending.rst:1187 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 " @@ -1581,11 +1659,11 @@ msgid "" "(all recent C++ compilers define this symbol)." msgstr "" -#: extending/extending.rst:1169 +#: extending/extending.rst:1201 msgid "Providing a C API for an Extension Module" msgstr "" -#: extending/extending.rst:1174 +#: extending/extending.rst:1206 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 " @@ -1596,7 +1674,7 @@ msgid "" "functions for direct manipulation from other extension modules." msgstr "" -#: extending/extending.rst:1182 +#: extending/extending.rst:1214 msgid "" "At first sight this seems easy: just write the functions (without declaring " "them ``static``, of course), provide an appropriate header file, and " @@ -1612,7 +1690,7 @@ msgid "" "call might not have been loaded yet!" msgstr "" -#: extending/extending.rst:1194 +#: extending/extending.rst:1226 msgid "" "Portability therefore requires not to make any assumptions about symbol " "visibility. This means that all symbols in extension modules should be " @@ -1622,7 +1700,7 @@ msgid "" "accessible from other extension modules must be exported in a different way." msgstr "" -#: extending/extending.rst:1201 +#: extending/extending.rst:1233 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 " @@ -1634,7 +1712,7 @@ msgid "" "the Capsule." msgstr "" -#: extending/extending.rst:1209 +#: extending/extending.rst:1241 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 " @@ -1644,7 +1722,7 @@ msgid "" "client modules." msgstr "" -#: extending/extending.rst:1215 +#: extending/extending.rst:1247 msgid "" "Whichever method you choose, it's important to name your Capsules properly. " "The function :c:func:`PyCapsule_New` takes a name parameter (:c:expr:`const " @@ -1654,17 +1732,17 @@ msgid "" "from another." msgstr "" -#: extending/extending.rst:1222 +#: extending/extending.rst:1254 msgid "" "In particular, Capsules used to expose C APIs should be given a name " "following this convention::" msgstr "" -#: extending/extending.rst:1225 +#: extending/extending.rst:1257 msgid "modulename.attributename" msgstr "" -#: extending/extending.rst:1227 +#: extending/extending.rst:1259 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 " @@ -1672,7 +1750,7 @@ msgid "" "the Capsule they load contains the correct C API." msgstr "" -#: extending/extending.rst:1232 +#: extending/extending.rst:1264 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 " @@ -1683,7 +1761,7 @@ msgid "" "modules only have to call this macro before accessing the C API." msgstr "" -#: extending/extending.rst:1240 +#: extending/extending.rst:1272 msgid "" "The exporting module is a modification of the :mod:`!spam` module from " "section :ref:`extending-simpleexample`. The function :func:`!spam.system` " @@ -1694,13 +1772,13 @@ msgid "" "modules." msgstr "" -#: extending/extending.rst:1247 +#: extending/extending.rst:1279 msgid "" "The function :c:func:`!PySpam_System` is a plain C function, declared " "``static`` like everything else::" msgstr "" -#: extending/extending.rst:1250 +#: extending/extending.rst:1282 msgid "" "static int\n" "PySpam_System(const char *command)\n" @@ -1709,11 +1787,11 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:1256 +#: extending/extending.rst:1288 msgid "The function :c:func:`!spam_system` is modified in a trivial way::" msgstr "" -#: extending/extending.rst:1258 +#: extending/extending.rst:1290 msgid "" "static PyObject *\n" "spam_system(PyObject *self, PyObject *args)\n" @@ -1728,25 +1806,25 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:1270 +#: extending/extending.rst:1302 msgid "In the beginning of the module, right after the line ::" msgstr "" -#: extending/extending.rst:1272 +#: extending/extending.rst:1304 msgid "#include " msgstr "" -#: extending/extending.rst:1274 +#: extending/extending.rst:1306 msgid "two more lines must be added::" msgstr "" -#: extending/extending.rst:1276 +#: extending/extending.rst:1308 msgid "" "#define SPAM_MODULE\n" "#include \"spammodule.h\"" msgstr "" -#: extending/extending.rst:1279 +#: extending/extending.rst:1311 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 :c:data:" @@ -1754,7 +1832,7 @@ msgid "" "pointer array::" msgstr "" -#: extending/extending.rst:1283 +#: extending/extending.rst:1315 msgid "" "static int\n" "spam_module_exec(PyObject *m)\n" @@ -1777,19 +1855,19 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:1302 +#: extending/extending.rst:1334 msgid "" "Note that ``PySpam_API`` is declared ``static``; otherwise the pointer array " "would disappear when :c:func:`!PyInit_spam` terminates!" msgstr "" -#: extending/extending.rst:1305 +#: extending/extending.rst:1337 msgid "" "The bulk of the work is in the header file :file:`spammodule.h`, which looks " "like this::" msgstr "" -#: extending/extending.rst:1308 +#: extending/extending.rst:1340 msgid "" "#ifndef Py_SPAMMODULE_H\n" "#define Py_SPAMMODULE_H\n" @@ -1841,14 +1919,14 @@ msgid "" "#endif /* !defined(Py_SPAMMODULE_H) */" msgstr "" -#: extending/extending.rst:1356 +#: extending/extending.rst:1388 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 :c:data:`mod_exec ` function::" msgstr "" -#: extending/extending.rst:1360 +#: extending/extending.rst:1392 msgid "" "static int\n" "client_module_exec(PyObject *m)\n" @@ -1861,14 +1939,14 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:1370 +#: extending/extending.rst:1402 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 "" -#: extending/extending.rst:1374 +#: extending/extending.rst:1406 msgid "" "Finally it should be mentioned that Capsules offer additional functionality, " "which is especially useful for memory allocation and deallocation of the " @@ -1878,47 +1956,47 @@ msgid "" "in the Python source code distribution)." msgstr "" -#: extending/extending.rst:1382 +#: extending/extending.rst:1414 msgid "Footnotes" msgstr "" -#: extending/extending.rst:1383 +#: extending/extending.rst:1415 msgid "" "An interface for this function already exists in the standard module :mod:" "`os` --- it was chosen as a simple and straightforward example." msgstr "" -#: extending/extending.rst:1386 +#: extending/extending.rst:1418 msgid "" "The metaphor of \"borrowing\" a reference is not completely correct: the " "owner still has a copy of the reference." msgstr "" -#: extending/extending.rst:1389 +#: extending/extending.rst:1421 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 "" -#: extending/extending.rst:1393 +#: extending/extending.rst:1425 msgid "" "These guarantees don't hold when you use the \"old\" style calling " "convention --- this is still found in much existing code." msgstr "" -#: extending/extending.rst:568 +#: extending/extending.rst:593 msgid "PyObject_CallObject (C function)" msgstr "" -#: extending/extending.rst:659 +#: extending/extending.rst:684 msgid "PyArg_ParseTuple (C function)" msgstr "" -#: extending/extending.rst:751 +#: extending/extending.rst:776 msgid "PyArg_ParseTupleAndKeywords (C function)" msgstr "" -#: extending/extending.rst:772 +#: extending/extending.rst:797 msgid "Philbrick, Geoff" msgstr "" diff --git a/extending/index.po b/extending/index.po index aadbba01..37b7ae4e 100644 --- a/extending/index.po +++ b/extending/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-21 21:30+0300\n" "Last-Translator: ALEXANDROS TZIORAS alextzioras23@gmail.com\n" "Language-Team: PyGreece \n" diff --git a/extending/newtypes.po b/extending/newtypes.po index 251298f6..b3861c5e 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/extending/newtypes_tutorial.po b/extending/newtypes_tutorial.po index 3ffff431..8d42be9a 100644 --- a/extending/newtypes_tutorial.po +++ b/extending/newtypes_tutorial.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -649,9 +649,9 @@ msgid "" "The explicit cast to ``CustomObject *`` above is needed because we defined " "``Custom_dealloc`` to take a ``PyObject *`` argument, as the ``tp_dealloc`` " "function pointer expects to receive a ``PyObject *`` argument. By assigning " -"to the the ``tp_dealloc`` slot of a type, we declare that it can only be " -"called with instances of our ``CustomObject`` class, so the cast to " -"``(CustomObject *)`` is safe. This is object-oriented polymorphism, in C!" +"to the ``tp_dealloc`` slot of a type, we declare that it can only be called " +"with instances of our ``CustomObject`` class, so the cast to ``(CustomObject " +"*)`` is safe. This is object-oriented polymorphism, in C!" msgstr "" #: extending/newtypes_tutorial.rst:285 diff --git a/extending/windows.po b/extending/windows.po index 57c7578c..5cffa6be 100644 --- a/extending/windows.po +++ b/extending/windows.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/faq/design.po b/faq/design.po index c89bacaf..c52176ad 100644 --- a/faq/design.po +++ b/faq/design.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -907,9 +907,9 @@ 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:`!list.append` method is expected to " +"of a program. For example, the :meth:`list.append` method is expected to " "add new elements to the end of some internal list; an interface " -"specification cannot test that your :meth:`!list.append` implementation will " +"specification cannot test that your :meth:`list.append` implementation will " "actually do this correctly, but it's trivial to check this property in a " "test suite." msgstr "" diff --git a/faq/extending.po b/faq/extending.po index 16d83a9f..589d0e9d 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-10-31 12:22+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" diff --git a/faq/general.po b/faq/general.po index 45a66ac1..fda7f52e 100644 --- a/faq/general.po +++ b/faq/general.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -299,7 +299,7 @@ msgstr "" #: faq/general.rst:188 msgid "" "The standard documentation for the current stable version of Python is " -"available at https://docs.python.org/3/. PDF, plain text, and downloadable " +"available at https://docs.python.org/3/. EPUB, plain text, and downloadable " "HTML versions are also available at https://docs.python.org/3/download.html." msgstr "" diff --git a/faq/gui.po b/faq/gui.po index bb03c81a..a403311e 100644 --- a/faq/gui.po +++ b/faq/gui.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/faq/index.po b/faq/index.po index dd5e3f07..4bcd9714 100644 --- a/faq/index.po +++ b/faq/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-05-02 12:51+0000\n" "Last-Translator: Dimitrios Papadopoulos\n" "Language-Team: PyGreece \n" diff --git a/faq/installed.po b/faq/installed.po index 223c7dc0..9c53b446 100644 --- a/faq/installed.po +++ b/faq/installed.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-05-06 12:51+0000\n" "Last-Translator: Dimitrios Papadopoulos\n" "Language-Team: PyGreece \n" diff --git a/faq/library.po b/faq/library.po index 83093081..0ebbc705 100644 --- a/faq/library.po +++ b/faq/library.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-11-04 21:13+0200\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: \n" @@ -555,6 +555,8 @@ msgid "" "The easiest way is to use the :mod:`concurrent.futures` module, especially " "the :mod:`~concurrent.futures.ThreadPoolExecutor` class." msgstr "" +"Ο πιο εύκολος τρόπος είναι να χρησιμοποιήσετε το module :mod:`concurrent.futures`, " +"ειδικά την κλάση :mod:`~concurrent.futures.ThreadPoolExecutor`." #: faq/library.rst:295 msgid "" @@ -944,7 +946,8 @@ msgstr "" #: faq/library.rst:477 msgid "To rename a file, use ``os.rename(old_path, new_path)``." -msgstr "" +msgstr "Για να μετονομάσετε ένα αρχείο, χρησιμοποιήστε το ``os.rename(old_path, " +"new_path)``." #: faq/library.rst:479 msgid "" diff --git a/faq/programming.po b/faq/programming.po index dc1748d7..db70ce37 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-05 22:13+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" @@ -977,11 +977,11 @@ msgstr "" #: faq/programming.rst:457 msgid "" -"After the call to :meth:`!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]``." +"After the call to :meth:`~sequence.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 "" -"Μετά την κλήση στο :meth:`!append`, το περιεχόμενο του μεταβλητού " +"Μετά την κλήση στο :meth:`~sequence.append`, το περιεχόμενο του μεταβλητού " "αντικειμένου έχει αλλάξει από ``[]`` σε ``[10]``. Επειδή και οι δύο " "μεταβλητές αναφέρονται στο ίδιο αντικείμενο, χρησιμοποιώντας οποιοδήποτε " "όνομα αποκτά πρόσβαση στην τροποποιημένη τιμή ``[10]``." @@ -3051,16 +3051,17 @@ msgid "" "an :meth:`~object.__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, :meth:`!__iadd__` is equivalent " -"to calling :meth:`!extend` on the list and returning the list. That's why " -"we say that for lists, ``+=`` is a \"shorthand\" for :meth:`!list.extend`::" +"to calling :meth:`~sequence.extend` on the list and returning the list. " +"That's why we say that for lists, ``+=`` is a \"shorthand\" for :meth:`list." +"extend`::" msgstr "" "Για να δείτε γιατί συμβαίνει αυτό, πρέπει να γνωρίζετε ότι (α) εάν ένα " "αντικείμενο υλοποιεί μια μαγική μέθοδο :meth:`~object.__iadd__`, που " "καλείται όταν εκτελείται η επαυξημένη ανάθεση ``+=`` και η τιμή επιστροφής " "είναι αυτή που χρησιμοποιείται στη δήλωση εκχώρησης∙ και (β) για λίστες, :" -"meth:`!__iadd__` ισοδυναμεί με την κλήση του :meth:`!extend` στη λίστα και " +"meth:`!__iadd__` ισοδυναμεί με την κλήση του :meth:`~sequence.extend` στη λίστα και " "επιστρέφει τη λίστα. Για αυτό λέμε ότι για λίστες ``+=`` είναι μια " -"\"συντομογραφία\" για :meth:`!list.extend`::" +"\"συντομογραφία\" για :meth:`list.extend`::" #: faq/programming.rst:1404 msgid "" diff --git a/faq/windows.po b/faq/windows.po index e3d889dd..fb88db7f 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-05-31 22:08+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" diff --git a/glossary.po b/glossary.po index 70fa3926..6b85043e 100644 --- a/glossary.po +++ b/glossary.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-05-10 22:47+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -55,15 +55,18 @@ msgstr "" "ένα ζεύγος ταιριασμένων αριστερών και δεξιών delimiters (παρενθέσεις, " "αγκύλες, άγκιστρα ή τριπλά εισαγωγικά), ή μετά τον καθορισμό ενός decorator." -#: glossary.rst:24 -msgid "The :const:`Ellipsis` built-in constant." -msgstr "Η ενσωματωμένη σταθερά :const:`Ellipsis`." +#: glossary.rst:26 +msgid "" +"The three dots form of the :ref:`Ellipsis ` object." +msgstr "" +"Η μορφή με τις τρεις τελείες του αντικειμένου :ref:`Ellipsis `." -#: glossary.rst:25 +#: glossary.rst:27 msgid "abstract base class" msgstr "αφηρημένη βασική κλάση" -#: glossary.rst:27 +#: glossary.rst:29 msgid "" "Abstract base classes complement :term:`duck-typing` by providing a way to " "define interfaces when other techniques like :func:`hasattr` would be clumsy " @@ -88,11 +91,11 @@ msgstr "" "μονάδα :mod:`io`), εισαγωγή finders και loaders (στο module :mod:`importlib." "abc`). Μπορείτε να δημιουργήσετε τα δικά σας ABC με το module :mod:`abc`." -#: glossary.rst:38 +#: glossary.rst:40 msgid "annotate function" msgstr "συνάρτηση annotate" -#: glossary.rst:40 +#: glossary.rst:42 msgid "" "A function that can be called to retrieve the :term:`annotations " "` of an object. This function is accessible as the :attr:" @@ -106,11 +109,11 @@ msgstr "" "των modules. Οι συναρτήσεις annotate είναι ένα υποσύνολο του :term:`evaluate " "functions `." -#: glossary.rst:44 +#: glossary.rst:46 msgid "annotation" msgstr "annotation" -#: glossary.rst:46 +#: glossary.rst:48 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`." @@ -119,7 +122,7 @@ msgstr "" "παράμετρος συνάρτησης ή τιμή που επιστρέφεται, που χρησιμοποιείται κατά " "σύμβαση ως :term:`type hint`." -#: glossary.rst:50 +#: glossary.rst:52 msgid "" "Annotations of local variables cannot be accessed at runtime, but " "annotations of global variables, class attributes, and functions can be " @@ -132,7 +135,7 @@ msgstr "" "την εντολή :func:`annotationlib.get_annotations` σε modules, κλάσεις και " "συναρτήσεις, αντίστοιχα." -#: glossary.rst:55 +#: glossary.rst:57 msgid "" "See :term:`variable annotation`, :term:`function annotation`, :pep:`484`, :" "pep:`526`, and :pep:`649`, which describe this functionality. Also see :ref:" @@ -143,11 +146,11 @@ msgstr "" "Δείτε επίσης τα :ref:`annotations-howto` για τις βέλτιστες πρακτικές " "δουλεύοντας με annotations." -#: glossary.rst:59 +#: glossary.rst:61 msgid "argument" msgstr "όρισμα" -#: glossary.rst:61 +#: glossary.rst:63 msgid "" "A value passed to a :term:`function` (or :term:`method`) when calling the " "function. There are two kinds of argument:" @@ -155,7 +158,7 @@ msgstr "" "Μια τιμή μεταβιβάζεται σε μία :term:`function` (ή :term:`method`) κατά την " "κλήση της συνάρτησης. Υπάρχουν δύο είδη ορισμάτων:" -#: glossary.rst:64 +#: glossary.rst:66 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 " @@ -167,7 +170,7 @@ msgstr "" "από ``**``. Για παράδειγμα, το ``3`` και το ``5`` αποτελούν ορίσματα λέξεων-" "κλειδιών στις ακόλουθες κλήσεις προς :func:`complex`::" -#: glossary.rst:69 +#: glossary.rst:71 msgid "" "complex(real=3, imag=5)\n" "complex(**{'real': 3, 'imag': 5})" @@ -175,7 +178,7 @@ msgstr "" "complex(real=3, imag=5)\n" "complex(**{'real': 3, 'imag': 5})" -#: glossary.rst:72 +#: glossary.rst:74 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 " @@ -188,7 +191,7 @@ msgstr "" "παράδειγμα, το ``3`` και το ``5`` αποτελούν ορίσματα θέσης στις παρακάτω " "κλήσεις::" -#: glossary.rst:78 +#: glossary.rst:80 msgid "" "complex(3, 5)\n" "complex(*(3, 5))" @@ -196,7 +199,7 @@ msgstr "" "complex(3, 5)\n" "complex(*(3, 5))" -#: glossary.rst:81 +#: glossary.rst:83 msgid "" "Arguments are assigned to the named local variables in a function body. See " "the :ref:`calls` section for the rules governing this assignment. " @@ -209,7 +212,7 @@ msgstr "" "να αναπαραστήσει ένα όρισμα' η αξιολογούμενη τιμή εκχωρείται σε μια τοπική " "μεταβλητή." -#: glossary.rst:86 +#: glossary.rst:88 msgid "" "See also the :term:`parameter` glossary entry, the FAQ question on :ref:`the " "difference between arguments and parameters `, " @@ -219,11 +222,11 @@ msgstr "" "ερώτηση στο :ref:`η διαφορά μεταξύ ορισμάτων και παραμέτρων `, και :pep:`362`." -#: glossary.rst:89 +#: glossary.rst:91 msgid "asynchronous context manager" msgstr "ασύγχρονος διαχειριστής context" -#: glossary.rst:91 +#: glossary.rst:93 msgid "" "An object which controls the environment seen in an :keyword:`async with` " "statement by defining :meth:`~object.__aenter__` and :meth:`~object." @@ -233,11 +236,11 @@ msgstr "" "`async with` ορίζοντας τις μεθόδους :meth:`~object.__aenter__` και :meth:" "`~object.__aexit__`. Που εισήχθη από :pep:`492`." -#: glossary.rst:94 +#: glossary.rst:96 msgid "asynchronous generator" msgstr "ασύγχρονος generator" -#: glossary.rst:96 +#: glossary.rst:98 msgid "" "A function which returns an :term:`asynchronous generator iterator`. It " "looks like a coroutine function defined with :keyword:`async def` except " @@ -250,7 +253,7 @@ msgstr "" "σειράς τιμών που μπορούν να χρησιμοποιηθούν σε έναν :keyword:`async for` " "βρόχο." -#: glossary.rst:101 +#: glossary.rst:103 msgid "" "Usually refers to an asynchronous generator function, but may refer to an " "*asynchronous generator iterator* in some contexts. In cases where the " @@ -261,7 +264,7 @@ msgstr "" "περιπτώσεις όπου το επιδιωκόμενο νόημα δεν είναι σαφές, με την χρήση των " "πλήρων όρων αποφεύγεται η ασάφεια." -#: glossary.rst:105 +#: glossary.rst:107 msgid "" "An asynchronous generator function may contain :keyword:`await` expressions " "as well as :keyword:`async for`, and :keyword:`async with` statements." @@ -269,17 +272,17 @@ msgstr "" "Μια συνάρτηση ασύγχρονου generator μπορεί να περιέχει εκφράσεις :keyword:" "`await` , καθώς και δηλώσεις :keyword:`async for`, και :keyword:`async with`." -#: glossary.rst:108 +#: glossary.rst:110 msgid "asynchronous generator iterator" msgstr "ασύγχρονος generator iterator" -#: glossary.rst:110 -msgid "An object created by a :term:`asynchronous generator` function." +#: glossary.rst:112 +msgid "An object created by an :term:`asynchronous generator` function." msgstr "" "Ένα αντικείμενο που δημιουργήθηκε από μια συνάρτηση :term:`asynchronous " "generator`." -#: glossary.rst:112 +#: glossary.rst:114 msgid "" "This is an :term:`asynchronous iterator` which when called using the :meth:" "`~object.__anext__` method returns an awaitable object which will execute " @@ -291,7 +294,7 @@ msgstr "" "αναμενόμενο αντικείμενο που θα εκτελέσει στο σώμα της συνάρτησης του " "ασύγχρονου generator μέχρι την επόμενη :keyword:`yield` έκφραση." -#: glossary.rst:117 +#: glossary.rst:119 msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " "execution state (including local variables and pending try-statements). " @@ -306,11 +309,11 @@ msgstr "" "`~object.__anext__ `, συνεχίζει από εκεί που σταμάτησε. Βλ. :pep:`492` και :" "pep:`525`." -#: glossary.rst:122 +#: glossary.rst:124 msgid "asynchronous iterable" msgstr "ασύγχρονος iterable" -#: glossary.rst:124 +#: glossary.rst:126 msgid "" "An object, that can be used in an :keyword:`async for` statement. Must " "return an :term:`asynchronous iterator` from its :meth:`~object.__aiter__` " @@ -320,11 +323,11 @@ msgstr "" "for`. Πρέπει να επιστρέφει ένα :term:`asynchronous iterator` από την μέθοδο :" "meth:`~object.__aiter__`. Που εισήχθη από :pep:`492`." -#: glossary.rst:127 +#: glossary.rst:129 msgid "asynchronous iterator" msgstr "ασύγχρονος iterator" -#: glossary.rst:129 +#: glossary.rst:131 msgid "" "An object that implements the :meth:`~object.__aiter__` and :meth:`~object." "__anext__` methods. :meth:`~object.__anext__` must return an :term:" @@ -339,17 +342,17 @@ msgstr "" "__anext__` ενός ασύγχρονου iterator έως ότου εγείρει μια εξαίρεση :exc:" "`StopAsyncIteration`. Εισήχθη από :pep:`492`." -#: glossary.rst:134 +#: glossary.rst:136 msgid "attached thread state" msgstr "κατάσταση συνδεδεμένου νήματος" -#: glossary.rst:137 +#: glossary.rst:139 msgid "A :term:`thread state` that is active for the current OS thread." msgstr "" "Ένα :term:`thread state` που είναι ενεργή για το τρέχον νήμα του " "λειτουργικού συστήματος." -#: glossary.rst:139 +#: glossary.rst:141 msgid "" "When a :term:`thread state` is attached, the OS thread has access to the " "full Python C API and can safely invoke the bytecode interpreter." @@ -358,7 +361,7 @@ msgstr "" "συστήματος έχει πρόσβαση στο πλήρες Python C API και μπορεί να καλέσει με " "ασφάλεια τον διερμηνέα bytecode." -#: glossary.rst:143 +#: glossary.rst:145 msgid "" "Unless a function explicitly notes otherwise, attempting to call the C API " "without an attached thread state will result in a fatal error or undefined " @@ -373,7 +376,7 @@ msgstr "" "εκτέλεσης, συμπεριλαμβανομένων των κλήσεων αποκλεισμού C και από τον " "διερμηνέα bytecode μεταξύ των κλήσεων." -#: glossary.rst:150 +#: glossary.rst:152 msgid "" "On most builds of Python, having an attached thread state implies that the " "caller holds the :term:`GIL` for the current interpreter, so only one OS " @@ -390,11 +393,11 @@ msgstr "" "ταυτόχρονα μια κατάσταση συνδεδεμένου νήματος, επιτρέποντας την πραγματική " "παραλληλία του διερμηνέα bytecode." -#: glossary.rst:156 +#: glossary.rst:158 msgid "attribute" msgstr "χαρακτηριστικό" -#: glossary.rst:158 +#: glossary.rst:160 msgid "" "A value associated with an object which is usually referenced by name using " "dotted expressions. For example, if an object *o* has an attribute *a* it " @@ -404,7 +407,7 @@ msgstr "" "χρησιμοποιώντας εκφράσεις με κουκκίδες. Για παράδειγμα, εάν ένα αντικείμενο " "*o* έχει ένα χαρακτηριστικό *a* θα αναφέρεται ως *o.a*." -#: glossary.rst:163 +#: glossary.rst:165 msgid "" "It is possible to give an object an attribute whose name is not an " "identifier as defined by :ref:`identifiers`, for example using :func:" @@ -419,11 +422,11 @@ msgstr "" "χρησιμοποιώντας τις τελείες, και αντί αυτού θα πρέπει να ανακτηθεί " "χρησιμοποιώντας :func:`getattr`." -#: glossary.rst:168 +#: glossary.rst:170 msgid "awaitable" msgstr "awaitable" -#: glossary.rst:170 +#: glossary.rst:172 msgid "" "An object that can be used in an :keyword:`await` expression. Can be a :" "term:`coroutine` or an object with an :meth:`~object.__await__` method. See " @@ -433,11 +436,11 @@ msgstr "" "Μπορεί να είναι :term:`coroutine` ή ένα αντικείμενο με μια :meth:`~object." "__await__` μέθοδο. Βλ. επίσης :pep:`492`." -#: glossary.rst:173 +#: glossary.rst:175 msgid "BDFL" msgstr "BDFL" -#: glossary.rst:175 +#: glossary.rst:177 msgid "" "Benevolent Dictator For Life, a.k.a. `Guido van Rossum `_, Python's creator." @@ -446,11 +449,11 @@ msgstr "" "ζωής, δηλαδή `Guido van Rossum `_, ο " "δημιουργός της Python." -#: glossary.rst:177 +#: glossary.rst:179 msgid "binary file" msgstr "δυαδικό αρχείο" -#: glossary.rst:179 +#: glossary.rst:181 msgid "" "A :term:`file object` able to read and write :term:`bytes-like objects " "`. Examples of binary files are files opened in binary " @@ -464,7 +467,7 @@ msgstr "" "data:`sys.stdin.buffer `, :data:`sys.stdout.buffer `, " "και στιγμιοτύπων των :class:`io.BytesIO` και :class:`gzip.GzipFile`." -#: glossary.rst:186 +#: glossary.rst:188 msgid "" "See also :term:`text file` for a file object able to read and write :class:" "`str` objects." @@ -472,11 +475,11 @@ msgstr "" "Βλ. επίσης :term:`text file` για ένα αντικείμενο τύπου αρχείο ικανό να " "διαβάσει και να γράψει :class:`str` αντικείμενα." -#: glossary.rst:188 +#: glossary.rst:190 msgid "borrowed reference" msgstr "δανεική αναφορά" -#: glossary.rst:190 +#: glossary.rst:192 msgid "" "In Python's C API, a borrowed reference is a reference to an object, where " "the code using the object does not own the reference. It becomes a dangling " @@ -490,7 +493,7 @@ msgstr "" "αφαιρέσει το τελευταίο :term:`strong reference` από το αντικείμενο και έτσι " "να το καταστρέψει." -#: glossary.rst:196 +#: glossary.rst:198 msgid "" "Calling :c:func:`Py_INCREF` on the :term:`borrowed reference` is recommended " "to convert it to a :term:`strong reference` in-place, except when the object " @@ -505,11 +508,11 @@ msgstr "" "c:func:`Py_NewRef` μπορεί να χρησιμοποιηθεί ώστε να δημιουργηθεί ένα :term:" "`ισχυρή αναφορά `." -#: glossary.rst:201 +#: glossary.rst:203 msgid "bytes-like object" msgstr "bytes-like αντικείμενα" -#: glossary.rst:203 +#: glossary.rst:205 msgid "" "An object that supports the :ref:`bufferobjects` and can export a C-:term:" "`contiguous` buffer. This includes all :class:`bytes`, :class:`bytearray`, " @@ -526,7 +529,7 @@ msgstr "" "διαχειρίζονται δυαδικά δεδομένα' αυτά περιλαμβάνουν συμπίεση αποθήκευση σε " "δυαδικό αρχείο και αποστολή μέσω socket." -#: glossary.rst:210 +#: glossary.rst:212 msgid "" "Some operations need the binary data to be mutable. The documentation often " "refers to these as \"read-write bytes-like objects\". Example mutable " @@ -545,11 +548,11 @@ msgstr "" "αυτών περιέχουν :class:`bytes` και ένα :class:`memoryview` ενός :class:" "`bytes` αντικειμένου." -#: glossary.rst:218 +#: glossary.rst:220 msgid "bytecode" msgstr "bytecode" -#: glossary.rst:220 +#: glossary.rst:222 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 " @@ -571,7 +574,7 @@ msgstr "" "εικονικών μηχανών Python, ούτε να είναι σταθερά μεταξύ των εκδόσεων της " "Python." -#: glossary.rst:230 +#: glossary.rst:232 msgid "" "A list of bytecode instructions can be found in the documentation for :ref:" "`the dis module `." @@ -579,11 +582,11 @@ msgstr "" "Μια λίστα από οδηγίες σχετικά με τα bytecode μπορεί να βρεθεί στην " "τεκμηρίωση για :ref:`το module dis `." -#: glossary.rst:232 +#: glossary.rst:234 msgid "callable" msgstr "callable" -#: glossary.rst:234 +#: glossary.rst:236 msgid "" "A callable is an object that can be called, possibly with a set of arguments " "(see :term:`argument`), with the following syntax::" @@ -591,11 +594,11 @@ msgstr "" "Ένα callable είναι ένα αντικείμενο που μπορεί να καλεστεί, πιθανά με ένα " "σύνολο ορισμάτων (βλ. :term:`argument`), με την παρακάτω σύνταξη::" -#: glossary.rst:237 +#: glossary.rst:239 msgid "callable(argument1, argument2, argumentN)" msgstr "callable(argument1, argument2, argumentN)" -#: glossary.rst:239 +#: glossary.rst:241 msgid "" "A :term:`function`, and by extension a :term:`method`, is a callable. An " "instance of a class that implements the :meth:`~object.__call__` method is " @@ -605,11 +608,11 @@ msgstr "" "Ένα στιγμιότυπο μια κλάσης που υλοποιεί τη μέθοδο :meth:`~object.__call__` " "είναι επίσης callable." -#: glossary.rst:242 +#: glossary.rst:244 msgid "callback" msgstr "callback" -#: glossary.rst:244 +#: glossary.rst:246 msgid "" "A subroutine function which is passed as an argument to be executed at some " "point in the future." @@ -617,11 +620,11 @@ msgstr "" "Μια subroutine συνάρτηση η οποία μεταβιβάζεται ως όρισμα που θα εκτελεστεί " "κάποια στιγμή στο μέλλον." -#: glossary.rst:246 +#: glossary.rst:248 msgid "class" msgstr "κλάση" -#: glossary.rst:248 +#: glossary.rst:250 msgid "" "A template for creating user-defined objects. Class definitions normally " "contain method definitions which operate on instances of the class." @@ -630,11 +633,11 @@ msgstr "" "ορισμοί κλάσεων συνήθως περιέχουν ορισμούς μεθόδων που λειτουργούν σε " "στιγμιότυπα της κλάσης." -#: glossary.rst:251 +#: glossary.rst:253 msgid "class variable" msgstr "μεταβλητή κλάσης" -#: glossary.rst:253 +#: glossary.rst:255 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)." @@ -642,11 +645,11 @@ msgstr "" "Μια μεταβλητή που ορίζεται σε μια κλάση και προορίζεται να τροποποιηθεί μόνο " "σε επίπεδο κλάσης (δηλ. όχι σε ένα στιγμιότυπο μιας κλάσης)." -#: glossary.rst:255 +#: glossary.rst:257 msgid "closure variable" msgstr "μεταβλητή κλεισίματος" -#: glossary.rst:257 +#: glossary.rst:259 msgid "" "A :term:`free variable` referenced from a :term:`nested scope` that is " "defined in an outer scope rather than being resolved at runtime from the " @@ -661,7 +664,7 @@ msgstr "" "εγγραφή, ή να θεωρηθεί ότι ορίζεται έμμεσα όταν η μεταβλητή χρησιμοποιείται " "μόνο για ανάγνωση." -#: glossary.rst:262 +#: glossary.rst:264 msgid "" "For example, in the ``inner`` function in the following code, both ``x`` and " "``print`` are :term:`free variables `, but only ``x`` is a " @@ -671,7 +674,7 @@ msgstr "" "και η ``print`` είναι :term:`free variables `, αλλά μόνο η " "``x`` είναι μια *μεταβλητή κλεισίματος*::" -#: glossary.rst:265 +#: glossary.rst:267 msgid "" "def outer():\n" " x = 0\n" @@ -689,7 +692,7 @@ msgstr "" " print(x)\n" " return inner" -#: glossary.rst:273 +#: glossary.rst:275 msgid "" "Due to the :attr:`codeobject.co_freevars` attribute (which, despite its " "name, only includes the names of closure variables rather than listing all " @@ -703,11 +706,11 @@ msgstr "" "φορές ο πιο γενικός όρος :term:`free variable` ακόμη και όταν γίνεται ειδική " "αναφορά σε μεταβλητές κλεισίματος." -#: glossary.rst:277 +#: glossary.rst:279 msgid "complex number" msgstr "μιγαδικός αριθμός" -#: glossary.rst:279 +#: glossary.rst:281 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 " @@ -731,11 +734,11 @@ msgstr "" "προηγμένο μαθηματικό χαρακτηριστικό. εάν δεν γνωρίζετε την ανάγκη τους, " "είναι σχεδόν σίγουρο ότι μπορείτε να τα αγνοήσετε με ασφάλεια." -#: glossary.rst:289 +#: glossary.rst:291 msgid "context" msgstr "context" -#: glossary.rst:291 +#: glossary.rst:293 msgid "" "This term has different meanings depending on where and how it is used. Some " "common meanings:" @@ -743,7 +746,7 @@ msgstr "" "Αυτό ο όρος έχει διαφορετικές σημασίες ανάλογα με το πού και πώς " "χρησιμοποιείται. Μερικές κοινές έννοιες:" -#: glossary.rst:294 +#: glossary.rst:296 msgid "" "The temporary state or environment established by a :term:`context manager` " "via a :keyword:`with` statement." @@ -751,7 +754,7 @@ msgstr "" "Η προσωρινή κατάσταση ή το περιβάλλον που δημιουργείται από έναν :term:" "`context manager` μέσω μιας δήλωσης :keyword:`with`." -#: glossary.rst:296 +#: glossary.rst:298 msgid "" "The collection of key­value bindings associated with a particular :class:" "`contextvars.Context` object and accessed via :class:`~contextvars." @@ -762,18 +765,18 @@ msgstr "" "αντικειμένων :class:`~contextvars.ContextVar`. Βλ. επίσης :term:`context " "variable`." -#: glossary.rst:300 +#: glossary.rst:302 msgid "" "A :class:`contextvars.Context` object. Also see :term:`current context`." msgstr "" "Ένα αντικείμενο :class:`contextvars.Context`. Βλ. επίσης :term:`current " "context`." -#: glossary.rst:302 +#: glossary.rst:304 msgid "context management protocol" msgstr "πρωτόκολλο διαχείρισης περιβάλλοντος" -#: glossary.rst:304 +#: glossary.rst:306 msgid "" "The :meth:`~object.__enter__` and :meth:`~object.__exit__` methods called by " "the :keyword:`with` statement. See :pep:`343`." @@ -781,11 +784,11 @@ msgstr "" "Οι μέθοδοι :meth:`~object.__enter__` και :meth:`~object.__exit__` καλούνται " "από τη δήλωση :keyword:`with`. Βλ. :pep:`343`." -#: glossary.rst:306 +#: glossary.rst:308 msgid "context manager" msgstr "διαχειριστής context" -#: glossary.rst:308 +#: glossary.rst:310 msgid "" "An object which implements the :term:`context management protocol` and " "controls the environment seen in a :keyword:`with` statement. See :pep:" @@ -795,11 +798,11 @@ msgstr "" "ελέγχει το περιβάλλον που είσαι ορατό μέσα σε μια δήλωση :keyword:`with`. " "Βλ. :pep:`343`." -#: glossary.rst:311 +#: glossary.rst:313 msgid "context variable" msgstr "context μεταβλητή" -#: glossary.rst:313 +#: glossary.rst:315 msgid "" "A variable whose value depends on which context is the :term:`current " "context`. Values are accessed via :class:`contextvars.ContextVar` objects. " @@ -812,11 +815,11 @@ msgstr "" "κυρίως για να απομονώσουν την κατάσταση μεταξύ ταυτόχρονων ασύγχρονων " "εργασιών." -#: glossary.rst:317 +#: glossary.rst:319 msgid "contiguous" msgstr "contiguous" -#: glossary.rst:321 +#: glossary.rst:323 msgid "" "A buffer is considered contiguous exactly if it is either *C-contiguous* or " "*Fortran contiguous*. Zero-dimensional buffers are C and Fortran " @@ -835,11 +838,11 @@ msgstr "" "μνήμης. Ωστόσο, σε Fortran contiguous πίνακες, ο πρώτος δείκτης μεταβάλλεται " "πιο γρήγορα." -#: glossary.rst:329 +#: glossary.rst:331 msgid "coroutine" msgstr "coroutine" -#: glossary.rst:331 +#: glossary.rst:333 msgid "" "Coroutines are a more generalized form of subroutines. Subroutines are " "entered at one point and exited at another point. Coroutines can be " @@ -852,11 +855,11 @@ msgstr "" "Μπορούν να υλοποιήσουν με την δήλωση :keyword:`async def`. Βλ. επίσης :pep:" "`492`." -#: glossary.rst:336 +#: glossary.rst:338 msgid "coroutine function" msgstr "coroutine συνάρτηση" -#: glossary.rst:338 +#: glossary.rst:340 msgid "" "A function which returns a :term:`coroutine` object. A coroutine function " "may be defined with the :keyword:`async def` statement, and may contain :" @@ -868,11 +871,11 @@ msgstr "" "και μπορεί να περιέχει :keyword:`await`, :keyword:`async for`, και :keyword:" "`async with` λέξεις κλειδιά. Αυτές εισήχθησαν από το :pep:`492`." -#: glossary.rst:343 +#: glossary.rst:345 msgid "CPython" msgstr "CPython" -#: glossary.rst:345 +#: glossary.rst:347 msgid "" "The canonical implementation of the Python programming language, as " "distributed on `python.org `_. The term \"CPython\" " @@ -884,11 +887,11 @@ msgstr "" "όταν είναι απαραίτητο για την διάκριση αυτής της υλοποίησης από άλλες όπως η " "*Jython* ή η *IronPython*." -#: glossary.rst:349 +#: glossary.rst:351 msgid "current context" msgstr "τρέχον πλαίσιο" -#: glossary.rst:351 +#: glossary.rst:353 msgid "" "The :term:`context` (:class:`contextvars.Context` object) that is currently " "used by :class:`~contextvars.ContextVar` objects to access (get or set) the " @@ -905,11 +908,11 @@ msgstr "" "`asyncio`) συνδέουν κάθε εργασία με ένα συμφραζόμενο, το οποίο γίνεται το " "τρέχον συμφραζόμενο όποτε η εργασία ξεκινά ή συνεχίζει την εκτέλεση." -#: glossary.rst:357 +#: glossary.rst:359 msgid "cyclic isolate" msgstr "κυκλική απομόνωση" -#: glossary.rst:359 +#: glossary.rst:361 msgid "" "A subgroup of one or more objects that reference each other in a reference " "cycle, but are not referenced by objects outside the group. The goal of " @@ -923,11 +926,11 @@ msgstr "" "` είναι να εντοπίζει αυτές τις ομάδες και να σπάει του " "κύκλος αναφορών ώστε να μπορεί να αποδεσμευτεί η μνήμη." -#: glossary.rst:363 +#: glossary.rst:365 msgid "decorator" msgstr "decorator" -#: glossary.rst:365 +#: glossary.rst:367 msgid "" "A function returning another function, usually applied as a function " "transformation using the ``@wrapper`` syntax. Common examples for " @@ -938,7 +941,7 @@ msgstr "" "Συνηθισμένα παραδείγματα για τους decorators είναι :func:`classmethod` και :" "func:`staticmethod`." -#: glossary.rst:369 +#: glossary.rst:371 msgid "" "The decorator syntax is merely syntactic sugar, the following two function " "definitions are semantically equivalent::" @@ -946,7 +949,7 @@ msgstr "" "Η σύνταξη του decorator είναι απλώς καλλωπιστική, οι ακόλουθοι δύο ορισμοί " "συναρτήσεων είναι σημασιολογικά ισοδύναμοι::" -#: glossary.rst:372 +#: glossary.rst:374 msgid "" "def f(arg):\n" " ...\n" @@ -964,7 +967,7 @@ msgstr "" "def f(arg):\n" " ..." -#: glossary.rst:380 +#: glossary.rst:382 msgid "" "The same concept exists for classes, but is less commonly used there. See " "the documentation for :ref:`function definitions ` and :ref:`class " @@ -974,11 +977,11 @@ msgstr "" "εκεί. Βλ. την τεκμηρίωση για :ref:`function definitions ` και :ref:" "`class definitions ` για περισσότερα σχετικά με τους decorators." -#: glossary.rst:383 +#: glossary.rst:385 msgid "descriptor" msgstr "descriptor" -#: glossary.rst:385 +#: glossary.rst:387 msgid "" "Any object which defines the methods :meth:`~object.__get__`, :meth:`~object." "__set__`, or :meth:`~object.__delete__`. When a class attribute is a " @@ -1001,7 +1004,7 @@ msgstr "" "αποτελεί την βάση για πολλά χαρακτηριστικά όπως συναρτήσεις, μεθόδους, " "ιδιότητες, μέθοδοι κλάσης στατικές μέθοδοι, και αναφορά σε σούπερ κλάσεις." -#: glossary.rst:396 +#: glossary.rst:398 msgid "" "For more information about descriptors' methods, see :ref:`descriptors` or " "the :ref:`Descriptor How To Guide `." @@ -1010,11 +1013,11 @@ msgstr "" "see :ref:`descriptors` ή το :ref:`Πρακτικός οδηγός για τη χρήση του " "Descriptor `." -#: glossary.rst:398 +#: glossary.rst:400 msgid "dictionary" msgstr "λεξικό" -#: glossary.rst:400 +#: glossary.rst:402 msgid "" "An associative array, where arbitrary keys are mapped to values. The keys " "can be any object with :meth:`~object.__hash__` and :meth:`~object.__eq__` " @@ -1024,11 +1027,11 @@ msgstr "" "τιμές. Τα κλειδιά μπορεί να είναι οποιοδήποτε αντικείμενο με μεθόδους :meth:" "`~object.__hash__` και :meth:`~object.__eq__`. Ονομάζεται ως hash στο Perl." -#: glossary.rst:404 +#: glossary.rst:406 msgid "dictionary comprehension" msgstr "κατανόηση λεξικού" -#: glossary.rst:406 +#: glossary.rst:408 msgid "" "A compact way to process all or part of the elements in an iterable and " "return a dictionary with the results. ``results = {n: n ** 2 for n in " @@ -1041,11 +1044,11 @@ msgstr "" "κλειδί ``n`` που αντιστοιχίζεται με την τιμή ``n ** 2``. Βλ. :ref:" "`comprehensions`." -#: glossary.rst:410 +#: glossary.rst:412 msgid "dictionary view" msgstr "όψη λεξικού" -#: glossary.rst:412 +#: glossary.rst:414 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 " @@ -1060,11 +1063,11 @@ msgstr "" "όψη λεξικού να γίνει μια πλήρης λίστα χρησιμοποιήστε το ``list(dictview)``. " "Βλ. :ref:`dict-views`." -#: glossary.rst:418 +#: glossary.rst:420 msgid "docstring" msgstr "docstring" -#: glossary.rst:420 +#: glossary.rst:422 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 " @@ -1079,11 +1082,11 @@ msgstr "" "περικλείει. Δεδομένου ότι είναι διαθέσιμο μέσω ενδοσκόπησης, το κανονικό " "μέρος για την τεκμηρίωση του αντικειμένου." -#: glossary.rst:426 +#: glossary.rst:428 msgid "duck-typing" msgstr "duck-typing" -#: glossary.rst:428 +#: glossary.rst:430 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 " @@ -1106,11 +1109,25 @@ msgstr "" "με :term:`abstract base classes `.) Αντί αυτού, συνήθως " "χρησιμοποιεί δοκιμές :func:`hasattr` ή προγραμματισμό :term:`EAFP`." -#: glossary.rst:437 +#: glossary.rst:439 +msgid "dunder" +msgstr "dunder" + +#: glossary.rst:441 +msgid "" +"An informal short-hand for \"double underscore\", used when talking about a :" +"term:`special method`. For example, ``__init__`` is often pronounced " +"\"dunder init\"." +msgstr "" +"Ένας ανεπίσημος συντομογραφικός όρος για το \"double underscore\", που " +"χρησιμοποιείται όταν μιλάμε για μια :term:`special method`. Για παράδειγμα, " +"``__init__`` προφέρεται συχνά ως \"dunder init\"." + +#: glossary.rst:444 msgid "EAFP" msgstr "EAFP" -#: glossary.rst:439 +#: glossary.rst:446 msgid "" "Easier to ask for forgiveness than permission. This common Python coding " "style assumes the existence of valid keys or attributes and catches " @@ -1127,11 +1144,11 @@ msgstr "" "αντίθεση με το στυλ που είναι :term:`LBYL` κοινό σε πολλές άλλες γλώσσες, " "όπως η C." -#: glossary.rst:445 +#: glossary.rst:452 msgid "evaluate function" msgstr "αξιολόγηση συνάρτησης" -#: glossary.rst:447 +#: glossary.rst:454 msgid "" "A function that can be called to evaluate a lazily evaluated attribute of an " "object, such as the value of type aliases created with the :keyword:`type` " @@ -1141,11 +1158,11 @@ msgstr "" "χαρακτηριστικό ενός αντικειμένου, όπως η τιμή των ψευδωνύμων τύπου που " "δημιουργούνται με την πρόταση :keyword:`type`." -#: glossary.rst:450 +#: glossary.rst:457 msgid "expression" msgstr "έκφραση" -#: glossary.rst:452 +#: glossary.rst:459 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, " @@ -1163,11 +1180,11 @@ msgstr "" "μπορούν να χρησιμοποιηθούν ως εκφράσεις, όπως το :keyword:`while`. Οι " "αναθέσεις τιμών είναι επίσης δηλώσεις όχι εκφράσεις." -#: glossary.rst:459 +#: glossary.rst:466 msgid "extension module" msgstr "module επέκτασης" -#: glossary.rst:461 +#: glossary.rst:468 msgid "" "A module written in C or C++, using Python's C API to interact with the core " "and with user code." @@ -1175,25 +1192,29 @@ msgstr "" "Ένα module γραμμένο σε C ή C++, που χρησιμοποιείται από το C API της Python " "για να αλληλεπιδράσουν με τον πυρήνα και με τον κώδικα του χρήστη." -#: glossary.rst:463 +#: glossary.rst:470 msgid "f-string" msgstr "f-string" -#: glossary.rst:465 +#: glossary.rst:471 +msgid "f-strings" +msgstr "f-strings" + +#: glossary.rst:473 msgid "" -"String literals prefixed with ``'f'`` or ``'F'`` are commonly called \"f-" +"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 "" -"Οι κυριολεκτικές συμβολοσειρές χρησιμοποιούν με πρόθεμα ``'f'`` ή ``'F'`` " +"Οι κυριολεκτικές συμβολοσειρές χρησιμοποιούνται με πρόθεμα ``'f'`` ή ``'F'`` " "ονομάζονται συνήθως \"f-strings\" που είναι συντομογραφία του :ref:" "`formatted string literals `. Βλ. επίσης :pep:`498`." -#: glossary.rst:468 +#: glossary.rst:476 msgid "file object" msgstr "αντικείμενο αρχείου" -#: glossary.rst:470 +#: glossary.rst:478 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 " @@ -1210,7 +1231,7 @@ msgstr "" "buffers, sockets, pipes, κλπ.). Αντικείμενο αρχείου ονομάζονται επίσης :dfn:" "`file-like objects` ή :dfn:`streams`." -#: glossary.rst:478 +#: glossary.rst:486 msgid "" "There are actually three categories of file objects: raw :term:`binary files " "`, buffered :term:`binary files ` and :term:`text " @@ -1224,19 +1245,19 @@ msgstr "" "στην ενότητα :mod:`io`. Ο κανονικός τρόπος για να δημιουργήσετε ένα " "αντικείμενο αρχείου είναι χρησιμοποιώντας την συνάρτηση :func:`open`." -#: glossary.rst:483 +#: glossary.rst:491 msgid "file-like object" msgstr "αντικείμενο που μοιάζει με αρχείο" -#: glossary.rst:485 +#: glossary.rst:493 msgid "A synonym for :term:`file object`." msgstr "Ένα συνώνυμο με το :term:`file object`." -#: glossary.rst:486 +#: glossary.rst:494 msgid "filesystem encoding and error handler" msgstr "κωδικοποίηση συστήματος αρχείων και χειριστής σφαλμάτων" -#: glossary.rst:488 +#: glossary.rst:496 msgid "" "Encoding and error handler used by Python to decode bytes from the operating " "system and encode Unicode to the operating system." @@ -1245,7 +1266,7 @@ msgstr "" "την αποκωδικοποίηση των bytes από το λειτουργικό σύστημα και την " "κωδικοποίηση σε Unicode για το λειτουργικό σύστημα." -#: glossary.rst:491 +#: glossary.rst:499 msgid "" "The filesystem encoding must guarantee to successfully decode all bytes " "below 128. If the file system encoding fails to provide this guarantee, API " @@ -1256,7 +1277,7 @@ msgstr "" "αρχείων δεν παρέχει αυτήν την εγγύηση, οι συναρτήσεις API μπορούν να " "εγείρουν ένα :exc:`UnicodeError`." -#: glossary.rst:495 +#: glossary.rst:503 msgid "" "The :func:`sys.getfilesystemencoding` and :func:`sys." "getfilesystemencodeerrors` functions can be used to get the filesystem " @@ -1266,7 +1287,7 @@ msgstr "" "getfilesystemencodeerrors` μπορούν να χρησιμοποιηθούν για να λάβετε την " "κωδικοποίηση του συστήματος αρχείων και του χειριστή σφαλμάτων." -#: glossary.rst:499 +#: glossary.rst:507 msgid "" "The :term:`filesystem encoding and error handler` are configured at Python " "startup by the :c:func:`PyConfig_Read` function: see :c:member:`~PyConfig." @@ -1278,15 +1299,15 @@ msgstr "" "`~PyConfig.filesystem_encoding` και :c:member:`~PyConfig.filesystem_errors` " "μέλη του :c:type:`PyConfig`." -#: glossary.rst:504 +#: glossary.rst:512 msgid "See also the :term:`locale encoding`." msgstr "Βλ. επίσης το :term:`locale encoding`." -#: glossary.rst:505 +#: glossary.rst:513 msgid "finder" msgstr "finder" -#: glossary.rst:507 +#: glossary.rst:515 msgid "" "An object that tries to find the :term:`loader` for a module that is being " "imported." @@ -1294,7 +1315,7 @@ msgstr "" "Ένα αντικείμενο που προσπαθεί να βρει το :term:`loader` για ένα module που " "εισήχθη." -#: glossary.rst:510 +#: glossary.rst:518 msgid "" "There are two types of finder: :term:`meta path finders ` " "for use with :data:`sys.meta_path`, and :term:`path entry finders ` για χρήση με :data:`sys.path_hooks`." -#: glossary.rst:514 +#: glossary.rst:522 msgid "" "See :ref:`finders-and-loaders` and :mod:`importlib` for much more detail." msgstr "" "Βλ. :ref:`finders-and-loaders` και :mod:`importlib` για περισσότερες " "λεπτομέρειες." -#: glossary.rst:515 +#: glossary.rst:523 msgid "floor division" msgstr "ακέραια διαίρεση" -#: glossary.rst:517 +#: glossary.rst:525 msgid "" "Mathematical division that rounds down to nearest integer. The floor " "division operator is ``//``. For example, the expression ``11 // 4`` " @@ -1330,11 +1351,11 @@ msgstr "" "4`` κάνει ``-3`` επειδή αυτή είναι η στρογγυλοποίηση *προς τα κάτω* του " "``-2.75``. Βλ. :pep:`238`." -#: glossary.rst:522 +#: glossary.rst:530 msgid "free threading" msgstr "δωρεάν νήμα" -#: glossary.rst:524 +#: glossary.rst:532 msgid "" "A threading model where multiple threads can run Python bytecode " "simultaneously within the same interpreter. This is in contrast to the :" @@ -1346,11 +1367,11 @@ msgstr "" "`global interpreter lock`, το οποίο επιτρέπει σε ένα μόνο νήμα να εκτελεί " "Python bytecode κάθε φορά. Δείτε το :pep:`703`." -#: glossary.rst:528 +#: glossary.rst:536 msgid "free variable" msgstr "δωρεάν μεταβλητή" -#: glossary.rst:530 +#: glossary.rst:538 msgid "" "Formally, as defined in the :ref:`language execution model `, a " "free variable is any variable used in a namespace which is not a local " @@ -1366,11 +1387,11 @@ msgstr "" "χαρακτηριστικού :attr:`codeobject.co_freevars`, ο όρος χρησιμοποιείται " "επίσης μερικές φορές ως συνώνυμο της :term:`closure variable`." -#: glossary.rst:535 +#: glossary.rst:543 msgid "function" msgstr "συνάρτηση" -#: glossary.rst:537 +#: glossary.rst:545 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 " @@ -1382,16 +1403,16 @@ msgstr "" "` που μπορεί να χρησιμοποιηθεί για την εκτέλεση. Βλ. επίσης τις " "ενότητες :term:`parameter`, :term:`method`, και the :ref:`function`." -#: glossary.rst:541 +#: glossary.rst:549 msgid "function annotation" msgstr "συνάρτηση annotation" -#: glossary.rst:543 +#: glossary.rst:551 msgid "An :term:`annotation` of a function parameter or return value." msgstr "" "Ένας :term:`annotation` μιας παραμέτρου συνάρτησης ή μιας τιμής επιστροφής." -#: glossary.rst:545 +#: glossary.rst:553 msgid "" "Function annotations are usually used for :term:`type hints `: " "for example, this function is expected to take two :class:`int` arguments " @@ -1402,7 +1423,7 @@ msgstr "" "ορίσματα :class:`int` και επίσης αναμένεται να έχει μία επιστρεφόμενη τιμή :" "class:`int`::" -#: glossary.rst:550 +#: glossary.rst:558 msgid "" "def sum_two_numbers(a: int, b: int) -> int:\n" " return a + b" @@ -1410,12 +1431,12 @@ msgstr "" "def sum_two_numbers(a: int, b: int) -> int:\n" " return a + b" -#: glossary.rst:553 +#: glossary.rst:561 msgid "Function annotation syntax is explained in section :ref:`function`." msgstr "" "Η σύνταξη συνάρτησης annotation αναλύεται στην ενότητα :ref:`function`." -#: glossary.rst:555 +#: glossary.rst:563 msgid "" "See :term:`variable annotation` and :pep:`484`, which describe this " "functionality. Also see :ref:`annotations-howto` for best practices on " @@ -1425,11 +1446,11 @@ msgstr "" "λειτουργικότητα. Επίσης βλ. :ref:`annotations-howto` για τις καλύτερες " "πρακτικές δουλεύοντας με annotations." -#: glossary.rst:559 +#: glossary.rst:567 msgid "__future__" msgstr "__future__" -#: glossary.rst:561 +#: glossary.rst:569 msgid "" "A :ref:`future statement `, ``from __future__ import ``, " "directs the compiler to compile the current module using syntax or semantics " @@ -1448,7 +1469,7 @@ msgstr "" "προστέθηκε για πρώτη φορά στην γλώσσα και πότε θα γίνει (ή έγινε) η " "προεπιλογή::" -#: glossary.rst:569 +#: glossary.rst:577 msgid "" ">>> import __future__\n" ">>> __future__.division\n" @@ -1458,11 +1479,11 @@ msgstr "" ">>> __future__.division\n" "_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)" -#: glossary.rst:572 +#: glossary.rst:580 msgid "garbage collection" msgstr "συλλογή απορριμάτων" -#: glossary.rst:574 +#: glossary.rst:582 msgid "" "The process of freeing memory when it is not used anymore. Python performs " "garbage collection via reference counting and a cyclic garbage collector " @@ -1475,11 +1496,11 @@ msgstr "" "τους κύκλους αναφοράς. Ο συλλέκτης απορριμάτων μπορεί να ελεγχθεί " "χρησιμοποιώντας το module :mod:`gc`." -#: glossary.rst:580 +#: glossary.rst:588 msgid "generator" msgstr "generator" -#: glossary.rst:582 +#: glossary.rst:590 msgid "" "A function which returns a :term:`generator iterator`. It looks like a " "normal function except that it contains :keyword:`yield` expressions for " @@ -1492,7 +1513,7 @@ msgstr "" "*for* ή που μπορούν να ανακτηθούν μία τη φορά με την συνάρτηση :func:`next` " "function." -#: glossary.rst:587 +#: glossary.rst:595 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 " @@ -1503,15 +1524,15 @@ msgstr "" "επιδιωκόμενο νόημα δεν είναι σαφές, η χρήση των πλήρων όρων αποφεύγει την " "ασάφεια." -#: glossary.rst:590 +#: glossary.rst:598 msgid "generator iterator" msgstr "generator iterator" -#: glossary.rst:592 +#: glossary.rst:600 msgid "An object created by a :term:`generator` function." msgstr "Ένα αντικείμενο που δημιουργείται από μια συνάρτηση :term:`generator`." -#: glossary.rst:594 +#: glossary.rst:602 msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " "execution state (including local variables and pending try-statements). " @@ -1524,11 +1545,11 @@ msgstr "" "συνεχίζει από εκεί που σταμάτησε (σε αντίθεση με τις συναρτήσεις που " "ξεκινούν από την αρχή σε κάθε επίκληση)." -#: glossary.rst:601 +#: glossary.rst:609 msgid "generator expression" msgstr "generator έκφραση" -#: glossary.rst:603 +#: glossary.rst:611 msgid "" "An :term:`expression` that returns an :term:`iterator`. It looks like a " "normal expression followed by a :keyword:`!for` clause defining a loop " @@ -1540,7 +1561,7 @@ msgstr "" "μια μεταβλητή βρόχου, ένα εύρος και μια προαιρετική πρόταση :keyword:`!if`. " "Η συνδυασμένη έκφραση δημιουργεί τιμές για μια συνάρτηση εγκλεισμού::" -#: glossary.rst:608 +#: glossary.rst:616 msgid "" ">>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81\n" "285" @@ -1548,11 +1569,11 @@ msgstr "" ">>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81\n" "285" -#: glossary.rst:610 +#: glossary.rst:618 msgid "generic function" msgstr "γενική συνάρτηση" -#: glossary.rst:612 +#: glossary.rst:620 msgid "" "A function composed of multiple functions implementing the same operation " "for different types. Which implementation should be used during a call is " @@ -1563,7 +1584,7 @@ msgstr "" "χρησιμοποιηθεί κατά τη διάρκεια μια κλήσης καθορίζεται από τον αλγόριθμο " "αποστολής." -#: glossary.rst:616 +#: glossary.rst:624 msgid "" "See also the :term:`single dispatch` glossary entry, the :func:`functools." "singledispatch` decorator, and :pep:`443`." @@ -1571,11 +1592,11 @@ msgstr "" "Βλ. επίσης την καταχώρηση του :term:`single dispatch`, τον decorator :func:" "`functools.singledispatch` και :pep:`443`." -#: glossary.rst:618 +#: glossary.rst:626 msgid "generic type" msgstr "γενικός τύπος" -#: glossary.rst:620 +#: glossary.rst:628 msgid "" "A :term:`type` that can be parameterized; typically a :ref:`container " "class` such as :class:`list` or :class:`dict`. Used for :" @@ -1586,7 +1607,7 @@ msgstr "" "Χρησιμοποιείται για :term:`type hints ` και :term:`annotations " "`." -#: glossary.rst:625 +#: glossary.rst:633 msgid "" "For more details, see :ref:`generic alias types`, :pep:" "`483`, :pep:`484`, :pep:`585`, and the :mod:`typing` module." @@ -1595,19 +1616,19 @@ msgstr "" "genericalias>` :pep:`483`, :pep:`484`, :pep:`585`, και το module :mod:" "`typing`." -#: glossary.rst:627 +#: glossary.rst:635 msgid "GIL" msgstr "GIL" -#: glossary.rst:629 +#: glossary.rst:637 msgid "See :term:`global interpreter lock`." msgstr "Βλ. :term:`global interpreter lock`." -#: glossary.rst:630 +#: glossary.rst:638 msgid "global interpreter lock" msgstr "global interpreter lock" -#: glossary.rst:632 +#: glossary.rst:640 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 " @@ -1626,7 +1647,7 @@ msgstr "" "του μεγάλου μέρους του παραλληλισμού που παρέχουν οι μηχανές πολλαπλών " "επεξεργαστών." -#: glossary.rst:641 +#: glossary.rst:649 msgid "" "However, some extension modules, either standard or third-party, are " "designed so as to release the GIL when doing computationally intensive tasks " @@ -1638,7 +1659,7 @@ msgstr "" "εντατικών υπολογισμών όπως συμπίεση ή κατακερματισμός. Επίσης, το GIL " "απελευθερώνεται πάντα όταν εκτελείτε I/O." -#: glossary.rst:646 +#: glossary.rst:654 msgid "" "As of Python 3.13, the GIL can be disabled using the :option:`--disable-gil` " "build configuration. After building Python with this option, code must be " @@ -1656,7 +1677,7 @@ msgstr "" "διευκολύνει τη χρήση των επεξεργαστών πολλαπλών πυρήνων με αποδοτικό τρόπο. " "Για περισσότερες λεπτομέρειες, δείτε το :pep:`703`." -#: glossary.rst:653 +#: glossary.rst:661 msgid "" "In prior versions of Python's C API, a function might declare that it " "requires the GIL to be held in order to use it. This refers to having an :" @@ -1666,11 +1687,11 @@ msgstr "" "δηλώνει ότι απαιτεί την τήρηση του GIL για να χρησιμοποιηθεί. Αυτό " "αναφέρεται στην ύπαρξη μιας κατάστασης :term:`attached thread state`." -#: glossary.rst:656 +#: glossary.rst:664 msgid "hash-based pyc" msgstr "hash-based pyc" -#: glossary.rst:658 +#: glossary.rst:666 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-" @@ -1680,11 +1701,11 @@ msgstr "" "όχι τον χρόνο τροποποίησης του αντίστοιχου αρχείου προέλευσης για να " "προσδιορίσει την εγκυρότητα του. Βλ. :ref:`pyc-invalidation`." -#: glossary.rst:661 +#: glossary.rst:669 msgid "hashable" msgstr "hashable" -#: glossary.rst:663 +#: glossary.rst:671 msgid "" "An object is *hashable* if it has a hash value which never changes during " "its lifetime (it needs a :meth:`~object.__hash__` method), and can be " @@ -1698,7 +1719,7 @@ msgstr "" "που συγκρίνονται ως προς την ισότητα τους πρέπει να έχουν την ίδια τιμή " "κατακερματισμού." -#: glossary.rst:669 +#: glossary.rst:677 msgid "" "Hashability makes an object usable as a dictionary key and a set member, " "because these data structures use the hash value internally." @@ -1707,7 +1728,7 @@ msgstr "" "κλειδί λεξικού και ως μέλος ενός συνόλου, επειδή αυτές οι δομές δεδομένων " "χρησιμοποιούν τιμές κατακερματισμού." -#: glossary.rst:672 +#: glossary.rst:680 msgid "" "Most of Python's immutable built-in objects are hashable; mutable containers " "(such as lists or dictionaries) are not; immutable containers (such as " @@ -1724,11 +1745,11 @@ msgstr "" "μπορούν να κατακερματιστούν από προεπιλογή. Όλα συγκρίνονται άνισα εκτός από " "τον εαυτό τους) και η τιμή κατακερματισμού τους προέρχεται από το :func:`id`." -#: glossary.rst:679 +#: glossary.rst:687 msgid "IDLE" msgstr "IDLE" -#: glossary.rst:681 +#: glossary.rst:689 msgid "" "An Integrated Development and Learning Environment for Python. :ref:`idle` " "is a basic editor and interpreter environment which ships with the standard " @@ -1738,11 +1759,11 @@ msgstr "" "`idle` είναι ένα βασικό περιβάλλον επεξεργασίας και διερμηνέα που " "συνοδεύεται από την τυπική διανομή της Python." -#: glossary.rst:684 +#: glossary.rst:692 msgid "immortal" msgstr "Αθάνατο" -#: glossary.rst:686 +#: glossary.rst:694 msgid "" "*Immortal objects* are a CPython implementation detail introduced in :pep:" "`683`." @@ -1750,7 +1771,7 @@ msgstr "" "*Αθάνατα αντικείμενα* είναι μια λεπτομέρεια υλοποίησης της CPython που " "εισήχθη στην :pep:`683`." -#: glossary.rst:689 +#: glossary.rst:697 msgid "" "If an object is immortal, its :term:`reference count` is never modified, and " "therefore it is never deallocated while the interpreter is running. For " @@ -1760,7 +1781,7 @@ msgstr "" "τροποποιείται, και επομένως δεν εκχωρείται ποτέ ενώ εκτελείται ο διερμηνέας. " "Για παράδειγμα, :const:`True` και :const:`None` είναι αθάνατα στην CPython." -#: glossary.rst:693 +#: glossary.rst:701 msgid "" "Immortal objects can be identified via :func:`sys._is_immortal`, or via :c:" "func:`PyUnstable_IsImmortal` in the C API." @@ -1768,11 +1789,11 @@ msgstr "" "Τα αθάνατα αντικείμενα μπορούν να αναγνωριστούν μέσω της :func:`sys." "_is_immortal`, ή μέσω της :c:func:`PyUnstable_IsImmortal` στο C API." -#: glossary.rst:695 +#: glossary.rst:703 msgid "immutable" msgstr "immutable" -#: glossary.rst:697 +#: glossary.rst:705 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 " @@ -1786,11 +1807,11 @@ msgstr "" "αποθηκευτεί μια διαφορετική τιμή. Παίζουν σημαντικό ρόλο σε μέρη όπου μια " "σταθερά απαιτείται, για παράδειγμα ως κλειδί σε ένα λεξικό." -#: glossary.rst:702 +#: glossary.rst:710 msgid "import path" msgstr "εισαγόμενο path" -#: glossary.rst:704 +#: glossary.rst:712 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 " @@ -1803,11 +1824,11 @@ msgstr "" "από :data:`sys.path`, αλλά για τα υποπακέτα μπορεί επίσης να έρθει από το " "χαρακτηριστικό του πακέτου γονέα ``__path__``." -#: glossary.rst:709 +#: glossary.rst:717 msgid "importing" msgstr "εισαγωγή" -#: glossary.rst:711 +#: glossary.rst:719 msgid "" "The process by which Python code in one module is made available to Python " "code in another module." @@ -1815,11 +1836,11 @@ msgstr "" "Η διαδικασία κατά την οποία ο κώδικας της Python σε ένα module είναι " "διαθέσιμη στον κώδικα Python ενός άλλου module." -#: glossary.rst:713 +#: glossary.rst:721 msgid "importer" msgstr "εισαγωγέας" -#: glossary.rst:715 +#: glossary.rst:723 msgid "" "An object that both finds and loads a module; both a :term:`finder` and :" "term:`loader` object." @@ -1827,11 +1848,11 @@ msgstr "" "Ένα αντικείμενο μπορεί και να αναζητεί και να φορτώνει ένα module' και ένα :" "term:`finder` και :term:`loader` αντικείμενο." -#: glossary.rst:717 +#: glossary.rst:725 msgid "interactive" msgstr "διαδραστικός" -#: glossary.rst:719 +#: glossary.rst:727 msgid "" "Python has an interactive interpreter which means you can enter statements " "and expressions at the interpreter prompt, immediately execute them and see " @@ -1848,11 +1869,11 @@ msgstr "" "να εξετάστε modules και πακέτα (θυμηθείτε ``help(x)``). Για περισσότερα " "σχετικά με τη διαδραστική λειτουργία, δείτε :ref:`tut-interac`." -#: glossary.rst:726 +#: glossary.rst:734 msgid "interpreted" msgstr "interpreted" -#: glossary.rst:728 +#: glossary.rst:736 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. " @@ -1869,11 +1890,11 @@ msgstr "" "εντοπισμού σφαλμάτων από τις μεταγλωττισμένες, αν και τα προγράμματά τους " "γενικά εκτελούνται πιο αργά. Βλ. επίσης :term:`interactive`." -#: glossary.rst:735 +#: glossary.rst:743 msgid "interpreter shutdown" msgstr "τερματισμός λειτουργίας διερμηνέα" -#: glossary.rst:737 +#: glossary.rst:745 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 " @@ -1895,7 +1916,7 @@ msgstr "" "βασίζεται ενδέχεται να μην λειτουργούν πλέον (συνήθη παραδείγματα είναι οι " "λειτουργικές μονάδες βιβλιοθήκης ή ο μηχανισμός ειδοποιήσεων)." -#: glossary.rst:746 +#: glossary.rst:754 msgid "" "The main reason for interpreter shutdown is that the ``__main__`` module or " "the script being run has finished executing." @@ -1903,11 +1924,11 @@ msgstr "" "Ο βασικός λόγος τερματισμού λειτουργίας του διερμηνέα είναι ότι το " "``__main__`` module ή ολοκληρώθηκε η εκτέλεση του κώδικα που έτρεχε." -#: glossary.rst:748 +#: glossary.rst:756 msgid "iterable" msgstr "iterable" -#: glossary.rst:750 +#: glossary.rst:758 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`, " @@ -1924,7 +1945,7 @@ msgstr "" "__iter__` ή με μία μέθοδο :meth:`~object.__getitem__` που υλοποιεί τη " "σημασιολογία :term:`sequence`." -#: glossary.rst:758 +#: glossary.rst:766 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 " @@ -1948,11 +1969,11 @@ msgstr "" "του βρόχου. Βλ. επίσης :term:`iterator`, :term:`sequence`, και :term:" "`generator`." -#: glossary.rst:768 +#: glossary.rst:776 msgid "iterator" msgstr "iterator" -#: glossary.rst:770 +#: glossary.rst:778 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 :" @@ -1987,11 +2008,11 @@ msgstr "" "εξαντλημένο αντικείμενο iterator που χρησιμοποιήθηκε στο προηγούμενο πέρασμα " "iteration , κάνοντας το να φαίνεται σαν ένα άδειο κοντέινερ." -#: glossary.rst:785 +#: glossary.rst:793 msgid "More information can be found in :ref:`typeiter`." msgstr "Περισσότερες πληροφορίες μπορούν να βρεθούν στο :ref:`typeiter`." -#: glossary.rst:789 +#: glossary.rst:797 msgid "" "CPython does not consistently apply the requirement that an iterator define :" "meth:`~iterator.__iter__`. And also please note that the free-threading " @@ -2002,11 +2023,11 @@ msgstr "" "υποστήριξη νημάτων δεν εγγυάται την ασφάλεια νημάτων για διαδικασίες με " "iterators." -#: glossary.rst:794 +#: glossary.rst:802 msgid "key function" msgstr "συνάρτηση key" -#: glossary.rst:796 +#: glossary.rst:804 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 " @@ -2018,7 +2039,7 @@ msgstr "" "κλειδιού ταξινόμησης που γνωρίζει τις συμβάσεις ταξινόμησης για " "συγκεκριμένες τοπικές ρυθμίσεις." -#: glossary.rst:801 +#: glossary.rst:809 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`, :" @@ -2031,7 +2052,7 @@ msgstr "" "`heapq.merge`, :func:`heapq.nsmallest`, :func:`heapq. nlargest`, και :func:" "`itertools.groupby`." -#: glossary.rst:807 +#: glossary.rst:815 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. " @@ -2051,19 +2072,19 @@ msgstr "" "TO` για παραδείγματα δημιουργίας και χρήσης βασικών " "συναρτήσεων." -#: glossary.rst:814 +#: glossary.rst:822 msgid "keyword argument" msgstr "όρισμα keyword" -#: glossary.rst:1131 +#: glossary.rst:1148 msgid "See :term:`argument`." msgstr "Βλ. :term:`argument`." -#: glossary.rst:817 +#: glossary.rst:825 msgid "lambda" msgstr "lambda" -#: glossary.rst:819 +#: glossary.rst:827 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 " @@ -2074,11 +2095,11 @@ msgstr "" "τη δημιουργία μιας συνάρτησης lambda είναι ``lambda [parameters]: " "expression``" -#: glossary.rst:822 +#: glossary.rst:830 msgid "LBYL" msgstr "LBYL" -#: glossary.rst:824 +#: glossary.rst:832 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` " @@ -2090,7 +2111,7 @@ msgstr "" "έρχεται σε αντίθεση με την προσέγγιση :term:`EAFP` και χαρακτηρίζεται από " "την παρουσία πολλών δηλώσεων :keyword:`if`." -#: glossary.rst:829 +#: glossary.rst:837 msgid "" "In a multi-threaded environment, the LBYL approach can risk introducing a " "race condition between \"the looking\" and \"the leaping\". For example, " @@ -2105,19 +2126,19 @@ msgstr "" "το *mapping* μετά τη δοκιμή, αλλά πριν από την αναζήτηση. Αυτό το πρόβλημα " "μπορεί να λυθεί με κλειδώματα ή χρησιμοποιώντας την προσέγγιση EAFP." -#: glossary.rst:834 +#: glossary.rst:842 msgid "lexical analyzer" msgstr "λεξικός αναλυτής" -#: glossary.rst:837 +#: glossary.rst:845 msgid "Formal name for the *tokenizer*; see :term:`token`." msgstr "Επίσημη ονομασία για τον *tokenizer* · βλ. :term:`token`." -#: glossary.rst:838 +#: glossary.rst:846 msgid "list" msgstr "λίστα" -#: glossary.rst:840 +#: glossary.rst:848 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 " @@ -2127,11 +2148,11 @@ msgstr "" "περισσότερο με έναν πίνακα σε άλλες γλώσσες παρά με μια συνδεδεμένη λίστα, " "καθώς η πρόσβαση στα στοιχεί είναι *O*\\ (1)." -#: glossary.rst:843 +#: glossary.rst:851 msgid "list comprehension" msgstr "list comprehension" -#: glossary.rst:845 +#: glossary.rst:853 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 " @@ -2146,11 +2167,11 @@ msgstr "" "από 0 έως 255. Η πρόταση :keyword:`if` είναι προαιρετική. Εάν παραλειφθεί, " "όλα τα στοιχεία στο ``range(256)`` υποβάλλονται σε επεξεργασία." -#: glossary.rst:851 +#: glossary.rst:859 msgid "loader" msgstr "loader" -#: glossary.rst:853 +#: glossary.rst:861 msgid "" "An object that loads a module. It must define the :meth:`!exec_module` and :" "meth:`!create_module` methods to implement the :class:`~importlib.abc." @@ -2162,23 +2183,23 @@ msgstr "" "class:`~importlib.abc.Loader`. Ένας loader συνήθως επιστρέφεται με ένα :term:" "`finder`. Δείτε επίσης:" -#: glossary.rst:859 +#: glossary.rst:867 msgid ":ref:`finders-and-loaders`" msgstr ":ref:`finders-and-loaders`" -#: glossary.rst:860 +#: glossary.rst:868 msgid ":class:`importlib.abc.Loader`" msgstr ":class:`importlib.abc.Loader`" -#: glossary.rst:861 +#: glossary.rst:869 msgid ":pep:`302`" msgstr ":pep:`302`" -#: glossary.rst:862 +#: glossary.rst:870 msgid "locale encoding" msgstr "τοπική κωδικοποίηση" -#: glossary.rst:864 +#: glossary.rst:872 msgid "" "On Unix, it is the encoding of the LC_CTYPE locale. It can be set with :func:" "`locale.setlocale(locale.LC_CTYPE, new_locale) `." @@ -2187,40 +2208,40 @@ msgstr "" "ρυθμιστεί με :func:`locale.setlocale(locale.LC_CTYPE, new_locale) `." -#: glossary.rst:867 +#: glossary.rst:875 msgid "On Windows, it is the ANSI code page (ex: ``\"cp1252\"``)." msgstr "Στα Windows, είναι η code page ANSI (π.χ. ``\"cp1252\"``)." -#: glossary.rst:869 +#: glossary.rst:877 msgid "" "On Android and VxWorks, Python uses ``\"utf-8\"`` as the locale encoding." msgstr "" "Στο Android και το VxWorks, η Python χρησιμοποιεί το ``\"utf-8\"`` ως τοπική " "κωδικοποίηση." -#: glossary.rst:871 +#: glossary.rst:879 msgid ":func:`locale.getencoding` can be used to get the locale encoding." msgstr "" ":func:`locale.getencoding` μπορεί να χρησιμοποιηθεί για την ανάκτηση της " "τοπικής κωδικοποίησης." -#: glossary.rst:873 +#: glossary.rst:881 msgid "See also the :term:`filesystem encoding and error handler`." msgstr "Βλ. επίσης το :term:`filesystem encoding and error handler`." -#: glossary.rst:874 +#: glossary.rst:882 msgid "magic method" msgstr "μαγική μέθοδος" -#: glossary.rst:878 +#: glossary.rst:886 msgid "An informal synonym for :term:`special method`." msgstr "Ένα άτυπο συνώνυμο για :term:`special method`." -#: glossary.rst:879 +#: glossary.rst:887 msgid "mapping" msgstr "mapping" -#: glossary.rst:881 +#: glossary.rst:889 msgid "" "A container object that supports arbitrary key lookups and implements the " "methods specified in the :class:`collections.abc.Mapping` or :class:" @@ -2236,11 +2257,11 @@ msgstr "" "class:`dict`, :class:`collections.defaultdict`, :class:`collections." "OrderedDict` και :class:`collections.Counter`." -#: glossary.rst:887 +#: glossary.rst:895 msgid "meta path finder" msgstr "meta path finder" -#: glossary.rst:889 +#: glossary.rst:897 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 `." -#: glossary.rst:893 +#: glossary.rst:901 msgid "" "See :class:`importlib.abc.MetaPathFinder` for the methods that meta path " "finders implement." @@ -2258,11 +2279,11 @@ msgstr "" "Βλ. :class:`importlib.abc.MetaPathFinder` για τις μεθόδους που υλοποιούν οι " "meta path finders." -#: glossary.rst:895 +#: glossary.rst:903 msgid "metaclass" msgstr "μετα-κλάση" -#: glossary.rst:897 +#: glossary.rst:905 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 " @@ -2286,15 +2307,15 @@ msgstr "" "ασφάλειας νημάτων, την παρακολούθηση δημιουργίας αντικειμένων, την υλοποίηση " "*singletons*, και πολλές άλλες εργασίες." -#: glossary.rst:907 +#: glossary.rst:915 msgid "More information can be found in :ref:`metaclasses`." msgstr "Περισσότερες πληροφορίες μπορούν να βρεθούν στο :ref:`metaclasses`." -#: glossary.rst:1276 +#: glossary.rst:1299 msgid "method" msgstr "μέθοδος" -#: glossary.rst:910 +#: glossary.rst:918 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 " @@ -2306,11 +2327,11 @@ msgstr "" "αντικείμενο περίπτωσης ως πρώτο της :term:`argument` (το οποίο συνήθως " "ονομάζεται ``self``). Βλ. :term:`function` και :term:`nested scope`." -#: glossary.rst:914 +#: glossary.rst:922 msgid "method resolution order" msgstr "σειρά ανάλυσης μεθόδων" -#: glossary.rst:916 +#: glossary.rst:924 msgid "" "Method Resolution Order is the order in which base classes are searched for " "a member during lookup. See :ref:`python_2.3_mro` for details of the " @@ -2321,11 +2342,11 @@ msgstr "" "για λεπτομέρειες του αλγορίθμου που χρησιμοποιείται από τον διερμηνέα της " "Python από την έκδοση 2.3." -#: glossary.rst:919 +#: glossary.rst:927 msgid "module" msgstr "module" -#: glossary.rst:921 +#: glossary.rst:929 msgid "" "An object that serves as an organizational unit of Python code. Modules " "have a namespace containing arbitrary Python objects. Modules are loaded " @@ -2336,15 +2357,15 @@ msgstr "" "Python. Τα modules φορτώνονται στην Python με την διαδικασία :term:" "`importing`." -#: glossary.rst:925 +#: glossary.rst:933 msgid "See also :term:`package`." msgstr "Βλ. επίσης :term:`package`." -#: glossary.rst:926 +#: glossary.rst:934 msgid "module spec" msgstr "τεχνικές προδιαγραφές module" -#: glossary.rst:928 +#: glossary.rst:936 msgid "" "A namespace containing the import-related information used to load a module. " "An instance of :class:`importlib.machinery.ModuleSpec`." @@ -2353,23 +2374,23 @@ msgstr "" "που χρησιμοποιούνται για την φόρτωση ενός module. Μια περίπτωση του :class:" "`importlib.machinery.ModuleSpec`." -#: glossary.rst:931 +#: glossary.rst:939 msgid "See also :ref:`module-specs`." msgstr "Βλ. επίσης :ref:`module-specs`." -#: glossary.rst:932 +#: glossary.rst:940 msgid "MRO" msgstr "MRO" -#: glossary.rst:934 +#: glossary.rst:942 msgid "See :term:`method resolution order`." msgstr "Βλ. :term:`method resolution order`." -#: glossary.rst:935 +#: glossary.rst:943 msgid "mutable" msgstr "mutable" -#: glossary.rst:937 +#: glossary.rst:945 msgid "" "Mutable objects can change their value but keep their :func:`id`. See also :" "term:`immutable`." @@ -2377,11 +2398,11 @@ msgstr "" "Τα ευμετάβλητα αντικείμενα μπορούν να αλλάξουν τις τιμές αλλά να κρατήσουν " "τα :func:`id`. Βλ. επίσης :term:`immutable`." -#: glossary.rst:939 +#: glossary.rst:947 msgid "named tuple" msgstr "named tuple" -#: glossary.rst:941 +#: glossary.rst:949 msgid "" "The term \"named tuple\" applies to any type or class that inherits from " "tuple and whose indexable elements are also accessible using named " @@ -2392,7 +2413,7 @@ msgstr "" "ευρετηριοποιηθούν είναι προσβάσιμα χρησιμοποιώντας επώνυμα χαρακτηριστικά. " "Ο τύπος ή η κλάση μπορεί να έχει και άλλα χαρακτηριστικά." -#: glossary.rst:945 +#: glossary.rst:953 msgid "" "Several built-in types are named tuples, including the values returned by :" "func:`time.localtime` and :func:`os.stat`. Another example is :data:`sys." @@ -2402,7 +2423,7 @@ msgstr "" "που επιστρέφονται από :func:`time.localtime` και :func:`os.stat`. Ένα άλλο " "παράδειγμα είναι το :data:`sys.float_info`::" -#: glossary.rst:949 +#: glossary.rst:957 msgid "" ">>> sys.float_info[1] # indexed access\n" "1024\n" @@ -2418,7 +2439,7 @@ msgstr "" ">>> isinstance(sys.float_info, tuple) # kind of tuple\n" "True" -#: glossary.rst:956 +#: glossary.rst:964 msgid "" "Some named tuples are built-in types (such as the above examples). " "Alternatively, a named tuple can be created from a regular class definition " @@ -2437,11 +2458,11 @@ msgstr "" "τελευταίες τεχνικές προσθέτουν επίσης μερικές επιπλέον μεθόδους που μπορεί " "να μην βρεθούν σε χειρόγραφες ή ενσωματωμένες πλειάδες με όνομα." -#: glossary.rst:964 +#: glossary.rst:972 msgid "namespace" msgstr "namespace" -#: glossary.rst:966 +#: glossary.rst:974 msgid "" "The place where a variable is stored. Namespaces are implemented as " "dictionaries. There are the local, global and built-in namespaces as well " @@ -2463,11 +2484,11 @@ msgstr "" "seed` ή :func:`itertools.islice` καθιστά σαφές ότι αυτές οι συναρτήσεις " "υλοποιούνται από τα module :mod:`random` και :mod:`itertools`, αντίστοιχα." -#: glossary.rst:976 +#: glossary.rst:984 msgid "namespace package" msgstr "πακέτο namespace" -#: glossary.rst:978 +#: glossary.rst:986 msgid "" "A :term:`package` which serves only as a container for subpackages. " "Namespace packages may have no physical representation, and specifically are " @@ -2478,7 +2499,7 @@ msgstr "" "συγκεκριμένα να μην είναι σαν ένα :term:`regular package` επειδή δεν έχουν " "το ``__init__.py`` αρχείο." -#: glossary.rst:983 +#: glossary.rst:991 msgid "" "Namespace packages allow several individually installable packages to have a " "common parent package. Otherwise, it is recommended to use a :term:`regular " @@ -2488,22 +2509,22 @@ msgstr "" "εγκατάστασης μεμονωμένα να έχουν ένα κοινό γονικό πακέτο. Διαφορετικά, " "συνίσταται η χρήση ενός :term:`regular package`." -#: glossary.rst:986 +#: glossary.rst:994 msgid "" "For more information, see :pep:`420` and :ref:`reference-namespace-package`." msgstr "" "Για περισσότερες πληροφορίες, δείτε το :pep:`420` και το :ref:`reference-" "namespace-package`." -#: glossary.rst:988 +#: glossary.rst:996 msgid "See also :term:`module`." msgstr "Βλ. επίσης :term:`module`." -#: glossary.rst:989 +#: glossary.rst:997 msgid "nested scope" msgstr "nested scope" -#: glossary.rst:991 +#: glossary.rst:999 msgid "" "The ability to refer to a variable in an enclosing definition. For " "instance, a function defined inside another function can refer to variables " @@ -2520,11 +2541,11 @@ msgstr "" "Ομοίως, οι καθολικές μεταβλητές διαβάζουν και γράφουν στον καθολικό χώρο " "ονομάτων. Το :keyword:`nonlocal` επιτρέπει την εγγραφή σε εξωτερικά πεδία." -#: glossary.rst:998 +#: glossary.rst:1006 msgid "new-style class" msgstr "κλάση νέου στυλ" -#: glossary.rst:1000 +#: glossary.rst:1008 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, " @@ -2537,11 +2558,11 @@ msgstr "" "όπως :attr:`~object.__slots__`, descriptors, ιδιότητες :meth:`~object." "__getattribute__`, μέθοδοι κλάσης, και στατικές μέθοδοι." -#: glossary.rst:1005 +#: glossary.rst:1013 msgid "object" msgstr "αντικείμενο" -#: glossary.rst:1007 +#: glossary.rst:1015 msgid "" "Any data with state (attributes or value) and defined behavior (methods). " "Also the ultimate base class of any :term:`new-style class`." @@ -2550,11 +2571,11 @@ msgstr "" "συμπεριφορά (μέθοδοι). Επίσης, η τελική βασική κλάση οποιασδήποτε :term:`new-" "style class`." -#: glossary.rst:1010 +#: glossary.rst:1018 msgid "optimized scope" msgstr "βελτιστοποιημένο πεδίο ορατότητας (scope)" -#: glossary.rst:1012 +#: glossary.rst:1020 msgid "" "A scope where target local variable names are reliably known to the compiler " "when the code is compiled, allowing optimization of read and write access to " @@ -2574,11 +2595,35 @@ msgstr "" "εκείνες που βασίζονται σε γνωστό σύνολο τοπικών και μη τοπικών μεταβλητών " "περιορίζονται σε βελτιστοποιημένα πεδία ορατότητας." -#: glossary.rst:1019 +#: glossary.rst:1027 +msgid "optional module" +msgstr "προαιρετικό module" + +#: glossary.rst:1029 +msgid "" +"An :term:`extension module` that is part of the :term:`standard library`, " +"but may be absent in some builds of :term:`CPython`, usually due to missing " +"third-party libraries or because the module is not available for a given " +"platform." +msgstr "" +"Ένα :term:`extension module` που αποτελεί μέρος της :term:`standard " +"library`, αλλά μπορεί να απουσιάζει σε ορισμένες εκδόσεις του :term:" +"`CPython`, συνήθως λόγω απουσίας βιβλιοθηκών τρίτων ή επειδή το module δεν " +"είναι διαθέσιμο για μια δεδομένη πλατφόρμα." + +#: glossary.rst:1034 +msgid "" +"See :ref:`optional-module-requirements` for a list of optional modules that " +"require third-party libraries." +msgstr "" +"Δείτε το :ref:`optional-module-requirements` για μια λίστα με προαιρετικά " +"modules που απαιτούν βιβλιοθήκες τρίτων." + +#: glossary.rst:1036 msgid "package" msgstr "πακέτο" -#: glossary.rst:1021 +#: glossary.rst:1038 msgid "" "A Python :term:`module` which can contain submodules or recursively, " "subpackages. Technically, a package is a Python module with a ``__path__`` " @@ -2588,15 +2633,15 @@ msgstr "" "υποπακέτα. Τεχνικά, ένα πακέτο είναι μια λειτουργική μονάδα Python με ένα " "``__path__`` χαρακτηριστικό." -#: glossary.rst:1025 +#: glossary.rst:1042 msgid "See also :term:`regular package` and :term:`namespace package`." msgstr "Βλ. επίσης :term:`regular package` και :term:`namespace package`." -#: glossary.rst:1026 +#: glossary.rst:1043 msgid "parameter" msgstr "παράμετρος" -#: glossary.rst:1028 +#: glossary.rst:1045 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 " @@ -2606,7 +2651,7 @@ msgstr "" "καθορίζει ένα :term:`argument` (ή σε ορισμένες περιπτώσεις, ορίσματα) που " "μπορεί να δεχθεί η συνάρτηση. Υπάρχουν πέντε είδη παραμέτρων:" -#: glossary.rst:1032 +#: glossary.rst:1049 msgid "" ":dfn:`positional-or-keyword`: specifies an argument that can be passed " "either :term:`positionally ` or as a :term:`keyword argument " @@ -2618,11 +2663,11 @@ msgstr "" "`. Αυτό είναι το προεπιλεγμένο είδος παραμέτρου, για παράδειγμα " "*foo* και *bar* στα ακόλουθα::" -#: glossary.rst:1037 +#: glossary.rst:1054 msgid "def func(foo, bar=None): ..." msgstr "def func(foo, bar=None): ..." -#: glossary.rst:1041 +#: glossary.rst:1058 msgid "" ":dfn:`positional-only`: specifies an argument that can be supplied only by " "position. Positional-only parameters can be defined by including a ``/`` " @@ -2634,11 +2679,11 @@ msgstr "" "χαρακτήρα ``/`` στη λίστα παραμέτρων του ορισμού συνάρτησης μετά από αυτές, " "για παράδειγμα *posonly1* και *posonly2* στα εξής::" -#: glossary.rst:1046 +#: glossary.rst:1063 msgid "def func(posonly1, posonly2, /, positional_or_keyword): ..." msgstr "def func(posonly1, posonly2, /, positional_or_keyword): ..." -#: glossary.rst:1050 +#: glossary.rst:1067 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-" @@ -2652,11 +2697,11 @@ msgstr "" "του ορισμού συνάρτησης πριν από αυτές, για παράδειγμα *kw_only1* και " "*kw_only2* στα ακόλουθα::" -#: glossary.rst:1056 +#: glossary.rst:1073 msgid "def func(arg, *, kw_only1, kw_only2): ..." msgstr "def func(arg, *, kw_only1, kw_only2): ..." -#: glossary.rst:1058 +#: glossary.rst:1075 msgid "" ":dfn:`var-positional`: specifies that an arbitrary sequence of positional " "arguments can be provided (in addition to any positional arguments already " @@ -2670,11 +2715,11 @@ msgstr "" "προσαρτώντας το όνομα της παραμέτρου με ``*``, για παράδειγμα *args* στα " "ακόλουθα::" -#: glossary.rst:1064 +#: glossary.rst:1081 msgid "def func(*args, **kwargs): ..." msgstr "def func(*args, **kwargs): ..." -#: glossary.rst:1066 +#: glossary.rst:1083 msgid "" ":dfn:`var-keyword`: specifies that arbitrarily many keyword arguments can be " "provided (in addition to any keyword arguments already accepted by other " @@ -2687,7 +2732,7 @@ msgstr "" "οριστεί προσαρτώντας το όνομα της παραμέτρου με ``**``, για παράδειγμα " "*kwargs* όπως παραπάνω." -#: glossary.rst:1072 +#: glossary.rst:1089 msgid "" "Parameters can specify both optional and required arguments, as well as " "default values for some optional arguments." @@ -2696,7 +2741,7 @@ msgstr "" "απαιτούμενα ορίσματα , καθώς και προεπιλεγμένες τιμές για ορισμένα " "προαιρετικά ορίσματα." -#: glossary.rst:1075 +#: glossary.rst:1092 msgid "" "See also the :term:`argument` glossary entry, the FAQ question on :ref:`the " "difference between arguments and parameters `, " @@ -2708,11 +2753,11 @@ msgstr "" "parameter>`, την κλάση :class:`inspect.Parameter`, την ενότητα :ref:" "`function` και :pep:`362`." -#: glossary.rst:1079 +#: glossary.rst:1096 msgid "path entry" msgstr "path entry" -#: glossary.rst:1081 +#: glossary.rst:1098 msgid "" "A single location on the :term:`import path` which the :term:`path based " "finder` consults to find modules for importing." @@ -2720,11 +2765,11 @@ msgstr "" "Μια μεμονωμένη τοποθεσία στο :term:`import path` την οποία συμβουλεύεται ο :" "term:`path based finder` για να βρει modules για εισαγωγή." -#: glossary.rst:1083 +#: glossary.rst:1100 msgid "path entry finder" msgstr "path entry finder" -#: glossary.rst:1085 +#: glossary.rst:1102 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:" @@ -2734,7 +2779,7 @@ msgstr "" "path_hooks` (δηλαδή ένα :term:`path entry hook`) που ξέρει πως να εντοπίζει " "modules με :term:`path entry`." -#: glossary.rst:1089 +#: glossary.rst:1106 msgid "" "See :class:`importlib.abc.PathEntryFinder` for the methods that path entry " "finders implement." @@ -2742,11 +2787,11 @@ msgstr "" "Βλ. :class:`importlib.abc.PathEntryFinder` για τις μεθόδους που ο entry " "finder διαδρομής υλοποιεί." -#: glossary.rst:1091 +#: glossary.rst:1108 msgid "path entry hook" msgstr "path entry hook" -#: glossary.rst:1093 +#: glossary.rst:1110 msgid "" "A callable on the :data:`sys.path_hooks` list which returns a :term:`path " "entry finder` if it knows how to find modules on a specific :term:`path " @@ -2756,11 +2801,11 @@ msgstr "" "term:`path entry finder` εάν ξέρει πως να βρίσκει module σε μια " "συγκεκριμένη :term:`path entry`." -#: glossary.rst:1096 +#: glossary.rst:1113 msgid "path based finder" msgstr "path based finder" -#: glossary.rst:1098 +#: glossary.rst:1115 msgid "" "One of the default :term:`meta path finders ` which " "searches an :term:`import path` for modules." @@ -2768,11 +2813,11 @@ msgstr "" "Ένα από τα προεπιλεγμένα :term:`meta path finders ` που " "αναζητά ένα :term:`import path` για modules." -#: glossary.rst:1100 +#: glossary.rst:1117 msgid "path-like object" msgstr "path-like αντικείμενο" -#: glossary.rst:1102 +#: glossary.rst:1119 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 " @@ -2793,11 +2838,11 @@ msgstr "" "ενός αποτελέσματος :class:`str` ή :class:`bytes`, αντίστοιχα. Εισήχθη από " "τον :pep:`519`." -#: glossary.rst:1110 +#: glossary.rst:1127 msgid "PEP" msgstr "PEP" -#: glossary.rst:1112 +#: glossary.rst:1129 msgid "" "Python Enhancement Proposal. A PEP is a design document providing " "information to the Python community, or describing a new feature for Python " @@ -2810,7 +2855,7 @@ msgstr "" "μια συνοπτική τεχνική προδιαγραφή και μια λογική για τα προτεινόμενα " "χαρακτηριστικά." -#: glossary.rst:1118 +#: glossary.rst:1135 msgid "" "PEPs are intended to be the primary mechanisms for proposing major new " "features, for collecting community input on an issue, and for documenting " @@ -2824,15 +2869,15 @@ msgstr "" "στην Python. Ο συγγραφέας του PEP είναι υπεύθυνος για την οικοδόμηση " "συναίνεσης εντός της κοινότητας και την τεκμηρίωση αντίθετων απόψεων." -#: glossary.rst:1124 +#: glossary.rst:1141 msgid "See :pep:`1`." msgstr "Βλ. :pep:`1`." -#: glossary.rst:1125 +#: glossary.rst:1142 msgid "portion" msgstr "τμήμα" -#: glossary.rst:1127 +#: glossary.rst:1144 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`." @@ -2841,15 +2886,15 @@ msgstr "" "αρχείο *zip*) που συμβάλλουν σε ένα namespace πακέτο, όπως ορίζεται στο :pep:" "`420`." -#: glossary.rst:1129 +#: glossary.rst:1146 msgid "positional argument" msgstr "όρισμα θέσης" -#: glossary.rst:1132 +#: glossary.rst:1149 msgid "provisional API" msgstr "provisional API" -#: glossary.rst:1134 +#: glossary.rst:1151 msgid "" "A provisional API is one which has been deliberately excluded from the " "standard library's backwards compatibility guarantees. While major changes " @@ -2868,7 +2913,7 @@ msgstr "" "αποκαλυφθούν σοβαρά θεμελιώδη ελαττώματα που παραλείφθηκαν πριν από τη " "συμπερίληψη του API." -#: glossary.rst:1143 +#: glossary.rst:1160 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 " @@ -2878,7 +2923,7 @@ msgstr "" "\"λύση έσχατης ανάγκης\"- θα εξακολουθεί να γίνεται κάθε προσπάθεια για να " "βρεθεί μια λύση backwards συμβατή σε τυχόν εντοπισμένα προβλήματα." -#: glossary.rst:1147 +#: glossary.rst:1164 msgid "" "This process allows the standard library to continue to evolve over time, " "without locking in problematic design errors for extended periods of time. " @@ -2889,19 +2934,19 @@ msgstr "" "σφάλματα σχεδιασμού για εκτεταμένες χρονικές περιόδους. Βλ. :pep:`411` για " "περισσότερες λεπτομέρειες." -#: glossary.rst:1150 +#: glossary.rst:1167 msgid "provisional package" msgstr "provisional πακέτο" -#: glossary.rst:1152 +#: glossary.rst:1169 msgid "See :term:`provisional API`." msgstr "Βλ. :term:`provisional API`." -#: glossary.rst:1153 +#: glossary.rst:1170 msgid "Python 3000" msgstr "Python 3000" -#: glossary.rst:1155 +#: glossary.rst:1172 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 " @@ -2911,11 +2956,11 @@ msgstr "" "όταν η κυκλοφορία της έκδοσης 3 ήταν κάτι στο μακρινό μέλλον.) Αυτό " "ονομάζεται επίσης ως συντομογραφία \"Py3k\"." -#: glossary.rst:1158 +#: glossary.rst:1175 msgid "Pythonic" msgstr "Pythonic" -#: glossary.rst:1160 +#: glossary.rst:1177 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 " @@ -2932,7 +2977,7 @@ msgstr "" "κατασκευής, έτσι οι άνθρωποι που δεν είναι εξοικειωμένοι με την Python " "χρησιμοποιούν μερικές φορές έναν αριθμητικό μετρητή::" -#: glossary.rst:1167 +#: glossary.rst:1184 msgid "" "for i in range(len(food)):\n" " print(food[i])" @@ -2940,11 +2985,11 @@ msgstr "" "for i in range(len(food)):\n" " print(food[i])" -#: glossary.rst:1170 +#: glossary.rst:1187 msgid "As opposed to the cleaner, Pythonic method::" msgstr "Αντίθετα, μια πιο καθαρή μέθοδος Pythonic::" -#: glossary.rst:1172 +#: glossary.rst:1189 msgid "" "for piece in food:\n" " print(piece)" @@ -2952,11 +2997,11 @@ msgstr "" "for piece in food:\n" " print(piece)" -#: glossary.rst:1174 +#: glossary.rst:1191 msgid "qualified name" msgstr "αναγνωρισμένο όνομα" -#: glossary.rst:1176 +#: glossary.rst:1193 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 " @@ -2968,7 +3013,7 @@ msgstr "" "ενότητα, όπως ορίζεται στο :pep:`3155`. Για συναρτήσεις και κλάσεις ανώτατου " "επιπέδου, το αναγνωρισμένο όνομα είναι ίδιο με το όνομα του αντικειμένου::" -#: glossary.rst:1181 +#: glossary.rst:1198 msgid "" ">>> class C:\n" "... class D:\n" @@ -2994,7 +3039,7 @@ msgstr "" ">>> C.D.meth.__qualname__\n" "'C.D.meth'" -#: glossary.rst:1193 +#: glossary.rst:1210 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." @@ -3004,7 +3049,7 @@ msgstr "" "όνομα* σημαίνει ολόκληρο το διακεκομμένο path προς το module, " "συμπεριλαμβανομένων τυχόν γονικών πακέτων π.χ. ``email.mime.text``::" -#: glossary.rst:1197 +#: glossary.rst:1214 msgid "" ">>> import email.mime.text\n" ">>> email.mime.text.__name__\n" @@ -3014,11 +3059,11 @@ msgstr "" ">>> email.mime.text.__name__\n" "'email.mime.text'" -#: glossary.rst:1200 +#: glossary.rst:1217 msgid "reference count" msgstr "πλήθος αναφοράς" -#: glossary.rst:1202 +#: glossary.rst:1219 msgid "" "The number of references to an object. When the reference count of an " "object drops to zero, it is deallocated. Some objects are :term:`immortal` " @@ -3037,11 +3082,22 @@ msgstr "" "συνάρτηση :func:`sys.getrefcount` για να επιστρέψουν το πλήθος αναφοράς για " "ένα συγκεκριμένο αντικείμενο." -#: glossary.rst:1210 +#: glossary.rst:1228 +msgid "" +"In :term:`CPython`, reference counts are not considered to be stable or well-" +"defined values; the number of references to an object, and how that number " +"is affected by Python code, may be different between versions." +msgstr "" +"Στο :term:`CPython`, τα πλήθη αναφοράς δεν θεωρούνται σταθερές ή καλά " +"ορισμένες τιμές· ο αριθμός των αναφορών σε ένα αντικείμενο και το πώς " +"αυτός ο αριθμός επηρεάζεται από τον κώδικα Python, μπορεί να διαφέρει μεταξύ " +"εκδόσεων." + +#: glossary.rst:1232 msgid "regular package" msgstr "κανονικό πακέτο" -#: glossary.rst:1212 +#: glossary.rst:1234 msgid "" "A traditional :term:`package`, such as a directory containing an ``__init__." "py`` file." @@ -3049,15 +3105,15 @@ msgstr "" "Ένα παραδοσιακό :term:`package`, όπως ένας κατάλογος που περιέχει ένα " "``__init__.py`` αρχείο." -#: glossary.rst:1215 +#: glossary.rst:1237 msgid "See also :term:`namespace package`." msgstr "Βλ. επίσης :term:`namespace package`." -#: glossary.rst:1216 +#: glossary.rst:1238 msgid "REPL" msgstr "REPL" -#: glossary.rst:1218 +#: glossary.rst:1240 msgid "" "An acronym for the \"read–eval–print loop\", another name for the :term:" "`interactive` interpreter shell." @@ -3065,11 +3121,11 @@ msgstr "" "Ακρωνύμιο του \"read–eval–print loop\", άλλη ονομασία για το :term:" "`interactive` περιβάλλον του διερμηνέα." -#: glossary.rst:1220 +#: glossary.rst:1242 msgid "__slots__" msgstr "__slots__" -#: glossary.rst:1222 +#: glossary.rst:1244 msgid "" "A declaration inside a class that saves memory by pre-declaring space for " "instance attributes and eliminating instance dictionaries. Though popular, " @@ -3083,11 +3139,11 @@ msgstr "" "σωστή και προορίζεται καλύτερα για σπάνιες περιπτώσεις όπου υπάρχει μεγάλος " "αριθμός στιγμιοτύπων σε μια εφαρμογή κρίσιμης-μνήμης." -#: glossary.rst:1227 +#: glossary.rst:1249 msgid "sequence" msgstr "ακολουθία" -#: glossary.rst:1229 +#: glossary.rst:1251 msgid "" "An :term:`iterable` which supports efficient element access using integer " "indices via the :meth:`~object.__getitem__` special method and defines a :" @@ -3108,30 +3164,30 @@ msgstr "" "ακολουθία επειδή οι αναζητήσεις χρησιμοποιούν αυθαίρετα :term:`hashable` " "κλειδιά παρά ακέραιοι." -#: glossary.rst:1238 +#: glossary.rst:1260 msgid "" "The :class:`collections.abc.Sequence` abstract base class defines a much " "richer interface that goes beyond just :meth:`~object.__getitem__` and :meth:" -"`~object.__len__`, adding :meth:`!count`, :meth:`!index`, :meth:`~object." -"__contains__`, and :meth:`~object.__reversed__`. Types that implement this " -"expanded interface can be registered explicitly using :func:`~abc.ABCMeta." -"register`. For more documentation on sequence methods generally, see :ref:" -"`Common Sequence Operations `." +"`~object.__len__`, adding :meth:`~sequence.count`, :meth:`~sequence.index`, :" +"meth:`~object.__contains__`, and :meth:`~object.__reversed__`. Types that " +"implement this expanded interface can be registered explicitly using :func:" +"`~abc.ABCMeta.register`. For more documentation on sequence methods " +"generally, see :ref:`Common Sequence Operations `." msgstr "" "Η αφηρημένη βασική κλάση :class:`collections.abc.Sequence` ορίζει μια πολύ " "πιο πλούσια διεπαφή που ξεπερνά τα απλά :meth:`~object.__getitem__` και :" -"meth:`~object.__len__`, adding :meth:`!count`, :meth:`!index`, :meth:" -"`~object.__contains__`, και :meth:`~object.__reversed__`. Οι τύποι που " -"υλοποιούν αυτήν την διευρυμένη διεπαφή μπορούν να καταχωρηθούν ρητά " -"χρησιμοποιώντας :func:`~abc.ABCMeta.register`. Για περισσότερη τεκμηρίωση " -"σχετικά με τις μεθόδους ακολουθίας γενικά, ανατρέξτε στο :ref:`Common " -"Sequence Operations `." - -#: glossary.rst:1247 +"meth:`~object.__len__`, adding :meth:`~sequence.count`, :meth:`~sequence." +"index, :meth:`~object.__contains__`, και :meth:`~object.__reversed__`. Οι " +"τύποι που υλοποιούν αυτήν την διευρυμένη διεπαφή μπορούν να καταχωρηθούν " +"ρητά χρησιμοποιώντας :func:`~abc.ABCMeta.register`. Για περισσότερη " +"τεκμηρίωση σχετικά με τις μεθόδους ακολουθίας γενικά, ανατρέξτε στο :ref:" +"`Common Sequence Operations `." + +#: glossary.rst:1270 msgid "set comprehension" msgstr "set comprehension" -#: glossary.rst:1249 +#: glossary.rst:1272 msgid "" "A compact way to process all or part of the elements in an iterable and " "return a set with the results. ``results = {c for c in 'abracadabra' if c " @@ -3143,11 +3199,11 @@ msgstr "" "c in 'abracadabra' if c not in 'abc'}`` δημιουργεί το σύνολο συμβολοσειρών " "``{'r', 'd'}``. Βλ. :ref:`comprehensions`." -#: glossary.rst:1253 +#: glossary.rst:1276 msgid "single dispatch" msgstr "μοναδικό dispatch" -#: glossary.rst:1255 +#: glossary.rst:1278 msgid "" "A form of :term:`generic function` dispatch where the implementation is " "chosen based on the type of a single argument." @@ -3155,11 +3211,11 @@ msgstr "" "Μια μορφή dispatch :term:`generic function` όπου η υλοποίηση επιλέγεται με " "βάση τον τύπο ενός μεμονωμένου ορίσματος." -#: glossary.rst:1257 +#: glossary.rst:1280 msgid "slice" msgstr "slice" -#: glossary.rst:1259 +#: glossary.rst:1282 msgid "" "An object usually containing a portion of a :term:`sequence`. A slice is " "created using the subscript notation, ``[]`` with colons between numbers " @@ -3172,11 +3228,11 @@ msgstr "" "``variable_name[1:3:5]``. Η σημείωση αγκύλης (subscript) χρησιμοποιεί " "εσωτερικά αντικείμενα :class:`slice`." -#: glossary.rst:1263 +#: glossary.rst:1286 msgid "soft deprecated" msgstr "απαρχαιωμένη με ήπιο τρόπο" -#: glossary.rst:1265 +#: glossary.rst:1288 msgid "" "A soft deprecated API should not be used in new code, but it is safe for " "already existing code to use it. The API remains documented and tested, but " @@ -3186,7 +3242,7 @@ msgstr "" "κώδικα, αλλά είναι ασφαλές σε ήδη υπάρχοντα κώδικα να το χρησιμοποιεί. Το " "API παραμένει τεκμηριωμένο και δοκιμασμένο, αλλά δεν θα ενισχυθεί περαιτέρω." -#: glossary.rst:1269 +#: glossary.rst:1292 msgid "" "Soft deprecation, unlike normal deprecation, does not plan on removing the " "API and will not emit warnings." @@ -3194,7 +3250,7 @@ msgstr "" "Η κατάργηση με ήπιο τρόπο, σε αντίθεση με την κανονική κατάργηση, δεν " "σχεδιάζει την κατάργηση του API και δεν θα εκπέμπει ειδοποιήσεις" -#: glossary.rst:1272 +#: glossary.rst:1295 msgid "" "See `PEP 387: Soft Deprecation `_." @@ -3202,11 +3258,11 @@ msgstr "" "Δείτε `PEP 387: Soft Deprecation `_." -#: glossary.rst:1274 +#: glossary.rst:1297 msgid "special method" msgstr "ειδική μέθοδος" -#: glossary.rst:1278 +#: glossary.rst:1301 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 " @@ -3218,11 +3274,37 @@ msgstr "" "έχουνε ονόματα που ξεκινούν και τελειώνουν με διπλές κάτω παύλες. Οι ειδικές " "μέθοδοι τεκμηριώνονται στο :ref:`specialnames`." -#: glossary.rst:1282 +#: glossary.rst:1305 +msgid "standard library" +msgstr "τυπική βιβλιοθήκη" + +#: glossary.rst:1307 +msgid "" +"The collection of :term:`packages `, :term:`modules ` and :" +"term:`extension modules ` distributed as a part of the " +"official Python interpreter package. The exact membership of the collection " +"may vary based on platform, available system libraries, or other criteria. " +"Documentation can be found at :ref:`library-index`." +msgstr "" +"Η συλλογή από :term:`packages `, :term:`modules ` και :" +"term:`extension modules ` που διανέμεται ως μέρος του " +"επίσημου πακέτου διερμηνέα Python. Η ακριβής συμμετοχή της συλλογής μπορεί να " +"διαφέρει ανάλογα με την πλατφόρμα, τις διαθέσιμες βιβλιοθήκες συστήματος ή άλλα " +"κριτήρια. Η τεκμηρίωση μπορεί να βρεθεί στο :ref:`library-index`." + +#: glossary.rst:1313 +msgid "" +"See also :data:`sys.stdlib_module_names` for a list of all possible standard " +"library module names." +msgstr "" +"Βλ. επίσης :data:`sys.stdlib_module_names` για μια λίστα με όλα τα " +"πιθανά ονόματα module της τυπικής βιβλιοθήκης." + +#: glossary.rst:1315 msgid "statement" msgstr "δήλωση" -#: glossary.rst:1284 +#: glossary.rst:1317 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 :" @@ -3232,11 +3314,11 @@ msgstr "" "είναι είτε ένας :term:`expression` είτε μια από πολλές δομές με μια λέξη-" "κλειδί όπως :keyword:`if`, :keyword:`while` ή :keyword:`for`." -#: glossary.rst:1287 +#: glossary.rst:1320 msgid "static type checker" msgstr "ελεγκτής στατικού τύπου" -#: glossary.rst:1289 +#: glossary.rst:1322 msgid "" "An external tool that reads Python code and analyzes it, looking for issues " "such as incorrect types. See also :term:`type hints ` and the :" @@ -3246,11 +3328,19 @@ msgstr "" "αναζητώντας προβλήματα όπως λανθασμένοι τύποι. Βλ. επίσης :term:`type hints " "` και το module :mod:`typing`." -#: glossary.rst:1292 +#: glossary.rst:1325 +msgid "stdlib" +msgstr "stdlib" + +#: glossary.rst:1327 +msgid "An abbreviation of :term:`standard library`." +msgstr "Μια συντομογραφία του :term:`standard library`." + +#: glossary.rst:1328 msgid "strong reference" msgstr "strong reference" -#: glossary.rst:1294 +#: glossary.rst:1330 msgid "" "In Python's C API, a strong reference is a reference to an object which is " "owned by the code holding the reference. The strong reference is taken by " @@ -3263,7 +3353,7 @@ msgstr "" "δημιουργείται και απελευθερώνεται με :c:func:`Py_DECREF` όταν διαγραφεί η " "αναφορά." -#: glossary.rst:1300 +#: glossary.rst:1336 msgid "" "The :c:func:`Py_NewRef` function can be used to create a strong reference to " "an object. Usually, the :c:func:`Py_DECREF` function must be called on the " @@ -3275,15 +3365,32 @@ msgstr "" "`Py_DECREF` πρέπει να καλείται στην ισχυρή αναφορά πριν βγει από το εύρος " "της ισχυρής αναφοράς, για να αποφευχθεί η διαρροή μιας αναφοράς." -#: glossary.rst:1305 +#: glossary.rst:1341 msgid "See also :term:`borrowed reference`." msgstr "Βλ. επίσης :term:`borrowed reference`." -#: glossary.rst:1306 +#: glossary.rst:1342 +msgid "t-string" +msgstr "t-string" + +#: glossary.rst:1343 +msgid "t-strings" +msgstr "t-strings" + +#: glossary.rst:1345 +msgid "" +"String literals prefixed with ``t`` or ``T`` are commonly called \"t-" +"strings\" which is short for :ref:`template string literals `." +msgstr "" +"Οι κυριολεκτικές συμβολοσειρές που χρησιμοποιούνται με πρόθεμα ``t`` or " +"``T`` ονομάζονται συνήθως \"t-strings\" που είναι συντομογραφία του :ref:" +"`template string literals `." + +#: glossary.rst:1348 msgid "text encoding" msgstr "κωδικοποίηση κειμένου" -#: glossary.rst:1308 +#: glossary.rst:1350 msgid "" "A string in Python is a sequence of Unicode code points (in range " "``U+0000``--``U+10FFFF``). To store or transfer a string, it needs to be " @@ -3293,7 +3400,7 @@ msgstr "" "εύρος ``U+0000``--``U+10FFFF``). Για να αποθηκεύσετε ή να μεταφέρετε μια " "συμβολοσειρά, πρέπει να σειριοποιηθεί ως δυαδική ακολουθία." -#: glossary.rst:1312 +#: glossary.rst:1354 msgid "" "Serializing a string into a sequence of bytes is known as \"encoding\", and " "recreating the string from the sequence of bytes is known as \"decoding\"." @@ -3302,7 +3409,7 @@ msgstr "" "\"κωδικοποίηση\" , και η αναδημιουργία της συμβολοσειράς από την δυαδική " "ακολουθία είναι γνωστή ως \"αποκωδικοποίηση\"." -#: glossary.rst:1315 +#: glossary.rst:1357 msgid "" "There are a variety of different text serialization :ref:`codecs `, which are collectively referred to as \"text encodings\"." @@ -3311,11 +3418,11 @@ msgstr "" "`, οι οποίοι συλλογικά αναφέρονται ως \"κωδικοποιήσεις " "κειμένου\"." -#: glossary.rst:1318 +#: glossary.rst:1360 msgid "text file" msgstr "αρχείο κειμένου" -#: glossary.rst:1320 +#: glossary.rst:1362 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:" @@ -3330,7 +3437,7 @@ msgstr "" "κειμένου (``'r'`` ή ``'w'``), :data:`sys.stdin`, :data:`sys.stdout`, και " "στιγμιότυπα του :class:`io.StringIO`." -#: glossary.rst:1327 +#: glossary.rst:1369 msgid "" "See also :term:`binary file` for a file object able to read and write :term:" "`bytes-like objects `." @@ -3338,11 +3445,11 @@ msgstr "" "Βλ. επίσης :term:`binary file` για ένα αντικείμενο αρχείου με δυνατότητα " "ανάγνωσης και εγγραφής :term:`δυαδικά αντικείμενα `." -#: glossary.rst:1329 +#: glossary.rst:1371 msgid "thread state" msgstr "κατάσταση νήματος" -#: glossary.rst:1332 +#: glossary.rst:1374 msgid "" "The information used by the :term:`CPython` runtime to run in an OS thread. " "For example, this includes the current exception, if any, and the state of " @@ -3353,7 +3460,7 @@ msgstr "" "περιλαμβάνει την τρέχουσα εξαίρεση, εάν υπάρχει, και την κατάσταση του " "διερμηνέα bytecode." -#: glossary.rst:1336 +#: glossary.rst:1378 msgid "" "Each thread state is bound to a single OS thread, but threads may have many " "thread states available. At most, one of them may be :term:`attached " @@ -3364,7 +3471,7 @@ msgstr "" "νήματος. Το πολύ, μία από αυτές μπορεί να είναι :term:`attached ` ταυτόχρονα." -#: glossary.rst:1340 +#: glossary.rst:1382 msgid "" "An :term:`attached thread state` is required to call most of Python's C API, " "unless a function explicitly documents otherwise. The bytecode interpreter " @@ -3375,7 +3482,7 @@ msgstr "" "το αντίθετο. Ο διερμηνέας bytecode εκτελείται μόνο υπό κατάσταση συνημμένου " "νήματος." -#: glossary.rst:1344 +#: glossary.rst:1386 msgid "" "Each thread state belongs to a single interpreter, but each interpreter may " "have many thread states, including multiple for the same OS thread. Thread " @@ -3390,7 +3497,7 @@ msgstr "" "μπορεί να είναι :term:`attached ` σε αυτό το νήμα σε " "οποιαδήποτε δεδομένη στιγμή." -#: glossary.rst:1350 +#: glossary.rst:1392 msgid "" "See :ref:`Thread State and the Global Interpreter Lock ` for more " "information." @@ -3398,11 +3505,11 @@ msgstr "" "Δείτε το :ref:`Thread State and the Global Interpreter Lock ` για " "περισσότερες πληροφορίες." -#: glossary.rst:1352 +#: glossary.rst:1394 msgid "token" msgstr "λεκτικό σύμβολο (token)" -#: glossary.rst:1355 +#: glossary.rst:1397 msgid "" "A small unit of source code, generated by the :ref:`lexical analyzer " "` (also called the *tokenizer*). Names, numbers, strings, " @@ -3413,7 +3520,7 @@ msgstr "" "συμβολοσειρές, τελεστές αλλαγές γραμμής και παρόμοια στοιχεία αναπαρίστανται " "ως λεκτικά σύμβολα (tokens)." -#: glossary.rst:1360 +#: glossary.rst:1402 msgid "" "The :mod:`tokenize` module exposes Python's lexical analyzer. The :mod:" "`token` module contains information on the various types of tokens." @@ -3422,11 +3529,11 @@ msgstr "" "mod:`token` περιέχει πληροφορίες για τους διάφορους τύπους λεκτικών συμβόλων " "(tokens)." -#: glossary.rst:1363 +#: glossary.rst:1405 msgid "triple-quoted string" msgstr "συμβολοσειρά τριπλών εισαγωγικών" -#: glossary.rst:1365 +#: glossary.rst:1407 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 " @@ -3444,11 +3551,11 @@ msgstr "" "γραμμές χωρίς τη χρήση του χαρακτήρα συνέχεια, καθιστώντας τα ιδιαίτερα " "χρήσιμα κατά τη σύνταξη εγγράφων με συμβολοσειρές." -#: glossary.rst:1372 +#: glossary.rst:1414 msgid "type" msgstr "τύπος" -#: glossary.rst:1374 +#: glossary.rst:1416 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:`~object." @@ -3459,17 +3566,17 @@ msgstr "" "το χαρακτηριστικό :attr:`~object.__class__` ή μπορεί να ανακτηθεί με " "``type(obj)``." -#: glossary.rst:1378 +#: glossary.rst:1420 msgid "type alias" msgstr "type alias" -#: glossary.rst:1380 +#: glossary.rst:1422 msgid "A synonym for a type, created by assigning the type to an identifier." msgstr "" "Ένα συνώνυμο για έναν τύπο, που δημιουργείται με την ανάθεση τύπου σε ένα " "αναγνωριστικό." -#: glossary.rst:1382 +#: glossary.rst:1424 msgid "" "Type aliases are useful for simplifying :term:`type hints `. For " "example::" @@ -3477,7 +3584,7 @@ msgstr "" "Τα type aliases είναι χρήσιμα για την απλοποίηση :term:`type alias `. Για παράδειγμα::" -#: glossary.rst:1385 +#: glossary.rst:1427 msgid "" "def remove_gray_shades(\n" " colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]:\n" @@ -3487,11 +3594,11 @@ msgstr "" " colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]:\n" " pass" -#: glossary.rst:1389 +#: glossary.rst:1431 msgid "could be made more readable like this::" msgstr "μπορεί να γίνει πιο ευανάγνωστο όπως::" -#: glossary.rst:1391 +#: glossary.rst:1433 msgid "" "Color = tuple[int, int, int]\n" "\n" @@ -3503,16 +3610,16 @@ msgstr "" "def remove_gray_shades(colors: list[Color]) -> list[Color]:\n" " pass" -#: glossary.rst:1410 +#: glossary.rst:1452 msgid "See :mod:`typing` and :pep:`484`, which describe this functionality." msgstr "" "Βλ. :mod:`typing` και :pep:`484`, που περιγράφει αυτήν την λειτουργικότητα." -#: glossary.rst:1397 +#: glossary.rst:1439 msgid "type hint" msgstr "type hint" -#: glossary.rst:1399 +#: glossary.rst:1441 msgid "" "An :term:`annotation` that specifies the expected type for a variable, a " "class attribute, or a function parameter or return value." @@ -3521,7 +3628,7 @@ msgstr "" "μεταβλητή, ένα χαρακτηριστικό κλάσης ή μια παράμετρο συνάρτησης ή τιμή " "επιστροφής." -#: glossary.rst:1402 +#: glossary.rst:1444 msgid "" "Type hints are optional and are not enforced by Python but they are useful " "to :term:`static type checkers `. They can also aid " @@ -3532,7 +3639,7 @@ msgstr "" "checker>`. Μπορούν επίσης να βοηθήσουν τους IDEs με τη συμπλήρωση και την " "αναδιαμόρφωση κώδικα." -#: glossary.rst:1406 +#: glossary.rst:1448 msgid "" "Type hints of global variables, class attributes, and functions, but not " "local variables, can be accessed using :func:`typing.get_type_hints`." @@ -3541,11 +3648,11 @@ msgstr "" "κλάσης και συναρτήσεις , αλλά όχι τοπικές μεταβλητές, μπορούν να " "προσπελαστούν χρησιμοποιώντας το :func:`typing.get_type_hints`." -#: glossary.rst:1411 +#: glossary.rst:1453 msgid "universal newlines" msgstr "καθολικές νέες γραμμές" -#: glossary.rst:1413 +#: glossary.rst:1455 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 " @@ -3559,22 +3666,22 @@ msgstr "" "Βλ. :pep:`278` και :pep:`3116`, καθώς και :func:`bytes.splitlines` για " "πρόσθετη χρήση." -#: glossary.rst:1418 +#: glossary.rst:1460 msgid "variable annotation" msgstr "annotation μεταβλητής" -#: glossary.rst:1420 +#: glossary.rst:1462 msgid "An :term:`annotation` of a variable or a class attribute." msgstr "Ένας :term:`annotation` μια μεταβλητής ή ενός χαρακτηριστικού κλάσης." -#: glossary.rst:1422 +#: glossary.rst:1464 msgid "" "When annotating a variable or a class attribute, assignment is optional::" msgstr "" "Όταν annotating μια μεταβλητή ή ένα χαρακτηριστικό κλάσης, η ανάθεση είναι " "προαιρετική::" -#: glossary.rst:1424 +#: glossary.rst:1466 msgid "" "class C:\n" " field: 'annotation'" @@ -3582,7 +3689,7 @@ msgstr "" "class C:\n" " field: 'annotation'" -#: glossary.rst:1427 +#: glossary.rst:1469 msgid "" "Variable annotations are usually used for :term:`type hints `: " "for example this variable is expected to take :class:`int` values::" @@ -3591,16 +3698,16 @@ msgstr "" "`: για παράδειγμα αυτή η μεταβλητή αναμένεται να λάβει τιμές :" "class:`int`::" -#: glossary.rst:1431 +#: glossary.rst:1473 msgid "count: int = 0" msgstr "count: int = 0" -#: glossary.rst:1433 +#: glossary.rst:1475 msgid "Variable annotation syntax is explained in section :ref:`annassign`." msgstr "" "Η σύνταξη annotation μεταβλητής περιγράφεται στην ενότητα :ref:`annassign`." -#: glossary.rst:1435 +#: glossary.rst:1477 msgid "" "See :term:`function annotation`, :pep:`484` and :pep:`526`, which describe " "this functionality. Also see :ref:`annotations-howto` for best practices on " @@ -3610,11 +3717,11 @@ msgstr "" "αυτή τη λειτουργία. Δείτε επίσης :ref:`annotations-howto` για βέλτιστες " "πρακτικές σχετικά με την εργασία με σχολιασμούς." -#: glossary.rst:1439 +#: glossary.rst:1481 msgid "virtual environment" msgstr "virtual environment" -#: glossary.rst:1441 +#: glossary.rst:1483 msgid "" "A cooperatively isolated runtime environment that allows Python users and " "applications to install and upgrade Python distribution packages without " @@ -3626,15 +3733,15 @@ msgstr "" "πακέτα διανομής Python χωρίς να παρεμβαίνουν στη συμπεριφορά άλλων εφαρμογών " "Python που εκτελούνται στο ίδιο σύστημα." -#: glossary.rst:1446 +#: glossary.rst:1488 msgid "See also :mod:`venv`." msgstr "Βλ. επίσης :mod:`venv`." -#: glossary.rst:1447 +#: glossary.rst:1489 msgid "virtual machine" msgstr "virtual machine" -#: glossary.rst:1449 +#: glossary.rst:1491 msgid "" "A computer defined entirely in software. Python's virtual machine executes " "the :term:`bytecode` emitted by the bytecode compiler." @@ -3643,11 +3750,25 @@ msgstr "" "της Python εκτελεί το :term:`bytecode` που εκπέμπεται από τον μεταγλωττιστή " "bytecode." -#: glossary.rst:1451 +#: glossary.rst:1493 +msgid "walrus operator" +msgstr "τελεστής walrus" + +#: glossary.rst:1495 +msgid "" +"A light-hearted way to refer to the :ref:`assignment expression ` operator ``:=`` because it looks a bit like a walrus if you " +"turn your head." +msgstr "" +"Μια ελαφρώς χιουμοριστική αναφορά στον :ref:`τελεστή εκχώρησης ` ``:=`` επειδή μοιάζει λίγο με έναν θαλάσσιο ίππο αν γυρίσετε το " +"κεφάλι σας." + +#: glossary.rst:1498 msgid "Zen of Python" msgstr "Zen της Python" -#: glossary.rst:1453 +#: glossary.rst:1500 msgid "" "Listing of Python design principles and philosophies that are helpful in " "understanding and using the language. The listing can be found by typing " @@ -3657,22 +3778,33 @@ msgstr "" "κατανόηση και τη χρήση της γλώσσας. Ο κατάλογος μπορεί να βρεθεί " "πληκτρολογώντας \"``import this``\" στην διαδραστική κονσόλα." -#: glossary.rst:319 +#: glossary.rst:24 +msgid "..." +msgstr "..." + +#: glossary.rst:24 +msgid "ellipsis literal" +msgstr "ellipsis literal" + +#: glossary.rst:321 msgid "C-contiguous" msgstr "C-contiguous" -#: glossary.rst:319 +#: glossary.rst:321 msgid "Fortran contiguous" msgstr "Fortran contiguous" -#: glossary.rst:876 +#: glossary.rst:884 msgid "magic" msgstr "magic" -#: glossary.rst:1276 +#: glossary.rst:1299 msgid "special" msgstr "special" +#~ msgid "The :const:`Ellipsis` built-in constant." +#~ msgstr "Η ενσωματωμένη σταθερά :const:`Ellipsis`." + #~ msgid "2to3" #~ msgstr "2to3" diff --git a/howto/a-conceptual-overview-of-asyncio.po b/howto/a-conceptual-overview-of-asyncio.po new file mode 100644 index 00000000..0d0b6f5b --- /dev/null +++ b/howto/a-conceptual-overview-of-asyncio.po @@ -0,0 +1,812 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 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.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: howto/a-conceptual-overview-of-asyncio.rst:5 +msgid "A Conceptual Overview of :mod:`!asyncio`" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:7 +msgid "" +"This :ref:`HOWTO ` article seeks to help you build a sturdy mental " +"model of how :mod:`asyncio` fundamentally works, helping you understand the " +"how and why behind the recommended patterns." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:11 +msgid "" +"You might be curious about some key :mod:`!asyncio` concepts. By the end of " +"this article, you'll be able to comfortably answer these questions:" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:14 +msgid "What's happening behind the scenes when an object is awaited?" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:15 +msgid "" +"How does :mod:`!asyncio` differentiate between a task which doesn't need CPU " +"time (such as a network request or file read) as opposed to a task that does " +"(such as computing n-factorial)?" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:18 +msgid "" +"How to write an asynchronous variant of an operation, such as an async sleep " +"or database request." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:23 +msgid "" +"The `guide `_ that inspired this HOWTO article, by Alexander Nordin." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:25 +msgid "" +"This in-depth `YouTube tutorial series `_ on ``asyncio`` " +"created by Python core team member, Łukasz Langa." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:28 +msgid "" +"`500 Lines or Less: A Web Crawler With asyncio Coroutines `_ by A. Jesse Jiryu " +"Davis and Guido van Rossum." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:34 +msgid "A conceptual overview part 1: the high-level" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:36 +msgid "" +"In part 1, we'll cover the main, high-level building blocks of :mod:`!" +"asyncio`: the event loop, coroutine functions, coroutine objects, tasks, and " +"``await``." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:41 +msgid "Event Loop" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:43 +msgid "" +"Everything in :mod:`!asyncio` happens relative to the event loop. It's the " +"star of the show. It's like an orchestra conductor. It's behind the scenes " +"managing resources. Some power is explicitly granted to it, but a lot of its " +"ability to get things done comes from the respect and cooperation of its " +"worker bees." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:50 +msgid "" +"In more technical terms, the event loop contains a collection of jobs to be " +"run. Some jobs are added directly by you, and some indirectly by :mod:`!" +"asyncio`. The event loop takes a job from its backlog of work and invokes it " +"(or \"gives it control\"), similar to calling a function, and then that job " +"runs. Once it pauses or completes, it returns control to the event loop. The " +"event loop will then select another job from its pool and invoke it. You can " +"*roughly* think of the collection of jobs as a queue: jobs are added and " +"then processed one at a time, generally (but not always) in order. This " +"process repeats indefinitely, with the event loop cycling endlessly onwards. " +"If there are no more jobs pending execution, the event loop is smart enough " +"to rest and avoid needlessly wasting CPU cycles, and will come back when " +"there's more work to be done." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:64 +msgid "" +"Effective execution relies on jobs sharing well and cooperating; a greedy " +"job could hog control and leave the other jobs to starve, rendering the " +"overall event loop approach rather useless." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:70 +msgid "" +"import asyncio\n" +"\n" +"# This creates an event loop and indefinitely cycles through\n" +"# its collection of jobs.\n" +"event_loop = asyncio.new_event_loop()\n" +"event_loop.run_forever()" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:79 +msgid "Asynchronous functions and coroutines" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:81 +msgid "This is a basic, boring Python function::" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:83 +msgid "" +"def hello_printer():\n" +" print(\n" +" \"Hi, I am a lowly, simple printer, though I have all I \"\n" +" \"need in life -- \\nfresh paper and my dearly beloved octopus \"\n" +" \"partner in crime.\"\n" +" )" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:90 +msgid "Calling a regular function invokes its logic or body::" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:92 +msgid "" +">>> hello_printer()\n" +"Hi, I am a lowly, simple printer, though I have all I need in life --\n" +"fresh paper and my dearly beloved octopus partner in crime." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:96 +msgid "" +"The :ref:`async def `, as opposed to just a plain ``def``, makes " +"this an asynchronous function (or \"coroutine function\"). Calling it " +"creates and returns a :ref:`coroutine ` object." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:102 +msgid "" +"async def loudmouth_penguin(magic_number: int):\n" +" print(\n" +" \"I am a super special talking penguin. Far cooler than that printer. " +"\"\n" +" f\"By the way, my lucky number is: {magic_number}.\"\n" +" )" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:108 +msgid "" +"Calling the async function, ``loudmouth_penguin``, does not execute the " +"print statement; instead, it creates a coroutine object::" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:111 +msgid "" +">>> loudmouth_penguin(magic_number=3)\n" +"" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:114 +msgid "" +"The terms \"coroutine function\" and \"coroutine object\" are often " +"conflated as coroutine. That can be confusing! In this article, coroutine " +"specifically refers to a coroutine object, or more precisely, an instance " +"of :data:`types.CoroutineType` (native coroutine). Note that coroutines can " +"also exist as instances of :class:`collections.abc.Coroutine` -- a " +"distinction that matters for type checking." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:123 +msgid "" +"A coroutine represents the function's body or logic. A coroutine has to be " +"explicitly started; again, merely creating the coroutine does not start it. " +"Notably, the coroutine can be paused and resumed at various points within " +"the function's body. That pausing and resuming ability is what allows for " +"asynchronous behavior!" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:130 +msgid "" +"Coroutines and coroutine functions were built by leveraging the " +"functionality of :term:`generators ` and :term:" +"`generator functions `. Recall, a generator function is a " +"function that :keyword:`yield`\\s, like this one::" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:136 +msgid "" +"def get_random_number():\n" +" # This would be a bad random number generator!\n" +" print(\"Hi\")\n" +" yield 1\n" +" print(\"Hello\")\n" +" yield 7\n" +" print(\"Howdy\")\n" +" yield 4\n" +" ..." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:146 +msgid "" +"Similar to a coroutine function, calling a generator function does not run " +"it. Instead, it creates a generator object::" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:149 +msgid "" +">>> get_random_number()\n" +"" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:152 +msgid "" +"You can proceed to the next ``yield`` of a generator by using the built-in " +"function :func:`next`. In other words, the generator runs, then pauses. For " +"example::" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:157 +msgid "" +">>> generator = get_random_number()\n" +">>> next(generator)\n" +"Hi\n" +"1\n" +">>> next(generator)\n" +"Hello\n" +"7" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:167 +msgid "Tasks" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:169 +msgid "" +"Roughly speaking, :ref:`tasks ` are coroutines (not " +"coroutine functions) tied to an event loop. A task also maintains a list of " +"callback functions whose importance will become clear in a moment when we " +"discuss :keyword:`await`. The recommended way to create tasks is via :func:" +"`asyncio.create_task`." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:175 +msgid "" +"Creating a task automatically schedules it for execution (by adding a " +"callback to run it in the event loop's to-do list, that is, collection of " +"jobs)." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:178 +msgid "" +":mod:`!asyncio` automatically associates tasks with the event loop for you. " +"This automatic association was purposely designed into :mod:`!asyncio` for " +"the sake of simplicity. Without it, you'd have to keep track of the event " +"loop object and pass it to any coroutine function that wants to create " +"tasks, adding redundant clutter to your code." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:187 +msgid "" +"coroutine = loudmouth_penguin(magic_number=5)\n" +"# This creates a Task object and schedules its execution via the event " +"loop.\n" +"task = asyncio.create_task(coroutine)" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:191 +msgid "" +"Earlier, we manually created the event loop and set it to run forever. In " +"practice, it's recommended to use (and common to see) :func:`asyncio.run`, " +"which takes care of managing the event loop and ensuring the provided " +"coroutine finishes before advancing. For example, many async programs follow " +"this setup::" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:197 +msgid "" +"import asyncio\n" +"\n" +"async def main():\n" +" # Perform all sorts of wacky, wild asynchronous things...\n" +" ...\n" +"\n" +"if __name__ == \"__main__\":\n" +" asyncio.run(main())\n" +" # The program will not reach the following print statement until the\n" +" # coroutine main() finishes.\n" +" print(\"coroutine main() is done!\")" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:209 +msgid "" +"It's important to be aware that the task itself is not added to the event " +"loop, only a callback to the task is. This matters if the task object you " +"created is garbage collected before it's called by the event loop. For " +"example, consider this program:" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:215 +msgid "" +"async def hello():\n" +" print(\"hello!\")\n" +"\n" +"async def main():\n" +" asyncio.create_task(hello())\n" +" # Other asynchronous instructions which run for a while\n" +" # and cede control to the event loop...\n" +" ...\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:229 +msgid "" +"Because there's no reference to the task object created on line 5, it " +"*might* be garbage collected before the event loop invokes it. Later " +"instructions in the coroutine ``main()`` hand control back to the event loop " +"so it can invoke other jobs. When the event loop eventually tries to run the " +"task, it might fail and discover the task object does not exist! This can " +"also happen even if a coroutine keeps a reference to a task but completes " +"before that task finishes. When the coroutine exits, local variables go out " +"of scope and may be subject to garbage collection. In practice, ``asyncio`` " +"and Python's garbage collector work pretty hard to ensure this sort of thing " +"doesn't happen. But that's no reason to be reckless!" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:245 +msgid "await" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:247 +msgid "" +":keyword:`await` is a Python keyword that's commonly used in one of two " +"different ways::" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:250 +msgid "" +"await task\n" +"await coroutine" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:253 +msgid "" +"In a crucial way, the behavior of ``await`` depends on the type of object " +"being awaited." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:256 +msgid "" +"Awaiting a task will cede control from the current task or coroutine to the " +"event loop. In the process of relinquishing control, a few important things " +"happen. We'll use the following code example to illustrate::" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:261 +msgid "" +"async def plant_a_tree():\n" +" dig_the_hole_task = asyncio.create_task(dig_the_hole())\n" +" await dig_the_hole_task\n" +"\n" +" # Other instructions associated with planting a tree.\n" +" ..." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:268 +msgid "" +"In this example, imagine the event loop has passed control to the start of " +"the coroutine ``plant_a_tree()``. As seen above, the coroutine creates a " +"task and then awaits it. The ``await dig_the_hole_task`` instruction adds a " +"callback (which will resume ``plant_a_tree()``) to the ``dig_the_hole_task`` " +"object's list of callbacks. And then, the instruction cedes control to the " +"event loop. Some time later, the event loop will pass control to " +"``dig_the_hole_task`` and the task will finish whatever it needs to do. Once " +"the task finishes, it will add its various callbacks to the event loop, in " +"this case, a call to resume ``plant_a_tree()``." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:279 +msgid "" +"Generally speaking, when the awaited task finishes (``dig_the_hole_task``), " +"the original task or coroutine (``plant_a_tree()``) is added back to the " +"event loop's to-do list to be resumed." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:283 +msgid "" +"This is a basic, yet reliable mental model. In practice, the control " +"handoffs are slightly more complex, but not by much. In part 2, we'll walk " +"through the details that make this possible." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:287 +msgid "" +"**Unlike tasks, awaiting a coroutine does not hand control back to the event " +"loop!** Wrapping a coroutine in a task first, then awaiting that would cede " +"control. The behavior of ``await coroutine`` is effectively the same as " +"invoking a regular, synchronous Python function. Consider this program::" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:295 +msgid "" +"import asyncio\n" +"\n" +"async def coro_a():\n" +" print(\"I am coro_a(). Hi!\")\n" +"\n" +"async def coro_b():\n" +" print(\"I am coro_b(). I sure hope no one hogs the event loop...\")\n" +"\n" +"async def main():\n" +" task_b = asyncio.create_task(coro_b())\n" +" num_repeats = 3\n" +" for _ in range(num_repeats):\n" +" await coro_a()\n" +" await task_b\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:312 +msgid "" +"The first statement in the coroutine ``main()`` creates ``task_b`` and " +"schedules it for execution via the event loop. Then, ``coro_a()`` is " +"repeatedly awaited. Control never cedes to the event loop, which is why we " +"see the output of all three ``coro_a()`` invocations before ``coro_b()``'s " +"output:" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:318 +msgid "" +"I am coro_a(). Hi!\n" +"I am coro_a(). Hi!\n" +"I am coro_a(). Hi!\n" +"I am coro_b(). I sure hope no one hogs the event loop..." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:325 +msgid "" +"If we change ``await coro_a()`` to ``await asyncio.create_task(coro_a())``, " +"the behavior changes. The coroutine ``main()`` cedes control to the event " +"loop with that statement. The event loop then proceeds through its backlog " +"of work, calling ``task_b`` and then the task which wraps ``coro_a()`` " +"before resuming the coroutine ``main()``." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:332 +msgid "" +"I am coro_b(). I sure hope no one hogs the event loop...\n" +"I am coro_a(). Hi!\n" +"I am coro_a(). Hi!\n" +"I am coro_a(). Hi!" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:339 +msgid "" +"This behavior of ``await coroutine`` can trip a lot of people up! That " +"example highlights how using only ``await coroutine`` could unintentionally " +"hog control from other tasks and effectively stall the event loop. :func:" +"`asyncio.run` can help you detect such occurrences via the ``debug=True`` " +"flag, which enables :ref:`debug mode `. Among other " +"things, it will log any coroutines that monopolize execution for 100ms or " +"longer." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:349 +msgid "" +"The design intentionally trades off some conceptual clarity around usage of " +"``await`` for improved performance. Each time a task is awaited, control " +"needs to be passed all the way up the call stack to the event loop. That " +"might sound minor, but in a large program with many ``await`` statements and " +"a deep call stack, that overhead can add up to a meaningful performance drag." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:358 +msgid "A conceptual overview part 2: the nuts and bolts" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:360 +msgid "" +"Part 2 goes into detail on the mechanisms :mod:`!asyncio` uses to manage " +"control flow. This is where the magic happens. You'll come away from this " +"section knowing what ``await`` does behind the scenes and how to make your " +"own asynchronous operators." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:368 +msgid "The inner workings of coroutines" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:370 +msgid ":mod:`!asyncio` leverages four components to pass around control." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:372 +msgid "" +":meth:`coroutine.send(arg) ` is the method used to start or " +"resume a coroutine. If the coroutine was paused and is now being resumed, " +"the argument ``arg`` will be sent in as the return value of the ``yield`` " +"statement which originally paused it. If the coroutine is being used for the " +"first time (as opposed to being resumed), ``arg`` must be ``None``." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:380 +msgid "" +"class Rock:\n" +" def __await__(self):\n" +" value_sent_in = yield 7\n" +" print(f\"Rock.__await__ resuming with value: {value_sent_in}.\")\n" +" return value_sent_in\n" +"\n" +"async def main():\n" +" print(\"Beginning coroutine main().\")\n" +" rock = Rock()\n" +" print(\"Awaiting rock...\")\n" +" value_from_rock = await rock\n" +" print(f\"Coroutine received value: {value_from_rock} from rock.\")\n" +" return 23\n" +"\n" +"coroutine = main()\n" +"intermediate_result = coroutine.send(None)\n" +"print(f\"Coroutine paused and returned intermediate value: " +"{intermediate_result}.\")\n" +"\n" +"print(f\"Resuming coroutine and sending in value: 42.\")\n" +"try:\n" +" coroutine.send(42)\n" +"except StopIteration as e:\n" +" returned_value = e.value\n" +"print(f\"Coroutine main() finished and provided value: {returned_value}.\")" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:408 +msgid "" +":ref:`yield `, as usual, pauses execution and returns control to " +"the caller. In the example above, the ``yield``, on line 3, is called by " +"``... = await rock`` on line 11. More broadly speaking, ``await`` calls the :" +"meth:`~object.__await__` method of the given object. ``await`` also does one " +"more very special thing: it propagates (or \"passes along\") any ``yield``\\ " +"s it receives up the call chain. In this case, that's back to ``... = " +"coroutine.send(None)`` on line 16." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:418 +msgid "" +"The coroutine is resumed via the ``coroutine.send(42)`` call on line 21. The " +"coroutine picks back up from where it ``yield``\\ ed (or paused) on line 3 " +"and executes the remaining statements in its body. When a coroutine " +"finishes, it raises a :exc:`StopIteration` exception with the return value " +"attached in the :attr:`~StopIteration.value` attribute." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:424 +msgid "That snippet produces this output:" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:426 +msgid "" +"Beginning coroutine main().\n" +"Awaiting rock...\n" +"Coroutine paused and returned intermediate value: 7.\n" +"Resuming coroutine and sending in value: 42.\n" +"Rock.__await__ resuming with value: 42.\n" +"Coroutine received value: 42 from rock.\n" +"Coroutine main() finished and provided value: 23." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:436 +msgid "" +"It's worth pausing for a moment here and making sure you followed the " +"various ways that control flow and values were passed. A lot of important " +"ideas were covered and it's worth ensuring your understanding is firm." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:440 +msgid "" +"The only way to yield (or effectively cede control) from a coroutine is to " +"``await`` an object that ``yield``\\ s in its ``__await__`` method. That " +"might sound odd to you. You might be thinking:" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:444 +msgid "" +"1. What about a ``yield`` directly within the coroutine function? The " +"coroutine function becomes an :ref:`async generator function `, a different beast entirely." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:449 +msgid "" +"2. What about a :ref:`yield from ` within the coroutine function " +"to a (plain) generator? That causes the error: ``SyntaxError: yield from not " +"allowed in a coroutine.`` This was intentionally designed for the sake of " +"simplicity -- mandating only one way of using coroutines. Initially " +"``yield`` was barred as well, but was re-accepted to allow for async " +"generators. Despite that, ``yield from`` and ``await`` effectively do the " +"same thing." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:460 +msgid "Futures" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:462 +msgid "" +"A :ref:`future ` is an object meant to represent a " +"computation's status and result. The term is a nod to the idea of something " +"still to come or not yet happened, and the object is a way to keep an eye on " +"that something." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:467 +msgid "" +"A future has a few important attributes. One is its state, which can be " +"either \"pending\", \"cancelled\", or \"done\". Another is its result, which " +"is set when the state transitions to done. Unlike a coroutine, a future does " +"not represent the actual computation to be done; instead, it represents the " +"status and result of that computation, kind of like a status light (red, " +"yellow, or green) or indicator." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:474 +msgid "" +":class:`asyncio.Task` subclasses :class:`asyncio.Future` in order to gain " +"these various capabilities. The prior section said tasks store a list of " +"callbacks, which wasn't entirely accurate. It's actually the ``Future`` " +"class that implements this logic, which ``Task`` inherits." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:481 +msgid "" +"Futures may also be used directly (not via tasks). Tasks mark themselves as " +"done when their coroutine is complete. Futures are much more versatile and " +"will be marked as done when you say so. In this way, they're the flexible " +"interface for you to make your own conditions for waiting and resuming." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:489 +msgid "A homemade asyncio.sleep" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:491 +msgid "" +"We'll go through an example of how you could leverage a future to create " +"your own variant of asynchronous sleep (``async_sleep``) which mimics :func:" +"`asyncio.sleep`." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:495 +msgid "" +"This snippet registers a few tasks with the event loop and then awaits the " +"task created by ``asyncio.create_task``, which wraps the ``async_sleep(3)`` " +"coroutine. We want that task to finish only after three seconds have " +"elapsed, but without preventing other tasks from running." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:502 +msgid "" +"async def other_work():\n" +" print(\"I like work. Work work.\")\n" +"\n" +"async def main():\n" +" # Add a few other tasks to the event loop, so there's something\n" +" # to do while asynchronously sleeping.\n" +" work_tasks = [\n" +" asyncio.create_task(other_work()),\n" +" asyncio.create_task(other_work()),\n" +" asyncio.create_task(other_work())\n" +" ]\n" +" print(\n" +" \"Beginning asynchronous sleep at time: \"\n" +" f\"{datetime.datetime.now().strftime(\"%H:%M:%S\")}.\"\n" +" )\n" +" await asyncio.create_task(async_sleep(3))\n" +" print(\n" +" \"Done asynchronous sleep at time: \"\n" +" f\"{datetime.datetime.now().strftime(\"%H:%M:%S\")}.\"\n" +" )\n" +" # asyncio.gather effectively awaits each task in the collection.\n" +" await asyncio.gather(*work_tasks)" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:526 +msgid "" +"Below, we use a future to enable custom control over when that task will be " +"marked as done. If :meth:`future.set_result() ` " +"(the method responsible for marking that future as done) is never called, " +"then this task will never finish. We've also enlisted the help of another " +"task, which we'll see in a moment, that will monitor how much time has " +"elapsed and, accordingly, call ``future.set_result()``." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:537 +msgid "" +"async def async_sleep(seconds: float):\n" +" future = asyncio.Future()\n" +" time_to_wake = time.time() + seconds\n" +" # Add the watcher-task to the event loop.\n" +" watcher_task = asyncio.create_task(_sleep_watcher(future, " +"time_to_wake))\n" +" # Block until the future is marked as done.\n" +" await future" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:545 +msgid "" +"Below, we use a rather bare ``YieldToEventLoop()`` object to ``yield`` from " +"its ``__await__`` method, ceding control to the event loop. This is " +"effectively the same as calling ``asyncio.sleep(0)``, but this approach " +"offers more clarity, not to mention it's somewhat cheating to use ``asyncio." +"sleep`` when showcasing how to implement it!" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:551 +msgid "" +"As usual, the event loop cycles through its tasks, giving them control and " +"receiving control back when they pause or finish. The ``watcher_task``, " +"which runs the coroutine ``_sleep_watcher(...)``, will be invoked once per " +"full cycle of the event loop. On each resumption, it'll check the time and " +"if not enough has elapsed, then it'll pause once again and hand control back " +"to the event loop. Once enough time has elapsed, ``_sleep_watcher(...)`` " +"marks the future as done and completes by exiting its infinite ``while`` " +"loop. Given this helper task is only invoked once per cycle of the event " +"loop, you'd be correct to note that this asynchronous sleep will sleep *at " +"least* three seconds, rather than exactly three seconds. Note this is also " +"true of ``asyncio.sleep``." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:567 +msgid "" +"class YieldToEventLoop:\n" +" def __await__(self):\n" +" yield\n" +"\n" +"async def _sleep_watcher(future, time_to_wake):\n" +" while True:\n" +" if time.time() >= time_to_wake:\n" +" # This marks the future as done.\n" +" future.set_result(None)\n" +" break\n" +" else:\n" +" await YieldToEventLoop()" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:580 +msgid "Here is the full program's output:" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:582 +msgid "" +"$ python custom-async-sleep.py\n" +"Beginning asynchronous sleep at time: 14:52:22.\n" +"I like work. Work work.\n" +"I like work. Work work.\n" +"I like work. Work work.\n" +"Done asynchronous sleep at time: 14:52:25." +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:591 +msgid "" +"You might feel this implementation of asynchronous sleep was unnecessarily " +"convoluted. And, well, it was. The example was meant to showcase the " +"versatility of futures with a simple example that could be mimicked for more " +"complex needs. For reference, you could implement it without futures, like " +"so::" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:598 +msgid "" +"async def simpler_async_sleep(seconds):\n" +" time_to_wake = time.time() + seconds\n" +" while True:\n" +" if time.time() >= time_to_wake:\n" +" return\n" +" else:\n" +" await YieldToEventLoop()" +msgstr "" + +#: howto/a-conceptual-overview-of-asyncio.rst:606 +msgid "" +"But that's all for now. Hopefully you're ready to more confidently dive into " +"some async programming or check out advanced topics in the :mod:`rest of the " +"documentation `." +msgstr "" diff --git a/howto/annotations.po b/howto/annotations.po index ffa44f85..1738f41c 100644 --- a/howto/annotations.po +++ b/howto/annotations.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/howto/argparse-optparse.po b/howto/argparse-optparse.po index b2a619c1..7e115b6c 100644 --- a/howto/argparse-optparse.po +++ b/howto/argparse-optparse.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/howto/argparse.po b/howto/argparse.po index dffe068a..824c67d9 100644 --- a/howto/argparse.po +++ b/howto/argparse.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/howto/clinic.po b/howto/clinic.po index f0c5c5d7..82b3340a 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/howto/cporting.po b/howto/cporting.po index 6b178f39..9472b769 100644 --- a/howto/cporting.po +++ b/howto/cporting.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/howto/curses.po b/howto/curses.po index 70698e6a..54e9e397 100644 --- a/howto/curses.po +++ b/howto/curses.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/howto/descriptor.po b/howto/descriptor.po index e6faae49..ffc20006 100644 --- a/howto/descriptor.po +++ b/howto/descriptor.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -579,7 +579,7 @@ msgid "" "\n" " def validate(self, value):\n" " if not isinstance(value, str):\n" -" raise TypeError(f'Expected {value!r} to be an str')\n" +" raise TypeError(f'Expected {value!r} to be a str')\n" " if self.minsize is not None and len(value) < self.minsize:\n" " raise ValueError(\n" " f'Expected {value!r} to be no smaller than {self.minsize!" diff --git a/howto/enum.po b/howto/enum.po index 029e26ec..9b6ca336 100644 --- a/howto/enum.po +++ b/howto/enum.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1499,13 +1499,13 @@ msgstr "" #: howto/enum.rst:993 msgid "" -":meth:`~EnumType._add_alias_` -- adds a new name as an alias to an existing " +":meth:`~Enum._add_alias_` -- adds a new name as an alias to an existing " "member." msgstr "" #: howto/enum.rst:995 msgid "" -":meth:`~EnumType._add_value_alias_` -- adds a new value as an alias to an " +":meth:`~Enum._add_value_alias_` -- adds a new value as an alias to an " "existing member. See `MultiValueEnum`_ for an example." msgstr "" diff --git a/howto/free-threading-extensions.po b/howto/free-threading-extensions.po index be4ee690..ca778696 100644 --- a/howto/free-threading-extensions.po +++ b/howto/free-threading-extensions.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -234,76 +234,81 @@ msgid ":c:func:`PyList_GetItem`" msgstr "" #: howto/free-threading-extensions.rst:162 +#: howto/free-threading-extensions.rst:164 msgid ":c:func:`PyList_GetItemRef`" msgstr "" #: howto/free-threading-extensions.rst:164 +msgid ":c:func:`PyList_GET_ITEM`" +msgstr "" + +#: howto/free-threading-extensions.rst:166 msgid ":c:func:`PyDict_GetItem`" msgstr "" -#: howto/free-threading-extensions.rst:164 #: howto/free-threading-extensions.rst:166 +#: howto/free-threading-extensions.rst:168 msgid ":c:func:`PyDict_GetItemRef`" msgstr "" -#: howto/free-threading-extensions.rst:166 +#: howto/free-threading-extensions.rst:168 msgid ":c:func:`PyDict_GetItemWithError`" msgstr "" -#: howto/free-threading-extensions.rst:168 +#: howto/free-threading-extensions.rst:170 msgid ":c:func:`PyDict_GetItemString`" msgstr "" -#: howto/free-threading-extensions.rst:168 +#: howto/free-threading-extensions.rst:170 msgid ":c:func:`PyDict_GetItemStringRef`" msgstr "" -#: howto/free-threading-extensions.rst:170 +#: howto/free-threading-extensions.rst:172 msgid ":c:func:`PyDict_SetDefault`" msgstr "" -#: howto/free-threading-extensions.rst:170 +#: howto/free-threading-extensions.rst:172 msgid ":c:func:`PyDict_SetDefaultRef`" msgstr "" -#: howto/free-threading-extensions.rst:172 +#: howto/free-threading-extensions.rst:174 msgid ":c:func:`PyDict_Next`" msgstr "" -#: howto/free-threading-extensions.rst:172 +#: howto/free-threading-extensions.rst:174 msgid "none (see :ref:`PyDict_Next`)" msgstr "" -#: howto/free-threading-extensions.rst:174 +#: howto/free-threading-extensions.rst:176 msgid ":c:func:`PyWeakref_GetObject`" msgstr "" -#: howto/free-threading-extensions.rst:174 #: howto/free-threading-extensions.rst:176 +#: howto/free-threading-extensions.rst:178 msgid ":c:func:`PyWeakref_GetRef`" msgstr "" -#: howto/free-threading-extensions.rst:176 +#: howto/free-threading-extensions.rst:178 msgid ":c:func:`PyWeakref_GET_OBJECT`" msgstr "" -#: howto/free-threading-extensions.rst:178 +#: howto/free-threading-extensions.rst:180 msgid ":c:func:`PyImport_AddModule`" msgstr "" -#: howto/free-threading-extensions.rst:178 +#: howto/free-threading-extensions.rst:180 msgid ":c:func:`PyImport_AddModuleRef`" msgstr "" -#: howto/free-threading-extensions.rst:180 +#: howto/free-threading-extensions.rst:182 msgid ":c:func:`PyCell_GET`" msgstr "" -#: howto/free-threading-extensions.rst:180 +#: howto/free-threading-extensions.rst:182 msgid ":c:func:`PyCell_Get`" msgstr "" -#: howto/free-threading-extensions.rst:183 +#: howto/free-threading-extensions.rst:185 msgid "" "Not all APIs that return borrowed references are problematic. For example, :" "c:func:`PyTuple_GetItem` is safe because tuples are immutable. Similarly, " @@ -314,57 +319,57 @@ msgid "" "context is safe." msgstr "" -#: howto/free-threading-extensions.rst:191 +#: howto/free-threading-extensions.rst:193 msgid "" "Some of these functions were added in Python 3.13. You can use the " "`pythoncapi-compat `_ package " "to provide implementations of these functions for older Python versions." msgstr "" -#: howto/free-threading-extensions.rst:199 +#: howto/free-threading-extensions.rst:201 msgid "Memory Allocation APIs" msgstr "" -#: howto/free-threading-extensions.rst:201 +#: howto/free-threading-extensions.rst:203 msgid "" "Python's memory management C API provides functions in three different :ref:" "`allocation domains `: \"raw\", \"mem\", and \"object\". " "For thread-safety, the free-threaded build requires that only Python objects " -"are allocated using the object domain, and that all Python object are " +"are allocated using the object domain, and that all Python objects are " "allocated using that domain. This differs from the prior Python versions, " "where this was only a best practice and not a hard requirement." msgstr "" -#: howto/free-threading-extensions.rst:210 +#: howto/free-threading-extensions.rst:212 msgid "" "Search for uses of :c:func:`PyObject_Malloc` in your extension and check " "that the allocated memory is used for Python objects. Use :c:func:" "`PyMem_Malloc` to allocate buffers instead of :c:func:`PyObject_Malloc`." msgstr "" -#: howto/free-threading-extensions.rst:217 +#: howto/free-threading-extensions.rst:219 msgid "Thread State and GIL APIs" msgstr "" -#: howto/free-threading-extensions.rst:219 +#: howto/free-threading-extensions.rst:221 msgid "" "Python provides a set of functions and macros to manage thread state and the " "GIL, such as:" msgstr "" -#: howto/free-threading-extensions.rst:222 +#: howto/free-threading-extensions.rst:224 msgid ":c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release`" msgstr "" -#: howto/free-threading-extensions.rst:223 +#: howto/free-threading-extensions.rst:225 msgid ":c:func:`PyEval_SaveThread` and :c:func:`PyEval_RestoreThread`" msgstr "" -#: howto/free-threading-extensions.rst:224 +#: howto/free-threading-extensions.rst:226 msgid ":c:macro:`Py_BEGIN_ALLOW_THREADS` and :c:macro:`Py_END_ALLOW_THREADS`" msgstr "" -#: howto/free-threading-extensions.rst:226 +#: howto/free-threading-extensions.rst:228 msgid "" "These functions should still be used in the free-threaded build to manage " "thread state even when the :term:`GIL` is disabled. For example, if you " @@ -373,7 +378,7 @@ msgid "" "Python thread state." msgstr "" -#: howto/free-threading-extensions.rst:232 +#: howto/free-threading-extensions.rst:234 msgid "" "You should continue to call :c:func:`PyEval_SaveThread` or :c:macro:" "`Py_BEGIN_ALLOW_THREADS` around blocking operations, such as I/O or lock " @@ -381,25 +386,25 @@ msgid "" "collector `." msgstr "" -#: howto/free-threading-extensions.rst:239 +#: howto/free-threading-extensions.rst:241 msgid "Protecting Internal Extension State" msgstr "" -#: howto/free-threading-extensions.rst:241 +#: howto/free-threading-extensions.rst:243 msgid "" "Your extension may have internal state that was previously protected by the " "GIL. You may need to add locking to protect this state. The approach will " "depend on your extension, but some common patterns include:" msgstr "" -#: howto/free-threading-extensions.rst:245 +#: howto/free-threading-extensions.rst:247 msgid "" "**Caches**: global caches are a common source of shared state. Consider " "using a lock to protect the cache or disabling it in the free-threaded build " "if the cache is not critical for performance." msgstr "" -#: howto/free-threading-extensions.rst:248 +#: howto/free-threading-extensions.rst:250 msgid "" "**Global State**: global state may need to be protected by a lock or moved " "to thread local storage. C11 and C++11 provide the ``thread_local`` or " @@ -407,11 +412,11 @@ msgid "" "language/storage_duration>`_." msgstr "" -#: howto/free-threading-extensions.rst:255 +#: howto/free-threading-extensions.rst:257 msgid "Critical Sections" msgstr "" -#: howto/free-threading-extensions.rst:259 +#: howto/free-threading-extensions.rst:261 msgid "" "In the free-threaded build, CPython provides a mechanism called \"critical " "sections\" to protect data that would otherwise be protected by the GIL. " @@ -420,11 +425,11 @@ msgid "" "certain C API functions or managing shared state in the free-threaded build." msgstr "" -#: howto/free-threading-extensions.rst:266 +#: howto/free-threading-extensions.rst:268 msgid "What Are Critical Sections?" msgstr "" -#: howto/free-threading-extensions.rst:268 +#: howto/free-threading-extensions.rst:270 msgid "" "Conceptually, critical sections act as a deadlock avoidance layer built on " "top of simple mutexes. Each thread maintains a stack of active critical " @@ -434,27 +439,27 @@ msgid "" "the underlying mutex." msgstr "" -#: howto/free-threading-extensions.rst:276 +#: howto/free-threading-extensions.rst:278 msgid "Using Critical Sections" msgstr "" -#: howto/free-threading-extensions.rst:278 +#: howto/free-threading-extensions.rst:280 msgid "The primary APIs for using critical sections are:" msgstr "" -#: howto/free-threading-extensions.rst:280 +#: howto/free-threading-extensions.rst:282 msgid "" ":c:macro:`Py_BEGIN_CRITICAL_SECTION` and :c:macro:`Py_END_CRITICAL_SECTION` " "- For locking a single object" msgstr "" -#: howto/free-threading-extensions.rst:283 +#: howto/free-threading-extensions.rst:285 msgid "" ":c:macro:`Py_BEGIN_CRITICAL_SECTION2` and :c:macro:" "`Py_END_CRITICAL_SECTION2` - For locking two objects simultaneously" msgstr "" -#: howto/free-threading-extensions.rst:286 +#: howto/free-threading-extensions.rst:288 msgid "" "These macros must be used in matching pairs and must appear in the same C " "scope, since they establish a new local scope. These macros are no-ops in " @@ -462,7 +467,7 @@ msgid "" "support both build types." msgstr "" -#: howto/free-threading-extensions.rst:291 +#: howto/free-threading-extensions.rst:293 msgid "" "A common use of a critical section would be to lock an object while " "accessing an internal attribute of it. For example, if an extension type " @@ -470,7 +475,7 @@ msgid "" "or writing that field::" msgstr "" -#: howto/free-threading-extensions.rst:296 +#: howto/free-threading-extensions.rst:298 msgid "" "// read the count, returns new reference to internal count value\n" "PyObject *result;\n" @@ -485,11 +490,11 @@ msgid "" "Py_END_CRITICAL_SECTION();" msgstr "" -#: howto/free-threading-extensions.rst:310 +#: howto/free-threading-extensions.rst:312 msgid "How Critical Sections Work" msgstr "" -#: howto/free-threading-extensions.rst:312 +#: howto/free-threading-extensions.rst:314 msgid "" "Unlike traditional locks, critical sections do not guarantee exclusive " "access throughout their entire duration. If a thread would block while " @@ -498,51 +503,51 @@ msgid "" "then resumed when the blocking operation completes." msgstr "" -#: howto/free-threading-extensions.rst:318 +#: howto/free-threading-extensions.rst:320 msgid "" "This behavior is similar to what happens with the GIL when a thread makes a " "blocking call. The key differences are:" msgstr "" -#: howto/free-threading-extensions.rst:321 +#: howto/free-threading-extensions.rst:323 msgid "Critical sections operate on a per-object basis rather than globally" msgstr "" -#: howto/free-threading-extensions.rst:323 +#: howto/free-threading-extensions.rst:325 msgid "" "Critical sections follow a stack discipline within each thread (the " "\"begin\" and \"end\" macros enforce this since they must be paired and " "within the same scope)" msgstr "" -#: howto/free-threading-extensions.rst:326 +#: howto/free-threading-extensions.rst:328 msgid "" "Critical sections automatically release and reacquire locks around potential " "blocking operations" msgstr "" -#: howto/free-threading-extensions.rst:330 +#: howto/free-threading-extensions.rst:332 msgid "Deadlock Avoidance" msgstr "" -#: howto/free-threading-extensions.rst:332 +#: howto/free-threading-extensions.rst:334 msgid "Critical sections help avoid deadlocks in two ways:" msgstr "" -#: howto/free-threading-extensions.rst:334 +#: howto/free-threading-extensions.rst:336 msgid "" "If a thread tries to acquire a lock that's already held by another thread, " "it first suspends all of its active critical sections, temporarily releasing " "their locks" msgstr "" -#: howto/free-threading-extensions.rst:338 +#: howto/free-threading-extensions.rst:340 msgid "" "When the blocking operation completes, only the top-most critical section is " "reacquired first" msgstr "" -#: howto/free-threading-extensions.rst:341 +#: howto/free-threading-extensions.rst:343 msgid "" "This means you cannot rely on nested critical sections to lock multiple " "objects at once, as the inner critical section may suspend the outer ones. " @@ -550,29 +555,29 @@ msgid "" "simultaneously." msgstr "" -#: howto/free-threading-extensions.rst:345 +#: howto/free-threading-extensions.rst:347 msgid "" -"Note that the locks described above are only :c:type:`!PyMutex` based locks. " +"Note that the locks described above are only :c:type:`PyMutex` based locks. " "The critical section implementation does not know about or affect other " "locking mechanisms that might be in use, like POSIX mutexes. Also note that " -"while blocking on any :c:type:`!PyMutex` causes the critical sections to be " +"while blocking on any :c:type:`PyMutex` causes the critical sections to be " "suspended, only the mutexes that are part of the critical sections are " -"released. If :c:type:`!PyMutex` is used without a critical section, it will " +"released. If :c:type:`PyMutex` is used without a critical section, it will " "not be released and therefore does not get the same deadlock avoidance." msgstr "" -#: howto/free-threading-extensions.rst:354 +#: howto/free-threading-extensions.rst:356 msgid "Important Considerations" msgstr "" -#: howto/free-threading-extensions.rst:356 +#: howto/free-threading-extensions.rst:358 msgid "" "Critical sections may temporarily release their locks, allowing other " "threads to modify the protected data. Be careful about making assumptions " "about the state of the data after operations that might block." msgstr "" -#: howto/free-threading-extensions.rst:360 +#: howto/free-threading-extensions.rst:362 msgid "" "Because locks can be temporarily released (suspended), entering a critical " "section does not guarantee exclusive access to the protected resource " @@ -582,34 +587,34 @@ msgid "" "This is similar to how the GIL can be released during blocking calls." msgstr "" -#: howto/free-threading-extensions.rst:367 +#: howto/free-threading-extensions.rst:369 msgid "" "Only the lock(s) associated with the most recently entered (top-most) " "critical section are guaranteed to be held at any given time. Locks for " "outer, nested critical sections might have been suspended." msgstr "" -#: howto/free-threading-extensions.rst:371 +#: howto/free-threading-extensions.rst:373 msgid "" "You can lock at most two objects simultaneously with these APIs. If you need " "to lock more objects, you'll need to restructure your code." msgstr "" -#: howto/free-threading-extensions.rst:374 +#: howto/free-threading-extensions.rst:376 msgid "" "While critical sections will not deadlock if you attempt to lock the same " "object twice, they are less efficient than purpose-built reentrant locks for " "this use case." msgstr "" -#: howto/free-threading-extensions.rst:378 +#: howto/free-threading-extensions.rst:380 msgid "" "When using :c:macro:`Py_BEGIN_CRITICAL_SECTION2`, the order of the objects " "doesn't affect correctness (the implementation handles deadlock avoidance), " "but it's good practice to always lock objects in a consistent order." msgstr "" -#: howto/free-threading-extensions.rst:382 +#: howto/free-threading-extensions.rst:384 msgid "" "Remember that the critical section macros are primarily for protecting " "access to *Python objects* that might be involved in internal CPython " @@ -618,34 +623,36 @@ msgid "" "synchronization primitives might be more appropriate." msgstr "" -#: howto/free-threading-extensions.rst:390 +#: howto/free-threading-extensions.rst:392 msgid "Building Extensions for the Free-Threaded Build" msgstr "" -#: howto/free-threading-extensions.rst:392 +#: howto/free-threading-extensions.rst:394 msgid "" "C API extensions need to be built specifically for the free-threaded build. " "The wheels, shared libraries, and binaries are indicated by a ``t`` suffix." msgstr "" -#: howto/free-threading-extensions.rst:395 +#: howto/free-threading-extensions.rst:397 msgid "" "`pypa/manylinux `_ supports the free-" "threaded build, with the ``t`` suffix, such as ``python3.13t``." msgstr "" -#: howto/free-threading-extensions.rst:397 +#: howto/free-threading-extensions.rst:399 msgid "" "`pypa/cibuildwheel `_ supports the " -"free-threaded build if you set `CIBW_ENABLE to cpython-freethreading " -"`_." +"free-threaded build on Python 3.13 and 3.14. On Python 3.14, free-threaded " +"wheels will be built by default. On Python 3.13, you will need to set " +"`CIBW_ENABLE to cpython-freethreading `_." msgstr "" -#: howto/free-threading-extensions.rst:402 +#: howto/free-threading-extensions.rst:405 msgid "Limited C API and Stable ABI" msgstr "" -#: howto/free-threading-extensions.rst:404 +#: howto/free-threading-extensions.rst:407 msgid "" "The free-threaded build does not currently support the :ref:`Limited C API " "` or the stable ABI. If you use `setuptools `_: A community-maintained porting guide for " diff --git a/howto/free-threading-python.po b/howto/free-threading-python.po index 3cabd05c..ca9db996 100644 --- a/howto/free-threading-python.po +++ b/howto/free-threading-python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -205,22 +205,24 @@ msgstr "" #: howto/free-threading-python.rst:118 msgid "" "Because immortal objects are never deallocated, applications that create " -"many objects of these types may see increased memory usage. This is " -"expected to be addressed in the 3.14 release." +"many objects of these types may see increased memory usage under Python " +"3.13. This has been addressed in the 3.14 release, where the aforementioned " +"objects use deferred reference counting to avoid reference count contention." msgstr "" -#: howto/free-threading-python.rst:122 +#: howto/free-threading-python.rst:123 msgid "" "Additionally, numeric and string literals in the code as well as strings " -"returned by :func:`sys.intern` are also immortalized. This behavior is " -"expected to remain in the 3.14 free-threaded build." +"returned by :func:`sys.intern` are also immortalized in the 3.13 release. " +"This behavior is part of the 3.14 release as well and it is expected to " +"remain in future free-threaded builds." msgstr "" -#: howto/free-threading-python.rst:128 +#: howto/free-threading-python.rst:130 msgid "Frame objects" msgstr "" -#: howto/free-threading-python.rst:130 +#: howto/free-threading-python.rst:132 msgid "" "It is not safe to access :ref:`frame ` objects from other " "threads and doing so may cause your program to crash . This means that :" @@ -230,50 +232,54 @@ msgid "" "passed to another thread." msgstr "" -#: howto/free-threading-python.rst:138 +#: howto/free-threading-python.rst:140 msgid "Iterators" msgstr "" -#: howto/free-threading-python.rst:140 +#: howto/free-threading-python.rst:142 msgid "" "Sharing the same iterator object between multiple threads is generally not " "safe and threads may see duplicate or missing elements when iterating or " "crash the interpreter." msgstr "" -#: howto/free-threading-python.rst:146 +#: howto/free-threading-python.rst:148 msgid "Single-threaded performance" msgstr "" -#: howto/free-threading-python.rst:148 +#: howto/free-threading-python.rst:150 msgid "" "The free-threaded build has additional overhead when executing Python code " "compared to the default GIL-enabled build. In 3.13, this overhead is about " "40% on the `pyperformance `_ suite. " "Programs that spend most of their time in C extensions or I/O will see less " "of an impact. The largest impact is because the specializing adaptive " -"interpreter (:pep:`659`) is disabled in the free-threaded build. We expect " -"to re-enable it in a thread-safe way in the 3.14 release. This overhead is " -"expected to be reduced in upcoming Python release. We are aiming for an " -"overhead of 10% or less on the pyperformance suite compared to the default " -"GIL-enabled build." +"interpreter (:pep:`659`) is disabled in the free-threaded build." +msgstr "" + +#: howto/free-threading-python.rst:157 +msgid "" +"The specializing adaptive interpreter has been re-enabled in a thread-safe " +"way in the 3.14 release. The performance penalty on single-threaded code in " +"free-threaded mode is now roughly 5-10%, depending on the platform and C " +"compiler used." msgstr "" -#: howto/free-threading-python.rst:161 +#: howto/free-threading-python.rst:164 msgid "Behavioral changes" msgstr "" -#: howto/free-threading-python.rst:163 +#: howto/free-threading-python.rst:166 msgid "" "This section describes CPython behavioural changes with the free-threaded " "build." msgstr "" -#: howto/free-threading-python.rst:168 +#: howto/free-threading-python.rst:171 msgid "Context variables" msgstr "" -#: howto/free-threading-python.rst:170 +#: howto/free-threading-python.rst:173 msgid "" "In the free-threaded build, the flag :data:`~sys.flags." "thread_inherit_context` is set to true by default which causes threads " @@ -283,11 +289,11 @@ msgid "" "start with an empty :class:`~contextvars.Context()`." msgstr "" -#: howto/free-threading-python.rst:180 +#: howto/free-threading-python.rst:183 msgid "Warning filters" msgstr "" -#: howto/free-threading-python.rst:182 +#: howto/free-threading-python.rst:185 msgid "" "In the free-threaded build, the flag :data:`~sys.flags." "context_aware_warnings` is set to true by default. In the default GIL-" diff --git a/howto/functional.po b/howto/functional.po index 3dfee915..d1c4ffe8 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -822,7 +822,7 @@ msgstr "" #: howto/functional.rst:605 msgid "" -":meth:`~generator.close` raises a :exc:`GeneratorExit` exception inside the " +":meth:`~generator.close` sends a :exc:`GeneratorExit` exception to 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 " @@ -1755,7 +1755,7 @@ msgstr "" #: howto/functional.rst:1220 msgid "" -"https://www.defmacro.org/ramblings/fp.html: A general introduction to " +"https://defmacro.org/2006/06/19/fp.html: A general introduction to " "functional programming that uses Java examples and has a lengthy historical " "introduction." msgstr "" diff --git a/howto/gdb_helpers.po b/howto/gdb_helpers.po index 26f30b9a..c332ab94 100644 --- a/howto/gdb_helpers.po +++ b/howto/gdb_helpers.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/howto/index.po b/howto/index.po index 73f17ed1..d101300a 100644 --- a/howto/index.po +++ b/howto/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-10 22:23+0300\n" "Last-Translator: ALEXANDROS TZIORAS alextzioras23@gmail.com\n" "Language-Team: Language-Team: PyGreece \n" @@ -17,11 +17,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: howto/index.rst:3 +#: howto/index.rst:5 msgid "Python HOWTOs" msgstr "Python HOWTOs" -#: howto/index.rst:5 +#: howto/index.rst:7 msgid "" "Python HOWTOs are documents that cover a specific topic in-depth. Modeled on " "the Linux Documentation Project's HOWTO collection, this collection is an " @@ -33,110 +33,114 @@ msgstr "" "συλλογή είναι μια προσπάθεια να προωθηθεί η τεκμηρίωση που είναι πιο " "λεπτομερής από την Αναφορά της Βιβλιοθήκης Python." -#: howto/index.rst:39 +#: howto/index.rst:42 msgid "General:" msgstr "Γενικά:" -#: howto/index.rst:41 +#: howto/index.rst:44 +msgid ":ref:`a-conceptual-overview-of-asyncio`" +msgstr ":ref:`a-conceptual-overview-of-asyncio`" + +#: howto/index.rst:45 msgid ":ref:`annotations-howto`" msgstr ":ref:`annotations-howto`" -#: howto/index.rst:42 +#: howto/index.rst:46 msgid ":ref:`argparse-tutorial`" msgstr ":ref:`argparse-tutorial`" -#: howto/index.rst:43 +#: howto/index.rst:47 msgid ":ref:`descriptorhowto`" msgstr ":ref:`descriptorhowto`" -#: howto/index.rst:44 +#: howto/index.rst:48 msgid ":ref:`enum-howto`" msgstr ":ref:`enum-howto`" -#: howto/index.rst:45 +#: howto/index.rst:49 msgid ":ref:`functional-howto`" msgstr ":ref:`functional-howto`" -#: howto/index.rst:46 +#: howto/index.rst:50 msgid ":ref:`ipaddress-howto`" msgstr ":ref:`ipaddress-howto`" -#: howto/index.rst:47 +#: howto/index.rst:51 msgid ":ref:`logging-howto`" msgstr ":ref:`logging-howto`" -#: howto/index.rst:48 +#: howto/index.rst:52 msgid ":ref:`logging-cookbook`" msgstr ":ref:`logging-cookbook`" -#: howto/index.rst:49 +#: howto/index.rst:53 msgid ":ref:`regex-howto`" msgstr ":ref:`regex-howto`" -#: howto/index.rst:50 +#: howto/index.rst:54 msgid ":ref:`sortinghowto`" msgstr ":ref:`sortinghowto`" -#: howto/index.rst:51 +#: howto/index.rst:55 msgid ":ref:`unicode-howto`" msgstr ":ref:`unicode-howto`" -#: howto/index.rst:52 +#: howto/index.rst:56 msgid ":ref:`urllib-howto`" msgstr ":ref:`urllib-howto`" -#: howto/index.rst:54 +#: howto/index.rst:58 msgid "Advanced development:" msgstr "Προχωρημένη ανάπτυξη:" -#: howto/index.rst:56 +#: howto/index.rst:60 msgid ":ref:`curses-howto`" msgstr ":ref:`curses-howto`" -#: howto/index.rst:57 +#: howto/index.rst:61 msgid ":ref:`freethreading-python-howto`" msgstr ":ref:`freethreading-python-howto`" -#: howto/index.rst:58 +#: howto/index.rst:62 msgid ":ref:`freethreading-extensions-howto`" msgstr ":ref:`freethreading-extensions-howto`" -#: howto/index.rst:59 +#: howto/index.rst:63 msgid ":ref:`isolating-extensions-howto`" msgstr ":ref:`isolating-extensions-howto`" -#: howto/index.rst:60 +#: howto/index.rst:64 msgid ":ref:`python_2.3_mro`" msgstr ":ref:`python_2.3_mro`" -#: howto/index.rst:61 +#: howto/index.rst:65 msgid ":ref:`socket-howto`" msgstr ":ref:`socket-howto`" -#: howto/index.rst:62 +#: howto/index.rst:66 msgid ":ref:`timerfd-howto`" msgstr ":ref:`timerfd-howto`" -#: howto/index.rst:63 +#: howto/index.rst:67 msgid ":ref:`cporting-howto`" msgstr ":ref:`cporting-howto`" -#: howto/index.rst:65 +#: howto/index.rst:69 msgid "Debugging and profiling:" msgstr "Αποσφαλμάτωση και σκιαγράφηση:" -#: howto/index.rst:67 +#: howto/index.rst:71 msgid ":ref:`gdb`" msgstr ":ref:`gdb`" -#: howto/index.rst:68 +#: howto/index.rst:72 msgid ":ref:`instrumentation`" msgstr ":ref:`instrumentation`" -#: howto/index.rst:69 +#: howto/index.rst:73 msgid ":ref:`perf_profiling`" msgstr ":ref:`perf_profiling`" -#: howto/index.rst:70 +#: howto/index.rst:74 msgid ":ref:`remote-debugging`" msgstr ":ref:`remote-debugging`" diff --git a/howto/instrumentation.po b/howto/instrumentation.po index 794b45b2..970203f1 100644 --- a/howto/instrumentation.po +++ b/howto/instrumentation.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -401,108 +401,108 @@ msgstr "" msgid "(assuming a :ref:`debug build ` of CPython 3.6)" msgstr "" -#: howto/instrumentation.rst:273 +#: howto/instrumentation.rst:275 msgid "Available static markers" msgstr "" -#: howto/instrumentation.rst:277 +#: 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 "" -#: howto/instrumentation.rst:280 +#: 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 "" -#: howto/instrumentation.rst:284 +#: howto/instrumentation.rst:286 msgid "" "``$arg1`` : ``(const char *)`` filename, accessible using " "``user_string($arg1)``" msgstr "" -#: howto/instrumentation.rst:286 +#: howto/instrumentation.rst:288 msgid "" "``$arg2`` : ``(const char *)`` function name, accessible using " "``user_string($arg2)``" msgstr "" -#: howto/instrumentation.rst:289 +#: howto/instrumentation.rst:291 msgid "``$arg3`` : ``int`` line number" msgstr "" -#: howto/instrumentation.rst:293 +#: 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 "" -#: howto/instrumentation.rst:297 +#: howto/instrumentation.rst:299 msgid "The arguments are the same as for :c:func:`!function__entry`" msgstr "" -#: howto/instrumentation.rst:301 +#: 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 "" -#: howto/instrumentation.rst:305 +#: howto/instrumentation.rst:307 msgid "The arguments are the same as for :c:func:`!function__entry`." msgstr "" -#: howto/instrumentation.rst:309 +#: 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 "" -#: howto/instrumentation.rst:314 +#: howto/instrumentation.rst:316 msgid "" "Fires when the Python interpreter finishes a garbage collection cycle. " "``arg0`` is the number of collected objects." msgstr "" -#: howto/instrumentation.rst:319 +#: howto/instrumentation.rst:321 msgid "" "Fires before :mod:`importlib` attempts to find and load the module. ``arg0`` " "is the module name." msgstr "" -#: howto/instrumentation.rst:326 +#: 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 "" -#: howto/instrumentation.rst:335 +#: howto/instrumentation.rst:337 msgid "" "Fires when :func:`sys.audit` or :c:func:`PySys_Audit` is called. ``arg0`` is " "the event name as C string, ``arg1`` is a :c:type:`PyObject` pointer to a " "tuple object." msgstr "" -#: howto/instrumentation.rst:343 +#: howto/instrumentation.rst:345 msgid "SystemTap Tapsets" msgstr "" -#: howto/instrumentation.rst:345 +#: howto/instrumentation.rst:347 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 "" -#: howto/instrumentation.rst:349 +#: howto/instrumentation.rst:351 msgid "Here is a tapset file, based on a non-shared build of CPython:" msgstr "" -#: howto/instrumentation.rst:351 +#: howto/instrumentation.rst:353 msgid "" "/*\n" " Provide a higher-level wrapping around the function__entry and\n" @@ -525,19 +525,19 @@ msgid "" "}" msgstr "" -#: howto/instrumentation.rst:372 +#: howto/instrumentation.rst:374 msgid "" "If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/" "systemtap/tapset``), then these additional probepoints become available:" msgstr "" -#: howto/instrumentation.rst:378 +#: howto/instrumentation.rst:380 msgid "" "This probe point indicates that execution of a Python function has begun. It " "is only triggered for pure-Python (bytecode) functions." msgstr "" -#: howto/instrumentation.rst:383 +#: howto/instrumentation.rst:385 msgid "" "This probe point is the converse of ``python.function.return``, and " "indicates that execution of a Python function has ended (either via " @@ -545,18 +545,18 @@ msgid "" "(bytecode) functions." msgstr "" -#: howto/instrumentation.rst:390 +#: howto/instrumentation.rst:392 msgid "Examples" msgstr "" -#: howto/instrumentation.rst:391 +#: howto/instrumentation.rst:393 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 "" -#: howto/instrumentation.rst:395 +#: howto/instrumentation.rst:397 msgid "" "probe python.function.entry\n" "{\n" @@ -571,14 +571,14 @@ msgid "" "}" msgstr "" -#: howto/instrumentation.rst:410 +#: howto/instrumentation.rst:412 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 "" -#: howto/instrumentation.rst:414 +#: howto/instrumentation.rst:416 msgid "" "global fn_calls;\n" "\n" diff --git a/howto/ipaddress.po b/howto/ipaddress.po index 4c66a3da..c0503647 100644 --- a/howto/ipaddress.po +++ b/howto/ipaddress.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/howto/isolating-extensions.po b/howto/isolating-extensions.po index 9dc768bd..21c9ffcf 100644 --- a/howto/isolating-extensions.po +++ b/howto/isolating-extensions.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -509,8 +509,8 @@ msgstr "" #: howto/isolating-extensions.rst:356 msgid "" -"Define a traverse function using ``Py_tp_traverse``, which visits the type " -"(e.g. using ``Py_VISIT(Py_TYPE(self))``)." +"Define a traverse function using :c:data:`Py_tp_traverse`, which visits the " +"type (e.g. using ``Py_VISIT(Py_TYPE(self))``)." msgstr "" #: howto/isolating-extensions.rst:359 @@ -667,7 +667,7 @@ msgid "GC-tracked objects need to be allocated using GC-aware functions." msgstr "" #: howto/isolating-extensions.rst:456 -msgid "If you use use :c:func:`PyObject_New` or :c:func:`PyObject_NewVar`:" +msgid "If you use :c:func:`PyObject_New` or :c:func:`PyObject_NewVar`:" msgstr "" #: howto/isolating-extensions.rst:458 @@ -903,16 +903,15 @@ msgstr "" #: howto/isolating-extensions.rst:629 msgid "" -"Discussions about improving the situation are best held on the `capi-sig " -"mailing list `__." +"Discussions about improving the situation are best held on the `discuss " +"forum under c-api tag `__." msgstr "" -#: howto/isolating-extensions.rst:634 +#: howto/isolating-extensions.rst:633 msgid "Per-Class Scope" msgstr "" -#: howto/isolating-extensions.rst:636 +#: howto/isolating-extensions.rst:635 msgid "" "It is currently (as of Python 3.11) not possible to attach state to " "individual *types* without relying on CPython implementation details (which " @@ -920,11 +919,11 @@ msgid "" "per-class scope)." msgstr "" -#: howto/isolating-extensions.rst:643 +#: howto/isolating-extensions.rst:642 msgid "Lossless Conversion to Heap Types" msgstr "" -#: howto/isolating-extensions.rst:645 +#: howto/isolating-extensions.rst:644 msgid "" "The heap type API was not designed for \"lossless\" conversion from static " "types; that is, creating a type that works exactly like a given static type." diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 14302f29..742c10ac 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -5074,11 +5074,137 @@ msgid "" "WARNING:demo:ZeroDivisionError: division by zero" msgstr "" -#: howto/logging-cookbook.rst:4085 +#: howto/logging-cookbook.rst:4082 +msgid "How to uniformly handle newlines in logging output" +msgstr "" + +#: howto/logging-cookbook.rst:4084 +msgid "" +"Usually, messages that are logged (say to console or file) consist of a " +"single line of text. However, sometimes there is a need to handle messages " +"with multiple lines - whether because a logging format string contains " +"newlines, or logged data contains newlines. If you want to handle such " +"messages uniformly, so that each line in the logged message appears " +"uniformly formatted as if it was logged separately, you can do this using a " +"handler mixin, as in the following snippet:" +msgstr "" + +#: howto/logging-cookbook.rst:4092 +msgid "" +"# Assume this is in a module mymixins.py\n" +"import copy\n" +"\n" +"class MultilineMixin:\n" +" def emit(self, record):\n" +" s = record.getMessage()\n" +" if '\\n' not in s:\n" +" super().emit(record)\n" +" else:\n" +" lines = s.splitlines()\n" +" rec = copy.copy(record)\n" +" rec.args = None\n" +" for line in lines:\n" +" rec.msg = line\n" +" super().emit(rec)" +msgstr "" + +#: howto/logging-cookbook.rst:4110 +msgid "You can use the mixin as in the following script:" +msgstr "" + +#: howto/logging-cookbook.rst:4112 +msgid "" +"import logging\n" +"\n" +"from mymixins import MultilineMixin\n" +"\n" +"logger = logging.getLogger(__name__)\n" +"\n" +"class StreamHandler(MultilineMixin, logging.StreamHandler):\n" +" pass\n" +"\n" +"if __name__ == '__main__':\n" +" logging.basicConfig(level=logging.DEBUG, format='%(asctime)s " +"%(levelname)-9s %(message)s',\n" +" handlers = [StreamHandler()])\n" +" logger.debug('Single line')\n" +" logger.debug('Multiple lines:\\nfool me once ...')\n" +" logger.debug('Another single line')\n" +" logger.debug('Multiple lines:\\n%s', 'fool me ...\\ncan\\'t get fooled " +"again')" +msgstr "" + +#: howto/logging-cookbook.rst:4131 +msgid "The script, when run, prints something like:" +msgstr "" + +#: howto/logging-cookbook.rst:4133 +msgid "" +"2025-07-02 13:54:47,234 DEBUG Single line\n" +"2025-07-02 13:54:47,234 DEBUG Multiple lines:\n" +"2025-07-02 13:54:47,234 DEBUG fool me once ...\n" +"2025-07-02 13:54:47,234 DEBUG Another single line\n" +"2025-07-02 13:54:47,234 DEBUG Multiple lines:\n" +"2025-07-02 13:54:47,234 DEBUG fool me ...\n" +"2025-07-02 13:54:47,234 DEBUG can't get fooled again" +msgstr "" + +#: howto/logging-cookbook.rst:4143 +msgid "" +"If, on the other hand, you are concerned about `log injection `_, you can use a formatter which " +"escapes newlines, as per the following example:" +msgstr "" + +#: howto/logging-cookbook.rst:4147 +msgid "" +"import logging\n" +"\n" +"logger = logging.getLogger(__name__)\n" +"\n" +"class EscapingFormatter(logging.Formatter):\n" +" def format(self, record):\n" +" s = super().format(record)\n" +" return s.replace('\\n', r'\\n')\n" +"\n" +"if __name__ == '__main__':\n" +" h = logging.StreamHandler()\n" +" h.setFormatter(EscapingFormatter('%(asctime)s %(levelname)-9s " +"%(message)s'))\n" +" logging.basicConfig(level=logging.DEBUG, handlers = [h])\n" +" logger.debug('Single line')\n" +" logger.debug('Multiple lines:\\nfool me once ...')\n" +" logger.debug('Another single line')\n" +" logger.debug('Multiple lines:\\n%s', 'fool me ...\\ncan\\'t get fooled " +"again')" +msgstr "" + +#: howto/logging-cookbook.rst:4167 +msgid "" +"You can, of course, use whatever escaping scheme makes the most sense for " +"you. The script, when run, should produce output like this:" +msgstr "" + +#: howto/logging-cookbook.rst:4170 +msgid "" +"2025-07-09 06:47:33,783 DEBUG Single line\n" +"2025-07-09 06:47:33,783 DEBUG Multiple lines:\\nfool me once ...\n" +"2025-07-09 06:47:33,783 DEBUG Another single line\n" +"2025-07-09 06:47:33,783 DEBUG Multiple lines:\\nfool me ...\\ncan't get " +"fooled again" +msgstr "" + +#: howto/logging-cookbook.rst:4177 +msgid "" +"Escaping behaviour can't be the stdlib default , as it would break backwards " +"compatibility." +msgstr "" + +#: howto/logging-cookbook.rst:4183 msgid "Patterns to avoid" msgstr "" -#: howto/logging-cookbook.rst:4087 +#: howto/logging-cookbook.rst:4185 msgid "" "Although the preceding sections have described ways of doing things you " "might need to do or deal with, it is worth mentioning some usage patterns " @@ -5086,11 +5212,11 @@ msgid "" "The following sections are in no particular order." msgstr "" -#: howto/logging-cookbook.rst:4093 +#: howto/logging-cookbook.rst:4191 msgid "Opening the same log file multiple times" msgstr "" -#: howto/logging-cookbook.rst:4095 +#: howto/logging-cookbook.rst:4193 msgid "" "On Windows, you will generally not be able to open the same file multiple " "times as this will lead to a \"file is in use by another process\" error. " @@ -5098,32 +5224,32 @@ msgid "" "file multiple times. This could be done accidentally, for example by:" msgstr "" -#: howto/logging-cookbook.rst:4100 +#: howto/logging-cookbook.rst:4198 msgid "" "Adding a file handler more than once which references the same file (e.g. by " "a copy/paste/forget-to-change error)." msgstr "" -#: howto/logging-cookbook.rst:4103 +#: howto/logging-cookbook.rst:4201 msgid "" "Opening two files that look different, as they have different names, but are " "the same because one is a symbolic link to the other." msgstr "" -#: howto/logging-cookbook.rst:4106 +#: howto/logging-cookbook.rst:4204 msgid "" "Forking a process, following which both parent and child have a reference to " "the same file. This might be through use of the :mod:`multiprocessing` " "module, for example." msgstr "" -#: howto/logging-cookbook.rst:4110 +#: howto/logging-cookbook.rst:4208 msgid "" "Opening a file multiple times might *appear* to work most of the time, but " "can lead to a number of problems in practice:" msgstr "" -#: howto/logging-cookbook.rst:4113 +#: howto/logging-cookbook.rst:4211 msgid "" "Logging output can be garbled because multiple threads or processes try to " "write to the same file. Although logging guards against concurrent use of " @@ -5132,7 +5258,7 @@ msgid "" "different handler instances which happen to point to the same file." msgstr "" -#: howto/logging-cookbook.rst:4119 +#: howto/logging-cookbook.rst:4217 msgid "" "An attempt to delete a file (e.g. during file rotation) silently fails, " "because there is another reference pointing to it. This can lead to " @@ -5142,17 +5268,17 @@ msgid "" "being supposedly in place." msgstr "" -#: howto/logging-cookbook.rst:4126 +#: howto/logging-cookbook.rst:4224 msgid "" "Use the techniques outlined in :ref:`multiple-processes` to circumvent such " "issues." msgstr "" -#: howto/logging-cookbook.rst:4130 +#: howto/logging-cookbook.rst:4228 msgid "Using loggers as attributes in a class or passing them as parameters" msgstr "" -#: howto/logging-cookbook.rst:4132 +#: howto/logging-cookbook.rst:4230 msgid "" "While there might be unusual cases where you'll need to do this, in general " "there is no point because loggers are singletons. Code can always access a " @@ -5163,13 +5289,13 @@ msgid "" "module (and not the class) is the unit of software decomposition." msgstr "" -#: howto/logging-cookbook.rst:4141 +#: howto/logging-cookbook.rst:4239 msgid "" "Adding handlers other than :class:`~logging.NullHandler` to a logger in a " "library" msgstr "" -#: howto/logging-cookbook.rst:4143 +#: howto/logging-cookbook.rst:4241 msgid "" "Configuring logging by adding handlers, formatters and filters is the " "responsibility of the application developer, not the library developer. If " @@ -5177,11 +5303,11 @@ msgid "" "your loggers other than a :class:`~logging.NullHandler` instance." msgstr "" -#: howto/logging-cookbook.rst:4149 +#: howto/logging-cookbook.rst:4247 msgid "Creating a lot of loggers" msgstr "" -#: howto/logging-cookbook.rst:4151 +#: howto/logging-cookbook.rst:4249 msgid "" "Loggers are singletons that are never freed during a script execution, and " "so creating lots of loggers will use up memory which can't then be freed. " @@ -5192,38 +5318,38 @@ msgid "" "occasionally slightly more fine-grained than that)." msgstr "" -#: howto/logging-cookbook.rst:4162 +#: howto/logging-cookbook.rst:4260 msgid "Other resources" msgstr "" -#: howto/logging-cookbook.rst:4166 +#: howto/logging-cookbook.rst:4264 msgid "Module :mod:`logging`" msgstr "" -#: howto/logging-cookbook.rst:4167 +#: howto/logging-cookbook.rst:4265 msgid "API reference for the logging module." msgstr "" -#: howto/logging-cookbook.rst:4169 +#: howto/logging-cookbook.rst:4267 msgid "Module :mod:`logging.config`" msgstr "" -#: howto/logging-cookbook.rst:4170 +#: howto/logging-cookbook.rst:4268 msgid "Configuration API for the logging module." msgstr "" -#: howto/logging-cookbook.rst:4172 +#: howto/logging-cookbook.rst:4270 msgid "Module :mod:`logging.handlers`" msgstr "" -#: howto/logging-cookbook.rst:4173 +#: howto/logging-cookbook.rst:4271 msgid "Useful handlers included with the logging module." msgstr "" -#: howto/logging-cookbook.rst:4175 +#: howto/logging-cookbook.rst:4273 msgid ":ref:`Basic Tutorial `" msgstr "" -#: howto/logging-cookbook.rst:4177 +#: howto/logging-cookbook.rst:4275 msgid ":ref:`Advanced Tutorial `" msgstr "" diff --git a/howto/logging.po b/howto/logging.po index 460464c2..52c041c9 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -515,8 +515,8 @@ msgstr "" 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/g/comp.lang.python) and you " +"understand something, please post a question in the Help category of the " +"`Python discussion forum `_ and you " "should receive help before too long." msgstr "" diff --git a/howto/mro.po b/howto/mro.po index 209affb8..3f618769 100644 --- a/howto/mro.po +++ b/howto/mro.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/howto/perf_profiling.po b/howto/perf_profiling.po index d12a979b..348c573e 100644 --- a/howto/perf_profiling.po +++ b/howto/perf_profiling.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/howto/pyporting.po b/howto/pyporting.po index 797234ed..ec541861 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-12-06 13:40+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" diff --git a/howto/regex.po b/howto/regex.po index 85a98a0e..a18a7ef2 100644 --- a/howto/regex.po +++ b/howto/regex.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -645,11 +645,11 @@ msgid "" "for a complete listing." msgstr "" -#: howto/regex.rst:417 howto/regex.rst:1068 +#: howto/regex.rst:417 howto/regex.rst:1072 msgid "Method/Attribute" msgstr "" -#: howto/regex.rst:417 howto/regex.rst:1068 +#: howto/regex.rst:417 howto/regex.rst:1072 msgid "Purpose" msgstr "" @@ -1695,17 +1695,21 @@ msgid "" msgstr "" #: howto/regex.rst:1019 +msgid "``.*[.][^b].*$``" +msgstr "" + +#: howto/regex.rst:1021 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``." +"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 "" -#: howto/regex.rst:1023 +#: howto/regex.rst:1025 msgid "``.*[.]([^b]..|.[^a].|..[^t])$``" msgstr "" -#: howto/regex.rst:1025 +#: howto/regex.rst:1027 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 " @@ -1716,18 +1720,18 @@ msgid "" "pattern again in an effort to fix it." msgstr "" -#: howto/regex.rst:1033 +#: howto/regex.rst:1035 msgid "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" msgstr "" -#: howto/regex.rst:1035 +#: howto/regex.rst:1037 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 "" -#: howto/regex.rst:1039 +#: howto/regex.rst:1041 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 " @@ -1735,75 +1739,79 @@ msgid "" "complicated and confusing." msgstr "" -#: howto/regex.rst:1044 +#: howto/regex.rst:1046 msgid "A negative lookahead cuts through all this confusion:" msgstr "" -#: howto/regex.rst:1046 +#: howto/regex.rst:1048 +msgid "``.*[.](?!bat$)[^.]*$``" +msgstr "" + +#: howto/regex.rst:1050 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." +"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 "" -#: howto/regex.rst:1053 +#: howto/regex.rst:1057 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 "" -#: howto/regex.rst:1057 +#: howto/regex.rst:1061 msgid "``.*[.](?!bat$|exe$)[^.]*$``" msgstr "" -#: howto/regex.rst:1061 +#: howto/regex.rst:1065 msgid "Modifying Strings" msgstr "" -#: howto/regex.rst:1063 +#: howto/regex.rst:1067 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 "" -#: howto/regex.rst:1070 +#: howto/regex.rst:1074 msgid "``split()``" msgstr "" -#: howto/regex.rst:1070 +#: howto/regex.rst:1074 msgid "Split the string into a list, splitting it wherever the RE matches" msgstr "" -#: howto/regex.rst:1073 +#: howto/regex.rst:1077 msgid "``sub()``" msgstr "" -#: howto/regex.rst:1073 +#: howto/regex.rst:1077 msgid "" "Find all substrings where the RE matches, and replace them with a different " "string" msgstr "" -#: howto/regex.rst:1076 +#: howto/regex.rst:1080 msgid "``subn()``" msgstr "" -#: howto/regex.rst:1076 +#: howto/regex.rst:1080 msgid "" "Does the same thing as :meth:`!sub`, but returns the new string and the " "number of replacements" msgstr "" -#: howto/regex.rst:1083 +#: howto/regex.rst:1087 msgid "Splitting Strings" msgstr "" -#: howto/regex.rst:1085 +#: howto/regex.rst:1089 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 " @@ -1813,7 +1821,7 @@ msgid "" "module-level :func:`re.split` function, too." msgstr "" -#: howto/regex.rst:1096 +#: howto/regex.rst:1100 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 " @@ -1821,7 +1829,7 @@ msgid "" "splits are performed." msgstr "" -#: howto/regex.rst:1101 +#: howto/regex.rst:1105 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 " @@ -1830,7 +1838,7 @@ msgid "" "characters. ::" msgstr "" -#: howto/regex.rst:1107 +#: howto/regex.rst:1111 msgid "" ">>> p = re.compile(r'\\W+')\n" ">>> p.split('This is a test, short and sweet, of split().')\n" @@ -1839,7 +1847,7 @@ msgid "" "['This', 'is', 'a', 'test, short and sweet, of split().']" msgstr "" -#: howto/regex.rst:1113 +#: howto/regex.rst:1117 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 " @@ -1847,7 +1855,7 @@ msgid "" "Compare the following calls::" msgstr "" -#: howto/regex.rst:1118 +#: howto/regex.rst:1122 msgid "" ">>> p = re.compile(r'\\W+')\n" ">>> p2 = re.compile(r'(\\W+)')\n" @@ -1857,13 +1865,13 @@ msgid "" "['This', '... ', 'is', ' ', 'a', ' ', 'test', '.', '']" msgstr "" -#: howto/regex.rst:1125 +#: howto/regex.rst:1129 msgid "" "The module-level function :func:`re.split` adds the RE to be used as the " "first argument, but is otherwise the same. ::" msgstr "" -#: howto/regex.rst:1128 +#: howto/regex.rst:1132 msgid "" ">>> re.split(r'[\\W]+', 'Words, words, words.')\n" "['Words', 'words', 'words', '']\n" @@ -1873,11 +1881,11 @@ msgid "" "['Words', 'words, words.']" msgstr "" -#: howto/regex.rst:1137 +#: howto/regex.rst:1141 msgid "Search and Replace" msgstr "" -#: howto/regex.rst:1139 +#: howto/regex.rst:1143 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 " @@ -1885,27 +1893,27 @@ msgid "" "string to be processed." msgstr "" -#: howto/regex.rst:1146 +#: howto/regex.rst:1150 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 "" -#: howto/regex.rst:1150 +#: howto/regex.rst:1154 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 "" -#: howto/regex.rst:1154 +#: howto/regex.rst:1158 msgid "" "Here's a simple example of using the :meth:`~re.Pattern.sub` method. It " "replaces colour names with the word ``colour``::" msgstr "" -#: howto/regex.rst:1157 +#: howto/regex.rst:1161 msgid "" ">>> p = re.compile('(blue|white|red)')\n" ">>> p.sub('colour', 'blue socks and red shoes')\n" @@ -1914,14 +1922,14 @@ msgid "" "'colour socks and red shoes'" msgstr "" -#: howto/regex.rst:1163 +#: howto/regex.rst:1167 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 "" -#: howto/regex.rst:1166 +#: howto/regex.rst:1170 msgid "" ">>> p = re.compile('(blue|white|red)')\n" ">>> p.subn('colour', 'blue socks and red shoes')\n" @@ -1930,20 +1938,20 @@ msgid "" "('no colours at all', 0)" msgstr "" -#: howto/regex.rst:1172 +#: howto/regex.rst:1176 msgid "" "Empty matches are replaced only when they're not adjacent to a previous " "empty match. ::" msgstr "" -#: howto/regex.rst:1175 +#: howto/regex.rst:1179 msgid "" ">>> p = re.compile('x*')\n" ">>> p.sub('-', 'abxd')\n" "'-a-b--d-'" msgstr "" -#: howto/regex.rst:1179 +#: howto/regex.rst:1183 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 " @@ -1954,20 +1962,20 @@ msgid "" "string." msgstr "" -#: howto/regex.rst:1186 +#: howto/regex.rst:1190 msgid "" "This example matches the word ``section`` followed by a string enclosed in " "``{``, ``}``, and changes ``section`` to ``subsection``::" msgstr "" -#: howto/regex.rst:1189 +#: howto/regex.rst:1193 msgid "" ">>> p = re.compile('section{ ( [^}]* ) }', re.VERBOSE)\n" ">>> p.sub(r'subsection{\\1}','section{First} section{second}')\n" "'subsection{First} subsection{second}'" msgstr "" -#: howto/regex.rst:1193 +#: howto/regex.rst:1197 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 " @@ -1979,7 +1987,7 @@ msgid "" "but use all three variations of the replacement string. ::" msgstr "" -#: howto/regex.rst:1202 +#: howto/regex.rst:1206 msgid "" ">>> p = re.compile('section{ (?P [^}]* ) }', re.VERBOSE)\n" ">>> p.sub(r'subsection{\\1}','section{First}')\n" @@ -1990,7 +1998,7 @@ msgid "" "'subsection{First}'" msgstr "" -#: howto/regex.rst:1210 +#: howto/regex.rst:1214 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-" @@ -1999,13 +2007,13 @@ msgid "" "this information to compute the desired replacement string and return it." msgstr "" -#: howto/regex.rst:1216 +#: howto/regex.rst:1220 msgid "" "In the following example, the replacement function translates decimals into " "hexadecimal::" msgstr "" -#: howto/regex.rst:1219 +#: howto/regex.rst:1223 msgid "" ">>> def hexrepl(match):\n" "... \"Return the hex string for a decimal number\"\n" @@ -2017,7 +2025,7 @@ msgid "" "'Call 0xffd2 for printing, 0xc000 for user code.'" msgstr "" -#: howto/regex.rst:1228 +#: howto/regex.rst:1232 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 " @@ -2027,11 +2035,11 @@ msgid "" "x'``." msgstr "" -#: howto/regex.rst:1236 +#: howto/regex.rst:1240 msgid "Common Problems" msgstr "" -#: howto/regex.rst:1238 +#: howto/regex.rst:1242 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 " @@ -2039,11 +2047,11 @@ msgid "" "pitfalls." msgstr "" -#: howto/regex.rst:1244 +#: howto/regex.rst:1248 msgid "Use String Methods" msgstr "" -#: howto/regex.rst:1246 +#: howto/regex.rst:1250 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:" @@ -2055,7 +2063,7 @@ msgid "" "engine." msgstr "" -#: howto/regex.rst:1254 +#: howto/regex.rst:1258 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 " @@ -2068,7 +2076,7 @@ msgid "" "meth:`!replace`'s abilities.)" msgstr "" -#: howto/regex.rst:1263 +#: howto/regex.rst:1267 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 " @@ -2077,17 +2085,17 @@ msgid "" "operation can be." msgstr "" -#: howto/regex.rst:1269 +#: howto/regex.rst:1273 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 "" -#: howto/regex.rst:1274 +#: howto/regex.rst:1278 msgid "match() versus search()" msgstr "" -#: howto/regex.rst:1276 +#: howto/regex.rst:1280 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 " @@ -2097,7 +2105,7 @@ msgid "" "report it. ::" msgstr "" -#: howto/regex.rst:1282 +#: howto/regex.rst:1286 msgid "" ">>> print(re.match('super', 'superstition').span())\n" "(0, 5)\n" @@ -2105,13 +2113,13 @@ msgid "" "None" msgstr "" -#: howto/regex.rst:1287 +#: howto/regex.rst:1291 msgid "" "On the other hand, :func:`~re.search` will scan forward through the string, " "reporting the first match it finds. ::" msgstr "" -#: howto/regex.rst:1290 +#: howto/regex.rst:1294 msgid "" ">>> print(re.search('super', 'superstition').span())\n" "(0, 5)\n" @@ -2119,7 +2127,7 @@ msgid "" "(2, 7)" msgstr "" -#: howto/regex.rst:1295 +#: howto/regex.rst:1299 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." @@ -2131,18 +2139,18 @@ msgid "" "starting character, only trying the full match if a ``'C'`` is found." msgstr "" -#: howto/regex.rst:1304 +#: howto/regex.rst:1308 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 "" -#: howto/regex.rst:1310 +#: howto/regex.rst:1314 msgid "Greedy versus Non-Greedy" msgstr "" -#: howto/regex.rst:1312 +#: howto/regex.rst:1316 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 " @@ -2151,7 +2159,7 @@ msgid "" "HTML tag doesn't work because of the greedy nature of ``.*``. ::" msgstr "" -#: howto/regex.rst:1318 +#: howto/regex.rst:1322 msgid "" ">>> s = 'Title'\n" ">>> len(s)\n" @@ -2162,7 +2170,7 @@ msgid "" "Title" msgstr "" -#: howto/regex.rst:1326 +#: howto/regex.rst:1330 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 ``>`` " @@ -2172,7 +2180,7 @@ msgid "" "``''``, which isn't what you want." msgstr "" -#: howto/regex.rst:1333 +#: howto/regex.rst:1337 msgid "" "In this case, the solution is to use the non-greedy quantifiers ``*?``, ``+?" "``, ``??``, or ``{m,n}?``, which match as *little* text as possible. In the " @@ -2181,13 +2189,13 @@ msgid "" "retrying the ``'>'`` at every step. This produces just the right result::" msgstr "" -#: howto/regex.rst:1339 +#: howto/regex.rst:1343 msgid "" ">>> print(re.match('<.*?>', s).group())\n" "" msgstr "" -#: howto/regex.rst:1342 +#: howto/regex.rst:1346 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 " @@ -2197,11 +2205,11 @@ msgid "" "such tasks.)" msgstr "" -#: howto/regex.rst:1350 +#: howto/regex.rst:1354 msgid "Using re.VERBOSE" msgstr "" -#: howto/regex.rst:1352 +#: howto/regex.rst:1356 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 " @@ -2209,14 +2217,14 @@ msgid "" "making them difficult to read and understand." msgstr "" -#: howto/regex.rst:1357 +#: howto/regex.rst:1361 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 "" -#: howto/regex.rst:1361 +#: howto/regex.rst:1365 msgid "" "The ``re.VERBOSE`` flag has several effects. Whitespace in the regular " "expression that *isn't* inside a character class is ignored. This means " @@ -2227,7 +2235,7 @@ msgid "" "quoted strings, this enables REs to be formatted more neatly::" msgstr "" -#: howto/regex.rst:1369 +#: howto/regex.rst:1373 msgid "" "pat = re.compile(r\"\"\"\n" " \\s* # Skip leading whitespace\n" @@ -2239,19 +2247,19 @@ msgid "" "\"\"\", re.VERBOSE)" msgstr "" -#: howto/regex.rst:1378 +#: howto/regex.rst:1382 msgid "This is far more readable than::" msgstr "" -#: howto/regex.rst:1380 +#: howto/regex.rst:1384 msgid "pat = re.compile(r\"\\s*(?P
[^:]+)\\s*:(?P.*?)\\s*$\")" msgstr "" -#: howto/regex.rst:1384 +#: howto/regex.rst:1388 msgid "Feedback" msgstr "" -#: howto/regex.rst:1386 +#: howto/regex.rst:1390 msgid "" "Regular expressions are a complicated topic. Did this document help you " "understand them? Were there parts that were unclear, or Problems you " @@ -2259,7 +2267,7 @@ msgid "" "improvements to the author." msgstr "" -#: howto/regex.rst:1391 +#: howto/regex.rst:1395 msgid "" "The most complete book on regular expressions is almost certainly Jeffrey " "Friedl's Mastering Regular Expressions, published by O'Reilly. " diff --git a/howto/remote_debugging.po b/howto/remote_debugging.po index 8ff49507..3a356211 100644 --- a/howto/remote_debugging.po +++ b/howto/remote_debugging.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -23,11 +23,143 @@ msgstr "" #: howto/remote_debugging.rst:6 msgid "" +"This protocol enables external tools to attach to a running CPython process " +"and execute Python code remotely." +msgstr "" + +#: howto/remote_debugging.rst:9 +msgid "" +"Most platforms require elevated privileges to attach to another Python " +"process." +msgstr "" + +#: howto/remote_debugging.rst:14 +msgid "Permission requirements" +msgstr "" + +#: howto/remote_debugging.rst:16 +msgid "" +"Attaching to a running Python process for remote debugging requires elevated " +"privileges on most platforms. The specific requirements and troubleshooting " +"steps depend on your operating system:" +msgstr "" + +#: howto/remote_debugging.rst:21 +msgid "Linux" +msgstr "" + +#: howto/remote_debugging.rst:22 +msgid "" +"The tracer process must have the ``CAP_SYS_PTRACE`` capability or equivalent " +"privileges. You can only trace processes you own and can signal. Tracing may " +"fail if the process is already being traced, or if it is running with set-" +"user-ID or set-group-ID. Security modules like Yama may further restrict " +"tracing." +msgstr "" + +#: howto/remote_debugging.rst:28 +msgid "To temporarily relax ptrace restrictions (until reboot), run:" +msgstr "" + +#: howto/remote_debugging.rst:30 +msgid "``echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope``" +msgstr "" + +#: howto/remote_debugging.rst:34 +msgid "" +"Disabling ``ptrace_scope`` reduces system hardening and should only be done " +"in trusted environments." +msgstr "" + +#: howto/remote_debugging.rst:37 +msgid "" +"If running inside a container, use ``--cap-add=SYS_PTRACE`` or ``--" +"privileged``, and run as root if needed." +msgstr "" + +#: howto/remote_debugging.rst:40 +msgid "Try re-running the command with elevated privileges:" +msgstr "" + +#: howto/remote_debugging.rst:42 +msgid "``sudo -E !!``" +msgstr "" + +#: howto/remote_debugging.rst:46 +msgid "macOS" +msgstr "" + +#: howto/remote_debugging.rst:47 +msgid "" +"To attach to another process, you typically need to run your debugging tool " +"with elevated privileges. This can be done by using ``sudo`` or running as " +"root." +msgstr "" + +#: howto/remote_debugging.rst:51 +msgid "" +"Even when attaching to processes you own, macOS may block debugging unless " +"the debugger is run with root privileges due to system security restrictions." +msgstr "" + +#: howto/remote_debugging.rst:56 +msgid "Windows" +msgstr "" + +#: howto/remote_debugging.rst:57 +msgid "" +"To attach to another process, you usually need to run your debugging tool " +"with administrative privileges. Start the command prompt or terminal as " +"Administrator." +msgstr "" + +#: howto/remote_debugging.rst:61 +msgid "" +"Some processes may still be inaccessible even with Administrator rights, " +"unless you have the ``SeDebugPrivilege`` privilege enabled." +msgstr "" + +#: howto/remote_debugging.rst:64 +msgid "" +"To resolve file or folder access issues, adjust the security permissions:" +msgstr "" + +#: howto/remote_debugging.rst:66 +msgid "Right-click the file or folder and select **Properties**." +msgstr "" + +#: howto/remote_debugging.rst:67 +msgid "Go to the **Security** tab to view users and groups with access." +msgstr "" + +#: howto/remote_debugging.rst:68 +msgid "Click **Edit** to modify permissions." +msgstr "" + +#: howto/remote_debugging.rst:69 +msgid "Select your user account." +msgstr "" + +#: howto/remote_debugging.rst:70 +msgid "In **Permissions**, check **Read** or **Full control** as needed." +msgstr "" + +#: howto/remote_debugging.rst:71 +msgid "Click **Apply**, then **OK** to confirm." +msgstr "" + +#: howto/remote_debugging.rst:76 +msgid "" +"Ensure you've satisfied all :ref:`permission-requirements` before proceeding." +msgstr "" + +#: howto/remote_debugging.rst:78 +msgid "" "This section describes the low-level protocol that enables external tools to " "inject and execute a Python script within a running CPython process." msgstr "" -#: howto/remote_debugging.rst:9 +#: howto/remote_debugging.rst:81 msgid "" "This mechanism forms the basis of the :func:`sys.remote_exec` function, " "which instructs a remote Python process to execute a ``.py`` file. However, " @@ -38,14 +170,14 @@ msgid "" "of the protocol, regardless of programming language." msgstr "" -#: howto/remote_debugging.rst:19 +#: howto/remote_debugging.rst:91 msgid "" "The execution of the injected script depends on the interpreter reaching a " "safe evaluation point. As a result, execution may be delayed depending on " "the runtime state of the target process." msgstr "" -#: howto/remote_debugging.rst:23 +#: howto/remote_debugging.rst:95 msgid "" "Once injected, the script is executed by the interpreter within the target " "process the next time a safe evaluation point is reached. This approach " @@ -53,7 +185,7 @@ msgid "" "structure of the running Python application." msgstr "" -#: howto/remote_debugging.rst:28 +#: howto/remote_debugging.rst:100 msgid "" "Subsequent sections provide a step-by-step description of the protocol, " "including techniques for locating interpreter structures in memory, safely " @@ -62,11 +194,11 @@ msgid "" "included to clarify each operation." msgstr "" -#: howto/remote_debugging.rst:35 +#: howto/remote_debugging.rst:107 msgid "Locating the PyRuntime structure" msgstr "" -#: howto/remote_debugging.rst:37 +#: howto/remote_debugging.rst:109 msgid "" "CPython places the ``PyRuntime`` structure in a dedicated binary section to " "help external tools find it at runtime. The name and format of this section " @@ -75,14 +207,14 @@ msgid "" "structure by examining the binary on disk." msgstr "" -#: howto/remote_debugging.rst:43 +#: howto/remote_debugging.rst:115 msgid "" "The ``PyRuntime`` structure contains CPython’s global interpreter state and " "provides access to other internal data, including the list of interpreters, " "thread states, and debugger support fields." msgstr "" -#: howto/remote_debugging.rst:47 +#: howto/remote_debugging.rst:119 msgid "" "To work with a remote Python process, a debugger must first find the memory " "address of the ``PyRuntime`` structure in the target process. This address " @@ -90,65 +222,65 @@ msgid "" "where the operating system loaded the binary." msgstr "" -#: howto/remote_debugging.rst:52 +#: howto/remote_debugging.rst:124 msgid "" "The method for finding ``PyRuntime`` depends on the platform, but the steps " "are the same in general:" msgstr "" -#: howto/remote_debugging.rst:55 +#: howto/remote_debugging.rst:127 msgid "" "Find the base address where the Python binary or shared library was loaded " "in the target process." msgstr "" -#: howto/remote_debugging.rst:57 +#: howto/remote_debugging.rst:129 msgid "" "Use the on-disk binary to locate the offset of the ``.PyRuntime`` section." msgstr "" -#: howto/remote_debugging.rst:58 +#: howto/remote_debugging.rst:130 msgid "" "Add the section offset to the base address to compute the address in memory." msgstr "" -#: howto/remote_debugging.rst:60 +#: howto/remote_debugging.rst:132 msgid "" "The sections below explain how to do this on each supported platform and " "include example code." msgstr "" -#: howto/remote_debugging.rst:64 +#: howto/remote_debugging.rst:136 msgid "Linux (ELF)" msgstr "" -#: howto/remote_debugging.rst:65 +#: howto/remote_debugging.rst:137 msgid "To find the ``PyRuntime`` structure on Linux:" msgstr "" -#: howto/remote_debugging.rst:67 +#: howto/remote_debugging.rst:139 msgid "" "Read the process’s memory map (for example, ``/proc//maps``) to find " "the address where the Python executable or ``libpython`` was loaded." msgstr "" -#: howto/remote_debugging.rst:69 +#: howto/remote_debugging.rst:141 msgid "" "Parse the ELF section headers in the binary to get the offset of the ``." "PyRuntime`` section." msgstr "" -#: howto/remote_debugging.rst:71 +#: howto/remote_debugging.rst:143 msgid "" "Add that offset to the base address from step 1 to get the memory address of " "``PyRuntime``." msgstr "" -#: howto/remote_debugging.rst:136 howto/remote_debugging.rst:475 +#: howto/remote_debugging.rst:208 howto/remote_debugging.rst:547 msgid "The following is an example implementation::" msgstr "" -#: howto/remote_debugging.rst:76 +#: howto/remote_debugging.rst:148 msgid "" "def find_py_runtime_linux(pid: int) -> int:\n" " # Step 1: Try to find the Python executable in memory\n" @@ -171,7 +303,7 @@ msgid "" " return base_address + section_offset" msgstr "" -#: howto/remote_debugging.rst:97 +#: howto/remote_debugging.rst:169 msgid "" "On Linux systems, there are two main approaches to read memory from another " "process. The first is through the ``/proc`` filesystem, specifically by " @@ -185,7 +317,7 @@ msgid "" "multiple context switches between the tracer and tracee processes." msgstr "" -#: howto/remote_debugging.rst:108 +#: howto/remote_debugging.rst:180 msgid "" "For parsing ELF sections, the process involves reading and interpreting the " "ELF file format structures from the binary file on disk. The ELF header " @@ -198,34 +330,34 @@ msgid "" "memory." msgstr "" -#: howto/remote_debugging.rst:117 +#: howto/remote_debugging.rst:189 msgid "" "You can read more about the ELF file format in the `ELF specification " "`_." msgstr "" -#: howto/remote_debugging.rst:122 +#: howto/remote_debugging.rst:194 msgid "macOS (Mach-O)" msgstr "" -#: howto/remote_debugging.rst:123 +#: howto/remote_debugging.rst:195 msgid "To find the ``PyRuntime`` structure on macOS:" msgstr "" -#: howto/remote_debugging.rst:125 +#: howto/remote_debugging.rst:197 msgid "" "Call ``task_for_pid()`` to get the ``mach_port_t`` task port for the target " "process. This handle is needed to read memory using APIs like " "``mach_vm_read_overwrite`` and ``mach_vm_region``." msgstr "" -#: howto/remote_debugging.rst:128 +#: howto/remote_debugging.rst:200 msgid "" "Scan the memory regions to find the one containing the Python executable or " "``libpython``." msgstr "" -#: howto/remote_debugging.rst:130 +#: howto/remote_debugging.rst:202 msgid "" "Load the binary file from disk and parse the Mach-O headers to find the " "section named ``PyRuntime`` in the ``__DATA`` segment. On macOS, symbol " @@ -234,7 +366,7 @@ msgid "" "is not affected." msgstr "" -#: howto/remote_debugging.rst:138 +#: howto/remote_debugging.rst:210 msgid "" "def find_py_runtime_macos(pid: int) -> int:\n" " # Step 1: Get access to the process's memory\n" @@ -260,7 +392,7 @@ msgid "" " return base_address + section_offset" msgstr "" -#: howto/remote_debugging.rst:161 +#: howto/remote_debugging.rst:233 msgid "" "On macOS, accessing another process's memory requires using Mach-O specific " "APIs and file formats. The first step is obtaining a ``task_port`` handle " @@ -269,7 +401,7 @@ msgid "" "``mach_vm_read_overwrite()``." msgstr "" -#: howto/remote_debugging.rst:167 +#: howto/remote_debugging.rst:239 msgid "" "The process memory can be examined using ``mach_vm_region()`` to scan " "through the virtual memory space, while ``proc_regionfilename()`` helps " @@ -278,7 +410,7 @@ msgid "" "locate the ``PyRuntime`` structure." msgstr "" -#: howto/remote_debugging.rst:172 +#: howto/remote_debugging.rst:244 msgid "" "The Mach-O format organizes code and data into segments and sections. The " "``PyRuntime`` structure lives in a section named ``__PyRuntime`` within the " @@ -289,22 +421,22 @@ msgid "" "section offsets from the Mach-O headers." msgstr "" -#: howto/remote_debugging.rst:180 +#: howto/remote_debugging.rst:252 msgid "" "Note that accessing another process's memory on macOS typically requires " "elevated privileges - either root access or special security entitlements " "granted to the debugging process." msgstr "" -#: howto/remote_debugging.rst:186 +#: howto/remote_debugging.rst:258 msgid "Windows (PE)" msgstr "" -#: howto/remote_debugging.rst:187 +#: howto/remote_debugging.rst:259 msgid "To find the ``PyRuntime`` structure on Windows:" msgstr "" -#: howto/remote_debugging.rst:189 +#: howto/remote_debugging.rst:261 msgid "" "Use the ToolHelp API to enumerate all modules loaded in the target process. " "This is done using functions such as `CreateToolhelp32Snapshot `_." msgstr "" -#: howto/remote_debugging.rst:196 +#: howto/remote_debugging.rst:268 msgid "" "Identify the module corresponding to :file:`python.exe` or :file:`python{XY}." "dll`, where ``X`` and ``Y`` are the major and minor version numbers of the " "Python version, and record its base address." msgstr "" -#: howto/remote_debugging.rst:199 +#: howto/remote_debugging.rst:271 msgid "" "Locate the ``PyRuntim`` section. Due to the PE format's 8-character limit on " "section names (defined as ``IMAGE_SIZEOF_SHORT_NAME``), the original name " @@ -330,13 +462,13 @@ msgid "" "structure." msgstr "" -#: howto/remote_debugging.rst:203 +#: howto/remote_debugging.rst:275 msgid "" "Retrieve the section’s relative virtual address (RVA) and add it to the base " "address of the module." msgstr "" -#: howto/remote_debugging.rst:208 +#: howto/remote_debugging.rst:280 msgid "" "def find_py_runtime_windows(pid: int) -> int:\n" " # Step 1: Try to find the Python executable in memory\n" @@ -360,7 +492,7 @@ msgid "" " return base_address + section_rva" msgstr "" -#: howto/remote_debugging.rst:230 +#: howto/remote_debugging.rst:302 msgid "" "On Windows, accessing another process's memory requires using the Windows " "API functions like ``CreateToolhelp32Snapshot()`` and ``Module32First()/" @@ -369,14 +501,14 @@ msgid "" "memory operations through ``ReadProcessMemory()``." msgstr "" -#: howto/remote_debugging.rst:236 +#: howto/remote_debugging.rst:308 msgid "" "The process memory can be examined by enumerating loaded modules to find the " "Python binary or DLL. When found, its PE headers need to be parsed to locate " "the ``PyRuntime`` structure." msgstr "" -#: howto/remote_debugging.rst:240 +#: howto/remote_debugging.rst:312 msgid "" "The PE format organizes code and data into sections. The ``PyRuntime`` " "structure lives in a section named \"PyRuntim\" (truncated from " @@ -387,25 +519,25 @@ msgid "" "address from the PE section headers." msgstr "" -#: howto/remote_debugging.rst:247 +#: howto/remote_debugging.rst:319 msgid "" "Note that accessing another process's memory on Windows typically requires " "appropriate privileges - either administrative access or the " "``SeDebugPrivilege`` privilege granted to the debugging process." msgstr "" -#: howto/remote_debugging.rst:253 +#: howto/remote_debugging.rst:325 msgid "Reading _Py_DebugOffsets" msgstr "" -#: howto/remote_debugging.rst:255 +#: howto/remote_debugging.rst:327 msgid "" "Once the address of the ``PyRuntime`` structure has been determined, the " "next step is to read the ``_Py_DebugOffsets`` structure located at the " "beginning of the ``PyRuntime`` block." msgstr "" -#: howto/remote_debugging.rst:259 +#: howto/remote_debugging.rst:331 msgid "" "This structure provides version-specific field offsets that are needed to " "safely read interpreter and thread state memory. These offsets vary between " @@ -413,11 +545,11 @@ msgid "" "compatible." msgstr "" -#: howto/remote_debugging.rst:263 +#: howto/remote_debugging.rst:335 msgid "To read and check the debug offsets, follow these steps:" msgstr "" -#: howto/remote_debugging.rst:265 +#: howto/remote_debugging.rst:337 msgid "" "Read memory from the target process starting at the ``PyRuntime`` address, " "covering the same number of bytes as the ``_Py_DebugOffsets`` structure. " @@ -426,47 +558,47 @@ msgid "" "same within a given minor version, but may change in major versions." msgstr "" -#: howto/remote_debugging.rst:271 +#: howto/remote_debugging.rst:343 msgid "Check that the structure contains valid data:" msgstr "" -#: howto/remote_debugging.rst:273 +#: howto/remote_debugging.rst:345 msgid "The ``cookie`` field must match the expected debug marker." msgstr "" -#: howto/remote_debugging.rst:274 +#: howto/remote_debugging.rst:346 msgid "" "The ``version`` field must match the version of the Python interpreter used " "by the debugger." msgstr "" -#: howto/remote_debugging.rst:276 +#: howto/remote_debugging.rst:348 msgid "" "If either the debugger or the target process is using a pre-release version " "(for example, an alpha, beta, or release candidate), the versions must match " "exactly." msgstr "" -#: howto/remote_debugging.rst:279 +#: howto/remote_debugging.rst:351 msgid "" "The ``free_threaded`` field must have the same value in both the debugger " "and the target process." msgstr "" -#: howto/remote_debugging.rst:282 +#: howto/remote_debugging.rst:354 msgid "" "If the structure is valid, the offsets it contains can be used to locate " "fields in memory. If any check fails, the debugger should stop the operation " "to avoid reading memory in the wrong format." msgstr "" -#: howto/remote_debugging.rst:286 +#: howto/remote_debugging.rst:358 msgid "" "The following is an example implementation that reads and checks " "``_Py_DebugOffsets``::" msgstr "" -#: howto/remote_debugging.rst:289 +#: howto/remote_debugging.rst:361 msgid "" "def read_debug_offsets(pid: int, py_runtime_addr: int) -> DebugOffsets:\n" " # Step 1: Read memory from the target process at the PyRuntime address\n" @@ -490,11 +622,11 @@ msgid "" " return debug_offsets" msgstr "" -#: howto/remote_debugging.rst:314 +#: howto/remote_debugging.rst:386 msgid "**Process suspension recommended**" msgstr "" -#: howto/remote_debugging.rst:316 +#: howto/remote_debugging.rst:388 msgid "" "To avoid race conditions and ensure memory consistency, it is strongly " "recommended that the target process be suspended before performing any " @@ -504,14 +636,14 @@ msgid "" "memory reads or writes." msgstr "" -#: howto/remote_debugging.rst:323 +#: howto/remote_debugging.rst:395 msgid "" "A debugger may suspend execution by attaching to the process with ``ptrace`` " "or by sending a ``SIGSTOP`` signal. Execution should only be resumed after " "debugger-side memory operations are complete." msgstr "" -#: howto/remote_debugging.rst:329 +#: howto/remote_debugging.rst:401 msgid "" "Some tools, such as profilers or sampling-based debuggers, may operate on a " "running process without suspension. In such cases, tools must be explicitly " @@ -520,11 +652,11 @@ msgid "" "robust approach." msgstr "" -#: howto/remote_debugging.rst:337 +#: howto/remote_debugging.rst:409 msgid "Locating the interpreter and thread state" msgstr "" -#: howto/remote_debugging.rst:339 +#: howto/remote_debugging.rst:411 msgid "" "Before code can be injected and executed in a remote Python process, the " "debugger must choose a thread in which to schedule execution. This is " @@ -534,7 +666,7 @@ msgid "" "request execution of injected scripts." msgstr "" -#: howto/remote_debugging.rst:346 +#: howto/remote_debugging.rst:418 msgid "" "The ``PyThreadState`` structure represents a thread running inside a Python " "interpreter. It maintains the thread’s evaluation context and contains the " @@ -543,7 +675,7 @@ msgid "" "remotely." msgstr "" -#: howto/remote_debugging.rst:351 +#: howto/remote_debugging.rst:423 msgid "" "A thread is typically selected based on its role or ID. In most cases, the " "main thread is used, but some tools may target a specific thread by its " @@ -551,11 +683,11 @@ msgid "" "both the interpreter and the associated thread state structures in memory." msgstr "" -#: howto/remote_debugging.rst:356 +#: howto/remote_debugging.rst:428 msgid "The relevant internal structures are defined as follows:" msgstr "" -#: howto/remote_debugging.rst:358 +#: howto/remote_debugging.rst:430 msgid "" "``PyInterpreterState`` represents an isolated Python interpreter instance. " "Each interpreter maintains its own set of imported modules, built-in state, " @@ -563,52 +695,52 @@ msgid "" "interpreter, CPython supports multiple interpreters in the same process." msgstr "" -#: howto/remote_debugging.rst:363 +#: howto/remote_debugging.rst:435 msgid "" "``PyThreadState`` represents a thread running within an interpreter. It " "contains execution state and the control fields used by the debugger." msgstr "" -#: howto/remote_debugging.rst:366 +#: howto/remote_debugging.rst:438 msgid "To locate a thread:" msgstr "" -#: howto/remote_debugging.rst:368 +#: howto/remote_debugging.rst:440 msgid "" "Use the offset ``runtime_state.interpreters_head`` to obtain the address of " "the first interpreter in the ``PyRuntime`` structure. This is the entry " "point to the linked list of active interpreters." msgstr "" -#: howto/remote_debugging.rst:372 +#: howto/remote_debugging.rst:444 msgid "" "Use the offset ``interpreter_state.threads_main`` to access the main thread " "state associated with the selected interpreter. This is typically the most " "reliable thread to target." msgstr "" -#: howto/remote_debugging.rst:376 +#: howto/remote_debugging.rst:448 msgid "" -"3. Optionally, use the offset ``interpreter_state.threads_head`` to iterate " +"Optionally, use the offset ``interpreter_state.threads_head`` to iterate " "through the linked list of all thread states. Each ``PyThreadState`` " "structure contains a ``native_thread_id`` field, which may be compared to a " "target thread ID to find a specific thread." msgstr "" -#: howto/remote_debugging.rst:381 +#: howto/remote_debugging.rst:453 msgid "" -"1. Once a valid ``PyThreadState`` has been found, its address can be used in " +"Once a valid ``PyThreadState`` has been found, its address can be used in " "later steps of the protocol, such as writing debugger control fields and " "scheduling execution." msgstr "" -#: howto/remote_debugging.rst:385 +#: howto/remote_debugging.rst:457 msgid "" "The following is an example implementation that locates the main thread " "state::" msgstr "" -#: howto/remote_debugging.rst:387 +#: howto/remote_debugging.rst:459 msgid "" "def find_main_thread_state(\n" " pid: int, py_runtime_addr: int, debug_offsets: DebugOffsets,\n" @@ -632,13 +764,13 @@ msgid "" " return thread_state_addr" msgstr "" -#: howto/remote_debugging.rst:408 +#: howto/remote_debugging.rst:480 msgid "" "The following example demonstrates how to locate a thread by its native " "thread ID::" msgstr "" -#: howto/remote_debugging.rst:411 +#: howto/remote_debugging.rst:483 msgid "" "def find_thread_by_id(\n" " pid: int,\n" @@ -667,18 +799,18 @@ msgid "" " raise RuntimeError(\"Thread with the given ID was not found\")" msgstr "" -#: howto/remote_debugging.rst:438 +#: howto/remote_debugging.rst:510 msgid "" "Once a valid thread state has been located, the debugger can proceed with " "modifying its control fields and scheduling execution, as described in the " "next section." msgstr "" -#: howto/remote_debugging.rst:443 +#: howto/remote_debugging.rst:515 msgid "Writing control information" msgstr "" -#: howto/remote_debugging.rst:445 +#: howto/remote_debugging.rst:517 msgid "" "Once a valid ``PyThreadState`` structure has been identified, the debugger " "may modify control fields within it to schedule the execution of a specified " @@ -687,7 +819,7 @@ msgid "" "code at a safe point in the evaluation loop." msgstr "" -#: howto/remote_debugging.rst:451 +#: howto/remote_debugging.rst:523 msgid "" "Each ``PyThreadState`` contains a ``_PyRemoteDebuggerSupport`` structure " "used for communication between the debugger and the interpreter. The " @@ -695,57 +827,47 @@ msgid "" "and include the following:" msgstr "" -#: howto/remote_debugging.rst:456 -msgid "" -"``debugger_script_path``: A fixed-size buffer that holds the full path to a" -msgstr "" - -#: howto/remote_debugging.rst:457 +#: howto/remote_debugging.rst:528 msgid "" +"``debugger_script_path``: A fixed-size buffer that holds the full path to a " "Python source file (``.py``). This file must be accessible and readable by " "the target process when execution is triggered." msgstr "" -#: howto/remote_debugging.rst:460 +#: howto/remote_debugging.rst:532 msgid "" -"``debugger_pending_call``: An integer flag. Setting this to ``1`` tells the" -msgstr "" - -#: howto/remote_debugging.rst:461 -msgid "interpreter that a script is ready to be executed." -msgstr "" - -#: howto/remote_debugging.rst:463 -msgid "``eval_breaker``: A field checked by the interpreter during execution." +"``debugger_pending_call``: An integer flag. Setting this to ``1`` tells the " +"interpreter that a script is ready to be executed." msgstr "" -#: howto/remote_debugging.rst:464 +#: howto/remote_debugging.rst:535 msgid "" +"``eval_breaker``: A field checked by the interpreter during execution. " "Setting bit 5 (``_PY_EVAL_PLEASE_STOP_BIT``, value ``1U << 5``) in this " "field causes the interpreter to pause and check for debugger activity." msgstr "" -#: howto/remote_debugging.rst:467 +#: howto/remote_debugging.rst:539 msgid "" "To complete the injection, the debugger must perform the following steps:" msgstr "" -#: howto/remote_debugging.rst:469 +#: howto/remote_debugging.rst:541 msgid "Write the full script path into the ``debugger_script_path`` buffer." msgstr "" -#: howto/remote_debugging.rst:470 +#: howto/remote_debugging.rst:542 msgid "Set ``debugger_pending_call`` to ``1``." msgstr "" -#: howto/remote_debugging.rst:471 +#: howto/remote_debugging.rst:543 msgid "" "Read the current value of ``eval_breaker``, set bit 5 " "(``_PY_EVAL_PLEASE_STOP_BIT``), and write the updated value back. This " "signals the interpreter to check for debugger activity." msgstr "" -#: howto/remote_debugging.rst:477 +#: howto/remote_debugging.rst:549 msgid "" "def inject_script(\n" " pid: int,\n" @@ -784,20 +906,20 @@ msgid "" " write_int(pid, eval_breaker_ptr, breaker)" msgstr "" -#: howto/remote_debugging.rst:514 +#: howto/remote_debugging.rst:586 msgid "" "Once these fields are set, the debugger may resume the process (if it was " "suspended). The interpreter will process the request at the next safe " "evaluation point, load the script from disk, and execute it." msgstr "" -#: howto/remote_debugging.rst:518 +#: howto/remote_debugging.rst:590 msgid "" "It is the responsibility of the debugger to ensure that the script file " "remains present and accessible to the target process during execution." msgstr "" -#: howto/remote_debugging.rst:523 +#: howto/remote_debugging.rst:595 msgid "" "Script execution is asynchronous. The script file cannot be deleted " "immediately after injection. The debugger should wait until the injected " @@ -808,41 +930,41 @@ msgid "" "the file is no longer needed." msgstr "" -#: howto/remote_debugging.rst:532 +#: howto/remote_debugging.rst:604 msgid "Summary" msgstr "" -#: howto/remote_debugging.rst:534 +#: howto/remote_debugging.rst:606 msgid "To inject and execute a Python script in a remote process:" msgstr "" -#: howto/remote_debugging.rst:536 +#: howto/remote_debugging.rst:608 msgid "Locate the ``PyRuntime`` structure in the target process’s memory." msgstr "" -#: howto/remote_debugging.rst:537 +#: howto/remote_debugging.rst:609 msgid "" "Read and validate the ``_Py_DebugOffsets`` structure at the beginning of " "``PyRuntime``." msgstr "" -#: howto/remote_debugging.rst:539 +#: howto/remote_debugging.rst:611 msgid "Use the offsets to locate a valid ``PyThreadState``." msgstr "" -#: howto/remote_debugging.rst:540 +#: howto/remote_debugging.rst:612 msgid "Write the path to a Python script into ``debugger_script_path``." msgstr "" -#: howto/remote_debugging.rst:541 +#: howto/remote_debugging.rst:613 msgid "Set the ``debugger_pending_call`` flag to ``1``." msgstr "" -#: howto/remote_debugging.rst:542 +#: howto/remote_debugging.rst:614 msgid "Set ``_PY_EVAL_PLEASE_STOP_BIT`` in the ``eval_breaker`` field." msgstr "" -#: howto/remote_debugging.rst:543 +#: howto/remote_debugging.rst:615 msgid "" "Resume the process (if suspended). The script will execute at the next safe " "evaluation point." diff --git a/howto/sockets.po b/howto/sockets.po index 7a66411c..c35a0dda 100644 --- a/howto/sockets.po +++ b/howto/sockets.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/howto/sorting.po b/howto/sorting.po index d331a623..48833555 100644 --- a/howto/sorting.po +++ b/howto/sorting.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/howto/timerfd.po b/howto/timerfd.po index a737a982..93dc32a8 100644 --- a/howto/timerfd.po +++ b/howto/timerfd.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/howto/unicode.po b/howto/unicode.po index 6ccddee3..7b8ebf05 100644 --- a/howto/unicode.po +++ b/howto/unicode.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -252,7 +252,7 @@ msgid "" "varies depending on the hardware on which the string was encoded." msgstr "" -#: howto/unicode.rst:514 howto/unicode.rst:735 +#: howto/unicode.rst:516 howto/unicode.rst:737 msgid "References" msgstr "" @@ -551,11 +551,11 @@ msgid "" "as already mentioned. See also :pep:`263` for more information." msgstr "" -#: howto/unicode.rst:356 +#: howto/unicode.rst:358 msgid "Unicode Properties" msgstr "" -#: howto/unicode.rst:358 +#: howto/unicode.rst:360 msgid "" "The Unicode specification includes a database of information about code " "points. For each defined code point, the information includes the " @@ -565,13 +565,13 @@ msgid "" "related properties, such as how to use the code point in bidirectional text." msgstr "" -#: howto/unicode.rst:366 +#: howto/unicode.rst:368 msgid "" "The following program displays some information about several characters, " "and prints the numeric value of one particular character::" msgstr "" -#: howto/unicode.rst:369 +#: howto/unicode.rst:371 msgid "" "import unicodedata\n" "\n" @@ -585,11 +585,11 @@ msgid "" "print(unicodedata.numeric(u[1]))" msgstr "" -#: howto/unicode.rst:380 +#: howto/unicode.rst:382 msgid "When run, this prints:" msgstr "" -#: howto/unicode.rst:382 +#: howto/unicode.rst:384 msgid "" "0 00e9 Ll LATIN SMALL LETTER E WITH ACUTE\n" "1 0bf2 No TAMIL NUMBER ONE THOUSAND\n" @@ -599,7 +599,7 @@ msgid "" "1000.0" msgstr "" -#: howto/unicode.rst:391 +#: howto/unicode.rst:393 msgid "" "The category codes are abbreviations describing the nature of the character. " "These are grouped into categories such as \"Letter\", \"Number\", " @@ -612,11 +612,11 @@ msgid "" "codes." msgstr "" -#: howto/unicode.rst:402 +#: howto/unicode.rst:404 msgid "Comparing Strings" msgstr "" -#: howto/unicode.rst:404 +#: howto/unicode.rst:406 msgid "" "Unicode adds some complication to comparing strings, because the same set of " "characters can be represented by different sequences of code points. For " @@ -626,7 +626,7 @@ msgid "" "when printed, but one is a string of length 1 and the other is of length 2." msgstr "" -#: howto/unicode.rst:412 +#: howto/unicode.rst:414 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 " @@ -635,14 +635,14 @@ msgid "" "which becomes the pair of lowercase letters 'ss'." msgstr "" -#: howto/unicode.rst:421 +#: howto/unicode.rst:423 msgid "" ">>> street = 'Gürzenichstraße'\n" ">>> street.casefold()\n" "'gürzenichstrasse'" msgstr "" -#: howto/unicode.rst:425 +#: howto/unicode.rst:427 msgid "" "A second tool is the :mod:`unicodedata` module's :func:`~unicodedata." "normalize` function that converts strings to one of several normal forms, " @@ -652,7 +652,7 @@ msgid "" "combining characters differently:" msgstr "" -#: howto/unicode.rst:434 +#: howto/unicode.rst:436 msgid "" "import unicodedata\n" "\n" @@ -670,11 +670,11 @@ msgid "" "print(compare_strs(single_char, multiple_chars))" msgstr "" -#: howto/unicode.rst:448 +#: howto/unicode.rst:450 msgid "When run, this outputs:" msgstr "" -#: howto/unicode.rst:450 +#: howto/unicode.rst:452 msgid "" "$ python compare-strs.py\n" "length of first string= 1\n" @@ -682,18 +682,18 @@ msgid "" "True" msgstr "" -#: howto/unicode.rst:457 +#: howto/unicode.rst:459 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 "" -#: howto/unicode.rst:461 +#: howto/unicode.rst:463 msgid "The Unicode Standard also specifies how to do caseless comparisons::" msgstr "" -#: howto/unicode.rst:463 +#: howto/unicode.rst:465 msgid "" "import unicodedata\n" "\n" @@ -711,7 +711,7 @@ msgid "" "print(compare_caseless(single_char, multiple_chars))" msgstr "" -#: howto/unicode.rst:477 +#: howto/unicode.rst:479 msgid "" "This will print ``True``. (Why is :func:`!NFD` invoked twice? Because " "there are a few characters that make :meth:`~str.casefold` return a non-" @@ -719,11 +719,11 @@ msgid "" "3.13 of the Unicode Standard for a discussion and an example.)" msgstr "" -#: howto/unicode.rst:484 +#: howto/unicode.rst:486 msgid "Unicode Regular Expressions" msgstr "" -#: howto/unicode.rst:486 +#: howto/unicode.rst:488 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 " @@ -733,13 +733,13 @@ msgid "" "in the ``'Nd'`` category." msgstr "" -#: howto/unicode.rst:493 +#: howto/unicode.rst:495 msgid "" "The string in this example has the number 57 written in both Thai and Arabic " "numerals::" msgstr "" -#: howto/unicode.rst:496 +#: howto/unicode.rst:498 msgid "" "import re\n" "p = re.compile(r'\\d+')\n" @@ -749,51 +749,51 @@ msgid "" "print(repr(m.group()))" msgstr "" -#: howto/unicode.rst:503 +#: howto/unicode.rst:505 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 "" -#: howto/unicode.rst:507 +#: howto/unicode.rst:509 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 "" -#: howto/unicode.rst:518 +#: howto/unicode.rst:520 msgid "Some good alternative discussions of Python's Unicode support are:" msgstr "" -#: howto/unicode.rst:520 +#: howto/unicode.rst:522 msgid "" "`Processing Text Files in Python 3 `_, by Nick Coghlan." msgstr "" -#: howto/unicode.rst:521 +#: howto/unicode.rst:523 msgid "" "`Pragmatic Unicode `_, a PyCon " "2012 presentation by Ned Batchelder." msgstr "" -#: howto/unicode.rst:523 +#: howto/unicode.rst:525 msgid "" "The :class:`str` type is described in the Python library reference at :ref:" "`textseq`." msgstr "" -#: howto/unicode.rst:526 +#: howto/unicode.rst:528 msgid "The documentation for the :mod:`unicodedata` module." msgstr "" -#: howto/unicode.rst:528 +#: howto/unicode.rst:530 msgid "The documentation for the :mod:`codecs` module." msgstr "" -#: howto/unicode.rst:530 +#: howto/unicode.rst:532 msgid "" "Marc-André Lemburg gave `a presentation titled \"Python and Unicode\" (PDF " "slides) `_ at " @@ -802,18 +802,18 @@ msgid "" "``unicode`` and literals start with ``u``)." msgstr "" -#: howto/unicode.rst:538 +#: howto/unicode.rst:540 msgid "Reading and Writing Unicode Data" msgstr "" -#: howto/unicode.rst:540 +#: howto/unicode.rst:542 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 "" -#: howto/unicode.rst:544 +#: howto/unicode.rst:546 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 " @@ -822,7 +822,7 @@ msgid "" "valued columns and can return Unicode values from an SQL query." msgstr "" -#: howto/unicode.rst:550 +#: howto/unicode.rst:552 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 " @@ -831,7 +831,7 @@ msgid "" "recommended." msgstr "" -#: howto/unicode.rst:555 +#: howto/unicode.rst:557 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-" @@ -845,7 +845,7 @@ msgid "" "version in memory.)" msgstr "" -#: howto/unicode.rst:565 +#: howto/unicode.rst:567 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 " @@ -857,24 +857,24 @@ msgid "" "meth:`str.encode` and :meth:`bytes.decode`." msgstr "" -#: howto/unicode.rst:574 +#: howto/unicode.rst:576 msgid "Reading Unicode from a file is therefore simple::" msgstr "" -#: howto/unicode.rst:576 +#: howto/unicode.rst:578 msgid "" "with open('unicode.txt', encoding='utf-8') as f:\n" " for line in f:\n" " print(repr(line))" msgstr "" -#: howto/unicode.rst:580 +#: howto/unicode.rst:582 msgid "" "It's also possible to open files in update mode, allowing both reading and " "writing::" msgstr "" -#: howto/unicode.rst:583 +#: howto/unicode.rst:585 msgid "" "with open('test', encoding='utf-8', mode='w+') as f:\n" " f.write('\\u4500 blah blah blah\\n')\n" @@ -882,7 +882,7 @@ msgid "" " print(repr(f.readline()[:1]))" msgstr "" -#: howto/unicode.rst:588 +#: howto/unicode.rst:590 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 " @@ -895,7 +895,7 @@ msgid "" "the BOM." msgstr "" -#: howto/unicode.rst:597 +#: howto/unicode.rst:599 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 " @@ -904,11 +904,11 @@ msgid "" "if present." msgstr "" -#: howto/unicode.rst:604 +#: howto/unicode.rst:606 msgid "Unicode filenames" msgstr "" -#: howto/unicode.rst:606 +#: howto/unicode.rst:608 msgid "" "Most of the operating systems in common use today support filenames that " "contain arbitrary Unicode characters. Usually this is implemented by " @@ -921,7 +921,7 @@ msgid "" "encoding is again UTF-8." msgstr "" -#: howto/unicode.rst:616 +#: howto/unicode.rst:618 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 " @@ -930,20 +930,20 @@ msgid "" "and it will be automatically converted to the right encoding for you::" msgstr "" -#: howto/unicode.rst:622 +#: howto/unicode.rst:624 msgid "" "filename = 'filename\\u4500abc'\n" "with open(filename, 'w') as f:\n" " f.write('blah\\n')" msgstr "" -#: howto/unicode.rst:626 +#: howto/unicode.rst:628 msgid "" "Functions in the :mod:`os` module such as :func:`os.stat` will also accept " "Unicode filenames." msgstr "" -#: howto/unicode.rst:629 +#: howto/unicode.rst:631 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 " @@ -956,7 +956,7 @@ msgid "" "error handler>` is UTF-8, running the following program::" msgstr "" -#: howto/unicode.rst:639 +#: howto/unicode.rst:641 msgid "" "fn = 'filename\\u4500abc'\n" "f = open(fn, 'w')\n" @@ -967,24 +967,24 @@ msgid "" "print(os.listdir('.'))" msgstr "" -#: howto/unicode.rst:647 +#: howto/unicode.rst:649 msgid "will produce the following output:" msgstr "" -#: howto/unicode.rst:649 +#: howto/unicode.rst:651 msgid "" "$ python listdir-test.py\n" "[b'filename\\xe4\\x94\\x80abc', ...]\n" "['filename\\u4500abc', ...]" msgstr "" -#: howto/unicode.rst:655 +#: howto/unicode.rst:657 msgid "" "The first list contains UTF-8-encoded filenames, and the second list " "contains the Unicode versions." msgstr "" -#: howto/unicode.rst:658 +#: howto/unicode.rst:660 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 " @@ -992,27 +992,27 @@ msgid "" "now." msgstr "" -#: howto/unicode.rst:665 +#: howto/unicode.rst:667 msgid "Tips for Writing Unicode-aware Programs" msgstr "" -#: howto/unicode.rst:667 +#: howto/unicode.rst:669 msgid "" "This section provides some suggestions on writing software that deals with " "Unicode." msgstr "" -#: howto/unicode.rst:670 +#: howto/unicode.rst:672 msgid "The most important tip is:" msgstr "" -#: howto/unicode.rst:672 +#: howto/unicode.rst:674 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 "" -#: howto/unicode.rst:675 +#: howto/unicode.rst:677 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 " @@ -1021,7 +1021,7 @@ msgid "" "raised." msgstr "" -#: howto/unicode.rst:680 +#: howto/unicode.rst:682 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 " @@ -1033,24 +1033,24 @@ msgid "" "then choose a clever way to hide malicious text in the encoded bytestream." msgstr "" -#: howto/unicode.rst:691 +#: howto/unicode.rst:693 msgid "Converting Between File Encodings" msgstr "" -#: howto/unicode.rst:693 +#: howto/unicode.rst:695 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 "" -#: howto/unicode.rst:697 +#: howto/unicode.rst:699 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 "" -#: howto/unicode.rst:701 +#: howto/unicode.rst:703 msgid "" "new_f = codecs.StreamRecoder(f,\n" " # en/decoder: used by read() to encode its results and\n" @@ -1061,11 +1061,11 @@ msgid "" " codecs.getreader('latin-1'), codecs.getwriter('latin-1') )" msgstr "" -#: howto/unicode.rst:711 +#: howto/unicode.rst:713 msgid "Files in an Unknown Encoding" msgstr "" -#: howto/unicode.rst:713 +#: howto/unicode.rst:715 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 " @@ -1073,7 +1073,7 @@ msgid "" "``surrogateescape`` error handler::" msgstr "" -#: howto/unicode.rst:718 +#: howto/unicode.rst:720 msgid "" "with open(fname, 'r', encoding=\"ascii\", errors=\"surrogateescape\") as f:\n" " data = f.read()\n" @@ -1085,7 +1085,7 @@ msgid "" " f.write(data)" msgstr "" -#: howto/unicode.rst:727 +#: howto/unicode.rst:729 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 " @@ -1093,14 +1093,14 @@ msgid "" "error handler is used to encode the data and write it back out." msgstr "" -#: howto/unicode.rst:737 +#: howto/unicode.rst:739 msgid "" "One section of `Mastering Python 3 Input/Output `_, a PyCon 2010 talk by David " "Beazley, discusses text processing and binary data handling." msgstr "" -#: howto/unicode.rst:741 +#: howto/unicode.rst:743 msgid "" "The `PDF slides for Marc-André Lemburg's presentation \"Writing Unicode-" "aware Applications in Python\" `_ is a PyCon 2013 talk by Benjamin Peterson that " "discusses the internal Unicode representation in Python 3.3." msgstr "" -#: howto/unicode.rst:754 +#: howto/unicode.rst:756 msgid "Acknowledgements" msgstr "" -#: howto/unicode.rst:756 +#: howto/unicode.rst:758 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 "" -#: howto/unicode.rst:760 +#: howto/unicode.rst:762 msgid "" "Thanks to the following people who have noted errors or offered suggestions " "on this article: Éric Araujo, Nicholas Bastin, Nick Coghlan, Marius " diff --git a/howto/urllib2.po b/howto/urllib2.po index 66258a01..48d140aa 100644 --- a/howto/urllib2.po +++ b/howto/urllib2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/installing/index.po b/installing/index.po index 11a0c06c..b5993654 100644 --- a/installing/index.po +++ b/installing/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/__future__.po b/library/__future__.po index f2578f79..7f814d2d 100644 --- a/library/__future__.po +++ b/library/__future__.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -74,165 +74,129 @@ msgid "" "into the language using this mechanism:" msgstr "" -#: library/__future__.rst:41 +#: library/__future__.rst:45 msgid "feature" msgstr "" -#: library/__future__.rst:41 +#: library/__future__.rst:46 msgid "optional in" msgstr "" -#: library/__future__.rst:41 +#: library/__future__.rst:47 msgid "mandatory in" msgstr "" -#: library/__future__.rst:41 +#: library/__future__.rst:48 msgid "effect" msgstr "" -#: library/__future__.rst:43 -msgid "nested_scopes" -msgstr "" - -#: library/__future__.rst:43 +#: library/__future__.rst:50 msgid "2.1.0b1" msgstr "" -#: library/__future__.rst:43 +#: library/__future__.rst:51 msgid "2.2" msgstr "" -#: library/__future__.rst:43 +#: library/__future__.rst:52 msgid ":pep:`227`: *Statically Nested Scopes*" msgstr "" -#: library/__future__.rst:46 -msgid "generators" -msgstr "" - -#: library/__future__.rst:46 +#: library/__future__.rst:54 msgid "2.2.0a1" msgstr "" -#: library/__future__.rst:46 +#: library/__future__.rst:55 msgid "2.3" msgstr "" -#: library/__future__.rst:46 +#: library/__future__.rst:56 msgid ":pep:`255`: *Simple Generators*" msgstr "" -#: library/__future__.rst:49 -msgid "division" -msgstr "" - -#: library/__future__.rst:49 +#: library/__future__.rst:58 msgid "2.2.0a2" msgstr "" -#: library/__future__.rst:52 library/__future__.rst:61 +#: library/__future__.rst:63 library/__future__.rst:75 msgid "3.0" msgstr "" -#: library/__future__.rst:49 +#: library/__future__.rst:60 msgid ":pep:`238`: *Changing the Division Operator*" msgstr "" -#: library/__future__.rst:52 -msgid "absolute_import" -msgstr "" - -#: library/__future__.rst:55 +#: library/__future__.rst:66 msgid "2.5.0a1" msgstr "" -#: library/__future__.rst:52 +#: library/__future__.rst:64 msgid ":pep:`328`: *Imports: Multi-Line and Absolute/Relative*" msgstr "" -#: library/__future__.rst:55 -msgid "with_statement" -msgstr "" - -#: library/__future__.rst:55 +#: library/__future__.rst:67 msgid "2.6" msgstr "" -#: library/__future__.rst:55 -msgid ":pep:`343`: *The \"with\" Statement*" -msgstr "" - -#: library/__future__.rst:58 -msgid "print_function" +#: library/__future__.rst:68 +msgid ":pep:`343`: *The “with” Statement*" msgstr "" -#: library/__future__.rst:61 +#: library/__future__.rst:74 msgid "2.6.0a2" msgstr "" -#: library/__future__.rst:58 +#: library/__future__.rst:72 msgid ":pep:`3105`: *Make print a function*" msgstr "" -#: library/__future__.rst:61 -msgid "unicode_literals" -msgstr "" - -#: library/__future__.rst:61 +#: library/__future__.rst:76 msgid ":pep:`3112`: *Bytes literals in Python 3000*" msgstr "" -#: library/__future__.rst:64 -msgid "generator_stop" -msgstr "" - -#: library/__future__.rst:64 +#: library/__future__.rst:78 msgid "3.5.0b1" msgstr "" -#: library/__future__.rst:64 +#: library/__future__.rst:79 msgid "3.7" msgstr "" -#: library/__future__.rst:64 +#: library/__future__.rst:80 msgid ":pep:`479`: *StopIteration handling inside generators*" msgstr "" -#: library/__future__.rst:67 -msgid "annotations" -msgstr "" - -#: library/__future__.rst:67 +#: library/__future__.rst:82 msgid "3.7.0b1" msgstr "" -#: library/__future__.rst:67 +#: library/__future__.rst:83 msgid "Never [1]_" msgstr "" -#: library/__future__.rst:67 +#: library/__future__.rst:84 msgid "" ":pep:`563`: *Postponed evaluation of annotations*, :pep:`649`: *Deferred " "evaluation of annotations using descriptors*" msgstr "" -#: library/__future__.rst:79 +#: library/__future__.rst:93 msgid "Each statement in :file:`__future__.py` is of the form::" msgstr "" -#: library/__future__.rst:81 +#: library/__future__.rst:95 msgid "" "FeatureName = _Feature(OptionalRelease, MandatoryRelease,\n" " CompilerFlag)" msgstr "" -#: library/__future__.rst:84 +#: library/__future__.rst:98 msgid "" "where, normally, *OptionalRelease* is less than *MandatoryRelease*, and both " "are 5-tuples of the same form as :data:`sys.version_info`::" msgstr "" -#: library/__future__.rst:87 +#: library/__future__.rst:101 msgid "" "(PY_MAJOR_VERSION, # the 2 in 2.1.0a3; an int\n" " PY_MINOR_VERSION, # the 1; an int\n" @@ -243,20 +207,20 @@ msgid "" ")" msgstr "" -#: library/__future__.rst:96 +#: library/__future__.rst:110 msgid "" "*OptionalRelease* records the first release in which the feature was " "accepted." msgstr "" -#: library/__future__.rst:100 +#: library/__future__.rst:114 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 "" -#: library/__future__.rst:104 +#: library/__future__.rst:118 msgid "" "Else *MandatoryRelease* records when the feature became part of the " "language; in releases at or after that, modules no longer need a future " @@ -264,13 +228,13 @@ msgid "" "imports." msgstr "" -#: library/__future__.rst:108 +#: library/__future__.rst:122 msgid "" "*MandatoryRelease* may also be ``None``, meaning that a planned feature got " "dropped or that it is not yet decided." msgstr "" -#: library/__future__.rst:113 +#: library/__future__.rst:127 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 " @@ -278,7 +242,7 @@ msgid "" "compiler_flag` attribute on :class:`_Feature` instances." msgstr "" -#: library/__future__.rst:119 +#: library/__future__.rst:133 msgid "" "``from __future__ import annotations`` was previously scheduled to become " "mandatory in Python 3.10, but the change was delayed and ultimately " @@ -286,18 +250,18 @@ msgid "" "`649` and :pep:`749`." msgstr "" -#: library/__future__.rst:127 +#: library/__future__.rst:141 msgid ":ref:`future`" msgstr "" -#: library/__future__.rst:128 +#: library/__future__.rst:142 msgid "How the compiler treats future imports." msgstr "" -#: library/__future__.rst:130 +#: library/__future__.rst:144 msgid ":pep:`236` - Back to the __future__" msgstr "" -#: library/__future__.rst:131 +#: library/__future__.rst:145 msgid "The original proposal for the __future__ mechanism." msgstr "" diff --git a/library/__main__.po b/library/__main__.po index 9c80e737..6c2685f1 100644 --- a/library/__main__.po +++ b/library/__main__.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/_thread.po b/library/_thread.po index 14fe4e3b..191785c1 100644 --- a/library/_thread.po +++ b/library/_thread.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/abc.po b/library/abc.po index 69bfa187..f90eace0 100644 --- a/library/abc.po +++ b/library/abc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/aifc.po b/library/aifc.po index f95c0a48..2a55577d 100644 --- a/library/aifc.po +++ b/library/aifc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-12-23 14:33+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" diff --git a/library/allos.po b/library/allos.po index 34c5a133..5ddd6696 100644 --- a/library/allos.po +++ b/library/allos.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/annotationlib.po b/library/annotationlib.po index 1f1f286b..2496d1cb 100644 --- a/library/annotationlib.po +++ b/library/annotationlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,17 +21,17 @@ msgstr "" msgid ":mod:`!annotationlib` --- Functionality for introspecting annotations" msgstr "" -#: library/annotationlib.rst:8 +#: library/annotationlib.rst:9 msgid "**Source code:** :source:`Lib/annotationlib.py`" msgstr "" -#: library/annotationlib.rst:17 +#: library/annotationlib.rst:18 msgid "" "The :mod:`!annotationlib` module provides tools for introspecting :term:" "`annotations ` on modules, classes, and functions." msgstr "" -#: library/annotationlib.rst:20 +#: library/annotationlib.rst:21 msgid "" "Annotations are :ref:`lazily evaluated ` and often contain " "forward references to objects that are not yet defined when the annotation " @@ -40,20 +40,20 @@ msgid "" "references and other edge cases." msgstr "" -#: library/annotationlib.rst:25 +#: library/annotationlib.rst:26 msgid "" "This module supports retrieving annotations in three main formats (see :" "class:`Format`), each of which works best for different use cases:" msgstr "" -#: library/annotationlib.rst:28 +#: library/annotationlib.rst:29 msgid "" ":attr:`~Format.VALUE` evaluates the annotations and returns their value. " "This is most straightforward to work with, but it may raise errors, for " "example if the annotations contain references to undefined names." msgstr "" -#: library/annotationlib.rst:31 +#: library/annotationlib.rst:32 msgid "" ":attr:`~Format.FORWARDREF` returns :class:`ForwardRef` objects for " "annotations that cannot be resolved, allowing you to inspect the annotations " @@ -61,14 +61,14 @@ msgid "" "annotations that may contain unresolved forward references." msgstr "" -#: library/annotationlib.rst:35 +#: library/annotationlib.rst:36 msgid "" ":attr:`~Format.STRING` returns the annotations as a string, similar to how " "it would appear in the source file. This is useful for documentation " "generators that want to display annotations in a readable way." msgstr "" -#: library/annotationlib.rst:39 +#: library/annotationlib.rst:40 msgid "" "The :func:`get_annotations` function is the main entry point for retrieving " "annotations. Given a function, class, or module, it returns an annotations " @@ -81,63 +81,69 @@ msgstr "" #: library/annotationlib.rst:51 msgid "" +"Most functionality in this module can execute arbitrary code; see :ref:`the " +"security section ` for more information." +msgstr "" + +#: library/annotationlib.rst:56 +msgid "" ":pep:`649` proposed the current model for how annotations work in Python." msgstr "" -#: library/annotationlib.rst:53 +#: library/annotationlib.rst:58 msgid "" ":pep:`749` expanded on various aspects of :pep:`649` and introduced the :mod:" "`!annotationlib` module." msgstr "" -#: library/annotationlib.rst:56 +#: library/annotationlib.rst:61 msgid "" ":ref:`annotations-howto` provides best practices for working with " "annotations." msgstr "" -#: library/annotationlib.rst:59 +#: library/annotationlib.rst:64 msgid "" ":pypi:`typing-extensions` provides a backport of :func:`get_annotations` " "that works on earlier versions of Python." msgstr "" -#: library/annotationlib.rst:63 +#: library/annotationlib.rst:68 msgid "Annotation semantics" msgstr "" -#: library/annotationlib.rst:65 +#: library/annotationlib.rst:70 msgid "" "The way annotations are evaluated has changed over the history of Python 3, " "and currently still depends on a :ref:`future import `. There have " "been execution models for annotations:" msgstr "" -#: library/annotationlib.rst:69 +#: library/annotationlib.rst:74 msgid "" "*Stock semantics* (default in Python 3.0 through 3.13; see :pep:`3107` and :" "pep:`526`): Annotations are evaluated eagerly, as they are encountered in " "the source code." msgstr "" -#: library/annotationlib.rst:72 +#: library/annotationlib.rst:77 msgid "" "*Stringified annotations* (used with ``from __future__ import annotations`` " "in Python 3.7 and newer; see :pep:`563`): Annotations are stored as strings " "only." msgstr "" -#: library/annotationlib.rst:75 +#: library/annotationlib.rst:80 msgid "" "*Deferred evaluation* (default in Python 3.14 and newer; see :pep:`649` and :" "pep:`749`): Annotations are evaluated lazily, only when they are accessed." msgstr "" -#: library/annotationlib.rst:78 +#: library/annotationlib.rst:83 msgid "As an example, consider the following program::" msgstr "" -#: library/annotationlib.rst:80 +#: library/annotationlib.rst:85 msgid "" "def func(a: Cls) -> None:\n" " print(a)\n" @@ -147,30 +153,30 @@ msgid "" "print(func.__annotations__)" msgstr "" -#: library/annotationlib.rst:87 +#: library/annotationlib.rst:92 msgid "This will behave as follows:" msgstr "" -#: library/annotationlib.rst:89 +#: library/annotationlib.rst:94 msgid "" "Under stock semantics (Python 3.13 and earlier), it will throw a :exc:" "`NameError` at the line where ``func`` is defined, because ``Cls`` is an " "undefined name at that point." msgstr "" -#: library/annotationlib.rst:92 +#: library/annotationlib.rst:97 msgid "" "Under stringified annotations (if ``from __future__ import annotations`` is " "used), it will print ``{'a': 'Cls', 'return': 'None'}``." msgstr "" -#: library/annotationlib.rst:94 +#: library/annotationlib.rst:99 msgid "" "Under deferred evaluation (Python 3.14 and later), it will print ``{'a': " ", 'return': None}``." msgstr "" -#: library/annotationlib.rst:97 +#: library/annotationlib.rst:102 msgid "" "Stock semantics were used when function annotations were first introduced in " "Python 3.0 (by :pep:`3107`) because this was the simplest, most obvious way " @@ -191,11 +197,11 @@ msgid "" "eventually be removed." msgstr "" -#: library/annotationlib.rst:116 +#: library/annotationlib.rst:121 msgid "Classes" msgstr "" -#: library/annotationlib.rst:120 +#: library/annotationlib.rst:125 msgid "" "An :class:`~enum.IntEnum` describing the formats in which annotations can be " "returned. Members of the enum, or their equivalent integer values, can be " @@ -203,11 +209,11 @@ msgid "" "well as to :attr:`~object.__annotate__` functions." msgstr "" -#: library/annotationlib.rst:128 +#: library/annotationlib.rst:133 msgid "Values are the result of evaluating the annotation expressions." msgstr "" -#: library/annotationlib.rst:133 +#: library/annotationlib.rst:138 msgid "" "Special value used to signal that an annotate function is being evaluated in " "a special environment with fake globals. When passed this value, annotate " @@ -217,30 +223,30 @@ msgid "" "internally and should not be passed to the functions in this module." msgstr "" -#: library/annotationlib.rst:144 +#: library/annotationlib.rst:149 msgid "" "Values are real annotation values (as per :attr:`Format.VALUE` format) for " "defined values, and :class:`ForwardRef` proxies for undefined values. Real " "objects may contain references to :class:`ForwardRef` proxy objects." msgstr "" -#: library/annotationlib.rst:152 +#: library/annotationlib.rst:157 msgid "" "Values are the text string of the annotation as it appears in the source " "code, up to modifications including, but not restricted to, whitespace " "normalizations and constant values optimizations." msgstr "" -#: library/annotationlib.rst:156 +#: library/annotationlib.rst:161 msgid "" "The exact values of these strings may change in future versions of Python." msgstr "" -#: library/annotationlib.rst:162 +#: library/annotationlib.rst:167 msgid "A proxy object for forward references in annotations." msgstr "" -#: library/annotationlib.rst:164 +#: library/annotationlib.rst:169 msgid "" "Instances of this class are returned when the :attr:`~Format.FORWARDREF` " "format is used and annotations contain a name that cannot be resolved. This " @@ -248,18 +254,18 @@ msgid "" "class is referenced before it is defined." msgstr "" -#: library/annotationlib.rst:171 +#: library/annotationlib.rst:176 msgid "" "A string containing the code that was evaluated to produce the :class:" "`~ForwardRef`. The string may not be exactly equivalent to the original " "source." msgstr "" -#: library/annotationlib.rst:177 +#: library/annotationlib.rst:182 msgid "Evaluate the forward reference, returning its value." msgstr "" -#: library/annotationlib.rst:179 +#: library/annotationlib.rst:184 msgid "" "If the *format* argument is :attr:`~Format.VALUE` (the default), this method " "may throw an exception, such as :exc:`NameError`, if the forward reference " @@ -274,7 +280,7 @@ msgid "" "`~Format.STRING`, the method will return :attr:`~ForwardRef.__forward_arg__`." msgstr "" -#: library/annotationlib.rst:191 +#: library/annotationlib.rst:196 msgid "" "The *owner* parameter provides the preferred mechanism for passing scope " "information to this method. The owner of a :class:`~ForwardRef` is the " @@ -282,7 +288,7 @@ msgid "" "derives, such as a module object, type object, or function object." msgstr "" -#: library/annotationlib.rst:196 +#: library/annotationlib.rst:201 msgid "" "The *globals*, *locals*, and *type_params* parameters provide a more precise " "mechanism for influencing the names that are available when the :class:" @@ -297,7 +303,7 @@ msgid "" "*type_params* should be set to ``C.__type_params__``." msgstr "" -#: library/annotationlib.rst:207 +#: library/annotationlib.rst:212 msgid "" ":class:`~ForwardRef` instances returned by :func:`get_annotations` retain " "references to information about the scope they originated from, so calling " @@ -307,18 +313,18 @@ msgid "" "be necessary to evaluate them successfully." msgstr "" -#: library/annotationlib.rst:214 +#: library/annotationlib.rst:219 msgid "" "If no *owner*, *globals*, *locals*, or *type_params* are provided and the :" "class:`~ForwardRef` does not contain information about its origin, empty " "globals and locals dictionaries are used." msgstr "" -#: library/annotationlib.rst:222 +#: library/annotationlib.rst:227 msgid "Functions" msgstr "" -#: library/annotationlib.rst:226 +#: library/annotationlib.rst:231 msgid "" "Convert an annotations dict containing runtime values to a dict containing " "only strings. If the values are not already strings, they are converted " @@ -327,13 +333,13 @@ msgid "" "have access to the code creating the annotations." msgstr "" -#: library/annotationlib.rst:233 +#: library/annotationlib.rst:238 msgid "" "For example, this is used to implement the :attr:`~Format.STRING` for :class:" "`typing.TypedDict` classes created through the functional syntax:" msgstr "" -#: library/annotationlib.rst:236 +#: library/annotationlib.rst:241 msgid "" ">>> from typing import TypedDict\n" ">>> Movie = TypedDict(\"movie\", {\"name\": str, \"year\": int})\n" @@ -341,14 +347,14 @@ msgid "" "{'name': 'str', 'year': 'int'}" msgstr "" -#: library/annotationlib.rst:247 +#: library/annotationlib.rst:252 msgid "" "Call the :term:`annotate function` *annotate* with the given *format*, a " "member of the :class:`Format` enum, and return the annotations dictionary " "produced by the function." msgstr "" -#: library/annotationlib.rst:251 +#: library/annotationlib.rst:256 msgid "" "This helper function is required because annotate functions generated by the " "compiler for functions, classes, and modules only support the :attr:`~Format." @@ -359,21 +365,21 @@ msgid "" "while a class is being constructed." msgstr "" -#: library/annotationlib.rst:260 +#: library/annotationlib.rst:265 msgid "" "*owner* is the object that owns the annotation function, usually a function, " "class, or module. If provided, it is used in the :attr:`~Format.FORWARDREF` " "format to produce a :class:`ForwardRef` object that carries more information." msgstr "" -#: library/annotationlib.rst:267 +#: library/annotationlib.rst:272 msgid "" ":PEP:`PEP 649 <649#the-stringizer-and-the-fake-globals-environment>` " "contains an explanation of the implementation technique used by this " "function." msgstr "" -#: library/annotationlib.rst:275 +#: library/annotationlib.rst:280 msgid "" "Call the :term:`evaluate function` *evaluate* with the given *format*, a " "member of the :class:`Format` enum, and return the value produced by the " @@ -382,55 +388,55 @@ msgid "" "function returns a single value." msgstr "" -#: library/annotationlib.rst:281 +#: library/annotationlib.rst:286 msgid "" "This is intended for use with the evaluate functions generated for lazily " "evaluated elements related to type aliases and type parameters:" msgstr "" -#: library/annotationlib.rst:284 +#: library/annotationlib.rst:289 msgid ":meth:`typing.TypeAliasType.evaluate_value`, the value of type aliases" msgstr "" -#: library/annotationlib.rst:285 +#: library/annotationlib.rst:290 msgid ":meth:`typing.TypeVar.evaluate_bound`, the bound of type variables" msgstr "" -#: library/annotationlib.rst:286 +#: library/annotationlib.rst:291 msgid "" ":meth:`typing.TypeVar.evaluate_constraints`, the constraints of type " "variables" msgstr "" -#: library/annotationlib.rst:288 +#: library/annotationlib.rst:293 msgid "" ":meth:`typing.TypeVar.evaluate_default`, the default value of type variables" msgstr "" -#: library/annotationlib.rst:290 +#: library/annotationlib.rst:295 msgid "" ":meth:`typing.ParamSpec.evaluate_default`, the default value of parameter " "specifications" msgstr "" -#: library/annotationlib.rst:292 +#: library/annotationlib.rst:297 msgid "" ":meth:`typing.TypeVarTuple.evaluate_default`, the default value of type " "variable tuples" msgstr "" -#: library/annotationlib.rst:295 +#: library/annotationlib.rst:300 msgid "" "*owner* is the object that owns the evaluate function, such as the type " "alias or type variable object." msgstr "" -#: library/annotationlib.rst:298 +#: library/annotationlib.rst:303 msgid "" "*format* can be used to control the format in which the value is returned:" msgstr "" -#: library/annotationlib.rst:300 +#: library/annotationlib.rst:305 msgid "" ">>> type Alias = undefined\n" ">>> call_evaluate_function(Alias.evaluate_value, Format.VALUE)\n" @@ -443,7 +449,7 @@ msgid "" "'undefined'" msgstr "" -#: library/annotationlib.rst:316 +#: library/annotationlib.rst:321 msgid "" "Retrieve the :term:`annotate function` from a class namespace dictionary " "*namespace*. Return :const:`!None` if the namespace does not contain an " @@ -453,31 +459,31 @@ msgid "" "` for an example using this function in a metaclass." msgstr "" -#: library/annotationlib.rst:326 +#: library/annotationlib.rst:331 msgid "Compute the annotations dict for an object." msgstr "" -#: library/annotationlib.rst:328 +#: library/annotationlib.rst:333 msgid "" "*obj* may be a callable, class, module, or other object with :attr:`~object." "__annotate__` or :attr:`~object.__annotations__` attributes. Passing any " "other object raises :exc:`TypeError`." msgstr "" -#: library/annotationlib.rst:332 +#: library/annotationlib.rst:337 msgid "" "The *format* parameter controls the format in which annotations are " "returned, and must be a member of the :class:`Format` enum or its integer " "equivalent. The different formats work as follows:" msgstr "" -#: library/annotationlib.rst:336 +#: library/annotationlib.rst:341 msgid "" "VALUE: :attr:`!object.__annotations__` is tried first; if that does not " "exist, the :attr:`!object.__annotate__` function is called if it exists." msgstr "" -#: library/annotationlib.rst:338 +#: library/annotationlib.rst:344 msgid "" "FORWARDREF: If :attr:`!object.__annotations__` exists and can be evaluated " "successfully, it is used; otherwise, the :attr:`!object.__annotate__` " @@ -485,25 +491,46 @@ msgid "" "__annotations__` is tried again and any error from accessing it is re-raised." msgstr "" -#: library/annotationlib.rst:342 +#: library/annotationlib.rst:349 +msgid "" +"When calling :attr:`!object.__annotate__` it is first called with :attr:" +"`~Format.FORWARDREF`. If this is not implemented, it will then check if :" +"attr:`~Format.VALUE_WITH_FAKE_GLOBALS` is supported and use that in the fake " +"globals environment. If neither of these formats are supported, it will fall " +"back to using :attr:`~Format.VALUE`. If :attr:`~Format.VALUE` fails, the " +"error from this call will be raised." +msgstr "" + +#: library/annotationlib.rst:355 msgid "" "STRING: If :attr:`!object.__annotate__` exists, it is called first; " "otherwise, :attr:`!object.__annotations__` is used and stringified using :" "func:`annotations_to_string`." msgstr "" -#: library/annotationlib.rst:346 +#: library/annotationlib.rst:359 +msgid "" +"When calling :attr:`!object.__annotate__` it is first called with :attr:" +"`~Format.STRING`. If this is not implemented, it will then check if :attr:" +"`~Format.VALUE_WITH_FAKE_GLOBALS` is supported and use that in the fake " +"globals environment. If neither of these formats are supported, it will fall " +"back to using :attr:`~Format.VALUE` with the result converted using :func:" +"`annotations_to_string`. If :attr:`~Format.VALUE` fails, the error from this " +"call will be raised." +msgstr "" + +#: library/annotationlib.rst:366 msgid "" "Returns a dict. :func:`!get_annotations` returns a new dict every time it's " "called; calling it twice on the same object will return two different but " "equivalent dicts." msgstr "" -#: library/annotationlib.rst:350 +#: library/annotationlib.rst:370 msgid "This function handles several details for you:" msgstr "" -#: library/annotationlib.rst:352 +#: library/annotationlib.rst:372 msgid "" "If *eval_str* is true, values of type :class:`!str` will be un-stringized " "using :func:`eval`. This is intended for use with stringized annotations " @@ -511,33 +538,33 @@ msgid "" "to true with formats other than :attr:`Format.VALUE`." msgstr "" -#: library/annotationlib.rst:357 +#: library/annotationlib.rst:377 msgid "" "If *obj* doesn't have an annotations dict, returns an empty dict. (Functions " "and methods always have an annotations dict; classes, modules, and other " "types of callables may not.)" msgstr "" -#: library/annotationlib.rst:361 +#: library/annotationlib.rst:381 msgid "" "Ignores inherited annotations on classes, as well as annotations on " "metaclasses. If a class doesn't have its own annotations dict, returns an " "empty dict." msgstr "" -#: library/annotationlib.rst:364 +#: library/annotationlib.rst:384 msgid "" "All accesses to object members and dict values are done using ``getattr()`` " "and ``dict.get()`` for safety." msgstr "" -#: library/annotationlib.rst:367 +#: library/annotationlib.rst:387 msgid "" "*eval_str* controls whether or not values of type :class:`!str` are replaced " "with the result of calling :func:`eval` on those values:" msgstr "" -#: library/annotationlib.rst:370 +#: library/annotationlib.rst:390 msgid "" "If eval_str is true, :func:`eval` is called on values of type :class:`!str`. " "(Note that :func:`!get_annotations` doesn't catch exceptions; if :func:" @@ -545,13 +572,13 @@ msgid "" "get_annotations` call.)" msgstr "" -#: library/annotationlib.rst:374 +#: library/annotationlib.rst:394 msgid "" "If *eval_str* is false (the default), values of type :class:`!str` are " "unchanged." msgstr "" -#: library/annotationlib.rst:377 +#: library/annotationlib.rst:397 msgid "" "*globals* and *locals* are passed in to :func:`eval`; see the documentation " "for :func:`eval` for more information. If *globals* or *locals* is :const:`!" @@ -559,17 +586,17 @@ msgid "" "contingent on ``type(obj)``:" msgstr "" -#: library/annotationlib.rst:382 +#: library/annotationlib.rst:402 msgid "If *obj* is a module, *globals* defaults to ``obj.__dict__``." msgstr "" -#: library/annotationlib.rst:383 +#: library/annotationlib.rst:403 msgid "" "If *obj* is a class, *globals* defaults to ``sys.modules[obj.__module__]." "__dict__`` and *locals* defaults to the *obj* class namespace." msgstr "" -#: library/annotationlib.rst:386 +#: library/annotationlib.rst:406 msgid "" "If *obj* is a callable, *globals* defaults to :attr:`obj.__globals__ " "`, although if *obj* is a wrapped function (using :" @@ -577,14 +604,14 @@ msgid "" "is unwrapped until a non-wrapped function is found." msgstr "" -#: library/annotationlib.rst:392 +#: library/annotationlib.rst:412 msgid "" "Calling :func:`!get_annotations` is best practice for accessing the " "annotations dict of any object. See :ref:`annotations-howto` for more " "information on annotations best practices." msgstr "" -#: library/annotationlib.rst:396 +#: library/annotationlib.rst:416 msgid "" ">>> def f(a: int, b: str) -> float:\n" "... pass\n" @@ -592,14 +619,14 @@ msgid "" "{'a': , 'b': , 'return': }" msgstr "" -#: library/annotationlib.rst:407 +#: library/annotationlib.rst:427 msgid "" "Convert an arbitrary Python value to a format suitable for use by the :attr:" "`~Format.STRING` format. This calls :func:`repr` for most objects, but has " "special handling for some objects, such as type objects." msgstr "" -#: library/annotationlib.rst:411 +#: library/annotationlib.rst:431 msgid "" "This is meant as a helper for user-provided annotate functions that support " "the :attr:`~Format.STRING` format but do not have access to the code " @@ -608,15 +635,15 @@ msgid "" "commonly encountered in annotations." msgstr "" -#: library/annotationlib.rst:421 +#: library/annotationlib.rst:441 msgid "Recipes" msgstr "" -#: library/annotationlib.rst:426 +#: library/annotationlib.rst:446 msgid "Using annotations in a metaclass" msgstr "" -#: library/annotationlib.rst:428 +#: library/annotationlib.rst:448 msgid "" "A :ref:`metaclass ` may want to inspect or even modify the " "annotations in a class body during class creation. Doing so requires " @@ -630,20 +657,20 @@ msgid "" "names that cannot yet be resolved when the class is created." msgstr "" -#: library/annotationlib.rst:439 +#: library/annotationlib.rst:459 msgid "" "To modify the annotations, it is best to create a wrapper annotate function " "that calls the original annotate function, makes any necessary adjustments, " "and returns the result." msgstr "" -#: library/annotationlib.rst:443 +#: library/annotationlib.rst:463 msgid "" "Below is an example of a metaclass that filters out all :class:`typing." "ClassVar` annotations from the class and puts them in a separate attribute:" msgstr "" -#: library/annotationlib.rst:446 +#: library/annotationlib.rst:466 msgid "" "import annotationlib\n" "import typing\n" @@ -694,25 +721,25 @@ msgid "" " return typ" msgstr "" -#: library/annotationlib.rst:494 +#: library/annotationlib.rst:514 msgid "Limitations of the ``STRING`` format" msgstr "" -#: library/annotationlib.rst:496 +#: library/annotationlib.rst:516 msgid "" "The :attr:`~Format.STRING` format is meant to approximate the source code of " "the annotation, but the implementation strategy used means that it is not " "always possible to recover the exact source code." msgstr "" -#: library/annotationlib.rst:500 +#: library/annotationlib.rst:520 msgid "" "First, the stringifier of course cannot recover any information that is not " "present in the compiled code, including comments, whitespace, " "parenthesization, and operations that get simplified by the compiler." msgstr "" -#: library/annotationlib.rst:504 +#: library/annotationlib.rst:524 msgid "" "Second, the stringifier can intercept almost all operations that involve " "names looked up in some scope, but it cannot intercept operations that " @@ -722,23 +749,23 @@ msgid "" "access to any globals or builtins. For example:" msgstr "" -#: library/annotationlib.rst:510 +#: library/annotationlib.rst:530 msgid "" ">>> def f(x: (1).__class__.__base__.__subclasses__()[-1].__init__." "__builtins__[\"print\"](\"Hello world\")): pass\n" "...\n" -">>> annotationlib.get_annotations(f, format=annotationlib.Format.SOURCE)\n" +">>> annotationlib.get_annotations(f, format=annotationlib.Format.STRING)\n" "Hello world\n" "{'x': 'None'}" msgstr "" -#: library/annotationlib.rst:519 +#: library/annotationlib.rst:539 msgid "" "This particular example works as of the time of writing, but it relies on " "implementation details and is not guaranteed to work in the future." msgstr "" -#: library/annotationlib.rst:522 +#: library/annotationlib.rst:542 msgid "" "Among the different kinds of expressions that exist in Python, as " "represented by the :mod:`ast` module, some expressions are supported, " @@ -747,169 +774,169 @@ msgid "" "output or an error." msgstr "" -#: library/annotationlib.rst:527 +#: library/annotationlib.rst:547 msgid "The following are supported (sometimes with caveats):" msgstr "" -#: library/annotationlib.rst:529 +#: library/annotationlib.rst:549 msgid ":class:`ast.BinOp`" msgstr "" -#: library/annotationlib.rst:530 +#: library/annotationlib.rst:550 msgid ":class:`ast.UnaryOp`" msgstr "" -#: library/annotationlib.rst:532 +#: library/annotationlib.rst:552 msgid "" ":class:`ast.Invert` (``~``), :class:`ast.UAdd` (``+``), and :class:`ast." "USub` (``-``) are supported" msgstr "" -#: library/annotationlib.rst:533 +#: library/annotationlib.rst:553 msgid ":class:`ast.Not` (``not``) is not supported" msgstr "" -#: library/annotationlib.rst:535 +#: library/annotationlib.rst:555 msgid ":class:`ast.Dict` (except when using ``**`` unpacking)" msgstr "" -#: library/annotationlib.rst:536 +#: library/annotationlib.rst:556 msgid ":class:`ast.Set`" msgstr "" -#: library/annotationlib.rst:537 +#: library/annotationlib.rst:557 msgid ":class:`ast.Compare`" msgstr "" -#: library/annotationlib.rst:539 +#: library/annotationlib.rst:559 msgid ":class:`ast.Eq` and :class:`ast.NotEq` are supported" msgstr "" -#: library/annotationlib.rst:540 +#: library/annotationlib.rst:560 msgid "" ":class:`ast.Lt`, :class:`ast.LtE`, :class:`ast.Gt`, and :class:`ast.GtE` are " "supported, but the operand may be flipped" msgstr "" -#: library/annotationlib.rst:541 +#: library/annotationlib.rst:561 msgid "" ":class:`ast.Is`, :class:`ast.IsNot`, :class:`ast.In`, and :class:`ast.NotIn` " "are not supported" msgstr "" -#: library/annotationlib.rst:543 +#: library/annotationlib.rst:563 msgid ":class:`ast.Call` (except when using ``**`` unpacking)" msgstr "" -#: library/annotationlib.rst:544 +#: library/annotationlib.rst:564 msgid "" ":class:`ast.Constant` (though not the exact representation of the constant; " "for example, escape sequences in strings are lost; hexadecimal numbers are " "converted to decimal)" msgstr "" -#: library/annotationlib.rst:546 +#: library/annotationlib.rst:566 msgid ":class:`ast.Attribute` (assuming the value is not a constant)" msgstr "" -#: library/annotationlib.rst:547 +#: library/annotationlib.rst:567 msgid ":class:`ast.Subscript` (assuming the value is not a constant)" msgstr "" -#: library/annotationlib.rst:548 +#: library/annotationlib.rst:568 msgid ":class:`ast.Starred` (``*`` unpacking)" msgstr "" -#: library/annotationlib.rst:549 +#: library/annotationlib.rst:569 msgid ":class:`ast.Name`" msgstr "" -#: library/annotationlib.rst:550 +#: library/annotationlib.rst:570 msgid ":class:`ast.List`" msgstr "" -#: library/annotationlib.rst:551 +#: library/annotationlib.rst:571 msgid ":class:`ast.Tuple`" msgstr "" -#: library/annotationlib.rst:552 +#: library/annotationlib.rst:572 msgid ":class:`ast.Slice`" msgstr "" -#: library/annotationlib.rst:554 +#: library/annotationlib.rst:574 msgid "" "The following are unsupported, but throw an informative error when " "encountered by the stringifier:" msgstr "" -#: library/annotationlib.rst:557 +#: library/annotationlib.rst:577 msgid "" ":class:`ast.FormattedValue` (f-strings; error is not detected if conversion " "specifiers like ``!r`` are used)" msgstr "" -#: library/annotationlib.rst:559 +#: library/annotationlib.rst:579 msgid ":class:`ast.JoinedStr` (f-strings)" msgstr "" -#: library/annotationlib.rst:561 +#: library/annotationlib.rst:581 msgid "The following are unsupported and result in incorrect output:" msgstr "" -#: library/annotationlib.rst:563 +#: library/annotationlib.rst:583 msgid ":class:`ast.BoolOp` (``and`` and ``or``)" msgstr "" -#: library/annotationlib.rst:564 +#: library/annotationlib.rst:584 msgid ":class:`ast.IfExp`" msgstr "" -#: library/annotationlib.rst:565 +#: library/annotationlib.rst:585 msgid ":class:`ast.Lambda`" msgstr "" -#: library/annotationlib.rst:566 +#: library/annotationlib.rst:586 msgid ":class:`ast.ListComp`" msgstr "" -#: library/annotationlib.rst:567 +#: library/annotationlib.rst:587 msgid ":class:`ast.SetComp`" msgstr "" -#: library/annotationlib.rst:568 +#: library/annotationlib.rst:588 msgid ":class:`ast.DictComp`" msgstr "" -#: library/annotationlib.rst:569 +#: library/annotationlib.rst:589 msgid ":class:`ast.GeneratorExp`" msgstr "" -#: library/annotationlib.rst:571 +#: library/annotationlib.rst:591 msgid "" "The following are disallowed in annotation scopes and therefore not relevant:" msgstr "" -#: library/annotationlib.rst:573 +#: library/annotationlib.rst:593 msgid ":class:`ast.NamedExpr` (``:=``)" msgstr "" -#: library/annotationlib.rst:574 +#: library/annotationlib.rst:594 msgid ":class:`ast.Await`" msgstr "" -#: library/annotationlib.rst:575 +#: library/annotationlib.rst:595 msgid ":class:`ast.Yield`" msgstr "" -#: library/annotationlib.rst:576 +#: library/annotationlib.rst:596 msgid ":class:`ast.YieldFrom`" msgstr "" -#: library/annotationlib.rst:580 +#: library/annotationlib.rst:600 msgid "Limitations of the ``FORWARDREF`` format" msgstr "" -#: library/annotationlib.rst:582 +#: library/annotationlib.rst:602 msgid "" "The :attr:`~Format.FORWARDREF` format aims to produce real values as much as " "possible, with anything that cannot be resolved replaced with :class:" @@ -919,11 +946,11 @@ msgid "" "evaluated using the :attr:`~Format.FORWARDREF` format." msgstr "" -#: library/annotationlib.rst:589 +#: library/annotationlib.rst:609 msgid "Below are a few examples of the behavior with unsupported expressions:" msgstr "" -#: library/annotationlib.rst:591 +#: library/annotationlib.rst:611 msgid "" ">>> from annotationlib import get_annotations, Format\n" ">>> def zerodiv(x: 1 / 0): ...\n" @@ -939,3 +966,31 @@ msgid "" ">>> get_annotations(ifexp, format=Format.STRING)\n" "{'x': '1'}" msgstr "" + +#: library/annotationlib.rst:630 +msgid "Security implications of introspecting annotations" +msgstr "" + +#: library/annotationlib.rst:632 +msgid "" +"Much of the functionality in this module involves executing code related to " +"annotations, which can then do arbitrary things. For example, :func:" +"`get_annotations` may call an arbitrary :term:`annotate function`, and :meth:" +"`ForwardRef.evaluate` may call :func:`eval` on an arbitrary string. Code " +"contained in an annotation might make arbitrary system calls, enter an " +"infinite loop, or perform any other operation. This is also true for any " +"access of the :attr:`~object.__annotations__` attribute, and for various " +"functions in the :mod:`typing` module that work with annotations, such as :" +"func:`typing.get_type_hints`." +msgstr "" + +#: library/annotationlib.rst:641 +msgid "" +"Any security issue arising from this also applies immediately after " +"importing code that may contain untrusted annotations: importing code can " +"always cause arbitrary operations to be performed. However, it is unsafe to " +"accept strings or other input from an untrusted source and pass them to any " +"of the APIs for introspecting annotations, for example by editing an " +"``__annotations__`` dictionary or directly creating a :class:`ForwardRef` " +"object." +msgstr "" diff --git a/library/archiving.po b/library/archiving.po index a1d8276d..d2a095ca 100644 --- a/library/archiving.po +++ b/library/archiving.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/argparse.po b/library/argparse.po index 97b905c2..8d99ee26 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -201,7 +201,7 @@ msgid "" msgstr "" #: library/argparse.rst:122 -msgid "color_ - Allow color output (default: ``False``)" +msgid "color_ - Allow color output (default: ``True``)" msgstr "" #: library/argparse.rst:124 @@ -222,7 +222,7 @@ msgstr "" msgid "*suggest_on_error* and *color* parameters were added." msgstr "" -#: library/argparse.rst:686 +#: library/argparse.rst:689 msgid "The following sections describe how each of these are used." msgstr "" @@ -625,7 +625,7 @@ msgstr "" #: library/argparse.rst:437 msgid "" -"Arguments read from a file must by default be one per line (but see also :" +"Arguments read from a file must be one per line by default (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', " @@ -633,19 +633,26 @@ msgid "" "f', 'bar']``." msgstr "" -#: library/argparse.rst:443 +#: library/argparse.rst:445 +msgid "" +"Empty lines are treated as empty strings (``''``), which are allowed as " +"values but not as arguments. Empty lines that are read as arguments will " +"result in an \"unrecognized arguments\" error." +msgstr "" + +#: library/argparse.rst:449 msgid "" ":class:`ArgumentParser` uses :term:`filesystem encoding and error handler` " "to read the file containing arguments." msgstr "" -#: library/argparse.rst:446 +#: library/argparse.rst:452 msgid "" "The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that " "arguments will never be treated as file references." msgstr "" -#: library/argparse.rst:449 +#: library/argparse.rst:455 msgid "" ":class:`ArgumentParser` changed encoding and errors to read arguments files " "from default (e.g. :func:`locale.getpreferredencoding(False) >> parser = argparse.ArgumentParser(argument_default=argparse.SUPPRESS)\n" ">>> parser.add_argument('--foo')\n" @@ -681,22 +688,22 @@ msgid "" "Namespace()" msgstr "" -#: library/argparse.rst:479 +#: library/argparse.rst:485 msgid "allow_abbrev" msgstr "" -#: library/argparse.rst:481 +#: library/argparse.rst:487 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 "" -#: library/argparse.rst:485 +#: library/argparse.rst:491 msgid "This feature can be disabled by setting ``allow_abbrev`` to ``False``::" msgstr "" -#: library/argparse.rst:487 +#: library/argparse.rst:493 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', allow_abbrev=False)\n" ">>> parser.add_argument('--foobar', action='store_true')\n" @@ -706,11 +713,11 @@ msgid "" "PROG: error: unrecognized arguments: --foon" msgstr "" -#: library/argparse.rst:498 +#: library/argparse.rst:504 msgid "conflict_handler" msgstr "" -#: library/argparse.rst:500 +#: library/argparse.rst:506 msgid "" ":class:`ArgumentParser` objects do not allow two actions with the same " "option string. By default, :class:`ArgumentParser` objects raise an " @@ -718,7 +725,7 @@ msgid "" "that is already in use::" msgstr "" -#: library/argparse.rst:505 +#: library/argparse.rst:511 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-f', '--foo', help='old foo help')\n" @@ -728,7 +735,7 @@ msgid "" "ArgumentError: argument --foo: conflicting option string(s): --foo" msgstr "" -#: library/argparse.rst:512 +#: library/argparse.rst:518 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 " @@ -736,7 +743,7 @@ msgid "" "of :class:`ArgumentParser`::" msgstr "" -#: library/argparse.rst:517 +#: library/argparse.rst:523 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', " "conflict_handler='resolve')\n" @@ -751,7 +758,7 @@ msgid "" " --foo FOO new foo help" msgstr "" -#: library/argparse.rst:528 +#: library/argparse.rst:534 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/--" @@ -759,25 +766,25 @@ msgid "" "option string was overridden." msgstr "" -#: library/argparse.rst:535 +#: library/argparse.rst:541 msgid "add_help" msgstr "" -#: library/argparse.rst:537 +#: library/argparse.rst:543 msgid "" "By default, :class:`ArgumentParser` objects add an option which simply " "displays the parser's help message. If ``-h`` or ``--help`` is supplied at " "the command line, the :class:`!ArgumentParser` help will be printed." msgstr "" -#: library/argparse.rst:541 +#: library/argparse.rst:547 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 "" -#: library/argparse.rst:545 +#: library/argparse.rst:551 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)\n" ">>> parser.add_argument('--foo', help='foo help')\n" @@ -788,7 +795,7 @@ msgid "" " --foo FOO foo help" msgstr "" -#: library/argparse.rst:553 +#: library/argparse.rst:559 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 ``-" @@ -796,7 +803,7 @@ msgid "" "in ``prefix_chars`` is used to prefix the help options::" msgstr "" -#: library/argparse.rst:559 +#: library/argparse.rst:565 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', prefix_chars='+/')\n" ">>> parser.print_help()\n" @@ -806,24 +813,24 @@ msgid "" " +h, ++help show this help message and exit" msgstr "" -#: library/argparse.rst:568 +#: library/argparse.rst:574 msgid "exit_on_error" msgstr "" -#: library/argparse.rst:570 +#: library/argparse.rst:576 msgid "" "Normally, when you pass an invalid argument list to the :meth:" "`~ArgumentParser.parse_args` method of an :class:`ArgumentParser`, it will " "print a *message* to :data:`sys.stderr` and exit with a status code of 2." msgstr "" -#: library/argparse.rst:574 +#: library/argparse.rst:580 msgid "" "If the user would like to catch errors manually, the feature can be enabled " "by setting ``exit_on_error`` to ``False``::" msgstr "" -#: library/argparse.rst:577 +#: library/argparse.rst:583 msgid "" ">>> parser = argparse.ArgumentParser(exit_on_error=False)\n" ">>> parser.add_argument('--integers', type=int)\n" @@ -838,11 +845,11 @@ msgid "" "Catching an argumentError" msgstr "" -#: library/argparse.rst:590 +#: library/argparse.rst:596 msgid "suggest_on_error" msgstr "" -#: library/argparse.rst:592 +#: library/argparse.rst:598 msgid "" "By default, when a user passes an invalid argument choice or subparser " "name, :class:`ArgumentParser` will exit with error info and list the " @@ -850,7 +857,7 @@ msgid "" "the error message." msgstr "" -#: library/argparse.rst:596 +#: library/argparse.rst:602 msgid "" "If the user would like to enable suggestions for mistyped argument choices " "and subparser names, the feature can be enabled by setting " @@ -858,7 +865,7 @@ msgid "" "when the choices specified are strings::" msgstr "" -#: library/argparse.rst:601 +#: library/argparse.rst:607 msgid "" ">>> parser = argparse.ArgumentParser(description='Process some integers.',\n" " suggest_on_error=True)\n" @@ -870,7 +877,7 @@ msgid "" "'sum'? (choose from 'sum', 'max')" msgstr "" -#: library/argparse.rst:609 +#: library/argparse.rst:615 msgid "" "If you're writing code that needs to be compatible with older Python " "versions and want to opportunistically use ``suggest_on_error`` when it's " @@ -878,127 +885,118 @@ msgid "" "instead of using the keyword argument::" msgstr "" -#: library/argparse.rst:614 +#: library/argparse.rst:620 msgid "" ">>> parser = argparse.ArgumentParser(description='Process some integers.')\n" ">>> parser.suggest_on_error = True" msgstr "" -#: library/argparse.rst:621 +#: library/argparse.rst:627 msgid "color" msgstr "" -#: library/argparse.rst:623 +#: library/argparse.rst:629 msgid "" -"By default, the help message is printed in plain text. If you want to allow " -"color in help messages, you can enable it by setting ``color`` to ``True``::" +"By default, the help message is printed in color using `ANSI escape " +"sequences `__. If you want " +"plain text help messages, you can disable this :ref:`in your local " +"environment `, or in the argument parser itself " +"by setting ``color`` to ``False``::" msgstr "" -#: library/argparse.rst:626 +#: library/argparse.rst:635 msgid "" ">>> parser = argparse.ArgumentParser(description='Process some integers.',\n" -"... color=True)\n" +"... color=False)\n" ">>> parser.add_argument('--action', choices=['sum', 'max'])\n" ">>> parser.add_argument('integers', metavar='N', type=int, nargs='+',\n" "... help='an integer for the accumulator')\n" ">>> parser.parse_args(['--help'])" msgstr "" -#: library/argparse.rst:633 -msgid "" -"Even if a CLI author has enabled color, it can be :ref:`controlled using " -"environment variables `." -msgstr "" - -#: library/argparse.rst:636 +#: library/argparse.rst:642 msgid "" -"If you're writing code that needs to be compatible with older Python " -"versions and want to opportunistically use ``color`` when it's available, " -"you can set it as an attribute after initializing the parser instead of " -"using the keyword argument::" +"Note that when ``color=True``, colored output depends on both environment " +"variables and terminal capabilities. However, if ``color=False``, colored " +"output is always disabled, even if environment variables like " +"``FORCE_COLOR`` are set." msgstr "" -#: library/argparse.rst:641 -msgid "" -">>> parser = argparse.ArgumentParser(description='Process some integers.')\n" -">>> parser.color = True" -msgstr "" - -#: library/argparse.rst:648 +#: library/argparse.rst:651 msgid "The add_argument() method" msgstr "" -#: library/argparse.rst:654 +#: library/argparse.rst:657 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 "" -#: library/argparse.rst:657 +#: library/argparse.rst:660 msgid "" "`name or flags`_ - Either a name or a list of option strings, e.g. ``'foo'`` " "or ``'-f', '--foo'``." msgstr "" -#: library/argparse.rst:660 +#: library/argparse.rst:663 msgid "" "action_ - The basic type of action to be taken when this argument is " "encountered at the command line." msgstr "" -#: library/argparse.rst:663 +#: library/argparse.rst:666 msgid "nargs_ - The number of command-line arguments that should be consumed." msgstr "" -#: library/argparse.rst:665 +#: library/argparse.rst:668 msgid "" "const_ - A constant value required by some action_ and nargs_ selections." msgstr "" -#: library/argparse.rst:667 +#: library/argparse.rst:670 msgid "" "default_ - The value produced if the argument is absent from the command " "line and if it is absent from the namespace object." msgstr "" -#: library/argparse.rst:670 +#: library/argparse.rst:673 msgid "" "type_ - The type to which the command-line argument should be converted." msgstr "" -#: library/argparse.rst:672 +#: library/argparse.rst:675 msgid "choices_ - A sequence of the allowable values for the argument." msgstr "" -#: library/argparse.rst:674 +#: library/argparse.rst:677 msgid "" "required_ - Whether or not the command-line option may be omitted (optionals " "only)." msgstr "" -#: library/argparse.rst:677 +#: library/argparse.rst:680 msgid "help_ - A brief description of what the argument does." msgstr "" -#: library/argparse.rst:679 +#: library/argparse.rst:682 msgid "metavar_ - A name for the argument in usage messages." msgstr "" -#: library/argparse.rst:681 +#: library/argparse.rst:684 msgid "" "dest_ - The name of the attribute to be added to the object returned by :" "meth:`parse_args`." msgstr "" -#: library/argparse.rst:684 +#: library/argparse.rst:687 msgid "deprecated_ - Whether or not use of the argument is deprecated." msgstr "" -#: library/argparse.rst:692 +#: library/argparse.rst:695 msgid "name or flags" msgstr "" -#: library/argparse.rst:694 +#: library/argparse.rst:697 msgid "" "The :meth:`~ArgumentParser.add_argument` method must know whether an " "optional argument, like ``-f`` or ``--foo``, or a positional argument, like " @@ -1007,30 +1005,30 @@ msgid "" "or a simple argument name." msgstr "" -#: library/argparse.rst:700 +#: library/argparse.rst:703 msgid "For example, an optional argument could be created like::" msgstr "" -#: library/argparse.rst:702 +#: library/argparse.rst:705 msgid ">>> parser.add_argument('-f', '--foo')" msgstr "" -#: library/argparse.rst:704 +#: library/argparse.rst:707 msgid "while a positional argument could be created like::" msgstr "" -#: library/argparse.rst:706 +#: library/argparse.rst:709 msgid ">>> parser.add_argument('bar')" msgstr "" -#: library/argparse.rst:708 +#: library/argparse.rst:711 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 "" -#: library/argparse.rst:712 +#: library/argparse.rst:715 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-f', '--foo')\n" @@ -1044,7 +1042,7 @@ msgid "" "PROG: error: the following arguments are required: bar" msgstr "" -#: library/argparse.rst:723 +#: library/argparse.rst:726 msgid "" "By default, :mod:`!argparse` automatically handles the internal naming and " "display names of arguments, simplifying the process without requiring " @@ -1054,7 +1052,7 @@ msgid "" "to the upper-cased name. For example::" msgstr "" -#: library/argparse.rst:731 +#: library/argparse.rst:734 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('--foo-bar')\n" @@ -1068,11 +1066,11 @@ msgid "" " --foo-bar FOO-BAR" msgstr "" -#: library/argparse.rst:746 +#: library/argparse.rst:749 msgid "action" msgstr "" -#: library/argparse.rst:748 +#: library/argparse.rst:751 msgid "" ":class:`ArgumentParser` objects associate command-line arguments with " "actions. These actions can do just about anything with the command-line " @@ -1082,13 +1080,13 @@ msgid "" "be handled. The supplied actions are:" msgstr "" -#: library/argparse.rst:754 +#: library/argparse.rst:757 msgid "" "``'store'`` - This just stores the argument's value. This is the default " "action." msgstr "" -#: library/argparse.rst:757 +#: library/argparse.rst:760 msgid "" "``'store_const'`` - This stores the value specified by the const_ keyword " "argument; note that the const_ keyword argument defaults to ``None``. The " @@ -1096,7 +1094,7 @@ msgid "" "specify some sort of flag. For example::" msgstr "" -#: library/argparse.rst:762 +#: library/argparse.rst:765 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', action='store_const', const=42)\n" @@ -1104,7 +1102,7 @@ msgid "" "Namespace(foo=42)" msgstr "" -#: library/argparse.rst:767 +#: library/argparse.rst:770 msgid "" "``'store_true'`` and ``'store_false'`` - These are special cases of " "``'store_const'`` used for storing the values ``True`` and ``False`` " @@ -1112,7 +1110,7 @@ msgid "" "``True`` respectively::" msgstr "" -#: library/argparse.rst:772 +#: library/argparse.rst:775 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', action='store_true')\n" @@ -1122,24 +1120,24 @@ msgid "" "Namespace(foo=True, bar=False, baz=True)" msgstr "" -#: library/argparse.rst:779 +#: library/argparse.rst:782 msgid "" -"``'append'`` - This stores a list, and appends each argument value to the " -"list. It is useful to allow an option to be specified multiple times. 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. Example usage::" +"``'append'`` - This appends each argument value to a list. It is useful for " +"allowing an option to be specified multiple times. If the default value is a " +"non-empty list, the parsed value will start with the default list's elements " +"and any values from the command line will be appended after those default " +"values. Example usage::" msgstr "" -#: library/argparse.rst:785 +#: library/argparse.rst:788 msgid "" ">>> parser = argparse.ArgumentParser()\n" -">>> parser.add_argument('--foo', action='append')\n" +">>> parser.add_argument('--foo', action='append', default=['0'])\n" ">>> parser.parse_args('--foo 1 --foo 2'.split())\n" -"Namespace(foo=['1', '2'])" +"Namespace(foo=['0', '1', '2'])" msgstr "" -#: library/argparse.rst:790 +#: library/argparse.rst:793 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 " @@ -1148,7 +1146,7 @@ msgid "" "example::" msgstr "" -#: library/argparse.rst:796 +#: library/argparse.rst:799 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--str', dest='types', action='append_const', " @@ -1159,7 +1157,7 @@ msgid "" "Namespace(types=[, ])" msgstr "" -#: library/argparse.rst:802 +#: library/argparse.rst:805 msgid "" "``'extend'`` - This stores a list and appends each item from the multi-value " "argument list to it. The ``'extend'`` action is typically used with the " @@ -1168,7 +1166,7 @@ msgid "" "will be appended to the list. Example usage::" msgstr "" -#: library/argparse.rst:810 +#: library/argparse.rst:813 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument(\"--foo\", action=\"extend\", nargs=\"+\", " @@ -1178,13 +1176,13 @@ msgid "" "Namespace(foo=['f1', 'f2', 'f3', 'f4'])" msgstr "" -#: library/argparse.rst:817 +#: library/argparse.rst:820 msgid "" "``'count'`` - This counts the number of times a keyword argument occurs. For " "example, this is useful for increasing verbosity levels::" msgstr "" -#: library/argparse.rst:820 +#: library/argparse.rst:823 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--verbose', '-v', action='count', default=0)\n" @@ -1192,11 +1190,11 @@ msgid "" "Namespace(verbose=3)" msgstr "" -#: library/argparse.rst:825 +#: library/argparse.rst:828 msgid "Note, the *default* will be ``None`` unless explicitly set to *0*." msgstr "" -#: library/argparse.rst:827 +#: library/argparse.rst:830 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 " @@ -1204,14 +1202,14 @@ msgid "" "output is created." msgstr "" -#: library/argparse.rst:832 +#: library/argparse.rst:835 msgid "" "``'version'`` - This expects a ``version=`` keyword argument in the :meth:" "`~ArgumentParser.add_argument` call, and prints version information and " "exits when invoked::" msgstr "" -#: library/argparse.rst:836 +#: library/argparse.rst:839 msgid "" ">>> import argparse\n" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" @@ -1221,30 +1219,16 @@ msgid "" "PROG 2.0" msgstr "" -#: library/argparse.rst:842 -msgid "" -"Only actions that consume command-line arguments (e.g. ``'store'``, " -"``'append'`` or ``'extend'``) can be used with positional arguments." -msgstr "" - -#: library/argparse.rst:847 +#: library/argparse.rst:845 msgid "" "You may also specify an arbitrary action by passing an :class:`Action` " -"subclass or other object that implements the same interface. The :class:`!" -"BooleanOptionalAction` is available in :mod:`!argparse` and adds support for " -"boolean actions such as ``--foo`` and ``--no-foo``::" -msgstr "" - -#: library/argparse.rst:852 -msgid "" -">>> import argparse\n" -">>> parser = argparse.ArgumentParser()\n" -">>> parser.add_argument('--foo', action=argparse.BooleanOptionalAction)\n" -">>> parser.parse_args(['--no-foo'])\n" -"Namespace(foo=False)" +"subclass (e.g. :class:`BooleanOptionalAction`) or other object that " +"implements the same interface. Only actions that consume command-line " +"arguments (e.g. ``'store'``, ``'append'``, ``'extend'``, or custom actions " +"with non-zero ``nargs``) can be used with positional arguments." msgstr "" -#: library/argparse.rst:860 +#: library/argparse.rst:851 msgid "" "The recommended way to create a custom action is to extend :class:`Action`, " "overriding the :meth:`!__call__` method and optionally the :meth:`!__init__` " @@ -1253,11 +1237,11 @@ msgid "" "their registered name." msgstr "" -#: library/argparse.rst:865 +#: library/argparse.rst:856 msgid "An example of a custom action::" msgstr "" -#: library/argparse.rst:867 +#: library/argparse.rst:858 msgid "" ">>> class FooAction(argparse.Action):\n" "... def __init__(self, option_strings, dest, nargs=None, **kwargs):\n" @@ -1278,15 +1262,15 @@ msgid "" "Namespace(bar='1', foo='2')" msgstr "" -#: library/argparse.rst:885 +#: library/argparse.rst:876 msgid "For more details, see :class:`Action`." msgstr "" -#: library/argparse.rst:891 +#: library/argparse.rst:882 msgid "nargs" msgstr "" -#: library/argparse.rst:893 +#: library/argparse.rst:884 msgid "" ":class:`ArgumentParser` objects usually associate a single command-line " "argument with a single action to be taken. The ``nargs`` keyword argument " @@ -1295,13 +1279,13 @@ msgid "" "are:" msgstr "" -#: library/argparse.rst:898 +#: library/argparse.rst:889 msgid "" "``N`` (an integer). ``N`` arguments from the command line will be gathered " "together into a list. For example::" msgstr "" -#: library/argparse.rst:901 +#: library/argparse.rst:892 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', nargs=2)\n" @@ -1310,13 +1294,13 @@ msgid "" "Namespace(bar=['c'], foo=['a', 'b'])" msgstr "" -#: library/argparse.rst:907 +#: library/argparse.rst:898 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 "" -#: library/argparse.rst:912 +#: library/argparse.rst:903 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 " @@ -1326,7 +1310,7 @@ msgid "" "produced. Some examples to illustrate this::" msgstr "" -#: library/argparse.rst:919 +#: library/argparse.rst:910 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', nargs='?', const='c', default='d')\n" @@ -1339,13 +1323,13 @@ msgid "" "Namespace(bar='d', foo='d')" msgstr "" -#: library/argparse.rst:929 +#: library/argparse.rst:920 msgid "" "One of the more common uses of ``nargs='?'`` is to allow optional input and " "output files::" msgstr "" -#: library/argparse.rst:932 +#: library/argparse.rst:923 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('infile', nargs='?')\n" @@ -1358,7 +1342,7 @@ msgid "" "Namespace(infile=None, outfile=None)" msgstr "" -#: library/argparse.rst:944 +#: library/argparse.rst:935 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 " @@ -1366,7 +1350,7 @@ msgid "" "``nargs='*'`` is possible. For example::" msgstr "" -#: library/argparse.rst:949 +#: library/argparse.rst:940 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', nargs='*')\n" @@ -1376,14 +1360,14 @@ msgid "" "Namespace(bar=['1', '2'], baz=['a', 'b'], foo=['x', 'y'])" msgstr "" -#: library/argparse.rst:958 +#: library/argparse.rst:949 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::" +"``'+'``. Just like ``'*'``, all command-line arguments 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 "" -#: library/argparse.rst:962 +#: library/argparse.rst:953 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('foo', nargs='+')\n" @@ -1394,7 +1378,7 @@ msgid "" "PROG: error: the following arguments are required: foo" msgstr "" -#: library/argparse.rst:970 +#: library/argparse.rst:961 msgid "" "If the ``nargs`` keyword argument is not provided, the number of arguments " "consumed is determined by the action_. Generally this means a single " @@ -1403,11 +1387,11 @@ msgid "" "``'store_const'``) set ``nargs=0``." msgstr "" -#: library/argparse.rst:980 +#: library/argparse.rst:971 msgid "const" msgstr "" -#: library/argparse.rst:982 +#: library/argparse.rst:973 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 " @@ -1415,7 +1399,7 @@ msgid "" "common uses of it are:" msgstr "" -#: library/argparse.rst:986 +#: library/argparse.rst:977 msgid "" "When :meth:`~ArgumentParser.add_argument` is called with " "``action='store_const'`` or ``action='append_const'``. These actions add " @@ -1425,27 +1409,27 @@ msgid "" "receive a default value of ``None``." msgstr "" -#: library/argparse.rst:994 +#: library/argparse.rst:985 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 " -"to be ``None`` instead. See the nargs_ description for examples." +"command-line argument following it, the value from ``const`` will be used. " +"See the nargs_ description for examples." msgstr "" -#: library/argparse.rst:1001 +#: library/argparse.rst:992 msgid "" "``const=None`` by default, including when ``action='append_const'`` or " "``action='store_const'``." msgstr "" -#: library/argparse.rst:1008 +#: library/argparse.rst:999 msgid "default" msgstr "" -#: library/argparse.rst:1010 +#: library/argparse.rst:1001 msgid "" "All optional arguments and some positional arguments may be omitted at the " "command line. The ``default`` keyword argument of :meth:`~ArgumentParser." @@ -1455,7 +1439,7 @@ msgid "" "command line::" msgstr "" -#: library/argparse.rst:1017 +#: library/argparse.rst:1008 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default=42)\n" @@ -1465,13 +1449,13 @@ msgid "" "Namespace(foo=42)" msgstr "" -#: library/argparse.rst:1024 +#: library/argparse.rst:1015 msgid "" "If the target namespace already has an attribute set, the action *default* " "will not overwrite it::" msgstr "" -#: library/argparse.rst:1027 +#: library/argparse.rst:1018 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default=42)\n" @@ -1479,7 +1463,7 @@ msgid "" "Namespace(foo=101)" msgstr "" -#: library/argparse.rst:1032 +#: library/argparse.rst:1023 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_ " @@ -1487,7 +1471,7 @@ msgid "" "`Namespace` return value. Otherwise, the parser uses the value as is::" msgstr "" -#: library/argparse.rst:1037 +#: library/argparse.rst:1028 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--length', default='10', type=int)\n" @@ -1496,13 +1480,13 @@ msgid "" "Namespace(length=10, width=10.5)" msgstr "" -#: library/argparse.rst:1043 +#: library/argparse.rst:1034 msgid "" "For positional arguments with nargs_ equal to ``?`` or ``*``, the " "``default`` value is used when no command-line argument was present::" msgstr "" -#: library/argparse.rst:1046 +#: library/argparse.rst:1037 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('foo', nargs='?', default=42)\n" @@ -1512,20 +1496,20 @@ msgid "" "Namespace(foo=42)" msgstr "" -#: library/argparse.rst:1053 +#: library/argparse.rst:1044 msgid "" "For required_ arguments, the ``default`` value is ignored. For example, this " "applies to positional arguments with nargs_ values other than ``?`` or " "``*``, or optional arguments marked as ``required=True``." msgstr "" -#: library/argparse.rst:1057 +#: library/argparse.rst:1048 msgid "" "Providing ``default=argparse.SUPPRESS`` causes no attribute to be added if " "the command-line argument was not present::" msgstr "" -#: library/argparse.rst:1060 +#: library/argparse.rst:1051 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default=argparse.SUPPRESS)\n" @@ -1535,11 +1519,11 @@ msgid "" "Namespace(foo='1')" msgstr "" -#: library/argparse.rst:1071 +#: library/argparse.rst:1062 msgid "type" msgstr "" -#: library/argparse.rst:1073 +#: library/argparse.rst:1064 msgid "" "By default, the parser reads command-line arguments in as simple strings. " "However, quite often the command-line string should instead be interpreted " @@ -1548,13 +1532,13 @@ msgid "" "checking and type conversions to be performed." msgstr "" -#: library/argparse.rst:1079 +#: library/argparse.rst:1070 msgid "" "If the type_ keyword is used with the default_ keyword, the type converter " "is only applied if the default is a string." msgstr "" -#: library/argparse.rst:1082 +#: library/argparse.rst:1073 msgid "" "The argument to ``type`` can be a callable that accepts a single string or " "the name of a registered type (see :meth:`~ArgumentParser.register`) If the " @@ -1563,11 +1547,11 @@ msgid "" "is displayed. Other exception types are not handled." msgstr "" -#: library/argparse.rst:1088 +#: library/argparse.rst:1079 msgid "Common built-in types and functions can be used as type converters:" msgstr "" -#: library/argparse.rst:1090 +#: library/argparse.rst:1081 msgid "" "import argparse\n" "import pathlib\n" @@ -1580,11 +1564,11 @@ msgid "" "parser.add_argument('datapath', type=pathlib.Path)" msgstr "" -#: library/argparse.rst:1102 +#: library/argparse.rst:1093 msgid "User defined functions can be used as well:" msgstr "" -#: library/argparse.rst:1104 +#: library/argparse.rst:1095 msgid "" ">>> def hyphenated(string):\n" "... return '-'.join([word[:4] for word in string.casefold().split()])\n" @@ -1595,14 +1579,14 @@ msgid "" "Namespace(short_title='\"the-tale-of-two-citi')" msgstr "" -#: library/argparse.rst:1114 +#: library/argparse.rst:1105 msgid "" "The :func:`bool` function is not recommended as a type converter. All it " "does is convert empty strings to ``False`` and non-empty strings to " "``True``. This is usually not what is desired." msgstr "" -#: library/argparse.rst:1118 +#: library/argparse.rst:1109 msgid "" "In general, the ``type`` keyword is a convenience that should only be used " "for simple conversions that can only raise one of the three supported " @@ -1610,7 +1594,7 @@ msgid "" "management should be done downstream after the arguments are parsed." msgstr "" -#: library/argparse.rst:1123 +#: library/argparse.rst:1114 msgid "" "For example, JSON or YAML conversions have complex error cases that require " "better reporting than can be given by the ``type`` keyword. A :exc:`~json." @@ -1618,7 +1602,7 @@ msgid "" "exception would not be handled at all." msgstr "" -#: library/argparse.rst:1128 +#: library/argparse.rst:1119 msgid "" "Even :class:`~argparse.FileType` has its limitations for use with the " "``type`` keyword. If one argument uses :class:`~argparse.FileType` and then " @@ -1628,17 +1612,17 @@ msgid "" "files." msgstr "" -#: library/argparse.rst:1135 +#: library/argparse.rst:1126 msgid "" "For type checkers that simply check against a fixed set of values, consider " "using the choices_ keyword instead." msgstr "" -#: library/argparse.rst:1142 +#: library/argparse.rst:1133 msgid "choices" msgstr "" -#: library/argparse.rst:1144 +#: library/argparse.rst:1135 msgid "" "Some command-line arguments should be selected from a restricted set of " "values. These can be handled by passing a sequence object as the *choices* " @@ -1647,7 +1631,7 @@ msgid "" "be displayed if the argument was not one of the acceptable values::" msgstr "" -#: library/argparse.rst:1150 +#: library/argparse.rst:1141 msgid "" ">>> parser = argparse.ArgumentParser(prog='game.py')\n" ">>> parser.add_argument('move', choices=['rock', 'paper', 'scissors'])\n" @@ -1659,26 +1643,33 @@ msgid "" "'paper', 'scissors')" msgstr "" -#: library/argparse.rst:1159 -msgid "" -"Note that inclusion in the *choices* sequence is checked after any type_ " -"conversions have been performed, so the type of the objects in the *choices* " -"sequence should match the type_ specified." -msgstr "" - -#: library/argparse.rst:1163 +#: library/argparse.rst:1150 msgid "" "Any sequence can be passed as the *choices* value, so :class:`list` " "objects, :class:`tuple` objects, and custom sequences are all supported." msgstr "" -#: library/argparse.rst:1166 +#: library/argparse.rst:1153 msgid "" "Use of :class:`enum.Enum` is not recommended because it is difficult to " "control its appearance in usage, help, and error messages." msgstr "" -#: library/argparse.rst:1169 +#: library/argparse.rst:1156 +msgid "" +"Note that *choices* are checked after any type_ conversions have been " +"performed, so objects in *choices* should match the type_ specified. This " +"can make *choices* appear unfamiliar in usage, help, or error messages." +msgstr "" + +#: library/argparse.rst:1161 +msgid "" +"To keep *choices* user-friendly, consider a custom type wrapper that " +"converts and formats values, or omit type_ and handle conversion in your " +"application code." +msgstr "" + +#: library/argparse.rst:1165 msgid "" "Formatted choices override the default *metavar* which is normally derived " "from *dest*. This is usually what you want because the user never sees the " @@ -1686,11 +1677,11 @@ msgid "" "are many choices), just specify an explicit metavar_." msgstr "" -#: library/argparse.rst:1178 +#: library/argparse.rst:1174 msgid "required" msgstr "" -#: library/argparse.rst:1180 +#: library/argparse.rst:1176 msgid "" "In general, the :mod:`!argparse` module assumes that flags like ``-f`` and " "``--bar`` indicate *optional* arguments, which can always be omitted at the " @@ -1698,7 +1689,7 @@ msgid "" "the ``required=`` keyword argument to :meth:`~ArgumentParser.add_argument`::" msgstr "" -#: library/argparse.rst:1185 +#: library/argparse.rst:1181 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', required=True)\n" @@ -1709,24 +1700,24 @@ msgid "" ": error: the following arguments are required: --foo" msgstr "" -#: library/argparse.rst:1193 +#: library/argparse.rst:1189 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 "" -#: library/argparse.rst:1199 +#: library/argparse.rst:1195 msgid "" "Required options are generally considered bad form because users expect " "*options* to be *optional*, and thus they should be avoided when possible." msgstr "" -#: library/argparse.rst:1206 +#: library/argparse.rst:1202 msgid "help" msgstr "" -#: library/argparse.rst:1208 +#: library/argparse.rst:1204 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`` " @@ -1734,7 +1725,7 @@ msgid "" "each argument." msgstr "" -#: library/argparse.rst:1213 +#: library/argparse.rst:1209 msgid "" "The ``help`` strings can include various format specifiers to avoid " "repetition of things like the program name or the argument default_. The " @@ -1743,7 +1734,7 @@ msgid "" "``%(type)s``, etc.::" msgstr "" -#: library/argparse.rst:1218 +#: library/argparse.rst:1214 msgid "" ">>> parser = argparse.ArgumentParser(prog='frobble')\n" ">>> parser.add_argument('bar', nargs='?', type=int, default=42,\n" @@ -1758,19 +1749,19 @@ msgid "" " -h, --help show this help message and exit" msgstr "" -#: library/argparse.rst:1230 +#: library/argparse.rst:1226 msgid "" "As the help string supports %-formatting, if you want a literal ``%`` to " "appear in the help string, you must escape it as ``%%``." msgstr "" -#: library/argparse.rst:1233 +#: library/argparse.rst:1229 msgid "" ":mod:`!argparse` supports silencing the help entry for certain options, by " "setting the ``help`` value to ``argparse.SUPPRESS``::" msgstr "" -#: library/argparse.rst:1236 +#: library/argparse.rst:1232 msgid "" ">>> parser = argparse.ArgumentParser(prog='frobble')\n" ">>> parser.add_argument('--foo', help=argparse.SUPPRESS)\n" @@ -1781,11 +1772,11 @@ msgid "" " -h, --help show this help message and exit" msgstr "" -#: library/argparse.rst:1248 +#: library/argparse.rst:1244 msgid "metavar" msgstr "" -#: library/argparse.rst:1250 +#: library/argparse.rst:1246 msgid "" "When :class:`ArgumentParser` generates help messages, it needs some way to " "refer to each expected argument. By default, :class:`!ArgumentParser` " @@ -1797,7 +1788,7 @@ msgid "" "command-line argument will be referred to as ``FOO``. An example::" msgstr "" -#: library/argparse.rst:1259 +#: library/argparse.rst:1255 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo')\n" @@ -1815,11 +1806,11 @@ msgid "" " --foo FOO" msgstr "" -#: library/argparse.rst:1274 +#: library/argparse.rst:1270 msgid "An alternative name can be specified with ``metavar``::" msgstr "" -#: library/argparse.rst:1276 +#: library/argparse.rst:1272 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', metavar='YYY')\n" @@ -1837,21 +1828,21 @@ msgid "" " --foo YYY" msgstr "" -#: library/argparse.rst:1291 +#: library/argparse.rst:1287 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 "" -#: library/argparse.rst:1295 +#: library/argparse.rst:1291 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 "" -#: library/argparse.rst:1299 +#: library/argparse.rst:1295 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-x', nargs=2)\n" @@ -1865,11 +1856,11 @@ msgid "" " --foo bar baz" msgstr "" -#: library/argparse.rst:1314 +#: library/argparse.rst:1310 msgid "dest" msgstr "" -#: library/argparse.rst:1316 +#: library/argparse.rst:1312 msgid "" "Most :class:`ArgumentParser` actions add some value as an attribute of the " "object returned by :meth:`~ArgumentParser.parse_args`. The name of this " @@ -1879,7 +1870,7 @@ msgid "" "add_argument`::" msgstr "" -#: library/argparse.rst:1323 +#: library/argparse.rst:1319 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('bar')\n" @@ -1887,7 +1878,7 @@ msgid "" "Namespace(bar='XXX')" msgstr "" -#: library/argparse.rst:1328 +#: library/argparse.rst:1324 msgid "" "For optional argument actions, the value of ``dest`` is normally inferred " "from the option strings. :class:`ArgumentParser` generates the value of " @@ -1899,7 +1890,7 @@ msgid "" "below illustrate this behavior::" msgstr "" -#: library/argparse.rst:1337 +#: library/argparse.rst:1333 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('-f', '--foo-bar', '--foo')\n" @@ -1910,11 +1901,11 @@ msgid "" "Namespace(foo_bar='1', x='2')" msgstr "" -#: library/argparse.rst:1345 +#: library/argparse.rst:1341 msgid "``dest`` allows a custom attribute name to be provided::" msgstr "" -#: library/argparse.rst:1347 +#: library/argparse.rst:1343 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', dest='bar')\n" @@ -1922,11 +1913,11 @@ msgid "" "Namespace(bar='XXX')" msgstr "" -#: library/argparse.rst:1356 +#: library/argparse.rst:1352 msgid "deprecated" msgstr "" -#: library/argparse.rst:1358 +#: library/argparse.rst:1354 msgid "" "During a project's lifetime, some arguments may need to be removed from the " "command line. Before removing them, you should inform your users that the " @@ -1937,7 +1928,7 @@ msgid "" "will be printed to :data:`sys.stderr` when the argument is used::" msgstr "" -#: library/argparse.rst:1368 +#: library/argparse.rst:1364 msgid "" ">>> import argparse\n" ">>> parser = argparse.ArgumentParser(prog='snake.py')\n" @@ -1949,11 +1940,11 @@ msgid "" "Namespace(legs=4)" msgstr "" -#: library/argparse.rst:1381 +#: library/argparse.rst:1377 msgid "Action classes" msgstr "" -#: library/argparse.rst:1383 +#: library/argparse.rst:1379 msgid "" ":class:`!Action` classes implement the Action API, a callable which returns " "a callable which processes arguments from the command-line. Any object which " @@ -1961,7 +1952,7 @@ msgid "" "`~ArgumentParser.add_argument`." msgstr "" -#: library/argparse.rst:1392 +#: library/argparse.rst:1388 msgid "" ":class:`!Action` objects are used by an :class:`ArgumentParser` to represent " "the information needed to parse a single argument from one or more strings " @@ -1970,7 +1961,7 @@ msgid "" "`ArgumentParser.add_argument` except for the ``action`` itself." msgstr "" -#: library/argparse.rst:1398 +#: library/argparse.rst:1394 msgid "" "Instances of :class:`!Action` (or return value of any callable to the " "``action`` parameter) should have attributes :attr:`!dest`, :attr:`!" @@ -1979,46 +1970,46 @@ msgid "" "is to call :meth:`!Action.__init__`." msgstr "" -#: library/argparse.rst:1406 +#: library/argparse.rst:1402 msgid "" ":class:`!Action` instances should be callable, so subclasses must override " "the :meth:`!__call__` method, which should accept four parameters:" msgstr "" -#: library/argparse.rst:1409 +#: library/argparse.rst:1405 msgid "" "*parser* - The :class:`ArgumentParser` object which contains this action." msgstr "" -#: library/argparse.rst:1411 +#: library/argparse.rst:1407 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 "" -#: library/argparse.rst:1415 +#: library/argparse.rst:1411 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 "" -#: library/argparse.rst:1419 +#: library/argparse.rst:1415 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 "" -#: library/argparse.rst:1423 +#: library/argparse.rst:1419 msgid "" "The :meth:`!__call__` method may perform arbitrary actions, but will " "typically set attributes on the ``namespace`` based on ``dest`` and " "``values``." msgstr "" -#: library/argparse.rst:1428 +#: library/argparse.rst:1424 msgid "" ":class:`!Action` subclasses can define a :meth:`!format_usage` method that " "takes no argument and return a string which will be used when printing the " @@ -2026,47 +2017,64 @@ msgid "" "will be used." msgstr "" -#: library/argparse.rst:1434 +#: library/argparse.rst:1430 +msgid "" +"A subclass of :class:`Action` for handling boolean flags with positive and " +"negative options. Adding a single argument such as ``--foo`` automatically " +"creates both ``--foo`` and ``--no-foo`` options, storing ``True`` and " +"``False`` respectively::" +msgstr "" + +#: library/argparse.rst:1435 +msgid "" +">>> import argparse\n" +">>> parser = argparse.ArgumentParser()\n" +">>> parser.add_argument('--foo', action=argparse.BooleanOptionalAction)\n" +">>> parser.parse_args(['--no-foo'])\n" +"Namespace(foo=False)" +msgstr "" + +#: library/argparse.rst:1445 msgid "The parse_args() method" msgstr "" -#: library/argparse.rst:1438 +#: library/argparse.rst:1449 msgid "" "Convert argument strings to objects and assign them as attributes of the " "namespace. Return the populated namespace." msgstr "" -#: library/argparse.rst:1441 +#: library/argparse.rst:1452 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 "" -#: library/argparse.rst:1445 +#: library/argparse.rst:1456 msgid "" "args_ - List of strings to parse. The default is taken from :data:`sys." "argv`." msgstr "" -#: library/argparse.rst:1448 +#: library/argparse.rst:1459 msgid "" "namespace_ - An object to take the attributes. The default is a new empty :" "class:`Namespace` object." msgstr "" -#: library/argparse.rst:1453 +#: library/argparse.rst:1464 msgid "Option value syntax" msgstr "" -#: library/argparse.rst:1455 +#: library/argparse.rst:1466 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 "" -#: library/argparse.rst:1459 +#: library/argparse.rst:1470 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-x')\n" @@ -2077,38 +2085,38 @@ msgid "" "Namespace(foo='FOO', x=None)" msgstr "" -#: library/argparse.rst:1467 +#: library/argparse.rst:1478 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 "" -#: library/argparse.rst:1471 +#: library/argparse.rst:1482 msgid "" ">>> parser.parse_args(['--foo=FOO'])\n" "Namespace(foo='FOO', x=None)" msgstr "" -#: library/argparse.rst:1474 +#: library/argparse.rst:1485 msgid "" "For short options (options only one character long), the option and its " "value can be concatenated::" msgstr "" -#: library/argparse.rst:1477 +#: library/argparse.rst:1488 msgid "" ">>> parser.parse_args(['-xX'])\n" "Namespace(foo=None, x='X')" msgstr "" -#: library/argparse.rst:1480 +#: library/argparse.rst:1491 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 "" -#: library/argparse.rst:1483 +#: library/argparse.rst:1494 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-x', action='store_true')\n" @@ -2118,11 +2126,11 @@ msgid "" "Namespace(x=True, y=True, z='Z')" msgstr "" -#: library/argparse.rst:1492 +#: library/argparse.rst:1503 msgid "Invalid arguments" msgstr "" -#: library/argparse.rst:1494 +#: library/argparse.rst:1505 msgid "" "While parsing the command line, :meth:`~ArgumentParser.parse_args` checks " "for a variety of errors, including ambiguous options, invalid types, invalid " @@ -2130,7 +2138,7 @@ msgid "" "an error, it exits and prints the error along with a usage message::" msgstr "" -#: library/argparse.rst:1499 +#: library/argparse.rst:1510 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('--foo', type=int)\n" @@ -2152,11 +2160,11 @@ msgid "" "PROG: error: extra arguments found: badger" msgstr "" -#: library/argparse.rst:1520 +#: library/argparse.rst:1531 msgid "Arguments containing ``-``" msgstr "" -#: library/argparse.rst:1522 +#: library/argparse.rst:1533 msgid "" "The :meth:`~ArgumentParser.parse_args` method attempts to give errors " "whenever the user has clearly made a mistake, but some situations are " @@ -2168,7 +2176,7 @@ msgid "" "negative numbers::" msgstr "" -#: library/argparse.rst:1530 +#: library/argparse.rst:1541 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-x')\n" @@ -2201,7 +2209,7 @@ msgid "" "PROG: error: argument -1: expected one argument" msgstr "" -#: library/argparse.rst:1560 +#: library/argparse.rst:1571 msgid "" "If you have positional arguments that must begin with ``-`` and don't look " "like negative numbers, you can insert the pseudo-argument ``'--'`` which " @@ -2209,30 +2217,30 @@ msgid "" "positional argument::" msgstr "" -#: library/argparse.rst:1565 +#: library/argparse.rst:1576 msgid "" ">>> parser.parse_args(['--', '-f'])\n" "Namespace(foo='-f', one=None)" msgstr "" -#: library/argparse.rst:1568 +#: library/argparse.rst:1579 msgid "" "See also :ref:`the argparse howto on ambiguous arguments ` for more details." msgstr "" -#: library/argparse.rst:1574 +#: library/argparse.rst:1585 msgid "Argument abbreviations (prefix matching)" msgstr "" -#: library/argparse.rst:1576 +#: library/argparse.rst:1587 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 "" -#: library/argparse.rst:1580 +#: library/argparse.rst:1591 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-bacon')\n" @@ -2246,17 +2254,17 @@ msgid "" "PROG: error: ambiguous option: -ba could match -badger, -bacon" msgstr "" -#: library/argparse.rst:1591 +#: library/argparse.rst:1602 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 "" -#: library/argparse.rst:1597 +#: library/argparse.rst:1608 msgid "Beyond ``sys.argv``" msgstr "" -#: library/argparse.rst:1599 +#: library/argparse.rst:1610 msgid "" "Sometimes it may be useful to have an :class:`ArgumentParser` parse " "arguments other than those of :data:`sys.argv`. This can be accomplished by " @@ -2264,7 +2272,7 @@ msgid "" "useful for testing at the interactive prompt::" msgstr "" -#: library/argparse.rst:1604 +#: library/argparse.rst:1615 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument(\n" @@ -2279,24 +2287,24 @@ msgid "" "Namespace(accumulate=, integers=[1, 2, 3, 4])" msgstr "" -#: library/argparse.rst:1619 +#: library/argparse.rst:1630 msgid "The Namespace object" msgstr "" -#: library/argparse.rst:1623 +#: library/argparse.rst:1634 msgid "" "Simple class used by default by :meth:`~ArgumentParser.parse_args` to create " "an object holding attributes and return it." msgstr "" -#: library/argparse.rst:1626 +#: library/argparse.rst:1637 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 "" -#: library/argparse.rst:1630 +#: library/argparse.rst:1641 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo')\n" @@ -2305,14 +2313,14 @@ msgid "" "{'foo': 'BAR'}" msgstr "" -#: library/argparse.rst:1636 +#: library/argparse.rst:1647 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 "" -#: library/argparse.rst:1640 +#: library/argparse.rst:1651 msgid "" ">>> class C:\n" "... pass\n" @@ -2325,15 +2333,15 @@ msgid "" "'BAR'" msgstr "" -#: library/argparse.rst:1652 +#: library/argparse.rst:1663 msgid "Other utilities" msgstr "" -#: library/argparse.rst:1655 +#: library/argparse.rst:1666 msgid "Sub-commands" msgstr "" -#: library/argparse.rst:1662 +#: library/argparse.rst:1673 msgid "" "Many programs split up their functionality into a number of subcommands, for " "example, the ``svn`` program can invoke subcommands like ``svn checkout``, " @@ -2348,69 +2356,69 @@ msgid "" "returns an :class:`!ArgumentParser` object that can be modified as usual." msgstr "" -#: library/argparse.rst:1674 +#: library/argparse.rst:1685 msgid "Description of parameters:" msgstr "" -#: library/argparse.rst:1676 +#: library/argparse.rst:1687 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 "" -#: library/argparse.rst:1680 +#: library/argparse.rst:1691 msgid "" "*description* - description for the sub-parser group in help output, by " "default ``None``" msgstr "" -#: library/argparse.rst:1683 +#: library/argparse.rst:1694 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 "" -#: library/argparse.rst:1687 +#: library/argparse.rst:1698 msgid "" "*parser_class* - class which will be used to create sub-parser instances, by " "default the class of the current parser (e.g. :class:`ArgumentParser`)" msgstr "" -#: library/argparse.rst:1690 +#: library/argparse.rst:1701 msgid "" "action_ - the basic type of action to be taken when this argument is " "encountered at the command line" msgstr "" -#: library/argparse.rst:1693 +#: library/argparse.rst:1704 msgid "" "dest_ - name of the attribute under which sub-command name will be stored; " "by default ``None`` and no value is stored" msgstr "" -#: library/argparse.rst:1696 +#: library/argparse.rst:1707 msgid "" "required_ - Whether or not a subcommand must be provided, by default " "``False`` (added in 3.7)" msgstr "" -#: library/argparse.rst:1699 +#: library/argparse.rst:1710 msgid "help_ - help for sub-parser group in help output, by default ``None``" msgstr "" -#: library/argparse.rst:1701 +#: library/argparse.rst:1712 msgid "" "metavar_ - string presenting available subcommands in help; by default it is " "``None`` and presents subcommands in form {cmd1, cmd2, ..}" msgstr "" -#: library/argparse.rst:1704 +#: library/argparse.rst:1715 msgid "Some example usage::" msgstr "" -#: library/argparse.rst:1706 +#: library/argparse.rst:1717 msgid "" ">>> # create the top-level parser\n" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" @@ -2433,7 +2441,7 @@ msgid "" "Namespace(baz='Z', foo=True)" msgstr "" -#: library/argparse.rst:1725 +#: library/argparse.rst:1736 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 " @@ -2443,7 +2451,7 @@ msgid "" "``baz`` attributes are present." msgstr "" -#: library/argparse.rst:1732 +#: library/argparse.rst:1743 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 " @@ -2452,7 +2460,7 @@ msgid "" "to :meth:`~_SubParsersAction.add_parser` as above.)" msgstr "" -#: library/argparse.rst:1740 +#: library/argparse.rst:1751 msgid "" ">>> parser.parse_args(['--help'])\n" "usage: PROG [-h] [--foo] {a,b} ...\n" @@ -2483,14 +2491,14 @@ msgid "" " --baz {X,Y,Z} baz help" msgstr "" -#: library/argparse.rst:1768 +#: library/argparse.rst:1779 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 "" -#: library/argparse.rst:1772 +#: library/argparse.rst:1783 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> subparsers = parser.add_subparsers(title='subcommands',\n" @@ -2510,7 +2518,7 @@ msgid "" " {foo,bar} additional help" msgstr "" -#: library/argparse.rst:1789 +#: library/argparse.rst:1800 msgid "" "Furthermore, :meth:`~_SubParsersAction.add_parser` supports an additional " "*aliases* argument, which allows multiple strings to refer to the same " @@ -2518,7 +2526,7 @@ msgid "" "``checkout``::" msgstr "" -#: library/argparse.rst:1794 +#: library/argparse.rst:1805 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> subparsers = parser.add_subparsers()\n" @@ -2528,13 +2536,13 @@ msgid "" "Namespace(foo='bar')" msgstr "" -#: library/argparse.rst:1801 +#: library/argparse.rst:1812 msgid "" ":meth:`~_SubParsersAction.add_parser` supports also an additional " "*deprecated* argument, which allows to deprecate the subparser." msgstr "" -#: library/argparse.rst:1815 +#: library/argparse.rst:1826 msgid "" "One particularly effective way of handling subcommands is to combine the use " "of the :meth:`add_subparsers` method with calls to :meth:`set_defaults` so " @@ -2542,7 +2550,7 @@ msgid "" "example::" msgstr "" -#: library/argparse.rst:1820 +#: library/argparse.rst:1831 msgid "" ">>> # subcommand functions\n" ">>> def foo(args):\n" @@ -2577,7 +2585,7 @@ msgid "" "((XYZYX))" msgstr "" -#: library/argparse.rst:1852 +#: library/argparse.rst:1863 msgid "" "This way, you can let :meth:`parse_args` do the job of calling the " "appropriate function after argument parsing is complete. Associating " @@ -2587,7 +2595,7 @@ msgid "" "argument to the :meth:`add_subparsers` call will work::" msgstr "" -#: library/argparse.rst:1859 +#: library/argparse.rst:1870 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> subparsers = parser.add_subparsers(dest='subparser_name')\n" @@ -2599,21 +2607,21 @@ msgid "" "Namespace(subparser_name='2', y='frobble')" msgstr "" -#: library/argparse.rst:1868 +#: library/argparse.rst:1879 msgid "New *required* keyword-only parameter." msgstr "" -#: library/argparse.rst:1871 +#: library/argparse.rst:1882 msgid "" "Subparser's *prog* is no longer affected by a custom usage message in the " "main parser." msgstr "" -#: library/argparse.rst:1877 +#: library/argparse.rst:1888 msgid "FileType objects" msgstr "" -#: library/argparse.rst:1881 +#: library/argparse.rst:1892 msgid "" "The :class:`FileType` factory creates objects that can be passed to the type " "argument of :meth:`ArgumentParser.add_argument`. Arguments that have :class:" @@ -2622,7 +2630,7 @@ msgid "" "the :func:`open` function for more details)::" msgstr "" -#: library/argparse.rst:1887 +#: library/argparse.rst:1898 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--raw', type=argparse.FileType('wb', 0))\n" @@ -2633,14 +2641,14 @@ msgid "" "raw=<_io.FileIO name='raw.dat' mode='wb'>)" msgstr "" -#: library/argparse.rst:1893 +#: library/argparse.rst:1904 msgid "" "FileType objects understand the pseudo-argument ``'-'`` and automatically " "convert this into :data:`sys.stdin` for readable :class:`FileType` objects " "and :data:`sys.stdout` for writable :class:`FileType` objects::" msgstr "" -#: library/argparse.rst:1897 +#: library/argparse.rst:1908 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('infile', type=argparse.FileType('r'))\n" @@ -2648,7 +2656,7 @@ msgid "" "Namespace(infile=<_io.TextIOWrapper name='' encoding='UTF-8'>)" msgstr "" -#: library/argparse.rst:1904 +#: library/argparse.rst:1915 msgid "" "If one argument uses *FileType* and then a subsequent argument fails, an " "error is reported but the file is not automatically closed. This can also " @@ -2657,15 +2665,15 @@ msgid "" "manage the files." msgstr "" -#: library/argparse.rst:1910 +#: library/argparse.rst:1921 msgid "Added the *encodings* and *errors* parameters." msgstr "" -#: library/argparse.rst:1917 +#: library/argparse.rst:1928 msgid "Argument groups" msgstr "" -#: library/argparse.rst:1922 +#: library/argparse.rst:1933 msgid "" "By default, :class:`ArgumentParser` groups command-line arguments into " "\"positional arguments\" and \"options\" when displaying help messages. When " @@ -2674,7 +2682,7 @@ msgid "" "method::" msgstr "" -#: library/argparse.rst:1928 +#: library/argparse.rst:1939 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)\n" ">>> group = parser.add_argument_group('group')\n" @@ -2688,7 +2696,7 @@ msgid "" " --foo FOO foo help" msgstr "" -#: library/argparse.rst:1939 +#: library/argparse.rst:1950 msgid "" "The :meth:`add_argument_group` method returns an argument group object which " "has an :meth:`~ArgumentParser.add_argument` method just like a regular :" @@ -2699,7 +2707,7 @@ msgid "" "this display::" msgstr "" -#: library/argparse.rst:1947 +#: library/argparse.rst:1958 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)\n" ">>> group1 = parser.add_argument_group('group1', 'group1 description')\n" @@ -2720,7 +2728,7 @@ msgid "" " --bar BAR bar help" msgstr "" -#: library/argparse.rst:1965 +#: library/argparse.rst:1976 msgid "" "The optional, keyword-only parameters argument_default_ and " "conflict_handler_ allow for finer-grained control of the behavior of the " @@ -2729,35 +2737,35 @@ msgid "" "rather than the entire parser." msgstr "" -#: library/argparse.rst:1970 +#: library/argparse.rst:1981 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 "" -#: library/argparse.rst:1973 +#: library/argparse.rst:1984 msgid "" "Calling :meth:`add_argument_group` on an argument group now raises an " "exception. This nesting was never supported, often failed to work correctly, " "and was unintentionally exposed through inheritance." msgstr "" -#: library/argparse.rst:1978 +#: library/argparse.rst:1989 msgid "Passing prefix_chars_ to :meth:`add_argument_group` is now deprecated." msgstr "" -#: library/argparse.rst:1984 +#: library/argparse.rst:1995 msgid "Mutual exclusion" msgstr "" -#: library/argparse.rst:1988 +#: library/argparse.rst:1999 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 "" -#: library/argparse.rst:1992 +#: library/argparse.rst:2003 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> group = parser.add_mutually_exclusive_group()\n" @@ -2772,14 +2780,14 @@ msgid "" "PROG: error: argument --bar: not allowed with argument --foo" msgstr "" -#: library/argparse.rst:2004 +#: library/argparse.rst:2015 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 "" -#: library/argparse.rst:2008 +#: library/argparse.rst:2019 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> group = parser.add_mutually_exclusive_group(required=True)\n" @@ -2790,7 +2798,7 @@ msgid "" "PROG: error: one of the arguments --foo --bar is required" msgstr "" -#: library/argparse.rst:2016 +#: library/argparse.rst:2027 msgid "" "Note that currently mutually exclusive argument groups do not support the " "*title* and *description* arguments of :meth:`~ArgumentParser." @@ -2798,7 +2806,7 @@ msgid "" "argument group that has a title and description. For example::" msgstr "" -#: library/argparse.rst:2022 +#: library/argparse.rst:2033 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> group = parser.add_argument_group('Group title', 'Group description')\n" @@ -2818,7 +2826,7 @@ msgid "" " --bar BAR bar help" msgstr "" -#: library/argparse.rst:2039 +#: library/argparse.rst:2050 msgid "" "Calling :meth:`add_argument_group` or :meth:`add_mutually_exclusive_group` " "on a mutually exclusive group now raises an exception. This nesting was " @@ -2826,11 +2834,11 @@ msgid "" "exposed through inheritance." msgstr "" -#: library/argparse.rst:2047 +#: library/argparse.rst:2058 msgid "Parser defaults" msgstr "" -#: library/argparse.rst:2051 +#: library/argparse.rst:2062 msgid "" "Most of the time, the attributes of the object returned by :meth:" "`parse_args` will be fully determined by inspecting the command-line " @@ -2839,7 +2847,7 @@ msgid "" "command line to be added::" msgstr "" -#: library/argparse.rst:2057 +#: library/argparse.rst:2068 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('foo', type=int)\n" @@ -2848,12 +2856,15 @@ msgid "" "Namespace(bar=42, baz='badger', foo=736)" msgstr "" -#: library/argparse.rst:2063 +#: library/argparse.rst:2074 msgid "" -"Note that parser-level defaults always override argument-level defaults::" +"Note that defaults can be set at both the parser level using :meth:" +"`set_defaults` and at the argument level using :meth:`add_argument`. If both " +"are called for the same argument, the last default set for an argument is " +"used::" msgstr "" -#: library/argparse.rst:2065 +#: library/argparse.rst:2078 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default='bar')\n" @@ -2862,20 +2873,20 @@ msgid "" "Namespace(foo='spam')" msgstr "" -#: library/argparse.rst:2071 +#: library/argparse.rst:2084 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 "" -#: library/argparse.rst:2077 +#: library/argparse.rst:2090 msgid "" "Get the default value for a namespace attribute, as set by either :meth:" "`~ArgumentParser.add_argument` or by :meth:`~ArgumentParser.set_defaults`::" msgstr "" -#: library/argparse.rst:2081 +#: library/argparse.rst:2094 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default='badger')\n" @@ -2883,54 +2894,54 @@ msgid "" "'badger'" msgstr "" -#: library/argparse.rst:2088 +#: library/argparse.rst:2101 msgid "Printing help" msgstr "" -#: library/argparse.rst:2090 +#: library/argparse.rst:2103 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 "" -#: library/argparse.rst:2096 +#: library/argparse.rst:2109 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 "" -#: library/argparse.rst:2102 +#: library/argparse.rst:2115 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 "" -#: library/argparse.rst:2106 +#: library/argparse.rst:2119 msgid "" "There are also variants of these methods that simply return a string instead " "of printing it:" msgstr "" -#: library/argparse.rst:2111 +#: library/argparse.rst:2124 msgid "" "Return a string containing a brief description of how the :class:" "`ArgumentParser` should be invoked on the command line." msgstr "" -#: library/argparse.rst:2116 +#: library/argparse.rst:2129 msgid "" "Return a string containing a help message, including the program usage and " "information about the arguments registered with the :class:`ArgumentParser`." msgstr "" -#: library/argparse.rst:2121 +#: library/argparse.rst:2134 msgid "Partial parsing" msgstr "" -#: library/argparse.rst:2125 +#: library/argparse.rst:2138 msgid "" "Sometimes a script only needs to handle a specific set of command-line " "arguments, leaving any unrecognized arguments for another script or program. " @@ -2938,7 +2949,7 @@ msgid "" "useful." msgstr "" -#: library/argparse.rst:2130 +#: library/argparse.rst:2143 msgid "" "This method works similarly to :meth:`~ArgumentParser.parse_args`, but it " "does not raise an error for extra, unrecognized arguments. Instead, it " @@ -2946,7 +2957,7 @@ msgid "" "populated namespace and the list of any unrecognized arguments." msgstr "" -#: library/argparse.rst:2137 +#: library/argparse.rst:2150 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', action='store_true')\n" @@ -2955,7 +2966,7 @@ msgid "" "(Namespace(bar='BAR', foo=True), ['--badger', 'spam'])" msgstr "" -#: library/argparse.rst:2144 +#: library/argparse.rst:2157 msgid "" ":ref:`Prefix matching ` rules apply to :meth:" "`~ArgumentParser.parse_known_args`. The parser may consume an option even if " @@ -2963,11 +2974,11 @@ msgid "" "remaining arguments list." msgstr "" -#: library/argparse.rst:2151 +#: library/argparse.rst:2164 msgid "Customizing file parsing" msgstr "" -#: library/argparse.rst:2155 +#: library/argparse.rst:2168 msgid "" "Arguments that are read from a file (see the *fromfile_prefix_chars* keyword " "argument to the :class:`ArgumentParser` constructor) are read one argument " @@ -2975,38 +2986,38 @@ msgid "" "reading." msgstr "" -#: library/argparse.rst:2160 +#: library/argparse.rst:2173 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 "" -#: library/argparse.rst:2164 +#: library/argparse.rst:2177 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 "" -#: library/argparse.rst:2167 +#: library/argparse.rst:2180 msgid "" "class MyArgumentParser(argparse.ArgumentParser):\n" " def convert_arg_line_to_args(self, arg_line):\n" " return arg_line.split()" msgstr "" -#: library/argparse.rst:2173 +#: library/argparse.rst:2186 msgid "Exiting methods" msgstr "" -#: library/argparse.rst:2177 +#: library/argparse.rst:2190 msgid "" "This method terminates the program, exiting with the specified *status* and, " "if given, it prints a *message* to :data:`sys.stderr` before that. The user " "can override this method to handle these steps differently::" msgstr "" -#: library/argparse.rst:2181 +#: library/argparse.rst:2194 msgid "" "class ErrorCatchingArgumentParser(argparse.ArgumentParser):\n" " def exit(self, status=0, message=None):\n" @@ -3015,17 +3026,17 @@ msgid "" " exit(status)" msgstr "" -#: library/argparse.rst:2189 +#: library/argparse.rst:2202 msgid "" "This method prints a usage message, including the *message*, to :data:`sys." "stderr` and terminates the program with a status code of 2." msgstr "" -#: library/argparse.rst:2194 +#: library/argparse.rst:2207 msgid "Intermixed parsing" msgstr "" -#: library/argparse.rst:2199 +#: library/argparse.rst:2212 msgid "" "A number of Unix commands allow the user to intermix optional arguments with " "positional arguments. The :meth:`~ArgumentParser.parse_intermixed_args` " @@ -3033,7 +3044,7 @@ msgid "" "parsing style." msgstr "" -#: library/argparse.rst:2204 +#: library/argparse.rst:2217 msgid "" "These parsers do not support all the :mod:`!argparse` features, and will " "raise exceptions if unsupported features are used. In particular, " @@ -3041,7 +3052,7 @@ msgid "" "positionals are not supported." msgstr "" -#: library/argparse.rst:2209 +#: library/argparse.rst:2222 msgid "" "The following example shows the difference between :meth:`~ArgumentParser." "parse_known_args` and :meth:`~ArgumentParser.parse_intermixed_args`: the " @@ -3049,7 +3060,7 @@ msgid "" "collects all the positionals into ``rest``. ::" msgstr "" -#: library/argparse.rst:2215 +#: library/argparse.rst:2228 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo')\n" @@ -3061,7 +3072,7 @@ msgid "" "Namespace(cmd='doit', foo='bar', rest=[1, 2, 3])" msgstr "" -#: library/argparse.rst:2224 +#: library/argparse.rst:2237 msgid "" ":meth:`~ArgumentParser.parse_known_intermixed_args` returns a two item tuple " "containing the populated namespace and the list of remaining argument " @@ -3069,11 +3080,11 @@ msgid "" "there are any remaining unparsed argument strings." msgstr "" -#: library/argparse.rst:2233 +#: library/argparse.rst:2246 msgid "Registering custom types or actions" msgstr "" -#: library/argparse.rst:2237 +#: library/argparse.rst:2250 msgid "" "Sometimes it's desirable to use a custom string in error messages to provide " "more user-friendly output. In these cases, :meth:`!register` can be used to " @@ -3081,7 +3092,7 @@ msgid "" "the type by their registered name instead of their callable name." msgstr "" -#: library/argparse.rst:2242 +#: library/argparse.rst:2255 msgid "" "The :meth:`!register` method accepts three arguments - a *registry_name*, " "specifying the internal registry where the object will be stored (e.g., " @@ -3089,12 +3100,12 @@ msgid "" "be registered, and object, the callable to be registered." msgstr "" -#: library/argparse.rst:2247 +#: library/argparse.rst:2260 msgid "" "The following example shows how to register a custom type with a parser::" msgstr "" -#: library/argparse.rst:2249 +#: library/argparse.rst:2262 msgid "" ">>> import argparse\n" ">>> parser = argparse.ArgumentParser()\n" @@ -3110,41 +3121,41 @@ msgid "" "PROG: error: argument --foo: invalid 'hexadecimal integer' value: '1.2'" msgstr "" -#: library/argparse.rst:2261 +#: library/argparse.rst:2274 msgid "Exceptions" msgstr "" -#: library/argparse.rst:2265 +#: library/argparse.rst:2278 msgid "An error from creating or using an argument (optional or positional)." msgstr "" -#: library/argparse.rst:2267 +#: library/argparse.rst:2280 msgid "" "The string value of this exception is the message, augmented with " "information about the argument that caused it." msgstr "" -#: library/argparse.rst:2272 +#: library/argparse.rst:2285 msgid "" "Raised when something goes wrong converting a command line string to a type." msgstr "" -#: library/argparse.rst:2276 +#: library/argparse.rst:2289 msgid "Guides and Tutorials" msgstr "" -#: library/argparse.rst:910 +#: library/argparse.rst:901 msgid "? (question mark)" msgstr "" -#: library/argparse.rst:942 library/argparse.rst:956 +#: library/argparse.rst:933 library/argparse.rst:947 msgid "in argparse module" msgstr "" -#: library/argparse.rst:942 +#: library/argparse.rst:933 msgid "* (asterisk)" msgstr "" -#: library/argparse.rst:956 +#: library/argparse.rst:947 msgid "+ (plus)" msgstr "" diff --git a/library/array.po b/library/array.po index 8adb599f..5aa3710c 100644 --- a/library/array.po +++ b/library/array.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -108,6 +108,10 @@ msgstr "" msgid "4" msgstr "" +#: library/array.rst:27 +msgid "\\(2)" +msgstr "" + #: library/array.rst:29 msgid "``'h'``" msgstr "" @@ -211,26 +215,26 @@ msgstr "" msgid "Please migrate to ``'w'`` typecode." msgstr "" -#: library/array.rst:64 +#: 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:`array.itemsize` attribute." msgstr "" -#: library/array.rst:68 +#: library/array.rst:71 msgid "The module defines the following item:" msgstr "" -#: library/array.rst:73 +#: library/array.rst:76 msgid "A string with all available type codes." msgstr "" -#: library/array.rst:76 +#: library/array.rst:79 msgid "The module defines the following type:" msgstr "" -#: library/array.rst:81 +#: library/array.rst:84 msgid "" "A new array whose items are restricted by *typecode*, and initialized from " "the optional *initializer* value, which must be a :class:`bytes` or :class:" @@ -238,7 +242,7 @@ msgid "" "appropriate type." msgstr "" -#: library/array.rst:86 +#: library/array.rst:89 msgid "" "If given a :class:`bytes` or :class:`bytearray` object, the initializer is " "passed to the new array's :meth:`frombytes` method; if given a Unicode " @@ -247,7 +251,7 @@ msgid "" "to add initial items to the array." msgstr "" -#: library/array.rst:93 +#: library/array.rst:96 msgid "" "Array objects support the ordinary sequence operations of indexing, slicing, " "concatenation, and multiplication. When using slice assignment, the " @@ -257,25 +261,25 @@ msgid "" "object>` are supported." msgstr "" -#: library/array.rst:99 +#: library/array.rst:102 msgid "" "Raises an :ref:`auditing event ` ``array.__new__`` with arguments " "``typecode``, ``initializer``." msgstr "" -#: library/array.rst:104 +#: library/array.rst:107 msgid "The typecode character used to create the array." msgstr "" -#: library/array.rst:109 +#: library/array.rst:112 msgid "The length in bytes of one array item in the internal representation." msgstr "" -#: library/array.rst:114 +#: library/array.rst:117 msgid "Append a new item with value *x* to the end of the array." msgstr "" -#: library/array.rst:119 +#: library/array.rst:122 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 " @@ -287,7 +291,7 @@ msgid "" "it." msgstr "" -#: library/array.rst:129 +#: library/array.rst:132 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 " @@ -296,7 +300,7 @@ msgid "" "interface is documented in :ref:`bufferobjects`." msgstr "" -#: library/array.rst:138 +#: library/array.rst:141 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:" @@ -304,11 +308,11 @@ msgid "" "written on a machine with a different byte order." msgstr "" -#: library/array.rst:146 +#: library/array.rst:149 msgid "Return the number of occurrences of *x* in the array." msgstr "" -#: library/array.rst:151 +#: library/array.rst:154 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:" @@ -316,18 +320,18 @@ msgid "" "iterable and its elements must be the right type to be appended to the array." msgstr "" -#: library/array.rst:159 +#: library/array.rst:162 msgid "" "Appends items from the :term:`bytes-like object`, interpreting its content " "as an array of machine values (as if it had been read from a file using the :" "meth:`fromfile` method)." msgstr "" -#: library/array.rst:163 +#: library/array.rst:166 msgid ":meth:`!fromstring` is renamed to :meth:`frombytes` for clarity." msgstr "" -#: library/array.rst:169 +#: library/array.rst:172 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, :" @@ -335,13 +339,13 @@ msgid "" "inserted into the array." msgstr "" -#: library/array.rst:177 +#: library/array.rst:180 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 "" -#: library/array.rst:183 +#: library/array.rst:186 msgid "" "Extends this array with data from the given Unicode string. The array must " "have type code ``'u'`` or ``'w'``; otherwise a :exc:`ValueError` is raised. " @@ -349,7 +353,7 @@ msgid "" "an array of some other type." msgstr "" -#: library/array.rst:191 +#: library/array.rst:194 msgid "" "Return the smallest *i* such that *i* is the index of the first occurrence " "of *x* in the array. The optional arguments *start* and *stop* can be " @@ -357,62 +361,62 @@ msgid "" "`ValueError` if *x* is not found." msgstr "" -#: library/array.rst:196 +#: library/array.rst:199 msgid "Added optional *start* and *stop* parameters." msgstr "" -#: library/array.rst:202 +#: library/array.rst:205 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 "" -#: library/array.rst:208 +#: library/array.rst:211 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 "" -#: library/array.rst:215 +#: library/array.rst:218 msgid "Remove the first occurrence of *x* from the array." msgstr "" -#: library/array.rst:220 +#: library/array.rst:223 msgid "Remove all elements from the array." msgstr "" -#: library/array.rst:227 +#: library/array.rst:230 msgid "Reverse the order of the items in the array." msgstr "" -#: library/array.rst:232 +#: library/array.rst:235 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 "" -#: library/array.rst:236 +#: library/array.rst:239 msgid ":meth:`!tostring` is renamed to :meth:`tobytes` for clarity." msgstr "" -#: library/array.rst:242 +#: library/array.rst:245 msgid "Write all items (as machine values) to the :term:`file object` *f*." msgstr "" -#: library/array.rst:247 +#: library/array.rst:250 msgid "Convert the array to an ordinary list with the same items." msgstr "" -#: library/array.rst:252 +#: library/array.rst:255 msgid "" "Convert the array to a Unicode string. The array must have a type ``'u'`` " "or ``'w'``; otherwise a :exc:`ValueError` is raised. Use ``array.tobytes()." "decode(enc)`` to obtain a Unicode string from an array of some other type." msgstr "" -#: library/array.rst:257 +#: library/array.rst:260 msgid "" "The string representation of array objects has the form ``array(typecode, " "initializer)``. The *initializer* is omitted if the array is empty, " @@ -425,7 +429,7 @@ msgid "" "Examples::" msgstr "" -#: library/array.rst:269 +#: library/array.rst:272 msgid "" "array('l')\n" "array('w', 'hello \\u2641')\n" @@ -433,19 +437,19 @@ msgid "" "array('d', [1.0, 2.0, 3.14, -inf, nan])" msgstr "" -#: library/array.rst:277 +#: library/array.rst:280 msgid "Module :mod:`struct`" msgstr "" -#: library/array.rst:278 +#: library/array.rst:281 msgid "Packing and unpacking of heterogeneous binary data." msgstr "" -#: library/array.rst:280 +#: library/array.rst:283 msgid "`NumPy `_" msgstr "" -#: library/array.rst:281 +#: library/array.rst:284 msgid "The NumPy package defines another array type." msgstr "" diff --git a/library/ast.po b/library/ast.po index 4726251a..d95f6aee 100644 --- a/library/ast.po +++ b/library/ast.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -534,7 +534,7 @@ msgid "" "function call)." msgstr "" -#: library/ast.rst:290 +#: library/ast.rst:372 msgid "``conversion`` is an integer:" msgstr "" @@ -543,15 +543,15 @@ msgid "-1: no formatting" msgstr "" #: library/ast.rst:293 -msgid "115: ``!s`` string formatting" +msgid "97 (``ord('a')``): ``!a`` :func:`ASCII ` formatting" msgstr "" #: library/ast.rst:294 -msgid "114: ``!r`` repr formatting" +msgid "114 (``ord('r')``): ``!r`` :func:`repr` formatting" msgstr "" #: library/ast.rst:295 -msgid "97: ``!a`` ascii formatting" +msgid "115 (``ord('s')``): ``!s`` :func:`string ` formatting" msgstr "" #: library/ast.rst:297 @@ -590,14 +590,93 @@ msgid "" " Constant(value='.3')]))]))" msgstr "" -#: library/ast.rst:332 +#: library/ast.rst:333 +msgid "" +"Node representing a template string literal, comprising a series of :class:" +"`Interpolation` and :class:`Constant` nodes. These nodes may be any order, " +"and do not need to be interleaved." +msgstr "" + +#: library/ast.rst:337 +msgid "" +">>> expr = ast.parse('t\"{name} finished {place:ordinal}\"', mode='eval')\n" +">>> print(ast.dump(expr, indent=4))\n" +"Expression(\n" +" body=TemplateStr(\n" +" values=[\n" +" Interpolation(\n" +" value=Name(id='name', ctx=Load()),\n" +" str='name',\n" +" conversion=-1),\n" +" Constant(value=' finished '),\n" +" Interpolation(\n" +" value=Name(id='place', ctx=Load()),\n" +" str='place',\n" +" conversion=-1,\n" +" format_spec=JoinedStr(\n" +" values=[\n" +" Constant(value='ordinal')]))]))" +msgstr "" + +#: library/ast.rst:361 +msgid "" +"Node representing a single interpolation field in a template string literal." +msgstr "" + +#: library/ast.rst:363 +msgid "" +"``value`` is any expression node (such as a literal, a variable, or a " +"function call). This has the same meaning as ``FormattedValue.value``." +msgstr "" + +#: library/ast.rst:366 +msgid "" +"``str`` is a constant containing the text of the interpolation expression." +msgstr "" + +#: library/ast.rst:368 +msgid "" +"If ``str`` is set to ``None``, then ``value`` is used to generate code when " +"calling :func:`ast.unparse`. This no longer guarantees that the generated " +"code is identical to the original and is intended for code generation." +msgstr "" + +#: library/ast.rst:374 +msgid "-1: no conversion" +msgstr "" + +#: library/ast.rst:375 +msgid "97 (``ord('a')``): ``!a`` :func:`ASCII ` conversion" +msgstr "" + +#: library/ast.rst:376 +msgid "114 (``ord('r')``): ``!r`` :func:`repr` conversion" +msgstr "" + +#: library/ast.rst:377 +msgid "115 (``ord('s')``): ``!s`` :func:`string ` conversion" +msgstr "" + +#: library/ast.rst:379 +msgid "This has the same meaning as ``FormattedValue.conversion``." +msgstr "" + +#: library/ast.rst:380 +msgid "" +"``format_spec`` is a :class:`JoinedStr` node representing the formatting of " +"the value, or ``None`` if no format was specified. Both ``conversion`` and " +"``format_spec`` can be set at the same time. This has the same meaning as " +"``FormattedValue.format_spec``." +msgstr "" + +#: library/ast.rst:389 msgid "" "A list or tuple. ``elts`` holds a list of nodes representing the elements. " "``ctx`` is :class:`Store` if the container is an assignment target (i.e. " "``(x,y)=something``), and :class:`Load` otherwise." msgstr "" -#: library/ast.rst:336 +#: library/ast.rst:393 msgid "" ">>> print(ast.dump(ast.parse('[1, 2, 3]', mode='eval'), indent=4))\n" "Expression(\n" @@ -617,11 +696,11 @@ msgid "" " ctx=Load()))" msgstr "" -#: library/ast.rst:358 +#: library/ast.rst:415 msgid "A set. ``elts`` holds a list of nodes representing the set's elements." msgstr "" -#: library/ast.rst:360 +#: library/ast.rst:417 msgid "" ">>> print(ast.dump(ast.parse('{1, 2, 3}', mode='eval'), indent=4))\n" "Expression(\n" @@ -632,21 +711,21 @@ msgid "" " Constant(value=3)]))" msgstr "" -#: library/ast.rst:373 +#: library/ast.rst:430 msgid "" "A dictionary. ``keys`` and ``values`` hold lists of nodes representing the " "keys and the values respectively, in matching order (what would be returned " "when calling :code:`dictionary.keys()` and :code:`dictionary.values()`)." msgstr "" -#: library/ast.rst:377 +#: library/ast.rst:434 msgid "" "When doing dictionary unpacking using dictionary literals the expression to " "be expanded goes in the ``values`` list, with a ``None`` at the " "corresponding position in ``keys``." msgstr "" -#: library/ast.rst:381 +#: library/ast.rst:438 msgid "" ">>> print(ast.dump(ast.parse('{\"a\":1, **d}', mode='eval'), indent=4))\n" "Expression(\n" @@ -659,24 +738,24 @@ msgid "" " Name(id='d', ctx=Load())]))" msgstr "" -#: library/ast.rst:395 +#: library/ast.rst:452 msgid "Variables" msgstr "" -#: library/ast.rst:399 +#: library/ast.rst:456 msgid "" "A variable name. ``id`` holds the name as a string, and ``ctx`` is one of " "the following types." msgstr "" -#: library/ast.rst:407 +#: library/ast.rst:464 msgid "" "Variable references can be used to load the value of a variable, to assign a " "new value to it, or to delete it. Variable references are given a context to " "distinguish these cases." msgstr "" -#: library/ast.rst:411 +#: library/ast.rst:468 msgid "" ">>> print(ast.dump(ast.parse('a'), indent=4))\n" "Module(\n" @@ -700,14 +779,14 @@ msgid "" " Name(id='a', ctx=Del())])])" msgstr "" -#: library/ast.rst:437 +#: library/ast.rst:494 msgid "" "A ``*var`` variable reference. ``value`` holds the variable, typically a :" "class:`Name` node. This type must be used when building a :class:`Call` node " "with ``*args``." msgstr "" -#: library/ast.rst:441 +#: library/ast.rst:498 msgid "" ">>> print(ast.dump(ast.parse('a, *b = it'), indent=4))\n" "Module(\n" @@ -724,11 +803,11 @@ msgid "" " value=Name(id='it', ctx=Load()))])" msgstr "" -#: library/ast.rst:461 +#: library/ast.rst:518 msgid "Expressions" msgstr "" -#: library/ast.rst:465 +#: library/ast.rst:522 msgid "" "When an expression, such as a function call, appears as a statement by " "itself with its return value not used or stored, it is wrapped in this " @@ -737,7 +816,7 @@ msgid "" "`YieldFrom` node." msgstr "" -#: library/ast.rst:470 +#: library/ast.rst:527 msgid "" ">>> print(ast.dump(ast.parse('-a'), indent=4))\n" "Module(\n" @@ -748,19 +827,19 @@ msgid "" " operand=Name(id='a', ctx=Load())))])" msgstr "" -#: library/ast.rst:483 +#: library/ast.rst:540 msgid "" "A unary operation. ``op`` is the operator, and ``operand`` any expression " "node." msgstr "" -#: library/ast.rst:492 +#: library/ast.rst:549 msgid "" "Unary operator tokens. :class:`Not` is the ``not`` keyword, :class:`Invert` " "is the ``~`` operator." msgstr "" -#: library/ast.rst:495 +#: library/ast.rst:552 msgid "" ">>> print(ast.dump(ast.parse('not x', mode='eval'), indent=4))\n" "Expression(\n" @@ -769,13 +848,13 @@ msgid "" " operand=Name(id='x', ctx=Load())))" msgstr "" -#: library/ast.rst:506 +#: library/ast.rst:563 msgid "" "A binary operation (like addition or division). ``op`` is the operator, and " "``left`` and ``right`` are any expression nodes." msgstr "" -#: library/ast.rst:509 +#: library/ast.rst:566 msgid "" ">>> print(ast.dump(ast.parse('x + y', mode='eval'), indent=4))\n" "Expression(\n" @@ -785,11 +864,11 @@ msgid "" " right=Name(id='y', ctx=Load())))" msgstr "" -#: library/ast.rst:533 +#: library/ast.rst:590 msgid "Binary operator tokens." msgstr "" -#: library/ast.rst:538 +#: library/ast.rst:595 msgid "" "A boolean operation, 'or' or 'and'. ``op`` is :class:`Or` or :class:`And`. " "``values`` are the values involved. Consecutive operations with the same " @@ -797,11 +876,11 @@ msgid "" "values." msgstr "" -#: library/ast.rst:543 +#: library/ast.rst:600 msgid "This doesn't include ``not``, which is a :class:`UnaryOp`." msgstr "" -#: library/ast.rst:545 +#: library/ast.rst:602 msgid "" ">>> print(ast.dump(ast.parse('x or y', mode='eval'), indent=4))\n" "Expression(\n" @@ -812,18 +891,18 @@ msgid "" " Name(id='y', ctx=Load())]))" msgstr "" -#: library/ast.rst:559 +#: library/ast.rst:616 msgid "Boolean operator tokens." msgstr "" -#: library/ast.rst:564 +#: library/ast.rst:621 msgid "" "A comparison of two or more values. ``left`` is the first value in the " "comparison, ``ops`` the list of operators, and ``comparators`` the list of " "values after the first element in the comparison." msgstr "" -#: library/ast.rst:568 +#: library/ast.rst:625 msgid "" ">>> print(ast.dump(ast.parse('1 <= a < 10', mode='eval'), indent=4))\n" "Expression(\n" @@ -837,33 +916,33 @@ msgid "" " Constant(value=10)]))" msgstr "" -#: library/ast.rst:593 +#: library/ast.rst:650 msgid "Comparison operator tokens." msgstr "" -#: library/ast.rst:598 +#: library/ast.rst:655 msgid "" "A function call. ``func`` is the function, which will often be a :class:" "`Name` or :class:`Attribute` object. Of the arguments:" msgstr "" -#: library/ast.rst:601 +#: library/ast.rst:658 msgid "``args`` holds a list of the arguments passed by position." msgstr "" -#: library/ast.rst:602 +#: library/ast.rst:659 msgid "" "``keywords`` holds a list of :class:`.keyword` objects representing " "arguments passed by keyword." msgstr "" -#: library/ast.rst:605 +#: library/ast.rst:662 msgid "" "The ``args`` and ``keywords`` arguments are optional and default to empty " "lists." msgstr "" -#: library/ast.rst:607 +#: library/ast.rst:664 msgid "" ">>> print(ast.dump(ast.parse('func(a, b=c, *d, **e)', mode='eval'), " "indent=4))\n" @@ -883,19 +962,19 @@ msgid "" " value=Name(id='e', ctx=Load()))]))" msgstr "" -#: library/ast.rst:628 +#: library/ast.rst:685 msgid "" "A keyword argument to a function call or class definition. ``arg`` is a raw " "string of the parameter name, ``value`` is a node to pass in." msgstr "" -#: library/ast.rst:634 +#: library/ast.rst:691 msgid "" "An expression such as ``a if b else c``. Each field holds a single node, so " "in the following example, all three are :class:`Name` nodes." msgstr "" -#: library/ast.rst:637 +#: library/ast.rst:694 msgid "" ">>> print(ast.dump(ast.parse('a if b else c', mode='eval'), indent=4))\n" "Expression(\n" @@ -905,7 +984,7 @@ msgid "" " orelse=Name(id='c', ctx=Load())))" msgstr "" -#: library/ast.rst:649 +#: library/ast.rst:706 msgid "" "Attribute access, e.g. ``d.keys``. ``value`` is a node, typically a :class:" "`Name`. ``attr`` is a bare string giving the name of the attribute, and " @@ -913,7 +992,7 @@ msgid "" "the attribute is acted on." msgstr "" -#: library/ast.rst:654 +#: library/ast.rst:711 msgid "" ">>> print(ast.dump(ast.parse('snake.colour', mode='eval'), indent=4))\n" "Expression(\n" @@ -923,7 +1002,7 @@ msgid "" " ctx=Load()))" msgstr "" -#: library/ast.rst:666 +#: library/ast.rst:723 msgid "" "A named expression. This AST node is produced by the assignment expressions " "operator (also known as the walrus operator). As opposed to the :class:" @@ -931,7 +1010,7 @@ msgid "" "case both ``target`` and ``value`` must be single nodes." msgstr "" -#: library/ast.rst:671 +#: library/ast.rst:728 msgid "" ">>> print(ast.dump(ast.parse('(x := 4)', mode='eval'), indent=4))\n" "Expression(\n" @@ -940,11 +1019,11 @@ msgid "" " value=Constant(value=4)))" msgstr "" -#: library/ast.rst:682 +#: library/ast.rst:739 msgid "Subscripting" msgstr "" -#: library/ast.rst:686 +#: library/ast.rst:743 msgid "" "A subscript, such as ``l[1]``. ``value`` is the subscripted object (usually " "sequence or mapping). ``slice`` is an index, slice or key. It can be a :" @@ -952,7 +1031,7 @@ msgid "" "`Store` or :class:`Del` according to the action performed with the subscript." msgstr "" -#: library/ast.rst:692 +#: library/ast.rst:749 msgid "" ">>> print(ast.dump(ast.parse('l[1:2, 3]', mode='eval'), indent=4))\n" "Expression(\n" @@ -968,14 +1047,14 @@ msgid "" " ctx=Load()))" msgstr "" -#: library/ast.rst:710 +#: library/ast.rst:767 msgid "" "Regular slicing (on the form ``lower:upper`` or ``lower:upper:step``). Can " "occur only inside the *slice* field of :class:`Subscript`, either directly " "or as an element of :class:`Tuple`." msgstr "" -#: library/ast.rst:714 +#: library/ast.rst:771 msgid "" ">>> print(ast.dump(ast.parse('l[1:2]', mode='eval'), indent=4))\n" "Expression(\n" @@ -987,22 +1066,22 @@ msgid "" " ctx=Load()))" msgstr "" -#: library/ast.rst:727 +#: library/ast.rst:784 msgid "Comprehensions" msgstr "" -#: library/ast.rst:734 +#: library/ast.rst:791 msgid "" "List and set comprehensions, generator expressions, and dictionary " "comprehensions. ``elt`` (or ``key`` and ``value``) is a single node " "representing the part that will be evaluated for each item." msgstr "" -#: library/ast.rst:738 +#: library/ast.rst:795 msgid "``generators`` is a list of :class:`comprehension` nodes." msgstr "" -#: library/ast.rst:740 +#: library/ast.rst:797 msgid "" ">>> print(ast.dump(\n" "... ast.parse('[x for x in numbers]', mode='eval'),\n" @@ -1046,7 +1125,7 @@ msgid "" " is_async=0)]))" msgstr "" -#: library/ast.rst:786 +#: library/ast.rst:843 msgid "" "One ``for`` clause in a comprehension. ``target`` is the reference to use " "for each element - typically a :class:`Name` or :class:`Tuple` node. " @@ -1054,13 +1133,13 @@ msgid "" "expressions: each ``for`` clause can have multiple ``ifs``." msgstr "" -#: library/ast.rst:791 +#: library/ast.rst:848 msgid "" "``is_async`` indicates a comprehension is asynchronous (using an ``async " "for`` instead of ``for``). The value is an integer (0 or 1)." msgstr "" -#: library/ast.rst:794 +#: library/ast.rst:851 msgid "" ">>> print(ast.dump(ast.parse('[ord(c) for line in file for c in line]', " "mode='eval'),\n" @@ -1121,29 +1200,29 @@ msgid "" " is_async=1)]))" msgstr "" -#: library/ast.rst:856 +#: library/ast.rst:913 msgid "Statements" msgstr "" -#: library/ast.rst:860 +#: library/ast.rst:917 msgid "" "An assignment. ``targets`` is a list of nodes, and ``value`` is a single " "node." msgstr "" -#: library/ast.rst:862 +#: library/ast.rst:919 msgid "" "Multiple nodes in ``targets`` represents assigning the same value to each. " "Unpacking is represented by putting a :class:`Tuple` or :class:`List` within " "``targets``." msgstr "" -#: library/ast.rst:1163 library/ast.rst:1923 +#: library/ast.rst:1220 library/ast.rst:1980 msgid "" "``type_comment`` is an optional string with the type annotation as a comment." msgstr "" -#: library/ast.rst:870 +#: library/ast.rst:927 msgid "" ">>> print(ast.dump(ast.parse('a = b = 1'), indent=4)) # Multiple assignment\n" "Module(\n" @@ -1167,7 +1246,7 @@ msgid "" " value=Name(id='c', ctx=Load()))])" msgstr "" -#: library/ast.rst:896 +#: library/ast.rst:953 msgid "" "An assignment with a type annotation. ``target`` is a single node and can be " "a :class:`Name`, an :class:`Attribute` or a :class:`Subscript`. " @@ -1175,7 +1254,7 @@ msgid "" "`Name` node. ``value`` is a single optional node." msgstr "" -#: library/ast.rst:901 +#: library/ast.rst:958 msgid "" "``simple`` is always either 0 (indicating a \"complex\" target) or 1 " "(indicating a \"simple\" target). A \"simple\" target consists solely of a :" @@ -1184,7 +1263,7 @@ msgid "" "`~object.__annotations__` dictionary of modules and classes." msgstr "" -#: library/ast.rst:907 +#: library/ast.rst:964 msgid "" ">>> print(ast.dump(ast.parse('c: int'), indent=4))\n" "Module(\n" @@ -1228,7 +1307,7 @@ msgid "" " simple=0)])" msgstr "" -#: library/ast.rst:951 +#: library/ast.rst:1008 msgid "" "Augmented assignment, such as ``a += 1``. In the following example, " "``target`` is a :class:`Name` node for ``x`` (with the :class:`Store` " @@ -1236,13 +1315,13 @@ msgid "" "value for 1." msgstr "" -#: library/ast.rst:956 +#: library/ast.rst:1013 msgid "" "The ``target`` attribute cannot be of class :class:`Tuple` or :class:`List`, " "unlike the targets of :class:`Assign`." msgstr "" -#: library/ast.rst:959 +#: library/ast.rst:1016 msgid "" ">>> print(ast.dump(ast.parse('x += 2'), indent=4))\n" "Module(\n" @@ -1253,14 +1332,14 @@ msgid "" " value=Constant(value=2))])" msgstr "" -#: library/ast.rst:972 +#: library/ast.rst:1029 msgid "" "A ``raise`` statement. ``exc`` is the exception object to be raised, " "normally a :class:`Call` or :class:`Name`, or ``None`` for a standalone " "``raise``. ``cause`` is the optional part for ``y`` in ``raise x from y``." msgstr "" -#: library/ast.rst:976 +#: library/ast.rst:1033 msgid "" ">>> print(ast.dump(ast.parse('raise x from y'), indent=4))\n" "Module(\n" @@ -1270,13 +1349,13 @@ msgid "" " cause=Name(id='y', ctx=Load()))])" msgstr "" -#: library/ast.rst:988 +#: library/ast.rst:1045 msgid "" "An assertion. ``test`` holds the condition, such as a :class:`Compare` node. " "``msg`` holds the failure message." msgstr "" -#: library/ast.rst:991 +#: library/ast.rst:1048 msgid "" ">>> print(ast.dump(ast.parse('assert x,y'), indent=4))\n" "Module(\n" @@ -1286,13 +1365,13 @@ msgid "" " msg=Name(id='y', ctx=Load()))])" msgstr "" -#: library/ast.rst:1003 +#: library/ast.rst:1060 msgid "" "Represents a ``del`` statement. ``targets`` is a list of nodes, such as :" "class:`Name`, :class:`Attribute` or :class:`Subscript` nodes." msgstr "" -#: library/ast.rst:1006 +#: library/ast.rst:1063 msgid "" ">>> print(ast.dump(ast.parse('del x,y,z'), indent=4))\n" "Module(\n" @@ -1304,11 +1383,11 @@ msgid "" " Name(id='z', ctx=Del())])])" msgstr "" -#: library/ast.rst:1020 +#: library/ast.rst:1077 msgid "A ``pass`` statement." msgstr "" -#: library/ast.rst:1022 +#: library/ast.rst:1079 msgid "" ">>> print(ast.dump(ast.parse('pass'), indent=4))\n" "Module(\n" @@ -1316,7 +1395,7 @@ msgid "" " Pass()])" msgstr "" -#: library/ast.rst:1032 +#: library/ast.rst:1089 msgid "" "A :ref:`type alias ` created through the :keyword:`type` " "statement. ``name`` is the name of the alias, ``type_params`` is a list of :" @@ -1324,7 +1403,7 @@ msgid "" "type alias." msgstr "" -#: library/ast.rst:1037 +#: library/ast.rst:1094 msgid "" ">>> print(ast.dump(ast.parse('type Alias = int'), indent=4))\n" "Module(\n" @@ -1334,21 +1413,21 @@ msgid "" " value=Name(id='int', ctx=Load()))])" msgstr "" -#: library/ast.rst:1048 +#: library/ast.rst:1105 msgid "" "Other statements which are only applicable inside functions or loops are " "described in other sections." msgstr "" -#: library/ast.rst:1052 +#: library/ast.rst:1109 msgid "Imports" msgstr "" -#: library/ast.rst:1056 +#: library/ast.rst:1113 msgid "An import statement. ``names`` is a list of :class:`alias` nodes." msgstr "" -#: library/ast.rst:1058 +#: library/ast.rst:1115 msgid "" ">>> print(ast.dump(ast.parse('import x,y,z'), indent=4))\n" "Module(\n" @@ -1360,7 +1439,7 @@ msgid "" " alias(name='z')])])" msgstr "" -#: library/ast.rst:1072 +#: library/ast.rst:1129 msgid "" "Represents ``from x import y``. ``module`` is a raw string of the 'from' " "name, without any leading dots, or ``None`` for statements such as ``from . " @@ -1368,7 +1447,7 @@ msgid "" "import (0 means absolute import)." msgstr "" -#: library/ast.rst:1077 +#: library/ast.rst:1134 msgid "" ">>> print(ast.dump(ast.parse('from y import x,y,z'), indent=4))\n" "Module(\n" @@ -1382,13 +1461,13 @@ msgid "" " level=0)])" msgstr "" -#: library/ast.rst:1093 +#: library/ast.rst:1150 msgid "" "Both parameters are raw strings of the names. ``asname`` can be ``None`` if " "the regular name is to be used." msgstr "" -#: library/ast.rst:1096 +#: library/ast.rst:1153 msgid "" ">>> print(ast.dump(ast.parse('from ..foo.bar import a as b, c'), indent=4))\n" "Module(\n" @@ -1401,30 +1480,30 @@ msgid "" " level=2)])" msgstr "" -#: library/ast.rst:1109 +#: library/ast.rst:1166 msgid "Control flow" msgstr "" -#: library/ast.rst:1112 +#: library/ast.rst:1169 msgid "" "Optional clauses such as ``else`` are stored as an empty list if they're not " "present." msgstr "" -#: library/ast.rst:1117 +#: library/ast.rst:1174 msgid "" "An ``if`` statement. ``test`` holds a single node, such as a :class:" "`Compare` node. ``body`` and ``orelse`` each hold a list of nodes." msgstr "" -#: library/ast.rst:1120 +#: library/ast.rst:1177 msgid "" "``elif`` clauses don't have a special representation in the AST, but rather " "appear as extra :class:`If` nodes within the ``orelse`` section of the " "previous one." msgstr "" -#: library/ast.rst:1124 +#: library/ast.rst:1181 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... if x:\n" @@ -1452,7 +1531,7 @@ msgid "" " value=Constant(value=Ellipsis))])])])" msgstr "" -#: library/ast.rst:1154 +#: library/ast.rst:1211 msgid "" "A ``for`` loop. ``target`` holds the variable(s) the loop assigns to, as a " "single :class:`Name`, :class:`Tuple`, :class:`List`, :class:`Attribute` or :" @@ -1462,7 +1541,7 @@ msgid "" "via a ``break`` statement." msgstr "" -#: library/ast.rst:1165 +#: library/ast.rst:1222 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... for x in y:\n" @@ -1483,13 +1562,13 @@ msgid "" " value=Constant(value=Ellipsis))])])" msgstr "" -#: library/ast.rst:1188 +#: library/ast.rst:1245 msgid "" "A ``while`` loop. ``test`` holds the condition, such as a :class:`Compare` " "node." msgstr "" -#: library/ast.rst:1191 +#: library/ast.rst:1248 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... while x:\n" @@ -1509,11 +1588,11 @@ msgid "" " value=Constant(value=Ellipsis))])])" msgstr "" -#: library/ast.rst:1214 +#: library/ast.rst:1271 msgid "The ``break`` and ``continue`` statements." msgstr "" -#: library/ast.rst:1216 +#: library/ast.rst:1273 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\\\n" "... for a in b:\n" @@ -1542,13 +1621,13 @@ msgid "" " Continue()])])])" msgstr "" -#: library/ast.rst:1247 +#: library/ast.rst:1304 msgid "" "``try`` blocks. All attributes are list of nodes to execute, except for " "``handlers``, which is a list of :class:`ExceptHandler` nodes." msgstr "" -#: library/ast.rst:1250 +#: library/ast.rst:1307 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... try:\n" @@ -1588,14 +1667,14 @@ msgid "" " value=Constant(value=Ellipsis))])])" msgstr "" -#: library/ast.rst:1292 +#: library/ast.rst:1349 msgid "" "``try`` blocks which are followed by ``except*`` clauses. The attributes are " "the same as for :class:`Try` but the :class:`ExceptHandler` nodes in " "``handlers`` are interpreted as ``except*`` blocks rather then ``except``." msgstr "" -#: library/ast.rst:1296 +#: library/ast.rst:1353 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... try:\n" @@ -1617,7 +1696,7 @@ msgid "" " value=Constant(value=Ellipsis))])])])" msgstr "" -#: library/ast.rst:1321 +#: library/ast.rst:1378 msgid "" "A single ``except`` clause. ``type`` is the exception type it will match, " "typically a :class:`Name` node (or ``None`` for a catch-all ``except:`` " @@ -1625,7 +1704,7 @@ msgid "" "``None`` if the clause doesn't have ``as foo``. ``body`` is a list of nodes." msgstr "" -#: library/ast.rst:1326 +#: library/ast.rst:1383 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\\\n" "... try:\n" @@ -1649,14 +1728,14 @@ msgid "" " Pass()])])])" msgstr "" -#: library/ast.rst:1352 +#: library/ast.rst:1409 msgid "" "A ``with`` block. ``items`` is a list of :class:`withitem` nodes " "representing the context managers, and ``body`` is the indented block inside " "the context." msgstr "" -#: library/ast.rst:1362 +#: library/ast.rst:1419 msgid "" "A single context manager in a ``with`` block. ``context_expr`` is the " "context manager, often a :class:`Call` node. ``optional_vars`` is a :class:" @@ -1664,7 +1743,7 @@ msgid "" "if that isn't used." msgstr "" -#: library/ast.rst:1367 +#: library/ast.rst:1424 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\\\n" "... with a as b, c as d:\n" @@ -1689,18 +1768,18 @@ msgid "" " Name(id='d', ctx=Load())]))])])" msgstr "" -#: library/ast.rst:1393 +#: library/ast.rst:1450 msgid "Pattern matching" msgstr "" -#: library/ast.rst:1398 +#: library/ast.rst:1455 msgid "" "A ``match`` statement. ``subject`` holds the subject of the match (the " "object that is being matched against the cases) and ``cases`` contains an " "iterable of :class:`match_case` nodes with the different cases." msgstr "" -#: library/ast.rst:1406 +#: library/ast.rst:1463 msgid "" "A single case pattern in a ``match`` statement. ``pattern`` contains the " "match pattern that the subject will be matched against. Note that the :class:" @@ -1708,19 +1787,19 @@ msgid "" "expressions, even when they share the same syntax." msgstr "" -#: library/ast.rst:1411 +#: library/ast.rst:1468 msgid "" "The ``guard`` attribute contains an expression that will be evaluated if the " "pattern matches the subject." msgstr "" -#: library/ast.rst:1414 +#: library/ast.rst:1471 msgid "" "``body`` contains a list of nodes to execute if the pattern matches and the " "result of evaluating the guard expression is true." msgstr "" -#: library/ast.rst:1417 +#: library/ast.rst:1474 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... match x:\n" @@ -1755,7 +1834,7 @@ msgid "" " value=Constant(value=Ellipsis))])])])" msgstr "" -#: library/ast.rst:1455 +#: library/ast.rst:1512 msgid "" "A match literal or value pattern that compares by equality. ``value`` is an " "expression node. Permitted value nodes are restricted as described in the " @@ -1763,7 +1842,7 @@ msgid "" "equal to the evaluated value." msgstr "" -#: library/ast.rst:1460 +#: library/ast.rst:1517 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... match x:\n" @@ -1783,14 +1862,14 @@ msgid "" " value=Constant(value=Ellipsis))])])])" msgstr "" -#: library/ast.rst:1483 +#: library/ast.rst:1540 msgid "" "A match literal pattern that compares by identity. ``value`` is the " "singleton to be compared against: ``None``, ``True``, or ``False``. This " "pattern succeeds if the match subject is the given constant." msgstr "" -#: library/ast.rst:1487 +#: library/ast.rst:1544 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... match x:\n" @@ -1809,7 +1888,7 @@ msgid "" " value=Constant(value=Ellipsis))])])])" msgstr "" -#: library/ast.rst:1509 +#: library/ast.rst:1566 msgid "" "A match sequence pattern. ``patterns`` contains the patterns to be matched " "against the subject elements if the subject is a sequence. Matches a " @@ -1817,7 +1896,7 @@ msgid "" "otherwise matches a fixed length sequence." msgstr "" -#: library/ast.rst:1514 +#: library/ast.rst:1571 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... match x:\n" @@ -1841,7 +1920,7 @@ msgid "" " value=Constant(value=Ellipsis))])])])" msgstr "" -#: library/ast.rst:1541 +#: library/ast.rst:1598 msgid "" "Matches the rest of the sequence in a variable length match sequence " "pattern. If ``name`` is not ``None``, a list containing the remaining " @@ -1849,7 +1928,7 @@ msgid "" "successful." msgstr "" -#: library/ast.rst:1545 +#: library/ast.rst:1602 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... match x:\n" @@ -1883,7 +1962,7 @@ msgid "" " value=Constant(value=Ellipsis))])])])" msgstr "" -#: library/ast.rst:1582 +#: library/ast.rst:1639 msgid "" "A match mapping pattern. ``keys`` is a sequence of expression nodes. " "``patterns`` is a corresponding sequence of pattern nodes. ``rest`` is an " @@ -1892,7 +1971,7 @@ msgid "" "statement documentation." msgstr "" -#: library/ast.rst:1588 +#: library/ast.rst:1645 msgid "" "This pattern succeeds if the subject is a mapping, all evaluated key " "expressions are present in the mapping, and the value corresponding to each " @@ -1901,7 +1980,7 @@ msgid "" "overall mapping pattern is successful." msgstr "" -#: library/ast.rst:1594 +#: library/ast.rst:1651 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... match x:\n" @@ -1933,7 +2012,7 @@ msgid "" " value=Constant(value=Ellipsis))])])])" msgstr "" -#: library/ast.rst:1629 +#: library/ast.rst:1686 msgid "" "A match class pattern. ``cls`` is an expression giving the nominal class to " "be matched. ``patterns`` is a sequence of pattern nodes to be matched " @@ -1944,21 +2023,21 @@ msgid "" "pattern)." msgstr "" -#: library/ast.rst:1636 +#: library/ast.rst:1693 msgid "" "This pattern succeeds if the subject is an instance of the nominated class, " "all positional patterns match the corresponding class-defined attributes, " "and any specified keyword attributes match their corresponding pattern." msgstr "" -#: library/ast.rst:1640 +#: library/ast.rst:1697 msgid "" "Note: classes may define a property that returns self in order to match a " "pattern node against the instance being matched. Several builtin types are " "also matched that way, as described in the match statement documentation." msgstr "" -#: library/ast.rst:1644 +#: library/ast.rst:1701 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... match x:\n" @@ -2002,7 +2081,7 @@ msgid "" " value=Constant(value=Ellipsis))])])])" msgstr "" -#: library/ast.rst:1691 +#: library/ast.rst:1748 msgid "" "A match \"as-pattern\", capture pattern or wildcard pattern. ``pattern`` " "contains the match pattern that the subject will be matched against. If the " @@ -2010,14 +2089,14 @@ msgid "" "and will always succeed." msgstr "" -#: library/ast.rst:1696 +#: library/ast.rst:1753 msgid "" "The ``name`` attribute contains the name that will be bound if the pattern " "is successful. If ``name`` is ``None``, ``pattern`` must also be ``None`` " "and the node represents the wildcard pattern." msgstr "" -#: library/ast.rst:1700 +#: library/ast.rst:1757 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... match x:\n" @@ -2047,7 +2126,7 @@ msgid "" " value=Constant(value=Ellipsis))])])])" msgstr "" -#: library/ast.rst:1733 +#: library/ast.rst:1790 msgid "" "A match \"or-pattern\". An or-pattern matches each of its subpatterns in " "turn to the subject, until one succeeds. The or-pattern is then deemed to " @@ -2056,7 +2135,7 @@ msgid "" "matched against the subject." msgstr "" -#: library/ast.rst:1739 +#: library/ast.rst:1796 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\n" "... match x:\n" @@ -2080,17 +2159,17 @@ msgid "" " value=Constant(value=Ellipsis))])])])" msgstr "" -#: library/ast.rst:1766 +#: library/ast.rst:1823 msgid "Type annotations" msgstr "" -#: library/ast.rst:1770 +#: library/ast.rst:1827 msgid "" "A ``# type: ignore`` comment located at *lineno*. *tag* is the optional tag " "specified by the form ``# type: ignore ``." msgstr "" -#: library/ast.rst:1773 +#: library/ast.rst:1830 msgid "" ">>> print(ast.dump(ast.parse('x = 1 # type: ignore', type_comments=True), " "indent=4))\n" @@ -2115,24 +2194,24 @@ msgid "" " TypeIgnore(lineno=1, tag='[assignment]')])" msgstr "" -#: library/ast.rst:1796 +#: library/ast.rst:1853 msgid "" ":class:`!TypeIgnore` nodes are not generated when the *type_comments* " "parameter is set to ``False`` (default). See :func:`ast.parse` for more " "details." msgstr "" -#: library/ast.rst:1804 +#: library/ast.rst:1861 msgid "Type parameters" msgstr "" -#: library/ast.rst:1806 +#: library/ast.rst:1863 msgid "" ":ref:`Type parameters ` can exist on classes, functions, and " "type aliases." msgstr "" -#: library/ast.rst:1811 +#: library/ast.rst:1868 msgid "" "A :class:`typing.TypeVar`. ``name`` is the name of the type variable. " "``bound`` is the bound or constraints, if any. If ``bound`` is a :class:" @@ -2141,7 +2220,7 @@ msgid "" "default, this attribute will be set to ``None``." msgstr "" -#: library/ast.rst:1817 +#: library/ast.rst:1874 msgid "" ">>> print(ast.dump(ast.parse(\"type Alias[T: int = bool] = list[T]\"), " "indent=4))\n" @@ -2160,18 +2239,18 @@ msgid "" " ctx=Load()))])" msgstr "" -#: library/ast.rst:1871 library/ast.rst:1903 +#: library/ast.rst:1928 library/ast.rst:1960 msgid "Added the *default_value* parameter." msgstr "" -#: library/ast.rst:1841 +#: library/ast.rst:1898 msgid "" "A :class:`typing.ParamSpec`. ``name`` is the name of the parameter " "specification. ``default_value`` is the default value; if the :class:`!" "ParamSpec` has no default, this attribute will be set to ``None``." msgstr "" -#: library/ast.rst:1845 +#: library/ast.rst:1902 msgid "" ">>> print(ast.dump(ast.parse(\"type Alias[**P = [int, str]] = Callable[P, " "int]\"), indent=4))\n" @@ -2197,14 +2276,14 @@ msgid "" " ctx=Load()))])" msgstr "" -#: library/ast.rst:1876 +#: library/ast.rst:1933 msgid "" "A :class:`typing.TypeVarTuple`. ``name`` is the name of the type variable " "tuple. ``default_value`` is the default value; if the :class:`!TypeVarTuple` " "has no default, this attribute will be set to ``None``." msgstr "" -#: library/ast.rst:1880 +#: library/ast.rst:1937 msgid "" ">>> print(ast.dump(ast.parse(\"type Alias[*Ts = ()] = tuple[*Ts]\"), " "indent=4))\n" @@ -2227,51 +2306,51 @@ msgid "" " ctx=Load()))])" msgstr "" -#: library/ast.rst:1907 +#: library/ast.rst:1964 msgid "Function and class definitions" msgstr "" -#: library/ast.rst:1911 +#: library/ast.rst:1968 msgid "A function definition." msgstr "" -#: library/ast.rst:1913 +#: library/ast.rst:1970 msgid "``name`` is a raw string of the function name." msgstr "" -#: library/ast.rst:1914 +#: library/ast.rst:1971 msgid "``args`` is an :class:`arguments` node." msgstr "" -#: library/ast.rst:1915 +#: library/ast.rst:1972 msgid "``body`` is the list of nodes inside the function." msgstr "" -#: library/ast.rst:1916 +#: library/ast.rst:1973 msgid "" "``decorator_list`` is the list of decorators to be applied, stored outermost " "first (i.e. the first in the list will be applied last)." msgstr "" -#: library/ast.rst:1918 +#: library/ast.rst:1975 msgid "``returns`` is the return annotation." msgstr "" -#: library/ast.rst:2082 +#: library/ast.rst:2139 msgid "``type_params`` is a list of :ref:`type parameters `." msgstr "" -#: library/ast.rst:2109 library/ast.rst:2120 +#: library/ast.rst:2166 library/ast.rst:2177 msgid "Added ``type_params``." msgstr "" -#: library/ast.rst:1931 +#: library/ast.rst:1988 msgid "" "``lambda`` is a minimal function definition that can be used inside an " "expression. Unlike :class:`FunctionDef`, ``body`` holds a single node." msgstr "" -#: library/ast.rst:1934 +#: library/ast.rst:1991 msgid "" ">>> print(ast.dump(ast.parse('lambda x,y: ...'), indent=4))\n" "Module(\n" @@ -2285,46 +2364,46 @@ msgid "" " body=Constant(value=Ellipsis)))])" msgstr "" -#: library/ast.rst:1950 +#: library/ast.rst:2007 msgid "The arguments for a function." msgstr "" -#: library/ast.rst:1952 +#: library/ast.rst:2009 msgid "" "``posonlyargs``, ``args`` and ``kwonlyargs`` are lists of :class:`arg` nodes." msgstr "" -#: library/ast.rst:1953 +#: library/ast.rst:2010 msgid "" "``vararg`` and ``kwarg`` are single :class:`arg` nodes, referring to the " "``*args, **kwargs`` parameters." msgstr "" -#: library/ast.rst:1955 +#: library/ast.rst:2012 msgid "" "``kw_defaults`` is a list of default values for keyword-only arguments. If " "one is ``None``, the corresponding argument is required." msgstr "" -#: library/ast.rst:1957 +#: library/ast.rst:2014 msgid "" "``defaults`` is a list of default values for arguments that can be passed " "positionally. If there are fewer defaults, they correspond to the last n " "arguments." msgstr "" -#: library/ast.rst:1964 +#: library/ast.rst:2021 msgid "" "A single argument in a list. ``arg`` is a raw string of the argument name; " "``annotation`` is its annotation, such as a :class:`Name` node." msgstr "" -#: library/ast.rst:1969 +#: library/ast.rst:2026 msgid "" "``type_comment`` is an optional string with the type annotation as a comment" msgstr "" -#: library/ast.rst:1971 +#: library/ast.rst:2028 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\\\n" "... @decorator1\n" @@ -2363,11 +2442,11 @@ msgid "" " returns=Constant(value='return annotation'))])" msgstr "" -#: library/ast.rst:2011 +#: library/ast.rst:2068 msgid "A ``return`` statement." msgstr "" -#: library/ast.rst:2013 +#: library/ast.rst:2070 msgid "" ">>> print(ast.dump(ast.parse('return 4'), indent=4))\n" "Module(\n" @@ -2376,14 +2455,14 @@ msgid "" " value=Constant(value=4))])" msgstr "" -#: library/ast.rst:2025 +#: library/ast.rst:2082 msgid "" "A ``yield`` or ``yield from`` expression. Because these are expressions, " "they must be wrapped in an :class:`Expr` node if the value sent back is not " "used." msgstr "" -#: library/ast.rst:2028 +#: library/ast.rst:2085 msgid "" ">>> print(ast.dump(ast.parse('yield x'), indent=4))\n" "Module(\n" @@ -2400,12 +2479,12 @@ msgid "" " value=Name(id='x', ctx=Load())))])" msgstr "" -#: library/ast.rst:2048 +#: library/ast.rst:2105 msgid "" "``global`` and ``nonlocal`` statements. ``names`` is a list of raw strings." msgstr "" -#: library/ast.rst:2050 +#: library/ast.rst:2107 msgid "" ">>> print(ast.dump(ast.parse('global x,y,z'), indent=4))\n" "Module(\n" @@ -2426,36 +2505,36 @@ msgid "" " 'z'])])" msgstr "" -#: library/ast.rst:2073 +#: library/ast.rst:2130 msgid "A class definition." msgstr "" -#: library/ast.rst:2075 +#: library/ast.rst:2132 msgid "``name`` is a raw string for the class name" msgstr "" -#: library/ast.rst:2076 +#: library/ast.rst:2133 msgid "``bases`` is a list of nodes for explicitly specified base classes." msgstr "" -#: library/ast.rst:2077 +#: library/ast.rst:2134 msgid "" "``keywords`` is a list of :class:`.keyword` nodes, principally for " "'metaclass'. Other keywords will be passed to the metaclass, as per :pep:" "`3115`." msgstr "" -#: library/ast.rst:2079 +#: library/ast.rst:2136 msgid "" "``body`` is a list of nodes representing the code within the class " "definition." msgstr "" -#: library/ast.rst:2081 +#: library/ast.rst:2138 msgid "``decorator_list`` is a list of nodes, as in :class:`FunctionDef`." msgstr "" -#: library/ast.rst:2084 +#: library/ast.rst:2141 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\\\n" "... @decorator1\n" @@ -2481,23 +2560,23 @@ msgid "" " Name(id='decorator2', ctx=Load())])])" msgstr "" -#: library/ast.rst:2113 +#: library/ast.rst:2170 msgid "Async and await" msgstr "" -#: library/ast.rst:2117 +#: library/ast.rst:2174 msgid "" "An ``async def`` function definition. Has the same fields as :class:" "`FunctionDef`." msgstr "" -#: library/ast.rst:2126 +#: library/ast.rst:2183 msgid "" "An ``await`` expression. ``value`` is what it waits for. Only valid in the " "body of an :class:`AsyncFunctionDef`." msgstr "" -#: library/ast.rst:2129 +#: library/ast.rst:2186 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\\\n" "... async def f():\n" @@ -2515,14 +2594,14 @@ msgid "" " func=Name(id='other_func', ctx=Load()))))])])" msgstr "" -#: library/ast.rst:2150 +#: library/ast.rst:2207 msgid "" "``async for`` loops and ``async with`` context managers. They have the same " "fields as :class:`For` and :class:`With`, respectively. Only valid in the " "body of an :class:`AsyncFunctionDef`." msgstr "" -#: library/ast.rst:2155 +#: library/ast.rst:2212 msgid "" "When a string is parsed by :func:`ast.parse`, operator nodes (subclasses of :" "class:`ast.operator`, :class:`ast.unaryop`, :class:`ast.cmpop`, :class:`ast." @@ -2531,17 +2610,17 @@ msgid "" "same value (for example, :class:`ast.Add`)." msgstr "" -#: library/ast.rst:2163 +#: library/ast.rst:2220 msgid ":mod:`ast` helpers" msgstr "" -#: library/ast.rst:2165 +#: library/ast.rst:2222 msgid "" "Apart from the node classes, the :mod:`ast` module defines these utility " "functions and classes for traversing abstract syntax trees:" msgstr "" -#: library/ast.rst:2170 +#: library/ast.rst:2227 msgid "" "Parse the source into an AST node. Equivalent to ``compile(source, " "filename, mode, flags=FLAGS_VALUE, optimize=optimize)``, where " @@ -2549,7 +2628,7 @@ msgid "" "PyCF_OPTIMIZED_AST`` otherwise." msgstr "" -#: library/ast.rst:2175 +#: library/ast.rst:2232 msgid "" "If ``type_comments=True`` is given, the parser is modified to check and " "return type comments as specified by :pep:`484` and :pep:`526`. This is " @@ -2562,14 +2641,14 @@ msgid "" "empty list)." msgstr "" -#: library/ast.rst:2185 +#: library/ast.rst:2242 msgid "" "In addition, if ``mode`` is ``'func_type'``, the input syntax is modified to " "correspond to :pep:`484` \"signature type comments\", e.g. ``(str, int) -> " "List[str]``." msgstr "" -#: library/ast.rst:2189 +#: library/ast.rst:2246 msgid "" "Setting ``feature_version`` to a tuple ``(major, minor)`` will result in a " "\"best-effort\" attempt to parse using that Python version's grammar. For " @@ -2582,12 +2661,12 @@ msgid "" "``feature_version``." msgstr "" -#: library/ast.rst:2199 +#: library/ast.rst:2256 msgid "" "If source contains a null character (``\\0``), :exc:`ValueError` is raised." msgstr "" -#: library/ast.rst:2202 +#: library/ast.rst:2259 msgid "" "Note that successfully parsing source code into an AST object doesn't " "guarantee that the source code provided is valid Python code that can be " @@ -2597,49 +2676,49 @@ msgid "" "inside a function node)." msgstr "" -#: library/ast.rst:2209 +#: library/ast.rst:2266 msgid "" "In particular, :func:`ast.parse` won't do any scoping checks, which the " "compilation step does." msgstr "" -#: library/ast.rst:2213 +#: library/ast.rst:2270 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 "" -#: library/ast.rst:2217 +#: library/ast.rst:2274 msgid "Added ``type_comments``, ``mode='func_type'`` and ``feature_version``." msgstr "" -#: library/ast.rst:2220 +#: library/ast.rst:2277 msgid "" "The minimum supported version for ``feature_version`` is now ``(3, 7)``. The " "``optimize`` argument was added." msgstr "" -#: library/ast.rst:2227 +#: library/ast.rst:2284 msgid "" "Unparse an :class:`ast.AST` object and generate a string with code that " "would produce an equivalent :class:`ast.AST` object if parsed back with :" "func:`ast.parse`." msgstr "" -#: library/ast.rst:2232 +#: library/ast.rst:2289 msgid "" "The produced code string will not necessarily be equal to the original code " "that generated the :class:`ast.AST` object (without any compiler " "optimizations, such as constant tuples/frozensets)." msgstr "" -#: library/ast.rst:2237 +#: library/ast.rst:2294 msgid "" "Trying to unparse a highly complex expression would result with :exc:" "`RecursionError`." msgstr "" -#: library/ast.rst:2245 +#: library/ast.rst:2302 msgid "" "Evaluate an expression node or a string containing only a Python literal or " "container display. The string or node provided may only consist of the " @@ -2647,14 +2726,14 @@ msgid "" "dicts, sets, booleans, ``None`` and ``Ellipsis``." msgstr "" -#: library/ast.rst:2250 +#: library/ast.rst:2307 msgid "" "This can be used for evaluating strings containing Python values without the " "need to parse the values oneself. It is not capable of evaluating " "arbitrarily complex expressions, for example involving operators or indexing." msgstr "" -#: library/ast.rst:2255 +#: library/ast.rst:2312 msgid "" "This function had been documented as \"safe\" in the past without defining " "what that meant. That was misleading. This is specifically designed not to " @@ -2666,31 +2745,31 @@ msgid "" "untrusted data is thus not recommended." msgstr "" -#: library/ast.rst:2265 +#: library/ast.rst:2322 msgid "" "It is possible to crash the Python interpreter due to stack depth " "limitations in Python's AST compiler." msgstr "" -#: library/ast.rst:2268 +#: library/ast.rst:2325 msgid "" "It can raise :exc:`ValueError`, :exc:`TypeError`, :exc:`SyntaxError`, :exc:" "`MemoryError` and :exc:`RecursionError` depending on the malformed input." msgstr "" -#: library/ast.rst:2272 +#: library/ast.rst:2329 msgid "Now allows bytes and set literals." msgstr "" -#: library/ast.rst:2275 +#: library/ast.rst:2332 msgid "Now supports creating empty sets with ``'set()'``." msgstr "" -#: library/ast.rst:2278 +#: library/ast.rst:2335 msgid "For string inputs, leading spaces and tabs are now stripped." msgstr "" -#: library/ast.rst:2284 +#: library/ast.rst:2341 msgid "" "Return the docstring of the given *node* (which must be a :class:" "`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, or :class:" @@ -2698,11 +2777,11 @@ msgid "" "clean up the docstring's indentation with :func:`inspect.cleandoc`." msgstr "" -#: library/ast.rst:2290 +#: library/ast.rst:2347 msgid ":class:`AsyncFunctionDef` is now supported." msgstr "" -#: library/ast.rst:2296 +#: library/ast.rst:2353 msgid "" "Get source code segment of the *source* that generated *node*. If some " "location information (:attr:`~ast.AST.lineno`, :attr:`~ast.AST.end_lineno`, :" @@ -2710,13 +2789,13 @@ msgid "" "return ``None``." msgstr "" -#: library/ast.rst:2300 +#: library/ast.rst:2357 msgid "" "If *padded* is ``True``, the first line of a multi-line statement will be " "padded with spaces to match its original position." msgstr "" -#: library/ast.rst:2308 +#: library/ast.rst:2365 msgid "" "When you compile a node tree with :func:`compile`, the compiler expects :" "attr:`~ast.AST.lineno` and :attr:`~ast.AST.col_offset` attributes for every " @@ -2726,81 +2805,81 @@ msgid "" "starting at *node*." msgstr "" -#: library/ast.rst:2317 +#: library/ast.rst:2374 msgid "" "Increment the line number and end 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 "" -#: library/ast.rst:2324 +#: library/ast.rst:2381 msgid "" "Copy source location (:attr:`~ast.AST.lineno`, :attr:`~ast.AST.col_offset`, :" "attr:`~ast.AST.end_lineno`, and :attr:`~ast.AST.end_col_offset`) from " "*old_node* to *new_node* if possible, and return *new_node*." msgstr "" -#: library/ast.rst:2331 +#: library/ast.rst:2388 msgid "" "Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` " "that is present on *node*." msgstr "" -#: library/ast.rst:2337 +#: library/ast.rst:2394 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 "" -#: library/ast.rst:2343 +#: library/ast.rst:2400 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 "" -#: library/ast.rst:2350 +#: library/ast.rst:2407 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 "" -#: library/ast.rst:2354 +#: library/ast.rst:2411 msgid "" "This class is meant to be subclassed, with the subclass adding visitor " "methods." msgstr "" -#: library/ast.rst:2359 +#: library/ast.rst:2416 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 "" -#: library/ast.rst:2365 +#: library/ast.rst:2422 msgid "This visitor calls :meth:`visit` on all children of the node." msgstr "" -#: library/ast.rst:2367 +#: library/ast.rst:2424 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 "" -#: library/ast.rst:2373 +#: library/ast.rst:2430 msgid "Handles all constant nodes." msgstr "" -#: library/ast.rst:2375 +#: library/ast.rst:2432 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 "" -#: library/ast.rst:2381 +#: library/ast.rst:2438 msgid "" "Methods :meth:`!visit_Num`, :meth:`!visit_Str`, :meth:`!visit_Bytes`, :meth:" "`!visit_NameConstant` and :meth:`!visit_Ellipsis` are deprecated now and " @@ -2808,13 +2887,13 @@ msgid "" "`visit_Constant` method to handle all constant nodes." msgstr "" -#: library/ast.rst:2389 +#: library/ast.rst:2446 msgid "" "A :class:`NodeVisitor` subclass that walks the abstract syntax tree and " "allows modification of nodes." msgstr "" -#: library/ast.rst:2392 +#: library/ast.rst:2449 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 " @@ -2823,13 +2902,13 @@ msgid "" "may be the original node in which case no replacement takes place." msgstr "" -#: library/ast.rst:2398 +#: library/ast.rst:2455 msgid "" "Here is an example transformer that rewrites all occurrences of name lookups " "(``foo``) to ``data['foo']``::" msgstr "" -#: library/ast.rst:2401 +#: library/ast.rst:2458 msgid "" "class RewriteName(NodeTransformer):\n" "\n" @@ -2841,21 +2920,21 @@ msgid "" " )" msgstr "" -#: library/ast.rst:2410 +#: library/ast.rst:2467 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:`~ast." "NodeVisitor.generic_visit` method for the node first." msgstr "" -#: library/ast.rst:2414 +#: library/ast.rst:2471 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 "" -#: library/ast.rst:2418 +#: library/ast.rst:2475 msgid "" "If :class:`NodeTransformer` introduces new nodes (that weren't part of " "original tree) without giving them location information (such as :attr:`~ast." @@ -2863,21 +2942,21 @@ msgid "" "sub-tree to recalculate the location information::" msgstr "" -#: library/ast.rst:2423 +#: library/ast.rst:2480 msgid "" "tree = ast.parse('foo', mode='eval')\n" "new_tree = fix_missing_locations(RewriteName().visit(tree))" msgstr "" -#: library/ast.rst:2426 +#: library/ast.rst:2483 msgid "Usually you use the transformer like this::" msgstr "" -#: library/ast.rst:2428 +#: library/ast.rst:2485 msgid "node = YourTransformer().visit(node)" msgstr "" -#: library/ast.rst:2433 +#: library/ast.rst:2490 msgid "" "Return a formatted dump of the tree in *node*. This is mainly useful for " "debugging purposes. If *annotate_fields* is true (by default), the returned " @@ -2888,7 +2967,7 @@ msgid "" "true." msgstr "" -#: library/ast.rst:2441 +#: library/ast.rst:2498 msgid "" "If *indent* is a non-negative integer or string, then the tree will be " "pretty-printed with that indent level. An indent level of 0, negative, or " @@ -2898,21 +2977,21 @@ msgid "" "string is used to indent each level." msgstr "" -#: library/ast.rst:2448 +#: library/ast.rst:2505 msgid "" "If *show_empty* is false (the default), optional empty lists will be omitted " "from the output. Optional ``None`` values are always omitted." msgstr "" -#: library/ast.rst:2452 +#: library/ast.rst:2509 msgid "Added the *indent* option." msgstr "" -#: library/ast.rst:2455 +#: library/ast.rst:2512 msgid "Added the *show_empty* option." msgstr "" -#: library/ast.rst:2458 +#: library/ast.rst:2515 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\\\n" "... async def f():\n" @@ -2940,45 +3019,45 @@ msgid "" " type_ignores=[])" msgstr "" -#: library/ast.rst:2489 +#: library/ast.rst:2546 msgid "Compiler flags" msgstr "" -#: library/ast.rst:2491 +#: library/ast.rst:2548 msgid "" "The following flags may be passed to :func:`compile` in order to change " "effects on the compilation of a program:" msgstr "" -#: library/ast.rst:2496 +#: library/ast.rst:2553 msgid "" "Enables support for top-level ``await``, ``async for``, ``async with`` and " "async comprehensions." msgstr "" -#: library/ast.rst:2503 +#: library/ast.rst:2560 msgid "" "Generates and returns an abstract syntax tree instead of returning a " "compiled code object." msgstr "" -#: library/ast.rst:2508 +#: library/ast.rst:2565 msgid "" "The returned AST is optimized according to the *optimize* argument in :func:" "`compile` or :func:`ast.parse`." msgstr "" -#: library/ast.rst:2515 +#: library/ast.rst:2572 msgid "" "Enables support for :pep:`484` and :pep:`526` style type comments (``# type: " "``, ``# type: ignore ``)." msgstr "" -#: library/ast.rst:2523 +#: library/ast.rst:2580 msgid "Recursively compares two ASTs." msgstr "" -#: library/ast.rst:2525 +#: library/ast.rst:2582 msgid "" "*compare_attributes* affects whether AST attributes are considered in the " "comparison. If *compare_attributes* is ``False`` (default), then attributes " @@ -2987,75 +3066,75 @@ msgid "" "similar details. Attributes include line numbers and column offsets." msgstr "" -#: library/ast.rst:2538 +#: library/ast.rst:2595 msgid "Command-line usage" msgstr "" -#: library/ast.rst:2542 +#: library/ast.rst:2599 msgid "" "The :mod:`ast` module can be executed as a script from the command line. It " "is as simple as:" msgstr "" -#: library/ast.rst:2545 +#: library/ast.rst:2602 msgid "python -m ast [-m ] [-a] [infile]" msgstr "" -#: library/ast.rst:2549 +#: library/ast.rst:2606 msgid "The following options are accepted:" msgstr "" -#: library/ast.rst:2555 +#: library/ast.rst:2612 msgid "Show the help message and exit." msgstr "" -#: library/ast.rst:2560 +#: library/ast.rst:2617 msgid "" "Specify what kind of code must be compiled, like the *mode* argument in :" "func:`parse`." msgstr "" -#: library/ast.rst:2565 +#: library/ast.rst:2622 msgid "Don't parse type comments." msgstr "" -#: library/ast.rst:2569 +#: library/ast.rst:2626 msgid "Include attributes such as line numbers and column offsets." msgstr "" -#: library/ast.rst:2574 +#: library/ast.rst:2631 msgid "Indentation of nodes in AST (number of spaces)." msgstr "" -#: library/ast.rst:2578 +#: library/ast.rst:2635 msgid "" "Python version in the format 3.x (for example, 3.10). Defaults to the " "current version of the interpreter." msgstr "" -#: library/ast.rst:2586 +#: library/ast.rst:2643 msgid "Optimization level for parser. Defaults to no optimization." msgstr "" -#: library/ast.rst:2592 +#: library/ast.rst:2649 msgid "" "Show empty lists and fields that are ``None``. Defaults to not showing empty " "objects." msgstr "" -#: library/ast.rst:2598 +#: library/ast.rst:2655 msgid "" "If :file:`infile` is specified its contents are parsed to AST and dumped to " "stdout. Otherwise, the content is read from stdin." msgstr "" -#: library/ast.rst:2604 +#: library/ast.rst:2661 msgid "" "`Green Tree Snakes `_, an external " "documentation resource, has good details on working with Python ASTs." msgstr "" -#: library/ast.rst:2607 +#: library/ast.rst:2664 msgid "" "`ASTTokens `_ " "annotates Python ASTs with the positions of tokens and text in the source " @@ -3063,21 +3142,21 @@ msgid "" "transformations." msgstr "" -#: library/ast.rst:2612 +#: library/ast.rst:2669 msgid "" "`leoAst.py `_ unifies the token-based and parse-tree-based views of python programs " "by inserting two-way links between tokens and ast nodes." msgstr "" -#: library/ast.rst:2617 +#: library/ast.rst:2674 msgid "" "`LibCST `_ parses code as a Concrete Syntax " "Tree that looks like an ast tree and keeps all formatting details. It's " "useful for building automated refactoring (codemod) applications and linters." msgstr "" -#: library/ast.rst:2622 +#: library/ast.rst:2679 msgid "" "`Parso `_ is a Python parser that supports " "error recovery and round-trip parsing for different Python versions (in " diff --git a/library/asynchat.po b/library/asynchat.po index 69d426c3..39d49af8 100644 --- a/library/asynchat.po +++ b/library/asynchat.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-20 17:00+0300\n" "Last-Translator: ALEXANDROS TZIORAS alextzioras23@gmail.com\n" "Language-Team: Language-Team: PyGreece \n" diff --git a/library/asyncio-api-index.po b/library/asyncio-api-index.po index 4b9cb833..754ea08e 100644 --- a/library/asyncio-api-index.po +++ b/library/asyncio-api-index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po index 52af63a3..6de4b79a 100644 --- a/library/asyncio-dev.po +++ b/library/asyncio-dev.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po index 8a352087..002599b7 100644 --- a/library/asyncio-eventloop.po +++ b/library/asyncio-eventloop.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -259,8 +259,8 @@ msgid "" "used." msgstr "" -#: library/asyncio-eventloop.rst:183 library/asyncio-eventloop.rst:1336 -#: library/asyncio-eventloop.rst:1792 +#: library/asyncio-eventloop.rst:183 library/asyncio-eventloop.rst:1354 +#: library/asyncio-eventloop.rst:1816 msgid "Example::" msgstr "" @@ -364,8 +364,8 @@ msgid "" "section of the documentation." msgstr "" -#: library/asyncio-eventloop.rst:257 library/asyncio-eventloop.rst:307 -#: library/asyncio-eventloop.rst:327 +#: library/asyncio-eventloop.rst:257 library/asyncio-eventloop.rst:313 +#: library/asyncio-eventloop.rst:339 msgid "" "The *context* keyword-only parameter was added. See :pep:`567` for more " "details." @@ -406,7 +406,7 @@ msgid "" "(can be either an int or a float)." msgstr "" -#: library/asyncio-eventloop.rst:292 library/asyncio-eventloop.rst:324 +#: library/asyncio-eventloop.rst:292 library/asyncio-eventloop.rst:330 msgid "" "An instance of :class:`asyncio.TimerHandle` is returned which can be used to " "cancel the callback." @@ -432,94 +432,108 @@ msgid "" "context is used when no *context* is provided." msgstr "" -#: library/asyncio-eventloop.rst:311 +#: library/asyncio-eventloop.rst:309 +msgid "" +"For performance, callbacks scheduled with :meth:`loop.call_later` may run up " +"to one clock-resolution early (see ``time.get_clock_info('monotonic')." +"resolution``)." +msgstr "" + +#: library/asyncio-eventloop.rst:317 msgid "" "In Python 3.7 and earlier with the default event loop implementation, the " "*delay* could not exceed one day. This has been fixed in Python 3.8." msgstr "" -#: library/asyncio-eventloop.rst:318 +#: library/asyncio-eventloop.rst:324 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 "" -#: library/asyncio-eventloop.rst:322 +#: library/asyncio-eventloop.rst:328 msgid "This method's behavior is the same as :meth:`call_later`." msgstr "" -#: library/asyncio-eventloop.rst:331 +#: library/asyncio-eventloop.rst:335 +msgid "" +"For performance, callbacks scheduled with :meth:`loop.call_at` may run up to " +"one clock-resolution early (see ``time.get_clock_info('monotonic')." +"resolution``)." +msgstr "" + +#: library/asyncio-eventloop.rst:343 msgid "" "In Python 3.7 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.8." msgstr "" -#: library/asyncio-eventloop.rst:338 +#: library/asyncio-eventloop.rst:350 msgid "" "Return the current time, as a :class:`float` value, according to the event " "loop's internal monotonic clock." msgstr "" -#: library/asyncio-eventloop.rst:342 +#: library/asyncio-eventloop.rst:354 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 "" -#: library/asyncio-eventloop.rst:348 +#: library/asyncio-eventloop.rst:360 msgid "The :func:`asyncio.sleep` function." msgstr "" -#: library/asyncio-eventloop.rst:352 +#: library/asyncio-eventloop.rst:364 msgid "Creating Futures and Tasks" msgstr "" -#: library/asyncio-eventloop.rst:356 +#: library/asyncio-eventloop.rst:368 msgid "Create an :class:`asyncio.Future` object attached to the event loop." msgstr "" -#: library/asyncio-eventloop.rst:358 +#: library/asyncio-eventloop.rst:370 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 "" -#: library/asyncio-eventloop.rst:366 +#: library/asyncio-eventloop.rst:378 msgid "" "Schedule the execution of :ref:`coroutine ` *coro*. Return a :" "class:`Task` object." msgstr "" -#: library/asyncio-eventloop.rst:369 +#: library/asyncio-eventloop.rst:381 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 "" -#: library/asyncio-eventloop.rst:373 +#: library/asyncio-eventloop.rst:385 msgid "" "The full function signature is largely the same as that of the :class:`Task` " "constructor (or factory) - all of the keyword arguments to this function are " "passed through to that interface." msgstr "" -#: library/asyncio-eventloop.rst:377 +#: library/asyncio-eventloop.rst:389 msgid "" "If the *name* argument is provided and not ``None``, it is set as the name " "of the task using :meth:`Task.set_name`." msgstr "" -#: library/asyncio-eventloop.rst:380 +#: library/asyncio-eventloop.rst:392 msgid "" "An optional keyword-only *context* argument allows specifying a custom :" "class:`contextvars.Context` for the *coro* to run in. The current context " "copy is created when no *context* is provided." msgstr "" -#: library/asyncio-eventloop.rst:384 +#: library/asyncio-eventloop.rst:396 msgid "" "An optional keyword-only *eager_start* argument allows specifying if the " "task should execute eagerly during the call to create_task, or be scheduled " @@ -527,38 +541,38 @@ msgid "" "set_task_factory` will be used." msgstr "" -#: library/asyncio-eventloop.rst:389 +#: library/asyncio-eventloop.rst:401 msgid "Added the *name* parameter." msgstr "" -#: library/asyncio-eventloop.rst:392 +#: library/asyncio-eventloop.rst:404 msgid "Added the *context* parameter." msgstr "" -#: library/asyncio-eventloop.rst:395 +#: library/asyncio-eventloop.rst:407 msgid "" "Added ``kwargs`` which passes on arbitrary extra parameters, including " "``name`` and ``context``." msgstr "" -#: library/asyncio-eventloop.rst:398 +#: library/asyncio-eventloop.rst:410 msgid "" "Rolled back the change that passes on *name* and *context* (if it is None), " "while still passing on other arbitrary keyword arguments (to avoid breaking " "backwards compatibility with 3.13.3)." msgstr "" -#: library/asyncio-eventloop.rst:402 +#: library/asyncio-eventloop.rst:414 msgid "" "All *kwargs* are now passed on. The *eager_start* parameter works with eager " "task factories." msgstr "" -#: library/asyncio-eventloop.rst:407 +#: library/asyncio-eventloop.rst:419 msgid "Set a task factory that will be used by :meth:`loop.create_task`." msgstr "" -#: library/asyncio-eventloop.rst:410 +#: library/asyncio-eventloop.rst:422 msgid "" "If *factory* is ``None`` the default task factory will be set. Otherwise, " "*factory* must be a *callable* with the signature matching ``(loop, coro, " @@ -567,96 +581,96 @@ msgid "" "return a :class:`asyncio.Task`-compatible object." msgstr "" -#: library/asyncio-eventloop.rst:416 +#: library/asyncio-eventloop.rst:428 msgid "Required that all *kwargs* are passed on to :class:`asyncio.Task`." msgstr "" -#: library/asyncio-eventloop.rst:419 +#: library/asyncio-eventloop.rst:431 msgid "" "*name* is no longer passed to task factories. *context* is no longer passed " "to task factories if it is ``None``." msgstr "" -#: library/asyncio-eventloop.rst:423 +#: library/asyncio-eventloop.rst:435 msgid "" "*name* and *context* are now unconditionally passed on to task factories " "again." msgstr "" -#: library/asyncio-eventloop.rst:428 +#: library/asyncio-eventloop.rst:440 msgid "Return a task factory or ``None`` if the default one is in use." msgstr "" -#: library/asyncio-eventloop.rst:432 +#: library/asyncio-eventloop.rst:444 msgid "Opening network connections" msgstr "" -#: library/asyncio-eventloop.rst:444 +#: library/asyncio-eventloop.rst:456 msgid "" "Open a streaming transport connection to a given address specified by *host* " "and *port*." msgstr "" -#: library/asyncio-eventloop.rst:447 +#: library/asyncio-eventloop.rst:459 msgid "" "The socket family can be either :py:const:`~socket.AF_INET` or :py:const:" "`~socket.AF_INET6` depending on *host* (or the *family* argument, if " "provided)." msgstr "" -#: library/asyncio-eventloop.rst:451 +#: library/asyncio-eventloop.rst:463 msgid "The socket type will be :py:const:`~socket.SOCK_STREAM`." msgstr "" -#: library/asyncio-eventloop.rst:453 library/asyncio-eventloop.rst:1246 -#: library/asyncio-eventloop.rst:1263 +#: library/asyncio-eventloop.rst:465 library/asyncio-eventloop.rst:1264 +#: library/asyncio-eventloop.rst:1281 msgid "" "*protocol_factory* must be a callable returning an :ref:`asyncio protocol " "` implementation." msgstr "" -#: library/asyncio-eventloop.rst:456 +#: library/asyncio-eventloop.rst:468 msgid "" "This method will try to establish the connection in the background. When " "successful, it returns a ``(transport, protocol)`` pair." msgstr "" -#: library/asyncio-eventloop.rst:459 +#: library/asyncio-eventloop.rst:471 msgid "The chronological synopsis of the underlying operation is as follows:" msgstr "" -#: library/asyncio-eventloop.rst:461 +#: library/asyncio-eventloop.rst:473 msgid "" "The connection is established and a :ref:`transport ` is " "created for it." msgstr "" -#: library/asyncio-eventloop.rst:464 +#: library/asyncio-eventloop.rst:476 msgid "" "*protocol_factory* is called without arguments and is expected to return a :" "ref:`protocol ` instance." msgstr "" -#: library/asyncio-eventloop.rst:467 +#: library/asyncio-eventloop.rst:479 msgid "" "The protocol instance is coupled with the transport by calling its :meth:" "`~BaseProtocol.connection_made` method." msgstr "" -#: library/asyncio-eventloop.rst:470 +#: library/asyncio-eventloop.rst:482 msgid "A ``(transport, protocol)`` tuple is returned on success." msgstr "" -#: library/asyncio-eventloop.rst:472 +#: library/asyncio-eventloop.rst:484 msgid "" "The created transport is an implementation-dependent bidirectional stream." msgstr "" -#: library/asyncio-eventloop.rst:475 library/asyncio-eventloop.rst:608 +#: library/asyncio-eventloop.rst:487 library/asyncio-eventloop.rst:620 msgid "Other arguments:" msgstr "" -#: library/asyncio-eventloop.rst:477 +#: library/asyncio-eventloop.rst:489 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` " @@ -665,11 +679,11 @@ msgid "" "is used." msgstr "" -#: library/asyncio-eventloop.rst:483 +#: library/asyncio-eventloop.rst:495 msgid ":ref:`SSL/TLS security considerations `" msgstr "" -#: library/asyncio-eventloop.rst:485 +#: library/asyncio-eventloop.rst:497 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 " @@ -680,7 +694,7 @@ msgid "" "potential man-in-the-middle attacks)." msgstr "" -#: library/asyncio-eventloop.rst:493 +#: library/asyncio-eventloop.rst:505 msgid "" "*family*, *proto*, *flags* are the optional address family, protocol and " "flags to be passed through to getaddrinfo() for *host* resolution. If given, " @@ -688,7 +702,7 @@ msgid "" "constants." msgstr "" -#: library/asyncio-eventloop.rst:498 +#: library/asyncio-eventloop.rst:510 msgid "" "*happy_eyeballs_delay*, if given, enables Happy Eyeballs for this " "connection. It should be a floating-point number representing the amount of " @@ -698,7 +712,7 @@ msgid "" "the RFC is ``0.25`` (250 milliseconds)." msgstr "" -#: library/asyncio-eventloop.rst:506 +#: library/asyncio-eventloop.rst:518 msgid "" "*interleave* controls address reordering when a host name resolves to " "multiple IP addresses. If ``0`` or unspecified, no reordering is done, and " @@ -709,7 +723,7 @@ msgid "" "*happy_eyeballs_delay* is not specified, and ``1`` if it is." msgstr "" -#: library/asyncio-eventloop.rst:515 +#: library/asyncio-eventloop.rst:527 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 " @@ -717,37 +731,37 @@ msgid "" "*interleave* and *local_addr* should be specified." msgstr "" -#: library/asyncio-eventloop.rst:523 library/asyncio-eventloop.rst:639 -#: library/asyncio-eventloop.rst:887 +#: library/asyncio-eventloop.rst:535 library/asyncio-eventloop.rst:657 +#: library/asyncio-eventloop.rst:905 msgid "" "The *sock* argument transfers ownership of the socket to the transport " "created. To close the socket, call the transport's :meth:`~asyncio." "BaseTransport.close` method." msgstr "" -#: library/asyncio-eventloop.rst:527 +#: library/asyncio-eventloop.rst:539 msgid "" "*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " "the socket locally. The *local_host* and *local_port* are looked up using " "``getaddrinfo()``, similarly to *host* and *port*." msgstr "" -#: library/asyncio-eventloop.rst:531 library/asyncio-eventloop.rst:983 +#: library/asyncio-eventloop.rst:543 library/asyncio-eventloop.rst:1001 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 "" -#: library/asyncio-eventloop.rst:535 library/asyncio-eventloop.rst:794 -#: library/asyncio-eventloop.rst:898 library/asyncio-eventloop.rst:987 +#: library/asyncio-eventloop.rst:547 library/asyncio-eventloop.rst:812 +#: library/asyncio-eventloop.rst:916 library/asyncio-eventloop.rst:1005 msgid "" "*ssl_shutdown_timeout* is the time in seconds to wait for the SSL shutdown " "to complete before aborting the connection. ``30.0`` seconds if ``None`` " "(default)." msgstr "" -#: library/asyncio-eventloop.rst:539 +#: library/asyncio-eventloop.rst:551 msgid "" "*all_errors* determines what exceptions are raised when a connection cannot " "be created. By default, only a single ``Exception`` is raised: the first " @@ -757,25 +771,25 @@ msgid "" "(even if there is only one)." msgstr "" -#: library/asyncio-eventloop.rst:549 library/asyncio-eventloop.rst:806 +#: library/asyncio-eventloop.rst:561 library/asyncio-eventloop.rst:824 msgid "Added support for SSL/TLS in :class:`ProactorEventLoop`." msgstr "" -#: library/asyncio-eventloop.rst:553 +#: library/asyncio-eventloop.rst:565 msgid "" "The socket option :ref:`socket.TCP_NODELAY ` is set " "by default for all TCP connections." msgstr "" -#: library/asyncio-eventloop.rst:558 library/asyncio-eventloop.rst:908 +#: library/asyncio-eventloop.rst:570 library/asyncio-eventloop.rst:926 msgid "Added the *ssl_handshake_timeout* parameter." msgstr "" -#: library/asyncio-eventloop.rst:562 +#: library/asyncio-eventloop.rst:574 msgid "Added the *happy_eyeballs_delay* and *interleave* parameters." msgstr "" -#: library/asyncio-eventloop.rst:564 +#: library/asyncio-eventloop.rst:576 msgid "" "Happy Eyeballs Algorithm: Success with Dual-Stack Hosts. When a server's " "IPv4 path and protocol are working, but the server's IPv6 path and protocol " @@ -786,68 +800,74 @@ msgid "" "visible delay and provides an algorithm." msgstr "" -#: library/asyncio-eventloop.rst:573 +#: library/asyncio-eventloop.rst:585 msgid "For more information: https://datatracker.ietf.org/doc/html/rfc6555" msgstr "" -#: library/asyncio-eventloop.rst:577 library/asyncio-eventloop.rst:703 -#: library/asyncio-eventloop.rst:820 library/asyncio-eventloop.rst:860 -#: library/asyncio-eventloop.rst:912 library/asyncio-eventloop.rst:995 +#: library/asyncio-eventloop.rst:589 library/asyncio-eventloop.rst:721 +#: library/asyncio-eventloop.rst:838 library/asyncio-eventloop.rst:878 +#: library/asyncio-eventloop.rst:930 library/asyncio-eventloop.rst:1013 msgid "Added the *ssl_shutdown_timeout* parameter." msgstr "" -#: library/asyncio-eventloop.rst:579 +#: library/asyncio-eventloop.rst:591 msgid "*all_errors* was added." msgstr "" -#: library/asyncio-eventloop.rst:584 +#: library/asyncio-eventloop.rst:596 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 "" -#: library/asyncio-eventloop.rst:595 +#: library/asyncio-eventloop.rst:607 msgid "Create a datagram connection." msgstr "" -#: library/asyncio-eventloop.rst:597 +#: library/asyncio-eventloop.rst:609 msgid "" "The socket family can be either :py:const:`~socket.AF_INET`, :py:const:" "`~socket.AF_INET6`, or :py:const:`~socket.AF_UNIX`, depending on *host* (or " "the *family* argument, if provided)." msgstr "" -#: library/asyncio-eventloop.rst:601 +#: library/asyncio-eventloop.rst:613 msgid "The socket type will be :py:const:`~socket.SOCK_DGRAM`." msgstr "" -#: library/asyncio-eventloop.rst:603 library/asyncio-eventloop.rst:730 -#: library/asyncio-eventloop.rst:879 +#: library/asyncio-eventloop.rst:615 library/asyncio-eventloop.rst:748 +#: library/asyncio-eventloop.rst:897 msgid "" "*protocol_factory* must be a callable returning a :ref:`protocol ` implementation." msgstr "" -#: library/asyncio-eventloop.rst:606 library/asyncio-eventloop.rst:685 +#: library/asyncio-eventloop.rst:618 library/asyncio-eventloop.rst:703 msgid "A tuple of ``(transport, protocol)`` is returned on success." msgstr "" -#: library/asyncio-eventloop.rst:610 +#: library/asyncio-eventloop.rst:622 msgid "" "*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " "the socket locally. The *local_host* and *local_port* are looked up using :" "meth:`getaddrinfo`." msgstr "" -#: library/asyncio-eventloop.rst:614 +#: library/asyncio-eventloop.rst:628 +msgid "" +"On Windows, when using the proactor event loop with ``local_addr=None``, an :" +"exc:`OSError` with :attr:`!errno.WSAEINVAL` will be raised when running it." +msgstr "" + +#: library/asyncio-eventloop.rst:632 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 "" -#: library/asyncio-eventloop.rst:618 +#: library/asyncio-eventloop.rst:636 msgid "" "*family*, *proto*, *flags* are the optional address family, protocol and " "flags to be passed through to :meth:`getaddrinfo` for *host* resolution. If " @@ -855,7 +875,7 @@ msgid "" "module constants." msgstr "" -#: library/asyncio-eventloop.rst:623 +#: library/asyncio-eventloop.rst:641 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 " @@ -864,13 +884,13 @@ msgid "" "is not defined then this capability is unsupported." msgstr "" -#: library/asyncio-eventloop.rst:629 +#: library/asyncio-eventloop.rst:647 msgid "" "*allow_broadcast* tells the kernel to allow this endpoint to send messages " "to the broadcast address." msgstr "" -#: library/asyncio-eventloop.rst:632 +#: library/asyncio-eventloop.rst:650 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 " @@ -878,37 +898,37 @@ msgid "" "`None`)." msgstr "" -#: library/asyncio-eventloop.rst:643 +#: library/asyncio-eventloop.rst:661 msgid "" "See :ref:`UDP echo client protocol ` and :" "ref:`UDP echo server protocol ` examples." msgstr "" -#: library/asyncio-eventloop.rst:646 +#: library/asyncio-eventloop.rst:664 msgid "" "The *family*, *proto*, *flags*, *reuse_address*, *reuse_port*, " "*allow_broadcast*, and *sock* parameters were added." msgstr "" -#: library/asyncio-eventloop.rst:650 +#: library/asyncio-eventloop.rst:668 msgid "Added support for Windows." msgstr "" -#: library/asyncio-eventloop.rst:653 +#: library/asyncio-eventloop.rst:671 msgid "" "The *reuse_address* parameter is no longer supported, as using :ref:`socket." "SO_REUSEADDR ` poses a significant security concern " "for UDP. Explicitly passing ``reuse_address=True`` will raise an exception." msgstr "" -#: library/asyncio-eventloop.rst:659 +#: library/asyncio-eventloop.rst:677 msgid "" "When multiple processes with differing UIDs assign sockets to an identical " "UDP socket address with ``SO_REUSEADDR``, incoming packets can become " "randomly distributed among the sockets." msgstr "" -#: library/asyncio-eventloop.rst:663 +#: library/asyncio-eventloop.rst:681 msgid "" "For supported platforms, *reuse_port* can be used as a replacement for " "similar functionality. With *reuse_port*, :ref:`socket.SO_REUSEPORT ` is set by default " "for all TCP connections." msgstr "" -#: library/asyncio-eventloop.rst:824 +#: library/asyncio-eventloop.rst:842 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 "" -#: library/asyncio-eventloop.rst:836 +#: library/asyncio-eventloop.rst:854 msgid "" "Similar to :meth:`loop.create_server` but works with the :py:const:`~socket." "AF_UNIX` socket family." msgstr "" -#: library/asyncio-eventloop.rst:839 +#: library/asyncio-eventloop.rst:857 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 "" -#: library/asyncio-eventloop.rst:844 +#: library/asyncio-eventloop.rst:862 msgid "" "If *cleanup_socket* is true then the Unix socket will automatically be " "removed from the filesystem when the server is closed, unless the socket has " "been replaced after the server has been created." msgstr "" -#: library/asyncio-eventloop.rst:848 +#: library/asyncio-eventloop.rst:866 msgid "" "See the documentation of the :meth:`loop.create_server` method for " "information about arguments to this method." msgstr "" -#: library/asyncio-eventloop.rst:855 +#: library/asyncio-eventloop.rst:873 msgid "" "Added the *ssl_handshake_timeout* and *start_serving* parameters. The *path* " "parameter can now be a :class:`~pathlib.Path` object." msgstr "" -#: library/asyncio-eventloop.rst:864 +#: library/asyncio-eventloop.rst:882 msgid "Added the *cleanup_socket* parameter." msgstr "" -#: library/asyncio-eventloop.rst:872 +#: library/asyncio-eventloop.rst:890 msgid "Wrap an already accepted connection into a transport/protocol pair." msgstr "" -#: library/asyncio-eventloop.rst:874 +#: library/asyncio-eventloop.rst:892 msgid "" "This method can be used by servers that accept connections outside of " "asyncio but that use asyncio to handle them." msgstr "" -#: library/asyncio-eventloop.rst:877 library/asyncio-eventloop.rst:969 +#: library/asyncio-eventloop.rst:895 library/asyncio-eventloop.rst:987 msgid "Parameters:" msgstr "" -#: library/asyncio-eventloop.rst:882 +#: library/asyncio-eventloop.rst:900 msgid "" "*sock* is a preexisting socket object returned from :meth:`socket.accept " "`." msgstr "" -#: library/asyncio-eventloop.rst:891 +#: library/asyncio-eventloop.rst:909 msgid "" "*ssl* can be set to an :class:`~ssl.SSLContext` to enable SSL over the " "accepted connections." msgstr "" -#: library/asyncio-eventloop.rst:894 +#: library/asyncio-eventloop.rst:912 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 "" -#: library/asyncio-eventloop.rst:902 +#: library/asyncio-eventloop.rst:920 msgid "Returns a ``(transport, protocol)`` pair." msgstr "" -#: library/asyncio-eventloop.rst:916 +#: library/asyncio-eventloop.rst:934 msgid "Transferring files" msgstr "" -#: library/asyncio-eventloop.rst:922 +#: library/asyncio-eventloop.rst:940 msgid "" "Send a *file* over a *transport*. Return the total number of bytes sent." msgstr "" -#: library/asyncio-eventloop.rst:925 +#: library/asyncio-eventloop.rst:943 msgid "The method uses high-performance :meth:`os.sendfile` if available." msgstr "" -#: library/asyncio-eventloop.rst:927 +#: library/asyncio-eventloop.rst:945 msgid "*file* must be a regular file object opened in binary mode." msgstr "" -#: library/asyncio-eventloop.rst:929 library/asyncio-eventloop.rst:1190 +#: library/asyncio-eventloop.rst:947 library/asyncio-eventloop.rst:1208 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 " @@ -1199,35 +1219,35 @@ msgid "" "obtain the actual number of bytes sent." msgstr "" -#: library/asyncio-eventloop.rst:936 +#: library/asyncio-eventloop.rst:954 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 "" -#: library/asyncio-eventloop.rst:940 +#: library/asyncio-eventloop.rst:958 msgid "" "Raise :exc:`SendfileNotAvailableError` if the system does not support the " "*sendfile* syscall and *fallback* is ``False``." msgstr "" -#: library/asyncio-eventloop.rst:947 +#: library/asyncio-eventloop.rst:965 msgid "TLS Upgrade" msgstr "" -#: library/asyncio-eventloop.rst:955 +#: library/asyncio-eventloop.rst:973 msgid "Upgrade an existing transport-based connection to TLS." msgstr "" -#: library/asyncio-eventloop.rst:957 +#: library/asyncio-eventloop.rst:975 msgid "" "Create a TLS coder/decoder instance and insert it between the *transport* " "and the *protocol*. The coder/decoder implements both *transport*-facing " "protocol and *protocol*-facing transport." msgstr "" -#: library/asyncio-eventloop.rst:961 +#: library/asyncio-eventloop.rst:979 msgid "" "Return the created two-interface instance. After *await*, the *protocol* " "must stop using the original *transport* and communicate with the returned " @@ -1235,85 +1255,85 @@ msgid "" "exchanges extra TLS session packets with *transport*." msgstr "" -#: library/asyncio-eventloop.rst:966 +#: library/asyncio-eventloop.rst:984 msgid "" "In some situations (e.g. when the passed transport is already closing) this " "may return ``None``." msgstr "" -#: library/asyncio-eventloop.rst:971 +#: library/asyncio-eventloop.rst:989 msgid "" "*transport* and *protocol* instances that methods like :meth:`~loop." "create_server` and :meth:`~loop.create_connection` return." msgstr "" -#: library/asyncio-eventloop.rst:975 +#: library/asyncio-eventloop.rst:993 msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." msgstr "" -#: library/asyncio-eventloop.rst:977 +#: library/asyncio-eventloop.rst:995 msgid "" "*server_side* pass ``True`` when a server-side connection is being upgraded " "(like the one created by :meth:`~loop.create_server`)." msgstr "" -#: library/asyncio-eventloop.rst:980 +#: library/asyncio-eventloop.rst:998 msgid "" "*server_hostname*: sets or overrides the host name that the target server's " "certificate will be matched against." msgstr "" -#: library/asyncio-eventloop.rst:1000 +#: library/asyncio-eventloop.rst:1018 msgid "Watching file descriptors" msgstr "" -#: library/asyncio-eventloop.rst:1004 +#: library/asyncio-eventloop.rst:1022 msgid "" "Start monitoring the *fd* file descriptor for read availability and invoke " "*callback* with the specified arguments once *fd* is available for reading." msgstr "" -#: library/asyncio-eventloop.rst:1008 library/asyncio-eventloop.rst:1022 +#: library/asyncio-eventloop.rst:1026 library/asyncio-eventloop.rst:1040 msgid "" "Any preexisting callback registered for *fd* is cancelled and replaced by " "*callback*." msgstr "" -#: library/asyncio-eventloop.rst:1013 +#: library/asyncio-eventloop.rst:1031 msgid "" "Stop monitoring the *fd* file descriptor for read availability. Returns " "``True`` if *fd* was previously being monitored for reads." msgstr "" -#: library/asyncio-eventloop.rst:1018 +#: library/asyncio-eventloop.rst:1036 msgid "" "Start monitoring the *fd* file descriptor for write availability and invoke " "*callback* with the specified arguments once *fd* is available for writing." msgstr "" -#: library/asyncio-eventloop.rst:1025 library/asyncio-eventloop.rst:1303 +#: library/asyncio-eventloop.rst:1043 library/asyncio-eventloop.rst:1321 msgid "" "Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *callback*." msgstr "" -#: library/asyncio-eventloop.rst:1030 +#: library/asyncio-eventloop.rst:1048 msgid "" "Stop monitoring the *fd* file descriptor for write availability. Returns " "``True`` if *fd* was previously being monitored for writes." msgstr "" -#: library/asyncio-eventloop.rst:1033 +#: library/asyncio-eventloop.rst:1051 msgid "" "See also :ref:`Platform Support ` section for some " "limitations of these methods." msgstr "" -#: library/asyncio-eventloop.rst:1038 +#: library/asyncio-eventloop.rst:1056 msgid "Working with socket objects directly" msgstr "" -#: library/asyncio-eventloop.rst:1040 +#: library/asyncio-eventloop.rst:1058 msgid "" "In general, protocol implementations that use transport-based APIs such as :" "meth:`loop.create_connection` and :meth:`loop.create_server` are faster than " @@ -1322,68 +1342,68 @@ msgid "" "socket` objects directly is more convenient." msgstr "" -#: library/asyncio-eventloop.rst:1050 +#: library/asyncio-eventloop.rst:1068 msgid "" "Receive up to *nbytes* from *sock*. Asynchronous version of :meth:`socket." "recv() `." msgstr "" -#: library/asyncio-eventloop.rst:1053 +#: library/asyncio-eventloop.rst:1071 msgid "Return the received data as a bytes object." msgstr "" -#: library/asyncio-eventloop.rst:1055 library/asyncio-eventloop.rst:1070 -#: library/asyncio-eventloop.rst:1082 library/asyncio-eventloop.rst:1095 -#: library/asyncio-eventloop.rst:1111 library/asyncio-eventloop.rst:1127 -#: library/asyncio-eventloop.rst:1138 library/asyncio-eventloop.rst:1165 -#: library/asyncio-eventloop.rst:1204 +#: library/asyncio-eventloop.rst:1073 library/asyncio-eventloop.rst:1088 +#: library/asyncio-eventloop.rst:1100 library/asyncio-eventloop.rst:1113 +#: library/asyncio-eventloop.rst:1129 library/asyncio-eventloop.rst:1145 +#: library/asyncio-eventloop.rst:1156 library/asyncio-eventloop.rst:1183 +#: library/asyncio-eventloop.rst:1222 msgid "*sock* must be a non-blocking socket." msgstr "" -#: library/asyncio-eventloop.rst:1057 +#: library/asyncio-eventloop.rst:1075 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 "" -#: library/asyncio-eventloop.rst:1065 +#: library/asyncio-eventloop.rst:1083 msgid "" "Receive data from *sock* into the *buf* buffer. Modeled after the blocking :" "meth:`socket.recv_into() ` method." msgstr "" -#: library/asyncio-eventloop.rst:1068 +#: library/asyncio-eventloop.rst:1086 msgid "Return the number of bytes written to the buffer." msgstr "" -#: library/asyncio-eventloop.rst:1077 +#: library/asyncio-eventloop.rst:1095 msgid "" "Receive a datagram of up to *bufsize* from *sock*. Asynchronous version of :" "meth:`socket.recvfrom() `." msgstr "" -#: library/asyncio-eventloop.rst:1080 +#: library/asyncio-eventloop.rst:1098 msgid "Return a tuple of (received data, remote address)." msgstr "" -#: library/asyncio-eventloop.rst:1089 +#: library/asyncio-eventloop.rst:1107 msgid "" "Receive a datagram of up to *nbytes* from *sock* into *buf*. Asynchronous " "version of :meth:`socket.recvfrom_into() `." msgstr "" -#: library/asyncio-eventloop.rst:1093 +#: library/asyncio-eventloop.rst:1111 msgid "Return a tuple of (number of bytes received, remote address)." msgstr "" -#: library/asyncio-eventloop.rst:1102 +#: library/asyncio-eventloop.rst:1120 msgid "" "Send *data* to the *sock* socket. Asynchronous version of :meth:`socket." "sendall() `." msgstr "" -#: library/asyncio-eventloop.rst:1105 +#: library/asyncio-eventloop.rst:1123 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 " @@ -1392,33 +1412,33 @@ msgid "" "the connection." msgstr "" -#: library/asyncio-eventloop.rst:1113 library/asyncio-eventloop.rst:1167 +#: library/asyncio-eventloop.rst:1131 library/asyncio-eventloop.rst:1185 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 "" -#: library/asyncio-eventloop.rst:1121 +#: library/asyncio-eventloop.rst:1139 msgid "" "Send a datagram from *sock* to *address*. Asynchronous version of :meth:" "`socket.sendto() `." msgstr "" -#: library/asyncio-eventloop.rst:1125 +#: library/asyncio-eventloop.rst:1143 msgid "Return the number of bytes sent." msgstr "" -#: library/asyncio-eventloop.rst:1134 +#: library/asyncio-eventloop.rst:1152 msgid "Connect *sock* to a remote socket at *address*." msgstr "" -#: library/asyncio-eventloop.rst:1136 +#: library/asyncio-eventloop.rst:1154 msgid "" "Asynchronous version of :meth:`socket.connect() `." msgstr "" -#: library/asyncio-eventloop.rst:1140 +#: library/asyncio-eventloop.rst:1158 msgid "" "``address`` no longer needs to be resolved. ``sock_connect`` will try to " "check if the *address* is already resolved by calling :func:`socket." @@ -1426,19 +1446,19 @@ msgid "" "*address*." msgstr "" -#: library/asyncio-eventloop.rst:1149 +#: library/asyncio-eventloop.rst:1167 msgid "" ":meth:`loop.create_connection` and :func:`asyncio.open_connection() " "`." msgstr "" -#: library/asyncio-eventloop.rst:1156 +#: library/asyncio-eventloop.rst:1174 msgid "" "Accept a connection. Modeled after the blocking :meth:`socket.accept() " "` method." msgstr "" -#: library/asyncio-eventloop.rst:1159 +#: library/asyncio-eventloop.rst:1177 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 " @@ -1446,57 +1466,57 @@ msgid "" "the address bound to the socket on the other end of the connection." msgstr "" -#: library/asyncio-eventloop.rst:1174 +#: library/asyncio-eventloop.rst:1192 msgid ":meth:`loop.create_server` and :func:`start_server`." msgstr "" -#: library/asyncio-eventloop.rst:1180 +#: library/asyncio-eventloop.rst:1198 msgid "" "Send a file using high-performance :mod:`os.sendfile` if possible. Return " "the total number of bytes sent." msgstr "" -#: library/asyncio-eventloop.rst:1183 +#: library/asyncio-eventloop.rst:1201 msgid "" "Asynchronous version of :meth:`socket.sendfile() `." msgstr "" -#: library/asyncio-eventloop.rst:1185 +#: library/asyncio-eventloop.rst:1203 msgid "" "*sock* must be a non-blocking :const:`socket.SOCK_STREAM` :class:`~socket." "socket`." msgstr "" -#: library/asyncio-eventloop.rst:1188 +#: library/asyncio-eventloop.rst:1206 msgid "*file* must be a regular file object open in binary mode." msgstr "" -#: library/asyncio-eventloop.rst:1197 +#: library/asyncio-eventloop.rst:1215 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 "" -#: library/asyncio-eventloop.rst:1201 +#: library/asyncio-eventloop.rst:1219 msgid "" "Raise :exc:`SendfileNotAvailableError` if the system does not support " "*sendfile* syscall and *fallback* is ``False``." msgstr "" -#: library/asyncio-eventloop.rst:1210 +#: library/asyncio-eventloop.rst:1228 msgid "DNS" msgstr "" -#: library/asyncio-eventloop.rst:1216 +#: library/asyncio-eventloop.rst:1234 msgid "Asynchronous version of :meth:`socket.getaddrinfo`." msgstr "" -#: library/asyncio-eventloop.rst:1221 +#: library/asyncio-eventloop.rst:1239 msgid "Asynchronous version of :meth:`socket.getnameinfo`." msgstr "" -#: library/asyncio-eventloop.rst:1224 +#: library/asyncio-eventloop.rst:1242 msgid "" "Both *getaddrinfo* and *getnameinfo* internally utilize their synchronous " "versions through the loop's default thread pool executor. When this executor " @@ -1506,7 +1526,7 @@ msgid "" "executor with a larger number of workers." msgstr "" -#: library/asyncio-eventloop.rst:1231 +#: library/asyncio-eventloop.rst:1249 msgid "" "Both *getaddrinfo* and *getnameinfo* methods were always documented to " "return a coroutine, but prior to Python 3.7 they were, in fact, returning :" @@ -1514,66 +1534,66 @@ msgid "" "coroutines." msgstr "" -#: library/asyncio-eventloop.rst:1239 +#: library/asyncio-eventloop.rst:1257 msgid "Working with pipes" msgstr "" -#: library/asyncio-eventloop.rst:1244 +#: library/asyncio-eventloop.rst:1262 msgid "Register the read end of *pipe* in the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1249 +#: library/asyncio-eventloop.rst:1267 msgid "*pipe* is a :term:`file-like object `." msgstr "" -#: library/asyncio-eventloop.rst:1251 +#: library/asyncio-eventloop.rst:1269 msgid "" "Return pair ``(transport, protocol)``, where *transport* supports the :class:" "`ReadTransport` interface and *protocol* is an object instantiated by the " "*protocol_factory*." msgstr "" -#: library/asyncio-eventloop.rst:1255 library/asyncio-eventloop.rst:1272 +#: library/asyncio-eventloop.rst:1273 library/asyncio-eventloop.rst:1290 msgid "" "With :class:`SelectorEventLoop` event loop, the *pipe* is set to non-" "blocking mode." msgstr "" -#: library/asyncio-eventloop.rst:1261 +#: library/asyncio-eventloop.rst:1279 msgid "Register the write end of *pipe* in the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1266 +#: library/asyncio-eventloop.rst:1284 msgid "*pipe* is :term:`file-like object `." msgstr "" -#: library/asyncio-eventloop.rst:1268 +#: library/asyncio-eventloop.rst:1286 msgid "" "Return pair ``(transport, protocol)``, where *transport* supports :class:" "`WriteTransport` interface and *protocol* is an object instantiated by the " "*protocol_factory*." msgstr "" -#: library/asyncio-eventloop.rst:1277 +#: library/asyncio-eventloop.rst:1295 msgid "" ":class:`SelectorEventLoop` does not support the above methods on Windows. " "Use :class:`ProactorEventLoop` instead for Windows." msgstr "" -#: library/asyncio-eventloop.rst:1282 +#: library/asyncio-eventloop.rst:1300 msgid "" "The :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` methods." msgstr "" -#: library/asyncio-eventloop.rst:1287 +#: library/asyncio-eventloop.rst:1305 msgid "Unix signals" msgstr "" -#: library/asyncio-eventloop.rst:1293 +#: library/asyncio-eventloop.rst:1311 msgid "Set *callback* as the handler for the *signum* signal." msgstr "" -#: library/asyncio-eventloop.rst:1295 +#: library/asyncio-eventloop.rst:1313 msgid "" "The callback will be invoked by *loop*, along with other queued callbacks " "and runnable coroutines of that event loop. Unlike signal handlers " @@ -1581,40 +1601,40 @@ msgid "" "function is allowed to interact with the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1300 +#: library/asyncio-eventloop.rst:1318 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 "" -#: library/asyncio-eventloop.rst:1306 +#: library/asyncio-eventloop.rst:1324 msgid "" "Like :func:`signal.signal`, this function must be invoked in the main thread." msgstr "" -#: library/asyncio-eventloop.rst:1311 +#: library/asyncio-eventloop.rst:1329 msgid "Remove the handler for the *sig* signal." msgstr "" -#: library/asyncio-eventloop.rst:1313 +#: library/asyncio-eventloop.rst:1331 msgid "" "Return ``True`` if the signal handler was removed, or ``False`` if no " "handler was set for the given signal." msgstr "" -#: library/asyncio-eventloop.rst:1320 +#: library/asyncio-eventloop.rst:1338 msgid "The :mod:`signal` module." msgstr "" -#: library/asyncio-eventloop.rst:1324 +#: library/asyncio-eventloop.rst:1342 msgid "Executing code in thread or process pools" msgstr "" -#: library/asyncio-eventloop.rst:1328 +#: library/asyncio-eventloop.rst:1346 msgid "Arrange for *func* to be called in the specified executor." msgstr "" -#: library/asyncio-eventloop.rst:1330 +#: library/asyncio-eventloop.rst:1348 msgid "" "The *executor* argument should be an :class:`concurrent.futures.Executor` " "instance. The default executor is used if *executor* is ``None``. The " @@ -1623,7 +1643,7 @@ msgid "" "and used by :func:`run_in_executor` if needed." msgstr "" -#: library/asyncio-eventloop.rst:1338 +#: library/asyncio-eventloop.rst:1356 msgid "" "import asyncio\n" "import concurrent.futures\n" @@ -1672,7 +1692,7 @@ msgid "" " asyncio.run(main())" msgstr "" -#: library/asyncio-eventloop.rst:1384 +#: library/asyncio-eventloop.rst:1402 msgid "" "Note that the entry point guard (``if __name__ == '__main__'``) is required " "for option 3 due to the peculiarities of :mod:`multiprocessing`, which is " @@ -1680,17 +1700,17 @@ msgid "" "importing of main module `." msgstr "" -#: library/asyncio-eventloop.rst:1389 +#: library/asyncio-eventloop.rst:1407 msgid "This method returns a :class:`asyncio.Future` object." msgstr "" -#: library/asyncio-eventloop.rst:1391 +#: library/asyncio-eventloop.rst:1409 msgid "" "Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *func*." msgstr "" -#: library/asyncio-eventloop.rst:1394 +#: library/asyncio-eventloop.rst:1412 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 " @@ -1698,7 +1718,7 @@ msgid "" "default." msgstr "" -#: library/asyncio-eventloop.rst:1403 +#: library/asyncio-eventloop.rst:1421 msgid "" "Set *executor* as the default executor used by :meth:`run_in_executor`. " "*executor* must be an instance of :class:`~concurrent.futures." @@ -1706,25 +1726,25 @@ msgid "" "InterpreterPoolExecutor`." msgstr "" -#: library/asyncio-eventloop.rst:1408 +#: library/asyncio-eventloop.rst:1426 msgid "" "*executor* must be an instance of :class:`~concurrent.futures." "ThreadPoolExecutor`." msgstr "" -#: library/asyncio-eventloop.rst:1414 +#: library/asyncio-eventloop.rst:1432 msgid "Error Handling API" msgstr "" -#: library/asyncio-eventloop.rst:1416 +#: library/asyncio-eventloop.rst:1434 msgid "Allows customizing how exceptions are handled in the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1420 +#: library/asyncio-eventloop.rst:1438 msgid "Set *handler* as the new event loop exception handler." msgstr "" -#: library/asyncio-eventloop.rst:1422 +#: library/asyncio-eventloop.rst:1440 msgid "" "If *handler* is ``None``, the default exception handler will be set. " "Otherwise, *handler* must be a callable with the signature matching ``(loop, " @@ -1733,190 +1753,190 @@ msgid "" "(see :meth:`call_exception_handler` documentation for details about context)." msgstr "" -#: library/asyncio-eventloop.rst:1430 +#: library/asyncio-eventloop.rst:1448 msgid "" "If the handler is called on behalf of a :class:`~asyncio.Task` or :class:" "`~asyncio.Handle`, it is run in the :class:`contextvars.Context` of that " "task or callback handle." msgstr "" -#: library/asyncio-eventloop.rst:1436 +#: library/asyncio-eventloop.rst:1454 msgid "" "The handler may be called in the :class:`~contextvars.Context` of the task " "or handle where the exception originated." msgstr "" -#: library/asyncio-eventloop.rst:1441 +#: library/asyncio-eventloop.rst:1459 msgid "" "Return the current exception handler, or ``None`` if no custom exception " "handler was set." msgstr "" -#: library/asyncio-eventloop.rst:1448 +#: library/asyncio-eventloop.rst:1466 msgid "Default exception handler." msgstr "" -#: library/asyncio-eventloop.rst:1450 +#: library/asyncio-eventloop.rst:1468 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 "" -#: library/asyncio-eventloop.rst:1454 +#: library/asyncio-eventloop.rst:1472 msgid "" "*context* parameter has the same meaning as in :meth:" "`call_exception_handler`." msgstr "" -#: library/asyncio-eventloop.rst:1459 +#: library/asyncio-eventloop.rst:1477 msgid "Call the current event loop exception handler." msgstr "" -#: library/asyncio-eventloop.rst:1461 +#: library/asyncio-eventloop.rst:1479 msgid "" "*context* is a ``dict`` object containing the following keys (new keys may " "be introduced in future Python versions):" msgstr "" -#: library/asyncio-eventloop.rst:1464 +#: library/asyncio-eventloop.rst:1482 msgid "'message': Error message;" msgstr "" -#: library/asyncio-eventloop.rst:1465 +#: library/asyncio-eventloop.rst:1483 msgid "'exception' (optional): Exception object;" msgstr "" -#: library/asyncio-eventloop.rst:1466 +#: library/asyncio-eventloop.rst:1484 msgid "'future' (optional): :class:`asyncio.Future` instance;" msgstr "" -#: library/asyncio-eventloop.rst:1467 +#: library/asyncio-eventloop.rst:1485 msgid "'task' (optional): :class:`asyncio.Task` instance;" msgstr "" -#: library/asyncio-eventloop.rst:1468 +#: library/asyncio-eventloop.rst:1486 msgid "'handle' (optional): :class:`asyncio.Handle` instance;" msgstr "" -#: library/asyncio-eventloop.rst:1469 +#: library/asyncio-eventloop.rst:1487 msgid "'protocol' (optional): :ref:`Protocol ` instance;" msgstr "" -#: library/asyncio-eventloop.rst:1470 +#: library/asyncio-eventloop.rst:1488 msgid "'transport' (optional): :ref:`Transport ` instance;" msgstr "" -#: library/asyncio-eventloop.rst:1471 +#: library/asyncio-eventloop.rst:1489 msgid "'socket' (optional): :class:`socket.socket` instance;" msgstr "" -#: library/asyncio-eventloop.rst:1472 +#: library/asyncio-eventloop.rst:1490 msgid "'source_traceback' (optional): Traceback of the source;" msgstr "" -#: library/asyncio-eventloop.rst:1473 +#: library/asyncio-eventloop.rst:1491 msgid "'handle_traceback' (optional): Traceback of the handle;" msgstr "" -#: library/asyncio-eventloop.rst:1474 +#: library/asyncio-eventloop.rst:1492 msgid "'asyncgen' (optional): Asynchronous generator that caused" msgstr "" -#: library/asyncio-eventloop.rst:1475 +#: library/asyncio-eventloop.rst:1493 msgid "the exception." msgstr "" -#: library/asyncio-eventloop.rst:1479 +#: library/asyncio-eventloop.rst:1497 msgid "" "This method should not be overloaded in subclassed event loops. For custom " "exception handling, use the :meth:`set_exception_handler` method." msgstr "" -#: library/asyncio-eventloop.rst:1484 +#: library/asyncio-eventloop.rst:1502 msgid "Enabling debug mode" msgstr "" -#: library/asyncio-eventloop.rst:1488 +#: library/asyncio-eventloop.rst:1506 msgid "Get the debug mode (:class:`bool`) of the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1490 +#: library/asyncio-eventloop.rst:1508 msgid "" "The default value is ``True`` if the environment variable :envvar:" "`PYTHONASYNCIODEBUG` is set to a non-empty string, ``False`` otherwise." msgstr "" -#: library/asyncio-eventloop.rst:1496 +#: library/asyncio-eventloop.rst:1514 msgid "Set the debug mode of the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1500 +#: library/asyncio-eventloop.rst:1518 msgid "" "The new :ref:`Python Development Mode ` can now also be used to " "enable the debug mode." msgstr "" -#: library/asyncio-eventloop.rst:1505 +#: library/asyncio-eventloop.rst:1523 msgid "" "This attribute can be used to set the minimum execution duration in seconds " "that is considered \"slow\". When debug mode is enabled, \"slow\" callbacks " "are logged." msgstr "" -#: library/asyncio-eventloop.rst:1509 +#: library/asyncio-eventloop.rst:1527 msgid "Default value is 100 milliseconds." msgstr "" -#: library/asyncio-eventloop.rst:1513 +#: library/asyncio-eventloop.rst:1531 msgid "The :ref:`debug mode of asyncio `." msgstr "" -#: library/asyncio-eventloop.rst:1517 +#: library/asyncio-eventloop.rst:1535 msgid "Running Subprocesses" msgstr "" -#: library/asyncio-eventloop.rst:1519 +#: library/asyncio-eventloop.rst:1537 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 "" -#: library/asyncio-eventloop.rst:1526 +#: library/asyncio-eventloop.rst:1544 msgid "" "On Windows, the default event loop :class:`ProactorEventLoop` supports " "subprocesses, whereas :class:`SelectorEventLoop` does not. See :ref:" "`Subprocess Support on Windows ` for details." msgstr "" -#: library/asyncio-eventloop.rst:1538 +#: library/asyncio-eventloop.rst:1556 msgid "" "Create a subprocess from one or more string arguments specified by *args*." msgstr "" -#: library/asyncio-eventloop.rst:1541 +#: library/asyncio-eventloop.rst:1559 msgid "*args* must be a list of strings represented by:" msgstr "" -#: library/asyncio-eventloop.rst:1543 +#: library/asyncio-eventloop.rst:1561 msgid ":class:`str`;" msgstr "" -#: library/asyncio-eventloop.rst:1544 +#: library/asyncio-eventloop.rst:1562 msgid "" "or :class:`bytes`, encoded to the :ref:`filesystem encoding `." msgstr "" -#: library/asyncio-eventloop.rst:1547 +#: library/asyncio-eventloop.rst:1565 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 "" -#: library/asyncio-eventloop.rst:1551 +#: library/asyncio-eventloop.rst:1569 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 " @@ -1924,81 +1944,81 @@ msgid "" "which is list of strings, *subprocess_exec* takes multiple string arguments." msgstr "" -#: library/asyncio-eventloop.rst:1557 +#: library/asyncio-eventloop.rst:1575 msgid "" "The *protocol_factory* must be a callable returning a subclass of the :class:" "`asyncio.SubprocessProtocol` class." msgstr "" -#: library/asyncio-eventloop.rst:1560 +#: library/asyncio-eventloop.rst:1578 msgid "Other parameters:" msgstr "" -#: library/asyncio-eventloop.rst:1562 +#: library/asyncio-eventloop.rst:1580 msgid "*stdin* can be any of these:" msgstr "" -#: library/asyncio-eventloop.rst:1564 library/asyncio-eventloop.rst:1575 -#: library/asyncio-eventloop.rst:1585 +#: library/asyncio-eventloop.rst:1582 library/asyncio-eventloop.rst:1593 +#: library/asyncio-eventloop.rst:1603 msgid "a file-like object" msgstr "" -#: library/asyncio-eventloop.rst:1565 +#: library/asyncio-eventloop.rst:1583 msgid "" "an existing file descriptor (a positive integer), for example those created " "with :meth:`os.pipe`" msgstr "" -#: library/asyncio-eventloop.rst:1566 library/asyncio-eventloop.rst:1576 -#: library/asyncio-eventloop.rst:1586 +#: library/asyncio-eventloop.rst:1584 library/asyncio-eventloop.rst:1594 +#: library/asyncio-eventloop.rst:1604 msgid "" "the :const:`subprocess.PIPE` constant (default) which will create a new pipe " "and connect it," msgstr "" -#: library/asyncio-eventloop.rst:1568 library/asyncio-eventloop.rst:1578 -#: library/asyncio-eventloop.rst:1588 +#: library/asyncio-eventloop.rst:1586 library/asyncio-eventloop.rst:1596 +#: library/asyncio-eventloop.rst:1606 msgid "" "the value ``None`` which will make the subprocess inherit the file " "descriptor from this process" msgstr "" -#: library/asyncio-eventloop.rst:1570 library/asyncio-eventloop.rst:1580 -#: library/asyncio-eventloop.rst:1590 +#: library/asyncio-eventloop.rst:1588 library/asyncio-eventloop.rst:1598 +#: library/asyncio-eventloop.rst:1608 msgid "" "the :const:`subprocess.DEVNULL` constant which indicates that the special :" "data:`os.devnull` file will be used" msgstr "" -#: library/asyncio-eventloop.rst:1573 +#: library/asyncio-eventloop.rst:1591 msgid "*stdout* can be any of these:" msgstr "" -#: library/asyncio-eventloop.rst:1583 +#: library/asyncio-eventloop.rst:1601 msgid "*stderr* can be any of these:" msgstr "" -#: library/asyncio-eventloop.rst:1592 +#: library/asyncio-eventloop.rst:1610 msgid "" "the :const:`subprocess.STDOUT` constant which will connect the standard " "error stream to the process' standard output stream" msgstr "" -#: library/asyncio-eventloop.rst:1595 +#: library/asyncio-eventloop.rst:1613 msgid "" "All other keyword arguments are passed to :class:`subprocess.Popen` without " "interpretation, except for *bufsize*, *universal_newlines*, *shell*, *text*, " "*encoding* and *errors*, which should not be specified at all." msgstr "" -#: library/asyncio-eventloop.rst:1600 +#: library/asyncio-eventloop.rst:1618 msgid "" "The ``asyncio`` subprocess API does not support decoding the streams as " "text. :func:`bytes.decode` can be used to convert the bytes returned from " "the stream to text." msgstr "" -#: library/asyncio-eventloop.rst:1604 +#: library/asyncio-eventloop.rst:1622 msgid "" "If a file-like object passed as *stdin*, *stdout* or *stderr* represents a " "pipe, then the other side of this pipe should be registered with :meth:" @@ -2006,52 +2026,58 @@ msgid "" "the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1609 +#: library/asyncio-eventloop.rst:1627 msgid "" "See the constructor of the :class:`subprocess.Popen` class for documentation " "on other arguments." msgstr "" -#: library/asyncio-eventloop.rst:1612 +#: library/asyncio-eventloop.rst:1630 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 "" -#: library/asyncio-eventloop.rst:1621 +#: library/asyncio-eventloop.rst:1634 library/asyncio-eventloop.rst:1660 +msgid "" +"If the transport is closed or is garbage collected, the child process is " +"killed if it is still running." +msgstr "" + +#: library/asyncio-eventloop.rst:1642 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 "" -#: library/asyncio-eventloop.rst:1626 +#: library/asyncio-eventloop.rst:1647 msgid "" "This is similar to the standard library :class:`subprocess.Popen` class " "called with ``shell=True``." msgstr "" -#: library/asyncio-eventloop.rst:1629 +#: library/asyncio-eventloop.rst:1650 msgid "" "The *protocol_factory* must be a callable returning a subclass of the :class:" "`SubprocessProtocol` class." msgstr "" -#: library/asyncio-eventloop.rst:1632 +#: library/asyncio-eventloop.rst:1653 msgid "" "See :meth:`~loop.subprocess_exec` for more details about the remaining " "arguments." msgstr "" -#: library/asyncio-eventloop.rst:1635 +#: library/asyncio-eventloop.rst:1656 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 "" -#: library/asyncio-eventloop.rst:1640 +#: library/asyncio-eventloop.rst:1664 msgid "" "It is the application's responsibility to ensure that all whitespace and " "special characters are quoted appropriately to avoid `shell injection " @@ -2061,74 +2087,74 @@ msgid "" "used to construct shell commands." msgstr "" -#: library/asyncio-eventloop.rst:1649 +#: library/asyncio-eventloop.rst:1673 msgid "Callback Handles" msgstr "" -#: library/asyncio-eventloop.rst:1653 +#: library/asyncio-eventloop.rst:1677 msgid "" "A callback wrapper object returned by :meth:`loop.call_soon`, :meth:`loop." "call_soon_threadsafe`." msgstr "" -#: library/asyncio-eventloop.rst:1658 +#: library/asyncio-eventloop.rst:1682 msgid "" "Return the :class:`contextvars.Context` object associated with the handle." msgstr "" -#: library/asyncio-eventloop.rst:1665 +#: library/asyncio-eventloop.rst:1689 msgid "" "Cancel the callback. If the callback has already been canceled or executed, " "this method has no effect." msgstr "" -#: library/asyncio-eventloop.rst:1670 +#: library/asyncio-eventloop.rst:1694 msgid "Return ``True`` if the callback was cancelled." msgstr "" -#: library/asyncio-eventloop.rst:1676 +#: library/asyncio-eventloop.rst:1700 msgid "" "A callback wrapper object returned by :meth:`loop.call_later`, and :meth:" "`loop.call_at`." msgstr "" -#: library/asyncio-eventloop.rst:1679 +#: library/asyncio-eventloop.rst:1703 msgid "This class is a subclass of :class:`Handle`." msgstr "" -#: library/asyncio-eventloop.rst:1683 +#: library/asyncio-eventloop.rst:1707 msgid "Return a scheduled callback time as :class:`float` seconds." msgstr "" -#: library/asyncio-eventloop.rst:1685 +#: library/asyncio-eventloop.rst:1709 msgid "" "The time is an absolute timestamp, using the same time reference as :meth:" "`loop.time`." msgstr "" -#: library/asyncio-eventloop.rst:1692 +#: library/asyncio-eventloop.rst:1716 msgid "Server Objects" msgstr "" -#: library/asyncio-eventloop.rst:1694 +#: library/asyncio-eventloop.rst:1718 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 "" -#: library/asyncio-eventloop.rst:1698 +#: library/asyncio-eventloop.rst:1722 msgid "Do not instantiate the :class:`Server` class directly." msgstr "" -#: library/asyncio-eventloop.rst:1702 +#: library/asyncio-eventloop.rst:1726 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 "" -#: library/asyncio-eventloop.rst:1707 +#: library/asyncio-eventloop.rst:1731 msgid "" "srv = await loop.create_server(...)\n" "\n" @@ -2138,81 +2164,81 @@ msgid "" "# At this point, srv is closed and no longer accepts new connections." msgstr "" -#: library/asyncio-eventloop.rst:1715 +#: library/asyncio-eventloop.rst:1739 msgid "Server object is an asynchronous context manager since Python 3.7." msgstr "" -#: library/asyncio-eventloop.rst:1718 +#: library/asyncio-eventloop.rst:1742 msgid "" "This class was exposed publicly as ``asyncio.Server`` in Python 3.9.11, " "3.10.3 and 3.11." msgstr "" -#: library/asyncio-eventloop.rst:1723 +#: library/asyncio-eventloop.rst:1747 msgid "" "Stop serving: close listening sockets and set the :attr:`sockets` attribute " "to ``None``." msgstr "" -#: library/asyncio-eventloop.rst:1726 +#: library/asyncio-eventloop.rst:1750 msgid "" "The sockets that represent existing incoming client connections are left " "open." msgstr "" -#: library/asyncio-eventloop.rst:1729 +#: library/asyncio-eventloop.rst:1753 msgid "" "The server is closed asynchronously; use the :meth:`wait_closed` coroutine " "to wait until the server is closed (and no more connections are active)." msgstr "" -#: library/asyncio-eventloop.rst:1735 +#: library/asyncio-eventloop.rst:1759 msgid "Close all existing incoming client connections." msgstr "" -#: library/asyncio-eventloop.rst:1737 +#: library/asyncio-eventloop.rst:1761 msgid "" "Calls :meth:`~asyncio.BaseTransport.close` on all associated transports." msgstr "" -#: library/asyncio-eventloop.rst:1740 +#: library/asyncio-eventloop.rst:1764 msgid "" ":meth:`close` should be called before :meth:`close_clients` when closing the " "server to avoid races with new clients connecting." msgstr "" -#: library/asyncio-eventloop.rst:1747 +#: library/asyncio-eventloop.rst:1771 msgid "" "Close all existing incoming client connections immediately, without waiting " "for pending operations to complete." msgstr "" -#: library/asyncio-eventloop.rst:1750 +#: library/asyncio-eventloop.rst:1774 msgid "" "Calls :meth:`~asyncio.WriteTransport.abort` on all associated transports." msgstr "" -#: library/asyncio-eventloop.rst:1753 +#: library/asyncio-eventloop.rst:1777 msgid "" ":meth:`close` should be called before :meth:`abort_clients` when closing the " "server to avoid races with new clients connecting." msgstr "" -#: library/asyncio-eventloop.rst:1760 +#: library/asyncio-eventloop.rst:1784 msgid "Return the event loop associated with the server object." msgstr "" -#: library/asyncio-eventloop.rst:1767 +#: library/asyncio-eventloop.rst:1791 msgid "Start accepting connections." msgstr "" -#: library/asyncio-eventloop.rst:1769 +#: library/asyncio-eventloop.rst:1793 msgid "" "This method is idempotent, so it can be called when the server is already " "serving." msgstr "" -#: library/asyncio-eventloop.rst:1772 +#: library/asyncio-eventloop.rst:1796 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 " @@ -2221,19 +2247,19 @@ msgid "" "accepting connections." msgstr "" -#: library/asyncio-eventloop.rst:1784 +#: library/asyncio-eventloop.rst:1808 msgid "" "Start accepting connections until the coroutine is cancelled. Cancellation " "of ``serve_forever`` task causes the server to be closed." msgstr "" -#: library/asyncio-eventloop.rst:1788 +#: library/asyncio-eventloop.rst:1812 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 "" -#: library/asyncio-eventloop.rst:1794 +#: library/asyncio-eventloop.rst:1818 msgid "" "async def client_connected(reader, writer):\n" " # Communicate with the client with\n" @@ -2248,56 +2274,56 @@ msgid "" "asyncio.run(main('127.0.0.1', 0))" msgstr "" -#: library/asyncio-eventloop.rst:1810 +#: library/asyncio-eventloop.rst:1834 msgid "Return ``True`` if the server is accepting new connections." msgstr "" -#: library/asyncio-eventloop.rst:1817 +#: library/asyncio-eventloop.rst:1841 msgid "" "Wait until the :meth:`close` method completes and all active connections " "have finished." msgstr "" -#: library/asyncio-eventloop.rst:1822 +#: library/asyncio-eventloop.rst:1846 msgid "" "List of socket-like objects, ``asyncio.trsock.TransportSocket``, which the " "server is listening on." msgstr "" -#: library/asyncio-eventloop.rst:1825 +#: library/asyncio-eventloop.rst:1849 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 "" -#: library/asyncio-eventloop.rst:1835 +#: library/asyncio-eventloop.rst:1859 msgid "Event Loop Implementations" msgstr "" -#: library/asyncio-eventloop.rst:1837 +#: library/asyncio-eventloop.rst:1861 msgid "" "asyncio ships with two different event loop implementations: :class:" "`SelectorEventLoop` and :class:`ProactorEventLoop`." msgstr "" -#: library/asyncio-eventloop.rst:1840 +#: library/asyncio-eventloop.rst:1864 msgid "By default asyncio is configured to use :class:`EventLoop`." msgstr "" -#: library/asyncio-eventloop.rst:1845 +#: library/asyncio-eventloop.rst:1869 msgid "" "A subclass of :class:`AbstractEventLoop` based on the :mod:`selectors` " "module." msgstr "" -#: library/asyncio-eventloop.rst:1848 +#: library/asyncio-eventloop.rst:1872 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 "" -#: library/asyncio-eventloop.rst:1852 +#: library/asyncio-eventloop.rst:1876 msgid "" "import asyncio\n" "import selectors\n" @@ -2310,45 +2336,45 @@ msgid "" "asyncio.run(main(), loop_factory=loop_factory)" msgstr "" -#: library/asyncio-eventloop.rst:1867 +#: library/asyncio-eventloop.rst:1891 msgid "" "A subclass of :class:`AbstractEventLoop` for Windows that uses \"I/O " "Completion Ports\" (IOCP)." msgstr "" -#: library/asyncio-eventloop.rst:1873 +#: library/asyncio-eventloop.rst:1897 msgid "" "`MSDN documentation on I/O Completion Ports `_." msgstr "" -#: library/asyncio-eventloop.rst:1878 +#: library/asyncio-eventloop.rst:1902 msgid "" "An alias to the most efficient available subclass of :class:" "`AbstractEventLoop` for the given platform." msgstr "" -#: library/asyncio-eventloop.rst:1881 +#: library/asyncio-eventloop.rst:1905 msgid "" "It is an alias to :class:`SelectorEventLoop` on Unix and :class:" "`ProactorEventLoop` on Windows." msgstr "" -#: library/asyncio-eventloop.rst:1887 +#: library/asyncio-eventloop.rst:1911 msgid "Abstract base class for asyncio-compliant event loops." msgstr "" -#: library/asyncio-eventloop.rst:1889 +#: library/asyncio-eventloop.rst:1913 msgid "" "The :ref:`asyncio-event-loop-methods` section lists all methods that an " "alternative implementation of ``AbstractEventLoop`` should have defined." msgstr "" -#: library/asyncio-eventloop.rst:1895 +#: library/asyncio-eventloop.rst:1919 msgid "Examples" msgstr "" -#: library/asyncio-eventloop.rst:1897 +#: library/asyncio-eventloop.rst:1921 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." @@ -2356,17 +2382,17 @@ msgid "" "consider using the high-level functions like :func:`asyncio.run`." msgstr "" -#: library/asyncio-eventloop.rst:1907 +#: library/asyncio-eventloop.rst:1931 msgid "Hello World with call_soon()" msgstr "" -#: library/asyncio-eventloop.rst:1909 +#: library/asyncio-eventloop.rst:1933 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 "" -#: library/asyncio-eventloop.rst:1913 +#: library/asyncio-eventloop.rst:1937 msgid "" "import asyncio\n" "\n" @@ -2387,24 +2413,24 @@ msgid "" " loop.close()" msgstr "" -#: library/asyncio-eventloop.rst:1933 +#: library/asyncio-eventloop.rst:1957 msgid "" "A similar :ref:`Hello World ` example created with a coroutine " "and the :func:`run` function." msgstr "" -#: library/asyncio-eventloop.rst:1940 +#: library/asyncio-eventloop.rst:1964 msgid "Display the current date with call_later()" msgstr "" -#: library/asyncio-eventloop.rst:1942 +#: library/asyncio-eventloop.rst:1966 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 "" -#: library/asyncio-eventloop.rst:1946 +#: library/asyncio-eventloop.rst:1970 msgid "" "import asyncio\n" "import datetime\n" @@ -2429,23 +2455,23 @@ msgid "" " loop.close()" msgstr "" -#: library/asyncio-eventloop.rst:1970 +#: library/asyncio-eventloop.rst:1994 msgid "" "A similar :ref:`current date ` example created with a " "coroutine and the :func:`run` function." msgstr "" -#: library/asyncio-eventloop.rst:1977 +#: library/asyncio-eventloop.rst:2001 msgid "Watch a file descriptor for read events" msgstr "" -#: library/asyncio-eventloop.rst:1979 +#: library/asyncio-eventloop.rst:2003 msgid "" "Wait until a file descriptor received some data using the :meth:`loop." "add_reader` method and then close the event loop::" msgstr "" -#: library/asyncio-eventloop.rst:1982 +#: library/asyncio-eventloop.rst:2006 msgid "" "import asyncio\n" "from socket import socketpair\n" @@ -2481,33 +2507,33 @@ msgid "" " loop.close()" msgstr "" -#: library/asyncio-eventloop.rst:2017 +#: library/asyncio-eventloop.rst:2041 msgid "" "A similar :ref:`example ` using " "transports, protocols, and the :meth:`loop.create_connection` method." msgstr "" -#: library/asyncio-eventloop.rst:2021 +#: library/asyncio-eventloop.rst:2045 msgid "" "Another similar :ref:`example ` " "using the high-level :func:`asyncio.open_connection` function and streams." msgstr "" -#: library/asyncio-eventloop.rst:2029 +#: library/asyncio-eventloop.rst:2053 msgid "Set signal handlers for SIGINT and SIGTERM" msgstr "" -#: library/asyncio-eventloop.rst:2031 +#: library/asyncio-eventloop.rst:2055 msgid "(This ``signals`` example only works on Unix.)" msgstr "" -#: library/asyncio-eventloop.rst:2033 +#: library/asyncio-eventloop.rst:2057 msgid "" "Register handlers for signals :const:`~signal.SIGINT` and :const:`~signal." "SIGTERM` using the :meth:`loop.add_signal_handler` method::" msgstr "" -#: library/asyncio-eventloop.rst:2036 +#: library/asyncio-eventloop.rst:2060 msgid "" "import asyncio\n" "import functools\n" diff --git a/library/asyncio-exceptions.po b/library/asyncio-exceptions.po index 46db5c36..50738235 100644 --- a/library/asyncio-exceptions.po +++ b/library/asyncio-exceptions.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/asyncio-extending.po b/library/asyncio-extending.po index 9b1bc8f3..e970fde1 100644 --- a/library/asyncio-extending.po +++ b/library/asyncio-extending.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/asyncio-future.po b/library/asyncio-future.po index 3d6a24a5..f69b5371 100644 --- a/library/asyncio-future.po +++ b/library/asyncio-future.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -115,31 +115,31 @@ msgid "" "*loop* is not specified and there is no running event loop." msgstr "" -#: library/asyncio-future.rst:80 +#: library/asyncio-future.rst:81 msgid "Future Object" msgstr "" -#: library/asyncio-future.rst:84 +#: library/asyncio-future.rst:85 msgid "" "A Future represents an eventual result of an asynchronous operation. Not " "thread-safe." msgstr "" -#: library/asyncio-future.rst:87 +#: library/asyncio-future.rst:88 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. A Future can be awaited multiple times and the result is same." msgstr "" -#: library/asyncio-future.rst:92 +#: library/asyncio-future.rst:93 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 "" -#: library/asyncio-future.rst:97 +#: library/asyncio-future.rst:98 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." @@ -147,175 +147,175 @@ msgid "" "their own optimized implementations of a Future object." msgstr "" -#: library/asyncio-future.rst:103 +#: library/asyncio-future.rst:104 msgid "Added support for the :mod:`contextvars` module." msgstr "" -#: library/asyncio-future.rst:106 +#: library/asyncio-future.rst:107 msgid "" "Deprecation warning is emitted if *loop* is not specified and there is no " "running event loop." msgstr "" -#: library/asyncio-future.rst:112 +#: library/asyncio-future.rst:113 msgid "Return the result of the Future." msgstr "" -#: library/asyncio-future.rst:114 +#: library/asyncio-future.rst:115 msgid "" "If the Future is *done* and has a result set by the :meth:`set_result` " "method, the result value is returned." msgstr "" -#: library/asyncio-future.rst:117 +#: library/asyncio-future.rst:118 msgid "" "If the Future is *done* and has an exception set by the :meth:" "`set_exception` method, this method raises the exception." msgstr "" -#: library/asyncio-future.rst:208 +#: library/asyncio-future.rst:209 msgid "" "If the Future has been *cancelled*, this method raises a :exc:" "`CancelledError` exception." msgstr "" -#: library/asyncio-future.rst:123 +#: library/asyncio-future.rst:124 msgid "" "If the Future's result isn't yet available, this method raises an :exc:" "`InvalidStateError` exception." msgstr "" -#: library/asyncio-future.rst:128 +#: library/asyncio-future.rst:129 msgid "Mark the Future as *done* and set its result." msgstr "" -#: library/asyncio-future.rst:137 +#: library/asyncio-future.rst:138 msgid "" "Raises an :exc:`InvalidStateError` error if the Future is already *done*." msgstr "" -#: library/asyncio-future.rst:135 +#: library/asyncio-future.rst:136 msgid "Mark the Future as *done* and set an exception." msgstr "" -#: library/asyncio-future.rst:142 +#: library/asyncio-future.rst:143 msgid "Return ``True`` if the Future is *done*." msgstr "" -#: library/asyncio-future.rst:144 +#: library/asyncio-future.rst:145 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 "" -#: library/asyncio-future.rst:150 +#: library/asyncio-future.rst:151 msgid "Return ``True`` if the Future was *cancelled*." msgstr "" -#: library/asyncio-future.rst:152 +#: library/asyncio-future.rst:153 msgid "" "The method is usually used to check if a Future is not *cancelled* before " "setting a result or an exception for it::" msgstr "" -#: library/asyncio-future.rst:155 +#: library/asyncio-future.rst:156 msgid "" "if not fut.cancelled():\n" " fut.set_result(42)" msgstr "" -#: library/asyncio-future.rst:160 +#: library/asyncio-future.rst:161 msgid "Add a callback to be run when the Future is *done*." msgstr "" -#: library/asyncio-future.rst:162 +#: library/asyncio-future.rst:163 msgid "The *callback* is called with the Future object as its only argument." msgstr "" -#: library/asyncio-future.rst:165 +#: library/asyncio-future.rst:166 msgid "" "If the Future is already *done* when this method is called, the callback is " "scheduled with :meth:`loop.call_soon`." msgstr "" -#: library/asyncio-future.rst:168 +#: library/asyncio-future.rst:169 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 "" -#: library/asyncio-future.rst:172 +#: library/asyncio-future.rst:173 msgid "" ":func:`functools.partial` can be used to pass parameters to the callback, e." "g.::" msgstr "" -#: library/asyncio-future.rst:175 +#: library/asyncio-future.rst:176 msgid "" "# Call 'print(\"Future:\", fut)' when \"fut\" is done.\n" "fut.add_done_callback(\n" " functools.partial(print, \"Future:\"))" msgstr "" -#: library/asyncio-future.rst:179 +#: library/asyncio-future.rst:180 msgid "" "The *context* keyword-only parameter was added. See :pep:`567` for more " "details." msgstr "" -#: library/asyncio-future.rst:185 +#: library/asyncio-future.rst:186 msgid "Remove *callback* from the callbacks list." msgstr "" -#: library/asyncio-future.rst:187 +#: library/asyncio-future.rst:188 msgid "" "Returns the number of callbacks removed, which is typically 1, unless a " "callback was added more than once." msgstr "" -#: library/asyncio-future.rst:192 +#: library/asyncio-future.rst:193 msgid "Cancel the Future and schedule callbacks." msgstr "" -#: library/asyncio-future.rst:194 +#: library/asyncio-future.rst:195 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 "" -#: library/asyncio-future.rst:198 +#: library/asyncio-future.rst:199 msgid "Added the *msg* parameter." msgstr "" -#: library/asyncio-future.rst:203 +#: library/asyncio-future.rst:204 msgid "Return the exception that was set on this Future." msgstr "" -#: library/asyncio-future.rst:205 +#: library/asyncio-future.rst:206 msgid "" "The exception (or ``None`` if no exception was set) is returned only if the " "Future is *done*." msgstr "" -#: library/asyncio-future.rst:211 +#: library/asyncio-future.rst:212 msgid "" "If the Future isn't *done* yet, this method raises an :exc:" "`InvalidStateError` exception." msgstr "" -#: library/asyncio-future.rst:216 +#: library/asyncio-future.rst:217 msgid "Return the event loop the Future object is bound to." msgstr "" -#: library/asyncio-future.rst:223 +#: library/asyncio-future.rst:224 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 "" -#: library/asyncio-future.rst:227 +#: library/asyncio-future.rst:228 msgid "" "async def set_after(fut, delay, value):\n" " # Sleep for *delay* seconds.\n" @@ -346,43 +346,43 @@ msgid "" "asyncio.run(main())" msgstr "" -#: library/asyncio-future.rst:258 +#: library/asyncio-future.rst:259 msgid "" "The Future object was designed to mimic :class:`concurrent.futures.Future`. " "Key differences include:" msgstr "" -#: library/asyncio-future.rst:261 +#: library/asyncio-future.rst:262 msgid "" "unlike asyncio Futures, :class:`concurrent.futures.Future` instances cannot " "be awaited." msgstr "" -#: library/asyncio-future.rst:264 +#: library/asyncio-future.rst:265 msgid "" ":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` do not " "accept the *timeout* argument." msgstr "" -#: library/asyncio-future.rst:267 +#: library/asyncio-future.rst:268 msgid "" ":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` raise an :" "exc:`InvalidStateError` exception when the Future is not *done*." msgstr "" -#: library/asyncio-future.rst:271 +#: library/asyncio-future.rst:272 msgid "" "Callbacks registered with :meth:`asyncio.Future.add_done_callback` are not " "called immediately. They are scheduled with :meth:`loop.call_soon` instead." msgstr "" -#: library/asyncio-future.rst:275 +#: library/asyncio-future.rst:276 msgid "" "asyncio Future is not compatible with the :func:`concurrent.futures.wait` " "and :func:`concurrent.futures.as_completed` functions." msgstr "" -#: library/asyncio-future.rst:279 +#: library/asyncio-future.rst:280 msgid "" ":meth:`asyncio.Future.cancel` accepts an optional ``msg`` argument, but :" "meth:`concurrent.futures.Future.cancel` does not." diff --git a/library/asyncio-graph.po b/library/asyncio-graph.po index abb487f6..00868779 100644 --- a/library/asyncio-graph.po +++ b/library/asyncio-graph.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/asyncio-llapi-index.po b/library/asyncio-llapi-index.po index 6013c83e..1a18021d 100644 --- a/library/asyncio-llapi-index.po +++ b/library/asyncio-llapi-index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/asyncio-platforms.po b/library/asyncio-platforms.po index 6e8ba321..a4050f39 100644 --- a/library/asyncio-platforms.po +++ b/library/asyncio-platforms.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po index 0fd3d961..e423c76e 100644 --- a/library/asyncio-policy.po +++ b/library/asyncio-policy.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/asyncio-protocol.po b/library/asyncio-protocol.po index 000bd756..a14d4af1 100644 --- a/library/asyncio-protocol.po +++ b/library/asyncio-protocol.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -527,19 +527,19 @@ msgstr "" #: library/asyncio-protocol.rst:393 msgid "" -"``0``: readable streaming transport of the standard input (*stdin*), or :" +"``0``: writable streaming transport of the standard input (*stdin*), or :" "const:`None` if the subprocess was not created with ``stdin=PIPE``" msgstr "" #: library/asyncio-protocol.rst:395 msgid "" -"``1``: writable streaming transport of the standard output (*stdout*), or :" +"``1``: readable streaming transport of the standard output (*stdout*), or :" "const:`None` if the subprocess was not created with ``stdout=PIPE``" msgstr "" #: library/asyncio-protocol.rst:397 msgid "" -"``2``: writable streaming transport of the standard error (*stderr*), or :" +"``2``: readable streaming transport of the standard error (*stderr*), or :" "const:`None` if the subprocess was not created with ``stderr=PIPE``" msgstr "" diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po index 71da97f9..dceb9017 100644 --- a/library/asyncio-queue.po +++ b/library/asyncio-queue.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-05 22:16+0300\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" @@ -175,42 +175,78 @@ msgid "Return the number of items in the queue." msgstr "Επιστρέφει τον αριθμό των αντικειμένων στην ουρά." #: library/asyncio-queue.rst:105 +msgid "Put a :class:`Queue` instance into a shutdown mode." +msgstr "Βάζει ένα στιγμιότυπο της :class:`Queue` σε λειτουργία τερματισμού." + +#: library/asyncio-queue.rst:107 msgid "" -"Shut down the queue, making :meth:`~Queue.get` and :meth:`~Queue.put` raise :" -"exc:`QueueShutDown`." +"The queue can no longer grow. Future calls to :meth:`~Queue.put` raise :exc:" +"`QueueShutDown`. Currently blocked callers of :meth:`~Queue.put` will be " +"unblocked and will raise :exc:`QueueShutDown` in the formerly blocked thread." msgstr "" -"Τερματίζει την ουρά, προκαλώντας την :meth:`~Queue.get` και :meth:`~Queue." -"put` κάνει raise την :exc:`QueueShutDown`." +"Η ουρά δεν μπορεί πλέον να μεγαλώσει. Μελλοντικές κλήσεις της :meth:`~Queue.put` " +"κάνουν raise την :exc:`QueueShutDown`. Οι τρέχοντες αποκλεισμένοι καλούντες της :" +"meth:`~Queue.put` θα αποδεσμευτούν και θα κάνουν raise την :exc:`QueueShutDown` " +"στο προηγουμένως αποκλεισμένο νήμα." -#: library/asyncio-queue.rst:108 +#: library/asyncio-queue.rst:112 msgid "" -"By default, :meth:`~Queue.get` on a shut down queue will only raise once the " -"queue is empty. Set *immediate* to true to make :meth:`~Queue.get` raise " -"immediately instead." +"If *immediate* is false (the default), the queue can be wound down normally " +"with :meth:`~Queue.get` calls to extract tasks that have already been loaded." msgstr "" -"Από προεπιλογή, η :meth:`~Queue.get` σε μια τερματισμένη ουρά θα κάνει raise " -"εξαίρεση μόνο όταν η ουρά είναι κενή. Ορίστε το *immediate* σε true για να " -"κάνετε την :meth:`~Queue.get` να εξάγει την εξαίρεση αμέσως αντί για " -"αργότερα." +"Αν το *immediate* είναι false (η προεπιλογή), η ουρά μπορεί να τερματιστεί " +"κανονικά με κλήσεις της :meth:`~Queue.get` για να εξαχθούν εργασίες που " +"έχουν ήδη φορτωθεί." -#: library/asyncio-queue.rst:112 +#: library/asyncio-queue.rst:116 +msgid "" +"And if :meth:`~Queue.task_done` is called for each remaining task, a " +"pending :meth:`~Queue.join` will be unblocked normally." +msgstr "" +"Και αν η :meth:`~Queue.task_done` κληθεί για κάθε υπόλοιπη εργασία, μια " +"εκκρεμής :meth:`~Queue.join` θα αποδεσμευτεί κανονικά." + +#: library/asyncio-queue.rst:119 msgid "" -"All blocked callers of :meth:`~Queue.put` and :meth:`~Queue.get` will be " -"unblocked. If *immediate* is true, a task will be marked as done for each " -"remaining item in the queue, which may unblock callers of :meth:`~Queue." -"join`." +"Once the queue is empty, future calls to :meth:`~Queue.get` will raise :exc:" +"`QueueShutDown`." msgstr "" -"Όλοι οι αποκλεισμένοι καλούντες των :meth:`~Queue.put` και :meth:`~Queue." -"get` θα αποδεσμευτούν. Αν το *immediate* είναι αληθές, μια εργασία θα " -"χαρακτηριστεί ως ολοκληρωμένη για κάθε εναπομείναν αντικείμενο στην ουρά, το " -"οποίο μπορεί να αποδεσμευτεί στους καλούντες της :meth:`~Queue.join`." +"Μόλις η ουρά είναι κενή, μελλοντικές κλήσεις της :meth:`~Queue.get` θα κάνουν " +"raise την :exc:`QueueShutDown`." -#: library/asyncio-queue.rst:121 +#: library/asyncio-queue.rst:122 +msgid "" +"If *immediate* is true, the queue is terminated immediately. The queue is " +"drained to be completely empty and the count of unfinished tasks is reduced " +"by the number of tasks drained. If unfinished tasks is zero, callers of :" +"meth:`~Queue.join` are unblocked. Also, blocked callers of :meth:`~Queue." +"get` are unblocked and will raise :exc:`QueueShutDown` because the queue is " +"empty." +msgstr "" +"Αν το *immediate* είναι true, η ουρά τερματίζεται αμέσως. Η ουρά αδειάζει " +"για να είναι εντελώς κενή και ο αριθμός των ημιτελών εργασιών μειώνεται κατά " +"τον αριθμό των εργασιών που αδειάστηκαν. Αν οι ημιτελείς εργασίες είναι μηδέν, " +"οι καλούντες της :meth:`~Queue.join` αποδεσμεύονται. Επίσης, οι αποκλεισμένοι " +"καλούντες της :meth:`~Queue.get` αποδεσμεύονται και θα κάνουν raise την :" +"exc:`QueueShutDown` επειδή η ουρά είναι κενή." + +#: library/asyncio-queue.rst:130 +msgid "" +"Use caution when using :meth:`~Queue.join` with *immediate* set to true. " +"This unblocks the join even when no work has been done on the tasks, " +"violating the usual invariant for joining a queue." +msgstr "" +"Χρησιμοποιήστε προσοχή όταν χρησιμοποιείτε την :meth:`~Queue.join` με το *immediate* " +"ορισμένο σε αληθές. Αυτό αποδεσμεύει την ένωση ακόμη και όταν δεν έχει γίνει " +"καμία εργασία στις εργασίες, παραβιάζοντας το συνηθισμένο αμετάβλητο για την ένωση " +"μιας ουράς." + +#: library/asyncio-queue.rst:138 msgid "Indicate that a formerly enqueued work item is complete." msgstr "" "Υποδεικνύει ότι μια εργασία που είχε προστεθεί στην ουρά έχει ολοκληρωθεί." -#: library/asyncio-queue.rst:123 +#: library/asyncio-queue.rst:140 msgid "" "Used by queue consumers. For each :meth:`~Queue.get` used to fetch a work " "item, a subsequent call to :meth:`task_done` tells the queue that the " @@ -221,7 +257,7 @@ msgstr "" "`task_done` ενημερώνει την ουρά ότι η επεξεργασία της εργασίας έχει " "ολοκληρωθεί." -#: library/asyncio-queue.rst:127 +#: library/asyncio-queue.rst:144 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 " @@ -232,15 +268,7 @@ msgstr "" "meth:`task_done` για κάθε αντικείμενο που είχε προστεθεί με :meth:`~Queue." "put` στην ουρά)." -#: library/asyncio-queue.rst:132 -msgid "" -"``shutdown(immediate=True)`` calls :meth:`task_done` for each remaining item " -"in the queue." -msgstr "" -"Το ``shutdown(immediate=True)`` καλεί τη :meth:`task_done` για κάθε υπόλοιπο " -"στοιχείο στην ουρά." - -#: library/asyncio-queue.rst:135 +#: library/asyncio-queue.rst:149 msgid "" "Raises :exc:`ValueError` if called more times than there were items placed " "in the queue." @@ -248,11 +276,11 @@ msgstr "" "Κάνει raise την :exc:`ValueError` εάν κληθεί περισσότερες φορές από όσες τα " "αντικείμενα που είχαν τοποθετηθεί στην ουρά." -#: library/asyncio-queue.rst:140 +#: library/asyncio-queue.rst:154 msgid "Priority Queue" msgstr "Σειρά Προτεραιότητας" -#: library/asyncio-queue.rst:144 +#: library/asyncio-queue.rst:158 msgid "" "A variant of :class:`Queue`; retrieves entries in priority order (lowest " "first)." @@ -260,15 +288,15 @@ msgstr "" "Μια παραλλαγή της :class:`Queue`; η οποία ανακτά τις καταχωρήσεις με σειρά " "προτεραιότητας (οι χαμηλότερες πρώτες)." -#: library/asyncio-queue.rst:147 +#: library/asyncio-queue.rst:161 msgid "Entries are typically tuples of the form ``(priority_number, data)``." msgstr "Οι καταχωρήσεις είναι συνήθως της μορφής ``(priority_number, data)``." -#: library/asyncio-queue.rst:152 +#: library/asyncio-queue.rst:166 msgid "LIFO Queue" msgstr "Ουρά LIFO" -#: library/asyncio-queue.rst:156 +#: library/asyncio-queue.rst:170 msgid "" "A variant of :class:`Queue` that retrieves most recently added entries first " "(last in, first out)." @@ -276,11 +304,11 @@ msgstr "" "Μια παραλλαγή της κλάσης :class:`Queue` που ανακτά τις πιο πρόσφατα " "προστιθέμενες καταχωρίσεις πρώτες (με τη λογική τελευταίος μέσα, πρώτος έξω)." -#: library/asyncio-queue.rst:161 +#: library/asyncio-queue.rst:175 msgid "Exceptions" msgstr "Εξαιρέσεις" -#: library/asyncio-queue.rst:165 +#: library/asyncio-queue.rst:179 msgid "" "This exception is raised when the :meth:`~Queue.get_nowait` method is called " "on an empty queue." @@ -288,7 +316,7 @@ msgstr "" "Αυτή η εξαίρεση γίνεται raise όταν η μέθοδος :meth:`~Queue.get_nowait` " "καλείται σε μια άδεια ουρά." -#: library/asyncio-queue.rst:171 +#: library/asyncio-queue.rst:185 msgid "" "Exception raised when the :meth:`~Queue.put_nowait` method is called on a " "queue that has reached its *maxsize*." @@ -296,7 +324,7 @@ msgstr "" "Εξαίρεση που γίνεται raise όταν η μέθοδος :meth:`~Queue.put_nowait` καλείται " "σε μια ουρά που έχει φτάσει στο *maxsize* της." -#: library/asyncio-queue.rst:177 +#: library/asyncio-queue.rst:191 msgid "" "Exception raised when :meth:`~Queue.put` or :meth:`~Queue.get` is called on " "a queue which has been shut down." @@ -304,18 +332,18 @@ msgstr "" "Εξαίρεση που γίνεται raise όταν η μέθοδος :meth:`~Queue.put` ή :meth:`~Queue." "get` καλείται σε μια ουρά που έχει τερματιστεί." -#: library/asyncio-queue.rst:184 +#: library/asyncio-queue.rst:198 msgid "Examples" msgstr "Παραδείγματα" -#: library/asyncio-queue.rst:188 +#: library/asyncio-queue.rst:202 msgid "" "Queues can be used to distribute workload between several concurrent tasks::" msgstr "" "Οι ουρές μπορούν να χρησιμοποιηθούν για τη διανομή εργασίας μεταξύ αρκετών " "παράλληλων εργασιών::" -#: library/asyncio-queue.rst:191 +#: library/asyncio-queue.rst:205 msgid "" "import asyncio\n" "import random\n" @@ -424,3 +452,31 @@ msgstr "" "\n" "\n" "asyncio.run(main())" + +#~ msgid "" +#~ "By default, :meth:`~Queue.get` on a shut down queue will only raise once " +#~ "the queue is empty. Set *immediate* to true to make :meth:`~Queue.get` " +#~ "raise immediately instead." +#~ msgstr "" +#~ "Από προεπιλογή, η :meth:`~Queue.get` σε μια τερματισμένη ουρά θα κάνει " +#~ "raise εξαίρεση μόνο όταν η ουρά είναι κενή. Ορίστε το *immediate* σε true " +#~ "για να κάνετε την :meth:`~Queue.get` να εξάγει την εξαίρεση αμέσως αντί " +#~ "για αργότερα." + +#~ msgid "" +#~ "All blocked callers of :meth:`~Queue.put` and :meth:`~Queue.get` will be " +#~ "unblocked. If *immediate* is true, a task will be marked as done for each " +#~ "remaining item in the queue, which may unblock callers of :meth:`~Queue." +#~ "join`." +#~ msgstr "" +#~ "Όλοι οι αποκλεισμένοι καλούντες των :meth:`~Queue.put` και :meth:`~Queue." +#~ "get` θα αποδεσμευτούν. Αν το *immediate* είναι αληθές, μια εργασία θα " +#~ "χαρακτηριστεί ως ολοκληρωμένη για κάθε εναπομείναν αντικείμενο στην ουρά, " +#~ "το οποίο μπορεί να αποδεσμευτεί στους καλούντες της :meth:`~Queue.join`." + +#~ msgid "" +#~ "``shutdown(immediate=True)`` calls :meth:`task_done` for each remaining " +#~ "item in the queue." +#~ msgstr "" +#~ "Το ``shutdown(immediate=True)`` καλεί τη :meth:`task_done` για κάθε " +#~ "υπόλοιπο στοιχείο στην ουρά." diff --git a/library/asyncio-runner.po b/library/asyncio-runner.po index 493b3b3b..51ad7d4f 100644 --- a/library/asyncio-runner.po +++ b/library/asyncio-runner.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po index c1f613b5..f9c09260 100644 --- a/library/asyncio-stream.po +++ b/library/asyncio-stream.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -36,7 +36,7 @@ msgstr "" msgid "Here is an example of a TCP echo client written using asyncio streams::" msgstr "" -#: library/asyncio-stream.rst:437 +#: library/asyncio-stream.rst:441 msgid "" "import asyncio\n" "\n" @@ -116,7 +116,7 @@ msgid "Removed the *loop* parameter." msgstr "" #: library/asyncio-stream.rst:131 library/asyncio-stream.rst:202 -#: library/asyncio-stream.rst:404 +#: library/asyncio-stream.rst:408 msgid "Added the *ssl_shutdown_timeout* parameter." msgstr "" @@ -348,77 +348,83 @@ msgid "" "until it can be sent." msgstr "" -#: library/asyncio-stream.rst:331 +#: library/asyncio-stream.rst:319 +msgid "" +"The *data* buffer should be a bytes, bytearray, or C-contiguous one-" +"dimensional memoryview object." +msgstr "" + +#: library/asyncio-stream.rst:335 msgid "The method should be used along with the ``drain()`` method::" msgstr "" -#: library/asyncio-stream.rst:321 +#: library/asyncio-stream.rst:324 msgid "" "stream.write(data)\n" "await stream.drain()" msgstr "" -#: library/asyncio-stream.rst:326 +#: library/asyncio-stream.rst:330 msgid "" "The method writes a list (or any iterable) of bytes to the underlying socket " "immediately. If that fails, the data is queued in an internal write buffer " "until it can be sent." msgstr "" -#: library/asyncio-stream.rst:333 +#: library/asyncio-stream.rst:337 msgid "" "stream.writelines(lines)\n" "await stream.drain()" msgstr "" -#: library/asyncio-stream.rst:338 +#: library/asyncio-stream.rst:342 msgid "The method closes the stream and the underlying socket." msgstr "" -#: library/asyncio-stream.rst:340 +#: library/asyncio-stream.rst:344 msgid "" "The method should be used, though not mandatory, along with the " "``wait_closed()`` method::" msgstr "" -#: library/asyncio-stream.rst:343 +#: library/asyncio-stream.rst:347 msgid "" "stream.close()\n" "await stream.wait_closed()" msgstr "" -#: library/asyncio-stream.rst:348 +#: library/asyncio-stream.rst:352 msgid "" "Return ``True`` if the underlying transport supports the :meth:`write_eof` " "method, ``False`` otherwise." msgstr "" -#: library/asyncio-stream.rst:353 +#: library/asyncio-stream.rst:357 msgid "" "Close the write end of the stream after the buffered write data is flushed." msgstr "" -#: library/asyncio-stream.rst:358 +#: library/asyncio-stream.rst:362 msgid "Return the underlying asyncio transport." msgstr "" -#: library/asyncio-stream.rst:362 +#: library/asyncio-stream.rst:366 msgid "" "Access optional transport information; see :meth:`BaseTransport." "get_extra_info` for details." msgstr "" -#: library/asyncio-stream.rst:368 +#: library/asyncio-stream.rst:372 msgid "Wait until it is appropriate to resume writing to the stream. Example::" msgstr "" -#: library/asyncio-stream.rst:371 +#: library/asyncio-stream.rst:375 msgid "" "writer.write(data)\n" "await writer.drain()" msgstr "" -#: library/asyncio-stream.rst:374 +#: library/asyncio-stream.rst:378 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()* " @@ -427,82 +433,82 @@ msgid "" "`drain` returns immediately." msgstr "" -#: library/asyncio-stream.rst:385 +#: library/asyncio-stream.rst:389 msgid "Upgrade an existing stream-based connection to TLS." msgstr "" -#: library/asyncio-stream.rst:387 +#: library/asyncio-stream.rst:391 msgid "Parameters:" msgstr "" -#: library/asyncio-stream.rst:389 +#: library/asyncio-stream.rst:393 msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." msgstr "" -#: library/asyncio-stream.rst:391 +#: library/asyncio-stream.rst:395 msgid "" "*server_hostname*: sets or overrides the host name that the target server's " "certificate will be matched against." msgstr "" -#: library/asyncio-stream.rst:394 +#: library/asyncio-stream.rst:398 msgid "" "*ssl_handshake_timeout* is the time in seconds to wait for the TLS handshake " "to complete before aborting the connection. ``60.0`` seconds if ``None`` " "(default)." msgstr "" -#: library/asyncio-stream.rst:398 +#: library/asyncio-stream.rst:402 msgid "" "*ssl_shutdown_timeout* is the time in seconds to wait for the SSL shutdown " "to complete before aborting the connection. ``30.0`` seconds if ``None`` " "(default)." msgstr "" -#: library/asyncio-stream.rst:410 +#: library/asyncio-stream.rst:414 msgid "" "Return ``True`` if the stream is closed or in the process of being closed." msgstr "" -#: library/asyncio-stream.rst:418 +#: library/asyncio-stream.rst:422 msgid "Wait until the stream is closed." msgstr "" -#: library/asyncio-stream.rst:420 +#: library/asyncio-stream.rst:424 msgid "" "Should be called after :meth:`close` to wait until the underlying connection " "is closed, ensuring that all data has been flushed before e.g. exiting the " "program." msgstr "" -#: library/asyncio-stream.rst:428 +#: library/asyncio-stream.rst:432 msgid "Examples" msgstr "" -#: library/asyncio-stream.rst:433 +#: library/asyncio-stream.rst:437 msgid "TCP echo client using streams" msgstr "" -#: library/asyncio-stream.rst:435 +#: library/asyncio-stream.rst:439 msgid "TCP echo client using the :func:`asyncio.open_connection` function::" msgstr "" -#: library/asyncio-stream.rst:459 +#: library/asyncio-stream.rst:463 msgid "" "The :ref:`TCP echo client protocol " "` example uses the low-level :meth:" "`loop.create_connection` method." msgstr "" -#: library/asyncio-stream.rst:466 +#: library/asyncio-stream.rst:470 msgid "TCP echo server using streams" msgstr "" -#: library/asyncio-stream.rst:468 +#: library/asyncio-stream.rst:472 msgid "TCP echo server using the :func:`asyncio.start_server` function::" msgstr "" -#: library/asyncio-stream.rst:470 +#: library/asyncio-stream.rst:474 msgid "" "import asyncio\n" "\n" @@ -534,23 +540,23 @@ msgid "" "asyncio.run(main())" msgstr "" -#: library/asyncio-stream.rst:502 +#: library/asyncio-stream.rst:506 msgid "" "The :ref:`TCP echo server protocol " "` example uses the :meth:`loop." "create_server` method." msgstr "" -#: library/asyncio-stream.rst:507 +#: library/asyncio-stream.rst:511 msgid "Get HTTP headers" msgstr "" -#: library/asyncio-stream.rst:509 +#: library/asyncio-stream.rst:513 msgid "" "Simple example querying HTTP headers of the URL passed on the command line::" msgstr "" -#: library/asyncio-stream.rst:511 +#: library/asyncio-stream.rst:515 msgid "" "import asyncio\n" "import urllib.parse\n" @@ -589,33 +595,33 @@ msgid "" "asyncio.run(print_http_headers(url))" msgstr "" -#: library/asyncio-stream.rst:548 +#: library/asyncio-stream.rst:552 msgid "Usage::" msgstr "" -#: library/asyncio-stream.rst:550 +#: library/asyncio-stream.rst:554 msgid "python example.py http://example.com/path/page.html" msgstr "" -#: library/asyncio-stream.rst:552 +#: library/asyncio-stream.rst:556 msgid "or with HTTPS::" msgstr "" -#: library/asyncio-stream.rst:554 +#: library/asyncio-stream.rst:558 msgid "python example.py https://example.com/path/page.html" msgstr "" -#: library/asyncio-stream.rst:560 +#: library/asyncio-stream.rst:564 msgid "Register an open socket to wait for data using streams" msgstr "" -#: library/asyncio-stream.rst:562 +#: library/asyncio-stream.rst:566 msgid "" "Coroutine waiting until a socket receives data using the :func:" "`open_connection` function::" msgstr "" -#: library/asyncio-stream.rst:565 +#: library/asyncio-stream.rst:569 msgid "" "import asyncio\n" "import socket\n" @@ -648,14 +654,14 @@ msgid "" "asyncio.run(wait_for_data())" msgstr "" -#: library/asyncio-stream.rst:597 +#: library/asyncio-stream.rst:601 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 "" -#: library/asyncio-stream.rst:601 +#: library/asyncio-stream.rst:605 msgid "" "The :ref:`watch a file descriptor for read events " "` example uses the low-level :meth:`loop." diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po index b21eaf82..c4b7da95 100644 --- a/library/asyncio-subprocess.po +++ b/library/asyncio-subprocess.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -101,7 +101,7 @@ msgstr "" msgid "Create a subprocess." msgstr "" -#: library/asyncio-subprocess.rst:70 library/asyncio-subprocess.rst:89 +#: library/asyncio-subprocess.rst:70 library/asyncio-subprocess.rst:92 msgid "" "The *limit* argument sets the buffer limit for :class:`StreamReader` " "wrappers for :attr:`~asyncio.subprocess.Process.stdout` and :attr:`~asyncio." @@ -109,7 +109,7 @@ msgid "" "*stdout* and *stderr* arguments)." msgstr "" -#: library/asyncio-subprocess.rst:74 library/asyncio-subprocess.rst:93 +#: library/asyncio-subprocess.rst:74 library/asyncio-subprocess.rst:96 msgid "Return a :class:`~asyncio.subprocess.Process` instance." msgstr "" @@ -118,20 +118,26 @@ msgid "" "See the documentation of :meth:`loop.subprocess_exec` for other parameters." msgstr "" -#: library/asyncio-subprocess.rst:79 library/asyncio-subprocess.rst:107 +#: library/asyncio-subprocess.rst:79 library/asyncio-subprocess.rst:101 +msgid "" +"If the process object is garbage collected while the process is still " +"running, the child process will be killed." +msgstr "" + +#: library/asyncio-subprocess.rst:82 library/asyncio-subprocess.rst:113 msgid "Removed the *loop* parameter." msgstr "" -#: library/asyncio-subprocess.rst:87 +#: library/asyncio-subprocess.rst:90 msgid "Run the *cmd* shell command." msgstr "" -#: library/asyncio-subprocess.rst:95 +#: library/asyncio-subprocess.rst:98 msgid "" "See the documentation of :meth:`loop.subprocess_shell` for other parameters." msgstr "" -#: library/asyncio-subprocess.rst:100 +#: library/asyncio-subprocess.rst:106 msgid "" "It is the application's responsibility to ensure that all whitespace and " "special characters are quoted appropriately to avoid `shell injection " @@ -141,14 +147,14 @@ msgid "" "be used to construct shell commands." msgstr "" -#: library/asyncio-subprocess.rst:112 +#: library/asyncio-subprocess.rst:118 msgid "" "Subprocesses are available for Windows if a :class:`ProactorEventLoop` is " "used. See :ref:`Subprocess Support on Windows ` " "for details." msgstr "" -#: library/asyncio-subprocess.rst:118 +#: library/asyncio-subprocess.rst:124 msgid "" "asyncio also has the following *low-level* APIs to work with subprocesses: :" "meth:`loop.subprocess_exec`, :meth:`loop.subprocess_shell`, :meth:`loop." @@ -157,22 +163,22 @@ msgid "" "Protocols `." msgstr "" -#: library/asyncio-subprocess.rst:126 +#: library/asyncio-subprocess.rst:132 msgid "Constants" msgstr "" -#: library/asyncio-subprocess.rst:131 +#: library/asyncio-subprocess.rst:137 msgid "Can be passed to the *stdin*, *stdout* or *stderr* parameters." msgstr "" -#: library/asyncio-subprocess.rst:133 +#: library/asyncio-subprocess.rst:139 msgid "" "If *PIPE* is passed to *stdin* argument, the :attr:`Process.stdin ` attribute will point to a :class:`~asyncio." "StreamWriter` instance." msgstr "" -#: library/asyncio-subprocess.rst:137 +#: library/asyncio-subprocess.rst:143 msgid "" "If *PIPE* is passed to *stdout* or *stderr* arguments, the :attr:`Process." "stdout ` and :attr:`Process.stderr " @@ -180,24 +186,24 @@ msgid "" "`~asyncio.StreamReader` instances." msgstr "" -#: library/asyncio-subprocess.rst:145 +#: library/asyncio-subprocess.rst:151 msgid "" "Special value that can be used as the *stderr* argument and indicates that " "standard error should be redirected into standard output." msgstr "" -#: library/asyncio-subprocess.rst:151 +#: library/asyncio-subprocess.rst:157 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 "" -#: library/asyncio-subprocess.rst:157 +#: library/asyncio-subprocess.rst:163 msgid "Interacting with Subprocesses" msgstr "" -#: library/asyncio-subprocess.rst:159 +#: library/asyncio-subprocess.rst:165 msgid "" "Both :func:`create_subprocess_exec` and :func:`create_subprocess_shell` " "functions return instances of the *Process* class. *Process* is a high-" @@ -205,62 +211,62 @@ msgid "" "their completion." msgstr "" -#: library/asyncio-subprocess.rst:167 +#: library/asyncio-subprocess.rst:173 msgid "" "An object that wraps OS processes created by the :func:`~asyncio." "create_subprocess_exec` and :func:`~asyncio.create_subprocess_shell` " "functions." msgstr "" -#: library/asyncio-subprocess.rst:171 +#: library/asyncio-subprocess.rst:177 msgid "" "This class is designed to have a similar API to the :class:`subprocess." "Popen` class, but there are some notable differences:" msgstr "" -#: library/asyncio-subprocess.rst:175 +#: library/asyncio-subprocess.rst:181 msgid "" "unlike Popen, Process instances do not have an equivalent to the :meth:" "`~subprocess.Popen.poll` method;" msgstr "" -#: library/asyncio-subprocess.rst:178 +#: library/asyncio-subprocess.rst:184 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 "" -#: library/asyncio-subprocess.rst:182 +#: library/asyncio-subprocess.rst:188 msgid "" "the :meth:`Process.wait() ` method is " "asynchronous, whereas :meth:`subprocess.Popen.wait` method is implemented as " "a blocking busy loop;" msgstr "" -#: library/asyncio-subprocess.rst:186 +#: library/asyncio-subprocess.rst:192 msgid "the *universal_newlines* parameter is not supported." msgstr "" -#: library/asyncio-subprocess.rst:188 +#: library/asyncio-subprocess.rst:194 msgid "This class is :ref:`not thread safe `." msgstr "" -#: library/asyncio-subprocess.rst:190 +#: library/asyncio-subprocess.rst:196 msgid "" "See also the :ref:`Subprocess and Threads ` " "section." msgstr "" -#: library/asyncio-subprocess.rst:196 +#: library/asyncio-subprocess.rst:202 msgid "Wait for the child process to terminate." msgstr "" -#: library/asyncio-subprocess.rst:198 +#: library/asyncio-subprocess.rst:204 msgid "Set and return the :attr:`returncode` attribute." msgstr "" -#: library/asyncio-subprocess.rst:202 +#: library/asyncio-subprocess.rst:208 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 " @@ -268,37 +274,37 @@ msgid "" "using pipes to avoid this condition." msgstr "" -#: library/asyncio-subprocess.rst:211 +#: library/asyncio-subprocess.rst:217 msgid "Interact with process:" msgstr "" -#: library/asyncio-subprocess.rst:213 +#: library/asyncio-subprocess.rst:219 msgid "send data to *stdin* (if *input* is not ``None``);" msgstr "" -#: library/asyncio-subprocess.rst:214 +#: library/asyncio-subprocess.rst:220 msgid "closes *stdin*;" msgstr "" -#: library/asyncio-subprocess.rst:215 +#: library/asyncio-subprocess.rst:221 msgid "read data from *stdout* and *stderr*, until EOF is reached;" msgstr "" -#: library/asyncio-subprocess.rst:216 +#: library/asyncio-subprocess.rst:222 msgid "wait for process to terminate." msgstr "" -#: library/asyncio-subprocess.rst:218 +#: library/asyncio-subprocess.rst:224 msgid "" "The optional *input* argument is the data (:class:`bytes` object) that will " "be sent to the child process." msgstr "" -#: library/asyncio-subprocess.rst:221 +#: library/asyncio-subprocess.rst:227 msgid "Return a tuple ``(stdout_data, stderr_data)``." msgstr "" -#: library/asyncio-subprocess.rst:223 +#: library/asyncio-subprocess.rst:229 msgid "" "If either :exc:`BrokenPipeError` or :exc:`ConnectionResetError` exception is " "raised when writing *input* into *stdin*, the exception is ignored. This " @@ -306,7 +312,7 @@ msgid "" "*stdin*." msgstr "" -#: library/asyncio-subprocess.rst:228 +#: library/asyncio-subprocess.rst:234 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 " @@ -314,76 +320,76 @@ msgid "" "``stdout=PIPE`` and/or ``stderr=PIPE`` arguments." msgstr "" -#: library/asyncio-subprocess.rst:234 +#: library/asyncio-subprocess.rst:240 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 "" -#: library/asyncio-subprocess.rst:239 +#: library/asyncio-subprocess.rst:245 msgid "*stdin* gets closed when ``input=None`` too." msgstr "" -#: library/asyncio-subprocess.rst:243 +#: library/asyncio-subprocess.rst:249 msgid "Sends the signal *signal* to the child process." msgstr "" -#: library/asyncio-subprocess.rst:247 +#: library/asyncio-subprocess.rst:253 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 "" -#: library/asyncio-subprocess.rst:254 +#: library/asyncio-subprocess.rst:260 msgid "Stop the child process." msgstr "" -#: library/asyncio-subprocess.rst:256 +#: library/asyncio-subprocess.rst:262 msgid "" "On POSIX systems this method sends :py:const:`~signal.SIGTERM` to the child " "process." msgstr "" -#: library/asyncio-subprocess.rst:259 +#: library/asyncio-subprocess.rst:265 msgid "" "On Windows the Win32 API function :c:func:`!TerminateProcess` is called to " "stop the child process." msgstr "" -#: library/asyncio-subprocess.rst:264 +#: library/asyncio-subprocess.rst:270 msgid "Kill the child process." msgstr "" -#: library/asyncio-subprocess.rst:266 +#: library/asyncio-subprocess.rst:272 msgid "" "On POSIX systems this method sends :py:data:`~signal.SIGKILL` to the child " "process." msgstr "" -#: library/asyncio-subprocess.rst:269 +#: library/asyncio-subprocess.rst:275 msgid "On Windows this method is an alias for :meth:`terminate`." msgstr "" -#: library/asyncio-subprocess.rst:273 +#: library/asyncio-subprocess.rst:279 msgid "" "Standard input stream (:class:`~asyncio.StreamWriter`) or ``None`` if the " "process was created with ``stdin=None``." msgstr "" -#: library/asyncio-subprocess.rst:278 +#: library/asyncio-subprocess.rst:284 msgid "" "Standard output stream (:class:`~asyncio.StreamReader`) or ``None`` if the " "process was created with ``stdout=None``." msgstr "" -#: library/asyncio-subprocess.rst:283 +#: library/asyncio-subprocess.rst:289 msgid "" "Standard error stream (:class:`~asyncio.StreamReader`) or ``None`` if the " "process was created with ``stderr=None``." msgstr "" -#: library/asyncio-subprocess.rst:288 +#: library/asyncio-subprocess.rst:294 msgid "" "Use the :meth:`communicate` method rather than :attr:`process.stdin.write() " "`, :attr:`await process.stdout.read() ` or :attr:`await " @@ -391,76 +397,76 @@ msgid "" "pausing reading or writing and blocking the child process." msgstr "" -#: library/asyncio-subprocess.rst:297 +#: library/asyncio-subprocess.rst:303 msgid "Process identification number (PID)." msgstr "" -#: library/asyncio-subprocess.rst:299 +#: library/asyncio-subprocess.rst:305 msgid "" "Note that for processes created by the :func:`~asyncio." "create_subprocess_shell` function, this attribute is the PID of the spawned " "shell." msgstr "" -#: library/asyncio-subprocess.rst:304 +#: library/asyncio-subprocess.rst:310 msgid "Return code of the process when it exits." msgstr "" -#: library/asyncio-subprocess.rst:306 +#: library/asyncio-subprocess.rst:312 msgid "A ``None`` value indicates that the process has not terminated yet." msgstr "" -#: library/asyncio-subprocess.rst:308 +#: library/asyncio-subprocess.rst:314 msgid "" "A negative value ``-N`` indicates that the child was terminated by signal " "``N`` (POSIX only)." msgstr "" -#: library/asyncio-subprocess.rst:315 +#: library/asyncio-subprocess.rst:321 msgid "Subprocess and Threads" msgstr "" -#: library/asyncio-subprocess.rst:317 +#: library/asyncio-subprocess.rst:323 msgid "" "Standard asyncio event loop supports running subprocesses from different " "threads by default." msgstr "" -#: library/asyncio-subprocess.rst:320 +#: library/asyncio-subprocess.rst:326 msgid "" "On Windows subprocesses are provided by :class:`ProactorEventLoop` only " "(default), :class:`SelectorEventLoop` has no subprocess support." msgstr "" -#: library/asyncio-subprocess.rst:323 +#: library/asyncio-subprocess.rst:329 msgid "" "Note that alternative event loop implementations might have own limitations; " "please refer to their documentation." msgstr "" -#: library/asyncio-subprocess.rst:328 +#: library/asyncio-subprocess.rst:334 msgid "" "The :ref:`Concurrency and multithreading in asyncio ` section." msgstr "" -#: library/asyncio-subprocess.rst:333 +#: library/asyncio-subprocess.rst:339 msgid "Examples" msgstr "" -#: library/asyncio-subprocess.rst:335 +#: library/asyncio-subprocess.rst:341 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 "" -#: library/asyncio-subprocess.rst:341 +#: library/asyncio-subprocess.rst:347 msgid "" "The subprocess is created by the :func:`create_subprocess_exec` function::" msgstr "" -#: library/asyncio-subprocess.rst:344 +#: library/asyncio-subprocess.rst:350 msgid "" "import asyncio\n" "import sys\n" @@ -486,7 +492,7 @@ msgid "" "print(f\"Current date: {date}\")" msgstr "" -#: library/asyncio-subprocess.rst:368 +#: library/asyncio-subprocess.rst:374 msgid "" "See also the :ref:`same example ` written " "using low-level APIs." diff --git a/library/asyncio-sync.po b/library/asyncio-sync.po index e424e14a..5dc6d0c9 100644 --- a/library/asyncio-sync.po +++ b/library/asyncio-sync.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -232,8 +232,8 @@ msgstr "" #: library/asyncio-sync.rst:160 msgid "" -"Tasks awaiting on :meth:`~Event.wait` will now block until the :meth:`~Event." -"set` method is called again." +"Subsequent tasks awaiting on :meth:`~Event.wait` will now block until the :" +"meth:`~Event.set` method is called again." msgstr "" #: library/asyncio-sync.rst:165 diff --git a/library/asyncio-task.po b/library/asyncio-task.po index dc280a69..c7eec9c3 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -408,11 +408,11 @@ msgid "" " task.add_done_callback(background_tasks.discard)" msgstr "" -#: library/asyncio-task.rst:1250 +#: library/asyncio-task.rst:1251 msgid "Added the *name* parameter." msgstr "" -#: library/asyncio-task.rst:1257 +#: library/asyncio-task.rst:1258 msgid "Added the *context* parameter." msgstr "" @@ -1532,17 +1532,17 @@ msgstr "" msgid "Return ``True`` if *obj* is a coroutine object." msgstr "" -#: library/asyncio-task.rst:1198 +#: library/asyncio-task.rst:1199 msgid "Task Object" msgstr "" -#: library/asyncio-task.rst:1202 +#: library/asyncio-task.rst:1203 msgid "" "A :class:`Future-like ` object that runs a Python :ref:`coroutine " "`. Not thread-safe." msgstr "" -#: library/asyncio-task.rst:1205 +#: library/asyncio-task.rst:1206 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 " @@ -1550,21 +1550,21 @@ msgid "" "wrapped coroutine resumes." msgstr "" -#: library/asyncio-task.rst:1211 +#: library/asyncio-task.rst:1212 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 "" -#: library/asyncio-task.rst:1216 +#: library/asyncio-task.rst:1217 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 "" -#: library/asyncio-task.rst:1221 +#: library/asyncio-task.rst:1222 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 " @@ -1572,20 +1572,20 @@ msgid "" "cancellation, the Future object will be cancelled." msgstr "" -#: library/asyncio-task.rst:1226 +#: library/asyncio-task.rst:1227 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 "" -#: library/asyncio-task.rst:1231 +#: library/asyncio-task.rst:1232 msgid "" ":class:`asyncio.Task` inherits from :class:`Future` all of its APIs except :" "meth:`Future.set_result` and :meth:`Future.set_exception`." msgstr "" -#: library/asyncio-task.rst:1235 +#: library/asyncio-task.rst:1236 msgid "" "An optional keyword-only *context* argument allows specifying a custom :" "class:`contextvars.Context` for the *coro* to run in. If no *context* is " @@ -1593,7 +1593,7 @@ msgid "" "in the copied context." msgstr "" -#: library/asyncio-task.rst:1240 +#: library/asyncio-task.rst:1241 msgid "" "An optional keyword-only *eager_start* argument allows eagerly starting the " "execution of the :class:`asyncio.Task` at task creation time. If set to " @@ -1603,96 +1603,96 @@ msgid "" "eagerly and will skip scheduling to the event loop." msgstr "" -#: library/asyncio-task.rst:1247 +#: library/asyncio-task.rst:1248 msgid "Added support for the :mod:`contextvars` module." msgstr "" -#: library/asyncio-task.rst:1253 +#: library/asyncio-task.rst:1254 msgid "" "Deprecation warning is emitted if *loop* is not specified and there is no " "running event loop." msgstr "" -#: library/asyncio-task.rst:1260 +#: library/asyncio-task.rst:1261 msgid "Added the *eager_start* parameter." msgstr "" -#: library/asyncio-task.rst:1265 +#: library/asyncio-task.rst:1266 msgid "Return ``True`` if the Task is *done*." msgstr "" -#: library/asyncio-task.rst:1267 +#: library/asyncio-task.rst:1268 msgid "" "A Task is *done* when the wrapped coroutine either returned a value, raised " "an exception, or the Task was cancelled." msgstr "" -#: library/asyncio-task.rst:1272 +#: library/asyncio-task.rst:1273 msgid "Return the result of the Task." msgstr "" -#: library/asyncio-task.rst:1274 +#: library/asyncio-task.rst:1275 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 "" -#: library/asyncio-task.rst:1292 +#: library/asyncio-task.rst:1293 msgid "" "If the Task has been *cancelled*, this method raises a :exc:`CancelledError` " "exception." msgstr "" -#: library/asyncio-task.rst:1281 +#: library/asyncio-task.rst:1282 msgid "" "If the Task's result isn't yet available, this method raises an :exc:" "`InvalidStateError` exception." msgstr "" -#: library/asyncio-task.rst:1286 +#: library/asyncio-task.rst:1287 msgid "Return the exception of the Task." msgstr "" -#: library/asyncio-task.rst:1288 +#: library/asyncio-task.rst:1289 msgid "" "If the wrapped coroutine raised an exception that exception is returned. If " "the wrapped coroutine returned normally this method returns ``None``." msgstr "" -#: library/asyncio-task.rst:1295 +#: library/asyncio-task.rst:1296 msgid "" "If the Task isn't *done* yet, this method raises an :exc:`InvalidStateError` " "exception." msgstr "" -#: library/asyncio-task.rst:1300 +#: library/asyncio-task.rst:1301 msgid "Add a callback to be run when the Task is *done*." msgstr "" -#: library/asyncio-task.rst:1311 +#: library/asyncio-task.rst:1312 msgid "This method should only be used in low-level callback-based code." msgstr "" -#: library/asyncio-task.rst:1304 +#: library/asyncio-task.rst:1305 msgid "" "See the documentation of :meth:`Future.add_done_callback` for more details." msgstr "" -#: library/asyncio-task.rst:1309 +#: library/asyncio-task.rst:1310 msgid "Remove *callback* from the callbacks list." msgstr "" -#: library/asyncio-task.rst:1313 +#: library/asyncio-task.rst:1314 msgid "" "See the documentation of :meth:`Future.remove_done_callback` for more " "details." msgstr "" -#: library/asyncio-task.rst:1318 +#: library/asyncio-task.rst:1319 msgid "Return the list of stack frames for this Task." msgstr "" -#: library/asyncio-task.rst:1320 +#: library/asyncio-task.rst:1321 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, " @@ -1700,15 +1700,15 @@ msgid "" "this returns the list of traceback frames." msgstr "" -#: library/asyncio-task.rst:1326 +#: library/asyncio-task.rst:1327 msgid "The frames are always ordered from oldest to newest." msgstr "" -#: library/asyncio-task.rst:1328 +#: library/asyncio-task.rst:1329 msgid "Only one stack frame is returned for a suspended coroutine." msgstr "" -#: library/asyncio-task.rst:1330 +#: library/asyncio-task.rst:1331 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 " @@ -1717,87 +1717,87 @@ msgid "" "are returned. (This matches the behavior of the traceback module.)" msgstr "" -#: library/asyncio-task.rst:1339 +#: library/asyncio-task.rst:1340 msgid "Print the stack or traceback for this Task." msgstr "" -#: library/asyncio-task.rst:1341 +#: library/asyncio-task.rst:1342 msgid "" "This produces output similar to that of the traceback module for the frames " "retrieved by :meth:`get_stack`." msgstr "" -#: library/asyncio-task.rst:1344 +#: library/asyncio-task.rst:1345 msgid "The *limit* argument is passed to :meth:`get_stack` directly." msgstr "" -#: library/asyncio-task.rst:1346 +#: library/asyncio-task.rst:1347 msgid "" "The *file* argument is an I/O stream to which the output is written; by " "default output is written to :data:`sys.stdout`." msgstr "" -#: library/asyncio-task.rst:1351 +#: library/asyncio-task.rst:1352 msgid "Return the coroutine object wrapped by the :class:`Task`." msgstr "" -#: library/asyncio-task.rst:1355 +#: library/asyncio-task.rst:1356 msgid "" "This will return ``None`` for Tasks which have already completed eagerly. " "See the :ref:`Eager Task Factory `." msgstr "" -#: library/asyncio-task.rst:1362 +#: library/asyncio-task.rst:1363 msgid "Newly added eager task execution means result may be ``None``." msgstr "" -#: library/asyncio-task.rst:1366 +#: library/asyncio-task.rst:1367 msgid "" "Return the :class:`contextvars.Context` object associated with the task." msgstr "" -#: library/asyncio-task.rst:1373 +#: library/asyncio-task.rst:1374 msgid "Return the name of the Task." msgstr "" -#: library/asyncio-task.rst:1375 +#: library/asyncio-task.rst:1376 msgid "" "If no name has been explicitly assigned to the Task, the default asyncio " "Task implementation generates a default name during instantiation." msgstr "" -#: library/asyncio-task.rst:1383 +#: library/asyncio-task.rst:1384 msgid "Set the name of the Task." msgstr "" -#: library/asyncio-task.rst:1385 +#: library/asyncio-task.rst:1386 msgid "" "The *value* argument can be any object, which is then converted to a string." msgstr "" -#: library/asyncio-task.rst:1388 +#: library/asyncio-task.rst:1389 msgid "" "In the default Task implementation, the name will be visible in the :func:" "`repr` output of a task object." msgstr "" -#: library/asyncio-task.rst:1395 +#: library/asyncio-task.rst:1396 msgid "Request the Task to be cancelled." msgstr "" -#: library/asyncio-task.rst:1397 +#: library/asyncio-task.rst:1398 msgid "" "If the Task is already *done* or *cancelled*, return ``False``, otherwise, " "return ``True``." msgstr "" -#: library/asyncio-task.rst:1400 +#: library/asyncio-task.rst:1401 msgid "" "The method arranges for a :exc:`CancelledError` exception to be thrown into " "the wrapped coroutine on the next cycle of the event loop." msgstr "" -#: library/asyncio-task.rst:1403 +#: library/asyncio-task.rst:1404 msgid "" "The coroutine then has a chance to clean up or even deny the request by " "suppressing the exception with a :keyword:`try` ... ... ``except " @@ -1809,21 +1809,21 @@ msgid "" "addition to catching the exception." msgstr "" -#: library/asyncio-task.rst:1413 +#: library/asyncio-task.rst:1414 msgid "Added the *msg* parameter." msgstr "" -#: library/asyncio-task.rst:1416 +#: library/asyncio-task.rst:1417 msgid "The ``msg`` parameter is propagated from cancelled task to its awaiter." msgstr "" -#: library/asyncio-task.rst:1421 +#: library/asyncio-task.rst:1422 msgid "" "The following example illustrates how coroutines can intercept the " "cancellation request::" msgstr "" -#: library/asyncio-task.rst:1424 +#: library/asyncio-task.rst:1425 msgid "" "async def cancel_me():\n" " print('cancel_me(): before sleep')\n" @@ -1860,32 +1860,32 @@ msgid "" "# main(): cancel_me is cancelled now" msgstr "" -#: library/asyncio-task.rst:1460 +#: library/asyncio-task.rst:1461 msgid "Return ``True`` if the Task is *cancelled*." msgstr "" -#: library/asyncio-task.rst:1462 +#: library/asyncio-task.rst:1463 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 "" -#: library/asyncio-task.rst:1468 +#: library/asyncio-task.rst:1469 msgid "Decrement the count of cancellation requests to this Task." msgstr "" -#: library/asyncio-task.rst:1470 +#: library/asyncio-task.rst:1471 msgid "Returns the remaining number of cancellation requests." msgstr "" -#: library/asyncio-task.rst:1472 +#: library/asyncio-task.rst:1473 msgid "" "Note that once execution of a cancelled task completed, further calls to :" "meth:`uncancel` are ineffective." msgstr "" -#: library/asyncio-task.rst:1477 +#: library/asyncio-task.rst:1478 msgid "" "This method is used by asyncio's internals and isn't expected to be used by " "end-user code. In particular, if a Task gets successfully uncancelled, this " @@ -1894,7 +1894,7 @@ msgid "" "respective structured block. For example::" msgstr "" -#: library/asyncio-task.rst:1484 +#: library/asyncio-task.rst:1485 msgid "" "async def make_request_with_timeout():\n" " try:\n" @@ -1908,7 +1908,7 @@ msgid "" " await unrelated_code()" msgstr "" -#: library/asyncio-task.rst:1495 +#: library/asyncio-task.rst:1496 msgid "" "While the block with ``make_request()`` and ``make_another_request()`` might " "get cancelled due to the timeout, ``unrelated_code()`` should continue " @@ -1917,14 +1917,14 @@ msgid "" "similar fashion." msgstr "" -#: library/asyncio-task.rst:1501 +#: library/asyncio-task.rst:1502 msgid "" "If end-user code is, for some reason, suppressing cancellation by catching :" "exc:`CancelledError`, it needs to call this method to remove the " "cancellation state." msgstr "" -#: library/asyncio-task.rst:1505 +#: library/asyncio-task.rst:1506 msgid "" "When this method decrements the cancellation count to zero, the method " "checks if a previous :meth:`cancel` call had arranged for :exc:" @@ -1933,17 +1933,17 @@ msgid "" "``_must_cancel`` flag)." msgstr "" -#: library/asyncio-task.rst:1511 +#: library/asyncio-task.rst:1512 msgid "Changed to rescind pending cancellation requests upon reaching zero." msgstr "" -#: library/asyncio-task.rst:1516 +#: library/asyncio-task.rst:1517 msgid "" "Return the number of pending cancellation requests to this Task, i.e., the " "number of calls to :meth:`cancel` less the number of :meth:`uncancel` calls." msgstr "" -#: library/asyncio-task.rst:1520 +#: library/asyncio-task.rst:1521 msgid "" "Note that if this number is greater than zero but the Task is still " "executing, :meth:`cancelled` will still return ``False``. This is because " @@ -1952,7 +1952,7 @@ msgid "" "to zero." msgstr "" -#: library/asyncio-task.rst:1526 +#: library/asyncio-task.rst:1527 msgid "" "This method is used by asyncio's internals and isn't expected to be used by " "end-user code. See :meth:`uncancel` for more details." diff --git a/library/asyncio.po b/library/asyncio.po index 7277700c..0b1ef47f 100644 --- a/library/asyncio.po +++ b/library/asyncio.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,15 +17,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: library/asyncio.rst:91 +#: library/asyncio.rst:100 msgid "High-level APIs" msgstr "" -#: library/asyncio.rst:104 +#: library/asyncio.rst:113 msgid "Low-level APIs" msgstr "" -#: library/asyncio.rst:115 +#: library/asyncio.rst:124 msgid "Guides and Tutorials" msgstr "" @@ -68,39 +68,47 @@ msgid "" "network code." msgstr "" -#: library/asyncio.rst:32 +#: library/asyncio.rst:34 +msgid ":ref:`a-conceptual-overview-of-asyncio`" +msgstr "" + +#: library/asyncio.rst:35 +msgid "Explanation of the fundamentals of asyncio." +msgstr "" + +#: library/asyncio.rst:37 msgid "asyncio provides a set of **high-level** APIs to:" msgstr "" -#: library/asyncio.rst:34 +#: library/asyncio.rst:39 msgid "" ":ref:`run Python coroutines ` concurrently and have full control " "over their execution;" msgstr "" -#: library/asyncio.rst:37 +#: library/asyncio.rst:42 msgid "perform :ref:`network IO and IPC `;" msgstr "" -#: library/asyncio.rst:39 +#: library/asyncio.rst:44 msgid "control :ref:`subprocesses `;" msgstr "" -#: library/asyncio.rst:41 +#: library/asyncio.rst:46 msgid "distribute tasks via :ref:`queues `;" msgstr "" -#: library/asyncio.rst:43 +#: library/asyncio.rst:48 msgid ":ref:`synchronize ` concurrent code;" msgstr "" -#: library/asyncio.rst:45 +#: library/asyncio.rst:50 msgid "" "Additionally, there are **low-level** APIs for *library and framework " "developers* to:" msgstr "" -#: library/asyncio.rst:48 +#: library/asyncio.rst:53 msgid "" "create and manage :ref:`event loops `, which provide " "asynchronous APIs for :ref:`networking `, running :ref:" @@ -108,13 +116,13 @@ msgid "" "`, etc;" msgstr "" -#: library/asyncio.rst:53 +#: library/asyncio.rst:58 msgid "" "implement efficient protocols using :ref:`transports `;" msgstr "" -#: library/asyncio.rst:56 +#: library/asyncio.rst:61 msgid "" ":ref:`bridge ` callback-based libraries and code with async/" "await syntax." @@ -130,17 +138,17 @@ msgid "" "availability` for more information." msgstr "" -#: library/asyncio.rst:64 +#: library/asyncio.rst:69 msgid "asyncio REPL" msgstr "" -#: library/asyncio.rst:65 +#: library/asyncio.rst:70 msgid "" "You can experiment with an ``asyncio`` concurrent context in the :term:" "`REPL`:" msgstr "" -#: library/asyncio.rst:67 +#: library/asyncio.rst:72 msgid "" "$ python -m asyncio\n" "asyncio REPL ...\n" @@ -152,26 +160,33 @@ msgid "" "'hello'" msgstr "" -#: library/asyncio.rst:77 +#: library/asyncio.rst:82 +msgid "" +"This REPL provides limited compatibility with :envvar:`PYTHON_BASIC_REPL`. " +"It is recommended that the default REPL is used for full functionality and " +"the latest features." +msgstr "" + +#: library/asyncio.rst:86 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_stdin`` with no " "arguments." msgstr "" -#: library/asyncio.rst:79 +#: library/asyncio.rst:88 msgid "(also 3.11.10, 3.10.15, 3.9.20, and 3.8.20) Emits audit events." msgstr "" -#: library/asyncio.rst:82 +#: library/asyncio.rst:91 msgid "" "Uses PyREPL if possible, in which case :envvar:`PYTHONSTARTUP` is also " "executed. Emits audit events." msgstr "" -#: library/asyncio.rst:90 +#: library/asyncio.rst:99 msgid "Reference" msgstr "" -#: library/asyncio.rst:124 +#: library/asyncio.rst:133 msgid "The source code for asyncio can be found in :source:`Lib/asyncio/`." msgstr "" diff --git a/library/asyncore.po b/library/asyncore.po index 232c56c4..a7b12257 100644 --- a/library/asyncore.po +++ b/library/asyncore.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/atexit.po b/library/atexit.po index 7bbf17fb..e11ecbb1 100644 --- a/library/atexit.po +++ b/library/atexit.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/audioop.po b/library/audioop.po index b06c971c..b65f9fff 100644 --- a/library/audioop.po +++ b/library/audioop.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/audit_events.po b/library/audit_events.po index 63d69f8f..7532579f 100644 --- a/library/audit_events.po +++ b/library/audit_events.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/base64.po b/library/base64.po index 2a539f35..3288a5b6 100644 --- a/library/base64.po +++ b/library/base64.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/bdb.po b/library/bdb.po index 5651a040..b3c45ad3 100644 --- a/library/bdb.po +++ b/library/bdb.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/binary.po b/library/binary.po index 22e43b29..e55082d4 100644 --- a/library/binary.po +++ b/library/binary.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-20 17:46+0300\n" "Last-Translator: ALEXANDROS TZIORAS alextzioras23@gmail.com\n" "Language-Team: Language-Team: PyGreece \n" diff --git a/library/binascii.po b/library/binascii.po index d5d17cb4..e12413c3 100644 --- a/library/binascii.po +++ b/library/binascii.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/bisect.po b/library/bisect.po index 75ef15ab..a4a7e4f1 100644 --- a/library/bisect.po +++ b/library/bisect.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -45,10 +45,20 @@ msgid "" msgstr "" #: library/bisect.rst:29 +msgid "" +"The functions in this module are not thread-safe. If multiple threads " +"concurrently use :mod:`bisect` functions on the same sequence, this may " +"result in undefined behaviour. Likewise, if the provided sequence is mutated " +"by a different thread while a :mod:`bisect` function is operating on it, the " +"result is undefined. For example, using :py:func:`~bisect.insort_left` on " +"the same list from multiple threads may result in the list becoming unsorted." +msgstr "" + +#: library/bisect.rst:39 msgid "The following functions are provided:" msgstr "" -#: library/bisect.rst:34 +#: library/bisect.rst:44 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 " @@ -58,7 +68,7 @@ msgid "" "parameter to ``list.insert()`` assuming that *a* is already sorted." msgstr "" -#: library/bisect.rst:41 +#: library/bisect.rst:51 msgid "" "The returned insertion point *ip* partitions the array *a* into two slices " "such that ``all(elem < x for elem in a[lo : ip])`` is true for the left " @@ -66,30 +76,30 @@ msgid "" "slice." msgstr "" -#: library/bisect.rst:46 +#: library/bisect.rst:56 msgid "" "*key* specifies a :term:`key function` of one argument that is used to " "extract a comparison key from each element in the array. To support " "searching complex records, the key function is not applied to the *x* value." msgstr "" -#: library/bisect.rst:50 +#: library/bisect.rst:60 msgid "" "If *key* is ``None``, the elements are compared directly and no key function " "is called." msgstr "" -#: library/bisect.rst:67 library/bisect.rst:105 +#: library/bisect.rst:77 library/bisect.rst:115 msgid "Added the *key* parameter." msgstr "" -#: library/bisect.rst:60 +#: library/bisect.rst:70 msgid "" "Similar to :py:func:`~bisect.bisect_left`, but returns an insertion point " "which comes after (to the right of) any existing entries of *x* in *a*." msgstr "" -#: library/bisect.rst:63 +#: library/bisect.rst:73 msgid "" "The returned insertion point *ip* partitions the array *a* into two slices " "such that ``all(elem <= x for elem in a[lo : ip])`` is true for the left " @@ -97,65 +107,65 @@ msgid "" "slice." msgstr "" -#: library/bisect.rst:73 +#: library/bisect.rst:83 msgid "Insert *x* in *a* in sorted order." msgstr "" -#: library/bisect.rst:75 +#: library/bisect.rst:85 msgid "" "This function first runs :py:func:`~bisect.bisect_left` to locate an " -"insertion point. Next, it runs the :meth:`!insert` method on *a* to insert " -"*x* at the appropriate position to maintain sort order." +"insertion point. Next, it runs the :meth:`~sequence.insert` method on *a* to " +"insert *x* at the appropriate position to maintain sort order." msgstr "" -#: library/bisect.rst:99 +#: library/bisect.rst:109 msgid "" "To support inserting records in a table, the *key* function (if any) is " "applied to *x* for the search step but not for the insertion step." msgstr "" -#: library/bisect.rst:102 +#: library/bisect.rst:112 msgid "" "Keep in mind that the *O*\\ (log *n*) search is dominated by the slow *O*\\ " "(*n*) insertion step." msgstr "" -#: library/bisect.rst:92 +#: library/bisect.rst:102 msgid "" "Similar to :py:func:`~bisect.insort_left`, but inserting *x* in *a* after " "any existing entries of *x*." msgstr "" -#: library/bisect.rst:95 +#: library/bisect.rst:105 msgid "" "This function first runs :py:func:`~bisect.bisect_right` to locate an " -"insertion point. Next, it runs the :meth:`!insert` method on *a* to insert " -"*x* at the appropriate position to maintain sort order." +"insertion point. Next, it runs the :meth:`~sequence.insert` method on *a* to " +"insert *x* at the appropriate position to maintain sort order." msgstr "" -#: library/bisect.rst:110 +#: library/bisect.rst:120 msgid "Performance Notes" msgstr "" -#: library/bisect.rst:112 +#: library/bisect.rst:122 msgid "" "When writing time sensitive code using *bisect()* and *insort()*, keep these " "thoughts in mind:" msgstr "" -#: library/bisect.rst:115 +#: library/bisect.rst:125 msgid "" "Bisection is effective for searching ranges of values. For locating specific " "values, dictionaries are more performant." msgstr "" -#: library/bisect.rst:118 +#: library/bisect.rst:128 msgid "" "The *insort()* functions are *O*\\ (*n*) because the logarithmic search step " "is dominated by the linear time insertion step." msgstr "" -#: library/bisect.rst:121 +#: library/bisect.rst:131 msgid "" "The search functions are stateless and discard key function results after " "they are used. Consequently, if the search functions are used in a loop, " @@ -166,14 +176,14 @@ msgid "" "shown in the examples section below)." msgstr "" -#: library/bisect.rst:131 +#: library/bisect.rst:141 msgid "" "`Sorted Collections `_ is a " "high performance module that uses *bisect* to managed sorted collections of " "data." msgstr "" -#: library/bisect.rst:135 +#: library/bisect.rst:145 msgid "" "The `SortedCollection recipe `_ uses bisect to build a full-featured collection class " @@ -182,11 +192,11 @@ msgid "" "searches." msgstr "" -#: library/bisect.rst:143 +#: library/bisect.rst:153 msgid "Searching Sorted Lists" msgstr "" -#: library/bisect.rst:145 +#: library/bisect.rst:155 msgid "" "The above `bisect functions`_ are useful for finding insertion points but " "can be tricky or awkward to use for common searching tasks. The following " @@ -194,7 +204,7 @@ msgid "" "sorted lists::" msgstr "" -#: library/bisect.rst:150 +#: library/bisect.rst:160 msgid "" "def index(a, x):\n" " 'Locate the leftmost value exactly equal to x'\n" @@ -232,11 +242,11 @@ msgid "" " raise ValueError" msgstr "" -#: library/bisect.rst:187 +#: library/bisect.rst:197 msgid "Examples" msgstr "" -#: library/bisect.rst:191 +#: library/bisect.rst:201 msgid "" "The :py:func:`~bisect.bisect` function can be useful for numeric table " "lookups. This example uses :py:func:`~bisect.bisect` to look up a letter " @@ -244,7 +254,7 @@ msgid "" "90 and up is an 'A', 80 to 89 is a 'B', and so on::" msgstr "" -#: library/bisect.rst:196 +#: library/bisect.rst:206 msgid "" ">>> def grade(score, breakpoints=[60, 70, 80, 90], grades='FDCBA'):\n" "... i = bisect(breakpoints, score)\n" @@ -254,14 +264,14 @@ msgid "" "['F', 'A', 'C', 'C', 'B', 'A', 'A']" msgstr "" -#: library/bisect.rst:203 +#: library/bisect.rst:213 msgid "" "The :py:func:`~bisect.bisect` and :py:func:`~bisect.insort` functions also " "work with lists of tuples. The *key* argument can serve to extract the " "field used for ordering records in a table::" msgstr "" -#: library/bisect.rst:207 +#: library/bisect.rst:217 msgid "" ">>> from collections import namedtuple\n" ">>> from operator import attrgetter\n" @@ -294,13 +304,13 @@ msgid "" " Movie(name='Titanic', released=1997, director='Cameron')]" msgstr "" -#: library/bisect.rst:237 +#: library/bisect.rst:247 msgid "" "If the key function is expensive, it is possible to avoid repeated function " "calls by searching a list of precomputed keys to find the index of a record::" msgstr "" -#: library/bisect.rst:240 +#: library/bisect.rst:250 msgid "" ">>> data = [('red', 5), ('blue', 1), ('yellow', 8), ('black', 0)]\n" ">>> data.sort(key=lambda r: r[1]) # Or use operator.itemgetter(1).\n" diff --git a/library/builtins.po b/library/builtins.po index 3dff8dbf..1b75a563 100644 --- a/library/builtins.po +++ b/library/builtins.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/bz2.po b/library/bz2.po index 6f0073db..5fa429f6 100644 --- a/library/bz2.po +++ b/library/bz2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -53,37 +53,45 @@ msgid "" "(de)compression." msgstr "" -#: library/bz2.rst:30 +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." +msgstr "" + +#: library/bz2.rst:32 msgid "(De)compression of files" msgstr "" -#: library/bz2.rst:34 +#: library/bz2.rst:36 msgid "" "Open a bzip2-compressed file in binary or text mode, returning a :term:`file " "object`." msgstr "" -#: library/bz2.rst:37 +#: 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 "" -#: library/bz2.rst:41 +#: 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 "" -#: library/bz2.rst:45 +#: library/bz2.rst:47 msgid "" "The *compresslevel* argument is an integer from 1 to 9, as for the :class:" "`BZ2File` constructor." msgstr "" -#: library/bz2.rst:48 +#: library/bz2.rst:50 msgid "" "For binary mode, this function is equivalent to the :class:`BZ2File` " "constructor: ``BZ2File(filename, mode, compresslevel=compresslevel)``. In " @@ -91,33 +99,33 @@ msgid "" "provided." msgstr "" -#: library/bz2.rst:53 +#: 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 "" -#: library/bz2.rst:175 +#: library/bz2.rst:177 msgid "The ``'x'`` (exclusive creation) mode was added." msgstr "" -#: library/bz2.rst:182 +#: library/bz2.rst:184 msgid "Accepts a :term:`path-like object`." msgstr "" -#: library/bz2.rst:68 +#: library/bz2.rst:70 msgid "Open a bzip2-compressed file in binary mode." msgstr "" -#: library/bz2.rst:70 +#: 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 "" -#: library/bz2.rst:74 +#: 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 " @@ -125,44 +133,44 @@ msgid "" "respectively." msgstr "" -#: library/bz2.rst:79 +#: 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 "" -#: library/bz2.rst:82 +#: library/bz2.rst:84 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 "" -#: library/bz2.rst:86 +#: library/bz2.rst:88 msgid "" "If *mode* is ``'r'``, the input file may be the concatenation of multiple " "compressed streams." msgstr "" -#: library/bz2.rst:89 +#: library/bz2.rst:91 msgid "" ":class:`BZ2File` provides all of the members specified by the :class:`io." "BufferedIOBase`, except for :meth:`~io.BufferedIOBase.detach` and :meth:`~io." "IOBase.truncate`. Iteration and the :keyword:`with` statement are supported." msgstr "" -#: library/bz2.rst:94 +#: library/bz2.rst:96 msgid ":class:`BZ2File` also provides the following methods and attributes:" msgstr "" -#: library/bz2.rst:98 +#: library/bz2.rst:100 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 "" -#: library/bz2.rst:102 +#: library/bz2.rst:104 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 " @@ -170,138 +178,138 @@ msgid "" "*filename*)." msgstr "" -#: library/bz2.rst:111 +#: library/bz2.rst:113 msgid "Return the file descriptor for the underlying file." msgstr "" -#: library/bz2.rst:117 +#: library/bz2.rst:119 msgid "Return whether the file was opened for reading." msgstr "" -#: library/bz2.rst:123 +#: library/bz2.rst:125 msgid "Return whether the file supports seeking." msgstr "" -#: library/bz2.rst:129 +#: library/bz2.rst:131 msgid "Return whether the file was opened for writing." msgstr "" -#: library/bz2.rst:135 +#: library/bz2.rst:137 msgid "" "Read up to *size* uncompressed bytes, while trying to avoid making multiple " "reads from the underlying stream. Reads up to a buffer's worth of data if " "size is negative." msgstr "" -#: library/bz2.rst:139 +#: library/bz2.rst:141 msgid "Returns ``b''`` if the file is at EOF." msgstr "" -#: library/bz2.rst:145 +#: library/bz2.rst:147 msgid "Read bytes into *b*." msgstr "" -#: library/bz2.rst:147 +#: library/bz2.rst:149 msgid "Returns the number of bytes read (0 for EOF)." msgstr "" -#: library/bz2.rst:153 +#: library/bz2.rst:155 msgid "``'rb'`` for reading and ``'wb'`` for writing." msgstr "" -#: library/bz2.rst:159 +#: library/bz2.rst:161 msgid "" "The bzip2 file name. Equivalent to the :attr:`~io.FileIO.name` attribute of " "the underlying :term:`file object`." msgstr "" -#: library/bz2.rst:165 +#: library/bz2.rst:167 msgid "Support for the :keyword:`with` statement was added." msgstr "" -#: library/bz2.rst:168 +#: library/bz2.rst:170 msgid "" "Support was added for *filename* being a :term:`file object` instead of an " "actual filename." msgstr "" -#: library/bz2.rst:172 +#: library/bz2.rst:174 msgid "" "The ``'a'`` (append) mode was added, along with support for reading multi-" "stream files." msgstr "" -#: library/bz2.rst:178 +#: library/bz2.rst:180 msgid "" "The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " "``None``." msgstr "" -#: library/bz2.rst:185 +#: library/bz2.rst:187 msgid "" "The *buffering* parameter has been removed. It was ignored and deprecated " "since Python 3.0. Pass an open file object to control how the file is opened." msgstr "" -#: library/bz2.rst:190 +#: library/bz2.rst:192 msgid "The *compresslevel* parameter became keyword-only." msgstr "" -#: library/bz2.rst:192 +#: library/bz2.rst:194 msgid "" "This class is thread unsafe in the face of multiple simultaneous readers or " "writers, just like its equivalent classes in :mod:`gzip` and :mod:`lzma` " "have always been." msgstr "" -#: library/bz2.rst:199 +#: library/bz2.rst:201 msgid "Incremental (de)compression" msgstr "" -#: library/bz2.rst:203 +#: library/bz2.rst:205 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 "" -#: library/bz2.rst:295 +#: library/bz2.rst:297 msgid "" "*compresslevel*, if given, must be an integer between ``1`` and ``9``. The " "default is ``9``." msgstr "" -#: library/bz2.rst:212 +#: library/bz2.rst:214 msgid "" "Provide data to the compressor object. Returns a chunk of compressed data if " "possible, or an empty byte string otherwise." msgstr "" -#: library/bz2.rst:215 +#: library/bz2.rst:217 msgid "" "When you have finished providing data to the compressor, call the :meth:" "`flush` method to finish the compression process." msgstr "" -#: library/bz2.rst:221 +#: library/bz2.rst:223 msgid "" "Finish the compression process. Returns the compressed data left in internal " "buffers." msgstr "" -#: library/bz2.rst:224 +#: library/bz2.rst:226 msgid "" "The compressor object may not be used after this method has been called." msgstr "" -#: library/bz2.rst:229 +#: library/bz2.rst:231 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 "" -#: library/bz2.rst:234 +#: library/bz2.rst:236 msgid "" "This class does not transparently handle inputs containing multiple " "compressed streams, unlike :func:`decompress` and :class:`BZ2File`. If you " @@ -309,7 +317,7 @@ msgid "" "must use a new decompressor for each stream." msgstr "" -#: library/bz2.rst:241 +#: library/bz2.rst:243 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 " @@ -317,7 +325,7 @@ msgid "" "output of any previous calls to :meth:`decompress`." msgstr "" -#: library/bz2.rst:247 +#: library/bz2.rst:249 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 " @@ -326,99 +334,99 @@ msgid "" "``b''`` to obtain more of the output." msgstr "" -#: library/bz2.rst:254 +#: library/bz2.rst:256 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 "" -#: library/bz2.rst:259 +#: library/bz2.rst:261 msgid "" "Attempting to decompress data after the end of stream is reached raises an :" "exc:`EOFError`. Any data found after the end of the stream is ignored and " "saved in the :attr:`~.unused_data` attribute." msgstr "" -#: library/bz2.rst:263 +#: library/bz2.rst:265 msgid "Added the *max_length* parameter." msgstr "" -#: library/bz2.rst:268 +#: library/bz2.rst:270 msgid "``True`` if the end-of-stream marker has been reached." msgstr "" -#: library/bz2.rst:275 +#: library/bz2.rst:277 msgid "Data found after the end of the compressed stream." msgstr "" -#: library/bz2.rst:277 +#: library/bz2.rst:279 msgid "" "If this attribute is accessed before the end of the stream has been reached, " "its value will be ``b''``." msgstr "" -#: library/bz2.rst:282 +#: library/bz2.rst:284 msgid "" "``False`` if the :meth:`.decompress` method can provide more decompressed " "data before requiring new uncompressed input." msgstr "" -#: library/bz2.rst:289 +#: library/bz2.rst:291 msgid "One-shot (de)compression" msgstr "" -#: library/bz2.rst:293 +#: library/bz2.rst:295 msgid "Compress *data*, a :term:`bytes-like object `." msgstr "" -#: library/bz2.rst:298 +#: library/bz2.rst:300 msgid "For incremental compression, use a :class:`BZ2Compressor` instead." msgstr "" -#: library/bz2.rst:303 +#: library/bz2.rst:305 msgid "Decompress *data*, a :term:`bytes-like object `." msgstr "" -#: library/bz2.rst:305 +#: library/bz2.rst:307 msgid "" "If *data* is the concatenation of multiple compressed streams, decompress " "all of the streams." msgstr "" -#: library/bz2.rst:308 +#: library/bz2.rst:310 msgid "For incremental decompression, use a :class:`BZ2Decompressor` instead." msgstr "" -#: library/bz2.rst:310 +#: library/bz2.rst:312 msgid "Support for multi-stream inputs was added." msgstr "" -#: library/bz2.rst:316 +#: library/bz2.rst:318 msgid "Examples of usage" msgstr "" -#: library/bz2.rst:318 +#: library/bz2.rst:320 msgid "Below are some examples of typical usage of the :mod:`bz2` module." msgstr "" -#: library/bz2.rst:320 +#: library/bz2.rst:322 msgid "" "Using :func:`compress` and :func:`decompress` to demonstrate round-trip " "compression:" msgstr "" -#: library/bz2.rst:338 +#: library/bz2.rst:340 msgid "Using :class:`BZ2Compressor` for incremental compression:" msgstr "" -#: library/bz2.rst:356 +#: library/bz2.rst:358 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 "" -#: library/bz2.rst:360 +#: library/bz2.rst:362 msgid "Writing and reading a bzip2-compressed file in binary mode:" msgstr "" diff --git a/library/calendar.po b/library/calendar.po index 32ff76de..d9e76c71 100644 --- a/library/calendar.po +++ b/library/calendar.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/cgi.po b/library/cgi.po index 71fe2249..dcf8695f 100644 --- a/library/cgi.po +++ b/library/cgi.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/cgitb.po b/library/cgitb.po index 259146d0..07521523 100644 --- a/library/cgitb.po +++ b/library/cgitb.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/chunk.po b/library/chunk.po index 51924259..51b48a8e 100644 --- a/library/chunk.po +++ b/library/chunk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/cmath.po b/library/cmath.po index cf43eba7..db4f451d 100644 --- a/library/cmath.po +++ b/library/cmath.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -591,7 +591,7 @@ msgstr "" #: library/cmath.rst:340 msgid "" "A floating-point \"not a number\" (NaN) value. Equivalent to " -"``float('nan')``." +"``float('nan')``. See also :data:`math.nan`." msgstr "" #: library/cmath.rst:348 diff --git a/library/cmd.po b/library/cmd.po index 033c646f..4edac794 100644 --- a/library/cmd.po +++ b/library/cmd.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/cmdline.po b/library/cmdline.po index 9e9836df..116f1845 100644 --- a/library/cmdline.po +++ b/library/cmdline.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-05-21 12:24+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: ALEXANDROS TZIORAS alextzioras23@gmail.com\n" "Language-Team: Language-Team: PyGreece \n" "Language: el\n" @@ -66,8 +66,8 @@ msgid ":mod:`!encodings.rot_13`" msgstr ":mod:`!encodings.rot_13`" #: library/cmdline.rst:19 -msgid ":mod:`ensurepip`" -msgstr ":mod:`ensurepip`" +msgid ":ref:`ensurepip `" +msgstr ":ref:`ensurepip `" #: library/cmdline.rst:20 msgid ":mod:`filecmp`" @@ -90,8 +90,8 @@ msgid ":ref:`http.server `" msgstr ":ref:`http.server `" #: library/cmdline.rst:25 -msgid ":mod:`!idlelib`" -msgstr ":mod:`!idlelib`" +msgid ":ref:`idlelib `" +msgstr ":ref:`idlelib `" #: library/cmdline.rst:26 msgid ":ref:`inspect `" @@ -106,8 +106,8 @@ msgid ":ref:`mimetypes `" msgstr ":ref:`mimetypes `" #: library/cmdline.rst:29 -msgid ":mod:`pdb`" -msgstr ":mod:`pdb`" +msgid ":ref:`pdb `" +msgstr ":ref:`pdb `" #: library/cmdline.rst:30 msgid ":ref:`pickle `" @@ -210,12 +210,12 @@ msgid ":ref:`uuid `" msgstr ":ref:`uuid `" #: library/cmdline.rst:55 -msgid ":mod:`venv`" -msgstr ":mod:`venv`" +msgid ":ref:`venv `" +msgstr ":ref:`venv `" #: library/cmdline.rst:56 -msgid ":mod:`webbrowser`" -msgstr ":mod:`webbrowser`" +msgid ":ref:`webbrowser `" +msgstr ":ref:`webbrowser `" #: library/cmdline.rst:57 msgid ":ref:`zipapp `" @@ -229,3 +229,18 @@ msgstr ":ref:`zipfile `" msgid "See also the :ref:`Python command-line interface `." msgstr "" "Δείτε επίσης το :ref:`Python command-line interface `." + +#~ msgid ":mod:`ensurepip`" +#~ msgstr ":mod:`ensurepip`" + +#~ msgid ":mod:`!idlelib`" +#~ msgstr ":mod:`!idlelib`" + +#~ msgid ":mod:`pdb`" +#~ msgstr ":mod:`pdb`" + +#~ msgid ":mod:`venv`" +#~ msgstr ":mod:`venv`" + +#~ msgid ":mod:`webbrowser`" +#~ msgstr ":mod:`webbrowser`" diff --git a/library/cmdlinelibs.po b/library/cmdlinelibs.po index c9d9cd1f..64e81e22 100644 --- a/library/cmdlinelibs.po +++ b/library/cmdlinelibs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: library/cmdlinelibs.rst:5 -msgid "Command Line Interface Libraries" +msgid "Command-line interface libraries" msgstr "" #: library/cmdlinelibs.rst:7 diff --git a/library/code.po b/library/code.po index e828fc74..1d4ad2c9 100644 --- a/library/code.po +++ b/library/code.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/codecs.po b/library/codecs.po index 6ac2a7e4..1d565ce1 100644 --- a/library/codecs.po +++ b/library/codecs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -70,17 +70,26 @@ msgid "" "information on codec error handling." msgstr "" -#: library/codecs.rst:56 +#: library/codecs.rst:58 +msgid "" +"Return a mapping suitable for encoding with a custom single-byte encoding. " +"Given a :class:`str` *string* of up to 256 characters representing a " +"decoding table, returns either a compact internal mapping object " +"``EncodingMap`` or a :class:`dictionary ` mapping character ordinals " +"to byte values. Raises a :exc:`TypeError` on invalid input." +msgstr "" + +#: library/codecs.rst:64 msgid "The full details for each codec can also be looked up directly:" msgstr "" -#: library/codecs.rst:60 +#: library/codecs.rst:68 msgid "" "Looks up the codec info in the Python codec registry and returns a :class:" "`CodecInfo` object as defined below." msgstr "" -#: library/codecs.rst:63 +#: library/codecs.rst:71 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` " @@ -88,17 +97,17 @@ msgid "" "`CodecInfo` object is stored in the cache and returned to the caller." msgstr "" -#: library/codecs.rst:70 +#: library/codecs.rst:78 msgid "" "Codec details when looking up the codec registry. The constructor arguments " "are stored in attributes of the same name:" msgstr "" -#: library/codecs.rst:76 +#: library/codecs.rst:84 msgid "The name of the encoding." msgstr "" -#: library/codecs.rst:82 +#: library/codecs.rst:90 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:" @@ -107,7 +116,7 @@ msgid "" "mode." msgstr "" -#: library/codecs.rst:92 +#: library/codecs.rst:100 msgid "" "Incremental encoder and decoder classes or factory functions. These have to " "provide the interface defined by the base classes :class:" @@ -115,76 +124,76 @@ msgid "" "Incremental codecs can maintain state." msgstr "" -#: library/codecs.rst:101 +#: library/codecs.rst:109 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 "" -#: library/codecs.rst:106 +#: library/codecs.rst:114 msgid "" "To simplify access to the various codec components, the module provides " "these additional functions which use :func:`lookup` for the codec lookup:" msgstr "" -#: library/codecs.rst:111 +#: library/codecs.rst:119 msgid "" "Look up the codec for the given encoding and return its encoder function." msgstr "" -#: library/codecs.rst:120 library/codecs.rst:154 +#: library/codecs.rst:128 library/codecs.rst:162 msgid "Raises a :exc:`LookupError` in case the encoding cannot be found." msgstr "" -#: library/codecs.rst:118 +#: library/codecs.rst:126 msgid "" "Look up the codec for the given encoding and return its decoder function." msgstr "" -#: library/codecs.rst:125 +#: library/codecs.rst:133 msgid "" "Look up the codec for the given encoding and return its incremental encoder " "class or factory function." msgstr "" -#: library/codecs.rst:128 +#: library/codecs.rst:136 msgid "" "Raises a :exc:`LookupError` in case the encoding cannot be found or the " "codec doesn't support an incremental encoder." msgstr "" -#: library/codecs.rst:134 +#: library/codecs.rst:142 msgid "" "Look up the codec for the given encoding and return its incremental decoder " "class or factory function." msgstr "" -#: library/codecs.rst:137 +#: library/codecs.rst:145 msgid "" "Raises a :exc:`LookupError` in case the encoding cannot be found or the " "codec doesn't support an incremental decoder." msgstr "" -#: library/codecs.rst:143 +#: library/codecs.rst:151 msgid "" "Look up the codec for the given encoding and return its :class:" "`StreamReader` class or factory function." msgstr "" -#: library/codecs.rst:151 +#: library/codecs.rst:159 msgid "" "Look up the codec for the given encoding and return its :class:" "`StreamWriter` class or factory function." msgstr "" -#: library/codecs.rst:156 +#: library/codecs.rst:164 msgid "" "Custom codecs are made available by registering a suitable codec search " "function:" msgstr "" -#: library/codecs.rst:161 +#: library/codecs.rst:169 msgid "" "Register a codec search function. Search functions are expected to take one " "argument, being the encoding name in all lower case letters with hyphens and " @@ -193,17 +202,17 @@ msgid "" "``None``." msgstr "" -#: library/codecs.rst:167 +#: library/codecs.rst:175 msgid "Hyphens and spaces are converted to underscore." msgstr "" -#: library/codecs.rst:173 +#: library/codecs.rst:181 msgid "" "Unregister a codec search function and clear the registry's cache. If the " "search function is not registered, do nothing." msgstr "" -#: library/codecs.rst:179 +#: library/codecs.rst:187 msgid "" "While the builtin :func:`open` and the associated :mod:`io` module are the " "recommended approach for working with encoded text files, this module " @@ -211,14 +220,14 @@ msgid "" "wider range of codecs when working with binary files:" msgstr "" -#: library/codecs.rst:186 +#: library/codecs.rst:194 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 "" -#: library/codecs.rst:192 +#: library/codecs.rst:200 msgid "" "If *encoding* is not ``None``, then the underlying encoded files are always " "opened in binary mode. No automatic conversion of ``'\\n'`` is done on " @@ -226,42 +235,42 @@ msgid "" "to the built-in :func:`open` function; the ``'b'`` is automatically added." msgstr "" -#: library/codecs.rst:198 +#: library/codecs.rst:206 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 "" -#: library/codecs.rst:202 +#: library/codecs.rst:210 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 "" -#: library/codecs.rst:205 +#: library/codecs.rst:213 msgid "" "*buffering* has the same meaning as for the built-in :func:`open` function. " "It defaults to -1 which means that the default buffer size will be used." msgstr "" -#: library/codecs.rst:208 +#: library/codecs.rst:216 msgid "The ``'U'`` mode has been removed." msgstr "" -#: library/codecs.rst:213 +#: library/codecs.rst:221 msgid ":func:`codecs.open` has been superseded by :func:`open`." msgstr "" -#: library/codecs.rst:218 +#: library/codecs.rst:226 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 "" -#: library/codecs.rst:222 +#: library/codecs.rst:230 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 " @@ -269,41 +278,41 @@ msgid "" "*file_encoding*, and the result is encoded using *data_encoding*." msgstr "" -#: library/codecs.rst:228 +#: library/codecs.rst:236 msgid "If *file_encoding* is not given, it defaults to *data_encoding*." msgstr "" -#: library/codecs.rst:230 +#: library/codecs.rst:238 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 "" -#: library/codecs.rst:237 +#: library/codecs.rst:245 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." +"*iterator*. *iterator* must yield :class:`str` objects. This function is a :" +"term:`generator`. The *errors* argument (as well as any other keyword " +"argument) is passed through to the incremental encoder." msgstr "" -#: library/codecs.rst:242 +#: library/codecs.rst:250 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 "" -#: library/codecs.rst:249 +#: library/codecs.rst:257 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." +"*iterator*. *iterator* must yield :class:`bytes` objects. This function is " +"a :term:`generator`. The *errors* argument (as well as any other keyword " +"argument) is passed through to the incremental decoder." msgstr "" -#: library/codecs.rst:254 +#: library/codecs.rst:262 msgid "" "This function requires that the codec accept :class:`bytes` objects to " "decode. Therefore it does not support text-to-text encoders such as " @@ -311,13 +320,30 @@ msgid "" "`iterencode`." msgstr "" -#: library/codecs.rst:260 +#: library/codecs.rst:270 +msgid "" +"Return a :class:`tuple` containing the raw bytes of *buffer*, a :ref:`buffer-" +"compatible object ` or :class:`str` (encoded to UTF-8 before " +"processing), and their length in bytes." +msgstr "" + +#: library/codecs.rst:274 +msgid "The *errors* argument is ignored." +msgstr "" + +#: library/codecs.rst:276 +msgid "" +">>> codecs.readbuffer_encode(b\"Zito\")\n" +"(b'Zito', 4)" +msgstr "" + +#: library/codecs.rst:282 msgid "" "The module also provides the following constants which are useful for " "reading and writing to platform dependent files:" msgstr "" -#: library/codecs.rst:275 +#: library/codecs.rst:297 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 " @@ -329,18 +355,18 @@ msgid "" "represent the BOM in UTF-8 and UTF-32 encodings." msgstr "" -#: library/codecs.rst:289 +#: library/codecs.rst:311 msgid "Codec Base Classes" msgstr "" -#: library/codecs.rst:291 +#: library/codecs.rst:313 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 "" -#: library/codecs.rst:295 +#: library/codecs.rst:317 msgid "" "Each codec has to define four interfaces to make it usable as codec in " "Python: stateless encoder, stateless decoder, stream reader and stream " @@ -349,66 +375,66 @@ msgid "" "how the codec will handle encoding and decoding errors." msgstr "" -#: library/codecs.rst:306 +#: library/codecs.rst:328 msgid "Error Handlers" msgstr "" -#: library/codecs.rst:308 +#: library/codecs.rst:330 msgid "" "To simplify and standardize error handling, codecs may implement different " "error handling schemes by accepting the *errors* string argument:" msgstr "" -#: library/codecs.rst:328 +#: library/codecs.rst:350 msgid "" "The following error handlers can be used with all Python :ref:`standard-" "encodings` codecs:" msgstr "" -#: library/codecs.rst:377 library/codecs.rst:397 +#: library/codecs.rst:399 library/codecs.rst:419 msgid "Value" msgstr "" -#: library/codecs.rst:377 library/codecs.rst:1342 library/codecs.rst:1465 +#: library/codecs.rst:399 library/codecs.rst:1376 library/codecs.rst:1533 msgid "Meaning" msgstr "" -#: library/codecs.rst:336 +#: library/codecs.rst:358 msgid "``'strict'``" msgstr "" -#: library/codecs.rst:336 +#: library/codecs.rst:358 msgid "" "Raise :exc:`UnicodeError` (or a subclass), this is the default. Implemented " "in :func:`strict_errors`." msgstr "" -#: library/codecs.rst:340 +#: library/codecs.rst:362 msgid "``'ignore'``" msgstr "" -#: library/codecs.rst:340 +#: library/codecs.rst:362 msgid "" "Ignore the malformed data and continue without further notice. Implemented " "in :func:`ignore_errors`." msgstr "" -#: library/codecs.rst:344 +#: library/codecs.rst:366 msgid "``'replace'``" msgstr "" -#: library/codecs.rst:344 +#: library/codecs.rst:366 msgid "" "Replace with a replacement marker. On encoding, use ``?`` (ASCII character). " "On decoding, use ``�`` (U+FFFD, the official REPLACEMENT CHARACTER). " "Implemented in :func:`replace_errors`." msgstr "" -#: library/codecs.rst:350 +#: library/codecs.rst:372 msgid "``'backslashreplace'``" msgstr "" -#: library/codecs.rst:350 +#: library/codecs.rst:372 msgid "" "Replace with backslashed escape sequences. On encoding, use hexadecimal form " "of Unicode code point with formats :samp:`\\\\x{hh}` :samp:`\\\\u{xxxx}` :" @@ -416,11 +442,11 @@ msgid "" "format :samp:`\\\\x{hh}`. Implemented in :func:`backslashreplace_errors`." msgstr "" -#: library/codecs.rst:359 +#: library/codecs.rst:381 msgid "``'surrogateescape'``" msgstr "" -#: library/codecs.rst:359 +#: library/codecs.rst:381 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 " @@ -428,92 +454,92 @@ msgid "" "data. (See :pep:`383` for more.)" msgstr "" -#: library/codecs.rst:373 +#: library/codecs.rst:395 msgid "" "The following error handlers are only applicable to encoding (within :term:" "`text encodings `):" msgstr "" -#: library/codecs.rst:379 +#: library/codecs.rst:401 msgid "``'xmlcharrefreplace'``" msgstr "" -#: library/codecs.rst:379 +#: library/codecs.rst:401 msgid "" "Replace with XML/HTML numeric character reference, which is a decimal form " "of Unicode code point with format :samp:`&#{num};`. Implemented in :func:" "`xmlcharrefreplace_errors`." msgstr "" -#: library/codecs.rst:385 +#: library/codecs.rst:407 msgid "``'namereplace'``" msgstr "" -#: library/codecs.rst:385 +#: library/codecs.rst:407 msgid "" "Replace with ``\\N{...}`` escape sequences, what appears in the braces is " "the Name property from Unicode Character Database. Implemented in :func:" "`namereplace_errors`." msgstr "" -#: library/codecs.rst:394 +#: library/codecs.rst:416 msgid "" "In addition, the following error handler is specific to the given codecs:" msgstr "" -#: library/codecs.rst:397 +#: library/codecs.rst:419 msgid "Codecs" msgstr "" -#: library/codecs.rst:399 +#: library/codecs.rst:421 msgid "``'surrogatepass'``" msgstr "" -#: library/codecs.rst:399 +#: library/codecs.rst:421 msgid "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" msgstr "" -#: library/codecs.rst:399 +#: library/codecs.rst:421 msgid "" "Allow encoding and decoding surrogate code point (``U+D800`` - ``U+DFFF``) " "as normal code point. Otherwise these codecs treat the presence of surrogate " "code point in :class:`str` as an error." msgstr "" -#: library/codecs.rst:406 +#: library/codecs.rst:428 msgid "The ``'surrogateescape'`` and ``'surrogatepass'`` error handlers." msgstr "" -#: library/codecs.rst:409 +#: library/codecs.rst:431 msgid "" "The ``'surrogatepass'`` error handler now works with utf-16\\* and utf-32\\* " "codecs." msgstr "" -#: library/codecs.rst:413 +#: library/codecs.rst:435 msgid "The ``'namereplace'`` error handler." msgstr "" -#: library/codecs.rst:416 +#: library/codecs.rst:438 msgid "" "The ``'backslashreplace'`` error handler now works with decoding and " "translating." msgstr "" -#: library/codecs.rst:420 +#: library/codecs.rst:442 msgid "" "The set of allowed values can be extended by registering a new named error " "handler:" msgstr "" -#: library/codecs.rst:425 +#: library/codecs.rst:447 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 "" -#: library/codecs.rst:429 +#: library/codecs.rst:451 msgid "" "For encoding, *error_handler* will be called with a :exc:" "`UnicodeEncodeError` instance, which contains information about the location " @@ -528,66 +554,66 @@ msgid "" "position is out of bound an :exc:`IndexError` will be raised." msgstr "" -#: library/codecs.rst:441 +#: library/codecs.rst:463 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 "" -#: library/codecs.rst:446 +#: library/codecs.rst:468 msgid "" "Previously registered error handlers (including the standard error handlers) " "can be looked up by name:" msgstr "" -#: library/codecs.rst:451 +#: library/codecs.rst:473 msgid "Return the error handler previously registered under the name *name*." msgstr "" -#: library/codecs.rst:453 +#: library/codecs.rst:475 msgid "Raises a :exc:`LookupError` in case the handler cannot be found." msgstr "" -#: library/codecs.rst:455 +#: library/codecs.rst:477 msgid "" "The following standard error handlers are also made available as module " "level functions:" msgstr "" -#: library/codecs.rst:460 +#: library/codecs.rst:482 msgid "Implements the ``'strict'`` error handling." msgstr "" -#: library/codecs.rst:462 +#: library/codecs.rst:484 msgid "Each encoding or decoding error raises a :exc:`UnicodeError`." msgstr "" -#: library/codecs.rst:467 +#: library/codecs.rst:489 msgid "Implements the ``'ignore'`` error handling." msgstr "" -#: library/codecs.rst:469 +#: library/codecs.rst:491 msgid "" "Malformed data is ignored; encoding or decoding is continued without further " "notice." msgstr "" -#: library/codecs.rst:475 +#: library/codecs.rst:497 msgid "Implements the ``'replace'`` error handling." msgstr "" -#: library/codecs.rst:477 +#: library/codecs.rst:499 msgid "" "Substitutes ``?`` (ASCII character) for encoding errors or ``�`` (U+FFFD, " "the official REPLACEMENT CHARACTER) for decoding errors." msgstr "" -#: library/codecs.rst:483 +#: library/codecs.rst:505 msgid "Implements the ``'backslashreplace'`` error handling." msgstr "" -#: library/codecs.rst:485 +#: library/codecs.rst:507 msgid "" "Malformed data is replaced by a backslashed escape sequence. On encoding, " "use the hexadecimal form of Unicode code point with formats :samp:`\\\\x{hh}" @@ -595,30 +621,30 @@ msgid "" "hexadecimal form of byte value with format :samp:`\\\\x{hh}`." msgstr "" -#: library/codecs.rst:491 +#: library/codecs.rst:513 msgid "Works with decoding and translating." msgstr "" -#: library/codecs.rst:497 +#: library/codecs.rst:519 msgid "" "Implements the ``'xmlcharrefreplace'`` error handling (for encoding within :" "term:`text encoding` only)." msgstr "" -#: library/codecs.rst:500 +#: library/codecs.rst:522 msgid "" "The unencodable character is replaced by an appropriate XML/HTML numeric " "character reference, which is a decimal form of Unicode code point with " "format :samp:`&#{num};` ." msgstr "" -#: library/codecs.rst:507 +#: library/codecs.rst:529 msgid "" "Implements the ``'namereplace'`` error handling (for encoding within :term:" "`text encoding` only)." msgstr "" -#: library/codecs.rst:510 +#: library/codecs.rst:532 msgid "" "The unencodable character is replaced by a ``\\N{...}`` escape sequence. The " "set of characters that appear in the braces is the Name property from " @@ -626,17 +652,17 @@ msgid "" "will be converted to byte sequence ``\\N{LATIN SMALL LETTER SHARP S}`` ." msgstr "" -#: library/codecs.rst:521 +#: library/codecs.rst:543 msgid "Stateless Encoding and Decoding" msgstr "" -#: library/codecs.rst:523 +#: library/codecs.rst:545 msgid "" "The base :class:`Codec` class defines these methods which also define the " "function interfaces of the stateless encoder and decoder:" msgstr "" -#: library/codecs.rst:531 +#: library/codecs.rst:553 msgid "" "Encodes the object *input* and returns a tuple (output object, length " "consumed). For instance, :term:`text encoding` converts a string object to a " @@ -644,26 +670,26 @@ msgid "" "``iso-8859-1``)." msgstr "" -#: library/codecs.rst:558 +#: library/codecs.rst:580 msgid "" "The *errors* argument defines the error handling to apply. It defaults to " "``'strict'`` handling." msgstr "" -#: library/codecs.rst:539 +#: library/codecs.rst:561 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 "" -#: library/codecs.rst:543 +#: library/codecs.rst:565 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 "" -#: library/codecs.rst:549 +#: library/codecs.rst:571 msgid "" "Decodes the object *input* and returns a tuple (output object, length " "consumed). For instance, for a :term:`text encoding`, decoding converts a " @@ -671,31 +697,31 @@ msgid "" "object." msgstr "" -#: library/codecs.rst:554 +#: library/codecs.rst:576 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 "" -#: library/codecs.rst:561 +#: library/codecs.rst:583 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 "" -#: library/codecs.rst:565 +#: library/codecs.rst:587 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 "" -#: library/codecs.rst:570 +#: library/codecs.rst:592 msgid "Incremental Encoding and Decoding" msgstr "" -#: library/codecs.rst:572 +#: library/codecs.rst:594 msgid "" "The :class:`IncrementalEncoder` and :class:`IncrementalDecoder` classes " "provide the basic interface for incremental encoding and decoding. Encoding/" @@ -706,7 +732,7 @@ msgid "" "during method calls." msgstr "" -#: library/codecs.rst:580 +#: library/codecs.rst:602 msgid "" "The joined output of calls to the :meth:`~IncrementalEncoder.encode`/:meth:" "`~IncrementalDecoder.decode` method is the same as if all the single inputs " @@ -714,36 +740,36 @@ msgid "" "encoder/decoder." msgstr "" -#: library/codecs.rst:589 +#: library/codecs.rst:611 msgid "IncrementalEncoder Objects" msgstr "" -#: library/codecs.rst:591 +#: library/codecs.rst:613 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 "" -#: library/codecs.rst:598 +#: library/codecs.rst:620 msgid "Constructor for an :class:`IncrementalEncoder` instance." msgstr "" -#: library/codecs.rst:600 +#: library/codecs.rst:622 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 "" -#: library/codecs.rst:604 +#: library/codecs.rst:626 msgid "" "The :class:`IncrementalEncoder` may implement different error handling " "schemes by providing the *errors* keyword argument. See :ref:`error-" "handlers` for possible values." msgstr "" -#: library/codecs.rst:608 +#: library/codecs.rst:630 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 " @@ -751,21 +777,21 @@ msgid "" "`IncrementalEncoder` object." msgstr "" -#: library/codecs.rst:616 +#: library/codecs.rst:638 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 "" -#: library/codecs.rst:623 +#: library/codecs.rst:645 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 "" -#: library/codecs.rst:630 +#: library/codecs.rst:652 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 " @@ -774,42 +800,42 @@ msgid "" "into an integer.)" msgstr "" -#: library/codecs.rst:639 +#: library/codecs.rst:661 msgid "" "Set the state of the encoder to *state*. *state* must be an encoder state " "returned by :meth:`getstate`." msgstr "" -#: library/codecs.rst:646 +#: library/codecs.rst:668 msgid "IncrementalDecoder Objects" msgstr "" -#: library/codecs.rst:648 +#: library/codecs.rst:670 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 "" -#: library/codecs.rst:655 +#: library/codecs.rst:677 msgid "Constructor for an :class:`IncrementalDecoder` instance." msgstr "" -#: library/codecs.rst:657 +#: library/codecs.rst:679 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 "" -#: library/codecs.rst:661 +#: library/codecs.rst:683 msgid "" "The :class:`IncrementalDecoder` may implement different error handling " "schemes by providing the *errors* keyword argument. See :ref:`error-" "handlers` for possible values." msgstr "" -#: library/codecs.rst:665 +#: library/codecs.rst:687 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 " @@ -817,7 +843,7 @@ msgid "" "`IncrementalDecoder` object." msgstr "" -#: library/codecs.rst:673 +#: library/codecs.rst:695 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:" @@ -828,11 +854,11 @@ msgid "" "(which might raise an exception)." msgstr "" -#: library/codecs.rst:684 +#: library/codecs.rst:706 msgid "Reset the decoder to the initial state." msgstr "" -#: library/codecs.rst:689 +#: library/codecs.rst:711 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. " @@ -847,59 +873,59 @@ msgid "" "bytes of the resulting string into an integer.)" msgstr "" -#: library/codecs.rst:704 +#: library/codecs.rst:726 msgid "" "Set the state of the decoder to *state*. *state* must be a decoder state " "returned by :meth:`getstate`." msgstr "" -#: library/codecs.rst:709 +#: library/codecs.rst:731 msgid "Stream Encoding and Decoding" msgstr "" -#: library/codecs.rst:712 +#: library/codecs.rst:734 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 "" -#: library/codecs.rst:720 +#: library/codecs.rst:742 msgid "StreamWriter Objects" msgstr "" -#: library/codecs.rst:722 +#: library/codecs.rst:744 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 "" -#: library/codecs.rst:729 +#: library/codecs.rst:751 msgid "Constructor for a :class:`StreamWriter` instance." msgstr "" -#: library/codecs.rst:731 +#: library/codecs.rst:753 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 "" -#: library/codecs.rst:735 +#: library/codecs.rst:757 msgid "" "The *stream* argument must be a file-like object open for writing text or " "binary data, as appropriate for the specific codec." msgstr "" -#: library/codecs.rst:738 +#: library/codecs.rst:760 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 "" -#: library/codecs.rst:742 +#: library/codecs.rst:764 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 " @@ -907,70 +933,70 @@ msgid "" "object." msgstr "" -#: library/codecs.rst:748 +#: library/codecs.rst:770 msgid "Writes the object's contents encoded to the stream." msgstr "" -#: library/codecs.rst:753 +#: library/codecs.rst:775 msgid "" "Writes the concatenated iterable of strings to the stream (possibly by " "reusing the :meth:`write` method). Infinite or very large iterables are not " "supported. The standard bytes-to-bytes codecs do not support this method." msgstr "" -#: library/codecs.rst:856 +#: library/codecs.rst:878 msgid "Resets the codec buffers used for keeping internal state." msgstr "" -#: library/codecs.rst:763 +#: library/codecs.rst:785 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 "" -#: library/codecs.rst:768 +#: library/codecs.rst:790 msgid "" "In addition to the above methods, the :class:`StreamWriter` must also " "inherit all other methods and attributes from the underlying stream." msgstr "" -#: library/codecs.rst:775 +#: library/codecs.rst:797 msgid "StreamReader Objects" msgstr "" -#: library/codecs.rst:777 +#: library/codecs.rst:799 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 "" -#: library/codecs.rst:784 +#: library/codecs.rst:806 msgid "Constructor for a :class:`StreamReader` instance." msgstr "" -#: library/codecs.rst:786 +#: library/codecs.rst:808 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 "" -#: library/codecs.rst:790 +#: library/codecs.rst:812 msgid "" "The *stream* argument must be a file-like object open for reading text or " "binary data, as appropriate for the specific codec." msgstr "" -#: library/codecs.rst:793 +#: library/codecs.rst:815 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 "" -#: library/codecs.rst:797 +#: library/codecs.rst:819 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 " @@ -978,24 +1004,24 @@ msgid "" "object." msgstr "" -#: library/codecs.rst:801 +#: library/codecs.rst:823 msgid "" "The set of allowed values for the *errors* argument can be extended with :" "func:`register_error`." msgstr "" -#: library/codecs.rst:807 +#: library/codecs.rst:829 msgid "Decodes data from the stream and returns the resulting object." msgstr "" -#: library/codecs.rst:809 +#: library/codecs.rst:831 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 "" -#: library/codecs.rst:814 +#: library/codecs.rst:836 msgid "" "The *size* argument indicates the approximate maximum number of encoded " "bytes or code points to read for decoding. The decoder can modify this " @@ -1004,13 +1030,13 @@ msgid "" "huge files in one step." msgstr "" -#: library/codecs.rst:821 +#: library/codecs.rst:843 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 "" -#: library/codecs.rst:825 +#: library/codecs.rst:847 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 " @@ -1018,68 +1044,68 @@ msgid "" "the stream, these should be read too." msgstr "" -#: library/codecs.rst:833 +#: library/codecs.rst:855 msgid "Read one line from the input stream and return the decoded data." msgstr "" -#: library/codecs.rst:835 +#: library/codecs.rst:857 msgid "" "*size*, if given, is passed as size argument to the stream's :meth:`read` " "method." msgstr "" -#: library/codecs.rst:838 +#: library/codecs.rst:860 msgid "" "If *keepends* is false line-endings will be stripped from the lines returned." msgstr "" -#: library/codecs.rst:844 +#: library/codecs.rst:866 msgid "" "Read all lines available on the input stream and return them as a list of " "lines." msgstr "" -#: library/codecs.rst:847 +#: library/codecs.rst:869 msgid "" "Line-endings are implemented using the codec's :meth:`decode` method and are " "included in the list entries if *keepends* is true." msgstr "" -#: library/codecs.rst:850 +#: library/codecs.rst:872 msgid "" "*sizehint*, if given, is passed as the *size* argument to the stream's :meth:" "`read` method." msgstr "" -#: library/codecs.rst:858 +#: library/codecs.rst:880 msgid "" "Note that no stream repositioning should take place. This method is " "primarily intended to be able to recover from decoding errors." msgstr "" -#: library/codecs.rst:862 +#: library/codecs.rst:884 msgid "" "In addition to the above methods, the :class:`StreamReader` must also " "inherit all other methods and attributes from the underlying stream." msgstr "" -#: library/codecs.rst:868 +#: library/codecs.rst:890 msgid "StreamReaderWriter Objects" msgstr "" -#: library/codecs.rst:870 +#: library/codecs.rst:892 msgid "" "The :class:`StreamReaderWriter` is a convenience class that allows wrapping " "streams which work in both read and write modes." msgstr "" -#: library/codecs.rst:897 +#: library/codecs.rst:919 msgid "" "The design is such that one can use the factory functions returned by the :" "func:`lookup` function to construct the instance." msgstr "" -#: library/codecs.rst:879 +#: library/codecs.rst:901 msgid "" "Creates a :class:`StreamReaderWriter` instance. *stream* must be a file-like " "object. *Reader* and *Writer* must be factory functions or classes providing " @@ -1088,24 +1114,24 @@ msgid "" "writers." msgstr "" -#: library/codecs.rst:884 +#: library/codecs.rst:906 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 "" -#: library/codecs.rst:892 +#: library/codecs.rst:914 msgid "StreamRecoder Objects" msgstr "" -#: library/codecs.rst:894 +#: library/codecs.rst:916 msgid "" "The :class:`StreamRecoder` translates data from one encoding to another, " "which is sometimes useful when dealing with different encoding environments." msgstr "" -#: library/codecs.rst:903 +#: library/codecs.rst:925 msgid "" "Creates a :class:`StreamRecoder` instance which implements a two-way " "conversion: *encode* and *decode* work on the frontend — the data visible to " @@ -1113,17 +1139,17 @@ msgid "" "while *Reader* and *Writer* work on the backend — the data in *stream*." msgstr "" -#: library/codecs.rst:909 +#: library/codecs.rst:931 msgid "" "You can use these objects to do transparent transcodings, e.g., from Latin-1 " "to UTF-8 and back." msgstr "" -#: library/codecs.rst:912 +#: library/codecs.rst:934 msgid "The *stream* argument must be a file-like object." msgstr "" -#: library/codecs.rst:914 +#: library/codecs.rst:936 msgid "" "The *encode* and *decode* arguments must adhere to the :class:`Codec` " "interface. *Reader* and *Writer* must be factory functions or classes " @@ -1131,24 +1157,24 @@ msgid "" "interface respectively." msgstr "" -#: library/codecs.rst:919 +#: library/codecs.rst:941 msgid "" "Error handling is done in the same way as defined for the stream readers and " "writers." msgstr "" -#: library/codecs.rst:923 +#: library/codecs.rst:945 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 "" -#: library/codecs.rst:931 +#: library/codecs.rst:953 msgid "Encodings and Unicode" msgstr "" -#: library/codecs.rst:933 +#: library/codecs.rst:955 msgid "" "Strings are stored internally as sequences of code points in range " "``U+0000``--``U+10FFFF``. (See :pep:`393` for more details about the " @@ -1160,7 +1186,7 @@ msgid "" "which are collectivity referred to as :term:`text encodings `." msgstr "" -#: library/codecs.rst:943 +#: library/codecs.rst:965 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 " @@ -1171,7 +1197,7 @@ msgid "" "position 3: ordinal not in range(256)``." msgstr "" -#: library/codecs.rst:951 +#: library/codecs.rst:973 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 " @@ -1181,37 +1207,45 @@ msgid "" "that shows you which character is mapped to which byte value." msgstr "" -#: library/codecs.rst:958 +#: library/codecs.rst:980 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 a " -"``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 "" - -#: library/codecs.rst:984 +"respectively. Their disadvantage is that if, for example, you use ``UTF-32-" +"BE`` on a little endian machine you will always have to swap bytes on " +"encoding and decoding. Python's ``UTF-16`` and ``UTF-32`` codecs avoid this " +"problem by using the platform's native byte order when no BOM is present. " +"Python follows prevailing platform practice, so native-endian data round-" +"trips without redundant byte swapping, even though the Unicode Standard " +"defaults to big-endian when the byte order is unspecified. When these bytes " +"are read by a CPU with a different endianness, the bytes have to be swapped. " +"To be able to detect the endianness of a ``UTF-16`` or ``UTF-32`` byte " +"sequence, a BOM (\"Byte Order Mark\") is used. 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. " +"When the first character of a ``UTF-16`` or ``UTF-32`` byte sequence is " +"``U+FFFE``, the bytes have to be swapped on decoding." +msgstr "" + +#: library/codecs.rst:1001 +msgid "" +"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 "" + +#: library/codecs.rst:1011 msgid "" "There's another encoding that is able to encode the full range of Unicode " "characters: UTF-8. UTF-8 is an 8-bit encoding, which means there are no " @@ -1222,59 +1256,59 @@ msgid "" "which when concatenated give the Unicode character):" msgstr "" -#: library/codecs.rst:993 +#: library/codecs.rst:1020 msgid "Range" msgstr "" -#: library/codecs.rst:993 +#: library/codecs.rst:1020 msgid "Encoding" msgstr "" -#: library/codecs.rst:995 +#: library/codecs.rst:1022 msgid "``U-00000000`` ... ``U-0000007F``" msgstr "" -#: library/codecs.rst:995 +#: library/codecs.rst:1022 msgid "0xxxxxxx" msgstr "" -#: library/codecs.rst:997 +#: library/codecs.rst:1024 msgid "``U-00000080`` ... ``U-000007FF``" msgstr "" -#: library/codecs.rst:997 +#: library/codecs.rst:1024 msgid "110xxxxx 10xxxxxx" msgstr "" -#: library/codecs.rst:999 +#: library/codecs.rst:1026 msgid "``U-00000800`` ... ``U-0000FFFF``" msgstr "" -#: library/codecs.rst:999 +#: library/codecs.rst:1026 msgid "1110xxxx 10xxxxxx 10xxxxxx" msgstr "" -#: library/codecs.rst:1001 +#: library/codecs.rst:1028 msgid "``U-00010000`` ... ``U-0010FFFF``" msgstr "" -#: library/codecs.rst:1001 +#: library/codecs.rst:1028 msgid "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" msgstr "" -#: library/codecs.rst:1004 +#: library/codecs.rst:1031 msgid "" "The least significant bit of the Unicode character is the rightmost x bit." msgstr "" -#: library/codecs.rst:1006 +#: library/codecs.rst:1033 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 "" -#: library/codecs.rst:1010 +#: library/codecs.rst:1037 msgid "" "Without external information it's impossible to reliably determine which " "encoding was used for encoding a string. Each charmap encoding can decode " @@ -1300,7 +1334,7 @@ msgstr "" msgid "INVERTED QUESTION MARK" msgstr "" -#: library/codecs.rst:1026 +#: library/codecs.rst:1053 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 " @@ -1312,11 +1346,11 @@ msgid "" "the use of the BOM is discouraged and should generally be avoided." msgstr "" -#: library/codecs.rst:1039 +#: library/codecs.rst:1066 msgid "Standard Encodings" msgstr "" -#: library/codecs.rst:1041 +#: library/codecs.rst:1068 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 " @@ -1324,18 +1358,25 @@ msgid "" "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." +"underscore are also valid aliases because they are equivalent when " +"normalized by :func:`~encodings.normalize_encoding`. For example, " +"``'utf-8'`` is a valid alias for the ``'utf_8'`` codec." msgstr "" -#: library/codecs.rst:1049 +#: library/codecs.rst:1080 +msgid "" +"The below table lists the most common aliases, for a complete list refer to " +"the source :source:`aliases.py ` file." +msgstr "" + +#: library/codecs.rst:1083 msgid "" "On Windows, ``cpXXX`` codecs are available for all code pages. But only " "codecs listed in the following table are guarantead to exist on other " "platforms." msgstr "" -#: library/codecs.rst:1055 +#: library/codecs.rst:1089 msgid "" "Some common encodings can bypass the codecs lookup machinery to improve " "performance. These optimization opportunities are only recognized by CPython " @@ -1345,11 +1386,11 @@ msgid "" "Using alternative aliases for these encodings may result in slower execution." msgstr "" -#: library/codecs.rst:1063 +#: library/codecs.rst:1097 msgid "Optimization opportunity recognized for us-ascii." msgstr "" -#: library/codecs.rst:1066 +#: library/codecs.rst:1100 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 " @@ -1357,929 +1398,933 @@ msgid "" "languages in particular, the following variants typically exist:" msgstr "" -#: library/codecs.rst:1071 +#: library/codecs.rst:1105 msgid "an ISO 8859 codeset" msgstr "" -#: library/codecs.rst:1073 +#: library/codecs.rst:1107 msgid "" "a Microsoft Windows code page, which is typically derived from an 8859 " "codeset, but replaces control characters with additional graphic characters" msgstr "" -#: library/codecs.rst:1076 +#: library/codecs.rst:1110 msgid "an IBM EBCDIC code page" msgstr "" -#: library/codecs.rst:1078 +#: library/codecs.rst:1112 msgid "an IBM PC code page, which is ASCII compatible" msgstr "" -#: library/codecs.rst:1342 library/codecs.rst:1465 +#: library/codecs.rst:1376 library/codecs.rst:1533 msgid "Codec" msgstr "" -#: library/codecs.rst:1342 library/codecs.rst:1465 +#: library/codecs.rst:1376 library/codecs.rst:1533 msgid "Aliases" msgstr "" -#: library/codecs.rst:1083 +#: library/codecs.rst:1117 msgid "Languages" msgstr "" -#: library/codecs.rst:1085 +#: library/codecs.rst:1119 msgid "ascii" msgstr "" -#: library/codecs.rst:1085 +#: library/codecs.rst:1119 msgid "646, us-ascii" msgstr "" -#: library/codecs.rst:1091 library/codecs.rst:1099 +#: library/codecs.rst:1125 library/codecs.rst:1133 msgid "English" msgstr "" -#: library/codecs.rst:1087 +#: library/codecs.rst:1121 msgid "big5" msgstr "" -#: library/codecs.rst:1087 +#: library/codecs.rst:1121 msgid "big5-tw, csbig5" msgstr "" -#: library/codecs.rst:1089 library/codecs.rst:1148 +#: library/codecs.rst:1123 library/codecs.rst:1182 msgid "Traditional Chinese" msgstr "" -#: library/codecs.rst:1089 +#: library/codecs.rst:1123 msgid "big5hkscs" msgstr "" -#: library/codecs.rst:1089 +#: library/codecs.rst:1123 msgid "big5-hkscs, hkscs" msgstr "" -#: library/codecs.rst:1091 +#: library/codecs.rst:1125 msgid "cp037" msgstr "" -#: library/codecs.rst:1091 +#: library/codecs.rst:1125 msgid "IBM037, IBM039" msgstr "" -#: library/codecs.rst:1093 +#: library/codecs.rst:1127 msgid "cp273" msgstr "" -#: library/codecs.rst:1093 +#: library/codecs.rst:1127 msgid "273, IBM273, csIBM273" msgstr "" -#: library/codecs.rst:1093 +#: library/codecs.rst:1127 msgid "German" msgstr "" -#: library/codecs.rst:1097 +#: library/codecs.rst:1131 msgid "cp424" msgstr "" -#: library/codecs.rst:1097 +#: library/codecs.rst:1131 msgid "EBCDIC-CP-HE, IBM424" msgstr "" -#: library/codecs.rst:1117 library/codecs.rst:1171 library/codecs.rst:1234 +#: library/codecs.rst:1151 library/codecs.rst:1205 library/codecs.rst:1268 msgid "Hebrew" msgstr "" -#: library/codecs.rst:1099 +#: library/codecs.rst:1133 msgid "cp437" msgstr "" -#: library/codecs.rst:1099 +#: library/codecs.rst:1133 msgid "437, IBM437" msgstr "" -#: library/codecs.rst:1101 +#: library/codecs.rst:1135 msgid "cp500" msgstr "" -#: library/codecs.rst:1101 +#: library/codecs.rst:1135 msgid "EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500" msgstr "" -#: library/codecs.rst:1110 library/codecs.rst:1158 library/codecs.rst:1218 -#: library/codecs.rst:1274 +#: library/codecs.rst:1144 library/codecs.rst:1192 library/codecs.rst:1252 +#: library/codecs.rst:1308 msgid "Western Europe" msgstr "" -#: library/codecs.rst:1104 +#: library/codecs.rst:1138 msgid "cp720" msgstr "" -#: library/codecs.rst:1131 library/codecs.rst:1230 +#: library/codecs.rst:1165 library/codecs.rst:1264 msgid "Arabic" msgstr "" -#: library/codecs.rst:1106 +#: library/codecs.rst:1140 msgid "cp737" msgstr "" -#: library/codecs.rst:1137 library/codecs.rst:1167 library/codecs.rst:1267 +#: library/codecs.rst:1171 library/codecs.rst:1201 library/codecs.rst:1301 msgid "Greek" msgstr "" -#: library/codecs.rst:1108 +#: library/codecs.rst:1142 msgid "cp775" msgstr "" -#: library/codecs.rst:1108 +#: library/codecs.rst:1142 msgid "IBM775" msgstr "" -#: library/codecs.rst:1175 library/codecs.rst:1242 +#: library/codecs.rst:1209 library/codecs.rst:1276 msgid "Baltic languages" msgstr "" -#: library/codecs.rst:1110 +#: library/codecs.rst:1144 msgid "cp850" msgstr "" -#: library/codecs.rst:1110 +#: library/codecs.rst:1144 msgid "850, IBM850" msgstr "" -#: library/codecs.rst:1112 +#: library/codecs.rst:1146 msgid "cp852" msgstr "" -#: library/codecs.rst:1112 +#: library/codecs.rst:1146 msgid "852, IBM852" msgstr "" -#: library/codecs.rst:1160 library/codecs.rst:1271 +#: library/codecs.rst:1194 library/codecs.rst:1305 msgid "Central and Eastern Europe" msgstr "" -#: library/codecs.rst:1114 +#: library/codecs.rst:1148 msgid "cp855" msgstr "" -#: library/codecs.rst:1114 +#: library/codecs.rst:1148 msgid "855, IBM855" msgstr "" -#: library/codecs.rst:1162 library/codecs.rst:1264 +#: library/codecs.rst:1196 library/codecs.rst:1298 msgid "Belarusian, Bulgarian, Macedonian, Russian, Serbian" msgstr "" -#: library/codecs.rst:1117 +#: library/codecs.rst:1151 msgid "cp856" msgstr "" -#: library/codecs.rst:1119 +#: library/codecs.rst:1153 msgid "cp857" msgstr "" -#: library/codecs.rst:1119 +#: library/codecs.rst:1153 msgid "857, IBM857" msgstr "" -#: library/codecs.rst:1152 library/codecs.rst:1236 library/codecs.rst:1276 +#: library/codecs.rst:1186 library/codecs.rst:1270 library/codecs.rst:1310 msgid "Turkish" msgstr "" -#: library/codecs.rst:1121 +#: library/codecs.rst:1155 msgid "cp858" msgstr "" -#: library/codecs.rst:1121 +#: library/codecs.rst:1155 msgid "858, IBM858" msgstr "" -#: library/codecs.rst:1123 +#: library/codecs.rst:1157 msgid "cp860" msgstr "" -#: library/codecs.rst:1123 +#: library/codecs.rst:1157 msgid "860, IBM860" msgstr "" -#: library/codecs.rst:1123 +#: library/codecs.rst:1157 msgid "Portuguese" msgstr "" -#: library/codecs.rst:1125 +#: library/codecs.rst:1159 msgid "cp861" msgstr "" -#: library/codecs.rst:1125 +#: library/codecs.rst:1159 msgid "861, CP-IS, IBM861" msgstr "" -#: library/codecs.rst:1269 +#: library/codecs.rst:1303 msgid "Icelandic" msgstr "" -#: library/codecs.rst:1127 +#: library/codecs.rst:1161 msgid "cp862" msgstr "" -#: library/codecs.rst:1127 +#: library/codecs.rst:1161 msgid "862, IBM862" msgstr "" -#: library/codecs.rst:1129 +#: library/codecs.rst:1163 msgid "cp863" msgstr "" -#: library/codecs.rst:1129 +#: library/codecs.rst:1163 msgid "863, IBM863" msgstr "" -#: library/codecs.rst:1129 +#: library/codecs.rst:1163 msgid "Canadian" msgstr "" -#: library/codecs.rst:1131 +#: library/codecs.rst:1165 msgid "cp864" msgstr "" -#: library/codecs.rst:1131 +#: library/codecs.rst:1165 msgid "IBM864" msgstr "" -#: library/codecs.rst:1133 +#: library/codecs.rst:1167 msgid "cp865" msgstr "" -#: library/codecs.rst:1133 +#: library/codecs.rst:1167 msgid "865, IBM865" msgstr "" -#: library/codecs.rst:1133 +#: library/codecs.rst:1167 msgid "Danish, Norwegian" msgstr "" -#: library/codecs.rst:1135 +#: library/codecs.rst:1169 msgid "cp866" msgstr "" -#: library/codecs.rst:1135 +#: library/codecs.rst:1169 msgid "866, IBM866" msgstr "" -#: library/codecs.rst:1252 +#: library/codecs.rst:1286 msgid "Russian" msgstr "" -#: library/codecs.rst:1137 +#: library/codecs.rst:1171 msgid "cp869" msgstr "" -#: library/codecs.rst:1137 +#: library/codecs.rst:1171 msgid "869, CP-GR, IBM869" msgstr "" -#: library/codecs.rst:1139 +#: library/codecs.rst:1173 msgid "cp874" msgstr "" -#: library/codecs.rst:1139 +#: library/codecs.rst:1173 msgid "Thai" msgstr "" -#: library/codecs.rst:1141 +#: library/codecs.rst:1175 msgid "cp875" msgstr "" -#: library/codecs.rst:1143 +#: library/codecs.rst:1177 msgid "cp932" msgstr "" -#: library/codecs.rst:1143 +#: library/codecs.rst:1177 msgid "932, ms932, mskanji, ms-kanji, windows-31j" msgstr "" -#: library/codecs.rst:1179 library/codecs.rst:1183 library/codecs.rst:1203 -#: library/codecs.rst:1211 library/codecs.rst:1281 library/codecs.rst:1287 +#: library/codecs.rst:1213 library/codecs.rst:1217 library/codecs.rst:1237 +#: library/codecs.rst:1245 library/codecs.rst:1315 library/codecs.rst:1321 msgid "Japanese" msgstr "" -#: library/codecs.rst:1146 +#: library/codecs.rst:1180 msgid "cp949" msgstr "" -#: library/codecs.rst:1146 +#: library/codecs.rst:1180 msgid "949, ms949, uhc" msgstr "" -#: library/codecs.rst:1185 library/codecs.rst:1250 +#: library/codecs.rst:1219 library/codecs.rst:1284 msgid "Korean" msgstr "" -#: library/codecs.rst:1148 +#: library/codecs.rst:1182 msgid "cp950" msgstr "" -#: library/codecs.rst:1148 +#: library/codecs.rst:1182 msgid "950, ms950" msgstr "" -#: library/codecs.rst:1150 +#: library/codecs.rst:1184 msgid "cp1006" msgstr "" -#: library/codecs.rst:1150 +#: library/codecs.rst:1184 msgid "Urdu" msgstr "" -#: library/codecs.rst:1152 +#: library/codecs.rst:1186 msgid "cp1026" msgstr "" -#: library/codecs.rst:1152 +#: library/codecs.rst:1186 msgid "ibm1026" msgstr "" -#: library/codecs.rst:1154 +#: library/codecs.rst:1188 msgid "cp1125" msgstr "" -#: library/codecs.rst:1154 +#: library/codecs.rst:1188 msgid "1125, ibm1125, cp866u, ruscii" msgstr "" -#: library/codecs.rst:1258 +#: library/codecs.rst:1292 msgid "Ukrainian" msgstr "" -#: library/codecs.rst:1158 +#: library/codecs.rst:1192 msgid "cp1140" msgstr "" -#: library/codecs.rst:1158 +#: library/codecs.rst:1192 msgid "ibm1140" msgstr "" -#: library/codecs.rst:1160 +#: library/codecs.rst:1194 msgid "cp1250" msgstr "" -#: library/codecs.rst:1160 +#: library/codecs.rst:1194 msgid "windows-1250" msgstr "" -#: library/codecs.rst:1162 +#: library/codecs.rst:1196 msgid "cp1251" msgstr "" -#: library/codecs.rst:1162 +#: library/codecs.rst:1196 msgid "windows-1251" msgstr "" -#: library/codecs.rst:1165 +#: library/codecs.rst:1199 msgid "cp1252" msgstr "" -#: library/codecs.rst:1165 +#: library/codecs.rst:1199 msgid "windows-1252" msgstr "" -#: library/codecs.rst:1167 +#: library/codecs.rst:1201 msgid "cp1253" msgstr "" -#: library/codecs.rst:1167 +#: library/codecs.rst:1201 msgid "windows-1253" msgstr "" -#: library/codecs.rst:1169 +#: library/codecs.rst:1203 msgid "cp1254" msgstr "" -#: library/codecs.rst:1169 +#: library/codecs.rst:1203 msgid "windows-1254" msgstr "" -#: library/codecs.rst:1171 +#: library/codecs.rst:1205 msgid "cp1255" msgstr "" -#: library/codecs.rst:1171 +#: library/codecs.rst:1205 msgid "windows-1255" msgstr "" -#: library/codecs.rst:1173 +#: library/codecs.rst:1207 msgid "cp1256" msgstr "" -#: library/codecs.rst:1173 +#: library/codecs.rst:1207 msgid "windows-1256" msgstr "" -#: library/codecs.rst:1175 +#: library/codecs.rst:1209 msgid "cp1257" msgstr "" -#: library/codecs.rst:1175 +#: library/codecs.rst:1209 msgid "windows-1257" msgstr "" -#: library/codecs.rst:1177 +#: library/codecs.rst:1211 msgid "cp1258" msgstr "" -#: library/codecs.rst:1177 +#: library/codecs.rst:1211 msgid "windows-1258" msgstr "" -#: library/codecs.rst:1177 +#: library/codecs.rst:1211 msgid "Vietnamese" msgstr "" -#: library/codecs.rst:1179 +#: library/codecs.rst:1213 msgid "euc_jp" msgstr "" -#: library/codecs.rst:1179 +#: library/codecs.rst:1213 msgid "eucjp, ujis, u-jis" msgstr "" -#: library/codecs.rst:1181 +#: library/codecs.rst:1215 msgid "euc_jis_2004" msgstr "" -#: library/codecs.rst:1181 +#: library/codecs.rst:1215 msgid "jisx0213, eucjis2004" msgstr "" -#: library/codecs.rst:1183 +#: library/codecs.rst:1217 msgid "euc_jisx0213" msgstr "" -#: library/codecs.rst:1183 +#: library/codecs.rst:1217 msgid "eucjisx0213" msgstr "" -#: library/codecs.rst:1185 +#: library/codecs.rst:1219 msgid "euc_kr" msgstr "" -#: library/codecs.rst:1185 +#: library/codecs.rst:1219 msgid "euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001" msgstr "" -#: library/codecs.rst:1189 +#: library/codecs.rst:1223 msgid "gb2312" msgstr "" -#: library/codecs.rst:1189 +#: library/codecs.rst:1223 msgid "" "chinese, csiso58gb231280, euc-cn, euccn, eucgb2312-cn, gb2312-1980, " "gb2312-80, iso-ir-58" msgstr "" -#: library/codecs.rst:1198 +#: library/codecs.rst:1232 msgid "Simplified Chinese" msgstr "" -#: library/codecs.rst:1194 +#: library/codecs.rst:1228 msgid "gbk" msgstr "" -#: library/codecs.rst:1194 +#: library/codecs.rst:1228 msgid "936, cp936, ms936" msgstr "" -#: library/codecs.rst:1196 +#: library/codecs.rst:1230 msgid "Unified Chinese" msgstr "" -#: library/codecs.rst:1196 +#: library/codecs.rst:1230 msgid "gb18030" msgstr "" -#: library/codecs.rst:1196 +#: library/codecs.rst:1230 msgid "gb18030-2000" msgstr "" -#: library/codecs.rst:1198 +#: library/codecs.rst:1232 msgid "hz" msgstr "" -#: library/codecs.rst:1198 +#: library/codecs.rst:1232 msgid "hzgb, hz-gb, hz-gb-2312" msgstr "" -#: library/codecs.rst:1200 +#: library/codecs.rst:1234 msgid "iso2022_jp" msgstr "" -#: library/codecs.rst:1200 +#: library/codecs.rst:1234 msgid "csiso2022jp, iso2022jp, iso-2022-jp" msgstr "" -#: library/codecs.rst:1203 +#: library/codecs.rst:1237 msgid "iso2022_jp_1" msgstr "" -#: library/codecs.rst:1203 +#: library/codecs.rst:1237 msgid "iso2022jp-1, iso-2022-jp-1" msgstr "" -#: library/codecs.rst:1205 +#: library/codecs.rst:1239 msgid "iso2022_jp_2" msgstr "" -#: library/codecs.rst:1205 +#: library/codecs.rst:1239 msgid "iso2022jp-2, iso-2022-jp-2" msgstr "" -#: library/codecs.rst:1205 +#: library/codecs.rst:1239 msgid "Japanese, Korean, Simplified Chinese, Western Europe, Greek" msgstr "" -#: library/codecs.rst:1208 +#: library/codecs.rst:1242 msgid "iso2022_jp_2004" msgstr "" -#: library/codecs.rst:1208 +#: library/codecs.rst:1242 msgid "iso2022jp-2004, iso-2022-jp-2004" msgstr "" -#: library/codecs.rst:1211 +#: library/codecs.rst:1245 msgid "iso2022_jp_3" msgstr "" -#: library/codecs.rst:1211 +#: library/codecs.rst:1245 msgid "iso2022jp-3, iso-2022-jp-3" msgstr "" -#: library/codecs.rst:1213 +#: library/codecs.rst:1247 msgid "iso2022_jp_ext" msgstr "" -#: library/codecs.rst:1213 +#: library/codecs.rst:1247 msgid "iso2022jp-ext, iso-2022-jp-ext" msgstr "" -#: library/codecs.rst:1215 +#: library/codecs.rst:1249 msgid "iso2022_kr" msgstr "" -#: library/codecs.rst:1215 +#: library/codecs.rst:1249 msgid "csiso2022kr, iso2022kr, iso-2022-kr" msgstr "" -#: library/codecs.rst:1218 +#: library/codecs.rst:1252 msgid "latin_1" msgstr "" -#: library/codecs.rst:1218 +#: library/codecs.rst:1252 msgid "iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1" msgstr "" -#: library/codecs.rst:1221 +#: library/codecs.rst:1255 msgid "iso8859_2" msgstr "" -#: library/codecs.rst:1221 +#: library/codecs.rst:1255 msgid "iso-8859-2, latin2, L2" msgstr "" -#: library/codecs.rst:1223 +#: library/codecs.rst:1257 msgid "iso8859_3" msgstr "" -#: library/codecs.rst:1223 +#: library/codecs.rst:1257 msgid "iso-8859-3, latin3, L3" msgstr "" -#: library/codecs.rst:1223 +#: library/codecs.rst:1257 msgid "Esperanto, Maltese" msgstr "" -#: library/codecs.rst:1225 +#: library/codecs.rst:1259 msgid "iso8859_4" msgstr "" -#: library/codecs.rst:1225 +#: library/codecs.rst:1259 msgid "iso-8859-4, latin4, L4" msgstr "" -#: library/codecs.rst:1227 +#: library/codecs.rst:1259 +msgid "Northern Europe" +msgstr "" + +#: library/codecs.rst:1261 msgid "iso8859_5" msgstr "" -#: library/codecs.rst:1227 +#: library/codecs.rst:1261 msgid "iso-8859-5, cyrillic" msgstr "" -#: library/codecs.rst:1230 +#: library/codecs.rst:1264 msgid "iso8859_6" msgstr "" -#: library/codecs.rst:1230 +#: library/codecs.rst:1264 msgid "iso-8859-6, arabic" msgstr "" -#: library/codecs.rst:1232 +#: library/codecs.rst:1266 msgid "iso8859_7" msgstr "" -#: library/codecs.rst:1232 +#: library/codecs.rst:1266 msgid "iso-8859-7, greek, greek8" msgstr "" -#: library/codecs.rst:1234 +#: library/codecs.rst:1268 msgid "iso8859_8" msgstr "" -#: library/codecs.rst:1234 +#: library/codecs.rst:1268 msgid "iso-8859-8, hebrew" msgstr "" -#: library/codecs.rst:1236 +#: library/codecs.rst:1270 msgid "iso8859_9" msgstr "" -#: library/codecs.rst:1236 +#: library/codecs.rst:1270 msgid "iso-8859-9, latin5, L5" msgstr "" -#: library/codecs.rst:1238 +#: library/codecs.rst:1272 msgid "iso8859_10" msgstr "" -#: library/codecs.rst:1238 +#: library/codecs.rst:1272 msgid "iso-8859-10, latin6, L6" msgstr "" -#: library/codecs.rst:1238 +#: library/codecs.rst:1272 msgid "Nordic languages" msgstr "" -#: library/codecs.rst:1240 +#: library/codecs.rst:1274 msgid "iso8859_11" msgstr "" -#: library/codecs.rst:1240 +#: library/codecs.rst:1274 msgid "iso-8859-11, thai" msgstr "" -#: library/codecs.rst:1240 +#: library/codecs.rst:1274 msgid "Thai languages" msgstr "" -#: library/codecs.rst:1242 +#: library/codecs.rst:1276 msgid "iso8859_13" msgstr "" -#: library/codecs.rst:1242 +#: library/codecs.rst:1276 msgid "iso-8859-13, latin7, L7" msgstr "" -#: library/codecs.rst:1244 +#: library/codecs.rst:1278 msgid "iso8859_14" msgstr "" -#: library/codecs.rst:1244 +#: library/codecs.rst:1278 msgid "iso-8859-14, latin8, L8" msgstr "" -#: library/codecs.rst:1244 +#: library/codecs.rst:1278 msgid "Celtic languages" msgstr "" -#: library/codecs.rst:1246 +#: library/codecs.rst:1280 msgid "iso8859_15" msgstr "" -#: library/codecs.rst:1246 +#: library/codecs.rst:1280 msgid "iso-8859-15, latin9, L9" msgstr "" -#: library/codecs.rst:1248 +#: library/codecs.rst:1282 msgid "iso8859_16" msgstr "" -#: library/codecs.rst:1248 +#: library/codecs.rst:1282 msgid "iso-8859-16, latin10, L10" msgstr "" -#: library/codecs.rst:1248 +#: library/codecs.rst:1282 msgid "South-Eastern Europe" msgstr "" -#: library/codecs.rst:1250 +#: library/codecs.rst:1284 msgid "johab" msgstr "" -#: library/codecs.rst:1250 +#: library/codecs.rst:1284 msgid "cp1361, ms1361" msgstr "" -#: library/codecs.rst:1252 +#: library/codecs.rst:1286 msgid "koi8_r" msgstr "" -#: library/codecs.rst:1254 +#: library/codecs.rst:1288 msgid "koi8_t" msgstr "" -#: library/codecs.rst:1254 +#: library/codecs.rst:1288 msgid "Tajik" msgstr "" -#: library/codecs.rst:1258 +#: library/codecs.rst:1292 msgid "koi8_u" msgstr "" -#: library/codecs.rst:1260 +#: library/codecs.rst:1294 msgid "kz1048" msgstr "" -#: library/codecs.rst:1260 +#: library/codecs.rst:1294 msgid "kz_1048, strk1048_2002, rk1048" msgstr "" -#: library/codecs.rst:1278 +#: library/codecs.rst:1312 msgid "Kazakh" msgstr "" -#: library/codecs.rst:1264 +#: library/codecs.rst:1298 msgid "mac_cyrillic" msgstr "" -#: library/codecs.rst:1264 +#: library/codecs.rst:1298 msgid "maccyrillic" msgstr "" -#: library/codecs.rst:1267 +#: library/codecs.rst:1301 msgid "mac_greek" msgstr "" -#: library/codecs.rst:1267 +#: library/codecs.rst:1301 msgid "macgreek" msgstr "" -#: library/codecs.rst:1269 +#: library/codecs.rst:1303 msgid "mac_iceland" msgstr "" -#: library/codecs.rst:1269 +#: library/codecs.rst:1303 msgid "maciceland" msgstr "" -#: library/codecs.rst:1271 +#: library/codecs.rst:1305 msgid "mac_latin2" msgstr "" -#: library/codecs.rst:1271 +#: library/codecs.rst:1305 msgid "maclatin2, maccentraleurope, mac_centeuro" msgstr "" -#: library/codecs.rst:1274 +#: library/codecs.rst:1308 msgid "mac_roman" msgstr "" -#: library/codecs.rst:1274 +#: library/codecs.rst:1308 msgid "macroman, macintosh" msgstr "" -#: library/codecs.rst:1276 +#: library/codecs.rst:1310 msgid "mac_turkish" msgstr "" -#: library/codecs.rst:1276 +#: library/codecs.rst:1310 msgid "macturkish" msgstr "" -#: library/codecs.rst:1278 +#: library/codecs.rst:1312 msgid "ptcp154" msgstr "" -#: library/codecs.rst:1278 +#: library/codecs.rst:1312 msgid "csptcp154, pt154, cp154, cyrillic-asian" msgstr "" -#: library/codecs.rst:1281 +#: library/codecs.rst:1315 msgid "shift_jis" msgstr "" -#: library/codecs.rst:1281 +#: library/codecs.rst:1315 msgid "csshiftjis, shiftjis, sjis, s_jis" msgstr "" -#: library/codecs.rst:1284 +#: library/codecs.rst:1318 msgid "shift_jis_2004" msgstr "" -#: library/codecs.rst:1284 +#: library/codecs.rst:1318 msgid "shiftjis2004, sjis_2004, sjis2004" msgstr "" -#: library/codecs.rst:1287 +#: library/codecs.rst:1321 msgid "shift_jisx0213" msgstr "" -#: library/codecs.rst:1287 +#: library/codecs.rst:1321 msgid "shiftjisx0213, sjisx0213, s_jisx0213" msgstr "" -#: library/codecs.rst:1290 +#: library/codecs.rst:1324 msgid "utf_32" msgstr "" -#: library/codecs.rst:1290 +#: library/codecs.rst:1324 msgid "U32, utf32" msgstr "" -#: library/codecs.rst:1292 library/codecs.rst:1296 library/codecs.rst:1300 -#: library/codecs.rst:1304 library/codecs.rst:1306 +#: library/codecs.rst:1326 library/codecs.rst:1330 library/codecs.rst:1334 +#: library/codecs.rst:1338 library/codecs.rst:1340 msgid "all languages" msgstr "" -#: library/codecs.rst:1292 +#: library/codecs.rst:1326 msgid "utf_32_be" msgstr "" -#: library/codecs.rst:1292 +#: library/codecs.rst:1326 msgid "UTF-32BE" msgstr "" -#: library/codecs.rst:1294 +#: library/codecs.rst:1328 msgid "utf_32_le" msgstr "" -#: library/codecs.rst:1294 +#: library/codecs.rst:1328 msgid "UTF-32LE" msgstr "" -#: library/codecs.rst:1296 +#: library/codecs.rst:1330 msgid "utf_16" msgstr "" -#: library/codecs.rst:1296 +#: library/codecs.rst:1330 msgid "U16, utf16" msgstr "" -#: library/codecs.rst:1298 +#: library/codecs.rst:1332 msgid "utf_16_be" msgstr "" -#: library/codecs.rst:1298 +#: library/codecs.rst:1332 msgid "UTF-16BE" msgstr "" -#: library/codecs.rst:1300 +#: library/codecs.rst:1334 msgid "utf_16_le" msgstr "" -#: library/codecs.rst:1300 +#: library/codecs.rst:1334 msgid "UTF-16LE" msgstr "" -#: library/codecs.rst:1302 +#: library/codecs.rst:1336 msgid "utf_7" msgstr "" -#: library/codecs.rst:1302 +#: library/codecs.rst:1336 msgid "U7, unicode-1-1-utf-7" msgstr "" -#: library/codecs.rst:1304 +#: library/codecs.rst:1338 msgid "utf_8" msgstr "" -#: library/codecs.rst:1304 +#: library/codecs.rst:1338 msgid "U8, UTF, utf8, cp65001" msgstr "" -#: library/codecs.rst:1306 +#: library/codecs.rst:1340 msgid "utf_8_sig" msgstr "" -#: library/codecs.rst:1309 +#: library/codecs.rst:1343 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 "" -#: library/codecs.rst:1315 +#: library/codecs.rst:1349 msgid "``cp65001`` is now an alias to ``utf_8``." msgstr "" -#: library/codecs.rst:1318 +#: library/codecs.rst:1352 msgid "On Windows, ``cpXXX`` codecs are now available for all code pages." msgstr "" -#: library/codecs.rst:1323 +#: library/codecs.rst:1357 msgid "Python Specific Encodings" msgstr "" -#: library/codecs.rst:1325 +#: library/codecs.rst:1359 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 " @@ -2289,268 +2334,384 @@ msgid "" "asymmetric codecs, the stated meaning describes the encoding direction." msgstr "" -#: library/codecs.rst:1333 +#: library/codecs.rst:1367 msgid "Text Encodings" msgstr "" -#: library/codecs.rst:1335 +#: library/codecs.rst:1369 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 "" -#: library/codecs.rst:1344 +#: library/codecs.rst:1378 msgid "idna" msgstr "" -#: library/codecs.rst:1344 +#: library/codecs.rst:1378 msgid "" "Implement :rfc:`3490`, see also :mod:`encodings.idna`. Only " "``errors='strict'`` is supported." msgstr "" -#: library/codecs.rst:1350 +#: library/codecs.rst:1384 msgid "mbcs" msgstr "" -#: library/codecs.rst:1350 +#: library/codecs.rst:1384 msgid "ansi, dbcs" msgstr "" -#: library/codecs.rst:1350 +#: library/codecs.rst:1384 msgid "" "Windows only: Encode the operand according to the ANSI codepage (CP_ACP)." msgstr "" -#: library/codecs.rst:1354 +#: library/codecs.rst:1388 msgid "oem" msgstr "" -#: library/codecs.rst:1354 +#: library/codecs.rst:1388 msgid "" "Windows only: Encode the operand according to the OEM codepage (CP_OEMCP)." msgstr "" -#: library/codecs.rst:1360 +#: library/codecs.rst:1394 msgid "palmos" msgstr "" -#: library/codecs.rst:1360 +#: library/codecs.rst:1394 msgid "Encoding of PalmOS 3.5." msgstr "" -#: library/codecs.rst:1362 +#: library/codecs.rst:1396 msgid "punycode" msgstr "" -#: library/codecs.rst:1362 +#: library/codecs.rst:1396 msgid "Implement :rfc:`3492`. Stateful codecs are not supported." msgstr "" -#: library/codecs.rst:1366 +#: library/codecs.rst:1400 msgid "raw_unicode_escape" msgstr "" -#: library/codecs.rst:1366 +#: library/codecs.rst:1400 msgid "" "Latin-1 encoding with :samp:`\\\\u{XXXX}` and :samp:`\\\\U{XXXXXXXX}` for " "other code points. Existing backslashes are not escaped in any way. It is " "used in the Python pickle protocol." msgstr "" -#: library/codecs.rst:1376 +#: library/codecs.rst:1410 msgid "undefined" msgstr "" -#: library/codecs.rst:1376 +#: library/codecs.rst:1410 +msgid "This Codec should only be used for testing purposes." +msgstr "" + +#: library/codecs.rst:1414 msgid "" "Raise an exception for all conversions, even empty strings. The error " "handler is ignored." msgstr "" -#: library/codecs.rst:1381 +#: library/codecs.rst:1419 msgid "unicode_escape" msgstr "" -#: library/codecs.rst:1381 +#: library/codecs.rst:1419 msgid "" "Encoding suitable as the contents of a Unicode literal in ASCII-encoded " "Python source code, except that quotes are not escaped. Decode from Latin-1 " "source code. Beware that Python source code actually uses UTF-8 by default." msgstr "" -#: library/codecs.rst:1393 +#: library/codecs.rst:1431 msgid "\"unicode_internal\" codec is removed." msgstr "" -#: library/codecs.rst:1400 +#: library/codecs.rst:1438 msgid "Binary Transforms" msgstr "" -#: library/codecs.rst:1402 +#: library/codecs.rst:1440 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 "" -#: library/codecs.rst:1410 +#: library/codecs.rst:1448 msgid "Encoder / decoder" msgstr "" -#: library/codecs.rst:1412 +#: library/codecs.rst:1450 msgid "base64_codec [#b64]_" msgstr "" -#: library/codecs.rst:1412 +#: library/codecs.rst:1450 msgid "base64, base_64" msgstr "" -#: library/codecs.rst:1412 +#: library/codecs.rst:1450 msgid "" "Convert the operand to multiline MIME base64 (the result always includes a " "trailing ``'\\n'``)." msgstr "" -#: library/codecs.rst:1417 +#: library/codecs.rst:1455 msgid "" "accepts any :term:`bytes-like object` as input for encoding and decoding" msgstr "" -#: library/codecs.rst:1412 +#: library/codecs.rst:1450 msgid ":meth:`base64.encodebytes` / :meth:`base64.decodebytes`" msgstr "" -#: library/codecs.rst:1423 +#: library/codecs.rst:1461 msgid "bz2_codec" msgstr "" -#: library/codecs.rst:1423 +#: library/codecs.rst:1461 msgid "bz2" msgstr "" -#: library/codecs.rst:1423 +#: library/codecs.rst:1461 msgid "Compress the operand using bz2." msgstr "" -#: library/codecs.rst:1423 +#: library/codecs.rst:1461 msgid ":meth:`bz2.compress` / :meth:`bz2.decompress`" msgstr "" -#: library/codecs.rst:1426 +#: library/codecs.rst:1464 msgid "hex_codec" msgstr "" -#: library/codecs.rst:1426 +#: library/codecs.rst:1464 msgid "hex" msgstr "" -#: library/codecs.rst:1426 +#: library/codecs.rst:1464 msgid "" "Convert the operand to hexadecimal representation, with two digits per byte." msgstr "" -#: library/codecs.rst:1426 +#: library/codecs.rst:1464 msgid ":meth:`binascii.b2a_hex` / :meth:`binascii.a2b_hex`" msgstr "" -#: library/codecs.rst:1431 +#: library/codecs.rst:1469 msgid "quopri_codec" msgstr "" -#: library/codecs.rst:1431 +#: library/codecs.rst:1469 msgid "quopri, quotedprintable, quoted_printable" msgstr "" -#: library/codecs.rst:1431 +#: library/codecs.rst:1469 msgid "Convert the operand to MIME quoted printable." msgstr "" -#: library/codecs.rst:1431 +#: library/codecs.rst:1469 msgid ":meth:`quopri.encode` with ``quotetabs=True`` / :meth:`quopri.decode`" msgstr "" -#: library/codecs.rst:1435 +#: library/codecs.rst:1473 msgid "uu_codec" msgstr "" -#: library/codecs.rst:1435 +#: library/codecs.rst:1473 msgid "uu" msgstr "" -#: library/codecs.rst:1435 +#: library/codecs.rst:1473 msgid "Convert the operand using uuencode." msgstr "" -#: library/codecs.rst:1438 +#: library/codecs.rst:1476 msgid "zlib_codec" msgstr "" -#: library/codecs.rst:1438 +#: library/codecs.rst:1476 msgid "zip, zlib" msgstr "" -#: library/codecs.rst:1438 +#: library/codecs.rst:1476 msgid "Compress the operand using gzip." msgstr "" -#: library/codecs.rst:1438 +#: library/codecs.rst:1476 msgid ":meth:`zlib.compress` / :meth:`zlib.decompress`" msgstr "" -#: library/codecs.rst:1442 +#: library/codecs.rst:1480 msgid "" "In addition to :term:`bytes-like objects `, " "``'base64_codec'`` also accepts ASCII-only instances of :class:`str` for " "decoding" msgstr "" -#: library/codecs.rst:1446 +#: library/codecs.rst:1484 msgid "Restoration of the binary transforms." msgstr "" -#: library/codecs.rst:1449 +#: library/codecs.rst:1487 msgid "Restoration of the aliases for the binary transforms." msgstr "" -#: library/codecs.rst:1456 +#: library/codecs.rst:1494 +msgid "Standalone Codec Functions" +msgstr "" + +#: library/codecs.rst:1496 +msgid "" +"The following functions provide encoding and decoding functionality similar " +"to codecs, but are not available as named codecs through :func:`codecs." +"encode` or :func:`codecs.decode`. They are used internally (for example, by :" +"mod:`pickle`) and behave similarly to the ``string_escape`` codec that was " +"removed in Python 3." +msgstr "" + +#: library/codecs.rst:1503 +msgid "" +"Encode *input* using escape sequences. Similar to how :func:`repr` on bytes " +"produces escaped byte values." +msgstr "" + +#: library/codecs.rst:1506 +msgid "*input* must be a :class:`bytes` object." +msgstr "" + +#: library/codecs.rst:1517 +msgid "" +"Returns a tuple ``(output, length)`` where *output* is a :class:`bytes` " +"object and *length* is the number of bytes consumed." +msgstr "" + +#: library/codecs.rst:1513 +msgid "Decode *input* from escape sequences back to the original bytes." +msgstr "" + +#: library/codecs.rst:1515 +msgid "*input* must be a :term:`bytes-like object`." +msgstr "" + +#: library/codecs.rst:1524 msgid "Text Transforms" msgstr "" -#: library/codecs.rst:1458 +#: library/codecs.rst:1526 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 "" -#: library/codecs.rst:1467 +#: library/codecs.rst:1535 msgid "rot_13" msgstr "" -#: library/codecs.rst:1467 +#: library/codecs.rst:1535 msgid "rot13" msgstr "" -#: library/codecs.rst:1467 +#: library/codecs.rst:1535 msgid "Return the Caesar-cypher encryption of the operand." msgstr "" -#: library/codecs.rst:1472 +#: library/codecs.rst:1540 msgid "Restoration of the ``rot_13`` text transform." msgstr "" -#: library/codecs.rst:1475 +#: library/codecs.rst:1543 msgid "Restoration of the ``rot13`` alias." msgstr "" -#: library/codecs.rst:1480 +#: library/codecs.rst:1548 +msgid ":mod:`encodings` --- Encodings package" +msgstr "" + +#: library/codecs.rst:1553 +msgid "This module implements the following functions:" +msgstr "" + +#: library/codecs.rst:1557 +msgid "Normalize encoding name *encoding*." +msgstr "" + +#: library/codecs.rst:1559 +msgid "" +"Normalization works as follows: all non-alphanumeric characters except the " +"dot used for Python package names are collapsed and replaced with a single " +"underscore, leading and trailing underscores are removed. For example, ``' " +"-;#'`` becomes ``'_'``." +msgstr "" + +#: library/codecs.rst:1564 +msgid "Note that *encoding* should be ASCII only." +msgstr "" + +#: library/codecs.rst:1568 +msgid "" +"The following functions should not be used directly, except for testing " +"purposes; :func:`codecs.lookup` should be used instead." +msgstr "" + +#: library/codecs.rst:1574 +msgid "" +"Search for the codec module corresponding to the given encoding name " +"*encoding*." +msgstr "" + +#: library/codecs.rst:1577 +msgid "" +"This function first normalizes the *encoding* using :func:" +"`normalize_encoding`, then looks for a corresponding alias. It attempts to " +"import a codec module from the encodings package using either the alias or " +"the normalized name. If the module is found and defines a valid " +"``getregentry()`` function that returns a :class:`codecs.CodecInfo` object, " +"the codec is cached and returned." +msgstr "" + +#: library/codecs.rst:1584 +msgid "" +"If the codec module defines a ``getaliases()`` function any returned aliases " +"are registered for future use." +msgstr "" + +#: library/codecs.rst:1590 +msgid "" +"Search for a Windows code page encoding *encoding* of the form ``cpXXXX``." +msgstr "" + +#: library/codecs.rst:1592 +msgid "" +"If the code page is valid and supported, return a :class:`codecs.CodecInfo` " +"object for it." +msgstr "" + +#: library/codecs.rst:1681 +msgid "Availability" +msgstr "" + +#: library/codecs.rst:1600 +msgid "This module implements the following exception:" +msgstr "" + +#: library/codecs.rst:1604 +msgid "Raised when a codec is invalid or incompatible." +msgstr "" + +#: library/codecs.rst:1608 msgid "" ":mod:`encodings.idna` --- Internationalized Domain Names in Applications" msgstr "" -#: library/codecs.rst:1486 +#: library/codecs.rst:1614 msgid "" "This module implements :rfc:`3490` (Internationalized Domain Names in " "Applications) and :rfc:`3492` (Nameprep: A Stringprep Profile for " @@ -2558,13 +2719,13 @@ msgid "" "encoding and :mod:`stringprep`." msgstr "" -#: library/codecs.rst:1491 +#: library/codecs.rst:1619 msgid "" "If you need the IDNA 2008 standard from :rfc:`5891` and :rfc:`5895`, use the " "third-party :pypi:`idna` module." msgstr "" -#: library/codecs.rst:1494 +#: library/codecs.rst:1622 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." @@ -2578,7 +2739,7 @@ msgid "" "presenting them to the user." msgstr "" -#: library/codecs.rst:1505 +#: library/codecs.rst:1633 msgid "" "Python supports this conversion in several ways: the ``idna`` codec " "performs conversion between Unicode and ACE, separating an input string into " @@ -2595,14 +2756,14 @@ msgid "" "sends that field at all)." msgstr "" -#: library/codecs.rst:1518 +#: library/codecs.rst:1646 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 "" -#: library/codecs.rst:1522 +#: library/codecs.rst:1650 msgid "" "The module :mod:`encodings.idna` also implements the nameprep procedure, " "which performs certain normalizations on host names, to achieve case-" @@ -2610,49 +2771,45 @@ msgid "" "characters. The nameprep functions can be used directly if desired." msgstr "" -#: library/codecs.rst:1530 +#: library/codecs.rst:1658 msgid "" "Return the nameprepped version of *label*. The implementation currently " "assumes query strings, so ``AllowUnassigned`` is true." msgstr "" -#: library/codecs.rst:1536 +#: library/codecs.rst:1664 msgid "" "Convert a label to ASCII, as specified in :rfc:`3490`. ``UseSTD3ASCIIRules`` " "is assumed to be false." msgstr "" -#: library/codecs.rst:1542 +#: library/codecs.rst:1670 msgid "Convert a label to Unicode, as specified in :rfc:`3490`." msgstr "" -#: library/codecs.rst:1546 +#: library/codecs.rst:1674 msgid ":mod:`encodings.mbcs` --- Windows ANSI codepage" msgstr "" -#: library/codecs.rst:1551 +#: library/codecs.rst:1679 msgid "This module implements the ANSI codepage (CP_ACP)." msgstr "" -#: library/codecs.rst:1553 -msgid "Availability" -msgstr "" - -#: library/codecs.rst:1555 +#: library/codecs.rst:1683 msgid "" "Before 3.2, the *errors* argument was ignored; ``'replace'`` was always used " "to encode, and ``'ignore'`` to decode." msgstr "" -#: library/codecs.rst:1559 +#: library/codecs.rst:1687 msgid "Support any error handler." msgstr "" -#: library/codecs.rst:1564 +#: library/codecs.rst:1692 msgid ":mod:`encodings.utf_8_sig` --- UTF-8 codec with BOM signature" msgstr "" -#: library/codecs.rst:1570 +#: library/codecs.rst:1698 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 " @@ -2681,70 +2838,70 @@ msgstr "" msgid "stackable" msgstr "" -#: library/codecs.rst:316 +#: library/codecs.rst:338 msgid "strict" msgstr "" -#: library/codecs.rst:368 library/codecs.rst:391 +#: library/codecs.rst:390 library/codecs.rst:413 msgid "error handler's name" msgstr "" -#: library/codecs.rst:316 +#: library/codecs.rst:338 msgid "ignore" msgstr "" -#: library/codecs.rst:316 +#: library/codecs.rst:338 msgid "replace" msgstr "" -#: library/codecs.rst:316 +#: library/codecs.rst:338 msgid "backslashreplace" msgstr "" -#: library/codecs.rst:316 +#: library/codecs.rst:338 msgid "surrogateescape" msgstr "" -#: library/codecs.rst:316 +#: library/codecs.rst:338 msgid "? (question mark)" msgstr "" -#: library/codecs.rst:316 +#: library/codecs.rst:338 msgid "replacement character" msgstr "" -#: library/codecs.rst:316 +#: library/codecs.rst:338 msgid "\\ (backslash)" msgstr "" -#: library/codecs.rst:368 +#: library/codecs.rst:390 msgid "escape sequence" msgstr "" -#: library/codecs.rst:316 +#: library/codecs.rst:338 msgid "\\x" msgstr "" -#: library/codecs.rst:316 +#: library/codecs.rst:338 msgid "\\u" msgstr "" -#: library/codecs.rst:316 +#: library/codecs.rst:338 msgid "\\U" msgstr "" -#: library/codecs.rst:368 +#: library/codecs.rst:390 msgid "xmlcharrefreplace" msgstr "" -#: library/codecs.rst:368 +#: library/codecs.rst:390 msgid "namereplace" msgstr "" -#: library/codecs.rst:368 +#: library/codecs.rst:390 msgid "\\N" msgstr "" -#: library/codecs.rst:391 +#: library/codecs.rst:413 msgid "surrogatepass" msgstr "" diff --git a/library/codeop.po b/library/codeop.po index 686da5e8..efea6e18 100644 --- a/library/codeop.po +++ b/library/codeop.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/collections.abc.po b/library/collections.abc.po index ecaa8fff..3c508c13 100644 --- a/library/collections.abc.po +++ b/library/collections.abc.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-05-02 23:52+0200\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -290,7 +290,7 @@ msgstr ":class:`Generator` [1]_" msgid ":class:`Iterator`" msgstr ":class:`Iterator`" -#: library/collections.abc.rst:127 library/collections.abc.rst:173 +#: library/collections.abc.rst:127 library/collections.abc.rst:176 msgid "``send``, ``throw``" msgstr "``send``, ``throw``" @@ -322,11 +322,12 @@ msgstr ":class:`Collection` [1]_" msgid ":class:`Sized`, :class:`Iterable`, :class:`Container`" msgstr ":class:`Sized`, :class:`Iterable`, :class:`Container`" -#: library/collections.abc.rst:130 library/collections.abc.rst:143 +#: library/collections.abc.rst:130 library/collections.abc.rst:146 msgid "``__contains__``, ``__iter__``, ``__len__``" msgstr "``__contains__``, ``__iter__``, ``__len__``" #: library/collections.abc.rst:134 library/collections.abc.rst:137 +#: library/collections.abc.rst:143 msgid ":class:`Sequence`" msgstr ":class:`Sequence`" @@ -334,7 +335,7 @@ msgstr ":class:`Sequence`" msgid ":class:`Reversible`, :class:`Collection`" msgstr ":class:`Reversible`, :class:`Collection`" -#: library/collections.abc.rst:134 +#: library/collections.abc.rst:134 library/collections.abc.rst:143 msgid "``__getitem__``, ``__len__``" msgstr "``__getitem__``, ``__len__``" @@ -362,15 +363,23 @@ msgstr "" "Κληρονομημένες :class:`Sequence` μέθοδοι και ``append``, ``clear``, " "``reverse``, ``extend``, ``pop``, ``remove``, and ``__iadd__``" -#: library/collections.abc.rst:143 library/collections.abc.rst:148 +#: library/collections.abc.rst:143 +msgid ":class:`ByteString`" +msgstr ":class:`ByteString`" + +#: library/collections.abc.rst:143 +msgid "Inherited :class:`Sequence` methods" +msgstr "Κληρονομημένες :class:`Sequence` μέθοδοι" + +#: library/collections.abc.rst:146 library/collections.abc.rst:151 msgid ":class:`Set`" msgstr ":class:`Set`" -#: library/collections.abc.rst:143 library/collections.abc.rst:154 +#: library/collections.abc.rst:146 library/collections.abc.rst:157 msgid ":class:`Collection`" msgstr ":class:`Collection`" -#: library/collections.abc.rst:143 +#: library/collections.abc.rst:146 msgid "" "``__le__``, ``__lt__``, ``__eq__``, ``__ne__``, ``__gt__``, ``__ge__``, " "``__and__``, ``__or__``, ``__sub__``, ``__rsub__``, ``__xor__``, " @@ -380,15 +389,15 @@ msgstr "" "``__and__``, ``__or__``, ``__sub__``, ``__rsub__``, ``__xor__``, " "``__rxor__`` και ``isdisjoint``" -#: library/collections.abc.rst:148 +#: library/collections.abc.rst:151 msgid ":class:`MutableSet`" msgstr ":class:`MutableSet`" -#: library/collections.abc.rst:148 +#: library/collections.abc.rst:151 msgid "``__contains__``, ``__iter__``, ``__len__``, ``add``, ``discard``" msgstr "``__contains__``, ``__iter__``, ``__len__``, ``add``, ``discard``" -#: library/collections.abc.rst:148 +#: library/collections.abc.rst:151 msgid "" "Inherited :class:`Set` methods and ``clear``, ``pop``, ``remove``, " "``__ior__``, ``__iand__``, ``__ixor__``, and ``__isub__``" @@ -396,15 +405,15 @@ msgstr "" "Κληρονομημένες :class:`Set` μέθοδοι και ``clear``, ``pop``, ``remove``, " "``__ior__``, ``__iand__``, ``__ixor__``, και ``__isub__``" -#: library/collections.abc.rst:154 library/collections.abc.rst:158 +#: library/collections.abc.rst:157 library/collections.abc.rst:161 msgid ":class:`Mapping`" msgstr ":class:`Mapping`" -#: library/collections.abc.rst:154 +#: library/collections.abc.rst:157 msgid "``__getitem__``, ``__iter__``, ``__len__``" msgstr "``__getitem__``, ``__iter__``, ``__len__``" -#: library/collections.abc.rst:154 +#: library/collections.abc.rst:157 msgid "" "``__contains__``, ``keys``, ``items``, ``values``, ``get``, ``__eq__``, and " "``__ne__``" @@ -412,17 +421,17 @@ msgstr "" "``__contains__``, ``keys``, ``items``, ``values``, ``get``, ``__eq__``, και " "``__ne__``" -#: library/collections.abc.rst:158 +#: library/collections.abc.rst:161 msgid ":class:`MutableMapping`" msgstr ":class:`MutableMapping`" -#: library/collections.abc.rst:158 +#: library/collections.abc.rst:161 msgid "" "``__getitem__``, ``__setitem__``, ``__delitem__``, ``__iter__``, ``__len__``" msgstr "" "``__getitem__``, ``__setitem__``, ``__delitem__``, ``__iter__``, ``__len__``" -#: library/collections.abc.rst:158 +#: library/collections.abc.rst:161 msgid "" "Inherited :class:`Mapping` methods and ``pop``, ``popitem``, ``clear``, " "``update``, and ``setdefault``" @@ -430,112 +439,112 @@ msgstr "" "Κληρονομημένες :class:`Mapping` μέθοδοι και ``pop``, ``popitem``, ``clear``, " "``update``, και ``setdefault``" -#: library/collections.abc.rst:165 +#: library/collections.abc.rst:168 msgid ":class:`MappingView`" msgstr ":class:`MappingView`" -#: library/collections.abc.rst:165 +#: library/collections.abc.rst:168 msgid ":class:`Sized`" msgstr ":class:`Sized`" -#: library/collections.abc.rst:165 +#: library/collections.abc.rst:168 msgid "``__init__``, ``__len__`` and ``__repr__``" msgstr "``__init__``, ``__len__`` and ``__repr__``" -#: library/collections.abc.rst:166 +#: library/collections.abc.rst:169 msgid ":class:`ItemsView`" msgstr ":class:`ItemsView`" -#: library/collections.abc.rst:166 library/collections.abc.rst:168 +#: library/collections.abc.rst:169 library/collections.abc.rst:171 msgid ":class:`MappingView`, :class:`Set`" msgstr ":class:`MappingView`, :class:`Set`" -#: library/collections.abc.rst:166 library/collections.abc.rst:168 -#: library/collections.abc.rst:170 +#: library/collections.abc.rst:169 library/collections.abc.rst:171 +#: library/collections.abc.rst:173 msgid "``__contains__``, ``__iter__``" msgstr "``__contains__``, ``__iter__``" -#: library/collections.abc.rst:168 +#: library/collections.abc.rst:171 msgid ":class:`KeysView`" msgstr ":class:`KeysView`" -#: library/collections.abc.rst:170 +#: library/collections.abc.rst:173 msgid ":class:`ValuesView`" msgstr ":class:`ValuesView`" -#: library/collections.abc.rst:170 +#: library/collections.abc.rst:173 msgid ":class:`MappingView`, :class:`Collection`" msgstr ":class:`MappingView`, :class:`Collection`" -#: library/collections.abc.rst:172 +#: library/collections.abc.rst:175 msgid ":class:`Awaitable` [1]_" msgstr ":class:`Awaitable` [1]_" -#: library/collections.abc.rst:172 +#: library/collections.abc.rst:175 msgid "``__await__``" msgstr "``__await__``" -#: library/collections.abc.rst:173 +#: library/collections.abc.rst:176 msgid ":class:`Coroutine` [1]_" msgstr ":class:`Coroutine` [1]_" -#: library/collections.abc.rst:173 +#: library/collections.abc.rst:176 msgid ":class:`Awaitable`" msgstr ":class:`Awaitable`" -#: library/collections.abc.rst:173 +#: library/collections.abc.rst:176 msgid "``close``" msgstr "``close``" -#: library/collections.abc.rst:174 +#: library/collections.abc.rst:177 msgid ":class:`AsyncIterable` [1]_" msgstr ":class:`AsyncIterable` [1]_" -#: library/collections.abc.rst:174 library/collections.abc.rst:175 +#: library/collections.abc.rst:177 library/collections.abc.rst:178 msgid "``__aiter__``" msgstr "``__aiter__``" -#: library/collections.abc.rst:175 +#: library/collections.abc.rst:178 msgid ":class:`AsyncIterator` [1]_" msgstr ":class:`AsyncIterator` [1]_" -#: library/collections.abc.rst:175 +#: library/collections.abc.rst:178 msgid ":class:`AsyncIterable`" msgstr ":class:`AsyncIterable`" -#: library/collections.abc.rst:175 +#: library/collections.abc.rst:178 msgid "``__anext__``" msgstr "``__anext__``" -#: library/collections.abc.rst:176 +#: library/collections.abc.rst:179 msgid ":class:`AsyncGenerator` [1]_" msgstr ":class:`AsyncGenerator` [1]_" -#: library/collections.abc.rst:176 +#: library/collections.abc.rst:179 msgid ":class:`AsyncIterator`" msgstr ":class:`AsyncIterator`" -#: library/collections.abc.rst:176 +#: library/collections.abc.rst:179 msgid "``asend``, ``athrow``" msgstr "``asend``, ``athrow``" -#: library/collections.abc.rst:176 +#: library/collections.abc.rst:179 msgid "``aclose``, ``__aiter__``, ``__anext__``" msgstr "``aclose``, ``__aiter__``, ``__anext__``" -#: library/collections.abc.rst:177 +#: library/collections.abc.rst:180 msgid ":class:`Buffer` [1]_" msgstr ":class:`Buffer` [1]_" -#: library/collections.abc.rst:177 +#: library/collections.abc.rst:180 msgid "``__buffer__``" msgstr "``__buffer__``" -#: library/collections.abc.rst:182 +#: library/collections.abc.rst:185 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: library/collections.abc.rst:183 +#: library/collections.abc.rst:186 msgid "" "These ABCs override :meth:`~abc.ABCMeta.__subclasshook__` to support testing " "an interface by verifying the required methods are present and have not been " @@ -548,7 +557,7 @@ msgstr "" "`None`. Αυτό λειτουργεί μόνο για απλές διεπαφές. Πιο σύνθετες διεπαφές " "απαιτούν εγγραφή ή άμεση υποκλάση." -#: library/collections.abc.rst:189 +#: library/collections.abc.rst:192 msgid "" "Checking ``isinstance(obj, Iterable)`` detects classes that are registered " "as :class:`Iterable` or that have an :meth:`~container.__iter__` method, but " @@ -563,27 +572,27 @@ msgstr "" "προσδιοριστεί αν ένα αντικείμενο είναι :term:`iterable` είναι να καλέσετε " "``iter(obj)``." -#: library/collections.abc.rst:197 +#: library/collections.abc.rst:200 msgid "Collections Abstract Base Classes -- Detailed Descriptions" msgstr "Αφηρημένες Βασικές Κλάσεις Συλλογών -- Αναλυτικές Περιγραφές" -#: library/collections.abc.rst:202 +#: library/collections.abc.rst:205 msgid "ABC for classes that provide the :meth:`~object.__contains__` method." msgstr "ABC για κλάσεις που παρέχουν την μέθοδο :meth:`~object.__contains__`." -#: library/collections.abc.rst:206 +#: library/collections.abc.rst:209 msgid "ABC for classes that provide the :meth:`~object.__hash__` method." msgstr "ABC για κλάσεις που παρέχουν την μέθοδο :meth:`~object.__hash__`." -#: library/collections.abc.rst:210 +#: library/collections.abc.rst:213 msgid "ABC for classes that provide the :meth:`~object.__len__` method." msgstr "ABC για κλάσεις που παρέχουν την μέθοδο :meth:`~object.__len__`." -#: library/collections.abc.rst:214 +#: library/collections.abc.rst:217 msgid "ABC for classes that provide the :meth:`~object.__call__` method." msgstr "ABC για κλάσεις που παρέχουν την μέθοδο :meth:`~object.__call__`." -#: library/collections.abc.rst:216 +#: library/collections.abc.rst:219 msgid "" "See :ref:`annotating-callables` for details on how to use :class:`!Callable` " "in type annotations." @@ -591,11 +600,11 @@ msgstr "" "Ανατρέξτε στο :ref:`annotating-callables` για λεπτομέρειες σχετικά με τον " "τρόπο χρήσης του :class:`!Callable` σε τύπους annotations." -#: library/collections.abc.rst:221 +#: library/collections.abc.rst:224 msgid "ABC for classes that provide the :meth:`~container.__iter__` method." msgstr "ABC για κλάσεις που παρέχουν την μέθοδο :meth:`~container.__iter__`." -#: library/collections.abc.rst:223 +#: library/collections.abc.rst:226 msgid "" "Checking ``isinstance(obj, Iterable)`` detects classes that are registered " "as :class:`Iterable` or that have an :meth:`~container.__iter__` method, but " @@ -610,11 +619,11 @@ msgstr "" "τρόπος για να προσδιοριστεί αν ένα αντικείμενο είναι :term:`iterable` είναι " "να κληθεί ``iter(obj)``." -#: library/collections.abc.rst:232 +#: library/collections.abc.rst:235 msgid "ABC for sized iterable container classes." msgstr "ABC για τις κλάσεις επαναλαμβανόμενων container με μέγεθος." -#: library/collections.abc.rst:238 +#: library/collections.abc.rst:241 msgid "" "ABC for classes that provide the :meth:`~iterator.__iter__` and :meth:" "`~iterator.__next__` methods. See also the definition of :term:`iterator`." @@ -622,7 +631,7 @@ msgstr "" "ABC για κλάσεις που παρέχουν τις μεθόδους :meth:`~iterator.__iter__` και :" "meth:`~iterator.__next__`. Δείτε επίσης τον ορισμό του :term:`iterator`." -#: library/collections.abc.rst:244 +#: library/collections.abc.rst:247 msgid "" "ABC for iterable classes that also provide the :meth:`~object.__reversed__` " "method." @@ -630,7 +639,7 @@ msgstr "" "ABC για τις επαναλαμβανόμενες κλάσεις που παρέχουν επίσης τη μέθοδο :meth:" "`~object.__reversed__`." -#: library/collections.abc.rst:251 +#: library/collections.abc.rst:254 msgid "" "ABC for :term:`generator` classes that implement the protocol defined in :" "pep:`342` that extends :term:`iterators ` with the :meth:" @@ -642,7 +651,7 @@ msgstr "" "` με τις μεθόδους :meth:`~generator.send`, :meth:`~generator." "throw` και :meth:`~generator.close`." -#: library/collections.abc.rst:256 +#: library/collections.abc.rst:259 msgid "" "See :ref:`annotating-generators-and-coroutines` for details on using :class:" "`!Generator` in type annotations." @@ -650,53 +659,109 @@ msgstr "" "Δείτε. :ref:`annotating-generators-and-coroutines` για λεπτομέρειες σχετικά " "με τη χρήση του :class:`!Generator` σε τύπους annotations." -#: library/collections.abc.rst:264 +#: library/collections.abc.rst:268 msgid "ABCs for read-only and mutable :term:`sequences `." msgstr "" "ABCs μόνο για ανάγνωση (read-only) και mutable :term:`sequences `." -#: library/collections.abc.rst:266 +#: library/collections.abc.rst:270 msgid "" "Implementation note: Some of the mixin methods, such as :meth:`~container." -"__iter__`, :meth:`~object.__reversed__` and :meth:`index`, make repeated " -"calls to the underlying :meth:`~object.__getitem__` method. Consequently, " -"if :meth:`~object.__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." +"__iter__`, :meth:`~object.__reversed__`, and :meth:`~sequence.index` make " +"repeated calls to the underlying :meth:`~object.__getitem__` method. " +"Consequently, if :meth:`~object.__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 "" "Σημείωση υλοποίησης: Μερικές από τις μεθόδους mixin, όπως :meth:`~container." -"__iter__`, :meth:`~object.__reversed__` και :meth:`index`, κάνουν " +"__iter__`, :meth:`~object.__reversed__` και :meth:`~sequence.index`, κάνουν " "επανειλημμένες κλήσεις στην μέθοδο :meth:`~object.__getitem__`. Ως " "αποτέλεσμα, αν η :meth:`~object.__getitem__` είναι υλοποιημένη με σταθερή " -"ταχύτητα πρόσβασης, οι μέθοδοι mixin θα έχουν γραμμική απόδοση. Ωστόσο, αν η " +"ταχύτητα πρόσβασης, οι μέθοδοι mixin θα έχουν γραμμική απόδοση∙ ωστόσο, αν η " "υποκείμενη μέθοδος είναι γραμμική (όπως θα ήταν με μια συνδεδεμένη λίστα), " "οι mixins θα έχουν τετραγωνική απόδοση και πιθανώς θα χρειαστεί να " "αντικατασταθούν." -#: library/collections.abc.rst:275 -msgid "The index() method added support for *stop* and *start* arguments." +#: library/collections.abc.rst:282 +msgid "Return first index of *value*." +msgstr "Επιστρέφει τον πρώτο δείκτη του *value*." + +#: library/collections.abc.rst:284 +msgid "Raises :exc:`ValueError` if the value is not present." +msgstr "Κάνει raise μια :exc:`ValueError` αν η τιμή δεν είναι παρούσα." + +#: library/collections.abc.rst:286 +msgid "" +"Supporting the *start* and *stop* arguments is optional, but recommended." msgstr "" -"Η μέθοδος index() πρόσθεσε υποστήριξη για τα ορίσματα *stop* και *start*." +"Η υποστήριξη των ορισμάτων *start* και *stop* είναι προαιρετική, αλλά " +"συνιστάται." -#: library/collections.abc.rst:282 +#: library/collections.abc.rst:288 +msgid "" +"The :meth:`~sequence.index` method gained support for the *stop* and *start* " +"arguments." +msgstr "" +"Η μέθοδος :meth:`~sequence.index` πρόσθεσε υποστήριξη για τα ορίσματα *stop* και *start*." + +#: library/collections.abc.rst:292 +msgid "The :class:`ByteString` ABC has been deprecated." +msgstr "Η ABC :class:`ByteString` έχει αποσυρθεί." + +#: library/collections.abc.rst:295 +msgid "" +"Use ``isinstance(obj, collections.abc.Buffer)`` to test if ``obj`` " +"implements the :ref:`buffer protocol ` at runtime. For use in " +"type annotations, either use :class:`Buffer` or a union that explicitly " +"specifies the types your code supports (e.g., ``bytes | bytearray | " +"memoryview``)." +msgstr "" +"Χρησιμοποιήστε το ``isinstance(obj, collections.abc.Buffer)`` για να ελέγξετε " +"αν το ``obj`` υλοποιεί το :ref:`buffer protocol ` κατά το " +"runtime. Για χρήση σε type annotations, είτε χρησιμοποιήστε την :class:`Buffer` " +"είτε μια ένωση που να καθορίζει ρητά τους τύπους που υποστηρίζει ο κώδικάς σας " +"(π.χ., ``bytes | bytearray | memoryview``)." + +#: library/collections.abc.rst:301 +msgid "" +":class:`!ByteString` was originally intended to be an abstract class that " +"would serve as a supertype of both :class:`bytes` and :class:`bytearray`. " +"However, since the ABC never had any methods, knowing that an object was an " +"instance of :class:`!ByteString` never actually told you anything useful " +"about the object. Other common buffer types such as :class:`memoryview` were " +"also never understood as subtypes of :class:`!ByteString` (either at runtime " +"or by static type checkers)." +msgstr "" +"Η :class:`!ByteString` προοριζόταν αρχικά να είναι μια αφηρημένη κλάση που θα " +"λειτουργούσε ως υπερτύπος τόσο για την :class:`bytes` όσο και για την :class:`bytearray`. " +"Ωστόσο, δεδομένου ότι η ABC δεν είχε καμία μέθοδο, η γνώση ότι ένα αντικείμενο ήταν " +"στιγμιότυπο της :class:`!ByteString` δεν σας έλεγε ποτέ κάτι χρήσιμο για το αντικείμενο. " +"Άλλοι κοινοί τύποι buffer όπως η :class:`memoryview` επίσης δεν θεωρούνταν ποτέ ως υποτύποι της " +":class:`!ByteString` (ούτε κατά το runtime ούτε από στατικούς ελεγκτές τύπων)." + +#: library/collections.abc.rst:309 +msgid "See :pep:`PEP 688 <688#current-options>` for more details." +msgstr "Δείτε :pep:`PEP 688 <688#current-options>` για περισσότερες λεπτομέρειες." + +#: library/collections.abc.rst:314 msgid "ABCs for read-only and mutable :ref:`sets `." msgstr "" "ABCs μόνο για ανάγνωση (read-only) και mutable :ref:`sets `." -#: library/collections.abc.rst:287 +#: library/collections.abc.rst:319 msgid "ABCs for read-only and mutable :term:`mappings `." msgstr "" "ABCs μόνο για ανάγνωση (read-only) και mutable :term:`mappings `." -#: library/collections.abc.rst:294 +#: library/collections.abc.rst:326 msgid "" "ABCs for mapping, items, keys, and values :term:`views `." msgstr "" "ABCs για αντιστοιχήσεις, στοιχεία, κλειδιά και τιμές :term:`views " "`." -#: library/collections.abc.rst:298 +#: library/collections.abc.rst:330 msgid "" "ABC for :term:`awaitable` objects, which can be used in :keyword:`await` " "expressions. Custom implementations must provide the :meth:`~object." @@ -706,7 +771,7 @@ msgstr "" "εκφράσεις :keyword:`await`. Οι προσαρμοσμένες υλοποιήσεις πρέπει να παρέχουν " "τη μέθοδο :meth:`~object.__await__`." -#: library/collections.abc.rst:302 +#: library/collections.abc.rst:334 msgid "" ":term:`Coroutine ` objects and instances of the :class:" "`~collections.abc.Coroutine` ABC are all instances of this ABC." @@ -714,22 +779,22 @@ msgstr "" "Τα αντικείμενα :term:`Coroutine ` και τα στιγμιότυπα της κλάσης :" "class:`~collections.abc.Coroutine` είναι όλα παραδείγματα αυτής της ABC." -#: library/collections.abc.rst:306 +#: library/collections.abc.rst:338 msgid "" "In CPython, generator-based coroutines (:term:`generators ` " -"decorated with :func:`@types.coroutine `) are *awaitables*, " -"even though they do not have an :meth:`~object.__await__` method. Using " -"``isinstance(gencoro, Awaitable)`` for them will return ``False``. Use :func:" -"`inspect.isawaitable` to detect them." +"decorated with :deco:`types.coroutine`) are *awaitables*, even though they " +"do not have an :meth:`~object.__await__` method. Using ``isinstance(gencoro, " +"Awaitable)`` for them will return ``False``. Use :func:`inspect.isawaitable` " +"to detect them." msgstr "" "Στην CPython, οι generator-based coroutines (:term:`generators ` " -"που είναι decorated με :func:`@types.coroutine `) είναι " +"που είναι decorated με :deco:`types.coroutine`) είναι " "*awaitables*, αν και δεν διαθέτουν μέθοδο :meth:`~object.__await__`. Η χρήση " "της ``isinstance(gencoro, Awaitable)`` γι' αυτές θα επιστρέψει ``False``. " "Χρησιμοποιείτε τη συνάρτηση :func:`inspect.isawaitable` για να τις " "εντοπίσετε." -#: library/collections.abc.rst:316 +#: library/collections.abc.rst:348 msgid "" "ABC for :term:`coroutine` compatible classes. These implement the following " "methods, defined in :ref:`coroutine-objects`: :meth:`~coroutine.send`, :meth:" @@ -744,21 +809,21 @@ msgstr "" "`~object.__await__`. Όλα τα :class:`Coroutine` στιγμιότυπα είναι επίσης " "στιγμιότυπα της κλάσης :class:`Awaitable`." -#: library/collections.abc.rst:324 +#: library/collections.abc.rst:356 msgid "" "In CPython, generator-based coroutines (:term:`generators ` " -"decorated with :func:`@types.coroutine `) are *awaitables*, " -"even though they do not have an :meth:`~object.__await__` method. Using " -"``isinstance(gencoro, Coroutine)`` for them will return ``False``. Use :func:" -"`inspect.isawaitable` to detect them." +"decorated with :deco:`types.coroutine`) are *awaitables*, even though they " +"do not have an :meth:`~object.__await__` method. Using ``isinstance(gencoro, " +"Coroutine)`` for them will return ``False``. Use :func:`inspect.isawaitable` " +"to detect them." msgstr "" "Στην CPython, οι generator-based coroutines (:term:`generators ` " -"που είναι διακοσμημένες με :func:`@types.coroutine `) είναι " +"που είναι διακοσμημένες με :deco:`types.coroutine`) είναι " "*awaitables*, αν και δεν έχουν τη μέθοδο :meth:`~object.__await__`. Η χρήση " "της ``isinstance (gencoro, Coroutine)`` γι' αυτές θα επιστρέψει ``False``. " "Χρησιμοποιείται η συνάρτηση :func:`inspect.isawaitable` για να εντοπιστούν." -#: library/collections.abc.rst:330 +#: library/collections.abc.rst:362 msgid "" "See :ref:`annotating-generators-and-coroutines` for details on using :class:" "`!Coroutine` in type annotations. The variance and order of type parameters " @@ -768,7 +833,7 @@ msgstr "" "τη χρήση της :class:`!Coroutine` σε σχολιασμούς τύπου. Η διακύμανση και η " "σειρά των παραμέτρων τύπου αντιστοιχούν σε εκείνες της :class:`Generator`." -#: library/collections.abc.rst:339 +#: library/collections.abc.rst:371 msgid "" "ABC for classes that provide an ``__aiter__`` method. See also the " "definition of :term:`asynchronous iterable`." @@ -776,7 +841,7 @@ msgstr "" "ABC για κλάσεις που παρέχουν μια μέθοδο ``__aiter__``. Δείτε επίσης τον " "ορισμό του :term:`asynchronous iterable`." -#: library/collections.abc.rst:346 +#: library/collections.abc.rst:378 msgid "" "ABC for classes that provide ``__aiter__`` and ``__anext__`` methods. See " "also the definition of :term:`asynchronous iterator`." @@ -784,7 +849,7 @@ msgstr "" "ABC για κλάσεις που παρέχουν τις μεθόδους ``__aiter__`` και ``__anext__``. " "Δείτε επίσης τον ορισμό του :term:`asynchronous iterator`." -#: library/collections.abc.rst:353 +#: library/collections.abc.rst:385 msgid "" "ABC for :term:`asynchronous generator` classes that implement the protocol " "defined in :pep:`525` and :pep:`492`." @@ -792,7 +857,7 @@ msgstr "" "ABC για κλάσεις :term:`asynchronous generator` που υλοποιούν το πρωτόκολλο " "που ορίζεται στο :pep:`525` και :pep:`492`." -#: library/collections.abc.rst:356 +#: library/collections.abc.rst:388 msgid "" "See :ref:`annotating-generators-and-coroutines` for details on using :class:" "`!AsyncGenerator` in type annotations." @@ -800,7 +865,7 @@ msgstr "" "Δείτε :ref:`annotating-generators-and-coroutines` για λεπτομέρειες σχετικά " "με τη χρήση του :class:`!AsyncGenerator` σε σχολιασμούς τύπου." -#: library/collections.abc.rst:363 +#: library/collections.abc.rst:395 msgid "" "ABC for classes that provide the :meth:`~object.__buffer__` method, " "implementing the :ref:`buffer protocol `. See :pep:`688`." @@ -808,11 +873,11 @@ msgstr "" "ABC για κλάσεις που παρέχουν τη μέθοδο :meth:`~object.__buffer__`, " "υλοποιώντας το :ref:`buffer protocol `. Δείτε το :pep:`688`." -#: library/collections.abc.rst:369 +#: library/collections.abc.rst:401 msgid "Examples and Recipes" msgstr "Παραδείγματα και Συνταγές" -#: library/collections.abc.rst:371 +#: library/collections.abc.rst:403 msgid "" "ABCs allow us to ask classes or instances if they provide particular " "functionality, for example::" @@ -820,7 +885,7 @@ msgstr "" "Οι ABCs επιτρέπουν να ρωτήσουμε τις κλάσεις ή τα αντικείμενα αν παρέχουν " "συγκεκριμένη λειτουργικότητα, για παράδειγμα::" -#: library/collections.abc.rst:374 +#: library/collections.abc.rst:406 msgid "" "size = None\n" "if isinstance(myvar, collections.abc.Sized):\n" @@ -830,7 +895,7 @@ msgstr "" "if isinstance(myvar, collections.abc.Sized):\n" " size = len(myvar)" -#: library/collections.abc.rst:378 +#: library/collections.abc.rst:410 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 " @@ -847,7 +912,7 @@ msgstr "" "ABC παρέχει τις υπόλοιπες μεθόδους, όπως :meth:`!__and__` και :meth:" "`~frozenset.isdisjoint`::" -#: library/collections.abc.rst:385 +#: library/collections.abc.rst:417 msgid "" "class ListBasedSet(collections.abc.Set):\n" " ''' Alternate set implementation favoring space over speed\n" @@ -895,12 +960,12 @@ msgstr "" "overlap = s1 & s2 # The __and__() method is supported " "automatically" -#: library/collections.abc.rst:407 +#: library/collections.abc.rst:439 msgid "Notes on using :class:`Set` and :class:`MutableSet` as a mixin:" msgstr "" "Σημειώσεις για τη χρήση των :class:`Set` και :class:`MutableSet` ως mixin:" -#: library/collections.abc.rst:410 +#: library/collections.abc.rst:442 msgid "" "Since some set operations create new sets, the default mixin methods need a " "way to create new instances from an :term:`iterable`. The class constructor " @@ -923,7 +988,7 @@ msgstr "" "αντικαταστήσετε την :meth:`!_from_iterable` με μια μέθοδο κλάσης ή κανονική " "μέθοδο που μπορεί να δημιουργήσει νέα αντικείμενα από ένα όρισμα iterable." -#: library/collections.abc.rst:421 +#: library/collections.abc.rst:453 msgid "" "To override the comparisons (presumably for speed, as the semantics are " "fixed), redefine :meth:`~object.__le__` and :meth:`~object.__ge__`, then the " @@ -934,7 +999,7 @@ msgstr "" "__le__`, και :meth:`~object.__ge__`, και οι άλλες λειτουργίες θα " "ακολουθήσουν αυτόματα." -#: library/collections.abc.rst:427 +#: library/collections.abc.rst:459 msgid "" "The :class:`Set` mixin provides a :meth:`!_hash` method to compute a hash " "value for the set; however, :meth:`~object.__hash__` is not defined because " @@ -949,7 +1014,7 @@ msgstr "" "χρησιμοποιώντας mixins, κληρονομήστε τόσο από τις κλάσεις :meth:`Set` όσο " "και :meth:`Hashable`, και στη συνέχεια ορίστε ``__hash__ = Set._hash``." -#: library/collections.abc.rst:435 +#: library/collections.abc.rst:467 msgid "" "`OrderedSet recipe `_ for an " "example built on :class:`MutableSet`." @@ -957,18 +1022,12 @@ msgstr "" "Συνταγή `OrderedSet `_ για ένα " "παράδειγμα που βασίζεται στην κλάση :class:`MutableSet`." -#: library/collections.abc.rst:438 +#: library/collections.abc.rst:470 msgid "For more about ABCs, see the :mod:`abc` module and :pep:`3119`." msgstr "" "Για περισσότερα σχετικά με τις ABCs, δείτε το :mod:`abc` module και το :pep:" "`3119`." -#~ msgid ":class:`ByteString`" -#~ msgstr ":class:`ByteString`" - -#~ msgid "Inherited :class:`Sequence` methods" -#~ msgstr "Κληρονομημένες :class:`Sequence` μέθοδοι" - #~ msgid "" #~ "The :class:`ByteString` ABC has been deprecated. For use in typing, " #~ "prefer a union, like ``bytes | bytearray``, or :class:`collections.abc." diff --git a/library/collections.po b/library/collections.po index c8ee4623..930fc6c1 100644 --- a/library/collections.po +++ b/library/collections.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1000,9 +1000,9 @@ msgstr "" #: library/collections.rst:761 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." +"This attribute is used by the :meth:`~defaultdict.__missing__` method; it is " +"initialized from the first argument to the constructor, if present, or to " +"``None``, if absent." msgstr "" #: library/collections.rst:1192 @@ -1024,10 +1024,10 @@ msgstr "" 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 " +"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 " +"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 "" diff --git a/library/colorsys.po b/library/colorsys.po index fe74af11..164b6668 100644 --- a/library/colorsys.po +++ b/library/colorsys.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-20 12:46+0300\n" "Last-Translator: ALEXANDROS TZIORAS alextzioras23@gmail.com\n" "Language-Team: Language-Team: PyGreece \n" diff --git a/library/compileall.po b/library/compileall.po index 1e8afbdf..96322bf8 100644 --- a/library/compileall.po +++ b/library/compileall.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/compression.po b/library/compression.po index 8211f561..e9697094 100644 --- a/library/compression.po +++ b/library/compression.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+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" @@ -20,7 +21,7 @@ msgstr "" msgid "The :mod:`!compression` package" msgstr "" -#: library/compression.rst:6 +#: library/compression.rst:8 msgid "" "The :mod:`!compression` package contains the canonical compression modules " "containing interfaces to several different compression algorithms. Some of " @@ -30,23 +31,23 @@ msgid "" "modules in :mod:`!compression` is encouraged where practical." msgstr "" -#: library/compression.rst:13 +#: library/compression.rst:15 msgid ":mod:`!compression.bz2` -- Re-exports :mod:`bz2`" msgstr "" -#: library/compression.rst:14 +#: library/compression.rst:16 msgid ":mod:`!compression.gzip` -- Re-exports :mod:`gzip`" msgstr "" -#: library/compression.rst:15 +#: library/compression.rst:17 msgid ":mod:`!compression.lzma` -- Re-exports :mod:`lzma`" msgstr "" -#: library/compression.rst:16 +#: library/compression.rst:18 msgid ":mod:`!compression.zlib` -- Re-exports :mod:`zlib`" msgstr "" -#: library/compression.rst:17 +#: library/compression.rst:19 msgid "" ":mod:`compression.zstd` -- Wrapper for the Zstandard compression library" msgstr "" diff --git a/library/compression.zstd.po b/library/compression.zstd.po index aebde2e3..e3a2cc3c 100644 --- a/library/compression.zstd.po +++ b/library/compression.zstd.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+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" @@ -71,27 +72,35 @@ msgid "" "class:`Strategy` classes for setting advanced (de)compression parameters." msgstr "" -#: library/compression.zstd.rst:38 +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." +msgstr "" + +#: library/compression.zstd.rst:40 msgid "Exceptions" msgstr "" -#: library/compression.zstd.rst:42 +#: library/compression.zstd.rst:44 msgid "" "This exception is raised when an error occurs during compression or " "decompression, or while initializing the (de)compressor state." msgstr "" -#: library/compression.zstd.rst:47 +#: library/compression.zstd.rst:49 msgid "Reading and writing compressed files" msgstr "" -#: library/compression.zstd.rst:52 +#: library/compression.zstd.rst:54 msgid "" "Open a Zstandard-compressed file in binary or text mode, returning a :term:" "`file object`." msgstr "" -#: library/compression.zstd.rst:55 +#: library/compression.zstd.rst:57 msgid "" "The *file* argument can be either a file name (given as a :class:`str`, :" "class:`bytes` or :term:`path-like ` object), in which case " @@ -99,7 +108,7 @@ msgid "" "or write to." msgstr "" -#: library/compression.zstd.rst:60 +#: library/compression.zstd.rst:62 msgid "" "The mode argument can be either ``'rb'`` for reading (default), ``'wb'`` for " "overwriting, ``'ab'`` for appending, or ``'xb'`` for exclusive creation. " @@ -108,7 +117,7 @@ msgid "" "``'at'``, and ``'xt'`` respectively." msgstr "" -#: library/compression.zstd.rst:66 library/compression.zstd.rst:110 +#: library/compression.zstd.rst:68 library/compression.zstd.rst:112 msgid "" "When reading, the *options* argument can be a dictionary providing advanced " "decompression parameters; see :class:`DecompressionParameter` for detailed " @@ -117,7 +126,7 @@ msgid "" "*level* argument is not None, a :exc:`!TypeError` will be raised." msgstr "" -#: library/compression.zstd.rst:73 +#: library/compression.zstd.rst:75 msgid "" "When writing, the *options* argument can be a dictionary providing advanced " "decompression parameters; see :class:`CompressionParameter` for detailed " @@ -127,25 +136,25 @@ msgid "" "`ZstdDict` instance to be used during compression." msgstr "" -#: library/compression.zstd.rst:81 +#: library/compression.zstd.rst:83 msgid "" "In binary mode, this function is equivalent to the :class:`ZstdFile` " "constructor: ``ZstdFile(file, mode, ...)``. In this case, the *encoding*, " "*errors*, and *newline* parameters must not be provided." msgstr "" -#: library/compression.zstd.rst:85 +#: library/compression.zstd.rst:87 msgid "" "In text mode, a :class:`ZstdFile` object is created, and wrapped in an :" "class:`io.TextIOWrapper` instance with the specified encoding, error " "handling behavior, and line endings." msgstr "" -#: library/compression.zstd.rst:93 +#: library/compression.zstd.rst:95 msgid "Open a Zstandard-compressed file in binary mode." msgstr "" -#: library/compression.zstd.rst:95 +#: library/compression.zstd.rst:97 msgid "" "A :class:`ZstdFile` can wrap an already-open :term:`file object`, or operate " "directly on a named file. The *file* argument specifies either the file " @@ -155,7 +164,7 @@ msgid "" "`ZstdFile` is closed." msgstr "" -#: library/compression.zstd.rst:102 +#: library/compression.zstd.rst:104 msgid "" "The *mode* argument can be either ``'rb'`` for reading (default), ``'wb'`` " "for overwriting, ``'xb'`` for exclusive creation, or ``'ab'`` for appending. " @@ -163,13 +172,13 @@ msgid "" "respectively." msgstr "" -#: library/compression.zstd.rst:107 +#: library/compression.zstd.rst:109 msgid "" "If *file* 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 "" -#: library/compression.zstd.rst:117 +#: library/compression.zstd.rst:119 msgid "" "When writing, the *options* argument can be a dictionary providing advanced " "decompression parameters; see :class:`CompressionParameter` for detailed " @@ -179,25 +188,25 @@ msgid "" "instance to be used during compression." msgstr "" -#: library/compression.zstd.rst:125 +#: library/compression.zstd.rst:127 msgid "" ":class:`!ZstdFile` supports all the members specified by :class:`io." "BufferedIOBase`, except for :meth:`~io.BufferedIOBase.detach` and :meth:`~io." "IOBase.truncate`. Iteration and the :keyword:`with` statement are supported." msgstr "" -#: library/compression.zstd.rst:130 +#: library/compression.zstd.rst:132 msgid "The following method and attributes are also provided:" msgstr "" -#: library/compression.zstd.rst:134 +#: library/compression.zstd.rst:136 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 "" -#: library/compression.zstd.rst:138 +#: library/compression.zstd.rst:140 msgid "" "While calling :meth:`peek` does not change the file position of the :class:" "`ZstdFile`, it may change the position of the underlying file object (for " @@ -205,27 +214,27 @@ msgid "" "for *file*)." msgstr "" -#: library/compression.zstd.rst:145 +#: library/compression.zstd.rst:147 msgid "``'rb'`` for reading and ``'wb'`` for writing." msgstr "" -#: library/compression.zstd.rst:149 +#: library/compression.zstd.rst:151 msgid "" "The name of the Zstandard file. Equivalent to the :attr:`~io.FileIO.name` " "attribute of the underlying :term:`file object`." msgstr "" -#: library/compression.zstd.rst:154 +#: library/compression.zstd.rst:156 msgid "Compressing and decompressing data in memory" msgstr "" -#: library/compression.zstd.rst:158 +#: library/compression.zstd.rst:160 msgid "" "Compress *data* (a :term:`bytes-like object`), returning the compressed data " "as a :class:`bytes` object." msgstr "" -#: library/compression.zstd.rst:161 library/compression.zstd.rst:205 +#: library/compression.zstd.rst:163 library/compression.zstd.rst:207 msgid "" "The *level* argument is an integer controlling the level of compression. " "*level* is an alternative to setting :attr:`CompressionParameter." @@ -236,27 +245,27 @@ msgid "" "CompressionParameter.compression_level` parameter should be set." msgstr "" -#: library/compression.zstd.rst:170 library/compression.zstd.rst:214 +#: library/compression.zstd.rst:172 library/compression.zstd.rst:216 msgid "" "The *options* argument is a Python dictionary containing advanced " "compression parameters. The valid keys and values for compression parameters " "are documented as part of the :class:`CompressionParameter` documentation." msgstr "" -#: library/compression.zstd.rst:174 +#: library/compression.zstd.rst:176 msgid "" "The *zstd_dict* argument is an instance of :class:`ZstdDict` containing " "trained data to improve compression efficiency. The function :func:" "`train_dict` can be used to generate a Zstandard dictionary." msgstr "" -#: library/compression.zstd.rst:181 +#: library/compression.zstd.rst:183 msgid "" "Decompress *data* (a :term:`bytes-like object`), returning the uncompressed " "data as a :class:`bytes` object." msgstr "" -#: library/compression.zstd.rst:184 library/compression.zstd.rst:306 +#: library/compression.zstd.rst:186 library/compression.zstd.rst:308 msgid "" "The *options* argument is a Python dictionary containing advanced " "decompression parameters. The valid keys and values for compression " @@ -264,38 +273,38 @@ msgid "" "documentation." msgstr "" -#: library/compression.zstd.rst:189 library/compression.zstd.rst:311 +#: library/compression.zstd.rst:191 library/compression.zstd.rst:313 msgid "" "The *zstd_dict* argument is an instance of :class:`ZstdDict` containing " "trained data used during compression. This must be the same Zstandard " "dictionary used during compression." msgstr "" -#: library/compression.zstd.rst:193 +#: library/compression.zstd.rst:195 msgid "" "If *data* is the concatenation of multiple distinct compressed frames, " "decompress all of these frames, and return the concatenation of the results." msgstr "" -#: library/compression.zstd.rst:199 +#: library/compression.zstd.rst:201 msgid "" "Create a compressor object, which can be used to compress data incrementally." msgstr "" -#: library/compression.zstd.rst:202 +#: library/compression.zstd.rst:204 msgid "" "For a more convenient way of compressing a single chunk of data, see the " "module-level function :func:`compress`." msgstr "" -#: library/compression.zstd.rst:218 +#: library/compression.zstd.rst:220 msgid "" "The *zstd_dict* argument is an optional instance of :class:`ZstdDict` " "containing trained data to improve compression efficiency. The function :" "func:`train_dict` can be used to generate a Zstandard dictionary." msgstr "" -#: library/compression.zstd.rst:225 +#: library/compression.zstd.rst:227 msgid "" "Compress *data* (a :term:`bytes-like object`), returning a :class:`bytes` " "object with compressed data if possible, or otherwise an empty :class:`!" @@ -304,13 +313,13 @@ msgid "" "concatenated with the output of any previous calls to :meth:`~.compress`." msgstr "" -#: library/compression.zstd.rst:232 +#: library/compression.zstd.rst:234 msgid "" "The *mode* argument is a :class:`ZstdCompressor` attribute, either :attr:`~." "CONTINUE`, :attr:`~.FLUSH_BLOCK`, or :attr:`~.FLUSH_FRAME`." msgstr "" -#: library/compression.zstd.rst:236 +#: library/compression.zstd.rst:238 msgid "" "When all data has been provided to the compressor, call the :meth:`~.flush` " "method to finish the compression process. If :meth:`~.compress` is called " @@ -318,19 +327,19 @@ msgid "" "called, as it would write out a new empty frame." msgstr "" -#: library/compression.zstd.rst:244 +#: library/compression.zstd.rst:246 msgid "" "Finish the compression process, returning a :class:`bytes` object containing " "any data stored in the compressor's internal buffers." msgstr "" -#: library/compression.zstd.rst:247 +#: library/compression.zstd.rst:249 msgid "" "The *mode* argument is a :class:`ZstdCompressor` attribute, either :attr:`~." "FLUSH_BLOCK`, or :attr:`~.FLUSH_FRAME`." msgstr "" -#: library/compression.zstd.rst:252 +#: library/compression.zstd.rst:254 msgid "" "Specify the amount of uncompressed data *size* that will be provided for the " "next frame. *size* will be written into the frame header of the next frame " @@ -341,7 +350,7 @@ msgid "" "compression levels." msgstr "" -#: library/compression.zstd.rst:260 +#: library/compression.zstd.rst:262 msgid "" "If :attr:`last_mode` is not :attr:`FLUSH_FRAME`, a :exc:`ValueError` is " "raised as the compressor is not at the start of a frame. If the pledged size " @@ -350,34 +359,34 @@ msgid "" "the last chunk of data may be lost." msgstr "" -#: library/compression.zstd.rst:267 +#: library/compression.zstd.rst:269 msgid "" "After :meth:`flush` or :meth:`.compress` are called with mode :attr:" "`FLUSH_FRAME`, the next frame will not include the frame size into the " "header unless :meth:`!set_pledged_input_size` is called again." msgstr "" -#: library/compression.zstd.rst:273 +#: library/compression.zstd.rst:275 msgid "" "Collect more data for compression, which may or may not generate output " "immediately. This mode optimizes the compression ratio by maximizing the " "amount of data per block and frame." msgstr "" -#: library/compression.zstd.rst:279 +#: library/compression.zstd.rst:281 msgid "" "Complete and write a block to the data stream. The data returned so far can " "be immediately decompressed. Past data can still be referenced in future " "blocks generated by calls to :meth:`~.compress`, improving compression." msgstr "" -#: library/compression.zstd.rst:286 +#: library/compression.zstd.rst:288 msgid "" "Complete and write out a frame. Future data provided to :meth:`~.compress` " "will be written into a new frame and *cannot* reference past data." msgstr "" -#: library/compression.zstd.rst:292 +#: library/compression.zstd.rst:294 msgid "" "The last mode passed to either :meth:`~.compress` or :meth:`~.flush`. The " "value can be one of :attr:`~.CONTINUE`, :attr:`~.FLUSH_BLOCK`, or :attr:`~." @@ -385,19 +394,19 @@ msgid "" "the compressor is at the start of a new frame." msgstr "" -#: library/compression.zstd.rst:300 +#: library/compression.zstd.rst:302 msgid "" "Create a decompressor object, which can be used to decompress data " "incrementally." msgstr "" -#: library/compression.zstd.rst:303 +#: library/compression.zstd.rst:305 msgid "" "For a more convenient way of decompressing an entire compressed stream at " "once, see the module-level function :func:`decompress`." msgstr "" -#: library/compression.zstd.rst:316 +#: library/compression.zstd.rst:318 msgid "" "This class does not transparently handle inputs containing multiple " "compressed frames, unlike the :func:`decompress` function and :class:" @@ -406,7 +415,7 @@ msgid "" "multiple :class:`!ZstdDecompressor` instances." msgstr "" -#: library/compression.zstd.rst:324 +#: library/compression.zstd.rst:326 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 " @@ -414,7 +423,7 @@ msgid "" "output of any previous calls to :meth:`!decompress`." msgstr "" -#: library/compression.zstd.rst:330 +#: library/compression.zstd.rst:332 msgid "" "If *max_length* is non-negative, the method returns at most *max_length* " "bytes of decompressed data. If this limit is reached and further output can " @@ -423,43 +432,43 @@ msgid "" "``b''`` to obtain more of the output." msgstr "" -#: library/compression.zstd.rst:337 +#: library/compression.zstd.rst:339 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 "" -#: library/compression.zstd.rst:342 +#: library/compression.zstd.rst:344 msgid "" "Attempting to decompress data after the end of a frame will raise a :exc:" "`ZstdError`. Any data found after the end of the frame is ignored and saved " "in the :attr:`~.unused_data` attribute." msgstr "" -#: library/compression.zstd.rst:348 +#: library/compression.zstd.rst:350 msgid "``True`` if the end-of-stream marker has been reached." msgstr "" -#: library/compression.zstd.rst:352 +#: library/compression.zstd.rst:354 msgid "Data found after the end of the compressed stream." msgstr "" -#: library/compression.zstd.rst:354 +#: library/compression.zstd.rst:356 msgid "Before the end of the stream is reached, this will be ``b''``." msgstr "" -#: library/compression.zstd.rst:358 +#: library/compression.zstd.rst:360 msgid "" "``False`` if the :meth:`.decompress` method can provide more decompressed " "data before requiring new compressed input." msgstr "" -#: library/compression.zstd.rst:363 +#: library/compression.zstd.rst:365 msgid "Zstandard dictionaries" msgstr "" -#: library/compression.zstd.rst:368 +#: library/compression.zstd.rst:370 msgid "" "Train a Zstandard dictionary, returning a :class:`ZstdDict` instance. " "Zstandard dictionaries enable more efficient compression of smaller sizes of " @@ -469,13 +478,13 @@ msgid "" "significantly." msgstr "" -#: library/compression.zstd.rst:375 +#: library/compression.zstd.rst:377 msgid "" "The *samples* argument (an iterable of :class:`bytes` objects), is the " "population of samples used to train the Zstandard dictionary." msgstr "" -#: library/compression.zstd.rst:378 +#: library/compression.zstd.rst:380 msgid "" "The *dict_size* argument, an integer, is the maximum size (in bytes) the " "Zstandard dictionary should be. The Zstandard documentation suggests an " @@ -485,7 +494,7 @@ msgid "" "faster compression, but reduce the compression ratio." msgstr "" -#: library/compression.zstd.rst:388 +#: library/compression.zstd.rst:390 msgid "" "An advanced function for converting a \"raw content\" Zstandard dictionary " "into a regular Zstandard dictionary. \"Raw content\" dictionaries are a " @@ -493,26 +502,26 @@ msgid "" "Zstandard dictionary." msgstr "" -#: library/compression.zstd.rst:393 +#: library/compression.zstd.rst:395 msgid "" "The *zstd_dict* argument is a :class:`ZstdDict` instance with the :attr:" "`~ZstdDict.dict_content` containing the raw dictionary contents." msgstr "" -#: library/compression.zstd.rst:396 +#: library/compression.zstd.rst:398 msgid "" "The *samples* argument (an iterable of :class:`bytes` objects), contains " "sample data for generating the Zstandard dictionary." msgstr "" -#: library/compression.zstd.rst:399 +#: library/compression.zstd.rst:401 msgid "" "The *dict_size* argument, an integer, is the maximum size (in bytes) the " "Zstandard dictionary should be. See :func:`train_dict` for suggestions on " "the maximum dictionary size." msgstr "" -#: library/compression.zstd.rst:403 +#: library/compression.zstd.rst:405 msgid "" "The *level* argument (an integer) is the compression level expected to be " "passed to the compressors using this dictionary. The dictionary information " @@ -520,20 +529,20 @@ msgid "" "level can make compression more efficient." msgstr "" -#: library/compression.zstd.rst:411 +#: library/compression.zstd.rst:413 msgid "" "A wrapper around Zstandard dictionaries. Dictionaries can be used to improve " "the compression of many small chunks of data. Use :func:`train_dict` if you " "need to train a new dictionary from sample data." msgstr "" -#: library/compression.zstd.rst:415 +#: library/compression.zstd.rst:417 msgid "" "The *dict_content* argument (a :term:`bytes-like object`), is the already " "trained dictionary information." msgstr "" -#: library/compression.zstd.rst:418 +#: library/compression.zstd.rst:420 msgid "" "The *is_raw* argument, a boolean, is an advanced parameter controlling the " "meaning of *dict_content*. ``True`` means *dict_content* is a \"raw " @@ -543,7 +552,7 @@ msgid "" "CLI." msgstr "" -#: library/compression.zstd.rst:424 +#: library/compression.zstd.rst:426 msgid "" "When passing a :class:`!ZstdDict` to a function, the :attr:`!" "as_digested_dict` and :attr:`!as_undigested_dict` attributes can control how " @@ -555,25 +564,25 @@ msgid "" "dictionary." msgstr "" -#: library/compression.zstd.rst:433 +#: library/compression.zstd.rst:435 msgid "Difference for compression" msgstr "" -#: library/compression.zstd.rst:438 +#: library/compression.zstd.rst:440 msgid "Digested dictionary" msgstr "" -#: library/compression.zstd.rst:439 +#: library/compression.zstd.rst:441 msgid "Undigested dictionary" msgstr "" -#: library/compression.zstd.rst:440 +#: library/compression.zstd.rst:442 msgid "" "Advanced parameters of the compressor which may be overridden by the " "dictionary's parameters" msgstr "" -#: library/compression.zstd.rst:442 +#: library/compression.zstd.rst:444 msgid "" "``window_log``, ``hash_log``, ``chain_log``, ``search_log``, ``min_match``, " "``target_length``, ``strategy``, ``enable_long_distance_matching``, " @@ -581,113 +590,113 @@ msgid "" "``ldm_hash_rate_log``, and some non-public parameters." msgstr "" -#: library/compression.zstd.rst:447 +#: library/compression.zstd.rst:449 msgid "None" msgstr "" -#: library/compression.zstd.rst:448 +#: library/compression.zstd.rst:450 msgid ":class:`!ZstdDict` internally caches the dictionary" msgstr "" -#: library/compression.zstd.rst:449 +#: library/compression.zstd.rst:451 msgid "" "Yes. It's faster when loading a digested dictionary again with the same " "compression level." msgstr "" -#: library/compression.zstd.rst:451 +#: library/compression.zstd.rst:453 msgid "" "No. If you wish to load an undigested dictionary multiple times, consider " "reusing a compressor object." msgstr "" -#: library/compression.zstd.rst:454 +#: library/compression.zstd.rst:456 msgid "" "If passing a :class:`!ZstdDict` without any attribute, an undigested " "dictionary is passed by default when compressing and a digested dictionary " "is generated if necessary and passed by default when decompressing." msgstr "" -#: library/compression.zstd.rst:460 +#: library/compression.zstd.rst:462 msgid "" "The content of the Zstandard dictionary, a ``bytes`` object. It's the same " "as the *dict_content* argument in the ``__init__`` method. It can be used " "with other programs, such as the ``zstd`` CLI program." msgstr "" -#: library/compression.zstd.rst:466 +#: library/compression.zstd.rst:468 msgid "Identifier of the Zstandard dictionary, a non-negative int value." msgstr "" -#: library/compression.zstd.rst:468 +#: library/compression.zstd.rst:470 msgid "" "Non-zero means the dictionary is ordinary, created by Zstandard functions " "and following the Zstandard format." msgstr "" -#: library/compression.zstd.rst:471 +#: library/compression.zstd.rst:473 msgid "" "``0`` means a \"raw content\" dictionary, free of any format restriction, " "used for advanced users." msgstr "" -#: library/compression.zstd.rst:476 +#: library/compression.zstd.rst:478 msgid "" "The meaning of ``0`` for :attr:`!ZstdDict.dict_id` is different from the " "``dictionary_id`` attribute to the :func:`get_frame_info` function." msgstr "" -#: library/compression.zstd.rst:482 +#: library/compression.zstd.rst:484 msgid "Load as a digested dictionary." msgstr "" -#: library/compression.zstd.rst:486 +#: library/compression.zstd.rst:488 msgid "Load as an undigested dictionary." msgstr "" -#: library/compression.zstd.rst:490 +#: library/compression.zstd.rst:492 msgid "Advanced parameter control" msgstr "" -#: library/compression.zstd.rst:494 +#: library/compression.zstd.rst:496 msgid "" "An :class:`~enum.IntEnum` containing the advanced compression parameter keys " "that can be used when compressing data." msgstr "" -#: library/compression.zstd.rst:497 library/compression.zstd.rst:725 +#: library/compression.zstd.rst:499 library/compression.zstd.rst:733 msgid "" "The :meth:`~.bounds` method can be used on any attribute to get the valid " "values for that parameter." msgstr "" -#: library/compression.zstd.rst:500 +#: library/compression.zstd.rst:502 msgid "" "Parameters are optional; any omitted parameter will have it's value selected " "automatically." msgstr "" -#: library/compression.zstd.rst:503 +#: library/compression.zstd.rst:505 msgid "" "Example getting the lower and upper bound of :attr:`~.compression_level`::" msgstr "" -#: library/compression.zstd.rst:505 +#: library/compression.zstd.rst:507 msgid "lower, upper = CompressionParameter.compression_level.bounds()" msgstr "" -#: library/compression.zstd.rst:507 +#: library/compression.zstd.rst:509 msgid "Example setting the :attr:`~.window_log` to the maximum size::" msgstr "" -#: library/compression.zstd.rst:509 +#: library/compression.zstd.rst:511 msgid "" "_lower, upper = CompressionParameter.window_log.bounds()\n" "options = {CompressionParameter.window_log: upper}\n" "compress(b'venezuelan beaver cheese', options=options)" msgstr "" -#: library/compression.zstd.rst:515 +#: library/compression.zstd.rst:517 msgid "" "Return the tuple of int bounds, ``(lower, upper)``, of a compression " "parameter. This method should be called on the attribute you wish to " @@ -696,18 +705,29 @@ msgid "" "compression_level.bounds()``." msgstr "" -#: library/compression.zstd.rst:521 library/compression.zstd.rst:743 +#: library/compression.zstd.rst:523 library/compression.zstd.rst:751 msgid "Both the lower and upper bounds are inclusive." msgstr "" -#: library/compression.zstd.rst:525 +#: library/compression.zstd.rst:527 msgid "" "A high-level means of setting other compression parameters that affect the " -"speed and ratio of compressing data. Setting the level to zero uses :attr:" -"`COMPRESSION_LEVEL_DEFAULT`." +"speed and ratio of compressing data." msgstr "" -#: library/compression.zstd.rst:531 +#: library/compression.zstd.rst:530 +msgid "" +"Regular compression levels are greater than ``0``. Values greater than " +"``20`` are considered \"ultra\" compression and require more memory than " +"other levels. Negative values can be used to trade off faster compression " +"for worse compression ratios." +msgstr "" + +#: library/compression.zstd.rst:535 +msgid "Setting the level to zero uses :attr:`COMPRESSION_LEVEL_DEFAULT`." +msgstr "" + +#: library/compression.zstd.rst:539 msgid "" "Maximum allowed back-reference distance the compressor can use when " "compressing data, expressed as power of two, ``1 << window_log`` bytes. This " @@ -715,16 +735,16 @@ msgid "" "require more memory but gain better compression values." msgstr "" -#: library/compression.zstd.rst:536 library/compression.zstd.rst:545 -#: library/compression.zstd.rst:556 library/compression.zstd.rst:564 -#: library/compression.zstd.rst:575 library/compression.zstd.rst:590 -#: library/compression.zstd.rst:621 library/compression.zstd.rst:628 -#: library/compression.zstd.rst:636 library/compression.zstd.rst:644 -#: library/compression.zstd.rst:703 library/compression.zstd.rst:752 +#: library/compression.zstd.rst:544 library/compression.zstd.rst:553 +#: library/compression.zstd.rst:564 library/compression.zstd.rst:572 +#: library/compression.zstd.rst:583 library/compression.zstd.rst:598 +#: library/compression.zstd.rst:629 library/compression.zstd.rst:636 +#: library/compression.zstd.rst:644 library/compression.zstd.rst:652 +#: library/compression.zstd.rst:711 library/compression.zstd.rst:760 msgid "A value of zero causes the value to be selected automatically." msgstr "" -#: library/compression.zstd.rst:540 +#: library/compression.zstd.rst:548 msgid "" "Size of the initial probe table, as a power of two. The resulting memory " "usage is ``1 << (hash_log+2)`` bytes. Larger tables improve compression " @@ -732,7 +752,7 @@ msgid "" "speed of strategies > :attr:`~Strategy.dfast`." msgstr "" -#: library/compression.zstd.rst:549 +#: library/compression.zstd.rst:557 msgid "" "Size of the multi-probe search table, as a power of two. The resulting " "memory usage is ``1 << (chain_log+2)`` bytes. Larger tables result in better " @@ -741,14 +761,14 @@ msgid "" "dfast` strategy, in which case it defines a secondary probe table." msgstr "" -#: library/compression.zstd.rst:560 +#: library/compression.zstd.rst:568 msgid "" "Number of search attempts, as a power of two. More attempts result in better " "and slower compression. This parameter is useless for :attr:`~Strategy.fast` " "and :attr:`~Strategy.dfast` strategies." msgstr "" -#: library/compression.zstd.rst:568 +#: library/compression.zstd.rst:576 msgid "" "Minimum size of searched matches. Larger values increase compression and " "decompression speed, but decrease ratio. Note that Zstandard can still find " @@ -758,11 +778,11 @@ msgid "" "effective maximum is ``6``." msgstr "" -#: library/compression.zstd.rst:579 +#: library/compression.zstd.rst:587 msgid "The impact of this field depends on the selected :class:`Strategy`." msgstr "" -#: library/compression.zstd.rst:581 +#: library/compression.zstd.rst:589 msgid "" "For strategies :attr:`~Strategy.btopt`, :attr:`~Strategy.btultra` and :attr:" "`~Strategy.btultra2`, the value is the length of a match considered \"good " @@ -770,38 +790,38 @@ msgid "" "but compresses slower." msgstr "" -#: library/compression.zstd.rst:586 +#: library/compression.zstd.rst:594 msgid "" "For strategy :attr:`~Strategy.fast`, it is the distance between match " "sampling. Larger values make compression faster, but with a worse " "compression ratio." msgstr "" -#: library/compression.zstd.rst:594 +#: library/compression.zstd.rst:602 msgid "" "The higher the value of selected strategy, the more complex the compression " "technique used by zstd, resulting in higher compression ratios but slower " "compression." msgstr "" -#: library/compression.zstd.rst:598 +#: library/compression.zstd.rst:606 msgid ":class:`Strategy`" msgstr "" -#: library/compression.zstd.rst:602 +#: library/compression.zstd.rst:610 msgid "" "Long distance matching can be used to improve compression for large inputs " "by finding large matches at greater distances. It increases memory usage and " "window size." msgstr "" -#: library/compression.zstd.rst:606 +#: library/compression.zstd.rst:614 msgid "" "``True`` or ``1`` enable long distance matching while ``False`` or ``0`` " "disable it." msgstr "" -#: library/compression.zstd.rst:609 +#: library/compression.zstd.rst:617 msgid "" "Enabling this parameter increases default :attr:`~CompressionParameter." "window_log` to 128 MiB except when expressly set to a different value. This " @@ -809,55 +829,55 @@ msgid "" "compression strategy >= :attr:`~Strategy.btopt` (compression level 16+)." msgstr "" -#: library/compression.zstd.rst:617 +#: library/compression.zstd.rst:625 msgid "" "Size of the table for long distance matching, as a power of two. Larger " "values increase memory usage and compression ratio, but decrease compression " "speed." msgstr "" -#: library/compression.zstd.rst:625 +#: library/compression.zstd.rst:633 msgid "" "Minimum match size for long distance matcher. Larger or too small values can " "often decrease the compression ratio." msgstr "" -#: library/compression.zstd.rst:632 +#: library/compression.zstd.rst:640 msgid "" "Log size of each bucket in the long distance matcher hash table for " "collision resolution. Larger values improve collision resolution but " "decrease compression speed." msgstr "" -#: library/compression.zstd.rst:640 +#: library/compression.zstd.rst:648 msgid "" "Frequency of inserting/looking up entries into the long distance matcher " "hash table. Larger values improve compression speed. Deviating far from the " "default value will likely result in a compression ratio decrease." msgstr "" -#: library/compression.zstd.rst:648 +#: library/compression.zstd.rst:656 msgid "" "Write the size of the data to be compressed into the Zstandard frame header " "when known prior to compressing." msgstr "" -#: library/compression.zstd.rst:651 +#: library/compression.zstd.rst:659 msgid "This flag only takes effect under the following scenarios:" msgstr "" -#: library/compression.zstd.rst:653 +#: library/compression.zstd.rst:661 msgid "Calling :func:`compress` for one-shot compression" msgstr "" -#: library/compression.zstd.rst:654 +#: library/compression.zstd.rst:662 msgid "" "Providing all of the data to be compressed in the frame in a single :meth:" "`ZstdCompressor.compress` call, with the :attr:`ZstdCompressor.FLUSH_FRAME` " "mode." msgstr "" -#: library/compression.zstd.rst:657 +#: library/compression.zstd.rst:665 msgid "" "Calling :meth:`ZstdCompressor.set_pledged_input_size` with the exact amount " "of data that will be provided to the compressor prior to any calls to :meth:" @@ -865,44 +885,44 @@ msgid "" "set_pledged_input_size` must be called for each new frame." msgstr "" -#: library/compression.zstd.rst:663 +#: library/compression.zstd.rst:671 msgid "" "All other compression calls may not write the size information into the " "frame header." msgstr "" -#: library/compression.zstd.rst:666 +#: library/compression.zstd.rst:674 msgid "" "``True`` or ``1`` enable the content size flag while ``False`` or ``0`` " "disable it." msgstr "" -#: library/compression.zstd.rst:671 +#: library/compression.zstd.rst:679 msgid "" "A four-byte checksum using XXHash64 of the uncompressed content is written " "at the end of each frame. Zstandard's decompression code verifies the " "checksum. If there is a mismatch a :class:`ZstdError` exception is raised." msgstr "" -#: library/compression.zstd.rst:676 +#: library/compression.zstd.rst:684 msgid "" "``True`` or ``1`` enable checksum generation while ``False`` or ``0`` " "disable it." msgstr "" -#: library/compression.zstd.rst:681 +#: library/compression.zstd.rst:689 msgid "" "When compressing with a :class:`ZstdDict`, the dictionary's ID is written " "into the frame header." msgstr "" -#: library/compression.zstd.rst:684 +#: library/compression.zstd.rst:692 msgid "" "``True`` or ``1`` enable storing the dictionary ID while ``False`` or ``0`` " "disable it." msgstr "" -#: library/compression.zstd.rst:689 +#: library/compression.zstd.rst:697 msgid "" "Select how many threads will be spawned to compress in parallel. When :attr:" "`!nb_workers` > 0, enables multi-threaded compression, a value of ``1`` " @@ -910,11 +930,11 @@ msgid "" "also increase memory usage and slightly reduce compression ratio." msgstr "" -#: library/compression.zstd.rst:694 +#: library/compression.zstd.rst:702 msgid "A value of zero disables multi-threading." msgstr "" -#: library/compression.zstd.rst:698 +#: library/compression.zstd.rst:706 msgid "" "Size of a compression job, in bytes. This value is enforced only when :attr:" "`~CompressionParameter.nb_workers` >= 1. Each compression job is completed " @@ -922,7 +942,7 @@ msgid "" "threads." msgstr "" -#: library/compression.zstd.rst:707 +#: library/compression.zstd.rst:715 msgid "" "Sets how much data is reloaded from previous jobs (threads) for new jobs to " "be used by the look behind window during compression. This value is only " @@ -930,36 +950,36 @@ msgid "" "vary from 0 to 9." msgstr "" -#: library/compression.zstd.rst:712 +#: library/compression.zstd.rst:720 msgid "0 means dynamically set the overlap amount" msgstr "" -#: library/compression.zstd.rst:713 +#: library/compression.zstd.rst:721 msgid "1 means no overlap" msgstr "" -#: library/compression.zstd.rst:714 +#: library/compression.zstd.rst:722 msgid "9 means use a full window size from the previous job" msgstr "" -#: library/compression.zstd.rst:716 +#: library/compression.zstd.rst:724 msgid "" "Each increment halves/doubles the overlap size. \"8\" means an overlap of " "``window_size/2``, \"7\" means an overlap of ``window_size/4``, etc." msgstr "" -#: library/compression.zstd.rst:721 +#: library/compression.zstd.rst:729 msgid "" "An :class:`~enum.IntEnum` containing the advanced decompression parameter " "keys that can be used when decompressing data. Parameters are optional; any " "omitted parameter will have it's value selected automatically." msgstr "" -#: library/compression.zstd.rst:728 +#: library/compression.zstd.rst:736 msgid "Example setting the :attr:`~.window_log_max` to the maximum size::" msgstr "" -#: library/compression.zstd.rst:730 +#: library/compression.zstd.rst:738 msgid "" "data = compress(b'Some very long buffer of bytes...')\n" "\n" @@ -969,14 +989,14 @@ msgid "" "decompress(data, options=options)" msgstr "" -#: library/compression.zstd.rst:739 +#: library/compression.zstd.rst:747 msgid "" "Return the tuple of int bounds, ``(lower, upper)``, of a decompression " "parameter. This method should be called on the attribute you wish to " "retrieve the bounds of." msgstr "" -#: library/compression.zstd.rst:747 +#: library/compression.zstd.rst:755 msgid "" "The base-two logarithm of the maximum size of the window used during " "decompression. This can be useful to limit the amount of memory used when " @@ -984,42 +1004,42 @@ msgid "" "decompression." msgstr "" -#: library/compression.zstd.rst:757 +#: library/compression.zstd.rst:765 msgid "" "An :class:`~enum.IntEnum` containing strategies for compression. Higher-" "numbered strategies correspond to more complex and slower compression." msgstr "" -#: library/compression.zstd.rst:763 +#: library/compression.zstd.rst:771 msgid "" "The values of attributes of :class:`!Strategy` are not necessarily stable " "across zstd versions. Only the ordering of the attributes may be relied " "upon. The attributes are listed below in order." msgstr "" -#: library/compression.zstd.rst:767 +#: library/compression.zstd.rst:775 msgid "The following strategies are available:" msgstr "" -#: library/compression.zstd.rst:789 +#: library/compression.zstd.rst:797 msgid "Miscellaneous" msgstr "" -#: library/compression.zstd.rst:793 +#: library/compression.zstd.rst:801 msgid "" "Retrieve a :class:`FrameInfo` object containing metadata about a Zstandard " "frame. Frames contain metadata related to the compressed data they hold." msgstr "" -#: library/compression.zstd.rst:799 +#: library/compression.zstd.rst:807 msgid "Metadata related to a Zstandard frame." msgstr "" -#: library/compression.zstd.rst:803 +#: library/compression.zstd.rst:811 msgid "The size of the decompressed contents of the frame." msgstr "" -#: library/compression.zstd.rst:807 +#: library/compression.zstd.rst:815 msgid "" "An integer representing the Zstandard dictionary ID needed for decompressing " "the frame. ``0`` means the dictionary ID was not recorded in the frame " @@ -1027,25 +1047,25 @@ msgid "" "ID of a required dictionary was not recorded." msgstr "" -#: library/compression.zstd.rst:815 +#: library/compression.zstd.rst:823 msgid "The default compression level for Zstandard: ``3``." msgstr "" -#: library/compression.zstd.rst:820 +#: library/compression.zstd.rst:828 msgid "" "Version number of the runtime zstd library as a tuple of integers (major, " "minor, release)." msgstr "" -#: library/compression.zstd.rst:825 +#: library/compression.zstd.rst:833 msgid "Examples" msgstr "" -#: library/compression.zstd.rst:827 +#: library/compression.zstd.rst:835 msgid "Reading in a compressed file:" msgstr "" -#: library/compression.zstd.rst:829 +#: library/compression.zstd.rst:837 msgid "" "from compression import zstd\n" "\n" @@ -1053,11 +1073,11 @@ msgid "" " file_content = f.read()" msgstr "" -#: library/compression.zstd.rst:836 +#: library/compression.zstd.rst:844 msgid "Creating a compressed file:" msgstr "" -#: library/compression.zstd.rst:838 +#: library/compression.zstd.rst:846 msgid "" "from compression import zstd\n" "\n" @@ -1066,11 +1086,11 @@ msgid "" " f.write(data)" msgstr "" -#: library/compression.zstd.rst:846 +#: library/compression.zstd.rst:854 msgid "Compressing data in memory:" msgstr "" -#: library/compression.zstd.rst:848 +#: library/compression.zstd.rst:856 msgid "" "from compression import zstd\n" "\n" @@ -1078,11 +1098,11 @@ msgid "" "data_out = zstd.compress(data_in)" msgstr "" -#: library/compression.zstd.rst:855 +#: library/compression.zstd.rst:863 msgid "Incremental compression:" msgstr "" -#: library/compression.zstd.rst:857 +#: library/compression.zstd.rst:865 msgid "" "from compression import zstd\n" "\n" @@ -1095,11 +1115,11 @@ msgid "" "result = b\"\".join([out1, out2, out3, out4])" msgstr "" -#: library/compression.zstd.rst:869 +#: library/compression.zstd.rst:877 msgid "Writing compressed data to an already-open file:" msgstr "" -#: library/compression.zstd.rst:871 +#: library/compression.zstd.rst:879 msgid "" "from compression import zstd\n" "\n" @@ -1110,11 +1130,11 @@ msgid "" " f.write(b\"Not compressed\\n\")" msgstr "" -#: library/compression.zstd.rst:881 +#: library/compression.zstd.rst:889 msgid "Creating a compressed file using compression parameters:" msgstr "" -#: library/compression.zstd.rst:883 +#: library/compression.zstd.rst:891 msgid "" "from compression import zstd\n" "\n" diff --git a/library/concurrency.po b/library/concurrency.po index 11512d68..32e3f25f 100644 --- a/library/concurrency.po +++ b/library/concurrency.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/concurrent.futures.po b/library/concurrent.futures.po index 3650408a..7ca54498 100644 --- a/library/concurrent.futures.po +++ b/library/concurrent.futures.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -163,9 +163,10 @@ msgstr "" #: library/concurrent.futures.rst:104 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``)::" +"You can avoid having to call this method explicitly if you use the executor " +"as a :term:`context manager` via the :keyword:`with` statement, which will " +"shutdown the :class:`Executor` (waiting as if :meth:`Executor.shutdown` were " +"called with *wait* set to ``True``)::" msgstr "" #: library/concurrent.futures.rst:109 @@ -274,7 +275,7 @@ msgid "" "easier debugging." msgstr "" -#: library/concurrent.futures.rst:188 library/concurrent.futures.rst:386 +#: library/concurrent.futures.rst:188 library/concurrent.futures.rst:393 msgid "Added the *initializer* and *initargs* arguments." msgstr "" @@ -337,7 +338,7 @@ msgstr "" msgid "InterpreterPoolExecutor" msgstr "" -#: library/concurrent.futures.rst:242 +#: library/concurrent.futures.rst:244 msgid "" "The :class:`InterpreterPoolExecutor` class uses a pool of interpreters to " "execute calls asynchronously. It is a :class:`ThreadPoolExecutor` subclass, " @@ -346,7 +347,7 @@ msgid "" "interpreter." msgstr "" -#: library/concurrent.futures.rst:248 +#: library/concurrent.futures.rst:250 msgid "" "The biggest benefit to using interpreters instead of only threads is true " "multi-core parallelism. Each interpreter has its own :term:`Global " @@ -355,7 +356,7 @@ msgid "" "unblocked on a different core." msgstr "" -#: library/concurrent.futures.rst:254 +#: library/concurrent.futures.rst:256 msgid "" "The tradeoff is that writing concurrent code for use with multiple " "interpreters can take extra effort. However, this is because it forces you " @@ -368,7 +369,7 @@ msgid "" "conditions." msgstr "" -#: library/concurrent.futures.rst:264 +#: library/concurrent.futures.rst:266 msgid "" "Each worker's interpreter is isolated from all the other interpreters. " "\"Isolated\" means each interpreter has its own runtime state and operates " @@ -382,7 +383,7 @@ msgid "" "``__main__``." msgstr "" -#: library/concurrent.futures.rst:276 +#: library/concurrent.futures.rst:278 msgid "" "Isolation means a mutable object, or other data, cannot be used by more than " "one interpreter at the same time. That effectively means interpreters " @@ -392,7 +393,7 @@ msgid "" "strings, and tuples of immutable objects, don't have these limitations." msgstr "" -#: library/concurrent.futures.rst:284 +#: library/concurrent.futures.rst:286 msgid "" "Communicating and synchronizing between interpreters is most effectively " "done using dedicated tools, like those proposed in :pep:`734`. One less " @@ -400,7 +401,7 @@ msgid "" "bytes over a shared :mod:`socket ` or :func:`pipe `." msgstr "" -#: library/concurrent.futures.rst:292 +#: library/concurrent.futures.rst:294 msgid "" "A :class:`ThreadPoolExecutor` subclass that executes calls asynchronously " "using a pool of at most *max_workers* threads. Each thread runs tasks in " @@ -411,7 +412,7 @@ msgid "" "executor has true multi-core parallelism." msgstr "" -#: library/concurrent.futures.rst:300 +#: library/concurrent.futures.rst:302 msgid "" "The optional *initializer* and *initargs* arguments have the same meaning as " "for :class:`!ThreadPoolExecutor`: the initializer is run when each worker is " @@ -420,17 +421,17 @@ msgid "" "when sending them to the worker's interpreter." msgstr "" -#: library/concurrent.futures.rst:308 +#: library/concurrent.futures.rst:310 msgid "" "The executor may replace uncaught exceptions from *initializer* with :class:" "`~concurrent.futures.interpreter.ExecutionFailed`." msgstr "" -#: library/concurrent.futures.rst:311 +#: library/concurrent.futures.rst:313 msgid "Other caveats from parent :class:`ThreadPoolExecutor` apply here." msgstr "" -#: library/concurrent.futures.rst:313 +#: library/concurrent.futures.rst:315 msgid "" ":meth:`~Executor.submit` and :meth:`~Executor.map` work like normal, except " "the worker serializes the callable and arguments using :mod:`pickle` when " @@ -438,7 +439,7 @@ msgid "" "value when sending it back." msgstr "" -#: library/concurrent.futures.rst:318 +#: library/concurrent.futures.rst:320 msgid "" "When a worker's current task raises an uncaught exception, the worker always " "tries to preserve the exception as-is. If that is successful then it also " @@ -449,11 +450,11 @@ msgid "" "class:`~concurrent.futures.interpreter.ExecutionFailed` instance instead." msgstr "" -#: library/concurrent.futures.rst:330 +#: library/concurrent.futures.rst:332 msgid "ProcessPoolExecutor" msgstr "" -#: library/concurrent.futures.rst:332 +#: library/concurrent.futures.rst:334 msgid "" "The :class:`ProcessPoolExecutor` class is an :class:`Executor` subclass that " "uses a pool of processes to execute calls asynchronously. :class:" @@ -463,14 +464,14 @@ msgid "" "returned." msgstr "" -#: library/concurrent.futures.rst:339 +#: library/concurrent.futures.rst:341 msgid "" "The ``__main__`` module must be importable by worker subprocesses. This " "means that :class:`ProcessPoolExecutor` will not work in the interactive " "interpreter." msgstr "" -#: library/concurrent.futures.rst:342 +#: library/concurrent.futures.rst:344 msgid "" "Calling :class:`Executor` or :class:`Future` methods from a callable " "submitted to a :class:`ProcessPoolExecutor` will result in deadlock." @@ -478,6 +479,14 @@ msgstr "" #: library/concurrent.futures.rst:347 msgid "" +"Note that the restrictions on functions and arguments needing to picklable " +"as per :class:`multiprocessing.Process` apply when using :meth:`~Executor." +"submit` and :meth:`~Executor.map` on a :class:`ProcessPoolExecutor`. A " +"function defined in a REPL or a lambda should not be expected to work." +msgstr "" + +#: library/concurrent.futures.rst:354 +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 :func:`os.process_cpu_count`. If *max_workers* " @@ -491,7 +500,7 @@ msgid "" "`multiprocessing-start-methods`." msgstr "" -#: library/concurrent.futures.rst:361 +#: library/concurrent.futures.rst:368 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 " @@ -500,7 +509,7 @@ msgid "" "well as any attempt to submit more jobs to the pool." msgstr "" -#: library/concurrent.futures.rst:367 +#: library/concurrent.futures.rst:374 msgid "" "*max_tasks_per_child* is an optional argument that specifies the maximum " "number of tasks a single process can execute before it will exit and be " @@ -511,7 +520,7 @@ msgid "" "with the \"fork\" start method." msgstr "" -#: library/concurrent.futures.rst:375 +#: library/concurrent.futures.rst:382 msgid "" "When one of the worker processes terminates abruptly, a :exc:`~concurrent." "futures.process.BrokenProcessPool` error is now raised. Previously, " @@ -519,19 +528,19 @@ msgid "" "often freeze or deadlock." msgstr "" -#: library/concurrent.futures.rst:382 +#: library/concurrent.futures.rst:389 msgid "" "The *mp_context* argument was added to allow users to control the " "start_method for worker processes created by the pool." msgstr "" -#: library/concurrent.futures.rst:388 +#: library/concurrent.futures.rst:395 msgid "" "The *max_tasks_per_child* argument was added to allow users to control the " "lifetime of workers in the pool." msgstr "" -#: library/concurrent.futures.rst:392 +#: library/concurrent.futures.rst:399 msgid "" "On POSIX systems, if your application has multiple threads and the :mod:" "`multiprocessing` context uses the ``\"fork\"`` start method: The :func:`os." @@ -540,13 +549,13 @@ msgid "" "start method. See the :func:`os.fork` documentation for further explanation." msgstr "" -#: library/concurrent.futures.rst:400 +#: library/concurrent.futures.rst:407 msgid "" "*max_workers* uses :func:`os.process_cpu_count` by default, instead of :func:" "`os.cpu_count`." msgstr "" -#: library/concurrent.futures.rst:404 +#: library/concurrent.futures.rst:411 msgid "" "The default process start method (see :ref:`multiprocessing-start-methods`) " "changed away from *fork*. If you require the *fork* start method for :class:" @@ -554,7 +563,7 @@ msgid "" "get_context(\"fork\")``." msgstr "" -#: library/concurrent.futures.rst:412 +#: library/concurrent.futures.rst:419 msgid "" "Attempt to terminate all living worker processes immediately by calling :" "meth:`Process.terminate ` on each of " @@ -562,13 +571,13 @@ msgid "" "all other resources associated with the executor are freed." msgstr "" -#: library/concurrent.futures.rst:417 library/concurrent.futures.rst:429 +#: library/concurrent.futures.rst:424 library/concurrent.futures.rst:436 msgid "" "After calling this method the caller should no longer submit tasks to the " "executor." msgstr "" -#: library/concurrent.futures.rst:424 +#: library/concurrent.futures.rst:431 msgid "" "Attempt to kill all living worker processes immediately by calling :meth:" "`Process.kill ` on each of them. Internally, " @@ -576,11 +585,11 @@ msgid "" "resources associated with the executor are freed." msgstr "" -#: library/concurrent.futures.rst:437 +#: library/concurrent.futures.rst:444 msgid "ProcessPoolExecutor Example" msgstr "" -#: library/concurrent.futures.rst:440 +#: library/concurrent.futures.rst:447 msgid "" "import concurrent.futures\n" "import math\n" @@ -616,24 +625,24 @@ msgid "" " main()" msgstr "" -#: library/concurrent.futures.rst:475 +#: library/concurrent.futures.rst:482 msgid "Future Objects" msgstr "" -#: library/concurrent.futures.rst:477 +#: library/concurrent.futures.rst:484 msgid "" "The :class:`Future` class encapsulates the asynchronous execution of a " "callable. :class:`Future` instances are created by :meth:`Executor.submit`." msgstr "" -#: library/concurrent.futures.rst:482 +#: library/concurrent.futures.rst:489 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 "" -#: library/concurrent.futures.rst:488 +#: library/concurrent.futures.rst:495 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 " @@ -641,22 +650,22 @@ msgid "" "``True``." msgstr "" -#: library/concurrent.futures.rst:495 +#: library/concurrent.futures.rst:502 msgid "Return ``True`` if the call was successfully cancelled." msgstr "" -#: library/concurrent.futures.rst:499 +#: library/concurrent.futures.rst:506 msgid "" "Return ``True`` if the call is currently being executed and cannot be " "cancelled." msgstr "" -#: library/concurrent.futures.rst:504 +#: library/concurrent.futures.rst:511 msgid "" "Return ``True`` if the call was successfully cancelled or finished running." msgstr "" -#: library/concurrent.futures.rst:509 +#: library/concurrent.futures.rst:516 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 " @@ -665,18 +674,18 @@ msgid "" "no limit to the wait time." msgstr "" -#: library/concurrent.futures.rst:516 library/concurrent.futures.rst:530 +#: library/concurrent.futures.rst:523 library/concurrent.futures.rst:537 msgid "" "If the future is cancelled before completing then :exc:`.CancelledError` " "will be raised." msgstr "" -#: library/concurrent.futures.rst:519 +#: library/concurrent.futures.rst:526 msgid "" "If the call raised an exception, this method will raise the same exception." msgstr "" -#: library/concurrent.futures.rst:523 +#: library/concurrent.futures.rst:530 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 " @@ -685,18 +694,18 @@ msgid "" "``None``, there is no limit to the wait time." msgstr "" -#: library/concurrent.futures.rst:533 +#: library/concurrent.futures.rst:540 msgid "If the call completed without raising, ``None`` is returned." msgstr "" -#: library/concurrent.futures.rst:537 +#: library/concurrent.futures.rst:544 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 "" -#: library/concurrent.futures.rst:541 +#: library/concurrent.futures.rst:548 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 " @@ -705,26 +714,26 @@ msgid "" "behavior is undefined." msgstr "" -#: library/concurrent.futures.rst:547 +#: library/concurrent.futures.rst:554 msgid "" "If the future has already completed or been cancelled, *fn* will be called " "immediately." msgstr "" -#: library/concurrent.futures.rst:550 +#: library/concurrent.futures.rst:557 msgid "" "The following :class:`Future` methods are meant for use in unit tests and :" "class:`Executor` implementations." msgstr "" -#: library/concurrent.futures.rst:555 +#: library/concurrent.futures.rst:562 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 "" -#: library/concurrent.futures.rst:559 +#: library/concurrent.futures.rst:566 msgid "" "If the method returns ``False`` then the :class:`Future` was cancelled, i." "e. :meth:`Future.cancel` was called and returned ``True``. Any threads " @@ -732,47 +741,47 @@ msgid "" "or :func:`wait`) will be woken up." msgstr "" -#: library/concurrent.futures.rst:564 +#: library/concurrent.futures.rst:571 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 "" -#: library/concurrent.futures.rst:568 +#: library/concurrent.futures.rst:575 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 "" -#: library/concurrent.futures.rst:574 +#: library/concurrent.futures.rst:581 msgid "" "Sets the result of the work associated with the :class:`Future` to *result*." msgstr "" -#: library/concurrent.futures.rst:577 library/concurrent.futures.rst:590 +#: library/concurrent.futures.rst:584 library/concurrent.futures.rst:597 msgid "" "This method should only be used by :class:`Executor` implementations and " "unit tests." msgstr "" -#: library/concurrent.futures.rst:580 library/concurrent.futures.rst:593 +#: library/concurrent.futures.rst:587 library/concurrent.futures.rst:600 msgid "" "This method raises :exc:`concurrent.futures.InvalidStateError` if the :class:" "`Future` is already done." msgstr "" -#: library/concurrent.futures.rst:587 +#: library/concurrent.futures.rst:594 msgid "" "Sets the result of the work associated with the :class:`Future` to the :" "class:`Exception` *exception*." msgstr "" -#: library/concurrent.futures.rst:599 +#: library/concurrent.futures.rst:606 msgid "Module Functions" msgstr "" -#: library/concurrent.futures.rst:603 +#: library/concurrent.futures.rst:610 msgid "" "Wait for the :class:`Future` instances (possibly created by different :class:" "`Executor` instances) given by *fs* to complete. Duplicate futures given to " @@ -783,43 +792,43 @@ msgid "" "running futures)." msgstr "" -#: library/concurrent.futures.rst:611 +#: library/concurrent.futures.rst:618 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 "" -#: library/concurrent.futures.rst:615 +#: library/concurrent.futures.rst:622 msgid "" "*return_when* indicates when this function should return. It must be one of " "the following constants:" msgstr "" -#: library/concurrent.futures.rst:621 +#: library/concurrent.futures.rst:628 msgid "Constant" msgstr "" -#: library/concurrent.futures.rst:622 +#: library/concurrent.futures.rst:629 msgid "Description" msgstr "" -#: library/concurrent.futures.rst:625 +#: library/concurrent.futures.rst:632 msgid "The function will return when any future finishes or is cancelled." msgstr "" -#: library/concurrent.futures.rst:628 +#: library/concurrent.futures.rst:635 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 "" -#: library/concurrent.futures.rst:633 +#: library/concurrent.futures.rst:640 msgid "The function will return when all futures finish or are cancelled." msgstr "" -#: library/concurrent.futures.rst:637 +#: library/concurrent.futures.rst:644 msgid "" "Returns an iterator over the :class:`Future` instances (possibly created by " "different :class:`Executor` instances) given by *fs* that yields futures as " @@ -832,69 +841,69 @@ msgid "" "*timeout* is not specified or ``None``, there is no limit to the wait time." msgstr "" -#: library/concurrent.futures.rst:650 +#: library/concurrent.futures.rst:657 msgid ":pep:`3148` -- futures - execute computations asynchronously" msgstr "" -#: library/concurrent.futures.rst:651 +#: library/concurrent.futures.rst:658 msgid "" "The proposal which described this feature for inclusion in the Python " "standard library." msgstr "" -#: library/concurrent.futures.rst:656 +#: library/concurrent.futures.rst:663 msgid "Exception classes" msgstr "" -#: library/concurrent.futures.rst:662 +#: library/concurrent.futures.rst:669 msgid "Raised when a future is cancelled." msgstr "" -#: library/concurrent.futures.rst:666 +#: library/concurrent.futures.rst:673 msgid "" "A deprecated alias of :exc:`TimeoutError`, raised when a future operation " "exceeds the given timeout." msgstr "" -#: library/concurrent.futures.rst:671 +#: library/concurrent.futures.rst:678 msgid "This class was made an alias of :exc:`TimeoutError`." msgstr "" -#: library/concurrent.futures.rst:676 +#: library/concurrent.futures.rst:683 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 "" -#: library/concurrent.futures.rst:684 +#: library/concurrent.futures.rst:691 msgid "" "Raised when an operation is performed on a future that is not allowed in the " "current state." msgstr "" -#: library/concurrent.futures.rst:693 +#: library/concurrent.futures.rst:700 msgid "" "Derived from :exc:`~concurrent.futures.BrokenExecutor`, this exception class " "is raised when one of the workers of a :class:`~concurrent.futures." "ThreadPoolExecutor` has failed initializing." msgstr "" -#: library/concurrent.futures.rst:704 +#: library/concurrent.futures.rst:711 msgid "" "Derived from :exc:`~concurrent.futures.thread.BrokenThreadPool`, this " "exception class is raised when one of the workers of a :class:`~concurrent." "futures.InterpreterPoolExecutor` has failed initializing." msgstr "" -#: library/concurrent.futures.rst:713 +#: library/concurrent.futures.rst:720 msgid "" "Raised from :class:`~concurrent.futures.InterpreterPoolExecutor` when the " "given initializer fails or from :meth:`~concurrent.futures.Executor.submit` " "when there's an uncaught exception from the submitted task." msgstr "" -#: library/concurrent.futures.rst:724 +#: library/concurrent.futures.rst:731 msgid "" "Derived from :exc:`~concurrent.futures.BrokenExecutor` (formerly :exc:" "`RuntimeError`), this exception class is raised when one of the workers of " diff --git a/library/concurrent.interpreters.po b/library/concurrent.interpreters.po index 1c818c11..94657ef9 100644 --- a/library/concurrent.interpreters.po +++ b/library/concurrent.interpreters.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+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" @@ -22,36 +23,56 @@ msgid "" msgstr "" #: library/concurrent.interpreters.rst:12 -msgid "**Source code:** :source:`Lib/concurrent/interpreters.py`" +msgid "**Source code:** :source:`Lib/concurrent/interpreters`" msgstr "" -#: library/concurrent.interpreters.rst:18 -msgid "Introduction" -msgstr "" - -#: library/concurrent.interpreters.rst:20 +#: library/concurrent.interpreters.rst:16 msgid "" "The :mod:`!concurrent.interpreters` module constructs higher-level " "interfaces on top of the lower level :mod:`!_interpreters` module." msgstr "" -#: library/concurrent.interpreters.rst:27 +#: library/concurrent.interpreters.rst:19 +msgid "" +"The module is primarily meant to provide a basic API for managing " +"interpreters (AKA \"subinterpreters\") and running things in them. Running " +"mostly involves switching to an interpreter (in the current thread) and " +"calling a function in that execution context." +msgstr "" + +#: library/concurrent.interpreters.rst:24 +msgid "" +"For concurrency, interpreters themselves (and this module) don't provide " +"much more than isolation, which on its own isn't useful. Actual concurrency " +"is available separately through :mod:`threads ` See `below " +"`_" +msgstr "" + +#: library/concurrent.interpreters.rst:31 +msgid ":class:`~concurrent.futures.InterpreterPoolExecutor`" +msgstr "" + +#: library/concurrent.interpreters.rst:32 +msgid "Combines threads with interpreters in a familiar interface." +msgstr "" + +#: library/concurrent.interpreters.rst:36 msgid ":ref:`isolating-extensions-howto`" msgstr "" -#: library/concurrent.interpreters.rst:28 -msgid "how to update an extension module to support multiple interpreters" +#: library/concurrent.interpreters.rst:37 +msgid "How to update an extension module to support multiple interpreters." msgstr "" -#: library/concurrent.interpreters.rst:30 +#: library/concurrent.interpreters.rst:39 msgid ":pep:`554`" msgstr "" -#: library/concurrent.interpreters.rst:32 +#: library/concurrent.interpreters.rst:41 msgid ":pep:`734`" msgstr "" -#: library/concurrent.interpreters.rst:34 +#: library/concurrent.interpreters.rst:43 msgid ":pep:`684`" msgstr "" @@ -65,161 +86,408 @@ msgid "" "availability` for more information." msgstr "" -#: library/concurrent.interpreters.rst:42 +#: library/concurrent.interpreters.rst:51 msgid "Key details" msgstr "" -#: library/concurrent.interpreters.rst:44 +#: library/concurrent.interpreters.rst:53 msgid "" -"Before we dive into examples, there are a small number of details to keep in " +"Before we dive in further, there are a small number of details to keep in " "mind about using multiple interpreters:" msgstr "" -#: library/concurrent.interpreters.rst:47 -msgid "isolated, by default" +#: library/concurrent.interpreters.rst:56 +msgid "`isolated `_, by default" msgstr "" -#: library/concurrent.interpreters.rst:48 +#: library/concurrent.interpreters.rst:57 msgid "no implicit threads" msgstr "" -#: library/concurrent.interpreters.rst:49 +#: library/concurrent.interpreters.rst:58 msgid "not all PyPI packages support use in multiple interpreters yet" msgstr "" -#: library/concurrent.interpreters.rst:53 +#: library/concurrent.interpreters.rst:66 +msgid "Introduction" +msgstr "" + +#: library/concurrent.interpreters.rst:68 +msgid "" +"An \"interpreter\" is effectively the execution context of the Python " +"runtime. It contains all of the state the runtime needs to execute a " +"program. This includes things like the import state and builtins. (Each " +"thread, even if there's only the main thread, has some extra runtime state, " +"in addition to the current interpreter, related to the current exception and " +"the bytecode eval loop.)" +msgstr "" + +#: library/concurrent.interpreters.rst:75 +msgid "" +"The concept and functionality of the interpreter have been a part of Python " +"since version 2.2, but the feature was only available through the C-API and " +"not well known, and the `isolation `_ was relatively " +"incomplete until version 3.12." +msgstr "" + +#: library/concurrent.interpreters.rst:83 +msgid "Multiple Interpreters and Isolation" +msgstr "" + +#: library/concurrent.interpreters.rst:85 +msgid "" +"A Python implementation may support using multiple interpreters in the same " +"process. CPython has this support. Each interpreter is effectively " +"isolated from the others (with a limited number of carefully managed process-" +"global exceptions to the rule)." +msgstr "" + +#: library/concurrent.interpreters.rst:90 +msgid "" +"That isolation is primarily useful as a strong separation between distinct " +"logical components of a program, where you want to have careful control of " +"how those components interact." +msgstr "" + +#: library/concurrent.interpreters.rst:96 +msgid "" +"Interpreters in the same process can technically never be strictly isolated " +"from one another since there are few restrictions on memory access within " +"the same process. The Python runtime makes a best effort at isolation but " +"extension modules may easily violate that. Therefore, do not use multiple " +"interpreters in security-sensitive situations, where they shouldn't have " +"access to each other's data." +msgstr "" + +#: library/concurrent.interpreters.rst:104 +msgid "Running in an Interpreter" +msgstr "" + +#: library/concurrent.interpreters.rst:106 +msgid "" +"Running in a different interpreter involves switching to it in the current " +"thread and then calling some function. The runtime will execute the " +"function using the current interpreter's state. The :mod:`!concurrent." +"interpreters` module provides a basic API for creating and managing " +"interpreters, as well as the switch-and-call operation." +msgstr "" + +#: library/concurrent.interpreters.rst:113 +msgid "" +"No other threads are automatically started for the operation. There is `a " +"helper `_ for that though. There is another " +"dedicated helper for calling the builtin :func:`exec` in an interpreter." +msgstr "" + +#: library/concurrent.interpreters.rst:118 +msgid "" +"When :func:`exec` (or :func:`eval`) are called in an interpreter, they run " +"using the interpreter's :mod:`!__main__` module as the \"globals\" " +"namespace. The same is true for functions that aren't associated with any " +"module. This is the same as how scripts invoked from the command-line run " +"in the :mod:`!__main__` module." +msgstr "" + +#: library/concurrent.interpreters.rst:128 +msgid "Concurrency and Parallelism" +msgstr "" + +#: library/concurrent.interpreters.rst:130 +msgid "" +"As noted earlier, interpreters do not provide any concurrency on their own. " +"They strictly represent the isolated execution context the runtime will use " +"*in the current thread*. That isolation makes them similar to processes, " +"but they still enjoy in-process efficiency, like threads." +msgstr "" + +#: library/concurrent.interpreters.rst:136 +msgid "" +"All that said, interpreters do naturally support certain flavors of " +"concurrency. There's a powerful side effect of that isolation. It enables a " +"different approach to concurrency than you can take with async or threads. " +"It's a similar concurrency model to CSP or the actor model, a model which is " +"relatively easy to reason about." +msgstr "" + +#: library/concurrent.interpreters.rst:143 +msgid "" +"You can take advantage of that concurrency model in a single thread, " +"switching back and forth between interpreters, Stackless-style. However, " +"this model is more useful when you combine interpreters with multiple " +"threads. This mostly involves starting a new thread, where you switch to " +"another interpreter and run what you want there." +msgstr "" + +#: library/concurrent.interpreters.rst:149 +msgid "" +"Each actual thread in Python, even if you're only running in the main " +"thread, has its own *current* execution context. Multiple threads can use " +"the same interpreter or different ones." +msgstr "" + +#: library/concurrent.interpreters.rst:153 msgid "" -"In the context of multiple interpreters, \"isolated\" means that different " -"interpreters do not share any state. In practice, there is some process-" -"global data they all share, but that is managed by the runtime." +"At a high level, you can think of the combination of threads and " +"interpreters as threads with opt-in sharing." msgstr "" -#: library/concurrent.interpreters.rst:59 +#: library/concurrent.interpreters.rst:156 +msgid "" +"As a significant bonus, interpreters are sufficiently isolated that they do " +"not share the :term:`GIL`, which means combining threads with multiple " +"interpreters enables full multi-core parallelism. (This has been the case " +"since Python 3.12.)" +msgstr "" + +#: library/concurrent.interpreters.rst:162 +msgid "Communication Between Interpreters" +msgstr "" + +#: library/concurrent.interpreters.rst:164 +msgid "" +"In practice, multiple interpreters are useful only if we have a way to " +"communicate between them. This usually involves some form of message " +"passing, but can even mean sharing data in some carefully managed way." +msgstr "" + +#: library/concurrent.interpreters.rst:169 +msgid "" +"With this in mind, the :mod:`!concurrent.interpreters` module provides a :" +"class:`queue.Queue` implementation, available through :func:`create_queue`." +msgstr "" + +#: library/concurrent.interpreters.rst:176 +msgid "\"Sharing\" Objects" +msgstr "" + +#: library/concurrent.interpreters.rst:178 +msgid "" +"Any data actually shared between interpreters loses the thread-safety " +"provided by the :term:`GIL`. There are various options for dealing with " +"this in extension modules. However, from Python code the lack of thread-" +"safety means objects can't actually be shared, with a few exceptions. " +"Instead, a copy must be created, which means mutable objects won't stay in " +"sync." +msgstr "" + +#: library/concurrent.interpreters.rst:185 +msgid "" +"By default, most objects are copied with :mod:`pickle` when they are passed " +"to another interpreter. Nearly all of the immutable builtin objects are " +"either directly shared or copied efficiently. For example:" +msgstr "" + +#: library/concurrent.interpreters.rst:189 +msgid ":const:`None`" +msgstr "" + +#: library/concurrent.interpreters.rst:190 +msgid ":class:`bool` (:const:`True` and :const:`False`)" +msgstr "" + +#: library/concurrent.interpreters.rst:191 +msgid ":class:`bytes`" +msgstr "" + +#: library/concurrent.interpreters.rst:192 +msgid ":class:`str`" +msgstr "" + +#: library/concurrent.interpreters.rst:193 +msgid ":class:`int`" +msgstr "" + +#: library/concurrent.interpreters.rst:194 +msgid ":class:`float`" +msgstr "" + +#: library/concurrent.interpreters.rst:195 +msgid ":class:`tuple` (of similarly supported objects)" +msgstr "" + +#: library/concurrent.interpreters.rst:197 +msgid "" +"There is a small number of Python types that actually share mutable data " +"between interpreters:" +msgstr "" + +#: library/concurrent.interpreters.rst:200 +msgid ":class:`memoryview`" +msgstr "" + +#: library/concurrent.interpreters.rst:201 +msgid ":class:`Queue`" +msgstr "" + +#: library/concurrent.interpreters.rst:205 msgid "Reference" msgstr "" -#: library/concurrent.interpreters.rst:61 +#: library/concurrent.interpreters.rst:207 msgid "This module defines the following functions:" msgstr "" -#: library/concurrent.interpreters.rst:65 +#: library/concurrent.interpreters.rst:211 msgid "" "Return a :class:`list` of :class:`Interpreter` objects, one for each " "existing interpreter." msgstr "" -#: library/concurrent.interpreters.rst:70 +#: library/concurrent.interpreters.rst:216 msgid "" "Return an :class:`Interpreter` object for the currently running interpreter." msgstr "" -#: library/concurrent.interpreters.rst:75 -msgid "Return an :class:`Interpreter` object for the main interpreter." +#: library/concurrent.interpreters.rst:221 +msgid "" +"Return an :class:`Interpreter` object for the main interpreter. This is the " +"interpreter the runtime created to run the :term:`REPL` or the script given " +"at the command-line. It is usually the only one." msgstr "" -#: library/concurrent.interpreters.rst:79 +#: library/concurrent.interpreters.rst:227 msgid "" "Initialize a new (idle) Python interpreter and return a :class:`Interpreter` " "object for it." msgstr "" -#: library/concurrent.interpreters.rst:84 +#: library/concurrent.interpreters.rst:232 +msgid "" +"Initialize a new cross-interpreter queue and return a :class:`Queue` object " +"for it." +msgstr "" + +#: library/concurrent.interpreters.rst:237 msgid "Interpreter objects" msgstr "" -#: library/concurrent.interpreters.rst:88 +#: library/concurrent.interpreters.rst:241 msgid "A single interpreter in the current process." msgstr "" -#: library/concurrent.interpreters.rst:90 +#: library/concurrent.interpreters.rst:243 msgid "" "Generally, :class:`Interpreter` shouldn't be called directly. Instead, use :" "func:`create` or one of the other module functions." msgstr "" -#: library/concurrent.interpreters.rst:95 -#: library/concurrent.interpreters.rst:101 +#: library/concurrent.interpreters.rst:248 +#: library/concurrent.interpreters.rst:254 +#: library/concurrent.interpreters.rst:333 msgid "(read-only)" msgstr "" -#: library/concurrent.interpreters.rst:97 -msgid "The interpreter's ID." +#: library/concurrent.interpreters.rst:250 +msgid "The underlying interpreter's ID." msgstr "" -#: library/concurrent.interpreters.rst:103 +#: library/concurrent.interpreters.rst:256 msgid "A string describing where the interpreter came from." msgstr "" -#: library/concurrent.interpreters.rst:107 +#: library/concurrent.interpreters.rst:260 msgid "" "Return ``True`` if the interpreter is currently executing code in its :mod:`!" "__main__` module and ``False`` otherwise." msgstr "" -#: library/concurrent.interpreters.rst:112 +#: library/concurrent.interpreters.rst:265 msgid "Finalize and destroy the interpreter." msgstr "" -#: library/concurrent.interpreters.rst:116 +#: library/concurrent.interpreters.rst:269 +msgid "Bind objects in the interpreter's :mod:`!__main__` module." +msgstr "" + +#: library/concurrent.interpreters.rst:271 +#: library/concurrent.interpreters.rst:328 msgid "" -"Bind \"shareable\" objects in the interpreter's :mod:`!__main__` module." +"Some objects are actually shared and some are copied efficiently, but most " +"are copied via :mod:`pickle`. See :ref:`interp-object-sharing`." msgstr "" -#: library/concurrent.interpreters.rst:121 +#: library/concurrent.interpreters.rst:276 msgid "Run the given source code in the interpreter (in the current thread)." msgstr "" -#: library/concurrent.interpreters.rst:125 +#: library/concurrent.interpreters.rst:280 msgid "" "Return the result of calling running the given function in the interpreter " "(in the current thread)." msgstr "" -#: library/concurrent.interpreters.rst:130 +#: library/concurrent.interpreters.rst:287 msgid "Run the given function in the interpreter (in a new thread)." msgstr "" -#: library/concurrent.interpreters.rst:133 +#: library/concurrent.interpreters.rst:290 msgid "Exceptions" msgstr "" -#: library/concurrent.interpreters.rst:137 +#: library/concurrent.interpreters.rst:294 msgid "" "This exception, a subclass of :exc:`Exception`, is raised when an " "interpreter-related error happens." msgstr "" -#: library/concurrent.interpreters.rst:142 +#: library/concurrent.interpreters.rst:299 msgid "" "This exception, a subclass of :exc:`InterpreterError`, is raised when the " "targeted interpreter no longer exists." msgstr "" -#: library/concurrent.interpreters.rst:147 +#: library/concurrent.interpreters.rst:304 msgid "" "This exception, a subclass of :exc:`InterpreterError`, is raised when the " "running code raised an uncaught exception." msgstr "" -#: library/concurrent.interpreters.rst:152 +#: library/concurrent.interpreters.rst:309 msgid "A basic snapshot of the exception raised in the other interpreter." msgstr "" -#: library/concurrent.interpreters.rst:158 +#: library/concurrent.interpreters.rst:315 msgid "" "This exception, a subclass of :exc:`TypeError`, is raised when an object " "cannot be sent to another interpreter." msgstr "" -#: library/concurrent.interpreters.rst:166 +#: library/concurrent.interpreters.rst:320 +msgid "Communicating Between Interpreters" +msgstr "" + +#: library/concurrent.interpreters.rst:324 +msgid "" +"A wrapper around a low-level, cross-interpreter queue, which implements the :" +"class:`queue.Queue` interface. The underlying queue can only be created " +"through :func:`create_queue`." +msgstr "" + +#: library/concurrent.interpreters.rst:335 +msgid "The queue's ID." +msgstr "" + +#: library/concurrent.interpreters.rst:340 +msgid "" +"This exception, a subclass of :exc:`queue.Empty`, is raised from :meth:`!" +"Queue.get` and :meth:`!Queue.get_nowait` when the queue is empty." +msgstr "" + +#: library/concurrent.interpreters.rst:346 +msgid "" +"This exception, a subclass of :exc:`queue.Full`, is raised from :meth:`!" +"Queue.put` and :meth:`!Queue.put_nowait` when the queue is full." +msgstr "" + +#: library/concurrent.interpreters.rst:352 msgid "Basic usage" msgstr "" -#: library/concurrent.interpreters.rst:168 +#: library/concurrent.interpreters.rst:354 msgid "Creating an interpreter and running code in it::" msgstr "" -#: library/concurrent.interpreters.rst:170 +#: library/concurrent.interpreters.rst:356 msgid "" "from concurrent import interpreters\n" "\n" @@ -238,6 +506,12 @@ msgid "" " print('spam!')\n" " \"\"\"))\n" "\n" +"def run(arg):\n" +" return arg\n" +"\n" +"res = interp.call(run, 'spam!')\n" +"print(res)\n" +"\n" "def run():\n" " print('spam!')\n" "\n" diff --git a/library/concurrent.po b/library/concurrent.po index 9e658722..29489236 100644 --- a/library/concurrent.po +++ b/library/concurrent.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/configparser.po b/library/configparser.po index e58f9f78..82be544b 100644 --- a/library/configparser.po +++ b/library/configparser.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/constants.po b/library/constants.po index a20c0b2c..01e4b7ff 100644 --- a/library/constants.po +++ b/library/constants.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -92,30 +92,30 @@ msgstr "" #: library/constants.rst:68 msgid "" -"The same as the ellipsis literal \"``...``\". Special value used mostly in " -"conjunction with extended slicing syntax for user-defined container data " -"types. ``Ellipsis`` is the sole instance of the :data:`types.EllipsisType` " -"type." +"The same as the ellipsis literal \"``...``\", an object frequently used to " +"indicate that something is omitted. Assignment to ``Ellipsis`` is possible, " +"but assignment to ``...`` raises a :exc:`SyntaxError`. ``Ellipsis`` is the " +"sole instance of the :data:`types.EllipsisType` type." msgstr "" -#: library/constants.rst:75 +#: library/constants.rst:76 msgid "" "This constant is true if Python was not started with an :option:`-O` option. " "See also the :keyword:`assert` statement." msgstr "" -#: library/constants.rst:81 +#: library/constants.rst:82 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 "" -#: library/constants.rst:89 +#: library/constants.rst:90 msgid "Constants added by the :mod:`site` module" msgstr "" -#: library/constants.rst:91 +#: library/constants.rst:92 msgid "" "The :mod:`site` module (which is imported automatically during startup, " "except if the :option:`-S` command-line option is given) adds several " @@ -123,27 +123,28 @@ msgid "" "interpreter shell and should not be used in programs." msgstr "" -#: library/constants.rst:99 +#: library/constants.rst:100 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." +"EOF) to exit\", and when accessed directly in the interactive interpreter or " +"called as functions, raise :exc:`SystemExit` with the specified exit code." msgstr "" -#: library/constants.rst:106 +#: library/constants.rst:108 msgid "" "Object that when printed, prints the message \"Type help() for interactive " -"help, or help(object) for help about object.\", and when called, acts as " -"described :func:`elsewhere `." +"help, or help(object) for help about object.\", and when accessed directly " +"in the interactive interpreter, invokes the built-in help system (see :func:" +"`help`)." msgstr "" -#: library/constants.rst:113 +#: library/constants.rst:116 msgid "" "Objects that when printed or called, print the text of copyright or credits, " "respectively." msgstr "" -#: library/constants.rst:118 +#: library/constants.rst:121 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 " diff --git a/library/contextlib.po b/library/contextlib.po index fde46915..3774b0f0 100644 --- a/library/contextlib.po +++ b/library/contextlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/contextvars.po b/library/contextvars.po index a3b7ac80..c553cadb 100644 --- a/library/contextvars.po +++ b/library/contextvars.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/copy.po b/library/copy.po index 2517abac..4fd2b371 100644 --- a/library/copy.po +++ b/library/copy.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/copyreg.po b/library/copyreg.po index cdaf4336..4a247cb8 100644 --- a/library/copyreg.po +++ b/library/copyreg.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/crypt.po b/library/crypt.po index 7a15e12d..71b88ddf 100644 --- a/library/crypt.po +++ b/library/crypt.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -32,8 +32,8 @@ msgstr "" msgid "" "Applications can use the :mod:`hashlib` module from the standard library. " "Other possible replacements are third-party libraries from PyPI: :pypi:" -"`legacycrypt`, :pypi:`bcrypt`, :pypi:`argon2-cffi`, or :pypi:`passlib`. " -"These are not supported or maintained by the Python core team." +"`legacycrypt`, :pypi:`bcrypt`, or :pypi:`argon2-cffi`. These are not " +"supported or maintained by the Python core team." msgstr "" #: library/crypt.rst:19 diff --git a/library/crypto.po b/library/crypto.po index f54ff146..44089c6a 100644 --- a/library/crypto.po +++ b/library/crypto.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/csv.po b/library/csv.po index 430a2898..d881b642 100644 --- a/library/csv.po +++ b/library/csv.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-07-27 17:28+0300\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" @@ -138,7 +138,7 @@ msgstr "" "οριστεί η επιλογή μορφοποίησης :data:`QUOTE_NONNUMERIC` (στην οποία " "περίπτωση τα μη παρατεθειμένα πεδία μετατρέπονται σε float)." -#: library/csv.rst:106 library/csv.rst:219 +#: library/csv.rst:106 library/csv.rst:220 msgid "A short usage example::" msgstr "Ένα σύντομο παράδειγμα χρήσης::" @@ -253,7 +253,7 @@ msgstr "" msgid "Return the names of all registered dialects." msgstr "Επιστρέφει τα ονόματα όλων των καταχωρημένων διαλέκτων." -#: library/csv.rst:144 +#: library/csv.rst:145 msgid "" "Returns the current maximum field size allowed by the parser. If *new_limit* " "is given, this becomes the new limit." @@ -261,11 +261,11 @@ msgstr "" "Επιστρέφει το τρέχον μέγιστο μέγεθος πεδίου που επιτρέπεται από τον αναλυτή. " "Αν δοθεί *new_limit*, αυτό γίνεται το νέο όριο." -#: library/csv.rst:148 +#: library/csv.rst:149 msgid "The :mod:`csv` module defines the following classes:" msgstr "Το module :mod:`csv` ορίζει τις παρακάτω κλάσεις:" -#: library/csv.rst:153 +#: library/csv.rst:154 msgid "" "Create an object that operates like a regular reader but maps the " "information in each row to a :class:`dict` whose keys are given by the " @@ -275,7 +275,7 @@ msgstr "" "αλλά χαρτογραφεί τις πληροφορίες σε κάθε γραμμή σε ένα :class:`dict` των " "οποίων τα κλειδιά δίνονται από την προαιρετική παράμετρο *fieldnames*." -#: library/csv.rst:157 +#: library/csv.rst:158 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 " @@ -291,7 +291,7 @@ msgstr "" "γραμμή θα περιληφθεί στα αποτελέσματα. Ανεξάρτητα από το πώς καθορίζονται τα " "ονόματα πεδίων, το λεξικό διατηρεί την αρχική τους σειρά." -#: library/csv.rst:164 +#: library/csv.rst:165 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 " @@ -306,7 +306,7 @@ msgstr "" "συμπληρώνονται με την τιμή του *restval* (το οποίο προεπιλέγεται σε " "``None``)." -#: library/csv.rst:170 +#: library/csv.rst:171 msgid "" "All other optional or keyword arguments are passed to the underlying :class:" "`reader` instance." @@ -314,7 +314,7 @@ msgstr "" "Όλες οι άλλες προαιρετικές ή παράμετροι λέξεων-κλειδιών μεταβιβάζονται στο " "υποκείμενο αντικείμενο :class:`reader`." -#: library/csv.rst:217 +#: library/csv.rst:218 msgid "" "If the argument passed to *fieldnames* is an iterator, it will be coerced to " "a :class:`list`." @@ -322,15 +322,15 @@ msgstr "" "Αν το όρισμα που δίνεται στο *fieldnames* είναι ένας iterator, θα μετατραπεί " "σε μια :class:`list`." -#: library/csv.rst:175 +#: library/csv.rst:176 msgid "Returned rows are now of type :class:`OrderedDict`." msgstr "Οι επιστρεφόμενες γραμμές είναι τώρα τύπου :class:`OrderedDict`." -#: library/csv.rst:178 +#: library/csv.rst:179 msgid "Returned rows are now of type :class:`dict`." msgstr "Οι επιστρεφόμενες γραμμές είναι τώρα τύπου :class:`dict`." -#: library/csv.rst:183 +#: library/csv.rst:184 msgid "" ">>> import csv\n" ">>> with open('names.csv', newline='') as csvfile:\n" @@ -356,7 +356,7 @@ msgstr "" ">>> print(row)\n" "{'first_name': 'John', 'last_name': 'Cleese'}" -#: library/csv.rst:199 +#: library/csv.rst:200 msgid "" "Create an object which operates like a regular writer but maps dictionaries " "onto output rows. The *fieldnames* parameter is a :mod:`sequence " @@ -385,7 +385,7 @@ msgstr "" "αγνοούνται. Οποιεσδήποτε άλλες προαιρετικές ή παράμετροι λέξεων-κλειδιών " "μεταβιβάζονται στο υποκείμενο αντικείμενο :class:`writer`." -#: library/csv.rst:214 +#: library/csv.rst:215 msgid "" "Note that unlike the :class:`DictReader` class, the *fieldnames* parameter " "of the :class:`DictWriter` class is not optional." @@ -393,7 +393,7 @@ msgstr "" "Σημειώστε ότι σε αντίθεση με την κλάση :class:`DictReader`, η παράμετρος " "`*fieldnames*` της κλάσης :class:`DictWriter` δεν είναι προαιρετική." -#: library/csv.rst:221 +#: library/csv.rst:222 msgid "" "import csv\n" "\n" @@ -417,7 +417,7 @@ msgstr "" " writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})\n" " writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})" -#: library/csv.rst:235 +#: library/csv.rst:236 msgid "" "The :class:`Dialect` class is a container class whose attributes contain " "information for how to handle doublequotes, whitespace, delimiters, etc. Due " @@ -432,7 +432,7 @@ msgstr "" "δεδομένα CSV. Τα στιγμιότυπα της :class:`Dialect` καθορίζουν πώς " "συμπεριφέρονται τα αντικείμενα :class:`reader` και :class:`writer`." -#: library/csv.rst:241 +#: library/csv.rst:242 msgid "" "All available :class:`Dialect` names are returned by :func:`list_dialects`, " "and they can be registered with specific :class:`reader` and :class:`writer` " @@ -443,7 +443,7 @@ msgstr "" "`reader` και :class:`writer` μέσω των συναρτήσεων αρχικοποίησης " "(``__init__``) τους όπως αυτό::" -#: library/csv.rst:245 +#: library/csv.rst:246 msgid "" "import csv\n" "\n" @@ -455,7 +455,7 @@ msgstr "" "with open('students.csv', 'w', newline='') as csvfile:\n" " writer = csv.writer(csvfile, dialect='unix')" -#: library/csv.rst:253 +#: library/csv.rst:254 msgid "" "The :class:`excel` class defines the usual properties of an Excel-generated " "CSV file. It is registered with the dialect name ``'excel'``." @@ -464,7 +464,7 @@ msgstr "" "δημιουργείται από το Excel. Είναι καταχωρημένη με το όνομα διαλέκτου " "``'excel'``." -#: library/csv.rst:259 +#: library/csv.rst:260 msgid "" "The :class:`excel_tab` class defines the usual properties of an Excel-" "generated TAB-delimited file. It is registered with the dialect name " @@ -474,7 +474,7 @@ msgstr "" "που δημιουργείται από το Excel με διαχωριστικό TAB. Είναι καταχωρημένη με το " "όνομα διαλέκτου ``'excel-tab'``." -#: library/csv.rst:265 +#: library/csv.rst:266 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 " @@ -485,17 +485,17 @@ msgstr "" "τερματιστή γραμμής και παραθέτει όλα τα πεδία. Είναι καταχωρημένη με το " "όνομα διαλέκτου ``'unix'``." -#: library/csv.rst:274 +#: library/csv.rst:275 msgid "The :class:`Sniffer` class is used to deduce the format of a CSV file." msgstr "" "Η κλάση :class:`Sniffer` χρησιμοποιείται για να προσδιορίσει τη μορφή ενός " "αρχείου CSV." -#: library/csv.rst:276 +#: library/csv.rst:277 msgid "The :class:`Sniffer` class provides two methods:" msgstr "Η κλάση :class:`Sniffer` παρέχει δύο μεθόδους:" -#: library/csv.rst:280 +#: library/csv.rst:281 msgid "" "Analyze the given *sample* and return a :class:`Dialect` subclass reflecting " "the parameters found. If the optional *delimiters* parameter is given, it " @@ -506,7 +506,7 @@ msgstr "" "παράμετρος *delimiters* δοθεί, ερμηνεύεται ως μια συμβολοσειρά που περιέχει " "πιθανά έγκυρους χαρακτήρες διαχωρισμού." -#: library/csv.rst:288 +#: library/csv.rst:289 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. Inspecting " @@ -518,11 +518,11 @@ msgstr "" "κεφαλίδων στηλών. Εξετάζοντας κάθε στήλη, ένα από τα δύο βασικά κριτήρια θα " "εξεταστεί για να εκτιμηθεί αν το δείγμα περιέχει κεφαλίδα:" -#: library/csv.rst:293 +#: library/csv.rst:294 msgid "the second through n-th rows contain numeric values" msgstr "η δεύτερη έως την n-οστή γραμμή περιέχει αριθμητικές τιμές" -#: library/csv.rst:294 +#: library/csv.rst:295 msgid "" "the second through n-th rows contain strings where at least one value's " "length differs from that of the putative header of that column." @@ -531,16 +531,15 @@ msgstr "" "τιμή έχει μήκος διαφορετικό από αυτό της υποτιθέμενης κεφαλίδας αυτής της " "στήλης." -#: library/csv.rst:297 +#: library/csv.rst:298 msgid "" -"Twenty rows after the first row are sampled; if more than half of columns + " -"rows meet the criteria, :const:`True` is returned." +"Twenty-one rows after the header are sampled; if more than half of the " +"columns + rows meet the criteria, :const:`True` is returned." msgstr "" -"Δείγμα λαμβάνεται από είκοσι γραμμές μετά την πρώτη γραμμή. Αν περισσότερες " -"από τις μισές στήλες + γραμμές πληρούν τα κριτήρια, επιστρέφεται :const:" -"`True`." +"Είκοσι μία γραμμές μετά την κεφαλίδα δειγματοληπτούνται· αν περισσότερες από " +"τις μισές στήλες + γραμμές πληρούν τα κριτήρια, επιστρέφεται :const:`True`." -#: library/csv.rst:302 +#: library/csv.rst:303 msgid "" "This method is a rough heuristic and may produce both false positives and " "negatives." @@ -548,11 +547,11 @@ msgstr "" "Αυτή η μέθοδος είναι μια χονδροειδής ευρετική και μπορεί να παράγει τόσο " "ψευδώς θετικά όσο και ψευδώς αρνητικά αποτελέσματα." -#: library/csv.rst:305 +#: library/csv.rst:306 msgid "An example for :class:`Sniffer` use::" msgstr "Ένα παράδειγμα χρήσης της :class:`Sniffer`::" -#: library/csv.rst:307 +#: library/csv.rst:308 msgid "" "with open('example.csv', newline='') as csvfile:\n" " dialect = csv.Sniffer().sniff(csvfile.read(1024))\n" @@ -566,31 +565,31 @@ msgstr "" " reader = csv.reader(csvfile, dialect)\n" " # ... process CSV file contents here ..." -#: library/csv.rst:316 +#: library/csv.rst:317 msgid "The :mod:`csv` module defines the following constants:" msgstr "Το module :mod:`csv` ορίζει τις παρακάτω σταθερές:" -#: library/csv.rst:320 +#: library/csv.rst:321 msgid "Instructs :class:`writer` objects to quote all fields." msgstr "Οδηγεί τα αντικείμενα :class:`writer` να παραθέτουν όλα τα πεδία." -#: library/csv.rst:325 +#: library/csv.rst:326 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*." +"special characters such as *delimiter*, *quotechar*, ``'\\r'``, ``'\\n'`` or " +"any of the characters in *lineterminator*." msgstr "" "Οδηγεί τα αντικείμενα :class:`writer` να παραθέτουν μόνο εκείνα τα πεδία που " -"περιέχουν ειδικούς χαρακτήρες όπως *delimiter*, *quotechar* ή οποιουσδήποτε " -"από τους χαρακτήρες στο *lineterminator*." +"περιέχουν ειδικούς χαρακτήρες όπως το *delimiter*, *quotechar*, ``'\\r'``, " +"``'\\n'`` ή οποιονδήποτε από τους χαρακτήρες στο *lineterminator*." -#: library/csv.rst:332 +#: library/csv.rst:333 msgid "Instructs :class:`writer` objects to quote all non-numeric fields." msgstr "" "Οδηγεί τα αντικείμενα :class:`writer` να παραθέτουν όλα τα μη-αριθμητικά " "πεδία." -#: library/csv.rst:334 +#: library/csv.rst:335 msgid "" "Instructs :class:`reader` objects to convert all non-quoted fields to type :" "class:`float`." @@ -598,7 +597,7 @@ msgstr "" "Οδηγεί τα αντικείμενα :class:`reader` να μετατρέπουν όλα τα μη-παρατεθειμένα " "πεδία σε τύπο :class:`float`." -#: library/csv.rst:337 +#: library/csv.rst:338 msgid "" "Some numeric types, such as :class:`bool`, :class:`~fractions.Fraction`, or :" "class:`~enum.IntEnum`, have a string representation that cannot be converted " @@ -610,20 +609,23 @@ msgstr "" "που δεν μπορεί να μετατραπεί σε :class:`float`. Δεν μπορούν να διαβαστούν σε " "λειτουργίες :data:`QUOTE_NONNUMERIC` και :data:`QUOTE_STRINGS`." -#: library/csv.rst:345 +#: library/csv.rst:346 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." +"Instructs :class:`writer` objects to never quote fields. When the current " +"*delimiter*, *quotechar*, *escapechar*, ``'\\r'``, ``'\\n'`` or any of the " +"characters in *lineterminator* 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. " +"Set *quotechar* to ``None`` to prevent its escaping." msgstr "" "Οδηγεί τα αντικείμενα :class:`writer` να μην παραθέτουν ποτέ πεδία. Όταν ο " -"τρέχων *delimiter* εμφανίζεται σε δεδομένα εξόδου, προηγείται από τον " -"τρέχοντα χαρακτήρα *escapechar*. Αν το *escapechar* δεν έχει οριστεί, ο " -"εγγραφέας θα προκαλέσει :exc:`Error` αν συναντηθούν χαρακτήρες που απαιτούν " -"escape." +"τρέχων *delimiter*, *quotechar*, *escapechar*, ``'\\r'``, ``'\\n'`` ή οποιοσδήποτε " +"από τους χαρακτήρες στο *lineterminator* εμφανίζεται στα δεδομένα εξόδου, " +"προηγείται από τον τρέχοντα χαρακτήρα *escapechar*. Αν το *escapechar* δεν έχει " +"οριστεί, ο εγγραφέας θα κάνει raise μια :exc:`Error` αν συναντηθούν χαρακτήρες που " +"απαιτούν απόδραση. Ορίστε το *quotechar* σε ``None`` για να αποτρέψετε την απόδρασή του." -#: library/csv.rst:350 +#: library/csv.rst:354 msgid "" "Instructs :class:`reader` objects to perform no special processing of quote " "characters." @@ -631,7 +633,7 @@ msgstr "" "Οδηγεί τα αντικείμενα :class:`reader` να μην εκτελούν ειδική επεξεργασία των " "χαρακτήρων παράθεσης." -#: library/csv.rst:354 +#: library/csv.rst:358 msgid "" "Instructs :class:`writer` objects to quote all fields which are not " "``None``. This is similar to :data:`QUOTE_ALL`, except that if a field " @@ -642,7 +644,7 @@ msgstr "" "αν μια τιμή πεδίου είναι ``None``, γράφεται μια κενή (μη-παρατεθειμένη) " "συμβολοσειρά." -#: library/csv.rst:358 +#: library/csv.rst:362 msgid "" "Instructs :class:`reader` objects to interpret an empty (unquoted) field as " "``None`` and to otherwise behave as :data:`QUOTE_ALL`." @@ -651,7 +653,7 @@ msgstr "" "παρατεθειμένο) πεδίο ως ``None`` και να συμπεριφέρονται διαφορετικά ως :data:" "`QUOTE_ALL`." -#: library/csv.rst:365 +#: library/csv.rst:369 msgid "" "Instructs :class:`writer` objects to always place quotes around fields which " "are strings. This is similar to :data:`QUOTE_NONNUMERIC`, except that if a " @@ -662,7 +664,7 @@ msgstr "" "`QUOTE_NONNUMERIC`, εκτός από το ότι αν μια τιμή πεδίου είναι ``None``, " "γράφεται μια κενή (μη-παρατεθειμένη) συμβολοσειρά." -#: library/csv.rst:369 +#: library/csv.rst:373 msgid "" "Instructs :class:`reader` objects to interpret an empty (unquoted) string as " "``None`` and to otherwise behave as :data:`QUOTE_NONNUMERIC`." @@ -671,21 +673,21 @@ msgstr "" "παρατεθειμένη) συμβολοσειρά ως ``None`` και να συμπεριφέρονται διαφορετικά " "ως :data:`QUOTE_NONNUMERIC`." -#: library/csv.rst:374 +#: library/csv.rst:378 msgid "The :mod:`csv` module defines the following exception:" msgstr "Το module :mod:`csv` ορίζει την παρακάτω εξαίρεση:" -#: library/csv.rst:379 +#: library/csv.rst:383 msgid "Raised by any of the functions when an error is detected." msgstr "" "Γίνεται raise από οποιαδήποτε από τις συναρτήσεις όταν ανιχνεύεται ένα " "σφάλμα." -#: library/csv.rst:384 +#: library/csv.rst:388 msgid "Dialects and Formatting Parameters" msgstr "Διάλεκτοι και Παράμετροι Μορφοποίησης" -#: library/csv.rst:386 +#: library/csv.rst:390 msgid "" "To make it easier to specify the format of input and output records, " "specific formatting parameters are grouped together into dialects. A " @@ -708,18 +710,18 @@ msgstr "" "μεμονωμένες παραμέτρους μορφοποίησης, οι οποίες έχουν τα ίδια ονόματα με τα " "χαρακτηριστικά που ορίζονται παρακάτω για την κλάση :class:`Dialect`." -#: library/csv.rst:396 +#: library/csv.rst:400 msgid "Dialects support the following attributes:" msgstr "Οι διάλεκτοι υποστηρίζουν τα παρακάτω χαρακτηριστικά:" -#: library/csv.rst:401 +#: library/csv.rst:405 msgid "" "A one-character string used to separate fields. It defaults to ``','``." msgstr "" "Μια συμβολοσειρά ενός χαρακτήρα που χρησιμοποιείται για να διαχωρίζει τα " "πεδία. Προεπιλογή είναι το ``','``." -#: library/csv.rst:406 +#: library/csv.rst:410 msgid "" "Controls how instances of *quotechar* appearing inside a field should " "themselves be quoted. When :const:`True`, the character is doubled. When :" @@ -731,7 +733,7 @@ msgstr "" "Όταν είναι :const:`False`, το *escapechar* χρησιμοποιείται ως πρόθεμα στο " "*quotechar*. Προεπιλογή είναι το :const:`True`." -#: library/csv.rst:411 +#: library/csv.rst:415 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." @@ -740,26 +742,46 @@ msgstr "" "*escapechar*, γίνεται raise :exc:`Error` αν βρεθεί ένα *quotechar* σε ένα " "πεδίο." -#: library/csv.rst:417 +#: library/csv.rst:421 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." +"A one-character string used by the writer to escape characters that require " +"escaping:" msgstr "" "Μια συμβολοσειρά ενός χαρακτήρα που χρησιμοποιείται από τον εγγραφέα για να " -"διαφύγει τον *delimiter* αν το *quoting* έχει οριστεί σε :const:`QUOTE_NONE` " -"και το *quotechar* αν το *doublequote* είναι :const:`False`. Κατά την " -"ανάγνωση, το *escapechar* αφαιρεί οποιαδήποτε ειδική σημασία από τον επόμενο " -"χαρακτήρα. Προεπιλογή είναι το :const:`None`, το οποίο απενεργοποιεί το " -"escape." +"διαφύγει χαρακτήρες που απαιτούν escape:" + +#: library/csv.rst:424 +msgid "" +"the *delimiter*, the *quotechar*, ``'\\r'``, ``'\\n'`` and any of the " +"characters in *lineterminator* are escaped if *quoting* is set to :const:" +"`QUOTE_NONE`;" +msgstr "" +"το *delimiter*, το *quotechar*, ``'\\r'``, ``'\\n'`` και οποιοσδήποτε από τους " +"χαρακτήρες στο *lineterminator* διαφεύγουν αν το *quoting* έχει οριστεί σε " +":const:`QUOTE_NONE` ∙" + +#: library/csv.rst:427 +msgid "the *quotechar* is escaped if *doublequote* is :const:`False`;" +msgstr "το *quotechar* διαφεύγει αν το *doublequote* είναι :const:`False` ∙" + +#: library/csv.rst:428 +msgid "the *escapechar* itself." +msgstr "το ίδιο το *escapechar*." + +#: library/csv.rst:430 +msgid "" +"On reading, the *escapechar* removes any special meaning from the following " +"character. It defaults to :const:`None`, which disables escaping." +msgstr "" +"Κατά την ανάγνωση, το *escapechar* αφαιρεί οποιαδήποτε ειδική σημασία από " +"τον επόμενο χαρακτήρα. Προεπιλογή είναι το :const:`None`, που απενεργοποιεί το " +"escaping." -#: library/csv.rst:422 +#: library/csv.rst:433 msgid "An empty *escapechar* is not allowed." msgstr "Ένα κενό *escapechar* δεν επιτρέπεται." -#: library/csv.rst:427 +#: library/csv.rst:438 msgid "" "The string used to terminate lines produced by the :class:`writer`. It " "defaults to ``'\\r\\n'``." @@ -767,7 +789,7 @@ msgstr "" "Η συμβολοσειρά που χρησιμοποιείται για να τερματίσει τις γραμμές που " "παράγονται από τον :class:`writer`. Προεπιλογή είναι το ``'\\r\\n'``." -#: library/csv.rst:432 +#: library/csv.rst:443 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 " @@ -777,40 +799,48 @@ msgstr "" "``'\\r'`` είτε ``'\\n'`` ως τερματισμό γραμμής, και αγνοεί το " "*lineterminator*. Αυτή η συμπεριφορά μπορεί να αλλάξει στο μέλλον." -#: library/csv.rst:439 +#: library/csv.rst:450 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 ``'\"'``." +"such as the *delimiter* or the *quotechar*, or which contain new-line " +"characters (``'\\r'``, ``'\\n'`` or any of the characters in " +"*lineterminator*). It defaults to ``'\"'``. Can be set to ``None`` to " +"prevent escaping ``'\"'`` if *quoting* is set to :const:`QUOTE_NONE`." msgstr "" "Μια συμβολοσειρά ενός χαρακτήρα που χρησιμοποιείται για να παραθέτει πεδία " -"που περιέχουν ειδικούς χαρακτήρες, όπως ο *delimiter* ή το *quotechar*, ή " -"που περιέχουν χαρακτήρες νέας γραμμής. Προεπιλογή είναι το ``'\"'``." +"που περιέχουν ειδικούς χαρακτήρες, όπως το *delimiter* ή το *quotechar*, ή " +"που περιέχουν χαρακτήρες νέας γραμμής (``'\\r'``, ``'\\n'`` ή οποιοσδήποτε από τους " +"χαρακτήρες στο *lineterminator*). Προεπιλογή είναι το ``'\"'``. Μπορεί να " +"οριστεί σε ``None`` για να αποτραπεί το escaping του ``'\"'`` αν το *quoting* έχει οριστεί σε :const:`QUOTE_NONE`." -#: library/csv.rst:443 +#: library/csv.rst:457 msgid "An empty *quotechar* is not allowed." msgstr "Ένα κενό *quotechar* δεν επιτρέπεται." -#: library/csv.rst:448 +#: library/csv.rst:462 msgid "" "Controls when quotes should be generated by the writer and recognised by the " "reader. It can take on any of the :ref:`QUOTE_\\* constants ` and defaults to :const:`QUOTE_MINIMAL`." +"constants>` and defaults to :const:`QUOTE_MINIMAL` if *quotechar* is not " +"``None``, and :const:`QUOTE_NONE` otherwise." msgstr "" "Ελέγχει πότε θα δημιουργούνται εισαγωγικά από τον εγγραφέα και θα " "αναγνωρίζονται από τον αναγνώστη. Μπορεί να πάρει οποιαδήποτε από τις " -"σταθερές :ref:`QUOTE_\\* ` και προεπιλογή είναι το :const:" -"`QUOTE_MINIMAL`." +"σταθερές :ref:`QUOTE_\\* constants ` και προεπιλογή είναι το :const:" +"`QUOTE_MINIMAL` αν το *quotechar* δεν είναι ``None``, και το :const:`QUOTE_NONE` " +"διαφορετικά." -#: library/csv.rst:455 +#: library/csv.rst:470 msgid "" "When :const:`True`, spaces immediately following the *delimiter* are " -"ignored. The default is :const:`False`." +"ignored. The default is :const:`False`. When combining ``delimiter=' '`` " +"with ``skipinitialspace=True``, unquoted empty fields are not allowed." msgstr "" "Όταν είναι :const:`True`, τα κενά που ακολουθούν άμεσα τον *delimiter* " -"αγνοούνται. Η προεπιλογή είναι :const:`False`." +"αγνοούνται. Η προεπιλογή είναι :const:`False`. Όταν συνδυάζεται το ``delimiter=' '`` " +"με το ``skipinitialspace=True``, δεν επιτρέπονται μη παραθερισμένα κενά πεδία." -#: library/csv.rst:461 +#: library/csv.rst:477 msgid "" "When ``True``, raise exception :exc:`Error` on bad CSV input. The default is " "``False``." @@ -818,11 +848,11 @@ msgstr "" "Όταν είναι ``True``, γίνεται raise η εξαίρεση :exc:`Error` σε κακή είσοδο " "CSV. Η προεπιλογή είναι ``False``." -#: library/csv.rst:467 +#: library/csv.rst:483 msgid "Reader Objects" msgstr "Αντικείμενα Αναγνώστη" -#: library/csv.rst:469 +#: library/csv.rst:485 msgid "" "Reader objects (:class:`DictReader` instances and objects returned by the :" "func:`reader` function) have the following public methods:" @@ -831,7 +861,7 @@ msgstr "" "αντικείμενα που επιστρέφονται από τη συνάρτηση :func:`reader`) έχουν τις " "παρακάτω δημόσιες μεθόδους:" -#: library/csv.rst:474 +#: library/csv.rst:490 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` " @@ -844,17 +874,17 @@ msgstr "" "τρέχουσα :class:`Dialect`. Συνήθως θα πρέπει να το καλέσετε ως " "``next(reader)``." -#: library/csv.rst:480 +#: library/csv.rst:496 msgid "Reader objects have the following public attributes:" msgstr "Τα αντικείμενα αναγνώστη έχουν τα παρακάτω δημόσια χαρακτηριστικά:" -#: library/csv.rst:484 +#: library/csv.rst:500 msgid "A read-only description of the dialect in use by the parser." msgstr "" "Ένα μόνο για ανάγνωση περιγραφικό χαρακτηριστικό της διαλέκτου που " "χρησιμοποιείται από τον αναλυτή." -#: library/csv.rst:489 +#: library/csv.rst:505 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." @@ -863,11 +893,11 @@ msgstr "" "είναι το ίδιο με τον αριθμό των εγγραφών που επιστράφηκαν, καθώς οι εγγραφές " "μπορούν να εκτείνονται σε πολλές γραμμές." -#: library/csv.rst:493 +#: library/csv.rst:509 msgid "DictReader objects have the following public attribute:" msgstr "Τα αντικείμενα DictReader έχουν το παρακάτω δημόσιο χαρακτηριστικό:" -#: library/csv.rst:497 +#: library/csv.rst:513 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." @@ -876,11 +906,11 @@ msgstr "" "χαρακτηριστικό αρχικοποιείται κατά την πρώτη πρόσβαση ή όταν διαβαστεί η " "πρώτη εγγραφή από το αρχείο." -#: library/csv.rst:504 +#: library/csv.rst:520 msgid "Writer Objects" msgstr "Αντικείμενα Εγγραφέα" -#: library/csv.rst:506 +#: library/csv.rst:522 msgid "" ":class:`writer` objects (:class:`DictWriter` instances and objects returned " "by the :func:`writer` function) have the following public methods. A *row* " @@ -902,7 +932,7 @@ msgstr "" "που διαβάζουν αρχεία CSV (υποθέτοντας ότι υποστηρίζουν σύνθετους αριθμούς " "καθόλου)." -#: library/csv.rst:517 +#: library/csv.rst:533 msgid "" "Write the *row* parameter to the writer's file object, formatted according " "to the current :class:`Dialect`. Return the return value of the call to the " @@ -913,11 +943,11 @@ msgstr "" "επιστροφής της κλήσης στη μέθοδο *write* του υποκείμενου αντικειμένου " "αρχείου." -#: library/csv.rst:521 +#: library/csv.rst:537 msgid "Added support of arbitrary iterables." msgstr "Προστέθηκε υποστήριξη για αυθαίρετα επαναληπτικά αντικείμενα." -#: library/csv.rst:526 +#: library/csv.rst:542 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 " @@ -927,21 +957,21 @@ msgstr "" "αντικειμένων όπως περιγράφεται παραπάνω) στο αντικείμενο αρχείου του " "εγγραφέα, μορφοποιημένο σύμφωνα με την τρέχουσα διάλεκτο." -#: library/csv.rst:530 +#: library/csv.rst:546 msgid "Writer objects have the following public attribute:" msgstr "Τα αντικείμενα εγγραφέα έχουν το παρακάτω δημόσιο χαρακτηριστικό:" -#: library/csv.rst:535 +#: library/csv.rst:551 msgid "A read-only description of the dialect in use by the writer." msgstr "" "Ένα μόνο για ανάγνωση περιγραφικό χαρακτηριστικό της διαλέκτου που " "χρησιμοποιείται από τον εγγραφέα." -#: library/csv.rst:538 +#: library/csv.rst:554 msgid "DictWriter objects have the following public method:" msgstr "Τα αντικείμενα DictWriter έχουν την παρακάτω δημόσια μέθοδο:" -#: library/csv.rst:543 +#: library/csv.rst:559 msgid "" "Write a row with the field names (as specified in the constructor) to the " "writer's file object, formatted according to the current dialect. Return the " @@ -952,7 +982,7 @@ msgstr "" "διάλεκτο. Επιστρέφει την τιμή επιστροφής της κλήσης :meth:`csvwriter." "writerow` που χρησιμοποιείται εσωτερικά." -#: library/csv.rst:548 +#: library/csv.rst:564 msgid "" ":meth:`writeheader` now also returns the value returned by the :meth:" "`csvwriter.writerow` method it uses internally." @@ -960,15 +990,15 @@ msgstr "" "Η :meth:`writeheader` τώρα επιστρέφει επίσης την τιμή που επιστρέφεται από " "τη μέθοδο :meth:`csvwriter.writerow` που χρησιμοποιεί εσωτερικά." -#: library/csv.rst:556 +#: library/csv.rst:572 msgid "Examples" msgstr "Παραδείγματα" -#: library/csv.rst:558 +#: library/csv.rst:574 msgid "The simplest example of reading a CSV file::" msgstr "Το πιο απλό παράδειγμα ανάγνωσης ενός αρχείου CSV::" -#: library/csv.rst:560 +#: library/csv.rst:576 msgid "" "import csv\n" "with open('some.csv', newline='') as f:\n" @@ -982,11 +1012,11 @@ msgstr "" " for row in reader:\n" " print(row)" -#: library/csv.rst:566 +#: library/csv.rst:582 msgid "Reading a file with an alternate format::" msgstr "Ανάγνωση ενός αρχείου με εναλλακτική μορφή::" -#: library/csv.rst:568 +#: library/csv.rst:584 msgid "" "import csv\n" "with open('passwd', newline='') as f:\n" @@ -1000,11 +1030,11 @@ msgstr "" " for row in reader:\n" " print(row)" -#: library/csv.rst:574 +#: library/csv.rst:590 msgid "The corresponding simplest possible writing example is::" msgstr "Το αντίστοιχο απλούστερο παράδειγμα εγγραφής είναι::" -#: library/csv.rst:576 +#: library/csv.rst:592 msgid "" "import csv\n" "with open('some.csv', 'w', newline='') as f:\n" @@ -1016,7 +1046,7 @@ msgstr "" " writer = csv.writer(f)\n" " writer.writerows(someiterable)" -#: library/csv.rst:581 +#: library/csv.rst:597 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:" @@ -1030,7 +1060,7 @@ msgstr "" "μια διαφορετική κωδικοποίηση, χρησιμοποιήστε το όρισμα ``encoding`` της " "open::" -#: library/csv.rst:586 +#: library/csv.rst:602 msgid "" "import csv\n" "with open('some.csv', newline='', encoding='utf-8') as f:\n" @@ -1044,7 +1074,7 @@ msgstr "" " for row in reader:\n" " print(row)" -#: library/csv.rst:592 +#: library/csv.rst:608 msgid "" "The same applies to writing in something other than the system default " "encoding: specify the encoding argument when opening the output file." @@ -1053,11 +1083,11 @@ msgstr "" "κωδικοποίηση του συστήματος: καθορίστε το όρισμα κωδικοποίησης κατά το " "άνοιγμα του αρχείου εξόδου." -#: library/csv.rst:595 +#: library/csv.rst:611 msgid "Registering a new dialect::" msgstr "Καταχώρηση μιας νέας διαλέκτου::" -#: library/csv.rst:597 +#: library/csv.rst:613 msgid "" "import csv\n" "csv.register_dialect('unixpwd', delimiter=':', quoting=csv.QUOTE_NONE)\n" @@ -1069,7 +1099,7 @@ msgstr "" "with open('passwd', newline='') as f:\n" " reader = csv.reader(f, 'unixpwd')" -#: library/csv.rst:602 +#: library/csv.rst:618 msgid "" "A slightly more advanced use of the reader --- catching and reporting " "errors::" @@ -1077,7 +1107,7 @@ msgstr "" "Μια ελαφρώς πιο προηγμένη χρήση του αναγνώστη --- σύλληψη και αναφορά " "σφαλμάτων::" -#: library/csv.rst:604 +#: library/csv.rst:620 msgid "" "import csv, sys\n" "filename = 'some.csv'\n" @@ -1099,7 +1129,7 @@ msgstr "" " except csv.Error as e:\n" " sys.exit(f'file {filename}, line {reader.line_num}: {e}')" -#: library/csv.rst:614 +#: library/csv.rst:630 msgid "" "And while the module doesn't directly support parsing strings, it can easily " "be done::" @@ -1107,7 +1137,7 @@ msgstr "" "Και ενώ το module δεν υποστηρίζει άμεσα την ανάλυση συμβολοσειρών, μπορεί " "εύκολα να γίνει::" -#: library/csv.rst:617 +#: library/csv.rst:633 msgid "" "import csv\n" "for row in csv.reader(['one,two,three']):\n" @@ -1117,16 +1147,16 @@ msgstr "" "for row in csv.reader(['one,two,three']):\n" " print(row)" -#: library/csv.rst:623 +#: library/csv.rst:639 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: library/csv.rst:624 +#: library/csv.rst:640 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:" +"will not be interpreted correctly, and on platforms that use ``\\r\\n`` line " +"endings 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 "" "Αν δεν καθοριστεί ``newline=''``, οι νέες γραμμές που ενσωματώνονται μέσα σε " diff --git a/library/ctypes.po b/library/ctypes.po index 38879773..65e9821f 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -32,18 +32,26 @@ msgid "" "libraries. It can be used to wrap these libraries in pure Python." msgstr "" -#: library/ctypes.rst:21 -msgid "ctypes tutorial" +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." msgstr "" #: library/ctypes.rst:23 +msgid "ctypes tutorial" +msgstr "" + +#: library/ctypes.rst:25 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 macOS, they contain doctest directives in comments." msgstr "" -#: library/ctypes.rst:27 +#: library/ctypes.rst:29 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:" @@ -51,17 +59,17 @@ msgid "" "you would expect :class:`c_int` --- they are actually the same type." msgstr "" -#: library/ctypes.rst:35 +#: library/ctypes.rst:37 msgid "Loading dynamic link libraries" msgstr "" -#: library/ctypes.rst:37 +#: library/ctypes.rst:39 msgid "" ":mod:`ctypes` exports the *cdll*, and on Windows *windll* and *oledll* " "objects, for loading dynamic link libraries." msgstr "" -#: library/ctypes.rst:40 +#: library/ctypes.rst:42 msgid "" "You load libraries by accessing them as attributes of these objects. *cdll* " "loads libraries which export functions using the standard ``cdecl`` calling " @@ -72,20 +80,20 @@ msgid "" "when the function call fails." msgstr "" -#: library/ctypes.rst:48 +#: library/ctypes.rst:50 msgid "" "Windows errors used to raise :exc:`WindowsError`, which is now an alias of :" "exc:`OSError`." msgstr "" -#: library/ctypes.rst:53 +#: library/ctypes.rst:55 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 "" -#: library/ctypes.rst:57 +#: library/ctypes.rst:59 msgid "" ">>> from ctypes import *\n" ">>> print(windll.kernel32)\n" @@ -96,11 +104,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:65 +#: library/ctypes.rst:67 msgid "Windows appends the usual ``.dll`` file suffix automatically." msgstr "" -#: library/ctypes.rst:68 +#: library/ctypes.rst:70 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 " @@ -108,7 +116,7 @@ msgid "" "import and use the ``msvcrt`` module." msgstr "" -#: library/ctypes.rst:73 +#: library/ctypes.rst:75 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. " @@ -117,7 +125,7 @@ msgid "" "CDLL by calling the constructor::" msgstr "" -#: library/ctypes.rst:79 +#: library/ctypes.rst:81 msgid "" ">>> cdll.LoadLibrary(\"libc.so.6\")\n" "\n" @@ -127,15 +135,15 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:92 +#: library/ctypes.rst:94 msgid "Accessing functions from loaded dlls" msgstr "" -#: library/ctypes.rst:94 +#: library/ctypes.rst:96 msgid "Functions are accessed as attributes of dll objects::" msgstr "" -#: library/ctypes.rst:96 +#: library/ctypes.rst:98 msgid "" ">>> libc.printf\n" "<_FuncPtr object at 0x...>\n" @@ -150,7 +158,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:108 +#: library/ctypes.rst:110 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 " @@ -161,7 +169,7 @@ msgid "" "``GetModuleHandle`` depending on whether UNICODE is defined or not::" msgstr "" -#: library/ctypes.rst:116 +#: library/ctypes.rst:118 msgid "" "/* ANSI version */\n" "HMODULE GetModuleHandleA(LPCSTR lpModuleName);\n" @@ -169,35 +177,35 @@ msgid "" "HMODULE GetModuleHandleW(LPCWSTR lpModuleName);" msgstr "" -#: library/ctypes.rst:121 +#: library/ctypes.rst:123 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 "" -#: library/ctypes.rst:125 +#: library/ctypes.rst:127 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 "" -#: library/ctypes.rst:129 +#: library/ctypes.rst:131 msgid "" ">>> getattr(cdll.msvcrt, \"??2@YAPAXI@Z\")\n" "<_FuncPtr object at 0x...>\n" ">>>" msgstr "" -#: library/ctypes.rst:133 +#: library/ctypes.rst:135 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 "" -#: library/ctypes.rst:136 +#: library/ctypes.rst:138 msgid "" ">>> cdll.kernel32[1]\n" "<_FuncPtr object at 0x...>\n" @@ -210,44 +218,44 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:150 +#: library/ctypes.rst:152 msgid "Calling functions" msgstr "" -#: library/ctypes.rst:152 +#: library/ctypes.rst:154 msgid "" "You can call these functions like any other Python callable. This example " "uses the ``rand()`` function, which takes no arguments and returns a pseudo-" "random integer::" msgstr "" -#: library/ctypes.rst:155 +#: library/ctypes.rst:157 msgid "" ">>> print(libc.rand())\n" "1804289383" msgstr "" -#: library/ctypes.rst:158 +#: library/ctypes.rst:160 msgid "" "On Windows, you can call the ``GetModuleHandleA()`` function, which returns " "a win32 module handle (passing ``None`` as single argument to call it with a " "``NULL`` pointer)::" msgstr "" -#: library/ctypes.rst:161 +#: library/ctypes.rst:163 msgid "" ">>> print(hex(windll.kernel32.GetModuleHandleA(None)))\n" "0x1d000000\n" ">>>" msgstr "" -#: library/ctypes.rst:165 +#: library/ctypes.rst:167 msgid "" ":exc:`ValueError` is raised when you call an ``stdcall`` function with the " "``cdecl`` calling convention, or vice versa::" msgstr "" -#: library/ctypes.rst:168 +#: library/ctypes.rst:170 msgid "" ">>> cdll.kernel32.GetModuleHandleA(None)\n" "Traceback (most recent call last):\n" @@ -264,20 +272,20 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:180 +#: library/ctypes.rst:182 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 "" -#: library/ctypes.rst:183 +#: library/ctypes.rst:185 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 "" -#: library/ctypes.rst:187 +#: library/ctypes.rst:189 msgid "" ">>> windll.kernel32.GetModuleHandleA(32)\n" "Traceback (most recent call last):\n" @@ -286,7 +294,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:193 +#: library/ctypes.rst:195 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 " @@ -294,7 +302,7 @@ msgid "" "library calls)." msgstr "" -#: library/ctypes.rst:198 +#: library/ctypes.rst:200 msgid "" "``None``, integers, bytes objects and (unicode) strings are the only native " "Python objects that can directly be used as parameters in these function " @@ -305,284 +313,349 @@ msgid "" "the C type." msgstr "" -#: library/ctypes.rst:205 +#: library/ctypes.rst:207 msgid "" "Before we move on calling functions with other parameter types, we have to " "learn more about :mod:`ctypes` data types." msgstr "" -#: library/ctypes.rst:2414 +#: library/ctypes.rst:2428 msgid "Fundamental data types" msgstr "" -#: library/ctypes.rst:214 +#: library/ctypes.rst:216 msgid ":mod:`ctypes` defines a number of primitive C compatible data types:" msgstr "" -#: library/ctypes.rst:273 +#: library/ctypes.rst:291 msgid "ctypes type" msgstr "" -#: library/ctypes.rst:273 +#: library/ctypes.rst:291 msgid "C type" msgstr "" -#: library/ctypes.rst:273 +#: library/ctypes.rst:291 msgid "Python type" msgstr "" -#: library/ctypes.rst:219 +#: library/ctypes.rst:221 msgid ":class:`c_bool`" msgstr "" -#: library/ctypes.rst:219 +#: library/ctypes.rst:221 msgid ":c:expr:`_Bool`" msgstr "" -#: library/ctypes.rst:219 +#: library/ctypes.rst:221 msgid "bool (1)" msgstr "" -#: library/ctypes.rst:221 +#: library/ctypes.rst:223 msgid ":class:`c_char`" msgstr "" -#: library/ctypes.rst:225 +#: library/ctypes.rst:227 msgid ":c:expr:`char`" msgstr "" -#: library/ctypes.rst:221 +#: library/ctypes.rst:223 msgid "1-character bytes object" msgstr "" -#: library/ctypes.rst:223 +#: library/ctypes.rst:225 msgid ":class:`c_wchar`" msgstr "" -#: library/ctypes.rst:223 +#: library/ctypes.rst:225 msgid ":c:type:`wchar_t`" msgstr "" -#: library/ctypes.rst:223 +#: library/ctypes.rst:225 msgid "1-character string" msgstr "" -#: library/ctypes.rst:225 +#: library/ctypes.rst:227 msgid ":class:`c_byte`" msgstr "" -#: library/ctypes.rst:227 library/ctypes.rst:231 library/ctypes.rst:235 -#: library/ctypes.rst:239 library/ctypes.rst:243 library/ctypes.rst:248 -#: library/ctypes.rst:251 +#: library/ctypes.rst:229 library/ctypes.rst:233 library/ctypes.rst:237 +#: library/ctypes.rst:241 library/ctypes.rst:245 library/ctypes.rst:249 +#: library/ctypes.rst:253 library/ctypes.rst:257 library/ctypes.rst:261 +#: library/ctypes.rst:266 library/ctypes.rst:269 msgid "int" msgstr "" -#: library/ctypes.rst:227 +#: library/ctypes.rst:229 msgid ":class:`c_ubyte`" msgstr "" -#: library/ctypes.rst:227 +#: library/ctypes.rst:229 msgid ":c:expr:`unsigned char`" msgstr "" -#: library/ctypes.rst:229 +#: library/ctypes.rst:231 msgid ":class:`c_short`" msgstr "" -#: library/ctypes.rst:229 +#: library/ctypes.rst:231 msgid ":c:expr:`short`" msgstr "" -#: library/ctypes.rst:231 +#: library/ctypes.rst:233 msgid ":class:`c_ushort`" msgstr "" -#: library/ctypes.rst:231 +#: library/ctypes.rst:233 msgid ":c:expr:`unsigned short`" msgstr "" -#: library/ctypes.rst:233 +#: library/ctypes.rst:235 msgid ":class:`c_int`" msgstr "" -#: library/ctypes.rst:233 +#: library/ctypes.rst:235 msgid ":c:expr:`int`" msgstr "" -#: library/ctypes.rst:235 +#: library/ctypes.rst:237 +msgid ":class:`c_int8`" +msgstr "" + +#: library/ctypes.rst:237 +msgid ":c:type:`int8_t`" +msgstr "" + +#: library/ctypes.rst:239 +msgid ":class:`c_int16`" +msgstr "" + +#: library/ctypes.rst:239 +msgid ":c:type:`int16_t`" +msgstr "" + +#: library/ctypes.rst:241 +msgid ":class:`c_int32`" +msgstr "" + +#: library/ctypes.rst:241 +msgid ":c:type:`int32_t`" +msgstr "" + +#: library/ctypes.rst:243 +msgid ":class:`c_int64`" +msgstr "" + +#: library/ctypes.rst:243 +msgid ":c:type:`int64_t`" +msgstr "" + +#: library/ctypes.rst:245 msgid ":class:`c_uint`" msgstr "" -#: library/ctypes.rst:235 +#: library/ctypes.rst:245 msgid ":c:expr:`unsigned int`" msgstr "" -#: library/ctypes.rst:237 +#: library/ctypes.rst:247 +msgid ":class:`c_uint8`" +msgstr "" + +#: library/ctypes.rst:247 +msgid ":c:type:`uint8_t`" +msgstr "" + +#: library/ctypes.rst:249 +msgid ":class:`c_uint16`" +msgstr "" + +#: library/ctypes.rst:249 +msgid ":c:type:`uint16_t`" +msgstr "" + +#: library/ctypes.rst:251 +msgid ":class:`c_uint32`" +msgstr "" + +#: library/ctypes.rst:251 +msgid ":c:type:`uint32_t`" +msgstr "" + +#: library/ctypes.rst:253 +msgid ":class:`c_uint64`" +msgstr "" + +#: library/ctypes.rst:253 +msgid ":c:type:`uint64_t`" +msgstr "" + +#: library/ctypes.rst:255 msgid ":class:`c_long`" msgstr "" -#: library/ctypes.rst:237 +#: library/ctypes.rst:255 msgid ":c:expr:`long`" msgstr "" -#: library/ctypes.rst:239 +#: library/ctypes.rst:257 msgid ":class:`c_ulong`" msgstr "" -#: library/ctypes.rst:239 +#: library/ctypes.rst:257 msgid ":c:expr:`unsigned long`" msgstr "" -#: library/ctypes.rst:241 +#: library/ctypes.rst:259 msgid ":class:`c_longlong`" msgstr "" -#: library/ctypes.rst:241 +#: library/ctypes.rst:259 msgid ":c:expr:`__int64` or :c:expr:`long long`" msgstr "" -#: library/ctypes.rst:243 +#: library/ctypes.rst:261 msgid ":class:`c_ulonglong`" msgstr "" -#: library/ctypes.rst:243 +#: library/ctypes.rst:261 msgid ":c:expr:`unsigned __int64` or :c:expr:`unsigned long long`" msgstr "" -#: library/ctypes.rst:246 +#: library/ctypes.rst:264 msgid ":class:`c_size_t`" msgstr "" -#: library/ctypes.rst:246 +#: library/ctypes.rst:264 msgid ":c:type:`size_t`" msgstr "" -#: library/ctypes.rst:248 +#: library/ctypes.rst:266 msgid ":class:`c_ssize_t`" msgstr "" -#: library/ctypes.rst:248 +#: library/ctypes.rst:266 msgid ":c:type:`ssize_t` or :c:expr:`Py_ssize_t`" msgstr "" -#: library/ctypes.rst:251 +#: library/ctypes.rst:269 msgid ":class:`c_time_t`" msgstr "" -#: library/ctypes.rst:251 +#: library/ctypes.rst:269 msgid ":c:type:`time_t`" msgstr "" -#: library/ctypes.rst:253 +#: library/ctypes.rst:271 msgid ":class:`c_float`" msgstr "" -#: library/ctypes.rst:253 +#: library/ctypes.rst:271 msgid ":c:expr:`float`" msgstr "" -#: library/ctypes.rst:255 library/ctypes.rst:257 +#: library/ctypes.rst:273 library/ctypes.rst:275 msgid "float" msgstr "" -#: library/ctypes.rst:255 +#: library/ctypes.rst:273 msgid ":class:`c_double`" msgstr "" -#: library/ctypes.rst:255 +#: library/ctypes.rst:273 msgid ":c:expr:`double`" msgstr "" -#: library/ctypes.rst:257 +#: library/ctypes.rst:275 msgid ":class:`c_longdouble`" msgstr "" -#: library/ctypes.rst:257 +#: library/ctypes.rst:275 msgid ":c:expr:`long double`" msgstr "" -#: library/ctypes.rst:259 +#: library/ctypes.rst:277 msgid ":class:`c_char_p`" msgstr "" -#: library/ctypes.rst:259 +#: library/ctypes.rst:277 msgid ":c:expr:`char *` (NUL terminated)" msgstr "" -#: library/ctypes.rst:259 +#: library/ctypes.rst:277 msgid "bytes object or ``None``" msgstr "" -#: library/ctypes.rst:261 +#: library/ctypes.rst:279 msgid ":class:`c_wchar_p`" msgstr "" -#: library/ctypes.rst:261 +#: library/ctypes.rst:279 msgid ":c:expr:`wchar_t *` (NUL terminated)" msgstr "" -#: library/ctypes.rst:261 +#: library/ctypes.rst:279 msgid "string or ``None``" msgstr "" -#: library/ctypes.rst:263 +#: library/ctypes.rst:281 msgid ":class:`c_void_p`" msgstr "" -#: library/ctypes.rst:263 +#: library/ctypes.rst:281 msgid ":c:expr:`void *`" msgstr "" -#: library/ctypes.rst:263 +#: library/ctypes.rst:281 msgid "int or ``None``" msgstr "" -#: library/ctypes.rst:267 +#: library/ctypes.rst:285 msgid "The constructor accepts any object with a truth value." msgstr "" -#: library/ctypes.rst:269 +#: library/ctypes.rst:287 msgid "" "Additionally, if IEC 60559 compatible complex arithmetic (Annex G) is " "supported in both C and ``libffi``, the following complex types are " "available:" msgstr "" -#: library/ctypes.rst:275 +#: library/ctypes.rst:293 msgid ":class:`c_float_complex`" msgstr "" -#: library/ctypes.rst:275 +#: library/ctypes.rst:293 msgid ":c:expr:`float complex`" msgstr "" -#: library/ctypes.rst:277 library/ctypes.rst:279 +#: library/ctypes.rst:295 library/ctypes.rst:297 msgid "complex" msgstr "" -#: library/ctypes.rst:277 +#: library/ctypes.rst:295 msgid ":class:`c_double_complex`" msgstr "" -#: library/ctypes.rst:277 +#: library/ctypes.rst:295 msgid ":c:expr:`double complex`" msgstr "" -#: library/ctypes.rst:279 +#: library/ctypes.rst:297 msgid ":class:`c_longdouble_complex`" msgstr "" -#: library/ctypes.rst:279 +#: library/ctypes.rst:297 msgid ":c:expr:`long double complex`" msgstr "" -#: library/ctypes.rst:283 +#: library/ctypes.rst:301 msgid "" "All these types can be created by calling them with an optional initializer " "of the correct type and value::" msgstr "" -#: library/ctypes.rst:286 +#: library/ctypes.rst:304 msgid "" ">>> c_int()\n" "c_long(0)\n" @@ -593,12 +666,12 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:294 +#: library/ctypes.rst:312 msgid "" "Since these types are mutable, their value can also be changed afterwards::" msgstr "" -#: library/ctypes.rst:296 +#: library/ctypes.rst:314 msgid "" ">>> i = c_int(42)\n" ">>> print(i)\n" @@ -611,7 +684,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:306 +#: library/ctypes.rst:324 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 " @@ -619,7 +692,7 @@ msgid "" "Python string objects are immutable)::" msgstr "" -#: library/ctypes.rst:311 +#: library/ctypes.rst:329 msgid "" ">>> s = \"Hello, World\"\n" ">>> c_s = c_wchar_p(s)\n" @@ -637,7 +710,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:326 +#: library/ctypes.rst:344 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 :" @@ -647,7 +720,7 @@ msgid "" "``value`` property::" msgstr "" -#: library/ctypes.rst:333 +#: library/ctypes.rst:351 msgid "" ">>> from ctypes import *\n" ">>> p = create_string_buffer(3) # create a 3 byte buffer, " @@ -669,7 +742,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:350 +#: library/ctypes.rst:368 msgid "" "The :func:`create_string_buffer` function replaces the old :func:`!c_buffer` " "function (which is still available as an alias). To create a mutable memory " @@ -677,18 +750,18 @@ msgid "" "the :func:`create_unicode_buffer` function." msgstr "" -#: library/ctypes.rst:359 +#: library/ctypes.rst:377 msgid "Calling functions, continued" msgstr "" -#: library/ctypes.rst:361 +#: library/ctypes.rst:379 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 "" -#: library/ctypes.rst:365 +#: library/ctypes.rst:383 msgid "" ">>> printf = libc.printf\n" ">>> printf(b\"Hello, %s\\n\", b\"World!\")\n" @@ -708,14 +781,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:381 +#: library/ctypes.rst:399 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 "" -#: library/ctypes.rst:385 +#: library/ctypes.rst:403 msgid "" ">>> printf(b\"An int %d, a double %f\\n\", 1234, c_double(3.14))\n" "An int 1234, a double 3.140000\n" @@ -723,11 +796,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:393 +#: library/ctypes.rst:411 msgid "Calling variadic functions" msgstr "" -#: library/ctypes.rst:395 +#: library/ctypes.rst:413 msgid "" "On a lot of platforms calling variadic functions through ctypes is exactly " "the same as calling functions with a fixed number of parameters. On some " @@ -736,27 +809,27 @@ msgid "" "functions." msgstr "" -#: library/ctypes.rst:400 +#: library/ctypes.rst:418 msgid "" "On those platforms it is required to specify the :attr:`~_CFuncPtr.argtypes` " "attribute for the regular, non-variadic, function arguments:" msgstr "" -#: library/ctypes.rst:403 +#: library/ctypes.rst:421 msgid "libc.printf.argtypes = [ctypes.c_char_p]" msgstr "" -#: library/ctypes.rst:407 +#: library/ctypes.rst:425 msgid "" "Because specifying the attribute does not inhibit portability it is advised " "to always specify :attr:`~_CFuncPtr.argtypes` for all variadic functions." msgstr "" -#: library/ctypes.rst:414 +#: library/ctypes.rst:432 msgid "Calling functions with your own custom data types" msgstr "" -#: library/ctypes.rst:416 +#: library/ctypes.rst:434 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 " @@ -765,7 +838,7 @@ msgid "" "or an object with an :attr:`!_as_parameter_` attribute::" msgstr "" -#: library/ctypes.rst:422 +#: library/ctypes.rst:440 msgid "" ">>> class Bottles:\n" "... def __init__(self, number):\n" @@ -778,24 +851,24 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:432 +#: library/ctypes.rst:450 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 "" -#: library/ctypes.rst:440 +#: library/ctypes.rst:458 msgid "Specifying the required argument types (function prototypes)" msgstr "" -#: library/ctypes.rst:442 +#: library/ctypes.rst:460 msgid "" "It is possible to specify the required argument types of functions exported " "from DLLs by setting the :attr:`~_CFuncPtr.argtypes` attribute." msgstr "" -#: library/ctypes.rst:445 +#: library/ctypes.rst:463 msgid "" ":attr:`~_CFuncPtr.argtypes` must be a sequence of C data types (the :func:`!" "printf` function is probably not a good example here, because it takes a " @@ -804,7 +877,7 @@ msgid "" "feature)::" msgstr "" -#: library/ctypes.rst:450 +#: library/ctypes.rst:468 msgid "" ">>> printf.argtypes = [c_char_p, c_char_p, c_int, c_double]\n" ">>> printf(b\"String '%s', Int %d, Double %f\\n\", b\"Hi\", 10, 2.2)\n" @@ -813,14 +886,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:456 +#: library/ctypes.rst:474 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 "" -#: library/ctypes.rst:459 +#: library/ctypes.rst:477 msgid "" ">>> printf(b\"%d %d %d\", 1, 2, 3)\n" "Traceback (most recent call last):\n" @@ -833,7 +906,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:468 +#: library/ctypes.rst:486 msgid "" "If you have defined your own classes which you pass to function calls, you " "have to implement a :meth:`~_CData.from_param` class method for them to be " @@ -847,55 +920,55 @@ msgid "" "_as_parameter_` attribute." msgstr "" -#: library/ctypes.rst:482 +#: library/ctypes.rst:500 msgid "Return types" msgstr "" -#: library/ctypes.rst:492 +#: library/ctypes.rst:510 msgid "" "By default functions are assumed to return the C :c:expr:`int` type. Other " "return types can be specified by setting the :attr:`~_CFuncPtr.restype` " "attribute of the function object." msgstr "" -#: library/ctypes.rst:496 +#: library/ctypes.rst:514 msgid "" "The C prototype of :c:func:`time` is ``time_t time(time_t *)``. Because :c:" "type:`time_t` might be of a different type than the default return type :c:" "expr:`int`, you should specify the :attr:`!restype` attribute::" msgstr "" -#: library/ctypes.rst:500 +#: library/ctypes.rst:518 msgid ">>> libc.time.restype = c_time_t" msgstr "" -#: library/ctypes.rst:502 +#: library/ctypes.rst:520 msgid "The argument types can be specified using :attr:`~_CFuncPtr.argtypes`::" msgstr "" -#: library/ctypes.rst:504 +#: library/ctypes.rst:522 msgid ">>> libc.time.argtypes = (POINTER(c_time_t),)" msgstr "" -#: library/ctypes.rst:506 +#: library/ctypes.rst:524 msgid "" "To call the function with a ``NULL`` pointer as first argument, use " "``None``::" msgstr "" -#: library/ctypes.rst:508 +#: library/ctypes.rst:526 msgid "" ">>> print(libc.time(None))\n" "1150640792" msgstr "" -#: library/ctypes.rst:511 +#: library/ctypes.rst:529 msgid "" "Here is a more advanced example, it uses the :func:`!strchr` function, which " "expects a string pointer and a char, and returns a pointer to a string::" msgstr "" -#: library/ctypes.rst:514 +#: library/ctypes.rst:532 msgid "" ">>> strchr = libc.strchr\n" ">>> strchr(b\"abcdef\", ord(\"d\"))\n" @@ -908,14 +981,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:524 +#: library/ctypes.rst:542 msgid "" "If you want to avoid the :func:`ord(\"x\") ` calls above, you can set " "the :attr:`~_CFuncPtr.argtypes` attribute, and the second argument will be " "converted from a single character Python bytes object into a C char:" msgstr "" -#: library/ctypes.rst:528 +#: library/ctypes.rst:546 msgid "" ">>> strchr.restype = c_char_p\n" ">>> strchr.argtypes = [c_char_p, c_char]\n" @@ -932,7 +1005,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:543 +#: library/ctypes.rst:561 msgid "" "You can also use a callable Python object (a function or a class for " "example) as the :attr:`~_CFuncPtr.restype` attribute, if the foreign " @@ -942,7 +1015,7 @@ msgid "" "values and automatically raise an exception::" msgstr "" -#: library/ctypes.rst:549 +#: library/ctypes.rst:567 msgid "" ">>> GetModuleHandle = windll.kernel32.GetModuleHandleA\n" ">>> def ValidHandle(value):\n" @@ -962,7 +1035,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:566 +#: library/ctypes.rst:584 msgid "" "``WinError`` is a function which will call Windows ``FormatMessage()`` api " "to get the string representation of an error code, and *returns* an " @@ -970,18 +1043,18 @@ msgid "" "used, it calls :func:`GetLastError` to retrieve it." msgstr "" -#: library/ctypes.rst:571 +#: library/ctypes.rst:589 msgid "" "Please note that a much more powerful error checking mechanism is available " "through the :attr:`~_CFuncPtr.errcheck` attribute; see the reference manual " "for details." msgstr "" -#: library/ctypes.rst:579 +#: library/ctypes.rst:597 msgid "Passing pointers (or: passing parameters by reference)" msgstr "" -#: library/ctypes.rst:581 +#: library/ctypes.rst:599 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 " @@ -989,7 +1062,7 @@ msgid "" "reference*." msgstr "" -#: library/ctypes.rst:585 +#: library/ctypes.rst:603 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:" @@ -998,7 +1071,7 @@ msgid "" "you don't need the pointer object in Python itself::" msgstr "" -#: library/ctypes.rst:591 +#: library/ctypes.rst:609 msgid "" ">>> i = c_int()\n" ">>> f = c_float()\n" @@ -1013,11 +1086,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:607 +#: library/ctypes.rst:625 msgid "Structures and unions" msgstr "" -#: library/ctypes.rst:609 +#: library/ctypes.rst:627 msgid "" "Structures and unions must derive from the :class:`Structure` and :class:" "`Union` base classes which are defined in the :mod:`ctypes` module. Each " @@ -1026,20 +1099,20 @@ msgid "" "*field type*." msgstr "" -#: library/ctypes.rst:614 +#: library/ctypes.rst:632 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 "" -#: library/ctypes.rst:617 +#: library/ctypes.rst:635 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 "" -#: library/ctypes.rst:620 +#: library/ctypes.rst:638 msgid "" ">>> from ctypes import *\n" ">>> class POINT(Structure):\n" @@ -1059,19 +1132,19 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:637 +#: library/ctypes.rst:655 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 "" -#: library/ctypes.rst:640 +#: library/ctypes.rst:658 msgid "" "Here is a RECT structure which contains two POINTs named *upperleft* and " "*lowerright*::" msgstr "" -#: library/ctypes.rst:643 +#: library/ctypes.rst:661 msgid "" ">>> class RECT(Structure):\n" "... _fields_ = [(\"upperleft\", POINT),\n" @@ -1085,26 +1158,26 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:654 +#: library/ctypes.rst:672 msgid "" "Nested structures can also be initialized in the constructor in several " "ways::" msgstr "" -#: library/ctypes.rst:656 +#: library/ctypes.rst:674 msgid "" ">>> r = RECT(POINT(1, 2), POINT(3, 4))\n" ">>> r = RECT((1, 2), (3, 4))" msgstr "" -#: library/ctypes.rst:659 +#: library/ctypes.rst:677 msgid "" "Field :term:`descriptor`\\s can be retrieved from the *class*, they are " "useful for debugging because they can provide useful information. See :class:" "`CField`::" msgstr "" -#: library/ctypes.rst:663 +#: library/ctypes.rst:681 msgid "" ">>> POINT.x\n" "\n" @@ -1113,7 +1186,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:674 +#: library/ctypes.rst:692 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 " @@ -1121,11 +1194,11 @@ msgid "" "structures with bit-fields should always be passed to functions by pointer." msgstr "" -#: library/ctypes.rst:680 +#: library/ctypes.rst:698 msgid "Structure/union layout, alignment and byte order" msgstr "" -#: library/ctypes.rst:682 +#: library/ctypes.rst:700 msgid "" "By default, Structure and Union fields are laid out in the same way the C " "compiler does it. It is possible to override this behavior entirely by " @@ -1133,22 +1206,15 @@ msgid "" "definition; see the attribute documentation for details." msgstr "" -#: library/ctypes.rst:687 -msgid "" -"It is possible to specify the maximum alignment for the fields by setting " -"the :attr:`~Structure._pack_` class attribute to a positive integer. This " -"matches what ``#pragma pack(n)`` does in MSVC." -msgstr "" - -#: library/ctypes.rst:691 +#: library/ctypes.rst:705 msgid "" -"It is also possible to set a minimum alignment for how the subclass itself " -"is packed in the same way ``#pragma align(n)`` works in MSVC. This can be " -"achieved by specifying a :attr:`~Structure._align_` class attribute in the " -"subclass definition." +"It is possible to specify the maximum alignment for the fields and/or for " +"the structure itself by setting the class attributes :attr:`~Structure." +"_pack_` and/or :attr:`~Structure._align_`, respectively. See the attribute " +"documentation for details." msgstr "" -#: library/ctypes.rst:696 +#: library/ctypes.rst:710 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:" @@ -1157,18 +1223,18 @@ msgid "" "classes cannot contain pointer fields." msgstr "" -#: library/ctypes.rst:706 +#: library/ctypes.rst:720 msgid "Bit fields in structures and unions" msgstr "" -#: library/ctypes.rst:708 +#: library/ctypes.rst:722 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:`~Structure._fields_` tuples::" msgstr "" -#: library/ctypes.rst:712 +#: library/ctypes.rst:726 msgid "" ">>> class Int(Structure):\n" "... _fields_ = [(\"first_16\", c_int, 16),\n" @@ -1180,7 +1246,7 @@ msgid "" "" msgstr "" -#: library/ctypes.rst:721 +#: library/ctypes.rst:735 msgid "" "It is important to note that bit field allocation and layout in memory are " "not defined as a C standard; their implementation is compiler-specific. By " @@ -1189,33 +1255,33 @@ msgid "" "details on the default behavior and how to change it." msgstr "" -#: library/ctypes.rst:732 +#: library/ctypes.rst:746 msgid "Arrays" msgstr "" -#: library/ctypes.rst:734 +#: library/ctypes.rst:748 msgid "" "Arrays are sequences, containing a fixed number of instances of the same " "type." msgstr "" -#: library/ctypes.rst:736 +#: library/ctypes.rst:750 msgid "" "The recommended way to create array types is by multiplying a data type with " "a positive integer::" msgstr "" -#: library/ctypes.rst:739 +#: library/ctypes.rst:753 msgid "TenPointsArrayType = POINT * 10" msgstr "" -#: library/ctypes.rst:741 +#: library/ctypes.rst:755 msgid "" "Here is an example of a somewhat artificial data type, a structure " "containing 4 POINTs among other stuff::" msgstr "" -#: library/ctypes.rst:744 +#: library/ctypes.rst:758 msgid "" ">>> from ctypes import *\n" ">>> class POINT(Structure):\n" @@ -1231,28 +1297,28 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:757 +#: library/ctypes.rst:771 msgid "Instances are created in the usual way, by calling the class::" msgstr "" -#: library/ctypes.rst:759 +#: library/ctypes.rst:773 msgid "" "arr = TenPointsArrayType()\n" "for pt in arr:\n" " print(pt.x, pt.y)" msgstr "" -#: library/ctypes.rst:763 +#: library/ctypes.rst:777 msgid "" "The above code print a series of ``0 0`` lines, because the array contents " "is initialized to zeros." msgstr "" -#: library/ctypes.rst:766 +#: library/ctypes.rst:780 msgid "Initializers of the correct type can also be specified::" msgstr "" -#: library/ctypes.rst:768 +#: library/ctypes.rst:782 msgid "" ">>> from ctypes import *\n" ">>> TenIntegers = c_int * 10\n" @@ -1265,17 +1331,17 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:782 +#: library/ctypes.rst:796 msgid "Pointers" msgstr "" -#: library/ctypes.rst:784 +#: library/ctypes.rst:798 msgid "" "Pointer instances are created by calling the :func:`pointer` function on a :" "mod:`ctypes` type::" msgstr "" -#: library/ctypes.rst:787 +#: library/ctypes.rst:801 msgid "" ">>> from ctypes import *\n" ">>> i = c_int(42)\n" @@ -1283,26 +1349,26 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:792 +#: library/ctypes.rst:806 msgid "" "Pointer instances have a :attr:`~_Pointer.contents` attribute which returns " "the object to which the pointer points, the ``i`` object above::" msgstr "" -#: library/ctypes.rst:795 +#: library/ctypes.rst:809 msgid "" ">>> pi.contents\n" "c_long(42)\n" ">>>" msgstr "" -#: library/ctypes.rst:799 +#: library/ctypes.rst:813 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 "" -#: library/ctypes.rst:802 +#: library/ctypes.rst:816 msgid "" ">>> pi.contents is i\n" "False\n" @@ -1311,14 +1377,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:808 +#: library/ctypes.rst:822 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 "" -#: library/ctypes.rst:811 +#: library/ctypes.rst:825 msgid "" ">>> i = c_int(99)\n" ">>> pi.contents = i\n" @@ -1327,22 +1393,22 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:820 +#: library/ctypes.rst:834 msgid "Pointer instances can also be indexed with integers::" msgstr "" -#: library/ctypes.rst:822 +#: library/ctypes.rst:836 msgid "" ">>> pi[0]\n" "99\n" ">>>" msgstr "" -#: library/ctypes.rst:826 +#: library/ctypes.rst:840 msgid "Assigning to an integer index changes the pointed to value::" msgstr "" -#: library/ctypes.rst:828 +#: library/ctypes.rst:842 msgid "" ">>> print(i)\n" "c_long(99)\n" @@ -1352,7 +1418,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:835 +#: library/ctypes.rst:849 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 " @@ -1361,7 +1427,7 @@ msgid "" "instead of a single item." msgstr "" -#: library/ctypes.rst:841 +#: library/ctypes.rst:855 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 " @@ -1369,7 +1435,7 @@ msgid "" "returns a new type::" msgstr "" -#: library/ctypes.rst:846 +#: library/ctypes.rst:860 msgid "" ">>> PI = POINTER(c_int)\n" ">>> PI\n" @@ -1383,13 +1449,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:857 +#: library/ctypes.rst:871 msgid "" "Calling the pointer type without an argument creates a ``NULL`` pointer. " "``NULL`` pointers have a ``False`` boolean value::" msgstr "" -#: library/ctypes.rst:860 +#: library/ctypes.rst:874 msgid "" ">>> null_ptr = POINTER(c_int)()\n" ">>> print(bool(null_ptr))\n" @@ -1397,13 +1463,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:865 +#: library/ctypes.rst:879 msgid "" ":mod:`ctypes` checks for ``NULL`` when dereferencing pointers (but " "dereferencing invalid non-\\ ``NULL`` pointers would crash Python)::" msgstr "" -#: library/ctypes.rst:868 +#: library/ctypes.rst:882 msgid "" ">>> null_ptr[0]\n" "Traceback (most recent call last):\n" @@ -1418,25 +1484,25 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:883 +#: library/ctypes.rst:897 msgid "Thread safety without the GIL" msgstr "" -#: library/ctypes.rst:885 +#: library/ctypes.rst:899 msgid "" "From Python 3.13 onward, the :term:`GIL` can be disabled on :term:`free " "threaded ` builds. In ctypes, reads and writes to a single " "object concurrently is safe, but not across multiple objects:" msgstr "" -#: library/ctypes.rst:888 +#: library/ctypes.rst:902 msgid "" ">>> number = c_int(42)\n" ">>> pointer_a = pointer(number)\n" ">>> pointer_b = pointer(number)" msgstr "" -#: library/ctypes.rst:894 +#: library/ctypes.rst:908 msgid "" "In the above, it's only safe for one object to read and write to the address " "at once if the GIL is disabled. So, ``pointer_a`` can be shared and written " @@ -1445,7 +1511,7 @@ msgid "" "Lock` to synchronize access to memory:" msgstr "" -#: library/ctypes.rst:899 +#: library/ctypes.rst:913 msgid "" ">>> import threading\n" ">>> lock = threading.Lock()\n" @@ -1457,11 +1523,11 @@ msgid "" "... pointer_b.contents = 42" msgstr "" -#: library/ctypes.rst:914 +#: library/ctypes.rst:928 msgid "Type conversions" msgstr "" -#: library/ctypes.rst:916 +#: library/ctypes.rst:930 msgid "" "Usually, ctypes does strict type checking. This means, if you have " "``POINTER(c_int)`` in the :attr:`~_CFuncPtr.argtypes` list of a function or " @@ -1472,7 +1538,7 @@ msgid "" "ctypes accepts an array of c_int::" msgstr "" -#: library/ctypes.rst:923 +#: library/ctypes.rst:937 msgid "" ">>> class Bar(Structure):\n" "... _fields_ = [(\"count\", c_int), (\"values\", POINTER(c_int))]\n" @@ -1489,7 +1555,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:937 +#: library/ctypes.rst:951 msgid "" "In addition, if a function argument is explicitly declared to be a pointer " "type (such as ``POINTER(c_int)``) in :attr:`~_CFuncPtr.argtypes`, an object " @@ -1498,17 +1564,17 @@ msgid "" "automatically." msgstr "" -#: library/ctypes.rst:942 +#: library/ctypes.rst:956 msgid "To set a POINTER type field to ``NULL``, you can assign ``None``::" msgstr "" -#: library/ctypes.rst:944 +#: library/ctypes.rst:958 msgid "" ">>> bar.values = None\n" ">>>" msgstr "" -#: library/ctypes.rst:949 +#: library/ctypes.rst:963 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 " @@ -1517,7 +1583,7 @@ msgid "" "``values`` field, but not instances of other types::" msgstr "" -#: library/ctypes.rst:955 +#: library/ctypes.rst:969 msgid "" ">>> bar.values = (c_byte * 4)()\n" "Traceback (most recent call last):\n" @@ -1527,11 +1593,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:961 +#: library/ctypes.rst:975 msgid "For these cases, the :func:`cast` function is handy." msgstr "" -#: library/ctypes.rst:963 +#: library/ctypes.rst:977 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, " @@ -1540,7 +1606,7 @@ msgid "" "references the same memory block as the first argument::" msgstr "" -#: library/ctypes.rst:969 +#: library/ctypes.rst:983 msgid "" ">>> a = (c_byte * 4)()\n" ">>> cast(a, POINTER(c_int))\n" @@ -1548,13 +1614,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:974 +#: library/ctypes.rst:988 msgid "" "So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` " "the structure::" msgstr "" -#: library/ctypes.rst:977 +#: library/ctypes.rst:991 msgid "" ">>> bar = Bar()\n" ">>> bar.values = cast((c_byte * 4)(), POINTER(c_int))\n" @@ -1563,18 +1629,18 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:987 +#: library/ctypes.rst:1001 msgid "Incomplete Types" msgstr "" -#: library/ctypes.rst:989 +#: library/ctypes.rst:1003 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 "" -#: library/ctypes.rst:993 +#: library/ctypes.rst:1007 msgid "" "struct cell; /* forward declaration */\n" "\n" @@ -1584,13 +1650,13 @@ msgid "" "};" msgstr "" -#: library/ctypes.rst:1000 +#: library/ctypes.rst:1014 msgid "" "The straightforward translation into ctypes code would be this, but it does " "not work::" msgstr "" -#: library/ctypes.rst:1003 +#: library/ctypes.rst:1017 msgid "" ">>> class cell(Structure):\n" "... _fields_ = [(\"name\", c_char_p),\n" @@ -1603,14 +1669,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1013 +#: library/ctypes.rst:1027 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:" "`~Structure._fields_` attribute later, after the class statement::" msgstr "" -#: library/ctypes.rst:1017 +#: library/ctypes.rst:1031 msgid "" ">>> from ctypes import *\n" ">>> class cell(Structure):\n" @@ -1621,13 +1687,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1025 +#: library/ctypes.rst:1039 msgid "" "Let's 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 "" -#: library/ctypes.rst:1028 +#: library/ctypes.rst:1042 msgid "" ">>> c1 = cell()\n" ">>> c1.name = b\"foo\"\n" @@ -1644,24 +1710,24 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1046 +#: library/ctypes.rst:1060 msgid "Callback functions" msgstr "" -#: library/ctypes.rst:1048 +#: library/ctypes.rst:1062 msgid "" ":mod:`ctypes` allows creating C callable function pointers from Python " "callables. These are sometimes called *callback functions*." msgstr "" -#: library/ctypes.rst:1051 +#: library/ctypes.rst:1065 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 "" -#: library/ctypes.rst:1055 +#: library/ctypes.rst:1069 msgid "" "The :func:`CFUNCTYPE` factory function creates types for callback functions " "using the ``cdecl`` calling convention. On Windows, the :func:`WINFUNCTYPE` " @@ -1669,21 +1735,21 @@ msgid "" "calling convention." msgstr "" -#: library/ctypes.rst:1060 +#: library/ctypes.rst:1074 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 "" -#: library/ctypes.rst:1064 +#: library/ctypes.rst:1078 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 "" -#: library/ctypes.rst:1068 +#: library/ctypes.rst:1082 msgid "" ">>> IntArray5 = c_int * 5\n" ">>> ia = IntArray5(5, 1, 7, 33, 99)\n" @@ -1692,7 +1758,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1074 +#: library/ctypes.rst:1088 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 " @@ -1702,25 +1768,25 @@ msgid "" "otherwise." msgstr "" -#: library/ctypes.rst:1080 +#: library/ctypes.rst:1094 msgid "" "So our callback function receives pointers to integers, and must return an " "integer. First we create the ``type`` for the callback function::" msgstr "" -#: library/ctypes.rst:1083 +#: library/ctypes.rst:1097 msgid "" ">>> CMPFUNC = CFUNCTYPE(c_int, POINTER(c_int), POINTER(c_int))\n" ">>>" msgstr "" -#: library/ctypes.rst:1086 +#: library/ctypes.rst:1100 msgid "" "To get started, here is a simple callback that shows the values it gets " "passed::" msgstr "" -#: library/ctypes.rst:1089 +#: library/ctypes.rst:1103 msgid "" ">>> def py_cmp_func(a, b):\n" "... print(\"py_cmp_func\", a[0], b[0])\n" @@ -1730,11 +1796,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1096 +#: library/ctypes.rst:1110 msgid "The result::" msgstr "" -#: library/ctypes.rst:1098 +#: library/ctypes.rst:1112 msgid "" ">>> qsort(ia, len(ia), sizeof(c_int), cmp_func)\n" "py_cmp_func 5 1\n" @@ -1745,11 +1811,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1106 +#: library/ctypes.rst:1120 msgid "Now we can actually compare the two items and return a useful result::" msgstr "" -#: library/ctypes.rst:1108 +#: library/ctypes.rst:1122 msgid "" ">>> def py_cmp_func(a, b):\n" "... print(\"py_cmp_func\", a[0], b[0])\n" @@ -1765,11 +1831,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1121 +#: library/ctypes.rst:1135 msgid "As we can easily check, our array is sorted now::" msgstr "" -#: library/ctypes.rst:1123 +#: library/ctypes.rst:1137 msgid "" ">>> for i in ia: print(i, end=\" \")\n" "...\n" @@ -1777,13 +1843,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1128 +#: library/ctypes.rst:1142 msgid "" "The function factories can be used as decorator factories, so we may as well " "write::" msgstr "" -#: library/ctypes.rst:1131 +#: library/ctypes.rst:1145 msgid "" ">>> @CFUNCTYPE(c_int, POINTER(c_int), POINTER(c_int))\n" "... def py_cmp_func(a, b):\n" @@ -1799,14 +1865,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1146 +#: library/ctypes.rst:1160 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 "" -#: library/ctypes.rst:1150 +#: library/ctypes.rst:1164 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 " @@ -1816,42 +1882,42 @@ msgid "" "even when those calls are made from the same C thread." msgstr "" -#: library/ctypes.rst:1160 +#: library/ctypes.rst:1174 msgid "Accessing values exported from dlls" msgstr "" -#: library/ctypes.rst:1162 +#: library/ctypes.rst:1176 msgid "" "Some shared libraries not only export functions, they also export variables. " "An example in the Python library itself is the :c:data:`Py_Version`, Python " "runtime version number encoded in a single constant integer." msgstr "" -#: library/ctypes.rst:1166 +#: library/ctypes.rst:1180 msgid "" ":mod:`ctypes` can access values like this with the :meth:`~_CData.in_dll` " "class methods of the type. *pythonapi* is a predefined symbol giving access " "to the Python C api::" msgstr "" -#: library/ctypes.rst:1170 +#: library/ctypes.rst:1184 msgid "" ">>> version = ctypes.c_int.in_dll(ctypes.pythonapi, \"Py_Version\")\n" ">>> print(hex(version.value))\n" "0x30c00a0" msgstr "" -#: library/ctypes.rst:1174 +#: library/ctypes.rst:1188 msgid "" "An extended example which also demonstrates the use of pointers accesses " "the :c:data:`PyImport_FrozenModules` pointer exported by Python." msgstr "" -#: library/ctypes.rst:1177 +#: library/ctypes.rst:1191 msgid "Quoting the docs for that value:" msgstr "" -#: library/ctypes.rst:1179 +#: library/ctypes.rst:1193 msgid "" "This pointer is initialized to point to an array of :c:struct:`_frozen` " "records, terminated by one whose members are all ``NULL`` or zero. When a " @@ -1860,13 +1926,13 @@ msgid "" "frozen modules." msgstr "" -#: library/ctypes.rst:1184 +#: library/ctypes.rst:1198 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 "" -#: library/ctypes.rst:1187 +#: library/ctypes.rst:1201 msgid "" ">>> from ctypes import *\n" ">>>\n" @@ -1880,20 +1946,20 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1198 +#: library/ctypes.rst:1212 msgid "" "We have defined the :c:struct:`_frozen` data type, so we can get the pointer " "to the table::" msgstr "" -#: library/ctypes.rst:1201 +#: library/ctypes.rst:1215 msgid "" ">>> FrozenTable = POINTER(struct_frozen)\n" ">>> table = FrozenTable.in_dll(pythonapi, \"_PyImport_FrozenBootstrap\")\n" ">>>" msgstr "" -#: library/ctypes.rst:1205 +#: library/ctypes.rst:1219 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 " @@ -1902,7 +1968,7 @@ msgid "" "the loop when we hit the ``NULL`` entry::" msgstr "" -#: library/ctypes.rst:1211 +#: library/ctypes.rst:1225 msgid "" ">>> for item in table:\n" "... if item.name is None:\n" @@ -1915,28 +1981,28 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1221 +#: library/ctypes.rst:1235 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 "" -#: library/ctypes.rst:1229 +#: library/ctypes.rst:1243 msgid "Surprises" msgstr "" -#: library/ctypes.rst:1231 +#: library/ctypes.rst:1245 msgid "" "There are some edges in :mod:`ctypes` where you might expect something other " "than what actually happens." msgstr "" -#: library/ctypes.rst:1234 +#: library/ctypes.rst:1248 msgid "Consider the following example::" msgstr "" -#: library/ctypes.rst:1236 +#: library/ctypes.rst:1250 msgid "" ">>> from ctypes import *\n" ">>> class POINT(Structure):\n" @@ -1957,13 +2023,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1254 +#: library/ctypes.rst:1268 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 "" -#: library/ctypes.rst:1257 +#: library/ctypes.rst:1271 msgid "" ">>> temp0, temp1 = rc.b, rc.a\n" ">>> rc.a = temp0\n" @@ -1971,7 +2037,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1262 +#: library/ctypes.rst:1276 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 " @@ -1980,20 +2046,20 @@ msgid "" "have the expected effect." msgstr "" -#: library/ctypes.rst:1268 +#: library/ctypes.rst:1282 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 "" -#: library/ctypes.rst:1272 +#: library/ctypes.rst:1286 msgid "" "Another example that may behave differently from what one would expect is " "this::" msgstr "" -#: library/ctypes.rst:1274 +#: library/ctypes.rst:1288 msgid "" ">>> s = c_char_p()\n" ">>> s.value = b\"abc def ghi\"\n" @@ -2004,13 +2070,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1284 +#: library/ctypes.rst:1298 msgid "" "Objects instantiated from :class:`c_char_p` can only have their value set to " "bytes or integers." msgstr "" -#: library/ctypes.rst:1287 +#: library/ctypes.rst:1301 msgid "" "Why is it printing ``False``? ctypes instances are objects containing a " "memory block plus some :term:`descriptor`\\s accessing the contents of the " @@ -2019,16 +2085,16 @@ msgid "" "the contents again constructs a new Python object each time!" msgstr "" -#: library/ctypes.rst:1297 +#: library/ctypes.rst:1311 msgid "Variable-sized data types" msgstr "" -#: library/ctypes.rst:1299 +#: library/ctypes.rst:1313 msgid "" ":mod:`ctypes` provides some support for variable-sized arrays and structures." msgstr "" -#: library/ctypes.rst:1301 +#: library/ctypes.rst:1315 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, " @@ -2037,7 +2103,7 @@ msgid "" "objects type, a :exc:`ValueError` is raised if this is tried::" msgstr "" -#: library/ctypes.rst:1307 +#: library/ctypes.rst:1321 msgid "" ">>> short_array = (c_short * 4)()\n" ">>> print(sizeof(short_array))\n" @@ -2054,14 +2120,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1321 +#: library/ctypes.rst:1335 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 "" -#: library/ctypes.rst:1325 +#: library/ctypes.rst:1339 msgid "" ">>> short_array[:]\n" "[0, 0, 0, 0]\n" @@ -2072,28 +2138,28 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1333 +#: library/ctypes.rst:1347 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 "" -#: library/ctypes.rst:1341 +#: library/ctypes.rst:1355 msgid "ctypes reference" msgstr "" -#: library/ctypes.rst:1347 +#: library/ctypes.rst:1361 msgid "Finding shared libraries" msgstr "" -#: library/ctypes.rst:1349 +#: library/ctypes.rst:1363 msgid "" "When programming in a compiled language, shared libraries are accessed when " "compiling/linking a program, and when the program is run." msgstr "" -#: library/ctypes.rst:1352 +#: library/ctypes.rst:1366 msgid "" "The purpose of the :func:`~ctypes.util.find_library` function is to locate a " "library in a way similar to what the compiler or runtime loader does (on " @@ -2102,13 +2168,13 @@ msgid "" "and call the runtime loader directly." msgstr "" -#: library/ctypes.rst:1358 +#: library/ctypes.rst:1372 msgid "" "The :mod:`!ctypes.util` module provides a function which can help to " "determine the library to load." msgstr "" -#: library/ctypes.rst:1366 +#: library/ctypes.rst:1380 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 " @@ -2116,29 +2182,29 @@ msgid "" "If no library can be found, returns ``None``." msgstr "" -#: library/ctypes.rst:2119 +#: library/ctypes.rst:2133 msgid "The exact functionality is system dependent." msgstr "" -#: library/ctypes.rst:1373 +#: library/ctypes.rst:1387 msgid "" "On Linux, :func:`~ctypes.util.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 "" -#: library/ctypes.rst:1377 +#: library/ctypes.rst:1391 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 "" -#: library/ctypes.rst:1381 +#: library/ctypes.rst:1395 msgid "Here are some examples::" msgstr "" -#: library/ctypes.rst:1383 +#: library/ctypes.rst:1397 msgid "" ">>> from ctypes.util import find_library\n" ">>> find_library(\"m\")\n" @@ -2150,14 +2216,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1392 +#: library/ctypes.rst:1406 msgid "" "On macOS and Android, :func:`~ctypes.util.find_library` uses the system's " "standard naming schemes and paths to locate the library, and returns a full " "pathname if successful::" msgstr "" -#: library/ctypes.rst:1396 +#: library/ctypes.rst:1410 msgid "" ">>> from ctypes.util import find_library\n" ">>> find_library(\"c\")\n" @@ -2171,7 +2237,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1407 +#: library/ctypes.rst:1421 msgid "" "On Windows, :func:`~ctypes.util.find_library` searches along the system " "search path, and returns the full pathname, but since there is no predefined " @@ -2179,7 +2245,7 @@ msgid "" "``None``." msgstr "" -#: library/ctypes.rst:1411 +#: library/ctypes.rst:1425 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 " @@ -2187,18 +2253,18 @@ msgid "" "to locate the library at runtime." msgstr "" -#: library/ctypes.rst:1419 +#: library/ctypes.rst:1433 msgid "Listing loaded shared libraries" msgstr "" -#: library/ctypes.rst:1421 +#: library/ctypes.rst:1435 msgid "" "When writing code that relies on code loaded from shared libraries, it can " "be useful to know which shared libraries have already been loaded into the " "current process." msgstr "" -#: library/ctypes.rst:1425 +#: library/ctypes.rst:1439 msgid "" "The :mod:`!ctypes.util` module provides the :func:`~ctypes.util.dllist` " "function, which calls the different APIs provided by the various platforms " @@ -2206,7 +2272,7 @@ msgid "" "current process." msgstr "" -#: library/ctypes.rst:1429 +#: library/ctypes.rst:1443 msgid "" "The exact output of this function will be system dependent. On most " "platforms, the first entry of this list represents the current process " @@ -2214,7 +2280,7 @@ msgid "" "return may look like::" msgstr "" -#: library/ctypes.rst:1434 +#: library/ctypes.rst:1448 msgid "" ">>> from ctypes.util import dllist\n" ">>> dllist()\n" @@ -2222,24 +2288,24 @@ msgid "" "linux-gnu/libc.so.6', ... ]" msgstr "" -#: library/ctypes.rst:1441 +#: library/ctypes.rst:1455 msgid "Loading shared libraries" msgstr "" -#: library/ctypes.rst:1443 +#: library/ctypes.rst:1457 msgid "" "There are several ways to load shared libraries into the Python process. " "One way is to instantiate one of the following classes:" msgstr "" -#: library/ctypes.rst:1449 +#: library/ctypes.rst:1463 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:expr:`int`." msgstr "" -#: library/ctypes.rst:1453 +#: library/ctypes.rst:1467 msgid "" "On Windows creating a :class:`CDLL` instance may fail even if the DLL name " "exists. When a dependent DLL of the loaded DLL is not found, a :exc:" @@ -2251,17 +2317,17 @@ msgid "" "determine which one is not found using Windows debugging and tracing tools." msgstr "" -#: library/ctypes.rst:1490 library/ctypes.rst:1521 +#: library/ctypes.rst:1504 library/ctypes.rst:1535 msgid "The *name* parameter can now be a :term:`path-like object`." msgstr "" -#: library/ctypes.rst:1469 +#: library/ctypes.rst:1483 msgid "" "`Microsoft DUMPBIN tool `_ -- A tool to find DLL dependents." msgstr "" -#: library/ctypes.rst:1475 +#: library/ctypes.rst:1489 msgid "" "Instances of this class represent loaded shared libraries, functions in " "these libraries use the ``stdcall`` calling convention, and are assumed to " @@ -2271,32 +2337,32 @@ msgid "" "a failure, an :class:`OSError` is automatically raised." msgstr "" -#: library/ctypes.rst:1499 library/ctypes.rst:1651 library/ctypes.rst:1875 -#: library/ctypes.rst:2099 library/ctypes.rst:2133 library/ctypes.rst:2156 -#: library/ctypes.rst:2180 library/ctypes.rst:2274 library/ctypes.rst:3072 +#: library/ctypes.rst:1513 library/ctypes.rst:1665 library/ctypes.rst:1889 +#: library/ctypes.rst:2113 library/ctypes.rst:2147 library/ctypes.rst:2170 +#: library/ctypes.rst:2194 library/ctypes.rst:2288 library/ctypes.rst:3106 msgid "Availability" msgstr "" -#: library/ctypes.rst:1484 +#: library/ctypes.rst:1498 msgid "" ":exc:`WindowsError` used to be raised, which is now an alias of :exc:" "`OSError`." msgstr "" -#: library/ctypes.rst:1495 +#: library/ctypes.rst:1509 msgid "" "Instances of this class represent loaded shared libraries, functions in " "these libraries use the ``stdcall`` calling convention, and are assumed to " "return :c:expr:`int` by default." msgstr "" -#: library/ctypes.rst:1506 +#: library/ctypes.rst:1520 msgid "" "The Python :term:`global interpreter lock` is released before calling any " "function exported by these libraries, and reacquired afterwards." msgstr "" -#: library/ctypes.rst:1512 +#: library/ctypes.rst:1526 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 " @@ -2304,11 +2370,11 @@ msgid "" "set, a Python exception is raised." msgstr "" -#: library/ctypes.rst:1517 +#: library/ctypes.rst:1531 msgid "Thus, this is only useful to call Python C api functions directly." msgstr "" -#: library/ctypes.rst:1523 +#: library/ctypes.rst:1537 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 " @@ -2318,7 +2384,7 @@ msgid "" "the process, and to get a handle to it." msgstr "" -#: library/ctypes.rst:1530 +#: library/ctypes.rst:1544 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 " @@ -2326,7 +2392,7 @@ msgid "" "configurable." msgstr "" -#: library/ctypes.rst:1535 +#: library/ctypes.rst:1549 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:" @@ -2336,14 +2402,14 @@ msgid "" "private copy, the same happens immediately after the function call." msgstr "" -#: library/ctypes.rst:1542 +#: library/ctypes.rst:1556 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 "" -#: library/ctypes.rst:1546 +#: library/ctypes.rst:1560 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 :" @@ -2352,7 +2418,7 @@ msgid "" "private copy of the windows error code." msgstr "" -#: library/ctypes.rst:1552 +#: library/ctypes.rst:1566 msgid "" "The *winmode* parameter is used on Windows to specify how the library is " "loaded (since *mode* is ignored). It takes any value that is valid for the " @@ -2362,29 +2428,29 @@ msgid "" "ensure the correct library and dependencies are loaded." msgstr "" -#: library/ctypes.rst:1559 +#: library/ctypes.rst:1573 msgid "Added *winmode* parameter." msgstr "" -#: library/ctypes.rst:1566 +#: library/ctypes.rst:1580 msgid "" "Flag to use as *mode* parameter. On platforms where this flag is not " "available, it is defined as the integer zero." msgstr "" -#: library/ctypes.rst:1573 +#: library/ctypes.rst:1587 msgid "" "Flag to use as *mode* parameter. On platforms where this is not available, " "it is the same as *RTLD_GLOBAL*." msgstr "" -#: library/ctypes.rst:1580 +#: library/ctypes.rst:1594 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 "" -#: library/ctypes.rst:1583 +#: library/ctypes.rst:1597 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 " @@ -2393,7 +2459,7 @@ msgid "" "other hand, accessing it through an index returns a new object each time::" msgstr "" -#: library/ctypes.rst:1589 +#: library/ctypes.rst:1603 msgid "" ">>> from ctypes import CDLL\n" ">>> libc = CDLL(\"libc.so.6\") # On Linux\n" @@ -2403,21 +2469,21 @@ msgid "" "False" msgstr "" -#: library/ctypes.rst:1596 +#: library/ctypes.rst:1610 msgid "" "The following public attributes are available, their name starts with an " "underscore to not clash with exported function names:" msgstr "" -#: library/ctypes.rst:1602 +#: library/ctypes.rst:1616 msgid "The system handle used to access the library." msgstr "" -#: library/ctypes.rst:1607 +#: library/ctypes.rst:1621 msgid "The name of the library passed in the constructor." msgstr "" -#: library/ctypes.rst:1609 +#: library/ctypes.rst:1623 msgid "" "Shared libraries can also be loaded by using one of the prefabricated " "objects, which are instances of the :class:`LibraryLoader` class, either by " @@ -2425,13 +2491,13 @@ msgid "" "library as attribute of the loader instance." msgstr "" -#: library/ctypes.rst:1617 +#: library/ctypes.rst:1631 msgid "" "Class which loads shared libraries. *dlltype* should be one of the :class:" "`CDLL`, :class:`PyDLL`, :class:`WinDLL`, or :class:`OleDLL` types." msgstr "" -#: library/ctypes.rst:1620 +#: library/ctypes.rst:1634 msgid "" ":meth:`!__getattr__` has special behavior: It allows loading a shared " "library by accessing it as attribute of a library loader instance. The " @@ -2439,39 +2505,39 @@ msgid "" "each time." msgstr "" -#: library/ctypes.rst:1626 +#: library/ctypes.rst:1640 msgid "" "Load a shared library into the process and return it. This method always " "returns a new instance of the library." msgstr "" -#: library/ctypes.rst:1630 +#: library/ctypes.rst:1644 msgid "These prefabricated library loaders are available:" msgstr "" -#: library/ctypes.rst:1635 +#: library/ctypes.rst:1649 msgid "Creates :class:`CDLL` instances." msgstr "" -#: library/ctypes.rst:1641 +#: library/ctypes.rst:1655 msgid "Creates :class:`WinDLL` instances." msgstr "" -#: library/ctypes.rst:1649 +#: library/ctypes.rst:1663 msgid "Creates :class:`OleDLL` instances." msgstr "" -#: library/ctypes.rst:1657 +#: library/ctypes.rst:1671 msgid "Creates :class:`PyDLL` instances." msgstr "" -#: library/ctypes.rst:1660 +#: library/ctypes.rst:1674 msgid "" "For accessing the C Python api directly, a ready-to-use Python shared " "library object is available:" msgstr "" -#: library/ctypes.rst:1666 +#: library/ctypes.rst:1680 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:expr:" @@ -2479,32 +2545,32 @@ msgid "" "correct :attr:`!restype` attribute to use these functions." msgstr "" -#: library/ctypes.rst:1673 +#: library/ctypes.rst:1687 msgid "" "Loading a library through any of these objects raises an :ref:`auditing " "event ` ``ctypes.dlopen`` with string argument ``name``, the name " "used to load the library." msgstr "" -#: library/ctypes.rst:1679 +#: library/ctypes.rst:1693 msgid "" "Accessing a function on a loaded library raises an auditing event ``ctypes." "dlsym`` with arguments ``library`` (the library object) and ``name`` (the " "symbol's name as a string or integer)." msgstr "" -#: library/ctypes.rst:1685 +#: library/ctypes.rst:1699 msgid "" "In cases when only the library handle is available rather than the object, " "accessing a function raises an auditing event ``ctypes.dlsym/handle`` with " "arguments ``handle`` (the raw library handle) and ``name``." msgstr "" -#: library/ctypes.rst:1692 +#: library/ctypes.rst:1706 msgid "Foreign functions" msgstr "" -#: library/ctypes.rst:1694 +#: library/ctypes.rst:1708 msgid "" "As explained in the previous section, foreign functions can be accessed as " "attributes of loaded shared libraries. The function objects created in this " @@ -2513,13 +2579,13 @@ msgid "" "library loader." msgstr "" -#: library/ctypes.rst:1699 +#: library/ctypes.rst:1713 msgid "" "They are instances of a private local class :class:`!_FuncPtr` (not exposed " "in :mod:`!ctypes`) which inherits from the private :class:`_CFuncPtr` class:" msgstr "" -#: library/ctypes.rst:1702 +#: library/ctypes.rst:1716 msgid "" ">>> import ctypes\n" ">>> lib = ctypes.CDLL(None)\n" @@ -2529,29 +2595,29 @@ msgid "" "False" msgstr "" -#: library/ctypes.rst:1713 +#: library/ctypes.rst:1727 msgid "Base class for C callable foreign functions." msgstr "" -#: library/ctypes.rst:1715 +#: library/ctypes.rst:1729 msgid "" "Instances of foreign functions are also C compatible data types; they " "represent C function pointers." msgstr "" -#: library/ctypes.rst:1718 +#: library/ctypes.rst:1732 msgid "" "This behavior can be customized by assigning to special attributes of the " "foreign function object." msgstr "" -#: library/ctypes.rst:1723 +#: library/ctypes.rst:1737 msgid "" "Assign a ctypes type to specify the result type of the foreign function. Use " "``None`` for :c:expr:`void`, a function not returning anything." msgstr "" -#: library/ctypes.rst:1726 +#: library/ctypes.rst:1740 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:expr:`int`, and the " @@ -2561,7 +2627,7 @@ msgid "" "callable to the :attr:`errcheck` attribute." msgstr "" -#: library/ctypes.rst:1735 +#: library/ctypes.rst:1749 msgid "" "Assign a tuple of ctypes types to specify the argument types that the " "function accepts. Functions using the ``stdcall`` calling convention can " @@ -2570,7 +2636,7 @@ msgid "" "unspecified arguments as well." msgstr "" -#: library/ctypes.rst:1741 +#: library/ctypes.rst:1755 msgid "" "When a foreign function is called, each actual argument is passed to the :" "meth:`~_CData.from_param` class method of the items in the :attr:`argtypes` " @@ -2580,7 +2646,7 @@ msgid "" "object using ctypes conversion rules." msgstr "" -#: library/ctypes.rst:1748 +#: library/ctypes.rst:1762 msgid "" "New: It is now possible to put items in argtypes which are not ctypes types, " "but each item must have a :meth:`~_CData.from_param` method which returns a " @@ -2588,38 +2654,38 @@ msgid "" "defining adapters that can adapt custom objects as function parameters." msgstr "" -#: library/ctypes.rst:1755 +#: library/ctypes.rst:1769 msgid "" "Assign a Python function or another callable to this attribute. The callable " "will be called with three or more arguments:" msgstr "" -#: library/ctypes.rst:1762 +#: library/ctypes.rst:1776 msgid "" "*result* is what the foreign function returns, as specified by the :attr:`!" "restype` attribute." msgstr "" -#: library/ctypes.rst:1765 +#: library/ctypes.rst:1779 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 "" -#: library/ctypes.rst:1769 +#: library/ctypes.rst:1783 msgid "" "*arguments* is a tuple containing the parameters originally passed to the " "function call, this allows specializing the behavior on the arguments used." msgstr "" -#: library/ctypes.rst:1773 +#: library/ctypes.rst:1787 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 "" -#: library/ctypes.rst:1780 +#: library/ctypes.rst:1794 msgid "" "On Windows, when a foreign function call raises a system exception (for " "example, due to an access violation), it will be captured and replaced with " @@ -2628,18 +2694,18 @@ msgid "" "hook to replace the exception with its own." msgstr "" -#: library/ctypes.rst:1788 +#: library/ctypes.rst:1802 msgid "" "Some ways to invoke foreign function calls as well as some of the functions " "in this module may raise an auditing event ``ctypes.call_function`` with " "arguments ``function pointer`` and ``arguments``." msgstr "" -#: library/ctypes.rst:1795 +#: library/ctypes.rst:1809 msgid "Function prototypes" msgstr "" -#: library/ctypes.rst:1797 +#: library/ctypes.rst:1811 msgid "" "Foreign functions can also be created by instantiating function prototypes. " "Function prototypes are similar to function prototypes in C; they describe a " @@ -2650,7 +2716,7 @@ msgid "" "``@wrapper`` syntax. See :ref:`ctypes-callback-functions` for examples." msgstr "" -#: library/ctypes.rst:1808 +#: library/ctypes.rst:1822 msgid "" "The returned function prototype creates functions that use the standard C " "calling convention. The function will release the GIL during the call. If " @@ -2659,37 +2725,37 @@ msgid "" "after the call; *use_last_error* does the same for the Windows error code." msgstr "" -#: library/ctypes.rst:1818 +#: library/ctypes.rst:1832 msgid "" "The returned function prototype creates functions that use the ``stdcall`` " "calling convention. The function will release the GIL during the call. " "*use_errno* and *use_last_error* have the same meaning as above." msgstr "" -#: library/ctypes.rst:1828 +#: library/ctypes.rst:1842 msgid "" "The returned function prototype creates functions that use the Python " "calling convention. The function will *not* release the GIL during the call." msgstr "" -#: library/ctypes.rst:1831 +#: library/ctypes.rst:1845 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 "" -#: library/ctypes.rst:1838 +#: library/ctypes.rst:1852 msgid "" "Returns a foreign function at the specified address which must be an integer." msgstr "" -#: library/ctypes.rst:1845 +#: library/ctypes.rst:1859 msgid "" "Create a C callable function (a callback function) from a Python *callable*." msgstr "" -#: library/ctypes.rst:1852 +#: library/ctypes.rst:1866 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 " @@ -2697,7 +2763,7 @@ msgid "" "small integer. The second item is the shared library instance." msgstr "" -#: library/ctypes.rst:1862 +#: library/ctypes.rst:1876 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* " @@ -2705,86 +2771,86 @@ msgid "" "identifier which is used in extended error reporting." msgstr "" -#: library/ctypes.rst:1867 +#: library/ctypes.rst:1881 msgid "" "If *iid* is not specified, an :exc:`OSError` is raised if the COM method " "call fails. If *iid* is specified, a :exc:`~ctypes.COMError` is raised " "instead." msgstr "" -#: library/ctypes.rst:1871 +#: library/ctypes.rst:1885 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 "" -#: library/ctypes.rst:1878 +#: library/ctypes.rst:1892 msgid "" "The optional *paramflags* parameter creates foreign function wrappers with " "much more functionality than the features described above." msgstr "" -#: library/ctypes.rst:1881 +#: library/ctypes.rst:1895 msgid "" "*paramflags* must be a tuple of the same length as :attr:`~_CFuncPtr." "argtypes`." msgstr "" -#: library/ctypes.rst:1883 +#: library/ctypes.rst:1897 msgid "" "Each item in this tuple contains further information about a parameter, it " "must be a tuple containing one, two, or three items." msgstr "" -#: library/ctypes.rst:1886 +#: library/ctypes.rst:1900 msgid "" "The first item is an integer containing a combination of direction flags for " "the parameter:" msgstr "" -#: library/ctypes.rst:1889 +#: library/ctypes.rst:1903 msgid "1" msgstr "" -#: library/ctypes.rst:1890 +#: library/ctypes.rst:1904 msgid "Specifies an input parameter to the function." msgstr "" -#: library/ctypes.rst:1892 +#: library/ctypes.rst:1906 msgid "2" msgstr "" -#: library/ctypes.rst:1893 +#: library/ctypes.rst:1907 msgid "Output parameter. The foreign function fills in a value." msgstr "" -#: library/ctypes.rst:1895 +#: library/ctypes.rst:1909 msgid "4" msgstr "" -#: library/ctypes.rst:1896 +#: library/ctypes.rst:1910 msgid "Input parameter which defaults to the integer zero." msgstr "" -#: library/ctypes.rst:1898 +#: library/ctypes.rst:1912 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 "" -#: library/ctypes.rst:1901 +#: library/ctypes.rst:1915 msgid "The optional third item is the default value for this parameter." msgstr "" -#: library/ctypes.rst:1904 +#: library/ctypes.rst:1918 msgid "" "The following 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 "" -#: library/ctypes.rst:1908 +#: library/ctypes.rst:1922 msgid "" "WINUSERAPI int WINAPI\n" "MessageBoxW(\n" @@ -2794,11 +2860,11 @@ msgid "" " UINT uType);" msgstr "" -#: library/ctypes.rst:1938 +#: library/ctypes.rst:1952 msgid "Here is the wrapping with :mod:`ctypes`::" msgstr "" -#: library/ctypes.rst:1917 +#: library/ctypes.rst:1931 msgid "" ">>> from ctypes import c_int, WINFUNCTYPE, windll\n" ">>> from ctypes.wintypes import HWND, LPCWSTR, UINT\n" @@ -2808,18 +2874,18 @@ msgid "" ">>> MessageBox = prototype((\"MessageBoxW\", windll.user32), paramflags)" msgstr "" -#: library/ctypes.rst:1923 +#: library/ctypes.rst:1937 msgid "The ``MessageBox`` foreign function can now be called in these ways::" msgstr "" -#: library/ctypes.rst:1925 +#: library/ctypes.rst:1939 msgid "" ">>> MessageBox()\n" ">>> MessageBox(text=\"Spam, spam, spam\")\n" ">>> MessageBox(flags=2, text=\"foo bar\")" msgstr "" -#: library/ctypes.rst:1929 +#: library/ctypes.rst:1943 msgid "" "A second example demonstrates output parameters. The win32 " "``GetWindowRect`` function retrieves the dimensions of a specified window by " @@ -2827,7 +2893,7 @@ msgid "" "the C declaration::" msgstr "" -#: library/ctypes.rst:1933 +#: library/ctypes.rst:1947 msgid "" "WINUSERAPI BOOL WINAPI\n" "GetWindowRect(\n" @@ -2835,7 +2901,7 @@ msgid "" " LPRECT lpRect);" msgstr "" -#: library/ctypes.rst:1940 +#: library/ctypes.rst:1954 msgid "" ">>> from ctypes import POINTER, WINFUNCTYPE, windll, WinError\n" ">>> from ctypes.wintypes import BOOL, HWND, RECT\n" @@ -2846,7 +2912,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1947 +#: library/ctypes.rst:1961 msgid "" "Functions with output parameters will automatically return the output " "parameter value if there is a single one, or a tuple containing the output " @@ -2854,7 +2920,7 @@ msgid "" "now returns a RECT instance, when called." msgstr "" -#: library/ctypes.rst:1952 +#: library/ctypes.rst:1966 msgid "" "Output parameters can be combined with the :attr:`~_CFuncPtr.errcheck` " "protocol to do further output processing and error checking. The win32 " @@ -2863,7 +2929,7 @@ msgid "" "exception when the api call failed::" msgstr "" -#: library/ctypes.rst:1957 +#: library/ctypes.rst:1971 msgid "" ">>> def errcheck(result, func, args):\n" "... if not result:\n" @@ -2874,7 +2940,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1965 +#: library/ctypes.rst:1979 msgid "" "If the :attr:`~_CFuncPtr.errcheck` function returns the argument tuple it " "receives unchanged, :mod:`ctypes` continues the normal processing it does on " @@ -2883,7 +2949,7 @@ msgid "" "and return them instead, the normal processing will no longer take place::" msgstr "" -#: library/ctypes.rst:1971 +#: library/ctypes.rst:1985 msgid "" ">>> def errcheck(result, func, args):\n" "... if not result:\n" @@ -2895,62 +2961,62 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1984 +#: library/ctypes.rst:1998 msgid "Utility functions" msgstr "" -#: library/ctypes.rst:1988 +#: library/ctypes.rst:2002 msgid "" "Returns the address of the memory buffer as integer. *obj* must be an " "instance of a ctypes type." msgstr "" -#: library/ctypes.rst:1991 +#: library/ctypes.rst:2005 msgid "" "Raises an :ref:`auditing event ` ``ctypes.addressof`` with " "argument ``obj``." msgstr "" -#: library/ctypes.rst:1996 +#: library/ctypes.rst:2010 msgid "" "Returns the alignment requirements of a ctypes type. *obj_or_type* must be a " "ctypes type or instance." msgstr "" -#: library/ctypes.rst:2002 +#: library/ctypes.rst:2016 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 "" -#: library/ctypes.rst:2006 +#: library/ctypes.rst:2020 msgid "``byref(obj, offset)`` corresponds to this C code::" msgstr "" -#: library/ctypes.rst:2008 +#: library/ctypes.rst:2022 msgid "(((char *)&obj) + offset)" msgstr "" -#: library/ctypes.rst:2010 +#: library/ctypes.rst:2024 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 "" -#: library/ctypes.rst:2016 +#: library/ctypes.rst:2030 msgid "" "Copies a COM pointer from *src* to *dst* and returns the Windows specific :c:" "type:`!HRESULT` value." msgstr "" -#: library/ctypes.rst:2019 +#: library/ctypes.rst:2033 msgid "" "If *src* is not ``NULL``, its ``AddRef`` method is called, incrementing the " "reference count." msgstr "" -#: library/ctypes.rst:2022 +#: library/ctypes.rst:2036 msgid "" "In contrast, the reference count of *dst* will not be decremented before " "assigning the new value. Unless *dst* is ``NULL``, the caller is responsible " @@ -2958,7 +3024,7 @@ msgid "" "necessary." msgstr "" -#: library/ctypes.rst:2034 +#: library/ctypes.rst:2048 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* " @@ -2966,47 +3032,47 @@ msgid "" "as a pointer." msgstr "" -#: library/ctypes.rst:2043 +#: library/ctypes.rst:2057 msgid "" "This function creates a mutable character buffer. The returned object is a " "ctypes array of :class:`c_char`." msgstr "" -#: library/ctypes.rst:2046 +#: library/ctypes.rst:2060 msgid "" "If *size* is given (and not ``None``), it must be an :class:`int`. It " "specifies the size of the returned array." msgstr "" -#: library/ctypes.rst:2049 +#: library/ctypes.rst:2063 msgid "" "If the *init* argument is given, it must be :class:`bytes`. It is used to " "initialize the array items. Bytes not initialized this way are set to zero " "(NUL)." msgstr "" -#: library/ctypes.rst:2053 +#: library/ctypes.rst:2067 msgid "" "If *size* is not given (or if it is ``None``), the buffer is made one " "element larger than *init*, effectively adding a NUL terminator." msgstr "" -#: library/ctypes.rst:2056 +#: library/ctypes.rst:2070 msgid "" "If both arguments are given, *size* must not be less than ``len(init)``." msgstr "" -#: library/ctypes.rst:2060 +#: library/ctypes.rst:2074 msgid "" "If *size* is equal to ``len(init)``, a NUL terminator is not added. Do not " "treat such a buffer as a C string." msgstr "" -#: library/ctypes.rst:2063 +#: library/ctypes.rst:2077 msgid "For example::" msgstr "" -#: library/ctypes.rst:2065 +#: library/ctypes.rst:2079 msgid "" ">>> bytes(create_string_buffer(2))\n" "b'\\x00\\x00'\n" @@ -3022,45 +3088,45 @@ msgid "" "ValueError: byte string too long" msgstr "" -#: library/ctypes.rst:2078 +#: library/ctypes.rst:2092 msgid "" "Raises an :ref:`auditing event ` ``ctypes.create_string_buffer`` " "with arguments ``init``, ``size``." msgstr "" -#: library/ctypes.rst:2084 +#: library/ctypes.rst:2098 msgid "" "This function creates a mutable unicode character buffer. The returned " "object is a ctypes array of :class:`c_wchar`." msgstr "" -#: library/ctypes.rst:2087 +#: library/ctypes.rst:2101 msgid "" "The function takes the same arguments as :func:`~create_string_buffer` " "except *init* must be a string and *size* counts :class:`c_wchar`." msgstr "" -#: library/ctypes.rst:2090 +#: library/ctypes.rst:2104 msgid "" "Raises an :ref:`auditing event ` ``ctypes.create_unicode_buffer`` " "with arguments ``init``, ``size``." msgstr "" -#: library/ctypes.rst:2095 +#: library/ctypes.rst:2109 msgid "" "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 "" -#: library/ctypes.rst:2104 +#: library/ctypes.rst:2118 msgid "" "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 "" -#: library/ctypes.rst:2114 +#: library/ctypes.rst:2128 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 " @@ -3068,21 +3134,21 @@ msgid "" "If no library can be found, returns ``None``." msgstr "" -#: library/ctypes.rst:2125 +#: library/ctypes.rst:2139 msgid "" "Returns 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 "" -#: library/ctypes.rst:2129 +#: library/ctypes.rst:2143 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 "" -#: library/ctypes.rst:2139 +#: library/ctypes.rst:2153 msgid "" "Try to provide a list of paths of the shared libraries loaded into the " "current process. These paths are not normalized or processed in any way. " @@ -3090,72 +3156,72 @@ msgid "" "The exact functionality is system dependent." msgstr "" -#: library/ctypes.rst:2144 +#: library/ctypes.rst:2158 msgid "" "On most platforms, the first element of the list represents the current " "executable file. It may be an empty string." msgstr "" -#: library/ctypes.rst:2152 +#: library/ctypes.rst:2166 msgid "" "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 :" "func:`GetLastError`." msgstr "" -#: library/ctypes.rst:2161 +#: library/ctypes.rst:2175 msgid "" "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 "" -#: library/ctypes.rst:2170 +#: library/ctypes.rst:2184 msgid "" "Returns the current value of the ctypes-private copy of the system :data:" "`errno` variable in the calling thread." msgstr "" -#: library/ctypes.rst:2173 +#: library/ctypes.rst:2187 msgid "" "Raises an :ref:`auditing event ` ``ctypes.get_errno`` with no " "arguments." msgstr "" -#: library/ctypes.rst:2177 +#: library/ctypes.rst:2191 msgid "" "Returns the current value of the ctypes-private copy of the system :data:`!" "LastError` variable in the calling thread." msgstr "" -#: library/ctypes.rst:2182 +#: library/ctypes.rst:2196 msgid "" "Raises an :ref:`auditing event ` ``ctypes.get_last_error`` with no " "arguments." msgstr "" -#: library/ctypes.rst:2187 +#: library/ctypes.rst:2201 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 "" -#: library/ctypes.rst:2194 +#: library/ctypes.rst:2208 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 "" -#: library/ctypes.rst:2201 +#: library/ctypes.rst:2215 msgid "" "Create or return a ctypes pointer type. Pointer types are cached and reused " "internally, so calling this function repeatedly is cheap. *type* must be a " "ctypes type." msgstr "" -#: library/ctypes.rst:2207 +#: library/ctypes.rst:2221 msgid "" "The resulting pointer type is cached in the ``__pointer_type__`` attribute " "of *type*. It is possible to set this attribute before the first call to " @@ -3164,19 +3230,19 @@ msgid "" "relying on implementation details that may change in future Python versions." msgstr "" -#: library/ctypes.rst:2218 +#: library/ctypes.rst:2232 msgid "" "Create a new pointer instance, pointing to *obj*. The returned object is of " "the type ``POINTER(type(obj))``." msgstr "" -#: library/ctypes.rst:2221 +#: library/ctypes.rst:2235 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 "" -#: library/ctypes.rst:2227 +#: library/ctypes.rst:2241 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 " @@ -3184,50 +3250,50 @@ msgid "" "but it is possible to enlarge the buffer." msgstr "" -#: library/ctypes.rst:2235 +#: library/ctypes.rst:2249 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 "" -#: library/ctypes.rst:2238 +#: library/ctypes.rst:2252 msgid "" "Raises an :ref:`auditing event ` ``ctypes.set_errno`` with " "argument ``errno``." msgstr "" -#: library/ctypes.rst:2243 +#: library/ctypes.rst:2257 msgid "" "Sets 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 "" -#: library/ctypes.rst:2249 +#: library/ctypes.rst:2263 msgid "" "Raises an :ref:`auditing event ` ``ctypes.set_last_error`` with " "argument ``error``." msgstr "" -#: library/ctypes.rst:2254 +#: library/ctypes.rst:2268 msgid "" "Returns the size in bytes of a ctypes type or instance memory buffer. Does " "the same as the C ``sizeof`` operator." msgstr "" -#: library/ctypes.rst:2260 +#: library/ctypes.rst:2274 msgid "" "Return the byte string at *void \\*ptr*. If *size* is specified, it is used " "as size, otherwise the string is assumed to be zero-terminated." msgstr "" -#: library/ctypes.rst:2264 +#: library/ctypes.rst:2278 msgid "" "Raises an :ref:`auditing event ` ``ctypes.string_at`` with " "arguments ``ptr``, ``size``." msgstr "" -#: library/ctypes.rst:2269 +#: library/ctypes.rst:2283 msgid "" "Creates an instance of :exc:`OSError`. If *code* is not specified, :func:" "`GetLastError` is called to determine the error code. If *descr* is not " @@ -3235,39 +3301,39 @@ msgid "" "error." msgstr "" -#: library/ctypes.rst:2276 +#: library/ctypes.rst:2290 msgid "" "An instance of :exc:`WindowsError` used to be created, which is now an alias " "of :exc:`OSError`." msgstr "" -#: library/ctypes.rst:2283 +#: library/ctypes.rst:2297 msgid "" "Return the wide-character string at *void \\*ptr*. 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 "" -#: library/ctypes.rst:2288 +#: library/ctypes.rst:2302 msgid "" "Raises an :ref:`auditing event ` ``ctypes.wstring_at`` with " "arguments ``ptr``, ``size``." msgstr "" -#: library/ctypes.rst:2293 +#: library/ctypes.rst:2307 msgid "" "Return a :class:`memoryview` object of length *size* that references memory " "starting at *void \\*ptr*." msgstr "" -#: library/ctypes.rst:2296 +#: library/ctypes.rst:2310 msgid "" "If *readonly* is true, the returned :class:`!memoryview` object can not be " "used to modify the underlying memory. (Changes made by other means will " "still be reflected in the returned object.)" msgstr "" -#: library/ctypes.rst:2301 +#: library/ctypes.rst:2315 msgid "" "This function is similar to :func:`string_at` with the key difference of not " "making a copy of the specified memory. It is a semantically equivalent (but " @@ -3277,17 +3343,17 @@ msgid "" "`~ctypes.byref` object.)" msgstr "" -#: library/ctypes.rst:2308 +#: library/ctypes.rst:2322 msgid "" "Raises an :ref:`auditing event ` ``ctypes.memoryview_at`` with " "arguments ``address``, ``size``, ``readonly``." msgstr "" -#: library/ctypes.rst:2316 +#: library/ctypes.rst:2330 msgid "Data types" msgstr "" -#: library/ctypes.rst:2321 +#: library/ctypes.rst:2335 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 " @@ -3297,13 +3363,13 @@ msgid "" "alive in case the memory block contains pointers." msgstr "" -#: library/ctypes.rst:2328 +#: library/ctypes.rst:2342 msgid "" "Common methods of ctypes data types, these are all class methods (to be " "exact, they are methods of the :term:`metaclass`):" msgstr "" -#: library/ctypes.rst:2333 +#: library/ctypes.rst:2347 msgid "" "This method returns a ctypes instance that shares the buffer of the *source* " "object. The *source* object must support the writeable buffer interface. " @@ -3312,13 +3378,13 @@ msgid "" "exc:`ValueError` is raised." msgstr "" -#: library/ctypes.rst:2349 +#: library/ctypes.rst:2363 msgid "" "Raises an :ref:`auditing event ` ``ctypes.cdata/buffer`` with " "arguments ``pointer``, ``size``, ``offset``." msgstr "" -#: library/ctypes.rst:2343 +#: library/ctypes.rst:2357 msgid "" "This method creates a ctypes instance, copying the buffer from the *source* " "object buffer which must be readable. The optional *offset* parameter " @@ -3326,19 +3392,19 @@ msgid "" "If the source buffer is not large enough a :exc:`ValueError` is raised." msgstr "" -#: library/ctypes.rst:2353 +#: library/ctypes.rst:2367 msgid "" "This method returns a ctypes type instance using the memory specified by " "*address* which must be an integer." msgstr "" -#: library/ctypes.rst:2358 +#: library/ctypes.rst:2372 msgid "" "This method, and others that indirectly call this method, raises an :ref:" "`auditing event ` ``ctypes.cdata`` with argument ``address``." msgstr "" -#: library/ctypes.rst:2364 +#: library/ctypes.rst:2378 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 " @@ -3346,36 +3412,36 @@ msgid "" "object that can be used as a function call parameter." msgstr "" -#: library/ctypes.rst:2369 +#: library/ctypes.rst:2383 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 "" -#: library/ctypes.rst:2375 +#: library/ctypes.rst:2389 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 "" -#: library/ctypes.rst:2379 +#: library/ctypes.rst:2393 msgid "Common class variables of ctypes data types:" msgstr "" -#: library/ctypes.rst:2383 +#: library/ctypes.rst:2397 msgid "" "The pointer type that was created by calling :func:`POINTER` for " "corresponding ctypes data type. If a pointer type was not yet created, the " "attribute is missing." msgstr "" -#: library/ctypes.rst:2389 +#: library/ctypes.rst:2403 msgid "Common instance variables of ctypes data types:" msgstr "" -#: library/ctypes.rst:2393 +#: library/ctypes.rst:2407 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:" @@ -3383,13 +3449,13 @@ msgid "" "block." msgstr "" -#: library/ctypes.rst:2400 +#: library/ctypes.rst:2414 msgid "" "This read-only variable is true when the ctypes data instance has allocated " "the memory block itself, false otherwise." msgstr "" -#: library/ctypes.rst:2405 +#: library/ctypes.rst:2419 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. " @@ -3397,7 +3463,7 @@ msgid "" "dictionary." msgstr "" -#: library/ctypes.rst:2418 +#: library/ctypes.rst:2432 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 " @@ -3406,11 +3472,11 @@ msgid "" "types that are not and do not contain pointers can now be pickled." msgstr "" -#: library/ctypes.rst:2424 +#: library/ctypes.rst:2438 msgid "Instances have a single attribute:" msgstr "" -#: library/ctypes.rst:2428 +#: library/ctypes.rst:2442 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 " @@ -3418,7 +3484,7 @@ msgid "" "bytes object or string." msgstr "" -#: library/ctypes.rst:2433 +#: library/ctypes.rst:2447 msgid "" "When the ``value`` attribute is retrieved from a ctypes instance, usually a " "new object is returned each time. :mod:`ctypes` does *not* implement " @@ -3426,7 +3492,7 @@ msgid "" "true for all other ctypes object instances." msgstr "" -#: library/ctypes.rst:2439 +#: library/ctypes.rst:2453 msgid "" "Fundamental data types, when returned as foreign function call results, or, " "for example, by retrieving structure field members or array items, are " @@ -3436,7 +3502,7 @@ msgid "" "instance." msgstr "" -#: library/ctypes.rst:2447 +#: library/ctypes.rst:2461 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 " @@ -3444,25 +3510,25 @@ msgid "" "you can get the value of the pointer by accessing the ``value`` attribute." msgstr "" -#: library/ctypes.rst:2452 +#: library/ctypes.rst:2466 msgid "These are the fundamental ctypes data types:" msgstr "" -#: library/ctypes.rst:2456 +#: library/ctypes.rst:2470 msgid "" "Represents the C :c:expr:`signed char` datatype, and interprets the value as " "small integer. The constructor accepts an optional integer initializer; no " "overflow checking is done." msgstr "" -#: library/ctypes.rst:2463 +#: library/ctypes.rst:2477 msgid "" "Represents the C :c:expr:`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 "" -#: library/ctypes.rst:2470 +#: library/ctypes.rst:2484 msgid "" "Represents the C :c:expr:`char *` datatype when it points to a zero-" "terminated string. For a general character pointer that may also point to " @@ -3470,204 +3536,204 @@ msgid "" "integer address, or a bytes object." msgstr "" -#: library/ctypes.rst:2478 +#: library/ctypes.rst:2492 msgid "" "Represents the C :c:expr:`double` datatype. The constructor accepts an " "optional float initializer." msgstr "" -#: library/ctypes.rst:2484 +#: library/ctypes.rst:2498 msgid "" "Represents the C :c:expr:`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 "" -#: library/ctypes.rst:2490 +#: library/ctypes.rst:2504 msgid "" "Represents the C :c:expr:`float` datatype. The constructor accepts an " "optional float initializer." msgstr "" -#: library/ctypes.rst:2496 +#: library/ctypes.rst:2510 msgid "" "Represents the C :c:expr:`double complex` datatype, if available. The " "constructor accepts an optional :class:`complex` initializer." msgstr "" -#: library/ctypes.rst:2504 +#: library/ctypes.rst:2518 msgid "" "Represents the C :c:expr:`float complex` datatype, if available. The " "constructor accepts an optional :class:`complex` initializer." msgstr "" -#: library/ctypes.rst:2512 +#: library/ctypes.rst:2526 msgid "" "Represents the C :c:expr:`long double complex` datatype, if available. The " "constructor accepts an optional :class:`complex` initializer." msgstr "" -#: library/ctypes.rst:2520 +#: library/ctypes.rst:2534 msgid "" "Represents the C :c:expr:`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 "" -#: library/ctypes.rst:2527 +#: library/ctypes.rst:2541 msgid "" -"Represents the C 8-bit :c:expr:`signed int` datatype. Usually an alias for :" +"Represents the C 8-bit :c:expr:`signed int` datatype. It is an alias for :" "class:`c_byte`." msgstr "" -#: library/ctypes.rst:2533 +#: library/ctypes.rst:2547 msgid "" "Represents the C 16-bit :c:expr:`signed int` datatype. Usually an alias " "for :class:`c_short`." msgstr "" -#: library/ctypes.rst:2539 +#: library/ctypes.rst:2553 msgid "" "Represents the C 32-bit :c:expr:`signed int` datatype. Usually an alias " "for :class:`c_int`." msgstr "" -#: library/ctypes.rst:2545 +#: library/ctypes.rst:2559 msgid "" "Represents the C 64-bit :c:expr:`signed int` datatype. Usually an alias " "for :class:`c_longlong`." msgstr "" -#: library/ctypes.rst:2551 +#: library/ctypes.rst:2565 msgid "" "Represents the C :c:expr:`signed long` datatype. The constructor accepts an " "optional integer initializer; no overflow checking is done." msgstr "" -#: library/ctypes.rst:2557 +#: library/ctypes.rst:2571 msgid "" "Represents the C :c:expr:`signed long long` datatype. The constructor " "accepts an optional integer initializer; no overflow checking is done." msgstr "" -#: library/ctypes.rst:2563 +#: library/ctypes.rst:2577 msgid "" "Represents the C :c:expr:`signed short` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done." msgstr "" -#: library/ctypes.rst:2569 +#: library/ctypes.rst:2583 msgid "Represents the C :c:type:`size_t` datatype." msgstr "" -#: library/ctypes.rst:2574 +#: library/ctypes.rst:2588 msgid "Represents the C :c:type:`ssize_t` datatype." msgstr "" -#: library/ctypes.rst:2581 +#: library/ctypes.rst:2595 msgid "Represents the C :c:type:`time_t` datatype." msgstr "" -#: library/ctypes.rst:2588 +#: library/ctypes.rst:2602 msgid "" "Represents the C :c:expr:`unsigned char` datatype, it interprets the value " "as small integer. The constructor accepts an optional integer initializer; " "no overflow checking is done." msgstr "" -#: library/ctypes.rst:2595 +#: library/ctypes.rst:2609 msgid "" "Represents the C :c:expr:`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 "" -#: library/ctypes.rst:2602 +#: library/ctypes.rst:2616 msgid "" -"Represents the C 8-bit :c:expr:`unsigned int` datatype. Usually an alias " -"for :class:`c_ubyte`." +"Represents the C 8-bit :c:expr:`unsigned int` datatype. It is an alias for :" +"class:`c_ubyte`." msgstr "" -#: library/ctypes.rst:2608 +#: library/ctypes.rst:2622 msgid "" "Represents the C 16-bit :c:expr:`unsigned int` datatype. Usually an alias " "for :class:`c_ushort`." msgstr "" -#: library/ctypes.rst:2614 +#: library/ctypes.rst:2628 msgid "" "Represents the C 32-bit :c:expr:`unsigned int` datatype. Usually an alias " "for :class:`c_uint`." msgstr "" -#: library/ctypes.rst:2620 +#: library/ctypes.rst:2634 msgid "" "Represents the C 64-bit :c:expr:`unsigned int` datatype. Usually an alias " "for :class:`c_ulonglong`." msgstr "" -#: library/ctypes.rst:2626 +#: library/ctypes.rst:2640 msgid "" "Represents the C :c:expr:`unsigned long` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done." msgstr "" -#: library/ctypes.rst:2632 +#: library/ctypes.rst:2646 msgid "" "Represents the C :c:expr:`unsigned long long` datatype. The constructor " "accepts an optional integer initializer; no overflow checking is done." msgstr "" -#: library/ctypes.rst:2638 +#: library/ctypes.rst:2652 msgid "" "Represents the C :c:expr:`unsigned short` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done." msgstr "" -#: library/ctypes.rst:2644 +#: library/ctypes.rst:2658 msgid "" "Represents the C :c:expr:`void *` type. The value is represented as " "integer. The constructor accepts an optional integer initializer." msgstr "" -#: library/ctypes.rst:2650 +#: library/ctypes.rst:2664 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 "" -#: library/ctypes.rst:2657 +#: library/ctypes.rst:2671 msgid "" "Represents the C :c:expr:`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 "" -#: library/ctypes.rst:2664 +#: library/ctypes.rst:2678 msgid "" "Represent the C :c:expr:`bool` datatype (more accurately, :c:expr:`_Bool` " "from C99). Its value can be ``True`` or ``False``, and the constructor " "accepts any object that has a truth value." msgstr "" -#: library/ctypes.rst:2671 +#: library/ctypes.rst:2685 msgid "" "Represents a :c:type:`!HRESULT` value, which contains success or error " "information for a function or method call." msgstr "" -#: library/ctypes.rst:2679 +#: library/ctypes.rst:2693 msgid "" "Represents the C :c:expr:`PyObject *` datatype. Calling this without an " "argument creates a ``NULL`` :c:expr:`PyObject *` pointer." msgstr "" -#: library/ctypes.rst:2682 +#: library/ctypes.rst:2696 msgid ":class:`!py_object` is now a :term:`generic type`." msgstr "" -#: library/ctypes.rst:2685 +#: library/ctypes.rst:2699 msgid "" "The :mod:`!ctypes.wintypes` module provides quite some other Windows " "specific data types, for example :c:type:`!HWND`, :c:type:`!WPARAM`, or :c:" @@ -3675,47 +3741,47 @@ msgid "" "are also defined." msgstr "" -#: library/ctypes.rst:2693 +#: library/ctypes.rst:2707 msgid "Structured data types" msgstr "" -#: library/ctypes.rst:2698 +#: library/ctypes.rst:2712 msgid "Abstract base class for unions in native byte order." msgstr "" -#: library/ctypes.rst:2700 +#: library/ctypes.rst:2714 msgid "" "Unions share common attributes and behavior with structures; see :class:" "`Structure` documentation for details." msgstr "" -#: library/ctypes.rst:2705 +#: library/ctypes.rst:2719 msgid "Abstract base class for unions in *big endian* byte order." msgstr "" -#: library/ctypes.rst:2711 +#: library/ctypes.rst:2725 msgid "Abstract base class for unions in *little endian* byte order." msgstr "" -#: library/ctypes.rst:2717 +#: library/ctypes.rst:2731 msgid "Abstract base class for structures in *big endian* byte order." msgstr "" -#: library/ctypes.rst:2722 +#: library/ctypes.rst:2736 msgid "Abstract base class for structures in *little endian* byte order." msgstr "" -#: library/ctypes.rst:2724 +#: library/ctypes.rst:2738 msgid "" "Structures and unions with non-native byte order cannot contain pointer type " "fields, or any other data types containing pointer type fields." msgstr "" -#: library/ctypes.rst:2730 +#: library/ctypes.rst:2744 msgid "Abstract base class for structures in *native* byte order." msgstr "" -#: library/ctypes.rst:2732 +#: library/ctypes.rst:2746 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:" @@ -3723,34 +3789,34 @@ msgid "" "the fields by direct attribute accesses. These are the" msgstr "" -#: library/ctypes.rst:2740 +#: library/ctypes.rst:2754 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 "" -#: library/ctypes.rst:2744 +#: library/ctypes.rst:2758 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 "" -#: library/ctypes.rst:2748 +#: library/ctypes.rst:2762 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 "" -#: library/ctypes.rst:2751 +#: library/ctypes.rst:2765 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 "" -#: library/ctypes.rst:2755 +#: library/ctypes.rst:2769 msgid "" "class List(Structure):\n" " pass\n" @@ -3759,13 +3825,13 @@ msgid "" " ]" msgstr "" -#: library/ctypes.rst:2761 +#: library/ctypes.rst:2775 msgid "" "The :attr:`!_fields_` class variable can only be set once. Later assignments " "will raise an :exc:`AttributeError`." msgstr "" -#: library/ctypes.rst:2764 +#: library/ctypes.rst:2778 msgid "" "Additionally, the :attr:`!_fields_` class variable must be defined before " "the structure or union type is first used: an instance or subclass is " @@ -3775,25 +3841,39 @@ msgid "" "fields, as if :attr:`!_fields_` was empty." msgstr "" -#: library/ctypes.rst:2772 +#: library/ctypes.rst:2786 msgid "" "Sub-subclasses of structure types inherit the fields of the base class plus " "the :attr:`_fields_` defined in the sub-subclass, if any." msgstr "" -#: library/ctypes.rst:2778 +#: library/ctypes.rst:2792 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. Setting this " -"attribute to 0 is the same as not setting it at all." +"fields in the instance." +msgstr "" + +#: library/ctypes.rst:2795 +msgid "" +"This is only implemented for the MSVC-compatible memory layout (see :attr:" +"`_layout_`)." +msgstr "" + +#: library/ctypes.rst:2798 +msgid "" +"Setting :attr:`!_pack_` to 0 is the same as not setting it at all. " +"Otherwise, the value must be a positive power of two. The effect is " +"equivalent to ``#pragma pack(N)`` in C, except :mod:`ctypes` may allow " +"larger *n* than what the compiler accepts." msgstr "" -#: library/ctypes.rst:2783 -msgid "This is only implemented for the MSVC-compatible memory layout." +#: library/ctypes.rst:2803 +msgid "" +":attr:`!_pack_` must already be defined when :attr:`_fields_` is assigned, " +"otherwise it will have no effect." msgstr "" -#: library/ctypes.rst:2787 +#: library/ctypes.rst:2808 msgid "" "For historical reasons, if :attr:`!_pack_` is non-zero, the MSVC-compatible " "layout will be used by default. On non-Windows platforms, this default is " @@ -3801,33 +3881,57 @@ msgid "" "intended, set :attr:`~Structure._layout_` to ``'ms'`` explicitly." msgstr "" -#: library/ctypes.rst:2796 +#: library/ctypes.rst:2817 +msgid "" +"An optional small integer that allows increasing the alignment of the " +"structure when being packed or unpacked to/from memory." +msgstr "" + +#: library/ctypes.rst:2820 +msgid "" +"The value must not be negative. The effect is equivalent to " +"``__attribute__((aligned(N)))`` on GCC or ``#pragma align(N)`` on MSVC, " +"except :mod:`ctypes` may allow values that the compiler would reject." +msgstr "" + +#: library/ctypes.rst:2825 +msgid "" +":attr:`!_align_` can only *increase* a structure's alignment requirements. " +"Setting it to 0 or 1 has no effect." +msgstr "" + +#: library/ctypes.rst:2828 +msgid "" +"Using values that are not powers of two is discouraged and may lead to " +"surprising behavior." +msgstr "" + +#: library/ctypes.rst:2831 msgid "" -"An optional small integer that allows overriding the alignment of the " -"structure when being packed or unpacked to/from memory. Setting this " -"attribute to 0 is the same as not setting it at all." +":attr:`!_align_` must already be defined when :attr:`_fields_` is assigned, " +"otherwise it will have no effect." msgstr "" -#: library/ctypes.rst:2804 +#: library/ctypes.rst:2838 msgid "" "An optional string naming the struct/union layout. It can currently be set " "to:" msgstr "" -#: library/ctypes.rst:2807 +#: library/ctypes.rst:2841 msgid "" "``\"ms\"``: the layout used by the Microsoft compiler (MSVC). On GCC and " "Clang, this layout can be selected with ``__attribute__((ms_struct))``." msgstr "" -#: library/ctypes.rst:2810 +#: library/ctypes.rst:2844 msgid "" "``\"gcc-sysv\"``: the layout used by GCC with the System V or “SysV-like” " "data model, as used on Linux and macOS. With this layout, :attr:`~Structure." "_pack_` must be unset or zero." msgstr "" -#: library/ctypes.rst:2814 +#: library/ctypes.rst:2848 msgid "" "If not set explicitly, ``ctypes`` will use a default that matches the " "platform conventions. This default may change in future Python releases (for " @@ -3835,34 +3939,34 @@ msgid "" "between similar platforms is found). Currently the default will be:" msgstr "" -#: library/ctypes.rst:2820 +#: library/ctypes.rst:2854 msgid "On Windows: ``\"ms\"``" msgstr "" -#: library/ctypes.rst:2821 +#: library/ctypes.rst:2855 msgid "" "When :attr:`~Structure._pack_` is specified: ``\"ms\"``. (This is " "deprecated; see :attr:`~Structure._pack_` documentation.)" msgstr "" -#: library/ctypes.rst:2823 +#: library/ctypes.rst:2857 msgid "Otherwise: ``\"gcc-sysv\"``" msgstr "" -#: library/ctypes.rst:2825 +#: library/ctypes.rst:2859 msgid "" ":attr:`!_layout_` must already be defined when :attr:`~Structure._fields_` " "is assigned, otherwise it will have no effect." msgstr "" -#: library/ctypes.rst:2832 +#: library/ctypes.rst:2866 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 "" -#: library/ctypes.rst:2836 +#: library/ctypes.rst:2870 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 " @@ -3870,11 +3974,11 @@ msgid "" "structure or union field." msgstr "" -#: library/ctypes.rst:2841 +#: library/ctypes.rst:2875 msgid "Here is an example type (Windows)::" msgstr "" -#: library/ctypes.rst:2843 +#: library/ctypes.rst:2877 msgid "" "class _U(Union):\n" " _fields_ = [(\"lptdesc\", POINTER(TYPEDESC)),\n" @@ -3887,7 +3991,7 @@ msgid "" " (\"vt\", VARTYPE)]" msgstr "" -#: library/ctypes.rst:2854 +#: library/ctypes.rst:2888 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 " @@ -3897,7 +4001,7 @@ msgid "" "temporary union instance::" msgstr "" -#: library/ctypes.rst:2861 +#: library/ctypes.rst:2895 msgid "" "td = TYPEDESC()\n" "td.vt = VT_PTR\n" @@ -3905,7 +4009,7 @@ msgid "" "td.u.lptdesc = POINTER(some_type)" msgstr "" -#: library/ctypes.rst:2866 +#: library/ctypes.rst:2900 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:" @@ -3913,7 +4017,7 @@ msgid "" "of the base class." msgstr "" -#: library/ctypes.rst:2871 +#: library/ctypes.rst:2905 msgid "" "Structure and union constructors accept both positional and keyword " "arguments. Positional arguments are used to initialize member fields in the " @@ -3923,13 +4027,13 @@ msgid "" "names not present in :attr:`_fields_`." msgstr "" -#: library/ctypes.rst:2881 +#: library/ctypes.rst:2915 msgid "" "Descriptor for fields of a :class:`Structure` and :class:`Union`. For " "example::" msgstr "" -#: library/ctypes.rst:2884 +#: library/ctypes.rst:2918 msgid "" ">>> class Color(Structure):\n" "... _fields_ = (\n" @@ -3952,100 +4056,100 @@ msgid "" "1" msgstr "" -#: library/ctypes.rst:2904 +#: library/ctypes.rst:2938 msgid "All attributes are read-only." msgstr "" -#: library/ctypes.rst:2906 +#: library/ctypes.rst:2940 msgid "" ":class:`!CField` objects are created via :attr:`~Structure._fields_`; do not " "instantiate the class directly." msgstr "" -#: library/ctypes.rst:2911 +#: library/ctypes.rst:2945 msgid "" "Previously, descriptors only had ``offset`` and ``size`` attributes and a " "readable string representation; the :class:`!CField` class was not available " "directly." msgstr "" -#: library/ctypes.rst:2917 +#: library/ctypes.rst:2951 msgid "Name of the field, as a string." msgstr "" -#: library/ctypes.rst:2921 +#: library/ctypes.rst:2955 msgid "Type of the field, as a :ref:`ctypes class `." msgstr "" -#: library/ctypes.rst:2926 +#: library/ctypes.rst:2960 msgid "Offset of the field, in bytes." msgstr "" -#: library/ctypes.rst:2928 +#: library/ctypes.rst:2962 msgid "" "For bitfields, this is the offset of the underlying byte-aligned *storage " "unit*; see :attr:`~CField.bit_offset`." msgstr "" -#: library/ctypes.rst:2933 +#: library/ctypes.rst:2967 msgid "Size of the field, in bytes." msgstr "" -#: library/ctypes.rst:2935 +#: library/ctypes.rst:2969 msgid "" "For bitfields, this is the size of the underlying *storage unit*. Typically, " "it has the same size as the bitfield's type." msgstr "" -#: library/ctypes.rst:2940 +#: library/ctypes.rst:2974 msgid "For non-bitfields, equivalent to :attr:`~CField.byte_size`." msgstr "" -#: library/ctypes.rst:2942 +#: library/ctypes.rst:2976 msgid "" "For bitfields, this contains a backwards-compatible bit-packed value that " "combines :attr:`~CField.bit_size` and :attr:`~CField.bit_offset`. Prefer " "using the explicit attributes instead." msgstr "" -#: library/ctypes.rst:2949 +#: library/ctypes.rst:2983 msgid "True if this is a bitfield." msgstr "" -#: library/ctypes.rst:2954 +#: library/ctypes.rst:2988 msgid "" "The location of a bitfield within its *storage unit*, that is, within :attr:" "`~CField.byte_size` bytes of memory starting at :attr:`~CField.byte_offset`." msgstr "" -#: library/ctypes.rst:2958 +#: library/ctypes.rst:2992 msgid "" "To get the field's value, read the storage unit as an integer, :ref:`shift " "left ` by :attr:`!bit_offset` and take the :attr:`!bit_size` least " "significant bits." msgstr "" -#: library/ctypes.rst:2962 +#: library/ctypes.rst:2996 msgid "" "For non-bitfields, :attr:`!bit_offset` is zero and :attr:`!bit_size` is " "equal to ``byte_size * 8``." msgstr "" -#: library/ctypes.rst:2967 +#: library/ctypes.rst:3001 msgid "" "True if this field is anonymous, that is, it contains nested sub-fields that " -"should be be merged into a containing structure or union." +"should be merged into a containing structure or union." msgstr "" -#: library/ctypes.rst:2974 +#: library/ctypes.rst:3008 msgid "Arrays and pointers" msgstr "" -#: library/ctypes.rst:2978 +#: library/ctypes.rst:3012 msgid "Abstract base class for arrays." msgstr "" -#: library/ctypes.rst:2980 +#: library/ctypes.rst:3014 msgid "" "The recommended way to create concrete array types is by multiplying any :" "mod:`ctypes` data type with a non-negative integer. Alternatively, you can " @@ -4055,46 +4159,46 @@ msgid "" "an :class:`Array`." msgstr "" -#: library/ctypes.rst:2990 +#: library/ctypes.rst:3024 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 "" -#: library/ctypes.rst:2997 +#: library/ctypes.rst:3031 msgid "Specifies the type of each element in the array." msgstr "" -#: library/ctypes.rst:3000 +#: library/ctypes.rst:3034 msgid "" "Array subclass constructors accept positional arguments, used to initialize " "the elements in order." msgstr "" -#: library/ctypes.rst:3005 +#: library/ctypes.rst:3039 msgid "" "Create an array. Equivalent to ``type * length``, where *type* is a :mod:" "`ctypes` data type and *length* an integer." msgstr "" -#: library/ctypes.rst:3009 +#: library/ctypes.rst:3043 msgid "" "This function is :term:`soft deprecated` in favor of multiplication. There " "are no plans to remove it." msgstr "" -#: library/ctypes.rst:3015 +#: library/ctypes.rst:3049 msgid "Private, abstract base class for pointers." msgstr "" -#: library/ctypes.rst:3017 +#: library/ctypes.rst:3051 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 "" -#: library/ctypes.rst:3021 +#: library/ctypes.rst:3055 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 :" @@ -4103,43 +4207,43 @@ msgid "" "probably crash with an access violation (if you're lucky)." msgstr "" -#: library/ctypes.rst:3031 +#: library/ctypes.rst:3065 msgid "Specifies the type pointed to." msgstr "" -#: library/ctypes.rst:3035 +#: library/ctypes.rst:3069 msgid "" "Returns the object to which to pointer points. Assigning to this attribute " "changes the pointer to point to the assigned object." msgstr "" -#: library/ctypes.rst:3042 +#: library/ctypes.rst:3076 msgid "Exceptions" msgstr "" -#: library/ctypes.rst:3046 +#: library/ctypes.rst:3080 msgid "" "This exception is raised when a foreign function call cannot convert one of " "the passed arguments." msgstr "" -#: library/ctypes.rst:3052 +#: library/ctypes.rst:3086 msgid "This exception is raised when a COM method call failed." msgstr "" -#: library/ctypes.rst:3056 +#: library/ctypes.rst:3090 msgid "The integer value representing the error code." msgstr "" -#: library/ctypes.rst:3060 +#: library/ctypes.rst:3094 msgid "The error message." msgstr "" -#: library/ctypes.rst:3064 +#: library/ctypes.rst:3098 msgid "The 5-tuple ``(descr, source, helpfile, helpcontext, progid)``." msgstr "" -#: library/ctypes.rst:3066 +#: library/ctypes.rst:3100 msgid "" "*descr* is the textual description. *source* is the language-dependent " "``ProgID`` for the class or application that raised the error. *helpfile* " diff --git a/library/curses.ascii.po b/library/curses.ascii.po index 22d3124f..1f96cab9 100644 --- a/library/curses.ascii.po +++ b/library/curses.ascii.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/curses.panel.po b/library/curses.panel.po index d83b0d0d..8cae2262 100644 --- a/library/curses.panel.po +++ b/library/curses.panel.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/curses.po b/library/curses.po index f8164a09..3b70be2d 100644 --- a/library/curses.po +++ b/library/curses.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -49,86 +49,94 @@ msgid "" "availability>` or :ref:`WebAssembly platforms `." msgstr "" -#: library/curses.rst:28 +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." +msgstr "" + +#: library/curses.rst:30 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 "" -#: library/curses.rst:31 +#: library/curses.rst:33 msgid "" "Whenever the documentation mentions a *character string* it can be specified " "as a Unicode string or a byte string." msgstr "" -#: library/curses.rst:36 +#: library/curses.rst:38 msgid "Module :mod:`curses.ascii`" msgstr "" -#: library/curses.rst:37 +#: library/curses.rst:39 msgid "" "Utilities for working with ASCII characters, regardless of your locale " "settings." msgstr "" -#: library/curses.rst:39 +#: library/curses.rst:41 msgid "Module :mod:`curses.panel`" msgstr "" -#: library/curses.rst:40 +#: library/curses.rst:42 msgid "A panel stack extension that adds depth to curses windows." msgstr "" -#: library/curses.rst:42 +#: library/curses.rst:44 msgid "Module :mod:`curses.textpad`" msgstr "" -#: library/curses.rst:43 +#: library/curses.rst:45 msgid "" "Editable text widget for curses supporting :program:`Emacs`\\ -like " "bindings." msgstr "" -#: library/curses.rst:45 +#: library/curses.rst:47 msgid ":ref:`curses-howto`" msgstr "" -#: library/curses.rst:46 +#: library/curses.rst:48 msgid "" "Tutorial material on using curses with Python, by Andrew Kuchling and Eric " "Raymond." msgstr "" -#: library/curses.rst:53 +#: library/curses.rst:55 msgid "Functions" msgstr "" -#: library/curses.rst:55 +#: library/curses.rst:57 msgid "The module :mod:`curses` defines the following exception:" msgstr "" -#: library/curses.rst:60 +#: library/curses.rst:62 msgid "Exception raised when a curses library function returns an error." msgstr "" -#: library/curses.rst:64 +#: library/curses.rst:66 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 "" -#: library/curses.rst:68 +#: library/curses.rst:70 msgid "The module :mod:`curses` defines the following functions:" msgstr "" -#: library/curses.rst:73 +#: library/curses.rst:75 msgid "" "Allow use of default values for colors on terminals supporting this feature. " "Use this to support transparency in your application." msgstr "" -#: library/curses.rst:76 +#: library/curses.rst:78 msgid "" "Assign terminal default foreground/background colors to color number ``-1``. " "So ``init_pair(x, COLOR_RED, -1)`` will initialize pair *x* as red on " @@ -136,11 +144,11 @@ msgid "" "*x* as default foreground on blue." msgstr "" -#: library/curses.rst:81 +#: library/curses.rst:83 msgid "Change the definition of the color-pair ``0`` to ``(fg, bg)``." msgstr "" -#: library/curses.rst:88 +#: library/curses.rst:90 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 " @@ -148,17 +156,17 @@ msgid "" "and occasionally to change interfaces depending on the line speed." msgstr "" -#: library/curses.rst:96 +#: library/curses.rst:98 msgid "Emit a short attention sound." msgstr "" -#: library/curses.rst:101 +#: library/curses.rst:103 msgid "" "Return ``True`` or ``False``, depending on whether the programmer can change " "the colors displayed by the terminal." msgstr "" -#: library/curses.rst:107 +#: library/curses.rst:109 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 " @@ -168,7 +176,7 @@ msgid "" "terminal in cbreak mode." msgstr "" -#: library/curses.rst:116 +#: library/curses.rst:118 msgid "" "Return the intensity of the red, green, and blue (RGB) components in the " "color *color_number*, which must be between ``0`` and ``COLORS - 1``. " @@ -177,7 +185,7 @@ msgid "" "component)." msgstr "" -#: library/curses.rst:124 +#: library/curses.rst:126 msgid "" "Return the attribute value for displaying text in the specified color pair. " "Only the first 256 color pairs are supported. This attribute value can be " @@ -186,7 +194,7 @@ msgid "" "function." msgstr "" -#: library/curses.rst:133 +#: library/curses.rst:135 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 " @@ -195,7 +203,7 @@ msgid "" "and the \"very visible\" mode is a block cursor." msgstr "" -#: library/curses.rst:142 +#: library/curses.rst:144 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, " @@ -203,7 +211,7 @@ msgid "" "`reset_prog_mode` will restore this mode." msgstr "" -#: library/curses.rst:150 +#: library/curses.rst:152 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\" " @@ -211,11 +219,11 @@ msgid "" "func:`reset_shell_mode` will restore this mode." msgstr "" -#: library/curses.rst:158 +#: library/curses.rst:160 msgid "Insert an *ms* millisecond pause in output." msgstr "" -#: library/curses.rst:163 +#: library/curses.rst:165 msgid "" "Update the physical screen. The curses library keeps two data structures, " "one representing the current physical screen contents and a virtual screen " @@ -223,7 +231,7 @@ msgid "" "the physical screen to match the virtual screen." msgstr "" -#: library/curses.rst:168 +#: library/curses.rst:170 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 " @@ -234,24 +242,24 @@ msgid "" "func:`!doupdate`." msgstr "" -#: library/curses.rst:178 +#: library/curses.rst:180 msgid "" "Enter echo mode. In echo mode, each character input is echoed to the screen " "as it is entered." msgstr "" -#: library/curses.rst:184 +#: library/curses.rst:186 msgid "De-initialize the library, and return terminal to normal status." msgstr "" -#: library/curses.rst:189 +#: library/curses.rst:191 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 "" -#: library/curses.rst:196 +#: library/curses.rst:198 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 " @@ -262,20 +270,20 @@ msgid "" "time line editing without touching the rest of the screen." msgstr "" -#: library/curses.rst:206 +#: library/curses.rst:208 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 "" -#: library/curses.rst:213 +#: library/curses.rst:215 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 "" -#: library/curses.rst:219 +#: library/curses.rst:221 msgid "" "After :meth:`~window.getch` returns :const:`KEY_MOUSE` to signal a mouse " "event, this method should be called to retrieve the queued mouse event, " @@ -290,51 +298,51 @@ msgid "" "const:`BUTTON_ALT`." msgstr "" -#: library/curses.rst:1797 +#: library/curses.rst:1800 msgid "" "The ``BUTTON5_*`` constants are now exposed if they are provided by the " "underlying curses library." msgstr "" -#: library/curses.rst:237 +#: library/curses.rst:239 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 "" -#: library/curses.rst:243 +#: library/curses.rst:245 msgid "" "Read window related data stored in the file by an earlier :func:`window." "putwin` call. The routine then creates and initializes a new window using " "that data, returning the new window object." msgstr "" -#: library/curses.rst:250 +#: library/curses.rst:252 msgid "" "Return ``True`` if the terminal can display colors; otherwise, return " "``False``." msgstr "" -#: library/curses.rst:254 +#: library/curses.rst:256 msgid "" "Return ``True`` if the module supports extended colors; otherwise, return " "``False``. Extended color support allows more than 256 color pairs for " "terminals that support more than 16 colors (e.g. xterm-256color)." msgstr "" -#: library/curses.rst:258 +#: library/curses.rst:260 msgid "Extended color support requires ncurses version 6.1 or later." msgstr "" -#: library/curses.rst:264 +#: library/curses.rst:266 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 "" -#: library/curses.rst:271 +#: library/curses.rst:273 msgid "" "Return ``True`` if the terminal has insert- and delete-line capabilities, or " "can simulate them using scrolling regions. This function is included for " @@ -342,13 +350,13 @@ msgid "" "capabilities." msgstr "" -#: library/curses.rst:279 +#: library/curses.rst:281 msgid "" "Take a key value *ch*, and return ``True`` if the current terminal type " "recognizes a key with that value." msgstr "" -#: library/curses.rst:285 +#: library/curses.rst:287 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 " @@ -357,7 +365,7 @@ msgid "" "``255``. Use :func:`nocbreak` to leave half-delay mode." msgstr "" -#: library/curses.rst:294 +#: library/curses.rst:296 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 " @@ -369,7 +377,7 @@ msgid "" "``True``." msgstr "" -#: library/curses.rst:305 +#: library/curses.rst:307 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 " @@ -383,31 +391,31 @@ msgid "" "definition." msgstr "" -#: library/curses.rst:320 +#: library/curses.rst:322 msgid "" "Initialize the library. Return a :ref:`window ` " "object which represents the whole screen." msgstr "" -#: library/curses.rst:325 +#: library/curses.rst:327 msgid "" "If there is an error opening the terminal, the underlying curses library may " "cause the interpreter to exit." msgstr "" -#: library/curses.rst:331 +#: library/curses.rst:333 msgid "" "Return ``True`` if :func:`resize_term` would modify the window structure, " "``False`` otherwise." msgstr "" -#: library/curses.rst:337 +#: library/curses.rst:339 msgid "" "Return ``True`` if :func:`endwin` has been called (that is, the curses " "library has been deinitialized)." msgstr "" -#: library/curses.rst:343 +#: library/curses.rst:345 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 " @@ -418,27 +426,27 @@ msgid "" "character." msgstr "" -#: library/curses.rst:353 +#: library/curses.rst:355 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 "" -#: library/curses.rst:360 +#: library/curses.rst:362 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 "" -#: library/curses.rst:367 +#: library/curses.rst:369 msgid "" "If *flag* is ``True``, allow 8-bit characters to be input. If *flag* is " "``False``, allow only 7-bit chars." msgstr "" -#: library/curses.rst:373 +#: library/curses.rst:375 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 " @@ -446,7 +454,7 @@ msgid "" "fifth of a second." msgstr "" -#: library/curses.rst:380 +#: library/curses.rst:382 msgid "" "Set the mouse events to be reported, and return a tuple ``(availmask, " "oldmask)``. *availmask* indicates which of the specified mouse events can " @@ -455,17 +463,17 @@ msgid "" "never called, no mouse events are ever reported." msgstr "" -#: library/curses.rst:389 +#: library/curses.rst:391 msgid "Sleep for *ms* milliseconds." msgstr "" -#: library/curses.rst:394 +#: library/curses.rst:396 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 "" -#: library/curses.rst:397 +#: library/curses.rst:399 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. " @@ -481,35 +489,35 @@ msgid "" "to be displayed." msgstr "" -#: library/curses.rst:413 +#: library/curses.rst:415 msgid "" "Return a new :ref:`window `, whose left-upper corner " "is at ``(begin_y, begin_x)``, and whose height/width is *nlines*/*ncols*." msgstr "" -#: library/curses.rst:416 +#: library/curses.rst:418 msgid "" "By default, the window will extend from the specified position to the lower " "right corner of the screen." msgstr "" -#: library/curses.rst:422 +#: library/curses.rst:424 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 "" -#: library/curses.rst:429 +#: library/curses.rst:431 msgid "" "Leave cbreak mode. Return to normal \"cooked\" mode with line buffering." msgstr "" -#: library/curses.rst:434 +#: library/curses.rst:436 msgid "Leave echo mode. Echoing of input characters is turned off." msgstr "" -#: library/curses.rst:439 +#: library/curses.rst:441 msgid "" "Leave newline mode. Disable translation of return into newline on input, " "and disable low-level translation of newline into newline/return on output " @@ -519,7 +527,7 @@ msgid "" "also, it will be able to detect the return key on input." msgstr "" -#: library/curses.rst:449 +#: library/curses.rst:451 msgid "" "When the :func:`!noqiflush` routine is used, normal flush of input and " "output queues associated with the ``INTR``, ``QUIT`` and ``SUSP`` characters " @@ -528,63 +536,63 @@ msgid "" "occurred, after the handler exits." msgstr "" -#: library/curses.rst:457 +#: library/curses.rst:459 msgid "Leave raw mode. Return to normal \"cooked\" mode with line buffering." msgstr "" -#: library/curses.rst:462 +#: library/curses.rst:464 msgid "" "Return a tuple ``(fg, bg)`` containing the colors for the requested color " "pair. The value of *pair_number* must be between ``0`` and ``COLOR_PAIRS - " "1``." msgstr "" -#: library/curses.rst:468 +#: library/curses.rst:470 msgid "" "Return the number of the color-pair set by the attribute value *attr*. :func:" "`color_pair` is the counterpart to this function." msgstr "" -#: library/curses.rst:474 +#: library/curses.rst:476 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 "" -#: library/curses.rst:481 +#: library/curses.rst:483 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 "" -#: library/curses.rst:488 +#: library/curses.rst:490 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 "" -#: library/curses.rst:495 +#: library/curses.rst:497 msgid "" "Restore the terminal to \"program\" mode, as previously saved by :func:" "`def_prog_mode`." msgstr "" -#: library/curses.rst:501 +#: library/curses.rst:503 msgid "" "Restore the terminal to \"shell\" mode, as previously saved by :func:" "`def_shell_mode`." msgstr "" -#: library/curses.rst:507 +#: library/curses.rst:509 msgid "" "Restore the state of the terminal modes to what it was at the last call to :" "func:`savetty`." msgstr "" -#: library/curses.rst:513 +#: library/curses.rst:515 msgid "" "Backend function used by :func:`resizeterm`, performing most of the work; " "when resizing the windows, :func:`resize_term` blank-fills the areas that " @@ -594,47 +602,47 @@ msgid "" "to resize these without additional interaction with the application." msgstr "" -#: library/curses.rst:523 +#: library/curses.rst:525 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 "" -#: library/curses.rst:530 +#: library/curses.rst:532 msgid "" "Save the current state of the terminal modes in a buffer, usable by :func:" "`resetty`." msgstr "" -#: library/curses.rst:535 +#: library/curses.rst:537 msgid "Retrieves the value set by :func:`set_escdelay`." msgstr "" -#: library/curses.rst:541 +#: library/curses.rst:543 msgid "" "Sets the number of milliseconds to wait after reading an escape character, " "to distinguish between an individual escape character entered on the " "keyboard from escape sequences sent by cursor and function keys." msgstr "" -#: library/curses.rst:549 +#: library/curses.rst:551 msgid "Retrieves the value set by :func:`set_tabsize`." msgstr "" -#: library/curses.rst:555 +#: library/curses.rst:557 msgid "" "Sets the number of columns used by the curses library when converting a tab " "character to spaces as it adds the tab to a window." msgstr "" -#: library/curses.rst:562 +#: library/curses.rst:564 msgid "" "Set the virtual screen cursor to *y*, *x*. If *y* and *x* are both ``-1``, " "then :meth:`leaveok ` is set ``True``." msgstr "" -#: library/curses.rst:568 +#: library/curses.rst:570 msgid "" "Initialize the terminal. *term* is a string giving the terminal name, or " "``None``; if omitted or ``None``, the value of the :envvar:`TERM` " @@ -643,14 +651,14 @@ msgid "" "descriptor for ``sys.stdout`` will be used." msgstr "" -#: library/curses.rst:577 +#: library/curses.rst:579 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 "" -#: library/curses.rst:581 +#: library/curses.rst:583 msgid "" ":func:`start_color` initializes eight basic colors (black, red, green, " "yellow, blue, magenta, cyan, and white), and two global variables in the :" @@ -660,20 +668,20 @@ msgid "" "terminal was just turned on." msgstr "" -#: library/curses.rst:590 +#: library/curses.rst:592 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 "" -#: library/curses.rst:597 +#: library/curses.rst:599 msgid "" "Return the value of the environment variable :envvar:`TERM`, as a bytes " "object, truncated to 14 characters." msgstr "" -#: library/curses.rst:603 +#: library/curses.rst:605 msgid "" "Return the value of the Boolean capability corresponding to the terminfo " "capability name *capname* as an integer. Return the value ``-1`` if " @@ -681,7 +689,7 @@ msgid "" "from the terminal description." msgstr "" -#: library/curses.rst:611 +#: library/curses.rst:613 msgid "" "Return the value of the numeric capability corresponding to the terminfo " "capability name *capname* as an integer. Return the value ``-2`` if " @@ -689,7 +697,7 @@ msgid "" "from the terminal description." msgstr "" -#: library/curses.rst:619 +#: library/curses.rst:621 msgid "" "Return the value of the string capability corresponding to the terminfo " "capability name *capname* as a bytes object. Return ``None`` if *capname* " @@ -697,7 +705,7 @@ msgid "" "terminal description." msgstr "" -#: library/curses.rst:627 +#: library/curses.rst:629 msgid "" "Instantiate the bytes object *str* with the supplied parameters, where *str* " "should be a parameterized string obtained from the terminfo database. E.g. " @@ -705,13 +713,13 @@ msgid "" "exact result depending on terminal type." msgstr "" -#: library/curses.rst:635 +#: library/curses.rst:637 msgid "" "Specify that the file descriptor *fd* be used for typeahead checking. If " "*fd* is ``-1``, then no typeahead checking is done." msgstr "" -#: library/curses.rst:638 +#: library/curses.rst:640 msgid "" "The curses library does \"line-breakout optimization\" by looking for " "typeahead periodically while updating the screen. If input is found, and it " @@ -721,7 +729,7 @@ msgid "" "typeahead checking." msgstr "" -#: library/curses.rst:647 +#: library/curses.rst:649 msgid "" "Return a bytes object which is a printable representation of the character " "*ch*. Control characters are represented as a caret followed by the " @@ -729,35 +737,35 @@ msgid "" "are." msgstr "" -#: library/curses.rst:654 +#: library/curses.rst:656 msgid "Push *ch* so the next :meth:`~window.getch` will return it." msgstr "" -#: library/curses.rst:658 +#: library/curses.rst:660 msgid "Only one *ch* can be pushed before :meth:`!getch` is called." msgstr "" -#: library/curses.rst:663 +#: library/curses.rst:665 msgid "" "Update the :const:`LINES` and :const:`COLS` module variables. Useful for " "detecting manual screen resize." msgstr "" -#: library/curses.rst:671 +#: library/curses.rst:673 msgid "Push *ch* so the next :meth:`~window.get_wch` will return it." msgstr "" -#: library/curses.rst:675 +#: library/curses.rst:677 msgid "Only one *ch* can be pushed before :meth:`!get_wch` is called." msgstr "" -#: library/curses.rst:682 +#: library/curses.rst:684 msgid "" "Push a :const:`KEY_MOUSE` event onto the input queue, associating the given " "state data with it." msgstr "" -#: library/curses.rst:688 +#: library/curses.rst:690 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 " @@ -767,11 +775,11 @@ msgid "" "to use the window size if :envvar:`LINES` and :envvar:`COLUMNS` are not set)." msgstr "" -#: library/curses.rst:698 +#: library/curses.rst:700 msgid "Equivalent to ``assume_default_colors(-1, -1)``." msgstr "" -#: library/curses.rst:703 +#: library/curses.rst:705 msgid "" "Initialize curses and call another callable object, *func*, which should be " "the rest of your curses-using application. If the application raises an " @@ -785,50 +793,50 @@ msgid "" "echo, and disables the terminal keypad." msgstr "" -#: library/curses.rst:717 +#: library/curses.rst:719 msgid "Window Objects" msgstr "" -#: library/curses.rst:719 +#: library/curses.rst:723 msgid "" "Window objects, as returned by :func:`initscr` and :func:`newwin` above, " "have the following methods and attributes:" msgstr "" -#: library/curses.rst:726 +#: library/curses.rst:730 msgid "" "Paint character *ch* at ``(y, x)`` with attributes *attr*, overwriting any " "character previously painted at that location. By default, the character " "position and attributes are the current settings for the window object." msgstr "" -#: library/curses.rst:732 +#: library/curses.rst:736 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 "" -#: library/curses.rst:740 +#: library/curses.rst:744 msgid "" "Paint at most *n* characters of the character string *str* at ``(y, x)`` " "with attributes *attr*, overwriting anything previously on the display." msgstr "" -#: library/curses.rst:748 +#: library/curses.rst:752 msgid "" "Paint the character string *str* at ``(y, x)`` with attributes *attr*, " "overwriting anything previously on the display." msgstr "" -#: library/curses.rst:753 +#: library/curses.rst:757 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 "" -#: library/curses.rst:757 +#: library/curses.rst:761 msgid "" "A `bug in ncurses `_, the backend for " "this Python module, can cause SegFaults when resizing windows. This is fixed " @@ -838,44 +846,44 @@ msgid "" "line." msgstr "" -#: library/curses.rst:767 +#: library/curses.rst:771 msgid "" "Remove attribute *attr* from the \"background\" set applied to all writes to " "the current window." msgstr "" -#: library/curses.rst:773 +#: library/curses.rst:777 msgid "" -"Add attribute *attr* from the \"background\" set applied to all writes to " -"the current window." +"Add attribute *attr* to the \"background\" set applied to all writes to the " +"current window." msgstr "" -#: library/curses.rst:779 +#: library/curses.rst:783 msgid "" "Set the \"background\" set of attributes to *attr*. This set is initially " "``0`` (no attributes)." msgstr "" -#: library/curses.rst:785 +#: library/curses.rst:789 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 "" -#: library/curses.rst:789 +#: library/curses.rst:793 msgid "" "The attribute of every character in the window is changed to the new " "background attribute." msgstr "" -#: library/curses.rst:792 +#: library/curses.rst:796 msgid "" "Wherever the former background character appears, it is changed to the new " "background character." msgstr "" -#: library/curses.rst:798 +#: library/curses.rst:802 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 " @@ -886,128 +894,128 @@ msgid "" "delete line/character operations." msgstr "" -#: library/curses.rst:808 +#: library/curses.rst:812 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 "" -#: library/curses.rst:814 +#: library/curses.rst:818 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 "" -#: library/curses.rst:819 +#: library/curses.rst:823 msgid "Parameter" msgstr "" -#: library/curses.rst:819 +#: library/curses.rst:823 msgid "Description" msgstr "" -#: library/curses.rst:819 +#: library/curses.rst:823 msgid "Default value" msgstr "" -#: library/curses.rst:821 +#: library/curses.rst:825 msgid "*ls*" msgstr "" -#: library/curses.rst:821 +#: library/curses.rst:825 msgid "Left side" msgstr "" -#: library/curses.rst:823 +#: library/curses.rst:827 msgid ":const:`ACS_VLINE`" msgstr "" -#: library/curses.rst:823 +#: library/curses.rst:827 msgid "*rs*" msgstr "" -#: library/curses.rst:823 +#: library/curses.rst:827 msgid "Right side" msgstr "" -#: library/curses.rst:825 +#: library/curses.rst:829 msgid "*ts*" msgstr "" -#: library/curses.rst:825 +#: library/curses.rst:829 msgid "Top" msgstr "" -#: library/curses.rst:827 +#: library/curses.rst:831 msgid ":const:`ACS_HLINE`" msgstr "" -#: library/curses.rst:827 +#: library/curses.rst:831 msgid "*bs*" msgstr "" -#: library/curses.rst:827 +#: library/curses.rst:831 msgid "Bottom" msgstr "" -#: library/curses.rst:829 +#: library/curses.rst:833 msgid "*tl*" msgstr "" -#: library/curses.rst:829 +#: library/curses.rst:833 msgid "Upper-left corner" msgstr "" -#: library/curses.rst:829 +#: library/curses.rst:833 msgid ":const:`ACS_ULCORNER`" msgstr "" -#: library/curses.rst:831 +#: library/curses.rst:835 msgid "*tr*" msgstr "" -#: library/curses.rst:831 +#: library/curses.rst:835 msgid "Upper-right corner" msgstr "" -#: library/curses.rst:831 +#: library/curses.rst:835 msgid ":const:`ACS_URCORNER`" msgstr "" -#: library/curses.rst:833 +#: library/curses.rst:837 msgid "*bl*" msgstr "" -#: library/curses.rst:833 +#: library/curses.rst:837 msgid "Bottom-left corner" msgstr "" -#: library/curses.rst:833 +#: library/curses.rst:837 msgid ":const:`ACS_LLCORNER`" msgstr "" -#: library/curses.rst:835 +#: library/curses.rst:839 msgid "*br*" msgstr "" -#: library/curses.rst:835 +#: library/curses.rst:839 msgid "Bottom-right corner" msgstr "" -#: library/curses.rst:835 +#: library/curses.rst:839 msgid ":const:`ACS_LRCORNER`" msgstr "" -#: library/curses.rst:841 +#: library/curses.rst:845 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 "" -#: library/curses.rst:850 +#: library/curses.rst:854 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 " @@ -1017,45 +1025,45 @@ msgid "" "be redisplayed by the next window refresh." msgstr "" -#: library/curses.rst:860 +#: library/curses.rst:864 msgid "" "Like :meth:`erase`, but also cause the whole window to be repainted upon " "next call to :meth:`refresh`." msgstr "" -#: library/curses.rst:866 +#: library/curses.rst:870 msgid "" "If *flag* is ``True``, the next call to :meth:`refresh` will clear the " "window completely." msgstr "" -#: library/curses.rst:872 +#: library/curses.rst:876 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 "" -#: library/curses.rst:878 +#: library/curses.rst:882 msgid "Erase from cursor to the end of the line." msgstr "" -#: library/curses.rst:883 +#: library/curses.rst:887 msgid "" "Update the current cursor position of all the ancestors of the window to " "reflect the current cursor position of the window." msgstr "" -#: library/curses.rst:889 +#: library/curses.rst:893 msgid "Delete any character at ``(y, x)``." msgstr "" -#: library/curses.rst:894 +#: library/curses.rst:898 msgid "" "Delete the line under the cursor. All following lines are moved up by one " "line." msgstr "" -#: library/curses.rst:900 +#: library/curses.rst:904 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 " @@ -1063,13 +1071,13 @@ msgid "" "a window object for the derived window." msgstr "" -#: library/curses.rst:908 +#: library/curses.rst:912 msgid "" "Add character *ch* with attribute *attr*, and immediately call :meth:" "`refresh` on the window." msgstr "" -#: library/curses.rst:914 +#: library/curses.rst:918 msgid "" "Test whether the given pair of screen-relative character-cell coordinates " "are enclosed by the given window, returning ``True`` or ``False``. It is " @@ -1077,11 +1085,11 @@ msgid "" "location of a mouse event." msgstr "" -#: library/curses.rst:919 +#: library/curses.rst:923 msgid "Previously it returned ``1`` or ``0`` instead of ``True`` or ``False``." msgstr "" -#: library/curses.rst:925 +#: library/curses.rst:929 msgid "" "Encoding used to encode method arguments (Unicode strings and characters). " "The encoding attribute is inherited from the parent window when a subwindow " @@ -1089,19 +1097,19 @@ msgid "" "locale encoding is used (see :func:`locale.getencoding`)." msgstr "" -#: library/curses.rst:935 +#: library/curses.rst:939 msgid "Clear the window." msgstr "" -#: library/curses.rst:940 +#: library/curses.rst:944 msgid "Return a tuple ``(y, x)`` of coordinates of upper-left corner." msgstr "" -#: library/curses.rst:945 +#: library/curses.rst:949 msgid "Return the given window's current background character/attribute pair." msgstr "" -#: library/curses.rst:950 +#: library/curses.rst:954 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 " @@ -1109,14 +1117,14 @@ msgid "" "otherwise wait until a key is pressed." msgstr "" -#: library/curses.rst:958 +#: library/curses.rst:962 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 "" -#: library/curses.rst:967 +#: library/curses.rst:971 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 " @@ -1124,40 +1132,40 @@ msgid "" "there is no input." msgstr "" -#: library/curses.rst:975 +#: library/curses.rst:979 msgid "Return a tuple ``(y, x)`` of the height and width of the window." msgstr "" -#: library/curses.rst:980 +#: library/curses.rst:984 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 "" -#: library/curses.rst:990 +#: library/curses.rst:994 msgid "" "Read a bytes object from the user, with primitive line editing capacity. The " "maximum value for *n* is 2047." msgstr "" -#: library/curses.rst:1088 +#: library/curses.rst:1092 msgid "The maximum value for *n* was increased from 1023 to 2047." msgstr "" -#: library/curses.rst:999 +#: library/curses.rst:1003 msgid "" "Return a tuple ``(y, x)`` of current cursor position relative to the " "window's upper-left corner." msgstr "" -#: library/curses.rst:1006 +#: library/curses.rst:1010 msgid "" "Display a horizontal line starting at ``(y, x)`` with length *n* consisting " "of the character *ch*." msgstr "" -#: library/curses.rst:1012 +#: library/curses.rst:1016 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 " @@ -1165,13 +1173,13 @@ msgid "" "initialized, use of character insert/delete is enabled by default." msgstr "" -#: library/curses.rst:1020 +#: library/curses.rst:1024 msgid "" "If *flag* is ``True``, :mod:`curses` will try and use hardware line editing " "facilities. Otherwise, line insertion/deletion are disabled." msgstr "" -#: library/curses.rst:1026 +#: library/curses.rst:1030 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` " @@ -1179,19 +1187,19 @@ msgid "" "calls to wrefresh. This option is disabled by default." msgstr "" -#: library/curses.rst:1034 +#: library/curses.rst:1038 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 "" -#: library/curses.rst:1041 +#: library/curses.rst:1045 msgid "" "Paint character *ch* at ``(y, x)`` with attributes *attr*, moving the line " "from position *x* right by one character." msgstr "" -#: library/curses.rst:1047 +#: library/curses.rst:1051 msgid "" "Insert *nlines* lines into the specified window above the current line. The " "*nlines* bottom lines are lost. For negative *nlines*, delete *nlines* " @@ -1200,13 +1208,13 @@ msgid "" "remains the same." msgstr "" -#: library/curses.rst:1056 +#: library/curses.rst:1060 msgid "" "Insert a blank line under the cursor. All following lines are moved down by " "one line." msgstr "" -#: library/curses.rst:1063 +#: library/curses.rst:1067 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 " @@ -1216,7 +1224,7 @@ msgid "" "if specified)." msgstr "" -#: library/curses.rst:1073 +#: library/curses.rst:1077 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 " @@ -1225,7 +1233,7 @@ msgid "" "specified)." msgstr "" -#: library/curses.rst:1082 +#: library/curses.rst:1086 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 " @@ -1234,76 +1242,76 @@ msgid "" "maximum value for *n* is 2047." msgstr "" -#: library/curses.rst:1094 +#: library/curses.rst:1098 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 "" -#: library/curses.rst:1101 +#: library/curses.rst:1105 msgid "" "Return ``True`` if the specified window was modified since the last call to :" "meth:`refresh`; otherwise return ``False``." msgstr "" -#: library/curses.rst:1107 +#: library/curses.rst:1111 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 "" -#: library/curses.rst:1114 +#: library/curses.rst:1118 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 "" -#: library/curses.rst:1118 +#: library/curses.rst:1122 msgid "" "If *flag* is ``False``, cursor will always be at \"cursor position\" after " "an update." msgstr "" -#: library/curses.rst:1123 +#: library/curses.rst:1127 msgid "Move cursor to ``(new_y, new_x)``." msgstr "" -#: library/curses.rst:1128 +#: library/curses.rst:1132 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 "" -#: library/curses.rst:1135 +#: library/curses.rst:1139 msgid "Move the window so its upper-left corner is at ``(new_y, new_x)``." msgstr "" -#: library/curses.rst:1140 +#: library/curses.rst:1144 msgid "If *flag* is ``True``, :meth:`getch` will be non-blocking." msgstr "" -#: library/curses.rst:1145 +#: library/curses.rst:1149 msgid "If *flag* is ``True``, escape sequences will not be timed out." msgstr "" -#: library/curses.rst:1147 +#: library/curses.rst:1151 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 "" -#: library/curses.rst:1153 +#: library/curses.rst:1157 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 "" -#: library/curses.rst:1160 +#: library/curses.rst:1164 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, " @@ -1311,7 +1319,7 @@ msgid "" "contents of *destwin*." msgstr "" -#: library/curses.rst:1165 +#: library/curses.rst:1169 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 " @@ -1319,7 +1327,7 @@ msgid "" "in the destination window." msgstr "" -#: library/curses.rst:1173 +#: library/curses.rst:1177 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 " @@ -1327,7 +1335,7 @@ msgid "" "the old contents of *destwin*." msgstr "" -#: library/curses.rst:1178 +#: library/curses.rst:1182 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 " @@ -1335,31 +1343,31 @@ msgid "" "the destination window." msgstr "" -#: library/curses.rst:1186 +#: library/curses.rst:1190 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 "" -#: library/curses.rst:1192 +#: library/curses.rst:1196 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 "" -#: library/curses.rst:1198 +#: library/curses.rst:1202 msgid "" "Touch the entire window, causing it to be completely redrawn on the next :" "meth:`refresh` call." msgstr "" -#: library/curses.rst:1204 +#: library/curses.rst:1208 msgid "" "Update the display immediately (sync actual screen with previous drawing/" "deleting methods)." msgstr "" -#: library/curses.rst:1207 +#: library/curses.rst:1211 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 " @@ -1374,7 +1382,7 @@ msgid "" "*smincol* are treated as if they were zero." msgstr "" -#: library/curses.rst:1221 +#: library/curses.rst:1225 msgid "" "Reallocate storage for a curses window to adjust its dimensions to the " "specified values. If either dimension is larger than the current values, " @@ -1382,11 +1390,11 @@ msgid "" "rendition (as set by :meth:`bkgdset`) merged into them." msgstr "" -#: library/curses.rst:1229 +#: library/curses.rst:1233 msgid "Scroll the screen or scrolling region upward by *lines* lines." msgstr "" -#: library/curses.rst:1234 +#: library/curses.rst:1238 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 " @@ -1396,54 +1404,54 @@ msgid "" "scrolling effect on the terminal, it is also necessary to call :meth:`idlok`." msgstr "" -#: library/curses.rst:1244 +#: library/curses.rst:1248 msgid "" "Set the scrolling region from line *top* to line *bottom*. All scrolling " "actions will take place in this region." msgstr "" -#: library/curses.rst:1250 +#: library/curses.rst:1254 msgid "" "Turn off the standout attribute. On some terminals this has the side effect " "of turning off all attributes." msgstr "" -#: library/curses.rst:1256 +#: library/curses.rst:1260 msgid "Turn on attribute *A_STANDOUT*." msgstr "" -#: library/curses.rst:1269 +#: library/curses.rst:1273 msgid "" "Return a sub-window, whose upper-left corner is at ``(begin_y, begin_x)``, " "and whose width/height is *ncols*/*nlines*." msgstr "" -#: library/curses.rst:1272 +#: library/curses.rst:1276 msgid "" "By default, the sub-window will extend from the specified position to the " "lower right corner of the window." msgstr "" -#: library/curses.rst:1278 +#: library/curses.rst:1282 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 "" -#: library/curses.rst:1285 +#: library/curses.rst:1289 msgid "" "If *flag* is ``True``, then :meth:`syncup` is called automatically whenever " "there is a change in the window." msgstr "" -#: library/curses.rst:1291 +#: library/curses.rst:1295 msgid "" "Touch all locations in ancestors of the window that have been changed in " "the window." msgstr "" -#: library/curses.rst:1297 +#: library/curses.rst:1301 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). " @@ -1453,7 +1461,7 @@ msgid "" "still no input at the end of that time." msgstr "" -#: library/curses.rst:1307 +#: library/curses.rst:1311 msgid "" "Pretend *count* lines have been changed, starting with line *start*. If " "*changed* is supplied, it specifies whether the affected lines are marked as " @@ -1461,49 +1469,49 @@ msgid "" "``=False``)." msgstr "" -#: library/curses.rst:1314 +#: library/curses.rst:1318 msgid "" "Pretend the whole window has been changed, for purposes of drawing " "optimizations." msgstr "" -#: library/curses.rst:1320 +#: library/curses.rst:1324 msgid "" "Mark all lines in the window as unchanged since the last call to :meth:" "`refresh`." msgstr "" -#: library/curses.rst:1327 +#: library/curses.rst:1331 msgid "" "Display a vertical line starting at ``(y, x)`` with length *n* consisting of " "the character *ch* with attributes *attr*." msgstr "" -#: library/curses.rst:1332 +#: library/curses.rst:1336 msgid "Constants" msgstr "" -#: library/curses.rst:1334 +#: library/curses.rst:1338 msgid "The :mod:`curses` module defines the following data members:" msgstr "" -#: library/curses.rst:1339 +#: library/curses.rst:1343 msgid "" "Some curses routines that return an integer, such as :meth:`~window." "getch`, return :const:`ERR` upon failure." msgstr "" -#: library/curses.rst:1345 +#: library/curses.rst:1349 msgid "" "Some curses routines that return an integer, such as :func:`napms`, " "return :const:`OK` upon success." msgstr "" -#: library/curses.rst:1352 +#: library/curses.rst:1355 msgid "A bytes object representing the current version of the module." msgstr "" -#: library/curses.rst:1357 +#: library/curses.rst:1360 msgid "" "A named tuple containing the three components of the ncurses library " "version: *major*, *minor*, and *patch*. All values are integers. The " @@ -1511,535 +1519,535 @@ msgid "" "is equivalent to ``curses.ncurses_version.major`` and so on." msgstr "" -#: library/curses.rst:1362 +#: library/curses.rst:1365 msgid "Availability: if the ncurses library is used." msgstr "" -#: library/curses.rst:1368 +#: library/curses.rst:1371 msgid "" "The maximum number of colors the terminal can support. It is defined only " "after the call to :func:`start_color`." msgstr "" -#: library/curses.rst:1373 +#: library/curses.rst:1376 msgid "" "The maximum number of color pairs the terminal can support. It is defined " "only after the call to :func:`start_color`." msgstr "" -#: library/curses.rst:1378 +#: library/curses.rst:1381 msgid "" "The width of the screen, i.e., the number of columns. It is defined only " "after the call to :func:`initscr`. Updated by :func:`update_lines_cols`, :" "func:`resizeterm` and :func:`resize_term`." msgstr "" -#: library/curses.rst:1385 +#: library/curses.rst:1388 msgid "" "The height of the screen, i.e., the number of lines. It is defined only " "after the call to :func:`initscr`. Updated by :func:`update_lines_cols`, :" "func:`resizeterm` and :func:`resize_term`." msgstr "" -#: library/curses.rst:1391 +#: library/curses.rst:1394 msgid "" "Some constants are available to specify character cell attributes. The exact " "constants available are system dependent." msgstr "" -#: library/curses.rst:1395 +#: library/curses.rst:1398 msgid "Attribute" msgstr "" -#: library/curses.rst:1440 library/curses.rst:1778 +#: library/curses.rst:1443 library/curses.rst:1781 msgid "Meaning" msgstr "" -#: library/curses.rst:1397 +#: library/curses.rst:1400 msgid "Alternate character set mode" msgstr "" -#: library/curses.rst:1399 +#: library/curses.rst:1402 msgid "Blink mode" msgstr "" -#: library/curses.rst:1401 +#: library/curses.rst:1404 msgid "Bold mode" msgstr "" -#: library/curses.rst:1403 +#: library/curses.rst:1406 msgid "Dim mode" msgstr "" -#: library/curses.rst:1405 +#: library/curses.rst:1408 msgid "Invisible or blank mode" msgstr "" -#: library/curses.rst:1407 +#: library/curses.rst:1410 msgid "Italic mode" msgstr "" -#: library/curses.rst:1409 +#: library/curses.rst:1412 msgid "Normal attribute" msgstr "" -#: library/curses.rst:1411 +#: library/curses.rst:1414 msgid "Protected mode" msgstr "" -#: library/curses.rst:1413 +#: library/curses.rst:1416 msgid "Reverse background and foreground colors" msgstr "" -#: library/curses.rst:1416 +#: library/curses.rst:1419 msgid "Standout mode" msgstr "" -#: library/curses.rst:1418 +#: library/curses.rst:1421 msgid "Underline mode" msgstr "" -#: library/curses.rst:1420 +#: library/curses.rst:1423 msgid "Horizontal highlight" msgstr "" -#: library/curses.rst:1422 +#: library/curses.rst:1425 msgid "Left highlight" msgstr "" -#: library/curses.rst:1424 +#: library/curses.rst:1427 msgid "Low highlight" msgstr "" -#: library/curses.rst:1426 +#: library/curses.rst:1429 msgid "Right highlight" msgstr "" -#: library/curses.rst:1428 +#: library/curses.rst:1431 msgid "Top highlight" msgstr "" -#: library/curses.rst:1430 +#: library/curses.rst:1433 msgid "Vertical highlight" msgstr "" -#: library/curses.rst:1433 +#: library/curses.rst:1436 msgid "``A_ITALIC`` was added." msgstr "" -#: library/curses.rst:1436 +#: library/curses.rst:1439 msgid "" "Several constants are available to extract corresponding attributes returned " "by some methods." msgstr "" -#: library/curses.rst:1440 +#: library/curses.rst:1443 msgid "Bit-mask" msgstr "" -#: library/curses.rst:1442 +#: library/curses.rst:1445 msgid "Bit-mask to extract attributes" msgstr "" -#: library/curses.rst:1445 +#: library/curses.rst:1448 msgid "Bit-mask to extract a character" msgstr "" -#: library/curses.rst:1448 +#: library/curses.rst:1451 msgid "Bit-mask to extract color-pair field information" msgstr "" -#: library/curses.rst:1452 +#: library/curses.rst:1455 msgid "" "Keys are referred to by integer constants with names starting with " "``KEY_``. The exact keycaps available are system dependent." msgstr "" -#: library/curses.rst:1458 +#: library/curses.rst:1461 msgid "Key constant" msgstr "" -#: library/curses.rst:1458 +#: library/curses.rst:1461 msgid "Key" msgstr "" -#: library/curses.rst:1460 +#: library/curses.rst:1463 msgid "Minimum key value" msgstr "" -#: library/curses.rst:1462 +#: library/curses.rst:1465 msgid "Break key (unreliable)" msgstr "" -#: library/curses.rst:1464 +#: library/curses.rst:1467 msgid "Down-arrow" msgstr "" -#: library/curses.rst:1466 +#: library/curses.rst:1469 msgid "Up-arrow" msgstr "" -#: library/curses.rst:1468 +#: library/curses.rst:1471 msgid "Left-arrow" msgstr "" -#: library/curses.rst:1470 +#: library/curses.rst:1473 msgid "Right-arrow" msgstr "" -#: library/curses.rst:1472 +#: library/curses.rst:1475 msgid "Home key (upward+left arrow)" msgstr "" -#: library/curses.rst:1474 +#: library/curses.rst:1477 msgid "Backspace (unreliable)" msgstr "" -#: library/curses.rst:1476 +#: library/curses.rst:1479 msgid "Function keys. Up to 64 function keys are supported." msgstr "" -#: library/curses.rst:1479 +#: library/curses.rst:1482 msgid "Value of function key *n*" msgstr "" -#: library/curses.rst:1481 +#: library/curses.rst:1484 msgid "Delete line" msgstr "" -#: library/curses.rst:1483 +#: library/curses.rst:1486 msgid "Insert line" msgstr "" -#: library/curses.rst:1485 +#: library/curses.rst:1488 msgid "Delete character" msgstr "" -#: library/curses.rst:1487 +#: library/curses.rst:1490 msgid "Insert char or enter insert mode" msgstr "" -#: library/curses.rst:1489 +#: library/curses.rst:1492 msgid "Exit insert char mode" msgstr "" -#: library/curses.rst:1491 +#: library/curses.rst:1494 msgid "Clear screen" msgstr "" -#: library/curses.rst:1493 +#: library/curses.rst:1496 msgid "Clear to end of screen" msgstr "" -#: library/curses.rst:1495 +#: library/curses.rst:1498 msgid "Clear to end of line" msgstr "" -#: library/curses.rst:1497 +#: library/curses.rst:1500 msgid "Scroll 1 line forward" msgstr "" -#: library/curses.rst:1499 +#: library/curses.rst:1502 msgid "Scroll 1 line backward (reverse)" msgstr "" -#: library/curses.rst:1501 +#: library/curses.rst:1504 msgid "Next page" msgstr "" -#: library/curses.rst:1503 +#: library/curses.rst:1506 msgid "Previous page" msgstr "" -#: library/curses.rst:1505 +#: library/curses.rst:1508 msgid "Set tab" msgstr "" -#: library/curses.rst:1507 +#: library/curses.rst:1510 msgid "Clear tab" msgstr "" -#: library/curses.rst:1509 +#: library/curses.rst:1512 msgid "Clear all tabs" msgstr "" -#: library/curses.rst:1511 +#: library/curses.rst:1514 msgid "Enter or send (unreliable)" msgstr "" -#: library/curses.rst:1513 +#: library/curses.rst:1516 msgid "Soft (partial) reset (unreliable)" msgstr "" -#: library/curses.rst:1515 +#: library/curses.rst:1518 msgid "Reset or hard reset (unreliable)" msgstr "" -#: library/curses.rst:1517 +#: library/curses.rst:1520 msgid "Print" msgstr "" -#: library/curses.rst:1519 +#: library/curses.rst:1522 msgid "Home down or bottom (lower left)" msgstr "" -#: library/curses.rst:1521 +#: library/curses.rst:1524 msgid "Upper left of keypad" msgstr "" -#: library/curses.rst:1523 +#: library/curses.rst:1526 msgid "Upper right of keypad" msgstr "" -#: library/curses.rst:1525 +#: library/curses.rst:1528 msgid "Center of keypad" msgstr "" -#: library/curses.rst:1527 +#: library/curses.rst:1530 msgid "Lower left of keypad" msgstr "" -#: library/curses.rst:1529 +#: library/curses.rst:1532 msgid "Lower right of keypad" msgstr "" -#: library/curses.rst:1531 +#: library/curses.rst:1534 msgid "Back tab" msgstr "" -#: library/curses.rst:1533 +#: library/curses.rst:1536 msgid "Beg (beginning)" msgstr "" -#: library/curses.rst:1535 +#: library/curses.rst:1538 msgid "Cancel" msgstr "" -#: library/curses.rst:1537 +#: library/curses.rst:1540 msgid "Close" msgstr "" -#: library/curses.rst:1539 +#: library/curses.rst:1542 msgid "Cmd (command)" msgstr "" -#: library/curses.rst:1541 +#: library/curses.rst:1544 msgid "Copy" msgstr "" -#: library/curses.rst:1543 +#: library/curses.rst:1546 msgid "Create" msgstr "" -#: library/curses.rst:1545 +#: library/curses.rst:1548 msgid "End" msgstr "" -#: library/curses.rst:1547 +#: library/curses.rst:1550 msgid "Exit" msgstr "" -#: library/curses.rst:1549 +#: library/curses.rst:1552 msgid "Find" msgstr "" -#: library/curses.rst:1551 +#: library/curses.rst:1554 msgid "Help" msgstr "" -#: library/curses.rst:1553 +#: library/curses.rst:1556 msgid "Mark" msgstr "" -#: library/curses.rst:1555 +#: library/curses.rst:1558 msgid "Message" msgstr "" -#: library/curses.rst:1557 +#: library/curses.rst:1560 msgid "Move" msgstr "" -#: library/curses.rst:1559 +#: library/curses.rst:1562 msgid "Next" msgstr "" -#: library/curses.rst:1561 +#: library/curses.rst:1564 msgid "Open" msgstr "" -#: library/curses.rst:1563 +#: library/curses.rst:1566 msgid "Options" msgstr "" -#: library/curses.rst:1565 +#: library/curses.rst:1568 msgid "Prev (previous)" msgstr "" -#: library/curses.rst:1567 +#: library/curses.rst:1570 msgid "Redo" msgstr "" -#: library/curses.rst:1569 +#: library/curses.rst:1572 msgid "Ref (reference)" msgstr "" -#: library/curses.rst:1571 +#: library/curses.rst:1574 msgid "Refresh" msgstr "" -#: library/curses.rst:1573 +#: library/curses.rst:1576 msgid "Replace" msgstr "" -#: library/curses.rst:1575 +#: library/curses.rst:1578 msgid "Restart" msgstr "" -#: library/curses.rst:1577 +#: library/curses.rst:1580 msgid "Resume" msgstr "" -#: library/curses.rst:1579 +#: library/curses.rst:1582 msgid "Save" msgstr "" -#: library/curses.rst:1581 +#: library/curses.rst:1584 msgid "Shifted Beg (beginning)" msgstr "" -#: library/curses.rst:1583 +#: library/curses.rst:1586 msgid "Shifted Cancel" msgstr "" -#: library/curses.rst:1585 +#: library/curses.rst:1588 msgid "Shifted Command" msgstr "" -#: library/curses.rst:1587 +#: library/curses.rst:1590 msgid "Shifted Copy" msgstr "" -#: library/curses.rst:1589 +#: library/curses.rst:1592 msgid "Shifted Create" msgstr "" -#: library/curses.rst:1591 +#: library/curses.rst:1594 msgid "Shifted Delete char" msgstr "" -#: library/curses.rst:1593 +#: library/curses.rst:1596 msgid "Shifted Delete line" msgstr "" -#: library/curses.rst:1595 +#: library/curses.rst:1598 msgid "Select" msgstr "" -#: library/curses.rst:1597 +#: library/curses.rst:1600 msgid "Shifted End" msgstr "" -#: library/curses.rst:1599 +#: library/curses.rst:1602 msgid "Shifted Clear line" msgstr "" -#: library/curses.rst:1601 +#: library/curses.rst:1604 msgid "Shifted Exit" msgstr "" -#: library/curses.rst:1603 +#: library/curses.rst:1606 msgid "Shifted Find" msgstr "" -#: library/curses.rst:1605 +#: library/curses.rst:1608 msgid "Shifted Help" msgstr "" -#: library/curses.rst:1607 +#: library/curses.rst:1610 msgid "Shifted Home" msgstr "" -#: library/curses.rst:1609 +#: library/curses.rst:1612 msgid "Shifted Input" msgstr "" -#: library/curses.rst:1611 +#: library/curses.rst:1614 msgid "Shifted Left arrow" msgstr "" -#: library/curses.rst:1613 +#: library/curses.rst:1616 msgid "Shifted Message" msgstr "" -#: library/curses.rst:1615 +#: library/curses.rst:1618 msgid "Shifted Move" msgstr "" -#: library/curses.rst:1617 +#: library/curses.rst:1620 msgid "Shifted Next" msgstr "" -#: library/curses.rst:1619 +#: library/curses.rst:1622 msgid "Shifted Options" msgstr "" -#: library/curses.rst:1621 +#: library/curses.rst:1624 msgid "Shifted Prev" msgstr "" -#: library/curses.rst:1623 +#: library/curses.rst:1626 msgid "Shifted Print" msgstr "" -#: library/curses.rst:1625 +#: library/curses.rst:1628 msgid "Shifted Redo" msgstr "" -#: library/curses.rst:1627 +#: library/curses.rst:1630 msgid "Shifted Replace" msgstr "" -#: library/curses.rst:1629 +#: library/curses.rst:1632 msgid "Shifted Right arrow" msgstr "" -#: library/curses.rst:1631 +#: library/curses.rst:1634 msgid "Shifted Resume" msgstr "" -#: library/curses.rst:1633 +#: library/curses.rst:1636 msgid "Shifted Save" msgstr "" -#: library/curses.rst:1635 +#: library/curses.rst:1638 msgid "Shifted Suspend" msgstr "" -#: library/curses.rst:1637 +#: library/curses.rst:1640 msgid "Shifted Undo" msgstr "" -#: library/curses.rst:1639 +#: library/curses.rst:1642 msgid "Suspend" msgstr "" -#: library/curses.rst:1641 +#: library/curses.rst:1644 msgid "Undo" msgstr "" -#: library/curses.rst:1643 +#: library/curses.rst:1646 msgid "Mouse event has occurred" msgstr "" -#: library/curses.rst:1645 +#: library/curses.rst:1648 msgid "Terminal resize event" msgstr "" -#: library/curses.rst:1647 +#: library/curses.rst:1650 msgid "Maximum key value" msgstr "" -#: library/curses.rst:1650 +#: library/curses.rst:1653 msgid "" "On VT100s and their software emulations, such as X terminal emulators, there " "are normally at least four function keys (:const:`KEY_F1 `, :const:" @@ -2051,63 +2059,63 @@ msgid "" "keypad mappings are standard:" msgstr "" -#: library/curses.rst:1659 +#: library/curses.rst:1662 msgid "Keycap" msgstr "" -#: library/curses.rst:1804 library/curses.rst:1928 +#: library/curses.rst:1807 library/curses.rst:1931 msgid "Constant" msgstr "" -#: library/curses.rst:1661 +#: library/curses.rst:1664 msgid ":kbd:`Insert`" msgstr "" -#: library/curses.rst:1661 +#: library/curses.rst:1664 msgid "KEY_IC" msgstr "" -#: library/curses.rst:1663 +#: library/curses.rst:1666 msgid ":kbd:`Delete`" msgstr "" -#: library/curses.rst:1663 +#: library/curses.rst:1666 msgid "KEY_DC" msgstr "" -#: library/curses.rst:1665 +#: library/curses.rst:1668 msgid ":kbd:`Home`" msgstr "" -#: library/curses.rst:1665 +#: library/curses.rst:1668 msgid "KEY_HOME" msgstr "" -#: library/curses.rst:1667 +#: library/curses.rst:1670 msgid ":kbd:`End`" msgstr "" -#: library/curses.rst:1667 +#: library/curses.rst:1670 msgid "KEY_END" msgstr "" -#: library/curses.rst:1669 +#: library/curses.rst:1672 msgid ":kbd:`Page Up`" msgstr "" -#: library/curses.rst:1669 +#: library/curses.rst:1672 msgid "KEY_PPAGE" msgstr "" -#: library/curses.rst:1671 +#: library/curses.rst:1674 msgid ":kbd:`Page Down`" msgstr "" -#: library/curses.rst:1671 +#: library/curses.rst:1674 msgid "KEY_NPAGE" msgstr "" -#: library/curses.rst:1676 +#: library/curses.rst:1679 msgid "" "The following table lists characters from the alternate character set. These " "are inherited from the VT100 terminal, and will generally be available on " @@ -2115,268 +2123,268 @@ msgid "" "available, curses falls back on a crude printable ASCII approximation." msgstr "" -#: library/curses.rst:1683 +#: library/curses.rst:1686 msgid "These are available only after :func:`initscr` has been called." msgstr "" -#: library/curses.rst:1686 +#: library/curses.rst:1689 msgid "ACS code" msgstr "" -#: library/curses.rst:1688 +#: library/curses.rst:1691 msgid "alternate name for upper right corner" msgstr "" -#: library/curses.rst:1690 +#: library/curses.rst:1693 msgid "solid square block" msgstr "" -#: library/curses.rst:1692 +#: library/curses.rst:1695 msgid "board of squares" msgstr "" -#: library/curses.rst:1694 +#: library/curses.rst:1697 msgid "alternate name for horizontal line" msgstr "" -#: library/curses.rst:1696 +#: library/curses.rst:1699 msgid "alternate name for upper left corner" msgstr "" -#: library/curses.rst:1698 +#: library/curses.rst:1701 msgid "alternate name for top tee" msgstr "" -#: library/curses.rst:1700 +#: library/curses.rst:1703 msgid "bottom tee" msgstr "" -#: library/curses.rst:1702 +#: library/curses.rst:1705 msgid "bullet" msgstr "" -#: library/curses.rst:1704 +#: library/curses.rst:1707 msgid "checker board (stipple)" msgstr "" -#: library/curses.rst:1706 +#: library/curses.rst:1709 msgid "arrow pointing down" msgstr "" -#: library/curses.rst:1708 +#: library/curses.rst:1711 msgid "degree symbol" msgstr "" -#: library/curses.rst:1710 +#: library/curses.rst:1713 msgid "diamond" msgstr "" -#: library/curses.rst:1712 +#: library/curses.rst:1715 msgid "greater-than-or-equal-to" msgstr "" -#: library/curses.rst:1714 +#: library/curses.rst:1717 msgid "horizontal line" msgstr "" -#: library/curses.rst:1716 +#: library/curses.rst:1719 msgid "lantern symbol" msgstr "" -#: library/curses.rst:1718 +#: library/curses.rst:1721 msgid "left arrow" msgstr "" -#: library/curses.rst:1720 +#: library/curses.rst:1723 msgid "less-than-or-equal-to" msgstr "" -#: library/curses.rst:1722 +#: library/curses.rst:1725 msgid "lower left-hand corner" msgstr "" -#: library/curses.rst:1724 +#: library/curses.rst:1727 msgid "lower right-hand corner" msgstr "" -#: library/curses.rst:1726 +#: library/curses.rst:1729 msgid "left tee" msgstr "" -#: library/curses.rst:1728 +#: library/curses.rst:1731 msgid "not-equal sign" msgstr "" -#: library/curses.rst:1730 +#: library/curses.rst:1733 msgid "letter pi" msgstr "" -#: library/curses.rst:1732 +#: library/curses.rst:1735 msgid "plus-or-minus sign" msgstr "" -#: library/curses.rst:1734 +#: library/curses.rst:1737 msgid "big plus sign" msgstr "" -#: library/curses.rst:1736 +#: library/curses.rst:1739 msgid "right arrow" msgstr "" -#: library/curses.rst:1738 +#: library/curses.rst:1741 msgid "right tee" msgstr "" -#: library/curses.rst:1740 +#: library/curses.rst:1743 msgid "scan line 1" msgstr "" -#: library/curses.rst:1742 +#: library/curses.rst:1745 msgid "scan line 3" msgstr "" -#: library/curses.rst:1744 +#: library/curses.rst:1747 msgid "scan line 7" msgstr "" -#: library/curses.rst:1746 +#: library/curses.rst:1749 msgid "scan line 9" msgstr "" -#: library/curses.rst:1748 +#: library/curses.rst:1751 msgid "alternate name for lower right corner" msgstr "" -#: library/curses.rst:1750 +#: library/curses.rst:1753 msgid "alternate name for vertical line" msgstr "" -#: library/curses.rst:1752 +#: library/curses.rst:1755 msgid "alternate name for right tee" msgstr "" -#: library/curses.rst:1754 +#: library/curses.rst:1757 msgid "alternate name for lower left corner" msgstr "" -#: library/curses.rst:1756 +#: library/curses.rst:1759 msgid "alternate name for bottom tee" msgstr "" -#: library/curses.rst:1758 +#: library/curses.rst:1761 msgid "alternate name for left tee" msgstr "" -#: library/curses.rst:1760 +#: library/curses.rst:1763 msgid "alternate name for crossover or big plus" msgstr "" -#: library/curses.rst:1762 +#: library/curses.rst:1765 msgid "pound sterling" msgstr "" -#: library/curses.rst:1764 +#: library/curses.rst:1767 msgid "top tee" msgstr "" -#: library/curses.rst:1766 +#: library/curses.rst:1769 msgid "up arrow" msgstr "" -#: library/curses.rst:1768 +#: library/curses.rst:1771 msgid "upper left corner" msgstr "" -#: library/curses.rst:1770 +#: library/curses.rst:1773 msgid "upper right corner" msgstr "" -#: library/curses.rst:1772 +#: library/curses.rst:1775 msgid "vertical line" msgstr "" -#: library/curses.rst:1775 +#: library/curses.rst:1778 msgid "" "The following table lists mouse button constants used by :meth:`getmouse`:" msgstr "" -#: library/curses.rst:1778 +#: library/curses.rst:1781 msgid "Mouse button constant" msgstr "" -#: library/curses.rst:1780 +#: library/curses.rst:1783 msgid "Mouse button *n* pressed" msgstr "" -#: library/curses.rst:1782 +#: library/curses.rst:1785 msgid "Mouse button *n* released" msgstr "" -#: library/curses.rst:1784 +#: library/curses.rst:1787 msgid "Mouse button *n* clicked" msgstr "" -#: library/curses.rst:1786 +#: library/curses.rst:1789 msgid "Mouse button *n* double clicked" msgstr "" -#: library/curses.rst:1788 +#: library/curses.rst:1791 msgid "Mouse button *n* triple clicked" msgstr "" -#: library/curses.rst:1790 +#: library/curses.rst:1793 msgid "Shift was down during button state change" msgstr "" -#: library/curses.rst:1794 +#: library/curses.rst:1797 msgid "Control was down during button state change" msgstr "" -#: library/curses.rst:1801 +#: library/curses.rst:1804 msgid "The following table lists the predefined colors:" msgstr "" -#: library/curses.rst:1804 +#: library/curses.rst:1807 msgid "Color" msgstr "" -#: library/curses.rst:1806 +#: library/curses.rst:1809 msgid "Black" msgstr "" -#: library/curses.rst:1808 +#: library/curses.rst:1811 msgid "Blue" msgstr "" -#: library/curses.rst:1810 +#: library/curses.rst:1813 msgid "Cyan (light greenish blue)" msgstr "" -#: library/curses.rst:1812 +#: library/curses.rst:1815 msgid "Green" msgstr "" -#: library/curses.rst:1814 +#: library/curses.rst:1817 msgid "Magenta (purplish red)" msgstr "" -#: library/curses.rst:1816 +#: library/curses.rst:1819 msgid "Red" msgstr "" -#: library/curses.rst:1818 +#: library/curses.rst:1821 msgid "White" msgstr "" -#: library/curses.rst:1820 +#: library/curses.rst:1823 msgid "Yellow" msgstr "" -#: library/curses.rst:1825 +#: library/curses.rst:1828 msgid ":mod:`curses.textpad` --- Text input widget for curses programs" msgstr "" -#: library/curses.rst:1833 +#: library/curses.rst:1836 msgid "" "The :mod:`curses.textpad` module provides a :class:`Textbox` class that " "handles elementary text editing in a curses window, supporting a set of " @@ -2386,11 +2394,11 @@ msgid "" "purposes." msgstr "" -#: library/curses.rst:1839 +#: library/curses.rst:1842 msgid "The module :mod:`curses.textpad` defines the following function:" msgstr "" -#: library/curses.rst:1844 +#: library/curses.rst:1847 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 " @@ -2402,15 +2410,15 @@ msgid "" "will be drawn with ASCII dashes, vertical bars, and plus signs." msgstr "" -#: library/curses.rst:1857 +#: library/curses.rst:1860 msgid "Textbox objects" msgstr "" -#: library/curses.rst:1859 +#: library/curses.rst:1862 msgid "You can instantiate a :class:`Textbox` object as follows:" msgstr "" -#: library/curses.rst:1864 +#: library/curses.rst:1867 msgid "" "Return a textbox widget object. The *win* argument should be a curses :ref:" "`window ` object in which the textbox is to be " @@ -2419,11 +2427,11 @@ msgid "" "instance's :attr:`stripspaces` flag is initially on." msgstr "" -#: library/curses.rst:1870 +#: library/curses.rst:1873 msgid ":class:`Textbox` objects have the following methods:" msgstr "" -#: library/curses.rst:1875 +#: library/curses.rst:1878 msgid "" "This is the entry point you will normally use. It accepts editing " "keystrokes until one of the termination keystrokes is entered. If " @@ -2434,167 +2442,167 @@ msgid "" "`stripspaces` attribute." msgstr "" -#: library/curses.rst:1886 +#: library/curses.rst:1889 msgid "" "Process a single command keystroke. Here are the supported special " "keystrokes:" msgstr "" -#: library/curses.rst:1928 +#: library/curses.rst:1931 msgid "Keystroke" msgstr "" -#: library/curses.rst:1890 +#: library/curses.rst:1893 msgid "Action" msgstr "" -#: library/curses.rst:1892 +#: library/curses.rst:1895 msgid ":kbd:`Control-A`" msgstr "" -#: library/curses.rst:1892 +#: library/curses.rst:1895 msgid "Go to left edge of window." msgstr "" -#: library/curses.rst:1930 +#: library/curses.rst:1933 msgid ":kbd:`Control-B`" msgstr "" -#: library/curses.rst:1894 +#: library/curses.rst:1897 msgid "Cursor left, wrapping to previous line if appropriate." msgstr "" -#: library/curses.rst:1897 +#: library/curses.rst:1900 msgid ":kbd:`Control-D`" msgstr "" -#: library/curses.rst:1897 +#: library/curses.rst:1900 msgid "Delete character under cursor." msgstr "" -#: library/curses.rst:1899 +#: library/curses.rst:1902 msgid ":kbd:`Control-E`" msgstr "" -#: library/curses.rst:1899 +#: library/curses.rst:1902 msgid "Go to right edge (stripspaces off) or end of line (stripspaces on)." msgstr "" -#: library/curses.rst:1932 +#: library/curses.rst:1935 msgid ":kbd:`Control-F`" msgstr "" -#: library/curses.rst:1902 +#: library/curses.rst:1905 msgid "Cursor right, wrapping to next line when appropriate." msgstr "" -#: library/curses.rst:1905 +#: library/curses.rst:1908 msgid ":kbd:`Control-G`" msgstr "" -#: library/curses.rst:1905 +#: library/curses.rst:1908 msgid "Terminate, returning the window contents." msgstr "" -#: library/curses.rst:1907 +#: library/curses.rst:1910 msgid ":kbd:`Control-H`" msgstr "" -#: library/curses.rst:1907 +#: library/curses.rst:1910 msgid "Delete character backward." msgstr "" -#: library/curses.rst:1909 +#: library/curses.rst:1912 msgid ":kbd:`Control-J`" msgstr "" -#: library/curses.rst:1909 +#: library/curses.rst:1912 msgid "Terminate if the window is 1 line, otherwise insert newline." msgstr "" -#: library/curses.rst:1912 +#: library/curses.rst:1915 msgid ":kbd:`Control-K`" msgstr "" -#: library/curses.rst:1912 +#: library/curses.rst:1915 msgid "If line is blank, delete it, otherwise clear to end of line." msgstr "" -#: library/curses.rst:1915 +#: library/curses.rst:1918 msgid ":kbd:`Control-L`" msgstr "" -#: library/curses.rst:1915 +#: library/curses.rst:1918 msgid "Refresh screen." msgstr "" -#: library/curses.rst:1936 +#: library/curses.rst:1939 msgid ":kbd:`Control-N`" msgstr "" -#: library/curses.rst:1917 +#: library/curses.rst:1920 msgid "Cursor down; move down one line." msgstr "" -#: library/curses.rst:1919 +#: library/curses.rst:1922 msgid ":kbd:`Control-O`" msgstr "" -#: library/curses.rst:1919 +#: library/curses.rst:1922 msgid "Insert a blank line at cursor location." msgstr "" -#: library/curses.rst:1934 +#: library/curses.rst:1937 msgid ":kbd:`Control-P`" msgstr "" -#: library/curses.rst:1921 +#: library/curses.rst:1924 msgid "Cursor up; move up one line." msgstr "" -#: library/curses.rst:1924 +#: library/curses.rst:1927 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 "" -#: library/curses.rst:1930 +#: library/curses.rst:1933 msgid ":const:`~curses.KEY_LEFT`" msgstr "" -#: library/curses.rst:1932 +#: library/curses.rst:1935 msgid ":const:`~curses.KEY_RIGHT`" msgstr "" -#: library/curses.rst:1934 +#: library/curses.rst:1937 msgid ":const:`~curses.KEY_UP`" msgstr "" -#: library/curses.rst:1936 +#: library/curses.rst:1939 msgid ":const:`~curses.KEY_DOWN`" msgstr "" -#: library/curses.rst:1938 +#: library/curses.rst:1941 msgid ":const:`~curses.KEY_BACKSPACE`" msgstr "" -#: library/curses.rst:1938 +#: library/curses.rst:1941 msgid ":kbd:`Control-h`" msgstr "" -#: library/curses.rst:1941 +#: library/curses.rst:1944 msgid "" "All other keystrokes are treated as a command to insert the given character " "and move right (with line wrapping)." msgstr "" -#: library/curses.rst:1947 +#: library/curses.rst:1950 msgid "" "Return the window contents as a string; whether blanks in the window are " "included is affected by the :attr:`stripspaces` member." msgstr "" -#: library/curses.rst:1953 +#: library/curses.rst:1956 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 " diff --git a/library/custominterp.po b/library/custominterp.po index 4766f321..c3e1564b 100644 --- a/library/custominterp.po +++ b/library/custominterp.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/dataclasses.po b/library/dataclasses.po index 7caf98a8..d53a7067 100644 --- a/library/dataclasses.po +++ b/library/dataclasses.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -247,12 +247,17 @@ msgstr "" #: library/dataclasses.rst:163 msgid "" "*frozen*: If true (the default is ``False``), assigning to fields will " -"generate an exception. This emulates read-only frozen instances. If :meth:" -"`~object.__setattr__` or :meth:`~object.__delattr__` is defined in the " -"class, then :exc:`TypeError` is raised. See the discussion below." +"generate an exception. This emulates read-only frozen instances. See the :" +"ref:`discussion ` below." msgstr "" -#: library/dataclasses.rst:168 +#: library/dataclasses.rst:167 +msgid "" +"If :meth:`~object.__setattr__` or :meth:`~object.__delattr__` is defined in " +"the class and *frozen* is true, then :exc:`TypeError` is raised." +msgstr "" + +#: library/dataclasses.rst:170 msgid "" "*match_args*: If true (the default is ``True``), the :attr:`~object." "__match_args__` tuple will be created from the list of non keyword-only " @@ -262,7 +267,7 @@ msgid "" "__match_args__` will not be generated." msgstr "" -#: library/dataclasses.rst:177 +#: library/dataclasses.rst:179 msgid "" "*kw_only*: If true (the default value is ``False``), then all fields will be " "marked as keyword-only. If a field is marked as keyword-only, then the only " @@ -272,11 +277,11 @@ msgid "" "the :const:`KW_ONLY` section." msgstr "" -#: library/dataclasses.rst:185 +#: library/dataclasses.rst:187 msgid "Keyword-only fields are not included in :attr:`!__match_args__`." msgstr "" -#: library/dataclasses.rst:189 +#: library/dataclasses.rst:191 msgid "" "*slots*: If true (the default is ``False``), :attr:`~object.__slots__` " "attribute will be generated and new class will be returned instead of the " @@ -284,7 +289,7 @@ msgid "" "exc:`TypeError` is raised." msgstr "" -#: library/dataclasses.rst:195 +#: library/dataclasses.rst:197 msgid "" "Passing parameters to a base class :meth:`~object.__init_subclass__` when " "using ``slots=True`` will result in a :exc:`TypeError`. Either use " @@ -292,7 +297,7 @@ msgid "" "workaround. See :gh:`91126` for full details." msgstr "" -#: library/dataclasses.rst:203 +#: library/dataclasses.rst:205 msgid "" "If a field name is already included in the :attr:`!__slots__` of a base " "class, it will not be included in the generated :attr:`!__slots__` to " @@ -302,7 +307,7 @@ msgid "" "`!__slots__` may be any iterable, but *not* an iterator." msgstr "" -#: library/dataclasses.rst:213 +#: library/dataclasses.rst:215 msgid "" "*weakref_slot*: If true (the default is ``False``), add a slot named " "\"__weakref__\", which is required to make an instance :func:`weakref-able " @@ -310,13 +315,13 @@ msgid "" "specifying ``slots=True``." msgstr "" -#: library/dataclasses.rst:221 +#: library/dataclasses.rst:223 msgid "" "``field``\\s may optionally specify a default value, using normal Python " "syntax::" msgstr "" -#: library/dataclasses.rst:224 +#: library/dataclasses.rst:226 msgid "" "@dataclass\n" "class C:\n" @@ -324,24 +329,24 @@ msgid "" " b: int = 0 # assign a default value for 'b'" msgstr "" -#: library/dataclasses.rst:229 +#: library/dataclasses.rst:231 msgid "" "In this example, both :attr:`!a` and :attr:`!b` will be included in the " "added :meth:`~object.__init__` method, which will be defined as::" msgstr "" -#: library/dataclasses.rst:232 +#: library/dataclasses.rst:234 msgid "def __init__(self, a: int, b: int = 0):" msgstr "" -#: library/dataclasses.rst:234 +#: library/dataclasses.rst:236 msgid "" ":exc:`TypeError` will be raised if a field without a default value follows a " "field with a default value. This is true whether this occurs in a single " "class, or as a result of class inheritance." msgstr "" -#: library/dataclasses.rst:240 +#: library/dataclasses.rst:242 msgid "" "For common and simple use cases, no other functionality is required. There " "are, however, some dataclass features that require additional per-field " @@ -350,7 +355,7 @@ msgid "" "function. For example::" msgstr "" -#: library/dataclasses.rst:246 +#: library/dataclasses.rst:248 msgid "" "@dataclass\n" "class C:\n" @@ -360,7 +365,7 @@ msgid "" "c.mylist += [1, 2, 3]" msgstr "" -#: library/dataclasses.rst:253 +#: library/dataclasses.rst:255 msgid "" "As shown above, the :const:`MISSING` value is a sentinel object used to " "detect if some parameters are provided by the user. This sentinel is used " @@ -368,18 +373,18 @@ msgid "" "meaning. No code should directly use the :const:`MISSING` value." msgstr "" -#: library/dataclasses.rst:258 +#: library/dataclasses.rst:260 msgid "The parameters to :func:`!field` are:" msgstr "" -#: library/dataclasses.rst:260 +#: library/dataclasses.rst:262 msgid "" "*default*: If provided, this will be the default value for this field. This " "is needed because the :func:`!field` call itself replaces the normal " "position of the default value." msgstr "" -#: library/dataclasses.rst:264 +#: library/dataclasses.rst:266 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 " @@ -388,19 +393,19 @@ msgid "" "*default_factory*." msgstr "" -#: library/dataclasses.rst:270 +#: library/dataclasses.rst:272 msgid "" "*init*: If true (the default), this field is included as a parameter to the " "generated :meth:`~object.__init__` method." msgstr "" -#: library/dataclasses.rst:273 +#: library/dataclasses.rst:275 msgid "" "*repr*: If true (the default), this field is included in the string returned " "by the generated :meth:`~object.__repr__` method." msgstr "" -#: library/dataclasses.rst:276 +#: library/dataclasses.rst:278 msgid "" "*hash*: This can be a bool or ``None``. If true, this field is included in " "the generated :meth:`~object.__hash__` method. If false, this field is " @@ -411,7 +416,7 @@ msgid "" "discouraged." msgstr "" -#: library/dataclasses.rst:284 +#: library/dataclasses.rst:286 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 " @@ -420,14 +425,14 @@ msgid "" "used for comparisons." msgstr "" -#: library/dataclasses.rst:290 +#: library/dataclasses.rst:292 msgid "" "*compare*: If true (the default), this field is included in the generated " "equality and comparison methods (:meth:`~object.__eq__`, :meth:`~object." "__gt__`, et al.)." msgstr "" -#: library/dataclasses.rst:294 +#: library/dataclasses.rst:296 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 " @@ -437,32 +442,32 @@ msgid "" "namespace in the metadata." msgstr "" -#: library/dataclasses.rst:302 +#: library/dataclasses.rst:304 msgid "" "*kw_only*: If true, this field will be marked as keyword-only. This is used " "when the generated :meth:`~object.__init__` method's parameters are computed." msgstr "" -#: library/dataclasses.rst:306 +#: library/dataclasses.rst:308 msgid "Keyword-only fields are also not included in :attr:`!__match_args__`." msgstr "" -#: library/dataclasses.rst:310 +#: library/dataclasses.rst:312 msgid "*doc*: optional docstring for this field." msgstr "" -#: library/dataclasses.rst:314 +#: library/dataclasses.rst:316 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 *default* is not 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::" +"will be deleted. The intent is that after the :deco:`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 "" -#: library/dataclasses.rst:323 +#: library/dataclasses.rst:325 msgid "" "@dataclass\n" "class C:\n" @@ -472,14 +477,14 @@ msgid "" " t: int = 20" msgstr "" -#: library/dataclasses.rst:330 +#: library/dataclasses.rst:332 msgid "" "The class attribute :attr:`!C.z` will be ``10``, the class attribute :attr:`!" "C.t` will be ``20``, and the class attributes :attr:`!C.x` and :attr:`!C.y` " "will not be set." msgstr "" -#: library/dataclasses.rst:336 +#: library/dataclasses.rst:338 msgid "" ":class:`!Field` objects describe each defined field. These objects are " "created internally, and are returned by the :func:`fields` module-level " @@ -487,28 +492,28 @@ msgid "" "directly. Its documented attributes are:" msgstr "" -#: library/dataclasses.rst:341 +#: library/dataclasses.rst:343 msgid ":attr:`!name`: The name of the field." msgstr "" -#: library/dataclasses.rst:342 +#: library/dataclasses.rst:344 msgid ":attr:`!type`: The type of the field." msgstr "" -#: library/dataclasses.rst:343 +#: library/dataclasses.rst:345 msgid "" ":attr:`!default`, :attr:`!default_factory`, :attr:`!init`, :attr:`!repr`, :" "attr:`!hash`, :attr:`!compare`, :attr:`!metadata`, and :attr:`!kw_only` have " "the identical meaning and values as they do in the :func:`field` function." msgstr "" -#: library/dataclasses.rst:347 +#: library/dataclasses.rst:349 msgid "" "Other attributes may exist, but they are private and must not be inspected " "or relied on." msgstr "" -#: library/dataclasses.rst:352 +#: library/dataclasses.rst:354 msgid "" "``InitVar[T]`` type annotations describe variables that are :ref:`init-only " "`. Fields annotated with :class:`!InitVar` " @@ -517,7 +522,7 @@ msgid "" "meth:`~object.__init__` and an optional :meth:`__post_init__`." msgstr "" -#: library/dataclasses.rst:361 +#: library/dataclasses.rst:363 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. " @@ -525,7 +530,7 @@ msgid "" "not return pseudo-fields which are ``ClassVar`` or ``InitVar``." msgstr "" -#: library/dataclasses.rst:368 +#: library/dataclasses.rst:370 msgid "" "Converts the dataclass *obj* to a dict (by using the factory function " "*dict_factory*). Each dataclass is converted to a dict of its fields, as " @@ -533,11 +538,11 @@ msgid "" "into. Other objects are copied with :func:`copy.deepcopy`." msgstr "" -#: library/dataclasses.rst:374 +#: library/dataclasses.rst:376 msgid "Example of using :func:`!asdict` on nested dataclasses::" msgstr "" -#: library/dataclasses.rst:376 +#: library/dataclasses.rst:378 msgid "" "@dataclass\n" "class Point:\n" @@ -555,20 +560,20 @@ msgid "" "assert asdict(c) == {'mylist': [{'x': 0, 'y': 0}, {'x': 10, 'y': 4}]}" msgstr "" -#: library/dataclasses.rst:411 +#: library/dataclasses.rst:413 msgid "To create a shallow copy, the following workaround may be used::" msgstr "" -#: library/dataclasses.rst:393 +#: library/dataclasses.rst:395 msgid "{field.name: getattr(obj, field.name) for field in fields(obj)}" msgstr "" -#: library/dataclasses.rst:395 +#: library/dataclasses.rst:397 msgid "" ":func:`!asdict` raises :exc:`TypeError` if *obj* is not a dataclass instance." msgstr "" -#: library/dataclasses.rst:400 +#: library/dataclasses.rst:402 msgid "" "Converts the dataclass *obj* to a tuple (by using the factory function " "*tuple_factory*). Each dataclass is converted to a tuple of its field " @@ -576,27 +581,27 @@ msgid "" "objects are copied with :func:`copy.deepcopy`." msgstr "" -#: library/dataclasses.rst:406 +#: library/dataclasses.rst:408 msgid "Continuing from the previous example::" msgstr "" -#: library/dataclasses.rst:408 +#: library/dataclasses.rst:410 msgid "" "assert astuple(p) == (10, 20)\n" "assert astuple(c) == ([(0, 0), (10, 4)],)" msgstr "" -#: library/dataclasses.rst:413 +#: library/dataclasses.rst:415 msgid "tuple(getattr(obj, field.name) for field in dataclasses.fields(obj))" msgstr "" -#: library/dataclasses.rst:415 +#: library/dataclasses.rst:417 msgid "" ":func:`!astuple` raises :exc:`TypeError` if *obj* is not a dataclass " "instance." msgstr "" -#: library/dataclasses.rst:420 +#: library/dataclasses.rst:422 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 " @@ -604,33 +609,33 @@ msgid "" "``name``, ``(name, type)``, or ``(name, type, Field)``. If just ``name`` is " "supplied, :data:`typing.Any` is used for ``type``. The values of *init*, " "*repr*, *eq*, *order*, *unsafe_hash*, *frozen*, *match_args*, *kw_only*, " -"*slots*, and *weakref_slot* have the same meaning as they do in :func:" -"`@dataclass `." +"*slots*, and *weakref_slot* have the same meaning as they do in :deco:" +"`dataclass`." msgstr "" -#: library/dataclasses.rst:430 +#: library/dataclasses.rst:432 msgid "" "If *module* is defined, the :attr:`!__module__` attribute of the dataclass " "is set to that value. By default, it is set to the module name of the caller." msgstr "" -#: library/dataclasses.rst:434 +#: library/dataclasses.rst:436 msgid "" "The *decorator* parameter is a callable that will be used to create the " "dataclass. It should take the class object as a first argument and the same " -"keyword arguments as :func:`@dataclass `. By default, the :func:" -"`@dataclass ` function is used." +"keyword arguments as :deco:`dataclass`. By default, the :deco:`dataclass` " +"function is used." msgstr "" -#: library/dataclasses.rst:439 +#: library/dataclasses.rst:441 msgid "" "This function is not strictly required, because any Python mechanism for " -"creating a new class with :attr:`!__annotations__` can then apply the :func:" -"`@dataclass ` function to convert that class to a dataclass. " -"This function is provided as a convenience. For example::" +"creating a new class with :attr:`~object.__annotations__` can then apply " +"the :deco:`dataclass` function to convert that class to a dataclass. This " +"function is provided as a convenience. For example::" msgstr "" -#: library/dataclasses.rst:445 +#: library/dataclasses.rst:447 msgid "" "C = make_dataclass('C',\n" " [('x', int),\n" @@ -639,11 +644,11 @@ msgid "" " namespace={'add_one': lambda self: self.x + 1})" msgstr "" -#: library/dataclasses.rst:451 +#: library/dataclasses.rst:453 msgid "Is equivalent to::" msgstr "" -#: library/dataclasses.rst:453 +#: library/dataclasses.rst:455 msgid "" "@dataclass\n" "class C:\n" @@ -655,11 +660,11 @@ msgid "" " return self.x + 1" msgstr "" -#: library/dataclasses.rst:462 +#: library/dataclasses.rst:464 msgid "Added the *decorator* parameter." msgstr "" -#: library/dataclasses.rst:467 +#: library/dataclasses.rst:469 msgid "" "Creates a new object of the same type as *obj*, replacing fields with values " "from *changes*. If *obj* is not a Data Class, raises :exc:`TypeError`. If " @@ -667,27 +672,27 @@ msgid "" "`TypeError`." msgstr "" -#: library/dataclasses.rst:472 +#: library/dataclasses.rst:474 msgid "" "The newly returned object is created by calling the :meth:`~object.__init__` " "method of the dataclass. This ensures that :meth:`__post_init__`, if " "present, is also called." msgstr "" -#: library/dataclasses.rst:476 +#: library/dataclasses.rst:478 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 "" -#: library/dataclasses.rst:480 +#: library/dataclasses.rst:482 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 "" -#: library/dataclasses.rst:484 +#: library/dataclasses.rst:486 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 " @@ -698,36 +703,36 @@ msgid "" "instance copying." msgstr "" -#: library/dataclasses.rst:493 +#: library/dataclasses.rst:495 msgid "" "Dataclass instances are also supported by generic function :func:`copy." "replace`." msgstr "" -#: library/dataclasses.rst:497 +#: library/dataclasses.rst:499 msgid "" "Return ``True`` if its parameter is a dataclass (including subclasses of a " "dataclass) or an instance of one, otherwise return ``False``." msgstr "" -#: library/dataclasses.rst:500 +#: library/dataclasses.rst:502 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 "" -#: library/dataclasses.rst:504 +#: library/dataclasses.rst:506 msgid "" "def is_dataclass_instance(obj):\n" " return is_dataclass(obj) and not isinstance(obj, type)" msgstr "" -#: library/dataclasses.rst:509 +#: library/dataclasses.rst:511 msgid "A sentinel value signifying a missing default or default_factory." msgstr "" -#: library/dataclasses.rst:513 +#: library/dataclasses.rst:515 msgid "" "A sentinel value used as a type annotation. Any fields after a pseudo-field " "with the type of :const:`!KW_ONLY` are marked as keyword-only fields. Note " @@ -738,13 +743,13 @@ msgid "" "the class is instantiated." msgstr "" -#: library/dataclasses.rst:522 +#: library/dataclasses.rst:524 msgid "" "In this example, the fields ``y`` and ``z`` will be marked as keyword-only " "fields::" msgstr "" -#: library/dataclasses.rst:524 +#: library/dataclasses.rst:526 msgid "" "@dataclass\n" "class Point:\n" @@ -756,24 +761,24 @@ msgid "" "p = Point(0, y=1.5, z=2.0)" msgstr "" -#: library/dataclasses.rst:533 +#: library/dataclasses.rst:535 msgid "" "In a single dataclass, it is an error to specify more than one field whose " "type is :const:`!KW_ONLY`." msgstr "" -#: library/dataclasses.rst:540 +#: library/dataclasses.rst:542 msgid "" "Raised when an implicitly defined :meth:`~object.__setattr__` or :meth:" "`~object.__delattr__` is called on a dataclass which was defined with " "``frozen=True``. It is a subclass of :exc:`AttributeError`." msgstr "" -#: library/dataclasses.rst:547 +#: library/dataclasses.rst:549 msgid "Post-init processing" msgstr "" -#: library/dataclasses.rst:551 +#: library/dataclasses.rst:553 msgid "" "When defined on the class, it will be called by the generated :meth:`~object." "__init__`, normally as :meth:`!self.__post_init__`. However, if any " @@ -783,13 +788,13 @@ msgid "" "automatically be called." msgstr "" -#: library/dataclasses.rst:558 +#: library/dataclasses.rst:560 msgid "" "Among other uses, this allows for initializing field values that depend on " "one or more other fields. For example::" msgstr "" -#: library/dataclasses.rst:561 +#: library/dataclasses.rst:563 msgid "" "@dataclass\n" "class C:\n" @@ -801,15 +806,15 @@ msgid "" " self.c = self.a + self.b" msgstr "" -#: library/dataclasses.rst:570 +#: library/dataclasses.rst:572 msgid "" -"The :meth:`~object.__init__` method generated by :func:`@dataclass " -"` does not call base class :meth:`!__init__` methods. If the base " -"class has an :meth:`!__init__` method that has to be called, it is common to " -"call this method in a :meth:`__post_init__` method::" +"The :meth:`~object.__init__` method generated by :deco:`dataclass` does not " +"call base class :meth:`!__init__` methods. If the base class has an :meth:`!" +"__init__` method that has to be called, it is common to call this method in " +"a :meth:`__post_init__` method::" msgstr "" -#: library/dataclasses.rst:575 +#: library/dataclasses.rst:577 msgid "" "class Rectangle:\n" " def __init__(self, height, width):\n" @@ -824,59 +829,57 @@ msgid "" " super().__init__(self.side, self.side)" msgstr "" -#: library/dataclasses.rst:587 +#: library/dataclasses.rst:589 msgid "" "Note, however, that in general the dataclass-generated :meth:`!__init__` " "methods don't need to be called, since the derived dataclass will take care " "of initializing all fields of any base class that is a dataclass itself." msgstr "" -#: library/dataclasses.rst:591 +#: library/dataclasses.rst:593 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 "" -#: library/dataclasses.rst:598 +#: library/dataclasses.rst:600 msgid "Class variables" msgstr "" -#: library/dataclasses.rst:600 +#: library/dataclasses.rst:602 msgid "" -"One of the few 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 :data:`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." +"One of the few places where :deco:`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 :data:`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 "" -#: library/dataclasses.rst:611 +#: library/dataclasses.rst:613 msgid "Init-only variables" msgstr "" -#: library/dataclasses.rst:613 +#: library/dataclasses.rst:615 msgid "" -"Another 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 :class:`InitVar`. If a " -"field is an :class:`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:`~object.__init__` method, and are passed to the " -"optional :meth:`__post_init__` method. They are not otherwise used by " -"dataclasses." +"Another place where :deco:`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 :class:`InitVar`. If a field is an :class:" +"`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:" +"`~object.__init__` method, and are passed to the optional :meth:" +"`__post_init__` method. They are not otherwise used by dataclasses." msgstr "" -#: library/dataclasses.rst:623 +#: library/dataclasses.rst:625 msgid "" "For example, suppose a field will be initialized from a database, if a value " "is not provided when creating the class::" msgstr "" -#: library/dataclasses.rst:626 +#: library/dataclasses.rst:628 msgid "" "@dataclass\n" "class C:\n" @@ -891,49 +894,49 @@ msgid "" "c = C(10, database=my_database)" msgstr "" -#: library/dataclasses.rst:638 +#: library/dataclasses.rst:640 msgid "" "In this case, :func:`fields` will return :class:`Field` objects for :attr:`!" "i` and :attr:`!j`, but not for :attr:`!database`." msgstr "" -#: library/dataclasses.rst:644 +#: library/dataclasses.rst:646 msgid "Frozen instances" msgstr "" -#: library/dataclasses.rst:646 +#: library/dataclasses.rst:648 msgid "" "It is not possible to create truly immutable Python objects. However, by " -"passing ``frozen=True`` to the :func:`@dataclass ` decorator you " -"can emulate immutability. In that case, dataclasses will add :meth:`~object." +"passing ``frozen=True`` to the :deco:`dataclass` decorator you can emulate " +"immutability. In that case, dataclasses will add :meth:`~object." "__setattr__` and :meth:`~object.__delattr__` methods to the class. These " "methods will raise a :exc:`FrozenInstanceError` when invoked." msgstr "" -#: library/dataclasses.rst:652 +#: library/dataclasses.rst:654 msgid "" "There is a tiny performance penalty when using ``frozen=True``: :meth:" "`~object.__init__` cannot use simple assignment to initialize fields, and " "must use :meth:`!object.__setattr__`." msgstr "" -#: library/dataclasses.rst:661 +#: library/dataclasses.rst:663 msgid "Inheritance" msgstr "" -#: library/dataclasses.rst:663 +#: library/dataclasses.rst:665 msgid "" -"When the dataclass is being created by the :func:`@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::" +"When the dataclass is being created by the :deco:`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 "" -#: library/dataclasses.rst:673 +#: library/dataclasses.rst:675 msgid "" "@dataclass\n" "class Base:\n" @@ -946,28 +949,28 @@ msgid "" " x: int = 15" msgstr "" -#: library/dataclasses.rst:683 +#: library/dataclasses.rst:685 msgid "" "The final list of fields is, in order, :attr:`!x`, :attr:`!y`, :attr:`!z`. " "The final type of :attr:`!x` is :class:`int`, as specified in class :class:`!" "C`." msgstr "" -#: library/dataclasses.rst:686 +#: library/dataclasses.rst:688 msgid "" "The generated :meth:`~object.__init__` method for :class:`!C` will look " "like::" msgstr "" -#: library/dataclasses.rst:688 +#: library/dataclasses.rst:690 msgid "def __init__(self, x: int = 15, y: int = 0, z: int = 10):" msgstr "" -#: library/dataclasses.rst:691 +#: library/dataclasses.rst:693 msgid "Re-ordering of keyword-only parameters in :meth:`!__init__`" msgstr "" -#: library/dataclasses.rst:693 +#: library/dataclasses.rst:695 msgid "" "After the parameters needed for :meth:`~object.__init__` are computed, any " "keyword-only parameters are moved to come after all regular (non-keyword-" @@ -975,14 +978,14 @@ msgid "" "implemented in Python: they must come after non-keyword-only parameters." msgstr "" -#: library/dataclasses.rst:699 +#: library/dataclasses.rst:701 msgid "" "In this example, :attr:`!Base.y`, :attr:`!Base.w`, and :attr:`!D.t` are " "keyword-only fields, and :attr:`!Base.x` and :attr:`!D.z` are regular " "fields::" msgstr "" -#: library/dataclasses.rst:702 +#: library/dataclasses.rst:704 msgid "" "@dataclass\n" "class Base:\n" @@ -997,45 +1000,45 @@ msgid "" " t: int = field(kw_only=True, default=0)" msgstr "" -#: library/dataclasses.rst:714 +#: library/dataclasses.rst:716 msgid "The generated :meth:`!__init__` method for :class:`!D` will look like::" msgstr "" -#: library/dataclasses.rst:716 +#: library/dataclasses.rst:718 msgid "" "def __init__(self, x: Any = 15.0, z: int = 10, *, y: int = 0, w: int = 1, t: " "int = 0):" msgstr "" -#: library/dataclasses.rst:718 +#: library/dataclasses.rst:720 msgid "" "Note that the parameters have been re-ordered from how they appear in the " "list of fields: parameters derived from regular fields are followed by " "parameters derived from keyword-only fields." msgstr "" -#: library/dataclasses.rst:722 +#: library/dataclasses.rst:724 msgid "" "The relative ordering of keyword-only parameters is maintained in the re-" "ordered :meth:`!__init__` parameter list." msgstr "" -#: library/dataclasses.rst:727 +#: library/dataclasses.rst:729 msgid "Default factory functions" msgstr "" -#: library/dataclasses.rst:729 +#: library/dataclasses.rst:731 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 "" -#: library/dataclasses.rst:733 +#: library/dataclasses.rst:735 msgid "mylist: list = field(default_factory=list)" msgstr "" -#: library/dataclasses.rst:735 +#: library/dataclasses.rst:737 msgid "" "If a field is excluded from :meth:`~object.__init__` (using ``init=False``) " "and the field also specifies *default_factory*, then the default factory " @@ -1044,17 +1047,17 @@ msgid "" "initial value." msgstr "" -#: library/dataclasses.rst:742 +#: library/dataclasses.rst:744 msgid "Mutable default values" msgstr "" -#: library/dataclasses.rst:744 +#: library/dataclasses.rst:746 msgid "" "Python stores default member variable values in class attributes. Consider " "this example, not using dataclasses::" msgstr "" -#: library/dataclasses.rst:747 +#: library/dataclasses.rst:749 msgid "" "class C:\n" " x = []\n" @@ -1069,17 +1072,17 @@ msgid "" "assert o1.x is o2.x" msgstr "" -#: library/dataclasses.rst:759 +#: library/dataclasses.rst:761 msgid "" "Note that the two instances of class :class:`!C` share the same class " "variable :attr:`!x`, as expected." msgstr "" -#: library/dataclasses.rst:762 +#: library/dataclasses.rst:764 msgid "Using dataclasses, *if* this code was valid::" msgstr "" -#: library/dataclasses.rst:764 +#: library/dataclasses.rst:766 msgid "" "@dataclass\n" "class D:\n" @@ -1088,11 +1091,11 @@ msgid "" " self.x.append(element)" msgstr "" -#: library/dataclasses.rst:770 +#: library/dataclasses.rst:772 msgid "it would generate code similar to::" msgstr "" -#: library/dataclasses.rst:772 +#: library/dataclasses.rst:774 msgid "" "class D:\n" " x = []\n" @@ -1104,26 +1107,26 @@ msgid "" "assert D().x is D().x" msgstr "" -#: library/dataclasses.rst:781 +#: library/dataclasses.rst:783 msgid "" "This has the same issue as the original example using class :class:`!C`. " "That is, two instances of class :class:`!D` that do not specify a value for :" "attr:`!x` when creating a class instance will share the same copy of :attr:`!" "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, the :func:`@dataclass ` decorator will " -"raise a :exc:`ValueError` if it detects an unhashable default parameter. " -"The assumption is that if a value is unhashable, it is mutable. This is a " -"partial solution, but it does protect against many common errors." +"this condition. Instead, the :deco:`dataclass` decorator will raise a :exc:" +"`ValueError` if it detects an unhashable default parameter. The assumption " +"is that if a value is unhashable, it is mutable. This is a partial " +"solution, but it does protect against many common errors." msgstr "" -#: library/dataclasses.rst:792 +#: library/dataclasses.rst:794 msgid "" "Using default factory functions is a way to create new instances of mutable " "types as default values for fields::" msgstr "" -#: library/dataclasses.rst:795 +#: library/dataclasses.rst:797 msgid "" "@dataclass\n" "class D:\n" @@ -1132,48 +1135,48 @@ msgid "" "assert D().x is not D().x" msgstr "" -#: library/dataclasses.rst:801 +#: library/dataclasses.rst:803 msgid "" "Instead of looking for and disallowing objects of type :class:`list`, :class:" "`dict`, or :class:`set`, unhashable objects are now not allowed as default " "values. Unhashability is used to approximate mutability." msgstr "" -#: library/dataclasses.rst:808 +#: library/dataclasses.rst:810 msgid "Descriptor-typed fields" msgstr "" -#: library/dataclasses.rst:810 +#: library/dataclasses.rst:812 msgid "" "Fields that are assigned :ref:`descriptor objects ` as their " "default value have the following special behaviors:" msgstr "" -#: library/dataclasses.rst:813 +#: library/dataclasses.rst:815 msgid "" "The value for the field passed to the dataclass's :meth:`~object.__init__` " "method is passed to the descriptor's :meth:`~object.__set__` method rather " "than overwriting the descriptor object." msgstr "" -#: library/dataclasses.rst:817 +#: library/dataclasses.rst:819 msgid "" "Similarly, when getting or setting the field, the descriptor's :meth:" "`~object.__get__` or :meth:`!__set__` method is called rather than returning " "or overwriting the descriptor object." msgstr "" -#: library/dataclasses.rst:821 +#: library/dataclasses.rst:823 msgid "" -"To determine whether a field contains a default value, :func:`@dataclass " -"` will call the descriptor's :meth:`!__get__` method using its " -"class access form: ``descriptor.__get__(obj=None, type=cls)``. If the " -"descriptor returns a value in this case, it will be used as the field's " -"default. On the other hand, if the descriptor raises :exc:`AttributeError` " -"in this situation, no default value will be provided for the field." +"To determine whether a field contains a default value, :deco:`dataclass` " +"will call the descriptor's :meth:`!__get__` method using its class access " +"form: ``descriptor.__get__(obj=None, type=cls)``. If the descriptor returns " +"a value in this case, it will be used as the field's default. On the other " +"hand, if the descriptor raises :exc:`AttributeError` in this situation, no " +"default value will be provided for the field." msgstr "" -#: library/dataclasses.rst:831 +#: library/dataclasses.rst:833 msgid "" "class IntConversionDescriptor:\n" " def __init__(self, *, default):\n" @@ -1202,7 +1205,7 @@ msgid "" "print(i.quantity_on_hand) # 2" msgstr "" -#: library/dataclasses.rst:856 +#: library/dataclasses.rst:858 msgid "" "Note that if a field is annotated with a descriptor type, but is not " "assigned a descriptor object as its default value, the field will act like a " diff --git a/library/datatypes.po b/library/datatypes.po index 6cdfccb5..e851e78d 100644 --- a/library/datatypes.po +++ b/library/datatypes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/datetime.po b/library/datetime.po index 543e0c7a..e2a7ec80 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/dbm.po b/library/dbm.po index cf43d730..4c7fa03f 100644 --- a/library/dbm.po +++ b/library/dbm.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -81,7 +81,7 @@ msgid "" "``'dbm.gnu'``" msgstr "" -#: library/dbm.rst:250 library/dbm.rst:448 +#: library/dbm.rst:270 library/dbm.rst:471 msgid "*filename* accepts a :term:`path-like object`." msgstr "" @@ -101,7 +101,7 @@ msgid "" "imported is used." msgstr "" -#: library/dbm.rst:222 +#: library/dbm.rst:242 msgid "The database file to open." msgstr "" @@ -112,29 +112,29 @@ msgid "" "the first submodule listed above that can be imported is used." msgstr "" -#: library/dbm.rst:178 library/dbm.rst:353 +#: library/dbm.rst:182 library/dbm.rst:374 msgid "" "* ``'r'`` (default): |flag_r| * ``'w'``: |flag_w| * ``'c'``: |flag_c| * " "``'n'``: |flag_n|" msgstr "" -#: library/dbm.rst:180 library/dbm.rst:354 +#: library/dbm.rst:184 library/dbm.rst:375 msgid "``'r'`` (default): |flag_r|" msgstr "" -#: library/dbm.rst:181 library/dbm.rst:355 library/dbm.rst:429 +#: library/dbm.rst:185 library/dbm.rst:376 library/dbm.rst:452 msgid "``'w'``: |flag_w|" msgstr "" -#: library/dbm.rst:182 library/dbm.rst:356 +#: library/dbm.rst:186 library/dbm.rst:377 msgid "``'c'``: |flag_c|" msgstr "" -#: library/dbm.rst:183 library/dbm.rst:357 library/dbm.rst:431 +#: library/dbm.rst:187 library/dbm.rst:378 library/dbm.rst:454 msgid "``'n'``: |flag_n|" msgstr "" -#: library/dbm.rst:244 library/dbm.rst:433 +#: library/dbm.rst:264 library/dbm.rst:456 msgid "|mode_param_doc|" msgstr "" @@ -144,51 +144,56 @@ msgstr "" #: library/dbm.rst:87 msgid "" -"The object returned by :func:`~dbm.open` supports the same basic " -"functionality as a :class:`dict`; 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` methods." +"The object returned by :func:`~dbm.open` supports the basic functionality of " +"mutable :term:`mappings `; keys and their corresponding values can " +"be stored, retrieved, and deleted, and iteration, the :keyword:`in` operator " +"and methods :meth:`!keys`, :meth:`!get`, :meth:`!setdefault` and :meth:`!" +"clear` are available. The :meth:`!keys` method returns a list instead of a " +"view object. The :meth:`!setdefault` method requires two arguments." msgstr "" -#: library/dbm.rst:92 +#: library/dbm.rst:95 msgid "" "Key and values are always stored as :class:`bytes`. This means that when " "strings are used they are implicitly converted to the default encoding " "before being stored." msgstr "" -#: library/dbm.rst:96 +#: library/dbm.rst:99 msgid "" "These objects also support being used in a :keyword:`with` statement, which " "will automatically close them when done." msgstr "" -#: library/dbm.rst:99 +#: library/dbm.rst:102 msgid "" ":meth:`!get` and :meth:`!setdefault` methods are now available for all :mod:" "`dbm` backends." msgstr "" -#: library/dbm.rst:103 +#: library/dbm.rst:106 msgid "" "Added native support for the context management protocol to the objects " "returned by :func:`~dbm.open`." msgstr "" -#: library/dbm.rst:107 +#: library/dbm.rst:110 msgid "" "Deleting a key from a read-only database raises a database module specific " "exception instead of :exc:`KeyError`." msgstr "" -#: library/dbm.rst:111 +#: library/dbm.rst:114 +msgid ":meth:`!clear` methods are now available for all :mod:`dbm` backends." +msgstr "" + +#: library/dbm.rst:118 msgid "" "The following example records some hostnames and a corresponding title, and " "then prints out the contents of the database::" msgstr "" -#: library/dbm.rst:114 +#: library/dbm.rst:121 msgid "" "import dbm\n" "\n" @@ -215,27 +220,27 @@ msgid "" "# db is automatically closed when leaving the with statement." msgstr "" -#: library/dbm.rst:141 +#: library/dbm.rst:148 msgid "Module :mod:`shelve`" msgstr "" -#: library/dbm.rst:142 +#: library/dbm.rst:149 msgid "Persistence module which stores non-string data." msgstr "" -#: library/dbm.rst:145 +#: library/dbm.rst:152 msgid "The individual submodules are described in the following sections." msgstr "" -#: library/dbm.rst:148 +#: library/dbm.rst:155 msgid ":mod:`dbm.sqlite3` --- SQLite backend for dbm" msgstr "" -#: library/dbm.rst:156 +#: library/dbm.rst:163 msgid "**Source code:** :source:`Lib/dbm/sqlite3.py`" msgstr "" -#: library/dbm.rst:160 +#: library/dbm.rst:167 msgid "" "This module uses the standard library :mod:`sqlite3` module to provide an " "SQLite backend for the :mod:`dbm` module. The files created by :mod:`dbm." @@ -253,39 +258,52 @@ msgid "" "availability` for more information." msgstr "" -#: library/dbm.rst:169 -msgid "" -"Open an SQLite database. The returned object behaves like a :term:`mapping`, " -"implements a :meth:`!close` method, and supports a \"closing\" context " -"manager via the :keyword:`with` keyword." +#: library/dbm.rst:176 +msgid "Open an SQLite database." msgstr "" -#: library/dbm.rst:174 +#: library/dbm.rst:178 msgid "The path to the database to be opened." msgstr "" -#: library/dbm.rst:185 +#: library/dbm.rst:189 msgid "" "The Unix file access mode of the file (default: octal ``0o666``), used only " "when the database has to be created." msgstr "" -#: library/dbm.rst:191 +#: library/dbm.rst:193 +msgid "" +"The returned database object behaves similar to a mutable :term:`mapping`, " +"but the :meth:`!keys` method returns a list, and the :meth:`!setdefault` " +"method requires two arguments. It also supports a \"closing\" context " +"manager via the :keyword:`with` keyword." +msgstr "" + +#: library/dbm.rst:399 +msgid "The following method is also provided:" +msgstr "" + +#: library/dbm.rst:202 +msgid "Close the SQLite database." +msgstr "" + +#: library/dbm.rst:206 msgid ":mod:`dbm.gnu` --- GNU database manager" msgstr "" -#: library/dbm.rst:197 +#: library/dbm.rst:212 msgid "**Source code:** :source:`Lib/dbm/gnu.py`" msgstr "" -#: library/dbm.rst:201 +#: library/dbm.rst:216 msgid "" "The :mod:`dbm.gnu` module provides an interface to the :abbr:`GDBM (GNU " "dbm)` library, similar to the :mod:`dbm.ndbm` module, but with additional " "functionality like crash tolerance." msgstr "" -#: library/dbm.rst:321 +#: library/dbm.rst:342 msgid "" "The file formats created by :mod:`dbm.gnu` and :mod:`dbm.ndbm` are " "incompatible and can not be used interchangeably." @@ -297,18 +315,24 @@ msgid "" "availability>` or :ref:`WebAssembly platforms `." msgstr "" -#: library/dbm.rst:214 +#: library/dbm.rst:229 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 "" -#: library/dbm.rst:220 +#: library/dbm.rst:235 +msgid "" +"A string of characters the *flag* parameter of :meth:`~dbm.gnu.open` " +"supports." +msgstr "" + +#: library/dbm.rst:240 msgid "Open a GDBM database and return a :class:`!gdbm` object." msgstr "" -#: library/dbm.rst:226 +#: library/dbm.rst:246 msgid "" "* ``'r'`` (default): |flag_r| * ``'w'``: |flag_w| * ``'c'``: |flag_c| * " "``'n'``: |flag_n| The following additional characters may be appended to " @@ -320,29 +344,29 @@ msgid "" "flag characters." msgstr "" -#: library/dbm.rst:232 +#: library/dbm.rst:252 msgid "" "The following additional characters may be appended to control how the " "database is opened:" msgstr "" -#: library/dbm.rst:235 +#: library/dbm.rst:255 msgid "" "``'f'``: Open the database in fast mode. Writes to the database will not be " "synchronized." msgstr "" -#: library/dbm.rst:237 +#: library/dbm.rst:257 msgid "" "``'s'``: Synchronized mode. Changes to the database will be written " "immediately to the file." msgstr "" -#: library/dbm.rst:239 +#: library/dbm.rst:259 msgid "``'u'``: Do not lock database." msgstr "" -#: library/dbm.rst:241 +#: library/dbm.rst:261 msgid "" "Not all flags are valid for all versions of GDBM. See the :data:`open_flags` " "member for a list of supported flag characters." @@ -352,24 +376,36 @@ msgstr "" msgid "Raises" msgstr "" -#: library/dbm.rst:247 +#: library/dbm.rst:267 msgid "If an invalid *flag* argument is passed." msgstr "" -#: library/dbm.rst:255 +#: library/dbm.rst:273 msgid "" -"A string of characters the *flag* parameter of :meth:`~dbm.gnu.open` " -"supports." +":class:`!gdbm` objects behave similar to mutable :term:`mappings `, " +"but methods :meth:`!items`, :meth:`!values`, :meth:`!pop`, :meth:`!popitem`, " +"and :meth:`!update` are not supported, the :meth:`!keys` method returns a " +"list, and the :meth:`!setdefault` method requires two arguments. It also " +"supports a \"closing\" context manager via the :keyword:`with` keyword." msgstr "" -#: library/dbm.rst:257 -msgid "" -":class:`!gdbm` objects behave similar to :term:`mappings `, but :" -"meth:`!items` and :meth:`!values` methods are not supported. The following " -"methods are also provided:" +#: library/dbm.rst:393 +msgid "Added the :meth:`!get` and :meth:`!setdefault` methods." +msgstr "" + +#: library/dbm.rst:396 +msgid "Added the :meth:`!clear` method." +msgstr "" + +#: library/dbm.rst:479 +msgid "The following methods are also provided:" msgstr "" -#: library/dbm.rst:263 +#: library/dbm.rst:290 +msgid "Close the GDBM database." +msgstr "" + +#: library/dbm.rst:294 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 " @@ -377,14 +413,14 @@ msgid "" "starting key." msgstr "" -#: library/dbm.rst:270 +#: library/dbm.rst:301 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 "" -#: library/dbm.rst:274 +#: library/dbm.rst:305 msgid "" "k = db.firstkey()\n" "while k is not None:\n" @@ -392,7 +428,7 @@ msgid "" " k = db.nextkey(k)" msgstr "" -#: library/dbm.rst:281 +#: library/dbm.rst:312 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. :" @@ -401,36 +437,28 @@ msgid "" "reused as new (key, value) pairs are added." msgstr "" -#: library/dbm.rst:289 +#: library/dbm.rst:320 msgid "" "When the database has been opened in fast mode, this method forces any " "unwritten data to be written to the disk." msgstr "" -#: library/dbm.rst:294 -msgid "Close the GDBM database." -msgstr "" - -#: library/dbm.rst:298 -msgid "Remove all items from the GDBM database." -msgstr "" - -#: library/dbm.rst:304 +#: library/dbm.rst:325 msgid ":mod:`dbm.ndbm` --- New Database Manager" msgstr "" -#: library/dbm.rst:310 +#: library/dbm.rst:331 msgid "**Source code:** :source:`Lib/dbm/ndbm.py`" msgstr "" -#: library/dbm.rst:314 +#: library/dbm.rst:335 msgid "" "The :mod:`dbm.ndbm` module provides an interface to the :abbr:`NDBM (New " "Database Manager)` library. This module can be used with the \"classic\" " "NDBM interface or the :abbr:`GDBM (GNU dbm)` compatibility interface." msgstr "" -#: library/dbm.rst:326 +#: library/dbm.rst:347 msgid "" "The NDBM library shipped as part of macOS has an undocumented limitation on " "the size of values, which can result in corrupted database files when " @@ -438,55 +466,53 @@ msgid "" "result in a hard crash (segmentation fault)." msgstr "" -#: library/dbm.rst:335 +#: library/dbm.rst:356 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 "" -#: library/dbm.rst:341 +#: library/dbm.rst:362 msgid "Name of the NDBM implementation library used." msgstr "" -#: library/dbm.rst:346 +#: library/dbm.rst:367 msgid "Open an NDBM database and return an :class:`!ndbm` object." msgstr "" -#: library/dbm.rst:348 +#: library/dbm.rst:369 msgid "" "The basename of the database file (without the :file:`.dir` or :file:`.pag` " "extensions)." msgstr "" -#: library/dbm.rst:362 -msgid "" -":class:`!ndbm` objects behave similar to :term:`mappings `, but :" -"meth:`!items` and :meth:`!values` methods are not supported. The following " -"methods are also provided:" -msgstr "" - -#: library/dbm.rst:366 +#: library/dbm.rst:383 msgid "Accepts :term:`path-like object` for filename." msgstr "" -#: library/dbm.rst:371 -msgid "Close the NDBM database." +#: library/dbm.rst:386 +msgid "" +":class:`!ndbm` objects behave similar to mutable :term:`mappings `, " +"but methods :meth:`!items`, :meth:`!values`, :meth:`!pop`, :meth:`!popitem`, " +"and :meth:`!update` are not supported, the :meth:`!keys` method returns a " +"list, and the :meth:`!setdefault` method requires two arguments. It also " +"supports a \"closing\" context manager via the :keyword:`with` keyword." msgstr "" -#: library/dbm.rst:375 -msgid "Remove all items from the NDBM database." +#: library/dbm.rst:403 +msgid "Close the NDBM database." msgstr "" -#: library/dbm.rst:381 +#: library/dbm.rst:407 msgid ":mod:`dbm.dumb` --- Portable DBM implementation" msgstr "" -#: library/dbm.rst:386 +#: library/dbm.rst:412 msgid "**Source code:** :source:`Lib/dbm/dumb.py`" msgstr "" -#: library/dbm.rst:392 +#: library/dbm.rst:418 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." @@ -494,100 +520,99 @@ msgid "" "the other database modules." msgstr "" -#: library/dbm.rst:399 +#: library/dbm.rst:425 msgid "" "The :mod:`dbm.dumb` module provides a persistent :class:`dict`-like " "interface which is written entirely in Python. Unlike other :mod:`dbm` " "backends, such as :mod:`dbm.gnu`, no external library is required." msgstr "" -#: library/dbm.rst:404 +#: library/dbm.rst:430 msgid "The :mod:`!dbm.dumb` module defines the following:" msgstr "" -#: library/dbm.rst:408 +#: library/dbm.rst:434 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 "" -#: library/dbm.rst:414 -msgid "" -"Open a :mod:`!dbm.dumb` database. The returned database object behaves " -"similar to a :term:`mapping`, in addition to providing :meth:`~dumbdbm.sync` " -"and :meth:`~dumbdbm.close` methods." +#: library/dbm.rst:440 +msgid "Open a :mod:`!dbm.dumb` database." msgstr "" -#: library/dbm.rst:419 +#: library/dbm.rst:442 msgid "" "The basename of the database file (without extensions). A new database " "creates the following files: - :file:`{filename}.dat` - :file:`{filename}." "dir`" msgstr "" -#: library/dbm.rst:420 +#: library/dbm.rst:443 msgid "" "The basename of the database file (without extensions). A new database " "creates the following files:" msgstr "" -#: library/dbm.rst:423 +#: library/dbm.rst:446 msgid ":file:`{filename}.dat`" msgstr "" -#: library/dbm.rst:424 +#: library/dbm.rst:447 msgid ":file:`{filename}.dir`" msgstr "" -#: library/dbm.rst:427 +#: library/dbm.rst:450 msgid "" "* ``'r'``: |flag_r| * ``'w'``: |flag_w| * ``'c'`` (default): |flag_c| * " "``'n'``: |flag_n|" msgstr "" -#: library/dbm.rst:428 +#: library/dbm.rst:451 msgid "``'r'``: |flag_r|" msgstr "" -#: library/dbm.rst:430 +#: library/dbm.rst:453 msgid "``'c'`` (default): |flag_c|" msgstr "" -#: library/dbm.rst:437 +#: library/dbm.rst:460 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 "" -#: library/dbm.rst:441 +#: library/dbm.rst:464 msgid "" ":func:`~dbm.dumb.open` always creates a new database when *flag* is ``'n'``." msgstr "" -#: library/dbm.rst:444 +#: library/dbm.rst:467 msgid "" "A database opened read-only if *flag* is ``'r'``. A database is not created " "if it does not exist if *flag* is ``'r'`` or ``'w'``." msgstr "" -#: library/dbm.rst:451 +#: library/dbm.rst:474 msgid "" -"In addition to the methods provided by the :class:`collections.abc." -"MutableMapping` class, the following methods are provided:" +"The returned database object behaves similar to a mutable :term:`mapping`, " +"but the :meth:`!keys` and :meth:`!items` methods return lists, and the :meth:" +"`!setdefault` method requires two arguments. It also supports a \"closing\" " +"context manager via the :keyword:`with` keyword." +msgstr "" + +#: library/dbm.rst:483 +msgid "Close the database." msgstr "" -#: library/dbm.rst:457 +#: library/dbm.rst:487 msgid "" "Synchronize the on-disk directory and data files. This method is called by " "the :meth:`shelve.Shelf.sync` method." msgstr "" -#: library/dbm.rst:462 -msgid "Close the database." -msgstr "" - -#: library/dbm.rst:388 +#: library/dbm.rst:414 msgid "databases" msgstr "" diff --git a/library/debug.po b/library/debug.po index a2675794..2efccb20 100644 --- a/library/debug.po +++ b/library/debug.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-26 14:11+0300\n" "Last-Translator: ALEXANDROS TZIORAS alextzioras23@gmail.com\n" "Language-Team: Language-Team: PyGreece \n" diff --git a/library/decimal.po b/library/decimal.po index 88aa6021..9a93ba9e 100644 --- a/library/decimal.po +++ b/library/decimal.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -310,7 +310,7 @@ msgstr "" #: 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:" +"the :meth:`Context` constructor. To make an alternate active, use the :func:" "`setcontext` function." msgstr "" diff --git a/library/development.po b/library/development.po index 1c6c6c45..33b7f93a 100644 --- a/library/development.po +++ b/library/development.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-22 13:10+0300\n" "Last-Translator: ALEXANDROS TZIORAS alextzioras23@gmail.com\n" "Language-Team: Language-Team: PyGreece \n" diff --git a/library/devmode.po b/library/devmode.po index 01146a27..de2e38b7 100644 --- a/library/devmode.po +++ b/library/devmode.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/dialog.po b/library/dialog.po index cc187780..39d5ca77 100644 --- a/library/dialog.po +++ b/library/dialog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/difflib.po b/library/difflib.po index 6e049389..9c16442b 100644 --- a/library/difflib.po +++ b/library/difflib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -310,7 +310,7 @@ 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 " +"lines without visible characters, except for at most one hash 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." @@ -404,15 +404,14 @@ msgstr "" #: library/difflib.rst:354 msgid "" -"`Pattern Matching: The Gestalt Approach `_" +"`Pattern Matching: The Gestalt Approach `_" msgstr "" #: library/difflib.rst:355 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." +"This was published in Dr. Dobb's Journal in July, 1988." msgstr "" #: library/difflib.rst:362 diff --git a/library/dis.po b/library/dis.po index 05a4a706..de725f4d 100644 --- a/library/dis.po +++ b/library/dis.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -658,44 +658,55 @@ msgid "" msgstr "" #: library/dis.rst:590 +msgid "" +"Do nothing code. Used by the interpreter to record :monitoring-event:" +"`BRANCH_LEFT` and :monitoring-event:`BRANCH_RIGHT` events for :mod:`sys." +"monitoring`." +msgstr "" + +#: library/dis.rst:599 +msgid "Removes the iterator from the top of the stack." +msgstr "" + +#: library/dis.rst:606 msgid "Removes the top-of-stack item::" msgstr "" -#: library/dis.rst:592 +#: library/dis.rst:608 msgid "STACK.pop()" msgstr "" -#: library/dis.rst:597 +#: library/dis.rst:613 msgid "" "Removes the top-of-stack item. Equivalent to ``POP_TOP``. Used to clean up " "at the end of loops, hence the name." msgstr "" -#: library/dis.rst:606 +#: library/dis.rst:622 msgid "Implements ``del STACK[-2]``. Used to clean up when a generator exits." msgstr "" -#: library/dis.rst:614 +#: library/dis.rst:630 msgid "" "Push the i-th item to the top of the stack without removing it from its " "original location::" msgstr "" -#: library/dis.rst:617 +#: library/dis.rst:633 msgid "" "assert i > 0\n" "STACK.append(STACK[-i])" msgstr "" -#: library/dis.rst:625 +#: library/dis.rst:641 msgid "Swap the top of the stack with the i-th element::" msgstr "" -#: library/dis.rst:627 +#: library/dis.rst:643 msgid "STACK[-i], STACK[-1] = STACK[-1], STACK[-i]" msgstr "" -#: library/dis.rst:634 +#: library/dis.rst:650 msgid "" "Rather than being an actual instruction, this opcode is used to mark extra " "space for the interpreter to cache useful data directly in the bytecode " @@ -703,103 +714,103 @@ msgid "" "viewed with ``show_caches=True``." msgstr "" -#: library/dis.rst:639 +#: library/dis.rst:655 msgid "" "Logically, this space is part of the preceding instruction. Many opcodes " "expect to be followed by an exact number of caches, and will instruct the " "interpreter to skip over them at runtime." msgstr "" -#: library/dis.rst:643 +#: library/dis.rst:659 msgid "" "Populated caches can look like arbitrary instructions, so great care should " "be taken when reading or modifying raw, adaptive bytecode containing " "quickened data." msgstr "" -#: library/dis.rst:650 +#: library/dis.rst:666 msgid "**Unary operations**" msgstr "" -#: library/dis.rst:652 +#: library/dis.rst:668 msgid "" "Unary operations take the top of the stack, apply the operation, and push " "the result back on the stack." msgstr "" -#: library/dis.rst:658 +#: library/dis.rst:674 msgid "Implements ``STACK[-1] = -STACK[-1]``." msgstr "" -#: library/dis.rst:663 +#: library/dis.rst:679 msgid "Implements ``STACK[-1] = not STACK[-1]``." msgstr "" -#: library/dis.rst:1325 library/dis.rst:1341 +#: library/dis.rst:1383 library/dis.rst:1399 msgid "This instruction now requires an exact :class:`bool` operand." msgstr "" -#: library/dis.rst:671 +#: library/dis.rst:687 msgid "Implements ``STACK[-1] = ~STACK[-1]``." msgstr "" -#: library/dis.rst:676 +#: library/dis.rst:692 msgid "Implements ``STACK[-1] = iter(STACK[-1])``." msgstr "" -#: library/dis.rst:681 +#: library/dis.rst:697 msgid "" "If ``STACK[-1]`` is a :term:`generator iterator` or :term:`coroutine` object " "it is left as is. Otherwise, implements ``STACK[-1] = iter(STACK[-1])``." msgstr "" -#: library/dis.rst:689 +#: library/dis.rst:705 msgid "Implements ``STACK[-1] = bool(STACK[-1])``." msgstr "" -#: library/dis.rst:694 +#: library/dis.rst:710 msgid "**Binary and in-place operations**" msgstr "" -#: library/dis.rst:696 +#: library/dis.rst:712 msgid "" "Binary operations remove the top two items from the stack (``STACK[-1]`` and " "``STACK[-2]``). They perform the operation, then put the result back on the " "stack." msgstr "" -#: library/dis.rst:699 +#: library/dis.rst:715 msgid "" "In-place operations are like binary operations, but the operation is done in-" "place when ``STACK[-2]`` supports it, and the resulting ``STACK[-1]`` may be " "(but does not have to be) the original ``STACK[-2]``." msgstr "" -#: library/dis.rst:706 +#: library/dis.rst:722 msgid "" "Implements the binary and in-place operators (depending on the value of " "*op*)::" msgstr "" -#: library/dis.rst:709 +#: library/dis.rst:725 msgid "" "rhs = STACK.pop()\n" "lhs = STACK.pop()\n" "STACK.append(lhs op rhs)" msgstr "" -#: library/dis.rst:714 +#: library/dis.rst:730 msgid "" "With oparg :``NB_SUBSCR``, implements binary subscript (replaces opcode " "``BINARY_SUBSCR``)" msgstr "" -#: library/dis.rst:730 library/dis.rst:750 library/dis.rst:838 -#: library/dis.rst:1054 library/dis.rst:1168 library/dis.rst:1192 +#: library/dis.rst:746 library/dis.rst:766 library/dis.rst:854 +#: library/dis.rst:1070 library/dis.rst:1226 library/dis.rst:1250 msgid "Implements::" msgstr "" -#: library/dis.rst:722 +#: library/dis.rst:738 msgid "" "key = STACK.pop()\n" "container = STACK.pop()\n" @@ -807,14 +818,14 @@ msgid "" "container[key] = value" msgstr "" -#: library/dis.rst:732 +#: library/dis.rst:748 msgid "" "key = STACK.pop()\n" "container = STACK.pop()\n" "del container[key]" msgstr "" -#: library/dis.rst:740 +#: library/dis.rst:756 msgid "" "end = STACK.pop()\n" "start = STACK.pop()\n" @@ -822,7 +833,7 @@ msgid "" "STACK.append(container[start:end])" msgstr "" -#: library/dis.rst:752 +#: library/dis.rst:768 msgid "" "end = STACK.pop()\n" "start = STACK.pop()\n" @@ -831,11 +842,11 @@ msgid "" "container[start:end] = value" msgstr "" -#: library/dis.rst:761 +#: library/dis.rst:777 msgid "**Coroutine opcodes**" msgstr "" -#: library/dis.rst:765 +#: library/dis.rst:781 msgid "" "Implements ``STACK[-1] = get_awaitable(STACK[-1])``, where " "``get_awaitable(o)`` returns ``o`` if ``o`` is a coroutine object or a " @@ -843,39 +854,39 @@ msgid "" "resolves ``o.__await__``." msgstr "" -#: library/dis.rst:770 +#: library/dis.rst:786 msgid "" "If the ``where`` operand is nonzero, it indicates where the instruction " "occurs:" msgstr "" -#: library/dis.rst:773 +#: library/dis.rst:789 msgid "``1``: After a call to ``__aenter__``" msgstr "" -#: library/dis.rst:774 +#: library/dis.rst:790 msgid "``2``: After a call to ``__aexit__``" msgstr "" -#: library/dis.rst:778 +#: library/dis.rst:794 msgid "Previously, this instruction did not have an oparg." msgstr "" -#: library/dis.rst:784 +#: library/dis.rst:800 msgid "Implements ``STACK[-1] = STACK[-1].__aiter__()``." msgstr "" -#: library/dis.rst:787 +#: library/dis.rst:803 msgid "Returning awaitable objects from ``__aiter__`` is no longer supported." msgstr "" -#: library/dis.rst:794 +#: library/dis.rst:810 msgid "" "Implement ``STACK.append(get_awaitable(STACK[-1].__anext__()))`` to the " "stack. See ``GET_AWAITABLE`` for details about ``get_awaitable``." msgstr "" -#: library/dis.rst:802 +#: library/dis.rst:818 msgid "" "Terminates an :keyword:`async for` loop. Handles an exception raised when " "awaiting a next item. The stack contains the async iterable in ``STACK[-2]`` " @@ -883,12 +894,12 @@ msgid "" "is not :exc:`StopAsyncIteration`, it is re-raised." msgstr "" -#: library/dis.rst:900 library/dis.rst:911 +#: library/dis.rst:916 library/dis.rst:927 msgid "" "Exception representation on the stack now consist of one, not three, items." msgstr "" -#: library/dis.rst:815 +#: library/dis.rst:831 msgid "" "Handles an exception raised during a :meth:`~generator.throw` or :meth:" "`~generator.close` call through the current frame. If ``STACK[-1]`` is an " @@ -896,48 +907,48 @@ msgid "" "its ``value`` member. Otherwise, re-raise ``STACK[-1]``." msgstr "" -#: library/dis.rst:824 +#: library/dis.rst:840 msgid "**Miscellaneous opcodes**" msgstr "" -#: library/dis.rst:830 +#: library/dis.rst:846 msgid "" "item = STACK.pop()\n" "set.add(STACK[-i], item)" msgstr "" -#: library/dis.rst:833 +#: library/dis.rst:849 msgid "Used to implement set comprehensions." msgstr "" -#: library/dis.rst:840 +#: library/dis.rst:856 msgid "" "item = STACK.pop()\n" "list.append(STACK[-i], item)" msgstr "" -#: library/dis.rst:843 +#: library/dis.rst:859 msgid "Used to implement list comprehensions." msgstr "" -#: library/dis.rst:850 +#: library/dis.rst:866 msgid "" "value = STACK.pop()\n" "key = STACK.pop()\n" "dict.__setitem__(STACK[-i], key, value)" msgstr "" -#: library/dis.rst:854 +#: library/dis.rst:870 msgid "Used to implement dict comprehensions." msgstr "" -#: library/dis.rst:857 +#: library/dis.rst:873 msgid "" "Map value is ``STACK[-1]`` and map key is ``STACK[-2]``. Before, those were " "reversed." msgstr "" -#: library/dis.rst:861 +#: library/dis.rst:877 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 " @@ -945,31 +956,31 @@ msgid "" "further iterations of the loop." msgstr "" -#: library/dis.rst:869 +#: library/dis.rst:885 msgid "Returns with ``STACK[-1]`` to the caller of the function." msgstr "" -#: library/dis.rst:874 +#: library/dis.rst:890 msgid "Yields ``STACK.pop()`` from a :term:`generator`." msgstr "" -#: library/dis.rst:876 +#: library/dis.rst:892 msgid "oparg set to be the stack depth." msgstr "" -#: library/dis.rst:879 +#: library/dis.rst:895 msgid "" "oparg set to be the exception block depth, for efficient closing of " "generators." msgstr "" -#: library/dis.rst:882 +#: library/dis.rst:898 msgid "" "oparg is ``1`` if this instruction is part of a yield-from or await, and " "``0`` otherwise." msgstr "" -#: library/dis.rst:888 +#: library/dis.rst:904 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 " @@ -977,39 +988,39 @@ msgid "" "statically." msgstr "" -#: library/dis.rst:898 +#: library/dis.rst:914 msgid "" "Pops a value from the stack, which is used to restore the exception state." msgstr "" -#: library/dis.rst:905 +#: library/dis.rst:921 msgid "" "Re-raises the exception currently on top of the stack. If oparg is non-zero, " "pops an additional value from the stack which is used to set :attr:`~frame." "f_lasti` of the current frame." msgstr "" -#: library/dis.rst:916 +#: library/dis.rst:932 msgid "" "Pops a value from the stack. Pushes the current exception to the top of the " "stack. Pushes the value originally popped back to the stack. Used in " "exception handlers." msgstr "" -#: library/dis.rst:924 +#: library/dis.rst:940 msgid "" "Performs exception matching for ``except``. Tests whether the ``STACK[-2]`` " "is an exception matching ``STACK[-1]``. Pops ``STACK[-1]`` and pushes the " "boolean result of the test." msgstr "" -#: library/dis.rst:932 +#: library/dis.rst:948 msgid "" "Performs exception matching for ``except*``. Applies ``split(STACK[-1])`` on " "the exception group representing ``STACK[-2]``." msgstr "" -#: library/dis.rst:935 +#: library/dis.rst:951 msgid "" "In case of a match, pops two items from the stack and pushes the non-" "matching subgroup (``None`` in case of full match) followed by the matching " @@ -1017,7 +1028,7 @@ msgid "" "``None``." msgstr "" -#: library/dis.rst:944 +#: library/dis.rst:960 msgid "" "Calls the function in position 4 on the stack with arguments (type, val, tb) " "representing the exception at the top of the stack. Used to implement the " @@ -1025,32 +1036,32 @@ msgid "" "occurred in a :keyword:`with` statement." msgstr "" -#: library/dis.rst:951 +#: library/dis.rst:967 msgid "" "The ``__exit__`` function is in position 4 of the stack rather than 7. " "Exception representation on the stack now consist of one, not three, items." msgstr "" -#: library/dis.rst:958 +#: library/dis.rst:974 msgid "" "Pushes a common constant onto the stack. The interpreter contains a " "hardcoded list of constants supported by this instruction. Used by the :" "keyword:`assert` statement to load :exc:`AssertionError`." msgstr "" -#: library/dis.rst:967 +#: library/dis.rst:983 msgid "" "Pushes :func:`!builtins.__build_class__` onto the stack. It is later called " "to construct a class." msgstr "" -#: library/dis.rst:972 +#: library/dis.rst:988 msgid "" "Perform ``STACK.append(len(STACK[-1]))``. Used in :keyword:`match` " "statements where comparison with structure of pattern is needed." msgstr "" -#: library/dis.rst:980 +#: library/dis.rst:996 msgid "" "If ``STACK[-1]`` is an instance of :class:`collections.abc.Mapping` (or, " "more technically: if it has the :c:macro:`Py_TPFLAGS_MAPPING` flag set in " @@ -1058,7 +1069,7 @@ msgid "" "Otherwise, push ``False``." msgstr "" -#: library/dis.rst:990 +#: library/dis.rst:1006 msgid "" "If ``STACK[-1]`` is an instance of :class:`collections.abc.Sequence` and is " "*not* an instance of :class:`str`/:class:`bytes`/:class:`bytearray` (or, " @@ -1067,20 +1078,20 @@ msgid "" "Otherwise, push ``False``." msgstr "" -#: library/dis.rst:1000 +#: library/dis.rst:1016 msgid "" "``STACK[-1]`` is a tuple of mapping keys, and ``STACK[-2]`` is the match " "subject. If ``STACK[-2]`` contains all of the keys in ``STACK[-1]``, push a :" "class:`tuple` containing the corresponding values. Otherwise, push ``None``." msgstr "" -#: library/dis.rst:1706 +#: library/dis.rst:1768 msgid "" "Previously, this instruction also pushed a boolean value indicating success " "(``True``) or failure (``False``)." msgstr "" -#: library/dis.rst:1013 +#: library/dis.rst:1029 msgid "" "Implements ``name = STACK.pop()``. *namei* is the index of *name* in the " "attribute :attr:`~codeobject.co_names` of the :ref:`code object `." msgstr "" -#: library/dis.rst:1026 +#: library/dis.rst:1042 msgid "" "Unpacks ``STACK[-1]`` into *count* individual values, which are put onto the " "stack right-to-left. Require there to be exactly *count* values.::" msgstr "" -#: library/dis.rst:1029 +#: library/dis.rst:1045 msgid "" "assert(len(STACK[-1]) == count)\n" "STACK.extend(STACK.pop()[:-count-1:-1])" msgstr "" -#: library/dis.rst:1035 +#: library/dis.rst:1051 msgid "" "Implements assignment with a starred target: Unpacks an iterable in " "``STACK[-1]`` into individual values, where the total number of values can " @@ -1114,11 +1125,11 @@ msgid "" "will be a list of all leftover items." msgstr "" -#: library/dis.rst:1040 +#: library/dis.rst:1056 msgid "The number of values before and after the list value is limited to 255." msgstr "" -#: library/dis.rst:1042 +#: library/dis.rst:1058 msgid "" "The number of values before the list value is encoded in the argument of the " "opcode. The number of values after the list if any is encoded using an " @@ -1127,68 +1138,68 @@ msgid "" "list value, the high byte of *counts* the number of values after it." msgstr "" -#: library/dis.rst:1048 +#: library/dis.rst:1064 msgid "" "The extracted values are put onto the stack right-to-left, i.e. ``a, *b, c = " "d`` will be stored after execution as ``STACK.extend((a, b, c))``." msgstr "" -#: library/dis.rst:1056 +#: library/dis.rst:1072 msgid "" "obj = STACK.pop()\n" "value = STACK.pop()\n" "obj.name = value" msgstr "" -#: library/dis.rst:1060 +#: library/dis.rst:1076 msgid "" "where *namei* is the index of name in :attr:`~codeobject.co_names` of the :" "ref:`code object `." msgstr "" -#: library/dis.rst:1067 +#: library/dis.rst:1083 msgid "" "obj = STACK.pop()\n" "del obj.name" msgstr "" -#: library/dis.rst:1070 +#: library/dis.rst:1086 msgid "" "where *namei* is the index of name into :attr:`~codeobject.co_names` of the :" "ref:`code object `." msgstr "" -#: library/dis.rst:1076 +#: library/dis.rst:1092 msgid "Works as :opcode:`STORE_NAME`, but stores the name as a global." msgstr "" -#: library/dis.rst:1081 +#: library/dis.rst:1097 msgid "Works as :opcode:`DELETE_NAME`, but deletes a global name." msgstr "" -#: library/dis.rst:1086 +#: library/dis.rst:1102 msgid "Pushes ``co_consts[consti]`` onto the stack." msgstr "" -#: library/dis.rst:1091 +#: library/dis.rst:1107 msgid "" "Pushes the integer ``i`` onto the stack. ``i`` must be in ``range(256)``" msgstr "" -#: library/dis.rst:1099 +#: library/dis.rst:1115 msgid "" "Pushes the value associated with ``co_names[namei]`` onto the stack. The " "name is looked up within the locals, then the globals, then the builtins." msgstr "" -#: library/dis.rst:1105 +#: library/dis.rst:1121 msgid "" "Pushes a reference to the locals dictionary onto the stack. This is used to " "prepare namespace dictionaries for :opcode:`LOAD_FROM_DICT_OR_DEREF` and :" "opcode:`LOAD_FROM_DICT_OR_GLOBALS`." msgstr "" -#: library/dis.rst:1114 +#: library/dis.rst:1130 msgid "" "Pops a mapping off the stack and looks up the value for ``co_names[namei]``. " "If the name is not found there, looks it up in the globals and then the " @@ -1197,13 +1208,66 @@ msgid "" "bodies." msgstr "" -#: library/dis.rst:1125 +#: library/dis.rst:1141 +msgid "" +"Constructs a new :class:`~string.templatelib.Template` instance from a tuple " +"of strings and a tuple of interpolations and pushes the resulting object " +"onto the stack::" +msgstr "" + +#: library/dis.rst:1145 +msgid "" +"interpolations = STACK.pop()\n" +"strings = STACK.pop()\n" +"STACK.append(_build_template(strings, interpolations))" +msgstr "" + +#: library/dis.rst:1154 +msgid "" +"Constructs a new :class:`~string.templatelib.Interpolation` instance from a " +"value and its source expression and pushes the resulting object onto the " +"stack." +msgstr "" + +#: library/dis.rst:1158 +msgid "" +"If no conversion or format specification is present, ``format`` is set to " +"``2``." +msgstr "" + +#: library/dis.rst:1161 +msgid "" +"If the low bit of ``format`` is set, it indicates that the interpolation " +"contains a format specification." +msgstr "" + +#: library/dis.rst:1164 +msgid "" +"If ``format >> 2`` is non-zero, it indicates that the interpolation contains " +"a conversion. The value of ``format >> 2`` is the conversion type (``0`` for " +"no conversion, ``1`` for ``!s``, ``2`` for ``!r``, and ``3`` for ``!a``)::" +msgstr "" + +#: library/dis.rst:1169 +msgid "" +"conversion = format >> 2\n" +"if format & 1:\n" +" format_spec = STACK.pop()\n" +"else:\n" +" format_spec = None\n" +"expression = STACK.pop()\n" +"value = STACK.pop()\n" +"STACK.append(_build_interpolation(value, expression, conversion, " +"format_spec))" +msgstr "" + +#: library/dis.rst:1183 msgid "" "Creates a tuple consuming *count* items from the stack, and pushes the " "resulting tuple onto the stack::" msgstr "" -#: library/dis.rst:1128 +#: library/dis.rst:1186 msgid "" "if count == 0:\n" " value = ()\n" @@ -1214,74 +1278,74 @@ msgid "" "STACK.append(value)" msgstr "" -#: library/dis.rst:1139 +#: library/dis.rst:1197 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a list." msgstr "" -#: library/dis.rst:1144 +#: library/dis.rst:1202 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a set." msgstr "" -#: library/dis.rst:1149 +#: library/dis.rst:1207 msgid "" "Pushes a new dictionary object onto the stack. Pops ``2 * count`` items so " "that the dictionary holds *count* entries: ``{..., STACK[-4]: STACK[-3], " "STACK[-2]: STACK[-1]}``." msgstr "" -#: library/dis.rst:1153 +#: library/dis.rst:1211 msgid "" "The dictionary is created from stack items instead of creating an empty " "dictionary pre-sized to hold *count* items." msgstr "" -#: library/dis.rst:1160 +#: library/dis.rst:1218 msgid "" "Concatenates *count* strings from the stack and pushes the resulting string " "onto the stack." msgstr "" -#: library/dis.rst:1170 +#: library/dis.rst:1228 msgid "" "seq = STACK.pop()\n" "list.extend(STACK[-i], seq)" msgstr "" -#: library/dis.rst:1173 +#: library/dis.rst:1231 msgid "Used to build lists." msgstr "" -#: library/dis.rst:1182 +#: library/dis.rst:1240 msgid "" "seq = STACK.pop()\n" "set.update(STACK[-i], seq)" msgstr "" -#: library/dis.rst:1185 +#: library/dis.rst:1243 msgid "Used to build sets." msgstr "" -#: library/dis.rst:1194 +#: library/dis.rst:1252 msgid "" "map = STACK.pop()\n" "dict.update(STACK[-i], map)" msgstr "" -#: library/dis.rst:1197 +#: library/dis.rst:1255 msgid "Used to build dicts." msgstr "" -#: library/dis.rst:1204 +#: library/dis.rst:1262 msgid "Like :opcode:`DICT_UPDATE` but raises an exception for duplicate keys." msgstr "" -#: library/dis.rst:1211 +#: library/dis.rst:1269 msgid "" "If the low bit of ``namei`` is not set, this replaces ``STACK[-1]`` with " "``getattr(STACK[-1], co_names[namei>>1])``." msgstr "" -#: library/dis.rst:1214 +#: library/dis.rst:1272 msgid "" "If the low bit of ``namei`` is set, this will attempt to load a method named " "``co_names[namei>>1]`` from the ``STACK[-1]`` object. ``STACK[-1]`` is " @@ -1293,76 +1357,76 @@ msgid "" "pushed." msgstr "" -#: library/dis.rst:1223 +#: library/dis.rst:1281 msgid "" "If the low bit of ``namei`` is set, then a ``NULL`` or ``self`` is pushed to " "the stack before the attribute or unbound method respectively." msgstr "" -#: library/dis.rst:1230 +#: library/dis.rst:1288 msgid "" "This opcode implements :func:`super`, both in its zero-argument and two-" "argument forms (e.g. ``super().method()``, ``super().attr`` and ``super(cls, " "self).method()``, ``super(cls, self).attr``)." msgstr "" -#: library/dis.rst:1234 +#: library/dis.rst:1292 msgid "It pops three values from the stack (from top of stack down):" msgstr "" -#: library/dis.rst:1236 +#: library/dis.rst:1294 msgid "``self``: the first argument to the current method" msgstr "" -#: library/dis.rst:1237 +#: library/dis.rst:1295 msgid "``cls``: the class within which the current method was defined" msgstr "" -#: library/dis.rst:1238 +#: library/dis.rst:1296 msgid "the global ``super``" msgstr "" -#: library/dis.rst:1240 +#: library/dis.rst:1298 msgid "" "With respect to its argument, it works similarly to :opcode:`LOAD_ATTR`, " "except that ``namei`` is shifted left by 2 bits instead of 1." msgstr "" -#: library/dis.rst:1243 +#: library/dis.rst:1301 msgid "" "The low bit of ``namei`` signals to attempt a method load, as with :opcode:" "`LOAD_ATTR`, which results in pushing ``NULL`` and the loaded method. When " "it is unset a single value is pushed to the stack." msgstr "" -#: library/dis.rst:1247 +#: library/dis.rst:1305 msgid "" "The second-low bit of ``namei``, if set, means that this was a two-argument " "call to :func:`super` (unset means zero-argument)." msgstr "" -#: library/dis.rst:1255 +#: library/dis.rst:1313 msgid "" "Performs a Boolean operation. The operation name can be found in " "``cmp_op[opname >> 5]``. If the fifth-lowest bit of ``opname`` is set " "(``opname & 16``), the result should be coerced to ``bool``." msgstr "" -#: library/dis.rst:1259 +#: library/dis.rst:1317 msgid "" "The fifth-lowest bit of the oparg now indicates a forced conversion to :" "class:`bool`." msgstr "" -#: library/dis.rst:1266 +#: library/dis.rst:1324 msgid "Performs ``is`` comparison, or ``is not`` if ``invert`` is 1." msgstr "" -#: library/dis.rst:1273 +#: library/dis.rst:1331 msgid "Performs ``in`` comparison, or ``not in`` if ``invert`` is 1." msgstr "" -#: library/dis.rst:1280 +#: library/dis.rst:1338 msgid "" "Imports the module ``co_names[namei]``. ``STACK[-1]`` and ``STACK[-2]`` are " "popped and provide the *fromlist* and *level* arguments of :func:" @@ -1371,61 +1435,61 @@ msgid "" "opcode:`STORE_FAST` instruction modifies the namespace." msgstr "" -#: library/dis.rst:1288 +#: library/dis.rst:1346 msgid "" "Loads the attribute ``co_names[namei]`` from the module found in " "``STACK[-1]``. The resulting object is pushed onto the stack, to be " "subsequently stored by a :opcode:`STORE_FAST` instruction." msgstr "" -#: library/dis.rst:1295 +#: library/dis.rst:1353 msgid "Increments bytecode counter by *delta*." msgstr "" -#: library/dis.rst:1300 +#: library/dis.rst:1358 msgid "Decrements bytecode counter by *delta*. Checks for interrupts." msgstr "" -#: library/dis.rst:1307 +#: library/dis.rst:1365 msgid "Decrements bytecode counter by *delta*. Does not check for interrupts." msgstr "" -#: library/dis.rst:1314 +#: library/dis.rst:1372 msgid "" "If ``STACK[-1]`` is true, increments the bytecode counter by *delta*. " "``STACK[-1]`` is popped." msgstr "" -#: library/dis.rst:1333 +#: library/dis.rst:1391 msgid "" "The oparg is now a relative delta rather than an absolute target. This " "opcode is a pseudo-instruction, replaced in final bytecode by the directed " "versions (forward/backward)." msgstr "" -#: library/dis.rst:1338 library/dis.rst:1362 +#: library/dis.rst:1396 library/dis.rst:1420 msgid "This is no longer a pseudo-instruction." msgstr "" -#: library/dis.rst:1330 +#: library/dis.rst:1388 msgid "" "If ``STACK[-1]`` is false, increments the bytecode counter by *delta*. " "``STACK[-1]`` is popped." msgstr "" -#: library/dis.rst:1346 +#: library/dis.rst:1404 msgid "" "If ``STACK[-1]`` is not ``None``, increments the bytecode counter by " "*delta*. ``STACK[-1]`` is popped." msgstr "" -#: library/dis.rst:1357 +#: library/dis.rst:1415 msgid "" "If ``STACK[-1]`` is ``None``, increments the bytecode counter by *delta*. " "``STACK[-1]`` is popped." msgstr "" -#: library/dis.rst:1367 +#: library/dis.rst:1425 msgid "" "``STACK[-1]`` is an :term:`iterator`. Call its :meth:`~iterator.__next__` " "method. If this yields a new value, push it on the stack (leaving the " @@ -1433,102 +1497,102 @@ msgid "" "code counter is incremented by *delta*." msgstr "" -#: library/dis.rst:1372 +#: library/dis.rst:1430 msgid "Up until 3.11 the iterator was popped when it was exhausted." msgstr "" -#: library/dis.rst:1377 +#: library/dis.rst:1435 msgid "Loads the global named ``co_names[namei>>1]`` onto the stack." msgstr "" -#: library/dis.rst:1379 +#: library/dis.rst:1437 msgid "" "If the low bit of ``namei`` is set, then a ``NULL`` is pushed to the stack " "before the global variable." msgstr "" -#: library/dis.rst:1385 +#: library/dis.rst:1443 msgid "" "Pushes a reference to the local ``co_varnames[var_num]`` onto the stack." msgstr "" -#: library/dis.rst:1387 +#: library/dis.rst:1445 msgid "" "This opcode is now only used in situations where the local variable is " "guaranteed to be initialized. It cannot raise :exc:`UnboundLocalError`." msgstr "" -#: library/dis.rst:1393 +#: library/dis.rst:1451 msgid "" "Pushes a borrowed reference to the local ``co_varnames[var_num]`` onto the " "stack." msgstr "" -#: library/dis.rst:1400 +#: library/dis.rst:1458 msgid "" "Pushes references to ``co_varnames[var_nums >> 4]`` and " "``co_varnames[var_nums & 15]`` onto the stack." msgstr "" -#: library/dis.rst:1408 +#: library/dis.rst:1466 msgid "" "Pushes borrowed references to ``co_varnames[var_nums >> 4]`` and " "``co_varnames[var_nums & 15]`` onto the stack." msgstr "" -#: library/dis.rst:1415 +#: library/dis.rst:1473 msgid "" "Pushes a reference to the local ``co_varnames[var_num]`` onto the stack, " "raising an :exc:`UnboundLocalError` if the local variable has not been " "initialized." msgstr "" -#: library/dis.rst:1423 +#: library/dis.rst:1481 msgid "" "Pushes a reference to the local ``co_varnames[var_num]`` onto the stack (or " "pushes ``NULL`` onto the stack if the local variable has not been " "initialized) and sets ``co_varnames[var_num]`` to ``NULL``." msgstr "" -#: library/dis.rst:1431 +#: library/dis.rst:1489 msgid "Stores ``STACK.pop()`` into the local ``co_varnames[var_num]``." msgstr "" -#: library/dis.rst:1435 +#: library/dis.rst:1493 msgid "" "Stores ``STACK[-1]`` into ``co_varnames[var_nums >> 4]`` and ``STACK[-2]`` " "into ``co_varnames[var_nums & 15]``." msgstr "" -#: library/dis.rst:1442 +#: library/dis.rst:1500 msgid "" "Stores ``STACK.pop()`` into the local ``co_varnames[var_nums >> 4]`` and " "pushes a reference to the local ``co_varnames[var_nums & 15]`` onto the " "stack." msgstr "" -#: library/dis.rst:1450 +#: library/dis.rst:1508 msgid "Deletes local ``co_varnames[var_num]``." msgstr "" -#: library/dis.rst:1455 +#: library/dis.rst:1513 msgid "" "Creates a new cell in slot ``i``. If that slot is nonempty then that value " "is stored into the new cell." msgstr "" -#: library/dis.rst:1463 +#: library/dis.rst:1521 msgid "" "Loads the cell contained in slot ``i`` of the \"fast locals\" storage. " "Pushes a reference to the object the cell contains on the stack." msgstr "" -#: library/dis.rst:1488 library/dis.rst:1499 +#: library/dis.rst:1546 library/dis.rst:1557 msgid "" "``i`` is no longer offset by the length of :attr:`~codeobject.co_varnames`." msgstr "" -#: library/dis.rst:1472 +#: library/dis.rst:1530 msgid "" "Pops a mapping off the stack and looks up the name associated with slot " "``i`` of the \"fast locals\" storage in this mapping. If the name is not " @@ -1539,112 +1603,112 @@ msgid "" "class bodies." msgstr "" -#: library/dis.rst:1485 +#: library/dis.rst:1543 msgid "" "Stores ``STACK.pop()`` into the cell contained in slot ``i`` of the \"fast " "locals\" storage." msgstr "" -#: library/dis.rst:1494 +#: library/dis.rst:1552 msgid "" "Empties the cell contained in slot ``i`` of the \"fast locals\" storage. " "Used by the :keyword:`del` statement." msgstr "" -#: library/dis.rst:1505 +#: library/dis.rst:1563 msgid "" "Copies the ``n`` :term:`free (closure) variables ` from " "the closure into the frame. Removes the need for special code on the " "caller's side when calling closures." msgstr "" -#: library/dis.rst:1514 +#: library/dis.rst:1572 msgid "" "Raises an exception using one of the 3 forms of the ``raise`` statement, " "depending on the value of *argc*:" msgstr "" -#: library/dis.rst:1517 +#: library/dis.rst:1575 msgid "0: ``raise`` (re-raise previous exception)" msgstr "" -#: library/dis.rst:1518 +#: library/dis.rst:1576 msgid "" "1: ``raise STACK[-1]`` (raise exception instance or type at ``STACK[-1]``)" msgstr "" -#: library/dis.rst:1519 +#: library/dis.rst:1577 msgid "" "2: ``raise STACK[-2] from STACK[-1]`` (raise exception instance or type at " "``STACK[-2]`` with ``__cause__`` set to ``STACK[-1]``)" msgstr "" -#: library/dis.rst:1525 +#: library/dis.rst:1583 msgid "" "Calls a callable object with the number of arguments specified by ``argc``. " "On the stack are (in ascending order):" msgstr "" -#: library/dis.rst:1552 +#: library/dis.rst:1610 msgid "The callable" msgstr "" -#: library/dis.rst:1553 +#: library/dis.rst:1611 msgid "``self`` or ``NULL``" msgstr "" -#: library/dis.rst:1554 +#: library/dis.rst:1612 msgid "The remaining positional arguments" msgstr "" -#: library/dis.rst:1532 +#: library/dis.rst:1590 msgid "``argc`` is the total of the positional arguments, excluding ``self``." msgstr "" -#: library/dis.rst:1534 +#: library/dis.rst:1592 msgid "" "``CALL`` 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 "" -#: library/dis.rst:1540 +#: library/dis.rst:1598 msgid "The callable now always appears at the same position on the stack." msgstr "" -#: library/dis.rst:1543 +#: library/dis.rst:1601 msgid "Calls with keyword arguments are now handled by :opcode:`CALL_KW`." msgstr "" -#: library/dis.rst:1549 +#: library/dis.rst:1607 msgid "" "Calls a callable object with the number of arguments specified by ``argc``, " "including one or more named arguments. On the stack are (in ascending order):" msgstr "" -#: library/dis.rst:1555 +#: library/dis.rst:1613 msgid "The named arguments" msgstr "" -#: library/dis.rst:1556 +#: library/dis.rst:1614 msgid "A :class:`tuple` of keyword argument names" msgstr "" -#: library/dis.rst:1558 +#: library/dis.rst:1616 msgid "" "``argc`` is the total of the positional and named arguments, excluding " "``self``. The length of the tuple of keyword argument names is the number of " "named arguments." msgstr "" -#: library/dis.rst:1561 +#: library/dis.rst:1619 msgid "" "``CALL_KW`` pops all arguments, the keyword names, 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 "" -#: library/dis.rst:1570 +#: library/dis.rst:1628 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 " @@ -1656,33 +1720,33 @@ msgid "" "arguments, and pushes the return value returned by the callable object." msgstr "" -#: library/dis.rst:1585 +#: library/dis.rst:1643 msgid "" "Pushes a ``NULL`` to the stack. Used in the call sequence to match the " -"``NULL`` pushed by :opcode:`LOAD_METHOD` for non-method calls." +"``NULL`` pushed by :opcode:`!LOAD_METHOD` for non-method calls." msgstr "" -#: library/dis.rst:1594 +#: library/dis.rst:1652 msgid "" "Pushes a new function object on the stack built from the code object at " "``STACK[-1]``." msgstr "" -#: library/dis.rst:1596 +#: library/dis.rst:1654 msgid "Flag value ``0x04`` is a tuple of strings instead of dictionary" msgstr "" -#: library/dis.rst:1599 +#: library/dis.rst:1657 msgid "Qualified name at ``STACK[-1]`` was removed." msgstr "" -#: library/dis.rst:1602 +#: library/dis.rst:1660 msgid "" "Extra function attributes on the stack, signaled by oparg flags, were " "removed. They now use :opcode:`SET_FUNCTION_ATTRIBUTE`." msgstr "" -#: library/dis.rst:1609 +#: library/dis.rst:1667 msgid "" "Sets an attribute on a function object. Expects the function at " "``STACK[-1]`` and the attribute value to set at ``STACK[-2]``; consumes both " @@ -1690,42 +1754,51 @@ msgid "" "attribute to set:" msgstr "" -#: library/dis.rst:1613 +#: library/dis.rst:1671 msgid "" "``0x01`` a tuple of default values for positional-only and positional-or-" "keyword parameters in positional order" msgstr "" -#: library/dis.rst:1615 +#: library/dis.rst:1673 msgid "``0x02`` a dictionary of keyword-only parameters' default values" msgstr "" -#: library/dis.rst:1616 +#: library/dis.rst:1674 msgid "``0x04`` a tuple of strings containing parameters' annotations" msgstr "" -#: library/dis.rst:1617 +#: library/dis.rst:1675 msgid "``0x08`` a tuple containing cells for free variables, making a closure" msgstr "" -#: library/dis.rst:1626 +#: library/dis.rst:1676 +msgid "``0x10`` the :term:`annotate function` for the function object" +msgstr "" + +#: library/dis.rst:1680 +msgid "" +"Added ``0x10`` to indicate the annotate function for the function object." +msgstr "" + +#: library/dis.rst:1688 msgid "" "Pushes a slice object on the stack. *argc* must be 2 or 3. If it is 2, " "implements::" msgstr "" -#: library/dis.rst:1628 +#: library/dis.rst:1690 msgid "" "end = STACK.pop()\n" "start = STACK.pop()\n" "STACK.append(slice(start, end))" msgstr "" -#: library/dis.rst:1632 +#: library/dis.rst:1694 msgid "if it is 3, implements::" msgstr "" -#: library/dis.rst:1634 +#: library/dis.rst:1696 msgid "" "step = STACK.pop()\n" "end = STACK.pop()\n" @@ -1733,11 +1806,11 @@ msgid "" "STACK.append(slice(start, end, step))" msgstr "" -#: library/dis.rst:1639 +#: library/dis.rst:1701 msgid "See the :func:`slice` built-in function for more information." msgstr "" -#: library/dis.rst:1644 +#: library/dis.rst:1706 msgid "" "Prefixes any opcode which has an argument too big to fit into the default " "one byte. *ext* holds an additional byte which act as higher bits in the " @@ -1745,49 +1818,49 @@ msgid "" "allowed, forming an argument from two-byte to four-byte." msgstr "" -#: library/dis.rst:1652 +#: library/dis.rst:1714 msgid "Convert value to a string, depending on ``oparg``::" msgstr "" -#: library/dis.rst:1654 +#: library/dis.rst:1716 msgid "" "value = STACK.pop()\n" "result = func(value)\n" "STACK.append(result)" msgstr "" -#: library/dis.rst:1658 +#: library/dis.rst:1720 msgid "``oparg == 1``: call :func:`str` on *value*" msgstr "" -#: library/dis.rst:1659 +#: library/dis.rst:1721 msgid "``oparg == 2``: call :func:`repr` on *value*" msgstr "" -#: library/dis.rst:1660 +#: library/dis.rst:1722 msgid "``oparg == 3``: call :func:`ascii` on *value*" msgstr "" -#: library/dis.rst:1675 library/dis.rst:1688 +#: library/dis.rst:1737 library/dis.rst:1750 msgid "Used for implementing formatted string literals (f-strings)." msgstr "" -#: library/dis.rst:1669 +#: library/dis.rst:1731 msgid "Formats the value on top of stack::" msgstr "" -#: library/dis.rst:1671 +#: library/dis.rst:1733 msgid "" "value = STACK.pop()\n" "result = value.__format__(\"\")\n" "STACK.append(result)" msgstr "" -#: library/dis.rst:1681 +#: library/dis.rst:1743 msgid "Formats the given value with the given format spec::" msgstr "" -#: library/dis.rst:1683 +#: library/dis.rst:1745 msgid "" "spec = STACK.pop()\n" "value = STACK.pop()\n" @@ -1795,14 +1868,14 @@ msgid "" "STACK.append(result)" msgstr "" -#: library/dis.rst:1695 +#: library/dis.rst:1757 msgid "" "``STACK[-1]`` is a tuple of keyword attribute names, ``STACK[-2]`` is the " "class being matched against, and ``STACK[-3]`` is the match subject. " "*count* is the number of positional sub-patterns." msgstr "" -#: library/dis.rst:1699 +#: library/dis.rst:1761 msgid "" "Pop ``STACK[-1]``, ``STACK[-2]``, and ``STACK[-3]``. If ``STACK[-3]`` is an " "instance of ``STACK[-2]`` and has the positional and keyword attributes " @@ -1810,219 +1883,219 @@ msgid "" "Otherwise, push ``None``." msgstr "" -#: library/dis.rst:1713 +#: library/dis.rst:1775 msgid "A no-op. Performs internal tracing, debugging and optimization checks." msgstr "" -#: library/dis.rst:1715 +#: library/dis.rst:1777 msgid "" "The ``context`` operand consists of two parts. The lowest two bits indicate " "where the ``RESUME`` occurs:" msgstr "" -#: library/dis.rst:1718 +#: library/dis.rst:1780 msgid "" "``0`` The start of a function, which is neither a generator, coroutine nor " "an async generator" msgstr "" -#: library/dis.rst:1720 +#: library/dis.rst:1782 msgid "``1`` After a ``yield`` expression" msgstr "" -#: library/dis.rst:1721 +#: library/dis.rst:1783 msgid "``2`` After a ``yield from`` expression" msgstr "" -#: library/dis.rst:1722 +#: library/dis.rst:1784 msgid "``3`` After an ``await`` expression" msgstr "" -#: library/dis.rst:1724 +#: library/dis.rst:1786 msgid "" "The next bit is ``1`` if the RESUME is at except-depth ``1``, and ``0`` " "otherwise." msgstr "" -#: library/dis.rst:1729 +#: library/dis.rst:1791 msgid "The oparg value changed to include information about except-depth" msgstr "" -#: library/dis.rst:1735 +#: library/dis.rst:1797 msgid "" "Create a generator, coroutine, or async generator from the current frame. " "Used as first opcode of in code object for the above mentioned callables. " "Clear the current frame and return the newly created generator." msgstr "" -#: library/dis.rst:1744 +#: library/dis.rst:1806 msgid "" "Equivalent to ``STACK[-1] = STACK[-2].send(STACK[-1])``. Used in ``yield " "from`` and ``await`` statements." msgstr "" -#: library/dis.rst:1747 +#: library/dis.rst:1809 msgid "" "If the call raises :exc:`StopIteration`, pop the top value from the stack, " "push the exception's ``value`` attribute, and increment the bytecode counter " "by *delta*." msgstr "" -#: library/dis.rst:1756 +#: library/dis.rst:1818 msgid "" "This is not really an opcode. It identifies the dividing line between " "opcodes in the range [0,255] which don't use their argument and those that " "do (``< HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively)." msgstr "" -#: library/dis.rst:1760 +#: library/dis.rst:1822 msgid "" "If your application uses pseudo instructions or specialized instructions, " "use the :data:`hasarg` collection instead." msgstr "" -#: library/dis.rst:1763 +#: library/dis.rst:1825 msgid "" "Now every instruction has an argument, but opcodes ``< HAVE_ARGUMENT`` " "ignore it. Before, only opcodes ``>= HAVE_ARGUMENT`` had an argument." msgstr "" -#: library/dis.rst:1767 +#: library/dis.rst:1829 msgid "" "Pseudo instructions were added to the :mod:`dis` module, and for them it is " "not true that comparison with ``HAVE_ARGUMENT`` indicates whether they use " "their arg." msgstr "" -#: library/dis.rst:1772 +#: library/dis.rst:1834 msgid "Use :data:`hasarg` instead." msgstr "" -#: library/dis.rst:1777 +#: library/dis.rst:1839 msgid "" "Calls an intrinsic function with one argument. Passes ``STACK[-1]`` as the " "argument and sets ``STACK[-1]`` to the result. Used to implement " "functionality that is not performance critical." msgstr "" -#: library/dis.rst:1835 +#: library/dis.rst:1897 msgid "The operand determines which intrinsic function is called:" msgstr "" -#: library/dis.rst:1838 +#: library/dis.rst:1900 msgid "Operand" msgstr "" -#: library/dis.rst:1838 +#: library/dis.rst:1900 msgid "Description" msgstr "" -#: library/dis.rst:1786 +#: library/dis.rst:1848 msgid "``INTRINSIC_1_INVALID``" msgstr "" -#: library/dis.rst:1840 +#: library/dis.rst:1902 msgid "Not valid" msgstr "" -#: library/dis.rst:1788 +#: library/dis.rst:1850 msgid "``INTRINSIC_PRINT``" msgstr "" -#: library/dis.rst:1788 +#: library/dis.rst:1850 msgid "Prints the argument to standard out. Used in the REPL." msgstr "" -#: library/dis.rst:1791 +#: library/dis.rst:1853 msgid "``INTRINSIC_IMPORT_STAR``" msgstr "" -#: library/dis.rst:1791 +#: library/dis.rst:1853 msgid "Performs ``import *`` for the named module." msgstr "" -#: library/dis.rst:1794 +#: library/dis.rst:1856 msgid "``INTRINSIC_STOPITERATION_ERROR``" msgstr "" -#: library/dis.rst:1794 +#: library/dis.rst:1856 msgid "Extracts the return value from a ``StopIteration`` exception." msgstr "" -#: library/dis.rst:1797 +#: library/dis.rst:1859 msgid "``INTRINSIC_ASYNC_GEN_WRAP``" msgstr "" -#: library/dis.rst:1797 +#: library/dis.rst:1859 msgid "Wraps an async generator value" msgstr "" -#: library/dis.rst:1799 +#: library/dis.rst:1861 msgid "``INTRINSIC_UNARY_POSITIVE``" msgstr "" -#: library/dis.rst:1799 +#: library/dis.rst:1861 msgid "Performs the unary ``+`` operation" msgstr "" -#: library/dis.rst:1802 +#: library/dis.rst:1864 msgid "``INTRINSIC_LIST_TO_TUPLE``" msgstr "" -#: library/dis.rst:1802 +#: library/dis.rst:1864 msgid "Converts a list to a tuple" msgstr "" -#: library/dis.rst:1804 +#: library/dis.rst:1866 msgid "``INTRINSIC_TYPEVAR``" msgstr "" -#: library/dis.rst:1804 +#: library/dis.rst:1866 msgid "Creates a :class:`typing.TypeVar`" msgstr "" -#: library/dis.rst:1806 +#: library/dis.rst:1868 msgid "``INTRINSIC_PARAMSPEC``" msgstr "" -#: library/dis.rst:1806 +#: library/dis.rst:1868 msgid "Creates a :class:`typing.ParamSpec`" msgstr "" -#: library/dis.rst:1809 +#: library/dis.rst:1871 msgid "``INTRINSIC_TYPEVARTUPLE``" msgstr "" -#: library/dis.rst:1809 +#: library/dis.rst:1871 msgid "Creates a :class:`typing.TypeVarTuple`" msgstr "" -#: library/dis.rst:1812 +#: library/dis.rst:1874 msgid "``INTRINSIC_SUBSCRIPT_GENERIC``" msgstr "" -#: library/dis.rst:1812 +#: library/dis.rst:1874 msgid "Returns :class:`typing.Generic` subscripted with the argument" msgstr "" -#: library/dis.rst:1815 +#: library/dis.rst:1877 msgid "``INTRINSIC_TYPEALIAS``" msgstr "" -#: library/dis.rst:1815 +#: library/dis.rst:1877 msgid "" "Creates a :class:`typing.TypeAliasType`; used in the :keyword:`type` " "statement. The argument is a tuple of the type alias's name, type " "parameters, and value." msgstr "" -#: library/dis.rst:1827 +#: library/dis.rst:1889 msgid "" "Calls an intrinsic function with two arguments. Used to implement " "functionality that is not performance critical::" msgstr "" -#: library/dis.rst:1830 +#: library/dis.rst:1892 msgid "" "arg2 = STACK.pop()\n" "arg1 = STACK.pop()\n" @@ -2030,43 +2103,43 @@ msgid "" "STACK.append(result)" msgstr "" -#: library/dis.rst:1840 +#: library/dis.rst:1902 msgid "``INTRINSIC_2_INVALID``" msgstr "" -#: library/dis.rst:1842 +#: library/dis.rst:1904 msgid "``INTRINSIC_PREP_RERAISE_STAR``" msgstr "" -#: library/dis.rst:1842 +#: library/dis.rst:1904 msgid "Calculates the :exc:`ExceptionGroup` to raise from a ``try-except*``." msgstr "" -#: library/dis.rst:1846 +#: library/dis.rst:1908 msgid "``INTRINSIC_TYPEVAR_WITH_BOUND``" msgstr "" -#: library/dis.rst:1846 +#: library/dis.rst:1908 msgid "Creates a :class:`typing.TypeVar` with a bound." msgstr "" -#: library/dis.rst:1849 +#: library/dis.rst:1911 msgid "``INTRINSIC_TYPEVAR_WITH_CONSTRAINTS``" msgstr "" -#: library/dis.rst:1849 +#: library/dis.rst:1911 msgid "Creates a :class:`typing.TypeVar` with constraints." msgstr "" -#: library/dis.rst:1853 +#: library/dis.rst:1915 msgid "``INTRINSIC_SET_FUNCTION_TYPE_PARAMS``" msgstr "" -#: library/dis.rst:1853 +#: library/dis.rst:1915 msgid "Sets the ``__type_params__`` attribute of a function." msgstr "" -#: library/dis.rst:1862 +#: library/dis.rst:1924 msgid "" "Performs special method lookup on ``STACK[-1]``. If ``type(STACK[-1])." "__xxx__`` is a method, leave ``type(STACK[-1]).__xxx__; STACK[-1]`` on the " @@ -2074,25 +2147,25 @@ msgid "" "__xxx__; NULL`` on the stack." msgstr "" -#: library/dis.rst:1871 +#: library/dis.rst:1933 msgid "**Pseudo-instructions**" msgstr "" -#: library/dis.rst:1873 +#: library/dis.rst:1935 msgid "" "These opcodes do not appear in Python bytecode. They are used by the " "compiler but are replaced by real opcodes or removed before bytecode is " "generated." msgstr "" -#: library/dis.rst:1878 +#: library/dis.rst:1940 msgid "" "Set up an exception handler for the following code block. If an exception " "occurs, the value stack level is restored to its current state and control " "is transferred to the exception handler at ``target``." msgstr "" -#: library/dis.rst:1885 +#: library/dis.rst:1947 msgid "" "Like ``SETUP_FINALLY``, but in case of an exception also pushes the last " "instruction (``lasti``) to the stack so that ``RERAISE`` can restore it. If " @@ -2101,97 +2174,96 @@ msgid "" "exception handler at ``target``." msgstr "" -#: library/dis.rst:1894 +#: library/dis.rst:1956 msgid "" "Like ``SETUP_CLEANUP``, but in case of an exception one more item is popped " "from the stack before control is transferred to the exception handler at " "``target``." msgstr "" -#: library/dis.rst:1898 +#: library/dis.rst:1960 msgid "" "This variant is used in :keyword:`with` and :keyword:`async with` " "constructs, which push the return value of the context manager's :meth:" "`~object.__enter__` or :meth:`~object.__aenter__` to the stack." msgstr "" -#: library/dis.rst:1905 +#: library/dis.rst:1967 msgid "" "Marks the end of the code block associated with the last ``SETUP_FINALLY``, " "``SETUP_CLEANUP`` or ``SETUP_WITH``." msgstr "" -#: library/dis.rst:1911 +#: library/dis.rst:1973 +msgid "" +"Works as :opcode:`LOAD_CONST`, but is more efficient for immortal objects." +msgstr "" + +#: library/dis.rst:1979 msgid "" "Undirected relative jump instructions which are replaced by their directed " "(forward/backward) counterparts by the assembler." msgstr "" -#: library/dis.rst:1917 +#: library/dis.rst:1985 msgid "" "Conditional jumps which do not impact the stack. Replaced by the sequence " "``COPY 1``, ``TO_BOOL``, ``POP_JUMP_IF_TRUE/FALSE``." msgstr "" -#: library/dis.rst:1922 +#: library/dis.rst:1990 msgid "" "Pushes a reference to the cell contained in slot ``i`` of the \"fast " "locals\" storage." msgstr "" -#: library/dis.rst:1925 +#: library/dis.rst:1993 msgid "" "Note that ``LOAD_CLOSURE`` is replaced with ``LOAD_FAST`` in the assembler." msgstr "" -#: library/dis.rst:1927 +#: library/dis.rst:1995 msgid "This opcode is now a pseudo-instruction." msgstr "" -#: library/dis.rst:1933 -msgid "" -"Optimized unbound method lookup. Emitted as a ``LOAD_ATTR`` opcode with a " -"flag set in the arg." -msgstr "" - -#: library/dis.rst:1940 +#: library/dis.rst:2002 msgid "Opcode collections" msgstr "" -#: library/dis.rst:1942 +#: library/dis.rst:2004 msgid "" "These collections are provided for automatic introspection of bytecode " "instructions:" msgstr "" -#: library/dis.rst:1945 +#: library/dis.rst:2007 msgid "" "The collections now contain pseudo instructions and instrumented " "instructions as well. These are opcodes with values ``>= MIN_PSEUDO_OPCODE`` " "and ``>= MIN_INSTRUMENTED_OPCODE``." msgstr "" -#: library/dis.rst:1952 +#: library/dis.rst:2014 msgid "Sequence of operation names, indexable using the bytecode." msgstr "" -#: library/dis.rst:1957 +#: library/dis.rst:2019 msgid "Dictionary mapping operation names to bytecodes." msgstr "" -#: library/dis.rst:1962 +#: library/dis.rst:2024 msgid "Sequence of all compare operation names." msgstr "" -#: library/dis.rst:1967 +#: library/dis.rst:2029 msgid "Sequence of bytecodes that use their argument." msgstr "" -#: library/dis.rst:1974 +#: library/dis.rst:2036 msgid "Sequence of bytecodes that access a constant." msgstr "" -#: library/dis.rst:1979 +#: library/dis.rst:2041 msgid "" "Sequence of bytecodes that access a :term:`free (closure) variable `. 'free' in this context refers to names in the current scope that " @@ -2200,46 +2272,46 @@ msgid "" "scopes." msgstr "" -#: library/dis.rst:1987 +#: library/dis.rst:2049 msgid "Sequence of bytecodes that access an attribute by name." msgstr "" -#: library/dis.rst:1992 +#: library/dis.rst:2054 msgid "Sequence of bytecodes that have a jump target. All jumps are relative." msgstr "" -#: library/dis.rst:1999 +#: library/dis.rst:2061 msgid "Sequence of bytecodes that access a local variable." msgstr "" -#: library/dis.rst:2004 +#: library/dis.rst:2066 msgid "Sequence of bytecodes of Boolean operations." msgstr "" -#: library/dis.rst:2008 +#: library/dis.rst:2070 msgid "Sequence of bytecodes that set an exception handler." msgstr "" -#: library/dis.rst:2015 +#: library/dis.rst:2077 msgid "Sequence of bytecodes that have a relative jump target." msgstr "" -#: library/dis.rst:2017 +#: library/dis.rst:2079 msgid "All jumps are now relative. Use :data:`hasjump`." msgstr "" -#: library/dis.rst:2023 +#: library/dis.rst:2085 msgid "Sequence of bytecodes that have an absolute jump target." msgstr "" -#: library/dis.rst:2025 +#: library/dis.rst:2087 msgid "All jumps are now relative. This list is empty." msgstr "" -#: library/dis.rst:1624 +#: library/dis.rst:1686 msgid "built-in function" msgstr "" -#: library/dis.rst:1624 +#: library/dis.rst:1686 msgid "slice" msgstr "" diff --git a/library/distribution.po b/library/distribution.po index dd3f5b16..9539ea64 100644 --- a/library/distribution.po +++ b/library/distribution.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/distutils.po b/library/distutils.po index 60179d93..22fddf01 100644 --- a/library/distutils.po +++ b/library/distutils.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/doctest.po b/library/doctest.po index 0a15ec00..ea6a306d 100644 --- a/library/doctest.po +++ b/library/doctest.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -426,7 +426,7 @@ msgid "" "searched. Objects imported into the module are not searched." msgstr "" -#: library/doctest.rst:317 +#: library/doctest.rst:321 msgid "" "In addition, there are cases when you want tests to be part of a module but " "not part of the help text, which requires that the tests not be included in " @@ -439,11 +439,11 @@ msgid "" "__test__.K``." msgstr "" -#: library/doctest.rst:326 +#: library/doctest.rst:330 msgid "For example, place this block of code at the top of :file:`example.py`:" msgstr "" -#: library/doctest.rst:328 +#: library/doctest.rst:332 msgid "" "__test__ = {\n" " 'numbers': \"\"\"\n" @@ -456,7 +456,7 @@ msgid "" "}" msgstr "" -#: library/doctest.rst:340 +#: library/doctest.rst:344 msgid "" "The value of ``example.__test__[\"numbers\"]`` will be treated as a " "docstring and all the tests inside it will be run. It is important to note " @@ -465,24 +465,36 @@ msgid "" "scanned for tests." msgstr "" -#: library/doctest.rst:346 +#: library/doctest.rst:350 msgid "" "Any classes found are recursively searched similarly, to test docstrings in " "their contained methods and nested classes." msgstr "" -#: library/doctest.rst:353 +#: library/doctest.rst:355 +msgid "" +"``doctest`` can only automatically discover classes and functions that are " +"defined at the module level or inside other classes." +msgstr "" + +#: library/doctest.rst:358 +msgid "" +"Since nested classes and functions only exist when an outer function is " +"called, they cannot be discovered. Define them outside to make them visible." +msgstr "" + +#: library/doctest.rst:364 msgid "How are Docstring Examples Recognized?" msgstr "" -#: library/doctest.rst:355 +#: library/doctest.rst:366 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 "" -#: library/doctest.rst:360 +#: library/doctest.rst:371 msgid "" ">>> # comments are ignored\n" ">>> x = 12\n" @@ -501,18 +513,18 @@ msgid "" ">>>" msgstr "" -#: library/doctest.rst:380 +#: library/doctest.rst:391 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 "" -#: library/doctest.rst:384 +#: library/doctest.rst:395 msgid "The fine print:" msgstr "" -#: library/doctest.rst:386 +#: library/doctest.rst:397 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 " @@ -520,7 +532,7 @@ msgid "" "line is expected." msgstr "" -#: library/doctest.rst:391 +#: library/doctest.rst:402 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 " @@ -535,20 +547,20 @@ msgid "" "`DocTestParser` class." msgstr "" -#: library/doctest.rst:403 +#: library/doctest.rst:414 msgid "" "Output to stdout is captured, but not output to stderr (exception tracebacks " "are captured via a different means)." msgstr "" -#: library/doctest.rst:406 +#: library/doctest.rst:417 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 "" -#: library/doctest.rst:410 +#: library/doctest.rst:421 msgid "" ">>> def f(x):\n" "... r'''Backslashes in a raw docstring: m\\n'''\n" @@ -557,7 +569,7 @@ msgid "" "Backslashes in a raw docstring: m\\n" msgstr "" -#: library/doctest.rst:416 +#: library/doctest.rst:427 msgid "" "Otherwise, the backslash will be interpreted as part of the string. For " "example, the ``\\n`` above would be interpreted as a newline character. " @@ -565,7 +577,7 @@ msgid "" "use a raw string)::" msgstr "" -#: library/doctest.rst:420 +#: library/doctest.rst:431 msgid "" ">>> def f(x):\n" "... '''Backslashes in a raw docstring: m\\\\n'''\n" @@ -574,11 +586,11 @@ msgid "" "Backslashes in a raw docstring: m\\n" msgstr "" -#: library/doctest.rst:426 +#: library/doctest.rst:437 msgid "The starting column doesn't matter::" msgstr "" -#: library/doctest.rst:428 +#: library/doctest.rst:439 msgid "" ">>> assert \"Easy!\"\n" " >>> import math\n" @@ -586,17 +598,17 @@ msgid "" " 1" msgstr "" -#: library/doctest.rst:433 +#: library/doctest.rst:444 msgid "" "and as many leading whitespace characters are stripped from the expected " "output as appeared in the initial ``'>>> '`` line that started the example." msgstr "" -#: library/doctest.rst:440 +#: library/doctest.rst:451 msgid "What's the Execution Context?" msgstr "" -#: library/doctest.rst:442 +#: library/doctest.rst:453 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 " @@ -607,17 +619,17 @@ msgid "" "defined in other docstrings." msgstr "" -#: library/doctest.rst:450 +#: library/doctest.rst:461 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 "" -#: library/doctest.rst:457 +#: library/doctest.rst:468 msgid "What About Exceptions?" msgstr "" -#: library/doctest.rst:459 +#: library/doctest.rst:470 msgid "" "No problem, provided that the traceback is the only output produced by the " "example: just paste in the traceback. [#]_ Since tracebacks contain details " @@ -626,11 +638,11 @@ msgid "" "it accepts." msgstr "" -#: library/doctest.rst:465 +#: library/doctest.rst:476 msgid "Simple example::" msgstr "" -#: library/doctest.rst:467 +#: library/doctest.rst:478 msgid "" ">>> [1, 2, 3].remove(42)\n" "Traceback (most recent call last):\n" @@ -638,33 +650,33 @@ msgid "" "ValueError: list.remove(x): x not in list" msgstr "" -#: library/doctest.rst:472 +#: library/doctest.rst:483 msgid "" "That doctest succeeds if :exc:`ValueError` is raised, with the ``list." "remove(x): x not in list`` detail as shown." msgstr "" -#: library/doctest.rst:475 +#: library/doctest.rst:486 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 "" -#: library/doctest.rst:479 +#: library/doctest.rst:490 msgid "" "Traceback (most recent call last):\n" "Traceback (innermost last):" msgstr "" -#: library/doctest.rst:482 +#: library/doctest.rst:493 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 "" -#: library/doctest.rst:486 +#: library/doctest.rst:497 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 " @@ -672,7 +684,7 @@ msgid "" "multi-line detail::" msgstr "" -#: library/doctest.rst:491 +#: library/doctest.rst:502 msgid "" ">>> raise ValueError('multi\\n line\\ndetail')\n" "Traceback (most recent call last):\n" @@ -682,20 +694,20 @@ msgid "" "detail" msgstr "" -#: library/doctest.rst:498 +#: library/doctest.rst:509 msgid "" "The last three lines (starting with :exc:`ValueError`) are compared against " "the exception's type and detail, and the rest are ignored." msgstr "" -#: library/doctest.rst:501 +#: library/doctest.rst:512 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 "" -#: library/doctest.rst:504 +#: library/doctest.rst:515 msgid "" ">>> raise ValueError('multi\\n line\\ndetail')\n" "Traceback (most recent call last):\n" @@ -705,7 +717,7 @@ msgid "" "detail" msgstr "" -#: library/doctest.rst:511 +#: library/doctest.rst:522 msgid "" "Note that tracebacks are treated very specially. In particular, in the " "rewritten example, the use of ``...`` is independent of doctest's :const:" @@ -714,11 +726,11 @@ msgid "" "transcript of a Monty Python skit." msgstr "" -#: library/doctest.rst:517 +#: library/doctest.rst:528 msgid "Some details you should read once, but won't need to remember:" msgstr "" -#: library/doctest.rst:519 +#: library/doctest.rst:530 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 " @@ -728,7 +740,7 @@ msgid "" "create real problems." msgstr "" -#: library/doctest.rst:526 +#: library/doctest.rst:537 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. " @@ -737,14 +749,14 @@ msgid "" "course this does the right thing for genuine tracebacks." msgstr "" -#: library/doctest.rst:532 +#: library/doctest.rst:543 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 "" -#: library/doctest.rst:536 +#: library/doctest.rst:547 msgid "" "The interactive shell omits the traceback header line for some :exc:" "`SyntaxError`\\ s. But doctest uses the traceback header line to " @@ -753,13 +765,13 @@ msgid "" "need to manually add the traceback header line to your test example." msgstr "" -#: library/doctest.rst:544 +#: library/doctest.rst:555 msgid "" "For some exceptions, Python displays the position of the error using ``^`` " "markers and tildes::" msgstr "" -#: library/doctest.rst:547 +#: library/doctest.rst:558 msgid "" ">>> 1 + None\n" " File \"\", line 1\n" @@ -768,7 +780,7 @@ msgid "" "TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'" msgstr "" -#: library/doctest.rst:553 +#: library/doctest.rst:564 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 " @@ -776,7 +788,7 @@ msgid "" "location::" msgstr "" -#: library/doctest.rst:557 +#: library/doctest.rst:568 msgid "" ">>> 1 + None\n" " File \"\", line 1\n" @@ -785,11 +797,11 @@ msgid "" "TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'" msgstr "" -#: library/doctest.rst:568 +#: library/doctest.rst:579 msgid "Option Flags" msgstr "" -#: library/doctest.rst:570 +#: library/doctest.rst:581 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 :" @@ -799,13 +811,13 @@ msgid "" "option." msgstr "" -#: library/doctest.rst:576 +#: library/doctest.rst:587 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 "" -#: library/doctest.rst:582 +#: library/doctest.rst:593 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 " @@ -817,7 +829,7 @@ msgid "" "not for several years." msgstr "" -#: library/doctest.rst:594 +#: library/doctest.rst:605 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 " @@ -826,7 +838,7 @@ msgid "" "`DONT_ACCEPT_BLANKLINE` is specified, this substitution is not allowed." msgstr "" -#: library/doctest.rst:603 +#: library/doctest.rst:614 msgid "" "When specified, all sequences of whitespace (blanks and newlines) are " "treated as equal. Any sequence of whitespace within the expected output " @@ -836,7 +848,7 @@ msgid "" "across multiple lines in your source." msgstr "" -#: library/doctest.rst:614 +#: library/doctest.rst:625 msgid "" "When specified, an ellipsis marker (``...``) in the expected output can " "match any substring in the actual output. This includes substrings that " @@ -845,14 +857,14 @@ msgid "" "matched too much!\" surprises that ``.*`` is prone to in regular expressions." msgstr "" -#: library/doctest.rst:623 +#: library/doctest.rst:634 msgid "" "When specified, doctests expecting exceptions pass so long as an exception " "of the expected type is raised, even if the details (message and fully " "qualified exception name) don't match." msgstr "" -#: library/doctest.rst:627 +#: library/doctest.rst:638 msgid "" "For example, an example expecting ``ValueError: 42`` will pass if the actual " "exception raised is ``ValueError: 3*14``, but will fail if, say, a :exc:" @@ -862,7 +874,7 @@ msgid "" "these variations will work with the flag specified:" msgstr "" -#: library/doctest.rst:635 +#: library/doctest.rst:646 msgid "" ">>> raise Exception('message')\n" "Traceback (most recent call last):\n" @@ -877,20 +889,20 @@ msgid "" "__main__.Exception: message" msgstr "" -#: library/doctest.rst:649 +#: library/doctest.rst:660 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 the " "module name is present or matches exactly." msgstr "" -#: library/doctest.rst:653 +#: library/doctest.rst:664 msgid "" ":const:`IGNORE_EXCEPTION_DETAIL` now also ignores any information relating " "to the module containing the exception under test." msgstr "" -#: library/doctest.rst:660 +#: library/doctest.rst:671 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, " @@ -899,32 +911,32 @@ msgid "" "might depend on resources which would be unavailable to the test driver." msgstr "" -#: library/doctest.rst:666 +#: library/doctest.rst:677 msgid "" "The SKIP flag can also be used for temporarily \"commenting out\" examples." msgstr "" -#: library/doctest.rst:671 +#: library/doctest.rst:682 msgid "A bitmask or'ing together all the comparison flags above." msgstr "" -#: library/doctest.rst:673 +#: library/doctest.rst:684 msgid "The second group of options controls how test failures are reported:" msgstr "" -#: library/doctest.rst:678 +#: library/doctest.rst:689 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "are displayed using a unified diff." msgstr "" -#: library/doctest.rst:684 +#: library/doctest.rst:695 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "will be displayed using a context diff." msgstr "" -#: library/doctest.rst:690 +#: library/doctest.rst:701 msgid "" "When specified, differences are computed by ``difflib.Differ``, using the " "same algorithm as the popular :file:`ndiff.py` utility. This is the only " @@ -934,7 +946,7 @@ msgid "" "mismatching column positions." msgstr "" -#: library/doctest.rst:699 +#: library/doctest.rst:710 msgid "" "When specified, display the first failing example in each doctest, but " "suppress output for all remaining examples. This will prevent doctest from " @@ -945,7 +957,7 @@ msgid "" "of failures reported; only the output is suppressed." msgstr "" -#: library/doctest.rst:710 +#: library/doctest.rst:721 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 " @@ -953,17 +965,17 @@ msgid "" "first failure won't even produce debugging output." msgstr "" -#: library/doctest.rst:718 +#: library/doctest.rst:729 msgid "A bitmask or'ing together all the reporting flags above." msgstr "" -#: library/doctest.rst:721 +#: library/doctest.rst:732 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 "" -#: library/doctest.rst:727 +#: library/doctest.rst:738 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 :" @@ -972,46 +984,46 @@ msgid "" "be called using the following idiom::" msgstr "" -#: library/doctest.rst:733 +#: library/doctest.rst:744 msgid "MY_FLAG = register_optionflag('MY_FLAG')" msgstr "" -#: library/doctest.rst:743 +#: library/doctest.rst:754 msgid "Directives" msgstr "" -#: library/doctest.rst:745 +#: library/doctest.rst:756 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 "" -#: library/doctest.rst:756 +#: library/doctest.rst:767 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 "" -#: library/doctest.rst:760 +#: library/doctest.rst:771 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 "" -#: library/doctest.rst:763 +#: library/doctest.rst:774 msgid "For example, this test passes:" msgstr "" -#: library/doctest.rst:765 +#: library/doctest.rst:776 msgid "" ">>> print(list(range(20))) # doctest: +NORMALIZE_WHITESPACE\n" "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9,\n" "10, 11, 12, 13, 14, 15, 16, 17, 18, 19]" msgstr "" -#: library/doctest.rst:772 +#: library/doctest.rst:783 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 " @@ -1019,52 +1031,52 @@ msgid "" "a directive to do so:" msgstr "" -#: library/doctest.rst:777 +#: library/doctest.rst:788 msgid "" ">>> print(list(range(20))) # doctest: +ELLIPSIS\n" "[0, 1, ..., 18, 19]" msgstr "" -#: library/doctest.rst:783 +#: library/doctest.rst:794 msgid "" "Multiple directives can be used on a single physical line, separated by " "commas:" msgstr "" -#: library/doctest.rst:786 +#: library/doctest.rst:797 msgid "" ">>> print(list(range(20))) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE\n" "[0, 1, ..., 18, 19]" msgstr "" -#: library/doctest.rst:792 +#: library/doctest.rst:803 msgid "" "If multiple directive comments are used for a single example, then they are " "combined:" msgstr "" -#: library/doctest.rst:795 +#: library/doctest.rst:806 msgid "" ">>> print(list(range(20))) # doctest: +ELLIPSIS\n" "... # doctest: +NORMALIZE_WHITESPACE\n" "[0, 1, ..., 18, 19]" msgstr "" -#: library/doctest.rst:802 +#: library/doctest.rst:813 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 "" -#: library/doctest.rst:806 +#: library/doctest.rst:817 msgid "" ">>> print(list(range(5)) + list(range(10, 20)) + list(range(30, 40)))\n" "... # doctest: +ELLIPSIS\n" "[0, ..., 4, 10, ..., 19, 30, ..., 39]" msgstr "" -#: library/doctest.rst:813 +#: library/doctest.rst:824 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 " @@ -1074,11 +1086,11 @@ msgid "" "be useful." msgstr "" -#: library/doctest.rst:823 +#: library/doctest.rst:834 msgid "Warnings" msgstr "" -#: library/doctest.rst:825 +#: library/doctest.rst:836 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 " @@ -1088,42 +1100,42 @@ msgid "" "test like ::" msgstr "" -#: library/doctest.rst:831 +#: library/doctest.rst:842 msgid "" ">>> foo()\n" "{\"spam\", \"eggs\"}" msgstr "" -#: library/doctest.rst:834 +#: library/doctest.rst:845 msgid "is vulnerable! One workaround is to do ::" msgstr "" -#: library/doctest.rst:836 +#: library/doctest.rst:847 msgid "" ">>> foo() == {\"spam\", \"eggs\"}\n" "True" msgstr "" -#: library/doctest.rst:839 +#: library/doctest.rst:850 msgid "instead. Another is to do ::" msgstr "" -#: library/doctest.rst:841 +#: library/doctest.rst:852 msgid "" ">>> d = sorted(foo())\n" ">>> d\n" "['eggs', 'spam']" msgstr "" -#: library/doctest.rst:845 +#: library/doctest.rst:856 msgid "There are others, but you get the idea." msgstr "" -#: library/doctest.rst:847 +#: library/doctest.rst:858 msgid "Another bad idea is to print things that embed an object address, like" msgstr "" -#: library/doctest.rst:849 +#: library/doctest.rst:860 msgid "" ">>> id(1.0) # certain to fail some of the time\n" "7948648\n" @@ -1132,25 +1144,25 @@ msgid "" "" msgstr "" -#: library/doctest.rst:857 +#: library/doctest.rst:868 msgid "" "The :const:`ELLIPSIS` directive gives a nice approach for the last example:" msgstr "" -#: library/doctest.rst:859 +#: library/doctest.rst:870 msgid "" ">>> C() # doctest: +ELLIPSIS\n" "" msgstr "" -#: library/doctest.rst:865 +#: library/doctest.rst:876 msgid "" "Floating-point numbers are also subject to small output variations across " "platforms, because Python defers to the platform C library for some floating-" "point calculations, and C libraries vary widely in quality here. ::" msgstr "" -#: library/doctest.rst:869 +#: library/doctest.rst:880 msgid "" ">>> 1000**0.1 # risky\n" "1.9952623149688797\n" @@ -1160,29 +1172,29 @@ msgid "" "1.9953" msgstr "" -#: library/doctest.rst:876 +#: library/doctest.rst:887 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 "" -#: library/doctest.rst:879 +#: library/doctest.rst:890 msgid "" ">>> 3./4 # utterly safe\n" "0.75" msgstr "" -#: library/doctest.rst:882 +#: library/doctest.rst:893 msgid "" "Simple fractions are also easier for people to understand, and that makes " "for better documentation." msgstr "" -#: library/doctest.rst:889 +#: library/doctest.rst:900 msgid "Basic API" msgstr "" -#: library/doctest.rst:891 +#: library/doctest.rst:902 msgid "" "The functions :func:`testmod` and :func:`testfile` provide a simple " "interface to doctest that should be sufficient for most basic uses. For a " @@ -1190,25 +1202,25 @@ msgid "" "simple-testmod` and :ref:`doctest-simple-testfile`." msgstr "" -#: library/doctest.rst:899 +#: library/doctest.rst:910 msgid "" "All arguments except *filename* are optional, and should be specified in " "keyword form." msgstr "" -#: library/doctest.rst:902 +#: library/doctest.rst:913 msgid "" "Test examples in the file named *filename*. Return ``(failure_count, " "test_count)``." msgstr "" -#: library/doctest.rst:905 +#: library/doctest.rst:916 msgid "" "Optional argument *module_relative* specifies how the filename should be " "interpreted:" msgstr "" -#: library/doctest.rst:908 +#: library/doctest.rst:919 msgid "" "If *module_relative* is ``True`` (the default), then *filename* specifies an " "OS-independent module-relative path. By default, this path is relative to " @@ -1218,20 +1230,20 @@ msgid "" "absolute path (i.e., it may not begin with ``/``)." msgstr "" -#: library/doctest.rst:915 +#: library/doctest.rst:926 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 "" -#: library/doctest.rst:919 +#: library/doctest.rst:930 msgid "" "Optional argument *name* gives the name of the test; by default, or if " "``None``, ``os.path.basename(filename)`` is used." msgstr "" -#: library/doctest.rst:922 +#: library/doctest.rst:933 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-" @@ -1240,7 +1252,7 @@ msgid "" "is an error to specify *package* if *module_relative* is ``False``." msgstr "" -#: library/doctest.rst:928 +#: library/doctest.rst:939 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 " @@ -1248,7 +1260,7 @@ msgid "" "``None``, a new empty dict is used." msgstr "" -#: library/doctest.rst:933 +#: library/doctest.rst:944 msgid "" "Optional argument *extraglobs* gives a dict merged into the globals used to " "execute examples. This works like :meth:`dict.update`: if *globs* and " @@ -1261,27 +1273,27 @@ msgid "" "tested." msgstr "" -#: library/doctest.rst:942 +#: library/doctest.rst:953 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 :data:`sys.argv`." msgstr "" -#: library/doctest.rst:946 +#: library/doctest.rst:957 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 "" -#: library/doctest.rst:950 +#: library/doctest.rst:961 msgid "" "Optional argument *optionflags* (default value ``0``) takes the :ref:" "`bitwise OR ` of option flags. See section :ref:`doctest-options`." msgstr "" -#: library/doctest.rst:954 +#: library/doctest.rst:965 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. " @@ -1289,33 +1301,33 @@ msgid "" "continue running examples." msgstr "" -#: library/doctest.rst:1102 +#: library/doctest.rst:1113 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 "" -#: library/doctest.rst:1106 +#: library/doctest.rst:1117 msgid "" "Optional argument *encoding* specifies an encoding that should be used to " "convert the file to unicode." msgstr "" -#: library/doctest.rst:969 +#: library/doctest.rst:980 msgid "" "All arguments are optional, and all except for *m* should be specified in " "keyword form." msgstr "" -#: library/doctest.rst:972 +#: library/doctest.rst:983 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 "" -#: library/doctest.rst:976 +#: library/doctest.rst:987 msgid "" "Also test examples reachable from dict ``m.__test__``, if it exists. ``m." "__test__`` maps names (strings) to functions, classes and strings; function " @@ -1323,22 +1335,22 @@ msgid "" "directly, as if they were docstrings." msgstr "" -#: library/doctest.rst:981 +#: library/doctest.rst:992 msgid "" "Only docstrings attached to objects belonging to module *m* are searched." msgstr "" -#: library/doctest.rst:983 +#: library/doctest.rst:994 msgid "Return ``(failure_count, test_count)``." msgstr "" -#: library/doctest.rst:985 +#: library/doctest.rst:996 msgid "" "Optional argument *name* gives the name of the module; by default, or if " "``None``, ``m.__name__`` is used." msgstr "" -#: library/doctest.rst:988 +#: library/doctest.rst:999 msgid "" "Optional argument *exclude_empty* defaults to false. If true, objects for " "which no doctests are found are excluded from consideration. The default is " @@ -1349,39 +1361,39 @@ msgid "" "defaults to true." msgstr "" -#: library/doctest.rst:996 +#: library/doctest.rst:1007 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 "" -#: library/doctest.rst:1003 +#: library/doctest.rst:1014 msgid "" "Test examples associated with object *f*; for example, *f* may be a string, " "a module, a function, or a class object." msgstr "" -#: library/doctest.rst:1006 +#: library/doctest.rst:1017 msgid "" "A shallow copy of dictionary argument *globs* is used for the execution " "context." msgstr "" -#: library/doctest.rst:1008 +#: library/doctest.rst:1019 msgid "" "Optional argument *name* is used in failure messages, and defaults to " "``\"NoName\"``." msgstr "" -#: library/doctest.rst:1011 +#: library/doctest.rst:1022 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 "" -#: library/doctest.rst:1014 +#: library/doctest.rst:1025 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 " @@ -1389,16 +1401,16 @@ msgid "" "found in *globs*." msgstr "" -#: library/doctest.rst:1018 +#: library/doctest.rst:1029 msgid "" "Optional argument *optionflags* works as for function :func:`testfile` above." msgstr "" -#: library/doctest.rst:1024 +#: library/doctest.rst:1035 msgid "Unittest API" msgstr "" -#: library/doctest.rst:1026 +#: library/doctest.rst:1037 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 " @@ -1408,7 +1420,7 @@ msgid "" "your test module::" msgstr "" -#: library/doctest.rst:1032 +#: library/doctest.rst:1043 msgid "" "import unittest\n" "import doctest\n" @@ -1419,19 +1431,19 @@ msgid "" " return tests" msgstr "" -#: library/doctest.rst:1040 +#: library/doctest.rst:1051 msgid "" "There are two main functions for creating :class:`unittest.TestSuite` " "instances from text files and modules with doctests:" msgstr "" -#: library/doctest.rst:1046 +#: library/doctest.rst:1057 msgid "" "Convert doctest tests from one or more text files to a :class:`unittest." "TestSuite`." msgstr "" -#: library/doctest.rst:1049 +#: library/doctest.rst:1060 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 " @@ -1442,21 +1454,21 @@ msgid "" "marked as skipped." msgstr "" -#: library/doctest.rst:1056 +#: library/doctest.rst:1067 msgid "Pass one or more paths (as strings) to text files to be examined." msgstr "" -#: library/doctest.rst:1058 +#: library/doctest.rst:1069 msgid "Options may be provided as keyword arguments:" msgstr "" -#: library/doctest.rst:1060 +#: library/doctest.rst:1071 msgid "" "Optional argument *module_relative* specifies how the filenames in *paths* " "should be interpreted:" msgstr "" -#: library/doctest.rst:1063 +#: library/doctest.rst:1074 msgid "" "If *module_relative* is ``True`` (the default), then each filename in " "*paths* specifies an OS-independent module-relative path. By default, this " @@ -1467,14 +1479,14 @@ msgid "" "``)." msgstr "" -#: library/doctest.rst:1071 +#: library/doctest.rst:1082 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 "" -#: library/doctest.rst:1075 +#: library/doctest.rst:1086 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-" @@ -1484,7 +1496,7 @@ msgid "" "``False``." msgstr "" -#: library/doctest.rst:1082 +#: library/doctest.rst:1093 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 " @@ -1492,7 +1504,7 @@ msgid "" "the test globals as the :attr:`~DocTest.globs` attribute of the test passed." msgstr "" -#: library/doctest.rst:1087 +#: library/doctest.rst:1098 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* " @@ -1501,14 +1513,14 @@ msgid "" "test passed." msgstr "" -#: library/doctest.rst:1093 +#: library/doctest.rst:1104 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 "" -#: library/doctest.rst:1097 +#: library/doctest.rst:1108 msgid "" "Optional argument *optionflags* specifies the default doctest options for " "the tests, created by or-ing together individual option flags. See section :" @@ -1516,17 +1528,17 @@ msgid "" "for a better way to set reporting options." msgstr "" -#: library/doctest.rst:1109 +#: library/doctest.rst:1120 msgid "" "The global ``__file__`` is added to the globals provided to doctests loaded " "from a text file using :func:`DocFileSuite`." msgstr "" -#: library/doctest.rst:1115 +#: library/doctest.rst:1126 msgid "Convert doctest tests for a module to a :class:`unittest.TestSuite`." msgstr "" -#: library/doctest.rst:1117 +#: library/doctest.rst:1128 msgid "" "The returned :class:`unittest.TestSuite` is to be run by the unittest " "framework and runs each doctest in the module. Each docstring is run as a " @@ -1537,50 +1549,50 @@ msgid "" "then the" msgstr "" -#: library/doctest.rst:1125 +#: library/doctest.rst:1136 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 "" -#: library/doctest.rst:1129 +#: library/doctest.rst:1140 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 the module's :attr:`~module.__dict__`." msgstr "" -#: library/doctest.rst:1133 +#: library/doctest.rst:1144 msgid "" "Optional argument *extraglobs* specifies an extra set of global variables, " "which is merged into *globs*. By default, no extra globals are used." msgstr "" -#: library/doctest.rst:1136 +#: library/doctest.rst:1147 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 "" -#: library/doctest.rst:1139 +#: library/doctest.rst:1150 msgid "" "Optional arguments *setUp*, *tearDown*, and *optionflags* are the same as " "for function :func:`DocFileSuite` above, but they are called for each " "docstring." msgstr "" -#: library/doctest.rst:1142 +#: library/doctest.rst:1153 msgid "This function uses the same search technique as :func:`testmod`." msgstr "" -#: library/doctest.rst:1144 +#: library/doctest.rst:1155 msgid "" ":func:`DocTestSuite` returns an empty :class:`unittest.TestSuite` if " "*module* contains no docstrings instead of raising :exc:`ValueError`." msgstr "" -#: library/doctest.rst:1148 +#: library/doctest.rst:1159 msgid "" "Under the covers, :func:`DocTestSuite` creates a :class:`unittest.TestSuite` " "out of :class:`!doctest.DocTestCase` instances, and :class:`!DocTestCase` is " @@ -1589,14 +1601,14 @@ msgid "" "questions about the exact details of :mod:`unittest` integration." msgstr "" -#: library/doctest.rst:1154 +#: library/doctest.rst:1165 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 "" -#: library/doctest.rst:1158 +#: library/doctest.rst:1169 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 :" @@ -1609,23 +1621,23 @@ msgid "" "pass options through :mod:`!unittest` to :mod:`!doctest` test runners." msgstr "" -#: library/doctest.rst:1168 +#: library/doctest.rst:1179 msgid "" "For this reason, :mod:`doctest` also supports a notion of :mod:`!doctest` " "reporting flags specific to :mod:`unittest` support, via this function:" msgstr "" -#: library/doctest.rst:1174 +#: library/doctest.rst:1185 msgid "Set the :mod:`doctest` reporting flags to use." msgstr "" -#: library/doctest.rst:1176 +#: library/doctest.rst:1187 msgid "" "Argument *flags* takes the :ref:`bitwise OR ` of option flags. See " "section :ref:`doctest-options`. Only \"reporting flags\" can be used." msgstr "" -#: library/doctest.rst:1179 +#: library/doctest.rst:1190 msgid "" "This is a module-global setting, and affects all future doctests run by " "module :mod:`unittest`: the :meth:`!runTest` method of :class:`!" @@ -1639,17 +1651,17 @@ msgid "" "`!doctest`'s :mod:`!unittest` reporting flags are ignored." msgstr "" -#: library/doctest.rst:1190 +#: library/doctest.rst:1201 msgid "" "The value of the :mod:`unittest` reporting flags in effect before the " "function was called is returned by the function." msgstr "" -#: library/doctest.rst:1197 +#: library/doctest.rst:1208 msgid "Advanced API" msgstr "" -#: library/doctest.rst:1199 +#: library/doctest.rst:1210 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 " @@ -1657,62 +1669,62 @@ msgid "" "doctest's capabilities, then you should use the advanced API." msgstr "" -#: library/doctest.rst:1204 +#: library/doctest.rst:1215 msgid "" "The advanced API revolves around two container classes, which are used to " "store the interactive examples extracted from doctest cases:" msgstr "" -#: library/doctest.rst:1207 +#: library/doctest.rst:1218 msgid "" ":class:`Example`: A single Python :term:`statement`, paired with its " "expected output." msgstr "" -#: library/doctest.rst:1210 +#: library/doctest.rst:1221 msgid "" ":class:`DocTest`: A collection of :class:`Example`\\ s, typically extracted " "from a single docstring or text file." msgstr "" -#: library/doctest.rst:1213 +#: library/doctest.rst:1224 msgid "" "Additional processing classes are defined to find, parse, and run, and check " "doctest examples:" msgstr "" -#: library/doctest.rst:1216 +#: library/doctest.rst:1227 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 "" -#: library/doctest.rst:1220 +#: library/doctest.rst:1231 msgid "" ":class:`DocTestParser`: Creates a :class:`DocTest` object from a string " "(such as an object's docstring)." msgstr "" -#: library/doctest.rst:1223 +#: library/doctest.rst:1234 msgid "" ":class:`DocTestRunner`: Executes the examples in a :class:`DocTest`, and " "uses an :class:`OutputChecker` to verify their output." msgstr "" -#: library/doctest.rst:1226 +#: library/doctest.rst:1237 msgid "" ":class:`OutputChecker`: Compares the actual output from a doctest example " "with the expected output, and decides whether they match." msgstr "" -#: library/doctest.rst:1229 +#: library/doctest.rst:1240 msgid "" "The relationships among these processing classes are summarized in the " "following diagram::" msgstr "" -#: library/doctest.rst:1232 +#: library/doctest.rst:1243 msgid "" " list of:\n" "+------+ +---------+\n" @@ -1724,30 +1736,30 @@ msgid "" " +---------+" msgstr "" -#: library/doctest.rst:1245 +#: library/doctest.rst:1256 msgid "DocTest Objects" msgstr "" -#: library/doctest.rst:1250 +#: library/doctest.rst:1261 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 "" -#: library/doctest.rst:1254 +#: library/doctest.rst:1265 msgid "" ":class:`DocTest` defines the following attributes. They are initialized by " "the constructor, and should not be modified directly." msgstr "" -#: library/doctest.rst:1260 +#: library/doctest.rst:1271 msgid "" "A list of :class:`Example` objects encoding the individual interactive " "Python examples that should be run by this test." msgstr "" -#: library/doctest.rst:1266 +#: library/doctest.rst:1277 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 " @@ -1755,57 +1767,57 @@ msgid "" "`globs` after the test is run." msgstr "" -#: library/doctest.rst:1274 +#: library/doctest.rst:1285 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 "" -#: library/doctest.rst:1280 +#: library/doctest.rst:1291 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 "" -#: library/doctest.rst:1287 +#: library/doctest.rst:1298 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 "" -#: library/doctest.rst:1294 +#: library/doctest.rst:1305 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 "" -#: library/doctest.rst:1301 +#: library/doctest.rst:1312 msgid "Example Objects" msgstr "" -#: library/doctest.rst:1306 +#: library/doctest.rst:1317 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 "" -#: library/doctest.rst:1311 +#: library/doctest.rst:1322 msgid "" ":class:`Example` defines the following attributes. They are initialized by " "the constructor, and should not be modified directly." msgstr "" -#: library/doctest.rst:1317 +#: library/doctest.rst:1328 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 "" -#: library/doctest.rst:1324 +#: library/doctest.rst:1335 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 " @@ -1813,7 +1825,7 @@ msgid "" "The constructor adds a newline when necessary." msgstr "" -#: library/doctest.rst:1332 +#: library/doctest.rst:1343 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 " @@ -1822,20 +1834,20 @@ msgid "" "unless it's ``None``. The constructor adds a newline if needed." msgstr "" -#: library/doctest.rst:1341 +#: library/doctest.rst:1352 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 "" -#: library/doctest.rst:1348 +#: library/doctest.rst:1359 msgid "" "The example's indentation in the containing string, i.e., the number of " "space characters that precede the example's first prompt." msgstr "" -#: library/doctest.rst:1354 +#: library/doctest.rst:1365 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 " @@ -1844,11 +1856,11 @@ msgid "" "default, no options are set." msgstr "" -#: library/doctest.rst:1364 +#: library/doctest.rst:1375 msgid "DocTestFinder objects" msgstr "" -#: library/doctest.rst:1369 +#: library/doctest.rst:1380 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 " @@ -1856,48 +1868,48 @@ msgid "" "classes, functions, methods, staticmethods, classmethods, and properties." msgstr "" -#: library/doctest.rst:1374 +#: library/doctest.rst:1385 msgid "" "The optional argument *verbose* can be used to display the objects searched " "by the finder. It defaults to ``False`` (no output)." msgstr "" -#: library/doctest.rst:1377 +#: library/doctest.rst:1388 msgid "" "The optional argument *parser* specifies the :class:`DocTestParser` object " "(or a drop-in replacement) that is used to extract doctests from docstrings." msgstr "" -#: library/doctest.rst:1380 +#: library/doctest.rst:1391 msgid "" "If the optional argument *recurse* is false, then :meth:`DocTestFinder.find` " "will only examine the given object, and not any contained objects." msgstr "" -#: library/doctest.rst:1383 +#: library/doctest.rst:1394 msgid "" "If the optional argument *exclude_empty* is false, then :meth:`DocTestFinder." "find` will include tests for objects with empty docstrings." msgstr "" -#: library/doctest.rst:1387 +#: library/doctest.rst:1398 msgid ":class:`DocTestFinder` defines the following method:" msgstr "" -#: library/doctest.rst:1392 +#: library/doctest.rst:1403 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 "" -#: library/doctest.rst:1395 +#: library/doctest.rst:1406 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 "" -#: library/doctest.rst:1399 +#: library/doctest.rst:1410 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 " @@ -1905,26 +1917,26 @@ msgid "" "module is used:" msgstr "" -#: library/doctest.rst:1403 +#: library/doctest.rst:1414 msgid "As a default namespace, if *globs* is not specified." msgstr "" -#: library/doctest.rst:1405 +#: library/doctest.rst:1416 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 "" -#: library/doctest.rst:1409 +#: library/doctest.rst:1420 msgid "To find the name of the file containing the object." msgstr "" -#: library/doctest.rst:1411 +#: library/doctest.rst:1422 msgid "To help find the line number of the object within its file." msgstr "" -#: library/doctest.rst:1413 +#: library/doctest.rst:1424 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 " @@ -1933,7 +1945,7 @@ msgid "" "contained objects will (recursively) be searched for doctests." msgstr "" -#: library/doctest.rst:1419 +#: library/doctest.rst:1430 msgid "" "The globals for each :class:`DocTest` is formed by combining *globs* and " "*extraglobs* (bindings in *extraglobs* override bindings in *globs*). A new " @@ -1943,34 +1955,34 @@ msgid "" "is not specified, then it defaults to ``{}``." msgstr "" -#: library/doctest.rst:1430 +#: library/doctest.rst:1441 msgid "DocTestParser objects" msgstr "" -#: library/doctest.rst:1435 +#: library/doctest.rst:1446 msgid "" "A processing class used to extract interactive examples from a string, and " "use them to create a :class:`DocTest` object." msgstr "" -#: library/doctest.rst:1439 +#: library/doctest.rst:1450 msgid ":class:`DocTestParser` defines the following methods:" msgstr "" -#: library/doctest.rst:1444 +#: library/doctest.rst:1455 msgid "" "Extract all doctest examples from the given string, and collect them into a :" "class:`DocTest` object." msgstr "" -#: library/doctest.rst:1447 +#: library/doctest.rst:1458 msgid "" "*globs*, *name*, *filename*, and *lineno* are attributes for the new :class:" "`!DocTest` object. See the documentation for :class:`DocTest` for more " "information." msgstr "" -#: library/doctest.rst:1454 +#: library/doctest.rst:1465 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 " @@ -1978,7 +1990,7 @@ msgid "" "error messages." msgstr "" -#: library/doctest.rst:1461 +#: library/doctest.rst:1472 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 " @@ -1986,33 +1998,33 @@ msgid "" "name identifying this string, and is only used for error messages." msgstr "" -#: library/doctest.rst:1468 +#: library/doctest.rst:1479 msgid "TestResults objects" msgstr "" -#: library/doctest.rst:1475 +#: library/doctest.rst:1486 msgid "Number of failed tests." msgstr "" -#: library/doctest.rst:1479 +#: library/doctest.rst:1490 msgid "Number of attempted tests." msgstr "" -#: library/doctest.rst:1483 +#: library/doctest.rst:1494 msgid "Number of skipped tests." msgstr "" -#: library/doctest.rst:1491 +#: library/doctest.rst:1502 msgid "DocTestRunner objects" msgstr "" -#: library/doctest.rst:1496 +#: library/doctest.rst:1507 msgid "" "A processing class used to execute and verify the interactive examples in a :" "class:`DocTest`." msgstr "" -#: library/doctest.rst:1499 +#: library/doctest.rst:1510 msgid "" "The comparison between expected outputs and actual outputs is done by an :" "class:`OutputChecker`. This comparison may be customized with a number of " @@ -2022,7 +2034,7 @@ msgid "" "constructor." msgstr "" -#: library/doctest.rst:1505 +#: library/doctest.rst:1516 msgid "" "The test runner's display output can be controlled in two ways. First, an " "output function can be passed to :meth:`run`; this function will be called " @@ -2033,14 +2045,14 @@ msgid "" "`report_unexpected_exception`, and :meth:`report_failure`." msgstr "" -#: library/doctest.rst:1513 +#: library/doctest.rst:1524 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 "" -#: library/doctest.rst:1517 +#: library/doctest.rst:1528 msgid "" "The optional keyword argument *verbose* controls the :class:" "`DocTestRunner`'s verbosity. If *verbose* is ``True``, then information is " @@ -2049,14 +2061,14 @@ msgid "" "verbose output is used iff the command-line switch ``-v`` is used." msgstr "" -#: library/doctest.rst:1523 +#: library/doctest.rst:1534 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 "" -#: library/doctest.rst:1527 +#: library/doctest.rst:1538 msgid "" "The test runner accumulates statistics. The aggregated number of attempted, " "failed and skipped examples is also available via the :attr:`tries`, :attr:" @@ -2064,53 +2076,53 @@ msgid "" "`summarize` methods return a :class:`TestResults` instance." msgstr "" -#: library/doctest.rst:1532 +#: library/doctest.rst:1543 msgid ":class:`DocTestRunner` defines the following methods:" msgstr "" -#: library/doctest.rst:1537 +#: library/doctest.rst:1548 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 "" -#: library/doctest.rst:1541 +#: library/doctest.rst:1552 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 "" -#: library/doctest.rst:1548 +#: library/doctest.rst:1559 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 "" -#: library/doctest.rst:1563 +#: library/doctest.rst:1574 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 "" -#: library/doctest.rst:1559 +#: library/doctest.rst:1570 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 "" -#: library/doctest.rst:1570 +#: library/doctest.rst:1581 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 "" -#: library/doctest.rst:1574 +#: library/doctest.rst:1585 msgid "" "*example* is the example about to be processed. *exc_info* is a tuple " "containing information about the unexpected exception (as returned by :func:" @@ -2118,14 +2130,14 @@ msgid "" "output function that was passed to :meth:`DocTestRunner.run`." msgstr "" -#: library/doctest.rst:1582 +#: library/doctest.rst:1593 msgid "" "Run the examples in *test* (a :class:`DocTest` object), and display the " "results using the writer function *out*. Return a :class:`TestResults` " "instance." msgstr "" -#: library/doctest.rst:1586 +#: library/doctest.rst:1597 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, " @@ -2133,54 +2145,54 @@ msgid "" "after the test completes, then use *clear_globs=False*." msgstr "" -#: library/doctest.rst:1591 +#: library/doctest.rst:1602 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 "" -#: library/doctest.rst:1595 +#: library/doctest.rst:1606 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 "" -#: library/doctest.rst:1602 +#: library/doctest.rst:1613 msgid "" "Print a summary of all the test cases that have been run by this " "DocTestRunner, and return a :class:`TestResults` instance." msgstr "" -#: library/doctest.rst:1605 +#: library/doctest.rst:1616 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 "" -#: library/doctest.rst:1609 +#: library/doctest.rst:1620 msgid ":class:`DocTestParser` has the following attributes:" msgstr "" -#: library/doctest.rst:1613 +#: library/doctest.rst:1624 msgid "Number of attempted examples." msgstr "" -#: library/doctest.rst:1617 +#: library/doctest.rst:1628 msgid "Number of failed examples." msgstr "" -#: library/doctest.rst:1621 +#: library/doctest.rst:1632 msgid "Number of skipped examples." msgstr "" -#: library/doctest.rst:1629 +#: library/doctest.rst:1640 msgid "OutputChecker objects" msgstr "" -#: library/doctest.rst:1634 +#: library/doctest.rst:1645 msgid "" "A class used to check the whether the actual output from a doctest example " "matches the expected output. :class:`OutputChecker` defines two methods: :" @@ -2189,11 +2201,11 @@ msgid "" "string describing the differences between two outputs." msgstr "" -#: library/doctest.rst:1641 +#: library/doctest.rst:1652 msgid ":class:`OutputChecker` defines the following methods:" msgstr "" -#: library/doctest.rst:1645 +#: library/doctest.rst:1656 msgid "" "Return ``True`` iff the actual output from an example (*got*) matches the " "expected output (*want*). These strings are always considered to match if " @@ -2202,28 +2214,28 @@ msgid "" "`doctest-options` for more information about option flags." msgstr "" -#: library/doctest.rst:1654 +#: library/doctest.rst:1665 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 "" -#: library/doctest.rst:1662 +#: library/doctest.rst:1673 msgid "Debugging" msgstr "" -#: library/doctest.rst:1664 +#: library/doctest.rst:1675 msgid "Doctest provides several mechanisms for debugging doctest examples:" msgstr "" -#: library/doctest.rst:1666 +#: library/doctest.rst:1677 msgid "" "Several functions convert doctests to executable Python programs, which can " "be run under the Python debugger, :mod:`pdb`." msgstr "" -#: library/doctest.rst:1669 +#: library/doctest.rst:1680 msgid "" "The :class:`DebugRunner` class is a subclass of :class:`DocTestRunner` that " "raises an exception for the first failing example, containing information " @@ -2231,13 +2243,13 @@ msgid "" "debugging on the example." msgstr "" -#: library/doctest.rst:1674 +#: library/doctest.rst:1685 msgid "" "The :mod:`unittest` cases generated by :func:`DocTestSuite` support the :" "meth:`debug` method defined by :class:`unittest.TestCase`." msgstr "" -#: library/doctest.rst:1677 +#: library/doctest.rst:1688 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 " @@ -2245,7 +2257,7 @@ msgid "" "`a.py` contains just this module docstring::" msgstr "" -#: library/doctest.rst:1682 +#: library/doctest.rst:1693 msgid "" "\"\"\"\n" ">>> def f(x):\n" @@ -2258,11 +2270,11 @@ msgid "" "\"\"\"" msgstr "" -#: library/doctest.rst:1692 +#: library/doctest.rst:1703 msgid "Then an interactive Python session may look like this::" msgstr "" -#: library/doctest.rst:1694 +#: library/doctest.rst:1705 msgid "" ">>> import a, doctest\n" ">>> doctest.testmod(a)\n" @@ -2295,17 +2307,17 @@ msgid "" ">>>" msgstr "" -#: library/doctest.rst:1725 +#: library/doctest.rst:1736 msgid "" "Functions that convert doctests to Python code, and possibly run the " "synthesized code under the debugger:" msgstr "" -#: library/doctest.rst:1731 +#: library/doctest.rst:1742 msgid "Convert text with examples to a script." msgstr "" -#: library/doctest.rst:1733 +#: library/doctest.rst:1744 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 " @@ -2313,7 +2325,7 @@ msgid "" "generated script is returned as a string. For example, ::" msgstr "" -#: library/doctest.rst:1738 +#: library/doctest.rst:1749 msgid "" "import doctest\n" "print(doctest.script_from_examples(r\"\"\"\n" @@ -2326,11 +2338,11 @@ msgid "" "\"\"\"))" msgstr "" -#: library/doctest.rst:1748 +#: library/doctest.rst:1759 msgid "displays::" msgstr "" -#: library/doctest.rst:1750 +#: library/doctest.rst:1761 msgid "" "# Set x and y to 1 and 2.\n" "x, y = 1, 2\n" @@ -2341,18 +2353,18 @@ msgid "" "## 3" msgstr "" -#: library/doctest.rst:1758 +#: library/doctest.rst:1769 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 "" -#: library/doctest.rst:1765 +#: library/doctest.rst:1776 msgid "Convert the doctest for an object to a script." msgstr "" -#: library/doctest.rst:1767 +#: library/doctest.rst:1778 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 " @@ -2362,23 +2374,23 @@ msgid "" "module :file:`a.py` contains a top-level function :func:`!f`, then ::" msgstr "" -#: library/doctest.rst:1774 +#: library/doctest.rst:1785 msgid "" "import a, doctest\n" "print(doctest.testsource(a, \"a.f\"))" msgstr "" -#: library/doctest.rst:1777 +#: library/doctest.rst:1788 msgid "" "prints a script version of function :func:`!f`'s docstring, with doctests " "converted to code, and the rest placed in comments." msgstr "" -#: library/doctest.rst:1783 +#: library/doctest.rst:1794 msgid "Debug the doctests for an object." msgstr "" -#: library/doctest.rst:1785 +#: library/doctest.rst:1796 msgid "" "The *module* and *name* arguments are the same as for function :func:" "`testsource` above. The synthesized Python script for the named object's " @@ -2386,13 +2398,13 @@ msgid "" "the control of the Python debugger, :mod:`pdb`." msgstr "" -#: library/doctest.rst:1790 +#: library/doctest.rst:1801 msgid "" "A shallow copy of ``module.__dict__`` is used for both local and global " "execution context." msgstr "" -#: library/doctest.rst:1793 +#: library/doctest.rst:1804 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 " @@ -2404,30 +2416,30 @@ msgid "" "to :func:`pdb.run`." msgstr "" -#: library/doctest.rst:1804 +#: library/doctest.rst:1815 msgid "Debug the doctests in a string." msgstr "" -#: library/doctest.rst:1806 +#: library/doctest.rst:1817 msgid "" "This is like function :func:`debug` above, except that a string containing " "doctest examples is specified directly, via the *src* argument." msgstr "" -#: library/doctest.rst:1809 +#: library/doctest.rst:1820 msgid "" "Optional argument *pm* has the same meaning as in function :func:`debug` " "above." msgstr "" -#: library/doctest.rst:1811 +#: library/doctest.rst:1822 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 "" -#: library/doctest.rst:1816 +#: library/doctest.rst:1827 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 " @@ -2435,7 +2447,7 @@ msgid "" "(which is a doctest!) for more details:" msgstr "" -#: library/doctest.rst:1824 +#: library/doctest.rst:1835 msgid "" "A subclass of :class:`DocTestRunner` that raises an exception as soon as a " "failure is encountered. If an unexpected exception occurs, an :exc:" @@ -2445,89 +2457,89 @@ msgid "" "the actual output." msgstr "" -#: library/doctest.rst:1831 +#: library/doctest.rst:1842 msgid "" "For information about the constructor parameters and methods, see the " "documentation for :class:`DocTestRunner` in section :ref:`doctest-advanced-" "api`." msgstr "" -#: library/doctest.rst:1834 +#: library/doctest.rst:1845 msgid "" "There are two exceptions that may be raised by :class:`DebugRunner` " "instances:" msgstr "" -#: library/doctest.rst:1839 +#: library/doctest.rst:1850 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 "" -#: library/doctest.rst:1843 +#: library/doctest.rst:1854 msgid ":exc:`DocTestFailure` defines the following attributes:" msgstr "" -#: library/doctest.rst:1872 +#: library/doctest.rst:1883 msgid "The :class:`DocTest` object that was being run when the example failed." msgstr "" -#: library/doctest.rst:1877 +#: library/doctest.rst:1888 msgid "The :class:`Example` that failed." msgstr "" -#: library/doctest.rst:1858 +#: library/doctest.rst:1869 msgid "The example's actual output." msgstr "" -#: library/doctest.rst:1863 +#: library/doctest.rst:1874 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 "" -#: library/doctest.rst:1867 +#: library/doctest.rst:1878 msgid ":exc:`UnexpectedException` defines the following attributes:" msgstr "" -#: library/doctest.rst:1882 +#: library/doctest.rst:1893 msgid "" "A tuple containing information about the unexpected exception, as returned " "by :func:`sys.exc_info`." msgstr "" -#: library/doctest.rst:1889 +#: library/doctest.rst:1900 msgid "Soapbox" msgstr "" -#: library/doctest.rst:1891 +#: library/doctest.rst:1902 msgid "" "As mentioned in the introduction, :mod:`doctest` has grown to have three " "primary uses:" msgstr "" -#: library/doctest.rst:1894 +#: library/doctest.rst:1905 msgid "Checking examples in docstrings." msgstr "" -#: library/doctest.rst:1896 +#: library/doctest.rst:1907 msgid "Regression testing." msgstr "" -#: library/doctest.rst:1898 +#: library/doctest.rst:1909 msgid "Executable documentation / literate testing." msgstr "" -#: library/doctest.rst:1900 +#: library/doctest.rst:1911 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 "" -#: library/doctest.rst:1904 +#: library/doctest.rst:1915 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. " @@ -2539,7 +2551,7 @@ msgid "" "\"harmless\" change." msgstr "" -#: library/doctest.rst:1912 +#: library/doctest.rst:1923 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 " @@ -2560,13 +2572,13 @@ msgid "" "different results, blurring the distinction between testing and explaining." msgstr "" -#: library/doctest.rst:1930 +#: library/doctest.rst:1941 msgid "" "Regression testing is best confined to dedicated objects or files. There " "are several options for organizing tests:" msgstr "" -#: library/doctest.rst:1933 +#: library/doctest.rst:1944 msgid "" "Write text files containing test cases as interactive examples, and test the " "files using :func:`testfile` or :func:`DocFileSuite`. This is recommended, " @@ -2574,7 +2586,7 @@ msgid "" "doctest." msgstr "" -#: library/doctest.rst:1938 +#: library/doctest.rst:1949 msgid "" "Define functions named ``_regrtest_topic`` that consist of single " "docstrings, containing test cases for the named topics. These functions can " @@ -2582,13 +2594,13 @@ msgid "" "test file." msgstr "" -#: library/doctest.rst:1942 +#: library/doctest.rst:1953 msgid "" "Define a :attr:`~module.__test__` dictionary mapping from regression test " "topics to docstrings containing test cases." msgstr "" -#: library/doctest.rst:1945 +#: library/doctest.rst:1956 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-" @@ -2596,7 +2608,7 @@ msgid "" "example of such a test runner::" msgstr "" -#: library/doctest.rst:1950 +#: library/doctest.rst:1961 msgid "" "if __name__ == '__main__':\n" " import doctest\n" @@ -2614,53 +2626,53 @@ msgid "" " print(f\"{fail} failures out of {total} tests\")" msgstr "" -#: library/doctest.rst:1967 +#: library/doctest.rst:1978 msgid "Footnotes" msgstr "" -#: library/doctest.rst:1968 +#: library/doctest.rst:1979 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 "" -#: library/doctest.rst:376 +#: library/doctest.rst:387 msgid ">>>" msgstr "" -#: library/doctest.rst:376 +#: library/doctest.rst:387 msgid "interpreter prompt" msgstr "" -#: library/doctest.rst:611 +#: library/doctest.rst:622 msgid "..." msgstr "" -#: library/doctest.rst:542 +#: library/doctest.rst:553 msgid "^ (caret)" msgstr "" -#: library/doctest.rst:542 +#: library/doctest.rst:553 msgid "marker" msgstr "" -#: library/doctest.rst:591 +#: library/doctest.rst:602 msgid "" msgstr "" -#: library/doctest.rst:736 +#: library/doctest.rst:747 msgid "in doctests" msgstr "" -#: library/doctest.rst:736 +#: library/doctest.rst:747 msgid "# (hash)" msgstr "" -#: library/doctest.rst:736 +#: library/doctest.rst:747 msgid "+ (plus)" msgstr "" -#: library/doctest.rst:736 +#: library/doctest.rst:747 msgid "- (minus)" msgstr "" diff --git a/library/email.charset.po b/library/email.charset.po index 7f0b2688..59b24744 100644 --- a/library/email.charset.po +++ b/library/email.charset.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-01-27 01:00+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" diff --git a/library/email.compat32-message.po b/library/email.compat32-message.po index 0e602630..5fdc0cf9 100644 --- a/library/email.compat32-message.po +++ b/library/email.compat32-message.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -226,8 +226,8 @@ msgstr "" #: library/email.compat32-message.rst:183 msgid "" -"This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " -"class its functionality is replaced by :meth:`~email.message.EmailMessage." +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"its functionality is replaced by :meth:`~email.message.EmailMessage." "set_content` and the related ``make`` and ``add`` methods." msgstr "" @@ -278,8 +278,8 @@ msgstr "" #: library/email.compat32-message.rst:226 msgid "" -"This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " -"class its functionality is replaced by :meth:`~email.message.EmailMessage." +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"its functionality is replaced by :meth:`~email.message.EmailMessage." "get_content` and :meth:`~email.message.EmailMessage.iter_parts`." msgstr "" @@ -292,8 +292,8 @@ msgstr "" #: library/email.compat32-message.rst:238 msgid "" -"This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " -"class its functionality is replaced by :meth:`~email.message.EmailMessage." +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"its functionality is replaced by :meth:`~email.message.EmailMessage." "set_content`." msgstr "" @@ -327,9 +327,9 @@ msgstr "" #: library/email.compat32-message.rst:267 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." +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"its functionality is replaced by the *charset* parameter of the :meth:`email." +"message.EmailMessage.set_content` method." msgstr "" #: library/email.compat32-message.rst:275 @@ -340,8 +340,8 @@ msgstr "" #: library/email.compat32-message.rst:278 msgid "" -"This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " -"class it always returns ``None``." +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"it always returns ``None``." msgstr "" #: library/email.compat32-message.rst:283 @@ -600,9 +600,9 @@ msgstr "" #: library/email.compat32-message.rst:488 #: library/email.compat32-message.rst:526 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." +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"its functionality is replaced by the *params* property of the individual " +"header objects returned by the header access methods." msgstr "" #: library/email.compat32-message.rst:496 @@ -719,8 +719,8 @@ msgstr "" #: library/email.compat32-message.rst:581 msgid "" -"This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " -"class its functionality is replaced by the ``make_`` and ``add_`` methods." +"This is a legacy method. On the :class:`~email.message.EmailMessage` class " +"its functionality is replaced by the ``make_`` and ``add_`` methods." msgstr "" #: library/email.compat32-message.rst:588 diff --git a/library/email.contentmanager.po b/library/email.contentmanager.po index 304ff22b..985bce5b 100644 --- a/library/email.contentmanager.po +++ b/library/email.contentmanager.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/email.encoders.po b/library/email.encoders.po index dabf7bd0..5cdf523f 100644 --- a/library/email.encoders.po +++ b/library/email.encoders.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/email.errors.po b/library/email.errors.po index 87e8cfa5..5c0556f0 100644 --- a/library/email.errors.po +++ b/library/email.errors.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-12-14 01:00+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" diff --git a/library/email.examples.po b/library/email.examples.po index d914bbbb..662d271a 100644 --- a/library/email.examples.po +++ b/library/email.examples.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/email.generator.po b/library/email.generator.po index d27a724d..6c756d4d 100644 --- a/library/email.generator.po +++ b/library/email.generator.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/email.header.po b/library/email.header.po index e5f033f2..36de6518 100644 --- a/library/email.header.po +++ b/library/email.header.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -302,7 +302,7 @@ msgstr "" #: library/email.header.rst:209 msgid "" -"This function exists for for backwards compatibility only. For new code, we " +"This function exists for backwards compatibility only. For new code, we " "recommend using :class:`email.headerregistry.HeaderRegistry`." msgstr "" @@ -328,6 +328,6 @@ msgstr "" #: library/email.header.rst:228 msgid "" -"This function exists for for backwards compatibility only, and is not " +"This function exists for backwards compatibility only, and is not " "recommended for use in new code." msgstr "" diff --git a/library/email.headerregistry.po b/library/email.headerregistry.po index 1817482b..089dc18d 100644 --- a/library/email.headerregistry.po +++ b/library/email.headerregistry.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/email.iterators.po b/library/email.iterators.po index 081e3997..b21fdaa4 100644 --- a/library/email.iterators.po +++ b/library/email.iterators.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/email.message.po b/library/email.message.po index d9b138ac..cab9a056 100644 --- a/library/email.message.po +++ b/library/email.message.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/email.mime.po b/library/email.mime.po index c84e890b..f7584c45 100644 --- a/library/email.mime.po +++ b/library/email.mime.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/email.parser.po b/library/email.parser.po index 2827bec2..4651d2a9 100644 --- a/library/email.parser.po +++ b/library/email.parser.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -162,7 +162,7 @@ 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 " +"contain only ASCII text or, if :attr:`~email.policy.EmailPolicy.utf8` is " "``True``, no binary attachments." msgstr "" @@ -211,11 +211,11 @@ msgstr "" #: 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:" +"if :attr:`~email.policy.EmailPolicy.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 "" diff --git a/library/email.po b/library/email.po index 0be6b80f..c4177764 100644 --- a/library/email.po +++ b/library/email.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/email.policy.po b/library/email.policy.po index 50fa68c2..dd943f55 100644 --- a/library/email.policy.po +++ b/library/email.policy.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/email.utils.po b/library/email.utils.po index 8e620051..34a1b1ee 100644 --- a/library/email.utils.po +++ b/library/email.utils.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/ensurepip.po b/library/ensurepip.po index 22c34c78..de951a7a 100644 --- a/library/ensurepip.po +++ b/library/ensurepip.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -49,19 +49,27 @@ msgid "" "bootstrap ``pip`` are included as internal parts of the package." msgstr "" -#: library/ensurepip.rst:35 +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." +msgstr "" + +#: library/ensurepip.rst:37 msgid ":ref:`installing-index`" msgstr "" -#: library/ensurepip.rst:36 +#: library/ensurepip.rst:38 msgid "The end user guide for installing Python packages" msgstr "" -#: library/ensurepip.rst:38 +#: library/ensurepip.rst:40 msgid ":pep:`453`: Explicit bootstrapping of pip in Python installations" msgstr "" -#: library/ensurepip.rst:39 +#: library/ensurepip.rst:41 msgid "The original rationale and specification for this module." msgstr "" @@ -75,24 +83,24 @@ msgid "" "availability>` or :ref:`WebAssembly platforms `." msgstr "" -#: library/ensurepip.rst:44 -msgid "Command line interface" +#: library/ensurepip.rst:48 +msgid "Command-line interface" msgstr "" -#: library/ensurepip.rst:48 +#: library/ensurepip.rst:52 msgid "" "The command line interface is invoked using the interpreter's ``-m`` switch." msgstr "" -#: library/ensurepip.rst:50 +#: library/ensurepip.rst:54 msgid "The simplest possible invocation is::" msgstr "" -#: library/ensurepip.rst:52 +#: library/ensurepip.rst:56 msgid "python -m ensurepip" msgstr "" -#: library/ensurepip.rst:54 +#: library/ensurepip.rst:58 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 " @@ -100,11 +108,11 @@ msgid "" "upgrade`` option::" msgstr "" -#: library/ensurepip.rst:59 +#: library/ensurepip.rst:63 msgid "python -m ensurepip --upgrade" msgstr "" -#: library/ensurepip.rst:61 +#: library/ensurepip.rst:65 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 " @@ -112,122 +120,122 @@ msgid "" "two additional command line options:" msgstr "" -#: library/ensurepip.rst:68 +#: library/ensurepip.rst:72 msgid "" "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 "" -#: library/ensurepip.rst:74 +#: library/ensurepip.rst:78 msgid "" "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 "" -#: library/ensurepip.rst:78 +#: library/ensurepip.rst:82 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 "" -#: library/ensurepip.rst:85 +#: library/ensurepip.rst:89 msgid "" "If an alternate installation is requested, the ``pipX`` script will *not* be " "installed." msgstr "" -#: library/ensurepip.rst:90 +#: library/ensurepip.rst:94 msgid "" "If a \"default pip\" installation is requested, the ``pip`` script will be " "installed in addition to the two regular scripts." msgstr "" -#: library/ensurepip.rst:93 +#: library/ensurepip.rst:97 msgid "" "Providing both of the script selection options will trigger an exception." msgstr "" -#: library/ensurepip.rst:96 +#: library/ensurepip.rst:100 msgid "Module API" msgstr "" -#: library/ensurepip.rst:98 +#: library/ensurepip.rst:102 msgid ":mod:`ensurepip` exposes two functions for programmatic use:" msgstr "" -#: library/ensurepip.rst:102 +#: library/ensurepip.rst:106 msgid "" "Returns a string specifying the available version of pip that will be " "installed when bootstrapping an environment." msgstr "" -#: library/ensurepip.rst:109 +#: library/ensurepip.rst:113 msgid "Bootstraps ``pip`` into the current or designated environment." msgstr "" -#: library/ensurepip.rst:111 +#: library/ensurepip.rst:115 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 "" -#: library/ensurepip.rst:115 +#: library/ensurepip.rst:119 msgid "" "*upgrade* indicates whether or not to upgrade an existing installation of an " "earlier version of ``pip`` to the available version." msgstr "" -#: library/ensurepip.rst:118 +#: library/ensurepip.rst:122 msgid "" "*user* indicates whether to use the user scheme rather than installing " "globally." msgstr "" -#: library/ensurepip.rst:121 +#: library/ensurepip.rst:125 msgid "" "By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where X.Y " "stands for the current version of Python)." msgstr "" -#: library/ensurepip.rst:124 +#: library/ensurepip.rst:128 msgid "If *altinstall* is set, then ``pipX`` will *not* be installed." msgstr "" -#: library/ensurepip.rst:126 +#: library/ensurepip.rst:130 msgid "" "If *default_pip* is set, then ``pip`` will be installed in addition to the " "two regular scripts." msgstr "" -#: library/ensurepip.rst:129 +#: library/ensurepip.rst:133 msgid "" "Setting both *altinstall* and *default_pip* will trigger :exc:`ValueError`." msgstr "" -#: library/ensurepip.rst:132 +#: library/ensurepip.rst:136 msgid "" "*verbosity* controls the level of output to :data:`sys.stdout` from the " "bootstrapping operation." msgstr "" -#: library/ensurepip.rst:135 +#: library/ensurepip.rst:139 msgid "" "Raises an :ref:`auditing event ` ``ensurepip.bootstrap`` with " "argument ``root``." msgstr "" -#: library/ensurepip.rst:139 +#: library/ensurepip.rst:143 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 "" -#: library/ensurepip.rst:145 +#: library/ensurepip.rst:149 msgid "" "The bootstrapping process may install additional modules required by " "``pip``, but other software should not assume those dependencies will always " diff --git a/library/enum.po b/library/enum.po index 69c1c06b..e654ce3c 100644 --- a/library/enum.po +++ b/library/enum.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -323,10 +323,16 @@ msgid "" msgstr "" #: library/enum.rst:180 +msgid "" +"Before 3.11 ``EnumType`` was called ``EnumMeta``, which is still available " +"as an alias." +msgstr "" + +#: library/enum.rst:184 msgid "This method is called in two different ways:" msgstr "" -#: library/enum.rst:182 +#: library/enum.rst:186 msgid "to look up an existing member:" msgstr "" @@ -334,7 +340,7 @@ msgstr "" msgid "cls" msgstr "" -#: library/enum.rst:190 +#: library/enum.rst:194 msgid "The enum class being called." msgstr "" @@ -342,17 +348,17 @@ msgstr "" msgid "value" msgstr "" -#: library/enum.rst:185 +#: library/enum.rst:189 msgid "The value to lookup." msgstr "" -#: library/enum.rst:187 +#: library/enum.rst:191 msgid "" "to use the ``cls`` enum to create a new enum (only if the existing enum does " "not have any members):" msgstr "" -#: library/enum.rst:191 +#: library/enum.rst:195 msgid "The name of the new Enum to create." msgstr "" @@ -360,7 +366,7 @@ msgstr "" msgid "names" msgstr "" -#: library/enum.rst:192 +#: library/enum.rst:196 msgid "The names/values of the members for the new Enum." msgstr "" @@ -368,7 +374,7 @@ msgstr "" msgid "module" msgstr "" -#: library/enum.rst:193 +#: library/enum.rst:197 msgid "The name of the module the new Enum is created in." msgstr "" @@ -376,7 +382,7 @@ msgstr "" msgid "qualname" msgstr "" -#: library/enum.rst:194 +#: library/enum.rst:198 msgid "The actual location in the module where this Enum can be found." msgstr "" @@ -384,7 +390,7 @@ msgstr "" msgid "type" msgstr "" -#: library/enum.rst:195 +#: library/enum.rst:199 msgid "A mix-in type for the new Enum." msgstr "" @@ -392,7 +398,7 @@ msgstr "" msgid "start" msgstr "" -#: library/enum.rst:196 +#: library/enum.rst:200 msgid "The first integer value for the Enum (used by :class:`auto`)." msgstr "" @@ -400,16 +406,16 @@ msgstr "" msgid "boundary" msgstr "" -#: library/enum.rst:197 +#: library/enum.rst:201 msgid "" "How to handle out-of-range values from bit operations (:class:`Flag` only)." msgstr "" -#: library/enum.rst:201 +#: library/enum.rst:205 msgid "Returns ``True`` if member belongs to the ``cls``::" msgstr "" -#: library/enum.rst:203 +#: library/enum.rst:207 msgid "" ">>> some_var = Color.RED\n" ">>> some_var in Color\n" @@ -418,19 +424,19 @@ msgid "" "True" msgstr "" -#: library/enum.rst:211 +#: library/enum.rst:215 msgid "" "Before Python 3.12, a ``TypeError`` is raised if a non-Enum-member is used " "in a containment check." msgstr "" -#: library/enum.rst:216 +#: library/enum.rst:220 msgid "" "Returns ``['__class__', '__doc__', '__members__', '__module__']`` and the " "names of the members in *cls*::" msgstr "" -#: library/enum.rst:219 +#: library/enum.rst:223 msgid "" ">>> dir(Color)\n" "['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', " @@ -438,110 +444,92 @@ msgid "" "'__module__', '__name__', '__qualname__']" msgstr "" -#: library/enum.rst:224 +#: library/enum.rst:228 msgid "" "Returns the Enum member in *cls* matching *name*, or raises a :exc:" "`KeyError`::" msgstr "" -#: library/enum.rst:226 +#: library/enum.rst:230 msgid "" ">>> Color['BLUE']\n" "" msgstr "" -#: library/enum.rst:231 +#: library/enum.rst:235 msgid "Returns each member in *cls* in definition order::" msgstr "" -#: library/enum.rst:233 +#: library/enum.rst:237 msgid "" ">>> list(Color)\n" "[, , ]" msgstr "" -#: library/enum.rst:238 +#: library/enum.rst:242 msgid "Returns the number of member in *cls*::" msgstr "" -#: library/enum.rst:240 +#: library/enum.rst:244 msgid "" ">>> len(Color)\n" "3" msgstr "" -#: library/enum.rst:245 +#: library/enum.rst:249 msgid "Returns a mapping of every enum name to its member, including aliases" msgstr "" -#: library/enum.rst:249 +#: library/enum.rst:253 msgid "Returns each member in *cls* in reverse definition order::" msgstr "" -#: library/enum.rst:251 +#: library/enum.rst:255 msgid "" ">>> list(reversed(Color))\n" "[, , ]" msgstr "" -#: library/enum.rst:256 -msgid "" -"Adds a new name as an alias to an existing member. Raises a :exc:" -"`NameError` if the name is already assigned to a different member." -msgstr "" - #: library/enum.rst:261 -msgid "" -"Adds a new value as an alias to an existing member. Raises a :exc:" -"`ValueError` if the value is already linked with a different member." -msgstr "" - -#: library/enum.rst:266 -msgid "" -"Before 3.11 ``EnumType`` was called ``EnumMeta``, which is still available " -"as an alias." -msgstr "" - -#: library/enum.rst:271 msgid "*Enum* is the base class for all *enum* enumerations." msgstr "" -#: library/enum.rst:275 +#: library/enum.rst:265 msgid "The name used to define the ``Enum`` member::" msgstr "" -#: library/enum.rst:277 +#: library/enum.rst:267 msgid "" ">>> Color.BLUE.name\n" "'BLUE'" msgstr "" -#: library/enum.rst:282 +#: library/enum.rst:272 msgid "The value given to the ``Enum`` member::" msgstr "" -#: library/enum.rst:284 +#: library/enum.rst:274 msgid "" ">>> Color.RED.value\n" "1" msgstr "" -#: library/enum.rst:307 +#: library/enum.rst:297 msgid "Value of the member, can be set in :meth:`~Enum.__new__`." msgstr "" -#: library/enum.rst:289 +#: library/enum.rst:279 msgid "Enum member values" msgstr "" -#: library/enum.rst:291 +#: library/enum.rst:281 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. See :class:`auto` for the details." msgstr "" -#: library/enum.rst:296 +#: library/enum.rst:286 msgid "" "While mutable/unhashable values, such as :class:`dict`, :class:`list` or a " "mutable :class:`~dataclasses.dataclass`, can be used, they will have a " @@ -549,37 +537,38 @@ msgid "" "mutable/unhashable values in the enum." msgstr "" -#: library/enum.rst:303 +#: library/enum.rst:293 msgid "Name of the member." msgstr "" -#: library/enum.rst:311 +#: library/enum.rst:301 msgid "" "No longer used, kept for backward compatibility. (class attribute, removed " "during class creation)." msgstr "" -#: library/enum.rst:316 +#: library/enum.rst:306 msgid "" "``_ignore_`` is only used during creation and is removed from the " "enumeration once creation is complete." msgstr "" -#: library/enum.rst:319 +#: library/enum.rst:309 msgid "" "``_ignore_`` is a list of names that will not become members, and whose " "names will also be removed from the completed enumeration. See :ref:" "`TimePeriod ` for an example." msgstr "" -#: library/enum.rst:325 +#: library/enum.rst:315 msgid "" "Returns ``['__class__', '__doc__', '__module__', 'name', 'value']`` and any " "public methods defined on *self.__class__*::" msgstr "" -#: library/enum.rst:328 +#: library/enum.rst:318 msgid "" +">>> from enum import Enum\n" ">>> from datetime import date\n" ">>> class Weekday(Enum):\n" "... MONDAY = 1\n" @@ -602,11 +591,11 @@ msgstr "" msgid "name" msgstr "" -#: library/enum.rst:346 +#: library/enum.rst:337 msgid "The name of the member being defined (e.g. 'RED')." msgstr "" -#: library/enum.rst:347 +#: library/enum.rst:338 msgid "The start value for the Enum; the default is 1." msgstr "" @@ -614,7 +603,7 @@ msgstr "" msgid "count" msgstr "" -#: library/enum.rst:348 +#: library/enum.rst:339 msgid "The number of members currently defined, not including this one." msgstr "" @@ -622,19 +611,19 @@ msgstr "" msgid "last_values" msgstr "" -#: library/enum.rst:349 +#: library/enum.rst:340 msgid "A list of the previous values." msgstr "" -#: library/enum.rst:351 +#: library/enum.rst:342 msgid "" "A *staticmethod* that is used to determine the next value returned by :class:" "`auto`::" msgstr "" -#: library/enum.rst:354 +#: library/enum.rst:345 msgid "" -">>> from enum import auto\n" +">>> from enum import auto, Enum\n" ">>> class PowersOfThree(Enum):\n" "... @staticmethod\n" "... def _generate_next_value_(name, start, count, last_values):\n" @@ -646,33 +635,33 @@ msgid "" "9" msgstr "" -#: library/enum.rst:367 +#: library/enum.rst:358 msgid "" "By default, does nothing. If multiple values are given in the member " "assignment, those values become separate arguments to ``__init__``; e.g." msgstr "" -#: library/enum.rst:374 +#: library/enum.rst:365 msgid "" "``Weekday.__init__()`` would be called as ``Weekday.__init__(self, 1, " "'Mon')``" msgstr "" -#: library/enum.rst:378 +#: library/enum.rst:369 msgid "" "A *classmethod* that is used to further configure subsequent subclasses. By " "default, does nothing." msgstr "" -#: library/enum.rst:383 +#: library/enum.rst:374 msgid "" "A *classmethod* for looking up values not found in *cls*. By default it " "does nothing, but can be overridden to implement custom search behavior::" msgstr "" -#: library/enum.rst:386 +#: library/enum.rst:377 msgid "" -">>> from enum import StrEnum\n" +">>> from enum import auto, StrEnum\n" ">>> class Build(StrEnum):\n" "... DEBUG = auto()\n" "... OPTIMIZED = auto()\n" @@ -690,32 +679,33 @@ msgid "" "" msgstr "" -#: library/enum.rst:405 +#: library/enum.rst:396 msgid "" "By default, doesn't exist. If specified, either in the enum class " "definition or in a mixin class (such as ``int``), all values given in the " "member assignment will be passed; e.g." msgstr "" -#: library/enum.rst:413 +#: library/enum.rst:404 msgid "" "results in the call ``int('1a', 16)`` and a value of ``26`` for the member." msgstr "" -#: library/enum.rst:417 +#: library/enum.rst:408 msgid "" "When writing a custom ``__new__``, do not use ``super().__new__`` -- call " "the appropriate ``__new__`` instead." msgstr "" -#: library/enum.rst:422 +#: library/enum.rst:413 msgid "" "Returns the string used for *repr()* calls. By default, returns the *Enum* " "name, member name, and value, but can be overridden::" msgstr "" -#: library/enum.rst:425 +#: library/enum.rst:416 msgid "" +">>> from enum import auto, Enum\n" ">>> class OtherStyle(Enum):\n" "... ALTERNATE = auto()\n" "... OTHER = auto()\n" @@ -729,14 +719,15 @@ msgid "" "(OtherStyle.ALTERNATE, 'OtherStyle.ALTERNATE', 'OtherStyle.ALTERNATE')" msgstr "" -#: library/enum.rst:438 +#: library/enum.rst:430 msgid "" "Returns the string used for *str()* calls. By default, returns the *Enum* " "name and member name, but can be overridden::" msgstr "" -#: library/enum.rst:441 +#: library/enum.rst:433 msgid "" +">>> from enum import auto, Enum\n" ">>> class OtherStyle(Enum):\n" "... ALTERNATE = auto()\n" "... OTHER = auto()\n" @@ -749,14 +740,15 @@ msgid "" "(, 'ALTERNATE', 'ALTERNATE')" msgstr "" -#: library/enum.rst:453 +#: library/enum.rst:446 msgid "" "Returns the string used for *format()* and *f-string* calls. By default, " "returns :meth:`__str__` return value, but can be overridden::" msgstr "" -#: library/enum.rst:456 +#: library/enum.rst:449 msgid "" +">>> from enum import auto, Enum\n" ">>> class OtherStyle(Enum):\n" "... ALTERNATE = auto()\n" "... OTHER = auto()\n" @@ -769,17 +761,51 @@ msgid "" "(, 'OtherStyle.ALTERNATE', 'ALTERNATE')" msgstr "" -#: library/enum.rst:468 +#: library/enum.rst:462 msgid "" "Using :class:`auto` with :class:`Enum` results in integers of increasing " "value, starting with ``1``." msgstr "" -#: library/enum.rst:471 +#: library/enum.rst:465 msgid "Added :ref:`enum-dataclass-support`" msgstr "" -#: library/enum.rst:476 +#: library/enum.rst:469 +msgid "Adds a new name as an alias to an existing member::" +msgstr "" + +#: library/enum.rst:471 +msgid "" +">>> Color.RED._add_alias_(\"ERROR\")\n" +">>> Color.ERROR\n" +"" +msgstr "" + +#: library/enum.rst:475 +msgid "" +"Raises a :exc:`NameError` if the name is already assigned to a different " +"member." +msgstr "" + +#: library/enum.rst:481 +msgid "Adds a new value as an alias to an existing member::" +msgstr "" + +#: library/enum.rst:483 +msgid "" +">>> Color.RED._add_value_alias_(42)\n" +">>> Color(42)\n" +"" +msgstr "" + +#: library/enum.rst:487 +msgid "" +"Raises a :exc:`ValueError` if the value is already linked with a different " +"member." +msgstr "" + +#: library/enum.rst:494 msgid "" "*IntEnum* is the same as :class:`Enum`, but its members are also integers " "and can be used anywhere that an integer can be used. If any integer " @@ -787,60 +813,60 @@ msgid "" "its enumeration status." msgstr "" -#: library/enum.rst:497 +#: library/enum.rst:515 msgid "" "Using :class:`auto` with :class:`IntEnum` results in integers of increasing " "value, starting with ``1``." msgstr "" -#: library/enum.rst:500 +#: library/enum.rst:518 msgid "" ":meth:`~object.__str__` is now :meth:`!int.__str__` to better support the " "*replacement of existing constants* use-case. :meth:`~object.__format__` was " "already :meth:`!int.__format__` for that same reason." msgstr "" -#: library/enum.rst:507 +#: library/enum.rst:525 msgid "" -"``StrEnum`` is the same as :class:`Enum`, but its members are also strings " -"and can be used in most of the same places that a string can be used. The " -"result of any string operation performed on or with a *StrEnum* member is " -"not part of the enumeration." +"*StrEnum* is the same as :class:`Enum`, but its members are also strings and " +"can be used in most of the same places that a string can be used. The result " +"of any string operation performed on or with a *StrEnum* member is not part " +"of the enumeration." msgstr "" -#: library/enum.rst:513 +#: library/enum.rst:546 msgid "" "There are places in the stdlib that check for an exact :class:`str` instead " "of a :class:`str` subclass (i.e. ``type(unknown) == str`` instead of " "``isinstance(unknown, str)``), and in those locations you will need to use " -"``str(StrEnum.member)``." +"``str(MyStrEnum.MY_MEMBER)``." msgstr "" -#: library/enum.rst:520 +#: library/enum.rst:553 msgid "" "Using :class:`auto` with :class:`StrEnum` results in the lower-cased member " "name as the value." msgstr "" -#: library/enum.rst:525 +#: library/enum.rst:558 msgid "" ":meth:`~object.__str__` is :meth:`!str.__str__` to better support the " "*replacement of existing constants* use-case. :meth:`~object.__format__` is " "likewise :meth:`!str.__format__` for that same reason." msgstr "" -#: library/enum.rst:533 +#: library/enum.rst:566 msgid "" "``Flag`` is the same as :class:`Enum`, but its members support the bitwise " "operators ``&`` (*AND*), ``|`` (*OR*), ``^`` (*XOR*), and ``~`` (*INVERT*); " "the results of those operations are (aliases of) members of the enumeration." msgstr "" -#: library/enum.rst:539 +#: library/enum.rst:572 msgid "Returns *True* if value is in self::" msgstr "" -#: library/enum.rst:541 +#: library/enum.rst:574 msgid "" ">>> from enum import Flag, auto\n" ">>> class Color(Flag):\n" @@ -860,11 +886,11 @@ msgid "" "False" msgstr "" -#: library/enum.rst:560 +#: library/enum.rst:593 msgid "Returns all contained non-alias members::" msgstr "" -#: library/enum.rst:562 +#: library/enum.rst:595 msgid "" ">>> list(Color.RED)\n" "[]\n" @@ -872,11 +898,11 @@ msgid "" "[, ]" msgstr "" -#: library/enum.rst:571 +#: library/enum.rst:604 msgid "Returns number of members in flag::" msgstr "" -#: library/enum.rst:573 +#: library/enum.rst:606 msgid "" ">>> len(Color.GREEN)\n" "1\n" @@ -884,11 +910,11 @@ msgid "" "3" msgstr "" -#: library/enum.rst:582 +#: library/enum.rst:615 msgid "Returns *True* if any members in flag, *False* otherwise::" msgstr "" -#: library/enum.rst:584 +#: library/enum.rst:617 msgid "" ">>> bool(Color.GREEN)\n" "True\n" @@ -899,21 +925,21 @@ msgid "" "False" msgstr "" -#: library/enum.rst:594 +#: library/enum.rst:627 msgid "Returns current flag binary or'ed with other::" msgstr "" -#: library/enum.rst:596 +#: library/enum.rst:629 msgid "" ">>> Color.RED | Color.GREEN\n" "" msgstr "" -#: library/enum.rst:601 +#: library/enum.rst:634 msgid "Returns current flag binary and'ed with other::" msgstr "" -#: library/enum.rst:603 +#: library/enum.rst:636 msgid "" ">>> purple & white\n" "\n" @@ -921,11 +947,11 @@ msgid "" "" msgstr "" -#: library/enum.rst:610 +#: library/enum.rst:643 msgid "Returns current flag binary xor'ed with other::" msgstr "" -#: library/enum.rst:612 +#: library/enum.rst:645 msgid "" ">>> purple ^ white\n" "\n" @@ -933,11 +959,11 @@ msgid "" "" msgstr "" -#: library/enum.rst:619 +#: library/enum.rst:652 msgid "Returns all the flags in *type(self)* that are not in *self*::" msgstr "" -#: library/enum.rst:621 +#: library/enum.rst:654 msgid "" ">>> ~white\n" "\n" @@ -947,116 +973,116 @@ msgid "" "" msgstr "" -#: library/enum.rst:630 +#: library/enum.rst:663 msgid "" "Function used to format any remaining unnamed numeric values. Default is " "the value's repr; common choices are :func:`hex` and :func:`oct`." msgstr "" -#: library/enum.rst:635 +#: library/enum.rst:668 msgid "" "Using :class:`auto` with :class:`Flag` results in integers that are powers " "of two, starting with ``1``." msgstr "" -#: library/enum.rst:638 +#: library/enum.rst:671 msgid "The *repr()* of zero-valued flags has changed. It is now:" msgstr "" -#: library/enum.rst:646 +#: library/enum.rst:679 msgid "" "``IntFlag`` is the same as :class:`Flag`, but its members are also integers " "and can be used anywhere that an integer can be used." msgstr "" -#: library/enum.rst:660 +#: library/enum.rst:693 msgid "" "If any integer operation is performed with an *IntFlag* member, the result " "is not an *IntFlag*::" msgstr "" -#: library/enum.rst:663 +#: library/enum.rst:696 msgid "" ">>> Color.RED + 2\n" "3" msgstr "" -#: library/enum.rst:666 +#: library/enum.rst:699 msgid "If a :class:`Flag` operation is performed with an *IntFlag* member and:" msgstr "" -#: library/enum.rst:668 +#: library/enum.rst:701 msgid "the result is a valid *IntFlag*: an *IntFlag* is returned" msgstr "" -#: library/enum.rst:669 +#: library/enum.rst:702 msgid "" "the result is not a valid *IntFlag*: the result depends on the :class:" "`FlagBoundary` setting" msgstr "" -#: library/enum.rst:671 +#: library/enum.rst:704 msgid "The :func:`repr` of unnamed zero-valued flags has changed. It is now::" msgstr "" -#: library/enum.rst:673 +#: library/enum.rst:706 msgid "" ">>> Color(0)\n" "" msgstr "" -#: library/enum.rst:678 +#: library/enum.rst:711 msgid "" "Using :class:`auto` with :class:`IntFlag` results in integers that are " "powers of two, starting with ``1``." msgstr "" -#: library/enum.rst:683 +#: library/enum.rst:716 msgid "" ":meth:`~object.__str__` is now :meth:`!int.__str__` to better support the " "*replacement of existing constants* use-case. :meth:`~object.__format__` " "was already :meth:`!int.__format__` for that same reason." msgstr "" -#: library/enum.rst:687 +#: library/enum.rst:720 msgid "" "Inversion of an :class:`!IntFlag` now returns a positive value that is the " "union of all flags not in the given flag, rather than a negative value. This " "matches the existing :class:`Flag` behavior." msgstr "" -#: library/enum.rst:693 +#: library/enum.rst:726 msgid "" ":class:`!ReprEnum` uses the :meth:`repr() ` of :class:`Enum`, " "but the :class:`str() ` of the mixed-in data type:" msgstr "" -#: library/enum.rst:696 +#: library/enum.rst:729 msgid ":meth:`!int.__str__` for :class:`IntEnum` and :class:`IntFlag`" msgstr "" -#: library/enum.rst:697 +#: library/enum.rst:730 msgid ":meth:`!str.__str__` for :class:`StrEnum`" msgstr "" -#: library/enum.rst:699 +#: library/enum.rst:732 msgid "" "Inherit from :class:`!ReprEnum` to keep the :class:`str() ` / :func:" "`format` of the mixed-in data type instead of using the :class:`Enum`-" "default :meth:`str() `." msgstr "" -#: library/enum.rst:708 +#: library/enum.rst:741 msgid "" "*EnumCheck* contains the options used by the :func:`verify` decorator to " "ensure various constraints; failed constraints result in a :exc:`ValueError`." msgstr "" -#: library/enum.rst:713 +#: library/enum.rst:746 msgid "Ensure that each value has only one name::" msgstr "" -#: library/enum.rst:715 +#: library/enum.rst:748 msgid "" ">>> from enum import Enum, verify, UNIQUE\n" ">>> @verify(UNIQUE)\n" @@ -1070,13 +1096,13 @@ msgid "" "ValueError: aliases found in : CRIMSON -> RED" msgstr "" -#: library/enum.rst:729 +#: library/enum.rst:762 msgid "" "Ensure that there are no missing values between the lowest-valued member and " "the highest-valued member::" msgstr "" -#: library/enum.rst:732 +#: library/enum.rst:765 msgid "" ">>> from enum import Enum, verify, CONTINUOUS\n" ">>> @verify(CONTINUOUS)\n" @@ -1089,13 +1115,13 @@ msgid "" "ValueError: invalid enum 'Color': missing values 3, 4" msgstr "" -#: library/enum.rst:744 +#: library/enum.rst:777 msgid "" "Ensure that any flag groups/masks contain only named flags -- useful when " "values are specified instead of being generated by :func:`auto`::" msgstr "" -#: library/enum.rst:747 +#: library/enum.rst:780 msgid "" ">>> from enum import Flag, verify, NAMED_FLAGS\n" ">>> @verify(NAMED_FLAGS)\n" @@ -1111,24 +1137,24 @@ msgid "" "combined values of 0x18 [use enum.show_flag_values(value) for details]" msgstr "" -#: library/enum.rst:761 +#: library/enum.rst:794 msgid "" "CONTINUOUS and NAMED_FLAGS are designed to work with integer-valued members." msgstr "" -#: library/enum.rst:767 +#: library/enum.rst:800 msgid "" "``FlagBoundary`` controls how out-of-range values are handled in :class:" "`Flag` and its subclasses." msgstr "" -#: library/enum.rst:772 +#: library/enum.rst:805 msgid "" "Out-of-range values cause a :exc:`ValueError` to be raised. This is the " "default for :class:`Flag`::" msgstr "" -#: library/enum.rst:775 +#: library/enum.rst:808 msgid "" ">>> from enum import Flag, STRICT, auto\n" ">>> class StrictFlag(Flag, boundary=STRICT):\n" @@ -1144,13 +1170,13 @@ msgid "" " allowed 0b0 00111" msgstr "" -#: library/enum.rst:790 +#: library/enum.rst:823 msgid "" "Out-of-range values have invalid values removed, leaving a valid :class:" "`Flag` value::" msgstr "" -#: library/enum.rst:793 +#: library/enum.rst:826 msgid "" ">>> from enum import Flag, CONFORM, auto\n" ">>> class ConformFlag(Flag, boundary=CONFORM):\n" @@ -1162,19 +1188,19 @@ msgid "" "" msgstr "" -#: library/enum.rst:804 +#: library/enum.rst:837 msgid "" "Out-of-range values lose their :class:`Flag` membership and revert to :class:" "`int`." msgstr "" -#: library/enum.rst:817 +#: library/enum.rst:850 msgid "" "Out-of-range values are kept, and the :class:`Flag` membership is kept. This " "is the default for :class:`IntFlag`::" msgstr "" -#: library/enum.rst:820 +#: library/enum.rst:853 msgid "" ">>> from enum import Flag, KEEP, auto\n" ">>> class KeepFlag(Flag, boundary=KEEP):\n" @@ -1186,7 +1212,7 @@ msgid "" "" msgstr "" -#: library/enum.rst:833 +#: library/enum.rst:866 msgid "" "*EnumDict* is a subclass of :class:`dict` that is used as the namespace for " "defining enum classes (see :ref:`prepare`). It is exposed to allow " @@ -1196,7 +1222,7 @@ msgid "" "correctly." msgstr "" -#: library/enum.rst:840 +#: library/enum.rst:873 msgid "" "Note that only the :class:`~collections.abc.MutableMapping` interface (:meth:" "`~object.__setitem__` and :meth:`~dict.update`) is overridden. It may be " @@ -1204,116 +1230,116 @@ msgid "" "meth:`|= `." msgstr "" -#: library/enum.rst:847 +#: library/enum.rst:880 msgid "A list of member names." msgstr "" -#: library/enum.rst:854 +#: library/enum.rst:887 msgid "Supported ``__dunder__`` names" msgstr "" -#: library/enum.rst:856 +#: library/enum.rst:889 msgid "" ":attr:`~EnumType.__members__` is a read-only ordered mapping of " "``member_name``:``member`` items. It is only available on the class." msgstr "" -#: library/enum.rst:859 +#: library/enum.rst:892 msgid "" ":meth:`~Enum.__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 "" -#: library/enum.rst:865 +#: library/enum.rst:898 msgid "Supported ``_sunder_`` names" msgstr "" -#: library/enum.rst:867 -msgid "" -":meth:`~EnumType._add_alias_` -- adds a new name as an alias to an existing " -"member." -msgstr "" - -#: library/enum.rst:869 -msgid "" -":meth:`~EnumType._add_value_alias_` -- adds a new value as an alias to an " -"existing member." -msgstr "" - -#: library/enum.rst:871 +#: library/enum.rst:900 msgid ":attr:`~Enum._name_` -- name of the member" msgstr "" -#: library/enum.rst:872 +#: library/enum.rst:901 msgid ":attr:`~Enum._value_` -- value of the member; can be set in ``__new__``" msgstr "" -#: library/enum.rst:873 +#: library/enum.rst:902 msgid "" ":meth:`~Enum._missing_` -- a lookup function used when a value is not found; " "may be overridden" msgstr "" -#: library/enum.rst:875 +#: library/enum.rst:904 msgid "" ":attr:`~Enum._ignore_` -- a list of names, either as a :class:`list` or a :" "class:`str`, that will not be transformed into members, and will be removed " "from the final class" msgstr "" -#: library/enum.rst:878 +#: library/enum.rst:907 msgid "" ":attr:`~Enum._order_` -- no longer used, kept for backward compatibility " "(class attribute, removed during class creation)" msgstr "" -#: library/enum.rst:880 +#: library/enum.rst:909 msgid "" ":meth:`~Enum._generate_next_value_` -- used to get an appropriate value for " "an enum member; may be overridden" msgstr "" -#: library/enum.rst:885 +#: library/enum.rst:914 msgid "" "For standard :class:`Enum` classes the next value chosen is the highest " "value seen incremented by one." msgstr "" -#: library/enum.rst:888 +#: library/enum.rst:917 msgid "" "For :class:`Flag` classes the next value chosen will be the next highest " "power-of-two." msgstr "" -#: library/enum.rst:891 +#: library/enum.rst:920 +msgid "" +":meth:`~Enum._add_alias_` -- adds a new name as an alias to an existing " +"member." +msgstr "" + +#: library/enum.rst:922 +msgid "" +":meth:`~Enum._add_value_alias_` -- adds a new value as an alias to an " +"existing member." +msgstr "" + +#: library/enum.rst:925 msgid "" "While ``_sunder_`` names are generally reserved for the further development " "of the :class:`Enum` class and can not be used, some are explicitly allowed:" msgstr "" -#: library/enum.rst:894 +#: library/enum.rst:928 msgid "" "``_repr_*`` (e.g. ``_repr_html_``), as used in `IPython's rich display`_" msgstr "" -#: library/enum.rst:896 +#: library/enum.rst:930 msgid "``_missing_``, ``_order_``, ``_generate_next_value_``" msgstr "" -#: library/enum.rst:897 +#: library/enum.rst:931 msgid "``_ignore_``" msgstr "" -#: library/enum.rst:898 +#: library/enum.rst:932 msgid "``_add_alias_``, ``_add_value_alias_``, ``_repr_*``" msgstr "" -#: library/enum.rst:904 +#: library/enum.rst:938 msgid "Utilities and Decorators" msgstr "" -#: library/enum.rst:908 +#: library/enum.rst:942 msgid "" "*auto* can be used in place of a value. If used, the *Enum* machinery will " "call an :class:`Enum`'s :meth:`~Enum._generate_next_value_` to get an " @@ -1324,54 +1350,54 @@ msgid "" "name. Care must be taken if mixing *auto()* with manually specified values." msgstr "" -#: library/enum.rst:916 +#: library/enum.rst:950 msgid "" "*auto* instances are only resolved when at the top level of an assignment:" msgstr "" -#: library/enum.rst:918 +#: library/enum.rst:952 msgid "``FIRST = auto()`` will work (auto() is replaced with ``1``);" msgstr "" -#: library/enum.rst:919 +#: library/enum.rst:953 msgid "" "``SECOND = auto(), -2`` will work (auto is replaced with ``2``, so ``2, -2`` " "is used to create the ``SECOND`` enum member;" msgstr "" -#: library/enum.rst:921 +#: library/enum.rst:955 msgid "" "``THREE = [auto(), -3]`` will *not* work (``, -3`` is used to " "create the ``THREE`` enum member)" msgstr "" -#: library/enum.rst:926 +#: library/enum.rst:960 msgid "" "In prior versions, ``auto()`` had to be the only thing on the assignment " "line to work properly." msgstr "" -#: library/enum.rst:929 +#: library/enum.rst:963 msgid "" "``_generate_next_value_`` can be overridden to customize the values used by " "*auto*." msgstr "" -#: library/enum.rst:932 +#: library/enum.rst:966 msgid "" "in 3.13 the default ``_generate_next_value_`` will always return the highest " "member value incremented by 1, and will fail if any member is an " "incompatible type." msgstr "" -#: library/enum.rst:938 +#: library/enum.rst:972 msgid "" "A decorator similar to the built-in *property*, but specifically for " "enumerations. It allows member attributes to have the same names as members " "themselves." msgstr "" -#: library/enum.rst:942 +#: library/enum.rst:976 msgid "" "the *property* and the member must be defined in separate classes; for " "example, the *value* and *name* attributes are defined in the *Enum* class, " @@ -1379,14 +1405,14 @@ msgid "" "``name``." msgstr "" -#: library/enum.rst:951 +#: library/enum.rst:985 msgid "" "A :keyword:`class` decorator specifically for enumerations. It searches an " "enumeration's :attr:`~EnumType.__members__`, gathering any aliases it finds; " "if any are found :exc:`ValueError` is raised with the details::" msgstr "" -#: library/enum.rst:955 +#: library/enum.rst:989 msgid "" ">>> from enum import Enum, unique\n" ">>> @unique\n" @@ -1401,22 +1427,22 @@ msgid "" "ValueError: duplicate values found in : FOUR -> THREE" msgstr "" -#: library/enum.rst:969 +#: library/enum.rst:1003 msgid "" "A :keyword:`class` decorator specifically for enumerations. Members from :" "class:`EnumCheck` are used to specify which constraints should be checked on " "the decorated enumeration." msgstr "" -#: library/enum.rst:977 +#: library/enum.rst:1011 msgid "A decorator for use in enums: its target will become a member." msgstr "" -#: library/enum.rst:983 +#: library/enum.rst:1017 msgid "A decorator for use in enums: its target will not become a member." msgstr "" -#: library/enum.rst:989 +#: library/enum.rst:1023 msgid "" "A decorator to change the :class:`str() ` and :func:`repr` of an enum " "to show its members as belonging to the module instead of its class. Should " @@ -1424,52 +1450,52 @@ msgid "" "namespace (see :class:`re.RegexFlag` for an example)." msgstr "" -#: library/enum.rst:999 +#: library/enum.rst:1033 msgid "Return a list of all power-of-two integers contained in a flag *value*." msgstr "" -#: library/enum.rst:1006 +#: library/enum.rst:1040 msgid "Notes" msgstr "" -#: library/enum.rst:1008 +#: library/enum.rst:1042 msgid ":class:`IntEnum`, :class:`StrEnum`, and :class:`IntFlag`" msgstr "" -#: library/enum.rst:1010 +#: library/enum.rst:1044 msgid "" "These three enum types are designed to be drop-in replacements for existing " "integer- and string-based values; as such, they have extra limitations:" msgstr "" -#: library/enum.rst:1013 +#: library/enum.rst:1047 msgid "``__str__`` uses the value and not the name of the enum member" msgstr "" -#: library/enum.rst:1015 +#: library/enum.rst:1049 msgid "" "``__format__``, because it uses ``__str__``, will also use the value of the " "enum member instead of its name" msgstr "" -#: library/enum.rst:1018 +#: library/enum.rst:1052 msgid "" "If you do not need/want those limitations, you can either create your own " "base class by mixing in the ``int`` or ``str`` type yourself::" msgstr "" -#: library/enum.rst:1021 +#: library/enum.rst:1055 msgid "" ">>> from enum import Enum\n" ">>> class MyIntEnum(int, Enum):\n" "... pass" msgstr "" -#: library/enum.rst:1025 +#: library/enum.rst:1059 msgid "or you can reassign the appropriate :meth:`str`, etc., in your enum::" msgstr "" -#: library/enum.rst:1027 +#: library/enum.rst:1061 msgid "" ">>> from enum import Enum, IntEnum\n" ">>> class MyIntEnum(IntEnum):\n" diff --git a/library/errno.po b/library/errno.po index f69aa0d0..7bc184c2 100644 --- a/library/errno.po +++ b/library/errno.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/exceptions.po b/library/exceptions.po index 5ae334bf..2928c00c 100644 --- a/library/exceptions.po +++ b/library/exceptions.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -252,28 +252,34 @@ msgstr "" #: library/exceptions.rst:207 msgid "" -"The :attr:`name` and :attr:`obj` attributes can be set using keyword-only " -"arguments to the constructor. When set they represent the name of the " -"attribute that was attempted to be accessed and the object that was accessed " -"for said attribute, respectively." +"The optional *name* and *obj* keyword-only arguments set the corresponding " +"attributes:" msgstr "" #: library/exceptions.rst:212 +msgid "The name of the attribute that was attempted to be accessed." +msgstr "" + +#: library/exceptions.rst:216 +msgid "The object that was accessed for the named attribute." +msgstr "" + +#: library/exceptions.rst:218 msgid "Added the :attr:`name` and :attr:`obj` attributes." msgstr "" -#: library/exceptions.rst:217 +#: library/exceptions.rst:223 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." +"without reading any data. (Note: the :meth:`!io.IOBase.read` and :meth:`io." "IOBase.readline` methods return an empty string when they hit EOF.)" msgstr "" -#: library/exceptions.rst:224 +#: library/exceptions.rst:230 msgid "Not currently used." msgstr "" -#: library/exceptions.rst:229 +#: library/exceptions.rst:235 msgid "" "Raised when a :term:`generator` or :term:`coroutine` is closed; see :meth:" "`generator.close` and :meth:`coroutine.close`. It directly inherits from :" @@ -281,52 +287,52 @@ msgid "" "an error." msgstr "" -#: library/exceptions.rst:237 +#: library/exceptions.rst:243 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 "" -#: library/exceptions.rst:241 +#: library/exceptions.rst:247 msgid "" "The optional *name* and *path* keyword-only arguments set the corresponding " "attributes:" msgstr "" -#: library/exceptions.rst:246 +#: library/exceptions.rst:252 msgid "The name of the module that was attempted to be imported." msgstr "" -#: library/exceptions.rst:250 +#: library/exceptions.rst:256 msgid "The path to any file which triggered the exception." msgstr "" -#: library/exceptions.rst:252 +#: library/exceptions.rst:258 msgid "Added the :attr:`name` and :attr:`path` attributes." msgstr "" -#: library/exceptions.rst:257 +#: library/exceptions.rst:263 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 "" -#: library/exceptions.rst:266 +#: library/exceptions.rst:272 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 "" -#: library/exceptions.rst:275 +#: library/exceptions.rst:281 msgid "" "Raised when a mapping (dictionary) key is not found in the set of existing " "keys." msgstr "" -#: library/exceptions.rst:282 +#: library/exceptions.rst:288 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. " @@ -335,7 +341,7 @@ msgid "" "the interpreter from exiting." msgstr "" -#: library/exceptions.rst:290 +#: library/exceptions.rst:296 msgid "" "Catching a :exc:`KeyboardInterrupt` requires special consideration. Because " "it can be raised at unpredictable points, it may, in some circumstances, " @@ -344,7 +350,7 @@ msgid "" "avoid raising it entirely. (See :ref:`handlers-and-exceptions`.)" msgstr "" -#: library/exceptions.rst:300 +#: library/exceptions.rst:306 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 " @@ -355,25 +361,26 @@ msgid "" "stack traceback can be printed, in case a run-away program was the cause." msgstr "" -#: library/exceptions.rst:311 +#: library/exceptions.rst:317 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 "" -#: library/exceptions.rst:315 -msgid "" -"The :attr:`name` attribute can be set using a keyword-only argument to the " -"constructor. When set it represent the name of the variable that was " -"attempted to be accessed." +#: library/exceptions.rst:321 +msgid "The optional *name* keyword-only argument sets the attribute:" msgstr "" -#: library/exceptions.rst:319 +#: library/exceptions.rst:325 +msgid "The name of the variable that was attempted to be accessed." +msgstr "" + +#: library/exceptions.rst:327 msgid "Added the :attr:`name` attribute." msgstr "" -#: library/exceptions.rst:325 +#: library/exceptions.rst:333 msgid "" "This exception is derived from :exc:`RuntimeError`. In user defined base " "classes, abstract methods should raise this exception when they require " @@ -381,28 +388,28 @@ msgid "" "developed to indicate that the real implementation still needs to be added." msgstr "" -#: library/exceptions.rst:332 +#: library/exceptions.rst:340 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 "" -#: library/exceptions.rst:338 +#: library/exceptions.rst:346 msgid "" ":exc:`!NotImplementedError` and :data:`!NotImplemented` are not " "interchangeable. This exception should only be used as described above; see :" "data:`NotImplemented` for details on correct usage of the built-in constant." msgstr "" -#: library/exceptions.rst:349 +#: library/exceptions.rst:357 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 "" -#: library/exceptions.rst:353 +#: library/exceptions.rst:361 msgid "" "The second form of the constructor sets the corresponding attributes, " "described below. The attributes default to :const:`None` if not specified. " @@ -411,7 +418,7 @@ msgid "" "constructor arguments." msgstr "" -#: library/exceptions.rst:359 +#: library/exceptions.rst:367 msgid "" "The constructor often actually returns a subclass of :exc:`OSError`, as " "described in `OS exceptions`_ below. The particular subclass depends on the " @@ -420,18 +427,18 @@ msgid "" "subclassing." msgstr "" -#: library/exceptions.rst:367 +#: library/exceptions.rst:375 msgid "A numeric error code from the C variable :c:data:`errno`." msgstr "" -#: library/exceptions.rst:371 +#: library/exceptions.rst:379 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 "" -#: library/exceptions.rst:375 +#: library/exceptions.rst:383 msgid "" "Under Windows, if the *winerror* constructor argument is an integer, the :" "attr:`.errno` attribute is determined from the Windows error code, and the " @@ -439,14 +446,14 @@ msgid "" "ignored, and the :attr:`winerror` attribute does not exist." msgstr "" -#: library/exceptions.rst:383 +#: library/exceptions.rst:391 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." +"formatted by the C functions :c:func:`!perror` under POSIX, and :c:func:`!" +"FormatMessage` under Windows." msgstr "" -#: library/exceptions.rst:391 +#: library/exceptions.rst:399 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. " @@ -455,14 +462,14 @@ msgid "" "the function." msgstr "" -#: library/exceptions.rst:398 +#: library/exceptions.rst:406 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." +"error`, :exc:`select.error` and :exc:`!mmap.error` have been merged into :" +"exc:`OSError`, and the constructor may return a subclass." msgstr "" -#: library/exceptions.rst:404 +#: library/exceptions.rst:412 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 :term:" @@ -470,7 +477,7 @@ msgid "" "argument and attribute was added." msgstr "" -#: library/exceptions.rst:413 +#: library/exceptions.rst:421 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:" @@ -480,51 +487,51 @@ msgid "" "in C, most floating-point operations are not checked." msgstr "" -#: library/exceptions.rst:423 +#: library/exceptions.rst:431 msgid "" "This exception is derived from :exc:`RuntimeError`. It is raised when an " "operation is blocked during interpreter shutdown also known as :term:`Python " "finalization `." msgstr "" -#: library/exceptions.rst:427 +#: library/exceptions.rst:435 msgid "" "Examples of operations which can be blocked with a :exc:" "`PythonFinalizationError` during the Python finalization:" msgstr "" -#: library/exceptions.rst:430 +#: library/exceptions.rst:438 msgid "Creating a new Python thread." msgstr "" -#: library/exceptions.rst:431 +#: library/exceptions.rst:439 msgid ":meth:`Joining ` a running daemon thread." msgstr "" -#: library/exceptions.rst:432 +#: library/exceptions.rst:440 msgid ":func:`os.fork`." msgstr "" -#: library/exceptions.rst:434 +#: library/exceptions.rst:442 msgid "See also the :func:`sys.is_finalizing` function." msgstr "" -#: library/exceptions.rst:449 +#: library/exceptions.rst:457 msgid "Previously, a plain :exc:`RuntimeError` was raised." msgstr "" -#: library/exceptions.rst:441 +#: library/exceptions.rst:449 msgid ":meth:`threading.Thread.join` can now raise this exception." msgstr "" -#: library/exceptions.rst:445 +#: library/exceptions.rst:453 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 "" -#: library/exceptions.rst:455 +#: library/exceptions.rst:463 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 " @@ -532,66 +539,66 @@ msgid "" "references, see the :mod:`weakref` module." msgstr "" -#: library/exceptions.rst:463 +#: library/exceptions.rst:471 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 "" -#: library/exceptions.rst:470 +#: library/exceptions.rst:478 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 "" -#: library/exceptions.rst:476 +#: library/exceptions.rst:484 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 "" -#: library/exceptions.rst:480 +#: library/exceptions.rst:488 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 "" -#: library/exceptions.rst:485 +#: library/exceptions.rst:493 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 "" -#: library/exceptions.rst:489 +#: library/exceptions.rst:497 msgid "" "Added ``value`` attribute and the ability for generator functions to use it " "to return a value." msgstr "" -#: library/exceptions.rst:493 +#: library/exceptions.rst:501 msgid "" "Introduced the RuntimeError transformation via ``from __future__ import " "generator_stop``, see :pep:`479`." msgstr "" -#: library/exceptions.rst:497 +#: library/exceptions.rst:505 msgid "" "Enable :pep:`479` for all code by default: a :exc:`StopIteration` error " "raised in a generator is transformed into a :exc:`RuntimeError`." msgstr "" -#: library/exceptions.rst:503 +#: library/exceptions.rst:511 msgid "" "Must be raised by :meth:`~object.__anext__` method of an :term:`asynchronous " "iterator` object to stop the iteration." msgstr "" -#: library/exceptions.rst:510 +#: library/exceptions.rst:518 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:" @@ -599,45 +606,45 @@ msgid "" "or standard input (also interactively)." msgstr "" -#: library/exceptions.rst:516 +#: library/exceptions.rst:524 msgid "" "The :func:`str` of the exception instance returns only the error message. " "Details is a tuple whose members are also available as separate attributes." msgstr "" -#: library/exceptions.rst:521 +#: library/exceptions.rst:529 msgid "The name of the file the syntax error occurred in." msgstr "" -#: library/exceptions.rst:525 +#: library/exceptions.rst:533 msgid "" "Which line number in the file the error occurred in. This is 1-indexed: the " "first line in the file has a ``lineno`` of 1." msgstr "" -#: library/exceptions.rst:530 +#: library/exceptions.rst:538 msgid "" "The column in the line where the error occurred. This is 1-indexed: the " "first character in the line has an ``offset`` of 1." msgstr "" -#: library/exceptions.rst:535 +#: library/exceptions.rst:543 msgid "The source code text involved in the error." msgstr "" -#: library/exceptions.rst:539 +#: library/exceptions.rst:547 msgid "" "Which line number in the file the error occurred ends in. This is 1-indexed: " "the first line in the file has a ``lineno`` of 1." msgstr "" -#: library/exceptions.rst:544 +#: library/exceptions.rst:552 msgid "" "The column in the end line where the error occurred finishes. This is 1-" "indexed: the first character in the line has an ``offset`` of 1." msgstr "" -#: library/exceptions.rst:547 +#: library/exceptions.rst:555 msgid "" "For errors in f-string fields, the message is prefixed by \"f-string: \" and " "the offsets are offsets in a text constructed from the replacement " @@ -645,23 +652,23 @@ msgid "" "attribute: ('f-string: ...', ('', 1, 2, '(a b)\\n', 1, 5))." msgstr "" -#: library/exceptions.rst:552 +#: library/exceptions.rst:560 msgid "Added the :attr:`end_lineno` and :attr:`end_offset` attributes." msgstr "" -#: library/exceptions.rst:557 +#: library/exceptions.rst:565 msgid "" "Base class for syntax errors related to incorrect indentation. This is a " "subclass of :exc:`SyntaxError`." msgstr "" -#: library/exceptions.rst:563 +#: library/exceptions.rst:571 msgid "" "Raised when indentation contains an inconsistent use of tabs and spaces. " "This is a subclass of :exc:`IndentationError`." msgstr "" -#: library/exceptions.rst:569 +#: library/exceptions.rst:577 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 " @@ -670,7 +677,7 @@ msgid "" "returning a ``NULL`` value without an exception set." msgstr "" -#: library/exceptions.rst:575 +#: library/exceptions.rst:583 msgid "" "If you're confident that this exception wasn't your fault, or the fault of a " "package you're using, you should report this to the author or maintainer of " @@ -681,7 +688,7 @@ msgid "" "the error." msgstr "" -#: library/exceptions.rst:586 +#: library/exceptions.rst:594 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 " @@ -690,12 +697,12 @@ msgid "" "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 " +"(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 "" -#: library/exceptions.rst:597 +#: library/exceptions.rst:605 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 " @@ -705,20 +712,20 @@ msgid "" "child process after a call to :func:`os.fork`)." msgstr "" -#: library/exceptions.rst:606 +#: library/exceptions.rst:614 msgid "" "The exit status or error message that is passed to the constructor. " "(Defaults to ``None``.)" msgstr "" -#: library/exceptions.rst:612 +#: library/exceptions.rst:620 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 "" -#: library/exceptions.rst:615 +#: library/exceptions.rst:623 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 " @@ -726,7 +733,7 @@ msgid "" "implementation, :exc:`NotImplementedError` is the proper exception to raise." msgstr "" -#: library/exceptions.rst:620 +#: library/exceptions.rst:628 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 " @@ -734,105 +741,105 @@ msgid "" "should result in a :exc:`ValueError`." msgstr "" -#: library/exceptions.rst:627 +#: library/exceptions.rst:635 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 "" -#: library/exceptions.rst:634 +#: library/exceptions.rst:642 msgid "" "Raised when a Unicode-related encoding or decoding error occurs. It is a " "subclass of :exc:`ValueError`." msgstr "" -#: library/exceptions.rst:637 +#: library/exceptions.rst:645 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 "" -#: library/exceptions.rst:643 +#: library/exceptions.rst:651 msgid "The name of the encoding that raised the error." msgstr "" -#: library/exceptions.rst:647 +#: library/exceptions.rst:655 msgid "A string describing the specific codec error." msgstr "" -#: library/exceptions.rst:651 +#: library/exceptions.rst:659 msgid "The object the codec was attempting to encode or decode." msgstr "" -#: library/exceptions.rst:655 +#: library/exceptions.rst:663 msgid "The first index of invalid data in :attr:`object`." msgstr "" -#: library/exceptions.rst:664 +#: library/exceptions.rst:672 msgid "" "This value should not be negative as it is interpreted as an absolute offset " "but this constraint is not enforced at runtime." msgstr "" -#: library/exceptions.rst:662 +#: library/exceptions.rst:670 msgid "The index after the last invalid data in :attr:`object`." msgstr "" -#: library/exceptions.rst:670 +#: library/exceptions.rst:678 msgid "" "Raised when a Unicode-related error occurs during encoding. It is a " "subclass of :exc:`UnicodeError`." msgstr "" -#: library/exceptions.rst:676 +#: library/exceptions.rst:684 msgid "" "Raised when a Unicode-related error occurs during decoding. It is a " "subclass of :exc:`UnicodeError`." msgstr "" -#: library/exceptions.rst:682 +#: library/exceptions.rst:690 msgid "" "Raised when a Unicode-related error occurs during translating. It is a " "subclass of :exc:`UnicodeError`." msgstr "" -#: library/exceptions.rst:688 +#: library/exceptions.rst:696 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 "" -#: library/exceptions.rst:695 +#: library/exceptions.rst:703 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 "" -#: library/exceptions.rst:700 +#: library/exceptions.rst:708 msgid "" "The following exceptions are kept for compatibility with previous versions; " "starting from Python 3.3, they are aliases of :exc:`OSError`." msgstr "" -#: library/exceptions.rst:709 +#: library/exceptions.rst:717 msgid "Only available on Windows." msgstr "" -#: library/exceptions.rst:713 +#: library/exceptions.rst:721 msgid "OS exceptions" msgstr "" -#: library/exceptions.rst:715 +#: library/exceptions.rst:723 msgid "" "The following exceptions are subclasses of :exc:`OSError`, they get raised " "depending on the system error code." msgstr "" -#: library/exceptions.rst:720 +#: library/exceptions.rst:728 msgid "" "Raised when an operation would block on an object (e.g. socket) set for non-" "blocking operation. Corresponds to :c:data:`errno` :py:const:`~errno." @@ -840,36 +847,36 @@ msgid "" "const:`~errno.EINPROGRESS`." msgstr "" -#: library/exceptions.rst:725 +#: library/exceptions.rst:733 msgid "" "In addition to those of :exc:`OSError`, :exc:`BlockingIOError` can have one " "more attribute:" msgstr "" -#: library/exceptions.rst:730 +#: library/exceptions.rst:738 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 "" -#: library/exceptions.rst:736 +#: library/exceptions.rst:744 msgid "" "Raised when an operation on a child process failed. Corresponds to :c:data:" "`errno` :py:const:`~errno.ECHILD`." msgstr "" -#: library/exceptions.rst:741 +#: library/exceptions.rst:749 msgid "A base class for connection-related issues." msgstr "" -#: library/exceptions.rst:743 +#: library/exceptions.rst:751 msgid "" "Subclasses are :exc:`BrokenPipeError`, :exc:`ConnectionAbortedError`, :exc:" "`ConnectionRefusedError` and :exc:`ConnectionResetError`." msgstr "" -#: library/exceptions.rst:748 +#: library/exceptions.rst:756 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 " @@ -877,58 +884,58 @@ msgid "" "`~errno.EPIPE` and :py:const:`~errno.ESHUTDOWN`." msgstr "" -#: library/exceptions.rst:755 +#: library/exceptions.rst:763 msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection attempt is " "aborted by the peer. Corresponds to :c:data:`errno` :py:const:`~errno." "ECONNABORTED`." msgstr "" -#: library/exceptions.rst:761 +#: library/exceptions.rst:769 msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection attempt is " "refused by the peer. Corresponds to :c:data:`errno` :py:const:`~errno." "ECONNREFUSED`." msgstr "" -#: library/exceptions.rst:767 +#: library/exceptions.rst:775 msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection is reset by " "the peer. Corresponds to :c:data:`errno` :py:const:`~errno.ECONNRESET`." msgstr "" -#: library/exceptions.rst:773 +#: library/exceptions.rst:781 msgid "" "Raised when trying to create a file or directory which already exists. " "Corresponds to :c:data:`errno` :py:const:`~errno.EEXIST`." msgstr "" -#: library/exceptions.rst:778 +#: library/exceptions.rst:786 msgid "" "Raised when a file or directory is requested but doesn't exist. Corresponds " "to :c:data:`errno` :py:const:`~errno.ENOENT`." msgstr "" -#: library/exceptions.rst:783 +#: library/exceptions.rst:791 msgid "" "Raised when a system call is interrupted by an incoming signal. Corresponds " "to :c:data:`errno` :py:const:`~errno.EINTR`." msgstr "" -#: library/exceptions.rst:786 +#: library/exceptions.rst:794 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 "" -#: library/exceptions.rst:793 +#: library/exceptions.rst:801 msgid "" "Raised when a file operation (such as :func:`os.remove`) is requested on a " "directory. Corresponds to :c:data:`errno` :py:const:`~errno.EISDIR`." msgstr "" -#: library/exceptions.rst:799 +#: library/exceptions.rst:807 msgid "" "Raised when a directory operation (such as :func:`os.listdir`) is requested " "on something which is not a directory. On most POSIX platforms, it may also " @@ -937,7 +944,7 @@ msgid "" "ENOTDIR`." msgstr "" -#: library/exceptions.rst:807 +#: library/exceptions.rst:815 msgid "" "Raised when trying to run an operation without the adequate access rights - " "for example filesystem permissions. Corresponds to :c:data:`errno` :py:const:" @@ -945,130 +952,136 @@ msgid "" "ENOTCAPABLE`." msgstr "" -#: library/exceptions.rst:812 +#: library/exceptions.rst:820 msgid "" "WASI's :py:const:`~errno.ENOTCAPABLE` is now mapped to :exc:" "`PermissionError`." msgstr "" -#: library/exceptions.rst:818 +#: library/exceptions.rst:826 msgid "" "Raised when a given process doesn't exist. Corresponds to :c:data:`errno` :" "py:const:`~errno.ESRCH`." msgstr "" -#: library/exceptions.rst:823 +#: library/exceptions.rst:831 msgid "" "Raised when a system function timed out at the system level. Corresponds to :" "c:data:`errno` :py:const:`~errno.ETIMEDOUT`." msgstr "" -#: library/exceptions.rst:826 +#: library/exceptions.rst:834 msgid "All the above :exc:`OSError` subclasses were added." msgstr "" -#: library/exceptions.rst:832 +#: library/exceptions.rst:840 msgid ":pep:`3151` - Reworking the OS and IO exception hierarchy" msgstr "" -#: library/exceptions.rst:838 +#: library/exceptions.rst:846 msgid "Warnings" msgstr "" -#: library/exceptions.rst:840 +#: library/exceptions.rst:848 msgid "" "The following exceptions are used as warning categories; see the :ref:" "`warning-categories` documentation for more details." msgstr "" -#: library/exceptions.rst:845 +#: library/exceptions.rst:853 msgid "Base class for warning categories." msgstr "" -#: library/exceptions.rst:850 +#: library/exceptions.rst:858 msgid "Base class for warnings generated by user code." msgstr "" -#: library/exceptions.rst:855 +#: library/exceptions.rst:863 msgid "" "Base class for warnings about deprecated features when those warnings are " "intended for other Python developers." msgstr "" -#: library/exceptions.rst:858 +#: library/exceptions.rst:866 msgid "" "Ignored by the default warning filters, except in the ``__main__`` module (:" "pep:`565`). Enabling the :ref:`Python Development Mode ` shows this " "warning." msgstr "" -#: library/exceptions.rst:878 +#: library/exceptions.rst:886 msgid "The deprecation policy is described in :pep:`387`." msgstr "" -#: library/exceptions.rst:867 +#: library/exceptions.rst:875 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 "" -#: library/exceptions.rst:871 +#: library/exceptions.rst:879 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 "" -#: library/exceptions.rst:901 library/exceptions.rst:928 +#: library/exceptions.rst:912 library/exceptions.rst:939 msgid "" "Ignored by the default warning filters. Enabling the :ref:`Python " "Development Mode ` shows this warning." msgstr "" -#: library/exceptions.rst:883 +#: library/exceptions.rst:891 msgid "Base class for warnings about dubious syntax." msgstr "" -#: library/exceptions.rst:888 +#: library/exceptions.rst:893 +msgid "" +"This warning is typically emitted when compiling Python source code, and " +"usually won't be reported when running already compiled code." +msgstr "" + +#: library/exceptions.rst:899 msgid "Base class for warnings about dubious runtime behavior." msgstr "" -#: library/exceptions.rst:893 +#: library/exceptions.rst:904 msgid "" "Base class for warnings about deprecated features when those warnings are " "intended for end users of applications that are written in Python." msgstr "" -#: library/exceptions.rst:899 +#: library/exceptions.rst:910 msgid "Base class for warnings about probable mistakes in module imports." msgstr "" -#: library/exceptions.rst:907 +#: library/exceptions.rst:918 msgid "Base class for warnings related to Unicode." msgstr "" -#: library/exceptions.rst:912 +#: library/exceptions.rst:923 msgid "Base class for warnings related to encodings." msgstr "" -#: library/exceptions.rst:914 +#: library/exceptions.rst:925 msgid "See :ref:`io-encoding-warning` for details." msgstr "" -#: library/exceptions.rst:921 +#: library/exceptions.rst:932 msgid "" "Base class for warnings related to :class:`bytes` and :class:`bytearray`." msgstr "" -#: library/exceptions.rst:926 +#: library/exceptions.rst:937 msgid "Base class for warnings related to resource usage." msgstr "" -#: library/exceptions.rst:937 +#: library/exceptions.rst:948 msgid "Exception groups" msgstr "" -#: library/exceptions.rst:939 +#: library/exceptions.rst:950 msgid "" "The following are used when it is necessary to raise multiple unrelated " "exceptions. They are part of the exception hierarchy so they can be handled " @@ -1077,7 +1090,7 @@ msgid "" "based on the types of the contained exceptions." msgstr "" -#: library/exceptions.rst:948 +#: library/exceptions.rst:959 msgid "" "Both of these exception types wrap the exceptions in the sequence ``excs``. " "The ``msg`` parameter must be a string. The difference between the two " @@ -1088,7 +1101,7 @@ msgid "" "exc:`BaseExceptionGroup`." msgstr "" -#: library/exceptions.rst:956 +#: library/exceptions.rst:967 msgid "" "The :exc:`BaseExceptionGroup` constructor returns an :exc:`ExceptionGroup` " "rather than a :exc:`BaseExceptionGroup` if all contained exceptions are :exc:" @@ -1097,23 +1110,23 @@ msgid "" "`TypeError` if any contained exception is not an :exc:`Exception` subclass." msgstr "" -#: library/exceptions.rst:965 +#: library/exceptions.rst:976 msgid "The ``msg`` argument to the constructor. This is a read-only attribute." msgstr "" -#: library/exceptions.rst:969 +#: library/exceptions.rst:980 msgid "" "A tuple of the exceptions in the ``excs`` sequence given to the constructor. " "This is a read-only attribute." msgstr "" -#: library/exceptions.rst:974 +#: library/exceptions.rst:985 msgid "" "Returns an exception group that contains only the exceptions from the " "current group that match *condition*, or ``None`` if the result is empty." msgstr "" -#: library/exceptions.rst:977 +#: library/exceptions.rst:988 msgid "" "The condition can be an exception type or tuple of exception types, in which " "case each exception is checked for a match using the same check that is used " @@ -1122,7 +1135,7 @@ msgid "" "true for the exceptions that should be in the subgroup." msgstr "" -#: library/exceptions.rst:983 +#: library/exceptions.rst:994 msgid "" "The nesting structure of the current exception is preserved in the result, " "as are the values of its :attr:`message`, :attr:`~BaseException." @@ -1131,31 +1144,31 @@ msgid "" "groups are omitted from the result." msgstr "" -#: library/exceptions.rst:990 +#: library/exceptions.rst:1001 msgid "" "The condition is checked for all exceptions in the nested exception group, " "including the top-level and any nested exception groups. If the condition is " "true for such an exception group, it is included in the result in full." msgstr "" -#: library/exceptions.rst:994 +#: library/exceptions.rst:1005 msgid "``condition`` can be any callable which is not a type object." msgstr "" -#: library/exceptions.rst:999 +#: library/exceptions.rst:1010 msgid "" "Like :meth:`subgroup`, but returns the pair ``(match, rest)`` where " "``match`` is ``subgroup(condition)`` and ``rest`` is the remaining non-" "matching part." msgstr "" -#: library/exceptions.rst:1005 +#: library/exceptions.rst:1016 msgid "" "Returns an exception group with the same :attr:`message`, but which wraps " "the exceptions in ``excs``." msgstr "" -#: library/exceptions.rst:1008 +#: library/exceptions.rst:1019 msgid "" "This method is used by :meth:`subgroup` and :meth:`split`, which are used in " "various contexts to break up an exception group. A subclass needs to " @@ -1163,7 +1176,7 @@ msgid "" "instances of the subclass rather than :exc:`ExceptionGroup`." msgstr "" -#: library/exceptions.rst:1014 +#: library/exceptions.rst:1025 msgid "" ":meth:`subgroup` and :meth:`split` copy the :attr:`~BaseException." "__traceback__`, :attr:`~BaseException.__cause__`, :attr:`~BaseException." @@ -1172,7 +1185,7 @@ msgid "" "not need to be updated by :meth:`derive`." msgstr "" -#: library/exceptions.rst:1021 +#: library/exceptions.rst:1032 msgid "" ">>> class MyGroup(ExceptionGroup):\n" "... def derive(self, excs):\n" @@ -1201,16 +1214,16 @@ msgid "" "True" msgstr "" -#: library/exceptions.rst:1047 +#: library/exceptions.rst:1058 msgid "" "Note that :exc:`BaseExceptionGroup` defines :meth:`~object.__new__`, so " "subclasses that need a different constructor signature need to override that " "rather than :meth:`~object.__init__`. For example, the following defines an " -"exception group subclass which accepts an exit_code and and constructs the " +"exception group subclass which accepts an exit_code and constructs the " "group's message from it. ::" msgstr "" -#: library/exceptions.rst:1053 +#: library/exceptions.rst:1064 msgid "" "class Errors(ExceptionGroup):\n" " def __new__(cls, errors, exit_code):\n" @@ -1222,22 +1235,22 @@ msgid "" " return Errors(excs, self.exit_code)" msgstr "" -#: library/exceptions.rst:1062 +#: library/exceptions.rst:1073 msgid "" "Like :exc:`ExceptionGroup`, any subclass of :exc:`BaseExceptionGroup` which " "is also a subclass of :exc:`Exception` can only wrap instances of :exc:" "`Exception`." msgstr "" -#: library/exceptions.rst:1070 +#: library/exceptions.rst:1081 msgid "Exception hierarchy" msgstr "" -#: library/exceptions.rst:1072 +#: library/exceptions.rst:1083 msgid "The class hierarchy for built-in exceptions is:" msgstr "" -#: library/exceptions.rst:1074 +#: library/exceptions.rst:1085 msgid "" "BaseException\n" " ├── BaseExceptionGroup\n" @@ -1349,10 +1362,10 @@ msgstr "" msgid "assert" msgstr "" -#: library/exceptions.rst:347 +#: library/exceptions.rst:355 msgid "module" msgstr "" -#: library/exceptions.rst:347 +#: library/exceptions.rst:355 msgid "errno" msgstr "" diff --git a/library/faulthandler.po b/library/faulthandler.po index 366d69ff..7128bcd5 100644 --- a/library/faulthandler.po +++ b/library/faulthandler.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -158,8 +158,8 @@ msgstr "" msgid "" "Additionally, some compilers do not support :term:`CPython's ` " "implementation of C stack dumps. As a result, a different error may be " -"printed instead of the stack, even if the the operating system supports " -"dumping stacks." +"printed instead of the stack, even if the operating system supports dumping " +"stacks." msgstr "" #: library/faulthandler.rst:97 @@ -320,8 +320,53 @@ msgid "" "Fatal Python error: Segmentation fault\n" "\n" "Current thread 0x00007fb899f39700 (most recent call first):\n" -" File \"/home/python/cpython/Lib/ctypes/__init__.py\", line 486 in " -"string_at\n" +" File \"/opt/python/Lib/ctypes/__init__.py\", line 486 in string_at\n" " File \"\", line 1 in \n" +"\n" +"Current thread's C stack trace (most recent call first):\n" +" Binary file \"/opt/python/python\", at _Py_DumpStack+0x42 " +"[0x5b27f7d7147e]\n" +" Binary file \"/opt/python/python\", at +0x32dcbd [0x5b27f7d85cbd]\n" +" Binary file \"/opt/python/python\", at +0x32df8a [0x5b27f7d85f8a]\n" +" Binary file \"/usr/lib/libc.so.6\", at +0x3def0 [0x77b73226bef0]\n" +" Binary file \"/usr/lib/libc.so.6\", at +0x17ef9c [0x77b7323acf9c]\n" +" Binary file \"/opt/python/build/lib.linux-x86_64-3.14/_ctypes.cpython-314d-" +"x86_64-linux-gnu.so\", at +0xcdf6 [0x77b7315dddf6]\n" +" Binary file \"/usr/lib/libffi.so.8\", at +0x7976 [0x77b73158f976]\n" +" Binary file \"/usr/lib/libffi.so.8\", at +0x413c [0x77b73158c13c]\n" +" Binary file \"/usr/lib/libffi.so.8\", at ffi_call+0x12e [0x77b73158ef0e]\n" +" Binary file \"/opt/python/build/lib.linux-x86_64-3.14/_ctypes.cpython-314d-" +"x86_64-linux-gnu.so\", at +0x15a33 [0x77b7315e6a33]\n" +" Binary file \"/opt/python/build/lib.linux-x86_64-3.14/_ctypes.cpython-314d-" +"x86_64-linux-gnu.so\", at +0x164fa [0x77b7315e74fa]\n" +" Binary file \"/opt/python/build/lib.linux-x86_64-3.14/_ctypes.cpython-314d-" +"x86_64-linux-gnu.so\", at +0xc624 [0x77b7315dd624]\n" +" Binary file \"/opt/python/python\", at _PyObject_MakeTpCall+0xce " +"[0x5b27f7b73883]\n" +" Binary file \"/opt/python/python\", at +0x11bab6 [0x5b27f7b73ab6]\n" +" Binary file \"/opt/python/python\", at PyObject_Vectorcall+0x23 " +"[0x5b27f7b73b04]\n" +" Binary file \"/opt/python/python\", at _PyEval_EvalFrameDefault+0x490c " +"[0x5b27f7cbb302]\n" +" Binary file \"/opt/python/python\", at +0x2818e6 [0x5b27f7cd98e6]\n" +" Binary file \"/opt/python/python\", at +0x281aab [0x5b27f7cd9aab]\n" +" Binary file \"/opt/python/python\", at PyEval_EvalCode+0xc5 " +"[0x5b27f7cd9ba3]\n" +" Binary file \"/opt/python/python\", at +0x255957 [0x5b27f7cad957]\n" +" Binary file \"/opt/python/python\", at +0x255ab4 [0x5b27f7cadab4]\n" +" Binary file \"/opt/python/python\", at _PyEval_EvalFrameDefault+0x6c3e " +"[0x5b27f7cbd634]\n" +" Binary file \"/opt/python/python\", at +0x2818e6 [0x5b27f7cd98e6]\n" +" Binary file \"/opt/python/python\", at +0x281aab [0x5b27f7cd9aab]\n" +" Binary file \"/opt/python/python\", at +0x11b6e1 [0x5b27f7b736e1]\n" +" Binary file \"/opt/python/python\", at +0x11d348 [0x5b27f7b75348]\n" +" Binary file \"/opt/python/python\", at +0x11d626 [0x5b27f7b75626]\n" +" Binary file \"/opt/python/python\", at PyObject_Call+0x20 " +"[0x5b27f7b7565e]\n" +" Binary file \"/opt/python/python\", at +0x32a67a [0x5b27f7d8267a]\n" +" Binary file \"/opt/python/python\", at +0x32a7f8 [0x5b27f7d827f8]\n" +" Binary file \"/opt/python/python\", at +0x32ac1b [0x5b27f7d82c1b]\n" +" Binary file \"/opt/python/python\", at Py_RunMain+0x31 [0x5b27f7d82ebe]\n" +" \n" "Segmentation fault" msgstr "" diff --git a/library/fcntl.po b/library/fcntl.po index 284cf374..451d27fa 100644 --- a/library/fcntl.po +++ b/library/fcntl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/filecmp.po b/library/filecmp.po index cbc86ca1..7b18230b 100644 --- a/library/filecmp.po +++ b/library/filecmp.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/fileformats.po b/library/fileformats.po index 11bb7945..bd1180d4 100644 --- a/library/fileformats.po +++ b/library/fileformats.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/fileinput.po b/library/fileinput.po index 2c868e6f..3192f2ba 100644 --- a/library/fileinput.po +++ b/library/fileinput.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/filesys.po b/library/filesys.po index c49d9bd7..9dfd5605 100644 --- a/library/filesys.po +++ b/library/filesys.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/fnmatch.po b/library/fnmatch.po index 609c3b77..4b7e7bc9 100644 --- a/library/fnmatch.po +++ b/library/fnmatch.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -99,7 +99,8 @@ msgstr "" msgid "" "Finally, note that :func:`functools.lru_cache` with a *maxsize* of 32768 is " "used to cache the (typed) compiled regex patterns in the following " -"functions: :func:`fnmatch`, :func:`fnmatchcase`, :func:`.filter`." +"functions: :func:`fnmatch`, :func:`fnmatchcase`, :func:`.filter`, :func:`." +"filterfalse`." msgstr "" #: library/fnmatch.rst:61 diff --git a/library/fractions.po b/library/fractions.po index 9f1aa1b0..13011e23 100644 --- a/library/fractions.po +++ b/library/fractions.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -32,16 +32,16 @@ msgstr "" #: library/fractions.rst:17 msgid "" -"A Fraction instance can be constructed from a pair of integers, from another " -"rational number, or from a string." +"A Fraction instance can be constructed from a pair of rational numbers, from " +"a single number, or from a string." msgstr "" #: 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 ``0``, it raises " -"a :exc:`ZeroDivisionError`." +"with a value equal to ``numerator/denominator``. If *denominator* is zero, " +"it raises a :exc:`ZeroDivisionError`." msgstr "" #: library/fractions.rst:31 @@ -170,45 +170,45 @@ msgid "Numerator of the Fraction in lowest term." msgstr "" #: library/fractions.rst:128 -msgid "Denominator of the Fraction in lowest term." +msgid "Denominator of the Fraction in lowest terms. Guaranteed to be positive." msgstr "" -#: library/fractions.rst:133 +#: library/fractions.rst:134 msgid "" "Return a tuple of two integers, whose ratio is equal to the original " "Fraction. The ratio is in lowest terms and has a positive denominator." msgstr "" -#: library/fractions.rst:141 +#: library/fractions.rst:142 msgid "Return ``True`` if the Fraction is an integer." msgstr "" -#: library/fractions.rst:147 +#: library/fractions.rst:148 msgid "" "Alternative constructor which only accepts instances of :class:`float` or :" "class:`numbers.Integral`. Beware that ``Fraction.from_float(0.3)`` is not " "the same value as ``Fraction(3, 10)``." msgstr "" -#: library/fractions.rst:153 +#: library/fractions.rst:154 msgid "" "From Python 3.2 onwards, you can also construct a :class:`Fraction` instance " "directly from a :class:`float`." msgstr "" -#: library/fractions.rst:159 +#: library/fractions.rst:160 msgid "" "Alternative constructor which only accepts instances of :class:`decimal." "Decimal` or :class:`numbers.Integral`." msgstr "" -#: library/fractions.rst:164 +#: library/fractions.rst:165 msgid "" "From Python 3.2 onwards, you can also construct a :class:`Fraction` instance " "directly from a :class:`decimal.Decimal` instance." msgstr "" -#: library/fractions.rst:171 +#: library/fractions.rst:172 msgid "" "Alternative constructor which only accepts instances of :class:`numbers." "Integral`, :class:`numbers.Rational`, :class:`float` or :class:`decimal." @@ -216,30 +216,30 @@ msgid "" "strings." msgstr "" -#: library/fractions.rst:181 +#: library/fractions.rst:182 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 "" -#: library/fractions.rst:189 +#: library/fractions.rst:190 msgid "or for recovering a rational number that's represented as a float:" msgstr "" -#: library/fractions.rst:202 +#: library/fractions.rst:203 msgid "" "Returns the greatest :class:`int` ``<= self``. This method can also be " "accessed through the :func:`math.floor` function:" msgstr "" -#: library/fractions.rst:212 +#: library/fractions.rst:213 msgid "" "Returns the least :class:`int` ``>= self``. This method can also be " "accessed through the :func:`math.ceil` function." msgstr "" -#: library/fractions.rst:219 +#: library/fractions.rst:220 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 " @@ -248,14 +248,14 @@ msgid "" "func:`round` function." msgstr "" -#: library/fractions.rst:227 +#: library/fractions.rst:228 msgid "" "Provides support for formatting of :class:`Fraction` instances via the :meth:" "`str.format` method, the :func:`format` built-in function, or :ref:" "`Formatted string literals `." msgstr "" -#: library/fractions.rst:231 +#: library/fractions.rst:232 msgid "" "If the ``format_spec`` format specification string does not end with one of " "the presentation types ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, ``'G'`` " @@ -267,7 +267,7 @@ msgid "" "exact integer. The zero-fill flag ``'0'`` is not supported." msgstr "" -#: library/fractions.rst:241 +#: library/fractions.rst:242 msgid "" "If the ``format_spec`` format specification string ends with one of the " "presentation types ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, ``'G'`` or " @@ -275,11 +275,11 @@ msgid "" "type in the :ref:`formatspec` section." msgstr "" -#: library/fractions.rst:246 +#: library/fractions.rst:247 msgid "Here are some examples::" msgstr "" -#: library/fractions.rst:248 +#: library/fractions.rst:249 msgid "" ">>> from fractions import Fraction\n" ">>> format(Fraction(103993, 33102), '_')\n" @@ -301,11 +301,11 @@ msgid "" "'34.67% price increase'" msgstr "" -#: library/fractions.rst:270 +#: library/fractions.rst:271 msgid "Module :mod:`numbers`" msgstr "" -#: library/fractions.rst:271 +#: library/fractions.rst:272 msgid "The abstract base classes making up the numeric tower." msgstr "" diff --git a/library/frameworks.po b/library/frameworks.po index b3ee476c..710d2507 100644 --- a/library/frameworks.po +++ b/library/frameworks.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,17 +17,24 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: library/frameworks.rst:5 -msgid "Program Frameworks" +#: library/frameworks.rst:7 +msgid "Program frameworks" msgstr "" -#: library/frameworks.rst:7 +#: library/frameworks.rst:9 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." +"This chapter is no longer maintained, and the modules it contained have been " +"moved to their respective topical documentation." msgstr "" #: library/frameworks.rst:11 -msgid "The full list of modules described in this chapter is:" +msgid ":mod:`cmd` — :doc:`Command Line Interface Libraries <./cmdlinelibs>`" +msgstr "" + +#: library/frameworks.rst:12 +msgid ":mod:`shlex` — :doc:`Unix Specific Services <./unix>`" +msgstr "" + +#: library/frameworks.rst:13 +msgid ":mod:`turtle` — :doc:`Graphical User Interfaces with Tk <./tk>`" msgstr "" diff --git a/library/ftplib.po b/library/ftplib.po index 9bd86b3c..5b50326f 100644 --- a/library/ftplib.po +++ b/library/ftplib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/functional.po b/library/functional.po index e86afd43..83c68ee4 100644 --- a/library/functional.po +++ b/library/functional.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/functions.po b/library/functions.po index bc501ee4..e7d4c931 100644 --- a/library/functions.po +++ b/library/functions.po @@ -8,15 +8,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2024-05-10 22:23+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-12-01 00:09+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.5\n" +"X-Generator: Poedit 3.6\n" #: library/functions.rst:11 msgid "Built-in Functions" @@ -455,8 +455,8 @@ msgstr "" msgid "" "This is the async variant of the :func:`next` builtin, and behaves similarly." msgstr "" -"Αυτό είναι μια ασύγχρονη παραλλαγή της ενσωματωμένης συνάρτησης :func:" -"`next`, και συμπεριφέρεται παρόμοια." +"Αυτό είναι μια ασύγχρονη παραλλαγή της ενσωματωμένης " +"συνάρτησης :func:`next`, και συμπεριφέρεται παρόμοια." #: library/functions.rst:95 msgid "" @@ -468,8 +468,8 @@ msgstr "" "Αυτό καλεί την μέθοδο :meth:`~object.__anext__` του *async_iterator*, " "επιστρέφοντας ένα :term:`awaitable`. Αναμένοντας αυτό, επιστρέφει την " "επόμενη τιμή του iterator. Αν δίνεται το *default* (προεπιλογή), αυτό " -"επιστρέφεται εάν ο iterator έχει εξαντληθεί, αλλιώς γίνεται raise ένα :exc:" -"`StopAsyncIteration`." +"επιστρέφεται εάν ο iterator έχει εξαντληθεί, αλλιώς γίνεται raise " +"ένα :exc:`StopAsyncIteration`." #: library/functions.rst:104 msgid "" @@ -496,9 +496,9 @@ msgstr "" #: library/functions.rst:116 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." +"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 "" "Όπως η :func:`repr`, επιστρέφει μια συμβολοσειρά που περιέχει μια εκτυπώσιμη " "απεικόνιση ενός αντικειμένου, αλλά αναιρεί τους μη-ASCII χαρακτήρες στη " @@ -509,14 +509,15 @@ msgstr "" #: library/functions.rst:124 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:`~object.__index__` method that returns an " -"integer. Some examples:" +"result is a valid Python expression. If *integer* is not a " +"Python :class:`int` object, it has to define an :meth:`~object.__index__` " +"method that returns an integer. Some examples:" msgstr "" "Μετατροπή ενός ακέραιου αριθμού σε μια δυαδική συμβολοσειρά με πρόθεμα " -"\"0b\". Το αποτέλεσμα είναι μια έγκυρη έκφραση Python. Εάν το *x* δεν είναι " -"αντικείμενο της Python :class:`int`, πρέπει να οριστεί μια μέθοδος :meth:" -"`~object.__index__` που επιστρέφει έναν ακέραιο αριθμό. Κάποια παραδείγματα:" +"\"0b\". Το αποτέλεσμα είναι μια έγκυρη έκφραση Python. Εάν το *integer* δεν " +"είναι αντικείμενο της Python :class:`int`, πρέπει να οριστεί μια " +"μέθοδος :meth:`~object.__index__` που επιστρέφει έναν ακέραιο αριθμό. Κάποια " +"παραδείγματα:" #: library/functions.rst:134 msgid "" @@ -526,7 +527,7 @@ msgstr "" "Εάν το πρόθεμα \"0b\" είναι επιθυμητό ή όχι, μπορείτε να χρησιμοποιήσετε " "έναν από τους παρακάτω τρόπους." -#: library/functions.rst:950 library/functions.rst:1335 +#: library/functions.rst:948 library/functions.rst:1332 msgid "See also :func:`format` for more information." msgstr "Δείτε επίσης τη :func:`format` για περισσότερες πληροφορίες." @@ -535,19 +536,19 @@ msgid "" "Return a Boolean value, i.e. one of ``True`` or ``False``. The argument is " "converted using the standard :ref:`truth testing procedure `. If the " "argument 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:`typebool`)." +"``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:`typebool`)." msgstr "" "Επιστρέφετε μια δυαδική τιμή, π.χ. μία από τις τιμές ``True`` ή ``False``. " "Το όρισμα μετατρέπεται χρησιμοποιώντας την τυπική :ref:`truth testing " "procedure `. Εάν το όρισμα είναι ψευδές ή παραλειφθεί, αυτό " -"επιστρέφει ``False``∙ διαφορετικά, επιστρέφει ``True``. Η κλάση :class:" -"`bool` είναι μια υποκλάση της :class:`int` (βλ. :ref:`typesnumeric`). Δεν " -"μπορεί να γίνει περαιτέρω υποκλάση. Οι μόνες περιπτώσεις είναι ``False`` " -"και ``True`` (βλ. :ref:`typebool`)." +"επιστρέφει ``False``∙ διαφορετικά, επιστρέφει ``True``. Η " +"κλάση :class:`bool` είναι μια υποκλάση της :class:`int` " +"(βλ. :ref:`typesnumeric`). Δεν μπορεί να γίνει περαιτέρω υποκλάση. Οι μόνες " +"περιπτώσεις είναι ``False`` και ``True`` (βλ. :ref:`typebool`)." -#: library/functions.rst:815 +#: library/functions.rst:813 msgid "The parameter is now positional-only." msgstr "Η παράμετρος είναι πλέον μόνο παράμετρος θέσης." @@ -565,8 +566,8 @@ msgid "" msgstr "" "Αυτή η συνάρτηση μας μεταφέρει στο πρόγραμμα εντοπισμού σφαλμάτων στην " "τοποθεσία της κλήσης. Συγκεκριμένα, καλεί το :func:`sys.breakpointhook`, " -"περνώντας απευθείας τα ``args`` και ``kws``. Από προεπιλογή, το ``sys." -"breakpointhook()`` καλεί την :func:`pdb.set_trace` χωρίς να περιμένει " +"περνώντας απευθείας τα ``args`` και ``kws``. Από προεπιλογή, το " +"``sys.breakpointhook()`` καλεί την :func:`pdb.set_trace` χωρίς να περιμένει " "ορίσματα. Σε αυτήν την περίπτωση, είναι καθαρά μια βολική συνάρτηση, " "επομένως δεν χρειάζεται να εισάγετε ρητά το :mod:`pdb` ή να πληκτρολογήσετε " "τόσο πολύ κώδικα. Ωστόσο η :func:`sys.breakpointhook` μπορεί να ρυθμιστεί " @@ -577,13 +578,13 @@ msgstr "" #: library/functions.rst:173 msgid "" -"By default, the behavior of :func:`breakpoint` can be changed with the :" -"envvar:`PYTHONBREAKPOINT` environment variable. See :func:`sys." -"breakpointhook` for usage details." +"By default, the behavior of :func:`breakpoint` can be changed with " +"the :envvar:`PYTHONBREAKPOINT` environment variable. " +"See :func:`sys.breakpointhook` for usage details." msgstr "" "Από προεπιλογή, η συμπεριφορά της :func:`breakpoint` μπορεί να αλλάξει με " -"την μεταβλητή περιβάλλοντος :envvar:`PYTHONBREAKPOINT`. Βλ. την :func:`sys." -"breakpointhook` για λεπτομέρειες χρήσης." +"την μεταβλητή περιβάλλοντος :envvar:`PYTHONBREAKPOINT`. Βλ. " +"την :func:`sys.breakpointhook` για λεπτομέρειες χρήσης." #: library/functions.rst:177 msgid "" @@ -601,7 +602,7 @@ msgstr "" "Εγείρει ένα :ref:`auditing event ` ``builtins.breakpoint`` με " "όρισμα ``breakpointhook``." -#: library/functions.rst:190 +#: library/functions.rst:189 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 " @@ -614,7 +615,7 @@ msgstr "" "περιγράφονται στο :ref:`typesseq-mutable`, καθώς και τις περισσότερες " "μεθόδους που έχει ο τύπος :class:`bytes`, δείτε :ref:`bytes-methods`." -#: library/functions.rst:195 +#: library/functions.rst:194 msgid "" "The optional *source* parameter can be used to initialize the array in a few " "different ways:" @@ -622,7 +623,7 @@ msgstr "" "Η προαιρετική παράμετρος *source* μπορεί να χρησιμοποιηθεί για την " "αρχικοποίηση του πίνακα με μερικούς διαφορετικούς τρόπους:" -#: library/functions.rst:198 +#: library/functions.rst:197 msgid "" "If it is a *string*, you must also give the *encoding* (and optionally, " "*errors*) parameters; :func:`bytearray` then converts the string to bytes " @@ -632,7 +633,7 @@ msgstr "" "προαιρετικά, *errors*)∙ η :func:`bytearray` στη συνέχεια μετατρέπει τη " "συμβολοσειρά σε byte χρησιμοποιώντας :meth:`str.encode`." -#: library/functions.rst:202 +#: library/functions.rst:201 msgid "" "If it is an *integer*, the array will have that size and will be initialized " "with null bytes." @@ -640,7 +641,7 @@ msgstr "" "Εάν είναι *integer*, ο πίνακας θα έχει αυτό το μέγεθος και θα αρχικοποιηθεί " "με null bytes." -#: library/functions.rst:205 +#: library/functions.rst:204 msgid "" "If it is an object conforming to the :ref:`buffer interface " "`, a read-only buffer of the object will be used to " @@ -650,7 +651,7 @@ msgstr "" "`, θα χρησιμοποιηθεί μια προσωρινή μνήμη μόνο για ανάγνωση " "του αντικείμενου για την προετοιμασία του πίνακα με τα bytes." -#: library/functions.rst:208 +#: library/functions.rst:207 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." @@ -658,19 +659,19 @@ msgstr "" "Εάν είναι *iterable*, πρέπει να είναι ένας iterable ακεραίων στο εύρος ``0 " "<= x < 256``, οι οποίοι χρησιμοποιούνται ως αρχικά περιεχόμενα του πίνακα." -#: library/functions.rst:211 +#: library/functions.rst:210 msgid "Without an argument, an array of size 0 is created." msgstr "Χωρίς όρισμα δημιουργείται ένας πίνακας μεγέθους 0." -#: library/functions.rst:213 +#: library/functions.rst:212 msgid "See also :ref:`binaryseq` and :ref:`typebytearray`." msgstr "Βλ. επίσης :ref:`binaryseq` και :ref:`typebytearray`." -#: library/functions.rst:222 +#: library/functions.rst:220 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 " +"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 "" "Επιστρέφεται ένα νέο αντικείμενο \"bytes\", που είναι μια αμετάβλητη " @@ -678,30 +679,31 @@ msgstr "" "αμετάβλητη έκδοση του :class:`bytearray` -- έχει τις ίδιες μεθόδους χωρίς " "μετάλλαξη και την ίδια συμπεριφορά ευρετηριοποίησης και τεμαχισμού." -#: library/functions.rst:227 +#: library/functions.rst:225 msgid "" "Accordingly, constructor arguments are interpreted as for :func:`bytearray`." msgstr "" "Συνεπώς, τα ορίσματα του constructor ερμηνεύονται ως :func:`bytearray`." -#: library/functions.rst:229 +#: library/functions.rst:227 msgid "Bytes objects can also be created with literals, see :ref:`strings`." msgstr "" -"Τα αντικείμενα bytes μπορούν επίσης να δημιουργηθούν με literals, βλέπε :ref:" -"`strings`." +"Τα αντικείμενα bytes μπορούν επίσης να δημιουργηθούν με literals, " +"βλέπε :ref:`strings`." -#: library/functions.rst:231 +#: library/functions.rst:229 msgid "See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`." msgstr "" "Βλέπε επίσης :ref:`binaryseq`, :ref:`typebytes`, και :ref:`bytes-methods`." -#: library/functions.rst:236 +#: library/functions.rst:234 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:`~object.__call__` method." +"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:`~object.__call__` method." msgstr "" "Επιστρέφει :const:`True` εάν το όρισμα *object* εμφανίζεται ως callable, " "και :const:`False` εάν όχι. Εάν αυτό επιστρέψει ``True``, είναι ακόμα " @@ -710,7 +712,7 @@ msgstr "" "μιας κλάσης επιστρέφει ένα νέο instance). Τα instances μπορούν να κληθούν αν " "η κλάση τους έχει τη μέθοδο :meth:`~object.__call__`." -#: library/functions.rst:242 +#: library/functions.rst:240 msgid "" "This function was first removed in Python 3.0 and then brought back in " "Python 3.2." @@ -718,31 +720,30 @@ msgstr "" "Αυτή η συνάρτηση πρώτα αφαιρέθηκε στην Python 3.0 και στη συνέχεια επανήλθε " "στην Python 3.2." -#: library/functions.rst:249 +#: library/functions.rst:247 msgid "" -"Return the string representing a character whose Unicode code point is the " -"integer *i*. For example, ``chr(97)`` returns the string ``'a'``, while " +"Return the string representing a character with the specified Unicode code " +"point. For example, ``chr(97)`` returns the string ``'a'``, while " "``chr(8364)`` returns the string ``'€'``. This is the inverse of :func:`ord`." msgstr "" -"Επιστρέφει τη συμβολοσειρά που αντιπροσωπεύει έναν χαρακτήρα του οποίου ο " -"κωδικός σημείου Unicode είναι ο ακέραιος *i*. Για παράδειγμα, ``chr(97)`` " -"επιστρέφει τη συμβολοσειρά ``'a'``, ενώ το ``chr(8364)`` επιστρέφει τη " -"συμβολοσειρά ``'€'``. Αυτό είναι το αντίστροφο του :func:`ord`." +"Επιστρέφει τη συμβολοσειρά που αναπαριστά έναν χαρακτήρα με το συγκεκριμένο " +"Unicode code point. Για παράδειγμα, το ``chr(97)`` επιστρέφει τη " +"συμβολοσειρά ``'a'``, ενώ το ``chr(8364)`` επιστρέφει τη συμβολοσειρά " +"``'€'``. Αυτό είναι το αντίστροφο της :func:`ord`." -#: library/functions.rst:253 +#: library/functions.rst:251 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." +"base 16). :exc:`ValueError` will be raised if it is outside that range." msgstr "" "Το έγκυρο εύρος για το όρισμα είναι από 0 έως 1,114,111 (0x10FFFF στη βάση " -"16). Το :exc:`ValueError` θα γίνει raise εάν το *i* είναι εκτός αυτού του " -"εύρους." +"16). Το :exc:`ValueError` θα γίνει raise εάν είναι εκτός αυτού του εύρους." -#: library/functions.rst:259 +#: library/functions.rst:257 msgid "Transform a method into a class method." msgstr "Μετατροπή μιας μεθόδου σε μέθοδο κλάσης." -#: library/functions.rst:261 +#: library/functions.rst:259 msgid "" "A class method receives the class as an implicit first argument, just like " "an instance method receives the instance. To declare a class method, use " @@ -752,7 +753,7 @@ msgstr "" "instance μέθοδος λαμβάνει το instance. Για να δηλώσετε μια μέθοδο κλάσης, " "χρησιμοποιήστε αυτό το ιδίωμα::" -#: library/functions.rst:265 +#: library/functions.rst:263 msgid "" "class C:\n" " @classmethod\n" @@ -762,15 +763,15 @@ msgstr "" " @classmethod\n" " def f(cls, arg1, arg2): ..." -#: library/functions.rst:269 +#: library/functions.rst:267 msgid "" -"The ``@classmethod`` form is a function :term:`decorator` -- see :ref:" -"`function` for details." +"The ``@classmethod`` form is a function :term:`decorator` -- " +"see :ref:`function` for details." msgstr "" -"Η φόρμα ``@classmethod`` είναι μια συνάρτηση :term:`decorator` -- βλέπε :ref:" -"`function` για λεπτομέρειες." +"Η φόρμα ``@classmethod`` είναι μια συνάρτηση :term:`decorator` -- " +"βλέπε :ref:`function` για λεπτομέρειες." -#: library/functions.rst:272 +#: library/functions.rst:270 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 " @@ -782,7 +783,7 @@ msgstr "" "της. Εάν μια μέθοδος κλάσης καλείται για μια παραγόμενη κλάση, το " "αντικείμενο παραγόμενης κλάσης μεταβιβάζεται ως το υπονοούμενο πρώτο όρισμα." -#: library/functions.rst:277 +#: library/functions.rst:275 msgid "" "Class methods are different than C++ or Java static methods. If you want " "those, see :func:`staticmethod` in this section. For more information on " @@ -792,27 +793,27 @@ msgstr "" "ανατρέξτε στο :func:`staticmethod` σε αυτήν την ενότητα. Για περισσότερες " "πληροφορίες σχετικά με τις μεθόδους κλάσης, ανατρέξτε στο :ref:`types`." -#: library/functions.rst:281 +#: library/functions.rst:279 msgid "" -"Class methods can now wrap other :term:`descriptors ` such as :" -"func:`property`." +"Class methods can now wrap other :term:`descriptors ` such " +"as :func:`property`." msgstr "" "Οι μέθοδοι κλάσης μπορούν πλέον να αναδιπλώσουν άλλους :term:`descriptors " "` όπως η :func:`property`." -#: library/functions.rst:285 +#: library/functions.rst:283 msgid "" -"Class methods now inherit the method attributes (:attr:`~function." -"__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :" -"attr:`~function.__doc__` and :attr:`~function.__annotations__`) and have a " -"new ``__wrapped__`` attribute." +"Class methods now inherit the method attributes " +"(:attr:`~function.__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :attr:`~function.__doc__` " +"and :attr:`~function.__annotations__`) and have a new ``__wrapped__`` " +"attribute." msgstr "" -"Οι μέθοδοι κλάσης κληρονομούν πλέον τα χαρακτηριστικά της μεθόδους (:attr:" -"`~function.__module__`, :attr:`~function.__name__`, :attr:`~function." -"__qualname__`, :attr:`~function.__doc__` and :attr:`~function." -"__annotations__`) και έχουν ένα νέο χαρακτηριστικό ``__wrapped__``." +"Οι μέθοδοι κλάσης κληρονομούν πλέον τα χαρακτηριστικά της μεθόδους " +"(:attr:`~function.__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :attr:`~function.__doc__` " +"and :attr:`~function.__annotations__`) και έχουν ένα νέο χαρακτηριστικό " +"``__wrapped__``." -#: library/functions.rst:292 +#: library/functions.rst:290 msgid "" "Class methods can no longer wrap other :term:`descriptors ` such " "as :func:`property`." @@ -820,7 +821,7 @@ msgstr "" "Οι μέθοδοι κλάσης δεν μπορούν πλέον να κάνουν wrap άλλους :term:`descriptors " "` όπως :func:`property`." -#: library/functions.rst:299 +#: library/functions.rst:297 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 " @@ -830,10 +831,11 @@ msgstr "" "Μεταγλωττίστε το *source* σε έναν κώδικα ή αντικείμενο AST. Τα αντικείμενα " "κώδικα μπορούν να εκτελεστούν από :func:`exec` ή :func:`eval`. Η *source* " "μπορεί να είναι είτε μια κανονική συμβολοσειρά, μια συμβολοσειρά byte ή μια " -"συμβολοσειρά AST αντικείμενου. Ανατρέξτε στην τεκμηρίωση του module :mod:" -"`ast` για πληροφορίες σχετικά με τον τρόπο εργασίας με αντικείμενα AST." +"συμβολοσειρά AST αντικείμενου. Ανατρέξτε στην τεκμηρίωση του " +"module :mod:`ast` για πληροφορίες σχετικά με τον τρόπο εργασίας με " +"αντικείμενα AST." -#: library/functions.rst:304 +#: library/functions.rst:302 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 (``''`` " @@ -843,7 +845,7 @@ msgstr "" "κώδικας∙ να περάσει κάποια αναγνωρίσιμη τιμή εάν δεν διαβαστεί από ένα " "αρχείο (χρησιμοποιείται συνήθως ``''``)." -#: library/functions.rst:308 +#: library/functions.rst:306 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 " @@ -858,49 +860,52 @@ msgstr "" "θα εκτυπωθούν δηλώσεις έκφρασης που αξιολογούνται σε κάτι διαφορετικό από " "``None``)." -#: library/functions.rst:314 -msgid "" -"The optional arguments *flags* and *dont_inherit* control which :ref:" -"`compiler options ` should be activated and which :ref:" -"`future features ` should be allowed. If neither is present (or both " -"are zero) the code is compiled with the same flags that affect the code that " -"is calling :func:`compile`. If the *flags* argument is given and " -"*dont_inherit* is not (or is zero) then the compiler options and 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 flags (future features and compiler options) " -"in the surrounding code are ignored." -msgstr "" -"Τα προαιρετικά ορίσματα *flags* και *dont_inherit* ελέγχουν ποιες :ref:" -"`compiler options ` θα πρέπει να ενεργοποιηθούν και " -"ποιες :ref:`future features ` θα πρέπει να επιτρέπονται. Εάν δεν " -"υπάρχει καμία (ή και οι δύο είναι μηδέν) ο κώδικας μεταγλωττίζεται με τα " -"ίδια flags που επηρεάζουν τον κώδικα που καλεί :func:`compile`. Εάν το " -"όρισμα *flags* δίνεται και το *dont_inherit* δεν είναι (ή είναι μηδέν), τότε " -"οι επιλογές του μεταγλωττιστή και οι μελλοντικές δηλώσεις που καθορίζονται " -"από το όρισμα *flags* χρησιμοποιούνται ανεξάρτητα από αυτές που θα " -"χρησιμοποιούνταν ούτως ή άλλως. Εάν το *dont_inherit* είναι ένα μη μηδενικός " -"ακέραιος, τότε το όρισμα *flags* είναι αυτό -- οι σημαίες (μελλοντικές " -"δυνατότητες και επιλογές μεταγλωττιστή) στον περιβάλλοντα κώδικα αγνοούνται." - -#: library/functions.rst:325 +#: library/functions.rst:312 +msgid "" +"The optional arguments *flags* and *dont_inherit* control " +"which :ref:`compiler options ` should be activated and " +"which :ref:`future features ` should be allowed. If neither is " +"present (or both are zero) the code is compiled with the same flags that " +"affect the code that is calling :func:`compile`. If the *flags* argument is " +"given and *dont_inherit* is not (or is zero) then the compiler options and " +"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 flags (future features and compiler " +"options) in the surrounding code are ignored." +msgstr "" +"Τα προαιρετικά ορίσματα *flags* και *dont_inherit* ελέγχουν " +"ποιες :ref:`compiler options ` θα πρέπει να " +"ενεργοποιηθούν και ποιες :ref:`future features ` θα πρέπει να " +"επιτρέπονται. Εάν δεν υπάρχει καμία (ή και οι δύο είναι μηδέν) ο κώδικας " +"μεταγλωττίζεται με τα ίδια flags που επηρεάζουν τον κώδικα που " +"καλεί :func:`compile`. Εάν το όρισμα *flags* δίνεται και το *dont_inherit* " +"δεν είναι (ή είναι μηδέν), τότε οι επιλογές του μεταγλωττιστή και οι " +"μελλοντικές δηλώσεις που καθορίζονται από το όρισμα *flags* χρησιμοποιούνται " +"ανεξάρτητα από αυτές που θα χρησιμοποιούνταν ούτως ή άλλως. Εάν το " +"*dont_inherit* είναι ένα μη μηδενικός ακέραιος, τότε το όρισμα *flags* είναι " +"αυτό -- οι σημαίες (μελλοντικές δυνατότητες και επιλογές μεταγλωττιστή) στον " +"περιβάλλοντα κώδικα αγνοούνται." + +#: library/functions.rst:323 msgid "" "Compiler options and future statements are specified by bits which can be " "bitwise ORed together to specify multiple options. The bitfield required to " -"specify a given future feature can be found as the :attr:`~__future__." -"_Feature.compiler_flag` attribute on the :class:`~__future__._Feature` " -"instance in the :mod:`__future__` module. :ref:`Compiler flags ` can be found in :mod:`ast` module, with ``PyCF_`` prefix." +"specify a given future feature can be found as " +"the :attr:`~__future__._Feature.compiler_flag` attribute on " +"the :class:`~__future__._Feature` instance in the :mod:`__future__` " +"module. :ref:`Compiler flags ` can be found " +"in :mod:`ast` module, with ``PyCF_`` prefix." msgstr "" "Οι επιλογές του μεταγλωττιστή και οι μελλοντικές εντολές καθορίζονται από " "bits που μπορούν να συνδυαστούν κατά bit ORed μαζί για να καθορίσουν πολλές " "επιλογές. Το πεδίο bit που απαιτείται για το καθορισμό ενός δεδομένου " -"μελλοντικού χαρακτηριστικού μπορεί να βρεθεί ως το χαρακτηριστικό :attr:" -"`~__future__.Το _Feature.compiler_flag` στο :class:`~__future__._Feature` " -"instance του module :mod:`__future__`. :ref:`Compiler flags ` μπορούν να βρεθούν στο module :mod:`ast`, με το πρόθεμα ``PyCF_``." +"μελλοντικού χαρακτηριστικού μπορεί να βρεθεί ως το " +"χαρακτηριστικό :attr:`~__future__.Το _Feature.compiler_flag` " +"στο :class:`~__future__._Feature` instance του " +"module :mod:`__future__`. :ref:`Compiler flags ` μπορούν " +"να βρεθούν στο module :mod:`ast`, με το πρόθεμα ``PyCF_``." -#: library/functions.rst:333 +#: library/functions.rst:331 msgid "" "The argument *optimize* specifies the optimization level of the compiler; " "the default value of ``-1`` selects the optimization level of the " @@ -915,7 +920,7 @@ msgstr "" "ισχυρισμοί καταργήθηκαν, το ``__debug__`` είναι ψευδές) ή ``2`` (οι " "συμβολοσειρές εγγραφών καταργήθηκαν επίσης)." -#: library/functions.rst:339 +#: library/functions.rst:337 msgid "" "This function raises :exc:`SyntaxError` if the compiled source is invalid, " "and :exc:`ValueError` if the source contains null bytes." @@ -924,15 +929,15 @@ msgstr "" "κώδικας είναι άκυρος, και το :exc:`ValueError` εάν ο κώδικας περιλαμβάνει " "null bytes." -#: library/functions.rst:342 +#: library/functions.rst:340 msgid "" -"If you want to parse Python code into its AST representation, see :func:`ast." -"parse`." +"If you want to parse Python code into its AST representation, " +"see :func:`ast.parse`." msgstr "" "Εάν θέλετε να αναλύσετε τον κώδικα Python στην αναπαράσταση του AST, δείτε " "το :func:`ast.parse`." -#: library/functions.rst:347 +#: library/functions.rst:345 msgid "" "Raises an :ref:`auditing event ` ``compile`` with arguments " "``source`` and ``filename``. This event may also be raised by implicit " @@ -942,20 +947,20 @@ msgstr "" "``source`` και ``filename``. Αυτό το συμβάν μπορεί επίσης να προκύψει από " "έμμεση μεταγλώττιση." -#: library/functions.rst:353 +#: library/functions.rst:351 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." +"to facilitate detection of incomplete and complete statements in " +"the :mod:`code` module." msgstr "" "Κατά τη μεταγλώττιση μιας συμβολοσειράς με κωδικό πολλαπλών γραμμών στη " "λειτουργία ``'single'`` ή ``'eval'``, η είσοδος πρέπει να τερματίζεται με " "τουλάχιστον έναν χαρακτήρα νέας γραμμής. Αυτό γίνεται για να διευκολυνθεί ο " -"εντοπισμός μη ολοκληρωμένων και ολοκληρωμένων δηλώσεων στο module :mod:" -"`code`." +"εντοπισμός μη ολοκληρωμένων και ολοκληρωμένων δηλώσεων στο " +"module :mod:`code`." -#: library/functions.rst:360 +#: library/functions.rst:358 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 " @@ -965,7 +970,7 @@ msgstr "" "σύνθετη συμβολοσειρά κατά τη μεταγλώττιση σε ένα αντικείμενο AST λόγω " "περιορισμών βάθους στοίβας στον μεταγλωττιστή AST της Python." -#: library/functions.rst:364 +#: library/functions.rst:362 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." @@ -974,7 +979,7 @@ msgstr "" "λειτουργία ``'exec'`` δεν χρειάζεται πλέον να τελειώνει σε νέα γραμμή. " "Προστέθηκε η παράμετρος *optimize*." -#: library/functions.rst:368 +#: library/functions.rst:366 msgid "" "Previously, :exc:`TypeError` was raised when null bytes were encountered in " "*source*." @@ -982,7 +987,7 @@ msgstr "" "Προηγουμένως, το :exc:`TypeError` έγινε raise όταν null bytes συναντήθηκαν " "στο *source*." -#: library/functions.rst:372 +#: library/functions.rst:370 msgid "" "``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable " "support for top-level ``await``, ``async for``, and ``async with``." @@ -991,7 +996,7 @@ msgstr "" "για να ενεργοποιηθεί η υποστήριξη για ``await``, ``async for``, και ``async " "with``." -#: library/functions.rst:381 +#: library/functions.rst:379 msgid "" "Convert a single string or number to a complex number, or create a complex " "number from real and imaginary parts." @@ -999,11 +1004,11 @@ msgstr "" "Μετατρέπει μια συμβολοσειρά ή έναν αριθμό σε έναν μιγαδικό αριθμό ή " "δημιουργεί έναν μιγαδικό αριθμός από πραγματικά και φανταστικά μέρη." -#: library/functions.rst:758 library/functions.rst:1006 +#: library/functions.rst:756 library/functions.rst:1004 msgid "Examples:" msgstr "Παραδείγματα:" -#: library/functions.rst:386 +#: library/functions.rst:384 msgid "" ">>> complex('+1.23')\n" "(1.23+0j)\n" @@ -1039,7 +1044,7 @@ msgstr "" ">>> complex(-1.23, 4.5)\n" "(-1.23+4.5j)" -#: library/functions.rst:405 +#: library/functions.rst:403 msgid "" "If the argument is a string, it must contain either a real part (in the same " "format as for :func:`float`) or an imaginary part (in the same format but " @@ -1049,9 +1054,9 @@ msgid "" "and ``')'``, which are ignored. The string must not contain whitespace " "between ``'+'``, ``'-'``, the ``'j'`` or ``'J'`` suffix, and the decimal " "number. For example, ``complex('1+2j')`` is fine, but ``complex('1 + 2j')`` " -"raises :exc:`ValueError`. More precisely, the input must conform to the :" -"token:`~float:complexvalue` production rule in the following grammar, after " -"parentheses and leading and trailing whitespace characters are removed:" +"raises :exc:`ValueError`. More precisely, the input must conform to " +"the :token:`~float:complexvalue` production rule in the following grammar, " +"after parentheses and leading and trailing whitespace characters are removed:" msgstr "" "Αν το όρισμα είναι συμβολοσειρά, πρέπει να περιέχει είτε ένα πραγματικό " "μέρος (στην ίδια μορφή όπως για το :func:`float`) είτε ένα φανταστικό μέρος " @@ -1067,23 +1072,23 @@ msgstr "" "ακόλουθη γραμματική, αφού αφαιρεθούν οι παρενθέσεις και οι χαρακτήρες του " "κενών διαστημάτων στο τέλος:" -#: library/functions.rst:424 +#: library/functions.rst:422 msgid "" "If the argument is a number, the constructor serves as a numeric conversion " "like :class:`int` and :class:`float`. For a general Python object ``x``, " -"``complex(x)`` delegates to ``x.__complex__()``. If :meth:`~object." -"__complex__` is not defined then it falls back to :meth:`~object.__float__`. " -"If :meth:`!__float__` is not defined then it falls back to :meth:`~object." -"__index__`." +"``complex(x)`` delegates to ``x.__complex__()``. " +"If :meth:`~object.__complex__` is not defined then it falls back " +"to :meth:`~object.__float__`. If :meth:`!__float__` is not defined then it " +"falls back to :meth:`~object.__index__`." msgstr "" "Εάν το όρισμα είναι αριθμός, ο κατασκευαστής χρησιμεύει ως αριθμητική " "μετατροπή όπως :class:`int` και :class:`float`. Για ένα γενικό αντικείμενο " -"Python ``x``, το ``complex(x)`` εκχωρεί στο ``x.__complex__()``. Εάν το :" -"meth:`~object.__complex__` δεν έχει οριστεί, τότε επιστρέφει στο :meth:" -"`~object.__float__`. Εάν το :meth:`!__float__` δεν έχει οριστεί τότε " -"επιστρέφει στο :meth:`~object.__index__`." +"Python ``x``, το ``complex(x)`` εκχωρεί στο ``x.__complex__()``. Εάν " +"το :meth:`~object.__complex__` δεν έχει οριστεί, τότε επιστρέφει " +"στο :meth:`~object.__float__`. Εάν το :meth:`!__float__` δεν έχει οριστεί " +"τότε επιστρέφει στο :meth:`~object.__index__`." -#: library/functions.rst:433 +#: library/functions.rst:431 msgid "" "If two arguments are provided or keyword arguments are used, each argument " "may be any numeric type (including complex). If both arguments are real " @@ -1098,11 +1103,12 @@ msgstr "" "των μιγαδικών). Εάν και τα δύο ορίσματα είναι πραγματικοί αριθμοί, " "επιστρέψτε έναν μιγαδικό αριθμό με το πραγματικό στοιχείο *real* και το " "φανταστικό στοιχείο *imag*. Εάν και τα δύο ορίσματα είναι μιγαδικοί αριθμοί, " -"επιστρέψτε έναν μιγαδικό αριθμό με το πραγματικό στοιχείο ``real.real-imag." -"imag`` και ``real.imag+imag.real``. Αν ένα από τα ορίσματα είναι πραγματικός " -"αριθμός, χρησιμοποιείται μόνο το πραγματικό στοιχείο στις παραπάνω εκφράσεις." +"επιστρέψτε έναν μιγαδικό αριθμό με το πραγματικό στοιχείο ``real.real-" +"imag.imag`` και ``real.imag+imag.real``. Αν ένα από τα ορίσματα είναι " +"πραγματικός αριθμός, χρησιμοποιείται μόνο το πραγματικό στοιχείο στις " +"παραπάνω εκφράσεις." -#: library/functions.rst:443 +#: library/functions.rst:441 msgid "" "See also :meth:`complex.from_number` which only accepts a single numeric " "argument." @@ -1110,28 +1116,28 @@ msgstr "" "Δείτε επίσης την :meth:`complex.from_number` που δέχεται μόνο ένα αριθμητικό " "όρισμα." -#: library/functions.rst:445 +#: library/functions.rst:443 msgid "If all arguments are omitted, returns ``0j``." -msgstr "Εάν παραληφθούν όλα τα ορίσματα, επιστρέφει ``0j``" +msgstr "Εάν παραληφθούν όλα τα ορίσματα, επιστρέφει ``0j``." -#: library/functions.rst:447 +#: library/functions.rst:445 msgid "The complex type is described in :ref:`typesnumeric`." msgstr "Ο μιγαδικός τύπος περιγράφεται στο :ref:`typesnumeric`." -#: library/functions.rst:812 library/functions.rst:1054 +#: library/functions.rst:810 library/functions.rst:1052 msgid "Grouping digits with underscores as in code literals is allowed." msgstr "" "Επιτρέπεται η ομαδοποίηση ψηφίων με κάτω παύλες όπως στα literals του κώδικα." -#: library/functions.rst:452 +#: library/functions.rst:450 msgid "" -"Falls back to :meth:`~object.__index__` if :meth:`~object.__complex__` and :" -"meth:`~object.__float__` are not defined." +"Falls back to :meth:`~object.__index__` if :meth:`~object.__complex__` " +"and :meth:`~object.__float__` are not defined." msgstr "" -"Επιστρέφει πίσω στη :meth:`~object.__index__` εάν η :meth:`~object." -"__complex__` και η :meth:`~object.__float__` δεν ορίζονται." +"Επιστρέφει πίσω στη :meth:`~object.__index__` εάν " +"η :meth:`~object.__complex__` και η :meth:`~object.__float__` δεν ορίζονται." -#: library/functions.rst:456 +#: library/functions.rst:454 msgid "" "Passing a complex number as the *real* or *imag* argument is now deprecated; " "it should only be passed as a single positional argument." @@ -1139,7 +1145,7 @@ msgstr "" "Η διαβίβαση ενός μιγαδικού αριθμού ως το *real* ή *imag* όρισμα έχει πλέον " "καταργηθεί∙ θα πρέπει να διαβιβάζεται μόνο ως ένα μοναδικό όρισμα θέσης." -#: library/functions.rst:463 +#: library/functions.rst:461 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 " @@ -1151,11 +1157,11 @@ msgstr "" "και μια συμβολοσειρά. Η συμβολοσειρά πρέπει να είναι το όνομα ενός από τα " "χαρακτηριστικά του αντικειμένου. Η συνάρτηση διαγράφει το επώνυμο " "χαρακτηριστικό, υπό την προϋπόθεση ότι το αντικείμενο το επιτρέπει. Για " -"παράδειγμα, το ``delattr(x, 'foobar')`` είναι ισοδύναμο με το ``del x." -"foobar``. Το *name* δεν χρειάζεται να είναι αναγνωριστικό της Python (δείτε :" -"func:`setattr`)." +"παράδειγμα, το ``delattr(x, 'foobar')`` είναι ισοδύναμο με το ``del " +"x.foobar``. Το *name* δεν χρειάζεται να είναι αναγνωριστικό της Python " +"(δείτε :func:`setattr`)." -#: library/functions.rst:476 +#: library/functions.rst:474 msgid "" "Create a new dictionary. The :class:`dict` object is the dictionary class. " "See :class:`dict` and :ref:`typesmapping` for documentation about this class." @@ -1164,15 +1170,16 @@ msgstr "" "λεξικού. Δείτε το :class:`dict` και το :ref:`typesmapping` για τεκμηρίωση " "σχετικά με αυτή την κατηγορία." -#: library/functions.rst:479 +#: library/functions.rst:477 msgid "" -"For other containers see the built-in :class:`list`, :class:`set`, and :" -"class:`tuple` classes, as well as the :mod:`collections` module." +"For other containers see the built-in :class:`list`, :class:`set`, " +"and :class:`tuple` classes, as well as the :mod:`collections` module." msgstr "" -"Για άλλα containers, δείτε τις ενσωματωμένες κλάσεις :class:`list`, :class:" -"`set`, και :class:`tuple`, καθώς και το module :mod:`collections`." +"Για άλλα containers, δείτε τις ενσωματωμένες " +"κλάσεις :class:`list`, :class:`set`, και :class:`tuple`, καθώς και το " +"module :mod:`collections`." -#: library/functions.rst:486 +#: library/functions.rst:484 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 " @@ -1182,36 +1189,37 @@ msgstr "" "ένα όρισμα, προσπαθεί να επιστρέψει μια λίστα έγκυρων χαρακτηριστικών για " "αυτό το αντικείμενο." -#: library/functions.rst:489 +#: library/functions.rst:487 msgid "" "If the object has a method named :meth:`~object.__dir__`, this method will " "be called and must return the list of attributes. This allows objects that " -"implement a custom :func:`~object.__getattr__` or :func:`~object." -"__getattribute__` function to customize the way :func:`dir` reports their " -"attributes." +"implement a custom :func:`~object.__getattr__` " +"or :func:`~object.__getattribute__` function to customize the " +"way :func:`dir` reports their attributes." msgstr "" "Εάν το αντικείμενο έχει μία μέθοδο με το όνομα :meth:`~object.__dir__`, αυτή " "η μέθοδος θα καλείται και πρέπει να επιστρέψει μια λίστα από χαρακτηριστικά. " -"Αυτό επιτρέπει τα αντικείμενα που υλοποιούν μια εξατομικευμένη συνάρτηση :" -"func:`~object.__getattr__` or :func:`~object.__getattribute__` για την " -"προσαρμογή του τρόπου με τον οποίο η :func:`dir` αναφέρει τα χαρακτηριστικά." +"Αυτό επιτρέπει τα αντικείμενα που υλοποιούν μια εξατομικευμένη " +"συνάρτηση :func:`~object.__getattr__` or :func:`~object.__getattribute__` " +"για την προσαρμογή του τρόπου με τον οποίο η :func:`dir` αναφέρει τα " +"χαρακτηριστικά." -#: library/functions.rst:496 +#: library/functions.rst:494 msgid "" "If the object does not provide :meth:`~object.__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:`~object.__getattr__`." +"necessarily complete and may be inaccurate when the object has a " +"custom :func:`~object.__getattr__`." msgstr "" "Εάν το αντικείμενο δεν παρέχει την :meth:`~object.__dir__`, η συνάρτηση " -"προσπαθεί να συλλέξει πληροφορίες από το χαρακτηριστικό :attr:`~object." -"__dict__` του αντικειμένου, εάν έχει οριστεί, και από το αντικείμενο του " -"τύπου του. Η λίστα που παράγεται ως αποτέλεσμα δεν είναι απαραίτητα πλήρης " -"και μπορεί να είναι ανακριβής όταν το αντικείμενο έχει εξατομικευμένη :func:" -"`~object.__getattr__`." +"προσπαθεί να συλλέξει πληροφορίες από το " +"χαρακτηριστικό :attr:`~object.__dict__` του αντικειμένου, εάν έχει οριστεί, " +"και από το αντικείμενο του τύπου του. Η λίστα που παράγεται ως αποτέλεσμα " +"δεν είναι απαραίτητα πλήρης και μπορεί να είναι ανακριβής όταν το " +"αντικείμενο έχει εξατομικευμένη :func:`~object.__getattr__`." -#: library/functions.rst:502 +#: library/functions.rst:500 msgid "" "The default :func:`dir` mechanism behaves differently with different types " "of objects, as it attempts to produce the most relevant, rather than " @@ -1221,7 +1229,7 @@ msgstr "" "διαφορετικούς τύπους αντικειμένων, καθώς προσπαθεί να παράγει τις πιο " "σχετικές και όχι τις πιο ολοκληρωμένες πληροφορίες:" -#: library/functions.rst:506 +#: library/functions.rst:504 msgid "" "If the object is a module object, the list contains the names of the " "module's attributes." @@ -1229,7 +1237,7 @@ msgstr "" "Εάν το αντικείμενο είναι module τύπου αντικειμένου, η λίστα περιέχει τα " "ονόματα των χαρακτηριστικών του module." -#: library/functions.rst:509 +#: library/functions.rst:507 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." @@ -1238,7 +1246,7 @@ msgstr "" "τα ονόματα των χαρακτηριστικών του, και αναδρομικά τα χαρακτηριστικά της " "βάσεώς του." -#: library/functions.rst:512 +#: library/functions.rst:510 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 " @@ -1248,11 +1256,11 @@ msgstr "" "αντικειμένου, τα ονόματα των χαρακτηριστικών της κλάσης, και αναδρομικά τα " "χαρακτηριστικά της κλάσης βάσεως της κλάσης." -#: library/functions.rst:516 +#: library/functions.rst:514 msgid "The resulting list is sorted alphabetically. For example:" msgstr "Η παραγόμενη λίστα είναι ταξινομημένη αλφαβητικά. Για παράδειγμα:" -#: library/functions.rst:536 +#: library/functions.rst:534 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 " @@ -1268,16 +1276,16 @@ msgstr "" "μετακλάσης δεν βρίσκονται στη λίστα αποτελεσμάτων όταν το όρισμα είναι μια " "κλάση." -#: library/functions.rst:546 +#: library/functions.rst:544 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)``." +"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 "" "Λαμβάνει δύο (μη μιγαδικούς) αριθμούς ως ορίσματα και επιστρέφει ένα ζεύγος " "αριθμών που αποτελείται από το πηλίκο και το υπόλοιπο τους όταν " @@ -1290,13 +1298,13 @@ msgstr "" "b`` δεν είναι μηδενικό, έχει το ίδιο πρόσημο όπως το *b*, και ``0 <= abs(a % " "b) < abs(b)``." -#: library/functions.rst:558 +#: library/functions.rst:556 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*." +"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 "" "Επιστρέφει ένα αντικείμενο απαρίθμησης. Το *iterable* πρέπει να είναι μια " "ακολουθία, ένα :term:`iterator`, ή κάποιο άλλο αντικείμενο που υποστηρίζει " @@ -1305,11 +1313,11 @@ msgstr "" "περιέχει μια καταμέτρηση (από το *start* που είναι με προεπιλογή στο 0) και " "τις τιμές που λαμβάνονται από την επανάληψη πάνω στο *iterable*." -#: library/functions.rst:570 +#: library/functions.rst:568 msgid "Equivalent to::" msgstr "Ισοδύναμο με::" -#: library/functions.rst:572 +#: library/functions.rst:570 msgid "" "def enumerate(iterable, start=0):\n" " n = start\n" @@ -1327,15 +1335,15 @@ msgstr "" msgid "Parameters" msgstr "Παράμετροι" -#: library/functions.rst:582 +#: library/functions.rst:580 msgid "A Python expression." msgstr "Μια έκφραση Python." -#: library/functions.rst:586 +#: library/functions.rst:584 msgid "The global namespace (default: ``None``)." msgstr "Το καθολικό namespace (προεπιλογή: ``None``)." -#: library/functions.rst:590 +#: library/functions.rst:588 msgid "The local namespace (default: ``None``)." msgstr "Το τοπικό namespace (προεπιλογή: ``None``)." @@ -1343,19 +1351,19 @@ msgstr "Το τοπικό namespace (προεπιλογή: ``None``)." msgid "Returns" msgstr "Επιστρέφει" -#: library/functions.rst:594 +#: library/functions.rst:592 msgid "The result of the evaluated expression." -msgstr "Το αποτέλεσμα της αξιολογούμενης έκφρασης" +msgstr "Το αποτέλεσμα της αξιολογούμενης έκφρασης." #: library/functions.rst:0 msgid "raises" msgstr "κάνει raise" -#: library/functions.rst:595 +#: library/functions.rst:593 msgid "Syntax errors are reported as exceptions." -msgstr "Τα συντακτικά σφάλματα αναφέρονται ως εξαιρέσεις" +msgstr "Τα συντακτικά σφάλματα αναφέρονται ως εξαιρέσεις." -#: library/functions.rst:660 +#: library/functions.rst:658 msgid "" "This function executes arbitrary code. Calling it with user-supplied input " "may lead to security vulnerabilities." @@ -1363,7 +1371,7 @@ msgstr "" "Αυτή η συνάρτηση εκτελεί αυθαίρετο κώδικα. Η κλήση της με είσοδο που " "παρέχεται από το χρήστη μπορεί να οδηγήσει σε ευπάθειες ασφαλείας." -#: library/functions.rst:602 +#: library/functions.rst:600 msgid "" "The *expression* argument is parsed and evaluated as a Python expression " "(technically speaking, a condition list) using the *globals* and *locals* " @@ -1372,14 +1380,14 @@ msgid "" "reference to the dictionary of the built-in module :mod:`builtins` is " "inserted under that key before *expression* is parsed. 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:" -"`eval`. If the *locals* mapping is omitted it defaults to the *globals* " -"dictionary. If both mappings are omitted, the expression is executed with " -"the *globals* and *locals* in the environment where :func:`eval` is called. " -"Note, *eval()* will only have access to the :term:`nested scopes ` (non-locals) in the enclosing environment if they are already " -"referenced in the scope that is calling :func:`eval` (e.g. via a :keyword:" -"`nonlocal` statement)." +"own ``__builtins__`` dictionary into *globals* before passing it " +"to :func:`eval`. If the *locals* mapping is omitted it defaults to the " +"*globals* dictionary. If both mappings are omitted, the expression is " +"executed with the *globals* and *locals* in the environment " +"where :func:`eval` is called. Note, *eval()* will only have access to " +"the :term:`nested scopes ` (non-locals) in the enclosing " +"environment if they are already referenced in the scope that is " +"calling :func:`eval` (e.g. via a :keyword:`nonlocal` statement)." msgstr "" "Το όρισμα *expression* αναλύεται και αξιολογείται ως μια έκφραση της Python " "(από τεχνικής άποψης, μια λίστα συνθηκών) χρησιμοποιώντας τις αντιστοιχίσεις " @@ -1395,14 +1403,14 @@ msgstr "" "στο περιβάλλον όπου καλείται η :func:`eval`. Σημείωση, το *eval()* θα έχει " "πρόσβαση στο :term:`nested scopes ` (μη τοπικούς) του " "περιβάλλοντος που την περικλείει μόνο εάν αυτοί έχουν ήδη αναφερθεί στον " -"χώρο ονομάτων που καλεί τη :func:`eval` (π.χ. μέσω μιας δήλωσης :keyword:" -"`nonlocal`)." +"χώρο ονομάτων που καλεί τη :func:`eval` (π.χ. μέσω μιας " +"δήλωσης :keyword:`nonlocal`)." -#: library/functions.rst:618 +#: library/functions.rst:616 msgid "Example:" msgstr "Παράδειγμα:" -#: library/functions.rst:624 +#: library/functions.rst:622 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 " @@ -1416,19 +1424,20 @@ msgstr "" "ως το όρισμα *mode*, η επιστρεφόμενη τιμή του :func:`eval`\\'s θα είναι " "``None``." -#: library/functions.rst:629 +#: library/functions.rst:627 msgid "" "Hints: dynamic execution of statements is supported by the :func:`exec` " "function. The :func:`globals` and :func:`locals` functions return the " "current global and local dictionary, respectively, which may be useful to " "pass around for use by :func:`eval` or :func:`exec`." msgstr "" -"Συμβουλές: η δυναμική εκτέλεση εντολών υποστηρίζεται από την συνάρτηση :func:" -"`exec`. Οι συναρτήσεις :func:`globals` και :func:`locals` επιστρέφουν το " -"τρέχον global και local λεξικό, αντίστοιχα, το οποίο μπορεί να είναι χρήσιμο " -"για μεταβίβαση γύρω από τη χρήση από τις :func:`eval` ή :func:`exec`." +"Συμβουλές: η δυναμική εκτέλεση εντολών υποστηρίζεται από την " +"συνάρτηση :func:`exec`. Οι συναρτήσεις :func:`globals` και :func:`locals` " +"επιστρέφουν το τρέχον global και local λεξικό, αντίστοιχα, το οποίο μπορεί " +"να είναι χρήσιμο για μεταβίβαση γύρω από τη χρήση από τις :func:`eval` " +"ή :func:`exec`." -#: library/functions.rst:634 +#: library/functions.rst:632 msgid "" "If the given source is a string, then leading and trailing spaces and tabs " "are stripped." @@ -1436,7 +1445,7 @@ msgstr "" "Εάν η δεδομένη πηγή είναι μια συμβολοσειρά, τότε αφαιρούνται τα κενά και τα " "tabs που προηγούνται ή έπονται." -#: library/functions.rst:637 +#: library/functions.rst:635 msgid "" "See :func:`ast.literal_eval` for a function that can safely evaluate strings " "with expressions containing only literals." @@ -1444,7 +1453,7 @@ msgstr "" "Βλ. τη :func:`ast.literal_eval` για μια συνάρτηση που μπορεί με ασφάλεια να " "αξιολογήσει τις συμβολοσειρές με εκφράσεις που περιέχουν μόνο literals." -#: library/functions.rst:642 library/functions.rst:704 +#: library/functions.rst:640 library/functions.rst:702 msgid "" "Raises an :ref:`auditing event ` ``exec`` with the code object as " "the argument. Code compilation events may also be raised." @@ -1452,13 +1461,13 @@ msgstr "" "Κάνει raise ένα :ref:`auditing event ` ``exec`` με το αντικείμενο " "κώδικα ως όρισμα. Μπορεί επίσης να εμφανιστούν συμβάντα μεταγλώττισης κώδικα." -#: library/functions.rst:724 +#: library/functions.rst:722 msgid "The *globals* and *locals* arguments can now be passed as keywords." msgstr "" "Τα ορίσματα *globals* και *locals* υποστηρίζονται πλέον και ως ορίσματα " "λέξεων-κλειδιών." -#: library/functions.rst:728 +#: library/functions.rst:726 msgid "" "The semantics of the default *locals* namespace have been adjusted as " "described for the :func:`locals` builtin." @@ -1466,17 +1475,17 @@ msgstr "" "Η σημασιολογία του προεπιλεγμένου ονόματος χώρου *locals* έχει τροποποιηθεί, " "όπως περιγράφεται για την ενσωματωμένη συνάρτηση :func:`locals`." -#: library/functions.rst:663 +#: library/functions.rst:661 msgid "" "This function supports dynamic execution of Python code. *source* 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 :ref:`file-input` in the Reference Manual). Be aware that the :" -"keyword:`nonlocal`, :keyword:`yield`, and :keyword:`return` 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``." +"the section :ref:`file-input` in the Reference Manual). Be aware that " +"the :keyword:`nonlocal`, :keyword:`yield`, and :keyword:`return` 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 "" "Αυτή η συνάρτηση υποστηρίζει δυναμική εκτέλεση κώδικα Python. Το *source* " "πρέπει να είναι είτε μια συμβολοσειρά (string) είτε ένα αντικείμενο κώδικα. " @@ -1485,12 +1494,12 @@ msgstr "" "[#]_ Εάν πρόκειται για ένα αντικείμενο κώδικα, απλά εκτελείται. Σε όλες τις " "περιπτώσεις, ο κώδικας που εκτελείται αναμένεται να είναι έγκυρος ως είσοδος " "αρχείου (δείτε την ενότητα :ref:`file-input` στο Εγχειρίδιο Αναφοράς). " -"Λάβετε υπόψη ότι οι εντολές :keyword:`nonlocal`, :keyword:`yield`, και :" -"keyword:`return` δεν μπορούν να χρησιμοποιηθούν εκτός των ορισμών " -"συναρτήσεων, ακόμη και στο πλαίσιο του κώδικα που διαβιβάζεται στη :func:" -"`exec`. Η επιστρεφόμενη τιμή είναι ``None``." +"Λάβετε υπόψη ότι οι εντολές :keyword:`nonlocal`, :keyword:`yield`, " +"και :keyword:`return` δεν μπορούν να χρησιμοποιηθούν εκτός των ορισμών " +"συναρτήσεων, ακόμη και στο πλαίσιο του κώδικα που διαβιβάζεται " +"στη :func:`exec`. Η επιστρεφόμενη τιμή είναι ``None``." -#: library/functions.rst:674 +#: library/functions.rst:672 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 (and " @@ -1507,7 +1516,7 @@ msgstr "" "είναι οποιοδήποτε αντικείμενο αντιστοίχισης. Να θυμάστε ότι σε επίπεδο " "module, τα globals και locals είναι το ίδιο λεξικό." -#: library/functions.rst:684 +#: library/functions.rst:682 msgid "" "When ``exec`` gets two separate objects as *globals* and *locals*, the code " "will be executed as if it were embedded in a class definition. This means " @@ -1522,22 +1531,22 @@ msgstr "" "επίπεδο (καθώς αυτές οι \"ανωτέρου επιπέδου\" μεταβλητές θεωρούνται ως " "μεταβλητές κλάσης, όπως συμβαίνει μέσα σε έναν ορισμό κλάσης)." -#: library/functions.rst:690 +#: library/functions.rst:688 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__``, 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 "" "Εάν το λεξικό *globals* δεν περιέχει τιμή για το κλειδί ``__builtins__``, " "μια αναφορά στο λεξικό του ενσωματωμένου module :mod:`builtins` εισάγεται " "κάτω από αυτό το κλειδί. Με αυτόν τον τρόπο μπορεί να ελέγξετε τι " "ενσωματωμένα (built-ins) είναι διαθέσιμα στον εκτελέσιμο κώδικα εισάγοντας " -"το δικό σας ``__builtins__`` λεξικό στο *globals* πριν το διαβάσετε στο :" -"func:`exec`." +"το δικό σας ``__builtins__`` λεξικό στο *globals* πριν το διαβάσετε " +"στο :func:`exec`." -#: library/functions.rst:696 +#: library/functions.rst:694 msgid "" "The *closure* argument specifies a closure--a tuple of cellvars. It's only " "valid when the *object* is a code object containing :term:`free (closure) " @@ -1545,12 +1554,12 @@ msgid "" "the length of the code object's :attr:`~codeobject.co_freevars` attribute." msgstr "" "Το όρισμα *closure* καθορίζει ένα clossure--μια πλειάδα από cellvars. Είναι " -"έγκυρο μόνο όταν το *object* είναι ένα αντικείμενο κώδικα που περιέχει :term:" -"`free (closure) variables `. Το μήκος της πλειάδας πρέπει " -"να ταιριάζει ακριβώς με το μήκος το χαρακτηριστικό :attr:`~codeobject." -"co_freevars` του αντικειμένου κώδικα." +"έγκυρο μόνο όταν το *object* είναι ένα αντικείμενο κώδικα που " +"περιέχει :term:`free (closure) variables `. Το μήκος της " +"πλειάδας πρέπει να ταιριάζει ακριβώς με το μήκος το " +"χαρακτηριστικό :attr:`~codeobject.co_freevars` του αντικειμένου κώδικα." -#: library/functions.rst:709 +#: library/functions.rst:707 msgid "" "The built-in functions :func:`globals` and :func:`locals` return the current " "global and local namespace, respectively, which may be useful to pass around " @@ -1560,22 +1569,22 @@ msgstr "" "το τρέχον χώρο ονομάτων global και local, αντίστοιχα, που μπορεί να είναι " "χρήσιμο για χρήση ως δεύτερο και τρίτο όρισμα στο :func:`exec`." -#: library/functions.rst:715 +#: library/functions.rst:713 msgid "" "The default *locals* act as described for function :func:`locals` below. " "Pass an explicit *locals* dictionary if you need to see effects of the code " "on *locals* after function :func:`exec` returns." msgstr "" -"Το προεπιλεγμένο *locals* ενεργεί όπως περιγράφεται για τη συνάρτηση :func:" -"`locals` παρακάτω. Δώστε ρητά ένα λεξικό *locals* αν χρειάζεται να δείτε τις " -"επιδράσεις του κώδικα *locals* μετά την επιστροφή της συνάρτησης :func:" -"`exec`." +"Το προεπιλεγμένο *locals* ενεργεί όπως περιγράφεται για τη " +"συνάρτηση :func:`locals` παρακάτω. Δώστε ρητά ένα λεξικό *locals* αν " +"χρειάζεται να δείτε τις επιδράσεις του κώδικα *locals* μετά την επιστροφή " +"της συνάρτησης :func:`exec`." -#: library/functions.rst:719 +#: library/functions.rst:717 msgid "Added the *closure* parameter." msgstr "Προστέθηκε η παράμετρος *closure*." -#: library/functions.rst:734 +#: library/functions.rst:732 msgid "" "Construct an iterator from those elements of *iterable* for which *function* " "is true. *iterable* may be either a sequence, a container which supports " @@ -1588,7 +1597,7 @@ msgstr "" "*function* είναι ``None``, η συνάρτηση ταυτότητας υποτίθεται, δηλαδή, όλα τα " "στοιχεία του *iterable* που είναι ψευδή αφαιρούνται." -#: library/functions.rst:740 +#: library/functions.rst:738 msgid "" "Note that ``filter(function, iterable)`` is equivalent to the generator " "expression ``(item for item in iterable if function(item))`` if function is " @@ -1600,7 +1609,7 @@ msgstr "" "η συνάρτηση δεν είναι ``None`` και ``(item for item in iterable if item)`` " "εάν η συνάρτηση είναι ``None``." -#: library/functions.rst:745 +#: library/functions.rst:743 msgid "" "See :func:`itertools.filterfalse` for the complementary function that " "returns elements of *iterable* for which *function* is false." @@ -1608,13 +1617,13 @@ msgstr "" "Βλ. :func:`itertools.filterfalse` για τη συμπληρωματική συνάρτηση που " "επιστρέφει στοιχεία του *iterable* για τα οποία η *function* είναι ψευδής." -#: library/functions.rst:756 +#: library/functions.rst:754 msgid "Return a floating-point number constructed from a number or a string." msgstr "" "Επιστέφει έναν αριθμό κινητής υποδιαστολής που κατασκευάστηκε από έναν " "αριθμό ή μια συμβολοσειρά." -#: library/functions.rst:760 +#: library/functions.rst:758 msgid "" ">>> float('+1.23')\n" "1.23\n" @@ -1638,7 +1647,7 @@ msgstr "" ">>> float('-Infinity')\n" "-inf" -#: library/functions.rst:773 +#: library/functions.rst:771 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 " @@ -1654,11 +1663,11 @@ msgstr "" "``'+'`` ή ``'-'``∙ ένα σύμβολο ``'+'`` δεν έχει καμία επίδραση στην τιμή που " "παράγεται. Το όρισμα μπορεί επίσης να είναι μια συμβολοσειρά που " "αντιπροσωπεύει ένα NaN (not-a-number), ή θετικό η αρνητικό άπειρο. Πιο " -"συγκεκριμένα, η είσοδος πρέπει να συμμορφώνεται με τον κανόνα παραγωγής :" -"token:`~float:floatvalue` στην ακόλουθη γραμματική, αφού αφαιρεθούν οι " -"χαρακτήρες κενού διαστήματος που έπονται και προηγούνται:" +"συγκεκριμένα, η είσοδος πρέπει να συμμορφώνεται με τον κανόνα " +"παραγωγής :token:`~float:floatvalue` στην ακόλουθη γραμματική, αφού " +"αφαιρεθούν οι χαρακτήρες κενού διαστήματος που έπονται και προηγούνται:" -#: library/functions.rst:794 +#: library/functions.rst:792 msgid "" "Case is not significant, so, for example, \"inf\", \"Inf\", \"INFINITY\", " "and \"iNfINity\" are all acceptable spellings for positive infinity." @@ -1667,7 +1676,7 @@ msgstr "" "\"Inf\", \"INFINITY\", και \"iNfINity\" είναι όλες αποδεκτές ορθογραφίες για " "το θετικό άπειρο." -#: library/functions.rst:797 +#: library/functions.rst:795 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 " @@ -1679,31 +1688,31 @@ msgstr "" "ακρίβειας κινητής υποδιαστολής της Python). Εάν το όρισμα βρίσκεται εκτός " "του εύρους ενός float της Python θα γίνει raise ένα :exc:`OverflowError`." -#: library/functions.rst:802 +#: library/functions.rst:800 msgid "" -"For a general Python object ``x``, ``float(x)`` delegates to ``x." -"__float__()``. If :meth:`~object.__float__` is not defined then it falls " -"back to :meth:`~object.__index__`." +"For a general Python object ``x``, ``float(x)`` delegates to " +"``x.__float__()``. If :meth:`~object.__float__` is not defined then it " +"falls back to :meth:`~object.__index__`." msgstr "" -"Για ένα γενικό αντικείμενο Python ``x``, ``float(x)`` εκχωρεί στο ``x." -"__float__()``. Εάν το :meth:`~object.__float__` δεν έχει οριστεί, τότε " +"Για ένα γενικό αντικείμενο Python ``x``, ``float(x)`` εκχωρεί στο " +"``x.__float__()``. Εάν το :meth:`~object.__float__` δεν έχει οριστεί, τότε " "επιστρέφει στο :meth:`~object.__index__`." -#: library/functions.rst:806 +#: library/functions.rst:804 msgid "" "See also :meth:`float.from_number` which only accepts a numeric argument." msgstr "" "Δείτε επίσης τη :meth:`float.from_number` που δέχεται μόνο αριθμητικό όρισμα." -#: library/functions.rst:808 +#: library/functions.rst:806 msgid "If no argument is given, ``0.0`` is returned." msgstr "Εάν δεν δοθεί όρισμα, επιστρέφεται το ``0.0``." -#: library/functions.rst:810 +#: library/functions.rst:808 msgid "The float type is described in :ref:`typesnumeric`." msgstr "Ο τύπος float περιγράφεται στο :ref:`typesnumeric`." -#: library/functions.rst:818 +#: library/functions.rst:816 msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__float__` is not " "defined." @@ -1711,7 +1720,7 @@ msgstr "" "Επιστρέφει στο :meth:`~object.__index__` εάν το :meth:`~object.__float__` " "δεν έχει οριστεί." -#: library/functions.rst:828 +#: library/functions.rst:826 msgid "" "Convert a *value* to a \"formatted\" representation, as controlled by " "*format_spec*. The interpretation of *format_spec* will depend on the type " @@ -1721,10 +1730,10 @@ msgstr "" "Μετατρέπει ένα *value* σε μια αναπαράσταση \"formatted\", όπως ελέγχεται από " "το *format_spec*. Η ερμηνεία του *format_spec* θα εξαρτηθεί από τον τύπο " "του ορίσματος *value* ∙ ωστόσο υπάρχει μια τυπική σύνταξη μορφοποίησης που " -"χρησιμοποιείται από τους περισσότερους ενσωματωμένους τύπους: :ref:" -"`formatspec`." +"χρησιμοποιείται από τους περισσότερους ενσωματωμένους " +"τύπους: :ref:`formatspec`." -#: library/functions.rst:833 +#: library/functions.rst:831 msgid "" "The default *format_spec* is an empty string which usually gives the same " "effect as calling :func:`str(value) `." @@ -1732,23 +1741,24 @@ msgstr "" "Η προεπιλεγμένη *format_spec* είναι μια κενή συμβολοσειρά που συνήθως δίνει " "το ίδιο αποτέλεσμα με την κλήση του :func:`str(value) `." -#: library/functions.rst:836 +#: library/functions.rst:834 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:`~object.__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." +"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:`~object.__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 "" -"Μια κλήση στο ``format(value, format_spec)`` μεταφράζεται σε ``type(value)." -"__format__(value, format_spec)`` το οποίο παρακάμπτει το instance του " -"λεξικού κατά την αναζήτηση της τιμής της μεθόδου :meth:`~object.__format__`. " -"Μια εξαίρεση :exc:`TypeError` γίνεται raise εάν η αναζήτηση της μεθόδου " -"φτάσει στο :mod:`object` και το *format_spec* δεν είναι κενό ή εάν είτε το " -"*format_spec* είτε η τιμή επιστροφής δεν είναι συμβολοσειρές." +"Μια κλήση στο ``format(value, format_spec)`` μεταφράζεται σε " +"``type(value).__format__(value, format_spec)`` το οποίο παρακάμπτει το " +"instance του λεξικού κατά την αναζήτηση της τιμής της " +"μεθόδου :meth:`~object.__format__`. Μια εξαίρεση :exc:`TypeError` γίνεται " +"raise εάν η αναζήτηση της μεθόδου φτάσει στο :mod:`object` και το " +"*format_spec* δεν είναι κενό ή εάν είτε το *format_spec* είτε η τιμή " +"επιστροφής δεν είναι συμβολοσειρές." -#: library/functions.rst:843 +#: library/functions.rst:841 msgid "" "``object().__format__(format_spec)`` raises :exc:`TypeError` if " "*format_spec* is not an empty string." @@ -1756,27 +1766,28 @@ msgstr "" "Το ``object().__format__(format_spec)`` κάνει raise το :exc:`TypeError` εάν " "το *format_spec* δεν είναι κενή συμβολοσειρά." -#: library/functions.rst:852 +#: library/functions.rst:850 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." +"*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` " +"and :ref:`types-set` for documentation about this class." msgstr "" "Επιστρέφει ένα νέο αντικείμενο :class:`frozenset`, προαιρετικά με στοιχεία " "που λαμβάνονται από το *iterable*. Το ``frozenset`` είναι μια ενσωματωμένη " "κλάση. Δείτε το :class:`frozenset` και το :ref:`types-set` για τεκμηρίωση " "αυτής της κλάσης." -#: library/functions.rst:856 +#: library/functions.rst:854 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." +"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 "" -"Για άλλα containers, ανατρέξτε στις ενσωματωμένες κλάσεις :class:`set`, :" -"class:`list`, :class:`tuple`, και :class:`dict`, καθώς και το module :mod:" -"`collections`." +"Για άλλα containers, ανατρέξτε στις ενσωματωμένες " +"κλάσεις :class:`set`, :class:`list`, :class:`tuple`, και :class:`dict`, " +"καθώς και το module :mod:`collections`." -#: library/functions.rst:864 +#: library/functions.rst:862 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 " @@ -1790,23 +1801,23 @@ msgstr "" "τα χαρακτηριστικά του αντικειμένου, το αποτέλεσμα είναι η τιμή αυτού του " "χαρακτηριστικού. Για παράδειγμα, ``getattr(x, 'foobar')`` είναι ισοδύναμο " "με το ``x.foobar``. Εάν το χαρακτηριστικό γνώρισμα δεν υπάρχει, το " -"*default* επιστρέφεται εάν παρέχεται, διαφορετικά γίνεται raise το :exc:" -"`AttributeError`. Το *name* δεν χρειάζεται να είναι αναγνωριστικό Python " -"(δείτε :func:`setattr`)." +"*default* επιστρέφεται εάν παρέχεται, διαφορετικά γίνεται raise " +"το :exc:`AttributeError`. Το *name* δεν χρειάζεται να είναι αναγνωριστικό " +"Python (δείτε :func:`setattr`)." -#: library/functions.rst:873 +#: library/functions.rst:871 msgid "" "Since :ref:`private name mangling ` happens at " "compilation time, one must manually mangle a private attribute's (attributes " -"with two leading underscores) name in order to retrieve it with :func:" -"`getattr`." +"with two leading underscores) name in order to retrieve it " +"with :func:`getattr`." msgstr "" "Δεδομένου ότι το :ref:`private name mangling ` " "συμβαίνει κατά τη στιγμή της μεταγλώττισης, πρέπει κανείς να παραμορφώνει " "χειροκίνητα το όνομα ενός ιδιωτικού χαρακτηριστικού (χαρακτηριστικά με δύο " "κορυφαίες υπογραμμίσεις) για να ανακτήσει με :func:`getattr`." -#: library/functions.rst:881 +#: library/functions.rst:879 msgid "" "Return the dictionary implementing the current module namespace. For code " "within functions, this is set when the function is defined and remains the " @@ -1816,7 +1827,7 @@ msgstr "" "κώδικα εντός συναρτήσεων, αυτό ορίζεται όταν ορίζεται η συνάρτηση και " "παραμένει το ίδιο ανεξάρτητη από το που καλείται η συνάρτηση." -#: library/functions.rst:888 +#: library/functions.rst:886 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. " @@ -1826,10 +1837,10 @@ msgstr "" "Τα ορίσματα είναι ένα αντικείμενο και μια συμβολοσειρά (string). Το " "αποτέλεσμα είναι ``True`` εάν η συμβολοσειρά είναι το όνομα ενός από τα " "χαρακτηριστικά του αντικειμένου, ``False`` εάν όχι. (Αυτό υλοποιείται " -"καλώντας το ``getattr(object, name)`` και να δούμε αν γίνεται raise ένα :exc:" -"`AttributeError` ή όχι.)" +"καλώντας το ``getattr(object, name)`` και να δούμε αν γίνεται raise " +"ένα :exc:`AttributeError` ή όχι.)" -#: library/functions.rst:896 +#: library/functions.rst:894 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 " @@ -1842,16 +1853,17 @@ msgstr "" "αριθμητικές τιμές που συγκρίνονται ίσες έχουν την ίδια τιμή κατακερματισμού " "(ακόμα και αν είναι διαφορετικοί τύποι, όπως συμβαίνει για τα 1 και 1.0)." -#: library/functions.rst:903 +#: library/functions.rst:901 msgid "" -"For objects with custom :meth:`~object.__hash__` methods, note that :func:" -"`hash` truncates the return value based on the bit width of the host machine." +"For objects with custom :meth:`~object.__hash__` methods, note " +"that :func:`hash` truncates the return value based on the bit width of the " +"host machine." msgstr "" "Για αντικείμενα με προσαρμοσμένες μεθόδους :meth:`~object.__hash__`, " "σημειώστε ότι το :func:`hash` περικόπτει την τιμή επιστροφής με βάση το " "πλάτος bit του υπολογιστή." -#: library/functions.rst:910 +#: library/functions.rst:908 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 " @@ -1869,7 +1881,7 @@ msgstr "" "είναι οποιοδήποτε άλλο είδος αντικειμένου, δημιουργείται μια σελίδα βοήθειας " "στο αντικείμενο." -#: library/functions.rst:917 +#: library/functions.rst:915 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 " @@ -1881,14 +1893,14 @@ msgstr "" "την κάθετο είναι μόνο θέσης. Για περισσότερες πληροφορίες, βλέπε :ref:`the " "FAQ entry on positional-only parameters `." -#: library/functions.rst:922 +#: library/functions.rst:920 msgid "" "This function is added to the built-in namespace by the :mod:`site` module." msgstr "" -"Αυτή η συνάρτηση προστίθεται στον ενσωματωμένο χώρο ονομάτων από το module :" -"mod:`site`." +"Αυτή η συνάρτηση προστίθεται στον ενσωματωμένο χώρο ονομάτων από το " +"module :mod:`site`." -#: library/functions.rst:924 +#: library/functions.rst:922 msgid "" "Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures " "for callables are now more comprehensive and consistent." @@ -1896,18 +1908,18 @@ msgstr "" "Οι αλλαγές σε :mod:`pydoc` και :mod:`inspect` σημαίνουν ότι οι αναφερόμενες " "υπογραφές για callables είναι πλέον πιο ολοκληρωμένες και συνεπείς." -#: library/functions.rst:931 +#: library/functions.rst:929 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:`~object.__index__` method that returns an integer. Some examples:" +"\"0x\". If *integer* is not a Python :class:`int` object, it has to define " +"an :meth:`~object.__index__` method that returns an integer. Some examples:" msgstr "" "Μετατροπή ενός ακεραίου αριθμού σε μια πεζή δεκαεξαδική συμβολοσειρά " -"(string) με πρόθεμα το \"0x\". Εάν το *x* δεν είναι αντικείμενο Python :" -"class:`int`, πρέπει να ορίσει μια μέθοδο :meth:`~object.__index__` που " -"επιστρέφει έναν ακέραιο αριθμό. Κάποια παραδείγματα:" +"(string) με πρόθεμα το \"0x\". Εάν το *integer* δεν είναι αντικείμενο " +"Python :class:`int`, πρέπει να ορίσει μια μέθοδο :meth:`~object.__index__` " +"που επιστρέφει έναν ακέραιο αριθμό. Κάποια παραδείγματα:" -#: library/functions.rst:940 +#: library/functions.rst:938 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 " @@ -1917,7 +1929,7 @@ msgstr "" "δεκαεξαδική συμβολοσειρά (string) με πρόθεμα ή όχι, μπορείτε να " "χρησιμοποιήσετε έναν από τους παρακάτω τρόπους:" -#: library/functions.rst:952 +#: library/functions.rst:950 msgid "" "See also :func:`int` for converting a hexadecimal string to an integer using " "a base of 16." @@ -1925,15 +1937,15 @@ msgstr "" "Δείτε επίσης τη :func:`int` για τη μετατροπή μιας δεκαεξαδικής συμβολοσειράς " "σε ακέραιο χρησιμοποιώντας μια βάση του 16." -#: library/functions.rst:957 +#: library/functions.rst:955 msgid "" -"To obtain a hexadecimal string representation for a float, use the :meth:" -"`float.hex` method." +"To obtain a hexadecimal string representation for a float, use " +"the :meth:`float.hex` method." msgstr "" "Για να αποκτήσετε μια αναπαράσταση δεκαεξαδικής συμβολοσειράς για ένα float, " "χρησιμοποιήστε τη μέθοδο :meth:`float.hex`." -#: library/functions.rst:963 +#: library/functions.rst:961 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. " @@ -1945,11 +1957,11 @@ msgstr "" "αντικείμενο κατά τη διάρκεια της ζωής του. Δύο αντικείμενα με μη " "επικαλυπτόμενες διάρκειες ζωής μπορεί να έχουν την ίδια τιμή :func:`id`." -#: library/functions.rst:968 +#: library/functions.rst:966 msgid "This is the address of the object in memory." msgstr "Αυτό είναι η διεύθυνση του αντικειμένου στην μνήμη." -#: library/functions.rst:970 +#: library/functions.rst:968 msgid "" "Raises an :ref:`auditing event ` ``builtins.id`` with argument " "``id``." @@ -1957,7 +1969,7 @@ msgstr "" "Εγείρει ένα :ref:`auditing event ` ``builtins.id`` με όρισμα " "``id``." -#: library/functions.rst:976 +#: library/functions.rst:974 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, " @@ -1967,10 +1979,10 @@ msgstr "" "Εάν υπάρχει το όρισμα *prompt*, γράφεται στην τυπική έξοδο χωρίς μια νέα " "γραμμή μετάδοσης. Στη συνέχεια, η συνάρτηση διαβάζει μια γραμμή από την " "είσοδο, τη μετατρέπει σε μια συμβολοσειρά (με την αφαίρεση μιας νέας " -"γραμμής) και την επιστρέφει. Όταν διαβάζεται το EOF, γίνεται raise η :exc:" -"`EOFError`. Παράδειγμα::" +"γραμμής) και την επιστρέφει. Όταν διαβάζεται το EOF, γίνεται raise " +"η :exc:`EOFError`. Παράδειγμα::" -#: library/functions.rst:981 +#: library/functions.rst:979 msgid "" ">>> s = input('--> ')\n" "--> Monty Python's Flying Circus\n" @@ -1982,7 +1994,7 @@ msgstr "" ">>> s\n" "\"Monty Python's Flying Circus\"" -#: library/functions.rst:986 +#: library/functions.rst:984 msgid "" "If the :mod:`readline` module was loaded, then :func:`input` will use it to " "provide elaborate line editing and history features." @@ -1991,7 +2003,7 @@ msgstr "" "χρησιμοποιήσει για να παρέχει περίπλοκες λειτουργίες επεξεργασίας γραμμής " "και ιστορικού." -#: library/functions.rst:991 +#: library/functions.rst:989 msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt`` before reading input" @@ -1999,7 +2011,7 @@ msgstr "" "Κάνει raise ένα :ref:`auditing event ` ``builtins.input`` με " "όρισμα ``prompt`` προτού διαβάσει την είσοδο" -#: library/functions.rst:996 +#: library/functions.rst:994 msgid "" "Raises an :ref:`auditing event ` ``builtins.input/result`` with " "the result after successfully reading input." @@ -2007,7 +2019,7 @@ msgstr "" "Κάνει raise ένα :ref:`auditing event ` ``builtins.input/result`` " "με το αποτέλεσμα μετά την επιτυχή ανάγνωση των δεδομένων." -#: library/functions.rst:1003 +#: library/functions.rst:1001 msgid "" "Return an integer object constructed from a number or a string, or return " "``0`` if no arguments are given." @@ -2015,7 +2027,7 @@ msgstr "" "Επιστέφει έναν αριθμό κινητής υποδιαστολής που κατασκευάστηκε από έναν " "αριθμό ή μια συμβολοσειρά, ή επιστρέφει ``0`` εάν δεν δίνεται κάποιο όρισμα." -#: library/functions.rst:1008 +#: library/functions.rst:1006 msgid "" ">>> int(123.45)\n" "123\n" @@ -2043,18 +2055,19 @@ msgstr "" ">>> int('01110011', base=2)\n" "115" -#: library/functions.rst:1023 +#: library/functions.rst:1021 msgid "" -"If the argument defines :meth:`~object.__int__`, ``int(x)`` returns ``x." -"__int__()``. If the argument defines :meth:`~object.__index__`, it returns " -"``x.__index__()``. For floating-point numbers, this truncates towards zero." +"If the argument defines :meth:`~object.__int__`, ``int(x)`` returns " +"``x.__int__()``. If the argument defines :meth:`~object.__index__`, it " +"returns ``x.__index__()``. For floating-point numbers, this truncates " +"towards zero." msgstr "" -"Εάν το όρισμα ορίζει :meth:`~object.__int__`, ``int(x)`` επιστρέφει ``x." -"__int__()``. Εάν το όρισμα ορίζει :meth:`~object.__index__`, επιστρέφει ``x." -"__index__()``. Για αριθμούς κινητής υποδιαστολής, αυτό περικόπτεται προς το " -"μηδέν." +"Εάν το όρισμα ορίζει :meth:`~object.__int__`, ``int(x)`` επιστρέφει " +"``x.__int__()``. Εάν το όρισμα ορίζει :meth:`~object.__index__`, επιστρέφει " +"``x.__index__()``. Για αριθμούς κινητής υποδιαστολής, αυτό περικόπτεται προς " +"το μηδέν." -#: library/functions.rst:1028 +#: library/functions.rst:1026 msgid "" "If the argument is not a number or if *base* is given, then it must be a " "string, :class:`bytes`, or :class:`bytearray` instance representing an " @@ -2069,7 +2082,7 @@ msgstr "" "μηδενικά, να περιβάλλεται από κενό διάστημα και να έχει μονές υπογραμμίσεις " "διάσπαρτες μεταξύ των ψηφίων." -#: library/functions.rst:1034 +#: library/functions.rst:1032 msgid "" "A base-n integer string contains digits, each representing a value from 0 to " "n-1. The values 0--9 can be represented by any Unicode decimal digit. The " @@ -2095,28 +2108,28 @@ msgstr "" "βάση 0 δεν επιτρέπει επίσης τα μηδενικά στην αρχή : ``int('010', 0)`` δεν " "είναι εφικτό, ενώ το ``int('010')`` και ``int('010', 8)`` είναι." -#: library/functions.rst:1045 +#: library/functions.rst:1043 msgid "The integer type is described in :ref:`typesnumeric`." msgstr "Ο ακέραιος τύπος περιγράφεται στο :ref:`typesnumeric`." -#: library/functions.rst:1047 +#: library/functions.rst:1045 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 " +"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 "" "Εάν το *base* δεν είναι ένα instance της :class:`int` και το *base* " "αντικείμενο έχει μια μέθοδο :meth:`base.__index__ `, αυτή " "η μέθοδος καλείται για να αποκτήσει τον ακέραιο της βάσης. Προηγούμενες " -"εκδόσεις χρησιμοποιούσαν την :meth:`base.__int__ ` αντί της :" -"meth:`base.__index__ `." +"εκδόσεις χρησιμοποιούσαν την :meth:`base.__int__ ` αντί " +"της :meth:`base.__index__ `." -#: library/functions.rst:1057 +#: library/functions.rst:1055 msgid "The first parameter is now positional-only." msgstr "Η πρώτη παράμετρος είναι πλέον μόνο θέσεως." -#: library/functions.rst:1060 +#: library/functions.rst:1058 msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__int__` is not " "defined." @@ -2124,28 +2137,29 @@ msgstr "" "Επιστρέφει πίσω στη :meth:`~object.__index__` αν η :meth:`~object.__int__` " "δεν έχει οριστεί." -#: library/functions.rst:1063 +#: library/functions.rst:1061 msgid "" ":class:`int` string inputs and string representations can be limited to help " "avoid denial of service attacks. A :exc:`ValueError` is raised when the " "limit is exceeded while converting a string to an :class:`int` or when " -"converting an :class:`int` into a string would exceed the limit. See the :" -"ref:`integer string conversion length limitation ` " +"converting an :class:`int` into a string would exceed the limit. See " +"the :ref:`integer string conversion length limitation ` " "documentation." msgstr "" "Οι είσοδοι συμβολοσειράς και οι αναπαραστάσεις συμβολοσειρών :class:`int` " -"μπορούν να περιοριστούν για να αποφευχθούν επιθέσεις άρνησης υπηρεσίας. Μια :" -"exc:`ValueError` γίνεται raise όταν γίνεται υπέρβαση του ορίου κατά τη " -"μετατροπή μιας συμβολοσειράς σε μια :class:`int` ή κατά τη μετατροπή ενός :" -"class:`int` σε μια συμβολοσειρά θα υπερβεί το όριο. Δείτε την τεκμηρίωση :" -"ref:`integer string conversion length limitation `." +"μπορούν να περιοριστούν για να αποφευχθούν επιθέσεις άρνησης υπηρεσίας. " +"Μια :exc:`ValueError` γίνεται raise όταν γίνεται υπέρβαση του ορίου κατά τη " +"μετατροπή μιας συμβολοσειράς σε μια :class:`int` ή κατά τη μετατροπή " +"ενός :class:`int` σε μια συμβολοσειρά θα υπερβεί το όριο. Δείτε την " +"τεκμηρίωση :ref:`integer string conversion length limitation " +"`." -#: library/functions.rst:1071 +#: library/functions.rst:1069 msgid "" ":func:`int` no longer delegates to the :meth:`~object.__trunc__` method." msgstr "Η :func:`int` δεν αναθέτει πλέον στη μέθοδο :meth:`~object.__trunc__`." -#: library/functions.rst:1076 +#: library/functions.rst:1074 msgid "" "Return ``True`` if the *object* argument is an instance of the *classinfo* " "argument, or of a (direct, indirect, or :term:`virtual `) of *classinfo*. A class is considered a " -"subclass of itself. *classinfo* may be a tuple of class objects (or " -"recursively, other such tuples) or a :ref:`types-union`, in which case " +"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 " +"(or recursively, other such tuples) or a :ref:`types-union`, in which case " "return ``True`` if *class* is a subclass of any entry in *classinfo*. In " "any other case, a :exc:`TypeError` exception is raised." msgstr "" -"Επιστρέφει ``True`` εάν η *class* είναι μια υποκλάση (άμεση, έμμεση, ή :term:" -"`virtual `) του *classinfo*. Μια κλάση θεωρείται " -"υποκλάση του εαυτού της. Το *classinfo* μπορεί να είναι μια πλειάδα (tuple) " -"αντικειμένων κλάσης (ή αναδρομικά, άλλες τέτοιες πλειάδες) ή μια :ref:`types-" -"union`, οπότε επιστρέφετε ``True`` εάν η *class* είναι υποκλάση οποιασδήποτε " -"καταχώρισης στο *classinfo*. Σε οποιαδήποτε άλλη περίπτωση, γίνεται raise " -"μια εξαίρεση :exc:`TypeError`." +"Επιστρέφει ``True`` εάν η *class* είναι μια υποκλάση (άμεση, έμμεση, " +"ή :term:`virtual `) του *classinfo*. Μια κλάση " +"θεωρείται υποκλάση του εαυτού της. Το *classinfo* μπορεί να είναι μια " +"πλειάδα (tuple) αντικειμένων κλάσης (ή αναδρομικά, άλλες τέτοιες πλειάδες) ή " +"μια :ref:`types-union`, οπότε επιστρέφετε ``True`` εάν η *class* είναι " +"υποκλάση οποιασδήποτε καταχώρισης στο *classinfo*. Σε οποιαδήποτε άλλη " +"περίπτωση, γίνεται raise μια εξαίρεση :exc:`TypeError`." -#: library/functions.rst:1108 +#: library/functions.rst:1106 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 :" -"term:`iterable` protocol (the :meth:`~object.__iter__` method), or it must " -"support the sequence protocol (the :meth:`~object.__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 " +"second argument, the single argument must be a collection object which " +"supports the :term:`iterable` protocol (the :meth:`~object.__iter__` " +"method), or it must support the sequence protocol " +"(the :meth:`~object.__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 the first " +"argument must be a callable object. The iterator created in this case will " +"call *callable* 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 "" "Επιστρέφετε ένα αντικείμενο :term:`iterator`. Το πρώτο όρισμα ερμηνεύεται " "πολύ διαφορετικά ανάλογα με την παρουσία του δεύτερου ορίσματος. Χωρίς " -"δεύτερο όρισμα, το *object* πρέπει να είναι ένα αντικείμενο συλλογής που να " -"υποστηρίζει το πρωτόκολλο :term:`iterable` (η μέθοδος :meth:`~object." -"__iter__`), ή πρέπει να υποστηρίζει το πρωτόκολλο ακολουθίας (η μέθοδος :" -"meth:`~object.__getitem__` με ακέραια ορίσματα που ξεκινούν από ``0``). Εάν " -"δεν υποστηρίζει κανένα από αυτά τα πρωτόκολλα, γίνεται raise μια :exc:" -"`TypeError`. Εάν δοθεί το δεύτερο όρισμα *sentinel*, τότε το *object* πρέπει " -"να είναι ένα callable αντικείμενο. Ο iterator που δημιουργήθηκε σε αυτή την " -"περίπτωση θα καλέσει το *object* χωρίς ορίσματα για κάθε κλήση στη μέθοδο :" -"meth:`~iterator.__next__` ∙ εάν η τιμή που επιστρέφεται είναι ίση με " -"*sentinel*, θα γίνει raise η :exc:`StopIteration`, διαφορετικά θα επιστραφεί " -"η τιμή." - -#: library/functions.rst:1122 +"δεύτερο όρισμα, το μόνο όρισμα πρέπει να είναι ένα αντικείμενο συλλογής που " +"υποστηρίζει το πρωτόκολλο :term:`iterable` (τη " +"μέθοδο :meth:`~object.__iter__`), ή πρέπει να υποστηρίζει το πρωτόκολλο " +"ακολουθίας (τη μέθοδο :meth:`~object.__getitem__` με ακέραια ορίσματα που " +"ξεκινούν από το ``0``). Εάν δεν υποστηρίζει κανένα από αυτά τα πρωτόκολλα, " +"γίνεται raise μια :exc:`TypeError`. Εάν το δεύτερο όρισμα, *sentinel*, " +"δίνεται, τότε το πρώτο όρισμα πρέπει να είναι ένα callable αντικείμενο. Ο " +"iterator που δημιουργείται σε αυτή την περίπτωση θα καλεί το *callable* " +"χωρίς ορίσματα για κάθε κλήση της μεθόδου :meth:`~iterator.__next__` του; " +"εάν η τιμή που επιστρέφεται είναι ίση με το *sentinel*, θα γίνει raise " +"μια :exc:`StopIteration`, διαφορετικά η τιμή θα επιστραφεί." + +#: library/functions.rst:1120 msgid "See also :ref:`typeiter`." msgstr "Δείτε επίσης :ref:`typeiter`." -#: library/functions.rst:1124 +#: library/functions.rst:1122 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 " @@ -2233,7 +2248,7 @@ msgstr "" "ενός block-reader. Για παράδειγμα, η ανάγνωση μπλοκ σταθερού πλάτους από ένα " "δυαδικό αρχείο βάσης δεδομένων μέχρι να φτάσει στο τέλος του αρχείου::" -#: library/functions.rst:1128 +#: library/functions.rst:1126 msgid "" "from functools import partial\n" "with open('mydata.db', 'rb') as f:\n" @@ -2245,7 +2260,7 @@ msgstr "" " for block in iter(partial(f.read, 64), b''):\n" " process_block(block)" -#: library/functions.rst:1136 +#: library/functions.rst:1134 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 " @@ -2256,15 +2271,15 @@ msgstr "" "πλειάδα, λίστα, ή εύρος) ή μια συλλογή (όπως ένα λεξικό, ένα σετ, ή ένα " "παγωμένο σετ)." -#: library/functions.rst:1142 +#: library/functions.rst:1140 msgid "" -"``len`` raises :exc:`OverflowError` on lengths larger than :data:`sys." -"maxsize`, such as :class:`range(2 ** 100) `." +"``len`` raises :exc:`OverflowError` on lengths larger " +"than :data:`sys.maxsize`, such as :class:`range(2 ** 100) `." msgstr "" "Το ``len`` κάνει raise μια :exc:`OverflowError` σε μήκη τα οποία είναι " "μεγαλύτερα από :data:`sys.maxsize`, όπως :class:`range(2 ** 100) `." -#: library/functions.rst:1151 +#: library/functions.rst:1148 msgid "" "Rather than being a function, :class:`list` is actually a mutable sequence " "type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." @@ -2273,7 +2288,7 @@ msgstr "" "μεταβλητός τύπος ακολουθίας, όπως τεκμηριώνεται στα :ref:`typesseq-list` " "και :ref:`typesseq`." -#: library/functions.rst:1157 +#: library/functions.rst:1154 msgid "" "Return a mapping object representing the current local symbol table, with " "variable names as the keys, and their currently bound references as the " @@ -2283,17 +2298,17 @@ msgstr "" "πίνακα συμβόλων, με τα ονόματα μεταβλητών ως κλειδιά και τις αντίστοιχες " "τιμές στις οποίες είναι δεσμευμένες ως τιμές." -#: library/functions.rst:1161 +#: library/functions.rst:1158 msgid "" "At module scope, as well as when using :func:`exec` or :func:`eval` with a " -"single namespace, this function returns the same namespace as :func:" -"`globals`." +"single namespace, this function returns the same namespace " +"as :func:`globals`." msgstr "" -"Στο επίπεδο module, καθώς και όταν χρησιμοποιείται η :func:`exec` ή η :func:" -"`eval` με έναν μόνο χώρο ονομάτων, αυτή η συνάρτηση επιστρέφει τον ίδιο χώρο " -"ονομάτων με τη :func:`globals`." +"Στο επίπεδο module, καθώς και όταν χρησιμοποιείται η :func:`exec` ή " +"η :func:`eval` με έναν μόνο χώρο ονομάτων, αυτή η συνάρτηση επιστρέφει τον " +"ίδιο χώρο ονομάτων με τη :func:`globals`." -#: library/functions.rst:1165 +#: library/functions.rst:1162 msgid "" "At class scope, it returns the namespace that will be passed to the " "metaclass constructor." @@ -2301,7 +2316,7 @@ msgstr "" "Στο πεδίο ορισμού κλάσης, επιστρέφει τον χώρο ονομάτων που θα περαστεί στον " "κατασκευαστή της μετακλάσης." -#: library/functions.rst:1168 +#: library/functions.rst:1165 msgid "" "When using ``exec()`` or ``eval()`` with separate local and global " "arguments, it returns the local namespace passed in to the function call." @@ -2310,7 +2325,7 @@ msgstr "" "global ορίσματα, επιστρέφει στον τοπικό χώρο ονομάτων που περάστηκε στην " "κλήση της συνάρτησης." -#: library/functions.rst:1171 +#: library/functions.rst:1168 msgid "" "In all of the above cases, each call to ``locals()`` in a given frame of " "execution will return the *same* mapping object. Changes made through the " @@ -2327,7 +2342,7 @@ msgstr "" "επανακαθορισμός ή διαγραφή τοπικών μεταβλητών θα επηρεάζει άμεσα τα " "περιεχόμενα του επιστρεφόμενου αντικειμένου αντιστοίχισης." -#: library/functions.rst:1178 +#: library/functions.rst:1175 msgid "" "In an :term:`optimized scope` (including functions, generators, and " "coroutines), each call to ``locals()`` instead returns a fresh dictionary " @@ -2348,7 +2363,7 @@ msgstr "" "τοπικών ή μη τοπικών μεταβλητών *δεν* επηρεάζει το περιεχόμενο των λεξικών " "που είχαν επιστραφεί προηγουμένως." -#: library/functions.rst:1187 +#: library/functions.rst:1184 msgid "" "Calling ``locals()`` as part of a comprehension in a function, generator, or " "coroutine is equivalent to calling it in the containing scope, except that " @@ -2363,7 +2378,7 @@ msgstr "" "στο αποτέλεσμα. Σε άλλα πεδία ορατότητας, η συμπεριφορά είναι σαν η σύμπτυξη " "να εκτελείται ως μια εμφωλευμένη συνάρτηση." -#: library/functions.rst:1193 +#: library/functions.rst:1190 msgid "" "Calling ``locals()`` as part of a generator expression is equivalent to " "calling it in a nested generator function." @@ -2371,7 +2386,7 @@ msgstr "" "Καλώντας την ``locals()`` ως μέρος μιας έκφρασης γεννήτριας είναι ισοδύναμη " "με την κλήση της μέσα σε μια εμφωλευμένη συνάρτηση γεννήτριας." -#: library/functions.rst:1196 +#: library/functions.rst:1193 msgid "" "The behaviour of ``locals()`` in a comprehension has been updated as " "described in :pep:`709`." @@ -2379,13 +2394,13 @@ msgstr "" "Η συμπεριφορά της ``locals()`` μέσα σε μια έκφραση σύμπτυξης έχει ενημερωθεί " "όπως περιγράφεται στην :pep:`709`." -#: library/functions.rst:1200 +#: library/functions.rst:1197 msgid "" "As part of :pep:`667`, the semantics of mutating the mapping objects " -"returned from this function are now defined. The behavior in :term:" -"`optimized scopes ` is now as described above. Aside from " -"being defined, the behaviour in other scopes remains unchanged from previous " -"versions." +"returned from this function are now defined. The behavior " +"in :term:`optimized scopes ` is now as described above. " +"Aside from being defined, the behaviour in other scopes remains unchanged " +"from previous versions." msgstr "" "Στο πλαίσιο της :pep:`667`, τα σημασιολογικά χαρακτηριστικά της τροποποίησης " "των αντικειμένων αντιστοιχίσεων που επιστρέφονται από αυτήν τη συνάρτηση " @@ -2394,7 +2409,7 @@ msgstr "" "ορισμένη, η συμπεριφορά σε άλλα πεδία παραμένει αμετάβλητη σε σχέση με " "προηγούμενες εκδόσεις." -#: library/functions.rst:1210 +#: library/functions.rst:1207 msgid "" "Return an iterator that applies *function* to every item of *iterable*, " "yielding the results. If additional *iterables* arguments are passed, " @@ -2412,14 +2427,14 @@ msgstr "" "iterator σταματά όταν εξαντληθεί ο συντομότερος iterable. Εάν το *strict* " "είναι ``True`` και μία από τα iterables εξαντληθεί πριν από τις άλλες, " "γίνεται raise μια :exc:`ValueError`. Για περιπτώσεις όπου οι είσοδοι " -"συνάρτησης είναι ήδη διατεταγμένες σε πλειάδες ορισμάτων, βλέπε :func:" -"`itertools.starmap`\\." +"συνάρτησης είναι ήδη διατεταγμένες σε πλειάδες ορισμάτων, " +"βλέπε :func:`itertools.starmap`\\." -#: library/functions.rst:1219 +#: library/functions.rst:1216 msgid "Added the *strict* parameter." msgstr "Προστέθηκε η παράμετρος *strict*." -#: library/functions.rst:1227 +#: library/functions.rst:1224 msgid "" "Return the largest item in an iterable or the largest of two or more " "arguments." @@ -2427,7 +2442,7 @@ msgstr "" "Επιστρέφει το μεγαλύτερο στοιχείο σε ένα iterable ή το μεγαλύτερο από δύο ή " "περισσότερα ορίσματα." -#: library/functions.rst:1230 +#: library/functions.rst:1227 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 " @@ -2437,51 +2452,51 @@ msgstr "" "Επιστρέφεται το μεγαλύτερο στοιχείο στο iterable. Εάν παρέχονται δύο ή " "περισσότερα ορίσματα θέσης, επιστρέφεται το μεγαλύτερο από τα ορίσματα θέσης." -#: library/functions.rst:1273 +#: library/functions.rst:1270 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." +"empty. If the iterable is empty and *default* is not provided, " +"a :exc:`ValueError` is raised." msgstr "" "Υπάρχουν δύο προαιρετικά ορίσματα τύπου λέξη-κλειδί. Το όρισμα *key* " "καθορίζει μια συνάρτηση ταξινόμησης ενός ορίσματος όπως αυτή χρησιμοποιείται " "για το :meth:`list.sort`. Το όρισμα *default* καθορίζει ένα αντικείμενο που " "θα επιστρέψει εάν το iterable που παρέχεται είναι κενό. Εάν το iterable " -"είναι κενό και το *default* δεν παρέχεται, γίνεται raise μια :exc:" -"`ValueError`." +"είναι κενό και το *default* δεν παρέχεται, γίνεται raise " +"μια :exc:`ValueError`." -#: library/functions.rst:1241 +#: library/functions.rst:1238 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)``." +"such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and " +"``heapq.nlargest(1, iterable, key=keyfunc)``." msgstr "" "Εάν πολλά στοιχεία είναι μέγιστα, η συνάρτηση επιστρέφει το πρώτο που " "συναντήθηκε. Αυτό είναι σύμφωνο με άλλα εργαλεία διατήρησης σταθερότητας " "ταξινόμησης όπως ``sorted(iterable, key=keyfunc, reverse=True)[0]`` και " "``heapq.nlargest(1, iterable, key=keyfunc)``." -#: library/functions.rst:1284 +#: library/functions.rst:1281 msgid "Added the *default* keyword-only parameter." msgstr "Προστέθηκε η παράμετρος μόνο λέξης-κλειδί *default*." -#: library/functions.rst:1287 +#: library/functions.rst:1284 msgid "The *key* can be ``None``." msgstr "Το *key* μπορεί να είναι ``None``." -#: library/functions.rst:1257 +#: library/functions.rst:1254 msgid "" -"Return a \"memory view\" object created from the given argument. See :ref:" -"`typememoryview` for more information." +"Return a \"memory view\" object created from the given argument. " +"See :ref:`typememoryview` for more information." msgstr "" "Επιστρέφει ένα αντικείμενο \"memory view\" που δημιουργήθηκε από το " "συγκεκριμένο όρισμα. Βλέπε :ref:`typememoryview` για περισσότερες " "λεπτομέρειες." -#: library/functions.rst:1265 +#: library/functions.rst:1262 msgid "" "Return the smallest item in an iterable or the smallest of two or more " "arguments." @@ -2489,7 +2504,7 @@ msgstr "" "Επιστρέφει το μικρότερο στοιχείο σε έναν iterable ή το μικρότερο από δύο ή " "περισσότερα ορίσματα." -#: library/functions.rst:1268 +#: library/functions.rst:1265 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 " @@ -2499,7 +2514,7 @@ msgstr "" "Επιστρέφει το μικρότερο στοιχείο στον iterable. Εάν παρέχονται δύο ή " "περισσότερα ορίσματα θέσης, επιστρέφεται το μικρότερο από τα ορίσματα θέσης." -#: library/functions.rst:1279 +#: library/functions.rst:1276 msgid "" "If multiple items are minimal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " @@ -2508,20 +2523,21 @@ msgid "" msgstr "" "Εάν πολλά στοιχεία είναι ελάχιστα, η συνάρτηση επιστρέφει το πρώτο που " "συναντήθηκε. Αυτό είναι σύμφωνο με άλλα εργαλεία διατήρησης σταθερότητας " -"ταξινόμησης, όπως ``sorted(iterable, key=keyfunc)[0]`` και ``heapq." -"nsmallest(1, iterable, key=keyfunc)``." +"ταξινόμησης, όπως ``sorted(iterable, key=keyfunc)[0]`` και " +"``heapq.nsmallest(1, iterable, key=keyfunc)``." -#: library/functions.rst:1294 +#: library/functions.rst:1291 msgid "" -"Retrieve the next item from the :term:`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." +"Retrieve the next item from the :term:`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 "" -"Ανάκτηση του επόμενου στοιχείο από το :term:`iterator` καλώντας τη μέθοδο :" -"meth:`~iterator.__next__`. Εάν δοθεί *default*, επιστρέφεται εάν ο iterator " -"έχει εξαντληθεί, διαφορετικά γίνεται raise μια :exc:`StopIteration`." +"Ανάκτηση του επόμενου στοιχείο από το :term:`iterator` καλώντας τη " +"μέθοδο :meth:`~iterator.__next__`. Εάν δοθεί *default*, επιστρέφεται εάν ο " +"iterator έχει εξαντληθεί, διαφορετικά γίνεται raise μια :exc:`StopIteration`." -#: library/functions.rst:1301 +#: library/functions.rst:1298 msgid "" "This is the ultimate base class of all other classes. It has methods that " "are common to all instances of Python classes. When the constructor is " @@ -2533,28 +2549,29 @@ msgstr "" "κατασκευαστής, επιστρέφει ένα νέο αντικείμενο χωρίς χαρακτηριστικά. Ο " "κατασκευαστής δεν δέχεται ορίσματα." -#: library/functions.rst:1308 +#: library/functions.rst:1305 msgid "" ":class:`object` instances do *not* have :attr:`~object.__dict__` attributes, " "so you can't assign arbitrary attributes to an instance of :class:`object`." msgstr "" -"Τα στιγμιότυπα :class:`object` *δεν* έχουν χαρακτηριστικά :attr:`~object." -"__dict__`, επομένως δεν μπορείτε να εκχωρήσετε αυθαίρετα χαρακτηριστικά σε " -"ένα στιγμιότυπο του :class:`object`." +"Τα στιγμιότυπα :class:`object` *δεν* έχουν " +"χαρακτηριστικά :attr:`~object.__dict__`, επομένως δεν μπορείτε να εκχωρήσετε " +"αυθαίρετα χαρακτηριστικά σε ένα στιγμιότυπο του :class:`object`." -#: library/functions.rst:1315 +#: library/functions.rst:1312 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:`~object.__index__` method that returns an " -"integer. For example:" +"result is a valid Python expression. If *integer* is not a " +"Python :class:`int` object, it has to define an :meth:`~object.__index__` " +"method that returns an integer. For example:" msgstr "" "Μετατρέπει έναν ακέραιο αριθμό σε μια οκταδική συμβολοσειρά με πρόθεμα " -"\"0o\". Το αποτέλεσμα είναι μια έγκυρη έκφραση Python. Εάν το *x* δεν είναι " -"ένα αντικείμενο Python :class:`int`, πρέπει να ορίσει μια μέθοδο :meth:" -"`~object.__index__` που επιστρέφει έναν ακέραιο αριθμό. Για παράδειγμα:" +"\"0o\". Το αποτέλεσμα είναι μια έγκυρη έκφραση Python. Εάν το *integer* δεν " +"είναι ένα αντικείμενο Python :class:`int`, πρέπει να ορίσει μια " +"μέθοδο :meth:`~object.__index__` που επιστρέφει έναν ακέραιο αριθμό. Για " +"παράδειγμα:" -#: library/functions.rst:1325 +#: library/functions.rst:1322 msgid "" "If you want to convert an integer number to an octal string either with the " "prefix \"0o\" or not, you can use either of the following ways." @@ -2563,17 +2580,17 @@ msgstr "" "με το πρόθεμα \"0o\" είτε όχι, μπορείτε να χρησιμοποιήσετε έναν από τους " "παρακάτω τρόπους." -#: library/functions.rst:1342 +#: library/functions.rst:1339 msgid "" "Open *file* and return a corresponding :term:`file object`. If the file " "cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more " "examples of how to use this function." msgstr "" "Ανοίγει το *file* και επιστρέφει ένα αντίστοιχο :term:`file object`. Εάν το " -"αρχείο δεν μπορεί να ανοίξει, γίνεται raise μια :exc:`OSError`. Δείτε το :" -"ref:`tut-files` για περισσότερα παραδείγματα χρήσης αυτής της συνάρτησης." +"αρχείο δεν μπορεί να ανοίξει, γίνεται raise μια :exc:`OSError`. Δείτε " +"το :ref:`tut-files` για περισσότερα παραδείγματα χρήσης αυτής της συνάρτησης." -#: library/functions.rst:1346 +#: library/functions.rst:1343 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 " @@ -2588,7 +2605,7 @@ msgstr "" "επιστρεφόμενο αντικείμενο I/O είναι κλειστό εκτός εάν *closefd* έχει οριστεί " "ως ``False``.)" -#: library/functions.rst:1352 +#: library/functions.rst:1349 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. " @@ -2596,10 +2613,10 @@ msgid "" "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: :func:" -"`locale.getencoding` 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:" +"*encoding* is not specified the encoding used is platform-" +"dependent: :func:`locale.getencoding` 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* είναι μια προαιρετική συμβολοσειρά που καθορίζει τη λειτουργία " "στην οποία ανοίγει το αρχείο. Από προεπιλογή είναι ``'r'`` που σημαίνει " @@ -2615,72 +2632,72 @@ msgstr "" "λειτουργία και αφήνουν το *encoding* απροσδιόριστο.) Οι διαθέσιμες " "λειτουργίες είναι:" -#: library/functions.rst:1369 +#: library/functions.rst:1366 msgid "Character" msgstr "Χαρακτήρας" -#: library/functions.rst:1369 +#: library/functions.rst:1366 msgid "Meaning" msgstr "Έννοια" -#: library/functions.rst:1371 +#: library/functions.rst:1368 msgid "``'r'``" msgstr "``'r'``" -#: library/functions.rst:1371 +#: library/functions.rst:1368 msgid "open for reading (default)" msgstr "άνοιγμα για ανάγνωση (default)" -#: library/functions.rst:1372 +#: library/functions.rst:1369 msgid "``'w'``" msgstr "``'w'``" -#: library/functions.rst:1372 +#: library/functions.rst:1369 msgid "open for writing, truncating the file first" msgstr "άνοιγμα για εγγραφή, περικόπτοντας πρώτα το αρχείο" -#: library/functions.rst:1373 +#: library/functions.rst:1370 msgid "``'x'``" msgstr "``'x'``" -#: library/functions.rst:1373 +#: library/functions.rst:1370 msgid "open for exclusive creation, failing if the file already exists" msgstr "" "άνοιγμα για αποκλειστική δημιουργία, αποτυγχάνοντας εάν το αρχείο υπάρχει ήδη" -#: library/functions.rst:1374 +#: library/functions.rst:1371 msgid "``'a'``" msgstr "``'a'``" -#: library/functions.rst:1374 +#: library/functions.rst:1371 msgid "open for writing, appending to the end of file if it exists" msgstr "άνοιγμα για εγγραφή, προσαρτάται στο τέλος του αρχείου εάν υπάρχει" -#: library/functions.rst:1375 +#: library/functions.rst:1372 msgid "``'b'``" msgstr "``'b'``" -#: library/functions.rst:1519 +#: library/functions.rst:1516 msgid "binary mode" msgstr "δυαδική (binary) λειτουργία" -#: library/functions.rst:1376 +#: library/functions.rst:1373 msgid "``'t'``" msgstr "``'t'``" -#: library/functions.rst:1376 +#: library/functions.rst:1373 msgid "text mode (default)" msgstr "λειτουργία κειμένου (default)" -#: library/functions.rst:1377 +#: library/functions.rst:1374 msgid "``'+'``" msgstr "``'+'``" -#: library/functions.rst:1377 +#: library/functions.rst:1374 msgid "open for updating (reading and writing)" msgstr "άνοιγμα για ενημέρωση (ανάγνωση και εγγραφή)" -#: library/functions.rst:1380 +#: library/functions.rst:1377 msgid "" "The default mode is ``'r'`` (open for reading text, a synonym of ``'rt'``). " "Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'`` and " @@ -2691,7 +2708,7 @@ msgstr "" "περικόβει το αρχείο. Οι λειτουργίες ``'r+'`` and ``'r+b'`` ανοίγουν το " "αρχείο χωρίς περικοπή." -#: library/functions.rst:1384 +#: library/functions.rst:1381 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* " @@ -2710,7 +2727,7 @@ msgstr "" "bytes έχουν πρώτα αποκωδικοποιηθεί χρησιμοποιώντας μια εξαρτώμενη από " "πλατφόρμα κωδικοποίηση ή χρήση της καθορισμένης *κωδικοποίησης* εάν δίνεται." -#: library/functions.rst:1394 +#: library/functions.rst:1391 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 " @@ -2720,7 +2737,7 @@ msgstr "" "λειτουργικού συστήματος∙ όλη η επεξεργασία γίνεται από την ίδια την Python " "και επομένως είναι ανεξάρτητη από την πλατφόρμα." -#: library/functions.rst:1398 +#: library/functions.rst:1395 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 " @@ -2747,7 +2764,7 @@ msgstr "" "δίνεται όρισμα *buffering*, η προεπιλεγμένη πολιτική προσωρινής αποθήκευσης " "λειτουργεί ως εξής:" -#: library/functions.rst:1408 +#: library/functions.rst:1405 msgid "" "Binary files are buffered in fixed-size chunks; the size of the buffer is " "``max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE)`` when the device block " @@ -2759,18 +2776,18 @@ msgstr "" "DEFAULT_BUFFER_SIZE)`` όταν το μέγεθος μπλοκ της συσκευής είναι διαθέσιμο. " "Στα περισσότερα συστήματα, το buffer θα έχει συνήθως μήκος 128 kilobytes." -#: library/functions.rst:1413 +#: library/functions.rst:1410 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 "" -"\"Interactive\" αρχεία κειμένου (αρχεία για τα οποία το :meth:`~io.IOBase." -"isatty` επιστρέφει ``True``) χρησιμοποιούν αποθήκευση γραμμής. Άλλα αρχεία " -"κειμένου χρησιμοποιούν την πολιτική που περιγράφεται παραπάνω για δυαδικά " -"αρχεία." +"\"Interactive\" αρχεία κειμένου (αρχεία για τα οποία " +"το :meth:`~io.IOBase.isatty` επιστρέφει ``True``) χρησιμοποιούν αποθήκευση " +"γραμμής. Άλλα αρχεία κειμένου χρησιμοποιούν την πολιτική που περιγράφεται " +"παραπάνω για δυαδικά αρχεία." -#: library/functions.rst:1417 +#: library/functions.rst:1414 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 " @@ -2785,13 +2802,14 @@ msgstr "" "οποιοδήποτε :term:`text encoding` που υποστηρίζεται από την Python. Δείτε το " "module :mod:`codecs` για τη λίστα των υποστηριζόμενων κωδικοποιήσεων." -#: library/functions.rst:1423 +#: library/functions.rst:1420 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:" +"though any error handling name that has been registered " +"with :func:`codecs.register_error` is also valid. The standard names " +"include:" msgstr "" "Το *errors* είναι μια προαιρετική συμβολοσειρά που καθορίζει τον τρόπο " "χειρισμού των σφαλμάτων κωδικοποίησης και αποκωδικοποίησης-αυτό δεν μπορεί " @@ -2801,7 +2819,7 @@ msgstr "" "το :func:`codecs.register_error` είναι επίσης έγκυρο. Τα τυπικά ονόματα " "περιλαμβάνουν:" -#: library/functions.rst:1431 +#: library/functions.rst:1428 msgid "" "``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " "error. The default value of ``None`` has the same effect." @@ -2810,7 +2828,7 @@ msgstr "" "σφάλμα κωδικοποίησης. Η προεπιλεγμένη τιμή του ``None`` έχει το ίδιο " "αποτέλεσμα." -#: library/functions.rst:1435 +#: library/functions.rst:1432 msgid "" "``'ignore'`` ignores errors. Note that ignoring encoding errors can lead to " "data loss." @@ -2818,7 +2836,7 @@ msgstr "" "Το ``'ignore'`` αγνοεί τα σφάλματα. Σημειώστε ότι η παράβλεψη σφαλμάτων " "κωδικοποίησης μπορεί να οδηγήσει σε απώλεια δεδομένων." -#: library/functions.rst:1438 +#: library/functions.rst:1435 msgid "" "``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " "where there is malformed data." @@ -2826,7 +2844,7 @@ msgstr "" "Το ``'replace'`` προκαλεί την εισαγωγή ενός δείκτη αντικατάστασης (όπως " "``'?'``) όταν υπάρχουν δεδομένα με λανθασμένη μορφή." -#: library/functions.rst:1441 +#: library/functions.rst:1438 msgid "" "``'surrogateescape'`` will represent any incorrect bytes as low surrogate " "code units ranging from U+DC80 to U+DCFF. These surrogate code units will " @@ -2841,7 +2859,7 @@ msgstr "" "εγγραφή δεδομένων. Αυτό είναι χρήσιμο για την επεξεργασία αρχείων σε " "άγνωστη κωδικοποίηση." -#: library/functions.rst:1448 +#: library/functions.rst:1445 msgid "" "``'xmlcharrefreplace'`` is only supported when writing to a file. Characters " "not supported by the encoding are replaced with the appropriate XML " @@ -2851,7 +2869,7 @@ msgstr "" "χαρακτήρες που δεν υποστηρίζονται από την κωδικοποίηση αντικαθίστανται με " "την κατάλληλη αναφορά χαρακτήρων XML :samp:`&#{nnn};`." -#: library/functions.rst:1452 +#: library/functions.rst:1449 msgid "" "``'backslashreplace'`` replaces malformed data by Python's backslashed " "escape sequences." @@ -2859,7 +2877,7 @@ msgstr "" "Το ``'backslashreplace'`` αντικαθιστά δεδομένα με λανθασμένη μορφή από τις " "ακολουθίες διαφυγής με ανάστροφης καθέτου Python." -#: library/functions.rst:1455 +#: library/functions.rst:1452 msgid "" "``'namereplace'`` (also only supported when writing) replaces unsupported " "characters with ``\\N{...}`` escape sequences." @@ -2867,7 +2885,7 @@ msgstr "" "Το ``'namereplace'`` (υποστηρίζεται επίσης μόνο κατά τη σύνταξη) αντικαθιστά " "τους μη υποστηριζόμενους χαρακτήρες με ακολουθίες διαφυγής ``\\N{...}``." -#: library/functions.rst:1463 +#: library/functions.rst:1460 msgid "" "*newline* determines how to parse newline characters from the stream. It can " "be ``None``, ``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as " @@ -2877,7 +2895,7 @@ msgstr "" "ροή. Μπορεί να είναι και ``None``, ``''``, ``'\\n'``, ``'\\r'``, και " "``'\\r\\n'``. Λειτουργεί ως εξής:" -#: library/functions.rst:1467 +#: library/functions.rst:1464 msgid "" "When reading input from the stream, if *newline* is ``None``, universal " "newlines mode is enabled. Lines in the input can end in ``'\\n'``, " @@ -2897,13 +2915,13 @@ msgstr "" "δεδομένη συμβολοσειρά και η κατάληξη γραμμής επιστρέφεται στον καλούντα " "αμετάφραστη." -#: library/functions.rst:1475 +#: library/functions.rst:1472 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." +"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 "" "Κατά την εγγραφή εξόδου στη ροή, εάν το *newline* είναι ``None``, τυχόν " "χαρακτήρες ``'\\n'`` μεταφράζονται στο διαχωριστικό προεπιλεγμένων γραμμών " @@ -2912,7 +2930,7 @@ msgstr "" "από τις άλλες νόμιμες τιμές, γράφονται οποιοιδήποτε χαρακτήρες ``'\\n'`` " "μεταφράζονται στη δεδομένη συμβολοσειρά." -#: library/functions.rst:1481 +#: library/functions.rst:1478 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 " @@ -2925,7 +2943,7 @@ msgstr "" "*closefd* πρέπει να είναι ``True`` (η προεπιλογή)∙ διαφορετικά, θα προκύψει " "ένα σφάλμα." -#: library/functions.rst:1486 +#: library/functions.rst:1483 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 " @@ -2940,21 +2958,21 @@ msgstr "" "αρχείου (περνώντας :mod:`os.open` ως *opener* έχει ως αποτέλεσμα " "λειτουργικότητας παρόμοια με το να περάσουμε το ``None``)." -#: library/functions.rst:1492 +#: library/functions.rst:1489 msgid "The newly created file is :ref:`non-inheritable `." msgstr "" "Το νέο δημιουργημένο αρχείο είναι :ref:`non-inheritable `." -#: library/functions.rst:1494 +#: library/functions.rst:1491 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::" +"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 "" "Το παρακάτω παράδειγμα χρησιμοποιεί την παράμετρο :ref:`dir_fd ` της " "συνάρτησης :func:`os.open` για να ανοίξει ένα αρχείο σε σχέση με έναν " "δεδομένο κατάλογο::" -#: library/functions.rst:1497 +#: library/functions.rst:1494 msgid "" ">>> import os\n" ">>> dir_fd = os.open('somedir', os.O_RDONLY)\n" @@ -2976,45 +2994,47 @@ msgstr "" "...\n" ">>> os.close(dir_fd) # don't leak a file descriptor" -#: library/functions.rst:1507 +#: library/functions.rst:1504 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 " +"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 "" -"Ο τύπος του :term:`file object` που επιστρέφεται από τη συνάρτηση :func:" -"`open` εξαρτάται από τη λειτουργία. Όταν το :func:`open` χρησιμοποιείται " -"για το άνοιγμα ενός αρχείου σε λειτουργία κειμένου (``'w'``, ``'r'``, " -"``'wt'``, ``'rt'``, κ.λπ.), επιστρέφει μια υποκλάση του :class:`io." -"TextIOBase` (specifically :class:`io.TextIOWrapper`). Όταν χρησιμοποιείται " -"για το άνοιγμα ενός αρχείου σε δυαδική λειτουργία με προσωρινή αποθήκευση, η " -"κλάση που επιστρέφεται είναι μια υποκλάση του :class:`io.BufferedIOBase`. Η " -"ακριβής κλάση ποικίλλει: σε λειτουργία δυαδικής ανάγνωσης, επιστρέφει ένα :" -"class:`io.BufferedReader` ∙ σε δυαδικές καταστάσεις εγγραφής και δυαδικής " -"προσθήκης, επιστρέφει ένα :class:`io.BufferedWriter`, και στη λειτουργία " -"ανάγνωσης/εγγραφής, επιστρέφει ένα :class:`io.BufferedRandom`. Όταν η " -"προσωρινή αποθήκευση είναι απενεργοποιημένη, επιστρέφεται, η ακατέργαστη " -"ροή , μια υποκλάση :class:`io.RawIOBase`, :class:`io.FileIO`." - -#: library/functions.rst:1528 +"disabled, the raw stream, a subclass " +"of :class:`io.RawIOBase`, :class:`io.FileIO`, is returned." +msgstr "" +"Ο τύπος του :term:`file object` που επιστρέφεται από τη " +"συνάρτηση :func:`open` εξαρτάται από τη λειτουργία. Όταν το :func:`open` " +"χρησιμοποιείται για το άνοιγμα ενός αρχείου σε λειτουργία κειμένου (``'w'``, " +"``'r'``, ``'wt'``, ``'rt'``, κ.λπ.), επιστρέφει μια υποκλάση " +"του :class:`io.TextIOBase` (specifically :class:`io.TextIOWrapper`). Όταν " +"χρησιμοποιείται για το άνοιγμα ενός αρχείου σε δυαδική λειτουργία με " +"προσωρινή αποθήκευση, η κλάση που επιστρέφεται είναι μια υποκλάση " +"του :class:`io.BufferedIOBase`. Η ακριβής κλάση ποικίλλει: σε λειτουργία " +"δυαδικής ανάγνωσης, επιστρέφει ένα :class:`io.BufferedReader` ∙ σε δυαδικές " +"καταστάσεις εγγραφής και δυαδικής προσθήκης, επιστρέφει " +"ένα :class:`io.BufferedWriter`, και στη λειτουργία ανάγνωσης/εγγραφής, " +"επιστρέφει ένα :class:`io.BufferedRandom`. Όταν η προσωρινή αποθήκευση " +"είναι απενεργοποιημένη, επιστρέφεται, η ακατέργαστη ροή , μια " +"υποκλάση :class:`io.RawIOBase`, :class:`io.FileIO`." + +#: library/functions.rst:1525 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`." +"(where :func:`open` is " +"declared), :mod:`os`, :mod:`os.path`, :mod:`tempfile`, and :mod:`shutil`." msgstr "" -"Δείτε επίσης τις ενότητες διαχείρισης αρχείων, όπως :mod:`fileinput`, :mod:" -"`io` (όπου ορίζεται η :func:`open`), :mod:`os`, :mod:`os.path`, :mod:" -"`tempfile`, και :mod:`shutil`." +"Δείτε επίσης τις ενότητες διαχείρισης αρχείων, " +"όπως :mod:`fileinput`, :mod:`io` (όπου ορίζεται " +"η :func:`open`), :mod:`os`, :mod:`os.path`, :mod:`tempfile`, " +"και :mod:`shutil`." -#: library/functions.rst:1532 +#: library/functions.rst:1529 msgid "" "Raises an :ref:`auditing event ` ``open`` with arguments ``path``, " "``mode``, ``flags``." @@ -3022,7 +3042,7 @@ msgstr "" "Κάνει raise ένα :ref:`auditing event ` ``open`` με ορίσματα " "``path``, ``mode``, ``flags``." -#: library/functions.rst:1534 +#: library/functions.rst:1531 msgid "" "The ``mode`` and ``flags`` arguments may have been modified or inferred from " "the original call." @@ -3030,21 +3050,21 @@ msgstr "" "Τα ορίσματα ``mode`` και ``flags`` μπορεί να έχουν τροποποιηθεί ή να έχουν " "συναχθεί από την αρχική κλήση." -#: library/functions.rst:1539 +#: library/functions.rst:1536 msgid "The *opener* parameter was added." msgstr "Προστέθηκε η παράμετρος *opener*." -#: library/functions.rst:1540 +#: library/functions.rst:1537 msgid "The ``'x'`` mode was added." msgstr "Προστέθηκε η λειτουργία ``'x'``." -#: library/functions.rst:1541 +#: library/functions.rst:1538 msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." msgstr "" -"Το :exc:`IOError` γινόταν raise παλιά, τώρα είναι ψευδώνυμο του :exc:" -"`OSError`." +"Το :exc:`IOError` γινόταν raise παλιά, τώρα είναι ψευδώνυμο " +"του :exc:`OSError`." -#: library/functions.rst:1542 +#: library/functions.rst:1539 msgid "" ":exc:`FileExistsError` is now raised if the file opened in exclusive " "creation mode (``'x'``) already exists." @@ -3052,57 +3072,70 @@ msgstr "" "Το :exc:`FileExistsError` γίνεται raise τώρα εάν το αρχείο που ανοίγει σε " "λειτουργία αποκλειστικής δημιουργίας (``'x'``) υπάρχει ήδη." -#: library/functions.rst:1547 +#: library/functions.rst:1544 msgid "The file is now non-inheritable." msgstr "Το αρχείο είναι πλέον μη κληρονομικό." -#: library/functions.rst:1551 +#: library/functions.rst:1548 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)." +"exception, the function now retries the system call instead of raising " +"an :exc:`InterruptedError` exception (see :pep:`475` for the rationale)." msgstr "" "Εάν η κλήση συστήματος διακοπεί και ο χειριστής σήματος δεν κάνει raise μια " "εξαίρεση, η συνάρτηση επαναλαμβάνει τώρα την κλήση συστήματος αντί να κάνει " "raise μια εξαίρεση :exc:`InterruptedError` (δείτε το :pep:`475` για το " "σκεπτικό)." -#: library/functions.rst:1554 +#: library/functions.rst:1551 msgid "The ``'namereplace'`` error handler was added." msgstr "Προστέθηκε το πρόγραμμα χειρισμού σφαλμάτων ``'namereplace'``." -#: library/functions.rst:1558 +#: library/functions.rst:1555 msgid "Support added to accept objects implementing :class:`os.PathLike`." msgstr "" -"Προστέθηκε υποστήριξη για την αποδοχή αντικειμένων που υλοποιούν :class:`os." -"PathLike`." +"Προστέθηκε υποστήριξη για την αποδοχή αντικειμένων που " +"υλοποιούν :class:`os.PathLike`." -#: library/functions.rst:1559 +#: library/functions.rst:1556 msgid "" -"On Windows, opening a console buffer may return a subclass of :class:`io." -"RawIOBase` other than :class:`io.FileIO`." +"On Windows, opening a console buffer may return a subclass " +"of :class:`io.RawIOBase` other than :class:`io.FileIO`." msgstr "" "Στα Windows, το άνοιγμα μιας προσωρινής μνήμης κονσόλας μπορεί να επιστρέψει " "μια υποκλάση του :class:`io.RawIOBase` εκτός από το :class:`io.FileIO`." -#: library/functions.rst:1562 +#: library/functions.rst:1559 msgid "The ``'U'`` mode has been removed." msgstr "Η λειτουργία ``'U'`` έχει αφαιρεθεί." -#: library/functions.rst:1567 +#: library/functions.rst:1564 +msgid "Return the ordinal value of a character." +msgstr "Επιστρέφει την αριθμητική τιμή (ordinal) ενός χαρακτήρα." + +#: library/functions.rst:1566 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`." +"If the argument is a one-character string, return 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 "" -"Δεδομένου μιας συμβολοσειράς που αντιπροσωπεύει έναν χαρακτήρα Unicode, " -"επιστρέφει έναν ακέραιο που αντιπροσωπεύει το σημείο κωδικού Unicode αυτού " -"του χαρακτήρα. Για παράδειγμα, το ``ord('a')`` επιστρέφει τον ακέραιο " -"αριθμό ``97`` και ``ord('€')`` (σύμβολο του ευρώ) επιστρέφει ``8364``. Αυτό " -"είναι το αντίστροφο του :func:`chr`." +"Εάν το όρισμα είναι μια συμβολοσειρά ενός χαρακτήρα, επιστρέφει το σημείο " +"κώδικα Unicode αυτού του χαρακτήρα. Για παράδειγμα, το ``ord('a')`` " +"επιστρέφει τον ακέραιο ``97`` και το ``ord('€')`` (σημείο ευρώ) επιστρέφει " +"το ``8364``. Αυτό είναι το αντίστροφο του :func:`chr`." -#: library/functions.rst:1575 +#: library/functions.rst:1571 +msgid "" +"If the argument is a :class:`bytes` or :class:`bytearray` object of length " +"1, return its single byte value. For example, ``ord(b'a')`` returns the " +"integer ``97``." +msgstr "" +"Εάν το όρισμα είναι ένα αντικείμενο :class:`bytes` ή :class:`bytearray` " +"μήκους 1, επιστρέφει την τιμή του μεμονωμένου byte. Για παράδειγμα, το " +"``ord(b'a')`` επιστρέφει τον ακέραιο ``97``." + +#: library/functions.rst:1578 msgid "" "Return *base* to the power *exp*; if *mod* is present, return *base* to the " "power *exp*, modulo *mod* (computed more efficiently than ``pow(base, exp) % " @@ -3114,9 +3147,9 @@ msgstr "" "``pow(base, exp) % mod``). Η φόρμα δύο ορισμάτων ``pow(base, exp)`` " "ισοδυναμεί με τη χρήση του τελεστή δύναμης: ``base**exp``." -#: library/functions.rst:1580 +#: library/functions.rst:1583 msgid "" -"The arguments must have numeric types. With mixed operand types, the " +"When arguments are builtin 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 " @@ -3124,25 +3157,24 @@ msgid "" "2)`` returns ``100``, but ``pow(10, -2)`` returns ``0.01``. For a negative " "base of type :class:`int` or :class:`float` and a non-integral exponent, a " "complex result is delivered. For example, ``pow(-9, 0.5)`` returns a value " -"close to ``3j``. Whereas, for a negative base of type :class:`int` or :class:" -"`float` with an integral exponent, a float result is delivered. For example, " -"``pow(-9, 2.0)`` returns ``81.0``." -msgstr "" -"Τα ορίσματα πρέπει να έχουνε αριθμητικούς τύπους. Με μεικτούς τύπους " -"τελεστών, ισχύουν οι κανόνες εξαναγκασμού για δυαδικούς τελεστές " -"αριθμητικής. Για του τελεστές :class:`int`, το αποτέλεσμα έχει τον ίδιο " -"τύπο με τους τελεστές (μετά τον εξαναγκασμό), εκτός εάν το δεύτερο όρισμα " -"είναι αρνητικό∙ σε αυτή την περίπτωση, όλα τα ορίσματα μετατρέπονται σε " -"float και επιστρέφεται ένα αποτέλεσμα τύπους float. Για παράδειγμα, " -"``pow(10, 2)`` επιστρέφει ``100``, αλλά το ``pow(10, -2)`` επιστρέφει " -"``0.01``. Για μια αρνητική βάση τύπου :class:`int` ή :class:`float` και " -"έναν μη αναπόσπαστο εκθέτη, παραδίδεται ένα μιγαδικό αποτέλεσμα. Για " -"παράδειγμα, ``pow(-9, 0.5)`` επιστρέφει μια τιμή κοντά στο ``3j``. Ενώ, για " -"μια αρνητική βάση τύπου :class:`int` ή :class:`float` με αναπόσπαστο εκθέτη, " -"παραδίδεται ένα αποτέλεσμα float. Για παράδειγμα, το ``pow(-9, 2.0)`` " -"επιστρέφει το ``81.0``." - -#: library/functions.rst:1592 +"close to ``3j``. Whereas, for a negative base of type :class:`int` " +"or :class:`float` with an integral exponent, a float result is delivered. " +"For example, ``pow(-9, 2.0)`` returns ``81.0``." +msgstr "" +"Όταν τα ορίσματα είναι ενσωματωμένοι αριθμητικοί τύποι με μεικτούς τύπους " +"ισχύουν οι κανόνες εξαναγκασμού για δυαδικούς τελεστές αριθμητικής. Για του " +"τελεστές :class:`int`, το αποτέλεσμα έχει τον ίδιο τύπο με τους τελεστές " +"(μετά τον εξαναγκασμό), εκτός εάν το δεύτερο όρισμα είναι αρνητικό∙ σε αυτή " +"την περίπτωση, όλα τα ορίσματα μετατρέπονται σε float και επιστρέφεται ένα " +"αποτέλεσμα τύπους float. Για παράδειγμα, ``pow(10, 2)`` επιστρέφει ``100``, " +"αλλά το ``pow(10, -2)`` επιστρέφει ``0.01``. Για μια αρνητική βάση " +"τύπου :class:`int` ή :class:`float` και έναν μη αναπόσπαστο εκθέτη, " +"παραδίδεται ένα μιγαδικό αποτέλεσμα. Για παράδειγμα, ``pow(-9, 0.5)`` " +"επιστρέφει μια τιμή κοντά στο ``3j``. Ενώ, για μια αρνητική βάση " +"τύπου :class:`int` ή :class:`float` με αναπόσπαστο εκθέτη, παραδίδεται ένα " +"αποτέλεσμα float. Για παράδειγμα, το ``pow(-9, 2.0)`` επιστρέφει το ``81.0``." + +#: library/functions.rst:1595 msgid "" "For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must " "also be of integer type and *mod* must be nonzero. If *mod* is present and " @@ -3157,13 +3189,13 @@ msgstr "" "``pow(inv_base, -exp, mod)``, όπου το *inv_base* είναι αντίστροφο του *base* " "modulo *mod*." -#: library/functions.rst:1598 +#: library/functions.rst:1601 msgid "Here's an example of computing an inverse for ``38`` modulo ``97``::" msgstr "" "Ακολουθεί ένα παράδειγμα υπολογισμού ενός αντίστροφου για το ``38`` modulo " "``97``::" -#: library/functions.rst:1600 +#: library/functions.rst:1603 msgid "" ">>> pow(38, -1, mod=97)\n" "23\n" @@ -3175,7 +3207,7 @@ msgstr "" ">>> 23 * 38 % 97 == 1\n" "True" -#: library/functions.rst:1605 +#: library/functions.rst:1608 msgid "" "For :class:`int` operands, the three-argument form of ``pow`` now allows the " "second argument to be negative, permitting computation of modular inverses." @@ -3184,14 +3216,14 @@ msgstr "" "τώρα το δεύτερο όρισμα να είναι αρνητικό, επιτρέποντας τον υπολογισμό των " "αρθρωτών αντίστροφων." -#: library/functions.rst:1610 +#: library/functions.rst:1613 msgid "" "Allow keyword arguments. Formerly, only positional arguments were supported." msgstr "" "Επιτρέπονται ορίσματα keyword. Παλαιότερα, υποστηρίζονταν μόνο ορίσματα " "θέσης." -#: library/functions.rst:1617 +#: library/functions.rst:1620 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 " @@ -3201,7 +3233,7 @@ msgstr "" "ακολουθούμενα από *end*. Τα *sep*, *end*, *file*, και *flush*, εάν υπάρχουν, " "πρέπει να δίνονται ως ορίσματα keyword." -#: library/functions.rst:1621 +#: library/functions.rst:1624 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* " @@ -3209,14 +3241,14 @@ msgid "" "default values. If no *objects* are given, :func:`print` will just write " "*end*." msgstr "" -"Όλα τα μη keyword ορίσματα μετατρέπονται σε συμβολοσειρές όπως κάνει η :func:" -"`str` και γράφονται στη ροή, χωρισμένα με *sep* και ακολουθούνται από " -"*end*. Και τα δύο *sep* και *end* πρέπει να είναι συμβολοσειρές∙ μπορεί " +"Όλα τα μη keyword ορίσματα μετατρέπονται σε συμβολοσειρές όπως κάνει " +"η :func:`str` και γράφονται στη ροή, χωρισμένα με *sep* και ακολουθούνται " +"από *end*. Και τα δύο *sep* και *end* πρέπει να είναι συμβολοσειρές∙ μπορεί " "επίσης να είναι ``None``, που σημαίνει ότι θα χρησιμοποιηθούν οι " "προεπιλεγμένες τιμές. Εάν δεν δίνονται *αντικείμενα*, η :func:`print` θα " "γράψει απλά *end*." -#: library/functions.rst:1627 +#: library/functions.rst:1630 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 " @@ -3224,13 +3256,13 @@ msgid "" "binary mode file objects. For these, use ``file.write(...)`` instead." msgstr "" "Το όρισμα *file* πρέπει να είναι αντικείμενο με μια μέθοδο " -"``write(string)``∙ εάν δεν υπάρχει ή είναι ``None``, θα χρησιμοποιηθεί το :" -"data:`sys.stdout`. Επειδή τα τυπωμένα ορίσματα μετατρέπονται σε " +"``write(string)``∙ εάν δεν υπάρχει ή είναι ``None``, θα χρησιμοποιηθεί " +"το :data:`sys.stdout`. Επειδή τα τυπωμένα ορίσματα μετατρέπονται σε " "συμβολοσειρές κειμένου, η :func:`print` δεν μπορεί να χρησιμοποιηθεί με " "αντικείμενα αρχείου δυαδικής λειτουργίας. Για αυτά, χρησιμοποιούμε το " "``file.write(...)``." -#: library/functions.rst:1632 +#: library/functions.rst:1635 msgid "" "Output buffering is usually determined by *file*. However, if *flush* is " "true, the stream is forcibly flushed." @@ -3238,15 +3270,15 @@ msgstr "" "Η προσωρινή αποθήκευση εξόδου καθορίζεται συνήθως από το *αρχείο*. Ωστόσο, " "εάν το *flush* είναι αληθές, η ροή ξεπλένεται αναγκαστικά." -#: library/functions.rst:1636 +#: library/functions.rst:1639 msgid "Added the *flush* keyword argument." msgstr "Προστέθηκε το όρισμα keyword *flush*." -#: library/functions.rst:1642 +#: library/functions.rst:1645 msgid "Return a property attribute." msgstr "Επιστρέφει ένα χαρακτηριστικό ιδιότητας." -#: library/functions.rst:1644 +#: library/functions.rst:1647 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 " @@ -3257,12 +3289,12 @@ msgstr "" "*fdel* είναι μια συνάρτηση για τη διαγραφή μιας τιμής χαρακτηριστικού. Και " "το *doc* δημιουργεί μια συμβολοσειρά εγγράφων για το χαρακτηριστικό." -#: library/functions.rst:1648 +#: library/functions.rst:1651 msgid "A typical use is to define a managed attribute ``x``::" msgstr "" "Μια τυπική χρήση είναι ο ορισμός ενός διαχειριζόμενου χαρακτηριστικού ``x``::" -#: library/functions.rst:1650 +#: library/functions.rst:1653 msgid "" "class C:\n" " def __init__(self):\n" @@ -3294,7 +3326,7 @@ msgstr "" "\n" " x = property(getx, setx, delx, \"I'm the 'x' property.\")" -#: library/functions.rst:1665 +#: library/functions.rst:1668 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." @@ -3302,19 +3334,19 @@ msgstr "" "Εάν το *c* είναι ένα instance του *C*, το ``c.x`` θα καλέσει τον λήπτη, το " "``c.x = value` θα καλέσει τον ρυθμιστή, και το ``del c.x`` τον διαγραφέα." -#: library/functions.rst:1668 +#: library/functions.rst:1671 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`::" +"possible to create read-only properties easily using :func:`property` as " +"a :term:`decorator`::" msgstr "" "Εάν δίνεται, το *doc* θα είναι το docstring του χαρακτηριστικού ιδιότητας. " "Διαφορετικά , η ιδιότητα θα αντιγράψει τη συμβολοσειρά του *fget* (εάν " "υπάρχει). Αυτό καθιστά δυνατή τη δημιουργία ιδιοτήτων μόνο για ανάγνωση, " "εύκολα χρησιμοποιώντας τη :func:`property` ως :term:`decorator`::" -#: library/functions.rst:1672 +#: library/functions.rst:1675 msgid "" "class Parrot:\n" " def __init__(self):\n" @@ -3334,7 +3366,7 @@ msgstr "" " \"\"\"Get the current voltage.\"\"\"\n" " return self._voltage" -#: library/functions.rst:1681 +#: library/functions.rst:1684 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 " @@ -3344,7 +3376,7 @@ msgstr "" "\"getter\" για ένα χαρακτηριστικό μόνο για ανάγνωση με το ίδιο όνομα, και " "ορίζει τη συμβολοσειρά εγγράφων για *voltage* σε \"Get the current voltage.\"" -#: library/functions.rst:1689 +#: library/functions.rst:1692 msgid "" "A property object has ``getter``, ``setter``, and ``deleter`` methods usable " "as decorators that create a copy of the property with the corresponding " @@ -3356,7 +3388,7 @@ msgstr "" "ένα αντίγραφο της ιδιότητας με την αντίστοιχη συνάρτηση accessor που έχει " "οριστεί στον decorator. Αυτό εξηγείται καλύτερα με ένα παράδειγμα:" -#: library/functions.rst:1694 +#: library/functions.rst:1697 msgid "" "class C:\n" " def __init__(self):\n" @@ -3392,7 +3424,7 @@ msgstr "" " def x(self):\n" " del self._x" -#: library/functions.rst:1713 +#: library/functions.rst:1716 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 " @@ -3402,7 +3434,7 @@ msgstr "" "να δώσετε στις πρόσθετες συναρτήσεις το ίδιο όνομα με την αρχική ιδιότητα " "(``x`` σε αυτήν την περίπτωση.)" -#: library/functions.rst:1717 +#: library/functions.rst:1720 msgid "" "The returned property object also has the attributes ``fget``, ``fset``, and " "``fdel`` corresponding to the constructor arguments." @@ -3411,11 +3443,11 @@ msgstr "" "``fget``, ``fset``, και ``fdel`` που αντιστοιχούν στα ορίσματα του " "κατασκευαστή." -#: library/functions.rst:1720 +#: library/functions.rst:1723 msgid "The docstrings of property objects are now writeable." msgstr "Τα *docstrings* των αντικειμένων ιδιότητας είναι πλέον εγγράψιμες." -#: library/functions.rst:1725 +#: library/functions.rst:1728 msgid "" "Attribute holding the name of the property. The name of the property can be " "changed at runtime." @@ -3423,7 +3455,7 @@ msgstr "" "Χαρακτηριστικό που περιέχει το όνομα της ιδιότητας. Το όνομα της ιδιότητας " "μπορεί να αλλάξει κατά την εκτέλεση." -#: library/functions.rst:1736 +#: library/functions.rst:1739 msgid "" "Rather than being a function, :class:`range` is actually an immutable " "sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." @@ -3432,7 +3464,7 @@ msgstr "" "αμετάβλητος τύπος ακολουθίας, όπως τεκμηριώνεται στα :ref:`typesseq-range` " "και :ref:`typesseq`." -#: library/functions.rst:1742 +#: library/functions.rst:1745 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 " @@ -3451,16 +3483,16 @@ msgstr "" "συμβολοσειρά που περικλείεται σε αγκύλες που περιέχει το όνομα του τύπου του " "αντικειμένου μαζί με πρόσθετες πληροφορίες που συχνά περιλαμβάνουν το όνομα " "και τη διεύθυνση του αντικειμένου. Μια κλάση μπορεί να ελέγξει τι " -"επιστρέφει αυτή η συνάρτηση για τις οντότητες της ορίζοντας μια μέθοδο :meth:" -"`~object.__repr__`. Εάν η :func:`sys.displayhook` δεν είναι προσβάσιμη, αυτή " -"η συνάρτηση θα κάνει raise το :exc:`RuntimeError`." +"επιστρέφει αυτή η συνάρτηση για τις οντότητες της ορίζοντας μια " +"μέθοδο :meth:`~object.__repr__`. Εάν η :func:`sys.displayhook` δεν είναι " +"προσβάσιμη, αυτή η συνάρτηση θα κάνει raise το :exc:`RuntimeError`." -#: library/functions.rst:1753 +#: library/functions.rst:1756 msgid "This class has a custom representation that can be evaluated::" msgstr "" "Αυτή η κλάση έχει μια προσαρμοσμένη αναπαράσταση που μπορεί να αξιολογηθεί::" -#: library/functions.rst:1755 +#: library/functions.rst:1758 msgid "" "class Person:\n" " def __init__(self, name, age):\n" @@ -3478,19 +3510,20 @@ msgstr "" " def __repr__(self):\n" " return f\"Person('{self.name}', {self.age})\"" -#: library/functions.rst:1766 +#: library/functions.rst:1769 msgid "" -"Return a reverse :term:`iterator`. *seq* must be an object which has a :" -"meth:`~object.__reversed__` method or supports the sequence protocol (the :" -"meth:`~object.__len__` method and the :meth:`~object.__getitem__` method " -"with integer arguments starting at ``0``)." +"Return a reverse :term:`iterator`. The argument must be an object which has " +"a :meth:`~object.__reversed__` method or supports the sequence protocol " +"(the :meth:`~object.__len__` method and the :meth:`~object.__getitem__` " +"method with integer arguments starting at ``0``)." msgstr "" -"Επιστρέφει ένα αντίστροφο :term:`iterator`. Το *seq* πρέπει να είναι ένα " -"αντικείμενο που έχει μια μέθοδο :meth:`~object.__reversed__` ή υποστηρίζει " -"το πρωτόκολλο ακολουθίας (η μέθοδος :meth:`~object.__len__` και η μέθοδος :" -"meth:`~object.__getitem__` με ακέραια ορίσματα που ξεκινούν από ``0``)." +"Επιστρέφει ένα αντίστροφο :term:`iterator`. Το όρισμα πρέπει να είναι ένα " +"αντικείμενο το οποίο έχει μια μέθοδο :meth:`~object.__reversed__` ή " +"υποστηρίζει το πρωτόκολλο ακολοθίας (τη μέθοδο :meth:`~object.__len__` και " +"τη μέθοδο :meth:`~object.__getitem__` με ακέραια ορίσματα που ξεκινούν από " +"το 0)." -#: library/functions.rst:1774 +#: library/functions.rst:1777 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 " @@ -3500,7 +3533,7 @@ msgstr "" "υποδιαστολή. Εάν το *ndigits* παραληφθεί ή είναι ``None``, επιστρέφει τον " "πλησιέστερο ακέραιο αριθμό στην είσοδό του." -#: library/functions.rst:1778 +#: library/functions.rst:1781 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 " @@ -3519,15 +3552,15 @@ msgstr "" "επιστρεφόμενη τιμή είναι ακέραιος εάν το *ndigits* παραλειφθεί ή είναι " "``None``. Διαφορετικά, η τιμή επιστροφής έχει τον ίδιο τύπο με το *number*." -#: library/functions.rst:1787 +#: library/functions.rst:1790 msgid "" -"For a general Python object ``number``, ``round`` delegates to ``number." -"__round__``." +"For a general Python object ``number``, ``round`` delegates to " +"``number.__round__``." msgstr "" -"Για ένα γενικό αντικείμενο Python ``number``, ``round`` εκχωρεί στο ``number." -"__round__``." +"Για ένα γενικό αντικείμενο Python ``number``, ``round`` εκχωρεί στο " +"``number.__round__``." -#: library/functions.rst:1792 +#: library/functions.rst:1795 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 " @@ -3541,7 +3574,7 @@ msgstr "" "περισσότερα δεκαδικά κλάσματα δεν μπορούν να αναπαρασταθούν ακριβώς ως " "float. Δείτε το :ref:`tut-fp-issues` για περισσότερες πληροφορίες." -#: library/functions.rst:1804 +#: library/functions.rst:1806 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-" @@ -3551,17 +3584,17 @@ msgstr "" "λαμβάνονται από το *iterable*. Το ``set`` είναι μια ενσωματωμένη κλάση. " "Δείτε :class:`set` και :ref:`types-set` για τεκμηρίωση αυτής της κλάσης." -#: library/functions.rst:1808 +#: library/functions.rst:1810 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." +"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 "" -"Για άλλα containers, δείτε τις ενσωματωμένες κλάσεις :class:`frozenset`, :" -"class:`list`, :class:`tuple`, και :class:`dict`, καθώς και το module :mod:" -"`collections`." +"Για άλλα containers, δείτε τις ενσωματωμένες " +"κλάσεις :class:`frozenset`, :class:`list`, :class:`tuple`, " +"και :class:`dict`, καθώς και το module :mod:`collections`." -#: library/functions.rst:1815 +#: library/functions.rst:1817 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 " @@ -3576,22 +3609,22 @@ msgstr "" "επιτρέπει. Για παράδειγμα ``setattr(x, 'foobar', 123)`` ισοδυναμεί με το " "``x.foobar = 123``." -#: library/functions.rst:1821 +#: library/functions.rst:1823 msgid "" "*name* need not be a Python identifier as defined in :ref:`identifiers` " -"unless the object chooses to enforce that, for example in a custom :meth:" -"`~object.__getattribute__` or via :attr:`~object.__slots__`. An attribute " -"whose name is not an identifier will not be accessible using the dot " -"notation, but is accessible through :func:`getattr` etc.." +"unless the object chooses to enforce that, for example in a " +"custom :meth:`~object.__getattribute__` or via :attr:`~object.__slots__`. An " +"attribute whose name is not an identifier will not be accessible using the " +"dot notation, but is accessible through :func:`getattr` etc.." msgstr "" -"Το *name* δεν χρειάζεται να είναι αναγνωριστικό Python όπως ορίζεται στο :" -"ref:`identifiers` , εκτός εάν το αντικείμενο επιλέξει να το επιβάλει αυτό, " -"για παράδειγμα σε ένα προσαρμοσμένο :meth:`~object.__getattribute__` ή μέσω :" -"attr:`~object.__slots__`. Ένα χαρακτηριστικό του οποίου το όνομα δεν είναι " -"αναγνωριστικό δεν θα είναι προσβάσιμο χρησιμοποιώντας τη σημειογραφία, αλλά " -"είναι προσβάσιμο μέσω του :func:`getattr` κ.λπ.." +"Το *name* δεν χρειάζεται να είναι αναγνωριστικό Python όπως ορίζεται " +"στο :ref:`identifiers` , εκτός εάν το αντικείμενο επιλέξει να το επιβάλει " +"αυτό, για παράδειγμα σε ένα προσαρμοσμένο :meth:`~object.__getattribute__` ή " +"μέσω :attr:`~object.__slots__`. Ένα χαρακτηριστικό του οποίου το όνομα δεν " +"είναι αναγνωριστικό δεν θα είναι προσβάσιμο χρησιμοποιώντας τη σημειογραφία, " +"αλλά είναι προσβάσιμο μέσω του :func:`getattr` κ.λπ.." -#: library/functions.rst:1829 +#: library/functions.rst:1831 msgid "" "Since :ref:`private name mangling ` happens at " "compilation time, one must manually mangle a private attribute's (attributes " @@ -3602,7 +3635,7 @@ msgstr "" "μη αυτόματο τρόπο το όνομα ενός ιδιωτικού χαρακτηριστικού (χαρακτηριστικά με " "δύο προπορευόμενες κάτω παύλες) για να το ορίσει με :func:`setattr`." -#: library/functions.rst:1838 +#: library/functions.rst:1840 msgid "" "Return a :term:`slice` object representing the set of indices specified by " "``range(start, stop, step)``. The *start* and *step* arguments default to " @@ -3612,62 +3645,65 @@ msgstr "" "δεικτών που καθορίζονται από το ``range(start, stop, step)``. Τα ορίσματα " "*start* και *step* είναι από προεπιλογή ``None``." -#: library/functions.rst:1846 +#: library/functions.rst:1844 msgid "" "Slice objects have read-only data attributes :attr:`!start`, :attr:`!stop`, " "and :attr:`!step` which merely return the argument values (or their " "default). They have no other explicit functionality; however, they are used " "by NumPy and other third-party packages." msgstr "" -"Τα αντικείμενα τμημάτων έχουν χαρακτηριστικά δεδομένων μόνο για ανάγνωση :" -"attr:`!start`, :attr:`!stop`, και :attr:`!step` τα οποία απλώς επιστρέφουν " -"τις τιμές του ορίσματος (ή την προεπιλογή τους). Δεν έχουνε άλλη ρητή " -"λειτουργικότητα∙ ωστόσο, χρησιμοποιούνται από το NumPy και άλλα πακέτα " -"τρίτων." +"Τα αντικείμενα τμημάτων έχουν χαρακτηριστικά δεδομένων μόνο για " +"ανάγνωση :attr:`!start`, :attr:`!stop`, και :attr:`!step` τα οποία απλώς " +"επιστρέφουν τις τιμές του ορίσματος (ή την προεπιλογή τους). Δεν έχουνε " +"άλλη ρητή λειτουργικότητα∙ ωστόσο, χρησιμοποιούνται από το NumPy και άλλα " +"πακέτα τρίτων." -#: library/functions.rst:1851 +#: library/functions.rst:1853 msgid "" "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 :term:`iterator`." +"example: ``a[start:stop:step]`` or ``a[start:stop, i]``. " +"See :func:`itertools.islice` for an alternate version that returns " +"an :term:`iterator`." msgstr "" "Τα αντικείμενα slice δημιουργούνται επίσης όταν χρησιμοποιείται εκτεταμένη " -"σύνταξη ευρετηρίου. Για παράδειγμα: ``a[start:stop:step]`` ή ``a[start:" -"stop, i]``. Δείτε τη :func:`itertools.islice` για μια εναλλακτική έκδοση " -"που επιστρέφει ένα :term:`iterator`." +"σύνταξη ευρετηρίου. Για παράδειγμα: ``a[start:stop:step]`` ή " +"``a[start:stop, i]``. Δείτε τη :func:`itertools.islice` για μια εναλλακτική " +"έκδοση που επιστρέφει ένα :term:`iterator`." -#: library/functions.rst:1856 +#: library/functions.rst:1858 msgid "" -"Slice objects are now :term:`hashable` (provided :attr:`~slice.start`, :attr:" -"`~slice.stop`, and :attr:`~slice.step` are hashable)." +"Slice objects are now :term:`hashable` " +"(provided :attr:`~slice.start`, :attr:`~slice.stop`, and :attr:`~slice.step` " +"are hashable)." msgstr "" -"Τα αντικείμενα slice είναι πλέον :term:`hashable` (με την προϋπόθεση :attr:" -"`~slice.start`, :attr:`~slice.stop`, και :attr:`~slice.step` μπορούν να " -"κατακερματιστούν)." +"Τα αντικείμενα slice είναι πλέον :term:`hashable` (με την " +"προϋπόθεση :attr:`~slice.start`, :attr:`~slice.stop`, " +"και :attr:`~slice.step` μπορούν να κατακερματιστούν)." -#: library/functions.rst:1862 +#: library/functions.rst:1864 msgid "Return a new sorted list from the items in *iterable*." msgstr "Επιστρέφει μια νέα ταξινομημένη λίστα από τα στοιχεία στο *iterable*." -#: library/functions.rst:1864 +#: library/functions.rst:1866 msgid "" "Has two optional arguments which must be specified as keyword arguments." msgstr "" "Έχει δύο προαιρετικά ορίσματα που πρέπει να καθοριστούν ως ορίσματα λέξεων-" "κλειδιών." -#: library/functions.rst:1866 +#: library/functions.rst:1868 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)." +"comparison key from each element in *iterable* (for example, " +"``key=str.lower``). The default value is ``None`` (compare the elements " +"directly)." msgstr "" "Το *key* καθορίζει μια συνάρτηση ενός ορίσματος που χρησιμοποιείται για την " "εξαγωγή ενός κλειδιού σύγκρισης από κάθε στοιχείο στο *iterable* (για " "παράδειγμα, ``key=str.lower``). Η προεπιλεγμένη τιμή είναι ``None`` " "(συγκρίνει τα στοιχεία απευθείας)." -#: library/functions.rst:1870 +#: library/functions.rst:1872 msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." @@ -3675,7 +3711,7 @@ msgstr "" "Το *reverse* είναι μια δυαδική τιμή. Εάν οριστεί σε ``True``, τότε τα " "στοιχεία της λίστας ταξινομούνται σαν να είχε αντιστραφεί κάθε σύγκριση." -#: library/functions.rst:1873 +#: library/functions.rst:1875 msgid "" "Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a " "*key* function." @@ -3683,7 +3719,7 @@ msgstr "" "Χρησιμοποιήστε το :func:`functools.cmp_to_key` για να μετατρέψετε μια " "συνάρτηση *cmp* παλιού τύπου σε συνάρτηση *key*." -#: library/functions.rst:1876 +#: library/functions.rst:1878 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 " @@ -3696,7 +3732,7 @@ msgstr "" "πολλαπλά περάσματα (για παράδειγμα, ταξινόμηση ανά τμήμα, μετά ανά " "μισθολογικό βαθμό)." -#: library/functions.rst:1881 +#: library/functions.rst:1883 msgid "" "The sort algorithm uses only ``<`` comparisons between items. While " "defining an :meth:`~object.__lt__` method will suffice for sorting, :PEP:`8` " @@ -3704,30 +3740,31 @@ msgid "" "implemented. This will help avoid bugs when using the same data with other " "ordering tools such as :func:`max` that rely on a different underlying " "method. Implementing all six comparisons also helps avoid confusion for " -"mixed type comparisons which can call reflected the :meth:`~object.__gt__` " +"mixed type comparisons which can call the reflected :meth:`~object.__gt__` " "method." msgstr "" "Ο αλγόριθμος ταξινόμησης χρησιμοποιεί μόνο συγκρίσεις ``<`` μεταξύ " "στοιχείων. Ενώ ο ορισμός μιας μεθόδου :meth:`~object.__lt__` αρκεί για την " "ταξινόμηση, το :PEP:`8` συνιστά και τις έξι :ref:`rich comparisons " "` που θα εφαρμοστούν. Αυτό θα βοηθήσει στην αποφυγή σφαλμάτων " -"κατά τη χρήση των ίδιων δεδομένων με άλλα εργαλεία διάταξης, όπως :func:" -"`max` που βασίζονται σε διαφορετική υποκείμενη μέθοδο. Η υλοποίηση και των " -"έξι συγκρίσεων βοηθά επίσης στην αποφυγή σύγχυσης για συγκρίσεις μικτού " -"τύπου που μπορούν να καλέσουν την ανακλώμενη μέθοδο :meth:`~object.__gt__`." +"κατά τη χρήση των ίδιων δεδομένων με άλλα εργαλεία διάταξης, " +"όπως :func:`max` που βασίζονται σε διαφορετική υποκείμενη μέθοδο. Η " +"υλοποίηση και των έξι συγκρίσεων βοηθά επίσης στην αποφυγή σύγχυσης για " +"συγκρίσεις μικτού τύπου που μπορούν να καλέσουν την ανακλώμενη " +"μέθοδο :meth:`~object.__gt__`." -#: library/functions.rst:1890 +#: library/functions.rst:1892 msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" "Για παραδείγματα ταξινόμησης και ένα σύντομο σεμινάριο ταξινόμησης, " "ανατρέξτε στο :ref:`sortinghowto`." -#: library/functions.rst:1894 +#: library/functions.rst:1896 msgid "Transform a method into a static method." msgstr "Μετατροπή μιας μεθόδου σε στατική μέθοδο." -#: library/functions.rst:1896 +#: library/functions.rst:1898 msgid "" "A static method does not receive an implicit first argument. To declare a " "static method, use this idiom::" @@ -3735,7 +3772,7 @@ msgstr "" "Μια στατική μέθοδος δεν λαμβάνει ένα σιωπηρό πρώτο όρισμα. Για να δηλώσετε " "μια στατική μέθοδο, χρησιμοποιήστε αυτό το ιδίωμα::" -#: library/functions.rst:1899 +#: library/functions.rst:1901 msgid "" "class C:\n" " @staticmethod\n" @@ -3745,27 +3782,27 @@ msgstr "" " @staticmethod\n" " def f(arg1, arg2, argN): ..." -#: library/functions.rst:1903 +#: library/functions.rst:1905 msgid "" -"The ``@staticmethod`` form is a function :term:`decorator` -- see :ref:" -"`function` for details." +"The ``@staticmethod`` form is a function :term:`decorator` -- " +"see :ref:`function` for details." msgstr "" -"Η φόρμα ``@staticmethod`` είναι μια συνάρτηση :term:`decorator` -- δείτε :" -"ref:`function` για λεπτομέρειες." +"Η φόρμα ``@staticmethod`` είναι μια συνάρτηση :term:`decorator` -- " +"δείτε :ref:`function` για λεπτομέρειες." -#: library/functions.rst:1906 +#: library/functions.rst:1908 msgid "" "A static method can be called either on the class (such as ``C.f()``) or on " -"an instance (such as ``C().f()``). Moreover, the static method :term:" -"`descriptor` is also callable, so it can be used in the class definition " -"(such as ``f()``)." +"an instance (such as ``C().f()``). Moreover, the static " +"method :term:`descriptor` is also callable, so it can be used in the class " +"definition (such as ``f()``)." msgstr "" "Μια στατική μέθοδος μπορεί να κληθεί είτε στην κλάση (όπως ``C.f()``) είτε " -"σε ένα instance (όπως ``C().f()``). Επιπλέον, η στατική μέθοδος :term:" -"`descriptor` μπορεί επίσης να κληθεί, επομένως μπορεί να χρησιμοποιηθεί στον " -"ορισμός της κλάσης (όπως ``f()``)." +"σε ένα instance (όπως ``C().f()``). Επιπλέον, η στατική " +"μέθοδος :term:`descriptor` μπορεί επίσης να κληθεί, επομένως μπορεί να " +"χρησιμοποιηθεί στον ορισμός της κλάσης (όπως ``f()``)." -#: library/functions.rst:1911 +#: library/functions.rst:1913 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 " @@ -3775,7 +3812,7 @@ msgstr "" "Java ή στη C++. Επίσης, ανατρέξτε στη :func:`classmethod` για μια παραλλαγή " "που είναι χρήσιμη για τη δημιουργία εναλλακτικών κατασκευαστών κλάσεων." -#: library/functions.rst:1915 +#: library/functions.rst:1917 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 " @@ -3790,7 +3827,7 @@ msgstr "" "αυτόματη μετατροπή σε instance μέθοδο. Για αυτές τις περιπτώσεις, " "χρησιμοποιήστε αυτό το ιδίωμα::" -#: library/functions.rst:1921 +#: library/functions.rst:1923 msgid "" "def regular_function():\n" " ...\n" @@ -3804,33 +3841,32 @@ msgstr "" "class C:\n" " method = staticmethod(regular_function)" -#: library/functions.rst:1927 +#: library/functions.rst:1929 msgid "For more information on static methods, see :ref:`types`." msgstr "" -"Για περισσότερες πληροφορίες σχετικά με τις στατικές μεθόδους, δείτε το :ref:" -"`types`." +"Για περισσότερες πληροφορίες σχετικά με τις στατικές μεθόδους, δείτε " +"το :ref:`types`." -#: library/functions.rst:1929 +#: library/functions.rst:1931 msgid "" -"Static methods now inherit the method attributes (:attr:`~function." -"__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :" -"attr:`~function.__doc__` and :attr:`~function.__annotations__`), have a new " -"``__wrapped__`` attribute, and are now callable as regular functions." +"Static methods now inherit the method attributes " +"(:attr:`~function.__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :attr:`~function.__doc__` " +"and :attr:`~function.__annotations__`), have a new ``__wrapped__`` " +"attribute, and are now callable as regular functions." msgstr "" -"Οι στατικές μέθοδοι κληρονομούν πλέον τα χαρακτηριστικά της μεθόδου (:attr:" -"`~function.__module__`, :attr:`~function.__name__`, :attr:`~function." -"__qualname__`, :attr:`~function.__doc__` και :attr:`~function." -"__annotations__`),, έχουν ένα νέο χαρακτηριστικό ``__wrapped__``, και " -"μπορούν πλέον να καλούνται ως κανονικές λειτουργίες." +"Οι στατικές μέθοδοι κληρονομούν πλέον τα χαρακτηριστικά της μεθόδου " +"(:attr:`~function.__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :attr:`~function.__doc__` " +"και :attr:`~function.__annotations__`),, έχουν ένα νέο χαρακτηριστικό " +"``__wrapped__``, και μπορούν πλέον να καλούνται ως κανονικές λειτουργίες." -#: library/functions.rst:1945 +#: library/functions.rst:1949 msgid "" "Return a :class:`str` version of *object*. See :func:`str` for details." msgstr "" "Επιστρέφει μια έκδοση :class:`str` του *object*. Δείτε :func:`str` για " "λεπτομέρειες." -#: library/functions.rst:1947 +#: library/functions.rst:1951 msgid "" "``str`` is the built-in string :term:`class`. For general information about " "strings, see :ref:`textseq`." @@ -3838,7 +3874,7 @@ msgstr "" "Το ``str`` είναι η ενσωματωμένη συμβολοσειρά :term:`class`. Για γενικές " "πληροφορίες σχετικά με τις συμβολοσειρές, ανατρέξτε :ref:`textseq`." -#: library/functions.rst:1953 +#: library/functions.rst:1957 msgid "" "Sums *start* and the items of an *iterable* from left to right and returns " "the total. The *iterable*'s items are normally numbers, and the start value " @@ -3848,26 +3884,26 @@ msgstr "" "και επιστρέφει το σύνολο. Τα στοιχεία του *iterable* είναι συνήθως αριθμοί " "και η τιμή έναρξης δεν επιτρέπεται να είναι συμβολοσειρά." -#: library/functions.rst:1957 +#: library/functions.rst:1961 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 "" -"Για ορισμένες περιπτώσεις χρήσης, υπάρχουν καλές εναλλακτικές λύσεις για το :" -"func:`sum`. Ο προτιμώμενος, γρήγορος τρόπος για να συνδέσετε μια ακολουθία " -"συμβολοσειρών είναι καλώντας ``''.join(sequence)``. Για να προσθέσετε τιμές " -"κινητής υποδιαστολής με εκτεταμένη ακρίβεια, δείτε :func:`math.fsum`\\. Για " -"να συνδυάσετε μια σειρά iterable, σκεφτείτε να χρησιμοποιήσετε το :func:" -"`itertools.chain`." - -#: library/functions.rst:1963 +"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 "" +"Για ορισμένες περιπτώσεις χρήσης, υπάρχουν καλές εναλλακτικές λύσεις για " +"το :func:`sum`. Ο προτιμώμενος, γρήγορος τρόπος για να συνδέσετε μια " +"ακολουθία συμβολοσειρών είναι καλώντας ``''.join(sequence)``. Για να " +"προσθέσετε τιμές κινητής υποδιαστολής με εκτεταμένη ακρίβεια, " +"δείτε :func:`math.fsum`\\. Για να συνδυάσετε μια σειρά iterable, σκεφτείτε " +"να χρησιμοποιήσετε το :func:`itertools.chain`." + +#: library/functions.rst:1967 msgid "The *start* parameter can be specified as a keyword argument." msgstr "Η παράμετρος *start* μπορεί να καθοριστεί ως όρισμα keyword." -#: library/functions.rst:1966 +#: library/functions.rst:1970 msgid "" "Summation of floats switched to an algorithm that gives higher accuracy and " "better commutativity on most builds." @@ -3875,7 +3911,7 @@ msgstr "" "Η άθροιση των floats άλλαξε σε έναν αλγόριθμο που δίνει μεγαλύτερη ακρίβεια " "και καλύτερη αντιμεταθετικότητα στις περισσότερες κατασκευές." -#: library/functions.rst:1969 +#: library/functions.rst:1973 msgid "" "Added specialization for summation of complexes, using same algorithm as for " "summation of floats." @@ -3883,7 +3919,7 @@ msgstr "" "Προστέθηκε εξειδίκευση για άθροιση συμπλεγμάτων, χρησιμοποιώντας τον ίδιο " "αλγόριθμο όπως για την άθροιση των float." -#: library/functions.rst:1977 +#: library/functions.rst:1981 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 " @@ -3893,7 +3929,7 @@ msgstr "" "μεθόδου σε μια γονική ή αδερφή κλάση *type*. Αυτό είναι χρήσιμο για την " "πρόσβαση σε μεταβιβασμένες μεθόδους που έχουν παρακαμφθεί σε μια κλάση." -#: library/functions.rst:1981 +#: library/functions.rst:1985 msgid "" "The *object_or_type* determines the :term:`method resolution order` to be " "searched. The search starts from the class right after the *type*." @@ -3901,22 +3937,22 @@ msgstr "" "Το *object_or_type* καθορίζει το :term:`method resolution order` που θα " "αναζητηθεί. Η αναζήτηση ξεκινά από την κλάση αμέσως μετά τον *type*." -#: library/functions.rst:1985 +#: library/functions.rst:1989 msgid "" -"For example, if :attr:`~type.__mro__` of *object_or_type* is ``D -> B -> C -" -"> A -> object`` and the value of *type* is ``B``, then :func:`super` " +"For example, if :attr:`~type.__mro__` of *object_or_type* is ``D -> B -> C " +"-> A -> object`` and the value of *type* is ``B``, then :func:`super` " "searches ``C -> A -> object``." msgstr "" "Για παράδειγμα, εάν :attr:`~type.__mro__` του *object_or_type* είναι ``D -> " -"B -> C -> A -> object`` και η τιμή του *type* είναι ``B``, τότε η :func:" -"`super` αναζητά ``C -> A -> object``." +"B -> C -> A -> object`` και η τιμή του *type* είναι ``B``, τότε " +"η :func:`super` αναζητά ``C -> A -> object``." -#: library/functions.rst:1989 +#: library/functions.rst:1993 msgid "" "The :attr:`~type.__mro__` attribute of the class corresponding to " -"*object_or_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." +"*object_or_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 "" "Το χαρακτηριστικό :attr:`~type.__mro__` της κλάσης που αντιστοιχεί σε λίστες " "του *object_or_type* παραθέτει τη σειρά αναζήτησης ανάλυσης μεθόδου που " @@ -3924,7 +3960,7 @@ msgstr "" "χαρακτηριστικό είναι δυναμικό και μπορεί να αλλάξει κάθε φορά που " "ενημερώνεται η ιεραρχία κληρονομικότητας." -#: library/functions.rst:1994 +#: library/functions.rst:1998 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. " @@ -3937,7 +3973,7 @@ msgstr "" "είναι ένας τύπος, το ``issubclass(type2, type)`` πρέπει να είναι αληθές " "(αυτό είναι χρήσιμο για μεθόδους κλάσης)." -#: library/functions.rst:1999 +#: library/functions.rst:2003 msgid "" "When called directly within an ordinary method of a class, both arguments " "may be omitted (\"zero-argument :func:`!super`\"). In this case, *type* will " @@ -3954,7 +3990,7 @@ msgstr "" "αναμένεται μέσα σε φωλιασμένες συναρτήσεις, συμπεριλαμβανομένων και των " "γεννητριών εκφράσεων, οι οποίες δημιουργούν έμμεσα φωλιασμένες συναρτήσεις.)" -#: library/functions.rst:2006 +#: library/functions.rst:2010 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 " @@ -3967,7 +4003,7 @@ msgstr "" "έτσι τον κώδικα πιο διατηρήσιμο. Αυτή η χρήση είναι πολύ παράλληλη με τη " "χρήση του *super* σε άλλες γλώσσες προγραμματισμού." -#: library/functions.rst:2011 +#: library/functions.rst:2015 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 " @@ -3991,13 +4027,13 @@ msgstr "" "διάταξη μπορεί να περιλαμβάνει αδερφικές κλάσεις πριν από τον χρόνο " "εκτέλεσης)." -#: library/functions.rst:2021 +#: library/functions.rst:2025 msgid "For both use cases, a typical superclass call looks like this::" msgstr "" "Και για τις δύο περιπτώσεις χρήσης, μια τυπική κλήση υπερκλάσης μοιάζει με " "αυτό::" -#: library/functions.rst:2023 +#: library/functions.rst:2027 msgid "" "class C(B):\n" " def method(self, arg):\n" @@ -4009,7 +4045,7 @@ msgstr "" " super().method(arg) # This does the same thing as:\n" " # super(C, self).method(arg)" -#: library/functions.rst:2028 +#: library/functions.rst:2032 msgid "" "In addition to method lookups, :func:`super` also works for attribute " "lookups. One possible use case for this is calling :term:`descriptors " @@ -4019,7 +4055,7 @@ msgstr "" "αναζητήσεις χαρακτηριστικών. Μια πιθανή περίπτωση χρήσης για αυτό είναι η " "κλήση :term:`descriptors ` σε μια κλάση γονέα ή αδελφού." -#: library/functions.rst:2032 +#: library/functions.rst:2036 msgid "" "Note that :func:`super` is implemented as part of the binding process for " "explicit dotted attribute lookups such as ``super().__getitem__(name)``. It " @@ -4029,14 +4065,14 @@ msgid "" "using statements or operators such as ``super()[name]``." msgstr "" "Λάβετε υπόψη ότι το :func:`super` υλοποιείται ως μέρος της διαδικασίας " -"δέσμευσης για ρητές αναζητήσεις χαρακτηριστικών με κουκκίδες όπως ``super()." -"__getitem__(name)``. Το κάνει εφαρμόζοντας τη δικιά του μέθοδο :meth:" -"`~object.__getattribute__` για αναζήτηση κλάσεων με προβλέψιμη σειρά που " -"υποστηρίζει πολλαπλή κληρονομικότητα. Συνεπώς, η :func:`super` δεν έχει " -"οριστεί για σιωπηρές αναζητήσεις που χρησιμοποιούν δηλώσεις ή τελεστές όπως " -"``super()[name]``." +"δέσμευσης για ρητές αναζητήσεις χαρακτηριστικών με κουκκίδες όπως " +"``super().__getitem__(name)``. Το κάνει εφαρμόζοντας τη δικιά του " +"μέθοδο :meth:`~object.__getattribute__` για αναζήτηση κλάσεων με προβλέψιμη " +"σειρά που υποστηρίζει πολλαπλή κληρονομικότητα. Συνεπώς, η :func:`super` δεν " +"έχει οριστεί για σιωπηρές αναζητήσεις που χρησιμοποιούν δηλώσεις ή τελεστές " +"όπως ``super()[name]``." -#: library/functions.rst:2040 +#: library/functions.rst:2044 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 " @@ -4045,33 +4081,33 @@ msgid "" "necessary details to correctly retrieve the class being defined, as well as " "accessing the current instance for ordinary methods." msgstr "" -"Λάβετε επίσης υπόψη ότι, εκτός από τη μορφή μηδενικού ορίσματος, η :func:" -"`super` δεν περιορίζεται στη χρήση μεθόδων εντός. Η φόρμα δύο ορισμάτων " -"καθορίζει ακριβώς τα ορίσματα και κάνει τις κατάλληλες αναφορές. Η φόρμα " -"μηδενικού ορίσματος λειτουργεί μόνο μέσα σε έναν ορισμό κλάσης, καθώς ο " -"μεταγλωττιστής συμπληρώνει τις απαραίτητες λεπτομέρειες για την σωστή " -"ανάκτηση της κλάσης που ορίζεται, καθώς και για την πρόσβαση στην τρέχουσα " -"παρουσία για συνηθισμένες μεθόδους." +"Λάβετε επίσης υπόψη ότι, εκτός από τη μορφή μηδενικού ορίσματος, " +"η :func:`super` δεν περιορίζεται στη χρήση μεθόδων εντός. Η φόρμα δύο " +"ορισμάτων καθορίζει ακριβώς τα ορίσματα και κάνει τις κατάλληλες αναφορές. " +"Η φόρμα μηδενικού ορίσματος λειτουργεί μόνο μέσα σε έναν ορισμό κλάσης, " +"καθώς ο μεταγλωττιστής συμπληρώνει τις απαραίτητες λεπτομέρειες για την " +"σωστή ανάκτηση της κλάσης που ορίζεται, καθώς και για την πρόσβαση στην " +"τρέχουσα παρουσία για συνηθισμένες μεθόδους." -#: library/functions.rst:2047 +#: library/functions.rst:2051 msgid "" -"For practical suggestions on how to design cooperative classes using :func:" -"`super`, see `guide to using super() `_." +"For practical suggestions on how to design cooperative classes " +"using :func:`super`, see `guide to using super() `_." msgstr "" "Για πρακτικές προτάσεις σχετικά με το πώς να σχεδιάσετε συνεργατικές τάξεις " "χρησιμοποιώντας το :func:`super`, ανατρέξτε `οδηγός χρήσης super() `_." -#: library/functions.rst:2051 +#: library/functions.rst:2055 msgid "" -":class:`super` objects are now :mod:`pickleable ` and :mod:" -"`copyable `." +":class:`super` objects are now :mod:`pickleable ` " +"and :mod:`copyable `." msgstr "" -"Τα αντικείμενα :class:`super` είναι πλέον :mod:`pickleable ` και :" -"mod:`copyable `." +"Τα αντικείμενα :class:`super` είναι πλέον :mod:`pickleable ` " +"και :mod:`copyable `." -#: library/functions.rst:2061 +#: library/functions.rst:2064 msgid "" "Rather than being a function, :class:`tuple` is actually an immutable " "sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." @@ -4080,17 +4116,17 @@ msgstr "" "αμετάβλητος τύπος ακολουθίας, όπως τεκμηριώνεται στα :ref:`typesseq-tuple` " "και :ref:`typesseq`." -#: library/functions.rst:2070 +#: library/functions.rst:2073 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__`." +"type object and generally the same object as returned " +"by :attr:`object.__class__`." msgstr "" "Με ένα όρισμα, επιστρέψτε τον τύπο ενός *object*. Η τιμή που επιστρέφεται " "είναι ένα αντικείμενο τύπου και γενικά το ίδιο αντικείμενο με αυτό που " "επιστρέφεται από το :attr:`object.__class__`." -#: library/functions.rst:2074 +#: library/functions.rst:2077 msgid "" "The :func:`isinstance` built-in function is recommended for testing the type " "of an object, because it takes subclasses into account." @@ -4098,7 +4134,7 @@ msgstr "" "Η ενσωματωμένη συνάρτηση :func:`isinstance` συνίσταται για τη δοκιμή του " "τύπου ενός αντικειμένου, επειδή λαμβάνει υπόψη τις υποκλάσεις." -#: library/functions.rst:2077 +#: library/functions.rst:2080 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 " @@ -4106,26 +4142,26 @@ msgid "" "tuple contains the base classes and becomes the :attr:`~type.__bases__` " "attribute; if empty, :class:`object`, the ultimate base of all classes, is " "added. The *dict* dictionary contains attribute and method definitions for " -"the class body; it may be copied or wrapped before becoming the :attr:`~type." -"__dict__` attribute. The following two statements create identical :class:`!" -"type` objects:" +"the class body; it may be copied or wrapped before becoming " +"the :attr:`~type.__dict__` attribute. The following two statements create " +"identical :class:`!type` objects:" msgstr "" "Με τρία ορίσματα, επιστρέφει ένα αντικείμενο νέου τύπου. Αυτή είναι " "ουσιαστικά μια δυναμική μορφή της δήλωσης :keyword:`class`. Η συμβολοσειρά " -"*name* είναι το όνομα της κλάσης και γίνεται το χαρακτηριστικό :attr:`~type." -"__name__`. Η πλειάδα *bases* περιέχει τις βασικές κλάσεις και γίνεται το " -"χαρακτηριστικό :attr:`~type.__bases__` ∙ αν είναι κενό, προστίθεται το :" -"class:`object`, η τελική βάση όλων των κλάσεων. Το λεξικό *dict* περιέχει " -"ορισμούς χαρακτηριστικών και μεθόδων για το σώμα της κλάσης∙ μπορεί να " -"αντιγραφεί ή να προσαρμοστεί πριν γίνει το χαρακτηριστικό :attr:`~type." -"__dict__`. Οι ακόλουθες δύο προτάσεις δημιουργούν πανομοιότυπα αντικείμενα :" -"class:`!type`" - -#: library/functions.rst:2092 +"*name* είναι το όνομα της κλάσης και γίνεται το " +"χαρακτηριστικό :attr:`~type.__name__`. Η πλειάδα *bases* περιέχει τις " +"βασικές κλάσεις και γίνεται το χαρακτηριστικό :attr:`~type.__bases__` ∙ αν " +"είναι κενό, προστίθεται το :class:`object`, η τελική βάση όλων των κλάσεων. " +"Το λεξικό *dict* περιέχει ορισμούς χαρακτηριστικών και μεθόδων για το σώμα " +"της κλάσης∙ μπορεί να αντιγραφεί ή να προσαρμοστεί πριν γίνει το " +"χαρακτηριστικό :attr:`~type.__dict__`. Οι ακόλουθες δύο προτάσεις " +"δημιουργούν πανομοιότυπα αντικείμενα :class:`!type`¨:" + +#: library/functions.rst:2095 msgid "See also:" msgstr "Δείτε επίσης:" -#: library/functions.rst:2094 +#: library/functions.rst:2097 msgid "" ":ref:`Documentation on attributes and methods on classes `." @@ -4133,11 +4169,11 @@ msgstr "" ":ref:`Τεκμηρίωση για χαρακτηριστικά και μεθόδους σε κλάσεις `." -#: library/functions.rst:2095 +#: library/functions.rst:2098 msgid ":ref:`bltin-type-objects`" msgstr ":ref:`bltin-type-objects`" -#: library/functions.rst:2097 +#: library/functions.rst:2100 msgid "" "Keyword arguments provided to the three argument form are passed to the " "appropriate metaclass machinery (usually :meth:`~object.__init_subclass__`) " @@ -4145,15 +4181,15 @@ msgid "" "would." msgstr "" "Τα ορίσματα λέξεων-κλειδιών που παρέχονται στη φόρμα τριών ορισμάτων " -"μεταβιβάζονται στον κατάλληλο μηχανισμό μετακλάσης (συνήθως :meth:`~object." -"__init_subclass__`) με τον ίδιο τρόπο που θα έκαναν οι λέξεις-κλειδιά στον " -"ορισμό μιας κλάσης (εκτός από το *metaclass*)." +"μεταβιβάζονται στον κατάλληλο μηχανισμό μετακλάσης " +"(συνήθως :meth:`~object.__init_subclass__`) με τον ίδιο τρόπο που θα έκαναν " +"οι λέξεις-κλειδιά στον ορισμό μιας κλάσης (εκτός από το *metaclass*)." -#: library/functions.rst:2102 +#: library/functions.rst:2105 msgid "See also :ref:`class-customization`." msgstr "Δείτε επίσης :ref:`class-customization`." -#: library/functions.rst:2104 +#: library/functions.rst:2107 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." @@ -4162,7 +4198,7 @@ msgstr "" "δεν μπορούν πλέον να χρησιμοποιούν τη φόρμα ενός επιχειρήματος για να λάβουν " "τον τύπο ενός αντικειμένου." -#: library/functions.rst:2111 +#: library/functions.rst:2114 msgid "" "Return the :attr:`~object.__dict__` attribute for a module, class, instance, " "or any other object with a :attr:`!__dict__` attribute." @@ -4171,24 +4207,26 @@ msgstr "" "στιγμιότυπο, ή οποιοδήποτε άλλο αντικείμενο με ένα χαρακτηριστικό :attr:`!" "__dict__`." -#: library/functions.rst:2114 +#: library/functions.rst:2117 msgid "" -"Objects such as modules and instances have an updateable :attr:`~object." -"__dict__` attribute; however, other objects may have write restrictions on " -"their :attr:`!__dict__` attributes (for example, classes use a :class:`types." -"MappingProxyType` to prevent direct dictionary updates)." +"Objects such as modules and instances have an " +"updateable :attr:`~object.__dict__` attribute; however, other objects may " +"have write restrictions on their :attr:`!__dict__` attributes (for example, " +"classes use a :class:`types.MappingProxyType` to prevent direct dictionary " +"updates)." msgstr "" -"Αντικείμενα όπως modules και instances έχουν ένα χαρακτηριστικό :attr:" -"`~object.__dict__` με δυνατότητα ενημέρωσης∙ ωστόσο, άλλα αντικείμενα μπορεί " -"να έχουν περιορισμούς εγγραφής στα χαρακτηριστικά τους :attr:`!__dict__` " -"(για παράδειγμα, οι κλάσεις χρησιμοποιούν ένα :class:`types." -"MappingProxyType` για την αποτροπή άμεσων ενημερώσεων λεξικού)." +"Αντικείμενα όπως modules και instances έχουν ένα " +"χαρακτηριστικό :attr:`~object.__dict__` με δυνατότητα ενημέρωσης∙ ωστόσο, " +"άλλα αντικείμενα μπορεί να έχουν περιορισμούς εγγραφής στα χαρακτηριστικά " +"τους :attr:`!__dict__` (για παράδειγμα, οι κλάσεις χρησιμοποιούν " +"ένα :class:`types.MappingProxyType` για την αποτροπή άμεσων ενημερώσεων " +"λεξικού)." -#: library/functions.rst:2119 +#: library/functions.rst:2122 msgid "Without an argument, :func:`vars` acts like :func:`locals`." msgstr "Χωρίς ένα όρισμα, :func:`vars` συμπεριφέρεται όπως :func:`locals`." -#: library/functions.rst:2121 +#: library/functions.rst:2124 msgid "" "A :exc:`TypeError` exception is raised if an object is specified but it " "doesn't have a :attr:`~object.__dict__` attribute (for example, if its class " @@ -4199,7 +4237,7 @@ msgstr "" "παράδειγμα, εάν η κλάση του ορίζει το :attr:`~object.__slots__` " "χαρακτηριστικό)." -#: library/functions.rst:2127 +#: library/functions.rst:2130 msgid "" "The result of calling this function without an argument has been updated as " "described for the :func:`locals` builtin." @@ -4207,7 +4245,7 @@ msgstr "" "Το αποτέλεσμα της κλήσης αυτής της συνάρτησης χωρίς ένα όρισμα έχει " "ενημερωθεί, όπως περιγράφεται για τη ενσωματωμένη :func:`locals`." -#: library/functions.rst:2133 +#: library/functions.rst:2136 msgid "" "Iterate over several iterables in parallel, producing tuples with an item " "from each one." @@ -4215,11 +4253,11 @@ msgstr "" "Επανάληψη σε πολλούς iterables παράλληλα, δημιουργώντας πλειάδες με ένα " "αντικείμενο από το καθένα." -#: library/functions.rst:2136 +#: library/functions.rst:2139 msgid "Example::" msgstr "Παράδειγμα::" -#: library/functions.rst:2138 +#: library/functions.rst:2141 msgid "" ">>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):\n" "... print(item)\n" @@ -4235,7 +4273,7 @@ msgstr "" "(2, 'spice')\n" "(3, 'everything nice')" -#: library/functions.rst:2145 +#: library/functions.rst:2148 msgid "" "More formally: :func:`zip` returns an iterator of tuples, where the *i*-th " "tuple contains the *i*-th element from each of the argument iterables." @@ -4244,27 +4282,27 @@ msgstr "" "πλειάδα περιέχει το *i*-ο στοιχείο από κάθε ένα από τους επαναλήψιμους " "ορισμάτων." -#: library/functions.rst:2148 +#: library/functions.rst:2151 msgid "" "Another way to think of :func:`zip` is that it turns rows into columns, and " -"columns into rows. This is similar to `transposing a matrix `_." +"columns into rows. This is similar to `transposing a matrix `_." msgstr "" "Ένας άλλος τρόπος για να σκεφτείτε τη :func:`zip` είναι ότι μετατρέπει τις " "γραμμές σε στήλες, και τις στήλες σε γραμμές. Αυτό είναι παρόμοιο με " "`μεταφορά μιας μήτρας `_." -#: library/functions.rst:2152 +#: library/functions.rst:2155 msgid "" ":func:`zip` is lazy: The elements won't be processed until the iterable is " -"iterated on, e.g. by a :keyword:`!for` loop or by wrapping in a :class:" -"`list`." +"iterated on, e.g. by a :keyword:`!for` loop or by wrapping in " +"a :class:`list`." msgstr "" "Το :func:`zip` είναι τεμπέλης: Τα στοιχεία δεν θα υποβληθούν σε επεξεργασία " "μέχρι να επαναληφθεί ο iterable, π.χ. με έναν βρόχο :keyword:`!for` ή με " "αναδίπλωση σε μια :class:`list`." -#: library/functions.rst:2156 +#: library/functions.rst:2159 msgid "" "One thing to consider is that the iterables passed to :func:`zip` could have " "different lengths; sometimes by design, and sometimes because of a bug in " @@ -4277,7 +4315,7 @@ msgstr "" "κώδικα που προετοίμασε αυτά τα iterables. Η Python προσφέρει τρεις " "διαφορετικές προσεγγίσεις για την αντιμετώπιση αυτού του ζητήματος::" -#: library/functions.rst:2161 +#: library/functions.rst:2164 msgid "" "By default, :func:`zip` stops when the shortest iterable is exhausted. It " "will ignore the remaining items in the longer iterables, cutting off the " @@ -4287,7 +4325,7 @@ msgstr "" "Αυτό θα αγνοήσει τα υπόλοιπα στοιχεία στους μεγαλύτερους iterables, κόβοντας " "το αποτέλεσμα στο μήκος του συντομότερου iterable::" -#: library/functions.rst:2165 +#: library/functions.rst:2168 msgid "" ">>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))\n" "[(0, 'fee'), (1, 'fi'), (2, 'fo')]" @@ -4295,7 +4333,7 @@ msgstr "" ">>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))\n" "[(0, 'fee'), (1, 'fi'), (2, 'fo')]" -#: library/functions.rst:2168 +#: library/functions.rst:2171 msgid "" ":func:`zip` is often used in cases where the iterables are assumed to be of " "equal length. In such cases, it's recommended to use the ``strict=True`` " @@ -4303,10 +4341,10 @@ msgid "" msgstr "" "Η :func:`zip` χρησιμοποιείται συχνά σε περιπτώσεις όπου τα iterables " "υποτίθεται ότι έχουν ίσο μήκος. Σε τέτοιες περιπτώσεις, συνίσταται η χρήση " -"της επιλογής ``strict=True``. Η έξοδος είναι ίδια με την κανονική :func:" -"`zip`::" +"της επιλογής ``strict=True``. Η έξοδος είναι ίδια με την " +"κανονική :func:`zip`::" -#: library/functions.rst:2172 +#: library/functions.rst:2175 msgid "" ">>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))\n" "[('a', 1), ('b', 2), ('c', 3)]" @@ -4314,15 +4352,15 @@ msgstr "" ">>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))\n" "[('a', 1), ('b', 2), ('c', 3)]" -#: library/functions.rst:2175 +#: library/functions.rst:2178 msgid "" "Unlike the default behavior, it raises a :exc:`ValueError` if one iterable " "is exhausted before the others:" msgstr "" -"Σε αντίθεση με την προεπιλεγμένη συμπεριφορά, γίνεται raise ένα :exc:" -"`ValueError` εάν ένα iterable εξαντληθεί πριν από τα άλλα:" +"Σε αντίθεση με την προεπιλεγμένη συμπεριφορά, γίνεται raise " +"ένα :exc:`ValueError` εάν ένα iterable εξαντληθεί πριν από τα άλλα:" -#: library/functions.rst:2193 +#: library/functions.rst:2196 msgid "" "Without the ``strict=True`` argument, any bug that results in iterables of " "different lengths will be silenced, possibly manifesting as a hard-to-find " @@ -4332,17 +4370,17 @@ msgstr "" "μήκη διαφορετικού μήκους θα τεθεί σε σίγαση, πιθανώς να εμφανίζεται ως " "δυσεύρετο σφάλμα σε άλλο μέρος του προγράμματος." -#: library/functions.rst:2197 +#: library/functions.rst:2200 msgid "" "Shorter iterables can be padded with a constant value to make all the " -"iterables have the same length. This is done by :func:`itertools." -"zip_longest`." +"iterables have the same length. This is done " +"by :func:`itertools.zip_longest`." msgstr "" "Οι μικρότεροι iterables μπορούν να συμπληρωθούν σε μια σταθερή τιμή ώστε όλα " -"τα iterables να έχουνε το ίδιο μήκος. Αυτό γίνεται από το :func:`itertools." -"zip_longest`." +"τα iterables να έχουνε το ίδιο μήκος. Αυτό γίνεται από " +"το :func:`itertools.zip_longest`." -#: library/functions.rst:2201 +#: library/functions.rst:2204 msgid "" "Edge cases: With a single iterable argument, :func:`zip` returns an iterator " "of 1-tuples. With no arguments, it returns an empty iterator." @@ -4350,11 +4388,11 @@ msgstr "" "Περιπτώσεις άκρων: Με ένα μόνο επαναληπτικό όρισμα, η :func:`zip` επιστρέφει " "έναν iterator 1-πλειάδων. Χωρίς ορίσματα, επιστρέφει έναν κενό iterator." -#: library/functions.rst:2204 +#: library/functions.rst:2207 msgid "Tips and tricks:" msgstr "Συμβουλές και κόλπα:" -#: library/functions.rst:2206 +#: library/functions.rst:2209 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 " @@ -4370,7 +4408,7 @@ msgstr "" "επαναλήπτη. Αυτό έχει ως αποτέλεσμα τη διαίρεση της εισόδου σε κομμάτια " "μήκους." -#: library/functions.rst:2212 +#: library/functions.rst:2215 msgid "" ":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " "list::" @@ -4378,7 +4416,7 @@ msgstr "" "Η :func:`zip` σε συνδυασμό με τον τελεστή ``*`` μπορεί να χρησιμοποιηθεί για " "την αποσυμπίεση μιας λίστας::" -#: library/functions.rst:2215 +#: library/functions.rst:2218 msgid "" ">>> x = [1, 2, 3]\n" ">>> y = [4, 5, 6]\n" @@ -4396,11 +4434,11 @@ msgstr "" ">>> x == list(x2) and y == list(y2)\n" "True" -#: library/functions.rst:2223 +#: library/functions.rst:2226 msgid "Added the ``strict`` argument." msgstr "Προστέθηκε το όρισμα ``strict``." -#: library/functions.rst:2235 +#: library/functions.rst:2238 msgid "" "This is an advanced function that is not needed in everyday Python " "programming, unlike :func:`importlib.import_module`." @@ -4408,7 +4446,7 @@ msgstr "" "Αυτή είναι μια προηγμένη συνάρτηση που δεν χρειάζεται στον καθημερινό " "προγραμματισμό της Python, σε αντίθεση με το :func:`importlib.import_module`." -#: library/functions.rst:2238 +#: library/functions.rst:2241 msgid "" "This function is invoked by the :keyword:`import` statement. It can be " "replaced (by importing the :mod:`builtins` module and assigning to " @@ -4421,15 +4459,15 @@ msgid "" msgstr "" "Αυτή η συνάρτηση καλείται από τη δήλωση :keyword:`import`. Μπορεί να " "αντικατασταθεί (με εισαγωγή του module :mod:`builtins` και αντιστοίχιση σε " -"``builtins.__import__``) προκειμένου να αλλάξει η σημασιολογία της δήλωσης :" -"keyword:`!import`, αλλά αυτό αποθαρρύνεται **σθεναρά**, καθώς είναι συνήθως " -"απλούστερο να χρησιμοποιήσετε τα άγκιστρα εισαγωγής (δείτε :pep:`302`) για " -"την επίτευξη των ίδιων στόχων και δεν προκαλεί προβλήματα με τον κώδικα που " -"προϋποθέτει την χρήση της προεπιλεγμένης υλοποίησης εισαγωγής. Η άμεση " -"χρήση του :func:`__import__` επίσης αποθαρρύνεται υπέρ του :func:`importlib." -"import_module`." +"``builtins.__import__``) προκειμένου να αλλάξει η σημασιολογία της " +"δήλωσης :keyword:`!import`, αλλά αυτό αποθαρρύνεται **σθεναρά**, καθώς είναι " +"συνήθως απλούστερο να χρησιμοποιήσετε τα άγκιστρα εισαγωγής " +"(δείτε :pep:`302`) για την επίτευξη των ίδιων στόχων και δεν προκαλεί " +"προβλήματα με τον κώδικα που προϋποθέτει την χρήση της προεπιλεγμένης " +"υλοποίησης εισαγωγής. Η άμεση χρήση του :func:`__import__` επίσης " +"αποθαρρύνεται υπέρ του :func:`importlib.import_module`." -#: library/functions.rst:2247 +#: library/functions.rst:2250 msgid "" "The function imports the module *name*, potentially using the given " "*globals* and *locals* to determine how to interpret the name in a package " @@ -4446,7 +4484,7 @@ msgstr "" "χρησιμοποιεί τα *globals* της μόνο για να προσδιορίσει το πλαίσιο του " "πακέτου της δήλωσης :keyword:`import`." -#: library/functions.rst:2254 +#: library/functions.rst:2257 msgid "" "*level* specifies whether to use absolute or relative imports. ``0`` (the " "default) means only perform absolute imports. Positive values for *level* " @@ -4460,7 +4498,7 @@ msgstr "" "σε σχέση με τον κατάλογο του module που καλεί την :func:`__import__` (δείτε " "το :pep:`328` για λεπτομέρειες)." -#: library/functions.rst:2260 +#: library/functions.rst:2263 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 " @@ -4472,7 +4510,7 @@ msgstr "" "κουκκίδα), *όχι* το module που ονομάζεται *name*. Ωστόσο, όταν δίνεται ένα " "μη κενό όρισμα *fromlist*, επιστρέφεται το module με το όνομα *name*." -#: library/functions.rst:2265 +#: library/functions.rst:2268 msgid "" "For example, the statement ``import spam`` results in bytecode resembling " "the following code::" @@ -4480,19 +4518,19 @@ msgstr "" "Για παράδειγμα, η δήλωση ``import spam`` καταλήγει σε bytecode που μοιάζει " "με τον ακόλουθο κώδικα::" -#: library/functions.rst:2268 +#: library/functions.rst:2271 msgid "spam = __import__('spam', globals(), locals(), [], 0)" msgstr "spam = __import__('spam', globals(), locals(), [], 0)" -#: library/functions.rst:2270 +#: library/functions.rst:2273 msgid "The statement ``import spam.ham`` results in this call::" msgstr "Η δήλωση ``import spam.ham`` καταλήγει σε αυτήν την κλήση::" -#: library/functions.rst:2272 +#: library/functions.rst:2275 msgid "spam = __import__('spam.ham', globals(), locals(), [], 0)" msgstr "spam = __import__('spam.ham', globals(), locals(), [], 0)" -#: library/functions.rst:2274 +#: library/functions.rst:2277 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." @@ -4501,7 +4539,7 @@ msgstr "" "εδώ, επειδή αυτό είναι το αντικείμενο που συνδέεται με ένα όνομα με τη " "δήλωση :keyword:`import`." -#: library/functions.rst:2277 +#: library/functions.rst:2280 msgid "" "On the other hand, the statement ``from spam.ham import eggs, sausage as " "saus`` results in ::" @@ -4509,7 +4547,7 @@ msgstr "" "Από την άλλη πλευρά, η δήλωση ``from spam.ham import eggs, sausage as saus`` " "καταλήγει σε ::" -#: library/functions.rst:2280 +#: library/functions.rst:2283 msgid "" "_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)\n" "eggs = _temp.eggs\n" @@ -4519,7 +4557,7 @@ msgstr "" "eggs = _temp.eggs\n" "saus = _temp.sausage" -#: library/functions.rst:2284 +#: library/functions.rst:2287 msgid "" "Here, the ``spam.ham`` module is returned from :func:`__import__`. From " "this object, the names to import are retrieved and assigned to their " @@ -4529,7 +4567,7 @@ msgstr "" "αυτό το αντικείμενο, τα ονόματα προς εισαγωγή ανακτώνται και εκχωρούνται στα " "αντίστοιχα ονόματά τους." -#: library/functions.rst:2288 +#: library/functions.rst:2291 msgid "" "If you simply want to import a module (potentially within a package) by " "name, use :func:`importlib.import_module`." @@ -4537,7 +4575,7 @@ msgstr "" "Εάν θέλετε απλώς να εισάγετε ένα module (ενδεχομένως μέσα σε ένα πακέτο) με " "το όνομα, χρησιμοποιήστε το :func:`importlib.import_module`." -#: library/functions.rst:2291 +#: library/functions.rst:2294 msgid "" "Negative values for *level* are no longer supported (which also changes the " "default value to 0)." @@ -4545,7 +4583,7 @@ msgstr "" "Αρνητικές τιμές για το *level* δεν υποστηρίζονται πλέον (το οποίο επίσης " "αλλάζει την προεπιλεγμένη τιμή σε 0)." -#: library/functions.rst:2295 +#: library/functions.rst:2298 msgid "" "When the command line options :option:`-E` or :option:`-I` are being used, " "the environment variable :envvar:`PYTHONCASEOK` is now ignored." @@ -4554,11 +4592,11 @@ msgstr "" "I`, τότε η μεταβλητή περιβάλλοντος :envvar:`PYTHONCASEOK` δεν λαμβάνεται " "υπόψιν." -#: library/functions.rst:2300 +#: library/functions.rst:2303 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: library/functions.rst:2301 +#: library/functions.rst:2304 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 " @@ -4573,107 +4611,107 @@ msgstr "" msgid "Boolean" msgstr "Boolean" -#: library/functions.rst:2068 +#: library/functions.rst:2071 msgid "type" msgstr "τύπος" -#: library/functions.rst:654 +#: library/functions.rst:652 msgid "built-in function" msgstr "ενσωματωμένη συνάρτηση" -#: library/functions.rst:654 +#: library/functions.rst:652 msgid "exec" msgstr "exec" -#: library/functions.rst:752 +#: library/functions.rst:750 msgid "NaN" msgstr "NaN" -#: library/functions.rst:752 +#: library/functions.rst:750 msgid "Infinity" msgstr "Άπειρο" -#: library/functions.rst:822 +#: library/functions.rst:820 msgid "__format__" msgstr "__format__" -#: library/functions.rst:1937 +#: library/functions.rst:1939 msgid "string" msgstr "string" -#: library/functions.rst:822 +#: library/functions.rst:820 msgid "format() (built-in function)" msgstr "format() (ενσωματωμένη συνάρτηση)" -#: library/functions.rst:1337 +#: library/functions.rst:1334 msgid "file object" msgstr "αντικείμενο αρχείου" -#: library/functions.rst:1458 +#: library/functions.rst:1455 msgid "open() built-in function" msgstr "open() ενσωματωμένη συνάρτηση" -#: library/functions.rst:1365 +#: library/functions.rst:1362 msgid "file" msgstr "αρχείο" -#: library/functions.rst:1365 +#: library/functions.rst:1362 msgid "modes" msgstr "λειτουργίες" -#: library/functions.rst:1458 +#: library/functions.rst:1455 msgid "universal newlines" msgstr "καθολικές νέες γραμμές" -#: library/functions.rst:1519 +#: library/functions.rst:1516 msgid "line-buffered I/O" msgstr "γραμμική προσωρινή μνήμη I/O" -#: library/functions.rst:1519 +#: library/functions.rst:1516 msgid "unbuffered I/O" msgstr "unbuffered I/O" -#: library/functions.rst:1519 +#: library/functions.rst:1516 msgid "buffer size, I/O" msgstr "μέγεθος bugger, I/O" -#: library/functions.rst:1519 +#: library/functions.rst:1516 msgid "I/O control" msgstr "Έλεγχος I/O" -#: library/functions.rst:1519 +#: library/functions.rst:1516 msgid "buffering" msgstr "buffering" -#: library/functions.rst:1519 +#: library/functions.rst:1516 msgid "text mode" msgstr "λειτουργία κειμένου" -#: library/functions.rst:2229 +#: library/functions.rst:2232 msgid "module" msgstr "module" -#: library/functions.rst:1519 +#: library/functions.rst:1516 msgid "sys" msgstr "sys" -#: library/functions.rst:1937 +#: library/functions.rst:1939 msgid "str() (built-in function)" msgstr "str() (ενσωματωμένη συνάρτηση)" -#: library/functions.rst:2068 +#: library/functions.rst:2071 msgid "object" msgstr "αντικείμενο" -#: library/functions.rst:2229 +#: library/functions.rst:2232 msgid "statement" msgstr "δήλωση" -#: library/functions.rst:2229 +#: library/functions.rst:2232 msgid "import" msgstr "import" -#: library/functions.rst:2229 +#: library/functions.rst:2232 msgid "builtins" msgstr "builtins" @@ -4690,14 +4728,14 @@ msgstr "builtins" #~ 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." +#~ "function blocks, but not in class blocks. Note that at the module " +#~ "level, :func:`locals` and :func:`globals` are the same dictionary." #~ msgstr "" #~ "Ενημέρωση και επιστροφή ενός λεξικού που αντιπροσωπεύει τον τρέχοντα " -#~ "πίνακα τοπικών συμβόλων. Οι ελεύθερες μεταβλητές επιστρέφονται από :func:" -#~ "`locals` όταν καλείται σε μπλοκ συναρτήσεων, αλλά όχι σε μπλοκ κλάσεων. " -#~ "Σημειώστε ότι σε επίπεδο module, οι :func:`locals` και :func:`globals` " -#~ "είναι το ίδιο λεξικό." +#~ "πίνακα τοπικών συμβόλων. Οι ελεύθερες μεταβλητές επιστρέφονται " +#~ "από :func:`locals` όταν καλείται σε μπλοκ συναρτήσεων, αλλά όχι σε μπλοκ " +#~ "κλάσεων. Σημειώστε ότι σε επίπεδο module, οι :func:`locals` " +#~ "και :func:`globals` είναι το ίδιο λεξικό." #~ msgid "" #~ "The contents of this dictionary should not be modified; changes may not " @@ -4740,14 +4778,15 @@ msgstr "builtins" #~ "παράμετρος δεν μπορεί ποτέ να είναι μια συμβολοσειρά. Κάθε όρισμα μπορεί " #~ "να είναι οποιουδήποτε αριθμητικού τύπου (συμπεριλαμβανομένου του " #~ "μιγαδικού). Εάν το *imag* παραλειφθεί, είναι μηδέν από προεπιλογή, και ο " -#~ "constructor χρησιμεύει ως αριθμητική μετατροπή όπως :class:`int` και :" -#~ "class:`float`. Εάν παραληφθούν και τα δύο ορίσματα, επιστρέφει το ``0j``." +#~ "constructor χρησιμεύει ως αριθμητική μετατροπή όπως :class:`int` " +#~ "και :class:`float`. Εάν παραληφθούν και τα δύο ορίσματα, επιστρέφει το " +#~ "``0j``." #~ 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`." +#~ "``complex('1+2j')`` is fine, but ``complex('1 + 2j')`` " +#~ "raises :exc:`ValueError`." #~ msgstr "" #~ "Κατά την μετατροπή από μια συμβολοσειρά, η συμβολοσειρά δεν πρέπει να " #~ "περιέχει κενό διάστημα γύρω από τον κεντρικό τελεστή ``+`` ή ``-``. Για " diff --git a/library/functools.po b/library/functools.po index 86adc65a..1ef93a4b 100644 --- a/library/functools.po +++ b/library/functools.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -52,7 +52,7 @@ msgid "" "with a size limit." msgstr "" -#: library/functools.rst:291 +#: library/functools.rst:297 msgid "For example::" msgstr "" @@ -62,13 +62,11 @@ msgid "" "def factorial(n):\n" " return n * factorial(n-1) if n else 1\n" "\n" -">>> factorial(10) # no previously cached result, makes 11 recursive " -"calls\n" +">>> factorial(10) # no previously cached result, makes 11 recursive calls\n" "3628800\n" -">>> factorial(5) # just looks up cached value result\n" +">>> factorial(5) # no new calls, just returns the cached result\n" "120\n" -">>> factorial(12) # makes two new recursive calls, the other 10 are " -"cached\n" +">>> factorial(12) # two new recursive calls, factorial(10) is cached\n" "479001600" msgstr "" @@ -94,7 +92,7 @@ msgid "" "computed properties of instances that are otherwise effectively immutable." msgstr "" -#: library/functools.rst:142 library/functools.rst:432 +#: library/functools.rst:142 library/functools.rst:438 msgid "Example::" msgstr "" @@ -272,40 +270,40 @@ msgid "" "has no effect." msgstr "" -#: library/functools.rst:202 +#: library/functools.rst:205 msgid "" "To help measure the effectiveness of the cache and tune the *maxsize* " -"parameter, the wrapped function is instrumented with a :func:`cache_info` " +"parameter, the wrapped function is instrumented with a :func:`!cache_info` " "function that returns a :term:`named tuple` showing *hits*, *misses*, " "*maxsize* and *currsize*." msgstr "" -#: library/functools.rst:207 +#: library/functools.rst:213 msgid "" -"The decorator also provides a :func:`cache_clear` function for clearing or " +"The decorator also provides a :func:`!cache_clear` function for clearing or " "invalidating the cache." msgstr "" -#: library/functools.rst:210 +#: library/functools.rst:216 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 "" -#: library/functools.rst:214 +#: library/functools.rst:220 msgid "" "The cache keeps references to the arguments and return values until they age " "out of the cache or until the cache is cleared." msgstr "" -#: library/functools.rst:217 +#: library/functools.rst:223 msgid "" "If a method is cached, the ``self`` instance argument is included in the " "cache. See :ref:`faq-cache-method-calls`" msgstr "" -#: library/functools.rst:220 +#: library/functools.rst:226 msgid "" "An `LRU (least recently used) cache `_ works best when the " @@ -315,7 +313,7 @@ msgid "" "long-running processes such as web servers." msgstr "" -#: library/functools.rst:227 +#: library/functools.rst:233 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 " @@ -324,11 +322,11 @@ msgid "" "functions such as time() or random()." msgstr "" -#: library/functools.rst:233 +#: library/functools.rst:239 msgid "Example of an LRU cache for static web content::" msgstr "" -#: library/functools.rst:235 +#: library/functools.rst:241 msgid "" "@lru_cache(maxsize=32)\n" "def get_pep(num):\n" @@ -348,14 +346,14 @@ msgid "" "CacheInfo(hits=3, misses=8, maxsize=32, currsize=8)" msgstr "" -#: library/functools.rst:252 +#: library/functools.rst:258 msgid "" "Example of efficiently computing `Fibonacci numbers `_ using a cache to implement a `dynamic " "programming `_ technique::" msgstr "" -#: library/functools.rst:258 +#: library/functools.rst:264 msgid "" "@lru_cache(maxsize=None)\n" "def fib(n):\n" @@ -370,33 +368,33 @@ msgid "" "CacheInfo(hits=28, misses=16, maxsize=None, currsize=16)" msgstr "" -#: library/functools.rst:272 +#: library/functools.rst:278 msgid "Added the *typed* option." msgstr "" -#: library/functools.rst:275 +#: library/functools.rst:281 msgid "Added the *user_function* option." msgstr "" -#: library/functools.rst:278 +#: library/functools.rst:284 msgid "Added the function :func:`!cache_parameters`" msgstr "" -#: library/functools.rst:283 +#: library/functools.rst:289 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 "" -#: library/functools.rst:287 +#: library/functools.rst:293 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." +"The class must define one of :meth:`~object.__lt__`, :meth:`~object." +"__le__`, :meth:`~object.__gt__`, or :meth:`~object.__ge__`. In addition, the " +"class should supply an :meth:`~object.__eq__` method." msgstr "" -#: library/functools.rst:293 +#: library/functools.rst:299 msgid "" "@total_ordering\n" "class Student:\n" @@ -415,7 +413,7 @@ msgid "" " (other.lastname.lower(), other.firstname.lower()))" msgstr "" -#: library/functools.rst:311 +#: library/functools.rst:317 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 " @@ -424,7 +422,7 @@ msgid "" "rich comparison methods instead is likely to provide an easy speed boost." msgstr "" -#: library/functools.rst:320 +#: library/functools.rst:326 msgid "" "This decorator makes no attempt to override methods that have been declared " "in the class *or its superclasses*. Meaning that if a superclass defines a " @@ -432,19 +430,19 @@ msgid "" "the original method is abstract." msgstr "" -#: library/functools.rst:327 +#: library/functools.rst:333 msgid "" "Returning ``NotImplemented`` from the underlying comparison function for " "unrecognised types is now supported." msgstr "" -#: library/functools.rst:333 +#: library/functools.rst:339 msgid "" "A singleton object used as a sentinel to reserve a place for positional " "arguments when calling :func:`partial` and :func:`partialmethod`." msgstr "" -#: library/functools.rst:341 +#: library/functools.rst:347 msgid "" "Return a new :ref:`partial object` which when called will " "behave like *func* called with the positional arguments *args* and keyword " @@ -453,7 +451,7 @@ msgid "" "extend and override *keywords*. Roughly equivalent to::" msgstr "" -#: library/functools.rst:348 +#: library/functools.rst:354 msgid "" "def partial(func, /, *args, **keywords):\n" " def newfunc(*more_args, **more_keywords):\n" @@ -464,7 +462,7 @@ msgid "" " return newfunc" msgstr "" -#: library/functools.rst:356 +#: library/functools.rst:362 msgid "" "The :func:`!partial` function is used for partial function application which " "\"freezes\" some portion of a function's arguments and/or keywords resulting " @@ -473,7 +471,7 @@ msgid "" "where the *base* argument defaults to ``2``:" msgstr "" -#: library/functools.rst:362 +#: library/functools.rst:368 msgid "" ">>> basetwo = partial(int, base=2)\n" ">>> basetwo.__doc__ = 'Convert base 2 string to an int.'\n" @@ -481,7 +479,7 @@ msgid "" "18" msgstr "" -#: library/functools.rst:369 +#: library/functools.rst:375 msgid "" "If :data:`Placeholder` sentinels are present in *args*, they will be filled " "first when :func:`!partial` is called. This makes it possible to pre-fill " @@ -490,27 +488,27 @@ msgid "" "pre-filled." msgstr "" -#: library/functools.rst:374 +#: library/functools.rst:380 msgid "" "If any :data:`!Placeholder` sentinels are present, all must be filled at " "call time:" msgstr "" -#: library/functools.rst:376 +#: library/functools.rst:382 msgid "" ">>> say_to_world = partial(print, Placeholder, Placeholder, \"world!\")\n" ">>> say_to_world('Hello', 'dear')\n" "Hello dear world!" msgstr "" -#: library/functools.rst:382 +#: library/functools.rst:388 msgid "" "Calling ``say_to_world('Hello')`` raises a :exc:`TypeError`, because only " "one positional argument is provided, but there are two placeholders that " "must be filled in." msgstr "" -#: library/functools.rst:386 +#: library/functools.rst:392 msgid "" "If :func:`!partial` is applied to an existing :func:`!partial` object, :data:" "`!Placeholder` sentinels of the input object are filled in with new " @@ -518,7 +516,7 @@ msgid "" "`!Placeholder` sentinel to the place held by a previous :data:`!Placeholder`:" msgstr "" -#: library/functools.rst:392 +#: library/functools.rst:398 msgid "" ">>> from functools import partial, Placeholder as _\n" ">>> remove = partial(str.replace, _, _, '')\n" @@ -533,39 +531,39 @@ msgid "" "'Hello, dear world!'" msgstr "" -#: library/functools.rst:406 +#: library/functools.rst:412 msgid "" ":data:`!Placeholder` cannot be passed to :func:`!partial` as a keyword " "argument." msgstr "" -#: library/functools.rst:408 +#: library/functools.rst:414 msgid "Added support for :data:`Placeholder` in positional arguments." msgstr "" -#: library/functools.rst:413 +#: library/functools.rst:419 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 "" -#: library/functools.rst:417 +#: library/functools.rst:423 msgid "" "*func* must be a :term:`descriptor` or a callable (objects which are both, " "like normal functions, are handled as descriptors)." msgstr "" -#: library/functools.rst:420 +#: library/functools.rst:426 msgid "" "When *func* is a descriptor (such as a normal Python function, :func:" -"`classmethod`, :func:`staticmethod`, :func:`abstractmethod` or another " +"`classmethod`, :func:`staticmethod`, :func:`~abc.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 "" -#: library/functools.rst:426 +#: library/functools.rst:432 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 " @@ -574,7 +572,7 @@ msgid "" "`partialmethod` constructor." msgstr "" -#: library/functools.rst:434 +#: library/functools.rst:440 msgid "" ">>> class Cell:\n" "... def __init__(self):\n" @@ -595,7 +593,7 @@ msgid "" "True" msgstr "" -#: library/functools.rst:457 +#: library/functools.rst:463 msgid "" "Apply *function* of two arguments cumulatively to the items of *iterable*, " "from left to right, so as to reduce the iterable to a single value. For " @@ -608,11 +606,11 @@ msgid "" "is returned." msgstr "" -#: library/functools.rst:466 +#: library/functools.rst:472 msgid "Roughly equivalent to::" msgstr "" -#: library/functools.rst:468 +#: library/functools.rst:474 msgid "" "initial_missing = object()\n" "\n" @@ -627,30 +625,30 @@ msgid "" " return value" msgstr "" -#: library/functools.rst:480 +#: library/functools.rst:486 msgid "" "See :func:`itertools.accumulate` for an iterator that yields all " "intermediate values." msgstr "" -#: library/functools.rst:483 +#: library/functools.rst:489 msgid "*initial* is now supported as a keyword argument." msgstr "" -#: library/functools.rst:488 +#: library/functools.rst:494 msgid "" "Transform a function into a :term:`single-dispatch ` :term:" "`generic function`." msgstr "" -#: library/functools.rst:491 +#: library/functools.rst:497 msgid "" "To define a generic function, decorate it with the ``@singledispatch`` " "decorator. When defining a function using ``@singledispatch``, note that the " "dispatch happens on the type of the first argument::" msgstr "" -#: library/functools.rst:495 +#: library/functools.rst:501 msgid "" ">>> from functools import singledispatch\n" ">>> @singledispatch\n" @@ -660,15 +658,15 @@ msgid "" "... print(arg)" msgstr "" -#: library/functools.rst:502 +#: library/functools.rst:511 msgid "" -"To add overloaded implementations to the function, use the :func:`register` " +"To add overloaded implementations to the function, use the :func:`!register` " "attribute of the generic function, which can be used as a decorator. For " "functions annotated with types, the decorator will infer the type of the " "first argument automatically::" msgstr "" -#: library/functools.rst:507 +#: library/functools.rst:516 msgid "" ">>> @fun.register\n" "... def _(arg: int, verbose=False):\n" @@ -684,11 +682,11 @@ msgid "" "... print(i, elem)" msgstr "" -#: library/functools.rst:520 +#: library/functools.rst:529 msgid ":class:`typing.Union` can also be used::" msgstr "" -#: library/functools.rst:522 +#: library/functools.rst:531 msgid "" ">>> @fun.register\n" "... def _(arg: int | float, verbose=False):\n" @@ -706,13 +704,13 @@ msgid "" "..." msgstr "" -#: library/functools.rst:537 +#: library/functools.rst:546 msgid "" "For code which doesn't use type annotations, the appropriate type argument " "can be passed explicitly to the decorator itself::" msgstr "" -#: library/functools.rst:540 +#: library/functools.rst:549 msgid "" ">>> @fun.register(complex)\n" "... def _(arg, verbose=False):\n" @@ -722,7 +720,7 @@ msgid "" "..." msgstr "" -#: library/functools.rst:547 +#: library/functools.rst:556 msgid "" "For code that dispatches on a collections type (e.g., ``list``), but wants " "to typehint the items of the collection (e.g., ``list[int]``), the dispatch " @@ -730,7 +728,7 @@ msgid "" "going into the function definition::" msgstr "" -#: library/functools.rst:552 +#: library/functools.rst:561 msgid "" ">>> @fun.register(list)\n" "... def _(arg: list[int], verbose=False):\n" @@ -740,7 +738,7 @@ msgid "" "... print(i, elem)" msgstr "" -#: library/functools.rst:561 +#: library/functools.rst:570 msgid "" "At runtime the function will dispatch on an instance of a list regardless of " "the type contained within the list i.e. ``[1,2,3]`` will be dispatched the " @@ -748,13 +746,14 @@ msgid "" "example is for static type checkers only and has no runtime impact." msgstr "" -#: library/functools.rst:567 +#: library/functools.rst:576 msgid "" "To enable registering :term:`lambdas` and pre-existing functions, " -"the :func:`register` attribute can also be used in a functional form::" +"the :func:`~singledispatch.register` attribute can also be used in a " +"functional form::" msgstr "" -#: library/functools.rst:570 +#: library/functools.rst:579 msgid "" ">>> def nothing(arg, verbose=False):\n" "... print(\"Nothing.\")\n" @@ -762,14 +761,14 @@ msgid "" ">>> fun.register(type(None), nothing)" msgstr "" -#: library/functools.rst:575 +#: library/functools.rst:584 msgid "" -"The :func:`register` attribute returns the undecorated function. This " -"enables decorator stacking, :mod:`pickling`, and the creation of " -"unit tests for each variant independently::" +"The :func:`~singledispatch.register` attribute returns the undecorated " +"function. This enables decorator stacking, :mod:`pickling`, and the " +"creation of unit tests for each variant independently::" msgstr "" -#: library/functools.rst:579 +#: library/functools.rst:588 msgid "" ">>> @fun.register(float)\n" "... @fun.register(Decimal)\n" @@ -782,13 +781,13 @@ msgid "" "False" msgstr "" -#: library/functools.rst:589 +#: library/functools.rst:598 msgid "" "When called, the generic function dispatches on the type of the first " "argument::" msgstr "" -#: library/functools.rst:592 +#: library/functools.rst:601 msgid "" ">>> fun(\"Hello, world.\")\n" "Hello, world.\n" @@ -808,7 +807,7 @@ msgid "" "0.615" msgstr "" -#: library/functools.rst:609 +#: library/functools.rst:618 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 " @@ -817,14 +816,14 @@ msgid "" "found." msgstr "" -#: library/functools.rst:615 +#: library/functools.rst:624 msgid "" "If an implementation is registered to an :term:`abstract base class`, " "virtual subclasses of the base class will be dispatched to that " "implementation::" msgstr "" -#: library/functools.rst:619 +#: library/functools.rst:628 msgid "" ">>> from collections.abc import Mapping\n" ">>> @fun.register\n" @@ -838,13 +837,13 @@ msgid "" "a => b" msgstr "" -#: library/functools.rst:630 +#: library/functools.rst:639 msgid "" "To check which implementation the generic function will choose for a given " "type, use the ``dispatch()`` attribute::" msgstr "" -#: library/functools.rst:633 +#: library/functools.rst:642 msgid "" ">>> fun.dispatch(float)\n" "\n" @@ -852,13 +851,13 @@ msgid "" "" msgstr "" -#: library/functools.rst:638 +#: library/functools.rst:647 msgid "" "To access all registered implementations, use the read-only ``registry`` " "attribute::" msgstr "" -#: library/functools.rst:641 +#: library/functools.rst:650 msgid "" ">>> fun.registry.keys()\n" "dict_keys([, , ,\n" @@ -870,31 +869,33 @@ msgid "" "" msgstr "" -#: library/functools.rst:652 -msgid "The :func:`register` attribute now supports using type annotations." +#: library/functools.rst:661 +msgid "" +"The :func:`~singledispatch.register` attribute now supports using type " +"annotations." msgstr "" -#: library/functools.rst:655 +#: library/functools.rst:664 msgid "" -"The :func:`register` attribute now supports :class:`typing.Union` as a type " -"annotation." +"The :func:`~singledispatch.register` attribute now supports :class:`typing." +"Union` as a type annotation." msgstr "" -#: library/functools.rst:662 +#: library/functools.rst:671 msgid "" "Transform a method into a :term:`single-dispatch ` :term:" "`generic function`." msgstr "" -#: library/functools.rst:665 +#: library/functools.rst:674 msgid "" "To define a generic method, decorate it with the ``@singledispatchmethod`` " -"decorator. When defining a function using ``@singledispatchmethod``, note " -"that the dispatch happens on the type of the first non-*self* or non-*cls* " +"decorator. When defining a method using ``@singledispatchmethod``, note that " +"the dispatch happens on the type of the first non-*self* or non-*cls* " "argument::" msgstr "" -#: library/functools.rst:670 +#: library/functools.rst:679 msgid "" "class Negator:\n" " @singledispatchmethod\n" @@ -910,16 +911,16 @@ msgid "" " return not arg" msgstr "" -#: library/functools.rst:683 +#: library/functools.rst:692 msgid "" "``@singledispatchmethod`` supports nesting with other decorators such as :" -"func:`@classmethod`. Note that to allow for ``dispatcher." -"register``, ``singledispatchmethod`` must be the *outer most* decorator. " -"Here is the ``Negator`` class with the ``neg`` methods bound to the class, " -"rather than an instance of the class::" +"deco:`classmethod`. Note that to allow for ``dispatcher.register``, " +"``singledispatchmethod`` must be the *outer most* decorator. Here is the " +"``Negator`` class with the ``neg`` methods bound to the class, rather than " +"an instance of the class::" msgstr "" -#: library/functools.rst:689 +#: library/functools.rst:698 msgid "" "class Negator:\n" " @singledispatchmethod\n" @@ -938,14 +939,13 @@ msgid "" " return not arg" msgstr "" -#: library/functools.rst:705 +#: library/functools.rst:714 msgid "" -"The same pattern can be used for other similar decorators: :func:" -"`@staticmethod`, :func:`@abstractmethod`, " -"and others." +"The same pattern can be used for other similar decorators: :deco:" +"`staticmethod`, :deco:`~abc.abstractmethod`, and others." msgstr "" -#: library/functools.rst:714 +#: library/functools.rst:722 msgid "" "Update a *wrapper* function to look like the *wrapped* function. The " "optional arguments are tuples to specify which attributes of the original " @@ -961,7 +961,7 @@ msgid "" "dictionary)." msgstr "" -#: library/functools.rst:726 +#: library/functools.rst:734 msgid "" "To allow access to the original function for introspection and other " "purposes (e.g. bypassing a caching decorator such as :func:`lru_cache`), " @@ -969,7 +969,7 @@ msgid "" "that refers to the function being wrapped." msgstr "" -#: library/functools.rst:731 +#: library/functools.rst:739 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 " @@ -978,7 +978,7 @@ msgid "" "is typically less than helpful." msgstr "" -#: library/functools.rst:737 +#: library/functools.rst:745 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 " @@ -987,26 +987,26 @@ msgid "" "wrapper function itself is missing any attributes named in *updated*." msgstr "" -#: library/functools.rst:743 +#: library/functools.rst:751 msgid "" "The ``__wrapped__`` attribute is now automatically added. The :attr:" "`~function.__annotations__` attribute is now copied by default. Missing " "attributes no longer trigger an :exc:`AttributeError`." msgstr "" -#: library/functools.rst:748 +#: library/functools.rst:756 msgid "" "The ``__wrapped__`` attribute now always refers to the wrapped function, " "even if that function defined a ``__wrapped__`` attribute. (see :issue:" "`17482`)" msgstr "" -#: library/functools.rst:753 +#: library/functools.rst:761 msgid "" "The :attr:`~function.__type_params__` attribute is now copied by default." msgstr "" -#: library/functools.rst:759 +#: library/functools.rst:767 msgid "" "This is a convenience function for invoking :func:`update_wrapper` as a " "function decorator when defining a wrapper function. It is equivalent to " @@ -1014,7 +1014,7 @@ msgid "" "updated=updated)``. For example::" msgstr "" -#: library/functools.rst:764 +#: library/functools.rst:772 msgid "" ">>> from functools import wraps\n" ">>> def my_decorator(f):\n" @@ -1038,42 +1038,42 @@ msgid "" "'Docstring'" msgstr "" -#: library/functools.rst:785 +#: library/functools.rst:793 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." +"would have been ``'wrapper'``, and the docstring of the original :func:`!" +"example` would have been lost." msgstr "" -#: library/functools.rst:793 +#: library/functools.rst:801 msgid ":class:`partial` Objects" msgstr "" -#: library/functools.rst:795 +#: library/functools.rst:803 msgid "" ":class:`partial` objects are callable objects created by :func:`partial`. " "They have three read-only attributes:" msgstr "" -#: library/functools.rst:801 +#: library/functools.rst:809 msgid "" "A callable object or function. Calls to the :class:`partial` object will be " "forwarded to :attr:`func` with new arguments and keywords." msgstr "" -#: library/functools.rst:807 +#: library/functools.rst:815 msgid "" "The leftmost positional arguments that will be prepended to the positional " "arguments provided to a :class:`partial` object call." msgstr "" -#: library/functools.rst:813 +#: library/functools.rst:821 msgid "" "The keyword arguments that will be supplied when the :class:`partial` object " "is called." msgstr "" -#: library/functools.rst:816 +#: library/functools.rst:824 msgid "" ":class:`partial` objects are like :ref:`function objects ` in that they are callable, weak referenceable, and can have " diff --git a/library/gc.po b/library/gc.po index 7f5b5d46..67c33592 100644 --- a/library/gc.po +++ b/library/gc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -117,7 +117,7 @@ msgid "0: All objects in the young generation" msgstr "" #: library/gc.rst:86 -msgid "1: No objects, as there is no generation 1 (as of Python 3.13)" +msgid "1: No objects, as there is no generation 1 (as of Python 3.14)" msgstr "" #: library/gc.rst:87 @@ -206,8 +206,8 @@ msgstr "" #: library/gc.rst:143 msgid "" -"See `Garbage collector design `_ for more information." +"See `Garbage collector design `_ for more information." msgstr "" #: library/gc.rst:145 diff --git a/library/getopt.po b/library/getopt.po index 4a92fb94..f9adba49 100644 --- a/library/getopt.po +++ b/library/getopt.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/getpass.po b/library/getpass.po index 6ce29e63..fbc14b6b 100644 --- a/library/getpass.po +++ b/library/getpass.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -53,9 +53,9 @@ msgstr "" msgid "" "The *echo_char* argument controls how user input is displayed while typing. " "If *echo_char* is ``None`` (default), input remains hidden. Otherwise, " -"*echo_char* must be a printable ASCII string and each typed character is " -"replaced by it. For example, ``echo_char='*'`` will display asterisks " -"instead of the actual input." +"*echo_char* must be a single printable ASCII character and each typed " +"character is replaced by it. For example, ``echo_char='*'`` will display " +"asterisks instead of the actual input." msgstr "" #: library/getpass.rst:34 @@ -71,19 +71,28 @@ msgid "" "you launched IDLE from rather than the idle window itself." msgstr "" -#: library/getpass.rst:42 +#: library/getpass.rst:43 +msgid "" +"On Unix systems, when *echo_char* is set, the terminal will be configured to " +"operate in :manpage:`noncanonical mode " +"`. In particular, this means " +"that line editing shortcuts such as :kbd:`Ctrl+U` will not work and may " +"insert unexpected characters into the input." +msgstr "" + +#: library/getpass.rst:50 msgid "Added the *echo_char* parameter for keyboard feedback." msgstr "" -#: library/getpass.rst:47 +#: library/getpass.rst:55 msgid "A :exc:`UserWarning` subclass issued when password input may be echoed." msgstr "" -#: library/getpass.rst:52 +#: library/getpass.rst:60 msgid "Return the \"login name\" of the user." msgstr "" -#: library/getpass.rst:54 +#: library/getpass.rst:62 msgid "" "This function checks the environment variables :envvar:`LOGNAME`, :envvar:" "`USER`, :envvar:`!LNAME` and :envvar:`USERNAME`, in order, and returns the " @@ -92,10 +101,10 @@ msgid "" "support the :mod:`pwd` module, otherwise, an :exc:`OSError` is raised." msgstr "" -#: library/getpass.rst:61 +#: library/getpass.rst:69 msgid "In general, this function should be preferred over :func:`os.getlogin`." msgstr "" -#: library/getpass.rst:63 +#: library/getpass.rst:71 msgid "Previously, various exceptions beyond just :exc:`OSError` were raised." msgstr "" diff --git a/library/gettext.po b/library/gettext.po index 9b512b1d..4fc56c09 100644 --- a/library/gettext.po +++ b/library/gettext.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/glob.po b/library/glob.po index 9374aa18..e0c7061b 100644 --- a/library/glob.po +++ b/library/glob.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -27,33 +27,38 @@ msgstr "" #: 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 " +"The :mod:`!glob` module finds pathnames using pattern matching rules similar " +"to the Unix shell. 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." msgstr "" -#: library/glob.rst:28 +#: library/glob.rst:29 msgid "" -"Note that files beginning with a dot (``.``) can only be matched by patterns " -"that also start with a dot, unlike :func:`fnmatch.fnmatch` or :func:`pathlib." -"Path.glob`. (For tilde and shell variable expansion, use :func:`os.path." -"expanduser` and :func:`os.path.expandvars`.)" +"The pathnames are returned in no particular order. If you need a specific " +"order, sort the results." msgstr "" -#: library/glob.rst:34 +#: library/glob.rst:32 +msgid "" +"Files beginning with a dot (``.``) can only be matched by patterns that also " +"start with a dot, unlike :func:`fnmatch.fnmatch` or :func:`pathlib.Path." +"glob`. For tilde and shell variable expansion, use :func:`os.path." +"expanduser` and :func:`os.path.expandvars`." +msgstr "" + +#: library/glob.rst:38 msgid "" "For a literal match, wrap the meta-characters in brackets. For example, " "``'[?]'`` matches the character ``'?'``." msgstr "" -#: library/glob.rst:37 -msgid "The :mod:`glob` module defines the following functions:" +#: library/glob.rst:41 +msgid "The :mod:`!glob` module defines the following functions:" msgstr "" -#: library/glob.rst:43 +#: library/glob.rst:47 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 " @@ -65,21 +70,21 @@ msgid "" "path name for that file will be included is unspecified." msgstr "" -#: library/glob.rst:52 +#: library/glob.rst:56 msgid "" "If *root_dir* is not ``None``, it should be a :term:`path-like object` " "specifying the root directory for searching. It has the same effect on :" -"func:`glob` as changing the current directory before calling it. If " +"func:`!glob` as changing the current directory before calling it. If " "*pathname* is relative, the result will contain paths relative to *root_dir*." msgstr "" -#: library/glob.rst:58 +#: library/glob.rst:62 msgid "" "This function can support :ref:`paths relative to directory descriptors " "` with the *dir_fd* parameter." msgstr "" -#: library/glob.rst:64 +#: library/glob.rst:68 msgid "" "If *recursive* is true, the pattern \"``**``\" will match any files and zero " "or more directories, subdirectories and symbolic links to directories. If " @@ -87,55 +92,55 @@ msgid "" "will not match." msgstr "" -#: library/glob.rst:69 +#: library/glob.rst:73 msgid "" "If *include_hidden* is true, \"``**``\" pattern will match hidden " "directories." msgstr "" -#: library/glob.rst:98 +#: library/glob.rst:102 msgid "" "Raises an :ref:`auditing event ` ``glob.glob`` with arguments " "``pathname``, ``recursive``." msgstr "" -#: library/glob.rst:99 +#: library/glob.rst:103 msgid "" "Raises an :ref:`auditing event ` ``glob.glob/2`` with arguments " "``pathname``, ``recursive``, ``root_dir``, ``dir_fd``." msgstr "" -#: library/glob.rst:75 +#: library/glob.rst:79 msgid "" "Using the \"``**``\" pattern in large directory trees may consume an " "inordinate amount of time." msgstr "" -#: library/glob.rst:102 +#: library/glob.rst:106 msgid "" "This function may return duplicate path names if *pathname* contains " "multiple \"``**``\" patterns and *recursive* is true." msgstr "" -#: library/glob.rst:105 +#: library/glob.rst:109 msgid "Support for recursive globs using \"``**``\"." msgstr "" -#: library/glob.rst:108 +#: library/glob.rst:112 msgid "Added the *root_dir* and *dir_fd* parameters." msgstr "" -#: library/glob.rst:111 +#: library/glob.rst:115 msgid "Added the *include_hidden* parameter." msgstr "" -#: library/glob.rst:95 +#: library/glob.rst:99 msgid "" "Return an :term:`iterator` which yields the same values as :func:`glob` " "without actually storing them all simultaneously." msgstr "" -#: library/glob.rst:117 +#: library/glob.rst:121 msgid "" "Escape all special characters (``'?'``, ``'*'`` and ``'['``). This is useful " "if you want to match an arbitrary literal string that may have special " @@ -144,52 +149,52 @@ msgid "" "c:/Quo vadis[?].txt'``." msgstr "" -#: library/glob.rst:128 +#: library/glob.rst:132 msgid "" "Convert the given path specification to a regular expression for use with :" "func:`re.match`. The path specification can contain shell-style wildcards." msgstr "" -#: library/glob.rst:131 +#: library/glob.rst:135 msgid "For example:" msgstr "" -#: library/glob.rst:142 +#: library/glob.rst:146 msgid "" "Path separators and segments are meaningful to this function, unlike :func:" "`fnmatch.translate`. By default wildcards do not match path separators, and " "``*`` pattern segments match precisely one path segment." msgstr "" -#: library/glob.rst:146 +#: library/glob.rst:150 msgid "" "If *recursive* is true, the pattern segment \"``**``\" will match any number " "of path segments." msgstr "" -#: library/glob.rst:149 +#: library/glob.rst:153 msgid "" "If *include_hidden* is true, wildcards can match path segments that start " "with a dot (``.``)." msgstr "" -#: library/glob.rst:152 +#: library/glob.rst:156 msgid "" "A sequence of path separators may be supplied to the *seps* argument. If not " "given, :data:`os.sep` and :data:`~os.altsep` (if available) are used." msgstr "" -#: library/glob.rst:157 +#: library/glob.rst:161 msgid "" ":meth:`pathlib.PurePath.full_match` and :meth:`pathlib.Path.glob` methods, " "which call this function to implement pattern matching and globbing." msgstr "" -#: library/glob.rst:165 +#: library/glob.rst:169 msgid "Examples" msgstr "" -#: library/glob.rst:167 +#: library/glob.rst:171 msgid "" "Consider a directory containing the following files: :file:`1.gif`, :file:`2." "txt`, :file:`card.gif` and a subdirectory :file:`sub` which contains only " @@ -197,7 +202,7 @@ msgid "" "Notice how any leading components of the path are preserved. ::" msgstr "" -#: library/glob.rst:173 +#: library/glob.rst:177 msgid "" ">>> import glob\n" ">>> glob.glob('./[0-9].*')\n" @@ -212,14 +217,14 @@ msgid "" "['./', './sub/']" msgstr "" -#: library/glob.rst:185 +#: library/glob.rst:189 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 "" -#: library/glob.rst:189 +#: library/glob.rst:193 msgid "" ">>> import glob\n" ">>> glob.glob('*.gif')\n" @@ -228,12 +233,12 @@ msgid "" "['.card.gif']" msgstr "" -#: library/glob.rst:196 +#: library/glob.rst:200 msgid "" "The :mod:`fnmatch` module offers shell-style filename (not path) expansion." msgstr "" -#: library/glob.rst:199 +#: library/glob.rst:203 msgid "The :mod:`pathlib` module offers high-level path objects." msgstr "" @@ -249,7 +254,7 @@ msgstr "" msgid "* (asterisk)" msgstr "" -#: library/glob.rst:61 +#: library/glob.rst:65 msgid "in glob-style wildcards" msgstr "" @@ -273,6 +278,6 @@ msgstr "" msgid ". (dot)" msgstr "" -#: library/glob.rst:61 +#: library/glob.rst:65 msgid "**" msgstr "" diff --git a/library/graphlib.po b/library/graphlib.po index 3531fde3..0a9fa6b7 100644 --- a/library/graphlib.po +++ b/library/graphlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/grp.po b/library/grp.po index 94b3f873..55c847f8 100644 --- a/library/grp.po +++ b/library/grp.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/gzip.po b/library/gzip.po index 248f3578..cc23daf7 100644 --- a/library/gzip.po +++ b/library/gzip.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-05-10 22:33+0200\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -34,11 +34,23 @@ msgstr "" "αρχείων όπως ακριβώς θα έκαναν τα προγράμματα της GNU :program:`gzip` και :" "program:`gunzip`." -#: library/gzip.rst:14 +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." +msgstr "" +"Αυτό είναι ένα :term:`optional module`. Εάν λείπει από το αντίγραφο του " +"CPython σας, αναζητήστε την τεκμηρίωση από τον διανομέα σας (δηλαδή, όποιος " +"σας παρείχε την Python). Εάν είστε ο διανομέας, δείτε :ref:`optional-module-" +"requirements`." + +#: library/gzip.rst:16 msgid "The data compression is provided by the :mod:`zlib` module." msgstr "Η συμπίεση δεδομένων παρέχεται από το :mod:`zlib` module." -#: library/gzip.rst:16 +#: library/gzip.rst:18 msgid "" "The :mod:`gzip` module provides the :class:`GzipFile` class, as well as the :" "func:`.open`, :func:`compress` and :func:`decompress` convenience functions. " @@ -52,7 +64,7 @@ msgstr "" "program:`gzip`, συμπιέζοντας ή αποσυμπιέζοντας αυτόματα τα δεδομένα, ώστε να " "φαίνεται σαν ένα συνηθισμένο :term:`file object`." -#: library/gzip.rst:22 +#: library/gzip.rst:24 msgid "" "Note that additional file formats which can be decompressed by the :program:" "`gzip` and :program:`gunzip` programs, such as those produced by :program:" @@ -63,11 +75,11 @@ msgstr "" "από τα :program:`compress` και :program:`pack`, δεν υποστηρίζονται από αυτό " "το module." -#: library/gzip.rst:26 +#: library/gzip.rst:28 msgid "The module defines the following items:" msgstr "Το module ορίζει τα ακόλουθα στοιχεία:" -#: library/gzip.rst:31 +#: library/gzip.rst:33 msgid "" "Open a gzip-compressed file in binary or text mode, returning a :term:`file " "object`." @@ -75,7 +87,7 @@ msgstr "" "Ανοίγει ένα gzip-συμπιεσμένο αρχείο σε δυαδική ή σε λειτουργία κειμένου, " "επιστρέφοντας ένα :term:`file object`." -#: library/gzip.rst:34 +#: library/gzip.rst:36 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." @@ -84,7 +96,7 @@ msgstr "" "αντικείμενο :class:`str` ή :class:`bytes`), ή ένα υπάρχον αντικείμενο " "αρχείου για ανάγνωση και εγγραφή." -#: library/gzip.rst:37 +#: library/gzip.rst:39 msgid "" "The *mode* argument can be any of ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, " "``'w'``, ``'wb'``, ``'x'`` or ``'xb'`` for binary mode, or ``'rt'``, " @@ -95,7 +107,7 @@ msgstr "" "λειτουργία, ή ``'rt'``, ``'at'``, ``'wt'`` ή ``'xt'`` για λειτουργία " "κειμένου. Η προεπιλογή είναι το ``'rb'``." -#: library/gzip.rst:41 +#: library/gzip.rst:43 msgid "" "The *compresslevel* argument is an integer from 0 to 9, as for the :class:" "`GzipFile` constructor." @@ -103,7 +115,7 @@ msgstr "" "Η παράμετρος *compresslevel* είναι ένας ακέραιος από 0 έως 9, όπως και για " "τον constructor της κλάσης :class:`GzipFile`." -#: library/gzip.rst:44 +#: library/gzip.rst:46 msgid "" "For binary mode, this function is equivalent to the :class:`GzipFile` " "constructor: ``GzipFile(filename, mode, compresslevel)``. In this case, the " @@ -114,7 +126,7 @@ msgstr "" "Σε αυτή την περίπτωση, οι παράμετροι *encoding*, *errors* και *newline* δεν " "πρέπει να παρέχονται." -#: library/gzip.rst:48 +#: library/gzip.rst:50 msgid "" "For text mode, a :class:`GzipFile` object is created, and wrapped in an :" "class:`io.TextIOWrapper` instance with the specified encoding, error " @@ -125,7 +137,7 @@ msgstr "" "την καθορισμένη κωδικοποίηση, τη συμπεριφορά διαχείρισης σφαλμάτων και το(α) " "τέλος(η) γραμμής." -#: library/gzip.rst:52 +#: library/gzip.rst:54 msgid "" "Added support for *filename* being a file object, support for text mode, and " "the *encoding*, *errors* and *newline* arguments." @@ -134,16 +146,16 @@ msgstr "" "υποστήριξη για τη λειτουργία κειμένου, καθώς και οι παράμετροι *encoding*, " "*errors* και *newline*." -#: library/gzip.rst:56 +#: library/gzip.rst:58 msgid "Added support for the ``'x'``, ``'xb'`` and ``'xt'`` modes." msgstr "" "Προστέθηκε υποστήριξη για τις λειτουργίες ``'x'``, ``'xb'`` και ``'xt'``." -#: library/gzip.rst:173 +#: library/gzip.rst:175 msgid "Accepts a :term:`path-like object`." msgstr "Δέχεται ένα :term:`path-like object`." -#: library/gzip.rst:64 +#: library/gzip.rst:66 msgid "" "An exception raised for invalid gzip files. It inherits from :exc:" "`OSError`. :exc:`EOFError` and :exc:`zlib.error` can also be raised for " @@ -153,7 +165,7 @@ msgstr "" "exc:`OSError`. Οι εξαιρέσεις :exc:`EOFError` και :exc:`zlib.error` μπορούν " "επίσης να γίνουν raise για μη έγκυρα αρχεία gzip." -#: library/gzip.rst:72 +#: library/gzip.rst:74 msgid "" "Constructor for the :class:`GzipFile` class, which simulates most of the " "methods of a :term:`file object`, with the exception of the :meth:`~io." @@ -165,7 +177,7 @@ msgstr "" "`~io.IOBase.truncate`. Τουλάχιστον μια από τις παραμέτρους *fileobj* και " "*filename* πρέπει να έχει μια μη τετριμμένη τιμή." -#: library/gzip.rst:77 +#: library/gzip.rst:79 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. " @@ -178,7 +190,7 @@ msgstr "" "``None``, οπότε στην περίπτωση αυτή το *filename* ανοίγεται για να παρέχει " "ένα αντικείμενο αρχείου." -#: library/gzip.rst:82 +#: library/gzip.rst:84 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 " @@ -194,7 +206,7 @@ msgstr "" "συμβολοσειρά, και σε αυτή την περίπτωση το αρχικό όνομα αρχείου δεν " "περιλαμβάνεται στην επικεφαλίδα." -#: library/gzip.rst:88 +#: library/gzip.rst:90 msgid "" "The *mode* argument can be any of ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, " "``'w'``, ``'wb'``, ``'x'``, or ``'xb'``, depending on whether the file will " @@ -211,7 +223,7 @@ msgstr "" "θα χρησιμοποιείται. Είναι καλύτερο να καθορίζεται πάντα η παράμετρος *mode* " "κατά την εγγραφή." -#: library/gzip.rst:94 +#: library/gzip.rst:96 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 " @@ -222,7 +234,7 @@ msgstr "" "func:`.open` (ή κάντε wrap το :class:`GzipFile` με ένα :class:`io." "TextIOWrapper`). " -#: library/gzip.rst:98 +#: library/gzip.rst:100 msgid "" "The *compresslevel* argument is an integer from ``0`` to ``9`` controlling " "the level of compression; ``1`` is fastest and produces the least " @@ -234,7 +246,7 @@ msgstr "" "μικρότερη συμπίεση, ενώ το ``9`` είναι το πιο αργό και παράγει τη μεγαλύτερη " "συμπίεση. Το ``0`` σημαίνει καθόλου συμπίεση. Η προεπιλογή είναι το ``9``." -#: library/gzip.rst:103 +#: library/gzip.rst:105 msgid "" "The optional *mtime* argument is the timestamp requested by gzip. The time " "is in Unix format, i.e., seconds since 00:00:00 UTC, January 1, 1970. If " @@ -247,14 +259,14 @@ msgstr "" "τρέχουσα ώρα. Χρησιμοποιήστε *mtime* = 0 για να δημιουργήσετε μια " "συμπιεσμένη ροή που δεν εξαρτάται από το χρόνο δημιουργίας." -#: library/gzip.rst:108 +#: library/gzip.rst:110 msgid "" "See below for the :attr:`mtime` attribute that is set when decompressing." msgstr "" "Δείτε παρακάτω για το χαρακτηριστικό :attr:`mtime` που ορίζεται κατά την " "αποσυμπίεση." -#: library/gzip.rst:110 +#: library/gzip.rst:112 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 " @@ -269,7 +281,7 @@ msgstr "" "ανακτήσετε τον τελικό buffer μνήμης χρησιμοποιώντας τη μέθοδο :meth:`~io." "BytesIO.getvalue` του αντικειμένου :class:`io.BytesIO`." -#: library/gzip.rst:116 +#: library/gzip.rst:118 msgid "" ":class:`GzipFile` supports the :class:`io.BufferedIOBase` interface, " "including iteration and the :keyword:`with` statement. Only the :meth:`~io." @@ -280,11 +292,11 @@ msgstr "" "keyword:`with`. Μόνο η μέθοδος :meth:`~io.IOBase.truncate` δεν είναι " "υλοποιημένη." -#: library/gzip.rst:120 +#: library/gzip.rst:122 msgid ":class:`GzipFile` also provides the following method and attribute:" msgstr "Η :class:`GzipFile` παρέχει επίσης την ακόλουθη μέθοδο και ιδιότητα:" -#: library/gzip.rst:124 +#: library/gzip.rst:126 msgid "" "Read *n* uncompressed bytes without advancing the file position. The number " "of bytes returned may be more or less than requested." @@ -293,7 +305,7 @@ msgstr "" "αριθμός των bytes που επιστρέφονται μπορεί να είναι περισσότερα ή λιγότερα " "από τα ζητούμενα." -#: library/gzip.rst:127 +#: library/gzip.rst:129 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. " @@ -304,15 +316,15 @@ msgstr "" "αντικειμένου αρχείου (π.χ. αν το :class:`GzipFile` δημιουργήθηκε με την " "παράμετρο *fileobj*)." -#: library/gzip.rst:136 +#: library/gzip.rst:138 msgid "``'rb'`` for reading and ``'wb'`` for writing." msgstr "``'rb'`` για ανάγνωση και ``'wb'`` για εγγραφή." -#: library/gzip.rst:138 +#: library/gzip.rst:140 msgid "In previous versions it was an integer ``1`` or ``2``." msgstr "Σε προηγούμενες εκδόσεις αυτό ήταν ένα ακέραιος ``1`` ή ``2``." -#: library/gzip.rst:143 +#: library/gzip.rst:145 msgid "" "When decompressing, this attribute is set to the last timestamp in the most " "recently read header. It is an integer, holding the number of seconds since " @@ -325,7 +337,7 @@ msgstr "" "Ιανουαρίου, 1970). Η αρχική τιμή πριν από την ανάγνωση οποιωνδήποτε " "κεφαλίδων είναι ``None``." -#: library/gzip.rst:150 +#: library/gzip.rst:152 msgid "" "The path to the gzip file on disk, as a :class:`str` or :class:`bytes`. " "Equivalent to the output of :func:`os.fspath` on the original input path, " @@ -335,7 +347,7 @@ msgstr "" "Ισοδυναμεί με την έξοδο της συνάρτησης :func:`os.fspath` για την αρχική " "διαδρομή εισόδου, χωρίς καμία άλλη κανονικοποίηση, επίλυση ή επέκταση." -#: library/gzip.rst:154 +#: library/gzip.rst:156 msgid "" "Support for the :keyword:`with` statement was added, along with the *mtime* " "constructor argument and :attr:`mtime` attribute." @@ -343,21 +355,21 @@ msgstr "" "Προστέθηκε η υποστήριξη για τη δήλωση :keyword:`with`, μαζί με την παράμετρο " "*mtime* στον κατασκευαστή και την ιδιότητα :attr:`mtime`." -#: library/gzip.rst:158 +#: library/gzip.rst:160 msgid "Support for zero-padded and unseekable files was added." msgstr "" "Προστέθηκε υποστήριξη για αρχεία με μηδενική συμπλήρωση και μη αναζητήσιμα " "αρχεία." -#: library/gzip.rst:161 +#: library/gzip.rst:163 msgid "The :meth:`io.BufferedIOBase.read1` method is now implemented." msgstr "Η μέθοδος :meth:`io.BufferedIOBase.read1` έχει πλέον υλοποιηθεί." -#: library/gzip.rst:164 +#: library/gzip.rst:166 msgid "Added support for the ``'x'`` and ``'xb'`` modes." msgstr "Προστέθηκε υποστήριξη για τις λειτουργίες ``'x'`` και ``'xb'``." -#: library/gzip.rst:167 +#: library/gzip.rst:169 msgid "" "Added support for writing arbitrary :term:`bytes-like objects `. The :meth:`~io.BufferedIOBase.read` method now accepts an argument " @@ -367,7 +379,7 @@ msgstr "" "`. Η μέθοδος :meth:`~io.BufferedIOBase.read` δέχεται " "πλέον ένα όρισμα ``None``." -#: library/gzip.rst:176 +#: library/gzip.rst:178 msgid "" "Opening :class:`GzipFile` for writing without specifying the *mode* argument " "is deprecated." @@ -375,7 +387,7 @@ msgstr "" "Το άνοιγμα ενός :class:`GzipFile` για εγγραφή χωρίς να καθοριστεί η " "παράμετρος *mode* έχει καταργηθεί." -#: library/gzip.rst:180 +#: library/gzip.rst:182 msgid "" "Remove the ``filename`` attribute, use the :attr:`~GzipFile.name` attribute " "instead." @@ -383,7 +395,7 @@ msgstr "" "Καταργήθηκε το χαρακτηριστικό ``filename``, χρησιμοποιήστε το " "χαρακτηριστικό :attr:`~GzipFile.name` αντ' αυτού." -#: library/gzip.rst:187 +#: library/gzip.rst:189 msgid "" "Compress the *data*, returning a :class:`bytes` object containing the " "compressed data. *compresslevel* and *mtime* have the same meaning as in " @@ -395,11 +407,11 @@ msgstr "" "έχουν την ίδια σημασία όπως στον κατασκευαστή της κλάσης :class:`GzipFile`, " "αλλά το *mtime* έχει προεπιλεγμένη τιμή 0 για αναπαραγώγιμη έξοδο." -#: library/gzip.rst:193 +#: library/gzip.rst:195 msgid "Added the *mtime* parameter for reproducible output." msgstr "Προστέθηκε η παράμετρος *mtime* για αναπαραγώγιμη έξοδο." -#: library/gzip.rst:195 +#: library/gzip.rst:197 msgid "" "Speed is improved by compressing all data at once instead of in a streamed " "fashion. Calls with *mtime* set to ``0`` are delegated to :func:`zlib." @@ -413,7 +425,7 @@ msgstr "" "μπορεί να περιέχει μια τιμή byte \"OS\" στην κεφαλίδα gzip διαφορετική από " "255 \"unknown\", όπως καθορίζεται από την υποκείμενη υλοποίηση της zlib." -#: library/gzip.rst:202 +#: library/gzip.rst:204 msgid "" "The gzip header OS byte is guaranteed to be set to 255 when this function is " "used as was the case in 3.10 and earlier." @@ -422,7 +434,7 @@ msgstr "" "ρυθμιστεί στο 255 όταν χρησιμοποιείται αυτή η συνάρτηση, όπως συνέβαινε στην " "έκδοση 3.10 και παλαιότερα." -#: library/gzip.rst:205 +#: library/gzip.rst:207 msgid "" "The *mtime* parameter now defaults to 0 for reproducible output. For the " "previous behaviour of using the current time, pass ``None`` to *mtime*." @@ -431,7 +443,7 @@ msgstr "" "έξοδο. Για την προηγούμενη συμπεριφορά χρήστης της τρέχουσας ώρας, " "μεταβιβάστε στην παράμετρο *mtime* την τιμή ``None``." -#: library/gzip.rst:212 +#: library/gzip.rst:214 msgid "" "Decompress the *data*, returning a :class:`bytes` object containing the " "uncompressed data. This function is capable of decompressing multi-member " @@ -445,7 +457,7 @@ msgstr "" "τους). Όταν τα δεδομένα είναι βέβαιο ότι περιέχουν μόνο ένα μέλος, η " "συνάρτηση :func:`zlib.decompress` με *wbits* ρυθμισμένο σε 31 είναι ταχύτερη." -#: library/gzip.rst:219 +#: library/gzip.rst:221 msgid "" "Speed is improved by decompressing members at once in memory instead of in a " "streamed fashion." @@ -453,15 +465,15 @@ msgstr "" "Η ταχύτητα βελτιώνεται αποσυμπιέζοντας τα μέλη απευθείας στην μνήμη αντί να " "γίνεται αποσυμπίεση σε ροή." -#: library/gzip.rst:226 +#: library/gzip.rst:228 msgid "Examples of usage" msgstr "Παραδείγματα χρήσης" -#: library/gzip.rst:228 +#: library/gzip.rst:230 msgid "Example of how to read a compressed file::" msgstr "Παράδειγμα ανάγνωσης ενός συμπιεσμένου αρχείου::" -#: library/gzip.rst:230 +#: library/gzip.rst:232 msgid "" "import gzip\n" "with gzip.open('/home/joe/file.txt.gz', 'rb') as f:\n" @@ -471,11 +483,11 @@ msgstr "" "with gzip.open('/home/joe/file.txt.gz', 'rb') as f:\n" " file_content = f.read()" -#: library/gzip.rst:234 +#: library/gzip.rst:236 msgid "Example of how to create a compressed GZIP file::" msgstr "Παράδειγμα δημιουργίας ενός συμπιεσμένου αρχείου GZIP::" -#: library/gzip.rst:236 +#: library/gzip.rst:238 msgid "" "import gzip\n" "content = b\"Lots of content here\"\n" @@ -487,11 +499,11 @@ msgstr "" "with gzip.open('/home/joe/file.txt.gz', 'wb') as f:\n" " f.write(content)" -#: library/gzip.rst:241 +#: library/gzip.rst:243 msgid "Example of how to GZIP compress an existing file::" msgstr "Παράδειγμα συμπίεσης ενός υπάρχοντος αρχείου σε μορφή GZIP::" -#: library/gzip.rst:243 +#: library/gzip.rst:245 msgid "" "import gzip\n" "import shutil\n" @@ -505,11 +517,11 @@ msgstr "" " with gzip.open('/home/joe/file.txt.gz', 'wb') as f_out:\n" " shutil.copyfileobj(f_in, f_out)" -#: library/gzip.rst:249 +#: library/gzip.rst:251 msgid "Example of how to GZIP compress a binary string::" msgstr "Παράδειγμα συμπίεσης μιας δυαδικής συμβολοσειράς σε μορφή GZIP::" -#: library/gzip.rst:251 +#: library/gzip.rst:253 msgid "" "import gzip\n" "s_in = b\"Lots of content here\"\n" @@ -519,11 +531,11 @@ msgstr "" "s_in = b\"Lots of content here\"\n" "s_out = gzip.compress(s_in)" -#: library/gzip.rst:257 +#: library/gzip.rst:259 msgid "Module :mod:`zlib`" msgstr "Module :mod:`zlib`" -#: library/gzip.rst:258 +#: library/gzip.rst:260 msgid "" "The basic data compression module needed to support the :program:`gzip` file " "format." @@ -531,7 +543,7 @@ msgstr "" "Το βασικό module συμπίεσης δεδομένων που απαιτείται για την υποστήριξη της " "μορφής αρχείου :program:`gzip`." -#: library/gzip.rst:261 +#: library/gzip.rst:263 msgid "" "In case gzip (de)compression is a bottleneck, the `python-isal`_ package " "speeds up (de)compression with a mostly compatible API." @@ -540,11 +552,11 @@ msgstr "" "`python-isal`_ επιταχύνει την (από)συμπίεση με ένα ως επί το πλείστον " "συμβατό API." -#: library/gzip.rst:271 -msgid "Command Line Interface" +#: library/gzip.rst:273 +msgid "Command-line interface" msgstr "Διεπαφή Γραμμής Εντολών" -#: library/gzip.rst:273 +#: library/gzip.rst:275 msgid "" "The :mod:`gzip` module provides a simple command line interface to compress " "or decompress files." @@ -552,12 +564,12 @@ msgstr "" "Το module :mod:`gzip` παρέχει μια απλή διεπαφή γραμμής εντολών για τη " "συμπίεση ή αποσυμπίεση αρχείων." -#: library/gzip.rst:276 +#: library/gzip.rst:278 msgid "Once executed the :mod:`gzip` module keeps the input file(s)." msgstr "" "Μόλις εκτελεστεί, το module :mod:`gzip` διατηρεί το(α) αρχείο(α) εισόδου." -#: library/gzip.rst:280 +#: library/gzip.rst:282 msgid "" "Add a new command line interface with a usage. By default, when you will " "execute the CLI, the default compression level is 6." @@ -565,28 +577,28 @@ msgstr "" "Προστέθηκε νέα διεπαφή γραμμής εντολών με οδηγίες χρήσης. Από προεπιλογή, " "όταν εκτελείτε την CLI, το προεπιλεγμένο επίπεδο συμπίεσης είναι 6." -#: library/gzip.rst:284 -msgid "Command line options" +#: library/gzip.rst:286 +msgid "Command-line options" msgstr "Επιλογές γραμμής εντολών" -#: library/gzip.rst:288 +#: library/gzip.rst:290 msgid "If *file* is not specified, read from :data:`sys.stdin`." msgstr "" "Εάν δεν καθοριστεί το *file*, η ανάγνωση γίνεται από το :data:`sys.stdin`." -#: library/gzip.rst:292 +#: library/gzip.rst:294 msgid "Indicates the fastest compression method (less compression)." msgstr "Δηλώνει τη γρηγορότερη μέθοδο συμπίεσης (λιγότερη συμπίεση)." -#: library/gzip.rst:296 +#: library/gzip.rst:298 msgid "Indicates the slowest compression method (best compression)." msgstr "Δηλώνει την βραδύτερη μέθοδο συμπίεσης (καλύτερη συμπίεση)." -#: library/gzip.rst:300 +#: library/gzip.rst:302 msgid "Decompress the given file." msgstr "Αποσυμπιέζει το δοσμένο αρχείο." -#: library/gzip.rst:304 +#: library/gzip.rst:306 msgid "Show the help message." msgstr "Εμφανίζει το μήνυμα βοήθειας." diff --git a/library/hashlib.po b/library/hashlib.po index 354c3a7c..341de1d3 100644 --- a/library/hashlib.po +++ b/library/hashlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -331,8 +331,8 @@ msgstr "" #: library/hashlib.rst:305 msgid "" -"Now raises a :exc:`BlockingIOError` if the file is opened in blocking mode. " -"Previously, spurious null bytes were added to the digest." +"Now raises a :exc:`BlockingIOError` if the file is opened in non-blocking " +"mode. Previously, spurious null bytes were added to the digest." msgstr "" #: library/hashlib.rst:311 diff --git a/library/heapq.po b/library/heapq.po index ac6a3b7a..7199331d 100644 --- a/library/heapq.po +++ b/library/heapq.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -100,28 +100,28 @@ msgid "The following functions are provided for min-heaps:" msgstr "" #: library/heapq.rst:63 +msgid "Transform list *x* into a min-heap, in-place, in linear time." +msgstr "" + +#: library/heapq.rst:68 msgid "" "Push the value *item* onto the *heap*, maintaining the min-heap invariant." msgstr "" -#: library/heapq.rst:68 +#: library/heapq.rst:73 msgid "" "Pop and return the smallest item from the *heap*, maintaining the min-heap " "invariant. If the heap is empty, :exc:`IndexError` is raised. To access " "the smallest item without popping it, use ``heap[0]``." msgstr "" -#: library/heapq.rst:75 +#: library/heapq.rst:80 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 "" -#: library/heapq.rst:82 -msgid "Transform list *x* into a min-heap, in-place, in linear time." -msgstr "" - #: library/heapq.rst:87 msgid "" "Pop and return the smallest item from the *heap*, and also push the new " diff --git a/library/hmac.po b/library/hmac.po index 0a23fa50..a4f91345 100644 --- a/library/hmac.po +++ b/library/hmac.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -26,10 +26,14 @@ msgid "**Source code:** :source:`Lib/hmac.py`" msgstr "" #: library/hmac.rst:14 -msgid "This module implements the HMAC algorithm as described by :rfc:`2104`." +msgid "" +"This module implements the HMAC algorithm as described by :rfc:`2104`. The " +"interface allows to use any hash function with a *fixed* digest size. In " +"particular, extendable output functions such as SHAKE-128 or SHAKE-256 " +"cannot be used with HMAC." msgstr "" -#: library/hmac.rst:19 +#: library/hmac.rst:22 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. " @@ -38,20 +42,20 @@ msgid "" "its argument position, it is required." msgstr "" -#: library/hmac.rst:25 +#: library/hmac.rst:28 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 "" -#: library/hmac.rst:30 +#: library/hmac.rst:33 msgid "" "The *digestmod* argument is now required. Pass it as a keyword argument to " "avoid awkwardness when you do not have an initial *msg*." msgstr "" -#: library/hmac.rst:37 +#: library/hmac.rst:40 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 " @@ -60,29 +64,29 @@ msgid "" "`~hmac.new`." msgstr "" -#: library/hmac.rst:43 +#: library/hmac.rst:46 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 "" -#: library/hmac.rst:50 +#: library/hmac.rst:55 msgid "An HMAC object has the following methods:" msgstr "" -#: library/hmac.rst:54 +#: library/hmac.rst:59 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 "" -#: library/hmac.rst:58 +#: library/hmac.rst:63 msgid "Parameter *msg* can be of any type supported by :mod:`hashlib`." msgstr "" -#: library/hmac.rst:64 +#: library/hmac.rst:69 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 " @@ -90,7 +94,7 @@ msgid "" "bytes." msgstr "" -#: library/hmac.rst:71 +#: library/hmac.rst:76 msgid "" "When comparing the output of :meth:`digest` to an externally supplied digest " "during a verification routine, it is recommended to use the :func:" @@ -98,14 +102,14 @@ msgid "" "vulnerability to timing attacks." msgstr "" -#: library/hmac.rst:79 +#: library/hmac.rst:84 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 "" -#: library/hmac.rst:85 +#: library/hmac.rst:90 msgid "" "When comparing the output of :meth:`hexdigest` to an externally supplied " "digest during a verification routine, it is recommended to use the :func:" @@ -113,40 +117,40 @@ msgid "" "vulnerability to timing attacks." msgstr "" -#: library/hmac.rst:93 +#: library/hmac.rst:98 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 "" -#: library/hmac.rst:97 +#: library/hmac.rst:102 msgid "A hash object has the following attributes:" msgstr "" -#: library/hmac.rst:101 +#: library/hmac.rst:106 msgid "The size of the resulting HMAC digest in bytes." msgstr "" -#: library/hmac.rst:105 +#: library/hmac.rst:110 msgid "The internal block size of the hash algorithm in bytes." msgstr "" -#: library/hmac.rst:111 +#: library/hmac.rst:116 msgid "The canonical name of this HMAC, always lowercase, e.g. ``hmac-md5``." msgstr "" -#: library/hmac.rst:116 +#: library/hmac.rst:121 msgid "" "Removed the undocumented attributes ``HMAC.digest_cons``, ``HMAC.inner``, " "and ``HMAC.outer``." msgstr "" -#: library/hmac.rst:120 +#: library/hmac.rst:125 msgid "This module also provides the following helper function:" msgstr "" -#: library/hmac.rst:124 +#: library/hmac.rst:129 msgid "" "Return ``a == b``. This function uses an approach designed to prevent " "timing analysis by avoiding content-based short circuiting behaviour, making " @@ -155,22 +159,22 @@ msgid "" "hexdigest`), or a :term:`bytes-like object`." msgstr "" -#: library/hmac.rst:132 +#: library/hmac.rst:137 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 "" -#: library/hmac.rst:140 +#: library/hmac.rst:145 msgid "" "The function uses OpenSSL's ``CRYPTO_memcmp()`` internally when available." msgstr "" -#: library/hmac.rst:146 +#: library/hmac.rst:151 msgid "Module :mod:`hashlib`" msgstr "" -#: library/hmac.rst:147 +#: library/hmac.rst:152 msgid "The Python module providing secure hash functions." msgstr "" diff --git a/library/html.entities.po b/library/html.entities.po index af72f89d..60a35bed 100644 --- a/library/html.entities.po +++ b/library/html.entities.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/html.parser.po b/library/html.parser.po index edc9bc58..4e8fbea9 100644 --- a/library/html.parser.po +++ b/library/html.parser.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -38,46 +38,57 @@ msgstr "" #: 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." +"If *convert_charrefs* is true (the default), all character references " +"(except the ones in elements like ``script`` and ``style``) are " +"automatically converted to the corresponding Unicode characters." msgstr "" #: library/html.parser.rst:26 msgid "" +"If *scripting* is false (the default), the content of the ``noscript`` " +"element is parsed normally; if it's true, it's returned as is without being " +"parsed." +msgstr "" + +#: library/html.parser.rst:30 +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 "" -#: library/html.parser.rst:31 +#: library/html.parser.rst:35 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 "" -#: library/html.parser.rst:34 +#: library/html.parser.rst:38 msgid "*convert_charrefs* keyword argument added." msgstr "" -#: library/html.parser.rst:37 +#: library/html.parser.rst:41 msgid "The default value for argument *convert_charrefs* is now ``True``." msgstr "" -#: library/html.parser.rst:42 +#: library/html.parser.rst:44 +msgid "Added the *scripting* parameter." +msgstr "" + +#: library/html.parser.rst:49 msgid "Example HTML Parser Application" msgstr "" -#: library/html.parser.rst:44 +#: library/html.parser.rst:51 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 "" -#: library/html.parser.rst:48 +#: library/html.parser.rst:55 msgid "" "from html.parser import HTMLParser\n" "\n" @@ -96,11 +107,11 @@ msgid "" " '

Parse me!

')" msgstr "" -#: library/html.parser.rst:66 +#: library/html.parser.rst:73 msgid "The output will then be:" msgstr "" -#: library/html.parser.rst:68 +#: library/html.parser.rst:75 msgid "" "Encountered a start tag: html\n" "Encountered a start tag: head\n" @@ -116,22 +127,22 @@ msgid "" "Encountered an end tag : html" msgstr "" -#: library/html.parser.rst:85 +#: library/html.parser.rst:92 msgid ":class:`.HTMLParser` Methods" msgstr "" -#: library/html.parser.rst:87 +#: library/html.parser.rst:94 msgid ":class:`HTMLParser` instances have the following methods:" msgstr "" -#: library/html.parser.rst:92 +#: library/html.parser.rst:99 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 "" -#: library/html.parser.rst:99 +#: library/html.parser.rst:106 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 " @@ -139,17 +150,17 @@ msgid "" "should always call the :class:`HTMLParser` base class method :meth:`close`." msgstr "" -#: library/html.parser.rst:107 +#: library/html.parser.rst:114 msgid "" "Reset the instance. Loses all unprocessed data. This is called implicitly " "at instantiation time." msgstr "" -#: library/html.parser.rst:113 +#: library/html.parser.rst:120 msgid "Return current line number and offset." msgstr "" -#: library/html.parser.rst:118 +#: library/html.parser.rst:125 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 " @@ -157,7 +168,7 @@ msgid "" "(whitespace between attributes can be preserved, etc.)." msgstr "" -#: library/html.parser.rst:124 +#: library/html.parser.rst:131 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 " @@ -165,13 +176,13 @@ msgid "" "handle_startendtag`):" msgstr "" -#: library/html.parser.rst:131 +#: library/html.parser.rst:138 msgid "" "This method is called to handle the start tag of an element (e.g. ``
``)." msgstr "" -#: library/html.parser.rst:133 +#: library/html.parser.rst:140 msgid "" "The *tag* argument is the name of the tag converted to lower case. The " "*attrs* argument is a list of ``(name, value)`` pairs containing the " @@ -180,29 +191,29 @@ msgid "" "character and entity references have been replaced." msgstr "" -#: library/html.parser.rst:139 +#: library/html.parser.rst:146 msgid "" "For instance, for the tag ````, this method " "would be called as ``handle_starttag('a', [('href', 'https://www.cwi." "nl/')])``." msgstr "" -#: library/html.parser.rst:142 +#: library/html.parser.rst:149 msgid "" "All entity references from :mod:`html.entities` are replaced in the " "attribute values." msgstr "" -#: library/html.parser.rst:148 +#: library/html.parser.rst:155 msgid "" "This method is called to handle the end tag of an element (e.g. ``
``)." msgstr "" -#: library/html.parser.rst:150 +#: library/html.parser.rst:157 msgid "The *tag* argument is the name of the tag converted to lower case." msgstr "" -#: library/html.parser.rst:155 +#: library/html.parser.rst:162 msgid "" "Similar to :meth:`handle_starttag`, but called when the parser encounters an " "XHTML-style empty tag (````). This method may be overridden by " @@ -211,41 +222,41 @@ msgid "" "`handle_endtag`." msgstr "" -#: library/html.parser.rst:163 +#: library/html.parser.rst:170 msgid "" "This method is called to process arbitrary data (e.g. text nodes and the " -"content of ```` and ````)." +"content of elements like ``script`` and ``style``)." msgstr "" -#: library/html.parser.rst:169 +#: library/html.parser.rst:176 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``." +"``'gt'``). This method is only called if *convert_charrefs* is false." msgstr "" -#: library/html.parser.rst:177 +#: library/html.parser.rst:184 msgid "" "This method is called to process decimal and hexadecimal numeric character " "references of the form :samp:`&#{NNN};` and :samp:`&#x{NNN};`. 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``." +"``>``; in this case the method will receive ``'62'`` or ``'x3E'``. This " +"method is only called if *convert_charrefs* is false." msgstr "" -#: library/html.parser.rst:186 +#: library/html.parser.rst:193 msgid "" "This method is called when a comment is encountered (e.g. ```` will cause this method to be " "called with the argument ``' comment '``." msgstr "" -#: library/html.parser.rst:191 +#: library/html.parser.rst:198 msgid "" "The content of Internet Explorer conditional comments (condcoms) will also " "be sent to this method, so, for ``'\n" "... '')\n" @@ -404,13 +415,13 @@ msgid "" "Comment : [if IE 9]>IE-specific content'``):" msgstr "" -#: library/html.parser.rst:325 +#: library/html.parser.rst:332 msgid "" ">>> parser = MyHTMLParser()\n" ">>> parser.feed('>>>')\n" @@ -423,14 +434,14 @@ msgid "" "Num ent : >" msgstr "" -#: library/html.parser.rst:337 +#: library/html.parser.rst:344 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``):" +"`~HTMLParser.handle_data` might be called more than once if " +"*convert_charrefs* is false:" msgstr "" -#: library/html.parser.rst:341 +#: library/html.parser.rst:348 msgid "" ">>> for chunk in ['buff', 'ered', ' text']:\n" "... parser.feed(chunk)\n" @@ -442,11 +453,11 @@ msgid "" "End tag : span" msgstr "" -#: library/html.parser.rst:352 +#: library/html.parser.rst:359 msgid "Parsing invalid HTML (e.g. unquoted attributes) also works:" msgstr "" -#: library/html.parser.rst:354 +#: library/html.parser.rst:361 msgid "" ">>> parser.feed('

tag soup

')\n" "Start tag: p\n" diff --git a/library/html.po b/library/html.po index 12e1079b..1aeb90f0 100644 --- a/library/html.po +++ b/library/html.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,12 +33,14 @@ msgstr "" 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 ````." +"characters in HTML. If the optional flag *quote* is true (the default), the " +"characters (``\"``) and (``'``) are also translated; this helps for " +"inclusion in an HTML attribute value delimited by quotes, as in ````. If *quote* is set to false, the characters (``\"``) and " +"(``'``) are not translated." msgstr "" -#: library/html.rst:26 +#: library/html.rst:29 msgid "" "Convert all named and numeric character references (e.g. ``>``, ``>" "``, ``>``) in the string *s* to the corresponding Unicode characters. " @@ -47,14 +49,14 @@ msgid "" "character references `." msgstr "" -#: library/html.rst:36 +#: library/html.rst:39 msgid "Submodules in the ``html`` package are:" msgstr "" -#: library/html.rst:38 +#: library/html.rst:41 msgid ":mod:`html.parser` -- HTML/XHTML parser with lenient parsing mode" msgstr "" -#: library/html.rst:39 +#: library/html.rst:42 msgid ":mod:`html.entities` -- HTML entity definitions" msgstr "" diff --git a/library/http.client.po b/library/http.client.po index 7a8be4fe..333d46a8 100644 --- a/library/http.client.po +++ b/library/http.client.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -175,7 +175,7 @@ msgstr "" msgid "" "Parse the headers from a file pointer *fp* representing a HTTP request/" "response. The file has to be a :class:`~io.BufferedIOBase` reader (i.e. not " -"text) and must provide a valid :rfc:`2822` style header." +"text) and must provide a valid :rfc:`5322` style header." msgstr "" #: library/http.client.rst:130 diff --git a/library/http.cookiejar.po b/library/http.cookiejar.po index 8bef0bc9..e69ec8de 100644 --- a/library/http.cookiejar.po +++ b/library/http.cookiejar.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -28,10 +28,10 @@ msgstr "" #: 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." +"HTTP cookies. It is useful for accessing websites 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 "" #: library/http.cookiejar.rst:19 @@ -751,8 +751,8 @@ msgstr "" #: library/http.cookiejar.rst:573 msgid "" -":attr:`strict_ns_domain` is a collection of flags. Its value is constructed " -"by or-ing together (for example, ``DomainStrictNoDots|" +":attr:`~DefaultCookiePolicy.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 "" diff --git a/library/http.cookies.po b/library/http.cookies.po index db332f1c..81e3e8bf 100644 --- a/library/http.cookies.po +++ b/library/http.cookies.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -144,7 +144,7 @@ msgid "" "supports JavaScript, will act the same as if the HTTP headers was sent." msgstr "" -#: library/http.cookies.rst:224 library/http.cookies.rst:232 +#: library/http.cookies.rst:227 library/http.cookies.rst:235 msgid "The meaning for *attrs* is the same as in :meth:`output`." msgstr "" @@ -184,12 +184,15 @@ msgstr "" #: library/http.cookies.rst:151 msgid "" -"The attribute :attr:`samesite` specifies that the browser is not allowed to " -"send the cookie along with cross-site requests. This helps to mitigate CSRF " -"attacks. Valid values for this attribute are \"Strict\" and \"Lax\"." +"The attribute :attr:`samesite` controls when the browser sends the cookie " +"with cross-site requests. This helps to mitigate CSRF attacks. Valid values " +"are \"Strict\" (only sent with same-site requests), \"Lax\" (sent with same-" +"site requests and top-level navigations), and \"None\" (sent with same-site " +"and cross-site requests). When using \"None\", the \"secure\" attribute must " +"also be set, as required by modern browsers." msgstr "" -#: library/http.cookies.rst:155 +#: library/http.cookies.rst:158 msgid "" "The attribute :attr:`partitioned` indicates to user agents that these cross-" "site cookies *should* only be available in the same top-level context that " @@ -197,7 +200,7 @@ msgid "" "**must** also set ``Secure``." msgstr "" -#: library/http.cookies.rst:160 +#: library/http.cookies.rst:163 msgid "" "In addition, it is recommended to use the ``__Host`` prefix when setting " "partitioned cookies to make them bound to the hostname and not the " @@ -205,51 +208,51 @@ msgid "" "State)`_ for full details and examples." msgstr "" -#: library/http.cookies.rst:168 +#: library/http.cookies.rst:171 msgid "The keys are case-insensitive and their default value is ``''``." msgstr "" -#: library/http.cookies.rst:170 +#: library/http.cookies.rst:173 msgid "" ":meth:`!__eq__` now takes :attr:`~Morsel.key` and :attr:`~Morsel.value` into " "account." msgstr "" -#: library/http.cookies.rst:174 +#: library/http.cookies.rst:177 msgid "" "Attributes :attr:`~Morsel.key`, :attr:`~Morsel.value` and :attr:`~Morsel." "coded_value` are read-only. Use :meth:`~Morsel.set` for setting them." msgstr "" -#: library/http.cookies.rst:179 +#: library/http.cookies.rst:182 msgid "Added support for the :attr:`samesite` attribute." msgstr "" -#: library/http.cookies.rst:182 +#: library/http.cookies.rst:185 msgid "Added support for the :attr:`partitioned` attribute." msgstr "" -#: library/http.cookies.rst:188 +#: library/http.cookies.rst:191 msgid "The value of the cookie." msgstr "" -#: library/http.cookies.rst:193 +#: library/http.cookies.rst:196 msgid "The encoded value of the cookie --- this is what should be sent." msgstr "" -#: library/http.cookies.rst:198 +#: library/http.cookies.rst:201 msgid "The name of the cookie." msgstr "" -#: library/http.cookies.rst:203 +#: library/http.cookies.rst:206 msgid "Set the *key*, *value* and *coded_value* attributes." msgstr "" -#: library/http.cookies.rst:208 +#: library/http.cookies.rst:211 msgid "Whether *K* is a member of the set of keys of a :class:`Morsel`." msgstr "" -#: library/http.cookies.rst:213 +#: library/http.cookies.rst:216 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 " @@ -257,53 +260,53 @@ msgid "" "by default ``\"Set-Cookie:\"``." msgstr "" -#: library/http.cookies.rst:221 +#: library/http.cookies.rst:224 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 "" -#: library/http.cookies.rst:229 +#: library/http.cookies.rst:232 msgid "" "Return a string representing the Morsel, without any surrounding HTTP or " "JavaScript." msgstr "" -#: library/http.cookies.rst:237 +#: library/http.cookies.rst:240 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 "" -#: library/http.cookies.rst:241 +#: library/http.cookies.rst:244 msgid "an error is raised for invalid keys." msgstr "" -#: library/http.cookies.rst:247 +#: library/http.cookies.rst:250 msgid "Return a shallow copy of the Morsel object." msgstr "" -#: library/http.cookies.rst:249 +#: library/http.cookies.rst:252 msgid "return a Morsel object instead of a dict." msgstr "" -#: library/http.cookies.rst:255 +#: library/http.cookies.rst:258 msgid "" "Raise an error if key is not a valid :rfc:`2109` attribute, otherwise behave " "the same as :meth:`dict.setdefault`." msgstr "" -#: library/http.cookies.rst:262 +#: library/http.cookies.rst:265 msgid "Example" msgstr "" -#: library/http.cookies.rst:264 +#: library/http.cookies.rst:267 msgid "" "The following example demonstrates how to use the :mod:`http.cookies` module." msgstr "" -#: library/http.cookies.rst:266 +#: library/http.cookies.rst:269 msgid "" ">>> from http import cookies\n" ">>> C = cookies.SimpleCookie()\n" diff --git a/library/http.po b/library/http.po index 73480f20..3863bade 100644 --- a/library/http.po +++ b/library/http.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -65,7 +65,7 @@ msgid "" "reason phrases and long descriptions written in English." msgstr "" -#: library/http.rst:161 library/http.rst:175 +#: library/http.rst:162 library/http.rst:176 msgid "Usage::" msgstr "" @@ -101,11 +101,11 @@ msgstr "" msgid "Code" msgstr "" -#: library/http.rst:208 +#: library/http.rst:209 msgid "Enum Name" msgstr "" -#: library/http.rst:152 library/http.rst:208 +#: library/http.rst:153 library/http.rst:209 msgid "Details" msgstr "" @@ -872,71 +872,73 @@ msgstr "" #: library/http.rst:140 msgid "" "Implemented RFC9110 naming for status constants. Old constant names are " -"preserved for backwards compatibility." +"preserved for backwards compatibility: ``413 REQUEST_ENTITY_TOO_LARGE``, " +"``414 REQUEST_URI_TOO_LONG``, ``416 REQUESTED_RANGE_NOT_SATISFIABLE`` and " +"``422 UNPROCESSABLE_ENTITY``." msgstr "" -#: library/http.rst:145 +#: library/http.rst:146 msgid "HTTP status category" msgstr "" -#: library/http.rst:149 +#: library/http.rst:150 msgid "" "The enum values have several properties to indicate the HTTP status category:" msgstr "" -#: library/http.rst:152 +#: library/http.rst:153 msgid "Property" msgstr "" -#: library/http.rst:152 +#: library/http.rst:153 msgid "Indicates that" msgstr "" -#: library/http.rst:154 +#: library/http.rst:155 msgid "``is_informational``" msgstr "" -#: library/http.rst:154 +#: library/http.rst:155 msgid "``100 <= status <= 199``" msgstr "" -#: library/http.rst:155 library/http.rst:157 library/http.rst:158 +#: library/http.rst:156 library/http.rst:158 library/http.rst:159 msgid "HTTP Semantics :rfc:`9110`, Section 15" msgstr "" -#: library/http.rst:155 +#: library/http.rst:156 msgid "``is_success``" msgstr "" -#: library/http.rst:155 +#: library/http.rst:156 msgid "``200 <= status <= 299``" msgstr "" -#: library/http.rst:156 +#: library/http.rst:157 msgid "``is_redirection``" msgstr "" -#: library/http.rst:156 +#: library/http.rst:157 msgid "``300 <= status <= 399``" msgstr "" -#: library/http.rst:157 +#: library/http.rst:158 msgid "``is_client_error``" msgstr "" -#: library/http.rst:157 +#: library/http.rst:158 msgid "``400 <= status <= 499``" msgstr "" -#: library/http.rst:158 +#: library/http.rst:159 msgid "``is_server_error``" msgstr "" -#: library/http.rst:158 +#: library/http.rst:159 msgid "``500 <= status <= 599``" msgstr "" -#: library/http.rst:163 +#: library/http.rst:164 msgid "" ">>> from http import HTTPStatus\n" ">>> HTTPStatus.OK.is_success\n" @@ -945,13 +947,13 @@ msgid "" "False" msgstr "" -#: library/http.rst:173 +#: library/http.rst:174 msgid "" "A subclass of :class:`enum.StrEnum` that defines a set of HTTP methods and " "descriptions written in English." msgstr "" -#: library/http.rst:177 +#: library/http.rst:178 msgid "" ">>> from http import HTTPMethod\n" ">>>\n" @@ -975,89 +977,89 @@ msgid "" " ]" msgstr "" -#: library/http.rst:201 +#: library/http.rst:202 msgid "HTTP methods" msgstr "" -#: library/http.rst:203 +#: library/http.rst:204 msgid "" "Supported, `IANA-registered methods `_ available in :class:`http.HTTPMethod` are:" msgstr "" -#: library/http.rst:208 +#: library/http.rst:209 msgid "Method" msgstr "" -#: library/http.rst:210 +#: library/http.rst:211 msgid "``GET``" msgstr "" -#: library/http.rst:210 +#: library/http.rst:211 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.1" msgstr "" -#: library/http.rst:211 +#: library/http.rst:212 msgid "``HEAD``" msgstr "" -#: library/http.rst:211 +#: library/http.rst:212 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.2" msgstr "" -#: library/http.rst:212 +#: library/http.rst:213 msgid "``POST``" msgstr "" -#: library/http.rst:212 +#: library/http.rst:213 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.3" msgstr "" -#: library/http.rst:213 +#: library/http.rst:214 msgid "``PUT``" msgstr "" -#: library/http.rst:213 +#: library/http.rst:214 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.4" msgstr "" -#: library/http.rst:214 +#: library/http.rst:215 msgid "``DELETE``" msgstr "" -#: library/http.rst:214 +#: library/http.rst:215 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.5" msgstr "" -#: library/http.rst:215 +#: library/http.rst:216 msgid "``CONNECT``" msgstr "" -#: library/http.rst:215 +#: library/http.rst:216 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.6" msgstr "" -#: library/http.rst:216 +#: library/http.rst:217 msgid "``OPTIONS``" msgstr "" -#: library/http.rst:216 +#: library/http.rst:217 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.7" msgstr "" -#: library/http.rst:217 +#: library/http.rst:218 msgid "``TRACE``" msgstr "" -#: library/http.rst:217 +#: library/http.rst:218 msgid "HTTP Semantics :rfc:`9110`, Section 9.3.8" msgstr "" -#: library/http.rst:218 +#: library/http.rst:219 msgid "``PATCH``" msgstr "" -#: library/http.rst:218 +#: library/http.rst:219 msgid "HTTP/1.1 :rfc:`5789`" msgstr "" diff --git a/library/http.server.po b/library/http.server.po index a0c21202..0817b61a 100644 --- a/library/http.server.po +++ b/library/http.server.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -199,7 +199,7 @@ msgid "" "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." +"valid :rfc:`5322` style header." msgstr "" #: library/http.server.rst:161 diff --git a/library/i18n.po b/library/i18n.po index 5ba32ad2..740e4ae7 100644 --- a/library/i18n.po +++ b/library/i18n.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/idle.po b/library/idle.po index 23047acb..bf0b7d7b 100644 --- a/library/idle.po +++ b/library/idle.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -65,11 +65,23 @@ msgstr "" msgid "configuration, browsers, and other dialogs" msgstr "" -#: library/idle.rst:41 +#: library/idle.rst:40 +msgid "The IDLE application is implemented in the :mod:`idlelib` package." +msgstr "" + +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." +msgstr "" + +#: library/idle.rst:45 msgid "Menus" msgstr "" -#: library/idle.rst:43 +#: library/idle.rst:47 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 " @@ -77,81 +89,81 @@ msgid "" "which window type it is associated with." msgstr "" -#: library/idle.rst:48 +#: library/idle.rst:52 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 "" -#: library/idle.rst:52 +#: library/idle.rst:56 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 "" -#: library/idle.rst:57 +#: library/idle.rst:61 msgid "File menu (Shell and Editor)" msgstr "" -#: library/idle.rst:59 +#: library/idle.rst:63 msgid "New File" msgstr "" -#: library/idle.rst:60 +#: library/idle.rst:64 msgid "Create a new file editing window." msgstr "" -#: library/idle.rst:62 +#: library/idle.rst:66 msgid "Open..." msgstr "" -#: library/idle.rst:63 +#: library/idle.rst:67 msgid "Open an existing file with an Open dialog." msgstr "" -#: library/idle.rst:65 +#: library/idle.rst:69 msgid "Open Module..." msgstr "" -#: library/idle.rst:66 +#: library/idle.rst:70 msgid "Open an existing module (searches sys.path)." msgstr "" -#: library/idle.rst:68 +#: library/idle.rst:72 msgid "Recent Files" msgstr "" -#: library/idle.rst:69 +#: library/idle.rst:73 msgid "Open a list of recent files. Click one to open it." msgstr "" -#: library/idle.rst:75 +#: library/idle.rst:79 msgid "Module Browser" msgstr "" -#: library/idle.rst:76 +#: library/idle.rst:80 msgid "" "Show functions, classes, and methods in the current Editor file in a tree " "structure. In the shell, open a module first." msgstr "" -#: library/idle.rst:79 +#: library/idle.rst:83 msgid "Path Browser" msgstr "" -#: library/idle.rst:80 +#: library/idle.rst:84 msgid "" "Show sys.path directories, modules, functions, classes and methods in a tree " "structure." msgstr "" -#: library/idle.rst:83 +#: library/idle.rst:87 msgid "Save" msgstr "" -#: library/idle.rst:84 +#: library/idle.rst:88 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 " @@ -159,309 +171,309 @@ msgid "" "instead." msgstr "" -#: library/idle.rst:89 +#: library/idle.rst:93 msgid "Save As..." msgstr "" -#: library/idle.rst:90 +#: library/idle.rst:94 msgid "" "Save the current window with a Save As dialog. The file saved becomes the " -"new associated file for the window. (If your file namager is set to hide " +"new associated file for the window. (If your file manager is set to hide " "extensions, the current extension will be omitted in the file name box. If " "the new filename has no '.', '.py' and '.txt' will be added for Python and " "text files, except that on macOS Aqua,'.py' is added for all files.)" msgstr "" -#: library/idle.rst:96 +#: library/idle.rst:100 msgid "Save Copy As..." msgstr "" -#: library/idle.rst:97 +#: library/idle.rst:101 msgid "" "Save the current window to different file without changing the associated " "file. (See Save As note above about filename extensions.)" msgstr "" -#: library/idle.rst:100 +#: library/idle.rst:104 msgid "Print Window" msgstr "" -#: library/idle.rst:101 +#: library/idle.rst:105 msgid "Print the current window to the default printer." msgstr "" -#: library/idle.rst:103 +#: library/idle.rst:107 msgid "Close Window" msgstr "" -#: library/idle.rst:104 +#: library/idle.rst:108 msgid "" "Close the current window (if an unsaved editor, ask to save; if an unsaved " "Shell, ask to quit execution). Calling ``exit()`` or ``close()`` in the " "Shell window also closes Shell. If this is the only window, also exit IDLE." msgstr "" -#: library/idle.rst:108 +#: library/idle.rst:112 msgid "Exit IDLE" msgstr "" -#: library/idle.rst:109 +#: library/idle.rst:113 msgid "Close all windows and quit IDLE (ask to save unsaved edit windows)." msgstr "" -#: library/idle.rst:112 +#: library/idle.rst:116 msgid "Edit menu (Shell and Editor)" msgstr "" -#: library/idle.rst:114 +#: library/idle.rst:118 msgid "Undo" msgstr "" -#: library/idle.rst:115 +#: library/idle.rst:119 msgid "" "Undo the last change to the current window. A maximum of 1000 changes may " "be undone." msgstr "" -#: library/idle.rst:118 +#: library/idle.rst:122 msgid "Redo" msgstr "" -#: library/idle.rst:119 +#: library/idle.rst:123 msgid "Redo the last undone change to the current window." msgstr "" -#: library/idle.rst:121 +#: library/idle.rst:125 msgid "Select All" msgstr "" -#: library/idle.rst:122 +#: library/idle.rst:126 msgid "Select the entire contents of the current window." msgstr "" -#: library/idle.rst:356 library/idle.rst:370 +#: library/idle.rst:360 library/idle.rst:374 msgid "Cut" msgstr "" -#: library/idle.rst:371 +#: library/idle.rst:375 msgid "" "Copy selection into the system-wide clipboard; then delete the selection." msgstr "" -#: library/idle.rst:356 library/idle.rst:373 +#: library/idle.rst:360 library/idle.rst:377 msgid "Copy" msgstr "" -#: library/idle.rst:374 +#: library/idle.rst:378 msgid "Copy selection into the system-wide clipboard." msgstr "" -#: library/idle.rst:356 library/idle.rst:376 +#: library/idle.rst:360 library/idle.rst:380 msgid "Paste" msgstr "" -#: library/idle.rst:377 +#: library/idle.rst:381 msgid "Insert contents of the system-wide clipboard into the current window." msgstr "" -#: library/idle.rst:133 +#: library/idle.rst:137 msgid "The clipboard functions are also available in context menus." msgstr "" -#: library/idle.rst:135 +#: library/idle.rst:139 msgid "Find..." msgstr "" -#: library/idle.rst:136 +#: library/idle.rst:140 msgid "Open a search dialog with many options" msgstr "" -#: library/idle.rst:138 +#: library/idle.rst:142 msgid "Find Again" msgstr "" -#: library/idle.rst:139 +#: library/idle.rst:143 msgid "Repeat the last search, if there is one." msgstr "" -#: library/idle.rst:141 +#: library/idle.rst:145 msgid "Find Selection" msgstr "" -#: library/idle.rst:142 +#: library/idle.rst:146 msgid "Search for the currently selected string, if there is one." msgstr "" -#: library/idle.rst:144 +#: library/idle.rst:148 msgid "Find in Files..." msgstr "" -#: library/idle.rst:145 +#: library/idle.rst:149 msgid "Open a file search dialog. Put results in a new output window." msgstr "" -#: library/idle.rst:147 +#: library/idle.rst:151 msgid "Replace..." msgstr "" -#: library/idle.rst:148 +#: library/idle.rst:152 msgid "Open a search-and-replace dialog." msgstr "" -#: library/idle.rst:150 +#: library/idle.rst:154 msgid "Go to Line" msgstr "" -#: library/idle.rst:151 +#: library/idle.rst:155 msgid "" "Move the cursor to the beginning of the line requested and make that line " "visible. A request past the end of the file goes to the end. Clear any " "selection and update the line and column status." msgstr "" -#: library/idle.rst:155 +#: library/idle.rst:159 msgid "Show Completions" msgstr "" -#: library/idle.rst:156 +#: library/idle.rst:160 msgid "" "Open a scrollable list allowing selection of existing names. See :ref:" "`Completions ` in the Editing and navigation section below." msgstr "" -#: library/idle.rst:159 +#: library/idle.rst:163 msgid "Expand Word" msgstr "" -#: library/idle.rst:160 +#: library/idle.rst:164 msgid "" "Expand a prefix you have typed to match a full word in the same window; " "repeat to get a different expansion." msgstr "" -#: library/idle.rst:163 +#: library/idle.rst:167 msgid "Show Call Tip" msgstr "" -#: library/idle.rst:164 +#: library/idle.rst:168 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 "" -#: library/idle.rst:168 +#: library/idle.rst:172 msgid "Show Surrounding Parens" msgstr "" -#: library/idle.rst:169 +#: library/idle.rst:173 msgid "Highlight the surrounding parenthesis." msgstr "" -#: library/idle.rst:174 +#: library/idle.rst:178 msgid "Format menu (Editor window only)" msgstr "" -#: library/idle.rst:176 +#: library/idle.rst:180 msgid "Format Paragraph" msgstr "" -#: library/idle.rst:177 +#: library/idle.rst:181 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 "" -#: library/idle.rst:181 +#: library/idle.rst:185 msgid "Indent Region" msgstr "" -#: library/idle.rst:182 +#: library/idle.rst:186 msgid "Shift selected lines right by the indent width (default 4 spaces)." msgstr "" -#: library/idle.rst:184 +#: library/idle.rst:188 msgid "Dedent Region" msgstr "" -#: library/idle.rst:185 +#: library/idle.rst:189 msgid "Shift selected lines left by the indent width (default 4 spaces)." msgstr "" -#: library/idle.rst:187 +#: library/idle.rst:191 msgid "Comment Out Region" msgstr "" -#: library/idle.rst:188 +#: library/idle.rst:192 msgid "Insert ## in front of selected lines." msgstr "" -#: library/idle.rst:190 +#: library/idle.rst:194 msgid "Uncomment Region" msgstr "" -#: library/idle.rst:191 +#: library/idle.rst:195 msgid "Remove leading # or ## from selected lines." msgstr "" -#: library/idle.rst:193 +#: library/idle.rst:197 msgid "Tabify Region" msgstr "" -#: library/idle.rst:194 +#: library/idle.rst:198 msgid "" "Turn *leading* stretches of spaces into tabs. (Note: We recommend using 4 " "space blocks to indent Python code.)" msgstr "" -#: library/idle.rst:197 +#: library/idle.rst:201 msgid "Untabify Region" msgstr "" -#: library/idle.rst:198 +#: library/idle.rst:202 msgid "Turn *all* tabs into the correct number of spaces." msgstr "" -#: library/idle.rst:200 +#: library/idle.rst:204 msgid "Toggle Tabs" msgstr "" -#: library/idle.rst:201 +#: library/idle.rst:205 msgid "Open a dialog to switch between indenting with spaces and tabs." msgstr "" -#: library/idle.rst:203 +#: library/idle.rst:207 msgid "New Indent Width" msgstr "" -#: library/idle.rst:204 +#: library/idle.rst:208 msgid "" "Open a dialog to change indent width. The accepted default by the Python " "community is 4 spaces." msgstr "" -#: library/idle.rst:207 -msgid "Strip Trailing Chitespace" +#: library/idle.rst:211 +msgid "Strip Trailing Whitespace" msgstr "" -#: library/idle.rst:208 +#: library/idle.rst:212 msgid "" "Remove trailing space and other whitespace characters after the last non-" -"whitespace character of a line by applying str.rstrip to each line, " +"whitespace character of a line by applying :meth:`str.rstrip` to each line, " "including lines within multiline strings. Except for Shell windows, remove " "extra newlines at the end of the file." msgstr "" -#: library/idle.rst:217 +#: library/idle.rst:221 msgid "Run menu (Editor window only)" msgstr "" -#: library/idle.rst:221 +#: library/idle.rst:225 msgid "Run Module" msgstr "" -#: library/idle.rst:222 +#: library/idle.rst:226 msgid "" "Do :ref:`Check Module `. If no error, restart the shell to " "clean the environment, then execute the module. Output is displayed in the " @@ -471,22 +483,22 @@ msgid "" "similar to executing a file with ``python -i file`` at a command line." msgstr "" -#: library/idle.rst:232 +#: library/idle.rst:236 msgid "Run... Customized" msgstr "" -#: library/idle.rst:233 +#: library/idle.rst:237 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 "" -#: library/idle.rst:239 +#: library/idle.rst:243 msgid "Check Module" msgstr "" -#: library/idle.rst:240 +#: library/idle.rst:244 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 " @@ -495,70 +507,70 @@ msgid "" "window." msgstr "" -#: library/idle.rst:248 +#: library/idle.rst:252 msgid "Python Shell" msgstr "" -#: library/idle.rst:249 +#: library/idle.rst:253 msgid "Open or wake up the Python Shell window." msgstr "" -#: library/idle.rst:253 +#: library/idle.rst:257 msgid "Shell menu (Shell window only)" msgstr "" -#: library/idle.rst:255 +#: library/idle.rst:259 msgid "View Last Restart" msgstr "" -#: library/idle.rst:256 +#: library/idle.rst:260 msgid "Scroll the shell window to the last Shell restart." msgstr "" -#: library/idle.rst:258 +#: library/idle.rst:262 msgid "Restart Shell" msgstr "" -#: library/idle.rst:259 +#: library/idle.rst:263 msgid "" "Restart the shell to clean the environment and reset display and exception " "handling." msgstr "" -#: library/idle.rst:261 +#: library/idle.rst:265 msgid "Previous History" msgstr "" -#: library/idle.rst:262 +#: library/idle.rst:266 msgid "" "Cycle through earlier commands in history which match the current entry." msgstr "" -#: library/idle.rst:264 +#: library/idle.rst:268 msgid "Next History" msgstr "" -#: library/idle.rst:265 +#: library/idle.rst:269 msgid "Cycle through later commands in history which match the current entry." msgstr "" -#: library/idle.rst:267 +#: library/idle.rst:271 msgid "Interrupt Execution" msgstr "" -#: library/idle.rst:268 +#: library/idle.rst:272 msgid "Stop a running program." msgstr "" -#: library/idle.rst:271 +#: library/idle.rst:275 msgid "Debug menu (Shell window only)" msgstr "" -#: library/idle.rst:273 +#: library/idle.rst:277 msgid "Go to File/Line" msgstr "" -#: library/idle.rst:274 +#: library/idle.rst:278 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 " @@ -567,45 +579,45 @@ msgid "" "Shell window and Output windows." msgstr "" -#: library/idle.rst:284 +#: library/idle.rst:288 msgid "Debugger (toggle)" msgstr "" -#: library/idle.rst:285 +#: library/idle.rst:289 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 "" -#: library/idle.rst:289 +#: library/idle.rst:293 msgid "Stack Viewer" msgstr "" -#: library/idle.rst:290 +#: library/idle.rst:294 msgid "" "Show the stack traceback of the last exception in a tree widget, with access " "to locals and globals." msgstr "" -#: library/idle.rst:293 +#: library/idle.rst:297 msgid "Auto-open Stack Viewer" msgstr "" -#: library/idle.rst:294 +#: library/idle.rst:298 msgid "" "Toggle automatically opening the stack viewer on an unhandled exception." msgstr "" -#: library/idle.rst:297 +#: library/idle.rst:301 msgid "Options menu (Shell and Editor)" msgstr "" -#: library/idle.rst:299 +#: library/idle.rst:303 msgid "Configure IDLE" msgstr "" -#: library/idle.rst:300 +#: library/idle.rst:304 msgid "" "Open a configuration dialog and change preferences for the following: fonts, " "indentation, keybindings, text color themes, startup windows and size, " @@ -614,39 +626,39 @@ msgid "" "see :ref:`Setting preferences ` under Help and preferences." msgstr "" -#: library/idle.rst:307 +#: library/idle.rst:311 msgid "" "Most configuration options apply to all windows or all future windows. The " "option items below only apply to the active window." msgstr "" -#: library/idle.rst:310 +#: library/idle.rst:314 msgid "Show/Hide Code Context (Editor Window only)" msgstr "" -#: library/idle.rst:311 +#: library/idle.rst:315 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 "" -#: library/idle.rst:316 +#: library/idle.rst:320 msgid "Show/Hide Line Numbers (Editor Window only)" msgstr "" -#: library/idle.rst:317 +#: library/idle.rst:321 msgid "" "Open a column to the left of the edit window which shows the number of each " "line of text. The default is off, which may be changed in the preferences " "(see :ref:`Setting preferences `)." msgstr "" -#: library/idle.rst:321 +#: library/idle.rst:325 msgid "Zoom/Restore Height" msgstr "" -#: library/idle.rst:322 +#: library/idle.rst:326 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 " @@ -656,74 +668,74 @@ msgid "" "no effect when a window is maximized." msgstr "" -#: library/idle.rst:330 +#: library/idle.rst:334 msgid "Window menu (Shell and Editor)" msgstr "" -#: library/idle.rst:332 +#: library/idle.rst:336 msgid "" "Lists the names of all open windows; select one to bring it to the " "foreground (deiconifying it if necessary)." msgstr "" -#: library/idle.rst:336 +#: library/idle.rst:340 msgid "Help menu (Shell and Editor)" msgstr "" -#: library/idle.rst:338 +#: library/idle.rst:342 msgid "About IDLE" msgstr "" -#: library/idle.rst:339 +#: library/idle.rst:343 msgid "Display version, copyright, license, credits, and more." msgstr "" -#: library/idle.rst:341 +#: library/idle.rst:345 msgid "IDLE Help" msgstr "" -#: library/idle.rst:342 +#: library/idle.rst:346 msgid "" "Display this IDLE document, detailing the menu options, basic editing and " "navigation, and other tips." msgstr "" -#: library/idle.rst:345 +#: library/idle.rst:349 msgid "Python Docs" msgstr "" -#: library/idle.rst:346 +#: library/idle.rst:350 msgid "" "Access local Python documentation, if installed, or start a web browser and " "open docs.python.org showing the latest Python documentation." msgstr "" -#: library/idle.rst:349 +#: library/idle.rst:353 msgid "Turtle Demo" msgstr "" -#: library/idle.rst:350 +#: library/idle.rst:354 msgid "Run the turtledemo module with example Python code and turtle drawings." msgstr "" -#: library/idle.rst:352 +#: library/idle.rst:356 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 "" -#: library/idle.rst:365 +#: library/idle.rst:369 msgid "Context menus" msgstr "" -#: library/idle.rst:367 +#: library/idle.rst:371 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 "" -#: library/idle.rst:379 +#: library/idle.rst:383 msgid "" "Editor windows also have breakpoint functions. Lines with a breakpoint set " "are specially marked. Breakpoints only have an effect when running under " @@ -731,66 +743,66 @@ msgid "" "directory." msgstr "" -#: library/idle.rst:384 +#: library/idle.rst:388 msgid "Set Breakpoint" msgstr "" -#: library/idle.rst:385 +#: library/idle.rst:389 msgid "Set a breakpoint on the current line." msgstr "" -#: library/idle.rst:387 +#: library/idle.rst:391 msgid "Clear Breakpoint" msgstr "" -#: library/idle.rst:388 +#: library/idle.rst:392 msgid "Clear the breakpoint on that line." msgstr "" -#: library/idle.rst:390 +#: library/idle.rst:394 msgid "Shell and Output windows also have the following." msgstr "" -#: library/idle.rst:392 +#: library/idle.rst:396 msgid "Go to file/line" msgstr "" -#: library/idle.rst:393 +#: library/idle.rst:397 msgid "Same as in Debug menu." msgstr "" -#: library/idle.rst:395 +#: library/idle.rst:399 msgid "" "The Shell window also has an output squeezing facility explained in the " "*Python Shell window* subsection below." msgstr "" -#: library/idle.rst:398 +#: library/idle.rst:402 msgid "Squeeze" msgstr "" -#: library/idle.rst:399 +#: library/idle.rst:403 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 "" -#: library/idle.rst:406 +#: library/idle.rst:410 msgid "Editing and Navigation" msgstr "" -#: library/idle.rst:409 +#: library/idle.rst:413 msgid "Editor windows" msgstr "" -#: library/idle.rst:411 +#: library/idle.rst:415 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 "" -#: library/idle.rst:415 +#: library/idle.rst:419 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 " @@ -798,17 +810,17 @@ msgid "" "numbers with 0." msgstr "" -#: library/idle.rst:420 +#: library/idle.rst:424 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 "" -#: library/idle.rst:424 +#: library/idle.rst:428 msgid "Key bindings" msgstr "" -#: library/idle.rst:426 +#: library/idle.rst:430 msgid "" "The IDLE insertion cursor is a thin vertical bar between character " "positions. When characters are entered, the insertion cursor and everything " @@ -816,7 +828,7 @@ msgid "" "the new space." msgstr "" -#: library/idle.rst:431 +#: library/idle.rst:435 msgid "" "Several non-character keys move the cursor and possibly delete characters. " "Deletion does not puts text on the clipboard, but IDLE has an undo list. " @@ -825,52 +837,52 @@ msgid "" "discussions assume that the keys have not been re-bound to something else.)" msgstr "" -#: library/idle.rst:438 +#: library/idle.rst:442 msgid "Arrow keys move the cursor one character or line." msgstr "" -#: library/idle.rst:440 +#: library/idle.rst:444 msgid "" ":kbd:`C-LeftArrow` and :kbd:`C-RightArrow` moves left or right one word." msgstr "" -#: library/idle.rst:442 +#: library/idle.rst:446 msgid ":kbd:`Home` and :kbd:`End` go to the beginning or end of the line." msgstr "" -#: library/idle.rst:444 +#: library/idle.rst:448 msgid ":kbd:`Page Up` and :kbd:`Page Down` go up or down one screen." msgstr "" -#: library/idle.rst:446 +#: library/idle.rst:450 msgid ":kbd:`C-Home` and :kbd:`C-End` go to beginning or end of the file." msgstr "" -#: library/idle.rst:448 +#: library/idle.rst:452 msgid "" ":kbd:`Backspace` and :kbd:`Del` (or :kbd:`C-d`) delete the previous or next " "character." msgstr "" -#: library/idle.rst:451 +#: library/idle.rst:455 msgid ":kbd:`C-Backspace` and :kbd:`C-Del` delete one word left or right." msgstr "" -#: library/idle.rst:453 +#: library/idle.rst:457 msgid ":kbd:`C-k` deletes ('kills') everything to the right." msgstr "" -#: library/idle.rst:455 +#: library/idle.rst:459 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 "" -#: library/idle.rst:459 +#: library/idle.rst:463 msgid "Automatic indentation" msgstr "" -#: library/idle.rst:461 +#: library/idle.rst:465 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 " @@ -880,17 +892,17 @@ msgid "" "tabs are restricted to four spaces due to Tcl/Tk limitations." msgstr "" -#: library/idle.rst:468 +#: library/idle.rst:472 msgid "" "See also the indent/dedent region commands on the :ref:`Format menu `." msgstr "" -#: library/idle.rst:472 +#: library/idle.rst:476 msgid "Search and Replace" msgstr "" -#: library/idle.rst:474 +#: library/idle.rst:478 msgid "" "Any selection becomes a search target. However, only selections within a " "line work because searches are only performed within lines with the terminal " @@ -898,11 +910,11 @@ msgid "" "interpreted according to the Python re module." msgstr "" -#: library/idle.rst:482 +#: library/idle.rst:486 msgid "Completions" msgstr "" -#: library/idle.rst:484 +#: library/idle.rst:488 msgid "" "Completions are supplied, when requested and available, for module names, " "attributes of classes or functions, or filenames. Each request method " @@ -915,7 +927,7 @@ msgid "" "box. A double click within the box selects and closes." msgstr "" -#: library/idle.rst:495 +#: library/idle.rst:499 msgid "" "One way to open a box is to type a key character and wait for a predefined " "interval. This defaults to 2 seconds; customize it in the settings dialog. " @@ -927,7 +939,7 @@ msgid "" "directory name and a separator." msgstr "" -#: library/idle.rst:505 +#: library/idle.rst:509 msgid "" "Instead of waiting, or after a box is closed, open a completion box " "immediately with Show Completions on the Edit menu. The default hot key is :" @@ -938,7 +950,7 @@ msgid "" "directory." msgstr "" -#: library/idle.rst:513 +#: library/idle.rst:517 msgid "" "Hitting :kbd:`Tab` after a prefix usually has the same effect as Show " "Completions. (With no prefix, it indents.) However, if there is only one " @@ -946,14 +958,14 @@ msgid "" "without opening a box." msgstr "" -#: library/idle.rst:518 +#: library/idle.rst:522 msgid "" "Invoking 'Show Completions', or hitting :kbd:`Tab` after a prefix, outside " "of a string and without a preceding '.' opens a box with keywords, builtin " "names, and available module-level names." msgstr "" -#: library/idle.rst:522 +#: library/idle.rst:526 msgid "" "When editing code in an editor (as oppose to Shell), increase the available " "module-level names by running your code and not restarting the Shell " @@ -961,18 +973,18 @@ msgid "" "file. This also increases possible attribute completions." msgstr "" -#: library/idle.rst:528 +#: library/idle.rst:532 msgid "" "Completion boxes initially exclude names beginning with '_' or, for modules, " "not included in '__all__'. The hidden names can be accessed by typing '_' " "after '.', either before or after the box is opened." msgstr "" -#: library/idle.rst:535 +#: library/idle.rst:539 msgid "Calltips" msgstr "" -#: library/idle.rst:537 +#: library/idle.rst:541 msgid "" "A calltip is shown automatically when one types :kbd:`(` after the name of " "an *accessible* function. A function name expression may include dots and " @@ -982,7 +994,7 @@ msgid "" "or enter its shortcut to display a calltip." msgstr "" -#: library/idle.rst:544 +#: library/idle.rst:548 msgid "" "The calltip consists of the function's signature and docstring up to the " "latter's first blank line or the fifth non-blank line. (Some builtin " @@ -991,14 +1003,14 @@ msgid "" "or name (keyword) only. Details are subject to change." msgstr "" -#: library/idle.rst:550 +#: library/idle.rst:554 msgid "" "In Shell, the accessible functions depends on what modules have been " "imported into the user process, including those imported by Idle itself, and " "which definitions have been run, all since the last restart." msgstr "" -#: library/idle.rst:554 +#: library/idle.rst:558 msgid "" "For example, restart the Shell and enter ``itertools.count(``. A calltip " "appears because Idle imports itertools into the user process for its own " @@ -1008,18 +1020,18 @@ msgid "" "display a calltip." msgstr "" -#: library/idle.rst:561 +#: library/idle.rst:565 msgid "" "In an editor, import statements have no effect until one runs the file. One " "might want to run a file after writing import statements, after adding " "function definitions, or after opening an existing file." msgstr "" -#: library/idle.rst:568 +#: library/idle.rst:572 msgid "Code Context" msgstr "" -#: library/idle.rst:570 +#: library/idle.rst:574 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 " @@ -1033,23 +1045,23 @@ msgid "" "the top of the editor." msgstr "" -#: library/idle.rst:581 +#: library/idle.rst:585 msgid "" "The text and background colors for the context pane can be configured under " "the Highlights tab in the Configure IDLE dialog." msgstr "" -#: library/idle.rst:585 +#: library/idle.rst:589 msgid "Shell window" msgstr "" -#: library/idle.rst:587 +#: library/idle.rst:591 msgid "" "In IDLE's Shell, enter, edit, and recall complete statements. (Most consoles " "and terminals only work with a single physical line at a time)." msgstr "" -#: library/idle.rst:590 +#: library/idle.rst:594 msgid "" "Submit a single-line statement for execution by hitting :kbd:`Return` with " "the cursor anywhere on the line. If a line is extended with Backslash (:kbd:" @@ -1057,7 +1069,7 @@ msgid "" "compound statement by entering a blank line after the statement." msgstr "" -#: library/idle.rst:596 +#: library/idle.rst:600 msgid "" "When one pastes code into Shell, it is not compiled and possibly executed " "until one hits :kbd:`Return`, as specified above. One may edit pasted code " @@ -1066,7 +1078,7 @@ msgid "" "one." msgstr "" -#: library/idle.rst:602 +#: library/idle.rst:606 msgid "" "Lines containing ``RESTART`` mean that the user execution process has been " "re-started. This occurs when the user execution process has crashed, when " @@ -1074,38 +1086,38 @@ msgid "" "window." msgstr "" -#: library/idle.rst:607 +#: library/idle.rst:611 msgid "" "The editing features described in previous subsections work when entering " "code interactively. IDLE's Shell window also responds to the following:" msgstr "" -#: library/idle.rst:610 +#: library/idle.rst:614 msgid ":kbd:`C-c` attempts to interrupt statement execution (but may fail)." msgstr "" -#: library/idle.rst:612 +#: library/idle.rst:616 msgid ":kbd:`C-d` closes Shell if typed at a ``>>>`` prompt." msgstr "" -#: library/idle.rst:614 +#: library/idle.rst:618 msgid "" ":kbd:`Alt-p` and :kbd:`Alt-n` (:kbd:`C-p` and :kbd:`C-n` on macOS) retrieve " "to the current prompt the previous or next previously entered statement that " "matches anything already typed." msgstr "" -#: library/idle.rst:618 +#: library/idle.rst:622 msgid "" ":kbd:`Return` while the cursor is on any previous statement appends the " "latter to anything already typed at the prompt." msgstr "" -#: library/idle.rst:622 +#: library/idle.rst:626 msgid "Text colors" msgstr "" -#: library/idle.rst:624 +#: library/idle.rst:628 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 " @@ -1115,7 +1127,7 @@ msgid "" "(when present), found text (when possible), and selected text." msgstr "" -#: library/idle.rst:631 +#: library/idle.rst:635 msgid "" "IDLE also highlights the :ref:`soft keywords ` :keyword:" "`match`, :keyword:`case `, and :keyword:`_ ` in " @@ -1124,7 +1136,7 @@ msgid "" "patterns." msgstr "" -#: library/idle.rst:637 +#: library/idle.rst:641 msgid "" "Text coloring is done in the background, so uncolorized text is occasionally " "visible. To change the color scheme, use the Configure IDLE dialog " @@ -1132,11 +1144,11 @@ msgid "" "and text in popups and dialogs is not user-configurable." msgstr "" -#: library/idle.rst:644 +#: library/idle.rst:648 msgid "Startup and Code Execution" msgstr "" -#: library/idle.rst:646 +#: library/idle.rst:650 msgid "" "Upon startup with the ``-s`` option, IDLE will execute the file referenced " "by the environment variables :envvar:`IDLESTARTUP` or :envvar:" @@ -1148,7 +1160,7 @@ msgid "" "modules." msgstr "" -#: library/idle.rst:654 +#: library/idle.rst:658 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`` " @@ -1157,72 +1169,72 @@ msgid "" "importing functions to be used from IDLE's Python shell." msgstr "" -#: library/idle.rst:661 -msgid "Command line usage" +#: library/idle.rst:667 +msgid "Command-line usage" msgstr "" -#: library/idle.rst:665 +#: library/idle.rst:671 msgid "" "IDLE can be invoked from the command line with various options. The general " "syntax is:" msgstr "" -#: library/idle.rst:667 +#: library/idle.rst:673 msgid "python -m idlelib [options] [file ...]" msgstr "" -#: library/idle.rst:671 +#: library/idle.rst:677 msgid "The following options are available:" msgstr "" -#: library/idle.rst:675 +#: library/idle.rst:681 msgid "" "Run the specified Python command in the shell window. For example, pass ``-c " "\"print('Hello, World!')\"``. On Windows, the outer quotes must be double " "quotes as shown." msgstr "" -#: library/idle.rst:681 +#: library/idle.rst:687 msgid "Enable the debugger and open the shell window." msgstr "" -#: library/idle.rst:685 +#: library/idle.rst:691 msgid "Open an editor window." msgstr "" -#: library/idle.rst:689 +#: library/idle.rst:695 msgid "Print a help message with legal combinations of options and exit." msgstr "" -#: library/idle.rst:693 +#: library/idle.rst:699 msgid "Open a shell window." msgstr "" -#: library/idle.rst:697 +#: library/idle.rst:703 msgid "Run the specified file in the shell window." msgstr "" -#: library/idle.rst:701 +#: library/idle.rst:707 msgid "" "Run the startup file (as defined by the environment variables :envvar:" "`IDLESTARTUP` or :envvar:`PYTHONSTARTUP`) before opening the shell window." msgstr "" -#: library/idle.rst:705 +#: library/idle.rst:711 msgid "Set the title of the shell window." msgstr "" -#: library/idle.rst:709 +#: library/idle.rst:715 msgid "" "Read and execute standard input in the shell window. This option must be the " "last one before any arguments." msgstr "" -#: library/idle.rst:711 +#: library/idle.rst:717 msgid "If arguments are provided:" msgstr "" -#: library/idle.rst:713 +#: library/idle.rst:719 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'`` " @@ -1230,17 +1242,17 @@ msgid "" "the *Options* dialog." msgstr "" -#: library/idle.rst:716 +#: library/idle.rst:722 msgid "" "Otherwise, arguments are treated as files to be opened for editing, and " "``sys.argv`` reflects the arguments passed to IDLE itself." msgstr "" -#: library/idle.rst:720 +#: library/idle.rst:726 msgid "Startup failure" msgstr "" -#: library/idle.rst:722 +#: library/idle.rst:728 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 " @@ -1250,7 +1262,7 @@ msgid "" "directs the user here. It then exits." msgstr "" -#: library/idle.rst:729 +#: library/idle.rst:735 msgid "" "One specific connection failure on Unix systems results from misconfigured " "masquerading rules somewhere in a system's network setup. When IDLE is " @@ -1260,7 +1272,7 @@ msgid "" "``tcplisten `` in another." msgstr "" -#: library/idle.rst:737 +#: library/idle.rst:743 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 " @@ -1269,7 +1281,7 @@ msgid "" "file." msgstr "" -#: library/idle.rst:743 +#: library/idle.rst:749 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 " @@ -1279,7 +1291,7 @@ msgid "" "connections." msgstr "" -#: library/idle.rst:750 +#: library/idle.rst:756 msgid "" "Python installation issues occasionally stop IDLE: multiple versions can " "clash, or a single installation might need admin access. If one undo the " @@ -1287,7 +1299,7 @@ msgid "" "completely remove Python and start over." msgstr "" -#: library/idle.rst:755 +#: library/idle.rst:761 msgid "" "A zombie pythonw.exe process could be a problem. On Windows, use Task " "Manager to check for one and stop it if there is. Sometimes a restart " @@ -1296,7 +1308,7 @@ msgid "" "may fix a temporary problem." msgstr "" -#: library/idle.rst:761 +#: library/idle.rst:767 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 " @@ -1307,14 +1319,14 @@ msgid "" "with the settings dialog." msgstr "" -#: library/idle.rst:769 +#: library/idle.rst:775 msgid "" "If IDLE quits with no message, and it was not started from a console, try " "starting it from a console or terminal (``python -m idlelib``) and see if " "this results in an error message." msgstr "" -#: library/idle.rst:773 +#: library/idle.rst:779 msgid "" "On Unix-based systems with tcl/tk older than ``8.6.11`` (see ``About IDLE``) " "certain characters of certain fonts can cause a tk failure with a message to " @@ -1323,11 +1335,11 @@ msgid "" "upgrade tcl/tk, then re-configure IDLE to use a font that works better." msgstr "" -#: library/idle.rst:781 +#: library/idle.rst:787 msgid "Running user code" msgstr "" -#: library/idle.rst:783 +#: library/idle.rst:789 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, " @@ -1337,7 +1349,7 @@ msgid "" "``threading.active_count()`` returns 2 instead of 1." msgstr "" -#: library/idle.rst:790 +#: library/idle.rst:796 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 " @@ -1347,7 +1359,7 @@ msgid "" "__stderr__`` are not touched, but may be ``None``." msgstr "" -#: library/idle.rst:797 +#: library/idle.rst:803 msgid "" "Sending print output from one process to a text widget in another is slower " "than printing to a system terminal in the same process. This has the most " @@ -1359,7 +1371,7 @@ msgid "" "fields and lines." msgstr "" -#: library/idle.rst:806 +#: library/idle.rst:812 msgid "" "IDLE's standard stream replacements are not inherited by subprocesses " "created in the execution process, whether directly by user code or by " @@ -1370,14 +1382,14 @@ msgid "" "attached to that window for input and output." msgstr "" -#: library/idle.rst:815 +#: library/idle.rst:821 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 "" -#: library/idle.rst:819 +#: library/idle.rst:825 msgid "" "When Shell has the focus, it controls the keyboard and screen. This is " "normally transparent, but functions that directly access the keyboard and " @@ -1385,7 +1397,7 @@ msgid "" "determine whether a key has been pressed and if so, which." msgstr "" -#: library/idle.rst:824 +#: library/idle.rst:830 msgid "" "The IDLE code running in the execution process adds frames to the call stack " "that would not be there otherwise. IDLE wraps ``sys.getrecursionlimit`` and " @@ -1393,17 +1405,17 @@ msgid "" "frames." msgstr "" -#: library/idle.rst:829 +#: library/idle.rst:835 msgid "" "When user code raises SystemExit either directly or by calling sys.exit, " "IDLE returns to a Shell prompt instead of exiting." msgstr "" -#: library/idle.rst:833 +#: library/idle.rst:839 msgid "User output in Shell" msgstr "" -#: library/idle.rst:835 +#: library/idle.rst:841 msgid "" "When a program outputs text, the result is determined by the corresponding " "output device. When IDLE executes user code, ``sys.stdout`` and ``sys." @@ -1413,7 +1425,7 @@ msgid "" "rather than production runs." msgstr "" -#: library/idle.rst:842 +#: library/idle.rst:848 msgid "" "For instance, Shell never throws away output. A program that sends " "unlimited output to Shell will eventually fill memory, resulting in a memory " @@ -1422,7 +1434,7 @@ msgid "" "lines, with 300 the default." msgstr "" -#: library/idle.rst:848 +#: library/idle.rst:854 msgid "" "A Tk Text widget, and hence IDLE's Shell, displays characters (codepoints) " "in the BMP (Basic Multilingual Plane) subset of Unicode. Which characters " @@ -1436,7 +1448,7 @@ msgid "" "spacing behavior.) ::" msgstr "" -#: library/idle.rst:858 +#: library/idle.rst:864 msgid "" ">>> s = 'a\\tb\\a<\\x02><\\r>\\bc\\nd' # Enter 22 chars.\n" ">>> len(s)\n" @@ -1447,7 +1459,7 @@ msgid "" "# Result varies by OS and font. Try it." msgstr "" -#: library/idle.rst:866 +#: library/idle.rst:872 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 " @@ -1456,13 +1468,13 @@ msgid "" "regardless of how they are displayed." msgstr "" -#: library/idle.rst:872 +#: library/idle.rst:878 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 "" -#: library/idle.rst:875 +#: library/idle.rst:881 msgid "" "For SyntaxError tracebacks, the normal '^' marking where the error was " "detected is replaced by coloring the text with an error highlight. When code " @@ -1471,7 +1483,7 @@ msgid "" "opened if necessary." msgstr "" -#: library/idle.rst:881 +#: library/idle.rst:887 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 " @@ -1480,18 +1492,18 @@ msgid "" "on the output. This can be useful lines long enough to slow down scrolling." msgstr "" -#: library/idle.rst:889 +#: library/idle.rst:895 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 "" -#: library/idle.rst:894 +#: library/idle.rst:900 msgid "Developing tkinter applications" msgstr "" -#: library/idle.rst:896 +#: library/idle.rst:902 msgid "" "IDLE is intentionally different from standard Python in order to facilitate " "development of tkinter programs. Enter ``import tkinter as tk; root = tk." @@ -1503,7 +1515,7 @@ msgid "" "changes in standard Python until one enters ``root.update()``." msgstr "" -#: library/idle.rst:905 +#: library/idle.rst:911 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 " @@ -1511,7 +1523,7 @@ msgid "" "``mainloop()`` returns, at which time there is nothing left to interact with." msgstr "" -#: library/idle.rst:911 +#: library/idle.rst:917 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 " @@ -1519,11 +1531,11 @@ msgid "" "mainloop call when running in standard Python." msgstr "" -#: library/idle.rst:917 +#: library/idle.rst:923 msgid "Running without a subprocess" msgstr "" -#: library/idle.rst:919 +#: library/idle.rst:925 msgid "" "By default, IDLE executes user code in a separate subprocess via a socket, " "which uses the internal loopback interface. This connection is not " @@ -1531,7 +1543,7 @@ msgid "" "firewall software complains anyway, you can ignore it." msgstr "" -#: library/idle.rst:924 +#: library/idle.rst:930 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 " @@ -1540,7 +1552,7 @@ msgid "" "command line switch." msgstr "" -#: library/idle.rst:930 +#: library/idle.rst:936 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 " @@ -1554,15 +1566,15 @@ msgid "" "at all possible." msgstr "" -#: library/idle.rst:945 +#: library/idle.rst:951 msgid "Help and Preferences" msgstr "" -#: library/idle.rst:950 +#: library/idle.rst:956 msgid "Help sources" msgstr "" -#: library/idle.rst:952 +#: library/idle.rst:958 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 " @@ -1572,7 +1584,7 @@ msgid "" "the opened box." msgstr "" -#: library/idle.rst:960 +#: library/idle.rst:966 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 " @@ -1581,17 +1593,17 @@ msgid "" "instead." msgstr "" -#: library/idle.rst:966 +#: library/idle.rst:972 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 "" -#: library/idle.rst:972 +#: library/idle.rst:978 msgid "Setting preferences" msgstr "" -#: library/idle.rst:974 +#: library/idle.rst:980 msgid "" "The font preferences, highlighting, keys, and general preferences can be " "changed via Configure IDLE on the Option menu. Non-default user settings are " @@ -1600,7 +1612,7 @@ msgid "" "or more of the files in ``.idlerc``." msgstr "" -#: library/idle.rst:980 +#: library/idle.rst:986 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 " @@ -1609,7 +1621,7 @@ msgid "" "them to the top of the sample and try changing first size and then font." msgstr "" -#: library/idle.rst:987 +#: library/idle.rst:993 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, " @@ -1617,22 +1629,22 @@ msgid "" "IDLEs." msgstr "" -#: library/idle.rst:993 +#: library/idle.rst:999 msgid "IDLE on macOS" msgstr "" -#: library/idle.rst:995 +#: library/idle.rst:1001 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 "" -#: library/idle.rst:1000 +#: library/idle.rst:1006 msgid "Extensions" msgstr "" -#: library/idle.rst:1002 +#: library/idle.rst:1008 msgid "" "IDLE contains an extension facility. Preferences for extensions can be " "changed with the Extensions tab of the preferences dialog. See the beginning " @@ -1641,21 +1653,21 @@ msgid "" "testing." msgstr "" -#: library/idle.rst:1010 +#: library/idle.rst:1016 msgid "idlelib --- implementation of IDLE application" msgstr "" -#: library/idle.rst:1015 +#: library/idle.rst:1021 msgid "**Source code:** :source:`Lib/idlelib`" msgstr "" -#: library/idle.rst:1019 +#: library/idle.rst:1025 msgid "" "The Lib/idlelib package implements the IDLE application. See the rest of " "this page for how to use IDLE." msgstr "" -#: library/idle.rst:1022 +#: library/idle.rst:1028 msgid "" "The files in idlelib are described in idlelib/README.txt. Access it either " "in idlelib or click Help => About IDLE on the IDLE menu. This file also " @@ -1676,26 +1688,26 @@ msgstr "" msgid "Integrated Development Environment" msgstr "" -#: library/idle.rst:71 +#: library/idle.rst:75 msgid "Module browser" msgstr "" -#: library/idle.rst:71 +#: library/idle.rst:75 msgid "Path browser" msgstr "" -#: library/idle.rst:213 +#: library/idle.rst:217 msgid "Run script" msgstr "" -#: library/idle.rst:280 +#: library/idle.rst:284 msgid "debugger" msgstr "" -#: library/idle.rst:280 +#: library/idle.rst:284 msgid "stack viewer" msgstr "" -#: library/idle.rst:356 +#: library/idle.rst:360 msgid "breakpoints" msgstr "" diff --git a/library/imaplib.po b/library/imaplib.po index ca87f2d6..a011621e 100644 --- a/library/imaplib.po +++ b/library/imaplib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -493,34 +493,38 @@ msgid "" "includes the phrase ``AUTH=CRAM-MD5``." msgstr "" -#: library/imaplib.rst:419 +#: library/imaplib.rst:416 +msgid "An :exc:`IMAP4.error` is raised if MD5 support is not available." +msgstr "" + +#: library/imaplib.rst:422 msgid "Shutdown connection to server. Returns server ``BYE`` response." msgstr "" -#: library/imaplib.rst:421 +#: library/imaplib.rst:424 msgid "The method no longer ignores silently arbitrary exceptions." msgstr "" -#: library/imaplib.rst:427 +#: library/imaplib.rst:430 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 "" -#: library/imaplib.rst:434 +#: library/imaplib.rst:437 msgid "Show my ACLs for a mailbox (i.e. the rights that I have on mailbox)." msgstr "" -#: library/imaplib.rst:439 +#: library/imaplib.rst:442 msgid "Returns IMAP namespaces as defined in :rfc:`2342`." msgstr "" -#: library/imaplib.rst:444 +#: library/imaplib.rst:447 msgid "Send ``NOOP`` to server." msgstr "" -#: library/imaplib.rst:449 +#: library/imaplib.rst:452 msgid "" "Opens socket to *port* at *host*. The optional *timeout* parameter specifies " "a timeout in seconds for the connection attempt. If timeout is not given or " @@ -533,54 +537,54 @@ msgid "" "You may override this method." msgstr "" -#: library/imaplib.rst:459 +#: library/imaplib.rst:462 msgid "" "Raises an :ref:`auditing event ` ``imaplib.open`` with arguments " "``self``, ``host``, ``port``." msgstr "" -#: library/imaplib.rst:461 +#: library/imaplib.rst:464 msgid "The *timeout* parameter was added." msgstr "" -#: library/imaplib.rst:466 +#: library/imaplib.rst:469 msgid "" "Fetch truncated part of a message. Returned data is a tuple of message part " "envelope and data." msgstr "" -#: library/imaplib.rst:472 +#: library/imaplib.rst:475 msgid "" "Assume authentication as *user*. Allows an authorised administrator to proxy " "into any user's mailbox." msgstr "" -#: library/imaplib.rst:478 +#: library/imaplib.rst:481 msgid "" "Reads *size* bytes from the remote server. You may override this method." msgstr "" -#: library/imaplib.rst:483 +#: library/imaplib.rst:486 msgid "Reads one line from the remote server. You may override this method." msgstr "" -#: library/imaplib.rst:488 +#: library/imaplib.rst:491 msgid "" "Prompt server for an update. Returned data is ``None`` if no new messages, " "else value of ``RECENT`` response." msgstr "" -#: library/imaplib.rst:494 +#: library/imaplib.rst:497 msgid "Rename mailbox named *oldmailbox* to *newmailbox*." msgstr "" -#: library/imaplib.rst:499 +#: library/imaplib.rst:502 msgid "" "Return data for response *code* if received, or ``None``. Returns the given " "code, instead of the usual type." msgstr "" -#: library/imaplib.rst:505 +#: library/imaplib.rst:508 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 " @@ -590,11 +594,11 @@ msgid "" "`enable` command." msgstr "" -#: library/imaplib.rst:512 +#: library/imaplib.rst:515 msgid "Example::" msgstr "" -#: library/imaplib.rst:514 +#: library/imaplib.rst:517 msgid "" "# M is a connected IMAP4 instance...\n" "typ, msgnums = M.search(None, 'FROM', '\"LDJ\"')\n" @@ -603,59 +607,59 @@ msgid "" "typ, msgnums = M.search(None, '(FROM \"LDJ\")')" msgstr "" -#: library/imaplib.rst:523 +#: library/imaplib.rst:526 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 "" -#: library/imaplib.rst:530 +#: library/imaplib.rst:533 msgid "Sends ``data`` to the remote server. You may override this method." msgstr "" -#: library/imaplib.rst:532 +#: library/imaplib.rst:535 msgid "" "Raises an :ref:`auditing event ` ``imaplib.send`` with arguments " "``self``, ``data``." msgstr "" -#: library/imaplib.rst:537 +#: library/imaplib.rst:540 msgid "" "Set an ``ACL`` for *mailbox*. The method is non-standard, but is supported " "by the ``Cyrus`` server." msgstr "" -#: library/imaplib.rst:543 +#: library/imaplib.rst:546 msgid "" "Set ``ANNOTATION``\\ s for *mailbox*. The method is non-standard, but is " "supported by the ``Cyrus`` server." msgstr "" -#: library/imaplib.rst:549 +#: library/imaplib.rst:552 msgid "" "Set the ``quota`` *root*'s resource *limits*. This method is part of the " "IMAP4 QUOTA extension defined in rfc2087." msgstr "" -#: library/imaplib.rst:555 +#: library/imaplib.rst:558 msgid "" "Close connection established in ``open``. This method is implicitly called " "by :meth:`IMAP4.logout`. You may override this method." msgstr "" -#: library/imaplib.rst:561 +#: library/imaplib.rst:564 msgid "Returns socket instance used to connect to server." msgstr "" -#: library/imaplib.rst:566 +#: library/imaplib.rst:569 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 "" -#: library/imaplib.rst:570 +#: library/imaplib.rst:573 msgid "" "Sort has two arguments before the *search_criterion* argument(s); a " "parenthesized list of *sort_criteria*, and the searching *charset*. Note " @@ -667,39 +671,39 @@ msgid "" "searching criteria. It then returns the numbers of matching messages." msgstr "" -#: library/imaplib.rst:650 +#: library/imaplib.rst:653 msgid "This is an ``IMAP4rev1`` extension command." msgstr "" -#: library/imaplib.rst:584 +#: library/imaplib.rst:587 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 "" -#: library/imaplib.rst:591 +#: library/imaplib.rst:594 msgid "" "The method now supports hostname check with :attr:`ssl.SSLContext." "check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)." msgstr "" -#: library/imaplib.rst:599 +#: library/imaplib.rst:602 msgid "Request named status conditions for *mailbox*." msgstr "" -#: library/imaplib.rst:604 +#: library/imaplib.rst:607 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 "" -#: library/imaplib.rst:608 +#: library/imaplib.rst:611 msgid "For example, to set the delete flag on all messages::" msgstr "" -#: library/imaplib.rst:610 +#: library/imaplib.rst:613 msgid "" "typ, data = M.search(None, 'ALL')\n" "for num in data[0].split():\n" @@ -707,7 +711,7 @@ msgid "" "M.expunge()" msgstr "" -#: library/imaplib.rst:617 +#: library/imaplib.rst:620 msgid "" "Creating flags containing ']' (for example: \"[test]\") violates :rfc:`3501` " "(the IMAP protocol). However, imaplib has historically allowed creation of " @@ -719,24 +723,24 @@ msgid "" "are sent from the server, since this improves real-world compatibility." msgstr "" -#: library/imaplib.rst:629 +#: library/imaplib.rst:632 msgid "Subscribe to new mailbox." msgstr "" -#: library/imaplib.rst:634 +#: library/imaplib.rst:637 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 "" -#: library/imaplib.rst:637 +#: library/imaplib.rst:640 msgid "" "Thread members consist of zero or more messages numbers, delimited by " "spaces, indicating successive parent and child." msgstr "" -#: library/imaplib.rst:640 +#: library/imaplib.rst:643 msgid "" "Thread has two arguments before the *search_criterion* argument(s); a " "*threading_algorithm*, and the searching *charset*. Note that unlike " @@ -749,7 +753,7 @@ msgid "" "specified threading algorithm." msgstr "" -#: library/imaplib.rst:655 +#: library/imaplib.rst:658 msgid "" "Execute command args with messages identified by UID, rather than message " "number. Returns response appropriate to command. At least one argument " @@ -757,11 +761,11 @@ msgid "" "an exception will be raised." msgstr "" -#: library/imaplib.rst:663 +#: library/imaplib.rst:666 msgid "Unsubscribe from old mailbox." msgstr "" -#: library/imaplib.rst:667 +#: library/imaplib.rst:670 msgid "" ":meth:`imaplib.IMAP4.unselect` frees server's resources associated with the " "selected mailbox and returns the server to the authenticated state. This " @@ -769,46 +773,46 @@ msgid "" "that no messages are permanently removed from the currently selected mailbox." msgstr "" -#: library/imaplib.rst:677 +#: library/imaplib.rst:680 msgid "" "Allow simple extension commands notified by server in ``CAPABILITY`` " "response." msgstr "" -#: library/imaplib.rst:680 +#: library/imaplib.rst:683 msgid "The following attributes are defined on instances of :class:`IMAP4`:" msgstr "" -#: library/imaplib.rst:684 +#: library/imaplib.rst:687 msgid "" "The most recent supported protocol in the ``CAPABILITY`` response from the " "server." msgstr "" -#: library/imaplib.rst:690 +#: library/imaplib.rst:693 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 "" -#: library/imaplib.rst:696 +#: library/imaplib.rst:699 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 "" -#: library/imaplib.rst:706 +#: library/imaplib.rst:709 msgid "IMAP4 Example" msgstr "" -#: library/imaplib.rst:708 +#: library/imaplib.rst:711 msgid "" "Here is a minimal example (without error checking) that opens a mailbox and " "retrieves and prints all messages::" msgstr "" -#: library/imaplib.rst:711 +#: library/imaplib.rst:714 msgid "" "import getpass, imaplib\n" "\n" diff --git a/library/imghdr.po b/library/imghdr.po index 7067afb0..a610f33e 100644 --- a/library/imghdr.po +++ b/library/imghdr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/imp.po b/library/imp.po index 180011a1..8bf3fad2 100644 --- a/library/imp.po +++ b/library/imp.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/importlib.metadata.po b/library/importlib.metadata.po index b028a1dd..d7578397 100644 --- a/library/importlib.metadata.po +++ b/library/importlib.metadata.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/importlib.po b/library/importlib.po index b3841761..5ac50af6 100644 --- a/library/importlib.po +++ b/library/importlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -360,26 +360,33 @@ msgid "" "class:`~importlib.machinery.ModuleSpec`." msgstr "" -#: library/importlib.rst:211 +#: library/importlib.rst:210 +msgid "" +"This function is not thread-safe. Calling it from multiple threads can " +"result in unexpected behavior. It's recommended to use the :class:`threading." +"Lock` or other synchronization primitives for thread-safe module reloading." +msgstr "" + +#: library/importlib.rst:215 msgid ":mod:`importlib.abc` -- Abstract base classes related to import" msgstr "" -#: library/importlib.rst:216 +#: library/importlib.rst:220 msgid "**Source code:** :source:`Lib/importlib/abc.py`" msgstr "" -#: library/importlib.rst:221 +#: 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 "" -#: library/importlib.rst:225 +#: library/importlib.rst:229 msgid "ABC hierarchy::" msgstr "" -#: library/importlib.rst:227 +#: library/importlib.rst:231 msgid "" "object\n" " +-- MetaPathFinder\n" @@ -392,15 +399,15 @@ msgid "" " +-- SourceLoader" msgstr "" -#: library/importlib.rst:240 +#: library/importlib.rst:244 msgid "An abstract base class representing a :term:`meta path finder`." msgstr "" -#: library/importlib.rst:280 +#: library/importlib.rst:284 msgid "No longer a subclass of :class:`!Finder`." msgstr "" -#: library/importlib.rst:249 +#: library/importlib.rst:253 msgid "" "An abstract method for finding a :term:`spec ` for the " "specified module. If this is a top-level import, *path* will be ``None``. " @@ -412,18 +419,18 @@ msgid "" "for implementing concrete ``MetaPathFinders``." msgstr "" -#: library/importlib.rst:263 +#: library/importlib.rst:267 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 "" -#: library/importlib.rst:267 +#: library/importlib.rst:271 msgid "Returns ``None`` when called instead of :data:`NotImplemented`." msgstr "" -#: library/importlib.rst:273 +#: library/importlib.rst:277 msgid "" "An abstract base class representing a :term:`path entry finder`. Though it " "bears some similarities to :class:`MetaPathFinder`, ``PathEntryFinder`` is " @@ -431,7 +438,7 @@ msgid "" "`importlib.machinery.PathFinder`." msgstr "" -#: library/importlib.rst:285 +#: library/importlib.rst:289 msgid "" "An abstract method for finding a :term:`spec ` for the " "specified module. The finder will search for the module only within the :" @@ -442,42 +449,42 @@ msgid "" "concrete ``PathEntryFinders``." msgstr "" -#: library/importlib.rst:297 +#: library/importlib.rst:301 msgid "" "An optional method which, when called, should invalidate any internal cache " "used by the finder. Used by :meth:`importlib.machinery.PathFinder." "invalidate_caches` when invalidating the caches of all cached finders." msgstr "" -#: library/importlib.rst:305 +#: library/importlib.rst:309 msgid "" "An abstract base class for a :term:`loader`. See :pep:`302` for the exact " "definition for a loader." msgstr "" -#: library/importlib.rst:308 +#: library/importlib.rst:312 msgid "" "Loaders that wish to support resource reading should implement a :meth:" "`get_resource_reader` method as specified by :class:`importlib.resources.abc." "ResourceReader`." msgstr "" -#: library/importlib.rst:312 +#: library/importlib.rst:316 msgid "Introduced the optional :meth:`get_resource_reader` method." msgstr "" -#: library/importlib.rst:317 +#: library/importlib.rst:321 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 "" -#: library/importlib.rst:323 +#: library/importlib.rst:327 msgid "This method is no longer optional when :meth:`exec_module` is defined." msgstr "" -#: library/importlib.rst:329 +#: library/importlib.rst:333 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 " @@ -485,17 +492,17 @@ msgid "" "`create_module` must be defined." msgstr "" -#: library/importlib.rst:336 +#: library/importlib.rst:340 msgid ":meth:`create_module` must also be defined." msgstr "" -#: library/importlib.rst:341 +#: library/importlib.rst:345 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 "" -#: library/importlib.rst:345 +#: library/importlib.rst:349 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 " @@ -506,49 +513,49 @@ msgid "" "left alone." msgstr "" -#: library/importlib.rst:354 +#: library/importlib.rst:358 msgid "" "The loader should set several attributes on the module (note that some of " "these attributes can change when a module is reloaded):" msgstr "" -#: library/importlib.rst:358 +#: library/importlib.rst:362 msgid ":attr:`module.__name__`" msgstr "" -#: library/importlib.rst:359 +#: library/importlib.rst:363 msgid ":attr:`module.__file__`" msgstr "" -#: library/importlib.rst:360 +#: library/importlib.rst:364 msgid ":attr:`module.__cached__` *(deprecated)*" msgstr "" -#: library/importlib.rst:361 +#: library/importlib.rst:365 msgid ":attr:`module.__path__`" msgstr "" -#: library/importlib.rst:362 +#: library/importlib.rst:366 msgid ":attr:`module.__package__` *(deprecated)*" msgstr "" -#: library/importlib.rst:363 +#: library/importlib.rst:367 msgid ":attr:`module.__loader__` *(deprecated)*" msgstr "" -#: library/importlib.rst:365 +#: library/importlib.rst:369 msgid "" "When :meth:`exec_module` is available then backwards-compatible " "functionality is provided." msgstr "" -#: library/importlib.rst:368 +#: library/importlib.rst:372 msgid "" "Raise :exc:`ImportError` when called instead of :exc:`NotImplementedError`. " "Functionality provided when :meth:`exec_module` is available." msgstr "" -#: library/importlib.rst:373 +#: library/importlib.rst:377 msgid "" "The recommended API for loading a module is :meth:`exec_module` (and :meth:" "`create_module`). Loaders should implement it instead of :meth:" @@ -557,23 +564,24 @@ msgid "" "implemented." msgstr "" -#: library/importlib.rst:636 +#: library/importlib.rst:642 msgid "*Superseded by TraversableResources*" msgstr "" -#: library/importlib.rst:385 +#: library/importlib.rst:389 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 "" -#: library/importlib.rst:389 +#: library/importlib.rst:393 msgid "" "This ABC is deprecated in favour of supporting resource loading through :" -"class:`importlib.resources.abc.TraversableResources`." +"class:`importlib.resources.abc.TraversableResources`. This class exists for " +"backwards compatibility only with other ABCs in this module." msgstr "" -#: library/importlib.rst:396 +#: library/importlib.rst:402 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 " @@ -583,34 +591,34 @@ msgid "" "__file__` attribute or an item from a package's :attr:`~module.__path__`." msgstr "" -#: library/importlib.rst:405 +#: library/importlib.rst:411 msgid "Raises :exc:`OSError` instead of :exc:`NotImplementedError`." msgstr "" -#: library/importlib.rst:411 +#: library/importlib.rst:417 msgid "" "An abstract base class for a :term:`loader` which implements the optional :" "pep:`302` protocol for loaders that inspect modules." msgstr "" -#: library/importlib.rst:416 +#: library/importlib.rst:422 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 "" -#: library/importlib.rst:422 +#: library/importlib.rst:428 msgid "" "While the method has a default implementation, it is suggested that it be " "overridden if possible for performance." msgstr "" -#: library/importlib.rst:428 +#: library/importlib.rst:434 msgid "No longer abstract and a concrete implementation is provided." msgstr "" -#: library/importlib.rst:434 +#: library/importlib.rst:440 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 " @@ -619,22 +627,22 @@ msgid "" "cannot find the module specified." msgstr "" -#: library/importlib.rst:449 library/importlib.rst:500 +#: library/importlib.rst:455 library/importlib.rst:506 msgid "Raises :exc:`ImportError` instead of :exc:`NotImplementedError`." msgstr "" -#: library/importlib.rst:445 +#: library/importlib.rst:451 msgid "" "An optional 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 "" -#: library/importlib.rst:454 +#: library/importlib.rst:460 msgid "Create a code object from Python source." msgstr "" -#: library/importlib.rst:456 +#: library/importlib.rst:462 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 " @@ -642,107 +650,107 @@ msgid "" "in a zip file)." msgstr "" -#: library/importlib.rst:461 +#: library/importlib.rst:467 msgid "" "With the subsequent code object one can execute it in a module by running " "``exec(code, module.__dict__)``." msgstr "" -#: library/importlib.rst:466 +#: library/importlib.rst:472 msgid "Made the method static." msgstr "" -#: library/importlib.rst:471 +#: library/importlib.rst:477 msgid "Implementation of :meth:`Loader.exec_module`." msgstr "" -#: library/importlib.rst:477 +#: library/importlib.rst:483 msgid "Implementation of :meth:`Loader.load_module`." msgstr "" -#: library/importlib.rst:479 +#: library/importlib.rst:485 msgid "use :meth:`exec_module` instead." msgstr "" -#: library/importlib.rst:485 +#: library/importlib.rst:491 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 "" -#: library/importlib.rst:492 +#: library/importlib.rst:498 msgid "" "An abstract method that is to return the value of :attr:`~module.__file__` " "for the specified module. If no path is available, :exc:`ImportError` is " "raised." msgstr "" -#: library/importlib.rst:496 +#: library/importlib.rst:502 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 "" -#: library/importlib.rst:506 +#: library/importlib.rst:512 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 "" -#: library/importlib.rst:510 +#: library/importlib.rst:516 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 "" -#: library/importlib.rst:517 +#: library/importlib.rst:523 msgid "The name of the module the loader can handle." msgstr "" -#: library/importlib.rst:521 +#: library/importlib.rst:527 msgid "Path to the file of the module." msgstr "" -#: library/importlib.rst:525 +#: library/importlib.rst:531 msgid "Calls super's ``load_module()``." msgstr "" -#: library/importlib.rst:527 +#: library/importlib.rst:533 msgid "Use :meth:`Loader.exec_module` instead." msgstr "" -#: library/importlib.rst:1140 +#: library/importlib.rst:1146 msgid "Returns :attr:`path`." msgstr "" -#: library/importlib.rst:538 +#: library/importlib.rst:544 msgid "Reads *path* as a binary file and returns the bytes from it." msgstr "" -#: library/importlib.rst:543 +#: library/importlib.rst:549 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 "" -#: library/importlib.rst:547 +#: library/importlib.rst:553 msgid ":meth:`ResourceLoader.get_data`" msgstr "" -#: library/importlib.rst:548 +#: library/importlib.rst:554 msgid ":meth:`ExecutionLoader.get_filename`" msgstr "" -#: library/importlib.rst:549 +#: library/importlib.rst:555 msgid "" "Should only return the path to the source file; sourceless loading is not " "supported." msgstr "" -#: library/importlib.rst:552 +#: library/importlib.rst:558 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 :" @@ -754,83 +762,83 @@ msgid "" "bytecode-specific API is exposed." msgstr "" -#: library/importlib.rst:563 +#: library/importlib.rst:569 msgid "" "Optional abstract method which returns a :class:`dict` containing metadata " "about the specified path. Supported dictionary keys are:" msgstr "" -#: library/importlib.rst:566 +#: library/importlib.rst:572 msgid "" "``'mtime'`` (mandatory): an integer or floating-point number representing " "the modification time of the source code;" msgstr "" -#: library/importlib.rst:568 +#: library/importlib.rst:574 msgid "``'size'`` (optional): the size in bytes of the source code." msgstr "" -#: library/importlib.rst:570 +#: library/importlib.rst:576 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 "" -#: library/importlib.rst:588 +#: library/importlib.rst:594 msgid "Raise :exc:`OSError` instead of :exc:`NotImplementedError`." msgstr "" -#: library/importlib.rst:580 +#: library/importlib.rst:586 msgid "" "Optional abstract method which returns the modification time for the " "specified path." msgstr "" -#: library/importlib.rst:583 +#: library/importlib.rst:589 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 "" -#: library/importlib.rst:593 +#: library/importlib.rst:599 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 "" -#: library/importlib.rst:597 +#: library/importlib.rst:603 msgid "" "When writing to the path fails because the path is read-only (:const:`errno." "EACCES`/:exc:`PermissionError`), do not propagate the exception." msgstr "" -#: library/importlib.rst:601 +#: library/importlib.rst:607 msgid "No longer raises :exc:`NotImplementedError` when called." msgstr "" -#: library/importlib.rst:606 +#: library/importlib.rst:612 msgid "Concrete implementation of :meth:`InspectLoader.get_code`." msgstr "" -#: library/importlib.rst:610 +#: library/importlib.rst:616 msgid "Concrete implementation of :meth:`Loader.exec_module`." msgstr "" -#: library/importlib.rst:616 +#: library/importlib.rst:622 msgid "Concrete implementation of :meth:`Loader.load_module`." msgstr "" -#: library/importlib.rst:618 +#: library/importlib.rst:624 msgid "Use :meth:`exec_module` instead." msgstr "" -#: library/importlib.rst:623 +#: library/importlib.rst:629 msgid "Concrete implementation of :meth:`InspectLoader.get_source`." msgstr "" -#: library/importlib.rst:627 +#: library/importlib.rst:633 msgid "" "Concrete implementation of :meth:`InspectLoader.is_package`. A module is " "determined to be a package if its file path (as provided by :meth:" @@ -839,12 +847,12 @@ msgid "" "``__init__``." msgstr "" -#: library/importlib.rst:638 +#: library/importlib.rst:644 msgid "" "An :term:`abstract base class` to provide the ability to read *resources*." msgstr "" -#: library/importlib.rst:641 +#: library/importlib.rst:647 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 " @@ -854,7 +862,7 @@ msgid "" "file versus on the file system." msgstr "" -#: library/importlib.rst:649 +#: library/importlib.rst:655 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 " @@ -866,7 +874,7 @@ msgid "" "potentially representing multiple packages or a module)." msgstr "" -#: library/importlib.rst:660 +#: library/importlib.rst:666 msgid "" "Loaders that wish to support resource reading are expected to provide a " "method called ``get_resource_reader(fullname)`` which returns an object " @@ -875,37 +883,37 @@ msgid "" "with this ABC should only be returned when the specified module is a package." msgstr "" -#: library/importlib.rst:789 +#: library/importlib.rst:795 msgid "Use :class:`importlib.resources.abc.TraversableResources` instead." msgstr "" -#: library/importlib.rst:675 +#: library/importlib.rst:681 msgid "" "Returns an opened, :term:`file-like object` for binary reading of the " "*resource*." msgstr "" -#: library/importlib.rst:678 +#: library/importlib.rst:684 msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised." msgstr "" -#: library/importlib.rst:684 +#: library/importlib.rst:690 msgid "Returns the file system path to the *resource*." msgstr "" -#: library/importlib.rst:686 +#: library/importlib.rst:692 msgid "" "If the resource does not concretely exist on the file system, raise :exc:" "`FileNotFoundError`." msgstr "" -#: library/importlib.rst:692 +#: library/importlib.rst:698 msgid "" "Returns ``True`` if the named *name* is considered a resource. :exc:" "`FileNotFoundError` is raised if *name* does not exist." msgstr "" -#: library/importlib.rst:698 +#: library/importlib.rst:704 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 " @@ -913,7 +921,7 @@ msgid "" "`is_resource` would be false." msgstr "" -#: library/importlib.rst:704 +#: library/importlib.rst:710 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-" @@ -922,71 +930,71 @@ msgid "" "stored on the file system then those subdirectory names can be used directly." msgstr "" -#: library/importlib.rst:712 +#: library/importlib.rst:718 msgid "The abstract method returns an iterable of no items." msgstr "" -#: library/importlib.rst:717 +#: library/importlib.rst:723 msgid "" "An object with a subset of :class:`pathlib.Path` methods suitable for " "traversing directories and opening files." msgstr "" -#: library/importlib.rst:720 +#: library/importlib.rst:726 msgid "" "For a representation of the object on the file-system, use :meth:`importlib." "resources.as_file`." msgstr "" -#: library/importlib.rst:725 +#: library/importlib.rst:731 msgid "Use :class:`importlib.resources.abc.Traversable` instead." msgstr "" -#: library/importlib.rst:730 +#: library/importlib.rst:736 msgid "Abstract. The base name of this object without any parent references." msgstr "" -#: library/importlib.rst:735 +#: library/importlib.rst:741 msgid "Yield ``Traversable`` objects in ``self``." msgstr "" -#: library/importlib.rst:740 +#: library/importlib.rst:746 msgid "Return ``True`` if ``self`` is a directory." msgstr "" -#: library/importlib.rst:745 +#: library/importlib.rst:751 msgid "Return ``True`` if ``self`` is a file." msgstr "" -#: library/importlib.rst:750 +#: library/importlib.rst:756 msgid "Return Traversable child in ``self``." msgstr "" -#: library/importlib.rst:755 +#: library/importlib.rst:761 msgid "Return ``Traversable`` child in ``self``." msgstr "" -#: library/importlib.rst:760 +#: library/importlib.rst:766 msgid "" "*mode* may be 'r' or 'rb' to open as text or binary. Return a handle " "suitable for reading (same as :attr:`pathlib.Path.open`)." msgstr "" -#: library/importlib.rst:763 +#: library/importlib.rst:769 msgid "" "When opening as text, accepts encoding parameters such as those accepted by :" "class:`io.TextIOWrapper`." msgstr "" -#: library/importlib.rst:768 +#: library/importlib.rst:774 msgid "Read contents of ``self`` as bytes." msgstr "" -#: library/importlib.rst:772 +#: library/importlib.rst:778 msgid "Read contents of ``self`` as text." msgstr "" -#: library/importlib.rst:777 +#: library/importlib.rst:783 msgid "" "An abstract base class for resource readers capable of serving the :meth:" "`importlib.resources.files` interface. Subclasses :class:`importlib." @@ -996,71 +1004,71 @@ msgid "" "also supplies ResourceReader." msgstr "" -#: library/importlib.rst:784 +#: library/importlib.rst:790 msgid "" "Loaders that wish to support resource reading are expected to implement this " "interface." msgstr "" -#: library/importlib.rst:795 +#: library/importlib.rst:801 msgid "" "Returns a :class:`importlib.resources.abc.Traversable` object for the loaded " "package." msgstr "" -#: library/importlib.rst:801 +#: library/importlib.rst:807 msgid ":mod:`importlib.machinery` -- Importers and path hooks" msgstr "" -#: library/importlib.rst:806 +#: library/importlib.rst:812 msgid "**Source code:** :source:`Lib/importlib/machinery.py`" msgstr "" -#: library/importlib.rst:810 +#: library/importlib.rst:816 msgid "" "This module contains the various objects that help :keyword:`import` find " "and load modules." msgstr "" -#: library/importlib.rst:815 +#: library/importlib.rst:821 msgid "" "A list of strings representing the recognized file suffixes for source " "modules." msgstr "" -#: library/importlib.rst:822 +#: library/importlib.rst:828 msgid "" "A list of strings representing the file suffixes for non-optimized bytecode " "modules." msgstr "" -#: library/importlib.rst:837 +#: library/importlib.rst:843 msgid "Use :const:`BYTECODE_SUFFIXES` instead." msgstr "" -#: library/importlib.rst:832 +#: library/importlib.rst:838 msgid "" "A list of strings representing the file suffixes for optimized bytecode " "modules." msgstr "" -#: library/importlib.rst:842 +#: library/importlib.rst:848 msgid "" "A list of strings representing the recognized file suffixes for bytecode " "modules (including the leading dot)." msgstr "" -#: library/importlib.rst:847 +#: library/importlib.rst:853 msgid "The value is no longer dependent on ``__debug__``." msgstr "" -#: library/importlib.rst:852 +#: library/importlib.rst:858 msgid "" "A list of strings representing the recognized file suffixes for extension " "modules." msgstr "" -#: library/importlib.rst:859 +#: library/importlib.rst:865 msgid "" "Returns a combined list of strings representing all file suffixes for " "modules recognized by the standard import machinery. This is a helper for " @@ -1069,56 +1077,56 @@ msgid "" "`inspect.getmodulename`)." msgstr "" -#: library/importlib.rst:870 +#: library/importlib.rst:876 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 "" -#: library/importlib.rst:889 library/importlib.rst:917 +#: library/importlib.rst:895 library/importlib.rst:923 msgid "" "Only class methods are defined by this class to alleviate the need for " "instantiation." msgstr "" -#: library/importlib.rst:878 +#: library/importlib.rst:884 msgid "" "As part of :pep:`489`, the builtin importer now implements :meth:`Loader." "create_module` and :meth:`Loader.exec_module`" msgstr "" -#: library/importlib.rst:885 +#: library/importlib.rst:891 msgid "" "An :term:`importer` for frozen modules. This class implements the :class:" "`importlib.abc.MetaPathFinder` and :class:`importlib.abc.InspectLoader` ABCs." msgstr "" -#: library/importlib.rst:892 +#: library/importlib.rst:898 msgid "" "Gained :meth:`~Loader.create_module` and :meth:`~Loader.exec_module` methods." msgstr "" -#: library/importlib.rst:899 +#: library/importlib.rst:905 msgid "" ":term:`Finder ` for modules declared in the Windows registry. This " "class implements the :class:`importlib.abc.MetaPathFinder` ABC." msgstr "" -#: library/importlib.rst:907 +#: library/importlib.rst:913 msgid "" "Use :mod:`site` configuration instead. Future versions of Python may not " "enable this finder by default." msgstr "" -#: library/importlib.rst:914 +#: library/importlib.rst:920 msgid "" "A :term:`Finder ` for :data:`sys.path` and package ``__path__`` " "attributes. This class implements the :class:`importlib.abc.MetaPathFinder` " "ABC." msgstr "" -#: library/importlib.rst:922 +#: library/importlib.rst:928 msgid "" "Class method that attempts to find a :term:`spec ` for the " "module specified by *fullname* on :data:`sys.path` or, if defined, on " @@ -1132,43 +1140,43 @@ msgid "" "cache and returned." msgstr "" -#: library/importlib.rst:936 +#: library/importlib.rst:942 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 "" -#: library/importlib.rst:943 +#: library/importlib.rst:949 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 "" -#: library/importlib.rst:948 +#: library/importlib.rst:954 msgid "Entries of ``None`` in :data:`sys.path_importer_cache` are deleted." msgstr "" -#: library/importlib.rst:951 +#: library/importlib.rst:957 msgid "" "Calls objects in :data:`sys.path_hooks` with the current working directory " "for ``''`` (i.e. the empty string)." msgstr "" -#: library/importlib.rst:958 +#: library/importlib.rst:964 msgid "" "A concrete implementation of :class:`importlib.abc.PathEntryFinder` which " "caches results from the file system." msgstr "" -#: library/importlib.rst:961 +#: library/importlib.rst:967 msgid "" "The *path* argument is the directory for which the finder is in charge of " "searching." msgstr "" -#: library/importlib.rst:964 +#: library/importlib.rst:970 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. " @@ -1176,7 +1184,7 @@ msgid "" "module's name and the path to the file found." msgstr "" -#: library/importlib.rst:969 +#: library/importlib.rst:975 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 " @@ -1189,166 +1197,166 @@ msgid "" "to call :func:`importlib.invalidate_caches`." msgstr "" -#: library/importlib.rst:983 +#: library/importlib.rst:989 msgid "The path the finder will search in." msgstr "" -#: library/importlib.rst:987 +#: library/importlib.rst:993 msgid "Attempt to find the spec to handle *fullname* within :attr:`path`." msgstr "" -#: library/importlib.rst:993 +#: library/importlib.rst:999 msgid "Clear out the internal cache." msgstr "" -#: library/importlib.rst:997 +#: library/importlib.rst:1003 msgid "" "A class method which returns a closure for use on :data:`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 "" -#: library/importlib.rst:1002 +#: library/importlib.rst:1008 msgid "" "If the argument to the closure is not an existing directory, :exc:" "`ImportError` is raised." msgstr "" -#: library/importlib.rst:1008 +#: library/importlib.rst:1014 msgid "" "A concrete implementation of :class:`importlib.abc.SourceLoader` by " "subclassing :class:`importlib.abc.FileLoader` and providing some concrete " "implementations of other methods." msgstr "" -#: library/importlib.rst:1016 +#: library/importlib.rst:1022 msgid "The name of the module that this loader will handle." msgstr "" -#: library/importlib.rst:1020 +#: library/importlib.rst:1026 msgid "The path to the source file." msgstr "" -#: library/importlib.rst:1024 +#: library/importlib.rst:1030 msgid "Return ``True`` if :attr:`path` appears to be for a package." msgstr "" -#: library/importlib.rst:1028 +#: library/importlib.rst:1034 msgid "" "Concrete implementation of :meth:`importlib.abc.SourceLoader.path_stats`." msgstr "" -#: library/importlib.rst:1032 +#: library/importlib.rst:1038 msgid "Concrete implementation of :meth:`importlib.abc.SourceLoader.set_data`." msgstr "" -#: library/importlib.rst:1079 +#: library/importlib.rst:1085 msgid "" "Concrete implementation of :meth:`importlib.abc.Loader.load_module` where " "specifying the name of the module to load is optional." msgstr "" -#: library/importlib.rst:1084 +#: library/importlib.rst:1090 msgid "Use :meth:`importlib.abc.Loader.exec_module` instead." msgstr "" -#: library/importlib.rst:1046 +#: library/importlib.rst:1052 msgid "" "A concrete implementation of :class:`importlib.abc.FileLoader` which can " "import bytecode files (i.e. no source code files exist)." msgstr "" -#: library/importlib.rst:1049 +#: library/importlib.rst:1055 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 "" -#: library/importlib.rst:1058 +#: library/importlib.rst:1064 msgid "The name of the module the loader will handle." msgstr "" -#: library/importlib.rst:1062 +#: library/importlib.rst:1068 msgid "The path to the bytecode file." msgstr "" -#: library/importlib.rst:1066 +#: library/importlib.rst:1072 msgid "Determines if the module is a package based on :attr:`path`." msgstr "" -#: library/importlib.rst:1070 +#: library/importlib.rst:1076 msgid "Returns the code object for :attr:`name` created from :attr:`path`." msgstr "" -#: library/importlib.rst:1074 +#: library/importlib.rst:1080 msgid "" "Returns ``None`` as bytecode files have no source when this loader is used." msgstr "" -#: library/importlib.rst:1089 +#: library/importlib.rst:1095 msgid "" "A concrete implementation of :class:`importlib.abc.ExecutionLoader` for " "extension modules." msgstr "" -#: library/importlib.rst:1092 +#: library/importlib.rst:1098 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 "" -#: library/importlib.rst:1095 +#: library/importlib.rst:1101 msgid "" "Note that, by default, importing an extension module will fail in " "subinterpreters if it doesn't implement multi-phase init (see :pep:`489`), " "even if it would otherwise import successfully." msgstr "" -#: library/importlib.rst:1101 +#: library/importlib.rst:1107 msgid "Multi-phase init is now required for use in subinterpreters." msgstr "" -#: library/importlib.rst:1292 +#: library/importlib.rst:1298 msgid "Name of the module the loader supports." msgstr "" -#: library/importlib.rst:1110 +#: library/importlib.rst:1116 msgid "Path to the extension module." msgstr "" -#: library/importlib.rst:1114 +#: library/importlib.rst:1120 msgid "" "Creates the module object from the given specification in accordance with :" "pep:`489`." msgstr "" -#: library/importlib.rst:1121 +#: library/importlib.rst:1127 msgid "Initializes the given module object in accordance with :pep:`489`." msgstr "" -#: library/importlib.rst:1127 +#: library/importlib.rst:1133 msgid "" "Returns ``True`` if the file path points to a package's ``__init__`` module " "based on :const:`EXTENSION_SUFFIXES`." msgstr "" -#: library/importlib.rst:1132 +#: library/importlib.rst:1138 msgid "Returns ``None`` as extension modules lack a code object." msgstr "" -#: library/importlib.rst:1136 +#: library/importlib.rst:1142 msgid "Returns ``None`` as extension modules do not have source code." msgstr "" -#: library/importlib.rst:1147 +#: library/importlib.rst:1153 msgid "" "A concrete implementation of :class:`importlib.abc.InspectLoader` for " "namespace packages. This is an alias for a private class and is only made " "public for introspecting the ``__loader__`` attribute on namespace packages::" msgstr "" -#: library/importlib.rst:1152 +#: library/importlib.rst:1158 msgid "" ">>> from importlib.machinery import NamespaceLoader\n" ">>> import my_namespace\n" @@ -1359,7 +1367,7 @@ msgid "" "True" msgstr "" -#: library/importlib.rst:1165 +#: library/importlib.rst:1171 msgid "" "A specification for a module's import-system-related state. This is " "typically exposed as the module's :attr:`~module.__spec__` attribute. Many " @@ -1372,19 +1380,19 @@ msgid "" "origin>`, and vice versa." msgstr "" -#: library/importlib.rst:1179 +#: library/importlib.rst:1185 msgid "" "The module's fully qualified name (see :attr:`module.__name__`). The :term:" "`finder` should always set this attribute to a non-empty string." msgstr "" -#: library/importlib.rst:1184 +#: library/importlib.rst:1190 msgid "" "The :term:`loader` used to load the module (see :attr:`module.__loader__`). " "The :term:`finder` should always set this attribute." msgstr "" -#: library/importlib.rst:1189 +#: library/importlib.rst:1195 msgid "" "The location the :term:`loader` should use to load the module (see :attr:" "`module.__file__`). For example, for modules loaded from a ``.py`` file this " @@ -1393,14 +1401,14 @@ msgid "" "there is not one (like for namespace packages), it should be set to ``None``." msgstr "" -#: library/importlib.rst:1198 +#: library/importlib.rst:1204 msgid "" "A (possibly empty) :term:`sequence` of strings enumerating the locations in " "which a package's submodules will be found (see :attr:`module.__path__`). " "Most of the time there will only be a single directory in this list." msgstr "" -#: library/importlib.rst:1203 +#: library/importlib.rst:1209 msgid "" "The :term:`finder` should set this attribute to a sequence, even an empty " "one, to indicate to the import system that the module is a package. It " @@ -1408,41 +1416,41 @@ msgid "" "later to a special object for namespace packages." msgstr "" -#: library/importlib.rst:1211 +#: library/importlib.rst:1217 msgid "" "The :term:`finder` may set this attribute to an object containing " "additional, module-specific data to use when loading the module. Otherwise " "it should be set to ``None``." msgstr "" -#: library/importlib.rst:1217 +#: library/importlib.rst:1223 msgid "" "The filename of a compiled version of the module's code (see :attr:`module." "__cached__`). The :term:`finder` should always set this attribute but it may " "be ``None`` for modules that do not need compiled code stored." msgstr "" -#: library/importlib.rst:1224 +#: library/importlib.rst:1230 msgid "" "(Read-only) The fully qualified name of the package the module is in (or the " "empty string for a top-level module). See :attr:`module.__package__`. If the " "module is a package then this is the same as :attr:`name`." msgstr "" -#: library/importlib.rst:1231 +#: library/importlib.rst:1237 msgid "" "``True`` if the spec's :attr:`origin` refers to a loadable location, " "``False`` otherwise. This value impacts how :attr:`!origin` is interpreted " "and how the module's :attr:`~module.__file__` is populated." msgstr "" -#: library/importlib.rst:1238 +#: library/importlib.rst:1244 msgid "" "A specialization of :class:`importlib.machinery.ExtensionFileLoader` that is " "able to load extension modules in Framework format." msgstr "" -#: library/importlib.rst:1241 +#: library/importlib.rst:1247 msgid "" "For compatibility with the iOS App Store, *all* binary modules in an iOS app " "must be dynamic libraries, contained in a framework with appropriate " @@ -1451,13 +1459,13 @@ msgid "" "material outside the Frameworks folder." msgstr "" -#: library/importlib.rst:1247 +#: library/importlib.rst:1253 msgid "" "To accommodate this requirement, when running on iOS, extension module " "binaries are *not* packaged as ``.so`` files on ``sys.path``, but as " "individual standalone frameworks. To discover those frameworks, this loader " -"is be registered against the ``.fwork`` file extension, with a ``.fwork`` " -"file acting as a placeholder in the original location of the binary on ``sys." +"is registered against the ``.fwork`` file extension, with a ``.fwork`` file " +"acting as a placeholder in the original location of the binary on ``sys." "path``. The ``.fwork`` file contains the path of the actual binary in the " "``Frameworks`` folder, relative to the app bundle. To allow for resolving a " "framework-packaged binary back to the original location, the framework is " @@ -1465,7 +1473,7 @@ msgid "" "fwork`` file, relative to the app bundle." msgstr "" -#: library/importlib.rst:1258 +#: library/importlib.rst:1264 msgid "" "For example, consider the case of an import ``from foo.bar import _whiz``, " "where ``_whiz`` is implemented with the binary module ``sources/foo/bar/" @@ -1481,7 +1489,7 @@ msgid "" "_whiz.origin``, containing the path to the ``.fwork`` file." msgstr "" -#: library/importlib.rst:1272 +#: library/importlib.rst:1278 msgid "" "When a module is loaded with this loader, the ``__file__`` for the module " "will report as the location of the ``.fwork`` file. This allows code to use " @@ -1490,7 +1498,7 @@ msgid "" "in the ``.framework`` folder." msgstr "" -#: library/importlib.rst:1278 +#: library/importlib.rst:1284 msgid "" "The Xcode project building the app is responsible for converting any ``.so`` " "files from wherever they exist in the ``PYTHONPATH`` into frameworks in the " @@ -1501,35 +1509,35 @@ msgid "" "details on how to construct this build step." msgstr "" -#: library/importlib.rst:1288 +#: library/importlib.rst:1294 msgid "Availability" msgstr "" -#: library/importlib.rst:1296 +#: library/importlib.rst:1302 msgid "Path to the ``.fwork`` file for the extension module." msgstr "" -#: library/importlib.rst:1300 +#: library/importlib.rst:1306 msgid ":mod:`importlib.util` -- Utility code for importers" msgstr "" -#: library/importlib.rst:1306 +#: library/importlib.rst:1312 msgid "**Source code:** :source:`Lib/importlib/util.py`" msgstr "" -#: library/importlib.rst:1310 +#: library/importlib.rst:1316 msgid "" "This module contains the various objects that help in the construction of " "an :term:`importer`." msgstr "" -#: library/importlib.rst:1315 +#: library/importlib.rst:1321 msgid "" "The bytes which represent the bytecode version number. If you need help with " "loading/writing bytecode then consider :class:`importlib.abc.SourceLoader`." msgstr "" -#: library/importlib.rst:1322 +#: library/importlib.rst:1328 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 " @@ -1539,7 +1547,7 @@ msgid "" "`NotImplementedError` will be raised)." msgstr "" -#: library/importlib.rst:1329 +#: library/importlib.rst:1335 msgid "" "The *optimization* parameter is used to specify the optimization level of " "the bytecode file. An empty string represents no optimization, so ``/foo/bar/" @@ -1552,7 +1560,7 @@ msgid "" "be alphanumeric, else :exc:`ValueError` is raised." msgstr "" -#: library/importlib.rst:1339 +#: library/importlib.rst:1345 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 " @@ -1561,17 +1569,17 @@ msgid "" "are not ``None`` then :exc:`TypeError` is raised." msgstr "" -#: library/importlib.rst:1347 +#: library/importlib.rst:1353 msgid "" "The *optimization* parameter was added and the *debug_override* parameter " "was deprecated." msgstr "" -#: library/importlib.rst:1367 library/importlib.rst:1456 +#: library/importlib.rst:1373 library/importlib.rst:1462 msgid "Accepts a :term:`path-like object`." msgstr "" -#: library/importlib.rst:1357 +#: library/importlib.rst:1363 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." @@ -1581,25 +1589,25 @@ msgid "" "cache_tag` is not defined, :exc:`NotImplementedError` is raised." msgstr "" -#: library/importlib.rst:1372 +#: library/importlib.rst:1378 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 "" -#: library/importlib.rst:1380 +#: library/importlib.rst:1386 msgid "Resolve a relative module name to an absolute one." msgstr "" -#: library/importlib.rst:1382 +#: library/importlib.rst:1388 msgid "" "If **name** has no leading dots, then **name** is simply returned. This " "allows for usage such as ``importlib.util.resolve_name('sys', __spec__." "parent)`` without doing a check to see if the **package** argument is needed." msgstr "" -#: library/importlib.rst:1387 +#: library/importlib.rst:1393 msgid "" ":exc:`ImportError` is raised if **name** is a relative module name but " "**package** is a false value (e.g. ``None`` or the empty string). :exc:" @@ -1607,13 +1615,13 @@ msgid "" "package (e.g. requesting ``..bacon`` from within the ``spam`` package)." msgstr "" -#: library/importlib.rst:1395 +#: library/importlib.rst:1401 msgid "" "To improve consistency with import statements, raise :exc:`ImportError` " "instead of :exc:`ValueError` for invalid relative import attempts." msgstr "" -#: library/importlib.rst:1402 +#: library/importlib.rst:1408 msgid "" "Find the :term:`spec ` for a module, optionally relative to the " "specified **package** name. If the module is in :data:`sys.modules`, then " @@ -1623,30 +1631,30 @@ msgid "" "if no spec is found." msgstr "" -#: library/importlib.rst:1409 +#: library/importlib.rst:1415 msgid "" "If **name** is for a submodule (contains a dot), the parent module is " "automatically imported." msgstr "" -#: library/importlib.rst:1412 +#: library/importlib.rst:1418 msgid "**name** and **package** work the same as for :func:`import_module`." msgstr "" -#: library/importlib.rst:1416 +#: library/importlib.rst:1422 msgid "" "Raises :exc:`ModuleNotFoundError` instead of :exc:`AttributeError` if " "**package** is in fact not a package (i.e. lacks a :attr:`~module.__path__` " "attribute)." msgstr "" -#: library/importlib.rst:1423 +#: library/importlib.rst:1429 msgid "" "Create a new module based on **spec** and :meth:`spec.loader.create_module " "`." msgstr "" -#: library/importlib.rst:1426 +#: library/importlib.rst:1432 msgid "" "If :meth:`spec.loader.create_module ` " "does not return ``None``, then any pre-existing attributes will not be " @@ -1654,14 +1662,14 @@ msgid "" "accessing **spec** or setting an attribute on the module." msgstr "" -#: library/importlib.rst:1431 +#: library/importlib.rst:1437 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 "" -#: library/importlib.rst:1439 +#: library/importlib.rst:1445 msgid "" "A factory function for creating a :class:`~importlib.machinery.ModuleSpec` " "instance based on a loader. The parameters have the same meaning as they do " @@ -1670,7 +1678,7 @@ msgid "" "spec." msgstr "" -#: library/importlib.rst:1449 +#: library/importlib.rst:1455 msgid "" "A factory function for creating a :class:`~importlib.machinery.ModuleSpec` " "instance based on the path to a file. Missing information will be filled in " @@ -1678,14 +1686,14 @@ msgid "" "module will be file-based." msgstr "" -#: library/importlib.rst:1461 +#: library/importlib.rst:1467 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 "" -#: library/importlib.rst:1469 +#: library/importlib.rst:1475 msgid "" "A context manager that can temporarily skip the compatibility check for " "extension modules. By default the check is enabled and will fail when a " @@ -1694,33 +1702,33 @@ msgid "" "interpreter GIL, when imported in an interpreter with its own GIL." msgstr "" -#: library/importlib.rst:1476 +#: library/importlib.rst:1482 msgid "" "Note that this function is meant to accommodate an unusual case; one which " "is likely to eventually go away. There's is a pretty good chance this is " "not what you were looking for." msgstr "" -#: library/importlib.rst:1480 +#: library/importlib.rst:1486 msgid "" "You can get the same effect as this function by implementing the basic " "interface of multi-phase init (:pep:`489`) and lying about support for " "multiple interpreters (or per-interpreter GIL)." msgstr "" -#: library/importlib.rst:1485 +#: library/importlib.rst:1491 msgid "" "Using this function to disable the check can lead to unexpected behavior and " "even crashes. It should only be used during extension module development." msgstr "" -#: library/importlib.rst:1493 +#: library/importlib.rst:1499 msgid "" "A class which postpones the execution of the loader of a module until the " "module has an attribute accessed." msgstr "" -#: library/importlib.rst:1496 +#: library/importlib.rst:1502 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 " @@ -1733,7 +1741,7 @@ msgid "" "raised if such a substitution is detected." msgstr "" -#: library/importlib.rst:1507 +#: library/importlib.rst:1513 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 " @@ -1742,21 +1750,21 @@ msgid "" "postponed and thus occurring out of context." msgstr "" -#: library/importlib.rst:1515 +#: library/importlib.rst:1521 msgid "" "Began calling :meth:`~importlib.abc.Loader.create_module`, removing the " "compatibility warning for :class:`importlib.machinery.BuiltinImporter` and :" "class:`importlib.machinery.ExtensionFileLoader`." msgstr "" -#: library/importlib.rst:1522 +#: library/importlib.rst:1528 msgid "" "A class 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 "" -#: library/importlib.rst:1527 +#: library/importlib.rst:1533 msgid "" "suffixes = importlib.machinery.SOURCE_SUFFIXES\n" "loader = importlib.machinery.SourceFileLoader\n" @@ -1764,43 +1772,43 @@ msgid "" "finder = importlib.machinery.FileFinder(path, (lazy_loader, suffixes))" msgstr "" -#: library/importlib.rst:1535 +#: library/importlib.rst:1541 msgid "Examples" msgstr "" -#: library/importlib.rst:1538 +#: library/importlib.rst:1544 msgid "Importing programmatically" msgstr "" -#: library/importlib.rst:1540 +#: library/importlib.rst:1546 msgid "" "To programmatically import a module, use :func:`importlib.import_module`. ::" msgstr "" -#: library/importlib.rst:1543 +#: library/importlib.rst:1549 msgid "" "import importlib\n" "\n" "itertools = importlib.import_module('itertools')" msgstr "" -#: library/importlib.rst:1549 +#: library/importlib.rst:1555 msgid "Checking if a module can be imported" msgstr "" -#: library/importlib.rst:1551 +#: library/importlib.rst:1557 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 "" -#: library/importlib.rst:1554 +#: library/importlib.rst:1560 msgid "" "Note that if ``name`` is a submodule (contains a dot), :func:`importlib.util." "find_spec` will import the parent module. ::" msgstr "" -#: library/importlib.rst:1558 +#: library/importlib.rst:1564 msgid "" "import importlib.util\n" "import sys\n" @@ -1820,11 +1828,11 @@ msgid "" " print(f\"can't find the {name!r} module\")" msgstr "" -#: library/importlib.rst:1577 +#: library/importlib.rst:1583 msgid "Importing a source file directly" msgstr "" -#: library/importlib.rst:1579 +#: library/importlib.rst:1585 msgid "" "This recipe should be used with caution: it is an approximation of an import " "statement where the file path is specified directly, rather than :data:`sys." @@ -1834,13 +1842,13 @@ msgid "" "file is appropriate." msgstr "" -#: library/importlib.rst:1586 +#: library/importlib.rst:1592 msgid "" "To import a Python source file directly from a path, use the following " "recipe::" msgstr "" -#: library/importlib.rst:1588 +#: library/importlib.rst:1594 msgid "" "import importlib.util\n" "import sys\n" @@ -1863,15 +1871,15 @@ msgid "" "json = import_from_path(module_name, file_path)" msgstr "" -#: library/importlib.rst:1610 +#: library/importlib.rst:1616 msgid "Implementing lazy imports" msgstr "" -#: library/importlib.rst:1612 +#: library/importlib.rst:1618 msgid "The example below shows how to implement lazy imports::" msgstr "" -#: library/importlib.rst:1614 +#: library/importlib.rst:1620 msgid "" ">>> import importlib.util\n" ">>> import sys\n" @@ -1891,11 +1899,11 @@ msgid "" "False" msgstr "" -#: library/importlib.rst:1633 +#: library/importlib.rst:1639 msgid "Setting up an importer" msgstr "" -#: library/importlib.rst:1635 +#: library/importlib.rst:1641 msgid "" "For deep customizations of import, you typically want to implement an :term:" "`importer`. This means managing both the :term:`finder` and :term:`loader` " @@ -1909,7 +1917,7 @@ msgid "" "for the appropriate classes defined within this package)::" msgstr "" -#: library/importlib.rst:1646 +#: library/importlib.rst:1652 msgid "" "import importlib.machinery\n" "import sys\n" @@ -1933,11 +1941,11 @@ msgid "" "sys.path_hooks.append(SpamPathEntryFinder.path_hook(loader_details))" msgstr "" -#: library/importlib.rst:1667 +#: library/importlib.rst:1673 msgid "Approximating :func:`importlib.import_module`" msgstr "" -#: library/importlib.rst:1669 +#: library/importlib.rst:1675 msgid "" "Import itself is implemented in Python code, making it possible to expose " "most of the import machinery through importlib. The following helps " @@ -1945,7 +1953,7 @@ msgid "" "approximate implementation of :func:`importlib.import_module`::" msgstr "" -#: library/importlib.rst:1675 +#: library/importlib.rst:1681 msgid "" "import importlib.util\n" "import sys\n" @@ -1978,10 +1986,10 @@ msgid "" " return module" msgstr "" -#: library/importlib.rst:425 +#: library/importlib.rst:431 msgid "universal newlines" msgstr "" -#: library/importlib.rst:425 +#: library/importlib.rst:431 msgid "importlib.abc.InspectLoader.get_source method" msgstr "" diff --git a/library/importlib.resources.abc.po b/library/importlib.resources.abc.po index 0d9f598a..d3fbb2f0 100644 --- a/library/importlib.resources.abc.po +++ b/library/importlib.resources.abc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/importlib.resources.po b/library/importlib.resources.po index f1984299..2413aedd 100644 --- a/library/importlib.resources.po +++ b/library/importlib.resources.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-06 12:58+0300\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" @@ -41,29 +41,31 @@ msgid "" "\"Resources\" are file-like resources associated with a module or package in " "Python. The resources may be contained directly in a package, within a " "subdirectory contained in that package, or adjacent to modules outside a " -"package. Resources may be text or binary. As a result, Python module sources " -"(.py) of a package and compilation artifacts (pycache) are technically de-" -"facto resources of that package. In practice, however, resources are " -"primarily those non-Python artifacts exposed specifically by the package " -"author." +"package. Resources may be text or binary. As a result, a package's Python " +"module sources (.py), compilation artifacts (pycache), and installation " +"artifacts (like :func:`reserved filenames ` in " +"directories) are technically de-facto resources of that package. In " +"practice, however, resources are primarily those non-Python artifacts " +"exposed specifically by the package author." msgstr "" "\"Πόροι\" είναι πόροι που μοιάζουν με αρχεία και σχετίζονται με ένα module ή " "πακέτο στην Python. Οι πόροι μπορεί να περιέχονται απευθείας σε ένα πακέτο, " "μέσα σε έναν υποκατάλογο που περιλαμβάνεται σε αυτό το πακέτο, ή δίπλα σε " "modules έξω από ένα πακέτο. Οι πόροι μπορεί να είναι μορφής κειμένου ή " "δυαδικής μορφής. Ως αποτέλεσμα, ο πηγαίος κώδικας των modules της Python (." -"py) ενός πακέτου και τα αποτελέσματα μεταγλώττισης (pycache) είναι τεχνικά " -"de-facto πόροι αυτού του πακέτου. Ωστόσο, στην πράξη, οι πόροι είναι κυρίως " -"εκείνα τα μη-Python αρχεία που εκτίθενται συγκεκριμένα από τον συγγραφέα του " -"πακέτου." +"py) ενός πακέτου και τα αποτελέσματα μεταγλώττισης (pycache) και τα " +"αποτελέσματα εγκατάστασης (όπως :func:`reserved filenames ` σε καταλόγους) είναι τεχνικά de-facto πόροι αυτού του πακέτου. " +"Ωστόσο, στην πράξη, οι πόροι είναι κυρίως εκείνα τα μη-Python αρχεία που " +"εκτίθενται συγκεκριμένα από τον συγγραφέα του πακέτου." -#: library/importlib.resources.rst:25 +#: library/importlib.resources.rst:26 msgid "Resources can be opened or read in either binary or text mode." msgstr "" "Οι πόροι μπορούν να ανοίξουν ή να διαβαστούν είτε σε δυαδική κατάσταση είτε " "σε κατάσταση κειμένου." -#: library/importlib.resources.rst:27 +#: library/importlib.resources.rst:28 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 " @@ -77,7 +79,7 @@ msgstr "" "στο σύστημα αρχείων: για παράδειγμα, ένα πακέτο και οι πόροι του μπορούν να " "εισαχθούν από ένα αρχείο zip χρησιμοποιώντας το :py:mod:`zipimport`." -#: library/importlib.resources.rst:35 +#: library/importlib.resources.rst:36 msgid "" "This module provides functionality similar to `pkg_resources `_ `Basic Resource " @@ -93,7 +95,7 @@ msgstr "" "αυτό το πακέτο. Έτσι, η ανάγνωση πόρων που περιλαμβάνονται σε πακέτα γίνεται " "ευκολότερη, με πιο σταθερή και συνεπή σημασιολογία." -#: library/importlib.resources.rst:43 +#: library/importlib.resources.rst:44 msgid "" "The standalone backport of this module provides more information on `using " "importlib.resources `_." -#: library/importlib.resources.rst:49 +#: library/importlib.resources.rst:50 msgid "" ":class:`Loaders ` that wish to support resource " "reading should implement a ``get_resource_reader(fullname)`` method as " @@ -117,7 +119,7 @@ msgstr "" "``get_resource_reader(fullname)`` όπως ορίζεται από την κλάση :class:" "`importlib.resources.abc.ResourceReader`." -#: library/importlib.resources.rst:55 +#: library/importlib.resources.rst:56 msgid "" "Represents an anchor for resources, either a :class:`module object ` or a module name as a string. Defined as ``Union[str, " @@ -127,7 +129,7 @@ msgstr "" "object ` είτε ένα όνομα module ως συμβολοσειρά. Ορίζεται " "ως ``Union[str, ModuleType]``." -#: library/importlib.resources.rst:61 +#: library/importlib.resources.rst:62 msgid "" "Returns a :class:`~importlib.resources.abc.Traversable` object representing " "the resource container (think directory) and its resources (think files). A " @@ -138,7 +140,7 @@ msgstr "" "του (σκεφτείτε αρχεία). Ένα Traversable μπορεί να περιέχει και άλλα δοχεία " "(σκεφτείτε υποκαταλόγους)." -#: library/importlib.resources.rst:66 +#: library/importlib.resources.rst:67 msgid "" "*anchor* is an optional :class:`Anchor`. If the anchor is a package, " "resources are resolved from that package. If a module, resources are " @@ -150,7 +152,7 @@ msgstr "" "επιλύονται δίπλα σε αυτό το module (στο ίδιο πακέτο ή στη ρίζα του πακέτου). " "Αν το anchor παραλειφθεί, χρησιμοποιείται το module του καλούντος." -#: library/importlib.resources.rst:74 +#: library/importlib.resources.rst:75 msgid "" "*package* parameter was renamed to *anchor*. *anchor* can now be a non-" "package module and if omitted will default to the caller's module. *package* " @@ -166,7 +168,7 @@ msgstr "" "``importlib_resources >= 5.10`` για συμβατή διεπαφή σε παλαιότερες εκδόσεις " "Python." -#: library/importlib.resources.rst:84 +#: library/importlib.resources.rst:85 msgid "" "Given a :class:`~importlib.resources.abc.Traversable` object representing a " "file or directory, typically from :func:`importlib.resources.files`, return " @@ -179,7 +181,7 @@ msgstr "" "`with` πρόταση. Ο context manager παρέχει ένα αντικείμενο :class:`pathlib." "Path`." -#: library/importlib.resources.rst:89 +#: library/importlib.resources.rst:90 msgid "" "Exiting the context manager cleans up any temporary file or directory " "created when the resource was extracted from e.g. a zip file." @@ -187,7 +189,7 @@ msgstr "" "Η έξοδος από τον context manager καθαρίζει οποιοδήποτε προσωρινό αρχείο ή " "κατάλογο που δημιουργήθηκε όταν ο πόρος εξήχθη, π.χ. από ένα αρχείο zip." -#: library/importlib.resources.rst:92 +#: library/importlib.resources.rst:93 msgid "" "Use ``as_file`` when the Traversable methods (``read_text``, etc) are " "insufficient and an actual file or directory on the file system is required." @@ -196,16 +198,16 @@ msgstr "" "``read_text``, κλπ) δεν επαρκούν και απαιτείται ένα πραγματικό αρχείο ή " "κατάλογος στο σύστημα αρχείων." -#: library/importlib.resources.rst:98 +#: library/importlib.resources.rst:99 msgid "Added support for *traversable* representing a directory." msgstr "" "Προστέθηκε υποστήριξη για *traversable* που αντιπροσωπεύει έναν κατάλογο." -#: library/importlib.resources.rst:105 +#: library/importlib.resources.rst:106 msgid "Functional API" msgstr "Λειτουργικό API" -#: library/importlib.resources.rst:107 +#: library/importlib.resources.rst:108 msgid "" "A set of simplified, backwards-compatible helpers is available. These allow " "common operations in a single function call." @@ -213,11 +215,11 @@ msgstr "" "Ένα σύνολο απλοποιημένων, βοηθών συμβατών με προηγούμενες εκδόσεις είναι " "διαθέσιμο. Αυτά επιτρέπουν κοινές λειτουργίες σε μια κλήση συνάρτησης." -#: library/importlib.resources.rst:110 +#: library/importlib.resources.rst:111 msgid "For all the following functions:" msgstr "Για όλες τις παρακάτω λειτουργίες:" -#: library/importlib.resources.rst:112 +#: library/importlib.resources.rst:113 msgid "" "*anchor* is an :class:`~importlib.resources.Anchor`, as in :func:`~importlib." "resources.files`. Unlike in ``files``, it may not be omitted." @@ -226,7 +228,7 @@ msgstr "" "`~importlib.resources.files`. Σε αντίθεση με τα ``αρχεία``, ενδέχεται να μην " "παραλειφθεί." -#: library/importlib.resources.rst:116 +#: library/importlib.resources.rst:117 msgid "" "*path_names* are components of a resource's path name, relative to the " "anchor. For example, to get the text of resource named ``info.txt``, use::" @@ -235,11 +237,11 @@ msgstr "" "με το anchor. Για παράδειγμα, για να λάβετε το κείμενο του πόρου με το όνομα " "``info.txt``, χρησιμοποιήστε::" -#: library/importlib.resources.rst:120 +#: library/importlib.resources.rst:121 msgid "importlib.resources.read_text(my_module, \"info.txt\")" msgstr "importlib.resources.read_text(my_module, \"info.txt\")" -#: library/importlib.resources.rst:122 +#: library/importlib.resources.rst:123 msgid "" "Like :meth:`Traversable.joinpath `, The " "individual components should use forward slashes (``/``) as path separators. " @@ -249,7 +251,7 @@ msgstr "" "μεμονωμένα στοιχεία θα πρέπει να χρησιμοποιούν κάθετε (``/``) ως διαχωριστές " "διαδρομή. Για παράδειγμα, τα ακόλουθα είναι ισοδύναμα::" -#: library/importlib.resources.rst:127 +#: library/importlib.resources.rst:128 msgid "" "importlib.resources.read_binary(my_module, \"pics/painting.png\")\n" "importlib.resources.read_binary(my_module, \"pics\", \"painting.png\")" @@ -257,7 +259,7 @@ msgstr "" "importlib.resources.read_binary(my_module, \"pics/painting.png\")\n" "importlib.resources.read_binary(my_module, \"pics\", \"painting.png\")" -#: library/importlib.resources.rst:130 +#: library/importlib.resources.rst:131 msgid "" "For backward compatibility reasons, functions that read text require an " "explicit *encoding* argument if multiple *path_names* are given. For " @@ -268,7 +270,7 @@ msgstr "" "παράδειγμα, για να λάβετε το κείμενο του ``info/chapter1.txt``, " "χρησιμοποιήστε::" -#: library/importlib.resources.rst:134 +#: library/importlib.resources.rst:135 msgid "" "importlib.resources.read_text(my_module, \"info\", \"chapter1.txt\",\n" " encoding='utf-8')" @@ -276,13 +278,13 @@ msgstr "" "importlib.resources.read_text(my_module, \"info\", \"chapter1.txt\",\n" " encoding='utf-8')" -#: library/importlib.resources.rst:139 +#: library/importlib.resources.rst:140 msgid "Open the named resource for binary reading." msgstr "Ανοίξτε τον πόρο με όνομα για δυαδική ανάγνωση." -#: library/importlib.resources.rst:141 library/importlib.resources.rst:184 -#: library/importlib.resources.rst:232 library/importlib.resources.rst:249 -#: library/importlib.resources.rst:267 +#: library/importlib.resources.rst:142 library/importlib.resources.rst:185 +#: library/importlib.resources.rst:233 library/importlib.resources.rst:250 +#: library/importlib.resources.rst:268 msgid "" "See :ref:`the introduction ` for details on " "*anchor* and *path_names*." @@ -290,7 +292,7 @@ msgstr "" "Δείτε :ref:`the introduction ` για " "λεπτομέρειες σχετικά με το *anchor* και *path_names*." -#: library/importlib.resources.rst:144 +#: library/importlib.resources.rst:145 msgid "" "This function returns a :class:`~typing.BinaryIO` object, that is, a binary " "stream open for reading." @@ -298,23 +300,23 @@ msgstr "" "Αυτή η συνάρτηση επιστρέφει ένα αντικείμενο :class:`~typing.BinaryIO`, ένα " "δυαδικό ρεύμα εισόδου για ανάγνωση." -#: library/importlib.resources.rst:147 library/importlib.resources.rst:171 -#: library/importlib.resources.rst:187 library/importlib.resources.rst:208 -#: library/importlib.resources.rst:235 library/importlib.resources.rst:252 -#: library/importlib.resources.rst:270 +#: library/importlib.resources.rst:148 library/importlib.resources.rst:172 +#: library/importlib.resources.rst:188 library/importlib.resources.rst:209 +#: library/importlib.resources.rst:236 library/importlib.resources.rst:253 +#: library/importlib.resources.rst:271 msgid "This function is roughly equivalent to::" msgstr "Αυτή η συνάρτηση είναι περίπου ισοδύναμη με::" -#: library/importlib.resources.rst:149 +#: library/importlib.resources.rst:150 msgid "files(anchor).joinpath(*path_names).open('rb')" msgstr "files(anchor).joinpath(*path_names).open('rb')" -#: library/importlib.resources.rst:151 library/importlib.resources.rst:191 -#: library/importlib.resources.rst:256 +#: library/importlib.resources.rst:152 library/importlib.resources.rst:192 +#: library/importlib.resources.rst:257 msgid "Multiple *path_names* are accepted." msgstr "Γίνονται αποδεκτά πολλά *path_names*." -#: library/importlib.resources.rst:157 +#: library/importlib.resources.rst:158 msgid "" "Open the named resource for text reading. By default, the contents are read " "as strict UTF-8." @@ -322,7 +324,7 @@ msgstr "" "Ανοίγει τον δεδομένο πόρο για ανάγνωση κειμένου. Από προεπιλογή, τα " "περιεχόμενα διαβάζονται ως αυστηρά UTF-8." -#: library/importlib.resources.rst:160 library/importlib.resources.rst:200 +#: library/importlib.resources.rst:161 library/importlib.resources.rst:201 msgid "" "See :ref:`the introduction ` for details on " "*anchor* and *path_names*. *encoding* and *errors* have the same meaning as " @@ -332,7 +334,7 @@ msgstr "" "λεπτομέρειες σχετικά με το *anchor* και το *path_names*. Τα *encoding* και " "*errors* έχουν την ίδια σημασία όπως στο ενσωματωμένο :func:`open`." -#: library/importlib.resources.rst:164 library/importlib.resources.rst:204 +#: library/importlib.resources.rst:165 library/importlib.resources.rst:205 msgid "" "For backward compatibility reasons, the *encoding* argument must be given " "explicitly if there are multiple *path_names*. This limitation is scheduled " @@ -342,7 +344,7 @@ msgstr "" "πρέπει να δίνεται ρητά εάν υπάρχουν πολλά *path_names*. Αυτό ο περιορισμός " "έχει προγραμματιστεί να καταργηθεί στην Python 3.15." -#: library/importlib.resources.rst:168 +#: library/importlib.resources.rst:169 msgid "" "This function returns a :class:`~typing.TextIO` object, that is, a text " "stream open for reading." @@ -350,12 +352,12 @@ msgstr "" "Αυτή η συνάρτηση επιστρέφει ένα :class:`~typing.TextIO` αντικείμενο, δηλαδή " "ένα ρεύμα εισόδου για ανάγνωση." -#: library/importlib.resources.rst:173 +#: library/importlib.resources.rst:174 msgid "files(anchor).joinpath(*path_names).open('r', encoding=encoding)" msgstr "files(anchor).joinpath(*path_names).open('r', encoding=encoding)" -#: library/importlib.resources.rst:175 library/importlib.resources.rst:212 -#: library/importlib.resources.rst:239 +#: library/importlib.resources.rst:176 library/importlib.resources.rst:213 +#: library/importlib.resources.rst:240 msgid "" "Multiple *path_names* are accepted. *encoding* and *errors* must be given as " "keyword arguments." @@ -363,16 +365,16 @@ msgstr "" "Πολλαπλά *path_names* γίνονται δεκτά. Τα *encoding* και *errors* πρέπει να " "δίνονται ως ορίσματα λέξεων-κλειδιών." -#: library/importlib.resources.rst:182 +#: library/importlib.resources.rst:183 msgid "Read and return the contents of the named resource as :class:`bytes`." msgstr "" "Διαβάζει και επιστρέφει τα περιεχόμενα του δεδομένου πόρου ως :class:`bytes`." -#: library/importlib.resources.rst:189 +#: library/importlib.resources.rst:190 msgid "files(anchor).joinpath(*path_names).read_bytes()" msgstr "files(anchor).joinpath(*path_names).read_bytes()" -#: library/importlib.resources.rst:197 +#: library/importlib.resources.rst:198 msgid "" "Read and return the contents of the named resource as :class:`str`. By " "default, the contents are read as strict UTF-8." @@ -380,11 +382,11 @@ msgstr "" "Διαβάζει και επιστρέφει τα περιεχόμενα του δεδομένου πόρου μέσα στο ως :" "class:`str`. Από προεπιλογή, τα περιεχόμενα διαβάζονται ως αυστηρό UTF-8." -#: library/importlib.resources.rst:210 +#: library/importlib.resources.rst:211 msgid "files(anchor).joinpath(*path_names).read_text(encoding=encoding)" msgstr "files(anchor).joinpath(*path_names).read_text(encoding=encoding)" -#: library/importlib.resources.rst:219 +#: library/importlib.resources.rst:220 msgid "" "Provides the path to the *resource* as an actual file system path. This " "function returns a context manager for use in a :keyword:`with` statement. " @@ -395,7 +397,7 @@ msgstr "" "σε μια :keyword:`with` πρόταση. Ο διαχειριστής περιεχομένου παρέχει ένα " "αντικείμενο :class:`pathlib.Path`." -#: library/importlib.resources.rst:223 +#: library/importlib.resources.rst:224 msgid "" "Exiting the context manager cleans up any temporary files created, e.g. when " "the resource needs to be extracted from a zip file." @@ -403,7 +405,7 @@ msgstr "" "Η έξοδος από τον context manager καθαρίζει οποιοδήποτε προσωρινό αρχείο που " "δημιουργήθηκε, π.χ. όταν ο πόρος χρειάστηκε να εξαχθεί από ένα αρχείο zip." -#: library/importlib.resources.rst:226 +#: library/importlib.resources.rst:227 msgid "" "For example, the :meth:`~pathlib.Path.stat` method requires an actual file " "system path; it can be used like this::" @@ -411,7 +413,7 @@ msgstr "" "Για παράδειγμα, η μέθοδος :meth:`~pathlib.Path.stat` απαιτεί μια πραγματική " "διαδρομή συστήματος αρχείων· μπορεί να χρησιμοποιηθεί ως εξής::" -#: library/importlib.resources.rst:229 +#: library/importlib.resources.rst:230 msgid "" "with importlib.resources.path(anchor, \"resource.txt\") as fspath:\n" " result = fspath.stat()" @@ -419,11 +421,11 @@ msgstr "" "with importlib.resources.path(anchor, \"resource.txt\") as fspath:\n" " result = fspath.stat()" -#: library/importlib.resources.rst:237 +#: library/importlib.resources.rst:238 msgid "as_file(files(anchor).joinpath(*path_names))" msgstr "as_file(files(anchor).joinpath(*path_names))" -#: library/importlib.resources.rst:246 +#: library/importlib.resources.rst:247 msgid "" "Return ``True`` if the named resource exists, otherwise ``False``. This " "function does not consider directories to be resources." @@ -431,11 +433,11 @@ msgstr "" "Επιστρέφετε ``True`` εάν υπάρχει ο δεδομένος πόρος, διαφορετικά ``False``. " "Αυτή η συνάρτηση δεν θεωρεί τους καταλόγους ως πόρους." -#: library/importlib.resources.rst:254 +#: library/importlib.resources.rst:255 msgid "files(anchor).joinpath(*path_names).is_file()" msgstr "files(anchor).joinpath(*path_names).is_file()" -#: library/importlib.resources.rst:262 +#: library/importlib.resources.rst:263 msgid "" "Return an iterable over the named items within the package or path. The " "iterable returns names of resources (e.g. files) and non-resources (e.g. " @@ -447,7 +449,7 @@ msgstr "" "πόρους (π.χ. καταλόγους) ως :class:`str`. Το iterable δεν επαναλαμβάνεται σε " "υποκαταλόγους." -#: library/importlib.resources.rst:272 +#: library/importlib.resources.rst:273 msgid "" "for resource in files(anchor).joinpath(*path_names).iterdir():\n" " yield resource.name" @@ -455,7 +457,7 @@ msgstr "" "for resource in files(anchor).joinpath(*path_names).iterdir():\n" " yield resource.name" -#: library/importlib.resources.rst:275 +#: library/importlib.resources.rst:276 msgid "" "Prefer ``iterdir()`` as above, which offers more control over the results " "and richer functionality." diff --git a/library/index.po b/library/index.po index 36f55fc2..5a2528b3 100644 --- a/library/index.po +++ b/library/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/inspect.po b/library/inspect.po index 0f4eebf7..14246272 100644 --- a/library/inspect.po +++ b/library/inspect.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -72,16 +72,16 @@ msgstr "" msgid "class" msgstr "" -#: library/inspect.rst:63 library/inspect.rst:292 +#: library/inspect.rst:63 library/inspect.rst:295 msgid "__doc__" msgstr "" -#: library/inspect.rst:63 library/inspect.rst:292 +#: library/inspect.rst:63 library/inspect.rst:295 msgid "documentation string" msgstr "" -#: library/inspect.rst:65 library/inspect.rst:248 library/inspect.rst:275 -#: library/inspect.rst:294 +#: library/inspect.rst:65 library/inspect.rst:248 library/inspect.rst:278 +#: library/inspect.rst:297 msgid "__name__" msgstr "" @@ -89,13 +89,13 @@ msgstr "" msgid "name with which this class was defined" msgstr "" -#: library/inspect.rst:68 library/inspect.rst:250 library/inspect.rst:277 -#: library/inspect.rst:297 +#: library/inspect.rst:68 library/inspect.rst:250 library/inspect.rst:280 +#: library/inspect.rst:300 msgid "__qualname__" msgstr "" -#: library/inspect.rst:68 library/inspect.rst:250 library/inspect.rst:277 -#: library/inspect.rst:297 +#: library/inspect.rst:68 library/inspect.rst:250 library/inspect.rst:280 +#: library/inspect.rst:300 msgid "qualified name" msgstr "" @@ -133,7 +133,7 @@ msgstr "" msgid "function object containing implementation of method" msgstr "" -#: library/inspect.rst:299 +#: library/inspect.rst:302 msgid "__self__" msgstr "" @@ -249,7 +249,7 @@ msgstr "" msgid "next inner traceback object (called by this level)" msgstr "" -#: library/inspect.rst:252 library/inspect.rst:282 +#: library/inspect.rst:252 library/inspect.rst:285 msgid "frame" msgstr "" @@ -344,7 +344,7 @@ msgstr "" msgid "used to clear all references to local variables" msgstr "" -#: library/inspect.rst:256 library/inspect.rst:286 +#: library/inspect.rst:259 library/inspect.rst:289 msgid "code" msgstr "" @@ -516,7 +516,7 @@ msgstr "" msgid "generator" msgstr "" -#: library/inspect.rst:262 library/inspect.rst:275 +#: library/inspect.rst:265 library/inspect.rst:278 msgid "name" msgstr "" @@ -528,113 +528,121 @@ msgstr "" msgid "gi_running" msgstr "" -#: library/inspect.rst:271 +#: library/inspect.rst:274 msgid "is the generator running?" msgstr "" #: library/inspect.rst:256 +msgid "gi_suspended" +msgstr "" + +#: library/inspect.rst:256 +msgid "is the generator suspended?" +msgstr "" + +#: library/inspect.rst:259 msgid "gi_code" msgstr "" -#: library/inspect.rst:258 +#: library/inspect.rst:261 msgid "gi_yieldfrom" msgstr "" -#: library/inspect.rst:258 +#: library/inspect.rst:261 msgid "object being iterated by ``yield from``, or ``None``" msgstr "" -#: library/inspect.rst:262 +#: library/inspect.rst:265 msgid "async generator" msgstr "" -#: library/inspect.rst:266 +#: library/inspect.rst:269 msgid "ag_await" msgstr "" -#: library/inspect.rst:279 +#: library/inspect.rst:282 msgid "object being awaited on, or ``None``" msgstr "" -#: library/inspect.rst:269 +#: library/inspect.rst:272 msgid "ag_frame" msgstr "" -#: library/inspect.rst:271 +#: library/inspect.rst:274 msgid "ag_running" msgstr "" -#: library/inspect.rst:273 +#: library/inspect.rst:276 msgid "ag_code" msgstr "" -#: library/inspect.rst:275 +#: library/inspect.rst:278 msgid "coroutine" msgstr "" -#: library/inspect.rst:279 +#: library/inspect.rst:282 msgid "cr_await" msgstr "" -#: library/inspect.rst:282 +#: library/inspect.rst:285 msgid "cr_frame" msgstr "" -#: library/inspect.rst:284 +#: library/inspect.rst:287 msgid "cr_running" msgstr "" -#: library/inspect.rst:284 +#: library/inspect.rst:287 msgid "is the coroutine running?" msgstr "" -#: library/inspect.rst:286 +#: library/inspect.rst:289 msgid "cr_code" msgstr "" -#: library/inspect.rst:288 +#: library/inspect.rst:291 msgid "cr_origin" msgstr "" -#: library/inspect.rst:288 +#: library/inspect.rst:291 msgid "where coroutine was created, or ``None``. See |coroutine-origin-link|" msgstr "" -#: library/inspect.rst:292 +#: library/inspect.rst:295 msgid "builtin" msgstr "" -#: library/inspect.rst:294 +#: library/inspect.rst:297 msgid "original name of this function or method" msgstr "" -#: library/inspect.rst:299 +#: library/inspect.rst:302 msgid "instance to which a method is bound, or ``None``" msgstr "" -#: library/inspect.rst:306 +#: library/inspect.rst:309 msgid "Add ``__qualname__`` and ``gi_yieldfrom`` attributes to generators." msgstr "" -#: library/inspect.rst:308 +#: library/inspect.rst:311 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 "" -#: library/inspect.rst:313 +#: library/inspect.rst:316 msgid "Add ``cr_origin`` attribute to coroutines." msgstr "" -#: library/inspect.rst:317 +#: library/inspect.rst:320 msgid "Add ``__builtins__`` attribute to functions." msgstr "" -#: library/inspect.rst:321 +#: library/inspect.rst:324 msgid "Add ``f_generator`` attribute to frames." msgstr "" -#: library/inspect.rst:325 +#: library/inspect.rst:328 msgid "" "Return all the members of an object in a list of ``(name, value)`` pairs " "sorted by name. If the optional *predicate* argument—which will be called " @@ -642,14 +650,14 @@ msgid "" "the predicate returns a true value are included." msgstr "" -#: library/inspect.rst:332 +#: library/inspect.rst:335 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:`~object.__dir__`." msgstr "" -#: library/inspect.rst:339 +#: library/inspect.rst:342 msgid "" "Return all the members of an object in a list of ``(name, value)`` pairs " "sorted by name without triggering dynamic lookup via the descriptor " @@ -657,7 +665,7 @@ msgid "" "that satisfy a given predicate." msgstr "" -#: library/inspect.rst:346 +#: library/inspect.rst:349 msgid "" ":func:`getmembers_static` may not be able to retrieve all members that " "getmembers can fetch (like dynamically created attributes) and may find " @@ -666,7 +674,7 @@ msgid "" "cases." msgstr "" -#: library/inspect.rst:357 +#: library/inspect.rst:360 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 " @@ -675,62 +683,62 @@ msgid "" "``None`` is returned." msgstr "" -#: library/inspect.rst:363 +#: library/inspect.rst:366 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 "" -#: library/inspect.rst:367 +#: library/inspect.rst:370 msgid "The function is based directly on :mod:`importlib`." msgstr "" -#: library/inspect.rst:373 +#: library/inspect.rst:376 msgid "Return ``True`` if the object is a module." msgstr "" -#: library/inspect.rst:378 +#: library/inspect.rst:381 msgid "" "Return ``True`` if the object is a class, whether built-in or created in " "Python code." msgstr "" -#: library/inspect.rst:384 +#: library/inspect.rst:387 msgid "Return ``True`` if the object is a bound method written in Python." msgstr "" -#: library/inspect.rst:389 +#: library/inspect.rst:392 msgid "Return ``True`` if the object is a :term:`package`." msgstr "" -#: library/inspect.rst:396 +#: library/inspect.rst:399 msgid "" "Return ``True`` if the object is a Python function, which includes functions " "created by a :term:`lambda` expression." msgstr "" -#: library/inspect.rst:402 +#: library/inspect.rst:405 msgid "Return ``True`` if the object is a Python generator function." msgstr "" -#: library/inspect.rst:404 +#: library/inspect.rst:407 msgid "" "Functions wrapped in :func:`functools.partial` now return ``True`` if the " "wrapped function is a Python generator function." msgstr "" -#: library/inspect.rst:408 +#: library/inspect.rst:411 msgid "" "Functions wrapped in :func:`functools.partialmethod` now return ``True`` if " "the wrapped function is a Python generator function." msgstr "" -#: library/inspect.rst:414 +#: library/inspect.rst:417 msgid "Return ``True`` if the object is a generator." msgstr "" -#: library/inspect.rst:419 +#: library/inspect.rst:422 msgid "" "Return ``True`` if the object is a :term:`coroutine function` (a function " "defined with an :keyword:`async def` syntax), a :func:`functools.partial` " @@ -738,60 +746,60 @@ msgid "" "`markcoroutinefunction`." msgstr "" -#: library/inspect.rst:426 +#: library/inspect.rst:429 msgid "" "Functions wrapped in :func:`functools.partial` now return ``True`` if the " "wrapped function is a :term:`coroutine function`." msgstr "" -#: library/inspect.rst:430 +#: library/inspect.rst:433 msgid "" "Sync functions marked with :func:`markcoroutinefunction` now return ``True``." msgstr "" -#: library/inspect.rst:504 +#: library/inspect.rst:507 msgid "" "Functions wrapped in :func:`functools.partialmethod` now return ``True`` if " "the wrapped function is a :term:`coroutine function`." msgstr "" -#: library/inspect.rst:441 +#: library/inspect.rst:444 msgid "" "Decorator to mark a callable as a :term:`coroutine function` if it would not " "otherwise be detected by :func:`iscoroutinefunction`." msgstr "" -#: library/inspect.rst:444 +#: library/inspect.rst:447 msgid "" "This may be of use for sync functions that return a :term:`coroutine`, if " "the function is passed to an API that requires :func:`iscoroutinefunction`." msgstr "" -#: library/inspect.rst:447 +#: library/inspect.rst:450 msgid "" "When possible, using an :keyword:`async def` function is preferred. Also " "acceptable is calling the function and testing the return with :func:" "`iscoroutine`." msgstr "" -#: library/inspect.rst:456 +#: library/inspect.rst:459 msgid "" "Return ``True`` if the object is a :term:`coroutine` created by an :keyword:" "`async def` function." msgstr "" -#: library/inspect.rst:464 +#: library/inspect.rst:467 msgid "" "Return ``True`` if the object can be used in :keyword:`await` expression." msgstr "" -#: library/inspect.rst:466 +#: library/inspect.rst:469 msgid "" "Can also be used to distinguish generator-based coroutines from regular " "generators:" msgstr "" -#: library/inspect.rst:469 +#: library/inspect.rst:472 msgid "" "import types\n" "\n" @@ -805,13 +813,13 @@ msgid "" "assert isawaitable(gen_coro())" msgstr "" -#: library/inspect.rst:487 +#: library/inspect.rst:490 msgid "" "Return ``True`` if the object is an :term:`asynchronous generator` function, " "for example:" msgstr "" -#: library/inspect.rst:490 +#: library/inspect.rst:493 msgid "" ">>> async def agen():\n" "... yield 1\n" @@ -820,65 +828,65 @@ msgid "" "True" msgstr "" -#: library/inspect.rst:500 +#: library/inspect.rst:503 msgid "" "Functions wrapped in :func:`functools.partial` now return ``True`` if the " "wrapped function is an :term:`asynchronous generator` function." msgstr "" -#: library/inspect.rst:510 +#: library/inspect.rst:513 msgid "" "Return ``True`` if the object is an :term:`asynchronous generator iterator` " "created by an :term:`asynchronous generator` function." msgstr "" -#: library/inspect.rst:517 +#: library/inspect.rst:520 msgid "Return ``True`` if the object is a traceback." msgstr "" -#: library/inspect.rst:522 +#: library/inspect.rst:525 msgid "Return ``True`` if the object is a frame." msgstr "" -#: library/inspect.rst:527 +#: library/inspect.rst:530 msgid "Return ``True`` if the object is a code." msgstr "" -#: library/inspect.rst:532 +#: library/inspect.rst:535 msgid "" "Return ``True`` if the object is a built-in function or a bound built-in " "method." msgstr "" -#: library/inspect.rst:537 +#: library/inspect.rst:540 msgid "" "Return ``True`` if the type of object is a :class:`~types.MethodWrapperType`." msgstr "" -#: library/inspect.rst:539 +#: library/inspect.rst:542 msgid "" "These are instances of :class:`~types.MethodWrapperType`, such as :meth:" "`~object.__str__`, :meth:`~object.__eq__` and :meth:`~object.__repr__`." msgstr "" -#: library/inspect.rst:547 +#: library/inspect.rst:550 msgid "" "Return ``True`` if the object is a user-defined or built-in function or " "method." msgstr "" -#: library/inspect.rst:552 +#: library/inspect.rst:555 msgid "Return ``True`` if the object is an abstract base class." msgstr "" -#: library/inspect.rst:557 +#: library/inspect.rst:560 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 "" -#: library/inspect.rst:561 +#: library/inspect.rst:564 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__` " @@ -887,7 +895,7 @@ msgid "" "sensible, and :attr:`~definition.__doc__` often is." msgstr "" -#: library/inspect.rst:567 +#: library/inspect.rst:570 msgid "" "Methods implemented via descriptors that also pass one of the other tests " "return ``False`` from the :func:`ismethoddescriptor` test, simply because " @@ -895,7 +903,7 @@ msgid "" "`~method.__func__` attribute (etc) when an object passes :func:`ismethod`." msgstr "" -#: library/inspect.rst:573 +#: library/inspect.rst:576 msgid "" "This function no longer incorrectly reports objects with :meth:`~object." "__get__` and :meth:`~object.__delete__`, but not :meth:`~object.__set__`, as " @@ -903,11 +911,11 @@ msgid "" "descriptors)." msgstr "" -#: library/inspect.rst:581 +#: library/inspect.rst:584 msgid "Return ``True`` if the object is a data descriptor." msgstr "" -#: library/inspect.rst:583 +#: library/inspect.rst:586 msgid "" "Data descriptors have a :attr:`~object.__set__` or a :attr:`~object." "__delete__` method. Examples are properties (defined in Python), getsets, " @@ -918,33 +926,33 @@ msgid "" "and members have both of these attributes), but this is not guaranteed." msgstr "" -#: library/inspect.rst:594 +#: library/inspect.rst:597 msgid "Return ``True`` if the object is a getset descriptor." msgstr "" -#: library/inspect.rst:598 +#: library/inspect.rst:601 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 "" -#: library/inspect.rst:605 +#: library/inspect.rst:608 msgid "Return ``True`` if the object is a member descriptor." msgstr "" -#: library/inspect.rst:609 +#: library/inspect.rst:612 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 "" -#: library/inspect.rst:617 +#: library/inspect.rst:620 msgid "Retrieving source code" msgstr "" -#: library/inspect.rst:621 +#: library/inspect.rst:624 msgid "" "Get the documentation string for an object, cleaned up with :func:" "`cleandoc`. If the documentation string for an object is not provided and " @@ -953,11 +961,11 @@ msgid "" "documentation string is invalid or missing." msgstr "" -#: library/inspect.rst:627 +#: library/inspect.rst:630 msgid "Documentation strings are now inherited if not overridden." msgstr "" -#: library/inspect.rst:633 +#: library/inspect.rst:636 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 " @@ -966,27 +974,27 @@ msgid "" "been defined in C or the interactive shell." msgstr "" -#: library/inspect.rst:642 +#: library/inspect.rst:645 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 "" -#: library/inspect.rst:649 +#: library/inspect.rst:652 msgid "" "Try to guess which module an object was defined in. Return ``None`` if the " "module cannot be determined." msgstr "" -#: library/inspect.rst:655 +#: library/inspect.rst:658 msgid "" "Return the name of the Python source file in which an object was defined or " "``None`` if no way can be identified to get the source. This will fail with " "a :exc:`TypeError` if the object is a built-in module, class, or function." msgstr "" -#: library/inspect.rst:663 +#: library/inspect.rst:666 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 " @@ -997,13 +1005,13 @@ msgid "" "built-in module, class, or function." msgstr "" -#: library/inspect.rst:686 +#: library/inspect.rst:689 msgid "" ":exc:`OSError` is raised instead of :exc:`IOError`, now an alias of the " "former." msgstr "" -#: library/inspect.rst:679 +#: library/inspect.rst:682 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 " @@ -1012,13 +1020,13 @@ msgid "" "object is a built-in module, class, or function." msgstr "" -#: library/inspect.rst:693 +#: library/inspect.rst:696 msgid "" "Clean up indentation from docstrings that are indented to line up with " "blocks of code." msgstr "" -#: library/inspect.rst:696 +#: library/inspect.rst:699 msgid "" "All leading whitespace is removed from the first line. Any leading " "whitespace that can be uniformly removed from the second line onwards is " @@ -1026,22 +1034,22 @@ msgid "" "Also, all tabs are expanded to spaces." msgstr "" -#: library/inspect.rst:705 +#: library/inspect.rst:708 msgid "Introspecting callables with the Signature object" msgstr "" -#: library/inspect.rst:709 +#: library/inspect.rst:712 msgid "" "The :class:`Signature` object represents the call signature of a callable " "object and its return annotation. To retrieve a :class:`!Signature` object, " "use the :func:`!signature` function." msgstr "" -#: library/inspect.rst:716 +#: library/inspect.rst:719 msgid "Return a :class:`Signature` object for the given *callable*:" msgstr "" -#: library/inspect.rst:718 +#: library/inspect.rst:721 msgid "" ">>> from inspect import signature\n" ">>> def foo(a, *, b:int, **kwargs):\n" @@ -1059,13 +1067,13 @@ msgid "" "" msgstr "" -#: library/inspect.rst:735 +#: library/inspect.rst:738 msgid "" "Accepts a wide range of Python callables, from plain functions and classes " "to :func:`functools.partial` objects." msgstr "" -#: library/inspect.rst:738 +#: library/inspect.rst:741 msgid "" "If some of the annotations are strings (e.g., because ``from __future__ " "import annotations`` was used), :func:`signature` will attempt to " @@ -1080,7 +1088,7 @@ msgid "" "STRING`` to return annotations in string format." msgstr "" -#: library/inspect.rst:752 +#: library/inspect.rst:755 msgid "" "Raises :exc:`ValueError` if no signature can be provided, and :exc:" "`TypeError` if that type of object is not supported. Also, if the " @@ -1089,36 +1097,36 @@ msgid "" "get_annotations` could potentially raise any kind of exception." msgstr "" -#: library/inspect.rst:758 +#: library/inspect.rst:761 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 "" -#: library/inspect.rst:762 +#: library/inspect.rst:765 msgid "" "The *follow_wrapped* parameter was added. Pass ``False`` to get a signature " "of *callable* specifically (``callable.__wrapped__`` will not be used to " "unwrap decorated callables.)" msgstr "" -#: library/inspect.rst:904 +#: library/inspect.rst:907 msgid "The *globals*, *locals*, and *eval_str* parameters were added." msgstr "" -#: library/inspect.rst:771 +#: library/inspect.rst:774 msgid "The *annotation_format* parameter was added." msgstr "" -#: library/inspect.rst:776 +#: library/inspect.rst:779 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 "" -#: library/inspect.rst:782 +#: library/inspect.rst:785 msgid "" "If the passed object has a :attr:`!__signature__` attribute, we may use it " "to create the signature. The exact semantics are an implementation detail " @@ -1126,14 +1134,14 @@ msgid "" "semantics." msgstr "" -#: library/inspect.rst:790 +#: library/inspect.rst:793 msgid "" "A :class:`!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 "" -#: library/inspect.rst:795 +#: library/inspect.rst:798 msgid "" "The optional *parameters* argument is a sequence of :class:`Parameter` " "objects, which is validated to check that there are no parameters with " @@ -1142,54 +1150,54 @@ msgid "" "defaults follow parameters without defaults." msgstr "" -#: library/inspect.rst:801 +#: library/inspect.rst:804 msgid "" "The optional *return_annotation* argument can be an arbitrary Python object. " "It represents the \"return\" annotation of the callable." msgstr "" -#: library/inspect.rst:804 +#: library/inspect.rst:807 msgid "" ":class:`!Signature` objects are *immutable*. Use :meth:`Signature.replace` " "or :func:`copy.replace` to make a modified copy." msgstr "" -#: library/inspect.rst:807 +#: library/inspect.rst:810 msgid ":class:`!Signature` objects are now picklable and :term:`hashable`." msgstr "" -#: library/inspect.rst:812 +#: library/inspect.rst:815 msgid "A special class-level marker to specify absence of a return annotation." msgstr "" -#: library/inspect.rst:816 +#: library/inspect.rst:819 msgid "" "An ordered mapping of parameters' names to the corresponding :class:" "`Parameter` objects. Parameters appear in strict definition order, " "including keyword-only parameters." msgstr "" -#: library/inspect.rst:1184 +#: library/inspect.rst:1187 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 "" -#: library/inspect.rst:827 +#: library/inspect.rst:830 msgid "" "The \"return\" annotation for the callable. If the callable has no " "\"return\" annotation, this attribute is set to :attr:`Signature.empty`." msgstr "" -#: library/inspect.rst:832 +#: library/inspect.rst:835 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 "" -#: library/inspect.rst:838 +#: library/inspect.rst:841 msgid "" "Works the same way as :meth:`Signature.bind`, but allows the omission of " "some required arguments (mimics :func:`functools.partial` behavior.) " @@ -1197,7 +1205,7 @@ msgid "" "arguments do not match the signature." msgstr "" -#: library/inspect.rst:845 +#: library/inspect.rst:848 msgid "" "Create a new :class:`Signature` instance based on the instance :meth:" "`replace` was invoked on. It is possible to pass different *parameters* and/" @@ -1206,7 +1214,7 @@ msgid "" "Signature`, pass in :attr:`Signature.empty`." msgstr "" -#: library/inspect.rst:853 +#: library/inspect.rst:856 msgid "" ">>> def test(a, b):\n" "... pass\n" @@ -1217,24 +1225,24 @@ msgid "" "\"(a, b) -> 'new return anno'\"" msgstr "" -#: library/inspect.rst:863 +#: library/inspect.rst:866 msgid "" ":class:`Signature` objects are also supported by the generic function :func:" "`copy.replace`." msgstr "" -#: library/inspect.rst:868 +#: library/inspect.rst:871 msgid "Create a string representation of the :class:`Signature` object." msgstr "" -#: library/inspect.rst:870 +#: library/inspect.rst:873 msgid "" "If *max_width* is passed, the method will attempt to fit the signature into " "lines of at most *max_width* characters. If the signature is longer than " "*max_width*, all parameters will be on separate lines." msgstr "" -#: library/inspect.rst:875 +#: library/inspect.rst:878 msgid "" "If *quote_annotation_strings* is False, :term:`annotations ` in " "the signature are displayed without opening and closing quotation marks if " @@ -1243,21 +1251,21 @@ msgid "" "annotations`` was used." msgstr "" -#: library/inspect.rst:883 +#: library/inspect.rst:886 msgid "The *unquote_annotations* parameter was added." msgstr "" -#: library/inspect.rst:888 +#: library/inspect.rst:891 msgid "" "Return a :class:`Signature` (or its subclass) object for a given callable " "*obj*." msgstr "" -#: library/inspect.rst:891 +#: library/inspect.rst:894 msgid "This method simplifies subclassing of :class:`Signature`:" msgstr "" -#: library/inspect.rst:893 +#: library/inspect.rst:896 msgid "" "class MySignature(Signature):\n" " pass\n" @@ -1265,129 +1273,129 @@ msgid "" "assert isinstance(sig, MySignature)" msgstr "" -#: library/inspect.rst:900 +#: library/inspect.rst:903 msgid "Its behavior is otherwise identical to that of :func:`signature`." msgstr "" -#: library/inspect.rst:910 +#: library/inspect.rst:913 msgid "" ":class:`!Parameter` objects are *immutable*. Instead of modifying a :class:`!" "Parameter` object, you can use :meth:`Parameter.replace` or :func:`copy." "replace` to create a modified copy." msgstr "" -#: library/inspect.rst:914 +#: library/inspect.rst:917 msgid "Parameter objects are now picklable and :term:`hashable`." msgstr "" -#: library/inspect.rst:919 +#: library/inspect.rst:922 msgid "" "A special class-level marker to specify absence of default values and " "annotations." msgstr "" -#: library/inspect.rst:924 +#: library/inspect.rst:927 msgid "" "The name of the parameter as a string. The name must be a valid Python " "identifier." msgstr "" -#: library/inspect.rst:929 +#: library/inspect.rst:932 msgid "" "CPython generates implicit parameter names of the form ``.0`` on the code " "objects used to implement comprehensions and generator expressions." msgstr "" -#: library/inspect.rst:933 +#: library/inspect.rst:936 msgid "" "These parameter names are now exposed by this module as names like " "``implicit0``." msgstr "" -#: library/inspect.rst:939 +#: library/inspect.rst:942 msgid "" "The default value for the parameter. If the parameter has no default value, " "this attribute is set to :attr:`Parameter.empty`." msgstr "" -#: library/inspect.rst:944 +#: library/inspect.rst:947 msgid "" "The annotation for the parameter. If the parameter has no annotation, this " "attribute is set to :attr:`Parameter.empty`." msgstr "" -#: library/inspect.rst:949 +#: library/inspect.rst:952 msgid "" "Describes how argument values are bound to the parameter. The possible " "values are accessible via :class:`Parameter` (like ``Parameter." "KEYWORD_ONLY``), and support comparison and ordering, in the following order:" msgstr "" -#: library/inspect.rst:956 +#: library/inspect.rst:959 msgid "Name" msgstr "" -#: library/inspect.rst:956 +#: library/inspect.rst:959 msgid "Meaning" msgstr "" -#: library/inspect.rst:958 +#: library/inspect.rst:961 msgid "*POSITIONAL_ONLY*" msgstr "" -#: library/inspect.rst:958 +#: library/inspect.rst:961 msgid "" "Value must be supplied as a positional argument. Positional only parameters " "are those which appear before a ``/`` entry (if present) in a Python " "function definition." msgstr "" -#: library/inspect.rst:963 +#: library/inspect.rst:966 msgid "*POSITIONAL_OR_KEYWORD*" msgstr "" -#: library/inspect.rst:963 +#: library/inspect.rst:966 msgid "" "Value may be supplied as either a keyword or positional argument (this is " "the standard binding behaviour for functions implemented in Python.)" msgstr "" -#: library/inspect.rst:968 +#: library/inspect.rst:971 msgid "*VAR_POSITIONAL*" msgstr "" -#: library/inspect.rst:968 +#: library/inspect.rst:971 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 "" -#: library/inspect.rst:973 +#: library/inspect.rst:976 msgid "*KEYWORD_ONLY*" msgstr "" -#: library/inspect.rst:973 +#: library/inspect.rst:976 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 "" -#: library/inspect.rst:978 +#: library/inspect.rst:981 msgid "*VAR_KEYWORD*" msgstr "" -#: library/inspect.rst:978 +#: library/inspect.rst:981 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 "" -#: library/inspect.rst:984 +#: library/inspect.rst:987 msgid "Example: print all keyword-only arguments without default values:" msgstr "" -#: library/inspect.rst:986 +#: library/inspect.rst:989 msgid "" ">>> def foo(a, b, *, c, d=10):\n" "... pass\n" @@ -1400,15 +1408,15 @@ msgid "" "Parameter: c" msgstr "" -#: library/inspect.rst:1000 +#: library/inspect.rst:1003 msgid "Describes an enum value of :attr:`Parameter.kind`." msgstr "" -#: library/inspect.rst:1004 +#: library/inspect.rst:1007 msgid "Example: print all descriptions of arguments:" msgstr "" -#: library/inspect.rst:1006 +#: library/inspect.rst:1009 msgid "" ">>> def foo(a, b, *, c, d=10):\n" "... pass\n" @@ -1422,7 +1430,7 @@ msgid "" "keyword-only" msgstr "" -#: library/inspect.rst:1021 +#: library/inspect.rst:1024 msgid "" "Create a new :class:`Parameter` instance based on the instance replaced was " "invoked on. To override a :class:`!Parameter` attribute, pass the " @@ -1430,7 +1438,7 @@ msgid "" "a :class:`!Parameter`, pass :attr:`Parameter.empty`." msgstr "" -#: library/inspect.rst:1026 +#: library/inspect.rst:1029 msgid "" ">>> from inspect import Parameter\n" ">>> param = Parameter('foo', Parameter.KEYWORD_ONLY, default=42)\n" @@ -1444,83 +1452,83 @@ msgid "" "\"foo: 'spam'\"" msgstr "" -#: library/inspect.rst:1039 +#: library/inspect.rst:1042 msgid "" ":class:`Parameter` objects are also supported by the generic function :func:" "`copy.replace`." msgstr "" -#: library/inspect.rst:1042 +#: library/inspect.rst:1045 msgid "" "In Python 3.3 :class:`Parameter` objects were allowed to have ``name`` set " "to ``None`` if their ``kind`` was set to ``POSITIONAL_ONLY``. This is no " "longer permitted." msgstr "" -#: library/inspect.rst:1049 +#: library/inspect.rst:1052 msgid "" "Result of a :meth:`Signature.bind` or :meth:`Signature.bind_partial` call. " "Holds the mapping of arguments to the function's parameters." msgstr "" -#: library/inspect.rst:1054 +#: library/inspect.rst:1057 msgid "" "A mutable mapping of parameters' names to arguments' values. Contains only " "explicitly bound arguments. Changes in :attr:`arguments` will reflect in :" "attr:`args` and :attr:`kwargs`." msgstr "" -#: library/inspect.rst:1058 +#: library/inspect.rst:1061 msgid "" "Should be used in conjunction with :attr:`Signature.parameters` for any " "argument processing purposes." msgstr "" -#: library/inspect.rst:1063 +#: library/inspect.rst:1066 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 "" -#: library/inspect.rst:1068 +#: library/inspect.rst:1071 msgid "" ":attr:`arguments` is now of type :class:`dict`. Formerly, it was of type :" "class:`collections.OrderedDict`." msgstr "" -#: library/inspect.rst:1074 +#: library/inspect.rst:1077 msgid "" "A tuple of positional arguments values. Dynamically computed from the :attr:" "`arguments` attribute." msgstr "" -#: library/inspect.rst:1079 +#: library/inspect.rst:1082 msgid "" "A dict of keyword arguments values. Dynamically computed from the :attr:" "`arguments` attribute. Arguments that can be passed positionally are " "included in :attr:`args` instead." msgstr "" -#: library/inspect.rst:1085 +#: library/inspect.rst:1088 msgid "A reference to the parent :class:`Signature` object." msgstr "" -#: library/inspect.rst:1089 +#: library/inspect.rst:1092 msgid "Set default values for missing arguments." msgstr "" -#: library/inspect.rst:1091 +#: library/inspect.rst:1094 msgid "" "For variable-positional arguments (``*args``) the default is an empty tuple." msgstr "" -#: library/inspect.rst:1094 +#: library/inspect.rst:1097 msgid "" "For variable-keyword arguments (``**kwargs``) the default is an empty dict." msgstr "" -#: library/inspect.rst:1097 +#: library/inspect.rst:1100 msgid "" ">>> def foo(a, b='ham', *args): pass\n" ">>> ba = inspect.signature(foo).bind('spam')\n" @@ -1529,13 +1537,13 @@ msgid "" "{'a': 'spam', 'b': 'ham', 'args': ()}" msgstr "" -#: library/inspect.rst:1107 +#: library/inspect.rst:1110 msgid "" "The :attr:`args` and :attr:`kwargs` properties can be used to invoke " "functions:" msgstr "" -#: library/inspect.rst:1110 +#: library/inspect.rst:1113 msgid "" "def test(a, *, b):\n" " ...\n" @@ -1545,19 +1553,19 @@ msgid "" "test(*ba.args, **ba.kwargs)" msgstr "" -#: library/inspect.rst:1122 +#: library/inspect.rst:1125 msgid ":pep:`362` - Function Signature Object." msgstr "" -#: library/inspect.rst:1123 +#: library/inspect.rst:1126 msgid "The detailed specification, implementation details and examples." msgstr "" -#: library/inspect.rst:1129 +#: library/inspect.rst:1132 msgid "Classes and functions" msgstr "" -#: library/inspect.rst:1133 +#: library/inspect.rst:1136 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 " @@ -1568,19 +1576,19 @@ msgid "" "will appear multiple times." msgstr "" -#: library/inspect.rst:1144 +#: library/inspect.rst:1147 msgid "" "Get the names and default values of a Python function's parameters. A :term:" "`named tuple` is returned:" msgstr "" -#: library/inspect.rst:1147 +#: library/inspect.rst:1150 msgid "" "``FullArgSpec(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, " "annotations)``" msgstr "" -#: library/inspect.rst:1150 +#: library/inspect.rst:1153 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 " @@ -1595,7 +1603,7 @@ msgid "" "report the function return value annotation (if any)." msgstr "" -#: library/inspect.rst:1165 +#: library/inspect.rst:1168 msgid "" "Note that :func:`signature` and :ref:`Signature Object ` provide the recommended API for callable introspection, and support " @@ -1605,22 +1613,22 @@ msgid "" "``inspect`` module API." msgstr "" -#: library/inspect.rst:1172 +#: library/inspect.rst:1175 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 "" -#: library/inspect.rst:1177 +#: library/inspect.rst:1180 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." +"code migrating away from the legacy :func:`!getargspec` API." msgstr "" -#: library/inspect.rst:1192 +#: library/inspect.rst:1195 msgid "" "Get information about arguments passed into a particular frame. A :term:" "`named tuple` ``ArgInfo(args, varargs, keywords, locals)`` is returned. " @@ -1629,18 +1637,18 @@ msgid "" "dictionary of the given frame." msgstr "" -#: library/inspect.rst:1209 +#: library/inspect.rst:1212 msgid "This function was inadvertently marked as deprecated in Python 3.5." msgstr "" -#: library/inspect.rst:1204 +#: library/inspect.rst:1207 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 "" -#: library/inspect.rst:1214 +#: library/inspect.rst:1217 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 " @@ -1648,7 +1656,7 @@ msgid "" "user-defined metatype is in use, cls will be the first element of the tuple." msgstr "" -#: library/inspect.rst:1222 +#: library/inspect.rst:1225 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 " @@ -1661,7 +1669,7 @@ msgid "" "example:" msgstr "" -#: library/inspect.rst:1231 +#: library/inspect.rst:1234 msgid "" ">>> from inspect import getcallargs\n" ">>> def f(a, b=1, *pos, **named):\n" @@ -1678,11 +1686,11 @@ msgid "" "TypeError: f() missing 1 required positional argument: 'a'" msgstr "" -#: library/inspect.rst:1248 +#: library/inspect.rst:1251 msgid "Use :meth:`Signature.bind` and :meth:`Signature.bind_partial` instead." msgstr "" -#: library/inspect.rst:1254 +#: library/inspect.rst:1257 msgid "" "Get the mapping of external name references in a Python function or method " "*func* to their current values. A :term:`named tuple` " @@ -1694,18 +1702,18 @@ msgid "" "builtins." msgstr "" -#: library/inspect.rst:1263 +#: library/inspect.rst:1266 msgid "" ":exc:`TypeError` is raised if *func* is not a Python function or method." msgstr "" -#: library/inspect.rst:1270 +#: library/inspect.rst:1273 msgid "" "Get the object wrapped by *func*. It follows the chain of :attr:" "`__wrapped__` attributes returning the last object in the chain." msgstr "" -#: library/inspect.rst:1273 +#: library/inspect.rst:1276 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 " @@ -1715,31 +1723,37 @@ msgid "" "``__signature__`` attribute defined." msgstr "" -#: library/inspect.rst:1280 +#: library/inspect.rst:1283 msgid ":exc:`ValueError` is raised if a cycle is encountered." msgstr "" -#: library/inspect.rst:1287 +#: library/inspect.rst:1290 msgid "Compute the annotations dict for an object." msgstr "" -#: library/inspect.rst:1289 +#: library/inspect.rst:1292 msgid "" "This is an alias for :func:`annotationlib.get_annotations`; see the " "documentation of that function for more information." msgstr "" -#: library/inspect.rst:1294 +#: library/inspect.rst:1297 +msgid "" +"This function may execute arbitrary code contained in annotations. See :ref:" +"`annotationlib-security` for more information." +msgstr "" + +#: library/inspect.rst:1302 msgid "" "This function is now an alias for :func:`annotationlib.get_annotations`. " "Calling it as ``inspect.get_annotations`` will continue to work." msgstr "" -#: library/inspect.rst:1302 +#: library/inspect.rst:1310 msgid "The interpreter stack" msgstr "" -#: library/inspect.rst:1304 +#: library/inspect.rst:1312 msgid "" "Some of the following functions return :class:`FrameInfo` objects. For " "backwards compatibility these objects allow tuple-like operations on all " @@ -1747,95 +1761,95 @@ msgid "" "may be removed in the future." msgstr "" -#: library/inspect.rst:1313 +#: library/inspect.rst:1321 msgid "The :ref:`frame object ` that the record corresponds to." msgstr "" -#: library/inspect.rst:1317 +#: library/inspect.rst:1325 msgid "" "The file name associated with the code being executed by the frame this " "record corresponds to." msgstr "" -#: library/inspect.rst:1322 +#: library/inspect.rst:1330 msgid "" "The line number of the current line associated with the code being executed " "by the frame this record corresponds to." msgstr "" -#: library/inspect.rst:1327 +#: library/inspect.rst:1335 msgid "" "The function name that is being executed by the frame this record " "corresponds to." msgstr "" -#: library/inspect.rst:1331 +#: library/inspect.rst:1339 msgid "" "A list of lines of context from the source code that's being executed by the " "frame this record corresponds to." msgstr "" -#: library/inspect.rst:1375 +#: library/inspect.rst:1383 msgid "" "The index of the current line being executed in the :attr:`code_context` " "list." msgstr "" -#: library/inspect.rst:1340 +#: library/inspect.rst:1348 msgid "" "A :class:`dis.Positions` object containing the start line number, end line " "number, start column offset, and end column offset associated with the " "instruction being executed by the frame this record corresponds to." msgstr "" -#: library/inspect.rst:1344 +#: library/inspect.rst:1352 msgid "Return a :term:`named tuple` instead of a :class:`tuple`." msgstr "" -#: library/inspect.rst:1347 +#: library/inspect.rst:1355 msgid "" ":class:`!FrameInfo` is now a class instance (that is backwards compatible " "with the previous :term:`named tuple`)." msgstr "" -#: library/inspect.rst:1356 +#: library/inspect.rst:1364 msgid "" "The file name associated with the code being executed by the frame this " "traceback corresponds to." msgstr "" -#: library/inspect.rst:1361 +#: library/inspect.rst:1369 msgid "" "The line number of the current line associated with the code being executed " "by the frame this traceback corresponds to." msgstr "" -#: library/inspect.rst:1366 +#: library/inspect.rst:1374 msgid "" "The function name that is being executed by the frame this traceback " "corresponds to." msgstr "" -#: library/inspect.rst:1370 +#: library/inspect.rst:1378 msgid "" "A list of lines of context from the source code that's being executed by the " "frame this traceback corresponds to." msgstr "" -#: library/inspect.rst:1379 +#: library/inspect.rst:1387 msgid "" "A :class:`dis.Positions` object containing the start line number, end line " "number, start column offset, and end column offset associated with the " "instruction being executed by the frame this traceback corresponds to." msgstr "" -#: library/inspect.rst:1384 +#: library/inspect.rst:1392 msgid "" ":class:`!Traceback` is now a class instance (that is backwards compatible " "with the previous :term:`named tuple`)." msgstr "" -#: library/inspect.rst:1391 +#: library/inspect.rst:1399 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 " @@ -1847,7 +1861,7 @@ msgid "" "consumption which occurs." msgstr "" -#: library/inspect.rst:1399 +#: library/inspect.rst:1407 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 :" @@ -1855,7 +1869,7 @@ msgid "" "disabled when Python was compiled or using :func:`gc.disable`. For example::" msgstr "" -#: library/inspect.rst:1404 +#: library/inspect.rst:1412 msgid "" "def handle_stackframe_without_leak():\n" " frame = inspect.currentframe()\n" @@ -1865,31 +1879,31 @@ msgid "" " del frame" msgstr "" -#: library/inspect.rst:1411 +#: library/inspect.rst:1419 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 "" -#: library/inspect.rst:1415 +#: library/inspect.rst:1423 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 "" -#: library/inspect.rst:1422 +#: library/inspect.rst:1430 msgid "" "Get information about a frame or traceback object. A :class:`Traceback` " "object is returned." msgstr "" -#: library/inspect.rst:1425 +#: library/inspect.rst:1433 msgid "A :class:`Traceback` object is returned instead of a named tuple." msgstr "" -#: library/inspect.rst:1430 +#: library/inspect.rst:1438 msgid "" "Get a list of :class:`FrameInfo` objects for a frame and all outer frames. " "These frames represent the calls that lead to the creation of *frame*. The " @@ -1897,17 +1911,17 @@ msgid "" "represents the outermost call on *frame*'s stack." msgstr "" -#: library/inspect.rst:1450 library/inspect.rst:1491 +#: library/inspect.rst:1458 library/inspect.rst:1499 msgid "" "A list of :term:`named tuples ` ``FrameInfo(frame, filename, " "lineno, function, code_context, index)`` is returned." msgstr "" -#: library/inspect.rst:1455 library/inspect.rst:1496 +#: library/inspect.rst:1463 library/inspect.rst:1504 msgid "A list of :class:`FrameInfo` objects is returned." msgstr "" -#: library/inspect.rst:1445 +#: library/inspect.rst:1453 msgid "" "Get a list of :class:`FrameInfo` objects for a traceback's frame and all " "inner frames. These frames represent calls made as a consequence of " @@ -1915,11 +1929,11 @@ msgid "" "represents where the exception was raised." msgstr "" -#: library/inspect.rst:1460 +#: library/inspect.rst:1468 msgid "Return the frame object for the caller's stack frame." msgstr "" -#: library/inspect.rst:1464 +#: library/inspect.rst:1472 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 " @@ -1927,14 +1941,14 @@ msgid "" "``None``." msgstr "" -#: library/inspect.rst:1472 +#: library/inspect.rst:1480 msgid "" "Return a list of :class:`FrameInfo` objects 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 "" -#: library/inspect.rst:1486 +#: library/inspect.rst:1494 msgid "" "Return a list of :class:`FrameInfo` objects for the stack between the " "current frame and the frame in which an exception currently being handled " @@ -1942,11 +1956,11 @@ msgid "" "entry represents where the exception was raised." msgstr "" -#: library/inspect.rst:1500 +#: library/inspect.rst:1508 msgid "Fetching attributes statically" msgstr "" -#: library/inspect.rst:1502 +#: library/inspect.rst:1510 msgid "" "Both :func:`getattr` and :func:`hasattr` can trigger code execution when " "fetching or checking for the existence of attributes. Descriptors, like " @@ -1954,20 +1968,20 @@ msgid "" "`~object.__getattribute__` may be called." msgstr "" -#: library/inspect.rst:1508 +#: library/inspect.rst:1516 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 "" -#: library/inspect.rst:1514 +#: library/inspect.rst:1522 msgid "" "Retrieve attributes without triggering dynamic lookup via the descriptor " "protocol, :meth:`~object.__getattr__` or :meth:`~object.__getattribute__`." msgstr "" -#: library/inspect.rst:1518 +#: library/inspect.rst:1526 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 " @@ -1975,27 +1989,27 @@ msgid "" "return descriptors objects instead of instance members." msgstr "" -#: library/inspect.rst:1524 +#: library/inspect.rst:1532 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 "" -#: library/inspect.rst:1530 +#: library/inspect.rst:1538 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 "" -#: library/inspect.rst:1534 +#: library/inspect.rst:1542 msgid "" "You can handle these with code like the following. Note that for arbitrary " "getset descriptors invoking these may trigger code execution::" msgstr "" -#: library/inspect.rst:1538 +#: library/inspect.rst:1546 msgid "" "# example code for resolving the builtin descriptor types\n" "class _foo:\n" @@ -2018,11 +2032,11 @@ msgid "" " pass" msgstr "" -#: library/inspect.rst:1560 +#: library/inspect.rst:1568 msgid "Current State of Generators, Coroutines, and Asynchronous Generators" msgstr "" -#: library/inspect.rst:1562 +#: library/inspect.rst:1570 msgid "" "When implementing coroutine schedulers and for other advanced uses of " "generators, it is useful to determine whether a generator is currently " @@ -2031,31 +2045,31 @@ msgid "" "generator to be determined easily." msgstr "" -#: library/inspect.rst:1570 +#: library/inspect.rst:1578 msgid "Get current state of a generator-iterator." msgstr "" -#: library/inspect.rst:1588 library/inspect.rst:1605 +#: library/inspect.rst:1596 library/inspect.rst:1613 msgid "Possible states are:" msgstr "" -#: library/inspect.rst:1574 +#: library/inspect.rst:1582 msgid "GEN_CREATED: Waiting to start execution." msgstr "" -#: library/inspect.rst:1575 +#: library/inspect.rst:1583 msgid "GEN_RUNNING: Currently being executed by the interpreter." msgstr "" -#: library/inspect.rst:1576 +#: library/inspect.rst:1584 msgid "GEN_SUSPENDED: Currently suspended at a yield expression." msgstr "" -#: library/inspect.rst:1577 +#: library/inspect.rst:1585 msgid "GEN_CLOSED: Execution has completed." msgstr "" -#: library/inspect.rst:1583 +#: library/inspect.rst:1591 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 " @@ -2063,23 +2077,23 @@ msgid "" "``cr_frame`` attributes." msgstr "" -#: library/inspect.rst:1590 +#: library/inspect.rst:1598 msgid "CORO_CREATED: Waiting to start execution." msgstr "" -#: library/inspect.rst:1591 +#: library/inspect.rst:1599 msgid "CORO_RUNNING: Currently being executed by the interpreter." msgstr "" -#: library/inspect.rst:1592 +#: library/inspect.rst:1600 msgid "CORO_SUSPENDED: Currently suspended at an await expression." msgstr "" -#: library/inspect.rst:1593 +#: library/inspect.rst:1601 msgid "CORO_CLOSED: Execution has completed." msgstr "" -#: library/inspect.rst:1599 +#: library/inspect.rst:1607 msgid "" "Get current state of an asynchronous generator object. The function is " "intended to be used with asynchronous iterator objects created by :keyword:" @@ -2088,30 +2102,30 @@ msgid "" "``ag_frame`` attributes." msgstr "" -#: library/inspect.rst:1607 +#: library/inspect.rst:1615 msgid "AGEN_CREATED: Waiting to start execution." msgstr "" -#: library/inspect.rst:1608 +#: library/inspect.rst:1616 msgid "AGEN_RUNNING: Currently being executed by the interpreter." msgstr "" -#: library/inspect.rst:1609 +#: library/inspect.rst:1617 msgid "AGEN_SUSPENDED: Currently suspended at a yield expression." msgstr "" -#: library/inspect.rst:1610 +#: library/inspect.rst:1618 msgid "AGEN_CLOSED: Execution has completed." msgstr "" -#: library/inspect.rst:1614 +#: library/inspect.rst:1622 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 "" -#: library/inspect.rst:1620 +#: library/inspect.rst:1628 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. " @@ -2119,14 +2133,14 @@ msgid "" "generator, and all the same caveats apply." msgstr "" -#: library/inspect.rst:1625 +#: library/inspect.rst:1633 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 "" -#: library/inspect.rst:1631 +#: library/inspect.rst:1639 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 " @@ -2134,90 +2148,90 @@ msgid "" "dictionary." msgstr "" -#: library/inspect.rst:1640 +#: library/inspect.rst:1648 msgid "" "This function is analogous to :func:`~inspect.getgeneratorlocals`, but works " "for coroutine objects created by :keyword:`async def` functions." msgstr "" -#: library/inspect.rst:1647 +#: library/inspect.rst:1655 msgid "" "This function is analogous to :func:`~inspect.getgeneratorlocals`, but works " "for asynchronous generator objects created by :keyword:`async def` functions " "which use the :keyword:`yield` statement." msgstr "" -#: library/inspect.rst:1657 +#: library/inspect.rst:1665 msgid "Code Objects Bit Flags" msgstr "" -#: library/inspect.rst:1659 +#: library/inspect.rst:1667 msgid "" "Python code objects have a :attr:`~codeobject.co_flags` attribute, which is " "a bitmap of the following flags:" msgstr "" -#: library/inspect.rst:1664 +#: library/inspect.rst:1672 msgid "The code object is optimized, using fast locals." msgstr "" -#: library/inspect.rst:1668 +#: library/inspect.rst:1676 msgid "" "If set, a new dict will be created for the frame's :attr:`~frame.f_locals` " "when the code object is executed." msgstr "" -#: library/inspect.rst:1673 +#: library/inspect.rst:1681 msgid "The code object has a variable positional parameter (``*args``-like)." msgstr "" -#: library/inspect.rst:1677 +#: library/inspect.rst:1685 msgid "The code object has a variable keyword parameter (``**kwargs``-like)." msgstr "" -#: library/inspect.rst:1681 +#: library/inspect.rst:1689 msgid "The flag is set when the code object is a nested function." msgstr "" -#: library/inspect.rst:1685 +#: library/inspect.rst:1693 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 "" -#: library/inspect.rst:1690 +#: library/inspect.rst:1698 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 "" -#: library/inspect.rst:1698 +#: library/inspect.rst:1706 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 "" -#: library/inspect.rst:1707 +#: library/inspect.rst:1715 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 "" -#: library/inspect.rst:1715 +#: library/inspect.rst:1723 msgid "" "The flag is set when there is a docstring for the code object in the source " "code. If set, it will be the first item in :attr:`~codeobject.co_consts`." msgstr "" -#: library/inspect.rst:1723 +#: library/inspect.rst:1731 msgid "" "The flag is set when the code object is a function defined in class scope." msgstr "" -#: library/inspect.rst:1729 +#: library/inspect.rst:1737 msgid "" "The flags are specific to CPython, and may not be defined in other Python " "implementations. Furthermore, the flags are an implementation detail, and " @@ -2225,39 +2239,39 @@ msgid "" "use public APIs from the :mod:`inspect` module for any introspection needs." msgstr "" -#: library/inspect.rst:1737 +#: library/inspect.rst:1745 msgid "Buffer flags" msgstr "" -#: library/inspect.rst:1741 +#: library/inspect.rst:1749 msgid "" "This is an :class:`enum.IntFlag` that represents the flags that can be " "passed to the :meth:`~object.__buffer__` method of objects implementing the :" "ref:`buffer protocol `." msgstr "" -#: library/inspect.rst:1745 +#: library/inspect.rst:1753 msgid "The meaning of the flags is explained at :ref:`buffer-request-types`." msgstr "" -#: library/inspect.rst:1772 -msgid "Command Line Interface" +#: library/inspect.rst:1780 +msgid "Command-line interface" msgstr "" -#: library/inspect.rst:1774 +#: library/inspect.rst:1782 msgid "" "The :mod:`inspect` module also provides a basic introspection capability " "from the command line." msgstr "" -#: library/inspect.rst:1779 +#: library/inspect.rst:1787 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 "" -#: library/inspect.rst:1785 +#: library/inspect.rst:1793 msgid "" "Print information about the specified object rather than the source code" msgstr "" diff --git a/library/internet.po b/library/internet.po index 6ce81280..46f1123e 100644 --- a/library/internet.po +++ b/library/internet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-12-15 13:44+0000\n" "Last-Translator: Artemis Leonardou \n" "Language-Team: PyGreece \n" diff --git a/library/intro.po b/library/intro.po index bbf29ad4..8fe57716 100644 --- a/library/intro.po +++ b/library/intro.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/io.po b/library/io.po index 1f062431..1504c640 100644 --- a/library/io.po +++ b/library/io.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/ipaddress.po b/library/ipaddress.po index 75566b92..37c8cc42 100644 --- a/library/ipaddress.po +++ b/library/ipaddress.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -304,27 +304,44 @@ msgid "" msgstr "" #: library/ipaddress.rst:243 -msgid "``True`` if the address is otherwise IETF reserved." +msgid "" +"``True`` if the address is noted as reserved by the IETF. For IPv4, this is " +"only ``240.0.0.0/4``, the ``Reserved`` address block. For IPv6, this is all " +"addresses `allocated `__ as ``Reserved by IETF`` " +"for future use." +msgstr "" + +#: library/ipaddress.rst:248 +msgid "" +"For IPv4, ``is_reserved`` is not related to the address block value of the " +"``Reserved-by-Protocol`` column in iana-ipv4-special-registry_." msgstr "" -#: library/ipaddress.rst:247 +#: library/ipaddress.rst:251 +msgid "" +"For IPv6, ``fec0::/10`` a former Site-Local scoped address prefix is " +"currently excluded from that list (see :attr:`~IPv6Address.is_site_local` & :" +"rfc:`3879`)." +msgstr "" + +#: library/ipaddress.rst:256 msgid "" "``True`` if this is a loopback address. See :RFC:`3330` (for IPv4) or :RFC:" "`2373` (for IPv6)." msgstr "" -#: library/ipaddress.rst:252 +#: library/ipaddress.rst:261 msgid "" "``True`` if the address is reserved for link-local usage. See :RFC:`3927`." msgstr "" -#: library/ipaddress.rst:257 +#: library/ipaddress.rst:266 msgid "" ":class:`IPv4Address` object representing the IPv4-mapped IPv6 address. See :" "RFC:`4291`." msgstr "" -#: library/ipaddress.rst:267 +#: library/ipaddress.rst:277 msgid "" "Returns a string representation of the IP address, controlled by an explicit " "format string. *fmt* can be one of the following: ``'s'``, the default " @@ -336,17 +353,17 @@ msgid "" "used by ``format``, ``str.format`` and f-strings." msgstr "" -#: library/ipaddress.rst:294 +#: library/ipaddress.rst:304 msgid "" "Construct an IPv6 address. An :exc:`AddressValueError` is raised if " "*address* is not a valid IPv6 address." msgstr "" -#: library/ipaddress.rst:297 +#: library/ipaddress.rst:307 msgid "The following constitutes a valid IPv6 address:" msgstr "" -#: library/ipaddress.rst:299 +#: library/ipaddress.rst:309 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 " @@ -356,7 +373,7 @@ msgid "" "to ``\"::abc:7:def\"``." msgstr "" -#: library/ipaddress.rst:307 +#: library/ipaddress.rst:317 msgid "" "Optionally, the string may also have a scope zone ID, expressed with a " "suffix ``%scope_id``. If present, the scope ID must be non-empty, and may " @@ -365,39 +382,39 @@ msgid "" "the node." msgstr "" -#: library/ipaddress.rst:312 +#: library/ipaddress.rst:322 msgid "An integer that fits into 128 bits." msgstr "" -#: library/ipaddress.rst:313 +#: library/ipaddress.rst:323 msgid "" "An integer packed into a :class:`bytes` object of length 16, big-endian." msgstr "" -#: library/ipaddress.rst:323 +#: library/ipaddress.rst:333 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 "" -#: library/ipaddress.rst:327 +#: library/ipaddress.rst:337 msgid "This is also the value returned by ``str(addr)`` for IPv6 addresses." msgstr "" -#: library/ipaddress.rst:331 +#: library/ipaddress.rst:341 msgid "" "The long form of the address representation, with all leading zeroes and " "groups consisting entirely of zeroes included." msgstr "" -#: library/ipaddress.rst:335 +#: library/ipaddress.rst:345 msgid "" "For the following attributes and methods, see the corresponding " "documentation of the :class:`IPv4Address` class:" msgstr "" -#: library/ipaddress.rst:355 +#: library/ipaddress.rst:365 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:" @@ -405,21 +422,21 @@ msgid "" "local addresses as defined by :RFC:`4193`." msgstr "" -#: library/ipaddress.rst:362 +#: library/ipaddress.rst:372 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 "" -#: library/ipaddress.rst:368 +#: library/ipaddress.rst:378 msgid "" "For scoped addresses as defined by :RFC:`4007`, this property identifies the " "particular zone of the address's scope that the address belongs to, as a " "string. When no scope zone is specified, this property will be ``None``." msgstr "" -#: library/ipaddress.rst:374 +#: library/ipaddress.rst:384 msgid "" "For addresses that appear to be 6to4 addresses (starting with " "``2002::/16``) as defined by :RFC:`3056`, this property will report the " @@ -427,7 +444,7 @@ msgid "" "``None``." msgstr "" -#: library/ipaddress.rst:381 +#: library/ipaddress.rst:391 msgid "" "For addresses that appear to be Teredo addresses (starting with " "``2001::/32``) as defined by :RFC:`4380`, this property will report the " @@ -435,23 +452,23 @@ msgid "" "property will be ``None``." msgstr "" -#: library/ipaddress.rst:388 +#: library/ipaddress.rst:398 msgid "" "Refer to the corresponding method documentation in :class:`IPv4Address`." msgstr "" -#: library/ipaddress.rst:394 +#: library/ipaddress.rst:404 msgid "Conversion to Strings and Integers" msgstr "" -#: library/ipaddress.rst:396 +#: library/ipaddress.rst:406 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 "" -#: library/ipaddress.rst:400 +#: library/ipaddress.rst:410 msgid "" ">>> str(ipaddress.IPv4Address('192.168.0.1'))\n" "'192.168.0.1'\n" @@ -463,35 +480,35 @@ msgid "" "1" msgstr "" -#: library/ipaddress.rst:409 +#: library/ipaddress.rst:419 msgid "" "Note that IPv6 scoped addresses are converted to integers without scope zone " "ID." msgstr "" -#: library/ipaddress.rst:797 library/ipaddress.rst:933 +#: library/ipaddress.rst:807 library/ipaddress.rst:943 msgid "Operators" msgstr "" -#: library/ipaddress.rst:415 +#: library/ipaddress.rst:425 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 "" -#: library/ipaddress.rst:421 +#: library/ipaddress.rst:431 msgid "Comparison operators" msgstr "" -#: library/ipaddress.rst:423 +#: library/ipaddress.rst:433 msgid "" "Address objects can be compared with the usual set of comparison operators. " "Same IPv6 addresses with different scope zone IDs are not equal. Some " "examples::" msgstr "" -#: library/ipaddress.rst:427 +#: library/ipaddress.rst:437 msgid "" ">>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')\n" "True\n" @@ -505,16 +522,16 @@ msgid "" "True" msgstr "" -#: library/ipaddress.rst:440 +#: library/ipaddress.rst:450 msgid "Arithmetic operators" msgstr "" -#: library/ipaddress.rst:442 +#: library/ipaddress.rst:452 msgid "" "Integers can be added to or subtracted from address objects. Some examples::" msgstr "" -#: library/ipaddress.rst:444 +#: library/ipaddress.rst:454 msgid "" ">>> IPv4Address('127.0.0.2') + 3\n" "IPv4Address('127.0.0.5')\n" @@ -527,11 +544,11 @@ msgid "" "IPv4 address" msgstr "" -#: library/ipaddress.rst:455 +#: library/ipaddress.rst:465 msgid "IP Network definitions" msgstr "" -#: library/ipaddress.rst:457 +#: library/ipaddress.rst:467 msgid "" "The :class:`IPv4Network` and :class:`IPv6Network` objects provide a " "mechanism for defining and inspecting IP network definitions. A network " @@ -542,11 +559,11 @@ msgid "" "addresses in the inclusive range ``192.168.1.0`` to ``192.168.1.255``." msgstr "" -#: library/ipaddress.rst:467 +#: library/ipaddress.rst:477 msgid "Prefix, net mask and host mask" msgstr "" -#: library/ipaddress.rst:469 +#: library/ipaddress.rst:479 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 " @@ -558,11 +575,11 @@ msgid "" "mask equivalent to ``/24`` in IPv4 is ``0.0.0.255``." msgstr "" -#: library/ipaddress.rst:480 +#: library/ipaddress.rst:490 msgid "Network objects" msgstr "" -#: library/ipaddress.rst:482 +#: library/ipaddress.rst:492 msgid "" "All attributes implemented by address objects are implemented by network " "objects as well. In addition, network objects implement additional " @@ -572,12 +589,12 @@ msgid "" "keys in dictionaries." msgstr "" -#: library/ipaddress.rst:491 +#: library/ipaddress.rst:501 msgid "" "Construct an IPv4 network definition. *address* can be one of the following:" msgstr "" -#: library/ipaddress.rst:493 +#: library/ipaddress.rst:503 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 " @@ -589,26 +606,26 @@ msgid "" "it's considered to be ``/32``." msgstr "" -#: library/ipaddress.rst:502 +#: library/ipaddress.rst:512 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 "" -#: library/ipaddress.rst:506 +#: library/ipaddress.rst:516 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 "" -#: library/ipaddress.rst:510 +#: library/ipaddress.rst:520 msgid "" "An integer packed into a :class:`bytes` object of length 4, big-endian. The " "interpretation is similar to an integer *address*." msgstr "" -#: library/ipaddress.rst:513 +#: library/ipaddress.rst:523 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, " @@ -617,92 +634,92 @@ msgid "" "representing the prefix mask (e.g. ``255.255.255.0``)." msgstr "" -#: library/ipaddress.rst:519 +#: library/ipaddress.rst:529 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 "" -#: library/ipaddress.rst:743 +#: library/ipaddress.rst:753 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 "" -#: library/ipaddress.rst:527 +#: library/ipaddress.rst:537 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 "" -#: library/ipaddress.rst:749 +#: library/ipaddress.rst:759 msgid "Added the two-tuple form for the *address* constructor parameter." msgstr "" -#: library/ipaddress.rst:538 +#: library/ipaddress.rst:548 msgid "" "Refer to the corresponding attribute documentation in :class:`IPv4Address`." msgstr "" -#: library/ipaddress.rst:548 +#: library/ipaddress.rst:558 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 "" -#: library/ipaddress.rst:553 +#: library/ipaddress.rst:563 msgid "" "The network address for the network. The network address and the prefix " "length together uniquely define a network." msgstr "" -#: library/ipaddress.rst:558 +#: library/ipaddress.rst:568 msgid "" "The broadcast address for the network. Packets sent to the broadcast address " "should be received by every host on the network." msgstr "" -#: library/ipaddress.rst:563 +#: library/ipaddress.rst:573 msgid "The host mask, as an :class:`IPv4Address` object." msgstr "" -#: library/ipaddress.rst:567 +#: library/ipaddress.rst:577 msgid "The net mask, as an :class:`IPv4Address` object." msgstr "" -#: library/ipaddress.rst:573 +#: library/ipaddress.rst:583 msgid "" "A string representation of the network, with the mask in prefix notation." msgstr "" -#: library/ipaddress.rst:576 +#: library/ipaddress.rst:586 msgid "" "``with_prefixlen`` and ``compressed`` are always the same as " "``str(network)``. ``exploded`` uses the exploded form the network address." msgstr "" -#: library/ipaddress.rst:582 +#: library/ipaddress.rst:592 msgid "" "A string representation of the network, with the mask in net mask notation." msgstr "" -#: library/ipaddress.rst:587 +#: library/ipaddress.rst:597 msgid "" "A string representation of the network, with the mask in host mask notation." msgstr "" -#: library/ipaddress.rst:592 +#: library/ipaddress.rst:602 msgid "The total number of addresses in the network." msgstr "" -#: library/ipaddress.rst:596 +#: library/ipaddress.rst:606 msgid "Length of the network prefix, in bits." msgstr "" -#: library/ipaddress.rst:600 +#: library/ipaddress.rst:610 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 " @@ -712,20 +729,20 @@ msgid "" "containing the single host address." msgstr "" -#: library/ipaddress.rst:618 +#: library/ipaddress.rst:628 msgid "" "``True`` if this network is partly or wholly contained in *other* or *other* " "is wholly contained in this network." msgstr "" -#: library/ipaddress.rst:623 +#: library/ipaddress.rst:633 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 "" -#: library/ipaddress.rst:636 +#: library/ipaddress.rst:646 msgid "" "The subnets that join to make the current network definition, depending on " "the argument values. *prefixlen_diff* is the amount our prefix length " @@ -735,7 +752,7 @@ msgid "" "network objects." msgstr "" -#: library/ipaddress.rst:661 +#: library/ipaddress.rst:671 msgid "" "The supernet containing this network definition, depending on the argument " "values. *prefixlen_diff* is the amount our prefix length should be " @@ -744,33 +761,33 @@ msgid "" "*new_prefix* must be set. Returns a single network object." msgstr "" -#: library/ipaddress.rst:677 +#: library/ipaddress.rst:687 msgid "Return ``True`` if this network is a subnet of *other*." msgstr "" -#: library/ipaddress.rst:688 +#: library/ipaddress.rst:698 msgid "Return ``True`` if this network is a supernet of *other*." msgstr "" -#: library/ipaddress.rst:699 +#: library/ipaddress.rst:709 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 "" -#: library/ipaddress.rst:710 +#: library/ipaddress.rst:720 msgid "" "It uses the same ordering and comparison algorithm as \"<\", \"==\", and " "\">\"" msgstr "" -#: library/ipaddress.rst:716 +#: library/ipaddress.rst:726 msgid "" "Construct an IPv6 network definition. *address* can be one of the following:" msgstr "" -#: library/ipaddress.rst:718 +#: library/ipaddress.rst:728 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 " @@ -778,26 +795,26 @@ msgid "" "length is provided, it's considered to be ``/128``." msgstr "" -#: library/ipaddress.rst:723 +#: library/ipaddress.rst:733 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::`` is not." msgstr "" -#: library/ipaddress.rst:727 +#: library/ipaddress.rst:737 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 "" -#: library/ipaddress.rst:731 +#: library/ipaddress.rst:741 msgid "" "An integer packed into a :class:`bytes` object of length 16, big-endian. The " "interpretation is similar to an integer *address*." msgstr "" -#: library/ipaddress.rst:734 +#: library/ipaddress.rst:744 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 " @@ -805,14 +822,14 @@ msgid "" "integer representing the prefix length." msgstr "" -#: library/ipaddress.rst:739 +#: library/ipaddress.rst:749 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 "" -#: library/ipaddress.rst:772 +#: library/ipaddress.rst:782 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-" @@ -821,46 +838,46 @@ msgid "" "of 128 will return a list containing the single host address." msgstr "" -#: library/ipaddress.rst:787 +#: library/ipaddress.rst:797 msgid "" "Refer to the corresponding attribute documentation in :class:`IPv4Network`." msgstr "" -#: library/ipaddress.rst:792 +#: library/ipaddress.rst:802 msgid "" "This attribute is true for the network as a whole if it is true for both the " "network address and the broadcast address." msgstr "" -#: library/ipaddress.rst:799 +#: library/ipaddress.rst:809 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 "" -#: library/ipaddress.rst:941 +#: library/ipaddress.rst:951 msgid "Logical operators" msgstr "" -#: library/ipaddress.rst:807 +#: library/ipaddress.rst:817 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 "" -#: library/ipaddress.rst:812 +#: library/ipaddress.rst:822 msgid "Iteration" msgstr "" -#: library/ipaddress.rst:814 +#: library/ipaddress.rst:824 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 "" -#: library/ipaddress.rst:819 +#: library/ipaddress.rst:829 msgid "" ">>> for addr in IPv4Network('192.0.2.0/28'):\n" "... addr\n" @@ -883,15 +900,15 @@ msgid "" "IPv4Address('192.0.2.15')" msgstr "" -#: library/ipaddress.rst:841 +#: library/ipaddress.rst:851 msgid "Networks as containers of addresses" msgstr "" -#: library/ipaddress.rst:843 +#: library/ipaddress.rst:853 msgid "Network objects can act as containers of addresses. Some examples::" msgstr "" -#: library/ipaddress.rst:845 +#: library/ipaddress.rst:855 msgid "" ">>> IPv4Network('192.0.2.0/28')[0]\n" "IPv4Address('192.0.2.0')\n" @@ -903,92 +920,92 @@ msgid "" "False" msgstr "" -#: library/ipaddress.rst:856 +#: library/ipaddress.rst:866 msgid "Interface objects" msgstr "" -#: library/ipaddress.rst:858 +#: library/ipaddress.rst:868 msgid "" "Interface objects are :term:`hashable`, so they can be used as keys in " "dictionaries." msgstr "" -#: library/ipaddress.rst:863 +#: library/ipaddress.rst:873 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 "" -#: library/ipaddress.rst:867 +#: library/ipaddress.rst:877 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 "" -#: library/ipaddress.rst:873 +#: library/ipaddress.rst:883 msgid "The address (:class:`IPv4Address`) without network information." msgstr "" -#: library/ipaddress.rst:881 +#: library/ipaddress.rst:891 msgid "The network (:class:`IPv4Network`) this interface belongs to." msgstr "" -#: library/ipaddress.rst:889 +#: library/ipaddress.rst:899 msgid "" "A string representation of the interface with the mask in prefix notation." msgstr "" -#: library/ipaddress.rst:897 +#: library/ipaddress.rst:907 msgid "" "A string representation of the interface with the network as a net mask." msgstr "" -#: library/ipaddress.rst:905 +#: library/ipaddress.rst:915 msgid "" "A string representation of the interface with the network as a host mask." msgstr "" -#: library/ipaddress.rst:914 +#: library/ipaddress.rst:924 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 "" -#: library/ipaddress.rst:918 +#: library/ipaddress.rst:928 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 "" -#: library/ipaddress.rst:928 +#: library/ipaddress.rst:938 msgid "" "Refer to the corresponding attribute documentation in :class:`IPv4Interface`." msgstr "" -#: library/ipaddress.rst:935 +#: library/ipaddress.rst:945 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 "" -#: library/ipaddress.rst:943 +#: library/ipaddress.rst:953 msgid "" "Interface objects can be compared with the usual set of logical operators." msgstr "" -#: library/ipaddress.rst:945 +#: library/ipaddress.rst:955 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 "" -#: library/ipaddress.rst:949 +#: library/ipaddress.rst:959 msgid "" "For ordering (``<``, ``>``, etc) the rules are different. Interface and " "address objects with the same IP version can be compared, and the address " @@ -997,15 +1014,15 @@ msgid "" "then by their IP addresses." msgstr "" -#: library/ipaddress.rst:957 +#: library/ipaddress.rst:967 msgid "Other Module Level Functions" msgstr "" -#: library/ipaddress.rst:959 +#: library/ipaddress.rst:969 msgid "The module also provides the following module level functions:" msgstr "" -#: library/ipaddress.rst:963 +#: library/ipaddress.rst:973 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:" @@ -1013,7 +1030,7 @@ msgid "" "IP address." msgstr "" -#: library/ipaddress.rst:976 +#: library/ipaddress.rst:986 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:" @@ -1021,7 +1038,7 @@ msgid "" "IP address." msgstr "" -#: library/ipaddress.rst:984 +#: library/ipaddress.rst:994 msgid "" "Return an iterator of the summarized network range given the first and last " "IP addresses. *first* is the first :class:`IPv4Address` or :class:" @@ -1032,7 +1049,7 @@ msgid "" "address version is not 4 or 6." msgstr "" -#: library/ipaddress.rst:1000 +#: library/ipaddress.rst:1010 msgid "" "Return an iterator of the collapsed :class:`IPv4Network` or :class:" "`IPv6Network` objects. *addresses* is an :term:`iterable` of :class:" @@ -1040,42 +1057,42 @@ msgid "" "if *addresses* contains mixed version objects." msgstr "" -#: library/ipaddress.rst:1013 +#: library/ipaddress.rst:1023 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 "" -#: library/ipaddress.rst:1017 +#: library/ipaddress.rst:1027 msgid "IPv4Address('192.0.2.0') <= IPv4Network('192.0.2.0/24')" msgstr "" -#: library/ipaddress.rst:1019 +#: library/ipaddress.rst:1029 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 "" -#: library/ipaddress.rst:1023 +#: library/ipaddress.rst:1033 msgid "*obj* is either a network or address object." msgstr "" -#: library/ipaddress.rst:1027 +#: library/ipaddress.rst:1037 msgid "Custom Exceptions" msgstr "" -#: library/ipaddress.rst:1029 +#: library/ipaddress.rst:1039 msgid "" "To support more specific error reporting from class constructors, the module " "defines the following exceptions:" msgstr "" -#: library/ipaddress.rst:1034 +#: library/ipaddress.rst:1044 msgid "Any value error related to the address." msgstr "" -#: library/ipaddress.rst:1039 +#: library/ipaddress.rst:1049 msgid "Any value error related to the net mask." msgstr "" diff --git a/library/ipc.po b/library/ipc.po index 6ef8626a..42eb6d80 100644 --- a/library/ipc.po +++ b/library/ipc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/itertools.po b/library/itertools.po index 2ecfe350..147fb1ac 100644 --- a/library/itertools.po +++ b/library/itertools.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -145,7 +145,7 @@ msgid "(p0, p1, ..., p_n-1), ..." msgstr "" #: library/itertools.rst:50 -msgid "``batched('ABCDEFG', n=3) → ABC DEF G``" +msgid "``batched('ABCDEFG', n=2) → AB CD EF G``" msgstr "" #: library/itertools.rst:51 @@ -529,7 +529,7 @@ msgstr "" #: library/itertools.rst:183 msgid "" "def batched(iterable, n, *, strict=False):\n" -" # batched('ABCDEFG', 3) → ABC DEF G\n" +" # batched('ABCDEFG', 2) → AB CD EF G\n" " if n < 1:\n" " raise ValueError('n must be at least one')\n" " iterator = iter(iterable)\n" diff --git a/library/json.po b/library/json.po index 4330cd8c..2c66c598 100644 --- a/library/json.po +++ b/library/json.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -255,18 +255,20 @@ msgstr "" #: library/json.rst:184 msgid "" "If ``True`` (the default), the output is guaranteed to have all incoming non-" -"ASCII characters escaped. If ``False``, these characters will be outputted " -"as-is." +"ASCII and non-printable characters escaped. If ``False``, all characters " +"will be outputted as-is, except for the characters that must be escaped: " +"quotation mark, reverse solidus, and the control characters U+0000 through " +"U+001F." msgstr "" -#: library/json.rst:189 +#: library/json.rst:191 msgid "" "If ``False``, the circular reference check for container types is skipped " "and a circular reference will result in a :exc:`RecursionError` (or worse). " "Default ``True``." msgstr "" -#: library/json.rst:194 +#: library/json.rst:196 msgid "" "If ``False``, serialization of out-of-range :class:`float` values (``nan``, " "``inf``, ``-inf``) will result in a :exc:`ValueError`, in strict compliance " @@ -274,14 +276,14 @@ msgid "" "equivalents (``NaN``, ``Infinity``, ``-Infinity``) are used." msgstr "" -#: library/json.rst:201 +#: library/json.rst:203 msgid "" "If set, a custom JSON encoder with the :meth:`~JSONEncoder.default` method " "overridden, for serializing into custom datatypes. If ``None`` (the " "default), :class:`!JSONEncoder` is used." msgstr "" -#: library/json.rst:208 +#: library/json.rst:210 msgid "" "If a positive integer or string, JSON array elements and object members will " "be pretty-printed with that indent level. A positive integer indents that " @@ -290,7 +292,7 @@ msgid "" "inserted. If ``None`` (the default), the most compact representation is used." msgstr "" -#: library/json.rst:218 +#: library/json.rst:220 msgid "" "A two-tuple: ``(item_separator, key_separator)``. If ``None`` (the default), " "*separators* defaults to ``(', ', ': ')`` if *indent* is ``None``, and " @@ -298,39 +300,39 @@ msgid "" "to eliminate whitespace." msgstr "" -#: library/json.rst:227 +#: library/json.rst:229 msgid "" "A function that is 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 ``None`` (the default), :exc:`!TypeError` is raised." msgstr "" -#: library/json.rst:234 +#: library/json.rst:236 msgid "" "If ``True``, dictionaries will be outputted sorted by key. Default ``False``." msgstr "" -#: library/json.rst:523 +#: library/json.rst:527 msgid "Allow strings for *indent* in addition to integers." msgstr "" -#: library/json.rst:531 +#: library/json.rst:535 msgid "Use ``(',', ': ')`` as default if *indent* is not ``None``." msgstr "" -#: library/json.rst:343 +#: library/json.rst:345 msgid "" "All optional parameters are now :ref:`keyword-only `." msgstr "" -#: library/json.rst:253 +#: library/json.rst:255 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 "" -#: library/json.rst:259 +#: library/json.rst:261 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 " @@ -339,26 +341,26 @@ msgid "" "original one. That is, ``loads(dumps(x)) != x`` if x has non-string keys." msgstr "" -#: library/json.rst:270 +#: library/json.rst:272 msgid "" "Deserialize *fp* to a Python object using the :ref:`JSON-to-Python " "conversion table `." msgstr "" -#: library/json.rst:273 +#: library/json.rst:275 msgid "" "A ``.read()``-supporting :term:`text file` or :term:`binary file` containing " "the JSON document to be deserialized." msgstr "" -#: library/json.rst:278 +#: library/json.rst:280 msgid "" "If set, a custom JSON decoder. Additional keyword arguments to :func:`!load` " "will be passed to the constructor of *cls*. If ``None`` (the default), :" "class:`!JSONDecoder` is used." msgstr "" -#: library/json.rst:285 +#: library/json.rst:287 msgid "" "If set, a function that is called with the result of any JSON object literal " "decoded (a :class:`dict`). The return value of this function will be used " @@ -367,7 +369,7 @@ msgid "" "Default ``None``." msgstr "" -#: library/json.rst:295 +#: library/json.rst:297 msgid "" "If set, a function that is called with the result of any JSON object literal " "decoded with an ordered list of pairs. The return value of this function " @@ -376,7 +378,7 @@ msgid "" "takes priority. Default ``None``." msgstr "" -#: library/json.rst:305 +#: library/json.rst:307 msgid "" "If set, a function that is called with the string of every JSON float to be " "decoded. If ``None`` (the default), it is equivalent to ``float(num_str)``. " @@ -384,7 +386,7 @@ msgid "" "class:`decimal.Decimal`." msgstr "" -#: library/json.rst:313 +#: library/json.rst:315 msgid "" "If set, a function that is called with the string of every JSON int to be " "decoded. If ``None`` (the default), it is equivalent to ``int(num_str)``. " @@ -392,7 +394,7 @@ msgid "" "class:`float`." msgstr "" -#: library/json.rst:321 +#: library/json.rst:323 msgid "" "If set, a function that is called with one of the following strings: ``'-" "Infinity'``, ``'Infinity'``, or ``'NaN'``. This can be used to raise an " @@ -403,38 +405,38 @@ msgstr "" msgid "Raises" msgstr "" -#: library/json.rst:329 +#: library/json.rst:331 msgid "When the data being deserialized is not a valid JSON document." msgstr "" -#: library/json.rst:332 +#: library/json.rst:334 msgid "" "When the data being deserialized does not contain UTF-8, UTF-16 or UTF-32 " "encoded data." msgstr "" -#: library/json.rst:338 +#: library/json.rst:340 msgid "Added the optional *object_pairs_hook* parameter." msgstr "" -#: library/json.rst:339 +#: library/json.rst:341 msgid "*parse_constant* doesn't get called on 'null', 'true', 'false' anymore." msgstr "" -#: library/json.rst:344 +#: library/json.rst:346 msgid "" "*fp* can now be a :term:`binary file`. The input encoding should be UTF-8, " "UTF-16 or UTF-32." msgstr "" -#: library/json.rst:347 +#: library/json.rst:349 msgid "" "The default *parse_int* of :func:`int` now limits the maximum length of the " "integer string via the interpreter's :ref:`integer string conversion length " "limitation ` to help avoid denial of service attacks." msgstr "" -#: library/json.rst:355 +#: library/json.rst:357 msgid "" "Identical to :func:`load`, but instead of a file-like object, deserialize " "*s* (a :class:`str`, :class:`bytes` or :class:`bytearray` instance " @@ -442,107 +444,107 @@ msgid "" "table `." msgstr "" -#: library/json.rst:360 +#: library/json.rst:362 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 "" -#: library/json.rst:364 +#: library/json.rst:366 msgid "The keyword argument *encoding* has been removed." msgstr "" -#: library/json.rst:369 +#: library/json.rst:371 msgid "Encoders and Decoders" msgstr "" -#: library/json.rst:373 +#: library/json.rst:375 msgid "Simple JSON decoder." msgstr "" -#: library/json.rst:375 +#: library/json.rst:377 msgid "Performs the following translations in decoding by default:" msgstr "" -#: library/json.rst:468 +#: library/json.rst:470 msgid "JSON" msgstr "" -#: library/json.rst:468 +#: library/json.rst:470 msgid "Python" msgstr "" -#: library/json.rst:470 +#: library/json.rst:472 msgid "object" msgstr "" -#: library/json.rst:470 +#: library/json.rst:472 msgid "dict" msgstr "" -#: library/json.rst:472 +#: library/json.rst:474 msgid "array" msgstr "" -#: library/json.rst:384 +#: library/json.rst:386 msgid "list" msgstr "" -#: library/json.rst:474 +#: library/json.rst:476 msgid "string" msgstr "" -#: library/json.rst:474 +#: library/json.rst:476 msgid "str" msgstr "" -#: library/json.rst:388 +#: library/json.rst:390 msgid "number (int)" msgstr "" -#: library/json.rst:388 +#: library/json.rst:390 msgid "int" msgstr "" -#: library/json.rst:390 +#: library/json.rst:392 msgid "number (real)" msgstr "" -#: library/json.rst:390 +#: library/json.rst:392 msgid "float" msgstr "" -#: library/json.rst:478 +#: library/json.rst:480 msgid "true" msgstr "" -#: library/json.rst:478 +#: library/json.rst:480 msgid "True" msgstr "" -#: library/json.rst:480 +#: library/json.rst:482 msgid "false" msgstr "" -#: library/json.rst:480 +#: library/json.rst:482 msgid "False" msgstr "" -#: library/json.rst:482 +#: library/json.rst:484 msgid "null" msgstr "" -#: library/json.rst:482 +#: library/json.rst:484 msgid "None" msgstr "" -#: library/json.rst:399 +#: library/json.rst:401 msgid "" "It also understands ``NaN``, ``Infinity``, and ``-Infinity`` as their " "corresponding ``float`` values, which is outside the JSON spec." msgstr "" -#: library/json.rst:402 +#: library/json.rst:404 msgid "" "*object_hook* is an optional function that will be called with the result of " "every JSON object decoded and its return value will be used in place of the " @@ -550,7 +552,7 @@ msgid "" "g. to support `JSON-RPC `_ class hinting)." msgstr "" -#: library/json.rst:407 +#: library/json.rst:409 msgid "" "*object_pairs_hook* is an optional function that will be called with the " "result of every JSON object decoded with an ordered list of pairs. The " @@ -559,11 +561,11 @@ msgid "" "*object_hook* is also defined, the *object_pairs_hook* takes priority." msgstr "" -#: library/json.rst:413 +#: library/json.rst:415 msgid "Added support for *object_pairs_hook*." msgstr "" -#: library/json.rst:416 +#: library/json.rst:418 msgid "" "*parse_float* is an optional function that will be called with the string of " "every JSON float to be decoded. By default, this is equivalent to " @@ -571,7 +573,7 @@ msgid "" "JSON floats (e.g. :class:`decimal.Decimal`)." msgstr "" -#: library/json.rst:421 +#: library/json.rst:423 msgid "" "*parse_int* is an optional function that will be called with the string of " "every JSON int to be decoded. By default, this is equivalent to " @@ -579,14 +581,14 @@ msgid "" "JSON integers (e.g. :class:`float`)." msgstr "" -#: library/json.rst:426 +#: library/json.rst:428 msgid "" "*parse_constant* is an optional function that 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 "" -#: library/json.rst:430 +#: library/json.rst:432 msgid "" "If *strict* is false (``True`` is the default), then control characters will " "be allowed inside strings. Control characters in this context are those " @@ -594,66 +596,66 @@ msgid "" "``'\\n'``, ``'\\r'`` and ``'\\0'``." msgstr "" -#: library/json.rst:435 +#: library/json.rst:437 msgid "" "If the data being deserialized is not a valid JSON document, a :exc:" "`JSONDecodeError` will be raised." msgstr "" -#: library/json.rst:539 +#: library/json.rst:543 msgid "All parameters are now :ref:`keyword-only `." msgstr "" -#: library/json.rst:443 +#: library/json.rst:445 msgid "" "Return the Python representation of *s* (a :class:`str` instance containing " "a JSON document)." msgstr "" -#: library/json.rst:446 +#: library/json.rst:448 msgid "" ":exc:`JSONDecodeError` will be raised if the given JSON document is not " "valid." msgstr "" -#: library/json.rst:451 +#: library/json.rst:453 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 "" -#: library/json.rst:455 +#: library/json.rst:457 msgid "" "This can be used to decode a JSON document from a string that may have " "extraneous data at the end." msgstr "" -#: library/json.rst:461 +#: library/json.rst:463 msgid "Extensible JSON encoder for Python data structures." msgstr "" -#: library/json.rst:463 +#: library/json.rst:465 msgid "Supports the following objects and types by default:" msgstr "" -#: library/json.rst:472 +#: library/json.rst:474 msgid "list, tuple" msgstr "" -#: library/json.rst:476 +#: library/json.rst:478 msgid "int, float, int- & float-derived Enums" msgstr "" -#: library/json.rst:476 +#: library/json.rst:478 msgid "number" msgstr "" -#: library/json.rst:485 +#: library/json.rst:487 msgid "Added support for int- and float-derived Enum classes." msgstr "" -#: library/json.rst:488 +#: library/json.rst:490 msgid "" "To extend this to recognize other objects, subclass and implement a :meth:" "`~JSONEncoder.default` method with another method that returns a " @@ -661,7 +663,7 @@ msgid "" "superclass implementation (to raise :exc:`TypeError`)." msgstr "" -#: library/json.rst:493 +#: library/json.rst:495 msgid "" "If *skipkeys* is false (the default), a :exc:`TypeError` will be raised when " "trying to encode keys that are not :class:`str`, :class:`int`, :class:" @@ -669,14 +671,16 @@ msgid "" "simply skipped." msgstr "" -#: library/json.rst:497 +#: library/json.rst:499 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." +"all incoming non-ASCII and non-printable characters escaped. If " +"*ensure_ascii* is false, all characters will be output as-is, except for the " +"characters that must be escaped: quotation mark, reverse solidus, and the " +"control characters U+0000 through U+001F." msgstr "" -#: library/json.rst:501 +#: library/json.rst:505 msgid "" "If *check_circular* is true (the default), then lists, dicts, and custom " "encoded objects will be checked for circular references during encoding to " @@ -684,7 +688,7 @@ msgid "" "Otherwise, no such check takes place." msgstr "" -#: library/json.rst:506 +#: library/json.rst:510 msgid "" "If *allow_nan* is true (the default), then ``NaN``, ``Infinity``, and ``-" "Infinity`` will be encoded as such. This behavior is not JSON specification " @@ -692,14 +696,14 @@ msgid "" "decoders. Otherwise, it will be a :exc:`ValueError` to encode such floats." msgstr "" -#: library/json.rst:512 +#: library/json.rst:516 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 "" -#: library/json.rst:516 +#: library/json.rst:520 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 " @@ -709,7 +713,7 @@ msgid "" "``\"\\t\"``), that string is used to indent each level." msgstr "" -#: library/json.rst:526 +#: library/json.rst:530 msgid "" "If specified, *separators* should be an ``(item_separator, key_separator)`` " "tuple. The default is ``(', ', ': ')`` if *indent* is ``None`` and ``(',', " @@ -717,7 +721,7 @@ msgid "" "specify ``(',', ':')`` to eliminate whitespace." msgstr "" -#: library/json.rst:534 +#: library/json.rst:538 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 " @@ -725,20 +729,20 @@ msgid "" "`TypeError` is raised." msgstr "" -#: library/json.rst:545 +#: library/json.rst:549 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 "" -#: library/json.rst:549 +#: library/json.rst:553 msgid "" "For example, to support arbitrary iterators, you could implement :meth:" "`~JSONEncoder.default` like this::" msgstr "" -#: library/json.rst:552 +#: library/json.rst:556 msgid "" "def default(self, o):\n" " try:\n" @@ -751,63 +755,63 @@ msgid "" " return super().default(o)" msgstr "" -#: library/json.rst:565 +#: library/json.rst:569 msgid "" "Return a JSON string representation of a Python data structure, *o*. For " "example::" msgstr "" -#: library/json.rst:568 +#: library/json.rst:572 msgid "" ">>> json.JSONEncoder().encode({\"foo\": [\"bar\", \"baz\"]})\n" "'{\"foo\": [\"bar\", \"baz\"]}'" msgstr "" -#: library/json.rst:574 +#: library/json.rst:578 msgid "" "Encode the given object, *o*, and yield each string representation as " "available. For example::" msgstr "" -#: library/json.rst:577 +#: library/json.rst:581 msgid "" "for chunk in json.JSONEncoder().iterencode(bigobject):\n" " mysocket.write(chunk)" msgstr "" -#: library/json.rst:582 +#: library/json.rst:586 msgid "Exceptions" msgstr "" -#: library/json.rst:586 +#: library/json.rst:590 msgid "Subclass of :exc:`ValueError` with the following additional attributes:" msgstr "" -#: library/json.rst:590 +#: library/json.rst:594 msgid "The unformatted error message." msgstr "" -#: library/json.rst:594 +#: library/json.rst:598 msgid "The JSON document being parsed." msgstr "" -#: library/json.rst:598 +#: library/json.rst:602 msgid "The start index of *doc* where parsing failed." msgstr "" -#: library/json.rst:602 +#: library/json.rst:606 msgid "The line corresponding to *pos*." msgstr "" -#: library/json.rst:606 +#: library/json.rst:610 msgid "The column corresponding to *pos*." msgstr "" -#: library/json.rst:612 +#: library/json.rst:616 msgid "Standard Compliance and Interoperability" msgstr "" -#: library/json.rst:614 +#: library/json.rst:618 msgid "" "The JSON format is specified by :rfc:`7159` and by `ECMA-404 `_. This " @@ -816,48 +820,48 @@ msgid "" "parameters other than those explicitly mentioned, are not considered." msgstr "" -#: library/json.rst:620 +#: library/json.rst:624 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 "" -#: library/json.rst:623 +#: library/json.rst:627 msgid "Infinite and NaN number values are accepted and output;" msgstr "" -#: library/json.rst:624 +#: library/json.rst:628 msgid "" "Repeated names within an object are accepted, and only the value of the last " "name-value pair is used." msgstr "" -#: library/json.rst:627 +#: library/json.rst:631 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 "" -#: library/json.rst:632 +#: library/json.rst:636 msgid "Character Encodings" msgstr "" -#: library/json.rst:634 +#: library/json.rst:638 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 "" -#: library/json.rst:637 +#: library/json.rst:641 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." +"resulting strings only contain printable ASCII characters." msgstr "" -#: library/json.rst:641 +#: library/json.rst:645 msgid "" "Other than the *ensure_ascii* parameter, this module is defined strictly in " "terms of conversion between Python objects and :class:`Unicode strings " @@ -865,7 +869,7 @@ msgid "" "encodings." msgstr "" -#: library/json.rst:646 +#: library/json.rst:650 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 " @@ -874,7 +878,7 @@ msgid "" "an initial BOM is present." msgstr "" -#: library/json.rst:652 +#: library/json.rst:656 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 " @@ -883,18 +887,18 @@ msgid "" "class:`str`) code points for such sequences." msgstr "" -#: library/json.rst:660 +#: library/json.rst:664 msgid "Infinite and NaN Number Values" msgstr "" -#: library/json.rst:662 +#: library/json.rst:666 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 "" -#: library/json.rst:666 +#: library/json.rst:670 msgid "" ">>> # Neither of these calls raises an exception, but the results are not " "valid JSON\n" @@ -909,18 +913,18 @@ msgid "" "nan" msgstr "" -#: library/json.rst:677 +#: library/json.rst:681 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 "" -#: library/json.rst:683 +#: library/json.rst:687 msgid "Repeated Names Within an Object" msgstr "" -#: library/json.rst:685 +#: library/json.rst:689 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 " @@ -928,22 +932,22 @@ msgid "" "but the last name-value pair for a given name::" msgstr "" -#: library/json.rst:690 +#: library/json.rst:694 msgid "" ">>> weird_json = '{\"x\": 1, \"x\": 2, \"x\": 3}'\n" ">>> json.loads(weird_json)\n" "{'x': 3}" msgstr "" -#: library/json.rst:694 +#: library/json.rst:698 msgid "The *object_pairs_hook* parameter can be used to alter this behavior." msgstr "" -#: library/json.rst:698 +#: library/json.rst:702 msgid "Top-level Non-Object, Non-Array Values" msgstr "" -#: library/json.rst:700 +#: library/json.rst:704 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 " @@ -953,43 +957,43 @@ msgid "" "its serializer or its deserializer." msgstr "" -#: library/json.rst:707 +#: library/json.rst:711 msgid "" "Regardless, for maximum interoperability, you may wish to voluntarily adhere " "to the restriction yourself." msgstr "" -#: library/json.rst:712 +#: library/json.rst:716 msgid "Implementation Limitations" msgstr "" -#: library/json.rst:714 +#: library/json.rst:718 msgid "Some JSON deserializer implementations may set limits on:" msgstr "" -#: library/json.rst:716 +#: library/json.rst:720 msgid "the size of accepted JSON texts" msgstr "" -#: library/json.rst:717 +#: library/json.rst:721 msgid "the maximum level of nesting of JSON objects and arrays" msgstr "" -#: library/json.rst:718 +#: library/json.rst:722 msgid "the range and precision of JSON numbers" msgstr "" -#: library/json.rst:719 +#: library/json.rst:723 msgid "the content and maximum length of JSON strings" msgstr "" -#: library/json.rst:721 +#: library/json.rst:725 msgid "" "This module does not impose any such limits beyond those of the relevant " "Python datatypes themselves or the Python interpreter itself." msgstr "" -#: library/json.rst:724 +#: library/json.rst:728 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 " @@ -1000,28 +1004,28 @@ msgid "" "as :class:`decimal.Decimal`." msgstr "" -#: library/json.rst:737 +#: library/json.rst:741 msgid "Command-line interface" msgstr "" -#: library/json.rst:742 +#: library/json.rst:746 msgid "**Source code:** :source:`Lib/json/tool.py`" msgstr "" -#: library/json.rst:746 +#: library/json.rst:750 msgid "" "The :mod:`json` module can be invoked as a script via ``python -m json`` to " "validate and pretty-print JSON objects. The :mod:`json.tool` submodule " "implements this interface." msgstr "" -#: library/json.rst:750 +#: library/json.rst:754 msgid "" "If the optional ``infile`` and ``outfile`` arguments are not specified, :" "data:`sys.stdin` and :data:`sys.stdout` will be used respectively:" msgstr "" -#: library/json.rst:753 +#: library/json.rst:757 msgid "" "$ echo '{\"json\": \"obj\"}' | python -m json\n" "{\n" @@ -1031,28 +1035,28 @@ msgid "" "Expecting property name enclosed in double quotes: line 1 column 2 (char 1)" msgstr "" -#: library/json.rst:762 +#: library/json.rst:766 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 "" -#: library/json.rst:767 +#: library/json.rst:771 msgid "" "The :mod:`json` module may now be directly executed as ``python -m json``. " "For backwards compatibility, invoking the CLI as ``python -m json.tool`` " "remains supported." msgstr "" -#: library/json.rst:774 +#: library/json.rst:778 msgid "Command-line options" msgstr "" -#: library/json.rst:778 +#: library/json.rst:782 msgid "The JSON file to be validated or pretty-printed:" msgstr "" -#: library/json.rst:780 +#: library/json.rst:784 msgid "" "$ python -m json mp_films.json\n" "[\n" @@ -1067,43 +1071,43 @@ msgid "" "]" msgstr "" -#: library/json.rst:794 +#: library/json.rst:798 msgid "If *infile* is not specified, read from :data:`sys.stdin`." msgstr "" -#: library/json.rst:798 +#: library/json.rst:802 msgid "" "Write the output of the *infile* to the given *outfile*. Otherwise, write it " "to :data:`sys.stdout`." msgstr "" -#: library/json.rst:803 +#: library/json.rst:807 msgid "Sort the output of dictionaries alphabetically by key." msgstr "" -#: library/json.rst:809 +#: library/json.rst:813 msgid "" "Disable escaping of non-ascii characters, see :func:`json.dumps` for more " "information." msgstr "" -#: library/json.rst:815 +#: library/json.rst:819 msgid "Parse every input line as separate JSON object." msgstr "" -#: library/json.rst:821 +#: library/json.rst:825 msgid "Mutually exclusive options for whitespace control." msgstr "" -#: library/json.rst:827 +#: library/json.rst:831 msgid "Show the help message." msgstr "" -#: library/json.rst:831 +#: library/json.rst:835 msgid "Footnotes" msgstr "" -#: library/json.rst:832 +#: library/json.rst:836 msgid "" "As noted in `the errata for RFC 7159 `_, JSON permits literal U+2028 (LINE SEPARATOR) " diff --git a/library/keyword.po b/library/keyword.po index 65ebc628..2679bb63 100644 --- a/library/keyword.po +++ b/library/keyword.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/language.po b/library/language.po index d03310bf..3e1b4e70 100644 --- a/library/language.po +++ b/library/language.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/linecache.po b/library/linecache.po index 07604f0b..f9174a01 100644 --- a/library/linecache.po +++ b/library/linecache.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/locale.po b/library/locale.po index 2b8430ba..24df73c1 100644 --- a/library/locale.po +++ b/library/locale.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -53,33 +53,39 @@ msgstr "" 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." +"description below. *locale* may be a :ref:`string `, or a pair, " +"language code and encoding. 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 "" + +#: library/locale.rst:42 +msgid "" +"If *locale* is a pair, it is converted to a locale name using the locale " +"aliasing engine. The language code has the same format as a :ref:`locale " +"name `, but without encoding and ``@``-modifier. The language " +"code and encoding can be ``None``." msgstr "" -#: library/locale.rst:43 +#: library/locale.rst:48 msgid "" "If *locale* is omitted or ``None``, the current setting for *category* is " "returned." msgstr "" -#: library/locale.rst:46 +#: library/locale.rst:51 msgid "" ":func:`setlocale` is not thread-safe on most systems. Applications typically " "start with a call of ::" msgstr "" -#: library/locale.rst:49 +#: library/locale.rst:54 msgid "" "import locale\n" "locale.setlocale(locale.LC_ALL, '')" msgstr "" -#: library/locale.rst:52 +#: library/locale.rst:57 msgid "" "This sets the locale for all categories to the user's default setting " "(typically specified in the :envvar:`LANG` environment variable). If the " @@ -87,41 +93,41 @@ msgid "" "problems." msgstr "" -#: library/locale.rst:59 +#: library/locale.rst:64 msgid "" "Returns the database of the local conventions as a dictionary. This " "dictionary has the following strings as keys:" msgstr "" -#: library/locale.rst:65 +#: library/locale.rst:70 msgid "Category" msgstr "" -#: library/locale.rst:65 +#: library/locale.rst:70 msgid "Key" msgstr "" -#: library/locale.rst:65 +#: library/locale.rst:70 msgid "Meaning" msgstr "" -#: library/locale.rst:67 +#: library/locale.rst:72 msgid ":const:`LC_NUMERIC`" msgstr "" -#: library/locale.rst:67 +#: library/locale.rst:72 msgid "``'decimal_point'``" msgstr "" -#: library/locale.rst:67 +#: library/locale.rst:72 msgid "Decimal point character." msgstr "" -#: library/locale.rst:69 +#: library/locale.rst:74 msgid "``'grouping'``" msgstr "" -#: library/locale.rst:69 +#: library/locale.rst:74 msgid "" "Sequence of numbers specifying which relative positions the " "``'thousands_sep'`` is expected. If the sequence is terminated with :const:" @@ -129,204 +135,204 @@ msgid "" "with a ``0``, the last group size is repeatedly used." msgstr "" -#: library/locale.rst:80 +#: library/locale.rst:85 msgid "``'thousands_sep'``" msgstr "" -#: library/locale.rst:80 +#: library/locale.rst:85 msgid "Character used between groups." msgstr "" -#: library/locale.rst:82 +#: library/locale.rst:87 msgid ":const:`LC_MONETARY`" msgstr "" -#: library/locale.rst:82 +#: library/locale.rst:87 msgid "``'int_curr_symbol'``" msgstr "" -#: library/locale.rst:82 +#: library/locale.rst:87 msgid "International currency symbol." msgstr "" -#: library/locale.rst:84 +#: library/locale.rst:89 msgid "``'currency_symbol'``" msgstr "" -#: library/locale.rst:84 +#: library/locale.rst:89 msgid "Local currency symbol." msgstr "" -#: library/locale.rst:86 +#: library/locale.rst:91 msgid "``'p_cs_precedes/n_cs_precedes'``" msgstr "" -#: library/locale.rst:86 +#: library/locale.rst:91 msgid "" "Whether the currency symbol precedes the value (for positive resp. negative " "values)." msgstr "" -#: library/locale.rst:91 +#: library/locale.rst:96 msgid "``'p_sep_by_space/n_sep_by_space'``" msgstr "" -#: library/locale.rst:91 +#: library/locale.rst:96 msgid "" "Whether the currency symbol is separated from the value by a space (for " "positive resp. negative values)." msgstr "" -#: library/locale.rst:96 +#: library/locale.rst:101 msgid "``'mon_decimal_point'``" msgstr "" -#: library/locale.rst:96 +#: library/locale.rst:101 msgid "Decimal point used for monetary values." msgstr "" -#: library/locale.rst:99 +#: library/locale.rst:104 msgid "``'frac_digits'``" msgstr "" -#: library/locale.rst:99 +#: library/locale.rst:104 msgid "" "Number of fractional digits used in local formatting of monetary values." msgstr "" -#: library/locale.rst:103 +#: library/locale.rst:108 msgid "``'int_frac_digits'``" msgstr "" -#: library/locale.rst:103 +#: library/locale.rst:108 msgid "" "Number of fractional digits used in international formatting of monetary " "values." msgstr "" -#: library/locale.rst:107 +#: library/locale.rst:112 msgid "``'mon_thousands_sep'``" msgstr "" -#: library/locale.rst:107 +#: library/locale.rst:112 msgid "Group separator used for monetary values." msgstr "" -#: library/locale.rst:110 +#: library/locale.rst:115 msgid "``'mon_grouping'``" msgstr "" -#: library/locale.rst:110 +#: library/locale.rst:115 msgid "Equivalent to ``'grouping'``, used for monetary values." msgstr "" -#: library/locale.rst:113 +#: library/locale.rst:118 msgid "``'positive_sign'``" msgstr "" -#: library/locale.rst:113 +#: library/locale.rst:118 msgid "Symbol used to annotate a positive monetary value." msgstr "" -#: library/locale.rst:116 +#: library/locale.rst:121 msgid "``'negative_sign'``" msgstr "" -#: library/locale.rst:116 +#: library/locale.rst:121 msgid "Symbol used to annotate a negative monetary value." msgstr "" -#: library/locale.rst:119 +#: library/locale.rst:124 msgid "``'p_sign_posn/n_sign_posn'``" msgstr "" -#: library/locale.rst:119 +#: library/locale.rst:124 msgid "" "The position of the sign (for positive resp. negative values), see below." msgstr "" -#: library/locale.rst:124 +#: library/locale.rst:129 msgid "" "All numeric values can be set to :const:`CHAR_MAX` to indicate that there is " "no value specified in this locale." msgstr "" -#: library/locale.rst:127 +#: library/locale.rst:132 msgid "" "The possible values for ``'p_sign_posn'`` and ``'n_sign_posn'`` are given " "below." msgstr "" -#: library/locale.rst:130 +#: library/locale.rst:135 msgid "Value" msgstr "" -#: library/locale.rst:130 +#: library/locale.rst:135 msgid "Explanation" msgstr "" -#: library/locale.rst:132 +#: library/locale.rst:137 msgid "``0``" msgstr "" -#: library/locale.rst:132 +#: library/locale.rst:137 msgid "Currency and value are surrounded by parentheses." msgstr "" -#: library/locale.rst:135 +#: library/locale.rst:140 msgid "``1``" msgstr "" -#: library/locale.rst:135 +#: library/locale.rst:140 msgid "The sign should precede the value and currency symbol." msgstr "" -#: library/locale.rst:138 +#: library/locale.rst:143 msgid "``2``" msgstr "" -#: library/locale.rst:138 +#: library/locale.rst:143 msgid "The sign should follow the value and currency symbol." msgstr "" -#: library/locale.rst:141 +#: library/locale.rst:146 msgid "``3``" msgstr "" -#: library/locale.rst:141 +#: library/locale.rst:146 msgid "The sign should immediately precede the value." msgstr "" -#: library/locale.rst:144 +#: library/locale.rst:149 msgid "``4``" msgstr "" -#: library/locale.rst:144 +#: library/locale.rst:149 msgid "The sign should immediately follow the value." msgstr "" -#: library/locale.rst:147 +#: library/locale.rst:152 msgid "``CHAR_MAX``" msgstr "" -#: library/locale.rst:147 +#: library/locale.rst:152 msgid "Nothing is specified in this locale." msgstr "" -#: library/locale.rst:150 +#: library/locale.rst:155 msgid "" "The function temporarily sets 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 "" -#: library/locale.rst:154 +#: library/locale.rst:159 msgid "" "The function now temporarily sets the ``LC_CTYPE`` locale to the " "``LC_NUMERIC`` locale in some cases." msgstr "" -#: library/locale.rst:161 +#: library/locale.rst:166 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 " @@ -334,106 +340,106 @@ msgid "" "symbolic constants are available in the locale module." msgstr "" -#: library/locale.rst:166 +#: library/locale.rst:171 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 "" -#: library/locale.rst:172 +#: library/locale.rst:177 msgid "" "Get a string with the name of the character encoding used in the selected " "locale." msgstr "" -#: library/locale.rst:177 +#: library/locale.rst:182 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 "" -#: library/locale.rst:182 +#: library/locale.rst:187 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 "" -#: library/locale.rst:187 +#: library/locale.rst:192 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 "" -#: library/locale.rst:192 +#: library/locale.rst:197 msgid "" "Get a format string for :func:`time.strftime` to represent time in the am/pm " "format." msgstr "" -#: library/locale.rst:203 +#: library/locale.rst:208 msgid "Get the name of the n-th day of the week." msgstr "" -#: library/locale.rst:207 +#: library/locale.rst:212 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 "" -#: library/locale.rst:219 +#: library/locale.rst:224 msgid "Get the abbreviated name of the n-th day of the week." msgstr "" -#: library/locale.rst:234 +#: library/locale.rst:239 msgid "Get the name of the n-th month." msgstr "" -#: library/locale.rst:249 +#: library/locale.rst:254 msgid "Get the abbreviated name of the n-th month." msgstr "" -#: library/locale.rst:253 +#: library/locale.rst:258 msgid "Get the radix character (decimal dot, decimal comma, etc.)." msgstr "" -#: library/locale.rst:257 +#: library/locale.rst:262 msgid "Get the separator character for thousands (groups of three digits)." msgstr "" -#: library/locale.rst:261 +#: library/locale.rst:266 msgid "" "Get a regular expression that can be used with the regex function to " "recognize a positive response to a yes/no question." msgstr "" -#: library/locale.rst:266 +#: library/locale.rst:271 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 "" -#: library/locale.rst:271 +#: library/locale.rst:276 msgid "" "The regular expressions for :const:`YESEXPR` and :const:`NOEXPR` use syntax " "suitable for the ``regex`` function from the C library, which might differ " "from the syntax used in :mod:`re`." msgstr "" -#: library/locale.rst:278 +#: library/locale.rst:283 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 "" -#: library/locale.rst:284 +#: library/locale.rst:289 msgid "" "Get a string which describes how years are counted and displayed for each " "era in a locale." msgstr "" -#: library/locale.rst:287 +#: library/locale.rst:292 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 " @@ -441,7 +447,7 @@ msgid "" "then-emperor's reign." msgstr "" -#: library/locale.rst:292 +#: library/locale.rst:297 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` " @@ -451,32 +457,32 @@ msgid "" "onlinepubs/9799919799/basedefs/V1_chap07.html#tag_07_03_05_02>`_." msgstr "" -#: library/locale.rst:301 +#: library/locale.rst:306 msgid "" "Get a format string for :func:`time.strftime` to represent date and time in " "a locale-specific era-based way." msgstr "" -#: library/locale.rst:306 +#: library/locale.rst:311 msgid "" "Get a format string for :func:`time.strftime` to represent a date in a " "locale-specific era-based way." msgstr "" -#: library/locale.rst:311 +#: library/locale.rst:316 msgid "" "Get a format string for :func:`time.strftime` to represent a time in a " "locale-specific era-based way." msgstr "" -#: library/locale.rst:316 +#: library/locale.rst:321 msgid "" "Get a string consisting of up to 100 semicolon-separated symbols used to " "represent the values 0 to 99 in a locale-specific way. In most locales this " "is an empty string." msgstr "" -#: library/locale.rst:320 +#: library/locale.rst:325 msgid "" "The function temporarily sets the ``LC_CTYPE`` locale to the locale of the " "category that determines the requested value (``LC_TIME``, ``LC_NUMERIC``, " @@ -484,18 +490,18 @@ msgid "" "resulting string is non-ASCII. This temporary change affects other threads." msgstr "" -#: library/locale.rst:326 +#: library/locale.rst:331 msgid "" "The function now temporarily sets the ``LC_CTYPE`` locale in some cases." msgstr "" -#: library/locale.rst:332 +#: library/locale.rst:337 msgid "" "Tries to determine the default locale settings and returns them as a tuple " "of the form ``(language code, encoding)``." msgstr "" -#: library/locale.rst:335 +#: library/locale.rst:340 msgid "" "According to POSIX, a program which has not called ``setlocale(LC_ALL, '')`` " "runs using the portable ``'C'`` locale. Calling ``setlocale(LC_ALL, '')`` " @@ -504,7 +510,7 @@ msgid "" "emulate the behavior in the way described above." msgstr "" -#: library/locale.rst:341 +#: library/locale.rst:346 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 " @@ -514,21 +520,23 @@ msgid "" "``'LC_CTYPE'``, ``'LANG'`` and ``'LANGUAGE'``, in that order." msgstr "" -#: library/locale.rst:361 +#: library/locale.rst:368 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." +"The language code has the same format as a :ref:`locale name `, " +"but without encoding and ``@``-modifier. The language code and encoding may " +"be ``None`` if their values cannot be determined. The \"C\" locale is " +"represented as ``(None, None)``." msgstr "" -#: library/locale.rst:357 +#: library/locale.rst:364 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`." +"Returns the current setting for the given locale category as a tuple " +"containing the language code and encoding. *category* may be one of the :" +"const:`!LC_\\*` values except :const:`LC_ALL`. It defaults to :const:" +"`LC_CTYPE`." msgstr "" -#: library/locale.rst:368 +#: library/locale.rst:377 msgid "" "Return the :term:`locale encoding` used for text data, according to user " "preferences. User preferences are expressed differently on different " @@ -536,72 +544,72 @@ msgid "" "this function only returns a guess." msgstr "" -#: library/locale.rst:373 +#: library/locale.rst:382 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 "" -#: library/locale.rst:377 +#: library/locale.rst:386 msgid "" "On Android or if the :ref:`Python UTF-8 Mode ` is enabled, always " "return ``'utf-8'``, the :term:`locale encoding` and the *do_setlocale* " "argument are ignored." msgstr "" -#: library/locale.rst:399 +#: library/locale.rst:408 msgid "" "The :ref:`Python preinitialization ` configures the LC_CTYPE " "locale. See also the :term:`filesystem encoding and error handler`." msgstr "" -#: library/locale.rst:384 +#: library/locale.rst:393 msgid "" "The function now always returns ``\"utf-8\"`` on Android or if the :ref:" "`Python UTF-8 Mode ` is enabled." msgstr "" -#: library/locale.rst:391 +#: library/locale.rst:400 msgid "Get the current :term:`locale encoding`:" msgstr "" -#: library/locale.rst:393 +#: library/locale.rst:402 msgid "On Android and VxWorks, return ``\"utf-8\"``." msgstr "" -#: library/locale.rst:394 +#: library/locale.rst:403 msgid "" "On Unix, return the encoding of the current :data:`LC_CTYPE` locale. Return " "``\"utf-8\"`` if ``nl_langinfo(CODESET)`` returns an empty string: for " "example, if the current LC_CTYPE locale is not supported." msgstr "" -#: library/locale.rst:397 +#: library/locale.rst:406 msgid "On Windows, return the ANSI code page." msgstr "" -#: library/locale.rst:402 +#: library/locale.rst:411 msgid "" "This function is similar to :func:`getpreferredencoding(False) " "` except this function ignores the :ref:`Python UTF-8 " "Mode `." msgstr "" -#: library/locale.rst:411 +#: library/locale.rst:420 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 "" -#: library/locale.rst:415 +#: library/locale.rst:424 msgid "" "If the given encoding is not known, the function defaults to the default " "encoding for the locale code just like :func:`setlocale`." msgstr "" -#: library/locale.rst:421 +#: library/locale.rst:430 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 " @@ -609,7 +617,7 @@ msgid "" "is equal to it." msgstr "" -#: library/locale.rst:429 +#: library/locale.rst:438 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, " @@ -617,7 +625,7 @@ msgid "" "repeatedly, e.g. when collating a sequence of strings." msgstr "" -#: library/locale.rst:438 +#: library/locale.rst:447 msgid "" "Formats a number *val* according to the current :const:`LC_NUMERIC` setting. " "The format follows the conventions of the ``%`` operator. For floating-" @@ -625,29 +633,29 @@ msgid "" "is ``True``, also takes the grouping into account." msgstr "" -#: library/locale.rst:443 +#: library/locale.rst:452 msgid "" "If *monetary* is true, the conversion uses monetary thousands separator and " "grouping strings." msgstr "" -#: library/locale.rst:446 +#: library/locale.rst:455 msgid "" "Processes formatting specifiers as in ``format % val``, but takes the " "current locale settings into account." msgstr "" -#: library/locale.rst:449 +#: library/locale.rst:458 msgid "The *monetary* keyword parameter was added." msgstr "" -#: library/locale.rst:455 +#: library/locale.rst:464 msgid "" "Formats a number *val* according to the current :const:`LC_MONETARY` " "settings." msgstr "" -#: library/locale.rst:457 +#: library/locale.rst:466 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), " @@ -655,43 +663,43 @@ msgid "" "not the default), the international currency symbol is used." msgstr "" -#: library/locale.rst:464 +#: library/locale.rst:473 msgid "" "This function will not work with the 'C' locale, so you have to set a locale " "via :func:`setlocale` first." msgstr "" -#: library/locale.rst:470 +#: library/locale.rst:479 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 "" -#: library/locale.rst:476 +#: library/locale.rst:485 msgid "" "Converts a string into a normalized number string, following the :const:" "`LC_NUMERIC` settings." msgstr "" -#: library/locale.rst:484 +#: library/locale.rst:493 msgid "" "Converts a normalized number string into a formatted string following the :" "const:`LC_NUMERIC` settings." msgstr "" -#: library/locale.rst:492 +#: library/locale.rst:501 msgid "" "Converts a string to a number, following the :const:`LC_NUMERIC` settings, " "by calling *func* on the result of calling :func:`delocalize` on *string*." msgstr "" -#: library/locale.rst:498 +#: library/locale.rst:507 msgid "" "Converts a string to an integer, following the :const:`LC_NUMERIC` " "conventions." msgstr "" -#: library/locale.rst:503 +#: library/locale.rst:512 msgid "" "Locale category for the character type functions. Most importantly, this " "category defines the text encoding, i.e. how bytes are interpreted as " @@ -701,32 +709,32 @@ msgid "" "SSH connections." msgstr "" -#: library/locale.rst:510 +#: library/locale.rst:519 msgid "" "Python doesn't internally use locale-dependent character transformation " -"functions from ``ctype.h``. Instead, an internal ``pyctype.h`` provides " -"locale-independent equivalents like :c:macro:`!Py_TOLOWER`." +"functions from ``ctype.h``. Instead, ``pyctype.h`` provides locale-" +"independent equivalents like :c:macro:`Py_TOLOWER`." msgstr "" -#: library/locale.rst:517 +#: library/locale.rst:526 msgid "" "Locale category for sorting strings. The functions :func:`strcoll` and :" "func:`strxfrm` of the :mod:`locale` module are affected." msgstr "" -#: library/locale.rst:523 +#: library/locale.rst:532 msgid "" "Locale category for the formatting of time. The function :func:`time." "strftime` follows these conventions." msgstr "" -#: library/locale.rst:529 +#: library/locale.rst:538 msgid "" "Locale category for formatting of monetary values. The available options " "are available from the :func:`localeconv` function." msgstr "" -#: library/locale.rst:535 +#: library/locale.rst:544 msgid "" "Locale category for message display. Python currently does not support " "application specific locale-aware messages. Messages displayed by the " @@ -734,13 +742,13 @@ msgid "" "affected by this category." msgstr "" -#: library/locale.rst:540 +#: library/locale.rst:549 msgid "" "This value may not be available on operating systems not conforming to the " "POSIX standard, most notably Windows." msgstr "" -#: library/locale.rst:546 +#: library/locale.rst:555 msgid "" "Locale category for formatting numbers. The functions :func:" "`format_string`, :func:`atoi`, :func:`atof` and :func:`.str` of the :mod:" @@ -748,7 +756,7 @@ msgid "" "operations are not affected." msgstr "" -#: library/locale.rst:554 +#: library/locale.rst:563 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 " @@ -758,17 +766,17 @@ msgid "" "settings." msgstr "" -#: library/locale.rst:563 +#: library/locale.rst:572 msgid "" "This is a symbolic constant used for different values returned by :func:" "`localeconv`." msgstr "" -#: library/locale.rst:567 +#: library/locale.rst:576 msgid "Example::" msgstr "" -#: library/locale.rst:569 +#: library/locale.rst:578 msgid "" ">>> import locale\n" ">>> loc = locale.getlocale() # get current locale\n" @@ -781,11 +789,11 @@ msgid "" ">>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale" msgstr "" -#: library/locale.rst:580 +#: library/locale.rst:589 msgid "Background, details, hints, tips and caveats" msgstr "" -#: library/locale.rst:582 +#: library/locale.rst:591 msgid "" "The C standard defines the locale as a program-wide property that may be " "relatively expensive to change. On top of that, some implementations are " @@ -793,7 +801,7 @@ msgid "" "This makes the locale somewhat painful to use correctly." msgstr "" -#: library/locale.rst:587 +#: library/locale.rst:596 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 :" @@ -803,7 +811,7 @@ msgid "" "categories by calling ``setlocale(LC_ALL, '')``." msgstr "" -#: library/locale.rst:594 +#: library/locale.rst:603 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 " @@ -811,7 +819,7 @@ msgid "" "that happen to run before the settings have been restored." msgstr "" -#: library/locale.rst:599 +#: library/locale.rst:608 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 " @@ -822,14 +830,14 @@ msgid "" "settings." msgstr "" -#: library/locale.rst:606 +#: library/locale.rst:615 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_string`, :func:`.str`." msgstr "" -#: library/locale.rst:610 +#: library/locale.rst:619 msgid "" "There is no way to perform case conversions and character classifications " "according to the locale. For (Unicode) text strings these are done " @@ -840,11 +848,85 @@ msgid "" "whitespace." msgstr "" -#: library/locale.rst:621 +#: library/locale.rst:630 +msgid "Locale names" +msgstr "" + +#: library/locale.rst:632 +msgid "" +"The format of the locale name is platform dependent, and the set of " +"supported locales can depend on the system configuration." +msgstr "" + +#: library/locale.rst:635 +msgid "On Posix platforms, it usually has the format [1]_:" +msgstr "" + +#: library/locale.rst:640 +msgid "" +"where *language* is a two- or three-letter language code from `ISO 639`_, " +"*territory* is a two-letter country or region code from `ISO 3166`_, " +"*charset* is a locale encoding, and *modifier* is a script name, a language " +"subtag, a sort order identifier, or other locale modifier (for example, " +"\"latin\", \"valencia\", \"stroke\" and \"euro\")." +msgstr "" + +#: library/locale.rst:646 +msgid "" +"On Windows, several formats are supported. [2]_ [3]_ A subset of `IETF BCP " +"47`_ tags:" +msgstr "" + +#: library/locale.rst:653 +msgid "" +"where *language* and *territory* have the same meaning as in Posix, *script* " +"is a four-letter script code from `ISO 15924`_, and *modifier* is a language " +"subtag, a sort order identifier or custom modifier (for example, " +"\"valencia\", \"stroke\" or \"x-python\"). Both hyphen (``'-'``) and " +"underscore (``'_'``) separators are supported. Only UTF-8 encoding is " +"allowed for BCP 47 tags." +msgstr "" + +#: library/locale.rst:660 +msgid "Windows also supports locale names in the format:" +msgstr "" + +#: library/locale.rst:665 +msgid "" +"where *language* and *territory* are full names, such as \"English\" and " +"\"United States\", and *charset* is either a code page number (for example, " +"\"1252\") or UTF-8. Only the underscore separator is supported in this " +"format." +msgstr "" + +#: library/locale.rst:670 +msgid "The \"C\" locale is supported on all platforms." +msgstr "" + +#: library/locale.rst:677 +msgid "" +"`IEEE Std 1003.1-2024; 8.2 Internationalization Variables `_" +msgstr "" + +#: library/locale.rst:678 +msgid "" +"`UCRT Locale names, Languages, and Country/Region strings `_" +msgstr "" + +#: library/locale.rst:679 +msgid "" +"`Locale Names `_" +msgstr "" + +#: library/locale.rst:685 msgid "For extension writers and programs that embed Python" msgstr "" -#: library/locale.rst:623 +#: library/locale.rst:687 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 " @@ -852,7 +934,7 @@ msgid "" "whether or not the locale is ``C``)." msgstr "" -#: library/locale.rst:628 +#: library/locale.rst:692 msgid "" "When Python code uses the :mod:`locale` module to change the locale, this " "also affects the embedding application. If the embedding application " @@ -862,11 +944,11 @@ msgid "" "accessible as a shared library." msgstr "" -#: library/locale.rst:639 +#: library/locale.rst:703 msgid "Access to message catalogs" msgstr "" -#: library/locale.rst:648 +#: library/locale.rst:712 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:" @@ -877,7 +959,7 @@ msgid "" "locating message catalogs." msgstr "" -#: library/locale.rst:655 +#: library/locale.rst:719 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 " diff --git a/library/logging.config.po b/library/logging.config.po index 629b7cb6..7cce5d7c 100644 --- a/library/logging.config.po +++ b/library/logging.config.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/logging.handlers.po b/library/logging.handlers.po index f963db53..8c86a03f 100644 --- a/library/logging.handlers.po +++ b/library/logging.handlers.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -608,44 +608,45 @@ msgstr "" #: library/logging.handlers.rst:465 msgid "" "Returns a list of filenames which should be deleted as part of rollover. " -"These" +"These are the absolute paths of the oldest backup log files written by the " +"handler." msgstr "" -#: library/logging.handlers.rst:469 +#: library/logging.handlers.rst:470 msgid "" "See if enough time has passed for a rollover to occur and if it has, compute " "the next rollover time." msgstr "" -#: library/logging.handlers.rst:475 +#: library/logging.handlers.rst:476 msgid "SocketHandler" msgstr "" -#: library/logging.handlers.rst:477 +#: library/logging.handlers.rst:478 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 "" -#: library/logging.handlers.rst:483 +#: library/logging.handlers.rst:484 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 "" -#: library/logging.handlers.rst:486 +#: library/logging.handlers.rst:487 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 "" -#: library/logging.handlers.rst:492 +#: library/logging.handlers.rst:493 msgid "Closes the socket." msgstr "" -#: library/logging.handlers.rst:497 +#: library/logging.handlers.rst:498 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 " @@ -654,35 +655,35 @@ msgid "" "`~logging.LogRecord`, use the :func:`~logging.makeLogRecord` function." msgstr "" -#: library/logging.handlers.rst:507 +#: library/logging.handlers.rst:508 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 "" -#: library/logging.handlers.rst:514 +#: library/logging.handlers.rst:515 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 "" -#: library/logging.handlers.rst:521 +#: library/logging.handlers.rst:522 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 "" -#: library/logging.handlers.rst:525 +#: library/logging.handlers.rst:526 msgid "" "data = pickle.dumps(record_attr_dict, 1)\n" "datalen = struct.pack('>L', len(data))\n" "return datalen + data" msgstr "" -#: library/logging.handlers.rst:529 +#: library/logging.handlers.rst:530 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 " @@ -691,20 +692,20 @@ msgid "" "objects on the receiving end." msgstr "" -#: library/logging.handlers.rst:538 +#: library/logging.handlers.rst:539 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 "" -#: library/logging.handlers.rst:542 +#: library/logging.handlers.rst:543 msgid "" "This function allows for partial sends, which can happen when the network is " "busy." msgstr "" -#: library/logging.handlers.rst:548 +#: library/logging.handlers.rst:549 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 " @@ -715,23 +716,23 @@ msgid "" "each time up to a maximum of 30 seconds." msgstr "" -#: library/logging.handlers.rst:556 +#: library/logging.handlers.rst:557 msgid "This behaviour is controlled by the following handler attributes:" msgstr "" -#: library/logging.handlers.rst:558 +#: library/logging.handlers.rst:559 msgid "``retryStart`` (initial delay, defaulting to 1.0 seconds)." msgstr "" -#: library/logging.handlers.rst:559 +#: library/logging.handlers.rst:560 msgid "``retryFactor`` (multiplier, defaulting to 2.0)." msgstr "" -#: library/logging.handlers.rst:560 +#: library/logging.handlers.rst:561 msgid "``retryMax`` (maximum delay, defaulting to 30.0 seconds)." msgstr "" -#: library/logging.handlers.rst:562 +#: library/logging.handlers.rst:563 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 " @@ -739,25 +740,25 @@ msgid "" "during the delay period)." msgstr "" -#: library/logging.handlers.rst:571 +#: library/logging.handlers.rst:572 msgid "DatagramHandler" msgstr "" -#: library/logging.handlers.rst:573 +#: library/logging.handlers.rst:574 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 "" -#: library/logging.handlers.rst:580 +#: library/logging.handlers.rst:581 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 "" -#: library/logging.handlers.rst:583 +#: library/logging.handlers.rst:584 msgid "" "As UDP is not a streaming protocol, there is no persistent connection " "between an instance of this handler and *host*. For this reason, when using " @@ -767,13 +768,13 @@ msgid "" "looked-up IP address rather than the hostname." msgstr "" -#: library/logging.handlers.rst:590 +#: library/logging.handlers.rst:591 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 "" -#: library/logging.handlers.rst:596 +#: library/logging.handlers.rst:597 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 " @@ -781,29 +782,29 @@ msgid "" "LogRecord`, use the :func:`~logging.makeLogRecord` function." msgstr "" -#: library/logging.handlers.rst:605 +#: library/logging.handlers.rst:606 msgid "" "The factory method of :class:`SocketHandler` is here overridden to create a " "UDP socket (:const:`socket.SOCK_DGRAM`)." msgstr "" -#: library/logging.handlers.rst:611 +#: library/logging.handlers.rst:612 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 "" -#: library/logging.handlers.rst:618 +#: library/logging.handlers.rst:619 msgid "SysLogHandler" msgstr "" -#: library/logging.handlers.rst:620 +#: library/logging.handlers.rst:621 msgid "" "The :class:`SysLogHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to a remote or local Unix syslog." msgstr "" -#: library/logging.handlers.rst:626 +#: library/logging.handlers.rst:627 msgid "" "Returns a new instance of the :class:`SysLogHandler` class intended to " "communicate with a remote Unix machine whose address is given by *address* " @@ -822,7 +823,7 @@ msgid "" "applied." msgstr "" -#: library/logging.handlers.rst:643 +#: library/logging.handlers.rst:644 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 " @@ -833,30 +834,30 @@ msgid "" "platforms). On Windows, you pretty much have to use the UDP option." msgstr "" -#: library/logging.handlers.rst:652 +#: library/logging.handlers.rst:653 msgid "" "On macOS 12.x (Monterey), Apple has changed the behaviour of their syslog " "daemon - it no longer listens on a domain socket. Therefore, you cannot " "expect :class:`SysLogHandler` to work on this system." msgstr "" -#: library/logging.handlers.rst:656 +#: library/logging.handlers.rst:657 msgid "See :gh:`91070` for more information." msgstr "" -#: library/logging.handlers.rst:658 +#: library/logging.handlers.rst:659 msgid "*socktype* was added." msgstr "" -#: library/logging.handlers.rst:661 +#: library/logging.handlers.rst:662 msgid "*timeout* was added." msgstr "" -#: library/logging.handlers.rst:666 +#: library/logging.handlers.rst:667 msgid "Closes the socket to the remote host." msgstr "" -#: library/logging.handlers.rst:670 +#: library/logging.handlers.rst:671 msgid "" "Tries to create a socket and, if it's not a datagram socket, connect it to " "the other end. This method is called during handler initialization, but it's " @@ -865,13 +866,13 @@ msgid "" "socket at that point." msgstr "" -#: library/logging.handlers.rst:680 +#: library/logging.handlers.rst:681 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 "" -#: library/logging.handlers.rst:683 +#: library/logging.handlers.rst:684 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 " @@ -882,7 +883,7 @@ msgid "" "byte on as part of the message." msgstr "" -#: library/logging.handlers.rst:692 +#: library/logging.handlers.rst:693 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 " @@ -892,7 +893,7 @@ msgid "" "*not* append the NUL terminator." msgstr "" -#: library/logging.handlers.rst:699 +#: library/logging.handlers.rst:700 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 " @@ -903,260 +904,260 @@ msgid "" "bytes, and is prepended to the message exactly as is." msgstr "" -#: library/logging.handlers.rst:710 +#: library/logging.handlers.rst:711 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 "" -#: library/logging.handlers.rst:714 +#: library/logging.handlers.rst:715 msgid "" "The symbolic ``LOG_`` values are defined in :class:`SysLogHandler` and " "mirror the values defined in the ``sys/syslog.h`` header file." msgstr "" -#: library/logging.handlers.rst:717 +#: library/logging.handlers.rst:718 msgid "**Priorities**" msgstr "" -#: library/logging.handlers.rst:720 library/logging.handlers.rst:742 +#: library/logging.handlers.rst:721 library/logging.handlers.rst:743 msgid "Name (string)" msgstr "" -#: library/logging.handlers.rst:720 library/logging.handlers.rst:742 +#: library/logging.handlers.rst:721 library/logging.handlers.rst:743 msgid "Symbolic value" msgstr "" -#: library/logging.handlers.rst:722 +#: library/logging.handlers.rst:723 msgid "``alert``" msgstr "" -#: library/logging.handlers.rst:722 +#: library/logging.handlers.rst:723 msgid "LOG_ALERT" msgstr "" -#: library/logging.handlers.rst:724 +#: library/logging.handlers.rst:725 msgid "``crit`` or ``critical``" msgstr "" -#: library/logging.handlers.rst:724 +#: library/logging.handlers.rst:725 msgid "LOG_CRIT" msgstr "" -#: library/logging.handlers.rst:726 +#: library/logging.handlers.rst:727 msgid "``debug``" msgstr "" -#: library/logging.handlers.rst:726 +#: library/logging.handlers.rst:727 msgid "LOG_DEBUG" msgstr "" -#: library/logging.handlers.rst:728 +#: library/logging.handlers.rst:729 msgid "``emerg`` or ``panic``" msgstr "" -#: library/logging.handlers.rst:728 +#: library/logging.handlers.rst:729 msgid "LOG_EMERG" msgstr "" -#: library/logging.handlers.rst:730 +#: library/logging.handlers.rst:731 msgid "``err`` or ``error``" msgstr "" -#: library/logging.handlers.rst:730 +#: library/logging.handlers.rst:731 msgid "LOG_ERR" msgstr "" -#: library/logging.handlers.rst:732 +#: library/logging.handlers.rst:733 msgid "``info``" msgstr "" -#: library/logging.handlers.rst:732 +#: library/logging.handlers.rst:733 msgid "LOG_INFO" msgstr "" -#: library/logging.handlers.rst:734 +#: library/logging.handlers.rst:735 msgid "``notice``" msgstr "" -#: library/logging.handlers.rst:734 +#: library/logging.handlers.rst:735 msgid "LOG_NOTICE" msgstr "" -#: library/logging.handlers.rst:736 +#: library/logging.handlers.rst:737 msgid "``warn`` or ``warning``" msgstr "" -#: library/logging.handlers.rst:736 +#: library/logging.handlers.rst:737 msgid "LOG_WARNING" msgstr "" -#: library/logging.handlers.rst:739 +#: library/logging.handlers.rst:740 msgid "**Facilities**" msgstr "" -#: library/logging.handlers.rst:744 +#: library/logging.handlers.rst:745 msgid "``auth``" msgstr "" -#: library/logging.handlers.rst:744 +#: library/logging.handlers.rst:745 msgid "LOG_AUTH" msgstr "" -#: library/logging.handlers.rst:746 +#: library/logging.handlers.rst:747 msgid "``authpriv``" msgstr "" -#: library/logging.handlers.rst:746 +#: library/logging.handlers.rst:747 msgid "LOG_AUTHPRIV" msgstr "" -#: library/logging.handlers.rst:748 +#: library/logging.handlers.rst:749 msgid "``cron``" msgstr "" -#: library/logging.handlers.rst:748 +#: library/logging.handlers.rst:749 msgid "LOG_CRON" msgstr "" -#: library/logging.handlers.rst:750 +#: library/logging.handlers.rst:751 msgid "``daemon``" msgstr "" -#: library/logging.handlers.rst:750 +#: library/logging.handlers.rst:751 msgid "LOG_DAEMON" msgstr "" -#: library/logging.handlers.rst:752 +#: library/logging.handlers.rst:753 msgid "``ftp``" msgstr "" -#: library/logging.handlers.rst:752 +#: library/logging.handlers.rst:753 msgid "LOG_FTP" msgstr "" -#: library/logging.handlers.rst:754 +#: library/logging.handlers.rst:755 msgid "``kern``" msgstr "" -#: library/logging.handlers.rst:754 +#: library/logging.handlers.rst:755 msgid "LOG_KERN" msgstr "" -#: library/logging.handlers.rst:756 +#: library/logging.handlers.rst:757 msgid "``lpr``" msgstr "" -#: library/logging.handlers.rst:756 +#: library/logging.handlers.rst:757 msgid "LOG_LPR" msgstr "" -#: library/logging.handlers.rst:758 +#: library/logging.handlers.rst:759 msgid "``mail``" msgstr "" -#: library/logging.handlers.rst:758 +#: library/logging.handlers.rst:759 msgid "LOG_MAIL" msgstr "" -#: library/logging.handlers.rst:760 +#: library/logging.handlers.rst:761 msgid "``news``" msgstr "" -#: library/logging.handlers.rst:760 +#: library/logging.handlers.rst:761 msgid "LOG_NEWS" msgstr "" -#: library/logging.handlers.rst:762 +#: library/logging.handlers.rst:763 msgid "``syslog``" msgstr "" -#: library/logging.handlers.rst:762 +#: library/logging.handlers.rst:763 msgid "LOG_SYSLOG" msgstr "" -#: library/logging.handlers.rst:764 +#: library/logging.handlers.rst:765 msgid "``user``" msgstr "" -#: library/logging.handlers.rst:764 +#: library/logging.handlers.rst:765 msgid "LOG_USER" msgstr "" -#: library/logging.handlers.rst:766 +#: library/logging.handlers.rst:767 msgid "``uucp``" msgstr "" -#: library/logging.handlers.rst:766 +#: library/logging.handlers.rst:767 msgid "LOG_UUCP" msgstr "" -#: library/logging.handlers.rst:768 +#: library/logging.handlers.rst:769 msgid "``local0``" msgstr "" -#: library/logging.handlers.rst:768 +#: library/logging.handlers.rst:769 msgid "LOG_LOCAL0" msgstr "" -#: library/logging.handlers.rst:770 +#: library/logging.handlers.rst:771 msgid "``local1``" msgstr "" -#: library/logging.handlers.rst:770 +#: library/logging.handlers.rst:771 msgid "LOG_LOCAL1" msgstr "" -#: library/logging.handlers.rst:772 +#: library/logging.handlers.rst:773 msgid "``local2``" msgstr "" -#: library/logging.handlers.rst:772 +#: library/logging.handlers.rst:773 msgid "LOG_LOCAL2" msgstr "" -#: library/logging.handlers.rst:774 +#: library/logging.handlers.rst:775 msgid "``local3``" msgstr "" -#: library/logging.handlers.rst:774 +#: library/logging.handlers.rst:775 msgid "LOG_LOCAL3" msgstr "" -#: library/logging.handlers.rst:776 +#: library/logging.handlers.rst:777 msgid "``local4``" msgstr "" -#: library/logging.handlers.rst:776 +#: library/logging.handlers.rst:777 msgid "LOG_LOCAL4" msgstr "" -#: library/logging.handlers.rst:778 +#: library/logging.handlers.rst:779 msgid "``local5``" msgstr "" -#: library/logging.handlers.rst:778 +#: library/logging.handlers.rst:779 msgid "LOG_LOCAL5" msgstr "" -#: library/logging.handlers.rst:780 +#: library/logging.handlers.rst:781 msgid "``local6``" msgstr "" -#: library/logging.handlers.rst:780 +#: library/logging.handlers.rst:781 msgid "LOG_LOCAL6" msgstr "" -#: library/logging.handlers.rst:782 +#: library/logging.handlers.rst:783 msgid "``local7``" msgstr "" -#: library/logging.handlers.rst:782 +#: library/logging.handlers.rst:783 msgid "LOG_LOCAL7" msgstr "" -#: library/logging.handlers.rst:787 +#: library/logging.handlers.rst:788 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 " @@ -1165,11 +1166,11 @@ msgid "" "all other level names to 'warning'." msgstr "" -#: library/logging.handlers.rst:797 +#: library/logging.handlers.rst:798 msgid "NTEventLogHandler" msgstr "" -#: library/logging.handlers.rst:799 +#: library/logging.handlers.rst:800 msgid "" "The :class:`NTEventLogHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to a local Windows NT, Windows " @@ -1177,7 +1178,7 @@ msgid "" "Win32 extensions for Python installed." msgstr "" -#: library/logging.handlers.rst:807 +#: library/logging.handlers.rst:808 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 " @@ -1193,7 +1194,7 @@ msgid "" "or ``'Security'``, and defaults to ``'Application'``." msgstr "" -#: library/logging.handlers.rst:823 +#: library/logging.handlers.rst:824 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 " @@ -1202,19 +1203,19 @@ msgid "" "not do this." msgstr "" -#: library/logging.handlers.rst:832 +#: library/logging.handlers.rst:833 msgid "" "Determines the message ID, event category and event type, and then logs the " "message in the NT event log." msgstr "" -#: library/logging.handlers.rst:838 +#: library/logging.handlers.rst:839 msgid "" "Returns the event category for the record. Override this if you want to " "specify your own categories. This version returns 0." msgstr "" -#: library/logging.handlers.rst:844 +#: library/logging.handlers.rst:845 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 " @@ -1225,7 +1226,7 @@ msgid "" "the handler's *typemap* attribute." msgstr "" -#: library/logging.handlers.rst:855 +#: library/logging.handlers.rst:856 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 " @@ -1234,17 +1235,17 @@ msgid "" "message ID in :file:`win32service.pyd`." msgstr "" -#: library/logging.handlers.rst:864 +#: library/logging.handlers.rst:865 msgid "SMTPHandler" msgstr "" -#: library/logging.handlers.rst:866 +#: library/logging.handlers.rst:867 msgid "" "The :class:`SMTPHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to an email address via SMTP." msgstr "" -#: library/logging.handlers.rst:872 +#: library/logging.handlers.rst:873 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. " @@ -1255,7 +1256,7 @@ msgid "" "*credentials* argument." msgstr "" -#: library/logging.handlers.rst:879 +#: library/logging.handlers.rst:880 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 " @@ -1265,31 +1266,31 @@ msgid "" "SMTP.starttls` method.)" msgstr "" -#: library/logging.handlers.rst:886 +#: library/logging.handlers.rst:887 msgid "" "A timeout can be specified for communication with the SMTP server using the " "*timeout* argument." msgstr "" -#: library/logging.handlers.rst:889 +#: library/logging.handlers.rst:890 msgid "Added the *timeout* parameter." msgstr "" -#: library/logging.handlers.rst:894 +#: library/logging.handlers.rst:895 msgid "Formats the record and sends it to the specified addressees." msgstr "" -#: library/logging.handlers.rst:899 +#: library/logging.handlers.rst:900 msgid "" "If you want to specify a subject line which is record-dependent, override " "this method." msgstr "" -#: library/logging.handlers.rst:905 +#: library/logging.handlers.rst:906 msgid "MemoryHandler" msgstr "" -#: library/logging.handlers.rst:907 +#: library/logging.handlers.rst:908 msgid "" "The :class:`MemoryHandler` class, located in the :mod:`logging.handlers` " "module, supports buffering of logging records in memory, periodically " @@ -1297,7 +1298,7 @@ msgid "" "buffer is full, or when an event of a certain severity or greater is seen." msgstr "" -#: library/logging.handlers.rst:912 +#: library/logging.handlers.rst:913 msgid "" ":class:`MemoryHandler` is a subclass of the more general :class:" "`BufferingHandler`, which is an abstract class. This buffers logging records " @@ -1306,32 +1307,32 @@ msgid "" "should, then :meth:`flush` is expected to do the flushing." msgstr "" -#: library/logging.handlers.rst:921 +#: library/logging.handlers.rst:922 msgid "" "Initializes the handler with a buffer of the specified capacity. Here, " "*capacity* means the number of logging records buffered." msgstr "" -#: library/logging.handlers.rst:927 +#: library/logging.handlers.rst:928 msgid "" "Append the record to the buffer. If :meth:`shouldFlush` returns true, call :" "meth:`flush` to process the buffer." msgstr "" -#: library/logging.handlers.rst:933 +#: library/logging.handlers.rst:934 msgid "" "For a :class:`BufferingHandler` instance, flushing means that it sets the " "buffer to an empty list. This method can be overwritten to implement more " "useful flushing behavior." msgstr "" -#: library/logging.handlers.rst:940 +#: library/logging.handlers.rst:941 msgid "" "Return ``True`` if the buffer is up to capacity. This method can be " "overridden to implement custom flushing strategies." msgstr "" -#: library/logging.handlers.rst:946 +#: library/logging.handlers.rst:947 msgid "" "Returns a new instance of the :class:`MemoryHandler` class. The instance is " "initialized with a buffer size of *capacity* (number of records buffered). " @@ -1343,15 +1344,15 @@ msgid "" "the buffer will occur when the handler is closed." msgstr "" -#: library/logging.handlers.rst:955 +#: library/logging.handlers.rst:956 msgid "The *flushOnClose* parameter was added." msgstr "" -#: library/logging.handlers.rst:961 +#: library/logging.handlers.rst:962 msgid "Calls :meth:`flush`, sets the target to ``None`` and clears the buffer." msgstr "" -#: library/logging.handlers.rst:967 +#: library/logging.handlers.rst:968 msgid "" "For a :class:`MemoryHandler` instance, flushing means just sending the " "buffered records to the target, if there is one. The buffer is also cleared " @@ -1359,26 +1360,26 @@ msgid "" "behavior." msgstr "" -#: library/logging.handlers.rst:974 +#: library/logging.handlers.rst:975 msgid "Sets the target handler for this handler." msgstr "" -#: library/logging.handlers.rst:979 +#: library/logging.handlers.rst:980 msgid "Checks for buffer full or a record at the *flushLevel* or higher." msgstr "" -#: library/logging.handlers.rst:985 +#: library/logging.handlers.rst:986 msgid "HTTPHandler" msgstr "" -#: library/logging.handlers.rst:987 +#: library/logging.handlers.rst:988 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 "" -#: library/logging.handlers.rst:994 +#: library/logging.handlers.rst:995 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. " @@ -1392,11 +1393,11 @@ msgid "" "cleartext across the wire." msgstr "" -#: library/logging.handlers.rst:1005 +#: library/logging.handlers.rst:1006 msgid "The *context* parameter was added." msgstr "" -#: library/logging.handlers.rst:1010 +#: library/logging.handlers.rst:1011 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." @@ -1405,14 +1406,14 @@ msgid "" "customization of what's sent to the server is required." msgstr "" -#: library/logging.handlers.rst:1018 +#: library/logging.handlers.rst:1019 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 "" -#: library/logging.handlers.rst:1022 +#: library/logging.handlers.rst:1023 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 " @@ -1422,18 +1423,18 @@ msgid "" "the dictionary in a form suitable for sending to a web server." msgstr "" -#: library/logging.handlers.rst:1035 +#: library/logging.handlers.rst:1036 msgid "QueueHandler" msgstr "" -#: library/logging.handlers.rst:1039 +#: library/logging.handlers.rst:1040 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 "" -#: library/logging.handlers.rst:1043 +#: library/logging.handlers.rst:1044 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 " @@ -1443,7 +1444,7 @@ msgid "" "an email via :class:`SMTPHandler`) are done on a separate thread." msgstr "" -#: library/logging.handlers.rst:1052 +#: library/logging.handlers.rst:1053 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-" @@ -1453,13 +1454,23 @@ msgid "" "instances for *queue*." msgstr "" -#: library/logging.handlers.rst:1059 library/logging.handlers.rst:1148 +#: library/logging.handlers.rst:1060 library/logging.handlers.rst:1158 msgid "" "If you are using :mod:`multiprocessing`, you should avoid using :class:" "`~queue.SimpleQueue` and instead use :class:`multiprocessing.Queue`." msgstr "" -#: library/logging.handlers.rst:1064 +#: library/logging.handlers.rst:1065 +msgid "" +"The :mod:`multiprocessing` module uses an internal logger created and " +"accessed via :meth:`~multiprocessing.get_logger`. :class:`multiprocessing." +"Queue` will log ``DEBUG`` level messages upon items being queued. If those " +"log messages are processed by a :class:`QueueHandler` using the same :class:" +"`multiprocessing.Queue` instance, it will cause a deadlock or infinite " +"recursion." +msgstr "" + +#: library/logging.handlers.rst:1074 msgid "" "Enqueues the result of preparing the LogRecord. Should an exception occur (e." "g. because a bounded queue has filled up), the :meth:`~logging.Handler." @@ -1469,13 +1480,13 @@ msgid "" "raiseExceptions` is ``True``)." msgstr "" -#: library/logging.handlers.rst:1073 +#: library/logging.handlers.rst:1083 msgid "" "Prepares a record for queuing. The object returned by this method is " "enqueued." msgstr "" -#: library/logging.handlers.rst:1076 +#: library/logging.handlers.rst:1086 msgid "" "The base implementation formats the record to merge the message, arguments, " "exception and stack information, if present. It also removes unpickleable " @@ -1485,14 +1496,14 @@ msgid "" "attr:`exc_info` and :attr:`exc_text` attributes to ``None``." msgstr "" -#: library/logging.handlers.rst:1084 +#: library/logging.handlers.rst:1094 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 "" -#: library/logging.handlers.rst:1088 +#: library/logging.handlers.rst:1098 msgid "" "The base implementation formats the message with arguments, sets the " "``message`` and ``msg`` attributes to the formatted message and sets the " @@ -1508,25 +1519,25 @@ msgid "" "libraries that you use.)" msgstr "" -#: library/logging.handlers.rst:1104 +#: library/logging.handlers.rst:1114 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 "" -#: library/logging.handlers.rst:1110 +#: library/logging.handlers.rst:1120 msgid "" "When created via configuration using :func:`~logging.config.dictConfig`, " "this attribute will contain a :class:`QueueListener` instance for use with " "this handler. Otherwise, it will be ``None``." msgstr "" -#: library/logging.handlers.rst:1119 +#: library/logging.handlers.rst:1129 msgid "QueueListener" msgstr "" -#: library/logging.handlers.rst:1123 +#: library/logging.handlers.rst:1133 msgid "" "The :class:`QueueListener` class, located in the :mod:`logging.handlers` " "module, supports receiving logging messages from a queue, such as those " @@ -1537,7 +1548,7 @@ msgid "" "works hand-in-hand with :class:`QueueHandler`." msgstr "" -#: library/logging.handlers.rst:1131 +#: library/logging.handlers.rst:1141 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 " @@ -1547,7 +1558,7 @@ msgid "" "an email via :class:`SMTPHandler`) are done on a separate thread." msgstr "" -#: library/logging.handlers.rst:1140 +#: library/logging.handlers.rst:1150 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 " @@ -1558,7 +1569,7 @@ msgid "" "class:`~queue.SimpleQueue` instances for *queue*." msgstr "" -#: library/logging.handlers.rst:1151 +#: library/logging.handlers.rst:1161 msgid "" "If ``respect_handler_level`` is ``True``, a handler's level is respected " "(compared with the level for the message) when deciding whether to pass " @@ -1566,11 +1577,11 @@ msgid "" "versions - to always pass each message to each handler." msgstr "" -#: library/logging.handlers.rst:1156 +#: library/logging.handlers.rst:1166 msgid "The ``respect_handler_level`` argument was added." msgstr "" -#: library/logging.handlers.rst:1159 +#: library/logging.handlers.rst:1169 msgid "" ":class:`QueueListener` can now be used as a context manager via :keyword:" "`with`. When entering the context, the listener is started. When exiting the " @@ -1578,83 +1589,83 @@ msgid "" "the :class:`QueueListener` object." msgstr "" -#: library/logging.handlers.rst:1168 +#: library/logging.handlers.rst:1178 msgid "Dequeues a record and return it, optionally blocking." msgstr "" -#: library/logging.handlers.rst:1170 +#: library/logging.handlers.rst:1180 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 "" -#: library/logging.handlers.rst:1176 +#: library/logging.handlers.rst:1186 msgid "Prepare a record for handling." msgstr "" -#: library/logging.handlers.rst:1178 +#: library/logging.handlers.rst:1188 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 "" -#: library/logging.handlers.rst:1184 +#: library/logging.handlers.rst:1194 msgid "Handle a record." msgstr "" -#: library/logging.handlers.rst:1186 +#: library/logging.handlers.rst:1196 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 "" -#: library/logging.handlers.rst:1192 +#: library/logging.handlers.rst:1202 msgid "Starts the listener." msgstr "" -#: library/logging.handlers.rst:1194 +#: library/logging.handlers.rst:1204 msgid "" "This starts up a background thread to monitor the queue for LogRecords to " "process." msgstr "" -#: library/logging.handlers.rst:1197 +#: library/logging.handlers.rst:1207 msgid "" "Raises :exc:`RuntimeError` if called and the listener is already running." msgstr "" -#: library/logging.handlers.rst:1203 +#: library/logging.handlers.rst:1213 msgid "Stops the listener." msgstr "" -#: library/logging.handlers.rst:1205 +#: library/logging.handlers.rst:1215 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 "" -#: library/logging.handlers.rst:1211 +#: library/logging.handlers.rst:1221 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 "" -#: library/logging.handlers.rst:1221 +#: library/logging.handlers.rst:1231 msgid "Module :mod:`logging`" msgstr "" -#: library/logging.handlers.rst:1222 +#: library/logging.handlers.rst:1232 msgid "API reference for the logging module." msgstr "" -#: library/logging.handlers.rst:1224 +#: library/logging.handlers.rst:1234 msgid "Module :mod:`logging.config`" msgstr "" -#: library/logging.handlers.rst:1225 +#: library/logging.handlers.rst:1235 msgid "Configuration API for the logging module." msgstr "" diff --git a/library/logging.po b/library/logging.po index cafd3d72..97fea8ab 100644 --- a/library/logging.po +++ b/library/logging.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -876,48 +876,47 @@ msgstr "" #: library/logging.rst:674 msgid "" -"A format string in the given *style* for the date/time portion of the logged " -"output. If not specified, the default described in :meth:`formatTime` is " -"used." +"A format string for the date/time portion of the logged output. If not " +"specified, the default described in :meth:`formatTime` is used." msgstr "" -#: library/logging.rst:679 +#: library/logging.rst:678 msgid "" "Can be one of ``'%'``, ``'{'`` or ``'$'`` and determines how the format " "string will be merged with its data: using one of :ref:`old-string-" "formatting` (``%``), :meth:`str.format` (``{``) or :class:`string.Template` " -"(``$``). This only applies to *fmt* and *datefmt* (e.g. ``'%(message)s'`` " -"versus ``'{message}'``), not to the actual log messages passed to the " -"logging methods. However, there are :ref:`other ways ` to " -"use ``{``- and ``$``-formatting for log messages." +"(``$``). This only applies to *fmt* (e.g. ``'%(message)s'`` versus " +"``'{message}'``), not to the actual log messages passed to the logging " +"methods. However, there are :ref:`other ways ` to use " +"``{``- and ``$``-formatting for log messages." msgstr "" -#: library/logging.rst:689 +#: library/logging.rst:688 msgid "" "If ``True`` (the default), incorrect or mismatched *fmt* and *style* will " "raise a :exc:`ValueError`; for example, ``logging.Formatter('%(asctime)s - " "%(message)s', style='{')``." msgstr "" -#: library/logging.rst:694 +#: library/logging.rst:693 msgid "" "A dictionary with default values to use in custom fields. For example, " "``logging.Formatter('%(ip)s %(message)s', defaults={\"ip\": None})``" msgstr "" -#: library/logging.rst:699 +#: library/logging.rst:698 msgid "Added the *style* parameter." msgstr "" -#: library/logging.rst:702 +#: library/logging.rst:701 msgid "Added the *validate* parameter." msgstr "" -#: library/logging.rst:705 +#: library/logging.rst:704 msgid "Added the *defaults* parameter." msgstr "" -#: library/logging.rst:711 +#: library/logging.rst:710 msgid "" "The record's attribute dictionary is used as the operand to a string " "formatting operation. Returns the resulting string. Before formatting the " @@ -936,13 +935,13 @@ msgid "" "recalculates it afresh." msgstr "" -#: library/logging.rst:727 +#: library/logging.rst:726 msgid "" "If stack information is available, it's appended after the exception " "information, using :meth:`formatStack` to transform it if necessary." msgstr "" -#: library/logging.rst:733 +#: library/logging.rst:732 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 " @@ -955,7 +954,7 @@ msgid "" "resulting string is returned." msgstr "" -#: library/logging.rst:743 +#: library/logging.rst:742 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 " @@ -965,7 +964,7 @@ msgid "" "be shown in GMT, set the ``converter`` attribute in the ``Formatter`` class." msgstr "" -#: library/logging.rst:751 +#: library/logging.rst:750 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 " @@ -980,11 +979,11 @@ msgid "" "the millisecond value)." msgstr "" -#: library/logging.rst:764 +#: library/logging.rst:763 msgid "The ``default_msec_format`` can be ``None``." msgstr "" -#: library/logging.rst:769 +#: library/logging.rst:768 msgid "" "Formats the specified exception information (a standard exception tuple as " "returned by :func:`sys.exc_info`) as a string. This default implementation " @@ -992,14 +991,14 @@ msgid "" "returned." msgstr "" -#: library/logging.rst:776 +#: library/logging.rst:775 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 "" -#: library/logging.rst:782 +#: library/logging.rst:781 msgid "" "A base formatter class suitable for subclassing when you want to format a " "number of records. You can pass a :class:`Formatter` instance which you want " @@ -1008,7 +1007,7 @@ msgid "" "used as the line formatter." msgstr "" -#: library/logging.rst:790 +#: library/logging.rst:789 msgid "" "Return a header for a list of *records*. The base implementation just " "returns the empty string. You will need to override this method if you want " @@ -1016,14 +1015,14 @@ msgid "" "separator line." msgstr "" -#: library/logging.rst:797 +#: library/logging.rst:796 msgid "" "Return a footer for a list of *records*. The base implementation just " "returns the empty string. You will need to override this method if you want " "specific behaviour, e.g. to show the count of records or a separator line." msgstr "" -#: library/logging.rst:804 +#: library/logging.rst:803 msgid "" "Return formatted text for a list of *records*. The base implementation just " "returns the empty string if there are no records; otherwise, it returns the " @@ -1031,11 +1030,11 @@ msgid "" "and the footer." msgstr "" -#: library/logging.rst:812 +#: library/logging.rst:811 msgid "Filter Objects" msgstr "" -#: library/logging.rst:814 +#: library/logging.rst:813 msgid "" "``Filters`` can be used by ``Handlers`` and ``Loggers`` for more " "sophisticated filtering than is provided by levels. The base filter class " @@ -1045,7 +1044,7 @@ msgid "" "If initialized with the empty string, all events are passed." msgstr "" -#: library/logging.rst:824 +#: library/logging.rst:823 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 " @@ -1053,7 +1052,7 @@ msgid "" "event." msgstr "" -#: library/logging.rst:831 +#: library/logging.rst:830 msgid "" "Is the specified record to be logged? Returns false for no, true for yes. " "Filters can either modify log records in-place or return a completely " @@ -1061,7 +1060,7 @@ msgid "" "future processing of the event." msgstr "" -#: library/logging.rst:836 +#: library/logging.rst:835 msgid "" "Note that filters attached to handlers are consulted before an event is " "emitted by the handler, whereas filters attached to loggers are consulted " @@ -1071,13 +1070,13 @@ msgid "" "setting, unless the filter has also been applied to those descendant loggers." msgstr "" -#: library/logging.rst:843 +#: library/logging.rst:842 msgid "" "You don't actually need to subclass ``Filter``: you can pass any instance " "which has a ``filter`` method with the same semantics." msgstr "" -#: library/logging.rst:846 +#: library/logging.rst:845 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) " @@ -1088,7 +1087,7 @@ msgid "" "value should conform to that returned by :meth:`~Filter.filter`." msgstr "" -#: library/logging.rst:856 +#: library/logging.rst:855 msgid "" "You can now return a :class:`LogRecord` instance from filters to replace the " "log record rather than modifying it in place. This allows filters attached " @@ -1096,7 +1095,7 @@ msgid "" "having side effects on other handlers." msgstr "" -#: library/logging.rst:862 +#: library/logging.rst:861 msgid "" "Although filters are used primarily to filter records based on more " "sophisticated criteria than levels, they get to see every record which is " @@ -1108,11 +1107,11 @@ msgid "" "contextual information into logs (see :ref:`filters-contextual`)." msgstr "" -#: library/logging.rst:875 +#: library/logging.rst:874 msgid "LogRecord Objects" msgstr "" -#: library/logging.rst:877 +#: library/logging.rst:876 msgid "" ":class:`LogRecord` instances are created automatically by the :class:" "`Logger` every time something is logged, and can be created manually via :" @@ -1120,17 +1119,17 @@ msgid "" "wire)." msgstr "" -#: library/logging.rst:885 +#: library/logging.rst:884 msgid "Contains all the information pertinent to the event being logged." msgstr "" -#: library/logging.rst:887 +#: library/logging.rst:886 msgid "" "The primary information is passed in *msg* and *args*, which are combined " "using ``msg % args`` to create the :attr:`!message` attribute of the record." msgstr "" -#: library/logging.rst:891 +#: library/logging.rst:890 msgid "" "The name of the logger used to log the event represented by this :class:`!" "LogRecord`. Note that the logger name in the :class:`!LogRecord` will always " @@ -1138,7 +1137,7 @@ msgid "" "different (ancestor) logger." msgstr "" -#: library/logging.rst:899 +#: library/logging.rst:898 msgid "" "The :ref:`numeric level ` of the logging event (such as ``10`` for " "``DEBUG``, ``20`` for ``INFO``, etc). Note that this is converted to *two* " @@ -1146,46 +1145,46 @@ msgid "" "attr:`!levelname` for the corresponding level name." msgstr "" -#: library/logging.rst:906 +#: library/logging.rst:905 msgid "" "The full string path of the source file where the logging call was made." msgstr "" -#: library/logging.rst:910 +#: library/logging.rst:909 msgid "The line number in the source file where the logging call was made." msgstr "" -#: library/logging.rst:914 +#: library/logging.rst:913 msgid "" "The event description message, which can be a %-format string with " "placeholders for variable data, or an arbitrary object (see :ref:`arbitrary-" "object-messages`)." msgstr "" -#: library/logging.rst:919 +#: library/logging.rst:918 msgid "" "Variable data to merge into the *msg* argument to obtain the event " "description." msgstr "" -#: library/logging.rst:923 +#: library/logging.rst:922 msgid "" "An exception tuple with the current exception information, as returned by :" "func:`sys.exc_info`, or ``None`` if no exception information is available." msgstr "" -#: library/logging.rst:928 +#: library/logging.rst:927 msgid "" "The name of the function or method from which the logging call was invoked." msgstr "" -#: library/logging.rst:932 +#: library/logging.rst:931 msgid "" "A text string representing stack information from the base of the stack in " "the current thread, up to the logging call." msgstr "" -#: library/logging.rst:939 +#: library/logging.rst:938 msgid "" "Returns the message for this :class:`LogRecord` instance after merging any " "user-supplied arguments with the message. If the user-supplied message " @@ -1194,7 +1193,7 @@ msgid "" "whose ``__str__`` method can return the actual format string to be used." msgstr "" -#: library/logging.rst:946 +#: library/logging.rst:945 msgid "" "The creation of a :class:`LogRecord` has been made more configurable by " "providing a factory which is used to create the record. The factory can be " @@ -1202,13 +1201,13 @@ msgid "" "this for the factory's signature)." msgstr "" -#: library/logging.rst:952 +#: library/logging.rst:951 msgid "" "This functionality can be used to inject your own values into a :class:" "`LogRecord` at creation time. You can use the following pattern::" msgstr "" -#: library/logging.rst:955 +#: library/logging.rst:954 msgid "" "old_factory = logging.getLogRecordFactory()\n" "\n" @@ -1220,18 +1219,18 @@ msgid "" "logging.setLogRecordFactory(record_factory)" msgstr "" -#: library/logging.rst:964 +#: library/logging.rst:963 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 "" -#: library/logging.rst:973 +#: library/logging.rst:972 msgid "LogRecord attributes" msgstr "" -#: library/logging.rst:975 +#: library/logging.rst:974 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 " @@ -1242,7 +1241,7 @@ msgid "" "style format string." msgstr "" -#: library/logging.rst:983 +#: library/logging.rst:982 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 (:" @@ -1250,7 +1249,7 @@ msgid "" "course, replace ``attrname`` with the actual attribute name you want to use." msgstr "" -#: library/logging.rst:989 +#: library/logging.rst:988 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: " @@ -1259,324 +1258,325 @@ msgid "" "on the options available to you." msgstr "" -#: library/logging.rst:996 +#: library/logging.rst:995 msgid "Attribute name" msgstr "" -#: library/logging.rst:1366 +#: library/logging.rst:1370 msgid "Format" msgstr "" -#: library/logging.rst:1366 +#: library/logging.rst:1370 msgid "Description" msgstr "" -#: library/logging.rst:998 +#: library/logging.rst:997 msgid "args" msgstr "" -#: library/logging.rst:1012 library/logging.rst:1058 +#: library/logging.rst:1011 library/logging.rst:1057 msgid "You shouldn't need to format this yourself." msgstr "" -#: library/logging.rst:998 +#: library/logging.rst:997 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 "" -#: library/logging.rst:1003 +#: library/logging.rst:1002 msgid "asctime" msgstr "" -#: library/logging.rst:1003 +#: library/logging.rst:1002 msgid "``%(asctime)s``" msgstr "" -#: library/logging.rst:1003 +#: library/logging.rst:1002 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 "" -#: library/logging.rst:1009 +#: library/logging.rst:1008 msgid "created" msgstr "" -#: library/logging.rst:1009 +#: library/logging.rst:1008 msgid "``%(created)f``" msgstr "" -#: library/logging.rst:1009 +#: library/logging.rst:1008 msgid "" "Time when the :class:`LogRecord` was created (as returned by :func:`time." "time_ns` / 1e9)." msgstr "" -#: library/logging.rst:1012 +#: library/logging.rst:1011 msgid "exc_info" msgstr "" -#: library/logging.rst:1012 +#: library/logging.rst:1011 msgid "" "Exception tuple (à la ``sys.exc_info``) or, if no exception has occurred, " "``None``." msgstr "" -#: library/logging.rst:1015 +#: library/logging.rst:1014 msgid "filename" msgstr "" -#: library/logging.rst:1015 +#: library/logging.rst:1014 msgid "``%(filename)s``" msgstr "" -#: library/logging.rst:1015 +#: library/logging.rst:1014 msgid "Filename portion of ``pathname``." msgstr "" -#: library/logging.rst:1017 +#: library/logging.rst:1016 msgid "funcName" msgstr "" -#: library/logging.rst:1017 +#: library/logging.rst:1016 msgid "``%(funcName)s``" msgstr "" -#: library/logging.rst:1017 +#: library/logging.rst:1016 msgid "Name of function containing the logging call." msgstr "" -#: library/logging.rst:1019 +#: library/logging.rst:1018 msgid "levelname" msgstr "" -#: library/logging.rst:1019 +#: library/logging.rst:1018 msgid "``%(levelname)s``" msgstr "" -#: library/logging.rst:1019 +#: library/logging.rst:1018 msgid "" "Text logging level for the message (``'DEBUG'``, ``'INFO'``, ``'WARNING'``, " "``'ERROR'``, ``'CRITICAL'``)." msgstr "" -#: library/logging.rst:1023 +#: library/logging.rst:1022 msgid "levelno" msgstr "" -#: library/logging.rst:1023 +#: library/logging.rst:1022 msgid "``%(levelno)s``" msgstr "" -#: library/logging.rst:1023 +#: library/logging.rst:1022 msgid "" "Numeric logging level for the message (:const:`DEBUG`, :const:`INFO`, :const:" "`WARNING`, :const:`ERROR`, :const:`CRITICAL`)." msgstr "" -#: library/logging.rst:1028 +#: library/logging.rst:1027 msgid "lineno" msgstr "" -#: library/logging.rst:1028 +#: library/logging.rst:1027 msgid "``%(lineno)d``" msgstr "" -#: library/logging.rst:1028 +#: library/logging.rst:1027 msgid "Source line number where the logging call was issued (if available)." msgstr "" -#: library/logging.rst:1031 +#: library/logging.rst:1030 msgid "message" msgstr "" -#: library/logging.rst:1031 +#: library/logging.rst:1030 msgid "``%(message)s``" msgstr "" -#: library/logging.rst:1031 +#: library/logging.rst:1030 msgid "" "The logged message, computed as ``msg % args``. This is set when :meth:" "`Formatter.format` is invoked." msgstr "" -#: library/logging.rst:1035 +#: library/logging.rst:1034 msgid "module" msgstr "" -#: library/logging.rst:1035 +#: library/logging.rst:1034 msgid "``%(module)s``" msgstr "" -#: library/logging.rst:1035 +#: library/logging.rst:1034 msgid "Module (name portion of ``filename``)." msgstr "" -#: library/logging.rst:1037 +#: library/logging.rst:1036 msgid "msecs" msgstr "" -#: library/logging.rst:1037 +#: library/logging.rst:1036 msgid "``%(msecs)d``" msgstr "" -#: library/logging.rst:1037 +#: library/logging.rst:1036 msgid "" "Millisecond portion of the time when the :class:`LogRecord` was created." msgstr "" -#: library/logging.rst:1040 +#: library/logging.rst:1039 msgid "msg" msgstr "" -#: library/logging.rst:1040 +#: library/logging.rst:1039 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 "" -#: library/logging.rst:1045 +#: library/logging.rst:1044 msgid "name" msgstr "" -#: library/logging.rst:1045 +#: library/logging.rst:1044 msgid "``%(name)s``" msgstr "" -#: library/logging.rst:1045 +#: library/logging.rst:1044 msgid "Name of the logger used to log the call." msgstr "" -#: library/logging.rst:1047 +#: library/logging.rst:1046 msgid "pathname" msgstr "" -#: library/logging.rst:1047 +#: library/logging.rst:1046 msgid "``%(pathname)s``" msgstr "" -#: library/logging.rst:1047 +#: library/logging.rst:1046 msgid "" "Full pathname of the source file where the logging call was issued (if " "available)." msgstr "" -#: library/logging.rst:1050 +#: library/logging.rst:1049 msgid "process" msgstr "" -#: library/logging.rst:1050 +#: library/logging.rst:1049 msgid "``%(process)d``" msgstr "" -#: library/logging.rst:1050 +#: library/logging.rst:1049 msgid "Process ID (if available)." msgstr "" -#: library/logging.rst:1052 +#: library/logging.rst:1051 msgid "processName" msgstr "" -#: library/logging.rst:1052 +#: library/logging.rst:1051 msgid "``%(processName)s``" msgstr "" -#: library/logging.rst:1052 +#: library/logging.rst:1051 msgid "Process name (if available)." msgstr "" -#: library/logging.rst:1054 +#: library/logging.rst:1053 msgid "relativeCreated" msgstr "" -#: library/logging.rst:1054 +#: library/logging.rst:1053 msgid "``%(relativeCreated)d``" msgstr "" -#: library/logging.rst:1054 +#: library/logging.rst:1053 msgid "" "Time in milliseconds when the LogRecord was created, relative to the time " "the logging module was loaded." msgstr "" -#: library/logging.rst:1058 +#: library/logging.rst:1057 msgid "stack_info" msgstr "" -#: library/logging.rst:1058 +#: library/logging.rst:1057 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 "" -#: library/logging.rst:1064 +#: library/logging.rst:1063 msgid "thread" msgstr "" -#: library/logging.rst:1064 +#: library/logging.rst:1063 msgid "``%(thread)d``" msgstr "" -#: library/logging.rst:1064 +#: library/logging.rst:1063 msgid "Thread ID (if available)." msgstr "" -#: library/logging.rst:1066 +#: library/logging.rst:1065 msgid "threadName" msgstr "" -#: library/logging.rst:1066 +#: library/logging.rst:1065 msgid "``%(threadName)s``" msgstr "" -#: library/logging.rst:1066 +#: library/logging.rst:1065 msgid "Thread name (if available)." msgstr "" -#: library/logging.rst:1068 +#: library/logging.rst:1067 msgid "taskName" msgstr "" -#: library/logging.rst:1068 +#: library/logging.rst:1067 msgid "``%(taskName)s``" msgstr "" -#: library/logging.rst:1068 +#: library/logging.rst:1067 msgid ":class:`asyncio.Task` name (if available)." msgstr "" -#: library/logging.rst:1071 +#: library/logging.rst:1070 msgid "*processName* was added." msgstr "" -#: library/logging.rst:1074 +#: library/logging.rst:1073 msgid "*taskName* was added." msgstr "" -#: library/logging.rst:1080 +#: library/logging.rst:1079 msgid "LoggerAdapter Objects" msgstr "" -#: library/logging.rst:1082 +#: library/logging.rst:1081 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 "" -#: library/logging.rst:1088 +#: library/logging.rst:1087 msgid "" "Returns an instance of :class:`LoggerAdapter` initialized with an " -"underlying :class:`Logger` instance, a dict-like object (*extra*), and a " -"boolean (*merge_extra*) indicating whether or not the *extra* argument of " -"individual log calls should be merged with the :class:`LoggerAdapter` extra. " -"The default behavior is to ignore the *extra* argument of individual log " -"calls and only use the one of the :class:`LoggerAdapter` instance" +"underlying :class:`Logger` instance, an optional dict-like object (*extra*), " +"and an optional boolean (*merge_extra*) indicating whether or not the " +"*extra* argument of individual log calls should be merged with the :class:" +"`LoggerAdapter` extra. The default behavior is to ignore the *extra* " +"argument of individual log calls and only use the one of the :class:" +"`LoggerAdapter` instance" msgstr "" #: library/logging.rst:1097 @@ -1622,23 +1622,27 @@ msgid "" msgstr "" #: library/logging.rst:1133 -msgid "The *merge_extra* argument was added." +msgid "The *extra* argument is now optional." msgstr "" #: library/logging.rst:1137 +msgid "The *merge_extra* parameter was added." +msgstr "" + +#: library/logging.rst:1141 msgid "Thread Safety" msgstr "" -#: library/logging.rst:1139 +#: library/logging.rst:1143 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 " +"needing to be done by its clients. It achieves this through 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 "" -#: library/logging.rst:1144 +#: library/logging.rst:1148 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 " @@ -1646,17 +1650,17 @@ msgid "" "always re-entrant, and so cannot be invoked from such signal handlers." msgstr "" -#: library/logging.rst:1151 +#: library/logging.rst:1155 msgid "Module-Level Functions" msgstr "" -#: library/logging.rst:1153 +#: library/logging.rst:1157 msgid "" "In addition to the classes described above, there are a number of module-" "level functions." msgstr "" -#: library/logging.rst:1159 +#: library/logging.rst:1163 msgid "" "Return a logger with the specified name or, if name is ``None``, return the " "root logger of the hierarchy. If specified, the name is typically a dot-" @@ -1666,14 +1670,14 @@ msgid "" "for not doing that, as mentioned in :ref:`logger`." msgstr "" -#: library/logging.rst:1166 +#: library/logging.rst:1170 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 "" -#: library/logging.rst:1173 +#: library/logging.rst:1177 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 " @@ -1682,43 +1686,43 @@ msgid "" "example::" msgstr "" -#: library/logging.rst:1178 +#: library/logging.rst:1182 msgid "" "class MyLogger(logging.getLoggerClass()):\n" " # ... override behaviour here" msgstr "" -#: library/logging.rst:1184 +#: library/logging.rst:1188 msgid "Return a callable which is used to create a :class:`LogRecord`." msgstr "" -#: library/logging.rst:1186 +#: library/logging.rst:1190 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 "" -#: library/logging.rst:1191 +#: library/logging.rst:1195 msgid "" "See :func:`setLogRecordFactory` for more information about the how the " "factory is called." msgstr "" -#: library/logging.rst:1196 +#: library/logging.rst:1200 msgid "" "This is a convenience function that calls :meth:`Logger.debug`, on the root " "logger. The handling of the arguments is in every way identical to what is " "described in that method." msgstr "" -#: library/logging.rst:1200 +#: library/logging.rst:1204 msgid "" "The only difference is that if the root logger has no handlers, then :func:" "`basicConfig` is called, prior to calling ``debug`` on the root logger." msgstr "" -#: library/logging.rst:1203 +#: library/logging.rst:1207 msgid "" "For very short scripts or quick demonstrations of ``logging`` facilities, " "``debug`` and the other module-level functions may be convenient. However, " @@ -1728,38 +1732,38 @@ msgid "" "described at the beginning of this documentation." msgstr "" -#: library/logging.rst:1213 +#: library/logging.rst:1217 msgid "" "Logs a message with level :const:`INFO` on the root logger. The arguments " "and behavior are otherwise the same as for :func:`debug`." msgstr "" -#: library/logging.rst:1219 +#: library/logging.rst:1223 msgid "" "Logs a message with level :const:`WARNING` on the root logger. The arguments " "and behavior are otherwise the same as for :func:`debug`." msgstr "" -#: library/logging.rst:1222 +#: library/logging.rst:1226 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 "" -#: library/logging.rst:1229 +#: library/logging.rst:1233 msgid "" "Logs a message with level :const:`ERROR` on the root logger. The arguments " "and behavior are otherwise the same as for :func:`debug`." msgstr "" -#: library/logging.rst:1235 +#: library/logging.rst:1239 msgid "" "Logs a message with level :const:`CRITICAL` on the root logger. The " "arguments and behavior are otherwise the same as for :func:`debug`." msgstr "" -#: library/logging.rst:1241 +#: library/logging.rst:1245 msgid "" "Logs a message with level :const:`ERROR` on the root logger. The arguments " "and behavior are otherwise the same as for :func:`debug`. Exception info is " @@ -1767,13 +1771,13 @@ msgid "" "exception handler." msgstr "" -#: library/logging.rst:1247 +#: library/logging.rst:1251 msgid "" "Logs a message with level *level* on the root logger. The arguments and " "behavior are otherwise the same as for :func:`debug`." msgstr "" -#: library/logging.rst:1252 +#: library/logging.rst:1256 msgid "" "Provides an overriding level *level* for all loggers which takes precedence " "over the logger's own level. When the need arises to temporarily throttle " @@ -1787,7 +1791,7 @@ msgid "" "individual loggers." msgstr "" -#: library/logging.rst:1263 +#: library/logging.rst:1267 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 " @@ -1795,13 +1799,13 @@ msgid "" "a suitable value." msgstr "" -#: library/logging.rst:1268 +#: library/logging.rst:1272 msgid "" "The *level* parameter was defaulted to level ``CRITICAL``. See :issue:" "`28524` for more information about this change." msgstr "" -#: library/logging.rst:1274 +#: library/logging.rst:1278 msgid "" "Associates level *level* with text *levelName* in an internal dictionary, " "which is used to map numeric levels to a textual representation, for example " @@ -1811,24 +1815,24 @@ msgid "" "and they should increase in increasing order of severity." msgstr "" -#: library/logging.rst:1281 +#: library/logging.rst:1285 msgid "" "If you are thinking of defining your own levels, please see the section on :" "ref:`custom-levels`." msgstr "" -#: library/logging.rst:1286 +#: library/logging.rst:1290 msgid "" "Returns a mapping from level names to their corresponding logging levels. " "For example, the string \"CRITICAL\" maps to :const:`CRITICAL`. The returned " "mapping is copied from an internal mapping on each call to this function." msgstr "" -#: library/logging.rst:1294 +#: library/logging.rst:1298 msgid "Returns the textual or numeric representation of logging level *level*." msgstr "" -#: library/logging.rst:1296 +#: library/logging.rst:1300 msgid "" "If *level* is one of the predefined levels :const:`CRITICAL`, :const:" "`ERROR`, :const:`WARNING`, :const:`INFO` or :const:`DEBUG` then you get the " @@ -1838,20 +1842,20 @@ msgid "" "the corresponding string representation is returned." msgstr "" -#: library/logging.rst:1303 +#: library/logging.rst:1307 msgid "" "The *level* parameter also accepts a string representation of the level such " "as 'INFO'. In such cases, this functions returns the corresponding numeric " "value of the level." msgstr "" -#: library/logging.rst:1307 +#: library/logging.rst:1311 msgid "" "If no matching numeric or string value is passed in, the string 'Level %s' % " "level is returned." msgstr "" -#: library/logging.rst:1310 +#: library/logging.rst:1314 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 " @@ -1860,7 +1864,7 @@ msgid "" "vice versa." msgstr "" -#: library/logging.rst:1316 +#: library/logging.rst:1320 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. " @@ -1868,17 +1872,17 @@ msgid "" "Python 3.4, but reinstated in 3.4.2 due to retain backward compatibility." msgstr "" -#: library/logging.rst:1324 +#: library/logging.rst:1328 msgid "" "Returns a handler with the specified *name*, or ``None`` if there is no " "handler with that name." msgstr "" -#: library/logging.rst:1331 +#: library/logging.rst:1335 msgid "Returns an immutable set of all known handler names." msgstr "" -#: library/logging.rst:1337 +#: library/logging.rst:1341 msgid "" "Creates and returns a new :class:`LogRecord` instance whose attributes are " "defined by *attrdict*. This function is useful for taking a pickled :class:" @@ -1886,7 +1890,7 @@ msgid "" "as a :class:`LogRecord` instance at the receiving end." msgstr "" -#: library/logging.rst:1345 +#: library/logging.rst:1349 msgid "" "Does basic configuration for the logging system by creating a :class:" "`StreamHandler` with a default :class:`Formatter` and adding it to the root " @@ -1895,13 +1899,13 @@ msgid "" "no handlers are defined for the root logger." msgstr "" -#: library/logging.rst:1351 +#: library/logging.rst:1355 msgid "" "This function does nothing if the root logger already has handlers " "configured, unless the keyword argument *force* is set to ``True``." msgstr "" -#: library/logging.rst:1354 +#: library/logging.rst:1358 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 " @@ -1910,54 +1914,54 @@ msgid "" "unexpected results such as messages being duplicated in the log." msgstr "" -#: library/logging.rst:1361 +#: library/logging.rst:1365 msgid "The following keyword arguments are supported." msgstr "" -#: library/logging.rst:1368 +#: library/logging.rst:1372 msgid "*filename*" msgstr "" -#: library/logging.rst:1368 +#: library/logging.rst:1372 msgid "" "Specifies that a :class:`FileHandler` be created, using the specified " "filename, rather than a :class:`StreamHandler`." msgstr "" -#: library/logging.rst:1372 +#: library/logging.rst:1376 msgid "*filemode*" msgstr "" -#: library/logging.rst:1372 +#: library/logging.rst:1376 msgid "" "If *filename* is specified, open the file in this :ref:`mode `. " "Defaults to ``'a'``." msgstr "" -#: library/logging.rst:1376 +#: library/logging.rst:1380 msgid "*format*" msgstr "" -#: library/logging.rst:1376 +#: library/logging.rst:1380 msgid "" "Use the specified format string for the handler. Defaults to attributes " "``levelname``, ``name`` and ``message`` separated by colons." msgstr "" -#: library/logging.rst:1381 +#: library/logging.rst:1385 msgid "*datefmt*" msgstr "" -#: library/logging.rst:1381 +#: library/logging.rst:1385 msgid "" "Use the specified date/time format, as accepted by :func:`time.strftime`." msgstr "" -#: library/logging.rst:1384 +#: library/logging.rst:1388 msgid "*style*" msgstr "" -#: library/logging.rst:1384 +#: library/logging.rst:1388 msgid "" "If *format* is specified, use this style for the format string. One of " "``'%'``, ``'{'`` or ``'$'`` for :ref:`printf-style `." msgstr "" -#: library/logging.rst:1395 +#: library/logging.rst:1399 msgid "*stream*" msgstr "" -#: library/logging.rst:1395 +#: library/logging.rst:1399 msgid "" "Use the specified stream to initialize the :class:`StreamHandler`. Note that " "this argument is incompatible with *filename* - if both are present, a " "``ValueError`` is raised." msgstr "" -#: library/logging.rst:1401 +#: library/logging.rst:1405 msgid "*handlers*" msgstr "" -#: library/logging.rst:1401 +#: library/logging.rst:1405 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 " @@ -1997,33 +2001,33 @@ msgid "" "present, a ``ValueError`` is raised." msgstr "" -#: library/logging.rst:1410 +#: library/logging.rst:1414 msgid "*force*" msgstr "" -#: library/logging.rst:1410 +#: library/logging.rst:1414 msgid "" "If this keyword argument is specified as true, any existing handlers " "attached to the root logger are removed and closed, before carrying out the " "configuration as specified by the other arguments." msgstr "" -#: library/logging.rst:1416 +#: library/logging.rst:1420 msgid "*encoding*" msgstr "" -#: library/logging.rst:1416 +#: library/logging.rst:1420 msgid "" "If this keyword argument is specified along with *filename*, its value is " "used when the :class:`FileHandler` is created, and thus used when opening " "the output file." msgstr "" -#: library/logging.rst:1421 +#: library/logging.rst:1425 msgid "*errors*" msgstr "" -#: library/logging.rst:1421 +#: library/logging.rst:1425 msgid "" "If this keyword argument is specified along with *filename*, its value is " "used when the :class:`FileHandler` is created, and thus used when opening " @@ -2032,39 +2036,39 @@ msgid "" "`open`, which means that it will be treated the same as passing 'errors'." msgstr "" -#: library/logging.rst:1432 +#: library/logging.rst:1436 msgid "The *style* argument was added." msgstr "" -#: library/logging.rst:1435 +#: library/logging.rst:1439 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 "" -#: library/logging.rst:1441 +#: library/logging.rst:1445 msgid "The *force* argument was added." msgstr "" -#: library/logging.rst:1444 +#: library/logging.rst:1448 msgid "The *encoding* and *errors* arguments were added." msgstr "" -#: library/logging.rst:1449 +#: library/logging.rst:1453 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 "" -#: library/logging.rst:1453 +#: library/logging.rst:1457 msgid "" "When the logging module is imported, it registers this function as an exit " "handler (see :mod:`atexit`), so normally there's no need to do that manually." msgstr "" -#: library/logging.rst:1460 +#: library/logging.rst:1464 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 " @@ -2076,32 +2080,32 @@ msgid "" "loggers." msgstr "" -#: library/logging.rst:1471 +#: library/logging.rst:1475 msgid "Set a callable which is used to create a :class:`LogRecord`." msgstr "" -#: library/logging.rst:1473 +#: library/logging.rst:1477 msgid "The factory callable to be used to instantiate a log record." msgstr "" -#: library/logging.rst:1475 +#: library/logging.rst:1479 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 "" -#: library/logging.rst:1480 +#: library/logging.rst:1484 msgid "The factory has the following signature:" msgstr "" -#: library/logging.rst:1482 +#: library/logging.rst:1486 msgid "" "``factory(name, level, fn, lno, msg, args, exc_info, func=None, sinfo=None, " "**kwargs)``" msgstr "" -#: library/logging.rst:1484 +#: library/logging.rst:1488 msgid "The logger name." msgstr "" @@ -2109,7 +2113,7 @@ msgstr "" msgid "level" msgstr "" -#: library/logging.rst:1485 +#: library/logging.rst:1489 msgid "The logging level (numeric)." msgstr "" @@ -2117,7 +2121,7 @@ msgstr "" msgid "fn" msgstr "" -#: library/logging.rst:1486 +#: library/logging.rst:1490 msgid "The full pathname of the file where the logging call was made." msgstr "" @@ -2125,19 +2129,19 @@ msgstr "" msgid "lno" msgstr "" -#: library/logging.rst:1487 +#: library/logging.rst:1491 msgid "The line number in the file where the logging call was made." msgstr "" -#: library/logging.rst:1488 +#: library/logging.rst:1492 msgid "The logging message." msgstr "" -#: library/logging.rst:1489 +#: library/logging.rst:1493 msgid "The arguments for the logging message." msgstr "" -#: library/logging.rst:1490 +#: library/logging.rst:1494 msgid "An exception tuple, or ``None``." msgstr "" @@ -2145,7 +2149,7 @@ msgstr "" msgid "func" msgstr "" -#: library/logging.rst:1491 +#: library/logging.rst:1495 msgid "The name of the function or method which invoked the logging call." msgstr "" @@ -2153,7 +2157,7 @@ msgstr "" msgid "sinfo" msgstr "" -#: library/logging.rst:1493 +#: library/logging.rst:1497 msgid "" "A stack traceback such as is provided by :func:`traceback.print_stack`, " "showing the call hierarchy." @@ -2163,15 +2167,15 @@ msgstr "" msgid "kwargs" msgstr "" -#: library/logging.rst:1495 +#: library/logging.rst:1499 msgid "Additional keyword arguments." msgstr "" -#: library/logging.rst:1499 +#: library/logging.rst:1503 msgid "Module-Level Attributes" msgstr "" -#: library/logging.rst:1503 +#: library/logging.rst:1507 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``, " @@ -2182,15 +2186,15 @@ msgid "" "reason, ``lastResort`` can be set to ``None``." msgstr "" -#: library/logging.rst:1515 +#: library/logging.rst:1519 msgid "Used to see if exceptions during handling should be propagated." msgstr "" -#: library/logging.rst:1517 +#: library/logging.rst:1521 msgid "Default: ``True``." msgstr "" -#: library/logging.rst:1519 +#: library/logging.rst:1523 msgid "" "If :data:`raiseExceptions` is ``False``, exceptions get silently ignored. " "This is what is mostly wanted for a logging system - most users will not " @@ -2198,22 +2202,22 @@ msgid "" "application errors." msgstr "" -#: library/logging.rst:1526 +#: library/logging.rst:1530 msgid "Integration with the warnings module" msgstr "" -#: library/logging.rst:1528 +#: library/logging.rst:1532 msgid "" "The :func:`captureWarnings` function can be used to integrate :mod:`logging` " "with the :mod:`warnings` module." msgstr "" -#: library/logging.rst:1533 +#: library/logging.rst:1537 msgid "" "This function is used to turn the capture of warnings by logging on and off." msgstr "" -#: library/logging.rst:1536 +#: library/logging.rst:1540 msgid "" "If *capture* is ``True``, warnings issued by the :mod:`warnings` module will " "be redirected to the logging system. Specifically, a warning will be " @@ -2222,46 +2226,46 @@ msgid "" "`WARNING`." msgstr "" -#: library/logging.rst:1541 +#: library/logging.rst:1545 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 "" -#: library/logging.rst:1548 +#: library/logging.rst:1552 msgid "Module :mod:`logging.config`" msgstr "" -#: library/logging.rst:1549 +#: library/logging.rst:1553 msgid "Configuration API for the logging module." msgstr "" -#: library/logging.rst:1551 +#: library/logging.rst:1555 msgid "Module :mod:`logging.handlers`" msgstr "" -#: library/logging.rst:1552 +#: library/logging.rst:1556 msgid "Useful handlers included with the logging module." msgstr "" -#: library/logging.rst:1554 +#: library/logging.rst:1558 msgid ":pep:`282` - A Logging System" msgstr "" -#: library/logging.rst:1555 +#: library/logging.rst:1559 msgid "" "The proposal which described this feature for inclusion in the Python " "standard library." msgstr "" -#: library/logging.rst:1558 +#: library/logging.rst:1562 msgid "" "`Original Python logging package `_" msgstr "" -#: library/logging.rst:1559 +#: library/logging.rst:1563 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, " diff --git a/library/lzma.po b/library/lzma.po index 0426d947..e50c1c42 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,23 +41,31 @@ msgid "" "multiple threads, it is necessary to protect it with a lock." msgstr "" -#: library/lzma.rst:29 +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." +msgstr "" + +#: library/lzma.rst:31 msgid "" "This exception is raised when an error occurs during compression or " "decompression, or while initializing the compressor/decompressor state." msgstr "" -#: library/lzma.rst:34 +#: library/lzma.rst:36 msgid "Reading and writing compressed files" msgstr "" -#: library/lzma.rst:38 +#: library/lzma.rst:40 msgid "" "Open an LZMA-compressed file in binary or text mode, returning a :term:`file " "object`." msgstr "" -#: library/lzma.rst:41 +#: library/lzma.rst:43 msgid "" "The *filename* argument can be either an actual file name (given as a :class:" "`str`, :class:`bytes` or :term:`path-like ` object), in " @@ -65,7 +73,7 @@ msgid "" "read from or write to." msgstr "" -#: library/lzma.rst:46 +#: library/lzma.rst:48 msgid "" "The *mode* argument can be any of ``\"r\"``, ``\"rb\"``, ``\"w\"``, " "``\"wb\"``, ``\"x\"``, ``\"xb\"``, ``\"a\"`` or ``\"ab\"`` for binary mode, " @@ -73,46 +81,46 @@ msgid "" "default is ``\"rb\"``." msgstr "" -#: library/lzma.rst:95 +#: library/lzma.rst:97 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 "" -#: library/lzma.rst:99 +#: library/lzma.rst:101 msgid "" "When opening a file for writing, the *format*, *check*, *preset* and " "*filters* arguments have the same meanings as for :class:`LZMACompressor`." msgstr "" -#: library/lzma.rst:57 +#: library/lzma.rst:59 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 "" -#: library/lzma.rst:61 +#: library/lzma.rst:63 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 "" -#: library/lzma.rst:65 +#: library/lzma.rst:67 msgid "Added support for the ``\"x\"``, ``\"xb\"`` and ``\"xt\"`` modes." msgstr "" -#: library/lzma.rst:141 +#: library/lzma.rst:143 msgid "Accepts a :term:`path-like object`." msgstr "" -#: library/lzma.rst:74 +#: library/lzma.rst:76 msgid "Open an LZMA-compressed file in binary mode." msgstr "" -#: library/lzma.rst:76 +#: library/lzma.rst:78 msgid "" "An :class:`LZMAFile` can wrap an already-open :term:`file object`, or " "operate directly on a named file. The *filename* argument specifies either " @@ -122,7 +130,7 @@ msgid "" "the :class:`LZMAFile` is closed." msgstr "" -#: library/lzma.rst:83 +#: library/lzma.rst:85 msgid "" "The *mode* argument can be either ``\"r\"`` for reading (default), ``\"w\"`` " "for overwriting, ``\"x\"`` for exclusive creation, or ``\"a\"`` for " @@ -130,38 +138,38 @@ msgid "" "``\"xb\"`` and ``\"ab\"`` respectively." msgstr "" -#: library/lzma.rst:88 +#: library/lzma.rst:90 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 "" -#: library/lzma.rst:91 +#: library/lzma.rst:93 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 "" -#: library/lzma.rst:102 +#: library/lzma.rst:104 msgid "" ":class:`LZMAFile` supports all the members specified by :class:`io." "BufferedIOBase`, except for :meth:`~io.BufferedIOBase.detach` and :meth:`~io." "IOBase.truncate`. Iteration and the :keyword:`with` statement are supported." msgstr "" -#: library/lzma.rst:107 +#: library/lzma.rst:109 msgid "The following method and attributes are also provided:" msgstr "" -#: library/lzma.rst:111 +#: library/lzma.rst:113 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 "" -#: library/lzma.rst:115 +#: library/lzma.rst:117 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. " @@ -169,70 +177,70 @@ msgid "" "*filename*)." msgstr "" -#: library/lzma.rst:122 +#: library/lzma.rst:124 msgid "``'rb'`` for reading and ``'wb'`` for writing." msgstr "" -#: library/lzma.rst:128 +#: library/lzma.rst:130 msgid "" "The lzma file name. Equivalent to the :attr:`~io.FileIO.name` attribute of " "the underlying :term:`file object`." msgstr "" -#: library/lzma.rst:134 +#: library/lzma.rst:136 msgid "Added support for the ``\"x\"`` and ``\"xb\"`` modes." msgstr "" -#: library/lzma.rst:137 +#: library/lzma.rst:139 msgid "" "The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " "``None``." msgstr "" -#: library/lzma.rst:146 +#: library/lzma.rst:148 msgid "Compressing and decompressing data in memory" msgstr "" -#: library/lzma.rst:150 +#: library/lzma.rst:152 msgid "" "Create a compressor object, which can be used to compress data incrementally." msgstr "" -#: library/lzma.rst:152 +#: library/lzma.rst:154 msgid "" "For a more convenient way of compressing a single chunk of data, see :func:" "`compress`." msgstr "" -#: library/lzma.rst:155 +#: library/lzma.rst:157 msgid "" "The *format* argument specifies what container format should be used. " "Possible values are:" msgstr "" -#: library/lzma.rst:158 +#: library/lzma.rst:160 msgid ":const:`FORMAT_XZ`: The ``.xz`` container format." msgstr "" -#: library/lzma.rst:159 +#: library/lzma.rst:161 msgid "This is the default format." msgstr "" -#: library/lzma.rst:161 +#: library/lzma.rst:163 msgid ":const:`FORMAT_ALONE`: The legacy ``.lzma`` container format." msgstr "" -#: library/lzma.rst:162 +#: library/lzma.rst:164 msgid "" "This format is more limited than ``.xz`` -- it does not support integrity " "checks or multiple filters." msgstr "" -#: library/lzma.rst:165 +#: library/lzma.rst:167 msgid ":const:`FORMAT_RAW`: A raw data stream, not using any container format." msgstr "" -#: library/lzma.rst:166 +#: library/lzma.rst:168 msgid "" "This format specifier does not support integrity checks, and requires that " "you always specify a custom filter chain (for both compression and " @@ -240,46 +248,46 @@ msgid "" "decompressed using :const:`FORMAT_AUTO` (see :class:`LZMADecompressor`)." msgstr "" -#: library/lzma.rst:171 +#: library/lzma.rst:173 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 "" -#: library/lzma.rst:175 +#: library/lzma.rst:177 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 "" -#: library/lzma.rst:179 +#: library/lzma.rst:181 msgid ":const:`CHECK_CRC32`: 32-bit Cyclic Redundancy Check." msgstr "" -#: library/lzma.rst:181 +#: library/lzma.rst:183 msgid "" ":const:`CHECK_CRC64`: 64-bit Cyclic Redundancy Check. This is the default " "for :const:`FORMAT_XZ`." msgstr "" -#: library/lzma.rst:184 +#: library/lzma.rst:186 msgid ":const:`CHECK_SHA256`: 256-bit Secure Hash Algorithm." msgstr "" -#: library/lzma.rst:186 +#: library/lzma.rst:188 msgid "" "If the specified check is not supported, an :class:`LZMAError` is raised." msgstr "" -#: library/lzma.rst:188 +#: library/lzma.rst:190 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 "" -#: library/lzma.rst:192 +#: library/lzma.rst:194 msgid "" "The *preset* argument (if provided) should be an integer between ``0`` and " "``9`` (inclusive), optionally OR-ed with the constant :const:" @@ -288,7 +296,7 @@ msgid "" "presets produce smaller output, but make the compression process slower." msgstr "" -#: library/lzma.rst:201 +#: library/lzma.rst:203 msgid "" "In addition to being more CPU-intensive, compression with higher presets " "also requires much more memory (and produces output that needs more memory " @@ -297,13 +305,13 @@ msgid "" "generally best to stick with the default preset." msgstr "" -#: library/lzma.rst:207 +#: library/lzma.rst:209 msgid "" "The *filters* argument (if provided) should be a filter chain specifier. " "See :ref:`filter-chain-specs` for details." msgstr "" -#: library/lzma.rst:212 +#: library/lzma.rst:214 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* " @@ -312,29 +320,29 @@ msgid "" "any previous calls to :meth:`compress`." msgstr "" -#: library/lzma.rst:220 +#: library/lzma.rst:222 msgid "" "Finish the compression process, returning a :class:`bytes` object containing " "any data stored in the compressor's internal buffers." msgstr "" -#: library/lzma.rst:223 +#: library/lzma.rst:225 msgid "The compressor cannot be used after this method has been called." msgstr "" -#: library/lzma.rst:228 +#: library/lzma.rst:230 msgid "" "Create a decompressor object, which can be used to decompress data " "incrementally." msgstr "" -#: library/lzma.rst:231 +#: library/lzma.rst:233 msgid "" "For a more convenient way of decompressing an entire compressed stream at " "once, see :func:`decompress`." msgstr "" -#: library/lzma.rst:234 +#: library/lzma.rst:236 msgid "" "The *format* argument specifies the container format that should be used. " "The default is :const:`FORMAT_AUTO`, which can decompress both ``.xz`` and " @@ -342,7 +350,7 @@ msgid "" "`FORMAT_ALONE`, and :const:`FORMAT_RAW`." msgstr "" -#: library/lzma.rst:239 +#: library/lzma.rst:241 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 " @@ -350,7 +358,7 @@ msgid "" "input within the given memory limit." msgstr "" -#: library/lzma.rst:244 +#: library/lzma.rst:246 msgid "" "The *filters* argument specifies the filter chain that was used to create " "the stream being decompressed. This argument is required if *format* is :" @@ -358,7 +366,7 @@ msgid "" "`filter-chain-specs` for more information about filter chains." msgstr "" -#: library/lzma.rst:250 +#: library/lzma.rst:252 msgid "" "This class does not transparently handle inputs containing multiple " "compressed streams, unlike :func:`decompress` and :class:`LZMAFile`. To " @@ -366,7 +374,7 @@ msgid "" "create a new decompressor for each stream." msgstr "" -#: library/lzma.rst:257 +#: library/lzma.rst:259 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 " @@ -374,7 +382,7 @@ msgid "" "output of any previous calls to :meth:`decompress`." msgstr "" -#: library/lzma.rst:263 +#: library/lzma.rst:265 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 " @@ -383,100 +391,100 @@ msgid "" "``b''`` to obtain more of the output." msgstr "" -#: library/lzma.rst:270 +#: library/lzma.rst:272 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 "" -#: library/lzma.rst:275 +#: library/lzma.rst:277 msgid "" "Attempting to decompress data after the end of stream is reached raises an :" "exc:`EOFError`. Any data found after the end of the stream is ignored and " "saved in the :attr:`~.unused_data` attribute." msgstr "" -#: library/lzma.rst:279 +#: library/lzma.rst:281 msgid "Added the *max_length* parameter." msgstr "" -#: library/lzma.rst:284 +#: library/lzma.rst:286 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 "" -#: library/lzma.rst:290 +#: library/lzma.rst:292 msgid "``True`` if the end-of-stream marker has been reached." msgstr "" -#: library/lzma.rst:294 +#: library/lzma.rst:296 msgid "Data found after the end of the compressed stream." msgstr "" -#: library/lzma.rst:296 +#: library/lzma.rst:298 msgid "Before the end of the stream is reached, this will be ``b\"\"``." msgstr "" -#: library/lzma.rst:300 +#: library/lzma.rst:302 msgid "" "``False`` if the :meth:`.decompress` method can provide more decompressed " "data before requiring new uncompressed input." msgstr "" -#: library/lzma.rst:307 +#: library/lzma.rst:309 msgid "" "Compress *data* (a :class:`bytes` object), returning the compressed data as " "a :class:`bytes` object." msgstr "" -#: library/lzma.rst:310 +#: library/lzma.rst:312 msgid "" "See :class:`LZMACompressor` above for a description of the *format*, " "*check*, *preset* and *filters* arguments." msgstr "" -#: library/lzma.rst:316 +#: library/lzma.rst:318 msgid "" "Decompress *data* (a :class:`bytes` object), returning the uncompressed data " "as a :class:`bytes` object." msgstr "" -#: library/lzma.rst:319 +#: library/lzma.rst:321 msgid "" "If *data* is the concatenation of multiple distinct compressed streams, " "decompress all of these streams, and return the concatenation of the results." msgstr "" -#: library/lzma.rst:322 +#: library/lzma.rst:324 msgid "" "See :class:`LZMADecompressor` above for a description of the *format*, " "*memlimit* and *filters* arguments." msgstr "" -#: library/lzma.rst:327 +#: library/lzma.rst:329 msgid "Miscellaneous" msgstr "" -#: library/lzma.rst:331 +#: library/lzma.rst:333 msgid "" "Return ``True`` if the given integrity check is supported on this system." msgstr "" -#: library/lzma.rst:333 +#: library/lzma.rst:335 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 "" -#: library/lzma.rst:342 +#: library/lzma.rst:344 msgid "Specifying custom filter chains" msgstr "" -#: library/lzma.rst:344 +#: library/lzma.rst:346 msgid "" "A filter chain specifier is a sequence of dictionaries, where each " "dictionary contains the ID and options for a single filter. Each dictionary " @@ -484,118 +492,118 @@ msgid "" "filter-dependent options. Valid filter IDs are as follows:" msgstr "" -#: library/lzma.rst:349 +#: library/lzma.rst:351 msgid "Compression filters:" msgstr "" -#: library/lzma.rst:351 +#: library/lzma.rst:353 msgid ":const:`FILTER_LZMA1` (for use with :const:`FORMAT_ALONE`)" msgstr "" -#: library/lzma.rst:352 +#: library/lzma.rst:354 msgid "" ":const:`FILTER_LZMA2` (for use with :const:`FORMAT_XZ` and :const:" "`FORMAT_RAW`)" msgstr "" -#: library/lzma.rst:354 +#: library/lzma.rst:356 msgid "Delta filter:" msgstr "" -#: library/lzma.rst:356 +#: library/lzma.rst:358 msgid ":const:`FILTER_DELTA`" msgstr "" -#: library/lzma.rst:358 +#: library/lzma.rst:360 msgid "Branch-Call-Jump (BCJ) filters:" msgstr "" -#: library/lzma.rst:360 +#: library/lzma.rst:362 msgid ":const:`FILTER_X86`" msgstr "" -#: library/lzma.rst:361 +#: library/lzma.rst:363 msgid ":const:`FILTER_IA64`" msgstr "" -#: library/lzma.rst:362 +#: library/lzma.rst:364 msgid ":const:`FILTER_ARM`" msgstr "" -#: library/lzma.rst:363 +#: library/lzma.rst:365 msgid ":const:`FILTER_ARMTHUMB`" msgstr "" -#: library/lzma.rst:364 +#: library/lzma.rst:366 msgid ":const:`FILTER_POWERPC`" msgstr "" -#: library/lzma.rst:365 +#: library/lzma.rst:367 msgid ":const:`FILTER_SPARC`" msgstr "" -#: library/lzma.rst:367 +#: library/lzma.rst:369 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 "" -#: library/lzma.rst:371 +#: library/lzma.rst:373 msgid "" "Compression filters support the following options (specified as additional " "entries in the dictionary representing the filter):" msgstr "" -#: library/lzma.rst:374 +#: library/lzma.rst:376 msgid "" "``preset``: A compression preset to use as a source of default values for " "options that are not specified explicitly." msgstr "" -#: library/lzma.rst:376 +#: library/lzma.rst:378 msgid "" "``dict_size``: Dictionary size in bytes. This should be between 4 KiB and " "1.5 GiB (inclusive)." msgstr "" -#: library/lzma.rst:378 +#: library/lzma.rst:380 msgid "``lc``: Number of literal context bits." msgstr "" -#: library/lzma.rst:379 +#: library/lzma.rst:381 msgid "" "``lp``: Number of literal position bits. The sum ``lc + lp`` must be at most " "4." msgstr "" -#: library/lzma.rst:381 +#: library/lzma.rst:383 msgid "``pb``: Number of position bits; must be at most 4." msgstr "" -#: library/lzma.rst:382 +#: library/lzma.rst:384 msgid "``mode``: :const:`MODE_FAST` or :const:`MODE_NORMAL`." msgstr "" -#: library/lzma.rst:383 +#: library/lzma.rst:385 msgid "" "``nice_len``: What should be considered a \"nice length\" for a match. This " "should be 273 or less." msgstr "" -#: library/lzma.rst:385 +#: library/lzma.rst:387 msgid "" "``mf``: What match finder to use -- :const:`MF_HC3`, :const:`MF_HC4`, :const:" "`MF_BT2`, :const:`MF_BT3`, or :const:`MF_BT4`." msgstr "" -#: library/lzma.rst:387 +#: library/lzma.rst:389 msgid "" "``depth``: Maximum search depth used by match finder. 0 (default) means to " "select automatically based on other filter options." msgstr "" -#: library/lzma.rst:390 +#: library/lzma.rst:392 msgid "" "The delta filter stores the differences between bytes, producing more " "repetitive input for the compressor in certain circumstances. It supports " @@ -604,7 +612,7 @@ msgid "" "bytes." msgstr "" -#: library/lzma.rst:395 +#: library/lzma.rst:397 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, " @@ -614,26 +622,26 @@ msgid "" "data. The default is 0." msgstr "" -#: library/lzma.rst:403 +#: library/lzma.rst:405 msgid "Examples" msgstr "" -#: library/lzma.rst:405 +#: library/lzma.rst:407 msgid "Reading in a compressed file::" msgstr "" -#: library/lzma.rst:407 +#: library/lzma.rst:409 msgid "" "import lzma\n" "with lzma.open(\"file.xz\") as f:\n" " file_content = f.read()" msgstr "" -#: library/lzma.rst:411 +#: library/lzma.rst:413 msgid "Creating a compressed file::" msgstr "" -#: library/lzma.rst:413 +#: library/lzma.rst:415 msgid "" "import lzma\n" "data = b\"Insert Data Here\"\n" @@ -641,22 +649,22 @@ msgid "" " f.write(data)" msgstr "" -#: library/lzma.rst:418 +#: library/lzma.rst:420 msgid "Compressing data in memory::" msgstr "" -#: library/lzma.rst:420 +#: library/lzma.rst:422 msgid "" "import lzma\n" "data_in = b\"Insert Data Here\"\n" "data_out = lzma.compress(data_in)" msgstr "" -#: library/lzma.rst:424 +#: library/lzma.rst:426 msgid "Incremental compression::" msgstr "" -#: library/lzma.rst:426 +#: library/lzma.rst:428 msgid "" "import lzma\n" "lzc = lzma.LZMACompressor()\n" @@ -668,11 +676,11 @@ msgid "" "result = b\"\".join([out1, out2, out3, out4])" msgstr "" -#: library/lzma.rst:435 +#: library/lzma.rst:437 msgid "Writing compressed data to an already-open file::" msgstr "" -#: library/lzma.rst:437 +#: library/lzma.rst:439 msgid "" "import lzma\n" "with open(\"file.xz\", \"wb\") as f:\n" @@ -682,11 +690,11 @@ msgid "" " f.write(b\"Not compressed\\n\")" msgstr "" -#: library/lzma.rst:444 +#: library/lzma.rst:446 msgid "Creating a compressed file using a custom filter chain::" msgstr "" -#: library/lzma.rst:446 +#: library/lzma.rst:448 msgid "" "import lzma\n" "my_filters = [\n" diff --git a/library/mailbox.po b/library/mailbox.po index 06e6e197..df37e931 100644 --- a/library/mailbox.po +++ b/library/mailbox.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1021,7 +1021,7 @@ msgid "" "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 " +"rfc:`5322`\\ -compliant message, which is read and parsed. Files should be " "open in binary mode, but text mode files are accepted for backward " "compatibility." msgstr "" diff --git a/library/mailcap.po b/library/mailcap.po index fc0f15ee..361ae8ea 100644 --- a/library/mailcap.po +++ b/library/mailcap.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/markup.po b/library/markup.po index d93ae1bd..33f067d2 100644 --- a/library/markup.po +++ b/library/markup.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/marshal.po b/library/marshal.po index 0836d283..dd5ca235 100644 --- a/library/marshal.po +++ b/library/marshal.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/math.po b/library/math.po index 5835ff7d..3693e6e4 100644 --- a/library/math.po +++ b/library/math.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1314,8 +1314,8 @@ 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!" +"(still) Wrong `_, and start celebrating `Tau " +"day `_ by eating twice as much pie!" msgstr "" #: library/math.rst:785 diff --git a/library/mimetypes.po b/library/mimetypes.po index dd3f8c93..7859ee8a 100644 --- a/library/mimetypes.po +++ b/library/mimetypes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/mm.po b/library/mm.po index 614677d0..d0935a9e 100644 --- a/library/mm.po +++ b/library/mm.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/mmap.po b/library/mmap.po index d2d43292..fc5109be 100644 --- a/library/mmap.po +++ b/library/mmap.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -278,11 +278,11 @@ msgid "" "``-1`` on failure." msgstr "" -#: library/mmap.rst:291 library/mmap.rst:331 +#: library/mmap.rst:292 library/mmap.rst:332 msgid "Writable :term:`bytes-like object` is now accepted." msgstr "" -#: library/mmap.rst:205 +#: library/mmap.rst:206 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 " @@ -292,20 +292,20 @@ msgid "" "`PAGESIZE` or :const:`ALLOCATIONGRANULARITY`." msgstr "" -#: library/mmap.rst:212 +#: library/mmap.rst:213 msgid "" "``None`` is returned to indicate success. An exception is raised when the " "call failed." msgstr "" -#: library/mmap.rst:215 +#: library/mmap.rst:216 msgid "" "Previously, a nonzero value was returned on success; zero was returned on " "error under Windows. A zero value was returned on success; an exception was " "raised on error under Unix." msgstr "" -#: library/mmap.rst:223 +#: library/mmap.rst:224 msgid "" "Send advice *option* to the kernel about the memory region beginning at " "*start* and extending *length* bytes. *option* must be one of the :ref:" @@ -314,18 +314,18 @@ msgid "" "(including Linux), *start* must be a multiple of the :const:`PAGESIZE`." msgstr "" -#: library/mmap.rst:230 +#: library/mmap.rst:231 msgid "Availability: Systems with the ``madvise()`` system call." msgstr "" -#: library/mmap.rst:237 +#: library/mmap.rst:238 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 "" -#: library/mmap.rst:244 +#: library/mmap.rst:245 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 " @@ -333,36 +333,36 @@ msgid "" "position is updated to point after the bytes that were returned." msgstr "" -#: library/mmap.rst:250 +#: library/mmap.rst:251 msgid "Argument can be omitted or ``None``." msgstr "" -#: library/mmap.rst:255 +#: library/mmap.rst:256 msgid "" "Returns a byte at the current file position as an integer, and advances the " "file position by 1." msgstr "" -#: library/mmap.rst:261 +#: library/mmap.rst:262 msgid "" "Returns a single line, starting at the current file position and up to the " "next newline. The file position is updated to point after the bytes that " "were returned." msgstr "" -#: library/mmap.rst:268 +#: library/mmap.rst:269 msgid "Resizes the map and the underlying file, if any." msgstr "" -#: library/mmap.rst:270 +#: library/mmap.rst:271 msgid "" "Resizing a map created with *access* of :const:`ACCESS_READ` or :const:" "`ACCESS_COPY`, will raise a :exc:`TypeError` exception. Resizing a map " -"created with with *trackfd* set to ``False``, will raise a :exc:`ValueError` " +"created with *trackfd* set to ``False``, will raise a :exc:`ValueError` " "exception." msgstr "" -#: library/mmap.rst:275 +#: library/mmap.rst:276 msgid "" "**On Windows**: Resizing the map will raise an :exc:`OSError` if there are " "other maps against the same named file. Resizing an anonymous map (ie " @@ -370,13 +370,13 @@ msgid "" "copied over up to the length of the new size." msgstr "" -#: library/mmap.rst:280 +#: library/mmap.rst:281 msgid "" "Correctly fails if attempting to resize when another map is held Allows " "resize against an anonymous map on Windows" msgstr "" -#: library/mmap.rst:286 +#: library/mmap.rst:287 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 " @@ -384,7 +384,7 @@ msgid "" "``-1`` on failure." msgstr "" -#: library/mmap.rst:297 +#: library/mmap.rst:298 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 " @@ -392,27 +392,27 @@ msgid "" "SEEK_END`` or ``2`` (seek relative to the file's end)." msgstr "" -#: library/mmap.rst:302 +#: library/mmap.rst:303 msgid "Return the new absolute position instead of ``None``." msgstr "" -#: library/mmap.rst:307 +#: library/mmap.rst:308 msgid "" "Return whether the file supports seeking, and the return value is always " "``True``." msgstr "" -#: library/mmap.rst:313 +#: library/mmap.rst:314 msgid "" "Return the length of the file, which can be larger than the size of the " "memory-mapped area." msgstr "" -#: library/mmap.rst:319 +#: library/mmap.rst:320 msgid "Returns the current position of the file pointer." msgstr "" -#: library/mmap.rst:324 +#: library/mmap.rst:325 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 " @@ -422,11 +422,11 @@ msgid "" "it will raise a :exc:`TypeError` exception." msgstr "" -#: library/mmap.rst:334 +#: library/mmap.rst:335 msgid "The number of bytes written is now returned." msgstr "" -#: library/mmap.rst:340 +#: library/mmap.rst:341 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 " @@ -434,25 +434,25 @@ msgid "" "exception." msgstr "" -#: library/mmap.rst:348 +#: library/mmap.rst:349 msgid "MADV_* Constants" msgstr "" -#: library/mmap.rst:375 +#: library/mmap.rst:376 msgid "" "These options can be passed to :meth:`mmap.madvise`. Not every option will " "be present on every system." msgstr "" -#: library/mmap.rst:378 +#: library/mmap.rst:379 msgid "Availability: Systems with the madvise() system call." msgstr "" -#: library/mmap.rst:385 +#: library/mmap.rst:386 msgid "MAP_* Constants" msgstr "" -#: library/mmap.rst:409 +#: library/mmap.rst:410 msgid "" "These are the various flags that can be passed to :meth:`mmap.mmap`. :data:" "`MAP_ALIGNED_SUPER` is only available at FreeBSD and :data:`MAP_CONCEAL` is " @@ -460,19 +460,19 @@ msgid "" "some systems." msgstr "" -#: library/mmap.rst:413 +#: library/mmap.rst:414 msgid "Added :data:`MAP_POPULATE` constant." msgstr "" -#: library/mmap.rst:416 +#: library/mmap.rst:417 msgid "Added :data:`MAP_STACK` constant." msgstr "" -#: library/mmap.rst:419 +#: library/mmap.rst:420 msgid "Added :data:`MAP_ALIGNED_SUPER` and :data:`MAP_CONCEAL` constants." msgstr "" -#: library/mmap.rst:422 +#: library/mmap.rst:423 msgid "" "Added :data:`MAP_32BIT`, :data:`MAP_HASSEMAPHORE`, :data:`MAP_JIT`, :data:" "`MAP_NOCACHE`, :data:`MAP_NOEXTEND`, :data:`MAP_NORESERVE`, :data:" diff --git a/library/modulefinder.po b/library/modulefinder.po index e6047cc0..6364c2d8 100644 --- a/library/modulefinder.po +++ b/library/modulefinder.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/modules.po b/library/modules.po index 41c606f0..b9d52bec 100644 --- a/library/modules.po +++ b/library/modules.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/msilib.po b/library/msilib.po index 6fbf9584..55bbf4b0 100644 --- a/library/msilib.po +++ b/library/msilib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/msvcrt.po b/library/msvcrt.po index c9c8a300..fa86505a 100644 --- a/library/msvcrt.po +++ b/library/msvcrt.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -44,16 +44,20 @@ msgid "" msgstr "" #: library/msvcrt.rst:25 +msgid "Availability" +msgstr "" + +#: library/msvcrt.rst:27 msgid "" "Operations in this module now raise :exc:`OSError` where :exc:`IOError` was " "raised." msgstr "" -#: library/msvcrt.rst:33 +#: library/msvcrt.rst:35 msgid "File Operations" msgstr "" -#: library/msvcrt.rst:38 +#: library/msvcrt.rst:40 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 " @@ -64,37 +68,37 @@ msgid "" "individually." msgstr "" -#: library/msvcrt.rst:45 +#: library/msvcrt.rst:47 msgid "" "Raises an :ref:`auditing event ` ``msvcrt.locking`` with arguments " "``fd``, ``mode``, ``nbytes``." msgstr "" -#: library/msvcrt.rst:51 +#: library/msvcrt.rst:53 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 "" -#: library/msvcrt.rst:59 +#: library/msvcrt.rst:61 msgid "" "Locks the specified bytes. If the bytes cannot be locked, :exc:`OSError` is " "raised." msgstr "" -#: library/msvcrt.rst:65 +#: library/msvcrt.rst:67 msgid "Unlocks the specified bytes, which must have been previously locked." msgstr "" -#: library/msvcrt.rst:70 +#: library/msvcrt.rst:72 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 "" -#: library/msvcrt.rst:77 +#: library/msvcrt.rst:79 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." @@ -103,41 +107,41 @@ msgid "" "object." msgstr "" -#: library/msvcrt.rst:83 +#: library/msvcrt.rst:85 msgid "" "The file descriptor is inheritable by default. Pass :const:`os.O_NOINHERIT` " "flag to make it non inheritable." msgstr "" -#: library/msvcrt.rst:86 +#: library/msvcrt.rst:88 msgid "" "Raises an :ref:`auditing event ` ``msvcrt.open_osfhandle`` with " "arguments ``handle``, ``flags``." msgstr "" -#: library/msvcrt.rst:91 +#: library/msvcrt.rst:93 msgid "" "Return the file handle for the file descriptor *fd*. Raises :exc:`OSError` " "if *fd* is not recognized." msgstr "" -#: library/msvcrt.rst:94 +#: library/msvcrt.rst:96 msgid "" "Raises an :ref:`auditing event ` ``msvcrt.get_osfhandle`` with " "argument ``fd``." msgstr "" -#: library/msvcrt.rst:100 +#: library/msvcrt.rst:102 msgid "Console I/O" msgstr "" -#: library/msvcrt.rst:105 +#: library/msvcrt.rst:107 msgid "" "Returns a nonzero value if a keypress is waiting to be read. Otherwise, " "return 0." msgstr "" -#: library/msvcrt.rst:111 +#: library/msvcrt.rst:113 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 " @@ -147,49 +151,49 @@ msgid "" "be read with this function." msgstr "" -#: library/msvcrt.rst:121 +#: library/msvcrt.rst:123 msgid "Wide char variant of :func:`getch`, returning a Unicode value." msgstr "" -#: library/msvcrt.rst:126 +#: library/msvcrt.rst:128 msgid "" "Similar to :func:`getch`, but the keypress will be echoed if it represents a " "printable character." msgstr "" -#: library/msvcrt.rst:132 +#: library/msvcrt.rst:134 msgid "Wide char variant of :func:`getche`, returning a Unicode value." msgstr "" -#: library/msvcrt.rst:137 +#: library/msvcrt.rst:139 msgid "Print the byte string *char* to the console without buffering." msgstr "" -#: library/msvcrt.rst:142 +#: library/msvcrt.rst:144 msgid "Wide char variant of :func:`putch`, accepting a Unicode value." msgstr "" -#: library/msvcrt.rst:147 +#: library/msvcrt.rst:149 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 "" -#: library/msvcrt.rst:153 +#: library/msvcrt.rst:155 msgid "Wide char variant of :func:`ungetch`, accepting a Unicode value." msgstr "" -#: library/msvcrt.rst:159 +#: library/msvcrt.rst:161 msgid "Other Functions" msgstr "" -#: library/msvcrt.rst:164 +#: library/msvcrt.rst:166 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 "" -#: library/msvcrt.rst:170 +#: library/msvcrt.rst:172 msgid "" "Changes the location where the C runtime writes an error message for an " "error that might end the program. *mode* must be one of the :const:`!" @@ -198,31 +202,31 @@ msgid "" "Python `." msgstr "" -#: library/msvcrt.rst:179 +#: library/msvcrt.rst:181 msgid "" "Error sink is determined by the app's type. Only available in :ref:`debug " "build of Python `." msgstr "" -#: library/msvcrt.rst:185 +#: library/msvcrt.rst:187 msgid "" "Error sink is a standard error. Only available in :ref:`debug build of " "Python `." msgstr "" -#: library/msvcrt.rst:191 +#: library/msvcrt.rst:193 msgid "" "Error sink is a message box. Only available in :ref:`debug build of Python " "`." msgstr "" -#: library/msvcrt.rst:197 +#: library/msvcrt.rst:199 msgid "" "Report the current error mode value. Only available in :ref:`debug build of " "Python `." msgstr "" -#: library/msvcrt.rst:203 +#: library/msvcrt.rst:205 msgid "" "Specifies the destination or destinations for a specific report type " "generated by :c:func:`!_CrtDbgReport` in the MS VC++ runtime. *type* must be " @@ -231,7 +235,7 @@ msgid "" "`debug build of Python `." msgstr "" -#: library/msvcrt.rst:212 +#: library/msvcrt.rst:214 msgid "" "After you use :func:`CrtSetReportMode` to specify :const:`CRTDBG_MODE_FILE`, " "you can specify the file handle to receive the message text. *type* must be " @@ -240,51 +244,51 @@ msgid "" "Python `." msgstr "" -#: library/msvcrt.rst:221 +#: library/msvcrt.rst:223 msgid "" "Warnings, messages, and information that doesn't need immediate attention." msgstr "" -#: library/msvcrt.rst:226 +#: library/msvcrt.rst:228 msgid "" "Errors, unrecoverable problems, and issues that require immediate attention." msgstr "" -#: library/msvcrt.rst:231 +#: library/msvcrt.rst:233 msgid "Assertion failures." msgstr "" -#: library/msvcrt.rst:236 +#: library/msvcrt.rst:238 msgid "Writes the message to the debugger's output window." msgstr "" -#: library/msvcrt.rst:241 +#: library/msvcrt.rst:243 msgid "" "Writes the message to a user-supplied file handle. :func:`CrtSetReportFile` " "should be called to define the specific file or stream to use as the " "destination." msgstr "" -#: library/msvcrt.rst:248 +#: library/msvcrt.rst:250 msgid "" "Creates a message box to display the message along with the ``Abort``, " "``Retry``, and ``Ignore`` buttons." msgstr "" -#: library/msvcrt.rst:254 +#: library/msvcrt.rst:256 msgid "Returns current *mode* for the specified *type*." msgstr "" -#: library/msvcrt.rst:259 +#: library/msvcrt.rst:261 msgid "The CRT Assembly version, from the :file:`crtassem.h` header file." msgstr "" -#: library/msvcrt.rst:264 +#: library/msvcrt.rst:266 msgid "" "The VC Assembly public key token, from the :file:`crtassem.h` header file." msgstr "" -#: library/msvcrt.rst:269 +#: library/msvcrt.rst:271 msgid "" "The Libraries Assembly name prefix, from the :file:`crtassem.h` header file." msgstr "" diff --git a/library/multiprocessing.po b/library/multiprocessing.po index 560fc3f8..5ebf95e4 100644 --- a/library/multiprocessing.po +++ b/library/multiprocessing.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -52,9 +52,8 @@ msgstr "" #: library/multiprocessing.rst:25 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 " +"The :mod:`multiprocessing` module also introduces 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 " @@ -63,7 +62,7 @@ msgid "" "`~multiprocessing.pool.Pool`, ::" msgstr "" -#: library/multiprocessing.rst:34 +#: library/multiprocessing.rst:33 msgid "" "from multiprocessing import Pool\n" "\n" @@ -75,15 +74,23 @@ msgid "" " print(p.map(f, [1, 2, 3]))" msgstr "" -#: library/multiprocessing.rst:43 +#: library/multiprocessing.rst:42 msgid "will print to standard output ::" msgstr "" -#: library/multiprocessing.rst:45 +#: library/multiprocessing.rst:44 msgid "[1, 4, 9]" msgstr "" -#: library/multiprocessing.rst:50 +#: library/multiprocessing.rst:46 +msgid "" +"The :mod:`multiprocessing` module also introduces APIs which do not have " +"analogs in the :mod:`threading` module, like the ability to :meth:`terminate " +"`, :meth:`interrupt ` or :meth:`kill " +"` a running process." +msgstr "" + +#: library/multiprocessing.rst:53 msgid "" ":class:`concurrent.futures.ProcessPoolExecutor` offers a higher level " "interface to push tasks to a background process without blocking execution " @@ -93,11 +100,11 @@ msgid "" "from waiting for the results." msgstr "" -#: library/multiprocessing.rst:59 +#: library/multiprocessing.rst:62 msgid "The :class:`Process` class" msgstr "" -#: library/multiprocessing.rst:61 +#: library/multiprocessing.rst:64 msgid "" "In :mod:`multiprocessing`, processes are spawned by creating a :class:" "`Process` object and then calling its :meth:`~Process.start` method. :class:" @@ -105,7 +112,7 @@ msgid "" "of a multiprocess program is ::" msgstr "" -#: library/multiprocessing.rst:66 +#: library/multiprocessing.rst:69 msgid "" "from multiprocessing import Process\n" "\n" @@ -118,12 +125,12 @@ msgid "" " p.join()" msgstr "" -#: library/multiprocessing.rst:76 +#: library/multiprocessing.rst:79 msgid "" "To show the individual process IDs involved, here is an expanded example::" msgstr "" -#: library/multiprocessing.rst:78 +#: library/multiprocessing.rst:81 msgid "" "from multiprocessing import Process\n" "import os\n" @@ -145,27 +152,35 @@ msgid "" " p.join()" msgstr "" -#: library/multiprocessing.rst:97 +#: library/multiprocessing.rst:100 msgid "" "For an explanation of why the ``if __name__ == '__main__'`` part is " "necessary, see :ref:`multiprocessing-programming`." msgstr "" -#: library/multiprocessing.rst:105 +#: library/multiprocessing.rst:103 +msgid "" +"The arguments to :class:`Process` usually need to be unpickleable from " +"within the child process. If you tried typing the above example directly " +"into a REPL it could lead to an :exc:`AttributeError` in the child process " +"trying to locate the *f* function in the ``__main__`` module." +msgstr "" + +#: library/multiprocessing.rst:112 msgid "Contexts and start methods" msgstr "" -#: library/multiprocessing.rst:107 +#: library/multiprocessing.rst:114 msgid "" "Depending on the platform, :mod:`multiprocessing` supports three ways to " "start a process. These *start methods* are" msgstr "" -#: library/multiprocessing.rst:112 +#: library/multiprocessing.rst:119 msgid "*spawn*" msgstr "" -#: library/multiprocessing.rst:113 +#: library/multiprocessing.rst:120 msgid "" "The parent process starts a fresh Python interpreter process. The child " "process will only inherit those resources necessary to run the process " @@ -175,16 +190,16 @@ msgid "" "or *forkserver*." msgstr "" -#: library/multiprocessing.rst:120 +#: library/multiprocessing.rst:127 msgid "" "Available on POSIX and Windows platforms. The default on Windows and macOS." msgstr "" -#: library/multiprocessing.rst:124 +#: library/multiprocessing.rst:131 msgid "*fork*" msgstr "" -#: library/multiprocessing.rst:125 +#: library/multiprocessing.rst:132 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 " @@ -192,18 +207,18 @@ msgid "" "Note that safely forking a multithreaded process is problematic." msgstr "" -#: library/multiprocessing.rst:131 +#: library/multiprocessing.rst:138 msgid "Available on POSIX systems." msgstr "" -#: library/multiprocessing.rst:133 +#: library/multiprocessing.rst:140 msgid "" "This is no longer the default start method on any platform. Code that " "requires *fork* must explicitly specify that via :func:`get_context` or :" "func:`set_start_method`." msgstr "" -#: library/multiprocessing.rst:138 +#: library/multiprocessing.rst:145 msgid "" "If Python is able to detect that your process has multiple threads, the :" "func:`os.fork` function that this start method calls internally will raise " @@ -211,11 +226,11 @@ msgid "" "fork` documentation for further explanation." msgstr "" -#: library/multiprocessing.rst:146 +#: library/multiprocessing.rst:153 msgid "*forkserver*" msgstr "" -#: library/multiprocessing.rst:147 +#: library/multiprocessing.rst:154 msgid "" "When the program starts and selects the *forkserver* start method, a server " "process is spawned. From then on, whenever a new process is needed, the " @@ -225,38 +240,38 @@ msgid "" "for it to use :func:`os.fork`. No unnecessary resources are inherited." msgstr "" -#: library/multiprocessing.rst:155 +#: library/multiprocessing.rst:162 msgid "" "Available on POSIX platforms which support passing file descriptors over " "Unix pipes such as Linux. The default on those." msgstr "" -#: library/multiprocessing.rst:158 +#: library/multiprocessing.rst:165 msgid "This became the default start method on POSIX platforms." msgstr "" -#: library/multiprocessing.rst:161 +#: library/multiprocessing.rst:168 msgid "" "*spawn* added on all POSIX platforms, and *forkserver* added for some POSIX " "platforms. Child processes no longer inherit all of the parents inheritable " "handles on Windows." msgstr "" -#: library/multiprocessing.rst:169 +#: library/multiprocessing.rst:176 msgid "" "On macOS, the *spawn* start method is now the default. The *fork* start " "method should be considered unsafe as it can lead to crashes of the " "subprocess as macOS system libraries may start threads. See :issue:`33725`." msgstr "" -#: library/multiprocessing.rst:175 +#: library/multiprocessing.rst:182 msgid "" "On POSIX platforms the default start method was changed from *fork* to " "*forkserver* to retain the performance but avoid common multithreaded " "process incompatibilities. See :gh:`84559`." msgstr "" -#: library/multiprocessing.rst:180 +#: library/multiprocessing.rst:187 msgid "" "On POSIX using the *spawn* or *forkserver* start methods will also start a " "*resource tracker* process which tracks the unlinked named system resources " @@ -271,13 +286,13 @@ msgid "" "space in the main memory.)" msgstr "" -#: library/multiprocessing.rst:193 +#: library/multiprocessing.rst:200 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 "" -#: library/multiprocessing.rst:197 +#: library/multiprocessing.rst:204 msgid "" "import multiprocessing as mp\n" "\n" @@ -293,19 +308,19 @@ msgid "" " p.join()" msgstr "" -#: library/multiprocessing.rst:210 +#: library/multiprocessing.rst:217 msgid "" ":func:`set_start_method` should not be used more than once in the program." msgstr "" -#: library/multiprocessing.rst:213 +#: library/multiprocessing.rst:220 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 "" -#: library/multiprocessing.rst:218 +#: library/multiprocessing.rst:225 msgid "" "import multiprocessing as mp\n" "\n" @@ -321,7 +336,7 @@ msgid "" " p.join()" msgstr "" -#: library/multiprocessing.rst:231 +#: library/multiprocessing.rst:238 msgid "" "Note that objects related to one context may not be compatible with " "processes for a different context. In particular, locks created using the " @@ -329,13 +344,17 @@ msgid "" "*forkserver* start methods." msgstr "" -#: library/multiprocessing.rst:236 +#: library/multiprocessing.rst:243 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." +"Libraries using :mod:`multiprocessing` or :class:`~concurrent.futures." +"ProcessPoolExecutor` should be designed to allow their users to provide " +"their own multiprocessing context. Using a specific context of your own " +"within a library can lead to incompatibilities with the rest of the library " +"user's application. Always document if your library requires a specific " +"start method." msgstr "" -#: library/multiprocessing.rst:242 +#: library/multiprocessing.rst:252 msgid "" "The ``'spawn'`` and ``'forkserver'`` start methods generally cannot be used " "with \"frozen\" executables (i.e., binaries produced by packages like " @@ -343,27 +362,27 @@ msgid "" "method may work if code does not use threads." msgstr "" -#: library/multiprocessing.rst:249 +#: library/multiprocessing.rst:259 msgid "Exchanging objects between processes" msgstr "" -#: library/multiprocessing.rst:251 +#: library/multiprocessing.rst:261 msgid "" ":mod:`multiprocessing` supports two types of communication channel between " "processes:" msgstr "" -#: library/multiprocessing.rst:254 +#: library/multiprocessing.rst:264 msgid "**Queues**" msgstr "" -#: library/multiprocessing.rst:256 +#: library/multiprocessing.rst:266 msgid "" "The :class:`Queue` class is a near clone of :class:`queue.Queue`. For " "example::" msgstr "" -#: library/multiprocessing.rst:259 +#: library/multiprocessing.rst:269 msgid "" "from multiprocessing import Process, Queue\n" "\n" @@ -378,23 +397,23 @@ msgid "" " p.join()" msgstr "" -#: library/multiprocessing.rst:271 +#: library/multiprocessing.rst:281 msgid "" "Queues are thread and process safe. Any object put into a :mod:" "`~multiprocessing` queue will be serialized." msgstr "" -#: library/multiprocessing.rst:274 +#: library/multiprocessing.rst:284 msgid "**Pipes**" msgstr "" -#: library/multiprocessing.rst:276 +#: library/multiprocessing.rst:286 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 "" -#: library/multiprocessing.rst:279 +#: library/multiprocessing.rst:289 msgid "" "from multiprocessing import Process, Pipe\n" "\n" @@ -410,7 +429,7 @@ msgid "" " p.join()" msgstr "" -#: library/multiprocessing.rst:292 +#: library/multiprocessing.rst:302 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:" @@ -420,24 +439,24 @@ msgid "" "corruption from processes using different ends of the pipe at the same time." msgstr "" -#: library/multiprocessing.rst:300 +#: library/multiprocessing.rst:310 msgid "" "The :meth:`~Connection.send` method serializes the object and :meth:" "`~Connection.recv` re-creates the object." msgstr "" -#: library/multiprocessing.rst:304 +#: library/multiprocessing.rst:314 msgid "Synchronization between processes" msgstr "" -#: library/multiprocessing.rst:306 +#: library/multiprocessing.rst:316 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 "" -#: library/multiprocessing.rst:310 +#: library/multiprocessing.rst:320 msgid "" "from multiprocessing import Process, Lock\n" "\n" @@ -455,40 +474,40 @@ msgid "" " Process(target=f, args=(lock, num)).start()" msgstr "" -#: library/multiprocessing.rst:325 +#: library/multiprocessing.rst:335 msgid "" "Without using the lock output from the different processes is liable to get " "all mixed up." msgstr "" -#: library/multiprocessing.rst:330 +#: library/multiprocessing.rst:340 msgid "Sharing state between processes" msgstr "" -#: library/multiprocessing.rst:332 +#: library/multiprocessing.rst:342 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 "" -#: library/multiprocessing.rst:336 +#: library/multiprocessing.rst:346 msgid "" "However, if you really do need to use some shared data then :mod:" "`multiprocessing` provides a couple of ways of doing so." msgstr "" -#: library/multiprocessing.rst:339 +#: library/multiprocessing.rst:349 msgid "**Shared memory**" msgstr "" -#: library/multiprocessing.rst:341 +#: library/multiprocessing.rst:351 msgid "" "Data can be stored in a shared memory map using :class:`Value` or :class:" "`Array`. For example, the following code ::" msgstr "" -#: library/multiprocessing.rst:344 +#: library/multiprocessing.rst:354 msgid "" "from multiprocessing import Process, Value, Array\n" "\n" @@ -509,17 +528,17 @@ msgid "" " print(arr[:])" msgstr "" -#: library/multiprocessing.rst:362 library/multiprocessing.rst:412 +#: library/multiprocessing.rst:372 library/multiprocessing.rst:422 msgid "will print ::" msgstr "" -#: library/multiprocessing.rst:364 +#: library/multiprocessing.rst:374 msgid "" "3.1415927\n" "[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]" msgstr "" -#: library/multiprocessing.rst:367 +#: library/multiprocessing.rst:377 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 " @@ -527,25 +546,25 @@ msgid "" "objects will be process and thread-safe." msgstr "" -#: library/multiprocessing.rst:372 +#: library/multiprocessing.rst:382 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 "" -#: library/multiprocessing.rst:376 +#: library/multiprocessing.rst:386 msgid "**Server process**" msgstr "" -#: library/multiprocessing.rst:378 +#: library/multiprocessing.rst:388 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 "" -#: library/multiprocessing.rst:382 +#: library/multiprocessing.rst:392 msgid "" "A manager returned by :func:`Manager` will support types :class:`list`, :" "class:`dict`, :class:`set`, :class:`~managers.Namespace`, :class:`Lock`, :" @@ -554,7 +573,7 @@ msgid "" "`Value` and :class:`Array`. For example, ::" msgstr "" -#: library/multiprocessing.rst:388 +#: library/multiprocessing.rst:398 msgid "" "from multiprocessing import Process, Manager\n" "\n" @@ -581,14 +600,14 @@ msgid "" " print(s)" msgstr "" -#: library/multiprocessing.rst:414 +#: library/multiprocessing.rst:424 msgid "" "{0.25: None, 1: '1', '2': 2}\n" "[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]\n" "{'a', 'b'}" msgstr "" -#: library/multiprocessing.rst:418 +#: library/multiprocessing.rst:428 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 " @@ -596,22 +615,22 @@ msgid "" "They are, however, slower than using shared memory." msgstr "" -#: library/multiprocessing.rst:425 +#: library/multiprocessing.rst:435 msgid "Using a pool of workers" msgstr "" -#: library/multiprocessing.rst:427 +#: library/multiprocessing.rst:437 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 "" -#: library/multiprocessing.rst:431 +#: library/multiprocessing.rst:441 msgid "For example::" msgstr "" -#: library/multiprocessing.rst:433 +#: library/multiprocessing.rst:443 msgid "" "from multiprocessing import Pool, TimeoutError\n" "import time\n" @@ -660,13 +679,13 @@ msgid "" " print(\"Now the pool is closed and no longer available\")" msgstr "" -#: library/multiprocessing.rst:475 +#: library/multiprocessing.rst:485 msgid "" "Note that the methods of a pool should only ever be used by the process " "which created it." msgstr "" -#: library/multiprocessing.rst:480 +#: library/multiprocessing.rst:490 msgid "" "Functionality within this package requires that the ``__main__`` module be " "importable by the children. This is covered in :ref:`multiprocessing-" @@ -675,7 +694,7 @@ msgid "" "work in the interactive interpreter. For example::" msgstr "" -#: library/multiprocessing.rst:486 +#: library/multiprocessing.rst:496 msgid "" ">>> from multiprocessing import Pool\n" ">>> p = Pool(5)\n" @@ -698,35 +717,35 @@ msgid "" "'_frozen_importlib.BuiltinImporter'>)>" msgstr "" -#: library/multiprocessing.rst:503 +#: library/multiprocessing.rst:513 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 parent process " "somehow.)" msgstr "" -#: library/multiprocessing.rst:509 +#: library/multiprocessing.rst:519 msgid "Reference" msgstr "" -#: library/multiprocessing.rst:511 +#: library/multiprocessing.rst:521 msgid "" "The :mod:`multiprocessing` package mostly replicates the API of the :mod:" "`threading` module." msgstr "" -#: library/multiprocessing.rst:516 +#: library/multiprocessing.rst:526 msgid ":class:`Process` and exceptions" msgstr "" -#: library/multiprocessing.rst:521 +#: library/multiprocessing.rst:531 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 "" -#: library/multiprocessing.rst:525 +#: library/multiprocessing.rst:535 msgid "" "The constructor should always be called with keyword arguments. *group* " "should always be ``None``; it exists solely for compatibility with :class:" @@ -740,29 +759,74 @@ msgid "" "creating process." msgstr "" -#: library/multiprocessing.rst:536 +#: library/multiprocessing.rst:546 msgid "" "By default, no arguments are passed to *target*. The *args* argument, which " "defaults to ``()``, can be used to specify a list or tuple of the arguments " "to pass to *target*." msgstr "" -#: library/multiprocessing.rst:540 +#: library/multiprocessing.rst:550 msgid "" "If a subclass overrides the constructor, it must make sure it invokes the " -"base class constructor (:meth:`Process.__init__`) before doing anything else " +"base class constructor (``super().__init__()``) before doing anything else " "to the process." msgstr "" -#: library/multiprocessing.rst:544 +#: library/multiprocessing.rst:556 +msgid "" +"In general, all arguments to :class:`Process` must be picklable. This is " +"frequently observed when trying to create a :class:`Process` or use a :class:" +"`concurrent.futures.ProcessPoolExecutor` from a REPL with a locally defined " +"*target* function." +msgstr "" + +#: library/multiprocessing.rst:561 +msgid "" +"Passing a callable object defined in the current REPL session causes the " +"child process to die via an uncaught :exc:`AttributeError` exception when " +"starting as *target* must have been defined within an importable module in " +"order to be loaded during unpickling." +msgstr "" + +#: library/multiprocessing.rst:566 +msgid "Example of this uncatchable error from the child::" +msgstr "" + +#: library/multiprocessing.rst:568 +msgid "" +">>> import multiprocessing as mp\n" +">>> def knigit():\n" +"... print(\"Ni!\")\n" +"...\n" +">>> process = mp.Process(target=knigit)\n" +">>> process.start()\n" +">>> Traceback (most recent call last):\n" +" File \".../multiprocessing/spawn.py\", line ..., in spawn_main\n" +" File \".../multiprocessing/spawn.py\", line ..., in _main\n" +"AttributeError: module '__main__' has no attribute 'knigit'\n" +">>> process\n" +"" +msgstr "" + +#: library/multiprocessing.rst:581 +msgid "" +"See :ref:`multiprocessing-programming-spawn`. While this restriction is not " +"true if using the ``\"fork\"`` start method, as of Python ``3.14`` that is " +"no longer the default on any platform. See :ref:`multiprocessing-start-" +"methods`. See also :gh:`132898`." +msgstr "" + +#: library/multiprocessing.rst:587 msgid "Added the *daemon* parameter." msgstr "" -#: library/multiprocessing.rst:549 +#: library/multiprocessing.rst:592 msgid "Method representing the process's activity." msgstr "" -#: library/multiprocessing.rst:551 +#: library/multiprocessing.rst:594 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 " @@ -770,17 +834,17 @@ msgid "" "*args* and *kwargs* arguments, respectively." msgstr "" -#: library/multiprocessing.rst:556 +#: library/multiprocessing.rst:599 msgid "" "Using a list or tuple as the *args* argument passed to :class:`Process` " "achieves the same effect." msgstr "" -#: library/multiprocessing.rst:559 +#: library/multiprocessing.rst:602 msgid "Example::" msgstr "" -#: library/multiprocessing.rst:561 +#: library/multiprocessing.rst:604 msgid "" ">>> from multiprocessing import Process\n" ">>> p = Process(target=print, args=[1])\n" @@ -791,17 +855,17 @@ msgid "" "1" msgstr "" -#: library/multiprocessing.rst:571 +#: library/multiprocessing.rst:614 msgid "Start the process's activity." msgstr "" -#: library/multiprocessing.rst:573 +#: library/multiprocessing.rst:616 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 "" -#: library/multiprocessing.rst:578 +#: library/multiprocessing.rst:621 msgid "" "If the optional argument *timeout* is ``None`` (the default), the method " "blocks until the process whose :meth:`join` method is called terminates. If " @@ -811,23 +875,23 @@ msgid "" "terminated." msgstr "" -#: library/multiprocessing.rst:585 +#: library/multiprocessing.rst:628 msgid "A process can be joined many times." msgstr "" -#: library/multiprocessing.rst:587 +#: library/multiprocessing.rst:630 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 "" -#: library/multiprocessing.rst:592 +#: library/multiprocessing.rst:635 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 "" -#: library/multiprocessing.rst:596 +#: library/multiprocessing.rst:639 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:" @@ -835,33 +899,33 @@ msgid "" "child of its parent." msgstr "" -#: library/multiprocessing.rst:603 +#: library/multiprocessing.rst:646 msgid "Return whether the process is alive." msgstr "" -#: library/multiprocessing.rst:605 +#: library/multiprocessing.rst:648 msgid "" "Roughly, a process object is alive from the moment the :meth:`start` method " "returns until the child process terminates." msgstr "" -#: library/multiprocessing.rst:610 +#: library/multiprocessing.rst:653 msgid "" "The process's daemon flag, a Boolean value. This must be set before :meth:" "`start` is called." msgstr "" -#: library/multiprocessing.rst:613 +#: library/multiprocessing.rst:656 msgid "The initial value is inherited from the creating process." msgstr "" -#: library/multiprocessing.rst:615 +#: library/multiprocessing.rst:658 msgid "" "When a process exits, it attempts to terminate all of its daemonic child " "processes." msgstr "" -#: library/multiprocessing.rst:618 +#: library/multiprocessing.rst:661 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 " @@ -870,85 +934,85 @@ msgid "" "(and not joined) if non-daemonic processes have exited." msgstr "" -#: library/multiprocessing.rst:624 +#: library/multiprocessing.rst:667 msgid "" "In addition to the :class:`threading.Thread` API, :class:`Process` objects " "also support the following attributes and methods:" msgstr "" -#: library/multiprocessing.rst:629 +#: library/multiprocessing.rst:672 msgid "" "Return the process ID. Before the process is spawned, this will be ``None``." msgstr "" -#: library/multiprocessing.rst:634 +#: library/multiprocessing.rst:677 msgid "" "The child's exit code. This will be ``None`` if the process has not yet " "terminated." msgstr "" -#: library/multiprocessing.rst:637 +#: library/multiprocessing.rst:680 msgid "" "If the child's :meth:`run` method returned normally, the exit code will be " "0. If it terminated via :func:`sys.exit` with an integer argument *N*, the " "exit code will be *N*." msgstr "" -#: library/multiprocessing.rst:641 +#: library/multiprocessing.rst:684 msgid "" "If the child terminated due to an exception not caught within :meth:`run`, " "the exit code will be 1. If it was terminated by signal *N*, the exit code " "will be the negative value *-N*." msgstr "" -#: library/multiprocessing.rst:647 +#: library/multiprocessing.rst:690 msgid "The process's authentication key (a byte string)." msgstr "" -#: library/multiprocessing.rst:649 +#: library/multiprocessing.rst:692 msgid "" "When :mod:`multiprocessing` is initialized the main process is assigned a " "random string using :func:`os.urandom`." msgstr "" -#: library/multiprocessing.rst:652 +#: library/multiprocessing.rst:695 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 "" -#: library/multiprocessing.rst:656 +#: library/multiprocessing.rst:699 msgid "See :ref:`multiprocessing-auth-keys`." msgstr "" -#: library/multiprocessing.rst:660 +#: library/multiprocessing.rst:703 msgid "" "A numeric handle of a system object which will become \"ready\" when the " "process ends." msgstr "" -#: library/multiprocessing.rst:663 +#: library/multiprocessing.rst:706 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 "" -#: library/multiprocessing.rst:667 +#: library/multiprocessing.rst:710 msgid "" "On Windows, this is an OS handle usable with the ``WaitForSingleObject`` and " "``WaitForMultipleObjects`` family of API calls. On POSIX, this is a file " "descriptor usable with primitives from the :mod:`select` module." msgstr "" -#: library/multiprocessing.rst:675 +#: library/multiprocessing.rst:718 msgid "" "Terminate the process. Works on POSIX using the :py:const:`~signal.SIGINT` " "signal. Behavior on Windows is undefined." msgstr "" -#: library/multiprocessing.rst:678 +#: library/multiprocessing.rst:721 msgid "" "By default, this terminates the child process by raising :exc:" "`KeyboardInterrupt`. This behavior can be altered by setting the respective " @@ -956,13 +1020,13 @@ msgid "" "`~signal.SIGINT`." msgstr "" -#: library/multiprocessing.rst:682 +#: library/multiprocessing.rst:725 msgid "" "Note: if the child process catches and discards :exc:`KeyboardInterrupt`, " "the process will not be terminated." msgstr "" -#: library/multiprocessing.rst:685 +#: library/multiprocessing.rst:728 msgid "" "Note: the default behavior will also set :attr:`exitcode` to ``1`` as if an " "uncaught exception was raised in the child process. To have a different :" @@ -970,20 +1034,20 @@ msgid "" "``exit(your_code)``." msgstr "" -#: library/multiprocessing.rst:694 +#: library/multiprocessing.rst:737 msgid "" "Terminate the process. On POSIX this is done using the :py:const:`~signal." "SIGTERM` signal; on Windows :c:func:`!TerminateProcess` is used. Note that " "exit handlers and finally clauses, etc., will not be executed." msgstr "" -#: library/multiprocessing.rst:698 +#: library/multiprocessing.rst:741 msgid "" "Note that descendant processes of the process will *not* be terminated -- " "they will simply become orphaned." msgstr "" -#: library/multiprocessing.rst:703 +#: library/multiprocessing.rst:746 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 " @@ -992,11 +1056,11 @@ msgid "" "deadlock." msgstr "" -#: library/multiprocessing.rst:711 +#: library/multiprocessing.rst:754 msgid "Same as :meth:`terminate` but using the ``SIGKILL`` signal on POSIX." msgstr "" -#: library/multiprocessing.rst:717 +#: library/multiprocessing.rst:760 msgid "" "Close the :class:`Process` object, releasing all resources associated with " "it. :exc:`ValueError` is raised if the underlying process is still " @@ -1004,18 +1068,18 @@ msgid "" "attributes of the :class:`Process` object will raise :exc:`ValueError`." msgstr "" -#: library/multiprocessing.rst:725 +#: library/multiprocessing.rst:768 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 "" -#: library/multiprocessing.rst:729 +#: library/multiprocessing.rst:772 msgid "Example usage of some of the methods of :class:`Process`:" msgstr "" -#: library/multiprocessing.rst:731 +#: library/multiprocessing.rst:774 msgid "" ">>> import multiprocessing, time, signal\n" ">>> mp_context = multiprocessing.get_context('spawn')\n" @@ -1033,48 +1097,48 @@ msgid "" "True" msgstr "" -#: library/multiprocessing.rst:750 +#: library/multiprocessing.rst:793 msgid "The base class of all :mod:`multiprocessing` exceptions." msgstr "" -#: library/multiprocessing.rst:754 +#: library/multiprocessing.rst:797 msgid "" "Exception raised by :meth:`Connection.recv_bytes_into` when the supplied " "buffer object is too small for the message read." msgstr "" -#: library/multiprocessing.rst:757 +#: library/multiprocessing.rst:800 msgid "" "If ``e`` is an instance of :exc:`BufferTooShort` then ``e.args[0]`` will " "give the message as a byte string." msgstr "" -#: library/multiprocessing.rst:762 +#: library/multiprocessing.rst:805 msgid "Raised when there is an authentication error." msgstr "" -#: library/multiprocessing.rst:766 +#: library/multiprocessing.rst:809 msgid "Raised by methods with a timeout when the timeout expires." msgstr "" -#: library/multiprocessing.rst:769 +#: library/multiprocessing.rst:812 msgid "Pipes and Queues" msgstr "" -#: library/multiprocessing.rst:771 +#: library/multiprocessing.rst:814 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 "" -#: library/multiprocessing.rst:775 +#: library/multiprocessing.rst:818 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 "" -#: library/multiprocessing.rst:778 +#: library/multiprocessing.rst:821 msgid "" "The :class:`Queue`, :class:`SimpleQueue` and :class:`JoinableQueue` types " "are multi-producer, multi-consumer :abbr:`FIFO (first-in, first-out)` queues " @@ -1084,7 +1148,7 @@ msgid "" "Queue` class." msgstr "" -#: library/multiprocessing.rst:785 +#: library/multiprocessing.rst:828 msgid "" "If you use :class:`JoinableQueue` then you **must** call :meth:" "`JoinableQueue.task_done` for each task removed from the queue or else the " @@ -1092,7 +1156,7 @@ msgid "" "overflow, raising an exception." msgstr "" -#: library/multiprocessing.rst:790 +#: library/multiprocessing.rst:833 msgid "" "One difference from other Python queue implementations, is that :mod:" "`multiprocessing` queues serializes all objects that are put into them " @@ -1100,20 +1164,20 @@ msgid "" "object that does not share memory with the original object." msgstr "" -#: library/multiprocessing.rst:795 +#: library/multiprocessing.rst:838 msgid "" "Note that one can also create a shared queue by using a manager object -- " "see :ref:`multiprocessing-managers`." msgstr "" -#: library/multiprocessing.rst:800 +#: library/multiprocessing.rst:843 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 "" -#: library/multiprocessing.rst:807 +#: library/multiprocessing.rst:850 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 " @@ -1122,14 +1186,14 @@ msgid "" "a queue created with a :ref:`manager `." msgstr "" -#: library/multiprocessing.rst:814 +#: library/multiprocessing.rst:857 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 "" -#: library/multiprocessing.rst:819 +#: library/multiprocessing.rst:862 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 " @@ -1137,7 +1201,7 @@ msgid "" "other." msgstr "" -#: library/multiprocessing.rst:826 +#: library/multiprocessing.rst:869 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 " @@ -1145,7 +1209,7 @@ msgid "" "exception when it tries to use the queue later on." msgstr "" -#: library/multiprocessing.rst:833 +#: library/multiprocessing.rst:876 msgid "" "As mentioned above, if a child process has put items on a queue (and it has " "not used :meth:`JoinableQueue.cancel_join_thread ` flag or :envvar:`PYTHON_CPU_COUNT` as this is merely a wrapper around " "the :mod:`os` cpu count APIs." msgstr "" -#: library/multiprocessing.rst:1069 +#: library/multiprocessing.rst:1117 msgid "" "Return the :class:`Process` object corresponding to the current process." msgstr "" -#: library/multiprocessing.rst:1071 +#: library/multiprocessing.rst:1119 msgid "An analogue of :func:`threading.current_thread`." msgstr "" -#: library/multiprocessing.rst:1075 +#: library/multiprocessing.rst:1123 msgid "" "Return the :class:`Process` object corresponding to the parent process of " "the :func:`current_process`. For the main process, ``parent_process`` will " "be ``None``." msgstr "" -#: library/multiprocessing.rst:1083 +#: library/multiprocessing.rst:1131 msgid "" "Add support for when a program which uses :mod:`multiprocessing` has been " "frozen to produce an executable. (Has been tested with **py2exe**, " "**PyInstaller** and **cx_Freeze**.)" msgstr "" -#: library/multiprocessing.rst:1087 +#: library/multiprocessing.rst:1135 msgid "" "One needs to call this function straight after the ``if __name__ == " "'__main__'`` line of the main module. For example::" msgstr "" -#: library/multiprocessing.rst:1090 +#: library/multiprocessing.rst:1138 msgid "" "from multiprocessing import Process, freeze_support\n" "\n" @@ -1492,13 +1561,13 @@ msgid "" " Process(target=f).start()" msgstr "" -#: library/multiprocessing.rst:1099 +#: library/multiprocessing.rst:1147 msgid "" "If the ``freeze_support()`` line is omitted then trying to run the frozen " "executable will raise :exc:`RuntimeError`." msgstr "" -#: library/multiprocessing.rst:1102 +#: library/multiprocessing.rst:1150 msgid "" "Calling ``freeze_support()`` has no effect when the start method is not " "*spawn*. In addition, if the module is being run normally by the Python " @@ -1506,7 +1575,7 @@ msgid "" "no effect." msgstr "" -#: library/multiprocessing.rst:1109 +#: library/multiprocessing.rst:1157 msgid "" "Returns a list of the supported start methods, the first of which is the " "default. The possible start methods are ``'fork'``, ``'spawn'`` and " @@ -1514,68 +1583,70 @@ msgid "" "`multiprocessing-start-methods`." msgstr "" -#: library/multiprocessing.rst:1118 +#: library/multiprocessing.rst:1166 msgid "" "Return a context object which has the same attributes as the :mod:" "`multiprocessing` module." msgstr "" -#: library/multiprocessing.rst:1121 +#: library/multiprocessing.rst:1169 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. See :" -"ref:`multiprocessing-start-methods`." +"If *method* is ``None`` then the default context is returned. Note that if " +"the global start method has not been set, this will set it to the default " +"method. Otherwise *method* should be ``'fork'``, ``'spawn'``, " +"``'forkserver'``. :exc:`ValueError` is raised if the specified start method " +"is not available. See :ref:`multiprocessing-start-methods`." msgstr "" -#: library/multiprocessing.rst:1130 +#: library/multiprocessing.rst:1180 msgid "Return the name of start method used for starting processes." msgstr "" -#: library/multiprocessing.rst:1132 +#: library/multiprocessing.rst:1182 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." +"If the global start method has not been set and *allow_none* is ``False``, " +"then the start method is set to the default and the name is returned. If the " +"start method has not been set and *allow_none* is ``True`` then ``None`` is " +"returned." msgstr "" -#: library/multiprocessing.rst:1137 +#: library/multiprocessing.rst:1187 msgid "" "The return value can be ``'fork'``, ``'spawn'``, ``'forkserver'`` or " "``None``. See :ref:`multiprocessing-start-methods`." msgstr "" -#: library/multiprocessing.rst:1144 +#: library/multiprocessing.rst:1194 msgid "" "On macOS, the *spawn* start method is now the default. The *fork* start " "method should be considered unsafe as it can lead to crashes of the " "subprocess. See :issue:`33725`." msgstr "" -#: library/multiprocessing.rst:1150 +#: library/multiprocessing.rst:1200 msgid "" "Set 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 "" -#: library/multiprocessing.rst:1154 +#: library/multiprocessing.rst:1204 msgid "set_executable(os.path.join(sys.exec_prefix, 'pythonw.exe'))" msgstr "" -#: library/multiprocessing.rst:1156 +#: library/multiprocessing.rst:1206 msgid "before they can create child processes." msgstr "" -#: library/multiprocessing.rst:1158 +#: library/multiprocessing.rst:1208 msgid "Now supported on POSIX when the ``'spawn'`` start method is used." msgstr "" -#: library/multiprocessing.rst:1161 +#: library/multiprocessing.rst:1211 msgid "Accepts a :term:`path-like object`." msgstr "" -#: library/multiprocessing.rst:1166 +#: library/multiprocessing.rst:1216 msgid "" "Set a list of module names for the forkserver main process to attempt to " "import so that their already imported state is inherited by forked " @@ -1584,19 +1655,19 @@ msgid "" "process." msgstr "" -#: library/multiprocessing.rst:1172 +#: library/multiprocessing.rst:1222 msgid "" "For this to work, it must be called before the forkserver process has been " "launched (before creating a :class:`Pool` or starting a :class:`Process`)." msgstr "" -#: library/multiprocessing.rst:1175 +#: library/multiprocessing.rst:1225 msgid "" "Only meaningful when using the ``'forkserver'`` start method. See :ref:" "`multiprocessing-start-methods`." msgstr "" -#: library/multiprocessing.rst:1182 +#: library/multiprocessing.rst:1232 msgid "" "Set the method which should be used to start child processes. The *method* " "argument can be ``'fork'``, ``'spawn'`` or ``'forkserver'``. Raises :exc:" @@ -1606,17 +1677,17 @@ msgid "" "then the context is set to the default context." msgstr "" -#: library/multiprocessing.rst:1189 +#: library/multiprocessing.rst:1239 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 "" -#: library/multiprocessing.rst:1193 +#: library/multiprocessing.rst:1243 msgid "See :ref:`multiprocessing-start-methods`." msgstr "" -#: library/multiprocessing.rst:1199 +#: library/multiprocessing.rst:1249 msgid "" ":mod:`multiprocessing` contains no analogues of :func:`threading." "active_count`, :func:`threading.enumerate`, :func:`threading.settrace`, :" @@ -1624,75 +1695,75 @@ msgid "" "local`." msgstr "" -#: library/multiprocessing.rst:1206 +#: library/multiprocessing.rst:1256 msgid "Connection Objects" msgstr "" -#: library/multiprocessing.rst:1210 +#: library/multiprocessing.rst:1260 msgid "" "Connection objects allow the sending and receiving of picklable objects or " "strings. They can be thought of as message oriented connected sockets." msgstr "" -#: library/multiprocessing.rst:1213 +#: library/multiprocessing.rst:1263 msgid "" "Connection objects are usually created using :func:`Pipe ` -- see also :ref:`multiprocessing-listeners-clients`." msgstr "" -#: library/multiprocessing.rst:1221 +#: library/multiprocessing.rst:1271 msgid "" "Send an object to the other end of the connection which should be read " "using :meth:`recv`." msgstr "" -#: library/multiprocessing.rst:1224 +#: library/multiprocessing.rst:1274 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 "" -#: library/multiprocessing.rst:1229 +#: library/multiprocessing.rst:1279 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 "" -#: library/multiprocessing.rst:1236 +#: library/multiprocessing.rst:1286 msgid "Return the file descriptor or handle used by the connection." msgstr "" -#: library/multiprocessing.rst:1240 +#: library/multiprocessing.rst:1290 msgid "Close the connection." msgstr "" -#: library/multiprocessing.rst:1242 +#: library/multiprocessing.rst:1292 msgid "This is called automatically when the connection is garbage collected." msgstr "" -#: library/multiprocessing.rst:1246 +#: library/multiprocessing.rst:1296 msgid "Return whether there is any data available to be read." msgstr "" -#: library/multiprocessing.rst:1248 +#: library/multiprocessing.rst:1298 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 "" -#: library/multiprocessing.rst:1252 +#: library/multiprocessing.rst:1302 msgid "" "Note that multiple connection objects may be polled at once by using :func:" "`multiprocessing.connection.wait`." msgstr "" -#: library/multiprocessing.rst:1257 +#: library/multiprocessing.rst:1307 msgid "Send byte data from a :term:`bytes-like object` as a complete message." msgstr "" -#: library/multiprocessing.rst:1259 +#: library/multiprocessing.rst:1309 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 " @@ -1700,7 +1771,7 @@ msgid "" "exc:`ValueError` exception" msgstr "" -#: library/multiprocessing.rst:1266 +#: library/multiprocessing.rst:1316 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 :" @@ -1708,19 +1779,19 @@ msgid "" "closed." msgstr "" -#: library/multiprocessing.rst:1271 +#: library/multiprocessing.rst:1321 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 "" -#: library/multiprocessing.rst:1275 +#: library/multiprocessing.rst:1325 msgid "" "This function used to raise :exc:`IOError`, which is now an alias of :exc:" "`OSError`." msgstr "" -#: library/multiprocessing.rst:1282 +#: library/multiprocessing.rst:1332 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 " @@ -1728,38 +1799,38 @@ msgid "" "nothing left to receive and the other end was closed." msgstr "" -#: library/multiprocessing.rst:1288 +#: library/multiprocessing.rst:1338 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 "" -#: library/multiprocessing.rst:1293 +#: library/multiprocessing.rst:1343 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 "" -#: library/multiprocessing.rst:1297 +#: library/multiprocessing.rst:1347 msgid "" "Connection objects themselves can now be transferred between processes " "using :meth:`Connection.send` and :meth:`Connection.recv`." msgstr "" -#: library/multiprocessing.rst:1301 +#: library/multiprocessing.rst:1351 msgid "" "Connection objects also now support the context management protocol -- see :" "ref:`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the " "connection object, and :meth:`~contextmanager.__exit__` calls :meth:`close`." msgstr "" -#: library/multiprocessing.rst:1305 +#: library/multiprocessing.rst:1355 msgid "For example:" msgstr "" -#: library/multiprocessing.rst:1307 +#: library/multiprocessing.rst:1357 msgid "" ">>> from multiprocessing import Pipe\n" ">>> a, b = Pipe()\n" @@ -1779,14 +1850,14 @@ msgid "" "array('i', [0, 1, 2, 3, 4, 0, 0, 0, 0, 0])" msgstr "" -#: library/multiprocessing.rst:1330 +#: library/multiprocessing.rst:1380 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 "" -#: library/multiprocessing.rst:1334 +#: library/multiprocessing.rst:1384 msgid "" "Therefore, unless the connection object was produced using :func:`Pipe` you " "should only use the :meth:`~Connection.recv` and :meth:`~Connection.send` " @@ -1794,71 +1865,71 @@ msgid "" "`multiprocessing-auth-keys`." msgstr "" -#: library/multiprocessing.rst:1341 +#: library/multiprocessing.rst:1391 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 "" -#: library/multiprocessing.rst:1347 +#: library/multiprocessing.rst:1397 msgid "Synchronization primitives" msgstr "" -#: library/multiprocessing.rst:1351 +#: library/multiprocessing.rst:1401 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 "" -#: library/multiprocessing.rst:1355 +#: library/multiprocessing.rst:1405 msgid "" "Note that one can also create synchronization primitives by using a manager " "object -- see :ref:`multiprocessing-managers`." msgstr "" -#: library/multiprocessing.rst:1360 +#: library/multiprocessing.rst:1410 msgid "A barrier object: a clone of :class:`threading.Barrier`." msgstr "" -#: library/multiprocessing.rst:1366 +#: library/multiprocessing.rst:1416 msgid "" "A bounded semaphore object: a close analog of :class:`threading." "BoundedSemaphore`." msgstr "" -#: library/multiprocessing.rst:1369 library/multiprocessing.rst:1521 +#: library/multiprocessing.rst:1419 library/multiprocessing.rst:1571 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 "" -#: library/multiprocessing.rst:1373 +#: library/multiprocessing.rst:1423 msgid "" "On macOS, this is indistinguishable from :class:`Semaphore` because " "``sem_getvalue()`` is not implemented on that platform." msgstr "" -#: library/multiprocessing.rst:1378 +#: library/multiprocessing.rst:1428 msgid "A condition variable: an alias for :class:`threading.Condition`." msgstr "" -#: library/multiprocessing.rst:1380 +#: library/multiprocessing.rst:1430 msgid "" "If *lock* is specified then it should be a :class:`Lock` or :class:`RLock` " "object from :mod:`multiprocessing`." msgstr "" -#: library/multiprocessing.rst:1383 library/multiprocessing.rst:1935 +#: library/multiprocessing.rst:1433 library/multiprocessing.rst:1985 msgid "The :meth:`~threading.Condition.wait_for` method was added." msgstr "" -#: library/multiprocessing.rst:1388 +#: library/multiprocessing.rst:1438 msgid "A clone of :class:`threading.Event`." msgstr "" -#: library/multiprocessing.rst:1393 +#: library/multiprocessing.rst:1443 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 " @@ -1869,24 +1940,24 @@ msgid "" "as noted." msgstr "" -#: library/multiprocessing.rst:1401 +#: library/multiprocessing.rst:1451 msgid "" "Note that :class:`Lock` is actually a factory function which returns an " "instance of ``multiprocessing.synchronize.Lock`` initialized with a default " "context." msgstr "" -#: library/multiprocessing.rst:1405 +#: library/multiprocessing.rst:1455 msgid "" ":class:`Lock` supports the :term:`context manager` protocol and thus may be " "used in :keyword:`with` statements." msgstr "" -#: library/multiprocessing.rst:1410 library/multiprocessing.rst:1468 +#: library/multiprocessing.rst:1460 library/multiprocessing.rst:1518 msgid "Acquire a lock, blocking or non-blocking." msgstr "" -#: library/multiprocessing.rst:1412 +#: library/multiprocessing.rst:1462 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 " @@ -1894,14 +1965,14 @@ msgid "" "that in :meth:`threading.Lock.acquire`." msgstr "" -#: library/multiprocessing.rst:1417 +#: library/multiprocessing.rst:1467 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 "" -#: library/multiprocessing.rst:1421 +#: library/multiprocessing.rst:1471 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 " @@ -1915,23 +1986,23 @@ msgid "" "acquired or ``False`` if the timeout period has elapsed." msgstr "" -#: library/multiprocessing.rst:1436 +#: library/multiprocessing.rst:1486 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 "" -#: library/multiprocessing.rst:1439 +#: library/multiprocessing.rst:1489 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 "" -#: library/multiprocessing.rst:1445 library/multiprocessing.rst:1512 +#: library/multiprocessing.rst:1495 library/multiprocessing.rst:1562 msgid "Return a boolean indicating whether this object is locked right now." msgstr "" -#: library/multiprocessing.rst:1452 +#: library/multiprocessing.rst:1502 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. " @@ -1940,20 +2011,20 @@ msgid "" "release it once for each time it has been acquired." msgstr "" -#: library/multiprocessing.rst:1458 +#: library/multiprocessing.rst:1508 msgid "" "Note that :class:`RLock` is actually a factory function which returns an " "instance of ``multiprocessing.synchronize.RLock`` initialized with a default " "context." msgstr "" -#: library/multiprocessing.rst:1462 +#: library/multiprocessing.rst:1512 msgid "" ":class:`RLock` supports the :term:`context manager` protocol and thus may be " "used in :keyword:`with` statements." msgstr "" -#: library/multiprocessing.rst:1470 +#: library/multiprocessing.rst:1520 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 " @@ -1966,7 +2037,7 @@ msgid "" "itself." msgstr "" -#: library/multiprocessing.rst:1480 +#: library/multiprocessing.rst:1530 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 " @@ -1977,14 +2048,14 @@ msgid "" "a return value of ``True``." msgstr "" -#: library/multiprocessing.rst:1488 +#: library/multiprocessing.rst:1538 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 "" -#: library/multiprocessing.rst:1495 +#: library/multiprocessing.rst:1545 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 " @@ -1994,7 +2065,7 @@ msgid "" "locked and owned by the calling process or thread." msgstr "" -#: library/multiprocessing.rst:1503 +#: library/multiprocessing.rst:1553 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 " @@ -2003,17 +2074,17 @@ msgid "" "from the implemented behavior in :meth:`threading.RLock.release`." msgstr "" -#: library/multiprocessing.rst:1519 +#: library/multiprocessing.rst:1569 msgid "A semaphore object: a close analog of :class:`threading.Semaphore`." msgstr "" -#: library/multiprocessing.rst:1526 +#: library/multiprocessing.rst:1576 msgid "" "On macOS, ``sem_timedwait`` is unsupported, so calling ``acquire()`` with a " "timeout will emulate that function's behavior using a sleeping loop." msgstr "" -#: library/multiprocessing.rst:1531 +#: library/multiprocessing.rst:1581 msgid "" "Some of this package's functionality requires a functioning shared semaphore " "implementation on the host operating system. Without one, the :mod:" @@ -2022,31 +2093,31 @@ msgid "" "additional information." msgstr "" -#: library/multiprocessing.rst:1539 +#: library/multiprocessing.rst:1589 msgid "Shared :mod:`ctypes` Objects" msgstr "" -#: library/multiprocessing.rst:1541 +#: library/multiprocessing.rst:1591 msgid "" "It is possible to create shared objects using shared memory which can be " "inherited by child processes." msgstr "" -#: library/multiprocessing.rst:1546 +#: library/multiprocessing.rst:1596 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 "" -#: library/multiprocessing.rst:1550 library/multiprocessing.rst:1637 +#: library/multiprocessing.rst:1600 library/multiprocessing.rst:1687 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 "" -#: library/multiprocessing.rst:1554 +#: library/multiprocessing.rst:1604 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` " @@ -2056,41 +2127,41 @@ msgid "" "\"process-safe\"." msgstr "" -#: library/multiprocessing.rst:1561 +#: library/multiprocessing.rst:1611 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 "" -#: library/multiprocessing.rst:1565 +#: library/multiprocessing.rst:1615 msgid "counter.value += 1" msgstr "" -#: library/multiprocessing.rst:1567 +#: library/multiprocessing.rst:1617 msgid "" "Assuming the associated lock is recursive (which it is by default) you can " "instead do ::" msgstr "" -#: library/multiprocessing.rst:1570 +#: library/multiprocessing.rst:1620 msgid "" "with counter.get_lock():\n" " counter.value += 1" msgstr "" -#: library/multiprocessing.rst:1573 library/multiprocessing.rst:1663 -#: library/multiprocessing.rst:1678 +#: library/multiprocessing.rst:1623 library/multiprocessing.rst:1713 +#: library/multiprocessing.rst:1728 msgid "Note that *lock* is a keyword-only argument." msgstr "" -#: library/multiprocessing.rst:1577 +#: library/multiprocessing.rst:1627 msgid "" "Return a ctypes array allocated from shared memory. By default the return " "value is actually a synchronized wrapper for the array." msgstr "" -#: library/multiprocessing.rst:1580 +#: library/multiprocessing.rst:1630 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 " @@ -2100,7 +2171,7 @@ msgid "" "initialize the array and whose length determines the length of the array." msgstr "" -#: library/multiprocessing.rst:1587 +#: library/multiprocessing.rst:1637 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:" @@ -2110,28 +2181,28 @@ msgid "" "safe\"." msgstr "" -#: library/multiprocessing.rst:1594 +#: library/multiprocessing.rst:1644 msgid "Note that *lock* is a keyword only argument." msgstr "" -#: library/multiprocessing.rst:1596 +#: library/multiprocessing.rst:1646 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 "" -#: library/multiprocessing.rst:1601 +#: library/multiprocessing.rst:1651 msgid "The :mod:`multiprocessing.sharedctypes` module" msgstr "" -#: library/multiprocessing.rst:1606 +#: library/multiprocessing.rst:1656 msgid "" "The :mod:`multiprocessing.sharedctypes` module provides functions for " "allocating :mod:`ctypes` objects from shared memory which can be inherited " "by child processes." msgstr "" -#: library/multiprocessing.rst:1612 +#: library/multiprocessing.rst:1662 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. " @@ -2140,11 +2211,11 @@ msgid "" "may cause a crash." msgstr "" -#: library/multiprocessing.rst:1620 +#: library/multiprocessing.rst:1670 msgid "Return a ctypes array allocated from shared memory." msgstr "" -#: library/multiprocessing.rst:1622 +#: library/multiprocessing.rst:1672 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 " @@ -2154,39 +2225,39 @@ msgid "" "initialize the array and whose length determines the length of the array." msgstr "" -#: library/multiprocessing.rst:1629 +#: library/multiprocessing.rst:1679 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 "" -#: library/multiprocessing.rst:1635 +#: library/multiprocessing.rst:1685 msgid "Return a ctypes object allocated from shared memory." msgstr "" -#: library/multiprocessing.rst:1641 +#: library/multiprocessing.rst:1691 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 "" -#: library/multiprocessing.rst:1645 +#: library/multiprocessing.rst:1695 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 "" -#: library/multiprocessing.rst:1651 +#: library/multiprocessing.rst:1701 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 "" -#: library/multiprocessing.rst:1655 library/multiprocessing.rst:1671 +#: library/multiprocessing.rst:1705 library/multiprocessing.rst:1721 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." @@ -2196,113 +2267,113 @@ msgid "" "not necessarily be \"process-safe\"." msgstr "" -#: library/multiprocessing.rst:1667 +#: library/multiprocessing.rst:1717 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 "" -#: library/multiprocessing.rst:1682 +#: library/multiprocessing.rst:1732 msgid "" "Return a ctypes object allocated from shared memory which is a copy of the " "ctypes object *obj*." msgstr "" -#: library/multiprocessing.rst:1687 +#: library/multiprocessing.rst:1737 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 "" -#: library/multiprocessing.rst:1691 +#: library/multiprocessing.rst:1741 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 "" -#: library/multiprocessing.rst:1695 +#: library/multiprocessing.rst:1745 msgid "" "Note that accessing the ctypes object through the wrapper can be a lot " "slower than accessing the raw ctypes object." msgstr "" -#: library/multiprocessing.rst:1698 +#: library/multiprocessing.rst:1748 msgid "Synchronized objects support the :term:`context manager` protocol." msgstr "" -#: library/multiprocessing.rst:1702 +#: library/multiprocessing.rst:1752 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 "" -#: library/multiprocessing.rst:1707 +#: library/multiprocessing.rst:1757 msgid "ctypes" msgstr "" -#: library/multiprocessing.rst:1707 +#: library/multiprocessing.rst:1757 msgid "sharedctypes using type" msgstr "" -#: library/multiprocessing.rst:1707 +#: library/multiprocessing.rst:1757 msgid "sharedctypes using typecode" msgstr "" -#: library/multiprocessing.rst:1709 +#: library/multiprocessing.rst:1759 msgid "c_double(2.4)" msgstr "" -#: library/multiprocessing.rst:1709 +#: library/multiprocessing.rst:1759 msgid "RawValue(c_double, 2.4)" msgstr "" -#: library/multiprocessing.rst:1709 +#: library/multiprocessing.rst:1759 msgid "RawValue('d', 2.4)" msgstr "" -#: library/multiprocessing.rst:1710 +#: library/multiprocessing.rst:1760 msgid "MyStruct(4, 6)" msgstr "" -#: library/multiprocessing.rst:1710 +#: library/multiprocessing.rst:1760 msgid "RawValue(MyStruct, 4, 6)" msgstr "" -#: library/multiprocessing.rst:1711 +#: library/multiprocessing.rst:1761 msgid "(c_short * 7)()" msgstr "" -#: library/multiprocessing.rst:1711 +#: library/multiprocessing.rst:1761 msgid "RawArray(c_short, 7)" msgstr "" -#: library/multiprocessing.rst:1711 +#: library/multiprocessing.rst:1761 msgid "RawArray('h', 7)" msgstr "" -#: library/multiprocessing.rst:1712 +#: library/multiprocessing.rst:1762 msgid "(c_int * 3)(9, 2, 8)" msgstr "" -#: library/multiprocessing.rst:1712 +#: library/multiprocessing.rst:1762 msgid "RawArray(c_int, (9, 2, 8))" msgstr "" -#: library/multiprocessing.rst:1712 +#: library/multiprocessing.rst:1762 msgid "RawArray('i', (9, 2, 8))" msgstr "" -#: library/multiprocessing.rst:1716 +#: library/multiprocessing.rst:1766 msgid "" "Below is an example where a number of ctypes objects are modified by a child " "process::" msgstr "" -#: library/multiprocessing.rst:1719 +#: library/multiprocessing.rst:1769 msgid "" "from multiprocessing import Process, Lock\n" "from multiprocessing.sharedctypes import Value, Array\n" @@ -2337,11 +2408,11 @@ msgid "" " print([(a.x, a.y) for a in A])" msgstr "" -#: library/multiprocessing.rst:1754 +#: library/multiprocessing.rst:1804 msgid "The results printed are ::" msgstr "" -#: library/multiprocessing.rst:1756 +#: library/multiprocessing.rst:1806 msgid "" "49\n" "0.1111111111111111\n" @@ -2349,11 +2420,11 @@ msgid "" "[(3.515625, 39.0625), (33.0625, 4.0), (5.640625, 90.25)]" msgstr "" -#: library/multiprocessing.rst:1767 +#: library/multiprocessing.rst:1817 msgid "Managers" msgstr "" -#: library/multiprocessing.rst:1769 +#: library/multiprocessing.rst:1819 msgid "" "Managers provide a way to create data which can be shared between different " "processes, including sharing over a network between processes running on " @@ -2362,7 +2433,7 @@ msgid "" "proxies." msgstr "" -#: library/multiprocessing.rst:1778 +#: library/multiprocessing.rst:1828 msgid "" "Returns a started :class:`~multiprocessing.managers.SyncManager` object " "which can be used for sharing objects between processes. The returned " @@ -2370,31 +2441,31 @@ msgid "" "will create shared objects and return corresponding proxies." msgstr "" -#: library/multiprocessing.rst:1786 +#: library/multiprocessing.rst:1836 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 "" -#: library/multiprocessing.rst:1792 +#: library/multiprocessing.rst:1842 msgid "Create a BaseManager object." msgstr "" -#: library/multiprocessing.rst:1794 +#: library/multiprocessing.rst:1844 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 "" -#: library/multiprocessing.rst:1797 +#: library/multiprocessing.rst:1847 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 "" -#: library/multiprocessing.rst:1800 +#: library/multiprocessing.rst:1850 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`` " @@ -2402,19 +2473,19 @@ msgid "" "it must be a byte string." msgstr "" -#: library/multiprocessing.rst:1805 +#: library/multiprocessing.rst:1855 msgid "" "*serializer* must be ``'pickle'`` (use :mod:`pickle` serialization) or " "``'xmlrpclib'`` (use :mod:`xmlrpc.client` serialization)." msgstr "" -#: library/multiprocessing.rst:1808 +#: library/multiprocessing.rst:1858 msgid "" "*ctx* is a context object, or ``None`` (use the current context). See the :" "func:`get_context` function." msgstr "" -#: library/multiprocessing.rst:1811 +#: library/multiprocessing.rst:1861 msgid "" "*shutdown_timeout* is a timeout in seconds used to wait until the process " "used by the manager completes in the :meth:`shutdown` method. If the " @@ -2422,24 +2493,24 @@ msgid "" "also times out, the process is killed." msgstr "" -#: library/multiprocessing.rst:1816 +#: library/multiprocessing.rst:1866 msgid "Added the *shutdown_timeout* parameter." msgstr "" -#: library/multiprocessing.rst:1821 +#: library/multiprocessing.rst:1871 msgid "" "Start a subprocess to start the manager. If *initializer* is not ``None`` " "then the subprocess will call ``initializer(*initargs)`` when it starts." msgstr "" -#: library/multiprocessing.rst:1826 +#: library/multiprocessing.rst:1876 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 "" -#: library/multiprocessing.rst:1830 +#: library/multiprocessing.rst:1880 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> manager = BaseManager(address=('', 50000), authkey=b'abc')\n" @@ -2447,44 +2518,44 @@ msgid "" ">>> server.serve_forever()" msgstr "" -#: library/multiprocessing.rst:1835 +#: library/multiprocessing.rst:1885 msgid ":class:`Server` additionally has an :attr:`address` attribute." msgstr "" -#: library/multiprocessing.rst:1839 +#: library/multiprocessing.rst:1889 msgid "Connect a local manager object to a remote manager process::" msgstr "" -#: library/multiprocessing.rst:1841 +#: library/multiprocessing.rst:1891 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> m = BaseManager(address=('127.0.0.1', 50000), authkey=b'abc')\n" ">>> m.connect()" msgstr "" -#: library/multiprocessing.rst:1847 +#: library/multiprocessing.rst:1897 msgid "" "Stop the process used by the manager. This is only available if :meth:" "`start` has been used to start the server process." msgstr "" -#: library/multiprocessing.rst:1850 +#: library/multiprocessing.rst:1900 msgid "This can be called multiple times." msgstr "" -#: library/multiprocessing.rst:1854 +#: library/multiprocessing.rst:1904 msgid "" "A classmethod which can be used for registering a type or callable with the " "manager class." msgstr "" -#: library/multiprocessing.rst:1857 +#: library/multiprocessing.rst:1907 msgid "" "*typeid* is a \"type identifier\" which is used to identify a particular " "type of shared object. This must be a string." msgstr "" -#: library/multiprocessing.rst:1860 +#: library/multiprocessing.rst:1910 msgid "" "*callable* is a callable used for creating objects for this type " "identifier. If a manager instance will be connected to the server using " @@ -2492,14 +2563,14 @@ msgid "" "then this can be left as ``None``." msgstr "" -#: library/multiprocessing.rst:1866 +#: library/multiprocessing.rst:1916 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 "" -#: library/multiprocessing.rst:1870 +#: library/multiprocessing.rst:1920 msgid "" "*exposed* is used to specify a sequence of method names which proxies for " "this typeid should be allowed to access using :meth:`BaseProxy." @@ -2510,7 +2581,7 @@ msgid "" "method and whose name does not begin with ``'_'``.)" msgstr "" -#: library/multiprocessing.rst:1879 +#: library/multiprocessing.rst:1929 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 " @@ -2520,22 +2591,22 @@ msgid "" "returned by the method will be copied by value." msgstr "" -#: library/multiprocessing.rst:1886 +#: library/multiprocessing.rst:1936 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 "" -#: library/multiprocessing.rst:1890 +#: library/multiprocessing.rst:1940 msgid ":class:`BaseManager` instances also have one read-only property:" msgstr "" -#: library/multiprocessing.rst:1894 +#: library/multiprocessing.rst:1944 msgid "The address used by the manager." msgstr "" -#: library/multiprocessing.rst:1896 +#: library/multiprocessing.rst:1946 msgid "" "Manager objects support the context management protocol -- see :ref:" "`typecontextmanager`. :meth:`~contextmanager.__enter__` starts the server " @@ -2543,129 +2614,129 @@ msgid "" "object. :meth:`~contextmanager.__exit__` calls :meth:`shutdown`." msgstr "" -#: library/multiprocessing.rst:1902 +#: library/multiprocessing.rst:1952 msgid "" "In previous versions :meth:`~contextmanager.__enter__` did not start the " "manager's server process if it was not already started." msgstr "" -#: library/multiprocessing.rst:1907 +#: library/multiprocessing.rst:1957 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 "" -#: library/multiprocessing.rst:1911 +#: library/multiprocessing.rst:1961 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 "" -#: library/multiprocessing.rst:1917 +#: library/multiprocessing.rst:1967 msgid "" "Create a shared :class:`threading.Barrier` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1924 +#: library/multiprocessing.rst:1974 msgid "" "Create a shared :class:`threading.BoundedSemaphore` object and return a " "proxy for it." msgstr "" -#: library/multiprocessing.rst:1929 +#: library/multiprocessing.rst:1979 msgid "" "Create a shared :class:`threading.Condition` object and return a proxy for " "it." msgstr "" -#: library/multiprocessing.rst:1932 +#: library/multiprocessing.rst:1982 msgid "" "If *lock* is supplied then it should be a proxy for a :class:`threading." "Lock` or :class:`threading.RLock` object." msgstr "" -#: library/multiprocessing.rst:1940 +#: library/multiprocessing.rst:1990 msgid "" "Create a shared :class:`threading.Event` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1944 +#: library/multiprocessing.rst:1994 msgid "" "Create a shared :class:`threading.Lock` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1948 +#: library/multiprocessing.rst:1998 msgid "Create a shared :class:`Namespace` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1952 +#: library/multiprocessing.rst:2002 msgid "Create a shared :class:`queue.Queue` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1956 +#: library/multiprocessing.rst:2006 msgid "" "Create a shared :class:`threading.RLock` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1960 +#: library/multiprocessing.rst:2010 msgid "" "Create a shared :class:`threading.Semaphore` object and return a proxy for " "it." msgstr "" -#: library/multiprocessing.rst:1965 +#: library/multiprocessing.rst:2015 msgid "Create an array and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1969 +#: library/multiprocessing.rst:2019 msgid "" "Create an object with a writable ``value`` attribute and return a proxy for " "it." msgstr "" -#: library/multiprocessing.rst:1976 +#: library/multiprocessing.rst:2026 msgid "Create a shared :class:`dict` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1981 +#: library/multiprocessing.rst:2031 msgid "Create a shared :class:`list` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1987 +#: library/multiprocessing.rst:2037 msgid "Create a shared :class:`set` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1989 +#: library/multiprocessing.rst:2039 msgid ":class:`set` support was added." msgstr "" -#: library/multiprocessing.rst:1992 +#: library/multiprocessing.rst:2042 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 "" -#: library/multiprocessing.rst:1999 +#: library/multiprocessing.rst:2049 msgid "A type that can register with :class:`SyncManager`." msgstr "" -#: library/multiprocessing.rst:2001 +#: library/multiprocessing.rst:2051 msgid "" "A namespace object has no public methods, but does have writable attributes. " "Its representation shows the values of its attributes." msgstr "" -#: library/multiprocessing.rst:2004 +#: library/multiprocessing.rst:2054 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 "" -#: library/multiprocessing.rst:2008 +#: library/multiprocessing.rst:2058 msgid "" ">>> mp_context = multiprocessing.get_context('spawn')\n" ">>> manager = mp_context.Manager()\n" @@ -2677,18 +2748,18 @@ msgid "" "Namespace(x=10, y='hello')" msgstr "" -#: library/multiprocessing.rst:2021 +#: library/multiprocessing.rst:2071 msgid "Customized managers" msgstr "" -#: library/multiprocessing.rst:2023 +#: library/multiprocessing.rst:2073 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 "" -#: library/multiprocessing.rst:2027 +#: library/multiprocessing.rst:2077 msgid "" "from multiprocessing.managers import BaseManager\n" "\n" @@ -2710,23 +2781,23 @@ msgid "" " print(maths.mul(7, 8)) # prints 56" msgstr "" -#: library/multiprocessing.rst:2048 +#: library/multiprocessing.rst:2098 msgid "Using a remote manager" msgstr "" -#: library/multiprocessing.rst:2050 +#: library/multiprocessing.rst:2100 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 "" -#: library/multiprocessing.rst:2053 +#: library/multiprocessing.rst:2103 msgid "" "Running the following commands creates a server for a single shared queue " "which remote clients can access::" msgstr "" -#: library/multiprocessing.rst:2056 +#: library/multiprocessing.rst:2106 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> from queue import Queue\n" @@ -2738,11 +2809,11 @@ msgid "" ">>> s.serve_forever()" msgstr "" -#: library/multiprocessing.rst:2065 +#: library/multiprocessing.rst:2115 msgid "One client can access the server as follows::" msgstr "" -#: library/multiprocessing.rst:2067 +#: library/multiprocessing.rst:2117 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> class QueueManager(BaseManager): pass\n" @@ -2754,11 +2825,11 @@ msgid "" ">>> queue.put('hello')" msgstr "" -#: library/multiprocessing.rst:2075 +#: library/multiprocessing.rst:2125 msgid "Another client can also use it::" msgstr "" -#: library/multiprocessing.rst:2077 +#: library/multiprocessing.rst:2127 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> class QueueManager(BaseManager): pass\n" @@ -2771,13 +2842,13 @@ msgid "" "'hello'" msgstr "" -#: library/multiprocessing.rst:2086 +#: library/multiprocessing.rst:2136 msgid "" "Local processes can also access that queue, using the code from above on the " "client to access it remotely::" msgstr "" -#: library/multiprocessing.rst:2089 +#: library/multiprocessing.rst:2139 msgid "" ">>> from multiprocessing import Process, Queue\n" ">>> from multiprocessing.managers import BaseManager\n" @@ -2799,18 +2870,18 @@ msgid "" ">>> s.serve_forever()" msgstr "" -#: library/multiprocessing.rst:2111 +#: library/multiprocessing.rst:2161 msgid "Proxy Objects" msgstr "" -#: library/multiprocessing.rst:2113 +#: library/multiprocessing.rst:2163 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 "" -#: library/multiprocessing.rst:2117 +#: library/multiprocessing.rst:2167 msgid "" "A proxy object has methods which invoke corresponding methods of its " "referent (although not every method of the referent will necessarily be " @@ -2818,7 +2889,7 @@ msgid "" "its referent can:" msgstr "" -#: library/multiprocessing.rst:2121 +#: library/multiprocessing.rst:2171 msgid "" ">>> mp_context = multiprocessing.get_context('spawn')\n" ">>> manager = mp_context.Manager()\n" @@ -2833,14 +2904,14 @@ msgid "" "[4, 9, 16]" msgstr "" -#: library/multiprocessing.rst:2135 +#: library/multiprocessing.rst:2185 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 "" -#: library/multiprocessing.rst:2139 +#: library/multiprocessing.rst:2189 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:" @@ -2848,7 +2919,7 @@ msgid "" "lists, dicts, and other :ref:`multiprocessing-proxy_objects`:" msgstr "" -#: library/multiprocessing.rst:2144 +#: library/multiprocessing.rst:2194 msgid "" ">>> a = manager.list()\n" ">>> b = manager.list()\n" @@ -2860,11 +2931,11 @@ msgid "" "['hello'] ['hello']" msgstr "" -#: library/multiprocessing.rst:2155 +#: library/multiprocessing.rst:2205 msgid "Similarly, dict and list proxies may be nested inside one another::" msgstr "" -#: library/multiprocessing.rst:2157 +#: library/multiprocessing.rst:2207 msgid "" ">>> l_outer = manager.list([ manager.dict() for i in range(2) ])\n" ">>> d_first_inner = l_outer[0]\n" @@ -2878,7 +2949,7 @@ msgid "" "{'c': 3, 'z': 26}" msgstr "" -#: library/multiprocessing.rst:2168 +#: library/multiprocessing.rst:2218 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 " @@ -2889,7 +2960,7 @@ msgid "" "assign the modified value to the container proxy::" msgstr "" -#: library/multiprocessing.rst:2176 +#: library/multiprocessing.rst:2226 msgid "" "# create a list proxy and append a mutable object (a dictionary)\n" "lproxy = manager.list()\n" @@ -2903,67 +2974,67 @@ msgid "" "lproxy[0] = d" msgstr "" -#: library/multiprocessing.rst:2187 +#: library/multiprocessing.rst:2237 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 "" -#: library/multiprocessing.rst:2193 +#: library/multiprocessing.rst:2243 msgid "" "The proxy types in :mod:`multiprocessing` do nothing to support comparisons " "by value. So, for instance, we have:" msgstr "" -#: library/multiprocessing.rst:2196 +#: library/multiprocessing.rst:2246 msgid "" ">>> manager.list([1,2,3]) == [1,2,3]\n" "False" msgstr "" -#: library/multiprocessing.rst:2201 +#: library/multiprocessing.rst:2251 msgid "" "One should just use a copy of the referent instead when making comparisons." msgstr "" -#: library/multiprocessing.rst:2205 +#: library/multiprocessing.rst:2255 msgid "Proxy objects are instances of subclasses of :class:`BaseProxy`." msgstr "" -#: library/multiprocessing.rst:2209 +#: library/multiprocessing.rst:2259 msgid "Call and return the result of a method of the proxy's referent." msgstr "" -#: library/multiprocessing.rst:2211 +#: library/multiprocessing.rst:2261 msgid "" "If ``proxy`` is a proxy whose referent is ``obj`` then the expression ::" msgstr "" -#: library/multiprocessing.rst:2213 +#: library/multiprocessing.rst:2263 msgid "proxy._callmethod(methodname, args, kwds)" msgstr "" -#: library/multiprocessing.rst:2215 +#: library/multiprocessing.rst:2265 msgid "will evaluate the expression ::" msgstr "" -#: library/multiprocessing.rst:2217 +#: library/multiprocessing.rst:2267 msgid "getattr(obj, methodname)(*args, **kwds)" msgstr "" -#: library/multiprocessing.rst:2219 +#: library/multiprocessing.rst:2269 msgid "in the manager's process." msgstr "" -#: library/multiprocessing.rst:2221 +#: library/multiprocessing.rst:2271 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 "" -#: library/multiprocessing.rst:2225 +#: library/multiprocessing.rst:2275 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 " @@ -2971,17 +3042,17 @@ msgid "" "meth:`_callmethod`." msgstr "" -#: library/multiprocessing.rst:2230 +#: library/multiprocessing.rst:2280 msgid "" "Note in particular that an exception will be raised if *methodname* has not " "been *exposed*." msgstr "" -#: library/multiprocessing.rst:2233 +#: library/multiprocessing.rst:2283 msgid "An example of the usage of :meth:`_callmethod`:" msgstr "" -#: library/multiprocessing.rst:2235 +#: library/multiprocessing.rst:2285 msgid "" ">>> l = manager.list(range(10))\n" ">>> l._callmethod('__len__')\n" @@ -2994,68 +3065,68 @@ msgid "" "IndexError: list index out of range" msgstr "" -#: library/multiprocessing.rst:2249 +#: library/multiprocessing.rst:2299 msgid "Return a copy of the referent." msgstr "" -#: library/multiprocessing.rst:2251 +#: library/multiprocessing.rst:2301 msgid "If the referent is unpicklable then this will raise an exception." msgstr "" -#: library/multiprocessing.rst:2255 +#: library/multiprocessing.rst:2305 msgid "Return a representation of the proxy object." msgstr "" -#: library/multiprocessing.rst:2259 +#: library/multiprocessing.rst:2309 msgid "Return the representation of the referent." msgstr "" -#: library/multiprocessing.rst:2263 +#: library/multiprocessing.rst:2313 msgid "Cleanup" msgstr "" -#: library/multiprocessing.rst:2265 +#: library/multiprocessing.rst:2315 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 "" -#: library/multiprocessing.rst:2268 +#: library/multiprocessing.rst:2318 msgid "" "A shared object gets deleted from the manager process when there are no " "longer any proxies referring to it." msgstr "" -#: library/multiprocessing.rst:2273 +#: library/multiprocessing.rst:2323 msgid "Process Pools" msgstr "" -#: library/multiprocessing.rst:2278 +#: library/multiprocessing.rst:2328 msgid "" "One can create a pool of processes which will carry out tasks submitted to " "it with the :class:`Pool` class." msgstr "" -#: library/multiprocessing.rst:2283 +#: library/multiprocessing.rst:2333 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 "" -#: library/multiprocessing.rst:2287 +#: library/multiprocessing.rst:2337 msgid "" "*processes* is the number of worker processes to use. If *processes* is " "``None`` then the number returned by :func:`os.process_cpu_count` is used." msgstr "" -#: library/multiprocessing.rst:2290 library/multiprocessing.rst:2854 +#: library/multiprocessing.rst:2340 library/multiprocessing.rst:2904 msgid "" "If *initializer* is not ``None`` then each worker process will call " "``initializer(*initargs)`` when it starts." msgstr "" -#: library/multiprocessing.rst:2293 +#: library/multiprocessing.rst:2343 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 " @@ -3063,7 +3134,7 @@ msgid "" "which means worker processes will live as long as the pool." msgstr "" -#: library/multiprocessing.rst:2298 +#: library/multiprocessing.rst:2348 msgid "" "*context* can be used to specify the context used for starting the worker " "processes. Usually a pool is created using the function :func:" @@ -3071,13 +3142,13 @@ msgid "" "both cases *context* is set appropriately." msgstr "" -#: library/multiprocessing.rst:2304 +#: library/multiprocessing.rst:2354 msgid "" "Note that the methods of the pool object should only be called by the " "process which created the pool." msgstr "" -#: library/multiprocessing.rst:2308 +#: library/multiprocessing.rst:2358 msgid "" ":class:`multiprocessing.pool` objects have internal resources that need to " "be properly managed (like any other resource) by using the pool as a context " @@ -3085,28 +3156,28 @@ msgid "" "to do this can lead to the process hanging on finalization." msgstr "" -#: library/multiprocessing.rst:2313 +#: library/multiprocessing.rst:2363 msgid "" "Note that it is **not correct** to rely on the garbage collector to destroy " "the pool as CPython does not assure that the finalizer of the pool will be " "called (see :meth:`object.__del__` for more information)." msgstr "" -#: library/multiprocessing.rst:2317 +#: library/multiprocessing.rst:2367 msgid "Added the *maxtasksperchild* parameter." msgstr "" -#: library/multiprocessing.rst:2320 +#: library/multiprocessing.rst:2370 msgid "Added the *context* parameter." msgstr "" -#: library/multiprocessing.rst:2323 +#: library/multiprocessing.rst:2373 msgid "" "*processes* uses :func:`os.process_cpu_count` by default, instead of :func:" "`os.cpu_count`." msgstr "" -#: library/multiprocessing.rst:2329 +#: library/multiprocessing.rst:2379 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 " @@ -3117,7 +3188,7 @@ msgid "" "ability to the end user." msgstr "" -#: library/multiprocessing.rst:2339 +#: library/multiprocessing.rst:2389 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 " @@ -3125,13 +3196,13 @@ msgid "" "executed in one of the workers of the pool." msgstr "" -#: library/multiprocessing.rst:2346 +#: library/multiprocessing.rst:2396 msgid "" "A variant of the :meth:`apply` method which returns a :class:" "`~multiprocessing.pool.AsyncResult` object." msgstr "" -#: library/multiprocessing.rst:2349 library/multiprocessing.rst:2380 +#: library/multiprocessing.rst:2399 library/multiprocessing.rst:2430 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, " @@ -3139,58 +3210,58 @@ msgid "" "applied instead." msgstr "" -#: library/multiprocessing.rst:2354 library/multiprocessing.rst:2385 +#: library/multiprocessing.rst:2404 library/multiprocessing.rst:2435 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 "" -#: library/multiprocessing.rst:2358 library/multiprocessing.rst:2389 +#: library/multiprocessing.rst:2408 library/multiprocessing.rst:2439 msgid "" "Callbacks should complete immediately since otherwise the thread which " "handles the results will get blocked." msgstr "" -#: library/multiprocessing.rst:2363 +#: library/multiprocessing.rst:2413 msgid "" "A parallel equivalent of the :func:`map` built-in function (it supports only " "one *iterable* argument though, for multiple iterables see :meth:`starmap`). " "It blocks until the result is ready." msgstr "" -#: library/multiprocessing.rst:2367 +#: library/multiprocessing.rst:2417 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 "" -#: library/multiprocessing.rst:2371 +#: library/multiprocessing.rst:2421 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 "" -#: library/multiprocessing.rst:2377 +#: library/multiprocessing.rst:2427 msgid "" "A variant of the :meth:`.map` method which returns a :class:" "`~multiprocessing.pool.AsyncResult` object." msgstr "" -#: library/multiprocessing.rst:2394 +#: library/multiprocessing.rst:2444 msgid "A lazier version of :meth:`.map`." msgstr "" -#: library/multiprocessing.rst:2396 +#: library/multiprocessing.rst:2446 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 "" -#: library/multiprocessing.rst:2401 +#: library/multiprocessing.rst:2451 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: " @@ -3198,65 +3269,65 @@ msgid "" "result cannot be returned within *timeout* seconds." msgstr "" -#: library/multiprocessing.rst:2408 +#: library/multiprocessing.rst:2458 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 "" -#: library/multiprocessing.rst:2414 +#: library/multiprocessing.rst:2464 msgid "" "Like :meth:`~multiprocessing.pool.Pool.map` except that the elements of the " "*iterable* are expected to be iterables that are unpacked as arguments." msgstr "" -#: library/multiprocessing.rst:2418 +#: library/multiprocessing.rst:2468 msgid "" "Hence an *iterable* of ``[(1,2), (3, 4)]`` results in ``[func(1,2), " "func(3,4)]``." msgstr "" -#: library/multiprocessing.rst:2425 +#: library/multiprocessing.rst:2475 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 "" -#: library/multiprocessing.rst:2433 +#: library/multiprocessing.rst:2483 msgid "" "Prevents any more tasks from being submitted to the pool. Once all the " "tasks have been completed the worker processes will exit." msgstr "" -#: library/multiprocessing.rst:2438 +#: library/multiprocessing.rst:2488 msgid "" "Stops the worker processes immediately without completing outstanding work. " "When the pool object is garbage collected :meth:`terminate` will be called " "immediately." msgstr "" -#: library/multiprocessing.rst:2444 +#: library/multiprocessing.rst:2494 msgid "" "Wait for the worker processes to exit. One must call :meth:`close` or :meth:" "`terminate` before using :meth:`join`." msgstr "" -#: library/multiprocessing.rst:2447 +#: library/multiprocessing.rst:2497 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 "" -#: library/multiprocessing.rst:2455 +#: library/multiprocessing.rst:2505 msgid "" "The class of the result returned by :meth:`Pool.apply_async` and :meth:`Pool." "map_async`." msgstr "" -#: library/multiprocessing.rst:2460 +#: library/multiprocessing.rst:2510 msgid "" "Return the result when it arrives. If *timeout* is not ``None`` and the " "result does not arrive within *timeout* seconds then :exc:`multiprocessing." @@ -3264,31 +3335,31 @@ msgid "" "exception will be reraised by :meth:`get`." msgstr "" -#: library/multiprocessing.rst:2467 +#: library/multiprocessing.rst:2517 msgid "Wait until the result is available or until *timeout* seconds pass." msgstr "" -#: library/multiprocessing.rst:2471 +#: library/multiprocessing.rst:2521 msgid "Return whether the call has completed." msgstr "" -#: library/multiprocessing.rst:2475 +#: library/multiprocessing.rst:2525 msgid "" "Return whether the call completed without raising an exception. Will raise :" "exc:`ValueError` if the result is not ready." msgstr "" -#: library/multiprocessing.rst:2478 +#: library/multiprocessing.rst:2528 msgid "" "If the result is not ready, :exc:`ValueError` is raised instead of :exc:" "`AssertionError`." msgstr "" -#: library/multiprocessing.rst:2482 +#: library/multiprocessing.rst:2532 msgid "The following example demonstrates the use of a pool::" msgstr "" -#: library/multiprocessing.rst:2484 +#: library/multiprocessing.rst:2534 msgid "" "from multiprocessing import Pool\n" "import time\n" @@ -3316,17 +3387,17 @@ msgid "" "TimeoutError" msgstr "" -#: library/multiprocessing.rst:2509 +#: library/multiprocessing.rst:2559 msgid "Listeners and Clients" msgstr "" -#: library/multiprocessing.rst:2514 +#: library/multiprocessing.rst:2564 msgid "" "Usually message passing between processes is done using queues or by using :" "class:`~Connection` objects returned by :func:`~multiprocessing.Pipe`." msgstr "" -#: library/multiprocessing.rst:2518 +#: library/multiprocessing.rst:2568 msgid "" "However, the :mod:`multiprocessing.connection` module allows some extra " "flexibility. It basically gives a high level message oriented API for " @@ -3335,45 +3406,45 @@ msgid "" "multiple connections at the same time." msgstr "" -#: library/multiprocessing.rst:2527 +#: library/multiprocessing.rst:2577 msgid "" "Send a randomly generated message to the other end of the connection and " "wait for a reply." msgstr "" -#: library/multiprocessing.rst:2530 +#: library/multiprocessing.rst:2580 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 "" -#: library/multiprocessing.rst:2536 +#: library/multiprocessing.rst:2586 msgid "" "Receive a message, calculate the digest of the message using *authkey* as " "the key, and then send the digest back." msgstr "" -#: library/multiprocessing.rst:2539 +#: library/multiprocessing.rst:2589 msgid "" "If a welcome message is not received, then :exc:`~multiprocessing." "AuthenticationError` is raised." msgstr "" -#: library/multiprocessing.rst:2544 +#: library/multiprocessing.rst:2594 msgid "" "Attempt to set up a connection to the listener which is using address " "*address*, returning a :class:`~Connection`." msgstr "" -#: library/multiprocessing.rst:2547 +#: library/multiprocessing.rst:2597 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 "" -#: library/multiprocessing.rst:2551 library/multiprocessing.rst:2586 +#: library/multiprocessing.rst:2601 library/multiprocessing.rst:2636 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 " @@ -3382,26 +3453,26 @@ msgid "" "`multiprocessing-auth-keys`." msgstr "" -#: library/multiprocessing.rst:2559 +#: library/multiprocessing.rst:2609 msgid "" "A wrapper for a bound socket or Windows named pipe which is 'listening' for " "connections." msgstr "" -#: library/multiprocessing.rst:2562 +#: library/multiprocessing.rst:2612 msgid "" "*address* is the address to be used by the bound socket or named pipe of the " "listener object." msgstr "" -#: library/multiprocessing.rst:2567 +#: library/multiprocessing.rst:2617 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 "" -#: library/multiprocessing.rst:2571 +#: library/multiprocessing.rst:2621 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 " @@ -3415,49 +3486,49 @@ msgid "" "using :func:`tempfile.mkstemp`." msgstr "" -#: library/multiprocessing.rst:2582 +#: library/multiprocessing.rst:2632 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 "" -#: library/multiprocessing.rst:2594 +#: library/multiprocessing.rst:2644 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 "" -#: library/multiprocessing.rst:2601 +#: library/multiprocessing.rst:2651 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 "" -#: library/multiprocessing.rst:2605 +#: library/multiprocessing.rst:2655 msgid "Listener objects have the following read-only properties:" msgstr "" -#: library/multiprocessing.rst:2609 +#: library/multiprocessing.rst:2659 msgid "The address which is being used by the Listener object." msgstr "" -#: library/multiprocessing.rst:2613 +#: library/multiprocessing.rst:2663 msgid "" "The address from which the last accepted connection came. If this is " "unavailable then it is ``None``." msgstr "" -#: library/multiprocessing.rst:2616 +#: library/multiprocessing.rst:2666 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 "" -#: library/multiprocessing.rst:2623 +#: library/multiprocessing.rst:2673 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 " @@ -3466,32 +3537,32 @@ msgid "" "zero timeout." msgstr "" -#: library/multiprocessing.rst:2629 +#: library/multiprocessing.rst:2679 msgid "" "For both POSIX and Windows, an object can appear in *object_list* if it is" msgstr "" -#: library/multiprocessing.rst:2632 +#: library/multiprocessing.rst:2682 msgid "a readable :class:`~multiprocessing.connection.Connection` object;" msgstr "" -#: library/multiprocessing.rst:2633 +#: library/multiprocessing.rst:2683 msgid "a connected and readable :class:`socket.socket` object; or" msgstr "" -#: library/multiprocessing.rst:2634 +#: library/multiprocessing.rst:2684 msgid "" "the :attr:`~multiprocessing.Process.sentinel` attribute of a :class:" "`~multiprocessing.Process` object." msgstr "" -#: library/multiprocessing.rst:2637 +#: library/multiprocessing.rst:2687 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 "" -#: library/multiprocessing.rst:2640 +#: library/multiprocessing.rst:2690 msgid "" "**POSIX**: ``wait(object_list, timeout)`` almost equivalent ``select." "select(object_list, [], [], timeout)``. The difference is that, if :func:" @@ -3499,7 +3570,7 @@ msgid "" "an error number of ``EINTR``, whereas :func:`wait` will not." msgstr "" -#: library/multiprocessing.rst:2646 +#: library/multiprocessing.rst:2696 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 " @@ -3509,18 +3580,18 @@ msgid "" "handles.)" msgstr "" -#: library/multiprocessing.rst:2656 +#: library/multiprocessing.rst:2706 msgid "**Examples**" msgstr "" -#: library/multiprocessing.rst:2658 +#: library/multiprocessing.rst:2708 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 "" -#: library/multiprocessing.rst:2662 +#: library/multiprocessing.rst:2712 msgid "" "from multiprocessing.connection import Listener\n" "from array import array\n" @@ -3538,13 +3609,13 @@ msgid "" " conn.send_bytes(array('i', [42, 1729]))" msgstr "" -#: library/multiprocessing.rst:2677 +#: library/multiprocessing.rst:2727 msgid "" "The following code connects to the server and receives some data from the " "server::" msgstr "" -#: library/multiprocessing.rst:2680 +#: library/multiprocessing.rst:2730 msgid "" "from multiprocessing.connection import Client\n" "from array import array\n" @@ -3561,13 +3632,13 @@ msgid "" " print(arr) # => array('i', [42, 1729, 0, 0, 0])" msgstr "" -#: library/multiprocessing.rst:2694 +#: library/multiprocessing.rst:2744 msgid "" "The following code uses :func:`~multiprocessing.connection.wait` to wait for " "messages from multiple processes at once::" msgstr "" -#: library/multiprocessing.rst:2697 +#: library/multiprocessing.rst:2747 msgid "" "from multiprocessing import Process, Pipe, current_process\n" "from multiprocessing.connection import wait\n" @@ -3601,23 +3672,23 @@ msgid "" " print(msg)" msgstr "" -#: library/multiprocessing.rst:2732 +#: library/multiprocessing.rst:2782 msgid "Address Formats" msgstr "" -#: library/multiprocessing.rst:2734 +#: library/multiprocessing.rst:2784 msgid "" "An ``'AF_INET'`` address is a tuple of the form ``(hostname, port)`` where " "*hostname* is a string and *port* is an integer." msgstr "" -#: library/multiprocessing.rst:2737 +#: library/multiprocessing.rst:2787 msgid "" "An ``'AF_UNIX'`` address is a string representing a filename on the " "filesystem." msgstr "" -#: library/multiprocessing.rst:2740 +#: library/multiprocessing.rst:2790 msgid "" "An ``'AF_PIPE'`` address is a string of the form :samp:`r'\\\\\\\\\\\\.\\" "\\pipe\\\\\\\\{PipeName}'`. To use :func:`Client` to connect to a named " @@ -3626,17 +3697,17 @@ msgid "" "instead." msgstr "" -#: library/multiprocessing.rst:2745 +#: library/multiprocessing.rst:2795 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 "" -#: library/multiprocessing.rst:2752 +#: library/multiprocessing.rst:2802 msgid "Authentication keys" msgstr "" -#: library/multiprocessing.rst:2754 +#: library/multiprocessing.rst:2804 msgid "" "When one uses :meth:`Connection.recv `, the data received " "is automatically unpickled. Unfortunately unpickling data from an untrusted " @@ -3644,7 +3715,7 @@ msgid "" "use the :mod:`hmac` module to provide digest authentication." msgstr "" -#: library/multiprocessing.rst:2760 +#: library/multiprocessing.rst:2810 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 " @@ -3652,7 +3723,7 @@ msgid "" "using the same key does **not** involve sending the key over the connection.)" msgstr "" -#: library/multiprocessing.rst:2766 +#: library/multiprocessing.rst:2816 msgid "" "If authentication is requested but no authentication key is specified then " "the return value of ``current_process().authkey`` is used (see :class:" @@ -3663,17 +3734,17 @@ msgid "" "setting up connections between themselves." msgstr "" -#: library/multiprocessing.rst:2774 +#: library/multiprocessing.rst:2824 msgid "" "Suitable authentication keys can also be generated by using :func:`os." "urandom`." msgstr "" -#: library/multiprocessing.rst:2778 +#: library/multiprocessing.rst:2828 msgid "Logging" msgstr "" -#: library/multiprocessing.rst:2780 +#: library/multiprocessing.rst:2830 msgid "" "Some support for logging is available. Note, however, that the :mod:" "`logging` package does not use process shared locks so it is possible " @@ -3681,27 +3752,27 @@ msgid "" "mixed up." msgstr "" -#: library/multiprocessing.rst:2787 +#: library/multiprocessing.rst:2837 msgid "" "Returns the logger used by :mod:`multiprocessing`. If necessary, a new one " "will be created." msgstr "" -#: library/multiprocessing.rst:2790 +#: library/multiprocessing.rst:2840 msgid "" "When first created the logger has level :const:`logging.NOTSET` and no " "default handler. Messages sent to this logger will not by default propagate " "to the root logger." msgstr "" -#: library/multiprocessing.rst:2794 +#: library/multiprocessing.rst:2844 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 "" -#: library/multiprocessing.rst:2801 +#: library/multiprocessing.rst:2851 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 " @@ -3710,11 +3781,11 @@ msgid "" "``level`` argument." msgstr "" -#: library/multiprocessing.rst:2807 +#: library/multiprocessing.rst:2857 msgid "Below is an example session with logging turned on::" msgstr "" -#: library/multiprocessing.rst:2809 +#: library/multiprocessing.rst:2859 msgid "" ">>> import multiprocessing, logging\n" ">>> logger = multiprocessing.log_to_stderr()\n" @@ -3730,21 +3801,21 @@ msgid "" "[INFO/SyncManager-...] manager exiting with exitcode 0" msgstr "" -#: library/multiprocessing.rst:2822 +#: library/multiprocessing.rst:2872 msgid "For a full table of logging levels, see the :mod:`logging` module." msgstr "" -#: library/multiprocessing.rst:2826 +#: library/multiprocessing.rst:2876 msgid "The :mod:`multiprocessing.dummy` module" msgstr "" -#: library/multiprocessing.rst:2831 +#: library/multiprocessing.rst:2881 msgid "" ":mod:`multiprocessing.dummy` replicates the API of :mod:`multiprocessing` " "but is no more than a wrapper around the :mod:`threading` module." msgstr "" -#: library/multiprocessing.rst:2836 +#: library/multiprocessing.rst:2886 msgid "" "In particular, the ``Pool`` function provided by :mod:`multiprocessing." "dummy` returns an instance of :class:`ThreadPool`, which is a subclass of :" @@ -3752,7 +3823,7 @@ msgid "" "worker threads rather than worker processes." msgstr "" -#: library/multiprocessing.rst:2844 +#: library/multiprocessing.rst:2894 msgid "" "A thread pool object which controls a pool of worker threads to which jobs " "can be submitted. :class:`ThreadPool` instances are fully interface " @@ -3762,18 +3833,18 @@ msgid "" "pool.Pool.terminate` manually." msgstr "" -#: library/multiprocessing.rst:2851 +#: library/multiprocessing.rst:2901 msgid "" "*processes* is the number of worker threads to use. If *processes* is " "``None`` then the number returned by :func:`os.process_cpu_count` is used." msgstr "" -#: library/multiprocessing.rst:2857 +#: library/multiprocessing.rst:2907 msgid "" "Unlike :class:`Pool`, *maxtasksperchild* and *context* cannot be provided." msgstr "" -#: library/multiprocessing.rst:2861 +#: library/multiprocessing.rst:2911 msgid "" "A :class:`ThreadPool` shares the same interface as :class:`Pool`, which is " "designed around a pool of processes and predates the introduction of the :" @@ -3783,7 +3854,7 @@ msgid "" "is not understood by any other libraries." msgstr "" -#: library/multiprocessing.rst:2868 +#: library/multiprocessing.rst:2918 msgid "" "Users should generally prefer to use :class:`concurrent.futures." "ThreadPoolExecutor`, which has a simpler interface that was designed around " @@ -3792,69 +3863,69 @@ msgid "" "`asyncio`." msgstr "" -#: library/multiprocessing.rst:2878 +#: library/multiprocessing.rst:2928 msgid "Programming guidelines" msgstr "" -#: library/multiprocessing.rst:2880 +#: library/multiprocessing.rst:2930 msgid "" "There are certain guidelines and idioms which should be adhered to when " "using :mod:`multiprocessing`." msgstr "" -#: library/multiprocessing.rst:2885 +#: library/multiprocessing.rst:2935 msgid "All start methods" msgstr "" -#: library/multiprocessing.rst:2887 +#: library/multiprocessing.rst:2937 msgid "The following applies to all start methods." msgstr "" -#: library/multiprocessing.rst:2889 +#: library/multiprocessing.rst:2939 msgid "Avoid shared state" msgstr "" -#: library/multiprocessing.rst:2891 +#: library/multiprocessing.rst:2941 msgid "" "As far as possible one should try to avoid shifting large amounts of data " "between processes." msgstr "" -#: library/multiprocessing.rst:2894 +#: library/multiprocessing.rst:2944 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 "" -#: library/multiprocessing.rst:2898 +#: library/multiprocessing.rst:2948 msgid "Picklability" msgstr "" -#: library/multiprocessing.rst:2900 +#: library/multiprocessing.rst:2950 msgid "Ensure that the arguments to the methods of proxies are picklable." msgstr "" -#: library/multiprocessing.rst:2902 +#: library/multiprocessing.rst:2952 msgid "Thread safety of proxies" msgstr "" -#: library/multiprocessing.rst:2904 +#: library/multiprocessing.rst:2954 msgid "" "Do not use a proxy object from more than one thread unless you protect it " "with a lock." msgstr "" -#: library/multiprocessing.rst:2907 +#: library/multiprocessing.rst:2957 msgid "" "(There is never a problem with different processes using the *same* proxy.)" msgstr "" -#: library/multiprocessing.rst:2909 +#: library/multiprocessing.rst:2959 msgid "Joining zombie processes" msgstr "" -#: library/multiprocessing.rst:2911 +#: library/multiprocessing.rst:2961 msgid "" "On POSIX 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 " @@ -3865,11 +3936,11 @@ msgid "" "explicitly join all the processes that you start." msgstr "" -#: library/multiprocessing.rst:2919 +#: library/multiprocessing.rst:2969 msgid "Better to inherit than pickle/unpickle" msgstr "" -#: library/multiprocessing.rst:2921 +#: library/multiprocessing.rst:2971 msgid "" "When using the *spawn* or *forkserver* start methods many types from :mod:" "`multiprocessing` need to be picklable so that child processes can use " @@ -3879,11 +3950,11 @@ msgid "" "inherit it from an ancestor process." msgstr "" -#: library/multiprocessing.rst:2929 +#: library/multiprocessing.rst:2979 msgid "Avoid terminating processes" msgstr "" -#: library/multiprocessing.rst:2931 +#: library/multiprocessing.rst:2981 msgid "" "Using the :meth:`Process.terminate ` " "method to stop a process is liable to cause any shared resources (such as " @@ -3891,18 +3962,18 @@ msgid "" "become broken or unavailable to other processes." msgstr "" -#: library/multiprocessing.rst:2937 +#: library/multiprocessing.rst:2987 msgid "" "Therefore it is probably best to only consider using :meth:`Process." "terminate ` on processes which never use " "any shared resources." msgstr "" -#: library/multiprocessing.rst:2941 +#: library/multiprocessing.rst:2991 msgid "Joining processes that use queues" msgstr "" -#: library/multiprocessing.rst:2943 +#: library/multiprocessing.rst:2993 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 " @@ -3911,7 +3982,7 @@ msgid "" "queue to avoid this behaviour.)" msgstr "" -#: library/multiprocessing.rst:2949 +#: library/multiprocessing.rst:2999 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 " @@ -3920,11 +3991,11 @@ msgid "" "processes will be joined automatically." msgstr "" -#: library/multiprocessing.rst:2955 +#: library/multiprocessing.rst:3005 msgid "An example which will deadlock is the following::" msgstr "" -#: library/multiprocessing.rst:2957 +#: library/multiprocessing.rst:3007 msgid "" "from multiprocessing import Process, Queue\n" "\n" @@ -3939,17 +4010,17 @@ msgid "" " obj = queue.get()" msgstr "" -#: library/multiprocessing.rst:2969 +#: library/multiprocessing.rst:3019 msgid "" "A fix here would be to swap the last two lines (or simply remove the ``p." "join()`` line)." msgstr "" -#: library/multiprocessing.rst:2972 +#: library/multiprocessing.rst:3022 msgid "Explicitly pass resources to child processes" msgstr "" -#: library/multiprocessing.rst:2974 +#: library/multiprocessing.rst:3024 msgid "" "On POSIX using the *fork* start method, a child process can make use of a " "shared resource created in a parent process using a global resource. " @@ -3957,7 +4028,7 @@ msgid "" "for the child process." msgstr "" -#: library/multiprocessing.rst:2979 +#: library/multiprocessing.rst:3029 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 " @@ -3966,11 +4037,11 @@ msgid "" "collected in the parent process." msgstr "" -#: library/multiprocessing.rst:2986 +#: library/multiprocessing.rst:3036 msgid "So for instance ::" msgstr "" -#: library/multiprocessing.rst:2988 +#: library/multiprocessing.rst:3038 msgid "" "from multiprocessing import Process, Lock\n" "\n" @@ -3983,11 +4054,11 @@ msgid "" " Process(target=f).start()" msgstr "" -#: library/multiprocessing.rst:2998 +#: library/multiprocessing.rst:3048 msgid "should be rewritten as ::" msgstr "" -#: library/multiprocessing.rst:3000 +#: library/multiprocessing.rst:3050 msgid "" "from multiprocessing import Process, Lock\n" "\n" @@ -4000,31 +4071,31 @@ msgid "" " Process(target=f, args=(lock,)).start()" msgstr "" -#: library/multiprocessing.rst:3010 +#: library/multiprocessing.rst:3060 msgid "Beware of replacing :data:`sys.stdin` with a \"file like object\"" msgstr "" -#: library/multiprocessing.rst:3012 +#: library/multiprocessing.rst:3062 msgid ":mod:`multiprocessing` originally unconditionally called::" msgstr "" -#: library/multiprocessing.rst:3014 +#: library/multiprocessing.rst:3064 msgid "os.close(sys.stdin.fileno())" msgstr "" -#: library/multiprocessing.rst:3016 +#: library/multiprocessing.rst:3066 msgid "" "in the :meth:`multiprocessing.Process._bootstrap` method --- this resulted " "in issues with processes-in-processes. This has been changed to::" msgstr "" -#: library/multiprocessing.rst:3019 +#: library/multiprocessing.rst:3069 msgid "" "sys.stdin.close()\n" "sys.stdin = open(os.open(os.devnull, os.O_RDONLY), closefd=False)" msgstr "" -#: library/multiprocessing.rst:3022 +#: library/multiprocessing.rst:3072 msgid "" "Which solves the fundamental issue of processes colliding with each other " "resulting in a bad file descriptor error, but introduces a potential danger " @@ -4034,14 +4105,14 @@ msgid "" "data being flushed to the object multiple times, resulting in corruption." msgstr "" -#: library/multiprocessing.rst:3029 +#: library/multiprocessing.rst:3079 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 "" -#: library/multiprocessing.rst:3033 +#: library/multiprocessing.rst:3083 msgid "" "@property\n" "def cache(self):\n" @@ -4052,38 +4123,38 @@ msgid "" " return self._cache" msgstr "" -#: library/multiprocessing.rst:3041 +#: library/multiprocessing.rst:3091 msgid "" "For more information, see :issue:`5155`, :issue:`5313` and :issue:`5331`" msgstr "" -#: library/multiprocessing.rst:3047 +#: library/multiprocessing.rst:3097 msgid "The *spawn* and *forkserver* start methods" msgstr "" -#: library/multiprocessing.rst:3049 +#: library/multiprocessing.rst:3099 msgid "" "There are a few extra restrictions which don't apply to the *fork* start " "method." msgstr "" -#: library/multiprocessing.rst:3052 +#: library/multiprocessing.rst:3102 msgid "More picklability" msgstr "" -#: library/multiprocessing.rst:3054 +#: library/multiprocessing.rst:3104 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." +"Ensure that all arguments to :class:`~multiprocessing.Process` are " +"picklable. Also, if you subclass ``Process.__init__``, you must make sure " +"that instances will be picklable when the :meth:`Process.start " +"` method is called." msgstr "" -#: library/multiprocessing.rst:3059 +#: library/multiprocessing.rst:3109 msgid "Global variables" msgstr "" -#: library/multiprocessing.rst:3061 +#: library/multiprocessing.rst:3111 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 " @@ -4091,30 +4162,30 @@ msgid "" "Process.start>` was called." msgstr "" -#: library/multiprocessing.rst:3066 +#: library/multiprocessing.rst:3116 msgid "" "However, global variables which are just module level constants cause no " "problems." msgstr "" -#: library/multiprocessing.rst:3071 +#: library/multiprocessing.rst:3121 msgid "Safe importing of main module" msgstr "" -#: library/multiprocessing.rst:3073 +#: library/multiprocessing.rst:3123 msgid "" "Make sure that the main module can be safely imported by a new Python " "interpreter without causing unintended side effects (such as starting a new " "process)." msgstr "" -#: library/multiprocessing.rst:3077 +#: library/multiprocessing.rst:3127 msgid "" "For example, using the *spawn* or *forkserver* start method running the " "following module would fail with a :exc:`RuntimeError`::" msgstr "" -#: library/multiprocessing.rst:3081 +#: library/multiprocessing.rst:3131 msgid "" "from multiprocessing import Process\n" "\n" @@ -4125,13 +4196,13 @@ msgid "" "p.start()" msgstr "" -#: library/multiprocessing.rst:3089 +#: library/multiprocessing.rst:3139 msgid "" "Instead one should protect the \"entry point\" of the program by using ``if " "__name__ == '__main__':`` as follows::" msgstr "" -#: library/multiprocessing.rst:3092 +#: library/multiprocessing.rst:3142 msgid "" "from multiprocessing import Process, freeze_support, set_start_method\n" "\n" @@ -4145,33 +4216,33 @@ msgid "" " p.start()" msgstr "" -#: library/multiprocessing.rst:3103 +#: library/multiprocessing.rst:3153 msgid "" "(The ``freeze_support()`` line can be omitted if the program will be run " "normally instead of frozen.)" msgstr "" -#: library/multiprocessing.rst:3106 +#: library/multiprocessing.rst:3156 msgid "" "This allows the newly spawned Python interpreter to safely import the module " "and then run the module's ``foo()`` function." msgstr "" -#: library/multiprocessing.rst:3109 +#: library/multiprocessing.rst:3159 msgid "" "Similar restrictions apply if a pool or manager is created in the main " "module." msgstr "" -#: library/multiprocessing.rst:3116 +#: library/multiprocessing.rst:3166 msgid "Examples" msgstr "" -#: library/multiprocessing.rst:3118 +#: library/multiprocessing.rst:3168 msgid "Demonstration of how to create and use customized managers and proxies:" msgstr "" -#: library/multiprocessing.rst:3120 +#: library/multiprocessing.rst:3170 msgid "" "from multiprocessing import freeze_support\n" "from multiprocessing.managers import BaseManager, BaseProxy\n" @@ -4265,11 +4336,11 @@ msgid "" " test()\n" msgstr "" -#: library/multiprocessing.rst:3124 +#: library/multiprocessing.rst:3174 msgid "Using :class:`~multiprocessing.pool.Pool`:" msgstr "" -#: library/multiprocessing.rst:3126 +#: library/multiprocessing.rst:3176 msgid "" "import multiprocessing\n" "import time\n" @@ -4429,13 +4500,13 @@ msgid "" " test()\n" msgstr "" -#: library/multiprocessing.rst:3130 +#: library/multiprocessing.rst:3180 msgid "" "An example showing how to use queues to feed tasks to a collection of worker " "processes and collect the results:" msgstr "" -#: library/multiprocessing.rst:3133 +#: library/multiprocessing.rst:3183 msgid "" "import time\n" "import random\n" diff --git a/library/multiprocessing.shared_memory.po b/library/multiprocessing.shared_memory.po index eb348c3d..4cb460d7 100644 --- a/library/multiprocessing.shared_memory.po +++ b/library/multiprocessing.shared_memory.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/netdata.po b/library/netdata.po index fae570bb..c5b2e26d 100644 --- a/library/netdata.po +++ b/library/netdata.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/netrc.po b/library/netrc.po index 2b3343af..380a4278 100644 --- a/library/netrc.po +++ b/library/netrc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,26 +39,31 @@ msgid "" "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`." +"including the file name, line number, and terminating token." msgstr "" -#: library/netrc.rst:34 -msgid "Added the POSIX permission check." +#: library/netrc.rst:28 +msgid "" +"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`. Such security checks are not available on " +"platforms that do not support :func:`os.getuid`." msgstr "" #: library/netrc.rst:36 +msgid "Added the POSIX permission check." +msgstr "" + +#: library/netrc.rst:38 msgid "" ":func:`os.path.expanduser` is used to find the location of the :file:`." "netrc` file when *file* is not passed as argument." msgstr "" -#: library/netrc.rst:40 +#: library/netrc.rst:42 msgid "" ":class:`netrc` try UTF-8 encoding before using locale specific encoding. The " "entry in the netrc file no longer needs to contain all tokens. The missing " @@ -68,34 +73,34 @@ msgid "" "check." msgstr "" -#: library/netrc.rst:51 +#: library/netrc.rst:53 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:" msgstr "" -#: library/netrc.rst:57 +#: library/netrc.rst:59 msgid "Textual explanation of the error." msgstr "" -#: library/netrc.rst:61 +#: library/netrc.rst:63 msgid "The name of the source file." msgstr "" -#: library/netrc.rst:65 +#: library/netrc.rst:67 msgid "The line number on which the error was found." msgstr "" -#: library/netrc.rst:71 +#: library/netrc.rst:73 msgid "netrc Objects" msgstr "" -#: library/netrc.rst:73 +#: library/netrc.rst:75 msgid "A :class:`~netrc.netrc` instance has the following methods:" msgstr "" -#: library/netrc.rst:78 +#: library/netrc.rst:80 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, " @@ -103,22 +108,22 @@ msgid "" "host nor default entry is available, return ``None``." msgstr "" -#: library/netrc.rst:86 +#: library/netrc.rst:88 msgid "" "Dump the class data as a string in the format of a netrc file. (This " "discards comments and may reorder the entries.)" msgstr "" -#: library/netrc.rst:89 +#: library/netrc.rst:91 msgid "Instances of :class:`~netrc.netrc` have public instance variables:" msgstr "" -#: library/netrc.rst:94 +#: library/netrc.rst:96 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 "" -#: library/netrc.rst:100 +#: library/netrc.rst:102 msgid "Dictionary mapping macro names to string lists." msgstr "" diff --git a/library/nis.po b/library/nis.po index bceb80f9..c3d05c9f 100644 --- a/library/nis.po +++ b/library/nis.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/nntplib.po b/library/nntplib.po index 9a7ec032..f2c061a5 100644 --- a/library/nntplib.po +++ b/library/nntplib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/numbers.po b/library/numbers.po index 0d4689f4..50979ce7 100644 --- a/library/numbers.po +++ b/library/numbers.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -99,8 +99,12 @@ msgid "" "attr:`~Rational.denominator` positive." msgstr "" +#: library/numbers.rst:72 +msgid "Abstract. The numerator of this rational number." +msgstr "" + #: library/numbers.rst:76 -msgid "Abstract." +msgid "Abstract. The denominator of this rational number." msgstr "" #: library/numbers.rst:81 diff --git a/library/numeric.po b/library/numeric.po index 7a9a9929..ce8abbbf 100644 --- a/library/numeric.po +++ b/library/numeric.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Loukas Sakellaridis \n" "Language-Team: PyGreece \n" diff --git a/library/operator.po b/library/operator.po index a989145a..f8652b84 100644 --- a/library/operator.po +++ b/library/operator.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/optparse.po b/library/optparse.po index 7879232e..3ea8f7b5 100644 --- a/library/optparse.po +++ b/library/optparse.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/os.path.po b/library/os.path.po index a4acaba2..1d0f39d9 100644 --- a/library/os.path.po +++ b/library/os.path.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -66,11 +66,11 @@ msgid "" msgstr "" #: library/os.path.rst:45 -msgid ":mod:`posixpath` for UNIX-style paths" +msgid ":mod:`!posixpath` for UNIX-style paths" msgstr "" #: library/os.path.rst:46 -msgid ":mod:`ntpath` for Windows paths" +msgid ":mod:`!ntpath` for Windows paths" msgstr "" #: library/os.path.rst:51 @@ -90,9 +90,9 @@ msgstr "" #: library/os.path.rst:76 library/os.path.rst:126 library/os.path.rst:152 #: library/os.path.rst:198 library/os.path.rst:227 library/os.path.rst:246 -#: library/os.path.rst:270 library/os.path.rst:308 library/os.path.rst:400 -#: library/os.path.rst:469 library/os.path.rst:496 library/os.path.rst:526 -#: library/os.path.rst:615 +#: library/os.path.rst:270 library/os.path.rst:309 library/os.path.rst:401 +#: library/os.path.rst:470 library/os.path.rst:497 library/os.path.rst:549 +#: library/os.path.rst:613 msgid "Accepts a :term:`path-like object`." msgstr "" @@ -298,16 +298,18 @@ msgid "" "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." +"mounts on the same filesystem. On Linux systems, it will always return " +"``True`` for btrfs subvolumes, even if they aren't mount points. 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 "" -#: library/os.path.rst:305 +#: library/os.path.rst:306 msgid "Added support for detecting non-root mount points on Windows." msgstr "" -#: library/os.path.rst:314 +#: library/os.path.rst:315 msgid "" "Return ``True`` if pathname *path* is located on a Windows Dev Drive. A Dev " "Drive is optimized for developer scenarios, and offers faster performance " @@ -316,7 +318,7 @@ msgid "" "operations." msgstr "" -#: library/os.path.rst:320 +#: library/os.path.rst:321 msgid "" "May raise an error for an invalid path, for example, one without a " "recognizable drive, but returns ``False`` on platforms that do not support " @@ -324,17 +326,17 @@ msgid "" "windows/dev-drive/>`_ for information on enabling and creating Dev Drives." msgstr "" -#: library/os.path.rst:327 +#: library/os.path.rst:328 msgid "" "The function is now available on all platforms, and will always return " "``False`` on those that have no support for Dev Drives" msgstr "" -#: library/os.path.rst:333 +#: library/os.path.rst:334 msgid "Return ``True`` if *path* is a reserved pathname on the current system." msgstr "" -#: library/os.path.rst:335 +#: library/os.path.rst:336 msgid "" "On Windows, reserved filenames include those that end with a space or dot; " "those that contain colons (i.e. file streams such as \"name:stream\"), " @@ -343,7 +345,7 @@ msgid "" "\", \"AUX\", \"PRN\", \"COM1\", and \"LPT1\"." msgstr "" -#: library/os.path.rst:343 +#: library/os.path.rst:344 msgid "" "This function approximates rules for reserved paths on most Windows systems. " "These rules change over time in various Windows releases. This function may " @@ -351,11 +353,11 @@ msgid "" "available." msgstr "" -#: library/os.path.rst:348 +#: library/os.path.rst:349 msgid "Availability" msgstr "" -#: library/os.path.rst:355 +#: library/os.path.rst:356 msgid "" "Join one or more path segments intelligently. The return value is the " "concatenation of *path* and all members of *\\*paths*, with exactly one " @@ -366,7 +368,7 @@ msgid "" "and joining continues from the absolute path segment." msgstr "" -#: library/os.path.rst:363 +#: library/os.path.rst:364 msgid "" "On Windows, the drive is not reset when a rooted path segment (e.g., " "``r'\\foo'``) is encountered. If a segment is on a different drive or is an " @@ -376,18 +378,18 @@ msgid "" "on drive :file:`C:` (:file:`c:foo`), not :file:`c:\\\\foo`." msgstr "" -#: library/os.path.rst:370 +#: library/os.path.rst:371 msgid "Accepts a :term:`path-like object` for *path* and *paths*." msgstr "" -#: library/os.path.rst:376 +#: library/os.path.rst:377 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." msgstr "" -#: library/os.path.rst:386 +#: library/os.path.rst:387 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 " @@ -396,7 +398,7 @@ msgid "" "backward slashes. To normalize case, use :func:`normcase`." msgstr "" -#: library/os.path.rst:393 +#: library/os.path.rst:394 msgid "" "On POSIX systems, in accordance with `IEEE Std 1003.1 2013 Edition; 4.13 " "Pathname Resolution >> splitdrive(\"c:/dir\")\n" "(\"c:\", \"/dir\")" msgstr "" -#: library/os.path.rst:545 +#: library/os.path.rst:543 msgid "" "If the path contains a UNC path, drive will contain the host name and share::" msgstr "" -#: library/os.path.rst:548 +#: library/os.path.rst:546 msgid "" ">>> splitdrive(\"//host/computer/dir\")\n" "(\"//host/computer\", \"/dir\")" msgstr "" -#: library/os.path.rst:557 +#: library/os.path.rst:555 msgid "" "Split the pathname *path* into a 3-item tuple ``(drive, root, tail)`` where " "*drive* is a device name or mount point, *root* is a string of separators " @@ -581,7 +583,7 @@ msgid "" "same as *path*." msgstr "" -#: library/os.path.rst:563 +#: library/os.path.rst:561 msgid "" "On POSIX systems, *drive* is always empty. The *root* may be empty (if " "*path* is relative), a single forward slash (if *path* is absolute), or two " @@ -590,7 +592,7 @@ msgid "" "basedefs/V1_chap04.html#tag_04_13>`_.) For example::" msgstr "" -#: library/os.path.rst:569 +#: library/os.path.rst:567 msgid "" ">>> splitroot('/home/sam')\n" "('', '/', 'home/sam')\n" @@ -600,14 +602,14 @@ msgid "" "('', '/', '//home/sam')" msgstr "" -#: library/os.path.rst:576 +#: library/os.path.rst:574 msgid "" "On Windows, *drive* may be empty, a drive-letter name, a UNC share, or a " "device name. The *root* may be empty, a forward slash, or a backward slash. " "For example::" msgstr "" -#: library/os.path.rst:580 +#: library/os.path.rst:578 msgid "" ">>> splitroot('C:/Users/Sam')\n" "('C:', '/', 'Users/Sam')\n" @@ -615,30 +617,30 @@ msgid "" "('//Server/Share', '/', 'Users/Sam')" msgstr "" -#: library/os.path.rst:590 +#: library/os.path.rst:588 msgid "" "Split the pathname *path* into a pair ``(root, ext)`` such that ``root + " "ext == path``, and the extension, *ext*, is empty or begins with a period " "and contains at most one period." msgstr "" -#: library/os.path.rst:594 +#: library/os.path.rst:592 msgid "If the path contains no extension, *ext* will be ``''``::" msgstr "" -#: library/os.path.rst:596 +#: library/os.path.rst:594 msgid "" ">>> splitext('bar')\n" "('bar', '')" msgstr "" -#: library/os.path.rst:599 +#: library/os.path.rst:597 msgid "" "If the path contains an extension, then *ext* will be set to this extension, " "including the leading period. Note that previous periods will be ignored::" msgstr "" -#: library/os.path.rst:602 +#: library/os.path.rst:600 msgid "" ">>> splitext('foo.bar.exe')\n" "('foo.bar', '.exe')\n" @@ -646,13 +648,13 @@ msgid "" "('/foo/bar', '.exe')" msgstr "" -#: library/os.path.rst:607 +#: library/os.path.rst:605 msgid "" "Leading periods of the last component of the path are considered to be part " "of the root::" msgstr "" -#: library/os.path.rst:610 +#: library/os.path.rst:608 msgid "" ">>> splitext('.cshrc')\n" "('.cshrc', '')\n" @@ -660,7 +662,7 @@ msgid "" "('/foo/....jpg', '')" msgstr "" -#: library/os.path.rst:621 +#: library/os.path.rst:619 msgid "" "``True`` if arbitrary Unicode strings can be used as file names (within " "limitations imposed by the file system)." diff --git a/library/os.po b/library/os.po index e1fc73c3..84854f53 100644 --- a/library/os.po +++ b/library/os.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -298,21 +298,21 @@ msgstr "" #: library/os.rst:1988 library/os.rst:2160 library/os.rst:2254 #: library/os.rst:2294 library/os.rst:2328 library/os.rst:2408 #: library/os.rst:2452 library/os.rst:2610 library/os.rst:2666 -#: library/os.rst:3396 library/os.rst:3553 library/os.rst:3787 -#: library/os.rst:3837 library/os.rst:3900 library/os.rst:3917 -#: library/os.rst:3935 library/os.rst:4070 library/os.rst:4098 -#: library/os.rst:4117 library/os.rst:4137 library/os.rst:4293 -#: library/os.rst:4397 library/os.rst:4412 library/os.rst:4426 -#: library/os.rst:4440 library/os.rst:4455 library/os.rst:4470 -#: library/os.rst:4486 library/os.rst:4502 library/os.rst:4516 -#: library/os.rst:4592 library/os.rst:4631 library/os.rst:4649 -#: library/os.rst:4668 library/os.rst:4812 library/os.rst:4861 -#: library/os.rst:4953 library/os.rst:4976 library/os.rst:5058 -#: library/os.rst:5102 library/os.rst:5177 library/os.rst:5211 -#: library/os.rst:5243 library/os.rst:5266 library/os.rst:5288 -#: library/os.rst:5311 library/os.rst:5362 library/os.rst:5385 -#: library/os.rst:5401 library/os.rst:5419 library/os.rst:5592 -#: library/os.rst:5625 library/os.rst:5661 library/os.rst:5784 +#: library/os.rst:3396 library/os.rst:3556 library/os.rst:3790 +#: library/os.rst:3840 library/os.rst:3903 library/os.rst:3920 +#: library/os.rst:3938 library/os.rst:4073 library/os.rst:4101 +#: library/os.rst:4120 library/os.rst:4140 library/os.rst:4296 +#: library/os.rst:4400 library/os.rst:4415 library/os.rst:4429 +#: library/os.rst:4443 library/os.rst:4458 library/os.rst:4473 +#: library/os.rst:4489 library/os.rst:4505 library/os.rst:4519 +#: library/os.rst:4595 library/os.rst:4634 library/os.rst:4652 +#: library/os.rst:4671 library/os.rst:4815 library/os.rst:4864 +#: library/os.rst:4956 library/os.rst:4979 library/os.rst:5061 +#: library/os.rst:5105 library/os.rst:5180 library/os.rst:5214 +#: library/os.rst:5246 library/os.rst:5269 library/os.rst:5291 +#: library/os.rst:5314 library/os.rst:5365 library/os.rst:5388 +#: library/os.rst:5404 library/os.rst:5422 library/os.rst:5595 +#: library/os.rst:5628 library/os.rst:5664 library/os.rst:5787 msgid "Availability" msgstr "" @@ -630,9 +630,9 @@ msgstr "" #: library/os.rst:564 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." +"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 "" #: library/os.rst:577 @@ -873,7 +873,7 @@ msgid "" "on iOS and Android." msgstr "" -#: library/os.rst:5083 +#: library/os.rst:5086 msgid "" "Return type changed from a tuple to a tuple-like object with named " "attributes." @@ -1105,7 +1105,7 @@ msgid "" msgstr "" #: library/os.rst:1056 library/os.rst:1759 library/os.rst:2239 -#: library/os.rst:3532 +#: library/os.rst:3535 msgid "" "The function is limited on WASI, see :ref:`wasm-availability` for more " "information." @@ -1209,7 +1209,7 @@ msgid "" "``fd``, ``length``." msgstr "" -#: library/os.rst:3571 +#: library/os.rst:3574 msgid "Added support for Windows" msgstr "" @@ -1411,11 +1411,11 @@ msgid "" msgstr "" #: library/os.rst:2479 library/os.rst:2590 library/os.rst:2693 -#: library/os.rst:2830 library/os.rst:3587 +#: library/os.rst:2830 library/os.rst:3590 msgid "Added the *dir_fd* parameter." msgstr "" -#: library/os.rst:1657 library/os.rst:5179 +#: library/os.rst:1657 library/os.rst:5182 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 :" @@ -1425,8 +1425,8 @@ msgstr "" #: library/os.rst:2102 library/os.rst:2165 library/os.rst:2256 #: library/os.rst:2314 library/os.rst:2390 library/os.rst:2522 #: library/os.rst:2593 library/os.rst:2656 library/os.rst:2745 -#: library/os.rst:3123 library/os.rst:3574 library/os.rst:3630 -#: library/os.rst:3791 library/os.rst:4368 library/os.rst:4937 +#: library/os.rst:3123 library/os.rst:3577 library/os.rst:3633 +#: library/os.rst:3794 library/os.rst:4371 library/os.rst:4940 msgid "Accepts a :term:`path-like object`." msgstr "" @@ -2057,9 +2057,8 @@ msgid "" "functions in the :mod:`os` module must be a string specifying a file path. " "However, some functions now alternatively accept an open file descriptor for " "their *path* argument. The function will then operate on the file referred " -"to by the descriptor. (For POSIX systems, Python will call the variant of " -"the function prefixed with ``f`` (e.g. call ``fchdir`` instead of " -"``chdir``).)" +"to by the descriptor. For POSIX systems, Python will call the variant of the " +"function prefixed with ``f`` (e.g. call ``fchdir`` instead of ``chdir``)." msgstr "" #: library/os.rst:2015 @@ -2081,7 +2080,7 @@ 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 " +"directory. If the path is absolute, *dir_fd* is ignored. For POSIX " "systems, Python will call the variant of the function with an ``at`` suffix " "and possibly prefixed with ``f`` (e.g. call ``faccessat`` instead of " "``access``)." @@ -2099,8 +2098,8 @@ 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 rather than the file pointed to by the " -"link. (For POSIX systems, Python will call the ``l...`` variant of the " -"function.)" +"link. For POSIX systems, Python will call the ``l...`` variant of the " +"function." msgstr "" #: library/os.rst:2044 @@ -2367,7 +2366,7 @@ msgstr "" msgid ":const:`stat.S_IXOTH`" msgstr "" -#: library/os.rst:2228 library/os.rst:3620 +#: library/os.rst:2228 library/os.rst:3623 msgid "" "This function can support :ref:`specifying a file descriptor `, :" "ref:`paths relative to directory descriptors ` and :ref:`not " @@ -2482,7 +2481,7 @@ msgid "" "``src``, ``dst``, ``src_dir_fd``, ``dst_dir_fd``." msgstr "" -#: library/os.rst:4617 +#: library/os.rst:4620 msgid "Added Windows support." msgstr "" @@ -2490,7 +2489,7 @@ msgstr "" msgid "Added the *src_dir_fd*, *dst_dir_fd*, and *follow_symlinks* parameters." msgstr "" -#: library/os.rst:2777 library/os.rst:3542 +#: library/os.rst:2777 library/os.rst:3545 msgid "Accepts a :term:`path-like object` for *src* and *dst*." msgstr "" @@ -2642,7 +2641,7 @@ msgid "" "`." msgstr "" -#: library/os.rst:2690 library/os.rst:3535 +#: library/os.rst:2690 library/os.rst:3538 msgid "Added support for Windows 6.0 (Vista) symbolic links." msgstr "" @@ -2800,7 +2799,7 @@ msgid "" "included in that mapping, passing an integer for *name* is also accepted." msgstr "" -#: library/os.rst:3394 library/os.rst:3563 +#: library/os.rst:3394 library/os.rst:3566 msgid "" "This function can support :ref:`specifying a file descriptor `." msgstr "" @@ -2856,7 +2855,7 @@ msgid "" "does not exist, a :exc:`FileNotFoundError` is raised." msgstr "" -#: library/os.rst:2825 library/os.rst:3514 +#: library/os.rst:2825 library/os.rst:3517 msgid "" "This function can support :ref:`paths relative to directory descriptors " "`." @@ -2874,7 +2873,7 @@ msgstr "" msgid "This function is semantically identical to :func:`unlink`." msgstr "" -#: library/os.rst:2743 library/os.rst:3585 +#: library/os.rst:2743 library/os.rst:3588 msgid "" "Raises an :ref:`auditing event ` ``os.remove`` with arguments " "``path``, ``dir_fd``." @@ -3318,7 +3317,7 @@ msgid "" "``follow_symlinks=False``, or use :func:`lstat`." msgstr "" -#: library/os.rst:4167 library/os.rst:4199 library/os.rst:4219 +#: library/os.rst:4170 library/os.rst:4202 library/os.rst:4222 msgid "" "This function can support :ref:`specifying a file descriptor ` and :" "ref:`not following symlinks `." @@ -3338,7 +3337,7 @@ msgid "" "junction points, which will raise the usual exceptions." msgstr "" -#: library/os.rst:3874 +#: library/os.rst:3877 msgid "Example::" msgstr "" @@ -3812,6 +3811,12 @@ msgstr "" #: library/os.rst:3508 msgid "" +"The *src* parameter refers to the target of the link (the file or directory " +"being linked to), and *dst* is the name of the link being created." +msgstr "" + +#: library/os.rst:3511 +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 " @@ -3820,7 +3825,7 @@ msgid "" "ignored." msgstr "" -#: library/os.rst:3519 +#: library/os.rst:3522 msgid "" "On newer versions of Windows 10, unprivileged accounts can create symlinks " "if Developer Mode is enabled. When Developer Mode is not available/enabled, " @@ -3828,83 +3833,83 @@ msgid "" "must be run as an administrator." msgstr "" -#: library/os.rst:3525 +#: library/os.rst:3528 msgid "" ":exc:`OSError` is raised when the function is called by an unprivileged user." msgstr "" -#: library/os.rst:3528 +#: library/os.rst:3531 msgid "" "Raises an :ref:`auditing event ` ``os.symlink`` with arguments " "``src``, ``dst``, ``dir_fd``." msgstr "" -#: library/os.rst:3538 +#: library/os.rst:3541 msgid "" "Added the *dir_fd* parameter, and now allow *target_is_directory* on non-" "Windows platforms." msgstr "" -#: library/os.rst:3545 +#: library/os.rst:3548 msgid "Added support for unelevated symlinks on Windows with Developer Mode." msgstr "" -#: library/os.rst:3551 +#: library/os.rst:3554 msgid "Force write of everything to disk." msgstr "" -#: library/os.rst:3560 +#: library/os.rst:3563 msgid "" "Truncate the file corresponding to *path*, so that it is at most *length* " "bytes in size." msgstr "" -#: library/os.rst:3565 +#: library/os.rst:3568 msgid "" "Raises an :ref:`auditing event ` ``os.truncate`` with arguments " "``path``, ``length``." msgstr "" -#: library/os.rst:3580 +#: library/os.rst:3583 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 "" -#: library/os.rst:3596 +#: library/os.rst:3599 msgid "Set the access and modified times of the file specified by *path*." msgstr "" -#: library/os.rst:3598 +#: library/os.rst:3601 msgid "" ":func:`utime` takes two optional parameters, *times* and *ns*. These specify " "the times set on *path* and are used as follows:" msgstr "" -#: library/os.rst:3601 +#: library/os.rst:3604 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 "" -#: library/os.rst:3604 +#: library/os.rst:3607 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 "" -#: library/os.rst:3607 +#: library/os.rst:3610 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 "" -#: library/os.rst:3611 +#: library/os.rst:3614 msgid "It is an error to specify tuples for both *times* and *ns*." msgstr "" -#: library/os.rst:3613 +#: library/os.rst:3616 msgid "" "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 " @@ -3914,19 +3919,19 @@ msgid "" "func:`utime`." msgstr "" -#: library/os.rst:3624 +#: library/os.rst:3627 msgid "" "Raises an :ref:`auditing event ` ``os.utime`` with arguments " "``path``, ``times``, ``ns``, ``dir_fd``." msgstr "" -#: library/os.rst:3626 +#: library/os.rst:3629 msgid "" "Added support for specifying *path* as an open file descriptor, and the " "*dir_fd*, *follow_symlinks*, and *ns* parameters." msgstr "" -#: library/os.rst:3640 +#: library/os.rst:3643 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* " @@ -3934,7 +3939,7 @@ msgid "" "filenames)``." msgstr "" -#: library/os.rst:3645 +#: library/os.rst:3648 msgid "" "*dirpath* is a string, the path to the directory. *dirnames* is a list of " "the names of the subdirectories in *dirpath* (including symlinks to " @@ -3948,7 +3953,7 @@ msgid "" "unspecified." msgstr "" -#: library/os.rst:3656 +#: library/os.rst:3659 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 " @@ -3959,7 +3964,7 @@ msgid "" "its subdirectories are generated." msgstr "" -#: library/os.rst:3664 +#: library/os.rst:3667 msgid "" "When *topdown* is ``True``, the caller can modify the *dirnames* list in-" "place (perhaps using :keyword:`del` or slice assignment), and :func:`walk` " @@ -3972,7 +3977,7 @@ msgid "" "itself is generated." msgstr "" -#: library/os.rst:3673 +#: library/os.rst:3676 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 " @@ -3982,35 +3987,35 @@ msgid "" "object." msgstr "" -#: library/os.rst:3679 +#: library/os.rst:3682 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 "" -#: library/os.rst:3685 +#: library/os.rst:3688 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 "" -#: library/os.rst:3691 +#: library/os.rst:3694 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 "" -#: library/os.rst:3757 +#: library/os.rst:3760 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 ``__pycache__`` subdirectory::" msgstr "" -#: library/os.rst:3699 +#: library/os.rst:3702 msgid "" "import os\n" "from os.path import join, getsize\n" @@ -4022,14 +4027,14 @@ msgid "" " dirs.remove('__pycache__') # don't visit __pycache__ directories" msgstr "" -#: library/os.rst:3708 +#: library/os.rst:3711 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 "" -#: library/os.rst:3712 +#: library/os.rst:3715 msgid "" "# Delete everything reachable from the directory named in \"top\",\n" "# assuming there are no symbolic links.\n" @@ -4044,31 +4049,31 @@ msgid "" "os.rmdir(top)" msgstr "" -#: library/os.rst:3724 +#: library/os.rst:3727 msgid "" "Raises an :ref:`auditing event ` ``os.walk`` with arguments " "``top``, ``topdown``, ``onerror``, ``followlinks``." msgstr "" -#: library/os.rst:3726 +#: library/os.rst:3729 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 "" -#: library/os.rst:3740 +#: library/os.rst:3743 msgid "" "This behaves exactly like :func:`walk`, except that it yields a 4-tuple " "``(dirpath, dirnames, filenames, dirfd)``, and it supports ``dir_fd``." msgstr "" -#: library/os.rst:3743 +#: library/os.rst:3746 msgid "" "*dirpath*, *dirnames* and *filenames* are identical to :func:`walk` output, " "and *dirfd* is a file descriptor referring to the directory *dirpath*." msgstr "" -#: library/os.rst:3746 +#: library/os.rst:3749 msgid "" "This function always supports :ref:`paths relative to directory descriptors " "` and :ref:`not following symlinks `. Note however " @@ -4076,32 +4081,32 @@ msgid "" "*follow_symlinks* is ``False``." msgstr "" -#: library/os.rst:3753 +#: library/os.rst:3756 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 "" -#: library/os.rst:3761 +#: library/os.rst:3764 msgid "" "import os\n" "for root, dirs, files, rootfd in os.fwalk('python/Lib/xml'):\n" -" print(root, \"consumes\", end=\"\")\n" +" print(root, \"consumes\", end=\" \")\n" " print(sum([os.stat(name, dir_fd=rootfd).st_size for name in files]),\n" -" end=\"\")\n" +" end=\" \")\n" " print(\"bytes in\", len(files), \"non-directory files\")\n" " if '__pycache__' in dirs:\n" " dirs.remove('__pycache__') # don't visit __pycache__ directories" msgstr "" -#: library/os.rst:3770 +#: library/os.rst:3773 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 "" -#: library/os.rst:3774 +#: library/os.rst:3777 msgid "" "# Delete everything reachable from the directory named in \"top\",\n" "# assuming there are no symbolic links.\n" @@ -4115,17 +4120,17 @@ msgid "" " os.rmdir(name, dir_fd=rootfd)" msgstr "" -#: library/os.rst:3785 +#: library/os.rst:3788 msgid "" "Raises an :ref:`auditing event ` ``os.fwalk`` with arguments " "``top``, ``topdown``, ``onerror``, ``follow_symlinks``, ``dir_fd``." msgstr "" -#: library/os.rst:3794 +#: library/os.rst:3797 msgid "Added support for :class:`bytes` paths." msgstr "" -#: library/os.rst:3800 +#: library/os.rst:3803 msgid "" "Create an anonymous file and return a file descriptor that refers to it. " "*flags* must be one of the ``os.MFD_*`` constants available on the system " @@ -4133,7 +4138,7 @@ msgid "" "descriptor is :ref:`non-inheritable `." msgstr "" -#: library/os.rst:3805 +#: library/os.rst:3808 msgid "" "The name supplied in *name* is used as a filename and will be displayed as " "the target of the corresponding symbolic link in the directory ``/proc/self/" @@ -4143,15 +4148,15 @@ msgid "" "side effects." msgstr "" -#: library/os.rst:3835 +#: library/os.rst:3838 msgid "These flags can be passed to :func:`memfd_create`." msgstr "" -#: library/os.rst:3839 +#: library/os.rst:3842 msgid "The ``MFD_HUGE*`` flags are only available since Linux 4.14." msgstr "" -#: library/os.rst:3846 +#: library/os.rst:3849 msgid "" "Create and return an event file descriptor. The file descriptors supports " "raw :func:`read` and :func:`write` with a buffer size of 8, :func:`~select." @@ -4160,7 +4165,7 @@ msgid "" "ref:`non-inheritable `." msgstr "" -#: library/os.rst:3852 +#: library/os.rst:3855 msgid "" "*initval* is the initial value of the event counter. The initial value must " "be a 32 bit unsigned integer. Please note that the initial value is limited " @@ -4168,39 +4173,39 @@ msgid "" "integer with a maximum value of 2\\ :sup:`64`\\ -\\ 2." msgstr "" -#: library/os.rst:3857 +#: library/os.rst:3860 msgid "" "*flags* can be constructed from :const:`EFD_CLOEXEC`, :const:`EFD_NONBLOCK`, " "and :const:`EFD_SEMAPHORE`." msgstr "" -#: library/os.rst:3860 +#: library/os.rst:3863 msgid "" "If :const:`EFD_SEMAPHORE` is specified and the event counter is non-zero, :" "func:`eventfd_read` returns 1 and decrements the counter by one." msgstr "" -#: library/os.rst:3863 +#: library/os.rst:3866 msgid "" "If :const:`EFD_SEMAPHORE` is not specified and the event counter is non-" "zero, :func:`eventfd_read` returns the current event counter value and " "resets the counter to zero." msgstr "" -#: library/os.rst:3867 +#: library/os.rst:3870 msgid "" "If the event counter is zero and :const:`EFD_NONBLOCK` is not specified, :" "func:`eventfd_read` blocks." msgstr "" -#: library/os.rst:3870 +#: library/os.rst:3873 msgid "" ":func:`eventfd_write` increments the event counter. Write blocks if the " "write operation would increment the counter to a value larger than 2\\ :sup:" "`64`\\ -\\ 2." msgstr "" -#: library/os.rst:3876 +#: library/os.rst:3879 msgid "" "import os\n" "\n" @@ -4218,64 +4223,64 @@ msgid "" " os.close(fd)" msgstr "" -#: library/os.rst:3897 +#: library/os.rst:3900 msgid "" "Read value from an :func:`eventfd` file descriptor and return a 64 bit " "unsigned int. The function does not verify that *fd* is an :func:`eventfd`." msgstr "" -#: library/os.rst:3906 +#: library/os.rst:3909 msgid "" "Add value to an :func:`eventfd` file descriptor. *value* must be a 64 bit " "unsigned int. The function does not verify that *fd* is an :func:`eventfd`." msgstr "" -#: library/os.rst:3915 +#: library/os.rst:3918 msgid "Set close-on-exec flag for new :func:`eventfd` file descriptor." msgstr "" -#: library/os.rst:3923 +#: library/os.rst:3926 msgid "" "Set :const:`O_NONBLOCK` status flag for new :func:`eventfd` file descriptor." msgstr "" -#: library/os.rst:3932 +#: library/os.rst:3935 msgid "" "Provide semaphore-like semantics for reads from an :func:`eventfd` file " "descriptor. On read the internal counter is decremented by one." msgstr "" -#: library/os.rst:3943 +#: library/os.rst:3946 msgid "Timer File Descriptors" msgstr "" -#: library/os.rst:3947 +#: library/os.rst:3950 msgid "" "These functions provide support for Linux's *timer file descriptor* API. " "Naturally, they are all only available on Linux." msgstr "" -#: library/os.rst:3952 +#: library/os.rst:3955 msgid "Create and return a timer file descriptor (*timerfd*)." msgstr "" -#: library/os.rst:3954 +#: library/os.rst:3957 msgid "The file descriptor returned by :func:`timerfd_create` supports:" msgstr "" -#: library/os.rst:3956 +#: library/os.rst:3959 msgid ":func:`read`" msgstr "" -#: library/os.rst:3957 +#: library/os.rst:3960 msgid ":func:`~select.select`" msgstr "" -#: library/os.rst:3958 +#: library/os.rst:3961 msgid ":func:`~select.poll`" msgstr "" -#: library/os.rst:3960 +#: library/os.rst:3963 msgid "" "The file descriptor's :func:`read` method can be called with a buffer size " "of 8. If the timer has already expired one or more times, :func:`read` " @@ -4284,31 +4289,31 @@ msgid "" "byteorder)``." msgstr "" -#: library/os.rst:3965 +#: library/os.rst:3968 msgid "" ":func:`~select.select` and :func:`~select.poll` can be used to wait until " "timer expires and the file descriptor is readable." msgstr "" -#: library/os.rst:3968 +#: library/os.rst:3971 msgid "" "*clockid* must be a valid :ref:`clock ID `, as " "defined in the :py:mod:`time` module:" msgstr "" -#: library/os.rst:3971 +#: library/os.rst:3974 msgid ":const:`time.CLOCK_REALTIME`" msgstr "" -#: library/os.rst:3972 +#: library/os.rst:3975 msgid ":const:`time.CLOCK_MONOTONIC`" msgstr "" -#: library/os.rst:3973 +#: library/os.rst:3976 msgid ":const:`time.CLOCK_BOOTTIME` (Since Linux 3.15 for timerfd_create)" msgstr "" -#: library/os.rst:3975 +#: library/os.rst:3978 msgid "" "If *clockid* is :const:`time.CLOCK_REALTIME`, a settable system-wide real-" "time clock is used. If system clock is changed, timer setting need to be " @@ -4316,35 +4321,35 @@ msgid "" "`TFD_TIMER_CANCEL_ON_SET`." msgstr "" -#: library/os.rst:3980 +#: library/os.rst:3983 msgid "" "If *clockid* is :const:`time.CLOCK_MONOTONIC`, a non-settable monotonically " "increasing clock is used. Even if the system clock is changed, the timer " "setting will not be affected." msgstr "" -#: library/os.rst:3984 +#: library/os.rst:3987 msgid "" "If *clockid* is :const:`time.CLOCK_BOOTTIME`, same as :const:`time." "CLOCK_MONOTONIC` except it includes any time that the system is suspended." msgstr "" -#: library/os.rst:3987 +#: library/os.rst:3990 msgid "" "The file descriptor's behaviour can be modified by specifying a *flags* " "value. Any of the following variables may used, combined using bitwise OR " "(the ``|`` operator):" msgstr "" -#: library/os.rst:3991 +#: library/os.rst:3994 msgid ":const:`TFD_NONBLOCK`" msgstr "" -#: library/os.rst:3992 +#: library/os.rst:3995 msgid ":const:`TFD_CLOEXEC`" msgstr "" -#: library/os.rst:3994 +#: library/os.rst:3997 msgid "" "If :const:`TFD_NONBLOCK` is not set as a flag, :func:`read` blocks until the " "timer expires. If it is set as a flag, :func:`read` doesn't block, but If " @@ -4352,46 +4357,46 @@ msgid "" "raises :class:`OSError` with ``errno`` is set to :const:`errno.EAGAIN`." msgstr "" -#: library/os.rst:4000 +#: library/os.rst:4003 msgid ":const:`TFD_CLOEXEC` is always set by Python automatically." msgstr "" -#: library/os.rst:4002 +#: library/os.rst:4005 msgid "" "The file descriptor must be closed with :func:`os.close` when it is no " "longer needed, or else the file descriptor will be leaked." msgstr "" -#: library/os.rst:4005 +#: library/os.rst:4008 msgid "The :manpage:`timerfd_create(2)` man page." msgstr "" -#: library/os.rst:4014 +#: library/os.rst:4017 msgid "" "Alter a timer file descriptor's internal timer. This function operates the " "same interval timer as :func:`timerfd_settime_ns`." msgstr "" -#: library/os.rst:4017 +#: library/os.rst:4020 msgid "*fd* must be a valid timer file descriptor." msgstr "" -#: library/os.rst:4019 +#: library/os.rst:4022 msgid "" "The timer's behaviour can be modified by specifying a *flags* value. Any of " "the following variables may used, combined using bitwise OR (the ``|`` " "operator):" msgstr "" -#: library/os.rst:4023 +#: library/os.rst:4026 msgid ":const:`TFD_TIMER_ABSTIME`" msgstr "" -#: library/os.rst:4024 +#: library/os.rst:4027 msgid ":const:`TFD_TIMER_CANCEL_ON_SET`" msgstr "" -#: library/os.rst:4026 +#: library/os.rst:4029 msgid "" "The timer is disabled by setting *initial* to zero (``0``). If *initial* is " "equal to or greater than zero, the timer is enabled. If *initial* is less " @@ -4399,20 +4404,20 @@ msgid "" "const:`errno.EINVAL`" msgstr "" -#: library/os.rst:4031 +#: library/os.rst:4034 msgid "" "By default the timer will fire when *initial* seconds have elapsed. (If " "*initial* is zero, timer will fire immediately.)" msgstr "" -#: library/os.rst:4034 +#: library/os.rst:4037 msgid "" "However, if the :const:`TFD_TIMER_ABSTIME` flag is set, the timer will fire " "when the timer's clock (set by *clockid* in :func:`timerfd_create`) reaches " "*initial* seconds." msgstr "" -#: library/os.rst:4038 +#: library/os.rst:4041 msgid "" "The timer's interval is set by the *interval* :py:class:`float`. If " "*interval* is zero, the timer only fires once, on the initial expiration. If " @@ -4422,7 +4427,7 @@ msgid "" "EINVAL`" msgstr "" -#: library/os.rst:4045 +#: library/os.rst:4048 msgid "" "If the :const:`TFD_TIMER_CANCEL_ON_SET` flag is set along with :const:" "`TFD_TIMER_ABSTIME` and the clock for this timer is :const:`time." @@ -4431,86 +4436,86 @@ msgid "" "ECANCELED." msgstr "" -#: library/os.rst:4051 +#: library/os.rst:4054 msgid "" "Linux manages system clock as UTC. A daylight-savings time transition is " "done by changing time offset only and doesn't cause discontinuous system " "clock change." msgstr "" -#: library/os.rst:4055 +#: library/os.rst:4058 msgid "" "Discontinuous system clock change will be caused by the following events:" msgstr "" -#: library/os.rst:4057 +#: library/os.rst:4060 msgid "``settimeofday``" msgstr "" -#: library/os.rst:4058 +#: library/os.rst:4061 msgid "``clock_settime``" msgstr "" -#: library/os.rst:4059 +#: library/os.rst:4062 msgid "set the system date and time by ``date`` command" msgstr "" -#: library/os.rst:4061 +#: library/os.rst:4064 msgid "" "Return a two-item tuple of (``next_expiration``, ``interval``) from the " "previous timer state, before this function executed." msgstr "" -#: library/os.rst:4066 +#: library/os.rst:4069 msgid "" ":manpage:`timerfd_create(2)`, :manpage:`timerfd_settime(2)`, :manpage:" "`settimeofday(2)`, :manpage:`clock_settime(2)`, and :manpage:`date(1)`." msgstr "" -#: library/os.rst:4077 +#: library/os.rst:4080 msgid "" "Similar to :func:`timerfd_settime`, but use time as nanoseconds. This " "function operates the same interval timer as :func:`timerfd_settime`." msgstr "" -#: library/os.rst:4087 +#: library/os.rst:4090 msgid "Return a two-item tuple of floats (``next_expiration``, ``interval``)." msgstr "" -#: library/os.rst:4089 +#: library/os.rst:4092 msgid "" "``next_expiration`` denotes the relative time until next the timer next " "fires, regardless of if the :const:`TFD_TIMER_ABSTIME` flag is set." msgstr "" -#: library/os.rst:4092 +#: library/os.rst:4095 msgid "" "``interval`` denotes the timer's interval. If zero, the timer will only fire " "once, after ``next_expiration`` seconds have elapsed." msgstr "" -#: library/os.rst:4096 +#: library/os.rst:4099 msgid ":manpage:`timerfd_gettime(2)`" msgstr "" -#: library/os.rst:4105 +#: library/os.rst:4108 msgid "Similar to :func:`timerfd_gettime`, but return time as nanoseconds." msgstr "" -#: library/os.rst:4113 +#: library/os.rst:4116 msgid "" "A flag for the :func:`timerfd_create` function, which sets the :const:" "`O_NONBLOCK` status flag for the new timer file descriptor. If :const:" "`TFD_NONBLOCK` is not set as a flag, :func:`read` blocks." msgstr "" -#: library/os.rst:4123 +#: library/os.rst:4126 msgid "" "A flag for the :func:`timerfd_create` function, If :const:`TFD_CLOEXEC` is " "set as a flag, set close-on-exec flag for new file descriptor." msgstr "" -#: library/os.rst:4133 +#: library/os.rst:4136 msgid "" "A flag for the :func:`timerfd_settime` and :func:`timerfd_settime_ns` " "functions. If this flag is set, *initial* is interpreted as an absolute " @@ -4518,22 +4523,22 @@ msgid "" "Epoch)." msgstr "" -#: library/os.rst:4143 +#: library/os.rst:4146 msgid "" "A flag for the :func:`timerfd_settime` and :func:`timerfd_settime_ns` " "functions along with :const:`TFD_TIMER_ABSTIME`. The timer is cancelled when " "the time of the underlying clock changes discontinuously." msgstr "" -#: library/os.rst:4154 +#: library/os.rst:4157 msgid "Linux extended attributes" msgstr "" -#: library/os.rst:4158 +#: library/os.rst:4161 msgid "These functions are all available on Linux only." msgstr "" -#: library/os.rst:4162 +#: library/os.rst:4165 msgid "" "Return the value of the extended filesystem attribute *attribute* for " "*path*. *attribute* can be bytes or str (directly or indirectly through the :" @@ -4541,17 +4546,17 @@ msgid "" "encoding." msgstr "" -#: library/os.rst:4170 +#: library/os.rst:4173 msgid "" "Raises an :ref:`auditing event ` ``os.getxattr`` with arguments " "``path``, ``attribute``." msgstr "" -#: library/os.rst:4204 library/os.rst:4229 +#: library/os.rst:4207 library/os.rst:4232 msgid "Accepts a :term:`path-like object` for *path* and *attribute*." msgstr "" -#: library/os.rst:4178 +#: library/os.rst:4181 msgid "" "Return a list of the extended filesystem attributes on *path*. The " "attributes in the list are represented as strings decoded with the " @@ -4559,13 +4564,13 @@ msgid "" "the current directory." msgstr "" -#: library/os.rst:4186 +#: library/os.rst:4189 msgid "" "Raises an :ref:`auditing event ` ``os.listxattr`` with argument " "``path``." msgstr "" -#: library/os.rst:4194 +#: library/os.rst:4197 msgid "" "Removes the extended filesystem attribute *attribute* from *path*. " "*attribute* should be bytes or str (directly or indirectly through the :" @@ -4573,13 +4578,13 @@ msgid "" "`filesystem encoding and error handler`." msgstr "" -#: library/os.rst:4202 +#: library/os.rst:4205 msgid "" "Raises an :ref:`auditing event ` ``os.removexattr`` with arguments " "``path``, ``attribute``." msgstr "" -#: library/os.rst:4210 +#: library/os.rst:4213 msgid "" "Set the extended filesystem attribute *attribute* on *path* to *value*. " "*attribute* must be a bytes or str with no embedded NULs (directly or " @@ -4591,45 +4596,45 @@ msgid "" "will not be created and ``EEXISTS`` will be raised." msgstr "" -#: library/os.rst:4224 +#: library/os.rst:4227 msgid "" "A bug in Linux kernel versions less than 2.6.39 caused the flags argument to " "be ignored on some filesystems." msgstr "" -#: library/os.rst:4227 +#: library/os.rst:4230 msgid "" "Raises an :ref:`auditing event ` ``os.setxattr`` with arguments " "``path``, ``attribute``, ``value``, ``flags``." msgstr "" -#: library/os.rst:4235 +#: library/os.rst:4238 msgid "" "The maximum size the value of an extended attribute can be. Currently, this " "is 64 KiB on Linux." msgstr "" -#: library/os.rst:4241 +#: library/os.rst:4244 msgid "" "This is a possible value for the flags argument in :func:`setxattr`. It " "indicates the operation must create an attribute." msgstr "" -#: library/os.rst:4247 +#: library/os.rst:4250 msgid "" "This is a possible value for the flags argument in :func:`setxattr`. It " "indicates the operation must replace an existing attribute." msgstr "" -#: library/os.rst:4254 +#: library/os.rst:4257 msgid "Process Management" msgstr "" -#: library/os.rst:4256 +#: library/os.rst:4259 msgid "These functions may be used to create and manage processes." msgstr "" -#: library/os.rst:4258 +#: library/os.rst:4261 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 " @@ -4640,7 +4645,7 @@ msgid "" "standard output; ``foo`` will seem to be ignored." msgstr "" -#: library/os.rst:4269 +#: library/os.rst:4272 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 " @@ -4649,37 +4654,37 @@ msgid "" "`SIGABRT` with :func:`signal.signal`." msgstr "" -#: library/os.rst:4278 +#: library/os.rst:4281 msgid "Add a path to the DLL search path." msgstr "" -#: library/os.rst:4280 +#: library/os.rst:4283 msgid "" "This search path is used when resolving dependencies for imported extension " "modules (the module itself is resolved through :data:`sys.path`), and also " "by :mod:`ctypes`." msgstr "" -#: library/os.rst:4284 +#: library/os.rst:4287 msgid "" "Remove the directory by calling **close()** on the returned object or using " "it in a :keyword:`with` statement." msgstr "" -#: library/os.rst:4287 +#: library/os.rst:4290 msgid "" "See the `Microsoft documentation `_ for more information about how " "DLLs are loaded." msgstr "" -#: library/os.rst:4291 +#: library/os.rst:4294 msgid "" "Raises an :ref:`auditing event ` ``os.add_dll_directory`` with " "argument ``path``." msgstr "" -#: library/os.rst:4295 +#: library/os.rst:4298 msgid "" "Previous versions of CPython would resolve DLLs using the default behavior " "for the current process. This led to inconsistencies, such as only sometimes " @@ -4687,14 +4692,14 @@ msgid "" "such as ``AddDllDirectory`` having no effect." msgstr "" -#: library/os.rst:4302 +#: library/os.rst:4305 msgid "" "In 3.8, the two primary ways DLLs are loaded now explicitly override the " "process-wide behavior to ensure consistency. See the :ref:`porting notes " "` for information on updating libraries." msgstr "" -#: library/os.rst:4317 +#: library/os.rst:4320 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 " @@ -4702,7 +4707,7 @@ msgid "" "reported as :exc:`OSError` exceptions." msgstr "" -#: library/os.rst:4322 +#: library/os.rst:4325 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 " @@ -4710,7 +4715,7 @@ msgid "" "fsync` before calling an :func:`exec\\* ` function." msgstr "" -#: library/os.rst:4328 +#: library/os.rst:4331 msgid "" "The \"l\" and \"v\" variants of the :func:`exec\\* ` functions differ " "in how command-line arguments are passed. The \"l\" variants are perhaps " @@ -4723,7 +4728,7 @@ msgid "" "is not enforced." msgstr "" -#: library/os.rst:4337 +#: library/os.rst:4340 msgid "" "The variants which include a \"p\" near the end (:func:`execlp`, :func:" "`execlpe`, :func:`execvp`, and :func:`execvpe`) will use the :envvar:`PATH` " @@ -4737,7 +4742,7 @@ msgid "" "even on Windows, as plain names will not be resolved." msgstr "" -#: library/os.rst:4348 +#: library/os.rst:4351 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 " @@ -4747,7 +4752,7 @@ msgid "" "process to inherit the environment of the current process." msgstr "" -#: library/os.rst:4355 +#: library/os.rst:4358 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 " @@ -4756,31 +4761,31 @@ msgid "" "`NotImplementedError`." msgstr "" -#: library/os.rst:4360 +#: library/os.rst:4363 msgid "" "Raises an :ref:`auditing event ` ``os.exec`` with arguments " "``path``, ``args``, ``env``." msgstr "" -#: library/os.rst:4364 +#: library/os.rst:4367 msgid "" "Added support for specifying *path* as an open file descriptor for :func:" "`execve`." msgstr "" -#: library/os.rst:4373 +#: library/os.rst:4376 msgid "" "Exit the process with status *n*, without calling cleanup handlers, flushing " "stdio buffers, etc." msgstr "" -#: library/os.rst:4378 +#: library/os.rst:4381 msgid "" "The standard way to exit is :func:`sys.exit(n) `. :func:`!_exit` " "should normally only be used in the child process after a :func:`fork`." msgstr "" -#: library/os.rst:4381 +#: library/os.rst:4384 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 " @@ -4788,139 +4793,139 @@ msgid "" "delivery program." msgstr "" -#: library/os.rst:4387 +#: library/os.rst:4390 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 "" -#: library/os.rst:4394 +#: library/os.rst:4397 msgid "" "Exit code that means no error occurred. May be taken from the defined value " "of ``EXIT_SUCCESS`` on some platforms. Generally has a value of zero." msgstr "" -#: library/os.rst:4402 +#: library/os.rst:4405 msgid "" "Exit code that means the command was used incorrectly, such as when the " "wrong number of arguments are given." msgstr "" -#: library/os.rst:4410 +#: library/os.rst:4413 msgid "Exit code that means the input data was incorrect." msgstr "" -#: library/os.rst:4417 +#: library/os.rst:4420 msgid "Exit code that means an input file did not exist or was not readable." msgstr "" -#: library/os.rst:4424 +#: library/os.rst:4427 msgid "Exit code that means a specified user did not exist." msgstr "" -#: library/os.rst:4431 +#: library/os.rst:4434 msgid "Exit code that means a specified host did not exist." msgstr "" -#: library/os.rst:4438 +#: library/os.rst:4441 msgid "Exit code that means that a required service is unavailable." msgstr "" -#: library/os.rst:4445 +#: library/os.rst:4448 msgid "Exit code that means an internal software error was detected." msgstr "" -#: library/os.rst:4452 +#: library/os.rst:4455 msgid "" "Exit code that means an operating system error was detected, such as the " "inability to fork or create a pipe." msgstr "" -#: library/os.rst:4460 +#: library/os.rst:4463 msgid "" "Exit code that means some system file did not exist, could not be opened, or " "had some other kind of error." msgstr "" -#: library/os.rst:4468 +#: library/os.rst:4471 msgid "Exit code that means a user specified output file could not be created." msgstr "" -#: library/os.rst:4475 +#: library/os.rst:4478 msgid "" "Exit code that means that an error occurred while doing I/O on some file." msgstr "" -#: library/os.rst:4482 +#: library/os.rst:4485 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 "" -#: library/os.rst:4491 +#: library/os.rst:4494 msgid "" "Exit code that means that a protocol exchange was illegal, invalid, or not " "understood." msgstr "" -#: library/os.rst:4499 +#: library/os.rst:4502 msgid "" "Exit code that means that there were insufficient permissions to perform the " "operation (but not intended for file system problems)." msgstr "" -#: library/os.rst:4507 +#: library/os.rst:4510 msgid "Exit code that means that some kind of configuration error occurred." msgstr "" -#: library/os.rst:4514 +#: library/os.rst:4517 msgid "Exit code that means something like \"an entry was not found\"." msgstr "" -#: library/os.rst:4521 +#: library/os.rst:4524 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 "" -#: library/os.rst:4524 +#: library/os.rst:4527 msgid "" "Note that some platforms including FreeBSD <= 6.3 and Cygwin have known " "issues when using ``fork()`` from a thread." msgstr "" -#: library/os.rst:4527 +#: library/os.rst:4530 msgid "" "Raises an :ref:`auditing event ` ``os.fork`` with no arguments." msgstr "" -#: library/os.rst:4531 +#: library/os.rst:4534 msgid "" "If you use TLS sockets in an application calling ``fork()``, see the warning " "in the :mod:`ssl` documentation." msgstr "" -#: library/os.rst:4580 +#: library/os.rst:4583 msgid "" "On macOS the use of this function is unsafe when mixed with using higher-" "level system APIs, and that includes using :mod:`urllib.request`." msgstr "" -#: library/os.rst:4539 +#: library/os.rst:4542 msgid "" "Calling ``fork()`` in a subinterpreter is no longer supported (:exc:" "`RuntimeError` is raised)." msgstr "" -#: library/os.rst:4543 +#: library/os.rst:4546 msgid "" "If Python is able to detect that your process has multiple threads, :func:" "`os.fork` now raises a :exc:`DeprecationWarning`." msgstr "" -#: library/os.rst:4547 +#: library/os.rst:4550 msgid "" "We chose to surface this as a warning, when detectable, to better inform " "developers of a design problem that the POSIX platform specifically notes as " @@ -4931,21 +4936,21 @@ msgid "" "``free``)." msgstr "" -#: library/os.rst:4556 +#: library/os.rst:4559 msgid "" "Users of macOS or users of libc or malloc implementations other than those " "typically found in glibc to date are among those already more likely to " "experience deadlocks running such code." msgstr "" -#: library/os.rst:4560 +#: library/os.rst:4563 msgid "" "See `this discussion on fork being incompatible with threads `_ for technical details of why we're surfacing " "this longstanding platform compatibility problem to developers." msgstr "" -#: library/os.rst:4570 +#: library/os.rst:4573 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, " @@ -4954,31 +4959,31 @@ msgid "" "the :mod:`pty` module. If an error occurs :exc:`OSError` is raised." msgstr "" -#: library/os.rst:4576 +#: library/os.rst:4579 msgid "" "Raises an :ref:`auditing event ` ``os.forkpty`` with no arguments." msgstr "" -#: library/os.rst:4583 +#: library/os.rst:4586 msgid "" "Calling ``forkpty()`` in a subinterpreter is no longer supported (:exc:" "`RuntimeError` is raised)." msgstr "" -#: library/os.rst:4587 +#: library/os.rst:4590 msgid "" "If Python is able to detect that your process has multiple threads, this now " "raises a :exc:`DeprecationWarning`. See the longer explanation on :func:`os." "fork`." msgstr "" -#: library/os.rst:4601 +#: library/os.rst:4604 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 "" -#: library/os.rst:4604 +#: library/os.rst:4607 msgid "" "Windows: The :const:`signal.CTRL_C_EVENT` and :const:`signal." "CTRL_BREAK_EVENT` signals are special signals which can only be sent to " @@ -4988,43 +4993,43 @@ msgid "" "be set to *sig*." msgstr "" -#: library/os.rst:4611 +#: library/os.rst:4614 msgid "See also :func:`signal.pthread_kill`." msgstr "" -#: library/os.rst:4613 +#: library/os.rst:4616 msgid "" "Raises an :ref:`auditing event ` ``os.kill`` with arguments " "``pid``, ``sig``." msgstr "" -#: library/os.rst:4627 +#: library/os.rst:4630 msgid "Send the signal *sig* to the process group *pgid*." msgstr "" -#: library/os.rst:4629 +#: library/os.rst:4632 msgid "" "Raises an :ref:`auditing event ` ``os.killpg`` with arguments " "``pgid``, ``sig``." msgstr "" -#: library/os.rst:4636 +#: library/os.rst:4639 msgid "" "Add *increment* to the process's \"niceness\". Return the new niceness." msgstr "" -#: library/os.rst:4643 +#: library/os.rst:4646 msgid "" "Return a file descriptor referring to the process *pid* with *flags* set. " "This descriptor can be used to perform process management without races and " "signals." msgstr "" -#: library/os.rst:4647 +#: library/os.rst:4650 msgid "See the :manpage:`pidfd_open(2)` man page for more details." msgstr "" -#: library/os.rst:4654 +#: library/os.rst:4657 msgid "" "This flag indicates that the file descriptor will be non-blocking. If the " "process referred to by the file descriptor has not yet terminated, then an " @@ -5032,13 +5037,13 @@ msgid "" "immediately return the error :const:`~errno.EAGAIN` rather than blocking." msgstr "" -#: library/os.rst:4665 +#: library/os.rst:4668 msgid "" "Lock program segments into memory. The value of *op* (defined in ````) determines which segments are locked." msgstr "" -#: library/os.rst:4673 +#: library/os.rst:4676 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 " @@ -5048,7 +5053,7 @@ msgid "" "rather than bytes." msgstr "" -#: library/os.rst:4681 +#: library/os.rst:4684 msgid "" "The ``close`` method returns :const:`None` if the subprocess exited " "successfully, or the subprocess's return code if there was an error. On " @@ -5060,63 +5065,63 @@ msgid "" "contains the signed integer return code from the child process." msgstr "" -#: library/os.rst:4691 +#: library/os.rst:4694 msgid "" "On Unix, :func:`waitstatus_to_exitcode` can be used to convert the ``close`` " "method result (exit status) into an exit code if it is not ``None``. On " "Windows, the ``close`` method result is directly the exit code (or ``None``)." msgstr "" -#: library/os.rst:4696 +#: library/os.rst:4699 msgid "" "This is implemented using :class:`subprocess.Popen`; see that class's " "documentation for more powerful ways to manage and communicate with " "subprocesses." msgstr "" -#: library/os.rst:4703 +#: library/os.rst:4706 msgid "" "The :ref:`Python UTF-8 Mode ` affects encodings used for *cmd* " "and pipe contents." msgstr "" -#: library/os.rst:4706 +#: library/os.rst:4709 msgid "" ":func:`popen` is a simple wrapper around :class:`subprocess.Popen`. Use :" "class:`subprocess.Popen` or :func:`subprocess.run` to control options like " "encodings." msgstr "" -#: library/os.rst:4710 +#: library/os.rst:4713 msgid "" "The function is :term:`soft deprecated` and should no longer be used to " "write new code. The :mod:`subprocess` module is recommended instead." msgstr "" -#: library/os.rst:4719 +#: library/os.rst:4722 msgid "Wraps the :c:func:`!posix_spawn` C library API for use from Python." msgstr "" -#: library/os.rst:4721 +#: library/os.rst:4724 msgid "" "Most users should use :func:`subprocess.run` instead of :func:`posix_spawn`." msgstr "" -#: library/os.rst:4723 +#: library/os.rst:4726 msgid "" "The positional-only arguments *path*, *args*, and *env* are similar to :func:" "`execve`. *env* is allowed to be ``None``, in which case current process' " "environment is used." msgstr "" -#: library/os.rst:4727 +#: library/os.rst:4730 msgid "" "The *path* parameter is the path to the executable file. The *path* should " "contain a directory. Use :func:`posix_spawnp` to pass an executable file " "without directory." msgstr "" -#: library/os.rst:4731 +#: library/os.rst:4734 msgid "" "The *file_actions* argument may be a sequence of tuples describing actions " "to take on specific file descriptors in the child process between the C " @@ -5125,39 +5130,39 @@ msgid "" "describing the remaining tuple elements:" msgstr "" -#: library/os.rst:4739 +#: library/os.rst:4742 msgid "(``os.POSIX_SPAWN_OPEN``, *fd*, *path*, *flags*, *mode*)" msgstr "" -#: library/os.rst:4741 +#: library/os.rst:4744 msgid "Performs ``os.dup2(os.open(path, flags, mode), fd)``." msgstr "" -#: library/os.rst:4745 +#: library/os.rst:4748 msgid "(``os.POSIX_SPAWN_CLOSE``, *fd*)" msgstr "" -#: library/os.rst:4747 +#: library/os.rst:4750 msgid "Performs ``os.close(fd)``." msgstr "" -#: library/os.rst:4751 +#: library/os.rst:4754 msgid "(``os.POSIX_SPAWN_DUP2``, *fd*, *new_fd*)" msgstr "" -#: library/os.rst:4753 +#: library/os.rst:4756 msgid "Performs ``os.dup2(fd, new_fd)``." msgstr "" -#: library/os.rst:4757 +#: library/os.rst:4760 msgid "(``os.POSIX_SPAWN_CLOSEFROM``, *fd*)" msgstr "" -#: library/os.rst:4759 +#: library/os.rst:4762 msgid "Performs ``os.closerange(fd, INF)``." msgstr "" -#: library/os.rst:4761 +#: library/os.rst:4764 msgid "" "These tuples correspond to the C library :c:func:`!" "posix_spawn_file_actions_addopen`, :c:func:`!" @@ -5167,7 +5172,7 @@ msgid "" "c:func:`!posix_spawn` call itself." msgstr "" -#: library/os.rst:4768 +#: library/os.rst:4771 msgid "" "The *setpgroup* argument will set the process group of the child to the " "value specified. If the value specified is 0, the child's process group ID " @@ -5176,7 +5181,7 @@ msgid "" "corresponds to the C library :c:macro:`!POSIX_SPAWN_SETPGROUP` flag." msgstr "" -#: library/os.rst:4774 +#: library/os.rst:4777 msgid "" "If the *resetids* argument is ``True`` it will reset the effective UID and " "GID of the child to the real UID and GID of the parent process. If the " @@ -5187,7 +5192,7 @@ msgid "" "library :c:macro:`!POSIX_SPAWN_RESETIDS` flag." msgstr "" -#: library/os.rst:4782 +#: library/os.rst:4785 msgid "" "If the *setsid* argument is ``True``, it will create a new session ID for " "``posix_spawn``. *setsid* requires :c:macro:`!POSIX_SPAWN_SETSID` or :c:" @@ -5195,7 +5200,7 @@ msgid "" "is raised." msgstr "" -#: library/os.rst:4787 +#: library/os.rst:4790 msgid "" "The *setsigmask* argument will set the signal mask to the signal set " "specified. If the parameter is not used, then the child inherits the " @@ -5203,14 +5208,14 @@ msgid "" "POSIX_SPAWN_SETSIGMASK` flag." msgstr "" -#: library/os.rst:4792 +#: library/os.rst:4795 msgid "" "The *sigdef* argument will reset the disposition of all signals in the set " "specified. This argument corresponds to the C library :c:macro:`!" "POSIX_SPAWN_SETSIGDEF` flag." msgstr "" -#: library/os.rst:4796 +#: library/os.rst:4799 msgid "" "The *scheduler* argument must be a tuple containing the (optional) scheduler " "policy and an instance of :class:`sched_param` with the scheduler " @@ -5220,85 +5225,85 @@ msgid "" "POSIX_SPAWN_SETSCHEDULER` flags." msgstr "" -#: library/os.rst:4824 +#: library/os.rst:4827 msgid "" "Raises an :ref:`auditing event ` ``os.posix_spawn`` with arguments " "``path``, ``argv``, ``env``." msgstr "" -#: library/os.rst:4807 +#: library/os.rst:4810 msgid "" "*env* parameter accepts ``None``. ``os.POSIX_SPAWN_CLOSEFROM`` is available " "on platforms where :c:func:`!posix_spawn_file_actions_addclosefrom_np` " "exists." msgstr "" -#: library/os.rst:4818 +#: library/os.rst:4821 msgid "Wraps the :c:func:`!posix_spawnp` C library API for use from Python." msgstr "" -#: library/os.rst:4820 +#: library/os.rst:4823 msgid "" "Similar to :func:`posix_spawn` except that the system searches for the " "*executable* file in the list of directories specified by the :envvar:`PATH` " "environment variable (in the same way as for ``execvp(3)``)." msgstr "" -#: library/os.rst:4830 +#: library/os.rst:4833 msgid "See :func:`posix_spawn` documentation." msgstr "" -#: library/os.rst:4836 +#: library/os.rst:4839 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 "" -#: library/os.rst:4841 +#: library/os.rst:4844 msgid "*before* is a function called before forking a child process." msgstr "" -#: library/os.rst:4842 +#: library/os.rst:4845 msgid "" "*after_in_parent* is a function called from the parent process after forking " "a child process." msgstr "" -#: library/os.rst:4844 +#: library/os.rst:4847 msgid "*after_in_child* is a function called from the child process." msgstr "" -#: library/os.rst:4846 +#: library/os.rst:4849 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 "" -#: library/os.rst:4850 +#: library/os.rst:4853 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 "" -#: library/os.rst:4855 +#: library/os.rst:4858 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 "" -#: library/os.rst:4859 +#: library/os.rst:4862 msgid "There is no way to unregister a function." msgstr "" -#: library/os.rst:4875 +#: library/os.rst:4878 msgid "Execute the program *path* in a new process." msgstr "" -#: library/os.rst:4877 +#: library/os.rst:4880 msgid "" "(Note that the :mod:`subprocess` module provides more powerful facilities " "for spawning new processes and retrieving their results; using that module " @@ -5306,7 +5311,7 @@ msgid "" "`subprocess-replacements` section.)" msgstr "" -#: library/os.rst:4882 +#: library/os.rst:4885 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 " @@ -5315,13 +5320,13 @@ msgid "" "handle, so can be used with the :func:`waitpid` function." msgstr "" -#: library/os.rst:4888 +#: library/os.rst:4891 msgid "" "Note on VxWorks, this function doesn't return ``-signal`` when the new " "process is killed. Instead it raises OSError exception." msgstr "" -#: library/os.rst:4891 +#: library/os.rst:4894 msgid "" "The \"l\" and \"v\" variants of the :func:`spawn\\* ` functions " "differ in how command-line arguments are passed. The \"l\" variants are " @@ -5333,7 +5338,7 @@ msgid "" "to the child process must start with the name of the command being run." msgstr "" -#: library/os.rst:4900 +#: library/os.rst:4903 msgid "" "The variants which include a second \"p\" near the end (:func:`spawnlp`, :" "func:`spawnlpe`, :func:`spawnvp`, and :func:`spawnvpe`) will use the :envvar:" @@ -5346,7 +5351,7 @@ msgid "" "appropriate absolute or relative path." msgstr "" -#: library/os.rst:4910 +#: library/os.rst:4913 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 " @@ -5358,13 +5363,13 @@ msgid "" "values will cause the function to fail, with a return value of ``127``." msgstr "" -#: library/os.rst:4919 +#: library/os.rst:4922 msgid "" "As an example, the following calls to :func:`spawnlp` and :func:`spawnvpe` " "are equivalent::" msgstr "" -#: library/os.rst:4922 +#: library/os.rst:4925 msgid "" "import os\n" "os.spawnlp(os.P_WAIT, 'cp', 'cp', 'index.html', '/dev/null')\n" @@ -5373,13 +5378,13 @@ msgid "" "os.spawnvpe(os.P_WAIT, 'cp', L, os.environ)" msgstr "" -#: library/os.rst:4928 +#: library/os.rst:4931 msgid "" "Raises an :ref:`auditing event ` ``os.spawn`` with arguments " "``mode``, ``path``, ``args``, ``env``." msgstr "" -#: library/os.rst:4932 +#: library/os.rst:4935 msgid "" ":func:`spawnlp`, :func:`spawnlpe`, :func:`spawnvp` and :func:`spawnvpe` are " "not available on Windows. :func:`spawnle` and :func:`spawnve` are not " @@ -5387,13 +5392,13 @@ msgid "" "instead." msgstr "" -#: library/os.rst:4940 +#: library/os.rst:4943 msgid "" "These functions are :term:`soft deprecated` and should no longer be used to " "write new code. The :mod:`subprocess` module is recommended instead." msgstr "" -#: library/os.rst:4948 +#: library/os.rst:4951 msgid "" "Possible values for the *mode* parameter to the :func:`spawn\\* ` " "family of functions. If either of these values is given, the :func:" @@ -5401,7 +5406,7 @@ msgid "" "been created, with the process id as the return value." msgstr "" -#: library/os.rst:4958 +#: library/os.rst:4961 msgid "" "Possible value for the *mode* parameter to the :func:`spawn\\* ` " "family of functions. If this is given as *mode*, the :func:`spawn\\* " @@ -5410,7 +5415,7 @@ msgid "" "successful, or ``-signal`` if a signal kills the process." msgstr "" -#: library/os.rst:4970 +#: library/os.rst:4973 msgid "" "Possible values for the *mode* parameter to the :func:`spawn\\* ` " "family of functions. These are less portable than those listed above. :" @@ -5420,11 +5425,11 @@ msgid "" "function will not return." msgstr "" -#: library/os.rst:4981 +#: library/os.rst:4984 msgid "Start a file with its associated application." msgstr "" -#: library/os.rst:4983 +#: library/os.rst:4986 msgid "" "When *operation* is not specified, this acts like double-clicking the file " "in Windows Explorer, or giving the file name as an argument to the :program:" @@ -5432,7 +5437,7 @@ msgid "" "whatever application (if any) its extension is associated." msgstr "" -#: library/os.rst:4988 +#: library/os.rst:4991 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 " @@ -5440,28 +5445,28 @@ msgid "" "as well as ``'explore'`` and ``'find'`` (to be used on directories)." msgstr "" -#: library/os.rst:4993 +#: library/os.rst:4996 msgid "" "When launching an application, specify *arguments* to be passed as a single " "string. This argument may have no effect when using this function to launch " "a document." msgstr "" -#: library/os.rst:4997 +#: library/os.rst:5000 msgid "" "The default working directory is inherited, but may be overridden by the " "*cwd* argument. This should be an absolute path. A relative *path* will be " "resolved against this argument." msgstr "" -#: library/os.rst:5001 +#: library/os.rst:5004 msgid "" "Use *show_cmd* to override the default window style. Whether this has any " "effect will depend on the application being launched. Values are integers as " "supported by the Win32 :c:func:`!ShellExecute` function." msgstr "" -#: library/os.rst:5005 +#: library/os.rst:5008 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 " @@ -5472,32 +5477,32 @@ msgid "" "encoded for Win32." msgstr "" -#: library/os.rst:5013 +#: library/os.rst:5016 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 "" -#: library/os.rst:5017 +#: library/os.rst:5020 msgid "" "Raises an :ref:`auditing event ` ``os.startfile`` with arguments " "``path``, ``operation``." msgstr "" -#: library/os.rst:5019 +#: library/os.rst:5022 msgid "" "Raises an :ref:`auditing event ` ``os.startfile/2`` with arguments " "``path``, ``operation``, ``arguments``, ``cwd``, ``show_cmd``." msgstr "" -#: library/os.rst:5023 +#: library/os.rst:5026 msgid "" "Added the *arguments*, *cwd* and *show_cmd* arguments, and the ``os." "startfile/2`` audit event." msgstr "" -#: library/os.rst:5030 +#: library/os.rst:5033 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 " @@ -5508,13 +5513,13 @@ msgid "" "value of the Python function is system-dependent." msgstr "" -#: library/os.rst:5038 +#: library/os.rst:5041 msgid "" "On Unix, the return value is the exit status of the process encoded in the " "format specified for :func:`wait`." msgstr "" -#: library/os.rst:5041 +#: library/os.rst:5044 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 :" @@ -5523,7 +5528,7 @@ msgid "" "shell documentation." msgstr "" -#: library/os.rst:5047 +#: library/os.rst:5050 msgid "" "The :mod:`subprocess` module provides more powerful facilities for spawning " "new processes and retrieving their results; using that module is recommended " @@ -5531,53 +5536,53 @@ msgid "" "the :mod:`subprocess` documentation for some helpful recipes." msgstr "" -#: library/os.rst:5052 +#: library/os.rst:5055 msgid "" "On Unix, :func:`waitstatus_to_exitcode` can be used to convert the result " "(exit status) into an exit code. On Windows, the result is directly the exit " "code." msgstr "" -#: library/os.rst:5056 +#: library/os.rst:5059 msgid "" "Raises an :ref:`auditing event ` ``os.system`` with argument " "``command``." msgstr "" -#: library/os.rst:5063 +#: library/os.rst:5066 msgid "" "Returns the current global process times. The return value is an object with " "five attributes:" msgstr "" -#: library/os.rst:5066 +#: library/os.rst:5069 msgid ":attr:`!user` - user time" msgstr "" -#: library/os.rst:5067 +#: library/os.rst:5070 msgid ":attr:`!system` - system time" msgstr "" -#: library/os.rst:5068 +#: library/os.rst:5071 msgid ":attr:`!children_user` - user time of all child processes" msgstr "" -#: library/os.rst:5069 +#: library/os.rst:5072 msgid ":attr:`!children_system` - system time of all child processes" msgstr "" -#: library/os.rst:5070 +#: library/os.rst:5073 msgid ":attr:`!elapsed` - elapsed real time since a fixed point in the past" msgstr "" -#: library/os.rst:5072 +#: library/os.rst:5075 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 "" -#: library/os.rst:5076 +#: library/os.rst:5079 msgid "" "See the Unix manual page :manpage:`times(2)` and `times(3) `_ manual page on Unix or `the " @@ -5587,7 +5592,7 @@ msgid "" "attributes are zero." msgstr "" -#: library/os.rst:5090 +#: library/os.rst:5093 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 " @@ -5596,87 +5601,87 @@ msgid "" "if a core file was produced." msgstr "" -#: library/os.rst:5096 +#: library/os.rst:5099 msgid "" "If there are no children that could be waited for, :exc:`ChildProcessError` " "is raised." msgstr "" -#: library/os.rst:5174 +#: library/os.rst:5177 msgid "" ":func:`waitstatus_to_exitcode` can be used to convert the exit status into " "an exit code." msgstr "" -#: library/os.rst:5106 +#: library/os.rst:5109 msgid "" "The other :func:`!wait*` functions documented below can be used to wait for " "the completion of a specific child process and have more options. :func:" "`waitpid` is the only one also available on Windows." msgstr "" -#: library/os.rst:5113 +#: library/os.rst:5116 msgid "Wait for the completion of a child process." msgstr "" -#: library/os.rst:5115 +#: library/os.rst:5118 msgid "" "*idtype* can be :data:`P_PID`, :data:`P_PGID`, :data:`P_ALL`, or (on Linux) :" "data:`P_PIDFD`. The interpretation of *id* depends on it; see their " "individual descriptions." msgstr "" -#: library/os.rst:5118 +#: library/os.rst:5121 msgid "" "*options* is an OR combination of flags. At least one of :data:`WEXITED`, :" "data:`WSTOPPED` or :data:`WCONTINUED` is required; :data:`WNOHANG` and :data:" "`WNOWAIT` are additional optional flags." msgstr "" -#: library/os.rst:5122 +#: library/os.rst:5125 msgid "" "The return value is an object representing the data contained in the :c:type:" "`siginfo_t` structure with the following attributes:" msgstr "" -#: library/os.rst:5125 +#: library/os.rst:5128 msgid ":attr:`!si_pid` (process ID)" msgstr "" -#: library/os.rst:5126 +#: library/os.rst:5129 msgid ":attr:`!si_uid` (real user ID of the child)" msgstr "" -#: library/os.rst:5127 +#: library/os.rst:5130 msgid ":attr:`!si_signo` (always :const:`~signal.SIGCHLD`)" msgstr "" -#: library/os.rst:5128 +#: library/os.rst:5131 msgid "" ":attr:`!si_status` (the exit status or signal number, depending on :attr:`!" "si_code`)" msgstr "" -#: library/os.rst:5129 +#: library/os.rst:5132 msgid ":attr:`!si_code` (see :data:`CLD_EXITED` for possible values)" msgstr "" -#: library/os.rst:5131 +#: library/os.rst:5134 msgid "" "If :data:`WNOHANG` is specified and there are no matching children in the " "requested state, ``None`` is returned. Otherwise, if there are no matching " "children that could be waited for, :exc:`ChildProcessError` is raised." msgstr "" -#: library/os.rst:5140 +#: library/os.rst:5143 msgid "This function is now available on macOS as well." msgstr "" -#: library/os.rst:5146 +#: library/os.rst:5149 msgid "The details of this function differ on Unix and Windows." msgstr "" -#: library/os.rst:5148 +#: library/os.rst:5151 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 " @@ -5685,7 +5690,7 @@ msgid "" "operation." msgstr "" -#: library/os.rst:5153 +#: library/os.rst:5156 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 " @@ -5695,7 +5700,7 @@ msgid "" "group ``-pid`` (the absolute value of *pid*)." msgstr "" -#: library/os.rst:5160 +#: library/os.rst:5163 msgid "" "*options* is an OR combination of flags. If it contains :data:`WNOHANG` and " "there are no matching children in the requested state, ``(0, 0)`` is " @@ -5704,7 +5709,7 @@ msgid "" "are :data:`WUNTRACED` and :data:`WCONTINUED`." msgstr "" -#: library/os.rst:5166 +#: library/os.rst:5169 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 " @@ -5716,7 +5721,7 @@ msgid "" "process handles." msgstr "" -#: library/os.rst:5187 +#: library/os.rst:5190 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 " @@ -5725,13 +5730,13 @@ msgid "" "same as that provided to :func:`waitpid` and :func:`wait4`." msgstr "" -#: library/os.rst:5208 +#: library/os.rst:5211 msgid "" ":func:`waitstatus_to_exitcode` can be used to convert the exit status into " "an exitcode." msgstr "" -#: library/os.rst:5202 +#: library/os.rst:5205 msgid "" "Similar to :func:`waitpid`, except a 3-element tuple, containing the child's " "process id, exit status indication, and resource usage information is " @@ -5740,118 +5745,118 @@ msgid "" "to :func:`waitpid`." msgstr "" -#: library/os.rst:5219 +#: library/os.rst:5222 msgid "" "These are the possible values for *idtype* in :func:`waitid`. They affect " "how *id* is interpreted:" msgstr "" -#: library/os.rst:5222 +#: library/os.rst:5225 msgid ":data:`!P_PID` - wait for the child whose PID is *id*." msgstr "" -#: library/os.rst:5223 +#: library/os.rst:5226 msgid ":data:`!P_PGID` - wait for any child whose progress group ID is *id*." msgstr "" -#: library/os.rst:5224 +#: library/os.rst:5227 msgid ":data:`!P_ALL` - wait for any child; *id* is ignored." msgstr "" -#: library/os.rst:5225 +#: library/os.rst:5228 msgid "" ":data:`!P_PIDFD` - wait for the child identified by the file descriptor *id* " "(a process file descriptor created with :func:`pidfd_open`)." msgstr "" -#: library/os.rst:5230 +#: library/os.rst:5233 msgid ":data:`!P_PIDFD` is only available on Linux >= 5.4." msgstr "" -#: library/os.rst:5233 +#: library/os.rst:5236 msgid "The :data:`!P_PIDFD` constant." msgstr "" -#: library/os.rst:5239 +#: library/os.rst:5242 msgid "" "This *options* flag for :func:`waitpid`, :func:`wait3`, :func:`wait4`, and :" "func:`waitid` causes child processes to be reported if they have been " "continued from a job control stop since they were last reported." msgstr "" -#: library/os.rst:5248 +#: library/os.rst:5251 msgid "" "This *options* flag for :func:`waitid` causes child processes that have " "terminated to be reported." msgstr "" -#: library/os.rst:5251 +#: library/os.rst:5254 msgid "" "The other ``wait*`` functions always report children that have terminated, " "so this option is not available for them." msgstr "" -#: library/os.rst:5261 +#: library/os.rst:5264 msgid "" "This *options* flag for :func:`waitid` causes child processes that have been " "stopped by the delivery of a signal to be reported." msgstr "" -#: library/os.rst:5296 +#: library/os.rst:5299 msgid "This option is not available for the other ``wait*`` functions." msgstr "" -#: library/os.rst:5273 +#: library/os.rst:5276 msgid "" "This *options* flag for :func:`waitpid`, :func:`wait3`, and :func:`wait4` " "causes child processes to also be reported if they have been stopped but " "their current state has not been reported since they were stopped." msgstr "" -#: library/os.rst:5277 +#: library/os.rst:5280 msgid "This option is not available for :func:`waitid`." msgstr "" -#: library/os.rst:5284 +#: library/os.rst:5287 msgid "" "This *options* flag causes :func:`waitpid`, :func:`wait3`, :func:`wait4`, " "and :func:`waitid` to return right away if no child process status is " "available immediately." msgstr "" -#: library/os.rst:5293 +#: library/os.rst:5296 msgid "" "This *options* flag causes :func:`waitid` to leave the child in a waitable " "state, so that a later :func:`!wait*` call can be used to retrieve the child " "status information again." msgstr "" -#: library/os.rst:5308 +#: library/os.rst:5311 msgid "" "These are the possible values for :attr:`!si_code` in the result returned " "by :func:`waitid`." msgstr "" -#: library/os.rst:5315 +#: library/os.rst:5318 msgid "Added :data:`CLD_KILLED` and :data:`CLD_STOPPED` values." msgstr "" -#: library/os.rst:5321 +#: library/os.rst:5324 msgid "Convert a wait status to an exit code." msgstr "" -#: library/os.rst:5323 +#: library/os.rst:5326 msgid "On Unix:" msgstr "" -#: library/os.rst:5325 +#: library/os.rst:5328 msgid "" "If the process exited normally (if ``WIFEXITED(status)`` is true), return " "the process exit status (return ``WEXITSTATUS(status)``): result greater " "than or equal to 0." msgstr "" -#: library/os.rst:5328 +#: library/os.rst:5331 msgid "" "If the process was terminated by a signal (if ``WIFSIGNALED(status)`` is " "true), return ``-signum`` where *signum* is the number of the signal that " @@ -5859,15 +5864,15 @@ msgid "" "than 0." msgstr "" -#: library/os.rst:5332 +#: library/os.rst:5335 msgid "Otherwise, raise a :exc:`ValueError`." msgstr "" -#: library/os.rst:5334 +#: library/os.rst:5337 msgid "On Windows, return *status* shifted right by 8 bits." msgstr "" -#: library/os.rst:5336 +#: library/os.rst:5339 msgid "" "On Unix, if the process is being traced or if :func:`waitpid` was called " "with :data:`WUNTRACED` option, the caller must first check if " @@ -5875,234 +5880,234 @@ msgid "" "``WIFSTOPPED(status)`` is true." msgstr "" -#: library/os.rst:5343 +#: library/os.rst:5346 msgid "" ":func:`WIFEXITED`, :func:`WEXITSTATUS`, :func:`WIFSIGNALED`, :func:" "`WTERMSIG`, :func:`WIFSTOPPED`, :func:`WSTOPSIG` functions." msgstr "" -#: library/os.rst:5351 +#: library/os.rst:5354 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 "" -#: library/os.rst:5357 +#: library/os.rst:5360 msgid "" "Return ``True`` if a core dump was generated for the process, otherwise " "return ``False``." msgstr "" -#: library/os.rst:5426 +#: library/os.rst:5429 msgid "This function should be employed only if :func:`WIFSIGNALED` is true." msgstr "" -#: library/os.rst:5367 +#: library/os.rst:5370 msgid "" "Return ``True`` if a stopped child has been resumed by delivery of :const:" "`~signal.SIGCONT` (if the process has been continued from a job control " "stop), otherwise return ``False``." msgstr "" -#: library/os.rst:5371 +#: library/os.rst:5374 msgid "See :data:`WCONTINUED` option." msgstr "" -#: library/os.rst:5378 +#: library/os.rst:5381 msgid "" "Return ``True`` if the process was stopped by delivery of a signal, " "otherwise return ``False``." msgstr "" -#: library/os.rst:5381 +#: library/os.rst:5384 msgid "" ":func:`WIFSTOPPED` only returns ``True`` if the :func:`waitpid` call was " "done using :data:`WUNTRACED` option or when the process is being traced " "(see :manpage:`ptrace(2)`)." msgstr "" -#: library/os.rst:5389 +#: library/os.rst:5392 msgid "" "Return ``True`` if the process was terminated by a signal, otherwise return " "``False``." msgstr "" -#: library/os.rst:5397 +#: library/os.rst:5400 msgid "" "Return ``True`` if the process exited terminated normally, that is, by " "calling ``exit()`` or ``_exit()``, or by returning from ``main()``; " "otherwise return ``False``." msgstr "" -#: library/os.rst:5406 +#: library/os.rst:5409 msgid "Return the process exit status." msgstr "" -#: library/os.rst:5408 +#: library/os.rst:5411 msgid "This function should be employed only if :func:`WIFEXITED` is true." msgstr "" -#: library/os.rst:5415 +#: library/os.rst:5418 msgid "Return the signal which caused the process to stop." msgstr "" -#: library/os.rst:5417 +#: library/os.rst:5420 msgid "This function should be employed only if :func:`WIFSTOPPED` is true." msgstr "" -#: library/os.rst:5424 +#: library/os.rst:5427 msgid "Return the number of the signal that caused the process to terminate." msgstr "" -#: library/os.rst:5432 +#: library/os.rst:5435 msgid "Interface to the scheduler" msgstr "" -#: library/os.rst:5434 +#: library/os.rst:5437 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 "" -#: library/os.rst:5440 +#: library/os.rst:5443 msgid "" "The following scheduling policies are exposed if they are supported by the " "operating system." msgstr "" -#: library/os.rst:5447 +#: library/os.rst:5450 msgid "The default scheduling policy." msgstr "" -#: library/os.rst:5451 +#: library/os.rst:5454 msgid "" "Scheduling policy for CPU-intensive processes that tries to preserve " "interactivity on the rest of the computer." msgstr "" -#: library/os.rst:5456 +#: library/os.rst:5459 msgid "Scheduling policy for tasks with deadline constraints." msgstr "" -#: library/os.rst:5462 +#: library/os.rst:5465 msgid "Scheduling policy for extremely low priority background tasks." msgstr "" -#: library/os.rst:5466 +#: library/os.rst:5469 msgid "Alias for :data:`SCHED_OTHER`." msgstr "" -#: library/os.rst:5472 +#: library/os.rst:5475 msgid "Scheduling policy for sporadic server programs." msgstr "" -#: library/os.rst:5476 +#: library/os.rst:5479 msgid "A First In First Out scheduling policy." msgstr "" -#: library/os.rst:5480 +#: library/os.rst:5483 msgid "A round-robin scheduling policy." msgstr "" -#: library/os.rst:5484 +#: library/os.rst:5487 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 "" -#: library/os.rst:5491 +#: library/os.rst:5494 msgid "" "This class represents tunable scheduling parameters used in :func:" "`sched_setparam`, :func:`sched_setscheduler`, and :func:`sched_getparam`. It " "is immutable." msgstr "" -#: library/os.rst:5495 +#: library/os.rst:5498 msgid "At the moment, there is only one possible parameter:" msgstr "" -#: library/os.rst:5499 +#: library/os.rst:5502 msgid "The scheduling priority for a scheduling policy." msgstr "" -#: library/os.rst:5504 +#: library/os.rst:5507 msgid "" "Get the minimum priority value for *policy*. *policy* is one of the " "scheduling policy constants above." msgstr "" -#: library/os.rst:5510 +#: library/os.rst:5513 msgid "" "Get the maximum priority value for *policy*. *policy* is one of the " "scheduling policy constants above." msgstr "" -#: library/os.rst:5516 +#: library/os.rst:5519 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 "" -#: library/os.rst:5523 +#: library/os.rst:5526 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 "" -#: library/os.rst:5530 +#: library/os.rst:5533 msgid "" "Set the scheduling parameters for the process with PID *pid*. A *pid* of 0 " "means the calling process. *param* is a :class:`sched_param` instance." msgstr "" -#: library/os.rst:5536 +#: library/os.rst:5539 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 "" -#: library/os.rst:5542 +#: library/os.rst:5545 msgid "" "Return the round-robin quantum in seconds for the process with PID *pid*. A " "*pid* of 0 means the calling process." msgstr "" -#: library/os.rst:5548 +#: library/os.rst:5551 msgid "" "Voluntarily relinquish the CPU. See :manpage:`sched_yield(2)` for details." msgstr "" -#: library/os.rst:5553 +#: library/os.rst:5556 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 "" -#: library/os.rst:5560 +#: library/os.rst:5563 msgid "Return the set of CPUs the process with PID *pid* is restricted to." msgstr "" -#: library/os.rst:5562 +#: library/os.rst:5565 msgid "" "If *pid* is zero, return the set of CPUs the calling thread of the current " "process is restricted to." msgstr "" -#: library/os.rst:5565 +#: library/os.rst:5568 msgid "See also the :func:`process_cpu_count` function." msgstr "" -#: library/os.rst:5571 +#: library/os.rst:5574 msgid "Miscellaneous System Information" msgstr "" -#: library/os.rst:5576 +#: library/os.rst:5579 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 " @@ -6113,13 +6118,13 @@ msgid "" "included in that mapping, passing an integer for *name* is also accepted." msgstr "" -#: library/os.rst:5584 +#: library/os.rst:5587 msgid "" "If the configuration value specified by *name* isn't defined, ``None`` is " "returned." msgstr "" -#: library/os.rst:5587 +#: library/os.rst:5590 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 " @@ -6127,62 +6132,62 @@ msgid "" "`errno.EINVAL` for the error number." msgstr "" -#: library/os.rst:5597 +#: library/os.rst:5600 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 "" -#: library/os.rst:5606 +#: library/os.rst:5609 msgid "" "Return the number of logical CPUs in the **system**. Returns ``None`` if " "undetermined." msgstr "" -#: library/os.rst:5609 +#: library/os.rst:5612 msgid "" "The :func:`process_cpu_count` function can be used to get the number of " "logical CPUs usable by the calling thread of the **current process**." msgstr "" -#: library/os.rst:5614 +#: library/os.rst:5617 msgid "" "If :option:`-X cpu_count <-X>` is given or :envvar:`PYTHON_CPU_COUNT` is " "set, :func:`cpu_count` returns the overridden value *n*." msgstr "" -#: library/os.rst:5621 +#: library/os.rst:5624 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 "" -#: library/os.rst:5630 +#: library/os.rst:5633 msgid "" "Get the number of logical CPUs usable by the calling thread of the **current " "process**. Returns ``None`` if undetermined. It can be less than :func:" "`cpu_count` depending on the CPU affinity." msgstr "" -#: library/os.rst:5634 +#: library/os.rst:5637 msgid "" "The :func:`cpu_count` function can be used to get the number of logical CPUs " "in the **system**." msgstr "" -#: library/os.rst:5637 +#: library/os.rst:5640 msgid "" "If :option:`-X cpu_count <-X>` is given or :envvar:`PYTHON_CPU_COUNT` is " "set, :func:`process_cpu_count` returns the overridden value *n*." msgstr "" -#: library/os.rst:5640 +#: library/os.rst:5643 msgid "See also the :func:`sched_getaffinity` function." msgstr "" -#: library/os.rst:5647 +#: library/os.rst:5650 msgid "" "Return integer-valued system configuration values. If the configuration " "value specified by *name* isn't defined, ``-1`` is returned. The comments " @@ -6191,44 +6196,44 @@ msgid "" "``sysconf_names``." msgstr "" -#: library/os.rst:5657 +#: library/os.rst:5660 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 "" -#: library/os.rst:5663 +#: library/os.rst:5666 msgid "Add ``'SC_MINSIGSTKSZ'`` name." msgstr "" -#: library/os.rst:5666 +#: library/os.rst:5669 msgid "" "The following data values are used to support path manipulation operations. " "These are defined for all platforms." msgstr "" -#: library/os.rst:5669 +#: library/os.rst:5672 msgid "" "Higher-level operations on pathnames are defined in the :mod:`os.path` " "module." msgstr "" -#: library/os.rst:5675 +#: library/os.rst:5678 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 "" -#: library/os.rst:5683 +#: library/os.rst:5686 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 "" -#: library/os.rst:5692 +#: library/os.rst:5695 msgid "" "The character used by the operating system to separate pathname components. " "This is ``'/'`` for POSIX and ``'\\\\'`` for Windows. Note that knowing " @@ -6237,7 +6242,7 @@ msgid "" "useful. Also available via :mod:`os.path`." msgstr "" -#: library/os.rst:5702 +#: library/os.rst:5705 msgid "" "An alternative character used by the operating system to separate pathname " "components, or ``None`` if only one separator character exists. This is set " @@ -6245,27 +6250,27 @@ msgid "" "via :mod:`os.path`." msgstr "" -#: library/os.rst:5711 +#: library/os.rst:5714 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 "" -#: library/os.rst:5719 +#: library/os.rst:5722 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 "" -#: library/os.rst:5726 +#: library/os.rst:5729 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 "" -#: library/os.rst:5733 +#: library/os.rst:5736 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 " @@ -6274,36 +6279,36 @@ msgid "" "default); use a single ``'\\n'`` instead, on all platforms." msgstr "" -#: library/os.rst:5742 +#: library/os.rst:5745 msgid "" "The file path of the null device. For example: ``'/dev/null'`` for POSIX, " "``'nul'`` for Windows. Also available via :mod:`os.path`." msgstr "" -#: library/os.rst:5753 +#: library/os.rst:5756 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 "" -#: library/os.rst:5761 +#: library/os.rst:5764 msgid "Random numbers" msgstr "" -#: library/os.rst:5766 +#: library/os.rst:5769 msgid "" "Get up to *size* random bytes. The function can return less bytes than " "requested." msgstr "" -#: library/os.rst:5769 +#: library/os.rst:5772 msgid "" "These bytes can be used to seed user-space random number generators or for " "cryptographic purposes." msgstr "" -#: library/os.rst:5772 +#: library/os.rst:5775 msgid "" "``getrandom()`` relies on entropy gathered from device drivers and other " "sources of environmental noise. Unnecessarily reading large quantities of " @@ -6311,32 +6316,32 @@ msgid "" "``/dev/urandom`` devices." msgstr "" -#: library/os.rst:5777 +#: library/os.rst:5780 msgid "" "The flags argument is a bit mask that can contain zero or more of the " "following values ORed together: :py:const:`os.GRND_RANDOM` and :py:data:" "`GRND_NONBLOCK`." msgstr "" -#: library/os.rst:5781 +#: library/os.rst:5784 msgid "" "See also the `Linux getrandom() manual page `_." msgstr "" -#: library/os.rst:5790 +#: library/os.rst:5793 msgid "" "Return a bytestring of *size* random bytes suitable for cryptographic use." msgstr "" -#: library/os.rst:5792 +#: library/os.rst:5795 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 "" -#: library/os.rst:5796 +#: library/os.rst:5799 msgid "" "On Linux, if the ``getrandom()`` syscall is available, it is used in " "blocking mode: block until the system urandom entropy pool is initialized " @@ -6346,63 +6351,63 @@ msgid "" "to poll until the system urandom entropy pool is initialized." msgstr "" -#: library/os.rst:5803 +#: library/os.rst:5806 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 "" -#: library/os.rst:5807 +#: library/os.rst:5810 msgid "On Windows, it will use ``BCryptGenRandom()``." msgstr "" -#: library/os.rst:5810 +#: library/os.rst:5813 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 "" -#: library/os.rst:5814 +#: library/os.rst:5817 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 "" -#: library/os.rst:5820 +#: library/os.rst:5823 msgid "" "On Linux, if the ``getrandom()`` syscall blocks (the urandom entropy pool is " "not initialized yet), fall back on reading ``/dev/urandom``." msgstr "" -#: library/os.rst:5824 +#: library/os.rst:5827 msgid "" "On Linux, ``getrandom()`` is now used in blocking mode to increase the " "security." msgstr "" -#: library/os.rst:5828 +#: library/os.rst:5831 msgid "" "On Windows, ``BCryptGenRandom()`` is used instead of ``CryptGenRandom()`` " "which is deprecated." msgstr "" -#: library/os.rst:5834 +#: library/os.rst:5837 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 "" -#: library/os.rst:5838 +#: library/os.rst:5841 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 "" -#: library/os.rst:5845 +#: library/os.rst:5848 msgid "" "If this bit is set, then random bytes are drawn from the ``/dev/" "random`` pool instead of the ``/dev/urandom`` pool." @@ -6416,7 +6421,7 @@ msgstr "" msgid "effective id" msgstr "" -#: library/os.rst:461 library/os.rst:479 library/os.rst:691 library/os.rst:4623 +#: library/os.rst:461 library/os.rst:479 library/os.rst:691 library/os.rst:4626 msgid "process" msgstr "" @@ -6468,7 +6473,7 @@ msgstr "" msgid "pty" msgstr "" -#: library/os.rst:2531 library/os.rst:3636 library/os.rst:3736 +#: library/os.rst:2531 library/os.rst:3639 library/os.rst:3739 msgid "directory" msgstr "" @@ -6492,54 +6497,54 @@ msgstr "" msgid "stat" msgstr "" -#: library/os.rst:3736 +#: library/os.rst:3739 msgid "walking" msgstr "" -#: library/os.rst:3736 +#: library/os.rst:3739 msgid "traversal" msgstr "" -#: library/os.rst:4623 +#: library/os.rst:4626 msgid "killing" msgstr "" -#: library/os.rst:4623 +#: library/os.rst:4626 msgid "signalling" msgstr "" -#: library/os.rst:5708 +#: library/os.rst:5711 msgid ". (dot)" msgstr "" -#: library/os.rst:5680 library/os.rst:5699 library/os.rst:5708 +#: library/os.rst:5683 library/os.rst:5702 library/os.rst:5711 msgid "in pathnames" msgstr "" -#: library/os.rst:5680 +#: library/os.rst:5683 msgid ".." msgstr "" -#: library/os.rst:5699 +#: library/os.rst:5702 msgid "/ (slash)" msgstr "" -#: library/os.rst:5689 +#: library/os.rst:5692 msgid "\\ (backslash)" msgstr "" -#: library/os.rst:5689 +#: library/os.rst:5692 msgid "in pathnames (Windows)" msgstr "" -#: library/os.rst:5715 +#: library/os.rst:5718 msgid ": (colon)" msgstr "" -#: library/os.rst:5715 +#: library/os.rst:5718 msgid "path separator (POSIX)" msgstr "" -#: library/os.rst:5715 +#: library/os.rst:5718 msgid "; (semicolon)" msgstr "" diff --git a/library/ossaudiodev.po b/library/ossaudiodev.po index 7a0f3d37..0bad4be3 100644 --- a/library/ossaudiodev.po +++ b/library/ossaudiodev.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/pathlib.po b/library/pathlib.po index 88a212c9..3054a17a 100644 --- a/library/pathlib.po +++ b/library/pathlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -465,7 +465,7 @@ msgstr "" #: library/pathlib.rst:313 msgid "" "The implementation of the :mod:`os.path` module used for low-level path " -"parsing and joining: either :mod:`posixpath` or :mod:`ntpath`." +"parsing and joining: either :mod:`!posixpath` or :mod:`!ntpath`." msgstr "" #: library/pathlib.rst:320 @@ -2795,7 +2795,7 @@ msgstr "" msgid "" "If *follow_symlinks* is ``False``, return ``True`` only if the path is a " "file (without following symlinks); return ``False`` if the path is a " -"directory or other other non-file, or if it doesn't exist." +"directory or other non-file, or if it doesn't exist." msgstr "" #: library/pathlib.rst:1992 diff --git a/library/pdb.po b/library/pdb.po index 1eb9a4c1..6442410b 100644 --- a/library/pdb.po +++ b/library/pdb.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -123,17 +123,21 @@ msgid "" "arguments of the ``p`` command." msgstr "" -#: library/pdb.rst:80 +#: library/pdb.rst:81 +msgid "Command-line interface" +msgstr "" + +#: library/pdb.rst:85 msgid "" "You can also invoke :mod:`pdb` from the command line to debug other " "scripts. For example::" msgstr "" -#: library/pdb.rst:83 +#: library/pdb.rst:88 msgid "python -m pdb [-c command] (-m module | -p pid | pyfile) [args ...]" msgstr "" -#: library/pdb.rst:85 +#: library/pdb.rst:90 msgid "" "When invoked as a module, pdb will automatically enter post-mortem debugging " "if the program being debugged exits abnormally. After post-mortem debugging " @@ -142,52 +146,52 @@ msgid "" "cases is more useful than quitting the debugger upon program's exit." msgstr "" -#: library/pdb.rst:93 +#: library/pdb.rst:98 msgid "" "To execute commands as if given in a :file:`.pdbrc` file; see :ref:`debugger-" "commands`." msgstr "" -#: library/pdb.rst:96 +#: library/pdb.rst:101 msgid "Added the ``-c`` option." msgstr "" -#: library/pdb.rst:101 +#: library/pdb.rst:106 msgid "" "To execute modules similar to the way ``python -m`` does. As with a script, " "the debugger will pause execution just before the first line of the module." msgstr "" -#: library/pdb.rst:104 +#: library/pdb.rst:109 msgid "Added the ``-m`` option." msgstr "" -#: library/pdb.rst:109 +#: library/pdb.rst:114 msgid "Attach to the process with the specified PID." msgstr "" -#: library/pdb.rst:114 +#: library/pdb.rst:119 msgid "" "To attach to a running Python process for remote debugging, use the ``-p`` " "or ``--pid`` option with the target process's PID::" msgstr "" -#: library/pdb.rst:117 +#: library/pdb.rst:122 msgid "python -m pdb -p 1234" msgstr "" -#: library/pdb.rst:121 +#: library/pdb.rst:126 msgid "" "Attaching to a process that is blocked in a system call or waiting for I/O " "will only work once the next bytecode instruction is executed or when the " "process receives a signal." msgstr "" -#: library/pdb.rst:125 +#: library/pdb.rst:130 msgid "Typical usage to execute a statement under control of the debugger is::" msgstr "" -#: library/pdb.rst:127 +#: library/pdb.rst:132 msgid "" ">>> import pdb\n" ">>> def f(x):\n" @@ -199,11 +203,11 @@ msgid "" ">>>" msgstr "" -#: library/pdb.rst:136 +#: library/pdb.rst:141 msgid "The typical usage to inspect a crashed program is::" msgstr "" -#: library/pdb.rst:138 +#: library/pdb.rst:143 msgid "" ">>> import pdb\n" ">>> def f(x):\n" @@ -221,20 +225,20 @@ msgid "" "(Pdb)" msgstr "" -#: library/pdb.rst:153 +#: library/pdb.rst:158 msgid "" "The implementation of :pep:`667` means that name assignments made via " "``pdb`` will immediately affect the active scope, even when running inside " "an :term:`optimized scope`." msgstr "" -#: library/pdb.rst:159 +#: library/pdb.rst:164 msgid "" "The module defines the following functions; each enters the debugger in a " "slightly different way:" msgstr "" -#: library/pdb.rst:164 +#: library/pdb.rst:169 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 " @@ -246,14 +250,14 @@ msgid "" "`exec` or :func:`eval` functions.)" msgstr "" -#: library/pdb.rst:176 +#: library/pdb.rst:181 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 "" -#: library/pdb.rst:183 +#: library/pdb.rst:188 msgid "" "Call the *function* (a function or method object, not a string) with the " "given arguments. When :func:`runcall` returns, it returns whatever the " @@ -261,7 +265,7 @@ msgid "" "is entered." msgstr "" -#: library/pdb.rst:191 +#: library/pdb.rst:196 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 " @@ -271,55 +275,55 @@ msgid "" "starts." msgstr "" -#: library/pdb.rst:199 +#: library/pdb.rst:204 msgid "The keyword-only argument *header*." msgstr "" -#: library/pdb.rst:202 +#: library/pdb.rst:207 msgid "" ":func:`set_trace` will enter the debugger immediately, rather than on the " "next line of code to be executed." msgstr "" -#: library/pdb.rst:206 +#: library/pdb.rst:211 msgid "The *commands* argument." msgstr "" -#: library/pdb.rst:212 +#: library/pdb.rst:217 msgid "" "async version of :func:`set_trace`. This function should be used inside an " "async function with :keyword:`await`." msgstr "" -#: library/pdb.rst:215 +#: library/pdb.rst:220 msgid "" "async def f():\n" " await pdb.set_trace_async()" msgstr "" -#: library/pdb.rst:220 +#: library/pdb.rst:225 msgid "" ":keyword:`await` statements are supported if the debugger is invoked by this " "function." msgstr "" -#: library/pdb.rst:226 +#: library/pdb.rst:231 msgid "" "Enter post-mortem debugging of the given exception or :ref:`traceback object " "`. If no value is given, it uses the exception that is " "currently being handled, or raises ``ValueError`` if there isn’t one." msgstr "" -#: library/pdb.rst:231 +#: library/pdb.rst:236 msgid "Support for exception objects was added." msgstr "" -#: library/pdb.rst:236 +#: library/pdb.rst:241 msgid "" "Enter post-mortem debugging of the exception found in :data:`sys.last_exc`." msgstr "" -#: library/pdb.rst:241 +#: library/pdb.rst:246 msgid "" "There are two supported backends for pdb: ``'settrace'`` and " "``'monitoring'``. See :class:`bdb.Bdb` for details. The user can set the " @@ -327,41 +331,41 @@ msgid "" "If no backend is specified, the default is ``'settrace'``." msgstr "" -#: library/pdb.rst:248 +#: library/pdb.rst:253 msgid "" ":func:`breakpoint` and :func:`set_trace` will not be affected by this " "function. They always use ``'monitoring'`` backend." msgstr "" -#: library/pdb.rst:255 +#: library/pdb.rst:260 msgid "Returns the default backend for pdb." msgstr "" -#: library/pdb.rst:259 +#: library/pdb.rst:264 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 "" -#: library/pdb.rst:266 +#: library/pdb.rst:271 msgid ":class:`Pdb` is the debugger class." msgstr "" -#: library/pdb.rst:268 +#: library/pdb.rst:273 msgid "" "The *completekey*, *stdin* and *stdout* arguments are passed to the " "underlying :class:`cmd.Cmd` class; see the description there." msgstr "" -#: library/pdb.rst:271 +#: library/pdb.rst:276 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 "" -#: library/pdb.rst:275 +#: library/pdb.rst:280 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 :pdbcmd:" @@ -370,13 +374,13 @@ msgid "" "set *nosigint* to true." msgstr "" -#: library/pdb.rst:280 +#: library/pdb.rst:285 msgid "" "The *readrc* argument defaults to true and controls whether Pdb will load ." "pdbrc files from the filesystem." msgstr "" -#: library/pdb.rst:283 +#: library/pdb.rst:288 msgid "" "The *mode* argument specifies how the debugger was invoked. It impacts the " "workings of some debugger commands. Valid values are ``'inline'`` (used by " @@ -385,7 +389,7 @@ msgid "" "argument was added)." msgstr "" -#: library/pdb.rst:290 +#: library/pdb.rst:295 msgid "" "The *backend* argument specifies the backend to use for the debugger. If " "``None`` is passed, the default backend will be used. See :func:" @@ -393,68 +397,68 @@ msgid "" "and ``'monitoring'``." msgstr "" -#: library/pdb.rst:294 +#: library/pdb.rst:299 msgid "" "The *colorize* argument, if set to ``True``, will enable colorized output in " "the debugger, if color is supported. This will highlight source code " "displayed in pdb." msgstr "" -#: library/pdb.rst:297 +#: library/pdb.rst:302 msgid "Example call to enable tracing with *skip*::" msgstr "" -#: library/pdb.rst:299 +#: library/pdb.rst:304 msgid "import pdb; pdb.Pdb(skip=['django.*']).set_trace()" msgstr "" -#: library/pdb.rst:301 +#: library/pdb.rst:306 msgid "" "Raises an :ref:`auditing event ` ``pdb.Pdb`` with no arguments." msgstr "" -#: library/pdb.rst:303 +#: library/pdb.rst:308 msgid "Added the *skip* parameter." msgstr "" -#: library/pdb.rst:306 +#: library/pdb.rst:311 msgid "" "Added the *nosigint* parameter. Previously, a SIGINT handler was never set " "by Pdb." msgstr "" -#: library/pdb.rst:310 +#: library/pdb.rst:315 msgid "The *readrc* argument." msgstr "" -#: library/pdb.rst:313 +#: library/pdb.rst:318 msgid "Added the *mode* argument." msgstr "" -#: library/pdb.rst:316 +#: library/pdb.rst:321 msgid "Added the *backend* argument." msgstr "" -#: library/pdb.rst:319 +#: library/pdb.rst:324 msgid "Added the *colorize* argument." msgstr "" -#: library/pdb.rst:322 +#: library/pdb.rst:327 msgid "" "Inline breakpoints like :func:`breakpoint` or :func:`pdb.set_trace` will " "always stop the program at calling frame, ignoring the *skip* pattern (if " "any)." msgstr "" -#: library/pdb.rst:331 +#: library/pdb.rst:336 msgid "See the documentation for the functions explained above." msgstr "" -#: library/pdb.rst:337 -msgid "Debugger Commands" +#: library/pdb.rst:342 +msgid "Debugger commands" msgstr "" -#: library/pdb.rst:339 +#: library/pdb.rst:344 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 " @@ -466,13 +470,13 @@ msgid "" "are separated by a vertical bar (``|``)." msgstr "" -#: library/pdb.rst:348 +#: library/pdb.rst:353 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 "" -#: library/pdb.rst:351 +#: library/pdb.rst:356 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. " @@ -483,20 +487,20 @@ msgid "" "is not changed." msgstr "" -#: library/pdb.rst:359 +#: library/pdb.rst:364 msgid "" "Expressions/Statements whose prefix is a pdb command are now correctly " "identified and executed." msgstr "" -#: library/pdb.rst:363 +#: library/pdb.rst:368 msgid "" "The debugger supports :ref:`aliases `. Aliases can have " "parameters which allows one a certain level of adaptability to the context " "under examination." msgstr "" -#: library/pdb.rst:367 +#: library/pdb.rst:372 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 " @@ -507,7 +511,7 @@ msgid "" "\"\";\"``." msgstr "" -#: library/pdb.rst:374 +#: library/pdb.rst:379 msgid "" "To set a temporary global variable, use a *convenience variable*. A " "*convenience variable* is a variable whose name starts with ``$``. For " @@ -517,35 +521,35 @@ msgid "" "compared to using normal variables like ``foo = 1``." msgstr "" -#: library/pdb.rst:381 +#: library/pdb.rst:386 msgid "There are four preset *convenience variables*:" msgstr "" -#: library/pdb.rst:383 +#: library/pdb.rst:388 msgid "``$_frame``: the current frame you are debugging" msgstr "" -#: library/pdb.rst:384 +#: library/pdb.rst:389 msgid "``$_retval``: the return value if the frame is returning" msgstr "" -#: library/pdb.rst:385 +#: library/pdb.rst:390 msgid "``$_exception``: the exception if the frame is raising an exception" msgstr "" -#: library/pdb.rst:386 +#: library/pdb.rst:391 msgid "``$_asynctask``: the asyncio task if pdb stops in an async function" msgstr "" -#: library/pdb.rst:390 +#: library/pdb.rst:395 msgid "Added the *convenience variable* feature." msgstr "" -#: library/pdb.rst:392 +#: library/pdb.rst:397 msgid "Added the ``$_asynctask`` convenience variable." msgstr "" -#: library/pdb.rst:399 +#: library/pdb.rst:404 msgid "" "If a file :file:`.pdbrc` exists in the user's home directory or in the " "current directory, it is read with ``'utf-8'`` encoding and executed as if " @@ -555,20 +559,20 @@ msgid "" "read first and aliases defined there can be overridden by the local file." msgstr "" -#: library/pdb.rst:406 +#: library/pdb.rst:411 msgid "" ":file:`.pdbrc` can now contain commands that continue debugging, such as :" "pdbcmd:`continue` or :pdbcmd:`next`. Previously, these commands had no " "effect." msgstr "" -#: library/pdb.rst:411 +#: library/pdb.rst:416 msgid "" ":file:`.pdbrc` is now read with ``'utf-8'`` encoding. Previously, it was " "read with the system locale encoding." msgstr "" -#: library/pdb.rst:418 +#: library/pdb.rst:423 msgid "" "Without argument, print the list of available commands. With a *command* as " "argument, print help about that command. ``help pdb`` displays the full " @@ -577,7 +581,7 @@ msgid "" "the ``!`` command." msgstr "" -#: library/pdb.rst:426 +#: library/pdb.rst:431 msgid "" "Print a stack trace, with the most recent frame at the bottom. if *count* " "is 0, print the current frame entry. If *count* is negative, print the least " @@ -586,23 +590,23 @@ msgid "" "determines the context of most commands." msgstr "" -#: library/pdb.rst:432 +#: library/pdb.rst:437 msgid "*count* argument is added." msgstr "" -#: library/pdb.rst:437 +#: library/pdb.rst:442 msgid "" "Move the current frame *count* (default one) levels down in the stack trace " "(to a newer frame)." msgstr "" -#: library/pdb.rst:442 +#: library/pdb.rst:447 msgid "" "Move the current frame *count* (default one) levels up in the stack trace " "(to an older frame)." msgstr "" -#: library/pdb.rst:447 +#: library/pdb.rst:452 msgid "" "With a *lineno* argument, set a break at line *lineno* in the current file. " "The line number may be prefixed with a *filename* and a colon, to specify a " @@ -611,46 +615,46 @@ msgid "" "abspath/to/file.py``, ``relpath/file.py``, ``module`` and ``package.module``." msgstr "" -#: library/pdb.rst:454 +#: library/pdb.rst:459 msgid "" "With a *function* argument, set a break at the first executable statement " "within that function. *function* can be any expression that evaluates to a " "function in the current namespace." msgstr "" -#: library/pdb.rst:458 +#: library/pdb.rst:463 msgid "" "If a second argument is present, it is an expression which must evaluate to " "true before the breakpoint is honored." msgstr "" -#: library/pdb.rst:461 +#: library/pdb.rst:466 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 "" -#: library/pdb.rst:465 +#: library/pdb.rst:470 msgid "" "Each breakpoint is assigned a number to which all the other breakpoint " "commands refer." msgstr "" -#: library/pdb.rst:470 +#: library/pdb.rst:475 msgid "" "Temporary breakpoint, which is removed automatically when it is first hit. " "The arguments are the same as for :pdbcmd:`break`." msgstr "" -#: library/pdb.rst:475 +#: library/pdb.rst:480 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 "" -#: library/pdb.rst:481 +#: library/pdb.rst:486 msgid "" "Disable the breakpoints given as a space separated list of breakpoint " "numbers. Disabling a breakpoint means it cannot cause the program to stop " @@ -658,11 +662,11 @@ msgid "" "breakpoints and can be (re-)enabled." msgstr "" -#: library/pdb.rst:488 +#: library/pdb.rst:493 msgid "Enable the breakpoints specified." msgstr "" -#: library/pdb.rst:492 +#: library/pdb.rst:497 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 " @@ -671,21 +675,21 @@ msgid "" "associated condition evaluates to true." msgstr "" -#: library/pdb.rst:500 +#: library/pdb.rst:505 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 "" -#: library/pdb.rst:506 +#: library/pdb.rst:511 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 "" -#: library/pdb.rst:510 +#: library/pdb.rst:515 msgid "" "(Pdb) commands 1\n" "(com) p some_variable\n" @@ -693,25 +697,25 @@ msgid "" "(Pdb)" msgstr "" -#: library/pdb.rst:515 +#: library/pdb.rst:520 msgid "" "To remove all commands from a breakpoint, type ``commands`` and follow it " "immediately with ``end``; that is, give no commands." msgstr "" -#: library/pdb.rst:518 +#: library/pdb.rst:523 msgid "" "With no *bpnumber* argument, ``commands`` refers to the last breakpoint set." msgstr "" -#: library/pdb.rst:520 +#: library/pdb.rst:525 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 "" -#: library/pdb.rst:524 +#: library/pdb.rst:529 msgid "" "Specifying any command resuming execution (currently :pdbcmd:`continue`, :" "pdbcmd:`step`, :pdbcmd:`next`, :pdbcmd:`return`, :pdbcmd:`until`, :pdbcmd:" @@ -722,26 +726,26 @@ msgid "" "to ambiguities about which list to execute." msgstr "" -#: library/pdb.rst:533 +#: library/pdb.rst:538 msgid "" "If the list of commands contains the ``silent`` command, or a command that " "resumes execution, then the breakpoint message containing information about " "the frame is not displayed." msgstr "" -#: library/pdb.rst:537 +#: library/pdb.rst:542 msgid "" "Frame information will not be displayed if a command that resumes execution " "is present in the command list." msgstr "" -#: library/pdb.rst:543 +#: library/pdb.rst:548 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 "" -#: library/pdb.rst:548 +#: library/pdb.rst:553 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 " @@ -750,46 +754,46 @@ msgid "" "line in the current function.)" msgstr "" -#: library/pdb.rst:556 +#: library/pdb.rst:561 msgid "" "Without argument, continue execution until the line with a number greater " "than the current one is reached." msgstr "" -#: library/pdb.rst:559 +#: library/pdb.rst:564 msgid "" "With *lineno*, continue execution until a line with a number greater or " "equal to *lineno* is reached. In both cases, also stop when the current " "frame returns." msgstr "" -#: library/pdb.rst:563 +#: library/pdb.rst:568 msgid "Allow giving an explicit line number." msgstr "" -#: library/pdb.rst:568 +#: library/pdb.rst:573 msgid "Continue execution until the current function returns." msgstr "" -#: library/pdb.rst:572 +#: library/pdb.rst:577 msgid "Continue execution, only stop when a breakpoint is encountered." msgstr "" -#: library/pdb.rst:576 +#: library/pdb.rst:581 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 "" -#: library/pdb.rst:580 +#: library/pdb.rst:585 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 "" -#: library/pdb.rst:586 +#: library/pdb.rst:591 msgid "" "List source code for the current file. Without arguments, list 11 lines " "around the current line or continue the previous listing. With ``.`` as " @@ -798,7 +802,7 @@ msgid "" "second argument is less than the first, it is interpreted as a count." msgstr "" -#: library/pdb.rst:592 +#: library/pdb.rst:597 msgid "" "The current line in the current frame is indicated by ``->``. If an " "exception is being debugged, the line where the exception was originally " @@ -806,67 +810,67 @@ msgid "" "line." msgstr "" -#: library/pdb.rst:597 +#: library/pdb.rst:602 msgid "Added the ``>>`` marker." msgstr "" -#: library/pdb.rst:602 +#: library/pdb.rst:607 msgid "" "List all source code for the current function or frame. Interesting lines " "are marked as for :pdbcmd:`list`." msgstr "" -#: library/pdb.rst:609 +#: library/pdb.rst:614 msgid "Print the arguments of the current function and their current values." msgstr "" -#: library/pdb.rst:613 +#: library/pdb.rst:618 msgid "Evaluate *expression* in the current context and print its value." msgstr "" -#: library/pdb.rst:617 +#: library/pdb.rst:622 msgid "" "``print()`` can also be used, but is not a debugger command --- this " "executes the Python :func:`print` function." msgstr "" -#: library/pdb.rst:623 +#: library/pdb.rst:628 msgid "" "Like the :pdbcmd:`p` command, except the value of *expression* is pretty-" "printed using the :mod:`pprint` module." msgstr "" -#: library/pdb.rst:628 +#: library/pdb.rst:633 msgid "Print the type of *expression*." msgstr "" -#: library/pdb.rst:632 +#: library/pdb.rst:637 msgid "Try to get source code of *expression* and display it." msgstr "" -#: library/pdb.rst:638 +#: library/pdb.rst:643 msgid "" "Display the value of *expression* if it changed, each time execution stops " "in the current frame." msgstr "" -#: library/pdb.rst:641 +#: library/pdb.rst:646 msgid "" "Without *expression*, list all display expressions for the current frame." msgstr "" -#: library/pdb.rst:645 +#: library/pdb.rst:650 msgid "" "Display evaluates *expression* and compares to the result of the previous " "evaluation of *expression*, so when the result is mutable, display may not " "be able to pick up the changes." msgstr "" -#: library/pdb.rst:814 +#: library/pdb.rst:819 msgid "Example::" msgstr "" -#: library/pdb.rst:651 +#: library/pdb.rst:656 msgid "" "lst = []\n" "breakpoint()\n" @@ -875,13 +879,13 @@ msgid "" "print(lst)" msgstr "" -#: library/pdb.rst:657 +#: library/pdb.rst:662 msgid "" "Display won't realize ``lst`` has been changed because the result of " "evaluation is modified in place by ``lst.append(1)`` before being compared::" msgstr "" -#: library/pdb.rst:660 +#: library/pdb.rst:665 msgid "" "> example.py(3)()\n" "-> pass\n" @@ -896,11 +900,11 @@ msgid "" "(Pdb)" msgstr "" -#: library/pdb.rst:672 +#: library/pdb.rst:677 msgid "You can do some tricks with copy mechanism to make it work::" msgstr "" -#: library/pdb.rst:674 +#: library/pdb.rst:679 msgid "" "> example.py(3)()\n" "-> pass\n" @@ -916,13 +920,13 @@ msgid "" "(Pdb)" msgstr "" -#: library/pdb.rst:691 +#: library/pdb.rst:696 msgid "" "Do not display *expression* anymore in the current frame. Without " "*expression*, clear all display expressions for the current frame." msgstr "" -#: library/pdb.rst:698 +#: library/pdb.rst:703 msgid "" "Start an interactive interpreter (using the :mod:`code` module) in a new " "global namespace initialised from the local and global namespaces for the " @@ -930,7 +934,7 @@ msgid "" "return to the debugger." msgstr "" -#: library/pdb.rst:705 +#: library/pdb.rst:710 msgid "" "As ``interact`` creates a new dedicated namespace for code execution, " "assignments to variables will not affect the original namespaces. However, " @@ -938,18 +942,18 @@ msgid "" "original namespaces as usual." msgstr "" -#: library/pdb.rst:712 +#: library/pdb.rst:717 msgid "" "``exit()`` and ``quit()`` can be used to exit the :pdbcmd:`interact` command." msgstr "" -#: library/pdb.rst:716 +#: library/pdb.rst:721 msgid "" ":pdbcmd:`interact` directs its output to the debugger's output channel " "rather than :data:`sys.stderr`." msgstr "" -#: library/pdb.rst:724 +#: library/pdb.rst:729 msgid "" "Create an alias called *name* that executes *command*. The *command* must " "*not* be enclosed in quotes. Replaceable parameters can be indicated by " @@ -958,7 +962,7 @@ msgid "" "If no arguments are given, all aliases are listed." msgstr "" -#: library/pdb.rst:730 +#: library/pdb.rst:735 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 " @@ -967,13 +971,13 @@ msgid "" "other words in the line are left alone." msgstr "" -#: library/pdb.rst:736 +#: library/pdb.rst:741 msgid "" "As an example, here are two useful aliases (especially when placed in the :" "file:`.pdbrc` file)::" msgstr "" -#: library/pdb.rst:739 +#: library/pdb.rst:744 msgid "" "# Print instance variables (usage \"pi classInst\")\n" "alias pi for k in %1.__dict__.keys(): print(f\"%1.{k} = {%1.__dict__[k]}\")\n" @@ -981,36 +985,36 @@ msgid "" "alias ps pi self" msgstr "" -#: library/pdb.rst:746 +#: library/pdb.rst:751 msgid "Delete the specified alias *name*." msgstr "" -#: library/pdb.rst:750 +#: library/pdb.rst:755 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, e.g.:" msgstr "" -#: library/pdb.rst:754 +#: library/pdb.rst:759 msgid "" "(Pdb) ! n=42\n" "(Pdb)" msgstr "" -#: library/pdb.rst:759 +#: library/pdb.rst:764 msgid "" "To set a global variable, you can prefix the assignment command with a :" "keyword:`global` statement on the same line, e.g.:" msgstr "" -#: library/pdb.rst:762 +#: library/pdb.rst:767 msgid "" "(Pdb) global list_options; list_options = ['-l']\n" "(Pdb)" msgstr "" -#: library/pdb.rst:770 +#: library/pdb.rst:775 msgid "" "Restart the debugged Python program. If *args* is supplied, it is split " "with :mod:`shlex` and the result is used as the new :data:`sys.argv`. " @@ -1018,26 +1022,26 @@ msgid "" "`restart` is an alias for :pdbcmd:`run`." msgstr "" -#: library/pdb.rst:775 +#: library/pdb.rst:780 msgid "" ":pdbcmd:`run` and :pdbcmd:`restart` commands are disabled when the debugger " "is invoked in ``'inline'`` mode." msgstr "" -#: library/pdb.rst:781 +#: library/pdb.rst:786 msgid "" "Quit from the debugger. The program being executed is aborted. An end-of-" "file input is equivalent to :pdbcmd:`quit`." msgstr "" -#: library/pdb.rst:784 +#: library/pdb.rst:789 msgid "" "A confirmation prompt will be shown if the debugger is invoked in " "``'inline'`` mode. Either ``y``, ``Y``, ```` or ``EOF`` will confirm " "the quit." msgstr "" -#: library/pdb.rst:788 +#: library/pdb.rst:793 msgid "" "A confirmation prompt will be shown if the debugger is invoked in " "``'inline'`` mode. After the confirmation, the debugger will call :func:`sys." @@ -1045,21 +1049,21 @@ msgid "" "event." msgstr "" -#: library/pdb.rst:796 +#: library/pdb.rst:801 msgid "" "Enter a recursive debugger that steps through *code* (which is an arbitrary " "expression or statement to be executed in the current environment)." msgstr "" -#: library/pdb.rst:802 +#: library/pdb.rst:807 msgid "Print the return value for the last return of the current function." msgstr "" -#: library/pdb.rst:806 +#: library/pdb.rst:811 msgid "List or jump between chained exceptions." msgstr "" -#: library/pdb.rst:808 +#: library/pdb.rst:813 msgid "" "When using ``pdb.pm()`` or ``Pdb.post_mortem(...)`` with a chained " "exception instead of a traceback, it allows the user to move between the " @@ -1067,7 +1071,7 @@ msgid "" "``exceptions `` to switch to that exception." msgstr "" -#: library/pdb.rst:816 +#: library/pdb.rst:821 msgid "" "def out():\n" " try:\n" @@ -1087,11 +1091,11 @@ msgid "" " out()" msgstr "" -#: library/pdb.rst:833 +#: library/pdb.rst:838 msgid "calling ``pdb.pm()`` will allow to move between exceptions::" msgstr "" -#: library/pdb.rst:835 +#: library/pdb.rst:840 msgid "" "> example.py(5)out()\n" "-> raise ValueError(\"reraise middle() error\") from e\n" @@ -1110,11 +1114,11 @@ msgid "" "-> return inner(0)" msgstr "" -#: library/pdb.rst:854 +#: library/pdb.rst:859 msgid "Footnotes" msgstr "" -#: library/pdb.rst:855 +#: library/pdb.rst:860 msgid "" "Whether a frame is considered to originate in a certain module is determined " "by the ``__name__`` in the frame globals." @@ -1140,18 +1144,18 @@ msgstr "" msgid "cmd" msgstr "" -#: library/pdb.rst:395 +#: library/pdb.rst:400 msgid ".pdbrc" msgstr "" -#: library/pdb.rst:395 +#: library/pdb.rst:400 msgid "file" msgstr "" -#: library/pdb.rst:395 +#: library/pdb.rst:400 msgid "debugger" msgstr "" -#: library/pdb.rst:395 +#: library/pdb.rst:400 msgid "configuration" msgstr "" diff --git a/library/persistence.po b/library/persistence.po index 620fcb99..8a2e6d13 100644 --- a/library/persistence.po +++ b/library/persistence.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/pickle.po b/library/pickle.po index 5ea22a99..ad604a0f 100644 --- a/library/pickle.po +++ b/library/pickle.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -996,10 +996,10 @@ msgid "" "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 :" -"ref:`append and 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.)" +"meth:`~sequence.append` and :meth:`~sequence.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 "" #: library/pickle.rst:741 diff --git a/library/pickletools.po b/library/pickletools.po index b9197d2c..08b72c22 100644 --- a/library/pickletools.po +++ b/library/pickletools.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/pipes.po b/library/pipes.po index cf1765de..0d30f4af 100644 --- a/library/pipes.po +++ b/library/pipes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/pkgutil.po b/library/pkgutil.po index 06faa366..7c99c995 100644 --- a/library/pkgutil.po +++ b/library/pkgutil.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/platform.po b/library/platform.po index d99d73f1..9f35a7ea 100644 --- a/library/platform.po +++ b/library/platform.po @@ -8,14 +8,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-05-10 22:38+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-12-01 00:05+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.6\n" #: library/platform.rst:2 msgid ":mod:`!platform` --- Access to underlying platform's identifying data" @@ -111,7 +112,15 @@ msgstr "" "Επιστρέφει τον τύπο του μηχανήματος, π.χ. ``'AMD64'``. Επιστρέφει μια κενή " "συμβολοσειρά αν η τιμή δεν μπορεί να προσδιοριστεί." -#: library/platform.rst:62 +#: library/platform.rst:59 +msgid "" +"The output is platform-dependent and may differ in casing and naming " +"conventions." +msgstr "" +"Η έξοδος εξαρτάται από την πλατφόρμα και μπορεί να διαφέρει ως προς τα κεφαλαία/πεζά και τις " +"συμβάσεις ονοματοδοσίας." + +#: library/platform.rst:64 msgid "" "Returns the computer's network name (may not be fully qualified!). An empty " "string is returned if the value cannot be determined." @@ -120,7 +129,7 @@ msgstr "" "καθορισμένο!). Επιστρέφει μια κενή συμβολοσειρά, αν η τιμή δεν μπορεί να " "προσδιοριστεί." -#: library/platform.rst:68 +#: library/platform.rst:70 msgid "" "Returns a single string identifying the underlying platform with as much " "useful information as possible." @@ -128,7 +137,7 @@ msgstr "" "Επιστρέφει μια συμβολοσειρά που προσδιορίζει την υποκείμενη πλατφόρμα με όσο " "το δυνατόν περισσότερες χρήσιμες πληροφορίες." -#: library/platform.rst:71 +#: library/platform.rst:73 msgid "" "The output is intended to be *human readable* rather than machine parseable. " "It may look different on different platforms and this is intended." @@ -137,7 +146,7 @@ msgstr "" "αναγνώσιμη από μηχανή. Μπορεί να φαίνεται διαφορετική σε διαφορετικές " "πλατφόρμες και αυτό είναι σκόπιμο." -#: library/platform.rst:74 +#: library/platform.rst:76 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 " @@ -149,7 +158,7 @@ msgstr "" "κοινά τους ονόματα, για παράδειγμα το SunOS θα αναφέρεται ως Solaris. Η " "συνάρτηση :func:`system_alias` χρησιμοποιείται για την υλοποίηση αυτού." -#: library/platform.rst:79 +#: library/platform.rst:81 msgid "" "Setting *terse* to true causes the function to return only the absolute " "minimum information needed to identify the platform." @@ -157,7 +166,7 @@ msgstr "" "Αν το *terse* οριστεί σε αληθές, η συνάρτηση επιστρέφει μόνο τις απολύτως " "απαραίτητες πληροφορίες για την αναγνώριση της πλατφόρμας." -#: library/platform.rst:82 +#: library/platform.rst:84 msgid "" "On macOS, the function now uses :func:`mac_ver`, if it returns a non-empty " "release string, to get the macOS version rather than the darwin version." @@ -166,11 +175,11 @@ msgstr "" "επιστρέψει μη κενή συμβολοσειρά έκδοσης, για να λάβει την έκδοση του macOS " "αντί για την έκδοση Darwin." -#: library/platform.rst:90 +#: library/platform.rst:92 msgid "Returns the (real) processor name, e.g. ``'amdk6'``." msgstr "Επιστρέφει το (πραγματικό) όνομα του επεξεργαστή, π.χ. ``'amdk6'``." -#: library/platform.rst:92 +#: library/platform.rst:94 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 " @@ -181,7 +190,7 @@ msgstr "" "επιστρέφουν την ίδια τιμή με αυτή της :func:`machine`. Το NetBSD το κάνει " "αυτό." -#: library/platform.rst:99 +#: library/platform.rst:101 msgid "" "Returns a tuple ``(buildno, builddate)`` stating the Python build number and " "date as strings." @@ -189,19 +198,19 @@ msgstr "" "Επιστρέφει μια πλειάδα ``(buildno, builddate)`` που δηλώνει τον αριθμό " "κατασκευής και την ημερομηνία κατασκευής της Python ως συμβολοσειρές." -#: library/platform.rst:105 +#: library/platform.rst:107 msgid "Returns a string identifying the compiler used for compiling Python." msgstr "" "Επιστρέφει μια συμβολοσειρά που προσδιορίζει τον μεταγλωττιστή που " "χρησιμοποιήθηκε για την μεταγλώττιση της Python." -#: library/platform.rst:110 +#: library/platform.rst:112 msgid "Returns a string identifying the Python implementation SCM branch." msgstr "" "Επιστρέφει μια συμβολοσειρά που προσδιορίζει το branch του συστήματος " "ελέγχου εκδόσεων (SCM) της υλοποίησης της Python." -#: library/platform.rst:115 +#: library/platform.rst:117 msgid "" "Returns a string identifying the Python implementation. Possible return " "values are: 'CPython', 'IronPython', 'Jython', 'PyPy'." @@ -209,19 +218,19 @@ msgstr "" "Επιστρέφει μια συμβολοσειρά που προσδιορίζει την υλοποίηση της Python. " "Πιθανές τιμές είναι: 'CPython', 'IronPython', 'Jython', 'PyPy'." -#: library/platform.rst:121 +#: library/platform.rst:123 msgid "Returns a string identifying the Python implementation SCM revision." msgstr "" "Επιστρέφει μια συμβολοσειρά που προσδιορίζει την αναθεώρηση SCM της " "υλοποίησης της Python." -#: library/platform.rst:126 +#: library/platform.rst:128 msgid "Returns the Python version as string ``'major.minor.patchlevel'``." msgstr "" -"Επιστρέφει την έκδοση της Python ως συμβολοσειρά ``'major.minor." -"patchlevel'``." +"Επιστρέφει την έκδοση της Python ως συμβολοσειρά " +"``'major.minor.patchlevel'``." -#: library/platform.rst:128 +#: library/platform.rst:130 msgid "" "Note that unlike the Python ``sys.version``, the returned value will always " "include the patchlevel (it defaults to 0)." @@ -230,15 +239,15 @@ msgstr "" "τιμή θα περιλαμβάνει πάντα το επίπεδο διόρθωσης (το οποίο προεπιλεγμένα " "είναι 0)." -#: library/platform.rst:134 +#: library/platform.rst:136 msgid "" "Returns the Python version as tuple ``(major, minor, patchlevel)`` of " "strings." msgstr "" "Επιστρέφει την έκδοση της Python ως πλειάδα ``(major, minor, patchlevel)`` " -"από συμβολοσειρές. " +"από συμβολοσειρές." -#: library/platform.rst:136 +#: library/platform.rst:138 msgid "" "Note that unlike the Python ``sys.version``, the returned value will always " "include the patchlevel (it defaults to ``'0'``)." @@ -247,7 +256,7 @@ msgstr "" "επιστρεφόμενη τιμή θα περιλαμβάνει πάντα το επίπεδο ενημέρωσης (με " "προεπιλογή το ``'0'``)." -#: library/platform.rst:142 +#: library/platform.rst:144 msgid "" "Returns the system's release, e.g. ``'2.2.0'`` or ``'NT'``. An empty string " "is returned if the value cannot be determined." @@ -255,7 +264,7 @@ msgstr "" "Επιστρέφει την έκδοση του συστήματος, π.χ. ``'2.2.0'`` ή ``'NT'``. " "Επιστρέφεται μια κενή συμβολοσειρά αν η τιμή δεν μπορεί να καθοριστεί." -#: library/platform.rst:148 +#: library/platform.rst:150 msgid "" "Returns the system/OS name, such as ``'Linux'``, ``'Darwin'``, ``'Java'``, " "``'Windows'``. An empty string is returned if the value cannot be determined." @@ -264,7 +273,7 @@ msgstr "" "``'Darwin'``, ``'Java'``, ``'Windows'``. Επιστρέφεται μια κενή συμβολοσειρά " "αν η τιμή δεν μπορεί να καθοριστεί." -#: library/platform.rst:151 +#: library/platform.rst:153 msgid "" "On iOS and Android, this returns the user-facing OS name (i.e, ``'iOS``, " "``'iPadOS'`` or ``'Android'``). To obtain the kernel name (``'Darwin'`` or " @@ -272,10 +281,10 @@ msgid "" msgstr "" "Στο iOS και το Android, αυτό επιστρέφει το όνομα του λειτουργικό συστήματος " "που βλέπει ο χρήστης δηλαδή, ``'iOS``, ``'iPadOS'`` ή ``'Android'``). Για να " -"λάβετε το όνομα του πυρήνα (``'Darwin'`` ή ``'Linux'``), χρησιμοποιήστε τη :" -"func:`os.uname`." +"λάβετε το όνομα του πυρήνα (``'Darwin'`` ή ``'Linux'``), χρησιμοποιήστε " +"τη :func:`os.uname`." -#: library/platform.rst:157 +#: library/platform.rst:159 msgid "" "Returns ``(system, release, version)`` aliased to common marketing names " "used for some systems. It also does some reordering of the information in " @@ -285,7 +294,7 @@ msgstr "" "χρήσης που χρησιμοποιούνται για ορισμένα συστήματα. Επίσης, αναδιατάσσει " "ορισμένες πληροφορίες σε περιπτώσεις που διαφορετικά θα προκαλούσαν σύγχυση." -#: library/platform.rst:164 +#: library/platform.rst:166 msgid "" "Returns the system's release version, e.g. ``'#3 on degas'``. An empty " "string is returned if the value cannot be determined." @@ -293,7 +302,7 @@ msgstr "" "Επιστρέφει την έκδοση κυκλοφορίας του συστήματος, π.χ. ``'#3 on degas'``. " "Επιστρέφεται μια κενή συμβολοσειρά εάν η τιμή δεν μπορεί να προσδιοριστεί." -#: library/platform.rst:167 +#: library/platform.rst:169 msgid "" "On iOS and Android, this is the user-facing OS version. To obtain the Darwin " "or Linux kernel version, use :func:`os.uname`." @@ -302,51 +311,64 @@ msgstr "" "βλέπει ο χρήστης. Για να λάβετε την έκδοση του πυρήνα Darwin ή Linux, " "χρησιμοποιήστε τη :func:`os.uname`." -#: library/platform.rst:172 +#: library/platform.rst:174 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`." +"containing six " +"attributes: :attr:`system`, :attr:`node`, :attr:`release`, :attr:`version`, :attr:`machine`, " +"and :attr:`processor`." msgstr "" "Αρκετά φορητή διεπαφή uname. Επιστρέφει ένα :func:`~collections.namedtuple` " -"που περιέχει έξι ιδιότητες: :attr:`system`, :attr:`node`, :attr:`release`, :" -"attr:`version`, :attr:`machine` και :attr:`processor`." +"που περιέχει έξι " +"ιδιότητες: :attr:`system`, :attr:`node`, :attr:`release`, :attr:`version`, :attr:`machine` " +"και :attr:`processor`." -#: library/platform.rst:176 +#: library/platform.rst:178 msgid ":attr:`processor` is resolved late, on demand." msgstr "Το :attr:`processor` επιλύεται αργά, κατόπιν αιτήματος." -#: library/platform.rst:178 +#: library/platform.rst:180 msgid "" -"Note: the first two attribute names differ from the names presented by :func:" -"`os.uname`, where they are named :attr:`sysname` and :attr:`nodename`." +"Note: the first two attribute names differ from the names presented " +"by :func:`os.uname`, where they are named :attr:`!sysname` and :attr:`!" +"nodename`." msgstr "" "Σημείωση: τα ονόματα των πρώτων δύο ιδιοτήτων διαφέρουν από αυτά που " -"παρουσιάζονται από την συνάρτηση :func:`os.uname`, όπου ονομάζονται :attr:" -"`sysname` και :attr:`nodename`." +"παρουσιάζονται από την συνάρτηση :func:`os.uname`, όπου ονομάζονται :attr:`!" +"sysname` και :attr:`!nodename`." -#: library/platform.rst:182 +#: library/platform.rst:184 msgid "Entries which cannot be determined are set to ``''``." msgstr "Οι τιμές που δεν μπορούν να προσδιοριστούν ορίζονται σε ``''``." -#: library/platform.rst:184 +#: library/platform.rst:186 msgid "Result changed from a tuple to a :func:`~collections.namedtuple`." msgstr "" "Το αποτέλεσμα άλλαξε από μια πλειάδα σε :func:`~collections.namedtuple`." -#: library/platform.rst:187 +#: library/platform.rst:189 msgid ":attr:`processor` is resolved late instead of immediately." msgstr "Το :attr:`processor` αναλύεται καθυστερημένα αντί άμεσα." -#: library/platform.rst:192 +#: library/platform.rst:194 +msgid "" +"Clear out the internal cache of information, such as the :func:`uname`. This " +"is typically useful when the platform's :func:`node` is changed by an " +"external process and one needs to retrieve the updated value." +msgstr "" +"Καθαρίστε την εσωτερική μνήμη από πληροφορίες όπως τη :func:`uname`. Αυτό " +"είναι συνήθως χρήσιμο όταν η :func:`node` της πλατφόρμας αλλάζει από μια " +"εξωτερική διεργασία και κάποιος πρέπει να ανακτήσει την ενημερωμένη τιμή." + +#: library/platform.rst:202 msgid "Java platform" msgstr "Πλατφόρμα Java" -#: library/platform.rst:197 +#: library/platform.rst:207 msgid "Version interface for Jython." msgstr "Διεπαφή έκδοσης για Jython." -#: library/platform.rst:199 +#: library/platform.rst:209 msgid "" "Returns a tuple ``(release, vendor, vminfo, osinfo)`` with *vminfo* being a " "tuple ``(vm_name, vm_release, vm_vendor)`` and *osinfo* being a tuple " @@ -359,7 +381,7 @@ msgstr "" "μπορούν να προσδιοριστούν ορίζονται στα προεπιλεγμένα που δίνονται ως " "παράμετροι (τα οποία προεπιλεγμένα είναι όλα ``''``)." -#: library/platform.rst:204 +#: library/platform.rst:214 msgid "" "It was largely untested, had a confusing API, and was only useful for Jython " "support." @@ -367,11 +389,11 @@ msgstr "" "Ήταν σε μεγάλο βαθμό ακατάλληλο για δοκιμές, είχε μια μπερδεμένη διεπαφή API " "και ήταν χρήσιμο μόνο για την υποστήριξη του Jython." -#: library/platform.rst:210 +#: library/platform.rst:220 msgid "Windows platform" msgstr "Πλατφόρμα Windows" -#: library/platform.rst:215 +#: library/platform.rst:225 msgid "" "Get additional version information from the Windows Registry and return a " "tuple ``(release, version, csd, ptype)`` referring to OS release, version " @@ -387,13 +409,13 @@ msgstr "" "προεπιλεγμένα που δίνονται ως παράμετροι (όλα προεπιλέγονται σε κενές " "συμβολοσειρές)." -#: library/platform.rst:221 +#: library/platform.rst:231 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." +"also state ``'Checked'`` which means the OS version uses debugging code, " +"i.e. code that checks arguments, ranges, etc." msgstr "" "Ως υπόδειξη: το *ptype* είναι ``'Uniprocessor Free'`` σε μηχανές NT με έναν " "επεξεργαστή και ``'Multiprocessor Free'`` σε μηχανές με πολλαπλούς " @@ -403,7 +425,7 @@ msgstr "" "χρησιμοποιεί κώδικα αποσφαλμάτωσης, δηλαδή κώδικα που ελέγχει ορίσματα, εύρη " "κ.λπ." -#: library/platform.rst:229 +#: library/platform.rst:239 msgid "" "Returns a string representing the current Windows edition, or ``None`` if " "the value cannot be determined. Possible values include but are not limited " @@ -415,19 +437,19 @@ msgstr "" "αλλά δεν περιορίζονται σε ``'Enterprise'``, ``'IoTUAP'``, " "``'ServerStandard'`` και ``'nanoserver'``." -#: library/platform.rst:237 +#: library/platform.rst:247 msgid "" "Return ``True`` if the Windows edition returned by :func:`win32_edition` is " "recognized as an IoT edition." msgstr "" -"Επιστρέφει ``True`` αν η έκδοση των Windows που επιστρέφεται από την :func:" -"`win32_edition` αναγνωρίζεται ως έκδοση IoT." +"Επιστρέφει ``True`` αν η έκδοση των Windows που επιστρέφεται από " +"την :func:`win32_edition` αναγνωρίζεται ως έκδοση IoT." -#: library/platform.rst:244 +#: library/platform.rst:254 msgid "macOS platform" msgstr "Πλατφόρμα macOS" -#: library/platform.rst:248 +#: library/platform.rst:258 msgid "" "Get macOS version information and return it as tuple ``(release, " "versioninfo, machine)`` with *versioninfo* being a tuple ``(version, " @@ -437,7 +459,7 @@ msgstr "" "versioninfo, machine)`` όπου το *versioninfo* είναι μια πλειάδα ``(version, " "dev_stage, non_release_version)``." -#: library/platform.rst:252 +#: library/platform.rst:262 msgid "" "Entries which cannot be determined are set to ``''``. All tuple entries are " "strings." @@ -445,31 +467,31 @@ msgstr "" "Οι τιμές που δεν μπορούν να προσδιοριστούν ορίζονται ως ``''``. Όλα τα " "στοιχεία της πλειάδας είναι συμβολοσειρές." -#: library/platform.rst:256 +#: library/platform.rst:266 msgid "iOS platform" msgstr "Πλατφόρμα iOS" -#: library/platform.rst:260 +#: library/platform.rst:270 msgid "" -"Get iOS version information and return it as a :func:`~collections." -"namedtuple` with the following attributes:" +"Get iOS version information and return it as " +"a :func:`~collections.namedtuple` with the following attributes:" msgstr "" -"Λάβετε πληροφορίες για την έκδοση του iOS και επιστρέψτε τις ως μια :func:" -"`~collections.namedtuple` με τα εξής χαρακτηριστικά:" +"Λάβετε πληροφορίες για την έκδοση του iOS και επιστρέψτε τις ως " +"μια :func:`~collections.namedtuple` με τα εξής χαρακτηριστικά:" -#: library/platform.rst:263 +#: library/platform.rst:273 msgid "``system`` is the OS name; either ``'iOS'`` or ``'iPadOS'``." msgstr "" "``system`` είναι το όνομα του λειτουργικού συστήματος; είτε ``'iOS'`` ή " "``'iPadOS'``." -#: library/platform.rst:264 +#: library/platform.rst:274 msgid "``release`` is the iOS version number as a string (e.g., ``'17.2'``)." msgstr "" "``release`` είναι ο αριθμός έκδοσης iOS ως μια συμβολοσειρά (π.χ., " "``'17.2'``)." -#: library/platform.rst:265 +#: library/platform.rst:275 msgid "" "``model`` is the device model identifier; this will be a string like " "``'iPhone13,2'`` for a physical device, or ``'iPhone'`` on a simulator." @@ -478,7 +500,7 @@ msgstr "" "είναι μια συμβολοσειρά όπως ``'iPhone13,2'`` για μια φυσική συσκευή, ή " "``'iPhone'`` για έναν εξομοιωτή." -#: library/platform.rst:267 +#: library/platform.rst:277 msgid "" "``is_simulator`` is a boolean describing if the app is running on a " "simulator or a physical device." @@ -486,7 +508,7 @@ msgstr "" "Το ``is_simulator`` είναι μια δυαδική τιμή που περιγράφει αν η εφαρμογή " "εκτελείται σε εξομοιωτή ή σε φυσική συσκευή." -#: library/platform.rst:270 +#: library/platform.rst:280 msgid "" "Entries which cannot be determined are set to the defaults given as " "parameters." @@ -494,11 +516,11 @@ msgstr "" "Οι καταχωρήσεις που δεν μπορούν να προσδιοριστούν ορίζονται στις " "προεπιλεγμένες τιμές που δίνονται ως παράμετροι." -#: library/platform.rst:275 +#: library/platform.rst:285 msgid "Unix platforms" msgstr "Πλατφόρμες Unix" -#: library/platform.rst:279 +#: library/platform.rst:289 msgid "" "Tries to determine the libc version against which the file executable " "(defaults to the Python interpreter) is linked. Returns a tuple of strings " @@ -510,7 +532,7 @@ msgstr "" "μια πλειάδα συμβολοσειρών ``(lib, version)``, η οποία ορίζεται στις δοθείσες " "παραμέτρους σε περίπτωση αποτυχίας της αναζήτησης." -#: library/platform.rst:283 +#: library/platform.rst:293 msgid "" "Note that this function has intimate knowledge of how different libc " "versions add symbols to the executable is probably only usable for " @@ -518,19 +540,19 @@ msgid "" msgstr "" "Σημειώστε ότι αυτή η συνάρτηση έχει λεπτομερή γνώση του τρόπου με τον οποίο " "οι διάφορες εκδόσεις της libc προσθέτουν σύμβολα στο εκτελέσιμο και πιθανώς " -"μπορεί να χρησιμοποιηθεί μόνο για εκτελέσιμα που έχουν μεταγλωττιστεί με το :" -"program:`gcc`." +"μπορεί να χρησιμοποιηθεί μόνο για εκτελέσιμα που έχουν μεταγλωττιστεί με " +"το :program:`gcc`." -#: library/platform.rst:287 +#: library/platform.rst:297 msgid "The file is read and scanned in chunks of *chunksize* bytes." msgstr "" "Το αρχείο διαβάζεται και σαρώνονται τμήματά του μεγέθους *chunksize* bytes." -#: library/platform.rst:291 +#: library/platform.rst:301 msgid "Linux platforms" msgstr "Πλατφόρμες Linux" -#: library/platform.rst:295 +#: library/platform.rst:305 msgid "" "Get operating system identification from ``os-release`` file and return it " "as a dict. The ``os-release`` file is a `freedesktop.org standard `__." @@ -638,7 +660,7 @@ msgstr "" "``manufacturer`` - `Το όνομα του κατασκευαστή `__." -#: library/platform.rst:347 +#: library/platform.rst:357 msgid "" "``model`` - `Model name `__ – typically the marketing name or model number." @@ -646,7 +668,7 @@ msgstr "" "``model`` - `Το όνομα του μοντέλου `__ – συνήθως το εμπορικό όνομα ή ο αριθμός μοντέλου." -#: library/platform.rst:351 +#: library/platform.rst:361 msgid "" "``device`` - `Device name `__ – typically the model number or a codename." @@ -654,7 +676,7 @@ msgstr "" "``device`` - `Το όνομα της συσκευής `__ – συνήθως ο αριθμός μοντέλου ή ένα κωδικό όνομα." -#: library/platform.rst:355 +#: library/platform.rst:365 msgid "" "``is_emulator`` - ``True`` if the device is an emulator; ``False`` if it's a " "physical device." @@ -662,19 +684,19 @@ msgstr "" "``is_emulator`` - ``True`` αν η συσκευή είναι εξομοιωτής; ``False`` αν είναι " "φυσική συσκευή." -#: library/platform.rst:358 +#: library/platform.rst:368 msgid "" -"Google maintains a `list of known model and device names `__." +"Google maintains a `list of known model and device names `__." msgstr "" "Η Google διατηρεί μια `λίστα με γνωστά ονόματα μοντέλων συσκευών `__." -#: library/platform.rst:366 +#: library/platform.rst:376 msgid "Command-line usage" msgstr "Χρήση από γραμμή εντολών" -#: library/platform.rst:368 +#: library/platform.rst:378 msgid "" ":mod:`platform` can also be invoked directly using the :option:`-m` switch " "of the interpreter::" @@ -682,34 +704,34 @@ msgstr "" "Το :mod:`platform` μπορεί επίσης να κληθεί απευθείας χρησιμοποιώντας την " "επιλογή :option:`-m` του διερμηνέα::" -#: library/platform.rst:371 +#: library/platform.rst:381 msgid "python -m platform [--terse] [--nonaliased] [{nonaliased,terse} ...]" msgstr "python -m platform [--terse] [--nonaliased] [{nonaliased,terse} ...]" -#: library/platform.rst:373 +#: library/platform.rst:383 msgid "The following options are accepted:" msgstr "Οι εξής επιλογές γίνονται αποδεκτές:" -#: library/platform.rst:379 +#: library/platform.rst:389 msgid "" -"Print terse information about the platform. This is equivalent to calling :" -"func:`platform.platform` with the *terse* argument set to ``True``." +"Print terse information about the platform. This is equivalent to " +"calling :func:`platform.platform` with the *terse* argument set to ``True``." msgstr "" "Εκτυπώνει συνοπτικές πληροφορίες για την πλατφόρμα. Αυτό είναι ισοδύναμο με " "την κλήση :func:`platform.platform` με το όρισμα *terse* ορισμένο σε " "``True``." -#: library/platform.rst:384 +#: library/platform.rst:394 msgid "" "Print platform information without system/OS name aliasing. This is " "equivalent to calling :func:`platform.platform` with the *aliased* argument " "set to ``True``." msgstr "" "Εκτυπώνει πληροφορίες για την πλατφόρμα χωρίς την αντικατάσταση του ονόματος " -"του συστήματος/ λειτουργικού. Αυτό είναι ισοδύναμο με την κλήση της :func:" -"`platform.platform` με το όρισμα *aliased* ορισμένο σε ``True``." +"του συστήματος/ λειτουργικού. Αυτό είναι ισοδύναμο με την κλήση " +"της :func:`platform.platform` με το όρισμα *aliased* ορισμένο σε ``True``." -#: library/platform.rst:388 +#: library/platform.rst:398 msgid "" "You can also pass one or more positional arguments (``terse``, " "``nonaliased``) to explicitly control the output format. These behave " @@ -719,16 +741,5 @@ msgstr "" "``nonaliased``) για να ελέγξετε ρητά τη μορφή της εξόδου. Αυτά " "συμπεριφέρονται όπως οι αντίστοιχες επιλογές τους." -#: library/platform.rst:393 -msgid "Miscellaneous" -msgstr "Ανάμικτος" - -#: library/platform.rst:397 -msgid "" -"Clear out the internal cache of information, such as the :func:`uname`. This " -"is typically useful when the platform's :func:`node` is changed by an " -"external process and one needs to retrieve the updated value." -msgstr "" -"Καθαρίστε την εσωτερική μνήμη από πληροφορίες όπως τη :func:`uname`. Αυτό " -"είναι συνήθως χρήσιμο όταν η :func:`node` της πλατφόρμας αλλάζει από μια " -"εξωτερική διεργασία και κάποιος πρέπει να ανακτήσει την ενημερωμένη τιμή." +#~ msgid "Miscellaneous" +#~ msgstr "Ανάμικτος" diff --git a/library/plistlib.po b/library/plistlib.po index 1f02e998..9c4caaee 100644 --- a/library/plistlib.po +++ b/library/plistlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/poplib.po b/library/poplib.po index 5e83420d..65cf27df 100644 --- a/library/poplib.po +++ b/library/poplib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/posix.po b/library/posix.po index 43aadc37..53ee7b97 100644 --- a/library/posix.po +++ b/library/posix.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/pprint.po b/library/pprint.po index 3d5341f8..4e7c3b23 100644 --- a/library/pprint.po +++ b/library/pprint.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -43,22 +43,18 @@ msgid "" msgstr "" #: library/pprint.rst:25 -msgid "Dictionaries are sorted by key before the display is computed." -msgstr "" - -#: library/pprint.rst:27 msgid "Added support for pretty-printing :class:`types.SimpleNamespace`." msgstr "" -#: library/pprint.rst:30 +#: library/pprint.rst:28 msgid "Added support for pretty-printing :class:`dataclasses.dataclass`." msgstr "" -#: library/pprint.rst:36 +#: library/pprint.rst:34 msgid "Functions" msgstr "" -#: library/pprint.rst:41 +#: library/pprint.rst:39 msgid "" "Prints the formatted representation of *object*, followed by a newline. This " "function may be used in the interactive interpreter instead of the :func:" @@ -70,28 +66,28 @@ msgstr "" msgid "Parameters" msgstr "" -#: library/pprint.rst:46 +#: library/pprint.rst:44 msgid "The object to be printed." msgstr "" -#: library/pprint.rst:49 +#: library/pprint.rst:47 msgid "" "A file-like object to which the output will be written by calling its :meth:" "`!write` method. If ``None`` (the default), :data:`sys.stdout` is used." msgstr "" -#: library/pprint.rst:55 +#: library/pprint.rst:53 msgid "The amount of indentation added for each nesting level." msgstr "" -#: library/pprint.rst:58 +#: library/pprint.rst:56 msgid "" "The desired maximum number of characters per line in the output. If a " "structure cannot be formatted within the width constraint, a best effort " "will be made." msgstr "" -#: library/pprint.rst:63 +#: library/pprint.rst:61 msgid "" "The number of nesting levels which may be printed. If the data structure " "being printed is too deep, the next contained level is replaced by ``...``. " @@ -99,7 +95,7 @@ msgid "" "objects being formatted." msgstr "" -#: library/pprint.rst:71 +#: library/pprint.rst:69 msgid "" "Control the way long :term:`sequences ` are formatted. If " "``False`` (the default), each item of a sequence will be formatted on a " @@ -107,26 +103,26 @@ msgid "" "be formatted on each output line." msgstr "" -#: library/pprint.rst:78 +#: library/pprint.rst:76 msgid "" "If ``True``, dictionaries will be formatted with their keys sorted, " "otherwise they will be displayed in insertion order (the default)." msgstr "" -#: library/pprint.rst:83 +#: library/pprint.rst:81 msgid "" "If ``True``, integers will be formatted with the ``_`` character for a " "thousands separator, otherwise underscores are not displayed (the default)." msgstr "" -#: library/pprint.rst:105 +#: library/pprint.rst:103 msgid "" "Alias for :func:`~pprint.pp` with *sort_dicts* set to ``True`` by default, " "which would automatically sort the dictionaries' keys, you might want to " "use :func:`~pprint.pp` instead where it is ``False`` by default." msgstr "" -#: library/pprint.rst:113 +#: library/pprint.rst:111 msgid "" "Return the formatted representation of *object* as a string. *indent*, " "*width*, *depth*, *compact*, *sort_dicts* and *underscore_numbers* are " @@ -134,21 +130,21 @@ msgid "" "and their meanings are as described in the documentation above." msgstr "" -#: library/pprint.rst:123 +#: library/pprint.rst:121 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 "" -#: library/pprint.rst:133 +#: library/pprint.rst:131 msgid "" "Determine if *object* requires a recursive representation. This function is " "subject to the same limitations as noted in :func:`saferepr` below and may " "raise an :exc:`RecursionError` if it fails to detect a recursive object." msgstr "" -#: library/pprint.rst:140 +#: library/pprint.rst:138 msgid "" "Return a string representation of *object*, protected against recursion in " "some common data structures, namely instances of :class:`dict`, :class:" @@ -158,53 +154,53 @@ msgid "" "id=number>``. The representation is not otherwise formatted." msgstr "" -#: library/pprint.rst:153 +#: library/pprint.rst:151 msgid "PrettyPrinter Objects" msgstr "" -#: library/pprint.rst:160 +#: library/pprint.rst:158 msgid "Construct a :class:`PrettyPrinter` instance." msgstr "" -#: library/pprint.rst:162 +#: library/pprint.rst:160 msgid "" "Arguments have the same meaning as for :func:`~pprint.pp`. Note that they " "are in a different order, and that *sort_dicts* defaults to ``True``." msgstr "" -#: library/pprint.rst:189 +#: library/pprint.rst:187 msgid "Added the *compact* parameter." msgstr "" -#: library/pprint.rst:192 +#: library/pprint.rst:190 msgid "Added the *sort_dicts* parameter." msgstr "" -#: library/pprint.rst:195 +#: library/pprint.rst:193 msgid "Added the *underscore_numbers* parameter." msgstr "" -#: library/pprint.rst:198 +#: library/pprint.rst:196 msgid "No longer attempts to write to :data:`!sys.stdout` if it is ``None``." msgstr "" -#: library/pprint.rst:202 +#: library/pprint.rst:200 msgid ":class:`PrettyPrinter` instances have the following methods:" msgstr "" -#: library/pprint.rst:207 +#: library/pprint.rst:205 msgid "" "Return the formatted representation of *object*. This takes into account " "the options passed to the :class:`PrettyPrinter` constructor." msgstr "" -#: library/pprint.rst:213 +#: library/pprint.rst:211 msgid "" "Print the formatted representation of *object* on the configured stream, " "followed by a newline." msgstr "" -#: library/pprint.rst:216 +#: library/pprint.rst:214 msgid "" "The following methods provide the implementations for the corresponding " "functions of the same names. Using these methods on an instance is slightly " @@ -212,7 +208,7 @@ msgid "" "created." msgstr "" -#: library/pprint.rst:226 +#: library/pprint.rst:224 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 " @@ -221,18 +217,18 @@ msgid "" "returns ``False``." msgstr "" -#: library/pprint.rst:235 +#: library/pprint.rst:233 msgid "Determine if the object requires a recursive representation." msgstr "" -#: library/pprint.rst:237 +#: library/pprint.rst:235 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 "" -#: library/pprint.rst:244 +#: library/pprint.rst:242 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 " @@ -250,18 +246,18 @@ msgid "" "of the current call." msgstr "" -#: library/pprint.rst:262 +#: library/pprint.rst:260 msgid "Example" msgstr "" -#: library/pprint.rst:264 +#: library/pprint.rst:262 msgid "" "To demonstrate several uses of the :func:`~pprint.pp` function and its " "parameters, let's fetch information about a project from `PyPI `_::" msgstr "" -#: library/pprint.rst:267 +#: library/pprint.rst:265 msgid "" ">>> import json\n" ">>> import pprint\n" @@ -270,11 +266,11 @@ msgid "" "... project_info = json.load(resp)['info']" msgstr "" -#: library/pprint.rst:273 +#: library/pprint.rst:271 msgid "In its basic form, :func:`~pprint.pp` shows the whole object::" msgstr "" -#: library/pprint.rst:275 +#: library/pprint.rst:273 msgid "" ">>> pprint.pp(project_info)\n" "{'author': 'The Python Packaging Authority',\n" @@ -334,13 +330,13 @@ msgid "" " 'version': '1.2.0'}" msgstr "" -#: library/pprint.rst:329 +#: library/pprint.rst:327 msgid "" "The result can be limited to a certain *depth* (ellipsis is used for deeper " "contents)::" msgstr "" -#: library/pprint.rst:332 +#: library/pprint.rst:330 msgid "" ">>> pprint.pp(project_info, depth=1)\n" "{'author': 'The Python Packaging Authority',\n" @@ -389,13 +385,13 @@ msgid "" " 'version': '1.2.0'}" msgstr "" -#: library/pprint.rst:375 +#: library/pprint.rst:373 msgid "" "Additionally, maximum character *width* can be suggested. If a long object " "cannot be split, the specified width will be exceeded::" msgstr "" -#: library/pprint.rst:378 +#: library/pprint.rst:376 msgid "" ">>> pprint.pp(project_info, depth=1, width=60)\n" "{'author': 'The Python Packaging Authority',\n" @@ -444,18 +440,18 @@ msgid "" " 'version': '1.2.0'}" msgstr "" -#: library/pprint.rst:224 +#: library/pprint.rst:222 msgid "built-in function" msgstr "" -#: library/pprint.rst:224 +#: library/pprint.rst:222 msgid "eval" msgstr "" -#: library/pprint.rst:155 +#: library/pprint.rst:153 msgid "..." msgstr "" -#: library/pprint.rst:155 +#: library/pprint.rst:153 msgid "placeholder" msgstr "" diff --git a/library/profile.po b/library/profile.po index 986aef3a..b4e027ff 100644 --- a/library/profile.po +++ b/library/profile.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -817,7 +817,7 @@ msgid "" "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 " +"select a percentage of lines), or a string that will be 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::" diff --git a/library/pty.po b/library/pty.po index 78c1a001..4823fa62 100644 --- a/library/pty.po +++ b/library/pty.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/pwd.po b/library/pwd.po index 32feb564..daa8e204 100644 --- a/library/pwd.po +++ b/library/pwd.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/py_compile.po b/library/py_compile.po index 21eb5c99..0d064579 100644 --- a/library/py_compile.po +++ b/library/py_compile.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/pyclbr.po b/library/pyclbr.po index bf718dc6..ec298577 100644 --- a/library/pyclbr.po +++ b/library/pyclbr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/pydoc.po b/library/pydoc.po index 81b3a124..ed9c23f9 100644 --- a/library/pydoc.po +++ b/library/pydoc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/pyexpat.po b/library/pyexpat.po index 801cef79..f8415463 100644 --- a/library/pyexpat.po +++ b/library/pyexpat.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -23,12 +23,11 @@ msgstr "" #: 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`." +"If you need to parse untrusted or unauthenticated data, see :ref:`xml-" +"security`." msgstr "" -#: library/pyexpat.rst:28 +#: library/pyexpat.rst:27 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:" @@ -39,39 +38,39 @@ msgid "" "in the XML document." msgstr "" -#: library/pyexpat.rst:38 +#: library/pyexpat.rst:37 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 "" -#: library/pyexpat.rst:41 +#: library/pyexpat.rst:40 msgid "This module provides one exception and one type object:" msgstr "" -#: library/pyexpat.rst:46 +#: library/pyexpat.rst:45 msgid "" "The exception raised when Expat reports an error. See section :ref:" "`expaterror-objects` for more information on interpreting Expat errors." msgstr "" -#: library/pyexpat.rst:52 +#: library/pyexpat.rst:51 msgid "Alias for :exc:`ExpatError`." msgstr "" -#: library/pyexpat.rst:57 +#: library/pyexpat.rst:56 msgid "The type of the return values from the :func:`ParserCreate` function." msgstr "" -#: library/pyexpat.rst:59 +#: library/pyexpat.rst:58 msgid "The :mod:`xml.parsers.expat` module contains two functions:" msgstr "" -#: library/pyexpat.rst:64 +#: library/pyexpat.rst:63 msgid "Returns an explanatory string for a given error number *errno*." msgstr "" -#: library/pyexpat.rst:69 +#: library/pyexpat.rst:68 msgid "" "Creates and returns a new :class:`xmlparser` object. *encoding*, if " "specified, must be a string naming the encoding used by the XML data. " @@ -81,7 +80,15 @@ msgid "" "implicit or explicit encoding of the document." msgstr "" -#: library/pyexpat.rst:76 +#: library/pyexpat.rst:77 +msgid "" +"Parsers created through :func:`!ParserCreate` are called \"root\" parsers, " +"in the sense that they do not have any parent parser attached. Non-root " +"parsers are created by :meth:`parser.ExternalEntityParserCreate `." +msgstr "" + +#: library/pyexpat.rst:82 msgid "" "Expat can optionally do XML namespace processing for you, enabled by " "providing a value for *namespace_separator*. The value must be a one-" @@ -96,13 +103,13 @@ msgid "" "concatenated without any separator." msgstr "" -#: library/pyexpat.rst:88 +#: library/pyexpat.rst:94 msgid "" "For example, if *namespace_separator* is set to a space character (``' '``) " "and the following document is parsed:" msgstr "" -#: library/pyexpat.rst:91 +#: library/pyexpat.rst:97 msgid "" "\n" "" msgstr "" -#: library/pyexpat.rst:100 +#: library/pyexpat.rst:106 msgid "" ":attr:`StartElementHandler` will receive the following strings for each " "element::" msgstr "" -#: library/pyexpat.rst:103 +#: library/pyexpat.rst:109 msgid "" "http://default-namespace.org/ root\n" "http://www.python.org/ns/ elem1\n" "elem2" msgstr "" -#: library/pyexpat.rst:107 +#: library/pyexpat.rst:113 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 " @@ -133,23 +140,23 @@ msgid "" "instances." msgstr "" -#: library/pyexpat.rst:115 +#: library/pyexpat.rst:121 msgid "`The Expat XML Parser `_" msgstr "" -#: library/pyexpat.rst:116 +#: library/pyexpat.rst:122 msgid "Home page of the Expat project." msgstr "" -#: library/pyexpat.rst:122 +#: library/pyexpat.rst:128 msgid "XMLParser Objects" msgstr "" -#: library/pyexpat.rst:124 +#: library/pyexpat.rst:130 msgid ":class:`xmlparser` objects have the following methods:" msgstr "" -#: library/pyexpat.rst:129 +#: library/pyexpat.rst:135 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 " @@ -158,14 +165,14 @@ msgid "" "time." msgstr "" -#: library/pyexpat.rst:138 +#: library/pyexpat.rst:144 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 "" -#: library/pyexpat.rst:145 +#: library/pyexpat.rst:151 msgid "" "Sets the base to be used for resolving relative URIs in system identifiers " "in declarations. Resolving relative identifiers is left to the application: " @@ -174,20 +181,20 @@ msgid "" "`UnparsedEntityDeclHandler` functions." msgstr "" -#: library/pyexpat.rst:154 +#: library/pyexpat.rst:160 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 "" -#: library/pyexpat.rst:160 +#: library/pyexpat.rst:166 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 "" -#: library/pyexpat.rst:167 +#: library/pyexpat.rst:173 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* " @@ -197,7 +204,7 @@ msgid "" "`specified_attributes` set to the values of this parser." msgstr "" -#: library/pyexpat.rst:176 +#: library/pyexpat.rst:182 msgid "" "Control parsing of parameter entities (including the external DTD subset). " "Possible *flag* values are :const:`XML_PARAM_ENTITY_PARSING_NEVER`, :const:" @@ -206,7 +213,7 @@ msgid "" "successful." msgstr "" -#: library/pyexpat.rst:184 +#: library/pyexpat.rst:190 msgid "" "Calling this with a true value for *flag* (the default) will cause Expat to " "call the :attr:`ExternalEntityRefHandler` with :const:`None` for all " @@ -216,13 +223,13 @@ msgid "" "`EndDoctypeDeclHandler` will not be called." msgstr "" -#: library/pyexpat.rst:191 +#: library/pyexpat.rst:197 msgid "" "Passing a false value for *flag* will cancel a previous call that passed a " "true value, but otherwise has no effect." msgstr "" -#: library/pyexpat.rst:194 +#: library/pyexpat.rst:200 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 " @@ -230,14 +237,14 @@ msgid "" "``errors.codes[errors.XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING]``." msgstr "" -#: library/pyexpat.rst:203 +#: library/pyexpat.rst:209 msgid "" "Calling ``SetReparseDeferralEnabled(False)`` has security implications, as " "detailed below; please make sure to understand these consequences prior to " "using the ``SetReparseDeferralEnabled`` method." msgstr "" -#: library/pyexpat.rst:207 +#: library/pyexpat.rst:213 msgid "" "Expat 2.6.0 introduced a security mechanism called \"reparse deferral\" " "where instead of causing denial of service through quadratic runtime from " @@ -252,7 +259,7 @@ msgid "" "``SetReparseDeferralEnabled(True)`` allows re-enabling reparse deferral." msgstr "" -#: library/pyexpat.rst:220 +#: library/pyexpat.rst:226 msgid "" "Note that :meth:`SetReparseDeferralEnabled` has been backported to some " "prior releases of CPython as a security fix. Check for availability of :" @@ -260,24 +267,90 @@ msgid "" "running across a variety of Python versions." msgstr "" -#: library/pyexpat.rst:229 +#: library/pyexpat.rst:235 msgid "" "Returns whether reparse deferral is currently enabled for the given Expat " "parser instance." msgstr "" -#: library/pyexpat.rst:235 +#: library/pyexpat.rst:241 +msgid "" +":class:`!xmlparser` objects have the following methods to mitigate some " +"common XML vulnerabilities." +msgstr "" + +#: library/pyexpat.rst:246 +msgid "" +"Sets the number of allocated bytes of dynamic memory needed to activate " +"protection against disproportionate use of RAM." +msgstr "" + +#: library/pyexpat.rst:249 +msgid "" +"By default, parser objects have an allocation activation threshold of 64 " +"MiB, or equivalently 67,108,864 bytes." +msgstr "" + +#: library/pyexpat.rst:252 +msgid "" +"An :exc:`ExpatError` is raised if this method is called on a |xml-non-root-" +"parser| parser. The corresponding :attr:`~ExpatError.lineno` and :attr:" +"`~ExpatError.offset` should not be used as they may have no special meaning." +msgstr "" + +#: library/pyexpat.rst:261 +msgid "" +"Sets the maximum amplification factor between direct input and bytes of " +"dynamic memory allocated." +msgstr "" + +#: library/pyexpat.rst:264 +msgid "" +"The amplification factor is calculated as ``allocated / direct`` while " +"parsing, where ``direct`` is the number of bytes read from the primary " +"document in parsing and ``allocated`` is the number of bytes of dynamic " +"memory allocated in the parser hierarchy." +msgstr "" + +#: library/pyexpat.rst:269 +msgid "" +"The *max_factor* value must be a non-NaN :class:`float` value greater than " +"or equal to 1.0. Amplification factors greater than 100.0 can be observed " +"near the start of parsing even with benign files in practice. In particular, " +"the activation threshold should be carefully chosen to avoid false positives." +msgstr "" + +#: library/pyexpat.rst:274 +msgid "" +"By default, parser objects have a maximum amplification factor of 100.0." +msgstr "" + +#: library/pyexpat.rst:276 +msgid "" +"An :exc:`ExpatError` is raised if this method is called on a |xml-non-root-" +"parser| parser or if *max_factor* is outside the valid range. The " +"corresponding :attr:`~ExpatError.lineno` and :attr:`~ExpatError.offset` " +"should not be used as they may have no special meaning." +msgstr "" + +#: library/pyexpat.rst:283 +msgid "" +"The maximum amplification factor is only considered if the threshold that " +"can be adjusted by :meth:`.SetAllocTrackerActivationThreshold` is exceeded." +msgstr "" + +#: library/pyexpat.rst:290 msgid ":class:`xmlparser` objects have the following attributes:" msgstr "" -#: library/pyexpat.rst:240 +#: library/pyexpat.rst:295 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 "" -#: library/pyexpat.rst:248 +#: library/pyexpat.rst:303 msgid "" "Setting this to true causes the :class:`xmlparser` object to buffer textual " "content returned by Expat to avoid multiple calls to the :meth:" @@ -288,14 +361,14 @@ msgid "" "newlines may be chunked too." msgstr "" -#: library/pyexpat.rst:259 +#: library/pyexpat.rst:314 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 "" -#: library/pyexpat.rst:266 +#: library/pyexpat.rst:321 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 " @@ -305,7 +378,7 @@ msgid "" "is false; it may be changed at any time." msgstr "" -#: library/pyexpat.rst:276 +#: library/pyexpat.rst:331 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 " @@ -316,7 +389,7 @@ msgid "" "time." msgstr "" -#: library/pyexpat.rst:284 +#: library/pyexpat.rst:339 msgid "" "The following attributes contain values relating to the most recent error " "encountered by an :class:`xmlparser` object, and will only have correct " @@ -324,26 +397,26 @@ msgid "" "`xml.parsers.expat.ExpatError` exception." msgstr "" -#: library/pyexpat.rst:292 +#: library/pyexpat.rst:347 msgid "Byte index at which an error occurred." msgstr "" -#: library/pyexpat.rst:297 +#: library/pyexpat.rst:352 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 "" -#: library/pyexpat.rst:304 +#: library/pyexpat.rst:359 msgid "Column number at which an error occurred." msgstr "" -#: library/pyexpat.rst:309 +#: library/pyexpat.rst:364 msgid "Line number at which an error occurred." msgstr "" -#: library/pyexpat.rst:311 +#: library/pyexpat.rst:366 msgid "" "The following attributes contain values relating to the current parse " "location in an :class:`xmlparser` object. During a callback reporting a " @@ -353,19 +426,19 @@ msgid "" "whether there was an associated callback)." msgstr "" -#: library/pyexpat.rst:321 +#: library/pyexpat.rst:376 msgid "Current byte index in the parser input." msgstr "" -#: library/pyexpat.rst:326 +#: library/pyexpat.rst:381 msgid "Current column number in the parser input." msgstr "" -#: library/pyexpat.rst:331 +#: library/pyexpat.rst:386 msgid "Current line number in the parser input." msgstr "" -#: library/pyexpat.rst:333 +#: library/pyexpat.rst:388 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 " @@ -374,7 +447,7 @@ msgid "" "unless otherwise stated." msgstr "" -#: library/pyexpat.rst:342 +#: library/pyexpat.rst:397 msgid "" "Called when the XML declaration is parsed. The XML declaration is the " "(optional) declaration of the applicable version of the XML recommendation, " @@ -385,7 +458,7 @@ msgid "" "only available with Expat version 1.95.0 or newer." msgstr "" -#: library/pyexpat.rst:353 +#: library/pyexpat.rst:408 msgid "" "Called when Expat begins parsing the document type declaration (``'``." msgstr "" -#: library/pyexpat.rst:470 +#: library/pyexpat.rst:525 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 "" -#: library/pyexpat.rst:477 +#: library/pyexpat.rst:532 msgid "Called at the end of a CDATA section." msgstr "" -#: library/pyexpat.rst:482 +#: library/pyexpat.rst:537 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 " @@ -519,14 +592,14 @@ msgid "" "supplied." msgstr "" -#: library/pyexpat.rst:489 +#: library/pyexpat.rst:544 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 "" -#: library/pyexpat.rst:496 +#: library/pyexpat.rst:551 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 " @@ -536,7 +609,16 @@ msgid "" "set, no exception is raised by the parser for this condition." msgstr "" -#: library/pyexpat.rst:506 +#: library/pyexpat.rst:563 +msgid "" +"Implementing a handler that accesses local files and/or the network may " +"create a vulnerability to `external entity attacks `_ if :class:`xmlparser` is used with user-" +"provided XML content. Please reflect on your `threat model `_ before implementing this handler." +msgstr "" + +#: library/pyexpat.rst:570 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 " @@ -545,7 +627,7 @@ msgid "" "is opaque and should only be used as described below." msgstr "" -#: library/pyexpat.rst:512 +#: library/pyexpat.rst:576 msgid "" "For external entities to be parsed, this handler must be implemented. It is " "responsible for creating the sub-parser using " @@ -555,28 +637,28 @@ msgid "" "`XML_ERROR_EXTERNAL_ENTITY_HANDLING` error, otherwise parsing will continue." msgstr "" -#: library/pyexpat.rst:520 +#: library/pyexpat.rst:584 msgid "" "If this handler is not provided, external entities are reported by the :attr:" "`DefaultHandler` callback, if provided." msgstr "" -#: library/pyexpat.rst:527 +#: library/pyexpat.rst:591 msgid "ExpatError Exceptions" msgstr "" -#: library/pyexpat.rst:532 +#: library/pyexpat.rst:596 msgid ":exc:`ExpatError` exceptions have a number of interesting attributes:" msgstr "" -#: library/pyexpat.rst:537 +#: library/pyexpat.rst:601 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 "" -#: library/pyexpat.rst:541 +#: library/pyexpat.rst:605 msgid "" "from xml.parsers.expat import ParserCreate, ExpatError, errors\n" "\n" @@ -587,36 +669,36 @@ msgid "" " print(\"Error:\", errors.messages[err.code])" msgstr "" -#: library/pyexpat.rst:549 +#: library/pyexpat.rst:613 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 "" -#: library/pyexpat.rst:556 +#: library/pyexpat.rst:620 msgid "" "Line number on which the error was detected. The first line is numbered " "``1``." msgstr "" -#: library/pyexpat.rst:561 +#: library/pyexpat.rst:625 msgid "" "Character offset into the line where the error occurred. The first column " "is numbered ``0``." msgstr "" -#: library/pyexpat.rst:568 +#: library/pyexpat.rst:632 msgid "Example" msgstr "" -#: library/pyexpat.rst:570 +#: library/pyexpat.rst:634 msgid "" "The following program defines three handlers that just print out their " "arguments. ::" msgstr "" -#: library/pyexpat.rst:573 +#: library/pyexpat.rst:637 msgid "" "import xml.parsers.expat\n" "\n" @@ -640,11 +722,11 @@ msgid "" "\"\"\", 1)" msgstr "" -#: library/pyexpat.rst:594 +#: library/pyexpat.rst:658 msgid "The output from this program is::" msgstr "" -#: library/pyexpat.rst:596 +#: library/pyexpat.rst:660 msgid "" "Start element: parent {'id': 'top'}\n" "Start element: child1 {'name': 'paul'}\n" @@ -658,76 +740,76 @@ msgid "" "End element: parent" msgstr "" -#: library/pyexpat.rst:611 +#: library/pyexpat.rst:675 msgid "Content Model Descriptions" msgstr "" -#: library/pyexpat.rst:617 +#: library/pyexpat.rst:681 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 "" -#: library/pyexpat.rst:621 +#: library/pyexpat.rst:685 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 "" -#: library/pyexpat.rst:625 +#: library/pyexpat.rst:689 msgid "The constants in the model type group are:" msgstr "" -#: library/pyexpat.rst:631 +#: library/pyexpat.rst:695 msgid "" "The element named by the model name was declared to have a content model of " "``ANY``." msgstr "" -#: library/pyexpat.rst:638 +#: library/pyexpat.rst:702 msgid "" "The named element allows a choice from a number of options; this is used for " "content models such as ``(A | B | C)``." msgstr "" -#: library/pyexpat.rst:645 +#: library/pyexpat.rst:709 msgid "Elements which are declared to be ``EMPTY`` have this model type." msgstr "" -#: library/pyexpat.rst:659 +#: library/pyexpat.rst:723 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 "" -#: library/pyexpat.rst:662 +#: library/pyexpat.rst:726 msgid "The constants in the quantifier group are:" msgstr "" -#: library/pyexpat.rst:668 +#: library/pyexpat.rst:732 msgid "No modifier is given, so it can appear exactly once, as for ``A``." msgstr "" -#: library/pyexpat.rst:674 +#: library/pyexpat.rst:738 msgid "The model is optional: it can appear once or not at all, as for ``A?``." msgstr "" -#: library/pyexpat.rst:680 +#: library/pyexpat.rst:744 msgid "The model must occur one or more times (like ``A+``)." msgstr "" -#: library/pyexpat.rst:686 +#: library/pyexpat.rst:750 msgid "The model must occur zero or more times, as for ``A*``." msgstr "" -#: library/pyexpat.rst:692 +#: library/pyexpat.rst:756 msgid "Expat error constants" msgstr "" -#: library/pyexpat.rst:696 +#: library/pyexpat.rst:760 msgid "" "The following constants are provided in the :mod:`xml.parsers.expat.errors` " "module. These constants are useful in interpreting some of the attributes " @@ -738,209 +820,209 @@ msgid "" "XML_ERROR_{CONSTANT_NAME}]`." msgstr "" -#: library/pyexpat.rst:704 +#: library/pyexpat.rst:768 msgid "The ``errors`` module has the following attributes:" msgstr "" -#: library/pyexpat.rst:708 +#: library/pyexpat.rst:772 msgid "A dictionary mapping string descriptions to their error codes." msgstr "" -#: library/pyexpat.rst:715 +#: library/pyexpat.rst:779 msgid "A dictionary mapping numeric error codes to their string descriptions." msgstr "" -#: library/pyexpat.rst:725 +#: library/pyexpat.rst:789 msgid "" "An entity reference in an attribute value referred to an external entity " "instead of an internal entity." msgstr "" -#: library/pyexpat.rst:731 +#: library/pyexpat.rst:795 msgid "" "A character reference referred to a character which is illegal in XML (for " "example, character ``0``, or '``�``')." msgstr "" -#: library/pyexpat.rst:737 +#: library/pyexpat.rst:801 msgid "" "An entity reference referred to an entity which was declared with a " "notation, so cannot be parsed." msgstr "" -#: library/pyexpat.rst:743 +#: library/pyexpat.rst:807 msgid "An attribute was used more than once in a start tag." msgstr "" -#: library/pyexpat.rst:751 +#: library/pyexpat.rst:815 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 "" -#: library/pyexpat.rst:757 +#: library/pyexpat.rst:821 msgid "Something other than whitespace occurred after the document element." msgstr "" -#: library/pyexpat.rst:762 +#: library/pyexpat.rst:826 msgid "" "An XML declaration was found somewhere other than the start of the input " "data." msgstr "" -#: library/pyexpat.rst:767 +#: library/pyexpat.rst:831 msgid "" "The document contains no elements (XML requires all documents to contain " "exactly one top-level element).." msgstr "" -#: library/pyexpat.rst:773 +#: library/pyexpat.rst:837 msgid "Expat was not able to allocate memory internally." msgstr "" -#: library/pyexpat.rst:778 +#: library/pyexpat.rst:842 msgid "A parameter entity reference was found where it was not allowed." msgstr "" -#: library/pyexpat.rst:783 +#: library/pyexpat.rst:847 msgid "An incomplete character was found in the input." msgstr "" -#: library/pyexpat.rst:788 +#: library/pyexpat.rst:852 msgid "" "An entity reference contained another reference to the same entity; possibly " "via a different name, and possibly indirectly." msgstr "" -#: library/pyexpat.rst:794 +#: library/pyexpat.rst:858 msgid "Some unspecified syntax error was encountered." msgstr "" -#: library/pyexpat.rst:799 +#: library/pyexpat.rst:863 msgid "An end tag did not match the innermost open start tag." msgstr "" -#: library/pyexpat.rst:804 +#: library/pyexpat.rst:868 msgid "" "Some token (such as a start tag) was not closed before the end of the stream " "or the next token was encountered." msgstr "" -#: library/pyexpat.rst:810 +#: library/pyexpat.rst:874 msgid "A reference was made to an entity which was not defined." msgstr "" -#: library/pyexpat.rst:815 +#: library/pyexpat.rst:879 msgid "The document encoding is not supported by Expat." msgstr "" -#: library/pyexpat.rst:820 +#: library/pyexpat.rst:884 msgid "A CDATA marked section was not closed." msgstr "" -#: library/pyexpat.rst:828 +#: library/pyexpat.rst:892 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 "" -#: library/pyexpat.rst:841 +#: library/pyexpat.rst:905 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 "" -#: library/pyexpat.rst:848 +#: library/pyexpat.rst:912 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 "" -#: library/pyexpat.rst:855 +#: library/pyexpat.rst:919 msgid "An undeclared prefix was found when namespace processing was enabled." msgstr "" -#: library/pyexpat.rst:860 +#: library/pyexpat.rst:924 msgid "" "The document attempted to remove the namespace declaration associated with a " "prefix." msgstr "" -#: library/pyexpat.rst:866 +#: library/pyexpat.rst:930 msgid "A parameter entity contained incomplete markup." msgstr "" -#: library/pyexpat.rst:871 +#: library/pyexpat.rst:935 msgid "The document contained no document element at all." msgstr "" -#: library/pyexpat.rst:876 +#: library/pyexpat.rst:940 msgid "There was an error parsing a text declaration in an external entity." msgstr "" -#: library/pyexpat.rst:881 +#: library/pyexpat.rst:945 msgid "Characters were found in the public id that are not allowed." msgstr "" -#: library/pyexpat.rst:886 +#: library/pyexpat.rst:950 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 "" -#: library/pyexpat.rst:892 +#: library/pyexpat.rst:956 msgid "" "An attempt to resume the parser was made when the parser had not been " "suspended." msgstr "" -#: library/pyexpat.rst:930 library/pyexpat.rst:935 +#: library/pyexpat.rst:994 library/pyexpat.rst:999 msgid "This should not be reported to Python applications." msgstr "" -#: library/pyexpat.rst:902 +#: library/pyexpat.rst:966 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 "" -#: library/pyexpat.rst:912 +#: library/pyexpat.rst:976 msgid "" "An attempt was made to undeclare reserved namespace prefix ``xml`` or to " "bind it to another namespace URI." msgstr "" -#: library/pyexpat.rst:919 +#: library/pyexpat.rst:983 msgid "" "An attempt was made to declare or undeclare reserved namespace prefix " "``xmlns``." msgstr "" -#: library/pyexpat.rst:924 +#: library/pyexpat.rst:988 msgid "" "An attempt was made to bind the URI of one the reserved namespace prefixes " "``xml`` and ``xmlns`` to another namespace prefix." msgstr "" -#: library/pyexpat.rst:940 +#: library/pyexpat.rst:1004 msgid "" "The limit on input amplification factor (from DTD and entities) has been " "breached." msgstr "" -#: library/pyexpat.rst:946 +#: library/pyexpat.rst:1010 msgid "The parser was tried to be stopped or suspended before it started." msgstr "" -#: library/pyexpat.rst:952 +#: library/pyexpat.rst:1016 msgid "Footnotes" msgstr "" -#: library/pyexpat.rst:953 +#: library/pyexpat.rst:1017 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://" @@ -948,14 +1030,14 @@ msgid "" "org/assignments/character-sets/character-sets.xhtml." msgstr "" -#: library/pyexpat.rst:26 +#: library/pyexpat.rst:25 msgid "Expat" msgstr "" -#: library/pyexpat.rst:36 +#: library/pyexpat.rst:35 msgid "module" msgstr "" -#: library/pyexpat.rst:36 +#: library/pyexpat.rst:35 msgid "pyexpat" msgstr "" diff --git a/library/python.po b/library/python.po index 83336996..39bad888 100644 --- a/library/python.po +++ b/library/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/queue.po b/library/queue.po index 86ea4e30..e68cc99f 100644 --- a/library/queue.po +++ b/library/queue.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -189,7 +189,7 @@ msgstr "" msgid "Equivalent to ``put(item, block=False)``." msgstr "" -#: library/queue.rst:297 +#: library/queue.rst:314 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 " @@ -215,7 +215,7 @@ msgid "" "the queue has been shut down immediately." msgstr "" -#: library/queue.rst:307 +#: library/queue.rst:324 msgid "Equivalent to ``get(False)``." msgstr "" @@ -241,21 +241,15 @@ msgstr "" #: library/queue.rst:190 msgid "" -"``shutdown(immediate=True)`` calls :meth:`task_done` for each remaining item " -"in the queue." -msgstr "" - -#: library/queue.rst:193 -msgid "" "Raises a :exc:`ValueError` if called more times than there were items placed " "in the queue." msgstr "" -#: library/queue.rst:199 +#: library/queue.rst:196 msgid "Blocks until all items in the queue have been gotten and processed." msgstr "" -#: library/queue.rst:201 +#: library/queue.rst:198 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:" @@ -264,6 +258,10 @@ msgid "" "unblocks." msgstr "" +#: library/queue.rst:205 +msgid "Waiting for task completion" +msgstr "" + #: library/queue.rst:207 msgid "Example of how to wait for enqueued tasks to be completed::" msgstr "" @@ -300,54 +298,78 @@ msgstr "" #: library/queue.rst:236 msgid "" -":class:`Queue` objects can be made to prevent further interaction by " -"shutting them down." +"When no longer needed, :class:`Queue` objects can be wound down until empty " +"or terminated immediately with a hard shutdown." msgstr "" #: library/queue.rst:241 -msgid "" -"Shut down the queue, making :meth:`~Queue.get` and :meth:`~Queue.put` raise :" -"exc:`ShutDown`." +msgid "Put a :class:`Queue` instance into a shutdown mode." msgstr "" -#: library/queue.rst:244 +#: library/queue.rst:243 msgid "" -"By default, :meth:`~Queue.get` on a shut down queue will only raise once the " -"queue is empty. Set *immediate* to true to make :meth:`~Queue.get` raise " -"immediately instead." +"The queue can no longer grow. Future calls to :meth:`~Queue.put` raise :exc:" +"`ShutDown`. Currently blocked callers of :meth:`~Queue.put` will be " +"unblocked and will raise :exc:`ShutDown` in the formerly blocked thread." msgstr "" #: library/queue.rst:248 msgid "" -"All blocked callers of :meth:`~Queue.put` and :meth:`~Queue.get` will be " -"unblocked. If *immediate* is true, a task will be marked as done for each " -"remaining item in the queue, which may unblock callers of :meth:`~Queue." -"join`." +"If *immediate* is false (the default), the queue can be wound down normally " +"with :meth:`~Queue.get` calls to extract tasks that have already been loaded." msgstr "" -#: library/queue.rst:257 +#: library/queue.rst:252 +msgid "" +"And if :meth:`~Queue.task_done` is called for each remaining task, a " +"pending :meth:`~Queue.join` will be unblocked normally." +msgstr "" + +#: library/queue.rst:255 +msgid "" +"Once the queue is empty, future calls to :meth:`~Queue.get` will raise :exc:" +"`ShutDown`." +msgstr "" + +#: library/queue.rst:258 +msgid "" +"If *immediate* is true, the queue is terminated immediately. The queue is " +"drained to be completely empty and the count of unfinished tasks is reduced " +"by the number of tasks drained. If unfinished tasks is zero, callers of :" +"meth:`~Queue.join` are unblocked. Also, blocked callers of :meth:`~Queue." +"get` are unblocked and will raise :exc:`ShutDown` because the queue is empty." +msgstr "" + +#: library/queue.rst:266 +msgid "" +"Use caution when using :meth:`~Queue.join` with *immediate* set to true. " +"This unblocks the join even when no work has been done on the tasks, " +"violating the usual invariant for joining a queue." +msgstr "" + +#: library/queue.rst:274 msgid "SimpleQueue Objects" msgstr "" -#: library/queue.rst:259 +#: library/queue.rst:276 msgid "" ":class:`SimpleQueue` objects provide the public methods described below." msgstr "" -#: library/queue.rst:263 +#: library/queue.rst:280 msgid "" "Return the approximate size of the queue. Note, qsize() > 0 doesn't " "guarantee that a subsequent get() will not block." msgstr "" -#: library/queue.rst:269 +#: library/queue.rst:286 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 "" -#: library/queue.rst:276 +#: library/queue.rst:293 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). " @@ -355,7 +377,7 @@ msgid "" "compatibility with :meth:`Queue.put`." msgstr "" -#: library/queue.rst:282 +#: library/queue.rst:299 msgid "" "This method has a C implementation which is reentrant. That is, a ``put()`` " "or ``get()`` call can be interrupted by another ``put()`` call in the same " @@ -364,23 +386,23 @@ msgid "" "or :mod:`weakref` callbacks." msgstr "" -#: library/queue.rst:291 +#: library/queue.rst:308 msgid "" "Equivalent to ``put(item, block=False)``, provided for compatibility with :" "meth:`Queue.put_nowait`." msgstr "" -#: library/queue.rst:312 +#: library/queue.rst:329 msgid "Class :class:`multiprocessing.Queue`" msgstr "" -#: library/queue.rst:313 +#: library/queue.rst:330 msgid "" "A queue class for use in a multi-processing (rather than multi-threading) " "context." msgstr "" -#: library/queue.rst:316 +#: library/queue.rst:333 msgid "" ":class:`collections.deque` is an alternative implementation of unbounded " "queues with fast atomic :meth:`~collections.deque.append` and :meth:" diff --git a/library/quopri.po b/library/quopri.po index 16edb30d..7c875978 100644 --- a/library/quopri.po +++ b/library/quopri.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/random.po b/library/random.po index f3ca337f..350568c3 100644 --- a/library/random.po +++ b/library/random.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-08-18 18:41+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -815,7 +815,15 @@ msgstr "" "Αντικαταστήστε αυτή τη μέθοδο στις υποκλάσεις για να προσαρμόσετε τη :meth:" "`~random.getrandbits` συμπεριφορά των :class:`!Random` στιγμιότυπων." -#: library/random.rst:453 +#: library/random.rst:452 +msgid "" +"Override this method in subclasses to customise the :meth:`~random." +"randbytes` behaviour of :class:`!Random` instances." +msgstr "" +"Αντικαταστήστε αυτή τη μέθοδο στις υποκλάσεις για να προσαρμόσετε τη :meth:" +"`~random.randbytes` συμπεριφορά των :class:`!Random` στιγμιότυπων." + +#: library/random.rst:458 msgid "" "Class that uses the :func:`os.urandom` function for generating random " "numbers from sources provided by the operating system. Not available on all " @@ -832,11 +840,11 @@ msgstr "" "`getstate` και :meth:`setstate` προκαλούν :exc:`NotImplementedError` αν " "κληθούν." -#: library/random.rst:462 +#: library/random.rst:467 msgid "Notes on Reproducibility" msgstr "Σημειώσεις για την Αναπαραγωγιμότητα" -#: library/random.rst:464 +#: library/random.rst:469 msgid "" "Sometimes it is useful to be able to reproduce the sequences given by a " "pseudo-random number generator. By reusing a seed value, the same sequence " @@ -848,7 +856,7 @@ msgstr "" "τιμή seed, η ίδια ακολουθία θα πρέπει να είναι αναπαραγωγίσιμη από εκτέλεση " "σε εκτέλεση, εφόσον δεν τρέχουν πολλαπλά νήματα ταυτόχρονα." -#: library/random.rst:468 +#: library/random.rst:473 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:" @@ -857,7 +865,7 @@ msgstr "" "υπόκεινται σε αλλαγές μεταξύ εκδόσεων της Python, αλλά δύο πτυχές εγγυώνται " "ότι δεν θα αλλάξουν:" -#: library/random.rst:471 +#: library/random.rst:476 msgid "" "If a new seeding method is added, then a backward compatible seeder will be " "offered." @@ -865,7 +873,7 @@ msgstr "" "Εάν προστεθεί μια νέα μέθοδος σποράς, τότε θα προσφέρεται ένας σπορέας " "συμβατός με παλαιότερες εκδόσεις." -#: library/random.rst:474 +#: library/random.rst:479 msgid "" "The generator's :meth:`~Random.random` method will continue to produce the " "same sequence when the compatible seeder is given the same seed." @@ -873,15 +881,15 @@ msgstr "" "Η μέθοδος :meth:`~Random.random` της γεννήτριας θα συνεχίσει να παράγει την " "ίδια ακολουθία όταν ο συμβατός σπορέας δίνεται την ίδια τιμή seed." -#: library/random.rst:480 +#: library/random.rst:485 msgid "Examples" msgstr "Παραδείγματα" -#: library/random.rst:482 +#: library/random.rst:487 msgid "Basic examples::" msgstr "Βασικά παραδείγματα::" -#: library/random.rst:484 +#: library/random.rst:489 msgid "" ">>> random() # Random float: 0.0 <= x < 1.0\n" "0.37444887175646646\n" @@ -941,11 +949,11 @@ msgstr "" ">>> sample([10, 20, 30, 40, 50], k=4) # Four samples without replacement\n" "[40, 10, 50, 30]" -#: library/random.rst:510 +#: library/random.rst:515 msgid "Simulations::" msgstr "Προσομοιώσεις::" -#: library/random.rst:512 +#: library/random.rst:517 msgid "" ">>> # Six roulette wheel spins (weighted sampling with replacement)\n" ">>> choices(['red', 'black', 'green'], [18, 18, 2], k=6)\n" @@ -993,7 +1001,7 @@ msgstr "" ">>> sum(trial() for i in range(10_000)) / 10_000\n" "0.7958" -#: library/random.rst:535 +#: library/random.rst:540 msgid "" "Example of `statistical bootstrapping `_ using resampling with replacement to estimate " @@ -1003,7 +1011,7 @@ msgstr "" "Bootstrapping_(statistics)>` χρησιμοποιώντας δειγματοληψία με αντικατάσταση " "για να εκτιμήσει ένα διάστημα εμπιστοσύνης για τον μέσο όρο ενός δείγματος::" -#: library/random.rst:539 +#: library/random.rst:544 msgid "" "# https://www.thoughtco.com/example-of-bootstrapping-3126155\n" "from statistics import fmean as mean\n" @@ -1023,7 +1031,7 @@ msgstr "" "print(f'The sample mean of {mean(data):.1f} has a 90% confidence '\n" " f'interval from {means[5]:.1f} to {means[94]:.1f}')" -#: library/random.rst:548 +#: library/random.rst:553 msgid "" "Example of a `resampling permutation test `_ to determine the statistical " @@ -1036,7 +1044,7 @@ msgstr "" "μιας παρατηρούμενης διαφοράς μεταξύ των επιδράσεων ενός φαρμάκου σε σύγκριση " "με ένα εικονικό φάρμακο::" -#: library/random.rst:554 +#: library/random.rst:559 msgid "" "# Example from \"Statistics is Easy\" by Dennis Shasha and Manda Wilson\n" "from statistics import fmean as mean\n" @@ -1088,14 +1096,14 @@ msgstr "" "print(f'hypothesis that there is no difference between the drug and the " "placebo.')" -#: library/random.rst:575 +#: library/random.rst:580 msgid "" "Simulation of arrival times and service deliveries for a multiserver queue::" msgstr "" "Προσομοίωση χρόνων άφιξης και παραδόσεων υπηρεσιών για μια ουρά πολλαπλών " "διακομιστών::" -#: library/random.rst:577 +#: library/random.rst:582 msgid "" "from heapq import heapify, heapreplace\n" "from random import expovariate, gauss\n" @@ -1149,7 +1157,7 @@ msgstr "" "print(f'Mean wait: {mean(waits):.1f} Max wait: {max(waits):.1f}')\n" "print('Quartiles:', [round(q, 1) for q in quantiles(waits)])" -#: library/random.rst:604 +#: library/random.rst:609 msgid "" "`Statistics for Hackers `_ a " "video tutorial by `Jake Vanderplas `_ a simulation of a marketplace by `Peter Norvig `_ a tutorial by `Peter Norvig " @@ -1189,11 +1197,11 @@ msgstr "" "πιθανοτήτων, πώς να γράψετε προσομοιώσεις, και πώς να εκτελέσετε ανάλυση " "δεδομένων χρησιμοποιώντας Python." -#: library/random.rst:625 +#: library/random.rst:630 msgid "Recipes" msgstr "Συνταγές" -#: library/random.rst:627 +#: library/random.rst:632 msgid "" "These recipes show how to efficiently make random selections from the " "combinatoric iterators in the :mod:`itertools` module:" @@ -1201,7 +1209,7 @@ msgstr "" "Αυτές οι συνταγές δείχνουν πώς να κάνετε αποτελεσματικές τυχαίες επιλογές " "από τους συνδυαστικούς επαναληπτές στο module :mod:`itertools` :" -#: library/random.rst:630 +#: library/random.rst:635 msgid "" "def random_product(*args, repeat=1):\n" " \"Random selection from itertools.product(*args, **kwds)\"\n" @@ -1259,7 +1267,7 @@ msgstr "" " indices = sorted(random.choices(range(n), k=r))\n" " return tuple(pool[i] for i in indices)" -#: library/random.rst:659 +#: library/random.rst:664 msgid "" "The default :func:`.random` returns multiples of 2⁻⁵³ in the range *0.0 ≤ x " "< 1.0*. All such numbers are evenly spaced and are exactly representable as " @@ -1273,7 +1281,7 @@ msgstr "" "αναπαραστάσιμα floats σε αυτό το διάστημα δεν είναι δυνατές επιλογές. Για " "παράδειγμα, ``0.05954861408025609`` δεν είναι πολλαπλάσιο του 2⁻⁵³." -#: library/random.rst:665 +#: library/random.rst:670 msgid "" "The following recipe takes a different approach. All floats in the interval " "are possible selections. The mantissa comes from a uniform distribution of " @@ -1287,7 +1295,7 @@ msgstr "" "από μια γεωμετρική κατανομή όπου οι εκθέτες μικρότεροι από *−53* " "εμφανίζονται μισή φορά συχνότερα από τον επόμενο μεγαλύτερο εκθέτη." -#: library/random.rst:673 +#: library/random.rst:678 msgid "" "from random import Random\n" "from math import ldexp\n" @@ -1317,7 +1325,7 @@ msgstr "" " exponent += x.bit_length() - 32\n" " return ldexp(mantissa, exponent)" -#: library/random.rst:687 +#: library/random.rst:692 msgid "" "All :ref:`real valued distributions ` in the " "class will use the new method::" @@ -1325,7 +1333,7 @@ msgstr "" "Όλες οι :ref:`πραγματικές κατανομές ` στην κλάση " "θα χρησιμοποιούν τη νέα μέθοδο::" -#: library/random.rst:690 +#: library/random.rst:695 msgid "" ">>> fr = FullRandom()\n" ">>> fr.random()\n" @@ -1339,7 +1347,7 @@ msgstr "" ">>> fr.expovariate(0.25)\n" "8.87925541791544" -#: library/random.rst:696 +#: library/random.rst:701 msgid "" "The recipe is conceptually equivalent to an algorithm that chooses from all " "the multiples of 2⁻¹⁰⁷⁴ in the range *0.0 ≤ x < 1.0*. All such numbers are " @@ -1354,7 +1362,7 @@ msgstr "" "(Η τιμή 2⁻¹⁰⁷⁴ είναι το μικρότερο θετικό μη κανονικοποιημένο float και " "ισούται με ``math.ulp(0.0)``.)" -#: library/random.rst:705 +#: library/random.rst:710 msgid "" "`Generating Pseudo-random Floating-Point Values `_ a paper by Allen B. Downey describing " @@ -1366,40 +1374,40 @@ msgstr "" "περιγράφει τρόπους δημιουργίας πιο λεπτομερών floats από ό,τι παράγονται " "συνήθως από :func:`.random`." -#: library/random.rst:713 +#: library/random.rst:718 msgid "Command-line usage" msgstr "Χρήση από τη γραμμή εντολών" -#: library/random.rst:717 +#: library/random.rst:722 msgid "The :mod:`!random` module can be executed from the command line." msgstr "Το module :mod:`!random` μπορεί να εκτελεστεί από τη γραμμή εντολών." -#: library/random.rst:719 +#: library/random.rst:724 msgid "" "python -m random [-h] [-c CHOICE [CHOICE ...] | -i N | -f N] [input ...]" msgstr "" "python -m random [-h] [-c CHOICE [CHOICE ...] | -i N | -f N] [input ...]" -#: library/random.rst:723 +#: library/random.rst:728 msgid "The following options are accepted:" msgstr "Αποδέχεται τις παρακάτω επιλογές:" -#: library/random.rst:729 +#: library/random.rst:734 msgid "Show the help message and exit." msgstr "Εμφανίζει το μήνυμα βοήθειας και εξέρχεται." -#: library/random.rst:734 +#: library/random.rst:739 msgid "Print a random choice, using :meth:`choice`." msgstr "Εκτυπώνει μια τυχαία επιλογή, χρησιμοποιώντας τη :meth:`choice`." -#: library/random.rst:739 +#: library/random.rst:744 msgid "" "Print a random integer between 1 and N inclusive, using :meth:`randint`." msgstr "" "Εκτυπώνει έναν τυχαίο ακέραιο μεταξύ 1 και N συμπεριλαμβανομένου, " "χρησιμοποιώντας τη :meth:`randint`." -#: library/random.rst:744 +#: library/random.rst:749 msgid "" "Print a random floating-point number between 0 and N inclusive, using :meth:" "`uniform`." @@ -1407,33 +1415,33 @@ msgstr "" "Εκτυπώνει έναν τυχαίο αριθμό κινητής υποδιαστολής μεταξύ 0 και N " "συμπεριλαμβανομένου, χρησιμοποιώντας τη :meth:`uniform`." -#: library/random.rst:747 +#: library/random.rst:752 msgid "If no options are given, the output depends on the input:" msgstr "Εάν δεν δοθούν επιλογές, η έξοδος εξαρτάται από την είσοδο:" -#: library/random.rst:749 +#: library/random.rst:754 msgid "String or multiple: same as :option:`--choice`." msgstr "Συμβολοσειρά ή πολλαπλά: ίδια με την :option:`--choice`." -#: library/random.rst:750 +#: library/random.rst:755 msgid "Integer: same as :option:`--integer`." msgstr "Ακέραιος: ίδια με την :option:`--integer`." -#: library/random.rst:751 +#: library/random.rst:756 msgid "Float: same as :option:`--float`." msgstr "Αριθμός κινητής υποδιαστολής: ίδια με την :option:`--float`." -#: library/random.rst:756 +#: library/random.rst:761 msgid "Command-line example" msgstr "Παράδειγμα από τη γραμμή εντολών" -#: library/random.rst:758 +#: library/random.rst:763 msgid "Here are some examples of the :mod:`!random` command-line interface:" msgstr "" "Εδώ είναι μερικά παραδείγματα της διεπαφής γραμμής εντολών του :mod:`!" "random`:" -#: library/random.rst:760 +#: library/random.rst:765 msgid "" "$ # Choose one at random\n" "$ python -m random egg bacon sausage spam \"Lobster Thermidor aux crevettes " diff --git a/library/re.po b/library/re.po index 88485145..6d20ed6e 100644 --- a/library/re.po +++ b/library/re.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/readline.po b/library/readline.po index 9e8a4507..6ee8571b 100644 --- a/library/readline.po +++ b/library/readline.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -52,21 +52,29 @@ msgid "" "availability>` or :ref:`WebAssembly platforms `." msgstr "" -#: library/readline.rst:31 +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." +msgstr "" + +#: library/readline.rst:33 msgid "" "The underlying Readline library API may be implemented by the ``editline`` " "(``libedit``) library instead of GNU readline. On macOS the :mod:`readline` " "module detects which library is being used at run time." msgstr "" -#: library/readline.rst:36 +#: library/readline.rst:38 msgid "" "The configuration file for ``editline`` is different from that of GNU " "readline. If you programmatically load configuration strings you can use :" "data:`backend` to determine which library is being used." msgstr "" -#: library/readline.rst:40 +#: library/readline.rst:42 msgid "" "If you use ``editline``/``libedit`` readline emulation on macOS, the " "initialization file located in your home directory is named ``.editrc``. For " @@ -74,40 +82,40 @@ msgid "" "keybindings and TAB completion::" msgstr "" -#: library/readline.rst:45 +#: library/readline.rst:47 msgid "" "python:bind -v\n" "python:bind ^I rl_complete" msgstr "" -#: library/readline.rst:48 +#: library/readline.rst:50 msgid "" "Also note that different libraries may use different history file formats. " "When switching the underlying library, existing history files may become " "unusable." msgstr "" -#: library/readline.rst:54 +#: library/readline.rst:56 msgid "" "The name of the underlying Readline library being used, either " "``\"readline\"`` or ``\"editline\"``." msgstr "" -#: library/readline.rst:60 +#: library/readline.rst:62 msgid "Init file" msgstr "" -#: library/readline.rst:62 +#: library/readline.rst:64 msgid "The following functions relate to the init file and user configuration:" msgstr "" -#: library/readline.rst:67 +#: library/readline.rst:69 msgid "" "Execute the init line provided in the *string* argument. This calls :c:func:" "`!rl_parse_and_bind` in the underlying library." msgstr "" -#: library/readline.rst:73 +#: library/readline.rst:75 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 " @@ -116,45 +124,45 @@ msgid "" "regardless of which file the library resolves." msgstr "" -#: library/readline.rst:122 library/readline.rst:149 +#: library/readline.rst:124 library/readline.rst:151 msgid "The auditing event was added." msgstr "" -#: library/readline.rst:84 +#: library/readline.rst:86 msgid "Line buffer" msgstr "" -#: library/readline.rst:86 +#: library/readline.rst:88 msgid "The following functions operate on the line buffer:" msgstr "" -#: library/readline.rst:91 +#: library/readline.rst:93 msgid "" "Return the current contents of the line buffer (:c:data:`!rl_line_buffer` in " "the underlying library)." msgstr "" -#: library/readline.rst:97 +#: library/readline.rst:99 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 "" -#: library/readline.rst:104 +#: library/readline.rst:106 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 "" -#: library/readline.rst:109 +#: library/readline.rst:111 msgid "History file" msgstr "" -#: library/readline.rst:111 +#: library/readline.rst:113 msgid "The following functions operate on a history file:" msgstr "" -#: library/readline.rst:116 +#: library/readline.rst:118 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 " @@ -162,7 +170,7 @@ msgid "" "with the file name if given and :code:`\"~/.history\"` otherwise." msgstr "" -#: library/readline.rst:128 +#: library/readline.rst:130 msgid "" "Save the history list to a readline history file, overwriting any existing " "file. The default filename is :file:`~/.history`. This calls :c:func:`!" @@ -171,7 +179,7 @@ msgid "" "otherwise." msgstr "" -#: library/readline.rst:140 +#: library/readline.rst:142 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:" @@ -181,7 +189,7 @@ msgid "" "given and :code:`\"~/.history\"` otherwise." msgstr "" -#: library/readline.rst:156 +#: library/readline.rst:158 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 " @@ -189,72 +197,72 @@ msgid "" "library. Negative values imply unlimited history file size." msgstr "" -#: library/readline.rst:164 +#: library/readline.rst:166 msgid "History list" msgstr "" -#: library/readline.rst:166 +#: library/readline.rst:168 msgid "The following functions operate on a global history list:" msgstr "" -#: library/readline.rst:171 +#: library/readline.rst:173 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 "" -#: library/readline.rst:178 +#: library/readline.rst:180 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 "" -#: library/readline.rst:185 +#: library/readline.rst:187 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 "" -#: library/readline.rst:191 +#: library/readline.rst:193 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 "" -#: library/readline.rst:198 +#: library/readline.rst:200 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 "" -#: library/readline.rst:205 +#: library/readline.rst:207 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 "" -#: library/readline.rst:211 +#: library/readline.rst:213 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 "" -#: library/readline.rst:219 +#: library/readline.rst:221 msgid "" "Auto history is enabled by default, and changes to this do not persist " "across multiple sessions." msgstr "" -#: library/readline.rst:224 +#: library/readline.rst:226 msgid "Startup hooks" msgstr "" -#: library/readline.rst:229 +#: library/readline.rst:231 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 " @@ -263,7 +271,7 @@ msgid "" "readline prints the first prompt." msgstr "" -#: library/readline.rst:238 +#: library/readline.rst:240 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 " @@ -274,11 +282,11 @@ msgid "" "of the library that supports it." msgstr "" -#: library/readline.rst:250 +#: library/readline.rst:252 msgid "Completion" msgstr "" -#: library/readline.rst:252 +#: library/readline.rst:254 msgid "" "The following functions relate to implementing a custom word completion " "function. This is typically operated by the Tab key, and can suggest and " @@ -288,7 +296,7 @@ msgid "" "custom completer, a different set of word delimiters should be set." msgstr "" -#: library/readline.rst:262 +#: library/readline.rst:264 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 " @@ -298,7 +306,7 @@ msgid "" "starting with *text*." msgstr "" -#: library/readline.rst:269 +#: library/readline.rst:271 msgid "" "The installed completer function is invoked by the *entry_func* callback " "passed to :c:func:`!rl_completion_matches` in the underlying library. The " @@ -306,19 +314,19 @@ msgid "" "rl_attempted_completion_function` callback of the underlying library." msgstr "" -#: library/readline.rst:278 +#: library/readline.rst:280 msgid "" "Get the completer function, or ``None`` if no completer function has been " "set." msgstr "" -#: library/readline.rst:283 +#: library/readline.rst:285 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 "" -#: library/readline.rst:291 +#: library/readline.rst:293 msgid "" "Get the beginning or ending index of the completion scope. These indexes are " "the *start* and *end* arguments passed to the :c:data:`!" @@ -328,7 +336,7 @@ msgid "" "differently than libreadline." msgstr "" -#: library/readline.rst:302 +#: library/readline.rst:304 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 " @@ -336,7 +344,7 @@ msgid "" "in the underlying library." msgstr "" -#: library/readline.rst:310 +#: library/readline.rst:312 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 " @@ -347,11 +355,11 @@ msgid "" "each time matches need to be displayed." msgstr "" -#: library/readline.rst:323 +#: library/readline.rst:325 msgid "Example" msgstr "" -#: library/readline.rst:325 +#: library/readline.rst:327 msgid "" "The following example demonstrates how to use the :mod:`readline` module's " "history reading and writing functions to automatically load and save a " @@ -360,7 +368,7 @@ msgid "" "sessions from the user's :envvar:`PYTHONSTARTUP` file. ::" msgstr "" -#: library/readline.rst:331 +#: library/readline.rst:333 msgid "" "import atexit\n" "import os\n" @@ -377,19 +385,19 @@ msgid "" "atexit.register(readline.write_history_file, histfile)" msgstr "" -#: library/readline.rst:345 +#: library/readline.rst:347 msgid "" "This code is actually automatically run when Python is run in :ref:" "`interactive mode ` (see :ref:`rlcompleter-config`)." msgstr "" -#: library/readline.rst:348 +#: library/readline.rst:350 msgid "" "The following example achieves the same goal but supports concurrent " "interactive sessions, by only appending the new history. ::" msgstr "" -#: library/readline.rst:351 +#: library/readline.rst:353 msgid "" "import atexit\n" "import os\n" @@ -410,13 +418,13 @@ msgid "" "atexit.register(save, h_len, histfile)" msgstr "" -#: library/readline.rst:369 +#: library/readline.rst:371 msgid "" "The following example extends the :class:`code.InteractiveConsole` class to " "support history save/restore. ::" msgstr "" -#: library/readline.rst:372 +#: library/readline.rst:374 msgid "" "import atexit\n" "import code\n" diff --git a/library/removed.po b/library/removed.po index 550c68ba..9431b175 100644 --- a/library/removed.po +++ b/library/removed.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/reprlib.po b/library/reprlib.po index 61300d7d..8eeb31c4 100644 --- a/library/reprlib.po +++ b/library/reprlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/resource.po b/library/resource.po index 45df9e53..33f057e9 100644 --- a/library/resource.po +++ b/library/resource.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -27,8 +27,8 @@ msgid "" "resources utilized by a program." msgstr "" -#: library/resource.rst:104 library/resource.rst:192 library/resource.rst:210 -#: library/resource.rst:229 library/resource.rst:252 library/resource.rst:268 +#: library/resource.rst:104 library/resource.rst:193 library/resource.rst:211 +#: library/resource.rst:230 library/resource.rst:255 library/resource.rst:273 msgid "Availability" msgstr "" @@ -89,7 +89,7 @@ msgstr "" 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 " +"of :const:`~resource.RLIM_INFINITY` can be used to request a limit that is " "unlimited." msgstr "" @@ -97,7 +97,7 @@ msgstr "" 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 " +"limit. Specifying a limit of :const:`~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 " @@ -111,7 +111,7 @@ msgid "" msgstr "" #: library/resource.rst:81 -msgid "VxWorks only supports setting :data:`RLIMIT_NOFILE`." +msgid "VxWorks only supports setting :const:`RLIMIT_NOFILE`." msgstr "" #: library/resource.rst:83 @@ -175,9 +175,10 @@ msgstr "" #: library/resource.rst:129 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.)" +"this limit is exceeded, a :const:`~signal.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 "" #: library/resource.rst:137 @@ -216,45 +217,47 @@ msgid "The maximum address space which may be locked in memory." msgstr "" #: library/resource.rst:178 -msgid "The largest area of mapped memory which the process may occupy." +msgid "" +"The largest area of mapped memory which the process may occupy. Usually an " +"alias of :const:`RLIMIT_AS`." msgstr "" -#: library/resource.rst:185 +#: library/resource.rst:186 msgid "" "The maximum area (in bytes) of address space which may be taken by the " "process." msgstr "" -#: library/resource.rst:190 +#: library/resource.rst:191 msgid "The number of bytes that can be allocated for POSIX message queues." msgstr "" -#: library/resource.rst:199 +#: library/resource.rst:200 msgid "The ceiling for the process's nice level (calculated as 20 - rlim_cur)." msgstr "" -#: library/resource.rst:208 +#: library/resource.rst:209 msgid "The ceiling of the real-time priority." msgstr "" -#: library/resource.rst:217 +#: library/resource.rst:218 msgid "" "The time limit (in microseconds) on CPU time that a process can spend under " "real-time scheduling without making a blocking syscall." msgstr "" -#: library/resource.rst:227 +#: library/resource.rst:228 msgid "The number of signals which the process may queue." msgstr "" -#: library/resource.rst:235 +#: library/resource.rst:237 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 "" -#: library/resource.rst:245 +#: library/resource.rst:248 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 " @@ -263,23 +266,23 @@ msgid "" "this sysctl." msgstr "" -#: library/resource.rst:258 +#: library/resource.rst:262 msgid "The maximum number of pseudo-terminals created by this user id." msgstr "" -#: library/resource.rst:266 +#: library/resource.rst:271 msgid "The maximum number of kqueues this user id is allowed to create." msgstr "" -#: library/resource.rst:273 +#: library/resource.rst:279 msgid "Resource Usage" msgstr "" -#: library/resource.rst:275 +#: library/resource.rst:281 msgid "These functions are used to retrieve resource usage information:" msgstr "" -#: library/resource.rst:280 +#: library/resource.rst:286 msgid "" "This function returns an object that describes the resources consumed by " "either the current process or its children, as specified by the *who* " @@ -287,11 +290,11 @@ msgid "" "`!RUSAGE_\\*` constants described below." msgstr "" -#: library/resource.rst:285 +#: library/resource.rst:291 msgid "A simple example::" msgstr "" -#: library/resource.rst:287 +#: library/resource.rst:293 msgid "" "from resource import *\n" "import time\n" @@ -306,7 +309,7 @@ msgid "" "print(getrusage(RUSAGE_SELF))" msgstr "" -#: library/resource.rst:299 +#: library/resource.rst:305 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 " @@ -315,15 +318,15 @@ msgid "" "is using." msgstr "" -#: library/resource.rst:304 +#: library/resource.rst:310 msgid "" "For backward compatibility, the return value is also accessible as a tuple " "of 16 elements." msgstr "" -#: library/resource.rst:307 +#: library/resource.rst:313 msgid "" -"The fields :attr:`ru_utime` and :attr:`ru_stime` of the return value are " +"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:" @@ -331,249 +334,249 @@ msgid "" "summary is presented here:" msgstr "" -#: library/resource.rst:314 +#: library/resource.rst:320 msgid "Index" msgstr "" -#: library/resource.rst:314 +#: library/resource.rst:320 msgid "Field" msgstr "" -#: library/resource.rst:314 +#: library/resource.rst:320 msgid "Resource" msgstr "" -#: library/resource.rst:316 +#: library/resource.rst:322 msgid "``0``" msgstr "" -#: library/resource.rst:316 -msgid ":attr:`ru_utime`" +#: library/resource.rst:322 +msgid ":attr:`!ru_utime`" msgstr "" -#: library/resource.rst:316 +#: library/resource.rst:322 msgid "time in user mode (float seconds)" msgstr "" -#: library/resource.rst:318 +#: library/resource.rst:324 msgid "``1``" msgstr "" -#: library/resource.rst:318 -msgid ":attr:`ru_stime`" +#: library/resource.rst:324 +msgid ":attr:`!ru_stime`" msgstr "" -#: library/resource.rst:318 +#: library/resource.rst:324 msgid "time in system mode (float seconds)" msgstr "" -#: library/resource.rst:320 +#: library/resource.rst:326 msgid "``2``" msgstr "" -#: library/resource.rst:320 -msgid ":attr:`ru_maxrss`" +#: library/resource.rst:326 +msgid ":attr:`!ru_maxrss`" msgstr "" -#: library/resource.rst:320 +#: library/resource.rst:326 msgid "maximum resident set size" msgstr "" -#: library/resource.rst:322 +#: library/resource.rst:328 msgid "``3``" msgstr "" -#: library/resource.rst:322 -msgid ":attr:`ru_ixrss`" +#: library/resource.rst:328 +msgid ":attr:`!ru_ixrss`" msgstr "" -#: library/resource.rst:322 +#: library/resource.rst:328 msgid "shared memory size" msgstr "" -#: library/resource.rst:324 +#: library/resource.rst:330 msgid "``4``" msgstr "" -#: library/resource.rst:324 -msgid ":attr:`ru_idrss`" +#: library/resource.rst:330 +msgid ":attr:`!ru_idrss`" msgstr "" -#: library/resource.rst:324 +#: library/resource.rst:330 msgid "unshared memory size" msgstr "" -#: library/resource.rst:326 +#: library/resource.rst:332 msgid "``5``" msgstr "" -#: library/resource.rst:326 -msgid ":attr:`ru_isrss`" +#: library/resource.rst:332 +msgid ":attr:`!ru_isrss`" msgstr "" -#: library/resource.rst:326 +#: library/resource.rst:332 msgid "unshared stack size" msgstr "" -#: library/resource.rst:328 +#: library/resource.rst:334 msgid "``6``" msgstr "" -#: library/resource.rst:328 -msgid ":attr:`ru_minflt`" +#: library/resource.rst:334 +msgid ":attr:`!ru_minflt`" msgstr "" -#: library/resource.rst:328 +#: library/resource.rst:334 msgid "page faults not requiring I/O" msgstr "" -#: library/resource.rst:330 +#: library/resource.rst:336 msgid "``7``" msgstr "" -#: library/resource.rst:330 -msgid ":attr:`ru_majflt`" +#: library/resource.rst:336 +msgid ":attr:`!ru_majflt`" msgstr "" -#: library/resource.rst:330 +#: library/resource.rst:336 msgid "page faults requiring I/O" msgstr "" -#: library/resource.rst:332 +#: library/resource.rst:338 msgid "``8``" msgstr "" -#: library/resource.rst:332 -msgid ":attr:`ru_nswap`" +#: library/resource.rst:338 +msgid ":attr:`!ru_nswap`" msgstr "" -#: library/resource.rst:332 +#: library/resource.rst:338 msgid "number of swap outs" msgstr "" -#: library/resource.rst:334 +#: library/resource.rst:340 msgid "``9``" msgstr "" -#: library/resource.rst:334 -msgid ":attr:`ru_inblock`" +#: library/resource.rst:340 +msgid ":attr:`!ru_inblock`" msgstr "" -#: library/resource.rst:334 +#: library/resource.rst:340 msgid "block input operations" msgstr "" -#: library/resource.rst:336 +#: library/resource.rst:342 msgid "``10``" msgstr "" -#: library/resource.rst:336 -msgid ":attr:`ru_oublock`" +#: library/resource.rst:342 +msgid ":attr:`!ru_oublock`" msgstr "" -#: library/resource.rst:336 +#: library/resource.rst:342 msgid "block output operations" msgstr "" -#: library/resource.rst:338 +#: library/resource.rst:344 msgid "``11``" msgstr "" -#: library/resource.rst:338 -msgid ":attr:`ru_msgsnd`" +#: library/resource.rst:344 +msgid ":attr:`!ru_msgsnd`" msgstr "" -#: library/resource.rst:338 +#: library/resource.rst:344 msgid "messages sent" msgstr "" -#: library/resource.rst:340 +#: library/resource.rst:346 msgid "``12``" msgstr "" -#: library/resource.rst:340 -msgid ":attr:`ru_msgrcv`" +#: library/resource.rst:346 +msgid ":attr:`!ru_msgrcv`" msgstr "" -#: library/resource.rst:340 +#: library/resource.rst:346 msgid "messages received" msgstr "" -#: library/resource.rst:342 +#: library/resource.rst:348 msgid "``13``" msgstr "" -#: library/resource.rst:342 -msgid ":attr:`ru_nsignals`" +#: library/resource.rst:348 +msgid ":attr:`!ru_nsignals`" msgstr "" -#: library/resource.rst:342 +#: library/resource.rst:348 msgid "signals received" msgstr "" -#: library/resource.rst:344 +#: library/resource.rst:350 msgid "``14``" msgstr "" -#: library/resource.rst:344 -msgid ":attr:`ru_nvcsw`" +#: library/resource.rst:350 +msgid ":attr:`!ru_nvcsw`" msgstr "" -#: library/resource.rst:344 +#: library/resource.rst:350 msgid "voluntary context switches" msgstr "" -#: library/resource.rst:346 +#: library/resource.rst:352 msgid "``15``" msgstr "" -#: library/resource.rst:346 -msgid ":attr:`ru_nivcsw`" +#: library/resource.rst:352 +msgid ":attr:`!ru_nivcsw`" msgstr "" -#: library/resource.rst:346 +#: library/resource.rst:352 msgid "involuntary context switches" msgstr "" -#: library/resource.rst:349 +#: library/resource.rst:355 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 "" -#: library/resource.rst:355 +#: library/resource.rst:361 msgid "" "Returns the number of bytes in a system page. (This need not be the same as " "the hardware page size.)" msgstr "" -#: library/resource.rst:358 +#: library/resource.rst:364 msgid "" "The following :const:`!RUSAGE_\\*` symbols are passed to the :func:" "`getrusage` function to specify which processes information should be " "provided for." msgstr "" -#: library/resource.rst:364 +#: library/resource.rst:370 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 "" -#: library/resource.rst:370 +#: library/resource.rst:376 msgid "" "Pass to :func:`getrusage` to request resources consumed by child processes " "of the calling process which have been terminated and waited for." msgstr "" -#: library/resource.rst:376 +#: library/resource.rst:382 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 "" -#: library/resource.rst:382 +#: library/resource.rst:388 msgid "" "Pass to :func:`getrusage` to request resources consumed by the current " "thread. May not be available on all systems." diff --git a/library/rlcompleter.po b/library/rlcompleter.po index ed591273..88a40f62 100644 --- a/library/rlcompleter.po +++ b/library/rlcompleter.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/runpy.po b/library/runpy.po index c3a9842e..4a2c35e1 100644 --- a/library/runpy.po +++ b/library/runpy.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/sched.po b/library/sched.po index 68dd047f..485fbbab 100644 --- a/library/sched.po +++ b/library/sched.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/secrets.po b/library/secrets.po index 474ad7bf..861c8d5e 100644 --- a/library/secrets.po +++ b/library/secrets.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/security_warnings.po b/library/security_warnings.po index 80c118da..8665b160 100644 --- a/library/security_warnings.po +++ b/library/security_warnings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -90,7 +90,7 @@ msgid "" msgstr "" #: library/security_warnings.rst:31 -msgid ":mod:`xml`: :ref:`XML vulnerabilities `" +msgid ":mod:`xml`: :ref:`XML security `" msgstr "" #: library/security_warnings.rst:32 diff --git a/library/select.po b/library/select.po index c772d97d..1d08d4e7 100644 --- a/library/select.po +++ b/library/select.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/selectors.po b/library/selectors.po index a0e1397a..c05181a7 100644 --- a/library/selectors.po +++ b/library/selectors.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/shelve.po b/library/shelve.po index 926b1fe4..6bbf2a4f 100644 --- a/library/shelve.po +++ b/library/shelve.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/shlex.po b/library/shlex.po index 4647f406..b6aaebe2 100644 --- a/library/shlex.po +++ b/library/shlex.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/shutil.po b/library/shutil.po index 5466e071..c5cd9c0b 100644 --- a/library/shutil.po +++ b/library/shutil.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -63,7 +63,18 @@ msgid "" "current file position to the end of the file will be copied." msgstr "" -#: library/shutil.rst:53 +#: library/shutil.rst:50 +msgid "" +":func:`copyfileobj` will *not* guarantee that the destination stream has " +"been flushed on completion of the copy. If you want to read from the " +"destination at the completion of the copy operation (for example, reading " +"the contents of a temporary file that has been copied from a HTTP stream), " +"you must ensure that you have called :func:`~io.IOBase.flush` or :func:`~io." +"IOBase.close` on the file-like object before attempting to read the " +"destination file." +msgstr "" + +#: library/shutil.rst:60 msgid "" "Copy the contents (no metadata) of the file named *src* to a file named " "*dst* and return *dst* in the most efficient way possible. *src* and *dst* " @@ -71,14 +82,14 @@ msgid "" "strings." msgstr "" -#: library/shutil.rst:57 +#: library/shutil.rst:64 msgid "" "*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 "" -#: library/shutil.rst:61 +#: library/shutil.rst:68 msgid "" "The destination location must be writable; otherwise, an :exc:`OSError` " "exception will be raised. If *dst* already exists, it will be replaced. " @@ -86,44 +97,50 @@ msgid "" "with this function." msgstr "" -#: library/shutil.rst:66 +#: library/shutil.rst:73 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 "" -#: library/shutil.rst:177 library/shutil.rst:208 +#: library/shutil.rst:191 library/shutil.rst:222 msgid "" "Raises an :ref:`auditing event ` ``shutil.copyfile`` with " "arguments ``src``, ``dst``." msgstr "" -#: library/shutil.rst:72 +#: library/shutil.rst:79 msgid "" ":exc:`IOError` used to be raised instead of :exc:`OSError`. Added " "*follow_symlinks* argument. Now returns *dst*." msgstr "" -#: library/shutil.rst:77 +#: library/shutil.rst:84 msgid "" "Raise :exc:`SameFileError` instead of :exc:`Error`. Since the former is a " "subclass of the latter, this change is backward compatible." msgstr "" -#: library/shutil.rst:185 library/shutil.rst:287 library/shutil.rst:400 +#: library/shutil.rst:199 library/shutil.rst:301 library/shutil.rst:414 msgid "" "Platform-specific fast-copy syscalls may be used internally in order to copy " "the file more efficiently. See :ref:`shutil-platform-dependent-efficient-" "copy-operations` section." msgstr "" -#: library/shutil.rst:88 +#: library/shutil.rst:95 +msgid "" +"This exception is raised when :func:`copyfile` or :func:`copytree` attempt " +"to copy a named pipe." +msgstr "" + +#: library/shutil.rst:102 msgid "" "This exception is raised if source and destination in :func:`copyfile` are " "the same file." msgstr "" -#: library/shutil.rst:96 +#: library/shutil.rst:110 msgid "" "Copy the permission bits from *src* to *dst*. The file contents, owner, and " "group are unaffected. *src* and *dst* are :term:`path-like objects ` ``shutil.copymode`` with " "arguments ``src``, ``dst``." msgstr "" -#: library/shutil.rst:108 +#: library/shutil.rst:122 msgid "Added *follow_symlinks* argument." msgstr "" -#: library/shutil.rst:113 +#: library/shutil.rst:127 msgid "" "Copy the permission bits, last access time, last modification time, and " "flags from *src* to *dst*. On Linux, :func:`copystat` also copies the " @@ -155,7 +172,7 @@ msgid "" "object>` or path names given as strings." msgstr "" -#: library/shutil.rst:119 +#: library/shutil.rst:133 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 " @@ -163,54 +180,54 @@ msgid "" "*src* symbolic link, and writing the information to the *dst* symbolic link." msgstr "" -#: library/shutil.rst:128 +#: library/shutil.rst:142 msgid "" "Not all platforms provide the ability to examine and modify symbolic links. " "Python itself can tell you what functionality is locally available." msgstr "" -#: library/shutil.rst:132 +#: library/shutil.rst:146 msgid "" "If ``os.chmod in os.supports_follow_symlinks`` is ``True``, :func:`copystat` " "can modify the permission bits of a symbolic link." msgstr "" -#: library/shutil.rst:136 +#: library/shutil.rst:150 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 "" -#: library/shutil.rst:140 +#: library/shutil.rst:154 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 "" -#: library/shutil.rst:145 +#: library/shutil.rst:159 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 "" -#: library/shutil.rst:150 +#: library/shutil.rst:164 msgid "Please see :data:`os.supports_follow_symlinks` for more information." msgstr "" -#: library/shutil.rst:210 +#: library/shutil.rst:224 msgid "" "Raises an :ref:`auditing event ` ``shutil.copystat`` with " "arguments ``src``, ``dst``." msgstr "" -#: library/shutil.rst:155 +#: library/shutil.rst:169 msgid "" "Added *follow_symlinks* argument and support for Linux extended attributes." msgstr "" -#: library/shutil.rst:160 +#: library/shutil.rst:174 msgid "" "Copies the file *src* to the file or directory *dst*. *src* and *dst* " "should be :term:`path-like objects ` or strings. If *dst* " @@ -219,14 +236,14 @@ msgid "" "be replaced. Returns the path to the newly created file." msgstr "" -#: library/shutil.rst:166 +#: library/shutil.rst:180 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 "" -#: library/shutil.rst:171 +#: library/shutil.rst:185 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 " @@ -234,18 +251,18 @@ msgid "" "original, use :func:`~shutil.copy2` instead." msgstr "" -#: library/shutil.rst:181 +#: library/shutil.rst:195 msgid "" "Added *follow_symlinks* argument. Now returns path to the newly created file." msgstr "" -#: library/shutil.rst:192 +#: library/shutil.rst:206 msgid "" "Identical to :func:`~shutil.copy` except that :func:`copy2` also attempts to " "preserve file metadata." msgstr "" -#: library/shutil.rst:195 +#: library/shutil.rst:209 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 " @@ -255,41 +272,41 @@ msgid "" "`copy2` never raises an exception because it cannot preserve file metadata." msgstr "" -#: library/shutil.rst:204 +#: library/shutil.rst:218 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 "" -#: library/shutil.rst:212 +#: library/shutil.rst:226 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 "" -#: library/shutil.rst:224 +#: library/shutil.rst:238 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 "" -#: library/shutil.rst:233 +#: library/shutil.rst:247 msgid "" "Recursively copy an entire directory tree rooted at *src* to a directory " "named *dst* and return the destination directory. All intermediate " "directories needed to contain *dst* will also be created by default." msgstr "" -#: library/shutil.rst:237 +#: library/shutil.rst:251 msgid "" "Permissions and times of directories are copied with :func:`copystat`, " "individual files are copied using :func:`~shutil.copy2`." msgstr "" -#: library/shutil.rst:240 +#: library/shutil.rst:254 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 " @@ -297,7 +314,7 @@ msgid "" "and metadata of the linked files are copied to the new tree." msgstr "" -#: library/shutil.rst:245 +#: library/shutil.rst:259 msgid "" "When *symlinks* is false, if the file pointed to by the symlink doesn't " "exist, an exception will be added in the list of errors raised in an :exc:" @@ -307,7 +324,7 @@ msgid "" "support :func:`os.symlink`." msgstr "" -#: library/shutil.rst:252 +#: library/shutil.rst:266 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 " @@ -320,12 +337,12 @@ msgid "" "ignores names based on glob-style patterns." msgstr "" -#: library/shutil.rst:262 +#: library/shutil.rst:276 msgid "" "If exception(s) occur, an :exc:`Error` is raised with a list of reasons." msgstr "" -#: library/shutil.rst:264 +#: library/shutil.rst:278 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 " @@ -333,7 +350,7 @@ msgid "" "that supports the same signature (like :func:`~shutil.copy`) can be used." msgstr "" -#: library/shutil.rst:269 +#: library/shutil.rst:283 msgid "" "If *dirs_exist_ok* is false (the default) and *dst* already exists, a :exc:" "`FileExistsError` is raised. If *dirs_exist_ok* is true, the copying " @@ -342,28 +359,28 @@ msgid "" "*src* tree." msgstr "" -#: library/shutil.rst:275 +#: library/shutil.rst:289 msgid "" "Raises an :ref:`auditing event ` ``shutil.copytree`` with " "arguments ``src``, ``dst``." msgstr "" -#: library/shutil.rst:277 +#: library/shutil.rst:291 msgid "" "Added the *copy_function* argument to be able to provide a custom copy " "function. Added the *ignore_dangling_symlinks* argument to silence dangling " "symlinks errors when *symlinks* is false." msgstr "" -#: library/shutil.rst:283 +#: library/shutil.rst:297 msgid "Copy metadata when *symlinks* is false. Now returns *dst*." msgstr "" -#: library/shutil.rst:292 +#: library/shutil.rst:306 msgid "Added the *dirs_exist_ok* parameter." msgstr "" -#: library/shutil.rst:299 +#: library/shutil.rst:313 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 " @@ -372,13 +389,13 @@ msgid "" "are omitted, exceptions are propagated to the caller." msgstr "" -#: library/shutil.rst:305 +#: library/shutil.rst:319 msgid "" "This function can support :ref:`paths relative to directory descriptors " "`." msgstr "" -#: library/shutil.rst:310 +#: library/shutil.rst:324 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, " @@ -389,13 +406,13 @@ msgid "" "attribute to determine which case applies." msgstr "" -#: library/shutil.rst:318 +#: library/shutil.rst:332 msgid "" "If *onexc* is provided, it must be a callable that accepts three parameters: " "*function*, *path*, and *excinfo*." msgstr "" -#: library/shutil.rst:321 +#: library/shutil.rst:335 msgid "" "The first parameter, *function*, is the function which raised the exception; " "it depends on the platform and implementation. The second parameter, " @@ -404,78 +421,78 @@ msgid "" "will not be caught." msgstr "" -#: library/shutil.rst:327 +#: library/shutil.rst:341 msgid "" "The deprecated *onerror* is similar to *onexc*, except that the third " "parameter it receives is the tuple returned from :func:`sys.exc_info`." msgstr "" -#: library/shutil.rst:331 +#: library/shutil.rst:345 msgid "" ":ref:`shutil-rmtree-example` for an example of handling the removal of a " "directory tree that contains read-only files." msgstr "" -#: library/shutil.rst:334 +#: library/shutil.rst:348 msgid "" "Raises an :ref:`auditing event ` ``shutil.rmtree`` with arguments " "``path``, ``dir_fd``." msgstr "" -#: library/shutil.rst:336 +#: library/shutil.rst:350 msgid "" "Added a symlink attack resistant version that is used automatically if " "platform supports fd-based functions." msgstr "" -#: library/shutil.rst:340 +#: library/shutil.rst:354 msgid "" "On Windows, will no longer delete the contents of a directory junction " "before removing the junction." msgstr "" -#: library/shutil.rst:344 +#: library/shutil.rst:358 msgid "Added the *dir_fd* parameter." msgstr "" -#: library/shutil.rst:347 +#: library/shutil.rst:361 msgid "Added the *onexc* parameter, deprecated *onerror*." msgstr "" -#: library/shutil.rst:350 +#: library/shutil.rst:364 msgid "" ":func:`!rmtree` now ignores :exc:`FileNotFoundError` exceptions for all but " "the top-level path. Exceptions other than :exc:`OSError` and subclasses of :" "exc:`!OSError` are now always propagated to the caller." msgstr "" -#: library/shutil.rst:358 +#: library/shutil.rst:372 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 "" -#: library/shutil.rst:367 +#: library/shutil.rst:381 msgid "" "Recursively move a file or directory (*src*) to another location and return " "the destination." msgstr "" -#: library/shutil.rst:370 +#: library/shutil.rst:384 msgid "" "If *dst* is an existing directory or a symlink to a directory, then *src* is " "moved inside that directory. The destination path in that directory must not " "already exist." msgstr "" -#: library/shutil.rst:374 +#: library/shutil.rst:388 msgid "" "If *dst* already exists but is not a directory, it may be overwritten " "depending on :func:`os.rename` semantics." msgstr "" -#: library/shutil.rst:377 +#: library/shutil.rst:391 msgid "" "If the destination is on the current filesystem, then :func:`os.rename` is " "used. Otherwise, *src* is copied to the destination using *copy_function* " @@ -483,7 +500,7 @@ msgid "" "of *src* will be created as the destination and *src* will be removed." msgstr "" -#: library/shutil.rst:382 +#: library/shutil.rst:396 msgid "" "If *copy_function* is given, it must be a callable that takes two arguments, " "*src* and the destination, and will be used to copy *src* to the destination " @@ -494,85 +511,85 @@ msgid "" "copy the metadata, at the expense of not copying any of the metadata." msgstr "" -#: library/shutil.rst:390 +#: library/shutil.rst:404 msgid "" "Raises an :ref:`auditing event ` ``shutil.move`` with arguments " "``src``, ``dst``." msgstr "" -#: library/shutil.rst:392 +#: library/shutil.rst:406 msgid "" "Added explicit symlink handling for foreign filesystems, thus adapting it to " "the behavior of GNU's :program:`mv`. Now returns *dst*." msgstr "" -#: library/shutil.rst:397 +#: library/shutil.rst:411 msgid "Added the *copy_function* keyword argument." msgstr "" -#: library/shutil.rst:405 +#: library/shutil.rst:419 msgid "Accepts a :term:`path-like object` for both *src* and *dst*." msgstr "" -#: library/shutil.rst:410 +#: library/shutil.rst:424 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. *path* may be a file or a directory." msgstr "" -#: library/shutil.rst:417 +#: library/shutil.rst:431 msgid "" "On Unix filesystems, *path* must point to a path within a **mounted** " "filesystem partition. On those platforms, CPython doesn't attempt to " "retrieve disk usage information from non-mounted filesystems." msgstr "" -#: library/shutil.rst:423 +#: library/shutil.rst:437 msgid "On Windows, *path* can now be a file or directory." msgstr "" -#: library/shutil.rst:440 +#: library/shutil.rst:454 msgid "Availability" msgstr "" -#: library/shutil.rst:431 +#: library/shutil.rst:445 msgid "Change owner *user* and/or *group* of the given *path*." msgstr "" -#: library/shutil.rst:433 +#: library/shutil.rst:447 msgid "" "*user* can be a system user name or a uid; the same applies to *group*. At " "least one argument is required." msgstr "" -#: library/shutil.rst:436 +#: library/shutil.rst:450 msgid "See also :func:`os.chown`, the underlying function." msgstr "" -#: library/shutil.rst:438 +#: library/shutil.rst:452 msgid "" "Raises an :ref:`auditing event ` ``shutil.chown`` with arguments " "``path``, ``user``, ``group``." msgstr "" -#: library/shutil.rst:444 +#: library/shutil.rst:458 msgid "Added *dir_fd* and *follow_symlinks* parameters." msgstr "" -#: library/shutil.rst:450 +#: library/shutil.rst:464 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 "" -#: library/shutil.rst:453 +#: library/shutil.rst:467 msgid "" "*mode* is a permission mask passed to :func:`os.access`, by default " "determining if the file exists and is executable." msgstr "" -#: library/shutil.rst:456 +#: library/shutil.rst:470 msgid "" "*path* is a \"``PATH`` string\" specifying the directories to look in, " "delimited by :data:`os.pathsep`. When no *path* is specified, the :envvar:" @@ -580,14 +597,14 @@ msgid "" "to :data:`os.defpath` if it is not set." msgstr "" -#: library/shutil.rst:461 +#: library/shutil.rst:475 msgid "" "If *cmd* contains a directory component, :func:`!which` only checks the " "specified path directly and does not search the directories listed in *path* " "or in the system's :envvar:`PATH` environment variable." msgstr "" -#: library/shutil.rst:465 +#: library/shutil.rst:479 msgid "" "On Windows, the current directory is prepended to the *path* if *mode* does " "not include ``os.X_OK``. When the *mode* does include ``os.X_OK``, the " @@ -597,7 +614,7 @@ msgid "" "environment variable ``NoDefaultCurrentDirectoryInExePath``." msgstr "" -#: library/shutil.rst:472 +#: library/shutil.rst:486 msgid "" "Also on Windows, the :envvar:`PATHEXT` environment variable is used to " "resolve commands that may not already include an extension. For example, if " @@ -606,31 +623,31 @@ msgid "" "directories. For example, on Windows::" msgstr "" -#: library/shutil.rst:478 +#: library/shutil.rst:492 msgid "" ">>> shutil.which(\"python\")\n" "'C:\\\\Python33\\\\python.EXE'" msgstr "" -#: library/shutil.rst:481 +#: library/shutil.rst:495 msgid "" "This is also applied when *cmd* is a path that contains a directory " "component::" msgstr "" -#: library/shutil.rst:484 +#: library/shutil.rst:498 msgid "" ">>> shutil.which(\"C:\\\\Python33\\\\python\")\n" "'C:\\\\Python33\\\\python.EXE'" msgstr "" -#: library/shutil.rst:489 +#: library/shutil.rst:503 msgid "" "The :class:`bytes` type is now accepted. If *cmd* type is :class:`bytes`, " "the result type is also :class:`bytes`." msgstr "" -#: library/shutil.rst:493 +#: library/shutil.rst:507 msgid "" "On Windows, the current directory is no longer prepended to the search path " "if *mode* includes ``os.X_OK`` and WinAPI " @@ -641,18 +658,18 @@ msgid "" "now be found." msgstr "" -#: library/shutil.rst:504 +#: library/shutil.rst:518 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 "" -#: library/shutil.rst:511 +#: library/shutil.rst:525 msgid "Platform-dependent efficient copy operations" msgstr "" -#: library/shutil.rst:513 +#: library/shutil.rst:527 msgid "" "Starting from Python 3.8, all functions involving a file copy (:func:" "`copyfile`, :func:`~shutil.copy`, :func:`copy2`, :func:`copytree`, and :func:" @@ -662,68 +679,68 @@ msgid "" "buffers in Python as in \"``outfd.write(infd.read())``\"." msgstr "" -#: library/shutil.rst:521 +#: library/shutil.rst:535 msgid "On macOS `fcopyfile`_ is used to copy the file content (not metadata)." msgstr "" -#: library/shutil.rst:523 +#: library/shutil.rst:537 msgid "On Linux :func:`os.copy_file_range` or :func:`os.sendfile` is used." msgstr "" -#: library/shutil.rst:525 +#: library/shutil.rst:539 msgid "On Solaris :func:`os.sendfile` is used." msgstr "" -#: library/shutil.rst:527 +#: library/shutil.rst:541 msgid "" "On Windows :func:`shutil.copyfile` uses a bigger default buffer size (1 MiB " "instead of 64 KiB) and a :func:`memoryview`-based variant of :func:`shutil." "copyfileobj` is used." msgstr "" -#: library/shutil.rst:531 +#: library/shutil.rst:545 msgid "" "If the fast-copy operation fails and no data was written in the destination " "file then shutil will silently fallback on using less efficient :func:" "`copyfileobj` function internally." msgstr "" -#: library/shutil.rst:537 +#: library/shutil.rst:551 msgid "Solaris now uses :func:`os.sendfile`." msgstr "" -#: library/shutil.rst:540 +#: library/shutil.rst:554 msgid "" "Copy-on-write or server-side copy may be used internally via :func:`os." "copy_file_range` on supported Linux filesystems." msgstr "" -#: library/shutil.rst:547 +#: library/shutil.rst:561 msgid "copytree example" msgstr "" -#: library/shutil.rst:549 +#: library/shutil.rst:563 msgid "An example that uses the :func:`ignore_patterns` helper::" msgstr "" -#: library/shutil.rst:551 +#: library/shutil.rst:565 msgid "" "from shutil import copytree, ignore_patterns\n" "\n" "copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*'))" msgstr "" -#: library/shutil.rst:555 +#: library/shutil.rst:569 msgid "" "This will copy everything except ``.pyc`` files and files or directories " "whose name starts with ``tmp``." msgstr "" -#: library/shutil.rst:558 +#: library/shutil.rst:572 msgid "Another example that uses the *ignore* argument to add a logging call::" msgstr "" -#: library/shutil.rst:560 +#: library/shutil.rst:574 msgid "" "from shutil import copytree\n" "import logging\n" @@ -735,11 +752,11 @@ msgid "" "copytree(source, destination, ignore=_logpath)" msgstr "" -#: library/shutil.rst:573 +#: library/shutil.rst:587 msgid "rmtree example" msgstr "" -#: library/shutil.rst:575 +#: library/shutil.rst:589 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 onexc callback to clear " @@ -747,7 +764,7 @@ msgid "" "propagate. ::" msgstr "" -#: library/shutil.rst:580 +#: library/shutil.rst:594 msgid "" "import os, stat\n" "import shutil\n" @@ -760,46 +777,47 @@ msgid "" "shutil.rmtree(directory, onexc=remove_readonly)" msgstr "" -#: library/shutil.rst:593 +#: library/shutil.rst:607 msgid "Archiving operations" msgstr "" -#: library/shutil.rst:597 +#: library/shutil.rst:611 msgid "Added support for the *xztar* format." msgstr "" -#: library/shutil.rst:601 +#: library/shutil.rst:615 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 "" -#: library/shutil.rst:606 +#: library/shutil.rst:620 msgid "Create an archive file (such as zip or tar) and return its name." msgstr "" -#: library/shutil.rst:608 +#: library/shutil.rst:622 msgid "" "*base_name* is the name of the file to create, including the path, minus any " "format-specific extension." msgstr "" -#: library/shutil.rst:611 +#: library/shutil.rst:625 msgid "" "*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)." +"\"bztar\" (if the :mod:`bz2` module is available), \"xztar\" (if the :mod:" +"`lzma` module is available), or \"zstdtar\" (if the :mod:`compression.zstd` " +"module is available)." msgstr "" -#: library/shutil.rst:616 +#: library/shutil.rst:631 msgid "" "*root_dir* is a directory that will be the root directory of the archive, " "all paths in the archive will be relative to it; for example, we typically " "chdir into *root_dir* before creating the archive." msgstr "" -#: library/shutil.rst:620 +#: library/shutil.rst:635 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. " @@ -807,39 +825,39 @@ msgid "" "example-with-basedir` for how to use *base_dir* and *root_dir* together." msgstr "" -#: library/shutil.rst:626 +#: library/shutil.rst:641 msgid "*root_dir* and *base_dir* both default to the current directory." msgstr "" -#: library/shutil.rst:628 +#: library/shutil.rst:643 msgid "" "If *dry_run* is true, no archive is created, but the operations that would " "be executed are logged to *logger*." msgstr "" -#: library/shutil.rst:631 +#: library/shutil.rst:646 msgid "" "*owner* and *group* are used when creating a tar archive. By default, uses " "the current owner and group." msgstr "" -#: library/shutil.rst:634 +#: library/shutil.rst:649 msgid "" "*logger* must be an object compatible with :pep:`282`, usually an instance " "of :class:`logging.Logger`." msgstr "" -#: library/shutil.rst:637 +#: library/shutil.rst:652 msgid "The *verbose* argument is unused and deprecated." msgstr "" -#: library/shutil.rst:639 +#: library/shutil.rst:654 msgid "" "Raises an :ref:`auditing event ` ``shutil.make_archive`` with " "arguments ``base_name``, ``format``, ``root_dir``, ``base_dir``." msgstr "" -#: library/shutil.rst:643 +#: library/shutil.rst:658 msgid "" "This function is not thread-safe when custom archivers registered with :func:" "`register_archive_format` do not support the *root_dir* argument. In this " @@ -847,60 +865,66 @@ msgid "" "*root_dir* to perform archiving." msgstr "" -#: library/shutil.rst:649 +#: library/shutil.rst:664 msgid "" "The modern pax (POSIX.1-2001) format is now used instead of the legacy GNU " "format for archives created with ``format=\"tar\"``." msgstr "" -#: library/shutil.rst:653 +#: library/shutil.rst:668 msgid "" "This function is now made thread-safe during creation of standard ``.zip`` " "and tar archives." msgstr "" -#: library/shutil.rst:659 +#: library/shutil.rst:674 msgid "" "Return a list of supported formats for archiving. Each element of the " "returned sequence is a tuple ``(name, description)``." msgstr "" -#: library/shutil.rst:777 +#: library/shutil.rst:794 msgid "By default :mod:`shutil` provides these formats:" msgstr "" -#: library/shutil.rst:664 +#: library/shutil.rst:679 msgid "*zip*: ZIP file (if the :mod:`zlib` module is available)." msgstr "" -#: library/shutil.rst:665 +#: library/shutil.rst:680 msgid "" "*tar*: Uncompressed tar file. Uses POSIX.1-2001 pax format for new archives." msgstr "" -#: library/shutil.rst:782 +#: library/shutil.rst:799 msgid "*gztar*: gzip'ed tar-file (if the :mod:`zlib` module is available)." msgstr "" -#: library/shutil.rst:783 +#: library/shutil.rst:800 msgid "*bztar*: bzip2'ed tar-file (if the :mod:`bz2` module is available)." msgstr "" -#: library/shutil.rst:784 +#: library/shutil.rst:801 msgid "*xztar*: xz'ed tar-file (if the :mod:`lzma` module is available)." msgstr "" -#: library/shutil.rst:670 +#: library/shutil.rst:802 +msgid "" +"*zstdtar*: Zstandard compressed tar-file (if the :mod:`compression.zstd` " +"module is available)." +msgstr "" + +#: library/shutil.rst:687 msgid "" "You can register new formats or provide your own archiver for any existing " "formats, by using :func:`register_archive_format`." msgstr "" -#: library/shutil.rst:676 +#: library/shutil.rst:693 msgid "Register an archiver for the format *name*." msgstr "" -#: library/shutil.rst:678 +#: library/shutil.rst:695 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 " @@ -909,7 +933,7 @@ msgid "" "*dry_run* and *logger* (as passed in :func:`make_archive`)." msgstr "" -#: library/shutil.rst:684 +#: library/shutil.rst:701 msgid "" "If *function* has the custom attribute ``function.supports_root_dir`` set to " "``True``, the *root_dir* argument is passed as a keyword argument. Otherwise " @@ -918,46 +942,46 @@ msgid "" "not thread-safe." msgstr "" -#: library/shutil.rst:690 +#: library/shutil.rst:707 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 "" -#: library/shutil.rst:693 +#: library/shutil.rst:710 msgid "" "*description* is used by :func:`get_archive_formats` which returns the list " "of archivers. Defaults to an empty string." msgstr "" -#: library/shutil.rst:696 +#: library/shutil.rst:713 msgid "Added support for functions supporting the *root_dir* argument." msgstr "" -#: library/shutil.rst:702 +#: library/shutil.rst:719 msgid "Remove the archive format *name* from the list of supported formats." msgstr "" -#: library/shutil.rst:707 +#: library/shutil.rst:724 msgid "Unpack an archive. *filename* is the full path of the archive." msgstr "" -#: library/shutil.rst:709 +#: library/shutil.rst:726 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 "" -#: library/shutil.rst:712 +#: library/shutil.rst:729 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." +"\"bztar\", \"xztar\", or \"zstdtar\". 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 "" -#: library/shutil.rst:719 +#: library/shutil.rst:736 msgid "" "The keyword-only *filter* argument is passed to the underlying unpacking " "function. For zip files, *filter* is not accepted. For tar files, it is " @@ -966,13 +990,13 @@ msgid "" "extraction-filter` for details.)" msgstr "" -#: library/shutil.rst:725 +#: library/shutil.rst:742 msgid "" "Raises an :ref:`auditing event ` ``shutil.unpack_archive`` with " "arguments ``filename``, ``extract_dir``, ``format``." msgstr "" -#: library/shutil.rst:729 +#: library/shutil.rst:746 msgid "" "Never extract archives from untrusted sources without prior inspection. It " "is possible that files are created outside of the path specified in the " @@ -980,7 +1004,7 @@ msgid "" "with \"/\" or filenames with two dots \"..\"." msgstr "" -#: library/shutil.rst:734 +#: library/shutil.rst:751 msgid "" "Since Python 3.14, the defaults for both built-in formats (zip and tar " "files) will prevent the most dangerous of such security issues, but will not " @@ -988,91 +1012,91 @@ msgid "" "verification` section for tar-specific details." msgstr "" -#: library/shutil.rst:740 +#: library/shutil.rst:757 msgid "Accepts a :term:`path-like object` for *filename* and *extract_dir*." msgstr "" -#: library/shutil.rst:743 +#: library/shutil.rst:760 msgid "Added the *filter* argument." msgstr "" -#: library/shutil.rst:748 +#: library/shutil.rst:765 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 "" -#: library/shutil.rst:752 +#: library/shutil.rst:769 msgid "" "*function* is the callable that will be used to unpack archives. The " "callable will receive:" msgstr "" -#: library/shutil.rst:755 +#: library/shutil.rst:772 msgid "the path of the archive, as a positional argument;" msgstr "" -#: library/shutil.rst:756 +#: library/shutil.rst:773 msgid "" "the directory the archive must be extracted to, as a positional argument;" msgstr "" -#: library/shutil.rst:757 +#: library/shutil.rst:774 msgid "" "possibly a *filter* keyword argument, if it was given to :func:" "`unpack_archive`;" msgstr "" -#: library/shutil.rst:759 +#: library/shutil.rst:776 msgid "" "additional keyword arguments, specified by *extra_args* as a sequence of " "``(name, value)`` tuples." msgstr "" -#: library/shutil.rst:762 +#: library/shutil.rst:779 msgid "" "*description* can be provided to describe the format, and will be returned " "by the :func:`get_unpack_formats` function." msgstr "" -#: library/shutil.rst:768 +#: library/shutil.rst:785 msgid "Unregister an unpack format. *name* is the name of the format." msgstr "" -#: library/shutil.rst:773 +#: library/shutil.rst:790 msgid "" "Return a list of all registered formats for unpacking. Each element of the " "returned sequence is a tuple ``(name, extensions, description)``." msgstr "" -#: library/shutil.rst:779 +#: library/shutil.rst:796 msgid "" "*zip*: ZIP file (unpacking compressed files works only if the corresponding " "module is available)." msgstr "" -#: library/shutil.rst:781 +#: library/shutil.rst:798 msgid "*tar*: uncompressed tar file." msgstr "" -#: library/shutil.rst:786 +#: library/shutil.rst:805 msgid "" "You can register new formats or provide your own unpacker for any existing " "formats, by using :func:`register_unpack_format`." msgstr "" -#: library/shutil.rst:793 +#: library/shutil.rst:812 msgid "Archiving example" msgstr "" -#: library/shutil.rst:795 +#: library/shutil.rst:814 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 "" -#: library/shutil.rst:798 +#: library/shutil.rst:817 msgid "" ">>> from shutil import make_archive\n" ">>> import os\n" @@ -1082,11 +1106,11 @@ msgid "" "'/Users/tarek/myarchive.tar.gz'" msgstr "" -#: library/shutil.rst:805 +#: library/shutil.rst:824 msgid "The resulting archive contains:" msgstr "" -#: library/shutil.rst:807 +#: library/shutil.rst:826 msgid "" "$ tar -tzvf /Users/tarek/myarchive.tar.gz\n" "drwx------ tarek/staff 0 2010-02-01 16:23:40 ./\n" @@ -1099,18 +1123,18 @@ msgid "" "-rw-r--r-- tarek/staff 37192 2010-02-06 18:23:10 ./known_hosts" msgstr "" -#: library/shutil.rst:823 +#: library/shutil.rst:842 msgid "Archiving example with *base_dir*" msgstr "" -#: library/shutil.rst:825 +#: library/shutil.rst:844 msgid "" "In this example, similar to the `one above `_, we " "show how to use :func:`make_archive`, but this time with the usage of " "*base_dir*. We now have the following directory structure:" msgstr "" -#: library/shutil.rst:829 +#: library/shutil.rst:848 msgid "" "$ tree tmp\n" "tmp\n" @@ -1121,13 +1145,13 @@ msgid "" " └── do_not_add.txt" msgstr "" -#: library/shutil.rst:839 +#: library/shutil.rst:858 msgid "" "In the final archive, :file:`please_add.txt` should be included, but :file:" "`do_not_add.txt` should not. Therefore we use the following::" msgstr "" -#: library/shutil.rst:842 +#: library/shutil.rst:861 msgid "" ">>> from shutil import make_archive\n" ">>> import os\n" @@ -1138,43 +1162,43 @@ msgid "" "... root_dir='tmp/root',\n" "... base_dir='structure/content',\n" "... )\n" -"'/Users/tarek/my_archive.tar'" +"'/Users/tarek/myarchive.tar'" msgstr "" -#: library/shutil.rst:853 +#: library/shutil.rst:872 msgid "Listing the files in the resulting archive gives us:" msgstr "" -#: library/shutil.rst:855 +#: library/shutil.rst:874 msgid "" "$ python -m tarfile -l /Users/tarek/myarchive.tar\n" "structure/content/\n" "structure/content/please_add.txt" msgstr "" -#: library/shutil.rst:863 +#: library/shutil.rst:882 msgid "Querying the size of the output terminal" msgstr "" -#: library/shutil.rst:867 +#: library/shutil.rst:886 msgid "Get the size of the terminal window." msgstr "" -#: library/shutil.rst:869 +#: library/shutil.rst:888 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 "" -#: library/shutil.rst:873 +#: library/shutil.rst:892 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 "" -#: library/shutil.rst:877 +#: library/shutil.rst:896 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 " @@ -1183,17 +1207,17 @@ msgid "" "emulators." msgstr "" -#: library/shutil.rst:883 +#: library/shutil.rst:902 msgid "The value returned is a named tuple of type :class:`os.terminal_size`." msgstr "" -#: library/shutil.rst:885 +#: library/shutil.rst:904 msgid "" "See also: The Single UNIX Specification, Version 2, `Other Environment " "Variables`_." msgstr "" -#: library/shutil.rst:890 +#: library/shutil.rst:909 msgid "" "The ``fallback`` values are also used if :func:`os.get_terminal_size` " "returns zeroes." @@ -1211,10 +1235,10 @@ msgstr "" msgid "copying files" msgstr "" -#: library/shutil.rst:297 +#: library/shutil.rst:311 msgid "directory" msgstr "" -#: library/shutil.rst:297 +#: library/shutil.rst:311 msgid "deleting" msgstr "" diff --git a/library/signal.po b/library/signal.po index 54094de7..1907ffbd 100644 --- a/library/signal.po +++ b/library/signal.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -152,14 +152,15 @@ msgid "" msgstr "" #: library/signal.rst:136 library/signal.rst:148 library/signal.rst:160 -#: library/signal.rst:180 library/signal.rst:206 library/signal.rst:232 -#: library/signal.rst:244 library/signal.rst:272 library/signal.rst:390 -#: library/signal.rst:437 library/signal.rst:501 library/signal.rst:563 -#: library/signal.rst:620 library/signal.rst:666 +#: library/signal.rst:180 library/signal.rst:206 library/signal.rst:218 +#: library/signal.rst:248 library/signal.rst:260 library/signal.rst:272 +#: library/signal.rst:300 library/signal.rst:418 library/signal.rst:465 +#: library/signal.rst:529 library/signal.rst:591 library/signal.rst:648 +#: library/signal.rst:693 msgid "Availability" msgstr "" -#: library/signal.rst:473 +#: library/signal.rst:501 msgid "" "See the man page :manpage:`sigprocmask(2)` and :manpage:`pthread_sigmask(3)` " "for further information." @@ -255,79 +256,99 @@ msgid "Default action is to ignore the signal." msgstr "" #: library/signal.rst:210 +msgid "Profiling timer expired." +msgstr "" + +#: library/signal.rst:216 +msgid "Terminal quit signal." +msgstr "" + +#: library/signal.rst:222 msgid "Segmentation fault: invalid memory reference." msgstr "" -#: library/signal.rst:214 +#: library/signal.rst:226 +msgid "Stop executing (cannot be caught or ignored)." +msgstr "" + +#: library/signal.rst:230 msgid "" "Stack fault on coprocessor. The Linux kernel does not raise this signal: it " "can only be raised in user space." msgstr "" -#: library/signal.rst:219 +#: library/signal.rst:235 msgid "" "On architectures where the signal is available. See the man page :manpage:" "`signal(7)` for further information." msgstr "" -#: library/signal.rst:226 +#: library/signal.rst:242 msgid "Termination signal." msgstr "" -#: library/signal.rst:230 +#: library/signal.rst:246 msgid "User-defined signal 1." msgstr "" -#: library/signal.rst:236 +#: library/signal.rst:252 msgid "User-defined signal 2." msgstr "" -#: library/signal.rst:242 +#: library/signal.rst:258 +msgid "Virtual timer expired." +msgstr "" + +#: library/signal.rst:264 msgid "Window resize signal." msgstr "" -#: library/signal.rst:248 +#: library/signal.rst:270 +msgid "CPU time limit exceeded." +msgstr "" + +#: library/signal.rst:276 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:" +"Unix man page for '``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 "" -#: library/signal.rst:259 +#: library/signal.rst:287 msgid "" "The signal corresponding to the :kbd:`Ctrl+C` keystroke event. This signal " "can only be used with :func:`os.kill`." msgstr "" -#: library/signal.rst:269 +#: library/signal.rst:297 msgid "" "The signal corresponding to the :kbd:`Ctrl+Break` keystroke event. This " "signal can only be used with :func:`os.kill`." msgstr "" -#: library/signal.rst:279 +#: library/signal.rst:307 msgid "" "One more than the number of the highest signal number. Use :func:" "`valid_signals` to get valid signal numbers." msgstr "" -#: library/signal.rst:285 +#: library/signal.rst:313 msgid "" "Decrements interval timer in real time, and delivers :const:`SIGALRM` upon " "expiration." msgstr "" -#: library/signal.rst:291 +#: library/signal.rst:319 msgid "" "Decrements interval timer only when the process is executing, and delivers " "SIGVTALRM upon expiration." msgstr "" -#: library/signal.rst:297 +#: library/signal.rst:325 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 " @@ -335,29 +356,29 @@ msgid "" "and kernel space. SIGPROF is delivered upon expiration." msgstr "" -#: library/signal.rst:305 +#: library/signal.rst:333 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that signals are to be blocked." msgstr "" -#: library/signal.rst:312 +#: library/signal.rst:340 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that signals are to be unblocked." msgstr "" -#: library/signal.rst:319 +#: library/signal.rst:347 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that the signal mask is to be replaced." msgstr "" -#: library/signal.rst:325 +#: library/signal.rst:353 msgid "The :mod:`signal` module defines one exception:" msgstr "" -#: library/signal.rst:329 +#: library/signal.rst:357 msgid "" "Raised to signal an error from the underlying :func:`setitimer` or :func:" "`getitimer` implementation. Expect this error if an invalid interval timer " @@ -365,17 +386,17 @@ msgid "" "of :exc:`OSError`." msgstr "" -#: library/signal.rst:334 +#: library/signal.rst:362 msgid "" "This error used to be a subtype of :exc:`IOError`, which is now an alias of :" "exc:`OSError`." msgstr "" -#: library/signal.rst:339 +#: library/signal.rst:367 msgid "The :mod:`signal` module defines the following functions:" msgstr "" -#: library/signal.rst:344 +#: library/signal.rst:372 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 " @@ -386,11 +407,11 @@ msgid "" "scheduled." msgstr "" -#: library/signal.rst:353 +#: library/signal.rst:381 msgid "See the man page :manpage:`alarm(2)` for further information." msgstr "" -#: library/signal.rst:358 +#: library/signal.rst:386 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:" @@ -401,41 +422,41 @@ msgid "" "not installed from Python." msgstr "" -#: library/signal.rst:369 +#: library/signal.rst:397 msgid "" "Returns the description of signal *signalnum*, such as \"Interrupt\" for :" "const:`SIGINT`. Returns :const:`None` if *signalnum* has no description. " "Raises :exc:`ValueError` if *signalnum* is invalid." msgstr "" -#: library/signal.rst:378 +#: library/signal.rst:406 msgid "" "Return the set of valid signal numbers on this platform. This can be less " "than ``range(1, NSIG)`` if some signals are reserved by the system for " "internal use." msgstr "" -#: library/signal.rst:387 +#: library/signal.rst:415 msgid "" "Cause the process to sleep until a signal is received; the appropriate " "handler will then be called. Returns nothing." msgstr "" -#: library/signal.rst:392 +#: library/signal.rst:420 msgid "See the man page :manpage:`signal(2)` for further information." msgstr "" -#: library/signal.rst:394 +#: library/signal.rst:422 msgid "" "See also :func:`sigwait`, :func:`sigwaitinfo`, :func:`sigtimedwait` and :" "func:`sigpending`." msgstr "" -#: library/signal.rst:400 +#: library/signal.rst:428 msgid "Sends a signal to the calling process. Returns nothing." msgstr "" -#: library/signal.rst:407 +#: library/signal.rst:435 msgid "" "Send signal *sig* to the process referred to by file descriptor *pidfd*. " "Python does not currently support the *siginfo* parameter; it must be " @@ -443,11 +464,11 @@ msgid "" "values are currently defined." msgstr "" -#: library/signal.rst:412 +#: library/signal.rst:440 msgid "See the :manpage:`pidfd_send_signal(2)` man page for more information." msgstr "" -#: library/signal.rst:420 +#: library/signal.rst:448 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 " @@ -458,86 +479,86 @@ msgid "" "running system call to fail with :exc:`InterruptedError`." msgstr "" -#: library/signal.rst:428 +#: library/signal.rst:456 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 "" -#: library/signal.rst:432 +#: library/signal.rst:460 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 "" -#: library/signal.rst:435 +#: library/signal.rst:463 msgid "" "Raises an :ref:`auditing event ` ``signal.pthread_kill`` with " "arguments ``thread_id``, ``signalnum``." msgstr "" -#: library/signal.rst:439 +#: library/signal.rst:467 msgid "See the man page :manpage:`pthread_kill(3)` for further information." msgstr "" -#: library/signal.rst:441 +#: library/signal.rst:469 msgid "See also :func:`os.kill`." msgstr "" -#: library/signal.rst:448 +#: library/signal.rst:476 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 "" -#: library/signal.rst:452 +#: library/signal.rst:480 msgid "" "The behavior of the call is dependent on the value of *how*, as follows." msgstr "" -#: library/signal.rst:454 +#: library/signal.rst:482 msgid "" ":data:`SIG_BLOCK`: The set of blocked signals is the union of the current " "set and the *mask* argument." msgstr "" -#: library/signal.rst:456 +#: library/signal.rst:484 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 "" -#: library/signal.rst:459 +#: library/signal.rst:487 msgid "" ":data:`SIG_SETMASK`: The set of blocked signals is set to the *mask* " "argument." msgstr "" -#: library/signal.rst:462 +#: library/signal.rst:490 msgid "" "*mask* is a set of signal numbers (e.g. {:const:`signal.SIGINT`, :const:" "`signal.SIGTERM`}). Use :func:`~signal.valid_signals` for a full mask " "including all signals." msgstr "" -#: library/signal.rst:466 +#: library/signal.rst:494 msgid "" "For example, ``signal.pthread_sigmask(signal.SIG_BLOCK, [])`` reads the " "signal mask of the calling thread." msgstr "" -#: library/signal.rst:469 +#: library/signal.rst:497 msgid ":data:`SIGKILL` and :data:`SIGSTOP` cannot be blocked." msgstr "" -#: library/signal.rst:476 +#: library/signal.rst:504 msgid "See also :func:`pause`, :func:`sigpending` and :func:`sigwait`." msgstr "" -#: library/signal.rst:483 +#: library/signal.rst:511 msgid "" "Sets given interval timer (one of :const:`signal.ITIMER_REAL`, :const:" "`signal.ITIMER_VIRTUAL` or :const:`signal.ITIMER_PROF`) specified by *which* " @@ -547,7 +568,7 @@ msgid "" "zero." msgstr "" -#: library/signal.rst:490 +#: library/signal.rst:518 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 " @@ -555,21 +576,21 @@ msgid "" "`SIGVTALRM`, and :const:`signal.ITIMER_PROF` will deliver :const:`SIGPROF`." msgstr "" -#: library/signal.rst:496 +#: library/signal.rst:524 msgid "The old values are returned as a tuple: (delay, interval)." msgstr "" -#: library/signal.rst:498 +#: library/signal.rst:526 msgid "" "Attempting to pass an invalid interval timer will cause an :exc:" "`ItimerError`." msgstr "" -#: library/signal.rst:506 +#: library/signal.rst:534 msgid "Returns current value of a given interval timer specified by *which*." msgstr "" -#: library/signal.rst:513 +#: library/signal.rst:541 msgid "" "Set the wakeup file descriptor to *fd*. When a signal your program has " "registered a signal handler for is received, the signal number is written as " @@ -579,7 +600,7 @@ msgid "" "signal to be fully processed." msgstr "" -#: library/signal.rst:520 +#: library/signal.rst:548 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, " @@ -587,7 +608,7 @@ msgid "" "*fd* before calling poll or select again." msgstr "" -#: library/signal.rst:580 +#: library/signal.rst:608 msgid "" "When threads are enabled, this function can only be called from :ref:`the " "main thread of the main interpreter `; attempting to " @@ -595,14 +616,14 @@ msgid "" "raised." msgstr "" -#: library/signal.rst:530 +#: library/signal.rst:558 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 "" -#: library/signal.rst:535 +#: library/signal.rst:563 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 " @@ -613,7 +634,7 @@ msgid "" "warning to be printed to stderr when signals are lost." msgstr "" -#: library/signal.rst:544 +#: library/signal.rst:572 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 " @@ -623,33 +644,33 @@ msgid "" "spurious warning messages." msgstr "" -#: library/signal.rst:551 +#: library/signal.rst:579 msgid "On Windows, the function now also supports socket handles." msgstr "" -#: library/signal.rst:554 +#: library/signal.rst:582 msgid "Added ``warn_on_full_buffer`` parameter." msgstr "" -#: library/signal.rst:559 +#: library/signal.rst:587 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 "" -#: library/signal.rst:565 +#: library/signal.rst:593 msgid "See the man page :manpage:`siginterrupt(3)` for further information." msgstr "" -#: library/signal.rst:567 +#: library/signal.rst:595 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 "" -#: library/signal.rst:574 +#: library/signal.rst:602 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 " @@ -659,7 +680,7 @@ msgid "" "information.)" msgstr "" -#: library/signal.rst:585 +#: library/signal.rst:613 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 " @@ -667,7 +688,7 @@ msgid "" "see the attribute descriptions in the :mod:`inspect` module)." msgstr "" -#: library/signal.rst:590 +#: library/signal.rst:618 msgid "" "On Windows, :func:`signal` can only be called with :const:`SIGABRT`, :const:" "`SIGFPE`, :const:`SIGILL`, :const:`SIGINT`, :const:`SIGSEGV`, :const:" @@ -677,22 +698,22 @@ msgid "" "``SIG*`` module level constant." msgstr "" -#: library/signal.rst:601 +#: library/signal.rst:629 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 "" -#: library/signal.rst:607 +#: library/signal.rst:635 msgid "See the man page :manpage:`sigpending(2)` for further information." msgstr "" -#: library/signal.rst:609 +#: library/signal.rst:637 msgid "See also :func:`pause`, :func:`pthread_sigmask` and :func:`sigwait`." msgstr "" -#: library/signal.rst:616 +#: library/signal.rst:644 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 " @@ -700,17 +721,17 @@ msgid "" "number." msgstr "" -#: library/signal.rst:622 +#: library/signal.rst:650 msgid "See the man page :manpage:`sigwait(3)` for further information." msgstr "" -#: library/signal.rst:624 +#: library/signal.rst:652 msgid "" "See also :func:`pause`, :func:`pthread_sigmask`, :func:`sigpending`, :func:" "`sigwaitinfo` and :func:`sigtimedwait`." msgstr "" -#: library/signal.rst:632 +#: library/signal.rst:660 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 " @@ -721,56 +742,55 @@ msgid "" "`InterruptedError` if it is interrupted by a signal that is not in *sigset*." msgstr "" -#: library/signal.rst:641 +#: library/signal.rst:669 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`." +"The return value is an object representing the data contained in the " +"``siginfo_t`` structure, namely: ``si_signo``, ``si_code``, ``si_errno``, " +"``si_pid``, ``si_uid``, ``si_status``, ``si_band``." msgstr "" -#: library/signal.rst:648 +#: library/signal.rst:675 msgid "See the man page :manpage:`sigwaitinfo(2)` for further information." msgstr "" -#: library/signal.rst:650 +#: library/signal.rst:677 msgid "See also :func:`pause`, :func:`sigwait` and :func:`sigtimedwait`." msgstr "" -#: library/signal.rst:654 +#: library/signal.rst:681 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 "" -#: library/signal.rst:662 +#: library/signal.rst:689 msgid "" "Like :func:`sigwaitinfo`, but takes an additional *timeout* argument " "specifying a timeout. If *timeout* is specified as ``0``, a poll is " "performed. Returns :const:`None` if a timeout occurs." msgstr "" -#: library/signal.rst:668 +#: library/signal.rst:695 msgid "See the man page :manpage:`sigtimedwait(2)` for further information." msgstr "" -#: library/signal.rst:670 +#: library/signal.rst:697 msgid "See also :func:`pause`, :func:`sigwait` and :func:`sigwaitinfo`." msgstr "" -#: library/signal.rst:674 +#: library/signal.rst:701 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 "" -#: library/signal.rst:683 +#: library/signal.rst:710 msgid "Examples" msgstr "" -#: library/signal.rst:685 +#: library/signal.rst:712 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 " @@ -780,7 +800,7 @@ msgid "" "signal will be sent, and the handler raises an exception. ::" msgstr "" -#: library/signal.rst:692 +#: library/signal.rst:719 msgid "" "import signal, os\n" "\n" @@ -799,11 +819,11 @@ msgid "" "signal.alarm(0) # Disable the alarm" msgstr "" -#: library/signal.rst:709 +#: library/signal.rst:736 msgid "Note on SIGPIPE" msgstr "" -#: library/signal.rst:711 +#: library/signal.rst:738 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 " @@ -812,7 +832,7 @@ msgid "" "entry point to catch this exception as follows::" msgstr "" -#: library/signal.rst:717 +#: library/signal.rst:744 msgid "" "import os\n" "import sys\n" @@ -837,7 +857,7 @@ msgid "" " main()" msgstr "" -#: library/signal.rst:738 +#: library/signal.rst:765 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 " @@ -845,11 +865,11 @@ msgid "" "program is still writing to it." msgstr "" -#: library/signal.rst:747 +#: library/signal.rst:774 msgid "Note on Signal Handlers and Exceptions" msgstr "" -#: library/signal.rst:749 +#: library/signal.rst:776 msgid "" "If a signal handler raises an exception, the exception will be propagated to " "the main thread and may be raised after any :term:`bytecode` instruction. " @@ -860,11 +880,11 @@ msgid "" "program in an unexpected state." msgstr "" -#: library/signal.rst:756 +#: library/signal.rst:783 msgid "To illustrate this issue, consider the following code::" msgstr "" -#: library/signal.rst:758 +#: library/signal.rst:785 msgid "" "class SpamContext:\n" " def __init__(self):\n" @@ -882,7 +902,7 @@ msgid "" " self.lock.release()" msgstr "" -#: library/signal.rst:773 +#: library/signal.rst:800 msgid "" "For many programs, especially those that merely want to exit on :exc:" "`KeyboardInterrupt`, this is not a problem, but applications that are " @@ -893,7 +913,7 @@ msgid "" "avoids :exc:`KeyboardInterrupt`::" msgstr "" -#: library/signal.rst:781 +#: library/signal.rst:808 msgid "" "import signal\n" "import socket\n" diff --git a/library/site.po b/library/site.po index 2fad0457..ec9155fc 100644 --- a/library/site.po +++ b/library/site.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -311,7 +311,7 @@ msgid "" msgstr "" #: library/site.rst:274 -msgid "Command Line Interface" +msgid "Command-line interface" msgstr "" #: library/site.rst:278 diff --git a/library/smtpd.po b/library/smtpd.po index b96ecbf8..03d86411 100644 --- a/library/smtpd.po +++ b/library/smtpd.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/smtplib.po b/library/smtplib.po index c9834ca4..8954a1fd 100644 --- a/library/smtplib.po +++ b/library/smtplib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -115,17 +115,17 @@ msgstr "" 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." +"required from the beginning of the connection and using :meth:`~SMTP." +"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 "" -#: library/smtplib.rst:415 +#: library/smtplib.rst:424 msgid "*context* was added." msgstr "" @@ -145,7 +145,7 @@ msgid "" "`ValueError` to prevent the creation of a non-blocking socket" msgstr "" -#: library/smtplib.rst:403 +#: library/smtplib.rst:412 msgid "The deprecated *keyfile* and *certfile* parameters have been removed." msgstr "" @@ -153,10 +153,10 @@ msgstr "" 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 '/'." +"`~SMTP.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 "" #: library/smtplib.rst:120 @@ -195,76 +195,86 @@ msgstr "" 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." +"error code." +msgstr "" + +#: library/smtplib.rst:154 +msgid "The error code." msgstr "" -#: library/smtplib.rst:157 +#: library/smtplib.rst:158 +msgid "The error message." +msgstr "" + +#: library/smtplib.rst:163 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 "" -#: library/smtplib.rst:164 +#: library/smtplib.rst:170 +msgid "All recipient addresses refused." +msgstr "" + +#: library/smtplib.rst:174 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." +"A dictionary of exactly the same sort as returned by :meth:`SMTP.sendmail` " +"containing the errors for each recipient." msgstr "" -#: library/smtplib.rst:171 +#: library/smtplib.rst:181 msgid "The SMTP server refused to accept the message data." msgstr "" -#: library/smtplib.rst:176 +#: library/smtplib.rst:186 msgid "Error occurred during establishment of a connection with the server." msgstr "" -#: library/smtplib.rst:181 +#: library/smtplib.rst:191 msgid "The server refused our ``HELO`` message." msgstr "" -#: library/smtplib.rst:186 +#: library/smtplib.rst:196 msgid "The command or option attempted is not supported by the server." msgstr "" -#: library/smtplib.rst:193 +#: library/smtplib.rst:203 msgid "" "SMTP authentication went wrong. Most probably the server didn't accept the " "username/password combination provided." msgstr "" -#: library/smtplib.rst:199 +#: library/smtplib.rst:209 msgid ":rfc:`821` - Simple Mail Transfer Protocol" msgstr "" -#: library/smtplib.rst:200 +#: library/smtplib.rst:210 msgid "" "Protocol definition for SMTP. This document covers the model, operating " "procedure, and protocol details for SMTP." msgstr "" -#: library/smtplib.rst:203 +#: library/smtplib.rst:213 msgid ":rfc:`1869` - SMTP Service Extensions" msgstr "" -#: library/smtplib.rst:204 +#: library/smtplib.rst:214 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 "" -#: library/smtplib.rst:212 +#: library/smtplib.rst:222 msgid "SMTP Objects" msgstr "" -#: library/smtplib.rst:214 +#: library/smtplib.rst:224 msgid "An :class:`SMTP` instance has the following methods:" msgstr "" -#: library/smtplib.rst:219 +#: library/smtplib.rst:228 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 " @@ -272,36 +282,36 @@ msgid "" "timestamped." msgstr "" -#: library/smtplib.rst:224 +#: library/smtplib.rst:233 msgid "Added debuglevel 2." msgstr "" -#: library/smtplib.rst:229 +#: library/smtplib.rst:238 msgid "" "Send a command *cmd* to the server. The optional argument *args* is simply " "concatenated to the command, separated by a space." msgstr "" -#: library/smtplib.rst:232 +#: library/smtplib.rst:241 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 "" -#: library/smtplib.rst:235 +#: library/smtplib.rst:244 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 "" -#: library/smtplib.rst:239 +#: library/smtplib.rst:248 msgid "" "If the connection to the server is lost while waiting for the reply, :exc:" "`SMTPServerDisconnected` will be raised." msgstr "" -#: library/smtplib.rst:245 +#: library/smtplib.rst:254 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 " @@ -312,13 +322,13 @@ msgid "" "connection response." msgstr "" -#: library/smtplib.rst:253 +#: library/smtplib.rst:262 msgid "" "Raises an :ref:`auditing event ` ``smtplib.connect`` with " "arguments ``self``, ``host``, ``port``." msgstr "" -#: library/smtplib.rst:258 +#: library/smtplib.rst:267 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 " @@ -326,14 +336,14 @@ msgid "" "object." msgstr "" -#: library/smtplib.rst:263 +#: library/smtplib.rst:272 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 "" -#: library/smtplib.rst:269 +#: library/smtplib.rst:278 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 " @@ -345,35 +355,35 @@ msgid "" "service extensions this server supports, and their parameters (if any)." msgstr "" -#: library/smtplib.rst:279 +#: library/smtplib.rst:288 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 "" -#: library/smtplib.rst:285 +#: library/smtplib.rst:294 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 "" -#: library/smtplib.rst:318 library/smtplib.rst:475 +#: library/smtplib.rst:327 library/smtplib.rst:481 msgid ":exc:`SMTPHeloError`" msgstr "" -#: library/smtplib.rst:319 library/smtplib.rst:476 +#: library/smtplib.rst:328 library/smtplib.rst:482 msgid "The server didn't reply properly to the ``HELO`` greeting." msgstr "" -#: library/smtplib.rst:294 +#: library/smtplib.rst:303 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 "" -#: library/smtplib.rst:300 +#: library/smtplib.rst:309 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 " @@ -381,11 +391,11 @@ msgid "" "code of 400 or greater and an error string." msgstr "" -#: library/smtplib.rst:307 +#: library/smtplib.rst:316 msgid "Many sites disable SMTP ``VRFY`` in order to foil spammers." msgstr "" -#: library/smtplib.rst:312 +#: library/smtplib.rst:321 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 " @@ -394,31 +404,31 @@ msgid "" "successful, or may raise the following exceptions:" msgstr "" -#: library/smtplib.rst:321 +#: library/smtplib.rst:330 msgid ":exc:`SMTPAuthenticationError`" msgstr "" -#: library/smtplib.rst:322 +#: library/smtplib.rst:331 msgid "The server didn't accept the username/password combination." msgstr "" -#: library/smtplib.rst:409 library/smtplib.rst:485 +#: library/smtplib.rst:418 library/smtplib.rst:491 msgid ":exc:`SMTPNotSupportedError`" msgstr "" -#: library/smtplib.rst:325 +#: library/smtplib.rst:334 msgid "The ``AUTH`` command is not supported by the server." msgstr "" -#: library/smtplib.rst:327 +#: library/smtplib.rst:336 msgid ":exc:`SMTPException`" msgstr "" -#: library/smtplib.rst:328 +#: library/smtplib.rst:337 msgid "No suitable authentication method was found." msgstr "" -#: library/smtplib.rst:330 +#: library/smtplib.rst:339 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` " @@ -426,7 +436,7 @@ msgid "" "passed through to :meth:`auth`." msgstr "" -#: library/smtplib.rst:335 +#: library/smtplib.rst:344 msgid "" "Optional keyword argument *initial_response_ok* specifies whether, for " "authentication methods that support it, an \"initial response\" as specified " @@ -434,35 +444,35 @@ msgid "" "requiring a challenge/response." msgstr "" -#: library/smtplib.rst:340 +#: library/smtplib.rst:349 msgid "" ":exc:`SMTPNotSupportedError` may be raised, and the *initial_response_ok* " "parameter was added." msgstr "" -#: library/smtplib.rst:347 +#: library/smtplib.rst:356 msgid "" "Issue an ``SMTP`` ``AUTH`` command for the specified authentication " "*mechanism*, and handle the challenge response via *authobject*." msgstr "" -#: library/smtplib.rst:350 +#: library/smtplib.rst:359 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 "" -#: library/smtplib.rst:354 +#: library/smtplib.rst:363 msgid "" "*authobject* must be a callable object taking an optional single argument::" msgstr "" -#: library/smtplib.rst:356 +#: library/smtplib.rst:365 msgid "data = authobject(challenge=None)" msgstr "" -#: library/smtplib.rst:358 +#: library/smtplib.rst:367 msgid "" "If optional keyword argument *initial_response_ok* is true, ``authobject()`` " "will be called first with no argument. It can return the :rfc:`4954` " @@ -473,7 +483,7 @@ msgid "" "false, then ``authobject()`` will not be called first with ``None``." msgstr "" -#: library/smtplib.rst:366 +#: library/smtplib.rst:375 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 " @@ -482,7 +492,7 @@ msgid "" "the server." msgstr "" -#: library/smtplib.rst:372 +#: library/smtplib.rst:381 msgid "" "The ``SMTP`` class provides ``authobjects`` for the ``CRAM-MD5``, ``PLAIN``, " "and ``LOGIN`` mechanisms; they are named ``SMTP.auth_cram_md5``, ``SMTP." @@ -491,7 +501,7 @@ msgid "" "appropriate values." msgstr "" -#: library/smtplib.rst:378 +#: library/smtplib.rst:387 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 " @@ -500,57 +510,57 @@ msgid "" "by :mod:`smtplib`." msgstr "" -#: library/smtplib.rst:389 +#: library/smtplib.rst:398 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 "" -#: library/smtplib.rst:393 +#: library/smtplib.rst:402 msgid "" "If *keyfile* and *certfile* are provided, they are used to create an :class:" "`ssl.SSLContext`." msgstr "" -#: library/smtplib.rst:396 +#: library/smtplib.rst:405 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 "" -#: library/smtplib.rst:400 +#: library/smtplib.rst:409 msgid "" "If there has been no previous ``EHLO`` or ``HELO`` command this session, " "this method tries ESMTP ``EHLO`` first." msgstr "" -#: library/smtplib.rst:410 +#: library/smtplib.rst:419 msgid "The server does not support the STARTTLS extension." msgstr "" -#: library/smtplib.rst:412 +#: library/smtplib.rst:421 msgid ":exc:`RuntimeError`" msgstr "" -#: library/smtplib.rst:413 +#: library/smtplib.rst:422 msgid "SSL/TLS support is not available to your Python interpreter." msgstr "" -#: library/smtplib.rst:418 +#: library/smtplib.rst:427 msgid "" -"The method now supports hostname check with :attr:`SSLContext." +"The method now supports hostname check with :attr:`ssl.SSLContext." "check_hostname` and *Server Name Indicator* (see :const:`~ssl.HAS_SNI`)." msgstr "" -#: library/smtplib.rst:423 +#: library/smtplib.rst:432 msgid "" "The error raised for lack of STARTTLS support is now the :exc:" "`SMTPNotSupportedError` subclass instead of the base :exc:`SMTPException`." msgstr "" -#: library/smtplib.rst:431 +#: library/smtplib.rst:440 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 " @@ -559,18 +569,18 @@ msgid "" "*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 " +"level methods such as :meth:`!mail`, :meth:`!rcpt` and :meth:`!data` to send " "the message.)" msgstr "" -#: library/smtplib.rst:442 +#: library/smtplib.rst:451 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 "" -#: library/smtplib.rst:446 +#: library/smtplib.rst:455 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 " @@ -578,7 +588,7 @@ msgid "" "byte string is not modified." msgstr "" -#: library/smtplib.rst:451 +#: library/smtplib.rst:460 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 " @@ -587,7 +597,7 @@ msgid "" "will be tried and ESMTP options suppressed." msgstr "" -#: library/smtplib.rst:457 +#: library/smtplib.rst:466 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 " @@ -597,69 +607,65 @@ msgid "" "SMTP error code and the accompanying error message sent by the server." msgstr "" -#: library/smtplib.rst:464 +#: library/smtplib.rst:473 msgid "" "If ``SMTPUTF8`` is included in *mail_options*, and the server supports it, " "*from_addr* and *to_addrs* may contain non-ASCII characters." msgstr "" -#: library/smtplib.rst:467 +#: library/smtplib.rst:476 msgid "This method may raise the following exceptions:" msgstr "" -#: library/smtplib.rst:469 +#: library/smtplib.rst:478 msgid ":exc:`SMTPRecipientsRefused`" msgstr "" -#: library/smtplib.rst:470 -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)." +#: library/smtplib.rst:479 +msgid "All recipients were refused. Nobody got the mail." msgstr "" -#: library/smtplib.rst:478 +#: library/smtplib.rst:484 msgid ":exc:`SMTPSenderRefused`" msgstr "" -#: library/smtplib.rst:479 +#: library/smtplib.rst:485 msgid "The server didn't accept the *from_addr*." msgstr "" -#: library/smtplib.rst:481 +#: library/smtplib.rst:487 msgid ":exc:`SMTPDataError`" msgstr "" -#: library/smtplib.rst:482 +#: library/smtplib.rst:488 msgid "" "The server replied with an unexpected error code (other than a refusal of a " "recipient)." msgstr "" -#: library/smtplib.rst:486 +#: library/smtplib.rst:492 msgid "" "``SMTPUTF8`` was given in the *mail_options* but is not supported by the " "server." msgstr "" -#: library/smtplib.rst:489 +#: library/smtplib.rst:495 msgid "" "Unless otherwise noted, the connection will be open even after an exception " "is raised." msgstr "" -#: library/smtplib.rst:492 +#: library/smtplib.rst:498 msgid "*msg* may be a byte string." msgstr "" -#: library/smtplib.rst:495 +#: library/smtplib.rst:501 msgid "" "``SMTPUTF8`` support added, and :exc:`SMTPNotSupportedError` may be raised " "if ``SMTPUTF8`` is specified but the server does not support it." msgstr "" -#: library/smtplib.rst:503 +#: library/smtplib.rst:509 msgid "" "This is a convenience method for calling :meth:`sendmail` with the message " "represented by an :class:`email.message.Message` object. The arguments have " @@ -667,7 +673,7 @@ msgid "" "object." msgstr "" -#: library/smtplib.rst:508 +#: library/smtplib.rst:514 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 " @@ -682,7 +688,7 @@ msgid "" "most recent set of :mailheader:`Resent-` headers." msgstr "" -#: library/smtplib.rst:520 +#: library/smtplib.rst:526 msgid "" "``send_message`` serializes *msg* using :class:`~email.generator." "BytesGenerator` with ``\\r\\n`` as the *linesep*, and calls :meth:`sendmail` " @@ -697,17 +703,17 @@ msgid "" "``BODY=8BITMIME`` are added to *mail_options*." msgstr "" -#: library/smtplib.rst:534 +#: library/smtplib.rst:540 msgid "Support for internationalized addresses (``SMTPUTF8``)." msgstr "" -#: library/smtplib.rst:540 +#: library/smtplib.rst:546 msgid "" "Terminate the SMTP session and close the connection. Return the result of " "the SMTP ``QUIT`` command." msgstr "" -#: library/smtplib.rst:544 +#: library/smtplib.rst:550 msgid "" "Low-level methods corresponding to the standard SMTP/ESMTP commands " "``HELP``, ``RSET``, ``NOOP``, ``MAIL``, ``RCPT``, and ``DATA`` are also " @@ -715,11 +721,35 @@ msgid "" "documented here. For details, consult the module code." msgstr "" -#: library/smtplib.rst:553 +#: library/smtplib.rst:555 +msgid "Additionally, an SMTP instance has the following attributes:" +msgstr "" + +#: library/smtplib.rst:560 +msgid "The response to the ``HELO`` command, see :meth:`helo`." +msgstr "" + +#: library/smtplib.rst:565 +msgid "The response to the ``EHLO`` command, see :meth:`ehlo`." +msgstr "" + +#: library/smtplib.rst:570 +msgid "" +"A boolean value indicating whether the server supports ESMTP, see :meth:" +"`ehlo`." +msgstr "" + +#: library/smtplib.rst:576 +msgid "" +"A dictionary of the names of SMTP service extensions supported by the " +"server, see :meth:`ehlo`." +msgstr "" + +#: library/smtplib.rst:583 msgid "SMTP Example" msgstr "" -#: library/smtplib.rst:555 +#: library/smtplib.rst:585 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 " @@ -729,7 +759,7 @@ msgid "" "headers explicitly::" msgstr "" -#: library/smtplib.rst:561 +#: library/smtplib.rst:591 msgid "" "import smtplib\n" "\n" @@ -759,7 +789,7 @@ msgid "" "server.quit()" msgstr "" -#: library/smtplib.rst:590 +#: library/smtplib.rst:620 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." diff --git a/library/sndhdr.po b/library/sndhdr.po index 4098a13e..ea6da111 100644 --- a/library/sndhdr.po +++ b/library/sndhdr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/socket.po b/library/socket.po index d2a3601c..72e4b358 100644 --- a/library/socket.po +++ b/library/socket.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/socketserver.po b/library/socketserver.po index 37888b35..1c848d32 100644 --- a/library/socketserver.po +++ b/library/socketserver.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -625,11 +625,11 @@ msgstr "" 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 the first handler had to use a ``recv()`` loop to accumulate data " +"while the first handler had to use a ``recv()`` loop to accumulate data " "until a newline itself. If it had just used a single ``recv()`` without the " "loop it would just have returned what has been received so far from the " "client. TCP is stream based: data arrives in the order it was sent, but " -"there no correlation between client ``send()`` or ``sendall()`` calls and " +"there is no correlation between client ``send()`` or ``sendall()`` calls and " "the number of ``recv()`` calls on the server required to receive it." msgstr "" diff --git a/library/spwd.po b/library/spwd.po index 248a71c7..8fe4bf64 100644 --- a/library/spwd.po +++ b/library/spwd.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/sqlite3.po b/library/sqlite3.po index 7626c886..6b66ad92 100644 --- a/library/sqlite3.po +++ b/library/sqlite3.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,71 +39,79 @@ msgstr "" msgid "" "The :mod:`!sqlite3` module was written by Gerhard Häring. It provides an " "SQL interface compliant with the DB-API 2.0 specification described by :pep:" -"`249`, and requires SQLite 3.15.2 or newer." +"`249`, and requires the third-party `SQLite `_ library." msgstr "" -#: library/sqlite3.rst:36 -msgid "This document includes four main sections:" +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." msgstr "" #: library/sqlite3.rst:38 +msgid "This document includes four main sections:" +msgstr "" + +#: library/sqlite3.rst:40 msgid ":ref:`sqlite3-tutorial` teaches how to use the :mod:`!sqlite3` module." msgstr "" -#: library/sqlite3.rst:39 +#: library/sqlite3.rst:41 msgid "" ":ref:`sqlite3-reference` describes the classes and functions this module " "defines." msgstr "" -#: library/sqlite3.rst:41 +#: library/sqlite3.rst:43 msgid ":ref:`sqlite3-howtos` details how to handle specific tasks." msgstr "" -#: library/sqlite3.rst:42 +#: library/sqlite3.rst:44 msgid "" ":ref:`sqlite3-explanation` provides in-depth background on transaction " "control." msgstr "" -#: library/sqlite3.rst:47 +#: library/sqlite3.rst:49 msgid "https://www.sqlite.org" msgstr "" -#: library/sqlite3.rst:48 +#: library/sqlite3.rst:50 msgid "" "The SQLite web page; the documentation describes the syntax and the " "available data types for the supported SQL dialect." msgstr "" -#: library/sqlite3.rst:51 +#: library/sqlite3.rst:53 msgid "https://www.w3schools.com/sql/" msgstr "" -#: library/sqlite3.rst:52 +#: library/sqlite3.rst:54 msgid "Tutorial, reference and examples for learning SQL syntax." msgstr "" -#: library/sqlite3.rst:54 +#: library/sqlite3.rst:56 msgid ":pep:`249` - Database API Specification 2.0" msgstr "" -#: library/sqlite3.rst:55 +#: library/sqlite3.rst:57 msgid "PEP written by Marc-André Lemburg." msgstr "" -#: library/sqlite3.rst:68 +#: library/sqlite3.rst:70 msgid "Tutorial" msgstr "" -#: library/sqlite3.rst:70 +#: library/sqlite3.rst:72 msgid "" "In this tutorial, you will create a database of Monty Python movies using " "basic :mod:`!sqlite3` functionality. It assumes a fundamental understanding " "of database concepts, including `cursors`_ and `transactions`_." msgstr "" -#: library/sqlite3.rst:75 +#: library/sqlite3.rst:77 msgid "" "First, we need to create a new database and open a database connection to " "allow :mod:`!sqlite3` to work with it. Call :func:`sqlite3.connect` to " @@ -111,30 +119,30 @@ msgid "" "working directory, implicitly creating it if it does not exist:" msgstr "" -#: library/sqlite3.rst:81 +#: library/sqlite3.rst:83 msgid "" "import sqlite3\n" "con = sqlite3.connect(\"tutorial.db\")" msgstr "" -#: library/sqlite3.rst:86 +#: library/sqlite3.rst:88 msgid "" "The returned :class:`Connection` object ``con`` represents the connection to " "the on-disk database." msgstr "" -#: library/sqlite3.rst:89 +#: library/sqlite3.rst:91 msgid "" "In order to execute SQL statements and fetch results from SQL queries, we " "will need to use a database cursor. Call :meth:`con.cursor() ` to create the :class:`Cursor`:" msgstr "" -#: library/sqlite3.rst:93 +#: library/sqlite3.rst:95 msgid "cur = con.cursor()" msgstr "" -#: library/sqlite3.rst:97 +#: library/sqlite3.rst:99 msgid "" "Now that we've got a database connection and a cursor, we can create a " "database table ``movie`` with columns for title, release year, and review " @@ -144,11 +152,11 @@ msgid "" "`cur.execute(...) `:" msgstr "" -#: library/sqlite3.rst:106 +#: library/sqlite3.rst:108 msgid "cur.execute(\"CREATE TABLE movie(title, year, score)\")" msgstr "" -#: library/sqlite3.rst:113 +#: library/sqlite3.rst:115 msgid "" "We can verify that the new table has been created by querying the " "``sqlite_master`` table built-in to SQLite, which should now contain an " @@ -158,35 +166,35 @@ msgid "" "` to fetch the resulting row:" msgstr "" -#: library/sqlite3.rst:121 +#: library/sqlite3.rst:123 msgid "" ">>> res = cur.execute(\"SELECT name FROM sqlite_master\")\n" ">>> res.fetchone()\n" "('movie',)" msgstr "" -#: library/sqlite3.rst:127 +#: library/sqlite3.rst:129 msgid "" "We can see that the table has been created, as the query returns a :class:" "`tuple` containing the table's name. If we query ``sqlite_master`` for a non-" "existent table ``spam``, :meth:`!res.fetchone` will return ``None``:" msgstr "" -#: library/sqlite3.rst:132 +#: library/sqlite3.rst:134 msgid "" ">>> res = cur.execute(\"SELECT name FROM sqlite_master WHERE name='spam'\")\n" ">>> res.fetchone() is None\n" "True" msgstr "" -#: library/sqlite3.rst:138 +#: library/sqlite3.rst:140 msgid "" "Now, add two rows of data supplied as SQL literals by executing an " "``INSERT`` statement, once again by calling :meth:`cur.execute(...) `:" msgstr "" -#: library/sqlite3.rst:142 +#: library/sqlite3.rst:144 msgid "" "cur.execute(\"\"\"\n" " INSERT INTO movie VALUES\n" @@ -195,7 +203,7 @@ msgid "" "\"\"\")" msgstr "" -#: library/sqlite3.rst:150 +#: library/sqlite3.rst:152 msgid "" "The ``INSERT`` statement implicitly opens a transaction, which needs to be " "committed before changes are saved in the database (see :ref:`sqlite3-" @@ -203,11 +211,11 @@ msgid "" "commit>` on the connection object to commit the transaction:" msgstr "" -#: library/sqlite3.rst:156 +#: library/sqlite3.rst:158 msgid "con.commit()" msgstr "" -#: library/sqlite3.rst:160 +#: library/sqlite3.rst:162 msgid "" "We can verify that the data was inserted correctly by executing a ``SELECT`` " "query. Use the now-familiar :meth:`cur.execute(...) ` to " @@ -215,26 +223,26 @@ msgid "" "fetchall>` to return all resulting rows:" msgstr "" -#: library/sqlite3.rst:166 +#: library/sqlite3.rst:168 msgid "" ">>> res = cur.execute(\"SELECT score FROM movie\")\n" ">>> res.fetchall()\n" "[(8.2,), (7.5,)]" msgstr "" -#: library/sqlite3.rst:172 +#: library/sqlite3.rst:174 msgid "" "The result is a :class:`list` of two :class:`!tuple`\\s, one per row, each " "containing that row's ``score`` value." msgstr "" -#: library/sqlite3.rst:175 +#: library/sqlite3.rst:177 msgid "" "Now, insert three more rows by calling :meth:`cur.executemany(...) `:" msgstr "" -#: library/sqlite3.rst:178 +#: library/sqlite3.rst:180 msgid "" "data = [\n" " (\"Monty Python Live at the Hollywood Bowl\", 1982, 7.9),\n" @@ -245,7 +253,7 @@ msgid "" "con.commit() # Remember to commit the transaction after executing INSERT." msgstr "" -#: library/sqlite3.rst:188 +#: library/sqlite3.rst:190 msgid "" "Notice that ``?`` placeholders are used to bind ``data`` to the query. " "Always use placeholders instead of :ref:`string formatting ` " @@ -253,13 +261,13 @@ msgid "" "(see :ref:`sqlite3-placeholders` for more details)." msgstr "" -#: library/sqlite3.rst:194 +#: library/sqlite3.rst:196 msgid "" "We can verify that the new rows were inserted by executing a ``SELECT`` " "query, this time iterating over the results of the query:" msgstr "" -#: library/sqlite3.rst:198 +#: library/sqlite3.rst:200 msgid "" ">>> for row in cur.execute(\"SELECT year, title FROM movie ORDER BY " "year\"):\n" @@ -271,20 +279,20 @@ msgid "" "(1983, \"Monty Python's The Meaning of Life\")" msgstr "" -#: library/sqlite3.rst:208 +#: library/sqlite3.rst:210 msgid "" "Each row is a two-item :class:`tuple` of ``(year, title)``, matching the " "columns selected in the query." msgstr "" -#: library/sqlite3.rst:211 +#: library/sqlite3.rst:213 msgid "" "Finally, verify that the database has been written to disk by calling :meth:" "`con.close() ` to close the existing connection, opening a " "new one, creating a new cursor, then querying the database:" msgstr "" -#: library/sqlite3.rst:216 +#: library/sqlite3.rst:218 msgid "" ">>> con.close()\n" ">>> new_con = sqlite3.connect(\"tutorial.db\")\n" @@ -299,50 +307,50 @@ msgid "" ">>> new_con.close()" msgstr "" -#: library/sqlite3.rst:227 +#: library/sqlite3.rst:229 msgid "" "You've now created an SQLite database using the :mod:`!sqlite3` module, " "inserted data and retrieved values from it in multiple ways." msgstr "" -#: library/sqlite3.rst:239 +#: library/sqlite3.rst:241 msgid ":ref:`sqlite3-howtos` for further reading:" msgstr "" -#: library/sqlite3.rst:241 +#: library/sqlite3.rst:243 msgid ":ref:`sqlite3-placeholders`" msgstr "" -#: library/sqlite3.rst:242 +#: library/sqlite3.rst:244 msgid ":ref:`sqlite3-adapters`" msgstr "" -#: library/sqlite3.rst:243 +#: library/sqlite3.rst:245 msgid ":ref:`sqlite3-converters`" msgstr "" -#: library/sqlite3.rst:600 +#: library/sqlite3.rst:602 msgid ":ref:`sqlite3-connection-context-manager`" msgstr "" -#: library/sqlite3.rst:245 +#: library/sqlite3.rst:247 msgid ":ref:`sqlite3-howto-row-factory`" msgstr "" -#: library/sqlite3.rst:247 +#: library/sqlite3.rst:249 msgid "" ":ref:`sqlite3-explanation` for in-depth background on transaction control." msgstr "" -#: library/sqlite3.rst:252 +#: library/sqlite3.rst:254 msgid "Reference" msgstr "" -#: library/sqlite3.rst:260 +#: library/sqlite3.rst:262 msgid "Module functions" msgstr "" -#: library/sqlite3.rst:268 +#: library/sqlite3.rst:270 msgid "Open a connection to an SQLite database." msgstr "" @@ -350,14 +358,14 @@ msgstr "" msgid "Parameters" msgstr "" -#: library/sqlite3.rst:270 +#: library/sqlite3.rst:272 msgid "" "The path to the database file to be opened. You can pass ``\":memory:\"`` to " "create an `SQLite database existing only in memory `_, and open a connection to it." msgstr "" -#: library/sqlite3.rst:277 +#: library/sqlite3.rst:279 msgid "" "How many seconds the connection should wait before raising an :exc:" "`OperationalError` when a table is locked. If another connection opens a " @@ -365,7 +373,7 @@ msgid "" "transaction is committed. Default five seconds." msgstr "" -#: library/sqlite3.rst:284 +#: library/sqlite3.rst:286 msgid "" "Control whether and how data types not :ref:`natively supported by SQLite " "` are looked up to be converted to Python types, using the " @@ -375,7 +383,7 @@ msgid "" "types if both flags are set. By default (``0``), type detection is disabled." msgstr "" -#: library/sqlite3.rst:295 +#: library/sqlite3.rst:297 msgid "" "Control legacy transaction handling behaviour. See :attr:`Connection." "isolation_level` and :ref:`sqlite3-transaction-control-isolation-level` for " @@ -385,7 +393,7 @@ msgid "" "`~sqlite3.LEGACY_TRANSACTION_CONTROL` (the default)." msgstr "" -#: library/sqlite3.rst:305 +#: library/sqlite3.rst:307 msgid "" "If ``True`` (default), :exc:`ProgrammingError` will be raised if the " "database connection is used by a thread other than the one that created it. " @@ -394,19 +402,19 @@ msgid "" "See :attr:`threadsafety` for more information." msgstr "" -#: library/sqlite3.rst:314 +#: library/sqlite3.rst:316 msgid "" "A custom subclass of :class:`Connection` to create the connection with, if " "not the default :class:`Connection` class." msgstr "" -#: library/sqlite3.rst:318 +#: library/sqlite3.rst:320 msgid "" "The number of statements that :mod:`!sqlite3` should internally cache for " "this connection, to avoid parsing overhead. By default, 128 statements." msgstr "" -#: library/sqlite3.rst:323 +#: library/sqlite3.rst:325 msgid "" "If set to ``True``, *database* is interpreted as a :abbr:`URI (Uniform " "Resource Identifier)` with a file path and an optional query string. The " @@ -415,7 +423,7 @@ msgid "" "various :ref:`sqlite3-uri-tricks`." msgstr "" -#: library/sqlite3.rst:332 +#: library/sqlite3.rst:334 msgid "" "Control :pep:`249` transaction handling behaviour. See :attr:`Connection." "autocommit` and :ref:`sqlite3-transaction-control-autocommit` for more " @@ -428,43 +436,43 @@ msgstr "" msgid "Return type" msgstr "" -#: library/sqlite3.rst:343 +#: library/sqlite3.rst:345 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.connect`` with argument " "``database``." msgstr "" -#: library/sqlite3.rst:344 +#: library/sqlite3.rst:346 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.connect/handle`` with " "argument ``connection_handle``." msgstr "" -#: library/sqlite3.rst:346 +#: library/sqlite3.rst:348 msgid "Added the *uri* parameter." msgstr "" -#: library/sqlite3.rst:349 +#: library/sqlite3.rst:351 msgid "" "*database* can now also be a :term:`path-like object`, not only a string." msgstr "" -#: library/sqlite3.rst:352 +#: library/sqlite3.rst:354 msgid "Added the ``sqlite3.connect/handle`` auditing event." msgstr "" -#: library/sqlite3.rst:355 +#: library/sqlite3.rst:357 msgid "Added the *autocommit* parameter." msgstr "" -#: library/sqlite3.rst:358 +#: library/sqlite3.rst:360 msgid "" "Positional use of the parameters *timeout*, *detect_types*, " "*isolation_level*, *check_same_thread*, *factory*, *cached_statements*, and " "*uri* is deprecated. They will become keyword-only parameters in Python 3.15." msgstr "" -#: library/sqlite3.rst:366 +#: library/sqlite3.rst:368 msgid "" "Return ``True`` if the string *statement* appears to contain one or more " "complete SQL statements. No syntactic verification or parsing of any kind is " @@ -472,11 +480,11 @@ msgid "" "and the statement is terminated by a semicolon." msgstr "" -#: library/sqlite3.rst:372 +#: library/sqlite3.rst:374 msgid "For example:" msgstr "" -#: library/sqlite3.rst:374 +#: library/sqlite3.rst:376 msgid "" ">>> sqlite3.complete_statement(\"SELECT foo FROM bar;\")\n" "True\n" @@ -484,20 +492,20 @@ msgid "" "False" msgstr "" -#: library/sqlite3.rst:381 +#: library/sqlite3.rst:383 msgid "" "This function may be useful during command-line input to determine if the " "entered text seems to form a complete SQL statement, or if additional input " "is needed before calling :meth:`~Cursor.execute`." msgstr "" -#: library/sqlite3.rst:385 +#: library/sqlite3.rst:387 msgid "" "See :func:`!runsource` in :source:`Lib/sqlite3/__main__.py` for real-world " "use." msgstr "" -#: library/sqlite3.rst:390 +#: library/sqlite3.rst:392 msgid "" "Enable or disable callback tracebacks. By default you will not get any " "tracebacks in user-defined functions, aggregates, converters, authorizer " @@ -506,14 +514,14 @@ msgid "" "on :data:`sys.stderr`. Use ``False`` to disable the feature again." msgstr "" -#: library/sqlite3.rst:399 +#: library/sqlite3.rst:401 msgid "" "Errors in user-defined function callbacks are logged as unraisable " "exceptions. Use an :func:`unraisable hook handler ` for " "introspection of the failed callback." msgstr "" -#: library/sqlite3.rst:405 +#: library/sqlite3.rst:407 msgid "" "Register an *adapter* :term:`callable` to adapt the Python type *type* into " "an SQLite type. The adapter is called with a Python object of type *type* as " @@ -521,7 +529,7 @@ msgid "" "natively understands `." msgstr "" -#: library/sqlite3.rst:413 +#: library/sqlite3.rst:415 msgid "" "Register the *converter* :term:`callable` to convert SQLite objects of type " "*typename* into a Python object of a specific type. The converter is invoked " @@ -531,24 +539,24 @@ msgid "" "type detection works." msgstr "" -#: library/sqlite3.rst:421 +#: library/sqlite3.rst:423 msgid "" "Note: *typename* and the name of the type in your query are matched case-" "insensitively." msgstr "" -#: library/sqlite3.rst:428 +#: library/sqlite3.rst:430 msgid "Module constants" msgstr "" -#: library/sqlite3.rst:432 +#: library/sqlite3.rst:434 msgid "" "Set :attr:`~Connection.autocommit` to this constant to select old style (pre-" "Python 3.12) transaction control behaviour. See :ref:`sqlite3-transaction-" "control-isolation-level` for more information." msgstr "" -#: library/sqlite3.rst:438 +#: library/sqlite3.rst:440 msgid "" "Pass this flag value to the *detect_types* parameter of :func:`connect` to " "look up a converter function using the declared types for each column. The " @@ -557,7 +565,7 @@ msgid "" "the converter dictionary key. For example:" msgstr "" -#: library/sqlite3.rst:446 +#: library/sqlite3.rst:448 msgid "" "CREATE TABLE test(\n" " i integer primary key, ! will look up a converter named \"integer\"\n" @@ -566,19 +574,19 @@ msgid "" " )" msgstr "" -#: library/sqlite3.rst:454 +#: library/sqlite3.rst:456 msgid "" "This flag may be combined with :const:`PARSE_COLNAMES` using the ``|`` " "(bitwise or) operator." msgstr "" -#: library/sqlite3.rst:459 +#: library/sqlite3.rst:461 msgid "" "Generated fields (for example ``MAX(p)``) are returned as :class:`str`. Use :" "const:`!PARSE_COLNAMES` to enforce types for such queries." msgstr "" -#: library/sqlite3.rst:464 +#: library/sqlite3.rst:466 msgid "" "Pass this flag value to the *detect_types* parameter of :func:`connect` to " "look up a converter function by using the type name, parsed from the query " @@ -587,66 +595,66 @@ msgid "" "square brackets (``[]``)." msgstr "" -#: library/sqlite3.rst:471 +#: library/sqlite3.rst:473 msgid "" "SELECT MAX(p) as \"p [point]\" FROM test; ! will look up converter \"point\"" msgstr "" -#: library/sqlite3.rst:475 +#: library/sqlite3.rst:477 msgid "" "This flag may be combined with :const:`PARSE_DECLTYPES` using the ``|`` " "(bitwise or) operator." msgstr "" -#: library/sqlite3.rst:482 +#: library/sqlite3.rst:484 msgid "" "Flags that should be returned by the *authorizer_callback* :term:`callable` " "passed to :meth:`Connection.set_authorizer`, to indicate whether:" msgstr "" -#: library/sqlite3.rst:485 +#: library/sqlite3.rst:487 msgid "Access is allowed (:const:`!SQLITE_OK`)," msgstr "" -#: library/sqlite3.rst:486 +#: library/sqlite3.rst:488 msgid "" "The SQL statement should be aborted with an error (:const:`!SQLITE_DENY`)" msgstr "" -#: library/sqlite3.rst:487 +#: library/sqlite3.rst:489 msgid "" "The column should be treated as a ``NULL`` value (:const:`!SQLITE_IGNORE`)" msgstr "" -#: library/sqlite3.rst:491 +#: library/sqlite3.rst:493 msgid "" "String constant stating the supported DB-API level. Required by the DB-API. " "Hard-coded to ``\"2.0\"``." msgstr "" -#: library/sqlite3.rst:496 +#: library/sqlite3.rst:498 msgid "" "String constant stating the type of parameter marker formatting expected by " "the :mod:`!sqlite3` module. Required by the DB-API. Hard-coded to " "``\"qmark\"``." msgstr "" -#: library/sqlite3.rst:502 +#: library/sqlite3.rst:504 msgid "The ``named`` DB-API parameter style is also supported." msgstr "" -#: library/sqlite3.rst:506 +#: library/sqlite3.rst:508 msgid "" "Version number of the runtime SQLite library as a :class:`string `." msgstr "" -#: library/sqlite3.rst:510 +#: library/sqlite3.rst:512 msgid "" "Version number of the runtime SQLite library as a :class:`tuple` of :class:" "`integers `." msgstr "" -#: library/sqlite3.rst:515 +#: library/sqlite3.rst:517 msgid "" "Integer constant required by the DB-API 2.0, stating the level of thread " "safety the :mod:`!sqlite3` module supports. This attribute is set based on " @@ -654,172 +662,172 @@ msgid "" "underlying SQLite library is compiled with. The SQLite threading modes are:" msgstr "" -#: library/sqlite3.rst:520 +#: library/sqlite3.rst:522 msgid "" "**Single-thread**: In this mode, all mutexes are disabled and SQLite is " "unsafe to use in more than a single thread at once." msgstr "" -#: library/sqlite3.rst:522 +#: library/sqlite3.rst:524 msgid "" "**Multi-thread**: In this mode, SQLite can be safely used by multiple " "threads provided that no single database connection is used simultaneously " "in two or more threads." msgstr "" -#: library/sqlite3.rst:525 +#: library/sqlite3.rst:527 msgid "" "**Serialized**: In serialized mode, SQLite can be safely used by multiple " "threads with no restriction." msgstr "" -#: library/sqlite3.rst:528 +#: library/sqlite3.rst:530 msgid "" "The mappings from SQLite threading modes to DB-API 2.0 threadsafety levels " "are as follows:" msgstr "" -#: library/sqlite3.rst:532 +#: library/sqlite3.rst:534 msgid "SQLite threading mode" msgstr "" -#: library/sqlite3.rst:532 +#: library/sqlite3.rst:534 msgid ":pep:`threadsafety <0249#threadsafety>`" msgstr "" -#: library/sqlite3.rst:532 +#: library/sqlite3.rst:534 msgid "`SQLITE_THREADSAFE`_" msgstr "" -#: library/sqlite3.rst:532 +#: library/sqlite3.rst:534 msgid "DB-API 2.0 meaning" msgstr "" -#: library/sqlite3.rst:535 +#: library/sqlite3.rst:537 msgid "single-thread" msgstr "" -#: library/sqlite3.rst:535 +#: library/sqlite3.rst:537 msgid "0" msgstr "" -#: library/sqlite3.rst:535 +#: library/sqlite3.rst:537 msgid "Threads may not share the module" msgstr "" -#: library/sqlite3.rst:538 +#: library/sqlite3.rst:540 msgid "multi-thread" msgstr "" -#: library/sqlite3.rst:541 +#: library/sqlite3.rst:543 msgid "1" msgstr "" -#: library/sqlite3.rst:538 +#: library/sqlite3.rst:540 msgid "2" msgstr "" -#: library/sqlite3.rst:538 +#: library/sqlite3.rst:540 msgid "Threads may share the module, but not connections" msgstr "" -#: library/sqlite3.rst:541 +#: library/sqlite3.rst:543 msgid "serialized" msgstr "" -#: library/sqlite3.rst:541 +#: library/sqlite3.rst:543 msgid "3" msgstr "" -#: library/sqlite3.rst:541 +#: library/sqlite3.rst:543 msgid "Threads may share the module, connections and cursors" msgstr "" -#: library/sqlite3.rst:547 +#: library/sqlite3.rst:549 msgid "Set *threadsafety* dynamically instead of hard-coding it to ``1``." msgstr "" -#: library/sqlite3.rst:569 +#: library/sqlite3.rst:571 msgid "" "These constants are used for the :meth:`Connection.setconfig` and :meth:" "`~Connection.getconfig` methods." msgstr "" -#: library/sqlite3.rst:572 +#: library/sqlite3.rst:574 msgid "" "The availability of these constants varies depending on the version of " "SQLite Python was compiled with." msgstr "" -#: library/sqlite3.rst:579 +#: library/sqlite3.rst:581 msgid "https://www.sqlite.org/c3ref/c_dbconfig_defensive.html" msgstr "" -#: library/sqlite3.rst:580 +#: library/sqlite3.rst:582 msgid "SQLite docs: Database Connection Configuration Options" msgstr "" -#: library/sqlite3.rst:582 +#: library/sqlite3.rst:584 msgid "The :data:`!version` and :data:`!version_info` constants." msgstr "" -#: library/sqlite3.rst:588 +#: library/sqlite3.rst:590 msgid "Connection objects" msgstr "" -#: library/sqlite3.rst:592 +#: library/sqlite3.rst:594 msgid "" "Each open SQLite database is represented by a ``Connection`` object, which " "is created using :func:`sqlite3.connect`. Their main purpose is creating :" "class:`Cursor` objects, and :ref:`sqlite3-controlling-transactions`." msgstr "" -#: library/sqlite3.rst:599 +#: library/sqlite3.rst:601 msgid ":ref:`sqlite3-connection-shortcuts`" msgstr "" -#: library/sqlite3.rst:605 +#: library/sqlite3.rst:607 msgid "" "A :exc:`ResourceWarning` is emitted if :meth:`close` is not called before a :" "class:`!Connection` object is deleted." msgstr "" -#: library/sqlite3.rst:608 +#: library/sqlite3.rst:610 msgid "An SQLite database connection has the following attributes and methods:" msgstr "" -#: library/sqlite3.rst:612 +#: library/sqlite3.rst:614 msgid "" "Create and return a :class:`Cursor` object. The cursor method accepts a " "single optional parameter *factory*. If supplied, this must be a :term:" "`callable` returning an instance of :class:`Cursor` or its subclasses." msgstr "" -#: library/sqlite3.rst:619 +#: library/sqlite3.rst:621 msgid "" "Open a :class:`Blob` handle to an existing :abbr:`BLOB (Binary Large " "OBject)`." msgstr "" -#: library/sqlite3.rst:622 +#: library/sqlite3.rst:624 msgid "The name of the table where the blob is located." msgstr "" -#: library/sqlite3.rst:625 +#: library/sqlite3.rst:627 msgid "The name of the column where the blob is located." msgstr "" -#: library/sqlite3.rst:628 -msgid "The name of the row where the blob is located." +#: library/sqlite3.rst:630 +msgid "The row id where the blob is located." msgstr "" -#: library/sqlite3.rst:631 +#: library/sqlite3.rst:633 msgid "" "Set to ``True`` if the blob should be opened without write permissions. " "Defaults to ``False``." msgstr "" -#: library/sqlite3.rst:636 +#: library/sqlite3.rst:638 msgid "" "The name of the database where the blob is located. Defaults to ``\"main\"``." msgstr "" @@ -828,17 +836,17 @@ msgstr "" msgid "Raises" msgstr "" -#: library/sqlite3.rst:640 +#: library/sqlite3.rst:642 msgid "When trying to open a blob in a ``WITHOUT ROWID`` table." msgstr "" -#: library/sqlite3.rst:647 +#: library/sqlite3.rst:649 msgid "" "The blob size cannot be changed using the :class:`Blob` class. Use the SQL " "function ``zeroblob`` to create a blob with a fixed size." msgstr "" -#: library/sqlite3.rst:654 +#: library/sqlite3.rst:656 msgid "" "Commit any pending transaction to the database. If :attr:`autocommit` is " "``True``, or there is no open transaction, this method does nothing. If :" @@ -846,7 +854,7 @@ msgid "" "pending transaction was committed by this method." msgstr "" -#: library/sqlite3.rst:662 +#: library/sqlite3.rst:664 msgid "" "Roll back to the start of any pending transaction. If :attr:`autocommit` is " "``True``, or there is no open transaction, this method does nothing. If :" @@ -854,7 +862,7 @@ msgid "" "pending transaction was rolled back by this method." msgstr "" -#: library/sqlite3.rst:670 +#: library/sqlite3.rst:672 msgid "" "Close the database connection. If :attr:`autocommit` is ``False``, any " "pending transaction is implicitly rolled back. If :attr:`!autocommit` is " @@ -863,61 +871,61 @@ msgid "" "losing pending changes." msgstr "" -#: library/sqlite3.rst:680 +#: library/sqlite3.rst:682 msgid "" "Create a new :class:`Cursor` object and call :meth:`~Cursor.execute` on it " "with the given *sql* and *parameters*. Return the new cursor object." msgstr "" -#: library/sqlite3.rst:686 +#: library/sqlite3.rst:688 msgid "" "Create a new :class:`Cursor` object and call :meth:`~Cursor.executemany` on " "it with the given *sql* and *parameters*. Return the new cursor object." msgstr "" -#: library/sqlite3.rst:692 +#: library/sqlite3.rst:694 msgid "" "Create a new :class:`Cursor` object and call :meth:`~Cursor.executescript` " "on it with the given *sql_script*. Return the new cursor object." msgstr "" -#: library/sqlite3.rst:698 +#: library/sqlite3.rst:700 msgid "Create or remove a user-defined SQL function." msgstr "" -#: library/sqlite3.rst:700 +#: library/sqlite3.rst:702 msgid "The name of the SQL function." msgstr "" -#: library/sqlite3.rst:703 +#: library/sqlite3.rst:705 msgid "" "The number of arguments the SQL function can accept. If ``-1``, it may take " "any number of arguments." msgstr "" -#: library/sqlite3.rst:707 +#: library/sqlite3.rst:709 msgid "" "A :term:`callable` that is called when the SQL function is invoked. The " "callable must return :ref:`a type natively supported by SQLite `. Set to ``None`` to remove an existing SQL function." msgstr "" -#: library/sqlite3.rst:714 +#: library/sqlite3.rst:716 msgid "" "If ``True``, the created SQL function is marked as `deterministic `_, which allows SQLite to perform additional " "optimizations." msgstr "" -#: library/sqlite3.rst:719 +#: library/sqlite3.rst:721 msgid "Added the *deterministic* parameter." msgstr "" -#: library/sqlite3.rst:766 library/sqlite3.rst:1113 library/sqlite3.rst:1578 +#: library/sqlite3.rst:768 library/sqlite3.rst:1115 library/sqlite3.rst:1580 msgid "Example:" msgstr "" -#: library/sqlite3.rst:724 +#: library/sqlite3.rst:726 msgid "" ">>> import hashlib\n" ">>> def md5sum(t):\n" @@ -930,27 +938,27 @@ msgid "" ">>> con.close()" msgstr "" -#: library/sqlite3.rst:738 +#: library/sqlite3.rst:740 msgid "" "Passing *name*, *narg*, and *func* as keyword arguments is deprecated. These " "parameters will become positional-only in Python 3.15." msgstr "" -#: library/sqlite3.rst:744 +#: library/sqlite3.rst:746 msgid "Create or remove a user-defined SQL aggregate function." msgstr "" -#: library/sqlite3.rst:746 +#: library/sqlite3.rst:748 msgid "The name of the SQL aggregate function." msgstr "" -#: library/sqlite3.rst:749 +#: library/sqlite3.rst:751 msgid "" "The number of arguments the SQL aggregate function can accept. If ``-1``, it " "may take any number of arguments." msgstr "" -#: library/sqlite3.rst:753 +#: library/sqlite3.rst:755 msgid "" "A class must implement the following methods: * ``step()``: Add a row to " "the aggregate. * ``finalize()``: Return the final result of the aggregate " @@ -959,31 +967,31 @@ msgid "" "*n_arg*. Set to ``None`` to remove an existing SQL aggregate function." msgstr "" -#: library/sqlite3.rst:754 +#: library/sqlite3.rst:756 msgid "A class must implement the following methods:" msgstr "" -#: library/sqlite3.rst:756 +#: library/sqlite3.rst:758 msgid "``step()``: Add a row to the aggregate." msgstr "" -#: library/sqlite3.rst:818 +#: library/sqlite3.rst:820 msgid "" "``finalize()``: Return the final result of the aggregate as :ref:`a type " "natively supported by SQLite `." msgstr "" -#: library/sqlite3.rst:760 +#: library/sqlite3.rst:762 msgid "" "The number of arguments that the ``step()`` method must accept is controlled " "by *n_arg*." msgstr "" -#: library/sqlite3.rst:763 +#: library/sqlite3.rst:765 msgid "Set to ``None`` to remove an existing SQL aggregate function." msgstr "" -#: library/sqlite3.rst:768 +#: library/sqlite3.rst:770 msgid "" "class MySum:\n" " def __init__(self):\n" @@ -1006,27 +1014,27 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:797 +#: library/sqlite3.rst:799 msgid "" "Passing *name*, *n_arg*, and *aggregate_class* as keyword arguments is " "deprecated. These parameters will become positional-only in Python 3.15." msgstr "" -#: library/sqlite3.rst:803 +#: library/sqlite3.rst:805 msgid "Create or remove a user-defined aggregate window function." msgstr "" -#: library/sqlite3.rst:805 +#: library/sqlite3.rst:807 msgid "The name of the SQL aggregate window function to create or remove." msgstr "" -#: library/sqlite3.rst:808 +#: library/sqlite3.rst:810 msgid "" "The number of arguments the SQL aggregate window function can accept. If " "``-1``, it may take any number of arguments." msgstr "" -#: library/sqlite3.rst:812 +#: library/sqlite3.rst:814 msgid "" "A class that must implement the following methods: * ``step()``: Add a row " "to the current window. * ``value()``: Return the current value of the " @@ -1038,39 +1046,39 @@ msgid "" "function." msgstr "" -#: library/sqlite3.rst:813 +#: library/sqlite3.rst:815 msgid "A class that must implement the following methods:" msgstr "" -#: library/sqlite3.rst:815 +#: library/sqlite3.rst:817 msgid "``step()``: Add a row to the current window." msgstr "" -#: library/sqlite3.rst:816 +#: library/sqlite3.rst:818 msgid "``value()``: Return the current value of the aggregate." msgstr "" -#: library/sqlite3.rst:817 +#: library/sqlite3.rst:819 msgid "``inverse()``: Remove a row from the current window." msgstr "" -#: library/sqlite3.rst:821 +#: library/sqlite3.rst:823 msgid "" "The number of arguments that the ``step()`` and ``value()`` methods must " "accept is controlled by *num_params*." msgstr "" -#: library/sqlite3.rst:824 +#: library/sqlite3.rst:826 msgid "Set to ``None`` to remove an existing SQL aggregate window function." msgstr "" -#: library/sqlite3.rst:826 +#: library/sqlite3.rst:828 msgid "" "If used with a version of SQLite older than 3.25.0, which does not support " "aggregate window functions." msgstr "" -#: library/sqlite3.rst:836 +#: library/sqlite3.rst:838 msgid "" "# Example taken from https://www.sqlite.org/windowfunctions.html#udfwinfunc\n" "class WindowSumInt:\n" @@ -1118,30 +1126,30 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:890 +#: library/sqlite3.rst:892 msgid "" "Create a collation named *name* using the collating function *callable*. " "*callable* is passed two :class:`string ` arguments, and it should " "return an :class:`integer `:" msgstr "" -#: library/sqlite3.rst:894 +#: library/sqlite3.rst:896 msgid "``1`` if the first is ordered higher than the second" msgstr "" -#: library/sqlite3.rst:895 +#: library/sqlite3.rst:897 msgid "``-1`` if the first is ordered lower than the second" msgstr "" -#: library/sqlite3.rst:896 +#: library/sqlite3.rst:898 msgid "``0`` if they are ordered equal" msgstr "" -#: library/sqlite3.rst:898 +#: library/sqlite3.rst:900 msgid "The following example shows a reverse sorting collation:" msgstr "" -#: library/sqlite3.rst:900 +#: library/sqlite3.rst:902 msgid "" "def collate_reverse(string1, string2):\n" " if string1 == string2:\n" @@ -1162,24 +1170,24 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:926 +#: library/sqlite3.rst:928 msgid "Remove a collation function by setting *callable* to ``None``." msgstr "" -#: library/sqlite3.rst:928 +#: library/sqlite3.rst:930 msgid "" "The collation name can contain any Unicode character. Earlier, only ASCII " "characters were allowed." msgstr "" -#: library/sqlite3.rst:935 +#: library/sqlite3.rst:937 msgid "" "Call this method from a different thread to abort any queries that might be " "executing on the connection. Aborted queries will raise an :exc:" "`OperationalError`." msgstr "" -#: library/sqlite3.rst:942 +#: library/sqlite3.rst:944 msgid "" "Register :term:`callable` *authorizer_callback* to be invoked for each " "attempt to access a column of a table in the database. The callback should " @@ -1188,7 +1196,7 @@ msgid "" "underlying SQLite library." msgstr "" -#: library/sqlite3.rst:949 +#: library/sqlite3.rst:951 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 ``None`` " @@ -1198,7 +1206,7 @@ msgid "" "attempt or ``None`` if this access attempt is directly from input SQL code." msgstr "" -#: library/sqlite3.rst:956 +#: library/sqlite3.rst:958 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 " @@ -1206,21 +1214,21 @@ msgid "" "module." msgstr "" -#: library/sqlite3.rst:960 +#: library/sqlite3.rst:962 msgid "Passing ``None`` as *authorizer_callback* will disable the authorizer." msgstr "" -#: library/sqlite3.rst:962 +#: library/sqlite3.rst:964 msgid "Added support for disabling the authorizer using ``None``." msgstr "" -#: library/sqlite3.rst:965 +#: library/sqlite3.rst:967 msgid "" "Passing *authorizer_callback* as a keyword argument is deprecated. The " "parameter will become positional-only in Python 3.15." msgstr "" -#: library/sqlite3.rst:972 +#: library/sqlite3.rst:974 msgid "" "Register :term:`callable` *progress_handler* to be invoked for every *n* " "instructions of the SQLite virtual machine. This is useful if you want to " @@ -1228,32 +1236,32 @@ msgid "" "a GUI." msgstr "" -#: library/sqlite3.rst:977 +#: library/sqlite3.rst:979 msgid "" "If you want to clear any previously installed progress handler, call the " "method with ``None`` for *progress_handler*." msgstr "" -#: library/sqlite3.rst:980 +#: library/sqlite3.rst:982 msgid "" "Returning a non-zero value from the handler function will terminate the " "currently executing query and cause it to raise a :exc:`DatabaseError` " "exception." msgstr "" -#: library/sqlite3.rst:984 +#: library/sqlite3.rst:986 msgid "" "Passing *progress_handler* as a keyword argument is deprecated. The " "parameter will become positional-only in Python 3.15." msgstr "" -#: library/sqlite3.rst:991 +#: library/sqlite3.rst:993 msgid "" "Register :term:`callable` *trace_callback* to be invoked for each SQL " "statement that is actually executed by the SQLite backend." msgstr "" -#: library/sqlite3.rst:994 +#: library/sqlite3.rst:996 msgid "" "The only argument passed to the callback is the statement (as :class:`str`) " "that is being executed. The return value of the callback is ignored. Note " @@ -1263,24 +1271,24 @@ msgid "" "execution of triggers defined in the current database." msgstr "" -#: library/sqlite3.rst:1002 +#: library/sqlite3.rst:1004 msgid "Passing ``None`` as *trace_callback* will disable the trace callback." msgstr "" -#: library/sqlite3.rst:1005 +#: library/sqlite3.rst:1007 msgid "" "Exceptions raised in the trace callback are not propagated. As a development " "and debugging aid, use :meth:`~sqlite3.enable_callback_tracebacks` to enable " "printing tracebacks from exceptions raised in the trace callback." msgstr "" -#: library/sqlite3.rst:1012 +#: library/sqlite3.rst:1014 msgid "" "Passing *trace_callback* as a keyword argument is deprecated. The parameter " "will become positional-only in Python 3.15." msgstr "" -#: library/sqlite3.rst:1019 +#: library/sqlite3.rst:1021 msgid "" "Enable the SQLite engine to load SQLite extensions from shared libraries if " "*enabled* is ``True``; else, disallow loading SQLite extensions. SQLite " @@ -1289,7 +1297,7 @@ msgid "" "distributed with SQLite." msgstr "" -#: library/sqlite3.rst:1028 +#: library/sqlite3.rst:1030 msgid "" "The :mod:`!sqlite3` module is not built with loadable extension support by " "default, because some platforms (notably macOS) have SQLite libraries which " @@ -1298,17 +1306,17 @@ msgid "" "program:`configure`." msgstr "" -#: library/sqlite3.rst:1035 +#: library/sqlite3.rst:1037 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.enable_load_extension`` " "with arguments ``connection``, ``enabled``." msgstr "" -#: library/sqlite3.rst:1039 +#: library/sqlite3.rst:1041 msgid "Added the ``sqlite3.enable_load_extension`` auditing event." msgstr "" -#: library/sqlite3.rst:1045 +#: library/sqlite3.rst:1047 msgid "" "con.enable_load_extension(True)\n" "\n" @@ -1338,52 +1346,52 @@ msgid "" " print(row)" msgstr "" -#: library/sqlite3.rst:1071 +#: library/sqlite3.rst:1073 msgid "" "Load an SQLite extension from a shared library. Enable extension loading " "with :meth:`enable_load_extension` before calling this method." msgstr "" -#: library/sqlite3.rst:1075 +#: library/sqlite3.rst:1077 msgid "The path to the SQLite extension." msgstr "" -#: library/sqlite3.rst:1079 +#: library/sqlite3.rst:1081 msgid "" "Entry point name. If ``None`` (the default), SQLite will come up with an " "entry point name of its own; see the SQLite docs `Loading an Extension`_ for " "details." msgstr "" -#: library/sqlite3.rst:1088 +#: library/sqlite3.rst:1090 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.load_extension`` with " "arguments ``connection``, ``path``." msgstr "" -#: library/sqlite3.rst:1092 +#: library/sqlite3.rst:1094 msgid "Added the ``sqlite3.load_extension`` auditing event." msgstr "" -#: library/sqlite3.rst:1095 +#: library/sqlite3.rst:1097 msgid "Added the *entrypoint* parameter." msgstr "" -#: library/sqlite3.rst:1102 +#: library/sqlite3.rst:1104 msgid "" "Return an :term:`iterator` to dump the database as SQL source code. Useful " "when saving an in-memory database for later restoration. Similar to the ``." "dump`` command in the :program:`sqlite3` shell." msgstr "" -#: library/sqlite3.rst:1106 +#: library/sqlite3.rst:1108 msgid "" "An optional ``LIKE`` pattern for database objects to dump, e.g. " "``prefix_%``. If ``None`` (the default), all database objects will be " "included." msgstr "" -#: library/sqlite3.rst:1115 +#: library/sqlite3.rst:1117 msgid "" "# Convert file example.db to SQL dump file dump.sql\n" "con = sqlite3.connect('example.db')\n" @@ -1393,35 +1401,35 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:1200 +#: library/sqlite3.rst:1202 msgid ":ref:`sqlite3-howto-encoding`" msgstr "" -#: library/sqlite3.rst:1128 +#: library/sqlite3.rst:1130 msgid "Added the *filter* parameter." msgstr "" -#: library/sqlite3.rst:1133 +#: library/sqlite3.rst:1135 msgid "Create a backup of an SQLite database." msgstr "" -#: library/sqlite3.rst:1135 +#: library/sqlite3.rst:1137 msgid "" "Works even if the database is being accessed by other clients or " "concurrently by the same connection." msgstr "" -#: library/sqlite3.rst:1138 +#: library/sqlite3.rst:1140 msgid "The database connection to save the backup to." msgstr "" -#: library/sqlite3.rst:1141 +#: library/sqlite3.rst:1143 msgid "" "The number of pages to copy at a time. If equal to or less than ``0``, the " "entire database is copied in a single step. Defaults to ``-1``." msgstr "" -#: library/sqlite3.rst:1147 +#: library/sqlite3.rst:1149 msgid "" "If set to a :term:`callable`, it is invoked with three integer arguments for " "every backup iteration: the *status* of the last iteration, the *remaining* " @@ -1429,24 +1437,24 @@ msgid "" "Defaults to ``None``." msgstr "" -#: library/sqlite3.rst:1156 +#: library/sqlite3.rst:1158 msgid "" "The name of the database to back up. Either ``\"main\"`` (the default) for " "the main database, ``\"temp\"`` for the temporary database, or the name of a " "custom database as attached using the ``ATTACH DATABASE`` SQL statement." msgstr "" -#: library/sqlite3.rst:1163 +#: library/sqlite3.rst:1165 msgid "" "The number of seconds to sleep between successive attempts to back up " "remaining pages." msgstr "" -#: library/sqlite3.rst:1167 +#: library/sqlite3.rst:1169 msgid "Example 1, copy an existing database into another:" msgstr "" -#: library/sqlite3.rst:1169 +#: library/sqlite3.rst:1171 msgid "" "def progress(status, remaining, total):\n" " print(f'Copied {total-remaining} of {total} pages...')\n" @@ -1459,11 +1467,11 @@ msgid "" "src.close()" msgstr "" -#: library/sqlite3.rst:1186 +#: library/sqlite3.rst:1188 msgid "Example 2, copy an existing database into a transient copy:" msgstr "" -#: library/sqlite3.rst:1188 +#: library/sqlite3.rst:1190 msgid "" "src = sqlite3.connect('example.db')\n" "dst = sqlite3.connect(':memory:')\n" @@ -1472,31 +1480,31 @@ msgid "" "src.close()" msgstr "" -#: library/sqlite3.rst:1204 +#: library/sqlite3.rst:1206 msgid "Get a connection runtime limit." msgstr "" -#: library/sqlite3.rst:1206 +#: library/sqlite3.rst:1208 msgid "The `SQLite limit category`_ to be queried." msgstr "" -#: library/sqlite3.rst:1248 +#: library/sqlite3.rst:1250 msgid "If *category* is not recognised by the underlying SQLite library." msgstr "" -#: library/sqlite3.rst:1214 +#: library/sqlite3.rst:1216 msgid "" "Example, query the maximum length of an SQL statement for :class:" "`Connection` ``con`` (the default is 1000000000):" msgstr "" -#: library/sqlite3.rst:1224 +#: library/sqlite3.rst:1226 msgid "" ">>> con.getlimit(sqlite3.SQLITE_LIMIT_SQL_LENGTH)\n" "1000000000" msgstr "" -#: library/sqlite3.rst:1234 +#: library/sqlite3.rst:1236 msgid "" "Set a connection runtime limit. Attempts to increase a limit above its hard " "upper bound are silently truncated to the hard upper bound. Regardless of " @@ -1504,22 +1512,22 @@ msgid "" "returned." msgstr "" -#: library/sqlite3.rst:1239 +#: library/sqlite3.rst:1241 msgid "The `SQLite limit category`_ to be set." msgstr "" -#: library/sqlite3.rst:1242 +#: library/sqlite3.rst:1244 msgid "" "The value of the new limit. If negative, the current limit is unchanged." msgstr "" -#: library/sqlite3.rst:1251 +#: library/sqlite3.rst:1253 msgid "" "Example, limit the number of attached databases to 1 for :class:`Connection` " "``con`` (the default limit is 10):" msgstr "" -#: library/sqlite3.rst:1254 +#: library/sqlite3.rst:1256 msgid "" ">>> con.setlimit(sqlite3.SQLITE_LIMIT_ATTACHED, 1)\n" "10\n" @@ -1527,25 +1535,25 @@ msgid "" "1" msgstr "" -#: library/sqlite3.rst:1272 +#: library/sqlite3.rst:1274 msgid "Query a boolean connection configuration option." msgstr "" -#: library/sqlite3.rst:1285 +#: library/sqlite3.rst:1287 msgid "A :ref:`SQLITE_DBCONFIG code `." msgstr "" -#: library/sqlite3.rst:1283 +#: library/sqlite3.rst:1285 msgid "Set a boolean connection configuration option." msgstr "" -#: library/sqlite3.rst:1288 +#: library/sqlite3.rst:1290 msgid "" "``True`` if the configuration option should be enabled (default); ``False`` " "if it should be disabled." msgstr "" -#: library/sqlite3.rst:1296 +#: library/sqlite3.rst:1298 msgid "" "Serialize a database into a :class:`bytes` object. For an ordinary on-disk " "database file, the serialization is just a copy of the disk file. For an in-" @@ -1554,17 +1562,17 @@ msgid "" "backed up to disk." msgstr "" -#: library/sqlite3.rst:1302 +#: library/sqlite3.rst:1304 msgid "The database name to be serialized. Defaults to ``\"main\"``." msgstr "" -#: library/sqlite3.rst:1310 +#: library/sqlite3.rst:1312 msgid "" "This method is only available if the underlying SQLite library has the " "serialize API." msgstr "" -#: library/sqlite3.rst:1318 +#: library/sqlite3.rst:1320 msgid "" "Deserialize a :meth:`serialized ` database into a :class:" "`Connection`. This method causes the database connection to disconnect from " @@ -1572,96 +1580,96 @@ msgid "" "serialization contained in *data*." msgstr "" -#: library/sqlite3.rst:1324 +#: library/sqlite3.rst:1326 msgid "A serialized database." msgstr "" -#: library/sqlite3.rst:1327 +#: library/sqlite3.rst:1329 msgid "The database name to deserialize into. Defaults to ``\"main\"``." msgstr "" -#: library/sqlite3.rst:1331 +#: library/sqlite3.rst:1333 msgid "" "If the database connection is currently involved in a read transaction or a " "backup operation." msgstr "" -#: library/sqlite3.rst:1335 +#: library/sqlite3.rst:1337 msgid "If *data* does not contain a valid SQLite database." msgstr "" -#: library/sqlite3.rst:1338 +#: library/sqlite3.rst:1340 msgid "If :func:`len(data) ` is larger than ``2**63 - 1``." msgstr "" -#: library/sqlite3.rst:1343 +#: library/sqlite3.rst:1345 msgid "" "This method is only available if the underlying SQLite library has the " "deserialize API." msgstr "" -#: library/sqlite3.rst:1350 +#: library/sqlite3.rst:1352 msgid "" "This attribute controls :pep:`249`-compliant transaction behaviour. :attr:`!" "autocommit` has three allowed values:" msgstr "" -#: library/sqlite3.rst:1353 +#: library/sqlite3.rst:1355 msgid "" "``False``: Select :pep:`249`-compliant transaction behaviour, implying that :" "mod:`!sqlite3` ensures a transaction is always open. Use :meth:`commit` and :" "meth:`rollback` to close transactions." msgstr "" -#: library/sqlite3.rst:1357 +#: library/sqlite3.rst:1359 msgid "This is the recommended value of :attr:`!autocommit`." msgstr "" -#: library/sqlite3.rst:1359 +#: library/sqlite3.rst:1361 msgid "" "``True``: Use SQLite's `autocommit mode`_. :meth:`commit` and :meth:" "`rollback` have no effect in this mode." msgstr "" -#: library/sqlite3.rst:1362 +#: library/sqlite3.rst:1364 msgid "" ":data:`LEGACY_TRANSACTION_CONTROL`: Pre-Python 3.12 (non-:pep:`249`-" "compliant) transaction control. See :attr:`isolation_level` for more details." msgstr "" -#: library/sqlite3.rst:1366 +#: library/sqlite3.rst:1368 msgid "This is currently the default value of :attr:`!autocommit`." msgstr "" -#: library/sqlite3.rst:1368 +#: library/sqlite3.rst:1370 msgid "" "Changing :attr:`!autocommit` to ``False`` will open a new transaction, and " "changing it to ``True`` will commit any pending transaction." msgstr "" -#: library/sqlite3.rst:1371 +#: library/sqlite3.rst:1373 msgid "See :ref:`sqlite3-transaction-control-autocommit` for more details." msgstr "" -#: library/sqlite3.rst:1375 +#: library/sqlite3.rst:1377 msgid "" "The :attr:`isolation_level` attribute has no effect unless :attr:" "`autocommit` is :data:`LEGACY_TRANSACTION_CONTROL`." msgstr "" -#: library/sqlite3.rst:1382 +#: library/sqlite3.rst:1384 msgid "" "This read-only attribute corresponds to the low-level SQLite `autocommit " "mode`_." msgstr "" -#: library/sqlite3.rst:1385 +#: library/sqlite3.rst:1387 msgid "" "``True`` if a transaction is active (there are uncommitted changes), " "``False`` otherwise." msgstr "" -#: library/sqlite3.rst:1392 +#: library/sqlite3.rst:1394 msgid "" "Controls the :ref:`legacy transaction handling mode ` of :mod:`!sqlite3`. If set to ``None``, " @@ -1671,13 +1679,13 @@ msgid "" "` is performed." msgstr "" -#: library/sqlite3.rst:1400 +#: library/sqlite3.rst:1402 msgid "" "If not overridden by the *isolation_level* parameter of :func:`connect`, the " "default is ``\"\"``, which is an alias for ``\"DEFERRED\"``." msgstr "" -#: library/sqlite3.rst:1405 +#: library/sqlite3.rst:1407 msgid "" "Using :attr:`autocommit` to control transaction handling is recommended over " "using :attr:`!isolation_level`. :attr:`!isolation_level` has no effect " @@ -1685,7 +1693,7 @@ msgid "" "default)." msgstr "" -#: library/sqlite3.rst:1412 +#: library/sqlite3.rst:1414 msgid "" "The initial :attr:`~Cursor.row_factory` for :class:`Cursor` objects created " "from this connection. Assigning to this attribute does not affect the :attr:" @@ -1694,32 +1702,32 @@ msgid "" "`tuple`." msgstr "" -#: library/sqlite3.rst:1705 library/sqlite3.rst:1728 +#: library/sqlite3.rst:1713 library/sqlite3.rst:1736 msgid "See :ref:`sqlite3-howto-row-factory` for more details." msgstr "" -#: library/sqlite3.rst:1423 +#: library/sqlite3.rst:1425 msgid "" "A :term:`callable` that accepts a :class:`bytes` parameter and returns a " "text representation of it. The callable is invoked for SQLite values with " "the ``TEXT`` data type. By default, this attribute is set to :class:`str`." msgstr "" -#: library/sqlite3.rst:1428 +#: library/sqlite3.rst:1430 msgid "See :ref:`sqlite3-howto-encoding` for more details." msgstr "" -#: library/sqlite3.rst:1432 +#: library/sqlite3.rst:1434 msgid "" "Return the total number of database rows that have been modified, inserted, " "or deleted since the database connection was opened." msgstr "" -#: library/sqlite3.rst:1439 +#: library/sqlite3.rst:1441 msgid "Cursor objects" msgstr "" -#: library/sqlite3.rst:1441 +#: library/sqlite3.rst:1443 msgid "" "A ``Cursor`` object represents a `database cursor`_ which is used to execute " "SQL statements, and manage the context of a fetch operation. Cursors are " @@ -1727,48 +1735,48 @@ msgid "" "`connection shortcut methods `." msgstr "" -#: library/sqlite3.rst:1448 +#: library/sqlite3.rst:1450 msgid "" "Cursor objects are :term:`iterators `, meaning that if you :meth:" "`~Cursor.execute` a ``SELECT`` query, you can simply iterate over the cursor " "to fetch the resulting rows:" msgstr "" -#: library/sqlite3.rst:1459 +#: library/sqlite3.rst:1461 msgid "" "for row in cur.execute(\"SELECT t FROM data\"):\n" " print(row)" msgstr "" -#: library/sqlite3.rst:1473 +#: library/sqlite3.rst:1475 msgid "A :class:`Cursor` instance has the following attributes and methods." msgstr "" -#: library/sqlite3.rst:1480 +#: library/sqlite3.rst:1482 msgid "" "Execute a single SQL statement, optionally binding Python values using :ref:" "`placeholders `." msgstr "" -#: library/sqlite3.rst:1484 +#: library/sqlite3.rst:1486 msgid "A single SQL statement." msgstr "" -#: library/sqlite3.rst:1487 +#: library/sqlite3.rst:1489 msgid "" "Python values to bind to placeholders in *sql*. A :class:`!dict` if named " "placeholders are used. A :term:`!sequence` if unnamed placeholders are used. " "See :ref:`sqlite3-placeholders`." msgstr "" -#: library/sqlite3.rst:1494 +#: library/sqlite3.rst:1496 msgid "" "When *sql* contains more than one SQL statement. When :ref:`named " "placeholders ` are used and *parameters* is a sequence " "instead of a :class:`dict`." msgstr "" -#: library/sqlite3.rst:1499 +#: library/sqlite3.rst:1501 msgid "" "If :attr:`~Connection.autocommit` is :data:`LEGACY_TRANSACTION_CONTROL`, :" "attr:`~Connection.isolation_level` is not ``None``, *sql* is an ``INSERT``, " @@ -1776,46 +1784,46 @@ msgid "" "transaction, a transaction is implicitly opened before executing *sql*." msgstr "" -#: library/sqlite3.rst:1508 +#: library/sqlite3.rst:1510 msgid "" ":exc:`ProgrammingError` is emitted if :ref:`named placeholders ` are used and *parameters* is a sequence instead of a :class:" "`dict`." msgstr "" -#: library/sqlite3.rst:1512 +#: library/sqlite3.rst:1514 msgid "Use :meth:`executescript` to execute multiple SQL statements." msgstr "" -#: library/sqlite3.rst:1516 +#: library/sqlite3.rst:1518 msgid "" "For every item in *parameters*, repeatedly execute the :ref:`parameterized " "` :abbr:`DML (Data Manipulation Language)` SQL " "statement *sql*." msgstr "" -#: library/sqlite3.rst:1520 +#: library/sqlite3.rst:1522 msgid "Uses the same implicit transaction handling as :meth:`~Cursor.execute`." msgstr "" -#: library/sqlite3.rst:1522 +#: library/sqlite3.rst:1524 msgid "A single SQL DML statement." msgstr "" -#: library/sqlite3.rst:1525 +#: library/sqlite3.rst:1527 msgid "" "An :term:`!iterable` of parameters to bind with the placeholders in *sql*. " "See :ref:`sqlite3-placeholders`." msgstr "" -#: library/sqlite3.rst:1531 +#: library/sqlite3.rst:1533 msgid "" "When *sql* contains more than one SQL statement or is not a DML statement, " "When :ref:`named placeholders ` are used and the items " "in *parameters* are sequences instead of :class:`dict`\\s." msgstr "" -#: library/sqlite3.rst:1539 +#: library/sqlite3.rst:1541 msgid "" "rows = [\n" " (\"row1\",),\n" @@ -1825,20 +1833,20 @@ msgid "" "cur.executemany(\"INSERT INTO data VALUES(?)\", rows)" msgstr "" -#: library/sqlite3.rst:1554 +#: library/sqlite3.rst:1556 msgid "" "Any resulting rows are discarded, including DML statements with `RETURNING " "clauses`_." msgstr "" -#: library/sqlite3.rst:1561 +#: library/sqlite3.rst:1563 msgid "" ":exc:`ProgrammingError` is emitted if :ref:`named placeholders ` are used and the items in *parameters* are sequences instead " "of :class:`dict`\\s." msgstr "" -#: library/sqlite3.rst:1568 +#: library/sqlite3.rst:1570 msgid "" "Execute the SQL statements in *sql_script*. If the :attr:`~Connection." "autocommit` is :data:`LEGACY_TRANSACTION_CONTROL` and there is a pending " @@ -1847,11 +1855,11 @@ msgid "" "added to *sql_script*." msgstr "" -#: library/sqlite3.rst:1576 +#: library/sqlite3.rst:1578 msgid "*sql_script* must be a :class:`string `." msgstr "" -#: library/sqlite3.rst:1580 +#: library/sqlite3.rst:1582 msgid "" "# cur is an sqlite3.Cursor object\n" "cur.executescript(\"\"\"\n" @@ -1863,20 +1871,20 @@ msgid "" "\"\"\")" msgstr "" -#: library/sqlite3.rst:1593 +#: library/sqlite3.rst:1595 msgid "" "If :attr:`~Cursor.row_factory` is ``None``, return the next row query result " "set as a :class:`tuple`. Else, pass it to the row factory and return its " "result. Return ``None`` if no more data is available." msgstr "" -#: library/sqlite3.rst:1601 +#: library/sqlite3.rst:1603 msgid "" "Return the next set of rows of a query result as a :class:`list`. Return an " "empty list if no more rows are available." msgstr "" -#: library/sqlite3.rst:1604 +#: library/sqlite3.rst:1606 msgid "" "The number of rows to fetch per call is specified by the *size* parameter. " "If *size* is not given, :attr:`arraysize` determines the number of rows to " @@ -1884,7 +1892,7 @@ msgid "" "available are returned." msgstr "" -#: library/sqlite3.rst:1610 +#: library/sqlite3.rst:1612 msgid "" "Note there are performance considerations involved with the *size* " "parameter. For optimal performance, it is usually best to use the arraysize " @@ -1893,35 +1901,43 @@ msgid "" msgstr "" #: library/sqlite3.rst:1617 +msgid "Negative *size* values are rejected by raising :exc:`ValueError`." +msgstr "" + +#: library/sqlite3.rst:1622 msgid "" "Return all (remaining) rows of a query result as a :class:`list`. Return an " "empty list if no rows are available. Note that the :attr:`arraysize` " "attribute can affect the performance of this operation." msgstr "" -#: library/sqlite3.rst:1624 +#: library/sqlite3.rst:1629 msgid "Close the cursor now (rather than whenever ``__del__`` is called)." msgstr "" -#: library/sqlite3.rst:1626 +#: library/sqlite3.rst:1631 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 "" -#: library/sqlite3.rst:1635 +#: library/sqlite3.rst:1640 msgid "Required by the DB-API. Does nothing in :mod:`!sqlite3`." msgstr "" -#: library/sqlite3.rst:1639 +#: library/sqlite3.rst:1644 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 "" -#: library/sqlite3.rst:1644 +#: library/sqlite3.rst:1647 +msgid "Negative values are rejected by raising :exc:`ValueError`." +msgstr "" + +#: library/sqlite3.rst:1652 msgid "" "Read-only attribute that provides the SQLite database :class:`Connection` " "belonging to the cursor. A :class:`Cursor` object created by calling :meth:" @@ -1929,7 +1945,7 @@ msgid "" "that refers to *con*:" msgstr "" -#: library/sqlite3.rst:1649 +#: library/sqlite3.rst:1657 msgid "" ">>> con = sqlite3.connect(\":memory:\")\n" ">>> cur = con.cursor()\n" @@ -1938,18 +1954,18 @@ msgid "" ">>> con.close()" msgstr "" -#: library/sqlite3.rst:1659 +#: library/sqlite3.rst:1667 msgid "" "Read-only attribute that 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 ``None``." msgstr "" -#: library/sqlite3.rst:1663 +#: library/sqlite3.rst:1671 msgid "It is set for ``SELECT`` statements without any matching rows as well." msgstr "" -#: library/sqlite3.rst:1667 +#: library/sqlite3.rst:1675 msgid "" "Read-only attribute that provides the row id of the last inserted row. It is " "only updated after successful ``INSERT`` or ``REPLACE`` statements using " @@ -1959,15 +1975,15 @@ msgid "" "``None``." msgstr "" -#: library/sqlite3.rst:1675 +#: library/sqlite3.rst:1683 msgid "Inserts into ``WITHOUT ROWID`` tables are not recorded." msgstr "" -#: library/sqlite3.rst:1677 +#: library/sqlite3.rst:1685 msgid "Added support for the ``REPLACE`` statement." msgstr "" -#: library/sqlite3.rst:1682 +#: library/sqlite3.rst:1690 msgid "" "Read-only attribute that provides the number of modified rows for " "``INSERT``, ``UPDATE``, ``DELETE``, and ``REPLACE`` statements; is ``-1`` " @@ -1977,7 +1993,7 @@ msgid "" "resulting rows must be fetched in order for :attr:`!rowcount` to be updated." msgstr "" -#: library/sqlite3.rst:1693 +#: library/sqlite3.rst:1701 msgid "" "Control how a row fetched from this :class:`!Cursor` is represented. If " "``None``, a row is represented as a :class:`tuple`. Can be set to the " @@ -1986,18 +2002,18 @@ msgid "" "and returns a custom object representing an SQLite row." msgstr "" -#: library/sqlite3.rst:1700 +#: library/sqlite3.rst:1708 msgid "" "Defaults to what :attr:`Connection.row_factory` was set to when the :class:`!" "Cursor` was created. Assigning to this attribute does not affect :attr:" "`Connection.row_factory` of the parent connection." msgstr "" -#: library/sqlite3.rst:1716 +#: library/sqlite3.rst:1724 msgid "Row objects" msgstr "" -#: library/sqlite3.rst:1720 +#: library/sqlite3.rst:1728 msgid "" "A :class:`!Row` instance serves as a highly optimized :attr:`~Connection." "row_factory` for :class:`Connection` objects. It supports iteration, " @@ -2005,28 +2021,28 @@ msgid "" "index." msgstr "" -#: library/sqlite3.rst:1725 +#: library/sqlite3.rst:1733 msgid "" "Two :class:`!Row` objects compare equal if they have identical column names " "and values." msgstr "" -#: library/sqlite3.rst:1732 +#: library/sqlite3.rst:1740 msgid "" "Return a :class:`list` of column names as :class:`strings `. " "Immediately after a query, it is the first member of each tuple in :attr:" "`Cursor.description`." msgstr "" -#: library/sqlite3.rst:1736 +#: library/sqlite3.rst:1744 msgid "Added support of slicing." msgstr "" -#: library/sqlite3.rst:1743 +#: library/sqlite3.rst:1751 msgid "Blob objects" msgstr "" -#: library/sqlite3.rst:1749 +#: library/sqlite3.rst:1757 msgid "" "A :class:`Blob` instance is a :term:`file-like object` that can read and " "write data in an SQLite :abbr:`BLOB (Binary Large OBject)`. Call :func:" @@ -2034,13 +2050,13 @@ msgid "" "and :term:`slices ` for direct access to the blob data." msgstr "" -#: library/sqlite3.rst:1754 +#: library/sqlite3.rst:1762 msgid "" "Use the :class:`Blob` as a :term:`context manager` to ensure that the blob " "handle is closed after use." msgstr "" -#: library/sqlite3.rst:1757 +#: library/sqlite3.rst:1765 msgid "" "con = sqlite3.connect(\":memory:\")\n" "con.execute(\"CREATE TABLE test(blob_col blob)\")\n" @@ -2062,18 +2078,18 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:1785 +#: library/sqlite3.rst:1793 msgid "Close the blob." msgstr "" -#: library/sqlite3.rst:1787 +#: library/sqlite3.rst:1795 msgid "" "The blob will be unusable from this point onward. An :class:`~sqlite3." "Error` (or subclass) exception will be raised if any further operation is " "attempted with the blob." msgstr "" -#: library/sqlite3.rst:1793 +#: library/sqlite3.rst:1801 msgid "" "Read *length* bytes of data from the blob at the current offset position. If " "the end of the blob is reached, the data up to :abbr:`EOF (End of File)` " @@ -2081,18 +2097,18 @@ msgid "" "`~Blob.read` will read until the end of the blob." msgstr "" -#: library/sqlite3.rst:1801 +#: library/sqlite3.rst:1809 msgid "" "Write *data* to the blob at the current offset. This function cannot change " "the blob length. Writing beyond the end of the blob will raise :exc:" "`ValueError`." msgstr "" -#: library/sqlite3.rst:1807 +#: library/sqlite3.rst:1815 msgid "Return the current access position of the blob." msgstr "" -#: library/sqlite3.rst:1811 +#: library/sqlite3.rst:1819 msgid "" "Set the current access position of the blob to *offset*. The *origin* " "argument defaults to :const:`os.SEEK_SET` (absolute blob positioning). Other " @@ -2100,26 +2116,26 @@ msgid "" "position) and :const:`os.SEEK_END` (seek relative to the blob’s end)." msgstr "" -#: library/sqlite3.rst:1819 +#: library/sqlite3.rst:1827 msgid "PrepareProtocol objects" msgstr "" -#: library/sqlite3.rst:1823 +#: library/sqlite3.rst:1831 msgid "" "The PrepareProtocol type's single purpose is to act as a :pep:`246` style " "adaption protocol for objects that can :ref:`adapt themselves ` to :ref:`native SQLite types `." msgstr "" -#: library/sqlite3.rst:1831 +#: library/sqlite3.rst:1839 msgid "Exceptions" msgstr "" -#: library/sqlite3.rst:1833 +#: library/sqlite3.rst:1841 msgid "The exception hierarchy is defined by the DB-API 2.0 (:pep:`249`)." msgstr "" -#: library/sqlite3.rst:1837 +#: library/sqlite3.rst:1845 msgid "" "This exception is not currently raised by the :mod:`!sqlite3` module, but " "may be raised by applications using :mod:`!sqlite3`, for example if a user-" @@ -2127,39 +2143,39 @@ msgid "" "of :exc:`Exception`." msgstr "" -#: library/sqlite3.rst:1844 +#: library/sqlite3.rst:1852 msgid "" "The base class of the other exceptions in this module. Use this to catch all " "errors with one single :keyword:`except` statement. ``Error`` is a subclass " "of :exc:`Exception`." msgstr "" -#: library/sqlite3.rst:1848 +#: library/sqlite3.rst:1856 msgid "" "If the exception originated from within the SQLite library, the following " "two attributes are added to the exception:" msgstr "" -#: library/sqlite3.rst:1853 +#: library/sqlite3.rst:1861 msgid "" "The numeric error code from the `SQLite API `_" msgstr "" -#: library/sqlite3.rst:1860 +#: library/sqlite3.rst:1868 msgid "" "The symbolic name of the numeric error code from the `SQLite API `_" msgstr "" -#: library/sqlite3.rst:1867 +#: library/sqlite3.rst:1875 msgid "" "Exception raised for misuse of the low-level SQLite C API. In other words, " "if this exception is raised, it probably indicates a bug in the :mod:`!" "sqlite3` module. ``InterfaceError`` is a subclass of :exc:`Error`." msgstr "" -#: library/sqlite3.rst:1874 +#: library/sqlite3.rst:1882 msgid "" "Exception raised for errors that are related to the database. This serves as " "the base exception for several types of database errors. It is only raised " @@ -2167,14 +2183,14 @@ msgid "" "subclass of :exc:`Error`." msgstr "" -#: library/sqlite3.rst:1881 +#: library/sqlite3.rst:1889 msgid "" "Exception raised for errors caused by problems with the processed data, like " "numeric values out of range, and strings which are too long. ``DataError`` " "is a subclass of :exc:`DatabaseError`." msgstr "" -#: library/sqlite3.rst:1887 +#: library/sqlite3.rst:1895 msgid "" "Exception raised for errors that are related to the database's operation, " "and not necessarily under the control of the programmer. For example, the " @@ -2182,20 +2198,20 @@ msgid "" "``OperationalError`` is a subclass of :exc:`DatabaseError`." msgstr "" -#: library/sqlite3.rst:1895 +#: library/sqlite3.rst:1903 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 "" -#: library/sqlite3.rst:1900 +#: library/sqlite3.rst:1908 msgid "" "Exception raised when SQLite encounters an internal error. If this is " "raised, it may indicate that there is a problem with the runtime SQLite " "library. ``InternalError`` is a subclass of :exc:`DatabaseError`." msgstr "" -#: library/sqlite3.rst:1907 +#: library/sqlite3.rst:1915 msgid "" "Exception raised for :mod:`!sqlite3` API programming errors, for example " "supplying the wrong number of bindings to a query, or trying to operate on a " @@ -2203,7 +2219,7 @@ msgid "" "`DatabaseError`." msgstr "" -#: library/sqlite3.rst:1914 +#: library/sqlite3.rst:1922 msgid "" "Exception raised in case a method or database API is not supported by the " "underlying SQLite library. For example, setting *deterministic* to ``True`` " @@ -2212,78 +2228,78 @@ msgid "" "subclass of :exc:`DatabaseError`." msgstr "" -#: library/sqlite3.rst:1924 +#: library/sqlite3.rst:1932 msgid "SQLite and Python types" msgstr "" -#: library/sqlite3.rst:1926 +#: library/sqlite3.rst:1934 msgid "" "SQLite natively supports the following types: ``NULL``, ``INTEGER``, " "``REAL``, ``TEXT``, ``BLOB``." msgstr "" -#: library/sqlite3.rst:1929 +#: library/sqlite3.rst:1937 msgid "" "The following Python types can thus be sent to SQLite without any problem:" msgstr "" -#: library/sqlite3.rst:1949 +#: library/sqlite3.rst:1957 msgid "Python type" msgstr "" -#: library/sqlite3.rst:1949 +#: library/sqlite3.rst:1957 msgid "SQLite type" msgstr "" -#: library/sqlite3.rst:1951 +#: library/sqlite3.rst:1959 msgid "``None``" msgstr "" -#: library/sqlite3.rst:1951 +#: library/sqlite3.rst:1959 msgid "``NULL``" msgstr "" -#: library/sqlite3.rst:1953 +#: library/sqlite3.rst:1961 msgid ":class:`int`" msgstr "" -#: library/sqlite3.rst:1953 +#: library/sqlite3.rst:1961 msgid "``INTEGER``" msgstr "" -#: library/sqlite3.rst:1955 +#: library/sqlite3.rst:1963 msgid ":class:`float`" msgstr "" -#: library/sqlite3.rst:1955 +#: library/sqlite3.rst:1963 msgid "``REAL``" msgstr "" -#: library/sqlite3.rst:1940 +#: library/sqlite3.rst:1948 msgid ":class:`str`" msgstr "" -#: library/sqlite3.rst:1957 +#: library/sqlite3.rst:1965 msgid "``TEXT``" msgstr "" -#: library/sqlite3.rst:1960 +#: library/sqlite3.rst:1968 msgid ":class:`bytes`" msgstr "" -#: library/sqlite3.rst:1960 +#: library/sqlite3.rst:1968 msgid "``BLOB``" msgstr "" -#: library/sqlite3.rst:1946 +#: library/sqlite3.rst:1954 msgid "This is how SQLite types are converted to Python types by default:" msgstr "" -#: library/sqlite3.rst:1957 +#: library/sqlite3.rst:1965 msgid "depends on :attr:`~Connection.text_factory`, :class:`str` by default" msgstr "" -#: library/sqlite3.rst:1963 +#: library/sqlite3.rst:1971 msgid "" "The type system of the :mod:`!sqlite3` module is extensible in two ways: you " "can store additional Python types in an SQLite database via :ref:`object " @@ -2292,47 +2308,47 @@ msgid "" "converters>`." msgstr "" -#: library/sqlite3.rst:1973 +#: library/sqlite3.rst:1981 msgid "Default adapters and converters (deprecated)" msgstr "" -#: library/sqlite3.rst:1977 +#: library/sqlite3.rst:1985 msgid "" "The default adapters and converters are deprecated as of Python 3.12. " "Instead, use the :ref:`sqlite3-adapter-converter-recipes` and tailor them to " "your needs." msgstr "" -#: library/sqlite3.rst:1981 +#: library/sqlite3.rst:1989 msgid "The deprecated default adapters and converters consist of:" msgstr "" -#: library/sqlite3.rst:1983 +#: library/sqlite3.rst:1991 msgid "" "An adapter for :class:`datetime.date` objects to :class:`strings ` in " "`ISO 8601`_ format." msgstr "" -#: library/sqlite3.rst:1985 +#: library/sqlite3.rst:1993 msgid "" "An adapter for :class:`datetime.datetime` objects to strings in ISO 8601 " "format." msgstr "" -#: library/sqlite3.rst:1987 +#: library/sqlite3.rst:1995 msgid "" "A converter for :ref:`declared ` \"date\" types to :" "class:`datetime.date` objects." msgstr "" -#: library/sqlite3.rst:1989 +#: library/sqlite3.rst:1997 msgid "" "A converter for declared \"timestamp\" types to :class:`datetime.datetime` " "objects. Fractional parts will be truncated to 6 digits (microsecond " "precision)." msgstr "" -#: library/sqlite3.rst:1995 +#: library/sqlite3.rst:2003 msgid "" "The default \"timestamp\" converter ignores UTC offsets in the database and " "always returns a naive :class:`datetime.datetime` object. To preserve UTC " @@ -2340,42 +2356,42 @@ msgid "" "offset-aware converter with :func:`register_converter`." msgstr "" -#: library/sqlite3.rst:2008 +#: library/sqlite3.rst:2016 msgid "Command-line interface" msgstr "" -#: library/sqlite3.rst:2010 +#: library/sqlite3.rst:2018 msgid "" "The :mod:`!sqlite3` module can be invoked as a script, using the " "interpreter's :option:`-m` switch, in order to provide a simple SQLite " "shell. The argument signature is as follows::" msgstr "" -#: library/sqlite3.rst:2015 +#: library/sqlite3.rst:2023 msgid "python -m sqlite3 [-h] [-v] [filename] [sql]" msgstr "" -#: library/sqlite3.rst:2017 +#: library/sqlite3.rst:2025 msgid "Type ``.quit`` or CTRL-D to exit the shell." msgstr "" -#: library/sqlite3.rst:2023 +#: library/sqlite3.rst:2031 msgid "Print CLI help." msgstr "" -#: library/sqlite3.rst:2027 +#: library/sqlite3.rst:2035 msgid "Print underlying SQLite library version." msgstr "" -#: library/sqlite3.rst:2035 +#: library/sqlite3.rst:2043 msgid "How-to guides" msgstr "" -#: library/sqlite3.rst:2040 +#: library/sqlite3.rst:2048 msgid "How to use placeholders to bind values in SQL queries" msgstr "" -#: library/sqlite3.rst:2042 +#: library/sqlite3.rst:2050 msgid "" "SQL operations usually need to use values from Python variables. However, " "beware of using Python's string operations to assemble queries, as they are " @@ -2383,7 +2399,7 @@ msgid "" "close the single quote and inject ``OR TRUE`` to select all rows::" msgstr "" -#: library/sqlite3.rst:2047 +#: library/sqlite3.rst:2055 msgid "" ">>> # Never do this -- insecure!\n" ">>> symbol = input()\n" @@ -2394,7 +2410,7 @@ msgid "" ">>> cur.execute(sql)" msgstr "" -#: library/sqlite3.rst:2055 +#: library/sqlite3.rst:2063 msgid "" "Instead, use the DB-API's parameter substitution. To insert a variable into " "a query string, use a placeholder in the string, and substitute the actual " @@ -2402,7 +2418,7 @@ msgid "" "second argument of the cursor's :meth:`~Cursor.execute` method." msgstr "" -#: library/sqlite3.rst:2060 +#: library/sqlite3.rst:2068 msgid "" "An SQL statement may use one of two kinds of placeholders: question marks " "(qmark style) or named placeholders (named style). For the qmark style, " @@ -2413,7 +2429,7 @@ msgid "" "ignored. Here's an example of both styles:" msgstr "" -#: library/sqlite3.rst:2071 +#: library/sqlite3.rst:2079 msgid "" "con = sqlite3.connect(\":memory:\")\n" "cur = con.execute(\"CREATE TABLE lang(name, first_appeared)\")\n" @@ -2434,24 +2450,24 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:2098 +#: library/sqlite3.rst:2106 msgid "" ":pep:`249` numeric placeholders are *not* supported. If used, they will be " "interpreted as named placeholders." msgstr "" -#: library/sqlite3.rst:2105 +#: library/sqlite3.rst:2113 msgid "How to adapt custom Python types to SQLite values" msgstr "" -#: library/sqlite3.rst:2107 +#: library/sqlite3.rst:2115 msgid "" "SQLite supports only a limited set of data types natively. To store custom " "Python types in SQLite databases, *adapt* them to one of the :ref:`Python " "types SQLite natively understands `." msgstr "" -#: library/sqlite3.rst:2111 +#: library/sqlite3.rst:2119 msgid "" "There are two ways to adapt Python objects to SQLite types: letting your " "object adapt itself, or using an *adapter callable*. The latter will take " @@ -2461,11 +2477,11 @@ msgid "" "custom adapter functions." msgstr "" -#: library/sqlite3.rst:2123 +#: library/sqlite3.rst:2131 msgid "How to write adaptable objects" msgstr "" -#: library/sqlite3.rst:2125 +#: library/sqlite3.rst:2133 msgid "" "Suppose we have a :class:`!Point` class that represents a pair of " "coordinates, ``x`` and ``y``, in a Cartesian coordinate system. The " @@ -2475,7 +2491,7 @@ msgid "" "object passed to *protocol* will be of type :class:`PrepareProtocol`." msgstr "" -#: library/sqlite3.rst:2133 +#: library/sqlite3.rst:2141 msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -2493,18 +2509,18 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:2157 +#: library/sqlite3.rst:2165 msgid "How to register adapter callables" msgstr "" -#: library/sqlite3.rst:2159 +#: library/sqlite3.rst:2167 msgid "" "The other possibility is to create a function that converts the Python " "object to an SQLite-compatible type. This function can then be registered " "using :func:`register_adapter`." msgstr "" -#: library/sqlite3.rst:2163 +#: library/sqlite3.rst:2171 msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -2523,68 +2539,68 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:2190 +#: library/sqlite3.rst:2198 msgid "How to convert SQLite values to custom Python types" msgstr "" -#: library/sqlite3.rst:2192 +#: library/sqlite3.rst:2200 msgid "" "Writing an adapter lets you convert *from* custom Python types *to* SQLite " "values. To be able to convert *from* SQLite values *to* custom Python types, " "we use *converters*." msgstr "" -#: library/sqlite3.rst:2197 +#: library/sqlite3.rst:2205 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 "" -#: library/sqlite3.rst:2200 +#: library/sqlite3.rst:2208 msgid "" "First, we'll define a converter function that accepts the string as a " "parameter and constructs a :class:`!Point` object from it." msgstr "" -#: library/sqlite3.rst:2205 +#: library/sqlite3.rst:2213 msgid "" "Converter functions are **always** passed a :class:`bytes` object, no matter " "the underlying SQLite data type." msgstr "" -#: library/sqlite3.rst:2208 +#: library/sqlite3.rst:2216 msgid "" "def convert_point(s):\n" " x, y = map(float, s.split(b\";\"))\n" " return Point(x, y)" msgstr "" -#: library/sqlite3.rst:2214 +#: library/sqlite3.rst:2222 msgid "" "We now need to tell :mod:`!sqlite3` when it should convert a given SQLite " "value. This is done when connecting to a database, using the *detect_types* " "parameter of :func:`connect`. There are three options:" msgstr "" -#: library/sqlite3.rst:2218 +#: library/sqlite3.rst:2226 msgid "Implicit: set *detect_types* to :const:`PARSE_DECLTYPES`" msgstr "" -#: library/sqlite3.rst:2219 +#: library/sqlite3.rst:2227 msgid "Explicit: set *detect_types* to :const:`PARSE_COLNAMES`" msgstr "" -#: library/sqlite3.rst:2220 +#: library/sqlite3.rst:2228 msgid "" "Both: set *detect_types* to ``sqlite3.PARSE_DECLTYPES | sqlite3." "PARSE_COLNAMES``. Column names take precedence over declared types." msgstr "" -#: library/sqlite3.rst:2224 +#: library/sqlite3.rst:2232 msgid "The following example illustrates the implicit and explicit approaches:" msgstr "" -#: library/sqlite3.rst:2226 +#: library/sqlite3.rst:2234 msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -2626,15 +2642,15 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:2277 +#: library/sqlite3.rst:2285 msgid "Adapter and converter recipes" msgstr "" -#: library/sqlite3.rst:2279 +#: library/sqlite3.rst:2287 msgid "This section shows recipes for common adapters and converters." msgstr "" -#: library/sqlite3.rst:2281 +#: library/sqlite3.rst:2289 msgid "" "import datetime\n" "import sqlite3\n" @@ -2645,7 +2661,7 @@ msgid "" "\n" "def adapt_datetime_iso(val):\n" " \"\"\"Adapt datetime.datetime to timezone-naive ISO 8601 date.\"\"\"\n" -" return val.isoformat()\n" +" return val.replace(tzinfo=None).isoformat()\n" "\n" "def adapt_datetime_epoch(val):\n" " \"\"\"Adapt datetime.datetime to Unix timestamp.\"\"\"\n" @@ -2672,11 +2688,11 @@ msgid "" "sqlite3.register_converter(\"timestamp\", convert_timestamp)" msgstr "" -#: library/sqlite3.rst:2341 +#: library/sqlite3.rst:2349 msgid "How to use connection shortcut methods" msgstr "" -#: library/sqlite3.rst:2343 +#: library/sqlite3.rst:2351 msgid "" "Using the :meth:`~Connection.execute`, :meth:`~Connection.executemany`, and :" "meth:`~Connection.executescript` methods of the :class:`Connection` class, " @@ -2688,7 +2704,7 @@ msgid "" "object." msgstr "" -#: library/sqlite3.rst:2352 +#: library/sqlite3.rst:2360 msgid "" "# Create and fill the table.\n" "con = sqlite3.connect(\":memory:\")\n" @@ -2712,11 +2728,11 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:2384 +#: library/sqlite3.rst:2392 msgid "How to use the connection context manager" msgstr "" -#: library/sqlite3.rst:2386 +#: library/sqlite3.rst:2394 msgid "" "A :class:`Connection` object can be used as a context manager that " "automatically commits or rolls back open transactions when leaving the body " @@ -2728,21 +2744,21 @@ msgid "" "rolling back." msgstr "" -#: library/sqlite3.rst:2397 +#: library/sqlite3.rst:2405 msgid "" "If there is no open transaction upon leaving the body of the ``with`` " "statement, or if :attr:`~Connection.autocommit` is ``True``, the context " "manager does nothing." msgstr "" -#: library/sqlite3.rst:2402 +#: library/sqlite3.rst:2410 msgid "" "The context manager neither implicitly opens a new transaction nor closes " "the connection. If you need a closing context manager, consider using :meth:" "`contextlib.closing`." msgstr "" -#: library/sqlite3.rst:2406 +#: library/sqlite3.rst:2414 msgid "" "con = sqlite3.connect(\":memory:\")\n" "con.execute(\"CREATE TABLE lang(id INTEGER PRIMARY KEY, name VARCHAR " @@ -2766,19 +2782,19 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:2436 +#: library/sqlite3.rst:2444 msgid "How to work with SQLite URIs" msgstr "" -#: library/sqlite3.rst:2438 +#: library/sqlite3.rst:2446 msgid "Some useful URI tricks include:" msgstr "" -#: library/sqlite3.rst:2440 +#: library/sqlite3.rst:2448 msgid "Open a database in read-only mode:" msgstr "" -#: library/sqlite3.rst:2442 +#: library/sqlite3.rst:2450 msgid "" ">>> con = sqlite3.connect(\"file:tutorial.db?mode=ro\", uri=True)\n" ">>> con.execute(\"CREATE TABLE readonly(data)\")\n" @@ -2787,24 +2803,24 @@ msgid "" ">>> con.close()" msgstr "" -#: library/sqlite3.rst:2450 +#: library/sqlite3.rst:2458 msgid "" "Do not implicitly create a new database file if it does not already exist; " "will raise :exc:`~sqlite3.OperationalError` if unable to create a new file:" msgstr "" -#: library/sqlite3.rst:2453 +#: library/sqlite3.rst:2461 msgid "" ">>> con = sqlite3.connect(\"file:nosuchdb.db?mode=rw\", uri=True)\n" "Traceback (most recent call last):\n" "OperationalError: unable to open database file" msgstr "" -#: library/sqlite3.rst:2460 +#: library/sqlite3.rst:2468 msgid "Create a shared named in-memory database:" msgstr "" -#: library/sqlite3.rst:2462 +#: library/sqlite3.rst:2470 msgid "" "db = \"file:mem1?mode=memory&cache=shared\"\n" "con1 = sqlite3.connect(db, uri=True)\n" @@ -2819,24 +2835,24 @@ msgid "" "con2.close()" msgstr "" -#: library/sqlite3.rst:2476 +#: library/sqlite3.rst:2484 msgid "" "More information about this feature, including a list of parameters, can be " "found in the `SQLite URI documentation`_." msgstr "" -#: library/sqlite3.rst:2485 +#: library/sqlite3.rst:2493 msgid "How to create and use row factories" msgstr "" -#: library/sqlite3.rst:2487 +#: library/sqlite3.rst:2495 msgid "" "By default, :mod:`!sqlite3` represents each row as a :class:`tuple`. If a :" "class:`!tuple` does not suit your needs, you can use the :class:`sqlite3." "Row` class or a custom :attr:`~Cursor.row_factory`." msgstr "" -#: library/sqlite3.rst:2492 +#: library/sqlite3.rst:2500 msgid "" "While :attr:`!row_factory` exists as an attribute both on the :class:" "`Cursor` and the :class:`Connection`, it is recommended to set :class:" @@ -2844,7 +2860,7 @@ msgid "" "use the same row factory." msgstr "" -#: library/sqlite3.rst:2497 +#: library/sqlite3.rst:2505 msgid "" ":class:`!Row` provides indexed and case-insensitive named access to columns, " "with minimal memory overhead and performance impact over a :class:`!tuple`. " @@ -2852,17 +2868,17 @@ msgid "" "attribute:" msgstr "" -#: library/sqlite3.rst:2502 +#: library/sqlite3.rst:2510 msgid "" ">>> con = sqlite3.connect(\":memory:\")\n" ">>> con.row_factory = sqlite3.Row" msgstr "" -#: library/sqlite3.rst:2507 +#: library/sqlite3.rst:2515 msgid "Queries now return :class:`!Row` objects:" msgstr "" -#: library/sqlite3.rst:2509 +#: library/sqlite3.rst:2517 msgid "" ">>> res = con.execute(\"SELECT 'Earth' AS name, 6378 AS radius\")\n" ">>> row = res.fetchone()\n" @@ -2877,7 +2893,7 @@ msgid "" ">>> con.close()" msgstr "" -#: library/sqlite3.rst:2525 +#: library/sqlite3.rst:2533 msgid "" "The ``FROM`` clause can be omitted in the ``SELECT`` statement, as in the " "above example. In such cases, SQLite returns a single row with columns " @@ -2885,25 +2901,25 @@ msgid "" "alias``." msgstr "" -#: library/sqlite3.rst:2530 +#: library/sqlite3.rst:2538 msgid "" "You can create a custom :attr:`~Cursor.row_factory` that returns each row as " "a :class:`dict`, with column names mapped to values:" msgstr "" -#: library/sqlite3.rst:2533 +#: library/sqlite3.rst:2541 msgid "" "def dict_factory(cursor, row):\n" " fields = [column[0] for column in cursor.description]\n" " return {key: value for key, value in zip(fields, row)}" msgstr "" -#: library/sqlite3.rst:2539 +#: library/sqlite3.rst:2547 msgid "" "Using it, queries now return a :class:`!dict` instead of a :class:`!tuple`:" msgstr "" -#: library/sqlite3.rst:2541 +#: library/sqlite3.rst:2549 msgid "" ">>> con = sqlite3.connect(\":memory:\")\n" ">>> con.row_factory = dict_factory\n" @@ -2913,11 +2929,11 @@ msgid "" ">>> con.close()" msgstr "" -#: library/sqlite3.rst:2550 +#: library/sqlite3.rst:2558 msgid "The following row factory returns a :term:`named tuple`:" msgstr "" -#: library/sqlite3.rst:2552 +#: library/sqlite3.rst:2560 msgid "" "from collections import namedtuple\n" "\n" @@ -2927,11 +2943,11 @@ msgid "" " return cls._make(row)" msgstr "" -#: library/sqlite3.rst:2561 +#: library/sqlite3.rst:2569 msgid ":func:`!namedtuple_factory` can be used as follows:" msgstr "" -#: library/sqlite3.rst:2563 +#: library/sqlite3.rst:2571 msgid "" ">>> con = sqlite3.connect(\":memory:\")\n" ">>> con.row_factory = namedtuple_factory\n" @@ -2946,18 +2962,18 @@ msgid "" ">>> con.close()" msgstr "" -#: library/sqlite3.rst:2577 +#: library/sqlite3.rst:2585 msgid "" "With some adjustments, the above recipe can be adapted to use a :class:" "`~dataclasses.dataclass`, or any other custom class, instead of a :class:" "`~collections.namedtuple`." msgstr "" -#: library/sqlite3.rst:2585 +#: library/sqlite3.rst:2593 msgid "How to handle non-UTF-8 text encodings" msgstr "" -#: library/sqlite3.rst:2587 +#: library/sqlite3.rst:2595 msgid "" "By default, :mod:`!sqlite3` uses :class:`str` to adapt SQLite values with " "the ``TEXT`` data type. This works well for UTF-8 encoded text, but it might " @@ -2965,7 +2981,7 @@ msgid "" "`~Connection.text_factory` to handle such cases." msgstr "" -#: library/sqlite3.rst:2593 +#: library/sqlite3.rst:2601 msgid "" "Because of SQLite's `flexible typing`_, it is not uncommon to encounter " "table columns with the ``TEXT`` data type containing non-UTF-8 encodings, or " @@ -2976,39 +2992,39 @@ msgid "" "text using this :attr:`~Connection.text_factory`:" msgstr "" -#: library/sqlite3.rst:2602 +#: library/sqlite3.rst:2610 msgid "con.text_factory = lambda data: str(data, encoding=\"latin2\")" msgstr "" -#: library/sqlite3.rst:2606 +#: library/sqlite3.rst:2614 msgid "" "For invalid UTF-8 or arbitrary data in stored in ``TEXT`` table columns, you " "can use the following technique, borrowed from the :ref:`unicode-howto`:" msgstr "" -#: library/sqlite3.rst:2609 +#: library/sqlite3.rst:2617 msgid "con.text_factory = lambda data: str(data, errors=\"surrogateescape\")" msgstr "" -#: library/sqlite3.rst:2615 +#: library/sqlite3.rst:2623 msgid "" "The :mod:`!sqlite3` module API does not support strings containing " "surrogates." msgstr "" -#: library/sqlite3.rst:2620 +#: library/sqlite3.rst:2628 msgid ":ref:`unicode-howto`" msgstr "" -#: library/sqlite3.rst:2626 +#: library/sqlite3.rst:2634 msgid "Explanation" msgstr "" -#: library/sqlite3.rst:2632 +#: library/sqlite3.rst:2640 msgid "Transaction control" msgstr "" -#: library/sqlite3.rst:2634 +#: library/sqlite3.rst:2642 msgid "" ":mod:`!sqlite3` offers multiple methods of controlling whether, when and how " "database transactions are opened and closed. :ref:`sqlite3-transaction-" @@ -3016,24 +3032,24 @@ msgid "" "isolation-level` retains the pre-Python 3.12 behaviour." msgstr "" -#: library/sqlite3.rst:2643 +#: library/sqlite3.rst:2651 msgid "Transaction control via the ``autocommit`` attribute" msgstr "" -#: library/sqlite3.rst:2645 +#: library/sqlite3.rst:2653 msgid "" "The recommended way of controlling transaction behaviour is through the :" "attr:`Connection.autocommit` attribute, which should preferably be set using " "the *autocommit* parameter of :func:`connect`." msgstr "" -#: library/sqlite3.rst:2650 +#: library/sqlite3.rst:2658 msgid "" "It is suggested to set *autocommit* to ``False``, which implies :pep:`249`-" "compliant transaction control. This means:" msgstr "" -#: library/sqlite3.rst:2654 +#: library/sqlite3.rst:2662 msgid "" ":mod:`!sqlite3` ensures that a transaction is always open, so :func:" "`connect`, :meth:`Connection.commit`, and :meth:`Connection.rollback` will " @@ -3042,21 +3058,21 @@ msgid "" "when opening transactions." msgstr "" -#: library/sqlite3.rst:2659 +#: library/sqlite3.rst:2667 msgid "Transactions should be committed explicitly using :meth:`!commit`." msgstr "" -#: library/sqlite3.rst:2660 +#: library/sqlite3.rst:2668 msgid "Transactions should be rolled back explicitly using :meth:`!rollback`." msgstr "" -#: library/sqlite3.rst:2661 +#: library/sqlite3.rst:2669 msgid "" "An implicit rollback is performed if the database is :meth:`~Connection." "close`-ed with pending changes." msgstr "" -#: library/sqlite3.rst:2664 +#: library/sqlite3.rst:2672 msgid "" "Set *autocommit* to ``True`` to enable SQLite's `autocommit mode`_. In this " "mode, :meth:`Connection.commit` and :meth:`Connection.rollback` have no " @@ -3065,25 +3081,25 @@ msgid "" "in_transaction` to query the low-level SQLite autocommit mode." msgstr "" -#: library/sqlite3.rst:2672 +#: library/sqlite3.rst:2680 msgid "" "Set *autocommit* to :data:`LEGACY_TRANSACTION_CONTROL` to leave transaction " "control behaviour to the :attr:`Connection.isolation_level` attribute. See :" "ref:`sqlite3-transaction-control-isolation-level` for more information." msgstr "" -#: library/sqlite3.rst:2681 +#: library/sqlite3.rst:2689 msgid "Transaction control via the ``isolation_level`` attribute" msgstr "" -#: library/sqlite3.rst:2685 +#: library/sqlite3.rst:2693 msgid "" "The recommended way of controlling transactions is via the :attr:" "`~Connection.autocommit` attribute. See :ref:`sqlite3-transaction-control-" "autocommit`." msgstr "" -#: library/sqlite3.rst:2689 +#: library/sqlite3.rst:2697 msgid "" "If :attr:`Connection.autocommit` is set to :data:" "`LEGACY_TRANSACTION_CONTROL` (the default), transaction behaviour is " @@ -3091,7 +3107,7 @@ msgid "" "Otherwise, :attr:`!isolation_level` has no effect." msgstr "" -#: library/sqlite3.rst:2695 +#: library/sqlite3.rst:2703 msgid "" "If the connection attribute :attr:`~Connection.isolation_level` is not " "``None``, new transactions are implicitly opened before :meth:`~Cursor." @@ -3105,7 +3121,7 @@ msgid "" "attribute." msgstr "" -#: library/sqlite3.rst:2708 +#: library/sqlite3.rst:2716 msgid "" "If :attr:`~Connection.isolation_level` is set to ``None``, no transactions " "are implicitly opened at all. This leaves the underlying SQLite library in " @@ -3115,33 +3131,33 @@ msgid "" "in_transaction` attribute." msgstr "" -#: library/sqlite3.rst:2716 +#: library/sqlite3.rst:2724 msgid "" "The :meth:`~Cursor.executescript` method implicitly commits any pending " "transaction before execution of the given SQL script, regardless of the " "value of :attr:`~Connection.isolation_level`." msgstr "" -#: library/sqlite3.rst:2720 +#: library/sqlite3.rst:2728 msgid "" ":mod:`!sqlite3` used to implicitly commit an open transaction before DDL " "statements. This is no longer the case." msgstr "" -#: library/sqlite3.rst:2724 +#: library/sqlite3.rst:2732 msgid "" "The recommended way of controlling transactions is now via the :attr:" "`~Connection.autocommit` attribute." msgstr "" -#: library/sqlite3.rst:1475 +#: library/sqlite3.rst:1477 msgid "? (question mark)" msgstr "" -#: library/sqlite3.rst:1476 +#: library/sqlite3.rst:1478 msgid "in SQL statements" msgstr "" -#: library/sqlite3.rst:1476 +#: library/sqlite3.rst:1478 msgid ": (colon)" msgstr "" diff --git a/library/ssl.po b/library/ssl.po index 6104b7ea..cc9618a9 100644 --- a/library/ssl.po +++ b/library/ssl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,12 +30,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, macOS, " -"and probably additional platforms, as long as OpenSSL is installed on that " -"platform." +"OpenSSL library." +msgstr "" + +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." msgstr "" -#: library/ssl.rst:26 +#: library/ssl.rst:27 msgid "" "Some behavior may be platform dependent, since calls are made to the " "operating system socket APIs. The installed version of OpenSSL may also " @@ -43,14 +49,14 @@ msgid "" "version 1.1.1." msgstr "" -#: library/ssl.rst:32 +#: library/ssl.rst:33 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 "" -#: library/ssl.rst:469 includes/wasm-notavail.rst:3 +#: library/ssl.rst:471 includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" @@ -60,14 +66,14 @@ msgid "" "availability` for more information." msgstr "" -#: library/ssl.rst:38 +#: library/ssl.rst:39 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 "" -#: library/ssl.rst:42 +#: library/ssl.rst:43 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 " @@ -79,54 +85,54 @@ msgid "" "certificate chain." msgstr "" -#: library/ssl.rst:51 +#: library/ssl.rst:52 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 "" -#: library/ssl.rst:55 +#: library/ssl.rst:56 msgid "Updated to support linking with OpenSSL 1.1.0" msgstr "" -#: library/ssl.rst:60 +#: library/ssl.rst:61 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 "" -#: library/ssl.rst:66 +#: library/ssl.rst:67 msgid "" ":pep:`644` has been implemented. The ssl module requires OpenSSL 1.1.1 or " "newer." msgstr "" -#: library/ssl.rst:69 +#: library/ssl.rst:70 msgid "" "Use of deprecated constants and functions result in deprecation warnings." msgstr "" -#: library/ssl.rst:73 +#: library/ssl.rst:74 msgid "Functions, Constants, and Exceptions" msgstr "" -#: library/ssl.rst:77 +#: library/ssl.rst:78 msgid "Socket creation" msgstr "" -#: library/ssl.rst:79 +#: library/ssl.rst:80 msgid "" "Instances of :class:`SSLSocket` must be created using the :meth:`SSLContext." "wrap_socket` method. The helper function :func:`create_default_context` " "returns a new context with secure default settings." msgstr "" -#: library/ssl.rst:84 +#: library/ssl.rst:85 msgid "Client socket example with default context and IPv4/IPv6 dual stack::" msgstr "" -#: library/ssl.rst:86 +#: library/ssl.rst:87 msgid "" "import socket\n" "import ssl\n" @@ -139,11 +145,11 @@ msgid "" " print(ssock.version())" msgstr "" -#: library/ssl.rst:97 +#: library/ssl.rst:98 msgid "Client socket example with custom context and IPv4::" msgstr "" -#: library/ssl.rst:99 +#: library/ssl.rst:100 msgid "" "hostname = 'www.python.org'\n" "# PROTOCOL_TLS_CLIENT requires valid cert chain and hostname\n" @@ -155,11 +161,11 @@ msgid "" " print(ssock.version())" msgstr "" -#: library/ssl.rst:109 +#: library/ssl.rst:110 msgid "Server socket example listening on localhost IPv4::" msgstr "" -#: library/ssl.rst:111 +#: library/ssl.rst:112 msgid "" "context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)\n" "context.load_cert_chain('/path/to/certchain.pem', '/path/to/private.key')\n" @@ -172,17 +178,17 @@ msgid "" " ..." msgstr "" -#: library/ssl.rst:123 +#: library/ssl.rst:124 msgid "Context creation" msgstr "" -#: library/ssl.rst:125 +#: library/ssl.rst:126 msgid "" "A convenience function helps create :class:`SSLContext` objects for common " "purposes." msgstr "" -#: library/ssl.rst:130 +#: library/ssl.rst:132 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 " @@ -190,7 +196,7 @@ msgid "" "constructor directly." msgstr "" -#: library/ssl.rst:135 +#: library/ssl.rst:137 msgid "" "*cafile*, *capath*, *cadata* represent optional CA certificates to trust for " "certificate verification, as in :meth:`SSLContext.load_verify_locations`. " @@ -198,7 +204,7 @@ msgid "" "system's default CA certificates instead." msgstr "" -#: library/ssl.rst:141 +#: library/ssl.rst:143 msgid "" "The settings are: :data:`PROTOCOL_TLS_CLIENT` or :data:" "`PROTOCOL_TLS_SERVER`, :data:`OP_NO_SSLv2`, and :data:`OP_NO_SSLv3` with " @@ -210,14 +216,14 @@ msgid "" "certificates." msgstr "" -#: library/ssl.rst:150 +#: library/ssl.rst:152 msgid "" "When :attr:`~SSLContext.keylog_filename` is supported and the environment " "variable :envvar:`SSLKEYLOGFILE` is set, :func:`create_default_context` " "enables key logging." msgstr "" -#: library/ssl.rst:154 +#: library/ssl.rst:156 msgid "" "The default settings for this context include :data:" "`VERIFY_X509_PARTIAL_CHAIN` and :data:`VERIFY_X509_STRICT`. These make the " @@ -226,20 +232,20 @@ msgid "" "incompatibility with older X.509 certificates." msgstr "" -#: library/ssl.rst:161 +#: library/ssl.rst:163 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 "" -#: library/ssl.rst:165 +#: library/ssl.rst:167 msgid "" "If your application needs specific settings, you should create a :class:" "`SSLContext` and apply the settings yourself." msgstr "" -#: library/ssl.rst:169 +#: library/ssl.rst:171 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 " @@ -250,13 +256,13 @@ msgid "" "still allow SSL 3.0 connections you can re-enable them using::" msgstr "" -#: library/ssl.rst:178 +#: library/ssl.rst:180 msgid "" "ctx = ssl.create_default_context(Purpose.CLIENT_AUTH)\n" "ctx.options &= ~ssl.OP_NO_SSLv3" msgstr "" -#: library/ssl.rst:182 +#: library/ssl.rst:184 msgid "" "This context enables :data:`VERIFY_X509_STRICT` by default, which may reject " "pre-:rfc:`5280` or malformed certificates that the underlying OpenSSL " @@ -264,45 +270,45 @@ msgid "" "recommended, you can do so using::" msgstr "" -#: library/ssl.rst:187 +#: library/ssl.rst:189 msgid "" "ctx = ssl.create_default_context()\n" "ctx.verify_flags &= ~ssl.VERIFY_X509_STRICT" msgstr "" -#: library/ssl.rst:194 +#: library/ssl.rst:196 msgid "RC4 was dropped from the default cipher string." msgstr "" -#: library/ssl.rst:198 +#: library/ssl.rst:200 msgid "ChaCha20/Poly1305 was added to the default cipher string." msgstr "" -#: library/ssl.rst:200 +#: library/ssl.rst:202 msgid "3DES was dropped from the default cipher string." msgstr "" -#: library/ssl.rst:204 +#: library/ssl.rst:206 msgid "Support for key logging to :envvar:`SSLKEYLOGFILE` was added." msgstr "" -#: library/ssl.rst:208 +#: library/ssl.rst:210 msgid "" "The context now uses :data:`PROTOCOL_TLS_CLIENT` or :data:" "`PROTOCOL_TLS_SERVER` protocol instead of generic :data:`PROTOCOL_TLS`." msgstr "" -#: library/ssl.rst:214 +#: library/ssl.rst:216 msgid "" "The context now uses :data:`VERIFY_X509_PARTIAL_CHAIN` and :data:" "`VERIFY_X509_STRICT` in its default verify flags." msgstr "" -#: library/ssl.rst:219 +#: library/ssl.rst:221 msgid "Exceptions" msgstr "" -#: library/ssl.rst:223 +#: library/ssl.rst:225 msgid "" "Raised to signal an error from the underlying SSL implementation (currently " "provided by the OpenSSL library). This signifies some problem in the higher-" @@ -312,85 +318,85 @@ msgid "" "OpenSSL library." msgstr "" -#: library/ssl.rst:230 +#: library/ssl.rst:232 msgid ":exc:`SSLError` used to be a subtype of :exc:`socket.error`." msgstr "" -#: library/ssl.rst:235 +#: library/ssl.rst:237 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 "" -#: library/ssl.rst:243 +#: library/ssl.rst:245 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 "" -#: library/ssl.rst:251 +#: library/ssl.rst:253 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 "" -#: library/ssl.rst:259 +#: library/ssl.rst:261 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 "" -#: library/ssl.rst:268 +#: library/ssl.rst:270 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 "" -#: library/ssl.rst:277 +#: library/ssl.rst:279 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 "" -#: library/ssl.rst:285 +#: library/ssl.rst:287 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 "" -#: library/ssl.rst:293 +#: library/ssl.rst:295 msgid "" "A subclass of :exc:`SSLError` raised when certificate validation has failed." msgstr "" -#: library/ssl.rst:300 +#: library/ssl.rst:302 msgid "A numeric error number that denotes the verification error." msgstr "" -#: library/ssl.rst:304 +#: library/ssl.rst:306 msgid "A human readable string of the verification error." msgstr "" -#: library/ssl.rst:308 +#: library/ssl.rst:310 msgid "An alias for :exc:`SSLCertVerificationError`." msgstr "" -#: library/ssl.rst:310 +#: library/ssl.rst:312 msgid "The exception is now an alias for :exc:`SSLCertVerificationError`." msgstr "" -#: library/ssl.rst:315 +#: library/ssl.rst:317 msgid "Random generation" msgstr "" -#: library/ssl.rst:319 +#: library/ssl.rst:321 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 " @@ -399,11 +405,11 @@ msgid "" "to seed the PRNG." msgstr "" -#: library/ssl.rst:325 +#: library/ssl.rst:327 msgid "For almost all applications :func:`os.urandom` is preferable." msgstr "" -#: library/ssl.rst:327 +#: library/ssl.rst:329 msgid "" "Read the Wikipedia article, `Cryptographically secure pseudorandom number " "generator (CSPRNG) >> import ssl\n" ">>> timestamp = ssl.cert_time_to_seconds(\"Jan 5 09:34:43 2018 GMT\")\n" @@ -457,18 +463,18 @@ msgid "" "2018-01-05 09:34:43" msgstr "" -#: library/ssl.rst:377 +#: library/ssl.rst:379 msgid "\"notBefore\" or \"notAfter\" dates must use GMT (:rfc:`5280`)." msgstr "" -#: library/ssl.rst:379 +#: library/ssl.rst:381 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 "" -#: library/ssl.rst:388 +#: library/ssl.rst:390 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 " @@ -482,79 +488,79 @@ msgid "" "parameter." msgstr "" -#: library/ssl.rst:399 +#: library/ssl.rst:401 msgid "This function is now IPv6-compatible." msgstr "" -#: library/ssl.rst:402 +#: library/ssl.rst:404 msgid "" "The default *ssl_version* is changed from :data:`PROTOCOL_SSLv3` to :data:" "`PROTOCOL_TLS` for maximum compatibility with modern servers." msgstr "" -#: library/ssl.rst:406 +#: library/ssl.rst:408 msgid "The *timeout* parameter was added." msgstr "" -#: library/ssl.rst:411 +#: library/ssl.rst:413 msgid "" "Given a certificate as a DER-encoded blob of bytes, returns a PEM-encoded " "string version of the same certificate." msgstr "" -#: library/ssl.rst:416 +#: library/ssl.rst:418 msgid "" "Given a certificate as an ASCII PEM string, returns a DER-encoded sequence " "of bytes for that same certificate." msgstr "" -#: library/ssl.rst:421 +#: library/ssl.rst:423 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 "" -#: library/ssl.rst:426 +#: library/ssl.rst:428 msgid "" ":attr:`cafile` - resolved path to cafile or ``None`` if the file doesn't " "exist," msgstr "" -#: library/ssl.rst:427 +#: library/ssl.rst:429 msgid "" ":attr:`capath` - resolved path to capath or ``None`` if the directory " "doesn't exist," msgstr "" -#: library/ssl.rst:428 +#: library/ssl.rst:430 msgid "" ":attr:`openssl_cafile_env` - OpenSSL's environment key that points to a " "cafile," msgstr "" -#: library/ssl.rst:429 +#: library/ssl.rst:431 msgid ":attr:`openssl_cafile` - hard coded path to a cafile," msgstr "" -#: library/ssl.rst:430 +#: library/ssl.rst:432 msgid "" ":attr:`openssl_capath_env` - OpenSSL's environment key that points to a " "capath," msgstr "" -#: library/ssl.rst:431 +#: library/ssl.rst:433 msgid ":attr:`openssl_capath` - hard coded path to a capath directory" msgstr "" -#: library/ssl.rst:437 +#: library/ssl.rst:439 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 "" -#: library/ssl.rst:441 +#: library/ssl.rst:443 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:" @@ -563,41 +569,41 @@ msgid "" "exactly ``True`` if the certificate is trustworthy for all purposes." msgstr "" -#: library/ssl.rst:1605 library/ssl.rst:1904 +#: library/ssl.rst:1610 library/ssl.rst:1910 msgid "Example::" msgstr "" -#: library/ssl.rst:450 +#: library/ssl.rst:452 msgid "" ">>> ssl.enum_certificates(\"CA\")\n" "[(b'data...', 'x509_asn', {'1.3.6.1.5.5.7.3.1', '1.3.6.1.5.5.7.3.2'}),\n" " (b'data...', 'x509_asn', True)]" msgstr "" -#: library/ssl.rst:460 +#: library/ssl.rst:462 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 "" -#: library/ssl.rst:464 +#: library/ssl.rst:466 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 "" -#: library/ssl.rst:475 +#: library/ssl.rst:477 msgid "Constants" msgstr "" -#: library/ssl.rst:477 +#: library/ssl.rst:479 msgid "" "All constants are now :class:`enum.IntEnum` or :class:`enum.IntFlag` " "collections." msgstr "" -#: library/ssl.rst:483 +#: library/ssl.rst:485 msgid "" "Possible value for :attr:`SSLContext.verify_mode`. Except for :const:" "`PROTOCOL_TLS_CLIENT`, it is the default mode. With client-side sockets, " @@ -605,24 +611,24 @@ msgid "" "expired cert, are ignored and do not abort the TLS/SSL handshake." msgstr "" -#: library/ssl.rst:489 +#: library/ssl.rst:491 msgid "" "In server mode, no certificate is requested from the client, so the client " "does not send any for client cert authentication." msgstr "" -#: library/ssl.rst:2406 +#: library/ssl.rst:2412 msgid "See the discussion of :ref:`ssl-security` below." msgstr "" -#: library/ssl.rst:496 +#: library/ssl.rst:498 msgid "" "Possible value for :attr:`SSLContext.verify_mode`. 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 "" -#: library/ssl.rst:501 +#: library/ssl.rst:503 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 " @@ -631,13 +637,13 @@ msgid "" "TLS handshake." msgstr "" -#: library/ssl.rst:526 +#: library/ssl.rst:528 msgid "" "Use of this setting requires a valid set of CA certificates to be passed to :" "meth:`SSLContext.load_verify_locations`." msgstr "" -#: library/ssl.rst:512 +#: library/ssl.rst:514 msgid "" "Possible value for :attr:`SSLContext.verify_mode`. In this mode, " "certificates are required from the other side of the socket connection; an :" @@ -649,25 +655,25 @@ msgid "" "attr:`~SSLContext.check_hostname` by default." msgstr "" -#: library/ssl.rst:522 +#: library/ssl.rst:524 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 "" -#: library/ssl.rst:531 +#: library/ssl.rst:533 msgid ":class:`enum.IntEnum` collection of CERT_* constants." msgstr "" -#: library/ssl.rst:537 +#: library/ssl.rst:539 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 "" -#: library/ssl.rst:545 +#: library/ssl.rst:547 msgid "" "Possible value for :attr:`SSLContext.verify_flags`. In this mode, only the " "peer cert is checked but none of the intermediate CA certificates. The mode " @@ -676,32 +682,32 @@ msgid "" "load_verify_locations`, validation will fail." msgstr "" -#: library/ssl.rst:555 +#: library/ssl.rst:557 msgid "" "Possible value for :attr:`SSLContext.verify_flags`. In this mode, CRLs of " "all certificates in the peer cert chain are checked." msgstr "" -#: library/ssl.rst:562 +#: library/ssl.rst:564 msgid "" "Possible value for :attr:`SSLContext.verify_flags` to disable workarounds " "for broken X.509 certificates." msgstr "" -#: library/ssl.rst:569 +#: library/ssl.rst:571 msgid "" "Possible value for :attr:`SSLContext.verify_flags` to enables proxy " "certificate verification." msgstr "" -#: library/ssl.rst:576 +#: library/ssl.rst:578 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 "" -#: library/ssl.rst:584 +#: library/ssl.rst:586 msgid "" "Possible value for :attr:`SSLContext.verify_flags`. It instructs OpenSSL to " "accept intermediate CAs in the trust store to be treated as trust-anchors, " @@ -710,25 +716,25 @@ msgid "" "to trust its ancestor root CA." msgstr "" -#: library/ssl.rst:595 +#: library/ssl.rst:597 msgid ":class:`enum.IntFlag` collection of VERIFY_* constants." msgstr "" -#: library/ssl.rst:601 +#: library/ssl.rst:603 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 "" -#: library/ssl.rst:608 +#: library/ssl.rst:610 msgid "" "TLS clients and servers require different default settings for secure " "communication. The generic TLS protocol constant is deprecated in favor of :" "data:`PROTOCOL_TLS_CLIENT` and :data:`PROTOCOL_TLS_SERVER`." msgstr "" -#: library/ssl.rst:614 +#: library/ssl.rst:616 msgid "" "Auto-negotiate the highest protocol version that both the client and server " "support, and configure the context client-side connections. The protocol " @@ -736,35 +742,35 @@ msgid "" "default." msgstr "" -#: library/ssl.rst:623 +#: library/ssl.rst:625 msgid "" "Auto-negotiate the highest protocol version that both the client and server " "support, and configure the context server-side connections." msgstr "" -#: library/ssl.rst:630 +#: library/ssl.rst:632 msgid "Alias for :data:`PROTOCOL_TLS`." msgstr "" -#: library/ssl.rst:634 +#: library/ssl.rst:636 msgid "Use :data:`PROTOCOL_TLS` instead." msgstr "" -#: library/ssl.rst:638 +#: library/ssl.rst:640 msgid "Selects SSL version 3 as the channel encryption protocol." msgstr "" -#: library/ssl.rst:640 +#: library/ssl.rst:642 msgid "" "This protocol is not available if OpenSSL is compiled with the ``no-ssl3`` " "option." msgstr "" -#: library/ssl.rst:645 +#: library/ssl.rst:647 msgid "SSL version 3 is insecure. Its use is highly discouraged." msgstr "" -#: library/ssl.rst:649 +#: library/ssl.rst:651 msgid "" "OpenSSL has deprecated all version specific protocols. Use the default " "protocol :data:`PROTOCOL_TLS_SERVER` or :data:`PROTOCOL_TLS_CLIENT` with :" @@ -772,87 +778,87 @@ msgid "" "instead." msgstr "" -#: library/ssl.rst:657 +#: library/ssl.rst:659 msgid "Selects TLS version 1.0 as the channel encryption protocol." msgstr "" -#: library/ssl.rst:672 library/ssl.rst:683 +#: library/ssl.rst:674 library/ssl.rst:685 msgid "OpenSSL has deprecated all version specific protocols." msgstr "" -#: library/ssl.rst:665 +#: library/ssl.rst:667 msgid "" "Selects TLS version 1.1 as the channel encryption protocol. Available only " "with openssl version 1.0.1+." msgstr "" -#: library/ssl.rst:676 +#: library/ssl.rst:678 msgid "" "Selects TLS version 1.2 as the channel encryption protocol. Available only " "with openssl version 1.0.1+." msgstr "" -#: library/ssl.rst:687 +#: library/ssl.rst:689 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 "" -#: library/ssl.rst:695 +#: library/ssl.rst:697 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 "" -#: library/ssl.rst:703 +#: library/ssl.rst:705 msgid "SSLv2 is deprecated" msgstr "" -#: library/ssl.rst:707 +#: library/ssl.rst:709 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 "" -#: library/ssl.rst:715 +#: library/ssl.rst:717 msgid "SSLv3 is deprecated" msgstr "" -#: library/ssl.rst:719 +#: library/ssl.rst:721 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 "" -#: library/ssl.rst:725 +#: library/ssl.rst:727 msgid "" "The option is deprecated since OpenSSL 1.1.0, use the new :attr:`SSLContext." "minimum_version` and :attr:`SSLContext.maximum_version` instead." msgstr "" -#: library/ssl.rst:732 +#: library/ssl.rst:734 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 "" -#: library/ssl.rst:749 +#: library/ssl.rst:751 msgid "The option is deprecated since OpenSSL 1.1.0." msgstr "" -#: library/ssl.rst:743 +#: library/ssl.rst:745 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 "" -#: library/ssl.rst:754 +#: library/ssl.rst:756 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 " @@ -861,75 +867,75 @@ msgid "" "defaults to *0*." msgstr "" -#: library/ssl.rst:762 +#: library/ssl.rst:764 msgid "" "The option is deprecated since OpenSSL 1.1.0. It was added to 2.7.15 and " "3.6.3 for backwards compatibility with OpenSSL 1.0.2." msgstr "" -#: library/ssl.rst:768 +#: library/ssl.rst:770 msgid "" "Disable all renegotiation in TLSv1.2 and earlier. Do not send HelloRequest " "messages, and ignore renegotiation requests via ClientHello." msgstr "" -#: library/ssl.rst:771 +#: library/ssl.rst:773 msgid "This option is only available with OpenSSL 1.1.0h and later." msgstr "" -#: library/ssl.rst:777 +#: library/ssl.rst:779 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 "" -#: library/ssl.rst:784 +#: library/ssl.rst:786 msgid "" "Prevents reuse 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 "" -#: library/ssl.rst:792 +#: library/ssl.rst:794 msgid "" "Prevents reuse 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 "" -#: library/ssl.rst:800 +#: library/ssl.rst:802 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 "" -#: library/ssl.rst:803 +#: library/ssl.rst:805 msgid "This option is only available with OpenSSL 1.1.1 and later." msgstr "" -#: library/ssl.rst:809 +#: library/ssl.rst:811 msgid "" "Disable compression on the SSL channel. This is useful if the application " "protocol supports its own compression scheme." msgstr "" -#: library/ssl.rst:816 +#: library/ssl.rst:818 msgid ":class:`enum.IntFlag` collection of OP_* constants." msgstr "" -#: library/ssl.rst:820 +#: library/ssl.rst:822 msgid "Prevent client side from requesting a session ticket." msgstr "" -#: library/ssl.rst:826 +#: library/ssl.rst:828 msgid "Ignore unexpected shutdown of TLS connections." msgstr "" -#: library/ssl.rst:844 +#: library/ssl.rst:846 msgid "This option is only available with OpenSSL 3.0.0 and later." msgstr "" -#: library/ssl.rst:834 +#: library/ssl.rst:836 msgid "" "Enable the use of the kernel TLS. To benefit from the feature, OpenSSL must " "have been compiled with support for it, and the negotiated cipher suites and " @@ -937,7 +943,7 @@ msgid "" "platform and kernel version)." msgstr "" -#: library/ssl.rst:839 +#: library/ssl.rst:841 msgid "" "Note that with enabled kernel TLS some cryptographic operations are " "performed by the kernel directly and not via any available OpenSSL " @@ -945,38 +951,38 @@ msgid "" "requires all cryptographic operations to be performed by the FIPS provider." msgstr "" -#: library/ssl.rst:850 +#: library/ssl.rst:852 msgid "" "Allow legacy insecure renegotiation between OpenSSL and unpatched servers " "only." msgstr "" -#: library/ssl.rst:857 +#: library/ssl.rst:859 msgid "" "Whether the OpenSSL library has built-in support for the *Application-Layer " "Protocol Negotiation* TLS extension as described in :rfc:`7301`." msgstr "" -#: library/ssl.rst:864 +#: library/ssl.rst:866 msgid "" "Whether the OpenSSL library has built-in support not checking subject common " "name and :attr:`SSLContext.hostname_checks_common_name` is writeable." msgstr "" -#: library/ssl.rst:872 +#: library/ssl.rst:874 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 "" -#: library/ssl.rst:880 +#: library/ssl.rst:882 msgid "" "Whether the OpenSSL library has built-in support for the *Server Name " "Indication* extension (as defined in :rfc:`6066`)." msgstr "" -#: library/ssl.rst:887 +#: library/ssl.rst:889 msgid "" "Whether the OpenSSL library has built-in support for the *Next Protocol " "Negotiation* as described in the `Application Layer Protocol Negotiation " @@ -985,77 +991,77 @@ msgid "" "advertise which protocols you want to support." msgstr "" -#: library/ssl.rst:897 +#: library/ssl.rst:899 msgid "" "Whether the OpenSSL library has built-in support for the SSL 2.0 protocol." msgstr "" -#: library/ssl.rst:903 +#: library/ssl.rst:905 msgid "" "Whether the OpenSSL library has built-in support for the SSL 3.0 protocol." msgstr "" -#: library/ssl.rst:909 +#: library/ssl.rst:911 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.0 protocol." msgstr "" -#: library/ssl.rst:915 +#: library/ssl.rst:917 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.1 protocol." msgstr "" -#: library/ssl.rst:921 +#: library/ssl.rst:923 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.2 protocol." msgstr "" -#: library/ssl.rst:927 +#: library/ssl.rst:929 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.3 protocol." msgstr "" -#: library/ssl.rst:933 +#: library/ssl.rst:935 msgid "Whether the OpenSSL library has built-in support for TLS-PSK." msgstr "" -#: library/ssl.rst:939 +#: library/ssl.rst:941 msgid "Whether the OpenSSL library has built-in support for TLS-PHA." msgstr "" -#: library/ssl.rst:945 +#: library/ssl.rst:947 msgid "" "List of supported TLS channel binding types. Strings in this list can be " "used as arguments to :meth:`SSLSocket.get_channel_binding`." msgstr "" -#: library/ssl.rst:952 +#: library/ssl.rst:954 msgid "The version string of the OpenSSL library loaded by the interpreter::" msgstr "" -#: library/ssl.rst:954 +#: library/ssl.rst:956 msgid "" ">>> ssl.OPENSSL_VERSION\n" "'OpenSSL 1.0.2k 26 Jan 2017'" msgstr "" -#: library/ssl.rst:961 +#: library/ssl.rst:963 msgid "" "A tuple of five integers representing version information about the OpenSSL " "library::" msgstr "" -#: library/ssl.rst:964 +#: library/ssl.rst:966 msgid "" ">>> ssl.OPENSSL_VERSION_INFO\n" "(1, 0, 2, 11, 15)" msgstr "" -#: library/ssl.rst:971 +#: library/ssl.rst:973 msgid "The raw version number of the OpenSSL library, as a single integer::" msgstr "" -#: library/ssl.rst:973 +#: library/ssl.rst:975 msgid "" ">>> ssl.OPENSSL_VERSION_NUMBER\n" "268443839\n" @@ -1063,7 +1069,7 @@ msgid "" "'0x100020bf'" msgstr "" -#: library/ssl.rst:984 +#: library/ssl.rst:986 msgid "" "Alert Descriptions from :rfc:`5246` and others. The `IANA TLS Alert Registry " "`." msgstr "" -#: library/ssl.rst:1083 +#: library/ssl.rst:1085 msgid "" "Instances of :class:`SSLSocket` must be created using the :meth:`SSLContext." "wrap_socket` method." msgstr "" -#: library/ssl.rst:1086 +#: library/ssl.rst:1088 msgid "The :meth:`sendfile` method was added." msgstr "" -#: library/ssl.rst:1089 +#: library/ssl.rst:1091 msgid "" "The :meth:`shutdown` does not reset the socket timeout each time bytes are " "received or sent. The socket timeout is now the maximum total duration of " "the shutdown." msgstr "" -#: library/ssl.rst:1094 +#: library/ssl.rst:1096 msgid "" "It is deprecated to create a :class:`SSLSocket` instance directly, use :meth:" "`SSLContext.wrap_socket` to wrap a socket." msgstr "" -#: library/ssl.rst:1098 +#: library/ssl.rst:1100 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 "" -#: library/ssl.rst:1104 +#: library/ssl.rst:1106 msgid "" "Python now uses ``SSL_read_ex`` and ``SSL_write_ex`` internally. The " "functions support reading and writing of data larger than 2 GB. Writing zero-" "length data no longer fails with a protocol violation error." msgstr "" -#: library/ssl.rst:1109 +#: library/ssl.rst:1111 msgid "SSL sockets also have the following additional methods and attributes:" msgstr "" -#: library/ssl.rst:1113 +#: library/ssl.rst:1115 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 "" -#: library/ssl.rst:1117 +#: library/ssl.rst:1119 msgid "" "Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket is :" "ref:`non-blocking ` and the read would block." msgstr "" -#: library/ssl.rst:1120 +#: library/ssl.rst:1122 msgid "" "As at any time a re-negotiation is possible, a call to :meth:`read` can also " "cause write operations." msgstr "" -#: library/ssl.rst:1123 +#: library/ssl.rst:1125 msgid "" "The socket timeout is no longer reset each time bytes are received or sent. " "The socket timeout is now the maximum total duration to read up to *len* " "bytes." msgstr "" -#: library/ssl.rst:1128 +#: library/ssl.rst:1130 msgid "Use :meth:`~SSLSocket.recv` instead of :meth:`~SSLSocket.read`." msgstr "" -#: library/ssl.rst:1133 +#: library/ssl.rst:1135 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." +"Write *data* to the SSL socket and return the number of bytes written. The " +"*data* argument must be an object supporting the buffer interface." msgstr "" -#: library/ssl.rst:1136 +#: library/ssl.rst:1138 msgid "" "Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket is :" "ref:`non-blocking ` and the write would block." msgstr "" -#: library/ssl.rst:1139 +#: library/ssl.rst:1141 msgid "" "As at any time a re-negotiation is possible, a call to :meth:`write` can " "also cause read operations." msgstr "" -#: library/ssl.rst:1142 +#: library/ssl.rst:1144 msgid "" "The socket timeout is no longer reset each time bytes are received or sent. " -"The socket timeout is now the maximum total duration to write *buf*." +"The socket timeout is now the maximum total duration to write *data*." msgstr "" -#: library/ssl.rst:1146 +#: library/ssl.rst:1148 msgid "Use :meth:`~SSLSocket.send` instead of :meth:`~SSLSocket.write`." msgstr "" -#: library/ssl.rst:1151 +#: library/ssl.rst:1153 msgid "" "The :meth:`~SSLSocket.read` and :meth:`~SSLSocket.write` methods are the low-" "level methods that read and write unencrypted, application-level data and " @@ -1316,45 +1322,52 @@ msgid "" "unwrap` was not called." msgstr "" -#: library/ssl.rst:1157 +#: library/ssl.rst:1159 msgid "" "Normally you should use the socket API methods like :meth:`~socket.socket." "recv` and :meth:`~socket.socket.send` instead of these methods." msgstr "" -#: library/ssl.rst:1163 +#: library/ssl.rst:1165 msgid "Perform the SSL setup handshake." msgstr "" -#: library/ssl.rst:1165 +#: library/ssl.rst:1167 msgid "" -"The handshake method also performs :func:`match_hostname` when the :attr:" +"If *block* is true and the timeout obtained by :meth:`~socket.socket." +"gettimeout` is zero, the socket is set in blocking mode until the handshake " +"is performed." +msgstr "" + +#: library/ssl.rst:1170 +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 "" -#: library/ssl.rst:1170 +#: library/ssl.rst:1175 msgid "" "The socket timeout is no longer reset each time bytes are received or sent. " "The socket timeout is now the maximum total duration of the handshake." msgstr "" -#: library/ssl.rst:1174 +#: library/ssl.rst:1179 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 " +"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 " "sent to the peer." msgstr "" -#: library/ssl.rst:1182 +#: library/ssl.rst:1187 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 "" -#: library/ssl.rst:1186 +#: library/ssl.rst:1191 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 " @@ -1366,7 +1379,7 @@ msgid "" "also be a ``subjectAltName`` key in the dictionary." msgstr "" -#: library/ssl.rst:1195 +#: library/ssl.rst:1200 msgid "" "The ``subject`` and ``issuer`` fields are tuples containing the sequence of " "relative distinguished names (RDNs) given in the certificate's data " @@ -1374,7 +1387,7 @@ msgid "" "value pairs. Here is a real-world example::" msgstr "" -#: library/ssl.rst:1200 +#: library/ssl.rst:1205 msgid "" "{'issuer': ((('countryName', 'IL'),),\n" " (('organizationName', 'StartCom Ltd.'),),\n" @@ -1397,7 +1410,7 @@ msgid "" " 'version': 3}" msgstr "" -#: library/ssl.rst:1219 +#: library/ssl.rst:1224 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 " @@ -1406,13 +1419,13 @@ msgid "" "socket's role:" msgstr "" -#: library/ssl.rst:1225 +#: library/ssl.rst:1230 msgid "" "for a client SSL socket, the server will always provide a certificate, " "regardless of whether validation was required;" msgstr "" -#: library/ssl.rst:1228 +#: library/ssl.rst:1233 msgid "" "for a server SSL socket, the client will only provide a certificate when " "requested by the server; therefore :meth:`getpeercert` will return :const:" @@ -1420,41 +1433,41 @@ msgid "" "or :const:`CERT_REQUIRED`)." msgstr "" -#: library/ssl.rst:1233 +#: library/ssl.rst:1238 msgid "See also :attr:`SSLContext.check_hostname`." msgstr "" -#: library/ssl.rst:1235 +#: library/ssl.rst:1240 msgid "" "The returned dictionary includes additional items such as ``issuer`` and " "``notBefore``." msgstr "" -#: library/ssl.rst:1239 +#: library/ssl.rst:1244 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 "" -#: library/ssl.rst:1244 +#: library/ssl.rst:1249 msgid "IPv6 address strings no longer have a trailing new line." msgstr "" -#: library/ssl.rst:1249 +#: library/ssl.rst:1254 msgid "" "Returns verified certificate chain provided by the other end of the SSL " "channel as a list of DER-encoded bytes. If certificate verification was " "disabled method acts the same as :meth:`~SSLSocket.get_unverified_chain`." msgstr "" -#: library/ssl.rst:1258 +#: library/ssl.rst:1263 msgid "" "Returns raw certificate chain provided by the other end of the SSL channel " "as a list of DER-encoded bytes." msgstr "" -#: library/ssl.rst:1265 +#: library/ssl.rst:1270 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 " @@ -1462,7 +1475,7 @@ msgid "" "``None``." msgstr "" -#: library/ssl.rst:1271 +#: library/ssl.rst:1276 msgid "" "Return the list of ciphers available in both the client and server. Each " "entry of the returned list is a three-value tuple containing the name of the " @@ -1472,25 +1485,25 @@ msgid "" "socket." msgstr "" -#: library/ssl.rst:1282 +#: library/ssl.rst:1287 msgid "" "Return the compression algorithm being used as a string, or ``None`` if the " "connection isn't compressed." msgstr "" -#: library/ssl.rst:1285 +#: library/ssl.rst:1290 msgid "" "If the higher-level protocol supports its own compression mechanism, you can " "use :data:`OP_NO_COMPRESSION` to disable SSL-level compression." msgstr "" -#: library/ssl.rst:1292 +#: library/ssl.rst:1297 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 "" -#: library/ssl.rst:1295 +#: library/ssl.rst:1300 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` " @@ -1499,7 +1512,7 @@ msgid "" "channel binding type is requested." msgstr "" -#: library/ssl.rst:1305 +#: library/ssl.rst:1310 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 " @@ -1507,7 +1520,7 @@ msgid "" "protocols, or if the handshake has not happened yet, ``None`` is returned." msgstr "" -#: library/ssl.rst:1315 +#: library/ssl.rst:1320 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 " @@ -1515,11 +1528,11 @@ msgid "" "this will return ``None``." msgstr "" -#: library/ssl.rst:1693 +#: library/ssl.rst:1698 msgid "NPN has been superseded by ALPN" msgstr "" -#: library/ssl.rst:1328 +#: library/ssl.rst:1333 msgid "" "Performs the SSL shutdown handshake, which removes the TLS layer from the " "underlying socket, and returns the underlying socket object. This can be " @@ -1528,7 +1541,7 @@ msgid "" "other side of the connection, rather than the original socket." msgstr "" -#: library/ssl.rst:1336 +#: library/ssl.rst:1341 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 " @@ -1536,26 +1549,26 @@ msgid "" "`SSLContext.post_handshake_auth`." msgstr "" -#: library/ssl.rst:1341 +#: library/ssl.rst:1346 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 "" -#: library/ssl.rst:1345 +#: library/ssl.rst:1350 msgid "" "If any precondition isn't met (e.g. not TLS 1.3, PHA not enabled), an :exc:" "`SSLError` is raised." msgstr "" -#: library/ssl.rst:1349 +#: library/ssl.rst:1354 msgid "" "Only available with OpenSSL 1.1.1 and TLS 1.3 enabled. Without TLS 1.3 " "support, the method raises :exc:`NotImplementedError`." msgstr "" -#: library/ssl.rst:1356 +#: library/ssl.rst:1361 msgid "" "Return the actual SSL protocol version negotiated by the connection as a " "string, or ``None`` if no secure connection is established. As of this " @@ -1564,29 +1577,29 @@ msgid "" "may define more return values." msgstr "" -#: library/ssl.rst:1366 +#: library/ssl.rst:1371 msgid "" "Returns the number of already decrypted bytes available for read, pending on " "the connection." msgstr "" -#: library/ssl.rst:1371 +#: library/ssl.rst:1376 msgid "The :class:`SSLContext` object this SSL socket is tied to." msgstr "" -#: library/ssl.rst:1377 +#: library/ssl.rst:1382 msgid "" "A boolean which is ``True`` for server-side sockets and ``False`` for client-" "side sockets." msgstr "" -#: library/ssl.rst:1384 +#: library/ssl.rst:1389 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 "" -#: library/ssl.rst:1389 +#: library/ssl.rst:1394 msgid "" "The attribute is now always ASCII text. When ``server_hostname`` is an " "internationalized domain name (IDN), this attribute now stores the A-label " @@ -1594,7 +1607,7 @@ msgid "" "org\"``)." msgstr "" -#: library/ssl.rst:1397 +#: library/ssl.rst:1402 msgid "" "The :class:`SSLSession` for this SSL connection. The session is available " "for client and server side sockets after the TLS handshake has been " @@ -1602,11 +1615,11 @@ msgid "" "`~SSLSocket.do_handshake` has been called to reuse a session." msgstr "" -#: library/ssl.rst:1410 +#: library/ssl.rst:1415 msgid "SSL Contexts" msgstr "" -#: library/ssl.rst:1414 +#: library/ssl.rst:1419 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 " @@ -1614,7 +1627,7 @@ msgid "" "speed up repeated connections from the same clients." msgstr "" -#: library/ssl.rst:1421 +#: library/ssl.rst:1426 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 " @@ -1625,105 +1638,105 @@ msgid "" "provides the most compatibility with other versions." msgstr "" -#: library/ssl.rst:1430 +#: library/ssl.rst:1435 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 "" -#: library/ssl.rst:1436 +#: library/ssl.rst:1441 msgid "*client* / **server**" msgstr "" -#: library/ssl.rst:1436 +#: library/ssl.rst:1441 msgid "**SSLv2**" msgstr "" -#: library/ssl.rst:1436 +#: library/ssl.rst:1441 msgid "**SSLv3**" msgstr "" -#: library/ssl.rst:1436 +#: library/ssl.rst:1441 msgid "**TLS** [3]_" msgstr "" -#: library/ssl.rst:1436 +#: library/ssl.rst:1441 msgid "**TLSv1**" msgstr "" -#: library/ssl.rst:1436 +#: library/ssl.rst:1441 msgid "**TLSv1.1**" msgstr "" -#: library/ssl.rst:1436 +#: library/ssl.rst:1441 msgid "**TLSv1.2**" msgstr "" -#: library/ssl.rst:1438 +#: library/ssl.rst:1443 msgid "*SSLv2*" msgstr "" -#: library/ssl.rst:1439 library/ssl.rst:1441 library/ssl.rst:1443 +#: library/ssl.rst:1444 library/ssl.rst:1446 library/ssl.rst:1448 msgid "yes" msgstr "" -#: library/ssl.rst:1439 library/ssl.rst:1442 library/ssl.rst:1443 +#: library/ssl.rst:1444 library/ssl.rst:1447 library/ssl.rst:1448 msgid "no" msgstr "" -#: library/ssl.rst:1440 +#: library/ssl.rst:1445 msgid "no [1]_" msgstr "" -#: library/ssl.rst:1439 +#: library/ssl.rst:1444 msgid "*SSLv3*" msgstr "" -#: library/ssl.rst:1440 +#: library/ssl.rst:1445 msgid "no [2]_" msgstr "" -#: library/ssl.rst:1440 +#: library/ssl.rst:1445 msgid "*TLS* (*SSLv23*) [3]_" msgstr "" -#: library/ssl.rst:1441 +#: library/ssl.rst:1446 msgid "*TLSv1*" msgstr "" -#: library/ssl.rst:1442 +#: library/ssl.rst:1447 msgid "*TLSv1.1*" msgstr "" -#: library/ssl.rst:1443 +#: library/ssl.rst:1448 msgid "*TLSv1.2*" msgstr "" -#: library/ssl.rst:1446 +#: library/ssl.rst:1451 msgid "Footnotes" msgstr "" -#: library/ssl.rst:1447 +#: library/ssl.rst:1452 msgid ":class:`SSLContext` disables SSLv2 with :data:`OP_NO_SSLv2` by default." msgstr "" -#: library/ssl.rst:1448 +#: library/ssl.rst:1453 msgid ":class:`SSLContext` disables SSLv3 with :data:`OP_NO_SSLv3` by default." msgstr "" -#: library/ssl.rst:1449 +#: library/ssl.rst:1454 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 "" -#: library/ssl.rst:1454 +#: library/ssl.rst:1459 msgid "" ":func:`create_default_context` lets the :mod:`ssl` module choose security " "settings for a given purpose." msgstr "" -#: library/ssl.rst:1459 +#: library/ssl.rst:1464 msgid "" "The context is created with secure default values. The options :data:" "`OP_NO_COMPRESSION`, :data:`OP_CIPHER_SERVER_PREFERENCE`, :data:" @@ -1733,14 +1746,14 @@ msgid "" "ciphers and no ``MD5`` ciphers." msgstr "" -#: library/ssl.rst:1469 +#: library/ssl.rst:1474 msgid "" ":class:`SSLContext` without protocol argument is deprecated. The context " "class will either require :data:`PROTOCOL_TLS_CLIENT` or :data:" "`PROTOCOL_TLS_SERVER` protocol in the future." msgstr "" -#: library/ssl.rst:1475 +#: library/ssl.rst:1480 msgid "" "The default cipher suites now include only secure AES and ChaCha20 ciphers " "with forward secrecy and security level 2. RSA and DH keys with less than " @@ -1749,7 +1762,7 @@ msgid "" "use TLS 1.2 as minimum TLS version." msgstr "" -#: library/ssl.rst:1483 +#: library/ssl.rst:1488 msgid "" ":class:`SSLContext` only supports limited mutation once it has been used by " "a connection. Adding new certificates to the internal trust store is " @@ -1757,35 +1770,35 @@ msgid "" "may result in surprising behavior." msgstr "" -#: library/ssl.rst:1490 +#: library/ssl.rst:1495 msgid "" ":class:`SSLContext` is designed to be shared and used by multiple " "connections. Thus, it is thread-safe as long as it is not reconfigured after " "being used by a connection." msgstr "" -#: library/ssl.rst:1495 +#: library/ssl.rst:1500 msgid ":class:`SSLContext` objects have the following methods and attributes:" msgstr "" -#: library/ssl.rst:1499 +#: library/ssl.rst:1504 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 "" -#: library/ssl.rst:1503 +#: library/ssl.rst:1508 msgid "Example for a context with one CA cert and one other cert::" msgstr "" -#: library/ssl.rst:1505 +#: library/ssl.rst:1510 msgid "" ">>> context.cert_store_stats()\n" "{'crl': 0, 'x509_ca': 1, 'x509': 2}" msgstr "" -#: library/ssl.rst:1513 +#: library/ssl.rst:1518 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 " @@ -1796,7 +1809,7 @@ msgid "" "more information on how the certificate is stored in the *certfile*." msgstr "" -#: library/ssl.rst:1522 +#: library/ssl.rst:1527 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 " @@ -1808,24 +1821,24 @@ msgid "" "encrypted and no password is needed." msgstr "" -#: library/ssl.rst:1531 +#: library/ssl.rst:1536 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 "" -#: library/ssl.rst:1535 +#: library/ssl.rst:1540 msgid "" "An :class:`SSLError` is raised if the private key doesn't match with the " "certificate." msgstr "" -#: library/ssl.rst:1538 +#: library/ssl.rst:1543 msgid "New optional argument *password*." msgstr "" -#: library/ssl.rst:1543 +#: library/ssl.rst:1548 msgid "" "Load a set of default \"certification authority\" (CA) certificates from " "default locations. On Windows it loads CA certs from the ``CA`` and ``ROOT`` " @@ -1834,7 +1847,7 @@ msgid "" "from other locations, too." msgstr "" -#: library/ssl.rst:1549 +#: library/ssl.rst:1554 msgid "" "The *purpose* flag specifies what kind of CA certificates are loaded. The " "default settings :const:`Purpose.SERVER_AUTH` loads certificates, that are " @@ -1843,35 +1856,35 @@ msgid "" "certificate verification on the server side." msgstr "" -#: library/ssl.rst:1559 +#: library/ssl.rst:1564 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 "" -#: library/ssl.rst:1563 +#: library/ssl.rst:1568 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 "" -#: library/ssl.rst:1567 +#: library/ssl.rst:1572 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 "" -#: library/ssl.rst:1572 +#: library/ssl.rst:1577 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 "" -#: library/ssl.rst:1577 +#: library/ssl.rst:1582 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 " @@ -1879,11 +1892,11 @@ msgid "" "are ignored but at least one certificate must be present." msgstr "" -#: library/ssl.rst:1582 +#: library/ssl.rst:1587 msgid "New optional argument *cadata*" msgstr "" -#: library/ssl.rst:1587 +#: library/ssl.rst:1592 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 " @@ -1893,19 +1906,19 @@ msgid "" "a SSL connection." msgstr "" -#: library/ssl.rst:1595 +#: library/ssl.rst:1600 msgid "" "Certificates in a capath directory aren't loaded unless they have been used " "at least once." msgstr "" -#: library/ssl.rst:1602 +#: library/ssl.rst:1607 msgid "" "Get a list of enabled ciphers. The list is in order of cipher priority. See :" "meth:`SSLContext.set_ciphers`." msgstr "" -#: library/ssl.rst:1607 +#: library/ssl.rst:1612 msgid "" ">>> ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23)\n" ">>> ctx.set_ciphers('ECDHE+AESGCM:!ECDSA')\n" @@ -1936,7 +1949,7 @@ msgid "" " 'symmetric': 'aes-128-gcm'}]" msgstr "" -#: library/ssl.rst:1639 +#: library/ssl.rst:1644 msgid "" "Load a set of default \"certification authority\" (CA) certificates from a " "filesystem path defined when building the OpenSSL library. Unfortunately, " @@ -1946,7 +1959,7 @@ msgid "" "configured properly." msgstr "" -#: library/ssl.rst:1648 +#: library/ssl.rst:1653 msgid "" "Set the available ciphers for sockets created with this context. It should " "be a string in the `OpenSSL cipher list format `_" msgstr "" -#: library/ssl.rst:1787 +#: library/ssl.rst:1792 msgid "Vincent Bernat." msgstr "" -#: library/ssl.rst:1793 +#: library/ssl.rst:1798 msgid "" "Wrap an existing Python socket *sock* and return an instance of :attr:" "`SSLContext.sslsocket_class` (default :class:`SSLSocket`). The returned SSL " @@ -2136,13 +2149,13 @@ msgid "" "a :const:`~socket.SOCK_STREAM` socket; other socket types are unsupported." msgstr "" -#: library/ssl.rst:1799 +#: library/ssl.rst:1804 msgid "" "The parameter ``server_side`` is a boolean which identifies whether server-" "side or client-side behavior is desired from this socket." msgstr "" -#: library/ssl.rst:1802 +#: library/ssl.rst:1807 msgid "" "For client-side sockets, the context construction is lazy; if the underlying " "socket isn't connected yet, the context construction will be performed " @@ -2153,7 +2166,7 @@ msgid "" "exc:`SSLError`." msgstr "" -#: library/ssl.rst:1810 +#: library/ssl.rst:1815 msgid "" "On client connections, the optional parameter *server_hostname* specifies " "the hostname of the service which we are connecting to. This allows a " @@ -2162,7 +2175,7 @@ msgid "" "*server_hostname* will raise a :exc:`ValueError` if *server_side* is true." msgstr "" -#: library/ssl.rst:1816 +#: library/ssl.rst:1821 msgid "" "The parameter ``do_handshake_on_connect`` specifies whether to do the SSL " "handshake automatically after doing a :meth:`socket.connect`, or whether the " @@ -2172,7 +2185,7 @@ msgid "" "socket I/O involved in the handshake." msgstr "" -#: library/ssl.rst:1823 +#: library/ssl.rst:1828 msgid "" "The parameter ``suppress_ragged_eofs`` specifies how the :meth:`SSLSocket." "recv` method should signal unexpected EOF from the other end of the " @@ -2182,40 +2195,40 @@ msgid "" "exceptions back to the caller." msgstr "" -#: library/ssl.rst:1830 +#: library/ssl.rst:1835 msgid "*session*, see :attr:`~SSLSocket.session`." msgstr "" -#: library/ssl.rst:1832 +#: library/ssl.rst:1837 msgid "" "To wrap an :class:`SSLSocket` in another :class:`SSLSocket`, use :meth:" "`SSLContext.wrap_bio`." msgstr "" -#: library/ssl.rst:1835 +#: library/ssl.rst:1840 msgid "" "Always allow a server_hostname to be passed, even if OpenSSL does not have " "SNI." msgstr "" -#: library/ssl.rst:1865 +#: library/ssl.rst:1871 msgid "*session* argument was added." msgstr "" -#: library/ssl.rst:1842 +#: library/ssl.rst:1847 msgid "" "The method returns an instance of :attr:`SSLContext.sslsocket_class` instead " "of hard-coded :class:`SSLSocket`." msgstr "" -#: library/ssl.rst:1848 +#: library/ssl.rst:1853 msgid "" "The return type of :meth:`SSLContext.wrap_socket`, defaults to :class:" -"`SSLSocket`. The attribute can be overridden on instance of class in order " -"to return a custom subclass of :class:`SSLSocket`." +"`SSLSocket`. The attribute can be assigned to on instances of :class:" +"`SSLContext` in order to return a custom subclass of :class:`SSLSocket`." msgstr "" -#: library/ssl.rst:1857 +#: library/ssl.rst:1863 msgid "" "Wrap the BIO objects *incoming* and *outgoing* and return an instance of :" "attr:`SSLContext.sslobject_class` (default :class:`SSLObject`). The SSL " @@ -2223,26 +2236,26 @@ msgid "" "outgoing BIO." msgstr "" -#: library/ssl.rst:1862 +#: library/ssl.rst:1868 msgid "" "The *server_side*, *server_hostname* and *session* parameters have the same " "meaning as in :meth:`SSLContext.wrap_socket`." msgstr "" -#: library/ssl.rst:1868 +#: library/ssl.rst:1874 msgid "" "The method returns an instance of :attr:`SSLContext.sslobject_class` instead " "of hard-coded :class:`SSLObject`." msgstr "" -#: library/ssl.rst:1874 +#: library/ssl.rst:1880 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 "" -#: library/ssl.rst:1882 +#: library/ssl.rst:1888 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 " @@ -2251,14 +2264,14 @@ msgid "" "the session cache since the context was created::" msgstr "" -#: library/ssl.rst:1887 +#: library/ssl.rst:1893 msgid "" ">>> stats = context.session_stats()\n" ">>> stats['hits'], stats['misses']\n" "(0, 0)" msgstr "" -#: library/ssl.rst:1893 +#: library/ssl.rst:1899 msgid "" "Whether to match the peer cert's hostname in :meth:`SSLSocket.do_handshake`. " "The context's :attr:`~SSLContext.verify_mode` must be set to :data:" @@ -2271,7 +2284,7 @@ msgid "" "With other protocols, hostname checking must be enabled explicitly." msgstr "" -#: library/ssl.rst:1906 +#: library/ssl.rst:1912 msgid "" "import socket, ssl\n" "\n" @@ -2285,7 +2298,7 @@ msgid "" "ssl_sock.connect(('www.verisign.com', 443))" msgstr "" -#: library/ssl.rst:1921 +#: library/ssl.rst:1927 msgid "" ":attr:`~SSLContext.verify_mode` is now automatically changed to :data:" "`CERT_REQUIRED` when hostname checking is enabled and :attr:`~SSLContext." @@ -2293,7 +2306,7 @@ msgid "" "failed with a :exc:`ValueError`." msgstr "" -#: library/ssl.rst:1928 +#: library/ssl.rst:1934 msgid "" "Write TLS keys to a keylog file, whenever key material is generated or " "received. The keylog file is designed for debugging purposes only. The file " @@ -2302,7 +2315,7 @@ msgid "" "synchronized between threads, but not between processes." msgstr "" -#: library/ssl.rst:1938 +#: library/ssl.rst:1944 msgid "" "A :class:`TLSVersion` enum member representing the highest supported TLS " "version. The value defaults to :attr:`TLSVersion.MAXIMUM_SUPPORTED`. The " @@ -2310,7 +2323,7 @@ msgid "" "const:`PROTOCOL_TLS_CLIENT`, and :const:`PROTOCOL_TLS_SERVER`." msgstr "" -#: library/ssl.rst:1943 +#: library/ssl.rst:1949 msgid "" "The attributes :attr:`~SSLContext.maximum_version`, :attr:`~SSLContext." "minimum_version` and :attr:`SSLContext.options` all affect the supported SSL " @@ -2320,38 +2333,38 @@ msgid "" "`TLSVersion.TLSv1_2` will not be able to establish a TLS 1.2 connection." msgstr "" -#: library/ssl.rst:1956 +#: library/ssl.rst:1962 msgid "" "Like :attr:`SSLContext.maximum_version` except it is the lowest supported " "version or :attr:`TLSVersion.MINIMUM_SUPPORTED`." msgstr "" -#: library/ssl.rst:1963 +#: library/ssl.rst:1969 msgid "" "Control the number of TLS 1.3 session tickets of a :const:" "`PROTOCOL_TLS_SERVER` context. The setting has no impact on TLS 1.0 to 1.2 " "connections." msgstr "" -#: library/ssl.rst:1971 +#: library/ssl.rst:1977 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 "" -#: library/ssl.rst:1975 +#: library/ssl.rst:1981 msgid ":attr:`SSLContext.options` returns :class:`Options` flags:" msgstr "" -#: library/ssl.rst:1983 +#: library/ssl.rst:1989 msgid "" "All ``OP_NO_SSL*`` and ``OP_NO_TLS*`` options have been deprecated since " "Python 3.7. Use :attr:`SSLContext.minimum_version` and :attr:`SSLContext." "maximum_version` instead." msgstr "" -#: library/ssl.rst:1989 +#: library/ssl.rst:1995 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 " @@ -2359,13 +2372,13 @@ msgid "" "client certificate at any time after the handshake." msgstr "" -#: library/ssl.rst:1994 +#: library/ssl.rst:2000 msgid "" "When enabled on client-side sockets, the client signals the server that it " "supports post-handshake authentication." msgstr "" -#: library/ssl.rst:1997 +#: library/ssl.rst:2003 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 " @@ -2373,66 +2386,66 @@ msgid "" "verify_client_post_handshake` is called and some I/O is performed." msgstr "" -#: library/ssl.rst:2007 +#: library/ssl.rst:2013 msgid "" "The protocol version chosen when constructing the context. This attribute " "is read-only." msgstr "" -#: library/ssl.rst:2012 +#: library/ssl.rst:2018 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 "" -#: library/ssl.rst:2020 +#: library/ssl.rst:2026 msgid "" "The flag had no effect with OpenSSL before version 1.1.1l. Python 3.8.9, " "3.9.3, and 3.10 include workarounds for previous versions." msgstr "" -#: library/ssl.rst:2025 +#: library/ssl.rst:2031 msgid "" "An integer representing the `security level `_ for the context. This attribute is read-" "only." msgstr "" -#: library/ssl.rst:2033 +#: library/ssl.rst:2039 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)." msgstr "" -#: library/ssl.rst:2039 +#: library/ssl.rst:2045 msgid ":attr:`SSLContext.verify_flags` returns :class:`VerifyFlags` flags:" msgstr "" -#: library/ssl.rst:2047 +#: library/ssl.rst:2053 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 "" -#: library/ssl.rst:2051 +#: library/ssl.rst:2057 msgid ":attr:`SSLContext.verify_mode` returns :class:`VerifyMode` enum:" msgstr "" -#: library/ssl.rst:2059 +#: library/ssl.rst:2065 msgid "" "Enables TLS-PSK (pre-shared key) authentication on a client-side connection." msgstr "" -#: library/ssl.rst:2110 +#: library/ssl.rst:2116 msgid "" "In general, certificate based authentication should be preferred over this " "method." msgstr "" -#: library/ssl.rst:2063 +#: library/ssl.rst:2069 msgid "" "The parameter ``callback`` is a callable object with the signature: ``def " "callback(hint: str | None) -> tuple[str | None, bytes]``. The ``hint`` " @@ -2444,27 +2457,27 @@ msgid "" "shared key. Return a zero length PSK to reject the connection." msgstr "" -#: library/ssl.rst:2119 +#: library/ssl.rst:2125 msgid "Setting ``callback`` to :const:`None` removes any existing callback." msgstr "" -#: library/ssl.rst:2076 +#: library/ssl.rst:2082 msgid "When using TLS 1.3:" msgstr "" -#: library/ssl.rst:2078 +#: library/ssl.rst:2084 msgid "the ``hint`` parameter is always :const:`None`." msgstr "" -#: library/ssl.rst:2079 +#: library/ssl.rst:2085 msgid "client-identity must be a non-empty string." msgstr "" -#: library/ssl.rst:2128 +#: library/ssl.rst:2134 msgid "Example usage::" msgstr "" -#: library/ssl.rst:2083 +#: library/ssl.rst:2089 msgid "" "context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n" "context.check_hostname = False\n" @@ -2485,18 +2498,18 @@ msgid "" "context.set_psk_client_callback(callback)" msgstr "" -#: library/ssl.rst:2146 +#: library/ssl.rst:2152 msgid "" "This method will raise :exc:`NotImplementedError` if :data:`HAS_PSK` is " "``False``." msgstr "" -#: library/ssl.rst:2108 +#: library/ssl.rst:2114 msgid "" "Enables TLS-PSK (pre-shared key) authentication on a server-side connection." msgstr "" -#: library/ssl.rst:2112 +#: library/ssl.rst:2118 msgid "" "The parameter ``callback`` is a callable object with the signature: ``def " "callback(identity: str | None) -> bytes``. The ``identity`` parameter is an " @@ -2506,19 +2519,19 @@ msgid "" "connection." msgstr "" -#: library/ssl.rst:2121 +#: library/ssl.rst:2127 msgid "" "The parameter ``identity_hint`` is an optional identity hint string sent to " "the client. The string must be less than or equal to ``256`` octets when " "UTF-8 encoded." msgstr "" -#: library/ssl.rst:2126 +#: library/ssl.rst:2132 msgid "" "When using TLS 1.3 the ``identity_hint`` parameter is not sent to the client." msgstr "" -#: library/ssl.rst:2130 +#: library/ssl.rst:2136 msgid "" "context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)\n" "context.maximum_version = ssl.TLSVersion.TLSv1_2\n" @@ -2537,11 +2550,11 @@ msgid "" "context.set_psk_server_callback(callback, 'ServerId_1')" msgstr "" -#: library/ssl.rst:2158 +#: library/ssl.rst:2164 msgid "Certificates" msgstr "" -#: library/ssl.rst:2160 +#: library/ssl.rst:2166 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 " @@ -2552,7 +2565,7 @@ msgid "" "other part, and **only** with the other part." msgstr "" -#: library/ssl.rst:2168 +#: library/ssl.rst:2174 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 " @@ -2566,7 +2579,7 @@ msgid "" "as two fields, called \"notBefore\" and \"notAfter\"." msgstr "" -#: library/ssl.rst:2178 +#: library/ssl.rst:2184 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 " @@ -2579,25 +2592,25 @@ msgid "" "take place." msgstr "" -#: library/ssl.rst:2188 +#: library/ssl.rst:2194 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 "" -#: library/ssl.rst:2192 +#: library/ssl.rst:2198 msgid "" "-----BEGIN CERTIFICATE-----\n" "... (certificate in base64 PEM encoding) ...\n" "-----END CERTIFICATE-----" msgstr "" -#: library/ssl.rst:2197 +#: library/ssl.rst:2203 msgid "Certificate chains" msgstr "" -#: library/ssl.rst:2199 +#: library/ssl.rst:2205 msgid "" "The Python files which contain certificates can contain a sequence of " "certificates, sometimes called a *certificate chain*. This chain should " @@ -2613,7 +2626,7 @@ msgid "" "agency which issued the certification authority's certificate::" msgstr "" -#: library/ssl.rst:2212 +#: library/ssl.rst:2218 msgid "" "-----BEGIN CERTIFICATE-----\n" "... (certificate for your server)...\n" @@ -2626,11 +2639,11 @@ msgid "" "-----END CERTIFICATE-----" msgstr "" -#: library/ssl.rst:2223 +#: library/ssl.rst:2229 msgid "CA certificates" msgstr "" -#: library/ssl.rst:2225 +#: library/ssl.rst:2231 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 " @@ -2642,11 +2655,11 @@ msgid "" "create_default_context`." msgstr "" -#: library/ssl.rst:2234 +#: library/ssl.rst:2240 msgid "Combined key and certificate" msgstr "" -#: library/ssl.rst:2236 +#: library/ssl.rst:2242 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` " @@ -2654,7 +2667,7 @@ msgid "" "should come before the first certificate in the certificate chain::" msgstr "" -#: library/ssl.rst:2242 +#: library/ssl.rst:2248 msgid "" "-----BEGIN RSA PRIVATE KEY-----\n" "... (private key in base64 encoding) ...\n" @@ -2664,11 +2677,11 @@ msgid "" "-----END CERTIFICATE-----" msgstr "" -#: library/ssl.rst:2250 +#: library/ssl.rst:2256 msgid "Self-signed certificates" msgstr "" -#: library/ssl.rst:2252 +#: library/ssl.rst:2258 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 " @@ -2678,7 +2691,7 @@ msgid "" "package, using something like the following::" msgstr "" -#: library/ssl.rst:2259 +#: library/ssl.rst:2265 msgid "" "% openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout cert.pem\n" "Generating a 1024 bit RSA private key\n" @@ -2704,28 +2717,28 @@ msgid "" "%" msgstr "" -#: library/ssl.rst:2281 +#: library/ssl.rst:2287 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 "" -#: library/ssl.rst:2287 +#: library/ssl.rst:2293 msgid "Examples" msgstr "" -#: library/ssl.rst:2290 +#: library/ssl.rst:2296 msgid "Testing for SSL support" msgstr "" -#: library/ssl.rst:2292 +#: library/ssl.rst:2298 msgid "" "To test for the presence of SSL support in a Python installation, user code " "should use the following idiom::" msgstr "" -#: library/ssl.rst:2295 +#: library/ssl.rst:2301 msgid "" "try:\n" " import ssl\n" @@ -2735,40 +2748,40 @@ msgid "" " ... # do something that requires SSL support" msgstr "" -#: library/ssl.rst:2303 +#: library/ssl.rst:2309 msgid "Client-side operation" msgstr "" -#: library/ssl.rst:2305 +#: library/ssl.rst:2311 msgid "" "This example creates a SSL context with the recommended security settings " "for client sockets, including automatic certificate verification::" msgstr "" -#: library/ssl.rst:2308 +#: library/ssl.rst:2314 msgid ">>> context = ssl.create_default_context()" msgstr "" -#: library/ssl.rst:2310 +#: library/ssl.rst:2316 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 "" -#: library/ssl.rst:2314 +#: library/ssl.rst:2320 msgid "" ">>> context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n" ">>> context.load_verify_locations(\"/etc/ssl/certs/ca-bundle.crt\")" msgstr "" -#: library/ssl.rst:2317 +#: library/ssl.rst:2323 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 "" -#: library/ssl.rst:2321 +#: library/ssl.rst:2327 msgid "" "The :data:`PROTOCOL_TLS_CLIENT` protocol configures the context for cert " "validation and hostname verification. :attr:`~SSLContext.verify_mode` is set " @@ -2776,7 +2789,7 @@ msgid "" "``True``. All other protocols create SSL contexts with insecure defaults." msgstr "" -#: library/ssl.rst:2326 +#: library/ssl.rst:2332 msgid "" "When you use the context to connect to a server, :const:`CERT_REQUIRED` and :" "attr:`~SSLContext.check_hostname` validate the server certificate: it " @@ -2785,28 +2798,28 @@ msgid "" "properties like validity and identity of the hostname::" msgstr "" -#: library/ssl.rst:2332 +#: library/ssl.rst:2338 msgid "" ">>> conn = context.wrap_socket(socket.socket(socket.AF_INET),\n" "... server_hostname=\"www.python.org\")\n" ">>> conn.connect((\"www.python.org\", 443))" msgstr "" -#: library/ssl.rst:2336 +#: library/ssl.rst:2342 msgid "You may then fetch the certificate::" msgstr "" -#: library/ssl.rst:2338 +#: library/ssl.rst:2344 msgid ">>> cert = conn.getpeercert()" msgstr "" -#: library/ssl.rst:2340 +#: library/ssl.rst:2346 msgid "" "Visual inspection shows that the certificate does identify the desired " "service (that is, the HTTPS host ``www.python.org``)::" msgstr "" -#: library/ssl.rst:2343 +#: library/ssl.rst:2349 msgid "" ">>> pprint.pprint(cert)\n" "{'OCSP': ('http://ocsp.digicert.com',),\n" @@ -2853,13 +2866,13 @@ msgid "" " 'version': 3}" msgstr "" -#: library/ssl.rst:2383 +#: library/ssl.rst:2389 msgid "" "Now the SSL channel is established and the certificate verified, you can " "proceed to talk with the server::" msgstr "" -#: library/ssl.rst:2386 +#: library/ssl.rst:2392 msgid "" ">>> conn.sendall(b\"HEAD / HTTP/1.0\\r\\nHost: linuxfr.org\\r\\n\\r\\n\")\n" ">>> pprint.pprint(conn.recv(1024).split(b\"\\r\\n\"))\n" @@ -2882,11 +2895,11 @@ msgid "" " b'']" msgstr "" -#: library/ssl.rst:2410 +#: library/ssl.rst:2416 msgid "Server-side operation" msgstr "" -#: library/ssl.rst:2412 +#: library/ssl.rst:2418 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 " @@ -2895,7 +2908,7 @@ msgid "" "start waiting for clients to connect::" msgstr "" -#: library/ssl.rst:2418 +#: library/ssl.rst:2424 msgid "" "import socket, ssl\n" "\n" @@ -2907,14 +2920,14 @@ msgid "" "bindsocket.listen(5)" msgstr "" -#: library/ssl.rst:2427 +#: library/ssl.rst:2433 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 "" -#: library/ssl.rst:2431 +#: library/ssl.rst:2437 msgid "" "while True:\n" " newsocket, fromaddr = bindsocket.accept()\n" @@ -2926,13 +2939,13 @@ msgid "" " connstream.close()" msgstr "" -#: library/ssl.rst:2440 +#: library/ssl.rst:2446 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 "" -#: library/ssl.rst:2443 +#: library/ssl.rst:2449 msgid "" "def deal_with_client(connstream):\n" " data = connstream.recv(1024)\n" @@ -2946,7 +2959,7 @@ msgid "" " # finished with client" msgstr "" -#: library/ssl.rst:2454 +#: library/ssl.rst:2460 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 " @@ -2954,18 +2967,18 @@ msgid "" "event loop)." msgstr "" -#: library/ssl.rst:2462 +#: library/ssl.rst:2468 msgid "Notes on non-blocking sockets" msgstr "" -#: library/ssl.rst:2464 +#: library/ssl.rst:2470 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 "" -#: library/ssl.rst:2468 +#: library/ssl.rst:2474 msgid "" "Most :class:`SSLSocket` methods will raise either :exc:`SSLWantWriteError` " "or :exc:`SSLWantReadError` instead of :exc:`BlockingIOError` if an I/O " @@ -2977,13 +2990,13 @@ msgid "" "require a prior *write* to the underlying socket." msgstr "" -#: library/ssl.rst:2480 +#: library/ssl.rst:2486 msgid "" "In earlier Python versions, the :meth:`!SSLSocket.send` method returned zero " "instead of raising :exc:`SSLWantWriteError` or :exc:`SSLWantReadError`." msgstr "" -#: library/ssl.rst:2484 +#: library/ssl.rst:2490 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 " @@ -2993,7 +3006,7 @@ msgid "" "`~select.select`." msgstr "" -#: library/ssl.rst:2491 +#: library/ssl.rst:2497 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 " @@ -3002,13 +3015,13 @@ msgid "" "call if still necessary." msgstr "" -#: library/ssl.rst:2497 +#: library/ssl.rst:2503 msgid "" "(of course, similar provisions apply when using other primitives such as :" "func:`~select.poll`, or those in the :mod:`selectors` module)" msgstr "" -#: library/ssl.rst:2500 +#: library/ssl.rst:2506 msgid "" "The SSL handshake itself will be non-blocking: the :meth:`SSLSocket." "do_handshake` method has to be retried until it returns successfully. Here " @@ -3016,7 +3029,7 @@ msgid "" "readiness::" msgstr "" -#: library/ssl.rst:2505 +#: library/ssl.rst:2511 msgid "" "while True:\n" " try:\n" @@ -3028,7 +3041,7 @@ msgid "" " select.select([], [sock], [])" msgstr "" -#: library/ssl.rst:2516 +#: library/ssl.rst:2522 msgid "" "The :mod:`asyncio` module supports :ref:`non-blocking SSL sockets ` and provides a higher level :ref:`Streams API `. " "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 "" -#: library/ssl.rst:2619 +#: library/ssl.rst:2625 msgid "" ":class:`SSLObject` instances must be created with :meth:`~SSLContext." "wrap_bio`. In earlier versions, it was possible to create instances " "directly. This was never documented or officially supported." msgstr "" -#: library/ssl.rst:2625 +#: library/ssl.rst:2631 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 "" -#: library/ssl.rst:2631 +#: library/ssl.rst:2637 msgid "" "A memory buffer that can be used to pass data between Python and an SSL " "protocol instance." msgstr "" -#: library/ssl.rst:2636 +#: library/ssl.rst:2642 msgid "Return the number of bytes currently in the memory buffer." msgstr "" -#: library/ssl.rst:2640 +#: library/ssl.rst:2646 msgid "" "A boolean indicating whether the memory BIO is current at the end-of-file " "position." msgstr "" -#: library/ssl.rst:2645 +#: library/ssl.rst:2651 msgid "" "Read up to *n* bytes from the memory buffer. If *n* is not specified or " "negative, all bytes are returned." msgstr "" -#: library/ssl.rst:2650 +#: library/ssl.rst:2656 msgid "" "Write the bytes from *buf* to the memory BIO. The *buf* argument must be an " "object supporting the buffer protocol." msgstr "" -#: library/ssl.rst:2653 +#: library/ssl.rst:2659 msgid "" "The return value is the number of bytes written, which is always equal to " "the length of *buf*." msgstr "" -#: library/ssl.rst:2658 +#: library/ssl.rst:2664 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 "" -#: library/ssl.rst:2664 +#: library/ssl.rst:2670 msgid "SSL session" msgstr "" -#: library/ssl.rst:2670 +#: library/ssl.rst:2676 msgid "Session object used by :attr:`~SSLSocket.session`." msgstr "" -#: library/ssl.rst:2682 +#: library/ssl.rst:2688 msgid "Security considerations" msgstr "" -#: library/ssl.rst:2685 +#: library/ssl.rst:2691 msgid "Best defaults" msgstr "" -#: library/ssl.rst:2687 +#: library/ssl.rst:2693 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:" @@ -3320,13 +3333,13 @@ msgid "" "settings." msgstr "" -#: library/ssl.rst:2694 +#: library/ssl.rst:2700 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 "" -#: library/ssl.rst:2697 +#: library/ssl.rst:2703 msgid "" ">>> import ssl, smtplib\n" ">>> smtp = smtplib.SMTP(\"mail.python.org\", port=587)\n" @@ -3335,13 +3348,13 @@ msgid "" "(220, b'2.0.0 Ready to start TLS')" msgstr "" -#: library/ssl.rst:2703 +#: library/ssl.rst:2709 msgid "" "If a client certificate is needed for the connection, it can be added with :" "meth:`SSLContext.load_cert_chain`." msgstr "" -#: library/ssl.rst:2706 +#: library/ssl.rst:2712 msgid "" "By contrast, if you create the SSL context by calling the :class:" "`SSLContext` constructor yourself, it will not have certificate validation " @@ -3349,15 +3362,15 @@ msgid "" "paragraphs below to achieve a good security level." msgstr "" -#: library/ssl.rst:2712 +#: library/ssl.rst:2718 msgid "Manual settings" msgstr "" -#: library/ssl.rst:2715 +#: library/ssl.rst:2721 msgid "Verifying certificates" msgstr "" -#: library/ssl.rst:2717 +#: library/ssl.rst:2723 msgid "" "When calling the :class:`SSLContext` constructor directly, :const:" "`CERT_NONE` is the default. Since it does not authenticate the other peer, " @@ -3372,13 +3385,13 @@ msgid "" "enabled." msgstr "" -#: library/ssl.rst:2729 +#: library/ssl.rst:2735 msgid "" "Hostname matchings is now performed by OpenSSL. Python no longer uses :func:" -"`match_hostname`." +"`!match_hostname`." msgstr "" -#: library/ssl.rst:2733 +#: library/ssl.rst:2739 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 " @@ -3386,11 +3399,11 @@ msgid "" "certificate." msgstr "" -#: library/ssl.rst:2739 +#: library/ssl.rst:2745 msgid "Protocol versions" msgstr "" -#: library/ssl.rst:2741 +#: library/ssl.rst:2747 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 " @@ -3399,14 +3412,14 @@ msgid "" "by default." msgstr "" -#: library/ssl.rst:2749 +#: library/ssl.rst:2755 msgid "" ">>> client_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n" ">>> client_context.minimum_version = ssl.TLSVersion.TLSv1_3\n" ">>> client_context.maximum_version = ssl.TLSVersion.TLSv1_3" msgstr "" -#: library/ssl.rst:2754 +#: library/ssl.rst:2760 msgid "" "The SSL context created above will only allow TLSv1.3 and later (if " "supported by your system) connections to a server. :const:" @@ -3414,11 +3427,11 @@ msgid "" "default. You have to load certificates into the context." msgstr "" -#: library/ssl.rst:2761 +#: library/ssl.rst:2767 msgid "Cipher selection" msgstr "" -#: library/ssl.rst:2763 +#: library/ssl.rst:2769 msgid "" "If you have advanced security requirements, fine-tuning of the ciphers " "enabled when negotiating a SSL session is possible through the :meth:" @@ -3431,11 +3444,11 @@ msgid "" "command on your system." msgstr "" -#: library/ssl.rst:2774 +#: library/ssl.rst:2780 msgid "Multi-processing" msgstr "" -#: library/ssl.rst:2776 +#: library/ssl.rst:2782 msgid "" "If using this module as part of a multi-processed application (using, for " "example the :mod:`multiprocessing` or :mod:`concurrent.futures` modules), be " @@ -3446,17 +3459,17 @@ msgid "" "sufficient." msgstr "" -#: library/ssl.rst:2788 +#: library/ssl.rst:2794 msgid "TLS 1.3" msgstr "" -#: library/ssl.rst:2792 +#: library/ssl.rst:2798 msgid "" "The TLS 1.3 protocol behaves slightly differently than previous version of " "TLS/SSL. Some new TLS 1.3 features are not yet available." msgstr "" -#: library/ssl.rst:2795 +#: library/ssl.rst:2801 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." @@ -3464,14 +3477,14 @@ msgid "" "`SSLContext.get_ciphers` returns them." msgstr "" -#: library/ssl.rst:2799 +#: library/ssl.rst:2805 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 "" -#: library/ssl.rst:2802 +#: library/ssl.rst:2808 msgid "" "Client-side certificates are also no longer verified during the initial " "handshake. A server can request a certificate at any time. Clients process " @@ -3479,103 +3492,103 @@ msgid "" "server." msgstr "" -#: library/ssl.rst:2806 +#: library/ssl.rst:2812 msgid "" "TLS 1.3 features like early data, deferred TLS client cert request, " "signature algorithm configuration, and rekeying are not supported yet." msgstr "" -#: library/ssl.rst:2812 +#: library/ssl.rst:2818 msgid "Class :class:`socket.socket`" msgstr "" -#: library/ssl.rst:2813 +#: library/ssl.rst:2819 msgid "Documentation of underlying :mod:`socket` class" msgstr "" -#: library/ssl.rst:2815 +#: library/ssl.rst:2821 msgid "" "`SSL/TLS Strong Encryption: An Introduction `_" msgstr "" -#: library/ssl.rst:2816 +#: library/ssl.rst:2822 msgid "Intro from the Apache HTTP Server documentation" msgstr "" -#: library/ssl.rst:2818 +#: library/ssl.rst:2824 msgid "" ":rfc:`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: " "Certificate-Based Key Management <1422>`" msgstr "" -#: library/ssl.rst:2819 +#: library/ssl.rst:2825 msgid "Steve Kent" msgstr "" -#: library/ssl.rst:2821 +#: library/ssl.rst:2827 msgid ":rfc:`RFC 4086: Randomness Requirements for Security <4086>`" msgstr "" -#: library/ssl.rst:2822 +#: library/ssl.rst:2828 msgid "Donald E., Jeffrey I. Schiller" msgstr "" -#: library/ssl.rst:2824 +#: library/ssl.rst:2830 msgid "" ":rfc:`RFC 5280: Internet X.509 Public Key Infrastructure Certificate and " "Certificate Revocation List (CRL) Profile <5280>`" msgstr "" -#: library/ssl.rst:2825 +#: library/ssl.rst:2831 msgid "D. Cooper" msgstr "" -#: library/ssl.rst:2827 +#: library/ssl.rst:2833 msgid "" ":rfc:`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 " "<5246>`" msgstr "" -#: library/ssl.rst:2828 +#: library/ssl.rst:2834 msgid "T. Dierks et. al." msgstr "" -#: library/ssl.rst:2830 +#: library/ssl.rst:2836 msgid ":rfc:`RFC 6066: Transport Layer Security (TLS) Extensions <6066>`" msgstr "" -#: library/ssl.rst:2831 +#: library/ssl.rst:2837 msgid "D. Eastlake" msgstr "" -#: library/ssl.rst:2833 +#: library/ssl.rst:2839 msgid "" "`IANA TLS: Transport Layer Security (TLS) Parameters `_" msgstr "" -#: library/ssl.rst:2834 +#: library/ssl.rst:2840 msgid "IANA" msgstr "" -#: library/ssl.rst:2836 +#: library/ssl.rst:2842 msgid "" ":rfc:`RFC 7525: Recommendations for Secure Use of Transport Layer Security " "(TLS) and Datagram Transport Layer Security (DTLS) <7525>`" msgstr "" -#: library/ssl.rst:2837 +#: library/ssl.rst:2843 msgid "IETF" msgstr "" -#: library/ssl.rst:2839 +#: library/ssl.rst:2845 msgid "" "`Mozilla's Server Side TLS recommendations `_" msgstr "" -#: library/ssl.rst:2840 +#: library/ssl.rst:2846 msgid "Mozilla" msgstr "" @@ -3603,10 +3616,10 @@ msgstr "" msgid "Secure Sockets Layer" msgstr "" -#: library/ssl.rst:2151 +#: library/ssl.rst:2157 msgid "certificates" msgstr "" -#: library/ssl.rst:2153 +#: library/ssl.rst:2159 msgid "X509 certificate" msgstr "" diff --git a/library/stat.po b/library/stat.po index 5a90417c..111bc31b 100644 --- a/library/stat.po +++ b/library/stat.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/statistics.po b/library/statistics.po index b3f5d34e..21b6d521 100644 --- a/library/statistics.po +++ b/library/statistics.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/stdtypes.po b/library/stdtypes.po index 6ad2ac8b..7ca32abc 100644 --- a/library/stdtypes.po +++ b/library/stdtypes.po @@ -8,15 +8,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-05-03 00:13+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Theofanis Petkos \n" "Language-Team: PyGreece \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.5\n" +"X-Generator: Poedit 3.6\n" #: library/stdtypes.rst:8 msgid "Built-in Types" @@ -60,9 +60,9 @@ msgstr "" "Ορισμένες λειτουργίες υποστηρίζονται από διάφορους τύπους αντικειμένων· " "ειδικότερα, σχεδόν όλα τα αντικείμενα μπορούν να συγκριθούν ως προς την " "ισότητα, να ελεγχθούν για την έγκυρη τιμή και να μετατραπούν σε συμβολοσειρά " -"(string) (με τη συνάρτηση :func:`repr` ή την ελαφρώς διαφορετική συνάρτηση :" -"func:`str`). Η τελευταία συνάρτηση χρησιμοποιείται έμμεσα όταν ένα " -"αντικείμενο γράφεται από τη συνάρτηση :func:`print`." +"(string) (με τη συνάρτηση :func:`repr` ή την ελαφρώς διαφορετική " +"συνάρτηση :func:`str`). Η τελευταία συνάρτηση χρησιμοποιείται έμμεσα όταν " +"ένα αντικείμενο γράφεται από τη συνάρτηση :func:`print`." #: library/stdtypes.rst:32 msgid "Truth Value Testing" @@ -70,8 +70,8 @@ msgstr "Έλεγχος Έγκυρης Τιμής" #: 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." +"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 "" "Οποιοδήποτε αντικείμενο μπορεί να ελεγχθεί ως προς την εγκυρότητα της τιμής " "του, για χρήση σε :keyword:`if` ή :keyword:`while` συνθήκη ή ως τελεστής των " @@ -79,14 +79,14 @@ msgstr "" #: library/stdtypes.rst:46 msgid "" -"By default, an object is considered true unless its class defines either a :" -"meth:`~object.__bool__` method that returns ``False`` or a :meth:`~object." -"__len__` method that returns zero, when called with the object. [1]_ Here " -"are most of the built-in objects considered false:" +"By default, an object is considered true unless its class defines either " +"a :meth:`~object.__bool__` method that returns ``False`` or " +"a :meth:`~object.__len__` method that returns zero, when called with the " +"object. [1]_ Here are most of the built-in objects considered false:" msgstr "" "Ως προεπιλογή, ένα αντικείμενο θεωρείται true εκτός εάν η κλάση του ορίζει " -"μία :meth:`~object.__bool__` μέθοδο που επιστρέφει ``False`` ή μία :meth:" -"`~object.__len__` μέθοδο που επιστρέφει μηδέν, όταν καλείται με το " +"μία :meth:`~object.__bool__` μέθοδο που επιστρέφει ``False`` ή " +"μία :meth:`~object.__len__` μέθοδο που επιστρέφει μηδέν, όταν καλείται με το " "αντικείμενο. [1]_ Εδώ τα περισσότερα από τα ενσωματωμένα (built-in) " "αντικείμενα θεωρούνται false:" @@ -134,17 +134,17 @@ msgid "These are the Boolean operations, ordered by ascending priority:" msgstr "" "Αυτές είναι οι λογικές (Boolean) πράξεις, ταξινομημένες βάσει προτεραιότητας:" -#: library/stdtypes.rst:144 library/stdtypes.rst:372 library/stdtypes.rst:1007 -#: library/stdtypes.rst:1215 +#: library/stdtypes.rst:144 library/stdtypes.rst:372 library/stdtypes.rst:1005 +#: library/stdtypes.rst:1224 msgid "Operation" msgstr "Πράξη" -#: library/stdtypes.rst:282 library/stdtypes.rst:422 library/stdtypes.rst:1215 +#: library/stdtypes.rst:282 library/stdtypes.rst:422 library/stdtypes.rst:1224 msgid "Result" msgstr "Αποτέλεσμα" -#: library/stdtypes.rst:282 library/stdtypes.rst:1007 library/stdtypes.rst:2770 -#: library/stdtypes.rst:4029 +#: library/stdtypes.rst:282 library/stdtypes.rst:1005 library/stdtypes.rst:2901 +#: library/stdtypes.rst:4161 msgid "Notes" msgstr "Σημειώσεις" @@ -156,8 +156,8 @@ msgstr "``x or y``" msgid "if *x* is true, then *x*, else *y*" msgstr "αν το *x* είναι true, τότε *x*, αλλιώς *y*" -#: library/stdtypes.rst:1009 library/stdtypes.rst:1228 -#: library/stdtypes.rst:4035 +#: library/stdtypes.rst:1007 library/stdtypes.rst:1239 +#: library/stdtypes.rst:4167 msgid "\\(1)" msgstr "\\(1)" @@ -169,8 +169,8 @@ msgstr "``x and y``" msgid "if *x* is false, then *x*, else *y*" msgstr "αν το *x* είναι false, τότε *x*, αλλιώς *y*" -#: library/stdtypes.rst:295 library/stdtypes.rst:1256 library/stdtypes.rst:2782 -#: library/stdtypes.rst:4041 +#: library/stdtypes.rst:295 library/stdtypes.rst:1250 library/stdtypes.rst:2913 +#: library/stdtypes.rst:4173 msgid "\\(2)" msgstr "\\(2)" @@ -182,14 +182,14 @@ msgstr "``not x``" msgid "if *x* is false, then ``True``, else ``False``" msgstr "if *x* είναι false, τότε ``True``, αλλιώς ``False``" -#: library/stdtypes.rst:1259 library/stdtypes.rst:2786 -#: library/stdtypes.rst:2790 library/stdtypes.rst:4045 -#: library/stdtypes.rst:4049 +#: library/stdtypes.rst:2915 library/stdtypes.rst:2919 +#: library/stdtypes.rst:4175 library/stdtypes.rst:4179 +#: library/stdtypes.rst:4181 msgid "\\(3)" msgstr "\\(3)" -#: library/stdtypes.rst:326 library/stdtypes.rst:1058 library/stdtypes.rst:2816 -#: library/stdtypes.rst:4079 +#: library/stdtypes.rst:326 library/stdtypes.rst:1049 library/stdtypes.rst:2947 +#: library/stdtypes.rst:4211 msgid "Notes:" msgstr "Σημειώσεις:" @@ -241,8 +241,8 @@ msgstr "" msgid "This table summarizes the comparison operations:" msgstr "Αυτός ο πίνακας συνοψίζει τις πράξεις σύγκρισης:" -#: library/stdtypes.rst:2602 library/stdtypes.rst:2770 -#: library/stdtypes.rst:4029 +#: library/stdtypes.rst:2732 library/stdtypes.rst:2901 +#: library/stdtypes.rst:4161 msgid "Meaning" msgstr "Έννοια" @@ -323,8 +323,8 @@ msgstr "" "δεν συγκρίνονται ποτέ ως ίσα. Ο τελεστής ``==`` ορίζεται πάντα αλλά για " "ορισμένους τύπους αντικειμένων (για παράδειγμα, αντικείμενα κλάσης) " "ισοδυναμεί με :keyword:`is`. Οι τελεστές ``<``, ``<=``, ``>`` και ``>=`` " -"ορίζονται μόνο όπου έχουν νόημα· για παράδειγμα, δημιουργούν μια εξαίρεση :" -"exc:`TypeError` όταν ένα από τα ορίσματα είναι μιγαδικός αριθμός." +"ορίζονται μόνο όπου έχουν νόημα· για παράδειγμα, δημιουργούν μια " +"εξαίρεση :exc:`TypeError` όταν ένα από τα ορίσματα είναι μιγαδικός αριθμός." #: library/stdtypes.rst:181 msgid "" @@ -338,17 +338,19 @@ msgstr "" 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:`~object.__lt__`, :meth:`~object.__le__`, :meth:`~object." -"__gt__`, and :meth:`~object.__ge__` (in general, :meth:`~object.__lt__` and :" -"meth:`~object.__eq__` are sufficient, if you want the conventional meanings " -"of the comparison operators)." +"the " +"methods :meth:`~object.__lt__`, :meth:`~object.__le__`, :meth:`~object.__gt__`, " +"and :meth:`~object.__ge__` (in general, :meth:`~object.__lt__` " +"and :meth:`~object.__eq__` are sufficient, if you want the conventional " +"meanings of the comparison operators)." msgstr "" "Τα instances μιας κλάσης δεν μπορούν να ταξινομηθούν σε σχέση με άλλα " "instances της ίδιας κλάσης, ή άλλους τύπους του αντικειμένου, εκτός εάν η " -"κλάση ορίζει αρκετές από τις μεθόδους :meth:`~object.__lt__`, :meth:`~object." -"__le__`, :meth:`~object.__gt__`, και :meth:`~object.__ge__` (γενικά, :meth:" -"`~object.__lt__` και :meth:`~object.__eq__` είναι αρκετά, αν θέλετε τις " -"συμβατικές έννοιες των τελεστών σύγκρισης)." +"κλάση ορίζει αρκετές από τις " +"μεθόδους :meth:`~object.__lt__`, :meth:`~object.__le__`, :meth:`~object.__gt__`, " +"και :meth:`~object.__ge__` (γενικά, :meth:`~object.__lt__` " +"και :meth:`~object.__eq__` είναι αρκετά, αν θέλετε τις συμβατικές έννοιες " +"των τελεστών σύγκρισης)." #: library/stdtypes.rst:191 msgid "" @@ -362,13 +364,13 @@ msgstr "" #: 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 " +"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:`~object.__contains__` method." msgstr "" -"Δύο ακόμη πράξεις με την ίδια συντακτική προτεραιότητα, :keyword:`in` και :" -"keyword:`not in`, υποστηρίζονται από τύπους που είναι :term:`Iterable` ή " -"υλοποιούν τη μέθοδο :meth:`~object.__contains__`." +"Δύο ακόμη πράξεις με την ίδια συντακτική προτεραιότητα, :keyword:`in` " +"και :keyword:`not in`, υποστηρίζονται από τύπους που είναι :term:`Iterable` " +"ή υλοποιούν τη μέθοδο :meth:`~object.__contains__`." #: library/stdtypes.rst:206 msgid "Numeric Types --- :class:`int`, :class:`float`, :class:`complex`" @@ -381,21 +383,23 @@ msgid "" "subtype of integers. Integers have unlimited precision. Floating-point " "numbers are usually implemented using :c:expr:`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 the additional " -"numeric types :mod:`fractions.Fraction`, for rationals, and :mod:`decimal." -"Decimal`, for floating-point numbers with user-definable precision.)" -msgstr "" -"Υπάρχουν τρεις διαφορετικοί αριθμητικοί τύποι: :dfn:`integers`, :dfn:" -"`floating point numbers` και :dfn:`complex numbers`. Επιπλέον, τα Booleans " -"είναι υπό-τύπος ακεραίων (integers). Οι ακέραιοι αριθμοί έχουν απεριόριστη " -"ακρίβεια. Οι Αριθμοί κινητής υποδιαστολής (floating point numbers) συνήθως " -"υλοποιούνται χρησιμοποιώντας το :c:expr:`double` στη C· πληροφορίες σχετικά " -"με την ακρίβεια και την εσωτερική αναπαράσταση αριθμών κινητής υποδιαστολής " -"για το μηχάνημα στο οποίο εκτελείται το πρόγραμμά σας είναι διαθέσιμο στο :" -"data:`sys.float_info`. Οι μιγαδικοί αριθμοί (complex 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 the additional numeric types :mod:`fractions.Fraction`, for " +"rationals, and :mod:`decimal.Decimal`, for floating-point numbers with user-" +"definable precision.)" +msgstr "" +"Υπάρχουν τρεις διαφορετικοί αριθμητικοί " +"τύποι: :dfn:`integers`, :dfn:`floating point numbers` και :dfn:`complex " +"numbers`. Επιπλέον, τα Booleans είναι υπό-τύπος ακεραίων (integers). Οι " +"ακέραιοι αριθμοί έχουν απεριόριστη ακρίβεια. Οι Αριθμοί κινητής υποδιαστολής " +"(floating point numbers) συνήθως υλοποιούνται χρησιμοποιώντας " +"το :c:expr:`double` στη C· πληροφορίες σχετικά με την ακρίβεια και την " +"εσωτερική αναπαράσταση αριθμών κινητής υποδιαστολής για το μηχάνημα στο " +"οποίο εκτελείται το πρόγραμμά σας είναι διαθέσιμο " +"στο :data:`sys.float_info`. Οι μιγαδικοί αριθμοί (complex numbers) έχουν ένα " "πραγματικό και φανταστικό μέρος, κάθε ένα από τα οποία ένας αριθμός κινητής " "υποδιαστολής. Για να εξαγάγετε αυτά τα μέρη από έναν μιγαδικό αριθμό *z*, " "χρησιμοποιήστε ``z.real`` και ``z.imag``. (Η standard βιβλιοθήκη " @@ -428,8 +432,8 @@ msgid "" "The constructors :func:`int`, :func:`float`, and :func:`complex` can be used " "to produce numbers of a specific type." msgstr "" -"Μπορούν να χρησιμοποιηθούν οι κατασκευαστές :func:`int`, :func:`float` και :" -"func:`complex` για να παράγουν αριθμούς συγκεκριμένου τύπου." +"Μπορούν να χρησιμοποιηθούν οι κατασκευαστές :func:`int`, :func:`float` " +"και :func:`complex` για να παράγουν αριθμούς συγκεκριμένου τύπου." #: library/stdtypes.rst:266 msgid "" @@ -598,7 +602,7 @@ msgstr "" "ένας μιγαδικός αριθμός με πραγματικό μέρος *re*, φανταστικό μέρος *im*. Το " "*im* μετατρέπεται αυτόματα σε μηδέν." -#: library/stdtypes.rst:1249 library/stdtypes.rst:4066 +#: library/stdtypes.rst:2909 library/stdtypes.rst:4198 msgid "\\(6)" msgstr "\\(6)" @@ -634,8 +638,8 @@ msgstr "``pow(x, y)``" msgid "*x* to the power *y*" msgstr "*x* σε δύναμη του *y*" -#: library/stdtypes.rst:319 library/stdtypes.rst:1241 library/stdtypes.rst:2806 -#: library/stdtypes.rst:4062 library/stdtypes.rst:4069 +#: library/stdtypes.rst:319 library/stdtypes.rst:2937 library/stdtypes.rst:4194 +#: library/stdtypes.rst:4201 msgid "\\(5)" msgstr "\\(5)" @@ -656,21 +660,21 @@ msgid "" "always rounded towards minus infinity: ``1//2`` is ``0``, ``(-1)//2`` is " "``-1``, ``1//(-2)`` is ``-1``, and ``(-1)//(-2)`` is ``0``." msgstr "" -"Αναφέρεται επίσης ως διαίρεση ακέραιου αριθμού. Για τελεστές τύπου :class:" -"`int`, το αποτέλεσμα έχει τύπο :class:`int`. Για τελεστές τύπου :class:" -"`float`, το αποτέλεσμα έχει τύπο :class:`float`. Γενικά, το αποτέλεσμα είναι " -"ένας ολόκληρος ακέραιος αριθμός, αν και ο τύπος του αποτελέσματος δεν είναι " -"απαραίτητα :class:`int`. Το αποτέλεσμα είναι πάντα στρογγυλεμένο προς το " -"μείον άπειρο: ``1//2`` είναι ``0``, ``(-1)//2`` είναι ``-1``, ``1//(-2)`` " -"είναι ``-1``, και ``(-1)//(-2)`` είναι ``0``." +"Αναφέρεται επίσης ως διαίρεση ακέραιου αριθμού. Για τελεστές " +"τύπου :class:`int`, το αποτέλεσμα έχει τύπο :class:`int`. Για τελεστές " +"τύπου :class:`float`, το αποτέλεσμα έχει τύπο :class:`float`. Γενικά, το " +"αποτέλεσμα είναι ένας ολόκληρος ακέραιος αριθμός, αν και ο τύπος του " +"αποτελέσματος δεν είναι απαραίτητα :class:`int`. Το αποτέλεσμα είναι πάντα " +"στρογγυλεμένο προς το μείον άπειρο: ``1//2`` είναι ``0``, ``(-1)//2`` είναι " +"``-1``, ``1//(-2)`` είναι ``-1``, και ``(-1)//(-2)`` είναι ``0``." #: library/stdtypes.rst:337 msgid "" "Not for complex numbers. Instead convert to floats using :func:`abs` if " "appropriate." msgstr "" -"Όχι για μιγαδικούς αριθμούς. Αντίθετα μετατρέψτε σε float χρησιμοποιώντας :" -"func:`abs` εάν είναι εφαρμόσιμο." +"Όχι για μιγαδικούς αριθμούς. Αντίθετα μετατρέψτε σε float " +"χρησιμοποιώντας :func:`abs` εάν είναι εφαρμόσιμο." #: library/stdtypes.rst:348 msgid "" @@ -679,8 +683,8 @@ msgid "" "alternative conversions." msgstr "" "Η μετατροπή από :class:`float` σε :class:`int` περικόπτει, απορρίπτοντας το " -"κλασματικό μέρος. Δείτε τις συναρτήσεις :func:`math.floor` και :func:`math." -"ceil` για εναλλακτικές μετατροπές." +"κλασματικό μέρος. Δείτε τις συναρτήσεις :func:`math.floor` " +"και :func:`math.ceil` για εναλλακτικές μετατροπές." #: library/stdtypes.rst:353 msgid "" @@ -767,8 +771,8 @@ msgid "" "For additional numeric operations see the :mod:`math` and :mod:`cmath` " "modules." msgstr "" -"Για περαιτέρω αριθμητικές πράξεις δείτε τα modules :mod:`math` και :mod:" -"`cmath`." +"Για περαιτέρω αριθμητικές πράξεις δείτε τα modules :mod:`math` " +"και :mod:`cmath`." #: library/stdtypes.rst:397 msgid "Bitwise Operations on Integer Types" @@ -810,8 +814,8 @@ msgstr "``x | y``" msgid "bitwise :dfn:`or` of *x* and *y*" msgstr "bitwise :dfn:`or` των *x* και *y*" -#: library/stdtypes.rst:427 library/stdtypes.rst:1263 library/stdtypes.rst:2796 -#: library/stdtypes.rst:4055 +#: library/stdtypes.rst:427 library/stdtypes.rst:2923 library/stdtypes.rst:4183 +#: library/stdtypes.rst:4187 msgid "\\(4)" msgstr "\\(4)" @@ -887,8 +891,8 @@ msgstr "" #: library/stdtypes.rst:452 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 " +"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 "" "Η εκτέλεση αυτών των υπολογισμών με τουλάχιστον ένα επιπλέον bit επέκτασης " @@ -936,8 +940,8 @@ 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``." +"logarithm, then ``k = 1 + int(log(abs(x), 2))``. If ``x`` is zero, then " +"``x.bit_length()`` returns ``0``." msgstr "" "Πιο συγκεκριμένα, εάν το ``x`` είναι μη μηδενικό, τότε το ``x.bit_length()`` " "είναι μοναδικός θετικός αριθμός ``k`` έτσι ώστε ``2**(k-1) <= abs(x) < " @@ -1002,9 +1006,9 @@ msgstr "Επιστρέφει ένα πίνακα από bytes που αναπα #: library/stdtypes.rst:525 msgid "" -"The integer is represented using *length* bytes, and defaults to 1. An :exc:" -"`OverflowError` is raised if the integer is not representable with the given " -"number of bytes." +"The integer is represented using *length* bytes, and defaults to 1. " +"An :exc:`OverflowError` is raised if the integer is not representable with " +"the given number of bytes." msgstr "" "Ο ακέραιος αναπαρίσταται χρησιμοποιώντας *length* bytes και η προεπιλεγμένη " "του τιμή (default) είναι 1. Ένα :exc:`OverflowError` γίνεται raise αν ο " @@ -1058,8 +1062,8 @@ msgid "" "greater than 255 or you'll get an :exc:`OverflowError`." msgstr "" "Ωστόσο, όταν χρησιμοποιείτε προεπιλεγμένα ορίσματα, μην προσπαθήσετε να " -"μετατρέψετε μια τιμή μεγαλύτερη από 255 ή διαφορετικά θα λάβετε ένα :exc:" -"`OverflowError`." +"μετατρέψετε μια τιμή μεγαλύτερη από 255 ή διαφορετικά θα λάβετε " +"ένα :exc:`OverflowError`." #: library/stdtypes.rst:551 msgid "" @@ -1108,8 +1112,8 @@ msgid "" "integer, and defaults to ``\"big\"``. 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." +"array. To request the native byte order of the host system, " +"use :data:`sys.byteorder` as the byte order value." msgstr "" "Το όρισμα *byteorder* καθορίζει τη σειρά byte που χρησιμοποιείται για την " "αναπαράσταση του ακέραιου αριθμού, και η προεπιλεγμένη τιμή (default) είναι " @@ -1175,11 +1179,11 @@ msgstr "" #: library/stdtypes.rst:624 msgid "" -"Returns ``True``. Exists for duck type compatibility with :meth:`float." -"is_integer`." +"Returns ``True``. Exists for duck type compatibility " +"with :meth:`float.is_integer`." msgstr "" -"Επιστρέφει ``True``. Υπάρχει για συμβατότητα τύπου duck με :meth:`float." -"is_integer`." +"Επιστρέφει ``True``. Υπάρχει για συμβατότητα τύπου duck " +"με :meth:`float.is_integer`." #: library/stdtypes.rst:629 msgid "Additional Methods on Float" @@ -1190,9 +1194,9 @@ msgid "" "The float type implements the :class:`numbers.Real` :term:`abstract base " "class`. float also has the following additional methods." msgstr "" -"Ο τύπος float (κινητής υποδιαστολής) υλοποιεί την :class:`numbers.Real` :" -"term:`abstract base class`. Ο float έχει επίσης τις ακόλουθες πρόσθετες " -"μεθόδους." +"Ο τύπος float (κινητής υποδιαστολής) υλοποιεί " +"την :class:`numbers.Real` :term:`abstract base class`. Ο float έχει επίσης " +"τις ακόλουθες πρόσθετες μεθόδους." #: library/stdtypes.rst:636 msgid "" @@ -1205,8 +1209,8 @@ msgstr "" msgid "" "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." +"returned. If the argument is outside the range of a Python float, " +"an :exc:`OverflowError` will be raised." msgstr "" "Εάν το όρισμα είναι ακέραιος ή αριθμός κινητής υποδιαστολής, επιστρέφεται " "ένας αριθμός κινητής υποδιαστολής με την ίδια τιμή (εντός της ακρίβειας " @@ -1215,8 +1219,8 @@ msgstr "" #: library/stdtypes.rst:643 msgid "" -"For a general Python object ``x``, ``float.from_number(x)`` delegates to ``x." -"__float__()``. If :meth:`~object.__float__` is not defined then it falls " +"For a general Python object ``x``, ``float.from_number(x)`` delegates to " +"``x.__float__()``. If :meth:`~object.__float__` is not defined then it falls " "back to :meth:`~object.__index__`." msgstr "" "Για ένα γενικό αντικείμενο Python ``x``, ``float.from_number(x)`` ανατίθεται " @@ -1226,13 +1230,13 @@ msgstr "" #: library/stdtypes.rst:653 msgid "" "Return a pair of integers whose ratio is exactly equal to the original " -"float. The ratio is in lowest terms and has a positive denominator. Raises :" -"exc:`OverflowError` on infinities and a :exc:`ValueError` on NaNs." +"float. The ratio is in lowest terms and has a positive denominator. " +"Raises :exc:`OverflowError` on infinities and a :exc:`ValueError` on NaNs." msgstr "" "Επιστρέφει ένα ζεύγος ακεραίων των οποίων η αναλογία είναι ακριβώς ίση με το " "αρχικό float. Ο λόγος είναι στο χαμηλότερο επίπεδο και έχει θετικό " -"παρονομαστή. Κάνει raise :exc:`OverflowError` στα άπειρα και ένα :exc:" -"`ValueError` για NaNs." +"παρονομαστή. Κάνει raise :exc:`OverflowError` στα άπειρα και " +"ένα :exc:`ValueError` για NaNs." #: library/stdtypes.rst:660 msgid "" @@ -1293,11 +1297,11 @@ msgstr "" #: library/stdtypes.rst:692 msgid "" -"Note that :meth:`float.hex` is an instance method, while :meth:`float." -"fromhex` is a class method." +"Note that :meth:`float.hex` is an instance method, " +"while :meth:`float.fromhex` is a class method." msgstr "" -"Σημειώστε ότι το :meth:`float.hex` είναι ένα instance method, ενώ το :meth:" -"`float.fromhex` είναι μια μέθοδος κλάσης." +"Σημειώστε ότι το :meth:`float.hex` είναι ένα instance method, ενώ " +"το :meth:`float.fromhex` είναι μια μέθοδος κλάσης." #: library/stdtypes.rst:695 msgid "A hexadecimal string takes the form::" @@ -1375,13 +1379,13 @@ msgstr "Περαιτέρω Μέθοδοι για Μιγαδικούς" #: library/stdtypes.rst:732 msgid "" -"The :class:`!complex` type implements the :class:`numbers.Complex` :term:" -"`abstract base class`. :class:`!complex` also has the following additional " -"methods." +"The :class:`!complex` type implements " +"the :class:`numbers.Complex` :term:`abstract base class`. :class:`!complex` " +"also has the following additional methods." msgstr "" -"Ο τύπος :class:`!complex` υλοποιεί την :class:`numbers.Complex` :term:" -"`abstract base class`. Η :class:`!complex` έχει επίσης τις ακόλουθες " -"πρόσθετε μεθόδους." +"Ο τύπος :class:`!complex` υλοποιεί " +"την :class:`numbers.Complex` :term:`abstract base class`. Η :class:`!" +"complex` έχει επίσης τις ακόλουθες πρόσθετε μεθόδους." #: library/stdtypes.rst:738 msgid "Class method to convert a number to a complex number." @@ -1406,30 +1410,32 @@ msgstr "Κατακερματισμός των αριθμητικών τύπων" #: library/stdtypes.rst:753 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:`~object." -"__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:`~sys.hash_info." -"modulus` attribute of :data:`sys.hash_info`." +"that ``hash(x) == hash(y)`` whenever ``x == y`` (see " +"the :meth:`~object.__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:`~sys.hash_info.modulus` attribute " +"of :data:`sys.hash_info`." msgstr "" "Για αριθμούς ``x`` και ``y``, πιθανώς διαφορετικών τύπων, είναι " "προαπαιτούμενο ότι ``hash(x) == hash(y)`` όποτε ``x == y`` (δείτε την " "τεκμηρίωση για την μέθοδο :meth:`~object.__hash__` για περισσότερες " "λεπτομέρειες). Για την ευκολότερη εφαρμογή και αποτελεσματικότητα σε ένα " -"εύρος αριθμητικών τύπων (συμπεριλαμβανομένων των :class:`int`, :class:" -"`float`, :class:`decimal.Decimal` και :class:`fractions.Fracion`) o " -"κατακερματισμός της Python για αριθμητικούς τύπους βασίζεται σε μία μόνο " -"μαθηματική συνάρτηση που ορίζεται για οποιονδήποτε ρητό αριθμό, και ως εκ " -"τούτου ισχύει για όλα τα instances :class:`int` και :class:`fractions." -"Fraction` και όλα πεπερασμένα instances :class:`float` και :class:`decimal." -"Decimal`. Ουσιαστικά, αυτή η συνάρτηση δίνεται από το modulo μείωσης ``P`` " -"για ένα σταθερό πρώτο ``P``. Η τιμή του ``P`` διατίθεται στην Python ως " +"εύρος αριθμητικών τύπων (συμπεριλαμβανομένων " +"των :class:`int`, :class:`float`, :class:`decimal.Decimal` " +"και :class:`fractions.Fracion`) o κατακερματισμός της Python για " +"αριθμητικούς τύπους βασίζεται σε μία μόνο μαθηματική συνάρτηση που ορίζεται " +"για οποιονδήποτε ρητό αριθμό, και ως εκ τούτου ισχύει για όλα τα " +"instances :class:`int` και :class:`fractions.Fraction` και όλα πεπερασμένα " +"instances :class:`float` και :class:`decimal.Decimal`. Ουσιαστικά, αυτή η " +"συνάρτηση δίνεται από το modulo μείωσης ``P`` για ένα σταθερό πρώτο ``P``. Η " +"τιμή του ``P`` διατίθεται στην Python ως " "χαρακτηριστικό :attr:`~sys.hash_info.modulus` του :data:`sys.hash_info`." #: library/stdtypes.rst:768 @@ -1489,23 +1495,24 @@ msgstr "" #: library/stdtypes.rst:790 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``." +"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 "" "Για έναν :class:`complex` αριθμό ``z``, οι τιμές κατακερματισμού των " -"πραγματικών και φανταστικών μερών συνδυάζονται με τον υπολογισμό ``hash(z." -"real) + sys.hash_info.imag * hash(z.imag)``, μειωμένο modulo ``2**sys." -"hash_info.width`` έτσι ώστε να βρίσκεται στο ``range(-2**(sys.hash_info." -"width - 1), 2**(sys.hash_info.width - 1))``. Και πάλι, αν το αποτέλεσμα " -"είναι ``-1``, αντικαθίσταται με ``-2``." +"πραγματικών και φανταστικών μερών συνδυάζονται με τον υπολογισμό " +"``hash(z.real) + sys.hash_info.imag * hash(z.imag)``, μειωμένο modulo " +"``2**sys.hash_info.width`` έτσι ώστε να βρίσκεται στο " +"``range(-2**(sys.hash_info.width - 1), 2**(sys.hash_info.width - 1))``. Και " +"πάλι, αν το αποτέλεσμα είναι ``-1``, αντικαθίσταται με ``-2``." #: library/stdtypes.rst:798 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`::" +"the built-in hash, for computing the hash of a rational " +"number, :class:`float`, or :class:`complex`::" msgstr "" "Για να αποσαφηνίσουμε τους παραπάνω κανόνες, εδώ είναι ένα παράδειγμα κώδικα " "της Python, ισοδύναμο με το built-in hash, για τον υπολογισμό του hash ενός " @@ -1553,8 +1560,8 @@ msgid "" "def hash_complex(z):\n" " \"\"\"Compute the hash of a complex number z.\"\"\"\n" "\n" -" hash_value = hash_float(z.real) + sys.hash_info.imag * hash_float(z." -"imag)\n" +" hash_value = hash_float(z.real) + sys.hash_info.imag * " +"hash_float(z.imag)\n" " # do a signed reduction modulo 2**sys.hash_info.width\n" " M = 2**(sys.hash_info.width - 1)\n" " hash_value = (hash_value & (M - 1)) - (hash_value & M)\n" @@ -1602,8 +1609,8 @@ msgstr "" "def hash_complex(z):\n" " \"\"\"Compute the hash of a complex number z.\"\"\"\n" "\n" -" hash_value = hash_float(z.real) + sys.hash_info.imag * hash_float(z." -"imag)\n" +" hash_value = hash_float(z.real) + sys.hash_info.imag * " +"hash_float(z.imag)\n" " # do a signed reduction modulo 2**sys.hash_info.width\n" " M = 2**(sys.hash_info.width - 1)\n" " hash_value = (hash_value & (M - 1)) - (hash_value & M)\n" @@ -1620,8 +1627,8 @@ msgid "" "Booleans represent truth values. The :class:`bool` type has exactly two " "constant instances: ``True`` and ``False``." msgstr "" -"Οι λογικές τιμές (Booleans) αντιπροσωπεύουν τιμές αλήθειας. Ο τύπος :class:" -"`bool` έχει ακριβώς δύο σταθερές τιμές: ``True`` και ``False``." +"Οι λογικές τιμές (Booleans) αντιπροσωπεύουν τιμές αλήθειας. Ο " +"τύπος :class:`bool` έχει ακριβώς δύο σταθερές τιμές: ``True`` και ``False``." #: library/stdtypes.rst:864 msgid "" @@ -1664,8 +1671,8 @@ msgstr "" "Η :class:`bool` είναι υποκλάση της :class:`int` (βλέπε :ref:`typesnumeric`). " "Σε πολλά αριθμητικά περιβάλλοντα, τα ``False`` και ``True`` συμπεριφέρονται " "όπως οι ακέραιοι αριθμοί 0 και 1, αντίστοιχα. Ωστόσο, δεν συνιστάται να " -"βασίζεστε σε αυτό· πιο αναλυτικά κάντε μετατροπή χρησιμοποιώντας τη :func:" -"`int` αντ' αυτού." +"βασίζεστε σε αυτό· πιο αναλυτικά κάντε μετατροπή χρησιμοποιώντας " +"τη :func:`int` αντ' αυτού." #: library/stdtypes.rst:887 msgid "Iterator Types" @@ -1687,11 +1694,11 @@ msgstr "" #: library/stdtypes.rst:900 msgid "" -"One method needs to be defined for container objects to provide :term:" -"`iterable` support:" +"One method needs to be defined for container objects to " +"provide :term:`iterable` support:" msgstr "" -"Μια μέθοδος πρέπει να οριστεί για τα container αντικείμενα ώστε να παρέχει :" -"term:`iterable` υποστήριξη:" +"Μια μέθοδος πρέπει να οριστεί για τα container αντικείμενα ώστε να " +"παρέχει :term:`iterable` υποστήριξη:" #: library/stdtypes.rst:907 msgid "" @@ -1700,9 +1707,9 @@ msgid "" "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." +"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 "" "Επιστρέφει ένα αντικείμενο :term:`iterator`. Το αντικείμενο απαιτείται να " "υποστηρίζει το πρωτόκολλο επαναλήψεων που περιγράφεται παρακάτω. Εάν ένας " @@ -1725,9 +1732,10 @@ msgstr "" #: library/stdtypes.rst:922 msgid "" "Return the :term:`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." +"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 "" "Επιστρέφει το ίδιο το αντικείμενο :term:`iterator`. Αυτό απαιτείται ώστε να " "επιτραπεί η χρησιμοποίηση τόσο των containers, όσο και των iterators με τα " @@ -1762,13 +1770,14 @@ msgstr "" #: library/stdtypes.rst:941 msgid "" -"Once an iterator's :meth:`~iterator.__next__` method raises :exc:" -"`StopIteration`, it must continue to do so on subsequent calls. " +"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 "" -"Μόλις η μέθοδος :meth:`~iterator.__next__` ενός iterator κάνει raise ένα :" -"exc:`StopIteration`, πρέπει να συνεχίσει να το κάνει σε επόμενες κλήσεις. " -"Υλοποιήσεις που δεν υπακούν σε αυτή την ιδιότητα θεωρούνται εσφαλμένες." +"Μόλις η μέθοδος :meth:`~iterator.__next__` ενός iterator κάνει raise " +"ένα :exc:`StopIteration`, πρέπει να συνεχίσει να το κάνει σε επόμενες " +"κλήσεις. Υλοποιήσεις που δεν υπακούν σε αυτή την ιδιότητα θεωρούνται " +"εσφαλμένες." #: library/stdtypes.rst:949 msgid "Generator Types" @@ -1779,10 +1788,10 @@ msgid "" "Python's :term:`generator`\\s provide a convenient way to implement the " "iterator protocol. If a container object's :meth:`~object.__iter__` method " "is implemented as a generator, it will automatically return an iterator " -"object (technically, a generator object) supplying the :meth:`~iterator." -"__iter__` and :meth:`~generator.__next__` methods. More information about " -"generators can be found in :ref:`the documentation for the yield expression " -"`." +"object (technically, a generator object) supplying " +"the :meth:`~iterator.__iter__` and :meth:`~generator.__next__` methods. More " +"information about generators can be found in :ref:`the documentation for the " +"yield expression `." msgstr "" "Οι :term:`generator`\\s της Python παρέχουν έναν βολικό τρόπο για να " "υλοποιήσετε το iterator πρωτόκολλο. Εάν η μέθοδος :meth:`~object.__iter__` " @@ -1806,8 +1815,8 @@ msgid "" msgstr "" "Υπάρχουν τρεις βασικοί τύποι ακολουθιών: lists (λίστες), tuples (πλειάδες) " "και range objects (αντικείμενα εύρους). Πρόσθετοι τύποι ακολουθίας " -"προσαρμοσμένοι για την επεξεργασία :ref:`binary data ` και :ref:" -"`text strings ` περιγράφονται σε ειδικές ενότητες." +"προσαρμοσμένοι για την επεξεργασία :ref:`binary data ` " +"και :ref:`text strings ` περιγράφονται σε ειδικές ενότητες." #: library/stdtypes.rst:974 msgid "Common Sequence Operations" @@ -1850,131 +1859,107 @@ msgstr "" "πράξεις σύγκρισης. Οι πράξεις ``+`` (συνένωση) και ``*`` (επανάληψη) έχουν " "την ίδια προτεραιότητα με τις αντίστοιχες αριθμητικές πράξεις. [3]_" -#: library/stdtypes.rst:1009 +#: library/stdtypes.rst:1007 msgid "``x in s``" msgstr "``x in s``" -#: library/stdtypes.rst:1009 +#: library/stdtypes.rst:1007 msgid "``True`` if an item of *s* is equal to *x*, else ``False``" msgstr "``True`` αν ένα στοιχείο του *s* είναι ίσο με το *x*, αλλιώς ``False``" -#: library/stdtypes.rst:1012 +#: library/stdtypes.rst:1010 msgid "``x not in s``" msgstr "``x not in s``" -#: library/stdtypes.rst:1012 +#: library/stdtypes.rst:1010 msgid "``False`` if an item of *s* is equal to *x*, else ``True``" msgstr "``False`` αν ένα στοιχείο του *s* είναι ίσο με το *x*, αλλιώς ``True``" -#: library/stdtypes.rst:1015 +#: library/stdtypes.rst:1013 msgid "``s + t``" msgstr "``s + t``" -#: library/stdtypes.rst:1015 +#: library/stdtypes.rst:1013 msgid "the concatenation of *s* and *t*" msgstr "η συνένωση του *s* και *t*" -#: library/stdtypes.rst:1015 +#: library/stdtypes.rst:1013 msgid "(6)(7)" msgstr "(6)(7)" -#: library/stdtypes.rst:1018 +#: library/stdtypes.rst:1016 msgid "``s * n`` or ``n * s``" msgstr "``s * n`` ή ``n * s``" -#: library/stdtypes.rst:1018 +#: library/stdtypes.rst:1016 msgid "equivalent to adding *s* to itself *n* times" msgstr "ίσο με την πρόσθεση του *s* στον εαυτό του *n* φορές" -#: library/stdtypes.rst:1018 +#: library/stdtypes.rst:1016 msgid "(2)(7)" msgstr "(2)(7)" -#: library/stdtypes.rst:1021 +#: library/stdtypes.rst:1019 msgid "``s[i]``" msgstr "``s[i]``" -#: library/stdtypes.rst:1021 +#: library/stdtypes.rst:1019 msgid "*i*\\ th item of *s*, origin 0" msgstr "*i*\\ ο στοιχείο του *s*, αρχή το 0" -#: library/stdtypes.rst:1021 -msgid "(3)(9)" -msgstr "(3)(9)" +#: library/stdtypes.rst:1019 +msgid "(3)(8)" +msgstr "(3)(8)" -#: library/stdtypes.rst:1023 +#: library/stdtypes.rst:1021 msgid "``s[i:j]``" msgstr "``s[i:j]``" -#: library/stdtypes.rst:1023 +#: library/stdtypes.rst:1021 msgid "slice of *s* from *i* to *j*" msgstr "slice (υποσύνολο) του *s* από το *i* μέχρι το *j*" -#: library/stdtypes.rst:1023 +#: library/stdtypes.rst:1021 msgid "(3)(4)" msgstr "(3)(4)" -#: library/stdtypes.rst:1025 +#: library/stdtypes.rst:1023 msgid "``s[i:j:k]``" msgstr "``s[i:j:k]``" -#: library/stdtypes.rst:1025 +#: library/stdtypes.rst:1023 msgid "slice of *s* from *i* to *j* with step *k*" msgstr "slice (υποσύνολο) του *s* από το *i* μέχρι το *j* με βήμα *k*" -#: library/stdtypes.rst:1025 +#: library/stdtypes.rst:1023 msgid "(3)(5)" msgstr "(3)(5)" -#: library/stdtypes.rst:1028 +#: library/stdtypes.rst:1026 msgid "``len(s)``" msgstr "``len(s)``" -#: library/stdtypes.rst:1028 +#: library/stdtypes.rst:1026 msgid "length of *s*" msgstr "μήκος του *s*" -#: library/stdtypes.rst:1030 +#: library/stdtypes.rst:1028 msgid "``min(s)``" msgstr "``min(s)``" -#: library/stdtypes.rst:1030 +#: library/stdtypes.rst:1028 msgid "smallest item of *s*" msgstr "μικρότερο αντικείμενο του *s*" -#: library/stdtypes.rst:1032 +#: library/stdtypes.rst:1030 msgid "``max(s)``" msgstr "``max(s)``" -#: library/stdtypes.rst:1032 +#: library/stdtypes.rst:1030 msgid "largest item of *s*" msgstr "μεγαλύτερο αντικείμενο του *s*" -#: library/stdtypes.rst:1034 -msgid "``s.index(x[, i[, j]])``" -msgstr "``s.index(x[, i[, j]])``" - -#: library/stdtypes.rst:1034 -msgid "" -"index of the first occurrence of *x* in *s* (at or after index *i* and " -"before index *j*)" -msgstr "" -"δείκτης της πρώτης εμφάνισης του *x* στο *s* (μετά από τον ή στον δείκτη *i* " -"και πριν από το δείκτη *j*)" - -#: library/stdtypes.rst:4037 -msgid "\\(8)" -msgstr "\\(8)" - -#: library/stdtypes.rst:1038 -msgid "``s.count(x)``" -msgstr "``s.count(x)``" - -#: library/stdtypes.rst:1038 -msgid "total number of occurrences of *x* in *s*" -msgstr "συνολικές εμφανίσεις του *x* στο *s*" - -#: library/stdtypes.rst:1042 +#: library/stdtypes.rst:1033 msgid "" "Sequences of the same type also support comparisons. In particular, tuples " "and lists are compared lexicographically by comparing corresponding " @@ -1989,22 +1974,22 @@ msgstr "" "ακολουθίες πρέπει να είναι του ίδιου τύπου και να έχουν το ίδιο μήκος. (Για " "πλήρεις λεπτομέρειες δείτε την αναφορά :ref:`comparisons`.)" -#: library/stdtypes.rst:1052 +#: library/stdtypes.rst:1043 msgid "" "Forward and reversed iterators over mutable sequences access values using an " "index. That index will continue to march forward (or backward) even if the " -"underlying sequence is mutated. The iterator terminates only when an :exc:" -"`IndexError` or a :exc:`StopIteration` is encountered (or when the index " -"drops below zero)." +"underlying sequence is mutated. The iterator terminates only when " +"an :exc:`IndexError` or a :exc:`StopIteration` is encountered (or when the " +"index drops below zero)." msgstr "" "Εμπρόσθιοι και αντίστροφοι iterators πάνω σε μεταβλητές ακολουθίες έχουν " "πρόσβαση σε τιμές χρησιμοποιώντας ένα δείκτη. Αυτός ο δείκτης θα συνεχίσει " "να βαδίζει προς τα εμπρός (ή προς τα πίσω) ακόμα και αν η υποκείμενη " -"ακολουθία μεταλλάσσεται. Ο iterator τερματίζει μόνο όταν ένα :exc:" -"`IndexError` ή ένα :exc:`StopIteration` γίνει raise (ή όταν ο δείκτης πέσει " -"κάτω από το μηδέν)." +"ακολουθία μεταλλάσσεται. Ο iterator τερματίζει μόνο όταν " +"ένα :exc:`IndexError` ή ένα :exc:`StopIteration` γίνει raise (ή όταν ο " +"δείκτης πέσει κάτω από το μηδέν)." -#: library/stdtypes.rst:1061 +#: library/stdtypes.rst:1052 msgid "" "While the ``in`` and ``not in`` operations are used only for simple " "containment testing in the general case, some specialised sequences (such " @@ -2013,11 +1998,11 @@ msgid "" msgstr "" "Ενώ οι πράξεις ``in`` και ``not in`` χρησιμοποιούνται γενικά μόνο για απλό " "έλεγχο containment (αν στοιχείο περιέχεται σε μια δομή), ορισμένες " -"εξειδικευμένες ακολουθίες (όπως όπως οι :class:`str`, :class:`bytes` και :" -"class:`bytearray`) τις χρησιμοποιούν επίσης για subsequence testing (έλεγχο " -"υποακολουθίας)::" +"εξειδικευμένες ακολουθίες (όπως όπως οι :class:`str`, :class:`bytes` " +"και :class:`bytearray`) τις χρησιμοποιούν επίσης για subsequence testing " +"(έλεγχο υποακολουθίας)::" -#: library/stdtypes.rst:1066 +#: library/stdtypes.rst:1057 msgid "" ">>> \"gg\" in \"eggs\"\n" "True" @@ -2025,7 +2010,7 @@ msgstr "" ">>> \"gg\" in \"eggs\"\n" "True" -#: library/stdtypes.rst:1070 +#: library/stdtypes.rst:1061 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 " @@ -2037,7 +2022,7 @@ msgstr "" "ακολουθίας *s* δεν αντιγράφονται· αναφέρονται πολλές φορές. Αυτό συχνά " "στοιχειώνει τα άτομα που ξεκινούν με Python- σκεφτείτε::" -#: library/stdtypes.rst:1075 +#: library/stdtypes.rst:1066 msgid "" ">>> lists = [[]] * 3\n" ">>> lists\n" @@ -2053,7 +2038,7 @@ msgstr "" ">>> lists\n" "[[3], [3], [3]]" -#: library/stdtypes.rst:1082 +#: library/stdtypes.rst:1073 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 " @@ -2066,7 +2051,7 @@ msgstr "" "στοιχεία της ``lists`` τροποποιεί αυτή τη μοναδική λίστα. Μπορείτε να " "δημιουργήσετε μια λίστα από διαφορετικές λίστες με αυτόν τον τρόπο::" -#: library/stdtypes.rst:1087 +#: library/stdtypes.rst:1078 msgid "" ">>> lists = [[] for i in range(3)]\n" ">>> lists[0].append(3)\n" @@ -2082,7 +2067,7 @@ msgstr "" ">>> lists\n" "[[3], [5], [7]]" -#: library/stdtypes.rst:1094 +#: library/stdtypes.rst:1085 msgid "" "Further explanation is available in the FAQ entry :ref:`faq-multidimensional-" "list`." @@ -2090,7 +2075,7 @@ msgstr "" "Περαιτέρω επεξήγηση είναι διαθέσιμη στο λήμμα FAQ :ref:`faq-multidimensional-" "list`." -#: library/stdtypes.rst:1098 +#: library/stdtypes.rst:1089 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 " @@ -2100,7 +2085,7 @@ msgstr "" "ακολουθίας *s*: το ``len(s) + i`` ή το ``len(s) + j`` αντικαθίσταται. " "Σημειώστε όμως ότι το ``-0`` εξακολουθεί να είναι ``0``." -#: library/stdtypes.rst:1103 +#: library/stdtypes.rst:1094 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 " @@ -2115,7 +2100,7 @@ msgstr "" "ή είναι ``μηδέν``, χρησιμοποιήστε το ``len(s)``. Εάν το *i* είναι " "μεγαλύτερο από ή ίσο με το *j*, το υποσύνολο (slice) είναι κενό." -#: library/stdtypes.rst:1110 +#: library/stdtypes.rst:1101 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 " @@ -2138,7 +2123,7 @@ msgstr "" "από το πρόσημο του *k*). Σημειώστε ότι το *k* δεν μπορεί να είναι μηδέν. " "Εάν το *k* είναι ``None``, αντιμετωπίζεται όπως το ``1``." -#: library/stdtypes.rst:1121 +#: library/stdtypes.rst:1112 msgid "" "Concatenating immutable sequences always results in a new object. This " "means that building up a sequence by repeated concatenation will have a " @@ -2152,23 +2137,23 @@ msgstr "" "γραμμικό κόστος χρόνου εκτέλεσης (runtime cost), πρέπει να μεταβείτε σε μία " "από τις παρακάτω εναλλακτικές λύσεις::" -#: library/stdtypes.rst:1126 +#: library/stdtypes.rst:1117 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" +"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 "" "αν συνενώνεται αντικείμενα :class:`str`, μπορείτε να δημιουργήσετε μια λίστα " "και να χρησιμοποιήσετε την :meth:`str.join` στο τέλος ή αλλιώς να γράψετε σε " "ένα :class:`io.StringIO` instance και ανακτήσετε την τιμή της όταν " "ολοκληρωθεί" -#: library/stdtypes.rst:1130 +#: library/stdtypes.rst:1121 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" +"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 "" "αν συνενώνεται αντικείμενα :class:`bytes`, μπορείτε να χρησιμοποιήσετε " "παρόμοια τη μέθοδο :meth:`bytes.join` ή :class:`io.BytesIO`, ή μπορείτε να " @@ -2176,17 +2161,17 @@ msgstr "" "αντικείμενο. Τα αντικείμενα :class:`bytearray` είναι μεταβλητά και έχουν " "έναν αποτελεσματικό μηχανισμό συνολικής κατανομής (overallocation)" -#: library/stdtypes.rst:1135 +#: library/stdtypes.rst:1126 msgid "if concatenating :class:`tuple` objects, extend a :class:`list` instead" msgstr "" "αν συνενώνεται αντικείμενα :class:`tuple`, επεκτείνετε μια :class:`list` " "αντ' αυτού" -#: library/stdtypes.rst:1137 +#: library/stdtypes.rst:1128 msgid "for other types, investigate the relevant class documentation" msgstr "για άλλους τύπους, ερευνήστε τη σχετική τεκμηρίωση των κλάσεων" -#: library/stdtypes.rst:1141 +#: library/stdtypes.rst:1132 msgid "" "Some sequence types (such as :class:`range`) only support item sequences " "that follow specific patterns, and hence don't support sequence " @@ -2196,54 +2181,81 @@ msgstr "" "ακολουθίες στοιχείων που ακολουθούν συγκεκριμένα μοτίβα, και ως εκ τούτου " "δεν υποστηρίζουν ακολουθία συνένωση ή επανάληψη." -#: library/stdtypes.rst:1146 -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`` κάνει raise :exc:`ValueError` όταν το *x* δεν βρίσκεται στο " -"*s*. Όχι όλες οι υλοποιήσεις υποστηρίζουν τη διαβίβαση των πρόσθετων ορίων " -"*i* και *j*. Αυτές οι παράμετροι επιτρέπουν την αποτελεσματική αναζήτηση " -"υποτμημάτων της ακολουθίας. Η διαβίβαση των πρόσθετων ορίων είναι περίπου " -"ισοδύναμη με τη χρήση του ``s[i:j].index(x)``, μόνο χωρίς να αντιγράφονται " -"δεδομένα και με τον επιστρεφόμενο δείκτη να είναι σχετικός με την αρχή της " -"ακολουθίας και όχι στην αρχή του υποσυνόλου (slice)." - -#: library/stdtypes.rst:1154 +#: library/stdtypes.rst:1137 msgid "An :exc:`IndexError` is raised if *i* is outside the sequence range." msgstr "" "Μια :exc:`IndexError` γίνεται raise εάν το *i* βρίσκεται εκτός του εύρους " "ακολουθίας." -#: library/stdtypes.rst:1160 +#: library/stdtypes.rst:1140 +msgid "Sequence Methods" +msgstr "Μέθοδοι Ακολουθίας" + +#: library/stdtypes.rst:1141 +msgid "Sequence types also support the following methods:" +msgstr "Οι τύποι ακολουθίας υποστηρίζουν επίσης τις ακόλουθες μεθόδους:" + +#: library/stdtypes.rst:1151 +msgid "Return the total number of occurrences of *value* in *sequence*." +msgstr "" +"Επιστρέφει το συνολικό αριθμό των εμφανίσεων του *value* μέσα στην " +"*sequence*." + +#: library/stdtypes.rst:1161 +msgid "Return the index of the first occurrence of *value* in *sequence*." +msgstr "" +"Επιστρέφει το δείκτη της πρώτης εμφάνισης του *value* μέσα στην *sequence*." + +#: library/stdtypes.rst:1347 +msgid "Raises :exc:`ValueError` if *value* is not found in *sequence*." +msgstr "" +"Κάνει raise μια :exc:`ValueError` αν το *value* δεν μπορεί να βρεθεί μέσα " +"στην *sequence*." + +#: library/stdtypes.rst:1165 +msgid "" +"The *start* or *stop* arguments allow for efficient searching of subsections " +"of the sequence, beginning at *start* and ending at *stop*. This is roughly " +"equivalent to ``start + sequence[start:stop].index(value)``, only without " +"copying any data." +msgstr "" +"Τα ορίσματα *start* ή *stop* επιστρέπόυν αποδοτική αναζήτηση υποτμημάτων της " +"ακολουίας, ξεκινώντας από το *start* και τελειώνοντας στο *stop*. Αυτό είναι " +"περίπου ισοδύναμο με το ``start + sequence[start:stop].index(value)``, μόνο " +"που δεν αντιγράφονται δεδομένα." + +#: library/stdtypes.rst:1171 +msgid "" +"Not all sequence types support passing the *start* and *stop* arguments." +msgstr "" +"Δεν υποστηρίζουν όλοι οι τύποι ακολουθιών τη χρήση των ορισμάτων *start* και " +"*stop*." + +#: library/stdtypes.rst:1177 msgid "Immutable Sequence Types" msgstr "Τύποι Αμετάβλητων Ακολουθιών (Sequences)" -#: library/stdtypes.rst:1167 +#: library/stdtypes.rst:1184 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." +"not also implemented by mutable sequence types is support for " +"the :func:`hash` built-in." msgstr "" "Η μόνη λειτουργία που υλοποιούν οι αμετάβλητοι γενικοί τύποι ακολουθίας που " "δεν είναι υλοποιημένοι από μεταβλητούς τύπους ακολουθίας, είναι η υποστήριξη " "της :func:`hash` built-in." -#: library/stdtypes.rst:1171 +#: library/stdtypes.rst:1188 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." +"to be used as :class:`dict` keys and stored in :class:`set` " +"and :class:`frozenset` instances." msgstr "" -"Αυτή η υποστήριξη επιτρέπει αμετάβλητες ακολουθίες, όπως οι περιπτώσεις των :" -"class:`tuple`, να χρησιμοποιούνται ως κλειδιά :class:`dict` και να " +"Αυτή η υποστήριξη επιτρέπει αμετάβλητες ακολουθίες, όπως οι περιπτώσεις " +"των :class:`tuple`, να χρησιμοποιούνται ως κλειδιά :class:`dict` και να " "αποθηκεύονται σε :class:`set` και :class:`frozenset` instances." -#: library/stdtypes.rst:1175 +#: library/stdtypes.rst:1192 msgid "" "Attempting to hash an immutable sequence that contains unhashable values " "will result in :exc:`TypeError`." @@ -2251,11 +2263,11 @@ msgstr "" "Η προσπάθεια κατακερματισμού μιας αμετάβλητης ακολουθίας που περιέχει μη " "κατακερματιστέες (unhashable) τιμές θα οδηγήσει σε :exc:`TypeError`." -#: library/stdtypes.rst:1182 +#: library/stdtypes.rst:1199 msgid "Mutable Sequence Types" msgstr "Τύποι Μεταβλητών Ακολουθιών (Sequences)" -#: library/stdtypes.rst:1189 +#: library/stdtypes.rst:1206 msgid "" "The operations in the following table are defined on mutable sequence types. " "The :class:`collections.abc.MutableSequence` ABC is provided to make it " @@ -2266,7 +2278,7 @@ msgstr "" "κάνει ευκολότερη την σωστή υλοποίηση αυτών των λειτουργιών σε " "προσαρμοσμένους τύπους ακολουθιών." -#: library/stdtypes.rst:1193 +#: library/stdtypes.rst:1210 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 " @@ -2279,88 +2291,65 @@ msgstr "" "επιβάλλονται από το *s* (για παράδειγμα, το :class:`bytearray` δέχεται μόνο " "ακέραιους που πληρούν τον περιορισμό ``0 <= x <= 255``)." -#: library/stdtypes.rst:1217 +#: library/stdtypes.rst:1226 msgid "``s[i] = x``" msgstr "``s[i] = x``" -#: library/stdtypes.rst:1217 +#: library/stdtypes.rst:1226 msgid "item *i* of *s* is replaced by *x*" msgstr "το στοιχείο *i* του *s* αντικαθίσταται από το *x*" -#: library/stdtypes.rst:1220 +#: library/stdtypes.rst:1229 msgid "``del s[i]``" msgstr "``del s[i]``" -#: library/stdtypes.rst:1220 +#: library/stdtypes.rst:1229 msgid "removes item *i* of *s*" msgstr "αφαιρεί το στοιχείο *i* από το *s*" -#: library/stdtypes.rst:1222 +#: library/stdtypes.rst:1231 msgid "``s[i:j] = t``" msgstr "``s[i:j] = t``" -#: library/stdtypes.rst:1222 +#: library/stdtypes.rst:1231 msgid "" "slice of *s* from *i* to *j* is replaced by the contents of the iterable *t*" msgstr "" "το υποσύνολο (slice) του *s* από το *i* έως το *j* αντικαθίσταται από τα " "περιεχόμενα του iterable *t*" -#: library/stdtypes.rst:1226 +#: library/stdtypes.rst:1235 msgid "``del s[i:j]``" msgstr "``del s[i:j]``" -#: library/stdtypes.rst:1226 -msgid "same as ``s[i:j] = []``" -msgstr "ίδιο με το ``s[i:j] = []``" +#: library/stdtypes.rst:1235 +msgid "" +"removes the elements of ``s[i:j]`` from the list (same as ``s[i:j] = []``)" +msgstr "" +"αφαιρεί τα στοιχεία της ``s[i:j]`` από τη λίστα (παρόμοι όπως ``s[i:j] = " +"[]``)" -#: library/stdtypes.rst:1228 +#: library/stdtypes.rst:1239 msgid "``s[i:j:k] = t``" msgstr "``s[i:j:k] = t``" -#: library/stdtypes.rst:1228 +#: library/stdtypes.rst:1239 msgid "the elements of ``s[i:j:k]`` are replaced by those of *t*" msgstr "τα στοιχεία του ``s[i:j:k]`` αντικαθίστανται από εκείνα του *t*" -#: library/stdtypes.rst:1231 +#: library/stdtypes.rst:1242 msgid "``del s[i:j:k]``" msgstr "``del s[i:j:k]``" -#: library/stdtypes.rst:1231 +#: library/stdtypes.rst:1242 msgid "removes the elements of ``s[i:j:k]`` from the list" msgstr "αφαιρεί τα στοιχεία του ``s[i:j:k]`` από τη λίστα" -#: library/stdtypes.rst:1234 -msgid "``s.append(x)``" -msgstr "``s.append(x)``" - -#: library/stdtypes.rst:1234 -msgid "" -"appends *x* to the end of the sequence (same as ``s[len(s):len(s)] = [x]``)" -msgstr "" -"εισάγει το *x* στο τέλος της ακολουθίας (ίδιο με ``s[len(s):len(s)] = [x]``)" - -#: library/stdtypes.rst:1238 -msgid "``s.clear()``" -msgstr "``s.clear()``" - -#: library/stdtypes.rst:1238 -msgid "removes all items from *s* (same as ``del s[:]``)" -msgstr "αφαιρεί όλα τα στοιχεία από το *s* (ίδιο με το ``del s[:]``)" - -#: library/stdtypes.rst:1241 -msgid "``s.copy()``" -msgstr "``s.copy()``" - -#: library/stdtypes.rst:1241 -msgid "creates a shallow copy of *s* (same as ``s[:]``)" -msgstr "δημιουργεί ένα shallow αντίγραφο του *s* (ίδιο με το ``s[:]``)" +#: library/stdtypes.rst:1245 +msgid "``s += t``" +msgstr "``s += t``" -#: library/stdtypes.rst:1244 -msgid "``s.extend(t)`` or ``s += t``" -msgstr "``s.extend(t)`` ή ``s += t``" - -#: library/stdtypes.rst:1244 +#: library/stdtypes.rst:1245 msgid "" "extends *s* with the contents of *t* (for the most part the same as " "``s[len(s):len(s)] = t``)" @@ -2368,118 +2357,125 @@ msgstr "" "επεκτείνει το *s* με τα περιεχόμενα του *t* (ως επί το πλείστον το ίδιο με " "το ``s[len(s):len(s)] = t``)" -#: library/stdtypes.rst:1249 +#: library/stdtypes.rst:1250 msgid "``s *= n``" msgstr "``s *= n``" -#: library/stdtypes.rst:1249 +#: library/stdtypes.rst:1250 msgid "updates *s* with its contents repeated *n* times" msgstr "ενημερώνει το *s* με το περιεχόμενό του επαναλαμβανόμενο *n* φορές" -#: library/stdtypes.rst:1252 -msgid "``s.insert(i, x)``" -msgstr "``s.insert(i, x)``" - -#: library/stdtypes.rst:1252 +#: library/stdtypes.rst:1257 msgid "" -"inserts *x* into *s* at the index given by *i* (same as ``s[i:i] = [x]``)" +"If *k* is not equal to ``1``, *t* must have the same length as the slice it " +"is replacing." msgstr "" -"εισάγει το *x* στο *s* στο δείκτη που δίνεται από το *i* (το ίδιο με το " -"``s[i:i] = [x]``)" - -#: library/stdtypes.rst:1256 -msgid "``s.pop()`` or ``s.pop(i)``" -msgstr "``s.pop()`` ή ``s.pop(i)``" +"Αν το *k* δεν είναι ίσο με ``1``, το *t* πρέπει να έχει το ίδιο μήκος με το " +"τμήμα που αντικαθιστά." -#: library/stdtypes.rst:1256 -msgid "retrieves the item at *i* and also removes it from *s*" -msgstr "ανακτά το στοιχείο στο *i* και το αφαιρεί επίσης από το *s*" +#: library/stdtypes.rst:1260 +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 "" +"Η τιμή *n* είναι ένας ακέραιος αριθμός ή ένα αντικείμενο που υλοποιεί " +"την :meth:`~object.__index__`. Οι μηδενικές και αρνητικές τιμές του *n* " +"καθαρίζουν την ακολουθία. Τα στοιχεία της ακολουθίας δεν αντιγράφονται· " +"αναφέρονται πολλές φορές, όπως εξηγείται για το ``s * n``` " +"στο :ref:`typesseq-common`." -#: library/stdtypes.rst:1259 -msgid "``s.remove(x)``" -msgstr "``s.remove(x)``" +#: library/stdtypes.rst:1266 +msgid "Mutable Sequence Methods" +msgstr "Μέθοδοι Μεταβλητών Ακολουθιών (Sequences)" -#: library/stdtypes.rst:1259 -msgid "removes the first item from *s* where ``s[i]`` is equal to *x*" -msgstr "αφαιρεί το πρώτο στοιχείο από το *s* όπου ``s[i]`` είναι ίσο με *x*" +#: library/stdtypes.rst:1267 +msgid "Mutable sequence types also support the following methods:" +msgstr "" +"Οι τύποι μεταβλητών ακολουθιώς υποστηρίζουν επίσης της ακόλουθες μεθόδους:" -#: library/stdtypes.rst:1263 -msgid "``s.reverse()``" -msgstr "``s.reverse()``" +#: library/stdtypes.rst:1276 +msgid "" +"Append *value* to the end of the sequence This is equivalent to writing " +"``seq[len(seq):len(seq)] = [value]``." +msgstr "" +"Eισάγει το *value* στο τέλος της ακολουθίας Αυτό είναι ισοδύναμο με το να " +"γράψουμε ``seq[len(seq):len(seq)] = [value]``." -#: library/stdtypes.rst:1263 -msgid "reverses the items of *s* in place" -msgstr "αντιστρέφει τα στοιχεία του *s*" +#: library/stdtypes.rst:1288 +msgid "" +"Remove all items from *sequence*. This is equivalent to writing ``del " +"sequence[:]``." +msgstr "" +"Αφαιρεί όλα τα στοιχεία από την *sequence*. Αυτό είναι ισοδύναμο με το να " +"γράψουμε ``del sequence[:]``." -#: library/stdtypes.rst:1271 +#: library/stdtypes.rst:1300 msgid "" -"If *k* is not equal to ``1``, *t* must have the same length as the slice it " -"is replacing." +"Create a shallow copy of *sequence*. This is equivalent to writing " +"``sequence[:]``." msgstr "" -"Αν το *k* δεν είναι ίσο με ``1``, το *t* πρέπει να έχει το ίδιο μήκος με το " -"τμήμα που αντικαθιστά." +"Δημιουργεί ένα shallow αντίγραφο του *sequence*. Αυτό είναι ισοδύναμο με το " +"να γράψουμε ``sequence[:]``." -#: library/stdtypes.rst:1274 +#: library/stdtypes.rst:1303 msgid "" -"The optional argument *i* defaults to ``-1``, so that by default the last " -"item is removed and returned." +"The :meth:`!copy` method is not part of " +"the :class:`~collections.abc.MutableSequence` :class:`~abc.ABC`, but most " +"concrete mutable sequence types provide it." msgstr "" -"Το προαιρετικό όρισμα *i* έχει προεπιλεγμένη τιμή ``-1``, έτσι ώστε από " -"default το τελευταίο στοιχείο αφαιρείται και επιστρέφεται." +"Η μέθοδος :meth:`!copy` δεν είναι μέρος " +"της :class:`~collections.abc.MutableSequence` :class:`~abc.ABC`, αλλά οι " +"περισσότερους συγκεκριμένοι μεταβλητοί τύποι ακολουθιών την παρέχουν." -#: library/stdtypes.rst:1278 -msgid ":meth:`remove` raises :exc:`ValueError` when *x* is not found in *s*." +#: library/stdtypes.rst:1314 +msgid "" +"Extend *sequence* with the contents of *iterable*. For the most part, this " +"is the same as writing ``seq[len(seq):len(seq)] = iterable``." msgstr "" -"η :meth:`remove` κάνει raise :exc:`ValueError` όταν το *x* δεν βρίσκεται στο " -"*s*." +"Επεκτείνει το *sequence* με τα περιεχόμενα του *iterable*. Για το μεγαλύτερο " +"μέρος, αυτό είναι το ίδιο με το να γράψουμε ``seq[len(seq):len(seq)] = " +"iterable``." -#: library/stdtypes.rst:1281 +#: library/stdtypes.rst:1325 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." +"Insert *value* into *sequence* at the given *index*. This is equivalent to " +"writing ``sequence[index:index] = [value]``." msgstr "" -"Η μέθοδος :meth:`reverse` τροποποιεί την ακολουθία στη θέση της για " -"οικονομία χώρου όταν αντιστρέφεται μια μεγάλη ακολουθία. Να υπενθυμίσουμε " -"στους χρήστες ότι λειτουργεί με παρενέργεια, δεν επιστρέφει την " -"αντιστραμμένη ακολουθία." +"Εισάγει το *value* στην *sequence* στη δοθείσα θέση *index*. Αυτό είναι " +"ισοδύναμο με το να γράψουμε ``sequence[index:index] = [value]``." -#: library/stdtypes.rst:1286 +#: library/stdtypes.rst:1335 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`). :meth:`!copy` is not part of the :class:" -"`collections.abc.MutableSequence` ABC, but most concrete mutable sequence " -"classes provide it." +"Retrieve the item at *index* and also removes it from *sequence*. By " +"default, the last item in *sequence* is removed and returned." msgstr "" -"η :meth:`clear` και η :meth:`!copy` περιλαμβάνονται για λόγους συνέπειας με " -"τα interfaces των μεταβλητών container που δεν υποστηρίζουν λειτουργίες " -"τμηματοποίησης (όπως τα :class:`dict` και :class:`set`). Η :meth:`!copy` δεν " -"αποτελεί μέρος της :class:`collections.abc.MutableSequence` ABC, αλλά οι " -"περισσότερες κλάσεις μεταβλητών ακολουθιών την παρέχουν." +"Ανακτά το στοιχείο στη θέση *index* και το αφαιρεί επίσης από την " +"*sequence*. Εξ ορισμού, το τελευταίο στοιχείο στην *sequence* αφαιρείται και " +"επιστρέφεται." -#: library/stdtypes.rst:1292 -msgid ":meth:`clear` and :meth:`!copy` methods." -msgstr "μέθοδοι :meth:`clear` και :meth:`!copy`." +#: library/stdtypes.rst:1345 +msgid "Remove the first item from *sequence* where ``sequence[i] == value``." +msgstr "" +"Αφαιρεί το πρώτο στοιχείο από την *sequence* όπου ``sequence[i] == value``." -#: library/stdtypes.rst:1296 +#: library/stdtypes.rst:1356 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`." +"Reverse the items of *sequence* in place. This method maintains economy of " +"space when reversing a large sequence. To remind users that it operates by " +"side-effect, it returns ``None``." msgstr "" -"Η τιμή *n* είναι ένας ακέραιος αριθμός ή ένα αντικείμενο που υλοποιεί την :" -"meth:`~object.__index__`. Οι μηδενικές και αρνητικές τιμές του *n* " -"καθαρίζουν την ακολουθία. Τα στοιχεία της ακολουθίας δεν αντιγράφονται· " -"αναφέρονται πολλές φορές, όπως εξηγείται για το ``s * n``` στο :ref:" -"`typesseq-common`." +"Αντιστρέφει τα στοιχεία της *sequence* στη θέση της. Αυτή η μέθοδος διατηρεί " +"την οικονομία χώρου κατά την αντιστροφή μιας μεγάλης ακολουθίας. Για να " +"θυμίζει στους χρήστες ότι λειτουργεί με παρενέργεια, επιστρέφει το ``None``." -#: library/stdtypes.rst:1305 +#: library/stdtypes.rst:1364 msgid "Lists" msgstr "Λίστες" -#: library/stdtypes.rst:1309 +#: library/stdtypes.rst:1368 msgid "" "Lists are mutable sequences, typically used to store collections of " "homogeneous items (where the precise degree of similarity will vary by " @@ -2489,33 +2485,33 @@ msgstr "" "αποθήκευση συλλογών ομοιογενών στοιχείων (όπου ο ακριβής βαθμός ομοιότητας " "ποικίλλει ανάλογα με εφαρμογή)." -#: library/stdtypes.rst:1315 +#: library/stdtypes.rst:1374 msgid "Lists may be constructed in several ways:" msgstr "Οι λίστες μπορούν να κατασκευαστούν με διάφορους τρόπους:" -#: library/stdtypes.rst:1317 +#: library/stdtypes.rst:1376 msgid "Using a pair of square brackets to denote the empty list: ``[]``" msgstr "" "Χρησιμοποιείστε ένα ζεύγος αγκυλών για να δηλώσετε την κενή λίστα: ``[]``" -#: library/stdtypes.rst:1318 +#: library/stdtypes.rst:1377 msgid "" "Using square brackets, separating items with commas: ``[a]``, ``[a, b, c]``" msgstr "" "Χρησιμοποιώντας αγκύλες, διαχωρίζοντας τα στοιχεία με κόμματα: ``[a]``, " "``[a, b, c]``" -#: library/stdtypes.rst:1319 +#: library/stdtypes.rst:1378 msgid "Using a list comprehension: ``[x for x in iterable]``" msgstr "Χρήση ενός list comprehension: ``[x for x in iterable]``" -#: library/stdtypes.rst:1320 +#: library/stdtypes.rst:1379 msgid "Using the type constructor: ``list()`` or ``list(iterable)``" msgstr "" "Χρήση του κατασκευαστή τύπου (type constructor): ``list()`` ή " "``list(iterable)``" -#: library/stdtypes.rst:1322 +#: library/stdtypes.rst:1381 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 " @@ -2534,7 +2530,7 @@ msgstr "" "'b', 'c']`` και η ``list( (1, 2, 3) )`` επιστρέφει ``[1, 2, 3]``. Αν δεν " "δοθεί κανένα όρισμα, ο κατασκευαστής δημιουργεί μία νέα κενή λίστα, ``[]``." -#: library/stdtypes.rst:1331 +#: library/stdtypes.rst:1390 msgid "" "Many other operations also produce lists, including the :func:`sorted` built-" "in." @@ -2542,17 +2538,17 @@ msgstr "" "Πολλές άλλες λειτουργίες παράγουν επίσης λίστες, συμπεριλαμβανομένης της " "built-in :func:`sorted`." -#: library/stdtypes.rst:1334 +#: library/stdtypes.rst:1393 msgid "" "Lists implement all of the :ref:`common ` and :ref:`mutable " "` sequence operations. Lists also provide the following " "additional method:" msgstr "" -"Οι λίστες υλοποιούν όλες τις :ref:`common ` και :ref:" -"`mutable ` λειτουργίες ακολουθίας. Οι λίστες παρέχουν " -"επίσης την ακόλουθη πρόσθετη μέθοδο:" +"Οι λίστες υλοποιούν όλες τις :ref:`common ` " +"και :ref:`mutable ` λειτουργίες ακολουθίας. Οι λίστες " +"παρέχουν επίσης την ακόλουθη πρόσθετη μέθοδο:" -#: library/stdtypes.rst:1340 +#: library/stdtypes.rst:1399 msgid "" "This method sorts the list in place, using only ``<`` comparisons between " "items. Exceptions are not suppressed - if any comparison operations fail, " @@ -2564,15 +2560,15 @@ msgstr "" "πράξη σύγκρισης, ολόκληρη η λειτουργία ταξινόμησης θα αποτύχει (και η λίστα " "θα παραμείνει πιθανότατα σε μια μερικώς τροποποιημένη κατάσταση)." -#: library/stdtypes.rst:1345 +#: library/stdtypes.rst:1404 msgid "" -":meth:`sort` accepts two arguments that can only be passed by keyword (:ref:" -"`keyword-only arguments `):" +":meth:`sort` accepts two arguments that can only be passed by keyword " +"(:ref:`keyword-only arguments `):" msgstr "" "η :meth:`sort` δέχεται δύο ορίσματα που μπορούν να περάσουν μόνο με τη λέξη-" "κλειδί (:ref:`keyword-only arguments `):" -#: library/stdtypes.rst:1348 +#: library/stdtypes.rst:1407 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 " @@ -2588,7 +2584,7 @@ msgstr "" "(default) ``None`` σημαίνει ότι τα στοιχεία της λίστας ταξινομούνται " "απευθείας χωρίς να υπολογίζεται ξεχωριστή τιμή κλειδιού." -#: library/stdtypes.rst:1355 +#: library/stdtypes.rst:1414 msgid "" "The :func:`functools.cmp_to_key` utility is available to convert a 2.x style " "*cmp* function to a *key* function." @@ -2596,7 +2592,7 @@ msgstr "" "Το utility :func:`functools.cmp_to_key` είναι διαθέσιμο για τη μετατροπή μια " "συνάρτηση *cmp* στυλ 2.x σε συνάρτηση *key*." -#: library/stdtypes.rst:1358 +#: library/stdtypes.rst:1417 msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." @@ -2604,7 +2600,7 @@ msgstr "" "η *reverse* είναι μια λογική (boolean) τιμή. Αν τεθεί σε ``True``, τότε τα " "στοιχεία της λίστας ταξινομούνται σαν να ήταν αντίστροφη κάθε σύγκριση." -#: library/stdtypes.rst:1361 +#: library/stdtypes.rst:1420 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 " @@ -2617,7 +2613,7 @@ msgstr "" "(χρησιμοποιήστε την :func:`sorted` για να ζητήσετε μια νέα περίπτωση " "ταξινομημένης λίστας)." -#: library/stdtypes.rst:1366 +#: library/stdtypes.rst:1425 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 " @@ -2630,14 +2626,14 @@ msgstr "" "περάσματα (για παράδειγμα, ταξινόμηση κατά τμήμα, στη συνέχεια με βάση το " "μισθολογικό κλιμάκιο κτλ)." -#: library/stdtypes.rst:1371 +#: library/stdtypes.rst:1430 msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" -"Για παραδείγματα ταξινόμησης και ένα σύντομο tutorial, δείτε :ref:" -"`sortinghowto`." +"Για παραδείγματα ταξινόμησης και ένα σύντομο tutorial, " +"δείτε :ref:`sortinghowto`." -#: library/stdtypes.rst:1375 +#: library/stdtypes.rst:1434 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 " @@ -2650,17 +2646,17 @@ msgstr "" "κάνει raise :exc:`ValueError` αν ανιχνεύσει ότι η λίστα έχει μεταλλαχθεί " "κατά τη διάρκεια μιας ταξινόμησης." -#: library/stdtypes.rst:1384 +#: library/stdtypes.rst:1443 msgid "Tuples" msgstr "Πλειάδες (Tuples)" -#: library/stdtypes.rst:1388 +#: library/stdtypes.rst:1447 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)." +"homogeneous data is needed (such as allowing storage in a :class:`set` " +"or :class:`dict` instance)." msgstr "" "Οι πλειάδες (tuples) είναι αμετάβλητες ακολουθίες, που συνήθως " "χρησιμοποιούνται για την αποθήκευση συλλογών ετερογενών δεδομένων (όπως οι 2-" @@ -2669,31 +2665,31 @@ msgstr "" "ομοιογενών δεδομένων (όπως για παράδειγμα για να επιτρέπεται η αποθήκευση σε " "ένα :class:`set` ή σε ένα :class:`dict` instance)." -#: library/stdtypes.rst:1396 +#: library/stdtypes.rst:1455 msgid "Tuples may be constructed in a number of ways:" msgstr "Οι πλειάδες (tuples) μπορούν να κατασκευαστούν με διάφορους τρόπους:" -#: library/stdtypes.rst:1398 +#: library/stdtypes.rst:1457 msgid "Using a pair of parentheses to denote the empty tuple: ``()``" msgstr "" "Χρήση ενός ζεύγους παρενθέσεων για να δηλωθεί το κενό tuple (πλειάδα): ``()``" -#: library/stdtypes.rst:1399 +#: library/stdtypes.rst:1458 msgid "Using a trailing comma for a singleton tuple: ``a,`` or ``(a,)``" msgstr "" "Χρήση ενός κόμματος στο τέλος για ένα μοναδικό tuple (πλειάδα): ``a,`` ή " "``(a,)``" -#: library/stdtypes.rst:1400 +#: library/stdtypes.rst:1459 msgid "Separating items with commas: ``a, b, c`` or ``(a, b, c)``" msgstr "Διαχωρισμός στοιχείων με κόμμα: ``a, b, c`` ή ``(a, b, c)``" -#: library/stdtypes.rst:1401 +#: library/stdtypes.rst:1460 msgid "Using the :func:`tuple` built-in: ``tuple()`` or ``tuple(iterable)``" msgstr "" "Χρήση του ενσωματωμένου :func:`tuple`: ``tuple()`` ή ``tuple(iterable)``" -#: library/stdtypes.rst:1403 +#: library/stdtypes.rst:1462 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 " @@ -2712,7 +2708,7 @@ msgstr "" "3] )`` επιστρέφει ``(1, 2, 3)``. Αν δεν δοθεί κανένα όρισμα, ο κατασκευαστής " "δημιουργεί μια ένα κενό tuple, ``()``." -#: library/stdtypes.rst:1411 +#: library/stdtypes.rst:1470 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 " @@ -2727,7 +2723,7 @@ msgstr "" "τρία ορίσματα, ενώ η ``f((a, b, c))`` είναι μια συνάρτηση κλήση συνάρτησης " "με ένα 3-tuple ως μοναδικό όρισμα." -#: library/stdtypes.rst:1417 +#: library/stdtypes.rst:1476 msgid "" "Tuples implement all of the :ref:`common ` sequence " "operations." @@ -2735,22 +2731,22 @@ msgstr "" "Τα Tuples υλοποιούν όλες τις πράξεις ακολουθιών :ref:`common `." -#: library/stdtypes.rst:1420 +#: library/stdtypes.rst:1479 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 "" "Για ετερογενείς συλλογές δεδομένων όπου η πρόσβαση με βάση το όνομα είναι " -"σαφέστερη από την πρόσβαση με βάση το δείκτη, το :func:`collections." -"namedtuple` μπορεί να είναι μια πιο κατάλληλη επιλογή από ένα απλό " -"αντικείμενο tuple (πλειάδα)." +"σαφέστερη από την πρόσβαση με βάση το δείκτη, " +"το :func:`collections.namedtuple` μπορεί να είναι μια πιο κατάλληλη επιλογή " +"από ένα απλό αντικείμενο tuple (πλειάδα)." -#: library/stdtypes.rst:1428 +#: library/stdtypes.rst:1487 msgid "Ranges" msgstr "Εύρη (Ranges)" -#: library/stdtypes.rst:1432 +#: library/stdtypes.rst:1491 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." @@ -2759,10 +2755,10 @@ msgstr "" "συνήθως χρησιμοποιείται για την επανάληψη ενός συγκεκριμένου αριθμού " "επαναλήψεων σε βρόχους :keyword:`for`." -#: library/stdtypes.rst:1439 +#: library/stdtypes.rst:1498 msgid "" -"The arguments to the range constructor must be integers (either built-in :" -"class:`int` or any object that implements the :meth:`~object.__index__` " +"The arguments to the range constructor must be integers (either built-" +"in :class:`int` or any object that implements the :meth:`~object.__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." @@ -2774,7 +2770,7 @@ msgstr "" "*start* παραλείπεται, το προεπιλογή (default) είναι ``0``. Εάν το *step* " "είναι μηδέν, γίνεται raise ένα :exc:`ValueError`." -#: library/stdtypes.rst:1445 +#: library/stdtypes.rst:1504 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``." @@ -2782,7 +2778,7 @@ msgstr "" "Για ένα θετικό *βήμα*, τα περιεχόμενα του range (εύρους) ``r`` καθορίζονται " "από τον τύπο ``r[i] = start + step*i`` όπου ``i >= 0`` και ``r[i] < stop``." -#: library/stdtypes.rst:1449 +#: library/stdtypes.rst:1508 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 " @@ -2792,7 +2788,7 @@ msgstr "" "καθορίζονται από τον τύπο ``r[i] = start + step*i``, αλλά οι περιορισμοί " "είναι ``i >= 0`` και ``r[i] > stop``." -#: library/stdtypes.rst:1453 +#: library/stdtypes.rst:1512 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 " @@ -2803,21 +2799,21 @@ msgstr "" "ερμηνεύονται ως δείκτες από το τέλος της ακολουθίας που καθορίζεται από τους " "θετικούς δείκτες." -#: library/stdtypes.rst:1458 +#: library/stdtypes.rst:1517 msgid "" "Ranges containing absolute values larger than :data:`sys.maxsize` are " -"permitted but some features (such as :func:`len`) may raise :exc:" -"`OverflowError`." +"permitted but some features (such as :func:`len`) may " +"raise :exc:`OverflowError`." msgstr "" "Τα ranges που περιέχουν απόλυτες τιμές μεγαλύτερες από :data:`sys.maxsize` " "είναι επιτρεπτά, αλλά ορισμένα χαρακτηριστικά (όπως :func:`len`) μπορεί να " "κάνουν raise :exc:`OverflowError`." -#: library/stdtypes.rst:1462 +#: library/stdtypes.rst:1521 msgid "Range examples::" msgstr "Παραδείγματα Range::" -#: library/stdtypes.rst:1464 +#: library/stdtypes.rst:1523 msgid "" ">>> list(range(10))\n" "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n" @@ -2849,7 +2845,7 @@ msgstr "" ">>> list(range(1, 0))\n" "[]" -#: library/stdtypes.rst:1479 +#: library/stdtypes.rst:1538 msgid "" "Ranges implement all of the :ref:`common ` sequence " "operations except concatenation and repetition (due to the fact that range " @@ -2862,38 +2858,38 @@ msgstr "" "αυστηρό μοτίβο και η επανάληψη και η συνένωση συνήθως παραβιάζουν αυτό το " "πρότυπο)." -#: library/stdtypes.rst:1486 +#: library/stdtypes.rst:1545 msgid "" "The value of the *start* parameter (or ``0`` if the parameter was not " "supplied)" msgstr "Η τιμή της παραμέτρου *start* (ή ``0`` αν η παράμετρος δεν παρέχεται)" -#: library/stdtypes.rst:1491 +#: library/stdtypes.rst:1550 msgid "The value of the *stop* parameter" msgstr "Η τιμή της παραμέτρου *stop*" -#: library/stdtypes.rst:1495 +#: library/stdtypes.rst:1554 msgid "" "The value of the *step* parameter (or ``1`` if the parameter was not " "supplied)" msgstr "Η τιμή της παραμέτρου *step* (ή ``1`` αν η παράμετρος δεν παρέχεται)" -#: library/stdtypes.rst:1498 +#: library/stdtypes.rst:1557 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 " +"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 "" -"Το πλεονέκτημα του τύπου :class:`range` έναντι ενός κανονικού τύπου :class:" -"`list` ή :class:`tuple` είναι ότι ένα αντικείμενο :class:`range` θα παίρνει " -"πάντα το ίδιο (μικρό) ποσό μνήμης, ανεξάρτητα από το μέγεθος του range που " -"αντιπροσωπεύει (μιας και αποθηκεύει μόνο τις τιμές ``start``, ``stop`` και " -"``step``, υπολογίζοντας τα μεμονωμένα στοιχεία και τις υποπεριοχές όπως " -"απαιτείται)." +"Το πλεονέκτημα του τύπου :class:`range` έναντι ενός κανονικού " +"τύπου :class:`list` ή :class:`tuple` είναι ότι ένα " +"αντικείμενο :class:`range` θα παίρνει πάντα το ίδιο (μικρό) ποσό μνήμης, " +"ανεξάρτητα από το μέγεθος του range που αντιπροσωπεύει (μιας και αποθηκεύει " +"μόνο τις τιμές ``start``, ``stop`` και ``step``, υπολογίζοντας τα μεμονωμένα " +"στοιχεία και τις υποπεριοχές όπως απαιτείται)." -#: library/stdtypes.rst:1504 +#: library/stdtypes.rst:1563 msgid "" "Range objects implement the :class:`collections.abc.Sequence` ABC, and " "provide features such as containment tests, element index lookup, slicing " @@ -2903,7 +2899,7 @@ msgstr "" "και παρέχουν χαρακτηριστικά όπως δοκιμές περιορισμού, αναζήτηση δείκτη " "στοιχείου, τεμαχισμό και υποστήριξη αρνητικών δεικτών (βλ. :ref:`typesseq`):" -#: library/stdtypes.rst:1524 +#: library/stdtypes.rst:1583 msgid "" "Testing range objects for equality with ``==`` and ``!=`` compares them as " "sequences. That is, two range objects are considered equal if they " @@ -2915,22 +2911,22 @@ msgstr "" "Ο έλεγχος των αντικειμένων range για ισότητα με ``==`` και ``!=`` τα " "συγκρίνει ως ακολουθίες. Δηλαδή, δύο αντικείμενα range θεωρούνται ίσα αν " "αντιπροσωπεύουν την ίδια ακολουθία τιμών. (Σημειώστε ότι δύο αντικείμενα " -"range που συγκρίνονται ως ίσα μπορεί να έχουν διαφορετικά :attr:`~range." -"start`, :attr:`~range.stop` και :attr:`~range.step` χαρακτηριστικά, για " -"παράδειγμα ``range(0) == range(2, 1, 3)`` ή ``range(0, 3, 2) == range(0, 4, " -"2)``.)" +"range που συγκρίνονται ως ίσα μπορεί να έχουν " +"διαφορετικά :attr:`~range.start`, :attr:`~range.stop` " +"και :attr:`~range.step` χαρακτηριστικά, για παράδειγμα ``range(0) == " +"range(2, 1, 3)`` ή ``range(0, 3, 2) == range(0, 4, 2)``.)" -#: library/stdtypes.rst:1531 +#: library/stdtypes.rst:1590 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." +"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 "" "Υλοποιείστε την ακολουθία ABC. Υποστηρίξτε την τμηματοποίηση και τους " "αρνητικούς δείκτες. Δοκιμάστε τα :class:`int` αντικείμενα για συμμετοχή σε " "σταθερό χρόνο αντί της επανάληψης σε όλα τα αντικείμενα." -#: library/stdtypes.rst:1537 +#: library/stdtypes.rst:1596 msgid "" "Define '==' and '!=' to compare range objects based on the sequence of " "values they define (instead of comparing based on object identity)." @@ -2939,15 +2935,15 @@ msgstr "" "ακολουθία των τιμών που ορίζουν (αντί να συγκρίνουν με βάση την ταυτότητα " "του αντικειμένου)." -#: library/stdtypes.rst:1542 +#: library/stdtypes.rst:1601 msgid "" "Added the :attr:`~range.start`, :attr:`~range.stop` and :attr:`~range.step` " "attributes." msgstr "" -"Προστέθηκαν τα :attr:`~range.start`, :attr:`~range.stop` και :attr:`~range." -"step` attributes." +"Προστέθηκαν τα :attr:`~range.start`, :attr:`~range.stop` " +"και :attr:`~range.step` attributes." -#: library/stdtypes.rst:1547 +#: library/stdtypes.rst:1606 msgid "" "The `linspace recipe `_ shows how to implement a lazy version of range " @@ -2957,11 +2953,11 @@ msgstr "" "spaced-numbers-linspace/>`_ δείχνει πώς να υλοποιήσετε μια lazy έκδοση του " "range κατάλληλη για εφαρμογές κινητής υποδιαστολής." -#: library/stdtypes.rst:1559 +#: library/stdtypes.rst:1618 msgid "Text and Binary Sequence Type Methods Summary" msgstr "Σύνοψη μεθόδων τύπου κειμένου και δυαδική ακολουθίας" -#: library/stdtypes.rst:1560 +#: library/stdtypes.rst:1619 msgid "" "The following table summarizes the text and binary sequence types methods by " "category." @@ -2969,398 +2965,398 @@ msgstr "" "Ο παρακάτω πίνακας συνοψίζει τις μεθόδους τύπων κειμένου και δυαδική " "ακολουθίας ανά κατηγορία." -#: library/stdtypes.rst:1565 +#: library/stdtypes.rst:1624 msgid "Category" msgstr "Κατηγορία" -#: library/stdtypes.rst:1565 +#: library/stdtypes.rst:1624 msgid ":class:`str` methods" msgstr ":class:`str` methods" -#: library/stdtypes.rst:1565 +#: library/stdtypes.rst:1624 msgid ":class:`bytes` and :class:`bytearray` methods" msgstr "οι μέθοδοι :class:`bytes` και :class:`bytearray`" -#: library/stdtypes.rst:1567 +#: library/stdtypes.rst:1626 msgid "Formatting" msgstr "Μορφοποίηση" -#: library/stdtypes.rst:1567 +#: library/stdtypes.rst:1626 msgid ":meth:`str.format`" msgstr ":meth:`str.format`" -#: library/stdtypes.rst:1569 +#: library/stdtypes.rst:1628 msgid ":meth:`str.format_map`" msgstr ":meth:`str.format_map`" -#: library/stdtypes.rst:1571 +#: library/stdtypes.rst:1630 msgid ":ref:`f-strings`" msgstr ":ref:`f-strings`" -#: library/stdtypes.rst:1573 +#: library/stdtypes.rst:1632 msgid ":ref:`old-string-formatting`" msgstr ":ref:`old-string-formatting`" -#: library/stdtypes.rst:1573 +#: library/stdtypes.rst:1632 msgid ":ref:`bytes-formatting`" msgstr ":ref:`bytes-formatting`" -#: library/stdtypes.rst:1575 +#: library/stdtypes.rst:1634 msgid "Searching and Replacing" msgstr "Αναζήτηση και Αντικατάσταση" -#: library/stdtypes.rst:1575 +#: library/stdtypes.rst:1634 msgid ":meth:`str.find`" msgstr ":meth:`str.find`" -#: library/stdtypes.rst:1575 +#: library/stdtypes.rst:1634 msgid ":meth:`str.rfind`" msgstr ":meth:`str.rfind`" -#: library/stdtypes.rst:1575 +#: library/stdtypes.rst:1634 msgid ":meth:`bytes.find`" msgstr ":meth:`bytes.find`" -#: library/stdtypes.rst:1575 +#: library/stdtypes.rst:1634 msgid ":meth:`bytes.rfind`" msgstr ":meth:`bytes.rfind`" -#: library/stdtypes.rst:1577 +#: library/stdtypes.rst:1636 msgid ":meth:`str.index`" msgstr ":meth:`str.index`" -#: library/stdtypes.rst:1577 +#: library/stdtypes.rst:1636 msgid ":meth:`str.rindex`" msgstr ":meth:`str.rindex`" -#: library/stdtypes.rst:1577 +#: library/stdtypes.rst:1636 msgid ":meth:`bytes.index`" msgstr ":meth:`bytes.index`" -#: library/stdtypes.rst:1577 +#: library/stdtypes.rst:1636 msgid ":meth:`bytes.rindex`" msgstr ":meth:`bytes.rindex`" -#: library/stdtypes.rst:1579 +#: library/stdtypes.rst:1638 msgid ":meth:`str.startswith`" msgstr ":meth:`str.startswith`" -#: library/stdtypes.rst:1579 +#: library/stdtypes.rst:1638 msgid ":meth:`bytes.startswith`" msgstr ":meth:`bytes.startswith`" -#: library/stdtypes.rst:1581 +#: library/stdtypes.rst:1640 msgid ":meth:`str.endswith`" msgstr ":meth:`str.endswith`" -#: library/stdtypes.rst:1581 +#: library/stdtypes.rst:1640 msgid ":meth:`bytes.endswith`" msgstr ":meth:`bytes.endswith`" -#: library/stdtypes.rst:1583 +#: library/stdtypes.rst:1642 msgid ":meth:`str.count`" msgstr ":meth:`str.count`" -#: library/stdtypes.rst:1583 +#: library/stdtypes.rst:1642 msgid ":meth:`bytes.count`" msgstr ":meth:`bytes.count`" -#: library/stdtypes.rst:1585 +#: library/stdtypes.rst:1644 msgid ":meth:`str.replace`" msgstr ":meth:`str.replace`" -#: library/stdtypes.rst:1585 +#: library/stdtypes.rst:1644 msgid ":meth:`bytes.replace`" msgstr ":meth:`bytes.replace`" -#: library/stdtypes.rst:1587 +#: library/stdtypes.rst:1646 msgid "Splitting and Joining" msgstr "Διαχωρισμός και Ένωση" -#: library/stdtypes.rst:1587 +#: library/stdtypes.rst:1646 msgid ":meth:`str.split`" msgstr ":meth:`str.split`" -#: library/stdtypes.rst:1587 +#: library/stdtypes.rst:1646 msgid ":meth:`str.rsplit`" msgstr ":meth:`str.rsplit`" -#: library/stdtypes.rst:1587 +#: library/stdtypes.rst:1646 msgid ":meth:`bytes.split`" msgstr ":meth:`bytes.split`" -#: library/stdtypes.rst:1587 +#: library/stdtypes.rst:1646 msgid ":meth:`bytes.rsplit`" msgstr ":meth:`bytes.rsplit`" -#: library/stdtypes.rst:1589 +#: library/stdtypes.rst:1648 msgid ":meth:`str.splitlines`" msgstr ":meth:`str.splitlines`" -#: library/stdtypes.rst:1589 +#: library/stdtypes.rst:1648 msgid ":meth:`bytes.splitlines`" msgstr ":meth:`bytes.splitlines`" -#: library/stdtypes.rst:1591 +#: library/stdtypes.rst:1650 msgid ":meth:`str.partition`" msgstr ":meth:`str.partition`" -#: library/stdtypes.rst:1591 +#: library/stdtypes.rst:1650 msgid ":meth:`bytes.partition`" msgstr ":meth:`bytes.partition`" -#: library/stdtypes.rst:1593 +#: library/stdtypes.rst:1652 msgid ":meth:`str.rpartition`" msgstr ":meth:`str.rpartition`" -#: library/stdtypes.rst:1593 +#: library/stdtypes.rst:1652 msgid ":meth:`bytes.rpartition`" msgstr ":meth:`bytes.rpartition`" -#: library/stdtypes.rst:1595 +#: library/stdtypes.rst:1654 msgid ":meth:`str.join`" msgstr ":meth:`str.join`" -#: library/stdtypes.rst:1595 +#: library/stdtypes.rst:1654 msgid ":meth:`bytes.join`" msgstr ":meth:`bytes.join`" -#: library/stdtypes.rst:1597 +#: library/stdtypes.rst:1656 msgid "String Classification" msgstr "Ταξινόμηση Συμβολοσειρών" -#: library/stdtypes.rst:1597 +#: library/stdtypes.rst:1656 msgid ":meth:`str.isalpha`" msgstr ":meth:`str.isalpha`" -#: library/stdtypes.rst:1597 +#: library/stdtypes.rst:1656 msgid ":meth:`bytes.isalpha`" msgstr ":meth:`bytes.isalpha`" -#: library/stdtypes.rst:1599 +#: library/stdtypes.rst:1658 msgid ":meth:`str.isdecimal`" msgstr ":meth:`str.isdecimal`" -#: library/stdtypes.rst:1601 +#: library/stdtypes.rst:1660 msgid ":meth:`str.isdigit`" msgstr ":meth:`str.isdigit`" -#: library/stdtypes.rst:1601 +#: library/stdtypes.rst:1660 msgid ":meth:`bytes.isdigit`" msgstr ":meth:`bytes.isdigit`" -#: library/stdtypes.rst:1603 +#: library/stdtypes.rst:1662 msgid ":meth:`str.isnumeric`" msgstr ":meth:`str.isnumeric`" -#: library/stdtypes.rst:1605 +#: library/stdtypes.rst:1664 msgid ":meth:`str.isalnum`" msgstr ":meth:`str.isalnum`" -#: library/stdtypes.rst:1605 +#: library/stdtypes.rst:1664 msgid ":meth:`bytes.isalnum`" msgstr ":meth:`bytes.isalnum`" -#: library/stdtypes.rst:1607 +#: library/stdtypes.rst:1666 msgid ":meth:`str.isidentifier`" msgstr ":meth:`str.isidentifier`" -#: library/stdtypes.rst:1609 +#: library/stdtypes.rst:1668 msgid ":meth:`str.islower`" msgstr ":meth:`str.islower`" -#: library/stdtypes.rst:1609 +#: library/stdtypes.rst:1668 msgid ":meth:`bytes.islower`" msgstr ":meth:`bytes.islower`" -#: library/stdtypes.rst:1611 +#: library/stdtypes.rst:1670 msgid ":meth:`str.isupper`" msgstr ":meth:`str.isupper`" -#: library/stdtypes.rst:1611 +#: library/stdtypes.rst:1670 msgid ":meth:`bytes.isupper`" msgstr ":meth:`bytes.isupper`" -#: library/stdtypes.rst:1613 +#: library/stdtypes.rst:1672 msgid ":meth:`str.istitle`" msgstr ":meth:`str.istitle`" -#: library/stdtypes.rst:1613 +#: library/stdtypes.rst:1672 msgid ":meth:`bytes.istitle`" msgstr ":meth:`bytes.istitle`" -#: library/stdtypes.rst:1615 +#: library/stdtypes.rst:1674 msgid ":meth:`str.isspace`" msgstr ":meth:`str.isspace`" -#: library/stdtypes.rst:1615 +#: library/stdtypes.rst:1674 msgid ":meth:`bytes.isspace`" msgstr ":meth:`bytes.isspace`" -#: library/stdtypes.rst:1617 +#: library/stdtypes.rst:1676 msgid ":meth:`str.isprintable`" msgstr ":meth:`str.isprintable`" -#: library/stdtypes.rst:1619 +#: library/stdtypes.rst:1678 msgid "Case Manipulation" msgstr "Χειρισμός υποθέσεων" -#: library/stdtypes.rst:1619 +#: library/stdtypes.rst:1678 msgid ":meth:`str.lower`" msgstr ":meth:`str.lower`" -#: library/stdtypes.rst:1619 +#: library/stdtypes.rst:1678 msgid ":meth:`bytes.lower`" msgstr ":meth:`bytes.lower`" -#: library/stdtypes.rst:1621 +#: library/stdtypes.rst:1680 msgid ":meth:`str.upper`" msgstr ":meth:`str.upper`" -#: library/stdtypes.rst:1621 +#: library/stdtypes.rst:1680 msgid ":meth:`bytes.upper`" msgstr ":meth:`bytes.upper`" -#: library/stdtypes.rst:1623 +#: library/stdtypes.rst:1682 msgid ":meth:`str.casefold`" msgstr ":meth:`str.casefold`" -#: library/stdtypes.rst:1625 +#: library/stdtypes.rst:1684 msgid ":meth:`str.capitalize`" msgstr ":meth:`str.capitalize`" -#: library/stdtypes.rst:1625 +#: library/stdtypes.rst:1684 msgid ":meth:`bytes.capitalize`" msgstr ":meth:`bytes.capitalize`" -#: library/stdtypes.rst:1627 +#: library/stdtypes.rst:1686 msgid ":meth:`str.title`" msgstr ":meth:`str.title`" -#: library/stdtypes.rst:1627 +#: library/stdtypes.rst:1686 msgid ":meth:`bytes.title`" msgstr ":meth:`bytes.title`" -#: library/stdtypes.rst:1629 +#: library/stdtypes.rst:1688 msgid ":meth:`str.swapcase`" msgstr ":meth:`str.swapcase`" -#: library/stdtypes.rst:1629 +#: library/stdtypes.rst:1688 msgid ":meth:`bytes.swapcase`" msgstr ":meth:`bytes.swapcase`" -#: library/stdtypes.rst:1631 +#: library/stdtypes.rst:1690 msgid "Padding and Stripping" msgstr "Συμπλήρωση και Αφαίρεση" -#: library/stdtypes.rst:1631 +#: library/stdtypes.rst:1690 msgid ":meth:`str.ljust`" msgstr ":meth:`str.ljust`" -#: library/stdtypes.rst:1631 +#: library/stdtypes.rst:1690 msgid ":meth:`str.rjust`" msgstr ":meth:`str.rjust`" -#: library/stdtypes.rst:1631 +#: library/stdtypes.rst:1690 msgid ":meth:`bytes.ljust`" msgstr ":meth:`bytes.ljust`" -#: library/stdtypes.rst:1631 +#: library/stdtypes.rst:1690 msgid ":meth:`bytes.rjust`" msgstr ":meth:`bytes.rjust`" -#: library/stdtypes.rst:1633 +#: library/stdtypes.rst:1692 msgid ":meth:`str.center`" msgstr ":meth:`str.center`" -#: library/stdtypes.rst:1633 +#: library/stdtypes.rst:1692 msgid ":meth:`bytes.center`" msgstr ":meth:`bytes.center`" -#: library/stdtypes.rst:1635 +#: library/stdtypes.rst:1694 msgid ":meth:`str.expandtabs`" msgstr ":meth:`str.expandtabs`" -#: library/stdtypes.rst:1635 +#: library/stdtypes.rst:1694 msgid ":meth:`bytes.expandtabs`" msgstr ":meth:`bytes.expandtabs`" -#: library/stdtypes.rst:1637 +#: library/stdtypes.rst:1696 msgid ":meth:`str.strip`" msgstr ":meth:`str.strip`" -#: library/stdtypes.rst:1637 +#: library/stdtypes.rst:1696 msgid ":meth:`bytes.strip`" msgstr ":meth:`bytes.strip`" -#: library/stdtypes.rst:1639 +#: library/stdtypes.rst:1698 msgid ":meth:`str.lstrip`" msgstr ":meth:`str.lstrip`" -#: library/stdtypes.rst:1639 +#: library/stdtypes.rst:1698 msgid ":meth:`str.rstrip`" msgstr ":meth:`str.rstrip`" -#: library/stdtypes.rst:1639 +#: library/stdtypes.rst:1698 msgid ":meth:`bytes.lstrip`" msgstr ":meth:`bytes.lstrip`" -#: library/stdtypes.rst:1639 +#: library/stdtypes.rst:1698 msgid ":meth:`bytes.rstrip`" msgstr ":meth:`bytes.rstrip`" -#: library/stdtypes.rst:1641 +#: library/stdtypes.rst:1700 msgid "Translation and Encoding" msgstr "Μετάφραση και Κωδικοποίηση" -#: library/stdtypes.rst:1641 +#: library/stdtypes.rst:1700 msgid ":meth:`str.translate`" msgstr ":meth:`str.translate`" -#: library/stdtypes.rst:1641 +#: library/stdtypes.rst:1700 msgid ":meth:`bytes.translate`" msgstr ":meth:`bytes.translate`" -#: library/stdtypes.rst:1643 +#: library/stdtypes.rst:1702 msgid ":meth:`str.maketrans`" msgstr ":meth:`str.maketrans`" -#: library/stdtypes.rst:1643 +#: library/stdtypes.rst:1702 msgid ":meth:`bytes.maketrans`" msgstr ":meth:`bytes.maketrans`" -#: library/stdtypes.rst:1645 +#: library/stdtypes.rst:1704 msgid ":meth:`str.encode`" msgstr ":meth:`str.encode`" -#: library/stdtypes.rst:1647 +#: library/stdtypes.rst:1706 msgid ":meth:`bytes.decode`" msgstr ":meth:`bytes.decode`" -#: library/stdtypes.rst:1653 +#: library/stdtypes.rst:1712 msgid "Text Sequence Type --- :class:`str`" msgstr "Τύπος Ακολουθίας (Sequence) Κειμένου --- :class:`str`" -#: library/stdtypes.rst:1655 +#: library/stdtypes.rst:1714 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:" +"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 "" -"Τα δεδομένα κειμένου στην Python αντιμετωπίζονται με αντικείμενα :class:" -"`str` ή :dfn:`strings`. Τα αλφαριθμητικά (strings) είναι αμετάβλητες :ref:" -"`sequences ` των Unicode points. Τα αλφαριθμητικά γράφονται με " -"διάφορους τρόπους:" +"Τα δεδομένα κειμένου στην Python αντιμετωπίζονται με " +"αντικείμενα :class:`str` ή :dfn:`strings`. Τα αλφαριθμητικά (strings) είναι " +"αμετάβλητες :ref:`sequences ` των Unicode points. Τα " +"αλφαριθμητικά γράφονται με διάφορους τρόπους:" -#: library/stdtypes.rst:1660 +#: library/stdtypes.rst:1719 msgid "Single quotes: ``'allows embedded \"double\" quotes'``" msgstr "Απλά εισαγωγικά: ``'allows embedded \"double\" quotes'``" -#: library/stdtypes.rst:1661 +#: library/stdtypes.rst:1720 msgid "Double quotes: ``\"allows embedded 'single' quotes\"``" msgstr "Διπλά εισαγωγικά: ``'allows embedded \"double\" quotes'``" -#: library/stdtypes.rst:1662 +#: library/stdtypes.rst:1721 msgid "" "Triple quoted: ``'''Three single quotes'''``, ``\"\"\"Three double " "quotes\"\"\"``" @@ -3368,7 +3364,7 @@ msgstr "" "Τριπλά εισαγωγικά: ``'''Three single quotes'''``, ``\"\"\"Three double " "quotes\"\"\"``" -#: library/stdtypes.rst:1664 +#: library/stdtypes.rst:1723 msgid "" "Triple quoted strings may span multiple lines - all associated whitespace " "will be included in the string literal." @@ -3376,7 +3372,7 @@ msgstr "" "Τα αλφαριθμητικά σε τριπλά εισαγωγικά μπορούν να καλύπτουν πολλές γραμμές - " "όλα τα σχετικά κενά θα συμπεριληφθούν στο αλφαριθμητικό." -#: library/stdtypes.rst:1667 +#: library/stdtypes.rst:1726 msgid "" "String literals that are part of a single expression and have only " "whitespace between them will be implicitly converted to a single string " @@ -3386,7 +3382,7 @@ msgstr "" "έχουν μόνο κενά μεταξύ τους, θα μετατραπούν σιωπηρά σε ένα ενιαίο " "αλφαριθμητικό literal. Δηλαδή, ``(\"spam \" \"eggs\") == \"spam eggs\"``." -#: library/stdtypes.rst:1671 +#: library/stdtypes.rst:1730 msgid "" "See :ref:`strings` for more about the various forms of string literal, " "including supported :ref:`escape sequences `, and the " @@ -3398,7 +3394,7 @@ msgstr "" "(\"raw\") πρόθεμα που απενεργοποιεί την επεξεργασία των περισσότερων " "ακολουθιών διαφυγής." -#: library/stdtypes.rst:1675 +#: library/stdtypes.rst:1734 msgid "" "Strings may also be created from other objects using the :class:`str` " "constructor." @@ -3406,7 +3402,7 @@ msgstr "" "Τα αλφαριθμητικά (strings) μπορούν επίσης να δημιουργηθούν από άλλα " "αντικείμενα χρησιμοποιώντας τον constructor :class:`str`." -#: library/stdtypes.rst:1678 +#: library/stdtypes.rst:1737 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]``." @@ -3415,17 +3411,17 @@ msgstr "" "συμβολοσειράς (string) παράγει συμβολοσειρές μήκους 1. Δηλαδή, για μια μη " "κενή συμβολοσειρά *s*, ``s[0] == s[0:1]``." -#: library/stdtypes.rst:1684 +#: library/stdtypes.rst:1743 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." +"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 "" -"Δεν υπάρχει επίσης μεταβλητός τύπος συμβολοσειράς (string), αλλά το :meth:" -"`str.join` ή το :class:`io.StringIO` μπορεί να χρησιμοποιηθεί για την " -"αποτελεσματική κατασκευή συμβολοσειρών από πολλαπλά μέρη." +"Δεν υπάρχει επίσης μεταβλητός τύπος συμβολοσειράς (string), αλλά " +"το :meth:`str.join` ή το :class:`io.StringIO` μπορεί να χρησιμοποιηθεί για " +"την αποτελεσματική κατασκευή συμβολοσειρών από πολλαπλά μέρη." -#: library/stdtypes.rst:1688 +#: library/stdtypes.rst:1747 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 " @@ -3436,7 +3432,7 @@ msgstr "" "επίδραση στη σημασία των αλφαριθμητικών και δεν μπορεί να συνδυαστεί με το " "πρόθεμα ``r``." -#: library/stdtypes.rst:1700 +#: library/stdtypes.rst:1761 msgid "" "Return a :ref:`string ` version of *object*. If *object* is not " "provided, returns the empty string. Otherwise, the behavior of ``str()`` " @@ -3446,14 +3442,14 @@ msgstr "" "δεν παρέχεται, επιστρέφει κενό αλφαριθμητικό. Διαφορετικά, η συμπεριφορά " "της ``str()`` εξαρτάται από το αν δίνεται *encoding* ή *errors*, ως εξής." -#: library/stdtypes.rst:1704 +#: library/stdtypes.rst:1765 msgid "" -"If neither *encoding* nor *errors* is given, ``str(object)`` returns :meth:" -"`type(object).__str__(object) `, 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 :func:" -"`repr(object) `." +"If neither *encoding* nor *errors* is given, ``str(object)`` " +"returns :meth:`type(object).__str__(object) `, 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 :func:`repr(object) `." msgstr "" "Αν δεν έχει δοθεί ούτε *encoding* ούτε *errors*, το ``str(object)`` " "επιστρέφει :meth:`type(object).__str__(object) `, το οποίο " @@ -3462,28 +3458,28 @@ msgstr "" "Εάν το *object* δεν έχει την :meth:`~object.__str__`, τότε η :func:`str` " "επιστρέφει τη μέθοδο :func:`repr(object) `." -#: library/stdtypes.rst:1716 +#: library/stdtypes.rst:1777 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 " +"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." +"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 "" "Εάν δίνεται τουλάχιστον ένα από τα *encoding* ή *errors*, το *object* θα " -"πρέπει να είναι ένα :term:`bytes-like object` (π.χ. :class:`bytes` ή :class:" -"`bytearray`). Σε αυτή την περίπτωση, αν το *object* είναι ένα αντικείμενο :" -"class:`bytes` (ή :class:`bytearray`), τότε το ``str(bytes, encoding, " -"errors)`` είναι ισοδύναμο με το :meth:`bytes.decode(encoding, errors) `. Διαφορετικά, το αντικείμενο bytes που υποκρύπτει το αντικείμενο " -"buffer λαμβάνεται πριν από την κλήση του :meth:`bytes.decode`. Δείτε :ref:" -"`binaryseq` και :ref:`bufferobjects` για πληροφορίες σχετικά με τα " -"αντικείμενα buffer." +"πρέπει να είναι ένα :term:`bytes-like object` (π.χ. :class:`bytes` " +"ή :class:`bytearray`). Σε αυτή την περίπτωση, αν το *object* είναι ένα " +"αντικείμενο :class:`bytes` (ή :class:`bytearray`), τότε το ``str(bytes, " +"encoding, errors)`` είναι ισοδύναμο με το :meth:`bytes.decode(encoding, " +"errors) `. Διαφορετικά, το αντικείμενο bytes που υποκρύπτει " +"το αντικείμενο buffer λαμβάνεται πριν από την κλήση " +"του :meth:`bytes.decode`. Δείτε :ref:`binaryseq` και :ref:`bufferobjects` " +"για πληροφορίες σχετικά με τα αντικείμενα buffer." -#: library/stdtypes.rst:1725 +#: library/stdtypes.rst:1786 msgid "" "Passing a :class:`bytes` object to :func:`str` without the *encoding* or " "*errors* arguments falls under the first case of returning the informal " @@ -3495,7 +3491,7 @@ msgstr "" "αναπαράστασης συμβολοσειράς (string) (δείτε επίσης την επιλογή :option:`-b` " "της γραμμής εντολών για Python). Για παράδειγμα::" -#: library/stdtypes.rst:1730 +#: library/stdtypes.rst:1791 msgid "" ">>> str(b'Zoot!')\n" "\"b'Zoot!'\"" @@ -3503,12 +3499,12 @@ msgstr "" ">>> str(b'Zoot!')\n" "\"b'Zoot!'\"" -#: library/stdtypes.rst:1733 +#: library/stdtypes.rst:1794 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." +"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 "" "Για περισσότερες πληροφορίες σχετικά με την κλάση ``str`` και τις μεθόδους " "της, δείτε :ref:`textseq` και την ενότητα :ref:`string-methods` παρακάτω. " @@ -3516,11 +3512,11 @@ msgstr "" "ενότητες :ref:`f-strings` και :ref:`formatstrings`. Επιπλέον, δείτε την " "ενότητα :ref:`stringservices`." -#: library/stdtypes.rst:1745 +#: library/stdtypes.rst:1806 msgid "String Methods" msgstr "Μέθοδοι Συμβολοσειράς (String)" -#: library/stdtypes.rst:1750 +#: library/stdtypes.rst:1811 msgid "" "Strings implement all of the :ref:`common ` sequence " "operations, along with the additional methods described below." @@ -3529,14 +3525,14 @@ msgstr "" "` ακολουθιών, μαζί με τις πρόσθετες μεθόδους που " "περιγράφονται παρακάτω." -#: library/stdtypes.rst:1753 +#: library/stdtypes.rst:1814 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`)." +"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 "" "Οι συμβολοσειρές (string) υποστηρίζουν επίσης δύο στυλ μορφοποίησης " "συμβολοσειρών, το ένα παρέχει ένα μεγάλο βαθμό ευελιξίας και προσαρμογής " @@ -3546,7 +3542,7 @@ msgstr "" "χρησιμοποιηθεί σωστά, αλλά είναι συχνά ταχύτερο για τις περιπτώσεις που " "μπορεί να χειριστεί (:ref:`old-string-formatting`)." -#: library/stdtypes.rst:1760 +#: library/stdtypes.rst:1821 msgid "" "The :ref:`textservices` section of the standard library covers a number of " "other modules that provide various text related utilities (including regular " @@ -3557,7 +3553,7 @@ msgstr "" "σχετίζονται με το κείμενο (συμπεριλαμβανομένης της υποστήριξης των κανονικών " "εκφράσεων στην ενότητα :mod:`re`)." -#: library/stdtypes.rst:1766 +#: library/stdtypes.rst:1827 msgid "" "Return a copy of the string with its first character capitalized and the " "rest lowercased." @@ -3565,7 +3561,7 @@ msgstr "" "Επιστρέφει ένα αντίγραφο της συμβολοσειράς (string) με τον πρώτο χαρακτήρα " "κεφαλαίο και τα υπόλοιπα με πεζά γράμματα." -#: library/stdtypes.rst:1769 +#: library/stdtypes.rst:1830 msgid "" "The first character is now put into titlecase rather than uppercase. This " "means that characters like digraphs will only have their first letter " @@ -3575,7 +3571,7 @@ msgstr "" "σημαίνει ότι χαρακτήρες όπως οι διγράφοι (digraphs) θα έχουν μόνο το πρώτο " "γράμμα τους με κεφαλαίο, αντί για όλους τους χαρακτήρες." -#: library/stdtypes.rst:1776 +#: library/stdtypes.rst:1837 msgid "" "Return a casefolded copy of the string. Casefolded strings may be used for " "caseless matching." @@ -3583,13 +3579,13 @@ msgstr "" "Επιστρέφει ένα αντίγραφο της συμβολοσειράς (string) σε casefolded μορφή. Οι " "casefolded συμβολοσειρές μπορούν να χρησιμοποιηθούν για caseless matching." -#: library/stdtypes.rst:1779 +#: library/stdtypes.rst:1840 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\"``." +"already lowercase, :meth:`lower` would do nothing to " +"``'ß'``; :meth:`casefold` converts it to ``\"ss\"``." msgstr "" "Το casefolding είναι παρόμοιο με το lowercasing αλλά πιο επιθετικό επειδή " "έχει ως στόχο να αφαιρέσει όλες τις διακρίσεις της πεζότητας σε μια " @@ -3597,7 +3593,7 @@ msgstr "" "ισοδυναμεί με ``\"ss\"``. Αφού είναι ήδη πεζό, η :meth:`lower` δεν θα έκανε " "τίποτα στο ``'ß'``· η :meth:`casefold` το μετατρέπει σε ``\"ss\"``." -#: library/stdtypes.rst:1785 +#: library/stdtypes.rst:1846 msgid "" "The casefolding algorithm is `described in section 3.13 'Default Case " "Folding' of the Unicode Standard `__." -#: library/stdtypes.rst:1794 +#: library/stdtypes.rst:1855 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 " @@ -3618,7 +3614,7 @@ msgstr "" "ένα κενό ASCII). Η αρχική συμβολοσειρά επιστρέφεται εάν το *width* είναι " "μικρότερο ή ίσο με το ``len(s)``. Για παράδειγμα::" -#: library/stdtypes.rst:1798 +#: library/stdtypes.rst:1859 msgid "" ">>> 'Python'.center(10)\n" "' Python '\n" @@ -3634,7 +3630,7 @@ msgstr "" ">>> 'Python'.center(4)\n" "'Python'" -#: library/stdtypes.rst:1808 +#: library/stdtypes.rst:1869 msgid "" "Return the number of non-overlapping occurrences of substring *sub* in the " "range [*start*, *end*]. Optional arguments *start* and *end* are " @@ -3644,7 +3640,7 @@ msgstr "" "της υποομάδας *sub* στο εύρος [*start*, *end*]. Τα προαιρετικά ορίσματα " "*start* και *end* ερμηνεύονται όπως στο slice notation." -#: library/stdtypes.rst:1812 +#: library/stdtypes.rst:1873 msgid "" "If *sub* is empty, returns the number of empty strings between characters " "which is the length of the string plus one. For example::" @@ -3653,7 +3649,7 @@ msgstr "" "(strings) μεταξύ των χαρακτήρων που είναι το μήκος της συμβολοσειράς συν " "ένα. Για παράδειγμα::" -#: library/stdtypes.rst:1815 +#: library/stdtypes.rst:1876 msgid "" ">>> 'spam, spam, spam'.count('spam')\n" "3\n" @@ -3677,11 +3673,11 @@ msgstr "" ">>> 'spam, spam, spam'.count('')\n" "17" -#: library/stdtypes.rst:1828 +#: library/stdtypes.rst:1889 msgid "Return the string encoded to :class:`bytes`." msgstr "Επιστρέφει την συμβολοσειρά (string) κωδικοποιημένη σε :class:`bytes`." -#: library/stdtypes.rst:3202 +#: library/stdtypes.rst:3337 msgid "" "*encoding* defaults to ``'utf-8'``; see :ref:`standard-encodings` for " "possible values." @@ -3689,33 +3685,34 @@ msgstr "" "το *encoding* έχει default σε ``'utf-8'``- δείτε :ref:`standard-encodings` " "για πιθανές τιμές." -#: library/stdtypes.rst:1833 +#: library/stdtypes.rst:1894 msgid "" "*errors* controls how encoding errors are handled. If ``'strict'`` (the " "default), a :exc:`UnicodeError` exception is raised. Other possible values " "are ``'ignore'``, ``'replace'``, ``'xmlcharrefreplace'``, " -"``'backslashreplace'`` and any other name registered via :func:`codecs." -"register_error`. See :ref:`error-handlers` for details." +"``'backslashreplace'`` and any other name registered " +"via :func:`codecs.register_error`. See :ref:`error-handlers` for details." msgstr "" "το *errors* ελέγχει τον τρόπο χειρισμού των σφαλμάτων κωδικοποίησης. Εάν " -"είναι ``'strict'`` (το default), τότε γίνεται raise μια εξαίρεση :exc:" -"`UnicodeError`. Άλλες πιθανές τιμές είναι τα ``'ignore'``, ``'replace'``, " -"``'xmlcharrefreplace'``, ``'backslashreplace'`` και οποιοδήποτε άλλο όνομα " -"που έχει καταχωρηθεί μέσω του :func:`codecs.register_error`. Δείτε το :ref:" -"`error-handlers` για λεπτομέρειες." +"είναι ``'strict'`` (το default), τότε γίνεται raise μια " +"εξαίρεση :exc:`UnicodeError`. Άλλες πιθανές τιμές είναι τα ``'ignore'``, " +"``'replace'``, ``'xmlcharrefreplace'``, ``'backslashreplace'`` και " +"οποιοδήποτε άλλο όνομα που έχει καταχωρηθεί μέσω " +"του :func:`codecs.register_error`. Δείτε το :ref:`error-handlers` για " +"λεπτομέρειες." -#: library/stdtypes.rst:1840 +#: library/stdtypes.rst:1901 msgid "" "For performance reasons, the value of *errors* is not checked for validity " -"unless an encoding error actually occurs, :ref:`devmode` is enabled or a :" -"ref:`debug build ` is used. For example::" +"unless an encoding error actually occurs, :ref:`devmode` is enabled or " +"a :ref:`debug build ` is used. For example::" msgstr "" "Για λόγους απόδοσης, η τιμή των *errors* δεν ελέγχεται ως προς την " -"εγκυρότητα εκτός αν όντως προκύψει σφάλμα κωδικοποίησης, αν το :ref:" -"`devmode` είναι ενεργοποιημένο ή αν ένα :ref:`debug build ` " -"χρησιμοποιείται. Για παράδειγμα::" +"εγκυρότητα εκτός αν όντως προκύψει σφάλμα κωδικοποίησης, αν " +"το :ref:`devmode` είναι ενεργοποιημένο ή αν ένα :ref:`debug build ` χρησιμοποιείται. Για παράδειγμα::" -#: library/stdtypes.rst:1846 +#: library/stdtypes.rst:1907 msgid "" ">>> encoded_str_to_bytes = 'Python'.encode()\n" ">>> type(encoded_str_to_bytes)\n" @@ -3729,19 +3726,19 @@ msgstr "" ">>> encoded_str_to_bytes\n" "b'Python'" -#: library/stdtypes.rst:3221 +#: library/stdtypes.rst:3356 msgid "Added support for keyword arguments." msgstr "Επιπρόσθετη υποστήριξη για keyword ορίσματα." -#: library/stdtypes.rst:3224 +#: library/stdtypes.rst:3359 msgid "" -"The value of the *errors* argument is now checked in :ref:`devmode` and in :" -"ref:`debug mode `." +"The value of the *errors* argument is now checked in :ref:`devmode` and " +"in :ref:`debug mode `." msgstr "" -"Η τιμή του όρου *errors* ελέγχεται τώρα στο :ref:`devmode` και στο :ref:" -"`debug mode `." +"Η τιμή του όρου *errors* ελέγχεται τώρα στο :ref:`devmode` και " +"στο :ref:`debug mode `." -#: library/stdtypes.rst:1863 +#: library/stdtypes.rst:1924 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. " @@ -3756,7 +3753,7 @@ msgstr "" "*end*, η σύγκριση σταματά σε αυτή τη θέση. Χρησιμοποιώντας *start* και *end* " "είναι ισοδύναμο με την ``str[start:end].endswith(suffix)``. Για παράδειγμα::" -#: library/stdtypes.rst:1869 +#: library/stdtypes.rst:1930 msgid "" ">>> 'Python'.endswith('on')\n" "True\n" @@ -3776,11 +3773,11 @@ msgstr "" ">>> 'Python is amazing'.endswith('is', 0, 9)\n" "True" -#: library/stdtypes.rst:1878 +#: library/stdtypes.rst:1939 msgid "See also :meth:`startswith` and :meth:`removesuffix`." msgstr "Δείτε επίσης :meth:`startswith` και :meth:`removesuffix`." -#: library/stdtypes.rst:1883 +#: library/stdtypes.rst:1944 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 " @@ -3809,7 +3806,7 @@ msgstr "" "αμετάβλητος και η τρέχουσα στήλη αυξάνεται κατά ένα, ανεξάρτητα από τον " "τρόπο αναπαράστασης του χαρακτήρα όταν τυπώνεται. Για παράδειγμα::" -#: library/stdtypes.rst:1896 +#: library/stdtypes.rst:1957 msgid "" ">>> '01\\t012\\t0123\\t01234'.expandtabs()\n" "'01 012 0123 01234'\n" @@ -3827,28 +3824,45 @@ msgstr "" "01 012\n" "0123 01234" -#: library/stdtypes.rst:1907 +#: library/stdtypes.rst:1968 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." +"interpreted as in slice notation. Return ``-1`` if *sub* is not found. For " +"example::" msgstr "" "Επιστρέφει τον χαμηλότερο δείκτη στη συμβολοσειρά (string) όπου η υπό-" "συμβολοσειρά *sub* βρίσκεται μέσα στο υποσύνολο (slice) ``s[start:end]``. " "Τα προαιρετικά ορίσματα *start* και *end* ερμηνεύονται όπως στο notation του " -"υποσυνόλου. Επιστρέφει ``-1`` αν δεν βρεθεί το *sub*." +"υποσυνόλου. Επιστρέφει ``-1`` αν δεν βρεθεί το *sub*. Για παράδειγμα::" + +#: library/stdtypes.rst:1973 +msgid "" +">>> 'spam, spam, spam'.find('sp')\n" +"0\n" +">>> 'spam, spam, spam'.find('sp', 5)\n" +"6" +msgstr "" +">>> 'spam, spam, spam'.find('sp')\n" +"0\n" +">>> 'spam, spam, spam'.find('sp', 5)\n" +"6" + +#: library/stdtypes.rst:1978 +msgid "See also :meth:`rfind` and :meth:`index`." +msgstr "Δείτε επίσης :meth:`rfind` και :meth:`index`." -#: library/stdtypes.rst:1913 +#: library/stdtypes.rst:1982 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::" +"position of *sub*. To check if *sub* is a substring or not, use " +"the :keyword:`in` operator::" msgstr "" "Η μέθοδος :meth:`~str.find` θα πρέπει να χρησιμοποιείται μόνο αν πρέπει να " "γνωρίζετε τη θέση του *sub*. Για να ελέγξετε αν το *sub* είναι υποσύνολο ή " "όχι, χρησιμοποιήστε τον τελεστή :keyword:`in`::" -#: library/stdtypes.rst:1917 +#: library/stdtypes.rst:1986 msgid "" ">>> 'Py' in 'Python'\n" "True" @@ -3856,14 +3870,14 @@ msgstr "" ">>> 'Py' in 'Python'\n" "True" -#: library/stdtypes.rst:1923 +#: library/stdtypes.rst:1992 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." +"the corresponding argument. For example:" msgstr "" "Εκτέλεση μιας λειτουργίας μορφοποίησης συμβολοσειράς (string formatting). Η " "συμβολοσειρά στην οποία αυτή η μέθοδος καλείται μπορεί να περιέχει " @@ -3871,9 +3885,25 @@ msgstr "" "``{}``. Κάθε πεδίο αντικατάστασης περιέχει είτε τον αριθμητικό δείκτη ενός " "ορίσματος θέσης, είτε το όνομα ενός keyword ορίσματος. Επιστρέφει ένα " "αντίγραφο της συμβολοσειράς όπου κάθε πεδίο αντικατάστασης αντικαθίσταται με " -"την τιμή της συμβολοσειράς του αντίστοιχου ορίσματος." +"την τιμή της συμβολοσειράς του αντίστοιχου ορίσματος. Για παράδειγμα:" + +#: library/stdtypes.rst:1999 +msgid "" +">>> \"The sum of 1 + 2 is {0}\".format(1+2)\n" +"'The sum of 1 + 2 is 3'\n" +">>> \"The sum of {a} + {b} is {answer}\".format(answer=1+2, a=1, b=2)\n" +"'The sum of 1 + 2 is 3'\n" +">>> \"{1} expects the {0} Inquisition!\".format(\"Spanish\", \"Nobody\")\n" +"'Nobody expects the Spanish Inquisition!'" +msgstr "" +">>> \"The sum of 1 + 2 is {0}\".format(1+2)\n" +"'The sum of 1 + 2 is 3'\n" +">>> \"The sum of {a} + {b} is {answer}\".format(answer=1+2, a=1, b=2)\n" +"'The sum of 1 + 2 is 3'\n" +">>> \"{1} expects the {0} Inquisition!\".format(\"Spanish\", \"Nobody\")\n" +"'Nobody expects the Spanish Inquisition!'" -#: library/stdtypes.rst:1933 +#: library/stdtypes.rst:2008 msgid "" "See :ref:`formatstrings` for a description of the various formatting options " "that can be specified in format strings." @@ -3882,26 +3912,28 @@ msgstr "" "μορφοποίησης που μπορούν να καθοριστούν στην μορφοποίηση συμβολοσειρών " "(format strings)." -#: library/stdtypes.rst:1937 -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 "" -"Κατά τη μορφοποίηση ενός αριθμού (:class:`int`, :class:`float`, :class:" -"`complex`, :class:`decimal.Decimal` και υποκλάσεις) με τον τύπο ``n`` (π.χ.: " -"``'{:n}'.format(1234)``, η συνάρτηση θέτει προσωρινά την τοποθεσία " -"``LC_CTYPE`` στην τοποθεσία ``LC_NUMERIC`` για την αποκωδικοποίηση των " -"``decimal_point`` και ``thousands_sep`` πεδίων του :c:func:`localeconv` αν " -"είναι μη ASCII ή μεγαλύτερα από 1 byte, και το locale ``LC_NUMERIC`` είναι " -"διαφορετικό από το locale ``LC_CTYPE``. Αυτή η προσωρινή αλλαγή επηρεάζει " -"και άλλα νήματα (threads)." - -#: library/stdtypes.rst:1946 +#: library/stdtypes.rst:2012 +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 "" +"Κατά τη μορφοποίηση ενός αριθμού " +"(:class:`int`, :class:`float`, :class:`complex`, :class:`decimal.Decimal` " +"και υποκλάσεις) με τον τύπο ``n`` (π.χ.: ``'{:n}'.format(1234)``, η " +"συνάρτηση θέτει προσωρινά την τοποθεσία ``LC_CTYPE`` στην τοποθεσία " +"``LC_NUMERIC`` για την αποκωδικοποίηση των ``decimal_point`` και " +"``thousands_sep`` πεδίων του :c:func:`localeconv` αν είναι μη ASCII ή " +"μεγαλύτερα από 1 byte, και το locale ``LC_NUMERIC`` είναι διαφορετικό από το " +"locale ``LC_CTYPE``. Αυτή η προσωρινή αλλαγή επηρεάζει και άλλα νήματα " +"(threads)." + +#: library/stdtypes.rst:2021 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." @@ -3910,7 +3942,7 @@ msgstr "" "προσωρινά το locale ``LC_CTYPE`` στο locale ``LC_NUMERIC`` σε κάποιες " "περιπτώσεις." -#: library/stdtypes.rst:1954 +#: library/stdtypes.rst:2029 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 " @@ -3920,7 +3952,7 @@ msgstr "" "το ``mapping`` απευθείας και δεν αντιγράφεται σε μια :class:`dict`. Αυτό " "είναι χρήσιμο αν για παράδειγμα το ``mapping`` είναι μια υποκλάση του dict:" -#: library/stdtypes.rst:1970 +#: library/stdtypes.rst:2045 msgid "" "Like :meth:`~str.find`, but raise :exc:`ValueError` when the substring is " "not found." @@ -3928,29 +3960,29 @@ msgstr "" "Όπως η :meth:`~str.find`, αλλά κάνει raise :exc:`ValueError` όταν η υπό-" "συμβολοσειρά (substring) δεν έχει βρεθεί." -#: library/stdtypes.rst:1976 +#: library/stdtypes.rst:2051 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()``." +"alphanumeric if one of the following returns ``True``: ``c.isalpha()``, " +"``c.isdecimal()``, ``c.isdigit()``, or ``c.isnumeric()``." msgstr "" "Επιστρέφει ``True`` αν όλοι οι χαρακτήρες στη συμβολοσειρά (string) είναι " "αλφαριθμητικοί και υπάρχει τουλάχιστον ένας χαρακτήρας, διαφορετικά " "``False``. Ένας χαρακτήρας ``c`` είναι αλφαριθμητικό εάν ένα από τα " -"ακόλουθα επιστρέφει ``True``: ``c.isalpha()``, ``c.isdecimal()``, ``c." -"isdigit()``, ή ``c.isnumeric()``." +"ακόλουθα επιστρέφει ``True``: ``c.isalpha()``, ``c.isdecimal()``, " +"``c.isdigit()``, ή ``c.isnumeric()``." -#: library/stdtypes.rst:1984 +#: library/stdtypes.rst:2059 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\", " +"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 section 4.10 'Letters, Alphabetic, and Ideographic' " "of the Unicode Standard `_." +"spec/chapter-4/#G91002>`_. For example:" msgstr "" "Επιστρέφει ``True`` αν όλοι οι χαρακτήρες στη συμβολοσειρά (string) είναι " "αλφαβητικοί και υπάρχει τουλάχιστον ένας χαρακτήρας, διαφορετικά ``False``. " @@ -3958,35 +3990,86 @@ msgstr "" "χαρακτήρων Unicode ως \"Letter\", δηλαδή, εκείνοι με General Category " "ιδιότητα μία από τα \"Lm\", \"Lt\", \"Lu\", \"Ll\", ή \"Lo\". Σημειώστε ότι " "αυτό είναι διαφορετικό από το `Αλφαβητικό που ορίζεται στην ενότητα 4.10 " -"'Letters, Alphabetic, and Ideographic' του προτύπου Unicode `_." +"'Letters, Alphabetic, and Ideographic' του προτύπου Unicode `_. Για " +"παράδειγμα:" + +#: library/stdtypes.rst:2068 +msgid "" +">>> 'Letters and spaces'.isalpha()\n" +"False\n" +">>> 'LettersOnly'.isalpha()\n" +"True\n" +">>> 'µ'.isalpha() # non-ASCII characters can be considered alphabetical " +"too\n" +"True" +msgstr "" +">>> 'Letters and spaces'.isalpha()\n" +"False\n" +">>> 'LettersOnly'.isalpha()\n" +"True\n" +">>> 'µ'.isalpha() # non-ASCII characters can be considered alphabetical " +"too\n" +"True" + +#: library/stdtypes.rst:2077 +msgid "See :ref:`unicode-properties`." +msgstr "Δείτε :ref:`unicode-properties`." -#: library/stdtypes.rst:1995 +#: library/stdtypes.rst:2082 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." +"U+0000-U+007F. For example:" msgstr "" "Επιστρέφει ``True`` εάν η συμβολοσειρά (string) είναι κενή ή όλοι οι " "χαρακτήρες της συμβολοσειράς είναι ASCII, αλλιώς ``False``. Οι χαρακτήρες " -"ASCII έχουν σημεία κωδικοποίησης στην περιοχή U+0000-U+007F." +"ASCII έχουν σημεία κωδικοποίησης στην περιοχή U+0000-U+007F. Για παράδειγμα:" + +#: library/stdtypes.rst:2086 +msgid "" +">>> 'ASCII characters'.isascii()\n" +"True\n" +">>> 'µ'.isascii()\n" +"False" +msgstr "" +">>> 'ASCII characters'.isascii()\n" +"True\n" +">>> 'µ'.isascii()\n" +"False" -#: library/stdtypes.rst:2004 +#: library/stdtypes.rst:2098 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\"." +"those that can be used to form numbers in base 10, such as U+0660, ARABIC-" +"INDIC DIGIT ZERO. Formally a decimal character is a character in the " +"Unicode General Category \"Nd\". For example:" msgstr "" "Επιστρέφει ``True`` αν όλοι οι χαρακτήρες στη συμβολοσειρά (string) είναι " "δεκαδικοί χαρακτήρες και υπάρχει τουλάχιστον ένας χαρακτήρας, διαφορετικά " "``False``. Οι δεκαδικοί χαρακτήρες είναι αυτοί που μπορούν να " "χρησιμοποιηθούν για το σχηματισμό αριθμών στη βάση 10, π.χ. U+0660, ARABIC-" "INDIC DIGIT ZERO. Επίσημα ένας δεκαδικός χαρακτήρας είναι ένας χαρακτήρας " -"του Unicode General Category \"Nd\"." +"του Unicode General Category \"Nd\". Για παράδειγμα:" + +#: library/stdtypes.rst:2105 +msgid "" +">>> '0123456789'.isdecimal()\n" +"True\n" +">>> '٠١٢٣٤٥٦٧٨٩'.isdecimal() # Arabic-Indic digits zero to nine\n" +"True\n" +">>> 'alphabetic'.isdecimal()\n" +"False" +msgstr "" +">>> '0123456789'.isdecimal()\n" +"True\n" +">>> '٠١٢٣٤٥٦٧٨٩'.isdecimal() # Arabic-Indic digits zero to nine\n" +"True\n" +">>> 'alphabetic'.isdecimal()\n" +"False" -#: library/stdtypes.rst:2014 +#: library/stdtypes.rst:2117 msgid "" "Return ``True`` if all characters in the string are digits and there is at " "least one character, ``False`` otherwise. Digits include decimal characters " @@ -4003,7 +4086,7 @@ msgstr "" "όπως οι αριθμοί Kharosthi. Τυπικά, ένα ψηφίο είναι ένας χαρακτήρας που έχει " "την τιμή της ιδιότητας Numeric_Type=Digit ή Numeric_Type=Decimal." -#: library/stdtypes.rst:2024 +#: library/stdtypes.rst:2127 msgid "" "Return ``True`` if the string is a valid identifier according to the " "language definition, section :ref:`identifiers`." @@ -4011,20 +4094,20 @@ msgstr "" "Επιστρέφει ``True`` αν η συμβολοσειρά είναι έγκυρο αναγνωριστικό σύμφωνα με " "το ορισμό της γλώσσας, ενότητα :ref:`identifiers`." -#: library/stdtypes.rst:2027 +#: library/stdtypes.rst:2130 msgid "" ":func:`keyword.iskeyword` can be used to test whether string ``s`` is a " "reserved identifier, such as :keyword:`def` and :keyword:`class`." msgstr "" "το :func:`keyword.iskeyword` μπορεί να χρησιμοποιηθεί για να ελέγξει αν η " -"συμβολοσειρά ``s`` είναι ένα δεσμευμένο αναγνωριστικό, όπως τα :keyword:" -"`def` και :keyword:`class`." +"συμβολοσειρά ``s`` είναι ένα δεσμευμένο αναγνωριστικό, όπως " +"τα :keyword:`def` και :keyword:`class`." -#: library/stdtypes.rst:2030 +#: library/stdtypes.rst:2133 msgid "Example: ::" msgstr "Παράδειγμα ::" -#: library/stdtypes.rst:2033 +#: library/stdtypes.rst:2136 msgid "" ">>> from keyword import iskeyword\n" "\n" @@ -4040,7 +4123,7 @@ msgstr "" ">>> 'def'.isidentifier(), iskeyword('def')\n" "(True, True)" -#: library/stdtypes.rst:2043 +#: library/stdtypes.rst:2146 msgid "" "Return ``True`` if all cased characters [4]_ in the string are lowercase and " "there is at least one cased character, ``False`` otherwise." @@ -4048,7 +4131,7 @@ msgstr "" "Επιστρέφει ``True`` αν όλοι οι χαρακτήρες [4]_ στο αλφαριθμητικό (string) " "είναι πεζοί και υπάρχει τουλάχιστον ένας cased χαρακτήρας, αλλιώς ``False``." -#: library/stdtypes.rst:2049 +#: library/stdtypes.rst:2152 msgid "" "Return ``True`` if all characters in the string are numeric characters, and " "there is at least one character, ``False`` otherwise. Numeric characters " @@ -4065,7 +4148,7 @@ msgstr "" "τιμή της ιδιότητας Numeric_Type=Digit, Numeric_Type=Decimal ή " "Numeric_Type=Numeric." -#: library/stdtypes.rst:2059 +#: library/stdtypes.rst:2162 msgid "" "Return ``True`` if all characters in the string are printable, ``False`` if " "it contains at least one non-printable character." @@ -4073,20 +4156,20 @@ msgstr "" "Επιστρέφει ``True`` αν όλοι οι χαρακτήρες στη συμβολοσειρά μπορούν να " "εκτυπωθούν, ``False`` εάν περιέχει τουλάχιστον έναν μη εκτυπώσιμο χαρακτήρα." -#: library/stdtypes.rst:2062 +#: library/stdtypes.rst:2165 msgid "" "Here \"printable\" means the character is suitable for :func:`repr` to use " "in its output; \"non-printable\" means that :func:`repr` on built-in types " "will hex-escape the character. It has no bearing on the handling of strings " "written to :data:`sys.stdout` or :data:`sys.stderr`." msgstr "" -"Εδώ \"εκτυπώσιμος\" σημαίνει ότι ο χαρακτήρας είναι κατάλληλος για την :func:" -"`repr` για χρήση στην έξοδο του∙ το \"μη εκτυπώσιμος\" σημαίνει ότι ο " -"χαρακτήρας στη :func:`repr` στους ενσωματωμένους τύπους θα διαφεύγει " +"Εδώ \"εκτυπώσιμος\" σημαίνει ότι ο χαρακτήρας είναι κατάλληλος για " +"την :func:`repr` για χρήση στην έξοδο του∙ το \"μη εκτυπώσιμος\" σημαίνει " +"ότι ο χαρακτήρας στη :func:`repr` στους ενσωματωμένους τύπους θα διαφεύγει " "εξαγωνικά από τον χαρακτήρα. Δεν έχει καμία σχέση με τον χειρισμό " "συμβολοσειρών που γράφονται σε :data:`sys.stdout` ή :data:`sys.stderr`." -#: library/stdtypes.rst:2067 +#: library/stdtypes.rst:2170 msgid "" "The printable characters are those which in the Unicode character database " "(see :mod:`unicodedata`) have a general category in group Letter, Mark, " @@ -4100,7 +4183,7 @@ msgstr "" "διάστημα ASCII 0x20. Οι μη εκτυπώσιμοι χαρακτήρες είναι αυτοί που βρίσκονται " "στο χώρο Διαχωρισμού ομάδας ή Άλλο (Z ή CII)." -#: library/stdtypes.rst:2076 +#: library/stdtypes.rst:2179 msgid "" "Return ``True`` if there are only whitespace characters in the string and " "there is at least one character, ``False`` otherwise." @@ -4109,18 +4192,19 @@ msgstr "" "αλφαριθμητικό (string) και υπάρχει τουλάχιστον ένας χαρακτήρας, διαφορετικά " "``False``." -#: library/stdtypes.rst:2079 +#: library/stdtypes.rst:2182 msgid "" -"A character is *whitespace* if in the Unicode character database (see :mod:" -"`unicodedata`), either its general category is ``Zs`` (\"Separator, " -"space\"), or its bidirectional class is one of ``WS``, ``B``, or ``S``." +"A character is *whitespace* if in the Unicode character database " +"(see :mod:`unicodedata`), either its general category is ``Zs`` " +"(\"Separator, space\"), or its bidirectional class is one of ``WS``, ``B``, " +"or ``S``." msgstr "" "Ένας χαρακτήρας είναι *whitespace* εάν στη βάση δεδομένων χαρακτήρων Unicode " "(βλέπε :mod:`unicodedata`), είτε η γενική κατηγορία του είναι ``Zs`` " "(\"Separator, space\"), είτε η αμφίδρομη κατηγορία του είναι μία από τις " "κατηγορίες ``WS``, ``B``, ή ``S``." -#: library/stdtypes.rst:2087 +#: library/stdtypes.rst:2190 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 " @@ -4133,7 +4217,31 @@ msgstr "" "οι πεζοί χαρακτήρες μόνο cased χαρακτήρες. Διαφορετικά, επιστρέφει " "``False``." -#: library/stdtypes.rst:2094 +#: library/stdtypes.rst:2739 +msgid "For example:" +msgstr "Για παράδειγμα:" + +#: library/stdtypes.rst:2196 +msgid "" +">>> 'Spam, Spam, Spam'.istitle()\n" +"True\n" +">>> 'spam, spam, spam'.istitle()\n" +"False\n" +">>> 'SPAM, SPAM, SPAM'.istitle()\n" +"False" +msgstr "" +">>> 'Spam, Spam, Spam'.istitle()\n" +"True\n" +">>> 'spam, spam, spam'.istitle()\n" +"False\n" +">>> 'SPAM, SPAM, SPAM'.istitle()\n" +"False" + +#: library/stdtypes.rst:2205 +msgid "See also :meth:`title`." +msgstr "Δείτε επίσης :meth:`title`." + +#: library/stdtypes.rst:2210 msgid "" "Return ``True`` if all cased characters [4]_ in the string are uppercase and " "there is at least one cased character, ``False`` otherwise." @@ -4142,20 +4250,36 @@ msgstr "" "κεφαλαίοι και υπάρχει τουλάχιστον ένας cased χαρακτήρας, διαφορετικά " "``False``." -#: library/stdtypes.rst:2112 +#: library/stdtypes.rst:2228 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 " +"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." +"elements is the string providing this method. For example:" msgstr "" "Επιστρέφει μια συμβολοσειρά (string) που είναι η συνένωση των συμβολοσειρών " "στο *iterable*. Ένα :exc:`TypeError` θα γίνει raise αν υπάρχουν τιμές μη " "συμβολοσειράς (non-string) στο *iterable*, συμπεριλαμβανομένων των " "αντικειμένων :class:`bytes`. Το διαχωριστικό μεταξύ των στοιχείων είναι η " -"συμβολοσειρά που παρέχει αυτή η μέθοδος." +"συμβολοσειρά που παρέχει αυτή η μέθοδος. Για παράδειγμα:" + +#: library/stdtypes.rst:2233 +msgid "" +">>> ', '.join(['spam', 'spam', 'spam'])\n" +"'spam, spam, spam'\n" +">>> '-'.join('Python')\n" +"'P-y-t-h-o-n'" +msgstr "" +">>> ', '.join(['spam', 'spam', 'spam'])\n" +"'spam, spam, spam'\n" +">>> '-'.join('Python')\n" +"'P-y-t-h-o-n'" -#: library/stdtypes.rst:2120 +#: library/stdtypes.rst:2240 +msgid "See also :meth:`split`." +msgstr "Δείτε επίσης :meth:`split`." + +#: library/stdtypes.rst:2245 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 " @@ -4166,7 +4290,7 @@ msgstr "" "*fillchar* (το default είναι ένα κενό ASCII). Η αρχική συμβολοσειρά " "επιστρέφεται εάν το *width* είναι μικρότερο ή ίσο με το ``len(s)``." -#: library/stdtypes.rst:2127 +#: library/stdtypes.rst:2252 msgid "" "Return a copy of the string with all the cased characters [4]_ converted to " "lowercase." @@ -4174,17 +4298,17 @@ msgstr "" "Επιστρέφει ένα αντίγραφο της συμβολοσειράς (string) με όλους τους cased " "χαρακτήρες [4]_ να έχουν μετατραπεί σε πεζούς." -#: library/stdtypes.rst:2130 +#: library/stdtypes.rst:2255 msgid "" "The lowercasing algorithm used is `described in section 3.13 'Default Case " "Folding' of the Unicode Standard `__." msgstr "" "Ο αλγόριθμος που χρησιμοποιείται για την πεζογράμμιση `περιγράφεται στην " -"ενότητα 3.13 'Default Case Folding' του προτύπου Unicode `__." +"ενότητα 3.13 'Default Case Folding' του προτύπου Unicode `__." -#: library/stdtypes.rst:2137 +#: library/stdtypes.rst:2262 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 " @@ -4199,7 +4323,7 @@ msgstr "" "χαρακτήρων. Το όρισμα *chars* δεν είναι ένα πρόθεμα· οπότε, όλοι οι " "συνδυασμοί των τιμών του αφαιρούνται::" -#: library/stdtypes.rst:2142 +#: library/stdtypes.rst:2267 msgid "" ">>> ' spacious '.lstrip()\n" "'spacious '\n" @@ -4211,7 +4335,7 @@ msgstr "" ">>> 'www.example.com'.lstrip('cmowz.')\n" "'example.com'" -#: library/stdtypes.rst:2147 +#: library/stdtypes.rst:2272 msgid "" "See :meth:`str.removeprefix` for a method that will remove a single prefix " "string rather than all of a set of characters. For example::" @@ -4220,7 +4344,7 @@ msgstr "" "πρόθεμα συμβολοσειράς (string) αντί για όλο το σύνολο των χαρακτήρων. Για " "παράδειγμα::" -#: library/stdtypes.rst:2150 +#: library/stdtypes.rst:2275 msgid "" ">>> 'Arthur: three!'.lstrip('Arthur: ')\n" "'ee!'\n" @@ -4232,15 +4356,15 @@ msgstr "" ">>> 'Arthur: three!'.removeprefix('Arthur: ')\n" "'three!'" -#: library/stdtypes.rst:2158 +#: library/stdtypes.rst:2284 msgid "" -"This static method returns a translation table usable for :meth:`str." -"translate`." +"This static method returns a translation table usable " +"for :meth:`str.translate`." msgstr "" "Αυτή η στατική μέθοδος επιστρέφει έναν πίνακα μεταφράσεων που μπορεί να " "χρησιμοποιηθεί για το :meth:`str.translate`." -#: library/stdtypes.rst:2160 +#: library/stdtypes.rst:2286 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, " @@ -4252,20 +4376,20 @@ msgstr "" "μήκους 1) σε ordinals Unicode, συμβολοσειρές (αυθαίρετου μήκους) ή " "``None``. Τα κλειδιά χαρακτήρων τότε θα μετατραπούν σε κανονικούς αριθμούς." -#: library/stdtypes.rst:2165 +#: library/stdtypes.rst:2291 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." +"resulting dictionary, each character in *from* will be mapped to the " +"character at the same position in *to*. If there is a third argument, it " +"must be a string, whose characters will be mapped to ``None`` in the result." msgstr "" "Εάν υπάρχουν δύο ορίσματα, πρέπει να είναι συμβολοσειρές (strings) ίσου " -"μήκους και στο λεξικό (dictionary) που θα προκύψει, κάθε χαρακτήρας στο x θα " -"αντιστοιχιστεί στο χαρακτήρα στην ίδια θέση στο y. Αν υπάρχει τρίτο όρισμα, " -"πρέπει να είναι συμβολοσειρά, του οποίου οι χαρακτήρες θα αντιστοιχιστούν " -"στο αποτέλεσμα σε ``None``." +"μήκους και στο λεξικό (dictionary) που θα προκύψει, κάθε χαρακτήρας στο " +"*from* θα αντιστοιχιστεί στο χαρακτήρα στην ίδια θέση στο *to*. Αν υπάρχει " +"τρίτο όρισμα, πρέπει να είναι συμβολοσειρά, του οποίου οι χαρακτήρες θα " +"αντιστοιχιστούν στο αποτέλεσμα σε ``None``." -#: library/stdtypes.rst:2173 +#: library/stdtypes.rst:2299 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 " @@ -4278,7 +4402,7 @@ msgstr "" "δεν βρεθεί, επιστρέφει ένα 3-σύνολο που περιέχει την ίδια τη συμβολοσειρά, " "ακολουθούμενη από δύο κενές συμβολοσειρές." -#: library/stdtypes.rst:2181 +#: library/stdtypes.rst:2307 msgid "" "If the string starts with the *prefix* string, return " "``string[len(prefix):]``. Otherwise, return a copy of the original string::" @@ -4287,7 +4411,7 @@ msgstr "" "``string[len(prefix):]``. Διαφορετικά, επιστρέφει ένα αντίγραφο της αρχικής " "συμβολοσειράς::" -#: library/stdtypes.rst:2185 +#: library/stdtypes.rst:2311 msgid "" ">>> 'TestHook'.removeprefix('Test')\n" "'Hook'\n" @@ -4299,7 +4423,7 @@ msgstr "" ">>> 'BaseTestCase'.removeprefix('Test')\n" "'BaseTestCase'" -#: library/stdtypes.rst:2195 +#: library/stdtypes.rst:2321 msgid "" "If the string ends with the *suffix* string and that *suffix* is not empty, " "return ``string[:-len(suffix)]``. Otherwise, return a copy of the original " @@ -4309,7 +4433,7 @@ msgstr "" "επιστρέφει ``string[:-len(suffix)]``. Διαφορετικά, επιστρέφει ένα αντίγραφο " "της αρχικής συμβολοσειράς::" -#: library/stdtypes.rst:2199 +#: library/stdtypes.rst:2325 msgid "" ">>> 'MiscTests'.removesuffix('Tests')\n" "'Misc'\n" @@ -4321,7 +4445,7 @@ msgstr "" ">>> 'TmpDirMixin'.removesuffix('Tests')\n" "'TmpDirMixin'" -#: library/stdtypes.rst:2209 +#: library/stdtypes.rst:2335 msgid "" "Return a copy of the string with all occurrences of substring *old* replaced " "by *new*. If *count* is given, only the first *count* occurrences are " @@ -4333,11 +4457,11 @@ msgstr "" "παράμετρος *count*, μόνο οι πρώτες *count* εμφανίσεις. Αν δεν έχει οριστεί ή " "είναι -1, τότε αντικαθίστανται όλες οι εμφανίσεις." -#: library/stdtypes.rst:2213 +#: library/stdtypes.rst:2339 msgid "*count* is now supported as a keyword argument." msgstr "Το *count* υποστηρίζεται πλέον ως όρισμα λέξης-κλειδιού." -#: library/stdtypes.rst:2219 +#: library/stdtypes.rst:2345 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* " @@ -4348,7 +4472,7 @@ msgstr "" "προαιρετικά ορίσματα *start* και *end* ερμηνεύονται ως slice notation. " "Επιστρέφει ``-1`` σε περίπτωση αποτυχίας." -#: library/stdtypes.rst:2226 +#: library/stdtypes.rst:2352 msgid "" "Like :meth:`rfind` but raises :exc:`ValueError` when the substring *sub* is " "not found." @@ -4356,7 +4480,7 @@ msgstr "" "Όπως η :meth:`rfind`, αλλά κάνει raise :exc:`ValueError` όταν η υπό-" "συμβολοσειρά (sub-string) *sub* δεν βρέθηκε." -#: library/stdtypes.rst:2232 +#: library/stdtypes.rst:2358 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 " @@ -4367,7 +4491,7 @@ msgstr "" "καθορισμένο *fillchar* (η προεπιλογή είναι ένα διάστημα ASCII). Η αρχική " "συμβολοσειρά επιστρέφεται εάν το *width* είναι μικρότερο ή ίσο με ``len(s)``." -#: library/stdtypes.rst:2239 +#: library/stdtypes.rst:2365 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 " @@ -4380,7 +4504,7 @@ msgstr "" "δεν βρεθεί, επιστρέφει ένα 3-tuple που περιέχει δύο κενές συμβολοσειρές, " "ακολουθούμενες από την ίδια τη συμβολοσειρά." -#: library/stdtypes.rst:2247 +#: library/stdtypes.rst:2373 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 " @@ -4395,7 +4519,7 @@ msgstr "" "Εκτός από το διαχωρισμό από τα δεξιά, η :meth:`rsplit` συμπεριφέρεται όπως " "η :meth:`split` που περιγράφεται λεπτομερώς παρακάτω." -#: library/stdtypes.rst:2256 +#: library/stdtypes.rst:2382 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 " @@ -4410,7 +4534,7 @@ msgstr "" "διαστημάτων. Το όρισμα *chars* δεν είναι suffix, αλλά όλοι οι συνδυασμοί " "των τιμών του αφαιρούνται::" -#: library/stdtypes.rst:2261 +#: library/stdtypes.rst:2387 msgid "" ">>> ' spacious '.rstrip()\n" "' spacious'\n" @@ -4422,7 +4546,7 @@ msgstr "" ">>> 'mississippi'.rstrip('ipz')\n" "'mississ'" -#: library/stdtypes.rst:2266 +#: library/stdtypes.rst:2392 msgid "" "See :meth:`str.removesuffix` for a method that will remove a single suffix " "string rather than all of a set of characters. For example::" @@ -4430,7 +4554,7 @@ msgstr "" "Δείτε τη :meth:`str.removesuffix` για μια μέθοδο που θα αφαιρέσει ένα απλό " "suffix αντί για όλο το σύνολο των χαρακτήρων. Για παράδειγμα::" -#: library/stdtypes.rst:2269 +#: library/stdtypes.rst:2395 msgid "" ">>> 'Monty Python'.rstrip(' Python')\n" "'M'\n" @@ -4442,7 +4566,7 @@ msgstr "" ">>> 'Monty Python'.removesuffix(' Python')\n" "'Monty'" -#: library/stdtypes.rst:2276 +#: library/stdtypes.rst:2402 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, " @@ -4457,14 +4581,14 @@ msgstr "" "υπάρχει όριο στον αριθμό των διαχωρισμών (γίνονται όλες οι πιθανές " "διασπάσεις)." -#: library/stdtypes.rst:2282 +#: library/stdtypes.rst:2408 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 " -"as a single delimiter (to split with multiple delimiters, use :func:`re." -"split`). Splitting an empty string with a specified separator returns " -"``['']``." +"as a single delimiter (to split with multiple delimiters, " +"use :func:`re.split`). Splitting an empty string with a specified separator " +"returns ``['']``." msgstr "" "Αν δοθεί το *sep*, οι διαδοχικά οριοθέτες δεν ομαδοποιούνται μαζί και " "θεωρείται ότι οριοθετούν κενές συμβολοσειρές (strings) (για παράδειγμα, το " @@ -4474,15 +4598,15 @@ msgstr "" "διαχωρισμός μιας κενής συμβολοσειράς με ένα καθορισμένο διαχωριστικό " "επιστρέφει το ``['']``." -#: library/stdtypes.rst:2307 library/stdtypes.rst:2371 -#: library/stdtypes.rst:2507 library/stdtypes.rst:3557 -#: library/stdtypes.rst:3664 library/stdtypes.rst:3703 -#: library/stdtypes.rst:3745 library/stdtypes.rst:3790 -#: library/stdtypes.rst:3840 library/stdtypes.rst:3906 +#: library/stdtypes.rst:2433 library/stdtypes.rst:2499 +#: library/stdtypes.rst:2637 library/stdtypes.rst:3690 +#: library/stdtypes.rst:3796 library/stdtypes.rst:3835 +#: library/stdtypes.rst:3877 library/stdtypes.rst:3922 +#: library/stdtypes.rst:3972 library/stdtypes.rst:4038 msgid "For example::" msgstr "Για παράδειγμα::" -#: library/stdtypes.rst:2291 +#: library/stdtypes.rst:2417 msgid "" ">>> '1,2,3'.split(',')\n" "['1', '2', '3']\n" @@ -4502,7 +4626,7 @@ msgstr "" ">>> '1<>2<>3<4'.split('<>')\n" "['1', '2', '3<4']" -#: library/stdtypes.rst:2300 +#: library/stdtypes.rst:2426 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, " @@ -4519,7 +4643,7 @@ msgstr "" "συμβολοσειράς που αποτελείται μόνο από κενά διαστήματα με ένα ``None`` ως " "διαχωριστικό επιστρέφει ``[]``." -#: library/stdtypes.rst:2309 +#: library/stdtypes.rst:2435 msgid "" ">>> '1 2 3'.split()\n" "['1', '2', '3']\n" @@ -4535,7 +4659,7 @@ msgstr "" ">>> ' 1 2 3 '.split()\n" "['1', '2', '3']" -#: library/stdtypes.rst:2316 +#: library/stdtypes.rst:2442 msgid "" "If *sep* is not specified or is ``None`` and *maxsplit* is ``0``, only " "leading runs of consecutive whitespace are considered." @@ -4543,7 +4667,7 @@ msgstr "" "Εάν δεν καθοριστεί *sep* ή είναι ``None`` και το *maxsplit* είναι ``0``, " "λαμβάνοντας υπόψη μόνο οι πρώτες εκτελέσεις διαδοχικού κενού διαστήματος." -#: library/stdtypes.rst:2321 +#: library/stdtypes.rst:2447 msgid "" ">>> \"\".split(None, 0)\n" "[]\n" @@ -4559,7 +4683,11 @@ msgstr "" ">>> \" foo \".split(maxsplit=0)\n" "['foo ']" -#: library/stdtypes.rst:2334 +#: library/stdtypes.rst:2454 +msgid "See also :meth:`join`." +msgstr "Δείτε επίσης :meth:`join`." + +#: library/stdtypes.rst:2462 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 " @@ -4569,7 +4697,7 @@ msgstr "" "διαχωρίζοντας στα όρια των γραμμών. Τα διαχωριστικά των γραμμών δεν " "περιλαμβάνονται στην νέα λίστα, εκτός αν δοθεί το *keepends* και είναι true." -#: library/stdtypes.rst:2338 +#: library/stdtypes.rst:2466 msgid "" "This method splits on the following line boundaries. In particular, the " "boundaries are a superset of :term:`universal newlines`." @@ -4577,107 +4705,107 @@ msgstr "" "Αυτή η μέθοδος διαχωρίζει στα ακόλουθα όρια γραμμών. Πιο συγκεκριμένα, τα " "όρια είναι ένα υπερσύνολο του :term:`universal newlines`." -#: library/stdtypes.rst:2342 +#: library/stdtypes.rst:2470 msgid "Representation" msgstr "Αναπαράσταση" -#: library/stdtypes.rst:2342 +#: library/stdtypes.rst:2470 msgid "Description" msgstr "Περιγραφή" -#: library/stdtypes.rst:2344 +#: library/stdtypes.rst:2472 msgid "``\\n``" msgstr "``\\n``" -#: library/stdtypes.rst:2344 +#: library/stdtypes.rst:2472 msgid "Line Feed" msgstr "Line Feed" -#: library/stdtypes.rst:2346 +#: library/stdtypes.rst:2474 msgid "``\\r``" msgstr "``\\r``" -#: library/stdtypes.rst:2346 +#: library/stdtypes.rst:2474 msgid "Carriage Return" msgstr "Carriage Return" -#: library/stdtypes.rst:2348 +#: library/stdtypes.rst:2476 msgid "``\\r\\n``" msgstr "``\\r\\n``" -#: library/stdtypes.rst:2348 +#: library/stdtypes.rst:2476 msgid "Carriage Return + Line Feed" msgstr "Carriage Return + Line Feed" -#: library/stdtypes.rst:2350 +#: library/stdtypes.rst:2478 msgid "``\\v`` or ``\\x0b``" msgstr "``\\v`` or ``\\x0b``" -#: library/stdtypes.rst:2350 +#: library/stdtypes.rst:2478 msgid "Line Tabulation" msgstr "Line Tabulation" -#: library/stdtypes.rst:2352 +#: library/stdtypes.rst:2480 msgid "``\\f`` or ``\\x0c``" msgstr "``\\f`` or ``\\x0c``" -#: library/stdtypes.rst:2352 +#: library/stdtypes.rst:2480 msgid "Form Feed" msgstr "Form Feed" -#: library/stdtypes.rst:2354 +#: library/stdtypes.rst:2482 msgid "``\\x1c``" msgstr "``\\x1c``" -#: library/stdtypes.rst:2354 +#: library/stdtypes.rst:2482 msgid "File Separator" msgstr "Διαχωριστής Αρχείου" -#: library/stdtypes.rst:2356 +#: library/stdtypes.rst:2484 msgid "``\\x1d``" msgstr "``\\x1d``" -#: library/stdtypes.rst:2356 +#: library/stdtypes.rst:2484 msgid "Group Separator" msgstr "Διαχωριστής Group" -#: library/stdtypes.rst:2358 +#: library/stdtypes.rst:2486 msgid "``\\x1e``" msgstr "``\\x1e``" -#: library/stdtypes.rst:2358 +#: library/stdtypes.rst:2486 msgid "Record Separator" msgstr "Διαχωριστής Εγγραφών" -#: library/stdtypes.rst:2360 +#: library/stdtypes.rst:2488 msgid "``\\x85``" msgstr "``\\x85``" -#: library/stdtypes.rst:2360 +#: library/stdtypes.rst:2488 msgid "Next Line (C1 Control Code)" msgstr "Επόμενη Γραμμή (C1 Control Code)" -#: library/stdtypes.rst:2362 +#: library/stdtypes.rst:2490 msgid "``\\u2028``" msgstr "``\\u2028``" -#: library/stdtypes.rst:2362 +#: library/stdtypes.rst:2490 msgid "Line Separator" msgstr "Διαχωριστής Γραμμής" -#: library/stdtypes.rst:2364 +#: library/stdtypes.rst:2492 msgid "``\\u2029``" msgstr "``\\u2029``" -#: library/stdtypes.rst:2364 +#: library/stdtypes.rst:2492 msgid "Paragraph Separator" msgstr "Διαχωριστής Παραγράφου" -#: library/stdtypes.rst:2369 +#: library/stdtypes.rst:2497 msgid "``\\v`` and ``\\f`` added to list of line boundaries." msgstr "Τα ``\\v`` και ``\\f`` προστίθενται στην λίστα ορίων των γραμμών." -#: library/stdtypes.rst:2373 +#: library/stdtypes.rst:2501 msgid "" ">>> 'ab c\\n\\nde fg\\rkl\\r\\n'.splitlines()\n" "['ab c', '', 'de fg', 'kl']\n" @@ -4689,7 +4817,7 @@ msgstr "" ">>> 'ab c\\n\\nde fg\\rkl\\r\\n'.splitlines(keepends=True)\n" "['ab c\\n', '\\n', 'de fg\\r', 'kl\\r\\n']" -#: library/stdtypes.rst:2378 +#: library/stdtypes.rst:2506 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 " @@ -4700,7 +4828,7 @@ msgstr "" "αλφαριθμητικό, και μια τερματικό break γραμμής δεν οδηγεί σε μια επιπλέον " "γραμμή::" -#: library/stdtypes.rst:2382 +#: library/stdtypes.rst:2510 msgid "" ">>> \"\".splitlines()\n" "[]\n" @@ -4712,11 +4840,11 @@ msgstr "" ">>> \"One line\\n\".splitlines()\n" "['One line']" -#: library/stdtypes.rst:2387 +#: library/stdtypes.rst:2515 msgid "For comparison, ``split('\\n')`` gives::" msgstr "Συγκριτικά, η ``split('\\n')`` δίνει::" -#: library/stdtypes.rst:2389 +#: library/stdtypes.rst:2517 msgid "" ">>> ''.split('\\n')\n" "['']\n" @@ -4728,7 +4856,7 @@ msgstr "" ">>> 'Two lines\\n'.split('\\n')\n" "['Two lines', '']" -#: library/stdtypes.rst:2397 +#: library/stdtypes.rst:2525 msgid "" "Return ``True`` if string starts with the *prefix*, otherwise return " "``False``. *prefix* can also be a tuple of prefixes to look for. With " @@ -4741,7 +4869,7 @@ msgstr "" "αλφαριθμητικό που αρχίζει από τη συγκεκριμένη θέση. Με το προαιρετικό " "*end*, σταματά η σύγκριση της συμβολοσειράς σε αυτή τη θέση." -#: library/stdtypes.rst:2405 +#: library/stdtypes.rst:2533 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 " @@ -4756,7 +4884,7 @@ msgstr "" "default την αφαίρεση των κενών διαστημάτων. Το όρισμα *chars* δεν είναι " "prefix ή suffix· μάλλον, όλοι οι συνδυασμοί των τιμών του αφαιρούνται::" -#: library/stdtypes.rst:2411 +#: library/stdtypes.rst:2539 msgid "" ">>> ' spacious '.strip()\n" "'spacious'\n" @@ -4768,7 +4896,7 @@ msgstr "" ">>> 'www.example.com'.strip('cmowz.')\n" "'example'" -#: library/stdtypes.rst:2416 +#: library/stdtypes.rst:2544 msgid "" "The outermost leading and trailing *chars* argument values are stripped from " "the string. Characters are removed from the leading end until reaching a " @@ -4781,7 +4909,7 @@ msgstr "" "στο σύνολο χαρακτήρων του *chars*. Μια παρόμοια ενέργεια λαμβάνει χώρα στο " "τέλος της ουράς. Για παράδειγμα:" -#: library/stdtypes.rst:2422 +#: library/stdtypes.rst:2550 msgid "" ">>> comment_string = '#....... Section 3.2.1 Issue #32 .......'\n" ">>> comment_string.strip('.#! ')\n" @@ -4791,17 +4919,17 @@ msgstr "" ">>> comment_string.strip('.#! ')\n" "'Section 3.2.1 Issue #32'" -#: library/stdtypes.rst:2429 +#: library/stdtypes.rst:2557 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``." +"and vice versa. Note that it is not necessarily true that " +"``s.swapcase().swapcase() == s``." msgstr "" "Επιστρέφει ένα αντίγραφο της συμβολοσειράς (string) με κεφαλαίους χαρακτήρες " "που έχουν μετατραπεί σε πεζούς και αντίστροφα. Σημειώστε ότι δεν είναι " "απαραίτητα αληθές ότι ``s.swapcase().swapcase() == s``." -#: library/stdtypes.rst:2436 +#: library/stdtypes.rst:2564 msgid "" "Return a titlecased version of the string where words start with an " "uppercase character and the remaining characters are lowercase." @@ -4809,7 +4937,7 @@ msgstr "" "Επιστρέφει μια titlecased έκδοση της συμβολοσειράς, όπου οι λέξεις ξεκινούν " "με ένα κεφαλαίο χαρακτήρα και οι υπόλοιποι χαρακτήρες είναι πεζοί." -#: library/stdtypes.rst:2441 +#: library/stdtypes.rst:2569 msgid "" ">>> 'Hello world'.title()\n" "'Hello World'" @@ -4817,7 +4945,7 @@ msgstr "" ">>> 'Hello world'.title()\n" "'Hello World'" -#: library/stdtypes.rst:3850 +#: library/stdtypes.rst:3982 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 " @@ -4829,7 +4957,7 @@ msgstr "" "contexts, αλλά σημαίνει ότι οι απόστροφοι σε συναιρέσεις και κτητικές λέξεις " "αποτελούν όρια λέξεων, που μπορεί να μην είναι το επιθυμητό αποτέλεσμα::" -#: library/stdtypes.rst:2449 +#: library/stdtypes.rst:2577 msgid "" ">>> \"they're bill's friends from the UK\".title()\n" "\"They'Re Bill'S Friends From The Uk\"" @@ -4837,7 +4965,7 @@ msgstr "" ">>> \"they're bill's friends from the UK\".title()\n" "\"They'Re Bill'S Friends From The Uk\"" -#: library/stdtypes.rst:2452 +#: library/stdtypes.rst:2580 msgid "" "The :func:`string.capwords` function does not have this problem, as it " "splits words on spaces only." @@ -4845,7 +4973,7 @@ msgstr "" "Η συνάρτηση :func:`string.capwords` δεν έχει αυτό το πρόβλημα, καθώς χωρίζει " "τις λέξεις μόνο σε κενά." -#: library/stdtypes.rst:2455 +#: library/stdtypes.rst:2583 msgid "" "Alternatively, a workaround for apostrophes can be constructed using regular " "expressions::" @@ -4853,7 +4981,7 @@ msgstr "" "Εναλλακτικά, μπορεί να κατασκευαστεί μια λύση για τις αποστρόφους " "χρησιμοποιώντας κανονικές εκφράσεις::" -#: library/stdtypes.rst:2458 +#: library/stdtypes.rst:2586 msgid "" ">>> import re\n" ">>> def titlecase(s):\n" @@ -4873,30 +5001,34 @@ msgstr "" ">>> titlecase(\"they're bill's friends.\")\n" "\"They're Bill's Friends.\"" -#: library/stdtypes.rst:2470 +#: library/stdtypes.rst:2595 +msgid "See also :meth:`istitle`." +msgstr "Δείτε επίσης :meth:`istitle`." + +#: library/stdtypes.rst:2600 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:`~object.__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." +"indexing via :meth:`~object.__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 "" "Επιστρέφει ένα αντίγραφο της συμβολοσειράς (string) στο οποίο κάθε " "χαρακτήρας έχει αντιστοιχιστεί μέσω του πίνακα μετάφρασης. Ο πίνακας πρέπει " -"να είναι ένα αντικείμενο που υλοποιεί ευρετηριοποίηση μέσω της :meth:" -"`~object.__getitem__`, συνήθως ένα :term:`mapping` ή ένα :term:`sequence`. " -"Όταν το indexing γίνεται με ένα Unicode ordinal (ένας ακέραιος), το " -"αντικείμενο του πίνακα μπορεί να κάνει οποιοδήποτε από τα ακόλουθα: να " -"επιστρέψει ένα Unicode ordinal ή μια συμβολοσειρά (string), να αντιστοιχίσει " -"τον χαρακτήρα σε έναν ή περισσότερους άλλους χαρακτήρες· να επιστρέψει " -"``None``, για να διαγράψει τον χαρακτήρα από τη συμβολοσειρά που " +"να είναι ένα αντικείμενο που υλοποιεί ευρετηριοποίηση μέσω " +"της :meth:`~object.__getitem__`, συνήθως ένα :term:`mapping` ή " +"ένα :term:`sequence`. Όταν το indexing γίνεται με ένα Unicode ordinal (ένας " +"ακέραιος), το αντικείμενο του πίνακα μπορεί να κάνει οποιοδήποτε από τα " +"ακόλουθα: να επιστρέψει ένα Unicode ordinal ή μια συμβολοσειρά (string), να " +"αντιστοιχίσει τον χαρακτήρα σε έναν ή περισσότερους άλλους χαρακτήρες· να " +"επιστρέψει ``None``, για να διαγράψει τον χαρακτήρα από τη συμβολοσειρά που " "επιστρέφεται· ή να κάνει raise ένα :exc:`LookupError`, για να αντιστοιχίσει " "τον χαρακτήρα στον εαυτό του." -#: library/stdtypes.rst:2479 +#: library/stdtypes.rst:2609 msgid "" "You can use :meth:`str.maketrans` to create a translation map from character-" "to-character mappings in different formats." @@ -4905,7 +5037,7 @@ msgstr "" "ένα χάρτη μετάφρασης αντιστοίχισης από χαρακτήρα-σε-χαρακτήρα σε " "διαφορετικές μορφές." -#: library/stdtypes.rst:2482 +#: library/stdtypes.rst:2612 msgid "" "See also the :mod:`codecs` module for a more flexible approach to custom " "character mappings." @@ -4913,7 +5045,7 @@ msgstr "" "Δείτε επίσης την ενότητα :mod:`codecs` για μια πιο ευέλικτη προσέγγιση σε " "προσαρμοσμένα mappings χαρακτήρων." -#: library/stdtypes.rst:2488 +#: library/stdtypes.rst:2618 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`` " @@ -4922,12 +5054,13 @@ msgid "" "titlecase)." msgstr "" "Επιστρέφει ένα αντίγραφο της συμβολοσειράς (string) με όλους τους χαρακτήρες " -"[4]_ που έχουν μετατραπεί σε κεφαλαία. Σημειώστε ότι το ``s.upper()." -"isupper()`` μπορεί να είναι ``False`` αν το ``s`` περιέχει χαρακτήρες χωρίς " -"πεζά γράμματα ή αν η κατηγορία Unicode του προκύπτοντος χαρακτήρα(ων) δεν " -"είναι \"Lu\" (Γράμμα, κεφαλαίο), αλλά π.χ. \"Lt\" (Γράμμα, titlecase)." +"[4]_ που έχουν μετατραπεί σε κεφαλαία. Σημειώστε ότι το " +"``s.upper().isupper()`` μπορεί να είναι ``False`` αν το ``s`` περιέχει " +"χαρακτήρες χωρίς πεζά γράμματα ή αν η κατηγορία Unicode του προκύπτοντος " +"χαρακτήρα(ων) δεν είναι \"Lu\" (Γράμμα, κεφαλαίο), αλλά π.χ. \"Lt\" " +"(Γράμμα, titlecase)." -#: library/stdtypes.rst:2494 +#: library/stdtypes.rst:2624 msgid "" "The uppercasing algorithm used is `described in section 3.13 'Default Case " "Folding' of the Unicode Standard `__." -#: library/stdtypes.rst:2501 +#: library/stdtypes.rst:2631 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 " @@ -4951,7 +5084,7 @@ msgstr "" "συμπλήρωση *μετά* τον χαρακτήρα sign αντί για πριν. Η αρχική συμβολοσειρά " "επιστρέφεται εάν το *width* είναι μικρότερο ή ίσο με ``len(s)``." -#: library/stdtypes.rst:2509 +#: library/stdtypes.rst:2639 msgid "" ">>> \"42\".zfill(5)\n" "'00042'\n" @@ -4963,11 +5096,11 @@ msgstr "" ">>> \"-42\".zfill(5)\n" "'-0042'" -#: library/stdtypes.rst:2530 +#: library/stdtypes.rst:2660 msgid "Formatted String Literals (f-strings)" msgstr "Διαμορφωμένες Κυριολεκτικές Συμβολοσειρές (f-strings)" -#: library/stdtypes.rst:2533 +#: library/stdtypes.rst:2663 msgid "" "The :keyword:`await` and :keyword:`async for` can be used in expressions " "within f-strings." @@ -4975,11 +5108,11 @@ msgstr "" "Τα :keyword:`await` και :keyword:`async for` μπορούν να χρησιμοποιηθούν σε " "εκφράσεις μέσα σε f-strings." -#: library/stdtypes.rst:2536 +#: library/stdtypes.rst:2666 msgid "Added the debugging operator (``=``)" msgstr "Προστέθηκε ο τελεστής αποσφαλμάτωσης (``=``)" -#: library/stdtypes.rst:2538 +#: library/stdtypes.rst:2668 msgid "" "Many restrictions on expressions within f-strings have been removed. " "Notably, nested strings, comments, and backslashes are now permitted." @@ -4988,7 +5121,7 @@ msgstr "" "Ιδιαίτερα, πλέον επιτρέπονται οι εμφωλευμένες συμβολοσειρές, τα σχόλια και " "οι κάθετοι." -#: library/stdtypes.rst:2542 +#: library/stdtypes.rst:2672 msgid "" "An :dfn:`f-string` (formally a :dfn:`formatted string literal`) is a string " "literal that is prefixed with ``f`` or ``F``. This type of string literal " @@ -5005,7 +5138,7 @@ msgstr "" "τρόπο όπως η μέθοδος :meth:`str.format`, και μετατρέπονται σε κανονικά " "αντικείμενα τύπου :class:`str`. Για παράδειγμα:" -#: library/stdtypes.rst:2550 +#: library/stdtypes.rst:2680 msgid "" ">>> who = 'nobody'\n" ">>> nationality = 'Spanish'\n" @@ -5017,11 +5150,11 @@ msgstr "" ">>> f'{who.title()} expects the {nationality} Inquisition!'\n" "'Nobody expects the Spanish Inquisition!'" -#: library/stdtypes.rst:2557 +#: library/stdtypes.rst:2687 msgid "It is also possible to use a multi line f-string:" msgstr "Είναι επίσης δυνατό να χρησιμοποιηθεί μια f-string πολλών γραμμών:" -#: library/stdtypes.rst:2559 +#: library/stdtypes.rst:2689 msgid "" ">>> f'''This is a string\n" "... on two lines'''\n" @@ -5031,7 +5164,7 @@ msgstr "" "... on two lines'''\n" "'This is a string\\non two lines'" -#: library/stdtypes.rst:2565 +#: library/stdtypes.rst:2695 msgid "" "A single opening curly bracket, ``'{'``, marks a *replacement field* that " "can contain any Python expression:" @@ -5039,7 +5172,7 @@ msgstr "" "Ένα μόνο άνοιγμα αγκύλης, ``'{'``, δηλώνει ένα *πεδίο αντικατάστασης* που " "μπορεί να περιέχει οποιαδήποτε έκφραση Python:" -#: library/stdtypes.rst:2568 +#: library/stdtypes.rst:2698 msgid "" ">>> nationality = 'Spanish'\n" ">>> f'The {nationality} Inquisition!'\n" @@ -5049,13 +5182,13 @@ msgstr "" ">>> f'The {nationality} Inquisition!'\n" "'The Spanish Inquisition!'" -#: library/stdtypes.rst:2574 +#: library/stdtypes.rst:2704 msgid "To include a literal ``{`` or ``}``, use a double bracket:" msgstr "" "Για να συμπεριλάβετε μια κυριολεξία ``{`` ή ``}``, χρησιμοποιήστε διπλή " "αγκύλη:" -#: library/stdtypes.rst:2576 +#: library/stdtypes.rst:2706 msgid "" ">>> x = 42\n" ">>> f'{{x}} is {x}'\n" @@ -5065,14 +5198,14 @@ msgstr "" ">>> f'{{x}} is {x}'\n" "'{x} is 42'" -#: library/stdtypes.rst:2582 +#: library/stdtypes.rst:2712 msgid "" "Functions can also be used, and :ref:`format specifiers `:" msgstr "" "Μπορούν επίσης να χρησιμοποιηθούν συναρτήσεις καθώς και :ref:`format " "specifiers `:" -#: library/stdtypes.rst:2584 +#: library/stdtypes.rst:2714 msgid "" ">>> from math import sqrt\n" ">>> f'√2 \\N{ALMOST EQUAL TO} {sqrt(2):.5f}'\n" @@ -5082,13 +5215,13 @@ msgstr "" ">>> f'√2 \\N{ALMOST EQUAL TO} {sqrt(2):.5f}'\n" "'√2 ≈ 1.41421'" -#: library/stdtypes.rst:2590 +#: library/stdtypes.rst:2720 msgid "Any non-string expression is converted using :func:`str`, by default:" msgstr "" "Κάθε έκφραση μη-συμβολοσειράς μετατρέπεται χρησιμοποιώντας τη :func:`str`, " "από προεπιλογή:" -#: library/stdtypes.rst:2592 +#: library/stdtypes.rst:2722 msgid "" ">>> from fractions import Fraction\n" ">>> f'{Fraction(1, 3)}'\n" @@ -5098,7 +5231,7 @@ msgstr "" ">>> f'{Fraction(1, 3)}'\n" "'1/3'" -#: library/stdtypes.rst:2598 +#: library/stdtypes.rst:2728 msgid "" "To use an explicit conversion, use the ``!`` (exclamation mark) operator, " "followed by any of the valid formats, which are:" @@ -5107,39 +5240,35 @@ msgstr "" "(θαυμαστικό), ακολουθούμενο από οποιεσδήποτε από τις έγκυρες μορφές, τα " "οποία είναι:" -#: library/stdtypes.rst:2770 library/stdtypes.rst:4029 +#: library/stdtypes.rst:2901 library/stdtypes.rst:4161 msgid "Conversion" msgstr "Μετατροπή" -#: library/stdtypes.rst:2604 +#: library/stdtypes.rst:2734 msgid "``!a``" msgstr "``!a``" -#: library/stdtypes.rst:2604 +#: library/stdtypes.rst:2734 msgid ":func:`ascii`" msgstr ":func:`ascii`" -#: library/stdtypes.rst:2605 +#: library/stdtypes.rst:2735 msgid "``!r``" msgstr "``!r``" -#: library/stdtypes.rst:2605 +#: library/stdtypes.rst:2735 msgid ":func:`repr`" msgstr ":func:`repr`" -#: library/stdtypes.rst:2606 +#: library/stdtypes.rst:2736 msgid "``!s``" msgstr "``!s``" -#: library/stdtypes.rst:2606 +#: library/stdtypes.rst:2736 msgid ":func:`str`" msgstr ":func:`str`" -#: library/stdtypes.rst:2609 -msgid "For example:" -msgstr "Για παράδειγμα:" - -#: library/stdtypes.rst:2611 +#: library/stdtypes.rst:2741 msgid "" ">>> from fractions import Fraction\n" ">>> f'{Fraction(1, 3)!s}'\n" @@ -5159,7 +5288,7 @@ msgstr "" ">>> print(f'{question!a}')\n" "'\\xbfD\\xf3nde est\\xe1 el Presidente?'" -#: library/stdtypes.rst:2622 +#: library/stdtypes.rst:2752 msgid "" "While debugging it may be helpful to see both the expression and its value, " "by using the equals sign (``=``) after the expression. This preserves spaces " @@ -5173,7 +5302,7 @@ msgstr "" "αποσφαλμάτωσης χρησιμοποιεί τη μετατροπή :func:`repr` (``!r``). Για " "παράδειγμα:" -#: library/stdtypes.rst:2628 +#: library/stdtypes.rst:2758 msgid "" ">>> from fractions import Fraction\n" ">>> calculation = Fraction(1, 3)\n" @@ -5193,7 +5322,7 @@ msgstr "" ">>> f'{calculation = !s}'\n" "'calculation = 1/3'" -#: library/stdtypes.rst:2639 +#: library/stdtypes.rst:2769 msgid "" "Once the output has been evaluated, it can be formatted using a :ref:`format " "specifier ` following a colon (``':'``). After the expression " @@ -5202,15 +5331,16 @@ msgid "" "empty string if no format specifier is given. The formatted result is then " "used as the final value for the replacement field. For example:" msgstr "" -"Μόλις η έξοδος έχει αξιολογηθεί, μπορεί να μορφοποιηθεί χρησιμοποιώντας ένα :" -"ref:`format specifier ` που ακολουθείται από άνω και κάτω " -"τελεία (``':'``). Αφού η έκφραση έχει αξιολογηθεί και, πιθανώς μετατραπεί σε " -"συμβολοσειρά, καλείται η μέθοδος :meth:`!__format__` του αποτελέσματος με " -"τον καθοριστή μορφοποίησης, ή η κενή συμβολοσειρά αν δεν έχει δοθεί " -"καθοριστής μορφοποίησης. Το μορφοποιημένο αποτέλεσμα χρησιμοποιείται στη " -"συνέχεια ως η τελική τιμή για το πεδίο αντικατάστασης. Για παράδειγμα:" +"Μόλις η έξοδος έχει αξιολογηθεί, μπορεί να μορφοποιηθεί χρησιμοποιώντας " +"ένα :ref:`format specifier ` που ακολουθείται από άνω και " +"κάτω τελεία (``':'``). Αφού η έκφραση έχει αξιολογηθεί και, πιθανώς " +"μετατραπεί σε συμβολοσειρά, καλείται η μέθοδος :meth:`!__format__` του " +"αποτελέσματος με τον καθοριστή μορφοποίησης, ή η κενή συμβολοσειρά αν δεν " +"έχει δοθεί καθοριστής μορφοποίησης. Το μορφοποιημένο αποτέλεσμα " +"χρησιμοποιείται στη συνέχεια ως η τελική τιμή για το πεδίο αντικατάστασης. " +"Για παράδειγμα:" -#: library/stdtypes.rst:2647 +#: library/stdtypes.rst:2777 msgid "" ">>> from fractions import Fraction\n" ">>> f'{Fraction(1, 7):.6f}'\n" @@ -5224,30 +5354,34 @@ msgstr "" ">>> f'{Fraction(1, 7):_^+10}'\n" "'___+1/7___'" -#: library/stdtypes.rst:2659 +#: library/stdtypes.rst:2789 msgid "``printf``-style String Formatting" msgstr "``printf``-style String Formatting" -#: library/stdtypes.rst:2672 +#: library/stdtypes.rst:2802 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." +"dictionaries correctly)." msgstr "" "Οι λειτουργίες μορφοποίησης που περιγράφονται εδώ παρουσιάζουν μια ποικιλία " -"ιδιορρυθμιών που οδηγούν σε έναν αριθμό κοινών σφαλμάτων (όπως η αποτυχία " -"εμφάνισης tuple και σωστών λεξικών). Χρησιμοποιώντας τα νεότερα :ref:" -"`formatted string literals `, το :meth:`str.format` interface ή " -"το :ref:`template strings ` μπορεί να βοηθήσει στην " -"αποφυγή αυτών των σφαλμάτων. Κάθε μία από αυτές τις εναλλακτικές παρέχει " -"τους δικούς τις συμβιβασμούς και τα οφέλη της απλότητας, ευελιξίας και/ή " -"επεκτασιμότητας." +"ιδιορρυθμιών που οδηγούν σε μια σειρά από κοινά σφάλματα (όπως η αποτυχία " +"εμφάνισης των πλειάδων και των λεξικών σωστά)." -#: library/stdtypes.rst:2680 +#: library/stdtypes.rst:2806 +msgid "" +"Using :ref:`formatted string literals `, the :meth:`str.format` " +"interface, or :class:`string.Template` may help avoid these errors. Each of " +"these alternatives provides their own trade-offs and benefits of simplicity, " +"flexibility, and/or extensibility." +msgstr "" +"Η χρήση των :ref:`formatted string literals `, της " +"διεπαφής :meth:`str.format` ή της :class:`string.Template` μπορεί να " +"βοηθήσει στην αποφυγεή αυτών των σφαλμάτων. Καθεμία από αυτές τις " +"εναλλακτικές προσφέρει τους δικούς της συμβιβασμούς και πλεονεκτήματα ως " +"προς την απλότητα, την ευελιξία και/ή την επεκτασιμότητα." + +#: library/stdtypes.rst:2811 msgid "" "String objects have one unique built-in operation: the ``%`` operator " "(modulo). This is also known as the string *formatting* or *interpolation* " @@ -5264,7 +5398,7 @@ msgstr "" "είναι παρόμοιο με τη χρήση του :c:func:`sprintf` στη γλώσσα C. Για " "παράδειγμα:" -#: library/stdtypes.rst:2687 +#: library/stdtypes.rst:2818 msgid "" ">>> print('%s has %d quote types.' % ('Python', 2))\n" "Python has 2 quote types." @@ -5272,7 +5406,7 @@ msgstr "" ">>> print('%s has %d quote types.' % ('Python', 2))\n" "Python has 2 quote types." -#: library/stdtypes.rst:2692 +#: library/stdtypes.rst:2823 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 " @@ -5285,7 +5419,7 @@ msgstr "" "από το format string ή ένα μεμονωμένο αντικείμενο αντιστοίχισης (για " "παράδειγμα, ένα λεξικό)." -#: library/stdtypes.rst:3961 +#: library/stdtypes.rst:4093 msgid "" "A conversion specifier contains two or more characters and has the following " "components, which must occur in this order:" @@ -5293,11 +5427,11 @@ msgstr "" "Ένας προσδιοριστής μετατροπής περιέχει δύο ή περισσότερους χαρακτήρες και " "έχει τους εξής components, οι οποίοι πρέπει να εμφανίζονται με αυτή τη σειρά:" -#: library/stdtypes.rst:3964 +#: library/stdtypes.rst:4096 msgid "The ``'%'`` character, which marks the start of the specifier." msgstr "Ο χαρακτήρας ```%''``, που σηματοδοτεί την αρχή του προσδιοριστή." -#: library/stdtypes.rst:3966 +#: library/stdtypes.rst:4098 msgid "" "Mapping key (optional), consisting of a parenthesised sequence of characters " "(for example, ``(somename)``)." @@ -5305,7 +5439,7 @@ msgstr "" "Κλειδί mapping (προαιρετικό), που αποτελείται από μια ακολουθία χαρακτήρων " "σε παρένθεση (για παράδειγμα, ``(somename)``)." -#: library/stdtypes.rst:3969 +#: library/stdtypes.rst:4101 msgid "" "Conversion flags (optional), which affect the result of some conversion " "types." @@ -5313,7 +5447,7 @@ msgstr "" "Δείκτες μετατροπής (προαιρετικό), που επηρεάζουν το αποτέλεσμα κάποιων τύπων " "μετατροπής." -#: library/stdtypes.rst:3972 +#: library/stdtypes.rst:4104 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 " @@ -5324,7 +5458,7 @@ msgstr "" "*values*, και το αντικείμενο προς μετατροπή έρχεται μετά από το ελάχιστο " "πλάτος πεδίου και το προαιρετικό precision." -#: library/stdtypes.rst:3976 +#: library/stdtypes.rst:4108 msgid "" "Precision (optional), given as a ``'.'`` (dot) followed by the precision. " "If specified as ``'*'`` (an asterisk), the actual precision is read from the " @@ -5336,15 +5470,15 @@ msgstr "" "διαβάζεται από το επόμενο στοιχείο του tuple στα *values*, και η τιμή προς " "μετατροπή έρχεται μετά το precision." -#: library/stdtypes.rst:3981 +#: library/stdtypes.rst:4113 msgid "Length modifier (optional)." msgstr "Μετατροπέας του length (προαιρετικό)." -#: library/stdtypes.rst:3983 +#: library/stdtypes.rst:4115 msgid "Conversion type." msgstr "Τύπος conversion." -#: library/stdtypes.rst:2726 +#: library/stdtypes.rst:2857 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 " @@ -5357,7 +5491,7 @@ msgstr "" "``'%'``. Το κλειδί αντιστοίχισης επιλέγει την τιμή που θα μορφοποιηθεί από " "την αντιστοίχιση. Για παράδειγμα:" -#: library/stdtypes.rst:3994 +#: library/stdtypes.rst:4126 msgid "" "In this case no ``*`` specifiers may occur in a format (since they require a " "sequential parameter list)." @@ -5365,38 +5499,38 @@ msgstr "" "Σε αυτήν την περίπτωση δεν μπορεί να υπάρχουν προσδιοριστές ``*`` σε μια " "μορφή (καθώς απαιτούν μια διαδοχική λίστα παραμέτρων)." -#: library/stdtypes.rst:3997 +#: library/stdtypes.rst:4129 msgid "The conversion flag characters are:" msgstr "Οι δείκτες μετατροπής είναι:" -#: library/stdtypes.rst:4006 +#: library/stdtypes.rst:4138 msgid "Flag" msgstr "Flag" -#: library/stdtypes.rst:4008 +#: library/stdtypes.rst:4140 msgid "``'#'``" msgstr "``'#'``" -#: library/stdtypes.rst:4008 +#: library/stdtypes.rst:4140 msgid "" "The value conversion will use the \"alternate form\" (where defined below)." msgstr "" "Οι μετατροπή τιμής θα χρησιμοποιήσει την \"εναλλακτική φόρμα\" (όπου " "ορίζεται παρακάτω)." -#: library/stdtypes.rst:4011 +#: library/stdtypes.rst:4143 msgid "``'0'``" msgstr "``'0'``" -#: library/stdtypes.rst:4011 +#: library/stdtypes.rst:4143 msgid "The conversion will be zero padded for numeric values." msgstr "Η μετατροπή θα έχει μηδενική συμπλήρωση για αριθμητικές τιμές." -#: library/stdtypes.rst:4013 +#: library/stdtypes.rst:4145 msgid "``'-'``" msgstr "``'-'``" -#: library/stdtypes.rst:4013 +#: library/stdtypes.rst:4145 msgid "" "The converted value is left adjusted (overrides the ``'0'`` conversion if " "both are given)." @@ -5404,11 +5538,11 @@ msgstr "" "Η τιμή μετατροπής αφήνεται προσαρμοσμένη (παρακάμπτει τη μετατροπή ``'0'`` " "εάν δίνονται και τα δύο)." -#: library/stdtypes.rst:4016 +#: library/stdtypes.rst:4148 msgid "``' '``" msgstr "``' '``" -#: library/stdtypes.rst:4016 +#: library/stdtypes.rst:4148 msgid "" "(a space) A blank should be left before a positive number (or empty string) " "produced by a signed conversion." @@ -5416,11 +5550,11 @@ msgstr "" "(ένα κενό) Πρέπει να προστεθεί ένα κενό πριν από έναν θετικό αριθμό (ή κενή " "συμβολοσειρά) που παράγεται από μια υπογεγραμμένη μετατροπή." -#: library/stdtypes.rst:4019 +#: library/stdtypes.rst:4151 msgid "``'+'``" msgstr "``'+'``" -#: library/stdtypes.rst:4019 +#: library/stdtypes.rst:4151 msgid "" "A sign character (``'+'`` or ``'-'``) will precede the conversion (overrides " "a \"space\" flag)." @@ -5428,7 +5562,7 @@ msgstr "" "Ένα χαρακτήρας προσήμου (``'+'`` ή ``'-'``) θα προηγείται της μετατροπής " "(παρακάμπτει ένα \"κενό\" δείκτη)." -#: library/stdtypes.rst:4023 +#: library/stdtypes.rst:4155 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``." @@ -5437,87 +5571,87 @@ msgstr "" "αγνοείται καθώς δεν είναι απαραίτητος για την Python -- οπότε π.χ. ``%ld`` " "είναι πανομοιότυπο σε ``%d``." -#: library/stdtypes.rst:4026 +#: library/stdtypes.rst:4158 msgid "The conversion types are:" msgstr "Οι τύποι μετατροπής είναι:" -#: library/stdtypes.rst:4031 +#: library/stdtypes.rst:4163 msgid "``'d'``" msgstr "``'d'``" -#: library/stdtypes.rst:2774 library/stdtypes.rst:4033 +#: library/stdtypes.rst:2905 library/stdtypes.rst:4165 msgid "Signed integer decimal." msgstr "Υπογεγραμμένος δεκαδικός ακέραιος." -#: library/stdtypes.rst:4033 +#: library/stdtypes.rst:4165 msgid "``'i'``" msgstr "``'i'``" -#: library/stdtypes.rst:4035 +#: library/stdtypes.rst:4167 msgid "``'o'``" msgstr "``'o'``" -#: library/stdtypes.rst:4035 +#: library/stdtypes.rst:4167 msgid "Signed octal value." msgstr "Υπογεγραμμένη οκταδική τιμή." -#: library/stdtypes.rst:4037 +#: library/stdtypes.rst:4169 msgid "``'u'``" msgstr "``'u'``" -#: library/stdtypes.rst:4037 +#: library/stdtypes.rst:4169 msgid "Obsolete type -- it is identical to ``'d'``." msgstr "Απαρχαιωμένος τύπος -- είναι πανομοιότυπος με το ``'d'``." -#: library/stdtypes.rst:4039 +#: library/stdtypes.rst:4171 msgid "``'x'``" msgstr "``'x'``" -#: library/stdtypes.rst:4039 +#: library/stdtypes.rst:4171 msgid "Signed hexadecimal (lowercase)." msgstr "Υπογεγραμμένο δεκαεξαδικό (πεζά)." -#: library/stdtypes.rst:4041 +#: library/stdtypes.rst:4173 msgid "``'X'``" msgstr "``'X'``" -#: library/stdtypes.rst:4041 +#: library/stdtypes.rst:4173 msgid "Signed hexadecimal (uppercase)." msgstr "Υπογεγραμμένο δεκαεξαδικό (κεφαλαίο)." -#: library/stdtypes.rst:4043 +#: library/stdtypes.rst:4175 msgid "``'e'``" msgstr "``'e'``" -#: library/stdtypes.rst:4043 +#: library/stdtypes.rst:4175 msgid "Floating-point exponential format (lowercase)." msgstr "Εκθετική μορφή κινητής υποδιαστολής (πεζά)" -#: library/stdtypes.rst:4045 +#: library/stdtypes.rst:4177 msgid "``'E'``" msgstr "``'E'``" -#: library/stdtypes.rst:4045 +#: library/stdtypes.rst:4177 msgid "Floating-point exponential format (uppercase)." msgstr "Εκθετική μορφή κινητής υποδιαστολής (κεφαλαία)" -#: library/stdtypes.rst:4047 +#: library/stdtypes.rst:4179 msgid "``'f'``" msgstr "``'f'``" -#: library/stdtypes.rst:2790 library/stdtypes.rst:4049 +#: library/stdtypes.rst:2921 library/stdtypes.rst:4181 msgid "Floating-point decimal format." msgstr "Δεκαδική μορφή κινητής υποδιαστολής." -#: library/stdtypes.rst:4049 +#: library/stdtypes.rst:4181 msgid "``'F'``" msgstr "``'F'``" -#: library/stdtypes.rst:4051 +#: library/stdtypes.rst:4183 msgid "``'g'``" msgstr "``'g'``" -#: library/stdtypes.rst:4051 +#: library/stdtypes.rst:4183 msgid "" "Floating-point format. Uses lowercase exponential format if exponent is less " "than -4 or not less than precision, decimal format otherwise." @@ -5526,11 +5660,11 @@ msgstr "" "είναι μικρότερος από -4 ή όχι μικρότερος από την ακρίβεια, διαφορετικά " "χρησιμοποιεί δεκαδική μορφή." -#: library/stdtypes.rst:4055 +#: library/stdtypes.rst:4187 msgid "``'G'``" msgstr "``'G'``" -#: library/stdtypes.rst:4055 +#: library/stdtypes.rst:4187 msgid "" "Floating-point format. Uses uppercase exponential format if exponent is less " "than -4 or not less than precision, decimal format otherwise." @@ -5539,56 +5673,56 @@ msgstr "" "εκθέτης είναι μικρότερος από -4 ή όχι μικρότερος από την ακρίβεια, " "διαφορετικά χρησιμοποιεί δεκαδική μορφή." -#: library/stdtypes.rst:4059 +#: library/stdtypes.rst:4191 msgid "``'c'``" msgstr "``'c'``" -#: library/stdtypes.rst:2800 +#: library/stdtypes.rst:2931 msgid "Single character (accepts integer or single character string)." msgstr "" "Μεμονωμένος χαρακτήρας (δέχεται ακέραιο ή μονό χαρακτήρα συμβολοσειράς)." -#: library/stdtypes.rst:4072 +#: library/stdtypes.rst:4204 msgid "``'r'``" msgstr "``'r'``" -#: library/stdtypes.rst:2803 +#: library/stdtypes.rst:2934 msgid "String (converts any Python object using :func:`repr`)." msgstr "" -"Συμβολοσειρά (μετατρέπει οποιοδήποτε αντικείμενο Python χρησιμοποιώντας :" -"func:`repr`)." +"Συμβολοσειρά (μετατρέπει οποιοδήποτε αντικείμενο Python " +"χρησιμοποιώντας :func:`repr`)." -#: library/stdtypes.rst:4066 +#: library/stdtypes.rst:4198 msgid "``'s'``" msgstr "``'s'``" -#: library/stdtypes.rst:2806 +#: library/stdtypes.rst:2937 msgid "String (converts any Python object using :func:`str`)." msgstr "" -"Συμβολοσειρά (μετατρέπει οποιοδήποτε αντικείμενο Python χρησιμοποιώντας :" -"func:`str`)." +"Συμβολοσειρά (μετατρέπει οποιοδήποτε αντικείμενο Python " +"χρησιμοποιώντας :func:`str`)." -#: library/stdtypes.rst:4069 +#: library/stdtypes.rst:4201 msgid "``'a'``" msgstr "``'a'``" -#: library/stdtypes.rst:2809 +#: library/stdtypes.rst:2940 msgid "String (converts any Python object using :func:`ascii`)." msgstr "" -"Συμβολοσειρά (μετατρέπει οποιοδήποτε αντικείμενο Python χρησιμοποιώντας :" -"func:`ascii`)." +"Συμβολοσειρά (μετατρέπει οποιοδήποτε αντικείμενο Python " +"χρησιμοποιώντας :func:`ascii`)." -#: library/stdtypes.rst:4075 +#: library/stdtypes.rst:4207 msgid "``'%'``" msgstr "``'%'``" -#: library/stdtypes.rst:4075 +#: library/stdtypes.rst:4207 msgid "No argument is converted, results in a ``'%'`` character in the result." msgstr "" "Κανένα όρισμα δεν μετατρέπεται, έχει ως αποτέλεσμα έναν χαρακτήρα ``'%'`` το " "αποτέλεσμα." -#: library/stdtypes.rst:4082 +#: library/stdtypes.rst:4214 msgid "" "The alternate form causes a leading octal specifier (``'0o'``) to be " "inserted before the first digit." @@ -5596,7 +5730,7 @@ msgstr "" "Η εναλλακτική μορφή προκαλεί την εισαγωγή ενός πρώτου οκταδικού προσδιοριστή " "(``'0o'``) πριν από το πρώτο ψηφίο." -#: library/stdtypes.rst:4086 +#: library/stdtypes.rst:4218 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 " @@ -5606,7 +5740,7 @@ msgstr "" "(ανάλογα με το εάν χρησιμοποιήθηκε η μορφή ``'x'`` ή ``'X'``) πριν το πρώτο " "ψηφίο." -#: library/stdtypes.rst:4090 +#: library/stdtypes.rst:4222 msgid "" "The alternate form causes the result to always contain a decimal point, even " "if no digits follow it." @@ -5614,7 +5748,7 @@ msgstr "" "Η εναλλακτική μορφή κάνει το αποτέλεσμα να περιέχει πάντα μια υποδιαστολή, " "ακόμα κι αν δεν ακολουθούν ψηφία." -#: library/stdtypes.rst:4093 +#: library/stdtypes.rst:4225 msgid "" "The precision determines the number of digits after the decimal point and " "defaults to 6." @@ -5622,7 +5756,7 @@ msgstr "" "Η ακρίβεια καθορίζει τον αριθμό των ψηφίων μετά την υποδιαστολή και ορίζεται " "από προεπιλογή ως 6." -#: library/stdtypes.rst:4097 +#: library/stdtypes.rst:4229 msgid "" "The alternate form causes the result to always contain a decimal point, and " "trailing zeroes are not removed as they would otherwise be." @@ -5630,7 +5764,7 @@ msgstr "" "Η εναλλακτική μορφή κάνει το αποτέλεσμα να περιέχει πάντα μια υποδιαστολή " "και τα μηδενικά στο τέλος δεν αφαιρούνται όπως θα ήταν διαφορετικά." -#: library/stdtypes.rst:4100 +#: library/stdtypes.rst:4232 msgid "" "The precision determines the number of significant digits before and after " "the decimal point and defaults to 6." @@ -5638,15 +5772,15 @@ msgstr "" "Η ακρίβεια καθορίζει τον αριθμό των σημαντικών ψηφίων πριν και μετά την " "υποδιαστολή και ορίζει το 6." -#: library/stdtypes.rst:4104 +#: library/stdtypes.rst:4236 msgid "If precision is ``N``, the output is truncated to ``N`` characters." msgstr "Εάν η ακρίβεια είναι``N``, η έξοδος περικόπτεται σε ``N`` χαρακτήρες." -#: library/stdtypes.rst:4113 +#: library/stdtypes.rst:4245 msgid "See :pep:`237`." msgstr "Βλέπε :pep:`237`." -#: library/stdtypes.rst:2846 +#: library/stdtypes.rst:2977 msgid "" "Since Python strings have an explicit length, ``%s`` conversions do not " "assume that ``'\\0'`` is the end of the string." @@ -5654,7 +5788,7 @@ msgstr "" "Δεδομένου ότι οι συμβολοσειρές Python έχουν ρητό μήκος, οι ``%s`` μετατροπές " "δεν υποθέτουν ότι το ``'\\0'`` είναι το τέλος της συμβολοσειράς." -#: library/stdtypes.rst:2851 +#: library/stdtypes.rst:2982 msgid "" "``%f`` conversions for numbers whose absolute value is over 1e50 are no " "longer replaced by ``%g`` conversions." @@ -5662,20 +5796,20 @@ msgstr "" "Οι μετατροπείς ``%f`` για αριθμούς των οποίων η απόλυτη τιμή είναι " "μεγαλύτερη από 1e50 δεν αντικαθίστανται πλέον από μετατροπές ``%g``." -#: library/stdtypes.rst:2862 +#: library/stdtypes.rst:2993 msgid "" -"Binary Sequence Types --- :class:`bytes`, :class:`bytearray`, :class:" -"`memoryview`" +"Binary Sequence Types " +"--- :class:`bytes`, :class:`bytearray`, :class:`memoryview`" msgstr "" -"Τύποι δυαδικής ακολουθίας --- :class:`bytes`, :class:`bytearray`, :class:" -"`memoryview`" +"Τύποι δυαδικής ακολουθίας " +"--- :class:`bytes`, :class:`bytearray`, :class:`memoryview`" -#: library/stdtypes.rst:2870 +#: library/stdtypes.rst:3001 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." +"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 "" "Οι βασικοί ενσωματωμένοι (built-in) τύποι για τον χειρισμό δυαδικών " "δεδομένων είναι :class:`bytes` και :class:`bytearray`. Υποστηρίζονται από " @@ -5683,7 +5817,7 @@ msgstr "" "` για την πρόσβαση στη μνήμη άλλων δυαδικών αντικειμένων " "χωρίς να χρειάζεται η δημιουργία αντιγράφου." -#: library/stdtypes.rst:2875 +#: library/stdtypes.rst:3006 msgid "" "The :mod:`array` module supports efficient storage of basic data types like " "32-bit integers and IEEE754 double-precision floating values." @@ -5692,11 +5826,11 @@ msgstr "" "δεδομένων όπως 32-bit ακέραιους και IEEE754 διπλής ακρίβειας κινητής " "υποδιαστολής τιμές." -#: library/stdtypes.rst:2881 +#: library/stdtypes.rst:3012 msgid "Bytes Objects" msgstr "Αντικείμενα Bytes" -#: library/stdtypes.rst:2885 +#: library/stdtypes.rst:3016 msgid "" "Bytes objects are immutable sequences of single bytes. Since many major " "binary protocols are based on the ASCII text encoding, bytes objects offer " @@ -5709,7 +5843,7 @@ msgstr "" "ισχύουν μόνο όταν εργάζονται με δεδομένα συμβατά με ASCII και σχετίζονται " "στενά με αντικείμενα συμβολοσειρών σε μια ποικιλία διαφόρων τρόπων." -#: library/stdtypes.rst:2892 +#: library/stdtypes.rst:3024 msgid "" "Firstly, the syntax for bytes literals is largely the same as that for " "string literals, except that a ``b`` prefix is added:" @@ -5718,25 +5852,25 @@ msgstr "" "για τα literals συμβολοσειρών, με τη διαφορά ότι προστίθεται ένα πρόθεμα " "``b``::" -#: library/stdtypes.rst:2895 +#: library/stdtypes.rst:3027 msgid "Single quotes: ``b'still allows embedded \"double\" quotes'``" msgstr "" "Μονά εισαγωγικά: ``b'ακόμα επιτρέπει ενσωματωμένα \"διπλά\" εισαγωγικά'``" -#: library/stdtypes.rst:2896 +#: library/stdtypes.rst:3028 msgid "Double quotes: ``b\"still allows embedded 'single' quotes\"``" msgstr "" "Διπλά εισαγωγικά: ``b\"εξακολουθεί να επιτρέπει ενσωματωμένα 'μονά' " "εισαγωγικά\"``" -#: library/stdtypes.rst:2897 +#: library/stdtypes.rst:3029 msgid "" "Triple quoted: ``b'''3 single quotes'''``, ``b\"\"\"3 double quotes\"\"\"``" msgstr "" "Τριπλά εισαγωγικά: ``b'''3 μονά εισαγωγικά'''``, ``b\"\"\"3 διπλά " "εισαγωγικά\"\"\"``" -#: library/stdtypes.rst:2899 +#: library/stdtypes.rst:3031 msgid "" "Only ASCII characters are permitted in bytes literals (regardless of the " "declared source code encoding). Any binary values over 127 must be entered " @@ -5747,7 +5881,7 @@ msgstr "" "127, πρέπει να εισαχθούν σε bytes literals χρησιμοποιώντας την κατάλληλη " "ακολουθία διαφυγής χαρακτήρων." -#: library/stdtypes.rst:2903 +#: library/stdtypes.rst:3035 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 " @@ -5759,7 +5893,7 @@ msgstr "" "πληροφορίες σχετικά με τις διάφορες μορφές bytes literal, " "συμπεριλαμβανομένων των υποστηριζόμενων ακολουθιών διαφυγής χαρακτήρων." -#: library/stdtypes.rst:2907 +#: library/stdtypes.rst:3039 msgid "" "While bytes literals and representations are based on ASCII text, bytes " "objects actually behave like immutable sequences of integers, with each " @@ -5782,7 +5916,7 @@ msgstr "" "εφαρμογή αλγορίθμων επεξεργασίας κειμένου σε δυαδικές μορφές δεδομένων που " "δεν είναι συμβατές με ASCII συνήθως οδηγεί σε καταστροφή δεδομένων)." -#: library/stdtypes.rst:2917 +#: library/stdtypes.rst:3049 msgid "" "In addition to the literal forms, bytes objects can be created in a number " "of other ways:" @@ -5790,25 +5924,25 @@ msgstr "" "Εκτός από τις literal μορφές, τα αντικείμενα bytes μπορούν να δημιουργηθούν " "με πολλούς άλλους τρόπους:" -#: library/stdtypes.rst:2920 +#: library/stdtypes.rst:3052 msgid "A zero-filled bytes object of a specified length: ``bytes(10)``" msgstr "Ένα μηδενικό αντικείμενο bytes με καθορισμένο μήκος: ``bytes(10)``" -#: library/stdtypes.rst:2921 +#: library/stdtypes.rst:3053 msgid "From an iterable of integers: ``bytes(range(20))``" msgstr "Από ένα iterable ακεραίων αριθμών: ``bytes(range(20))``" -#: library/stdtypes.rst:2922 +#: library/stdtypes.rst:3054 msgid "Copying existing binary data via the buffer protocol: ``bytes(obj)``" msgstr "" "Αντιγραφή υπαρχόντων δυαδικών δεδομένων μέσω του πρωτοκόλλου buffer: " "``bytes(obj)``" -#: library/stdtypes.rst:2924 +#: library/stdtypes.rst:3056 msgid "Also see the :ref:`bytes ` built-in." msgstr "Δείτε επίσης το ενσωματωμένο :ref:`bytes `." -#: library/stdtypes.rst:2926 +#: library/stdtypes.rst:3058 msgid "" "Since 2 hexadecimal digits correspond precisely to a single byte, " "hexadecimal numbers are a commonly used format for describing binary data. " @@ -5820,7 +5954,7 @@ msgstr "" "περιγραφή δυαδικών δεδομένων. Συνεπώς, ο τύπος bytes έχει μια πρόσθετη " "μέθοδο κλάσης για την ανάγνωση δεδομένων σε αυτήν την μορφή:" -#: library/stdtypes.rst:2932 +#: library/stdtypes.rst:3064 msgid "" "This :class:`bytes` class method returns a bytes object, decoding the given " "string object. The string must contain two hexadecimal digits per byte, " @@ -5831,7 +5965,7 @@ msgstr "" "πρέπει να περιέχει δύο δεκαεξαδικά ψηφία ανά byte, με το κενό διάστημα ASCII " "να αγνοείται." -#: library/stdtypes.rst:2939 +#: library/stdtypes.rst:3071 msgid "" ":meth:`bytes.fromhex` now skips all ASCII whitespace in the string, not just " "spaces." @@ -5839,7 +5973,7 @@ msgstr "" "Το :meth:`bytes.fromhex` παρακάμπτει πλέον όλα τα κενά ASCII στη " "συμβολοσειρά, όχι μόνο τα κενά." -#: library/stdtypes.rst:2943 +#: library/stdtypes.rst:3075 msgid "" ":meth:`bytes.fromhex` now accepts ASCII :class:`bytes` and :term:`bytes-like " "objects ` as input." @@ -5847,7 +5981,7 @@ msgstr "" "Η :meth:`bytes.fromhex` δέχεται πλέον ASCII :class:`bytes` και :term:`bytes-" "like objects ` ως είσοδο." -#: library/stdtypes.rst:2947 +#: library/stdtypes.rst:3079 msgid "" "A reverse conversion function exists to transform a bytes object into its " "hexadecimal representation." @@ -5855,7 +5989,7 @@ msgstr "" "Υπάρχει μια συνάρτηση αντίστροφης μετατροπής για τη μετατροπή ενός " "αντικειμένου bytes στην δεκαεξαδική του αναπαράσταση." -#: library/stdtypes.rst:3041 +#: library/stdtypes.rst:3176 msgid "" "Return a string object containing two hexadecimal digits for each byte in " "the instance." @@ -5863,7 +5997,7 @@ msgstr "" "Επιστρέφετε ένα αντικείμενο συμβολοσειράς που περιέχει δύο δεκαεξαδικά ψηφία " "για κάθε byte στο στιγμιότυπο." -#: library/stdtypes.rst:2958 +#: library/stdtypes.rst:3091 msgid "" "If you want to make the hex string easier to read, you can specify a single " "character separator *sep* parameter to include in the output. By default, " @@ -5878,7 +6012,7 @@ msgstr "" "*bytes_per_sep* ελέγχει τα διαστήματα. Οι θετικές τιμές υπολογίζουν τη θέση " "του διαχωριστή από τα δεξιά, οι αρνητικές τιμές από τα αριστερά." -#: library/stdtypes.rst:2975 +#: library/stdtypes.rst:3108 msgid "" ":meth:`bytes.hex` now supports optional *sep* and *bytes_per_sep* parameters " "to insert separators between bytes in the hex output." @@ -5887,7 +6021,7 @@ msgstr "" "*bytes_per_sep* για την εισαγωγή διαχωριστικών μεταξύ των byte στην έξοδο " "δεκαεξαδικού." -#: library/stdtypes.rst:2979 +#: library/stdtypes.rst:3112 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 " @@ -5901,7 +6035,7 @@ msgstr "" "η λειτουργία πρόσβασης ως ευρετήριο όσο και η λειτουργία τμηματοποίησης θα " "παράγουν μια συμβολοσειρά μήκους 1)" -#: library/stdtypes.rst:2984 +#: library/stdtypes.rst:3117 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 " @@ -5912,11 +6046,11 @@ msgstr "" "46])``. Μπορείτε πάντα να μετατρέψετε ένα αντικείμενο bytes σε μια λίστα " "ακέραιων αριθμών που χρησιμοποιούν ``list(b)``." -#: library/stdtypes.rst:2992 +#: library/stdtypes.rst:3125 msgid "Bytearray Objects" msgstr "Αντικείμενα Bytearray" -#: library/stdtypes.rst:2996 +#: library/stdtypes.rst:3129 msgid "" ":class:`bytearray` objects are a mutable counterpart to :class:`bytes` " "objects." @@ -5924,7 +6058,7 @@ msgstr "" "Τα αντικείμενα :class:`bytearray` είναι ένα μεταβλητό, αντίστοιχο, των " "αντικειμένων :class:`bytes`." -#: library/stdtypes.rst:3001 +#: library/stdtypes.rst:3135 msgid "" "There is no dedicated literal syntax for bytearray objects, instead they are " "always created by calling the constructor:" @@ -5932,26 +6066,26 @@ msgstr "" "Δεν υπάρχει αποκλειστική literal σύνταξη για αντικείμενα bytearray, αντίθετα " "δημιουργούνται πάντα καλώντας τον constructor:" -#: library/stdtypes.rst:3004 +#: library/stdtypes.rst:3138 msgid "Creating an empty instance: ``bytearray()``" msgstr "Δημιουργία ενός κενού στιγμιοτύπου: ``bytearray()``" -#: library/stdtypes.rst:3005 +#: library/stdtypes.rst:3139 msgid "Creating a zero-filled instance with a given length: ``bytearray(10)``" msgstr "Δημιουργία μηδενικού στιγμιοτύπου με δεδομένο μήκος: ``bytearray(10)``" -#: library/stdtypes.rst:3006 +#: library/stdtypes.rst:3140 msgid "From an iterable of integers: ``bytearray(range(20))``" msgstr "Από έναν iterable αριθμό ακεραίων: ``bytearray(range(20))``" -#: library/stdtypes.rst:3007 +#: library/stdtypes.rst:3141 msgid "" "Copying existing binary data via the buffer protocol: ``bytearray(b'Hi!')``" msgstr "" "Αντιγραφή υπαρχόντων δυαδικών δεδομένων μέσω του πρωτοκόλλου buffer: " "``bytearray(b'Hi!')``" -#: library/stdtypes.rst:3009 +#: library/stdtypes.rst:3143 msgid "" "As bytearray objects are mutable, they support the :ref:`mutable ` sequence operations in addition to the common bytes and bytearray " @@ -5962,11 +6096,11 @@ msgstr "" "κοινών λειτουργιών bytes και bytearray που περιγράφονται στο :ref:`bytes-" "methods`." -#: library/stdtypes.rst:3013 +#: library/stdtypes.rst:3147 msgid "Also see the :ref:`bytearray ` built-in." msgstr "Δείτε επίσης το ενσωματωμένο :ref:`bytearray `." -#: library/stdtypes.rst:3015 +#: library/stdtypes.rst:3149 msgid "" "Since 2 hexadecimal digits correspond precisely to a single byte, " "hexadecimal numbers are a commonly used format for describing binary data. " @@ -5978,7 +6112,7 @@ msgstr "" "δυαδικών δεδομένων. Συνεπώς, ο τύπος bytearray έχει μια πρόσθετη μέθοδο " "κλάσης για την ανάγνωση δεδομένων σε αυτήν την μορφή:" -#: library/stdtypes.rst:3021 +#: library/stdtypes.rst:3155 msgid "" "This :class:`bytearray` class method returns bytearray object, decoding the " "given string object. The string must contain two hexadecimal digits per " @@ -5989,7 +6123,7 @@ msgstr "" "πρέπει να περιέχει δύο δεκαεξαδικά ψηφία ανά byte, με το κενό διάστημα ASCII " "να αγνοείται." -#: library/stdtypes.rst:3028 +#: library/stdtypes.rst:3162 msgid "" ":meth:`bytearray.fromhex` now skips all ASCII whitespace in the string, not " "just spaces." @@ -5997,15 +6131,15 @@ msgstr "" "Το :meth:`bytearray.fromhex` παρακάμπτει τώρα όλα τα κενά ASCII στη " "συμβολοσειρά, όχι μόνο τα κενά." -#: library/stdtypes.rst:3032 +#: library/stdtypes.rst:3166 msgid "" ":meth:`bytearray.fromhex` now accepts ASCII :class:`bytes` and :term:`bytes-" "like objects ` as input." msgstr "" -"Η :meth:`bytearray.fromhex` δέχεται πλέον το ASCII :class:`bytes` και :term:" -"`bytes-like objects ` ως είσοδο." +"Η :meth:`bytearray.fromhex` δέχεται πλέον το ASCII :class:`bytes` " +"και :term:`bytes-like objects ` ως είσοδο." -#: library/stdtypes.rst:3036 +#: library/stdtypes.rst:3170 msgid "" "A reverse conversion function exists to transform a bytearray object into " "its hexadecimal representation." @@ -6013,7 +6147,7 @@ msgstr "" "Υπάρχει μια συνάρτηση αντίστροφης μετατροπής για να μετατρέψει ένα " "αντικείμενο bytearray στη δεκαεξαδική αναπαράσταση του." -#: library/stdtypes.rst:3049 +#: library/stdtypes.rst:3184 msgid "" "Similar to :meth:`bytes.hex`, :meth:`bytearray.hex` now supports optional " "*sep* and *bytes_per_sep* parameters to insert separators between bytes in " @@ -6023,7 +6157,7 @@ msgstr "" "προαιρετικές παραμέτρους *sep* και *bytes_per_sep* για την εισαγωγή " "διαχωριστικών μεταξύ των byte στην δεκαεξαδική έξοδο." -#: library/stdtypes.rst:3056 +#: library/stdtypes.rst:3191 msgid "" "Resize the :class:`bytearray` to contain *size* bytes. *size* must be " "greater than or equal to 0." @@ -6031,14 +6165,14 @@ msgstr "" "Αλλάζει το μέγεθος του :class:`bytearray` ώστε αν περιέχει *size* bytes. Το " "*size* πρέπει να είναι μεγαλύτερο ή ίσο με το 0." -#: library/stdtypes.rst:3059 +#: library/stdtypes.rst:3194 msgid "" "If the :class:`bytearray` needs to shrink, bytes beyond *size* are truncated." msgstr "" "Εάν η :class:`bytearray` χρειάζεται να συρρικνωθεί, τα bytes πέραν του " "*size* περικόπτονται." -#: library/stdtypes.rst:3061 +#: library/stdtypes.rst:3196 msgid "" "If the :class:`bytearray` needs to grow, all new bytes, those beyond *size*, " "will be set to null bytes." @@ -6046,15 +6180,15 @@ msgstr "" "Εάν η :class:`bytearray` χρειάζεται να αυξηθεί, όλα τα νέα bytes, αυτά που " "είναι πέρα από το *size*, θα οριστούν σε null bytes." -#: library/stdtypes.rst:3065 +#: library/stdtypes.rst:3200 msgid "This is equivalent to:" msgstr "Ισοδύναμο με:" -#: library/stdtypes.rst:3073 +#: library/stdtypes.rst:3208 msgid "Examples:" msgstr "Παραδείγματα:" -#: library/stdtypes.rst:3086 +#: library/stdtypes.rst:3221 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 " @@ -6068,7 +6202,7 @@ msgstr "" "κειμένου, όπου τόσο το indexing και το slicing θα παράγουν μια συμβολοσειρά " "μήκους 1)" -#: library/stdtypes.rst:3091 +#: library/stdtypes.rst:3226 msgid "" "The representation of bytearray objects uses the bytes literal format " "(``bytearray(b'...')``) since it is often more useful than e.g. " @@ -6080,11 +6214,11 @@ msgstr "" "``bytearray([46, 46, 46])``. Μπορείτε πάντα να μετατρέψετε ένα αντικείμενο " "bytearray σε λίστα ακεραίων χρησιμοποιώντας το ``list(b)``." -#: library/stdtypes.rst:3100 +#: library/stdtypes.rst:3235 msgid "Bytes and Bytearray Operations" msgstr "Λειτουργίες Bytes και Bytearray" -#: library/stdtypes.rst:3105 +#: library/stdtypes.rst:3240 msgid "" "Both bytes and bytearray objects support the :ref:`common ` " "sequence operations. They interoperate not just with operands of the same " @@ -6094,12 +6228,13 @@ msgid "" msgstr "" "Τόσο τα byte όσο και τα αντικείμενα του πίνακα byte υποστηρίζουν τις " "λειτουργίες της ακολουθίας :ref:`common `. Αλληλεπιδρούν " -"όχι μόνο με τελεστές του ίδιου τύπου, αλλά και με οποιοδήποτε αντικείμενο :" -"term:`bytes-like object`. Λόγω αυτής της ευελιξίας, μπορούν να αναμειχθούν " -"ελεύθερα σε λειτουργίες χωρίς να προκαλούνται σφάλματα. Ωστόσο, ο τύπος " -"επιστροφής του αποτελέσματος μπορεί να εξαρτάται από τη σειρά των τελεστών." +"όχι μόνο με τελεστές του ίδιου τύπου, αλλά και με οποιοδήποτε " +"αντικείμενο :term:`bytes-like object`. Λόγω αυτής της ευελιξίας, μπορούν να " +"αναμειχθούν ελεύθερα σε λειτουργίες χωρίς να προκαλούνται σφάλματα. Ωστόσο, " +"ο τύπος επιστροφής του αποτελέσματος μπορεί να εξαρτάται από τη σειρά των " +"τελεστών." -#: library/stdtypes.rst:3113 +#: library/stdtypes.rst:3248 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 " @@ -6109,7 +6244,7 @@ msgstr "" "ως ορίσματά τους, όπως και οι μέθοδοι σε συμβολοσειρές δεν δέχονται bytes ως " "ορίσματα. Για παράδειγμα, πρέπει να γράψετε::" -#: library/stdtypes.rst:3117 +#: library/stdtypes.rst:3252 msgid "" "a = \"abc\"\n" "b = a.replace(\"a\", \"f\")" @@ -6117,11 +6252,11 @@ msgstr "" "a = \"abc\"\n" "b = a.replace(\"a\", \"f\")" -#: library/stdtypes.rst:3120 +#: library/stdtypes.rst:3255 msgid "and::" msgstr "και::" -#: library/stdtypes.rst:3122 +#: library/stdtypes.rst:3257 msgid "" "a = b\"abc\"\n" "b = a.replace(b\"a\", b\"f\")" @@ -6129,7 +6264,7 @@ msgstr "" "a = b\"abc\"\n" "b = a.replace(b\"a\", b\"f\")" -#: library/stdtypes.rst:3125 +#: library/stdtypes.rst:3260 msgid "" "Some bytes and bytearray operations assume the use of ASCII compatible " "binary formats, and hence should be avoided when working with arbitrary " @@ -6140,7 +6275,7 @@ msgstr "" "εργάζεστε με αυθαίρετα δυαδικά δεδομένα. Αυτοί οι περιορισμοί καλύπτονται " "παρακάτω." -#: library/stdtypes.rst:3130 +#: library/stdtypes.rst:3265 msgid "" "Using these ASCII based operations to manipulate binary data that is not " "stored in an ASCII based format may lead to data corruption." @@ -6149,7 +6284,7 @@ msgstr "" "δεδομένων που δεν είναι αποθηκευμένα σε μορφή που βασίζεται σε ASCII μπορεί " "να οδηγήσει σε καταστροφή δεδομένων." -#: library/stdtypes.rst:3133 +#: library/stdtypes.rst:3268 msgid "" "The following methods on bytes and bytearray objects can be used with " "arbitrary binary data." @@ -6157,7 +6292,7 @@ msgstr "" "Οι ακόλουθες μέθοδοι σε byte και αντικείμενα bytearray μπορούν να " "χρησιμοποιηθούν με αυθαίρετα δυαδικά δεδομένα." -#: library/stdtypes.rst:3139 +#: library/stdtypes.rst:3274 msgid "" "Return the number of non-overlapping occurrences of subsequence *sub* in the " "range [*start*, *end*]. Optional arguments *start* and *end* are " @@ -6167,8 +6302,8 @@ msgstr "" "ακολουθίας *sub* στο εύρος [*start*, *end*]. Τα προαιρετικά ορίσματα *start* " "και *end* ερμηνεύονται όπως στη σημειογραφία τμηματοποίησης." -#: library/stdtypes.rst:3248 library/stdtypes.rst:3336 -#: library/stdtypes.rst:3349 +#: library/stdtypes.rst:3383 library/stdtypes.rst:3471 +#: library/stdtypes.rst:3484 msgid "" "The subsequence to search for may be any :term:`bytes-like object` or an " "integer in the range 0 to 255." @@ -6176,7 +6311,7 @@ msgstr "" "Η υποακολουθία για αναζήτηση μπορεί να είναι οποιοδήποτε :term:`bytes-like " "object` ή ένας ακέραιος αριθμός στην περιοχή από 0 έως 255." -#: library/stdtypes.rst:3146 +#: library/stdtypes.rst:3281 msgid "" "If *sub* is empty, returns the number of empty slices between characters " "which is the length of the bytes object plus one." @@ -6184,13 +6319,13 @@ msgstr "" "Εάν το *sub* είναι κενό, επιστρέφει τον αριθμό των κενών τμημάτων μεταξύ των " "χαρακτήρων που είναι το μήκος του αντικειμένου bytes συν ένα." -#: library/stdtypes.rst:3260 library/stdtypes.rst:3339 -#: library/stdtypes.rst:3352 +#: library/stdtypes.rst:3395 library/stdtypes.rst:3474 +#: library/stdtypes.rst:3487 msgid "Also accept an integer in the range 0 to 255 as the subsequence." msgstr "" "Επίσης αποδέχεται έναν ακέραιο αριθμό στο εύρος 0 έως 255 ως υποακολουθία." -#: library/stdtypes.rst:3156 +#: library/stdtypes.rst:3291 msgid "" "If the binary data starts with the *prefix* string, return " "``bytes[len(prefix):]``. Otherwise, return a copy of the original binary " @@ -6200,7 +6335,7 @@ msgstr "" "``bytes[len(prefix):]``. Διαφορετικά επιστρέψτε ένα αντίγραφο των αρχικών " "δυαδικών δεδομένων::" -#: library/stdtypes.rst:3160 +#: library/stdtypes.rst:3295 msgid "" ">>> b'TestHook'.removeprefix(b'Test')\n" "b'Hook'\n" @@ -6212,15 +6347,15 @@ msgstr "" ">>> b'BaseTestCase'.removeprefix(b'Test')\n" "b'BaseTestCase'" -#: library/stdtypes.rst:3165 +#: library/stdtypes.rst:3300 msgid "The *prefix* may be any :term:`bytes-like object`." msgstr "Το *prefix* μπορεί να είναι οποιοδήποτε :term:`bytes-like object`." -#: library/stdtypes.rst:3191 library/stdtypes.rst:3417 -#: library/stdtypes.rst:3462 library/stdtypes.rst:3518 -#: library/stdtypes.rst:3607 library/stdtypes.rst:3774 -#: library/stdtypes.rst:3872 library/stdtypes.rst:3915 -#: library/stdtypes.rst:4117 +#: library/stdtypes.rst:3326 library/stdtypes.rst:3552 +#: library/stdtypes.rst:3596 library/stdtypes.rst:3651 +#: library/stdtypes.rst:3739 library/stdtypes.rst:3906 +#: library/stdtypes.rst:4004 library/stdtypes.rst:4047 +#: library/stdtypes.rst:4249 msgid "" "The bytearray version of this method does *not* operate in place - it always " "produces a new object, even if no changes were made." @@ -6228,7 +6363,7 @@ msgstr "" "Η έκδοση bytearray αυτής της μεθόδου *δεν* λειτουργεί στη θέση της - παράγει " "πάντα ένα νέο αντικείμενο, ακόμα και αν δεν έγιναν αλλαγές." -#: library/stdtypes.rst:3178 +#: library/stdtypes.rst:3313 msgid "" "If the binary data ends with the *suffix* string and that *suffix* is not " "empty, return ``bytes[:-len(suffix)]``. Otherwise, return a copy of the " @@ -6238,7 +6373,7 @@ msgstr "" "*suffix* δεν είναι κενό, επιστρέφει ``bytes[:-len(suffix)]``. Διαφορετικά, " "επιστρέφει ένα αντίγραφο των αρχικών δυαδικών δεδομένων::" -#: library/stdtypes.rst:3182 +#: library/stdtypes.rst:3317 msgid "" ">>> b'MiscTests'.removesuffix(b'Tests')\n" "b'Misc'\n" @@ -6250,20 +6385,20 @@ msgstr "" ">>> b'TmpDirMixin'.removesuffix(b'Tests')\n" "b'TmpDirMixin'" -#: library/stdtypes.rst:3187 +#: library/stdtypes.rst:3322 msgid "The *suffix* may be any :term:`bytes-like object`." msgstr "Το *suffix* μπορεί να είναι οποιοδήποτε :term:`bytes-like object`." -#: library/stdtypes.rst:3200 +#: library/stdtypes.rst:3335 msgid "Return the bytes decoded to a :class:`str`." msgstr "Επιστρέφει τα bytes που έχουν αποκωδικοποιηθεί σε μια :class:`str`." -#: library/stdtypes.rst:3205 +#: library/stdtypes.rst:3340 msgid "" "*errors* controls how decoding errors are handled. If ``'strict'`` (the " "default), a :exc:`UnicodeError` exception is raised. Other possible values " -"are ``'ignore'``, ``'replace'``, and any other name registered via :func:" -"`codecs.register_error`. See :ref:`error-handlers` for details." +"are ``'ignore'``, ``'replace'``, and any other name registered " +"via :func:`codecs.register_error`. See :ref:`error-handlers` for details." msgstr "" "Το *errors* ελέγχει τον τρόπο χειρισμού των σφαλμάτων αποκωδικοποίησης. Εάν " "``'strict'`` (η προεπιλογή), γίνεται raise μια εξαίρεση :exc:`UnicodeError`. " @@ -6271,29 +6406,29 @@ msgstr "" "άλλο όνομα που έχει καταχωρηθεί από την :func:`codecs.register_error`. " "Βλέπε :ref:`error-handlers` για λεπτομέρειες." -#: library/stdtypes.rst:3211 +#: library/stdtypes.rst:3346 msgid "" "For performance reasons, the value of *errors* is not checked for validity " -"unless a decoding error actually occurs, :ref:`devmode` is enabled or a :ref:" -"`debug build ` is used." +"unless a decoding error actually occurs, :ref:`devmode` is enabled or " +"a :ref:`debug build ` is used." msgstr "" "Για λόγους απόδοσης, η τιμή του *errors* δεν ελέγχεται ως προς την " "εγκυρότητα του, εκτός εάν παρουσιαστεί ένα σφάλμα αποκωδικοποίησης, είναι " "ενεργοποιημένο το :ref:`devmode` ή χρησιμοποιείται ένα :ref:`debug build " "`." -#: library/stdtypes.rst:3217 +#: library/stdtypes.rst:3352 msgid "" -"Passing the *encoding* argument to :class:`str` allows decoding any :term:" -"`bytes-like object` directly, without needing to make a temporary :class:`!" -"bytes` or :class:`!bytearray` object." +"Passing the *encoding* argument to :class:`str` allows decoding " +"any :term:`bytes-like object` directly, without needing to make a " +"temporary :class:`!bytes` or :class:`!bytearray` object." msgstr "" "Η μετάδοση του ορίσματος *encoding* στην :class:`str` επιτρέπει την " "αποκωδικοποίηση οποιουδήποτε :term:`bytes-like object` απευθείας, χωρίς να " -"χρειάζεται να δημιουργήσετε ένα προσωρινό αντικείμενο :class:`!bytes` ή :" -"class:`!bytearray`." +"χρειάζεται να δημιουργήσετε ένα προσωρινό αντικείμενο :class:`!bytes` " +"ή :class:`!bytearray`." -#: library/stdtypes.rst:3232 +#: library/stdtypes.rst:3367 msgid "" "Return ``True`` if the binary data ends with the specified *suffix*, " "otherwise return ``False``. *suffix* can also be a tuple of suffixes to " @@ -6306,13 +6441,13 @@ msgstr "" "προαιρετικό *start*, η δοκιμή ξεκινά από αυτή τη θέση. Με το προαιρετικό " "*end*, σταματήστε να συγκρίνετε σε αυτή τη θέση." -#: library/stdtypes.rst:3237 +#: library/stdtypes.rst:3372 msgid "The suffix(es) to search for may be any :term:`bytes-like object`." msgstr "" "Το(α) επίθεμα(τα) για αναζήτηση μπορεί να είναι οποιοδήποτε :term:`bytes-" "like object`." -#: library/stdtypes.rst:3243 +#: library/stdtypes.rst:3378 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 " @@ -6324,17 +6459,17 @@ msgstr "" "προαιρετικά ορίσματα *start* και *end* ερμηνεύονται ως συμβολισμό " "τμηματοποίησης. Επιστρέφει ``-1`` εάν το *sub* δεν βρεθεί." -#: library/stdtypes.rst:3253 +#: library/stdtypes.rst:3388 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::" +"position of *sub*. To check if *sub* is a substring or not, use " +"the :keyword:`in` operator::" msgstr "" "Η μέθοδος :meth:`~bytes.find` θα πρέπει να χρησιμοποιείται μόνο εάν " "χρειάζεται να γνωρίζετε τη θέση του *sub*. Για να ελέγξετε εάν το *sub* " "είναι υποσυμβολοσειρά ή όχι, χρησιμοποιήστε τον τελεστή :keyword:`in`::" -#: library/stdtypes.rst:3257 +#: library/stdtypes.rst:3392 msgid "" ">>> b'Py' in b'Python'\n" "True" @@ -6342,7 +6477,7 @@ msgstr "" ">>> b'Py' in b'Python'\n" "True" -#: library/stdtypes.rst:3267 +#: library/stdtypes.rst:3402 msgid "" "Like :meth:`~bytes.find`, but raise :exc:`ValueError` when the subsequence " "is not found." @@ -6350,7 +6485,7 @@ msgstr "" "Όπως η :meth:`~bytes.find`, αλλά κάνει raise μια :exc:`ValueError` όταν δεν " "βρεθεί η δευτερεύουσα ακολουθία." -#: library/stdtypes.rst:3280 +#: library/stdtypes.rst:3415 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 " @@ -6362,16 +6497,16 @@ msgstr "" "Επιστρέφει ένα αντικείμενο bytes ή bytearray που είναι η συνένωση των " "δυαδικών ακολουθιών δεδομένων στο *iterable*. Μια :exc:`TypeError` θα γίνει " "raise εάν υπάρχουν τιμές στο *iterable* που δεν είναι σαν :term:`bytes-like " -"objects `, συμπεριλαμβανομένων των αντικειμένων :class:" -"`str`. Το διαχωριστικό μεταξύ των στοιχειών είναι τα περιεχόμενα των byte ή " -"του αντικειμένου bytearray που παρέχει αυτή τη μέθοδο." +"objects `, συμπεριλαμβανομένων των " +"αντικειμένων :class:`str`. Το διαχωριστικό μεταξύ των στοιχειών είναι τα " +"περιεχόμενα των byte ή του αντικειμένου bytearray που παρέχει αυτή τη μέθοδο." -#: library/stdtypes.rst:3291 +#: library/stdtypes.rst:3426 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." +"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 "" "Αυτή η στατική μέθοδος επιστρέφει έναν πίνακα μετάφρασης που μπορεί να " "χρησιμοποιηθεί για την :meth:`bytes.translate` που θα αντιστοιχίσει κάθε " @@ -6379,7 +6514,7 @@ msgstr "" "*to* πρέπει να είναι και τα δύο :term:`bytes-like objects ` και να έχουν το ίδιο μήκος." -#: library/stdtypes.rst:3302 +#: library/stdtypes.rst:3437 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 " @@ -6393,13 +6528,13 @@ msgstr "" "διαχωριστικό, επιστρέφει μια 3-πλειάδα που περιέχει ένα αντίγραφο της " "αρχικής ακολουθίας, ακολουθούμενη από δύο κενά byte ή αντικείμενα bytearray." -#: library/stdtypes.rst:3366 +#: library/stdtypes.rst:3501 msgid "The separator to search for may be any :term:`bytes-like object`." msgstr "" "Το διαχωριστικό για αναζήτηση μπορεί να είναι οποιοδήποτε :term:`bytes-like " "object`." -#: library/stdtypes.rst:3315 +#: library/stdtypes.rst:3450 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 " @@ -6410,15 +6545,15 @@ msgstr "" "προαιρετικό όρισμα *count*, αντικαθίστανται μόνο οι πρώτες εμφανίσεις " "*count*." -#: library/stdtypes.rst:3319 +#: library/stdtypes.rst:3454 msgid "" "The subsequence to search for and its replacement may be any :term:`bytes-" "like object`." msgstr "" -"Η ακολουθία για αναζήτηση και αντικατάσταση της μπορεί να είναι οποιοδήποτε :" -"term:`bytes-like object`." +"Η ακολουθία για αναζήτηση και αντικατάσταση της μπορεί να είναι " +"οποιοδήποτε :term:`bytes-like object`." -#: library/stdtypes.rst:3331 +#: library/stdtypes.rst:3466 msgid "" "Return the highest index in the sequence where the subsequence *sub* is " "found, such that *sub* is contained within ``s[start:end]``. Optional " @@ -6430,7 +6565,7 @@ msgstr "" "προαιρετικά ορίσματα *start* και *end* ερμηνεύονται με συμβολισμό " "τμηματοποίησης. Επιστρέφει ``-1`` σε περίπτωση αποτυχίας." -#: library/stdtypes.rst:3346 +#: library/stdtypes.rst:3481 msgid "" "Like :meth:`~bytes.rfind` but raises :exc:`ValueError` when the subsequence " "*sub* is not found." @@ -6438,7 +6573,7 @@ msgstr "" "Όπως η :meth:`~bytes.rfind` αλλά κάνει raise μια :exc:`ValueError` όταν δεν " "βρεθεί η υποακολουθία *sub*." -#: library/stdtypes.rst:3359 +#: library/stdtypes.rst:3494 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 " @@ -6453,7 +6588,7 @@ msgstr "" "κενά byte ή αντικείμενα bytearray, ακολουθούμενα από ένα αντίγραφο της " "αρχικής ακολουθίας." -#: library/stdtypes.rst:3372 +#: library/stdtypes.rst:3507 msgid "" "Return ``True`` if the binary data starts with the specified *prefix*, " "otherwise return ``False``. *prefix* can also be a tuple of prefixes to " @@ -6466,13 +6601,13 @@ msgstr "" "η δοκιμή ξεκινά από αυτή τη θέση. Με το προαιρετικό *end*, σταματάει να " "συγκρίνει σε αυτή τη θέση." -#: library/stdtypes.rst:3377 +#: library/stdtypes.rst:3512 msgid "The prefix(es) to search for may be any :term:`bytes-like object`." msgstr "" "Το(α) πρόθεμα(τα) για αναζήτηση μπορεί να είναι οποιοδήποτε :term:`bytes-" "like object`." -#: library/stdtypes.rst:3383 +#: library/stdtypes.rst:3518 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 " @@ -6484,14 +6619,14 @@ msgstr "" "τα υπόλοιπα byte έχουν αντιστοιχιστεί μέσω του δεδομένου πίνακα μετάφρασης, " "ο οποίος πρέπει να είναι ένα αντικείμενο bytes μήκους 256." -#: library/stdtypes.rst:3388 +#: library/stdtypes.rst:3523 msgid "" "You can use the :func:`bytes.maketrans` method to create a translation table." msgstr "" "Μπορείτε να χρησιμοποιήσετε τη μέθοδο :func:`bytes.maketrans` για να " "δημιουργήσετε έναν πίνακα μετάφρασης." -#: library/stdtypes.rst:3391 +#: library/stdtypes.rst:3526 msgid "" "Set the *table* argument to ``None`` for translations that only delete " "characters::" @@ -6499,7 +6634,7 @@ msgstr "" "Ορίζει το όρισμα *table* σε ``None`` για μεταφράσεις που διαγράφουν μόνο " "χαρακτήρες::" -#: library/stdtypes.rst:3394 +#: library/stdtypes.rst:3529 msgid "" ">>> b'read this short text'.translate(None, b'aeiou')\n" "b'rd ths shrt txt'" @@ -6507,11 +6642,11 @@ msgstr "" ">>> b'read this short text'.translate(None, b'aeiou')\n" "b'rd ths shrt txt'" -#: library/stdtypes.rst:3397 +#: library/stdtypes.rst:3532 msgid "*delete* is now supported as a keyword argument." msgstr "Το *delete* υποστηρίζεται πλέον ως όρισμα λέξης-κλειδιού." -#: library/stdtypes.rst:3401 +#: library/stdtypes.rst:3536 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 " @@ -6525,7 +6660,7 @@ msgstr "" "κατάλληλα ορίσματα. Σημειώστε ότι όλες οι μέθοδοι bytearray σε αυτήν την " "ενότητα *δεν* λειτουργούν στη θέση τους και όμως παράγουν νέα αντικείμενα." -#: library/stdtypes.rst:3410 +#: library/stdtypes.rst:3545 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). " @@ -6534,11 +6669,11 @@ msgid "" msgstr "" "Επιστρέφει ένα αντίγραφο του αντικειμένου με κέντρο σε μια ακολουθία μήκους " "*width*. Η συμπλήρωση πραγματοποιείται χρησιμοποιώντας το καθορισμένο " -"*fillbyte* (η προεπιλογή είναι ένα διάστημα ASCII). Για αντικείμενα :class:" -"`bytes, η αρχική ακολουθία επιστρέφεται εάν το *width* είναι μικρότερο ή ίσο " -"με ``len(s)``." +"*fillbyte* (η προεπιλογή είναι ένα διάστημα ASCII). Για " +"αντικείμενα :class:`bytes, η αρχική ακολουθία επιστρέφεται εάν το *width* " +"είναι μικρότερο ή ίσο με ``len(s)``." -#: library/stdtypes.rst:3424 +#: library/stdtypes.rst:3559 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). " @@ -6551,24 +6686,22 @@ msgstr "" "αντικείμενα :class:`bytes, η αρχική ακολουθία επιστρέφεται εάν το *width* " "είναι μικρότερο ή ίσο με ``len(s)``." -#: library/stdtypes.rst:3438 +#: library/stdtypes.rst:3573 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, " +"*bytes* argument is a binary sequence specifying the set of byte values to " +"be removed. If omitted or ``None``, the *bytes* argument defaults to " +"removing ASCII whitespace. The *bytes* argument is not a prefix; rather, " "all combinations of its values are stripped::" msgstr "" "Επιστρέφει ένα αντίγραφο της ακολουθίας με καθορισμένα βασικά byte που έχουν " -"αφαιρεθεί. Το όρισμα *chars* είναι μια δυαδική ακολουθία που καθορίζει το " -"σύνολο των τιμών byte που πρέπει να αφαιρεθούν - το όνομα αναφέρεται στο " -"γεγονός ότι αυτή η μέθοδος χρησιμοποιείται συνήθως με χαρακτήρες ASCII. Εάν " -"παραληφθεί ή είναι ``None``, το όρισμα *chars* έχει ως προεπιλογή την " -"αφαίρεση του κενού διαστήματος ASCII. Το όρισμα *chars* δεν είναι " -"πρόθεμα, αλλά οι συνδυασμοί των τιμών του αφαιρούνται:" +"αφαιρεθεί. Το όρισμα *bytes* είναι μια δυαδική ακολουθία που καθορίζει το " +"σύνολο των τιμών byte που πρέπει να αφαιρεθούν. Εάν παραληφθεί ή είναι " +"``None``, το όρισμα *bytes* έχει ως προεπιλογή την αφαίρεση του κενού " +"διαστήματος ASCII. Το όρισμα *bytes* δεν είναι πρόθεμα∙ αλλά οι συνδυασμοί " +"των τιμών του αφαιρούνται:" -#: library/stdtypes.rst:3445 +#: library/stdtypes.rst:3579 msgid "" ">>> b' spacious '.lstrip()\n" "b'spacious '\n" @@ -6580,18 +6713,18 @@ msgstr "" ">>> b'www.example.com'.lstrip(b'cmowz.')\n" "b'example.com'" -#: library/stdtypes.rst:3450 +#: library/stdtypes.rst:3584 msgid "" "The binary sequence of byte values to remove may be any :term:`bytes-like " "object`. See :meth:`~bytes.removeprefix` for a method that will remove a " "single prefix string rather than all of a set of characters. For example::" msgstr "" -"Η δυαδική ακολουθία τιμών byte προς κατάργηση μπορεί να είναι οποιαδήποτε :" -"term:`bytes-like object`. Βλέπε :meth:`~bytes.removeprefix` για μια μέθοδο " -"που θα αφαιρέσει μια μεμονωμένη συμβολοσειρά προθέματος αντί όλο το σύνολο " -"χαρακτήρων. Για παράδειγμα::" +"Η δυαδική ακολουθία τιμών byte προς κατάργηση μπορεί να είναι " +"οποιαδήποτε :term:`bytes-like object`. Βλέπε :meth:`~bytes.removeprefix` για " +"μια μέθοδο που θα αφαιρέσει μια μεμονωμένη συμβολοσειρά προθέματος αντί όλο " +"το σύνολο χαρακτήρων. Για παράδειγμα::" -#: library/stdtypes.rst:3455 +#: library/stdtypes.rst:3589 msgid "" ">>> b'Arthur: three!'.lstrip(b'Arthur: ')\n" "b'ee!'\n" @@ -6603,7 +6736,7 @@ msgstr "" ">>> b'Arthur: three!'.removeprefix(b'Arthur: ')\n" "b'three!'" -#: library/stdtypes.rst:3469 +#: library/stdtypes.rst:3603 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). " @@ -6616,7 +6749,7 @@ msgstr "" "είναι ένα διάστημα ASCII). Για αντικείμενα :class:`bytes`, η αρχική " "ακολουθία επιστρέφεται εάν το *width* είναι μικρότερο ή ίσο με ``len(s)``." -#: library/stdtypes.rst:3483 +#: library/stdtypes.rst:3617 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 " @@ -6633,24 +6766,22 @@ msgstr "" "διαχωρισμό από τα δεξιά, η :meth:`rsplit` συμπεριφέρεται όπως :meth:`split` " "που περιγράφεται λεπτομερώς παρακάτω." -#: library/stdtypes.rst:3494 +#: library/stdtypes.rst:3628 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, " +"*bytes* argument is a binary sequence specifying the set of byte values to " +"be removed. If omitted or ``None``, the *bytes* argument defaults to " +"removing ASCII whitespace. The *bytes* argument is not a suffix; rather, " "all combinations of its values are stripped::" msgstr "" -"Επιστρέφει ένα αντίγραφο της ακολουθίας με τα καθορισμένα δευτερεύοντα byte " -"που έχουν αφαιρεθεί. Το όρισμα *chars* είναι μια δυαδική ακολουθία που " -"καθορίζει το σύνολο των τιμών byte που πρέπει να αφαιρεθούν - το όνομα " -"αναφέρεται στο γεγονός ότι αυτή η μέθοδος χρησιμοποιείται συνήθως με " -"χαρακτήρες ASCII. Εάν παραληφθεί ή είναι ``None``, το όρισμα *chars* έχει " -"ως προεπιλογή την αφαίρεση του κενού διαστήματος ASCII. Το όρισμα *chars* " -"δεν είναι επίθημα, αλλά αφαιρούνται όλοι οι συνδυασμοί των τιμών του::" +"Επιστρέφει ένα αντίγραφο της ακολουθίας με τα καθορισμένα δευτερεύοντα bytes " +"που έχουν αφαιρεθεί. Το όρισμα *bytes* είναι μια δυαδική ακολουθία που " +"καθορίζει το σύνολο των τιμών byte που πρέπει να αφαιρεθούν. Εάν παραληφθεί " +"ή είναι ``None``, το όρισμα *bytes* έχει ως προεπιλογή την αφαίρεση του " +"κενού διαστήματος ASCII. Το όρισμα *bytes* δεν είναι επίθημα, αλλά " +"αφαιρούνται όλοι οι συνδυασμοί των τιμών του::" -#: library/stdtypes.rst:3501 +#: library/stdtypes.rst:3634 msgid "" ">>> b' spacious '.rstrip()\n" "b' spacious'\n" @@ -6662,18 +6793,18 @@ msgstr "" ">>> b'mississippi'.rstrip(b'ipz')\n" "b'mississ'" -#: library/stdtypes.rst:3506 +#: library/stdtypes.rst:3639 msgid "" "The binary sequence of byte values to remove may be any :term:`bytes-like " "object`. See :meth:`~bytes.removesuffix` for a method that will remove a " "single suffix string rather than all of a set of characters. For example::" msgstr "" -"Η δυαδική ακολουθία τιμών byte προς κατάργηση μπορεί να είναι οποιοδήποτε :" -"term:`bytes-like object`. Βλέπε τη :meth:`~bytes.removesuffix` για μια " -"μέθοδο που θα αφαιρέσει μια συμβολοσειρά επιθέματος και όχι όλο το σύνολο " -"χαρακτήρων. Για παράδειγμα:" +"Η δυαδική ακολουθία τιμών byte προς κατάργηση μπορεί να είναι " +"οποιοδήποτε :term:`bytes-like object`. Βλέπε τη :meth:`~bytes.removesuffix` " +"για μια μέθοδο που θα αφαιρέσει μια συμβολοσειρά επιθέματος και όχι όλο το " +"σύνολο χαρακτήρων. Για παράδειγμα:" -#: library/stdtypes.rst:3511 +#: library/stdtypes.rst:3644 msgid "" ">>> b'Monty Python'.rstrip(b' Python')\n" "b'M'\n" @@ -6685,7 +6816,7 @@ msgstr "" ">>> b'Monty Python'.removesuffix(b' Python')\n" "b'Monty'" -#: library/stdtypes.rst:3525 +#: library/stdtypes.rst:3658 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 " @@ -6700,7 +6831,7 @@ msgstr "" "ή είναι ``-1``, τότε δεν υπάρχει όριο στον αριθμό των διαχωρισμών (όλες οι " "πιθανές διασπάσεις γίνονται)." -#: library/stdtypes.rst:3531 +#: library/stdtypes.rst:3664 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',')`` " @@ -6718,7 +6849,7 @@ msgstr "" "το ``[bytearray(b'')]`` ανάλογα με τον τύπο του αντικειμένου που χωρίζεται. " "Το όρισμα *sep* μπορεί να είναι οποιοδήποτε :term:`bytes-like object`." -#: library/stdtypes.rst:3541 +#: library/stdtypes.rst:3674 msgid "" ">>> b'1,2,3'.split(b',')\n" "[b'1', b'2', b'3']\n" @@ -6738,7 +6869,7 @@ msgstr "" ">>> b'1<>2<>3<4'.split(b'<>')\n" "[b'1', b'2', b'3<4']" -#: library/stdtypes.rst:3550 +#: library/stdtypes.rst:3683 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 " @@ -6755,7 +6886,7 @@ msgstr "" "ακολουθίας ή μιας ακολουθίας που αποτελείται αποκλειστικά από κενό διάστημα " "ASCII χωρίς καθορισμένο διαχωριστικό επιστρέφει το ``[]``." -#: library/stdtypes.rst:3560 +#: library/stdtypes.rst:3693 msgid "" ">>> b'1 2 3'.split()\n" "[b'1', b'2', b'3']\n" @@ -6771,24 +6902,22 @@ msgstr "" ">>> b' 1 2 3 '.split()\n" "[b'1', b'2', b'3']" -#: library/stdtypes.rst:3571 +#: library/stdtypes.rst:3704 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::" +"removed. The *bytes* argument is a binary sequence specifying the set of " +"byte values to be removed. If omitted or ``None``, the *bytes* argument " +"defaults to removing ASCII whitespace. The *bytes* argument is not a prefix " +"or suffix; rather, all combinations of its values are stripped::" msgstr "" "Επιστρέφει ένα αντίγραφο της ακολουθίας με τα καθορισμένα bytes που " -"προηγούνται και τα bytes που έπονται. Το όρισμα *chars* είναι μια δυαδική " -"ακολουθία που καθορίζει το σύνολο των τιμών byte που πρέπει να αφαιρεθούν - " -"το όνομα αναφέρεται στο γεγονός ότι αυτή η μέθοδος χρησιμοποιείται συνήθως " -"με χαρακτήρες ASCII. Εάν παραλείπεται ή είναι ``None``, το όρισμα *chars* " -"από προεπιλογή αφαιρεί το ASCII λευκό διάστημα. To όρισμα *chars* δεν είναι " -"πρόθεμα ή επίθημα, αλλά αφαιρούνται όλοι οι συνδυασμοί των τιμών του:" +"προηγούνται και τα bytes που έπονται. Το όρισμα *bytes* είναι μια δυαδική " +"ακολουθία που καθορίζει το σύνολο των τιμών byte που πρέπει να αφαιρεθούν. " +"Εάν παραλείπεται ή είναι ``None``, το όρισμα *bytes* από προεπιλογή αφαιρεί " +"το ASCII λευκό διάστημα. To όρισμα *bytes* δεν είναι πρόθεμα ή επίθημα, αλλά " +"αφαιρούνται όλοι οι συνδυασμοί των τιμών του:" -#: library/stdtypes.rst:3579 +#: library/stdtypes.rst:3711 msgid "" ">>> b' spacious '.strip()\n" "b'spacious'\n" @@ -6800,15 +6929,15 @@ msgstr "" ">>> b'www.example.com'.strip(b'cmowz.')\n" "b'example'" -#: library/stdtypes.rst:3584 +#: library/stdtypes.rst:3716 msgid "" "The binary sequence of byte values to remove may be any :term:`bytes-like " "object`." msgstr "" -"Η δυαδική ακολουθία τιμών byte προς αφαίρεση μπορεί να είναι οποιοδήποτε :" -"term:`bytes-like object`." +"Η δυαδική ακολουθία τιμών byte προς αφαίρεση μπορεί να είναι " +"οποιοδήποτε :term:`bytes-like object`." -#: library/stdtypes.rst:3593 +#: library/stdtypes.rst:3725 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 " @@ -6821,7 +6950,7 @@ msgstr "" "την ενότητα *δεν* λειτουργούν στη θέση τους και αντ' αυτού παράγουν νέα " "αντικείμενα." -#: library/stdtypes.rst:3601 +#: library/stdtypes.rst:3733 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 " @@ -6831,7 +6960,7 @@ msgstr "" "χαρακτήρας ASCII, και το πρώτο byte γραμμένο με κεφαλαία και το υπόλοιπο με " "πεζά. Οι τιμές των byte που δεν είναι ASCII μεταβιβάζονται αμετάβλητες." -#: library/stdtypes.rst:3614 +#: library/stdtypes.rst:3746 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 " @@ -6860,7 +6989,7 @@ msgstr "" "αντιγράφεται αμετάβλητη και η τρέχουσα στήλη προσαυξάνεται κατά ένα, " "ανεξάρτητα από το πώς αναπαρίσταται η τιμή byte όταν εκτυπώνεται::" -#: library/stdtypes.rst:3628 +#: library/stdtypes.rst:3760 msgid "" ">>> b'01\\t012\\t0123\\t01234'.expandtabs()\n" "b'01 012 0123 01234'\n" @@ -6872,7 +7001,7 @@ msgstr "" ">>> b'01\\t012\\t0123\\t01234'.expandtabs(4)\n" "b'01 012 0123 01234'" -#: library/stdtypes.rst:3642 +#: library/stdtypes.rst:3774 msgid "" "Return ``True`` if all bytes in the sequence are alphabetical ASCII " "characters or ASCII decimal digits and the sequence is not empty, ``False`` " @@ -6887,7 +7016,7 @@ msgstr "" "``b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'``. Τα δεκαδικά " "ψηφία ASCII είναι αυτές οι τιμές byte στην ακολουθία ``b'0123456789'``." -#: library/stdtypes.rst:3650 +#: library/stdtypes.rst:3782 msgid "" ">>> b'ABCabc1'.isalnum()\n" "True\n" @@ -6899,7 +7028,7 @@ msgstr "" ">>> b'ABC abc1'.isalnum()\n" "False" -#: library/stdtypes.rst:3659 +#: library/stdtypes.rst:3791 msgid "" "Return ``True`` if all bytes in the sequence are alphabetic ASCII characters " "and the sequence is not empty, ``False`` otherwise. Alphabetic ASCII " @@ -6911,7 +7040,7 @@ msgstr "" "αλφαβητικοί χαρακτήρες ASCII είναι εκείνες οι τιμές bytes στην ακολουθία " "``b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'``." -#: library/stdtypes.rst:3666 +#: library/stdtypes.rst:3798 msgid "" ">>> b'ABCabc'.isalpha()\n" "True\n" @@ -6923,7 +7052,7 @@ msgstr "" ">>> b'ABCabc1'.isalpha()\n" "False" -#: library/stdtypes.rst:3675 +#: library/stdtypes.rst:3807 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." @@ -6932,7 +7061,7 @@ msgstr "" "είναι ASCII, ``False`` διαφορετικά. Τα bytes ASCII βρίσκονται στο εύρος " "0-0x7F." -#: library/stdtypes.rst:3685 +#: library/stdtypes.rst:3817 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 " @@ -6942,7 +7071,7 @@ msgstr "" "ASCII και η ακολουθία δεν είναι κενή, ``False`` διαφορετικά. Τα δεκαδικά " "ψηφία ASCII είναι αυτές οι τιμές byte στην ακολουθία ``b'0123456789'``." -#: library/stdtypes.rst:3691 +#: library/stdtypes.rst:3823 msgid "" ">>> b'1234'.isdigit()\n" "True\n" @@ -6954,7 +7083,7 @@ msgstr "" ">>> b'1.23'.isdigit()\n" "False" -#: library/stdtypes.rst:3700 +#: library/stdtypes.rst:3832 msgid "" "Return ``True`` if there is at least one lowercase ASCII character in the " "sequence and no uppercase ASCII characters, ``False`` otherwise." @@ -6962,7 +7091,7 @@ msgstr "" "Επιστρέφει ``True`` εάν υπάρχει τουλάχιστον ένας πεζός χαρακτήρας ASCII στην " "ακολουθία και κανένας κεφαλαίος χαρακτήρας ASCII, ``False`` διαφορετικά." -#: library/stdtypes.rst:3705 +#: library/stdtypes.rst:3837 msgid "" ">>> b'hello world'.islower()\n" "True\n" @@ -6974,8 +7103,8 @@ msgstr "" ">>> b'Hello world'.islower()\n" "False" -#: library/stdtypes.rst:3752 library/stdtypes.rst:3818 -#: library/stdtypes.rst:3887 +#: library/stdtypes.rst:3884 library/stdtypes.rst:3950 +#: library/stdtypes.rst:4019 msgid "" "Lowercase ASCII characters are those byte values in the sequence " "``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters are those byte " @@ -6985,7 +7114,7 @@ msgstr "" "``b'abcdefghijklmnopqrstuvwxyz'``. Οι κεφαλαίοι χαρακτήρες ASCII είναι αυτές " "οι τιμές byte στην ακολουθία ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``." -#: library/stdtypes.rst:3718 +#: library/stdtypes.rst:3850 msgid "" "Return ``True`` if all bytes in the sequence are ASCII whitespace and the " "sequence is not empty, ``False`` otherwise. ASCII whitespace characters are " @@ -6998,7 +7127,7 @@ msgstr "" "\\t\\n\\r\\x0b\\f'`` (κενό, tab, νέα γραμμή, επιστροφή μεταφοράς, κάθετο " "tab, μορφή ροής)." -#: library/stdtypes.rst:3727 +#: library/stdtypes.rst:3859 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 " @@ -7009,7 +7138,7 @@ msgstr "" "``False`` διαφορετικά. Δείτε :meth:`bytes.title` για περισσότερες " "λεπτομέρειες σχετικά με τον ορισμό του \"titlecase\"." -#: library/stdtypes.rst:3733 +#: library/stdtypes.rst:3865 msgid "" ">>> b'Hello World'.istitle()\n" "True\n" @@ -7021,7 +7150,7 @@ msgstr "" ">>> b'Hello world'.istitle()\n" "False" -#: library/stdtypes.rst:3742 +#: library/stdtypes.rst:3874 msgid "" "Return ``True`` if there is at least one uppercase alphabetic ASCII " "character in the sequence and no lowercase ASCII characters, ``False`` " @@ -7031,7 +7160,7 @@ msgstr "" "χαρακτήρας ASCII στην ακολουθία και κανένας πεζός χαρακτήρας ASCII, " "διαφορετικά ``False``." -#: library/stdtypes.rst:3747 +#: library/stdtypes.rst:3879 msgid "" ">>> b'HELLO WORLD'.isupper()\n" "True\n" @@ -7043,7 +7172,7 @@ msgstr "" ">>> b'Hello world'.isupper()\n" "False" -#: library/stdtypes.rst:3760 +#: library/stdtypes.rst:3892 msgid "" "Return a copy of the sequence with all the uppercase ASCII characters " "converted to their corresponding lowercase counterpart." @@ -7051,7 +7180,7 @@ msgstr "" "Επιστρέφει ένα αντίγραφο της ακολουθίας με όλους τους κεφαλαίους χαρακτήρες " "ASCII να έχουν μετατραπεί στα ισοδύναμα πεζά." -#: library/stdtypes.rst:3765 +#: library/stdtypes.rst:3897 msgid "" ">>> b'Hello World'.lower()\n" "b'hello world'" @@ -7059,7 +7188,7 @@ msgstr "" ">>> b'Hello World'.lower()\n" "b'hello world'" -#: library/stdtypes.rst:3785 +#: library/stdtypes.rst:3917 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 " @@ -7067,12 +7196,12 @@ msgid "" "*keepends* is given and true." msgstr "" "Επιστρέφει μια λίστα με τις γραμμές στη δυαδική ακολουθία, σπάζοντας τα όρια " -"γραμμής του ASCII. Αυτή η μέθοδος χρησιμοποιεί την προσέγγιση :term:" -"`universal newlines` για τον διαχωρισμό των γραμμών. Οι αλλαγές γραμμής δεν " -"περιλαμβάνονται στη λίστα που προκύπτει εκτός εάν δοθεί *keepends* και είναι " -"αληθής." +"γραμμής του ASCII. Αυτή η μέθοδος χρησιμοποιεί την " +"προσέγγιση :term:`universal newlines` για τον διαχωρισμό των γραμμών. Οι " +"αλλαγές γραμμής δεν περιλαμβάνονται στη λίστα που προκύπτει εκτός εάν δοθεί " +"*keepends* και είναι αληθής." -#: library/stdtypes.rst:3792 +#: library/stdtypes.rst:3924 msgid "" ">>> b'ab c\\n\\nde fg\\rkl\\r\\n'.splitlines()\n" "[b'ab c', b'', b'de fg', b'kl']\n" @@ -7084,7 +7213,7 @@ msgstr "" ">>> b'ab c\\n\\nde fg\\rkl\\r\\n'.splitlines(keepends=True)\n" "[b'ab c\\n', b'\\n', b'de fg\\r', b'kl\\r\\n']" -#: library/stdtypes.rst:3797 +#: library/stdtypes.rst:3929 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 " @@ -7095,7 +7224,7 @@ msgstr "" "συμβολοσειρά και μια αλλαγή γραμμής τερματικού δεν οδηγεί σε μια επιπλέον " "γραμμή::" -#: library/stdtypes.rst:3801 +#: library/stdtypes.rst:3933 msgid "" ">>> b\"\".split(b'\\n'), b\"Two lines\\n\".split(b'\\n')\n" "([b''], [b'Two lines', b''])\n" @@ -7107,7 +7236,7 @@ msgstr "" ">>> b\"\".splitlines(), b\"One line\\n\".splitlines()\n" "([], [b'One line'])" -#: library/stdtypes.rst:3810 +#: library/stdtypes.rst:3942 msgid "" "Return a copy of the sequence with all the lowercase ASCII characters " "converted to their corresponding uppercase counterpart and vice-versa." @@ -7115,7 +7244,7 @@ msgstr "" "Επιστρέφει ένα αντίγραφο της ακολουθίας με όλους τους πεζούς χαρακτήρες " "ASCII να έχουν μετατραπεί στο αντίστοιχο ισοδύναμο κεφαλαίο και αντίστροφα." -#: library/stdtypes.rst:3815 +#: library/stdtypes.rst:3947 msgid "" ">>> b'Hello World'.swapcase()\n" "b'hELLO wORLD'" @@ -7123,19 +7252,19 @@ msgstr "" ">>> b'Hello World'.swapcase()\n" "b'hELLO wORLD'" -#: library/stdtypes.rst:3822 +#: library/stdtypes.rst:3954 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." +"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 "" -"Σε αντίθεση με το :func:`str.swapcase`, συμβαίνει πάντα ότι ``bin.swapcase()." -"swapcase() == bin`` για τις δυαδικές εκδόσεις. Οι μετατροπές κεφαλαίων είναι " -"συμμετρικές στο ASCII, παρόλο που αυτό δεν ισχύει γενικά για αυθαίρετα " -"σημεία Unicode κώδικα." +"Σε αντίθεση με το :func:`str.swapcase`, συμβαίνει πάντα ότι " +"``bin.swapcase().swapcase() == bin`` για τις δυαδικές εκδόσεις. Οι " +"μετατροπές κεφαλαίων είναι συμμετρικές στο ASCII, παρόλο που αυτό δεν ισχύει " +"γενικά για αυθαίρετα σημεία Unicode κώδικα." -#: library/stdtypes.rst:3836 +#: library/stdtypes.rst:3968 msgid "" "Return a titlecased version of the binary sequence where words start with an " "uppercase ASCII character and the remaining characters are lowercase. " @@ -7146,7 +7275,7 @@ msgstr "" "χαρακτήρα ASCII και οι υπόλοιποι χαρακτήρες είναι πεζοί. Οι τιμές byte χωρίς " "κεφαλαία γράμματα παραμένουν χωρίς τροποποίηση." -#: library/stdtypes.rst:3842 +#: library/stdtypes.rst:3974 msgid "" ">>> b'Hello world'.title()\n" "b'Hello World'" @@ -7154,7 +7283,7 @@ msgstr "" ">>> b'Hello world'.title()\n" "b'Hello World'" -#: library/stdtypes.rst:3845 +#: library/stdtypes.rst:3977 msgid "" "Lowercase ASCII characters are those byte values in the sequence " "``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters are those byte " @@ -7166,7 +7295,7 @@ msgstr "" "εκείνες οι τιμές byte στην ακολουθία ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. Όλες " "οι άλλες τιμές byte είναι χωρίς κεφαλαία." -#: library/stdtypes.rst:3855 +#: library/stdtypes.rst:3987 msgid "" ">>> b\"they're bill's friends from the UK\".title()\n" "b\"They'Re Bill'S Friends From The Uk\"" @@ -7174,14 +7303,14 @@ msgstr "" ">>> b\"they're bill's friends from the UK\".title()\n" "b\"They'Re Bill'S Friends From The Uk\"" -#: library/stdtypes.rst:3858 +#: library/stdtypes.rst:3990 msgid "" "A workaround for apostrophes can be constructed using regular expressions::" msgstr "" "Μια λύση για αποστρόφους μπορεί να δημιουργηθεί χρησιμοποιώντας κανονικές " "εκφράσεις::" -#: library/stdtypes.rst:3860 +#: library/stdtypes.rst:3992 msgid "" ">>> import re\n" ">>> def titlecase(s):\n" @@ -7203,7 +7332,7 @@ msgstr "" ">>> titlecase(b\"they're bill's friends.\")\n" "b\"They're Bill's Friends.\"" -#: library/stdtypes.rst:3879 +#: library/stdtypes.rst:4011 msgid "" "Return a copy of the sequence with all the lowercase ASCII characters " "converted to their corresponding uppercase counterpart." @@ -7211,7 +7340,7 @@ msgstr "" "Επιστρέφει ένα αντίγραφο της ακολουθίας με όλους τους πεζούς χαρακτήρες " "ASCII να έχουν μετατραπεί στο αντίστοιχο ισοδύναμο κεφαλαίο." -#: library/stdtypes.rst:3884 +#: library/stdtypes.rst:4016 msgid "" ">>> b'Hello World'.upper()\n" "b'HELLO WORLD'" @@ -7219,7 +7348,7 @@ msgstr "" ">>> b'Hello World'.upper()\n" "b'HELLO WORLD'" -#: library/stdtypes.rst:3900 +#: library/stdtypes.rst:4032 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 " @@ -7234,7 +7363,7 @@ msgstr "" "αντικείμενα :class:`bytes`, η αρχική ακολουθία επιστρέφεται εάν το *width* " "είναι μικρότερο ή ίσο με ``len(seq)``." -#: library/stdtypes.rst:3908 +#: library/stdtypes.rst:4040 msgid "" ">>> b\"42\".zfill(5)\n" "b'00042'\n" @@ -7246,11 +7375,11 @@ msgstr "" ">>> b\"-42\".zfill(5)\n" "b'-0042'" -#: library/stdtypes.rst:3922 +#: library/stdtypes.rst:4054 msgid "``printf``-style Bytes Formatting" msgstr "Μορφοποίηση Bytes τύπου ``printf``" -#: library/stdtypes.rst:3939 +#: library/stdtypes.rst:4071 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 " @@ -7262,24 +7391,24 @@ msgstr "" "εμφάνισης των πλειάδων και των λεξικών σωστά). Εάν η τιμή που εκτυπώνεται " "μπορεί να είναι πλειάδα ή λεξικό, κάντε το wrap σε μια πλειάδα." -#: library/stdtypes.rst:3944 +#: library/stdtypes.rst:4076 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." +"zero or more elements of *values*. The effect is similar to using " +"the :c:func:`sprintf` in the C language." msgstr "" "Τα αντικείμενα bytes (``bytes``/``bytearray``) έχουν μια μοναδική " "ενσωματωμένη λειτουργία: τον τελεστή ``%`` (modulo). Αυτό είναι επίσης " "γνωστό ως τελεστής bytes *formatting* ή *interpolation*. Δεδομένων των " "``format % values`` (όπου το *format* είναι αντικείμενο bytes), οι " "προδιαγραφές μετατροπής ``%`` σε *format* αντικαθιστά με μηδέν ή περισσότερα " -"στοιχεία *values*. Το αποτέλεσμα είναι παρόμοιο με τη χρήση του :c:func:" -"`sprintf` στη γλώσσας C." +"στοιχεία *values*. Το αποτέλεσμα είναι παρόμοιο με τη χρήση " +"του :c:func:`sprintf` στη γλώσσας C." -#: library/stdtypes.rst:3951 +#: library/stdtypes.rst:4083 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 " @@ -7292,7 +7421,7 @@ msgstr "" "αντικείμενο μορφής bytes ή μεμονωμένο mapping αντικείμενο (για παράδειγμα, " "ένα λεξικό)." -#: library/stdtypes.rst:3985 +#: library/stdtypes.rst:4117 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 " @@ -7305,15 +7434,19 @@ msgstr "" "τον χαρακτήρα ``'%'``. Το κλειδί αντιστοίχισης επιλέγει την τιμή που θα " "μορφοποιηθεί από την αντιστοίχιση. Για παράδειγμα:" -#: library/stdtypes.rst:4059 +#: library/stdtypes.rst:4169 +msgid "\\(8)" +msgstr "\\(8)" + +#: library/stdtypes.rst:4191 msgid "Single byte (accepts integer or single byte objects)." msgstr "Μονό byte (δέχεται ακέραια ή μεμονωμένα byte αντικείμενα)." -#: library/stdtypes.rst:4062 +#: library/stdtypes.rst:4194 msgid "``'b'``" msgstr "``'b'``" -#: library/stdtypes.rst:4062 +#: library/stdtypes.rst:4194 msgid "" "Bytes (any object that follows the :ref:`buffer protocol ` or " "has :meth:`~object.__bytes__`)." @@ -7321,7 +7454,7 @@ msgstr "" "Bytes (κάθε αντικείμενο που ακολουθεί το :ref:`buffer protocol " "` ή έχει :meth:`~object.__bytes__`)." -#: library/stdtypes.rst:4066 +#: library/stdtypes.rst:4198 msgid "" "``'s'`` is an alias for ``'b'`` and should only be used for Python2/3 code " "bases." @@ -7329,15 +7462,15 @@ msgstr "" "Το ``'s'`` είναι ένα ψευδώνυμο για το ``'b'`` και θα πρέπει να " "χρησιμοποιείται μόνο για κώδικα βάσει Python2/3." -#: library/stdtypes.rst:4069 +#: library/stdtypes.rst:4201 msgid "" "Bytes (converts any Python object using ``repr(obj).encode('ascii', " "'backslashreplace')``)." msgstr "" -"Bytes (μετατρέπει οποιοδήποτε αντικείμενο Python χρησιμοποιώντας ``repr(obj)." -"encode('ascii', 'backslashreplace')``)." +"Bytes (μετατρέπει οποιοδήποτε αντικείμενο Python χρησιμοποιώντας " +"``repr(obj).encode('ascii', 'backslashreplace')``)." -#: library/stdtypes.rst:4072 +#: library/stdtypes.rst:4204 msgid "" "``'r'`` is an alias for ``'a'`` and should only be used for Python2/3 code " "bases." @@ -7345,31 +7478,31 @@ msgstr "" "Το ``'r'`` είναι ένα ψευδώνυμο για ``'a'`` και θα πρέπει να χρησιμοποιείται " "μόνο για βάσεις κώδικα Python2/3." -#: library/stdtypes.rst:4072 +#: library/stdtypes.rst:4204 msgid "\\(7)" msgstr "\\(7)" -#: library/stdtypes.rst:4107 +#: library/stdtypes.rst:4239 msgid "``b'%s'`` is deprecated, but will not be removed during the 3.x series." msgstr "" "Το ``b'%s'`` έχει καταργηθεί, αλλά δεν θα αφαιρεθεί κατά τη διάρκεια της " "σειράς 3.x." -#: library/stdtypes.rst:4110 +#: library/stdtypes.rst:4242 msgid "``b'%r'`` is deprecated, but will not be removed during the 3.x series." msgstr "" "Το ``b'%r'`` έχει καταργηθεί, αλλά δεν θα αφαιρεθεί κατά τη διάρκεια της " "σειράς 3.x." -#: library/stdtypes.rst:4122 +#: library/stdtypes.rst:4254 msgid ":pep:`461` - Adding % formatting to bytes and bytearray" msgstr ":pep:`461` - Προσθήκη % για μορφοποίηση σε bytes και bytearray" -#: library/stdtypes.rst:4129 +#: library/stdtypes.rst:4261 msgid "Memory Views" msgstr "Όψεις Μνήμης" -#: library/stdtypes.rst:4131 +#: library/stdtypes.rst:4263 msgid "" ":class:`memoryview` objects allow Python code to access the internal data of " "an object that supports the :ref:`buffer protocol ` without " @@ -7379,7 +7512,7 @@ msgstr "" "πρόσβαση στα εσωτερικά δεδομένα ενός αντικειμένου που υποστηρίζει το " "πρωτόκολλο :ref:`buffer protocol ` χωρίς αντιγραφή." -#: library/stdtypes.rst:4137 +#: library/stdtypes.rst:4269 msgid "" "Create a :class:`memoryview` that references *object*. *object* must " "support the buffer protocol. Built-in objects that support the buffer " @@ -7387,10 +7520,10 @@ msgid "" msgstr "" "Δημιουργεί μια :class:`memoryview` που αναφέρεται στο *object*. Το *object* " "πρέπει να υποστηρίζει το πρωτόκολλο buffer. Τα ενσωματωμένα αντικείμενα που " -"υποστηρίζουν το πρωτόκολλο buffer περιλαμβάνουν :class:`bytes` και :class:" -"`bytearray`." +"υποστηρίζουν το πρωτόκολλο buffer περιλαμβάνουν :class:`bytes` " +"και :class:`bytearray`." -#: library/stdtypes.rst:4141 +#: library/stdtypes.rst:4273 msgid "" "A :class:`memoryview` has the notion of an *element*, which is the atomic " "memory unit handled by the originating *object*. For many simple types such " @@ -7403,25 +7536,25 @@ msgstr "" "ένα μεμονωμένο byte, αλλά άλλοι τύποι όπως :class:`array.array` μπορεί να " "έχουν μεγαλύτερα στοιχεία." -#: library/stdtypes.rst:4146 +#: library/stdtypes.rst:4278 msgid "" "``len(view)`` is equal to the length of :class:`~memoryview.tolist`, which " "is the nested list representation of the view. If ``view.ndim = 1``, this is " "equal to the number of elements in the view." msgstr "" "Το ``len(view)`` ισούται με το μήκος του :class:`~memoryview.tolist`, το " -"οποίο είναι η ένθετη αναπαράσταση κατά την προβολή της λίστας. Εάν ``view." -"ndim = 1``, αυτό ισούται με τον αριθμό των στοιχείων για την προβολή." +"οποίο είναι η ένθετη αναπαράσταση κατά την προβολή της λίστας. Εάν " +"``view.ndim = 1``, αυτό ισούται με τον αριθμό των στοιχείων για την προβολή." -#: library/stdtypes.rst:4150 +#: library/stdtypes.rst:4282 msgid "" "If ``view.ndim == 0``, ``len(view)`` now raises :exc:`TypeError` instead of " "returning 1." msgstr "" -"Εάν ``view.ndim == 0``, το ``len(view)`` τώρα κάνει raise μια :exc:" -"`TypeError` αντί να επιστρέψει 1." +"Εάν ``view.ndim == 0``, το ``len(view)`` τώρα κάνει raise " +"μια :exc:`TypeError` αντί να επιστρέψει 1." -#: library/stdtypes.rst:4153 +#: library/stdtypes.rst:4285 msgid "" "The :class:`~memoryview.itemsize` attribute will give you the number of " "bytes in a single element." @@ -7429,7 +7562,7 @@ msgstr "" "Το χαρακτηριστικό :class:`~memoryview.itemsize` θα σας δώσει τον αριθμό των " "byte σε ένα μόνο στοιχείο." -#: library/stdtypes.rst:4156 +#: library/stdtypes.rst:4288 msgid "" "A :class:`memoryview` supports slicing and indexing to expose its data. One-" "dimensional slicing will result in a subview::" @@ -7438,7 +7571,7 @@ msgstr "" "μέσω ευρετηρίου στα δεδομένα του. Μια μονοδιάστατη τμηματοποίηση θα έχει ως " "αποτέλεσμα μια δευτερεύουσα προβολή::" -#: library/stdtypes.rst:4159 +#: library/stdtypes.rst:4291 msgid "" ">>> v = memoryview(b'abcefg')\n" ">>> v[1]\n" @@ -7460,7 +7593,7 @@ msgstr "" ">>> bytes(v[1:4])\n" "b'bce'" -#: library/stdtypes.rst:4169 +#: library/stdtypes.rst:4301 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 " @@ -7480,11 +7613,11 @@ msgstr "" "διαστάσεων. Τα μηδενικών διαστάσεων memoryviews μπορούν να γίνουν indexed " "με την κενή πλειάδα (tuple)." -#: library/stdtypes.rst:4178 +#: library/stdtypes.rst:4310 msgid "Here is an example with a non-byte format::" msgstr "Ακολουθεί ένα παράδειγμα με μη-byte μορφή::" -#: library/stdtypes.rst:4180 +#: library/stdtypes.rst:4312 msgid "" ">>> import array\n" ">>> a = array.array('l', [-11111111, 22222222, -33333333, 44444444])\n" @@ -7506,7 +7639,7 @@ msgstr "" ">>> m[::2].tolist()\n" "[-11111111, -33333333]" -#: library/stdtypes.rst:4190 +#: library/stdtypes.rst:4322 msgid "" "If the underlying object is writable, the memoryview supports one-" "dimensional slice assignment. Resizing is not allowed::" @@ -7514,7 +7647,7 @@ msgstr "" "Εάν το βασικό αντικείμενο είναι εγγράψιμο, το memoryview υποστηρίζει " "μονοδιάστατη εκχώρηση τμηματοποίησης. Δεν επιτρέπεται η αλλαγή μεγέθους::" -#: library/stdtypes.rst:4193 +#: library/stdtypes.rst:4325 msgid "" ">>> data = bytearray(b'abcefg')\n" ">>> v = memoryview(data)\n" @@ -7554,7 +7687,7 @@ msgstr "" ">>> data\n" "bytearray(b'z1spam')" -#: library/stdtypes.rst:4211 +#: library/stdtypes.rst:4343 msgid "" "One-dimensional memoryviews of :term:`hashable` (read-only) types with " "formats 'B', 'b' or 'c' are also hashable. The hash is defined as ``hash(m) " @@ -7564,7 +7697,7 @@ msgstr "" "με μορφές 'B', 'b' ή 'c' μπορούν επίσης να κατακερματιστούν. Ο " "κατακερματισμός ορίζεται ως ``hash(m) == hash(m.tobytes())``::" -#: library/stdtypes.rst:4215 +#: library/stdtypes.rst:4347 msgid "" ">>> v = memoryview(b'abcefg')\n" ">>> hash(v) == hash(b'abcefg')\n" @@ -7582,37 +7715,37 @@ msgstr "" ">>> hash(v[::-2]) == hash(b'abcefg'[::-2])\n" "True" -#: library/stdtypes.rst:4223 +#: library/stdtypes.rst:4355 msgid "" "One-dimensional memoryviews can now be sliced. One-dimensional memoryviews " "with formats 'B', 'b' or 'c' are now :term:`hashable`." msgstr "" "Τα μονοδιάστατα memoryviews μπορούν πλέον να τμηματοποιηθούν. Τα " -"μονοδιάστατα memoryviews με μορφές 'B', 'b' ή 'c' είναι πλέον :term:" -"`hashable`." +"μονοδιάστατα memoryviews με μορφές 'B', 'b' ή 'c' είναι " +"πλέον :term:`hashable`." -#: library/stdtypes.rst:4227 +#: library/stdtypes.rst:4359 msgid "" -"memoryview is now registered automatically with :class:`collections.abc." -"Sequence`" +"memoryview is now registered automatically " +"with :class:`collections.abc.Sequence`" msgstr "" "το memoryview εγγράφεται πλέον αυτόματα με :class:`collections.abc.Sequence`" -#: library/stdtypes.rst:4231 +#: library/stdtypes.rst:4363 msgid "memoryviews can now be indexed with tuple of integers." msgstr "" "τα memoryviews μπορούν τώρα να γίνουν ευρετηριοποίηση με πλειάδα (tuple) " "ακεραίων." -#: library/stdtypes.rst:4234 +#: library/stdtypes.rst:4366 msgid "memoryview is now a :term:`generic type`." -msgstr "Το memoryview είναι πλέον ένα :term:`generic type`." +msgstr "το memoryview είναι πλέον ένα :term:`generic type`." -#: library/stdtypes.rst:4237 +#: library/stdtypes.rst:4369 msgid ":class:`memoryview` has several methods:" msgstr "το :class:`memoryview` έχει διάφορες μεθόδους:" -#: library/stdtypes.rst:4241 +#: library/stdtypes.rst:4373 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' " @@ -7623,16 +7756,17 @@ msgstr "" "αντίστοιχοι κωδικοί μορφής των τελεστών ερμηνεύονται χρησιμοποιώντας τη " "σύνταξη :mod:`struct`." -#: library/stdtypes.rst:4245 +#: library/stdtypes.rst:4377 msgid "" -"For the subset of :mod:`struct` format strings currently supported by :meth:" -"`tolist`, ``v`` and ``w`` are equal if ``v.tolist() == w.tolist()``::" +"For the subset of :mod:`struct` format strings currently supported " +"by :meth:`tolist`, ``v`` and ``w`` are equal if ``v.tolist() == " +"w.tolist()``::" msgstr "" "Για το υποσύνολο του :mod:`struct` οι συμβολοσειρές μορφής που " "υποστηρίζονται αυτή τη στιγμή από το :meth:`tolist`, ``v`` και ``w`` είναι " "ίσες εάν ``v.tolist() == w.tolist()``::" -#: library/stdtypes.rst:4248 +#: library/stdtypes.rst:4380 msgid "" ">>> import array\n" ">>> a = array.array('I', [1, 2, 3, 4, 5])\n" @@ -7666,7 +7800,7 @@ msgstr "" ">>> z.tolist() == c.tolist()\n" "True" -#: library/stdtypes.rst:4264 +#: library/stdtypes.rst:4396 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 " @@ -7677,7 +7811,7 @@ msgstr "" "συμβολοσειρές μορφοποίησης και τα περιεχόμενα της προσωρινής μνήμης είναι " "πανομοιότυπα)::" -#: library/stdtypes.rst:4268 +#: library/stdtypes.rst:4400 msgid "" ">>> from ctypes import BigEndianStructure, c_long\n" ">>> class BEPoint(BigEndianStructure):\n" @@ -7703,7 +7837,7 @@ msgstr "" ">>> a == b\n" "False" -#: library/stdtypes.rst:4280 +#: library/stdtypes.rst:4412 msgid "" "Note that, as with floating-point numbers, ``v is w`` does *not* imply ``v " "== w`` for memoryview objects." @@ -7711,7 +7845,7 @@ msgstr "" "Λάβετε υπόψη ότι, όπως και με τους αριθμούς κινητής υποδιαστολής, ``v is w`` " "*δεν* σημαίνει ``v == w`` για αντικείμενα memoryview." -#: library/stdtypes.rst:4283 +#: library/stdtypes.rst:4415 msgid "" "Previous versions compared the raw memory disregarding the item format and " "the logical array structure." @@ -7719,7 +7853,7 @@ msgstr "" "Οι προηγούμενες εκδόσεις συνέκριναν την ακατέργαστη μνήμη αγνοώντας τη μορφή " "του στοιχείου και τη δομή του λογικού πίνακα." -#: library/stdtypes.rst:4289 +#: library/stdtypes.rst:4421 msgid "" "Return the data in the buffer as a bytestring. This is equivalent to " "calling the :class:`bytes` constructor on the memoryview. ::" @@ -7727,7 +7861,7 @@ msgstr "" "Επιστρέφει τα δεδομένα στο buffer ως ένα bytestring. Αυτό ισοδυναμεί με την " "κλήση του κατασκευαστή :class:`bytes` στο memoryview. ::" -#: library/stdtypes.rst:4292 +#: library/stdtypes.rst:4424 msgid "" ">>> m = memoryview(b\"abc\")\n" ">>> m.tobytes()\n" @@ -7741,7 +7875,7 @@ msgstr "" ">>> bytes(m)\n" "b'abc'" -#: library/stdtypes.rst:4298 +#: library/stdtypes.rst:4430 msgid "" "For non-contiguous arrays the result is equal to the flattened list " "representation with all elements converted to bytes. :meth:`tobytes` " @@ -7749,11 +7883,12 @@ msgid "" "module syntax." msgstr "" "Για μη συνεχόμενους πίνακες, το αποτέλεσμα είναι ίσο με την αναπαράσταση της " -"ισοπεδωμένης λίστας με όλα τα στοιχεία να μετατρέπονται σε bytes. Η :meth:" -"`tobytes` υποστηρίζει όλες τις συμβολοσειρές μορφής, συμπεριλαμβανομένων " -"εκείνων που δεν είναι στη σύνταξη του module :mod:`struct`." +"ισοπεδωμένης λίστας με όλα τα στοιχεία να μετατρέπονται σε bytes. " +"Η :meth:`tobytes` υποστηρίζει όλες τις συμβολοσειρές μορφής, " +"συμπεριλαμβανομένων εκείνων που δεν είναι στη σύνταξη του " +"module :mod:`struct`." -#: library/stdtypes.rst:4303 +#: library/stdtypes.rst:4435 msgid "" "*order* can be {'C', 'F', 'A'}. When *order* is 'C' or 'F', the data of the " "original array is converted to C or Fortran order. For contiguous views, 'A' " @@ -7768,7 +7903,7 @@ msgstr "" "συνεχόμενες προβολές, τα δεδομένα μετατρέπονται πρώτα σε C. Το *order=None* " "είναι το ίδιο με το *order='C'*." -#: library/stdtypes.rst:4312 +#: library/stdtypes.rst:4445 msgid "" "Return a string object containing two hexadecimal digits for each byte in " "the buffer. ::" @@ -7776,7 +7911,7 @@ msgstr "" "Επιστρέφει ένα αντικείμενο συμβολοσειράς που περιέχει δύο δεκαεξαδικά ψηφία " "για κάθε byte στο buffer. ::" -#: library/stdtypes.rst:4315 +#: library/stdtypes.rst:4448 msgid "" ">>> m = memoryview(b\"abc\")\n" ">>> m.hex()\n" @@ -7786,7 +7921,7 @@ msgstr "" ">>> m.hex()\n" "'616263'" -#: library/stdtypes.rst:4321 +#: library/stdtypes.rst:4454 msgid "" "Similar to :meth:`bytes.hex`, :meth:`memoryview.hex` now supports optional " "*sep* and *bytes_per_sep* parameters to insert separators between bytes in " @@ -7796,11 +7931,11 @@ msgstr "" "προαιρετικές παραμέτρους *sep* και *bytes_per_sep* για να εισάγετε " "διαχωριστικά μεταξύ των byte στην εξαγωγή δεκαεξαδικού." -#: library/stdtypes.rst:4328 +#: library/stdtypes.rst:4461 msgid "Return the data in the buffer as a list of elements. ::" msgstr "Επιστρέψτε τα δεδομένα στο buffer ως λίστα στοιχείων. ::" -#: library/stdtypes.rst:4330 +#: library/stdtypes.rst:4463 msgid "" ">>> memoryview(b'abc').tolist()\n" "[97, 98, 99]\n" @@ -7818,16 +7953,16 @@ msgstr "" ">>> m.tolist()\n" "[1.1, 2.2, 3.3]" -#: library/stdtypes.rst:4338 +#: library/stdtypes.rst:4471 msgid "" -":meth:`tolist` now supports all single character native formats in :mod:" -"`struct` module syntax as well as multi-dimensional representations." +":meth:`tolist` now supports all single character native formats " +"in :mod:`struct` module syntax as well as multi-dimensional representations." msgstr "" "Η :meth:`tolist` υποστηρίζει πλέον όλες τις εγγενείς μορφές μεμονωμένων " "χαρακτήρων στη σύνταξη του :mod:`struct`, καθώς και πολυδιάστατες " "αναπαραστάσεις." -#: library/stdtypes.rst:4345 +#: library/stdtypes.rst:4478 msgid "" "Return a readonly version of the memoryview object. The original memoryview " "object is unchanged. ::" @@ -7835,7 +7970,7 @@ msgstr "" "Επιστρέφει μια έκδοση μόνο για ανάγνωση του αντικειμένου memoryview. Το " "αρχικό αντικείμενο memoryview είναι αμετάβλητο. ::" -#: library/stdtypes.rst:4348 +#: library/stdtypes.rst:4481 msgid "" ">>> m = memoryview(bytearray(b'abc'))\n" ">>> mm = m.toreadonly()\n" @@ -7861,11 +7996,11 @@ msgstr "" ">>> mm.tolist()\n" "[43, 98, 99]" -#: library/stdtypes.rst:4364 +#: library/stdtypes.rst:4497 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 " +"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 "" @@ -7876,17 +8011,17 @@ msgstr "" "είναι βολική για την κατάργηση αυτών των περιορισμών (και απελευθερώνει " "οποιουσδήποτε αιωρούμενους πόρους) το συντομότερο δυνατό." -#: library/stdtypes.rst:4370 +#: library/stdtypes.rst:4503 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 "" "Μετά την κλήση αυτής της μεθόδου, οποιαδήποτε περαιτέρω λειτουργία στην " -"προβολή δημιουργεί μια :class:`ValueError` (εκτός από την ίδια την :meth:" -"`release` που μπορεί να κληθεί πολλές φορές)::" +"προβολή δημιουργεί μια :class:`ValueError` (εκτός από την ίδια " +"την :meth:`release` που μπορεί να κληθεί πολλές φορές)::" -#: library/stdtypes.rst:4374 +#: library/stdtypes.rst:4507 msgid "" ">>> m = memoryview(b'abc')\n" ">>> m.release()\n" @@ -7902,7 +8037,7 @@ msgstr "" " File \"\", line 1, in \n" "ValueError: operation forbidden on released memoryview object" -#: library/stdtypes.rst:4381 +#: library/stdtypes.rst:4514 msgid "" "The context management protocol can be used for a similar effect, using the " "``with`` statement::" @@ -7910,7 +8045,7 @@ msgstr "" "Το πρωτόκολλο διαχείρισης περιεχομένου μπορεί να χρησιμοποιηθεί για παρόμοιο " "αποτέλεσμα, χρησιμοποιώντας τη δήλωση ``with``::" -#: library/stdtypes.rst:4384 +#: library/stdtypes.rst:4517 msgid "" ">>> with memoryview(b'abc') as m:\n" "... m[0]\n" @@ -7930,7 +8065,7 @@ msgstr "" " File \"\", line 1, in \n" "ValueError: operation forbidden on released memoryview object" -#: library/stdtypes.rst:4397 +#: library/stdtypes.rst:4531 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 " @@ -7944,12 +8079,12 @@ msgstr "" "memoryview, αλλά το ίδιο το buffer δεν αντιγράφεται. Οι υποστηριζόμενες " "μετατροπές είναι 1D -> C-:term:`contiguous` και C-contiguous -> 1D." -#: library/stdtypes.rst:4403 +#: library/stdtypes.rst:4537 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. " -"Note that all byte lengths may depend on the operating system." +"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. Note that all byte lengths may depend on the operating system." msgstr "" "Η μορφή προορισμού περιορίζεται σε μια εγγενή μορφή μεμονωμένου στοιχείου " "στη σύνταξη :mod:`struct`. Μία από τις μορφές πρέπει να είναι μορφή byte " @@ -7957,11 +8092,11 @@ msgstr "" "το αρχικό μήκος. Σημειώστε ότι όλα τα μήκη byte μπορεί να εξαρτώνται από το " "λειτουργικό σύστημα." -#: library/stdtypes.rst:4409 +#: library/stdtypes.rst:4543 msgid "Cast 1D/long to 1D/unsigned bytes::" msgstr "Μορφοποίηση από 1D/long σε 1D/unsigned bytes::" -#: library/stdtypes.rst:4411 +#: library/stdtypes.rst:4545 msgid "" ">>> import array\n" ">>> a = array.array('l', [1,2,3])\n" @@ -8005,11 +8140,11 @@ msgstr "" ">>> y.nbytes\n" "24" -#: library/stdtypes.rst:4432 +#: library/stdtypes.rst:4566 msgid "Cast 1D/unsigned bytes to 1D/char::" msgstr "Μορφοποίηση από 1D/unsigned bytes σε 1D/char::" -#: library/stdtypes.rst:4434 +#: library/stdtypes.rst:4568 msgid "" ">>> b = bytearray(b'zyz')\n" ">>> x = memoryview(b)\n" @@ -8033,11 +8168,11 @@ msgstr "" ">>> b\n" "bytearray(b'ayz')" -#: library/stdtypes.rst:4445 +#: library/stdtypes.rst:4579 msgid "Cast 1D/bytes to 3D/ints to 1D/signed char::" msgstr "Μορφοποίηση από 1D/bytes σε 3D/ints σε 1D/signed char::" -#: library/stdtypes.rst:4447 +#: library/stdtypes.rst:4581 msgid "" ">>> import struct\n" ">>> buf = struct.pack(\"i\"*12, *list(range(12)))\n" @@ -8087,11 +8222,11 @@ msgstr "" ">>> z.nbytes\n" "48" -#: library/stdtypes.rst:4471 +#: library/stdtypes.rst:4605 msgid "Cast 1D/unsigned long to 2D/unsigned long::" msgstr "Μορφοποίηση από 1D/unsigned long σε 2D/unsigned long::" -#: library/stdtypes.rst:4473 +#: library/stdtypes.rst:4607 msgid "" ">>> buf = struct.pack(\"L\"*6, *list(range(6)))\n" ">>> x = memoryview(buf)\n" @@ -8113,17 +8248,17 @@ msgstr "" ">>> y.tolist()\n" "[[0, 1, 2], [3, 4, 5]]" -#: library/stdtypes.rst:4485 +#: library/stdtypes.rst:4619 msgid "The source format is no longer restricted when casting to a byte view." msgstr "" "Η πηγαία μορφή δεν είναι πλέον περιορισμένη κατά τη μορφοποίηση σε μια όψη " "byte." -#: library/stdtypes.rst:4490 +#: library/stdtypes.rst:4624 msgid "Count the number of occurrences of *value*." msgstr "Μετράει τον αριθμό των εμφανίσεων του *value*." -#: library/stdtypes.rst:4496 +#: library/stdtypes.rst:4630 msgid "" "Return the index of the first occurrence of *value* (at or after index " "*start* and before index *stop*)." @@ -8131,20 +8266,20 @@ msgstr "" "Επιστρέφει τον δείκτη της πρώτης εμφάνισης του *value* (στην ή μετά τον " "δείκτη *start* και πριν από τον δείκτη *stop*)." -#: library/stdtypes.rst:4499 +#: library/stdtypes.rst:4633 msgid "Raises a :exc:`ValueError` if *value* cannot be found." msgstr "" "Κάνει raise μια :exc:`ValueError` αν δεν μπορεί να βρεθεί η τιμή *value*." -#: library/stdtypes.rst:4503 +#: library/stdtypes.rst:4637 msgid "There are also several readonly attributes available:" msgstr "Υπάρχουν επίσης αρκετά διαθέσιμα χαρακτηριστικά μόνο για ανάγνωση:" -#: library/stdtypes.rst:4507 +#: library/stdtypes.rst:4641 msgid "The underlying object of the memoryview::" msgstr "Το βασικό αντικείμενο του memoryview::" -#: library/stdtypes.rst:4509 +#: library/stdtypes.rst:4643 msgid "" ">>> b = bytearray(b'xyz')\n" ">>> m = memoryview(b)\n" @@ -8156,7 +8291,7 @@ msgstr "" ">>> m.obj is b\n" "True" -#: library/stdtypes.rst:4518 +#: library/stdtypes.rst:4652 msgid "" "``nbytes == product(shape) * itemsize == len(m.tobytes())``. This is the " "amount of space in bytes that the array would use in a contiguous " @@ -8166,7 +8301,7 @@ msgstr "" "ποσότητα χώρου σε byte που θα χρησιμοποιούσε ο πίνακας σε μια συνεχόμενη " "αναπαράσταση. Δεν ισούται απαραίτητα με ``len(m)``::" -#: library/stdtypes.rst:4522 +#: library/stdtypes.rst:4656 msgid "" ">>> import array\n" ">>> a = array.array('i', [1,2,3,4,5])\n" @@ -8198,11 +8333,11 @@ msgstr "" ">>> len(y.tobytes())\n" "12" -#: library/stdtypes.rst:4537 +#: library/stdtypes.rst:4671 msgid "Multi-dimensional arrays::" msgstr "Πολυδιάστατοι πίνακες::" -#: library/stdtypes.rst:4539 +#: library/stdtypes.rst:4673 msgid "" ">>> import struct\n" ">>> buf = struct.pack(\"d\"*12, *[1.5*x for x in range(12)])\n" @@ -8226,11 +8361,11 @@ msgstr "" ">>> y.nbytes\n" "96" -#: library/stdtypes.rst:4554 +#: library/stdtypes.rst:4688 msgid "A bool indicating whether the memory is read only." msgstr "Ένα bool που υποδεικνύει εάν η μνήμη είναι μόνο για ανάγνωση." -#: library/stdtypes.rst:4558 +#: library/stdtypes.rst:4692 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 " @@ -8239,10 +8374,10 @@ msgid "" msgstr "" "Μια συμβολοσειρά που περιέχει τη μορφή (σε module style :mod:`struct`) για " "κάθε στοιχείο σε μια όψη. Μπορεί να δημιουργηθεί ένα memoryview από " -"εξαγωγείς με συμβολοσειρές αυθαίρετης μορφής, αλλά ορισμένες μέθοδοι (π.χ. :" -"meth:`tolist`) είναι περιορισμένες σε εγγενείς μορφές ενός στοιχείου." +"εξαγωγείς με συμβολοσειρές αυθαίρετης μορφής, αλλά ορισμένες μέθοδοι " +"(π.χ. :meth:`tolist`) είναι περιορισμένες σε εγγενείς μορφές ενός στοιχείου." -#: library/stdtypes.rst:4563 +#: library/stdtypes.rst:4697 msgid "" "format ``'B'`` is now handled according to the struct module syntax. This " "means that ``memoryview(b'abc')[0] == b'abc'[0] == 97``." @@ -8250,11 +8385,11 @@ msgstr "" "η μορφή ``'B'`` αντιμετωπίζεται πλέον σύμφωνα με τη σύνταξη ενός struct " "module. Αυτό σημαίνει ότι ``memoryview(b'abc')[0] == b'abc'[0] == 97``." -#: library/stdtypes.rst:4569 +#: library/stdtypes.rst:4703 msgid "The size in bytes of each element of the memoryview::" msgstr "Το μέγεθος σε bytes κάθε στοιχείου στο memoryview::" -#: library/stdtypes.rst:4571 +#: library/stdtypes.rst:4705 msgid "" ">>> import array, struct\n" ">>> m = memoryview(array.array('H', [32000, 32001, 32002]))\n" @@ -8274,7 +8409,7 @@ msgstr "" ">>> struct.calcsize('H') == m.itemsize\n" "True" -#: library/stdtypes.rst:4582 +#: library/stdtypes.rst:4716 msgid "" "An integer indicating how many dimensions of a multi-dimensional array the " "memory represents." @@ -8282,7 +8417,7 @@ msgstr "" "Ένα ακέραιος αριθμός που δείχνει πόσες διαστάσεις ενός πολυδιάστατου πίνακα " "αντιπροσωπεύει η μνήμη." -#: library/stdtypes.rst:4587 +#: library/stdtypes.rst:4721 msgid "" "A tuple of integers the length of :attr:`ndim` giving the shape of the " "memory as an N-dimensional array." @@ -8290,11 +8425,11 @@ msgstr "" "Μια πλειάδα (tuple) ακεραίων με μήκος :attr:`ndim` δίνοντας το σχήμα της " "μνήμης ως πίνακα N-διαστάσεων." -#: library/stdtypes.rst:4598 +#: library/stdtypes.rst:4732 msgid "An empty tuple instead of ``None`` when ndim = 0." msgstr "Μια κενή πλειάδα (tuple) αντί για ``None`` όταν ndim = 0." -#: library/stdtypes.rst:4595 +#: library/stdtypes.rst:4729 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." @@ -8302,45 +8437,46 @@ msgstr "" "Μια πλειάδα ακεραίων με μήκος :attr:`ndim` που δίνει το μέγεθος σε bytes για " "την πρόσβαση σε κάθε στοιχείο για κάθε διάσταση του πίνακα." -#: library/stdtypes.rst:4603 +#: library/stdtypes.rst:4737 msgid "Used internally for PIL-style arrays. The value is informational only." msgstr "" "Χρησιμοποιείται εσωτερικά για συστοιχίες τύπου PIL. Η τιμή είναι μόνο " "ενημερωτική." -#: library/stdtypes.rst:4607 +#: library/stdtypes.rst:4741 msgid "A bool indicating whether the memory is C-:term:`contiguous`." msgstr "Ένα bool που υποδεικνύει εάν η μνήμη είναι C-:term:`contiguous`." -#: library/stdtypes.rst:4613 +#: library/stdtypes.rst:4747 msgid "A bool indicating whether the memory is Fortran :term:`contiguous`." msgstr "Ένα bool που υποδεικνύει εάν η μνήμη είναι Fortran :term:`contiguous`." -#: library/stdtypes.rst:4619 +#: library/stdtypes.rst:4753 msgid "A bool indicating whether the memory is :term:`contiguous`." msgstr "Ένα bool που υποδεικνύει εάν η μνήμη είναι :term:`contiguous`." -#: library/stdtypes.rst:4627 +#: library/stdtypes.rst:4761 msgid "Set Types --- :class:`set`, :class:`frozenset`" msgstr "Τύποι Συνόλου (Set) --- :class:`set`, :class:`frozenset`" -#: library/stdtypes.rst:4631 +#: library/stdtypes.rst:4765 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.)" +"in :class:`dict`, :class:`list`, and :class:`tuple` classes, and " +"the :mod:`collections` module.)" msgstr "" "Ένα αντικείμενο :dfn:`set` είναι μια μη ταξινομημένη συλλογή από διακριτά " "αντικείμενα :term:`hashable`. Οι συνήθεις χρήσεις περιλαμβάνουν τη δοκιμή " "ιδιότητας μέλους, την αφαίρεση διπλότυπων από μια ακολουθία και τον " "υπολογισμό μαθηματικών πράξεων όπως τομή, ένωση, διαφορά, και συμμετρική " -"διαφορά. (Για άλλα containers, δείτε τις ενσωματωμένες κλάσεις :class:" -"`dict`, :class:`list`, και :class:`tuple` και το module :mod:`collections`)." +"διαφορά. (Για άλλα containers, δείτε τις ενσωματωμένες " +"κλάσεις :class:`dict`, :class:`list`, και :class:`tuple` και το " +"module :mod:`collections`)." -#: library/stdtypes.rst:4638 +#: library/stdtypes.rst:4772 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 " @@ -8353,28 +8489,29 @@ msgstr "" "τα σύνολα (sets) δεν υποστηρίζουν λειτουργίες ευρετηριοποίησης, " "τμηματοποίησης ή άλλη συμπεριφορά ακολουθίας." -#: library/stdtypes.rst:4643 -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 "" -"Υπάρχουν αυτή τη στιγμή δύο ενσωματωμένοι τύποι συνόλου, :class:`set` και :" -"class:`frozenset`. Ο τύπος :class:`set` είναι ευμετάβλητος --- τα " -"περιεχόμενα του μπορούν να αλλάξουν χρησιμοποιώντας μεθόδους όπως :meth:" -"`~set.add` και :meth:`~set.remove`. Δεδομένου ότι είναι ευμετάβλητο, δεν " -"έχει τιμή κατακερματισμού και δεν μπορεί να χρησιμοποιηθεί ούτε ως κλειδί " -"λεξικού ούτε ως στοιχείο ενός άλλου συνόλου (set). Ο τύπος :class:" -"`frozenset` είναι αμετάβλητος και :term:`hashable` --- το περιεχόμενό του " -"δεν μπορεί να αλλάξει μετά τη δημιουργία του· μπορεί επομένως να " -"χρησιμοποιηθεί ως κλειδί λεξικού ή ως στοιχείο άλλου συνόλου (set)." - -#: library/stdtypes.rst:4651 +#: library/stdtypes.rst:4777 +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:`add ` " +"and :meth:`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 "" +"Υπάρχουν αυτή τη στιγμή δύο ενσωματωμένοι τύποι συνόλου, :class:`set` " +"και :class:`frozenset`. Ο τύπος :class:`set` είναι ευμετάβλητος --- τα " +"περιεχόμενα του μπορούν να αλλάξουν χρησιμοποιώντας μεθόδους όπως :meth:`add " +"` και :meth:`remove `. Δεδομένου ότι είναι " +"ευμετάβλητο, δεν έχει τιμή κατακερματισμού και δεν μπορεί να χρησιμοποιηθεί " +"ούτε ως κλειδί λεξικού ούτε ως στοιχείο ενός άλλου συνόλου (set). Ο " +"τύπος :class:`frozenset` είναι αμετάβλητος και :term:`hashable` --- το " +"περιεχόμενό του δεν μπορεί να αλλάξει μετά τη δημιουργία του· μπορεί " +"επομένως να χρησιμοποιηθεί ως κλειδί λεξικού ή ως στοιχείο άλλου συνόλου " +"(set)." + +#: library/stdtypes.rst:4786 msgid "" "Non-empty sets (not frozensets) can be created by placing a comma-separated " "list of elements within braces, for example: ``{'jack', 'sjoerd'}``, in " @@ -8385,11 +8522,11 @@ msgstr "" "παράδειγμα: ``{'jack', 'sjoerd'}``, επιπλέον με τη χρήση του constructor " "του :class:`set`." -#: library/stdtypes.rst:4655 +#: library/stdtypes.rst:4790 msgid "The constructors for both classes work the same:" msgstr "Οι constructors και για τις δύο κλάσεις λειτουργούν το ίδιο:" -#: library/stdtypes.rst:4660 +#: library/stdtypes.rst:4795 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 " @@ -8402,25 +8539,25 @@ msgstr "" "εσωτερικά σύνολα πρέπει να είναι :class:`frozenset` αντικείμενα. Εάν δεν " "έχει καθοριστεί το *iterable*, επιστρέφεται ένα νέο κενό σύνολο." -#: library/stdtypes.rst:4666 +#: library/stdtypes.rst:4801 msgid "Sets can be created by several means:" msgstr "Τα σύνολα μπορούν να δημιουργηθούν με διάφορους τρόπους:" -#: library/stdtypes.rst:4668 +#: library/stdtypes.rst:4803 msgid "" "Use a comma-separated list of elements within braces: ``{'jack', 'sjoerd'}``" msgstr "" "Χρησιμοποιώντας μια λίστα στοιχείων διαχωρισμένη με κόμματα: ``{'jack', " "'sjoerd'}``" -#: library/stdtypes.rst:4669 +#: library/stdtypes.rst:4804 msgid "" "Use a set comprehension: ``{c for c in 'abracadabra' if c not in 'abc'}``" msgstr "" "Χρησιμοποιώντας ένα set comprehension: ``{c for c in 'abracadabra' if c not " "in 'abc'}``" -#: library/stdtypes.rst:4670 +#: library/stdtypes.rst:4805 msgid "" "Use the type constructor: ``set()``, ``set('foobar')``, ``set(['a', 'b', " "'foo'])``" @@ -8428,7 +8565,7 @@ msgstr "" "Χρησιμοποιώντας τον τύπο constructor: ``set()``, ``set('foobar')``, " "``set(['a', 'b', 'foo'])``" -#: library/stdtypes.rst:4672 +#: library/stdtypes.rst:4807 msgid "" "Instances of :class:`set` and :class:`frozenset` provide the following " "operations:" @@ -8436,20 +8573,20 @@ msgstr "" "Τα στιγμιότυπα των :class:`set` και :class:`frozenset` παρέχουν τις " "ακόλουθες λειτουργίες:" -#: library/stdtypes.rst:4677 +#: library/stdtypes.rst:4812 msgid "Return the number of elements in set *s* (cardinality of *s*)." msgstr "" "Επιστρέφει τον αριθμό των στοιχείων στο σύνολο *s* (πληθικότητα του *s*)." -#: library/stdtypes.rst:4681 +#: library/stdtypes.rst:4816 msgid "Test *x* for membership in *s*." msgstr "Ελέγχει αν το *x* είναι μέρος στο *s*." -#: library/stdtypes.rst:4685 +#: library/stdtypes.rst:4820 msgid "Test *x* for non-membership in *s*." msgstr "Ελέγχει αν το *x* δεν είναι μέρος στο *s*." -#: library/stdtypes.rst:4689 +#: library/stdtypes.rst:4824 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." @@ -8457,11 +8594,11 @@ msgstr "" "Επιστρέφει ``True`` εάν το σύνολο δεν έχει κοινά στοιχεία με το *other*. Τα " "σύνολα είναι ασύνδετα εάν και μόνο εάν η τομή τους είναι το κενό σύνολο." -#: library/stdtypes.rst:4695 +#: library/stdtypes.rst:4830 msgid "Test whether every element in the set is in *other*." msgstr "Ελέγχει εάν κάθε στοιχείο στο σύνολο βρίσκεται στο *other*." -#: library/stdtypes.rst:4699 +#: library/stdtypes.rst:4834 msgid "" "Test whether the set is a proper subset of *other*, that is, ``set <= other " "and set != other``." @@ -8469,11 +8606,11 @@ msgstr "" "Ελέγχει εάν το σύνολο είναι σωστό υποσύνολο του *other*, δηλαδή, ``set <= " "other and set != other``." -#: library/stdtypes.rst:4705 +#: library/stdtypes.rst:4840 msgid "Test whether every element in *other* is in the set." msgstr "Ελέγχει αν κάθε στοιχείο του *other* είναι στο σύνολο." -#: library/stdtypes.rst:4709 +#: library/stdtypes.rst:4844 msgid "" "Test whether the set is a proper superset of *other*, that is, ``set >= " "other and set != other``." @@ -8481,49 +8618,49 @@ msgstr "" "Ελέγχει αν το σύνολο είναι σωστό υπερσύνολο του *other*, δηλαδή, ``set >= " "other and set != other``." -#: library/stdtypes.rst:4715 +#: library/stdtypes.rst:4850 msgid "Return a new set with elements from the set and all others." msgstr "Επιστρέφει ένα νέο σύνολο με στοιχεία από το σύνολο και όλα τα άλλα." -#: library/stdtypes.rst:4720 +#: library/stdtypes.rst:4855 msgid "Return a new set with elements common to the set and all others." msgstr "" "Επιστρέφει ένα νέο σύνολο με στοιχεία κοινά στο σύνολο και σε όλα τα άλλα." -#: library/stdtypes.rst:4725 +#: library/stdtypes.rst:4860 msgid "Return a new set with elements in the set that are not in the others." msgstr "" "Επιστρέφει ένα νέο σύνολο με στοιχεία στο σύνολο που δεν υπάρχουν στα άλλα." -#: library/stdtypes.rst:4730 +#: library/stdtypes.rst:4865 msgid "" "Return a new set with elements in either the set or *other* but not both." msgstr "" "Επιστρέφει ένα νέο σύνολο με στοιχεία είτε στο σύνολο είτε στο *other* αλλά " "όχι και στα δύο." -#: library/stdtypes.rst:4734 +#: library/stdtypes.rst:4869 msgid "Return a shallow copy of the set." msgstr "Επιστρέφει ένα ρηχό αντίγραφο του συνόλου." -#: library/stdtypes.rst:4737 +#: library/stdtypes.rst:4872 msgid "" -"Note, the non-operator versions of :meth:`union`, :meth:`intersection`, :" -"meth:`difference`, :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')``." +"Note, the non-operator versions " +"of :meth:`union`, :meth:`intersection`, :meth:`difference`, :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 "" -"Σημείωση, οι εκδόσεις μη τελεστών των μεθόδων :meth:`union`, :meth:" -"`intersection`, :meth:`difference`, :meth:`symmetric_difference`, :meth:" -"`issubset`, και :meth:`issuperset` θα δεχτούν οποιοδήποτε iterable ως " -"όρισμα. Αντίθετα, οι αντίστοιχοι τελεστές απαιτούν να οριστούν τα ορίσματά " -"τους για να γίνουν σύνολα. Αυτό αποκλείει κατασκευαστές επιρρεπείς σε " -"σφάλματα όπως ``set('abc') & 'cbs'`` υπέρ του πιο ευανάγνωστου ``set('abc')." -"intersection('cbs')``." +"Σημείωση, οι εκδόσεις μη τελεστών των " +"μεθόδων :meth:`union`, :meth:`intersection`, :meth:`difference`, :meth:`symmetric_difference`, :meth:`issubset`, " +"και :meth:`issuperset` θα δεχτούν οποιοδήποτε iterable ως όρισμα. Αντίθετα, " +"οι αντίστοιχοι τελεστές απαιτούν να οριστούν τα ορίσματά τους για να γίνουν " +"σύνολα. Αυτό αποκλείει κατασκευαστές επιρρεπείς σε σφάλματα όπως " +"``set('abc') & 'cbs'`` υπέρ του πιο ευανάγνωστου " +"``set('abc').intersection('cbs')``." -#: library/stdtypes.rst:4744 +#: library/stdtypes.rst:4879 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 " @@ -8541,18 +8678,18 @@ msgstr "" "είναι σωστό υπερσύνολο του δεύτερου συνόλου (είναι υπερσύνολο αλλά δεν είναι " "ίσο)." -#: library/stdtypes.rst:4751 +#: library/stdtypes.rst:4886 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 "" -"Τα στιγμιότυπα της :class:`set` συγκρίνονται με τα στιγμιότυπα της :class:" -"`frozenset` με βάση τα μέλη τους. Για παράδειγμα, το ``set('abc') == " -"frozenset('abc')`` επιστρέφει ``True`` και το ίδιο συμβαίνει και με το " -"``set('abc') in set([frozenset('abc')])``." +"Τα στιγμιότυπα της :class:`set` συγκρίνονται με τα στιγμιότυπα " +"της :class:`frozenset` με βάση τα μέλη τους. Για παράδειγμα, το " +"``set('abc') == frozenset('abc')`` επιστρέφει ``True`` και το ίδιο συμβαίνει " +"και με το ``set('abc') in set([frozenset('abc')])``." -#: library/stdtypes.rst:4755 +#: library/stdtypes.rst:4890 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 " @@ -8564,7 +8701,7 @@ msgstr "" "δεν είναι ίσα και δεν είναι υποσύνολα το ένα του άλλου, επομένως *όλα* τα " "ακόλουθα επιστρέφουν ``False``: ``ab``." -#: library/stdtypes.rst:4760 +#: library/stdtypes.rst:4895 msgid "" "Since sets only define partial ordering (subset relationships), the output " "of the :meth:`list.sort` method is undefined for lists of sets." @@ -8572,57 +8709,58 @@ msgstr "" "Δεδομένου ότι τα σύνολα ορίζουν μόνο μερική σειρά (σχέσεις υποσυνόλων), η " "έξοδος της μεθόδου :meth:`list.sort` δεν έχει οριστεί για λίστες συνόλων." -#: library/stdtypes.rst:4763 +#: library/stdtypes.rst:4898 msgid "Set elements, like dictionary keys, must be :term:`hashable`." msgstr "" -"Τα στοιχεία συνόλου, όπως τα κλειδιά λεξικού, πρέπει να είναι :term:" -"`hashable`." +"Τα στοιχεία συνόλου, όπως τα κλειδιά λεξικού, πρέπει να " +"είναι :term:`hashable`." -#: library/stdtypes.rst:4765 +#: library/stdtypes.rst:4900 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 "" -"Δυαδικές πράξεις που συνδυάζουν στιγμιότυπα :class:`set` με :class:" -"`frozenset` επιστρέφουν τον τύπο του πρώτου τελεστή. Για παράδειγμα: " -"``frozenset('ab') | set('bc')`` επιστρέφει ένα στιγμιότυπο του :class:" -"`frozenset`." +"Δυαδικές πράξεις που συνδυάζουν στιγμιότυπα :class:`set` " +"με :class:`frozenset` επιστρέφουν τον τύπο του πρώτου τελεστή. Για " +"παράδειγμα: ``frozenset('ab') | set('bc')`` επιστρέφει ένα στιγμιότυπο " +"του :class:`frozenset`." -#: library/stdtypes.rst:4769 +#: library/stdtypes.rst:4904 msgid "" "The following table lists operations available for :class:`set` that do not " "apply to immutable instances of :class:`frozenset`:" msgstr "" -"Ο παρακάτω πίνακας παραθέτει λειτουργίες που είναι διαθέσιμες για :class:" -"`set` που δεν ισχύουν για αμετάβλητα στιγμιότυπα της :class:`frozenset`:" +"Ο παρακάτω πίνακας παραθέτει λειτουργίες που είναι διαθέσιμες " +"για :class:`set` που δεν ισχύουν για αμετάβλητα στιγμιότυπα " +"της :class:`frozenset`:" -#: library/stdtypes.rst:4775 +#: library/stdtypes.rst:4910 msgid "Update the set, adding elements from all others." msgstr "Ενημερώνει το σύνολο (set), προσθέτοντας στοιχεία από όλα τα άλλα." -#: library/stdtypes.rst:4780 +#: library/stdtypes.rst:4915 msgid "Update the set, keeping only elements found in it and all others." msgstr "" "Ενημερώνει το σύνολο, διατηρώντας μόνο τα στοιχεία που βρίσκονται σε αυτό " "και όλα τα άλλα." -#: library/stdtypes.rst:4785 +#: library/stdtypes.rst:4920 msgid "Update the set, removing elements found in others." msgstr "Ενημερώνει το σύνολο, αφαιρώντας στοιχεία που βρίσκονται σε άλλα." -#: library/stdtypes.rst:4790 +#: library/stdtypes.rst:4925 msgid "" "Update the set, keeping only elements found in either set, but not in both." msgstr "" "Ενημερώνει το σύνολο, διατηρώντας μόνο τα στοιχεία που βρίσκονται σε κάθε " "σύνολο, αλλά όχι και στα δύο." -#: library/stdtypes.rst:4794 +#: library/stdtypes.rst:4929 msgid "Add element *elem* to the set." msgstr "Προσθέτει το στοιχείο *elem* στο σύνολο." -#: library/stdtypes.rst:4798 +#: library/stdtypes.rst:4933 msgid "" "Remove element *elem* from the set. Raises :exc:`KeyError` if *elem* is not " "contained in the set." @@ -8630,11 +8768,11 @@ msgstr "" "Αφαιρεί το στοιχείο *elem* από το σύνολο. Κάνει raise τη :exc:`KeyError` " "εάν το *elem* δεν περιέχεται στο σύνολο." -#: library/stdtypes.rst:4803 +#: library/stdtypes.rst:4938 msgid "Remove element *elem* from the set if it is present." msgstr "Αφαιρεί το στοιχείο *elem* από το σύνολο εάν υπάρχει." -#: library/stdtypes.rst:4807 +#: library/stdtypes.rst:4942 msgid "" "Remove and return an arbitrary element from the set. Raises :exc:`KeyError` " "if the set is empty." @@ -8642,59 +8780,62 @@ msgstr "" "Αφαιρεί και επιστρέφει ένα αυθαίρετο στοιχείο από το σύνολο. Κάνει raise " "μια :exc:`KeyError` εάν το σύνολο είναι κενό." -#: library/stdtypes.rst:4812 +#: library/stdtypes.rst:4947 msgid "Remove all elements from the set." msgstr "Αφαιρεί όλα τα στοιχεία από το σύνολο (set)." -#: library/stdtypes.rst:4815 +#: library/stdtypes.rst:4950 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." +"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 "" -"Σημείωση, οι εκδόσεις μη-τελεστή μεθόδων :meth:`update`, :meth:" -"`intersection_update`, :meth:`difference_update`, και :meth:" -"`symmetric_difference_update` θα δέχονται οποιοδήποτε επαναλαμβανόμενο " -"στοιχείο ως όρισμα." +"Σημείωση, οι εκδόσεις μη-τελεστή " +"μεθόδων :meth:`update`, :meth:`intersection_update`, :meth:`difference_update`, " +"και :meth:`symmetric_difference_update` θα δέχονται οποιοδήποτε " +"επαναλαμβανόμενο στοιχείο ως όρισμα." -#: library/stdtypes.rst:4820 +#: library/stdtypes.rst:4955 msgid "" -"Note, the *elem* argument to the :meth:`~object.__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*." +"Note, the *elem* argument to " +"the :meth:`~object.__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 "" -"Σημείωση, το όρισμα *elem* για τις μεθόδους :meth:`~object.__contains__`, :" -"meth:`remove`, και :meth:`discard` μπορεί να είναι ένα σύνολο. Για την " -"υποστήριξη της αναζήτησης για ένα ισοδύναμο παγωμένο σύνολο (frozenset), ένα " -"προσωρινό δημιουργείται από το *elem*." +"Σημείωση, το όρισμα *elem* για τις " +"μεθόδους :meth:`~object.__contains__`, :meth:`remove`, και :meth:`discard` " +"μπορεί να είναι ένα σύνολο. Για την υποστήριξη της αναζήτησης για ένα " +"ισοδύναμο παγωμένο σύνολο (frozenset), ένα προσωρινό δημιουργείται από το " +"*elem*." -#: library/stdtypes.rst:4829 +#: library/stdtypes.rst:4964 msgid "Mapping Types --- :class:`dict`" msgstr "Τύποι αντιστοίχισης --- :class:`dict`" -#: library/stdtypes.rst:4839 +#: library/stdtypes.rst:4974 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.)" +"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 "" "Ένα αντικείμενο :term:`mapping` αντιστοιχίζει :term:`hashable` τιμές σε " "αυθαίρετα αντικείμενα. Οι αντιστοιχίσεις είναι μεταβλητά αντικείμενα. " -"Υπάρχει επί του παρόντος μόνο ένα τυπικός τύπο αντιστοίχισης, το :dfn:" -"`dictionary`. (Για άλλα containers δείτε τις ενσωματωμένες (built-in) :" -"class:`list`, :class:`set`, και :class:`tuple` κλάσεις, και το module :mod:" -"`collections`.)" +"Υπάρχει επί του παρόντος μόνο ένα τυπικός τύπο αντιστοίχισης, " +"το :dfn:`dictionary`. (Για άλλα containers δείτε τις ενσωματωμένες (built-" +"in) :class:`list`, :class:`set`, και :class:`tuple` κλάσεις, και το " +"module :mod:`collections`.)" -#: library/stdtypes.rst:4845 +#: library/stdtypes.rst:4980 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. Values that compare equal (such as ``1``, ``1.0``, " -"and ``True``) can be used interchangeably to index the same dictionary entry." +"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. Values that compare equal (such as ``1``, " +"``1.0``, and ``True``) can be used interchangeably to index the same " +"dictionary entry." msgstr "" "Τα κλειδιά ενός λεξικού είναι *σχεδόν* αυθαίρετες τιμές. Οι τιμές που δεν " "είναι :term:`hashable`, δηλαδή, τιμές που περιέχουν λίστες, λεξικά ή άλλους " @@ -8703,7 +8844,7 @@ msgstr "" "συγκρίνονται ίσες (όπως ``1``, ``1.0``, και ``True``) μπορούν να " "χρησιμοποιηθούν εναλλακτικά για το index της ίδιας καταχώρισης λεξικού." -#: library/stdtypes.rst:4856 +#: library/stdtypes.rst:4991 msgid "" "Return a new dictionary initialized from an optional positional argument and " "a possibly empty set of keyword arguments." @@ -8711,11 +8852,11 @@ msgstr "" "Επιστρέφει ένα νέο λεξικό που έχει αρχικοποιηθεί από ένα προαιρετικό όρισμα " "θέσης και ένα πιθανό κενό σύνολο ορισμάτων λέξεων-κλειδιών." -#: library/stdtypes.rst:4859 +#: library/stdtypes.rst:4994 msgid "Dictionaries can be created by several means:" msgstr "Τα λεξικά μπορούν να δημιουργηθούν με διάφορους τρόπους:" -#: library/stdtypes.rst:4861 +#: library/stdtypes.rst:4996 msgid "" "Use a comma-separated list of ``key: value`` pairs within braces: ``{'jack': " "4098, 'sjoerd': 4127}`` or ``{4098: 'jack', 4127: 'sjoerd'}``" @@ -8724,13 +8865,13 @@ msgstr "" "σε αγκύλες: ``{'jack': 4098, 'sjoerd': 4127}`` or ``{4098: 'jack', 4127: " "'sjoerd'}``" -#: library/stdtypes.rst:4863 +#: library/stdtypes.rst:4998 msgid "Use a dict comprehension: ``{}``, ``{x: x ** 2 for x in range(10)}``" msgstr "" "Χρησιμοποιήστε ένα comprehension λεξικού: ``{}``, ``{x: x ** 2 for x in " "range(10)}``" -#: library/stdtypes.rst:4864 +#: library/stdtypes.rst:4999 msgid "" "Use the type constructor: ``dict()``, ``dict([('foo', 100), ('bar', " "200)])``, ``dict(foo=100, bar=200)``" @@ -8738,7 +8879,7 @@ msgstr "" "Χρησιμοποιήστε τον κατασκευαστή τύπου: ``dict()``, ``dict([('foo', 100), " "('bar', 200)])``, ``dict(foo=100, bar=200)``" -#: library/stdtypes.rst:4867 +#: library/stdtypes.rst:5002 msgid "" "If no positional argument is given, an empty dictionary is created. If a " "positional argument is given and it defines a ``keys()`` method, a " @@ -8760,7 +8901,7 @@ msgstr "" "τιμή. Εάν ένα κλειδί εμφανίζεται περισσότερες από μία φορές, η τελευταία " "τιμή για αυτό το κλειδί γίνεται η αντίστοιχη τιμή στο νέο λεξικό." -#: library/stdtypes.rst:4877 +#: library/stdtypes.rst:5012 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 " @@ -8772,7 +8913,7 @@ msgstr "" "Εάν υπάρχει ήδη ένα κλειδί που προστίθεται, η τιμή από το όρισμα λέξης-" "κλειδιού αντικαθιστά την τιμή από το όρισμα θέσης." -#: library/stdtypes.rst:4900 +#: library/stdtypes.rst:5035 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." @@ -8781,7 +8922,7 @@ msgstr "" "για κλειδιά που είναι έγκυρα αναγνωριστικά Python. Διαφορετικά, μπορούν να " "χρησιμοποιηθούν οποιαδήποτε έγκυρα κλειδιά." -#: library/stdtypes.rst:4885 +#: library/stdtypes.rst:5020 msgid "" "Dictionaries compare equal if and only if they have the same ``(key, " "value)`` pairs (regardless of ordering). Order comparisons ('<', '<=', '>=', " @@ -8795,7 +8936,7 @@ msgstr "" "λεξικού και η ισότητα, τα ακόλουθα παραδείγματα επιστρέφουν όλα ένα λεξικό " "ίσο με ``{\"one\": 1, \"two\": 2, \"three\": 3}``::" -#: library/stdtypes.rst:4891 +#: library/stdtypes.rst:5026 msgid "" ">>> a = dict(one=1, two=2, three=3)\n" ">>> b = {'one': 1, 'two': 2, 'three': 3}\n" @@ -8815,7 +8956,7 @@ msgstr "" ">>> a == b == c == d == e == f\n" "True" -#: library/stdtypes.rst:4903 +#: library/stdtypes.rst:5038 msgid "" "Dictionaries preserve insertion order. Note that updating a key does not " "affect the order. Keys added after deletion are inserted at the end. ::" @@ -8824,7 +8965,7 @@ msgstr "" "κλειδιού δεν επηρεάζει τη σειρά. Τα κλειδιά που προστέθηκαν μετά τη " "διαγραφή εισάγονται στο τέλος. ::" -#: library/stdtypes.rst:4906 +#: library/stdtypes.rst:5041 msgid "" ">>> d = {\"one\": 1, \"two\": 2, \"three\": 3, \"four\": 4}\n" ">>> d\n" @@ -8856,7 +8997,7 @@ msgstr "" ">>> d\n" "{'one': 42, 'three': 3, 'four': 4, 'two': None}" -#: library/stdtypes.rst:4921 +#: library/stdtypes.rst:5056 msgid "" "Dictionary order is guaranteed to be insertion order. This behavior was an " "implementation detail of CPython from 3.6." @@ -8864,7 +9005,7 @@ msgstr "" "Η σειρά λεξικού είναι εγγυημένη ότι είναι η σειρά εισαγωγής. Αυτή η " "συμπεριφορά ήταν μια λεπτομέρεια υλοποίηση της CPython από την έκδοση 3.6." -#: library/stdtypes.rst:4925 +#: library/stdtypes.rst:5060 msgid "" "These are the operations that dictionaries support (and therefore, custom " "mapping types should support too):" @@ -8872,43 +9013,44 @@ msgstr "" "Αυτές είναι οι λειτουργίες που υποστηρίζουν τα λεξικά (και επομένως, θα " "πρέπει να υποστηρίζουν και προσαρμοσμένους τύπους αντιστοίχισης επίσης):" -#: library/stdtypes.rst:4930 +#: library/stdtypes.rst:5065 msgid "Return a list of all the keys used in the dictionary *d*." msgstr "" "Επιστρέφει μια λίστα με όλα τα κλειδιά που χρησιμοποιούνται στο λεξικό *d*." -#: library/stdtypes.rst:4934 +#: library/stdtypes.rst:5069 msgid "Return the number of items in the dictionary *d*." msgstr "Επιστρέφει τον αριθμό των στοιχείων στο λεξικό *d*." -#: library/stdtypes.rst:4938 +#: library/stdtypes.rst:5073 msgid "" "Return the item of *d* with key *key*. Raises a :exc:`KeyError` if *key* is " "not in the map." msgstr "" -"Επιστρέφει το στοιχείο του *d* με το κλειδί *key*. Κάνει raise μια :exc:" -"`KeyError` εάν το *key* δεν υπάρχει για να αντιστοιχηθεί." +"Επιστρέφει το στοιχείο του *d* με το κλειδί *key*. Κάνει raise " +"μια :exc:`KeyError` εάν το *key* δεν υπάρχει για να αντιστοιχηθεί." -#: library/stdtypes.rst:4943 +#: library/stdtypes.rst:5078 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::" +"If a subclass of dict defines a method :meth:`~object.__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:`~object.__missing__`. " +"If :meth:`~object.__missing__` is not defined, :exc:`KeyError` is " +"raised. :meth:`~object.__missing__` must be a method; it cannot be an " +"instance variable::" msgstr "" -"Εάν μια υποκλάση ενός λεξικού ορίζει μια μέθοδο :meth:`__missing__` και το " -"*key* δεν υπάρχει, η λειτουργία ``d[key]`` καλεί αυτήν την μέθοδο με το " -"κλειδί *key* ως όρισμα. Στη συνέχεια, η λειτουργία ``d[key]`` επιστρέφει ή " -"κάνει raise ό, τι επιστρέφεται ή γίνεται raise από την κλήση " -"``__missing__(key)``. Καμία άλλη λειτουργία ή μέθοδος δεν επικαλεί την :meth:" -"`__missing__`. Εάν το :meth:`__missing__` δεν έχει οριστεί, γίνεται raise :" -"exc:`KeyError`. To :meth:`__missing__` πρέπει να είναι μέθοδος∙ δεν μπορεί " -"να είναι ένα στιγμιότυπο μεταβλητής::" +"Εάν μια υποκλάση ενός λεξικού ορίζει μια μέθοδο :meth:`~object.__missing__` " +"και το *key* δεν υπάρχει, η λειτουργία ``d[key]`` καλεί αυτήν την μέθοδο με " +"το κλειδί *key* ως όρισμα. Στη συνέχεια, η λειτουργία ``d[key]`` επιστρέφει " +"ή κάνει raise ό, τι επιστρέφεται ή γίνεται raise από την κλήση " +"``__missing__(key)``. Καμία άλλη λειτουργία ή μέθοδος δεν επικαλεί " +"την :meth:`__missing__`. Εάν το :meth:`~object.__missing__` δεν έχει " +"οριστεί, γίνεται raise :exc:`KeyError`. To :meth:`~object.__missing__` " +"πρέπει να είναι μέθοδος∙ δεν μπορεί να είναι ένα στιγμιότυπο μεταβλητής::" -#: library/stdtypes.rst:4951 +#: library/stdtypes.rst:5086 msgid "" ">>> class Counter(dict):\n" "... def __missing__(self, key):\n" @@ -8932,21 +9074,21 @@ msgstr "" ">>> c['red']\n" "1" -#: library/stdtypes.rst:4962 +#: library/stdtypes.rst:5097 msgid "" -"The example above shows part of the implementation of :class:`collections." -"Counter`. A different ``__missing__`` method is used by :class:`collections." -"defaultdict`." +"The example above shows part of the implementation " +"of :class:`collections.Counter`. A different :meth:`!__missing__` method is " +"used by :class:`collections.defaultdict`." msgstr "" -"Το παραπάνω παράδειγμα δείχνει μέρος της υλοποίησης του :class:`collections." -"Counter`. Μια διαφορετική μέθοδος ``__missing__`` χρησιμοποιείται από την :" -"class:`collections.defaultdict`." +"Το παραπάνω παράδειγμα δείχνει μέρος της υλοποίησης " +"του :class:`collections.Counter`. Μια διαφορετική μέθοδος :meth:`!" +"__missing__` χρησιμοποιείται από την :class:`collections.defaultdict`." -#: library/stdtypes.rst:4968 +#: library/stdtypes.rst:5104 msgid "Set ``d[key]`` to *value*." msgstr "Ορίζει το ``d[key]`` στο *value*." -#: library/stdtypes.rst:4972 +#: library/stdtypes.rst:5108 msgid "" "Remove ``d[key]`` from *d*. Raises a :exc:`KeyError` if *key* is not in the " "map." @@ -8954,16 +9096,16 @@ msgstr "" "Αφαιρεί το ``d[key]`` από το *d*. Κάνει raise ένα :exc:`KeyError` εάν το " "*key* δεν υπάρχει για αντιστοίχιση." -#: library/stdtypes.rst:4977 +#: library/stdtypes.rst:5113 msgid "Return ``True`` if *d* has a key *key*, else ``False``." msgstr "" "Επιστρέφει ``True`` εάν το *d* έχει ένα κλειδί *key*, διαφορετικά ``False``." -#: library/stdtypes.rst:4981 +#: library/stdtypes.rst:5117 msgid "Equivalent to ``not key in d``." msgstr "Ισοδυναμεί με ``not key in d``." -#: library/stdtypes.rst:4985 +#: library/stdtypes.rst:5121 msgid "" "Return an iterator over the keys of the dictionary. This is a shortcut for " "``iter(d.keys())``." @@ -8971,21 +9113,21 @@ msgstr "" "Επιστρέφει έναν iterator πάνω από τα κλειδιά του λεξικού. Αυτή είναι μια " "συντόμευση για ``iter(d.keys())``." -#: library/stdtypes.rst:4990 +#: library/stdtypes.rst:5126 msgid "Remove all items from the dictionary." msgstr "Αφαιρεί όλα τα στοιχεία από το λεξικό." -#: library/stdtypes.rst:4994 +#: library/stdtypes.rst:5130 msgid "Return a shallow copy of the dictionary." msgstr "Επιστρέφει ένα ρηχό αντίγραφο του λεξικού." -#: library/stdtypes.rst:4998 +#: library/stdtypes.rst:5134 msgid "" "Create a new dictionary with keys from *iterable* and values set to *value*." msgstr "" "Δημιουργεί ένα νέο λεξικό με κλειδιά από το *iterable* και τιμές ως *value*." -#: library/stdtypes.rst:5000 +#: library/stdtypes.rst:5136 msgid "" ":meth:`fromkeys` is a class method that returns a new dictionary. *value* " "defaults to ``None``. All of the values refer to just a single instance, so " @@ -9000,7 +9142,7 @@ msgstr "" "διαφορετικές τιμές, χρησιμοποιήστε αντ' αυτού ένα :ref:`dict comprehension " "`." -#: library/stdtypes.rst:5008 +#: library/stdtypes.rst:5144 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 " @@ -9010,7 +9152,7 @@ msgstr "" "*default*. Εάν το *default* δεν δίνεται, ορίζεται από προεπιλογή σε " "``None``, έτσι ώστε αυτή η μέθοδος να μην κάνει raise μια :exc:`KeyError`." -#: library/stdtypes.rst:5014 +#: library/stdtypes.rst:5150 msgid "" "Return a new view of the dictionary's items (``(key, value)`` pairs). See " "the :ref:`documentation of view objects `." @@ -9018,25 +9160,25 @@ msgstr "" "Επιστρέφει μια νέα όψη των στοιχείων του λεξικού (``(key, value)`` ζεύγη). " "Δείτε την :ref:`documentation of view objects `." -#: library/stdtypes.rst:5019 +#: library/stdtypes.rst:5155 msgid "" "Return a new view of the dictionary's keys. See the :ref:`documentation of " "view objects `." msgstr "" -"Επιστρέφει μια νέα όψη των κλειδιών του λεξικού. Δείτε το :ref:" -"`documentation of view objects `." +"Επιστρέφει μια νέα όψη των κλειδιών του λεξικού. Δείτε " +"το :ref:`documentation of view objects `." -#: library/stdtypes.rst:5024 +#: library/stdtypes.rst:5161 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." +"*default*. If *default* is not given and *key* is not in the dictionary, " +"a :exc:`KeyError` is raised." msgstr "" "Εάν το *key* βρίσκεται στο λεξικό, αφαιρείται και επιστρέφει την τιμή του, " "διαφορετικά επιστρέφει *default*. Εάν *default* δεν δίνεται και το *key* " "δεν είναι στο λεξικό, γίνεται raise ένα :exc:`KeyError`." -#: library/stdtypes.rst:5030 +#: library/stdtypes.rst:5167 msgid "" "Remove and return a ``(key, value)`` pair from the dictionary. Pairs are " "returned in :abbr:`LIFO (last-in, first-out)` order." @@ -9044,25 +9186,25 @@ msgstr "" "Αφαιρεί και επιστρέφει ένα ζεύγος ``(key, value)`` από το λεξικό. Τα ζεύγη " "επιστρέφονται με τη σειρά :abbr:`LIFO (last-in, first-out)`." -#: library/stdtypes.rst:5033 +#: library/stdtypes.rst:5170 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`." +"often used in set algorithms. If the dictionary is empty, " +"calling :meth:`popitem` raises a :exc:`KeyError`." msgstr "" "Η μέθοδος :meth:`popitem` είναι χρήσιμη για καταστροφική επανάληψη σε ένα " "λεξικό, όπως χρησιμοποιείται συχνά σε αλγόριθμους συνόλου. Εάν το λεξικό " "είναι κενό, η κλήση της :meth:`popitem` κάνει raise ένα :exc:`KeyError`." -#: library/stdtypes.rst:5037 +#: library/stdtypes.rst:5174 msgid "" "LIFO order is now guaranteed. In prior versions, :meth:`popitem` would " "return an arbitrary key/value pair." msgstr "" -"Η σειρά LIFO είναι πλέον εγγυημένη. Σε προηγούμενες εκδόσεις, η :meth:" -"`popitem` επιστρέφει ένα αυθαίρετο ζεύγος κλειδιού/τιμής." +"Η σειρά LIFO είναι πλέον εγγυημένη. Σε προηγούμενες εκδόσεις, " +"η :meth:`popitem` επιστρέφει ένα αυθαίρετο ζεύγος κλειδιού/τιμής." -#: library/stdtypes.rst:5043 +#: library/stdtypes.rst:5180 msgid "" "Return a reverse iterator over the keys of the dictionary. This is a " "shortcut for ``reversed(d.keys())``." @@ -9070,7 +9212,7 @@ msgstr "" "Επιστρέφει έναν αντίστροφο iterator πάνω από τα κλειδιά του λεξικού. Αυτή " "είναι μια συντόμευση για ``reversed(d.keys())``." -#: library/stdtypes.rst:5050 +#: library/stdtypes.rst:5187 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``." @@ -9079,15 +9221,16 @@ msgstr "" "εισάγετε το *key* με τιμή *default* και επιστρέφει *default*. Το *default* " "από προεπιλογή είναι ``None``." -#: library/stdtypes.rst:5056 +#: library/stdtypes.rst:5195 msgid "" -"Update the dictionary with the key/value pairs from *other*, overwriting " -"existing keys. Return ``None``." +"Update the dictionary with the key/value pairs from *mapping* or *iterable* " +"and *kwargs*, overwriting existing keys. Return ``None``." msgstr "" -"Ενημερώνει το λεξικό με τα ζεύγη κλειδιών/τιμών από το *other*, " -"αντικαθιστώντας τα υπάρχοντα κλειδιά. Επιστρέφει ``None``." +"Ενημερώνει το λεξικό με τα ζεύγη κλειδιών/τιμών από το *mapping* ή " +"*iterable* και *kwargs*, αντικαθιστώντας τα υπάρχοντα κλειδιά. Επιστρέφει " +"``None``." -#: library/stdtypes.rst:5059 +#: library/stdtypes.rst:5198 msgid "" ":meth:`update` accepts either another object with a ``keys()`` method (in " "which case :meth:`~object.__getitem__` is called with every key returned " @@ -9102,7 +9245,7 @@ msgstr "" "κλειδιών, το λεξικό ενημερώνεται στη συνέχεια με αυτά τα ζεύγη κλειδιών/" "τιμών: ``d.update(red=1, blue=2)``." -#: library/stdtypes.rst:5067 +#: library/stdtypes.rst:5206 msgid "" "Return a new view of the dictionary's values. See the :ref:`documentation " "of view objects `." @@ -9110,17 +9253,17 @@ msgstr "" "Επιστρέφει μια νέα όψη των τιμών του λεξικού. Δείτε την :ref:`documentation " "of view objects `." -#: library/stdtypes.rst:5070 +#: library/stdtypes.rst:5209 msgid "" "An equality comparison between one ``dict.values()`` view and another will " "always return ``False``. This also applies when comparing ``dict.values()`` " "to itself::" msgstr "" "Μια σύγκριση ισότητας μεταξύ μιας όψης ``dict.values()`` και μιας άλλης θα " -"επιστρέφει πάντα ``False``. Αυτό ισχύει επίσης όταν συγκρίνετε το ``dict." -"values()`` με τον εαυτό της::" +"επιστρέφει πάντα ``False``. Αυτό ισχύει επίσης όταν συγκρίνετε το " +"``dict.values()`` με τον εαυτό της::" -#: library/stdtypes.rst:5074 +#: library/stdtypes.rst:5213 msgid "" ">>> d = {'a': 1}\n" ">>> d.values() == d.values()\n" @@ -9130,7 +9273,7 @@ msgstr "" ">>> d.values() == d.values()\n" "False" -#: library/stdtypes.rst:5080 +#: library/stdtypes.rst:5219 msgid "" "Create a new dictionary with the merged keys and values of *d* and *other*, " "which must both be dictionaries. The values of *other* take priority when " @@ -9140,7 +9283,7 @@ msgstr "" "και *other*, τα οποία πρέπει να είναι και τα δύο λεξικά. Οι τιμές του " "*other* έχουν προτεραιότητα όταν τα κλειδιά των *d* και *other* είναι κοινά." -#: library/stdtypes.rst:5088 +#: library/stdtypes.rst:5227 msgid "" "Update the dictionary *d* with keys and values from *other*, which may be " "either a :term:`mapping` or an :term:`iterable` of key/value pairs. The " @@ -9151,11 +9294,11 @@ msgstr "" "τιμές του *other* έχουν προτεραιότητα όταν τα κλειδιά των το *d* και *other* " "είναι κοινά." -#: library/stdtypes.rst:5094 +#: library/stdtypes.rst:5233 msgid "Dictionaries and dictionary views are reversible. ::" msgstr "Τα λεξικά και οι όψεις λεξικών είναι αναστρέψιμες. ::" -#: library/stdtypes.rst:5096 +#: library/stdtypes.rst:5235 msgid "" ">>> d = {\"one\": 1, \"two\": 2, \"three\": 3, \"four\": 4}\n" ">>> d\n" @@ -9177,35 +9320,36 @@ msgstr "" ">>> list(reversed(d.items()))\n" "[('four', 4), ('three', 3), ('two', 2), ('one', 1)]" -#: library/stdtypes.rst:5106 +#: library/stdtypes.rst:5245 msgid "Dictionaries are now reversible." msgstr "Τα λεξικά είναι πλέον αναστρέψιμα." -#: library/stdtypes.rst:5111 +#: library/stdtypes.rst:5250 msgid "" -":class:`types.MappingProxyType` can be used to create a read-only view of a :" -"class:`dict`." +":class:`types.MappingProxyType` can be used to create a read-only view of " +"a :class:`dict`." msgstr "" "Η :class:`types.MappingProxyType` μπορεί να χρησιμοποιηθεί για τη δημιουργία " "μιας όψης μόνο για ανάγνωση μιας :class:`dict`." -#: library/stdtypes.rst:5118 +#: library/stdtypes.rst:5257 msgid "Dictionary view objects" msgstr "Αντικείμενα όψης λεξικού" -#: library/stdtypes.rst:5120 +#: library/stdtypes.rst:5259 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." +"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 "" -"Τα αντικείμενα που επιστρέφονται από τις :meth:`dict.keys`, :meth:`dict." -"values` and :meth:`dict.items` είναι *όψεις αντικειμένων (view objects)*. " -"Παρέχουν μια δυναμική όψη στις εγγραφές του λεξικού, που σημαίνει ότι όταν " -"αλλάζει το λεξικό, η όψη αντικατοπτρίζει αυτές τις αλλαγές." +"Τα αντικείμενα που επιστρέφονται από " +"τις :meth:`dict.keys`, :meth:`dict.values` and :meth:`dict.items` είναι " +"*όψεις αντικειμένων (view objects)*. Παρέχουν μια δυναμική όψη στις " +"εγγραφές του λεξικού, που σημαίνει ότι όταν αλλάζει το λεξικό, η όψη " +"αντικατοπτρίζει αυτές τις αλλαγές." -#: library/stdtypes.rst:5125 +#: library/stdtypes.rst:5264 msgid "" "Dictionary views can be iterated over to yield their respective data, and " "support membership tests:" @@ -9213,11 +9357,11 @@ msgstr "" "Οι όψεις λεξικού μπορούν να γίνουν iterate για την απόδοση των αντίστοιχων " "δεδομένων τους και την υποστήριξη ελέγχων για το αν είναι μέρος του:" -#: library/stdtypes.rst:5130 +#: library/stdtypes.rst:5269 msgid "Return the number of entries in the dictionary." msgstr "Επιστρέφει τον αριθμό των καταχωρήσεων στο λεξικό." -#: library/stdtypes.rst:5134 +#: library/stdtypes.rst:5273 msgid "" "Return an iterator over the keys, values or items (represented as tuples of " "``(key, value)``) in the dictionary." @@ -9225,20 +9369,20 @@ msgstr "" "Επιστρέφει έναν iterator πάνω στα κλειδιά, τις τιμές ή τα στοιχεία (που " "αντιπροσωπεύονται ως πλειάδες (tuples) του ``(key, value)`` στο λεξικό." -#: library/stdtypes.rst:5137 +#: library/stdtypes.rst:5276 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()]``." +"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 "" "Τα κλειδιά και οι τιμές επαναλαμβάνονται με την σειρά εισαγωγής. Αυτό " -"επιτρέπει τη δημιουργία ζευγών ``(value, key)`` χρησιμοποιώντας τη :func:" -"`zip`: ``pairs = zip(d.values(), d.keys())``. Ένας άλλος τρόπος είναι να " -"δημιουργήσετε την ίδια λίστα είναι ``pairs = [(v, k) for (k, v) in d." -"items()]``." +"επιτρέπει τη δημιουργία ζευγών ``(value, key)`` χρησιμοποιώντας " +"τη :func:`zip`: ``pairs = zip(d.values(), d.keys())``. Ένας άλλος τρόπος " +"είναι να δημιουργήσετε την ίδια λίστα είναι ``pairs = [(v, k) for (k, v) in " +"d.items()]``." -#: library/stdtypes.rst:5142 +#: library/stdtypes.rst:5281 msgid "" "Iterating views while adding or deleting entries in the dictionary may raise " "a :exc:`RuntimeError` or fail to iterate over all entries." @@ -9247,11 +9391,11 @@ msgstr "" "μπορεί να κάνει raise μια :exc:`RuntimeError` ή να αποτύχει το iterate σε " "όλες τις καταχωρήσεις." -#: library/stdtypes.rst:5145 +#: library/stdtypes.rst:5284 msgid "Dictionary order is guaranteed to be insertion order." msgstr "Η σειρά λεξικού είναι εγγυημένη σειρά εισαγωγής." -#: library/stdtypes.rst:5150 +#: library/stdtypes.rst:5289 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)." @@ -9260,7 +9404,7 @@ msgstr "" "ή τα στοιχεία του υποκείμενου λεξικού (στην τελευταία περίπτωση, το *x* θα " "πρέπει να είναι μια ``(key, value)`` πλειάδα (tuple))." -#: library/stdtypes.rst:5155 +#: library/stdtypes.rst:5294 msgid "" "Return a reverse iterator over the keys, values or items of the dictionary. " "The view will be iterated in reverse order of the insertion." @@ -9269,11 +9413,11 @@ msgstr "" "στοιχεία του λεξικού. Η όψη θα γίνει iterate με την αντίστροφη σειρά από την " "εισαγωγή." -#: library/stdtypes.rst:5158 +#: library/stdtypes.rst:5297 msgid "Dictionary views are now reversible." msgstr "Οι όψεις λεξικού είναι πλέον αναστρέψιμες." -#: library/stdtypes.rst:5163 +#: library/stdtypes.rst:5302 msgid "" "Return a :class:`types.MappingProxyType` that wraps the original dictionary " "to which the view refers." @@ -9281,7 +9425,7 @@ msgstr "" "Επιστρέφει μια :class:`types.MappingProxyType` που αναδιπλώνει το αρχικό " "λεξικό στο οποίο αναφέρεται η όψη." -#: library/stdtypes.rst:5168 +#: library/stdtypes.rst:5307 msgid "" "Keys views are set-like since their entries are unique and :term:`hashable`. " "Items views also have set-like operations since the (key, value) pairs are " @@ -9307,11 +9451,11 @@ msgstr "" "όψεις που μοιάζουν με σύνολο δέχονται οποιοδήποτε iterable ως άλλο τελεστή, " "σε αντίθεση με τα σύνολα που δέχονται μόνο σύνολα ως είσοδο." -#: library/stdtypes.rst:5180 +#: library/stdtypes.rst:5319 msgid "An example of dictionary view usage::" msgstr "Ένα παράδειγμα χρήσης όψης λεξικού::" -#: library/stdtypes.rst:5182 +#: library/stdtypes.rst:5321 msgid "" ">>> dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500}\n" ">>> keys = dishes.keys()\n" @@ -9389,11 +9533,11 @@ msgstr "" ">>> values.mapping['spam']\n" "500" -#: library/stdtypes.rst:5224 +#: library/stdtypes.rst:5363 msgid "Context Manager Types" msgstr "Τύποι Διαχείρισης Περιεχομένου" -#: library/stdtypes.rst:5231 +#: library/stdtypes.rst:5370 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 " @@ -9407,7 +9551,7 @@ msgstr "" "εισάγεται πριν από την εκτέλεση του σώματος της δήλωσης και να κάνει έξοδο " "όταν τερματιστεί η δήλωση:" -#: library/stdtypes.rst:5239 +#: library/stdtypes.rst:5378 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 " @@ -9419,18 +9563,19 @@ msgstr "" "επιστρέφεται από αυτήν την μέθοδο είναι δεσμευμένη στο αναγνωριστικό στην " "πρόταση :keyword:`!as` των δηλώσεων :keyword:`with` διαχείρισης περιεχομένου." -#: library/stdtypes.rst:5244 +#: library/stdtypes.rst:5383 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." +"object`. File objects return themselves from __enter__() to " +"allow :func:`open` to be used as the context expression in a :keyword:`with` " +"statement." msgstr "" "Ένα παράδειγμα ενός διαχειριστή περιεχομένου που επιστρέφει ο ίδιος είναι " "ένα :term:`file object`. Τα αντικείμενα αρχείου επιστρέφουν μόνα τους από " "__enter__() για να επιτρέψουν στο :func:`open` να χρησιμοποιηθεί ως έκφραση " "περιεχομένου σε μια δήλωση :keyword:`with`." -#: library/stdtypes.rst:5248 +#: library/stdtypes.rst:5387 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 " @@ -9447,7 +9592,7 @@ msgstr "" "πλαίσιο στο σώμα της δήλωσης :keyword:`with`, χωρίς να επηρεάζεται ο κώδικας " "εκτός της δήλωσης :keyword:`!with`." -#: library/stdtypes.rst:5258 +#: library/stdtypes.rst:5397 msgid "" "Exit the runtime context and return a Boolean flag indicating if any " "exception that occurred should be suppressed. If an exception occurred while " @@ -9462,7 +9607,7 @@ msgstr "" "και τις πληροφορίες ανίχνευσης. Διαφορετικά, και τα τρία ορίσματα είναι " "``None``." -#: library/stdtypes.rst:5263 +#: library/stdtypes.rst:5402 msgid "" "Returning a true value from this method will cause the :keyword:`with` " "statement to suppress the exception and continue execution with the " @@ -9477,16 +9622,16 @@ msgstr "" "συνεχίσει την εκτέλεση με τη δήλωση αμέσως μετά τη δήλωση :keyword:`!with`. " "Διαφορετικά, η εξαίρεση θα συνεχίσει να διαδίδεται μετά την ολοκλήρωση αυτής " "της μεθόδου. Οι εξαιρέσεις που προκύπτουν κατά την εκτέλεση αυτής της " -"μεθόδου θα αντικαταστήσουν κάθε εξαίρεση που προέκυψε στο σώμα της δήλωσης :" -"keyword:`!with`." +"μεθόδου θα αντικαταστήσουν κάθε εξαίρεση που προέκυψε στο σώμα της " +"δήλωσης :keyword:`!with`." -#: library/stdtypes.rst:5270 +#: library/stdtypes.rst:5409 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:`~object." -"__exit__` method has actually failed." +"context management code to easily detect whether or not " +"an :meth:`~object.__exit__` method has actually failed." msgstr "" "Η εξαίρεση που διαβιβάστηκε δεν θα πρέπει ποτέ να επανατοποθετηθεί ρητά - " "αντίθετα, αυτή η μέθοδος θα πρέπει να επιστρέψει μια ψευδή τιμή για να " @@ -9495,7 +9640,7 @@ msgstr "" "περιεχομένου να εντοπίζει εύκολα εάν μια μέθοδος :meth:`~object.__exit__` " "έχει πράγματι αποτύχει." -#: library/stdtypes.rst:5276 +#: library/stdtypes.rst:5415 msgid "" "Python defines several context managers to support easy thread " "synchronisation, prompt closure of files or other objects, and simpler " @@ -9510,24 +9655,26 @@ msgstr "" "τους πρωτοκόλλου διαχείρισης περιεχομένου. Δείτε το module :mod:`contextlib` " "για μερικά παραδείγματα." -#: library/stdtypes.rst:5282 +#: library/stdtypes.rst:5421 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:" -"`~contextmanager.__enter__` and :meth:`~contextmanager.__exit__` methods, " -"rather than the iterator produced by an undecorated generator function." -msgstr "" -"Οι decorators της Python :term:`generator`\\s και :class:`contextlib." -"contextmanager` παρέχουν έναν βολικό τρόπο υλοποίησης αυτών των " -"πρωτοκόλλων. Εάν μια συνάρτηση γεννήτριας είναι decorated με τον :class:" -"`contextlib.contextmanager` decorator, θα επιστρέψει έναν διαχειριστή " -"περιεχομένου που εφαρμόζει τις απαραίτητες μεθόδους :meth:`~contextmanager." -"__enter__` και :meth:`~contextmanager.__exit__`, αντί του iterator που " -"παράγεται από μια undecorated συνάρτηση γεννήτριας." - -#: library/stdtypes.rst:5289 +"decorator, it will return a context manager implementing the " +"necessary :meth:`~contextmanager.__enter__` " +"and :meth:`~contextmanager.__exit__` methods, rather than the iterator " +"produced by an undecorated generator function." +msgstr "" +"Οι decorators της Python :term:`generator`\\s " +"και :class:`contextlib.contextmanager` παρέχουν έναν βολικό τρόπο υλοποίησης " +"αυτών των πρωτοκόλλων. Εάν μια συνάρτηση γεννήτριας είναι decorated με " +"τον :class:`contextlib.contextmanager` decorator, θα επιστρέψει έναν " +"διαχειριστή περιεχομένου που εφαρμόζει τις απαραίτητες " +"μεθόδους :meth:`~contextmanager.__enter__` " +"και :meth:`~contextmanager.__exit__`, αντί του iterator που παράγεται από " +"μια undecorated συνάρτηση γεννήτριας." + +#: library/stdtypes.rst:5428 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 " @@ -9542,28 +9689,28 @@ msgstr "" "της ρύθμισης στο πλαίσιο του χρόνου εκτέλεσης, η επιβάρυνση μιας απλής " "αναζήτησης κλάσης λεξικού είναι αμελητέα." -#: library/stdtypes.rst:5297 +#: library/stdtypes.rst:5436 msgid "" -"Type Annotation Types --- :ref:`Generic Alias `, :ref:" -"`Union `" +"Type Annotation Types --- :ref:`Generic Alias `, :ref:`Union `" msgstr "" -"Τύποι Annotation τύπου --- :ref:`Generic Alias `, :ref:" -"`Union `" +"Τύποι Annotation τύπου --- :ref:`Generic Alias `, :ref:`Union `" -#: library/stdtypes.rst:5302 +#: library/stdtypes.rst:5441 msgid "" -"The core built-in types for :term:`type annotations ` are :ref:" -"`Generic Alias ` and :ref:`Union `." +"The core built-in types for :term:`type annotations ` " +"are :ref:`Generic Alias ` and :ref:`Union `." msgstr "" "Οι βασικοί ενσωματωμένοι τύποι για :term:`type annotations ` " "είναι :ref:`Generic Alias ` και :ref:`Union `." -#: library/stdtypes.rst:5309 +#: library/stdtypes.rst:5448 msgid "Generic Alias Type" msgstr "Τύπος Generic Alias" -#: library/stdtypes.rst:5315 +#: library/stdtypes.rst:5454 msgid "" "``GenericAlias`` objects are generally created by :ref:`subscripting " "` a class. They are most often used with :ref:`container " @@ -9580,7 +9727,7 @@ msgstr "" "Τα αντικείμενα ``GenericAlias`` προορίζονται κυρίως για χρήση με :term:`type " "annotations `." -#: library/stdtypes.rst:5325 +#: library/stdtypes.rst:5464 msgid "" "It is generally only possible to subscript a class if the class implements " "the special method :meth:`~object.__class_getitem__`." @@ -9588,7 +9735,7 @@ msgstr "" "Γενικά είναι δυνατή η εγγραφή μιας κλάσης μόνο εάν η κλάση εφαρμόζει την " "ειδική μέθοδο :meth:`~object.__class_getitem__`." -#: library/stdtypes.rst:5328 +#: library/stdtypes.rst:5467 msgid "" "A ``GenericAlias`` object acts as a proxy for a :term:`generic type`, " "implementing *parameterized generics*." @@ -9596,22 +9743,22 @@ msgstr "" "Ένα αντικείμενο ``GenericAlias`` λειτουργεί ως διακομιστής μεσολάβησης " "(proxy) για έναν :term:`generic type`, υλοποιώντας *parameterized generics*." -#: library/stdtypes.rst:5331 +#: library/stdtypes.rst:5470 msgid "" "For a container class, the argument(s) supplied to a :ref:`subscription " "` of the class may indicate the type(s) of the elements an " "object contains. For example, ``set[bytes]`` can be used in type annotations " -"to signify a :class:`set` in which all the elements are of type :class:" -"`bytes`." +"to signify a :class:`set` in which all the elements are of " +"type :class:`bytes`." msgstr "" -"Για μια κλάση container, το(α) όρισμα(τα) που παρέχει σε μια :ref:" -"`subscription ` της κλάσης μπορεί να υποδεικνύει τον(ους) " -"τύπο(ους) των στοιχείων που περιέχει ένα αντικείμενο. Για παράδειγμα, το " -"``set[bytes]`` μπορεί να χρησιμοποιηθεί σε annotations τύπου για να " -"υποδηλώσει ένα :class:`set` στο οποίο όλα τα στοιχεία είναι τύπου :class:" -"`bytes`." +"Για μια κλάση container, το(α) όρισμα(τα) που παρέχει σε " +"μια :ref:`subscription ` της κλάσης μπορεί να υποδεικνύει " +"τον(ους) τύπο(ους) των στοιχείων που περιέχει ένα αντικείμενο. Για " +"παράδειγμα, το ``set[bytes]`` μπορεί να χρησιμοποιηθεί σε annotations τύπου " +"για να υποδηλώσει ένα :class:`set` στο οποίο όλα τα στοιχεία είναι " +"τύπου :class:`bytes`." -#: library/stdtypes.rst:5337 +#: library/stdtypes.rst:5476 msgid "" "For a class which defines :meth:`~object.__class_getitem__` but is not a " "container, the argument(s) supplied to a subscription of the class will " @@ -9623,48 +9770,48 @@ msgstr "" "container, τα ορίσματα που παρέχονται σε μια συνδρομή της κλάσης θα " "υποδεικνύουν συχνά τον τύπο ή τους τύπους επιστροφής μιας ή περισσότερων " "μεθόδων που ορίζονται σε ένα αντικείμενο. Για παράδειγμα, το :mod:`regular " -"expressions ` μπορούν να χρησιμοποιηθούν τόσο στον τύπο δεδομένων :class:" -"`str` όσο και στον τύπο δεδομένων :class:`bytes`:" +"expressions ` μπορούν να χρησιμοποιηθούν τόσο στον τύπο " +"δεδομένων :class:`str` όσο και στον τύπο δεδομένων :class:`bytes`:" -#: library/stdtypes.rst:5343 +#: library/stdtypes.rst:5482 msgid "" "If ``x = re.search('foo', 'foo')``, ``x`` will be a :ref:`re.Match ` object where the return values of ``x.group(0)`` and ``x[0]`` will " "both be of type :class:`str`. We can represent this kind of object in type " "annotations with the ``GenericAlias`` ``re.Match[str]``." msgstr "" -"Εάν ``x = re.search('foo', 'foo')``, το ``x`` θα είναι ένα αντικείμενο :ref:" -"`re.Match ` όπου επιστρέφονται οι τιμές του το ``x.group(0)`` " -"και το ``x[0]`` θα είναι και τα δύο τύπου :class:`str`. Μπορούμε να " -"αναπαραστήσουμε αυτό το είδος αντικειμένου σε σχολιασμούς τύπου με το " -"``GenericAlias`` ``re.Match[str]``." +"Εάν ``x = re.search('foo', 'foo')``, το ``x`` θα είναι ένα " +"αντικείμενο :ref:`re.Match ` όπου επιστρέφονται οι τιμές του " +"το ``x.group(0)`` και το ``x[0]`` θα είναι και τα δύο τύπου :class:`str`. " +"Μπορούμε να αναπαραστήσουμε αυτό το είδος αντικειμένου σε σχολιασμούς τύπου " +"με το ``GenericAlias`` ``re.Match[str]``." -#: library/stdtypes.rst:5349 +#: library/stdtypes.rst:5488 msgid "" "If ``y = re.search(b'bar', b'bar')``, (note the ``b`` for :class:`bytes`), " -"``y`` will also be an instance of ``re.Match``, but the return values of ``y." -"group(0)`` and ``y[0]`` will both be of type :class:`bytes`. In type " +"``y`` will also be an instance of ``re.Match``, but the return values of " +"``y.group(0)`` and ``y[0]`` will both be of type :class:`bytes`. In type " "annotations, we would represent this variety of :ref:`re.Match ` objects with ``re.Match[bytes]``." msgstr "" -"Εάν ``y = re.search(b'bar', b'bar')``, (σημειώστε το ``b`` για :class:" -"`bytes`), το ``y`` θα είναι επίσης μια παρουσία του ``re.Match``, αλλά οι " -"επιστρεφόμενες τιμές των ``y.group(0)`` και ``y[0]`` θα είναι και οι δύο " -"τύπου :class:`bytes`. Στους τύπους annotations, θα αντιπροσωπεύαμε αυτήν την " -"ποικιλία αντικειμένων :ref:`re.Match ` με το ``re." -"Match[bytes]``." +"Εάν ``y = re.search(b'bar', b'bar')``, (σημειώστε το ``b`` " +"για :class:`bytes`), το ``y`` θα είναι επίσης μια παρουσία του ``re.Match``, " +"αλλά οι επιστρεφόμενες τιμές των ``y.group(0)`` και ``y[0]`` θα είναι και οι " +"δύο τύπου :class:`bytes`. Στους τύπους annotations, θα αντιπροσωπεύαμε αυτήν " +"την ποικιλία αντικειμένων :ref:`re.Match ` με το " +"``re.Match[bytes]``." -#: library/stdtypes.rst:5355 +#: library/stdtypes.rst:5494 msgid "" -"``GenericAlias`` objects are instances of the class :class:`types." -"GenericAlias`, which can also be used to create ``GenericAlias`` objects " -"directly." +"``GenericAlias`` objects are instances of the " +"class :class:`types.GenericAlias`, which can also be used to create " +"``GenericAlias`` objects directly." msgstr "" -"Τα αντικείμενα ``GenericAlias`` είναι στιγμιότυπα της κλάσης :class:`types." -"GenericAlias`, τα οποία μπορούν επίσης να χρησιμοποιηθούν για την δημιουργία " -"αντικειμένων ``GenericAlias`` απευθείας." +"Τα αντικείμενα ``GenericAlias`` είναι στιγμιότυπα της " +"κλάσης :class:`types.GenericAlias`, τα οποία μπορούν επίσης να " +"χρησιμοποιηθούν για την δημιουργία αντικειμένων ``GenericAlias`` απευθείας." -#: library/stdtypes.rst:5361 +#: library/stdtypes.rst:5500 msgid "" "Creates a ``GenericAlias`` representing a type ``T`` parameterized by types " "*X*, *Y*, and more depending on the ``T`` used. For example, a function " @@ -9672,10 +9819,10 @@ msgid "" msgstr "" "Δημιουργεί ένα ``GenericAlias`` που αντιπροσωπεύει έναν τύπο ``T`` " "παραμετροποιημένο από τύπους *X*, *Y*, και άλλα ανάλογα με το ``T`` που " -"χρησιμοποιείται. Για παράδειγμα, μια συνάρτηση που αναμένει μια :class:" -"`list` που περιέχει στοιχεία της :class:`float`::" +"χρησιμοποιείται. Για παράδειγμα, μια συνάρτηση που αναμένει " +"μια :class:`list` που περιέχει στοιχεία της :class:`float`::" -#: library/stdtypes.rst:5366 +#: library/stdtypes.rst:5505 msgid "" "def average(values: list[float]) -> float:\n" " return sum(values) / len(values)" @@ -9683,20 +9830,20 @@ msgstr "" "def average(values: list[float]) -> float:\n" " return sum(values) / len(values)" -#: library/stdtypes.rst:5369 +#: library/stdtypes.rst:5508 msgid "" "Another example for :term:`mapping` objects, using a :class:`dict`, which is " "a generic type expecting two type parameters representing the key type and " "the value type. In this example, the function expects a ``dict`` with keys " "of type :class:`str` and values of type :class:`int`::" msgstr "" -"Ένα άλλο παράδειγμα για αντικείμενα :term:`mapping`, χρησιμοποιώντας ένα :" -"class:`dict`,που είναι ένας generic τύπος που αναμένει δύο παραμέτρους τύπου " -"που αντιπροσωπεύουν τον τύπο κλειδιού και τον τύπο τιμής. Σε αυτό το " +"Ένα άλλο παράδειγμα για αντικείμενα :term:`mapping`, χρησιμοποιώντας " +"ένα :class:`dict`,που είναι ένας generic τύπος που αναμένει δύο παραμέτρους " +"τύπου που αντιπροσωπεύουν τον τύπο κλειδιού και τον τύπο τιμής. Σε αυτό το " "παράδειγμα, η συνάρτηση αναμένει ένα ``dict`` με κλειδιά τύπου :class:`str` " "και τιμές τύπου :class:`int`::" -#: library/stdtypes.rst:5374 +#: library/stdtypes.rst:5513 msgid "" "def send_post_request(url: str, body: dict[str, int]) -> None:\n" " ..." @@ -9704,16 +9851,16 @@ msgstr "" "def send_post_request(url: str, body: dict[str, int]) -> None:\n" " ..." -#: library/stdtypes.rst:5377 +#: library/stdtypes.rst:5516 msgid "" "The builtin functions :func:`isinstance` and :func:`issubclass` do not " "accept ``GenericAlias`` types for their second argument::" msgstr "" -"Οι ενσωματωμένες συναρτήσεις (built-in) :func:`isinstance` και :func:" -"`issubclass` δεν δέχονται τους τύπους ``GenericAlias`` για το δεύτερο όρισμά " -"τους::" +"Οι ενσωματωμένες συναρτήσεις (built-in) :func:`isinstance` " +"και :func:`issubclass` δεν δέχονται τους τύπους ``GenericAlias`` για το " +"δεύτερο όρισμά τους::" -#: library/stdtypes.rst:5380 +#: library/stdtypes.rst:5519 msgid "" ">>> isinstance([1, 2], list[str])\n" "Traceback (most recent call last):\n" @@ -9725,7 +9872,7 @@ msgstr "" " File \"\", line 1, in \n" "TypeError: isinstance() argument 2 cannot be a parameterized generic" -#: library/stdtypes.rst:5385 +#: library/stdtypes.rst:5524 msgid "" "The Python runtime does not enforce :term:`type annotations `. " "This extends to generic types and their type parameters. When creating a " @@ -9740,7 +9887,7 @@ msgstr "" "τους. Για παράδειγμα, ο ακόλουθος κώδικας αποθαρρύνεται, αλλά θα εκτελεστεί " "χωρίς σφάλματα::" -#: library/stdtypes.rst:5391 +#: library/stdtypes.rst:5530 msgid "" ">>> t = list[str]\n" ">>> t([1, 2, 3])\n" @@ -9750,7 +9897,7 @@ msgstr "" ">>> t([1, 2, 3])\n" "[1, 2, 3]" -#: library/stdtypes.rst:5395 +#: library/stdtypes.rst:5534 msgid "" "Furthermore, parameterized generics erase type parameters during object " "creation::" @@ -9758,7 +9905,7 @@ msgstr "" "Επιπλέον, τα παραμετροποιημένα generics διαγράφουν τις παραμέτρους τύπου " "κατά τη δημιουργία αντικειμένου::" -#: library/stdtypes.rst:5398 +#: library/stdtypes.rst:5537 msgid "" ">>> t = list[str]\n" ">>> type(t)\n" @@ -9776,7 +9923,7 @@ msgstr "" ">>> type(l)\n" "" -#: library/stdtypes.rst:5406 +#: library/stdtypes.rst:5545 msgid "" "Calling :func:`repr` or :func:`str` on a generic shows the parameterized " "type::" @@ -9784,7 +9931,7 @@ msgstr "" "Η κλήση :func:`repr` ή :func:`str` σε ένα generic δείχνει τον " "παραμετροποιημένο τύπο::" -#: library/stdtypes.rst:5408 +#: library/stdtypes.rst:5547 msgid "" ">>> repr(list[int])\n" "'list[int]'\n" @@ -9798,7 +9945,7 @@ msgstr "" ">>> str(list[int])\n" "'list[int]'" -#: library/stdtypes.rst:5414 +#: library/stdtypes.rst:5553 msgid "" "The :meth:`~object.__getitem__` method of generic containers will raise an " "exception to disallow mistakes like ``dict[str][str]``::" @@ -9806,7 +9953,7 @@ msgstr "" "Η μέθοδος :meth:`~object.__getitem__` των generic containers θα κάνει raise " "μια εξαίρεση για την απαγόρευση λαθών όπως ``dict[str][str]``::" -#: library/stdtypes.rst:5417 +#: library/stdtypes.rst:5556 msgid "" ">>> dict[str][str]\n" "Traceback (most recent call last):\n" @@ -9818,7 +9965,7 @@ msgstr "" " ...\n" "TypeError: dict[str] is not a generic class" -#: library/stdtypes.rst:5422 +#: library/stdtypes.rst:5561 msgid "" "However, such expressions are valid when :ref:`type variables ` " "are used. The index must have as many elements as there are type variable " @@ -9829,7 +9976,7 @@ msgstr "" "στοιχεία όσα και τα στοιχεία μεταβλητής τύπου στο αντικείμενο " "``GenericAlias`` :attr:`~genericalias.__args__`. ::" -#: library/stdtypes.rst:5426 +#: library/stdtypes.rst:5565 msgid "" ">>> from typing import TypeVar\n" ">>> Y = TypeVar('Y')\n" @@ -9841,11 +9988,11 @@ msgstr "" ">>> dict[str, Y][int]\n" "dict[str, int]" -#: library/stdtypes.rst:5433 +#: library/stdtypes.rst:5572 msgid "Standard Generic Classes" msgstr "Τυπικές Γενικές Κλάσεις" -#: library/stdtypes.rst:5435 +#: library/stdtypes.rst:5574 msgid "" "The following standard library classes support parameterized generics. This " "list is non-exhaustive." @@ -9853,241 +10000,245 @@ msgstr "" "Οι ακόλουθες τυπικές κλάσεις βιβλιοθήκης υποστηρίζουν γενικά " "παραμετροποιημένα. Αυτή η λίστα δεν είναι εξαντλητική." -#: library/stdtypes.rst:5438 +#: library/stdtypes.rst:5577 msgid ":class:`tuple`" msgstr ":class:`tuple`" -#: library/stdtypes.rst:5439 +#: library/stdtypes.rst:5578 msgid ":class:`list`" msgstr ":class:`list`" -#: library/stdtypes.rst:5440 +#: library/stdtypes.rst:5579 msgid ":class:`dict`" msgstr ":class:`dict`" -#: library/stdtypes.rst:5441 +#: library/stdtypes.rst:5580 msgid ":class:`set`" msgstr ":class:`set`" -#: library/stdtypes.rst:5442 +#: library/stdtypes.rst:5581 msgid ":class:`frozenset`" msgstr ":class:`frozenset`" -#: library/stdtypes.rst:5443 +#: library/stdtypes.rst:5582 msgid ":class:`type`" msgstr ":class:`type`" -#: library/stdtypes.rst:5444 +#: library/stdtypes.rst:5583 msgid ":class:`asyncio.Future`" msgstr ":class:`asyncio.Future`" -#: library/stdtypes.rst:5445 +#: library/stdtypes.rst:5584 msgid ":class:`asyncio.Task`" msgstr ":class:`asyncio.Task`" -#: library/stdtypes.rst:5446 +#: library/stdtypes.rst:5585 msgid ":class:`collections.deque`" msgstr ":class:`collections.deque`" -#: library/stdtypes.rst:5447 +#: library/stdtypes.rst:5586 msgid ":class:`collections.defaultdict`" msgstr ":class:`collections.defaultdict`" -#: library/stdtypes.rst:5448 +#: library/stdtypes.rst:5587 msgid ":class:`collections.OrderedDict`" msgstr ":class:`collections.OrderedDict`" -#: library/stdtypes.rst:5449 +#: library/stdtypes.rst:5588 msgid ":class:`collections.Counter`" msgstr ":class:`collections.Counter`" -#: library/stdtypes.rst:5450 +#: library/stdtypes.rst:5589 msgid ":class:`collections.ChainMap`" msgstr ":class:`collections.ChainMap`" -#: library/stdtypes.rst:5451 +#: library/stdtypes.rst:5590 msgid ":class:`collections.abc.Awaitable`" msgstr ":class:`collections.abc.Awaitable`" -#: library/stdtypes.rst:5452 +#: library/stdtypes.rst:5591 msgid ":class:`collections.abc.Coroutine`" msgstr ":class:`collections.abc.Coroutine`" -#: library/stdtypes.rst:5453 +#: library/stdtypes.rst:5592 msgid ":class:`collections.abc.AsyncIterable`" msgstr ":class:`collections.abc.AsyncIterable`" -#: library/stdtypes.rst:5454 +#: library/stdtypes.rst:5593 msgid ":class:`collections.abc.AsyncIterator`" msgstr ":class:`collections.abc.AsyncIterator`" -#: library/stdtypes.rst:5455 +#: library/stdtypes.rst:5594 msgid ":class:`collections.abc.AsyncGenerator`" msgstr ":class:`collections.abc.AsyncGenerator`" -#: library/stdtypes.rst:5456 +#: library/stdtypes.rst:5595 msgid ":class:`collections.abc.Iterable`" msgstr ":class:`collections.abc.Iterable`" -#: library/stdtypes.rst:5457 +#: library/stdtypes.rst:5596 msgid ":class:`collections.abc.Iterator`" msgstr ":class:`collections.abc.Iterator`" -#: library/stdtypes.rst:5458 +#: library/stdtypes.rst:5597 msgid ":class:`collections.abc.Generator`" msgstr ":class:`collections.abc.Generator`" -#: library/stdtypes.rst:5459 +#: library/stdtypes.rst:5598 msgid ":class:`collections.abc.Reversible`" msgstr ":class:`collections.abc.Reversible`" -#: library/stdtypes.rst:5460 +#: library/stdtypes.rst:5599 msgid ":class:`collections.abc.Container`" msgstr ":class:`collections.abc.Container`" -#: library/stdtypes.rst:5461 +#: library/stdtypes.rst:5600 msgid ":class:`collections.abc.Collection`" msgstr ":class:`collections.abc.Collection`" -#: library/stdtypes.rst:5462 +#: library/stdtypes.rst:5601 msgid ":class:`collections.abc.Callable`" msgstr ":class:`collections.abc.Callable`" -#: library/stdtypes.rst:5463 +#: library/stdtypes.rst:5602 msgid ":class:`collections.abc.Set`" msgstr ":class:`collections.abc.Set`" -#: library/stdtypes.rst:5464 +#: library/stdtypes.rst:5603 msgid ":class:`collections.abc.MutableSet`" msgstr ":class:`collections.abc.MutableSet`" -#: library/stdtypes.rst:5465 +#: library/stdtypes.rst:5604 msgid ":class:`collections.abc.Mapping`" msgstr ":class:`collections.abc.Mapping`" -#: library/stdtypes.rst:5466 +#: library/stdtypes.rst:5605 msgid ":class:`collections.abc.MutableMapping`" msgstr ":class:`collections.abc.MutableMapping`" -#: library/stdtypes.rst:5467 +#: library/stdtypes.rst:5606 msgid ":class:`collections.abc.Sequence`" msgstr ":class:`collections.abc.Sequence`" -#: library/stdtypes.rst:5468 +#: library/stdtypes.rst:5607 msgid ":class:`collections.abc.MutableSequence`" msgstr ":class:`collections.abc.MutableSequence`" -#: library/stdtypes.rst:5469 +#: library/stdtypes.rst:5608 +msgid ":class:`collections.abc.ByteString`" +msgstr ":class:`collections.abc.ByteString`" + +#: library/stdtypes.rst:5609 msgid ":class:`collections.abc.MappingView`" msgstr ":class:`collections.abc.MappingView`" -#: library/stdtypes.rst:5470 +#: library/stdtypes.rst:5610 msgid ":class:`collections.abc.KeysView`" msgstr ":class:`collections.abc.KeysView`" -#: library/stdtypes.rst:5471 +#: library/stdtypes.rst:5611 msgid ":class:`collections.abc.ItemsView`" msgstr ":class:`collections.abc.ItemsView`" -#: library/stdtypes.rst:5472 +#: library/stdtypes.rst:5612 msgid ":class:`collections.abc.ValuesView`" msgstr ":class:`collections.abc.ValuesView`" -#: library/stdtypes.rst:5473 +#: library/stdtypes.rst:5613 msgid ":class:`contextlib.AbstractContextManager`" msgstr ":class:`contextlib.AbstractContextManager`" -#: library/stdtypes.rst:5474 +#: library/stdtypes.rst:5614 msgid ":class:`contextlib.AbstractAsyncContextManager`" msgstr ":class:`contextlib.AbstractAsyncContextManager`" -#: library/stdtypes.rst:5475 +#: library/stdtypes.rst:5615 msgid ":class:`dataclasses.Field`" msgstr ":class:`dataclasses.Field`" -#: library/stdtypes.rst:5476 +#: library/stdtypes.rst:5616 msgid ":class:`functools.cached_property`" msgstr ":class:`functools.cached_property`" -#: library/stdtypes.rst:5477 +#: library/stdtypes.rst:5617 msgid ":class:`functools.partialmethod`" msgstr ":class:`functools.partialmethod`" -#: library/stdtypes.rst:5478 +#: library/stdtypes.rst:5618 msgid ":class:`os.PathLike`" msgstr ":class:`os.PathLike`" -#: library/stdtypes.rst:5479 +#: library/stdtypes.rst:5619 msgid ":class:`queue.LifoQueue`" msgstr ":class:`queue.LifoQueue`" -#: library/stdtypes.rst:5480 +#: library/stdtypes.rst:5620 msgid ":class:`queue.Queue`" msgstr ":class:`queue.Queue`" -#: library/stdtypes.rst:5481 +#: library/stdtypes.rst:5621 msgid ":class:`queue.PriorityQueue`" msgstr ":class:`queue.PriorityQueue`" -#: library/stdtypes.rst:5482 +#: library/stdtypes.rst:5622 msgid ":class:`queue.SimpleQueue`" msgstr ":class:`queue.SimpleQueue`" -#: library/stdtypes.rst:5483 +#: library/stdtypes.rst:5623 msgid ":ref:`re.Pattern `" msgstr ":ref:`re.Pattern `" -#: library/stdtypes.rst:5484 +#: library/stdtypes.rst:5624 msgid ":ref:`re.Match `" msgstr ":ref:`re.Match `" -#: library/stdtypes.rst:5485 +#: library/stdtypes.rst:5625 msgid ":class:`shelve.BsdDbShelf`" msgstr ":class:`shelve.BsdDbShelf`" -#: library/stdtypes.rst:5486 +#: library/stdtypes.rst:5626 msgid ":class:`shelve.DbfilenameShelf`" msgstr ":class:`shelve.DbfilenameShelf`" -#: library/stdtypes.rst:5487 +#: library/stdtypes.rst:5627 msgid ":class:`shelve.Shelf`" msgstr ":class:`shelve.Shelf`" -#: library/stdtypes.rst:5488 +#: library/stdtypes.rst:5628 msgid ":class:`types.MappingProxyType`" msgstr ":class:`types.MappingProxyType`" -#: library/stdtypes.rst:5489 +#: library/stdtypes.rst:5629 msgid ":class:`weakref.WeakKeyDictionary`" msgstr ":class:`weakref.WeakKeyDictionary`" -#: library/stdtypes.rst:5490 +#: library/stdtypes.rst:5630 msgid ":class:`weakref.WeakMethod`" msgstr ":class:`weakref.WeakMethod`" -#: library/stdtypes.rst:5491 +#: library/stdtypes.rst:5631 msgid ":class:`weakref.WeakSet`" msgstr ":class:`weakref.WeakSet`" -#: library/stdtypes.rst:5492 +#: library/stdtypes.rst:5632 msgid ":class:`weakref.WeakValueDictionary`" msgstr ":class:`weakref.WeakValueDictionary`" -#: library/stdtypes.rst:5497 +#: library/stdtypes.rst:5637 msgid "Special Attributes of ``GenericAlias`` objects" msgstr "Ειδικά Χαρακτηριστικά αντικειμένων ``GenericAlias``" -#: library/stdtypes.rst:5499 +#: library/stdtypes.rst:5639 msgid "All parameterized generics implement special read-only attributes." msgstr "" "Όλα τα παραμετροποιημένα generics εφαρμόζουν ειδικά χαρακτηριστικά μόνο για " "ανάγνωση." -#: library/stdtypes.rst:5503 +#: library/stdtypes.rst:5643 msgid "This attribute points at the non-parameterized generic class::" msgstr "Αυτό το χαρακτηριστικό δείχνει στη μη παραμετροποιημένη γενική κλάση::" -#: library/stdtypes.rst:5505 +#: library/stdtypes.rst:5645 msgid "" ">>> list[int].__origin__\n" "" @@ -10095,7 +10246,7 @@ msgstr "" ">>> list[int].__origin__\n" "" -#: library/stdtypes.rst:5511 +#: library/stdtypes.rst:5651 msgid "" "This attribute is a :class:`tuple` (possibly of length 1) of generic types " "passed to the original :meth:`~object.__class_getitem__` of the generic " @@ -10105,7 +10256,7 @@ msgstr "" "τύπων που μεταβιβάστηκαν στο αρχικό :meth:`~object.__class_getitem__` της " "generic κλάσης::" -#: library/stdtypes.rst:5515 +#: library/stdtypes.rst:5655 msgid "" ">>> dict[str, list[int]].__args__\n" "(, list[int])" @@ -10113,7 +10264,7 @@ msgstr "" ">>> dict[str, list[int]].__args__\n" "(, list[int])" -#: library/stdtypes.rst:5521 +#: library/stdtypes.rst:5661 msgid "" "This attribute is a lazily computed tuple (possibly empty) of unique type " "variables found in ``__args__``::" @@ -10121,7 +10272,7 @@ msgstr "" "Αυτό το χαρακτηριστικό είναι μία νωχελικά υπολογισμένη πλειάδα (tuple) " "(πιθανώς κενή) μεταβλητών μοναδικού τύπου που βρίσκονται στο ``__args__``::" -#: library/stdtypes.rst:5524 +#: library/stdtypes.rst:5664 msgid "" ">>> from typing import TypeVar\n" "\n" @@ -10135,18 +10286,19 @@ msgstr "" ">>> list[T].__parameters__\n" "(~T,)" -#: library/stdtypes.rst:5532 +#: library/stdtypes.rst:5672 msgid "" "A ``GenericAlias`` object with :class:`typing.ParamSpec` parameters may not " -"have correct ``__parameters__`` after substitution because :class:`typing." -"ParamSpec` is intended primarily for static type checking." +"have correct ``__parameters__`` after substitution " +"because :class:`typing.ParamSpec` is intended primarily for static type " +"checking." msgstr "" "Ένα αντικείμενο ``GenericAlias`` με παραμέτρους :class:`typing.ParamSpec` " "ενδέχεται να μην έχει σωστές ``__parameters__`` μετά την αντικατάσταση " "επειδή το :class:`typing.ParamSpec` προορίζεται κυρίως για έλεγχο στατικού " "τύπου." -#: library/stdtypes.rst:5539 +#: library/stdtypes.rst:5679 msgid "" "A boolean that is true if the alias has been unpacked using the ``*`` " "operator (see :data:`~typing.TypeVarTuple`)." @@ -10154,37 +10306,37 @@ msgstr "" "Ένα boolean που ισχύει αν το alias έχει αποσυμπιεστεί χρησιμοποιώντας τον " "τελεστή ``*`` (δείτε το :data:`~typing.TypeVarTuple`)." -#: library/stdtypes.rst:5547 +#: library/stdtypes.rst:5687 msgid ":pep:`484` - Type Hints" msgstr ":pep:`484` - Type Hints" -#: library/stdtypes.rst:5548 +#: library/stdtypes.rst:5688 msgid "Introducing Python's framework for type annotations." msgstr "Παρουσιάζοντας το framework της Python για τύπους annotations." -#: library/stdtypes.rst:5550 +#: library/stdtypes.rst:5690 msgid ":pep:`585` - Type Hinting Generics In Standard Collections" msgstr ":pep:`585` - Τύπος Generics Συμβουλών στις Τυπικές Συλλογές" -#: library/stdtypes.rst:5551 +#: library/stdtypes.rst:5691 msgid "" "Introducing the ability to natively parameterize standard-library classes, " -"provided they implement the special class method :meth:`~object." -"__class_getitem__`." +"provided they implement the special class " +"method :meth:`~object.__class_getitem__`." msgstr "" "Εισαγωγή της δυνατότητας εγγενούς παραμετροποίησης κλάσεων τυπικής " -"βιβλιοθήκης, υπό την προϋπόθεση ότι εφαρμόζουν τη μέθοδο ειδικής κλάσης :" -"meth:`~object.__class_getitem__`." +"βιβλιοθήκης, υπό την προϋπόθεση ότι εφαρμόζουν τη μέθοδο ειδικής " +"κλάσης :meth:`~object.__class_getitem__`." -#: library/stdtypes.rst:5555 +#: library/stdtypes.rst:5695 msgid "" -":ref:`Generics`, :ref:`user-defined generics ` and :" -"class:`typing.Generic`" +":ref:`Generics`, :ref:`user-defined generics ` " +"and :class:`typing.Generic`" msgstr "" "Τα :ref:`Generics`, :ref:`user-defined generics ` " "και :class:`typing.Generic`" -#: library/stdtypes.rst:5556 +#: library/stdtypes.rst:5696 msgid "" "Documentation on how to implement generic classes that can be parameterized " "at runtime and understood by static type-checkers." @@ -10193,17 +10345,17 @@ msgstr "" "παραμετροποιηθούν κατά το χρόνο εκτέλεσης και να κατανοηθούν από στατικούς " "ελεγκτές τύπων." -#: library/stdtypes.rst:5565 +#: library/stdtypes.rst:5705 msgid "Union Type" msgstr "Τύπος Ένωσης" -#: library/stdtypes.rst:5571 +#: library/stdtypes.rst:5711 msgid "" "A union object holds the value of the ``|`` (bitwise or) operation on " "multiple :ref:`type objects `. These types are intended " "primarily for :term:`type annotations `. The union type " -"expression enables cleaner type hinting syntax compared to subscripting :" -"class:`typing.Union`." +"expression enables cleaner type hinting syntax compared to " +"subscripting :class:`typing.Union`." msgstr "" "Ένα αντικείμενο ένωσης διατηρεί την τιμή της λειτουργίας ``|`` (bitwise or) " "σε πολλαπλά αντικείμενα :ref:`type objects `. Αυτοί οι " @@ -10211,19 +10363,19 @@ msgstr "" "έκφραση τύπου ένωσης επιτρέπει την καθαρότερη σύνταξη υποδείξεων σε σύγκριση " "με την εγγραφή :class:`typing.Union`." -#: library/stdtypes.rst:5578 +#: library/stdtypes.rst:5718 msgid "" "Defines a union object which holds types *X*, *Y*, and so forth. ``X | Y`` " "means either X or Y. It is equivalent to ``typing.Union[X, Y]``. For " -"example, the following function expects an argument of type :class:`int` or :" -"class:`float`::" +"example, the following function expects an argument of type :class:`int` " +"or :class:`float`::" msgstr "" "Ορίζει ένα αντικείμενο ένωσης που περιέχει τύπους *X*, *Y*, και ούτω " "καθεξής. Το ``X | Y`` σημαίνει είτε X είτε Y. Είναι ισοδύναμο με το " "``typing.Union[X, Y]``. Για παράδειγμα, η ακόλουθη συνάρτηση αναμένει ένα " "όρισμα τύπου :class:`int` or :class:`float`::" -#: library/stdtypes.rst:5583 +#: library/stdtypes.rst:5723 msgid "" "def square(number: int | float) -> int | float:\n" " return number ** 2" @@ -10231,7 +10383,7 @@ msgstr "" "def square(number: int | float) -> int | float:\n" " return number ** 2" -#: library/stdtypes.rst:5588 +#: library/stdtypes.rst:5728 msgid "" "The ``|`` operand cannot be used at runtime to define unions where one or " "more members is a forward reference. For example, ``int | \"Foo\"``, where " @@ -10246,42 +10398,42 @@ msgstr "" "εκτέλεσης. Για ενώσεις που περιλαμβάνουν μπροστινές αναφορές, παρουσιάζει " "ολόκληρη την έκφραση ως συμβολοσειρά, π.χ. ``\"int | Foo\"``." -#: library/stdtypes.rst:5596 +#: library/stdtypes.rst:5736 msgid "" "Union objects can be tested for equality with other union objects. Details:" msgstr "" "Τα αντικείμενα ένωσης μπορούν να ελεγχθούν για ισότητα με άλλα αντικείμενα " "ένωσης. Λεπτομέρειες:" -#: library/stdtypes.rst:5598 +#: library/stdtypes.rst:5738 msgid "Unions of unions are flattened::" msgstr "Οι ενώσεις των ενώσεων ισοπεδώνονται::" -#: library/stdtypes.rst:5600 +#: library/stdtypes.rst:5740 msgid "(int | str) | float == int | str | float" msgstr "(int | str) | float == int | str | float" -#: library/stdtypes.rst:5602 +#: library/stdtypes.rst:5742 msgid "Redundant types are removed::" msgstr "Οι περιττοί τύποι καταργούνται::" -#: library/stdtypes.rst:5604 +#: library/stdtypes.rst:5744 msgid "int | str | int == int | str" msgstr "int | str | int == int | str" -#: library/stdtypes.rst:5606 +#: library/stdtypes.rst:5746 msgid "When comparing unions, the order is ignored::" msgstr "Κατά τη σύγκριση των ενώσεων, η σειρά αγνοείται::" -#: library/stdtypes.rst:5608 +#: library/stdtypes.rst:5748 msgid "int | str == str | int" msgstr "int | str == str | int" -#: library/stdtypes.rst:5610 +#: library/stdtypes.rst:5750 msgid "It creates instances of :class:`typing.Union`::" msgstr "Δημιουργεί στιγμιότυπα της :class:`typing.Union`::" -#: library/stdtypes.rst:5612 +#: library/stdtypes.rst:5752 msgid "" "int | str == typing.Union[int, str]\n" "type(int | str) is typing.Union" @@ -10289,15 +10441,15 @@ msgstr "" "int | str == typing.Union[int, str]\n" "type(int | str) is typing.Union" -#: library/stdtypes.rst:5615 +#: library/stdtypes.rst:5755 msgid "Optional types can be spelled as a union with ``None``::" msgstr "Οι προαιρετικοί τύποι μπορούν να γραφτούν ως ένωση με ``None``::" -#: library/stdtypes.rst:5617 +#: library/stdtypes.rst:5757 msgid "str | None == typing.Optional[str]" msgstr "str | None == typing.Optional[str]" -#: library/stdtypes.rst:5622 +#: library/stdtypes.rst:5762 msgid "" "Calls to :func:`isinstance` and :func:`issubclass` are also supported with a " "union object::" @@ -10305,7 +10457,7 @@ msgstr "" "Οι κλήσεις σε :func:`isinstance` και :func:`issubclass` υποστηρίζονται " "επίσης με ένα αντικείμενο ένωσης::" -#: library/stdtypes.rst:5625 +#: library/stdtypes.rst:5765 msgid "" ">>> isinstance(\"\", int | str)\n" "True" @@ -10313,7 +10465,7 @@ msgstr "" ">>> isinstance(\"\", int | str)\n" "True" -#: library/stdtypes.rst:5628 +#: library/stdtypes.rst:5768 msgid "" "However, :ref:`parameterized generics ` in union objects " "cannot be checked::" @@ -10321,7 +10473,7 @@ msgstr "" "Ωστόσο, το :ref:`parameterized generics ` σε αντικείμενα " "ένωσης δεν μπορούν να ελεγχθούν::" -#: library/stdtypes.rst:5631 +#: library/stdtypes.rst:5771 msgid "" ">>> isinstance(1, int | list[int]) # short-circuit evaluation\n" "True\n" @@ -10337,16 +10489,16 @@ msgstr "" " ...\n" "TypeError: isinstance() argument 2 cannot be a parameterized generic" -#: library/stdtypes.rst:5638 +#: library/stdtypes.rst:5778 msgid "" -"The user-exposed type for the union object can be accessed from :class:" -"`typing.Union` and used for :func:`isinstance` checks::" +"The user-exposed type for the union object can be accessed " +"from :class:`typing.Union` and used for :func:`isinstance` checks::" msgstr "" "Ο τύπος που εκτίθεται από τον χρήστη για το αντικείμενο ένωσης μπορεί να " "προσπελαστεί από το :data:`types.UnionType` και να χρησιμοποιηθεί για " -"ελέγχους :func:`isinstance`." +"ελέγχους :func:`isinstance`::" -#: library/stdtypes.rst:5641 +#: library/stdtypes.rst:5781 msgid "" ">>> import typing\n" ">>> isinstance(int | str, typing.Union)\n" @@ -10364,7 +10516,7 @@ msgstr "" " File \"\", line 1, in \n" "TypeError: cannot create 'typing.Union' instances" -#: library/stdtypes.rst:5650 +#: library/stdtypes.rst:5790 msgid "" "The :meth:`!__or__` method for type objects was added to support the syntax " "``X | Y``. If a metaclass implements :meth:`!__or__`, the Union may " @@ -10374,7 +10526,7 @@ msgstr "" "υποστηρίξει τη σύνταξη ``X | Y``. Εάν μια μετακλάση υλοποιεί :meth:`!" "__or__`, η Ένωση μπορεί να την παρακάμψει:" -#: library/stdtypes.rst:5654 +#: library/stdtypes.rst:5794 msgid "" ">>> class M(type):\n" "... def __or__(self, other):\n" @@ -10400,26 +10552,26 @@ msgstr "" ">>> int | C\n" "int | C" -#: library/stdtypes.rst:5670 +#: library/stdtypes.rst:5810 msgid ":pep:`604` -- PEP proposing the ``X | Y`` syntax and the Union type." msgstr "" ":pep:`604` -- Το PEP προτείνει τη σύνταξη ``X | Y`` και τον τύπο Ένωση." -#: library/stdtypes.rst:5676 +#: library/stdtypes.rst:5816 msgid "" "Union objects are now instances of :class:`typing.Union`. Previously, they " -"were instances of :class:`types.UnionType`, which remains an alias for :" -"class:`typing.Union`." +"were instances of :class:`types.UnionType`, which remains an alias " +"for :class:`typing.Union`." msgstr "" "Τα αντικείμενα Union είναι πλέον στιγμιότυπα του :class:`typing.Union`. " "Προηγουμένως, ήταν στιγμιότυπα της :class:`types.UnionType`, το οποίο " "παραμείνει ένα ψευδώνυμο για τη :class:`typing.Union`." -#: library/stdtypes.rst:5683 +#: library/stdtypes.rst:5823 msgid "Other Built-in Types" msgstr "Άλλοι Ενσωματωμένοι (built-in) Τύποι" -#: library/stdtypes.rst:5685 +#: library/stdtypes.rst:5825 msgid "" "The interpreter supports several other kinds of objects. Most of these " "support only one or two operations." @@ -10427,70 +10579,70 @@ msgstr "" "Ο διερμηνέας υποστηρίζει πολλά άλλα είδη αντικειμένων. Τα περισσότερα από " "αυτά υποστηρίζουν μόνο μία ή δύο λειτουργίες." -#: library/stdtypes.rst:5692 +#: library/stdtypes.rst:5832 msgid "Modules" msgstr "Modules" -#: library/stdtypes.rst:5694 +#: library/stdtypes.rst:5834 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 " +"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 "" -"Η μόνη ειδική λειτουργία σε ένα module είναι η πρόσβαση χαρακτηριστικών: ``m." -"name``, όπου το *m* είναι ένα module και το *name* έχει πρόσβαση σε ένα " +"Η μόνη ειδική λειτουργία σε ένα module είναι η πρόσβαση χαρακτηριστικών: " +"``m.name``, όπου το *m* είναι ένα module και το *name* έχει πρόσβαση σε ένα " "όνομα που ορίζεται στον πίνακα συμβόλων του *m*. Τα χαρακτηριστικά του " "module μπορούν να εκχωρηθούν. (Σημειώστε ότι η δήλωση :keyword:`import` δεν " "είναι, αυστηρά, μια λειτουργία σε ένα αντικείμενο module· το ``import foo`` " "δεν απαιτεί να υπάρχει ένα αντικείμενο module με το όνομα *foo* αλλά απαιτεί " "έναν (εξωτερικό) *definition* για ένα module που ονομάζεται *foo* κάπου.)" -#: library/stdtypes.rst:5701 +#: library/stdtypes.rst:5841 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." +"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 "" "Ένα ειδικό χαρακτηριστικό κάθε module είναι :attr:`~object.__dict__`. Αυτό " "είναι το λεξικό που περιέχει τον πίνακα συμβόλων της ενότητας. Η τροποποίηση " "αυτού του λεξικού θα αλλάξει στην πραγματικότητα τον πίνακα συμβόλων του " -"module, αλλά η απευθείας εκχώρηση στο χαρακτηριστικό :attr:`~object." -"__dict__` δεν είναι δυνατή (μπορείτε να γράψετε ``m.__dict__['a'] = 1``, που " -"ορίζει το ``m.a`` να είναι ``1``, αλλά δεν μπορείτε να γράψετε ``m.__dict__ " -"= {}``). Δεν συνίσταται η απευθείας τροποποίηση του :attr:`~object." -"__dict__`." +"module, αλλά η απευθείας εκχώρηση στο " +"χαρακτηριστικό :attr:`~object.__dict__` δεν είναι δυνατή (μπορείτε να " +"γράψετε ``m.__dict__['a'] = 1``, που ορίζει το ``m.a`` να είναι ``1``, αλλά " +"δεν μπορείτε να γράψετε ``m.__dict__ = {}``). Δεν συνίσταται η απευθείας " +"τροποποίηση του :attr:`~object.__dict__`." -#: library/stdtypes.rst:5709 +#: library/stdtypes.rst:5849 msgid "" -"Modules built into the interpreter are written like this: ````. If loaded from a file, they are written as ````." +"Modules built into the interpreter are written like this: ````. If loaded from a file, they are written as ````." msgstr "" "Τα modules που είναι ενσωματωμένες στον διερμηνέα γράφονται ως εξής: " "````. Εάν φορτωθούν από ένα αρχείο, γράφονται ως " "````." -#: library/stdtypes.rst:5717 +#: library/stdtypes.rst:5857 msgid "Classes and Class Instances" msgstr "Κλάσεις και Στιγμιότυπα Κλάσης" -#: library/stdtypes.rst:5719 +#: library/stdtypes.rst:5859 msgid "See :ref:`objects` and :ref:`class` for these." msgstr "Δείτε :ref:`objects` και :ref:`class` για αυτά." -#: library/stdtypes.rst:5725 +#: library/stdtypes.rst:5865 msgid "Functions" msgstr "Συναρτήσεις" -#: library/stdtypes.rst:5727 +#: library/stdtypes.rst:5867 msgid "" "Function objects are created by function definitions. The only operation on " "a function object is to call it: ``func(argument-list)``." @@ -10499,7 +10651,7 @@ msgstr "" "λειτουργία σε ένα αντικείμενο συνάρτησης είναι να το ονομάσουμε: " "``func(argument-list)``." -#: library/stdtypes.rst:5730 +#: library/stdtypes.rst:5870 msgid "" "There are really two flavors of function objects: built-in functions and " "user-defined functions. Both support the same operation (to call the " @@ -10511,38 +10663,38 @@ msgstr "" "υποστηρίζουν την ίδια λειτουργία (για να καλέσετε τη συνάρτηση), αλλά η " "υλοποίηση είναι διαφορετική, εξ ου και οι διαφορετικοί τύποι αντικειμένων." -#: library/stdtypes.rst:5734 +#: library/stdtypes.rst:5874 msgid "See :ref:`function` for more information." msgstr "Δείτε το :ref:`function` για περισσότερες πληροφορίες." -#: library/stdtypes.rst:5740 +#: library/stdtypes.rst:5880 msgid "Methods" msgstr "Μέθοδοι" -#: library/stdtypes.rst:5744 +#: library/stdtypes.rst:5884 msgid "" "Methods are functions that are called using the attribute notation. There " -"are two flavors: :ref:`built-in methods ` (such as :meth:" -"`append` on lists) and :ref:`class instance method `. " -"Built-in methods are described with the types that support them." +"are two flavors: :ref:`built-in methods ` (such " +"as :meth:`~list.append` on lists) and :ref:`class instance method `. Built-in methods are described with the types that support them." msgstr "" "Οι μέθοδοι είναι συναρτήσεις που καλούνται χρησιμοποιώντας το notation " "χαρακτηριστικών. Υπάρχουν δύο είδη: :ref:`built-in methods ` (όπως η :meth:`append` στις λίστες) και :ref:`class instance " +"methods>` (όπως η :meth:`~list.append` στις λίστες) και :ref:`class instance " "method `. Οι ενσωματωμένες μέθοδοι περιγράφονται με τους " "τύπους που τις υποστηρίζουν." -#: library/stdtypes.rst:5749 +#: library/stdtypes.rst:5890 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 :ref:" -"`instance method `) object. When called, it will add the " -"``self`` argument to the argument list. Bound methods have two special read-" -"only attributes: :attr:`m.__self__ ` is the object on which " -"the method operates, and :attr:`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)``." +"instance, you get a special object: a :dfn:`bound method` (also " +"called :ref:`instance method `) object. When called, it " +"will add the ``self`` argument to the argument list. Bound methods have two " +"special read-only attributes: :attr:`m.__self__ ` is the " +"object on which the method operates, and :attr:`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 "" "Εάν αποκτήσετε πρόσβαση σε μια μέθοδο (μια συνάρτηση που ορίζεται μια " "namespace κλάση) μέσω ενός στιγμιοτύπου, λαμβάνετε ένα ειδικό αντικείμενο: " @@ -10552,10 +10704,10 @@ msgstr "" "μόνο για ανάγνωση: :attr:`m.__self__ ` είναι το αντικείμενο " "στο οποίο λειτουργεί η μέθοδος και :attr:`m.__func__ ` " "είναι η συνάρτηση που υλοποιεί την μέθοδο. Η κλήση του ``m(arg-1, " -"arg-2, ..., arg-n)`` είναι απολύτως ισοδύναμη με την κλήση του ``m." -"__func__(m.__self__, arg-1, arg-2, ..., arg-n)``." +"arg-2, ..., arg-n)`` είναι απολύτως ισοδύναμη με την κλήση του " +"``m.__func__(m.__self__, arg-1, arg-2, ..., arg-n)``." -#: library/stdtypes.rst:5760 +#: library/stdtypes.rst:5901 msgid "" "Like :ref:`function objects `, bound method objects " "support getting arbitrary attributes. However, since method attributes are " @@ -10568,14 +10720,14 @@ msgstr "" "Όπως τα :ref:`function objects `, τα αντικείμενα " "δεσμευμένης μεθόδου υποστηρίζουν τη λήψη αυθαίρετων χαρακτηριστικών. Ωστόσο, " "δεδομένου ότι τα χαρακτηριστικά της μεθόδου αποθηκεύονται στην " -"πραγματικότητα στο υποκείμενο αντικείμενο συνάρτησης (:attr:`method." -"__func__`), ο ορισμός χαρακτηριστικών μεθόδου σε δεσμευμένες μεθόδους δεν " -"επιτρέπεται. Η προσπάθεια ορισμού ενός χαρακτηριστικού σε μια μέθοδο έχει " -"ως αποτέλεσμα να γίνει raise η :exc:`AttributeError`. Για να ορίσετε ένα " -"χαρακτηριστικό μεθόδου πρέπει να το ορίσετε ρητά στο υποκείμενο αντικείμενο " -"συνάρτησης:" +"πραγματικότητα στο υποκείμενο αντικείμενο συνάρτησης " +"(:attr:`method.__func__`), ο ορισμός χαρακτηριστικών μεθόδου σε δεσμευμένες " +"μεθόδους δεν επιτρέπεται. Η προσπάθεια ορισμού ενός χαρακτηριστικού σε μια " +"μέθοδο έχει ως αποτέλεσμα να γίνει raise η :exc:`AttributeError`. Για να " +"ορίσετε ένα χαρακτηριστικό μεθόδου πρέπει να το ορίσετε ρητά στο υποκείμενο " +"αντικείμενο συνάρτησης:" -#: library/stdtypes.rst:5768 +#: library/stdtypes.rst:5909 msgid "" ">>> class C:\n" "... def method(self):\n" @@ -10603,33 +10755,33 @@ msgstr "" ">>> c.method.whoami\n" "'my name is method'" -#: library/stdtypes.rst:5783 +#: library/stdtypes.rst:5924 msgid "See :ref:`instance-methods` for more information." msgstr "Δείτε το :ref:`instance-methods` για περισσότερες πληροφορίες." -#: library/stdtypes.rst:5791 +#: library/stdtypes.rst:5932 msgid "Code Objects" msgstr "Αντικείμενα Κώδικα" -#: library/stdtypes.rst:5797 +#: library/stdtypes.rst:5938 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:" -"`~function.__code__` attribute. See also the :mod:`code` module." +"function and can be extracted from function objects through " +"their :attr:`~function.__code__` attribute. See also the :mod:`code` module." msgstr "" "Τα αντικείμενα κώδικα χρησιμοποιούνται από την υλοποίηση για να " "αναπαραστήσουν τον \"ψευδο-μεταγλωττισμένο\" εκτελέσιμο κώδικα Python, όπως " "ένα σώμα συνάρτησης. Διαφέρουν από τα αντικείμενα συνάρτησης επειδή δεν " "περιέχουν αναφορά στο παγκόσμιο (global) περιβάλλον εκτέλεσης τους. Τα " -"αντικείμενα κώδικα επιστρέφονται από την ενσωματωμένη συνάρτηση :func:" -"`compile` και μπορεί να εξαχθεί από τα αντικείμενα συνάρτησης μέσω του " -"χαρακτηριστικού τους :attr:`~function.__code__`. Δείτε επίσης το module :mod:" -"`code`." +"αντικείμενα κώδικα επιστρέφονται από την ενσωματωμένη " +"συνάρτηση :func:`compile` και μπορεί να εξαχθεί από τα αντικείμενα " +"συνάρτησης μέσω του χαρακτηριστικού τους :attr:`~function.__code__`. Δείτε " +"επίσης το module :mod:`code`." -#: library/stdtypes.rst:5804 +#: library/stdtypes.rst:5945 msgid "" "Accessing :attr:`~function.__code__` raises an :ref:`auditing event " "` ``object.__getattr__`` with arguments ``obj`` and " @@ -10639,7 +10791,7 @@ msgstr "" "event ` ``object.__getattr__`` με ορίσματα ``obj`` και " "``\"__code__\"``." -#: library/stdtypes.rst:5811 +#: library/stdtypes.rst:5952 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." @@ -10648,15 +10800,15 @@ msgstr "" "(αντί για πηγαία συμβολοσειρά) στις ενσωματωμένες συναρτήσεις :func:`exec` " "ή :func:`eval`." -#: library/stdtypes.rst:5814 +#: library/stdtypes.rst:5955 msgid "See :ref:`types` for more information." msgstr "Δείτε :ref:`types` για περισσότερες πληροφορίες." -#: library/stdtypes.rst:5820 +#: library/stdtypes.rst:5961 msgid "Type Objects" msgstr "Τύποι Αντικειμένων" -#: library/stdtypes.rst:5826 +#: library/stdtypes.rst:5967 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 " @@ -10664,20 +10816,20 @@ msgid "" "standard built-in types." msgstr "" "Τα αντικείμενα τύπου αντιπροσωπεύουν τους διάφορους τύπους αντικειμένων. Ο " -"τύπος ενός αντικειμένου προσεγγίζεται από την ενσωματωμένη συνάρτηση :func:" -"`type`. Δεν υπάρχουν ειδικές λειτουργίες στους τύπους. Το τυπικό " -"(standard) module :mod:`types` ορίζει ονόματα για όλους τους τυπικούς " +"τύπος ενός αντικειμένου προσεγγίζεται από την ενσωματωμένη " +"συνάρτηση :func:`type`. Δεν υπάρχουν ειδικές λειτουργίες στους τύπους. Το " +"τυπικό (standard) module :mod:`types` ορίζει ονόματα για όλους τους τυπικούς " "ενσωματωμένους τύπους." -#: library/stdtypes.rst:5831 +#: library/stdtypes.rst:5972 msgid "Types are written like this: ````." msgstr "Οι τύποι γράφονται ως εξής: ````." -#: library/stdtypes.rst:5837 +#: library/stdtypes.rst:5978 msgid "The Null Object" msgstr "Το Αντικείμενο Null" -#: library/stdtypes.rst:5839 +#: library/stdtypes.rst:5980 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 " @@ -10688,41 +10840,105 @@ msgstr "" "μηδενικό αντικείμενο, που ονομάζεται ``None`` (ένα ενσωματωμένο όνομα). Το " "``type(None)()`` παράγει το ίδιο singleton." -#: library/stdtypes.rst:5843 +#: library/stdtypes.rst:5984 msgid "It is written as ``None``." msgstr "Γράφεται ως ``None``." -#: library/stdtypes.rst:5850 +#: library/stdtypes.rst:5991 msgid "The Ellipsis Object" msgstr "Το αντικείμενο Ellipsis" -#: library/stdtypes.rst:5852 +#: library/stdtypes.rst:5993 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." +"This object is commonly used to indicate that something is omitted. 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 "" -"Αυτό το αντικείμενο χρησιμοποιείται συνήθως με λειτουργία τμηματοποίησης " -"(δείτε :ref:`slicings`). Δεν υποστηρίζει ειδικές λειτουργίες. Υπάρχει " -"ακριβώς ένα αντικείμενο έλλειψης, που ονομάζεται :const:`Ellipsis` (ένα " -"ενσωματωμένο όνομα). Το ``type(Ellipsis)()`` παράγει το :const:`Ellipsis` " -"singleton." +"Αυτό το αντικείμενο χρησιμοποείται συχνά για να δηλωθεί ότι κάτι " +"παραλείπεται. Δεν υποστηρίζει καμία ειδική λειτουργία. Υπάρχει ακριβώς ένα " +"αντικείμενο ellipsis, με το όνομα :const:`Ellipsis` (ένα ενσωματωμένο " +"όνομα). Το ``type(Ellipsis)()`` παράγει τοο μοναδικό " +"αντικείμενο :const:`Ellipsis`." -#: library/stdtypes.rst:5857 +#: library/stdtypes.rst:5998 msgid "It is written as ``Ellipsis`` or ``...``." msgstr "Γράφεται ως ``Ellipsis`` ή ``...``." -#: library/stdtypes.rst:5863 +#: library/stdtypes.rst:6000 +msgid "" +"In typical use, ``...`` as the ``Ellipsis`` object appears in a few " +"different places, for instance:" +msgstr "" +"Στην τυπική χρήση, το ``...`` ως αντικείμενο ``Ellipsis`` εμφανίζεται σε " +"μερικές διαφορετικές θέσεις, για παράδειγμα:" + +#: library/stdtypes.rst:6003 +msgid "" +"In type annotations, such as :ref:`callable arguments ` or :ref:`tuple elements `." +msgstr "" +"Σε υποδείξεις τύπου, όπως :ref:`callable arguments ` " +"ή :ref:`tuple elements `." + +#: library/stdtypes.rst:6006 +msgid "" +"As the body of a function instead of a :ref:`pass statement `." +msgstr "" +"Ως το σώμα μιας συνάρτησης αντί για μια :ref:`pass statement `." + +#: library/stdtypes.rst:6008 +msgid "" +"In third-party libraries, such as `Numpy's slicing and striding `_." +msgstr "" +"Σε βιβλιοθήκες τρίτων, όπως το `Numpy's slicing and striding `_." + +#: library/stdtypes.rst:6011 +msgid "" +"Python also uses three dots in ways that are not ``Ellipsis`` objects, for " +"instance:" +msgstr "" +"Η Python χρησιμοποιεί επίσης τρεις τελείες με τρόπους που δεν είναι " +"αντικείμενα ``Ellipsis``, για παράδειγμα:" + +#: library/stdtypes.rst:6013 +msgid "" +"Doctest's :const:`ELLIPSIS `, as a pattern for missing " +"content." +msgstr "" +"Το :const:`ELLIPSIS ` του doctest, ως ένα μοτίβο για " +"ελλιπές περιεχόμενο." + +#: library/stdtypes.rst:6015 +msgid "" +"The default Python prompt of the :term:`interactive` shell when partial " +"input is incomplete." +msgstr "" +"Το προεπιλεγμένο προτρεπτικό της Python στο :term:`interactive` κέλυφος όταν " +"η μερική είσοδος είναι ανολοκλήρωτη." + +#: library/stdtypes.rst:6017 +msgid "" +"Lastly, the Python documentation often uses three dots in conventional " +"English usage to mean omitted content, even in code examples that also use " +"them as the ``Ellipsis``." +msgstr "" +"Τέλος, η τεκμηρίωση της Python χρησιμοποιεί συχνά τρεις τελείες στην " +"παραδοσιακή αγγλική χρήση για να δηλώσει παραλειπόμενο περιεχόμενο, ακόμα " +"και σε παραδείγματα κώδικα που τις χρησιμοποιούν και ως ``Ellipsis``." + +#: library/stdtypes.rst:6025 msgid "The NotImplemented Object" msgstr "Το NotImplemented Αντικείμενο" -#: library/stdtypes.rst:5865 +#: library/stdtypes.rst:6027 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 :data:`NotImplemented` object. :code:" -"`type(NotImplemented)()` produces the singleton instance." +"more information. There is exactly one :data:`NotImplemented` " +"object. :code:`type(NotImplemented)()` produces the singleton instance." msgstr "" "Αυτό το αντικείμενο επιστρέφεται από συγκρίσεις και δυαδικές λειτουργίες " "όταν τους ζητείται να λειτουργήσουν σε τύπους που δεν υποστηρίζουν. Δείτε " @@ -10730,15 +10946,15 @@ msgstr "" "αντικείμενο :data:`NotImplemented`. Το :code:`type(NotImplemented)()` " "παράγει το στιγμιότυπο singleton." -#: library/stdtypes.rst:5870 +#: library/stdtypes.rst:6032 msgid "It is written as :code:`NotImplemented`." msgstr "Είναι γραμμένο ως :code:`NotImplemented`." -#: library/stdtypes.rst:5876 +#: library/stdtypes.rst:6038 msgid "Internal Objects" msgstr "Εσωτερικά Αντικείμενα" -#: library/stdtypes.rst:5878 +#: library/stdtypes.rst:6040 msgid "" "See :ref:`types` for this information. It describes :ref:`stack frame " "objects `, :ref:`traceback objects `, and " @@ -10748,28 +10964,28 @@ msgstr "" "objects `, :ref:`traceback objects `, και " "αντικείμενα τμηματοποίησης." -#: library/stdtypes.rst:5886 +#: library/stdtypes.rst:6048 msgid "Special Attributes" msgstr "Ειδικά Χαρακτηριστικά" -#: library/stdtypes.rst:5888 +#: library/stdtypes.rst:6050 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." +"types, where they are relevant. Some of these are not reported by " +"the :func:`dir` built-in function." msgstr "" "Η υλοποίηση προσθέτει μερικά ειδικά χαρακτηριστικά μόνο για ανάγνωση σε " "διάφορους τύπους αντικειμένων, όπου είναι σχετικά. Ορισμένα από αυτά δεν " "αναφέρονται από την ενσωματωμένη συνάρτηση :func:`dir`." -#: library/stdtypes.rst:5895 +#: library/stdtypes.rst:6057 msgid "" "The name of the class, function, method, descriptor, or generator instance." msgstr "" "Το όνομα της κλάσης, της συνάρτησης, της μεθόδου, του descriptor ή του " "στιγμιοτύπου generator." -#: library/stdtypes.rst:5901 +#: library/stdtypes.rst:6063 msgid "" "The :term:`qualified name` of the class, function, method, descriptor, or " "generator instance." @@ -10777,45 +10993,45 @@ msgstr "" "Το :term:`qualified name` της κλάσης, της συνάρτησης, της μεθόδου, του " "descriptor, ή του στιγμιοτύπου generator." -#: library/stdtypes.rst:5909 +#: library/stdtypes.rst:6071 msgid "The name of the module in which a class or function was defined." msgstr "Το όνομα του module στο οποίο ορίστηκε μια κλάση ή μια συνάρτηση." -#: library/stdtypes.rst:5914 +#: library/stdtypes.rst:6076 msgid "" "The documentation string of a class or function, or ``None`` if undefined." msgstr "" "Η συμβολοσειρά τεκμηρίωσης μιας κλάσης ή συνάρτησης ή ``None`` εάν δεν έχει " "οριστεί." -#: library/stdtypes.rst:5919 +#: library/stdtypes.rst:6081 msgid "" -"The :ref:`type parameters ` of generic classes, functions, and :" -"ref:`type aliases `. For classes and functions that are not " -"generic, this will be an empty tuple." +"The :ref:`type parameters ` of generic classes, functions, " +"and :ref:`type aliases `. For classes and functions that are " +"not generic, this will be an empty tuple." msgstr "" "Οι παράμετροι :ref:`type parameters ` των γενικών κλάσεων, " "συναρτήσεων και :ref:`type aliases `. Για κλάσεις και " "συναρτήσεις που δεν είναι γενικές, αυτή θα είναι μια κενή πλειάδα." -#: library/stdtypes.rst:5929 +#: library/stdtypes.rst:6091 msgid "Integer string conversion length limitation" msgstr "Περιορισμός μήκους μετατροπής συμβολοσειράς ακέραιου αριθμού" -#: library/stdtypes.rst:5931 +#: library/stdtypes.rst:6093 msgid "" -"CPython has a global limit for converting between :class:`int` and :class:" -"`str` to mitigate denial of service attacks. This limit *only* applies to " -"decimal or other non-power-of-two number bases. Hexadecimal, octal, and " -"binary conversions are unlimited. The limit can be configured." +"CPython has a global limit for converting between :class:`int` " +"and :class:`str` to mitigate denial of service attacks. This limit *only* " +"applies to decimal or other non-power-of-two number bases. Hexadecimal, " +"octal, and binary conversions are unlimited. The limit can be configured." msgstr "" -"Η CPython έχει ένα παγκόσμιο όριο για τη μετατροπή μεταξύ :class:`int` and :" -"class:`str` για τον μετριασμό των επιθέσεων άρνησης υπηρεσίας. Αυτό το όριο " -"ισχύει *μόνο* για δεκαδικές ή άλλες βάσεις αριθμών που δεν έχουν την δύναμη " -"του δύο. Οι δεξαεξαδικές, οκταδικές, και δυαδικές μετατροπές είναι " +"Η CPython έχει ένα παγκόσμιο όριο για τη μετατροπή μεταξύ :class:`int` " +"and :class:`str` για τον μετριασμό των επιθέσεων άρνησης υπηρεσίας. Αυτό το " +"όριο ισχύει *μόνο* για δεκαδικές ή άλλες βάσεις αριθμών που δεν έχουν την " +"δύναμη του δύο. Οι δεξαεξαδικές, οκταδικές, και δυαδικές μετατροπές είναι " "απεριόριστες. Το όριο μπορεί να διαμορφωθεί." -#: library/stdtypes.rst:5936 +#: library/stdtypes.rst:6098 msgid "" "The :class:`int` type in CPython is an arbitrary length number stored in " "binary form (commonly known as a \"bignum\"). There exists no algorithm that " @@ -10833,14 +11049,14 @@ msgstr "" "``int('1' * 500_000)`` μπορεί να διαρκέσει περισσότερο από ένα δευτερόλεπτο " "σε μια γρήγορη CPU." -#: library/stdtypes.rst:5943 +#: library/stdtypes.rst:6105 msgid "" "Limiting conversion size offers a practical way to avoid :cve:`2020-10735`." msgstr "" "Ο περιορισμός του μεγέθους μετατροπής προσφέρει έναν πρακτικό τρόπο αποφυγής " "του :cve:`2020-10735`." -#: library/stdtypes.rst:5945 +#: library/stdtypes.rst:6107 msgid "" "The limit is applied to the number of digit characters in the input or " "output string when a non-linear conversion algorithm would be involved. " @@ -10850,13 +11066,13 @@ msgstr "" "εισόδου ή εξόδου όταν εμπλέκεται ένας μη γραμμικός αλγόριθμος μετατροπής. " "Τα underscores και το πρόσημο δεν υπολογίζονται στο όριο." -#: library/stdtypes.rst:5949 +#: library/stdtypes.rst:6111 msgid "" "When an operation would exceed the limit, a :exc:`ValueError` is raised:" msgstr "" "Όταν μια λειτουργία υπερβαίνει το όριο, γίνεται raise μια :exc:`ValueError`:" -#: library/stdtypes.rst:5951 +#: library/stdtypes.rst:6113 msgid "" ">>> import sys\n" ">>> sys.set_int_max_str_digits(4300) # Illustrative, this is the default.\n" @@ -10900,23 +11116,23 @@ msgstr "" "7144\n" ">>> assert int(hex(i_squared), base=16) == i*i # Hexadecimal is unlimited." -#: library/stdtypes.rst:5971 +#: library/stdtypes.rst:6133 msgid "" -"The default limit is 4300 digits as provided in :data:`sys.int_info." -"default_max_str_digits `. The lowest limit that can be " -"configured is 640 digits as provided in :data:`sys.int_info." -"str_digits_check_threshold `." +"The default limit is 4300 digits as provided " +"in :data:`sys.int_info.default_max_str_digits `. The lowest " +"limit that can be configured is 640 digits as provided " +"in :data:`sys.int_info.str_digits_check_threshold `." msgstr "" -"Το προεπιλεγμένο όριο είναι 4300 ψηφία όπως προβλέπεται στο :data:`sys." -"int_info.default_max_str_digits `. Το κατώτατο όριο που μπορεί " -"να διαμορφωθεί είναι 640 ψηφία όπως προβλέπεται στο :data:`sys.int_info." -"str_digits_check_threshold `." +"Το προεπιλεγμένο όριο είναι 4300 ψηφία όπως προβλέπεται " +"στο :data:`sys.int_info.default_max_str_digits `. Το κατώτατο " +"όριο που μπορεί να διαμορφωθεί είναι 640 ψηφία όπως προβλέπεται " +"στο :data:`sys.int_info.str_digits_check_threshold `." -#: library/stdtypes.rst:5976 +#: library/stdtypes.rst:6138 msgid "Verification:" msgstr "Επαλήθευση:" -#: library/stdtypes.rst:5978 +#: library/stdtypes.rst:6140 msgid "" ">>> import sys\n" ">>> assert sys.int_info.default_max_str_digits == 4300, sys.int_info\n" @@ -10934,35 +11150,35 @@ msgstr "" "... '571186405732').to_bytes(53, 'big')\n" "..." -#: library/stdtypes.rst:5991 +#: library/stdtypes.rst:6153 msgid "Affected APIs" msgstr "Επηρεασμένα APIs" -#: library/stdtypes.rst:5993 +#: library/stdtypes.rst:6155 msgid "" -"The limitation only applies to potentially slow conversions between :class:" -"`int` and :class:`str` or :class:`bytes`:" +"The limitation only applies to potentially slow conversions " +"between :class:`int` and :class:`str` or :class:`bytes`:" msgstr "" "Ο περιορισμός ισχύει μόνο για δυνητικά αργές μετατροπές μεταξύ :class:`int` " "και :class:`str` ή :class:`bytes`:" -#: library/stdtypes.rst:5996 +#: library/stdtypes.rst:6158 msgid "``int(string)`` with default base 10." msgstr "``int(string)`` με default βάση το 10." -#: library/stdtypes.rst:5997 +#: library/stdtypes.rst:6159 msgid "``int(string, base)`` for all bases that are not a power of 2." msgstr "``int(string, base)`` για όλες τις βάσεις που δεν είναι δύναμη του 2." -#: library/stdtypes.rst:5998 +#: library/stdtypes.rst:6160 msgid "``str(integer)``." msgstr "``str(integer)``." -#: library/stdtypes.rst:5999 +#: library/stdtypes.rst:6161 msgid "``repr(integer)``." msgstr "``repr(integer)``." -#: library/stdtypes.rst:6000 +#: library/stdtypes.rst:6162 msgid "" "any other string conversion to base 10, for example ``f\"{integer}\"``, " "``\"{}\".format(integer)``, or ``b\"%d\" % integer``." @@ -10970,40 +11186,40 @@ msgstr "" "οποιαδήποτε άλλη μετατροπή συμβολοσειράς στη βάση 10, για παράδειγμα " "``f\"{integer}\"``, ``\"{}\".format(integer)``, ή ``b\"%d\" % integer``." -#: library/stdtypes.rst:6003 +#: library/stdtypes.rst:6165 msgid "The limitations do not apply to functions with a linear algorithm:" msgstr "Οι περιορισμοί δεν ισχύουν για συναρτήσεις με γραμμικό αλγόριθμο:" -#: library/stdtypes.rst:6005 +#: library/stdtypes.rst:6167 msgid "``int(string, base)`` with base 2, 4, 8, 16, or 32." msgstr "``int(string, base)`` με βάση 2, 4, 8, 16, ή 32." -#: library/stdtypes.rst:6006 +#: library/stdtypes.rst:6168 msgid ":func:`int.from_bytes` and :func:`int.to_bytes`." msgstr ":func:`int.from_bytes` και :func:`int.to_bytes`." -#: library/stdtypes.rst:6007 +#: library/stdtypes.rst:6169 msgid ":func:`hex`, :func:`oct`, :func:`bin`." msgstr ":func:`hex`, :func:`oct`, :func:`bin`." -#: library/stdtypes.rst:6008 +#: library/stdtypes.rst:6170 msgid ":ref:`formatspec` for hex, octal, and binary numbers." msgstr "" ":ref:`formatspec` για δεκαεξαδικούς, οκταδικούς και δυαδικούς αριθμούς." -#: library/stdtypes.rst:6009 +#: library/stdtypes.rst:6171 msgid ":class:`str` to :class:`float`." msgstr ":class:`str` σε :class:`float`." -#: library/stdtypes.rst:6010 +#: library/stdtypes.rst:6172 msgid ":class:`str` to :class:`decimal.Decimal`." msgstr ":class:`str` σε :class:`decimal.Decimal`." -#: library/stdtypes.rst:6013 +#: library/stdtypes.rst:6175 msgid "Configuring the limit" msgstr "Διαμόρφωση ορίου" -#: library/stdtypes.rst:6015 +#: library/stdtypes.rst:6177 msgid "" "Before Python starts up you can use an environment variable or an " "interpreter command line flag to configure the limit:" @@ -11012,7 +11228,7 @@ msgstr "" "περιβάλλοντος ή ένα δείκτη γραμμής εντολών διερμηνέα για να διαμορφώσετε το " "όριο:" -#: library/stdtypes.rst:6018 +#: library/stdtypes.rst:6180 msgid "" ":envvar:`PYTHONINTMAXSTRDIGITS`, e.g. ``PYTHONINTMAXSTRDIGITS=640 python3`` " "to set the limit to 640 or ``PYTHONINTMAXSTRDIGITS=0 python3`` to disable " @@ -11022,7 +11238,7 @@ msgstr "" "για να ορίσετε το όριο σε 640 ή ``PYTHONINTMAXSTRDIGITS=0 python3`` για να " "απενεργοποιήσετε τον περιορισμό." -#: library/stdtypes.rst:6021 +#: library/stdtypes.rst:6183 msgid "" ":option:`-X int_max_str_digits <-X>`, e.g. ``python3 -X " "int_max_str_digits=640``" @@ -11030,30 +11246,31 @@ msgstr "" ":option:`-X int_max_str_digits <-X>`, π.χ. ``python3 -X " "int_max_str_digits=640``" -#: library/stdtypes.rst:6023 +#: library/stdtypes.rst:6185 msgid "" -":data:`sys.flags.int_max_str_digits` contains the value of :envvar:" -"`PYTHONINTMAXSTRDIGITS` or :option:`-X int_max_str_digits <-X>`. If both the " -"env var and the ``-X`` option are set, the ``-X`` option takes precedence. A " -"value of *-1* indicates that both were unset, thus a value of :data:`sys." -"int_info.default_max_str_digits` was used during initialization." +":data:`sys.flags.int_max_str_digits` contains the value " +"of :envvar:`PYTHONINTMAXSTRDIGITS` or :option:`-X int_max_str_digits <-X>`. " +"If both the env var and the ``-X`` option are set, the ``-X`` option takes " +"precedence. A value of *-1* indicates that both were unset, thus a value " +"of :data:`sys.int_info.default_max_str_digits` was used during " +"initialization." msgstr "" -"Το :data:`sys.flags.int_max_str_digits` περιέχει την τιμή :envvar:" -"`PYTHONINTMAXSTRDIGITS` ή :option:`-X int_max_str_digits <-X>`. Εάν και η " -"επιλογή env var και η επιλογή ``-X`` είναι καθορισμένη, η επιλογή ``-X`` " -"έχει προτεραιότητα. Μια τιμή *-1* υποδεικνύει ότι και τα δύο δεν ορίστηκαν, " -"επομένως χρησιμοποιήθηκε μια τιμή :data:`sys.int_info." -"default_max_str_digits` κατά την προετοιμασία." +"Το :data:`sys.flags.int_max_str_digits` περιέχει την " +"τιμή :envvar:`PYTHONINTMAXSTRDIGITS` ή :option:`-X int_max_str_digits <-X>`. " +"Εάν και η επιλογή env var και η επιλογή ``-X`` είναι καθορισμένη, η επιλογή " +"``-X`` έχει προτεραιότητα. Μια τιμή *-1* υποδεικνύει ότι και τα δύο δεν " +"ορίστηκαν, επομένως χρησιμοποιήθηκε μια " +"τιμή :data:`sys.int_info.default_max_str_digits` κατά την προετοιμασία." -#: library/stdtypes.rst:6029 +#: library/stdtypes.rst:6191 msgid "" -"From code, you can inspect the current limit and set a new one using these :" -"mod:`sys` APIs:" +"From code, you can inspect the current limit and set a new one using " +"these :mod:`sys` APIs:" msgstr "" "Από τον κώδικα, μπορείτε να επιθεωρήσετε το τρέχον όριο και να ορίσετε ένα " "νέο χρησιμοποιώντας αυτά τα :mod:`sys` APIs:" -#: library/stdtypes.rst:6032 +#: library/stdtypes.rst:6194 msgid "" ":func:`sys.get_int_max_str_digits` and :func:`sys.set_int_max_str_digits` " "are a getter and setter for the interpreter-wide limit. Subinterpreters have " @@ -11063,15 +11280,15 @@ msgstr "" "είναι ένας getter και setter για το όριο σε όλο τον διερμηνέα. Οι " "δευτερεύοντες διερμηνείς έχουν το δικό τους όριο." -#: library/stdtypes.rst:6036 +#: library/stdtypes.rst:6198 msgid "" -"Information about the default and minimum can be found in :data:`sys." -"int_info`:" +"Information about the default and minimum can be found " +"in :data:`sys.int_info`:" msgstr "" "Πληροφορίες σχετικά με την προεπιλογή και το ελάχιστο μπορούν να βρεθούν " "στο :data:`sys.int_info`:" -#: library/stdtypes.rst:6038 +#: library/stdtypes.rst:6200 msgid "" ":data:`sys.int_info.default_max_str_digits ` is the compiled-" "in default limit." @@ -11079,7 +11296,7 @@ msgstr "" "Το :data:`sys.int_info.default_max_str_digits ` είναι το " "μεταγλωττισμένο προεπιλεγμένο όριο." -#: library/stdtypes.rst:6040 +#: library/stdtypes.rst:6202 msgid "" ":data:`sys.int_info.str_digits_check_threshold ` is the lowest " "accepted value for the limit (other than 0 which disables it)." @@ -11087,7 +11304,7 @@ msgstr "" "Το :data:`sys.int_info.str_digits_check_threshold ` είναι η " "χαμηλότερη αποδεκτή τιμή για το όριο (εκτός από το 0 που το απενεργοποιεί)." -#: library/stdtypes.rst:6047 +#: library/stdtypes.rst:6209 msgid "" "Setting a low limit *can* lead to problems. While rare, code exists that " "contains integer constants in decimal in their source that exceed the " @@ -11108,7 +11325,7 @@ msgstr "" "τον κώδικα. Μια λύση για τον πηγαίο που περιέχει τόσο μεγάλες σταθερές είναι " "να τις μετατρέψετε σε δεκαεξαδική μορφή ``0x`` καθώς δεν έχει όριο." -#: library/stdtypes.rst:6056 +#: library/stdtypes.rst:6218 msgid "" "Test your application thoroughly if you use a low limit. Ensure your tests " "run with the limit set early via the environment or flag so that it applies " @@ -11122,11 +11339,11 @@ msgstr "" "καλέσει την Python για να μεταγλωττίσει εκ των προτέρων το ``.py`` πηγαίο σε " "αρχεία ``.pyc``." -#: library/stdtypes.rst:6062 +#: library/stdtypes.rst:6224 msgid "Recommended configuration" msgstr "Προτεινόμενη διαμόρφωση" -#: library/stdtypes.rst:6064 +#: library/stdtypes.rst:6226 msgid "" "The default :data:`sys.int_info.default_max_str_digits` is expected to be " "reasonable for most applications. If your application requires a different " @@ -11139,11 +11356,11 @@ msgstr "" "τον συμβατό με τον κώδικα της έκδοσης Python, καθώς αυτά τα API προστέθηκαν " "στην ενημερωμένη έκδοση κώδικα ασφαλείας σε εκδόσεις πριν από την 3.12." -#: library/stdtypes.rst:6069 +#: library/stdtypes.rst:6231 msgid "Example::" msgstr "Παράδειγμα::" -#: library/stdtypes.rst:6071 +#: library/stdtypes.rst:6233 msgid "" ">>> import sys\n" ">>> if hasattr(sys, \"set_int_max_str_digits\"):\n" @@ -11165,15 +11382,15 @@ msgstr "" "... elif current_limit < lower_bound:\n" "... sys.set_int_max_str_digits(lower_bound)" -#: library/stdtypes.rst:6081 +#: library/stdtypes.rst:6243 msgid "If you need to disable it entirely, set it to ``0``." msgstr "Εάν πρέπει να το απενεργοποιήσετε εντελώς, ορίστε το σε ``0``." -#: library/stdtypes.rst:6085 +#: library/stdtypes.rst:6247 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: library/stdtypes.rst:6086 +#: library/stdtypes.rst:6248 msgid "" "Additional information on these special methods may be found in the Python " "Reference Manual (:ref:`customization`)." @@ -11181,7 +11398,7 @@ msgstr "" "Πρόσθετε πληροφορίες σχετικά με αυτές τις ειδικές μεθόδους μπορείτε να " "βρείτε στο Εγχειρίδιο Αναφοράς Python (:ref:`customization`)." -#: library/stdtypes.rst:6089 +#: library/stdtypes.rst:6251 msgid "" "As a consequence, the list ``[1, 2]`` is considered equal to ``[1.0, 2.0]``, " "and similarly for tuples." @@ -11189,12 +11406,12 @@ msgstr "" "Σαν συνέπεια, η λίστα ``[1, 2]`` θεωρείται ίση με ``[1.0, 2.0]``, και ομοίως " "για πλειάδες (tuples)." -#: library/stdtypes.rst:6092 +#: library/stdtypes.rst:6254 msgid "They must have since the parser can't tell the type of the operands." msgstr "" "Πρέπει να έχουν, αφού ο parser δεν μπορεί να ξεχωρίσει τον τύπο των τελεστών." -#: library/stdtypes.rst:6094 +#: library/stdtypes.rst:6256 msgid "" "Cased characters are those with general category property being one of " "\"Lu\" (Letter, uppercase), \"Ll\" (Letter, lowercase), or \"Lt\" (Letter, " @@ -11204,7 +11421,7 @@ msgstr "" "είναι ένας από τους \"Lu\" (Γράμμα, κεφαλαίο), \"Ll\" (Γράμμα, πεζά), ή " "\"Lt\" (Γράμμα, κεφαλαία)." -#: library/stdtypes.rst:6097 +#: library/stdtypes.rst:6259 msgid "" "To format only a tuple you should therefore provide a singleton tuple whose " "only element is the tuple to be formatted." @@ -11217,12 +11434,12 @@ msgstr "" msgid "built-in" msgstr "ενσωματωμένοι (built-in) τύποι" -#: library/stdtypes.rst:322 library/stdtypes.rst:992 library/stdtypes.rst:1184 -#: library/stdtypes.rst:4831 library/stdtypes.rst:5822 +#: library/stdtypes.rst:322 library/stdtypes.rst:992 library/stdtypes.rst:1201 +#: library/stdtypes.rst:4966 library/stdtypes.rst:5963 msgid "types" msgstr "τύποι" -#: library/stdtypes.rst:1199 library/stdtypes.rst:4831 +#: library/stdtypes.rst:1216 library/stdtypes.rst:4966 msgid "statement" msgstr "statement" @@ -11335,11 +11552,11 @@ msgstr "is" msgid "is not" msgstr "is not" -#: library/stdtypes.rst:208 library/stdtypes.rst:1162 library/stdtypes.rst:1307 -#: library/stdtypes.rst:1430 library/stdtypes.rst:1681 -#: library/stdtypes.rst:2883 library/stdtypes.rst:4629 -#: library/stdtypes.rst:5311 library/stdtypes.rst:5742 -#: library/stdtypes.rst:5786 +#: library/stdtypes.rst:208 library/stdtypes.rst:1179 library/stdtypes.rst:1366 +#: library/stdtypes.rst:1489 library/stdtypes.rst:1740 +#: library/stdtypes.rst:3014 library/stdtypes.rst:4763 +#: library/stdtypes.rst:5450 library/stdtypes.rst:5882 +#: library/stdtypes.rst:5927 msgid "object" msgstr "αντικείμενο" @@ -11427,8 +11644,8 @@ msgstr "δυαδικό" msgid "arithmetic" msgstr "αριθμητικό" -#: library/stdtypes.rst:992 library/stdtypes.rst:4831 library/stdtypes.rst:5807 -#: library/stdtypes.rst:5822 +#: library/stdtypes.rst:992 library/stdtypes.rst:4966 library/stdtypes.rst:5948 +#: library/stdtypes.rst:5963 msgid "built-in function" msgstr "ενσωματωμένες (built-in) συναρτήσεις" @@ -11444,7 +11661,7 @@ msgstr "float" msgid "complex" msgstr "complex" -#: library/stdtypes.rst:2740 library/stdtypes.rst:3999 +#: library/stdtypes.rst:2871 library/stdtypes.rst:4131 msgid "+ (plus)" msgstr "+ (συν)" @@ -11456,11 +11673,11 @@ msgstr "τελεστής unary" msgid "binary operator" msgstr "δυαδικός τελεστής" -#: library/stdtypes.rst:2740 library/stdtypes.rst:3999 +#: library/stdtypes.rst:2871 library/stdtypes.rst:4131 msgid "- (minus)" msgstr "- (πλην)" -#: library/stdtypes.rst:2697 library/stdtypes.rst:3956 +#: library/stdtypes.rst:2828 library/stdtypes.rst:4088 msgid "* (asterisk)" msgstr "* (αστερίσκος)" @@ -11472,7 +11689,7 @@ msgstr "/ (κάθετος)" msgid "//" msgstr "//" -#: library/stdtypes.rst:2661 library/stdtypes.rst:3924 +#: library/stdtypes.rst:2791 library/stdtypes.rst:4056 msgid "% (percent)" msgstr "% (τοις εκατό)" @@ -11480,7 +11697,7 @@ msgstr "% (τοις εκατό)" msgid "**" msgstr "**" -#: library/stdtypes.rst:399 library/stdtypes.rst:1199 library/stdtypes.rst:4831 +#: library/stdtypes.rst:399 library/stdtypes.rst:1216 library/stdtypes.rst:4966 msgid "operations on" msgstr "λειτουργίες on" @@ -11488,7 +11705,7 @@ msgstr "λειτουργίες on" msgid "conjugate() (complex number method)" msgstr "conjugate() (μέθοδος μιγαδικών αριθμών)" -#: library/stdtypes.rst:1747 library/stdtypes.rst:5822 +#: library/stdtypes.rst:1808 library/stdtypes.rst:5963 msgid "module" msgstr "module" @@ -11556,7 +11773,7 @@ msgstr "τιμές" msgid "iterator protocol" msgstr "πρωτόκολλο iterator" -#: library/stdtypes.rst:5226 +#: library/stdtypes.rst:5365 msgid "protocol" msgstr "πρωτόκολλο" @@ -11564,7 +11781,7 @@ msgstr "πρωτόκολλο" msgid "iterator" msgstr "iterator" -#: library/stdtypes.rst:976 library/stdtypes.rst:1162 library/stdtypes.rst:1199 +#: library/stdtypes.rst:976 library/stdtypes.rst:1179 library/stdtypes.rst:1216 msgid "sequence" msgstr "sequence" @@ -11580,7 +11797,7 @@ msgstr "container" msgid "iteration over" msgstr "iteration over" -#: library/stdtypes.rst:4831 +#: library/stdtypes.rst:4966 msgid "len" msgstr "len" @@ -11604,385 +11821,465 @@ msgstr "λειτουργία" msgid "repetition" msgstr "επανάληψη" -#: library/stdtypes.rst:1199 +#: library/stdtypes.rst:1216 msgid "subscript" msgstr "subscript" -#: library/stdtypes.rst:1199 +#: library/stdtypes.rst:1216 msgid "slice" msgstr "slice" -#: library/stdtypes.rst:992 -msgid "count() (sequence method)" -msgstr "count() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:992 -msgid "index() (sequence method)" -msgstr "index() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1048 +#: library/stdtypes.rst:1039 msgid "loop" msgstr "loop" -#: library/stdtypes.rst:1048 +#: library/stdtypes.rst:1039 msgid "over mutable sequence" msgstr "πάνω από μεταβλητή ακολουθίας" -#: library/stdtypes.rst:1048 +#: library/stdtypes.rst:1039 msgid "mutable sequence" msgstr "μεταβλητή ακολουθίας" -#: library/stdtypes.rst:1048 +#: library/stdtypes.rst:1039 msgid "loop over" msgstr "loop over" -#: library/stdtypes.rst:1162 +#: library/stdtypes.rst:1179 msgid "immutable" msgstr "αμετάβλητο" -#: library/stdtypes.rst:1386 +#: library/stdtypes.rst:1445 msgid "tuple" msgstr "πλειάδα (tuple)" -#: library/stdtypes.rst:1162 +#: library/stdtypes.rst:1179 msgid "hash" msgstr "hash" -#: library/stdtypes.rst:1184 +#: library/stdtypes.rst:1201 msgid "mutable" msgstr "ευμετάβλητο" -#: library/stdtypes.rst:1199 library/stdtypes.rst:1307 +#: library/stdtypes.rst:1216 library/stdtypes.rst:1366 msgid "list" msgstr "λίστα" -#: library/stdtypes.rst:2864 library/stdtypes.rst:3102 -#: library/stdtypes.rst:3924 +#: library/stdtypes.rst:2995 library/stdtypes.rst:3237 +#: library/stdtypes.rst:4056 msgid "bytearray" msgstr "bytearray" -#: library/stdtypes.rst:4831 library/stdtypes.rst:5822 +#: library/stdtypes.rst:4966 library/stdtypes.rst:5963 msgid "type" msgstr "τύπος" -#: library/stdtypes.rst:1199 +#: library/stdtypes.rst:1216 msgid "assignment" msgstr "εκχώρηση" -#: library/stdtypes.rst:4831 +#: library/stdtypes.rst:4966 msgid "del" msgstr "del" -#: library/stdtypes.rst:1199 -msgid "append() (sequence method)" -msgstr "append() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1199 -msgid "clear() (sequence method)" -msgstr "clear() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1199 -msgid "copy() (sequence method)" -msgstr "copy() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1199 -msgid "extend() (sequence method)" -msgstr "extend() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1199 -msgid "insert() (sequence method)" -msgstr "insert() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1199 -msgid "pop() (sequence method)" -msgstr "pop() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1199 -msgid "remove() (sequence method)" -msgstr "remove() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1199 -msgid "reverse() (sequence method)" -msgstr "reverse() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1430 +#: library/stdtypes.rst:1489 msgid "range" msgstr "range" -#: library/stdtypes.rst:1694 library/stdtypes.rst:2515 -#: library/stdtypes.rst:2661 +#: library/stdtypes.rst:1753 library/stdtypes.rst:2645 +#: library/stdtypes.rst:2791 msgid "string" msgstr "string" -#: library/stdtypes.rst:1551 +#: library/stdtypes.rst:1610 msgid "text sequence type" msgstr "τύπος ακολουθίας κειμένου" -#: library/stdtypes.rst:1694 library/stdtypes.rst:1712 +#: library/stdtypes.rst:1753 library/stdtypes.rst:1773 msgid "str (built-in class)" msgstr "str (ενσωματωμένη (built-in) κλάση)" -#: library/stdtypes.rst:1551 +#: library/stdtypes.rst:1610 msgid "(see also string)" msgstr "(βλ. επίσης string)" -#: library/stdtypes.rst:1681 +#: library/stdtypes.rst:1740 msgid "io.StringIO" msgstr "io.StringIO" -#: library/stdtypes.rst:2856 +#: library/stdtypes.rst:2987 msgid "buffer protocol" msgstr "πρωτόκολλο buffer" -#: library/stdtypes.rst:2864 library/stdtypes.rst:3102 -#: library/stdtypes.rst:3924 +#: library/stdtypes.rst:2995 library/stdtypes.rst:3237 +#: library/stdtypes.rst:4056 msgid "bytes" msgstr "bytes" -#: library/stdtypes.rst:3102 +#: library/stdtypes.rst:3237 msgid "methods" msgstr "μέθοδοι" -#: library/stdtypes.rst:1747 +#: library/stdtypes.rst:1808 msgid "re" msgstr "re" -#: library/stdtypes.rst:3778 +#: library/stdtypes.rst:3910 msgid "universal newlines" msgstr "καθολικές νέες γραμμές" -#: library/stdtypes.rst:2329 +#: library/stdtypes.rst:2457 msgid "str.splitlines method" msgstr "μέθοδος str.splitlines" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid "! formatted string literal" msgstr "! μορφοποιημένη συμβολοσειρά κυριολεκτικής μορφής" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid "formatted string literals" msgstr "μορφοποιημένες συμβολοσειρές κυριολεξίας" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid "! f-string" msgstr "! f-string" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid "f-strings" msgstr "string" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid "fstring" msgstr "fstring" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid "interpolated string literal" msgstr "συμβολοσειρά κυριολεξίας με παρεμβολή" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid "formatted literal" msgstr "μορφοποιημένη κυριολεξία" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid "interpolated literal" msgstr "κυριολεκτικό με παρεμβολή" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid "{} (curly brackets)" msgstr "{} (αγκύλες)" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid "in formatted string literal" msgstr "μέσα σε μορφοποιημένη συμβολοσειρά" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid "! (exclamation mark)" msgstr "! (Θαυμαστικό)" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid ": (colon)" msgstr ": (άνω κάτω τελεία)" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid "= (equals)" msgstr "= (ίσο)" -#: library/stdtypes.rst:2515 +#: library/stdtypes.rst:2645 msgid "for help in debugging using string literals" msgstr "για βοήθεια στην αποσφαλμάτωση μέσω κυριολεκτικών συμβολοσειρών" -#: library/stdtypes.rst:2661 +#: library/stdtypes.rst:2791 msgid "formatting, string (%)" msgstr "μορφοποίηση, string (%)" -#: library/stdtypes.rst:2661 +#: library/stdtypes.rst:2791 msgid "interpolation, string (%)" msgstr "παρεμβολή, string (%)" -#: library/stdtypes.rst:2661 +#: library/stdtypes.rst:2791 msgid "formatting, printf" msgstr "μορφοποίηση, printf" -#: library/stdtypes.rst:2661 +#: library/stdtypes.rst:2791 msgid "interpolation, printf" msgstr "παρεμβολή, printf" -#: library/stdtypes.rst:3924 +#: library/stdtypes.rst:4056 msgid "printf-style formatting" msgstr "μορφοποίηση σε στυλ printf" -#: library/stdtypes.rst:3924 +#: library/stdtypes.rst:4056 msgid "sprintf-style formatting" msgstr "μορφοποίηση σε στυλ sprintf" -#: library/stdtypes.rst:3956 +#: library/stdtypes.rst:4088 msgid "() (parentheses)" msgstr "() (παρενθέσεις)" -#: library/stdtypes.rst:2740 library/stdtypes.rst:3999 +#: library/stdtypes.rst:2871 library/stdtypes.rst:4131 msgid "in printf-style formatting" msgstr "σε μορφοποίηση σε στυλ printf" -#: library/stdtypes.rst:3956 +#: library/stdtypes.rst:4088 msgid ". (dot)" msgstr ". (τελεία)" -#: library/stdtypes.rst:3999 +#: library/stdtypes.rst:4131 msgid "# (hash)" msgstr "# (δίεση)" -#: library/stdtypes.rst:3999 +#: library/stdtypes.rst:4131 msgid "space" msgstr "διάστημα" -#: library/stdtypes.rst:2856 +#: library/stdtypes.rst:2987 msgid "binary sequence types" msgstr "τύπος δυαδικών ακολουθιών" -#: library/stdtypes.rst:2864 +#: library/stdtypes.rst:2995 msgid "memoryview" msgstr "memoryview" -#: library/stdtypes.rst:2864 +#: library/stdtypes.rst:2995 msgid "array" msgstr "πίνακας" -#: library/stdtypes.rst:3778 +#: library/stdtypes.rst:3910 msgid "bytes.splitlines method" msgstr "bytes.splitlines μέθοδος" -#: library/stdtypes.rst:3778 +#: library/stdtypes.rst:3910 msgid "bytearray.splitlines method" msgstr "bytearray.splitlines μέθοδος" -#: library/stdtypes.rst:3924 +#: library/stdtypes.rst:4056 msgid "formatting" msgstr "μορφοποίηση" -#: library/stdtypes.rst:3924 +#: library/stdtypes.rst:4056 msgid "bytes (%)" msgstr "bytes (%)" -#: library/stdtypes.rst:3924 +#: library/stdtypes.rst:4056 msgid "bytearray (%)" msgstr "bytearray (%)" -#: library/stdtypes.rst:3924 +#: library/stdtypes.rst:4056 msgid "interpolation" msgstr "μεταβολή" -#: library/stdtypes.rst:4629 +#: library/stdtypes.rst:4763 msgid "set" msgstr "set" -#: library/stdtypes.rst:4831 +#: library/stdtypes.rst:4966 msgid "mapping" msgstr "αντιστοίχιση" -#: library/stdtypes.rst:4831 +#: library/stdtypes.rst:4966 msgid "dictionary" msgstr "λεξικό" -#: library/stdtypes.rst:4941 +#: library/stdtypes.rst:5076 msgid "__missing__()" msgstr "__missing__()" -#: library/stdtypes.rst:5226 +#: library/stdtypes.rst:5365 msgid "context manager" msgstr "διαχειριστής περιεχομένου" -#: library/stdtypes.rst:5226 +#: library/stdtypes.rst:5365 msgid "context management protocol" msgstr "πρωτόκολλο διαχειριστή περιεχομένου" -#: library/stdtypes.rst:5226 +#: library/stdtypes.rst:5365 msgid "context management" msgstr "διαχείριση περιεχομένου" -#: library/stdtypes.rst:5299 +#: library/stdtypes.rst:5438 msgid "annotation" msgstr "annotation" -#: library/stdtypes.rst:5299 +#: library/stdtypes.rst:5438 msgid "type annotation; type hint" msgstr "type annotation; type hint" -#: library/stdtypes.rst:5311 +#: library/stdtypes.rst:5450 msgid "GenericAlias" msgstr "GenericAlias" -#: library/stdtypes.rst:5311 +#: library/stdtypes.rst:5450 msgid "Generic" msgstr "Generic" -#: library/stdtypes.rst:5311 +#: library/stdtypes.rst:5450 msgid "Alias" msgstr "Alias" -#: library/stdtypes.rst:5567 +#: library/stdtypes.rst:5707 msgid "Union" msgstr "Ένωση" -#: library/stdtypes.rst:5567 +#: library/stdtypes.rst:5707 msgid "union" msgstr "ένωση" -#: library/stdtypes.rst:5742 +#: library/stdtypes.rst:5882 msgid "method" msgstr "μέθοδος" -#: library/stdtypes.rst:5786 +#: library/stdtypes.rst:5927 msgid "code" msgstr "κώδικας" -#: library/stdtypes.rst:5786 +#: library/stdtypes.rst:5927 msgid "code object" msgstr "αντικείμενο κώδικα" -#: library/stdtypes.rst:5793 +#: library/stdtypes.rst:5934 msgid "compile" msgstr "compile" -#: library/stdtypes.rst:5793 +#: library/stdtypes.rst:5934 msgid "__code__ (function object attribute)" msgstr "__code__ (χαρακτηριστικό αντικείμενου συνάρτησης)" -#: library/stdtypes.rst:5807 +#: library/stdtypes.rst:5948 msgid "exec" msgstr "exec" -#: library/stdtypes.rst:5807 +#: library/stdtypes.rst:5948 msgid "eval" msgstr "eval" -#: library/stdtypes.rst:5846 +#: library/stdtypes.rst:5987 msgid "..." msgstr "..." -#: library/stdtypes.rst:5846 +#: library/stdtypes.rst:5987 msgid "ellipsis literal" msgstr "ellipsis literal" +#~ msgid "``s.index(x[, i[, j]])``" +#~ msgstr "``s.index(x[, i[, j]])``" + +#~ msgid "" +#~ "index of the first occurrence of *x* in *s* (at or after index *i* and " +#~ "before index *j*)" +#~ msgstr "" +#~ "δείκτης της πρώτης εμφάνισης του *x* στο *s* (μετά από τον ή στον δείκτη " +#~ "*i* και πριν από το δείκτη *j*)" + +#~ msgid "``s.count(x)``" +#~ msgstr "``s.count(x)``" + +#~ 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`` κάνει raise :exc:`ValueError` όταν το *x* δεν βρίσκεται στο " +#~ "*s*. Όχι όλες οι υλοποιήσεις υποστηρίζουν τη διαβίβαση των πρόσθετων " +#~ "ορίων *i* και *j*. Αυτές οι παράμετροι επιτρέπουν την αποτελεσματική " +#~ "αναζήτηση υποτμημάτων της ακολουθίας. Η διαβίβαση των πρόσθετων ορίων " +#~ "είναι περίπου ισοδύναμη με τη χρήση του ``s[i:j].index(x)``, μόνο χωρίς " +#~ "να αντιγράφονται δεδομένα και με τον επιστρεφόμενο δείκτη να είναι " +#~ "σχετικός με την αρχή της ακολουθίας και όχι στην αρχή του υποσυνόλου " +#~ "(slice)." + +#~ msgid "same as ``s[i:j] = []``" +#~ msgstr "ίδιο με το ``s[i:j] = []``" + +#~ msgid "``s.append(x)``" +#~ msgstr "``s.append(x)``" + +#~ msgid "``s.clear()``" +#~ msgstr "``s.clear()``" + +#~ msgid "``s.copy()``" +#~ msgstr "``s.copy()``" + +#~ msgid "``s.extend(t)`` or ``s += t``" +#~ msgstr "``s.extend(t)`` ή ``s += t``" + +#~ msgid "``s.insert(i, x)``" +#~ msgstr "``s.insert(i, x)``" + +#~ msgid "" +#~ "inserts *x* into *s* at the index given by *i* (same as ``s[i:i] = [x]``)" +#~ msgstr "" +#~ "εισάγει το *x* στο *s* στο δείκτη που δίνεται από το *i* (το ίδιο με το " +#~ "``s[i:i] = [x]``)" + +#~ msgid "``s.pop()`` or ``s.pop(i)``" +#~ msgstr "``s.pop()`` ή ``s.pop(i)``" + +#~ msgid "retrieves the item at *i* and also removes it from *s*" +#~ msgstr "ανακτά το στοιχείο στο *i* και το αφαιρεί επίσης από το *s*" + +#~ msgid "``s.remove(x)``" +#~ msgstr "``s.remove(x)``" + +#~ msgid "``s.reverse()``" +#~ msgstr "``s.reverse()``" + +#~ msgid "reverses the items of *s* in place" +#~ msgstr "αντιστρέφει τα στοιχεία του *s*" + +#~ msgid "" +#~ ":meth:`remove` raises :exc:`ValueError` when *x* is not found in *s*." +#~ msgstr "" +#~ "η :meth:`remove` κάνει raise :exc:`ValueError` όταν το *x* δεν βρίσκεται " +#~ "στο *s*." + +#~ 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`). :meth:`!copy` is not part of " +#~ "the :class:`collections.abc.MutableSequence` ABC, but most concrete " +#~ "mutable sequence classes provide it." +#~ msgstr "" +#~ "η :meth:`clear` και η :meth:`!copy` περιλαμβάνονται για λόγους συνέπειας " +#~ "με τα interfaces των μεταβλητών container που δεν υποστηρίζουν " +#~ "λειτουργίες τμηματοποίησης (όπως τα :class:`dict` και :class:`set`). " +#~ "Η :meth:`!copy` δεν αποτελεί μέρος " +#~ "της :class:`collections.abc.MutableSequence` ABC, αλλά οι περισσότερες " +#~ "κλάσεις μεταβλητών ακολουθιών την παρέχουν." + +#~ msgid ":meth:`clear` and :meth:`!copy` methods." +#~ msgstr "μέθοδοι :meth:`clear` και :meth:`!copy`." + +#~ msgid "count() (sequence method)" +#~ msgstr "count() (μέθοδος ακολουθίας)" + +#~ msgid "index() (sequence method)" +#~ msgstr "index() (μέθοδος ακολουθίας)" + +#~ msgid "append() (sequence method)" +#~ msgstr "append() (μέθοδος ακολουθίας)" + +#~ msgid "clear() (sequence method)" +#~ msgstr "clear() (μέθοδος ακολουθίας)" + +#~ msgid "copy() (sequence method)" +#~ msgstr "copy() (μέθοδος ακολουθίας)" + +#~ msgid "extend() (sequence method)" +#~ msgstr "extend() (μέθοδος ακολουθίας)" + +#~ msgid "insert() (sequence method)" +#~ msgstr "insert() (μέθοδος ακολουθίας)" + +#~ msgid "remove() (sequence method)" +#~ msgstr "remove() (μέθοδος ακολουθίας)" + +#~ msgid "reverse() (sequence method)" +#~ msgstr "reverse() (μέθοδος ακολουθίας)" + #~ msgid "" #~ "To illustrate, the following examples all return a dictionary equal to " #~ "``{\"one\": 1, \"two\": 2, \"three\": 3}``::" @@ -11990,9 +12287,6 @@ msgstr "ellipsis literal" #~ "Για επεξήγηση, τα ακόλουθα παραδείγματα επιστρέφουν όλα ένα λεξικό ίσο με " #~ "``{\"one\": 1, \"two\": 2, \"three\": 3}``::" -#~ msgid ":class:`collections.abc.ByteString`" -#~ msgstr ":class:`collections.abc.ByteString`" - #~ msgid "" #~ "Return ``True`` if all characters in the string are printable or the " #~ "string is empty, ``False`` otherwise. Nonprintable characters are those " @@ -12010,8 +12304,8 @@ msgstr "ellipsis literal" #~ "κενό ASCII (0x20) που θεωρείται εκτυπώσιμος. (Σημειώστε ότι εκτυπώσιμοι " #~ "χαρακτήρες σε αυτό το πλαίσιο είναι εκείνοι που δεν πρέπει να " #~ "αποφεύγονται όταν η :func:`repr` καλείται σε ένα αλφαριθμητικό. Δεν έχει " -#~ "καμία σχέση με τον χειρισμό των συμβολοσειρών που γράφονται στα :data:" -#~ "`sys.stdout` ή :data:`sys.stderr`)." +#~ "καμία σχέση με τον χειρισμό των συμβολοσειρών που γράφονται " +#~ "στα :data:`sys.stdout` ή :data:`sys.stderr`)." #~ msgid "" #~ "A dictionary or other mapping object used to store an object's (writable) " @@ -12040,8 +12334,8 @@ msgstr "ellipsis literal" #~ msgstr "" #~ "Αυτή η μέθοδος μπορεί να παρακαμφθεί από μια μετακλάση για να προσαρμόσει " #~ "τη σειρά ανάλυσης της μεθόδου για τα στιγμιότυπα της. Καλείται στην " -#~ "εγκατάσταση κλάσης, και το αποτέλεσμα της αποθηκεύεται σε :attr:`~class." -#~ "__mro__`." +#~ "εγκατάσταση κλάσης, και το αποτέλεσμα της αποθηκεύεται " +#~ "σε :attr:`~class.__mro__`." #~ msgid "" #~ "Each class keeps a list of weak references to its immediate subclasses. " diff --git a/library/string.po b/library/string.po index 279c04a8..6ef68675 100644 --- a/library/string.po +++ b/library/string.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,7 +22,7 @@ msgid ":mod:`!string` --- Common string operations" msgstr "" #: library/string.rst:7 -msgid "**Source code:** :source:`Lib/string.py`" +msgid "**Source code:** :source:`Lib/string/__init__.py`" msgstr "" #: library/string.rst:14 @@ -244,12 +244,12 @@ 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 it is " -"less sophisticated and, in particular, does not support arbitrary " -"expressions." +"related to that of :ref:`formatted string literals ` and :ref:" +"`template string literals `, but it is less sophisticated and, in " +"particular, does not support arbitrary expressions in interpolations." msgstr "" -#: library/string.rst:211 +#: library/string.rst:212 msgid "" "Format strings contain \"replacement fields\" surrounded by curly braces ``{}" "``. Anything that is not contained in braces is considered literal text, " @@ -258,11 +258,11 @@ msgid "" "``." msgstr "" -#: library/string.rst:216 +#: library/string.rst:217 msgid "The grammar for a replacement field is as follows:" msgstr "" -#: library/string.rst:228 +#: library/string.rst:229 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 " @@ -272,11 +272,11 @@ msgid "" "specify a non-default format for the replacement value." msgstr "" -#: library/string.rst:235 +#: library/string.rst:236 msgid "See also the :ref:`formatspec` section." msgstr "" -#: library/string.rst:237 +#: library/string.rst:238 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 " @@ -293,22 +293,22 @@ msgid "" "lookup using :meth:`~object.__getitem__`." msgstr "" -#: library/string.rst:251 +#: library/string.rst:252 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 "" -#: library/string.rst:255 +#: library/string.rst:256 msgid "" "The positional argument specifiers can be omitted for :class:`Formatter`." msgstr "" -#: library/string.rst:258 +#: library/string.rst:259 msgid "Some simple format string examples::" msgstr "" -#: library/string.rst:260 +#: library/string.rst:261 msgid "" "\"First, thou shalt count to {0}\" # References first positional argument\n" "\"Bring me a {}\" # Implicitly references the first " @@ -321,7 +321,7 @@ msgid "" "'players'." msgstr "" -#: library/string.rst:267 +#: library/string.rst:270 msgid "" "The *conversion* field causes a type coercion before formatting. Normally, " "the job of formatting a value is done by the :meth:`~object.__format__` " @@ -331,25 +331,25 @@ msgid "" "`~object.__format__`, the normal formatting logic is bypassed." msgstr "" -#: library/string.rst:274 +#: library/string.rst:277 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 "" -#: library/string.rst:278 +#: library/string.rst:281 msgid "Some examples::" msgstr "" -#: library/string.rst:280 +#: library/string.rst:283 msgid "" "\"Harold's a clever {0!s}\" # Calls str() on the argument first\n" "\"Bring out the holy {name!r}\" # Calls repr() on the argument first\n" "\"More {!a}\" # Calls ascii() on the argument first" msgstr "" -#: library/string.rst:284 +#: library/string.rst:287 msgid "" "The *format_spec* field contains a specification of how the value should be " "presented, including such details as field width, alignment, padding, " @@ -357,13 +357,13 @@ msgid "" "\"formatting mini-language\" or interpretation of the *format_spec*." msgstr "" -#: library/string.rst:289 +#: library/string.rst:292 msgid "" "Most built-in types support a common formatting mini-language, which is " "described in the next section." msgstr "" -#: library/string.rst:292 +#: library/string.rst:295 msgid "" "A *format_spec* field can also include nested replacement fields within it. " "These nested replacement fields may contain a field name, conversion flag " @@ -373,42 +373,43 @@ msgid "" "to be dynamically specified." msgstr "" -#: library/string.rst:299 +#: library/string.rst:302 msgid "See the :ref:`formatexamples` section for some examples." msgstr "" -#: library/string.rst:305 +#: library/string.rst:308 msgid "Format Specification Mini-Language" msgstr "" -#: library/string.rst:307 +#: library/string.rst:310 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." +"ref:`formatstrings`, :ref:`f-strings`, and :ref:`t-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 "" -#: library/string.rst:314 +#: library/string.rst:317 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 "" -#: library/string.rst:317 +#: library/string.rst:320 msgid "" "A general convention is that an empty format specification produces the same " "result as if you had called :func:`str` on the value. A non-empty format " "specification typically modifies the result." msgstr "" -#: library/string.rst:321 +#: library/string.rst:324 msgid "The general form of a *standard format specifier* is:" msgstr "" -#: library/string.rst:338 +#: library/string.rst:341 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 " @@ -419,43 +420,43 @@ msgid "" "the :func:`format` function." msgstr "" -#: library/string.rst:347 +#: library/string.rst:350 msgid "The meaning of the various alignment options is as follows:" msgstr "" -#: library/string.rst:388 library/string.rst:454 +#: library/string.rst:391 library/string.rst:457 msgid "Option" msgstr "" -#: library/string.rst:388 library/string.rst:488 library/string.rst:534 +#: library/string.rst:391 library/string.rst:491 library/string.rst:537 msgid "Meaning" msgstr "" -#: library/string.rst:358 +#: library/string.rst:361 msgid "``'<'``" msgstr "" -#: library/string.rst:358 +#: library/string.rst:361 msgid "" "Forces the field to be left-aligned within the available space (this is the " "default for most objects)." msgstr "" -#: library/string.rst:361 +#: library/string.rst:364 msgid "``'>'``" msgstr "" -#: library/string.rst:361 +#: library/string.rst:364 msgid "" "Forces the field to be right-aligned within the available space (this is the " "default for numbers)." msgstr "" -#: library/string.rst:364 +#: library/string.rst:367 msgid "``'='``" msgstr "" -#: library/string.rst:364 +#: library/string.rst:367 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 " @@ -464,69 +465,69 @@ msgid "" "the field width." msgstr "" -#: library/string.rst:371 +#: library/string.rst:374 msgid "``'^'``" msgstr "" -#: library/string.rst:371 +#: library/string.rst:374 msgid "Forces the field to be centered within the available space." msgstr "" -#: library/string.rst:375 +#: library/string.rst:378 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 "" -#: library/string.rst:379 +#: library/string.rst:382 msgid "" "The *sign* option is only valid for number types, and can be one of the " "following:" msgstr "" -#: library/string.rst:390 +#: library/string.rst:393 msgid "``'+'``" msgstr "" -#: library/string.rst:390 +#: library/string.rst:393 msgid "" "Indicates that a sign should be used for both positive as well as negative " "numbers." msgstr "" -#: library/string.rst:393 +#: library/string.rst:396 msgid "``'-'``" msgstr "" -#: library/string.rst:393 +#: library/string.rst:396 msgid "" "Indicates that a sign should be used only for negative numbers (this is the " "default behavior)." msgstr "" -#: library/string.rst:396 +#: library/string.rst:399 msgid "space" msgstr "" -#: library/string.rst:396 +#: library/string.rst:399 msgid "" "Indicates that a leading space should be used on positive numbers, and a " "minus sign on negative numbers." msgstr "" -#: library/string.rst:403 +#: library/string.rst:406 msgid "" "The ``'z'`` option coerces negative zero floating-point values to positive " "zero after rounding to the format precision. This option is only valid for " "floating-point presentation types." msgstr "" -#: library/string.rst:407 +#: library/string.rst:410 msgid "Added the ``'z'`` option (see also :pep:`682`)." msgstr "" -#: library/string.rst:412 +#: library/string.rst:415 msgid "" "The ``'#'`` option causes the \"alternate form\" to be used for the " "conversion. The alternate form is defined differently for different types. " @@ -540,14 +541,14 @@ msgid "" "and ``'G'`` conversions, trailing zeros are not removed from the result." msgstr "" -#: library/string.rst:424 +#: library/string.rst:427 msgid "" "The *width* is a decimal integer defining the minimum total field width, " "including any prefixes, separators, and other formatting characters. If not " "specified, then the field width will be determined by the content." msgstr "" -#: library/string.rst:428 +#: library/string.rst:431 msgid "" "When no explicit alignment is given, preceding the *width* field by a zero " "(``'0'``) character enables sign-aware zero-padding for numeric types, " @@ -555,13 +556,13 @@ msgid "" "``'0'`` with an *alignment* type of ``'='``." msgstr "" -#: library/string.rst:433 +#: library/string.rst:436 msgid "" "Preceding the *width* field by ``'0'`` no longer affects the default " "alignment for strings." msgstr "" -#: library/string.rst:437 +#: library/string.rst:440 msgid "" "The *precision* is a decimal integer indicating how many digits should be " "displayed after the decimal point for presentation types ``'f'`` and " @@ -572,29 +573,29 @@ msgid "" "types." msgstr "" -#: library/string.rst:445 +#: library/string.rst:448 msgid "" "The *grouping* option after *width* and *precision* fields specifies a digit " "group separator for the integral and fractional parts of a number " "respectively. It can be one of the following:" msgstr "" -#: library/string.rst:456 +#: library/string.rst:459 msgid "``','``" msgstr "" -#: library/string.rst:456 +#: library/string.rst:459 msgid "" "Inserts a comma every 3 digits for integer presentation type ``'d'`` and " "floating-point presentation types, excluding ``'n'``. For other presentation " "types, this option is not supported." msgstr "" -#: library/string.rst:462 +#: library/string.rst:465 msgid "``'_'``" msgstr "" -#: library/string.rst:462 +#: library/string.rst:465 msgid "" "Inserts an underscore every 3 digits for integer presentation type ``'d'`` " "and floating-point presentation types, excluding ``'n'``. For integer " @@ -603,125 +604,125 @@ msgid "" "supported." msgstr "" -#: library/string.rst:472 +#: library/string.rst:475 msgid "" "For a locale aware separator, use the ``'n'`` presentation type instead." msgstr "" -#: library/string.rst:474 +#: library/string.rst:477 msgid "Added the ``','`` option (see also :pep:`378`)." msgstr "" -#: library/string.rst:477 +#: library/string.rst:480 msgid "Added the ``'_'`` option (see also :pep:`515`)." msgstr "" -#: library/string.rst:480 +#: library/string.rst:483 msgid "Support the *grouping* option for the fractional part." msgstr "" -#: library/string.rst:483 +#: library/string.rst:486 msgid "Finally, the *type* determines how the data should be presented." msgstr "" -#: library/string.rst:485 +#: library/string.rst:488 msgid "The available string presentation types are:" msgstr "" -#: library/string.rst:499 library/string.rst:534 +#: library/string.rst:502 library/string.rst:537 msgid "Type" msgstr "" -#: library/string.rst:490 +#: library/string.rst:493 msgid "``'s'``" msgstr "" -#: library/string.rst:490 +#: library/string.rst:493 msgid "String format. This is the default type for strings and may be omitted." msgstr "" -#: library/string.rst:522 library/string.rst:608 +#: library/string.rst:525 library/string.rst:611 msgid "None" msgstr "" -#: library/string.rst:493 +#: library/string.rst:496 msgid "The same as ``'s'``." msgstr "" -#: library/string.rst:496 +#: library/string.rst:499 msgid "The available integer presentation types are:" msgstr "" -#: library/string.rst:501 +#: library/string.rst:504 msgid "``'b'``" msgstr "" -#: library/string.rst:501 +#: library/string.rst:504 msgid "Binary format. Outputs the number in base 2." msgstr "" -#: library/string.rst:503 +#: library/string.rst:506 msgid "``'c'``" msgstr "" -#: library/string.rst:503 +#: library/string.rst:506 msgid "" "Character. Converts the integer to the corresponding unicode character " "before printing." msgstr "" -#: library/string.rst:506 +#: library/string.rst:509 msgid "``'d'``" msgstr "" -#: library/string.rst:506 +#: library/string.rst:509 msgid "Decimal Integer. Outputs the number in base 10." msgstr "" -#: library/string.rst:508 +#: library/string.rst:511 msgid "``'o'``" msgstr "" -#: library/string.rst:508 +#: library/string.rst:511 msgid "Octal format. Outputs the number in base 8." msgstr "" -#: library/string.rst:510 +#: library/string.rst:513 msgid "``'x'``" msgstr "" -#: library/string.rst:510 +#: library/string.rst:513 msgid "" "Hex format. Outputs the number in base 16, using lower-case letters for the " "digits above 9." msgstr "" -#: library/string.rst:513 +#: library/string.rst:516 msgid "``'X'``" msgstr "" -#: library/string.rst:513 +#: library/string.rst:516 msgid "" "Hex format. Outputs the number in base 16, using upper-case letters for the " "digits above 9. In case ``'#'`` is specified, the prefix ``'0x'`` will be " "upper-cased to ``'0X'`` as well." msgstr "" -#: library/string.rst:600 +#: library/string.rst:603 msgid "``'n'``" msgstr "" -#: library/string.rst:518 +#: library/string.rst:521 msgid "" "Number. This is the same as ``'d'``, except that it uses the current locale " "setting to insert the appropriate digit group separators." msgstr "" -#: library/string.rst:522 +#: library/string.rst:525 msgid "The same as ``'d'``." msgstr "" -#: library/string.rst:525 +#: library/string.rst:528 msgid "" "In addition to the above presentation types, integers can be formatted with " "the floating-point presentation types listed below (except ``'n'`` and " @@ -729,17 +730,17 @@ msgid "" "floating-point number before formatting." msgstr "" -#: library/string.rst:530 +#: library/string.rst:533 msgid "" "The available presentation types for :class:`float` and :class:`~decimal." "Decimal` values are:" msgstr "" -#: library/string.rst:536 +#: library/string.rst:539 msgid "``'e'``" msgstr "" -#: library/string.rst:536 +#: library/string.rst:539 msgid "" "Scientific notation. For a given precision ``p``, formats the number in " "scientific notation with the letter 'e' separating the coefficient from the " @@ -751,21 +752,21 @@ msgid "" "is used." msgstr "" -#: library/string.rst:547 +#: library/string.rst:550 msgid "``'E'``" msgstr "" -#: library/string.rst:547 +#: library/string.rst:550 msgid "" "Scientific notation. Same as ``'e'`` except it uses an upper case 'E' as the " "separator character." msgstr "" -#: library/string.rst:550 +#: library/string.rst:553 msgid "``'f'``" msgstr "" -#: library/string.rst:550 +#: library/string.rst:553 msgid "" "Fixed-point notation. For a given precision ``p``, formats the number as a " "decimal number with exactly ``p`` digits following the decimal point. With " @@ -775,21 +776,21 @@ msgid "" "point is omitted unless the ``#`` option is used." msgstr "" -#: library/string.rst:559 +#: library/string.rst:562 msgid "``'F'``" msgstr "" -#: library/string.rst:559 +#: library/string.rst:562 msgid "" "Fixed-point notation. Same as ``'f'``, but converts ``nan`` to ``NAN`` and " "``inf`` to ``INF``." msgstr "" -#: library/string.rst:562 +#: library/string.rst:565 msgid "``'g'``" msgstr "" -#: library/string.rst:562 +#: library/string.rst:565 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 " @@ -797,7 +798,7 @@ msgid "" "``0`` is treated as equivalent to a precision of ``1``." msgstr "" -#: library/string.rst:569 +#: library/string.rst:572 msgid "" "The precise rules are as follows: suppose that the result formatted with " "presentation type ``'e'`` and precision ``p-1`` would have exponent " @@ -810,7 +811,7 @@ msgid "" "unless the ``'#'`` option is used." msgstr "" -#: library/string.rst:582 +#: library/string.rst:585 msgid "" "With no precision given, uses a precision of ``6`` significant digits for :" "class:`float`. For :class:`~decimal.Decimal`, the coefficient of the result " @@ -820,41 +821,41 @@ msgid "" "notation is used otherwise." msgstr "" -#: library/string.rst:591 +#: library/string.rst:594 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 "" -#: library/string.rst:596 +#: library/string.rst:599 msgid "``'G'``" msgstr "" -#: library/string.rst:596 +#: library/string.rst:599 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 "" -#: library/string.rst:600 +#: library/string.rst:603 msgid "" "Number. This is the same as ``'g'``, except that it uses the current locale " "setting to insert the appropriate digit group separators for the integral " "part of a number." msgstr "" -#: library/string.rst:605 +#: library/string.rst:608 msgid "``'%'``" msgstr "" -#: library/string.rst:605 +#: library/string.rst:608 msgid "" "Percentage. Multiplies the number by 100 and displays in fixed (``'f'``) " "format, followed by a percent sign." msgstr "" -#: library/string.rst:608 +#: library/string.rst:611 msgid "" "For :class:`float` this is like the ``'g'`` type, except that when fixed-" "point notation is used to format the result, it always includes at least one " @@ -863,20 +864,20 @@ msgid "" "as large as needed to represent the given value faithfully." msgstr "" -#: library/string.rst:616 +#: library/string.rst:619 msgid "" "For :class:`~decimal.Decimal`, this is the same as either ``'g'`` or ``'G'`` " "depending on the value of ``context.capitals`` for the current decimal " "context." msgstr "" -#: library/string.rst:620 +#: library/string.rst:623 msgid "" "The overall effect is to match the output of :func:`str` as altered by the " "other format modifiers." msgstr "" -#: library/string.rst:624 +#: library/string.rst:627 msgid "" "The result should be correctly rounded to a given precision ``p`` of digits " "after the decimal point. The rounding mode for :class:`float` matches that " @@ -884,7 +885,7 @@ msgid "" "mode of the current :ref:`context ` will be used." msgstr "" -#: library/string.rst:629 +#: library/string.rst:632 msgid "" "The available presentation types for :class:`complex` are the same as those " "for :class:`float` (``'%'`` is not allowed). Both the real and imaginary " @@ -896,34 +897,34 @@ msgid "" "surrounded by parentheses), possibly altered by other format modifiers." msgstr "" -#: library/string.rst:642 +#: library/string.rst:645 msgid "Format examples" msgstr "" -#: library/string.rst:644 +#: library/string.rst:647 msgid "" "This section contains examples of the :meth:`str.format` syntax and " "comparison with the old ``%``-formatting." msgstr "" -#: library/string.rst:647 +#: library/string.rst:650 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 "" -#: library/string.rst:651 +#: library/string.rst:654 msgid "" "The new format syntax also supports new and different options, shown in the " "following examples." msgstr "" -#: library/string.rst:654 +#: library/string.rst:657 msgid "Accessing arguments by position::" msgstr "" -#: library/string.rst:656 +#: library/string.rst:659 msgid "" ">>> '{0}, {1}, {2}'.format('a', 'b', 'c')\n" "'a, b, c'\n" @@ -938,11 +939,11 @@ msgid "" "'abracadabra'" msgstr "" -#: library/string.rst:667 +#: library/string.rst:670 msgid "Accessing arguments by name::" msgstr "" -#: library/string.rst:669 +#: library/string.rst:672 msgid "" ">>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', " "longitude='-115.81W')\n" @@ -952,11 +953,11 @@ msgid "" "'Coordinates: 37.24N, -115.81W'" msgstr "" -#: library/string.rst:675 +#: library/string.rst:678 msgid "Accessing arguments' attributes::" msgstr "" -#: library/string.rst:677 +#: library/string.rst:680 msgid "" ">>> c = 3-5j\n" ">>> ('The complex number {0} is formed from the real part {0.real} '\n" @@ -973,33 +974,33 @@ msgid "" "'Point(4, 2)'" msgstr "" -#: library/string.rst:690 +#: library/string.rst:693 msgid "Accessing arguments' items::" msgstr "" -#: library/string.rst:692 +#: library/string.rst:695 msgid "" ">>> coord = (3, 5)\n" ">>> 'X: {0[0]}; Y: {0[1]}'.format(coord)\n" "'X: 3; Y: 5'" msgstr "" -#: library/string.rst:696 +#: library/string.rst:699 msgid "Replacing ``%s`` and ``%r``::" msgstr "" -#: library/string.rst:698 +#: library/string.rst:701 msgid "" ">>> \"repr() shows quotes: {!r}; str() doesn't: {!s}\".format('test1', " "'test2')\n" "\"repr() shows quotes: 'test1'; str() doesn't: test2\"" msgstr "" -#: library/string.rst:701 +#: library/string.rst:704 msgid "Aligning the text and specifying a width::" msgstr "" -#: library/string.rst:703 +#: library/string.rst:706 msgid "" ">>> '{:<30}'.format('left aligned')\n" "'left aligned '\n" @@ -1011,11 +1012,11 @@ msgid "" "'***********centered***********'" msgstr "" -#: library/string.rst:712 +#: library/string.rst:715 msgid "Replacing ``%+f``, ``%-f``, and ``% f`` and specifying a sign::" msgstr "" -#: library/string.rst:714 +#: library/string.rst:717 msgid "" ">>> '{:+f}; {:+f}'.format(3.14, -3.14) # show it always\n" "'+3.140000; -3.140000'\n" @@ -1026,12 +1027,12 @@ msgid "" "'3.140000; -3.140000'" msgstr "" -#: library/string.rst:721 +#: library/string.rst:724 msgid "" "Replacing ``%x`` and ``%o`` and converting the value to different bases::" msgstr "" -#: library/string.rst:723 +#: library/string.rst:726 msgid "" ">>> # format also supports binary numbers\n" ">>> \"int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}\".format(42)\n" @@ -1041,11 +1042,11 @@ msgid "" "'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010'" msgstr "" -#: library/string.rst:730 +#: library/string.rst:733 msgid "Using the comma or the underscore as a digit group separator::" msgstr "" -#: library/string.rst:732 +#: library/string.rst:735 msgid "" ">>> '{:,}'.format(1234567890)\n" "'1,234,567,890'\n" @@ -1063,11 +1064,11 @@ msgid "" "'123,456,789.123_456_79'" msgstr "" -#: library/string.rst:747 +#: library/string.rst:750 msgid "Expressing a percentage::" msgstr "" -#: library/string.rst:749 +#: library/string.rst:752 msgid "" ">>> points = 19\n" ">>> total = 22\n" @@ -1075,11 +1076,11 @@ msgid "" "'Correct answers: 86.36%'" msgstr "" -#: library/string.rst:754 +#: library/string.rst:757 msgid "Using type-specific formatting::" msgstr "" -#: library/string.rst:756 +#: library/string.rst:759 msgid "" ">>> import datetime\n" ">>> d = datetime.datetime(2010, 7, 4, 12, 15, 58)\n" @@ -1087,11 +1088,11 @@ msgid "" "'2010-07-04 12:15:58'" msgstr "" -#: library/string.rst:761 +#: library/string.rst:764 msgid "Nesting arguments and more complex examples::" msgstr "" -#: library/string.rst:763 +#: library/string.rst:766 msgid "" ">>> for align, text in zip('<^>', ['left', 'center', 'right']):\n" "... '{0:{fill}{align}16}'.format(text, fill=align, align=align)\n" @@ -1122,11 +1123,26 @@ msgid "" " 11 B 13 1011" msgstr "" -#: library/string.rst:795 -msgid "Template strings" +#: library/string.rst:798 +msgid "Template strings ($-strings)" +msgstr "" + +#: library/string.rst:802 +msgid "" +"The feature described here was introduced in Python 2.4; a simple templating " +"method based upon regular expressions. It predates :meth:`str.format`, :ref:" +"`formatted string literals `, and :ref:`template string literals " +"`." +msgstr "" + +#: library/string.rst:807 +msgid "" +"It is unrelated to template string literals (t-strings), which were " +"introduced in Python 3.14. These evaluate to :class:`string.templatelib." +"Template` objects, found in the :mod:`string.templatelib` module." msgstr "" -#: library/string.rst:797 +#: library/string.rst:812 msgid "" "Template strings provide simpler string substitutions as described in :pep:" "`292`. A primary use case for template strings is for internationalization " @@ -1136,17 +1152,17 @@ msgid "" "the `flufl.i18n `_ package." msgstr "" -#: library/string.rst:807 +#: library/string.rst:822 msgid "" "Template strings support ``$``-based substitutions, using the following " "rules:" msgstr "" -#: library/string.rst:809 +#: library/string.rst:824 msgid "``$$`` is an escape; it is replaced with a single ``$``." msgstr "" -#: library/string.rst:811 +#: library/string.rst:826 msgid "" "``$identifier`` names a substitution placeholder matching a mapping key of " "``\"identifier\"``. By default, ``\"identifier\"`` is restricted to any " @@ -1156,30 +1172,30 @@ msgid "" "specification." msgstr "" -#: library/string.rst:818 +#: library/string.rst:833 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 "" -#: library/string.rst:822 +#: library/string.rst:837 msgid "" "Any other appearance of ``$`` in the string will result in a :exc:" "`ValueError` being raised." msgstr "" -#: library/string.rst:825 +#: library/string.rst:840 msgid "" "The :mod:`string` module provides a :class:`Template` class that implements " "these rules. The methods of :class:`Template` are:" msgstr "" -#: library/string.rst:831 +#: library/string.rst:846 msgid "The constructor takes a single argument which is the template string." msgstr "" -#: library/string.rst:836 +#: library/string.rst:851 msgid "" "Performs the template substitution, returning a new string. *mapping* is " "any dictionary-like object with keys that match the placeholders in the " @@ -1188,7 +1204,7 @@ msgid "" "there are duplicates, the placeholders from *kwds* take precedence." msgstr "" -#: library/string.rst:845 +#: library/string.rst:860 msgid "" "Like :meth:`substitute`, except that if placeholders are missing from " "*mapping* and *kwds*, instead of raising a :exc:`KeyError` exception, the " @@ -1197,7 +1213,7 @@ msgid "" "simply return ``$`` instead of raising :exc:`ValueError`." msgstr "" -#: library/string.rst:851 +#: library/string.rst:866 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 " @@ -1207,33 +1223,33 @@ msgid "" "Python identifiers." msgstr "" -#: library/string.rst:861 +#: library/string.rst:876 msgid "" "Returns ``False`` if the template has invalid placeholders that will cause :" "meth:`substitute` to raise :exc:`ValueError`." msgstr "" -#: library/string.rst:869 +#: library/string.rst:884 msgid "" "Returns a list of the valid identifiers in the template, in the order they " "first appear, ignoring any invalid identifiers." msgstr "" -#: library/string.rst:874 +#: library/string.rst:889 msgid ":class:`Template` instances also provide one public data attribute:" msgstr "" -#: library/string.rst:878 +#: library/string.rst:893 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 "" -#: library/string.rst:881 +#: library/string.rst:896 msgid "Here is an example of how to use a Template::" msgstr "" -#: library/string.rst:883 +#: library/string.rst:898 msgid "" ">>> from string import Template\n" ">>> s = Template('$who likes $what')\n" @@ -1252,7 +1268,7 @@ msgid "" "'tim likes $what'" msgstr "" -#: library/string.rst:899 +#: library/string.rst:914 msgid "" "Advanced usage: you can derive subclasses of :class:`Template` to customize " "the placeholder syntax, delimiter character, or the entire regular " @@ -1260,7 +1276,7 @@ msgid "" "these class attributes:" msgstr "" -#: library/string.rst:904 +#: library/string.rst:919 msgid "" "*delimiter* -- This is the literal string describing a placeholder " "introducing delimiter. The default value is ``$``. Note that this should " @@ -1270,7 +1286,7 @@ msgid "" "the subclass's class namespace)." msgstr "" -#: library/string.rst:911 +#: library/string.rst:926 msgid "" "*idpattern* -- This is the regular expression describing the pattern for non-" "braced placeholders. The default value is the regular expression ``(?a:[_a-" @@ -1278,19 +1294,19 @@ msgid "" "pattern will also apply to braced placeholders." msgstr "" -#: library/string.rst:918 +#: library/string.rst:933 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 "" -#: library/string.rst:922 +#: library/string.rst:937 msgid "" "*braceidpattern* can be used to define separate patterns used inside and " "outside the braces." msgstr "" -#: library/string.rst:926 +#: library/string.rst:941 msgid "" "*braceidpattern* -- This is like *idpattern* but describes the pattern for " "braced placeholders. Defaults to ``None`` which means to fall back to " @@ -1299,7 +1315,7 @@ msgid "" "unbraced placeholders." msgstr "" -#: library/string.rst:934 +#: library/string.rst:949 msgid "" "*flags* -- The regular expression flags that will be applied when compiling " "the regular expression used for recognizing substitutions. The default " @@ -1308,7 +1324,7 @@ msgid "" "regular expressions." msgstr "" -#: library/string.rst:942 +#: library/string.rst:957 msgid "" "Alternatively, you can provide the entire regular expression pattern by " "overriding the class attribute *pattern*. If you do this, the value must be " @@ -1317,41 +1333,41 @@ msgid "" "placeholder rule:" msgstr "" -#: library/string.rst:948 +#: library/string.rst:963 msgid "" "*escaped* -- This group matches the escape sequence, e.g. ``$$``, in the " "default pattern." msgstr "" -#: library/string.rst:951 +#: library/string.rst:966 msgid "" "*named* -- This group matches the unbraced placeholder name; it should not " "include the delimiter in capturing group." msgstr "" -#: library/string.rst:954 +#: library/string.rst:969 msgid "" "*braced* -- This group matches the brace enclosed placeholder name; it " "should not include either the delimiter or braces in the capturing group." msgstr "" -#: library/string.rst:957 +#: library/string.rst:972 msgid "" "*invalid* -- This group matches any other delimiter pattern (usually a " "single delimiter), and it should appear last in the regular expression." msgstr "" -#: library/string.rst:960 +#: library/string.rst:975 msgid "" "The methods on this class will raise :exc:`ValueError` if the pattern " "matches the template without one of these named groups matching." msgstr "" -#: library/string.rst:965 +#: library/string.rst:980 msgid "Helper functions" msgstr "" -#: library/string.rst:969 +#: library/string.rst:984 msgid "" "Split the argument into words using :meth:`str.split`, capitalize each word " "using :meth:`str.capitalize`, and join the capitalized words using :meth:" @@ -1361,74 +1377,74 @@ msgid "" "the words." msgstr "" -#: library/string.rst:204 +#: library/string.rst:205 msgid "{} (curly brackets)" msgstr "" -#: library/string.rst:349 library/string.rst:401 library/string.rst:449 +#: library/string.rst:352 library/string.rst:404 library/string.rst:452 msgid "in string formatting" msgstr "" -#: library/string.rst:204 +#: library/string.rst:205 msgid ". (dot)" msgstr "" -#: library/string.rst:204 +#: library/string.rst:205 msgid "[] (square brackets)" msgstr "" -#: library/string.rst:204 +#: library/string.rst:205 msgid "! (exclamation)" msgstr "" -#: library/string.rst:204 +#: library/string.rst:205 msgid ": (colon)" msgstr "" -#: library/string.rst:349 +#: library/string.rst:352 msgid "< (less)" msgstr "" -#: library/string.rst:349 +#: library/string.rst:352 msgid "> (greater)" msgstr "" -#: library/string.rst:349 +#: library/string.rst:352 msgid "= (equals)" msgstr "" -#: library/string.rst:349 +#: library/string.rst:352 msgid "^ (caret)" msgstr "" -#: library/string.rst:382 +#: library/string.rst:385 msgid "+ (plus)" msgstr "" -#: library/string.rst:382 +#: library/string.rst:385 msgid "- (minus)" msgstr "" -#: library/string.rst:401 +#: library/string.rst:404 msgid "z" msgstr "" -#: library/string.rst:410 +#: library/string.rst:413 msgid "# (hash)" msgstr "" -#: library/string.rst:449 +#: library/string.rst:452 msgid ", (comma)" msgstr "" -#: library/string.rst:449 +#: library/string.rst:452 msgid "_ (underscore)" msgstr "" -#: library/string.rst:805 +#: library/string.rst:820 msgid "$ (dollar)" msgstr "" -#: library/string.rst:805 +#: library/string.rst:820 msgid "in template strings" msgstr "" diff --git a/library/string.templatelib.po b/library/string.templatelib.po new file mode 100644 index 00000000..9193ebbf --- /dev/null +++ b/library/string.templatelib.po @@ -0,0 +1,323 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 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.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: library/string.templatelib.rst:2 +msgid ":mod:`!string.templatelib` --- Support for template string literals" +msgstr "" + +#: library/string.templatelib.rst:7 +msgid "**Source code:** :source:`Lib/string/templatelib.py`" +msgstr "" + +#: library/string.templatelib.rst:13 +msgid ":ref:`Format strings `" +msgstr "" + +#: library/string.templatelib.rst:14 +msgid ":ref:`Template string literal (t-string) syntax `" +msgstr "" + +#: library/string.templatelib.rst:15 +msgid ":pep:`750`" +msgstr "" + +#: library/string.templatelib.rst:20 +msgid "Template strings" +msgstr "" + +#: library/string.templatelib.rst:24 +msgid "" +"Template strings are a mechanism for custom string processing. They have the " +"full flexibility of Python's :ref:`f-strings`, but return a :class:" +"`Template` instance that gives access to the static and interpolated (in " +"curly brackets) parts of a string *before* they are combined." +msgstr "" + +#: library/string.templatelib.rst:30 +msgid "" +"To write a t-string, use a ``'t'`` prefix instead of an ``'f'``, like so:" +msgstr "" + +#: library/string.templatelib.rst:32 +msgid "" +">>> pi = 3.14\n" +">>> t't-strings are new in Python {pi!s}!'\n" +"Template(\n" +" strings=('t-strings are new in Python ', '!'),\n" +" interpolations=(Interpolation(3.14, 'pi', 's', ''),)\n" +")" +msgstr "" + +#: library/string.templatelib.rst:42 +msgid "Types" +msgstr "" + +#: library/string.templatelib.rst:46 +msgid "" +"The :class:`!Template` class describes the contents of a template string. It " +"is immutable, meaning that attributes of a template cannot be reassigned." +msgstr "" + +#: library/string.templatelib.rst:49 +msgid "" +"The most common way to create a :class:`!Template` instance is to use the :" +"ref:`template string literal syntax `. This syntax is identical " +"to that of :ref:`f-strings `, except that it uses a ``t`` prefix " +"in place of an ``f``:" +msgstr "" + +#: library/string.templatelib.rst:59 +msgid "" +"Templates are stored as sequences of literal :attr:`~Template.strings` and " +"dynamic :attr:`~Template.interpolations`. A :attr:`~Template.values` " +"attribute holds the values of the interpolations:" +msgstr "" + +#: library/string.templatelib.rst:72 +msgid "" +"The :attr:`!strings` tuple has one more element than :attr:`!interpolations` " +"and :attr:`!values`; the interpolations “belong” between the strings. This " +"may be easier to understand when tuples are aligned" +msgstr "" + +#: library/string.templatelib.rst:76 +msgid "" +"template.strings: ('Ah! We do have ', '.')\n" +"template.values: ( 'Camembert', )" +msgstr "" + +#: library/string.templatelib.rst:82 library/string.templatelib.rst:249 +msgid "Attributes" +msgstr "" + +#: library/string.templatelib.rst:86 +msgid "A :class:`tuple` of the static strings in the template." +msgstr "" + +#: library/string.templatelib.rst:93 +msgid "Empty strings *are* included in the tuple:" +msgstr "" + +#: library/string.templatelib.rst:101 +msgid "" +"The ``strings`` tuple is never empty, and always contains one more string " +"than the ``interpolations`` and ``values`` tuples:" +msgstr "" + +#: library/string.templatelib.rst:116 +msgid "A :class:`tuple` of the interpolations in the template." +msgstr "" + +#: library/string.templatelib.rst:123 +msgid "" +"The ``interpolations`` tuple may be empty and always contains one fewer " +"values than the ``strings`` tuple:" +msgstr "" + +#: library/string.templatelib.rst:132 +msgid "A tuple of all interpolated values in the template." +msgstr "" + +#: library/string.templatelib.rst:139 +msgid "" +"The ``values`` tuple always has the same length as the ``interpolations`` " +"tuple. It is always equivalent to ``tuple(i.value for i in template." +"interpolations)``." +msgstr "" + +#: library/string.templatelib.rst:144 library/string.templatelib.rst:317 +msgid "Methods" +msgstr "" + +#: library/string.templatelib.rst:147 +msgid "" +"While literal syntax is the most common way to create a :class:`!Template`, " +"it is also possible to create them directly using the constructor:" +msgstr "" + +#: library/string.templatelib.rst:158 +msgid "" +"If multiple strings are passed consecutively, they will be concatenated into " +"a single value in the :attr:`~Template.strings` attribute. For example, the " +"following code creates a :class:`Template` with a single final string:" +msgstr "" + +#: library/string.templatelib.rst:167 +msgid "" +"If multiple interpolations are passed consecutively, they will be treated as " +"separate interpolations and an empty string will be inserted between them. " +"For example, the following code creates a template with empty placeholders " +"in the :attr:`~Template.strings` attribute:" +msgstr "" + +#: library/string.templatelib.rst:182 +msgid "" +"Iterate over the template, yielding each non-empty string and :class:" +"`Interpolation` in the correct order:" +msgstr "" + +#: library/string.templatelib.rst:191 +msgid "Empty strings are **not** included in the iteration:" +msgstr "" + +#: library/string.templatelib.rst:204 +msgid "" +"Concatenate this template with another, returning a new :class:`!Template` " +"instance:" +msgstr "" + +#: library/string.templatelib.rst:211 +msgid "" +"Concatenating a :class:`!Template` and a ``str`` is **not** supported. This " +"is because it is unclear whether the string should be treated as a static " +"string or an interpolation. If you want to concatenate a :class:`!Template` " +"with a string, you should either wrap the string directly in a :class:`!" +"Template` (to treat it as a static string) or use an :class:`!Interpolation` " +"(to treat it as dynamic):" +msgstr "" + +#: library/string.templatelib.rst:232 +msgid "" +"The :class:`!Interpolation` type represents an expression inside a template " +"string. It is immutable, meaning that attributes of an interpolation cannot " +"be reassigned." +msgstr "" + +#: library/string.templatelib.rst:235 +msgid "" +"Interpolations support pattern matching, allowing you to match against their " +"attributes with the :ref:`match statement `:" +msgstr "" + +#: library/string.templatelib.rst:253 +msgid "The evaluated value of the interpolation." +msgstr "" + +#: library/string.templatelib.rst:261 +msgid "" +"For interpolations created by t-string literals, :attr:`!expression` is the " +"expression text found inside the curly brackets (``{`` & ``}``), including " +"any whitespace, excluding the curly brackets themselves, and ending before " +"the first ``!``, ``:``, or ``=`` if any is present. For manually created " +"interpolations, :attr:`!expression` is the arbitrary string provided when " +"constructing the interpolation instance." +msgstr "" + +#: library/string.templatelib.rst:268 +msgid "" +"We recommend using valid Python expressions or the empty string for the " +"``expression`` field of manually created :class:`!Interpolation` instances, " +"although this is not enforced at runtime." +msgstr "" + +#: library/string.templatelib.rst:278 +msgid "The conversion to apply to the value, or ``None``." +msgstr "" + +#: library/string.templatelib.rst:280 +msgid "" +"The :attr:`!conversion` is the optional conversion to apply to the value:" +msgstr "" + +#: library/string.templatelib.rst:288 +msgid "" +"Unlike f-strings, where conversions are applied automatically, the expected " +"behavior with t-strings is that code that *processes* the :class:`!Template` " +"will decide how to interpret and whether to apply the :attr:`!conversion`. " +"For convenience, the :func:`convert` function can be used to mimic f-string " +"conversion semantics." +msgstr "" + +#: library/string.templatelib.rst:298 +msgid "The format specification to apply to the value." +msgstr "" + +#: library/string.templatelib.rst:300 +msgid "" +"The :attr:`!format_spec` is an optional, arbitrary string used as the format " +"specification to present the value:" +msgstr "" + +#: library/string.templatelib.rst:308 +msgid "" +"Unlike f-strings, where format specifications are applied automatically via " +"the :func:`format` protocol, the expected behavior with t-strings is that " +"code that *processes* the interpolation will decide how to interpret and " +"whether to apply the format specification. As a result, :attr:`!format_spec` " +"values in interpolations can be arbitrary strings, including those that do " +"not conform to the :func:`format` protocol." +msgstr "" + +#: library/string.templatelib.rst:323 +msgid "Create a new :class:`!Interpolation` object from component parts." +msgstr "" + +#: library/string.templatelib.rst:0 +msgid "Parameters" +msgstr "" + +#: library/string.templatelib.rst:325 +msgid "The evaluated, in-scope result of the interpolation." +msgstr "" + +#: library/string.templatelib.rst:326 +msgid "The text of a valid Python expression, or an empty string." +msgstr "" + +#: library/string.templatelib.rst:328 +msgid "" +"The :ref:`conversion ` to be used, one of ``None``, ``'a'``, " +"``'r'``, or ``'s'``." +msgstr "" + +#: library/string.templatelib.rst:330 +msgid "" +"An optional, arbitrary string used as the :ref:`format specification " +"` to present the value." +msgstr "" + +#: library/string.templatelib.rst:335 +msgid "Helper functions" +msgstr "" + +#: library/string.templatelib.rst:339 +msgid "" +"Applies formatted string literal :ref:`conversion ` semantics to the given object *obj*. This is frequently useful " +"for custom template string processing logic." +msgstr "" + +#: library/string.templatelib.rst:343 +msgid "Three conversion flags are currently supported:" +msgstr "" + +#: library/string.templatelib.rst:345 +msgid "``'s'`` which calls :func:`str` on the value (like ``!s``)," +msgstr "" + +#: library/string.templatelib.rst:346 +msgid "``'r'`` which calls :func:`repr` (like ``!r``), and" +msgstr "" + +#: library/string.templatelib.rst:347 +msgid "``'a'`` which calls :func:`ascii` (like ``!a``)." +msgstr "" + +#: library/string.templatelib.rst:349 +msgid "If the conversion flag is ``None``, *obj* is returned unchanged." +msgstr "" diff --git a/library/stringprep.po b/library/stringprep.po index 64fc7a67..08030595 100644 --- a/library/stringprep.po +++ b/library/stringprep.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/struct.po b/library/struct.po index 61513deb..824c0ee3 100644 --- a/library/struct.po +++ b/library/struct.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-10 22:42+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" diff --git a/library/subprocess.po b/library/subprocess.po index ad66274f..4ce7b14b 100644 --- a/library/subprocess.po +++ b/library/subprocess.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -49,7 +49,7 @@ msgid ":pep:`324` -- PEP proposing the subprocess module" msgstr "" #: library/subprocess.rst:605 library/subprocess.rst:624 -#: library/subprocess.rst:639 library/subprocess.rst:1516 +#: library/subprocess.rst:639 library/subprocess.rst:1518 #: includes/wasm-mobile-notavail.rst:3 msgid "Availability" msgstr "" @@ -174,8 +174,8 @@ msgid "" "*universal_newlines*. Added the *capture_output* parameter." msgstr "" -#: library/subprocess.rst:506 library/subprocess.rst:1254 -#: library/subprocess.rst:1317 +#: library/subprocess.rst:506 library/subprocess.rst:1256 +#: library/subprocess.rst:1319 msgid "" "Changed Windows shell search order for ``shell=True``. The current directory " "and ``%PATH%`` are replaced with ``%COMSPEC%`` and ``%SystemRoot%" @@ -199,7 +199,7 @@ msgid "" "that it ran successfully." msgstr "" -#: library/subprocess.rst:945 +#: library/subprocess.rst:947 msgid "" "A negative value ``-N`` indicates that the child was terminated by signal " "``N`` (POSIX only)." @@ -376,7 +376,7 @@ msgid "" "binary streams. No encoding or line ending conversion is performed." msgstr "" -#: library/subprocess.rst:1503 library/subprocess.rst:1521 +#: library/subprocess.rst:1505 library/subprocess.rst:1523 msgid "Added the *encoding* and *errors* parameters." msgstr "" @@ -814,7 +814,7 @@ msgstr "" 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`." +"specified *env* **must** include a valid ``%SystemRoot%``." msgstr "" #: library/subprocess.rst:656 @@ -831,7 +831,7 @@ msgstr "" msgid "*encoding* and *errors* were added." msgstr "" -#: library/subprocess.rst:1312 +#: library/subprocess.rst:1314 msgid "*text* was added as a more readable alias for *universal_newlines*." msgstr "" @@ -1065,8 +1065,8 @@ msgid "" "create_subprocess_exec`." msgstr "" -#: library/subprocess.rst:852 library/subprocess.rst:1249 -#: library/subprocess.rst:1303 +#: library/subprocess.rst:854 library/subprocess.rst:1251 +#: library/subprocess.rst:1305 msgid "*timeout* was added." msgstr "" @@ -1098,17 +1098,19 @@ msgstr "" 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." +"retrying communication will not lose any output. Supplying *input* to a " +"subsequent post-timeout :meth:`communicate` call is in undefined behavior " +"and may become an error in the future." msgstr "" -#: library/subprocess.rst:836 +#: library/subprocess.rst:838 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 "" -#: library/subprocess.rst:840 +#: library/subprocess.rst:842 msgid "" "proc = subprocess.Popen(...)\n" "try:\n" @@ -1118,53 +1120,53 @@ msgid "" " outs, errs = proc.communicate()" msgstr "" -#: library/subprocess.rst:849 +#: library/subprocess.rst:851 msgid "" "The data read is buffered in memory, so do not use this method if the data " "size is large or unlimited." msgstr "" -#: library/subprocess.rst:858 +#: library/subprocess.rst:860 msgid "Sends the signal *signal* to the child." msgstr "" -#: library/subprocess.rst:860 +#: library/subprocess.rst:862 msgid "Do nothing if the process completed." msgstr "" -#: library/subprocess.rst:864 +#: library/subprocess.rst:866 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 "" -#: library/subprocess.rst:871 +#: library/subprocess.rst:873 msgid "" "Stop the child. On POSIX OSs the method sends :py:const:`~signal.SIGTERM` to " "the child. On Windows the Win32 API function :c:func:`!TerminateProcess` is " "called to stop the child." msgstr "" -#: library/subprocess.rst:878 +#: library/subprocess.rst:880 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 "" -#: library/subprocess.rst:882 +#: library/subprocess.rst:884 msgid "" "The following attributes are also set by the class for you to access. " "Reassigning them to new values is unsupported:" msgstr "" -#: library/subprocess.rst:887 +#: library/subprocess.rst:889 msgid "" "The *args* argument as it was passed to :class:`Popen` -- a sequence of " "program arguments or else a single string." msgstr "" -#: library/subprocess.rst:894 +#: library/subprocess.rst:896 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* " @@ -1173,7 +1175,7 @@ msgid "" "*stdin* argument was not :data:`PIPE`, this attribute is ``None``." msgstr "" -#: library/subprocess.rst:903 +#: library/subprocess.rst:905 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 " @@ -1183,7 +1185,7 @@ msgid "" "argument was not :data:`PIPE`, this attribute is ``None``." msgstr "" -#: library/subprocess.rst:913 +#: library/subprocess.rst:915 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 " @@ -1193,7 +1195,7 @@ msgid "" "argument was not :data:`PIPE`, this attribute is ``None``." msgstr "" -#: library/subprocess.rst:922 +#: library/subprocess.rst:924 msgid "" "Use :meth:`~Popen.communicate` rather than :attr:`.stdin.write `, :attr:`.stdout.read ` or :attr:`.stderr.read `__ structure is used for :class:`Popen` " @@ -1242,45 +1244,45 @@ msgid "" "only arguments." msgstr "" -#: library/subprocess.rst:963 +#: library/subprocess.rst:965 msgid "Keyword-only argument support was added." msgstr "" -#: library/subprocess.rst:968 +#: library/subprocess.rst:970 msgid "" "A bit field that determines whether certain :class:`STARTUPINFO` attributes " "are used when the process creates a window. ::" msgstr "" -#: library/subprocess.rst:971 +#: library/subprocess.rst:973 msgid "" "si = subprocess.STARTUPINFO()\n" "si.dwFlags = subprocess.STARTF_USESTDHANDLES | subprocess." "STARTF_USESHOWWINDOW" msgstr "" -#: library/subprocess.rst:976 +#: library/subprocess.rst:978 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 "" -#: library/subprocess.rst:983 +#: library/subprocess.rst:985 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 "" -#: library/subprocess.rst:990 +#: library/subprocess.rst:992 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 "" -#: library/subprocess.rst:996 +#: library/subprocess.rst:998 msgid "" "If :attr:`dwFlags` specifies :data:`STARTF_USESHOWWINDOW`, this attribute " "can be any of the values that can be specified in the ``nCmdShow`` parameter " @@ -1289,34 +1291,34 @@ msgid "" "Otherwise, this attribute is ignored." msgstr "" -#: library/subprocess.rst:1003 +#: library/subprocess.rst:1005 msgid "" ":data:`SW_HIDE` is provided for this attribute. It is used when :class:" "`Popen` is called with ``shell=True``." msgstr "" -#: library/subprocess.rst:1008 +#: library/subprocess.rst:1010 msgid "" "A dictionary of additional attributes for process creation as given in " "``STARTUPINFOEX``, see `UpdateProcThreadAttribute `__." msgstr "" -#: library/subprocess.rst:1012 +#: library/subprocess.rst:1014 msgid "Supported attributes:" msgstr "" -#: library/subprocess.rst:1014 +#: library/subprocess.rst:1016 msgid "**handle_list**" msgstr "" -#: library/subprocess.rst:1015 +#: library/subprocess.rst:1017 msgid "" "Sequence of handles that will be inherited. *close_fds* must be true if non-" "empty." msgstr "" -#: library/subprocess.rst:1018 +#: library/subprocess.rst:1020 msgid "" "The handles must be temporarily made inheritable by :func:`os." "set_handle_inheritable` when passed to the :class:`Popen` constructor, else :" @@ -1324,7 +1326,7 @@ msgid "" "``ERROR_INVALID_PARAMETER`` (87)." msgstr "" -#: library/subprocess.rst:1025 +#: library/subprocess.rst:1027 msgid "" "In a multithreaded process, use caution to avoid leaking handles that are " "marked inheritable when combining this feature with concurrent calls to " @@ -1333,110 +1335,110 @@ msgid "" "temporarily creates inheritable handles." msgstr "" -#: library/subprocess.rst:1035 +#: library/subprocess.rst:1037 msgid "Windows Constants" msgstr "" -#: library/subprocess.rst:1037 +#: library/subprocess.rst:1039 msgid "The :mod:`subprocess` module exposes the following constants." msgstr "" -#: library/subprocess.rst:1041 +#: library/subprocess.rst:1043 msgid "" "The standard input device. Initially, this is the console input buffer, " "``CONIN$``." msgstr "" -#: library/subprocess.rst:1046 +#: library/subprocess.rst:1048 msgid "" "The standard output device. Initially, this is the active console screen " "buffer, ``CONOUT$``." msgstr "" -#: library/subprocess.rst:1051 +#: library/subprocess.rst:1053 msgid "" "The standard error device. Initially, this is the active console screen " "buffer, ``CONOUT$``." msgstr "" -#: library/subprocess.rst:1056 +#: library/subprocess.rst:1058 msgid "Hides the window. Another window will be activated." msgstr "" -#: library/subprocess.rst:1060 +#: library/subprocess.rst:1062 msgid "" "Specifies that the :attr:`STARTUPINFO.hStdInput`, :attr:`STARTUPINFO." "hStdOutput`, and :attr:`STARTUPINFO.hStdError` attributes contain additional " "information." msgstr "" -#: library/subprocess.rst:1066 +#: library/subprocess.rst:1068 msgid "" "Specifies that the :attr:`STARTUPINFO.wShowWindow` attribute contains " "additional information." msgstr "" -#: library/subprocess.rst:1071 +#: library/subprocess.rst:1073 msgid "" "A :attr:`STARTUPINFO.dwFlags` parameter to specify that the *Working in " "Background* mouse cursor will be displayed while a process is launching. " "This is the default behavior for GUI processes." msgstr "" -#: library/subprocess.rst:1080 +#: library/subprocess.rst:1082 msgid "" "A :attr:`STARTUPINFO.dwFlags` parameter to specify that the mouse cursor " "will not be changed when launching a process." msgstr "" -#: library/subprocess.rst:1087 +#: library/subprocess.rst:1089 msgid "" "The new process has a new console, instead of inheriting its parent's " "console (the default)." msgstr "" -#: library/subprocess.rst:1092 +#: library/subprocess.rst:1094 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 "" -#: library/subprocess.rst:1096 +#: library/subprocess.rst:1098 msgid "This flag is ignored if :data:`CREATE_NEW_CONSOLE` is specified." msgstr "" -#: library/subprocess.rst:1100 +#: library/subprocess.rst:1102 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have an above average priority." msgstr "" -#: library/subprocess.rst:1107 +#: library/subprocess.rst:1109 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have a below average priority." msgstr "" -#: library/subprocess.rst:1114 +#: library/subprocess.rst:1116 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have a high priority." msgstr "" -#: library/subprocess.rst:1121 +#: library/subprocess.rst:1123 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have an idle (lowest) priority." msgstr "" -#: library/subprocess.rst:1128 +#: library/subprocess.rst:1130 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have a normal priority. (default)" msgstr "" -#: library/subprocess.rst:1135 +#: library/subprocess.rst:1137 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have realtime priority. You should almost never use " @@ -1446,20 +1448,20 @@ msgid "" "perform brief tasks that should have limited interruptions." msgstr "" -#: library/subprocess.rst:1146 +#: library/subprocess.rst:1148 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will not create a window." msgstr "" -#: library/subprocess.rst:1153 +#: library/subprocess.rst:1155 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 "" -#: library/subprocess.rst:1161 +#: library/subprocess.rst:1163 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 " @@ -1467,43 +1469,43 @@ msgid "" "multithreaded shell applications that run with hard errors disabled." msgstr "" -#: library/subprocess.rst:1171 +#: library/subprocess.rst:1173 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "is not associated with the job." msgstr "" -#: library/subprocess.rst:1179 +#: library/subprocess.rst:1181 msgid "Older high-level API" msgstr "" -#: library/subprocess.rst:1181 +#: library/subprocess.rst:1183 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 "" -#: library/subprocess.rst:1188 +#: library/subprocess.rst:1190 msgid "" "Run the command described by *args*. Wait for command to complete, then " "return the :attr:`~Popen.returncode` attribute." msgstr "" -#: library/subprocess.rst:1231 +#: library/subprocess.rst:1233 msgid "" "Code needing to capture stdout or stderr should use :func:`run` instead::" msgstr "" -#: library/subprocess.rst:1193 +#: library/subprocess.rst:1195 msgid "run(...).returncode" msgstr "" -#: library/subprocess.rst:1235 +#: library/subprocess.rst:1237 msgid "To suppress stdout or stderr, supply a value of :data:`DEVNULL`." msgstr "" -#: library/subprocess.rst:1237 +#: library/subprocess.rst:1239 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 " @@ -1511,14 +1513,14 @@ msgid "" "to that interface." msgstr "" -#: library/subprocess.rst:1244 +#: library/subprocess.rst:1246 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 "" -#: library/subprocess.rst:1224 +#: library/subprocess.rst:1226 msgid "" "Run command with arguments. Wait for command to complete. If the return " "code was zero then return, otherwise raise :exc:`CalledProcessError`. The :" @@ -1527,15 +1529,15 @@ msgid "" "to start the process it will propagate the exception that was raised." msgstr "" -#: library/subprocess.rst:1233 +#: library/subprocess.rst:1235 msgid "run(..., check=True)" msgstr "" -#: library/subprocess.rst:1266 +#: library/subprocess.rst:1268 msgid "Run command with arguments and return its output." msgstr "" -#: library/subprocess.rst:1268 +#: library/subprocess.rst:1270 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:" @@ -1543,15 +1545,15 @@ msgid "" "`~CalledProcessError.output` attribute." msgstr "" -#: library/subprocess.rst:1273 +#: library/subprocess.rst:1275 msgid "This is equivalent to::" msgstr "" -#: library/subprocess.rst:1275 +#: library/subprocess.rst:1277 msgid "run(..., check=True, stdout=PIPE).stdout" msgstr "" -#: library/subprocess.rst:1277 +#: library/subprocess.rst:1279 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 " @@ -1561,27 +1563,27 @@ msgid "" "using the parent's standard input file handle." msgstr "" -#: library/subprocess.rst:1284 +#: library/subprocess.rst:1286 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 "" -#: library/subprocess.rst:1288 +#: library/subprocess.rst:1290 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 "" -#: library/subprocess.rst:1292 +#: library/subprocess.rst:1294 msgid "" "To also capture standard error in the result, use ``stderr=subprocess." "STDOUT``::" msgstr "" -#: library/subprocess.rst:1295 +#: library/subprocess.rst:1297 msgid "" ">>> subprocess.check_output(\n" "... \"ls non_existent_file; exit 0\",\n" @@ -1590,32 +1592,32 @@ msgid "" "'ls: non_existent_file: No such file or directory\\n'" msgstr "" -#: library/subprocess.rst:1306 +#: library/subprocess.rst:1308 msgid "Support for the *input* keyword argument was added." msgstr "" -#: library/subprocess.rst:1309 +#: library/subprocess.rst:1311 msgid "*encoding* and *errors* were added. See :func:`run` for details." msgstr "" -#: library/subprocess.rst:1327 +#: library/subprocess.rst:1329 msgid "Replacing Older Functions with the :mod:`subprocess` Module" msgstr "" -#: library/subprocess.rst:1329 +#: library/subprocess.rst:1331 msgid "" "In this section, \"a becomes b\" means that b can be used as a replacement " "for a." msgstr "" -#: library/subprocess.rst:1333 +#: library/subprocess.rst:1335 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 "" -#: library/subprocess.rst:1337 +#: library/subprocess.rst:1339 msgid "" "In addition, the replacements using :func:`check_output` will fail with a :" "exc:`CalledProcessError` if the requested operation produces a non-zero " @@ -1623,37 +1625,37 @@ msgid "" "output` attribute of the raised exception." msgstr "" -#: library/subprocess.rst:1342 +#: library/subprocess.rst:1344 msgid "" "In the following examples, we assume that the relevant functions have " "already been imported from the :mod:`subprocess` module." msgstr "" -#: library/subprocess.rst:1347 +#: library/subprocess.rst:1349 msgid "Replacing :program:`/bin/sh` shell command substitution" msgstr "" -#: library/subprocess.rst:1349 +#: library/subprocess.rst:1351 msgid "output=$(mycmd myarg)" msgstr "" -#: library/subprocess.rst:1364 library/subprocess.rst:1381 +#: library/subprocess.rst:1366 library/subprocess.rst:1383 msgid "becomes::" msgstr "" -#: library/subprocess.rst:1355 +#: library/subprocess.rst:1357 msgid "output = check_output([\"mycmd\", \"myarg\"])" msgstr "" -#: library/subprocess.rst:1358 +#: library/subprocess.rst:1360 msgid "Replacing shell pipeline" msgstr "" -#: library/subprocess.rst:1377 +#: library/subprocess.rst:1379 msgid "output=$(dmesg | grep hda)" msgstr "" -#: library/subprocess.rst:1366 +#: library/subprocess.rst:1368 msgid "" "p1 = Popen([\"dmesg\"], stdout=PIPE)\n" "p2 = Popen([\"grep\", \"hda\"], stdin=p1.stdout, stdout=PIPE)\n" @@ -1661,59 +1663,59 @@ msgid "" "output = p2.communicate()[0]" msgstr "" -#: library/subprocess.rst:1371 +#: library/subprocess.rst:1373 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 "" -#: library/subprocess.rst:1374 +#: library/subprocess.rst:1376 msgid "" "Alternatively, for trusted input, the shell's own pipeline support may still " "be used directly:" msgstr "" -#: library/subprocess.rst:1383 +#: library/subprocess.rst:1385 msgid "output = check_output(\"dmesg | grep hda\", shell=True)" msgstr "" -#: library/subprocess.rst:1387 +#: library/subprocess.rst:1389 msgid "Replacing :func:`os.system`" msgstr "" -#: library/subprocess.rst:1391 +#: library/subprocess.rst:1393 msgid "" "sts = os.system(\"mycmd\" + \" myarg\")\n" "# becomes\n" "retcode = call(\"mycmd\" + \" myarg\", shell=True)" msgstr "" -#: library/subprocess.rst:1395 +#: library/subprocess.rst:1397 msgid "Notes:" msgstr "" -#: library/subprocess.rst:1397 +#: library/subprocess.rst:1399 msgid "Calling the program through the shell is usually not required." msgstr "" -#: library/subprocess.rst:1398 +#: library/subprocess.rst:1400 msgid "" "The :func:`call` return value is encoded differently to that of :func:`os." "system`." msgstr "" -#: library/subprocess.rst:1401 +#: library/subprocess.rst:1403 msgid "" "The :func:`os.system` function ignores SIGINT and SIGQUIT signals while the " "command is running, but the caller must do this separately when using the :" "mod:`subprocess` module." msgstr "" -#: library/subprocess.rst:1405 +#: library/subprocess.rst:1407 msgid "A more realistic example would look like this::" msgstr "" -#: library/subprocess.rst:1407 +#: library/subprocess.rst:1409 msgid "" "try:\n" " retcode = call(\"mycmd\" + \" myarg\", shell=True)\n" @@ -1726,63 +1728,63 @@ msgid "" " print(\"Execution failed:\", e, file=sys.stderr)" msgstr "" -#: library/subprocess.rst:1418 +#: library/subprocess.rst:1420 msgid "Replacing the :func:`os.spawn ` family" msgstr "" -#: library/subprocess.rst:1420 +#: library/subprocess.rst:1422 msgid "P_NOWAIT example::" msgstr "" -#: library/subprocess.rst:1422 +#: library/subprocess.rst:1424 msgid "" "pid = os.spawnlp(os.P_NOWAIT, \"/bin/mycmd\", \"mycmd\", \"myarg\")\n" "==>\n" "pid = Popen([\"/bin/mycmd\", \"myarg\"]).pid" msgstr "" -#: library/subprocess.rst:1426 +#: library/subprocess.rst:1428 msgid "P_WAIT example::" msgstr "" -#: library/subprocess.rst:1428 +#: library/subprocess.rst:1430 msgid "" "retcode = os.spawnlp(os.P_WAIT, \"/bin/mycmd\", \"mycmd\", \"myarg\")\n" "==>\n" "retcode = call([\"/bin/mycmd\", \"myarg\"])" msgstr "" -#: library/subprocess.rst:1432 +#: library/subprocess.rst:1434 msgid "Vector example::" msgstr "" -#: library/subprocess.rst:1434 +#: library/subprocess.rst:1436 msgid "" "os.spawnvp(os.P_NOWAIT, path, args)\n" "==>\n" "Popen([path] + args[1:])" msgstr "" -#: library/subprocess.rst:1438 +#: library/subprocess.rst:1440 msgid "Environment example::" msgstr "" -#: library/subprocess.rst:1440 +#: library/subprocess.rst:1442 msgid "" "os.spawnlpe(os.P_NOWAIT, \"/bin/mycmd\", \"mycmd\", \"myarg\", env)\n" "==>\n" "Popen([\"/bin/mycmd\", \"myarg\"], env={\"PATH\": \"/usr/bin\"})" msgstr "" -#: library/subprocess.rst:1447 +#: library/subprocess.rst:1449 msgid "Replacing :func:`os.popen`" msgstr "" -#: library/subprocess.rst:1449 +#: library/subprocess.rst:1451 msgid "Return code handling translates as follows::" msgstr "" -#: library/subprocess.rst:1451 +#: library/subprocess.rst:1453 msgid "" "pipe = os.popen(cmd, 'w')\n" "...\n" @@ -1797,11 +1799,11 @@ msgid "" " print(\"There were some errors\")" msgstr "" -#: library/subprocess.rst:1465 +#: library/subprocess.rst:1467 msgid "Legacy Shell Invocation Functions" msgstr "" -#: library/subprocess.rst:1467 +#: library/subprocess.rst:1469 msgid "" "This module also provides the following legacy functions from the 2.x " "``commands`` module. These operations implicitly invoke the system shell and " @@ -1809,25 +1811,24 @@ msgid "" "handling consistency are valid for these functions." msgstr "" -#: library/subprocess.rst:1474 +#: library/subprocess.rst:1476 msgid "Return ``(exitcode, output)`` of executing *cmd* in a shell." msgstr "" -#: library/subprocess.rst:1476 +#: library/subprocess.rst:1478 msgid "" -"Execute the string *cmd* in a shell with :meth:`Popen.check_output` and " -"return a 2-tuple ``(exitcode, output)``. *encoding* and *errors* are used to " -"decode output; see the notes on :ref:`frequently-used-arguments` for more " -"details." +"Execute the string *cmd* in a shell with :func:`check_output` and return a 2-" +"tuple ``(exitcode, output)``. *encoding* and *errors* are used to decode " +"output; see the notes on :ref:`frequently-used-arguments` for more details." msgstr "" -#: library/subprocess.rst:1481 +#: library/subprocess.rst:1483 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 "" -#: library/subprocess.rst:1485 +#: library/subprocess.rst:1487 msgid "" ">>> subprocess.getstatusoutput('ls /bin/ls')\n" "(0, '/bin/ls')\n" @@ -1839,53 +1840,53 @@ msgid "" "(-15, '')" msgstr "" -#: library/subprocess.rst:1496 +#: library/subprocess.rst:1498 msgid "Windows support was added." msgstr "" -#: library/subprocess.rst:1499 +#: library/subprocess.rst:1501 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 "" -#: library/subprocess.rst:1508 +#: library/subprocess.rst:1510 msgid "Return output (stdout and stderr) of executing *cmd* in a shell." msgstr "" -#: library/subprocess.rst:1510 +#: library/subprocess.rst:1512 msgid "" "Like :func:`getstatusoutput`, except the exit code is ignored and the return " "value is a string containing the command's output. Example::" msgstr "" -#: library/subprocess.rst:1513 +#: library/subprocess.rst:1515 msgid "" ">>> subprocess.getoutput('ls /bin/ls')\n" "'/bin/ls'" msgstr "" -#: library/subprocess.rst:1518 +#: library/subprocess.rst:1520 msgid "Windows support added" msgstr "" -#: library/subprocess.rst:1526 +#: library/subprocess.rst:1528 msgid "Notes" msgstr "" -#: library/subprocess.rst:1531 +#: library/subprocess.rst:1533 msgid "Timeout Behavior" msgstr "" -#: library/subprocess.rst:1533 +#: library/subprocess.rst:1535 msgid "" "When using the ``timeout`` parameter in functions like :func:`run`, :meth:" "`Popen.wait`, or :meth:`Popen.communicate`, users should be aware of the " "following behaviors:" msgstr "" -#: library/subprocess.rst:1537 +#: library/subprocess.rst:1539 msgid "" "**Process Creation Delay**: The initial process creation itself cannot be " "interrupted on many platform APIs. This means that even when specifying a " @@ -1893,7 +1894,7 @@ msgid "" "after however long process creation takes." msgstr "" -#: library/subprocess.rst:1542 +#: library/subprocess.rst:1544 msgid "" "**Extremely Small Timeout Values**: Setting very small timeout values (such " "as a few milliseconds) may result in almost immediate :exc:`TimeoutExpired` " @@ -1901,42 +1902,42 @@ msgid "" "time." msgstr "" -#: library/subprocess.rst:1549 +#: library/subprocess.rst:1551 msgid "Converting an argument sequence to a string on Windows" msgstr "" -#: library/subprocess.rst:1551 +#: library/subprocess.rst:1553 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 "" -#: library/subprocess.rst:1555 +#: library/subprocess.rst:1557 msgid "" "Arguments are delimited by white space, which is either a space or a tab." msgstr "" -#: library/subprocess.rst:1558 +#: library/subprocess.rst:1560 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 "" -#: library/subprocess.rst:1563 +#: library/subprocess.rst:1565 msgid "" "A double quotation mark preceded by a backslash is interpreted as a literal " "double quotation mark." msgstr "" -#: library/subprocess.rst:1566 +#: library/subprocess.rst:1568 msgid "" "Backslashes are interpreted literally, unless they immediately precede a " "double quotation mark." msgstr "" -#: library/subprocess.rst:1569 +#: library/subprocess.rst:1571 msgid "" "If backslashes immediately precede a double quotation mark, every pair of " "backslashes is interpreted as a literal backslash. If the number of " @@ -1944,30 +1945,30 @@ msgid "" "mark as described in rule 3." msgstr "" -#: library/subprocess.rst:1578 +#: library/subprocess.rst:1580 msgid ":mod:`shlex`" msgstr "" -#: library/subprocess.rst:1579 +#: library/subprocess.rst:1581 msgid "Module which provides function to parse and escape command lines." msgstr "" -#: library/subprocess.rst:1585 +#: library/subprocess.rst:1587 msgid "Disable use of ``posix_spawn()``" msgstr "" -#: library/subprocess.rst:1587 +#: library/subprocess.rst:1589 msgid "" "On Linux, :mod:`subprocess` defaults to using the ``vfork()`` system call " "internally when it is safe to do so rather than ``fork()``. This greatly " "improves performance." msgstr "" -#: library/subprocess.rst:1593 +#: library/subprocess.rst:1595 msgid "subprocess._USE_POSIX_SPAWN = False # See CPython issue gh-NNNNNN." msgstr "" -#: library/subprocess.rst:1595 +#: library/subprocess.rst:1597 msgid "" "It is safe to set this to false on any Python version. It will have no " "effect on older or newer versions where unsupported. Do not assume the " @@ -1975,14 +1976,14 @@ msgid "" "indicate the corresponding function will be used, only that it may be." msgstr "" -#: library/subprocess.rst:1600 +#: library/subprocess.rst:1602 msgid "" "Please file issues any time you have to use these private knobs with a way " "to reproduce the issue you were seeing. Link to that issue from a comment in " "your code." msgstr "" -#: library/subprocess.rst:1604 +#: library/subprocess.rst:1606 msgid "``_USE_POSIX_SPAWN``" msgstr "" diff --git a/library/sunau.po b/library/sunau.po index b3454cf7..92c1d2f8 100644 --- a/library/sunau.po +++ b/library/sunau.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/superseded.po b/library/superseded.po index 9f50163e..bae1ccd4 100644 --- a/library/superseded.po +++ b/library/superseded.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/symtable.po b/library/symtable.po index aae45843..1c8deb02 100644 --- a/library/symtable.po +++ b/library/symtable.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/sys.monitoring.po b/library/sys.monitoring.po index 610e495f..f041f409 100644 --- a/library/sys.monitoring.po +++ b/library/sys.monitoring.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -196,38 +196,41 @@ msgid "A Python function is resumed by a ``throw()`` call." msgstr "" #: library/sys.monitoring.rst:140 -msgid "Exit from a Python function during exception unwinding." +msgid "" +"Exit from a Python function during exception unwinding. This includes " +"exceptions raised directly within the function and that are allowed to " +"continue to propagate." msgstr "" -#: library/sys.monitoring.rst:144 +#: library/sys.monitoring.rst:145 msgid "" "Yield from a Python function (occurs immediately before the yield, the " "callee's frame will be on the stack)." msgstr "" -#: library/sys.monitoring.rst:148 +#: library/sys.monitoring.rst:149 msgid "" "An exception is raised, except those that cause a :monitoring-event:" "`STOP_ITERATION` event." msgstr "" -#: library/sys.monitoring.rst:152 +#: library/sys.monitoring.rst:153 msgid "" "An exception is re-raised, for example at the end of a :keyword:`finally` " "block." msgstr "" -#: library/sys.monitoring.rst:156 +#: library/sys.monitoring.rst:157 msgid "" "An artificial :exc:`StopIteration` is raised; see `the STOP_ITERATION " "event`_." msgstr "" -#: library/sys.monitoring.rst:159 +#: library/sys.monitoring.rst:160 msgid "More events may be added in the future." msgstr "" -#: library/sys.monitoring.rst:161 +#: library/sys.monitoring.rst:162 msgid "" "These events are attributes of the :mod:`!sys.monitoring.events` namespace. " "Each event is represented as a power-of-2 integer constant. To define a set " @@ -236,109 +239,109 @@ msgid "" "events, use the expression ``PY_RETURN | PY_START``." msgstr "" -#: library/sys.monitoring.rst:169 +#: library/sys.monitoring.rst:170 msgid "An alias for ``0`` so users can do explicit comparisons like::" msgstr "" -#: library/sys.monitoring.rst:171 +#: library/sys.monitoring.rst:172 msgid "" "if get_events(DEBUGGER_ID) == NO_EVENTS:\n" " ..." msgstr "" -#: library/sys.monitoring.rst:174 -msgid "Events are divided into three groups:" +#: library/sys.monitoring.rst:175 +msgid "Setting this event deactivates all events." msgstr "" -#: library/sys.monitoring.rst:179 +#: library/sys.monitoring.rst:180 msgid "Local events" msgstr "" -#: library/sys.monitoring.rst:181 +#: library/sys.monitoring.rst:182 msgid "" "Local events are associated with normal execution of the program and happen " "at clearly defined locations. All local events can be disabled. The local " "events are:" msgstr "" -#: library/sys.monitoring.rst:185 +#: library/sys.monitoring.rst:186 msgid ":monitoring-event:`PY_START`" msgstr "" -#: library/sys.monitoring.rst:186 +#: library/sys.monitoring.rst:187 msgid ":monitoring-event:`PY_RESUME`" msgstr "" -#: library/sys.monitoring.rst:187 +#: library/sys.monitoring.rst:188 msgid ":monitoring-event:`PY_RETURN`" msgstr "" -#: library/sys.monitoring.rst:188 +#: library/sys.monitoring.rst:189 msgid ":monitoring-event:`PY_YIELD`" msgstr "" -#: library/sys.monitoring.rst:189 +#: library/sys.monitoring.rst:190 msgid ":monitoring-event:`CALL`" msgstr "" -#: library/sys.monitoring.rst:190 +#: library/sys.monitoring.rst:191 msgid ":monitoring-event:`LINE`" msgstr "" -#: library/sys.monitoring.rst:191 +#: library/sys.monitoring.rst:192 msgid ":monitoring-event:`INSTRUCTION`" msgstr "" -#: library/sys.monitoring.rst:192 +#: library/sys.monitoring.rst:193 msgid ":monitoring-event:`JUMP`" msgstr "" -#: library/sys.monitoring.rst:193 +#: library/sys.monitoring.rst:194 msgid ":monitoring-event:`BRANCH_LEFT`" msgstr "" -#: library/sys.monitoring.rst:194 +#: library/sys.monitoring.rst:195 msgid ":monitoring-event:`BRANCH_RIGHT`" msgstr "" -#: library/sys.monitoring.rst:195 +#: library/sys.monitoring.rst:196 msgid ":monitoring-event:`STOP_ITERATION`" msgstr "" -#: library/sys.monitoring.rst:198 +#: library/sys.monitoring.rst:199 msgid "Deprecated event" msgstr "" -#: library/sys.monitoring.rst:200 +#: library/sys.monitoring.rst:201 msgid "``BRANCH``" msgstr "" -#: library/sys.monitoring.rst:202 +#: library/sys.monitoring.rst:203 msgid "" "The ``BRANCH`` event is deprecated in 3.14. Using :monitoring-event:" "`BRANCH_LEFT` and :monitoring-event:`BRANCH_RIGHT` events will give much " "better performance as they can be disabled independently." msgstr "" -#: library/sys.monitoring.rst:208 +#: library/sys.monitoring.rst:209 msgid "Ancillary events" msgstr "" -#: library/sys.monitoring.rst:210 +#: library/sys.monitoring.rst:211 msgid "" "Ancillary events can be monitored like other events, but are controlled by " "another event:" msgstr "" -#: library/sys.monitoring.rst:213 +#: library/sys.monitoring.rst:214 msgid ":monitoring-event:`C_RAISE`" msgstr "" -#: library/sys.monitoring.rst:214 +#: library/sys.monitoring.rst:215 msgid ":monitoring-event:`C_RETURN`" msgstr "" -#: library/sys.monitoring.rst:216 +#: library/sys.monitoring.rst:217 msgid "" "The :monitoring-event:`C_RETURN` and :monitoring-event:`C_RAISE` events are " "controlled by the :monitoring-event:`CALL` event. :monitoring-event:" @@ -346,41 +349,41 @@ msgid "" "corresponding :monitoring-event:`CALL` event is being monitored." msgstr "" -#: library/sys.monitoring.rst:222 +#: library/sys.monitoring.rst:226 msgid "Other events" msgstr "" -#: library/sys.monitoring.rst:224 +#: library/sys.monitoring.rst:228 msgid "" "Other events are not necessarily tied to a specific location in the program " -"and cannot be individually disabled." +"and cannot be individually disabled via :data:`DISABLE`." msgstr "" -#: library/sys.monitoring.rst:227 +#: library/sys.monitoring.rst:231 msgid "The other events that can be monitored are:" msgstr "" -#: library/sys.monitoring.rst:229 +#: library/sys.monitoring.rst:233 msgid ":monitoring-event:`PY_THROW`" msgstr "" -#: library/sys.monitoring.rst:230 +#: library/sys.monitoring.rst:234 msgid ":monitoring-event:`PY_UNWIND`" msgstr "" -#: library/sys.monitoring.rst:231 +#: library/sys.monitoring.rst:235 msgid ":monitoring-event:`RAISE`" msgstr "" -#: library/sys.monitoring.rst:232 +#: library/sys.monitoring.rst:236 msgid ":monitoring-event:`EXCEPTION_HANDLED`" msgstr "" -#: library/sys.monitoring.rst:236 +#: library/sys.monitoring.rst:240 msgid "The STOP_ITERATION event" msgstr "" -#: library/sys.monitoring.rst:238 +#: library/sys.monitoring.rst:242 msgid "" ":pep:`PEP 380 <380#use-of-stopiteration-to-return-values>` specifies that a :" "exc:`StopIteration` exception is raised when returning a value from a " @@ -389,7 +392,7 @@ msgid "" "an exception unless it would be visible to other code." msgstr "" -#: library/sys.monitoring.rst:244 +#: library/sys.monitoring.rst:248 msgid "" "To allow tools to monitor for real exceptions without slowing down " "generators and coroutines, the :monitoring-event:`STOP_ITERATION` event is " @@ -397,7 +400,7 @@ msgid "" "unlike :monitoring-event:`RAISE`." msgstr "" -#: library/sys.monitoring.rst:248 +#: library/sys.monitoring.rst:253 msgid "" "Note that the :monitoring-event:`STOP_ITERATION` event and the :monitoring-" "event:`RAISE` event for a :exc:`StopIteration` exception are equivalent, and " @@ -406,46 +409,47 @@ msgid "" "generate a :monitoring-event:`RAISE` event with a :exc:`StopIteration`." msgstr "" -#: library/sys.monitoring.rst:254 +#: library/sys.monitoring.rst:261 msgid "Turning events on and off" msgstr "" -#: library/sys.monitoring.rst:256 +#: library/sys.monitoring.rst:263 msgid "" "In order to monitor an event, it must be turned on and a corresponding " "callback must be registered. Events can be turned on or off by setting the " -"events either globally or for a particular code object." +"events either globally and/or for a particular code object. An event will " +"trigger only once, even if it is turned on both globally and locally." msgstr "" -#: library/sys.monitoring.rst:263 +#: library/sys.monitoring.rst:270 msgid "Setting events globally" msgstr "" -#: library/sys.monitoring.rst:265 +#: library/sys.monitoring.rst:272 msgid "" "Events can be controlled globally by modifying the set of events being " "monitored." msgstr "" -#: library/sys.monitoring.rst:269 +#: library/sys.monitoring.rst:276 msgid "Returns the ``int`` representing all the active events." msgstr "" -#: library/sys.monitoring.rst:273 +#: library/sys.monitoring.rst:280 msgid "" "Activates all events which are set in *event_set*. Raises a :exc:" "`ValueError` if *tool_id* is not in use." msgstr "" -#: library/sys.monitoring.rst:276 +#: library/sys.monitoring.rst:283 msgid "No events are active by default." msgstr "" -#: library/sys.monitoring.rst:279 +#: library/sys.monitoring.rst:286 msgid "Per code object events" msgstr "" -#: library/sys.monitoring.rst:281 +#: library/sys.monitoring.rst:288 msgid "" "Events can also be controlled on a per code object basis. The functions " "defined below which accept a :class:`types.CodeType` should be prepared to " @@ -453,40 +457,36 @@ msgid "" "(see :ref:`c-api-monitoring`)." msgstr "" -#: library/sys.monitoring.rst:288 -msgid "Returns all the local events for *code*" -msgstr "" - -#: library/sys.monitoring.rst:292 -msgid "" -"Activates all the local events for *code* which are set in *event_set*. " -"Raises a :exc:`ValueError` if *tool_id* is not in use." +#: library/sys.monitoring.rst:295 +msgid "Returns all the :ref:`local events ` for *code*" msgstr "" -#: library/sys.monitoring.rst:295 +#: library/sys.monitoring.rst:299 msgid "" -"Local events add to global events, but do not mask them. In other words, all " -"global events will trigger for a code object, regardless of the local events." +"Activates all the :ref:`local events ` for *code* " +"which are set in *event_set*. Raises a :exc:`ValueError` if *tool_id* is not " +"in use." msgstr "" -#: library/sys.monitoring.rst:301 +#: library/sys.monitoring.rst:305 msgid "Disabling events" msgstr "" -#: library/sys.monitoring.rst:305 +#: library/sys.monitoring.rst:309 msgid "" "A special value that can be returned from a callback function to disable " "events for the current code location." msgstr "" -#: library/sys.monitoring.rst:308 +#: library/sys.monitoring.rst:312 msgid "" -"Local events can be disabled for a specific code location by returning :data:" -"`sys.monitoring.DISABLE` from a callback function. This does not change " -"which events are set, or any other code locations for the same event." +":ref:`Local events ` can be disabled for a specific " +"code location by returning :data:`sys.monitoring.DISABLE` from a callback " +"function. This does not change which events are set, or any other code " +"locations for the same event." msgstr "" -#: library/sys.monitoring.rst:312 +#: library/sys.monitoring.rst:317 msgid "" "Disabling events for specific locations is very important for high " "performance monitoring. For example, a program can be run under a debugger " @@ -494,136 +494,157 @@ msgid "" "breakpoints." msgstr "" -#: library/sys.monitoring.rst:319 +#: library/sys.monitoring.rst:322 +msgid "" +"If :data:`DISABLE` is returned by a callback for a :ref:`global event " +"`, :exc:`ValueError` will be raised by the " +"interpreter in a non-specific location (that is, no traceback will be " +"provided)." +msgstr "" + +#: library/sys.monitoring.rst:329 msgid "" "Enable all the events that were disabled by :data:`sys.monitoring.DISABLE` " "for all tools." msgstr "" -#: library/sys.monitoring.rst:326 +#: library/sys.monitoring.rst:336 msgid "Registering callback functions" msgstr "" -#: library/sys.monitoring.rst:328 -msgid "To register a callable for events call" -msgstr "" - -#: library/sys.monitoring.rst:332 +#: library/sys.monitoring.rst:340 msgid "Registers the callable *func* for the *event* with the given *tool_id*" msgstr "" -#: library/sys.monitoring.rst:334 +#: library/sys.monitoring.rst:342 msgid "" "If another callback was registered for the given *tool_id* and *event*, it " "is unregistered and returned. Otherwise :func:`register_callback` returns " "``None``." msgstr "" -#: library/sys.monitoring.rst:339 +#: library/sys.monitoring.rst:346 +msgid "" +"Raises an :ref:`auditing event ` ``sys.monitoring." +"register_callback`` with argument ``func``." +msgstr "" + +#: library/sys.monitoring.rst:348 msgid "" "Functions can be unregistered by calling ``sys.monitoring." "register_callback(tool_id, event, None)``." msgstr "" -#: library/sys.monitoring.rst:342 +#: library/sys.monitoring.rst:351 msgid "Callback functions can be registered and unregistered at any time." msgstr "" -#: library/sys.monitoring.rst:344 +#: library/sys.monitoring.rst:353 msgid "" -"Registering or unregistering a callback function will generate a :func:`sys." -"audit` event." +"Callbacks are called only once regardless if the event is turned on both " +"globally and locally. As such, if an event could be turned on for both " +"global and local events by your code then the callback needs to be written " +"to handle either trigger." msgstr "" -#: library/sys.monitoring.rst:348 +#: library/sys.monitoring.rst:360 msgid "Callback function arguments" msgstr "" -#: library/sys.monitoring.rst:352 +#: library/sys.monitoring.rst:364 msgid "" "A special value that is passed to a callback function to indicate that there " "are no arguments to the call." msgstr "" -#: library/sys.monitoring.rst:355 +#: library/sys.monitoring.rst:367 msgid "" "When an active event occurs, the registered callback function is called. " -"Different events will provide the callback function with different " -"arguments, as follows:" +"Callback functions returning an object other than :data:`DISABLE` will have " +"no effect. Different events will provide the callback function with " +"different arguments, as follows:" msgstr "" -#: library/sys.monitoring.rst:358 +#: library/sys.monitoring.rst:371 msgid ":monitoring-event:`PY_START` and :monitoring-event:`PY_RESUME`::" msgstr "" -#: library/sys.monitoring.rst:389 -msgid "func(code: CodeType, instruction_offset: int) -> DISABLE | Any" +#: library/sys.monitoring.rst:410 +msgid "func(code: CodeType, instruction_offset: int) -> object" msgstr "" -#: library/sys.monitoring.rst:362 +#: library/sys.monitoring.rst:375 msgid ":monitoring-event:`PY_RETURN` and :monitoring-event:`PY_YIELD`::" msgstr "" -#: library/sys.monitoring.rst:364 -msgid "" -"func(code: CodeType, instruction_offset: int, retval: object) -> DISABLE | " -"Any" +#: library/sys.monitoring.rst:377 +msgid "func(code: CodeType, instruction_offset: int, retval: object) -> object" msgstr "" -#: library/sys.monitoring.rst:366 +#: library/sys.monitoring.rst:379 msgid "" ":monitoring-event:`CALL`, :monitoring-event:`C_RAISE` and :monitoring-event:" -"`C_RETURN`::" +"`C_RETURN` (*arg0* can be :data:`MISSING` specifically)::" +msgstr "" + +#: library/sys.monitoring.rst:382 +msgid "" +"func(code: CodeType, instruction_offset: int, callable: object, arg0: " +"object) -> object" msgstr "" -#: library/sys.monitoring.rst:368 +#: library/sys.monitoring.rst:384 msgid "" -"func(code: CodeType, instruction_offset: int, callable: object, arg0: object " -"| MISSING) -> DISABLE | Any" +"*code* represents the code object where the call is being made, while " +"*callable* is the object that is about to be called (and thus triggered the " +"event). If there are no arguments, *arg0* is set to :data:`sys.monitoring." +"MISSING`." msgstr "" -#: library/sys.monitoring.rst:370 +#: library/sys.monitoring.rst:389 msgid "" -"If there are no arguments, *arg0* is set to :data:`sys.monitoring.MISSING`." +"For instance methods, *callable* will be the function object as found on the " +"class with *arg0* set to the instance (i.e. the ``self`` argument to the " +"method)." msgstr "" -#: library/sys.monitoring.rst:372 +#: library/sys.monitoring.rst:393 msgid "" ":monitoring-event:`RAISE`, :monitoring-event:`RERAISE`, :monitoring-event:" "`EXCEPTION_HANDLED`, :monitoring-event:`PY_UNWIND`, :monitoring-event:" "`PY_THROW` and :monitoring-event:`STOP_ITERATION`::" msgstr "" -#: library/sys.monitoring.rst:375 +#: library/sys.monitoring.rst:396 msgid "" "func(code: CodeType, instruction_offset: int, exception: BaseException) -> " -"DISABLE | Any" +"object" msgstr "" -#: library/sys.monitoring.rst:377 +#: library/sys.monitoring.rst:398 msgid ":monitoring-event:`LINE`::" msgstr "" -#: library/sys.monitoring.rst:379 -msgid "func(code: CodeType, line_number: int) -> DISABLE | Any" +#: library/sys.monitoring.rst:400 +msgid "func(code: CodeType, line_number: int) -> object" msgstr "" -#: library/sys.monitoring.rst:381 +#: library/sys.monitoring.rst:402 msgid "" ":monitoring-event:`BRANCH_LEFT`, :monitoring-event:`BRANCH_RIGHT` and :" "monitoring-event:`JUMP`::" msgstr "" -#: library/sys.monitoring.rst:383 +#: library/sys.monitoring.rst:404 msgid "" "func(code: CodeType, instruction_offset: int, destination_offset: int) -> " -"DISABLE | Any" +"object" msgstr "" -#: library/sys.monitoring.rst:385 +#: library/sys.monitoring.rst:406 msgid "Note that the *destination_offset* is where the code will next execute." msgstr "" -#: library/sys.monitoring.rst:387 +#: library/sys.monitoring.rst:408 msgid ":monitoring-event:`INSTRUCTION`::" msgstr "" diff --git a/library/sys.po b/library/sys.po index d0d0311f..a04246ac 100644 --- a/library/sys.po +++ b/library/sys.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,9 +41,9 @@ msgid "" "removed)." msgstr "" -#: library/sys.rst:298 library/sys.rst:789 library/sys.rst:1054 -#: library/sys.rst:1891 library/sys.rst:1914 library/sys.rst:1959 -#: library/sys.rst:2203 +#: library/sys.rst:298 library/sys.rst:789 library/sys.rst:1056 +#: library/sys.rst:1909 library/sys.rst:1932 library/sys.rst:1986 +#: library/sys.rst:2233 msgid "Availability" msgstr "" @@ -588,7 +588,7 @@ msgid "" "Refer to :ref:`sys-path-init-virtual-environments` for more information." msgstr "" -#: library/sys.rst:1613 +#: library/sys.rst:1631 msgid "" "When running under a :ref:`virtual environment `, :data:`prefix` " "and :data:`exec_prefix` are now set to the virtual environment prefix by " @@ -1203,20 +1203,20 @@ msgid "" "argument ``depth``." msgstr "" -#: library/sys.rst:959 +#: library/sys.rst:961 msgid "" "This function only exists if CPython was built using the specialized " "configure option :option:`--with-trace-refs`. It is intended only for " "debugging garbage-collection issues." msgstr "" -#: library/sys.rst:963 +#: library/sys.rst:965 msgid "" "Return a list of up to *limit* dynamically allocated Python objects. If " "*type* is given, only objects of that exact type (not subtypes) are included." msgstr "" -#: library/sys.rst:967 +#: library/sys.rst:969 msgid "" "Objects from the list are not safe to use. Specifically, the result will " "include objects from all interpreters that share their object allocator " @@ -1226,25 +1226,25 @@ msgid "" "different interpreters may lead to crashes or other unexpected behavior." msgstr "" -#: library/sys.rst:1370 +#: library/sys.rst:1388 msgid "" "This function should be used for specialized purposes only. It is not " "guaranteed to exist in all implementations of Python." msgstr "" -#: library/sys.rst:983 +#: library/sys.rst:985 msgid "The result may include objects from other interpreters." msgstr "" -#: library/sys.rst:992 +#: library/sys.rst:994 msgid "Get the profiler function as set by :func:`setprofile`." msgstr "" -#: library/sys.rst:1001 +#: library/sys.rst:1003 msgid "Get the trace function as set by :func:`settrace`." msgstr "" -#: library/sys.rst:1005 +#: library/sys.rst:1007 msgid "" "The :func:`gettrace` function is intended only for implementing debuggers, " "profilers, coverage tools and the like. Its behavior is part of the " @@ -1252,7 +1252,7 @@ msgid "" "thus may not be available in all Python implementations." msgstr "" -#: library/sys.rst:1013 +#: library/sys.rst:1015 msgid "" "Return a named tuple describing the Windows version currently running. The " "named elements are *major*, *minor*, *build*, *platform*, *service_pack*, " @@ -1264,54 +1264,54 @@ msgid "" "first 5 elements are retrievable by indexing." msgstr "" -#: library/sys.rst:1024 +#: library/sys.rst:1026 msgid "*platform* will be ``2`` (VER_PLATFORM_WIN32_NT)." msgstr "" -#: library/sys.rst:1026 +#: library/sys.rst:1028 msgid "*product_type* may be one of the following values:" msgstr "" -#: library/sys.rst:1029 +#: library/sys.rst:1031 msgid "Constant" msgstr "" -#: library/sys.rst:1029 +#: library/sys.rst:1031 msgid "Meaning" msgstr "" -#: library/sys.rst:1031 +#: library/sys.rst:1033 msgid "``1`` (VER_NT_WORKSTATION)" msgstr "" -#: library/sys.rst:1031 +#: library/sys.rst:1033 msgid "The system is a workstation." msgstr "" -#: library/sys.rst:1033 +#: library/sys.rst:1035 msgid "``2`` (VER_NT_DOMAIN_CONTROLLER)" msgstr "" -#: library/sys.rst:1033 +#: library/sys.rst:1035 msgid "The system is a domain controller." msgstr "" -#: library/sys.rst:1036 +#: library/sys.rst:1038 msgid "``3`` (VER_NT_SERVER)" msgstr "" -#: library/sys.rst:1036 +#: library/sys.rst:1038 msgid "The system is a server, but not a domain controller." msgstr "" -#: library/sys.rst:1040 +#: library/sys.rst:1042 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 "" -#: library/sys.rst:1044 +#: library/sys.rst:1046 msgid "" "*platform_version* returns the major version, minor version and build number " "of the current operating system, rather than the version that is being " @@ -1319,24 +1319,24 @@ msgid "" "feature detection." msgstr "" -#: library/sys.rst:1050 +#: library/sys.rst:1052 msgid "" "*platform_version* derives the version from kernel32.dll which can be of a " "different version than the OS version. Please use :mod:`platform` module for " "achieving accurate OS version." msgstr "" -#: library/sys.rst:1056 +#: library/sys.rst:1058 msgid "" "Changed to a named tuple and added *service_pack_minor*, " "*service_pack_major*, *suite_mask*, and *product_type*." msgstr "" -#: library/sys.rst:1060 +#: library/sys.rst:1062 msgid "Added *platform_version*" msgstr "" -#: library/sys.rst:1066 +#: library/sys.rst:1068 msgid "" "Returns an *asyncgen_hooks* object, which is similar to a :class:" "`~collections.namedtuple` of the form ``(firstiter, finalizer)``, where " @@ -1346,71 +1346,75 @@ msgid "" "loop." msgstr "" -#: library/sys.rst:1073 +#: library/sys.rst:1075 msgid "See :pep:`525` for more details." msgstr "" -#: library/sys.rst:1860 +#: library/sys.rst:1878 msgid "" "This function has been added on a provisional basis (see :pep:`411` for " "details.)" msgstr "" -#: library/sys.rst:1083 +#: library/sys.rst:1085 msgid "" "Get the current coroutine origin tracking depth, as set by :func:" "`set_coroutine_origin_tracking_depth`." msgstr "" -#: library/sys.rst:1881 +#: library/sys.rst:1899 msgid "" "This function has been added on a provisional basis (see :pep:`411` for " "details.) Use it only for debugging purposes." msgstr "" -#: library/sys.rst:1095 +#: library/sys.rst:1097 msgid "" "A :term:`named tuple` giving parameters of the numeric hash implementation. " "For more details about hashing of numeric types, see :ref:`numeric-hash`." msgstr "" -#: library/sys.rst:1101 +#: library/sys.rst:1103 msgid "The width in bits used for hash values" msgstr "" -#: library/sys.rst:1105 +#: library/sys.rst:1107 msgid "The prime modulus P used for numeric hash scheme" msgstr "" -#: library/sys.rst:1109 +#: library/sys.rst:1111 msgid "The hash value returned for a positive infinity" msgstr "" -#: library/sys.rst:1113 +#: library/sys.rst:1115 msgid "(This attribute is no longer used)" msgstr "" -#: library/sys.rst:1117 +#: library/sys.rst:1119 msgid "The multiplier used for the imaginary part of a complex number" msgstr "" -#: library/sys.rst:1121 +#: library/sys.rst:1123 msgid "The name of the algorithm for hashing of str, bytes, and memoryview" msgstr "" -#: library/sys.rst:1125 +#: library/sys.rst:1127 msgid "The internal output size of the hash algorithm" msgstr "" -#: library/sys.rst:1129 +#: library/sys.rst:1131 msgid "The size of the seed key of the hash algorithm" msgstr "" -#: library/sys.rst:1133 -msgid "Added *algorithm*, *hash_bits* and *seed_bits*" +#: library/sys.rst:1135 +msgid "Cutoff for small string DJBX33A optimization in range ``[1, cutoff)``." msgstr "" #: library/sys.rst:1139 +msgid "Added *algorithm*, *hash_bits*, *seed_bits*, and *cutoff*." +msgstr "" + +#: library/sys.rst:1145 msgid "" "The version number encoded as a single integer. This is guaranteed to " "increase with each version, including proper support for non-production " @@ -1418,7 +1422,7 @@ msgid "" "version 1.5.2, use::" msgstr "" -#: library/sys.rst:1143 +#: library/sys.rst:1149 msgid "" "if sys.hexversion >= 0x010502F0:\n" " # use some advanced feature\n" @@ -1428,7 +1432,7 @@ msgid "" " ..." msgstr "" -#: library/sys.rst:1150 +#: library/sys.rst:1156 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. " @@ -1436,25 +1440,25 @@ msgid "" "human-friendly encoding of the same information." msgstr "" -#: library/sys.rst:1155 +#: library/sys.rst:1161 msgid "More details of ``hexversion`` can be found at :ref:`apiabiversion`." msgstr "" -#: library/sys.rst:1160 +#: library/sys.rst:1166 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 "" -#: library/sys.rst:1164 +#: library/sys.rst:1170 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 "" -#: library/sys.rst:1168 +#: library/sys.rst:1174 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 " @@ -1466,13 +1470,13 @@ msgid "" "the same value, since it is the reference implementation." msgstr "" -#: library/sys.rst:1178 +#: library/sys.rst:1184 msgid "" "*hexversion* is the implementation version in hexadecimal format, like :data:" "`sys.hexversion`." msgstr "" -#: library/sys.rst:1181 +#: library/sys.rst:1187 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 " @@ -1481,7 +1485,19 @@ msgid "" "set to ``None``, it indicates that module caching should be disabled." msgstr "" -#: library/sys.rst:1188 +#: library/sys.rst:1194 +msgid "" +"*supports_isolated_interpreters* is a boolean value, whether this " +"implementation supports multiple isolated interpreters. It is ``True`` for " +"CPython on most platforms. Platforms with this support implement the low-" +"level :mod:`!_interpreters` module." +msgstr "" + +#: library/sys.rst:1201 +msgid ":pep:`684`, :pep:`734`, and :mod:`concurrent.interpreters`." +msgstr "" + +#: library/sys.rst:1203 msgid "" ":data:`sys.implementation` may contain additional attributes specific to the " "Python implementation. These non-standard attributes must start with an " @@ -1491,47 +1507,51 @@ msgid "" "versions, however.) See :pep:`421` for more information." msgstr "" -#: library/sys.rst:1199 +#: library/sys.rst:1212 +msgid "Added ``supports_isolated_interpreters`` field." +msgstr "" + +#: library/sys.rst:1217 msgid "" "The addition of new required attributes must go through the normal PEP " "process. See :pep:`421` for more information." msgstr "" -#: library/sys.rst:1204 +#: library/sys.rst:1222 msgid "" "A :term:`named tuple` that holds information about Python's internal " "representation of integers. The attributes are read only." msgstr "" -#: library/sys.rst:1209 +#: library/sys.rst:1227 msgid "" "The number of bits held in each digit. Python integers are stored internally " "in base ``2**int_info.bits_per_digit``." msgstr "" -#: library/sys.rst:1214 +#: library/sys.rst:1232 msgid "The size in bytes of the C type used to represent a digit." msgstr "" -#: library/sys.rst:1218 +#: library/sys.rst:1236 msgid "" "The default value for :func:`sys.get_int_max_str_digits` when it is not " "otherwise explicitly configured." msgstr "" -#: library/sys.rst:1223 +#: library/sys.rst:1241 msgid "" "The minimum non-zero value for :func:`sys.set_int_max_str_digits`, :envvar:" "`PYTHONINTMAXSTRDIGITS`, or :option:`-X int_max_str_digits <-X>`." msgstr "" -#: library/sys.rst:1230 +#: library/sys.rst:1248 msgid "" "Added :attr:`~int_info.default_max_str_digits` and :attr:`~int_info." "str_digits_check_threshold`." msgstr "" -#: library/sys.rst:1236 +#: library/sys.rst:1254 msgid "" "When this attribute exists, its value is automatically called (with no " "arguments) when the interpreter is launched in :ref:`interactive mode `." msgstr "" -#: library/sys.rst:1244 +#: library/sys.rst:1262 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_interactivehook`` " "with the hook object as the argument when the hook is called on startup." msgstr "" -#: library/sys.rst:1253 +#: library/sys.rst:1271 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 " @@ -1558,44 +1578,44 @@ msgid "" "attributes have interned keys." msgstr "" -#: library/sys.rst:1261 +#: library/sys.rst:1279 msgid "" "Interned strings are not :term:`immortal`; you must keep a reference to the " "return value of :func:`intern` around to benefit from it." msgstr "" -#: library/sys.rst:1267 +#: library/sys.rst:1285 msgid "" "Return :const:`True` if the :term:`GIL` is enabled and :const:`False` if it " "is disabled." msgstr "" -#: library/sys.rst:1382 +#: library/sys.rst:1400 msgid "It is not guaranteed to exist in all implementations of Python." msgstr "" -#: library/sys.rst:1278 +#: library/sys.rst:1296 msgid "" "Return :const:`True` if the main Python interpreter is :term:`shutting down " "`. Return :const:`False` otherwise." msgstr "" -#: library/sys.rst:1281 +#: library/sys.rst:1299 msgid "See also the :exc:`PythonFinalizationError` exception." msgstr "" -#: library/sys.rst:1287 +#: library/sys.rst:1305 msgid "Utilities for observing just-in-time compilation." msgstr "" -#: library/sys.rst:1291 +#: library/sys.rst:1309 msgid "" "JIT compilation is an *experimental implementation detail* of CPython. ``sys." "_jit`` is not guaranteed to exist or behave the same way in all Python " "implementations, versions, or build configurations." msgstr "" -#: library/sys.rst:1299 +#: library/sys.rst:1317 msgid "" "Return ``True`` if the current Python executable supports JIT compilation, " "and ``False`` otherwise. This can be controlled by building CPython with " @@ -1603,7 +1623,7 @@ msgid "" "experimental-jit` option on all other platforms." msgstr "" -#: library/sys.rst:1306 +#: library/sys.rst:1324 msgid "" "Return ``True`` if JIT compilation is enabled for the current Python process " "(implies :func:`sys._jit.is_available`), and ``False`` otherwise. If JIT " @@ -1612,19 +1632,19 @@ msgid "" "interpreter startup." msgstr "" -#: library/sys.rst:1314 +#: library/sys.rst:1332 msgid "" "Return ``True`` if the topmost Python frame is currently executing JIT code " "(implies :func:`sys._jit.is_enabled`), and ``False`` otherwise." msgstr "" -#: library/sys.rst:1319 +#: library/sys.rst:1337 msgid "" "This function is intended for testing and debugging the JIT itself. It " "should be avoided for any other purpose." msgstr "" -#: library/sys.rst:1324 +#: library/sys.rst:1342 msgid "" "Due to the nature of tracing JIT compilers, repeated calls to this function " "may give surprising results. For example, branching on its return value will " @@ -1632,7 +1652,7 @@ msgid "" "entered or exited):" msgstr "" -#: library/sys.rst:1329 +#: library/sys.rst:1347 msgid "" ">>> for warmup in range(BIG_NUMBER):\n" "... # This line is \"hot\", and is eventually JIT-compiled:\n" @@ -1647,7 +1667,7 @@ msgid "" "AssertionError" msgstr "" -#: library/sys.rst:1345 +#: library/sys.rst:1363 msgid "" "This variable is not always defined; it is set to the exception instance " "when an exception is not handled and the interpreter prints an error message " @@ -1658,53 +1678,53 @@ msgid "" "more information.)" msgstr "" -#: library/sys.rst:1357 +#: library/sys.rst:1375 msgid "" "Return :const:`True` if the given object is :term:`immortal`, :const:`False` " "otherwise." msgstr "" -#: library/sys.rst:1362 +#: library/sys.rst:1380 msgid "" "Objects that are immortal (and thus return ``True`` upon being passed to " "this function) are not guaranteed to be immortal in future versions, and " "vice versa for mortal objects." msgstr "" -#: library/sys.rst:1375 +#: library/sys.rst:1393 msgid "" "Return :const:`True` if the given string is \"interned\", :const:`False` " "otherwise." msgstr "" -#: library/sys.rst:1389 +#: library/sys.rst:1407 msgid "" "These three variables are deprecated; use :data:`sys.last_exc` instead. They " "hold the legacy representation of ``sys.last_exc``, as returned from :func:" "`exc_info` above." msgstr "" -#: library/sys.rst:1395 +#: library/sys.rst:1413 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 "" -#: library/sys.rst:1402 +#: library/sys.rst:1420 msgid "" "An integer giving the value of the largest Unicode code point, i.e. " "``1114111`` (``0x10FFFF`` in hexadecimal)." msgstr "" -#: library/sys.rst:1405 +#: library/sys.rst:1423 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 "" -#: library/sys.rst:1413 +#: library/sys.rst:1431 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 " @@ -1717,40 +1737,40 @@ msgid "" "``None`` if the module cannot be found." msgstr "" -#: library/sys.rst:1426 +#: library/sys.rst:1444 msgid ":class:`importlib.abc.MetaPathFinder`" msgstr "" -#: library/sys.rst:1427 +#: library/sys.rst:1445 msgid "" "The abstract base class defining the interface of finder objects on :data:" "`meta_path`." msgstr "" -#: library/sys.rst:1429 +#: library/sys.rst:1447 msgid ":class:`importlib.machinery.ModuleSpec`" msgstr "" -#: library/sys.rst:1430 +#: library/sys.rst:1448 msgid "" "The concrete class which :meth:`~importlib.abc.MetaPathFinder.find_spec` " "should return instances of." msgstr "" -#: library/sys.rst:1436 +#: library/sys.rst:1454 msgid "" ":term:`Module specs ` were introduced in Python 3.4, by :pep:" "`451`." msgstr "" -#: library/sys.rst:1441 +#: library/sys.rst:1459 msgid "" "Removed the fallback that looked for a :meth:`!find_module` method if a :" "data:`meta_path` entry didn't have a :meth:`~importlib.abc.MetaPathFinder." "find_spec` method." msgstr "" -#: library/sys.rst:1447 +#: library/sys.rst:1465 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 " @@ -1762,13 +1782,13 @@ msgid "" "other threads." msgstr "" -#: library/sys.rst:1459 +#: library/sys.rst:1477 msgid "" "The list of the original command line arguments passed to the Python " "executable." msgstr "" -#: library/sys.rst:1462 +#: library/sys.rst:1480 msgid "" "The elements of :data:`sys.orig_argv` are the arguments to the Python " "interpreter, while the elements of :data:`sys.argv` are the arguments to the " @@ -1776,68 +1796,68 @@ msgid "" "in :data:`sys.orig_argv` and missing from :data:`sys.argv`." msgstr "" -#: library/sys.rst:1474 +#: library/sys.rst:1492 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 "" -#: library/sys.rst:1478 +#: library/sys.rst:1496 msgid "" "By default, as initialized upon program startup, a potentially unsafe path " "is prepended to :data:`sys.path` (*before* the entries inserted as a result " "of :envvar:`PYTHONPATH`):" msgstr "" -#: library/sys.rst:1482 +#: library/sys.rst:1500 msgid "" "``python -m module`` command line: prepend the current working directory." msgstr "" -#: library/sys.rst:1484 +#: library/sys.rst:1502 msgid "" "``python script.py`` command line: prepend the script's directory. If it's a " "symbolic link, resolve symbolic links." msgstr "" -#: library/sys.rst:1486 +#: library/sys.rst:1504 msgid "" "``python -c code`` and ``python`` (REPL) command lines: prepend an empty " "string, which means the current working directory." msgstr "" -#: library/sys.rst:1489 +#: library/sys.rst:1507 msgid "" "To not prepend this potentially unsafe path, use the :option:`-P` command " "line option or the :envvar:`PYTHONSAFEPATH` environment variable." msgstr "" -#: library/sys.rst:1492 +#: library/sys.rst:1510 msgid "" "A program is free to modify this list for its own purposes. Only strings " "should be added to :data:`sys.path`; all other data types are ignored during " "import." msgstr "" -#: library/sys.rst:1498 +#: library/sys.rst:1516 msgid "" "Module :mod:`site` This describes how to use .pth files to extend :data:`sys." "path`." msgstr "" -#: library/sys.rst:1503 +#: library/sys.rst:1521 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 "" -#: library/sys.rst:1518 +#: library/sys.rst:1536 msgid "Originally specified in :pep:`302`." msgstr "" -#: library/sys.rst:1512 +#: library/sys.rst:1530 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 " @@ -1845,99 +1865,99 @@ msgid "" "is found on :data:`sys.path_hooks` then ``None`` is stored." msgstr "" -#: library/sys.rst:1523 +#: library/sys.rst:1541 msgid "A string containing a platform identifier. Known values are:" msgstr "" -#: library/sys.rst:1526 +#: library/sys.rst:1544 msgid "System" msgstr "" -#: library/sys.rst:1526 +#: library/sys.rst:1544 msgid "``platform`` value" msgstr "" -#: library/sys.rst:1528 +#: library/sys.rst:1546 msgid "AIX" msgstr "" -#: library/sys.rst:1528 +#: library/sys.rst:1546 msgid "``'aix'``" msgstr "" -#: library/sys.rst:1529 +#: library/sys.rst:1547 msgid "Android" msgstr "" -#: library/sys.rst:1529 +#: library/sys.rst:1547 msgid "``'android'``" msgstr "" -#: library/sys.rst:1530 +#: library/sys.rst:1548 msgid "Emscripten" msgstr "" -#: library/sys.rst:1530 +#: library/sys.rst:1548 msgid "``'emscripten'``" msgstr "" -#: library/sys.rst:1531 +#: library/sys.rst:1549 msgid "FreeBSD" msgstr "" -#: library/sys.rst:1531 +#: library/sys.rst:1549 msgid "``'freebsd'``" msgstr "" -#: library/sys.rst:1532 +#: library/sys.rst:1550 msgid "iOS" msgstr "" -#: library/sys.rst:1532 +#: library/sys.rst:1550 msgid "``'ios'``" msgstr "" -#: library/sys.rst:1533 +#: library/sys.rst:1551 msgid "Linux" msgstr "" -#: library/sys.rst:1533 +#: library/sys.rst:1551 msgid "``'linux'``" msgstr "" -#: library/sys.rst:1534 +#: library/sys.rst:1552 msgid "macOS" msgstr "" -#: library/sys.rst:1534 +#: library/sys.rst:1552 msgid "``'darwin'``" msgstr "" -#: library/sys.rst:1535 +#: library/sys.rst:1553 msgid "Windows" msgstr "" -#: library/sys.rst:1535 +#: library/sys.rst:1553 msgid "``'win32'``" msgstr "" -#: library/sys.rst:1536 +#: library/sys.rst:1554 msgid "Windows/Cygwin" msgstr "" -#: library/sys.rst:1536 +#: library/sys.rst:1554 msgid "``'cygwin'``" msgstr "" -#: library/sys.rst:1537 +#: library/sys.rst:1555 msgid "WASI" msgstr "" -#: library/sys.rst:1537 +#: library/sys.rst:1555 msgid "``'wasi'``" msgstr "" -#: library/sys.rst:1540 +#: library/sys.rst:1558 msgid "" "On Unix systems not listed in the table, the value is the lowercased OS name " "as returned by ``uname -s``, with the first part of the version as returned " @@ -1946,87 +1966,87 @@ msgid "" "therefore recommended to use the following idiom::" msgstr "" -#: library/sys.rst:1546 +#: library/sys.rst:1564 msgid "" "if sys.platform.startswith('sunos'):\n" " # SunOS-specific code here..." msgstr "" -#: library/sys.rst:1549 +#: library/sys.rst:1567 msgid "" "On Linux, :data:`sys.platform` doesn't contain the major version anymore. It " "is always ``'linux'``, instead of ``'linux2'`` or ``'linux3'``." msgstr "" -#: library/sys.rst:1553 +#: library/sys.rst:1571 msgid "" "On AIX, :data:`sys.platform` doesn't contain the major version anymore. It " "is always ``'aix'``, instead of ``'aix5'`` or ``'aix7'``." msgstr "" -#: library/sys.rst:1557 +#: library/sys.rst:1575 msgid "" "On Android, :data:`sys.platform` now returns ``'android'`` rather than " "``'linux'``." msgstr "" -#: library/sys.rst:1561 +#: library/sys.rst:1579 msgid "" "On FreeBSD, :data:`sys.platform` doesn't contain the major version anymore. " "It is always ``'freebsd'``, instead of ``'freebsd13'`` or ``'freebsd14'``." msgstr "" -#: library/sys.rst:1567 +#: library/sys.rst:1585 msgid "" ":data:`os.name` has a coarser granularity. :func:`os.uname` gives system-" "dependent version information." msgstr "" -#: library/sys.rst:1570 +#: library/sys.rst:1588 msgid "" "The :mod:`platform` module provides detailed checks for the system's " "identity." msgstr "" -#: library/sys.rst:1576 +#: library/sys.rst:1594 msgid "" "Name of the platform-specific library directory. It is used to build the " "path of standard library and the paths of installed extension modules." msgstr "" -#: library/sys.rst:1579 +#: library/sys.rst:1597 msgid "" "It is equal to ``\"lib\"`` on most platforms. On Fedora and SuSE, it is " "equal to ``\"lib64\"`` on 64-bit platforms which gives the following ``sys." "path`` paths (where ``X.Y`` is the Python ``major.minor`` version):" msgstr "" -#: library/sys.rst:1583 +#: library/sys.rst:1601 msgid "" "``/usr/lib64/pythonX.Y/``: Standard library (like ``os.py`` of the :mod:`os` " "module)" msgstr "" -#: library/sys.rst:1585 +#: library/sys.rst:1603 msgid "" "``/usr/lib64/pythonX.Y/lib-dynload/``: C extension modules of the standard " "library (like the :mod:`errno` module, the exact filename is platform " "specific)" msgstr "" -#: library/sys.rst:1588 +#: library/sys.rst:1606 msgid "" "``/usr/lib/pythonX.Y/site-packages/`` (always use ``lib``, not :data:`sys." "platlibdir`): Third-party modules" msgstr "" -#: library/sys.rst:1590 +#: library/sys.rst:1608 msgid "" "``/usr/lib64/pythonX.Y/site-packages/``: C extension modules of third-party " "packages" msgstr "" -#: library/sys.rst:1598 +#: library/sys.rst:1616 msgid "" "A string giving the site-specific directory prefix where the platform " "independent Python files are installed; on Unix, the default is :file:`/usr/" @@ -2035,7 +2055,7 @@ msgid "" "derived paths." msgstr "" -#: library/sys.rst:1606 +#: library/sys.rst:1624 msgid "" "If a :ref:`virtual environment ` is in effect, this :data:`prefix` " "will point to the virtual environment. The value for the Python installation " @@ -2043,7 +2063,7 @@ msgid "" "init-virtual-environments` for more information." msgstr "" -#: library/sys.rst:1630 +#: library/sys.rst:1648 msgid "" "Strings specifying the primary and secondary prompt of the interpreter. " "These are only defined if the interpreter is in interactive mode. Their " @@ -2053,7 +2073,7 @@ msgid "" "used to implement a dynamic prompt." msgstr "" -#: library/sys.rst:1640 +#: library/sys.rst:1658 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 " @@ -2064,14 +2084,14 @@ msgid "" "g. :const:`os.RTLD_LAZY`)." msgstr "" -#: library/sys.rst:1652 +#: library/sys.rst:1670 msgid "" "Set the :ref:`integer string conversion length limitation " "` used by this interpreter. See also :func:" "`get_int_max_str_digits`." msgstr "" -#: library/sys.rst:1664 +#: library/sys.rst:1682 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 " @@ -2086,14 +2106,14 @@ msgid "" "in the profile function will cause itself unset." msgstr "" -#: library/sys.rst:1676 +#: library/sys.rst:1694 msgid "" "The same tracing mechanism is used for :func:`!setprofile` as :func:" "`settrace`. To trace calls with :func:`!setprofile` inside a tracing " "function (e.g. in a debugger breakpoint), see :func:`call_tracing`." msgstr "" -#: library/sys.rst:1680 +#: library/sys.rst:1698 msgid "" "Profile functions should have three arguments: *frame*, *event*, and *arg*. " "*frame* is the current stack frame. *event* is a string: ``'call'``, " @@ -2101,71 +2121,71 @@ msgid "" "depends on the event type." msgstr "" -#: library/sys.rst:1772 +#: library/sys.rst:1790 msgid "The events have the following meaning:" msgstr "" -#: library/sys.rst:1774 +#: library/sys.rst:1792 msgid "``'call'``" msgstr "" -#: library/sys.rst:1688 +#: library/sys.rst:1706 msgid "" "A function is called (or some other code block entered). The profile " "function is called; *arg* is ``None``." msgstr "" -#: library/sys.rst:1789 +#: library/sys.rst:1807 msgid "``'return'``" msgstr "" -#: library/sys.rst:1692 +#: library/sys.rst:1710 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 "" -#: library/sys.rst:1696 +#: library/sys.rst:1714 msgid "``'c_call'``" msgstr "" -#: library/sys.rst:1697 +#: library/sys.rst:1715 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 "" -#: library/sys.rst:1700 +#: library/sys.rst:1718 msgid "``'c_return'``" msgstr "" -#: library/sys.rst:1701 +#: library/sys.rst:1719 msgid "A C function has returned. *arg* is the C function object." msgstr "" -#: library/sys.rst:1703 +#: library/sys.rst:1721 msgid "``'c_exception'``" msgstr "" -#: library/sys.rst:1704 +#: library/sys.rst:1722 msgid "A C function has raised an exception. *arg* is the C function object." msgstr "" -#: library/sys.rst:1706 +#: library/sys.rst:1724 msgid "" "Raises an :ref:`auditing event ` ``sys.setprofile`` with no " "arguments." msgstr "" -#: library/sys.rst:1711 +#: library/sys.rst:1729 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 "" -#: library/sys.rst:1715 +#: library/sys.rst:1733 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 " @@ -2173,19 +2193,19 @@ msgid "" "because a too-high limit can lead to a crash." msgstr "" -#: library/sys.rst:1720 +#: library/sys.rst:1738 msgid "" "If the new limit is too low at the current recursion depth, a :exc:" "`RecursionError` exception is raised." msgstr "" -#: library/sys.rst:1723 +#: library/sys.rst:1741 msgid "" "A :exc:`RecursionError` exception is now raised if the new limit is too low " "at the current recursion depth." msgstr "" -#: library/sys.rst:1730 +#: library/sys.rst:1748 msgid "" "Set the interpreter's thread switch interval (in seconds). This floating-" "point value determines the ideal duration of the \"timeslices\" allocated to " @@ -2196,7 +2216,7 @@ msgid "" "scheduler." msgstr "" -#: library/sys.rst:1747 +#: library/sys.rst:1765 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 " @@ -2205,15 +2225,15 @@ msgid "" "`threading.settrace`." msgstr "" -#: library/sys.rst:1752 +#: library/sys.rst:1770 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." +"*frame* is the :ref:`current stack frame `. *event* is a " +"string: ``'call'``, ``'line'``, ``'return'``, ``'exception'`` or " +"``'opcode'``. *arg* depends on the event type." msgstr "" -#: library/sys.rst:1757 +#: library/sys.rst:1775 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 " @@ -2221,36 +2241,36 @@ msgid "" "traced." msgstr "" -#: library/sys.rst:1762 +#: library/sys.rst:1780 msgid "" "The local trace function should return a reference to itself, or to another " "function which would then be used as the local trace function for the scope." msgstr "" -#: library/sys.rst:1765 +#: library/sys.rst:1783 msgid "" "If there is any error occurred in the trace function, it will be unset, just " "like ``settrace(None)`` is called." msgstr "" -#: library/sys.rst:1769 +#: library/sys.rst:1787 msgid "" "Tracing is disabled while calling the trace function (e.g. a function set " "by :func:`!settrace`). For recursive tracing see :func:`call_tracing`." msgstr "" -#: library/sys.rst:1775 +#: library/sys.rst:1793 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 "" -#: library/sys.rst:1779 +#: library/sys.rst:1797 msgid "``'line'``" msgstr "" -#: library/sys.rst:1780 +#: library/sys.rst:1798 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``; " @@ -2260,7 +2280,7 @@ msgid "" "to :const:`False` on that :ref:`frame `." msgstr "" -#: library/sys.rst:1790 +#: library/sys.rst:1808 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 " @@ -2268,22 +2288,22 @@ msgid "" "return value is ignored." msgstr "" -#: library/sys.rst:1795 +#: library/sys.rst:1813 msgid "``'exception'``" msgstr "" -#: library/sys.rst:1796 +#: library/sys.rst:1814 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 "" -#: library/sys.rst:1800 +#: library/sys.rst:1818 msgid "``'opcode'``" msgstr "" -#: library/sys.rst:1801 +#: library/sys.rst:1819 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 " @@ -2293,13 +2313,13 @@ msgid "" "objects>`." msgstr "" -#: library/sys.rst:1808 +#: library/sys.rst:1826 msgid "" "Note that as an exception is propagated down the chain of callers, an " "``'exception'`` event is generated at each level." msgstr "" -#: library/sys.rst:1811 +#: library/sys.rst:1829 msgid "" "For more fine-grained usage, it's possible to set a trace function by " "assigning ``frame.f_trace = tracefunc`` explicitly, rather than relying on " @@ -2313,17 +2333,17 @@ msgid "" "on each frame)." msgstr "" -#: library/sys.rst:1822 +#: library/sys.rst:1840 msgid "For more information on code and frame objects, refer to :ref:`types`." msgstr "" -#: library/sys.rst:1824 +#: library/sys.rst:1842 msgid "" "Raises an :ref:`auditing event ` ``sys.settrace`` with no " "arguments." msgstr "" -#: library/sys.rst:1828 +#: library/sys.rst:1846 msgid "" "The :func:`settrace` function is intended only for implementing debuggers, " "profilers, coverage tools and the like. Its behavior is part of the " @@ -2331,13 +2351,13 @@ msgid "" "thus may not be available in all Python implementations." msgstr "" -#: library/sys.rst:1835 +#: library/sys.rst:1853 msgid "" "``'opcode'`` event type added; :attr:`~frame.f_trace_lines` and :attr:" "`~frame.f_trace_opcodes` attributes added to frames" msgstr "" -#: library/sys.rst:1840 +#: library/sys.rst:1858 msgid "" "Accepts two optional keyword arguments which are callables that accept an :" "term:`asynchronous generator iterator` as an argument. The *firstiter* " @@ -2346,32 +2366,32 @@ msgid "" "about to be garbage collected." msgstr "" -#: library/sys.rst:1846 +#: library/sys.rst:1864 msgid "" "Raises an :ref:`auditing event ` ``sys." "set_asyncgen_hooks_firstiter`` with no arguments." msgstr "" -#: library/sys.rst:1848 +#: library/sys.rst:1866 msgid "" "Raises an :ref:`auditing event ` ``sys." "set_asyncgen_hooks_finalizer`` with no arguments." msgstr "" -#: library/sys.rst:1850 +#: library/sys.rst:1868 msgid "" "Two auditing events are raised because the underlying API consists of two " "calls, each of which must raise its own event." msgstr "" -#: library/sys.rst:1853 +#: library/sys.rst:1871 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 "" -#: library/sys.rst:1865 +#: library/sys.rst:1883 msgid "" "Allows enabling or disabling coroutine origin tracking. When enabled, the " "``cr_origin`` attribute on coroutine objects will contain a tuple of " @@ -2380,53 +2400,53 @@ msgid "" "disabled, ``cr_origin`` will be ``None``." msgstr "" -#: library/sys.rst:1872 +#: library/sys.rst:1890 msgid "" "To enable, pass a *depth* value greater than zero; this sets the number of " "frames whose information will be captured. To disable, set *depth* to zero." msgstr "" -#: library/sys.rst:1876 +#: library/sys.rst:1894 msgid "This setting is thread-specific." msgstr "" -#: library/sys.rst:1886 +#: library/sys.rst:1904 msgid "" "Activate the stack profiler trampoline *backend*. The only supported backend " "is ``\"perf\"``." msgstr "" -#: library/sys.rst:1889 +#: library/sys.rst:1907 msgid "Stack trampolines cannot be activated if the JIT is active." msgstr "" -#: library/sys.rst:1897 +#: library/sys.rst:1915 msgid ":ref:`perf_profiling`" msgstr "" -#: library/sys.rst:1898 +#: library/sys.rst:1916 msgid "https://perf.wiki.kernel.org" msgstr "" -#: library/sys.rst:1902 +#: library/sys.rst:1920 msgid "Deactivate the current stack profiler trampoline backend." msgstr "" -#: library/sys.rst:1904 +#: library/sys.rst:1922 msgid "If no stack profiler is activated, this function has no effect." msgstr "" -#: library/sys.rst:1912 +#: library/sys.rst:1930 msgid "Return ``True`` if a stack profiler trampoline is active." msgstr "" -#: library/sys.rst:1921 +#: library/sys.rst:1939 msgid "" "Executes *script*, a file containing Python code in the remote process with " "the given *pid*." msgstr "" -#: library/sys.rst:1924 +#: library/sys.rst:1942 msgid "" "This function returns immediately, and the code will be executed by the " "target process's main thread at the next available opportunity, similarly to " @@ -2436,7 +2456,7 @@ msgid "" "been overwritten." msgstr "" -#: library/sys.rst:1931 +#: library/sys.rst:1949 msgid "" "The remote process must be running a CPython interpreter of the same major " "and minor version as the local process. If either the local or remote " @@ -2444,81 +2464,90 @@ msgid "" "local and remote interpreters must be the same exact version." msgstr "" -#: library/sys.rst:1938 +#: library/sys.rst:1956 +msgid "" +"When the code is executed in the remote process, an :ref:`auditing event " +"` ``sys.remote_exec`` is raised with the *pid* and the path to the " +"script file. This event is raised in the process that called :func:`sys." +"remote_exec`." +msgstr "" + +#: library/sys.rst:1963 msgid "" "When the script is executed in the remote process, an :ref:`auditing event " -"` ``sys.remote_debugger_script`` is raised with the path in the " -"remote process." +"` ``cpython.remote_debugger_script`` is raised with the path in " +"the remote process. This event is raised in the remote process, not the one " +"that called :func:`sys.remote_exec`." msgstr "" -#: library/sys.rst:1949 +#: library/sys.rst:1976 msgid "" "Changes the :term:`filesystem encoding and error handler` to 'mbcs' and " "'replace' respectively, for consistency with versions of Python prior to 3.6." msgstr "" -#: library/sys.rst:1953 +#: library/sys.rst:1980 msgid "" "This is equivalent to defining the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " "environment variable before launching Python." msgstr "" -#: library/sys.rst:1956 +#: library/sys.rst:1983 msgid "" "See also :func:`sys.getfilesystemencoding` and :func:`sys." "getfilesystemencodeerrors`." msgstr "" -#: library/sys.rst:1962 +#: library/sys.rst:1989 msgid "" "Changing the filesystem encoding after Python startup is risky because the " "old fsencoding or paths encoded by the old fsencoding may be cached " "somewhere. Use :envvar:`PYTHONLEGACYWINDOWSFSENCODING` instead." msgstr "" -#: library/sys.rst:1966 +#: library/sys.rst:1993 msgid "See :pep:`529` for more details." msgstr "" -#: library/sys.rst:1969 +#: library/sys.rst:1996 msgid "Use :envvar:`PYTHONLEGACYWINDOWSFSENCODING` instead." msgstr "" -#: library/sys.rst:1976 +#: library/sys.rst:2003 msgid "" ":term:`File objects ` used by the interpreter for standard " "input, output and errors:" msgstr "" -#: library/sys.rst:1979 +#: library/sys.rst:2006 msgid "" "``stdin`` is used for all interactive input (including calls to :func:" "`input`);" msgstr "" -#: library/sys.rst:1981 +#: library/sys.rst:2008 msgid "" "``stdout`` is used for the output of :func:`print` and :term:`expression` " "statements and for the prompts of :func:`input`;" msgstr "" -#: library/sys.rst:1983 +#: library/sys.rst:2010 msgid "The interpreter's own prompts and its error messages go to ``stderr``." msgstr "" -#: library/sys.rst:1985 +#: library/sys.rst:2012 msgid "" "These streams are regular :term:`text files ` like those returned " "by the :func:`open` function. Their parameters are chosen as follows:" msgstr "" -#: library/sys.rst:1989 +#: library/sys.rst:2016 msgid "" "The encoding and error handling are is initialized from :c:member:`PyConfig." "stdio_encoding` and :c:member:`PyConfig.stdio_errors`." msgstr "" -#: library/sys.rst:1992 +#: library/sys.rst:2019 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 " @@ -2529,14 +2558,14 @@ msgid "" "initially attached to a console." msgstr "" -#: library/sys.rst:2001 +#: library/sys.rst:2028 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 "" -#: library/sys.rst:2006 +#: library/sys.rst:2033 msgid "" "Under all platforms, you can override the character encoding by setting the :" "envvar:`PYTHONIOENCODING` environment variable before starting Python or by " @@ -2545,7 +2574,7 @@ msgid "" "only applies when :envvar:`PYTHONLEGACYWINDOWSSTDIO` is also set." msgstr "" -#: library/sys.rst:2013 +#: library/sys.rst:2040 msgid "" "When interactive, the ``stdout`` stream is line-buffered. Otherwise, it is " "block-buffered like regular text files. The ``stderr`` stream is line-" @@ -2554,19 +2583,19 @@ msgid "" "`PYTHONUNBUFFERED` environment variable." msgstr "" -#: library/sys.rst:2019 +#: library/sys.rst:2046 msgid "" "Non-interactive ``stderr`` is now line-buffered instead of fully buffered." msgstr "" -#: library/sys.rst:2025 +#: library/sys.rst:2052 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 "" -#: library/sys.rst:2029 +#: library/sys.rst:2056 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 " @@ -2574,7 +2603,7 @@ msgid "" "support the :attr:`!buffer` attribute." msgstr "" -#: library/sys.rst:2039 +#: library/sys.rst:2066 msgid "" "These objects contain the original values of ``stdin``, ``stderr`` and " "``stdout`` at the start of the program. They are used during finalization, " @@ -2582,7 +2611,7 @@ msgid "" "``sys.std*`` object has been redirected." msgstr "" -#: library/sys.rst:2044 +#: library/sys.rst:2071 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, " @@ -2590,7 +2619,7 @@ msgid "" "before replacing it, and restore the saved object." msgstr "" -#: library/sys.rst:2050 +#: library/sys.rst:2077 msgid "" "Under some conditions ``stdin``, ``stdout`` and ``stderr`` as well as the " "original values ``__stdin__``, ``__stdout__`` and ``__stderr__`` can be " @@ -2598,12 +2627,12 @@ msgid "" "to a console and Python apps started with :program:`pythonw`." msgstr "" -#: library/sys.rst:2058 +#: library/sys.rst:2085 msgid "" "A frozenset of strings containing the names of standard library modules." msgstr "" -#: library/sys.rst:2060 +#: library/sys.rst:2087 msgid "" "It is the same on all platforms. Modules which are not available on some " "platforms and modules disabled at Python build are also listed. All module " @@ -2611,7 +2640,7 @@ msgid "" "modules are excluded." msgstr "" -#: library/sys.rst:2065 +#: library/sys.rst:2092 msgid "" "For packages, only the main package is listed: sub-packages and sub-modules " "are not listed. For example, the ``email`` package is listed, but the " @@ -2619,60 +2648,60 @@ msgid "" "listed." msgstr "" -#: library/sys.rst:2070 +#: library/sys.rst:2097 msgid "See also the :data:`sys.builtin_module_names` list." msgstr "" -#: library/sys.rst:2077 +#: library/sys.rst:2104 msgid "" "A :term:`named tuple` holding information about the thread implementation." msgstr "" -#: library/sys.rst:2082 +#: library/sys.rst:2109 msgid "The name of the thread implementation:" msgstr "" -#: library/sys.rst:2084 +#: library/sys.rst:2111 msgid "``\"nt\"``: Windows threads" msgstr "" -#: library/sys.rst:2085 +#: library/sys.rst:2112 msgid "``\"pthread\"``: POSIX threads" msgstr "" -#: library/sys.rst:2086 +#: library/sys.rst:2113 msgid "" "``\"pthread-stubs\"``: stub POSIX threads (on WebAssembly platforms without " "threading support)" msgstr "" -#: library/sys.rst:2088 +#: library/sys.rst:2115 msgid "``\"solaris\"``: Solaris threads" msgstr "" -#: library/sys.rst:2092 +#: library/sys.rst:2119 msgid "The name of the lock implementation:" msgstr "" -#: library/sys.rst:2094 +#: library/sys.rst:2121 msgid "``\"semaphore\"``: a lock uses a semaphore" msgstr "" -#: library/sys.rst:2095 +#: library/sys.rst:2122 msgid "``\"mutex+cond\"``: a lock uses a mutex and a condition variable" msgstr "" -#: library/sys.rst:2096 +#: library/sys.rst:2123 msgid "``None`` if this information is unknown" msgstr "" -#: library/sys.rst:2100 +#: library/sys.rst:2127 msgid "" "The name and version of the thread library. It is a string, or ``None`` if " "this information is unknown." msgstr "" -#: library/sys.rst:2108 +#: library/sys.rst:2135 msgid "" "When this variable is set to an integer value, it determines the maximum " "number of levels of traceback information printed when an unhandled " @@ -2681,73 +2710,73 @@ msgid "" "are printed." msgstr "" -#: library/sys.rst:2116 +#: library/sys.rst:2143 msgid "Handle an unraisable exception." msgstr "" -#: library/sys.rst:2118 +#: library/sys.rst:2145 msgid "" "Called when an exception has occurred but there is no way for Python to " "handle it. For example, when a destructor raises an exception or during " "garbage collection (:func:`gc.collect`)." msgstr "" -#: library/sys.rst:2122 +#: library/sys.rst:2149 msgid "The *unraisable* argument has the following attributes:" msgstr "" -#: library/sys.rst:2124 +#: library/sys.rst:2151 msgid ":attr:`!exc_type`: Exception type." msgstr "" -#: library/sys.rst:2125 +#: library/sys.rst:2152 msgid ":attr:`!exc_value`: Exception value, can be ``None``." msgstr "" -#: library/sys.rst:2126 +#: library/sys.rst:2153 msgid ":attr:`!exc_traceback`: Exception traceback, can be ``None``." msgstr "" -#: library/sys.rst:2127 +#: library/sys.rst:2154 msgid ":attr:`!err_msg`: Error message, can be ``None``." msgstr "" -#: library/sys.rst:2128 +#: library/sys.rst:2155 msgid ":attr:`!object`: Object causing the exception, can be ``None``." msgstr "" -#: library/sys.rst:2130 +#: library/sys.rst:2157 msgid "" "The default hook formats :attr:`!err_msg` and :attr:`!object` as: " "``f'{err_msg}: {object!r}'``; use \"Exception ignored in\" error message if :" "attr:`!err_msg` is ``None``." msgstr "" -#: library/sys.rst:2134 +#: library/sys.rst:2161 msgid "" ":func:`sys.unraisablehook` can be overridden to control how unraisable " "exceptions are handled." msgstr "" -#: library/sys.rst:2139 +#: library/sys.rst:2166 msgid ":func:`excepthook` which handles uncaught exceptions." msgstr "" -#: library/sys.rst:2143 +#: library/sys.rst:2170 msgid "" "Storing :attr:`!exc_value` using a custom hook can create a reference cycle. " "It should be cleared explicitly to break the reference cycle when the " "exception is no longer needed." msgstr "" -#: library/sys.rst:2147 +#: library/sys.rst:2174 msgid "" "Storing :attr:`!object` using a custom hook can resurrect it if it is set to " "an object which is being finalized. Avoid storing :attr:`!object` after the " "custom hook completes to avoid resurrecting objects." msgstr "" -#: library/sys.rst:2153 +#: library/sys.rst:2180 msgid "" "Raise an auditing event ``sys.unraisablehook`` with arguments *hook*, " "*unraisable* when an exception that cannot be handled occurs. The " @@ -2755,7 +2784,7 @@ msgid "" "hook has been set, *hook* may be ``None``." msgstr "" -#: library/sys.rst:2162 +#: library/sys.rst:2189 msgid "" "A string containing the version number of the Python interpreter plus " "additional information on the build number and compiler used. This string " @@ -2764,13 +2793,19 @@ msgid "" "functions provided by the :mod:`platform` module." msgstr "" -#: library/sys.rst:2171 +#: library/sys.rst:2198 +msgid "" +"The C API version, equivalent to the C macro :c:macro:`PYTHON_API_VERSION`. " +"Defined for backwards compatibility." +msgstr "" + +#: library/sys.rst:2201 msgid "" -"The C API version for this interpreter. Programmers may find this useful " -"when debugging version conflicts between Python and extension modules." +"Currently, this constant is not updated in new Python versions, and is not " +"useful for versioning. This may change in the future." msgstr "" -#: library/sys.rst:2177 +#: library/sys.rst:2207 msgid "" "A tuple containing the five components of the version number: *major*, " "*minor*, *micro*, *releaselevel*, and *serial*. All values except " @@ -2781,18 +2816,18 @@ msgid "" "version_info.major`` and so on." msgstr "" -#: library/sys.rst:2185 +#: library/sys.rst:2215 msgid "Added named component attributes." msgstr "" -#: library/sys.rst:2190 +#: library/sys.rst:2220 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 "" -#: library/sys.rst:2197 +#: library/sys.rst:2227 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 " @@ -2801,20 +2836,20 @@ msgid "" "has no effect on the registry keys used by Python." msgstr "" -#: library/sys.rst:2209 +#: library/sys.rst:2239 msgid "" "Namespace containing functions and constants for register callbacks and " "controlling monitoring events. See :mod:`sys.monitoring` for details." msgstr "" -#: library/sys.rst:2215 +#: library/sys.rst:2245 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 "" -#: library/sys.rst:2219 +#: library/sys.rst:2249 msgid "" "$ ./python -Xa=b -Xc\n" "Python 3.2a3+ (py3k, Oct 16 2010, 20:14:50)\n" @@ -2826,18 +2861,18 @@ msgid "" "{'a': 'b', 'c': True}" msgstr "" -#: library/sys.rst:2231 +#: library/sys.rst:2261 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 "" -#: library/sys.rst:2239 +#: library/sys.rst:2269 msgid "Citations" msgstr "" -#: library/sys.rst:2240 +#: library/sys.rst:2270 msgid "" "ISO/IEC 9899:1999. \"Programming languages -- C.\" A public draft of this " "standard is available at https://www.open-std.org/jtc1/sc22/wg14/www/docs/" @@ -2856,50 +2891,50 @@ msgstr "" msgid "traceback" msgstr "" -#: library/sys.rst:1660 +#: library/sys.rst:1678 msgid "profile function" msgstr "" -#: library/sys.rst:1660 +#: library/sys.rst:1678 msgid "profiler" msgstr "" -#: library/sys.rst:1743 +#: library/sys.rst:1761 msgid "trace function" msgstr "" -#: library/sys.rst:1743 +#: library/sys.rst:1761 msgid "debugger" msgstr "" -#: library/sys.rst:1472 +#: library/sys.rst:1490 msgid "module" msgstr "" -#: library/sys.rst:1472 +#: library/sys.rst:1490 msgid "search" msgstr "" -#: library/sys.rst:1472 +#: library/sys.rst:1490 msgid "path" msgstr "" -#: library/sys.rst:1624 +#: library/sys.rst:1642 msgid "interpreter prompts" msgstr "" -#: library/sys.rst:1624 +#: library/sys.rst:1642 msgid "prompts, interpreter" msgstr "" -#: library/sys.rst:1624 +#: library/sys.rst:1642 msgid ">>>" msgstr "" -#: library/sys.rst:1624 +#: library/sys.rst:1642 msgid "interpreter prompt" msgstr "" -#: library/sys.rst:1624 +#: library/sys.rst:1642 msgid "..." msgstr "" diff --git a/library/sys_path_init.po b/library/sys_path_init.po index f3fd2bd5..dfe69f95 100644 --- a/library/sys_path_init.po +++ b/library/sys_path_init.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/sysconfig.po b/library/sysconfig.po index 698835a6..94ee588b 100644 --- a/library/sysconfig.po +++ b/library/sysconfig.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -626,99 +626,87 @@ msgstr "" msgid "Examples of returned values:" msgstr "" -#: library/sysconfig.rst:385 -msgid "linux-i586" -msgstr "" - #: library/sysconfig.rst:386 -msgid "linux-alpha (?)" +msgid "Windows:" msgstr "" -#: library/sysconfig.rst:387 -msgid "solaris-2.6-sun4u" +#: library/sysconfig.rst:388 +msgid "win-amd64 (64-bit Windows on AMD64, aka x86_64, Intel64, and EM64T)" msgstr "" #: library/sysconfig.rst:389 -msgid "Windows will return one of:" +msgid "win-arm64 (64-bit Windows on ARM64, aka AArch64)" msgstr "" -#: library/sysconfig.rst:391 -msgid "win-amd64 (64-bit Windows on AMD64, aka x86_64, Intel64, and EM64T)" +#: library/sysconfig.rst:390 +msgid "win32 (all others - specifically, sys.platform is returned)" msgstr "" #: library/sysconfig.rst:392 -msgid "win-arm64 (64-bit Windows on ARM64, aka AArch64)" +msgid "POSIX based OS:" msgstr "" -#: library/sysconfig.rst:393 -msgid "win32 (all others - specifically, sys.platform is returned)" +#: library/sysconfig.rst:394 +msgid "linux-x86_64" msgstr "" #: library/sysconfig.rst:395 -msgid "macOS can return:" +msgid "macosx-15.5-arm64" msgstr "" -#: library/sysconfig.rst:397 -msgid "macosx-10.6-ppc" +#: library/sysconfig.rst:396 +msgid "macosx-26.0-universal2 (macOS on Apple Silicon or Intel)" msgstr "" -#: library/sysconfig.rst:398 -msgid "macosx-10.4-ppc64" +#: library/sysconfig.rst:397 +msgid "android-24-arm64_v8a" msgstr "" #: library/sysconfig.rst:399 -msgid "macosx-10.3-i386" -msgstr "" - -#: library/sysconfig.rst:400 -msgid "macosx-10.4-fat" -msgstr "" - -#: library/sysconfig.rst:402 msgid "" "For other non-POSIX platforms, currently just returns :data:`sys.platform`." msgstr "" -#: library/sysconfig.rst:407 +#: library/sysconfig.rst:404 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 "" -#: library/sysconfig.rst:414 +#: library/sysconfig.rst:411 msgid "Parse a :file:`config.h`\\-style file." msgstr "" -#: library/sysconfig.rst:416 +#: library/sysconfig.rst:413 msgid "" "*fp* is a file-like object pointing to the :file:`config.h`\\-like file." msgstr "" -#: library/sysconfig.rst:418 +#: library/sysconfig.rst:415 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 "" -#: library/sysconfig.rst:425 +#: library/sysconfig.rst:422 msgid "Return the path of :file:`pyconfig.h`." msgstr "" -#: library/sysconfig.rst:429 +#: library/sysconfig.rst:426 msgid "Return the path of :file:`Makefile`." msgstr "" -#: library/sysconfig.rst:435 +#: library/sysconfig.rst:432 msgid "Command-line usage" msgstr "" -#: library/sysconfig.rst:437 +#: library/sysconfig.rst:434 msgid "You can use :mod:`sysconfig` as a script with Python's *-m* option:" msgstr "" -#: library/sysconfig.rst:439 +#: library/sysconfig.rst:436 msgid "" "$ python -m sysconfig\n" "Platform: \"macosx-10.4-i386\"\n" @@ -743,7 +731,7 @@ msgid "" " ..." msgstr "" -#: library/sysconfig.rst:463 +#: library/sysconfig.rst:460 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:" diff --git a/library/syslog.po b/library/syslog.po index 94b895be..c63d6ba5 100644 --- a/library/syslog.po +++ b/library/syslog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/tabnanny.po b/library/tabnanny.po index 7ebb27af..31a2366f 100644 --- a/library/tabnanny.po +++ b/library/tabnanny.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/tarfile.po b/library/tarfile.po index 23c660be..da586cd6 100644 --- a/library/tarfile.po +++ b/library/tarfile.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,44 +39,52 @@ msgstr "" #: library/tarfile.rst:21 msgid "" -"reads and writes :mod:`gzip`, :mod:`bz2` and :mod:`lzma` compressed archives " -"if the respective modules are available." +"reads and writes :mod:`gzip`, :mod:`bz2`, :mod:`compression.zstd`, and :mod:" +"`lzma` compressed archives if the respective modules are available." msgstr "" -#: library/tarfile.rst:24 +#: library/tarfile.rst:27 +msgid "" +"If any of these :term:`optional modules ` are missing from " +"your copy of CPython, look for documentation from your distributor (that is, " +"whoever provided Python to you). If you are the distributor, see :ref:" +"`optional-module-requirements`." +msgstr "" + +#: library/tarfile.rst:32 msgid "read/write support for the POSIX.1-1988 (ustar) format." msgstr "" -#: library/tarfile.rst:26 +#: library/tarfile.rst:34 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 "" -#: library/tarfile.rst:30 +#: library/tarfile.rst:38 msgid "read/write support for the POSIX.1-2001 (pax) format." msgstr "" -#: library/tarfile.rst:32 +#: library/tarfile.rst:40 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 "" -#: library/tarfile.rst:36 +#: library/tarfile.rst:44 msgid "Added support for :mod:`lzma` compression." msgstr "" -#: library/tarfile.rst:39 +#: library/tarfile.rst:47 msgid "" "Archives are extracted using a :ref:`filter `, " "which makes it possible to either limit surprising/dangerous features, or to " "acknowledge that they are expected and the archive is fully trusted." msgstr "" -#: library/tarfile.rst:44 +#: library/tarfile.rst:52 msgid "" "Set the default extraction filter to :func:`data `, which " "disallows some dangerous features such as links to absolute paths or paths " @@ -84,150 +92,180 @@ msgid "" "to :func:`fully_trusted `." msgstr "" -#: library/tarfile.rst:52 +#: library/tarfile.rst:60 +msgid "Added support for Zstandard compression using :mod:`compression.zstd`." +msgstr "" + +#: library/tarfile.rst:64 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 "" -#: library/tarfile.rst:56 +#: library/tarfile.rst:68 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 "" -#: library/tarfile.rst:60 +#: library/tarfile.rst:72 msgid "mode" msgstr "" -#: library/tarfile.rst:60 +#: library/tarfile.rst:72 msgid "action" msgstr "" -#: library/tarfile.rst:62 -msgid "``'r' or 'r:*'``" +#: library/tarfile.rst:74 +msgid "``'r'`` or ``'r:*'``" msgstr "" -#: library/tarfile.rst:62 +#: library/tarfile.rst:74 msgid "Open for reading with transparent compression (recommended)." msgstr "" -#: library/tarfile.rst:65 +#: library/tarfile.rst:77 msgid "``'r:'``" msgstr "" -#: library/tarfile.rst:65 +#: library/tarfile.rst:77 msgid "Open for reading exclusively without compression." msgstr "" -#: library/tarfile.rst:68 +#: library/tarfile.rst:80 msgid "``'r:gz'``" msgstr "" -#: library/tarfile.rst:68 +#: library/tarfile.rst:80 msgid "Open for reading with gzip compression." msgstr "" -#: library/tarfile.rst:70 +#: library/tarfile.rst:82 msgid "``'r:bz2'``" msgstr "" -#: library/tarfile.rst:70 +#: library/tarfile.rst:82 msgid "Open for reading with bzip2 compression." msgstr "" -#: library/tarfile.rst:72 +#: library/tarfile.rst:84 msgid "``'r:xz'``" msgstr "" -#: library/tarfile.rst:72 +#: library/tarfile.rst:84 msgid "Open for reading with lzma compression." msgstr "" -#: library/tarfile.rst:74 +#: library/tarfile.rst:86 +msgid "``'r:zst'``" +msgstr "" + +#: library/tarfile.rst:86 +msgid "Open for reading with Zstandard compression." +msgstr "" + +#: library/tarfile.rst:88 msgid "``'x'`` or ``'x:'``" msgstr "" -#: library/tarfile.rst:74 +#: library/tarfile.rst:88 msgid "" "Create a tarfile exclusively without compression. Raise a :exc:" "`FileExistsError` exception if it already exists." msgstr "" -#: library/tarfile.rst:79 +#: library/tarfile.rst:93 msgid "``'x:gz'``" msgstr "" -#: library/tarfile.rst:79 +#: library/tarfile.rst:93 msgid "" "Create a tarfile with gzip compression. Raise a :exc:`FileExistsError` " "exception if it already exists." msgstr "" -#: library/tarfile.rst:83 +#: library/tarfile.rst:97 msgid "``'x:bz2'``" msgstr "" -#: library/tarfile.rst:83 +#: library/tarfile.rst:97 msgid "" "Create a tarfile with bzip2 compression. Raise a :exc:`FileExistsError` " "exception if it already exists." msgstr "" -#: library/tarfile.rst:87 +#: library/tarfile.rst:101 msgid "``'x:xz'``" msgstr "" -#: library/tarfile.rst:87 +#: library/tarfile.rst:101 msgid "" "Create a tarfile with lzma compression. Raise a :exc:`FileExistsError` " "exception if it already exists." msgstr "" -#: library/tarfile.rst:91 -msgid "``'a' or 'a:'``" +#: library/tarfile.rst:105 +msgid "``'x:zst'``" msgstr "" -#: library/tarfile.rst:91 +#: library/tarfile.rst:105 +msgid "" +"Create a tarfile with Zstandard compression. Raise a :exc:`FileExistsError` " +"exception if it already exists." +msgstr "" + +#: library/tarfile.rst:109 +msgid "``'a'`` or ``'a:'``" +msgstr "" + +#: library/tarfile.rst:109 msgid "" "Open for appending with no compression. The file is created if it does not " "exist." msgstr "" -#: library/tarfile.rst:94 -msgid "``'w' or 'w:'``" +#: library/tarfile.rst:112 +msgid "``'w'`` or ``'w:'``" msgstr "" -#: library/tarfile.rst:94 +#: library/tarfile.rst:112 msgid "Open for uncompressed writing." msgstr "" -#: library/tarfile.rst:96 +#: library/tarfile.rst:115 msgid "``'w:gz'``" msgstr "" -#: library/tarfile.rst:96 +#: library/tarfile.rst:115 msgid "Open for gzip compressed writing." msgstr "" -#: library/tarfile.rst:98 +#: library/tarfile.rst:117 msgid "``'w:bz2'``" msgstr "" -#: library/tarfile.rst:98 +#: library/tarfile.rst:117 msgid "Open for bzip2 compressed writing." msgstr "" -#: library/tarfile.rst:100 +#: library/tarfile.rst:119 msgid "``'w:xz'``" msgstr "" -#: library/tarfile.rst:100 +#: library/tarfile.rst:119 msgid "Open for lzma compressed writing." msgstr "" -#: library/tarfile.rst:103 +#: library/tarfile.rst:121 +msgid "``'w:zst'``" +msgstr "" + +#: library/tarfile.rst:121 +msgid "Open for Zstandard compressed writing." +msgstr "" + +#: library/tarfile.rst:124 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:" @@ -235,27 +273,38 @@ msgid "" "method is not supported, :exc:`CompressionError` is raised." msgstr "" -#: library/tarfile.rst:108 +#: library/tarfile.rst:129 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 "" -#: library/tarfile.rst:111 +#: library/tarfile.rst:132 msgid "" "For modes ``'w:gz'``, ``'x:gz'``, ``'w|gz'``, ``'w:bz2'``, ``'x:bz2'``, ``'w|" "bz2'``, :func:`tarfile.open` accepts the keyword argument *compresslevel* " "(default ``9``) to specify the compression level of the file." msgstr "" -#: library/tarfile.rst:115 +#: library/tarfile.rst:136 msgid "" "For modes ``'w:xz'``, ``'x:xz'`` and ``'w|xz'``, :func:`tarfile.open` " "accepts the keyword argument *preset* to specify the compression level of " "the file." msgstr "" -#: library/tarfile.rst:118 +#: library/tarfile.rst:139 +msgid "" +"For modes ``'w:zst'``, ``'x:zst'`` and ``'w|zst'``, :func:`tarfile.open` " +"accepts the keyword argument *level* to specify the compression level of the " +"file. The keyword argument *options* may also be passed, providing advanced " +"Zstandard compression parameters described by :class:`~compression.zstd." +"CompressionParameter`. The keyword argument *zstd_dict* can be passed to " +"provide a :class:`~compression.zstd.ZstdDict`, a Zstandard dictionary used " +"to improve compression of smaller amounts of data." +msgstr "" + +#: library/tarfile.rst:148 msgid "" "For special purposes, there is a second format for *mode*: ``'filemode|" "[compression]'``. :func:`tarfile.open` will return a :class:`TarFile` " @@ -269,189 +318,205 @@ msgid "" "random access, see :ref:`tar-examples`. The currently possible modes:" msgstr "" -#: library/tarfile.rst:132 +#: library/tarfile.rst:162 msgid "Mode" msgstr "" -#: library/tarfile.rst:132 +#: library/tarfile.rst:162 msgid "Action" msgstr "" -#: library/tarfile.rst:134 +#: library/tarfile.rst:164 msgid "``'r|*'``" msgstr "" -#: library/tarfile.rst:134 +#: library/tarfile.rst:164 msgid "Open a *stream* of tar blocks for reading with transparent compression." msgstr "" -#: library/tarfile.rst:137 +#: library/tarfile.rst:167 msgid "``'r|'``" msgstr "" -#: library/tarfile.rst:137 +#: library/tarfile.rst:167 msgid "Open a *stream* of uncompressed tar blocks for reading." msgstr "" -#: library/tarfile.rst:140 +#: library/tarfile.rst:170 msgid "``'r|gz'``" msgstr "" -#: library/tarfile.rst:140 +#: library/tarfile.rst:170 msgid "Open a gzip compressed *stream* for reading." msgstr "" -#: library/tarfile.rst:143 +#: library/tarfile.rst:173 msgid "``'r|bz2'``" msgstr "" -#: library/tarfile.rst:143 +#: library/tarfile.rst:173 msgid "Open a bzip2 compressed *stream* for reading." msgstr "" -#: library/tarfile.rst:146 +#: library/tarfile.rst:176 msgid "``'r|xz'``" msgstr "" -#: library/tarfile.rst:146 +#: library/tarfile.rst:176 msgid "Open an lzma compressed *stream* for reading." msgstr "" -#: library/tarfile.rst:149 +#: library/tarfile.rst:179 +msgid "``'r|zst'``" +msgstr "" + +#: library/tarfile.rst:179 +msgid "Open a Zstandard compressed *stream* for reading." +msgstr "" + +#: library/tarfile.rst:182 msgid "``'w|'``" msgstr "" -#: library/tarfile.rst:149 +#: library/tarfile.rst:182 msgid "Open an uncompressed *stream* for writing." msgstr "" -#: library/tarfile.rst:151 +#: library/tarfile.rst:184 msgid "``'w|gz'``" msgstr "" -#: library/tarfile.rst:151 +#: library/tarfile.rst:184 msgid "Open a gzip compressed *stream* for writing." msgstr "" -#: library/tarfile.rst:154 +#: library/tarfile.rst:187 msgid "``'w|bz2'``" msgstr "" -#: library/tarfile.rst:154 +#: library/tarfile.rst:187 msgid "Open a bzip2 compressed *stream* for writing." msgstr "" -#: library/tarfile.rst:157 +#: library/tarfile.rst:190 msgid "``'w|xz'``" msgstr "" -#: library/tarfile.rst:157 +#: library/tarfile.rst:190 msgid "Open an lzma compressed *stream* for writing." msgstr "" -#: library/tarfile.rst:440 +#: library/tarfile.rst:193 +msgid "``'w|zst'``" +msgstr "" + +#: library/tarfile.rst:193 +msgid "Open a Zstandard compressed *stream* for writing." +msgstr "" + +#: library/tarfile.rst:476 msgid "The ``'x'`` (exclusive creation) mode was added." msgstr "" -#: library/tarfile.rst:443 library/tarfile.rst:691 +#: library/tarfile.rst:479 library/tarfile.rst:727 msgid "The *name* parameter accepts a :term:`path-like object`." msgstr "" -#: library/tarfile.rst:167 +#: library/tarfile.rst:203 msgid "The *compresslevel* keyword argument also works for streams." msgstr "" -#: library/tarfile.rst:170 +#: library/tarfile.rst:206 msgid "The *preset* keyword argument also works for streams." msgstr "" -#: library/tarfile.rst:177 +#: library/tarfile.rst:213 msgid "" "Class for reading and writing tar archives. Do not use this class directly: " "use :func:`tarfile.open` instead. See :ref:`tarfile-objects`." msgstr "" -#: library/tarfile.rst:183 +#: library/tarfile.rst:219 msgid "" "Return :const:`True` if *name* is a tar archive file, that the :mod:" "`tarfile` module can read. *name* may be a :class:`str`, file, or file-like " "object." msgstr "" -#: library/tarfile.rst:186 +#: library/tarfile.rst:222 msgid "Support for file and file-like objects." msgstr "" -#: library/tarfile.rst:190 +#: library/tarfile.rst:226 msgid "The :mod:`tarfile` module defines the following exceptions:" msgstr "" -#: library/tarfile.rst:195 +#: library/tarfile.rst:231 msgid "Base class for all :mod:`tarfile` exceptions." msgstr "" -#: library/tarfile.rst:200 +#: library/tarfile.rst:236 msgid "" "Is raised when a tar archive is opened, that either cannot be handled by " "the :mod:`tarfile` module or is somehow invalid." msgstr "" -#: library/tarfile.rst:206 +#: library/tarfile.rst:242 msgid "" "Is raised when a compression method is not supported or when the data cannot " "be decoded properly." msgstr "" -#: library/tarfile.rst:212 +#: library/tarfile.rst:248 msgid "" "Is raised for the limitations that are typical for stream-like :class:" "`TarFile` objects." msgstr "" -#: library/tarfile.rst:218 +#: library/tarfile.rst:254 msgid "" "Is raised for *non-fatal* errors when using :meth:`TarFile.extract`, but " "only if :attr:`TarFile.errorlevel`\\ ``== 2``." msgstr "" -#: library/tarfile.rst:224 +#: library/tarfile.rst:260 msgid "Is raised by :meth:`TarInfo.frombuf` if the buffer it gets is invalid." msgstr "" -#: library/tarfile.rst:229 +#: library/tarfile.rst:265 msgid "" "Base class for members :ref:`refused ` by filters." msgstr "" -#: library/tarfile.rst:234 +#: library/tarfile.rst:270 msgid "" "Information about the member that the filter refused to extract, as :ref:" "`TarInfo `." msgstr "" -#: library/tarfile.rst:239 +#: library/tarfile.rst:275 msgid "Raised to refuse extracting a member with an absolute path." msgstr "" -#: library/tarfile.rst:243 +#: library/tarfile.rst:279 msgid "Raised to refuse extracting a member outside the destination directory." msgstr "" -#: library/tarfile.rst:247 +#: library/tarfile.rst:283 msgid "Raised to refuse extracting a special file (e.g. a device or pipe)." msgstr "" -#: library/tarfile.rst:251 +#: library/tarfile.rst:287 msgid "Raised to refuse extracting a symbolic link with an absolute path." msgstr "" -#: library/tarfile.rst:255 +#: library/tarfile.rst:291 msgid "" "Raised to refuse extracting a symbolic link pointing outside the destination " "directory." msgstr "" -#: library/tarfile.rst:260 +#: library/tarfile.rst:296 msgid "" "Raised to refuse emulating a link (hard or symbolic) by extracting another " "archive member, when that member would be rejected by the filter location. " @@ -459,124 +524,124 @@ msgid "" "as :attr:`!BaseException.__context__`." msgstr "" -#: library/tarfile.rst:268 +#: library/tarfile.rst:304 msgid "The following constants are available at the module level:" msgstr "" -#: library/tarfile.rst:272 +#: library/tarfile.rst:308 msgid "" "The default character encoding: ``'utf-8'`` on Windows, the value returned " "by :func:`sys.getfilesystemencoding` otherwise." msgstr "" -#: library/tarfile.rst:278 +#: library/tarfile.rst:314 msgid "A regular file :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:282 +#: library/tarfile.rst:318 msgid "A link (inside tarfile) :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:286 +#: library/tarfile.rst:322 msgid "A symbolic link :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:290 +#: library/tarfile.rst:326 msgid "A character special device :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:294 +#: library/tarfile.rst:330 msgid "A block special device :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:298 +#: library/tarfile.rst:334 msgid "A directory :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:302 +#: library/tarfile.rst:338 msgid "A FIFO special device :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:306 +#: library/tarfile.rst:342 msgid "A contiguous file :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:310 +#: library/tarfile.rst:346 msgid "A GNU tar longname :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:314 +#: library/tarfile.rst:350 msgid "A GNU tar longlink :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:318 +#: library/tarfile.rst:354 msgid "A GNU tar sparse file :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:321 +#: library/tarfile.rst:357 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 "" -#: library/tarfile.rst:328 +#: library/tarfile.rst:364 msgid "POSIX.1-1988 (ustar) format." msgstr "" -#: library/tarfile.rst:333 +#: library/tarfile.rst:369 msgid "GNU tar format." msgstr "" -#: library/tarfile.rst:338 +#: library/tarfile.rst:374 msgid "POSIX.1-2001 (pax) format." msgstr "" -#: library/tarfile.rst:343 +#: library/tarfile.rst:379 msgid "" "The default format for creating archives. This is currently :const:" "`PAX_FORMAT`." msgstr "" -#: library/tarfile.rst:345 +#: library/tarfile.rst:381 msgid "" "The default format for new archives was changed to :const:`PAX_FORMAT` from :" "const:`GNU_FORMAT`." msgstr "" -#: library/tarfile.rst:352 +#: library/tarfile.rst:388 msgid "Module :mod:`zipfile`" msgstr "" -#: library/tarfile.rst:353 +#: library/tarfile.rst:389 msgid "Documentation of the :mod:`zipfile` standard module." msgstr "" -#: library/tarfile.rst:355 +#: library/tarfile.rst:391 msgid ":ref:`archiving-operations`" msgstr "" -#: library/tarfile.rst:356 +#: library/tarfile.rst:392 msgid "" "Documentation of the higher-level archiving facilities provided by the " "standard :mod:`shutil` module." msgstr "" -#: library/tarfile.rst:359 +#: library/tarfile.rst:395 msgid "" "`GNU tar manual, Basic Tar Format `_" msgstr "" -#: library/tarfile.rst:360 +#: library/tarfile.rst:396 msgid "Documentation for tar archive files, including GNU tar extensions." msgstr "" -#: library/tarfile.rst:366 +#: library/tarfile.rst:402 msgid "TarFile Objects" msgstr "" -#: library/tarfile.rst:368 +#: library/tarfile.rst:404 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 " @@ -585,7 +650,7 @@ msgid "" "class:`TarInfo` object, see :ref:`tarinfo-objects` for details." msgstr "" -#: library/tarfile.rst:374 +#: library/tarfile.rst:410 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 " @@ -594,24 +659,24 @@ msgid "" "be closed. See the :ref:`tar-examples` section for a use case." msgstr "" -#: library/tarfile.rst:380 +#: library/tarfile.rst:416 msgid "Added support for the context management protocol." msgstr "" -#: library/tarfile.rst:385 +#: library/tarfile.rst:421 msgid "" "All following arguments are optional and can be accessed as instance " "attributes as well." msgstr "" -#: library/tarfile.rst:388 +#: library/tarfile.rst:424 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 "" -#: library/tarfile.rst:392 +#: library/tarfile.rst:428 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 " @@ -619,18 +684,18 @@ msgid "" "exist." msgstr "" -#: library/tarfile.rst:396 +#: library/tarfile.rst:432 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 "" -#: library/tarfile.rst:402 +#: library/tarfile.rst:438 msgid "*fileobj* is not closed, when :class:`TarFile` is closed." msgstr "" -#: library/tarfile.rst:404 +#: library/tarfile.rst:440 msgid "" "*format* controls the archive format for writing. It must be one of the " "constants :const:`USTAR_FORMAT`, :const:`GNU_FORMAT` or :const:`PAX_FORMAT` " @@ -638,20 +703,20 @@ msgid "" "detected, even if different formats are present in a single archive." msgstr "" -#: library/tarfile.rst:409 +#: library/tarfile.rst:445 msgid "" "The *tarinfo* argument can be used to replace the default :class:`TarInfo` " "class with a different one." msgstr "" -#: library/tarfile.rst:412 +#: library/tarfile.rst:448 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 "" -#: library/tarfile.rst:416 +#: library/tarfile.rst:452 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 " @@ -659,19 +724,19 @@ msgid "" "concatenated or damaged archives." msgstr "" -#: library/tarfile.rst:420 +#: library/tarfile.rst:456 msgid "" "*debug* can be set from ``0`` (no debug messages) up to ``3`` (all debug " "messages). The messages are written to ``sys.stderr``." msgstr "" -#: library/tarfile.rst:423 +#: library/tarfile.rst:459 msgid "" "*errorlevel* controls how extraction errors are handled, see :attr:`the " "corresponding attribute `." msgstr "" -#: library/tarfile.rst:426 +#: library/tarfile.rst:462 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 " @@ -679,57 +744,57 @@ msgid "" "ref:`tar-unicode` for in-depth information." msgstr "" -#: library/tarfile.rst:431 +#: library/tarfile.rst:467 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 "" -#: library/tarfile.rst:434 +#: library/tarfile.rst:470 msgid "" "If *stream* is set to :const:`True` then while reading the archive info " "about files in the archive are not cached, saving memory." msgstr "" -#: library/tarfile.rst:760 +#: library/tarfile.rst:796 msgid "Use ``'surrogateescape'`` as the default for the *errors* argument." msgstr "" -#: library/tarfile.rst:446 +#: library/tarfile.rst:482 msgid "Add the *stream* parameter." msgstr "" -#: library/tarfile.rst:451 +#: library/tarfile.rst:487 msgid "" "Alternative constructor. The :func:`tarfile.open` function is actually a " "shortcut to this classmethod." msgstr "" -#: library/tarfile.rst:457 +#: library/tarfile.rst:493 msgid "" "Return a :class:`TarInfo` object for member *name*. If *name* can not be " "found in the archive, :exc:`KeyError` is raised." msgstr "" -#: library/tarfile.rst:462 +#: library/tarfile.rst:498 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 "" -#: library/tarfile.rst:468 +#: library/tarfile.rst:504 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 "" -#: library/tarfile.rst:474 +#: library/tarfile.rst:510 msgid "" "Return the members as a list of their names. It has the same order as the " "list returned by :meth:`getmembers`." msgstr "" -#: library/tarfile.rst:480 +#: library/tarfile.rst:516 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 " @@ -737,18 +802,18 @@ msgid "" "given, it must be a subset of the list returned by :meth:`getmembers`." msgstr "" -#: library/tarfile.rst:485 +#: library/tarfile.rst:521 msgid "Added the *members* parameter." msgstr "" -#: library/tarfile.rst:491 +#: library/tarfile.rst:527 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 "" -#: library/tarfile.rst:498 +#: library/tarfile.rst:534 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 " @@ -760,14 +825,14 @@ msgid "" "fail." msgstr "" -#: library/tarfile.rst:506 +#: library/tarfile.rst:542 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 "" -#: library/tarfile.rst:510 +#: library/tarfile.rst:546 msgid "" "The *filter* argument specifies how ``members`` are modified or rejected " "before extraction. See :ref:`tarfile-extraction-filter` for details. It is " @@ -776,11 +841,11 @@ msgid "" "secure default (3.13 and lower)." msgstr "" -#: library/tarfile.rst:519 +#: library/tarfile.rst:555 msgid "Never extract archives from untrusted sources without prior inspection." msgstr "" -#: library/tarfile.rst:521 +#: library/tarfile.rst:557 msgid "" "Since Python 3.14, the default (:func:`data `) will prevent the " "most dangerous security issues. However, it will not prevent *all* " @@ -788,23 +853,23 @@ msgid "" "section for details." msgstr "" -#: library/tarfile.rst:563 +#: library/tarfile.rst:599 msgid "Added the *numeric_owner* parameter." msgstr "" -#: library/tarfile.rst:566 +#: library/tarfile.rst:602 msgid "The *path* parameter accepts a :term:`path-like object`." msgstr "" -#: library/tarfile.rst:569 library/tarfile.rst:653 +#: library/tarfile.rst:605 library/tarfile.rst:689 msgid "Added the *filter* parameter." msgstr "" -#: library/tarfile.rst:535 +#: library/tarfile.rst:571 msgid "The *filter* parameter now defaults to ``'data'``." msgstr "" -#: library/tarfile.rst:541 +#: library/tarfile.rst:577 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. " @@ -813,29 +878,29 @@ msgid "" "File attributes (owner, mtime, mode) are set unless *set_attrs* is false." msgstr "" -#: library/tarfile.rst:547 +#: library/tarfile.rst:583 msgid "" "The *numeric_owner* and *filter* arguments are the same as for :meth:" "`extractall`." msgstr "" -#: library/tarfile.rst:552 +#: library/tarfile.rst:588 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 "" -#: library/tarfile.rst:557 +#: library/tarfile.rst:593 msgid "" "Never extract archives from untrusted sources without prior inspection. See " "the warning for :meth:`extractall` for details." msgstr "" -#: library/tarfile.rst:560 +#: library/tarfile.rst:596 msgid "Added the *set_attrs* parameter." msgstr "" -#: library/tarfile.rst:575 +#: library/tarfile.rst:611 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 " @@ -844,17 +909,17 @@ msgid "" "the archive, :exc:`KeyError` is raised." msgstr "" -#: library/tarfile.rst:581 +#: library/tarfile.rst:617 msgid "Return an :class:`io.BufferedReader` object." msgstr "" -#: library/tarfile.rst:584 +#: library/tarfile.rst:620 msgid "" "The returned :class:`io.BufferedReader` object has the :attr:`!mode` " "attribute which is always equal to ``'rb'``." msgstr "" -#: library/tarfile.rst:591 +#: library/tarfile.rst:627 msgid "" "If *errorlevel* is ``0``, errors are ignored when using :meth:`TarFile." "extract` and :meth:`TarFile.extractall`. Nevertheless, they appear as error " @@ -864,45 +929,45 @@ msgid "" "exc:`TarError` exceptions as well." msgstr "" -#: library/tarfile.rst:599 +#: library/tarfile.rst:635 msgid "" "Some exceptions, e.g. ones caused by wrong argument types or data " "corruption, are always raised." msgstr "" -#: library/tarfile.rst:602 +#: library/tarfile.rst:638 msgid "" "Custom :ref:`extraction filters ` should raise :" "exc:`FilterError` for *fatal* errors and :exc:`ExtractError` for *non-fatal* " "ones." msgstr "" -#: library/tarfile.rst:606 +#: library/tarfile.rst:642 msgid "" "Note that when an exception is raised, the archive may be partially " "extracted. It is the user’s responsibility to clean up." msgstr "" -#: library/tarfile.rst:613 +#: library/tarfile.rst:649 msgid "" "The :ref:`extraction filter ` used as a default " "for the *filter* argument of :meth:`~TarFile.extract` and :meth:`~TarFile." "extractall`." msgstr "" -#: library/tarfile.rst:617 +#: library/tarfile.rst:653 msgid "" "The attribute may be ``None`` or a callable. String names are not allowed " "for this attribute, unlike the *filter* argument to :meth:`~TarFile.extract`." msgstr "" -#: library/tarfile.rst:621 +#: library/tarfile.rst:657 msgid "" "If ``extraction_filter`` is ``None`` (the default), extraction methods will " "use the :func:`data ` filter by default." msgstr "" -#: library/tarfile.rst:624 +#: library/tarfile.rst:660 msgid "" "The attribute may be set on instances or overridden in subclasses. It also " "is possible to set it on the ``TarFile`` class itself to set a global " @@ -912,7 +977,7 @@ msgid "" "wrapped in :func:`staticmethod` to prevent injection of a ``self`` argument." msgstr "" -#: library/tarfile.rst:634 +#: library/tarfile.rst:670 msgid "" "The default filter is set to :func:`data `, which disallows " "some dangerous features such as links to absolute paths or paths outside of " @@ -920,7 +985,7 @@ msgid "" "`fully_trusted `." msgstr "" -#: library/tarfile.rst:642 +#: library/tarfile.rst:678 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 " @@ -933,11 +998,11 @@ msgid "" "ref:`tar-examples` for an example." msgstr "" -#: library/tarfile.rst:656 +#: library/tarfile.rst:692 msgid "Recursion adds entries in sorted order." msgstr "" -#: library/tarfile.rst:662 +#: library/tarfile.rst:698 msgid "" "Add the :class:`TarInfo` object *tarinfo* to the archive. If *tarinfo* " "represents a non zero-size regular file, the *fileobj* argument should be a :" @@ -946,11 +1011,11 @@ msgid "" "meth:`gettarinfo`." msgstr "" -#: library/tarfile.rst:669 +#: library/tarfile.rst:705 msgid "*fileobj* must be given for non-zero-sized regular files." msgstr "" -#: library/tarfile.rst:674 +#: library/tarfile.rst:710 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 " @@ -961,7 +1026,7 @@ msgid "" "The name should be a text string." msgstr "" -#: library/tarfile.rst:683 +#: library/tarfile.rst:719 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 " @@ -971,21 +1036,21 @@ msgid "" "case *arcname* could be a dummy string." msgstr "" -#: library/tarfile.rst:697 +#: library/tarfile.rst:733 msgid "" "Close the :class:`TarFile`. In write mode, two finishing zero blocks are " "appended to the archive." msgstr "" -#: library/tarfile.rst:704 +#: library/tarfile.rst:740 msgid "A dictionary containing key-value pairs of pax global headers." msgstr "" -#: library/tarfile.rst:711 +#: library/tarfile.rst:747 msgid "TarInfo Objects" msgstr "" -#: library/tarfile.rst:713 +#: library/tarfile.rst:749 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, " @@ -993,14 +1058,14 @@ msgid "" "type. It does *not* contain the file's data itself." msgstr "" -#: library/tarfile.rst:718 +#: library/tarfile.rst:754 msgid "" ":class:`TarInfo` objects are returned by :class:`TarFile`'s methods :meth:" "`~TarFile.getmember`, :meth:`~TarFile.getmembers` and :meth:`~TarFile." "gettarinfo`." msgstr "" -#: library/tarfile.rst:722 +#: library/tarfile.rst:758 msgid "" "Modifying the objects returned by :meth:`~TarFile.getmember` or :meth:" "`~TarFile.getmembers` will affect all subsequent operations on the archive. " @@ -1009,80 +1074,80 @@ msgid "" "step." msgstr "" -#: library/tarfile.rst:728 +#: library/tarfile.rst:764 msgid "" "Several attributes can be set to ``None`` to indicate that a piece of " "metadata is unused or unknown. Different :class:`TarInfo` methods handle " "``None`` differently:" msgstr "" -#: library/tarfile.rst:732 +#: library/tarfile.rst:768 msgid "" "The :meth:`~TarFile.extract` or :meth:`~TarFile.extractall` methods will " "ignore the corresponding metadata, leaving it set to a default." msgstr "" -#: library/tarfile.rst:734 +#: library/tarfile.rst:770 msgid ":meth:`~TarFile.addfile` will fail." msgstr "" -#: library/tarfile.rst:735 +#: library/tarfile.rst:771 msgid ":meth:`~TarFile.list` will print a placeholder string." msgstr "" -#: library/tarfile.rst:739 +#: library/tarfile.rst:775 msgid "Create a :class:`TarInfo` object." msgstr "" -#: library/tarfile.rst:744 +#: library/tarfile.rst:780 msgid "Create and return a :class:`TarInfo` object from string buffer *buf*." msgstr "" -#: library/tarfile.rst:746 +#: library/tarfile.rst:782 msgid "Raises :exc:`HeaderError` if the buffer is invalid." msgstr "" -#: library/tarfile.rst:751 +#: library/tarfile.rst:787 msgid "" "Read the next member from the :class:`TarFile` object *tarfile* and return " "it as a :class:`TarInfo` object." msgstr "" -#: library/tarfile.rst:757 +#: library/tarfile.rst:793 msgid "" "Create a string buffer from a :class:`TarInfo` object. For information on " "the arguments see the constructor of the :class:`TarFile` class." msgstr "" -#: library/tarfile.rst:764 +#: library/tarfile.rst:800 msgid "A ``TarInfo`` object has the following public data attributes:" msgstr "" -#: library/tarfile.rst:770 +#: library/tarfile.rst:806 msgid "Name of the archive member." msgstr "" -#: library/tarfile.rst:776 +#: library/tarfile.rst:812 msgid "Size in bytes." msgstr "" -#: library/tarfile.rst:782 +#: library/tarfile.rst:818 msgid "" "Time of last modification in seconds since the :ref:`epoch `, as in :" "attr:`os.stat_result.st_mtime`." msgstr "" -#: library/tarfile.rst:798 library/tarfile.rst:841 library/tarfile.rst:863 +#: library/tarfile.rst:834 library/tarfile.rst:877 library/tarfile.rst:899 msgid "" "Can be set to ``None`` for :meth:`~TarFile.extract` and :meth:`~TarFile." "extractall`, causing extraction to skip applying this attribute." msgstr "" -#: library/tarfile.rst:794 +#: library/tarfile.rst:830 msgid "Permission bits, as for :func:`os.chmod`." msgstr "" -#: library/tarfile.rst:804 +#: library/tarfile.rst:840 msgid "" "File type. *type* is usually one of these constants: :const:`REGTYPE`, :" "const:`AREGTYPE`, :const:`LNKTYPE`, :const:`SYMTYPE`, :const:`DIRTYPE`, :" @@ -1091,128 +1156,128 @@ msgid "" "more conveniently, use the ``is*()`` methods below." msgstr "" -#: library/tarfile.rst:814 +#: library/tarfile.rst:850 msgid "" "Name of the target file name, which is only present in :class:`TarInfo` " "objects of type :const:`LNKTYPE` and :const:`SYMTYPE`." msgstr "" -#: library/tarfile.rst:817 +#: library/tarfile.rst:853 msgid "" "For symbolic links (``SYMTYPE``), the *linkname* is relative to the " "directory that contains the link. For hard links (``LNKTYPE``), the " "*linkname* is relative to the root of the archive." msgstr "" -#: library/tarfile.rst:826 +#: library/tarfile.rst:862 msgid "User ID of the user who originally stored this member." msgstr "" -#: library/tarfile.rst:837 +#: library/tarfile.rst:873 msgid "Group ID of the user who originally stored this member." msgstr "" -#: library/tarfile.rst:848 +#: library/tarfile.rst:884 msgid "User name." msgstr "" -#: library/tarfile.rst:859 +#: library/tarfile.rst:895 msgid "Group name." msgstr "" -#: library/tarfile.rst:870 +#: library/tarfile.rst:906 msgid "Header checksum." msgstr "" -#: library/tarfile.rst:876 +#: library/tarfile.rst:912 msgid "Device major number." msgstr "" -#: library/tarfile.rst:882 +#: library/tarfile.rst:918 msgid "Device minor number." msgstr "" -#: library/tarfile.rst:888 +#: library/tarfile.rst:924 msgid "The tar header starts here." msgstr "" -#: library/tarfile.rst:894 +#: library/tarfile.rst:930 msgid "The file's data starts here." msgstr "" -#: library/tarfile.rst:899 +#: library/tarfile.rst:935 msgid "Sparse member information." msgstr "" -#: library/tarfile.rst:905 +#: library/tarfile.rst:941 msgid "" "A dictionary containing key-value pairs of an associated pax extended header." msgstr "" -#: library/tarfile.rst:913 +#: library/tarfile.rst:949 msgid "" "Return a *new* copy of the :class:`!TarInfo` object with the given " "attributes changed. For example, to return a ``TarInfo`` with the group name " "set to ``'staff'``, use::" msgstr "" -#: library/tarfile.rst:917 +#: library/tarfile.rst:953 msgid "new_tarinfo = old_tarinfo.replace(gname='staff')" msgstr "" -#: library/tarfile.rst:919 +#: library/tarfile.rst:955 msgid "" "By default, a deep copy is made. If *deep* is false, the copy is shallow, i." "e. ``pax_headers`` and any custom attributes are shared with the original " "``TarInfo`` object." msgstr "" -#: library/tarfile.rst:923 +#: library/tarfile.rst:959 msgid "A :class:`TarInfo` object also provides some convenient query methods:" msgstr "" -#: library/tarfile.rst:928 +#: library/tarfile.rst:964 msgid "Return :const:`True` if the :class:`TarInfo` object is a regular file." msgstr "" -#: library/tarfile.rst:933 +#: library/tarfile.rst:969 msgid "Same as :meth:`isfile`." msgstr "" -#: library/tarfile.rst:938 +#: library/tarfile.rst:974 msgid "Return :const:`True` if it is a directory." msgstr "" -#: library/tarfile.rst:943 +#: library/tarfile.rst:979 msgid "Return :const:`True` if it is a symbolic link." msgstr "" -#: library/tarfile.rst:948 +#: library/tarfile.rst:984 msgid "Return :const:`True` if it is a hard link." msgstr "" -#: library/tarfile.rst:953 +#: library/tarfile.rst:989 msgid "Return :const:`True` if it is a character device." msgstr "" -#: library/tarfile.rst:958 +#: library/tarfile.rst:994 msgid "Return :const:`True` if it is a block device." msgstr "" -#: library/tarfile.rst:963 +#: library/tarfile.rst:999 msgid "Return :const:`True` if it is a FIFO." msgstr "" -#: library/tarfile.rst:968 +#: library/tarfile.rst:1004 msgid "" "Return :const:`True` if it is one of character device, block device or FIFO." msgstr "" -#: library/tarfile.rst:974 +#: library/tarfile.rst:1010 msgid "Extraction filters" msgstr "" -#: library/tarfile.rst:978 +#: library/tarfile.rst:1014 msgid "" "The *tar* format is designed to capture all details of a UNIX-like " "filesystem, which makes it very powerful. Unfortunately, the features make " @@ -1222,71 +1287,71 @@ msgid "" "components, or symlinks that affect later members)." msgstr "" -#: library/tarfile.rst:986 +#: library/tarfile.rst:1022 msgid "" "In most cases, the full functionality is not needed. Therefore, *tarfile* " "supports extraction filters: a mechanism to limit functionality, and thus " "mitigate some of the security issues." msgstr "" -#: library/tarfile.rst:992 +#: library/tarfile.rst:1028 msgid "" "None of the available filters blocks *all* dangerous archive features. Never " "extract archives from untrusted sources without prior inspection. See also :" "ref:`tarfile-further-verification`." msgstr "" -#: library/tarfile.rst:998 +#: library/tarfile.rst:1034 msgid ":pep:`706`" msgstr "" -#: library/tarfile.rst:999 +#: library/tarfile.rst:1035 msgid "Contains further motivation and rationale behind the design." msgstr "" -#: library/tarfile.rst:1001 +#: library/tarfile.rst:1037 msgid "" "The *filter* argument to :meth:`TarFile.extract` or :meth:`~TarFile." "extractall` can be:" msgstr "" -#: library/tarfile.rst:1004 +#: library/tarfile.rst:1040 msgid "" "the string ``'fully_trusted'``: Honor all metadata as specified in the " "archive. Should be used if the user trusts the archive completely, or " "implements their own complex verification." msgstr "" -#: library/tarfile.rst:1009 +#: library/tarfile.rst:1045 msgid "" "the string ``'tar'``: Honor most *tar*-specific features (i.e. features of " "UNIX-like filesystems), but block features that are very likely to be " "surprising or malicious. See :func:`tar_filter` for details." msgstr "" -#: library/tarfile.rst:1013 +#: library/tarfile.rst:1049 msgid "" "the string ``'data'``: Ignore or block most features specific to UNIX-like " "filesystems. Intended for extracting cross-platform data archives. See :func:" "`data_filter` for details." msgstr "" -#: library/tarfile.rst:1017 +#: library/tarfile.rst:1053 msgid "``None`` (default): Use :attr:`TarFile.extraction_filter`." msgstr "" -#: library/tarfile.rst:1019 +#: library/tarfile.rst:1055 msgid "" "If that is also ``None`` (the default), the ``'data'`` filter will be used." msgstr "" -#: library/tarfile.rst:1023 +#: library/tarfile.rst:1059 msgid "" "The default filter is set to :func:`data `. Previously, the " "default was equivalent to :func:`fully_trusted `." msgstr "" -#: library/tarfile.rst:1027 +#: library/tarfile.rst:1063 msgid "" "A callable which will be called for each extracted member with a :ref:" "`TarInfo ` describing the member and the destination path " @@ -1294,27 +1359,27 @@ msgid "" "members)::" msgstr "" -#: library/tarfile.rst:1032 +#: library/tarfile.rst:1068 msgid "filter(member: TarInfo, path: str, /) -> TarInfo | None" msgstr "" -#: library/tarfile.rst:1034 +#: library/tarfile.rst:1070 msgid "" "The callable is called just before each member is extracted, so it can take " "the current state of the disk into account. It can:" msgstr "" -#: library/tarfile.rst:1038 +#: library/tarfile.rst:1074 msgid "" "return a :class:`TarInfo` object which will be used instead of the metadata " "in the archive, or" msgstr "" -#: library/tarfile.rst:1040 +#: library/tarfile.rst:1076 msgid "return ``None``, in which case the member will be skipped, or" msgstr "" -#: library/tarfile.rst:1041 +#: library/tarfile.rst:1077 msgid "" "raise an exception to abort the operation or skip the member, depending on :" "attr:`~TarFile.errorlevel`. Note that when extraction is aborted, :meth:" @@ -1322,62 +1387,62 @@ msgid "" "attempt to clean up." msgstr "" -#: library/tarfile.rst:1047 +#: library/tarfile.rst:1083 msgid "Default named filters" msgstr "" -#: library/tarfile.rst:1049 +#: library/tarfile.rst:1085 msgid "" "The pre-defined, named filters are available as functions, so they can be " "reused in custom filters:" msgstr "" -#: library/tarfile.rst:1054 +#: library/tarfile.rst:1090 msgid "Return *member* unchanged." msgstr "" -#: library/tarfile.rst:1056 +#: library/tarfile.rst:1092 msgid "This implements the ``'fully_trusted'`` filter." msgstr "" -#: library/tarfile.rst:1060 +#: library/tarfile.rst:1096 msgid "Implements the ``'tar'`` filter." msgstr "" -#: library/tarfile.rst:1062 +#: library/tarfile.rst:1098 msgid "Strip leading slashes (``/`` and :data:`os.sep`) from filenames." msgstr "" -#: library/tarfile.rst:1063 +#: library/tarfile.rst:1099 msgid "" ":ref:`Refuse ` to extract files with absolute " "paths (in case the name is absolute even after stripping slashes, e.g. ``C:/" "foo`` on Windows). This raises :class:`~tarfile.AbsolutePathError`." msgstr "" -#: library/tarfile.rst:1067 +#: library/tarfile.rst:1103 msgid "" ":ref:`Refuse ` to extract files whose absolute " "path (after following symlinks) would end up outside the destination. This " "raises :class:`~tarfile.OutsideDestinationError`." msgstr "" -#: library/tarfile.rst:1070 +#: library/tarfile.rst:1106 msgid "" "Clear high mode bits (setuid, setgid, sticky) and group/other write bits (:" "const:`~stat.S_IWGRP` | :const:`~stat.S_IWOTH`)." msgstr "" -#: library/tarfile.rst:1112 +#: library/tarfile.rst:1148 msgid "Return the modified ``TarInfo`` member." msgstr "" -#: library/tarfile.rst:1077 +#: library/tarfile.rst:1113 msgid "" "Implements the ``'data'`` filter. In addition to what ``tar_filter`` does:" msgstr "" -#: library/tarfile.rst:1080 +#: library/tarfile.rst:1116 msgid "" "Normalize link targets (:attr:`TarInfo.linkname`) using :func:`os.path." "normpath`. Note that this removes internal ``..`` components, which may " @@ -1385,73 +1450,73 @@ msgid "" "traverses symbolic links." msgstr "" -#: library/tarfile.rst:1086 +#: library/tarfile.rst:1122 msgid "" ":ref:`Refuse ` to extract links (hard or soft) " "that link to absolute paths, or ones that link outside the destination." msgstr "" -#: library/tarfile.rst:1089 +#: library/tarfile.rst:1125 msgid "" "This raises :class:`~tarfile.AbsoluteLinkError` or :class:`~tarfile." "LinkOutsideDestinationError`." msgstr "" -#: library/tarfile.rst:1092 +#: library/tarfile.rst:1128 msgid "" "Note that such files are refused even on platforms that do not support " "symbolic links." msgstr "" -#: library/tarfile.rst:1095 +#: library/tarfile.rst:1131 msgid "" ":ref:`Refuse ` to extract device files (including " "pipes). This raises :class:`~tarfile.SpecialFileError`." msgstr "" -#: library/tarfile.rst:1099 +#: library/tarfile.rst:1135 msgid "For regular files, including hard links:" msgstr "" -#: library/tarfile.rst:1101 +#: library/tarfile.rst:1137 msgid "" "Set the owner read and write permissions (:const:`~stat.S_IRUSR` | :const:" "`~stat.S_IWUSR`)." msgstr "" -#: library/tarfile.rst:1103 +#: library/tarfile.rst:1139 msgid "" "Remove the group & other executable permission (:const:`~stat.S_IXGRP` | :" "const:`~stat.S_IXOTH`) if the owner doesn’t have it (:const:`~stat.S_IXUSR`)." msgstr "" -#: library/tarfile.rst:1107 +#: library/tarfile.rst:1143 msgid "" "For other files (directories), set ``mode`` to ``None``, so that extraction " "methods skip applying permission bits." msgstr "" -#: library/tarfile.rst:1109 +#: library/tarfile.rst:1145 msgid "" "Set user and group info (``uid``, ``gid``, ``uname``, ``gname``) to " "``None``, so that extraction methods skip setting it." msgstr "" -#: library/tarfile.rst:1114 +#: library/tarfile.rst:1150 msgid "" "Note that this filter does not block *all* dangerous archive features. See :" "ref:`tarfile-further-verification` for details." msgstr "" -#: library/tarfile.rst:1119 +#: library/tarfile.rst:1155 msgid "Link targets are now normalized." msgstr "" -#: library/tarfile.rst:1125 +#: library/tarfile.rst:1161 msgid "Filter errors" msgstr "" -#: library/tarfile.rst:1127 +#: library/tarfile.rst:1163 msgid "" "When a filter refuses to extract a file, it will raise an appropriate " "exception, a subclass of :class:`~tarfile.FilterError`. This will abort the " @@ -1460,11 +1525,11 @@ msgid "" "continue." msgstr "" -#: library/tarfile.rst:1137 +#: library/tarfile.rst:1173 msgid "Hints for further verification" msgstr "" -#: library/tarfile.rst:1139 +#: library/tarfile.rst:1175 msgid "" "Even with ``filter='data'``, *tarfile* is not suited for extracting " "untrusted files without prior inspection. Among other issues, the pre-" @@ -1472,73 +1537,73 @@ msgid "" "additional checks." msgstr "" -#: library/tarfile.rst:1144 +#: library/tarfile.rst:1180 msgid "Here is an incomplete list of things to consider:" msgstr "" -#: library/tarfile.rst:1146 +#: library/tarfile.rst:1182 msgid "" "Extract to a :func:`new temporary directory ` to prevent e." "g. exploiting pre-existing links, and to make it easier to clean up after a " "failed extraction." msgstr "" -#: library/tarfile.rst:1149 +#: library/tarfile.rst:1185 msgid "Disallow symbolic links if you do not need the functionality." msgstr "" -#: library/tarfile.rst:1150 +#: library/tarfile.rst:1186 msgid "" "When working with untrusted data, use external (e.g. OS-level) limits on " "disk, memory and CPU usage." msgstr "" -#: library/tarfile.rst:1152 +#: library/tarfile.rst:1188 msgid "" "Check filenames against an allow-list of characters (to filter out control " "characters, confusables, foreign path separators, and so on)." msgstr "" -#: library/tarfile.rst:1155 +#: library/tarfile.rst:1191 msgid "" "Check that filenames have expected extensions (discouraging files that " "execute when you “click on them”, or extension-less files like Windows " "special device names)." msgstr "" -#: library/tarfile.rst:1158 +#: library/tarfile.rst:1194 msgid "" "Limit the number of extracted files, total size of extracted data, filename " "length (including symlink length), and size of individual files." msgstr "" -#: library/tarfile.rst:1160 +#: library/tarfile.rst:1196 msgid "Check for files that would be shadowed on case-insensitive filesystems." msgstr "" -#: library/tarfile.rst:1162 +#: library/tarfile.rst:1198 msgid "Also note that:" msgstr "" -#: library/tarfile.rst:1164 +#: library/tarfile.rst:1200 msgid "" "Tar files may contain multiple versions of the same file. Later ones are " "expected to overwrite any earlier ones. This feature is crucial to allow " "updating tape archives, but can be abused maliciously." msgstr "" -#: library/tarfile.rst:1168 +#: library/tarfile.rst:1204 msgid "" "*tarfile* does not protect against issues with “live” data, e.g. an attacker " "tinkering with the destination (or source) directory while extraction (or " "archiving) is in progress." msgstr "" -#: library/tarfile.rst:1174 +#: library/tarfile.rst:1210 msgid "Supporting older Python versions" msgstr "" -#: library/tarfile.rst:1176 +#: library/tarfile.rst:1212 msgid "" "Extraction filters were added to Python 3.12, but may be backported to older " "versions as security updates. To check whether the feature is available, use " @@ -1546,59 +1611,59 @@ msgid "" "version." msgstr "" -#: library/tarfile.rst:1181 +#: library/tarfile.rst:1217 msgid "" "The following examples show how to support Python versions with and without " "the feature. Note that setting ``extraction_filter`` will affect any " "subsequent operations." msgstr "" -#: library/tarfile.rst:1185 +#: library/tarfile.rst:1221 msgid "Fully trusted archive::" msgstr "" -#: library/tarfile.rst:1187 +#: library/tarfile.rst:1223 msgid "" "my_tarfile.extraction_filter = (lambda member, path: member)\n" "my_tarfile.extractall()" msgstr "" -#: library/tarfile.rst:1190 +#: library/tarfile.rst:1226 msgid "" "Use the ``'data'`` filter if available, but revert to Python 3.11 behavior " "(``'fully_trusted'``) if this feature is not available::" msgstr "" -#: library/tarfile.rst:1193 +#: library/tarfile.rst:1229 msgid "" "my_tarfile.extraction_filter = getattr(tarfile, 'data_filter',\n" " (lambda member, path: member))\n" "my_tarfile.extractall()" msgstr "" -#: library/tarfile.rst:1197 +#: library/tarfile.rst:1233 msgid "Use the ``'data'`` filter; *fail* if it is not available::" msgstr "" -#: library/tarfile.rst:1199 +#: library/tarfile.rst:1235 msgid "my_tarfile.extractall(filter=tarfile.data_filter)" msgstr "" -#: library/tarfile.rst:1201 +#: library/tarfile.rst:1237 msgid "or::" msgstr "" -#: library/tarfile.rst:1203 +#: library/tarfile.rst:1239 msgid "" "my_tarfile.extraction_filter = tarfile.data_filter\n" "my_tarfile.extractall()" msgstr "" -#: library/tarfile.rst:1206 +#: library/tarfile.rst:1242 msgid "Use the ``'data'`` filter; *warn* if it is not available::" msgstr "" -#: library/tarfile.rst:1208 +#: library/tarfile.rst:1244 msgid "" "if hasattr(tarfile, 'data_filter'):\n" " my_tarfile.extractall(filter='data')\n" @@ -1608,28 +1673,28 @@ msgid "" " my_tarfile.extractall()" msgstr "" -#: library/tarfile.rst:1217 +#: library/tarfile.rst:1253 msgid "Stateful extraction filter example" msgstr "" -#: library/tarfile.rst:1219 +#: library/tarfile.rst:1255 msgid "" "While *tarfile*'s extraction methods take a simple *filter* callable, custom " "filters may be more complex objects with an internal state. It may be useful " "to write these as context managers, to be used like this::" msgstr "" -#: library/tarfile.rst:1223 +#: library/tarfile.rst:1259 msgid "" "with StatefulFilter() as filter_func:\n" " tar.extractall(path, filter=filter_func)" msgstr "" -#: library/tarfile.rst:1226 +#: library/tarfile.rst:1262 msgid "Such a filter can be written as, for example::" msgstr "" -#: library/tarfile.rst:1228 +#: library/tarfile.rst:1264 msgid "" "class StatefulFilter:\n" " def __init__(self):\n" @@ -1646,103 +1711,107 @@ msgid "" " print(f'{self.file_count} files extracted')" msgstr "" -#: library/tarfile.rst:1248 +#: library/tarfile.rst:1284 msgid "Command-Line Interface" msgstr "" -#: library/tarfile.rst:1252 +#: library/tarfile.rst:1288 msgid "" "The :mod:`tarfile` module provides a simple command-line interface to " "interact with tar archives." msgstr "" -#: library/tarfile.rst:1255 +#: library/tarfile.rst:1291 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 "" -#: library/tarfile.rst:1258 +#: library/tarfile.rst:1294 msgid "$ python -m tarfile -c monty.tar spam.txt eggs.txt" msgstr "" -#: library/tarfile.rst:1262 +#: library/tarfile.rst:1298 msgid "Passing a directory is also acceptable:" msgstr "" -#: library/tarfile.rst:1264 +#: library/tarfile.rst:1300 msgid "$ python -m tarfile -c monty.tar life-of-brian_1979/" msgstr "" -#: library/tarfile.rst:1268 +#: library/tarfile.rst:1304 msgid "" "If you want to extract a tar archive into the current directory, use the :" "option:`-e` option:" msgstr "" -#: library/tarfile.rst:1271 +#: library/tarfile.rst:1307 msgid "$ python -m tarfile -e monty.tar" msgstr "" -#: library/tarfile.rst:1275 +#: library/tarfile.rst:1311 msgid "" "You can also extract a tar archive into a different directory by passing the " "directory's name:" msgstr "" -#: library/tarfile.rst:1278 +#: library/tarfile.rst:1314 msgid "$ python -m tarfile -e monty.tar other-dir/" msgstr "" -#: library/tarfile.rst:1282 +#: library/tarfile.rst:1318 msgid "For a list of the files in a tar archive, use the :option:`-l` option:" msgstr "" -#: library/tarfile.rst:1284 +#: library/tarfile.rst:1320 msgid "$ python -m tarfile -l monty.tar" msgstr "" -#: library/tarfile.rst:1290 +#: library/tarfile.rst:1326 msgid "Command-line options" msgstr "" -#: library/tarfile.rst:1295 +#: library/tarfile.rst:1331 msgid "List files in a tarfile." msgstr "" -#: library/tarfile.rst:1300 +#: library/tarfile.rst:1336 msgid "Create tarfile from source files." msgstr "" -#: library/tarfile.rst:1305 +#: library/tarfile.rst:1341 msgid "" "Extract tarfile into the current directory if *output_dir* is not specified." msgstr "" -#: library/tarfile.rst:1310 +#: library/tarfile.rst:1346 msgid "Test whether the tarfile is valid or not." msgstr "" -#: library/tarfile.rst:1314 +#: library/tarfile.rst:1350 msgid "Verbose output." msgstr "" -#: library/tarfile.rst:1318 +#: library/tarfile.rst:1354 msgid "" "Specifies the *filter* for ``--extract``. See :ref:`tarfile-extraction-" "filter` for details. Only string names are accepted (that is, " "``fully_trusted``, ``tar``, and ``data``)." msgstr "" -#: library/tarfile.rst:1326 +#: library/tarfile.rst:1362 msgid "Examples" msgstr "" -#: library/tarfile.rst:1328 +#: library/tarfile.rst:1365 +msgid "Reading examples" +msgstr "" + +#: library/tarfile.rst:1367 msgid "How to extract an entire tar archive to the current working directory::" msgstr "" -#: library/tarfile.rst:1330 +#: library/tarfile.rst:1369 msgid "" "import tarfile\n" "tar = tarfile.open(\"sample.tar.gz\")\n" @@ -1750,13 +1819,13 @@ msgid "" "tar.close()" msgstr "" -#: library/tarfile.rst:1335 +#: library/tarfile.rst:1374 msgid "" "How to extract a subset of a tar archive with :meth:`TarFile.extractall` " "using a generator function instead of a list::" msgstr "" -#: library/tarfile.rst:1338 +#: library/tarfile.rst:1377 msgid "" "import os\n" "import tarfile\n" @@ -1771,11 +1840,37 @@ msgid "" "tar.close()" msgstr "" -#: library/tarfile.rst:1350 +#: library/tarfile.rst:1389 +msgid "" +"How to read a gzip compressed tar archive and display some member " +"information::" +msgstr "" + +#: library/tarfile.rst:1391 +msgid "" +"import tarfile\n" +"tar = tarfile.open(\"sample.tar.gz\", \"r:gz\")\n" +"for tarinfo in tar:\n" +" print(tarinfo.name, \"is\", tarinfo.size, \"bytes in size and is \", " +"end=\"\")\n" +" if tarinfo.isreg():\n" +" print(\"a regular file.\")\n" +" elif tarinfo.isdir():\n" +" print(\"a directory.\")\n" +" else:\n" +" print(\"something else.\")\n" +"tar.close()" +msgstr "" + +#: library/tarfile.rst:1404 +msgid "Writing examples" +msgstr "" + +#: library/tarfile.rst:1406 msgid "How to create an uncompressed tar archive from a list of filenames::" msgstr "" -#: library/tarfile.rst:1352 +#: library/tarfile.rst:1408 msgid "" "import tarfile\n" "tar = tarfile.open(\"sample.tar\", \"w\")\n" @@ -1784,11 +1879,11 @@ msgid "" "tar.close()" msgstr "" -#: library/tarfile.rst:1358 +#: library/tarfile.rst:1414 msgid "The same example using the :keyword:`with` statement::" msgstr "" -#: library/tarfile.rst:1360 +#: library/tarfile.rst:1416 msgid "" "import tarfile\n" "with tarfile.open(\"sample.tar\", \"w\") as tar:\n" @@ -1796,35 +1891,29 @@ msgid "" " tar.add(name)" msgstr "" -#: library/tarfile.rst:1365 +#: library/tarfile.rst:1421 msgid "" -"How to read a gzip compressed tar archive and display some member " -"information::" +"How to create and write an archive to stdout using :data:`sys.stdout.buffer " +"` in the *fileobj* parameter in :meth:`TarFile.add`::" msgstr "" -#: library/tarfile.rst:1367 +#: library/tarfile.rst:1425 msgid "" +"import sys\n" "import tarfile\n" -"tar = tarfile.open(\"sample.tar.gz\", \"r:gz\")\n" -"for tarinfo in tar:\n" -" print(tarinfo.name, \"is\", tarinfo.size, \"bytes in size and is \", " -"end=\"\")\n" -" if tarinfo.isreg():\n" -" print(\"a regular file.\")\n" -" elif tarinfo.isdir():\n" -" print(\"a directory.\")\n" -" else:\n" -" print(\"something else.\")\n" -"tar.close()" +"with tarfile.open(\"sample.tar.gz\", \"w|gz\", fileobj=sys.stdout.buffer) as " +"tar:\n" +" for name in [\"foo\", \"bar\", \"quux\"]:\n" +" tar.add(name)" msgstr "" -#: library/tarfile.rst:1379 +#: library/tarfile.rst:1431 msgid "" "How to create an archive and reset the user information using the *filter* " "parameter in :meth:`TarFile.add`::" msgstr "" -#: library/tarfile.rst:1382 +#: library/tarfile.rst:1434 msgid "" "import tarfile\n" "def reset(tarinfo):\n" @@ -1836,17 +1925,17 @@ msgid "" "tar.close()" msgstr "" -#: library/tarfile.rst:1395 +#: library/tarfile.rst:1447 msgid "Supported tar formats" msgstr "" -#: library/tarfile.rst:1397 +#: library/tarfile.rst:1449 msgid "" "There are three tar formats that can be created with the :mod:`tarfile` " "module:" msgstr "" -#: library/tarfile.rst:1399 +#: library/tarfile.rst:1451 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. " @@ -1854,7 +1943,7 @@ msgid "" "supported format." msgstr "" -#: library/tarfile.rst:1404 +#: library/tarfile.rst:1456 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 " @@ -1862,7 +1951,7 @@ msgid "" "extensions for long names, sparse file support is read-only." msgstr "" -#: library/tarfile.rst:1409 +#: library/tarfile.rst:1461 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, " @@ -1873,7 +1962,7 @@ msgid "" "*ustar* format. It is the current default format for new archives." msgstr "" -#: library/tarfile.rst:1417 +#: library/tarfile.rst:1469 msgid "" "It extends the existing *ustar* format with extra headers for information " "that cannot be stored otherwise. There are two flavours of pax headers: " @@ -1882,13 +1971,13 @@ msgid "" "in a pax header is encoded in *UTF-8* for portability reasons." msgstr "" -#: library/tarfile.rst:1423 +#: library/tarfile.rst:1475 msgid "" "There are some more variants of the tar format which can be read, but not " "created:" msgstr "" -#: library/tarfile.rst:1426 +#: library/tarfile.rst:1478 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 " @@ -1897,17 +1986,17 @@ msgid "" "ASCII characters." msgstr "" -#: library/tarfile.rst:1431 +#: library/tarfile.rst:1483 msgid "" "The SunOS tar extended format. This format is a variant of the POSIX.1-2001 " "pax format, but is not compatible." msgstr "" -#: library/tarfile.rst:1437 +#: library/tarfile.rst:1489 msgid "Unicode issues" msgstr "" -#: library/tarfile.rst:1439 +#: library/tarfile.rst:1491 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 " @@ -1922,13 +2011,13 @@ msgid "" "It stores non-ASCII metadata using the universal character encoding *UTF-8*." msgstr "" -#: library/tarfile.rst:1451 +#: library/tarfile.rst:1503 msgid "" "The details of character conversion in :mod:`tarfile` are controlled by the " "*encoding* and *errors* keyword arguments of the :class:`TarFile` class." msgstr "" -#: library/tarfile.rst:1454 +#: library/tarfile.rst:1506 msgid "" "*encoding* defines the character encoding to use for the metadata in the " "archive. The default value is :func:`sys.getfilesystemencoding` or " @@ -1937,7 +2026,7 @@ msgid "" "not set appropriately, this conversion may fail." msgstr "" -#: library/tarfile.rst:1460 +#: library/tarfile.rst:1512 msgid "" "The *errors* argument defines how characters are treated that cannot be " "converted. Possible values are listed in section :ref:`error-handlers`. The " @@ -1945,7 +2034,7 @@ msgid "" "system calls, see :ref:`os-filenames`." msgstr "" -#: library/tarfile.rst:1465 +#: library/tarfile.rst:1517 msgid "" "For :const:`PAX_FORMAT` archives (the default), *encoding* is generally not " "needed because all the metadata is stored using *UTF-8*. *encoding* is only " diff --git a/library/telnetlib.po b/library/telnetlib.po index ab79e7dd..443e0576 100644 --- a/library/telnetlib.po +++ b/library/telnetlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/tempfile.po b/library/tempfile.po index 6944fa8c..34c7b54e 100644 --- a/library/tempfile.po +++ b/library/tempfile.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/termios.po b/library/termios.po index 93cb6f95..137ebed6 100644 --- a/library/termios.po +++ b/library/termios.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/test.po b/library/test.po index 24844878..631353b2 100644 --- a/library/test.po +++ b/library/test.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1155,7 +1155,7 @@ msgid "" "as part of the public API even though their names indicate otherwise." msgstr "" -#: library/test.rst:1623 +#: library/test.rst:1630 msgid "Example use::" msgstr "" @@ -1580,29 +1580,35 @@ msgid "" "# (to avoid reference cycles)" msgstr "" -#: library/test.rst:1388 +#: library/test.rst:1389 +msgid "" +"Run the worker function concurrently in multiple threads. Re-raises an " +"exception if any thread raises one, after all threads have finished." +msgstr "" + +#: library/test.rst:1395 msgid ":mod:`test.support.os_helper` --- Utilities for os tests" msgstr "" -#: library/test.rst:1393 +#: library/test.rst:1400 msgid "The :mod:`test.support.os_helper` module provides support for os tests." msgstr "" -#: library/test.rst:1400 +#: library/test.rst:1407 msgid "A non-ASCII character encodable by :func:`os.fsencode`." msgstr "" -#: library/test.rst:1405 +#: library/test.rst:1412 msgid "Set to :func:`os.getcwd`." msgstr "" -#: library/test.rst:1410 +#: library/test.rst:1417 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 "" -#: library/test.rst:1416 +#: library/test.rst:1423 msgid "" "Set to a filename containing the :data:`FS_NONASCII` character, if it " "exists. This guarantees that if the filename exists, it can be encoded and " @@ -1610,25 +1616,25 @@ msgid "" "a non-ASCII filename to be easily skipped on platforms where they can't work." msgstr "" -#: library/test.rst:1424 +#: library/test.rst:1431 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 "" -#: library/test.rst:1431 +#: library/test.rst:1438 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 "" -#: library/test.rst:1438 +#: library/test.rst:1445 msgid "Set to a non-ASCII name for a temporary file." msgstr "" -#: library/test.rst:1443 +#: library/test.rst:1450 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 " @@ -1637,79 +1643,79 @@ msgid "" "instance will be rolled back." msgstr "" -#: library/test.rst:1449 +#: library/test.rst:1456 msgid "Added dictionary interface." msgstr "" -#: library/test.rst:1455 +#: library/test.rst:1462 msgid "" "Simple :term:`path-like object`. It implements the :meth:`~os.PathLike." "__fspath__` method which just returns the *path* argument. If *path* is an " "exception, it will be raised in :meth:`!__fspath__`." msgstr "" -#: library/test.rst:1463 +#: library/test.rst:1470 msgid "" "Temporarily set the environment variable ``envvar`` to the value of " "``value``." msgstr "" -#: library/test.rst:1469 +#: library/test.rst:1476 msgid "Temporarily unset one or more environment variables." msgstr "" -#: library/test.rst:1471 +#: library/test.rst:1478 msgid "More than one environment variable can be unset." msgstr "" -#: library/test.rst:1477 +#: library/test.rst:1484 msgid "Return ``True`` if the OS supports symbolic links, ``False`` otherwise." msgstr "" -#: library/test.rst:1483 +#: library/test.rst:1490 msgid "Return ``True`` if the OS supports xattr, ``False`` otherwise." msgstr "" -#: library/test.rst:1489 +#: library/test.rst:1496 msgid "" "A context manager that temporarily changes the current working directory to " "*path* and yields the directory." msgstr "" -#: library/test.rst:1492 +#: library/test.rst:1499 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 "" -#: library/test.rst:1499 +#: library/test.rst:1506 msgid "" "Create an empty file with *filename*. If it already exists, truncate it." msgstr "" -#: library/test.rst:1504 +#: library/test.rst:1511 msgid "Count the number of open file descriptors." msgstr "" -#: library/test.rst:1509 +#: library/test.rst:1516 msgid "Return ``True`` if the file system for *directory* is case-insensitive." msgstr "" -#: library/test.rst:1514 +#: library/test.rst:1521 msgid "" "Create an invalid file descriptor by opening and closing a temporary file, " "and returning its descriptor." msgstr "" -#: library/test.rst:1520 +#: library/test.rst:1527 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, which is needed " "due to antivirus programs that can hold files open and prevent deletion." msgstr "" -#: library/test.rst:1528 +#: library/test.rst:1535 msgid "" "Call :func:`shutil.rmtree` on *path* or call :func:`os.lstat` and :func:`os." "rmdir` to remove a path and its contents. As with :func:`rmdir`, on Windows " @@ -1717,21 +1723,21 @@ msgid "" "the files." msgstr "" -#: library/test.rst:1536 +#: library/test.rst:1543 msgid "A decorator for running tests that require support for symbolic links." msgstr "" -#: library/test.rst:1541 +#: library/test.rst:1548 msgid "A decorator for running tests that require support for xattr." msgstr "" -#: library/test.rst:1546 +#: library/test.rst:1553 msgid "" "A context manager that temporarily creates a new directory and changes the " "current working directory (CWD)." msgstr "" -#: library/test.rst:1549 +#: library/test.rst:1556 msgid "" "The context manager creates a temporary directory in the current directory " "with name *name* before temporarily changing the current working directory. " @@ -1739,20 +1745,20 @@ msgid "" "`tempfile.mkdtemp`." msgstr "" -#: library/test.rst:1554 +#: library/test.rst:1561 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 "" -#: library/test.rst:1561 +#: library/test.rst:1568 msgid "" "A context manager that creates a temporary directory at *path* and yields " "the directory." msgstr "" -#: library/test.rst:1564 +#: library/test.rst:1571 msgid "" "If *path* is ``None``, the temporary directory is created using :func:" "`tempfile.mkdtemp`. If *quiet* is ``False``, the context manager raises an " @@ -1760,34 +1766,34 @@ msgid "" "created, only a warning is issued." msgstr "" -#: library/test.rst:1572 +#: library/test.rst:1579 msgid "A context manager that temporarily sets the process umask." msgstr "" -#: library/test.rst:1577 +#: library/test.rst:1584 msgid "" "Call :func:`os.unlink` on *filename*. As with :func:`rmdir`, on Windows " "platforms, this is wrapped with a wait loop that checks for the existence of " "the file." msgstr "" -#: library/test.rst:1583 +#: library/test.rst:1590 msgid ":mod:`test.support.import_helper` --- Utilities for import tests" msgstr "" -#: library/test.rst:1588 +#: library/test.rst:1595 msgid "" "The :mod:`test.support.import_helper` module provides support for import " "tests." msgstr "" -#: library/test.rst:1595 +#: library/test.rst:1602 msgid "" "Remove the module named *module_name* from ``sys.modules`` and delete any " "byte-compiled files of the module." msgstr "" -#: library/test.rst:1601 +#: library/test.rst:1608 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 " @@ -1795,39 +1801,39 @@ msgid "" "operation." msgstr "" -#: library/test.rst:1606 +#: library/test.rst:1613 msgid "" "*fresh* is an iterable of additional module names that are also removed from " "the ``sys.modules`` cache before doing the import." msgstr "" -#: library/test.rst:1609 +#: library/test.rst:1616 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 "" -#: library/test.rst:1613 +#: library/test.rst:1620 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 "" -#: library/test.rst:1617 +#: library/test.rst:1624 msgid "" "Module and package deprecation messages are suppressed during this import if " "*deprecated* is ``True``." msgstr "" -#: library/test.rst:1620 +#: library/test.rst:1627 msgid "" "This function will raise :exc:`ImportError` if the named module cannot be " "imported." msgstr "" -#: library/test.rst:1625 +#: library/test.rst:1632 msgid "" "# Get copies of the warnings module for testing without affecting the\n" "# version being used by the rest of the test suite. One copy uses the\n" @@ -1837,14 +1843,14 @@ msgid "" "c_warnings = import_fresh_module('warnings', fresh=['_warnings'])" msgstr "" -#: library/test.rst:1637 +#: library/test.rst:1644 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 "" -#: library/test.rst:1641 +#: library/test.rst:1648 msgid "" "Module and package deprecation messages are suppressed during this import if " "*deprecated* is ``True``. If a module is required on a platform but " @@ -1852,21 +1858,21 @@ msgid "" "which will be compared against :data:`sys.platform`." msgstr "" -#: library/test.rst:1651 +#: library/test.rst:1658 msgid "Return a copy of :data:`sys.modules`." msgstr "" -#: library/test.rst:1656 +#: library/test.rst:1663 msgid "" "Remove modules except for *oldmodules* and ``encodings`` in order to " "preserve internal cache." msgstr "" -#: library/test.rst:1662 +#: library/test.rst:1669 msgid "Delete *name* from ``sys.modules``." msgstr "" -#: library/test.rst:1667 +#: library/test.rst:1674 msgid "" "Move a :pep:`3147`/:pep:`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 " @@ -1874,48 +1880,48 @@ msgid "" "3147/488 pyc file must exist." msgstr "" -#: library/test.rst:1675 +#: library/test.rst:1682 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 :exc:" "`DeprecationWarning` on import. Example usage::" msgstr "" -#: library/test.rst:1679 +#: library/test.rst:1686 msgid "" "with CleanImport('foo'):\n" " importlib.import_module('foo') # New reference." msgstr "" -#: library/test.rst:1685 +#: library/test.rst:1692 msgid "A context manager to temporarily add directories to :data:`sys.path`." msgstr "" -#: library/test.rst:1687 +#: library/test.rst:1694 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 "" -#: library/test.rst:1691 +#: library/test.rst:1698 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 "" -#: library/test.rst:1697 +#: library/test.rst:1704 msgid ":mod:`test.support.warnings_helper` --- Utilities for warnings tests" msgstr "" -#: library/test.rst:1702 +#: library/test.rst:1709 msgid "" "The :mod:`test.support.warnings_helper` module provides support for warnings " "tests." msgstr "" -#: library/test.rst:1709 +#: library/test.rst:1716 msgid "" "Suppress warnings that are instances of *category*, which must be :exc:" "`Warning` or a subclass. Roughly equivalent to :func:`warnings." @@ -1923,21 +1929,21 @@ msgid "" "category=category) `. For example::" msgstr "" -#: library/test.rst:1715 +#: library/test.rst:1722 msgid "" "@warning_helper.ignore_warnings(category=DeprecationWarning)\n" "def test_suppress_warning():\n" " # do something" msgstr "" -#: library/test.rst:1724 +#: library/test.rst:1731 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 "" -#: library/test.rst:1731 +#: library/test.rst:1738 msgid "" "Test for syntax warning in *statement* by attempting to compile *statement*. " "Test also that the :exc:`SyntaxWarning` is emitted only once, and that it " @@ -1949,7 +1955,7 @@ msgid "" "``None``, compares to the offset of the exception." msgstr "" -#: library/test.rst:1745 +#: library/test.rst:1752 msgid "" "A convenience wrapper for :func:`warnings.catch_warnings` that makes it " "easier to test that a warning was correctly raised. It is approximately " @@ -1958,7 +1964,7 @@ msgid "" "automatically validate the results that are recorded." msgstr "" -#: library/test.rst:1751 +#: library/test.rst:1758 msgid "" "``check_warnings`` accepts 2-tuples of the form ``(\"message regexp\", " "WarningCategory)`` as positional arguments. If one or more *filters* are " @@ -1970,19 +1976,19 @@ msgid "" "*quiet* to ``True``." msgstr "" -#: library/test.rst:1760 +#: library/test.rst:1767 msgid "If no arguments are specified, it defaults to::" msgstr "" -#: library/test.rst:1762 +#: library/test.rst:1769 msgid "check_warnings((\"\", Warning), quiet=True)" msgstr "" -#: library/test.rst:1764 +#: library/test.rst:1771 msgid "In this case all warnings are caught and no errors are raised." msgstr "" -#: library/test.rst:1766 +#: library/test.rst:1773 msgid "" "On entry to the context manager, a :class:`WarningRecorder` instance is " "returned. The underlying warnings list from :func:`~warnings.catch_warnings` " @@ -1994,17 +2000,17 @@ msgid "" "return ``None``." msgstr "" -#: library/test.rst:1775 +#: library/test.rst:1782 msgid "" "The recorder object also has a :meth:`reset` method, which clears the " "warnings list." msgstr "" -#: library/test.rst:1778 +#: library/test.rst:1785 msgid "The context manager is designed to be used like this::" msgstr "" -#: library/test.rst:1780 +#: library/test.rst:1787 msgid "" "with check_warnings((\"assertion is always true\", SyntaxWarning),\n" " (\"\", UserWarning)):\n" @@ -2012,19 +2018,19 @@ msgid "" " warnings.warn(UserWarning(\"Hide me!\"))" msgstr "" -#: library/test.rst:1785 +#: library/test.rst:1792 msgid "" "In this case if either warning was not raised, or some other warning was " "raised, :func:`check_warnings` would raise an error." msgstr "" -#: library/test.rst:1788 +#: library/test.rst:1795 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 "" -#: library/test.rst:1791 +#: library/test.rst:1798 msgid "" "with check_warnings(quiet=True) as w:\n" " warnings.warn(\"foo\")\n" @@ -2037,17 +2043,17 @@ msgid "" " assert len(w.warnings) == 0" msgstr "" -#: library/test.rst:1802 +#: library/test.rst:1809 msgid "" "Here all warnings will be caught, and the test code tests the captured " "warnings directly." msgstr "" -#: library/test.rst:1805 +#: library/test.rst:1812 msgid "New optional arguments *filters* and *quiet*." msgstr "" -#: library/test.rst:1811 +#: library/test.rst:1818 msgid "" "Class used to record warnings for unit tests. See documentation of :func:" "`check_warnings` above for more details." diff --git a/library/text.po b/library/text.po index 51c20ac1..b4c82114 100644 --- a/library/text.po +++ b/library/text.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/textwrap.po b/library/textwrap.po index 0dd0829a..c57b48d4 100644 --- a/library/textwrap.po +++ b/library/textwrap.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-07-06 08:46+0300\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" diff --git a/library/threading.po b/library/threading.po index abc72f32..3357074e 100644 --- a/library/threading.po +++ b/library/threading.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -861,9 +861,9 @@ msgstr "" #: library/threading.rst:624 msgid "" -"If an attempt is made to join a running daemonic thread in in late stages " -"of :term:`Python finalization ` :meth:`!join` raises " -"a :exc:`PythonFinalizationError`." +"If an attempt is made to join a running daemonic thread in late stages of :" +"term:`Python finalization ` :meth:`!join` raises a :" +"exc:`PythonFinalizationError`." msgstr "" #: library/threading.rst:630 diff --git a/library/time.po b/library/time.po index 7552c898..8f3dc292 100644 --- a/library/time.po +++ b/library/time.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-11-01 23:29+0200\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -291,9 +291,9 @@ msgstr "" "αποτέλεσμα μη ορισμένη συμπεριφορά, όπως σφάλμα τμηματοποίησης." #: library/time.rst:165 library/time.rst:187 library/time.rst:209 -#: library/time.rst:771 library/time.rst:878 library/time.rst:898 -#: library/time.rst:916 library/time.rst:936 library/time.rst:955 -#: library/time.rst:975 library/time.rst:988 +#: library/time.rst:778 library/time.rst:885 library/time.rst:905 +#: library/time.rst:923 library/time.rst:943 library/time.rst:962 +#: library/time.rst:982 library/time.rst:995 msgid "Availability" msgstr "Διαθεσιμότητα" @@ -417,12 +417,12 @@ msgstr "Το αποτέλεσμα έχει τα ακόλουθα χαρακτη #: library/time.rst:241 msgid "" -"*adjustable*: ``True`` if the clock can be changed automatically (e.g. by a " -"NTP daemon) or manually by the system administrator, ``False`` otherwise" +"*adjustable*: ``True`` if the clock can be set to jump forward or backward " +"in time, ``False`` otherwise. Does not refer to gradual NTP rate adjustments." msgstr "" -"*adjustable*: ``True`` αν το ρολόι μπορεί να αλλάξει αυτόματα (π.χ. από ένα " -"NTP daemon) ή χειροκίνητα από τον διαχειριστή συστήματος, διαφορετικά " -"``False``" +"*adjustable*: ``True`` αν το ρολόι μπορεί να ρυθμιστεί να πηδήξει μπροστά ή " +"πίσω στον χρόνο, διαφορετικά ``False``. Δεν αναφέρεται σε σταδιακές NTP " +"ρυθμίσεις ρυθμού." #: library/time.rst:243 msgid "" @@ -522,7 +522,7 @@ msgstr "" "επιστρεφόμενης τιμής είναι απροσδιόριστο, έτσι ώστε μόνο η διαφορά μεταξύ " "των αποτελεσμάτων δύο κλήσεων να είναι έγκυρη." -#: library/time.rst:713 +#: library/time.rst:715 msgid "Clock:" msgstr "Ρολόι:" @@ -560,36 +560,39 @@ msgstr "" "ακρίβειας που προκαλείται από τον τύπο :class:`float`." #: library/time.rst:308 -msgid "The function is now always available and always system-wide." +msgid "" +"The function is now always available and the clock is now the same for all " +"processes." msgstr "" -"Η συνάρτηση είναι τώρα πάντα διαθέσιμη και πάντα σε επίπεδο συστήματος." +"Η συνάρτηση είναι τώρα πάντα διαθέσιμη και το ρολόι είναι τώρα ίδιο για όλες " +"τις διαδικασίες." -#: library/time.rst:311 -msgid "On macOS, the function is now system-wide." -msgstr "Στο macOS, η συνάρτηση είναι τώρα σε επίπεδο συστήματος." +#: library/time.rst:312 +msgid "On macOS, the clock is now the same for all processes." +msgstr "Στο macOS, το ρολόι είναι τώρα ίδιο για όλες τις διαδικασίες." -#: library/time.rst:317 +#: library/time.rst:318 msgid "Similar to :func:`monotonic`, but return time as nanoseconds." msgstr "" "Παρόμοιο με την :func:`monotonic`, αλλά επιστρέφει τον χρόνο σε " "νανοδευτερόλεπτα." -#: library/time.rst:326 +#: library/time.rst:327 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 two calls is valid." +"does include time elapsed during sleep. The clock is the same for all " +"processes. The reference point of the returned value is undefined, so that " +"only the difference between the results of two calls is valid." msgstr "" "Επιστρέφει την τιμή (σε κλασματικά δευτερόλεπτα) ενός μετρητή απόδοσης, " "δηλαδή ενός ρολογιού με την υψηλότερη διαθέσιμη ανάλυση για τη μέτρηση μιας " "σύντομης διάρκειας. Περιλαμβάνει τον χρόνο που πέρασε κατά τη διάρκεια του " -"ύπνου και είναι σε επίπεδο συστήματος. Το σημείο αναφοράς της επιστρεφόμενης " -"τιμής είναι απροσδιόριστο, έτσι ώστε μόνο η διαφορά μεταξύ των αποτελεσμάτων " -"δύο κλήσεων να είναι έγκυρη." +"ύπνου. Το ρολόι είναι το ίδιο για όλες τις διαδικασίες. Το σημείο αναφοράς " +"της επιστρεφόμενης τιμής είναι απροσδιόριστο, έτσι ώστε μόνο η διαφορά " +"μεταξύ των αποτελεσμάτων δύο κλήσεων να είναι έγκυρη." -#: library/time.rst:334 +#: library/time.rst:336 msgid "" "On CPython, use the same clock as :func:`time.monotonic` and is a monotonic " "clock, i.e. a clock that cannot go backwards." @@ -597,7 +600,7 @@ msgstr "" "Στο CPython, χρησιμοποιεί το ίδιο ρολόι με την :func:`time.monotonic` και " "είναι ένα μονότονο ρολόι, δηλαδή ένα ρολόι που δεν μπορεί να πάει πίσω." -#: library/time.rst:337 +#: library/time.rst:339 msgid "" "Use :func:`perf_counter_ns` to avoid the precision loss caused by the :class:" "`float` type." @@ -605,19 +608,19 @@ msgstr "" "Χρησιμοποιήστε την :func:`perf_counter_ns` για να αποφύγετε την απώλεια " "ακρίβειας που προκαλείται από τον τύπο :class:`float`." -#: library/time.rst:342 -msgid "On Windows, the function is now system-wide." -msgstr "Στα Windows, η συνάρτηση είναι τώρα σε επίπεδο συστήματος." +#: library/time.rst:344 +msgid "On Windows, the clock is now the same for all processes." +msgstr "Στα Windows, το ρολόι είναι τώρα ίδιο για όλες τις διαδικασίες." -#: library/time.rst:345 +#: library/time.rst:347 msgid "Use the same clock as :func:`time.monotonic`." msgstr "Χρησιμοποιεί το ίδιο ρολόι με την :func:`time.monotonic`." -#: library/time.rst:351 +#: library/time.rst:353 msgid "Similar to :func:`perf_counter`, but return time as nanoseconds." msgstr "Παρόμοιο με την :func:`perf_counter`, αλλά επιστρέφει τον χρόνο σε " -#: library/time.rst:363 +#: library/time.rst:365 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 " @@ -632,7 +635,7 @@ msgstr "" "τιμής είναι απροσδιόριστο, έτσι ώστε μόνο η διαφορά μεταξύ των αποτελεσμάτων " "δύο κλήσεων να είναι έγκυρη." -#: library/time.rst:369 +#: library/time.rst:371 msgid "" "Use :func:`process_time_ns` to avoid the precision loss caused by the :class:" "`float` type." @@ -640,13 +643,13 @@ msgstr "" "Χρησιμοποιήστε την :func:`process_time_ns` για να αποφύγετε την απώλεια " "ακρίβειας που προκαλείται από τον τύπο :class:`float`." -#: library/time.rst:376 +#: library/time.rst:378 msgid "Similar to :func:`process_time` but return time as nanoseconds." msgstr "" "Παρόμοιο με την :func:`process_time` αλλά επιστρέφει τον χρόνο σε " "νανοδευτερόλεπτα." -#: library/time.rst:382 +#: library/time.rst:384 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 " @@ -656,7 +659,7 @@ msgstr "" "δευτερολέπτων. Το όρισμα μπορεί να είναι ένας αριθμός κινητής υποδιαστολής " "για να υποδείξει έναν πιο ακριβή χρόνο ύπνου." -#: library/time.rst:386 +#: library/time.rst:388 msgid "" "If the sleep is interrupted by a signal and no exception is raised by the " "signal handler, the sleep is restarted with a recomputed timeout." @@ -665,7 +668,7 @@ msgstr "" "χειριστή σήματος, ο ύπνος επανεκκινείται με έναν επανυπολογισμένο χρόνο " "λήξης." -#: library/time.rst:389 +#: library/time.rst:391 msgid "" "The suspension time may be longer than requested by an arbitrary amount, " "because of the scheduling of other activity in the system." @@ -673,57 +676,57 @@ msgstr "" "Ο χρόνος αναστολής μπορεί να είναι μεγαλύτερος από τον ζητούμενο κατά " "αυθαίρετο ποσό, λόγω του προγραμματισμού άλλων δραστηριοτήτων στο σύστημα." -#: library/time.rst:393 +#: library/time.rst:395 msgid "Windows implementation" msgstr "Υλοποίηση Windows" -#: library/time.rst:394 +#: library/time.rst:396 msgid "" "On Windows, if *secs* is zero, the thread relinquishes the remainder of its " "time slice to any other thread that is ready to run. If there are no other " "threads ready to run, the function returns immediately, and the thread " -"continues execution. On Windows 8.1 and newer the implementation uses a " -"`high-resolution timer `_ which provides resolution of 100 " -"nanoseconds. If *secs* is zero, ``Sleep(0)`` is used." +"continues execution. On Windows 10 and newer the implementation uses a " +"`high-resolution timer `_ which provides resolution of " +"100 nanoseconds. If *secs* is zero, ``Sleep(0)`` is used." msgstr "" "Στα Windows, αν το *secs* είναι μηδέν, το νήμα παραχωρεί το υπόλοιπο του " "χρόνου του σε οποιοδήποτε άλλο νήμα είναι έτοιμο να εκτελεστεί. Αν δεν " "υπάρχουν άλλα νήματα έτοιμα να εκτελεστούν, η συνάρτηση επιστρέφει αμέσως " -"και το νήμα συνεχίζει την εκτέλεση. Στα Windows 8.1 και νεότερα η υλοποίηση " -"χρησιμοποιεί `υψηλής ακρίβειας χρονοδιακόπτη `_ που παρέχει " +"και το νήμα συνεχίζει την εκτέλεση. Στα Windows 10 και νεότερα, η υλοποίηση " +"χρησιμοποιεί έναν `χρονιστή υψηλής ακρίβειας `_ που παρέχει " "ανάλυση των 100 νανοδευτερολέπτων. Αν το *secs* είναι μηδέν, χρησιμοποιείται " "το ``Sleep(0)``." -#: library/time.rst:403 +#: library/time.rst:405 msgid "Unix implementation" msgstr "Υλοποίηση Unix" -#: library/time.rst:404 +#: library/time.rst:406 msgid "Use ``clock_nanosleep()`` if available (resolution: 1 nanosecond);" msgstr "" "Χρησιμοποιήστε το ``clock_nanosleep()`` αν είναι διαθέσιμο (ανάλυση: 1 " "nanosecond)." -#: library/time.rst:405 +#: library/time.rst:407 msgid "Or use ``nanosleep()`` if available (resolution: 1 nanosecond);" msgstr "" "Ή χρησιμοποιήστε το ``nanosleep()`` αν είναι διαθέσιμο (ανάλυση: 1 " "nanosecond);" -#: library/time.rst:406 +#: library/time.rst:408 msgid "Or use ``select()`` (resolution: 1 microsecond)." msgstr "Ή χρησιμοποιήστε το ``select()`` (ανάλυση: 1 microsecond)." -#: library/time.rst:410 +#: library/time.rst:412 msgid "" "To emulate a \"no-op\", use :keyword:`pass` instead of ``time.sleep(0)``." msgstr "" "Για να μιμηθείτε μια \"no-op\", χρησιμοποιήστε το :keyword:`pass` αντί για " "``time.sleep(0)``." -#: library/time.rst:412 +#: library/time.rst:414 msgid "" "To voluntarily relinquish the CPU, specify a real-time :ref:`scheduling " "policy ` and use :func:`os.sched_yield` instead." @@ -732,7 +735,7 @@ msgstr "" "policy ` σε πραγματικό χρόνο και χρησιμοποιήστε την :" "func:`os.sched_yield` αντί." -#: library/time.rst:415 +#: library/time.rst:417 msgid "" "Raises an :ref:`auditing event ` ``time.sleep`` with argument " "``secs``." @@ -740,7 +743,7 @@ msgstr "" "Κάνει raise ένα :ref:`auditing event ` ``time.sleep`` με όρισμα " "``secs``." -#: library/time.rst:417 +#: library/time.rst:419 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` " @@ -750,7 +753,7 @@ msgstr "" "από ένα σήμα, εκτός αν ο χειριστής σήματος κάνει raise μια εξαίρεση (δείτε " "το :pep:`475` για την αιτιολόγηση)." -#: library/time.rst:422 +#: library/time.rst:424 msgid "" "On Unix, the ``clock_nanosleep()`` and ``nanosleep()`` functions are now " "used if available. On Windows, a waitable timer is now used." @@ -759,11 +762,11 @@ msgstr "" "χρησιμοποιούνται αν είναι διαθέσιμες. Στα Windows, τώρα χρησιμοποιείται ένας " "χρονιστής που μπορεί να αναμένει." -#: library/time.rst:426 +#: library/time.rst:428 msgid "Raises an auditing event." msgstr "Κάνει raise ένα auditing event." -#: library/time.rst:434 +#: library/time.rst:436 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* " @@ -778,7 +781,7 @@ msgstr "" "Το *format* πρέπει να είναι μια συμβολοσειρά. Η :exc:`ValueError` γίνεται " "raise αν οποιοδήποτε πεδίο στο *t* είναι εκτός του επιτρεπτού εύρους." -#: library/time.rst:440 +#: library/time.rst:442 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." @@ -786,7 +789,7 @@ msgstr "" "0 είναι ένα νόμιμο όρισμα για οποιαδήποτε θέση στην πλειάδα χρόνου· αν είναι " "κανονικά παράνομο, η τιμή αναγκάζεται σε μια σωστή." -#: library/time.rst:443 +#: library/time.rst:445 msgid "" "The following directives can be embedded in the *format* string. They are " "shown without the optional field width and precision specification, and are " @@ -797,151 +800,151 @@ msgstr "" "και αντικαθίστανται από τους υποδεικνυόμενους χαρακτήρες στο αποτέλεσμα της :" "func:`strftime`:" -#: library/time.rst:448 +#: library/time.rst:450 msgid "Directive" msgstr "Οδηγία" -#: library/time.rst:448 +#: library/time.rst:450 msgid "Meaning" msgstr "Σημασία" -#: library/time.rst:448 +#: library/time.rst:450 msgid "Notes" msgstr "Σημειώσεις" -#: library/time.rst:450 +#: library/time.rst:452 msgid "``%a``" msgstr "``%a``" -#: library/time.rst:450 +#: library/time.rst:452 msgid "Locale's abbreviated weekday name." msgstr "Τοπικό συντομογραφημένο όνομα ημέρας της εβδομάδας." -#: library/time.rst:453 +#: library/time.rst:455 msgid "``%A``" msgstr "``%A``" -#: library/time.rst:453 +#: library/time.rst:455 msgid "Locale's full weekday name." msgstr "Τοπικό πλήρες όνομα ημέρας της εβδομάδας." -#: library/time.rst:455 +#: library/time.rst:457 msgid "``%b``" msgstr "``%b``" -#: library/time.rst:455 +#: library/time.rst:457 msgid "Locale's abbreviated month name." msgstr "Τοπικό συντομογραφημένο όνομα μήνα." -#: library/time.rst:458 +#: library/time.rst:460 msgid "``%B``" msgstr "``%B``" -#: library/time.rst:458 +#: library/time.rst:460 msgid "Locale's full month name." msgstr "Τοπικό πλήρες όνομα μήνα." -#: library/time.rst:460 +#: library/time.rst:462 msgid "``%c``" msgstr "``%c``" -#: library/time.rst:460 +#: library/time.rst:462 msgid "Locale's appropriate date and time representation." msgstr "Τοπική κατάλληλη αναπαράσταση ημερομηνίας και ώρας." -#: library/time.rst:463 +#: library/time.rst:465 msgid "``%d``" msgstr "``%d``" -#: library/time.rst:463 +#: library/time.rst:465 msgid "Day of the month as a decimal number [01,31]." msgstr "Ημέρα του μήνα ως δεκαδικός αριθμός [01,31]." -#: library/time.rst:466 +#: library/time.rst:468 msgid "``%f``" msgstr "``%f``" -#: library/time.rst:466 +#: library/time.rst:468 msgid "Microseconds as a decimal number" msgstr "Μικροδευτερόλεπτα ως δεκαδικός αριθμός" -#: library/time.rst:467 +#: library/time.rst:469 msgid "[000000,999999]." msgstr "[000000,999999]." -#: library/time.rst:466 +#: library/time.rst:468 msgid "\\(1)" msgstr "\\(1)" -#: library/time.rst:470 +#: library/time.rst:472 msgid "``%H``" msgstr "``%H``" -#: library/time.rst:470 +#: library/time.rst:472 msgid "Hour (24-hour clock) as a decimal number [00,23]." msgstr "Ώρα (ρολόι 24 ωρών) ως δεκαδικός αριθμός [00,23]." -#: library/time.rst:473 +#: library/time.rst:475 msgid "``%I``" msgstr "``%I``" -#: library/time.rst:473 +#: library/time.rst:475 msgid "Hour (12-hour clock) as a decimal number [01,12]." msgstr "Ώρα (ρολόι 12 ωρών) ως δεκαδικός αριθμός [01,12]." -#: library/time.rst:476 +#: library/time.rst:478 msgid "``%j``" msgstr "``%j``" -#: library/time.rst:476 +#: library/time.rst:478 msgid "Day of the year as a decimal number [001,366]." msgstr "Ημέρα του έτους ως δεκαδικός αριθμός [001,366]." -#: library/time.rst:479 +#: library/time.rst:481 msgid "``%m``" msgstr "``%m``" -#: library/time.rst:479 +#: library/time.rst:481 msgid "Month as a decimal number [01,12]." msgstr "Μήνας ως δεκαδικός αριθμός [01,12]." -#: library/time.rst:482 +#: library/time.rst:484 msgid "``%M``" msgstr "``%M``" -#: library/time.rst:482 +#: library/time.rst:484 msgid "Minute as a decimal number [00,59]." msgstr "Λεπτό ως δεκαδικός αριθμός [00,59]." -#: library/time.rst:485 +#: library/time.rst:487 msgid "``%p``" msgstr "``%p``" -#: library/time.rst:485 +#: library/time.rst:487 msgid "Locale's equivalent of either AM or PM." msgstr "Τοπικό ισοδύναμο είτε του AM είτε του PM." -#: library/time.rst:485 +#: library/time.rst:487 msgid "\\(2)" msgstr "\\(2)" -#: library/time.rst:488 +#: library/time.rst:490 msgid "``%S``" msgstr "``%S``" -#: library/time.rst:488 +#: library/time.rst:490 msgid "Second as a decimal number [00,61]." msgstr "Δευτερόλεπτο ως δεκαδικός αριθμός [00,61]." -#: library/time.rst:488 +#: library/time.rst:490 msgid "\\(3)" msgstr "\\(3)" -#: library/time.rst:491 +#: library/time.rst:493 msgid "``%U``" msgstr "``%U``" -#: library/time.rst:491 +#: library/time.rst:493 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 " @@ -951,33 +954,33 @@ msgstr "" "δεκαδικός αριθμός [00,53]. Όλες οι ημέρες σε ένα νέο έτος που προηγούνται " "της πρώτης Κυριακής θεωρούνται ότι είναι στην εβδομάδα 0." -#: library/time.rst:505 +#: library/time.rst:507 msgid "\\(4)" msgstr "\\(4)" -#: library/time.rst:499 +#: library/time.rst:501 msgid "``%u``" msgstr "``%u``" -#: library/time.rst:499 +#: library/time.rst:501 msgid "Day of the week (Monday is 1; Sunday is 7) as a decimal number [1, 7]." msgstr "" "Ημέρα της εβδομάδας (η Δευτέρα είναι 1· η Κυριακή είναι 7) ως δεκαδικός " "αριθμός [1, 7]." -#: library/time.rst:502 +#: library/time.rst:504 msgid "``%w``" msgstr "``%w``" -#: library/time.rst:502 +#: library/time.rst:504 msgid "Weekday as a decimal number [0(Sunday),6]." msgstr "Ημέρα της εβδομάδας ως δεκαδικός αριθμός [0(Κυριακή),6]." -#: library/time.rst:505 +#: library/time.rst:507 msgid "``%W``" msgstr "``%W``" -#: library/time.rst:505 +#: library/time.rst:507 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 " @@ -987,43 +990,43 @@ msgstr "" "δεκαδικός αριθμός [00,53]. Όλες οι ημέρες σε ένα νέο έτος που προηγούνται " "της πρώτης Δευτέρας θεωρούνται ότι είναι στην εβδομάδα 0." -#: library/time.rst:513 +#: library/time.rst:515 msgid "``%x``" msgstr "``%x``" -#: library/time.rst:513 +#: library/time.rst:515 msgid "Locale's appropriate date representation." msgstr "Τοπική κατάλληλη αναπαράσταση ημερομηνίας." -#: library/time.rst:516 +#: library/time.rst:518 msgid "``%X``" msgstr "``%X``" -#: library/time.rst:516 +#: library/time.rst:518 msgid "Locale's appropriate time representation." msgstr "Τοπική κατάλληλη αναπαράσταση ώρας." -#: library/time.rst:519 +#: library/time.rst:521 msgid "``%y``" msgstr "``%y``" -#: library/time.rst:519 +#: library/time.rst:521 msgid "Year without century as a decimal number [00,99]." msgstr "Έτος χωρίς αιώνα ως δεκαδικός αριθμός [00,99]." -#: library/time.rst:522 +#: library/time.rst:524 msgid "``%Y``" msgstr "``%Y``" -#: library/time.rst:522 +#: library/time.rst:524 msgid "Year with century as a decimal number." msgstr "Έτος με αιώνα ως δεκαδικός αριθμός." -#: library/time.rst:525 +#: library/time.rst:527 msgid "``%z``" msgstr "``%z``" -#: library/time.rst:525 +#: library/time.rst:527 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 " @@ -1034,21 +1037,21 @@ msgstr "" "ψηφία ώρας και το M αντιπροσωπεύει δεκαδικά ψηφία λεπτών [-23:59, +23:59]. " "[1]_" -#: library/time.rst:531 +#: library/time.rst:533 msgid "``%Z``" msgstr "``%Z``" -#: library/time.rst:531 +#: library/time.rst:533 msgid "Time zone name (no characters if no time zone exists). Deprecated. [1]_" msgstr "" "Όνομα ζώνης ώρας (κανένας χαρακτήρας αν δεν υπάρχει ζώνη ώρας). " "Απαρχαιωμένο. [1]_" -#: library/time.rst:534 +#: library/time.rst:536 msgid "``%G``" msgstr "``%G``" -#: library/time.rst:534 +#: library/time.rst:536 msgid "" "ISO 8601 year (similar to ``%Y`` but follows the rules for the ISO 8601 " "calendar year). The year starts with the week that contains the first " @@ -1058,11 +1061,11 @@ msgstr "" "8601 ημερολογιακό έτος). Το έτος ξεκινά με την εβδομάδα που περιέχει την " "πρώτη Πέμπτη του ημερολογιακού έτους." -#: library/time.rst:539 +#: library/time.rst:541 msgid "``%V``" msgstr "``%V``" -#: library/time.rst:539 +#: library/time.rst:541 msgid "" "ISO 8601 week number (as a decimal number [01,53]). The first week of the " "year is the one that contains the first Thursday of the year. Weeks start on " @@ -1072,19 +1075,19 @@ msgstr "" "του έτους είναι αυτή που περιέχει την πρώτη Πέμπτη του έτους. Οι εβδομάδες " "ξεκινούν τη Δευτέρα." -#: library/time.rst:544 +#: library/time.rst:546 msgid "``%%``" msgstr "``%%``" -#: library/time.rst:544 +#: library/time.rst:546 msgid "A literal ``'%'`` character." msgstr "Ένας κυριολεκτικός χαρακτήρας ``'%'``." -#: library/time.rst:547 +#: library/time.rst:549 msgid "Notes:" msgstr "Σημειώσεις:" -#: library/time.rst:550 +#: library/time.rst:552 msgid "" "The ``%f`` format directive only applies to :func:`strptime`, not to :func:" "`strftime`. However, see also :meth:`datetime.datetime.strptime` and :meth:" @@ -1096,7 +1099,7 @@ msgstr "" "strptime` και την :meth:`datetime.datetime.strftime` όπου η οδηγία " "μορφοποίησης ``%f`` :ref:`εφαρμόζεται στα μικροδευτερόλεπτα `." -#: library/time.rst:556 +#: library/time.rst:558 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 " @@ -1106,7 +1109,7 @@ msgstr "" "επηρεάζει μόνο το πεδίο ώρας εξόδου αν η οδηγία ``%I`` χρησιμοποιείται για " "την ανάλυση της ώρας." -#: library/time.rst:562 +#: library/time.rst:564 msgid "" "The range really is ``0`` to ``61``; value ``60`` is valid in timestamps " "representing `leap seconds`_ and value ``61`` is supported for historical " @@ -1116,7 +1119,7 @@ msgstr "" "σε χρονικές σφραγίδες που αναπαριστούν `leap seconds`_ και η τιμή ``61`` " "υποστηρίζεται για ιστορικούς λόγους." -#: library/time.rst:567 +#: library/time.rst:569 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." @@ -1125,16 +1128,16 @@ msgstr "" "χρησιμοποιούνται μόνο σε υπολογισμούς όταν η ημέρα της εβδομάδας και το έτος " "καθορίζονται." -#: library/time.rst:570 +#: library/time.rst:572 msgid "" "Here is an example, a format for dates compatible with that specified in " -"the :rfc:`2822` Internet email standard. [1]_ ::" +"the :rfc:`5322` Internet email standard. [1]_ ::" msgstr "" "Εδώ είναι ένα παράδειγμα, μια μορφή για ημερομηνίες συμβατή με αυτή που " -"καθορίζεται στο :rfc:`2822` πρότυπο ηλεκτρονικού ταχυδρομείου Internet. " +"καθορίζεται στο :rfc:`5322` πρότυπο ηλεκτρονικού ταχυδρομείου Internet. " "[1]_ ::" -#: library/time.rst:573 +#: library/time.rst:575 msgid "" ">>> from time import gmtime, strftime\n" ">>> strftime(\"%a, %d %b %Y %H:%M:%S +0000\", gmtime())\n" @@ -1144,7 +1147,7 @@ msgstr "" ">>> strftime(\"%a, %d %b %Y %H:%M:%S +0000\", gmtime())\n" "'Thu, 28 Jun 2001 14:17:15 +0000'" -#: library/time.rst:577 +#: library/time.rst:579 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 " @@ -1157,7 +1160,7 @@ msgstr "" "υποστηρίζονται στην πλατφόρμα σας, συμβουλευτείτε την τεκμηρίωση :manpage:" "`strftime(3)`." -#: library/time.rst:582 +#: library/time.rst:584 msgid "" "On some platforms, an optional field width and precision specification can " "immediately follow the initial ``'%'`` of a directive in the following " @@ -1169,7 +1172,7 @@ msgstr "" "εξής σειρά· αυτό επίσης δεν είναι φορητό. Το πλάτος πεδίου είναι κανονικά 2 " "εκτός από το ``%j`` όπου είναι 3." -#: library/time.rst:593 +#: library/time.rst:595 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`." @@ -1178,7 +1181,7 @@ msgstr "" "επιστρεφόμενη τιμή είναι μια :class:`struct_time` όπως επιστρέφεται από την :" "func:`gmtime` ή την :func:`localtime`." -#: library/time.rst:597 +#: library/time.rst:599 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 " @@ -1198,11 +1201,11 @@ msgstr "" "ακριβείς τιμές είναι ``(1900, 1, 1, 0, 0, 0, 0, 1, -1)``. Τόσο το *string* " "όσο και το *format* πρέπει να είναι συμβολοσειρές." -#: library/time.rst:605 +#: library/time.rst:607 msgid "For example:" msgstr "Για παράδειγμα:" -#: library/time.rst:612 +#: library/time.rst:614 msgid "" "Support for the ``%Z`` directive is based on the values contained in " "``tzname`` and whether ``daylight`` is true. Because of this, it is " @@ -1214,7 +1217,7 @@ msgstr "" "ειδική για την πλατφόρμα εκτός από την αναγνώριση των UTC και GMT που είναι " "πάντα γνωστά (και θεωρούνται ότι δεν είναι ζώνες ώρας θερινής ώρας)." -#: library/time.rst:617 +#: library/time.rst:619 msgid "" "Only the directives specified in the documentation are supported. Because " "``strftime()`` is implemented per platform it can sometimes offer more " @@ -1229,7 +1232,7 @@ msgstr "" "απαραίτητα όλες τις διαθέσιμες οδηγίες που δεν τεκμηριώνονται ως " "υποστηριζόμενες." -#: library/time.rst:626 +#: library/time.rst:628 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 " @@ -1241,104 +1244,104 @@ msgstr "" "μια :term:`named tuple` διεπαφή: οι τιμές μπορούν να προσπελαστεί με δείκτη " "και με όνομα χαρακτηριστικού. Παρουσιάζονται οι ακόλουθες τιμές:" -#: library/time.rst:633 +#: library/time.rst:635 msgid "Index" msgstr "Δείκτης" -#: library/time.rst:634 +#: library/time.rst:636 msgid "Attribute" msgstr "Χαρακτηριστικό" -#: library/time.rst:635 +#: library/time.rst:637 msgid "Values" msgstr "Τιμές" -#: library/time.rst:637 +#: library/time.rst:639 msgid "0" msgstr "0" -#: library/time.rst:639 +#: library/time.rst:641 msgid "(for example, 1993)" msgstr "(για παράδειγμα, 1993)" -#: library/time.rst:641 +#: library/time.rst:643 msgid "1" msgstr "1" -#: library/time.rst:643 +#: library/time.rst:645 msgid "range [1, 12]" msgstr "εύρος [1, 12]" -#: library/time.rst:645 +#: library/time.rst:647 msgid "2" msgstr "2" -#: library/time.rst:647 +#: library/time.rst:649 msgid "range [1, 31]" msgstr "εύρος [1, 31]" -#: library/time.rst:649 +#: library/time.rst:651 msgid "3" msgstr "3" -#: library/time.rst:651 +#: library/time.rst:653 msgid "range [0, 23]" msgstr "εύρος [0, 23]" -#: library/time.rst:653 +#: library/time.rst:655 msgid "4" msgstr "4" -#: library/time.rst:655 +#: library/time.rst:657 msgid "range [0, 59]" msgstr "εύρος [0, 59]" -#: library/time.rst:657 +#: library/time.rst:659 msgid "5" msgstr "5" -#: library/time.rst:659 +#: library/time.rst:661 msgid "range [0, 61]; see :ref:`Note (2) ` in :func:`strftime`" msgstr "" " εύρος [0, 61]; δείτε :ref:`Note (2) ` στην :func:`strftime`" -#: library/time.rst:661 +#: library/time.rst:663 msgid "6" msgstr "6" -#: library/time.rst:663 +#: library/time.rst:665 msgid "range [0, 6]; Monday is 0" msgstr "εύρος [0, 6]; η Δευτέρα είναι 0" -#: library/time.rst:665 +#: library/time.rst:667 msgid "7" msgstr "7" -#: library/time.rst:667 +#: library/time.rst:669 msgid "range [1, 366]" msgstr "εύρος [1, 366]" -#: library/time.rst:669 +#: library/time.rst:671 msgid "8" msgstr "8" -#: library/time.rst:671 +#: library/time.rst:673 msgid "0, 1 or -1; see below" msgstr "0, 1 ή -1; δείτε παρακάτω" -#: library/time.rst:677 +#: library/time.rst:679 msgid "N/A" msgstr "N/A" -#: library/time.rst:675 +#: library/time.rst:677 msgid "abbreviation of timezone name" msgstr "συντομογραφία ονόματος ζώνης ώρας" -#: library/time.rst:679 +#: library/time.rst:681 msgid "offset east of UTC in seconds" msgstr "μετατόπιση ανατολικά του UTC σε δευτερόλεπτα" -#: library/time.rst:681 +#: library/time.rst:683 msgid "" "Note that unlike the C structure, the month value is a range of [1, 12], not " "[0, 11]." @@ -1346,7 +1349,7 @@ msgstr "" "Σημειώστε ότι σε αντίθεση με τη δομή C, η τιμή του μήνα είναι σε εύρος [1, " "12], όχι [0, 11]." -#: library/time.rst:684 +#: library/time.rst:686 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 " @@ -1358,7 +1361,7 @@ msgstr "" "ότι αυτό δεν είναι γνωστό, και συνήθως θα έχει ως αποτέλεσμα τη συμπλήρωση " "της σωστής κατάστασης." -#: library/time.rst:688 +#: library/time.rst:690 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:" @@ -1368,7 +1371,7 @@ msgstr "" "μια :class:`struct_time`, ή έχει στοιχεία λάθος τύπου, γίνεται raise μια :" "exc:`TypeError`." -#: library/time.rst:694 +#: library/time.rst:696 msgid "" "Return the time in seconds since the epoch_ as a floating-point number. The " "handling of `leap seconds`_ is platform dependent. On Windows and most Unix " @@ -1382,7 +1385,7 @@ msgstr "" "υπολογίζονται στον χρόνο σε δευτερόλεπτα από την epoch_. Αυτό αναφέρεται " "συνήθως ως `Unix time `_." -#: library/time.rst:700 +#: library/time.rst:702 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. " @@ -1396,7 +1399,7 @@ msgstr "" "μπορεί να επιστρέψει μια χαμηλότερη τιμή από μια προηγούμενη κλήση αν το " "ρολόι του συστήματος έχει οριστεί πίσω μεταξύ των δύο κλήσεων." -#: library/time.rst:706 +#: library/time.rst:708 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 :" @@ -1412,19 +1415,19 @@ msgstr "" "επιστρέφεται ένα αντικείμενο :class:`struct_time`, από το οποίο τα στοιχεία " "της ημερολογιακής ημερομηνίας μπορούν να προσπελαστούν ως χαρακτηριστικά." -#: library/time.rst:715 -msgid "On Windows, call ``GetSystemTimeAsFileTime()``." -msgstr "Στα Windows, καλέστε την ``GetSystemTimeAsFileTime()``." +#: library/time.rst:717 +msgid "On Windows, call ``GetSystemTimePreciseAsFileTime()``." +msgstr "Στα Windows, καλέστε την ``GetSystemTimePreciseAsFileTime()``." -#: library/time.rst:716 +#: library/time.rst:718 msgid "Call ``clock_gettime(CLOCK_REALTIME)`` if available." msgstr "Καλέστε την ``clock_gettime(CLOCK_REALTIME)`` αν είναι διαθέσιμη." -#: library/time.rst:717 +#: library/time.rst:719 msgid "Otherwise, call ``gettimeofday()``." msgstr "Διαφορετικά, καλέστε την ``gettimeofday()``." -#: library/time.rst:719 +#: library/time.rst:721 msgid "" "Use :func:`time_ns` to avoid the precision loss caused by the :class:`float` " "type." @@ -1432,7 +1435,15 @@ msgstr "" "Χρησιμοποιήστε την :func:`time_ns` για να αποφύγετε την απώλεια ακρίβειας " "που προκαλείται από τον τύπο :class:`float`." -#: library/time.rst:725 +#: library/time.rst:726 +msgid "" +"On Windows, calls ``GetSystemTimePreciseAsFileTime()`` instead of " +"``GetSystemTimeAsFileTime()``." +msgstr "" +"Στα Windows, καλέστε την ``GetSystemTimePreciseAsFileTime()`` αντί για την " +"``GetSystemTimeAsFileTime()``." + +#: library/time.rst:732 msgid "" "Similar to :func:`~time.time` but returns time as an integer number of " "nanoseconds since the epoch_." @@ -1440,7 +1451,7 @@ msgstr "" "Παρόμοιο με την :func:`~time.time` αλλά επιστρέφει τον χρόνο ως ακέραιο " "αριθμό νανοδευτερολέπτων από την epoch_." -#: library/time.rst:738 +#: library/time.rst:745 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 " @@ -1455,7 +1466,7 @@ msgstr "" "απροσδιόριστο, έτσι ώστε μόνο η διαφορά μεταξύ των αποτελεσμάτων δύο κλήσεων " "στο ίδιο νήμα να είναι έγκυρη." -#: library/time.rst:744 +#: library/time.rst:751 msgid "" "Use :func:`thread_time_ns` to avoid the precision loss caused by the :class:" "`float` type." @@ -1463,17 +1474,17 @@ msgstr "" "Χρησιμοποιήστε την :func:`thread_time_ns` για να αποφύγετε την απώλεια " "ακρίβειας που προκαλείται από τον τύπο :class:`float`." -#: library/time.rst:749 +#: library/time.rst:756 msgid "Unix systems supporting ``CLOCK_THREAD_CPUTIME_ID``." msgstr "Συστήματα Unix που υποστηρίζουν το ``CLOCK_THREAD_CPUTIME_ID``." -#: library/time.rst:756 +#: library/time.rst:763 msgid "Similar to :func:`thread_time` but return time as nanoseconds." msgstr "" "Παρόμοιο με την :func:`thread_time` αλλά επιστρέφει τον χρόνο ως " "νανοδευτερόλεπτα." -#: library/time.rst:763 +#: library/time.rst:770 msgid "" "Reset the time conversion rules used by the library routines. The " "environment variable :envvar:`TZ` specifies how this is done. It will also " @@ -1491,7 +1502,7 @@ msgstr "" "αν αυτή η ζώνη ώρας δεν έχει κανόνες θερινής ώρας, ή σε μη μηδενικό αν " "υπάρχει μια ώρα, παρελθούσα, παρούσα ή μελλοντική όταν ισχύει η θερινή ώρα)." -#: library/time.rst:775 +#: library/time.rst:782 msgid "" "Although in many cases, changing the :envvar:`TZ` environment variable may " "affect the output of functions like :func:`localtime` without calling :func:" @@ -1502,11 +1513,11 @@ msgstr "" "χωρίς να καλέσει την :func:`tzset`, αυτή η συμπεριφορά δεν πρέπει να " "βασίζεται." -#: library/time.rst:779 +#: library/time.rst:786 msgid "The :envvar:`TZ` environment variable should contain no whitespace." msgstr "Η μεταβλητή περιβάλλοντος :envvar:`TZ` δεν πρέπει να περιέχει κενά." -#: library/time.rst:781 +#: library/time.rst:788 msgid "" "The standard format of the :envvar:`TZ` environment variable is (whitespace " "added for clarity)::" @@ -1514,19 +1525,19 @@ msgstr "" "Η τυπική μορφή της μεταβλητής περιβάλλοντος :envvar:`TZ` είναι (προστέθηκε " "κενό για σαφήνεια)::" -#: library/time.rst:784 +#: library/time.rst:791 msgid "std offset [dst [offset [,start[/time], end[/time]]]]" msgstr "std offset [dst [offset [,start[/time], end[/time]]]]" -#: library/time.rst:786 +#: library/time.rst:793 msgid "Where the components are:" msgstr "Όπου τα συστατικά είναι:" -#: library/time.rst:788 +#: library/time.rst:795 msgid "``std`` and ``dst``" msgstr "``std`` και ``dst``" -#: library/time.rst:789 +#: library/time.rst:796 msgid "" "Three or more alphanumerics giving the timezone abbreviations. These will be " "propagated into time.tzname" @@ -1534,11 +1545,11 @@ msgstr "" "Τρεις ή περισσότερες αλφαριθμητικές που δίνουν τις συντομογραφίες ζώνης " "ώρας. Αυτές θα προωθηθούν στο time.tzname" -#: library/time.rst:792 +#: library/time.rst:799 msgid "``offset``" msgstr "``offset``" -#: library/time.rst:793 +#: library/time.rst:800 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 " @@ -1551,11 +1562,11 @@ msgstr "" "δυτικά. Αν δεν ακολουθεί μετατόπιση μετά το dst, η θερινή ώρα θεωρείται ότι " "είναι μία ώρα μπροστά από την κανονική ώρα." -#: library/time.rst:798 +#: library/time.rst:805 msgid "``start[/time], end[/time]``" msgstr "``start[/time], end[/time]``" -#: library/time.rst:799 +#: library/time.rst:806 msgid "" "Indicates when to change to and back from DST. The format of the start and " "end dates are one of the following:" @@ -1563,11 +1574,11 @@ msgstr "" "Υποδεικνύει πότε να αλλάξει σε και από το DST. Η μορφή των ημερομηνιών " "έναρξης και λήξης είναι μία από τις ακόλουθες:" -#: library/time.rst:802 +#: library/time.rst:809 msgid ":samp:`J{n}`" msgstr ":samp:`J{n}`" -#: library/time.rst:803 +#: library/time.rst:810 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." @@ -1576,11 +1587,11 @@ msgstr "" "οπότε σε όλα τα έτη η 28η Φεβρουαρίου είναι η ημέρα 59 και η 1η Μαρτίου " "είναι η ημέρα 60." -#: library/time.rst:806 +#: library/time.rst:813 msgid ":samp:`{n}`" msgstr ":samp:`{n}`" -#: library/time.rst:807 +#: library/time.rst:814 msgid "" "The zero-based Julian day (0 <= *n* <= 365). Leap days are counted, and it " "is possible to refer to February 29." @@ -1588,11 +1599,11 @@ msgstr "" "Η Ιουλιανή ημέρα με βάση το μηδέν (0 <= *n* <= 365). Οι δίσεκτες ημέρες " "μετριούνται, και είναι δυνατόν να αναφερθεί η 29η Φεβρουαρίου." -#: library/time.rst:810 +#: library/time.rst:817 msgid ":samp:`M{m}.{n}.{d}`" msgstr ":samp:`M{m}.{n}.{d}`" -#: library/time.rst:811 +#: library/time.rst:818 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 " @@ -1605,7 +1616,7 @@ msgstr "" "εβδομάδα). Η εβδομάδα 1 είναι η πρώτη εβδομάδα στην οποία συμβαίνει η *d*'η " "ημέρα. Η ημέρα μηδέν είναι η Κυριακή." -#: library/time.rst:817 +#: library/time.rst:824 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." @@ -1614,7 +1625,7 @@ msgstr "" "επιτρέπεται προθετικός χαρακτήρας ('-' ή '+'). Η προεπιλογή, αν δεν δοθεί " "χρόνος, είναι 02:00:00." -#: library/time.rst:822 +#: library/time.rst:829 msgid "" ">>> os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'\n" ">>> time.tzset()\n" @@ -1634,7 +1645,7 @@ msgstr "" ">>> time.strftime('%X %x %Z')\n" "'16:08:12 05/08/03 AEST'" -#: library/time.rst:831 +#: library/time.rst:838 msgid "" "On many Unix systems (including \\*BSD, Linux, Solaris, and Darwin), it is " "more convenient to use the system's zoneinfo (:manpage:`tzfile(5)`) " @@ -1653,7 +1664,7 @@ msgstr "" "βρίσκεται στο :file:`/usr/share/zoneinfo`. Για παράδειγμα, ``'US/Eastern'``, " "``'Australia/Melbourne'``, ``'Egypt'`` ή ``'Europe/Amsterdam'``. ::" -#: library/time.rst:839 +#: library/time.rst:846 msgid "" ">>> os.environ['TZ'] = 'US/Eastern'\n" ">>> time.tzset()\n" @@ -1673,11 +1684,11 @@ msgstr "" ">>> time.tzname\n" "('EET', 'EEST')" -#: library/time.rst:852 +#: library/time.rst:859 msgid "Clock ID Constants" msgstr "Σταθερές αναγνωριστικού ρολογιού" -#: library/time.rst:854 +#: library/time.rst:861 msgid "" "These constants are used as parameters for :func:`clock_getres` and :func:" "`clock_gettime`." @@ -1685,7 +1696,7 @@ msgstr "" "Αυτές οι σταθερές χρησιμοποιούνται ως παράμετροι για την :func:" "`clock_getres` και την :func:`clock_gettime`." -#: library/time.rst:859 +#: library/time.rst:866 msgid "" "Identical to :data:`CLOCK_MONOTONIC`, except it also includes any time that " "the system is suspended." @@ -1693,7 +1704,7 @@ msgstr "" "Ταυτόσημο με το :data:`CLOCK_MONOTONIC`, εκτός από το ότι περιλαμβάνει " "επίσης οποιονδήποτε χρόνο που το σύστημα είναι σε αναστολή." -#: library/time.rst:862 +#: library/time.rst:869 msgid "" "This allows applications to get a suspend-aware monotonic clock without " "having to deal with the complications of :data:`CLOCK_REALTIME`, which may " @@ -1705,7 +1716,7 @@ msgstr "" "`CLOCK_REALTIME`, το οποίο μπορεί να έχει ασυνέχειες εάν ο χρόνος αλλάξει " "χρησιμοποιώντας την ``settimeofday()`` ή παρόμοια." -#: library/time.rst:874 +#: library/time.rst:881 msgid "" "The Solaris OS has a ``CLOCK_HIGHRES`` timer that attempts to use an optimal " "hardware source, and may give close to nanosecond resolution. " @@ -1716,7 +1727,7 @@ msgstr "" "σχεδόν ανάλυση νανοδευτερολέπτων. Το ``CLOCK_HIGHRES`` είναι το μη " "ρυθμιζόμενο, ρολόι υψηλής ανάλυσης." -#: library/time.rst:885 +#: library/time.rst:892 msgid "" "Clock that cannot be set and represents monotonic time since some " "unspecified starting point." @@ -1724,7 +1735,7 @@ msgstr "" "Ρολόι που δεν μπορεί να ρυθμιστεί και αντιπροσωπεύει τον μονότονο χρόνο από " "ένα απροσδιόριστο σημείο εκκίνησης." -#: library/time.rst:895 +#: library/time.rst:902 msgid "" "Similar to :data:`CLOCK_MONOTONIC`, but provides access to a raw hardware-" "based time that is not subject to NTP adjustments." @@ -1732,7 +1743,7 @@ msgstr "" "Παρόμοιο με το :data:`CLOCK_MONOTONIC`, αλλά παρέχει πρόσβαση σε έναν " "ακατέργαστο χρόνο βασισμένο σε υλικό που δεν υπόκειται σε ρυθμίσεις NTP." -#: library/time.rst:904 +#: library/time.rst:911 msgid "" "Similar to :data:`CLOCK_MONOTONIC_RAW`, but reads a value cached by the " "system at context switch and hence has less accuracy." @@ -1741,19 +1752,19 @@ msgstr "" "αποθηκευτεί στην κρυφή μνήμη από το σύστημα κατά την αλλαγή πλαισίου και " "επομένως έχει λιγότερη ακρίβεια." -#: library/time.rst:923 +#: library/time.rst:930 msgid "High-resolution per-process timer from the CPU." msgstr "Υψηλής ανάλυσης χρονομετρητής ανά διεργασία από την CPU." -#: library/time.rst:931 +#: library/time.rst:938 msgid "" "`International Atomic Time `_" +"division/how-utcnist-related-coordinated-universal-time-utc-international>`_" msgstr "" "`International Atomic Time `_" +"division/how-utcnist-related-coordinated-universal-time-utc-international>`_" -#: library/time.rst:933 +#: library/time.rst:940 msgid "" "The system must have a current leap second table in order for this to give " "the correct answer. PTP or NTP software can maintain a leap second table." @@ -1762,11 +1773,11 @@ msgstr "" "σωστή απάντηση. Το λογισμικό PTP ή NTP μπορεί να διατηρήσει έναν πίνακα leap " "second." -#: library/time.rst:942 +#: library/time.rst:949 msgid "Thread-specific CPU-time clock." msgstr "Ρολόι χρόνου CPU ειδικό για νήμα." -#: library/time.rst:951 +#: library/time.rst:958 msgid "" "Time whose absolute value is the time the system has been running and not " "suspended, providing accurate uptime measurement, both absolute and interval." @@ -1775,7 +1786,7 @@ msgstr "" "λειτουργεί και δεν έχει ανασταλεί, παρέχοντας ακριβή μέτρηση χρόνου " "λειτουργίας, τόσο απόλυτη όσο και διαστήματος." -#: library/time.rst:962 +#: library/time.rst:969 msgid "" "Clock that increments monotonically, tracking the time since an arbitrary " "point, unaffected by frequency or time adjustments and not incremented while " @@ -1785,7 +1796,7 @@ msgstr "" "σημείο, ανεπηρέαστο από ρυθμίσεις συχνότητας ή χρόνου και δεν αυξάνεται ενώ " "το σύστημα είναι σε κατάσταση ύπνου." -#: library/time.rst:972 +#: library/time.rst:979 msgid "" "Like :data:`CLOCK_UPTIME_RAW`, but the value is cached by the system at " "context switches and therefore has less accuracy." @@ -1793,7 +1804,7 @@ msgstr "" "Όπως το :data:`CLOCK_UPTIME_RAW`, αλλά η τιμή αποθηκεύεται στην κρυφή μνήμη " "από το σύστημα κατά τις αλλαγές πλαισίου και επομένως έχει λιγότερη ακρίβεια." -#: library/time.rst:979 +#: library/time.rst:986 msgid "" "The following constant is the only parameter that can be sent to :func:" "`clock_settime`." @@ -1801,19 +1812,19 @@ msgstr "" "The following constant is the only parameter that can be sent to :func:" "`clock_settime`." -#: library/time.rst:985 +#: library/time.rst:992 msgid "" -"System-wide real-time clock. Setting this clock requires appropriate " -"privileges." +"Real-time clock. Setting this clock requires appropriate privileges. The " +"clock is the same for all processes." msgstr "" -"Σύστημα-ευρύ ρολόι πραγματικού χρόνου. Η ρύθμιση αυτού του ρολογιού απαιτεί " -"κατάλληλα προνόμια." +"Ρολόι πραγματικού χρόνου. Η ρύθμιση αυτού του ρολογιού απαιτεί κατάλληλα " +"προνόμια. Το ρολόι είναι το ίδιο για όλες τις διεργασίες." -#: library/time.rst:996 +#: library/time.rst:1003 msgid "Timezone Constants" msgstr "Σταθερές ζώνης ώρας" -#: library/time.rst:1000 +#: library/time.rst:1007 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 " @@ -1826,11 +1837,11 @@ msgstr "" "Βασιλείου). Χρησιμοποιήστε αυτό μόνο αν το ``daylight`` είναι μη μηδενικό. " "Δείτε την σημείωση παρακάτω." -#: library/time.rst:1006 +#: library/time.rst:1013 msgid "Nonzero if a DST timezone is defined. See note below." msgstr "Μη μηδενικό αν οριστεί μια ζώνη ώρας DST. Δείτε την σημείωση παρακάτω." -#: library/time.rst:1010 +#: library/time.rst:1017 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 " @@ -1840,7 +1851,7 @@ msgstr "" "(αρνητικό στο μεγαλύτερο μέρος της Δυτικής Ευρώπης, θετικό στις ΗΠΑ, μηδέν " "στο Ηνωμένο Βασίλειο). Δείτε την σημείωση παρακάτω." -#: library/time.rst:1015 +#: library/time.rst:1022 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 " @@ -1851,7 +1862,7 @@ msgstr "" "οριστεί ζώνη ώρας DST, η δεύτερη συμβολοσειρά δεν πρέπει να χρησιμοποιηθεί. " "Δείτε την σημείωση παρακάτω." -#: library/time.rst:1021 +#: library/time.rst:1028 msgid "" "For the above Timezone constants (:data:`altzone`, :data:`daylight`, :data:" "`timezone`, and :data:`tzname`), the value is determined by the timezone " @@ -1868,19 +1879,19 @@ msgstr "" "και :attr:`~struct_time.tm_zone` αποτελέσματα από την :func:`localtime` για " "να λάβετε πληροφορίες ζώνης ώρας." -#: library/time.rst:1030 +#: library/time.rst:1037 msgid "Module :mod:`datetime`" msgstr "Module :mod:`datetime`" -#: library/time.rst:1031 +#: library/time.rst:1038 msgid "More object-oriented interface to dates and times." msgstr "Πιο αντικειμενοστραφής διεπαφή για ημερομηνίες και ώρες." -#: library/time.rst:1033 +#: library/time.rst:1040 msgid "Module :mod:`locale`" msgstr "Module :mod:`locale`" -#: library/time.rst:1034 +#: library/time.rst:1041 msgid "" "Internationalization services. The locale setting affects the " "interpretation of many format specifiers in :func:`strftime` and :func:" @@ -1890,11 +1901,11 @@ msgstr "" "πολλών προδιαγραφών μορφοποίησης στην :func:`strftime` και την :func:" "`strptime`." -#: library/time.rst:1037 +#: library/time.rst:1044 msgid "Module :mod:`calendar`" msgstr "Module :mod:`calendar`" -#: library/time.rst:1038 +#: library/time.rst:1045 msgid "" "General calendar-related functions. :func:`~calendar.timegm` is the " "inverse of :func:`gmtime` from this module." @@ -1902,11 +1913,11 @@ msgstr "" "Γενικές συναρτήσεις σχετικές με το ημερολόγιο. Η :func:`~calendar.timegm` " "είναι η αντίστροφη της :func:`gmtime` από αυτή τη μονάδα." -#: library/time.rst:1042 +#: library/time.rst:1049 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: library/time.rst:1043 +#: library/time.rst:1050 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. " @@ -1914,7 +1925,7 @@ msgid "" "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`." +"by :rfc:`2822`, with :rfc:`5322` continuing this requirement." msgstr "" "Η χρήση του ``%Z`` είναι πλέον αποσυρμένη, αλλά η διαφυγή ``%z`` που " "επεκτείνεται σε την προτιμώμενη μετατόπιση ώρας/λεπτού δεν υποστηρίζεται από " @@ -1923,7 +1934,7 @@ msgstr "" "``%Y``), αλλά η πρακτική μετακινήθηκε σε έτη με 4 ψηφία πολύ πριν από το " "έτος 2000. Μετά από αυτό, το :rfc:`822` έγινε παρωχημένο και το έτος με 4 " "ψηφία έχει προταθεί πρώτα από το :rfc:`1123` και στη συνέχεια επιβλήθηκε από " -"το :rfc:`2822`." +"το :rfc:`2822`, με το :rfc:`5322` να συνεχίζει αυτή την απαίτηση." #: library/time.rst:22 msgid "epoch" @@ -1953,22 +1964,30 @@ msgstr "Μεσημβρινή Ώρα Γκρίνουιτς" msgid "Daylight Saving Time" msgstr "Θερινή Ώρα" -#: library/time.rst:358 library/time.rst:733 +#: library/time.rst:360 library/time.rst:740 msgid "benchmarking" msgstr "μετρήσεις απόδοσης" -#: library/time.rst:733 +#: library/time.rst:740 msgid "CPU time" msgstr "χρόνος CPU" -#: library/time.rst:733 +#: library/time.rst:740 msgid "processor time" msgstr "χρόνος επεξεργαστή" -#: library/time.rst:588 +#: library/time.rst:590 msgid "% (percent)" msgstr "% (ποσοστό)" -#: library/time.rst:588 +#: library/time.rst:590 msgid "datetime format" msgstr "μορφή ημερομηνίας και ώρας" + +#~ 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`` αν το ρολόι μπορεί να αλλάξει αυτόματα (π.χ. από " +#~ "ένα NTP daemon) ή χειροκίνητα από τον διαχειριστή συστήματος, διαφορετικά " +#~ "``False``" diff --git a/library/timeit.po b/library/timeit.po index e6a352ba..babca0e7 100644 --- a/library/timeit.po +++ b/library/timeit.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/tk.po b/library/tk.po index 972a226f..dd9ceb94 100644 --- a/library/tk.po +++ b/library/tk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: library/tk.rst:5 -msgid "Graphical User Interfaces with Tk" +msgid "Graphical user interfaces with Tk" msgstr "" #: library/tk.rst:13 diff --git a/library/tkinter.colorchooser.po b/library/tkinter.colorchooser.po index 43d59778..a8096125 100644 --- a/library/tkinter.colorchooser.po +++ b/library/tkinter.colorchooser.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/tkinter.dnd.po b/library/tkinter.dnd.po index f07cf43d..479491a7 100644 --- a/library/tkinter.dnd.po +++ b/library/tkinter.dnd.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/tkinter.font.po b/library/tkinter.font.po index e3ceef03..8b77b9f5 100644 --- a/library/tkinter.font.po +++ b/library/tkinter.font.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/tkinter.messagebox.po b/library/tkinter.messagebox.po index 0493a971..c1916b06 100644 --- a/library/tkinter.messagebox.po +++ b/library/tkinter.messagebox.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/tkinter.po b/library/tkinter.po index 67165f6e..e6c14e5d 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -66,97 +66,105 @@ msgid "" "and can be woefully outdated." msgstr "" -#: library/tkinter.rst:41 +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." +msgstr "" + +#: library/tkinter.rst:43 msgid "`TkDocs `_" msgstr "" -#: library/tkinter.rst:42 +#: library/tkinter.rst:44 msgid "" "Extensive tutorial on creating user interfaces with Tkinter. Explains key " "concepts, and illustrates recommended approaches using the modern API." msgstr "" -#: library/tkinter.rst:45 +#: library/tkinter.rst:47 msgid "" "`Tkinter 8.5 reference: a GUI for Python `_" msgstr "" -#: library/tkinter.rst:46 +#: library/tkinter.rst:48 msgid "" "Reference documentation for Tkinter 8.5 detailing available classes, " "methods, and options." msgstr "" -#: library/tkinter.rst:48 +#: library/tkinter.rst:50 msgid "Tcl/Tk Resources:" msgstr "" -#: library/tkinter.rst:50 +#: library/tkinter.rst:52 msgid "`Tk commands `_" msgstr "" -#: library/tkinter.rst:51 +#: library/tkinter.rst:53 msgid "" "Comprehensive reference to each of the underlying Tcl/Tk commands used by " "Tkinter." msgstr "" -#: library/tkinter.rst:53 +#: library/tkinter.rst:55 msgid "`Tcl/Tk Home Page `_" msgstr "" -#: library/tkinter.rst:54 +#: library/tkinter.rst:56 msgid "Additional documentation, and links to Tcl/Tk core development." msgstr "" -#: library/tkinter.rst:56 +#: library/tkinter.rst:58 msgid "Books:" msgstr "" -#: library/tkinter.rst:58 +#: library/tkinter.rst:60 msgid "" "`Modern Tkinter for Busy Python Developers `_" msgstr "" -#: library/tkinter.rst:59 +#: library/tkinter.rst:61 msgid "By Mark Roseman. (ISBN 978-1999149567)" msgstr "" -#: library/tkinter.rst:61 +#: library/tkinter.rst:63 msgid "" "`Python GUI programming with Tkinter `_" msgstr "" -#: library/tkinter.rst:62 +#: library/tkinter.rst:64 msgid "By Alan D. Moore. (ISBN 978-1788835886)" msgstr "" -#: library/tkinter.rst:64 +#: library/tkinter.rst:66 msgid "`Programming Python `_" msgstr "" -#: library/tkinter.rst:65 +#: library/tkinter.rst:67 msgid "By Mark Lutz; has excellent coverage of Tkinter. (ISBN 978-0596158101)" msgstr "" -#: library/tkinter.rst:67 +#: library/tkinter.rst:69 msgid "" "`Tcl and the Tk Toolkit (2nd edition) `_" msgstr "" -#: library/tkinter.rst:68 +#: library/tkinter.rst:70 msgid "" "By John Ousterhout, inventor of Tcl/Tk, and Ken Jones; does not cover " "Tkinter. (ISBN 978-0321336330)" msgstr "" -#: library/tkinter.rst:72 +#: library/tkinter.rst:74 msgid "Architecture" msgstr "" -#: library/tkinter.rst:74 +#: library/tkinter.rst:76 msgid "" "Tcl/Tk is not a single library but rather consists of a few distinct " "modules, each with separate functionality and its own official " @@ -164,11 +172,11 @@ msgid "" "with it." msgstr "" -#: library/tkinter.rst:79 +#: library/tkinter.rst:81 msgid "Tcl" msgstr "" -#: library/tkinter.rst:80 +#: library/tkinter.rst:82 msgid "" "Tcl is a dynamic interpreted programming language, just like Python. Though " "it can be used on its own as a general-purpose programming language, it is " @@ -182,11 +190,11 @@ msgid "" "difference (see `Threading model`_ for details)." msgstr "" -#: library/tkinter.rst:907 +#: library/tkinter.rst:908 msgid "Tk" msgstr "" -#: library/tkinter.rst:93 +#: library/tkinter.rst:95 msgid "" "Tk is a `Tcl package `_ implemented in C " "that adds custom commands to create and manipulate GUI widgets. Each :class:" @@ -195,11 +203,11 @@ msgid "" "appearance. Tk uses Tcl's event queue to generate and process GUI events." msgstr "" -#: library/tkinter.rst:99 +#: library/tkinter.rst:101 msgid "Ttk" msgstr "" -#: library/tkinter.rst:100 +#: library/tkinter.rst:102 msgid "" "Themed Tk (Ttk) is a newer family of Tk widgets that provide a much better " "appearance on different platforms than many of the classic Tk widgets. Ttk " @@ -207,13 +215,13 @@ msgid "" "are provided in a separate module, :mod:`tkinter.ttk`." msgstr "" -#: library/tkinter.rst:105 +#: library/tkinter.rst:107 msgid "" "Internally, Tk and Ttk use facilities of the underlying operating system, i." "e., Xlib on Unix/X11, Cocoa on macOS, GDI on Windows." msgstr "" -#: library/tkinter.rst:108 +#: library/tkinter.rst:110 msgid "" "When your Python application uses a class in Tkinter, e.g., to create a " "widget, the :mod:`tkinter` module first assembles a Tcl/Tk command string. " @@ -223,91 +231,91 @@ msgid "" "turn make calls to Xlib, Cocoa, or GDI." msgstr "" -#: library/tkinter.rst:116 +#: library/tkinter.rst:118 msgid "Tkinter Modules" msgstr "" -#: library/tkinter.rst:118 +#: library/tkinter.rst:120 msgid "" "Support for Tkinter is spread across several modules. Most applications will " "need the main :mod:`tkinter` module, as well as the :mod:`tkinter.ttk` " "module, which provides the modern themed widget set and API::" msgstr "" -#: library/tkinter.rst:123 +#: library/tkinter.rst:125 msgid "" "from tkinter import *\n" "from tkinter import ttk" msgstr "" -#: library/tkinter.rst:129 +#: library/tkinter.rst:131 msgid "" "Construct a toplevel Tk widget, which is usually the main window of an " "application, and initialize a Tcl interpreter for this widget. Each " "instance has its own associated Tcl interpreter." msgstr "" -#: library/tkinter.rst:133 +#: library/tkinter.rst:135 msgid "" "The :class:`Tk` class is typically instantiated using all default values. " "However, the following keyword arguments are currently recognized:" msgstr "" -#: library/tkinter.rst:136 +#: library/tkinter.rst:138 msgid "*screenName*" msgstr "" -#: library/tkinter.rst:137 +#: library/tkinter.rst:139 msgid "" "When given (as a string), sets the :envvar:`DISPLAY` environment variable. " "(X11 only)" msgstr "" -#: library/tkinter.rst:139 +#: library/tkinter.rst:141 msgid "*baseName*" msgstr "" -#: library/tkinter.rst:140 +#: library/tkinter.rst:142 msgid "" "Name of the profile file. By default, *baseName* is derived from the " "program name (``sys.argv[0]``)." msgstr "" -#: library/tkinter.rst:142 +#: library/tkinter.rst:144 msgid "*className*" msgstr "" -#: library/tkinter.rst:143 +#: library/tkinter.rst:145 msgid "" "Name of the widget class. Used as a profile file and also as the name with " "which Tcl is invoked (*argv0* in *interp*)." msgstr "" -#: library/tkinter.rst:145 +#: library/tkinter.rst:147 msgid "*useTk*" msgstr "" -#: library/tkinter.rst:146 +#: library/tkinter.rst:148 msgid "" "If ``True``, initialize the Tk subsystem. The :func:`tkinter.Tcl() ` " "function sets this to ``False``." msgstr "" -#: library/tkinter.rst:148 +#: library/tkinter.rst:150 msgid "*sync*" msgstr "" -#: library/tkinter.rst:149 +#: library/tkinter.rst:151 msgid "" "If ``True``, execute all X server commands synchronously, so that errors are " "reported immediately. Can be used for debugging. (X11 only)" msgstr "" -#: library/tkinter.rst:151 +#: library/tkinter.rst:153 msgid "*use*" msgstr "" -#: library/tkinter.rst:152 +#: library/tkinter.rst:154 msgid "" "Specifies the *id* of the window in which to embed the application, instead " "of it being created as an independent toplevel window. *id* must be " @@ -315,13 +323,13 @@ msgid "" "widgets (that is, it has a form like that returned by :meth:`winfo_id`)." msgstr "" -#: library/tkinter.rst:158 +#: library/tkinter.rst:160 msgid "" "Note that on some platforms this will only work correctly if *id* refers to " "a Tk frame or toplevel that has its -container option enabled." msgstr "" -#: library/tkinter.rst:161 +#: library/tkinter.rst:163 msgid "" ":class:`Tk` reads and interprets profile files, named :file:`.{className}." "tcl` and :file:`.{baseName}.tcl`, into the Tcl interpreter and calls :func:" @@ -330,14 +338,14 @@ msgid "" "variable or, if that isn't defined, then :data:`os.curdir`." msgstr "" -#: library/tkinter.rst:170 +#: library/tkinter.rst:172 msgid "" "The Tk application object created by instantiating :class:`Tk`. This " "provides access to the Tcl interpreter. Each widget that is attached the " "same instance of :class:`Tk` has the same value for its :attr:`tk` attribute." msgstr "" -#: library/tkinter.rst:177 +#: library/tkinter.rst:179 msgid "" "The widget object that contains this widget. For :class:`Tk`, the *master* " "is :const:`None` because it is the main window. The terms *master* and " @@ -348,13 +356,13 @@ msgid "" "structure." msgstr "" -#: library/tkinter.rst:187 +#: library/tkinter.rst:189 msgid "" "The immediate descendants of this widget as a :class:`dict` with the child " "widget names as the keys and the child instance objects as the values." msgstr "" -#: library/tkinter.rst:194 +#: library/tkinter.rst:196 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 " @@ -366,93 +374,93 @@ msgid "" "`loadtk` method." msgstr "" -#: library/tkinter.rst:203 +#: library/tkinter.rst:205 msgid "The modules that provide Tk support include:" msgstr "" -#: library/tkinter.rst:205 +#: library/tkinter.rst:207 msgid ":mod:`tkinter`" msgstr "" -#: library/tkinter.rst:206 +#: library/tkinter.rst:208 msgid "Main Tkinter module." msgstr "" -#: library/tkinter.rst:208 +#: library/tkinter.rst:210 msgid ":mod:`tkinter.colorchooser`" msgstr "" -#: library/tkinter.rst:209 +#: library/tkinter.rst:211 msgid "Dialog to let the user choose a color." msgstr "" -#: library/tkinter.rst:211 +#: library/tkinter.rst:213 msgid ":mod:`tkinter.commondialog`" msgstr "" -#: library/tkinter.rst:212 +#: library/tkinter.rst:214 msgid "Base class for the dialogs defined in the other modules listed here." msgstr "" -#: library/tkinter.rst:214 +#: library/tkinter.rst:216 msgid ":mod:`tkinter.filedialog`" msgstr "" -#: library/tkinter.rst:215 +#: library/tkinter.rst:217 msgid "Common dialogs to allow the user to specify a file to open or save." msgstr "" -#: library/tkinter.rst:217 +#: library/tkinter.rst:219 msgid ":mod:`tkinter.font`" msgstr "" -#: library/tkinter.rst:218 +#: library/tkinter.rst:220 msgid "Utilities to help work with fonts." msgstr "" -#: library/tkinter.rst:220 +#: library/tkinter.rst:222 msgid ":mod:`tkinter.messagebox`" msgstr "" -#: library/tkinter.rst:221 +#: library/tkinter.rst:223 msgid "Access to standard Tk dialog boxes." msgstr "" -#: library/tkinter.rst:223 +#: library/tkinter.rst:225 msgid ":mod:`tkinter.scrolledtext`" msgstr "" -#: library/tkinter.rst:224 +#: library/tkinter.rst:226 msgid "Text widget with a vertical scroll bar built in." msgstr "" -#: library/tkinter.rst:226 +#: library/tkinter.rst:228 msgid ":mod:`tkinter.simpledialog`" msgstr "" -#: library/tkinter.rst:227 +#: library/tkinter.rst:229 msgid "Basic dialogs and convenience functions." msgstr "" -#: library/tkinter.rst:229 +#: library/tkinter.rst:231 msgid ":mod:`tkinter.ttk`" msgstr "" -#: library/tkinter.rst:230 +#: library/tkinter.rst:232 msgid "" "Themed widget set introduced in Tk 8.5, providing modern alternatives for " "many of the classic widgets in the main :mod:`tkinter` module." msgstr "" -#: library/tkinter.rst:233 +#: library/tkinter.rst:235 msgid "Additional modules:" msgstr "" -#: library/tkinter.rst:238 +#: library/tkinter.rst:240 msgid ":mod:`_tkinter`" msgstr "" -#: library/tkinter.rst:239 +#: library/tkinter.rst:241 msgid "" "A binary module that contains the low-level interface to Tcl/Tk. It is " "automatically imported by the main :mod:`tkinter` module, and should never " @@ -461,50 +469,50 @@ msgid "" "interpreter." msgstr "" -#: library/tkinter.rst:245 +#: library/tkinter.rst:247 msgid ":mod:`idlelib`" msgstr "" -#: library/tkinter.rst:246 +#: library/tkinter.rst:248 msgid "" "Python's Integrated Development and Learning Environment (IDLE). Based on :" "mod:`tkinter`." msgstr "" -#: library/tkinter.rst:249 +#: library/tkinter.rst:251 msgid ":mod:`tkinter.constants`" msgstr "" -#: library/tkinter.rst:250 +#: library/tkinter.rst:252 msgid "" "Symbolic constants that can be used in place of strings when passing various " "parameters to Tkinter calls. Automatically imported by the main :mod:" "`tkinter` module." msgstr "" -#: library/tkinter.rst:254 +#: library/tkinter.rst:256 msgid ":mod:`tkinter.dnd`" msgstr "" -#: library/tkinter.rst:255 +#: library/tkinter.rst:257 msgid "" "(experimental) Drag-and-drop support for :mod:`tkinter`. This will become " "deprecated when it is replaced with the Tk DND." msgstr "" -#: library/tkinter.rst:258 +#: library/tkinter.rst:260 msgid ":mod:`turtle`" msgstr "" -#: library/tkinter.rst:259 +#: library/tkinter.rst:261 msgid "Turtle graphics in a Tk window." msgstr "" -#: library/tkinter.rst:263 +#: library/tkinter.rst:265 msgid "Tkinter Life Preserver" msgstr "" -#: library/tkinter.rst:265 +#: library/tkinter.rst:267 msgid "" "This section is not designed to be an exhaustive tutorial on either Tk or " "Tkinter. For that, refer to one of the external resources noted earlier. " @@ -513,7 +521,7 @@ msgid "" "how the Tkinter wrapper is structured." msgstr "" -#: library/tkinter.rst:271 +#: library/tkinter.rst:273 msgid "" "The remainder of this section will help you to identify the classes, " "methods, and options you'll need in your Tkinter application, and where to " @@ -521,18 +529,18 @@ msgid "" "reference manual." msgstr "" -#: library/tkinter.rst:278 +#: library/tkinter.rst:280 msgid "A Hello World Program" msgstr "" -#: library/tkinter.rst:280 +#: library/tkinter.rst:282 msgid "" "We'll start by walking through a \"Hello World\" application in Tkinter. " "This isn't the smallest one we could write, but has enough to illustrate " "some key concepts you'll need to know." msgstr "" -#: library/tkinter.rst:286 +#: library/tkinter.rst:288 msgid "" "from tkinter import *\n" "from tkinter import ttk\n" @@ -544,7 +552,7 @@ msgid "" "root.mainloop()" msgstr "" -#: library/tkinter.rst:296 +#: library/tkinter.rst:298 msgid "" "After the imports, the next line creates an instance of the :class:`Tk` " "class, which initializes Tk and creates its associated Tcl interpreter. It " @@ -552,56 +560,56 @@ msgid "" "the main window of the application." msgstr "" -#: library/tkinter.rst:301 +#: library/tkinter.rst:303 msgid "" "The following line creates a frame widget, which in this case will contain a " "label and a button we'll create next. The frame is fit inside the root " "window." msgstr "" -#: library/tkinter.rst:305 +#: library/tkinter.rst:307 msgid "" "The next line creates a label widget holding a static text string. The :meth:" "`grid` method is used to specify the relative layout (position) of the label " "within its containing frame widget, similar to how tables in HTML work." msgstr "" -#: library/tkinter.rst:309 +#: library/tkinter.rst:311 msgid "" "A button widget is then created, and placed to the right of the label. When " "pressed, it will call the :meth:`destroy` method of the root window." msgstr "" -#: library/tkinter.rst:312 +#: library/tkinter.rst:314 msgid "" "Finally, the :meth:`mainloop` method puts everything on the display, and " "responds to user input until the program terminates." msgstr "" -#: library/tkinter.rst:318 +#: library/tkinter.rst:320 msgid "Important Tk Concepts" msgstr "" -#: library/tkinter.rst:320 +#: library/tkinter.rst:322 msgid "Even this simple program illustrates the following key Tk concepts:" msgstr "" -#: library/tkinter.rst:322 +#: library/tkinter.rst:324 msgid "widgets" msgstr "" -#: library/tkinter.rst:323 +#: library/tkinter.rst:325 msgid "" "A Tkinter user interface is made up of individual *widgets*. Each widget is " "represented as a Python object, instantiated from classes like :class:`ttk." "Frame`, :class:`ttk.Label`, and :class:`ttk.Button`." msgstr "" -#: library/tkinter.rst:327 +#: library/tkinter.rst:329 msgid "widget hierarchy" msgstr "" -#: library/tkinter.rst:328 +#: library/tkinter.rst:330 msgid "" "Widgets are arranged in a *hierarchy*. The label and button were contained " "within a frame, which in turn was contained within the root window. When " @@ -609,44 +617,44 @@ msgid "" "argument to the widget constructor." msgstr "" -#: library/tkinter.rst:333 +#: library/tkinter.rst:335 msgid "configuration options" msgstr "" -#: library/tkinter.rst:334 +#: library/tkinter.rst:336 msgid "" "Widgets have *configuration options*, which modify their appearance and " "behavior, such as the text to display in a label or button. Different " "classes of widgets will have different sets of options." msgstr "" -#: library/tkinter.rst:338 +#: library/tkinter.rst:340 msgid "geometry management" msgstr "" -#: library/tkinter.rst:339 +#: library/tkinter.rst:341 msgid "" "Widgets aren't automatically added to the user interface when they are " "created. A *geometry manager* like ``grid`` controls where in the user " "interface they are placed." msgstr "" -#: library/tkinter.rst:343 +#: library/tkinter.rst:345 msgid "event loop" msgstr "" -#: library/tkinter.rst:344 +#: library/tkinter.rst:346 msgid "" "Tkinter reacts to user input, changes from your program, and even refreshes " "the display only when actively running an *event loop*. If your program " "isn't running the event loop, your user interface won't update." msgstr "" -#: library/tkinter.rst:350 +#: library/tkinter.rst:352 msgid "Understanding How Tkinter Wraps Tcl/Tk" msgstr "" -#: library/tkinter.rst:352 +#: library/tkinter.rst:354 msgid "" "When your application uses Tkinter's classes and methods, internally Tkinter " "is assembling strings representing Tcl/Tk commands, and executing those " @@ -654,7 +662,7 @@ msgid "" "instance." msgstr "" -#: library/tkinter.rst:357 +#: library/tkinter.rst:359 msgid "" "Whether it's trying to navigate reference documentation, trying to find the " "right method or option, adapting some existing code, or debugging your " @@ -662,13 +670,13 @@ msgid "" "what those underlying Tcl/Tk commands look like." msgstr "" -#: library/tkinter.rst:362 +#: library/tkinter.rst:364 msgid "" "To illustrate, here is the Tcl/Tk equivalent of the main part of the Tkinter " "script above." msgstr "" -#: library/tkinter.rst:367 +#: library/tkinter.rst:369 msgid "" "ttk::frame .frm -padding 10\n" "grid .frm\n" @@ -677,7 +685,7 @@ msgid "" "row 0" msgstr "" -#: library/tkinter.rst:373 +#: library/tkinter.rst:375 msgid "" "Tcl's syntax is similar to many shell languages, where the first word is the " "command to be executed, with arguments to that command following it, " @@ -685,25 +693,25 @@ msgid "" "following:" msgstr "" -#: library/tkinter.rst:377 +#: library/tkinter.rst:379 msgid "" "The commands used to create widgets (like ``ttk::frame``) correspond to " "widget classes in Tkinter." msgstr "" -#: library/tkinter.rst:380 +#: library/tkinter.rst:382 msgid "" "Tcl widget options (like ``-text``) correspond to keyword arguments in " "Tkinter." msgstr "" -#: library/tkinter.rst:383 +#: library/tkinter.rst:385 msgid "" "Widgets are referred to by a *pathname* in Tcl (like ``.frm.btn``), whereas " "Tkinter doesn't use names but object references." msgstr "" -#: library/tkinter.rst:386 +#: library/tkinter.rst:388 msgid "" "A widget's place in the widget hierarchy is encoded in its (hierarchical) " "pathname, which uses a ``.`` (dot) as a path separator. The pathname for the " @@ -711,27 +719,27 @@ msgid "" "pathname but by specifying the parent widget when creating each child widget." msgstr "" -#: library/tkinter.rst:392 +#: library/tkinter.rst:394 msgid "" "Operations which are implemented as separate *commands* in Tcl (like " "``grid`` or ``destroy``) are represented as *methods* on Tkinter widget " "objects. As you'll see shortly, at other times Tcl uses what appear to be " -"method calls on widget objects, which more closely mirror what would is used " -"in Tkinter." +"method calls on widget objects, which more closely mirror what is used in " +"Tkinter." msgstr "" -#: library/tkinter.rst:400 +#: library/tkinter.rst:402 msgid "How do I...? What option does...?" msgstr "" -#: library/tkinter.rst:402 +#: library/tkinter.rst:404 msgid "" "If you're not sure how to do something in Tkinter, and you can't immediately " "find it in the tutorial or reference documentation you're using, there are a " "few strategies that can be helpful." msgstr "" -#: library/tkinter.rst:406 +#: library/tkinter.rst:408 msgid "" "First, remember that the details of how individual widgets work may vary " "across different versions of both Tkinter and Tcl/Tk. If you're searching " @@ -739,7 +747,7 @@ msgid "" "installed on your system." msgstr "" -#: library/tkinter.rst:411 +#: library/tkinter.rst:413 msgid "" "When searching for how to use an API, it helps to know the exact name of the " "class, option, or method that you're using. Introspection, either in an " @@ -747,7 +755,7 @@ msgid "" "you need." msgstr "" -#: library/tkinter.rst:416 +#: library/tkinter.rst:418 msgid "" "To find out what configuration options are available on any widget, call " "its :meth:`configure` method, which returns a dictionary containing a " @@ -755,13 +763,13 @@ msgid "" "values. Use :meth:`keys` to get just the names of each option." msgstr "" -#: library/tkinter.rst:423 +#: library/tkinter.rst:425 msgid "" "btn = ttk.Button(frm, ...)\n" "print(btn.configure().keys())" msgstr "" -#: library/tkinter.rst:426 +#: library/tkinter.rst:428 msgid "" "As most widgets have many configuration options in common, it can be useful " "to find out which are specific to a particular widget class. Comparing the " @@ -769,11 +777,11 @@ msgid "" "that." msgstr "" -#: library/tkinter.rst:433 +#: library/tkinter.rst:435 msgid "print(set(btn.configure().keys()) - set(frm.configure().keys()))" msgstr "" -#: library/tkinter.rst:435 +#: library/tkinter.rst:437 msgid "" "Similarly, you can find the available methods for a widget object using the " "standard :func:`dir` function. If you try it, you'll see there are over 200 " @@ -781,17 +789,17 @@ msgid "" "is helpful." msgstr "" -#: library/tkinter.rst:442 +#: library/tkinter.rst:444 msgid "" "print(dir(btn))\n" "print(set(dir(btn)) - set(dir(frm)))" msgstr "" -#: library/tkinter.rst:447 +#: library/tkinter.rst:449 msgid "Navigating the Tcl/Tk Reference Manual" msgstr "" -#: library/tkinter.rst:449 +#: library/tkinter.rst:451 msgid "" "As noted, the official `Tk commands `_ reference manual (man pages) is often the most accurate " @@ -800,7 +808,7 @@ msgid "" "places to look." msgstr "" -#: library/tkinter.rst:454 +#: library/tkinter.rst:456 msgid "" "While all operations in Tkinter are implemented as method calls on widget " "objects, you've seen that many Tcl/Tk operations appear as commands that " @@ -808,13 +816,13 @@ msgid "" "parameters, e.g." msgstr "" -#: library/tkinter.rst:461 +#: library/tkinter.rst:463 msgid "" "destroy .\n" "grid .frm.btn -column 0 -row 0" msgstr "" -#: library/tkinter.rst:464 +#: library/tkinter.rst:466 msgid "" "Others, however, look more like methods called on a widget object (in fact, " "when you create a widget in Tcl/Tk, it creates a Tcl command with the name " @@ -822,13 +830,13 @@ msgid "" "name of a method to call)." msgstr "" -#: library/tkinter.rst:471 +#: library/tkinter.rst:473 msgid "" ".frm.btn invoke\n" ".frm.lbl configure -text \"Goodbye\"" msgstr "" -#: library/tkinter.rst:475 +#: library/tkinter.rst:477 msgid "" "In the official Tcl/Tk reference documentation, you'll find most operations " "that look like method calls on the man page for a specific widget (e.g., " @@ -838,7 +846,7 @@ msgid "" "www.tcl.tk/man/tcl8.6/TkCmd/grid.htm>`_)." msgstr "" -#: library/tkinter.rst:483 +#: library/tkinter.rst:485 msgid "" "You'll find many common options and methods in the `options `_ or `ttk::widget `_ man page." msgstr "" -#: library/tkinter.rst:494 +#: library/tkinter.rst:496 msgid "" "Somewhat confusingly, there are also methods on all Tkinter widgets that " "don't actually operate on the widget, but operate at a global scope, " @@ -863,17 +871,17 @@ msgid "" "class:`Widget` class that all Tkinter widgets inherit from)." msgstr "" -#: library/tkinter.rst:503 +#: library/tkinter.rst:505 msgid "Threading model" msgstr "" -#: library/tkinter.rst:505 +#: library/tkinter.rst:507 msgid "" "Python and Tcl/Tk have very different threading models, which :mod:`tkinter` " "tries to bridge. If you use threads, you may need to be aware of this." msgstr "" -#: library/tkinter.rst:508 +#: library/tkinter.rst:510 msgid "" "A Python interpreter may have many threads associated with it. In Tcl, " "multiple threads can be created, but each thread has a separate Tcl " @@ -882,7 +890,7 @@ msgid "" "by the one thread that created it." msgstr "" -#: library/tkinter.rst:513 +#: library/tkinter.rst:515 msgid "" "Each :class:`Tk` object created by :mod:`tkinter` contains a Tcl " "interpreter. It also keeps track of which thread created that interpreter. " @@ -892,7 +900,7 @@ msgid "" "executed, the result is returned to the calling Python thread." msgstr "" -#: library/tkinter.rst:520 +#: library/tkinter.rst:522 msgid "" "Tcl/Tk applications are normally event-driven, meaning that after " "initialization, the interpreter runs an event loop (i.e. :func:`Tk." @@ -905,18 +913,18 @@ msgid "" "event handlers." msgstr "" -#: library/tkinter.rst:529 +#: library/tkinter.rst:531 msgid "" "If the Tcl interpreter is not running the event loop and processing events, " "any :mod:`tkinter` calls made from threads other than the one running the " "Tcl interpreter will fail." msgstr "" -#: library/tkinter.rst:533 +#: library/tkinter.rst:535 msgid "A number of special cases exist:" msgstr "" -#: library/tkinter.rst:535 +#: library/tkinter.rst:537 msgid "" "Tcl/Tk libraries can be built so they are not thread-aware. In this case, :" "mod:`tkinter` calls the library from the originating Python thread, even if " @@ -924,7 +932,7 @@ msgid "" "lock ensures only one call occurs at a time." msgstr "" -#: library/tkinter.rst:540 +#: library/tkinter.rst:542 msgid "" "While :mod:`tkinter` allows you to create more than one instance of a :class:" "`Tk` object (with its own interpreter), all interpreters that are part of " @@ -934,7 +942,7 @@ msgid "" "running a thread-aware Tcl/Tk build." msgstr "" -#: library/tkinter.rst:546 +#: library/tkinter.rst:548 msgid "" "Blocking event handlers are not the only way to prevent the Tcl interpreter " "from reentering the event loop. It is even possible to run multiple nested " @@ -942,61 +950,61 @@ msgid "" "tricky when it comes to events or threads, be aware of these possibilities." msgstr "" -#: library/tkinter.rst:551 +#: library/tkinter.rst:553 msgid "" "There are a few select :mod:`tkinter` functions that presently work only " "when called from the thread that created the Tcl interpreter." msgstr "" -#: library/tkinter.rst:556 +#: library/tkinter.rst:558 msgid "Handy Reference" msgstr "" -#: library/tkinter.rst:562 +#: library/tkinter.rst:564 msgid "Setting Options" msgstr "" -#: library/tkinter.rst:564 +#: library/tkinter.rst:566 msgid "" "Options control things like the color and border width of a widget. Options " "can be set in three ways:" msgstr "" -#: library/tkinter.rst:567 +#: library/tkinter.rst:569 msgid "At object creation time, using keyword arguments" msgstr "" -#: library/tkinter.rst:570 +#: library/tkinter.rst:572 msgid "fred = Button(self, fg=\"red\", bg=\"blue\")" msgstr "" -#: library/tkinter.rst:572 +#: library/tkinter.rst:574 msgid "After object creation, treating the option name like a dictionary index" msgstr "" -#: library/tkinter.rst:575 +#: library/tkinter.rst:577 msgid "" "fred[\"fg\"] = \"red\"\n" "fred[\"bg\"] = \"blue\"" msgstr "" -#: library/tkinter.rst:578 +#: library/tkinter.rst:580 msgid "" "Use the config() method to update multiple attrs subsequent to object " "creation" msgstr "" -#: library/tkinter.rst:581 +#: library/tkinter.rst:583 msgid "fred.config(fg=\"red\", bg=\"blue\")" msgstr "" -#: library/tkinter.rst:583 +#: library/tkinter.rst:585 msgid "" "For a complete explanation of a given option and its behavior, see the Tk " "man pages for the widget in question." msgstr "" -#: library/tkinter.rst:586 +#: library/tkinter.rst:588 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 " @@ -1005,7 +1013,7 @@ msgid "" "`options(3)` man page." msgstr "" -#: library/tkinter.rst:592 +#: library/tkinter.rst:594 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 " @@ -1013,7 +1021,7 @@ msgid "" "widget; buttons have a ``command`` option, labels do not." msgstr "" -#: library/tkinter.rst:597 +#: library/tkinter.rst:599 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 " @@ -1022,7 +1030,7 @@ msgid "" "option as a string (for example, ``'relief'``) and whose values are 5-tuples." msgstr "" -#: library/tkinter.rst:603 +#: library/tkinter.rst:605 msgid "" "Some options, like ``bg`` are synonyms for common options with long names " "(``bg`` is shorthand for \"background\"). Passing the ``config()`` method " @@ -1031,95 +1039,95 @@ msgid "" "option (such as ``('bg', 'background')``)." msgstr "" -#: library/tkinter.rst:610 +#: library/tkinter.rst:612 msgid "Index" msgstr "" -#: library/tkinter.rst:610 +#: library/tkinter.rst:612 msgid "Meaning" msgstr "" -#: library/tkinter.rst:610 +#: library/tkinter.rst:612 msgid "Example" msgstr "" -#: library/tkinter.rst:612 +#: library/tkinter.rst:614 msgid "0" msgstr "" -#: library/tkinter.rst:612 +#: library/tkinter.rst:614 msgid "option name" msgstr "" -#: library/tkinter.rst:614 +#: library/tkinter.rst:616 msgid "``'relief'``" msgstr "" -#: library/tkinter.rst:614 +#: library/tkinter.rst:616 msgid "1" msgstr "" -#: library/tkinter.rst:614 +#: library/tkinter.rst:616 msgid "option name for database lookup" msgstr "" -#: library/tkinter.rst:616 +#: library/tkinter.rst:618 msgid "2" msgstr "" -#: library/tkinter.rst:616 +#: library/tkinter.rst:618 msgid "option class for database lookup" msgstr "" -#: library/tkinter.rst:616 +#: library/tkinter.rst:618 msgid "``'Relief'``" msgstr "" -#: library/tkinter.rst:619 +#: library/tkinter.rst:621 msgid "3" msgstr "" -#: library/tkinter.rst:619 +#: library/tkinter.rst:621 msgid "default value" msgstr "" -#: library/tkinter.rst:619 +#: library/tkinter.rst:621 msgid "``'raised'``" msgstr "" -#: library/tkinter.rst:621 +#: library/tkinter.rst:623 msgid "4" msgstr "" -#: library/tkinter.rst:621 +#: library/tkinter.rst:623 msgid "current value" msgstr "" -#: library/tkinter.rst:621 +#: library/tkinter.rst:623 msgid "``'groove'``" msgstr "" -#: library/tkinter.rst:624 +#: library/tkinter.rst:626 msgid "Example::" msgstr "" -#: library/tkinter.rst:626 +#: library/tkinter.rst:628 msgid "" ">>> print(fred.config())\n" "{'relief': ('relief', 'relief', 'Relief', 'raised', 'groove')}" msgstr "" -#: library/tkinter.rst:629 +#: library/tkinter.rst:631 msgid "" "Of course, the dictionary printed will include all the options available and " "their values. This is meant only as an example." msgstr "" -#: library/tkinter.rst:634 +#: library/tkinter.rst:636 msgid "The Packer" msgstr "" -#: library/tkinter.rst:638 +#: library/tkinter.rst:640 msgid "" "The packer is one of Tk's geometry-management mechanisms. Geometry " "managers are used to specify the relative positioning of widgets within " @@ -1130,7 +1138,7 @@ msgid "" "coordinates for you." msgstr "" -#: library/tkinter.rst:645 +#: library/tkinter.rst:647 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 " @@ -1140,7 +1148,7 @@ msgid "" "accommodate incremental changes to the configuration, once it is packed." msgstr "" -#: library/tkinter.rst:652 +#: library/tkinter.rst:654 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 " @@ -1149,86 +1157,86 @@ msgid "" "the packer's :meth:`pack` method applied to it." msgstr "" -#: library/tkinter.rst:658 +#: library/tkinter.rst:660 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 "" -#: library/tkinter.rst:662 +#: library/tkinter.rst:664 msgid "" "fred.pack() # defaults to side = \"top\"\n" "fred.pack(side=\"left\")\n" "fred.pack(expand=1)" msgstr "" -#: library/tkinter.rst:668 +#: library/tkinter.rst:670 msgid "Packer Options" msgstr "" -#: library/tkinter.rst:670 +#: library/tkinter.rst:672 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 "" -#: library/tkinter.rst:792 +#: library/tkinter.rst:794 msgid "anchor" msgstr "" -#: library/tkinter.rst:674 +#: library/tkinter.rst:676 msgid "" "Anchor type. Denotes where the packer is to place each slave in its parcel." msgstr "" -#: library/tkinter.rst:676 +#: library/tkinter.rst:678 msgid "expand" msgstr "" -#: library/tkinter.rst:677 +#: library/tkinter.rst:679 msgid "Boolean, ``0`` or ``1``." msgstr "" -#: library/tkinter.rst:679 +#: library/tkinter.rst:681 msgid "fill" msgstr "" -#: library/tkinter.rst:680 +#: library/tkinter.rst:682 msgid "Legal values: ``'x'``, ``'y'``, ``'both'``, ``'none'``." msgstr "" -#: library/tkinter.rst:682 +#: library/tkinter.rst:684 msgid "ipadx and ipady" msgstr "" -#: library/tkinter.rst:683 +#: library/tkinter.rst:685 msgid "" "A distance - designating internal padding on each side of the slave widget." msgstr "" -#: library/tkinter.rst:685 +#: library/tkinter.rst:687 msgid "padx and pady" msgstr "" -#: library/tkinter.rst:686 +#: library/tkinter.rst:688 msgid "" "A distance - designating external padding on each side of the slave widget." msgstr "" -#: library/tkinter.rst:688 +#: library/tkinter.rst:690 msgid "side" msgstr "" -#: library/tkinter.rst:689 +#: library/tkinter.rst:691 msgid "Legal values are: ``'left'``, ``'right'``, ``'top'``, ``'bottom'``." msgstr "" -#: library/tkinter.rst:693 +#: library/tkinter.rst:695 msgid "Coupling Widget Variables" msgstr "" -#: library/tkinter.rst:695 +#: library/tkinter.rst:697 msgid "" "The current-value setting of some widgets (like text entry widgets) can be " "connected directly to application variables by using special options. These " @@ -1238,7 +1246,7 @@ msgid "" "value." msgstr "" -#: library/tkinter.rst:701 +#: library/tkinter.rst:703 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 " @@ -1247,7 +1255,7 @@ msgid "" "Variable, defined in :mod:`tkinter`." msgstr "" -#: library/tkinter.rst:707 +#: library/tkinter.rst:709 msgid "" "There are many useful subclasses of Variable already defined: :class:" "`StringVar`, :class:`IntVar`, :class:`DoubleVar`, and :class:`BooleanVar`. " @@ -1257,11 +1265,11 @@ msgid "" "no further intervention on your part." msgstr "" -#: library/tkinter.rst:894 +#: library/tkinter.rst:895 msgid "For example::" msgstr "" -#: library/tkinter.rst:716 +#: library/tkinter.rst:718 msgid "" "import tkinter as tk\n" "\n" @@ -1294,11 +1302,11 @@ msgid "" "myapp.mainloop()" msgstr "" -#: library/tkinter.rst:747 +#: library/tkinter.rst:749 msgid "The Window Manager" msgstr "" -#: library/tkinter.rst:751 +#: library/tkinter.rst:753 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 " @@ -1308,7 +1316,7 @@ msgid "" "the :class:`Wm` methods directly." msgstr "" -#: library/tkinter.rst:758 +#: library/tkinter.rst:760 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 " @@ -1319,11 +1327,11 @@ msgid "" "to Tk functionality." msgstr "" -#: library/tkinter.rst:765 +#: library/tkinter.rst:767 msgid "Here are some examples of typical usage::" msgstr "" -#: library/tkinter.rst:767 +#: library/tkinter.rst:769 msgid "" "import tkinter as tk\n" "\n" @@ -1345,22 +1353,22 @@ msgid "" "myapp.mainloop()" msgstr "" -#: library/tkinter.rst:790 +#: library/tkinter.rst:792 msgid "Tk Option Data Types" msgstr "" -#: library/tkinter.rst:793 +#: library/tkinter.rst:795 msgid "" "Legal values are points of the compass: ``\"n\"``, ``\"ne\"``, ``\"e\"``, " "``\"se\"``, ``\"s\"``, ``\"sw\"``, ``\"w\"``, ``\"nw\"``, and also " "``\"center\"``." msgstr "" -#: library/tkinter.rst:796 +#: library/tkinter.rst:798 msgid "bitmap" msgstr "" -#: library/tkinter.rst:797 +#: library/tkinter.rst:799 msgid "" "There are eight built-in, named bitmaps: ``'error'``, ``'gray25'``, " "``'gray50'``, ``'hourglass'``, ``'info'``, ``'questhead'``, ``'question'``, " @@ -1368,34 +1376,34 @@ msgid "" "file, preceded with an ``@``, as in ``\"@/usr/contrib/bitmap/gumby.bit\"``." msgstr "" -#: library/tkinter.rst:802 +#: library/tkinter.rst:804 msgid "boolean" msgstr "" -#: library/tkinter.rst:803 +#: library/tkinter.rst:805 msgid "You can pass integers 0 or 1 or the strings ``\"yes\"`` or ``\"no\"``." msgstr "" -#: library/tkinter.rst:805 +#: library/tkinter.rst:807 msgid "callback" msgstr "" -#: library/tkinter.rst:806 +#: library/tkinter.rst:808 msgid "This is any Python function that takes no arguments. For example::" msgstr "" -#: library/tkinter.rst:808 +#: library/tkinter.rst:810 msgid "" "def print_it():\n" " print(\"hi there\")\n" "fred[\"command\"] = print_it" msgstr "" -#: library/tkinter.rst:812 +#: library/tkinter.rst:814 msgid "color" msgstr "" -#: library/tkinter.rst:813 +#: library/tkinter.rst:815 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: " @@ -1404,11 +1412,11 @@ msgid "" "digit. See page 160 of Ousterhout's book for details." msgstr "" -#: library/tkinter.rst:818 +#: library/tkinter.rst:820 msgid "cursor" msgstr "" -#: library/tkinter.rst:819 +#: library/tkinter.rst:821 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`), " @@ -1416,11 +1424,11 @@ msgid "" "of your own. See page 179 of Ousterhout's book." msgstr "" -#: library/tkinter.rst:824 +#: library/tkinter.rst:826 msgid "distance" msgstr "" -#: library/tkinter.rst:825 +#: library/tkinter.rst:827 msgid "" "Screen distances can be specified in either pixels or absolute distances. " "Pixels are given as numbers and absolute distances as strings, with the " @@ -1429,124 +1437,124 @@ msgid "" "is expressed as ``\"3.5i\"``." msgstr "" -#: library/tkinter.rst:831 +#: library/tkinter.rst:833 msgid "font" msgstr "" -#: library/tkinter.rst:832 +#: library/tkinter.rst:834 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 "" -#: library/tkinter.rst:836 +#: library/tkinter.rst:838 msgid "geometry" msgstr "" -#: library/tkinter.rst:837 +#: library/tkinter.rst:839 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 "" -#: library/tkinter.rst:841 +#: library/tkinter.rst:843 msgid "justify" msgstr "" -#: library/tkinter.rst:842 +#: library/tkinter.rst:844 msgid "" -"Legal values are the strings: ``\"left\"``, ``\"center\"``, ``\"right\"``, " -"and ``\"fill\"``." +"Legal values are the strings: ``\"left\"``, ``\"center\"``, and " +"``\"right\"``." msgstr "" -#: library/tkinter.rst:845 +#: library/tkinter.rst:846 msgid "region" msgstr "" -#: library/tkinter.rst:846 +#: library/tkinter.rst:847 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 "" -#: library/tkinter.rst:850 +#: library/tkinter.rst:851 msgid "relief" msgstr "" -#: library/tkinter.rst:851 +#: library/tkinter.rst:852 msgid "" "Determines what the border style of a widget will be. Legal values are: " "``\"raised\"``, ``\"sunken\"``, ``\"flat\"``, ``\"groove\"``, and " "``\"ridge\"``." msgstr "" -#: library/tkinter.rst:854 +#: library/tkinter.rst:855 msgid "scrollcommand" msgstr "" -#: library/tkinter.rst:855 +#: library/tkinter.rst:856 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 "" -#: library/tkinter.rst:858 +#: library/tkinter.rst:859 msgid "wrap" msgstr "" -#: library/tkinter.rst:859 +#: library/tkinter.rst:860 msgid "Must be one of: ``\"none\"``, ``\"char\"``, or ``\"word\"``." msgstr "" -#: library/tkinter.rst:864 +#: library/tkinter.rst:865 msgid "Bindings and Events" msgstr "" -#: library/tkinter.rst:870 +#: library/tkinter.rst:871 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 "" -#: library/tkinter.rst:874 +#: library/tkinter.rst:875 msgid "def bind(self, sequence, func, add=''):" msgstr "" -#: library/tkinter.rst:876 +#: library/tkinter.rst:877 msgid "where:" msgstr "" -#: library/tkinter.rst:878 +#: library/tkinter.rst:879 msgid "sequence" msgstr "" -#: library/tkinter.rst:879 +#: library/tkinter.rst:880 msgid "" "is a string that denotes the target kind of event. (See the :manpage:" "`bind(3tk)` man page, and page 201 of John Ousterhout's book, :title-" "reference:`Tcl and the Tk Toolkit (2nd edition)`, for details)." msgstr "" -#: library/tkinter.rst:883 +#: library/tkinter.rst:884 msgid "func" msgstr "" -#: library/tkinter.rst:884 +#: library/tkinter.rst:885 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 "" -#: library/tkinter.rst:888 +#: library/tkinter.rst:889 msgid "add" msgstr "" -#: library/tkinter.rst:889 +#: library/tkinter.rst:890 msgid "" "is optional, either ``''`` or ``'+'``. Passing an empty string denotes that " "this binding is to replace any other bindings that this event is associated " @@ -1554,7 +1562,7 @@ msgid "" "of functions bound to this event type." msgstr "" -#: library/tkinter.rst:896 +#: library/tkinter.rst:897 msgid "" "def turn_red(self, event):\n" " event.widget[\"activeforeground\"] = \"red\"\n" @@ -1562,7 +1570,7 @@ msgid "" "self.button.bind(\"\", self.turn_red)" msgstr "" -#: library/tkinter.rst:901 +#: library/tkinter.rst:902 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 " @@ -1571,209 +1579,209 @@ msgid "" "pages." msgstr "" -#: library/tkinter.rst:907 +#: library/tkinter.rst:908 msgid "Tkinter Event Field" msgstr "" -#: library/tkinter.rst:909 +#: library/tkinter.rst:910 msgid "%f" msgstr "" -#: library/tkinter.rst:909 +#: library/tkinter.rst:910 msgid "focus" msgstr "" -#: library/tkinter.rst:909 +#: library/tkinter.rst:910 msgid "%A" msgstr "" -#: library/tkinter.rst:909 +#: library/tkinter.rst:910 msgid "char" msgstr "" -#: library/tkinter.rst:911 +#: library/tkinter.rst:912 msgid "%h" msgstr "" -#: library/tkinter.rst:911 +#: library/tkinter.rst:912 msgid "height" msgstr "" -#: library/tkinter.rst:911 +#: library/tkinter.rst:912 msgid "%E" msgstr "" -#: library/tkinter.rst:911 +#: library/tkinter.rst:912 msgid "send_event" msgstr "" -#: library/tkinter.rst:913 +#: library/tkinter.rst:914 msgid "%k" msgstr "" -#: library/tkinter.rst:913 +#: library/tkinter.rst:914 msgid "keycode" msgstr "" -#: library/tkinter.rst:913 +#: library/tkinter.rst:914 msgid "%K" msgstr "" -#: library/tkinter.rst:913 +#: library/tkinter.rst:914 msgid "keysym" msgstr "" -#: library/tkinter.rst:915 +#: library/tkinter.rst:916 msgid "%s" msgstr "" -#: library/tkinter.rst:915 +#: library/tkinter.rst:916 msgid "state" msgstr "" -#: library/tkinter.rst:915 +#: library/tkinter.rst:916 msgid "%N" msgstr "" -#: library/tkinter.rst:915 +#: library/tkinter.rst:916 msgid "keysym_num" msgstr "" -#: library/tkinter.rst:917 +#: library/tkinter.rst:918 msgid "%t" msgstr "" -#: library/tkinter.rst:917 +#: library/tkinter.rst:918 msgid "time" msgstr "" -#: library/tkinter.rst:917 +#: library/tkinter.rst:918 msgid "%T" msgstr "" -#: library/tkinter.rst:917 +#: library/tkinter.rst:918 msgid "type" msgstr "" -#: library/tkinter.rst:919 +#: library/tkinter.rst:920 msgid "%w" msgstr "" -#: library/tkinter.rst:919 +#: library/tkinter.rst:920 msgid "width" msgstr "" -#: library/tkinter.rst:919 +#: library/tkinter.rst:920 msgid "%W" msgstr "" -#: library/tkinter.rst:919 +#: library/tkinter.rst:920 msgid "widget" msgstr "" -#: library/tkinter.rst:921 +#: library/tkinter.rst:922 msgid "%x" msgstr "" -#: library/tkinter.rst:921 +#: library/tkinter.rst:922 msgid "x" msgstr "" -#: library/tkinter.rst:921 +#: library/tkinter.rst:922 msgid "%X" msgstr "" -#: library/tkinter.rst:921 +#: library/tkinter.rst:922 msgid "x_root" msgstr "" -#: library/tkinter.rst:923 +#: library/tkinter.rst:924 msgid "%y" msgstr "" -#: library/tkinter.rst:923 +#: library/tkinter.rst:924 msgid "y" msgstr "" -#: library/tkinter.rst:923 +#: library/tkinter.rst:924 msgid "%Y" msgstr "" -#: library/tkinter.rst:923 +#: library/tkinter.rst:924 msgid "y_root" msgstr "" -#: library/tkinter.rst:928 +#: library/tkinter.rst:929 msgid "The index Parameter" msgstr "" -#: library/tkinter.rst:930 +#: library/tkinter.rst:931 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 "" -#: library/tkinter.rst:934 +#: library/tkinter.rst:935 msgid "Entry widget indexes (index, view index, etc.)" msgstr "" -#: library/tkinter.rst:935 +#: library/tkinter.rst:936 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 "" -#: library/tkinter.rst:939 +#: library/tkinter.rst:940 msgid "Text widget indexes" msgstr "" -#: library/tkinter.rst:940 +#: library/tkinter.rst:941 msgid "" "The index notation for Text widgets is very rich and is best described in " "the Tk man pages." msgstr "" -#: library/tkinter.rst:943 +#: library/tkinter.rst:944 msgid "Menu indexes (menu.invoke(), menu.entryconfig(), etc.)" msgstr "" -#: library/tkinter.rst:944 +#: library/tkinter.rst:945 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 "" -#: library/tkinter.rst:947 +#: library/tkinter.rst:948 msgid "" "an integer which refers to the numeric position of the entry in the widget, " "counted from the top, starting with 0;" msgstr "" -#: library/tkinter.rst:950 +#: library/tkinter.rst:951 msgid "" "the string ``\"active\"``, which refers to the menu position that is " "currently under the cursor;" msgstr "" -#: library/tkinter.rst:953 +#: library/tkinter.rst:954 msgid "the string ``\"last\"`` which refers to the last menu item;" msgstr "" -#: library/tkinter.rst:955 +#: library/tkinter.rst:956 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 "" -#: library/tkinter.rst:958 +#: library/tkinter.rst:959 msgid "" "the string ``\"none\"``, which indicates no menu entry at all, most often " "used with menu.activate() to deactivate all entries, and finally," msgstr "" -#: library/tkinter.rst:961 +#: library/tkinter.rst:962 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 " @@ -1782,33 +1790,33 @@ msgid "" "above literals, instead." msgstr "" -#: library/tkinter.rst:969 +#: library/tkinter.rst:970 msgid "Images" msgstr "" -#: library/tkinter.rst:971 +#: library/tkinter.rst:972 msgid "" "Images of different formats can be created through the corresponding " "subclass of :class:`tkinter.Image`:" msgstr "" -#: library/tkinter.rst:974 +#: library/tkinter.rst:975 msgid ":class:`BitmapImage` for images in XBM format." msgstr "" -#: library/tkinter.rst:976 +#: library/tkinter.rst:977 msgid "" ":class:`PhotoImage` for images in PGM, PPM, GIF and PNG formats. The latter " "is supported starting with Tk 8.6." msgstr "" -#: library/tkinter.rst:979 +#: library/tkinter.rst:980 msgid "" "Either type of image is created through either the ``file`` or the ``data`` " "option (other options are available as well)." msgstr "" -#: library/tkinter.rst:982 +#: library/tkinter.rst:983 msgid "" "Added the :class:`!PhotoImage` method :meth:`!copy_replace` to copy a region " "from one image to other image, possibly with pixel zooming and/or " @@ -1817,7 +1825,7 @@ msgid "" "*subsample* parameters to :class:`!PhotoImage` method :meth:`!copy`." msgstr "" -#: library/tkinter.rst:991 +#: library/tkinter.rst:992 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 " @@ -1826,24 +1834,24 @@ msgid "" "empty box wherever the image was used." msgstr "" -#: library/tkinter.rst:999 +#: library/tkinter.rst:1000 msgid "" "The `Pillow `_ package adds support for formats " "such as BMP, JPEG, TIFF, and WebP, among others." msgstr "" -#: library/tkinter.rst:1005 +#: library/tkinter.rst:1006 msgid "File Handlers" msgstr "" -#: library/tkinter.rst:1007 +#: library/tkinter.rst:1008 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 "" -#: library/tkinter.rst:1011 +#: library/tkinter.rst:1012 msgid "" "import tkinter\n" "widget = tkinter.Tk()\n" @@ -1853,11 +1861,11 @@ msgid "" "widget.tk.deletefilehandler(file)" msgstr "" -#: library/tkinter.rst:1018 +#: library/tkinter.rst:1019 msgid "This feature is not available on Windows." msgstr "" -#: library/tkinter.rst:1020 +#: library/tkinter.rst:1021 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:" @@ -1868,7 +1876,7 @@ msgid "" "maxbytecount)``." msgstr "" -#: library/tkinter.rst:1031 +#: library/tkinter.rst:1032 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 " @@ -1877,30 +1885,30 @@ msgid "" "as follows::" msgstr "" -#: library/tkinter.rst:1037 +#: library/tkinter.rst:1038 msgid "callback(file, mask)" msgstr "" -#: library/tkinter.rst:1042 +#: library/tkinter.rst:1043 msgid "Unregisters a file handler." msgstr "" -#: library/tkinter.rst:1049 +#: library/tkinter.rst:1050 msgid "Constants used in the *mask* arguments." msgstr "" -#: library/tkinter.rst:636 +#: library/tkinter.rst:638 msgid "packing (widgets)" msgstr "" -#: library/tkinter.rst:749 +#: library/tkinter.rst:751 msgid "window manager (widgets)" msgstr "" -#: library/tkinter.rst:866 +#: library/tkinter.rst:867 msgid "bind (widgets)" msgstr "" -#: library/tkinter.rst:866 +#: library/tkinter.rst:867 msgid "events (widgets)" msgstr "" diff --git a/library/tkinter.scrolledtext.po b/library/tkinter.scrolledtext.po index a4c0bbd2..1ddf6ae0 100644 --- a/library/tkinter.scrolledtext.po +++ b/library/tkinter.scrolledtext.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/tkinter.ttk.po b/library/tkinter.ttk.po index 8e36e0e4..d8dd7008 100644 --- a/library/tkinter.ttk.po +++ b/library/tkinter.ttk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/token.po b/library/token.po index 37a007bd..02f5b49d 100644 --- a/library/token.po +++ b/library/token.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/tokenize.po b/library/tokenize.po index b11a9560..61ad0e76 100644 --- a/library/tokenize.po +++ b/library/tokenize.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/tomllib.po b/library/tomllib.po index ee52e7f4..8ef0bf0f 100644 --- a/library/tomllib.po +++ b/library/tomllib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/trace.po b/library/trace.po index bf75d3ba..7ac9069c 100644 --- a/library/trace.po +++ b/library/trace.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python docs\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-07-30 09:47+0300\n" "Last-Translator: Maximos Nikiforakis nikiforos@live.co.uk\n" "Language-Team: PyGreece \n" diff --git a/library/traceback.po b/library/traceback.po index d38e9942..52674d45 100644 --- a/library/traceback.po +++ b/library/traceback.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/tracemalloc.po b/library/tracemalloc.po index febd3cb6..aa13f8e2 100644 --- a/library/tracemalloc.po +++ b/library/tracemalloc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/tty.po b/library/tty.po index bfbd2762..e28b69bc 100644 --- a/library/tty.po +++ b/library/tty.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/turtle.po b/library/turtle.po index ce06ec85..41946420 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -36,11 +36,19 @@ msgid "" "developed by Wally Feurzeig, Seymour Papert and Cynthia Solomon in 1967." msgstr "" -#: library/turtle.rst:34 -msgid "Get started" +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." msgstr "" #: library/turtle.rst:36 +msgid "Get started" +msgstr "" + +#: library/turtle.rst:38 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 " @@ -49,26 +57,26 @@ msgid "" "degrees clockwise." msgstr "" -#: library/turtle.rst:43 +#: library/turtle.rst:45 msgid "" "Turtle can draw intricate shapes using programs that repeat simple moves." msgstr "" -#: library/turtle.rst:49 +#: library/turtle.rst:51 msgid "" "In Python, turtle graphics provides a representation of a physical " "\"turtle\" (a little robot with a pen) that draws on a sheet of paper on the " "floor." msgstr "" -#: library/turtle.rst:52 +#: library/turtle.rst:54 msgid "" "It's an effective and well-proven way for learners to encounter programming " "concepts and interaction with software, as it provides instant, visible " "feedback. It also provides convenient access to graphical output in general." msgstr "" -#: library/turtle.rst:57 +#: library/turtle.rst:59 msgid "" "Turtle drawing was originally created as an educational tool, to be used by " "teachers in the classroom. For the programmer who needs to produce some " @@ -76,142 +84,142 @@ msgid "" "introducing more complex or external libraries into their work." msgstr "" -#: library/turtle.rst:66 +#: library/turtle.rst:68 msgid "Tutorial" msgstr "" -#: library/turtle.rst:68 +#: library/turtle.rst:70 msgid "" "New users should start here. In this tutorial we'll explore some of the " "basics of turtle drawing." msgstr "" -#: library/turtle.rst:73 +#: library/turtle.rst:75 msgid "Starting a turtle environment" msgstr "" -#: library/turtle.rst:75 +#: library/turtle.rst:77 msgid "In a Python shell, import all the objects of the ``turtle`` module::" msgstr "" -#: library/turtle.rst:77 +#: library/turtle.rst:79 msgid "from turtle import *" msgstr "" -#: library/turtle.rst:79 +#: library/turtle.rst:81 msgid "" "If you run into a ``No module named '_tkinter'`` error, you'll have to " "install the :mod:`Tk interface package ` on your system." msgstr "" -#: library/turtle.rst:84 +#: library/turtle.rst:86 msgid "Basic drawing" msgstr "" -#: library/turtle.rst:86 +#: library/turtle.rst:88 msgid "Send the turtle forward 100 steps::" msgstr "" -#: library/turtle.rst:88 +#: library/turtle.rst:90 msgid "forward(100)" msgstr "" -#: library/turtle.rst:90 +#: library/turtle.rst:92 msgid "" "You should see (most likely, in a new window on your display) a line drawn " "by the turtle, heading East. Change the direction of the turtle, so that it " "turns 120 degrees left (anti-clockwise)::" msgstr "" -#: library/turtle.rst:94 +#: library/turtle.rst:96 msgid "left(120)" msgstr "" -#: library/turtle.rst:96 +#: library/turtle.rst:98 msgid "Let's continue by drawing a triangle::" msgstr "" -#: library/turtle.rst:98 +#: library/turtle.rst:100 msgid "" "forward(100)\n" "left(120)\n" "forward(100)" msgstr "" -#: library/turtle.rst:102 +#: library/turtle.rst:104 msgid "" "Notice how the turtle, represented by an arrow, points in different " "directions as you steer it." msgstr "" -#: library/turtle.rst:105 +#: library/turtle.rst:107 msgid "" "Experiment with those commands, and also with ``backward()`` and ``right()``." msgstr "" -#: library/turtle.rst:364 library/turtle.rst:1058 +#: library/turtle.rst:366 library/turtle.rst:1064 msgid "Pen control" msgstr "" -#: library/turtle.rst:112 +#: library/turtle.rst:114 msgid "" "Try changing the color - for example, ``color('blue')`` - and width of the " "line - for example, ``width(3)`` - and then drawing again." msgstr "" -#: library/turtle.rst:115 +#: library/turtle.rst:117 msgid "" "You can also move the turtle around without drawing, by lifting up the pen: " "``up()`` before moving. To start drawing again, use ``down()``." msgstr "" -#: library/turtle.rst:120 +#: library/turtle.rst:122 msgid "The turtle's position" msgstr "" -#: library/turtle.rst:122 +#: library/turtle.rst:124 msgid "" "Send your turtle back to its starting-point (useful if it has disappeared " "off-screen)::" msgstr "" -#: library/turtle.rst:125 +#: library/turtle.rst:127 msgid "home()" msgstr "" -#: library/turtle.rst:127 +#: library/turtle.rst:129 msgid "" "The home position is at the center of the turtle's screen. If you ever need " "to know them, get the turtle's x-y coordinates with::" msgstr "" -#: library/turtle.rst:130 +#: library/turtle.rst:132 msgid "pos()" msgstr "" -#: library/turtle.rst:132 +#: library/turtle.rst:134 msgid "Home is at ``(0, 0)``." msgstr "" -#: library/turtle.rst:134 +#: library/turtle.rst:136 msgid "" "And after a while, it will probably help to clear the window so we can start " "anew::" msgstr "" -#: library/turtle.rst:137 +#: library/turtle.rst:139 msgid "clearscreen()" msgstr "" -#: library/turtle.rst:141 +#: library/turtle.rst:143 msgid "Making algorithmic patterns" msgstr "" -#: library/turtle.rst:143 +#: library/turtle.rst:145 msgid "Using loops, it's possible to build up geometric patterns::" msgstr "" -#: library/turtle.rst:145 +#: library/turtle.rst:147 msgid "" "for steps in range(100):\n" " for c in ('blue', 'red', 'green'):\n" @@ -220,37 +228,37 @@ msgid "" " right(30)" msgstr "" -#: library/turtle.rst:152 +#: library/turtle.rst:154 msgid "\\ - which of course, are limited only by the imagination!" msgstr "" -#: library/turtle.rst:154 +#: library/turtle.rst:156 msgid "" "Let's draw the star shape at the top of this page. We want red lines, filled " "in with yellow::" msgstr "" -#: library/turtle.rst:157 +#: library/turtle.rst:159 msgid "" "color('red')\n" "fillcolor('yellow')" msgstr "" -#: library/turtle.rst:160 +#: library/turtle.rst:162 msgid "" "Just as ``up()`` and ``down()`` determine whether lines will be drawn, " "filling can be turned on and off::" msgstr "" -#: library/turtle.rst:163 +#: library/turtle.rst:165 msgid "begin_fill()" msgstr "" -#: library/turtle.rst:165 +#: library/turtle.rst:167 msgid "Next we'll create a loop::" msgstr "" -#: library/turtle.rst:167 +#: library/turtle.rst:169 msgid "" "while True:\n" " forward(200)\n" @@ -259,39 +267,39 @@ msgid "" " break" msgstr "" -#: library/turtle.rst:173 +#: library/turtle.rst:175 msgid "" "``abs(pos()) < 1`` is a good way to know when the turtle is back at its home " "position." msgstr "" -#: library/turtle.rst:176 +#: library/turtle.rst:178 msgid "Finally, complete the filling::" msgstr "" -#: library/turtle.rst:178 +#: library/turtle.rst:180 msgid "end_fill()" msgstr "" -#: library/turtle.rst:180 +#: library/turtle.rst:182 msgid "" "(Note that filling only actually takes place when you give the " "``end_fill()`` command.)" msgstr "" -#: library/turtle.rst:187 +#: library/turtle.rst:189 msgid "How to..." msgstr "" -#: library/turtle.rst:189 +#: library/turtle.rst:191 msgid "This section covers some typical turtle use-cases and approaches." msgstr "" -#: library/turtle.rst:193 +#: library/turtle.rst:195 msgid "Get started as quickly as possible" msgstr "" -#: library/turtle.rst:195 +#: library/turtle.rst:197 msgid "" "One of the joys of turtle graphics is the immediate, visual feedback that's " "available from simple commands - it's an excellent way to introduce children " @@ -299,21 +307,21 @@ msgid "" "course)." msgstr "" -#: library/turtle.rst:200 +#: library/turtle.rst:202 msgid "" "The turtle module makes this possible by exposing all its basic " "functionality as functions, available with ``from turtle import *``. The :" "ref:`turtle graphics tutorial ` covers this approach." msgstr "" -#: library/turtle.rst:204 +#: library/turtle.rst:206 msgid "" "It's worth noting that many of the turtle commands also have even more terse " "equivalents, such as ``fd()`` for :func:`forward`. These are especially " "useful when working with learners for whom typing is not a skill." msgstr "" -#: library/turtle.rst:210 +#: library/turtle.rst:212 msgid "" "You'll need to have the :mod:`Tk interface package ` installed on " "your system for turtle graphics to work. Be warned that this is not always " @@ -321,18 +329,18 @@ msgid "" "graphics with a learner." msgstr "" -#: library/turtle.rst:217 +#: library/turtle.rst:219 msgid "Automatically begin and end filling" msgstr "" -#: library/turtle.rst:219 +#: library/turtle.rst:221 msgid "" "Starting with Python 3.14, you can use the :func:`fill` :term:`context " "manager` instead of :func:`begin_fill` and :func:`end_fill` to automatically " "begin and end fill. Here is an example::" msgstr "" -#: library/turtle.rst:223 +#: library/turtle.rst:225 msgid "" "with fill():\n" " for i in range(4):\n" @@ -342,11 +350,11 @@ msgid "" "forward(200)" msgstr "" -#: library/turtle.rst:230 +#: library/turtle.rst:232 msgid "The code above is equivalent to::" msgstr "" -#: library/turtle.rst:232 +#: library/turtle.rst:234 msgid "" "begin_fill()\n" "for i in range(4):\n" @@ -357,11 +365,11 @@ msgid "" "forward(200)" msgstr "" -#: library/turtle.rst:242 +#: library/turtle.rst:244 msgid "Use the ``turtle`` module namespace" msgstr "" -#: library/turtle.rst:244 +#: library/turtle.rst:246 msgid "" "Using ``from turtle import *`` is convenient - but be warned that it imports " "a rather large collection of objects, and if you're doing anything but " @@ -370,7 +378,7 @@ msgid "" "might be imported)." msgstr "" -#: library/turtle.rst:250 +#: library/turtle.rst:252 msgid "" "The solution is to use ``import turtle`` - ``fd()`` becomes ``turtle.fd()``, " "``width()`` becomes ``turtle.width()`` and so on. (If typing \"turtle\" over " @@ -378,17 +386,17 @@ msgid "" "instead.)" msgstr "" -#: library/turtle.rst:257 +#: library/turtle.rst:259 msgid "Use turtle graphics in a script" msgstr "" -#: library/turtle.rst:259 +#: library/turtle.rst:261 msgid "" "It's recommended to use the ``turtle`` module namespace as described " "immediately above, for example::" msgstr "" -#: library/turtle.rst:262 +#: library/turtle.rst:264 msgid "" "import turtle as t\n" "from random import random\n" @@ -400,33 +408,33 @@ msgid "" " t.fd(steps)" msgstr "" -#: library/turtle.rst:271 +#: library/turtle.rst:273 msgid "" "Another step is also required though - as soon as the script ends, Python " "will also close the turtle's window. Add::" msgstr "" -#: library/turtle.rst:274 +#: library/turtle.rst:276 msgid "t.mainloop()" msgstr "" -#: library/turtle.rst:276 +#: library/turtle.rst:278 msgid "" "to the end of the script. The script will now wait to be dismissed and will " "not exit until it is terminated, for example by closing the turtle graphics " "window." msgstr "" -#: library/turtle.rst:282 +#: library/turtle.rst:284 msgid "Use object-oriented turtle graphics" msgstr "" -#: library/turtle.rst:284 +#: library/turtle.rst:286 msgid "" ":ref:`Explanation of the object-oriented interface `" msgstr "" -#: library/turtle.rst:286 +#: library/turtle.rst:288 msgid "" "Other than for very basic introductory purposes, or for trying things out as " "quickly as possible, it's more usual and much more powerful to use the " @@ -434,18 +442,18 @@ msgid "" "multiple turtles on screen at once." msgstr "" -#: library/turtle.rst:291 +#: library/turtle.rst:293 msgid "" "In this approach, the various turtle commands are methods of objects (mostly " "of ``Turtle`` objects). You *can* use the object-oriented approach in the " "shell, but it would be more typical in a Python script." msgstr "" -#: library/turtle.rst:295 +#: library/turtle.rst:297 msgid "The example above then becomes::" msgstr "" -#: library/turtle.rst:297 +#: library/turtle.rst:299 msgid "" "from turtle import Turtle\n" "from random import random\n" @@ -460,43 +468,43 @@ msgid "" "t.screen.mainloop()" msgstr "" -#: library/turtle.rst:309 +#: library/turtle.rst:311 msgid "" "Note the last line. ``t.screen`` is an instance of the :class:`Screen` that " "a Turtle instance exists on; it's created automatically along with the " "turtle." msgstr "" -#: library/turtle.rst:313 +#: library/turtle.rst:315 msgid "The turtle's screen can be customised, for example::" msgstr "" -#: library/turtle.rst:315 +#: library/turtle.rst:317 msgid "" "t.screen.title('Object-oriented turtle demo')\n" "t.screen.bgcolor(\"orange\")" msgstr "" -#: library/turtle.rst:320 +#: library/turtle.rst:322 msgid "Turtle graphics reference" msgstr "" -#: library/turtle.rst:324 +#: library/turtle.rst:326 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 "" -#: library/turtle.rst:330 +#: library/turtle.rst:332 msgid "Turtle methods" msgstr "" -#: library/turtle.rst:475 +#: library/turtle.rst:477 msgid "Turtle motion" msgstr "" -#: library/turtle.rst:333 +#: library/turtle.rst:335 msgid "Move and draw" msgstr "" @@ -540,7 +548,7 @@ msgstr "" msgid ":func:`home`" msgstr "" -#: library/turtle.rst:2832 +#: library/turtle.rst:2864 msgid ":func:`circle`" msgstr "" @@ -548,7 +556,7 @@ msgstr "" msgid ":func:`dot`" msgstr "" -#: library/turtle.rst:2810 +#: library/turtle.rst:2842 msgid ":func:`stamp`" msgstr "" @@ -568,7 +576,7 @@ msgstr "" msgid ":func:`speed`" msgstr "" -#: library/turtle.rst:907 +#: library/turtle.rst:913 msgid "Tell Turtle's state" msgstr "" @@ -596,7 +604,7 @@ msgstr "" msgid ":func:`distance`" msgstr "" -#: library/turtle.rst:360 +#: library/turtle.rst:362 msgid "Setting and measurement" msgstr "" @@ -608,7 +616,7 @@ msgstr "" msgid ":func:`radians`" msgstr "" -#: library/turtle.rst:1061 +#: library/turtle.rst:1067 msgid "Drawing state" msgstr "" @@ -632,7 +640,7 @@ msgstr "" msgid ":func:`isdown`" msgstr "" -#: library/turtle.rst:1153 +#: library/turtle.rst:1159 msgid "Color control" msgstr "" @@ -648,7 +656,7 @@ msgstr "" msgid ":func:`fillcolor`" msgstr "" -#: library/turtle.rst:1285 +#: library/turtle.rst:1298 msgid "Filling" msgstr "" @@ -668,7 +676,7 @@ msgstr "" msgid ":func:`end_fill`" msgstr "" -#: library/turtle.rst:1355 +#: library/turtle.rst:1368 msgid "More drawing control" msgstr "" @@ -684,11 +692,11 @@ msgstr "" msgid ":func:`write`" msgstr "" -#: library/turtle.rst:1401 +#: library/turtle.rst:1414 msgid "Turtle state" msgstr "" -#: library/turtle.rst:1404 +#: library/turtle.rst:1417 msgid "Visibility" msgstr "" @@ -704,7 +712,7 @@ msgstr "" msgid ":func:`isvisible`" msgstr "" -#: library/turtle.rst:1443 +#: library/turtle.rst:1456 msgid "Appearance" msgstr "" @@ -740,11 +748,11 @@ msgstr "" msgid ":func:`get_shapepoly`" msgstr "" -#: library/turtle.rst:1626 +#: library/turtle.rst:1639 msgid "Using events" msgstr "" -#: library/turtle.rst:2804 +#: library/turtle.rst:2836 msgid ":func:`onclick`" msgstr "" @@ -752,11 +760,11 @@ msgstr "" msgid ":func:`onrelease`" msgstr "" -#: library/turtle.rst:2787 +#: library/turtle.rst:2819 msgid ":func:`ondrag`" msgstr "" -#: library/turtle.rst:1700 +#: library/turtle.rst:1713 msgid "Special Turtle methods" msgstr "" @@ -776,7 +784,7 @@ msgstr "" msgid ":func:`get_poly`" msgstr "" -#: library/turtle.rst:2826 +#: library/turtle.rst:2858 msgid ":func:`clone`" msgstr "" @@ -796,11 +804,11 @@ msgstr "" msgid ":func:`undobufferentries`" msgstr "" -#: library/turtle.rst:422 +#: library/turtle.rst:424 msgid "Methods of TurtleScreen/Screen" msgstr "" -#: library/turtle.rst:1871 +#: library/turtle.rst:1884 msgid "Window control" msgstr "" @@ -828,7 +836,7 @@ msgstr "" msgid ":func:`setworldcoordinates`" msgstr "" -#: library/turtle.rst:1995 +#: library/turtle.rst:2027 msgid "Animation control" msgstr "" @@ -848,7 +856,7 @@ msgstr "" msgid ":func:`update`" msgstr "" -#: library/turtle.rst:2065 +#: library/turtle.rst:2097 msgid "Using screen events" msgstr "" @@ -876,7 +884,7 @@ msgstr "" msgid ":func:`mainloop` | :func:`done`" msgstr "" -#: library/turtle.rst:2210 +#: library/turtle.rst:2242 msgid "Settings and special methods" msgstr "" @@ -912,7 +920,7 @@ msgstr "" msgid ":func:`window_width`" msgstr "" -#: library/turtle.rst:2174 +#: library/turtle.rst:2206 msgid "Input methods" msgstr "" @@ -924,7 +932,7 @@ msgstr "" msgid ":func:`numinput`" msgstr "" -#: library/turtle.rst:460 +#: library/turtle.rst:462 msgid "Methods specific to Screen" msgstr "" @@ -948,11 +956,11 @@ msgstr "" msgid ":func:`title`" msgstr "" -#: library/turtle.rst:469 +#: library/turtle.rst:471 msgid "Methods of RawTurtle/Turtle and corresponding functions" msgstr "" -#: library/turtle.rst:471 +#: library/turtle.rst:473 msgid "" "Most of the examples in this section refer to a Turtle instance called " "``turtle``." @@ -962,17 +970,17 @@ msgstr "" msgid "Parameters" msgstr "" -#: library/turtle.rst:525 library/turtle.rst:648 library/turtle.rst:694 +#: library/turtle.rst:527 library/turtle.rst:650 library/turtle.rst:696 msgid "a number (integer or float)" msgstr "" -#: library/turtle.rst:482 +#: library/turtle.rst:484 msgid "" "Move the turtle forward by the specified *distance*, in the direction the " "turtle is headed." msgstr "" -#: library/turtle.rst:485 +#: library/turtle.rst:487 msgid "" ">>> turtle.position()\n" "(0.00,0.00)\n" @@ -984,17 +992,17 @@ msgid "" "(-50.00,0.00)" msgstr "" -#: library/turtle.rst:744 library/turtle.rst:1542 +#: library/turtle.rst:746 library/turtle.rst:1555 msgid "a number" msgstr "" -#: library/turtle.rst:504 +#: library/turtle.rst:506 msgid "" "Move the turtle backward by *distance*, opposite to the direction the turtle " "is headed. Do not change the turtle's heading." msgstr "" -#: library/turtle.rst:512 +#: library/turtle.rst:514 msgid "" ">>> turtle.position()\n" "(0.00,0.00)\n" @@ -1003,14 +1011,14 @@ msgid "" "(-30.00,0.00)" msgstr "" -#: library/turtle.rst:527 +#: library/turtle.rst:529 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 "" -#: library/turtle.rst:537 +#: library/turtle.rst:539 msgid "" ">>> turtle.heading()\n" "22.0\n" @@ -1019,14 +1027,14 @@ msgid "" "337.0" msgstr "" -#: library/turtle.rst:552 +#: library/turtle.rst:554 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 "" -#: library/turtle.rst:562 +#: library/turtle.rst:564 msgid "" ">>> turtle.heading()\n" "22.0\n" @@ -1035,27 +1043,27 @@ msgid "" "67.0" msgstr "" -#: library/turtle.rst:576 +#: library/turtle.rst:578 msgid "a number or a pair/vector of numbers" msgstr "" -#: library/turtle.rst:610 library/turtle.rst:611 +#: library/turtle.rst:612 library/turtle.rst:613 msgid "a number or ``None``" msgstr "" -#: library/turtle.rst:579 +#: library/turtle.rst:581 msgid "" "If *y* is ``None``, *x* must be a pair of coordinates or a :class:`Vec2D` (e." "g. as returned by :func:`pos`)." msgstr "" -#: library/turtle.rst:582 +#: library/turtle.rst:584 msgid "" "Move turtle to an absolute position. If the pen is down, draw line. Do not " "change the turtle's orientation." msgstr "" -#: library/turtle.rst:591 +#: library/turtle.rst:593 msgid "" ">>> tp = turtle.pos()\n" ">>> tp\n" @@ -1071,11 +1079,11 @@ msgid "" "(0.00,0.00)" msgstr "" -#: library/turtle.rst:612 +#: library/turtle.rst:614 msgid "a boolean" msgstr "" -#: library/turtle.rst:614 +#: library/turtle.rst:616 msgid "" "Move turtle to an absolute position. Unlike goto(x, y), a line will not be " "drawn. The turtle's orientation does not change. If currently filling, the " @@ -1085,7 +1093,7 @@ msgid "" "barrier like in goto(x, y)." msgstr "" -#: library/turtle.rst:627 +#: library/turtle.rst:629 msgid "" ">>> tp = turtle.pos()\n" ">>> tp\n" @@ -1101,12 +1109,12 @@ msgid "" "(20.00,30.00)" msgstr "" -#: library/turtle.rst:650 +#: library/turtle.rst:652 msgid "" "Set the turtle's first coordinate to *x*, leave second coordinate unchanged." msgstr "" -#: library/turtle.rst:659 +#: library/turtle.rst:661 msgid "" ">>> turtle.position()\n" "(0.00,240.00)\n" @@ -1115,12 +1123,12 @@ msgid "" "(10.00,240.00)" msgstr "" -#: library/turtle.rst:673 +#: library/turtle.rst:675 msgid "" "Set the turtle's second coordinate to *y*, leave first coordinate unchanged." msgstr "" -#: library/turtle.rst:681 +#: library/turtle.rst:683 msgid "" ">>> turtle.position()\n" "(0.00,40.00)\n" @@ -1129,66 +1137,66 @@ msgid "" "(0.00,-10.00)" msgstr "" -#: library/turtle.rst:696 +#: library/turtle.rst:698 msgid "" "Set the orientation of the turtle to *to_angle*. Here are some common " "directions in degrees:" msgstr "" -#: library/turtle.rst:700 +#: library/turtle.rst:702 msgid "standard mode" msgstr "" -#: library/turtle.rst:700 +#: library/turtle.rst:702 msgid "logo mode" msgstr "" -#: library/turtle.rst:702 +#: library/turtle.rst:704 msgid "0 - east" msgstr "" -#: library/turtle.rst:702 +#: library/turtle.rst:704 msgid "0 - north" msgstr "" -#: library/turtle.rst:703 +#: library/turtle.rst:705 msgid "90 - north" msgstr "" -#: library/turtle.rst:703 +#: library/turtle.rst:705 msgid "90 - east" msgstr "" -#: library/turtle.rst:704 +#: library/turtle.rst:706 msgid "180 - west" msgstr "" -#: library/turtle.rst:704 +#: library/turtle.rst:706 msgid "180 - south" msgstr "" -#: library/turtle.rst:705 +#: library/turtle.rst:707 msgid "270 - south" msgstr "" -#: library/turtle.rst:705 +#: library/turtle.rst:707 msgid "270 - west" msgstr "" -#: library/turtle.rst:708 +#: library/turtle.rst:710 msgid "" ">>> turtle.setheading(90)\n" ">>> turtle.heading()\n" "90.0" msgstr "" -#: library/turtle.rst:718 +#: library/turtle.rst:720 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 "" -#: library/turtle.rst:728 +#: library/turtle.rst:730 msgid "" ">>> turtle.heading()\n" "90.0\n" @@ -1201,15 +1209,15 @@ msgid "" "0.0" msgstr "" -#: library/turtle.rst:745 +#: library/turtle.rst:747 msgid "a number (or ``None``)" msgstr "" -#: library/turtle.rst:839 +#: library/turtle.rst:845 msgid "an integer (or ``None``)" msgstr "" -#: library/turtle.rst:748 +#: library/turtle.rst:750 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 " @@ -1220,14 +1228,14 @@ msgid "" "changed by the amount of *extent*." msgstr "" -#: library/turtle.rst:756 +#: library/turtle.rst:758 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 "" -#: library/turtle.rst:760 +#: library/turtle.rst:762 msgid "" ">>> turtle.home()\n" ">>> turtle.position()\n" @@ -1246,21 +1254,21 @@ msgid "" "180.0" msgstr "" -#: library/turtle.rst:782 +#: library/turtle.rst:788 msgid "an integer >= 1 (if given)" msgstr "" -#: library/turtle.rst:783 +#: library/turtle.rst:789 msgid "a colorstring or a numeric color tuple" msgstr "" -#: library/turtle.rst:785 +#: library/turtle.rst:791 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." +"given, the maximum of ``pensize+4`` and ``2*pensize`` is used." msgstr "" -#: library/turtle.rst:789 +#: library/turtle.rst:795 msgid "" ">>> turtle.home()\n" ">>> turtle.dot()\n" @@ -1271,29 +1279,29 @@ msgid "" "0.0" msgstr "" -#: library/turtle.rst:803 +#: library/turtle.rst:809 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 "" -#: library/turtle.rst:807 +#: library/turtle.rst:813 msgid "" ">>> turtle.color(\"blue\")\n" ">>> stamp_id = turtle.stamp()\n" ">>> turtle.fd(50)" msgstr "" -#: library/turtle.rst:817 +#: library/turtle.rst:823 msgid "an integer, must be return value of previous :func:`stamp` call" msgstr "" -#: library/turtle.rst:820 +#: library/turtle.rst:826 msgid "Delete stamp with given *stampid*." msgstr "" -#: library/turtle.rst:822 +#: library/turtle.rst:828 msgid "" ">>> turtle.position()\n" "(150.00,-0.00)\n" @@ -1307,14 +1315,14 @@ msgid "" "(200.00,-0.00)" msgstr "" -#: library/turtle.rst:841 +#: library/turtle.rst:847 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 "" -#: library/turtle.rst:845 +#: library/turtle.rst:851 msgid "" ">>> for i in range(8):\n" "... unused_stamp_id = turtle.stamp()\n" @@ -1324,13 +1332,13 @@ msgid "" ">>> turtle.clearstamps()" msgstr "" -#: library/turtle.rst:857 +#: library/turtle.rst:863 msgid "" "Undo (repeatedly) the last turtle action(s). Number of available undo " "actions is determined by the size of the undobuffer." msgstr "" -#: library/turtle.rst:860 +#: library/turtle.rst:866 msgid "" ">>> for i in range(4):\n" "... turtle.fd(50); turtle.lt(80)\n" @@ -1339,55 +1347,55 @@ msgid "" "... turtle.undo()" msgstr "" -#: library/turtle.rst:872 +#: library/turtle.rst:878 msgid "an integer in the range 0..10 or a speedstring (see below)" msgstr "" -#: library/turtle.rst:874 +#: library/turtle.rst:880 msgid "" "Set the turtle's speed to an integer value in the range 0..10. If no " "argument is given, return current speed." msgstr "" -#: library/turtle.rst:877 +#: library/turtle.rst:883 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 "" -#: library/turtle.rst:880 +#: library/turtle.rst:886 msgid "\"fastest\": 0" msgstr "" -#: library/turtle.rst:881 +#: library/turtle.rst:887 msgid "\"fast\": 10" msgstr "" -#: library/turtle.rst:882 +#: library/turtle.rst:888 msgid "\"normal\": 6" msgstr "" -#: library/turtle.rst:883 +#: library/turtle.rst:889 msgid "\"slow\": 3" msgstr "" -#: library/turtle.rst:884 +#: library/turtle.rst:890 msgid "\"slowest\": 1" msgstr "" -#: library/turtle.rst:886 +#: library/turtle.rst:892 msgid "" "Speeds from 1 to 10 enforce increasingly faster animation of line drawing " "and turtle turning." msgstr "" -#: library/turtle.rst:889 +#: library/turtle.rst:895 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 "" -#: library/turtle.rst:893 +#: library/turtle.rst:899 msgid "" ">>> turtle.speed()\n" "3\n" @@ -1399,26 +1407,26 @@ msgid "" "9" msgstr "" -#: library/turtle.rst:912 +#: library/turtle.rst:918 msgid "" "Return the turtle's current location (x,y) (as a :class:`Vec2D` vector)." msgstr "" -#: library/turtle.rst:914 +#: library/turtle.rst:920 msgid "" ">>> turtle.pos()\n" "(440.00,-0.00)" msgstr "" -#: library/turtle.rst:986 +#: library/turtle.rst:992 msgid "a number or a pair/vector of numbers or a turtle instance" msgstr "" -#: library/turtle.rst:987 +#: library/turtle.rst:993 msgid "a number if *x* is a number, else ``None``" msgstr "" -#: library/turtle.rst:926 +#: library/turtle.rst:932 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 " @@ -1426,18 +1434,18 @@ msgid "" "\"logo\"." msgstr "" -#: library/turtle.rst:930 +#: library/turtle.rst:936 msgid "" ">>> turtle.goto(10, 10)\n" ">>> turtle.towards(0,0)\n" "225.0" msgstr "" -#: library/turtle.rst:940 +#: library/turtle.rst:946 msgid "Return the turtle's x coordinate." msgstr "" -#: library/turtle.rst:942 +#: library/turtle.rst:948 msgid "" ">>> turtle.home()\n" ">>> turtle.left(50)\n" @@ -1448,11 +1456,11 @@ msgid "" "64.27876" msgstr "" -#: library/turtle.rst:956 +#: library/turtle.rst:962 msgid "Return the turtle's y coordinate." msgstr "" -#: library/turtle.rst:958 +#: library/turtle.rst:964 msgid "" ">>> turtle.home()\n" ">>> turtle.left(60)\n" @@ -1463,13 +1471,13 @@ msgid "" "86.60254" msgstr "" -#: library/turtle.rst:972 +#: library/turtle.rst:978 msgid "" "Return the turtle's current heading (value depends on the turtle mode, see :" "func:`mode`)." msgstr "" -#: library/turtle.rst:975 +#: library/turtle.rst:981 msgid "" ">>> turtle.home()\n" ">>> turtle.left(67)\n" @@ -1477,13 +1485,13 @@ msgid "" "67.0" msgstr "" -#: library/turtle.rst:989 +#: library/turtle.rst:995 msgid "" "Return the distance from the turtle to (x,y), the given vector, or the given " "other turtle, in turtle step units." msgstr "" -#: library/turtle.rst:992 +#: library/turtle.rst:998 msgid "" ">>> turtle.home()\n" ">>> turtle.distance(30,40)\n" @@ -1496,17 +1504,17 @@ msgid "" "77.0" msgstr "" -#: library/turtle.rst:1007 +#: library/turtle.rst:1013 msgid "Settings for measurement" msgstr "" -#: library/turtle.rst:1013 +#: library/turtle.rst:1019 msgid "" "Set angle measurement units, i.e. set number of \"degrees\" for a full " "circle. Default value is 360 degrees." msgstr "" -#: library/turtle.rst:1016 +#: library/turtle.rst:1022 msgid "" ">>> turtle.home()\n" ">>> turtle.left(90)\n" @@ -1523,13 +1531,13 @@ msgid "" "90.0" msgstr "" -#: library/turtle.rst:1036 +#: library/turtle.rst:1042 msgid "" "Set the angle measurement units to radians. Equivalent to ``degrees(2*math." "pi)``." msgstr "" -#: library/turtle.rst:1039 +#: library/turtle.rst:1045 msgid "" ">>> turtle.home()\n" ">>> turtle.left(90)\n" @@ -1540,87 +1548,87 @@ msgid "" "1.5707963267948966" msgstr "" -#: library/turtle.rst:1067 +#: library/turtle.rst:1073 msgid "Pull the pen down -- drawing when moving." msgstr "" -#: library/turtle.rst:1074 +#: library/turtle.rst:1080 msgid "Pull the pen up -- no drawing when moving." msgstr "" -#: library/turtle.rst:1080 +#: library/turtle.rst:1086 msgid "a positive number" msgstr "" -#: library/turtle.rst:1082 +#: library/turtle.rst:1088 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 "" -#: library/turtle.rst:1086 +#: library/turtle.rst:1092 msgid "" ">>> turtle.pensize()\n" "1\n" ">>> turtle.pensize(10) # from here on lines of width 10 are drawn" msgstr "" -#: library/turtle.rst:1096 +#: library/turtle.rst:1102 msgid "a dictionary with some or all of the below listed keys" msgstr "" -#: library/turtle.rst:1097 +#: library/turtle.rst:1103 msgid "one or more keyword-arguments with the below listed keys as keywords" msgstr "" -#: library/turtle.rst:1099 +#: library/turtle.rst:1105 msgid "" "Return or set the pen's attributes in a \"pen-dictionary\" with the " "following key/value pairs:" msgstr "" -#: library/turtle.rst:1102 +#: library/turtle.rst:1108 msgid "\"shown\": True/False" msgstr "" -#: library/turtle.rst:1103 +#: library/turtle.rst:1109 msgid "\"pendown\": True/False" msgstr "" -#: library/turtle.rst:1104 +#: library/turtle.rst:1110 msgid "\"pencolor\": color-string or color-tuple" msgstr "" -#: library/turtle.rst:1105 +#: library/turtle.rst:1111 msgid "\"fillcolor\": color-string or color-tuple" msgstr "" -#: library/turtle.rst:1106 +#: library/turtle.rst:1112 msgid "\"pensize\": positive number" msgstr "" -#: library/turtle.rst:1107 +#: library/turtle.rst:1113 msgid "\"speed\": number in range 0..10" msgstr "" -#: library/turtle.rst:1108 +#: library/turtle.rst:1114 msgid "\"resizemode\": \"auto\" or \"user\" or \"noresize\"" msgstr "" -#: library/turtle.rst:1109 +#: library/turtle.rst:1115 msgid "\"stretchfactor\": (positive number, positive number)" msgstr "" -#: library/turtle.rst:1110 +#: library/turtle.rst:1116 msgid "\"outline\": positive number" msgstr "" -#: library/turtle.rst:1111 +#: library/turtle.rst:1117 msgid "\"tilt\": number" msgstr "" -#: library/turtle.rst:1113 +#: library/turtle.rst:1119 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 " @@ -1628,7 +1636,7 @@ msgid "" "attributes in one statement." msgstr "" -#: library/turtle.rst:1118 +#: library/turtle.rst:1124 msgid "" ">>> turtle.pen(fillcolor=\"black\", pencolor=\"red\", pensize=10)\n" ">>> sorted(turtle.pen().items())\n" @@ -1646,11 +1654,11 @@ msgid "" "[('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')]" msgstr "" -#: library/turtle.rst:1139 +#: library/turtle.rst:1145 msgid "Return ``True`` if pen is down, ``False`` if it's up." msgstr "" -#: library/turtle.rst:1141 +#: library/turtle.rst:1147 msgid "" ">>> turtle.penup()\n" ">>> turtle.isdown()\n" @@ -1660,62 +1668,63 @@ msgid "" "True" msgstr "" -#: library/turtle.rst:1157 +#: library/turtle.rst:1165 msgid "Return or set the pencolor." msgstr "" -#: library/turtle.rst:1208 +#: library/turtle.rst:1218 library/turtle.rst:1892 msgid "Four input formats are allowed:" msgstr "" -#: library/turtle.rst:1161 +#: library/turtle.rst:1169 msgid "``pencolor()``" msgstr "" -#: library/turtle.rst:1162 +#: library/turtle.rst:1170 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." +"example). May be used as input to another color/pencolor/fillcolor/bgcolor " +"call." msgstr "" -#: library/turtle.rst:1166 +#: library/turtle.rst:1174 msgid "``pencolor(colorstring)``" msgstr "" -#: library/turtle.rst:1167 +#: library/turtle.rst:1175 msgid "" "Set pencolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" -#: library/turtle.rst:1170 +#: library/turtle.rst:1178 msgid "``pencolor((r, g, b))``" msgstr "" -#: library/turtle.rst:1171 +#: library/turtle.rst:1179 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 "" -#: library/turtle.rst:1175 +#: library/turtle.rst:1183 msgid "``pencolor(r, g, b)``" msgstr "" -#: library/turtle.rst:1176 +#: library/turtle.rst:1184 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 "" -#: library/turtle.rst:1179 +#: library/turtle.rst:1187 msgid "" "If turtleshape is a polygon, the outline of that polygon is drawn with the " "newly set pencolor." msgstr "" -#: library/turtle.rst:1182 +#: library/turtle.rst:1190 msgid "" ">>> colormode()\n" "1.0\n" @@ -1736,59 +1745,59 @@ msgid "" "(50.0, 193.0, 143.0)" msgstr "" -#: library/turtle.rst:1206 +#: library/turtle.rst:1216 msgid "Return or set the fillcolor." msgstr "" -#: library/turtle.rst:1210 +#: library/turtle.rst:1220 msgid "``fillcolor()``" msgstr "" -#: library/turtle.rst:1211 +#: library/turtle.rst:1221 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." +"fillcolor/bgcolor call." msgstr "" -#: library/turtle.rst:1215 +#: library/turtle.rst:1225 msgid "``fillcolor(colorstring)``" msgstr "" -#: library/turtle.rst:1216 +#: library/turtle.rst:1226 msgid "" "Set fillcolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" -#: library/turtle.rst:1219 +#: library/turtle.rst:1229 msgid "``fillcolor((r, g, b))``" msgstr "" -#: library/turtle.rst:1220 +#: library/turtle.rst:1230 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 "" -#: library/turtle.rst:1224 +#: library/turtle.rst:1234 msgid "``fillcolor(r, g, b)``" msgstr "" -#: library/turtle.rst:1225 +#: library/turtle.rst:1235 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 "" -#: library/turtle.rst:1228 +#: library/turtle.rst:1238 msgid "" "If turtleshape is a polygon, the interior of that polygon is drawn with the " "newly set fillcolor." msgstr "" -#: library/turtle.rst:1231 +#: library/turtle.rst:1241 msgid "" ">>> turtle.fillcolor(\"violet\")\n" ">>> turtle.fillcolor()\n" @@ -1803,54 +1812,54 @@ msgid "" "(255.0, 255.0, 255.0)" msgstr "" -#: library/turtle.rst:1249 +#: library/turtle.rst:1262 msgid "Return or set pencolor and fillcolor." msgstr "" -#: library/turtle.rst:1251 +#: library/turtle.rst:1264 msgid "" "Several input formats are allowed. They use 0 to 3 arguments as follows:" msgstr "" -#: library/turtle.rst:1254 +#: library/turtle.rst:1267 msgid "``color()``" msgstr "" -#: library/turtle.rst:1255 +#: library/turtle.rst:1268 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 "" -#: library/turtle.rst:1259 +#: library/turtle.rst:1272 msgid "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" msgstr "" -#: library/turtle.rst:1260 +#: library/turtle.rst:1273 msgid "" "Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the " "given value." msgstr "" -#: library/turtle.rst:1263 +#: library/turtle.rst:1276 msgid "" "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" msgstr "" -#: library/turtle.rst:1264 +#: library/turtle.rst:1277 msgid "" "Equivalent to ``pencolor(colorstring1)`` and ``fillcolor(colorstring2)`` and " "analogously if the other input format is used." msgstr "" -#: library/turtle.rst:1267 +#: library/turtle.rst:1280 msgid "" "If turtleshape is a polygon, outline and interior of that polygon is drawn " "with the newly set colors." msgstr "" -#: library/turtle.rst:1270 +#: library/turtle.rst:1283 msgid "" ">>> turtle.color(\"red\", \"green\")\n" ">>> turtle.color()\n" @@ -1860,15 +1869,15 @@ msgid "" "((40.0, 80.0, 120.0), (160.0, 200.0, 240.0))" msgstr "" -#: library/turtle.rst:1281 +#: library/turtle.rst:1294 msgid "See also: Screen method :func:`colormode`." msgstr "" -#: library/turtle.rst:1295 +#: library/turtle.rst:1308 msgid "Return fillstate (``True`` if filling, ``False`` else)." msgstr "" -#: library/turtle.rst:1297 +#: library/turtle.rst:1310 msgid "" ">>> turtle.begin_fill()\n" ">>> if turtle.filling():\n" @@ -1877,24 +1886,24 @@ msgid "" "... turtle.pensize(3)" msgstr "" -#: library/turtle.rst:1308 +#: library/turtle.rst:1321 msgid "Fill the shape drawn in the ``with turtle.fill():`` block." msgstr "" -#: library/turtle.rst:1310 +#: library/turtle.rst:1323 msgid "" ">>> turtle.color(\"black\", \"red\")\n" ">>> with turtle.fill():\n" "... turtle.circle(80)" msgstr "" -#: library/turtle.rst:1317 +#: library/turtle.rst:1330 msgid "" "Using :func:`!fill` is equivalent to adding the :func:`begin_fill` before " "the fill-block and :func:`end_fill` after the fill-block:" msgstr "" -#: library/turtle.rst:1345 +#: library/turtle.rst:1358 msgid "" ">>> turtle.color(\"black\", \"red\")\n" ">>> turtle.begin_fill()\n" @@ -1902,15 +1911,15 @@ msgid "" ">>> turtle.end_fill()" msgstr "" -#: library/turtle.rst:1333 +#: library/turtle.rst:1346 msgid "To be called just before drawing a shape to be filled." msgstr "" -#: library/turtle.rst:1338 +#: library/turtle.rst:1351 msgid "Fill the shape drawn after the last call to :func:`begin_fill`." msgstr "" -#: library/turtle.rst:1340 +#: library/turtle.rst:1353 msgid "" "Whether or not overlap regions for self-intersecting polygons or multiple " "shapes are filled depends on the operating system graphics, type of overlap, " @@ -1918,13 +1927,13 @@ msgid "" "all yellow or have some white regions." msgstr "" -#: library/turtle.rst:1359 +#: library/turtle.rst:1372 msgid "" "Delete the turtle's drawings from the screen, re-center the turtle and set " "variables to the default values." msgstr "" -#: library/turtle.rst:1362 +#: library/turtle.rst:1375 msgid "" ">>> turtle.goto(0,-22)\n" ">>> turtle.left(100)\n" @@ -1939,30 +1948,30 @@ msgid "" "0.0" msgstr "" -#: library/turtle.rst:1380 +#: library/turtle.rst:1393 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 "" -#: library/turtle.rst:1386 +#: library/turtle.rst:1399 msgid "object to be written to the TurtleScreen" msgstr "" -#: library/turtle.rst:1387 +#: library/turtle.rst:1400 msgid "True/False" msgstr "" -#: library/turtle.rst:1388 +#: library/turtle.rst:1401 msgid "one of the strings \"left\", \"center\" or right\"" msgstr "" -#: library/turtle.rst:1389 +#: library/turtle.rst:1402 msgid "a triple (fontname, fontsize, fonttype)" msgstr "" -#: library/turtle.rst:1391 +#: library/turtle.rst:1404 msgid "" "Write text - the string representation of *arg* - at the current turtle " "position according to *align* (\"left\", \"center\" or \"right\") and with " @@ -1970,34 +1979,34 @@ msgid "" "corner of the text. By default, *move* is ``False``." msgstr "" -#: library/turtle.rst:1409 +#: library/turtle.rst:1422 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 "" -#: library/turtle.rst:1413 +#: library/turtle.rst:1426 msgid ">>> turtle.hideturtle()" msgstr "" -#: library/turtle.rst:1422 +#: library/turtle.rst:1435 msgid "Make the turtle visible." msgstr "" -#: library/turtle.rst:1424 +#: library/turtle.rst:1437 msgid ">>> turtle.showturtle()" msgstr "" -#: library/turtle.rst:1432 +#: library/turtle.rst:1445 msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." msgstr "" -#: library/turtle.rst:1447 +#: library/turtle.rst:1460 msgid "a string which is a valid shapename" msgstr "" -#: library/turtle.rst:1449 +#: library/turtle.rst:1462 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 " @@ -2007,7 +2016,7 @@ msgid "" "`register_shape`." msgstr "" -#: library/turtle.rst:1455 +#: library/turtle.rst:1468 msgid "" ">>> turtle.shape()\n" "'classic'\n" @@ -2016,40 +2025,40 @@ msgid "" "'turtle'" msgstr "" -#: library/turtle.rst:1467 +#: library/turtle.rst:1480 msgid "one of the strings \"auto\", \"user\", \"noresize\"" msgstr "" -#: library/turtle.rst:1469 +#: library/turtle.rst:1482 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 "" -#: library/turtle.rst:1473 +#: library/turtle.rst:1486 msgid "" "\"auto\": adapts the appearance of the turtle corresponding to the value of " "pensize." msgstr "" -#: library/turtle.rst:1474 +#: library/turtle.rst:1487 msgid "" "\"user\": adapts the appearance of the turtle according to the values of " "stretchfactor and outlinewidth (outline), which are set by :func:`shapesize`." msgstr "" -#: library/turtle.rst:1477 +#: library/turtle.rst:1490 msgid "\"noresize\": no adaption of the turtle's appearance takes place." msgstr "" -#: library/turtle.rst:1479 +#: library/turtle.rst:1492 msgid "" "``resizemode(\"user\")`` is called by :func:`shapesize` when used with " "arguments." msgstr "" -#: library/turtle.rst:1481 +#: library/turtle.rst:1494 msgid "" ">>> turtle.resizemode()\n" "'noresize'\n" @@ -2058,11 +2067,11 @@ msgid "" "'auto'" msgstr "" -#: library/turtle.rst:1495 library/turtle.rst:1496 +#: library/turtle.rst:1508 library/turtle.rst:1509 msgid "positive number" msgstr "" -#: library/turtle.rst:1498 +#: library/turtle.rst:1511 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 " @@ -2072,7 +2081,7 @@ msgid "" "determines the width of the shape's outline." msgstr "" -#: library/turtle.rst:1505 +#: library/turtle.rst:1518 msgid "" ">>> turtle.shapesize()\n" "(1.0, 1.0, 1)\n" @@ -2085,11 +2094,11 @@ msgid "" "(5, 5, 8)" msgstr "" -#: library/turtle.rst:2193 library/turtle.rst:2195 +#: library/turtle.rst:2225 library/turtle.rst:2227 msgid "number (optional)" msgstr "" -#: library/turtle.rst:1523 +#: library/turtle.rst:1536 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 " @@ -2098,7 +2107,7 @@ msgid "" "by which lines parallel to the heading of the turtle are sheared." msgstr "" -#: library/turtle.rst:1530 +#: library/turtle.rst:1543 msgid "" ">>> turtle.shape(\"circle\")\n" ">>> turtle.shapesize(5,2)\n" @@ -2107,13 +2116,13 @@ msgid "" "0.5" msgstr "" -#: library/turtle.rst:1544 +#: library/turtle.rst:1557 msgid "" "Rotate the turtleshape by *angle* from its current tilt-angle, but do *not* " "change the turtle's heading (direction of movement)." msgstr "" -#: library/turtle.rst:1547 +#: library/turtle.rst:1560 msgid "" ">>> turtle.reset()\n" ">>> turtle.shape(\"circle\")\n" @@ -2124,11 +2133,11 @@ msgid "" ">>> turtle.fd(50)" msgstr "" -#: library/turtle.rst:1584 library/turtle.rst:1586 library/turtle.rst:1587 +#: library/turtle.rst:1597 library/turtle.rst:1599 library/turtle.rst:1600 msgid "a number (optional)" msgstr "" -#: library/turtle.rst:1563 +#: library/turtle.rst:1576 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 " @@ -2138,7 +2147,7 @@ msgid "" "turtle (its direction of movement)." msgstr "" -#: library/turtle.rst:1571 +#: library/turtle.rst:1584 msgid "" ">>> turtle.reset()\n" ">>> turtle.shape(\"circle\")\n" @@ -2148,11 +2157,11 @@ msgid "" "45.0" msgstr "" -#: library/turtle.rst:1589 +#: library/turtle.rst:1602 msgid "Set or return the current transformation matrix of the turtle shape." msgstr "" -#: library/turtle.rst:1591 +#: library/turtle.rst:1604 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 " @@ -2162,7 +2171,7 @@ msgid "" "tiltangle according to the given matrix." msgstr "" -#: library/turtle.rst:1600 +#: library/turtle.rst:1613 msgid "" ">>> turtle = Turtle()\n" ">>> turtle.shape(\"square\")\n" @@ -2172,13 +2181,13 @@ msgid "" "(4.0, -1.0, -0.0, 2.0)" msgstr "" -#: library/turtle.rst:1613 +#: library/turtle.rst:1626 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 "" -#: library/turtle.rst:1616 +#: library/turtle.rst:1629 msgid "" ">>> turtle.shape(\"square\")\n" ">>> turtle.shapetransform(4, -1, 0, 2)\n" @@ -2186,30 +2195,30 @@ msgid "" "((50, -20), (30, 20), (-50, 20), (-30, -20))" msgstr "" -#: library/turtle.rst:1653 library/turtle.rst:2117 +#: library/turtle.rst:1666 library/turtle.rst:2149 msgid "" "a function with two arguments which will be called with the coordinates of " "the clicked point on the canvas" msgstr "" -#: library/turtle.rst:1655 library/turtle.rst:2119 +#: library/turtle.rst:1668 library/turtle.rst:2151 msgid "number of the mouse-button, defaults to 1 (left mouse button)" msgstr "" -#: library/turtle.rst:1656 library/turtle.rst:2120 +#: library/turtle.rst:1669 library/turtle.rst:2152 msgid "" "``True`` or ``False`` -- if ``True``, a new binding will be added, otherwise " "it will replace a former binding" msgstr "" -#: library/turtle.rst:1637 +#: library/turtle.rst:1650 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 "" -#: library/turtle.rst:1641 +#: library/turtle.rst:1654 msgid "" ">>> def turn(x, y):\n" "... left(180)\n" @@ -2218,13 +2227,13 @@ msgid "" ">>> onclick(None) # event-binding will be removed" msgstr "" -#: library/turtle.rst:1659 +#: library/turtle.rst:1672 msgid "" "Bind *fun* to mouse-button-release events on this turtle. If *fun* is " "``None``, existing bindings are removed." msgstr "" -#: library/turtle.rst:1662 +#: library/turtle.rst:1675 msgid "" ">>> class MyTurtle(Turtle):\n" "... def glow(self,x,y):\n" @@ -2238,35 +2247,35 @@ msgid "" ">>> turtle.onrelease(turtle.unglow) # releasing turns it to transparent." msgstr "" -#: library/turtle.rst:1684 +#: library/turtle.rst:1697 msgid "" "Bind *fun* to mouse-move events on this turtle. If *fun* is ``None``, " "existing bindings are removed." msgstr "" -#: library/turtle.rst:1687 +#: library/turtle.rst:1700 msgid "" "Remark: Every sequence of mouse-move-events on a turtle is preceded by a " "mouse-click event on that turtle." msgstr "" -#: library/turtle.rst:1690 +#: library/turtle.rst:1703 msgid ">>> turtle.ondrag(turtle.goto)" msgstr "" -#: library/turtle.rst:1695 +#: library/turtle.rst:1708 msgid "" "Subsequently, clicking and dragging the Turtle will move it across the " "screen thereby producing handdrawings (if pen is down)." msgstr "" -#: library/turtle.rst:1705 +#: library/turtle.rst:1718 msgid "" "Record the vertices of a polygon drawn in the ``with turtle.poly():`` block. " "The first and last vertices will be connected." msgstr "" -#: library/turtle.rst:1708 +#: library/turtle.rst:1721 msgid "" ">>> with turtle.poly():\n" "... turtle.forward(100)\n" @@ -2274,23 +2283,23 @@ msgid "" "... turtle.forward(100)" msgstr "" -#: library/turtle.rst:1721 +#: library/turtle.rst:1734 msgid "" "Start recording the vertices of a polygon. Current turtle position is first " "vertex of polygon." msgstr "" -#: library/turtle.rst:1727 +#: library/turtle.rst:1740 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 "" -#: library/turtle.rst:1733 +#: library/turtle.rst:1746 msgid "Return the last recorded polygon." msgstr "" -#: library/turtle.rst:1735 +#: library/turtle.rst:1748 msgid "" ">>> turtle.home()\n" ">>> turtle.begin_poly()\n" @@ -2304,25 +2313,25 @@ msgid "" ">>> register_shape(\"myFavouriteShape\", p)" msgstr "" -#: library/turtle.rst:1752 +#: library/turtle.rst:1765 msgid "" "Create and return a clone of the turtle with same position, heading and " "turtle properties." msgstr "" -#: library/turtle.rst:1755 +#: library/turtle.rst:1768 msgid "" ">>> mick = Turtle()\n" ">>> joe = mick.clone()" msgstr "" -#: library/turtle.rst:1765 +#: library/turtle.rst:1778 msgid "" "Return the Turtle object itself. Only reasonable use: as a function to " "return the \"anonymous turtle\":" msgstr "" -#: library/turtle.rst:1768 +#: library/turtle.rst:1781 msgid "" ">>> pet = getturtle()\n" ">>> pet.fd(50)\n" @@ -2330,13 +2339,13 @@ msgid "" "" msgstr "" -#: library/turtle.rst:1779 +#: library/turtle.rst:1792 msgid "" "Return the :class:`TurtleScreen` object the turtle is drawing on. " "TurtleScreen methods can then be called for that object." msgstr "" -#: library/turtle.rst:1782 +#: library/turtle.rst:1795 msgid "" ">>> ts = turtle.getscreen()\n" ">>> ts\n" @@ -2344,11 +2353,11 @@ msgid "" ">>> ts.bgcolor(\"pink\")" msgstr "" -#: library/turtle.rst:1793 +#: library/turtle.rst:1806 msgid "an integer or ``None``" msgstr "" -#: library/turtle.rst:1795 +#: library/turtle.rst:1808 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 " @@ -2356,46 +2365,46 @@ msgid "" "``None``, the undobuffer is disabled." msgstr "" -#: library/turtle.rst:1800 +#: library/turtle.rst:1813 msgid ">>> turtle.setundobuffer(42)" msgstr "" -#: library/turtle.rst:1808 +#: library/turtle.rst:1821 msgid "Return number of entries in the undobuffer." msgstr "" -#: library/turtle.rst:1810 +#: library/turtle.rst:1823 msgid "" ">>> while undobufferentries():\n" "... undo()" msgstr "" -#: library/turtle.rst:1821 +#: library/turtle.rst:1834 msgid "Compound shapes" msgstr "" -#: library/turtle.rst:1823 +#: library/turtle.rst:1836 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 "" -#: library/turtle.rst:1827 +#: library/turtle.rst:1840 msgid "Create an empty Shape object of type \"compound\"." msgstr "" -#: library/turtle.rst:1828 +#: library/turtle.rst:1841 msgid "" "Add as many components to this object as desired, using the :meth:`~Shape." "addcomponent` method." msgstr "" -#: library/turtle.rst:1831 +#: library/turtle.rst:1844 msgid "For example:" msgstr "" -#: library/turtle.rst:1833 +#: library/turtle.rst:1846 msgid "" ">>> s = Shape(\"compound\")\n" ">>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))\n" @@ -2404,44 +2413,80 @@ msgid "" ">>> s.addcomponent(poly2, \"blue\", \"red\")" msgstr "" -#: library/turtle.rst:1842 +#: library/turtle.rst:1855 msgid "Now add the Shape to the Screen's shapelist and use it:" msgstr "" -#: library/turtle.rst:1844 +#: library/turtle.rst:1857 msgid "" ">>> register_shape(\"myshape\", s)\n" ">>> shape(\"myshape\")" msgstr "" -#: library/turtle.rst:1853 +#: library/turtle.rst:1866 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 "" -#: library/turtle.rst:1859 +#: library/turtle.rst:1872 msgid "Methods of TurtleScreen/Screen and corresponding functions" msgstr "" -#: library/turtle.rst:1861 +#: library/turtle.rst:1874 msgid "" "Most of the examples in this section refer to a TurtleScreen instance called " "``screen``." msgstr "" -#: library/turtle.rst:1875 +#: library/turtle.rst:1890 +msgid "Return or set the background color of the TurtleScreen." +msgstr "" + +#: library/turtle.rst:1894 +msgid "``bgcolor()``" +msgstr "" + +#: library/turtle.rst:1895 +msgid "" +"Return the current background color as color specification string or as a " +"tuple (see example). May be used as input to another color/pencolor/" +"fillcolor/bgcolor call." +msgstr "" + +#: library/turtle.rst:1899 +msgid "``bgcolor(colorstring)``" +msgstr "" + +#: library/turtle.rst:1900 +msgid "" +"Set the background color to *colorstring*, which is a Tk color specification " +"string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." +msgstr "" + +#: library/turtle.rst:1903 +msgid "``bgcolor((r, g, b))``" +msgstr "" + +#: library/turtle.rst:1904 msgid "" -"a color string or three numbers in the range 0..colormode or a 3-tuple of " -"such numbers" +"Set the background color 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 "" + +#: library/turtle.rst:1909 +msgid "``bgcolor(r, g, b)``" msgstr "" -#: library/turtle.rst:1879 -msgid "Set or return background color of the TurtleScreen." +#: library/turtle.rst:1910 +msgid "" +"Set the background color to the RGB color represented by *r*, *g*, and *b*. " +"Each of *r*, *g*, and *b* must be in the range 0..colormode." msgstr "" -#: library/turtle.rst:1881 +#: library/turtle.rst:1913 msgid "" ">>> screen.bgcolor(\"orange\")\n" ">>> screen.bgcolor()\n" @@ -2451,13 +2496,13 @@ msgid "" "(128.0, 0.0, 128.0)" msgstr "" -#: library/turtle.rst:1894 +#: library/turtle.rst:1926 msgid "" "a string, name of an image file (PNG, GIF, PGM, and PPM) or ``\"nopic\"``, " "or ``None``" msgstr "" -#: library/turtle.rst:1897 +#: library/turtle.rst:1929 msgid "" "Set background image or return name of current backgroundimage. If " "*picname* is a filename, set the corresponding image as background. If " @@ -2465,7 +2510,7 @@ msgid "" "*picname* is ``None``, return the filename of the current backgroundimage. ::" msgstr "" -#: library/turtle.rst:1902 +#: library/turtle.rst:1934 msgid "" ">>> screen.bgpic()\n" "'nopic'\n" @@ -2474,44 +2519,44 @@ msgid "" "\"landscape.gif\"" msgstr "" -#: library/turtle.rst:1913 +#: library/turtle.rst:1945 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 "" -#: library/turtle.rst:1920 +#: library/turtle.rst:1952 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 "" -#: library/turtle.rst:1929 +#: library/turtle.rst:1961 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 "" -#: library/turtle.rst:1936 +#: library/turtle.rst:1968 msgid "Reset all Turtles on the Screen to their initial state." msgstr "" -#: library/turtle.rst:1941 +#: library/turtle.rst:1973 msgid "positive integer, new width of canvas in pixels" msgstr "" -#: library/turtle.rst:1942 +#: library/turtle.rst:1974 msgid "positive integer, new height of canvas in pixels" msgstr "" -#: library/turtle.rst:1943 +#: library/turtle.rst:1975 msgid "colorstring or color-tuple, new background color" msgstr "" -#: library/turtle.rst:1945 +#: library/turtle.rst:1977 msgid "" "If no arguments are given, return current (canvaswidth, canvasheight). Else " "resize the canvas the turtles are drawing on. Do not alter the drawing " @@ -2520,40 +2565,40 @@ msgid "" "outside the canvas before." msgstr "" -#: library/turtle.rst:1957 +#: library/turtle.rst:1989 msgid "e.g. to search for an erroneously escaped turtle ;-)" msgstr "" -#: library/turtle.rst:1962 +#: library/turtle.rst:1994 msgid "a number, x-coordinate of lower left corner of canvas" msgstr "" -#: library/turtle.rst:1963 +#: library/turtle.rst:1995 msgid "a number, y-coordinate of lower left corner of canvas" msgstr "" -#: library/turtle.rst:1964 +#: library/turtle.rst:1996 msgid "a number, x-coordinate of upper right corner of canvas" msgstr "" -#: library/turtle.rst:1965 +#: library/turtle.rst:1997 msgid "a number, y-coordinate of upper right corner of canvas" msgstr "" -#: library/turtle.rst:1967 +#: library/turtle.rst:1999 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 "" -#: library/turtle.rst:1971 +#: library/turtle.rst:2003 msgid "" "**ATTENTION**: in user-defined coordinate systems angles may appear " "distorted." msgstr "" -#: library/turtle.rst:1974 +#: library/turtle.rst:2006 msgid "" ">>> screen.reset()\n" ">>> screen.setworldcoordinates(-50,-7.5,50,7.5)\n" @@ -2564,14 +2609,14 @@ msgid "" "... left(45); fd(2) # a regular octagon" msgstr "" -#: library/turtle.rst:1999 +#: library/turtle.rst:2031 msgid "" "Temporarily disable turtle animation. The code written inside the " "``no_animation`` block will not be animated; once the code block is exited, " "the drawing will appear." msgstr "" -#: library/turtle.rst:2003 +#: library/turtle.rst:2035 msgid "" ">>> with screen.no_animation():\n" "... for dist in range(2, 400, 2):\n" @@ -2579,22 +2624,22 @@ msgid "" "... rt(90)" msgstr "" -#: library/turtle.rst:2016 +#: library/turtle.rst:2048 msgid "positive integer" msgstr "" -#: library/turtle.rst:2018 +#: library/turtle.rst:2050 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 "" -#: library/turtle.rst:2022 +#: library/turtle.rst:2054 msgid "Optional argument:" msgstr "" -#: library/turtle.rst:2024 +#: library/turtle.rst:2056 msgid "" ">>> screen.delay()\n" "10\n" @@ -2603,11 +2648,11 @@ msgid "" "5" msgstr "" -#: library/turtle.rst:2037 +#: library/turtle.rst:2069 msgid "nonnegative integer" msgstr "" -#: library/turtle.rst:2039 +#: library/turtle.rst:2071 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 " @@ -2616,7 +2661,7 @@ msgid "" "delay value (see :func:`delay`)." msgstr "" -#: library/turtle.rst:2046 +#: library/turtle.rst:2078 msgid "" ">>> screen.tracer(8, 25)\n" ">>> dist = 2\n" @@ -2626,37 +2671,37 @@ msgid "" "... dist += 2" msgstr "" -#: library/turtle.rst:2059 +#: library/turtle.rst:2091 msgid "Perform a TurtleScreen update. To be used when tracer is turned off." msgstr "" -#: library/turtle.rst:2061 +#: library/turtle.rst:2093 msgid "See also the RawTurtle/Turtle method :func:`speed`." msgstr "" -#: library/turtle.rst:2069 +#: library/turtle.rst:2101 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 "" -#: library/turtle.rst:2096 +#: library/turtle.rst:2128 msgid "a function with no arguments or ``None``" msgstr "" -#: library/turtle.rst:2097 +#: library/turtle.rst:2129 msgid "a string: key (e.g. \"a\") or key-symbol (e.g. \"space\")" msgstr "" -#: library/turtle.rst:2079 +#: library/turtle.rst:2111 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 "" -#: library/turtle.rst:2083 +#: library/turtle.rst:2115 msgid "" ">>> def f():\n" "... fd(50)\n" @@ -2666,14 +2711,14 @@ msgid "" ">>> screen.listen()" msgstr "" -#: library/turtle.rst:2099 +#: library/turtle.rst:2131 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 "" -#: library/turtle.rst:2104 +#: library/turtle.rst:2136 msgid "" ">>> def f():\n" "... fd(50)\n" @@ -2682,19 +2727,19 @@ msgid "" ">>> screen.listen()" msgstr "" -#: library/turtle.rst:2123 +#: library/turtle.rst:2155 msgid "" "Bind *fun* to mouse-click events on this screen. If *fun* is ``None``, " "existing bindings are removed." msgstr "" -#: library/turtle.rst:2126 +#: library/turtle.rst:2158 msgid "" "Example for a TurtleScreen instance named ``screen`` and a Turtle instance " "named ``turtle``:" msgstr "" -#: library/turtle.rst:2129 +#: library/turtle.rst:2161 msgid "" ">>> screen.onclick(turtle.goto) # Subsequently clicking into the " "TurtleScreen will\n" @@ -2703,26 +2748,26 @@ msgid "" ">>> screen.onclick(None) # remove event binding again" msgstr "" -#: library/turtle.rst:2137 +#: library/turtle.rst:2169 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 "" -#: library/turtle.rst:2144 +#: library/turtle.rst:2176 msgid "a function with no arguments" msgstr "" -#: library/turtle.rst:2145 +#: library/turtle.rst:2177 msgid "a number >= 0" msgstr "" -#: library/turtle.rst:2147 +#: library/turtle.rst:2179 msgid "Install a timer that calls *fun* after *t* milliseconds." msgstr "" -#: library/turtle.rst:2149 +#: library/turtle.rst:2181 msgid "" ">>> running = True\n" ">>> def f():\n" @@ -2734,7 +2779,7 @@ msgid "" ">>> running = False" msgstr "" -#: library/turtle.rst:2165 +#: library/turtle.rst:2197 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 " @@ -2742,15 +2787,15 @@ msgid "" "turtle graphics. ::" msgstr "" -#: library/turtle.rst:2170 +#: library/turtle.rst:2202 msgid ">>> screen.mainloop()" msgstr "" -#: library/turtle.rst:2179 library/turtle.rst:2192 +#: library/turtle.rst:2211 library/turtle.rst:2224 msgid "string" msgstr "" -#: library/turtle.rst:2181 +#: library/turtle.rst:2213 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 " @@ -2758,11 +2803,11 @@ msgid "" "``None``. ::" msgstr "" -#: library/turtle.rst:2186 +#: library/turtle.rst:2218 msgid ">>> screen.textinput(\"NIM\", \"Name of first player:\")" msgstr "" -#: library/turtle.rst:2197 +#: library/turtle.rst:2229 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 " @@ -2773,23 +2818,23 @@ msgid "" "return ``None``. ::" msgstr "" -#: library/turtle.rst:2206 +#: library/turtle.rst:2238 msgid "" ">>> screen.numinput(\"Poker\", \"Your stakes:\", 1000, minval=10, " "maxval=10000)" msgstr "" -#: library/turtle.rst:2214 +#: library/turtle.rst:2246 msgid "one of the strings \"standard\", \"logo\" or \"world\"" msgstr "" -#: library/turtle.rst:2216 +#: library/turtle.rst:2248 msgid "" "Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If " "mode is not given, current mode is returned." msgstr "" -#: library/turtle.rst:2219 +#: library/turtle.rst:2251 msgid "" "Mode \"standard\" is compatible with old :mod:`turtle`. Mode \"logo\" is " "compatible with most Logo turtle graphics. Mode \"world\" uses user-defined " @@ -2797,60 +2842,60 @@ msgid "" "if ``x/y`` unit-ratio doesn't equal 1." msgstr "" -#: library/turtle.rst:2225 +#: library/turtle.rst:2257 msgid "Mode" msgstr "" -#: library/turtle.rst:2225 +#: library/turtle.rst:2257 msgid "Initial turtle heading" msgstr "" -#: library/turtle.rst:2225 +#: library/turtle.rst:2257 msgid "positive angles" msgstr "" -#: library/turtle.rst:2227 +#: library/turtle.rst:2259 msgid "\"standard\"" msgstr "" -#: library/turtle.rst:2227 +#: library/turtle.rst:2259 msgid "to the right (east)" msgstr "" -#: library/turtle.rst:2227 +#: library/turtle.rst:2259 msgid "counterclockwise" msgstr "" -#: library/turtle.rst:2228 +#: library/turtle.rst:2260 msgid "\"logo\"" msgstr "" -#: library/turtle.rst:2228 +#: library/turtle.rst:2260 msgid "upward (north)" msgstr "" -#: library/turtle.rst:2228 +#: library/turtle.rst:2260 msgid "clockwise" msgstr "" -#: library/turtle.rst:2231 +#: library/turtle.rst:2263 msgid "" ">>> mode(\"logo\") # resets turtle heading to north\n" ">>> mode()\n" "'logo'" msgstr "" -#: library/turtle.rst:2241 +#: library/turtle.rst:2273 msgid "one of the values 1.0 or 255" msgstr "" -#: library/turtle.rst:2243 +#: library/turtle.rst:2275 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 "" -#: library/turtle.rst:2246 +#: library/turtle.rst:2278 msgid "" ">>> screen.colormode(1)\n" ">>> turtle.pencolor(240, 160, 80)\n" @@ -2865,130 +2910,130 @@ msgid "" ">>> turtle.pencolor(240,160,80)" msgstr "" -#: library/turtle.rst:2264 +#: library/turtle.rst:2296 msgid "" "Return the Canvas of this TurtleScreen. Useful for insiders who know what " "to do with a Tkinter Canvas." msgstr "" -#: library/turtle.rst:2267 +#: library/turtle.rst:2299 msgid "" ">>> cv = screen.getcanvas()\n" ">>> cv\n" "" msgstr "" -#: library/turtle.rst:2277 +#: library/turtle.rst:2309 msgid "Return a list of names of all currently available turtle shapes." msgstr "" -#: library/turtle.rst:2279 +#: library/turtle.rst:2311 msgid "" ">>> screen.getshapes()\n" "['arrow', 'blank', 'circle', ..., 'turtle']" msgstr "" -#: library/turtle.rst:2289 +#: library/turtle.rst:2321 msgid "There are four different ways to call this function:" msgstr "" -#: library/turtle.rst:2291 +#: library/turtle.rst:2323 msgid "" "*name* is the name of an image file (PNG, GIF, PGM, and PPM) and *shape* is " "``None``: Install the corresponding image shape. ::" msgstr "" -#: library/turtle.rst:2294 +#: library/turtle.rst:2326 msgid ">>> screen.register_shape(\"turtle.gif\")" msgstr "" -#: library/turtle.rst:2306 +#: library/turtle.rst:2338 msgid "" "Image shapes *do not* rotate when turning the turtle, so they do not display " "the heading of the turtle!" msgstr "" -#: library/turtle.rst:2300 +#: library/turtle.rst:2332 msgid "" "*name* is an arbitrary string and *shape* is the name of an image file (PNG, " "GIF, PGM, and PPM): Install the corresponding image shape. ::" msgstr "" -#: library/turtle.rst:2303 +#: library/turtle.rst:2335 msgid ">>> screen.register_shape(\"turtle\", \"turtle.gif\")" msgstr "" -#: library/turtle.rst:2309 +#: library/turtle.rst:2341 msgid "" "*name* is an arbitrary string and *shape* is a tuple of pairs of " "coordinates: Install the corresponding polygon shape." msgstr "" -#: library/turtle.rst:2312 +#: library/turtle.rst:2344 msgid ">>> screen.register_shape(\"triangle\", ((5,-3), (0,5), (-5,-3)))" msgstr "" -#: library/turtle.rst:2317 +#: library/turtle.rst:2349 msgid "" "*name* is an arbitrary string and *shape* is a (compound) :class:`Shape` " "object: Install the corresponding compound shape." msgstr "" -#: library/turtle.rst:2320 +#: library/turtle.rst:2352 msgid "" "Add a turtle shape to TurtleScreen's shapelist. Only thusly registered " "shapes can be used by issuing the command ``shape(shapename)``." msgstr "" -#: library/turtle.rst:2323 +#: library/turtle.rst:2355 msgid "" "Added support for PNG, PGM, and PPM image formats. Both a shape name and an " "image file name can be specified." msgstr "" -#: library/turtle.rst:2330 +#: library/turtle.rst:2362 msgid "Return the list of turtles on the screen." msgstr "" -#: library/turtle.rst:2332 +#: library/turtle.rst:2364 msgid "" ">>> for turtle in screen.turtles():\n" "... turtle.color(\"red\")" msgstr "" -#: library/turtle.rst:2341 +#: library/turtle.rst:2373 msgid "Return the height of the turtle window. ::" msgstr "" -#: library/turtle.rst:2343 +#: library/turtle.rst:2375 msgid "" ">>> screen.window_height()\n" "480" msgstr "" -#: library/turtle.rst:2349 +#: library/turtle.rst:2381 msgid "Return the width of the turtle window. ::" msgstr "" -#: library/turtle.rst:2351 +#: library/turtle.rst:2383 msgid "" ">>> screen.window_width()\n" "640" msgstr "" -#: library/turtle.rst:2358 +#: library/turtle.rst:2390 msgid "Methods specific to Screen, not inherited from TurtleScreen" msgstr "" -#: library/turtle.rst:2362 +#: library/turtle.rst:2394 msgid "Shut the turtlegraphics window." msgstr "" -#: library/turtle.rst:2367 +#: library/turtle.rst:2399 msgid "Bind ``bye()`` method to mouse clicks on the Screen." msgstr "" -#: library/turtle.rst:2370 +#: library/turtle.rst:2402 msgid "" "If the value \"using_IDLE\" in the configuration dictionary is ``False`` " "(default value), also enter mainloop. Remark: If IDLE with the ``-n`` " @@ -2997,59 +3042,59 @@ msgid "" "client script." msgstr "" -#: library/turtle.rst:2379 +#: library/turtle.rst:2411 msgid "Save the current turtle drawing (and turtles) as a PostScript file." msgstr "" -#: library/turtle.rst:2381 +#: library/turtle.rst:2413 msgid "the path of the saved PostScript file" msgstr "" -#: library/turtle.rst:2382 +#: library/turtle.rst:2414 msgid "" "if ``False`` and there already exists a file with the given filename, then " "the function will raise a ``FileExistsError``. If it is ``True``, the file " "will be overwritten." msgstr "" -#: library/turtle.rst:2387 +#: library/turtle.rst:2419 msgid "" ">>> screen.save(\"my_drawing.ps\")\n" ">>> screen.save(\"my_drawing.ps\", overwrite=True)" msgstr "" -#: library/turtle.rst:2397 +#: library/turtle.rst:2429 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 "" -#: library/turtle.rst:2401 +#: library/turtle.rst:2433 msgid "" "if an integer, a size in pixels, if a float, a fraction of the screen; " "default is 50% of screen" msgstr "" -#: library/turtle.rst:2403 +#: library/turtle.rst:2435 msgid "" "if an integer, the height in pixels, if a float, a fraction of the screen; " "default is 75% of screen" msgstr "" -#: library/turtle.rst:2405 +#: library/turtle.rst:2437 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 "" -#: library/turtle.rst:2408 +#: library/turtle.rst:2440 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 "" -#: library/turtle.rst:2412 +#: library/turtle.rst:2444 msgid "" ">>> screen.setup (width=200, height=200, startx=0, starty=0)\n" ">>> # sets window to 200x200 pixels, in upper left of screen\n" @@ -3057,128 +3102,128 @@ msgid "" ">>> # sets window to 75% of screen by 50% of screen and centers" msgstr "" -#: library/turtle.rst:2423 +#: library/turtle.rst:2455 msgid "a string that is shown in the titlebar of the turtle graphics window" msgstr "" -#: library/turtle.rst:2426 +#: library/turtle.rst:2458 msgid "Set title of turtle window to *titlestring*." msgstr "" -#: library/turtle.rst:2428 +#: library/turtle.rst:2460 msgid ">>> screen.title(\"Welcome to the turtle zoo!\")" msgstr "" -#: library/turtle.rst:2435 +#: library/turtle.rst:2467 msgid "Public classes" msgstr "" -#: library/turtle.rst:2441 +#: library/turtle.rst:2473 msgid "" "a :class:`!tkinter.Canvas`, a :class:`ScrolledCanvas` or a :class:" "`TurtleScreen`" msgstr "" -#: library/turtle.rst:2444 +#: library/turtle.rst:2476 msgid "" "Create a turtle. The turtle has all methods described above as \"methods of " "Turtle/RawTurtle\"." msgstr "" -#: library/turtle.rst:2450 +#: library/turtle.rst:2482 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 "" -#: library/turtle.rst:2456 +#: library/turtle.rst:2488 msgid "a :class:`!tkinter.Canvas`" msgstr "" -#: library/turtle.rst:2458 +#: library/turtle.rst:2490 msgid "" "Provides screen oriented methods like :func:`bgcolor` etc. that are " "described above." msgstr "" -#: library/turtle.rst:2463 +#: library/turtle.rst:2495 msgid "" "Subclass of TurtleScreen, with :ref:`four methods added `." msgstr "" -#: library/turtle.rst:2468 +#: library/turtle.rst:2500 msgid "" "some Tkinter widget to contain the ScrolledCanvas, i.e. a Tkinter-canvas " "with scrollbars added" msgstr "" -#: library/turtle.rst:2471 +#: library/turtle.rst:2503 msgid "" "Used by class Screen, which thus automatically provides a ScrolledCanvas as " "playground for the turtles." msgstr "" -#: library/turtle.rst:2476 +#: library/turtle.rst:2508 msgid "one of the strings \"polygon\", \"image\", \"compound\"" msgstr "" -#: library/turtle.rst:2478 +#: library/turtle.rst:2510 msgid "" "Data structure modeling shapes. The pair ``(type_, data)`` must follow this " "specification:" msgstr "" -#: library/turtle.rst:2483 +#: library/turtle.rst:2515 msgid "*type_*" msgstr "" -#: library/turtle.rst:2483 +#: library/turtle.rst:2515 msgid "*data*" msgstr "" -#: library/turtle.rst:2485 +#: library/turtle.rst:2517 msgid "\"polygon\"" msgstr "" -#: library/turtle.rst:2485 +#: library/turtle.rst:2517 msgid "a polygon-tuple, i.e. a tuple of pairs of coordinates" msgstr "" -#: library/turtle.rst:2486 +#: library/turtle.rst:2518 msgid "\"image\"" msgstr "" -#: library/turtle.rst:2486 +#: library/turtle.rst:2518 msgid "an image (in this form only used internally!)" msgstr "" -#: library/turtle.rst:2487 +#: library/turtle.rst:2519 msgid "\"compound\"" msgstr "" -#: library/turtle.rst:2487 +#: library/turtle.rst:2519 msgid "" "``None`` (a compound shape has to be constructed using the :meth:" "`addcomponent` method)" msgstr "" -#: library/turtle.rst:2493 +#: library/turtle.rst:2525 msgid "a polygon, i.e. a tuple of pairs of numbers" msgstr "" -#: library/turtle.rst:2494 +#: library/turtle.rst:2526 msgid "a color the *poly* will be filled with" msgstr "" -#: library/turtle.rst:2495 +#: library/turtle.rst:2527 msgid "a color for the poly's outline (if given)" msgstr "" -#: library/turtle.rst:2497 +#: library/turtle.rst:2529 msgid "Example:" msgstr "" -#: library/turtle.rst:2499 +#: library/turtle.rst:2531 msgid "" ">>> poly = ((0,0),(10,-5),(0,10),(-10,-5))\n" ">>> s = Shape(\"compound\")\n" @@ -3186,63 +3231,63 @@ msgid "" ">>> # ... add more components and then use register_shape()" msgstr "" -#: library/turtle.rst:2507 +#: library/turtle.rst:2539 msgid "See :ref:`compoundshapes`." msgstr "" -#: library/turtle.rst:2512 +#: library/turtle.rst:2544 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 "" -#: library/turtle.rst:2516 +#: library/turtle.rst:2548 msgid "Provides (for *a*, *b* vectors, *k* number):" msgstr "" -#: library/turtle.rst:2518 +#: library/turtle.rst:2550 msgid "``a + b`` vector addition" msgstr "" -#: library/turtle.rst:2519 +#: library/turtle.rst:2551 msgid "``a - b`` vector subtraction" msgstr "" -#: library/turtle.rst:2520 +#: library/turtle.rst:2552 msgid "``a * b`` inner product" msgstr "" -#: library/turtle.rst:2521 +#: library/turtle.rst:2553 msgid "``k * a`` and ``a * k`` multiplication with scalar" msgstr "" -#: library/turtle.rst:2522 +#: library/turtle.rst:2554 msgid "``abs(a)`` absolute value of a" msgstr "" -#: library/turtle.rst:2523 +#: library/turtle.rst:2555 msgid "``a.rotate(angle)`` rotation" msgstr "" -#: library/turtle.rst:2529 +#: library/turtle.rst:2561 msgid "Explanation" msgstr "" -#: library/turtle.rst:2531 +#: library/turtle.rst:2563 msgid "" "A turtle object draws on a screen object, and there a number of key classes " "in the turtle object-oriented interface that can be used to create them and " "relate them to each other." msgstr "" -#: library/turtle.rst:2535 +#: library/turtle.rst:2567 msgid "" "A :class:`Turtle` instance will automatically create a :class:`Screen` " "instance if one is not already present." msgstr "" -#: library/turtle.rst:2538 +#: library/turtle.rst:2570 msgid "" "``Turtle`` is a subclass of :class:`RawTurtle`, which *doesn't* " "automatically create a drawing surface - a *canvas* will need to be provided " @@ -3250,7 +3295,7 @@ msgid "" "`ScrolledCanvas` or :class:`TurtleScreen`." msgstr "" -#: library/turtle.rst:2544 +#: library/turtle.rst:2576 msgid "" ":class:`TurtleScreen` is the basic drawing surface for a turtle. :class:" "`Screen` is a subclass of ``TurtleScreen``, and includes :ref:`some " @@ -3259,7 +3304,7 @@ msgid "" "`!tkinter.Canvas` or a :class:`ScrolledCanvas` as an argument." msgstr "" -#: library/turtle.rst:2551 +#: library/turtle.rst:2583 msgid "" "The functional interface for turtle graphics uses the various methods of " "``Turtle`` and ``TurtleScreen``/``Screen``. Behind the scenes, a screen " @@ -3268,38 +3313,38 @@ msgid "" "created whenever any of the functions derived from a Turtle method is called." msgstr "" -#: library/turtle.rst:2557 +#: library/turtle.rst:2589 msgid "" "To use multiple turtles on a screen, the object-oriented interface must be " "used." msgstr "" -#: library/turtle.rst:2562 +#: library/turtle.rst:2594 msgid "Help and configuration" msgstr "" -#: library/turtle.rst:2565 +#: library/turtle.rst:2597 msgid "How to use help" msgstr "" -#: library/turtle.rst:2567 +#: library/turtle.rst:2599 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 "" -#: library/turtle.rst:2571 +#: library/turtle.rst:2603 msgid "" "When using IDLE, tooltips show the signatures and first lines of the " "docstrings of typed in function-/method calls." msgstr "" -#: library/turtle.rst:2574 +#: library/turtle.rst:2606 msgid "Calling :func:`help` on methods or functions displays the docstrings::" msgstr "" -#: library/turtle.rst:2576 +#: library/turtle.rst:2608 msgid "" ">>> help(Screen.bgcolor)\n" "Help on method bgcolor in module turtle:\n" @@ -3331,13 +3376,13 @@ msgid "" " >>> turtle.penup()" msgstr "" -#: library/turtle.rst:2605 +#: library/turtle.rst:2637 msgid "" "The docstrings of the functions which are derived from methods have a " "modified form::" msgstr "" -#: library/turtle.rst:2608 +#: library/turtle.rst:2640 msgid "" ">>> help(bgcolor)\n" "Help on function bgcolor in module turtle:\n" @@ -3371,28 +3416,28 @@ msgid "" " >>> penup()" msgstr "" -#: library/turtle.rst:2639 +#: library/turtle.rst:2671 msgid "" "These modified docstrings are created automatically together with the " "function definitions that are derived from the methods at import time." msgstr "" -#: library/turtle.rst:2644 +#: library/turtle.rst:2676 msgid "Translation of docstrings into different languages" msgstr "" -#: library/turtle.rst:2646 +#: library/turtle.rst:2678 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 "" -#: library/turtle.rst:2652 +#: library/turtle.rst:2684 msgid "a string, used as filename" msgstr "" -#: library/turtle.rst:2654 +#: library/turtle.rst:2686 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 " @@ -3401,37 +3446,37 @@ msgid "" "for translation of the docstrings into different languages." msgstr "" -#: library/turtle.rst:2660 +#: library/turtle.rst:2692 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 "" -#: library/turtle.rst:2664 +#: library/turtle.rst:2696 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 "" -#: library/turtle.rst:2667 +#: library/turtle.rst:2699 msgid "" "At the time of this writing there are docstring dictionaries in German and " "in Italian. (Requests please to glingl@aon.at.)" msgstr "" -#: library/turtle.rst:2673 +#: library/turtle.rst:2705 msgid "How to configure Screen and Turtles" msgstr "" -#: library/turtle.rst:2675 +#: library/turtle.rst:2707 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 "" -#: library/turtle.rst:2678 +#: library/turtle.rst:2710 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 " @@ -3440,12 +3485,12 @@ msgid "" "settings." msgstr "" -#: library/turtle.rst:2683 +#: library/turtle.rst:2715 msgid "" "The built in configuration would correspond to the following ``turtle.cfg``:" msgstr "" -#: library/turtle.rst:2685 +#: library/turtle.rst:2717 msgid "" "width = 0.5\n" "height = 0.75\n" @@ -3469,49 +3514,49 @@ msgid "" "using_IDLE = False" msgstr "" -#: library/turtle.rst:2708 +#: library/turtle.rst:2740 msgid "Short explanation of selected entries:" msgstr "" -#: library/turtle.rst:2710 +#: library/turtle.rst:2742 msgid "" "The first four lines correspond to the arguments of the :func:`Screen.setup " "` method." msgstr "" -#: library/turtle.rst:2712 +#: library/turtle.rst:2744 msgid "" "Line 5 and 6 correspond to the arguments of the method :func:`Screen." "screensize `." msgstr "" -#: library/turtle.rst:2714 +#: library/turtle.rst:2746 msgid "" "*shape* can be any of the built-in shapes, e.g: arrow, turtle, etc. For " "more info try ``help(shape)``." msgstr "" -#: library/turtle.rst:2716 +#: library/turtle.rst:2748 msgid "" "If you want to use no fill color (i.e. make the turtle transparent), you " "have to write ``fillcolor = \"\"`` (but all nonempty strings must not have " "quotes in the cfg file)." msgstr "" -#: library/turtle.rst:2719 +#: library/turtle.rst:2751 msgid "" "If you want to reflect the turtle its state, you have to use ``resizemode = " "auto``." msgstr "" -#: library/turtle.rst:2721 +#: library/turtle.rst:2753 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 "" -#: library/turtle.rst:2724 +#: library/turtle.rst:2756 msgid "" "The entries *exampleturtle* and *examplescreen* define the names of these " "objects as they occur in the docstrings. The transformation of method-" @@ -3519,309 +3564,311 @@ msgid "" "docstrings." msgstr "" -#: library/turtle.rst:2728 +#: library/turtle.rst:2760 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 "" -#: library/turtle.rst:2732 +#: library/turtle.rst:2764 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 "" -#: library/turtle.rst:2736 +#: library/turtle.rst:2768 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 "" -#: library/turtle.rst:2742 +#: library/turtle.rst:2774 msgid ":mod:`turtledemo` --- Demo scripts" msgstr "" -#: library/turtle.rst:2747 +#: library/turtle.rst:2779 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 "" -#: library/turtle.rst:2750 +#: library/turtle.rst:2782 msgid "python -m turtledemo" msgstr "" -#: library/turtle.rst:2752 +#: library/turtle.rst:2784 msgid "" "Alternatively, you can run the demo scripts individually. For example, ::" msgstr "" -#: library/turtle.rst:2754 +#: library/turtle.rst:2786 msgid "python -m turtledemo.bytedesign" msgstr "" -#: library/turtle.rst:2756 +#: library/turtle.rst:2788 msgid "The :mod:`turtledemo` package directory contains:" msgstr "" -#: library/turtle.rst:2758 +#: library/turtle.rst:2790 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 "" -#: library/turtle.rst:2760 +#: library/turtle.rst:2792 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 "" -#: library/turtle.rst:2763 +#: library/turtle.rst:2795 msgid "" "A :file:`turtle.cfg` file which serves as an example of how to write and use " "such files." msgstr "" -#: library/turtle.rst:2766 +#: library/turtle.rst:2798 msgid "The demo scripts are:" msgstr "" -#: library/turtle.rst:2773 +#: library/turtle.rst:2805 msgid "Name" msgstr "" -#: library/turtle.rst:2773 +#: library/turtle.rst:2805 msgid "Description" msgstr "" -#: library/turtle.rst:2773 +#: library/turtle.rst:2805 msgid "Features" msgstr "" -#: library/turtle.rst:2775 -msgid "bytedesign" +#: library/turtle.rst:2807 +msgid "``bytedesign``" msgstr "" -#: library/turtle.rst:2775 +#: library/turtle.rst:2807 msgid "complex classical turtle graphics pattern" msgstr "" -#: library/turtle.rst:2775 -msgid ":func:`tracer`, delay, :func:`update`" +#: library/turtle.rst:2807 +msgid ":func:`tracer`, :func:`delay`, :func:`update`" msgstr "" -#: library/turtle.rst:2778 -msgid "chaos" +#: library/turtle.rst:2810 +msgid "``chaos``" msgstr "" -#: library/turtle.rst:2778 +#: library/turtle.rst:2810 msgid "" "graphs Verhulst dynamics, shows that computer's computations can generate " "results sometimes against the common sense expectations" msgstr "" -#: library/turtle.rst:2778 +#: library/turtle.rst:2810 msgid "world coordinates" msgstr "" -#: library/turtle.rst:2784 -msgid "clock" +#: library/turtle.rst:2816 +msgid "``clock``" msgstr "" -#: library/turtle.rst:2784 +#: library/turtle.rst:2816 msgid "analog clock showing time of your computer" msgstr "" -#: library/turtle.rst:2784 -msgid "turtles as clock's hands, ontimer" +#: library/turtle.rst:2816 +msgid "turtles as clock's hands, :func:`ontimer`" msgstr "" -#: library/turtle.rst:2787 -msgid "colormixer" +#: library/turtle.rst:2819 +msgid "``colormixer``" msgstr "" -#: library/turtle.rst:2787 +#: library/turtle.rst:2819 msgid "experiment with r, g, b" msgstr "" -#: library/turtle.rst:2789 -msgid "forest" +#: library/turtle.rst:2821 +msgid "``forest``" msgstr "" -#: library/turtle.rst:2789 +#: library/turtle.rst:2821 msgid "3 breadth-first trees" msgstr "" -#: library/turtle.rst:2789 +#: library/turtle.rst:2821 msgid "randomization" msgstr "" -#: library/turtle.rst:2791 -msgid "fractalcurves" +#: library/turtle.rst:2823 +msgid "``fractalcurves``" msgstr "" -#: library/turtle.rst:2791 +#: library/turtle.rst:2823 msgid "Hilbert & Koch curves" msgstr "" -#: library/turtle.rst:2791 +#: library/turtle.rst:2823 msgid "recursion" msgstr "" -#: library/turtle.rst:2793 -msgid "lindenmayer" +#: library/turtle.rst:2825 +msgid "``lindenmayer``" msgstr "" -#: library/turtle.rst:2793 +#: library/turtle.rst:2825 msgid "ethnomathematics (indian kolams)" msgstr "" -#: library/turtle.rst:2793 +#: library/turtle.rst:2825 msgid "L-System" msgstr "" -#: library/turtle.rst:2796 -msgid "minimal_hanoi" +#: library/turtle.rst:2828 +msgid "``minimal_hanoi``" msgstr "" -#: library/turtle.rst:2796 +#: library/turtle.rst:2828 msgid "Towers of Hanoi" msgstr "" -#: library/turtle.rst:2796 -msgid "Rectangular Turtles as Hanoi discs (shape, shapesize)" +#: library/turtle.rst:2828 +msgid "Rectangular Turtles as Hanoi discs (:func:`shape`, :func:`shapesize`)" msgstr "" -#: library/turtle.rst:2800 -msgid "nim" +#: library/turtle.rst:2832 +msgid "``nim``" msgstr "" -#: library/turtle.rst:2800 +#: library/turtle.rst:2832 msgid "" "play the classical nim game with three heaps of sticks against the computer." msgstr "" -#: library/turtle.rst:2800 +#: library/turtle.rst:2832 msgid "turtles as nimsticks, event driven (mouse, keyboard)" msgstr "" -#: library/turtle.rst:2804 -msgid "paint" +#: library/turtle.rst:2836 +msgid "``paint``" msgstr "" -#: library/turtle.rst:2804 +#: library/turtle.rst:2836 msgid "super minimalistic drawing program" msgstr "" -#: library/turtle.rst:2807 -msgid "peace" +#: library/turtle.rst:2839 +msgid "``peace``" msgstr "" -#: library/turtle.rst:2807 +#: library/turtle.rst:2839 msgid "elementary" msgstr "" -#: library/turtle.rst:2807 +#: library/turtle.rst:2839 msgid "turtle: appearance and animation" msgstr "" -#: library/turtle.rst:2810 -msgid "penrose" +#: library/turtle.rst:2842 +msgid "``penrose``" msgstr "" -#: library/turtle.rst:2810 +#: library/turtle.rst:2842 msgid "aperiodic tiling with kites and darts" msgstr "" -#: library/turtle.rst:2813 -msgid "planet_and_moon" +#: library/turtle.rst:2845 +msgid "``planet_and_moon``" msgstr "" -#: library/turtle.rst:2813 +#: library/turtle.rst:2845 msgid "simulation of gravitational system" msgstr "" -#: library/turtle.rst:2813 +#: library/turtle.rst:2845 msgid "compound shapes, :class:`Vec2D`" msgstr "" -#: library/turtle.rst:2816 -msgid "rosette" +#: library/turtle.rst:2848 +msgid "``rosette``" msgstr "" -#: library/turtle.rst:2816 +#: library/turtle.rst:2848 msgid "a pattern from the wikipedia article on turtle graphics" msgstr "" -#: library/turtle.rst:2816 +#: library/turtle.rst:2848 msgid ":func:`clone`, :func:`undo`" msgstr "" -#: library/turtle.rst:2819 -msgid "round_dance" +#: library/turtle.rst:2851 +msgid "``round_dance``" msgstr "" -#: library/turtle.rst:2819 +#: library/turtle.rst:2851 msgid "dancing turtles rotating pairwise in opposite direction" msgstr "" -#: library/turtle.rst:2819 -msgid "compound shapes, clone shapesize, tilt, get_shapepoly, update" +#: library/turtle.rst:2851 +msgid "" +"compound shapes, :func:`clone` :func:`shapesize`, :func:`tilt`, :func:" +"`get_shapepoly`, :func:`update`" msgstr "" -#: library/turtle.rst:2823 -msgid "sorting_animate" +#: library/turtle.rst:2855 +msgid "``sorting_animate``" msgstr "" -#: library/turtle.rst:2823 +#: library/turtle.rst:2855 msgid "visual demonstration of different sorting methods" msgstr "" -#: library/turtle.rst:2823 +#: library/turtle.rst:2855 msgid "simple alignment, randomization" msgstr "" -#: library/turtle.rst:2826 -msgid "tree" +#: library/turtle.rst:2858 +msgid "``tree``" msgstr "" -#: library/turtle.rst:2826 +#: library/turtle.rst:2858 msgid "a (graphical) breadth first tree (using generators)" msgstr "" -#: library/turtle.rst:2829 -msgid "two_canvases" +#: library/turtle.rst:2861 +msgid "``two_canvases``" msgstr "" -#: library/turtle.rst:2829 +#: library/turtle.rst:2861 msgid "simple design" msgstr "" -#: library/turtle.rst:2829 +#: library/turtle.rst:2861 msgid "turtles on two canvases" msgstr "" -#: library/turtle.rst:2832 -msgid "yinyang" +#: library/turtle.rst:2864 +msgid "``yinyang``" msgstr "" -#: library/turtle.rst:2832 +#: library/turtle.rst:2864 msgid "another elementary example" msgstr "" -#: library/turtle.rst:2835 +#: library/turtle.rst:2867 msgid "Have fun!" msgstr "" -#: library/turtle.rst:2839 +#: library/turtle.rst:2871 msgid "Changes since Python 2.6" msgstr "" -#: library/turtle.rst:2841 +#: library/turtle.rst:2873 msgid "" "The methods :func:`Turtle.tracer `, :func:`Turtle.window_width " "` and :func:`Turtle.window_height ` have been " @@ -3832,14 +3879,14 @@ msgid "" "methods.)" msgstr "" -#: library/turtle.rst:2849 +#: library/turtle.rst:2881 msgid "" "The method :func:`!Turtle.fill` has been eliminated. The behaviour of :func:" "`begin_fill` and :func:`end_fill` have changed slightly: now every filling " "process must be completed with an ``end_fill()`` call." msgstr "" -#: library/turtle.rst:2854 +#: library/turtle.rst:2886 msgid "" "A method :func:`Turtle.filling ` has been added. It returns a " "boolean value: ``True`` if a filling process is under way, ``False`` " @@ -3847,11 +3894,11 @@ msgid "" "in Python 2.6." msgstr "" -#: library/turtle.rst:2860 +#: library/turtle.rst:2892 msgid "Changes since Python 3.0" msgstr "" -#: library/turtle.rst:2862 +#: library/turtle.rst:2894 msgid "" "The :class:`Turtle` methods :func:`shearfactor`, :func:`shapetransform` and :" "func:`get_shapepoly` have been added. Thus the full range of regular linear " @@ -3860,21 +3907,21 @@ msgid "" "set the tilt angle." msgstr "" -#: library/turtle.rst:2868 +#: library/turtle.rst:2900 msgid "" "The :class:`Screen` method :func:`onkeypress` has been added as a complement " "to :func:`onkey`. As the latter binds actions to the key release event, an " "alias: :func:`onkeyrelease` was also added for it." msgstr "" -#: library/turtle.rst:2872 +#: library/turtle.rst:2904 msgid "" "The method :func:`Screen.mainloop ` has been added, so there is no " "longer a need to use the standalone :func:`mainloop` function when working " "with :class:`Screen` and :class:`Turtle` objects." msgstr "" -#: library/turtle.rst:2876 +#: library/turtle.rst:2908 msgid "" "Two input methods have been added: :func:`Screen.textinput ` and :" "func:`Screen.numinput `. These pop up input dialogs and return " diff --git a/library/types.po b/library/types.po index 83fa5584..23dac6d7 100644 --- a/library/types.po +++ b/library/types.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-22 18:56+0300\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" diff --git a/library/typing.po b/library/typing.po index a31753b6..844e82b1 100644 --- a/library/typing.po +++ b/library/typing.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -70,8 +70,8 @@ msgstr "" #: library/typing.rst:48 msgid "" -"`\"Typing cheat sheet\" `_" +"`Typing cheat sheet `_" msgstr "" #: library/typing.rst:49 @@ -80,8 +80,8 @@ msgstr "" #: library/typing.rst:51 msgid "" -"\"Type System Reference\" section of `the mypy docs `_" +"Type System Reference section of `the mypy docs `_" msgstr "" #: library/typing.rst:52 @@ -92,7 +92,7 @@ msgid "" msgstr "" #: library/typing.rst:56 -msgid "`\"Static Typing with Python\" `_" +msgid "`Static Typing with Python `_" msgstr "" #: library/typing.rst:57 @@ -108,8 +108,8 @@ msgstr "" #: library/typing.rst:66 msgid "" "The canonical, up-to-date specification of the Python type system can be " -"found at `\"Specification for the Python type system\" `_." +"found at `Specification for the Python type system `_." msgstr "" #: library/typing.rst:72 @@ -326,7 +326,7 @@ msgid "" "of type :class:`int` and returns a :class:`str`." msgstr "" -#: library/typing.rst:3281 library/typing.rst:3461 +#: library/typing.rst:3288 library/typing.rst:3474 msgid "For example:" msgstr "" @@ -347,21 +347,21 @@ msgid "" "callback: Callable[[str], Awaitable[None]] = on_update" msgstr "" -#: library/typing.rst:233 +#: library/typing.rst:235 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, a :class:`ParamSpec`, :data:`Concatenate`, or an ellipsis. The return " -"type must be a single type." +"types, a :class:`ParamSpec`, :data:`Concatenate`, or an ellipsis (``...``). " +"The return type must be a single type." msgstr "" -#: library/typing.rst:238 +#: library/typing.rst:240 msgid "" "If a literal ellipsis ``...`` is given as the argument list, it indicates " "that a callable with any arbitrary parameter list would be acceptable:" msgstr "" -#: library/typing.rst:241 +#: library/typing.rst:243 msgid "" "def concat(x: str, y: str) -> str:\n" " return x + y\n" @@ -371,7 +371,7 @@ msgid "" "x = concat # Also OK" msgstr "" -#: library/typing.rst:250 +#: library/typing.rst:252 msgid "" "``Callable`` cannot express complex signatures such as functions that take a " "variadic number of arguments, :ref:`overloaded functions `, or " @@ -380,7 +380,7 @@ msgid "" "__call__` method:" msgstr "" -#: library/typing.rst:256 +#: library/typing.rst:258 msgid "" "from collections.abc import Iterable\n" "from typing import Protocol\n" @@ -404,7 +404,7 @@ msgid "" " # different name and kind in the callback" msgstr "" -#: library/typing.rst:277 +#: library/typing.rst:279 msgid "" "Callables which take other callables as arguments may indicate that their " "parameter types are dependent on each other using :class:`ParamSpec`. " @@ -415,30 +415,30 @@ msgid "" "ReturnType]`` respectively." msgstr "" -#: library/typing.rst:3965 +#: library/typing.rst:4005 msgid "" "``Callable`` now supports :class:`ParamSpec` and :data:`Concatenate`. See :" "pep:`612` for more details." msgstr "" -#: library/typing.rst:290 +#: library/typing.rst:292 msgid "" "The documentation for :class:`ParamSpec` and :class:`Concatenate` provides " "examples of usage in ``Callable``." msgstr "" -#: library/typing.rst:296 +#: library/typing.rst:298 msgid "Generics" msgstr "" -#: library/typing.rst:298 +#: library/typing.rst:300 msgid "" "Since type information about objects kept in containers cannot be statically " "inferred in a generic way, many container classes in the standard library " "support subscription to denote the expected types of container elements." msgstr "" -#: library/typing.rst:302 +#: library/typing.rst:304 msgid "" "from collections.abc import Mapping, Sequence\n" "\n" @@ -452,13 +452,13 @@ msgid "" " overrides: Mapping[str, str]) -> None: ..." msgstr "" -#: library/typing.rst:315 +#: library/typing.rst:317 msgid "" "Generic functions and classes can be parameterized by using :ref:`type " "parameter syntax `::" msgstr "" -#: library/typing.rst:318 +#: library/typing.rst:320 msgid "" "from collections.abc import Sequence\n" "\n" @@ -467,11 +467,11 @@ msgid "" " return l[0]" msgstr "" -#: library/typing.rst:323 +#: library/typing.rst:325 msgid "Or by using the :class:`TypeVar` factory directly::" msgstr "" -#: library/typing.rst:325 +#: library/typing.rst:327 msgid "" "from collections.abc import Sequence\n" "from typing import TypeVar\n" @@ -483,21 +483,21 @@ msgid "" " return l[1]" msgstr "" -#: library/typing.rst:333 +#: library/typing.rst:335 msgid "Syntactic support for generics is new in Python 3.12." msgstr "" -#: library/typing.rst:339 +#: library/typing.rst:341 msgid "Annotating tuples" msgstr "" -#: library/typing.rst:341 +#: library/typing.rst:343 msgid "" "For most containers in Python, the typing system assumes that all elements " "in the container will be of the same type. For example::" msgstr "" -#: library/typing.rst:344 +#: library/typing.rst:346 msgid "" "from collections.abc import Mapping\n" "\n" @@ -512,7 +512,7 @@ msgid "" "z: Mapping[str, str | int] = {}" msgstr "" -#: library/typing.rst:356 +#: library/typing.rst:358 msgid "" ":class:`list` only accepts one type argument, so a type checker would emit " "an error on the ``y`` assignment above. Similarly, :class:`~collections.abc." @@ -520,7 +520,7 @@ msgid "" "the keys, and the second indicates the type of the values." msgstr "" -#: library/typing.rst:362 +#: library/typing.rst:364 msgid "" "Unlike most other Python containers, however, it is common in idiomatic " "Python code for tuples to have elements which are not all of the same type. " @@ -528,7 +528,7 @@ msgid "" "`tuple` accepts *any number* of type arguments::" msgstr "" -#: library/typing.rst:367 +#: library/typing.rst:369 msgid "" "# OK: ``x`` is assigned to a tuple of length 1 where the sole element is an " "int\n" @@ -543,15 +543,15 @@ msgid "" "z: tuple[int] = (1, 2, 3)" msgstr "" -#: library/typing.rst:378 +#: library/typing.rst:382 msgid "" "To denote a tuple which could be of *any* length, and in which all elements " -"are of the same type ``T``, use ``tuple[T, ...]``. To denote an empty tuple, " -"use ``tuple[()]``. Using plain ``tuple`` as an annotation is equivalent to " -"using ``tuple[Any, ...]``::" +"are of the same type ``T``, use the literal ellipsis ``...``: " +"``tuple[T, ...]``. To denote an empty tuple, use ``tuple[()]``. Using plain " +"``tuple`` as an annotation is equivalent to using ``tuple[Any, ...]``::" msgstr "" -#: library/typing.rst:383 +#: library/typing.rst:388 msgid "" "x: tuple[int, ...] = (1, 2)\n" "# These reassignments are OK: ``tuple[int, ...]`` indicates x can be of any " @@ -571,11 +571,11 @@ msgid "" "z = ()" msgstr "" -#: library/typing.rst:401 +#: library/typing.rst:406 msgid "The type of class objects" msgstr "" -#: library/typing.rst:403 +#: library/typing.rst:408 msgid "" "A variable annotated with ``C`` may accept a value of type ``C``. In " "contrast, a variable annotated with ``type[C]`` (or deprecated :class:" @@ -583,18 +583,18 @@ msgid "" "specifically, it will accept the *class object* of ``C``. For example::" msgstr "" -#: library/typing.rst:409 +#: library/typing.rst:414 msgid "" "a = 3 # Has type ``int``\n" "b = int # Has type ``type[int]``\n" "c = type(a) # Also has type ``type[int]``" msgstr "" -#: library/typing.rst:413 +#: library/typing.rst:418 msgid "Note that ``type[C]`` is covariant::" msgstr "" -#: library/typing.rst:415 +#: library/typing.rst:420 msgid "" "class User: ...\n" "class ProUser(User): ...\n" @@ -613,13 +613,13 @@ msgid "" "``type[User]``" msgstr "" -#: library/typing.rst:429 +#: library/typing.rst:434 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 "" -#: library/typing.rst:433 +#: library/typing.rst:438 msgid "" "def new_non_team_user(user_class: type[BasicUser | ProUser]): ...\n" "\n" @@ -630,24 +630,24 @@ msgid "" "new_non_team_user(User) # Also an error" msgstr "" -#: library/typing.rst:441 +#: library/typing.rst:446 msgid "" "``type[Any]`` is equivalent to :class:`type`, which is the root of Python's :" "ref:`metaclass hierarchy `." msgstr "" -#: library/typing.rst:448 +#: library/typing.rst:453 msgid "Annotating generators and coroutines" msgstr "" -#: library/typing.rst:450 +#: library/typing.rst:455 msgid "" "A generator can be annotated using the generic type :class:" "`Generator[YieldType, SendType, ReturnType] `. " "For example::" msgstr "" -#: library/typing.rst:454 +#: library/typing.rst:459 msgid "" "def echo_round() -> Generator[int, float, str]:\n" " sent = yield 0\n" @@ -656,19 +656,19 @@ msgid "" " return 'Done'" msgstr "" -#: library/typing.rst:460 +#: library/typing.rst:465 msgid "" "Note that unlike many other generic classes in the standard library, the " "``SendType`` of :class:`~collections.abc.Generator` behaves contravariantly, " "not covariantly or invariantly." msgstr "" -#: library/typing.rst:464 +#: library/typing.rst:469 msgid "" "The ``SendType`` and ``ReturnType`` parameters default to :const:`!None`::" msgstr "" -#: library/typing.rst:466 +#: library/typing.rst:471 msgid "" "def infinite_stream(start: int) -> Generator[int]:\n" " while True:\n" @@ -676,11 +676,11 @@ msgid "" " start += 1" msgstr "" -#: library/typing.rst:471 +#: library/typing.rst:476 msgid "It is also possible to set these types explicitly::" msgstr "" -#: library/typing.rst:473 +#: library/typing.rst:478 msgid "" "def infinite_stream(start: int) -> Generator[int, None, None]:\n" " while True:\n" @@ -688,14 +688,14 @@ msgid "" " start += 1" msgstr "" -#: library/typing.rst:478 +#: library/typing.rst:483 msgid "" "Simple generators that only ever yield values can also be annotated as " "having a return type of either :class:`Iterable[YieldType] ` or :class:`Iterator[YieldType] `::" msgstr "" -#: library/typing.rst:483 +#: library/typing.rst:488 msgid "" "def infinite_stream(start: int) -> Iterator[int]:\n" " while True:\n" @@ -703,7 +703,7 @@ msgid "" " start += 1" msgstr "" -#: library/typing.rst:488 +#: library/typing.rst:493 msgid "" "Async generators are handled in a similar fashion, but don't expect a " "``ReturnType`` type argument (:class:`AsyncGenerator[YieldType, SendType] " @@ -711,7 +711,7 @@ msgid "" "const:`!None`, so the following definitions are equivalent::" msgstr "" -#: library/typing.rst:494 +#: library/typing.rst:499 msgid "" "async def infinite_stream(start: int) -> AsyncGenerator[int]:\n" " while True:\n" @@ -724,14 +724,14 @@ msgid "" " start = await increment(start)" msgstr "" -#: library/typing.rst:504 +#: library/typing.rst:509 msgid "" "As in the synchronous case, :class:`AsyncIterable[YieldType] ` and :class:`AsyncIterator[YieldType] ` are available as well::" msgstr "" -#: library/typing.rst:509 +#: library/typing.rst:514 msgid "" "async def infinite_stream(start: int) -> AsyncIterator[int]:\n" " while True:\n" @@ -739,14 +739,14 @@ msgid "" " start = await increment(start)" msgstr "" -#: library/typing.rst:514 +#: library/typing.rst:519 msgid "" "Coroutines can be annotated using :class:`Coroutine[YieldType, SendType, " "ReturnType] `. Generic arguments correspond to " "those of :class:`~collections.abc.Generator`, for example::" msgstr "" -#: library/typing.rst:519 +#: library/typing.rst:524 msgid "" "from collections.abc import Coroutine\n" "c: Coroutine[list[str], str, int] # Some coroutine defined elsewhere\n" @@ -755,15 +755,15 @@ msgid "" " y = await c # Inferred type of 'y' is int" msgstr "" -#: library/typing.rst:528 +#: library/typing.rst:533 msgid "User-defined generic types" msgstr "" -#: library/typing.rst:530 +#: library/typing.rst:535 msgid "A user-defined class can be defined as a generic class." msgstr "" -#: library/typing.rst:534 +#: library/typing.rst:539 msgid "" "from logging import Logger\n" "\n" @@ -785,21 +785,21 @@ msgid "" " self.logger.info('%s: %s', self.name, message)" msgstr "" -#: library/typing.rst:553 +#: library/typing.rst:558 msgid "" "This syntax indicates that the class ``LoggedVar`` is parameterised around a " "single :ref:`type variable ` ``T`` . This also makes ``T`` valid as " "a type within the class body." msgstr "" -#: library/typing.rst:557 +#: library/typing.rst:562 msgid "" "Generic classes implicitly inherit from :class:`Generic`. For compatibility " "with Python 3.11 and lower, it is also possible to inherit explicitly from :" "class:`Generic` to indicate a generic class::" msgstr "" -#: library/typing.rst:561 +#: library/typing.rst:566 msgid "" "from typing import TypeVar, Generic\n" "\n" @@ -809,13 +809,13 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:568 +#: library/typing.rst:573 msgid "" "Generic classes have :meth:`~object.__class_getitem__` methods, meaning they " "can be parameterised at runtime (e.g. ``LoggedVar[int]`` below)::" msgstr "" -#: library/typing.rst:571 +#: library/typing.rst:576 msgid "" "from collections.abc import Iterable\n" "\n" @@ -824,13 +824,13 @@ msgid "" " var.set(0)" msgstr "" -#: library/typing.rst:577 +#: library/typing.rst:582 msgid "" "A generic type can have any number of type variables. All varieties of :" "class:`TypeVar` are permissible as parameters for a generic type::" msgstr "" -#: library/typing.rst:580 +#: library/typing.rst:585 msgid "" "from typing import TypeVar, Generic, Sequence\n" "\n" @@ -845,13 +845,13 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:592 +#: library/typing.rst:597 msgid "" "Each type variable argument to :class:`Generic` must be distinct. This is " "thus invalid::" msgstr "" -#: library/typing.rst:595 +#: library/typing.rst:600 msgid "" "from typing import TypeVar, Generic\n" "...\n" @@ -865,11 +865,11 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:606 +#: library/typing.rst:611 msgid "Generic classes can also inherit from other classes::" msgstr "" -#: library/typing.rst:608 +#: library/typing.rst:613 msgid "" "from collections.abc import Sized\n" "\n" @@ -877,12 +877,12 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:613 +#: library/typing.rst:618 msgid "" "When inheriting from generic classes, some type parameters could be fixed::" msgstr "" -#: library/typing.rst:615 +#: library/typing.rst:620 msgid "" "from collections.abc import Mapping\n" "\n" @@ -890,18 +890,18 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:620 +#: library/typing.rst:625 msgid "In this case ``MyDict`` has a single parameter, ``T``." msgstr "" -#: library/typing.rst:622 +#: library/typing.rst:627 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 "" -#: library/typing.rst:626 +#: library/typing.rst:631 msgid "" "from collections.abc import Iterable\n" "\n" @@ -909,11 +909,11 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:633 +#: library/typing.rst:638 msgid "User-defined generic type aliases are also supported. Examples::" msgstr "" -#: library/typing.rst:635 +#: library/typing.rst:640 msgid "" "from collections.abc import Iterable\n" "\n" @@ -930,13 +930,13 @@ msgid "" " return sum(x*y for x, y in v)" msgstr "" -#: library/typing.rst:648 +#: library/typing.rst:653 msgid "" "For backward compatibility, generic type aliases can also be created through " "a simple assignment::" msgstr "" -#: library/typing.rst:651 +#: library/typing.rst:656 msgid "" "from collections.abc import Iterable\n" "from typing import TypeVar\n" @@ -945,18 +945,18 @@ msgid "" "Response = Iterable[S] | int" msgstr "" -#: library/typing.rst:657 +#: library/typing.rst:662 msgid ":class:`Generic` no longer has a custom metaclass." msgstr "" -#: library/typing.rst:660 +#: library/typing.rst:665 msgid "" "Syntactic support for generics and type aliases is new in version 3.12. " "Previously, generic classes had to explicitly inherit from :class:`Generic` " "or contain a type variable in one of their bases." msgstr "" -#: library/typing.rst:665 +#: library/typing.rst:670 msgid "" "User-defined generics for parameter expressions are also supported via " "parameter specification variables in the form ``[**P]``. The behavior is " @@ -966,7 +966,7 @@ msgid "" "substitute a :class:`ParamSpec`::" msgstr "" -#: library/typing.rst:671 +#: library/typing.rst:676 msgid "" ">>> class Z[T, **P]: ... # T is a TypeVar; P is a ParamSpec\n" "...\n" @@ -974,13 +974,13 @@ msgid "" "__main__.Z[int, [dict, float]]" msgstr "" -#: library/typing.rst:676 +#: library/typing.rst:681 msgid "" "Classes generic over a :class:`ParamSpec` can also be created using explicit " "inheritance from :class:`Generic`. In this case, ``**`` is not used::" msgstr "" -#: library/typing.rst:679 +#: library/typing.rst:684 msgid "" "from typing import ParamSpec, Generic\n" "\n" @@ -990,7 +990,7 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:686 +#: library/typing.rst:691 msgid "" "Another difference between :class:`TypeVar` and :class:`ParamSpec` is that a " "generic with only one parameter specification variable will accept parameter " @@ -999,7 +999,7 @@ msgid "" "the former, so the following are equivalent::" msgstr "" -#: library/typing.rst:692 +#: library/typing.rst:697 msgid "" ">>> class X[**P]: ...\n" "...\n" @@ -1009,20 +1009,20 @@ msgid "" "__main__.X[[int, str]]" msgstr "" -#: library/typing.rst:699 +#: library/typing.rst:704 msgid "" "Note that generics with :class:`ParamSpec` may not have correct " "``__parameters__`` after substitution in some cases because they are " "intended primarily for static type checking." msgstr "" -#: library/typing.rst:703 +#: library/typing.rst:708 msgid "" ":class:`Generic` can now be parameterized over parameter expressions. See :" "class:`ParamSpec` and :pep:`612` for more details." msgstr "" -#: library/typing.rst:707 +#: library/typing.rst:712 msgid "" "A user-defined generic class can have ABCs as base classes without a " "metaclass conflict. Generic metaclasses are not supported. The outcome of " @@ -1030,24 +1030,24 @@ msgid "" "module are :term:`hashable` and comparable for equality." msgstr "" -#: library/typing.rst:714 +#: library/typing.rst:719 msgid "The :data:`Any` type" msgstr "" -#: library/typing.rst:716 +#: library/typing.rst:721 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 "" -#: library/typing.rst:720 +#: library/typing.rst:725 msgid "" "This means that it is possible to perform any operation or method call on a " "value of type :data:`Any` and assign it to any variable::" msgstr "" -#: library/typing.rst:723 +#: library/typing.rst:728 msgid "" "from typing import Any\n" "\n" @@ -1065,7 +1065,7 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:738 +#: library/typing.rst:743 msgid "" "Notice that no type checking is performed when assigning a value of type :" "data:`Any` to a more precise type. For example, the static type checker did " @@ -1074,13 +1074,13 @@ msgid "" "runtime!" msgstr "" -#: library/typing.rst:744 +#: library/typing.rst:749 msgid "" "Furthermore, all functions without a return type or parameter types will " "implicitly default to using :data:`Any`::" msgstr "" -#: library/typing.rst:747 +#: library/typing.rst:752 msgid "" "def legacy_parser(text):\n" " ...\n" @@ -1093,13 +1093,13 @@ msgid "" " return data" msgstr "" -#: library/typing.rst:757 +#: library/typing.rst:762 msgid "" "This behavior allows :data:`Any` to be used as an *escape hatch* when you " "need to mix dynamically and statically typed code." msgstr "" -#: library/typing.rst:760 +#: library/typing.rst:765 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, " @@ -1107,7 +1107,7 @@ msgid "" "subtype of every other type." msgstr "" -#: library/typing.rst:765 +#: library/typing.rst:770 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 " @@ -1115,7 +1115,7 @@ msgid "" "example::" msgstr "" -#: library/typing.rst:769 +#: library/typing.rst:774 msgid "" "def hash_a(item: object) -> int:\n" " # Fails type checking; an object does not have a 'magic' method.\n" @@ -1136,24 +1136,24 @@ msgid "" "hash_b(\"foo\")" msgstr "" -#: library/typing.rst:787 +#: library/typing.rst:792 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 "" -#: library/typing.rst:792 +#: library/typing.rst:797 msgid "Nominal vs structural subtyping" msgstr "" -#: library/typing.rst:794 +#: library/typing.rst:799 msgid "" "Initially :pep:`484` defined the Python static type system as using *nominal " "subtyping*. This means that a class ``A`` is allowed where a class ``B`` is " "expected if and only if ``A`` is a subclass of ``B``." msgstr "" -#: library/typing.rst:798 +#: library/typing.rst:803 msgid "" "This requirement previously also applied to abstract base classes, such as :" "class:`~collections.abc.Iterable`. The problem with this approach is that a " @@ -1162,7 +1162,7 @@ msgid "" "code. For example, this conforms to :pep:`484`::" msgstr "" -#: library/typing.rst:804 +#: library/typing.rst:809 msgid "" "from collections.abc import Sized, Iterable, Iterator\n" "\n" @@ -1172,7 +1172,7 @@ msgid "" " def __iter__(self) -> Iterator[int]: ..." msgstr "" -#: library/typing.rst:811 +#: library/typing.rst:816 msgid "" ":pep:`544` allows to solve this problem by allowing users to write the above " "code without explicit base classes in the class definition, allowing " @@ -1181,7 +1181,7 @@ msgid "" "subtyping* (or static duck-typing)::" msgstr "" -#: library/typing.rst:817 +#: library/typing.rst:822 msgid "" "from collections.abc import Iterator, Iterable\n" "\n" @@ -1194,80 +1194,80 @@ msgid "" "result = collect(Bucket()) # Passes type check" msgstr "" -#: library/typing.rst:827 +#: library/typing.rst:832 msgid "" "Moreover, by subclassing a special class :class:`Protocol`, a user can " "define new custom protocols to fully enjoy structural subtyping (see " "examples below)." msgstr "" -#: library/typing.rst:832 +#: library/typing.rst:837 msgid "Module contents" msgstr "" -#: library/typing.rst:834 +#: library/typing.rst:839 msgid "" "The ``typing`` module defines the following classes, functions and " "decorators." msgstr "" -#: library/typing.rst:837 +#: library/typing.rst:842 msgid "Special typing primitives" msgstr "" -#: library/typing.rst:840 +#: library/typing.rst:845 msgid "Special types" msgstr "" -#: library/typing.rst:842 +#: library/typing.rst:847 msgid "" "These can be used as types in annotations. They do not support subscription " "using ``[]``." msgstr "" -#: library/typing.rst:847 +#: library/typing.rst:852 msgid "Special type indicating an unconstrained type." msgstr "" -#: library/typing.rst:849 +#: library/typing.rst:854 msgid "Every type is compatible with :data:`Any`." msgstr "" -#: library/typing.rst:850 +#: library/typing.rst:855 msgid ":data:`Any` is compatible with every type." msgstr "" -#: library/typing.rst:852 +#: library/typing.rst:857 msgid "" ":data:`Any` can now be used as a base class. This can be useful for avoiding " "type checker errors with classes that can duck type anywhere or are highly " "dynamic." msgstr "" -#: library/typing.rst:859 +#: library/typing.rst:864 msgid "A :ref:`constrained type variable `." msgstr "" -#: library/typing.rst:861 +#: library/typing.rst:866 msgid "Definition::" msgstr "" -#: library/typing.rst:863 +#: library/typing.rst:868 msgid "AnyStr = TypeVar('AnyStr', str, bytes)" msgstr "" -#: library/typing.rst:865 +#: library/typing.rst:870 msgid "" "``AnyStr`` is meant to be used for functions that may accept :class:`str` " "or :class:`bytes` arguments but cannot allow the two to mix." msgstr "" -#: library/typing.rst:986 library/typing.rst:1223 library/typing.rst:1352 -#: library/typing.rst:1622 library/typing.rst:3446 +#: library/typing.rst:991 library/typing.rst:1230 library/typing.rst:1359 +#: library/typing.rst:1629 library/typing.rst:3459 msgid "For example::" msgstr "" -#: library/typing.rst:870 +#: library/typing.rst:875 msgid "" "def concat(a: AnyStr, b: AnyStr) -> AnyStr:\n" " return a + b\n" @@ -1277,14 +1277,14 @@ msgid "" "concat(\"foo\", b\"bar\") # Error, cannot mix str and bytes" msgstr "" -#: library/typing.rst:877 +#: library/typing.rst:882 msgid "" "Note that, despite its name, ``AnyStr`` has nothing to do with the :class:" "`Any` type, nor does it mean \"any string\". In particular, ``AnyStr`` and " "``str | bytes`` are different from each other and have different use cases::" msgstr "" -#: library/typing.rst:882 +#: library/typing.rst:887 msgid "" "# Invalid use of AnyStr:\n" "# The type variable is used only once in the function signature,\n" @@ -1297,14 +1297,14 @@ msgid "" " return \"hi there!\" if cond else b\"greetings!\"" msgstr "" -#: library/typing.rst:892 +#: library/typing.rst:897 msgid "" "Deprecated in favor of the new :ref:`type parameter syntax `. " "Use ``class A[T: (str, bytes)]: ...`` instead of importing ``AnyStr``. See :" "pep:`695` for more details." msgstr "" -#: library/typing.rst:897 +#: library/typing.rst:902 msgid "" "In Python 3.16, ``AnyStr`` will be removed from ``typing.__all__``, and " "deprecation warnings will be emitted at runtime when it is accessed or " @@ -1312,11 +1312,11 @@ msgid "" "Python 3.18." msgstr "" -#: library/typing.rst:904 +#: library/typing.rst:909 msgid "Special type that includes only literal strings." msgstr "" -#: library/typing.rst:906 +#: library/typing.rst:911 msgid "" "Any string literal is compatible with ``LiteralString``, as is another " "``LiteralString``. However, an object typed as just ``str`` is not. A string " @@ -1324,11 +1324,11 @@ msgid "" "``LiteralString``." msgstr "" -#: library/typing.rst:2243 +#: library/typing.rst:2250 msgid "Example:" msgstr "" -#: library/typing.rst:914 +#: library/typing.rst:919 msgid "" "def run_query(sql: LiteralString) -> None:\n" " ...\n" @@ -1343,7 +1343,7 @@ msgid "" " )" msgstr "" -#: library/typing.rst:928 +#: library/typing.rst:933 msgid "" "``LiteralString`` is useful for sensitive APIs where arbitrary user-" "generated strings could generate problems. For example, the two cases above " @@ -1351,23 +1351,23 @@ msgid "" "attack." msgstr "" -#: library/typing.rst:933 +#: library/typing.rst:938 msgid "See :pep:`675` for more details." msgstr "" -#: library/typing.rst:940 +#: library/typing.rst:945 msgid "" ":data:`!Never` and :data:`!NoReturn` represent the `bottom type `_, a type that has no members." msgstr "" -#: library/typing.rst:944 +#: library/typing.rst:949 msgid "" "They can be used to indicate that a function never returns, such as :func:" "`sys.exit`::" msgstr "" -#: library/typing.rst:947 +#: library/typing.rst:952 msgid "" "from typing import Never # or NoReturn\n" "\n" @@ -1375,13 +1375,13 @@ msgid "" " raise RuntimeError('no way')" msgstr "" -#: library/typing.rst:952 +#: library/typing.rst:957 msgid "" "Or to define a function that should never be called, as there are no valid " "arguments, such as :func:`assert_never`::" msgstr "" -#: library/typing.rst:956 +#: library/typing.rst:961 msgid "" "from typing import Never # or NoReturn\n" "\n" @@ -1399,25 +1399,25 @@ msgid "" " never_call_me(arg) # OK, arg is of type Never (or NoReturn)" msgstr "" -#: library/typing.rst:971 +#: library/typing.rst:976 msgid "" ":data:`!Never` and :data:`!NoReturn` have the same meaning in the type " "system and static type checkers treat both equivalently." msgstr "" -#: library/typing.rst:976 +#: library/typing.rst:981 msgid "Added :data:`NoReturn`." msgstr "" -#: library/typing.rst:980 +#: library/typing.rst:985 msgid "Added :data:`Never`." msgstr "" -#: library/typing.rst:984 +#: library/typing.rst:989 msgid "Special type to represent the current enclosed class." msgstr "" -#: library/typing.rst:988 +#: library/typing.rst:993 msgid "" "from typing import Self, reveal_type\n" "\n" @@ -1433,13 +1433,13 @@ msgid "" "\"SubclassOfFoo\"" msgstr "" -#: library/typing.rst:1000 +#: library/typing.rst:1005 msgid "" "This annotation is semantically equivalent to the following, albeit in a " "more succinct fashion::" msgstr "" -#: library/typing.rst:1003 +#: library/typing.rst:1008 msgid "" "from typing import TypeVar\n" "\n" @@ -1451,7 +1451,7 @@ msgid "" " return self" msgstr "" -#: library/typing.rst:1012 +#: library/typing.rst:1017 msgid "" "In general, if something returns ``self``, as in the above examples, you " "should use ``Self`` as the return annotation. If ``Foo.return_self`` was " @@ -1460,27 +1460,27 @@ msgid "" "rather than ``SubclassOfFoo``." msgstr "" -#: library/typing.rst:1018 +#: library/typing.rst:1023 msgid "Other common use cases include:" msgstr "" -#: library/typing.rst:1020 +#: library/typing.rst:1025 msgid "" ":class:`classmethod`\\s that are used as alternative constructors and return " "instances of the ``cls`` parameter." msgstr "" -#: library/typing.rst:1022 +#: library/typing.rst:1027 msgid "Annotating an :meth:`~object.__enter__` method which returns self." msgstr "" -#: library/typing.rst:1024 +#: library/typing.rst:1029 msgid "" "You should not use ``Self`` as the return annotation if the method is not " "guaranteed to return an instance of a subclass when the class is subclassed::" msgstr "" -#: library/typing.rst:1028 +#: library/typing.rst:1033 msgid "" "class Eggs:\n" " # Self would be an incorrect return annotation here,\n" @@ -1490,31 +1490,31 @@ msgid "" " return Eggs()" msgstr "" -#: library/typing.rst:1035 +#: library/typing.rst:1040 msgid "See :pep:`673` for more details." msgstr "" -#: library/typing.rst:1041 +#: library/typing.rst:1046 msgid "" "Special annotation for explicitly declaring a :ref:`type alias `." msgstr "" -#: library/typing.rst:1045 +#: library/typing.rst:1050 msgid "" "from typing import TypeAlias\n" "\n" "Factors: TypeAlias = list[int]" msgstr "" -#: library/typing.rst:1049 +#: library/typing.rst:1054 msgid "" "``TypeAlias`` is particularly useful on older Python versions for annotating " "aliases that make use of forward references, as it can be hard for type " "checkers to distinguish these from normal variable assignments:" msgstr "" -#: library/typing.rst:1053 +#: library/typing.rst:1058 msgid "" "from typing import Generic, TypeAlias, TypeVar\n" "\n" @@ -1532,11 +1532,11 @@ msgid "" " def make_box_of_strings(cls) -> BoxOfStrings: ..." msgstr "" -#: library/typing.rst:1069 +#: library/typing.rst:1074 msgid "See :pep:`613` for more details." msgstr "" -#: library/typing.rst:1073 +#: library/typing.rst:1078 msgid "" ":data:`TypeAlias` is deprecated in favor of the :keyword:`type` statement, " "which creates instances of :class:`TypeAliasType` and which natively " @@ -1547,95 +1547,95 @@ msgid "" "to :keyword:`type` statements." msgstr "" -#: library/typing.rst:1084 +#: library/typing.rst:1089 msgid "Special forms" msgstr "" -#: library/typing.rst:1086 +#: library/typing.rst:1091 msgid "" "These can be used as types in annotations. They all support subscription " "using ``[]``, but each has a unique syntax." msgstr "" -#: library/typing.rst:1091 +#: library/typing.rst:1096 msgid "" "Union type; ``Union[X, Y]`` is equivalent to ``X | Y`` and means either X or " "Y." msgstr "" -#: library/typing.rst:1093 +#: library/typing.rst:1098 msgid "" "To define a union, use e.g. ``Union[int, str]`` or the shorthand ``int | " "str``. Using that shorthand is recommended. Details:" msgstr "" -#: library/typing.rst:1095 +#: library/typing.rst:1100 msgid "The arguments must be types and there must be at least one." msgstr "" -#: library/typing.rst:1097 +#: library/typing.rst:1102 msgid "Unions of unions are flattened, e.g.::" msgstr "" -#: library/typing.rst:1099 +#: library/typing.rst:1104 msgid "Union[Union[int, str], float] == Union[int, str, float]" msgstr "" -#: library/typing.rst:1101 +#: library/typing.rst:1106 msgid "" "However, this does not apply to unions referenced through a type alias, to " "avoid forcing evaluation of the underlying :class:`TypeAliasType`::" msgstr "" -#: library/typing.rst:1104 +#: library/typing.rst:1109 msgid "" "type A = Union[int, str]\n" "Union[A, float] != Union[int, str, float]" msgstr "" -#: library/typing.rst:1107 +#: library/typing.rst:1112 msgid "Unions of a single argument vanish, e.g.::" msgstr "" -#: library/typing.rst:1109 +#: library/typing.rst:1114 msgid "Union[int] == int # The constructor actually returns int" msgstr "" -#: library/typing.rst:1253 +#: library/typing.rst:1260 msgid "Redundant arguments are skipped, e.g.::" msgstr "" -#: library/typing.rst:1113 +#: library/typing.rst:1118 msgid "Union[int, str, int] == Union[int, str] == int | str" msgstr "" -#: library/typing.rst:1115 +#: library/typing.rst:1120 msgid "When comparing unions, the argument order is ignored, e.g.::" msgstr "" -#: library/typing.rst:1117 +#: library/typing.rst:1122 msgid "Union[int, str] == Union[str, int]" msgstr "" -#: library/typing.rst:1119 +#: library/typing.rst:1124 msgid "You cannot subclass or instantiate a ``Union``." msgstr "" -#: library/typing.rst:1121 +#: library/typing.rst:1126 msgid "You cannot write ``Union[X][Y]``." msgstr "" -#: library/typing.rst:1123 +#: library/typing.rst:1128 msgid "Don't remove explicit subclasses from unions at runtime." msgstr "" -#: library/typing.rst:1126 +#: library/typing.rst:1131 msgid "" "Unions can now be written as ``X | Y``. See :ref:`union type " "expressions`." msgstr "" -#: library/typing.rst:1130 +#: library/typing.rst:1135 msgid "" ":class:`types.UnionType` is now an alias for :class:`Union`, and both " "``Union[int, str]`` and ``int | str`` create instances of the same class. To " @@ -1644,11 +1644,11 @@ msgid "" "``get_origin(obj) is typing.Union or get_origin(obj) is types.UnionType``." msgstr "" -#: library/typing.rst:1140 +#: library/typing.rst:1145 msgid "``Optional[X]`` is equivalent to ``X | None`` (or ``Union[X, None]``)." msgstr "" -#: library/typing.rst:1142 +#: library/typing.rst:1147 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 " @@ -1656,36 +1656,36 @@ msgid "" "optional. For example::" msgstr "" -#: library/typing.rst:1147 +#: library/typing.rst:1152 msgid "" "def foo(arg: int = 0) -> None:\n" " ..." msgstr "" -#: library/typing.rst:1150 +#: library/typing.rst:1155 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 "" -#: library/typing.rst:1154 +#: library/typing.rst:1159 msgid "" "def foo(arg: Optional[int] = None) -> None:\n" " ..." msgstr "" -#: library/typing.rst:1157 +#: library/typing.rst:1162 msgid "" "Optional can now be written as ``X | None``. See :ref:`union type " "expressions`." msgstr "" -#: library/typing.rst:1163 +#: library/typing.rst:1168 msgid "Special form for annotating higher-order functions." msgstr "" -#: library/typing.rst:1165 +#: library/typing.rst:1172 msgid "" "``Concatenate`` can be used in conjunction with :ref:`Callable ` and :class:`ParamSpec` to annotate a higher-order callable which " @@ -1696,7 +1696,7 @@ msgid "" "``Concatenate`` must be a :class:`ParamSpec` or ellipsis (``...``)." msgstr "" -#: library/typing.rst:1174 +#: library/typing.rst:1181 msgid "" "For example, to annotate a decorator ``with_lock`` which provides a :class:" "`threading.Lock` to the decorated function, ``Concatenate`` can be used to " @@ -1707,7 +1707,7 @@ msgid "" "passed in::" msgstr "" -#: library/typing.rst:1182 +#: library/typing.rst:1189 msgid "" "from collections.abc import Callable\n" "from threading import Lock\n" @@ -1735,31 +1735,31 @@ msgid "" "sum_threadsafe([1.1, 2.2, 3.3])" msgstr "" -#: library/typing.rst:2211 +#: library/typing.rst:2218 msgid "" ":pep:`612` -- Parameter Specification Variables (the PEP which introduced " "``ParamSpec`` and ``Concatenate``)" msgstr "" -#: library/typing.rst:1212 +#: library/typing.rst:1219 msgid ":class:`ParamSpec`" msgstr "" -#: library/typing.rst:2214 +#: library/typing.rst:2221 msgid ":ref:`annotating-callables`" msgstr "" -#: library/typing.rst:1217 +#: library/typing.rst:1224 msgid "Special typing form to define \"literal types\"." msgstr "" -#: library/typing.rst:1219 +#: library/typing.rst:1226 msgid "" "``Literal`` can be used to indicate to type checkers that the annotated " "object has a value equivalent to one of the provided literals." msgstr "" -#: library/typing.rst:1225 +#: library/typing.rst:1232 msgid "" "def validate_simple(data: Any) -> Literal[True]: # always returns True\n" " ...\n" @@ -1772,62 +1772,62 @@ msgid "" "open_helper('/other/path', 'typo') # Error in type checker" msgstr "" -#: library/typing.rst:1235 +#: library/typing.rst:1242 msgid "" "``Literal[...]`` cannot be subclassed. At runtime, an arbitrary value is " "allowed as type argument to ``Literal[...]``, but type checkers may impose " "restrictions. See :pep:`586` for more details about literal types." msgstr "" -#: library/typing.rst:1239 +#: library/typing.rst:1246 msgid "Additional details:" msgstr "" -#: library/typing.rst:1241 +#: library/typing.rst:1248 msgid "The arguments must be literal values and there must be at least one." msgstr "" -#: library/typing.rst:1243 +#: library/typing.rst:1250 msgid "Nested ``Literal`` types are flattened, e.g.::" msgstr "" -#: library/typing.rst:1245 +#: library/typing.rst:1252 msgid "assert Literal[Literal[1, 2], 3] == Literal[1, 2, 3]" msgstr "" -#: library/typing.rst:1247 +#: library/typing.rst:1254 msgid "" "However, this does not apply to ``Literal`` types referenced through a type " "alias, to avoid forcing evaluation of the underlying :class:`TypeAliasType`::" msgstr "" -#: library/typing.rst:1250 +#: library/typing.rst:1257 msgid "" "type A = Literal[1, 2]\n" "assert Literal[A, 3] != Literal[1, 2, 3]" msgstr "" -#: library/typing.rst:1255 +#: library/typing.rst:1262 msgid "assert Literal[1, 2, 1] == Literal[1, 2]" msgstr "" -#: library/typing.rst:1257 +#: library/typing.rst:1264 msgid "When comparing literals, the argument order is ignored, e.g.::" msgstr "" -#: library/typing.rst:1259 +#: library/typing.rst:1266 msgid "assert Literal[1, 2] == Literal[2, 1]" msgstr "" -#: library/typing.rst:1261 +#: library/typing.rst:1268 msgid "You cannot subclass or instantiate a ``Literal``." msgstr "" -#: library/typing.rst:1263 +#: library/typing.rst:1270 msgid "You cannot write ``Literal[X][Y]``." msgstr "" -#: library/typing.rst:1267 +#: library/typing.rst:1274 msgid "" "``Literal`` now de-duplicates parameters. Equality comparisons of " "``Literal`` objects are no longer order dependent. ``Literal`` objects will " @@ -1835,29 +1835,29 @@ msgid "" "their parameters are not :term:`hashable`." msgstr "" -#: library/typing.rst:1275 +#: library/typing.rst:1282 msgid "Special type construct to mark class variables." msgstr "" -#: library/typing.rst:1277 +#: library/typing.rst:1284 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 "" -#: library/typing.rst:1281 +#: library/typing.rst:1288 msgid "" "class Starship:\n" " stats: ClassVar[dict[str, int]] = {} # class variable\n" " damage: int = 10 # instance variable" msgstr "" -#: library/typing.rst:1285 +#: library/typing.rst:1292 msgid ":data:`ClassVar` accepts only types and cannot be further subscribed." msgstr "" -#: library/typing.rst:1287 +#: library/typing.rst:1294 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 " @@ -1865,28 +1865,28 @@ msgid "" "example, a type checker might flag the following code as an error::" msgstr "" -#: library/typing.rst:1293 +#: library/typing.rst:1300 msgid "" "enterprise_d = Starship(3000)\n" "enterprise_d.stats = {} # Error, setting class variable on instance\n" "Starship.stats = {} # This is OK" msgstr "" -#: library/typing.rst:1301 +#: library/typing.rst:1308 msgid ":data:`ClassVar` can now be nested in :data:`Final` and vice versa." msgstr "" -#: library/typing.rst:1305 +#: library/typing.rst:1312 msgid "Special typing construct to indicate final names to type checkers." msgstr "" -#: library/typing.rst:1307 +#: library/typing.rst:1314 msgid "" "Final names cannot be reassigned in any scope. Final names declared in class " "scopes cannot be overridden in subclasses." msgstr "" -#: library/typing.rst:1312 +#: library/typing.rst:1319 msgid "" "MAX_SIZE: Final = 9000\n" "MAX_SIZE += 1 # Error reported by type checker\n" @@ -1898,43 +1898,43 @@ msgid "" " TIMEOUT = 1 # Error reported by type checker" msgstr "" -#: library/typing.rst:3234 +#: library/typing.rst:3241 msgid "" "There is no runtime checking of these properties. See :pep:`591` for more " "details." msgstr "" -#: library/typing.rst:1328 +#: library/typing.rst:1335 msgid ":data:`Final` can now be nested in :data:`ClassVar` and vice versa." msgstr "" -#: library/typing.rst:1332 +#: library/typing.rst:1339 msgid "Special typing construct to mark a :class:`TypedDict` key as required." msgstr "" -#: library/typing.rst:1334 +#: library/typing.rst:1341 msgid "" "This is mainly useful for ``total=False`` TypedDicts. See :class:`TypedDict` " "and :pep:`655` for more details." msgstr "" -#: library/typing.rst:1341 +#: library/typing.rst:1348 msgid "" "Special typing construct to mark a :class:`TypedDict` key as potentially " "missing." msgstr "" -#: library/typing.rst:1344 +#: library/typing.rst:1351 msgid "See :class:`TypedDict` and :pep:`655` for more details." msgstr "" -#: library/typing.rst:1350 +#: library/typing.rst:1357 msgid "" "A special typing construct to mark an item of a :class:`TypedDict` as read-" "only." msgstr "" -#: library/typing.rst:1354 +#: library/typing.rst:1361 msgid "" "class Movie(TypedDict):\n" " title: ReadOnly[str]\n" @@ -1945,19 +1945,19 @@ msgid "" " m[\"title\"] = \"The Matrix\" # typechecker error" msgstr "" -#: library/typing.rst:1362 +#: library/typing.rst:1369 msgid "There is no runtime checking for this property." msgstr "" -#: library/typing.rst:1364 +#: library/typing.rst:1371 msgid "See :class:`TypedDict` and :pep:`705` for more details." msgstr "" -#: library/typing.rst:1370 +#: library/typing.rst:1377 msgid "Special typing form to add context-specific metadata to an annotation." msgstr "" -#: library/typing.rst:1372 +#: library/typing.rst:1379 msgid "" "Add metadata ``x`` to a given type ``T`` by using the annotation " "``Annotated[T, x]``. Metadata added using ``Annotated`` can be used by " @@ -1965,7 +1965,7 @@ msgid "" "a :attr:`!__metadata__` attribute." msgstr "" -#: library/typing.rst:1377 +#: library/typing.rst:1384 msgid "" "If a library or tool encounters an annotation ``Annotated[T, x]`` and has no " "special logic for the metadata, it should ignore the metadata and simply " @@ -1974,17 +1974,17 @@ msgid "" "system." msgstr "" -#: library/typing.rst:1383 +#: library/typing.rst:1390 msgid "" "Using ``Annotated[T, x]`` as an annotation still allows for static " "typechecking of ``T``, as type checkers will simply ignore the metadata " -"``x``. In this way, ``Annotated`` differs from the :func:`@no_type_check " -"` decorator, which can also be used for adding annotations " -"outside the scope of the typing system, but completely disables typechecking " -"for a function or class." +"``x``. In this way, ``Annotated`` differs from the :deco:`no_type_check` " +"decorator, which can also be used for adding annotations outside the scope " +"of the typing system, but completely disables typechecking for a function or " +"class." msgstr "" -#: library/typing.rst:1390 +#: library/typing.rst:1397 msgid "" "The responsibility of how to interpret the metadata lies with the tool or " "library encountering an ``Annotated`` annotation. A tool or library " @@ -1992,13 +1992,13 @@ msgid "" "determine if they are of interest (e.g., using :func:`isinstance`)." msgstr "" -#: library/typing.rst:1398 +#: library/typing.rst:1405 msgid "" "Here is an example of how you might use ``Annotated`` to add metadata to " "type annotations if you were doing range analysis:" msgstr "" -#: library/typing.rst:1401 +#: library/typing.rst:1408 msgid "" "@dataclass\n" "class ValueRange:\n" @@ -2009,14 +2009,14 @@ msgid "" "T2 = Annotated[T1, ValueRange(-20, 3)]" msgstr "" -#: library/typing.rst:1411 +#: library/typing.rst:1418 msgid "" "The first argument to ``Annotated`` must be a valid type. Multiple metadata " "elements can be supplied as ``Annotated`` supports variadic arguments. The " "order of the metadata elements is preserved and matters for equality checks::" msgstr "" -#: library/typing.rst:1415 +#: library/typing.rst:1422 msgid "" "@dataclass\n" "class ctype:\n" @@ -2028,20 +2028,20 @@ msgid "" "assert a1 != a2 # Order matters" msgstr "" -#: library/typing.rst:1424 +#: library/typing.rst:1431 msgid "" "It is up to the tool consuming the annotations to decide whether the client " "is allowed to add multiple metadata elements to one annotation and how to " "merge those annotations." msgstr "" -#: library/typing.rst:1428 +#: library/typing.rst:1435 msgid "" "Nested ``Annotated`` types are flattened. The order of the metadata elements " "starts with the innermost annotation::" msgstr "" -#: library/typing.rst:1431 +#: library/typing.rst:1438 msgid "" "assert Annotated[Annotated[int, ValueRange(3, 10)], ctype(\"char\")] == " "Annotated[\n" @@ -2049,14 +2049,14 @@ msgid "" "]" msgstr "" -#: library/typing.rst:1435 +#: library/typing.rst:1442 msgid "" "However, this does not apply to ``Annotated`` types referenced through a " "type alias, to avoid forcing evaluation of the underlying :class:" "`TypeAliasType`::" msgstr "" -#: library/typing.rst:1438 +#: library/typing.rst:1445 msgid "" "type From3To10[T] = Annotated[T, ValueRange(3, 10)]\n" "assert Annotated[From3To10[int], ctype(\"char\")] != Annotated[\n" @@ -2064,22 +2064,22 @@ msgid "" "]" msgstr "" -#: library/typing.rst:1443 +#: library/typing.rst:1450 msgid "Duplicated metadata elements are not removed::" msgstr "" -#: library/typing.rst:1445 +#: library/typing.rst:1452 msgid "" "assert Annotated[int, ValueRange(3, 10)] != Annotated[\n" " int, ValueRange(3, 10), ValueRange(3, 10)\n" "]" msgstr "" -#: library/typing.rst:1449 +#: library/typing.rst:1456 msgid "``Annotated`` can be used with nested and generic aliases:" msgstr "" -#: library/typing.rst:1451 +#: library/typing.rst:1458 msgid "" "@dataclass\n" "class MaxLen:\n" @@ -2093,29 +2093,29 @@ msgid "" "type V = Vec[int]" msgstr "" -#: library/typing.rst:1463 +#: library/typing.rst:1470 msgid "``Annotated`` cannot be used with an unpacked :class:`TypeVarTuple`::" msgstr "" -#: library/typing.rst:1465 +#: library/typing.rst:1472 msgid "" "type Variadic[*Ts] = Annotated[*Ts, Ann1] = Annotated[T1, T2, T3, ..., " "Ann1] # NOT valid" msgstr "" -#: library/typing.rst:1467 +#: library/typing.rst:1474 msgid "" "where ``T1``, ``T2``, ... are :class:`TypeVars `. This is invalid " "as only one type should be passed to Annotated." msgstr "" -#: library/typing.rst:1470 +#: library/typing.rst:1477 msgid "" "By default, :func:`get_type_hints` strips the metadata from annotations. " "Pass ``include_extras=True`` to have the metadata preserved:" msgstr "" -#: library/typing.rst:1473 +#: library/typing.rst:1480 msgid "" ">>> from typing import Annotated, get_type_hints\n" ">>> def func(x: Annotated[int, \"metadata\"]) -> None: pass\n" @@ -2126,13 +2126,13 @@ msgid "" "{'x': typing.Annotated[int, 'metadata'], 'return': }" msgstr "" -#: library/typing.rst:1483 +#: library/typing.rst:1490 msgid "" "At runtime, the metadata associated with an ``Annotated`` type can be " "retrieved via the :attr:`!__metadata__` attribute:" msgstr "" -#: library/typing.rst:1486 +#: library/typing.rst:1493 msgid "" ">>> from typing import Annotated\n" ">>> X = Annotated[int, \"very\", \"important\", \"metadata\"]\n" @@ -2142,13 +2142,13 @@ msgid "" "('very', 'important', 'metadata')" msgstr "" -#: library/typing.rst:1495 +#: library/typing.rst:1502 msgid "" "If you want to retrieve the original type wrapped by ``Annotated``, use the :" "attr:`!__origin__` attribute:" msgstr "" -#: library/typing.rst:1498 +#: library/typing.rst:1505 msgid "" ">>> from typing import Annotated, get_origin\n" ">>> Password = Annotated[str, \"secret\"]\n" @@ -2156,30 +2156,30 @@ msgid "" "" msgstr "" -#: library/typing.rst:1505 +#: library/typing.rst:1512 msgid "Note that using :func:`get_origin` will return ``Annotated`` itself:" msgstr "" -#: library/typing.rst:1507 +#: library/typing.rst:1514 msgid "" ">>> get_origin(Password)\n" "typing.Annotated" msgstr "" -#: library/typing.rst:1514 +#: library/typing.rst:1521 msgid ":pep:`593` - Flexible function and variable annotations" msgstr "" -#: library/typing.rst:1515 +#: library/typing.rst:1522 msgid "The PEP introducing ``Annotated`` to the standard library." msgstr "" -#: library/typing.rst:1606 +#: library/typing.rst:1613 msgid "" "Special typing construct for marking user-defined type predicate functions." msgstr "" -#: library/typing.rst:1524 +#: library/typing.rst:1531 msgid "" "``TypeIs`` can be used to annotate the return type of a user-defined type " "predicate function. ``TypeIs`` only accepts a single type argument. At " @@ -2187,7 +2187,7 @@ msgid "" "one positional argument." msgstr "" -#: library/typing.rst:1529 +#: library/typing.rst:1536 msgid "" "``TypeIs`` aims to benefit *type narrowing* -- a technique used by static " "type checkers to determine a more precise type of an expression within a " @@ -2197,7 +2197,7 @@ msgid "" "predicate\"::" msgstr "" -#: library/typing.rst:1535 +#: library/typing.rst:1542 msgid "" "def is_str(val: str | float):\n" " # \"isinstance\" type predicate\n" @@ -2209,7 +2209,7 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:1544 +#: library/typing.rst:1551 msgid "" "Sometimes it would be convenient to use a user-defined boolean function as a " "type predicate. Such a function should use ``TypeIs[...]`` or :data:" @@ -2220,29 +2220,29 @@ msgid "" "does not return ``True`` for all instances of the narrowed type." msgstr "" -#: library/typing.rst:1552 +#: library/typing.rst:1559 msgid "" "Using ``-> TypeIs[NarrowedType]`` tells the static type checker that for a " "given function:" msgstr "" -#: library/typing.rst:1616 +#: library/typing.rst:1623 msgid "The return value is a boolean." msgstr "" -#: library/typing.rst:1556 +#: library/typing.rst:1563 msgid "" "If the return value is ``True``, the type of its argument is the " "intersection of the argument's original type and ``NarrowedType``." msgstr "" -#: library/typing.rst:1558 +#: library/typing.rst:1565 msgid "" "If the return value is ``False``, the type of its argument is narrowed to " "exclude ``NarrowedType``." msgstr "" -#: library/typing.rst:1563 +#: library/typing.rst:1570 msgid "" "from typing import assert_type, final, TypeIs\n" "\n" @@ -2266,7 +2266,7 @@ msgid "" " assert_type(arg, Unrelated)" msgstr "" -#: library/typing.rst:1584 +#: library/typing.rst:1591 msgid "" "The type inside ``TypeIs`` must be consistent with the type of the " "function's argument; if it is not, static type checkers will raise an " @@ -2275,27 +2275,27 @@ msgid "" "functions in a type-safe manner." msgstr "" -#: library/typing.rst:1590 +#: library/typing.rst:1597 msgid "" "If a ``TypeIs`` function is a class or instance method, then the type in " "``TypeIs`` maps to the type of the second parameter (after ``cls`` or " "``self``)." msgstr "" -#: library/typing.rst:1594 +#: library/typing.rst:1601 msgid "" "In short, the form ``def foo(arg: TypeA) -> TypeIs[TypeB]: ...``, means that " "if ``foo(arg)`` returns ``True``, then ``arg`` is an instance of ``TypeB``, " "and if it returns ``False``, it is not an instance of ``TypeB``." msgstr "" -#: library/typing.rst:1598 +#: library/typing.rst:1605 msgid "" "``TypeIs`` also works with type variables. For more information, see :pep:" "`742` (Narrowing types with ``TypeIs``)." msgstr "" -#: library/typing.rst:1608 +#: library/typing.rst:1615 msgid "" "Type predicate functions are user-defined functions that return whether " "their argument is an instance of a particular type. ``TypeGuard`` works " @@ -2303,25 +2303,25 @@ msgid "" "checking behavior (see below)." msgstr "" -#: library/typing.rst:1613 +#: library/typing.rst:1620 msgid "" "Using ``-> TypeGuard`` tells the static type checker that for a given " "function:" msgstr "" -#: library/typing.rst:1617 +#: library/typing.rst:1624 msgid "" "If the return value is ``True``, the type of its argument is the type inside " "``TypeGuard``." msgstr "" -#: library/typing.rst:1620 +#: library/typing.rst:1627 msgid "" "``TypeGuard`` also works with type variables. See :pep:`647` for more " "details." msgstr "" -#: library/typing.rst:1624 +#: library/typing.rst:1631 msgid "" "def is_str_list(val: list[object]) -> TypeGuard[list[str]]:\n" " '''Determines whether all objects in the list are strings'''\n" @@ -2336,11 +2336,11 @@ msgid "" " print(\"Not a list of strings!\")" msgstr "" -#: library/typing.rst:1636 +#: library/typing.rst:1643 msgid "``TypeIs`` and ``TypeGuard`` differ in the following ways:" msgstr "" -#: library/typing.rst:1638 +#: library/typing.rst:1645 msgid "" "``TypeIs`` requires the narrowed type to be a subtype of the input type, " "while ``TypeGuard`` does not. The main reason is to allow for things like " @@ -2348,7 +2348,7 @@ msgid "" "subtype of the former, since ``list`` is invariant." msgstr "" -#: library/typing.rst:1642 +#: library/typing.rst:1649 msgid "" "When a ``TypeGuard`` function returns ``True``, type checkers narrow the " "type of the variable to exactly the ``TypeGuard`` type. When a ``TypeIs`` " @@ -2357,7 +2357,7 @@ msgid "" "type. (Technically, this is known as an intersection type.)" msgstr "" -#: library/typing.rst:1646 +#: library/typing.rst:1653 msgid "" "When a ``TypeGuard`` function returns ``False``, type checkers cannot narrow " "the type of the variable at all. When a ``TypeIs`` function returns " @@ -2365,18 +2365,18 @@ msgid "" "``TypeIs`` type." msgstr "" -#: library/typing.rst:1655 +#: library/typing.rst:1662 msgid "Typing operator to conceptually mark an object as having been unpacked." msgstr "" -#: library/typing.rst:1657 +#: library/typing.rst:1664 msgid "" "For example, using the unpack operator ``*`` on a :ref:`type variable tuple " "` is equivalent to using ``Unpack`` to mark the type variable " "tuple as having been unpacked::" msgstr "" -#: library/typing.rst:1661 +#: library/typing.rst:1668 msgid "" "Ts = TypeVarTuple('Ts')\n" "tup: tuple[*Ts]\n" @@ -2384,7 +2384,7 @@ msgid "" "tup: tuple[Unpack[Ts]]" msgstr "" -#: library/typing.rst:1666 +#: library/typing.rst:1673 msgid "" "In fact, ``Unpack`` can be used interchangeably with ``*`` in the context " "of :class:`typing.TypeVarTuple ` and :class:`builtins.tuple " @@ -2392,7 +2392,7 @@ msgid "" "versions of Python, where ``*`` couldn't be used in certain places::" msgstr "" -#: library/typing.rst:1672 +#: library/typing.rst:1679 msgid "" "# In older versions of Python, TypeVarTuple and Unpack\n" "# are located in the `typing_extensions` backports package.\n" @@ -2403,13 +2403,13 @@ msgid "" "tup: tuple[Unpack[Ts]] # Semantically equivalent, and backwards-compatible" msgstr "" -#: library/typing.rst:1680 +#: library/typing.rst:1687 msgid "" "``Unpack`` can also be used along with :class:`typing.TypedDict` for typing " "``**kwargs`` in a function signature::" msgstr "" -#: library/typing.rst:1683 +#: library/typing.rst:1690 msgid "" "from typing import TypedDict, Unpack\n" "\n" @@ -2422,23 +2422,23 @@ msgid "" "def foo(**kwargs: Unpack[Movie]): ..." msgstr "" -#: library/typing.rst:1693 +#: library/typing.rst:1700 msgid "" "See :pep:`692` for more details on using ``Unpack`` for ``**kwargs`` typing." msgstr "" -#: library/typing.rst:1698 +#: library/typing.rst:1705 msgid "Building generic types and type aliases" msgstr "" -#: library/typing.rst:1700 +#: library/typing.rst:1707 msgid "" "The following classes should not be used directly as annotations. Their " "intended purpose is to be building blocks for creating generic types and " "type aliases." msgstr "" -#: library/typing.rst:1704 +#: library/typing.rst:1711 msgid "" "These objects can be created through special syntax (:ref:`type parameter " "lists ` and the :keyword:`type` statement). For compatibility " @@ -2446,17 +2446,17 @@ msgid "" "syntax, as documented below." msgstr "" -#: library/typing.rst:1711 +#: library/typing.rst:1718 msgid "Abstract base class for generic types." msgstr "" -#: library/typing.rst:1713 +#: library/typing.rst:1720 msgid "" "A generic type is typically declared by adding a list of type parameters " "after the class name::" msgstr "" -#: library/typing.rst:1716 +#: library/typing.rst:1723 msgid "" "class Mapping[KT, VT]:\n" " def __getitem__(self, key: KT) -> VT:\n" @@ -2464,17 +2464,17 @@ msgid "" " # Etc." msgstr "" -#: library/typing.rst:1721 +#: library/typing.rst:1728 msgid "" "Such a class implicitly inherits from ``Generic``. The runtime semantics of " "this syntax are discussed in the :ref:`Language Reference `." msgstr "" -#: library/typing.rst:1725 +#: library/typing.rst:1732 msgid "This class can then be used as follows::" msgstr "" -#: library/typing.rst:1727 +#: library/typing.rst:1734 msgid "" "def lookup_name[X, Y](mapping: Mapping[X, Y], key: X, default: Y) -> Y:\n" " try:\n" @@ -2483,20 +2483,20 @@ msgid "" " return default" msgstr "" -#: library/typing.rst:1733 +#: library/typing.rst:1740 msgid "" "Here the brackets after the function name indicate a :ref:`generic function " "`." msgstr "" -#: library/typing.rst:1736 +#: library/typing.rst:1743 msgid "" "For backwards compatibility, generic classes can also be declared by " "explicitly inheriting from ``Generic``. In this case, the type parameters " "must be declared separately::" msgstr "" -#: library/typing.rst:1741 +#: library/typing.rst:1748 msgid "" "KT = TypeVar('KT')\n" "VT = TypeVar('VT')\n" @@ -2507,30 +2507,30 @@ msgid "" " # Etc." msgstr "" -#: library/typing.rst:1753 +#: library/typing.rst:1760 msgid "Type variable." msgstr "" -#: library/typing.rst:1755 +#: library/typing.rst:1762 msgid "" "The preferred way to construct a type variable is via the dedicated syntax " "for :ref:`generic functions `, :ref:`generic classes " "`, and :ref:`generic type aliases `::" msgstr "" -#: library/typing.rst:1760 +#: library/typing.rst:1767 msgid "" "class Sequence[T]: # T is a TypeVar\n" " ..." msgstr "" -#: library/typing.rst:1763 +#: library/typing.rst:1770 msgid "" "This syntax can also be used to create bounded and constrained type " "variables::" msgstr "" -#: library/typing.rst:1766 +#: library/typing.rst:1773 msgid "" "class StrSequence[S: str]: # S is a TypeVar with a `str` upper bound;\n" " ... # we can say that S is \"bounded by `str`\"\n" @@ -2541,20 +2541,20 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:1773 +#: library/typing.rst:1780 msgid "" "However, if desired, reusable type variables can also be constructed " "manually, like so::" msgstr "" -#: library/typing.rst:1775 +#: library/typing.rst:1782 msgid "" "T = TypeVar('T') # Can be anything\n" "S = TypeVar('S', bound=str) # Can be any subtype of str\n" "A = TypeVar('A', str, bytes) # Must be exactly str or bytes" msgstr "" -#: library/typing.rst:1779 +#: library/typing.rst:1786 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 " @@ -2562,7 +2562,7 @@ msgid "" "information on generic types. Generic functions work as follows::" msgstr "" -#: library/typing.rst:1785 +#: library/typing.rst:1792 msgid "" "def repeat[T](x: T, n: int) -> Sequence[T]:\n" " \"\"\"Return a list containing n references to x.\"\"\"\n" @@ -2580,13 +2580,13 @@ msgid "" " return x + y" msgstr "" -#: library/typing.rst:1800 +#: library/typing.rst:1807 msgid "" "Note that type variables can be *bounded*, *constrained*, or neither, but " "cannot be both bounded *and* constrained." msgstr "" -#: library/typing.rst:1803 +#: library/typing.rst:1810 msgid "" "The variance of type variables is inferred by type checkers when they are " "created through the :ref:`type parameter syntax ` or when " @@ -2596,14 +2596,14 @@ msgid "" "invariant. See :pep:`484` and :pep:`695` for more details." msgstr "" -#: library/typing.rst:1811 +#: library/typing.rst:1818 msgid "" "Bounded type variables and constrained type variables have different " "semantics in several important ways. Using a *bounded* type variable means " "that the ``TypeVar`` will be solved using the most specific type possible::" msgstr "" -#: library/typing.rst:1815 +#: library/typing.rst:1822 msgid "" "x = print_capitalized('a string')\n" "reveal_type(x) # revealed type is str\n" @@ -2617,13 +2617,13 @@ msgid "" "z = print_capitalized(45) # error: int is not a subtype of str" msgstr "" -#: library/typing.rst:1826 +#: library/typing.rst:1833 msgid "" "The upper bound of a type variable can be a concrete type, abstract type " "(ABC or Protocol), or even a union of types::" msgstr "" -#: library/typing.rst:1829 +#: library/typing.rst:1836 msgid "" "# Can be anything with an __abs__ method\n" "def print_abs[T: SupportsAbs](arg: T) -> None:\n" @@ -2634,13 +2634,13 @@ msgid "" "V = TypeVar('V', bound=SupportsAbs) # Can be anything with an __abs__ method" msgstr "" -#: library/typing.rst:1838 +#: library/typing.rst:1845 msgid "" "Using a *constrained* type variable, however, means that the ``TypeVar`` can " "only ever be solved as being exactly one of the constraints given::" msgstr "" -#: library/typing.rst:1841 +#: library/typing.rst:1848 msgid "" "a = concatenate('one', 'two')\n" "reveal_type(a) # revealed type is str\n" @@ -2653,39 +2653,39 @@ msgid "" "or bytes in a function call, but not both" msgstr "" -#: library/typing.rst:1849 +#: library/typing.rst:1856 msgid "At runtime, ``isinstance(x, T)`` will raise :exc:`TypeError`." msgstr "" -#: library/typing.rst:1853 +#: library/typing.rst:1860 msgid "The name of the type variable." msgstr "" -#: library/typing.rst:1857 +#: library/typing.rst:1864 msgid "Whether the type var has been explicitly marked as covariant." msgstr "" -#: library/typing.rst:1861 +#: library/typing.rst:1868 msgid "Whether the type var has been explicitly marked as contravariant." msgstr "" -#: library/typing.rst:1865 +#: library/typing.rst:1872 msgid "" "Whether the type variable's variance should be inferred by type checkers." msgstr "" -#: library/typing.rst:1871 +#: library/typing.rst:1878 msgid "The upper bound of the type variable, if any." msgstr "" -#: library/typing.rst:1875 +#: library/typing.rst:1882 msgid "" "For type variables created through :ref:`type parameter syntax `, the bound is evaluated only when the attribute is accessed, not " "when the type variable is created (see :ref:`lazy-evaluation`)." msgstr "" -#: library/typing.rst:1881 +#: library/typing.rst:1888 msgid "" "An :term:`evaluate function` corresponding to the :attr:`~TypeVar.__bound__` " "attribute. When called directly, this method supports only the :attr:" @@ -2695,18 +2695,18 @@ msgid "" "in a different format." msgstr "" -#: library/typing.rst:1891 +#: library/typing.rst:1898 msgid "A tuple containing the constraints of the type variable, if any." msgstr "" -#: library/typing.rst:1895 +#: library/typing.rst:1902 msgid "" "For type variables created through :ref:`type parameter syntax `, the constraints are evaluated only when the attribute is accessed, " "not when the type variable is created (see :ref:`lazy-evaluation`)." msgstr "" -#: library/typing.rst:1901 +#: library/typing.rst:1908 msgid "" "An :term:`evaluate function` corresponding to the :attr:`~TypeVar." "__constraints__` attribute. When called directly, this method supports only " @@ -2716,13 +2716,13 @@ msgid "" "to evaluate the value in a different format." msgstr "" -#: library/typing.rst:1911 +#: library/typing.rst:1918 msgid "" "The default value of the type variable, or :data:`typing.NoDefault` if it " "has no default." msgstr "" -#: library/typing.rst:1918 +#: library/typing.rst:1925 msgid "" "An :term:`evaluate function` corresponding to the :attr:`~TypeVar." "__default__` attribute. When called directly, this method supports only the :" @@ -2732,7 +2732,7 @@ msgid "" "the value in a different format." msgstr "" -#: library/typing.rst:1928 +#: library/typing.rst:1935 msgid "" "Return whether or not the type variable has a default value. This is " "equivalent to checking whether :attr:`__default__` is not the :data:`typing." @@ -2740,41 +2740,41 @@ msgid "" "`lazily evaluated ` default value." msgstr "" -#: library/typing.rst:1937 +#: library/typing.rst:1944 msgid "" "Type variables can now be declared using the :ref:`type parameter ` syntax introduced by :pep:`695`. The ``infer_variance`` parameter " "was added." msgstr "" -#: library/typing.rst:2092 library/typing.rst:2204 +#: library/typing.rst:2099 library/typing.rst:2211 msgid "Support for default values was added." msgstr "" -#: library/typing.rst:1949 +#: library/typing.rst:1956 msgid "" "Type variable tuple. A specialized form of :ref:`type variable ` " "that enables *variadic* generics." msgstr "" -#: library/typing.rst:1952 +#: library/typing.rst:1959 msgid "" "Type variable tuples can be declared in :ref:`type parameter lists ` using a single asterisk (``*``) before the name::" msgstr "" -#: library/typing.rst:1955 +#: library/typing.rst:1962 msgid "" "def move_first_element_to_last[T, *Ts](tup: tuple[T, *Ts]) -> tuple[*Ts, " "T]:\n" " return (*tup[1:], tup[0])" msgstr "" -#: library/typing.rst:1958 +#: library/typing.rst:1965 msgid "Or by explicitly invoking the ``TypeVarTuple`` constructor::" msgstr "" -#: library/typing.rst:1960 +#: library/typing.rst:1967 msgid "" "T = TypeVar(\"T\")\n" "Ts = TypeVarTuple(\"Ts\")\n" @@ -2783,7 +2783,7 @@ msgid "" " return (*tup[1:], tup[0])" msgstr "" -#: library/typing.rst:1966 +#: library/typing.rst:1973 msgid "" "A normal type variable enables parameterization with a single type. A type " "variable tuple, in contrast, allows parameterization with an *arbitrary* " @@ -2791,7 +2791,7 @@ msgid "" "wrapped in a tuple. For example::" msgstr "" -#: library/typing.rst:1971 +#: library/typing.rst:1978 msgid "" "# T is bound to int, Ts is bound to ()\n" "# Return value is (1,), which has type tuple[int]\n" @@ -2811,7 +2811,7 @@ msgid "" "move_first_element_to_last(tup=())" msgstr "" -#: library/typing.rst:1988 +#: library/typing.rst:1995 msgid "" "Note the use of the unpacking operator ``*`` in ``tuple[T, *Ts]``. " "Conceptually, you can think of ``Ts`` as a tuple of type variables ``(T1, " @@ -2821,26 +2821,26 @@ msgid "" "` instead, as ``Unpack[Ts]``.)" msgstr "" -#: library/typing.rst:1996 +#: library/typing.rst:2003 msgid "" "Type variable tuples must *always* be unpacked. This helps distinguish type " "variable tuples from normal type variables::" msgstr "" -#: library/typing.rst:1999 +#: library/typing.rst:2006 msgid "" "x: Ts # Not valid\n" "x: tuple[Ts] # Not valid\n" "x: tuple[*Ts] # The correct way to do it" msgstr "" -#: library/typing.rst:2003 +#: library/typing.rst:2010 msgid "" "Type variable tuples can be used in the same contexts as normal type " "variables. For example, in class definitions, arguments, and return types::" msgstr "" -#: library/typing.rst:2006 +#: library/typing.rst:2013 msgid "" "class Array[*Shape]:\n" " def __getitem__(self, key: tuple[*Shape]) -> float: ...\n" @@ -2848,12 +2848,12 @@ msgid "" " def get_shape(self) -> tuple[*Shape]: ..." msgstr "" -#: library/typing.rst:2011 +#: library/typing.rst:2018 msgid "" "Type variable tuples can be happily combined with normal type variables:" msgstr "" -#: library/typing.rst:2013 +#: library/typing.rst:2020 msgid "" "class Array[DType, *Shape]: # This is fine\n" " pass\n" @@ -2868,26 +2868,26 @@ msgid "" "int_array_2d: Array[int, Height, Width] = Array() # Yup, fine too" msgstr "" -#: library/typing.rst:2027 +#: library/typing.rst:2034 msgid "" "However, note that at most one type variable tuple may appear in a single " "list of type arguments or type parameters::" msgstr "" -#: library/typing.rst:2030 +#: library/typing.rst:2037 msgid "" "x: tuple[*Ts, *Ts] # Not valid\n" "class Array[*Shape, *Shape]: # Not valid\n" " pass" msgstr "" -#: library/typing.rst:2034 +#: library/typing.rst:2041 msgid "" "Finally, an unpacked type variable tuple can be used as the type annotation " "of ``*args``::" msgstr "" -#: library/typing.rst:2037 +#: library/typing.rst:2044 msgid "" "def call_soon[*Ts](\n" " callback: Callable[[*Ts], None],\n" @@ -2897,7 +2897,7 @@ msgid "" " callback(*args)" msgstr "" -#: library/typing.rst:2044 +#: library/typing.rst:2051 msgid "" "In contrast to non-unpacked annotations of ``*args`` - e.g. ``*args: int``, " "which would specify that *all* arguments are ``int`` - ``*args: *Ts`` " @@ -2906,21 +2906,21 @@ msgid "" "``call_soon`` match the types of the (positional) arguments of ``callback``." msgstr "" -#: library/typing.rst:2051 +#: library/typing.rst:2058 msgid "See :pep:`646` for more details on type variable tuples." msgstr "" -#: library/typing.rst:2055 +#: library/typing.rst:2062 msgid "The name of the type variable tuple." msgstr "" -#: library/typing.rst:2059 +#: library/typing.rst:2066 msgid "" "The default value of the type variable tuple, or :data:`typing.NoDefault` if " "it has no default." msgstr "" -#: library/typing.rst:2066 +#: library/typing.rst:2073 msgid "" "An :term:`evaluate function` corresponding to the :attr:`~TypeVarTuple." "__default__` attribute. When called directly, this method supports only the :" @@ -2930,7 +2930,7 @@ msgid "" "evaluate the value in a different format." msgstr "" -#: library/typing.rst:2076 +#: library/typing.rst:2083 msgid "" "Return whether or not the type variable tuple has a default value. This is " "equivalent to checking whether :attr:`__default__` is not the :data:`typing." @@ -2938,39 +2938,39 @@ msgid "" "`lazily evaluated ` default value." msgstr "" -#: library/typing.rst:2087 +#: library/typing.rst:2094 msgid "" "Type variable tuples can now be declared using the :ref:`type parameter " "` syntax introduced by :pep:`695`." msgstr "" -#: library/typing.rst:2096 +#: library/typing.rst:2103 msgid "" "Parameter specification variable. A specialized version of :ref:`type " "variables `." msgstr "" -#: library/typing.rst:2099 +#: library/typing.rst:2106 msgid "" "In :ref:`type parameter lists `, parameter specifications can " "be declared with two asterisks (``**``)::" msgstr "" -#: library/typing.rst:2102 +#: library/typing.rst:2109 msgid "type IntFunc[**P] = Callable[P, int]" msgstr "" -#: library/typing.rst:2104 +#: library/typing.rst:2111 msgid "" "For compatibility with Python 3.11 and earlier, ``ParamSpec`` objects can " "also be created as follows::" msgstr "" -#: library/typing.rst:2107 +#: library/typing.rst:2114 msgid "P = ParamSpec('P')" msgstr "" -#: library/typing.rst:2109 +#: library/typing.rst:2116 msgid "" "Parameter specification variables exist primarily for the benefit of static " "type checkers. They are used to forward the parameter types of one callable " @@ -2980,7 +2980,7 @@ msgid "" "See :class:`Generic` for more information on generic types." msgstr "" -#: library/typing.rst:2116 +#: library/typing.rst:2123 msgid "" "For example, to add basic logging to a function, one can create a decorator " "``add_logging`` to log function calls. The parameter specification variable " @@ -2988,7 +2988,7 @@ msgid "" "new callable returned by it have inter-dependent type parameters::" msgstr "" -#: library/typing.rst:2121 +#: library/typing.rst:2128 msgid "" "from collections.abc import Callable\n" "import logging\n" @@ -3006,27 +3006,27 @@ msgid "" " return x + y" msgstr "" -#: library/typing.rst:2136 +#: library/typing.rst:2143 msgid "" "Without ``ParamSpec``, the simplest way to annotate this previously was to " "use a :class:`TypeVar` with upper bound ``Callable[..., Any]``. However " "this causes two problems:" msgstr "" -#: library/typing.rst:2140 +#: library/typing.rst:2147 msgid "" "The type checker can't type check the ``inner`` function because ``*args`` " "and ``**kwargs`` have to be typed :data:`Any`." msgstr "" -#: library/typing.rst:2142 +#: library/typing.rst:2149 msgid "" ":func:`~cast` may be required in the body of the ``add_logging`` decorator " "when returning the ``inner`` function, or the static type checker must be " "told to ignore the ``return inner``." msgstr "" -#: library/typing.rst:2149 +#: library/typing.rst:2156 msgid "" "Since ``ParamSpec`` captures both positional and keyword parameters, ``P." "args`` and ``P.kwargs`` can be used to split a ``ParamSpec`` into its " @@ -3039,17 +3039,17 @@ msgid "" "`ParamSpecKwargs`." msgstr "" -#: library/typing.rst:2161 +#: library/typing.rst:2168 msgid "The name of the parameter specification." msgstr "" -#: library/typing.rst:2165 +#: library/typing.rst:2172 msgid "" "The default value of the parameter specification, or :data:`typing." "NoDefault` if it has no default." msgstr "" -#: library/typing.rst:2172 +#: library/typing.rst:2179 msgid "" "An :term:`evaluate function` corresponding to the :attr:`~ParamSpec." "__default__` attribute. When called directly, this method supports only the :" @@ -3059,7 +3059,7 @@ msgid "" "the value in a different format." msgstr "" -#: library/typing.rst:2182 +#: library/typing.rst:2189 msgid "" "Return whether or not the parameter specification has a default value. This " "is equivalent to checking whether :attr:`__default__` is not the :data:" @@ -3067,7 +3067,7 @@ msgid "" "the :ref:`lazily evaluated ` default value." msgstr "" -#: library/typing.rst:2189 +#: library/typing.rst:2196 msgid "" "Parameter specification variables created with ``covariant=True`` or " "``contravariant=True`` can be used to declare covariant or contravariant " @@ -3076,23 +3076,23 @@ msgid "" "decided." msgstr "" -#: library/typing.rst:2199 +#: library/typing.rst:2206 msgid "" "Parameter specifications can now be declared using the :ref:`type parameter " "` syntax introduced by :pep:`695`." msgstr "" -#: library/typing.rst:2207 +#: library/typing.rst:2214 msgid "" "Only parameter specification variables defined in global scope can be " "pickled." msgstr "" -#: library/typing.rst:2213 +#: library/typing.rst:2220 msgid ":data:`Concatenate`" msgstr "" -#: library/typing.rst:2219 +#: library/typing.rst:2226 msgid "" "Arguments and keyword arguments attributes of a :class:`ParamSpec`. The ``P." "args`` attribute of a ``ParamSpec`` is an instance of ``ParamSpecArgs``, and " @@ -3100,13 +3100,13 @@ msgid "" "runtime introspection and have no special meaning to static type checkers." msgstr "" -#: library/typing.rst:2224 +#: library/typing.rst:2231 msgid "" "Calling :func:`get_origin` on either of these objects will return the " "original ``ParamSpec``:" msgstr "" -#: library/typing.rst:2227 +#: library/typing.rst:2234 msgid "" ">>> from typing import ParamSpec, get_origin\n" ">>> P = ParamSpec(\"P\")\n" @@ -3116,46 +3116,46 @@ msgid "" "True" msgstr "" -#: library/typing.rst:2241 +#: library/typing.rst:2248 msgid "The type of type aliases created through the :keyword:`type` statement." msgstr "" -#: library/typing.rst:2245 +#: library/typing.rst:2252 msgid "" ">>> type Alias = int\n" ">>> type(Alias)\n" "" msgstr "" -#: library/typing.rst:2255 +#: library/typing.rst:2262 msgid "The name of the type alias:" msgstr "" -#: library/typing.rst:2257 +#: library/typing.rst:2264 msgid "" ">>> type Alias = int\n" ">>> Alias.__name__\n" "'Alias'" msgstr "" -#: library/typing.rst:2265 -msgid "The module in which the type alias was defined::" +#: library/typing.rst:2272 +msgid "The name of the module in which the type alias was defined::" msgstr "" -#: library/typing.rst:2267 +#: library/typing.rst:2274 msgid "" ">>> type Alias = int\n" ">>> Alias.__module__\n" "'__main__'" msgstr "" -#: library/typing.rst:2273 +#: library/typing.rst:2280 msgid "" "The type parameters of the type alias, or an empty tuple if the alias is not " "generic:" msgstr "" -#: library/typing.rst:2276 +#: library/typing.rst:2283 msgid "" ">>> type ListOrSet[T] = list[T] | set[T]\n" ">>> ListOrSet.__type_params__\n" @@ -3165,14 +3165,14 @@ msgid "" "()" msgstr "" -#: library/typing.rst:2287 +#: library/typing.rst:2294 msgid "" "The type alias's value. This is :ref:`lazily evaluated `, " "so names used in the definition of the alias are not resolved until the " "``__value__`` attribute is accessed:" msgstr "" -#: library/typing.rst:2291 +#: library/typing.rst:2298 msgid "" ">>> type Mutually = Recursive\n" ">>> type Recursive = Mutually\n" @@ -3186,7 +3186,7 @@ msgid "" "Mutually" msgstr "" -#: library/typing.rst:2306 +#: library/typing.rst:2313 msgid "" "An :term:`evaluate function` corresponding to the :attr:`__value__` " "attribute. When called directly, this method supports only the :attr:" @@ -3196,7 +3196,7 @@ msgid "" "different format:" msgstr "" -#: library/typing.rst:2312 +#: library/typing.rst:2319 msgid "" ">>> type Alias = undefined\n" ">>> Alias.__value__\n" @@ -3212,17 +3212,17 @@ msgid "" "ForwardRef('undefined')" msgstr "" -#: library/typing.rst:2330 +#: library/typing.rst:2337 msgid "Unpacking" msgstr "" -#: library/typing.rst:2331 +#: library/typing.rst:2338 msgid "" "Type aliases support star unpacking using the ``*Alias`` syntax. This is " "equivalent to using ``Unpack[Alias]`` directly:" msgstr "" -#: library/typing.rst:2334 +#: library/typing.rst:2341 msgid "" ">>> type Alias = tuple[int, str]\n" ">>> type Unpacked = tuple[bool, *Alias]\n" @@ -3230,46 +3230,46 @@ msgid "" "tuple[bool, typing.Unpack[Alias]]" msgstr "" -#: library/typing.rst:2345 +#: library/typing.rst:2352 msgid "Other special directives" msgstr "" -#: library/typing.rst:2347 +#: library/typing.rst:2354 msgid "" "These functions and classes should not be used directly as annotations. " "Their intended purpose is to be building blocks for creating and declaring " "types." msgstr "" -#: library/typing.rst:2353 +#: library/typing.rst:2360 msgid "Typed version of :func:`collections.namedtuple`." msgstr "" -#: library/typing.rst:2451 library/typing.rst:3545 +#: library/typing.rst:2458 library/typing.rst:3563 msgid "Usage::" msgstr "" -#: library/typing.rst:2357 +#: library/typing.rst:2364 msgid "" "class Employee(NamedTuple):\n" " name: str\n" " id: int" msgstr "" -#: library/typing.rst:2361 +#: library/typing.rst:2368 msgid "This is equivalent to::" msgstr "" -#: library/typing.rst:2363 +#: library/typing.rst:2370 msgid "Employee = collections.namedtuple('Employee', ['name', 'id'])" msgstr "" -#: library/typing.rst:2365 +#: library/typing.rst:2372 msgid "" "To give a field a default value, you can assign to it in the class body::" msgstr "" -#: library/typing.rst:2367 +#: library/typing.rst:2374 msgid "" "class Employee(NamedTuple):\n" " name: str\n" @@ -3279,12 +3279,12 @@ msgid "" "assert employee.id == 3" msgstr "" -#: library/typing.rst:2374 +#: library/typing.rst:2381 msgid "" "Fields with a default value must come after any fields without a default." msgstr "" -#: library/typing.rst:2376 +#: library/typing.rst:2383 msgid "" "The resulting class has an extra attribute ``__annotations__`` giving a dict " "that maps the field names to the field types. (The field names are in the " @@ -3293,11 +3293,11 @@ msgid "" "API.)" msgstr "" -#: library/typing.rst:2382 +#: library/typing.rst:2389 msgid "``NamedTuple`` subclasses can also have docstrings and methods::" msgstr "" -#: library/typing.rst:2384 +#: library/typing.rst:2391 msgid "" "class Employee(NamedTuple):\n" " \"\"\"Represents an employee.\"\"\"\n" @@ -3308,22 +3308,22 @@ msgid "" " return f''" msgstr "" -#: library/typing.rst:2392 +#: library/typing.rst:2399 msgid "``NamedTuple`` subclasses can be generic::" msgstr "" -#: library/typing.rst:2394 +#: library/typing.rst:2401 msgid "" "class Group[T](NamedTuple):\n" " key: T\n" " group: list[T]" msgstr "" -#: library/typing.rst:2398 +#: library/typing.rst:2405 msgid "Backward-compatible usage::" msgstr "" -#: library/typing.rst:2400 +#: library/typing.rst:2407 msgid "" "# For creating a generic NamedTuple on Python 3.11\n" "T = TypeVar(\"T\")\n" @@ -3336,45 +3336,45 @@ msgid "" "Employee = NamedTuple('Employee', [('name', str), ('id', int)])" msgstr "" -#: library/typing.rst:2410 +#: library/typing.rst:2417 msgid "Added support for :pep:`526` variable annotation syntax." msgstr "" -#: library/typing.rst:2413 +#: library/typing.rst:2420 msgid "Added support for default values, methods, and docstrings." msgstr "" -#: library/typing.rst:2416 +#: library/typing.rst:2423 msgid "" "The ``_field_types`` and ``__annotations__`` attributes are now regular " "dictionaries instead of instances of ``OrderedDict``." msgstr "" -#: library/typing.rst:2420 +#: library/typing.rst:2427 msgid "" "Removed the ``_field_types`` attribute in favor of the more standard " "``__annotations__`` attribute which has the same information." msgstr "" -#: library/typing.rst:2424 +#: library/typing.rst:2431 msgid "Added support for generic namedtuples." msgstr "" -#: library/typing.rst:2427 +#: library/typing.rst:2434 msgid "" "Using :func:`super` (and the ``__class__`` :term:`closure variable`) in " "methods of ``NamedTuple`` subclasses is unsupported and causes a :class:" "`TypeError`." msgstr "" -#: library/typing.rst:2431 +#: library/typing.rst:2438 msgid "" "The undocumented keyword argument syntax for creating NamedTuple classes " "(``NT = NamedTuple(\"NT\", x=int)``) is deprecated, and will be disallowed " "in 3.15. Use the class-based syntax or the functional syntax instead." msgstr "" -#: library/typing.rst:2436 +#: library/typing.rst:2443 msgid "" "When using the functional syntax to create a NamedTuple class, failing to " "pass a value to the 'fields' parameter (``NT = NamedTuple(\"NT\")``) is " @@ -3384,61 +3384,61 @@ msgid "" "NT(NamedTuple): pass`` or ``NT = NamedTuple(\"NT\", [])``." msgstr "" -#: library/typing.rst:2446 +#: library/typing.rst:2453 msgid "Helper class to create low-overhead :ref:`distinct types `." msgstr "" -#: library/typing.rst:2448 +#: library/typing.rst:2455 msgid "" "A ``NewType`` is considered a distinct type by a typechecker. At runtime, " "however, calling a ``NewType`` returns its argument unchanged." msgstr "" -#: library/typing.rst:2453 +#: library/typing.rst:2460 msgid "" "UserId = NewType('UserId', int) # Declare the NewType \"UserId\"\n" "first_user = UserId(1) # \"UserId\" returns the argument unchanged at " "runtime" msgstr "" -#: library/typing.rst:2458 -msgid "The module in which the new type is defined." +#: library/typing.rst:2465 +msgid "The name of the module in which the new type is defined." msgstr "" -#: library/typing.rst:2462 +#: library/typing.rst:2469 msgid "The name of the new type." msgstr "" -#: library/typing.rst:2466 +#: library/typing.rst:2473 msgid "The type that the new type is based on." msgstr "" -#: library/typing.rst:2470 +#: library/typing.rst:2477 msgid "``NewType`` is now a class rather than a function." msgstr "" -#: library/typing.rst:2475 +#: library/typing.rst:2482 msgid "Base class for protocol classes." msgstr "" -#: library/typing.rst:2477 +#: library/typing.rst:2484 msgid "Protocol classes are defined like this::" msgstr "" -#: library/typing.rst:2479 +#: library/typing.rst:2486 msgid "" "class Proto(Protocol):\n" " def meth(self) -> int:\n" " ..." msgstr "" -#: library/typing.rst:2483 +#: library/typing.rst:2490 msgid "" "Such classes are primarily used with static type checkers that recognize " "structural subtyping (static duck-typing), for example::" msgstr "" -#: library/typing.rst:2486 +#: library/typing.rst:2493 msgid "" "class C:\n" " def meth(self) -> int:\n" @@ -3450,7 +3450,7 @@ msgid "" "func(C()) # Passes static type check" msgstr "" -#: library/typing.rst:2495 +#: library/typing.rst:2502 msgid "" "See :pep:`544` for more details. Protocol classes decorated with :func:" "`runtime_checkable` (described later) act as simple-minded runtime protocols " @@ -3459,24 +3459,24 @@ msgid "" "second argument to :func:`isinstance` or :func:`issubclass`." msgstr "" -#: library/typing.rst:2501 +#: library/typing.rst:2508 msgid "Protocol classes can be generic, for example::" msgstr "" -#: library/typing.rst:2503 +#: library/typing.rst:2510 msgid "" "class GenProto[T](Protocol):\n" " def meth(self) -> T:\n" " ..." msgstr "" -#: library/typing.rst:2507 +#: library/typing.rst:2514 msgid "" "In code that needs to be compatible with Python 3.11 or older, generic " "Protocols can be written as follows::" msgstr "" -#: library/typing.rst:2510 +#: library/typing.rst:2517 msgid "" "T = TypeVar(\"T\")\n" "\n" @@ -3485,11 +3485,11 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:2520 +#: library/typing.rst:2527 msgid "Mark a protocol class as a runtime protocol." msgstr "" -#: library/typing.rst:2522 +#: library/typing.rst:2529 msgid "" "Such a protocol can be used with :func:`isinstance` and :func:`issubclass`. " "This allows a simple-minded structural check, very similar to \"one trick " @@ -3497,7 +3497,7 @@ msgid "" "Iterable`. For example::" msgstr "" -#: library/typing.rst:2526 +#: library/typing.rst:2533 msgid "" "@runtime_checkable\n" "class Closable(Protocol):\n" @@ -3513,12 +3513,12 @@ msgid "" "assert isinstance(threading.Thread(name='Bob'), Named)" msgstr "" -#: library/typing.rst:2539 +#: library/typing.rst:2546 msgid "" "This decorator raises :exc:`TypeError` when applied to a non-protocol class." msgstr "" -#: library/typing.rst:2543 +#: library/typing.rst:2550 msgid "" ":func:`!runtime_checkable` will check only the presence of the required " "methods or attributes, not their type signatures or types. For example, :" @@ -3529,7 +3529,7 @@ msgid "" "(instantiate) :class:`ssl.SSLObject`." msgstr "" -#: library/typing.rst:2554 +#: library/typing.rst:2561 msgid "" "An :func:`isinstance` check against a runtime-checkable protocol can be " "surprisingly slow compared to an ``isinstance()`` check against a non-" @@ -3537,7 +3537,7 @@ msgid "" "calls for structural checks in performance-sensitive code." msgstr "" -#: library/typing.rst:2562 +#: library/typing.rst:2569 msgid "" "The internal implementation of :func:`isinstance` checks against runtime-" "checkable protocols now uses :func:`inspect.getattr_static` to look up " @@ -3547,22 +3547,22 @@ msgid "" "versa. Most users are unlikely to be affected by this change." msgstr "" -#: library/typing.rst:2571 +#: library/typing.rst:2578 msgid "" "The members of a runtime-checkable protocol are now considered \"frozen\" at " "runtime as soon as the class has been created. Monkey-patching attributes " "onto a runtime-checkable protocol will still work, but will have no impact " "on :func:`isinstance` checks comparing objects to the protocol. See :ref:" -"`\"What's new in Python 3.12\" ` for more details." +"`What's new in Python 3.12 ` for more details." msgstr "" -#: library/typing.rst:2582 +#: library/typing.rst:2589 msgid "" "Special construct to add type hints to a dictionary. At runtime it is a " "plain :class:`dict`." msgstr "" -#: library/typing.rst:2585 +#: library/typing.rst:2592 msgid "" "``TypedDict`` declares a dictionary type that expects all of its instances " "to have a certain set of keys, where each key is associated with a value of " @@ -3570,7 +3570,7 @@ msgid "" "enforced by type checkers. Usage::" msgstr "" -#: library/typing.rst:2591 +#: library/typing.rst:2598 msgid "" "class Point2D(TypedDict):\n" " x: int\n" @@ -3583,17 +3583,17 @@ msgid "" "assert Point2D(x=1, y=2, label='first') == dict(x=1, y=2, label='first')" msgstr "" -#: library/typing.rst:2601 +#: library/typing.rst:2608 msgid "" "An alternative way to create a ``TypedDict`` is by using function-call " "syntax. The second argument must be a literal :class:`dict`::" msgstr "" -#: library/typing.rst:2604 +#: library/typing.rst:2611 msgid "Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str})" msgstr "" -#: library/typing.rst:2606 +#: library/typing.rst:2613 msgid "" "This functional syntax allows defining keys which are not valid :ref:" "`identifiers `, for example because they are keywords or " @@ -3601,7 +3601,7 @@ msgid "" "mangling>` like regular private names::" msgstr "" -#: library/typing.rst:2611 +#: library/typing.rst:2618 msgid "" "# raises SyntaxError\n" "class Point2D(TypedDict):\n" @@ -3616,13 +3616,13 @@ msgid "" "Definition = TypedDict('Definition', {'__schema': str}) # not mangled" msgstr "" -#: library/typing.rst:2623 +#: library/typing.rst:2630 msgid "" "By default, all keys must be present in a ``TypedDict``. It is possible to " "mark individual keys as non-required using :data:`NotRequired`::" msgstr "" -#: library/typing.rst:2626 +#: library/typing.rst:2633 msgid "" "class Point2D(TypedDict):\n" " x: int\n" @@ -3634,19 +3634,19 @@ msgid "" "NotRequired[str]})" msgstr "" -#: library/typing.rst:2634 +#: library/typing.rst:2641 msgid "" "This means that a ``Point2D`` ``TypedDict`` can have the ``label`` key " "omitted." msgstr "" -#: library/typing.rst:2637 +#: library/typing.rst:2644 msgid "" "It is also possible to mark all keys as non-required by default by " "specifying a totality of ``False``::" msgstr "" -#: library/typing.rst:2640 +#: library/typing.rst:2647 msgid "" "class Point2D(TypedDict, total=False):\n" " x: int\n" @@ -3656,7 +3656,7 @@ msgid "" "Point2D = TypedDict('Point2D', {'x': int, 'y': int}, total=False)" msgstr "" -#: library/typing.rst:2647 +#: library/typing.rst:2654 msgid "" "This means that a ``Point2D`` ``TypedDict`` can have any of the keys " "omitted. A type checker is only expected to support a literal ``False`` or " @@ -3664,13 +3664,13 @@ msgid "" "and makes all items defined in the class body required." msgstr "" -#: library/typing.rst:2652 +#: library/typing.rst:2659 msgid "" "Individual keys of a ``total=False`` ``TypedDict`` can be marked as required " "using :data:`Required`::" msgstr "" -#: library/typing.rst:2655 +#: library/typing.rst:2662 msgid "" "class Point2D(TypedDict, total=False):\n" " x: Required[int]\n" @@ -3685,25 +3685,25 @@ msgid "" "}, total=False)" msgstr "" -#: library/typing.rst:2667 +#: library/typing.rst:2674 msgid "" "It is possible for a ``TypedDict`` type to inherit from one or more other " "``TypedDict`` types using the class-based syntax. Usage::" msgstr "" -#: library/typing.rst:2671 +#: library/typing.rst:2678 msgid "" "class Point3D(Point2D):\n" " z: int" msgstr "" -#: library/typing.rst:2674 +#: library/typing.rst:2681 msgid "" "``Point3D`` has three items: ``x``, ``y`` and ``z``. It is equivalent to " "this definition::" msgstr "" -#: library/typing.rst:2677 +#: library/typing.rst:2684 msgid "" "class Point3D(TypedDict):\n" " x: int\n" @@ -3711,13 +3711,13 @@ msgid "" " z: int" msgstr "" -#: library/typing.rst:2682 +#: library/typing.rst:2689 msgid "" "A ``TypedDict`` cannot inherit from a non-\\ ``TypedDict`` class, except " "for :class:`Generic`. For example::" msgstr "" -#: library/typing.rst:2685 +#: library/typing.rst:2692 msgid "" "class X(TypedDict):\n" " x: int\n" @@ -3732,24 +3732,24 @@ msgid "" "class XZ(X, Z): pass # raises TypeError" msgstr "" -#: library/typing.rst:2697 +#: library/typing.rst:2704 msgid "A ``TypedDict`` can be generic::" msgstr "" -#: library/typing.rst:2699 +#: library/typing.rst:2706 msgid "" "class Group[T](TypedDict):\n" " key: T\n" " group: list[T]" msgstr "" -#: library/typing.rst:2703 +#: library/typing.rst:2710 msgid "" "To create a generic ``TypedDict`` that is compatible with Python 3.11 or " "lower, inherit from :class:`Generic` explicitly:" msgstr "" -#: library/typing.rst:2706 +#: library/typing.rst:2713 msgid "" "T = TypeVar(\"T\")\n" "\n" @@ -3758,19 +3758,19 @@ msgid "" " group: list[T]" msgstr "" -#: library/typing.rst:2714 +#: library/typing.rst:2721 msgid "" "A ``TypedDict`` can be introspected via annotations dicts (see :ref:" "`annotations-howto` for more information on annotations best practices), :" "attr:`__total__`, :attr:`__required_keys__`, and :attr:`__optional_keys__`." msgstr "" -#: library/typing.rst:2720 +#: library/typing.rst:2727 msgid "" "``Point2D.__total__`` gives the value of the ``total`` argument. Example:" msgstr "" -#: library/typing.rst:2723 +#: library/typing.rst:2730 msgid "" ">>> from typing import TypedDict\n" ">>> class Point2D(TypedDict): pass\n" @@ -3784,7 +3784,7 @@ msgid "" "True" msgstr "" -#: library/typing.rst:2736 +#: library/typing.rst:2743 msgid "" "This attribute reflects *only* the value of the ``total`` argument to the " "current ``TypedDict`` class, not whether the class is semantically total. " @@ -3795,21 +3795,21 @@ msgid "" "introspection." msgstr "" -#: library/typing.rst:2749 +#: library/typing.rst:2756 msgid "" "``Point2D.__required_keys__`` and ``Point2D.__optional_keys__`` return :" "class:`frozenset` objects containing required and non-required keys, " "respectively." msgstr "" -#: library/typing.rst:2752 +#: library/typing.rst:2759 msgid "" "Keys marked with :data:`Required` will always appear in " "``__required_keys__`` and keys marked with :data:`NotRequired` will always " "appear in ``__optional_keys__``." msgstr "" -#: library/typing.rst:2755 +#: library/typing.rst:2762 msgid "" "For backwards compatibility with Python 3.10 and below, it is also possible " "to use inheritance to declare both required and non-required keys in the " @@ -3818,7 +3818,7 @@ msgid "" "``TypedDict`` with a different value for ``total``:" msgstr "" -#: library/typing.rst:2762 +#: library/typing.rst:2769 msgid "" ">>> class Point2D(TypedDict, total=False):\n" "... x: int\n" @@ -3833,7 +3833,7 @@ msgid "" "True" msgstr "" -#: library/typing.rst:2780 +#: library/typing.rst:2787 msgid "" "If ``from __future__ import annotations`` is used or if annotations are " "given as strings, annotations are not evaluated when the ``TypedDict`` is " @@ -3842,50 +3842,50 @@ msgid "" "attributes may be incorrect." msgstr "" -#: library/typing.rst:2786 +#: library/typing.rst:2793 msgid "Support for :data:`ReadOnly` is reflected in the following attributes:" msgstr "" -#: library/typing.rst:2790 +#: library/typing.rst:2797 msgid "" "A :class:`frozenset` containing the names of all read-only keys. Keys are " "read-only if they carry the :data:`ReadOnly` qualifier." msgstr "" -#: library/typing.rst:2797 +#: library/typing.rst:2804 msgid "" "A :class:`frozenset` containing the names of all mutable keys. Keys are " "mutable if they do not carry the :data:`ReadOnly` qualifier." msgstr "" -#: library/typing.rst:2802 +#: library/typing.rst:2809 msgid "" "See the `TypedDict `_ section in the typing documentation for more examples and " "detailed rules." msgstr "" -#: library/typing.rst:2806 +#: library/typing.rst:2813 msgid "" "Added support for marking individual keys as :data:`Required` or :data:" "`NotRequired`. See :pep:`655`." msgstr "" -#: library/typing.rst:2810 +#: library/typing.rst:2817 msgid "Added support for generic ``TypedDict``\\ s." msgstr "" -#: library/typing.rst:2813 +#: library/typing.rst:2820 msgid "" "Removed support for the keyword-argument method of creating ``TypedDict``\\ " "s." msgstr "" -#: library/typing.rst:2816 +#: library/typing.rst:2823 msgid "Support for the :data:`ReadOnly` qualifier was added." msgstr "" -#: library/typing.rst:2819 +#: library/typing.rst:2826 msgid "" "When using the functional syntax to create a TypedDict class, failing to " "pass a value to the 'fields' parameter (``TD = TypedDict(\"TD\")``) is " @@ -3895,53 +3895,53 @@ msgid "" "TD(TypedDict): pass`` or ``TD = TypedDict(\"TD\", {})``." msgstr "" -#: library/typing.rst:2828 +#: library/typing.rst:2835 msgid "Protocols" msgstr "" -#: library/typing.rst:2830 +#: library/typing.rst:2837 msgid "" "The following protocols are provided by the :mod:`!typing` module. All are " -"decorated with :func:`@runtime_checkable `." +"decorated with :deco:`runtime_checkable`." msgstr "" -#: library/typing.rst:2835 +#: library/typing.rst:2842 msgid "" "An ABC with one abstract method ``__abs__`` that is covariant in its return " "type." msgstr "" -#: library/typing.rst:2840 +#: library/typing.rst:2847 msgid "An ABC with one abstract method ``__bytes__``." msgstr "" -#: library/typing.rst:2844 +#: library/typing.rst:2851 msgid "An ABC with one abstract method ``__complex__``." msgstr "" -#: library/typing.rst:2848 +#: library/typing.rst:2855 msgid "An ABC with one abstract method ``__float__``." msgstr "" -#: library/typing.rst:2852 +#: library/typing.rst:2859 msgid "An ABC with one abstract method ``__index__``." msgstr "" -#: library/typing.rst:2858 +#: library/typing.rst:2865 msgid "An ABC with one abstract method ``__int__``." msgstr "" -#: library/typing.rst:2862 +#: library/typing.rst:2869 msgid "" "An ABC with one abstract method ``__round__`` that is covariant in its " "return type." msgstr "" -#: library/typing.rst:2868 +#: library/typing.rst:2875 msgid "ABCs and Protocols for working with I/O" msgstr "" -#: library/typing.rst:2874 +#: library/typing.rst:2881 msgid "" "Generic class ``IO[AnyStr]`` and its subclasses ``TextIO(IO[str])`` and " "``BinaryIO(IO[bytes])`` represent the types of I/O streams such as returned " @@ -3949,80 +3949,80 @@ msgid "" "interface is fairly broad." msgstr "" -#: library/typing.rst:2880 +#: library/typing.rst:2887 msgid "" "The protocols :class:`io.Reader` and :class:`io.Writer` offer a simpler " "alternative for argument types, when only the ``read()`` or ``write()`` " "methods are accessed, respectively::" msgstr "" -#: library/typing.rst:2884 +#: library/typing.rst:2891 msgid "" "def read_and_write(reader: Reader[str], writer: Writer[bytes]):\n" " data = reader.read()\n" " writer.write(data.encode())" msgstr "" -#: library/typing.rst:2888 +#: library/typing.rst:2895 msgid "" "Also consider using :class:`collections.abc.Iterable` for iterating over the " "lines of an input stream::" msgstr "" -#: library/typing.rst:2891 +#: library/typing.rst:2898 msgid "" "def read_config(stream: Iterable[str]):\n" " for line in stream:\n" " ..." msgstr "" -#: library/typing.rst:2896 +#: library/typing.rst:2903 msgid "Functions and decorators" msgstr "" -#: library/typing.rst:2900 +#: library/typing.rst:2907 msgid "Cast a value to a type." msgstr "" -#: library/typing.rst:2902 +#: library/typing.rst:2909 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 "" -#: library/typing.rst:2909 +#: library/typing.rst:2916 msgid "" "Ask a static type checker to confirm that *val* has an inferred type of " "*typ*." msgstr "" -#: library/typing.rst:2911 +#: library/typing.rst:2918 msgid "" "At runtime this does nothing: it returns the first argument unchanged with " "no checks or side effects, no matter the actual type of the argument." msgstr "" -#: library/typing.rst:2914 +#: library/typing.rst:2921 msgid "" "When a static type checker encounters a call to ``assert_type()``, it emits " "an error if the value is not of the specified type::" msgstr "" -#: library/typing.rst:2917 +#: library/typing.rst:2924 msgid "" "def greet(name: str) -> None:\n" " assert_type(name, str) # OK, inferred type of `name` is `str`\n" " assert_type(name, int) # type checker error" msgstr "" -#: library/typing.rst:2921 +#: library/typing.rst:2928 msgid "" "This function is useful for ensuring the type checker's understanding of a " "script is in line with the developer's intentions::" msgstr "" -#: library/typing.rst:2924 +#: library/typing.rst:2931 msgid "" "def complex_function(arg: object):\n" " # Do some complex type-narrowing logic,\n" @@ -4032,16 +4032,16 @@ msgid "" " assert_type(arg, int)" msgstr "" -#: library/typing.rst:2935 +#: library/typing.rst:2942 msgid "" "Ask a static type checker to confirm that a line of code is unreachable." msgstr "" -#: library/typing.rst:2937 +#: library/typing.rst:2944 msgid "Example::" msgstr "" -#: library/typing.rst:2939 +#: library/typing.rst:2946 msgid "" "def int_or_str(arg: int | str) -> None:\n" " match arg:\n" @@ -4053,14 +4053,14 @@ msgid "" " assert_never(unreachable)" msgstr "" -#: library/typing.rst:2948 +#: library/typing.rst:2955 msgid "" "Here, the annotations allow the type checker to infer that the last case can " "never execute, because ``arg`` is either an :class:`int` or a :class:`str`, " "and both options are covered by earlier cases." msgstr "" -#: library/typing.rst:2953 +#: library/typing.rst:2960 msgid "" "If a type checker finds that a call to ``assert_never()`` is reachable, it " "will emit an error. For example, if the type annotation for ``arg`` was " @@ -4070,59 +4070,59 @@ msgid "" "passed in must be the bottom type, :data:`Never`, and nothing else." msgstr "" -#: library/typing.rst:2961 +#: library/typing.rst:2968 msgid "At runtime, this throws an exception when called." msgstr "" -#: library/typing.rst:2964 +#: library/typing.rst:2971 msgid "" "`Unreachable Code and Exhaustiveness Checking `__ has more information about exhaustiveness " "checking with static typing." msgstr "" -#: library/typing.rst:2972 +#: library/typing.rst:2979 msgid "Ask a static type checker to reveal the inferred type of an expression." msgstr "" -#: library/typing.rst:2974 +#: library/typing.rst:2981 msgid "" "When a static type checker encounters a call to this function, it emits a " "diagnostic with the inferred type of the argument. For example::" msgstr "" -#: library/typing.rst:2977 +#: library/typing.rst:2984 msgid "" "x: int = 1\n" "reveal_type(x) # Revealed type is \"builtins.int\"" msgstr "" -#: library/typing.rst:2980 +#: library/typing.rst:2987 msgid "" "This can be useful when you want to debug how your type checker handles a " "particular piece of code." msgstr "" -#: library/typing.rst:2983 +#: library/typing.rst:2990 msgid "" "At runtime, this function prints the runtime type of its argument to :data:" "`sys.stderr` and returns the argument unchanged (allowing the call to be " "used within an expression)::" msgstr "" -#: library/typing.rst:2987 +#: library/typing.rst:2994 msgid "" "x = reveal_type(1) # prints \"Runtime type is int\"\n" "print(x) # prints \"1\"" msgstr "" -#: library/typing.rst:2990 +#: library/typing.rst:2997 msgid "" "Note that the runtime type may be different from (more or less specific " "than) the type statically inferred by a type checker." msgstr "" -#: library/typing.rst:2993 +#: library/typing.rst:3000 msgid "" "Most type checkers support ``reveal_type()`` anywhere, even if the name is " "not imported from ``typing``. Importing the name from ``typing``, however, " @@ -4130,26 +4130,26 @@ msgid "" "clearly." msgstr "" -#: library/typing.rst:3004 +#: library/typing.rst:3011 msgid "" "Decorator to mark an object as providing :func:`dataclass `-like behavior." msgstr "" -#: library/typing.rst:3007 +#: library/typing.rst:3014 msgid "" "``dataclass_transform`` may be used to decorate a class, metaclass, or a " "function that is itself a decorator. The presence of " "``@dataclass_transform()`` tells a static type checker that the decorated " "object performs runtime \"magic\" that transforms a class in a similar way " -"to :func:`@dataclasses.dataclass `." +"to :deco:`dataclasses.dataclass`." msgstr "" -#: library/typing.rst:3014 +#: library/typing.rst:3021 msgid "Example usage with a decorator function:" msgstr "" -#: library/typing.rst:3016 +#: library/typing.rst:3023 msgid "" "@dataclass_transform()\n" "def create_model[T](cls: type[T]) -> type[T]:\n" @@ -4162,11 +4162,11 @@ msgid "" " name: str" msgstr "" -#: library/typing.rst:3028 +#: library/typing.rst:3035 msgid "On a base class::" msgstr "" -#: library/typing.rst:3030 +#: library/typing.rst:3037 msgid "" "@dataclass_transform()\n" "class ModelBase: ...\n" @@ -4176,11 +4176,11 @@ msgid "" " name: str" msgstr "" -#: library/typing.rst:3037 +#: library/typing.rst:3044 msgid "On a metaclass::" msgstr "" -#: library/typing.rst:3039 +#: library/typing.rst:3046 msgid "" "@dataclass_transform()\n" "class ModelMeta(type): ...\n" @@ -4192,25 +4192,25 @@ msgid "" " name: str" msgstr "" -#: library/typing.rst:3048 +#: library/typing.rst:3055 msgid "" "The ``CustomerModel`` classes defined above will be treated by type checkers " -"similarly to classes created with :func:`@dataclasses.dataclass `. For example, type checkers will assume these classes have " -"``__init__`` methods that accept ``id`` and ``name``." +"similarly to classes created with :deco:`dataclasses.dataclass`. For " +"example, type checkers will assume these classes have ``__init__`` methods " +"that accept ``id`` and ``name``." msgstr "" -#: library/typing.rst:3054 +#: library/typing.rst:3061 msgid "" "The decorated class, metaclass, or function may accept the following bool " "arguments which type checkers will assume have the same effect as they would " -"have on the :func:`@dataclasses.dataclass` decorator: " -"``init``, ``eq``, ``order``, ``unsafe_hash``, ``frozen``, ``match_args``, " -"``kw_only``, and ``slots``. It must be possible for the value of these " -"arguments (``True`` or ``False``) to be statically evaluated." +"have on the :deco:`dataclasses.dataclass` decorator: ``init``, ``eq``, " +"``order``, ``unsafe_hash``, ``frozen``, ``match_args``, ``kw_only``, and " +"``slots``. It must be possible for the value of these arguments (``True`` or " +"``False``) to be statically evaluated." msgstr "" -#: library/typing.rst:3062 +#: library/typing.rst:3069 msgid "" "The arguments to the ``dataclass_transform`` decorator can be used to " "customize the default behaviors of the decorated class, metaclass, or " @@ -4221,90 +4221,90 @@ msgstr "" msgid "Parameters" msgstr "" -#: library/typing.rst:3066 +#: library/typing.rst:3073 msgid "" "Indicates whether the ``eq`` parameter is assumed to be ``True`` or " "``False`` if it is omitted by the caller. Defaults to ``True``." msgstr "" -#: library/typing.rst:3071 +#: library/typing.rst:3078 msgid "" "Indicates whether the ``order`` parameter is assumed to be ``True`` or " "``False`` if it is omitted by the caller. Defaults to ``False``." msgstr "" -#: library/typing.rst:3076 +#: library/typing.rst:3083 msgid "" "Indicates whether the ``kw_only`` parameter is assumed to be ``True`` or " "``False`` if it is omitted by the caller. Defaults to ``False``." msgstr "" -#: library/typing.rst:3081 +#: library/typing.rst:3088 msgid "" "Indicates whether the ``frozen`` parameter is assumed to be ``True`` or " "``False`` if it is omitted by the caller. Defaults to ``False``. .. " "versionadded:: 3.12" msgstr "" -#: library/typing.rst:3082 +#: library/typing.rst:3089 msgid "" "Indicates whether the ``frozen`` parameter is assumed to be ``True`` or " "``False`` if it is omitted by the caller. Defaults to ``False``." msgstr "" -#: library/typing.rst:3088 +#: library/typing.rst:3095 msgid "" "Specifies a static list of supported classes or functions that describe " "fields, similar to :func:`dataclasses.field`. Defaults to ``()``." msgstr "" -#: library/typing.rst:3094 +#: library/typing.rst:3101 msgid "" "Arbitrary other keyword arguments are accepted in order to allow for " "possible future extensions." msgstr "" -#: library/typing.rst:3098 +#: library/typing.rst:3105 msgid "" "Type checkers recognize the following optional parameters on field " "specifiers:" msgstr "" -#: library/typing.rst:3101 +#: library/typing.rst:3108 msgid "**Recognised parameters for field specifiers**" msgstr "" -#: library/typing.rst:3105 +#: library/typing.rst:3112 msgid "Parameter name" msgstr "" -#: library/typing.rst:3106 +#: library/typing.rst:3113 msgid "Description" msgstr "" -#: library/typing.rst:3107 +#: library/typing.rst:3114 msgid "``init``" msgstr "" -#: library/typing.rst:3108 +#: library/typing.rst:3115 msgid "" "Indicates whether the field should be included in the synthesized " "``__init__`` method. If unspecified, ``init`` defaults to ``True``." msgstr "" -#: library/typing.rst:3111 +#: library/typing.rst:3118 msgid "``default``" msgstr "" -#: library/typing.rst:3112 +#: library/typing.rst:3119 msgid "Provides the default value for the field." msgstr "" -#: library/typing.rst:3113 +#: library/typing.rst:3120 msgid "``default_factory``" msgstr "" -#: library/typing.rst:3114 +#: library/typing.rst:3121 msgid "" "Provides a runtime callback that returns the default value for the field. If " "neither ``default`` nor ``default_factory`` are specified, the field is " @@ -4312,19 +4312,19 @@ msgid "" "is instantiated." msgstr "" -#: library/typing.rst:3119 +#: library/typing.rst:3126 msgid "``factory``" msgstr "" -#: library/typing.rst:3120 +#: library/typing.rst:3127 msgid "An alias for the ``default_factory`` parameter on field specifiers." msgstr "" -#: library/typing.rst:3121 +#: library/typing.rst:3128 msgid "``kw_only``" msgstr "" -#: library/typing.rst:3122 +#: library/typing.rst:3129 msgid "" "Indicates whether the field should be marked as keyword-only. If ``True``, " "the field will be keyword-only. If ``False``, it will not be keyword-only. " @@ -4334,32 +4334,32 @@ msgid "" "will be used." msgstr "" -#: library/typing.rst:3128 +#: library/typing.rst:3135 msgid "``alias``" msgstr "" -#: library/typing.rst:3129 +#: library/typing.rst:3136 msgid "" "Provides an alternative name for the field. This alternative name is used in " "the synthesized ``__init__`` method." msgstr "" -#: library/typing.rst:3132 +#: library/typing.rst:3139 msgid "" "At runtime, this decorator records its arguments in the " "``__dataclass_transform__`` attribute on the decorated object. It has no " "other runtime effect." msgstr "" -#: library/typing.rst:3136 +#: library/typing.rst:3143 msgid "See :pep:`681` for more details." msgstr "" -#: library/typing.rst:3144 +#: library/typing.rst:3151 msgid "Decorator for creating overloaded functions and methods." msgstr "" -#: library/typing.rst:3146 +#: library/typing.rst:3153 msgid "" "The ``@overload`` decorator allows describing functions and methods that " "support multiple different combinations of argument types. A series of " @@ -4367,7 +4367,7 @@ msgid "" "``@overload``-decorated definition (for the same function/method)." msgstr "" -#: library/typing.rst:3151 +#: library/typing.rst:3158 msgid "" "``@overload``-decorated definitions are for the benefit of the type checker " "only, since they will be overwritten by the non-``@overload``-decorated " @@ -4377,13 +4377,13 @@ msgid "" "`NotImplementedError`." msgstr "" -#: library/typing.rst:3159 +#: library/typing.rst:3166 msgid "" "An example of overload that gives a more precise type than can be expressed " "using a union or a type variable:" msgstr "" -#: library/typing.rst:3162 +#: library/typing.rst:3169 msgid "" "@overload\n" "def process(response: None) -> None:\n" @@ -4398,59 +4398,57 @@ msgid "" " ... # actual implementation goes here" msgstr "" -#: library/typing.rst:3176 +#: library/typing.rst:3183 msgid "" "See :pep:`484` for more details and comparison with other typing semantics." msgstr "" -#: library/typing.rst:3178 +#: library/typing.rst:3185 msgid "" "Overloaded functions can now be introspected at runtime using :func:" "`get_overloads`." msgstr "" -#: library/typing.rst:3185 -msgid "" -"Return a sequence of :func:`@overload `-decorated definitions for " -"*func*." +#: library/typing.rst:3192 +msgid "Return a sequence of :deco:`overload`-decorated definitions for *func*." msgstr "" -#: library/typing.rst:3188 +#: library/typing.rst:3195 msgid "" "*func* is the function object for the implementation of the overloaded " "function. For example, given the definition of ``process`` in the " -"documentation for :func:`@overload `, ``get_overloads(process)`` " -"will return a sequence of three function objects for the three defined " -"overloads. If called on a function with no overloads, ``get_overloads()`` " -"returns an empty sequence." +"documentation for :deco:`overload`, ``get_overloads(process)`` will return a " +"sequence of three function objects for the three defined overloads. If " +"called on a function with no overloads, ``get_overloads()`` returns an empty " +"sequence." msgstr "" -#: library/typing.rst:3195 +#: library/typing.rst:3202 msgid "" "``get_overloads()`` can be used for introspecting an overloaded function at " "runtime." msgstr "" -#: library/typing.rst:3203 +#: library/typing.rst:3210 msgid "Clear all registered overloads in the internal registry." msgstr "" -#: library/typing.rst:3205 +#: library/typing.rst:3212 msgid "This can be used to reclaim the memory used by the registry." msgstr "" -#: library/typing.rst:3212 +#: library/typing.rst:3219 msgid "Decorator to indicate final methods and final classes." msgstr "" -#: library/typing.rst:3214 +#: library/typing.rst:3221 msgid "" "Decorating a method with ``@final`` indicates to a type checker that the " "method cannot be overridden in a subclass. Decorating a class with " "``@final`` indicates that it cannot be subclassed." msgstr "" -#: library/typing.rst:3220 +#: library/typing.rst:3227 msgid "" "class Base:\n" " @final\n" @@ -4467,7 +4465,7 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:3239 +#: library/typing.rst:3246 msgid "" "The decorator will now attempt to set a ``__final__`` attribute to ``True`` " "on the decorated object. Thus, a check like ``if getattr(obj, \"__final__\", " @@ -4477,11 +4475,11 @@ msgid "" "exception." msgstr "" -#: library/typing.rst:3250 +#: library/typing.rst:3257 msgid "Decorator to indicate that annotations are not type hints." msgstr "" -#: library/typing.rst:3252 +#: library/typing.rst:3259 msgid "" "This works as a class or function :term:`decorator`. With a class, it " "applies recursively to all methods and classes defined in that class (but " @@ -4489,40 +4487,40 @@ msgid "" "will ignore all annotations in a function or class with this decorator." msgstr "" -#: library/typing.rst:3258 +#: library/typing.rst:3265 msgid "``@no_type_check`` mutates the decorated object in place." msgstr "" -#: library/typing.rst:3262 +#: library/typing.rst:3269 msgid "Decorator to give another decorator the :func:`no_type_check` effect." msgstr "" -#: library/typing.rst:3264 +#: library/typing.rst:3271 msgid "" "This wraps the decorator with something that wraps the decorated function " "in :func:`no_type_check`." msgstr "" -#: library/typing.rst:3267 +#: library/typing.rst:3274 msgid "" "No type checker ever added support for ``@no_type_check_decorator``. It is " "therefore deprecated, and will be removed in Python 3.15." msgstr "" -#: library/typing.rst:3273 +#: library/typing.rst:3280 msgid "" "Decorator to indicate that a method in a subclass is intended to override a " "method or attribute in a superclass." msgstr "" -#: library/typing.rst:3276 +#: library/typing.rst:3283 msgid "" "Type checkers should emit an error if a method decorated with ``@override`` " "does not, in fact, override anything. This helps prevent bugs that may occur " "when a base class is changed without an equivalent change to a child class." msgstr "" -#: library/typing.rst:3283 +#: library/typing.rst:3290 msgid "" "class Base:\n" " def log_status(self) -> None:\n" @@ -4538,11 +4536,11 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:3298 +#: library/typing.rst:3305 msgid "There is no runtime checking of this property." msgstr "" -#: library/typing.rst:3300 +#: library/typing.rst:3307 msgid "" "The decorator will attempt to set an ``__override__`` attribute to ``True`` " "on the decorated object. Thus, a check like ``if getattr(obj, " @@ -4552,22 +4550,22 @@ msgid "" "without raising an exception." msgstr "" -#: library/typing.rst:3307 +#: library/typing.rst:3314 msgid "See :pep:`698` for more details." msgstr "" -#: library/typing.rst:3314 +#: library/typing.rst:3321 msgid "Decorator to mark a class or function as unavailable at runtime." msgstr "" -#: library/typing.rst:3316 +#: library/typing.rst:3323 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 "" -#: library/typing.rst:3320 +#: library/typing.rst:3327 msgid "" "@type_check_only\n" "class Response: # private or not available at runtime\n" @@ -4577,29 +4575,29 @@ msgid "" "def fetch_response() -> Response: ..." msgstr "" -#: library/typing.rst:3327 +#: library/typing.rst:3334 msgid "" "Note that returning instances of private classes is not recommended. It is " "usually preferable to make such classes public." msgstr "" -#: library/typing.rst:3331 +#: library/typing.rst:3338 msgid "Introspection helpers" msgstr "" -#: library/typing.rst:3335 +#: library/typing.rst:3342 msgid "" "Return a dictionary containing type hints for a function, method, module or " "class object." msgstr "" -#: library/typing.rst:3338 +#: library/typing.rst:3345 msgid "" "This is often the same as ``obj.__annotations__``, but this function makes " "the following changes to the annotations dictionary:" msgstr "" -#: library/typing.rst:3341 +#: library/typing.rst:3348 msgid "" "Forward references encoded as string literals or :class:`ForwardRef` objects " "are handled by evaluating them in *globalns*, *localns*, and (where " @@ -4608,17 +4606,17 @@ msgid "" "inferred from *obj*." msgstr "" -#: library/typing.rst:3346 +#: library/typing.rst:3353 msgid "``None`` is replaced with :class:`types.NoneType`." msgstr "" -#: library/typing.rst:3347 +#: library/typing.rst:3354 msgid "" -"If :func:`@no_type_check ` has been applied to *obj*, an " -"empty dictionary is returned." +"If :deco:`no_type_check` has been applied to *obj*, an empty dictionary is " +"returned." msgstr "" -#: library/typing.rst:3349 +#: library/typing.rst:3356 msgid "" "If *obj* is a class ``C``, the function returns a dictionary that merges " "annotations from ``C``'s base classes with those on ``C`` directly. This is " @@ -4628,20 +4626,27 @@ msgid "" "annotations on classes appearing later in the method resolution order." msgstr "" -#: library/typing.rst:3356 +#: library/typing.rst:3363 msgid "" -"The function recursively replaces all occurrences of ``Annotated[T, ...]`` " -"with ``T``, unless *include_extras* is set to ``True`` (see :class:" -"`Annotated` for more information)." +"The function recursively replaces all occurrences of ``Annotated[T, ...]``, " +"``Required[T]``, ``NotRequired[T]``, and ``ReadOnly[T]`` with ``T``, unless " +"*include_extras* is set to ``True`` (see :class:`Annotated` for more " +"information)." msgstr "" -#: library/typing.rst:3360 +#: library/typing.rst:3368 msgid "" -"See also :func:`inspect.get_annotations`, a lower-level function that " +"See also :func:`annotationlib.get_annotations`, a lower-level function that " "returns annotations more directly." msgstr "" -#: library/typing.rst:3365 +#: library/typing.rst:3524 +msgid "" +"This function may execute arbitrary code contained in annotations. See :ref:" +"`annotationlib-security` for more information." +msgstr "" + +#: library/typing.rst:3378 msgid "" "If any forward references in the annotations of *obj* are not resolvable or " "are not valid Python code, this function will raise an exception such as :" @@ -4650,26 +4655,26 @@ msgid "" "imported under :data:`if TYPE_CHECKING `." msgstr "" -#: library/typing.rst:3371 +#: library/typing.rst:3384 msgid "" "Added ``include_extras`` parameter as part of :pep:`593`. See the " "documentation on :data:`Annotated` for more information." msgstr "" -#: library/typing.rst:3375 +#: library/typing.rst:3388 msgid "" "Previously, ``Optional[t]`` was added for function and method annotations if " "a default value equal to ``None`` was set. Now the annotation is returned " "unchanged." msgstr "" -#: library/typing.rst:3382 +#: library/typing.rst:3395 msgid "" "Get the unsubscripted version of a type: for a typing object of the form " "``X[Y, Z, ...]`` return ``X``." msgstr "" -#: library/typing.rst:3385 +#: library/typing.rst:3398 msgid "" "If ``X`` is a typing-module alias for a builtin or :mod:`collections` class, " "it will be normalized to the original class. If ``X`` is an instance of :" @@ -4677,11 +4682,11 @@ msgid "" "class:`ParamSpec`. Return ``None`` for unsupported objects." msgstr "" -#: library/typing.rst:3415 +#: library/typing.rst:3428 msgid "Examples:" msgstr "" -#: library/typing.rst:3393 +#: library/typing.rst:3406 msgid "" "assert get_origin(str) is None\n" "assert get_origin(Dict[str, int]) is dict\n" @@ -4692,13 +4697,13 @@ msgid "" "assert get_origin(P.kwargs) is P" msgstr "" -#: library/typing.rst:3407 +#: library/typing.rst:3420 msgid "" "Get type arguments with all substitutions performed: for a typing object of " "the form ``X[Y, Z, ...]`` return ``(Y, Z, ...)``." msgstr "" -#: library/typing.rst:3410 +#: library/typing.rst:3423 msgid "" "If ``X`` is a union or :class:`Literal` contained in another generic type, " "the order of ``(Y, Z, ...)`` may be different from the order of the original " @@ -4706,18 +4711,18 @@ msgid "" "objects." msgstr "" -#: library/typing.rst:3417 +#: library/typing.rst:3430 msgid "" "assert get_args(int) == ()\n" "assert get_args(Dict[int, str]) == (int, str)\n" "assert get_args(Union[int, str]) == (int, str)" msgstr "" -#: library/typing.rst:3427 +#: library/typing.rst:3440 msgid "Return the set of members defined in a :class:`Protocol`." msgstr "" -#: library/typing.rst:3429 +#: library/typing.rst:3442 msgid "" ">>> from typing import Protocol, get_protocol_members\n" ">>> class P(Protocol):\n" @@ -4727,15 +4732,15 @@ msgid "" "True" msgstr "" -#: library/typing.rst:3438 +#: library/typing.rst:3451 msgid "Raise :exc:`TypeError` for arguments that are not Protocols." msgstr "" -#: library/typing.rst:3444 +#: library/typing.rst:3457 msgid "Determine if a type is a :class:`Protocol`." msgstr "" -#: library/typing.rst:3448 +#: library/typing.rst:3461 msgid "" "class P(Protocol):\n" " def a(self) -> str: ...\n" @@ -4745,11 +4750,11 @@ msgid "" "is_protocol(int) # => False" msgstr "" -#: library/typing.rst:3459 +#: library/typing.rst:3472 msgid "Check if a type is a :class:`TypedDict`." msgstr "" -#: library/typing.rst:3463 +#: library/typing.rst:3476 msgid "" "class Film(TypedDict):\n" " title: str\n" @@ -4763,57 +4768,57 @@ msgid "" "assert not is_typeddict(TypedDict)" msgstr "" -#: library/typing.rst:3480 +#: library/typing.rst:3493 msgid "" "Class used for internal typing representation of string forward references." msgstr "" -#: library/typing.rst:3482 +#: library/typing.rst:3495 msgid "" "For example, ``List[\"SomeClass\"]`` is implicitly transformed into " "``List[ForwardRef(\"SomeClass\")]``. :class:`!ForwardRef` should not be " "instantiated by a user, but may be used by introspection tools." msgstr "" -#: library/typing.rst:3487 +#: library/typing.rst:3500 msgid "" ":pep:`585` generic types such as ``list[\"SomeClass\"]`` will not be " "implicitly transformed into ``list[ForwardRef(\"SomeClass\")]`` and thus " "will not automatically resolve to ``list[SomeClass]``." msgstr "" -#: library/typing.rst:3493 +#: library/typing.rst:3506 msgid "" "This is now an alias for :class:`annotationlib.ForwardRef`. Several " "undocumented behaviors of this class have been changed; for example, after a " "``ForwardRef`` has been evaluated, the evaluated value is no longer cached." msgstr "" -#: library/typing.rst:3500 +#: library/typing.rst:3513 msgid "Evaluate an :class:`annotationlib.ForwardRef` as a :term:`type hint`." msgstr "" -#: library/typing.rst:3502 +#: library/typing.rst:3515 msgid "" "This is similar to calling :meth:`annotationlib.ForwardRef.evaluate`, but " "unlike that method, :func:`!evaluate_forward_ref` also recursively evaluates " "forward references nested within the type hint." msgstr "" -#: library/typing.rst:3506 +#: library/typing.rst:3519 msgid "" "See the documentation for :meth:`annotationlib.ForwardRef.evaluate` for the " "meaning of the *owner*, *globals*, *locals*, *type_params*, and *format* " "parameters." msgstr "" -#: library/typing.rst:3513 +#: library/typing.rst:3531 msgid "" "A sentinel object used to indicate that a type parameter has no default " "value. For example:" msgstr "" -#: library/typing.rst:3516 +#: library/typing.rst:3534 msgid "" ">>> T = TypeVar(\"T\")\n" ">>> T.__default__ is typing.NoDefault\n" @@ -4823,17 +4828,17 @@ msgid "" "True" msgstr "" -#: library/typing.rst:3528 +#: library/typing.rst:3546 msgid "Constant" msgstr "" -#: library/typing.rst:3532 +#: library/typing.rst:3550 msgid "" "A special constant that is assumed to be ``True`` by 3rd party static type " "checkers. It's ``False`` at runtime." msgstr "" -#: library/typing.rst:3535 +#: library/typing.rst:3553 msgid "" "A module which is expensive to import, and which only contain types used for " "typing annotations, can be safely imported inside an ``if TYPE_CHECKING:`` " @@ -4845,7 +4850,7 @@ msgid "" "will be checked properly during such analysis." msgstr "" -#: library/typing.rst:3547 +#: library/typing.rst:3565 msgid "" "if TYPE_CHECKING:\n" " import expensive_mod\n" @@ -4854,7 +4859,7 @@ msgid "" " local_var: expensive_mod.AnotherType = other_fun()" msgstr "" -#: library/typing.rst:3553 +#: library/typing.rst:3571 msgid "" "If you occasionally need to examine type annotations at runtime which may " "contain undefined symbols, use :meth:`annotationlib.get_annotations` with a " @@ -4863,11 +4868,11 @@ msgid "" "raising :exc:`NameError`." msgstr "" -#: library/typing.rst:3566 +#: library/typing.rst:3584 msgid "Deprecated aliases" msgstr "" -#: library/typing.rst:3568 +#: library/typing.rst:3586 msgid "" "This module defines several deprecated aliases to pre-existing standard " "library classes. These were originally included in the :mod:`!typing` module " @@ -4876,7 +4881,7 @@ msgid "" "pre-existing classes were enhanced to support ``[]`` (see :pep:`585`)." msgstr "" -#: library/typing.rst:3575 +#: library/typing.rst:3593 msgid "" "The redundant types are deprecated as of Python 3.9. However, while the " "aliases may be removed at some point, removal of these aliases is not " @@ -4884,7 +4889,7 @@ msgid "" "the interpreter for these aliases." msgstr "" -#: library/typing.rst:3580 +#: library/typing.rst:3598 msgid "" "If at some point it is decided to remove these deprecated aliases, a " "deprecation warning will be issued by the interpreter for at least two " @@ -4892,38 +4897,38 @@ msgid "" "`!typing` module without deprecation warnings until at least Python 3.14." msgstr "" -#: library/typing.rst:3585 +#: library/typing.rst:3603 msgid "" "Type checkers are encouraged to flag uses of the deprecated types if the " "program they are checking targets a minimum Python version of 3.9 or newer." msgstr "" -#: library/typing.rst:3591 +#: library/typing.rst:3609 msgid "Aliases to built-in types" msgstr "" -#: library/typing.rst:3595 +#: library/typing.rst:3613 msgid "Deprecated alias to :class:`dict`." msgstr "" -#: library/typing.rst:3597 +#: library/typing.rst:3615 msgid "" "Note that to annotate arguments, it is preferred to use an abstract " "collection type such as :class:`~collections.abc.Mapping` rather than to " "use :class:`dict` or :class:`!typing.Dict`." msgstr "" -#: library/typing.rst:3601 +#: library/typing.rst:3619 msgid "" ":class:`builtins.dict ` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3607 +#: library/typing.rst:3625 msgid "Deprecated alias to :class:`list`." msgstr "" -#: library/typing.rst:3609 +#: library/typing.rst:3627 msgid "" "Note that to annotate arguments, it is preferred to use an abstract " "collection type such as :class:`~collections.abc.Sequence` or :class:" @@ -4931,136 +4936,136 @@ msgid "" "typing.List`." msgstr "" -#: library/typing.rst:3614 +#: library/typing.rst:3632 msgid "" ":class:`builtins.list ` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3620 +#: library/typing.rst:3638 msgid "Deprecated alias to :class:`builtins.set `." msgstr "" -#: library/typing.rst:3622 +#: library/typing.rst:3640 msgid "" "Note that to annotate arguments, it is preferred to use an abstract " "collection type such as :class:`collections.abc.Set` rather than to use :" "class:`set` or :class:`typing.Set`." msgstr "" -#: library/typing.rst:3626 +#: library/typing.rst:3644 msgid "" ":class:`builtins.set ` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3632 +#: library/typing.rst:3650 msgid "Deprecated alias to :class:`builtins.frozenset `." msgstr "" -#: library/typing.rst:3634 +#: library/typing.rst:3652 msgid "" ":class:`builtins.frozenset ` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3641 +#: library/typing.rst:3659 msgid "Deprecated alias for :class:`tuple`." msgstr "" -#: library/typing.rst:3643 +#: library/typing.rst:3661 msgid "" ":class:`tuple` and ``Tuple`` are special-cased in the type system; see :ref:" "`annotating-tuples` for more details." msgstr "" -#: library/typing.rst:3646 +#: library/typing.rst:3664 msgid "" ":class:`builtins.tuple ` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3652 +#: library/typing.rst:3670 msgid "Deprecated alias to :class:`type`." msgstr "" -#: library/typing.rst:3654 +#: library/typing.rst:3672 msgid "" "See :ref:`type-of-class-objects` for details on using :class:`type` or " "``typing.Type`` in type annotations." msgstr "" -#: library/typing.rst:3659 +#: library/typing.rst:3677 msgid "" ":class:`builtins.type ` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3666 +#: library/typing.rst:3684 msgid "Aliases to types in :mod:`collections`" msgstr "" -#: library/typing.rst:3670 +#: library/typing.rst:3688 msgid "Deprecated alias to :class:`collections.defaultdict`." msgstr "" -#: library/typing.rst:3674 +#: library/typing.rst:3692 msgid "" ":class:`collections.defaultdict` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3680 +#: library/typing.rst:3698 msgid "Deprecated alias to :class:`collections.OrderedDict`." msgstr "" -#: library/typing.rst:3684 +#: library/typing.rst:3702 msgid "" ":class:`collections.OrderedDict` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3690 +#: library/typing.rst:3708 msgid "Deprecated alias to :class:`collections.ChainMap`." msgstr "" -#: library/typing.rst:3694 +#: library/typing.rst:3712 msgid "" ":class:`collections.ChainMap` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3700 +#: library/typing.rst:3718 msgid "Deprecated alias to :class:`collections.Counter`." msgstr "" -#: library/typing.rst:3704 +#: library/typing.rst:3722 msgid "" ":class:`collections.Counter` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3710 +#: library/typing.rst:3728 msgid "Deprecated alias to :class:`collections.deque`." msgstr "" -#: library/typing.rst:3714 +#: library/typing.rst:3732 msgid "" ":class:`collections.deque` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3721 +#: library/typing.rst:3739 msgid "Aliases to other concrete types" msgstr "" -#: library/typing.rst:3726 +#: library/typing.rst:3744 msgid "" "Deprecated aliases corresponding to the return types from :func:`re.compile` " "and :func:`re.match`." msgstr "" -#: library/typing.rst:3729 +#: library/typing.rst:3747 msgid "" "These types (and the corresponding functions) are generic over :data:" "`AnyStr`. ``Pattern`` can be specialised as ``Pattern[str]`` or " @@ -5068,331 +5073,359 @@ msgid "" "``Match[bytes]``." msgstr "" -#: library/typing.rst:3734 +#: library/typing.rst:3752 msgid "" "Classes ``Pattern`` and ``Match`` from :mod:`re` now support ``[]``. See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3740 +#: library/typing.rst:3758 msgid "Deprecated alias for :class:`str`." msgstr "" -#: library/typing.rst:3742 +#: library/typing.rst:3760 msgid "" "``Text`` is provided to supply a forward compatible path for Python 2 code: " "in Python 2, ``Text`` is an alias for ``unicode``." msgstr "" -#: library/typing.rst:3746 +#: library/typing.rst:3764 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 "" -#: library/typing.rst:3749 +#: library/typing.rst:3767 msgid "" "def add_unicode_checkmark(text: Text) -> Text:\n" " return text + u' \\u2713'" msgstr "" -#: library/typing.rst:3754 +#: library/typing.rst:3772 msgid "" "Python 2 is no longer supported, and most type checkers also no longer " "support type checking Python 2 code. Removal of the alias is not currently " "planned, but users are encouraged to use :class:`str` instead of ``Text``." msgstr "" -#: library/typing.rst:3764 +#: library/typing.rst:3782 msgid "Aliases to container ABCs in :mod:`collections.abc`" msgstr "" -#: library/typing.rst:3768 +#: library/typing.rst:3786 msgid "Deprecated alias to :class:`collections.abc.Set`." msgstr "" -#: library/typing.rst:3770 +#: library/typing.rst:3788 msgid "" ":class:`collections.abc.Set` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3776 +#: library/typing.rst:3794 +msgid "Deprecated alias to :class:`collections.abc.ByteString`." +msgstr "" + +#: library/typing.rst:3796 +msgid "" +"Use ``isinstance(obj, collections.abc.Buffer)`` to test if ``obj`` " +"implements the :ref:`buffer protocol ` at runtime. For use in " +"type annotations, either use :class:`~collections.abc.Buffer` or a union " +"that explicitly specifies the types your code supports (e.g., ``bytes | " +"bytearray | memoryview``)." +msgstr "" + +#: library/typing.rst:3802 +msgid "" +":class:`!ByteString` was originally intended to be an abstract class that " +"would serve as a supertype of both :class:`bytes` and :class:`bytearray`. " +"However, since the ABC never had any methods, knowing that an object was an " +"instance of :class:`!ByteString` never actually told you anything useful " +"about the object. Other common buffer types such as :class:`memoryview` were " +"also never understood as subtypes of :class:`!ByteString` (either at runtime " +"or by static type checkers)." +msgstr "" + +#: library/typing.rst:3810 +msgid "See :pep:`PEP 688 <688#current-options>` for more details." +msgstr "" + +#: library/typing.rst:3816 msgid "Deprecated alias to :class:`collections.abc.Collection`." msgstr "" -#: library/typing.rst:3780 +#: library/typing.rst:3820 msgid "" ":class:`collections.abc.Collection` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3786 +#: library/typing.rst:3826 msgid "Deprecated alias to :class:`collections.abc.Container`." msgstr "" -#: library/typing.rst:3788 +#: library/typing.rst:3828 msgid "" ":class:`collections.abc.Container` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3794 +#: library/typing.rst:3834 msgid "Deprecated alias to :class:`collections.abc.ItemsView`." msgstr "" -#: library/typing.rst:3796 +#: library/typing.rst:3836 msgid "" ":class:`collections.abc.ItemsView` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3802 +#: library/typing.rst:3842 msgid "Deprecated alias to :class:`collections.abc.KeysView`." msgstr "" -#: library/typing.rst:3804 +#: library/typing.rst:3844 msgid "" ":class:`collections.abc.KeysView` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3810 +#: library/typing.rst:3850 msgid "Deprecated alias to :class:`collections.abc.Mapping`." msgstr "" -#: library/typing.rst:3812 +#: library/typing.rst:3852 msgid "" ":class:`collections.abc.Mapping` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3818 +#: library/typing.rst:3858 msgid "Deprecated alias to :class:`collections.abc.MappingView`." msgstr "" -#: library/typing.rst:3820 +#: library/typing.rst:3860 msgid "" ":class:`collections.abc.MappingView` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3826 +#: library/typing.rst:3866 msgid "Deprecated alias to :class:`collections.abc.MutableMapping`." msgstr "" -#: library/typing.rst:3828 +#: library/typing.rst:3868 msgid "" ":class:`collections.abc.MutableMapping` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3835 +#: library/typing.rst:3875 msgid "Deprecated alias to :class:`collections.abc.MutableSequence`." msgstr "" -#: library/typing.rst:3837 +#: library/typing.rst:3877 msgid "" ":class:`collections.abc.MutableSequence` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3844 +#: library/typing.rst:3884 msgid "Deprecated alias to :class:`collections.abc.MutableSet`." msgstr "" -#: library/typing.rst:3846 +#: library/typing.rst:3886 msgid "" ":class:`collections.abc.MutableSet` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3852 +#: library/typing.rst:3892 msgid "Deprecated alias to :class:`collections.abc.Sequence`." msgstr "" -#: library/typing.rst:3854 +#: library/typing.rst:3894 msgid "" ":class:`collections.abc.Sequence` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3860 +#: library/typing.rst:3900 msgid "Deprecated alias to :class:`collections.abc.ValuesView`." msgstr "" -#: library/typing.rst:3862 +#: library/typing.rst:3902 msgid "" ":class:`collections.abc.ValuesView` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3869 +#: library/typing.rst:3909 msgid "Aliases to asynchronous ABCs in :mod:`collections.abc`" msgstr "" -#: library/typing.rst:3873 +#: library/typing.rst:3913 msgid "Deprecated alias to :class:`collections.abc.Coroutine`." msgstr "" -#: library/typing.rst:3875 +#: library/typing.rst:3915 msgid "" "See :ref:`annotating-generators-and-coroutines` for details on using :class:" "`collections.abc.Coroutine` and ``typing.Coroutine`` in type annotations." msgstr "" -#: library/typing.rst:3881 +#: library/typing.rst:3921 msgid "" ":class:`collections.abc.Coroutine` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3887 +#: library/typing.rst:3927 msgid "Deprecated alias to :class:`collections.abc.AsyncGenerator`." msgstr "" -#: library/typing.rst:3889 +#: library/typing.rst:3929 msgid "" "See :ref:`annotating-generators-and-coroutines` for details on using :class:" "`collections.abc.AsyncGenerator` and ``typing.AsyncGenerator`` in type " "annotations." msgstr "" -#: library/typing.rst:3895 +#: library/typing.rst:3935 msgid "" ":class:`collections.abc.AsyncGenerator` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3900 +#: library/typing.rst:3940 msgid "The ``SendType`` parameter now has a default." msgstr "" -#: library/typing.rst:3905 +#: library/typing.rst:3945 msgid "Deprecated alias to :class:`collections.abc.AsyncIterable`." msgstr "" -#: library/typing.rst:3909 +#: library/typing.rst:3949 msgid "" ":class:`collections.abc.AsyncIterable` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3915 +#: library/typing.rst:3955 msgid "Deprecated alias to :class:`collections.abc.AsyncIterator`." msgstr "" -#: library/typing.rst:3919 +#: library/typing.rst:3959 msgid "" ":class:`collections.abc.AsyncIterator` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3925 +#: library/typing.rst:3965 msgid "Deprecated alias to :class:`collections.abc.Awaitable`." msgstr "" -#: library/typing.rst:3929 +#: library/typing.rst:3969 msgid "" ":class:`collections.abc.Awaitable` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3936 +#: library/typing.rst:3976 msgid "Aliases to other ABCs in :mod:`collections.abc`" msgstr "" -#: library/typing.rst:3940 +#: library/typing.rst:3980 msgid "Deprecated alias to :class:`collections.abc.Iterable`." msgstr "" -#: library/typing.rst:3942 +#: library/typing.rst:3982 msgid "" ":class:`collections.abc.Iterable` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3948 +#: library/typing.rst:3988 msgid "Deprecated alias to :class:`collections.abc.Iterator`." msgstr "" -#: library/typing.rst:3950 +#: library/typing.rst:3990 msgid "" ":class:`collections.abc.Iterator` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3956 +#: library/typing.rst:3996 msgid "Deprecated alias to :class:`collections.abc.Callable`." msgstr "" -#: library/typing.rst:3958 +#: library/typing.rst:3998 msgid "" "See :ref:`annotating-callables` for details on how to use :class:" "`collections.abc.Callable` and ``typing.Callable`` in type annotations." msgstr "" -#: library/typing.rst:3961 +#: library/typing.rst:4001 msgid "" ":class:`collections.abc.Callable` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3971 +#: library/typing.rst:4011 msgid "Deprecated alias to :class:`collections.abc.Generator`." msgstr "" -#: library/typing.rst:3973 +#: library/typing.rst:4013 msgid "" "See :ref:`annotating-generators-and-coroutines` for details on using :class:" "`collections.abc.Generator` and ``typing.Generator`` in type annotations." msgstr "" -#: library/typing.rst:3977 +#: library/typing.rst:4017 msgid "" ":class:`collections.abc.Generator` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3981 +#: library/typing.rst:4021 msgid "Default values for the send and return types were added." msgstr "" -#: library/typing.rst:3986 +#: library/typing.rst:4026 msgid "Deprecated alias to :class:`collections.abc.Hashable`." msgstr "" -#: library/typing.rst:3988 +#: library/typing.rst:4028 msgid "Use :class:`collections.abc.Hashable` directly instead." msgstr "" -#: library/typing.rst:3993 +#: library/typing.rst:4033 msgid "Deprecated alias to :class:`collections.abc.Reversible`." msgstr "" -#: library/typing.rst:3995 +#: library/typing.rst:4035 msgid "" ":class:`collections.abc.Reversible` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:4001 +#: library/typing.rst:4041 msgid "Deprecated alias to :class:`collections.abc.Sized`." msgstr "" -#: library/typing.rst:4003 +#: library/typing.rst:4043 msgid "Use :class:`collections.abc.Sized` directly instead." msgstr "" -#: library/typing.rst:4009 +#: library/typing.rst:4049 msgid "Aliases to :mod:`contextlib` ABCs" msgstr "" -#: library/typing.rst:4013 +#: library/typing.rst:4053 msgid "Deprecated alias to :class:`contextlib.AbstractContextManager`." msgstr "" -#: library/typing.rst:4015 +#: library/typing.rst:4055 msgid "" "The first type parameter, ``T_co``, represents the type returned by the :" "meth:`~object.__enter__` method. The optional second type parameter, " @@ -5400,21 +5433,21 @@ msgid "" "returned by the :meth:`~object.__exit__` method." msgstr "" -#: library/typing.rst:4022 +#: library/typing.rst:4062 msgid "" ":class:`contextlib.AbstractContextManager` now supports subscripting " "(``[]``). See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:4027 +#: library/typing.rst:4067 msgid "Added the optional second type parameter, ``ExitT_co``." msgstr "" -#: library/typing.rst:4032 +#: library/typing.rst:4072 msgid "Deprecated alias to :class:`contextlib.AbstractAsyncContextManager`." msgstr "" -#: library/typing.rst:4034 +#: library/typing.rst:4074 msgid "" "The first type parameter, ``T_co``, represents the type returned by the :" "meth:`~object.__aenter__` method. The optional second type parameter, " @@ -5422,21 +5455,21 @@ msgid "" "returned by the :meth:`~object.__aexit__` method." msgstr "" -#: library/typing.rst:4041 +#: library/typing.rst:4081 msgid "" ":class:`contextlib.AbstractAsyncContextManager` now supports subscripting " "(``[]``). See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:4046 +#: library/typing.rst:4086 msgid "Added the optional second type parameter, ``AExitT_co``." msgstr "" -#: library/typing.rst:4050 +#: library/typing.rst:4090 msgid "Deprecation Timeline of Major Features" msgstr "" -#: library/typing.rst:4052 +#: library/typing.rst:4092 msgid "" "Certain features in ``typing`` are deprecated and may be removed in a future " "version of Python. The following table summarizes major deprecations for " @@ -5444,98 +5477,118 @@ msgid "" "listed." msgstr "" -#: library/typing.rst:4059 +#: library/typing.rst:4099 msgid "Feature" msgstr "" -#: library/typing.rst:4060 +#: library/typing.rst:4100 msgid "Deprecated in" msgstr "" -#: library/typing.rst:4061 +#: library/typing.rst:4101 msgid "Projected removal" msgstr "" -#: library/typing.rst:4062 +#: library/typing.rst:4102 msgid "PEP/issue" msgstr "" -#: library/typing.rst:4063 +#: library/typing.rst:4103 msgid "``typing`` versions of standard collections" msgstr "" -#: library/typing.rst:4064 +#: library/typing.rst:4108 msgid "3.9" msgstr "" -#: library/typing.rst:4065 +#: library/typing.rst:4105 msgid "Undecided (see :ref:`deprecated-aliases` for more information)" msgstr "" -#: library/typing.rst:4066 +#: library/typing.rst:4106 msgid ":pep:`585`" msgstr "" -#: library/typing.rst:4067 +#: library/typing.rst:4107 +msgid ":class:`typing.ByteString`" +msgstr "" + +#: library/typing.rst:4109 +msgid "3.17" +msgstr "" + +#: library/typing.rst:4110 +msgid ":gh:`91896`" +msgstr "" + +#: library/typing.rst:4111 msgid ":data:`typing.Text`" msgstr "" -#: library/typing.rst:4068 +#: library/typing.rst:4112 msgid "3.11" msgstr "" -#: library/typing.rst:4073 library/typing.rst:4077 +#: library/typing.rst:4117 library/typing.rst:4121 msgid "Undecided" msgstr "" -#: library/typing.rst:4070 +#: library/typing.rst:4114 msgid ":gh:`92332`" msgstr "" -#: library/typing.rst:4071 +#: library/typing.rst:4115 msgid ":class:`typing.Hashable` and :class:`typing.Sized`" msgstr "" -#: library/typing.rst:4076 +#: library/typing.rst:4120 msgid "3.12" msgstr "" -#: library/typing.rst:4074 +#: library/typing.rst:4118 msgid ":gh:`94309`" msgstr "" -#: library/typing.rst:4075 +#: library/typing.rst:4119 msgid ":data:`typing.TypeAlias`" msgstr "" -#: library/typing.rst:4078 +#: library/typing.rst:4122 msgid ":pep:`695`" msgstr "" -#: library/typing.rst:4079 +#: library/typing.rst:4123 msgid ":func:`@typing.no_type_check_decorator `" msgstr "" -#: library/typing.rst:4084 +#: library/typing.rst:4128 msgid "3.13" msgstr "" -#: library/typing.rst:4081 +#: library/typing.rst:4125 msgid "3.15" msgstr "" -#: library/typing.rst:4082 +#: library/typing.rst:4126 msgid ":gh:`106309`" msgstr "" -#: library/typing.rst:4083 +#: library/typing.rst:4127 msgid ":data:`typing.AnyStr`" msgstr "" -#: library/typing.rst:4085 +#: library/typing.rst:4129 msgid "3.18" msgstr "" -#: library/typing.rst:4086 +#: library/typing.rst:4130 msgid ":gh:`105578`" msgstr "" + +#: library/typing.rst:380 library/typing.rst:1170 +msgid "..." +msgstr "" + +#: library/typing.rst:380 library/typing.rst:1170 +msgid "ellipsis literal" +msgstr "" diff --git a/library/unicodedata.po b/library/unicodedata.po index 651d81e2..0fdd582f 100644 --- a/library/unicodedata.po +++ b/library/unicodedata.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -36,84 +36,177 @@ msgid "" "tr44/>`_. It defines the following functions:" msgstr "" -#: library/unicodedata.rst:31 +#: library/unicodedata.rst:30 +msgid "" +"The :ref:`unicode-howto` for more information about Unicode and how to use " +"this module." +msgstr "" + +#: library/unicodedata.rst:36 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." +"return the corresponding character. If not found, :exc:`KeyError` is " +"raised. For example::" +msgstr "" + +#: library/unicodedata.rst:40 +msgid "" +">>> unicodedata.lookup('LEFT CURLY BRACKET')\n" +"'{'" +msgstr "" + +#: library/unicodedata.rst:43 +msgid "" +"The characters returned by this function are the same as those produced by " +"``\\N`` escape sequence in string literals. For example::" +msgstr "" + +#: library/unicodedata.rst:46 +msgid "" +">>> unicodedata.lookup('MIDDLE DOT') == '\\N{MIDDLE DOT}'\n" +"True" msgstr "" -#: library/unicodedata.rst:34 +#: library/unicodedata.rst:49 msgid "Support for name aliases [#]_ and named sequences [#]_ has been added." msgstr "" -#: library/unicodedata.rst:40 +#: library/unicodedata.rst:55 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." +"raised. For example::" +msgstr "" + +#: library/unicodedata.rst:59 +msgid "" +">>> unicodedata.name('½')\n" +"'VULGAR FRACTION ONE HALF'\n" +">>> unicodedata.name('\\uFFFF', 'fallback')\n" +"'fallback'" msgstr "" -#: library/unicodedata.rst:47 +#: library/unicodedata.rst:67 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." +"`ValueError` is raised. For example::" +msgstr "" + +#: library/unicodedata.rst:71 +msgid "" +">>> unicodedata.decimal('\\N{ARABIC-INDIC DIGIT NINE}')\n" +"9\n" +">>> unicodedata.decimal('\\N{SUPERSCRIPT NINE}', -1)\n" +"-1" msgstr "" -#: library/unicodedata.rst:54 +#: library/unicodedata.rst:79 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." +"`ValueError` is raised::" +msgstr "" + +#: library/unicodedata.rst:83 +msgid "" +">>> unicodedata.digit('\\N{SUPERSCRIPT NINE}')\n" +"9" msgstr "" -#: library/unicodedata.rst:61 +#: library/unicodedata.rst:89 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." +"`ValueError` is raised::" +msgstr "" + +#: library/unicodedata.rst:93 +msgid "" +">>> unicodedata.numeric('½')\n" +"0.5" msgstr "" -#: library/unicodedata.rst:68 -msgid "Returns the general category assigned to the character *chr* as string." +#: library/unicodedata.rst:99 +msgid "" +"Returns the general category assigned to the character *chr* as string. " +"General category names consist of two letters. See the `General Category " +"Values section of the Unicode Character Database documentation `_ for a list " +"of category codes. For example::" msgstr "" -#: library/unicodedata.rst:74 +#: library/unicodedata.rst:105 +msgid "" +">>> unicodedata.category('A') # 'L'etter, 'u'ppercase\n" +"'Lu'" +msgstr "" + +#: library/unicodedata.rst:111 msgid "" "Returns the bidirectional class assigned to the character *chr* as string. " -"If no such value is defined, an empty string is returned." +"If no such value is defined, an empty string is returned. See the " +"`Bidirectional Class Values section of the Unicode Character Database " +"`_ " +"documentation for a list of bidirectional codes. For example::" msgstr "" -#: library/unicodedata.rst:80 +#: library/unicodedata.rst:117 +msgid "" +">>> unicodedata.bidirectional('\\N{ARABIC-INDIC DIGIT SEVEN}') # 'A'rabic, " +"'N'umber\n" +"'AN'" +msgstr "" + +#: library/unicodedata.rst:123 msgid "" "Returns the canonical combining class assigned to the character *chr* as " -"integer. Returns ``0`` if no combining class is defined." +"integer. Returns ``0`` if no combining class is defined. See the `Canonical " +"Combining Class Values section of the Unicode Character Database `_ for more information." msgstr "" -#: library/unicodedata.rst:86 -msgid "Returns the east asian width assigned to the character *chr* as string." +#: library/unicodedata.rst:132 +msgid "" +"Returns the east asian width assigned to the character *chr* as string. For " +"a list of widths and or more information, see the `Unicode Standard Annex " +"#11 `_." msgstr "" -#: library/unicodedata.rst:92 +#: library/unicodedata.rst:139 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." +"character in bidirectional text, ``0`` otherwise. For example::" msgstr "" -#: library/unicodedata.rst:99 +#: library/unicodedata.rst:143 +msgid "" +">>> unicodedata.mirrored('>')\n" +"1" +msgstr "" + +#: library/unicodedata.rst:149 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." +"as string. An empty string is returned in case no such mapping is defined. " +"For example::" +msgstr "" + +#: library/unicodedata.rst:153 +msgid "" +">>> unicodedata.decomposition('Ã')\n" +"'0041 0303'" msgstr "" -#: library/unicodedata.rst:106 +#: library/unicodedata.rst:159 msgid "" "Return the normal form *form* for the Unicode string *unistr*. Valid values " "for *form* are 'NFC', 'NFKC', 'NFD', and 'NFKD'." msgstr "" -#: library/unicodedata.rst:109 +#: library/unicodedata.rst:162 msgid "" "The Unicode standard defines various normalization forms of a Unicode " "string, based on the definition of canonical equivalence and compatibility " @@ -123,7 +216,7 @@ msgid "" "(COMBINING CEDILLA)." msgstr "" -#: library/unicodedata.rst:115 +#: library/unicodedata.rst:168 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 " @@ -132,65 +225,61 @@ msgid "" "characters again." msgstr "" -#: library/unicodedata.rst:120 +#: library/unicodedata.rst:173 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)." +"character sets (for example, gb2312)." msgstr "" -#: library/unicodedata.rst:127 +#: library/unicodedata.rst:180 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." +"The normal form KD (NFKD) will apply the compatibility decomposition, that " +"is, replace all compatibility characters with their equivalents. The normal " +"form KC (NFKC) first applies the compatibility decomposition, followed by " +"the canonical composition." msgstr "" -#: library/unicodedata.rst:132 +#: library/unicodedata.rst:185 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 "" -#: library/unicodedata.rst:138 +#: library/unicodedata.rst:192 msgid "" "Return whether the Unicode string *unistr* is in the normal form *form*. " "Valid values for *form* are 'NFC', 'NFKC', 'NFD', and 'NFKD'." msgstr "" -#: library/unicodedata.rst:144 +#: library/unicodedata.rst:198 msgid "In addition, the module exposes the following constant:" msgstr "" -#: library/unicodedata.rst:148 +#: library/unicodedata.rst:202 msgid "The version of the Unicode database used in this module." msgstr "" -#: library/unicodedata.rst:153 +#: library/unicodedata.rst:207 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 "" -#: library/unicodedata.rst:157 -msgid "Examples:" -msgstr "" - -#: library/unicodedata.rst:177 +#: library/unicodedata.rst:213 msgid "Footnotes" msgstr "" -#: library/unicodedata.rst:178 +#: library/unicodedata.rst:214 msgid "https://www.unicode.org/Public/16.0.0/ucd/NameAliases.txt" msgstr "" -#: library/unicodedata.rst:180 +#: library/unicodedata.rst:216 msgid "https://www.unicode.org/Public/16.0.0/ucd/NamedSequences.txt" msgstr "" diff --git a/library/unittest.mock-examples.po b/library/unittest.mock-examples.po index bbbb18d1..938dff3e 100644 --- a/library/unittest.mock-examples.po +++ b/library/unittest.mock-examples.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -615,18 +615,18 @@ msgstr "" #: library/unittest.mock-examples.rst:603 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:`datetime." +"For some tests, you may want to mock out a call to :meth:`datetime.date." +"today` to return a known date, but don't want to prevent the code under test " +"from creating new date objects. Unfortunately :class:`datetime.date` is " +"written in C, so you cannot just monkey-patch out the static :meth:`datetime." "date.today` method." msgstr "" #: library/unittest.mock-examples.rst:608 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)." +"Instead, you can effectively wrap the date class with a mock, while passing " +"through calls to the constructor to the real class (and returning real " +"instances)." msgstr "" #: library/unittest.mock-examples.rst:612 @@ -804,19 +804,19 @@ msgstr "" #: library/unittest.mock-examples.rst:746 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." +"Sometimes a test needs to patch an *unbound method*, which means patching " +"the method on the class rather than on the instance. In order to make " +"assertions about which objects were calling this particular method, you need " +"to pass ``self`` as the first argument. 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 "" -#: library/unittest.mock-examples.rst:757 +#: library/unittest.mock-examples.rst:756 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 " @@ -825,33 +825,33 @@ msgid "" "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:" +"exactly what was needed:" msgstr "" -#: library/unittest.mock-examples.rst:778 +#: library/unittest.mock-examples.rst:777 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 "" -#: library/unittest.mock-examples.rst:783 +#: library/unittest.mock-examples.rst:782 msgid "Checking multiple calls with mock" msgstr "" -#: library/unittest.mock-examples.rst:785 +#: library/unittest.mock-examples.rst:784 msgid "" "mock has a nice API for making assertions about how your mock objects are " "used." msgstr "" -#: library/unittest.mock-examples.rst:792 +#: library/unittest.mock-examples.rst:791 msgid "" "If your mock is only being called once you can use the :meth:`~Mock." "assert_called_once_with` method that also asserts that the :attr:`~Mock." "call_count` is one." msgstr "" -#: library/unittest.mock-examples.rst:804 +#: library/unittest.mock-examples.rst:803 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 " @@ -859,7 +859,7 @@ msgid "" "attr:`~Mock.call_args_list`:" msgstr "" -#: library/unittest.mock-examples.rst:816 +#: library/unittest.mock-examples.rst:815 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 " @@ -867,11 +867,11 @@ msgid "" "``call_args_list``:" msgstr "" -#: library/unittest.mock-examples.rst:826 +#: library/unittest.mock-examples.rst:825 msgid "Coping with mutable arguments" msgstr "" -#: library/unittest.mock-examples.rst:828 +#: library/unittest.mock-examples.rst:827 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 " @@ -880,13 +880,13 @@ msgid "" "when the mock was called." msgstr "" -#: library/unittest.mock-examples.rst:833 +#: library/unittest.mock-examples.rst:832 msgid "" "Here's some example code that shows the problem. Imagine the following " "functions defined in 'mymodule'::" msgstr "" -#: library/unittest.mock-examples.rst:836 +#: library/unittest.mock-examples.rst:835 msgid "" "def frob(val):\n" " pass\n" @@ -897,13 +897,13 @@ msgid "" " val.clear()" msgstr "" -#: library/unittest.mock-examples.rst:844 +#: library/unittest.mock-examples.rst:843 msgid "" "When we try to test that ``grob`` calls ``frob`` with the correct argument " "look what happens::" msgstr "" -#: library/unittest.mock-examples.rst:847 +#: library/unittest.mock-examples.rst:846 msgid "" ">>> with patch('mymodule.frob') as mock_frob:\n" "... val = {6}\n" @@ -918,14 +918,14 @@ msgid "" "Called with: ((set(),), {})" msgstr "" -#: library/unittest.mock-examples.rst:859 +#: library/unittest.mock-examples.rst:858 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 "" -#: library/unittest.mock-examples.rst:863 +#: library/unittest.mock-examples.rst:862 msgid "" "Here's one solution that uses the :attr:`~Mock.side_effect` functionality. " "If you provide a ``side_effect`` function for a mock then ``side_effect`` " @@ -936,7 +936,7 @@ msgid "" "me. ::" msgstr "" -#: library/unittest.mock-examples.rst:871 +#: library/unittest.mock-examples.rst:870 msgid "" ">>> from copy import deepcopy\n" ">>> from unittest.mock import Mock, patch, DEFAULT\n" @@ -960,28 +960,28 @@ msgid "" "call({6})" msgstr "" -#: library/unittest.mock-examples.rst:892 +#: library/unittest.mock-examples.rst:891 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 "" -#: library/unittest.mock-examples.rst:898 +#: library/unittest.mock-examples.rst:897 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 "" -#: library/unittest.mock-examples.rst:912 +#: library/unittest.mock-examples.rst:911 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 "" -#: library/unittest.mock-examples.rst:937 +#: library/unittest.mock-examples.rst:936 msgid "" "When you subclass ``Mock`` or ``MagicMock`` all dynamically created " "attributes, and the ``return_value`` will use your subclass automatically. " @@ -989,18 +989,18 @@ msgid "" "``CopyingMock``." msgstr "" -#: library/unittest.mock-examples.rst:943 +#: library/unittest.mock-examples.rst:942 msgid "Nesting Patches" msgstr "" -#: library/unittest.mock-examples.rst:945 +#: library/unittest.mock-examples.rst:944 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 "" -#: library/unittest.mock-examples.rst:949 +#: library/unittest.mock-examples.rst:948 msgid "" ">>> class MyTest(unittest.TestCase):\n" "...\n" @@ -1017,7 +1017,7 @@ msgid "" ">>> assert mymodule.Foo is original" msgstr "" -#: library/unittest.mock-examples.rst:963 +#: library/unittest.mock-examples.rst:962 msgid "" "With unittest ``cleanup`` functions and the :ref:`start-and-stop` we can " "achieve the same effect without the nested indentation. A simple helper " @@ -1025,7 +1025,7 @@ msgid "" "mock for us::" msgstr "" -#: library/unittest.mock-examples.rst:968 +#: library/unittest.mock-examples.rst:967 msgid "" ">>> class MyTest(unittest.TestCase):\n" "...\n" @@ -1049,24 +1049,24 @@ msgid "" ">>> assert mymodule.Foo is original" msgstr "" -#: library/unittest.mock-examples.rst:991 +#: library/unittest.mock-examples.rst:990 msgid "Mocking a dictionary with MagicMock" msgstr "" -#: library/unittest.mock-examples.rst:993 +#: library/unittest.mock-examples.rst:992 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 "" -#: library/unittest.mock-examples.rst:996 +#: library/unittest.mock-examples.rst:995 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 "" -#: library/unittest.mock-examples.rst:1000 +#: library/unittest.mock-examples.rst:999 msgid "" "When the :meth:`~object.__getitem__` and :meth:`~object.__setitem__` methods " "of our ``MagicMock`` are called (normal dictionary access) then " @@ -1074,49 +1074,49 @@ msgid "" "the value too). We can also control what is returned." msgstr "" -#: library/unittest.mock-examples.rst:1005 +#: library/unittest.mock-examples.rst:1004 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 "" -#: library/unittest.mock-examples.rst:1021 +#: library/unittest.mock-examples.rst:1020 msgid "" "An alternative to using ``MagicMock`` is to use ``Mock`` and *only* provide " "the magic methods you specifically want:" msgstr "" -#: library/unittest.mock-examples.rst:1028 +#: library/unittest.mock-examples.rst:1027 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 "" -#: library/unittest.mock-examples.rst:1036 +#: library/unittest.mock-examples.rst:1035 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 "" -#: library/unittest.mock-examples.rst:1055 +#: library/unittest.mock-examples.rst:1054 msgid "" "After it has been used you can make assertions about the access using the " "normal mock methods and attributes:" msgstr "" -#: library/unittest.mock-examples.rst:1067 +#: library/unittest.mock-examples.rst:1066 msgid "Mock subclasses and their attributes" msgstr "" -#: library/unittest.mock-examples.rst:1069 +#: library/unittest.mock-examples.rst:1068 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 "" -#: library/unittest.mock-examples.rst:1085 +#: library/unittest.mock-examples.rst:1084 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. " @@ -1126,7 +1126,7 @@ msgid "" "mock of instances of your subclass." msgstr "" -#: library/unittest.mock-examples.rst:1101 +#: library/unittest.mock-examples.rst:1100 msgid "" "Sometimes this is inconvenient. For example, `one user `_ is subclassing mock to created a `Twisted " @@ -1134,7 +1134,7 @@ msgid "" "html>`_. Having this applied to attributes too actually causes errors." msgstr "" -#: library/unittest.mock-examples.rst:1107 +#: library/unittest.mock-examples.rst:1106 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 " @@ -1143,25 +1143,25 @@ msgid "" "are then passed onto the mock constructor:" msgstr "" -#: library/unittest.mock-examples.rst:1124 +#: library/unittest.mock-examples.rst:1123 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 "" -#: library/unittest.mock-examples.rst:1130 +#: library/unittest.mock-examples.rst:1129 msgid "Mocking imports with patch.dict" msgstr "" -#: library/unittest.mock-examples.rst:1132 +#: library/unittest.mock-examples.rst:1131 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 "" -#: library/unittest.mock-examples.rst:1136 +#: library/unittest.mock-examples.rst:1135 msgid "" "Generally local imports are to be avoided. They are sometimes done to " "prevent circular dependencies, for which there is *usually* a much better " @@ -1171,7 +1171,7 @@ msgid "" "attribute and only do the import on first use)." msgstr "" -#: library/unittest.mock-examples.rst:1143 +#: library/unittest.mock-examples.rst:1142 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` " @@ -1181,7 +1181,7 @@ msgid "" "back. This need not be the case however." msgstr "" -#: library/unittest.mock-examples.rst:1150 +#: library/unittest.mock-examples.rst:1149 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 " @@ -1190,29 +1190,29 @@ msgid "" "whatever was there previously will be restored safely." msgstr "" -#: library/unittest.mock-examples.rst:1156 +#: library/unittest.mock-examples.rst:1155 msgid "Here's an example that mocks out the 'fooble' module." msgstr "" -#: library/unittest.mock-examples.rst:1168 +#: library/unittest.mock-examples.rst:1167 msgid "" "As you can see the ``import fooble`` succeeds, but on exit there is no " "'fooble' left in :data:`sys.modules`." msgstr "" -#: library/unittest.mock-examples.rst:1171 +#: library/unittest.mock-examples.rst:1170 msgid "This also works for the ``from module import name`` form:" msgstr "" -#: library/unittest.mock-examples.rst:1181 +#: library/unittest.mock-examples.rst:1180 msgid "With slightly more work you can also mock package imports:" msgstr "" -#: library/unittest.mock-examples.rst:1194 +#: library/unittest.mock-examples.rst:1193 msgid "Tracking order of calls and less verbose call assertions" msgstr "" -#: library/unittest.mock-examples.rst:1196 +#: library/unittest.mock-examples.rst:1195 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 " @@ -1220,7 +1220,7 @@ msgid "" "however we can use :attr:`~Mock.mock_calls` to achieve the same effect." msgstr "" -#: library/unittest.mock-examples.rst:1201 +#: library/unittest.mock-examples.rst:1200 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 " @@ -1228,20 +1228,20 @@ msgid "" "recorded, in order, in the ``mock_calls`` of the parent:" msgstr "" -#: library/unittest.mock-examples.rst:1218 +#: library/unittest.mock-examples.rst:1217 msgid "" "We can then assert about the calls, including the order, by comparing with " "the ``mock_calls`` attribute on the manager mock:" msgstr "" -#: library/unittest.mock-examples.rst:1225 +#: library/unittest.mock-examples.rst:1224 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 "" -#: library/unittest.mock-examples.rst:1229 +#: library/unittest.mock-examples.rst:1228 msgid "" ">>> manager = MagicMock()\n" ">>> with patch('mymodule.Class1') as MockClass1:\n" @@ -1259,7 +1259,7 @@ msgid "" "call.MockClass2().bar()]" msgstr "" -#: library/unittest.mock-examples.rst:1244 +#: library/unittest.mock-examples.rst:1243 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." @@ -1268,13 +1268,13 @@ msgid "" "mock_calls` then the assert succeeds." msgstr "" -#: library/unittest.mock-examples.rst:1258 +#: library/unittest.mock-examples.rst:1257 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 "" -#: library/unittest.mock-examples.rst:1261 +#: library/unittest.mock-examples.rst:1260 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 " @@ -1282,17 +1282,17 @@ msgid "" "``assert_has_calls``:" msgstr "" -#: library/unittest.mock-examples.rst:1273 +#: library/unittest.mock-examples.rst:1272 msgid "More complex argument matching" msgstr "" -#: library/unittest.mock-examples.rst:1275 +#: library/unittest.mock-examples.rst:1274 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 "" -#: library/unittest.mock-examples.rst:1278 +#: library/unittest.mock-examples.rst:1277 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 " @@ -1302,28 +1302,28 @@ msgid "" "attributes for us." msgstr "" -#: library/unittest.mock-examples.rst:1285 +#: library/unittest.mock-examples.rst:1284 msgid "" "You can see in this example how a 'standard' call to ``assert_called_with`` " "isn't sufficient:" msgstr "" -#: library/unittest.mock-examples.rst:1301 +#: library/unittest.mock-examples.rst:1300 msgid "" "A comparison function for our ``Foo`` class might look something like this:" msgstr "" -#: library/unittest.mock-examples.rst:1313 +#: library/unittest.mock-examples.rst:1312 msgid "" "And a matcher object that can use comparison functions like this for its " "equality operation would look something like this:" msgstr "" -#: library/unittest.mock-examples.rst:1324 +#: library/unittest.mock-examples.rst:1323 msgid "Putting all this together:" msgstr "" -#: library/unittest.mock-examples.rst:1329 +#: library/unittest.mock-examples.rst:1328 msgid "" "The ``Matcher`` is instantiated with our compare function and the ``Foo`` " "object we want to compare against. In ``assert_called_with`` the ``Matcher`` " @@ -1333,13 +1333,13 @@ msgid "" "raised:" msgstr "" -#: library/unittest.mock-examples.rst:1342 +#: library/unittest.mock-examples.rst:1341 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 "" -#: library/unittest.mock-examples.rst:1345 +#: library/unittest.mock-examples.rst:1344 msgid "" "As of version 1.5, the Python testing library `PyHamcrest `_ provides similar functionality, that may be " diff --git a/library/unittest.mock.po b/library/unittest.mock.po index 5d0f0329..b6552361 100644 --- a/library/unittest.mock.po +++ b/library/unittest.mock.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -572,9 +572,9 @@ 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, which can also be accessed through the ``args`` property, is " -"any ordered arguments the mock was called with (or an empty tuple) and the " -"second member, which can also be accessed through the ``kwargs`` property, " -"is any keyword arguments (or an empty dictionary)." +"any positional arguments the mock was called with (or an empty tuple) and " +"the second member, which can also be accessed through the ``kwargs`` " +"property, is any keyword arguments (or an empty dictionary)." msgstr "" #: library/unittest.mock.rst:672 diff --git a/library/unittest.po b/library/unittest.po index 32900ad1..2e96cb5e 100644 --- a/library/unittest.po +++ b/library/unittest.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -676,7 +676,7 @@ 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 " +"`~TestCase.tearDown`, and :meth:`!TestCase.__init__` will be called once per " "test." msgstr "" @@ -805,9 +805,9 @@ msgstr "" #: library/unittest.rst:520 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." +"`doctest` module. If so, :mod:`doctest` provides a :class:`~doctest." +"DocTestSuite` class that can automatically build :class:`unittest.TestSuite` " +"instances from the existing :mod:`doctest`\\ -based tests." msgstr "" #: library/unittest.rst:529 @@ -1534,8 +1534,8 @@ msgstr "" #: library/unittest.rst:1025 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 " +"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 "" @@ -1553,7 +1553,7 @@ msgid "Added the ability to use :meth:`assertRaises` as a context manager." msgstr "" #: library/unittest.rst:1038 -msgid "Added the :attr:`exception` attribute." +msgid "Added the :attr:`!exception` attribute." msgstr "" #: library/unittest.rst:1067 library/unittest.rst:1131 @@ -1622,10 +1622,10 @@ msgstr "" #: library/unittest.rst:1091 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::" +"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 "" #: library/unittest.rst:1097 @@ -2075,7 +2075,7 @@ msgstr "" #: library/unittest.rst:1433 msgid "" -"Fails if either of *first* or *second* does not have a :meth:`set." +"Fails if either of *first* or *second* does not have a :meth:`~frozenset." "difference` method." msgstr "" @@ -2286,17 +2286,17 @@ msgstr "" #: library/unittest.rst:1641 msgid "" "Method called to prepare the test fixture. This is called after :meth:" -"`setUp`. 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." +"`TestCase.setUp`. 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 "" #: library/unittest.rst:1650 msgid "" "Method called immediately after the test method has been called and the " -"result recorded. This is called before :meth:`tearDown`. This is called " -"even if the test method raised an exception, so the implementation in " +"result recorded. This is called before :meth:`~TestCase.tearDown`. 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 " @@ -2322,9 +2322,9 @@ msgid "" "Sets up a new event loop to 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. At the end of the test all the tasks in the event loop are " -"cancelled." +"`~TestCase.defaultTestResult` method) and used. The result object is " +"returned to :meth:`run`'s caller. At the end of the test all the tasks in " +"the event loop are cancelled." msgstr "" #: library/unittest.rst:1685 @@ -2462,7 +2462,7 @@ msgid "" "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." +"overrides :meth:`!TestSuite._removeTestAtIndex` to preserve test references." msgstr "" #: library/unittest.rst:1804 @@ -2476,13 +2476,14 @@ msgstr "" 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`." +"by overriding :meth:`!TestSuite._removeTestAtIndex`." msgstr "" #: library/unittest.rst:1814 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." +"is invoked by a :class:`!TestRunner` rather than by the end-user test " +"harness." msgstr "" #: library/unittest.rst:1819 @@ -2517,15 +2518,15 @@ msgstr "" #: library/unittest.rst:1848 msgid "" "Return a suite of all test cases contained in the :class:`TestCase`\\ -" -"derived :class:`testCaseClass`." +"derived :class:`!testCaseClass`." msgstr "" #: library/unittest.rst:1851 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 " +"``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 "" @@ -2583,15 +2584,15 @@ msgstr "" #: library/unittest.rst:1901 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." +"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 "" #: library/unittest.rst:1911 @@ -2779,8 +2780,8 @@ msgstr "" 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." +"purposes; a :class:`TestResult` instance is returned by the :meth:`!" +"TestRunner.run` method for this purpose." msgstr "" #: library/unittest.rst:2056 @@ -2871,8 +2872,8 @@ msgstr "" #: library/unittest.rst:2138 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 " +"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 "" @@ -2880,7 +2881,7 @@ msgstr "" 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` " +"keyboard. Interactive tools which provide :class:`!TestRunner` " "implementations can use this in a similar manner." msgstr "" @@ -3302,9 +3303,9 @@ msgstr "" #: library/unittest.rst:2464 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." +"the test suite encounters a test from a new class then :meth:`~TestCase." +"tearDownClass` from the previous class (if there is one) is called, followed " +"by :meth:`~TestCase.setUpClass` from the new class." msgstr "" #: library/unittest.rst:2469 @@ -3396,11 +3397,11 @@ msgstr "" msgid "setUpModule and tearDownModule" msgstr "" -#: library/unittest.rst:2528 +#: library/unittest.rst:2532 msgid "These should be implemented as functions::" msgstr "" -#: library/unittest.rst:2530 +#: library/unittest.rst:2534 msgid "" "def setUpModule():\n" " createConnection()\n" @@ -3409,7 +3410,7 @@ msgid "" " closeConnection()" msgstr "" -#: library/unittest.rst:2536 +#: library/unittest.rst:2540 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 " @@ -3417,13 +3418,13 @@ msgid "" "having been skipped instead of as an error." msgstr "" -#: library/unittest.rst:2541 +#: library/unittest.rst:2545 msgid "" "To add cleanup code that must be run even in the case of an exception, use " "``addModuleCleanup``:" msgstr "" -#: library/unittest.rst:2547 +#: library/unittest.rst:2551 msgid "" "Add a function to be called after :func:`tearDownModule` to cleanup " "resources used during the test class. Functions will be called in reverse " @@ -3432,13 +3433,13 @@ msgid "" "`addModuleCleanup` when they are added." msgstr "" -#: library/unittest.rst:2553 +#: library/unittest.rst:2557 msgid "" "If :meth:`setUpModule` fails, meaning that :func:`tearDownModule` is not " "called, then any cleanup functions added will still be called." msgstr "" -#: library/unittest.rst:2561 +#: library/unittest.rst:2565 msgid "" "Enter the supplied :term:`context manager`. If successful, also add its :" "meth:`~object.__exit__` method as a cleanup function by :func:" @@ -3446,30 +3447,30 @@ msgid "" "method." msgstr "" -#: library/unittest.rst:2571 +#: library/unittest.rst:2575 msgid "" "This function is called unconditionally after :func:`tearDownModule`, or " "after :func:`setUpModule` if :func:`setUpModule` raises an exception." msgstr "" -#: library/unittest.rst:2574 +#: library/unittest.rst:2578 msgid "" "It is responsible for calling all the cleanup functions added by :func:" "`addModuleCleanup`. If you need cleanup functions to be called *prior* to :" "func:`tearDownModule` then you can call :func:`doModuleCleanups` yourself." msgstr "" -#: library/unittest.rst:2579 +#: library/unittest.rst:2583 msgid "" ":func:`doModuleCleanups` pops methods off the stack of cleanup functions one " "at a time, so it can be called at any time." msgstr "" -#: library/unittest.rst:2586 +#: library/unittest.rst:2590 msgid "Signal Handling" msgstr "" -#: library/unittest.rst:2590 +#: library/unittest.rst:2594 msgid "" "The :option:`-c/--catch ` command-line option to unittest, " "along with the ``catchbreak`` parameter to :func:`unittest.main`, provide " @@ -3479,7 +3480,7 @@ msgid "" "A second control-c will raise a :exc:`KeyboardInterrupt` in the usual way." msgstr "" -#: library/unittest.rst:2597 +#: library/unittest.rst:2601 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 " @@ -3491,48 +3492,48 @@ msgid "" "disabled the :func:`removeHandler` decorator can be used." msgstr "" -#: library/unittest.rst:2606 +#: library/unittest.rst:2610 msgid "" "There are a few utility functions for framework authors to enable control-c " "handling functionality within test frameworks." msgstr "" -#: library/unittest.rst:2611 +#: library/unittest.rst:2615 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 "" -#: library/unittest.rst:2618 +#: library/unittest.rst:2622 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 "" -#: library/unittest.rst:2622 +#: library/unittest.rst:2626 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 "" -#: library/unittest.rst:2629 +#: library/unittest.rst:2633 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 "" -#: library/unittest.rst:2636 +#: library/unittest.rst:2640 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 "" -#: library/unittest.rst:2640 +#: library/unittest.rst:2644 msgid "" "@unittest.removeHandler\n" "def test_signal_handling(self):\n" diff --git a/library/unix.po b/library/unix.po index 4fbb552a..fe776110 100644 --- a/library/unix.po +++ b/library/unix.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: library/unix.rst:5 -msgid "Unix Specific Services" +msgid "Unix-specific services" msgstr "" #: library/unix.rst:7 diff --git a/library/urllib.error.po b/library/urllib.error.po index 00a9d40e..f50bf986 100644 --- a/library/urllib.error.po +++ b/library/urllib.error.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/urllib.parse.po b/library/urllib.parse.po index dda7128c..c48e1e79 100644 --- a/library/urllib.parse.po +++ b/library/urllib.parse.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/urllib.po b/library/urllib.po index bf2d2a85..9b1aa1a6 100644 --- a/library/urllib.po +++ b/library/urllib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/urllib.request.po b/library/urllib.request.po index c8ec905d..e920a680 100644 --- a/library/urllib.request.po +++ b/library/urllib.request.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -305,10 +305,14 @@ msgid "" msgstr "" #: library/urllib.request.rst:213 +msgid "The URL query and fragment components are discarded if present." +msgstr "" + +#: library/urllib.request.rst:216 msgid "The *require_scheme* and *resolve_host* parameters were added." msgstr "" -#: library/urllib.request.rst:219 +#: library/urllib.request.rst:222 msgid "" "This helper function returns a dictionary of scheme to proxy server URL " "mappings. It scans the environment for variables named ``_proxy``, " @@ -318,7 +322,7 @@ msgid "" "uppercase environment variables exist (and disagree), lowercase is preferred." msgstr "" -#: library/urllib.request.rst:229 +#: library/urllib.request.rst:232 msgid "" "If the environment variable ``REQUEST_METHOD`` is set, which usually " "indicates your script is running in a CGI environment, the environment " @@ -329,19 +333,19 @@ msgid "" "(or at least the ``_proxy`` suffix)." msgstr "" -#: library/urllib.request.rst:238 +#: library/urllib.request.rst:241 msgid "The following classes are provided:" msgstr "" -#: library/urllib.request.rst:242 +#: library/urllib.request.rst:245 msgid "This class is an abstraction of a URL request." msgstr "" -#: library/urllib.request.rst:244 +#: library/urllib.request.rst:247 msgid "*url* should be a string containing a valid, properly encoded URL." msgstr "" -#: library/urllib.request.rst:246 +#: library/urllib.request.rst:249 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 " @@ -354,7 +358,7 @@ msgid "" "iterables." msgstr "" -#: library/urllib.request.rst:256 +#: library/urllib.request.rst:259 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." @@ -363,7 +367,7 @@ msgid "" "being used as the *data* parameter." msgstr "" -#: library/urllib.request.rst:262 +#: library/urllib.request.rst:265 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 " @@ -376,7 +380,7 @@ msgid "" "case." msgstr "" -#: library/urllib.request.rst:273 +#: library/urllib.request.rst:276 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 " @@ -384,13 +388,13 @@ msgid "" "as a default." msgstr "" -#: library/urllib.request.rst:278 +#: library/urllib.request.rst:281 msgid "" "The next two arguments are only of interest for correct handling of third-" "party HTTP cookies:" msgstr "" -#: library/urllib.request.rst:281 +#: library/urllib.request.rst:284 msgid "" "*origin_req_host* should be the request-host of the origin transaction, as " "defined by :rfc:`2965`. It defaults to ``http.cookiejar." @@ -400,7 +404,7 @@ msgid "" "for the page containing the image." msgstr "" -#: library/urllib.request.rst:289 +#: library/urllib.request.rst:292 msgid "" "*unverifiable* should indicate whether the request is unverifiable, as " "defined by :rfc:`2965`. It defaults to ``False``. An unverifiable request " @@ -409,7 +413,7 @@ msgid "" "option to approve the automatic fetching of the image, this should be true." msgstr "" -#: library/urllib.request.rst:296 +#: library/urllib.request.rst:299 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:" @@ -419,7 +423,7 @@ msgid "" "attribute in the class itself." msgstr "" -#: library/urllib.request.rst:304 +#: library/urllib.request.rst:307 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 " @@ -429,49 +433,49 @@ msgid "" "library." msgstr "" -#: library/urllib.request.rst:311 +#: library/urllib.request.rst:314 msgid ":attr:`Request.method` argument is added to the Request class." msgstr "" -#: library/urllib.request.rst:314 +#: library/urllib.request.rst:317 msgid "Default :attr:`Request.method` may be indicated at the class level." msgstr "" -#: library/urllib.request.rst:317 +#: library/urllib.request.rst:320 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 "" -#: library/urllib.request.rst:324 +#: library/urllib.request.rst:327 msgid "" "The :class:`OpenerDirector` class opens URLs via :class:`BaseHandler`\\ s " "chained together. It manages the chaining of handlers, and recovery from " "errors." msgstr "" -#: library/urllib.request.rst:330 +#: library/urllib.request.rst:333 msgid "" "This is the base class for all registered handlers --- and handles only the " "simple mechanics of registration." msgstr "" -#: library/urllib.request.rst:336 +#: library/urllib.request.rst:339 msgid "" "A class which defines a default handler for HTTP error responses; all " "responses are turned into :exc:`~urllib.error.HTTPError` exceptions." msgstr "" -#: library/urllib.request.rst:342 +#: library/urllib.request.rst:345 msgid "A class to handle redirections." msgstr "" -#: library/urllib.request.rst:347 +#: library/urllib.request.rst:350 msgid "A class to handle HTTP Cookies." msgstr "" -#: library/urllib.request.rst:352 +#: library/urllib.request.rst:355 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 " @@ -482,11 +486,11 @@ msgid "" "Configuration Framework." msgstr "" -#: library/urllib.request.rst:360 +#: library/urllib.request.rst:363 msgid "To disable autodetected proxy pass an empty dictionary." msgstr "" -#: library/urllib.request.rst:362 +#: library/urllib.request.rst:365 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 " @@ -494,24 +498,24 @@ msgid "" "``cern.ch,ncsa.uiuc.edu,some.host:8080``." msgstr "" -#: library/urllib.request.rst:369 +#: library/urllib.request.rst:372 msgid "" "``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see " "the documentation on :func:`~urllib.request.getproxies`." msgstr "" -#: library/urllib.request.rst:375 +#: library/urllib.request.rst:378 msgid "Keep a database of ``(realm, uri) -> (user, password)`` mappings." msgstr "" -#: library/urllib.request.rst:380 +#: library/urllib.request.rst:383 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 "" -#: library/urllib.request.rst:387 +#: library/urllib.request.rst:390 msgid "" "A variant of :class:`HTTPPasswordMgrWithDefaultRealm` that also has a " "database of ``uri -> is_authenticated`` mappings. Can be used by a " @@ -519,7 +523,7 @@ msgid "" "immediately instead of waiting for a ``401`` response first." msgstr "" -#: library/urllib.request.rst:397 +#: library/urllib.request.rst:400 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 " @@ -538,11 +542,11 @@ msgid "" "will automatically include the authentication credentials." msgstr "" -#: library/urllib.request.rst:414 +#: library/urllib.request.rst:417 msgid "Added ``is_authenticated`` support." msgstr "" -#: library/urllib.request.rst:420 +#: library/urllib.request.rst:423 msgid "" "Handle authentication with the remote host. *password_mgr*, if given, should " "be something that is compatible with :class:`HTTPPasswordMgr`; refer to " @@ -551,7 +555,7 @@ msgid "" "presented with a wrong Authentication scheme." msgstr "" -#: library/urllib.request.rst:466 +#: library/urllib.request.rst:469 msgid "" "Handle authentication with the proxy. *password_mgr*, if given, should be " "something that is compatible with :class:`HTTPPasswordMgr`; refer to " @@ -559,7 +563,7 @@ msgid "" "be supported." msgstr "" -#: library/urllib.request.rst:437 +#: library/urllib.request.rst:440 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 " @@ -567,11 +571,11 @@ msgid "" "`http-password-mgr` for information on the interface that must be supported." msgstr "" -#: library/urllib.request.rst:443 +#: library/urllib.request.rst:446 msgid "Added support for HTTP digest authentication algorithm ``SHA-256``." msgstr "" -#: library/urllib.request.rst:449 +#: library/urllib.request.rst:452 msgid "" "Handle authentication with the remote host. *password_mgr*, if given, should " "be something that is compatible with :class:`HTTPPasswordMgr`; refer to " @@ -584,108 +588,108 @@ msgid "" "Digest or Basic." msgstr "" -#: library/urllib.request.rst:459 +#: library/urllib.request.rst:462 msgid "Raise :exc:`ValueError` on unsupported Authentication Scheme." msgstr "" -#: library/urllib.request.rst:474 +#: library/urllib.request.rst:477 msgid "A class to handle opening of HTTP URLs." msgstr "" -#: library/urllib.request.rst:479 +#: library/urllib.request.rst:482 msgid "" "A class to handle opening of HTTPS URLs. *context* and *check_hostname* " "have the same meaning as in :class:`http.client.HTTPSConnection`." msgstr "" -#: library/urllib.request.rst:482 +#: library/urllib.request.rst:485 msgid "*context* and *check_hostname* were added." msgstr "" -#: library/urllib.request.rst:488 +#: library/urllib.request.rst:491 msgid "Open local files." msgstr "" -#: library/urllib.request.rst:492 +#: library/urllib.request.rst:495 msgid "Open data URLs." msgstr "" -#: library/urllib.request.rst:498 +#: library/urllib.request.rst:501 msgid "Open FTP URLs." msgstr "" -#: library/urllib.request.rst:503 +#: library/urllib.request.rst:506 msgid "" "Open FTP URLs, keeping a cache of open FTP connections to minimize delays." msgstr "" -#: library/urllib.request.rst:508 +#: library/urllib.request.rst:511 msgid "A catch-all class to handle unknown URLs." msgstr "" -#: library/urllib.request.rst:1219 +#: library/urllib.request.rst:1225 msgid "Process HTTP error responses." msgstr "" -#: library/urllib.request.rst:519 +#: library/urllib.request.rst:522 msgid "Request Objects" msgstr "" -#: library/urllib.request.rst:521 +#: library/urllib.request.rst:524 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 "" -#: library/urllib.request.rst:528 +#: library/urllib.request.rst:531 msgid "The original URL passed to the constructor." msgstr "" -#: library/urllib.request.rst:532 +#: library/urllib.request.rst:535 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 "" -#: library/urllib.request.rst:538 +#: library/urllib.request.rst:541 msgid "The URI scheme." msgstr "" -#: library/urllib.request.rst:542 +#: library/urllib.request.rst:545 msgid "" "The URI authority, typically a host, but may also contain a port separated " "by a colon." msgstr "" -#: library/urllib.request.rst:547 +#: library/urllib.request.rst:550 msgid "The original host for the request, without port." msgstr "" -#: library/urllib.request.rst:551 +#: library/urllib.request.rst:554 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 "" -#: library/urllib.request.rst:556 +#: library/urllib.request.rst:559 msgid "The entity body for the request, or ``None`` if not specified." msgstr "" -#: library/urllib.request.rst:558 +#: library/urllib.request.rst:561 msgid "" "Changing value of :attr:`Request.data` now deletes \"Content-Length\" header " "if it was previously set or calculated." msgstr "" -#: library/urllib.request.rst:564 +#: library/urllib.request.rst:567 msgid "" "boolean, indicates whether the request is unverifiable as defined by :rfc:" "`2965`." msgstr "" -#: library/urllib.request.rst:569 +#: library/urllib.request.rst:572 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 " @@ -696,13 +700,13 @@ msgid "" "argument." msgstr "" -#: library/urllib.request.rst:579 +#: library/urllib.request.rst:582 msgid "" "A default value can now be set in subclasses; previously it could only be " "set via the constructor argument." msgstr "" -#: library/urllib.request.rst:586 +#: library/urllib.request.rst:589 msgid "" "Return a string indicating the HTTP request method. If :attr:`Request." "method` is not ``None``, return its value, otherwise return ``'GET'`` if :" @@ -710,11 +714,11 @@ msgid "" "meaningful for HTTP requests." msgstr "" -#: library/urllib.request.rst:591 +#: library/urllib.request.rst:594 msgid "get_method now looks at the value of :attr:`Request.method`." msgstr "" -#: library/urllib.request.rst:597 +#: library/urllib.request.rst:600 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 " @@ -726,64 +730,64 @@ msgid "" "headers added using this method are also added to redirected requests." msgstr "" -#: library/urllib.request.rst:609 +#: library/urllib.request.rst:612 msgid "Add a header that will not be added to a redirected request." msgstr "" -#: library/urllib.request.rst:614 +#: library/urllib.request.rst:617 msgid "" "Return whether the instance has the named header (checks both regular and " "unredirected)." msgstr "" -#: library/urllib.request.rst:620 +#: library/urllib.request.rst:623 msgid "" "Remove named header from the request instance (both from regular and " "unredirected headers)." msgstr "" -#: library/urllib.request.rst:628 +#: library/urllib.request.rst:631 msgid "Return the URL given in the constructor." msgstr "" -#: library/urllib.request.rst:632 +#: library/urllib.request.rst:635 msgid "Returns :attr:`Request.full_url`" msgstr "" -#: library/urllib.request.rst:637 +#: library/urllib.request.rst:640 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 "" -#: library/urllib.request.rst:644 +#: library/urllib.request.rst:647 msgid "" "Return the value of the given header. If the header is not present, return " "the default value." msgstr "" -#: library/urllib.request.rst:650 +#: library/urllib.request.rst:653 msgid "" "Return a list of tuples (header_name, header_value) of the Request headers." msgstr "" -#: library/urllib.request.rst:652 +#: library/urllib.request.rst:655 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 "" -#: library/urllib.request.rst:661 +#: library/urllib.request.rst:664 msgid "OpenerDirector Objects" msgstr "" -#: library/urllib.request.rst:663 +#: library/urllib.request.rst:666 msgid ":class:`OpenerDirector` instances have the following methods:" msgstr "" -#: library/urllib.request.rst:668 +#: library/urllib.request.rst:671 msgid "" "*handler* should be an instance of :class:`BaseHandler`. The following " "methods are searched, and added to the possible chains (note that HTTP " @@ -794,53 +798,53 @@ msgid "" "`http_error_404` would handle HTTP 404 errors." msgstr "" -#: library/urllib.request.rst:676 +#: library/urllib.request.rst:679 msgid "" ":meth:`!_open` --- signal that the handler knows how to open " "*protocol* URLs." msgstr "" -#: library/urllib.request.rst:679 +#: library/urllib.request.rst:682 msgid "See |protocol_open|_ for more information." msgstr "" -#: library/urllib.request.rst:681 +#: library/urllib.request.rst:684 msgid "" ":meth:`!http_error_\\` --- signal that the handler knows how to " "handle HTTP errors with HTTP error code *type*." msgstr "" -#: library/urllib.request.rst:684 +#: library/urllib.request.rst:687 msgid "See |http_error_nnn|_ for more information." msgstr "" -#: library/urllib.request.rst:686 +#: library/urllib.request.rst:689 msgid "" ":meth:`!_error` --- signal that the handler knows how to handle " "errors from (non-\\ ``http``) *protocol*." msgstr "" -#: library/urllib.request.rst:689 +#: library/urllib.request.rst:692 msgid "" ":meth:`!_request` --- signal that the handler knows how to pre-" "process *protocol* requests." msgstr "" -#: library/urllib.request.rst:692 +#: library/urllib.request.rst:695 msgid "See |protocol_request|_ for more information." msgstr "" -#: library/urllib.request.rst:694 +#: library/urllib.request.rst:697 msgid "" ":meth:`!_response` --- signal that the handler knows how to post-" "process *protocol* responses." msgstr "" -#: library/urllib.request.rst:697 +#: library/urllib.request.rst:700 msgid "See |protocol_response|_ for more information." msgstr "" -#: library/urllib.request.rst:706 +#: library/urllib.request.rst:709 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 " @@ -852,7 +856,7 @@ msgid "" "HTTP, HTTPS and FTP connections." msgstr "" -#: library/urllib.request.rst:718 +#: library/urllib.request.rst:721 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 " @@ -861,28 +865,28 @@ msgid "" "http_error_\\` methods of the handler classes." msgstr "" -#: library/urllib.request.rst:724 +#: library/urllib.request.rst:727 msgid "" "Return values and exceptions raised are the same as those of :func:`urlopen`." msgstr "" -#: library/urllib.request.rst:726 +#: library/urllib.request.rst:729 msgid "OpenerDirector objects open URLs in three stages:" msgstr "" -#: library/urllib.request.rst:728 +#: library/urllib.request.rst:731 msgid "" "The order in which these methods are called within each stage is determined " "by sorting the handler instances." msgstr "" -#: library/urllib.request.rst:731 +#: library/urllib.request.rst:734 msgid "" "Every handler with a method named like :meth:`!_request` has that " "method called to pre-process the request." msgstr "" -#: library/urllib.request.rst:734 +#: library/urllib.request.rst:737 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-\\ :" @@ -890,7 +894,7 @@ msgid "" "`~urllib.error.URLError`). Exceptions are allowed to propagate." msgstr "" -#: library/urllib.request.rst:739 +#: library/urllib.request.rst:742 msgid "" "In fact, the above algorithm is first tried for methods named :meth:" "`~BaseHandler.default_open`. If all such methods return :const:`None`, the " @@ -899,64 +903,64 @@ msgid "" "named :meth:`~BaseHandler.unknown_open`." msgstr "" -#: library/urllib.request.rst:745 +#: library/urllib.request.rst:748 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 "" -#: library/urllib.request.rst:749 +#: library/urllib.request.rst:752 msgid "" "Every handler with a method named like :meth:`!_response` has that " "method called to post-process the response." msgstr "" -#: library/urllib.request.rst:756 +#: library/urllib.request.rst:759 msgid "BaseHandler Objects" msgstr "" -#: library/urllib.request.rst:758 +#: library/urllib.request.rst:761 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 "" -#: library/urllib.request.rst:765 +#: library/urllib.request.rst:768 msgid "Add a director as parent." msgstr "" -#: library/urllib.request.rst:770 +#: library/urllib.request.rst:773 msgid "Remove any parents." msgstr "" -#: library/urllib.request.rst:772 +#: library/urllib.request.rst:775 msgid "" "The following attribute and methods should only be used by classes derived " "from :class:`BaseHandler`." msgstr "" -#: library/urllib.request.rst:777 +#: library/urllib.request.rst:780 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 "" -#: library/urllib.request.rst:784 +#: library/urllib.request.rst:787 msgid "" "A valid :class:`OpenerDirector`, which can be used to open using a different " "protocol, or handle errors." msgstr "" -#: library/urllib.request.rst:790 +#: library/urllib.request.rst:793 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to catch all URLs." msgstr "" -#: library/urllib.request.rst:793 +#: library/urllib.request.rst:796 msgid "" "This method, if implemented, will be called by the parent :class:" "`OpenerDirector`. It should return a file-like object as described in the " @@ -966,38 +970,38 @@ msgid "" "`MemoryError` should not be mapped to :exc:`~urllib.error.URLError`)." msgstr "" -#: library/urllib.request.rst:800 +#: library/urllib.request.rst:803 msgid "This method will be called before any protocol-specific open method." msgstr "" -#: library/urllib.request.rst:807 +#: library/urllib.request.rst:810 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 "" -#: library/urllib.request.rst:810 +#: library/urllib.request.rst:813 msgid "" "This method, if defined, will be called by the parent :class:" "`OpenerDirector`. Return values should be the same as for :meth:" "`~BaseHandler.default_open`." msgstr "" -#: library/urllib.request.rst:816 +#: library/urllib.request.rst:819 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 "" -#: library/urllib.request.rst:820 +#: library/urllib.request.rst:823 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 "" -#: library/urllib.request.rst:827 +#: library/urllib.request.rst:830 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 " @@ -1006,57 +1010,74 @@ msgid "" "other circumstances." msgstr "" -#: library/urllib.request.rst:832 +#: library/urllib.request.rst:835 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." +":class:`OpenerDirector` will call this method with five positional arguments:" msgstr "" #: library/urllib.request.rst:837 +msgid "a :class:`Request` object," +msgstr "" + +#: library/urllib.request.rst:838 +msgid "a file-like object with the HTTP error body," +msgstr "" + +#: library/urllib.request.rst:839 +msgid "the three-digit code of the error, as a string," +msgstr "" + +#: library/urllib.request.rst:840 +msgid "the user-visible explanation of the code, as a string, and" +msgstr "" + +#: library/urllib.request.rst:841 +msgid "the headers of the error, as a mapping object." +msgstr "" + +#: library/urllib.request.rst:843 msgid "" "Return values and exceptions raised should be the same as those of :func:" "`urlopen`." msgstr "" -#: library/urllib.request.rst:844 +#: library/urllib.request.rst:850 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 "" -#: library/urllib.request.rst:848 +#: library/urllib.request.rst:854 msgid "Subclasses should override this method to handle specific HTTP errors." msgstr "" -#: library/urllib.request.rst:850 +#: library/urllib.request.rst:856 msgid "" "Arguments, return values and exceptions raised should be the same as for :" "meth:`~BaseHandler.http_error_default`." msgstr "" -#: library/urllib.request.rst:858 +#: library/urllib.request.rst:864 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 "" -#: library/urllib.request.rst:861 +#: library/urllib.request.rst:867 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 "" -#: library/urllib.request.rst:870 +#: library/urllib.request.rst:876 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 "" -#: library/urllib.request.rst:873 +#: library/urllib.request.rst:879 msgid "" "This method, if defined, will be called by the parent :class:" "`OpenerDirector`. *req* will be a :class:`Request` object. *response* will " @@ -1065,25 +1086,25 @@ msgid "" "return value of :func:`urlopen`." msgstr "" -#: library/urllib.request.rst:883 +#: library/urllib.request.rst:889 msgid "HTTPRedirectHandler Objects" msgstr "" -#: library/urllib.request.rst:887 +#: library/urllib.request.rst:893 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 "" -#: library/urllib.request.rst:891 +#: library/urllib.request.rst:897 msgid "" "An :exc:`~urllib.error.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 "" -#: library/urllib.request.rst:898 +#: library/urllib.request.rst:904 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\\*` " @@ -1094,7 +1115,7 @@ msgid "" "URL, or return ``None`` if you can't but another handler might." msgstr "" -#: library/urllib.request.rst:908 +#: library/urllib.request.rst:914 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 " @@ -1103,54 +1124,54 @@ msgid "" "POST to a ``GET``, and the default implementation reproduces this behavior." msgstr "" -#: library/urllib.request.rst:917 +#: library/urllib.request.rst:923 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 "" -#: library/urllib.request.rst:923 +#: library/urllib.request.rst:929 msgid "" "The same as :meth:`http_error_301`, but called for the 'found' response." msgstr "" -#: library/urllib.request.rst:928 +#: library/urllib.request.rst:934 msgid "" "The same as :meth:`http_error_301`, but called for the 'see other' response." msgstr "" -#: library/urllib.request.rst:933 +#: library/urllib.request.rst:939 msgid "" "The same as :meth:`http_error_301`, but called for the 'temporary redirect' " "response. It does not allow changing the request method from ``POST`` to " "``GET``." msgstr "" -#: library/urllib.request.rst:940 +#: library/urllib.request.rst:946 msgid "" "The same as :meth:`http_error_301`, but called for the 'permanent redirect' " "response. It does not allow changing the request method from ``POST`` to " "``GET``." msgstr "" -#: library/urllib.request.rst:950 +#: library/urllib.request.rst:956 msgid "HTTPCookieProcessor Objects" msgstr "" -#: library/urllib.request.rst:952 +#: library/urllib.request.rst:958 msgid ":class:`HTTPCookieProcessor` instances have one attribute:" msgstr "" -#: library/urllib.request.rst:956 +#: library/urllib.request.rst:962 msgid "The :class:`http.cookiejar.CookieJar` in which cookies are stored." msgstr "" -#: library/urllib.request.rst:962 +#: library/urllib.request.rst:968 msgid "ProxyHandler Objects" msgstr "" -#: library/urllib.request.rst:968 +#: library/urllib.request.rst:974 msgid "" "The :class:`ProxyHandler` will have a method :meth:`!_open` for " "every *protocol* which has a proxy in the *proxies* dictionary given in the " @@ -1159,17 +1180,17 @@ msgid "" "actually execute the protocol." msgstr "" -#: library/urllib.request.rst:978 +#: library/urllib.request.rst:984 msgid "HTTPPasswordMgr Objects" msgstr "" -#: library/urllib.request.rst:980 +#: library/urllib.request.rst:986 msgid "" "These methods are available on :class:`HTTPPasswordMgr` and :class:" "`HTTPPasswordMgrWithDefaultRealm` objects." msgstr "" -#: library/urllib.request.rst:986 +#: library/urllib.request.rst:992 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 " @@ -1177,30 +1198,30 @@ msgid "" "of the given URIs is given." msgstr "" -#: library/urllib.request.rst:994 +#: library/urllib.request.rst:1000 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 "" -#: library/urllib.request.rst:997 +#: library/urllib.request.rst:1003 msgid "" "For :class:`HTTPPasswordMgrWithDefaultRealm` objects, the realm ``None`` " "will be searched if the given *realm* has no matching user/password." msgstr "" -#: library/urllib.request.rst:1004 +#: library/urllib.request.rst:1010 msgid "HTTPPasswordMgrWithPriorAuth Objects" msgstr "" -#: library/urllib.request.rst:1006 +#: library/urllib.request.rst:1012 msgid "" "This password manager extends :class:`HTTPPasswordMgrWithDefaultRealm` to " "support tracking URIs for which authentication credentials should always be " "sent." msgstr "" -#: library/urllib.request.rst:1013 +#: library/urllib.request.rst:1019 msgid "" "*realm*, *uri*, *user*, *passwd* are as for :meth:`HTTPPasswordMgr." "add_password`. *is_authenticated* sets the initial value of the " @@ -1208,25 +1229,25 @@ msgid "" "*is_authenticated* is specified as ``True``, *realm* is ignored." msgstr "" -#: library/urllib.request.rst:1021 +#: library/urllib.request.rst:1027 msgid "Same as for :class:`HTTPPasswordMgrWithDefaultRealm` objects" msgstr "" -#: library/urllib.request.rst:1027 +#: library/urllib.request.rst:1033 msgid "" "Update the ``is_authenticated`` flag for the given *uri* or list of URIs." msgstr "" -#: library/urllib.request.rst:1033 +#: library/urllib.request.rst:1039 msgid "" "Returns the current state of the ``is_authenticated`` flag for the given URI." msgstr "" -#: library/urllib.request.rst:1040 +#: library/urllib.request.rst:1046 msgid "AbstractBasicAuthHandler Objects" msgstr "" -#: library/urllib.request.rst:1045 +#: library/urllib.request.rst:1051 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 " @@ -1235,7 +1256,7 @@ msgid "" "`Request` object, and *headers* should be the error headers." msgstr "" -#: library/urllib.request.rst:1051 +#: library/urllib.request.rst:1057 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, " @@ -1243,24 +1264,24 @@ msgid "" "and ``\"python.org:80\"`` are fine, ``\"joe:password@python.org\"`` is not)." msgstr "" -#: library/urllib.request.rst:1060 +#: library/urllib.request.rst:1066 msgid "HTTPBasicAuthHandler Objects" msgstr "" -#: library/urllib.request.rst:1065 library/urllib.request.rst:1076 -#: library/urllib.request.rst:1101 library/urllib.request.rst:1112 +#: library/urllib.request.rst:1071 library/urllib.request.rst:1082 +#: library/urllib.request.rst:1107 library/urllib.request.rst:1118 msgid "Retry the request with authentication information, if available." msgstr "" -#: library/urllib.request.rst:1071 +#: library/urllib.request.rst:1077 msgid "ProxyBasicAuthHandler Objects" msgstr "" -#: library/urllib.request.rst:1082 +#: library/urllib.request.rst:1088 msgid "AbstractDigestAuthHandler Objects" msgstr "" -#: library/urllib.request.rst:1087 +#: library/urllib.request.rst:1093 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 " @@ -1268,55 +1289,55 @@ msgid "" "should be the error headers." msgstr "" -#: library/urllib.request.rst:1096 +#: library/urllib.request.rst:1102 msgid "HTTPDigestAuthHandler Objects" msgstr "" -#: library/urllib.request.rst:1107 +#: library/urllib.request.rst:1113 msgid "ProxyDigestAuthHandler Objects" msgstr "" -#: library/urllib.request.rst:1118 +#: library/urllib.request.rst:1124 msgid "HTTPHandler Objects" msgstr "" -#: library/urllib.request.rst:1123 +#: library/urllib.request.rst:1129 msgid "" "Send an HTTP request, which can be either GET or POST, depending on ``req." "data``." msgstr "" -#: library/urllib.request.rst:1130 +#: library/urllib.request.rst:1136 msgid "HTTPSHandler Objects" msgstr "" -#: library/urllib.request.rst:1135 +#: library/urllib.request.rst:1141 msgid "" "Send an HTTPS request, which can be either GET or POST, depending on ``req." "data``." msgstr "" -#: library/urllib.request.rst:1142 +#: library/urllib.request.rst:1148 msgid "FileHandler Objects" msgstr "" -#: library/urllib.request.rst:1147 +#: library/urllib.request.rst:1153 msgid "" "Open the file locally, if there is no host name, or the host name is " "``'localhost'``." msgstr "" -#: library/urllib.request.rst:1150 +#: library/urllib.request.rst:1156 msgid "" "This method is applicable only for local hostnames. When a remote hostname " "is given, a :exc:`~urllib.error.URLError` is raised." msgstr "" -#: library/urllib.request.rst:1158 +#: library/urllib.request.rst:1164 msgid "DataHandler Objects" msgstr "" -#: library/urllib.request.rst:1162 +#: library/urllib.request.rst:1168 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 " @@ -1326,51 +1347,51 @@ msgid "" "implementation will raise a :exc:`ValueError` in that case." msgstr "" -#: library/urllib.request.rst:1173 +#: library/urllib.request.rst:1179 msgid "FTPHandler Objects" msgstr "" -#: library/urllib.request.rst:1178 +#: library/urllib.request.rst:1184 msgid "" "Open the FTP file indicated by *req*. The login is always done with empty " "username and password." msgstr "" -#: library/urllib.request.rst:1185 +#: library/urllib.request.rst:1191 msgid "CacheFTPHandler Objects" msgstr "" -#: library/urllib.request.rst:1187 +#: library/urllib.request.rst:1193 msgid "" ":class:`CacheFTPHandler` objects are :class:`FTPHandler` objects with the " "following additional methods:" msgstr "" -#: library/urllib.request.rst:1193 +#: library/urllib.request.rst:1199 msgid "Set timeout of connections to *t* seconds." msgstr "" -#: library/urllib.request.rst:1198 +#: library/urllib.request.rst:1204 msgid "Set maximum number of cached connections to *m*." msgstr "" -#: library/urllib.request.rst:1204 +#: library/urllib.request.rst:1210 msgid "UnknownHandler Objects" msgstr "" -#: library/urllib.request.rst:1209 +#: library/urllib.request.rst:1215 msgid "Raise a :exc:`~urllib.error.URLError` exception." msgstr "" -#: library/urllib.request.rst:1215 +#: library/urllib.request.rst:1221 msgid "HTTPErrorProcessor Objects" msgstr "" -#: library/urllib.request.rst:1221 +#: library/urllib.request.rst:1227 msgid "For 200 error codes, the response object is returned immediately." msgstr "" -#: library/urllib.request.rst:1223 +#: library/urllib.request.rst:1229 msgid "" "For non-200 error codes, this simply passes the job on to the :meth:`!" "http_error_\\` handler methods, via :meth:`OpenerDirector.error`. " @@ -1378,31 +1399,31 @@ msgid "" "error.HTTPError` if no other handler handles the error." msgstr "" -#: library/urllib.request.rst:1231 +#: library/urllib.request.rst:1237 msgid "Process HTTPS error responses." msgstr "" -#: library/urllib.request.rst:1233 +#: library/urllib.request.rst:1239 msgid "The behavior is same as :meth:`http_response`." msgstr "" -#: library/urllib.request.rst:1239 +#: library/urllib.request.rst:1245 msgid "Examples" msgstr "" -#: library/urllib.request.rst:1241 +#: library/urllib.request.rst:1247 msgid "" "In addition to the examples below, more examples are given in :ref:`urllib-" "howto`." msgstr "" -#: library/urllib.request.rst:1244 +#: library/urllib.request.rst:1250 msgid "" "This example gets the python.org main page and displays the first 300 bytes " "of it::" msgstr "" -#: library/urllib.request.rst:1247 +#: library/urllib.request.rst:1253 msgid "" ">>> import urllib.request\n" ">>> with urllib.request.urlopen('http://www.python.org/') as f:\n" @@ -1414,7 +1435,7 @@ msgid "" "class=\"no-js ie8 lt-ie9\">" msgstr "" -#: library/urllib.request.rst:1253 +#: library/urllib.request.rst:1259 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 " @@ -1423,26 +1444,26 @@ msgid "" "appropriate encoding." msgstr "" -#: library/urllib.request.rst:1259 +#: library/urllib.request.rst:1265 msgid "" "The following HTML spec document, https://html.spec.whatwg.org/#charset, " "lists the various ways in which an HTML or an XML document could have " "specified its encoding information." msgstr "" -#: library/urllib.request.rst:1263 +#: library/urllib.request.rst:1269 msgid "" "For additional information, see the W3C document: https://www.w3.org/" "International/questions/qa-html-encoding-declarations." msgstr "" -#: library/urllib.request.rst:1265 +#: library/urllib.request.rst:1271 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 "" -#: library/urllib.request.rst:1268 +#: library/urllib.request.rst:1274 msgid "" ">>> with urllib.request.urlopen('http://www.python.org/') as f:\n" "... print(f.read(100).decode('utf-8'))\n" @@ -1453,13 +1474,13 @@ msgid "" ">> import urllib.request\n" ">>> f = urllib.request.urlopen('http://www.python.org/')\n" @@ -1474,14 +1495,14 @@ msgid "" "', char.text)" msgstr "" -#: library/xml.etree.elementtree.rst:349 +#: library/xml.etree.elementtree.rst:348 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 "" -#: library/xml.etree.elementtree.rst:352 +#: library/xml.etree.elementtree.rst:351 msgid "" "ns = {'real_person': 'http://people.example.com',\n" " 'role': 'http://characters.example.com'}\n" @@ -500,11 +499,11 @@ msgid "" " print(' |-->', char.text)" msgstr "" -#: library/xml.etree.elementtree.rst:361 +#: library/xml.etree.elementtree.rst:360 msgid "These two approaches both output::" msgstr "" -#: library/xml.etree.elementtree.rst:363 +#: library/xml.etree.elementtree.rst:362 msgid "" "John Cleese\n" " |--> Lancelot\n" @@ -515,11 +514,11 @@ msgid "" " |--> Commander Clement" msgstr "" -#: library/xml.etree.elementtree.rst:375 +#: library/xml.etree.elementtree.rst:374 msgid "XPath support" msgstr "" -#: library/xml.etree.elementtree.rst:377 +#: library/xml.etree.elementtree.rst:376 msgid "" "This module provides limited support for `XPath expressions `_ for locating elements in a tree. The goal is to support a " @@ -527,18 +526,18 @@ msgid "" "scope of the module." msgstr "" -#: library/xml.etree.elementtree.rst:383 library/xml.etree.elementtree.rst:782 +#: library/xml.etree.elementtree.rst:382 library/xml.etree.elementtree.rst:781 msgid "Example" msgstr "" -#: library/xml.etree.elementtree.rst:385 +#: library/xml.etree.elementtree.rst:384 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 "" -#: library/xml.etree.elementtree.rst:389 +#: library/xml.etree.elementtree.rst:388 msgid "" "import xml.etree.ElementTree as ET\n" "\n" @@ -561,35 +560,35 @@ msgid "" "root.findall(\".//neighbor[2]\")" msgstr "" -#: library/xml.etree.elementtree.rst:409 +#: library/xml.etree.elementtree.rst:408 msgid "" "For XML with namespaces, use the usual qualified ``{namespace}tag`` " "notation::" msgstr "" -#: library/xml.etree.elementtree.rst:411 +#: library/xml.etree.elementtree.rst:410 msgid "" "# All dublin-core \"title\" tags in the document\n" "root.findall(\".//{http://purl.org/dc/elements/1.1/}title\")" msgstr "" -#: library/xml.etree.elementtree.rst:416 +#: library/xml.etree.elementtree.rst:415 msgid "Supported XPath syntax" msgstr "" -#: library/xml.etree.elementtree.rst:421 +#: library/xml.etree.elementtree.rst:420 msgid "Syntax" msgstr "" -#: library/xml.etree.elementtree.rst:421 +#: library/xml.etree.elementtree.rst:420 msgid "Meaning" msgstr "" -#: library/xml.etree.elementtree.rst:423 +#: library/xml.etree.elementtree.rst:422 msgid "``tag``" msgstr "" -#: library/xml.etree.elementtree.rst:423 +#: library/xml.etree.elementtree.rst:422 msgid "" "Selects all child elements with the given tag. For example, ``spam`` selects " "all child elements named ``spam``, and ``spam/egg`` selects all " @@ -599,133 +598,133 @@ msgid "" "not in a namespace." msgstr "" -#: library/xml.etree.elementtree.rst:432 +#: library/xml.etree.elementtree.rst:431 msgid "Support for star-wildcards was added." msgstr "" -#: library/xml.etree.elementtree.rst:435 +#: library/xml.etree.elementtree.rst:434 msgid "``*``" msgstr "" -#: library/xml.etree.elementtree.rst:435 +#: library/xml.etree.elementtree.rst:434 msgid "" "Selects all child elements, including comments and processing instructions. " "For example, ``*/egg`` selects all grandchildren named ``egg``." msgstr "" -#: library/xml.etree.elementtree.rst:439 +#: library/xml.etree.elementtree.rst:438 msgid "``.``" msgstr "" -#: library/xml.etree.elementtree.rst:439 +#: library/xml.etree.elementtree.rst:438 msgid "" "Selects the current node. This is mostly useful at the beginning of the " "path, to indicate that it's a relative path." msgstr "" -#: library/xml.etree.elementtree.rst:443 +#: library/xml.etree.elementtree.rst:442 msgid "``//``" msgstr "" -#: library/xml.etree.elementtree.rst:443 +#: library/xml.etree.elementtree.rst:442 msgid "" "Selects all subelements, on all levels beneath the current element. For " "example, ``.//egg`` selects all ``egg`` elements in the entire tree." msgstr "" -#: library/xml.etree.elementtree.rst:447 +#: library/xml.etree.elementtree.rst:446 msgid "``..``" msgstr "" -#: library/xml.etree.elementtree.rst:447 +#: library/xml.etree.elementtree.rst:446 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 "" -#: library/xml.etree.elementtree.rst:451 +#: library/xml.etree.elementtree.rst:450 msgid "``[@attrib]``" msgstr "" -#: library/xml.etree.elementtree.rst:451 +#: library/xml.etree.elementtree.rst:450 msgid "Selects all elements that have the given attribute." msgstr "" -#: library/xml.etree.elementtree.rst:453 +#: library/xml.etree.elementtree.rst:452 msgid "``[@attrib='value']``" msgstr "" -#: library/xml.etree.elementtree.rst:453 +#: library/xml.etree.elementtree.rst:452 msgid "" "Selects all elements for which the given attribute has the given value. The " "value cannot contain quotes." msgstr "" -#: library/xml.etree.elementtree.rst:457 +#: library/xml.etree.elementtree.rst:456 msgid "``[@attrib!='value']``" msgstr "" -#: library/xml.etree.elementtree.rst:457 +#: library/xml.etree.elementtree.rst:456 msgid "" "Selects all elements for which the given attribute does not have the given " "value. The value cannot contain quotes." msgstr "" -#: library/xml.etree.elementtree.rst:463 +#: library/xml.etree.elementtree.rst:462 msgid "``[tag]``" msgstr "" -#: library/xml.etree.elementtree.rst:463 +#: library/xml.etree.elementtree.rst:462 msgid "" "Selects all elements that have a child named ``tag``. Only immediate " "children are supported." msgstr "" -#: library/xml.etree.elementtree.rst:466 +#: library/xml.etree.elementtree.rst:465 msgid "``[.='text']``" msgstr "" -#: library/xml.etree.elementtree.rst:466 +#: library/xml.etree.elementtree.rst:465 msgid "" "Selects all elements whose complete text content, including descendants, " "equals the given ``text``." msgstr "" -#: library/xml.etree.elementtree.rst:471 +#: library/xml.etree.elementtree.rst:470 msgid "``[.!='text']``" msgstr "" -#: library/xml.etree.elementtree.rst:471 +#: library/xml.etree.elementtree.rst:470 msgid "" "Selects all elements whose complete text content, including descendants, " "does not equal the given ``text``." msgstr "" -#: library/xml.etree.elementtree.rst:477 +#: library/xml.etree.elementtree.rst:476 msgid "``[tag='text']``" msgstr "" -#: library/xml.etree.elementtree.rst:477 +#: library/xml.etree.elementtree.rst:476 msgid "" "Selects all elements that have a child named ``tag`` whose complete text " "content, including descendants, equals the given ``text``." msgstr "" -#: library/xml.etree.elementtree.rst:481 +#: library/xml.etree.elementtree.rst:480 msgid "``[tag!='text']``" msgstr "" -#: library/xml.etree.elementtree.rst:481 +#: library/xml.etree.elementtree.rst:480 msgid "" "Selects all elements that have a child named ``tag`` whose complete text " "content, including descendants, does not equal the given ``text``." msgstr "" -#: library/xml.etree.elementtree.rst:487 +#: library/xml.etree.elementtree.rst:486 msgid "``[position]``" msgstr "" -#: library/xml.etree.elementtree.rst:487 +#: library/xml.etree.elementtree.rst:486 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 " @@ -733,26 +732,26 @@ msgid "" "position (e.g. ``last()-1``)." msgstr "" -#: library/xml.etree.elementtree.rst:494 +#: library/xml.etree.elementtree.rst:493 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 "" -#: library/xml.etree.elementtree.rst:499 library/xml.etree.elementtree.rst:834 +#: library/xml.etree.elementtree.rst:498 library/xml.etree.elementtree.rst:833 msgid "Reference" msgstr "" -#: library/xml.etree.elementtree.rst:504 library/xml.etree.elementtree.rst:839 +#: library/xml.etree.elementtree.rst:503 library/xml.etree.elementtree.rst:838 msgid "Functions" msgstr "" -#: library/xml.etree.elementtree.rst:508 +#: library/xml.etree.elementtree.rst:507 msgid "`C14N 2.0 `_ transformation function." msgstr "" -#: library/xml.etree.elementtree.rst:510 +#: library/xml.etree.elementtree.rst:509 msgid "" "Canonicalization is a way to normalise XML output in a way that allows byte-" "by-byte comparisons and digital signatures. It reduces the freedom that XML " @@ -761,7 +760,7 @@ msgid "" "declarations, the ordering of attributes, and ignorable whitespace." msgstr "" -#: library/xml.etree.elementtree.rst:516 +#: library/xml.etree.elementtree.rst:515 msgid "" "This function takes an XML data string (*xml_data*) or a file path or file-" "like object (*from_file*) as input, converts it to the canonical form, and " @@ -770,11 +769,11 @@ msgid "" "should therefore be opened in text mode with ``utf-8`` encoding." msgstr "" -#: library/xml.etree.elementtree.rst:523 +#: library/xml.etree.elementtree.rst:522 msgid "Typical uses::" msgstr "" -#: library/xml.etree.elementtree.rst:525 +#: library/xml.etree.elementtree.rst:524 msgid "" "xml_data = \"...\"\n" "print(canonicalize(xml_data))\n" @@ -786,57 +785,57 @@ msgid "" " canonicalize(from_file=\"inputfile.xml\", out=out_file)" msgstr "" -#: library/xml.etree.elementtree.rst:534 +#: library/xml.etree.elementtree.rst:533 msgid "The configuration *options* are as follows:" msgstr "" -#: library/xml.etree.elementtree.rst:536 +#: library/xml.etree.elementtree.rst:535 msgid "*with_comments*: set to true to include comments (default: false)" msgstr "" -#: library/xml.etree.elementtree.rst:537 +#: library/xml.etree.elementtree.rst:536 msgid "" "*strip_text*: set to true to strip whitespace before and after text content" msgstr "" -#: library/xml.etree.elementtree.rst:538 library/xml.etree.elementtree.rst:540 +#: library/xml.etree.elementtree.rst:537 library/xml.etree.elementtree.rst:539 msgid "(default: false)" msgstr "" -#: library/xml.etree.elementtree.rst:539 +#: library/xml.etree.elementtree.rst:538 msgid "" "*rewrite_prefixes*: set to true to replace namespace prefixes by " "\"n{number}\"" msgstr "" -#: library/xml.etree.elementtree.rst:541 +#: library/xml.etree.elementtree.rst:540 msgid "*qname_aware_tags*: a set of qname aware tag names in which prefixes" msgstr "" -#: library/xml.etree.elementtree.rst:542 library/xml.etree.elementtree.rst:544 +#: library/xml.etree.elementtree.rst:541 library/xml.etree.elementtree.rst:543 msgid "should be replaced in text content (default: empty)" msgstr "" -#: library/xml.etree.elementtree.rst:543 +#: library/xml.etree.elementtree.rst:542 msgid "" "*qname_aware_attrs*: a set of qname aware attribute names in which prefixes" msgstr "" -#: library/xml.etree.elementtree.rst:545 +#: library/xml.etree.elementtree.rst:544 msgid "*exclude_attrs*: a set of attribute names that should not be serialised" msgstr "" -#: library/xml.etree.elementtree.rst:546 +#: library/xml.etree.elementtree.rst:545 msgid "*exclude_tags*: a set of tag names that should not be serialised" msgstr "" -#: library/xml.etree.elementtree.rst:548 +#: library/xml.etree.elementtree.rst:547 msgid "" "In the option list above, \"a set\" refers to any collection or iterable of " "strings, no ordering is expected." msgstr "" -#: library/xml.etree.elementtree.rst:556 +#: library/xml.etree.elementtree.rst:555 msgid "" "Comment element factory. This factory function creates a special element " "that will be serialized as an XML comment by the standard serializer. The " @@ -845,7 +844,7 @@ msgid "" "representing a comment." msgstr "" -#: library/xml.etree.elementtree.rst:562 +#: library/xml.etree.elementtree.rst:561 msgid "" "Note that :class:`XMLParser` skips over comments in the input instead of " "creating comment objects for them. An :class:`ElementTree` will only contain " @@ -853,29 +852,29 @@ msgid "" "class:`Element` methods." msgstr "" -#: library/xml.etree.elementtree.rst:569 +#: library/xml.etree.elementtree.rst:568 msgid "" "Writes an element tree or element structure to sys.stdout. This function " "should be used for debugging only." msgstr "" -#: library/xml.etree.elementtree.rst:572 +#: library/xml.etree.elementtree.rst:571 msgid "" "The exact output format is implementation dependent. In this version, it's " "written as an ordinary XML file." msgstr "" -#: library/xml.etree.elementtree.rst:575 +#: library/xml.etree.elementtree.rst:574 msgid "*elem* is an element tree or an individual element." msgstr "" -#: library/xml.etree.elementtree.rst:577 +#: library/xml.etree.elementtree.rst:576 msgid "" "The :func:`dump` function now preserves the attribute order specified by the " "user." msgstr "" -#: library/xml.etree.elementtree.rst:584 +#: library/xml.etree.elementtree.rst:583 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. " @@ -883,7 +882,7 @@ msgid "" "class:`Element` instance." msgstr "" -#: library/xml.etree.elementtree.rst:592 +#: library/xml.etree.elementtree.rst:591 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 " @@ -891,7 +890,7 @@ msgid "" "parser is used. Returns an :class:`Element` instance." msgstr "" -#: library/xml.etree.elementtree.rst:602 +#: library/xml.etree.elementtree.rst:601 msgid "" "Appends whitespace to the subtree to indent the tree visually. This can be " "used to generate pretty-printed XML output. *tree* can be an Element or " @@ -901,13 +900,13 @@ msgid "" "indentation level as *level*." msgstr "" -#: library/xml.etree.elementtree.rst:614 +#: library/xml.etree.elementtree.rst:613 msgid "" "Check if an object appears to be a valid element object. *element* is an " "element instance. Return ``True`` if this is an element object." msgstr "" -#: library/xml.etree.elementtree.rst:620 +#: library/xml.etree.elementtree.rst:619 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` " @@ -925,7 +924,7 @@ msgid "" "file object if *source* is a filename." msgstr "" -#: library/xml.etree.elementtree.rst:636 +#: library/xml.etree.elementtree.rst:635 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 " @@ -933,7 +932,7 @@ msgid "" "parsing, see :class:`XMLPullParser`." msgstr "" -#: library/xml.etree.elementtree.rst:643 +#: library/xml.etree.elementtree.rst:642 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, " @@ -942,23 +941,23 @@ msgid "" "present." msgstr "" -#: library/xml.etree.elementtree.rst:649 library/xml.etree.elementtree.rst:1522 +#: library/xml.etree.elementtree.rst:648 library/xml.etree.elementtree.rst:1521 msgid "If you need a fully populated element, look for \"end\" events instead." msgstr "" -#: library/xml.etree.elementtree.rst:651 +#: library/xml.etree.elementtree.rst:650 msgid "The *parser* argument." msgstr "" -#: library/xml.etree.elementtree.rst:654 library/xml.etree.elementtree.rst:1526 +#: library/xml.etree.elementtree.rst:653 library/xml.etree.elementtree.rst:1525 msgid "The ``comment`` and ``pi`` events were added." msgstr "" -#: library/xml.etree.elementtree.rst:657 +#: library/xml.etree.elementtree.rst:656 msgid "Added the :meth:`!close` method." msgstr "" -#: library/xml.etree.elementtree.rst:663 +#: library/xml.etree.elementtree.rst:662 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 " @@ -966,7 +965,7 @@ msgid "" "class:`ElementTree` instance." msgstr "" -#: library/xml.etree.elementtree.rst:671 +#: library/xml.etree.elementtree.rst:670 msgid "" "PI element factory. This factory function creates a special element that " "will be serialized as an XML processing instruction. *target* is a string " @@ -974,7 +973,7 @@ msgid "" "given. Returns an element instance, representing a processing instruction." msgstr "" -#: library/xml.etree.elementtree.rst:676 +#: library/xml.etree.elementtree.rst:675 msgid "" "Note that :class:`XMLParser` skips over processing instructions in the input " "instead of creating PI objects for them. An :class:`ElementTree` will only " @@ -982,7 +981,7 @@ msgid "" "tree using one of the :class:`Element` methods." msgstr "" -#: library/xml.etree.elementtree.rst:684 +#: library/xml.etree.elementtree.rst:683 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. " @@ -991,13 +990,13 @@ msgid "" "all possible." msgstr "" -#: library/xml.etree.elementtree.rst:695 +#: library/xml.etree.elementtree.rst:694 msgid "" "Subelement factory. This function creates an element instance, and appends " "it to an existing element." msgstr "" -#: library/xml.etree.elementtree.rst:698 +#: library/xml.etree.elementtree.rst:697 msgid "" "The element name, attribute names, and attribute values can be either " "bytestrings or Unicode strings. *parent* is the parent element. *tag* is " @@ -1006,7 +1005,7 @@ msgid "" "arguments. Returns an element instance." msgstr "" -#: library/xml.etree.elementtree.rst:709 +#: library/xml.etree.elementtree.rst:708 msgid "" "Generates a string representation of an XML element, including all " "subelements. *element* is an :class:`Element` instance. *encoding* [1]_ is " @@ -1018,22 +1017,22 @@ msgid "" "Returns an (optionally) encoded string containing the XML data." msgstr "" -#: library/xml.etree.elementtree.rst:718 library/xml.etree.elementtree.rst:745 -#: library/xml.etree.elementtree.rst:1199 +#: library/xml.etree.elementtree.rst:717 library/xml.etree.elementtree.rst:744 +#: library/xml.etree.elementtree.rst:1198 msgid "Added the *short_empty_elements* parameter." msgstr "" -#: library/xml.etree.elementtree.rst:721 library/xml.etree.elementtree.rst:748 +#: library/xml.etree.elementtree.rst:720 library/xml.etree.elementtree.rst:747 msgid "Added the *xml_declaration* and *default_namespace* parameters." msgstr "" -#: library/xml.etree.elementtree.rst:724 +#: library/xml.etree.elementtree.rst:723 msgid "" "The :func:`tostring` function now preserves the attribute order specified by " "the user." msgstr "" -#: library/xml.etree.elementtree.rst:733 +#: library/xml.etree.elementtree.rst:732 msgid "" "Generates a string representation of an XML element, including all " "subelements. *element* is an :class:`Element` instance. *encoding* [1]_ is " @@ -1047,13 +1046,13 @@ msgid "" "join(tostringlist(element)) == tostring(element)``." msgstr "" -#: library/xml.etree.elementtree.rst:751 +#: library/xml.etree.elementtree.rst:750 msgid "" "The :func:`tostringlist` function now preserves the attribute order " "specified by the user." msgstr "" -#: library/xml.etree.elementtree.rst:758 +#: library/xml.etree.elementtree.rst:757 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 " @@ -1061,7 +1060,7 @@ msgid "" "class:`XMLParser` parser is used. Returns an :class:`Element` instance." msgstr "" -#: library/xml.etree.elementtree.rst:766 +#: library/xml.etree.elementtree.rst:765 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 " @@ -1070,11 +1069,11 @@ msgid "" "`Element` instance and a dictionary." msgstr "" -#: library/xml.etree.elementtree.rst:776 +#: library/xml.etree.elementtree.rst:775 msgid "XInclude support" msgstr "" -#: library/xml.etree.elementtree.rst:778 +#: library/xml.etree.elementtree.rst:777 msgid "" "This module provides limited support for `XInclude directives `_, via the :mod:`xml.etree.ElementInclude` helper " @@ -1082,7 +1081,7 @@ msgid "" "element trees, based on information in the tree." msgstr "" -#: library/xml.etree.elementtree.rst:784 +#: library/xml.etree.elementtree.rst:783 msgid "" "Here's an example that demonstrates use of the XInclude module. To include " "an XML document in the current document, use the ``{http://www.w3.org/2001/" @@ -1090,7 +1089,7 @@ msgid "" "and use the **href** attribute to specify the document to include." msgstr "" -#: library/xml.etree.elementtree.rst:786 +#: library/xml.etree.elementtree.rst:785 msgid "" "\n" "\n" @@ -1098,20 +1097,20 @@ msgid "" "" msgstr "" -#: library/xml.etree.elementtree.rst:793 +#: library/xml.etree.elementtree.rst:792 msgid "" "By default, the **href** attribute is treated as a file name. You can use " "custom loaders to override this behaviour. Also note that the standard " "helper does not support XPointer syntax." msgstr "" -#: library/xml.etree.elementtree.rst:795 +#: library/xml.etree.elementtree.rst:794 msgid "" "To process this file, load it as usual, and pass the root element to the :" "mod:`xml.etree.ElementTree` module:" msgstr "" -#: library/xml.etree.elementtree.rst:797 +#: library/xml.etree.elementtree.rst:796 msgid "" "from xml.etree import ElementTree, ElementInclude\n" "\n" @@ -1121,33 +1120,33 @@ msgid "" "ElementInclude.include(root)" msgstr "" -#: library/xml.etree.elementtree.rst:806 +#: library/xml.etree.elementtree.rst:805 msgid "" "The ElementInclude module replaces the ``{http://www.w3.org/2001/XInclude}" "include`` element with the root element from the **source.xml** document. " "The result might look something like this:" msgstr "" -#: library/xml.etree.elementtree.rst:808 +#: library/xml.etree.elementtree.rst:807 msgid "" "\n" " This is a paragraph.\n" "" msgstr "" -#: library/xml.etree.elementtree.rst:814 +#: library/xml.etree.elementtree.rst:813 msgid "" "If the **parse** attribute is omitted, it defaults to \"xml\". The href " "attribute is required." msgstr "" -#: library/xml.etree.elementtree.rst:816 +#: library/xml.etree.elementtree.rst:815 msgid "" "To include a text document, use the ``{http://www.w3.org/2001/XInclude}" "include`` element, and set the **parse** attribute to \"text\":" msgstr "" -#: library/xml.etree.elementtree.rst:818 +#: library/xml.etree.elementtree.rst:817 msgid "" "\n" "\n" @@ -1155,18 +1154,18 @@ msgid "" "" msgstr "" -#: library/xml.etree.elementtree.rst:825 +#: library/xml.etree.elementtree.rst:824 msgid "The result might look something like:" msgstr "" -#: library/xml.etree.elementtree.rst:827 +#: library/xml.etree.elementtree.rst:826 msgid "" "\n" " Copyright (c) 2003.\n" "" msgstr "" -#: library/xml.etree.elementtree.rst:845 +#: library/xml.etree.elementtree.rst:844 msgid "" "Default loader. This default loader reads an included resource from disk. " "*href* is a URL. *parse* is for parse mode either \"xml\" or \"text\". " @@ -1177,7 +1176,7 @@ msgid "" "``None`` or raise an exception." msgstr "" -#: library/xml.etree.elementtree.rst:856 +#: library/xml.etree.elementtree.rst:855 msgid "" "This function expands XInclude directives in-place in tree pointed by " "*elem*. *elem* is either the root :class:`~xml.etree.ElementTree.Element` or " @@ -1190,21 +1189,21 @@ msgid "" "malicious content explosion. Pass ``None`` to disable the limitation." msgstr "" -#: library/xml.etree.elementtree.rst:866 +#: library/xml.etree.elementtree.rst:865 msgid "Added the *base_url* and *max_depth* parameters." msgstr "" -#: library/xml.etree.elementtree.rst:873 +#: library/xml.etree.elementtree.rst:872 msgid "Element Objects" msgstr "" -#: library/xml.etree.elementtree.rst:881 +#: library/xml.etree.elementtree.rst:880 msgid "" "Element class. This class defines the Element interface, and provides a " "reference implementation of this interface." msgstr "" -#: library/xml.etree.elementtree.rst:884 +#: library/xml.etree.elementtree.rst:883 msgid "" "The element name, attribute names, and attribute values can be either " "bytestrings or Unicode strings. *tag* is the element name. *attrib* is an " @@ -1212,13 +1211,13 @@ msgid "" "additional attributes, given as keyword arguments." msgstr "" -#: library/xml.etree.elementtree.rst:892 +#: library/xml.etree.elementtree.rst:891 msgid "" "A string identifying what kind of data this element represents (the element " "type, in other words)." msgstr "" -#: library/xml.etree.elementtree.rst:899 +#: library/xml.etree.elementtree.rst:898 msgid "" "These attributes can be used to hold additional data associated with the " "element. Their values are usually strings but may be any application-" @@ -1229,11 +1228,11 @@ msgid "" "the XML data" msgstr "" -#: library/xml.etree.elementtree.rst:907 +#: library/xml.etree.elementtree.rst:906 msgid "1234" msgstr "" -#: library/xml.etree.elementtree.rst:911 +#: library/xml.etree.elementtree.rst:910 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 " @@ -1241,17 +1240,17 @@ msgid "" "``None`` and *tail* ``\"3\"``." msgstr "" -#: library/xml.etree.elementtree.rst:916 +#: library/xml.etree.elementtree.rst:915 msgid "" "To collect the inner text of an element, see :meth:`itertext`, for example " "``\"\".join(element.itertext())``." msgstr "" -#: library/xml.etree.elementtree.rst:919 +#: library/xml.etree.elementtree.rst:918 msgid "Applications may store arbitrary objects in these attributes." msgstr "" -#: library/xml.etree.elementtree.rst:924 +#: library/xml.etree.elementtree.rst:923 msgid "" "A dictionary containing the element's attributes. Note that while the " "*attrib* value is always a real mutable Python dictionary, an ElementTree " @@ -1260,59 +1259,59 @@ msgid "" "implementations, use the dictionary methods below whenever possible." msgstr "" -#: library/xml.etree.elementtree.rst:930 +#: library/xml.etree.elementtree.rst:929 msgid "The following dictionary-like methods work on the element attributes." msgstr "" -#: library/xml.etree.elementtree.rst:935 +#: library/xml.etree.elementtree.rst:934 msgid "" "Resets an element. This function removes all subelements, clears all " "attributes, and sets the text and tail attributes to ``None``." msgstr "" -#: library/xml.etree.elementtree.rst:941 +#: library/xml.etree.elementtree.rst:940 msgid "Gets the element attribute named *key*." msgstr "" -#: library/xml.etree.elementtree.rst:943 +#: library/xml.etree.elementtree.rst:942 msgid "" "Returns the attribute value, or *default* if the attribute was not found." msgstr "" -#: library/xml.etree.elementtree.rst:948 +#: library/xml.etree.elementtree.rst:947 msgid "" "Returns the element attributes as a sequence of (name, value) pairs. The " "attributes are returned in an arbitrary order." msgstr "" -#: library/xml.etree.elementtree.rst:954 +#: library/xml.etree.elementtree.rst:953 msgid "" "Returns the elements attribute names as a list. The names are returned in " "an arbitrary order." msgstr "" -#: library/xml.etree.elementtree.rst:960 +#: library/xml.etree.elementtree.rst:959 msgid "Set the attribute *key* on the element to *value*." msgstr "" -#: library/xml.etree.elementtree.rst:962 +#: library/xml.etree.elementtree.rst:961 msgid "The following methods work on the element's children (subelements)." msgstr "" -#: library/xml.etree.elementtree.rst:967 +#: library/xml.etree.elementtree.rst:966 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 "" -#: library/xml.etree.elementtree.rst:974 +#: library/xml.etree.elementtree.rst:973 msgid "" "Appends *subelements* from an iterable of elements. Raises :exc:`TypeError` " "if a subelement is not an :class:`Element`." msgstr "" -#: library/xml.etree.elementtree.rst:982 +#: library/xml.etree.elementtree.rst:981 msgid "" "Finds the first subelement matching *match*. *match* may be a tag name or " "a :ref:`path `. Returns an element instance or " @@ -1321,7 +1320,7 @@ msgid "" "expression into the given namespace." msgstr "" -#: library/xml.etree.elementtree.rst:991 +#: library/xml.etree.elementtree.rst:990 msgid "" "Finds all matching subelements, by tag name or :ref:`path `. Returns a list containing all matching elements in document " @@ -1330,7 +1329,7 @@ msgid "" "expression into the given namespace." msgstr "" -#: library/xml.etree.elementtree.rst:1000 +#: library/xml.etree.elementtree.rst:999 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 " @@ -1341,13 +1340,13 @@ msgid "" "into the given namespace." msgstr "" -#: library/xml.etree.elementtree.rst:1011 +#: library/xml.etree.elementtree.rst:1010 msgid "" "Inserts *subelement* at the given position in this element. Raises :exc:" "`TypeError` if *subelement* is not an :class:`Element`." msgstr "" -#: library/xml.etree.elementtree.rst:1017 +#: library/xml.etree.elementtree.rst:1016 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 " @@ -1356,7 +1355,7 @@ msgid "" "structure is modified during iteration, the result is undefined." msgstr "" -#: library/xml.etree.elementtree.rst:1028 +#: library/xml.etree.elementtree.rst:1027 msgid "" "Finds all matching subelements, by tag name or :ref:`path `. Returns an iterable yielding all matching elements in document " @@ -1364,33 +1363,33 @@ msgid "" "name." msgstr "" -#: library/xml.etree.elementtree.rst:1039 +#: library/xml.etree.elementtree.rst:1038 msgid "" "Creates a text iterator. The iterator loops over this element and all " "subelements, in document order, and returns all inner text." msgstr "" -#: library/xml.etree.elementtree.rst:1047 +#: library/xml.etree.elementtree.rst:1046 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 "" -#: library/xml.etree.elementtree.rst:1053 +#: library/xml.etree.elementtree.rst:1052 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 "" -#: library/xml.etree.elementtree.rst:1057 +#: library/xml.etree.elementtree.rst:1056 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 "" -#: library/xml.etree.elementtree.rst:1062 +#: library/xml.etree.elementtree.rst:1061 msgid "" "Caution: Elements with no subelements will test as ``False``. In a future " "release of Python, all elements will test as ``True`` regardless of whether " @@ -1398,7 +1397,7 @@ msgid "" "None`` tests.::" msgstr "" -#: library/xml.etree.elementtree.rst:1067 +#: library/xml.etree.elementtree.rst:1066 msgid "" "element = root.find('foo')\n" "\n" @@ -1409,11 +1408,11 @@ msgid "" " print(\"element not found\")" msgstr "" -#: library/xml.etree.elementtree.rst:1075 +#: library/xml.etree.elementtree.rst:1074 msgid "Testing the truth value of an Element emits :exc:`DeprecationWarning`." msgstr "" -#: library/xml.etree.elementtree.rst:1078 +#: library/xml.etree.elementtree.rst:1077 msgid "" "Prior to Python 3.8, the serialisation order of the XML attributes of " "elements was artificially made predictable by sorting the attributes by " @@ -1422,7 +1421,7 @@ msgid "" "attributes were originally parsed or created by user code." msgstr "" -#: library/xml.etree.elementtree.rst:1084 +#: library/xml.etree.elementtree.rst:1083 msgid "" "In general, user code should try not to depend on a specific ordering of " "attributes, given that the `XML Information Set \n" " \n" @@ -1562,13 +1561,13 @@ msgid "" "" msgstr "" -#: library/xml.etree.elementtree.rst:1219 +#: library/xml.etree.elementtree.rst:1218 msgid "" "Example of changing the attribute \"target\" of every link in first " "paragraph::" msgstr "" -#: library/xml.etree.elementtree.rst:1221 +#: library/xml.etree.elementtree.rst:1220 msgid "" ">>> from xml.etree.ElementTree import ElementTree\n" ">>> tree = ElementTree()\n" @@ -1586,11 +1585,11 @@ msgid "" ">>> tree.write(\"output.xhtml\")" msgstr "" -#: library/xml.etree.elementtree.rst:1239 +#: library/xml.etree.elementtree.rst:1238 msgid "QName Objects" msgstr "" -#: library/xml.etree.elementtree.rst:1244 +#: library/xml.etree.elementtree.rst:1243 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 " @@ -1600,11 +1599,11 @@ msgid "" "class:`QName` instances are opaque." msgstr "" -#: library/xml.etree.elementtree.rst:1256 +#: library/xml.etree.elementtree.rst:1255 msgid "TreeBuilder Objects" msgstr "" -#: library/xml.etree.elementtree.rst:1262 +#: library/xml.etree.elementtree.rst:1261 msgid "" "Generic element structure builder. This builder converts a sequence of " "start, data, end, comment and pi method calls to a well-formed element " @@ -1612,14 +1611,14 @@ msgid "" "custom XML parser, or a parser for some other XML-like format." msgstr "" -#: library/xml.etree.elementtree.rst:1267 +#: library/xml.etree.elementtree.rst:1266 msgid "" "*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 "" -#: library/xml.etree.elementtree.rst:1271 +#: library/xml.etree.elementtree.rst:1270 msgid "" "The *comment_factory* and *pi_factory* functions, when given, should behave " "like the :func:`Comment` and :func:`ProcessingInstruction` functions to " @@ -1629,56 +1628,56 @@ msgid "" "element (but not outside of it)." msgstr "" -#: library/xml.etree.elementtree.rst:1280 +#: library/xml.etree.elementtree.rst:1279 msgid "" "Flushes the builder buffers, and returns the toplevel document element. " "Returns an :class:`Element` instance." msgstr "" -#: library/xml.etree.elementtree.rst:1286 +#: library/xml.etree.elementtree.rst:1285 msgid "" "Adds text to the current element. *data* is a string. This should be " "either a bytestring, or a Unicode string." msgstr "" -#: library/xml.etree.elementtree.rst:1292 +#: library/xml.etree.elementtree.rst:1291 msgid "" "Closes the current element. *tag* is the element name. Returns the closed " "element." msgstr "" -#: library/xml.etree.elementtree.rst:1298 +#: library/xml.etree.elementtree.rst:1297 msgid "" "Opens a new element. *tag* is the element name. *attrs* is a dictionary " "containing element attributes. Returns the opened element." msgstr "" -#: library/xml.etree.elementtree.rst:1304 +#: library/xml.etree.elementtree.rst:1303 msgid "" "Creates a comment with the given *text*. If ``insert_comments`` is true, " "this will also add it to the tree." msgstr "" -#: library/xml.etree.elementtree.rst:1312 +#: library/xml.etree.elementtree.rst:1311 msgid "" "Creates a process instruction with the given *target* name and *text*. If " "``insert_pis`` is true, this will also add it to the tree." msgstr "" -#: library/xml.etree.elementtree.rst:1318 +#: library/xml.etree.elementtree.rst:1317 msgid "" "In addition, a custom :class:`TreeBuilder` object can provide the following " "methods:" msgstr "" -#: library/xml.etree.elementtree.rst:1323 +#: library/xml.etree.elementtree.rst:1322 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 "" -#: library/xml.etree.elementtree.rst:1331 +#: library/xml.etree.elementtree.rst:1330 msgid "" "Is called whenever the parser encounters a new namespace declaration, before " "the ``start()`` callback for the opening element that defines it. *prefix* " @@ -1686,14 +1685,14 @@ msgid "" "otherwise. *uri* is the namespace URI." msgstr "" -#: library/xml.etree.elementtree.rst:1340 +#: library/xml.etree.elementtree.rst:1339 msgid "" "Is called after the ``end()`` callback of an element that declared a " "namespace prefix mapping, with the name of the *prefix* that went out of " "scope." msgstr "" -#: library/xml.etree.elementtree.rst:1352 +#: library/xml.etree.elementtree.rst:1351 msgid "" "A `C14N 2.0 `_ writer. Arguments are the " "same as for the :func:`canonicalize` function. This class does not build a " @@ -1701,11 +1700,11 @@ msgid "" "using the *write* function." msgstr "" -#: library/xml.etree.elementtree.rst:1363 +#: library/xml.etree.elementtree.rst:1362 msgid "XMLParser Objects" msgstr "" -#: library/xml.etree.elementtree.rst:1368 +#: library/xml.etree.elementtree.rst:1367 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 " @@ -1716,25 +1715,25 @@ msgid "" "XML file." msgstr "" -#: library/xml.etree.elementtree.rst:1376 +#: library/xml.etree.elementtree.rst:1375 msgid "" "Parameters are now :ref:`keyword-only `. The *html* " "argument is no longer supported." msgstr "" -#: library/xml.etree.elementtree.rst:1383 +#: library/xml.etree.elementtree.rst:1382 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 "" -#: library/xml.etree.elementtree.rst:1390 +#: library/xml.etree.elementtree.rst:1389 msgid "Feeds data to the parser. *data* is encoded data." msgstr "" -#: library/xml.etree.elementtree.rst:1395 -#: library/xml.etree.elementtree.rst:1473 +#: library/xml.etree.elementtree.rst:1394 +#: library/xml.etree.elementtree.rst:1472 msgid "" "Triggers parsing of any previously fed unparsed data, which can be used to " "ensure more immediate feedback, in particular with Expat >=2.6.0. The " @@ -1744,15 +1743,15 @@ msgid "" "xmlparser.SetReparseDeferralEnabled` for details." msgstr "" -#: library/xml.etree.elementtree.rst:1402 -#: library/xml.etree.elementtree.rst:1480 +#: library/xml.etree.elementtree.rst:1401 +#: library/xml.etree.elementtree.rst:1479 msgid "" "Note that :meth:`flush` has been backported to some prior releases of " "CPython as a security fix. Check for availability of :meth:`flush` using :" "func:`hasattr` if used in code running across a variety of Python versions." msgstr "" -#: library/xml.etree.elementtree.rst:1410 +#: library/xml.etree.elementtree.rst:1409 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 " @@ -1763,7 +1762,7 @@ msgid "" "of an XML file::" msgstr "" -#: library/xml.etree.elementtree.rst:1418 +#: library/xml.etree.elementtree.rst:1417 msgid "" ">>> from xml.etree.ElementTree import XMLParser\n" ">>> class MaxDepth: # The target object of the parser\n" @@ -1798,11 +1797,11 @@ msgid "" "4" msgstr "" -#: library/xml.etree.elementtree.rst:1454 +#: library/xml.etree.elementtree.rst:1453 msgid "XMLPullParser Objects" msgstr "" -#: library/xml.etree.elementtree.rst:1458 +#: library/xml.etree.elementtree.rst:1457 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 " @@ -1814,11 +1813,11 @@ msgid "" "If *events* is omitted, only ``\"end\"`` events are reported." msgstr "" -#: library/xml.etree.elementtree.rst:1469 +#: library/xml.etree.elementtree.rst:1468 msgid "Feed the given bytes data to the parser." msgstr "" -#: library/xml.etree.elementtree.rst:1489 +#: library/xml.etree.elementtree.rst:1488 msgid "" "Signal the parser that the data stream is terminated. Unlike :meth:" "`XMLParser.close`, this method always returns :const:`None`. Any events not " @@ -1826,7 +1825,7 @@ msgid "" "`read_events`." msgstr "" -#: library/xml.etree.elementtree.rst:1496 +#: library/xml.etree.elementtree.rst:1495 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 " @@ -1835,25 +1834,25 @@ msgid "" "follows." msgstr "" -#: library/xml.etree.elementtree.rst:1502 +#: library/xml.etree.elementtree.rst:1501 msgid "``start``, ``end``: the current Element." msgstr "" -#: library/xml.etree.elementtree.rst:1503 +#: library/xml.etree.elementtree.rst:1502 msgid "``comment``, ``pi``: the current comment / processing instruction" msgstr "" -#: library/xml.etree.elementtree.rst:1504 +#: library/xml.etree.elementtree.rst:1503 msgid "" "``start-ns``: a tuple ``(prefix, uri)`` naming the declared namespace " "mapping." msgstr "" -#: library/xml.etree.elementtree.rst:1506 +#: library/xml.etree.elementtree.rst:1505 msgid "``end-ns``: :const:`None` (this may change in a future version)" msgstr "" -#: library/xml.etree.elementtree.rst:1508 +#: library/xml.etree.elementtree.rst:1507 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 " @@ -1862,7 +1861,7 @@ msgid "" "results." msgstr "" -#: library/xml.etree.elementtree.rst:1516 +#: library/xml.etree.elementtree.rst:1515 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 " @@ -1871,11 +1870,11 @@ msgid "" "be present." msgstr "" -#: library/xml.etree.elementtree.rst:1531 +#: library/xml.etree.elementtree.rst:1530 msgid "Exceptions" msgstr "" -#: library/xml.etree.elementtree.rst:1535 +#: library/xml.etree.elementtree.rst:1534 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 " @@ -1883,22 +1882,22 @@ msgid "" "following attributes available:" msgstr "" -#: library/xml.etree.elementtree.rst:1542 +#: library/xml.etree.elementtree.rst:1541 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 "" -#: library/xml.etree.elementtree.rst:1547 +#: library/xml.etree.elementtree.rst:1546 msgid "" "A tuple of *line*, *column* numbers, specifying where the error occurred." msgstr "" -#: library/xml.etree.elementtree.rst:1550 +#: library/xml.etree.elementtree.rst:1549 msgid "Footnotes" msgstr "" -#: library/xml.etree.elementtree.rst:1551 +#: library/xml.etree.elementtree.rst:1550 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 " diff --git a/library/xml.po b/library/xml.po index dbf4056e..3ec650ef 100644 --- a/library/xml.po +++ b/library/xml.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -32,12 +32,11 @@ msgstr "" #: 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:`defusedxml-package` sections." +"If you need to parse untrusted or unauthenticated data, see :ref:`xml-" +"security`." msgstr "" -#: library/xml.rst:25 +#: library/xml.rst:23 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 " @@ -45,183 +44,86 @@ msgid "" "be available." msgstr "" -#: library/xml.rst:30 +#: library/xml.rst:28 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 "" -#: library/xml.rst:33 +#: library/xml.rst:31 msgid "The XML handling submodules are:" msgstr "" -#: library/xml.rst:35 +#: library/xml.rst:33 msgid "" ":mod:`xml.etree.ElementTree`: the ElementTree API, a simple and lightweight " "XML processor" msgstr "" -#: library/xml.rst:40 +#: library/xml.rst:38 msgid ":mod:`xml.dom`: the DOM API definition" msgstr "" -#: library/xml.rst:41 +#: library/xml.rst:39 msgid ":mod:`xml.dom.minidom`: a minimal DOM implementation" msgstr "" -#: library/xml.rst:42 +#: library/xml.rst:40 msgid ":mod:`xml.dom.pulldom`: support for building partial DOM trees" msgstr "" -#: library/xml.rst:46 +#: library/xml.rst:44 msgid ":mod:`xml.sax`: SAX2 base classes and convenience functions" msgstr "" -#: library/xml.rst:47 +#: library/xml.rst:45 msgid ":mod:`xml.parsers.expat`: the Expat parser binding" msgstr "" -#: library/xml.rst:53 -msgid "XML vulnerabilities" +#: library/xml.rst:52 +msgid "XML security" msgstr "" -#: library/xml.rst:55 +#: library/xml.rst:54 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." +"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 when attacker-controlled XML is being parsed, in Python " +"or elsewhere." msgstr "" -#: library/xml.rst:60 +#: library/xml.rst:59 msgid "" -"The following table gives an overview of the known attacks and whether the " -"various modules are vulnerable to them." -msgstr "" - -#: library/xml.rst:64 -msgid "kind" -msgstr "" - -#: library/xml.rst:64 -msgid "sax" -msgstr "" - -#: library/xml.rst:64 -msgid "etree" -msgstr "" - -#: library/xml.rst:64 -msgid "minidom" -msgstr "" - -#: library/xml.rst:64 -msgid "pulldom" -msgstr "" - -#: library/xml.rst:64 -msgid "xmlrpc" -msgstr "" - -#: library/xml.rst:66 -msgid "billion laughs" -msgstr "" - -#: library/xml.rst:67 -msgid "**Vulnerable** (1)" -msgstr "" - -#: library/xml.rst:67 -msgid "quadratic blowup" -msgstr "" - -#: library/xml.rst:106 -msgid "external entity expansion" -msgstr "" - -#: library/xml.rst:69 -msgid "Safe (5)" -msgstr "" - -#: library/xml.rst:68 -msgid "Safe (2)" -msgstr "" - -#: library/xml.rst:68 -msgid "Safe (3)" -msgstr "" - -#: library/xml.rst:68 -msgid "Safe (4)" -msgstr "" - -#: library/xml.rst:111 -msgid "`DTD`_ retrieval" -msgstr "" - -#: library/xml.rst:70 -msgid "Safe" -msgstr "" - -#: library/xml.rst:116 -msgid "decompression bomb" -msgstr "" - -#: library/xml.rst:70 -msgid "**Vulnerable**" +"The built-in XML parsers of Python rely on the library `libexpat`_, commonly " +"called Expat, for parsing XML." msgstr "" -#: library/xml.rst:123 -msgid "large tokens" -msgstr "" - -#: library/xml.rst:71 -msgid "**Vulnerable** (6)" -msgstr "" - -#: library/xml.rst:74 -msgid "" -"Expat 2.4.1 and newer is not vulnerable to the \"billion laughs\" and " -"\"quadratic blowup\" vulnerabilities. Items still listed as vulnerable due " -"to potential reliance on system-provided libraries. Check :const:`!pyexpat." -"EXPAT_VERSION`." -msgstr "" - -#: library/xml.rst:78 +#: library/xml.rst:62 msgid "" -":mod:`xml.etree.ElementTree` doesn't expand external entities and raises a :" -"exc:`~xml.etree.ElementTree.ParseError` when an entity occurs." +"By default, Expat itself does not access local files or create network " +"connections." msgstr "" -#: library/xml.rst:80 +#: library/xml.rst:65 msgid "" -":mod:`xml.dom.minidom` doesn't expand external entities and simply returns " -"the unexpanded entity verbatim." +"Expat versions lower than 2.7.2 may be vulnerable to the \"billion laughs\", " +"\"quadratic blowup\" and \"large tokens\" vulnerabilities, or to " +"disproportional use of dynamic memory. Python bundles a copy of Expat, and " +"whether Python uses the bundled or a system-wide Expat, depends on how the " +"Python interpreter :option:`has been configured <--with-system-expat>` in " +"your environment. Python may be vulnerable if it uses such older versions of " +"Expat. Check :const:`!pyexpat.EXPAT_VERSION`." msgstr "" -#: library/xml.rst:82 -msgid ":mod:`xmlrpc.client` doesn't expand external entities and omits them." -msgstr "" - -#: library/xml.rst:83 -msgid "" -"Since Python 3.7.1, external general entities are no longer processed by " -"default." -msgstr "" - -#: library/xml.rst:85 -msgid "" -"Expat 2.6.0 and newer is not vulnerable to denial of service through " -"quadratic runtime caused by parsing large tokens. Items still listed as " -"vulnerable due to potential reliance on system-provided libraries. Check :" -"const:`!pyexpat.EXPAT_VERSION`." +#: library/xml.rst:74 +msgid ":mod:`xmlrpc` is **vulnerable** to the \"decompression bomb\" attack." msgstr "" -#: library/xml.rst:92 +#: library/xml.rst:77 msgid "billion laughs / exponential entity expansion" msgstr "" -#: library/xml.rst:93 +#: library/xml.rst:78 msgid "" "The `Billion Laughs`_ attack -- also known as exponential entity expansion " "-- uses multiple levels of nested entities. Each entity refers to another " @@ -230,11 +132,11 @@ msgid "" "consumes lots of memory and CPU time." msgstr "" -#: library/xml.rst:99 +#: library/xml.rst:84 msgid "quadratic blowup entity expansion" msgstr "" -#: library/xml.rst:100 +#: library/xml.rst:85 msgid "" "A quadratic blowup attack is similar to a `Billion Laughs`_ attack; it " "abuses entity expansion, too. Instead of nested entities it repeats one " @@ -243,21 +145,11 @@ msgid "" "countermeasures that forbid deeply nested entities." msgstr "" -#: library/xml.rst:107 -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 "" - -#: library/xml.rst:112 -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." +#: library/xml.rst:91 +msgid "decompression bomb" msgstr "" -#: library/xml.rst:117 +#: library/xml.rst:92 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 " @@ -265,29 +157,14 @@ msgid "" "magnitudes or more." msgstr "" -#: library/xml.rst:124 +#: library/xml.rst:98 +msgid "large tokens" +msgstr "" + +#: library/xml.rst:99 msgid "" "Expat needs to re-parse unfinished tokens; without the protection introduced " "in Expat 2.6.0, this can lead to quadratic runtime that can be used to cause " "denial of service in the application parsing XML. The issue is known as :cve:" "`2023-52425`." msgstr "" - -#: library/xml.rst:129 -msgid "" -"The documentation for :pypi:`defusedxml` on PyPI has further information " -"about all known attack vectors with examples and references." -msgstr "" - -#: library/xml.rst:135 -msgid "The :mod:`!defusedxml` Package" -msgstr "" - -#: library/xml.rst:137 -msgid "" -":pypi:`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 "" diff --git a/library/xml.sax.handler.po b/library/xml.sax.handler.po index b64c421e..9972eaf5 100644 --- a/library/xml.sax.handler.po +++ b/library/xml.sax.handler.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-06-27 12:23+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -121,8 +121,8 @@ msgstr "" "namespace-prefixes; προεπιλογή)." #: library/xml.sax.handler.rst:76 library/xml.sax.handler.rst:94 -#: library/xml.sax.handler.rst:102 library/xml.sax.handler.rst:112 -#: library/xml.sax.handler.rst:144 +#: library/xml.sax.handler.rst:110 library/xml.sax.handler.rst:120 +#: library/xml.sax.handler.rst:152 msgid "access: (parsing) read-only; (not parsing) read/write" msgstr "access: (ανάλυση) μόνο για ανάγνωση; (μη ανάλυση) ανάγνωση/εγγραφή" @@ -182,23 +182,36 @@ msgstr "" msgid "false: Do not report validation errors." msgstr "false: Μη αναφορά σφαλμάτων επικύρωσης." -#: library/xml.sax.handler.rst:99 +#: library/xml.sax.handler.rst:101 +msgid "" +"Enabling opens a vulnerability to `external entity attacks `_ if the parser is used with " +"user-provided XML content. Please reflect on your `threat model `_ before enabling this feature." +msgstr "" +"Η ενεργοποίηση ανοίγει μια ευπάθεια σε `επιθέσεις εξωτερικών οντοτήτων " +"`_ εάν ο αναλυτής " +"χρησιμοποιείται με περιεχόμενο XML που παρέχεται από τον χρήστη. Παρακαλώ " +"σκεφτείτε το `μοντέλο απειλών σας `_ πριν ενεργοποιήσετε αυτό το χαρακτηριστικό." + +#: library/xml.sax.handler.rst:107 msgid "value: ``\"http://xml.org/sax/features/external-general-entities\"``" msgstr "value: ``\"http://xml.org/sax/features/external-general-entities\"``" -#: library/xml.sax.handler.rst:100 +#: library/xml.sax.handler.rst:108 msgid "true: Include all external general (text) entities." msgstr "true: Συμπερίληψη όλων των εξωτερικών γενικών (κείμενο) οντοτήτων." -#: library/xml.sax.handler.rst:101 +#: library/xml.sax.handler.rst:109 msgid "false: Do not include external general entities." msgstr "false: Μη συμπερίληψη εξωτερικών γενικών οντοτήτων." -#: library/xml.sax.handler.rst:107 +#: library/xml.sax.handler.rst:115 msgid "value: ``\"http://xml.org/sax/features/external-parameter-entities\"``" msgstr "value: ``\"http://xml.org/sax/features/external-parameter-entities\"``" -#: library/xml.sax.handler.rst:109 +#: library/xml.sax.handler.rst:117 msgid "" "true: Include all external parameter entities, including the external DTD " "subset." @@ -206,7 +219,7 @@ msgstr "" "true: Συμπερίληψη όλων των εξωτερικών παραμέτρων οντοτήτων, " "συμπεριλαμβανομένου του εξωτερικού υποσυνόλου DTD." -#: library/xml.sax.handler.rst:111 +#: library/xml.sax.handler.rst:119 msgid "" "false: Do not include any external parameter entities, even the external DTD " "subset." @@ -214,40 +227,40 @@ msgstr "" "false: Μη συμπερίληψη εξωτερικών παραμέτρων οντοτήτων, ακόμη και του " "εξωτερικού υποσυνόλου DTD." -#: library/xml.sax.handler.rst:117 +#: library/xml.sax.handler.rst:125 msgid "List of all features." msgstr "Λίστα όλων των χαρακτηριστικών." -#: library/xml.sax.handler.rst:122 +#: library/xml.sax.handler.rst:130 msgid "value: ``\"http://xml.org/sax/properties/lexical-handler\"``" msgstr "value: ``\"http://xml.org/sax/properties/lexical-handler\"``" -#: library/xml.sax.handler.rst:123 +#: library/xml.sax.handler.rst:131 msgid "data type: xml.sax.handler.LexicalHandler (not supported in Python 2)" msgstr "" "data type: xml.sax.handler.LexicalHandler (δεν υποστηρίζεται στην Python 2)" -#: library/xml.sax.handler.rst:125 +#: library/xml.sax.handler.rst:133 msgid "" "description: An optional extension handler for lexical events like comments." msgstr "" "description: Ένας προαιρετικός χειριστής επέκτασης για λεξικά συμβάντα όπως " "τα σχόλια." -#: library/xml.sax.handler.rst:126 library/xml.sax.handler.rst:135 +#: library/xml.sax.handler.rst:134 library/xml.sax.handler.rst:143 msgid "access: read/write" msgstr "access: read/write" -#: library/xml.sax.handler.rst:131 +#: library/xml.sax.handler.rst:139 msgid "value: ``\"http://xml.org/sax/properties/declaration-handler\"``" msgstr "value: ``\"http://xml.org/sax/properties/declaration-handler\"``" -#: library/xml.sax.handler.rst:132 +#: library/xml.sax.handler.rst:140 msgid "data type: xml.sax.sax2lib.DeclHandler (not supported in Python 2)" msgstr "" "data type: xml.sax.sax2lib.DeclHandler (δεν υποστηρίζεται στην Python 2)" -#: library/xml.sax.handler.rst:134 +#: library/xml.sax.handler.rst:142 msgid "" "description: An optional extension handler for DTD-related events other than " "notations and unparsed entities." @@ -255,15 +268,15 @@ msgstr "" "description: Ένας προαιρετικός χειριστής επέκτασης για γεγονότα που " "σχετίζονται με το DTD εκτός από τις δηλώσεις και τις μη αναλυμένες οντότητες." -#: library/xml.sax.handler.rst:140 +#: library/xml.sax.handler.rst:148 msgid "value: ``\"http://xml.org/sax/properties/dom-node\"``" msgstr "value: ``\"http://xml.org/sax/properties/dom-node\"``" -#: library/xml.sax.handler.rst:141 +#: library/xml.sax.handler.rst:149 msgid "data type: org.w3c.dom.Node (not supported in Python 2)" msgstr "data type: org.w3c.dom.Node (δεν υποστηρίζεται στην Python 2)" -#: library/xml.sax.handler.rst:143 +#: library/xml.sax.handler.rst:151 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." @@ -272,15 +285,15 @@ msgstr "" "αυτός είναι ένας επαναληπτικός DOM κόμβος∙ όταν δεν αναλύεται, ο ριζικός DOM " "κόμβος για την επανάληψη." -#: library/xml.sax.handler.rst:149 +#: library/xml.sax.handler.rst:157 msgid "value: ``\"http://xml.org/sax/properties/xml-string\"``" msgstr "value: ``\"http://xml.org/sax/properties/xml-string\"``" -#: library/xml.sax.handler.rst:150 +#: library/xml.sax.handler.rst:158 msgid "data type: Bytes" msgstr "data type: Bytes" -#: library/xml.sax.handler.rst:152 +#: library/xml.sax.handler.rst:160 msgid "" "description: The literal string of characters that was the source for the " "current event." @@ -288,19 +301,19 @@ msgstr "" "description: Η κυριολεκτική συμβολοσειρά χαρακτήρων που ήταν η πηγή για το " "τρέχον γεγονός." -#: library/xml.sax.handler.rst:153 +#: library/xml.sax.handler.rst:161 msgid "access: read-only" msgstr "access: μόνο για ανάγνωση" -#: library/xml.sax.handler.rst:158 +#: library/xml.sax.handler.rst:166 msgid "List of all known property names." msgstr "Λίστα όλων των γνωστών ονομάτων ιδιοτήτων." -#: library/xml.sax.handler.rst:164 +#: library/xml.sax.handler.rst:172 msgid "ContentHandler Objects" msgstr "ContentHandler Αντικείμενα" -#: library/xml.sax.handler.rst:166 +#: library/xml.sax.handler.rst:174 msgid "" "Users are expected to subclass :class:`ContentHandler` to support their " "application. The following methods are called by the parser on the " @@ -310,7 +323,7 @@ msgstr "" "να υποστηρίξουν την εφαρμογή τους. Οι ακόλουθες μέθοδοι καλούνται από τον " "αναλυτή στα κατάλληλα γεγονότα στο έγγραφο εισόδου:" -#: library/xml.sax.handler.rst:173 +#: library/xml.sax.handler.rst:181 msgid "" "Called by the parser to give the application a locator for locating the " "origin of document events." @@ -318,7 +331,7 @@ msgstr "" "Καλείται από τον αναλυτή για να δώσει στην εφαρμογή έναν εντοπιστή για τον " "εντοπισμό της προέλευσης των γεγονότων του εγγράφου." -#: library/xml.sax.handler.rst:176 +#: library/xml.sax.handler.rst:184 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 " @@ -330,7 +343,7 @@ msgstr "" "στην εφαρμογή καλώντας αυτή τη μέθοδο πριν από την κλήση οποιωνδήποτε άλλων " "μεθόδων στη διεπαφή DocumentHandler." -#: library/xml.sax.handler.rst:181 +#: library/xml.sax.handler.rst:189 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. " @@ -347,7 +360,7 @@ msgstr "" "εφαρμογής). Οι πληροφορίες που επιστρέφονται από τον εντοπιστή πιθανώς δεν " "είναι αρκετές για χρήση με μια μηχανή αναζήτησης." -#: library/xml.sax.handler.rst:188 +#: library/xml.sax.handler.rst:196 msgid "" "Note that the locator will return correct information only during the " "invocation of the events in this interface. The application should not " @@ -357,11 +370,11 @@ msgstr "" "κλήση των γεγονότων σε αυτή τη διεπαφή. Η εφαρμογή δεν θα πρέπει να " "προσπαθήσει να τον χρησιμοποιήσει σε οποιαδήποτε άλλη στιγμή." -#: library/xml.sax.handler.rst:195 +#: library/xml.sax.handler.rst:203 msgid "Receive notification of the beginning of a document." msgstr "Λήψη ειδοποίησης για την αρχή ενός εγγράφου." -#: library/xml.sax.handler.rst:197 +#: library/xml.sax.handler.rst:205 msgid "" "The SAX parser will invoke this method only once, before any other methods " "in this interface or in DTDHandler (except for :meth:`setDocumentLocator`)." @@ -370,11 +383,11 @@ msgstr "" "άλλη μέθοδο σε αυτή τη διεπαφή ή σε DTDHandler (εκτός από :meth:" "`setDocumentLocator`)." -#: library/xml.sax.handler.rst:203 +#: library/xml.sax.handler.rst:211 msgid "Receive notification of the end of a document." msgstr "Λήψη ειδοποίησης για το τέλος ενός εγγράφου." -#: library/xml.sax.handler.rst:205 +#: library/xml.sax.handler.rst:213 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 " @@ -386,11 +399,11 @@ msgstr "" "δεν θα καλέσει αυτή τη μέθοδο μέχρι να εγκαταλείψει την ανάλυση (εξαιτίας " "ενός μη ανακτήσιμου σφάλματος) ή να φτάσει στο τέλος της εισόδου." -#: library/xml.sax.handler.rst:213 +#: library/xml.sax.handler.rst:221 msgid "Begin the scope of a prefix-URI Namespace mapping." msgstr "Αρχή της έκτασης ενός προθέματος-URI χαρτογράφησης ονόματος χώρου." -#: library/xml.sax.handler.rst:215 +#: library/xml.sax.handler.rst:223 msgid "" "The information from this event is not necessary for normal Namespace " "processing: the SAX XML reader will automatically replace prefixes for " @@ -402,7 +415,7 @@ msgstr "" "τα προθέματα για τα ονόματα στοιχείων και ιδιοτήτων όταν είναι " "ενεργοποιημένο το χαρακτηριστικό ``feature_namespaces`` (η προεπιλογή)." -#: library/xml.sax.handler.rst:220 +#: library/xml.sax.handler.rst:228 msgid "" "There are cases, however, when applications need to use prefixes in " "character data or in attribute values, where they cannot safely be expanded " @@ -416,7 +429,7 @@ msgstr "" "meth:`endPrefixMapping` παρέχουν στις εφαρμογές τις πληροφορίες για να " "επεκτείνουν τα προθέματα σε αυτά τα συμφραζόμενα, εάν είναι απαραίτητο." -#: library/xml.sax.handler.rst:228 +#: library/xml.sax.handler.rst:236 msgid "" "Note that :meth:`startPrefixMapping` and :meth:`endPrefixMapping` events are " "not guaranteed to be properly nested relative to each-other: all :meth:" @@ -432,11 +445,11 @@ msgstr "" "meth:`endPrefixMapping` θα συμβούν μετά το αντίστοιχο :meth:`endElement` " "γεγονός, αλλά η σειρά τους δεν είναι εγγυημένη." -#: library/xml.sax.handler.rst:238 +#: library/xml.sax.handler.rst:246 msgid "End the scope of a prefix-URI mapping." msgstr "Τέλος της έκτασης μιας χαρτογράφησης προθέματος-URI." -#: library/xml.sax.handler.rst:240 +#: library/xml.sax.handler.rst:248 msgid "" "See :meth:`startPrefixMapping` for details. This event will always occur " "after the corresponding :meth:`endElement` event, but the order of :meth:" @@ -446,34 +459,34 @@ msgstr "" "πάντα μετά το αντίστοιχο γεγονός :meth:`endElement`, αλλά η σειρά των " "γεγονότων :meth:`endPrefixMapping` δεν είναι εγγυημένη." -#: library/xml.sax.handler.rst:247 +#: library/xml.sax.handler.rst:255 msgid "Signals the start of an element in non-namespace mode." msgstr "Σηματοδοτεί την αρχή ενός στοιχείου σε λειτουργία χωρίς ονόματα χώρου." -#: library/xml.sax.handler.rst:249 +#: library/xml.sax.handler.rst:257 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." +"string and the *attrs* parameter holds an object of the :ref:`Attributes " +"` interface 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 "" "Η παράμετρος *name* περιέχει το ακατέργαστο όνομα XML 1.0 του τύπου " "στοιχείου ως συμβολοσειρά και η παράμετρος *attrs* περιέχει ένα αντικείμενο " -"της :class:`~xml.sax.xmlreader.Attributes` διεπαφής (βλ. :ref:`attributes-" -"objects`) που περιέχει τις ιδιότητες του στοιχείου. Το αντικείμενο που " -"περιέχεται στην παράμετρο *attrs* μπορεί να χρησιμοποιηθεί ξανά από τον " -"αναλυτή. Η διατήρηση αναφοράς σε αυτό δεν είναι αξιόπιστος τρόπος για να " -"διατηρήσετε αντίγραφο των ιδιοτήτων. Για να διατηρήσετε ένα αντίγραφο των " -"ιδιοτήτων, χρησιμοποιήστε τη μέθοδο :meth:`copy` του αντικειμένου *attrs*." - -#: library/xml.sax.handler.rst:261 +"της :ref:`Attributes ` διεπαφής που περιέχει τις " +"ιδιότητες του στοιχείου. Το αντικείμενο που περιέχεται στην παράμετρο " +"*attrs* μπορεί να χρησιμοποιηθεί ξανά από τον αναλυτή∙ η διατήρηση αναφοράς " +"σε αυτό δεν είναι αξιόπιστος τρόπος για να διατηρήσετε αντίγραφο των " +"ιδιοτήτων. Για να διατηρήσετε ένα αντίγραφο των ιδιοτήτων, χρησιμοποιήστε τη " +"μέθοδο :meth:`copy` του αντικειμένου *attrs*." + +#: library/xml.sax.handler.rst:268 msgid "Signals the end of an element in non-namespace mode." msgstr "Σηματοδοτεί το τέλος ενός στοιχείου σε λειτουργία χωρίς ονόματα χώρου." -#: library/xml.sax.handler.rst:263 +#: library/xml.sax.handler.rst:270 msgid "" "The *name* parameter contains the name of the element type, just as with " "the :meth:`startElement` event." @@ -481,36 +494,35 @@ msgstr "" "Η παράμετρος *name* περιέχει το όνομα του τύπου στοιχείου, όπως και με το :" "meth:`startElement` γεγονός." -#: library/xml.sax.handler.rst:269 +#: library/xml.sax.handler.rst:276 msgid "Signals the start of an element in namespace mode." msgstr "Σηματοδοτεί την αρχή ενός στοιχείου σε λειτουργία ονομάτων χώρου." -#: library/xml.sax.handler.rst:271 +#: library/xml.sax.handler.rst:278 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." +"ref:`AttributesNS ` interface 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 "" "Η παράμετρος *name* περιέχει το όνομα του τύπου στοιχείου ως ``(uri, " "localname)`` πλειάδα, η παράμετρος *qname* περιέχει το ακατέργαστο όνομα XML " "1.0 που χρησιμοποιείται στο έγγραφο προέλευσης, και η παράμετρος *attrs* " -"περιέχει μια παρουσία της διεπαφής :class:`~xml.sax.xmlreader.AttributesNS` " -"(βλ. :ref:`attributes-ns-objects`) που περιέχει τις ιδιότητες του στοιχείου. " -"Εάν δεν συσχετίζεται κανένα όνομα χώρου με το στοιχείο, το *uri* συστατικό " -"του *name* θα είναι ``None``. Το αντικείμενο που περιέχεται στην παράμετρο " -"*attrs* μπορεί να χρησιμοποιηθεί ξανά από τον αναλυτή. Η διατήρηση αναφοράς " -"σε αυτό δεν είναι αξιόπιστος τρόπος για να διατηρήσετε αντίγραφο των " -"ιδιοτήτων. Για να διατηρήσετε ένα αντίγραφο των ιδιοτήτων, χρησιμοποιήστε τη " -"μέθοδο :meth:`copy` του αντικειμένου *attrs*." +"περιέχει μια παρουσία της διεπαφής :ref:`AttributesNS ` που περιέχει τις ιδιότητες του στοιχείου. Εάν δεν συσχετίζεται " +"κανένα όνομα χώρου με το στοιχείο, το *uri* συστατικό του *name* θα είναι " +"``None``. Το αντικείμενο που περιέχεται στην παράμετρο *attrs* μπορεί να " +"χρησιμοποιηθεί ξανά από τον αναλυτή. Η διατήρηση αναφοράς σε αυτό δεν είναι " +"αξιόπιστος τρόπος για να διατηρήσετε αντίγραφο των ιδιοτήτων. Για να " +"διατηρήσετε ένα αντίγραφο των ιδιοτήτων, χρησιμοποιήστε τη μέθοδο :meth:" +"`copy` του αντικειμένου *attrs*." -#: library/xml.sax.handler.rst:282 +#: library/xml.sax.handler.rst:288 msgid "" "Parsers may set the *qname* parameter to ``None``, unless the " "``feature_namespace_prefixes`` feature is activated." @@ -518,11 +530,11 @@ msgstr "" "Οι αναλυτές μπορούν να ορίσουν την παράμετρο *qname* σε ``None``, εκτός εάν " "είναι ενεργοποιημένο το χαρακτηριστικό ``feature_namespace_prefixes``." -#: library/xml.sax.handler.rst:288 +#: library/xml.sax.handler.rst:294 msgid "Signals the end of an element in namespace mode." msgstr "Σηματοδοτεί το τέλος ενός στοιχείου σε λειτουργία ονομάτων χώρου." -#: library/xml.sax.handler.rst:290 +#: library/xml.sax.handler.rst:296 msgid "" "The *name* parameter contains the name of the element type, just as with " "the :meth:`startElementNS` method, likewise the *qname* parameter." @@ -530,11 +542,11 @@ msgstr "" "Η παράμετρος *name* περιέχει το όνομα του τύπου στοιχείου, όπως και με τη :" "meth:`startElementNS` μέθοδο, όπως και η παράμετρος *qname*." -#: library/xml.sax.handler.rst:296 +#: library/xml.sax.handler.rst:302 msgid "Receive notification of character data." msgstr "Λήψη ειδοποίησης για δεδομένα χαρακτήρων." -#: library/xml.sax.handler.rst:298 +#: library/xml.sax.handler.rst:304 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 " @@ -549,7 +561,7 @@ msgstr "" "πρέπει να προέρχονται από την ίδια εξωτερική οντότητα, έτσι ώστε ο " "Εντοπιστής να παρέχει χρήσιμες πληροφορίες." -#: library/xml.sax.handler.rst:304 +#: library/xml.sax.handler.rst:310 msgid "" "*content* may be a string or bytes instance; the ``expat`` reader module " "always produces strings." @@ -557,7 +569,7 @@ msgstr "" "Το *content* μπορεί να είναι μια συμβολοσειρά ή ένα στιγμιότυπο bytes. Το " "αναγνωστικό ``expat`` παράγει πάντα συμβολοσειρές." -#: library/xml.sax.handler.rst:309 +#: library/xml.sax.handler.rst:315 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 " @@ -574,11 +586,11 @@ msgstr "" "κώδικα στη νέα διεπαφή, χρησιμοποιήστε *content* αντί να τεμαχίζετε το " "περιεχόμενο με τις παλιές παραμέτρους *offset* και *length*." -#: library/xml.sax.handler.rst:318 +#: library/xml.sax.handler.rst:324 msgid "Receive notification of ignorable whitespace in element content." msgstr "Λήψη ειδοποίησης για αγνοήσιμα κενά σε περιεχόμενο στοιχείου." -#: library/xml.sax.handler.rst:320 +#: library/xml.sax.handler.rst:326 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-" @@ -591,7 +603,7 @@ msgstr "" "μέθοδο εάν είναι ικανοί να αναλύουν και να χρησιμοποιούν μοντέλα " "περιεχομένου." -#: library/xml.sax.handler.rst:325 +#: library/xml.sax.handler.rst:331 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 " @@ -604,11 +616,11 @@ msgstr "" "ίδια εξωτερική οντότητα, έτσι ώστε ο Εντοπιστής να παρέχει χρήσιμες " "πληροφορίες." -#: library/xml.sax.handler.rst:333 +#: library/xml.sax.handler.rst:339 msgid "Receive notification of a processing instruction." msgstr "Λήψη ειδοποίησης για μια οδηγία επεξεργασίας." -#: library/xml.sax.handler.rst:335 +#: library/xml.sax.handler.rst:341 msgid "" "The Parser will invoke this method once for each processing instruction " "found: note that processing instructions may occur before or after the main " @@ -618,7 +630,7 @@ msgstr "" "που βρέθηκε: σημειώστε ότι οι οδηγίες επεξεργασίας μπορεί να εμφανίζονται " "πριν ή μετά το κύριο στοιχείο του εγγράφου." -#: library/xml.sax.handler.rst:339 +#: library/xml.sax.handler.rst:345 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." @@ -627,11 +639,11 @@ msgstr "" "2.8) ή μια δήλωση κειμένου (XML 1.0, τμήμα 4.3.1) χρησιμοποιώντας αυτή τη " "μέθοδο." -#: library/xml.sax.handler.rst:345 +#: library/xml.sax.handler.rst:351 msgid "Receive notification of a skipped entity." msgstr "Λήψη ειδοποίησης για μια παράλειψη οντότητας." -#: library/xml.sax.handler.rst:347 +#: library/xml.sax.handler.rst:353 msgid "" "The Parser will invoke this method once for each entity skipped. Non-" "validating processors may skip entities if they have not seen the " @@ -647,27 +659,27 @@ msgstr "" "οντότητες, ανάλογα με τις τιμές των ιδιοτήτων ``feature_external_ges`` και " "``feature_external_pes``." -#: library/xml.sax.handler.rst:357 +#: library/xml.sax.handler.rst:363 msgid "DTDHandler Objects" msgstr "DTDHandler Αντικείμενα" -#: library/xml.sax.handler.rst:359 +#: library/xml.sax.handler.rst:365 msgid ":class:`DTDHandler` instances provide the following methods:" msgstr "Τα :class:`DTDHandler` αντικείμενα παρέχουν τις ακόλουθες μεθόδους:" -#: library/xml.sax.handler.rst:364 +#: library/xml.sax.handler.rst:370 msgid "Handle a notation declaration event." msgstr "Χειρισμός ενός γεγονότος δήλωσης σημείωσης." -#: library/xml.sax.handler.rst:369 +#: library/xml.sax.handler.rst:375 msgid "Handle an unparsed entity declaration event." msgstr "Χειρισμός ενός γεγονότος δήλωσης μη αναλυμένης οντότητας." -#: library/xml.sax.handler.rst:375 +#: library/xml.sax.handler.rst:381 msgid "EntityResolver Objects" msgstr "EntityResolver Αντικείμενα" -#: library/xml.sax.handler.rst:380 +#: library/xml.sax.handler.rst:386 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 " @@ -677,11 +689,11 @@ msgstr "" "αναγνωριστικό συστήματος για ανάγνωση ως συμβολοσειρά, είτε μια InputSource " "για ανάγνωση. Η προεπιλεγμένη υλοποίηση επιστρέφει το *systemId*." -#: library/xml.sax.handler.rst:388 +#: library/xml.sax.handler.rst:394 msgid "ErrorHandler Objects" msgstr "ErrorHandler Αντικείμενα" -#: library/xml.sax.handler.rst:390 +#: library/xml.sax.handler.rst:396 msgid "" "Objects with this interface are used to receive error and warning " "information from the :class:`~xml.sax.xmlreader.XMLReader`. If you create " @@ -705,7 +717,7 @@ msgstr "" "μπορούν να μετατραπούν σε εξαίρεση κάνοντας raise το αντικείμενο της " "εξαίρεσης που περιέχεται." -#: library/xml.sax.handler.rst:403 +#: library/xml.sax.handler.rst:409 msgid "" "Called when the parser encounters a recoverable error. If this method does " "not raise an exception, parsing may continue, but further document " @@ -719,7 +731,7 @@ msgstr "" "Η επιτρεπόμενη συνέχιση του αναλυτή μπορεί να επιτρέψει την ανακάλυψη " "πρόσθετων σφαλμάτων στο έγγραφο εισόδου." -#: library/xml.sax.handler.rst:411 +#: library/xml.sax.handler.rst:417 msgid "" "Called when the parser encounters an error it cannot recover from; parsing " "is expected to terminate when this method returns." @@ -728,7 +740,7 @@ msgstr "" "ανακάμψει. Η ανάλυση αναμένεται να τερματιστεί όταν αυτή η μέθοδος " "επιστρέψει." -#: library/xml.sax.handler.rst:417 +#: library/xml.sax.handler.rst:423 msgid "" "Called when the parser presents minor warning information to the " "application. Parsing is expected to continue when this method returns, and " @@ -741,15 +753,15 @@ msgstr "" "Κάνοντας raise μια εξαίρεση σε αυτή τη μέθοδο, θα οδηγήσει στον τερματισμό " "της ανάλυσης." -#: library/xml.sax.handler.rst:426 +#: library/xml.sax.handler.rst:432 msgid "LexicalHandler Objects" msgstr "LexicalHandler Αντικείμενα" -#: library/xml.sax.handler.rst:427 +#: library/xml.sax.handler.rst:433 msgid "Optional SAX2 handler for lexical events." msgstr "Προαιρετικός χειριστής SAX2 για λεξικά γεγονότα." -#: library/xml.sax.handler.rst:429 +#: library/xml.sax.handler.rst:435 msgid "" "This handler is used to obtain lexical information about an XML document. " "Lexical information includes information describing the document encoding " @@ -764,7 +776,7 @@ msgstr "" "DTD και για τυχόν τμήματα CDATA. Οι λεξικοί χειριστές χρησιμοποιούνται με " "τον ίδιο τρόπο όπως οι χειριστές περιεχομένου." -#: library/xml.sax.handler.rst:435 +#: library/xml.sax.handler.rst:441 msgid "" "Set the LexicalHandler of an XMLReader by using the setProperty method with " "the property identifier ``'http://xml.org/sax/properties/lexical-handler'``." @@ -773,7 +785,7 @@ msgstr "" "setProperty με τον αναγνωριστικό ιδιότητας ``'http://xml.org/sax/properties/" "lexical-handler'``." -#: library/xml.sax.handler.rst:442 +#: library/xml.sax.handler.rst:448 msgid "" "Reports a comment anywhere in the document (including the DTD and outside " "the document element)." @@ -781,22 +793,22 @@ msgstr "" "Αναφέρει ένα σχόλιο οπουδήποτε στο έγγραφο (συμπεριλαμβανομένου του DTD και " "εκτός του στοιχείου εγγράφου)." -#: library/xml.sax.handler.rst:447 +#: library/xml.sax.handler.rst:453 msgid "" "Reports the start of the DTD declarations if the document has an associated " "DTD." msgstr "" "Αναφέρει την αρχή των δηλώσεων DTD εάν το έγγραφο έχει συσχετισμένο DTD." -#: library/xml.sax.handler.rst:452 +#: library/xml.sax.handler.rst:458 msgid "Reports the end of DTD declaration." msgstr "Αναφέρει το τέλος της δήλωσης DTD." -#: library/xml.sax.handler.rst:456 +#: library/xml.sax.handler.rst:462 msgid "Reports the start of a CDATA marked section." msgstr "Αναφέρει την αρχή ενός τμήματος σημειωμένου ως CDATA." -#: library/xml.sax.handler.rst:458 +#: library/xml.sax.handler.rst:464 msgid "" "The contents of the CDATA marked section will be reported through the " "characters handler." @@ -804,6 +816,6 @@ msgstr "" "Τα περιεχόμενα του τμήματος σημειωμένου ως CDATA θα αναφερθούν μέσω του " "χειριστή χαρακτήρων." -#: library/xml.sax.handler.rst:463 +#: library/xml.sax.handler.rst:469 msgid "Reports the end of a CDATA marked section." msgstr "Αναφέρει το τέλος ενός τμήματος σημειωμένου ως CDATA." diff --git a/library/xml.sax.po b/library/xml.sax.po index 5af4a483..efde70e3 100644 --- a/library/xml.sax.po +++ b/library/xml.sax.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,12 +35,11 @@ msgstr "" #: 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`." +"If you need to parse untrusted or unauthenticated data, see :ref:`xml-" +"security`." msgstr "" -#: library/xml.sax.rst:29 +#: library/xml.sax.rst:28 msgid "" "The SAX parser no longer processes general external entities by default to " "increase security. Before, the parser created network connections to fetch " @@ -50,11 +49,11 @@ msgid "" "`~xml.sax.handler.feature_external_ges`." msgstr "" -#: library/xml.sax.rst:36 +#: library/xml.sax.rst:35 msgid "The convenience functions are:" msgstr "" -#: library/xml.sax.rst:41 +#: library/xml.sax.rst:40 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 " @@ -63,11 +62,11 @@ msgid "" "modules in the default list of parsers." msgstr "" -#: library/xml.sax.rst:47 +#: library/xml.sax.rst:46 msgid "The *parser_list* argument can be any iterable, not just a list." msgstr "" -#: library/xml.sax.rst:53 +#: library/xml.sax.rst:52 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* " @@ -78,18 +77,18 @@ msgid "" "passed in." msgstr "" -#: library/xml.sax.rst:64 +#: library/xml.sax.rst:63 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 "" -#: library/xml.sax.rst:68 +#: library/xml.sax.rst:67 msgid "Added support of :class:`str` instances." msgstr "" -#: library/xml.sax.rst:71 +#: library/xml.sax.rst:70 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. " @@ -103,7 +102,7 @@ msgid "" "structural and syntactic events from the input data." msgstr "" -#: library/xml.sax.rst:82 +#: library/xml.sax.rst:81 msgid "" "For these objects, only the interfaces are relevant; they are normally not " "instantiated by the application itself. Since Python does not have an " @@ -119,13 +118,13 @@ msgid "" "interfaces are described below." msgstr "" -#: library/xml.sax.rst:95 +#: library/xml.sax.rst:94 msgid "" "In addition to these classes, :mod:`xml.sax` provides the following " "exception classes." msgstr "" -#: library/xml.sax.rst:101 +#: library/xml.sax.rst:100 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 " @@ -136,7 +135,7 @@ msgid "" "container for information." msgstr "" -#: library/xml.sax.rst:109 +#: library/xml.sax.rst:108 msgid "" "When instantiated, *msg* should be a human-readable description of the " "error. The optional *exception* parameter, if given, should be ``None`` or " @@ -144,11 +143,11 @@ msgid "" "as information." msgstr "" -#: library/xml.sax.rst:113 +#: library/xml.sax.rst:112 msgid "This is the base class for the other SAX exception classes." msgstr "" -#: library/xml.sax.rst:118 +#: library/xml.sax.rst:117 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." @@ -157,14 +156,14 @@ msgid "" "as the :class:`SAXException` interface." msgstr "" -#: library/xml.sax.rst:128 +#: library/xml.sax.rst:127 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 "" -#: library/xml.sax.rst:136 +#: library/xml.sax.rst:135 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 " @@ -172,54 +171,54 @@ msgid "" "applications and extensions may use this class for similar purposes." msgstr "" -#: library/xml.sax.rst:145 +#: library/xml.sax.rst:144 msgid "`SAX: The Simple API for XML `_" msgstr "" -#: library/xml.sax.rst:146 +#: library/xml.sax.rst:145 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 "" -#: library/xml.sax.rst:150 +#: library/xml.sax.rst:149 msgid "Module :mod:`xml.sax.handler`" msgstr "" -#: library/xml.sax.rst:151 +#: library/xml.sax.rst:150 msgid "Definitions of the interfaces for application-provided objects." msgstr "" -#: library/xml.sax.rst:153 +#: library/xml.sax.rst:152 msgid "Module :mod:`xml.sax.saxutils`" msgstr "" -#: library/xml.sax.rst:154 +#: library/xml.sax.rst:153 msgid "Convenience functions for use in SAX applications." msgstr "" -#: library/xml.sax.rst:156 +#: library/xml.sax.rst:155 msgid "Module :mod:`xml.sax.xmlreader`" msgstr "" -#: library/xml.sax.rst:157 +#: library/xml.sax.rst:156 msgid "Definitions of the interfaces for parser-provided objects." msgstr "" -#: library/xml.sax.rst:163 +#: library/xml.sax.rst:162 msgid "SAXException Objects" msgstr "" -#: library/xml.sax.rst:165 +#: library/xml.sax.rst:164 msgid "" "The :class:`SAXException` exception class supports the following methods:" msgstr "" -#: library/xml.sax.rst:170 +#: library/xml.sax.rst:169 msgid "Return a human-readable message describing the error condition." msgstr "" -#: library/xml.sax.rst:175 +#: library/xml.sax.rst:174 msgid "Return an encapsulated exception object, or ``None``." msgstr "" diff --git a/library/xml.sax.reader.po b/library/xml.sax.reader.po index 3bcac94f..d2c145bb 100644 --- a/library/xml.sax.reader.po +++ b/library/xml.sax.reader.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/xml.sax.utils.po b/library/xml.sax.utils.po index ea8d8026..50c3b9fb 100644 --- a/library/xml.sax.utils.po +++ b/library/xml.sax.utils.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -59,7 +59,7 @@ msgstr "" 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. ``'&'``, " +"each key will be replaced with its corresponding value. ``'&'``, " "``'<'``, and ``'>'`` are always unescaped, even if *entities* is " "provided." msgstr "" diff --git a/library/xmlrpc.client.po b/library/xmlrpc.client.po index 73fb5d94..fef0b013 100644 --- a/library/xmlrpc.client.po +++ b/library/xmlrpc.client.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -37,8 +37,8 @@ msgstr "" #: 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`." +"constructed data. If you need to parse untrusted or unauthenticated data, " +"see :ref:`xml-security`." msgstr "" #: library/xmlrpc.client.rst:32 @@ -712,7 +712,7 @@ msgstr "" #: library/xmlrpc.client.rst:527 msgid "" -"Convert *params* into an XML-RPC request. or into a response if " +"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 " diff --git a/library/xmlrpc.po b/library/xmlrpc.po index eb1fd8f5..34fa2e07 100644 --- a/library/xmlrpc.po +++ b/library/xmlrpc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/library/xmlrpc.server.po b/library/xmlrpc.server.po index 3dbe3c83..1470e676 100644 --- a/library/xmlrpc.server.po +++ b/library/xmlrpc.server.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -36,8 +36,8 @@ msgstr "" #: 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`." +"constructed data. If you need to parse untrusted or unauthenticated data, " +"see :ref:`xml-security`." msgstr "" #: includes/wasm-notavail.rst:3 diff --git a/library/zipapp.po b/library/zipapp.po index 32ec0780..7b78310f 100644 --- a/library/zipapp.po +++ b/library/zipapp.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-10 10:19+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-06-14 12:23+0300\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" diff --git a/library/zipfile.po b/library/zipfile.po index cc310f24..1b297267 100644 --- a/library/zipfile.po +++ b/library/zipfile.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,50 +35,59 @@ msgstr "" #: 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." +"This module does not handle multipart 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 " +"cannot create an encrypted file. Decryption is extremely slow as it is " +"implemented in native Python rather than C." msgstr "" -#: library/zipfile.rst:26 +#: library/zipfile.rst:29 +msgid "" +"Handling compressed archives requires :term:`optional modules ` such as :mod:`zlib`, :mod:`bz2`, :mod:`lzma`, and :mod:`compression." +"zstd`. If any of them are missing from your copy of CPython, look for " +"documentation from your distributor (that is, whoever provided Python to " +"you). If you are the distributor, see :ref:`optional-module-requirements`." +msgstr "" + +#: library/zipfile.rst:36 msgid "The module defines the following items:" msgstr "" -#: library/zipfile.rst:30 +#: library/zipfile.rst:40 msgid "The error raised for bad ZIP files." msgstr "" -#: library/zipfile.rst:37 +#: library/zipfile.rst:47 msgid "" "Alias of :exc:`BadZipFile`, for compatibility with older Python versions." msgstr "" -#: library/zipfile.rst:44 +#: library/zipfile.rst:54 msgid "" "The error raised when a ZIP file would require ZIP64 functionality but that " "has not been enabled." msgstr "" -#: library/zipfile.rst:51 +#: library/zipfile.rst:61 msgid "" "The class for reading and writing ZIP files. See section :ref:`zipfile-" "objects` for constructor details." msgstr "" -#: library/zipfile.rst:58 +#: library/zipfile.rst:68 msgid "" "Class that implements a subset of the interface provided by :class:`pathlib." "Path`, including the full :class:`importlib.resources.abc.Traversable` " "interface." msgstr "" -#: library/zipfile.rst:68 +#: library/zipfile.rst:78 msgid "Class for creating ZIP archives containing Python libraries." msgstr "" -#: library/zipfile.rst:73 +#: library/zipfile.rst:83 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` " @@ -90,96 +99,111 @@ msgid "" "ref:`zipinfo-objects`." msgstr "" -#: library/zipfile.rst:82 +#: library/zipfile.rst:92 msgid "" "A public :attr:`!compress_level` attribute has been added to expose the " "formerly protected :attr:`!_compresslevel`. The older protected name " "continues to work as a property for backwards compatibility." msgstr "" -#: library/zipfile.rst:90 +#: library/zipfile.rst:100 msgid "" "Resolve the date_time, compression attributes, and external attributes to " "suitable defaults as used by :meth:`ZipFile.writestr`." msgstr "" -#: library/zipfile.rst:93 +#: library/zipfile.rst:103 msgid "Returns self for chaining." msgstr "" -#: library/zipfile.rst:100 +#: library/zipfile.rst:110 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 "" -#: library/zipfile.rst:103 +#: library/zipfile.rst:113 msgid "Support for file and file-like objects." msgstr "" -#: library/zipfile.rst:109 +#: library/zipfile.rst:119 msgid "The numeric constant for an uncompressed archive member." msgstr "" -#: library/zipfile.rst:114 +#: library/zipfile.rst:124 msgid "" "The numeric constant for the usual ZIP compression method. This requires " "the :mod:`zlib` module." msgstr "" -#: library/zipfile.rst:120 +#: library/zipfile.rst:130 msgid "" "The numeric constant for the BZIP2 compression method. This requires the :" "mod:`bz2` module." msgstr "" -#: library/zipfile.rst:127 +#: library/zipfile.rst:137 msgid "" "The numeric constant for the LZMA compression method. This requires the :" "mod:`lzma` module." msgstr "" -#: library/zipfile.rst:134 +#: library/zipfile.rst:144 +msgid "" +"The numeric constant for Zstandard compression. This requires the :mod:" +"`compression.zstd` module." +msgstr "" + +#: library/zipfile.rst:149 +msgid "" +"In APPNOTE 6.3.7, the method ID ``20`` was assigned to Zstandard " +"compression. This was changed in APPNOTE 6.3.8 to method ID ``93`` to avoid " +"conflicts, with method ID ``20`` being deprecated. For compatibility, the :" +"mod:`!zipfile` module reads both method IDs but will only write data with " +"method ID ``93``." +msgstr "" + +#: library/zipfile.rst:159 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." +"since 2001, for LZMA compression since 2006, and Zstandard compression since " +"2020. 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 "" -#: library/zipfile.rst:143 +#: library/zipfile.rst:167 msgid "`PKZIP Application Note`_" msgstr "" -#: library/zipfile.rst:144 +#: library/zipfile.rst:168 msgid "" "Documentation on the ZIP file format by Phil Katz, the creator of the format " "and algorithms used." msgstr "" -#: library/zipfile.rst:147 +#: library/zipfile.rst:171 msgid "`Info-ZIP Home Page `_" msgstr "" -#: library/zipfile.rst:148 +#: library/zipfile.rst:172 msgid "" "Information about the Info-ZIP project's ZIP archive programs and " "development libraries." msgstr "" -#: library/zipfile.rst:155 -msgid "ZipFile Objects" +#: library/zipfile.rst:179 +msgid "ZipFile objects" msgstr "" -#: library/zipfile.rst:162 +#: library/zipfile.rst:186 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 "" -#: library/zipfile.rst:165 +#: library/zipfile.rst:189 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 " @@ -193,18 +217,19 @@ msgid "" "``'r'`` or ``'a'``, the file should be seekable." msgstr "" -#: library/zipfile.rst:177 +#: library/zipfile.rst:201 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`." +"and should be :const:`ZIP_STORED`, :const:`ZIP_DEFLATED`, :const:" +"`ZIP_BZIP2`, :const:`ZIP_LZMA`, or :const:`ZIP_ZSTANDARD`; unrecognized " +"values will cause :exc:`NotImplementedError` to be raised. If :const:" +"`ZIP_DEFLATED`, :const:`ZIP_BZIP2`, :const:`ZIP_LZMA`, or :const:" +"`ZIP_ZSTANDARD` is specified but the corresponding module (:mod:`zlib`, :mod:" +"`bz2`, :mod:`lzma`, or :mod:`compression.zstd`) is not available, :exc:" +"`RuntimeError` is raised. The default is :const:`ZIP_STORED`." msgstr "" -#: library/zipfile.rst:185 +#: library/zipfile.rst:210 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 " @@ -212,17 +237,21 @@ msgid "" "require ZIP64 extensions." msgstr "" -#: library/zipfile.rst:190 +#: library/zipfile.rst:215 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)." +"accepted (see :class:`bz2 ` for more information). When using :" +"const:`ZIP_ZSTANDARD` integers ``-131072`` through ``22`` are commonly " +"accepted (see :attr:`CompressionParameter.compression_level ` for more on retrieving valid " +"values and their meaning)." msgstr "" -#: library/zipfile.rst:787 +#: library/zipfile.rst:809 msgid "" "The *strict_timestamps* argument, when set to ``False``, allows to zip files " "older than 1980-01-01 at the cost of setting the timestamp to 1980-01-01. " @@ -230,40 +259,40 @@ msgid "" "also set to the limit." msgstr "" -#: library/zipfile.rst:204 +#: library/zipfile.rst:233 msgid "" "When mode is ``'r'``, *metadata_encoding* may be set to the name of a codec, " "which will be used to decode metadata such as the names of members and ZIP " "comments." msgstr "" -#: library/zipfile.rst:208 +#: library/zipfile.rst:237 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 "" -#: library/zipfile.rst:212 +#: library/zipfile.rst:241 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 "" -#: library/zipfile.rst:216 +#: library/zipfile.rst:245 msgid "" "with ZipFile('spam.zip', 'w') as myzip:\n" " myzip.write('eggs.txt')" msgstr "" -#: library/zipfile.rst:221 +#: library/zipfile.rst:250 msgid "" "*metadata_encoding* is an instance-wide setting for the ZipFile. It is not " -"currently possible to set this on a per-member basis." +"possible to set this on a per-member basis." msgstr "" -#: library/zipfile.rst:224 +#: library/zipfile.rst:253 msgid "" "This attribute is a workaround for legacy implementations which produce " "archives with names in the current locale encoding or code page (mostly on " @@ -273,73 +302,73 @@ msgid "" "is a Python-specific extension." msgstr "" -#: library/zipfile.rst:232 +#: library/zipfile.rst:261 msgid "Added the ability to use :class:`ZipFile` as a context manager." msgstr "" -#: library/zipfile.rst:235 +#: library/zipfile.rst:264 msgid "Added support for :mod:`bzip2 ` and :mod:`lzma` compression." msgstr "" -#: library/zipfile.rst:700 +#: library/zipfile.rst:722 msgid "ZIP64 extensions are enabled by default." msgstr "" -#: library/zipfile.rst:241 +#: library/zipfile.rst:270 msgid "" "Added support for writing to unseekable streams. Added support for the " "``'x'`` mode." msgstr "" -#: library/zipfile.rst:245 +#: library/zipfile.rst:274 msgid "" "Previously, a plain :exc:`RuntimeError` was raised for unrecognized " "compression values." msgstr "" -#: library/zipfile.rst:249 +#: library/zipfile.rst:278 msgid "The *file* parameter accepts a :term:`path-like object`." msgstr "" -#: library/zipfile.rst:252 +#: library/zipfile.rst:281 msgid "Add the *compresslevel* parameter." msgstr "" -#: library/zipfile.rst:255 +#: library/zipfile.rst:284 msgid "The *strict_timestamps* keyword-only parameter." msgstr "" -#: library/zipfile.rst:258 +#: library/zipfile.rst:287 msgid "" "Added support for specifying member name encoding for reading metadata in " "the zipfile's directory and file headers." msgstr "" -#: library/zipfile.rst:265 +#: library/zipfile.rst:294 msgid "" "Close the archive file. You must call :meth:`close` before exiting your " "program or essential records will not be written." msgstr "" -#: library/zipfile.rst:271 +#: library/zipfile.rst:300 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 "" -#: library/zipfile.rst:278 +#: library/zipfile.rst:307 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 "" -#: library/zipfile.rst:285 +#: library/zipfile.rst:314 msgid "Return a list of archive members by name." msgstr "" -#: library/zipfile.rst:290 +#: library/zipfile.rst:319 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. " @@ -348,20 +377,20 @@ msgid "" "class:`bytes` object." msgstr "" -#: library/zipfile.rst:296 +#: library/zipfile.rst:325 msgid "" ":meth:`~ZipFile.open` is also a context manager and therefore supports the :" "keyword:`with` statement::" msgstr "" -#: library/zipfile.rst:299 +#: library/zipfile.rst:328 msgid "" "with ZipFile('spam.zip') as myzip:\n" " with myzip.open('eggs.txt') as myfile:\n" " print(myfile.read())" msgstr "" -#: library/zipfile.rst:303 +#: library/zipfile.rst:332 msgid "" "With *mode* ``'r'`` the file-like object (``ZipExtFile``) is read-only and " "provides the following methods: :meth:`~io.BufferedIOBase.read`, :meth:`~io." @@ -370,7 +399,7 @@ msgid "" "__next__`. These objects can operate independently of the ZipFile." msgstr "" -#: library/zipfile.rst:310 +#: library/zipfile.rst:339 msgid "" "With ``mode='w'``, a writable file handle is returned, which supports the :" "meth:`~io.BufferedIOBase.write` method. While a writable file handle is " @@ -378,14 +407,14 @@ msgid "" "exc:`ValueError`." msgstr "" -#: library/zipfile.rst:315 +#: library/zipfile.rst:344 msgid "" "In both cases the file-like object has also attributes :attr:`!name`, which " "is equivalent to the name of a file within the archive, and :attr:`!mode`, " "which is ``'rb'`` or ``'wb'`` depending on the input mode." msgstr "" -#: library/zipfile.rst:319 +#: library/zipfile.rst:348 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 " @@ -394,39 +423,39 @@ msgid "" "as the *name* parameter." msgstr "" -#: library/zipfile.rst:327 +#: library/zipfile.rst:356 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 "" -#: library/zipfile.rst:331 +#: library/zipfile.rst:360 msgid "" "Removed support of ``mode='U'``. Use :class:`io.TextIOWrapper` for reading " "compressed text files in :term:`universal newlines` mode." msgstr "" -#: library/zipfile.rst:335 +#: library/zipfile.rst:364 msgid "" ":meth:`ZipFile.open` can now be used to write files into the archive with " "the ``mode='w'`` option." msgstr "" -#: library/zipfile.rst:339 +#: library/zipfile.rst:368 msgid "" "Calling :meth:`.open` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" -#: library/zipfile.rst:343 +#: library/zipfile.rst:372 msgid "" "Added attributes :attr:`!name` and :attr:`!mode` for the writeable file-like " "object. The value of the :attr:`!mode` attribute for the readable file-like " "object was changed from ``'r'`` to ``'rb'``." msgstr "" -#: library/zipfile.rst:352 +#: library/zipfile.rst:381 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 " @@ -435,11 +464,11 @@ msgid "" "*pwd* is the password used for encrypted files as a :class:`bytes` object." msgstr "" -#: library/zipfile.rst:358 +#: library/zipfile.rst:387 msgid "Returns the normalized path created (a directory or new file)." msgstr "" -#: library/zipfile.rst:362 +#: library/zipfile.rst:391 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 " @@ -450,17 +479,17 @@ msgid "" "(``_``)." msgstr "" -#: library/zipfile.rst:370 +#: library/zipfile.rst:399 msgid "" "Calling :meth:`extract` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" -#: library/zipfile.rst:397 +#: library/zipfile.rst:426 msgid "The *path* parameter accepts a :term:`path-like object`." msgstr "" -#: library/zipfile.rst:380 +#: library/zipfile.rst:409 msgid "" "Extract all members from the archive to the current working directory. " "*path* specifies a different directory to extract to. *members* is optional " @@ -468,7 +497,7 @@ msgid "" "password used for encrypted files as a :class:`bytes` object." msgstr "" -#: library/zipfile.rst:387 +#: library/zipfile.rst:416 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 " @@ -476,23 +505,23 @@ msgid "" "\"``. This module attempts to prevent that. See :meth:`extract` note." msgstr "" -#: library/zipfile.rst:393 +#: library/zipfile.rst:422 msgid "" "Calling :meth:`extractall` on a closed ZipFile will raise a :exc:" "`ValueError`. Previously, a :exc:`RuntimeError` was raised." msgstr "" -#: library/zipfile.rst:403 +#: library/zipfile.rst:432 msgid "Print a table of contents for the archive to ``sys.stdout``." msgstr "" -#: library/zipfile.rst:408 +#: library/zipfile.rst:437 msgid "" "Set *pwd* (a :class:`bytes` object) as default password to extract encrypted " "files." msgstr "" -#: library/zipfile.rst:413 +#: library/zipfile.rst:442 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 " @@ -500,30 +529,30 @@ msgid "" "a :class:`bytes` object and, if specified, overrides 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." +"const:`ZIP_BZIP2`, :const:`ZIP_LZMA`, or :const:`ZIP_ZSTANDARD` will raise " +"a :exc:`NotImplementedError`. An error will also be raised if the " +"corresponding compression module is not available." msgstr "" -#: library/zipfile.rst:422 +#: library/zipfile.rst:452 msgid "" "Calling :meth:`read` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" -#: library/zipfile.rst:429 +#: library/zipfile.rst:459 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 "" -#: library/zipfile.rst:432 +#: library/zipfile.rst:462 msgid "" "Calling :meth:`testzip` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" -#: library/zipfile.rst:440 +#: library/zipfile.rst:470 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 " @@ -534,7 +563,7 @@ msgid "" "``'x'`` or ``'a'``." msgstr "" -#: library/zipfile.rst:450 +#: library/zipfile.rst:480 msgid "" "The ZIP file standard historically did not specify a metadata encoding, but " "strongly recommended CP437 (the original IBM PC encoding) for " @@ -544,33 +573,33 @@ msgid "" "in any encoding other than ASCII or UTF-8." msgstr "" -#: library/zipfile.rst:459 +#: library/zipfile.rst:489 msgid "" "Archive names should be relative to the archive root, that is, they should " "not start with a path separator." msgstr "" -#: library/zipfile.rst:464 +#: library/zipfile.rst:494 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 "" -#: library/zipfile.rst:469 +#: library/zipfile.rst:499 msgid "" "A leading slash in the filename may lead to the archive being impossible to " "open in some zip programs on Windows systems." msgstr "" -#: library/zipfile.rst:472 +#: library/zipfile.rst:502 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 "" -#: library/zipfile.rst:481 +#: library/zipfile.rst:511 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 " @@ -581,7 +610,7 @@ msgid "" "must be opened with mode ``'w'``, ``'x'`` or ``'a'``." msgstr "" -#: library/zipfile.rst:489 +#: library/zipfile.rst:519 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* " @@ -589,7 +618,7 @@ msgid "" "override the constructor if given." msgstr "" -#: library/zipfile.rst:496 +#: library/zipfile.rst:526 msgid "" "When passing a :class:`ZipInfo` instance as the *zinfo_or_arcname* " "parameter, the compression method used will be that specified in the " @@ -597,18 +626,18 @@ msgid "" "the :class:`ZipInfo` constructor sets this member to :const:`ZIP_STORED`." msgstr "" -#: library/zipfile.rst:501 +#: library/zipfile.rst:531 msgid "The *compress_type* argument." msgstr "" -#: library/zipfile.rst:504 +#: library/zipfile.rst:534 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 "" -#: library/zipfile.rst:511 +#: library/zipfile.rst:541 msgid "" "Create a directory inside the archive. If *zinfo_or_directory* is a string, " "a directory is created inside the archive with the mode that is specified in " @@ -616,26 +645,26 @@ msgid "" "instance then the *mode* argument is ignored." msgstr "" -#: library/zipfile.rst:516 +#: library/zipfile.rst:546 msgid "The archive must be opened with mode ``'w'``, ``'x'`` or ``'a'``." msgstr "" -#: library/zipfile.rst:521 +#: library/zipfile.rst:551 msgid "The following data attributes are also available:" msgstr "" -#: library/zipfile.rst:525 +#: library/zipfile.rst:555 msgid "Name of the ZIP file." msgstr "" -#: library/zipfile.rst:529 +#: library/zipfile.rst:559 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 "" -#: library/zipfile.rst:535 +#: library/zipfile.rst:565 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 " @@ -643,32 +672,24 @@ msgid "" "Comments longer than this will be truncated." msgstr "" -#: library/zipfile.rst:543 -msgid "" -"The offset to the start of ZIP data from the beginning of the file. When " -"the :class:`ZipFile` is opened in either mode ``'w'`` or ``'x'`` and the " -"underlying file does not support ``tell()``, the value will be ``None`` " -"instead." -msgstr "" - -#: library/zipfile.rst:553 -msgid "Path Objects" +#: library/zipfile.rst:575 +msgid "Path objects" msgstr "" -#: library/zipfile.rst:557 +#: library/zipfile.rst:579 msgid "" "Construct a Path object from a ``root`` zipfile (which may be a :class:" "`ZipFile` instance or ``file`` suitable for passing to the :class:`ZipFile` " "constructor)." msgstr "" -#: library/zipfile.rst:561 +#: library/zipfile.rst:583 msgid "" "``at`` specifies the location of this Path within the zipfile, e.g. 'dir/" "file.txt', 'dir/', or ''. Defaults to the empty string, indicating the root." msgstr "" -#: library/zipfile.rst:566 +#: library/zipfile.rst:588 msgid "" "The :class:`Path` class does not sanitize filenames within the ZIP archive. " "Unlike the :meth:`ZipFile.extract` and :meth:`ZipFile.extractall` methods, " @@ -679,20 +700,20 @@ msgid "" "directory with :func:`os.path.commonpath`." msgstr "" -#: library/zipfile.rst:573 +#: library/zipfile.rst:595 msgid "" "Path objects expose the following features of :mod:`pathlib.Path` objects:" msgstr "" -#: library/zipfile.rst:576 +#: library/zipfile.rst:598 msgid "Path objects are traversable using the ``/`` operator or ``joinpath``." msgstr "" -#: library/zipfile.rst:580 +#: library/zipfile.rst:602 msgid "The final path component." msgstr "" -#: library/zipfile.rst:584 +#: library/zipfile.rst:606 msgid "" "Invoke :meth:`ZipFile.open` on the current path. Allows opening for read or " "write, text or binary through supported modes: 'r', 'w', 'rb', 'wb'. " @@ -701,12 +722,12 @@ msgid "" "``pwd`` parameter to :meth:`ZipFile.open`." msgstr "" -#: library/zipfile.rst:593 +#: library/zipfile.rst:615 msgid "" "Added support for text and binary modes for open. Default mode is now text." msgstr "" -#: library/zipfile.rst:658 +#: library/zipfile.rst:680 msgid "" "The ``encoding`` parameter can be supplied as a positional argument without " "causing a :exc:`TypeError`. As it could in 3.9. Code needing to be " @@ -714,134 +735,134 @@ msgid "" "TextIOWrapper` arguments, ``encoding`` included, as keywords." msgstr "" -#: library/zipfile.rst:605 +#: library/zipfile.rst:627 msgid "Enumerate the children of the current directory." msgstr "" -#: library/zipfile.rst:609 +#: library/zipfile.rst:631 msgid "Return ``True`` if the current context references a directory." msgstr "" -#: library/zipfile.rst:613 +#: library/zipfile.rst:635 msgid "Return ``True`` if the current context references a file." msgstr "" -#: library/zipfile.rst:617 +#: library/zipfile.rst:639 msgid "Return ``True`` if the current context references a symbolic link." msgstr "" -#: library/zipfile.rst:621 +#: library/zipfile.rst:643 msgid "Previously, ``is_symlink`` would unconditionally return ``False``." msgstr "" -#: library/zipfile.rst:626 +#: library/zipfile.rst:648 msgid "" "Return ``True`` if the current context references a file or directory in the " "zip file." msgstr "" -#: library/zipfile.rst:631 +#: library/zipfile.rst:653 msgid "" "The last dot-separated portion of the final component, if any. This is " "commonly called the file extension." msgstr "" -#: library/zipfile.rst:634 +#: library/zipfile.rst:656 msgid "Added :data:`Path.suffix` property." msgstr "" -#: library/zipfile.rst:639 +#: library/zipfile.rst:661 msgid "The final path component, without its suffix." msgstr "" -#: library/zipfile.rst:641 +#: library/zipfile.rst:663 msgid "Added :data:`Path.stem` property." msgstr "" -#: library/zipfile.rst:646 +#: library/zipfile.rst:668 msgid "A list of the path’s suffixes, commonly called file extensions." msgstr "" -#: library/zipfile.rst:648 +#: library/zipfile.rst:670 msgid "Added :data:`Path.suffixes` property." msgstr "" -#: library/zipfile.rst:653 +#: library/zipfile.rst:675 msgid "" "Read the current file as unicode text. Positional and keyword arguments are " "passed through to :class:`io.TextIOWrapper` (except ``buffer``, which is " "implied by the context)." msgstr "" -#: library/zipfile.rst:666 +#: library/zipfile.rst:688 msgid "Read the current file as bytes." msgstr "" -#: library/zipfile.rst:670 +#: library/zipfile.rst:692 msgid "" "Return a new Path object with each of the *other* arguments joined. The " "following are equivalent::" msgstr "" -#: library/zipfile.rst:673 +#: library/zipfile.rst:695 msgid "" ">>> Path(...).joinpath('child').joinpath('grandchild')\n" ">>> Path(...).joinpath('child', 'grandchild')\n" ">>> Path(...) / 'child' / 'grandchild'" msgstr "" -#: library/zipfile.rst:677 +#: library/zipfile.rst:699 msgid "" "Prior to 3.10, ``joinpath`` was undocumented and accepted exactly one " "parameter." msgstr "" -#: library/zipfile.rst:681 +#: library/zipfile.rst:703 msgid "" "The :pypi:`zipp` project provides backports of the latest path object " "functionality to older Pythons. Use ``zipp.Path`` in place of ``zipfile." "Path`` for early access to changes." msgstr "" -#: library/zipfile.rst:689 -msgid "PyZipFile Objects" +#: library/zipfile.rst:711 +msgid "PyZipFile objects" msgstr "" -#: library/zipfile.rst:691 +#: library/zipfile.rst:713 msgid "" "The :class:`PyZipFile` constructor takes the same parameters as the :class:" "`ZipFile` constructor, and one additional parameter, *optimize*." msgstr "" -#: library/zipfile.rst:697 +#: library/zipfile.rst:719 msgid "Added the *optimize* parameter." msgstr "" -#: library/zipfile.rst:703 +#: library/zipfile.rst:725 msgid "" "Instances have one method in addition to those of :class:`ZipFile` objects:" msgstr "" -#: library/zipfile.rst:707 +#: library/zipfile.rst:729 msgid "" "Search for files :file:`\\*.py` and add the corresponding file to the " "archive." msgstr "" -#: library/zipfile.rst:710 +#: library/zipfile.rst:732 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 "" -#: library/zipfile.rst:713 +#: library/zipfile.rst:735 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 "" -#: library/zipfile.rst:717 +#: library/zipfile.rst:739 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 " @@ -854,11 +875,11 @@ msgid "" "in sorted order." msgstr "" -#: library/zipfile.rst:727 +#: library/zipfile.rst:749 msgid "*basename* is intended for internal use only." msgstr "" -#: library/zipfile.rst:729 +#: library/zipfile.rst:751 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) " @@ -869,7 +890,7 @@ msgid "" "exclude them::" msgstr "" -#: library/zipfile.rst:737 +#: library/zipfile.rst:759 msgid "" ">>> zf = PyZipFile('myprog.zip')\n" ">>> def notests(s):\n" @@ -879,11 +900,11 @@ msgid "" ">>> zf.writepy('myprog', filterfunc=notests)" msgstr "" -#: library/zipfile.rst:744 +#: library/zipfile.rst:766 msgid "The :meth:`writepy` method makes archives with file names like this::" msgstr "" -#: library/zipfile.rst:747 +#: library/zipfile.rst:769 msgid "" "string.pyc # Top level name\n" "test/__init__.pyc # Package directory\n" @@ -892,302 +913,320 @@ msgid "" "test/bogus/myfile.pyc # Submodule test.bogus.myfile" msgstr "" -#: library/zipfile.rst:753 +#: library/zipfile.rst:775 msgid "Added the *filterfunc* parameter." msgstr "" -#: library/zipfile.rst:756 +#: library/zipfile.rst:778 msgid "The *pathname* parameter accepts a :term:`path-like object`." msgstr "" -#: library/zipfile.rst:759 +#: library/zipfile.rst:781 msgid "Recursion sorts directory entries." msgstr "" -#: library/zipfile.rst:766 -msgid "ZipInfo Objects" +#: library/zipfile.rst:788 +msgid "ZipInfo objects" msgstr "" -#: library/zipfile.rst:768 +#: library/zipfile.rst:790 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 "" -#: library/zipfile.rst:772 +#: library/zipfile.rst:794 msgid "" "There is one classmethod to make a :class:`ZipInfo` instance for a " "filesystem file:" msgstr "" -#: library/zipfile.rst:778 +#: library/zipfile.rst:800 msgid "" "Construct a :class:`ZipInfo` instance for a file on the filesystem, in " "preparation for adding it to a zip file." msgstr "" -#: library/zipfile.rst:781 +#: library/zipfile.rst:803 msgid "*filename* should be the path to a file or directory on the filesystem." msgstr "" -#: library/zipfile.rst:783 +#: library/zipfile.rst:805 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 "" -#: library/zipfile.rst:795 +#: library/zipfile.rst:817 msgid "The *filename* parameter accepts a :term:`path-like object`." msgstr "" -#: library/zipfile.rst:798 +#: library/zipfile.rst:820 msgid "Added the *strict_timestamps* keyword-only parameter." msgstr "" -#: library/zipfile.rst:802 +#: library/zipfile.rst:824 msgid "Instances have the following methods and attributes:" msgstr "" -#: library/zipfile.rst:806 +#: library/zipfile.rst:828 msgid "Return ``True`` if this archive member is a directory." msgstr "" -#: library/zipfile.rst:808 +#: library/zipfile.rst:830 msgid "This uses the entry's name: directories should always end with ``/``." msgstr "" -#: library/zipfile.rst:815 +#: library/zipfile.rst:837 msgid "Name of the file in the archive." msgstr "" -#: library/zipfile.rst:820 +#: library/zipfile.rst:842 msgid "" "The time and date of the last modification to the archive member. This is a " -"tuple of six values:" +"tuple of six values representing the \"last [modified] file time\" and " +"\"last [modified] file date\" fields from the ZIP file's central directory." msgstr "" -#: library/zipfile.rst:824 +#: library/zipfile.rst:846 +msgid "The tuple contains:" +msgstr "" + +#: library/zipfile.rst:849 msgid "Index" msgstr "" -#: library/zipfile.rst:824 +#: library/zipfile.rst:849 msgid "Value" msgstr "" -#: library/zipfile.rst:826 +#: library/zipfile.rst:851 msgid "``0``" msgstr "" -#: library/zipfile.rst:826 +#: library/zipfile.rst:851 msgid "Year (>= 1980)" msgstr "" -#: library/zipfile.rst:828 +#: library/zipfile.rst:853 msgid "``1``" msgstr "" -#: library/zipfile.rst:828 +#: library/zipfile.rst:853 msgid "Month (one-based)" msgstr "" -#: library/zipfile.rst:830 +#: library/zipfile.rst:855 msgid "``2``" msgstr "" -#: library/zipfile.rst:830 +#: library/zipfile.rst:855 msgid "Day of month (one-based)" msgstr "" -#: library/zipfile.rst:832 +#: library/zipfile.rst:857 msgid "``3``" msgstr "" -#: library/zipfile.rst:832 +#: library/zipfile.rst:857 msgid "Hours (zero-based)" msgstr "" -#: library/zipfile.rst:834 +#: library/zipfile.rst:859 msgid "``4``" msgstr "" -#: library/zipfile.rst:834 +#: library/zipfile.rst:859 msgid "Minutes (zero-based)" msgstr "" -#: library/zipfile.rst:836 +#: library/zipfile.rst:861 msgid "``5``" msgstr "" -#: library/zipfile.rst:836 +#: library/zipfile.rst:861 msgid "Seconds (zero-based)" msgstr "" -#: library/zipfile.rst:841 -msgid "The ZIP file format does not support timestamps before 1980." +#: library/zipfile.rst:866 +msgid "" +"The ZIP format supports multiple timestamp fields in different locations " +"(central directory, extra fields for NTFS/UNIX systems, etc.). This " +"attribute specifically returns the timestamp from the central directory. The " +"central directory timestamp format in ZIP files does not support timestamps " +"before 1980. While some extra field formats (such as UNIX timestamps) can " +"represent earlier dates, this attribute only returns the central directory " +"timestamp." msgstr "" -#: library/zipfile.rst:846 +#: library/zipfile.rst:873 +msgid "" +"The central directory timestamp is interpreted as representing local time, " +"rather than UTC time, to match the behavior of other zip tools." +msgstr "" + +#: library/zipfile.rst:879 msgid "Type of compression for the archive member." msgstr "" -#: library/zipfile.rst:851 +#: library/zipfile.rst:884 msgid "Comment for the individual archive member as a :class:`bytes` object." msgstr "" -#: library/zipfile.rst:856 +#: library/zipfile.rst:889 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 "" -#: library/zipfile.rst:863 +#: library/zipfile.rst:896 msgid "System which created ZIP archive." msgstr "" -#: library/zipfile.rst:868 +#: library/zipfile.rst:901 msgid "PKZIP version which created ZIP archive." msgstr "" -#: library/zipfile.rst:873 +#: library/zipfile.rst:906 msgid "PKZIP version needed to extract archive." msgstr "" -#: library/zipfile.rst:878 +#: library/zipfile.rst:911 msgid "Must be zero." msgstr "" -#: library/zipfile.rst:883 +#: library/zipfile.rst:916 msgid "ZIP flag bits." msgstr "" -#: library/zipfile.rst:888 +#: library/zipfile.rst:921 msgid "Volume number of file header." msgstr "" -#: library/zipfile.rst:893 +#: library/zipfile.rst:926 msgid "Internal attributes." msgstr "" -#: library/zipfile.rst:898 +#: library/zipfile.rst:931 msgid "External file attributes." msgstr "" -#: library/zipfile.rst:903 +#: library/zipfile.rst:936 msgid "Byte offset to the file header." msgstr "" -#: library/zipfile.rst:908 +#: library/zipfile.rst:941 msgid "CRC-32 of the uncompressed file." msgstr "" -#: library/zipfile.rst:913 +#: library/zipfile.rst:946 msgid "Size of the compressed data." msgstr "" -#: library/zipfile.rst:918 +#: library/zipfile.rst:951 msgid "Size of the uncompressed file." msgstr "" -#: library/zipfile.rst:925 -msgid "Command-Line Interface" +#: library/zipfile.rst:958 +msgid "Command-line interface" msgstr "" -#: library/zipfile.rst:927 +#: library/zipfile.rst:960 msgid "" "The :mod:`zipfile` module provides a simple command-line interface to " "interact with ZIP archives." msgstr "" -#: library/zipfile.rst:930 +#: library/zipfile.rst:963 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 "" -#: library/zipfile.rst:933 +#: library/zipfile.rst:966 msgid "$ python -m zipfile -c monty.zip spam.txt eggs.txt" msgstr "" -#: library/zipfile.rst:937 +#: library/zipfile.rst:970 msgid "Passing a directory is also acceptable:" msgstr "" -#: library/zipfile.rst:939 +#: library/zipfile.rst:972 msgid "$ python -m zipfile -c monty.zip life-of-brian_1979/" msgstr "" -#: library/zipfile.rst:943 +#: library/zipfile.rst:976 msgid "" "If you want to extract a ZIP archive into the specified directory, use the :" "option:`-e` option:" msgstr "" -#: library/zipfile.rst:946 +#: library/zipfile.rst:979 msgid "$ python -m zipfile -e monty.zip target-dir/" msgstr "" -#: library/zipfile.rst:950 +#: library/zipfile.rst:983 msgid "For a list of the files in a ZIP archive, use the :option:`-l` option:" msgstr "" -#: library/zipfile.rst:952 +#: library/zipfile.rst:985 msgid "$ python -m zipfile -l monty.zip" msgstr "" -#: library/zipfile.rst:958 +#: library/zipfile.rst:991 msgid "Command-line options" msgstr "" -#: library/zipfile.rst:963 +#: library/zipfile.rst:996 msgid "List files in a zipfile." msgstr "" -#: library/zipfile.rst:968 +#: library/zipfile.rst:1001 msgid "Create zipfile from source files." msgstr "" -#: library/zipfile.rst:973 +#: library/zipfile.rst:1006 msgid "Extract zipfile into target directory." msgstr "" -#: library/zipfile.rst:978 +#: library/zipfile.rst:1011 msgid "Test whether the zipfile is valid or not." msgstr "" -#: library/zipfile.rst:982 +#: library/zipfile.rst:1015 msgid "" "Specify encoding of member names for :option:`-l`, :option:`-e` and :option:" "`-t`." msgstr "" -#: library/zipfile.rst:989 +#: library/zipfile.rst:1022 msgid "Decompression pitfalls" msgstr "" -#: library/zipfile.rst:991 +#: library/zipfile.rst:1024 msgid "" "The extraction in zipfile module might fail due to some pitfalls listed " "below." msgstr "" -#: library/zipfile.rst:994 +#: library/zipfile.rst:1027 msgid "From file itself" msgstr "" -#: library/zipfile.rst:996 +#: library/zipfile.rst:1029 msgid "" "Decompression may fail due to incorrect password / CRC checksum / ZIP format " "or unsupported compression method / decryption." msgstr "" -#: library/zipfile.rst:1000 -msgid "File System limitations" +#: library/zipfile.rst:1033 +msgid "File system limitations" msgstr "" -#: library/zipfile.rst:1002 +#: library/zipfile.rst:1035 msgid "" "Exceeding limitations on different file systems can cause decompression " "failed. Such as allowable characters in the directory entries, length of the " @@ -1195,33 +1234,33 @@ msgid "" "files, etc." msgstr "" -#: library/zipfile.rst:1009 +#: library/zipfile.rst:1042 msgid "Resources limitations" msgstr "" -#: library/zipfile.rst:1011 +#: library/zipfile.rst:1044 msgid "" "The lack of memory or disk volume would lead to decompression failed. For " "example, decompression bombs (aka `ZIP bomb`_) apply to zipfile library that " "can cause disk volume exhaustion." msgstr "" -#: library/zipfile.rst:1016 +#: library/zipfile.rst:1049 msgid "Interruption" msgstr "" -#: library/zipfile.rst:1018 +#: library/zipfile.rst:1051 msgid "" "Interruption during the decompression, such as pressing control-C or killing " "the decompression process may result in incomplete decompression of the " "archive." msgstr "" -#: library/zipfile.rst:1022 +#: library/zipfile.rst:1055 msgid "Default behaviors of extraction" msgstr "" -#: library/zipfile.rst:1024 +#: library/zipfile.rst:1057 msgid "" "Not knowing the default extraction behaviors can cause unexpected " "decompression results. For example, when extracting the same archive twice, " diff --git a/library/zipimport.po b/library/zipimport.po index 8ab00ae6..eb3f034b 100644 --- a/library/zipimport.po +++ b/library/zipimport.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -232,18 +232,21 @@ msgstr "" #: library/zipimport.rst:189 msgid "" -"$ unzip -l example.zip\n" -"Archive: example.zip\n" +"$ unzip -l example_archive.zip\n" +"Archive: example_archive.zip\n" " Length Date Time Name\n" " -------- ---- ---- ----\n" -" 8467 11-26-02 22:30 jwzthreading.py\n" +" 8467 01-01-00 12:30 example.py\n" " -------- -------\n" -" 8467 1 file\n" -"$ ./python\n" -"Python 2.3 (#1, Aug 1 2003, 19:54:32)\n" +" 8467 1 file" +msgstr "" + +#: library/zipimport.rst:199 +msgid "" ">>> import sys\n" -">>> sys.path.insert(0, 'example.zip') # Add .zip file to front of path\n" -">>> import jwzthreading\n" -">>> jwzthreading.__file__\n" -"'example.zip/jwzthreading.py'" +">>> # Add the archive to the front of the module search path\n" +">>> sys.path.insert(0, 'example_archive.zip')\n" +">>> import example\n" +">>> example.__file__\n" +"'example_archive.zip/example.py'" msgstr "" diff --git a/library/zlib.po b/library/zlib.po index 2e80d05c..d175d0fe 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -24,34 +24,39 @@ msgstr "" #: 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 https://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." +"allow compression and decompression, using the `zlib library `_." msgstr "" -#: library/zlib.rst:17 +#: includes/optional-module.rst:1 +msgid "" +"This is an :term:`optional module`. If it is missing from your copy of " +"CPython, look for documentation from your distributor (that is, whoever " +"provided Python to you). If you are the distributor, see :ref:`optional-" +"module-requirements`." +msgstr "" + +#: library/zlib.rst:15 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." +"consult the `zlib manual `_ for " +"authoritative information." msgstr "" -#: library/zlib.rst:22 +#: library/zlib.rst:20 msgid "For reading and writing ``.gz`` files see the :mod:`gzip` module." msgstr "" -#: library/zlib.rst:24 +#: library/zlib.rst:22 msgid "The available exception and functions in this module are:" msgstr "" -#: library/zlib.rst:29 +#: library/zlib.rst:27 msgid "Exception raised on compression and decompression errors." msgstr "" -#: library/zlib.rst:34 +#: library/zlib.rst:32 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 " @@ -64,31 +69,29 @@ msgid "" "suitable for use as a general hash algorithm." msgstr "" -#: library/zlib.rst:136 +#: library/zlib.rst:131 msgid "The result is always unsigned." msgstr "" -#: library/zlib.rst:49 +#: library/zlib.rst:47 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)." +"controlling the level of compression; See :const:`Z_BEST_SPEED` (``1``), :" +"const:`Z_BEST_COMPRESSION` (``9``), :const:`Z_NO_COMPRESSION` (``0``), and " +"the default, :const:`Z_DEFAULT_COMPRESSION` (``-1``) for more information " +"about these values." msgstr "" -#: library/zlib.rst:58 +#: library/zlib.rst:55 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):" +"defaulting to ``15`` (:const:`MAX_WBITS`):" msgstr "" -#: library/zlib.rst:63 +#: library/zlib.rst:60 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 " @@ -96,78 +99,75 @@ msgid "" "specific header and trailer." msgstr "" -#: library/zlib.rst:68 +#: library/zlib.rst:65 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 "" -#: library/zlib.rst:72 +#: library/zlib.rst:69 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 "" -#: library/zlib.rst:76 +#: library/zlib.rst:73 msgid "Raises the :exc:`error` exception if any error occurs." msgstr "" -#: library/zlib.rst:78 +#: library/zlib.rst:75 msgid "*level* can now be used as a keyword parameter." msgstr "" -#: library/zlib.rst:81 +#: library/zlib.rst:78 msgid "" "The *wbits* parameter is now available to set window bits and compression " "type." msgstr "" -#: library/zlib.rst:87 +#: library/zlib.rst:84 msgid "" "Returns a compression object, to be used for compressing data streams that " "won't fit into memory at once." msgstr "" -#: library/zlib.rst:90 +#: library/zlib.rst:87 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)." +"``-1``. See :const:`Z_BEST_SPEED` (``1``), :const:`Z_BEST_COMPRESSION` " +"(``9``), :const:`Z_NO_COMPRESSION` (``0``), and the default, :const:" +"`Z_DEFAULT_COMPRESSION` (``-1``) for more information about these values." msgstr "" -#: library/zlib.rst:97 +#: library/zlib.rst:92 msgid "" "*method* is the compression algorithm. Currently, the only supported value " "is :const:`DEFLATED`." msgstr "" -#: library/zlib.rst:100 +#: library/zlib.rst:95 msgid "" "The *wbits* parameter controls the size of the history buffer (or the " "\"window size\"), and what header and trailer format will be used. It has " "the same meaning as `described for compress() <#compress-wbits>`__." msgstr "" -#: library/zlib.rst:104 +#: library/zlib.rst:99 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 "" -#: library/zlib.rst:108 +#: library/zlib.rst:103 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)." +"const:`Z_RLE` and :const:`Z_FIXED`." msgstr "" -#: library/zlib.rst:112 +#: library/zlib.rst:107 msgid "" "*zdict* is a predefined compression dictionary. This is a sequence of bytes " "(such as a :class:`bytes` object) containing subsequences that are expected " @@ -175,11 +175,11 @@ msgid "" "that are expected to be most common should come at the end of the dictionary." msgstr "" -#: library/zlib.rst:117 +#: library/zlib.rst:112 msgid "Added the *zdict* parameter and keyword argument support." msgstr "" -#: library/zlib.rst:127 +#: library/zlib.rst:122 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 " @@ -191,7 +191,7 @@ msgid "" "suitable for use as a general hash algorithm." msgstr "" -#: library/zlib.rst:141 +#: library/zlib.rst:136 msgid "" "Decompresses the bytes in *data*, returning a bytes object containing the " "uncompressed data. The *wbits* parameter depends on the format of *data*, " @@ -200,44 +200,44 @@ msgid "" "error occurs." msgstr "" -#: library/zlib.rst:149 +#: library/zlib.rst:144 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 "" -#: library/zlib.rst:154 +#: library/zlib.rst:149 msgid "" "+8 to +15: The base-two logarithm of the window size. The input must " "include a zlib header and trailer." msgstr "" -#: library/zlib.rst:157 +#: library/zlib.rst:152 msgid "" "0: Automatically determine the window size from the zlib header. Only " "supported since zlib 1.2.3.5." msgstr "" -#: library/zlib.rst:160 +#: library/zlib.rst:155 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 "" -#: library/zlib.rst:163 +#: library/zlib.rst:158 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 "" -#: library/zlib.rst:167 +#: library/zlib.rst:162 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 "" -#: library/zlib.rst:171 +#: library/zlib.rst:166 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 " @@ -246,7 +246,7 @@ msgid "" "included." msgstr "" -#: library/zlib.rst:177 +#: library/zlib.rst:172 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 " @@ -254,46 +254,46 @@ msgid "" "few calls to :c:func:`malloc`." msgstr "" -#: library/zlib.rst:182 +#: library/zlib.rst:177 msgid "*wbits* and *bufsize* can be used as keyword arguments." msgstr "" -#: library/zlib.rst:187 +#: library/zlib.rst:182 msgid "" "Returns a decompression object, to be used for decompressing data streams " "that won't fit into memory at once." msgstr "" -#: library/zlib.rst:190 +#: library/zlib.rst:185 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 "" -#: library/zlib.rst:194 +#: library/zlib.rst:189 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 "" -#: library/zlib.rst:200 +#: library/zlib.rst:195 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 "" -#: library/zlib.rst:204 +#: library/zlib.rst:199 msgid "Added the *zdict* parameter." msgstr "" -#: library/zlib.rst:208 +#: library/zlib.rst:203 msgid "Compression objects support the following methods:" msgstr "" -#: library/zlib.rst:213 +#: library/zlib.rst:208 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 " @@ -301,37 +301,36 @@ msgid "" "input may be kept in internal buffers for later processing." msgstr "" -#: library/zlib.rst:221 +#: library/zlib.rst:216 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." +"`Z_FULL_FLUSH`, :const:`Z_BLOCK`, 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 "" -#: library/zlib.rst:234 +#: library/zlib.rst:229 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 "" -#: library/zlib.rst:238 +#: library/zlib.rst:233 msgid "" "Added :func:`copy.copy` and :func:`copy.deepcopy` support to compression " "objects." msgstr "" -#: library/zlib.rst:243 +#: library/zlib.rst:238 msgid "Decompression objects support the following methods and attributes:" msgstr "" -#: library/zlib.rst:248 +#: library/zlib.rst:243 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 " @@ -339,7 +338,7 @@ msgid "" "contain compressed data, this is ``b\"\"``, an empty bytes object." msgstr "" -#: library/zlib.rst:256 +#: library/zlib.rst:251 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 " @@ -348,19 +347,19 @@ msgid "" "subsequent :meth:`decompress` method call in order to get correct output." msgstr "" -#: library/zlib.rst:265 +#: library/zlib.rst:260 msgid "" "A boolean indicating whether the end of the compressed data stream has been " "reached." msgstr "" -#: library/zlib.rst:268 +#: library/zlib.rst:263 msgid "" "This makes it possible to distinguish between a properly formed compressed " "stream, and an incomplete or truncated one." msgstr "" -#: library/zlib.rst:276 +#: library/zlib.rst:271 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 " @@ -369,7 +368,7 @@ msgid "" "buffers for later processing." msgstr "" -#: library/zlib.rst:282 +#: library/zlib.rst:277 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 " @@ -380,11 +379,11 @@ msgid "" "`unconsumed_tail` is empty." msgstr "" -#: library/zlib.rst:289 +#: library/zlib.rst:284 msgid "*max_length* can be used as a keyword argument." msgstr "" -#: library/zlib.rst:295 +#: library/zlib.rst:290 msgid "" "All pending input is processed, and a bytes object containing the remaining " "uncompressed output is returned. After calling :meth:`flush`, the :meth:" @@ -392,43 +391,159 @@ msgid "" "delete the object." msgstr "" -#: library/zlib.rst:300 +#: library/zlib.rst:295 msgid "" "The optional parameter *length* sets the initial size of the output buffer." msgstr "" -#: library/zlib.rst:305 +#: library/zlib.rst:300 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 "" -#: library/zlib.rst:310 +#: library/zlib.rst:305 msgid "" "Added :func:`copy.copy` and :func:`copy.deepcopy` support to decompression " "objects." msgstr "" +#: library/zlib.rst:310 +msgid "" +"The following constants are available to configure compression and " +"decompression behavior:" +msgstr "" + #: library/zlib.rst:315 +msgid "The deflate compression method." +msgstr "" + +#: library/zlib.rst:320 +msgid "" +"The maximum window size, expressed as a power of 2. For example, if :const:`!" +"MAX_WBITS` is ``15`` it results in a window size of ``32 KiB``." +msgstr "" + +#: library/zlib.rst:327 +msgid "The default memory level for compression objects." +msgstr "" + +#: library/zlib.rst:332 +msgid "The default buffer size for decompression operations." +msgstr "" + +#: library/zlib.rst:337 +msgid "Compression level ``0``; no compression." +msgstr "" + +#: library/zlib.rst:344 +msgid "Compression level ``1``; fastest and produces the least compression." +msgstr "" + +#: library/zlib.rst:349 +msgid "Compression level ``9``; slowest and produces the most compression." +msgstr "" + +#: library/zlib.rst:354 +msgid "" +"Default compression level (``-1``); a compromise between speed and " +"compression. Currently equivalent to compression level ``6``." +msgstr "" + +#: library/zlib.rst:360 +msgid "Default compression strategy, for normal data." +msgstr "" + +#: library/zlib.rst:365 +msgid "Compression strategy for data produced by a filter (or predictor)." +msgstr "" + +#: library/zlib.rst:370 +msgid "Compression strategy that forces Huffman coding only." +msgstr "" + +#: library/zlib.rst:375 +msgid "" +"Compression strategy that limits match distances to one (run-length " +"encoding)." +msgstr "" + +#: library/zlib.rst:377 +msgid "" +"This constant is only available if Python was compiled with zlib 1.2.0.1 or " +"greater." +msgstr "" + +#: library/zlib.rst:385 +msgid "Compression strategy that prevents the use of dynamic Huffman codes." +msgstr "" + +#: library/zlib.rst:424 +msgid "" +"This constant is only available if Python was compiled with zlib 1.2.2.2 or " +"greater." +msgstr "" + +#: library/zlib.rst:395 +msgid "Flush mode ``0``. No special flushing behavior." +msgstr "" + +#: library/zlib.rst:402 +msgid "Flush mode ``1``. Flush as much output as possible." +msgstr "" + +#: library/zlib.rst:407 +msgid "" +"Flush mode ``2``. All output is flushed and the output is aligned to a byte " +"boundary." +msgstr "" + +#: library/zlib.rst:412 +msgid "" +"Flush mode ``3``. All output is flushed and the compression state is reset." +msgstr "" + +#: library/zlib.rst:417 +msgid "" +"Flush mode ``4``. All pending input is processed, no more input is expected." +msgstr "" + +#: library/zlib.rst:422 +msgid "Flush mode ``5``. A deflate block is completed and emitted." +msgstr "" + +#: library/zlib.rst:432 +msgid "" +"Flush mode ``6``, for inflate operations. Instructs inflate to return when " +"it gets to the next deflate block boundary." +msgstr "" + +#: library/zlib.rst:435 +msgid "" +"This constant is only available if Python was compiled with zlib 1.2.3.4 or " +"greater." +msgstr "" + +#: library/zlib.rst:441 msgid "" "Information about the version of the zlib library in use is available " "through the following constants:" msgstr "" -#: library/zlib.rst:321 +#: library/zlib.rst:447 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 "" -#: library/zlib.rst:328 +#: library/zlib.rst:454 msgid "" "The version string of the zlib library actually loaded by the interpreter." msgstr "" -#: library/zlib.rst:335 +#: library/zlib.rst:461 msgid "" "The version string of the zlib-ng library that was used for building the " "module if zlib-ng was used. When present, the :data:`ZLIB_VERSION` and :data:" @@ -436,47 +551,47 @@ msgid "" "provided by zlib-ng." msgstr "" -#: library/zlib.rst:340 +#: library/zlib.rst:466 msgid "" "If zlib-ng was not used to build the module, this constant will be absent." msgstr "" -#: library/zlib.rst:347 +#: library/zlib.rst:473 msgid "Module :mod:`gzip`" msgstr "" -#: library/zlib.rst:348 +#: library/zlib.rst:474 msgid "Reading and writing :program:`gzip`\\ -format files." msgstr "" -#: library/zlib.rst:350 -msgid "http://www.zlib.net" +#: library/zlib.rst:476 +msgid "https://www.zlib.net" msgstr "" -#: library/zlib.rst:351 +#: library/zlib.rst:477 msgid "The zlib library home page." msgstr "" -#: library/zlib.rst:353 -msgid "http://www.zlib.net/manual.html" +#: library/zlib.rst:479 +msgid "https://www.zlib.net/manual.html" msgstr "" -#: library/zlib.rst:354 +#: library/zlib.rst:480 msgid "" "The zlib manual explains the semantics and usage of the library's many " "functions." msgstr "" -#: library/zlib.rst:357 +#: library/zlib.rst:483 msgid "" "In case gzip (de)compression is a bottleneck, the `python-isal`_ package " "speeds up (de)compression with a mostly compatible API." msgstr "" -#: library/zlib.rst:123 +#: library/zlib.rst:118 msgid "Cyclic Redundancy Check" msgstr "" -#: library/zlib.rst:123 +#: library/zlib.rst:118 msgid "checksum" msgstr "" diff --git a/library/zoneinfo.po b/library/zoneinfo.po index 1a27b3ec..763cccb6 100644 --- a/library/zoneinfo.po +++ b/library/zoneinfo.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -436,10 +436,9 @@ msgid "" "``ZoneInfo(key)``: When constructed with the primary constructor, a " "``ZoneInfo`` object is serialized by key, and when deserialized, the " "deserializing process uses the primary and thus it is expected that these " -"are expected to be the same object as other references to the same time " -"zone. For example, if ``europe_berlin_pkl`` is a string containing a pickle " -"constructed from ``ZoneInfo(\"Europe/Berlin\")``, one would expect the " -"following behavior:" +"are the same object as other references to the same time zone. For example, " +"if ``europe_berlin_pkl`` is a string containing a pickle constructed from " +"``ZoneInfo(\"Europe/Berlin\")``, one would expect the following behavior:" msgstr "" #: library/zoneinfo.rst:307 @@ -470,11 +469,12 @@ msgstr "" #: library/zoneinfo.rst:328 msgid "" -"``ZoneInfo.from_file(fobj, /, key=None)``: When constructed from a file, the " -"``ZoneInfo`` object raises an exception on pickling. If an end user wants to " -"pickle a ``ZoneInfo`` constructed from a file, it is recommended that they " -"use a wrapper type or a custom serialization function: either serializing by " -"key or storing the contents of the file object and serializing that." +"``ZoneInfo.from_file(file_obj, /, key=None)``: When constructed from a file, " +"the ``ZoneInfo`` object raises an exception on pickling. If an end user " +"wants to pickle a ``ZoneInfo`` constructed from a file, it is recommended " +"that they use a wrapper type or a custom serialization function: either " +"serializing by key or storing the contents of the file object and " +"serializing that." msgstr "" #: library/zoneinfo.rst:334 diff --git a/license.po b/license.po index a97b1638..c7fa2385 100644 --- a/license.po +++ b/license.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-14 22:38+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index df7ed20f..b3a20597 100644 --- a/reference/compound_stmts.po +++ b/reference/compound_stmts.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -339,19 +339,40 @@ msgstr "" #: reference/compound_stmts.rst:338 msgid "" -"The :keyword:`!except*` clause(s) are used for handling :exc:" -"`ExceptionGroup`\\s. The exception type for matching is interpreted as in " -"the case of :keyword:`except`, but in the case of exception groups we can " -"have partial matches when the type matches some of the exceptions in the " -"group. This means that multiple :keyword:`!except*` clauses can execute, " -"each handling part of the exception group. Each clause executes at most once " -"and handles an exception group of all matching exceptions. Each exception " -"in the group is handled by at most one :keyword:`!except*` clause, the first " -"that matches it. ::" +"The :keyword:`!except*` clause(s) specify one or more handlers for groups of " +"exceptions (:exc:`BaseExceptionGroup` instances). A :keyword:`try` statement " +"can have either :keyword:`except` or :keyword:`!except*` clauses, but not " +"both. The exception type for matching is mandatory in the case of :keyword:`!" +"except*`, so ``except*:`` is a syntax error. The type is interpreted as in " +"the case of :keyword:`!except`, but matching is performed on the exceptions " +"contained in the group that is being handled. An :exc:`TypeError` is raised " +"if a matching type is a subclass of :exc:`!BaseExceptionGroup`, because that " +"would have ambiguous semantics." msgstr "" #: reference/compound_stmts.rst:348 msgid "" +"When an exception group is raised in the try block, each :keyword:`!except*` " +"clause splits (see :meth:`~BaseExceptionGroup.split`) it into the subgroups " +"of matching and non-matching exceptions. If the matching subgroup is not " +"empty, it becomes the handled exception (the value returned from :func:`sys." +"exception`) and assigned to the target of the :keyword:`!except*` clause (if " +"there is one). Then, the body of the :keyword:`!except*` clause executes. If " +"the non-matching subgroup is not empty, it is processed by the next :keyword:" +"`!except*` in the same manner. This continues until all exceptions in the " +"group have been matched, or the last :keyword:`!except*` clause has run." +msgstr "" + +#: reference/compound_stmts.rst:358 +msgid "" +"After all :keyword:`!except*` clauses execute, the group of unhandled " +"exceptions is merged with any exceptions that were raised or re-raised from " +"within :keyword:`!except*` clauses. This merged exception group propagates " +"on.::" +msgstr "" + +#: reference/compound_stmts.rst:362 +msgid "" ">>> try:\n" "... raise ExceptionGroup(\"eg\",\n" "... [ValueError(1), TypeError(2), OSError(3), OSError(4)])\n" @@ -363,29 +384,25 @@ msgid "" "caught with nested (TypeError(2),)\n" "caught with nested (OSError(3), OSError(4))\n" " + Exception Group Traceback (most recent call last):\n" -" | File \"\", line 2, in \n" -" | ExceptionGroup: eg\n" +" | File \"\", line 2, in \n" +" | raise ExceptionGroup(\"eg\",\n" +" | [ValueError(1), TypeError(2), OSError(3), OSError(4)])\n" +" | ExceptionGroup: eg (1 sub-exception)\n" " +-+---------------- 1 ----------------\n" " | ValueError: 1\n" " +------------------------------------" msgstr "" -#: reference/compound_stmts.rst:366 +#: reference/compound_stmts.rst:381 msgid "" -"Any remaining exceptions that were not handled by any :keyword:`!except*` " -"clause are re-raised at the end, along with all exceptions that were raised " -"from within the :keyword:`!except*` clauses. If this list contains more than " -"one exception to reraise, they are combined into an exception group." +"If the exception raised from the :keyword:`try` block is not an exception " +"group and its type matches one of the :keyword:`!except*` clauses, it is " +"caught and wrapped by an exception group with an empty message string. This " +"ensures that the type of the target ``e`` is consistently :exc:" +"`BaseExceptionGroup`::" msgstr "" -#: reference/compound_stmts.rst:372 -msgid "" -"If the raised exception is not an exception group and its type matches one " -"of the :keyword:`!except*` clauses, it is caught and wrapped by an exception " -"group with an empty message string. ::" -msgstr "" - -#: reference/compound_stmts.rst:376 +#: reference/compound_stmts.rst:386 msgid "" ">>> try:\n" "... raise BlockingIOError\n" @@ -395,25 +412,17 @@ msgid "" "ExceptionGroup('', (BlockingIOError()))" msgstr "" -#: reference/compound_stmts.rst:383 -msgid "" -"An :keyword:`!except*` clause must have a matching expression; it cannot be " -"``except*:``. Furthermore, this expression cannot contain exception group " -"types, because that would have ambiguous semantics." -msgstr "" - -#: reference/compound_stmts.rst:387 +#: reference/compound_stmts.rst:393 msgid "" -"It is not possible to mix :keyword:`except` and :keyword:`!except*` in the " -"same :keyword:`try`. :keyword:`break`, :keyword:`continue` and :keyword:" -"`return` cannot appear in an :keyword:`!except*` clause." +":keyword:`break`, :keyword:`continue` and :keyword:`return` cannot appear in " +"an :keyword:`!except*` clause." msgstr "" -#: reference/compound_stmts.rst:402 +#: reference/compound_stmts.rst:406 msgid ":keyword:`!else` clause" msgstr "" -#: reference/compound_stmts.rst:404 +#: reference/compound_stmts.rst:408 msgid "" "The optional :keyword:`!else` clause is executed if the control flow leaves " "the :keyword:`try` suite, no exception was raised, and no :keyword:" @@ -422,25 +431,25 @@ msgid "" "keyword:`except` clauses." msgstr "" -#: reference/compound_stmts.rst:416 +#: reference/compound_stmts.rst:420 msgid ":keyword:`!finally` clause" msgstr "" -#: reference/compound_stmts.rst:418 +#: reference/compound_stmts.rst:422 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`, :keyword:`break` or :keyword:`continue` statement, the saved " -"exception is discarded. For example, this function returns 42." +"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`, :keyword:`break` or :keyword:`continue` statement, the " +"saved exception is discarded. For example, this function returns 42." msgstr "" -#: reference/compound_stmts.rst:429 +#: reference/compound_stmts.rst:435 msgid "" "def f():\n" " try:\n" @@ -449,13 +458,13 @@ msgid "" " return 42" msgstr "" -#: reference/compound_stmts.rst:437 +#: reference/compound_stmts.rst:443 msgid "" "The exception information is not available to the program during execution " "of the :keyword:`!finally` clause." msgstr "" -#: reference/compound_stmts.rst:445 +#: reference/compound_stmts.rst:451 msgid "" "When a :keyword:`return`, :keyword:`break` or :keyword:`continue` statement " "is executed in the :keyword:`try` suite of a :keyword:`!try`...\\ :keyword:`!" @@ -463,7 +472,7 @@ msgid "" "way out.'" msgstr "" -#: reference/compound_stmts.rst:449 +#: reference/compound_stmts.rst:455 msgid "" "The return value of a function is determined by the last :keyword:`return` " "statement executed. Since the :keyword:`!finally` clause always executes, " @@ -472,7 +481,7 @@ msgid "" "'finally'." msgstr "" -#: reference/compound_stmts.rst:454 +#: reference/compound_stmts.rst:460 msgid "" "def foo():\n" " try:\n" @@ -481,24 +490,24 @@ msgid "" " return 'finally'" msgstr "" -#: reference/compound_stmts.rst:462 +#: reference/compound_stmts.rst:468 msgid "" "Prior to Python 3.8, a :keyword:`continue` statement was illegal in the :" "keyword:`!finally` clause due to a problem with the implementation." msgstr "" -#: reference/compound_stmts.rst:466 +#: reference/compound_stmts.rst:472 msgid "" "The compiler emits a :exc:`SyntaxWarning` when a :keyword:`return`, :keyword:" "`break` or :keyword:`continue` appears in a :keyword:`!finally` block (see :" "pep:`765`)." msgstr "" -#: reference/compound_stmts.rst:476 +#: reference/compound_stmts.rst:482 msgid "The :keyword:`!with` statement" msgstr "" -#: reference/compound_stmts.rst:485 +#: reference/compound_stmts.rst:491 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`). " @@ -506,38 +515,38 @@ msgid "" "`finally` usage patterns to be encapsulated for convenient reuse." msgstr "" -#: reference/compound_stmts.rst:495 +#: reference/compound_stmts.rst:501 msgid "" "The execution of the :keyword:`with` statement with one \"item\" proceeds as " "follows:" msgstr "" -#: reference/compound_stmts.rst:497 +#: reference/compound_stmts.rst:503 msgid "" "The context expression (the expression given in the :token:`~python-grammar:" "with_item`) is evaluated to obtain a context manager." msgstr "" -#: reference/compound_stmts.rst:500 +#: reference/compound_stmts.rst:506 msgid "" "The context manager's :meth:`~object.__enter__` is loaded for later use." msgstr "" -#: reference/compound_stmts.rst:502 +#: reference/compound_stmts.rst:508 msgid "The context manager's :meth:`~object.__exit__` is loaded for later use." msgstr "" -#: reference/compound_stmts.rst:504 +#: reference/compound_stmts.rst:510 msgid "The context manager's :meth:`~object.__enter__` method is invoked." msgstr "" -#: reference/compound_stmts.rst:506 +#: reference/compound_stmts.rst:512 msgid "" "If a target was included in the :keyword:`with` statement, the return value " "from :meth:`~object.__enter__` is assigned to it." msgstr "" -#: reference/compound_stmts.rst:511 +#: reference/compound_stmts.rst:517 msgid "" "The :keyword:`with` statement guarantees that if the :meth:`~object." "__enter__` method returns without an error, then :meth:`~object.__exit__` " @@ -546,11 +555,11 @@ msgid "" "suite would be. See step 7 below." msgstr "" -#: reference/compound_stmts.rst:517 +#: reference/compound_stmts.rst:523 msgid "The suite is executed." msgstr "" -#: reference/compound_stmts.rst:519 +#: reference/compound_stmts.rst:525 msgid "" "The context manager's :meth:`~object.__exit__` method is invoked. If an " "exception caused the suite to be exited, its type, value, and traceback are " @@ -558,7 +567,7 @@ msgid "" "`None` arguments are supplied." msgstr "" -#: reference/compound_stmts.rst:524 +#: reference/compound_stmts.rst:530 msgid "" "If the suite was exited due to an exception, and the return value from the :" "meth:`~object.__exit__` method was false, the exception is reraised. If the " @@ -566,30 +575,30 @@ msgid "" "with the statement following the :keyword:`with` statement." msgstr "" -#: reference/compound_stmts.rst:529 +#: reference/compound_stmts.rst:535 msgid "" "If the suite was exited for any reason other than an exception, the return " "value from :meth:`~object.__exit__` is ignored, and execution proceeds at " "the normal location for the kind of exit that was taken." msgstr "" -#: reference/compound_stmts.rst:533 reference/compound_stmts.rst:1550 -#: reference/compound_stmts.rst:1591 +#: reference/compound_stmts.rst:539 reference/compound_stmts.rst:1557 +#: reference/compound_stmts.rst:1598 msgid "The following code::" msgstr "" -#: reference/compound_stmts.rst:535 +#: reference/compound_stmts.rst:541 msgid "" "with EXPRESSION as TARGET:\n" " SUITE" msgstr "" -#: reference/compound_stmts.rst:538 reference/compound_stmts.rst:563 -#: reference/compound_stmts.rst:1596 +#: reference/compound_stmts.rst:544 reference/compound_stmts.rst:569 +#: reference/compound_stmts.rst:1603 msgid "is semantically equivalent to::" msgstr "" -#: reference/compound_stmts.rst:540 +#: reference/compound_stmts.rst:546 msgid "" "manager = (EXPRESSION)\n" "enter = type(manager).__enter__\n" @@ -609,32 +618,32 @@ msgid "" " exit(manager, None, None, None)" msgstr "" -#: reference/compound_stmts.rst:557 +#: reference/compound_stmts.rst:563 msgid "" "With more than one item, the context managers are processed as if multiple :" "keyword:`with` statements were nested::" msgstr "" -#: reference/compound_stmts.rst:560 +#: reference/compound_stmts.rst:566 msgid "" "with A() as a, B() as b:\n" " SUITE" msgstr "" -#: reference/compound_stmts.rst:565 +#: reference/compound_stmts.rst:571 msgid "" "with A() as a:\n" " with B() as b:\n" " SUITE" msgstr "" -#: reference/compound_stmts.rst:569 +#: reference/compound_stmts.rst:575 msgid "" "You can also write multi-item context managers in multiple lines if the " "items are surrounded by parentheses. For example::" msgstr "" -#: reference/compound_stmts.rst:572 +#: reference/compound_stmts.rst:578 msgid "" "with (\n" " A() as a,\n" @@ -643,86 +652,86 @@ msgid "" " SUITE" msgstr "" -#: reference/compound_stmts.rst:578 +#: reference/compound_stmts.rst:584 msgid "Support for multiple context expressions." msgstr "" -#: reference/compound_stmts.rst:581 +#: reference/compound_stmts.rst:587 msgid "" "Support for using grouping parentheses to break the statement in multiple " "lines." msgstr "" -#: reference/compound_stmts.rst:586 +#: reference/compound_stmts.rst:592 msgid ":pep:`343` - The \"with\" statement" msgstr "" -#: reference/compound_stmts.rst:587 +#: reference/compound_stmts.rst:593 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." msgstr "" -#: reference/compound_stmts.rst:593 +#: reference/compound_stmts.rst:600 msgid "The :keyword:`!match` statement" msgstr "" -#: reference/compound_stmts.rst:607 +#: reference/compound_stmts.rst:614 msgid "The match statement is used for pattern matching. Syntax:" msgstr "" -#: reference/compound_stmts.rst:616 +#: reference/compound_stmts.rst:623 msgid "" "This section uses single quotes to denote :ref:`soft keywords `." msgstr "" -#: reference/compound_stmts.rst:619 +#: reference/compound_stmts.rst:626 msgid "" "Pattern matching takes a pattern as input (following ``case``) and a subject " "value (following ``match``). The pattern (which may contain subpatterns) is " "matched against the subject value. The outcomes are:" msgstr "" -#: reference/compound_stmts.rst:623 +#: reference/compound_stmts.rst:630 msgid "A match success or failure (also termed a pattern success or failure)." msgstr "" -#: reference/compound_stmts.rst:625 +#: reference/compound_stmts.rst:632 msgid "" "Possible binding of matched values to a name. The prerequisites for this " "are further discussed below." msgstr "" -#: reference/compound_stmts.rst:628 +#: reference/compound_stmts.rst:635 msgid "" "The ``match`` and ``case`` keywords are :ref:`soft keywords `." msgstr "" -#: reference/compound_stmts.rst:632 reference/compound_stmts.rst:1189 +#: reference/compound_stmts.rst:639 reference/compound_stmts.rst:1196 msgid ":pep:`634` -- Structural Pattern Matching: Specification" msgstr "" -#: reference/compound_stmts.rst:633 reference/compound_stmts.rst:1190 +#: reference/compound_stmts.rst:640 reference/compound_stmts.rst:1197 msgid ":pep:`636` -- Structural Pattern Matching: Tutorial" msgstr "" -#: reference/compound_stmts.rst:637 +#: reference/compound_stmts.rst:644 msgid "Overview" msgstr "" -#: reference/compound_stmts.rst:639 +#: reference/compound_stmts.rst:646 msgid "Here's an overview of the logical flow of a match statement:" msgstr "" -#: reference/compound_stmts.rst:642 +#: reference/compound_stmts.rst:649 msgid "" "The subject expression ``subject_expr`` is evaluated and a resulting subject " "value obtained. If the subject expression contains a comma, a tuple is " "constructed using :ref:`the standard rules `." msgstr "" -#: reference/compound_stmts.rst:646 +#: reference/compound_stmts.rst:653 msgid "" "Each pattern in a ``case_block`` is attempted to match with the subject " "value. The specific rules for success or failure are described below. The " @@ -732,7 +741,7 @@ msgid "" "outlive the executed block and can be used after the match statement**." msgstr "" -#: reference/compound_stmts.rst:655 +#: reference/compound_stmts.rst:662 msgid "" "During failed pattern matches, some subpatterns may succeed. Do not rely on " "bindings being made for a failed match. Conversely, do not rely on " @@ -741,38 +750,38 @@ msgid "" "made to allow different implementations to add optimizations." msgstr "" -#: reference/compound_stmts.rst:662 +#: reference/compound_stmts.rst:669 msgid "" "If the pattern succeeds, the corresponding guard (if present) is evaluated. " "In this case all name bindings are guaranteed to have happened." msgstr "" -#: reference/compound_stmts.rst:665 +#: reference/compound_stmts.rst:672 msgid "" "If the guard evaluates as true or is missing, the ``block`` inside " "``case_block`` is executed." msgstr "" -#: reference/compound_stmts.rst:668 +#: reference/compound_stmts.rst:675 msgid "Otherwise, the next ``case_block`` is attempted as described above." msgstr "" -#: reference/compound_stmts.rst:670 +#: reference/compound_stmts.rst:677 msgid "If there are no further case blocks, the match statement is completed." msgstr "" -#: reference/compound_stmts.rst:674 +#: reference/compound_stmts.rst:681 msgid "" "Users should generally never rely on a pattern being evaluated. Depending " "on implementation, the interpreter may cache values or use other " "optimizations which skip repeated evaluations." msgstr "" -#: reference/compound_stmts.rst:678 +#: reference/compound_stmts.rst:685 msgid "A sample match statement::" msgstr "" -#: reference/compound_stmts.rst:680 +#: reference/compound_stmts.rst:687 msgid "" ">>> flag = False\n" ">>> match (100, 200):\n" @@ -788,56 +797,56 @@ msgid "" "Case 3, y: 200" msgstr "" -#: reference/compound_stmts.rst:694 +#: reference/compound_stmts.rst:701 msgid "" "In this case, ``if flag`` is a guard. Read more about that in the next " "section." msgstr "" -#: reference/compound_stmts.rst:697 +#: reference/compound_stmts.rst:704 msgid "Guards" msgstr "" -#: reference/compound_stmts.rst:704 +#: reference/compound_stmts.rst:711 msgid "" "A ``guard`` (which is part of the ``case``) must succeed for code inside the " "``case`` block to execute. It takes the form: :keyword:`if` followed by an " "expression." msgstr "" -#: reference/compound_stmts.rst:709 +#: reference/compound_stmts.rst:716 msgid "The logical flow of a ``case`` block with a ``guard`` follows:" msgstr "" -#: reference/compound_stmts.rst:711 +#: reference/compound_stmts.rst:718 msgid "" "Check that the pattern in the ``case`` block succeeded. If the pattern " "failed, the ``guard`` is not evaluated and the next ``case`` block is " "checked." msgstr "" -#: reference/compound_stmts.rst:715 +#: reference/compound_stmts.rst:722 msgid "If the pattern succeeded, evaluate the ``guard``." msgstr "" -#: reference/compound_stmts.rst:717 +#: reference/compound_stmts.rst:724 msgid "" "If the ``guard`` condition evaluates as true, the case block is selected." msgstr "" -#: reference/compound_stmts.rst:720 +#: reference/compound_stmts.rst:727 msgid "" "If the ``guard`` condition evaluates as false, the case block is not " "selected." msgstr "" -#: reference/compound_stmts.rst:723 +#: reference/compound_stmts.rst:730 msgid "" "If the ``guard`` raises an exception during evaluation, the exception " "bubbles up." msgstr "" -#: reference/compound_stmts.rst:726 +#: reference/compound_stmts.rst:733 msgid "" "Guards are allowed to have side effects as they are expressions. Guard " "evaluation must proceed from the first to the last case block, one at a " @@ -846,17 +855,17 @@ msgid "" "block is selected." msgstr "" -#: reference/compound_stmts.rst:736 +#: reference/compound_stmts.rst:743 msgid "Irrefutable Case Blocks" msgstr "" -#: reference/compound_stmts.rst:740 +#: reference/compound_stmts.rst:747 msgid "" "An irrefutable case block is a match-all case block. A match statement may " "have at most one irrefutable case block, and it must be last." msgstr "" -#: reference/compound_stmts.rst:743 +#: reference/compound_stmts.rst:750 msgid "" "A case block is considered irrefutable if it has no guard and its pattern is " "irrefutable. A pattern is considered irrefutable if we can prove from its " @@ -864,47 +873,47 @@ msgid "" "irrefutable:" msgstr "" -#: reference/compound_stmts.rst:748 +#: reference/compound_stmts.rst:755 msgid ":ref:`as-patterns` whose left-hand side is irrefutable" msgstr "" -#: reference/compound_stmts.rst:750 +#: reference/compound_stmts.rst:757 msgid ":ref:`or-patterns` containing at least one irrefutable pattern" msgstr "" -#: reference/compound_stmts.rst:752 +#: reference/compound_stmts.rst:759 msgid ":ref:`capture-patterns`" msgstr "" -#: reference/compound_stmts.rst:754 +#: reference/compound_stmts.rst:761 msgid ":ref:`wildcard-patterns`" msgstr "" -#: reference/compound_stmts.rst:756 +#: reference/compound_stmts.rst:763 msgid "parenthesized irrefutable patterns" msgstr "" -#: reference/compound_stmts.rst:760 +#: reference/compound_stmts.rst:767 msgid "Patterns" msgstr "" -#: reference/compound_stmts.rst:767 +#: reference/compound_stmts.rst:774 msgid "This section uses grammar notations beyond standard EBNF:" msgstr "" -#: reference/compound_stmts.rst:769 +#: reference/compound_stmts.rst:776 msgid "the notation ``SEP.RULE+`` is shorthand for ``RULE (SEP RULE)*``" msgstr "" -#: reference/compound_stmts.rst:771 +#: reference/compound_stmts.rst:778 msgid "the notation ``!RULE`` is shorthand for a negative lookahead assertion" msgstr "" -#: reference/compound_stmts.rst:774 +#: reference/compound_stmts.rst:781 msgid "The top-level syntax for ``patterns`` is:" msgstr "" -#: reference/compound_stmts.rst:788 +#: reference/compound_stmts.rst:795 msgid "" "The descriptions below will include a description \"in simple terms\" of " "what a pattern does for illustration purposes (credits to Raymond Hettinger " @@ -914,113 +923,113 @@ msgid "" "forms." msgstr "" -#: reference/compound_stmts.rst:798 +#: reference/compound_stmts.rst:805 msgid "OR Patterns" msgstr "" -#: reference/compound_stmts.rst:800 +#: reference/compound_stmts.rst:807 msgid "" "An OR pattern is two or more patterns separated by vertical bars ``|``. " "Syntax:" msgstr "" -#: reference/compound_stmts.rst:806 +#: reference/compound_stmts.rst:813 msgid "" "Only the final subpattern may be :ref:`irrefutable `, and " "each subpattern must bind the same set of names to avoid ambiguity." msgstr "" -#: reference/compound_stmts.rst:809 +#: reference/compound_stmts.rst:816 msgid "" "An OR pattern matches each of its subpatterns in turn to the subject value, " "until one succeeds. The OR pattern is then considered successful. " "Otherwise, if none of the subpatterns succeed, the OR pattern fails." msgstr "" -#: reference/compound_stmts.rst:813 +#: reference/compound_stmts.rst:820 msgid "" "In simple terms, ``P1 | P2 | ...`` will try to match ``P1``, if it fails it " "will try to match ``P2``, succeeding immediately if any succeeds, failing " "otherwise." msgstr "" -#: reference/compound_stmts.rst:819 +#: reference/compound_stmts.rst:826 msgid "AS Patterns" msgstr "" -#: reference/compound_stmts.rst:821 +#: reference/compound_stmts.rst:828 msgid "" "An AS pattern matches an OR pattern on the left of the :keyword:`as` keyword " "against a subject. Syntax:" msgstr "" -#: reference/compound_stmts.rst:827 +#: reference/compound_stmts.rst:834 msgid "" "If the OR pattern fails, the AS pattern fails. Otherwise, the AS pattern " "binds the subject to the name on the right of the as keyword and succeeds. " "``capture_pattern`` cannot be a ``_``." msgstr "" -#: reference/compound_stmts.rst:831 +#: reference/compound_stmts.rst:838 msgid "" "In simple terms ``P as NAME`` will match with ``P``, and on success it will " "set ``NAME = ``." msgstr "" -#: reference/compound_stmts.rst:838 +#: reference/compound_stmts.rst:845 msgid "Literal Patterns" msgstr "" -#: reference/compound_stmts.rst:840 +#: reference/compound_stmts.rst:847 msgid "" "A literal pattern corresponds to most :ref:`literals ` in Python. " "Syntax:" msgstr "" -#: reference/compound_stmts.rst:853 +#: reference/compound_stmts.rst:860 msgid "" "The rule ``strings`` and the token ``NUMBER`` are defined in the :doc:" "`standard Python grammar <./grammar>`. Triple-quoted strings are " "supported. Raw strings and byte strings are supported. :ref:`f-strings` " -"are not supported." +"and :ref:`t-strings` are not supported." msgstr "" -#: reference/compound_stmts.rst:858 +#: reference/compound_stmts.rst:865 msgid "" "The forms ``signed_number '+' NUMBER`` and ``signed_number '-' NUMBER`` are " "for expressing :ref:`complex numbers `; they require a real " "number on the left and an imaginary number on the right. E.g. ``3 + 4j``." msgstr "" -#: reference/compound_stmts.rst:862 +#: reference/compound_stmts.rst:869 msgid "" "In simple terms, ``LITERAL`` will succeed only if `` == LITERAL``. " "For the singletons ``None``, ``True`` and ``False``, the :keyword:`is` " "operator is used." msgstr "" -#: reference/compound_stmts.rst:868 +#: reference/compound_stmts.rst:875 msgid "Capture Patterns" msgstr "" -#: reference/compound_stmts.rst:870 +#: reference/compound_stmts.rst:877 msgid "A capture pattern binds the subject value to a name. Syntax:" msgstr "" -#: reference/compound_stmts.rst:876 +#: reference/compound_stmts.rst:883 msgid "" "A single underscore ``_`` is not a capture pattern (this is what ``!'_'`` " "expresses). It is instead treated as a :token:`~python-grammar:" "wildcard_pattern`." msgstr "" -#: reference/compound_stmts.rst:880 +#: reference/compound_stmts.rst:887 msgid "" "In a given pattern, a given name can only be bound once. E.g. ``case x, " "x: ...`` is invalid while ``case [x] | x: ...`` is allowed." msgstr "" -#: reference/compound_stmts.rst:883 +#: reference/compound_stmts.rst:890 msgid "" "Capture patterns always succeed. The binding follows scoping rules " "established by the assignment expression operator in :pep:`572`; the name " @@ -1028,55 +1037,55 @@ msgid "" "there's an applicable :keyword:`global` or :keyword:`nonlocal` statement." msgstr "" -#: reference/compound_stmts.rst:888 +#: reference/compound_stmts.rst:895 msgid "" "In simple terms ``NAME`` will always succeed and it will set ``NAME = " "``." msgstr "" -#: reference/compound_stmts.rst:893 +#: reference/compound_stmts.rst:900 msgid "Wildcard Patterns" msgstr "" -#: reference/compound_stmts.rst:895 +#: reference/compound_stmts.rst:902 msgid "" "A wildcard pattern always succeeds (matches anything) and binds no name. " "Syntax:" msgstr "" -#: reference/compound_stmts.rst:901 +#: reference/compound_stmts.rst:908 msgid "" "``_`` is a :ref:`soft keyword ` within any pattern, but only " "within patterns. It is an identifier, as usual, even within ``match`` " "subject expressions, ``guard``\\ s, and ``case`` blocks." msgstr "" -#: reference/compound_stmts.rst:905 +#: reference/compound_stmts.rst:912 msgid "In simple terms, ``_`` will always succeed." msgstr "" -#: reference/compound_stmts.rst:910 +#: reference/compound_stmts.rst:917 msgid "Value Patterns" msgstr "" -#: reference/compound_stmts.rst:912 +#: reference/compound_stmts.rst:919 msgid "A value pattern represents a named value in Python. Syntax:" msgstr "" -#: reference/compound_stmts.rst:920 +#: reference/compound_stmts.rst:927 msgid "" "The dotted name in the pattern is looked up using standard Python :ref:`name " "resolution rules `. The pattern succeeds if the value found " "compares equal to the subject value (using the ``==`` equality operator)." msgstr "" -#: reference/compound_stmts.rst:925 +#: reference/compound_stmts.rst:932 msgid "" "In simple terms ``NAME1.NAME2`` will succeed only if `` == NAME1." "NAME2``" msgstr "" -#: reference/compound_stmts.rst:929 +#: reference/compound_stmts.rst:936 msgid "" "If the same value occurs multiple times in the same match statement, the " "interpreter may cache the first value found and reuse it rather than repeat " @@ -1084,44 +1093,44 @@ msgid "" "given match statement." msgstr "" -#: reference/compound_stmts.rst:937 +#: reference/compound_stmts.rst:944 msgid "Group Patterns" msgstr "" -#: reference/compound_stmts.rst:939 +#: reference/compound_stmts.rst:946 msgid "" "A group pattern allows users to add parentheses around patterns to emphasize " "the intended grouping. Otherwise, it has no additional syntax. Syntax:" msgstr "" -#: reference/compound_stmts.rst:946 +#: reference/compound_stmts.rst:953 msgid "In simple terms ``(P)`` has the same effect as ``P``." msgstr "" -#: reference/compound_stmts.rst:951 +#: reference/compound_stmts.rst:958 msgid "Sequence Patterns" msgstr "" -#: reference/compound_stmts.rst:953 +#: reference/compound_stmts.rst:960 msgid "" "A sequence pattern contains several subpatterns to be matched against " "sequence elements. The syntax is similar to the unpacking of a list or tuple." msgstr "" -#: reference/compound_stmts.rst:964 +#: reference/compound_stmts.rst:971 msgid "" "There is no difference if parentheses or square brackets are used for " "sequence patterns (i.e. ``(...)`` vs ``[...]`` )." msgstr "" -#: reference/compound_stmts.rst:968 +#: reference/compound_stmts.rst:975 msgid "" "A single pattern enclosed in parentheses without a trailing comma (e.g. ``(3 " "| 4)``) is a :ref:`group pattern `. While a single pattern " "enclosed in square brackets (e.g. ``[3 | 4]``) is still a sequence pattern." msgstr "" -#: reference/compound_stmts.rst:973 +#: reference/compound_stmts.rst:980 msgid "" "At most one star subpattern may be in a sequence pattern. The star " "subpattern may occur in any position. If no star subpattern is present, the " @@ -1129,40 +1138,40 @@ msgid "" "variable-length sequence pattern." msgstr "" -#: reference/compound_stmts.rst:978 +#: reference/compound_stmts.rst:985 msgid "" "The following is the logical flow for matching a sequence pattern against a " "subject value:" msgstr "" -#: reference/compound_stmts.rst:981 +#: reference/compound_stmts.rst:988 msgid "" "If the subject value is not a sequence [#]_, the sequence pattern fails." msgstr "" -#: reference/compound_stmts.rst:984 +#: reference/compound_stmts.rst:991 msgid "" "If the subject value is an instance of ``str``, ``bytes`` or ``bytearray`` " "the sequence pattern fails." msgstr "" -#: reference/compound_stmts.rst:987 +#: reference/compound_stmts.rst:994 msgid "" "The subsequent steps depend on whether the sequence pattern is fixed or " "variable-length." msgstr "" -#: reference/compound_stmts.rst:990 +#: reference/compound_stmts.rst:997 msgid "If the sequence pattern is fixed-length:" msgstr "" -#: reference/compound_stmts.rst:992 +#: reference/compound_stmts.rst:999 msgid "" "If the length of the subject sequence is not equal to the number of " "subpatterns, the sequence pattern fails" msgstr "" -#: reference/compound_stmts.rst:995 +#: reference/compound_stmts.rst:1002 msgid "" "Subpatterns in the sequence pattern are matched to their corresponding items " "in the subject sequence from left to right. Matching stops as soon as a " @@ -1170,373 +1179,373 @@ msgid "" "corresponding item, the sequence pattern succeeds." msgstr "" -#: reference/compound_stmts.rst:1000 +#: reference/compound_stmts.rst:1007 msgid "Otherwise, if the sequence pattern is variable-length:" msgstr "" -#: reference/compound_stmts.rst:1002 +#: reference/compound_stmts.rst:1009 msgid "" "If the length of the subject sequence is less than the number of non-star " "subpatterns, the sequence pattern fails." msgstr "" -#: reference/compound_stmts.rst:1005 +#: reference/compound_stmts.rst:1012 msgid "" "The leading non-star subpatterns are matched to their corresponding items as " "for fixed-length sequences." msgstr "" -#: reference/compound_stmts.rst:1008 +#: reference/compound_stmts.rst:1015 msgid "" "If the previous step succeeds, the star subpattern matches a list formed of " "the remaining subject items, excluding the remaining items corresponding to " "non-star subpatterns following the star subpattern." msgstr "" -#: reference/compound_stmts.rst:1012 +#: reference/compound_stmts.rst:1019 msgid "" "Remaining non-star subpatterns are matched to their corresponding subject " "items, as for a fixed-length sequence." msgstr "" -#: reference/compound_stmts.rst:1015 +#: reference/compound_stmts.rst:1022 msgid "" "The length of the subject sequence is obtained via :func:`len` (i.e. via " -"the :meth:`__len__` protocol). This length may be cached by the interpreter " -"in a similar manner as :ref:`value patterns `." +"the :meth:`~object.__len__` protocol). This length may be cached by the " +"interpreter in a similar manner as :ref:`value patterns `." msgstr "" -#: reference/compound_stmts.rst:1021 +#: reference/compound_stmts.rst:1028 msgid "" "In simple terms ``[P1, P2, P3,`` ... ``, P]`` matches only if all the " "following happens:" msgstr "" -#: reference/compound_stmts.rst:1024 +#: reference/compound_stmts.rst:1031 msgid "check ```` is a sequence" msgstr "" -#: reference/compound_stmts.rst:1025 +#: reference/compound_stmts.rst:1032 msgid "``len(subject) == ``" msgstr "" -#: reference/compound_stmts.rst:1026 +#: reference/compound_stmts.rst:1033 msgid "" "``P1`` matches ``[0]`` (note that this match can also bind names)" msgstr "" -#: reference/compound_stmts.rst:1027 +#: reference/compound_stmts.rst:1034 msgid "" "``P2`` matches ``[1]`` (note that this match can also bind names)" msgstr "" -#: reference/compound_stmts.rst:1028 +#: reference/compound_stmts.rst:1035 msgid "... and so on for the corresponding pattern/element." msgstr "" -#: reference/compound_stmts.rst:1033 +#: reference/compound_stmts.rst:1040 msgid "Mapping Patterns" msgstr "" -#: reference/compound_stmts.rst:1035 +#: reference/compound_stmts.rst:1042 msgid "" "A mapping pattern contains one or more key-value patterns. The syntax is " "similar to the construction of a dictionary. Syntax:" msgstr "" -#: reference/compound_stmts.rst:1046 +#: reference/compound_stmts.rst:1053 msgid "" "At most one double star pattern may be in a mapping pattern. The double " "star pattern must be the last subpattern in the mapping pattern." msgstr "" -#: reference/compound_stmts.rst:1049 +#: reference/compound_stmts.rst:1056 msgid "" "Duplicate keys in mapping patterns are disallowed. Duplicate literal keys " "will raise a :exc:`SyntaxError`. Two keys that otherwise have the same value " "will raise a :exc:`ValueError` at runtime." msgstr "" -#: reference/compound_stmts.rst:1053 +#: reference/compound_stmts.rst:1060 msgid "" "The following is the logical flow for matching a mapping pattern against a " "subject value:" msgstr "" -#: reference/compound_stmts.rst:1056 +#: reference/compound_stmts.rst:1063 msgid "If the subject value is not a mapping [#]_,the mapping pattern fails." msgstr "" -#: reference/compound_stmts.rst:1058 +#: reference/compound_stmts.rst:1065 msgid "" "If every key given in the mapping pattern is present in the subject mapping, " "and the pattern for each key matches the corresponding item of the subject " "mapping, the mapping pattern succeeds." msgstr "" -#: reference/compound_stmts.rst:1062 +#: reference/compound_stmts.rst:1069 msgid "" "If duplicate keys are detected in the mapping pattern, the pattern is " "considered invalid. A :exc:`SyntaxError` is raised for duplicate literal " "values; or a :exc:`ValueError` for named keys of the same value." msgstr "" -#: reference/compound_stmts.rst:1066 +#: reference/compound_stmts.rst:1073 msgid "" "Key-value pairs are matched using the two-argument form of the mapping " "subject's ``get()`` method. Matched key-value pairs must already be present " -"in the mapping, and not created on-the-fly via :meth:`__missing__` or :meth:" -"`~object.__getitem__`." +"in the mapping, and not created on-the-fly via :meth:`~object.__missing__` " +"or :meth:`~object.__getitem__`." msgstr "" -#: reference/compound_stmts.rst:1071 +#: reference/compound_stmts.rst:1078 msgid "" "In simple terms ``{KEY1: P1, KEY2: P2, ... }`` matches only if all the " "following happens:" msgstr "" -#: reference/compound_stmts.rst:1074 +#: reference/compound_stmts.rst:1081 msgid "check ```` is a mapping" msgstr "" -#: reference/compound_stmts.rst:1075 +#: reference/compound_stmts.rst:1082 msgid "``KEY1 in ``" msgstr "" -#: reference/compound_stmts.rst:1076 +#: reference/compound_stmts.rst:1083 msgid "``P1`` matches ``[KEY1]``" msgstr "" -#: reference/compound_stmts.rst:1077 +#: reference/compound_stmts.rst:1084 msgid "... and so on for the corresponding KEY/pattern pair." msgstr "" -#: reference/compound_stmts.rst:1083 +#: reference/compound_stmts.rst:1090 msgid "Class Patterns" msgstr "" -#: reference/compound_stmts.rst:1085 +#: reference/compound_stmts.rst:1092 msgid "" "A class pattern represents a class and its positional and keyword arguments " "(if any). Syntax:" msgstr "" -#: reference/compound_stmts.rst:1096 +#: reference/compound_stmts.rst:1103 msgid "The same keyword should not be repeated in class patterns." msgstr "" -#: reference/compound_stmts.rst:1098 +#: reference/compound_stmts.rst:1105 msgid "" "The following is the logical flow for matching a class pattern against a " "subject value:" msgstr "" -#: reference/compound_stmts.rst:1101 +#: reference/compound_stmts.rst:1108 msgid "" "If ``name_or_attr`` is not an instance of the builtin :class:`type` , raise :" "exc:`TypeError`." msgstr "" -#: reference/compound_stmts.rst:1104 +#: reference/compound_stmts.rst:1111 msgid "" "If the subject value is not an instance of ``name_or_attr`` (tested via :" "func:`isinstance`), the class pattern fails." msgstr "" -#: reference/compound_stmts.rst:1107 +#: reference/compound_stmts.rst:1114 msgid "" "If no pattern arguments are present, the pattern succeeds. Otherwise, the " "subsequent steps depend on whether keyword or positional argument patterns " "are present." msgstr "" -#: reference/compound_stmts.rst:1111 +#: reference/compound_stmts.rst:1118 msgid "" "For a number of built-in types (specified below), a single positional " "subpattern is accepted which will match the entire subject; for these types " "keyword patterns also work as for other types." msgstr "" -#: reference/compound_stmts.rst:1115 +#: reference/compound_stmts.rst:1122 msgid "" "If only keyword patterns are present, they are processed as follows, one by " "one:" msgstr "" -#: reference/compound_stmts.rst:1118 +#: reference/compound_stmts.rst:1125 msgid "I. The keyword is looked up as an attribute on the subject." msgstr "" -#: reference/compound_stmts.rst:1120 +#: reference/compound_stmts.rst:1127 msgid "" "If this raises an exception other than :exc:`AttributeError`, the exception " "bubbles up." msgstr "" -#: reference/compound_stmts.rst:1123 +#: reference/compound_stmts.rst:1130 msgid "If this raises :exc:`AttributeError`, the class pattern has failed." msgstr "" -#: reference/compound_stmts.rst:1125 +#: reference/compound_stmts.rst:1132 msgid "" "Else, the subpattern associated with the keyword pattern is matched against " "the subject's attribute value. If this fails, the class pattern fails; if " "this succeeds, the match proceeds to the next keyword." msgstr "" -#: reference/compound_stmts.rst:1130 +#: reference/compound_stmts.rst:1137 msgid "II. If all keyword patterns succeed, the class pattern succeeds." msgstr "" -#: reference/compound_stmts.rst:1132 +#: reference/compound_stmts.rst:1139 msgid "" "If any positional patterns are present, they are converted to keyword " "patterns using the :data:`~object.__match_args__` attribute on the class " "``name_or_attr`` before matching:" msgstr "" -#: reference/compound_stmts.rst:1136 +#: reference/compound_stmts.rst:1143 msgid "" "I. The equivalent of ``getattr(cls, \"__match_args__\", ())`` is called." msgstr "" -#: reference/compound_stmts.rst:1138 +#: reference/compound_stmts.rst:1145 msgid "If this raises an exception, the exception bubbles up." msgstr "" -#: reference/compound_stmts.rst:1140 +#: reference/compound_stmts.rst:1147 msgid "" "If the returned value is not a tuple, the conversion fails and :exc:" "`TypeError` is raised." msgstr "" -#: reference/compound_stmts.rst:1143 +#: reference/compound_stmts.rst:1150 msgid "" "If there are more positional patterns than ``len(cls.__match_args__)``, :exc:" "`TypeError` is raised." msgstr "" -#: reference/compound_stmts.rst:1146 +#: reference/compound_stmts.rst:1153 msgid "" "Otherwise, positional pattern ``i`` is converted to a keyword pattern using " "``__match_args__[i]`` as the keyword. ``__match_args__[i]`` must be a " "string; if not :exc:`TypeError` is raised." msgstr "" -#: reference/compound_stmts.rst:1150 +#: reference/compound_stmts.rst:1157 msgid "If there are duplicate keywords, :exc:`TypeError` is raised." msgstr "" -#: reference/compound_stmts.rst:1152 +#: reference/compound_stmts.rst:1159 msgid ":ref:`class-pattern-matching`" msgstr "" -#: reference/compound_stmts.rst:1154 +#: reference/compound_stmts.rst:1161 msgid "" "II. Once all positional patterns have been converted to keyword patterns," msgstr "" -#: reference/compound_stmts.rst:1155 +#: reference/compound_stmts.rst:1162 msgid "the match proceeds as if there were only keyword patterns." msgstr "" -#: reference/compound_stmts.rst:1157 +#: reference/compound_stmts.rst:1164 msgid "" "For the following built-in types the handling of positional subpatterns is " "different:" msgstr "" -#: reference/compound_stmts.rst:1160 +#: reference/compound_stmts.rst:1167 msgid ":class:`bool`" msgstr "" -#: reference/compound_stmts.rst:1161 +#: reference/compound_stmts.rst:1168 msgid ":class:`bytearray`" msgstr "" -#: reference/compound_stmts.rst:1162 +#: reference/compound_stmts.rst:1169 msgid ":class:`bytes`" msgstr "" -#: reference/compound_stmts.rst:1163 +#: reference/compound_stmts.rst:1170 msgid ":class:`dict`" msgstr "" -#: reference/compound_stmts.rst:1164 +#: reference/compound_stmts.rst:1171 msgid ":class:`float`" msgstr "" -#: reference/compound_stmts.rst:1165 +#: reference/compound_stmts.rst:1172 msgid ":class:`frozenset`" msgstr "" -#: reference/compound_stmts.rst:1166 +#: reference/compound_stmts.rst:1173 msgid ":class:`int`" msgstr "" -#: reference/compound_stmts.rst:1167 reference/compound_stmts.rst:1925 +#: reference/compound_stmts.rst:1174 reference/compound_stmts.rst:1932 msgid ":class:`list`" msgstr "" -#: reference/compound_stmts.rst:1168 +#: reference/compound_stmts.rst:1175 msgid ":class:`set`" msgstr "" -#: reference/compound_stmts.rst:1169 +#: reference/compound_stmts.rst:1176 msgid ":class:`str`" msgstr "" -#: reference/compound_stmts.rst:1170 reference/compound_stmts.rst:1928 +#: reference/compound_stmts.rst:1177 reference/compound_stmts.rst:1935 msgid ":class:`tuple`" msgstr "" -#: reference/compound_stmts.rst:1172 +#: reference/compound_stmts.rst:1179 msgid "" "These classes accept a single positional argument, and the pattern there is " "matched against the whole object rather than an attribute. For example " "``int(0|1)`` matches the value ``0``, but not the value ``0.0``." msgstr "" -#: reference/compound_stmts.rst:1176 +#: reference/compound_stmts.rst:1183 msgid "" "In simple terms ``CLS(P1, attr=P2)`` matches only if the following happens:" msgstr "" -#: reference/compound_stmts.rst:1178 +#: reference/compound_stmts.rst:1185 msgid "``isinstance(, CLS)``" msgstr "" -#: reference/compound_stmts.rst:1179 +#: reference/compound_stmts.rst:1186 msgid "convert ``P1`` to a keyword pattern using ``CLS.__match_args__``" msgstr "" -#: reference/compound_stmts.rst:1180 +#: reference/compound_stmts.rst:1187 msgid "For each keyword argument ``attr=P2``:" msgstr "" -#: reference/compound_stmts.rst:1182 +#: reference/compound_stmts.rst:1189 msgid "``hasattr(, \"attr\")``" msgstr "" -#: reference/compound_stmts.rst:1183 +#: reference/compound_stmts.rst:1190 msgid "``P2`` matches ``.attr``" msgstr "" -#: reference/compound_stmts.rst:1185 +#: reference/compound_stmts.rst:1192 msgid "... and so on for the corresponding keyword argument/pattern pair." msgstr "" -#: reference/compound_stmts.rst:1200 +#: reference/compound_stmts.rst:1207 msgid "Function definitions" msgstr "" -#: reference/compound_stmts.rst:1215 +#: reference/compound_stmts.rst:1222 msgid "" "A function definition defines a user-defined function object (see section :" "ref:`types`):" msgstr "" -#: reference/compound_stmts.rst:1237 +#: reference/compound_stmts.rst:1244 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 " @@ -1545,13 +1554,13 @@ msgid "" "used when the function is called." msgstr "" -#: reference/compound_stmts.rst:1243 +#: reference/compound_stmts.rst:1250 msgid "" "The function definition does not execute the function body; this gets " "executed only when the function is called. [#]_" msgstr "" -#: reference/compound_stmts.rst:1249 +#: reference/compound_stmts.rst:1256 msgid "" "A function definition may be wrapped by one or more :term:`decorator` " "expressions. Decorator expressions are evaluated when the function is " @@ -1562,37 +1571,37 @@ msgid "" "example, the following code ::" msgstr "" -#: reference/compound_stmts.rst:1256 +#: reference/compound_stmts.rst:1263 msgid "" "@f1(arg)\n" "@f2\n" "def func(): pass" msgstr "" -#: reference/compound_stmts.rst:1260 reference/compound_stmts.rst:1449 +#: reference/compound_stmts.rst:1267 reference/compound_stmts.rst:1456 msgid "is roughly equivalent to ::" msgstr "" -#: reference/compound_stmts.rst:1262 +#: reference/compound_stmts.rst:1269 msgid "" "def func(): pass\n" "func = f1(arg)(f2(func))" msgstr "" -#: reference/compound_stmts.rst:1265 +#: reference/compound_stmts.rst:1272 msgid "" "except that the original function is not temporarily bound to the name " "``func``." msgstr "" -#: reference/compound_stmts.rst:1267 +#: reference/compound_stmts.rst:1274 msgid "" "Functions may be decorated with any valid :token:`~python-grammar:" "assignment_expression`. Previously, the grammar was much more restrictive; " "see :pep:`614` for details." msgstr "" -#: reference/compound_stmts.rst:1272 +#: reference/compound_stmts.rst:1279 msgid "" "A list of :ref:`type parameters ` may be given in square " "brackets between the function's name and the opening parenthesis for its " @@ -1602,11 +1611,11 @@ msgid "" "functions` for more." msgstr "" -#: reference/compound_stmts.rst:1279 reference/compound_stmts.rst:1468 +#: reference/compound_stmts.rst:1286 reference/compound_stmts.rst:1475 msgid "Type parameter lists are new in Python 3.12." msgstr "" -#: reference/compound_stmts.rst:1287 +#: reference/compound_stmts.rst:1294 msgid "" "When one or more :term:`parameters ` have the form *parameter* " "``=`` *expression*, the function is said to have \"default parameter values." @@ -1617,7 +1626,7 @@ msgid "" "syntactic restriction that is not expressed by the grammar." msgstr "" -#: reference/compound_stmts.rst:1295 +#: reference/compound_stmts.rst:1302 msgid "" "**Default parameter values are evaluated from left to right when the " "function definition is executed.** This means that the expression is " @@ -1630,7 +1639,7 @@ msgid "" "the default, and explicitly test for it in the body of the function, e.g.::" msgstr "" -#: reference/compound_stmts.rst:1305 +#: reference/compound_stmts.rst:1312 msgid "" "def whats_on_the_telly(penguin=None):\n" " if penguin is None:\n" @@ -1639,7 +1648,7 @@ msgid "" " return penguin" msgstr "" -#: reference/compound_stmts.rst:1316 +#: reference/compound_stmts.rst:1323 msgid "" "Function call semantics are described in more detail in section :ref:" "`calls`. A function call always assigns values to all parameters mentioned " @@ -1655,13 +1664,13 @@ msgid "" "positional arguments." msgstr "" -#: reference/compound_stmts.rst:1328 +#: reference/compound_stmts.rst:1335 msgid "" "The ``/`` function parameter syntax may be used to indicate positional-only " "parameters. See :pep:`570` for details." msgstr "" -#: reference/compound_stmts.rst:1337 +#: reference/compound_stmts.rst:1344 msgid "" "Parameters may have an :term:`annotation ` of the form " "\"``: expression``\" following the parameter name. Any parameter may have " @@ -1674,13 +1683,13 @@ msgid "" "information on annotations." msgstr "" -#: reference/compound_stmts.rst:1345 +#: reference/compound_stmts.rst:1352 msgid "" "Parameters of the form \"``*identifier``\" may have an annotation \"``: " "*expression``\". See :pep:`646`." msgstr "" -#: reference/compound_stmts.rst:1351 +#: reference/compound_stmts.rst:1358 msgid "" "It is also possible to create anonymous functions (functions not bound to a " "name), for immediate use in expressions. This uses lambda expressions, " @@ -1692,7 +1701,7 @@ msgid "" "execution of multiple statements and annotations." msgstr "" -#: reference/compound_stmts.rst:1359 +#: reference/compound_stmts.rst:1366 msgid "" "**Programmer's note:** Functions are first-class objects. A \"``def``\" " "statement executed inside a function definition defines a local function " @@ -1701,61 +1710,61 @@ msgid "" "See section :ref:`naming` for details." msgstr "" -#: reference/compound_stmts.rst:1367 +#: reference/compound_stmts.rst:1374 msgid ":pep:`3107` - Function Annotations" msgstr "" -#: reference/compound_stmts.rst:1368 +#: reference/compound_stmts.rst:1375 msgid "The original specification for function annotations." msgstr "" -#: reference/compound_stmts.rst:1370 +#: reference/compound_stmts.rst:1377 msgid ":pep:`484` - Type Hints" msgstr "" -#: reference/compound_stmts.rst:1371 +#: reference/compound_stmts.rst:1378 msgid "Definition of a standard meaning for annotations: type hints." msgstr "" -#: reference/compound_stmts.rst:1373 +#: reference/compound_stmts.rst:1380 msgid ":pep:`526` - Syntax for Variable Annotations" msgstr "" -#: reference/compound_stmts.rst:1374 +#: reference/compound_stmts.rst:1381 msgid "" "Ability to type hint variable declarations, including class variables and " "instance variables." msgstr "" -#: reference/compound_stmts.rst:1377 +#: reference/compound_stmts.rst:1384 msgid ":pep:`563` - Postponed Evaluation of Annotations" msgstr "" -#: reference/compound_stmts.rst:1378 +#: reference/compound_stmts.rst:1385 msgid "" "Support for forward references within annotations by preserving annotations " "in a string form at runtime instead of eager evaluation." msgstr "" -#: reference/compound_stmts.rst:1381 +#: reference/compound_stmts.rst:1388 msgid ":pep:`318` - Decorators for Functions and Methods" msgstr "" -#: reference/compound_stmts.rst:1382 +#: reference/compound_stmts.rst:1389 msgid "" "Function and method decorators were introduced. Class decorators were " "introduced in :pep:`3129`." msgstr "" -#: reference/compound_stmts.rst:1388 +#: reference/compound_stmts.rst:1395 msgid "Class definitions" msgstr "" -#: reference/compound_stmts.rst:1403 +#: reference/compound_stmts.rst:1410 msgid "A class definition defines a class object (see section :ref:`types`):" msgstr "" -#: reference/compound_stmts.rst:1410 +#: reference/compound_stmts.rst:1417 msgid "" "A class definition is an executable statement. The inheritance list usually " "gives a list of base classes (see :ref:`metaclasses` for more advanced " @@ -1764,23 +1773,23 @@ msgid "" "default, from the base class :class:`object`; hence, ::" msgstr "" -#: reference/compound_stmts.rst:1416 +#: reference/compound_stmts.rst:1423 msgid "" "class Foo:\n" " pass" msgstr "" -#: reference/compound_stmts.rst:1419 +#: reference/compound_stmts.rst:1426 msgid "is equivalent to ::" msgstr "" -#: reference/compound_stmts.rst:1421 +#: reference/compound_stmts.rst:1428 msgid "" "class Foo(object):\n" " pass" msgstr "" -#: reference/compound_stmts.rst:1424 +#: reference/compound_stmts.rst:1431 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 " @@ -1792,7 +1801,7 @@ msgid "" "original local namespace." msgstr "" -#: reference/compound_stmts.rst:1433 +#: reference/compound_stmts.rst:1440 msgid "" "The order in which attributes are defined in the class body is preserved in " "the new class's :attr:`~type.__dict__`. Note that this is reliable only " @@ -1800,43 +1809,43 @@ msgid "" "using the definition syntax." msgstr "" -#: reference/compound_stmts.rst:1438 +#: reference/compound_stmts.rst:1445 msgid "" "Class creation can be customized heavily using :ref:`metaclasses " "`." msgstr "" -#: reference/compound_stmts.rst:1443 +#: reference/compound_stmts.rst:1450 msgid "Classes can also be decorated: just like when decorating functions, ::" msgstr "" -#: reference/compound_stmts.rst:1445 +#: reference/compound_stmts.rst:1452 msgid "" "@f1(arg)\n" "@f2\n" "class Foo: pass" msgstr "" -#: reference/compound_stmts.rst:1451 +#: reference/compound_stmts.rst:1458 msgid "" "class Foo: pass\n" "Foo = f1(arg)(f2(Foo))" msgstr "" -#: reference/compound_stmts.rst:1454 +#: reference/compound_stmts.rst:1461 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 "" -#: reference/compound_stmts.rst:1457 +#: reference/compound_stmts.rst:1464 msgid "" "Classes may be decorated with any valid :token:`~python-grammar:" "assignment_expression`. Previously, the grammar was much more restrictive; " "see :pep:`614` for details." msgstr "" -#: reference/compound_stmts.rst:1462 +#: reference/compound_stmts.rst:1469 msgid "" "A list of :ref:`type parameters ` may be given in square " "brackets immediately after the class's name. This indicates to static type " @@ -1845,7 +1854,7 @@ msgid "" "`generic-classes` for more." msgstr "" -#: reference/compound_stmts.rst:1471 +#: reference/compound_stmts.rst:1478 msgid "" "**Programmer's note:** Variables defined in the class definition are class " "attributes; they are shared by instances. Instance attributes can be set in " @@ -1858,35 +1867,35 @@ msgid "" "implementation details." msgstr "" -#: reference/compound_stmts.rst:1483 +#: reference/compound_stmts.rst:1490 msgid ":pep:`3115` - Metaclasses in Python 3000" msgstr "" -#: reference/compound_stmts.rst:1484 +#: reference/compound_stmts.rst:1491 msgid "" "The proposal that changed the declaration of metaclasses to the current " "syntax, and the semantics for how classes with metaclasses are constructed." msgstr "" -#: reference/compound_stmts.rst:1488 +#: reference/compound_stmts.rst:1495 msgid ":pep:`3129` - Class Decorators" msgstr "" -#: reference/compound_stmts.rst:1489 +#: reference/compound_stmts.rst:1496 msgid "" "The proposal that added class decorators. Function and method decorators " "were introduced in :pep:`318`." msgstr "" -#: reference/compound_stmts.rst:1496 +#: reference/compound_stmts.rst:1503 msgid "Coroutines" msgstr "" -#: reference/compound_stmts.rst:1504 +#: reference/compound_stmts.rst:1511 msgid "Coroutine function definition" msgstr "" -#: reference/compound_stmts.rst:1514 +#: reference/compound_stmts.rst:1521 msgid "" "Execution of Python coroutines can be suspended and resumed at many points " "(see :term:`coroutine`). :keyword:`await` expressions, :keyword:`async for` " @@ -1894,53 +1903,53 @@ msgid "" "function." msgstr "" -#: reference/compound_stmts.rst:1518 +#: reference/compound_stmts.rst:1525 msgid "" "Functions defined with ``async def`` syntax are always coroutine functions, " "even if they do not contain ``await`` or ``async`` keywords." msgstr "" -#: reference/compound_stmts.rst:1521 +#: reference/compound_stmts.rst:1528 msgid "" "It is a :exc:`SyntaxError` to use a ``yield from`` expression inside the " "body of a coroutine function." msgstr "" -#: reference/compound_stmts.rst:1524 +#: reference/compound_stmts.rst:1531 msgid "An example of a coroutine function::" msgstr "" -#: reference/compound_stmts.rst:1526 +#: reference/compound_stmts.rst:1533 msgid "" "async def func(param1, param2):\n" " do_stuff()\n" " await some_coroutine()" msgstr "" -#: reference/compound_stmts.rst:1530 +#: reference/compound_stmts.rst:1537 msgid "" "``await`` and ``async`` are now keywords; previously they were only treated " "as such inside the body of a coroutine function." msgstr "" -#: reference/compound_stmts.rst:1538 +#: reference/compound_stmts.rst:1545 msgid "The :keyword:`!async for` statement" msgstr "" -#: reference/compound_stmts.rst:1543 +#: reference/compound_stmts.rst:1550 msgid "" "An :term:`asynchronous iterable` provides an ``__aiter__`` method that " "directly returns an :term:`asynchronous iterator`, which can call " "asynchronous code in its ``__anext__`` method." msgstr "" -#: reference/compound_stmts.rst:1547 +#: reference/compound_stmts.rst:1554 msgid "" "The ``async for`` statement allows convenient iteration over asynchronous " "iterables." msgstr "" -#: reference/compound_stmts.rst:1552 +#: reference/compound_stmts.rst:1559 msgid "" "async for TARGET in ITER:\n" " SUITE\n" @@ -1948,11 +1957,11 @@ msgid "" " SUITE2" msgstr "" -#: reference/compound_stmts.rst:1557 +#: reference/compound_stmts.rst:1564 msgid "Is semantically equivalent to::" msgstr "" -#: reference/compound_stmts.rst:1559 +#: reference/compound_stmts.rst:1566 msgid "" "iter = (ITER)\n" "iter = type(iter).__aiter__(iter)\n" @@ -1969,34 +1978,34 @@ msgid "" " SUITE2" msgstr "" -#: reference/compound_stmts.rst:1573 +#: reference/compound_stmts.rst:1580 msgid "" "See also :meth:`~object.__aiter__` and :meth:`~object.__anext__` for details." msgstr "" -#: reference/compound_stmts.rst:1575 +#: reference/compound_stmts.rst:1582 msgid "" "It is a :exc:`SyntaxError` to use an ``async for`` statement outside the " "body of a coroutine function." msgstr "" -#: reference/compound_stmts.rst:1583 +#: reference/compound_stmts.rst:1590 msgid "The :keyword:`!async with` statement" msgstr "" -#: reference/compound_stmts.rst:1588 +#: reference/compound_stmts.rst:1595 msgid "" "An :term:`asynchronous context manager` is a :term:`context manager` that is " "able to suspend execution in its *enter* and *exit* methods." msgstr "" -#: reference/compound_stmts.rst:1593 +#: reference/compound_stmts.rst:1600 msgid "" "async with EXPRESSION as TARGET:\n" " SUITE" msgstr "" -#: reference/compound_stmts.rst:1598 +#: reference/compound_stmts.rst:1605 msgid "" "manager = (EXPRESSION)\n" "aenter = type(manager).__aenter__\n" @@ -2016,44 +2025,44 @@ msgid "" " await aexit(manager, None, None, None)" msgstr "" -#: reference/compound_stmts.rst:1615 +#: reference/compound_stmts.rst:1622 msgid "" "See also :meth:`~object.__aenter__` and :meth:`~object.__aexit__` for " "details." msgstr "" -#: reference/compound_stmts.rst:1617 +#: reference/compound_stmts.rst:1624 msgid "" "It is a :exc:`SyntaxError` to use an ``async with`` statement outside the " "body of a coroutine function." msgstr "" -#: reference/compound_stmts.rst:1622 +#: reference/compound_stmts.rst:1629 msgid ":pep:`492` - Coroutines with async and await syntax" msgstr "" -#: reference/compound_stmts.rst:1623 +#: reference/compound_stmts.rst:1630 msgid "" "The proposal that made coroutines a proper standalone concept in Python, and " "added supporting syntax." msgstr "" -#: reference/compound_stmts.rst:1629 +#: reference/compound_stmts.rst:1636 msgid "Type parameter lists" msgstr "" -#: reference/compound_stmts.rst:1633 +#: reference/compound_stmts.rst:1640 msgid "Support for default values was added (see :pep:`696`)." msgstr "" -#: reference/compound_stmts.rst:1646 +#: reference/compound_stmts.rst:1653 msgid "" ":ref:`Functions ` (including :ref:`coroutines `), :ref:" "`classes ` and :ref:`type aliases ` may contain a type " "parameter list::" msgstr "" -#: reference/compound_stmts.rst:1650 +#: reference/compound_stmts.rst:1657 msgid "" "def max[T](args: list[T]) -> T:\n" " ...\n" @@ -2071,7 +2080,7 @@ msgid "" "type ListOrSet[T] = list[T] | set[T]" msgstr "" -#: reference/compound_stmts.rst:1665 +#: reference/compound_stmts.rst:1672 msgid "" "Semantically, this indicates that the function, class, or type alias is " "generic over a type variable. This information is primarily used by static " @@ -2079,7 +2088,7 @@ msgid "" "generic counterparts." msgstr "" -#: reference/compound_stmts.rst:1670 +#: reference/compound_stmts.rst:1677 msgid "" "Type parameters are declared in square brackets (``[]``) immediately after " "the name of the function, class, or type alias. The type parameters are " @@ -2091,36 +2100,36 @@ msgid "" "wraps the creation of the generic object." msgstr "" -#: reference/compound_stmts.rst:1679 +#: reference/compound_stmts.rst:1686 msgid "" "Generic functions, classes, and type aliases have a :attr:`~definition." "__type_params__` attribute listing their type parameters." msgstr "" -#: reference/compound_stmts.rst:1682 +#: reference/compound_stmts.rst:1689 msgid "Type parameters come in three kinds:" msgstr "" -#: reference/compound_stmts.rst:1684 +#: reference/compound_stmts.rst:1691 msgid "" ":data:`typing.TypeVar`, introduced by a plain name (e.g., ``T``). " "Semantically, this represents a single type to a type checker." msgstr "" -#: reference/compound_stmts.rst:1686 +#: reference/compound_stmts.rst:1693 msgid "" ":data:`typing.TypeVarTuple`, introduced by a name prefixed with a single " "asterisk (e.g., ``*Ts``). Semantically, this stands for a tuple of any " "number of types." msgstr "" -#: reference/compound_stmts.rst:1689 +#: reference/compound_stmts.rst:1696 msgid "" ":data:`typing.ParamSpec`, introduced by a name prefixed with two asterisks " "(e.g., ``**P``). Semantically, this stands for the parameters of a callable." msgstr "" -#: reference/compound_stmts.rst:1692 +#: reference/compound_stmts.rst:1699 msgid "" ":data:`typing.TypeVar` declarations can define *bounds* and *constraints* " "with a colon (``:``) followed by an expression. A single expression after " @@ -2132,7 +2141,7 @@ msgid "" "variables can only take on one of the types in the list of constraints." msgstr "" -#: reference/compound_stmts.rst:1701 +#: reference/compound_stmts.rst:1708 msgid "" "For :data:`!typing.TypeVar`\\ s declared using the type parameter list " "syntax, the bound and constraints are not evaluated when the generic object " @@ -2142,13 +2151,13 @@ msgid "" "`." msgstr "" -#: reference/compound_stmts.rst:1707 +#: reference/compound_stmts.rst:1714 msgid "" ":data:`typing.TypeVarTuple`\\ s and :data:`typing.ParamSpec`\\ s cannot have " "bounds or constraints." msgstr "" -#: reference/compound_stmts.rst:1710 +#: reference/compound_stmts.rst:1717 msgid "" "All three flavors of type parameters can also have a *default value*, which " "is used when the type parameter is not explicitly provided. This is added by " @@ -2161,13 +2170,13 @@ msgid "" "attribute is set to the special sentinel object :data:`typing.NoDefault`." msgstr "" -#: reference/compound_stmts.rst:1720 +#: reference/compound_stmts.rst:1727 msgid "" "The following example indicates the full set of allowed type parameter " "declarations::" msgstr "" -#: reference/compound_stmts.rst:1722 +#: reference/compound_stmts.rst:1729 msgid "" "def overly_generic[\n" " SimpleTypeVar,\n" @@ -2185,23 +2194,23 @@ msgid "" "): ..." msgstr "" -#: reference/compound_stmts.rst:1740 +#: reference/compound_stmts.rst:1747 msgid "Generic functions" msgstr "" -#: reference/compound_stmts.rst:1742 +#: reference/compound_stmts.rst:1749 msgid "Generic functions are declared as follows::" msgstr "" -#: reference/compound_stmts.rst:1744 +#: reference/compound_stmts.rst:1751 msgid "def func[T](arg: T): ..." msgstr "" -#: reference/compound_stmts.rst:1746 reference/compound_stmts.rst:1806 +#: reference/compound_stmts.rst:1753 reference/compound_stmts.rst:1813 msgid "This syntax is equivalent to::" msgstr "" -#: reference/compound_stmts.rst:1748 +#: reference/compound_stmts.rst:1755 msgid "" "annotation-def TYPE_PARAMS_OF_func():\n" " T = typing.TypeVar(\"T\")\n" @@ -2211,7 +2220,7 @@ msgid "" "func = TYPE_PARAMS_OF_func()" msgstr "" -#: reference/compound_stmts.rst:1755 +#: reference/compound_stmts.rst:1762 msgid "" "Here ``annotation-def`` indicates an :ref:`annotation scope `, which is not actually bound to any name at runtime. (One other " @@ -2220,33 +2229,33 @@ msgid "" "data:`typing.TypeVar` directly.)" msgstr "" -#: reference/compound_stmts.rst:1761 +#: reference/compound_stmts.rst:1768 msgid "" "The annotations of generic functions are evaluated within the annotation " "scope used for declaring the type parameters, but the function's defaults " "and decorators are not." msgstr "" -#: reference/compound_stmts.rst:1765 +#: reference/compound_stmts.rst:1772 msgid "" "The following example illustrates the scoping rules for these cases, as well " "as for additional flavors of type parameters::" msgstr "" -#: reference/compound_stmts.rst:1768 +#: reference/compound_stmts.rst:1775 msgid "" "@decorator\n" "def func[T: int, *Ts, **P](*args: *Ts, arg: Callable[P, T] = some_default):\n" " ..." msgstr "" -#: reference/compound_stmts.rst:1772 +#: reference/compound_stmts.rst:1779 msgid "" "Except for the :ref:`lazy evaluation ` of the :class:" "`~typing.TypeVar` bound, this is equivalent to::" msgstr "" -#: reference/compound_stmts.rst:1775 +#: reference/compound_stmts.rst:1782 msgid "" "DEFAULT_OF_arg = some_default\n" "\n" @@ -2268,25 +2277,25 @@ msgid "" "func = decorator(TYPE_PARAMS_OF_func())" msgstr "" -#: reference/compound_stmts.rst:1794 +#: reference/compound_stmts.rst:1801 msgid "" "The capitalized names like ``DEFAULT_OF_arg`` are not actually bound at " "runtime." msgstr "" -#: reference/compound_stmts.rst:1800 +#: reference/compound_stmts.rst:1807 msgid "Generic classes" msgstr "" -#: reference/compound_stmts.rst:1802 +#: reference/compound_stmts.rst:1809 msgid "Generic classes are declared as follows::" msgstr "" -#: reference/compound_stmts.rst:1804 +#: reference/compound_stmts.rst:1811 msgid "class Bag[T]: ..." msgstr "" -#: reference/compound_stmts.rst:1808 +#: reference/compound_stmts.rst:1815 msgid "" "annotation-def TYPE_PARAMS_OF_Bag():\n" " T = typing.TypeVar(\"T\")\n" @@ -2297,14 +2306,14 @@ msgid "" "Bag = TYPE_PARAMS_OF_Bag()" msgstr "" -#: reference/compound_stmts.rst:1816 +#: reference/compound_stmts.rst:1823 msgid "" "Here again ``annotation-def`` (not a real keyword) indicates an :ref:" "`annotation scope `, and the name ``TYPE_PARAMS_OF_Bag`` " "is not actually bound at runtime." msgstr "" -#: reference/compound_stmts.rst:1820 +#: reference/compound_stmts.rst:1827 msgid "" "Generic classes implicitly inherit from :data:`typing.Generic`. The base " "classes and keyword arguments of generic classes are evaluated within the " @@ -2312,17 +2321,17 @@ msgid "" "that scope. This is illustrated by this example::" msgstr "" -#: reference/compound_stmts.rst:1826 +#: reference/compound_stmts.rst:1833 msgid "" "@decorator\n" "class Bag(Base[T], arg=T): ..." msgstr "" -#: reference/compound_stmts.rst:1829 +#: reference/compound_stmts.rst:1836 msgid "This is equivalent to::" msgstr "" -#: reference/compound_stmts.rst:1831 +#: reference/compound_stmts.rst:1838 msgid "" "annotation-def TYPE_PARAMS_OF_Bag():\n" " T = typing.TypeVar(\"T\")\n" @@ -2333,27 +2342,27 @@ msgid "" "Bag = decorator(TYPE_PARAMS_OF_Bag())" msgstr "" -#: reference/compound_stmts.rst:1842 +#: reference/compound_stmts.rst:1849 msgid "Generic type aliases" msgstr "" -#: reference/compound_stmts.rst:1844 +#: reference/compound_stmts.rst:1851 msgid "" "The :keyword:`type` statement can also be used to create a generic type " "alias::" msgstr "" -#: reference/compound_stmts.rst:1846 +#: reference/compound_stmts.rst:1853 msgid "type ListOrSet[T] = list[T] | set[T]" msgstr "" -#: reference/compound_stmts.rst:1848 +#: reference/compound_stmts.rst:1855 msgid "" "Except for the :ref:`lazy evaluation ` of the value, this " "is equivalent to::" msgstr "" -#: reference/compound_stmts.rst:1851 +#: reference/compound_stmts.rst:1858 msgid "" "annotation-def TYPE_PARAMS_OF_ListOrSet():\n" " T = typing.TypeVar(\"T\")\n" @@ -2366,43 +2375,43 @@ msgid "" "ListOrSet = TYPE_PARAMS_OF_ListOrSet()" msgstr "" -#: reference/compound_stmts.rst:1860 +#: reference/compound_stmts.rst:1867 msgid "" "Here, ``annotation-def`` (not a real keyword) indicates an :ref:`annotation " "scope `. The capitalized names like " "``TYPE_PARAMS_OF_ListOrSet`` are not actually bound at runtime." msgstr "" -#: reference/compound_stmts.rst:1867 +#: reference/compound_stmts.rst:1874 msgid "Annotations" msgstr "" -#: reference/compound_stmts.rst:1869 +#: reference/compound_stmts.rst:1876 msgid "Annotations are now lazily evaluated by default." msgstr "" -#: reference/compound_stmts.rst:1872 +#: reference/compound_stmts.rst:1879 msgid "" "Variables and function parameters may carry :term:`annotations " "`, created by adding a colon after the name, followed by an " "expression::" msgstr "" -#: reference/compound_stmts.rst:1875 +#: reference/compound_stmts.rst:1882 msgid "" "x: annotation = 1\n" "def f(param: annotation): ..." msgstr "" -#: reference/compound_stmts.rst:1878 +#: reference/compound_stmts.rst:1885 msgid "Functions may also carry a return annotation following an arrow::" msgstr "" -#: reference/compound_stmts.rst:1880 +#: reference/compound_stmts.rst:1887 msgid "def f() -> annotation: ..." msgstr "" -#: reference/compound_stmts.rst:1882 +#: reference/compound_stmts.rst:1889 msgid "" "Annotations are conventionally used for :term:`type hints `, but " "this is not enforced by the language, and in general annotations may contain " @@ -2412,7 +2421,7 @@ msgid "" "`functools.singledispatch`)." msgstr "" -#: reference/compound_stmts.rst:1888 +#: reference/compound_stmts.rst:1895 msgid "" "By default, annotations are lazily evaluated in an :ref:`annotation scope " "`. This means that they are not evaluated when the code " @@ -2421,13 +2430,13 @@ msgid "" "The :mod:`annotationlib` module provides tools for evaluating annotations." msgstr "" -#: reference/compound_stmts.rst:1893 +#: reference/compound_stmts.rst:1900 msgid "" "If the :ref:`future statement ` ``from __future__ import " "annotations`` is present, all annotations are instead stored as strings::" msgstr "" -#: reference/compound_stmts.rst:1896 +#: reference/compound_stmts.rst:1903 msgid "" ">>> from __future__ import annotations\n" ">>> def f(param: annotation): ...\n" @@ -2435,7 +2444,7 @@ msgid "" "{'param': 'annotation'}" msgstr "" -#: reference/compound_stmts.rst:1901 +#: reference/compound_stmts.rst:1908 msgid "" "This future statement will be deprecated and removed in a future version of " "Python, but not before Python 3.13 reaches its end of life (see :pep:`749`). " @@ -2444,97 +2453,97 @@ msgid "" "able to resolve annotations at runtime." msgstr "" -#: reference/compound_stmts.rst:1909 +#: reference/compound_stmts.rst:1916 msgid "Footnotes" msgstr "" -#: reference/compound_stmts.rst:1910 +#: reference/compound_stmts.rst:1917 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 "" -#: reference/compound_stmts.rst:1914 +#: reference/compound_stmts.rst:1921 msgid "In pattern matching, a sequence is defined as one of the following:" msgstr "" -#: reference/compound_stmts.rst:1916 +#: reference/compound_stmts.rst:1923 msgid "a class that inherits from :class:`collections.abc.Sequence`" msgstr "" -#: reference/compound_stmts.rst:1917 +#: reference/compound_stmts.rst:1924 msgid "" "a Python class that has been registered as :class:`collections.abc.Sequence`" msgstr "" -#: reference/compound_stmts.rst:1918 +#: reference/compound_stmts.rst:1925 msgid "" "a builtin class that has its (CPython) :c:macro:`Py_TPFLAGS_SEQUENCE` bit set" msgstr "" -#: reference/compound_stmts.rst:1919 reference/compound_stmts.rst:1938 +#: reference/compound_stmts.rst:1926 reference/compound_stmts.rst:1945 msgid "a class that inherits from any of the above" msgstr "" -#: reference/compound_stmts.rst:1921 +#: reference/compound_stmts.rst:1928 msgid "The following standard library classes are sequences:" msgstr "" -#: reference/compound_stmts.rst:1923 +#: reference/compound_stmts.rst:1930 msgid ":class:`array.array`" msgstr "" -#: reference/compound_stmts.rst:1924 +#: reference/compound_stmts.rst:1931 msgid ":class:`collections.deque`" msgstr "" -#: reference/compound_stmts.rst:1926 +#: reference/compound_stmts.rst:1933 msgid ":class:`memoryview`" msgstr "" -#: reference/compound_stmts.rst:1927 +#: reference/compound_stmts.rst:1934 msgid ":class:`range`" msgstr "" -#: reference/compound_stmts.rst:1930 +#: reference/compound_stmts.rst:1937 msgid "" "Subject values of type ``str``, ``bytes``, and ``bytearray`` do not match " "sequence patterns." msgstr "" -#: reference/compound_stmts.rst:1933 +#: reference/compound_stmts.rst:1940 msgid "In pattern matching, a mapping is defined as one of the following:" msgstr "" -#: reference/compound_stmts.rst:1935 +#: reference/compound_stmts.rst:1942 msgid "a class that inherits from :class:`collections.abc.Mapping`" msgstr "" -#: reference/compound_stmts.rst:1936 +#: reference/compound_stmts.rst:1943 msgid "" "a Python class that has been registered as :class:`collections.abc.Mapping`" msgstr "" -#: reference/compound_stmts.rst:1937 +#: reference/compound_stmts.rst:1944 msgid "" "a builtin class that has its (CPython) :c:macro:`Py_TPFLAGS_MAPPING` bit set" msgstr "" -#: reference/compound_stmts.rst:1940 +#: reference/compound_stmts.rst:1947 msgid "" "The standard library classes :class:`dict` and :class:`types." "MappingProxyType` are mappings." msgstr "" -#: reference/compound_stmts.rst:1943 +#: reference/compound_stmts.rst:1950 msgid "" "A string literal appearing as the first statement in the function body is " "transformed into the function's :attr:`~function.__doc__` attribute and " "therefore the function's :term:`docstring`." msgstr "" -#: reference/compound_stmts.rst:1947 +#: reference/compound_stmts.rst:1954 msgid "" "A string literal appearing as the first statement in the class body is " "transformed into the namespace's :attr:`~type.__doc__` item and therefore " @@ -2548,11 +2557,11 @@ msgstr "" #: reference/compound_stmts.rst:86 reference/compound_stmts.rst:111 #: reference/compound_stmts.rst:129 reference/compound_stmts.rst:144 #: reference/compound_stmts.rst:169 reference/compound_stmts.rst:207 -#: reference/compound_stmts.rst:393 reference/compound_stmts.rst:440 -#: reference/compound_stmts.rst:478 reference/compound_stmts.rst:595 -#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1390 -#: reference/compound_stmts.rst:1500 reference/compound_stmts.rst:1534 -#: reference/compound_stmts.rst:1579 +#: reference/compound_stmts.rst:397 reference/compound_stmts.rst:446 +#: reference/compound_stmts.rst:484 reference/compound_stmts.rst:602 +#: reference/compound_stmts.rst:1209 reference/compound_stmts.rst:1397 +#: reference/compound_stmts.rst:1507 reference/compound_stmts.rst:1541 +#: reference/compound_stmts.rst:1586 msgid "statement" msgstr "" @@ -2582,19 +2591,19 @@ msgstr "" #: reference/compound_stmts.rst:64 reference/compound_stmts.rst:86 #: reference/compound_stmts.rst:111 reference/compound_stmts.rst:144 -#: reference/compound_stmts.rst:207 reference/compound_stmts.rst:393 +#: reference/compound_stmts.rst:207 reference/compound_stmts.rst:397 msgid "else" msgstr "" -#: reference/compound_stmts.rst:86 reference/compound_stmts.rst:595 +#: reference/compound_stmts.rst:86 reference/compound_stmts.rst:602 msgid "if" msgstr "" #: reference/compound_stmts.rst:86 reference/compound_stmts.rst:111 #: reference/compound_stmts.rst:144 reference/compound_stmts.rst:207 -#: reference/compound_stmts.rst:330 reference/compound_stmts.rst:393 -#: reference/compound_stmts.rst:411 reference/compound_stmts.rst:478 -#: reference/compound_stmts.rst:595 reference/compound_stmts.rst:1510 +#: reference/compound_stmts.rst:330 reference/compound_stmts.rst:397 +#: reference/compound_stmts.rst:415 reference/compound_stmts.rst:484 +#: reference/compound_stmts.rst:602 reference/compound_stmts.rst:1517 msgid "keyword" msgstr "" @@ -2604,16 +2613,16 @@ msgstr "" #: reference/compound_stmts.rst:86 reference/compound_stmts.rst:111 #: reference/compound_stmts.rst:144 reference/compound_stmts.rst:207 -#: reference/compound_stmts.rst:478 reference/compound_stmts.rst:595 -#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1332 -#: reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:484 reference/compound_stmts.rst:602 +#: reference/compound_stmts.rst:1209 reference/compound_stmts.rst:1339 +#: reference/compound_stmts.rst:1397 msgid ": (colon)" msgstr "" #: reference/compound_stmts.rst:86 reference/compound_stmts.rst:111 #: reference/compound_stmts.rst:144 reference/compound_stmts.rst:207 -#: reference/compound_stmts.rst:478 reference/compound_stmts.rst:595 -#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:484 reference/compound_stmts.rst:602 +#: reference/compound_stmts.rst:1209 reference/compound_stmts.rst:1397 msgid "compound statement" msgstr "" @@ -2626,12 +2635,12 @@ msgid "loop" msgstr "" #: reference/compound_stmts.rst:129 reference/compound_stmts.rst:169 -#: reference/compound_stmts.rst:393 reference/compound_stmts.rst:440 +#: reference/compound_stmts.rst:397 reference/compound_stmts.rst:446 msgid "break" msgstr "" #: reference/compound_stmts.rst:129 reference/compound_stmts.rst:169 -#: reference/compound_stmts.rst:393 reference/compound_stmts.rst:440 +#: reference/compound_stmts.rst:397 reference/compound_stmts.rst:446 msgid "continue" msgstr "" @@ -2652,7 +2661,7 @@ msgid "list" msgstr "" #: reference/compound_stmts.rst:144 reference/compound_stmts.rst:301 -#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:1209 reference/compound_stmts.rst:1397 msgid "object" msgstr "" @@ -2676,12 +2685,12 @@ msgstr "" msgid "except" msgstr "" -#: reference/compound_stmts.rst:207 reference/compound_stmts.rst:411 +#: reference/compound_stmts.rst:207 reference/compound_stmts.rst:415 msgid "finally" msgstr "" #: reference/compound_stmts.rst:207 reference/compound_stmts.rst:268 -#: reference/compound_stmts.rst:478 reference/compound_stmts.rst:595 +#: reference/compound_stmts.rst:484 reference/compound_stmts.rst:602 msgid "as" msgstr "" @@ -2705,201 +2714,201 @@ msgstr "" msgid "except_star" msgstr "" -#: reference/compound_stmts.rst:393 reference/compound_stmts.rst:440 +#: reference/compound_stmts.rst:397 reference/compound_stmts.rst:446 msgid "return" msgstr "" -#: reference/compound_stmts.rst:478 +#: reference/compound_stmts.rst:484 msgid "with" msgstr "" -#: reference/compound_stmts.rst:478 +#: reference/compound_stmts.rst:484 msgid "with statement" msgstr "" -#: reference/compound_stmts.rst:478 reference/compound_stmts.rst:1202 -#: reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:484 reference/compound_stmts.rst:1209 +#: reference/compound_stmts.rst:1397 msgid ", (comma)" msgstr "" -#: reference/compound_stmts.rst:595 +#: reference/compound_stmts.rst:602 msgid "match" msgstr "" -#: reference/compound_stmts.rst:595 +#: reference/compound_stmts.rst:602 msgid "case" msgstr "" -#: reference/compound_stmts.rst:595 +#: reference/compound_stmts.rst:602 msgid "pattern matching" msgstr "" -#: reference/compound_stmts.rst:595 +#: reference/compound_stmts.rst:602 msgid "match statement" msgstr "" -#: reference/compound_stmts.rst:699 +#: reference/compound_stmts.rst:706 msgid "guard" msgstr "" -#: reference/compound_stmts.rst:738 +#: reference/compound_stmts.rst:745 msgid "irrefutable case block" msgstr "" -#: reference/compound_stmts.rst:738 +#: reference/compound_stmts.rst:745 msgid "case block" msgstr "" -#: reference/compound_stmts.rst:762 +#: reference/compound_stmts.rst:769 msgid "! patterns" msgstr "" -#: reference/compound_stmts.rst:762 +#: reference/compound_stmts.rst:769 msgid "AS pattern, OR pattern, capture pattern, wildcard pattern" msgstr "" -#: reference/compound_stmts.rst:1193 reference/compound_stmts.rst:1282 +#: reference/compound_stmts.rst:1200 reference/compound_stmts.rst:1289 msgid "parameter" msgstr "" -#: reference/compound_stmts.rst:1193 reference/compound_stmts.rst:1202 -#: reference/compound_stmts.rst:1246 reference/compound_stmts.rst:1282 -#: reference/compound_stmts.rst:1311 +#: reference/compound_stmts.rst:1200 reference/compound_stmts.rst:1209 +#: reference/compound_stmts.rst:1253 reference/compound_stmts.rst:1289 +#: reference/compound_stmts.rst:1318 msgid "function definition" msgstr "" -#: reference/compound_stmts.rst:1202 +#: reference/compound_stmts.rst:1209 msgid "def" msgstr "" -#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1332 +#: reference/compound_stmts.rst:1209 reference/compound_stmts.rst:1339 msgid "function" msgstr "" -#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:1209 reference/compound_stmts.rst:1397 msgid "definition" msgstr "" -#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:1209 reference/compound_stmts.rst:1397 msgid "name" msgstr "" -#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:1209 reference/compound_stmts.rst:1397 msgid "binding" msgstr "" -#: reference/compound_stmts.rst:1202 +#: reference/compound_stmts.rst:1209 msgid "user-defined function" msgstr "" -#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:1209 reference/compound_stmts.rst:1397 msgid "() (parentheses)" msgstr "" -#: reference/compound_stmts.rst:1202 +#: reference/compound_stmts.rst:1209 msgid "parameter list" msgstr "" -#: reference/compound_stmts.rst:1246 reference/compound_stmts.rst:1440 +#: reference/compound_stmts.rst:1253 reference/compound_stmts.rst:1447 msgid "@ (at)" msgstr "" -#: reference/compound_stmts.rst:1282 +#: reference/compound_stmts.rst:1289 msgid "default" msgstr "" -#: reference/compound_stmts.rst:1282 +#: reference/compound_stmts.rst:1289 msgid "value" msgstr "" -#: reference/compound_stmts.rst:1282 +#: reference/compound_stmts.rst:1289 msgid "argument" msgstr "" -#: reference/compound_stmts.rst:1282 +#: reference/compound_stmts.rst:1289 msgid "= (equals)" msgstr "" -#: reference/compound_stmts.rst:1311 +#: reference/compound_stmts.rst:1318 msgid "/ (slash)" msgstr "" -#: reference/compound_stmts.rst:1311 +#: reference/compound_stmts.rst:1318 msgid "* (asterisk)" msgstr "" -#: reference/compound_stmts.rst:1311 +#: reference/compound_stmts.rst:1318 msgid "**" msgstr "" -#: reference/compound_stmts.rst:1332 +#: reference/compound_stmts.rst:1339 msgid "annotations" msgstr "" -#: reference/compound_stmts.rst:1332 +#: reference/compound_stmts.rst:1339 msgid "->" msgstr "" -#: reference/compound_stmts.rst:1332 +#: reference/compound_stmts.rst:1339 msgid "function annotations" msgstr "" -#: reference/compound_stmts.rst:1349 +#: reference/compound_stmts.rst:1356 msgid "lambda" msgstr "" -#: reference/compound_stmts.rst:1349 +#: reference/compound_stmts.rst:1356 msgid "expression" msgstr "" -#: reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:1397 msgid "class" msgstr "" -#: reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:1397 msgid "execution" msgstr "" -#: reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:1397 msgid "frame" msgstr "" -#: reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:1397 msgid "inheritance" msgstr "" -#: reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:1397 msgid "docstring" msgstr "" -#: reference/compound_stmts.rst:1390 reference/compound_stmts.rst:1440 +#: reference/compound_stmts.rst:1397 reference/compound_stmts.rst:1447 msgid "class definition" msgstr "" -#: reference/compound_stmts.rst:1390 +#: reference/compound_stmts.rst:1397 msgid "expression list" msgstr "" -#: reference/compound_stmts.rst:1500 +#: reference/compound_stmts.rst:1507 msgid "async def" msgstr "" -#: reference/compound_stmts.rst:1510 +#: reference/compound_stmts.rst:1517 msgid "async" msgstr "" -#: reference/compound_stmts.rst:1510 +#: reference/compound_stmts.rst:1517 msgid "await" msgstr "" -#: reference/compound_stmts.rst:1534 +#: reference/compound_stmts.rst:1541 msgid "async for" msgstr "" -#: reference/compound_stmts.rst:1579 +#: reference/compound_stmts.rst:1586 msgid "async with" msgstr "" -#: reference/compound_stmts.rst:1636 +#: reference/compound_stmts.rst:1643 msgid "type parameters" msgstr "" diff --git a/reference/datamodel.po b/reference/datamodel.po index cab45f82..41046080 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-11-20 18:12+0200\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -29,17 +29,15 @@ msgstr "Αντικείμενα, τιμές και τύποι" #: 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.)" +"program is represented by objects or by relations between objects. Even code " +"is represented by objects." msgstr "" "Το :dfn:`Objects` είναι μια αφαιρετική αναπαράσταση της Python για τα " "δεδομένα. Όλα τα δεδομένα σε ένα Python πρόγραμμα αναπαριστώνται από " -"αντικείμενα ή από συσχετίσεις μεταξύ αντικειμένων. (Κατά μία έννοια, και " -"σύμφωνα με το μοντέλο του Von Neumann για έναν \"υπολογιστή αποθηκευμένου " -"προγράμματος\", ο κώδικας αντιπροσωπεύεται επίσης από αντικείμενα.)" +"αντικείμενα ή από συσχετίσεις μεταξύ αντικειμένων. Ακόμη και ο κώδικας " +"αναπαρίσταται από αντικείμενα." -#: reference/datamodel.rst:35 +#: reference/datamodel.rst:31 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 " @@ -53,13 +51,13 @@ msgstr "" "`is` συγκρίνει την ταυτότητα δύο αντικειμένων∙ η συνάρτηση :func:`id` " "επιστρέφει έναν ακέραιο αριθμό που αντιπροσωπεύει την ταυτότητά του." -#: reference/datamodel.rst:42 +#: reference/datamodel.rst:38 msgid "For CPython, ``id(x)`` is the memory address where ``x`` is stored." msgstr "" "Για την CPython, το ``id(x)`` είναι η διεύθυνση μνήμης όπου είναι " "αποθηκευμένο το ``x``." -#: reference/datamodel.rst:44 +#: reference/datamodel.rst:40 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 " @@ -73,7 +71,7 @@ msgstr "" "ενός αντικειμένου (που είναι το ίδιο το αντικείμενο). Όπως και η ταυτότητά, " "το :dfn:`type` ενός αντικειμένου είναι επίσης αμετάβλητο. [#]_" -#: reference/datamodel.rst:50 +#: reference/datamodel.rst:46 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 " @@ -98,7 +96,7 @@ msgstr "" "συμβολοσειρές και οι πλειάδες είναι αμετάβλητα, ενώ τα λεξικά και οι λίστες " "είναι μεταβλητά." -#: reference/datamodel.rst:65 +#: reference/datamodel.rst:61 msgid "" "Objects are never explicitly destroyed; however, when they become " "unreachable they may be garbage-collected. An implementation is allowed to " @@ -112,7 +110,7 @@ msgstr "" "υλοποίησης πώς θα υλοποιηθεί η συλλογή απορριμμάτων, εφόσον δεν συλλέγονται " "αντικείμενα που είναι ακόμα προσβάσιμα." -#: reference/datamodel.rst:73 +#: reference/datamodel.rst:69 msgid "" "CPython currently uses a reference-counting scheme with (optional) delayed " "detection of cyclically linked garbage, which collects most objects as soon " @@ -133,7 +131,7 @@ msgstr "" "αντικειμένων όταν γίνονται απρόσιτα (έτσι θα πρέπει πάντα να κλείνετε ρητά " "τα αρχεία)." -#: reference/datamodel.rst:82 +#: reference/datamodel.rst:78 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 " @@ -146,7 +144,7 @@ msgstr "" "μια δήλωση :keyword:`try`...\\ :keyword:`except`, μπορεί να κρατήσει ζωντανά " "αντικείμενα." -#: reference/datamodel.rst:87 +#: reference/datamodel.rst:83 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 " @@ -166,7 +164,7 @@ msgstr "" "αντικειμένων. Η δήλωση :keyword:`try`...\\ :keyword:`finally` και η δήλωση :" "keyword:`with` παρέχουν βολικούς τρόπους για να το κάνετε αυτό." -#: reference/datamodel.rst:97 +#: reference/datamodel.rst:93 msgid "" "Some objects contain references to other objects; these are called " "*containers*. Examples of containers are tuples, lists and dictionaries. " @@ -187,7 +185,7 @@ msgstr "" "πλειάδα) περιέχει μια αναφορά σε ένα μεταβλητό αντικείμενο, η τιμή του " "αλλάζει εάν αυτό το μεταβλητό αντικείμενο αλλάξει." -#: reference/datamodel.rst:106 +#: reference/datamodel.rst:102 msgid "" "Types affect almost all aspects of object behavior. Even the importance of " "object identity is affected in some sense: for immutable types, operations " @@ -220,11 +218,11 @@ msgstr "" "(Σημειώστε ότι το ``e = f = []`` αντιστοιχίζει το *ίδιο* αντικείμενο τόσο " "στο *e* όσο και στο *f*.)" -#: reference/datamodel.rst:124 +#: reference/datamodel.rst:120 msgid "The standard type hierarchy" msgstr "Η τυπική ιεραρχία τύπου" -#: reference/datamodel.rst:133 +#: 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) " @@ -240,7 +238,7 @@ msgstr "" "αριθμοί, αποτελεσματικά αποθηκευμένοι πίνακες ακεραίων κ.λπ.), ν και αντ' " "αυτού παρέχονται τυπικές βιβλιοθήκες." -#: reference/datamodel.rst:144 +#: 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 " @@ -252,11 +250,11 @@ msgstr "" "στην υλοποίηση και δεν προορίζονται για γενική χρήση ο ορισμός τους μπορεί " "να αλλάξει στο μέλλον." -#: reference/datamodel.rst:152 +#: reference/datamodel.rst:148 msgid "None" msgstr "None" -#: reference/datamodel.rst:154 +#: reference/datamodel.rst:150 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 " @@ -269,11 +267,11 @@ msgstr "" "απουσία τιμής σε πολλές περιπτώσεις, π.χ. επιστρέφεται από συναρτήσεις που " "δεν επιστρέφουν ρητά τίποτα. Η τιμή αλήθειας του είναι ψευδής." -#: reference/datamodel.rst:163 +#: reference/datamodel.rst:159 msgid "NotImplemented" msgstr "NotImplemented" -#: reference/datamodel.rst:165 +#: reference/datamodel.rst:161 msgid "" "This type has a single value. There is a single object with this value. " "This object is accessed through the built-in name :data:`NotImplemented`. " @@ -290,19 +288,19 @@ msgstr "" "διερμηνέας θα δοκιμάσει την ανακλώμενη λειτουργία ή κάποια άλλη εναλλακτική, " "ανάλογα με τον τελεστή.) Δεν πρέπει να αξιολογείται σε ένα boolean πλαίσιο." -#: reference/datamodel.rst:172 +#: reference/datamodel.rst:168 msgid "See :ref:`implementing-the-arithmetic-operations` for more details." msgstr "" "Δείτε το :ref:`implementing-the-arithmetic-operations` για περισσότερες " "λεπτομέρειες." -#: reference/datamodel.rst:176 +#: reference/datamodel.rst:172 msgid "Evaluating :data:`NotImplemented` in a boolean context was deprecated." msgstr "" "Η αξιολόγηση του :data:`NotImplemented` σε ένα boolean πλαίσιο έχει " "αποσυρθεί." -#: reference/datamodel.rst:179 +#: reference/datamodel.rst:175 msgid "" "Evaluating :data:`NotImplemented` in a boolean context now raises a :exc:" "`TypeError`. It previously evaluated to :const:`True` and emitted a :exc:" @@ -312,11 +310,11 @@ msgstr "" "raise μια :exc:`TypeError`. Προηγουμένως αξιολογούνταν σε :const:`True` και " "εξέπεμπε μια :exc:`DeprecationWarning` από την Python 3.9." -#: reference/datamodel.rst:187 +#: reference/datamodel.rst:183 msgid "Ellipsis" msgstr "Ellipsis" -#: reference/datamodel.rst:191 +#: reference/datamodel.rst:187 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 " @@ -327,11 +325,11 @@ msgstr "" "``...`` ή του ενσωματωμένου ονόματος ``Ellipsis``. Η τιμή αλήθειας του " "είναι αληθής." -#: reference/datamodel.rst:197 +#: reference/datamodel.rst:193 msgid ":class:`numbers.Number`" msgstr ":class:`numbers.Number`" -#: reference/datamodel.rst:201 +#: reference/datamodel.rst:197 msgid "" "These are created by numeric literals and returned as results by arithmetic " "operators and arithmetic built-in functions. Numeric objects are immutable; " @@ -346,7 +344,7 @@ msgstr "" "σχετίζονται στενά με τους μαθηματικούς αριθμούς, αλλά υπόκεινται στους " "περιορισμούς της αριθμητικής αναπαράστασης στους υπολογιστές." -#: reference/datamodel.rst:207 +#: reference/datamodel.rst:203 msgid "" "The string representations of the numeric classes, computed by :meth:" "`~object.__repr__` and :meth:`~object.__str__`, have the following " @@ -356,7 +354,7 @@ msgstr "" "από την :meth:`~object.__repr__` και από τη :meth:`~object.__str__`, έχουν " "τις ακόλουθες ιδιότητες:" -#: reference/datamodel.rst:211 +#: reference/datamodel.rst:207 msgid "" "They are valid numeric literals which, when passed to their class " "constructor, produce an object having the value of the original numeric." @@ -365,11 +363,11 @@ msgstr "" "της κλάσης τους, παράγουν ένα αντικείμενο που έχει την τιμή του αρχικού " "αριθμητικού." -#: reference/datamodel.rst:215 +#: reference/datamodel.rst:211 msgid "The representation is in base 10, when possible." msgstr "Η αναπαράσταση είναι στη βάση του 10, όταν αυτό είναι εφικτό." -#: reference/datamodel.rst:217 +#: reference/datamodel.rst:213 msgid "" "Leading zeros, possibly excepting a single zero before a decimal point, are " "not shown." @@ -377,7 +375,7 @@ msgstr "" "Τα προηγούμενα μηδενικά, ενδεχομένως με εξαίρεση ένα μόνο μηδέν πριν από μια " "υποδιαστολή, δεν εμφανίζονται." -#: reference/datamodel.rst:220 +#: reference/datamodel.rst:216 msgid "" "Trailing zeros, possibly excepting a single zero after a decimal point, are " "not shown." @@ -385,11 +383,11 @@ msgstr "" "Τα μηδενικά που ακολουθούν, ενδεχομένως με εξαίρεση ένα μεμονωμένο μηδέν " "μετά από μια υποδιαστολή, δεν εμφανίζονται." -#: reference/datamodel.rst:223 +#: reference/datamodel.rst:219 msgid "A sign is shown only when the number is negative." msgstr "Ένα πρόσημο εμφανίζεται μόνο όταν ο αριθμός είναι αρνητικός." -#: reference/datamodel.rst:225 +#: reference/datamodel.rst:221 msgid "" "Python distinguishes between integers, floating-point numbers, and complex " "numbers:" @@ -397,11 +395,11 @@ msgstr "" "Η Python κάνει διάκριση μεταξύ ακεραίων, αριθμών κινητής υποδιαστολής και " "μιγαδικών αριθμών:" -#: reference/datamodel.rst:230 +#: reference/datamodel.rst:226 msgid ":class:`numbers.Integral`" msgstr ":class:`numbers.Integral`" -#: reference/datamodel.rst:234 +#: reference/datamodel.rst:230 msgid "" "These represent elements from the mathematical set of integers (positive and " "negative)." @@ -409,7 +407,7 @@ msgstr "" "Αυτά αντιπροσωπεύουν στοιχεία από το μαθηματικό σύνολο ακεραίων (θετικών και " "αρνητικών)." -#: reference/datamodel.rst:240 +#: reference/datamodel.rst:236 msgid "" "The rules for integer representation are intended to give the most " "meaningful interpretation of shift and mask operations involving negative " @@ -419,15 +417,15 @@ msgstr "" "ουσιαστική ερμηνεία των πράξεων μετατόπισης και κάλυψης που περιλαμβάνουν " "αρνητικούς ακέραιους αριθμούς." -#: reference/datamodel.rst:243 +#: reference/datamodel.rst:239 msgid "There are two types of integers:" msgstr "Υπάρχουν δύο τύποι ακεραίων:" -#: reference/datamodel.rst:245 +#: reference/datamodel.rst:241 msgid "Integers (:class:`int`)" msgstr "Ακέραιοι (:class:`int`)" -#: reference/datamodel.rst:246 +#: reference/datamodel.rst:242 msgid "" "These represent numbers in an unlimited range, subject to available " "(virtual) memory only. For the purpose of shift and mask operations, a " @@ -442,11 +440,11 @@ msgstr "" "ψευδαίσθηση μιας άπειρης συμβολοσειράς bits από bits προσήμου που " "εκτείνονται προς τα αριστερά." -#: reference/datamodel.rst:252 +#: reference/datamodel.rst:248 msgid "Booleans (:class:`bool`)" msgstr "Booleans (:class:`bool`)" -#: reference/datamodel.rst:258 +#: reference/datamodel.rst:254 msgid "" "These represent the truth values False and True. The two objects " "representing the values ``False`` and ``True`` are the only Boolean objects. " @@ -462,11 +460,11 @@ msgstr "" "όλα τα περιβάλλοντα, οι εξαιρέσεις που μετατρέπονται σε string είναι " "``\"False\"`` ή ``\"True\"`` επιστρέφονται, αντίστοιχα." -#: reference/datamodel.rst:268 +#: reference/datamodel.rst:264 msgid ":class:`numbers.Real` (:class:`float`)" msgstr ":class:`numbers.Real` (:class:`float`)" -#: reference/datamodel.rst:276 +#: reference/datamodel.rst:272 msgid "" "These represent machine-level double precision floating-point numbers. You " "are at the mercy of the underlying machine architecture (and C or Java " @@ -485,11 +483,11 @@ msgstr "" "αντικειμένων στην Python, επομένως δεν υπάρχει λόγος να περιπλέκουμε τη " "γλώσσα με δύο είδη αριθμών κινητής υποδιαστολής." -#: reference/datamodel.rst:286 +#: reference/datamodel.rst:282 msgid ":class:`numbers.Complex` (:class:`complex`)" msgstr ":class:`numbers.Complex` (:class:`complex`)" -#: reference/datamodel.rst:292 +#: reference/datamodel.rst:288 msgid "" "These represent complex numbers as a pair of machine-level double precision " "floating-point numbers. The same caveats apply as for floating-point " @@ -503,11 +501,11 @@ msgstr "" "ανακτηθούν μέσω των χαρακτηριστικών ``z.real`` και ``z.imag`` μόνο για " "ανάγνωση." -#: reference/datamodel.rst:299 +#: reference/datamodel.rst:295 msgid "Sequences" msgstr "Ακολουθίες" -#: reference/datamodel.rst:308 +#: reference/datamodel.rst:304 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. " @@ -527,7 +525,7 @@ msgstr "" "ισούται με ``a[n-2]``, το δεύτερο έως το τελευταίο στοιχείο της ακολουθίας a " "με μήκος ``n``." -#: reference/datamodel.rst:318 +#: reference/datamodel.rst:314 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 " @@ -540,7 +538,7 @@ msgstr "" "Το παραπάνω σχόλιο σχετικά με τους αρνητικούς δείκτες ισχύει και για " "αρνητικές θέσεις." -#: reference/datamodel.rst:323 +#: reference/datamodel.rst:319 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 = " @@ -551,15 +549,15 @@ msgstr "" "*a* με ευρετήριο *x* όπου ``x = i + n*k``, *n* ``>=`` ``0`` και *i* ``<=`` " "*x* ``<`` *j*." -#: reference/datamodel.rst:327 +#: reference/datamodel.rst:323 msgid "Sequences are distinguished according to their mutability:" msgstr "Οι ακολουθίες διακρίνονται ανάλογα με τη μεταβλητότητά τους:" -#: reference/datamodel.rst:331 +#: reference/datamodel.rst:327 msgid "Immutable sequences" msgstr "Αμετάβλητες ακολουθίες" -#: reference/datamodel.rst:337 +#: reference/datamodel.rst:333 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 " @@ -572,15 +570,15 @@ msgstr "" "να αλλάξουν∙ ωστόσο, η συλλογή αντικειμένων που αναφέρονται απευθείας από " "ένα αμετάβλητο αντικείμενο δεν μπορεί να αλλάξει.)" -#: reference/datamodel.rst:342 +#: reference/datamodel.rst:338 msgid "The following types are immutable sequences:" msgstr "Οι ακόλουθοι τύποι είναι αμετάβλητες ακολουθίες:" -#: reference/datamodel.rst:347 +#: reference/datamodel.rst:343 msgid "Strings" msgstr "Συμβολοσειρές" -#: reference/datamodel.rst:355 +#: reference/datamodel.rst:351 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 " @@ -606,11 +604,11 @@ msgstr "" "και η :meth:`bytes.decode` μπορεί να χρησιμοποιηθεί για να επιτευχθεί το " "αντίθετο." -#: reference/datamodel.rst:367 +#: reference/datamodel.rst:363 msgid "Tuples" msgstr "Πλειάδες (Tuples)" -#: reference/datamodel.rst:373 +#: reference/datamodel.rst:369 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 " @@ -627,11 +625,11 @@ msgstr "" "χρησιμοποιηθούν για ομαδοποίηση εκφράσεων). Μια κενή πλειάδα μπορεί να " "σχηματιστεί από ένα κενό ζευγάρι παρενθέσεων." -#: reference/datamodel.rst:380 +#: reference/datamodel.rst:376 msgid "Bytes" msgstr "Bytes" -#: reference/datamodel.rst:383 +#: reference/datamodel.rst:379 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 " @@ -646,11 +644,11 @@ msgstr "" "αντικειμένων bytes. Επίσης, τα αντικείμενα bytes μπορούν να " "αποκωδικοποιηθούν σε συμβολοσειρές μέσω της μεθόδου :meth:`~bytes.decode`." -#: reference/datamodel.rst:391 +#: reference/datamodel.rst:387 msgid "Mutable sequences" msgstr "Μεταβλητές ακολουθίες" -#: reference/datamodel.rst:400 +#: reference/datamodel.rst:396 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:" @@ -660,7 +658,7 @@ msgstr "" "σημειώσεις εγγραφής και τμηματοποίησης μπορούν να χρησιμοποιηθούν ως στόχος " "εκχώρησης και δηλώσεων :keyword:`del` (delete)." -#: reference/datamodel.rst:408 +#: reference/datamodel.rst:404 msgid "" "The :mod:`collections` and :mod:`array` module provide additional examples " "of mutable sequence types." @@ -668,15 +666,15 @@ msgstr "" "Τα modules :mod:`collections` και :mod:`array` παρέχουν πρόσθετα " "παραδείγματα μεταβλητών τύπων ακολουθιών." -#: reference/datamodel.rst:411 +#: reference/datamodel.rst:407 msgid "There are currently two intrinsic mutable sequence types:" msgstr "Υπάρχουν επί του παρόντος δύο εγγενείς τύποι μεταβλητών ακολουθιών:" -#: reference/datamodel.rst:413 +#: reference/datamodel.rst:409 msgid "Lists" msgstr "Λίστες" -#: reference/datamodel.rst:416 +#: reference/datamodel.rst:412 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 " @@ -687,11 +685,11 @@ msgstr "" "αγκύλες. (Σημειώστε ότι δεν χρειάζονται ειδικές περιπτώσεις για να " "σχηματιστούν λίστες μήκους 0 ή 1.)" -#: reference/datamodel.rst:420 +#: reference/datamodel.rst:416 msgid "Byte Arrays" msgstr "Πίνακες Byte" -#: reference/datamodel.rst:423 +#: reference/datamodel.rst:419 msgid "" "A bytearray object is a mutable array. They are created by the built-in :" "func:`bytearray` constructor. Aside from being mutable (and hence " @@ -704,11 +702,11 @@ msgstr "" "παρέχουν την ίδια διεπαφή και λειτουργικότητα με τα αμετάβλητα αντικείμενα :" "class:`bytes`." -#: reference/datamodel.rst:430 +#: reference/datamodel.rst:426 msgid "Set types" msgstr "Σύνολο τύπων" -#: reference/datamodel.rst:436 +#: reference/datamodel.rst:432 msgid "" "These represent unordered, finite sets of unique, immutable objects. As " "such, they cannot be indexed by any subscript. However, they can be iterated " @@ -725,7 +723,7 @@ msgstr "" "διπλότυπων από μια αλληλουχία, μη συνδυαστική λειτουργία, και συμμετρική " "διαφορά." -#: reference/datamodel.rst:443 +#: reference/datamodel.rst:439 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 " @@ -738,29 +736,29 @@ msgstr "" "ίσοι (π.χ. ``1`` και ``1.0``), μόνο ένας από αυτούς μπορεί να περιέχεται σε " "ένα σύνολο." -#: reference/datamodel.rst:448 +#: reference/datamodel.rst:444 msgid "There are currently two intrinsic set types:" msgstr "Υπάρχουν επί του παρόντος δύο εγγενείς τύποι συνόλων:" -#: reference/datamodel.rst:451 +#: reference/datamodel.rst:447 msgid "Sets" msgstr "Σύνολα" -#: reference/datamodel.rst:454 +#: reference/datamodel.rst:450 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`." +"`add `." msgstr "" "Αυτά αντιπροσωπεύουν ένα μεταβλητό σύνολο. Δημιουργούνται από τον " "ενσωματωμένο κατασκευαστή :func:`set` και μπορούν να τροποποιηθούν στη " -"συνέχεια με διάφορες μεθόδους, όπως :meth:`~set.add`." +"συνέχεια με διάφορες μεθόδους, όπως :meth:`add `." -#: reference/datamodel.rst:459 +#: reference/datamodel.rst:455 msgid "Frozen sets" msgstr "Frozen σύνολα" -#: reference/datamodel.rst:462 +#: reference/datamodel.rst:458 msgid "" "These represent an immutable set. They are created by the built-in :func:" "`frozenset` constructor. As a frozenset is immutable and :term:`hashable`, " @@ -771,11 +769,11 @@ msgstr "" "αμετάβλητο και το :term:`hashable`, μπορεί να χρησιμοποιηθεί ξανά ως " "στοιχείο ενός άλλου συνόλου ή ως κλειδί λεξικού." -#: reference/datamodel.rst:469 +#: reference/datamodel.rst:465 msgid "Mappings" msgstr "Αντιστοιχίσεις" -#: reference/datamodel.rst:476 +#: reference/datamodel.rst:472 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 " @@ -790,15 +788,15 @@ msgstr "" "keyword:`del`. Η ενσωματωμένη συνάρτηση :func:`len` επιστρέφει τον αριθμό " "των στοιχείων σε μια αντιστοίχιση." -#: reference/datamodel.rst:482 +#: reference/datamodel.rst:478 msgid "There is currently a single intrinsic mapping type:" msgstr "Υπάρχει επί του παρόντος ένας ενιαίος εγγενής τύπος αντιστοίχισης:" -#: reference/datamodel.rst:486 +#: reference/datamodel.rst:482 msgid "Dictionaries" msgstr "Λεξικά" -#: reference/datamodel.rst:490 +#: reference/datamodel.rst:486 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 " @@ -820,7 +818,7 @@ msgstr "" "``1.0``), τότε μπορούν να χρησιμοποιηθούν εναλλακτικά για την ευρετηρίαση " "της ίδιας καταχώρησης λεξικού." -#: reference/datamodel.rst:499 +#: reference/datamodel.rst:495 msgid "" "Dictionaries preserve insertion order, meaning that keys will be produced in " "the same order they were added sequentially over the dictionary. Replacing " @@ -833,7 +831,7 @@ msgstr "" "αφαίρεση ενός κλειδιού και η επανεισαγωγή του θα προσθέσει στο τέλος αντί να " "διατηρήσει την παλιά του θέση." -#: reference/datamodel.rst:504 +#: reference/datamodel.rst:500 msgid "" "Dictionaries are mutable; they can be created by the ``{}`` notation (see " "section :ref:`dict`)." @@ -841,7 +839,7 @@ msgstr "" "Τα λεξικά είναι μεταβλητά· μπορούν να δημιουργηθούν με τη σημείωση ``{...}`` " "(βλ. ενότητα :ref:`dict`)." -#: reference/datamodel.rst:511 +#: reference/datamodel.rst:507 msgid "" "The extension modules :mod:`dbm.ndbm` and :mod:`dbm.gnu` provide additional " "examples of mapping types, as does the :mod:`collections` module." @@ -849,7 +847,7 @@ msgstr "" "Τα modules επέκτασης :mod:`dbm.ndbm` και :mod:`dbm.gnu` παρέχουν πρόσθετα " "παραδείγματα τύπων αντιστοίχισης, όπως και το module :mod:`collections`." -#: reference/datamodel.rst:515 +#: reference/datamodel.rst:511 msgid "" "Dictionaries did not preserve insertion order in versions of Python before " "3.6. In CPython 3.6, insertion order was preserved, but it was considered an " @@ -859,11 +857,11 @@ msgstr "" "την 3.6. Στη CPython 3.6, η σειρά εισαγωγής διατηρήθηκε, αλλά θεωρήθηκε ως " "λεπτομέρεια υλοποίησης εκείνη τη στιγμή και όχι ως εγγύηση γλώσσας." -#: reference/datamodel.rst:522 +#: reference/datamodel.rst:518 msgid "Callable types" msgstr "Τύποι με δυνατότητα κλήσης" -#: reference/datamodel.rst:530 +#: reference/datamodel.rst:526 msgid "" "These are the types to which the function call operation (see section :ref:" "`calls`) can be applied:" @@ -871,11 +869,11 @@ msgstr "" "Αυτοί είναι οι τύποι στους οποίους μπορεί να εφαρμοστεί η λειτουργία κλήσης " "συνάρτησης (βλ. ενότητα :ref:`calls`) :" -#: reference/datamodel.rst:537 +#: reference/datamodel.rst:533 msgid "User-defined functions" msgstr "Συναρτήσεις που ορίζονται από τον χρήστη" -#: reference/datamodel.rst:544 +#: reference/datamodel.rst:540 msgid "" "A user-defined function object is created by a function definition (see " "section :ref:`function`). It should be called with an argument list " @@ -886,19 +884,19 @@ msgstr "" "με μια λίστα ορισμών που περιέχει τον ίδιο αριθμό στοιχείων με την επίσημη " "λίστα παραμέτρων της συνάρτησης." -#: reference/datamodel.rst:1443 reference/datamodel.rst:1643 +#: reference/datamodel.rst:1447 reference/datamodel.rst:1648 msgid "Special read-only attributes" msgstr "Ειδικά χαρακτηριστικά μόνο για ανάγνωση" -#: reference/datamodel.rst:596 reference/datamodel.rst:1198 +#: reference/datamodel.rst:592 reference/datamodel.rst:1195 msgid "Attribute" msgstr "Χαρακτηριστικό" -#: reference/datamodel.rst:597 reference/datamodel.rst:1199 +#: reference/datamodel.rst:593 reference/datamodel.rst:1196 msgid "Meaning" msgstr "Έννοια" -#: reference/datamodel.rst:564 +#: reference/datamodel.rst:560 msgid "" "A reference to the :class:`dictionary ` that holds the function's :ref:" "`global variables ` -- the global namespace of the module in which " @@ -908,7 +906,7 @@ msgstr "" "variables ` -- τον καθολικό χώρο ονομάτων του module στην οποία " "ορίστηκε η συνάρτηση." -#: reference/datamodel.rst:569 +#: reference/datamodel.rst:565 msgid "" "``None`` or a :class:`tuple` of cells that contain bindings for the names " "specified in the :attr:`~codeobject.co_freevars` attribute of the " @@ -918,7 +916,7 @@ msgstr "" "ονόματα που καθορίζονται στο χαρακτηριστικό :attr:`~codeobject.co_freevars` " "του :attr:`code object ` της συνάρτησης." -#: reference/datamodel.rst:573 +#: reference/datamodel.rst:569 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." @@ -927,22 +925,22 @@ msgstr "" "να χρησιμοποιηθεί για να ληφθεί η τιμή του κελιού, καθώς και να οριστεί η " "τιμή." -#: reference/datamodel.rst:1685 +#: reference/datamodel.rst:1696 msgid "Special writable attributes" msgstr "Ειδικά εγγράψιμα χαρακτηριστικά" -#: reference/datamodel.rst:591 +#: reference/datamodel.rst:587 msgid "Most of these attributes check the type of the assigned value:" msgstr "" "Τα περισσότερα από αυτά τα χαρακτηριστικά ελέγχουν τον τύπο της εκχωρημένης " "τιμής:" -#: reference/datamodel.rst:600 +#: reference/datamodel.rst:596 msgid "The function's documentation string, or ``None`` if unavailable." msgstr "" "Η συμβολοσειρά τεκμηρίωσης της συνάρτηση ή ``None`` εάν δεν είναι διαθέσιμη." -#: reference/datamodel.rst:603 +#: reference/datamodel.rst:599 msgid "" "The function's name. See also: :attr:`__name__ attributes `." @@ -950,7 +948,7 @@ msgstr "" "Το όνομα της συνάρτησης. Δείτε επίσης :attr:`__name__ attributes `." -#: reference/datamodel.rst:607 +#: reference/datamodel.rst:603 msgid "" "The function's :term:`qualified name`. See also: :attr:`__qualname__ " "attributes `." @@ -958,7 +956,7 @@ msgstr "" "Η συνάρτηση είναι :term:`qualified name`. Δείτε επίσης :attr:`__qualname__ " "attributes `." -#: reference/datamodel.rst:613 +#: reference/datamodel.rst:609 msgid "" "The name of the module the function was defined in, or ``None`` if " "unavailable." @@ -966,7 +964,7 @@ msgstr "" "Το όνομα του module στην οποία ορίστηκε η συνάρτηση ή ``None`` εάν δεν είναι " "διαθέσιμη." -#: reference/datamodel.rst:617 +#: reference/datamodel.rst:613 msgid "" "A :class:`tuple` containing default :term:`parameter` values for those " "parameters that have defaults, or ``None`` if no parameters have a default " @@ -976,7 +974,7 @@ msgstr "" "εκείνες τις παραμέτρους που έχουν προεπιλογές ή ``None`` εάν καμία " "παράμετρος δεν έχει προεπιλεγμένη τιμή." -#: reference/datamodel.rst:622 +#: reference/datamodel.rst:618 msgid "" "The :ref:`code object ` representing the compiled function " "body." @@ -984,7 +982,7 @@ msgstr "" "Το αντικείμενο :ref:`code object ` που αντιπροσωπεύει το " "μεταγλωττισμένο σώμα συνάρτησης." -#: reference/datamodel.rst:626 +#: reference/datamodel.rst:622 msgid "" "The namespace supporting arbitrary function attributes. See also: :attr:" "`__dict__ attributes `." @@ -992,7 +990,7 @@ msgstr "" "Ο χώρος ονομάτων που υποστηρίζει αυθαίρετα χαρακτηριστικά συνάρτησης. Δείτε " "επίσης :attr:`__dict__ attributes `." -#: reference/datamodel.rst:630 +#: reference/datamodel.rst:626 msgid "" "A :class:`dictionary ` containing annotations of :term:`parameters " "`. The keys of the dictionary are the parameter names, and " @@ -1004,7 +1002,7 @@ msgstr "" "παραμέτρων και ``'return'``, για το annotation επιστροφής, εάν παρέχεται. " "Δείτε επίσης: :attr:`object.__annotations__`." -#: reference/datamodel.rst:1105 reference/datamodel.rst:1249 +#: reference/datamodel.rst:1101 reference/datamodel.rst:1253 msgid "" "Annotations are now :ref:`lazily evaluated `. See :pep:" "`649`." @@ -1012,7 +1010,7 @@ msgstr "" "Τα annotations πλέον :ref:`lazily evaluated `. Βλ. :pep:" "`649`." -#: reference/datamodel.rst:641 +#: reference/datamodel.rst:637 msgid "" "The :term:`annotate function` for this function, or ``None`` if the function " "has no annotations. See :attr:`object.__annotate__`." @@ -1020,7 +1018,7 @@ msgstr "" "Η :term:`annotate function` για αυτή τη συνάρτηση ή ``None`` εάν η συνάρτηση " "δεν έχει annotations. Δείτε :attr:`object.__annotate__`." -#: reference/datamodel.rst:647 +#: reference/datamodel.rst:643 msgid "" "A :class:`dictionary ` containing defaults for keyword-only :term:" "`parameters `." @@ -1028,7 +1026,7 @@ msgstr "" "Μια :class:`dictionary ` που περιέχει προεπιλογές για λέξεις-κλειδιά " "μόνο :term:`parameters `." -#: reference/datamodel.rst:651 +#: reference/datamodel.rst:647 msgid "" "A :class:`tuple` containing the :ref:`type parameters ` of a :" "ref:`generic function `." @@ -1036,7 +1034,7 @@ msgstr "" "Μια :class:`tuple` που περιέχει τις παραμέτρους :ref:`type parameters ` μιας :ref:`generic function `." -#: reference/datamodel.rst:656 +#: reference/datamodel.rst:652 msgid "" "Function objects also support getting and setting arbitrary attributes, " "which can be used, for example, to attach metadata to functions. Regular " @@ -1048,7 +1046,7 @@ msgstr "" "σημειογραφία σημείων χαρακτηριστικών χρησιμοποιείται για τη λήψη και τον " "ορισμό τέτοιων χαρακτηριστικών." -#: reference/datamodel.rst:662 +#: reference/datamodel.rst:658 msgid "" "CPython's current implementation only supports function attributes on user-" "defined functions. Function attributes on :ref:`built-in functions ` ενδέχεται να " "υποστηρίζονται στο μέλλον." -#: reference/datamodel.rst:667 +#: reference/datamodel.rst:663 msgid "" "Additional information about a function's definition can be retrieved from " "its :ref:`code object ` (accessible via the :attr:`~function." @@ -1069,11 +1067,11 @@ msgstr "" "συνάρτησης από το αντικείμενο :ref:`code object ` (προσβάσιμο " "μέσω του χαρακτηριστικού :attr:`~function.__code__`)." -#: reference/datamodel.rst:675 +#: reference/datamodel.rst:671 msgid "Instance methods" msgstr "Μέθοδοι Στιγμιοτύπου" -#: reference/datamodel.rst:682 +#: reference/datamodel.rst:678 msgid "" "An instance method object combines a class, a class instance and any " "callable object (normally a user-defined function)." @@ -1082,11 +1080,11 @@ msgstr "" "κλάσης και οποιοδήποτε αντικείμενο που μπορεί να κληθεί (συνήθως μια " "συνάρτηση που ορίζεται από τον χρήστη.)" -#: reference/datamodel.rst:1781 +#: reference/datamodel.rst:1792 msgid "Special read-only attributes:" msgstr "Ειδικά χαρακτηριστικά μόνο για ανάγνωση:" -#: reference/datamodel.rst:697 +#: reference/datamodel.rst:693 msgid "" "Refers to the class instance object to which the method is :ref:`bound " "`" @@ -1094,11 +1092,11 @@ msgstr "" "Αναφέρεται στο αντικείμενο στιγμιοτύπου κλάσης στο οποίο βρίσκεται η " "μέθοδος :ref:`bound `" -#: reference/datamodel.rst:701 +#: reference/datamodel.rst:697 msgid "Refers to the original :ref:`function object `" msgstr "Αναφέρεται στο αρχικό :ref:`function object `" -#: reference/datamodel.rst:704 +#: reference/datamodel.rst:700 msgid "" "The method's documentation (same as :attr:`method.__func__.__doc__ `). A :class:`string ` if the original function had a " @@ -1108,7 +1106,7 @@ msgstr "" "`). Μια :class:`string ` εάν η αρχική συνάρτηση είχε " "docstring, αλλιώς ``None``." -#: reference/datamodel.rst:710 +#: reference/datamodel.rst:706 msgid "" "The name of the method (same as :attr:`method.__func__.__name__ `)" @@ -1116,14 +1114,14 @@ msgstr "" "Το όνομα της μεθόδου (ίδιο με το :attr:`method.__func__.__name__ `)" -#: reference/datamodel.rst:714 +#: reference/datamodel.rst:710 msgid "" "The name of the module the method was defined in, or ``None`` if unavailable." msgstr "" "Το όνομα του module στην οποία ορίστηκε η μέθοδος, ή ``None`` εάν δεν είναι " "διαθέσιμη." -#: reference/datamodel.rst:717 +#: reference/datamodel.rst:713 msgid "" "Methods also support accessing (but not setting) the arbitrary function " "attributes on the underlying :ref:`function object `." @@ -1132,7 +1130,7 @@ msgstr "" "αυθαίρετων χαρακτηριστικών συνάρτησης στο υποκείμενο αντικείμενο :ref:" "`function object `." -#: reference/datamodel.rst:720 +#: reference/datamodel.rst:716 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-" @@ -1145,7 +1143,7 @@ msgstr "" "`function object ` ή ένα αντικείμενο :class:" "`classmethod`." -#: reference/datamodel.rst:727 +#: reference/datamodel.rst:723 msgid "" "When an instance method object is created by retrieving a user-defined :ref:" "`function object ` from a class via one of its " @@ -1160,7 +1158,7 @@ msgstr "" "Το χαρακτηριστικό :attr:`~method.__func__` της νέας μεθόδου είναι το αρχικό " "αντικείμενο συνάρτησης." -#: reference/datamodel.rst:733 +#: reference/datamodel.rst:729 msgid "" "When an instance method object is created by retrieving a :class:" "`classmethod` object from a class or instance, its :attr:`~method.__self__` " @@ -1173,7 +1171,7 @@ msgstr "" "χαρακτηριστικό :attr:`~method.__func__` είναι το αντικείμενο συνάρτησης που " "βρίσκεται κάτω από τη μέθοδο κλάσης." -#: reference/datamodel.rst:738 +#: reference/datamodel.rst:734 msgid "" "When an instance method object is called, the underlying function (:attr:" "`~method.__func__`) is called, inserting the class instance (:attr:`~method." @@ -1189,7 +1187,7 @@ msgstr "" "συνάρτηση :meth:`!f`, και το ``x`` είναι ένα στιγμιότυπο της :class:`!C`, η " "κλήση του ``x.f(1)`` ισοδυναμεί με την κλήση του ``C.f(x, 1)``." -#: reference/datamodel.rst:745 +#: reference/datamodel.rst:741 msgid "" "When an instance method object is derived from a :class:`classmethod` " "object, the \"class instance\" stored in :attr:`~method.__self__` will " @@ -1203,7 +1201,7 @@ msgstr "" "ώστε η κλήση είτε του ``x.f(1)` ή του ``C.f(1)`` ισοδυναμεί με την κλήση του " "``f(C,1)`` όπου το ``f`` είναι η υποκείμενη συνάρτηση." -#: reference/datamodel.rst:750 +#: reference/datamodel.rst:746 msgid "" "It is important to note that user-defined functions which are attributes of " "a class instance are not converted to bound methods; this *only* happens " @@ -1214,11 +1212,11 @@ msgstr "" "δεσμευμένες μεθόδους∙ Αυτό συμβαίνει *μόνο* όταν η συνάρτηση είναι " "χαρακτηριστικό της κλάσης." -#: reference/datamodel.rst:757 +#: reference/datamodel.rst:753 msgid "Generator functions" msgstr "Generator Συναρτήσεις" -#: reference/datamodel.rst:763 +#: reference/datamodel.rst:759 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 " @@ -1240,11 +1238,11 @@ msgstr "" "πέσει στο τέλος, γίνεται raise μια εξαίρεση :exc:`StopIteration` και ο " "iterator θα έχει φτάσει στο τέλος του συνόλου τιμών που θα επιστραφεί." -#: reference/datamodel.rst:775 +#: reference/datamodel.rst:771 msgid "Coroutine functions" msgstr "Coroutine συναρτήσεις" -#: reference/datamodel.rst:780 +#: reference/datamodel.rst:776 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:" @@ -1258,11 +1256,11 @@ msgstr "" "εκφράσεις :keyword:`await`, καθώς και :keyword:`async with` και :keyword:" "`async for`. Δείτε επίσης την ενότητα :ref:`coroutine-objects`." -#: reference/datamodel.rst:788 +#: reference/datamodel.rst:784 msgid "Asynchronous generator functions" msgstr "Asynchronous generator συναρτήσεις" -#: reference/datamodel.rst:794 +#: reference/datamodel.rst:790 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 " @@ -1277,7 +1275,7 @@ msgstr "" "χρησιμοποιηθεί σε μια δήλωση :keyword:`async for` για την εκτέλεση του " "σώματος της συνάρτησης." -#: reference/datamodel.rst:800 +#: reference/datamodel.rst:796 msgid "" "Calling the asynchronous iterator's :meth:`aiterator.__anext__ ` method will return an :term:`awaitable` which when awaited will " @@ -1295,11 +1293,11 @@ msgstr "" "`StopAsyncIteration` και ο ασύγχρονος iterator θα έχει φτάσει στο τέλος του " "συνόλου τιμών που θα αποδοθούν." -#: reference/datamodel.rst:813 +#: reference/datamodel.rst:809 msgid "Built-in functions" msgstr "Ενσωματωμένες συναρτήσεις" -#: reference/datamodel.rst:820 +#: reference/datamodel.rst:816 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 " @@ -1312,7 +1310,7 @@ msgstr "" "και ο τύπος των ορισμάτων καθορίζονται από τη συνάρτηση C. Ειδικά " "χαρακτηριστικά μόνο για ανάγνωση:" -#: reference/datamodel.rst:825 +#: reference/datamodel.rst:821 msgid "" ":attr:`!__doc__` is the function's documentation string, or ``None`` if " "unavailable. See :attr:`function.__doc__`." @@ -1320,20 +1318,20 @@ msgstr "" "Η :attr:`!__doc__` είναι η συμβολοσειρά τεκμηρίωσης της συνάρτησης, ή " "``None`` εάν δεν είναι διαθέσιμη . Δείτε :attr:`function.__doc__`." -#: reference/datamodel.rst:827 +#: reference/datamodel.rst:823 msgid "" ":attr:`!__name__` is the function's name. See :attr:`function.__name__`." msgstr "" "Η :attr:`!__name__` είναι το όνομα της συνάρτησης. Δείτε :attr:`function." "__name__`." -#: reference/datamodel.rst:828 +#: reference/datamodel.rst:824 msgid ":attr:`!__self__` is set to ``None`` (but see the next item)." msgstr "" "Η :attr:`!__self__` έχει οριστεί σε ``None`` (αλλά δείτε το επόμενο " "στοιχείο)." -#: reference/datamodel.rst:829 +#: reference/datamodel.rst:825 msgid "" ":attr:`!__module__` is the name of the module the function was defined in or " "``None`` if unavailable. See :attr:`function.__module__`." @@ -1342,11 +1340,11 @@ msgstr "" "συνάρτηση ή ``None`` εάν δεν είναι διαθέσιμη. Δείτε :attr:`function." "__module__`." -#: reference/datamodel.rst:837 +#: reference/datamodel.rst:833 msgid "Built-in methods" msgstr "Ενσωματωμένες μεθόδους" -#: reference/datamodel.rst:844 +#: reference/datamodel.rst:840 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 " @@ -1365,11 +1363,11 @@ msgstr "" "*alist*. (Το χαρακτηριστικό έχει την ίδια σημασιολογία με το :attr:`other " "instance methods `.)" -#: reference/datamodel.rst:854 +#: reference/datamodel.rst:850 msgid "Classes" msgstr "Κλάσεις" -#: reference/datamodel.rst:856 +#: reference/datamodel.rst:852 msgid "" "Classes are callable. These objects normally act as factories for new " "instances of themselves, but variations are possible for class types that " @@ -1384,11 +1382,11 @@ msgstr "" "στην τυπική περίπτωση, στη :meth:`~object.__init__` για να αρχικοποιηθεί το " "νέο στιγμιότυπο." -#: reference/datamodel.rst:864 +#: reference/datamodel.rst:860 msgid "Class Instances" msgstr "Στιγμιότυπα Κλάσης" -#: reference/datamodel.rst:866 +#: reference/datamodel.rst:862 msgid "" "Instances of arbitrary classes can be made callable by defining a :meth:" "`~object.__call__` method in their class." @@ -1396,11 +1394,11 @@ msgstr "" "Τα στιγμιότυπα αυθαίρετων κλάσεων μπορούν να έχουν την δυνατότητα κλήσης " "ορίζοντας μια μέθοδο :meth:`~object.__call__` στην κλάση τους." -#: reference/datamodel.rst:873 +#: reference/datamodel.rst:869 msgid "Modules" msgstr "Modules" -#: reference/datamodel.rst:879 +#: reference/datamodel.rst:875 msgid "" "Modules are a basic organizational unit of Python code, and are created by " "the :ref:`import system ` as invoked either by the :keyword:" @@ -1427,7 +1425,7 @@ msgstr "" "για την προετοιμασία του module (καθώς δεν χρειάζεται μόλις ολοκληρωθεί η " "προετοιμασία)." -#: reference/datamodel.rst:892 +#: reference/datamodel.rst:888 msgid "" "Attribute assignment updates the module's namespace dictionary, e.g., ``m.x " "= 1`` is equivalent to ``m.__dict__[\"x\"] = 1``." @@ -1435,11 +1433,11 @@ msgstr "" "Η εκχώρηση χαρακτηριστικών ενημερώνει το λεξικό χώρου ονομάτων του module, π." "χ., ``m.x = 1`` ισοδυναμεί με ``m.__dict__[\"x\"] = 1``." -#: reference/datamodel.rst:911 +#: reference/datamodel.rst:907 msgid "Import-related attributes on module objects" msgstr "Χαρακτηριστικά που σχετίζονται με εισαγωγή σε αντικείμενα modules" -#: reference/datamodel.rst:913 +#: reference/datamodel.rst:909 msgid "" "Module objects have the following attributes that relate to the :ref:`import " "system `. When a module is created using the machinery " @@ -1453,7 +1451,7 @@ msgstr "" "χαρακτηριστικά συμπληρώνονται με βάση το :term:`spec ` του " "module, προτού το :term:`loader` εκτελέσει και φορτώσει το module." -#: reference/datamodel.rst:919 +#: reference/datamodel.rst:915 msgid "" "To create a module dynamically rather than using the import system, it's " "recommended to use :func:`importlib.util.module_from_spec`, which will set " @@ -1472,7 +1470,7 @@ msgstr "" "χαρακτηριστικά πρέπει να οριστούν χειροκίνητα στο αντικείμενο του module " "αφού δημιουργηθεί κατά τη χρήση αυτής της προσέγγισης." -#: reference/datamodel.rst:929 +#: reference/datamodel.rst:925 msgid "" "With the exception of :attr:`~module.__name__`, it is **strongly** " "recommended that you rely on :attr:`~module.__spec__` and its attributes " @@ -1486,7 +1484,7 @@ msgstr "" "την υποενότητα. Σημειώστε ότι η ενημέρωση ενός χαρακτηριστικού στο :attr:`!" "__spec__` δεν θα ενημερώσει το αντίστοιχο χαρακτηριστικό στο ίδιο το module:" -#: reference/datamodel.rst:935 +#: reference/datamodel.rst:931 msgid "" ">>> import typing\n" ">>> typing.__name__, typing.__spec__.name\n" @@ -1508,7 +1506,7 @@ msgstr "" ">>> typing.__name__, typing.__spec__.name\n" "('keyboard_smashing', 'spelling')" -#: reference/datamodel.rst:949 +#: reference/datamodel.rst:945 msgid "" "The name used to uniquely identify the module in the import system. For a " "directly executed module, this will be set to ``\"__main__\"``." @@ -1517,7 +1515,7 @@ msgstr "" "σύστημα εισαγωγής. Για ένα άμεσο εκτελούμενο module, αυτό θα οριστεί σε " "``\"__main__\"``." -#: reference/datamodel.rst:952 +#: reference/datamodel.rst:948 msgid "" "This attribute must be set to the fully qualified name of the module. It is " "expected to match the value of :attr:`module.__spec__.name `." -#: reference/datamodel.rst:958 +#: reference/datamodel.rst:954 msgid "A record of the module's import-system-related state." msgstr "" "Μια εγγραφή της κατάστασης του module που σχετίζεται με το σύστημα εισαγωγής." -#: reference/datamodel.rst:960 +#: reference/datamodel.rst:956 msgid "" "Set to the :class:`module spec ` that was " "used when importing the module. See :ref:`module-specs` for more details." @@ -1541,11 +1539,11 @@ msgstr "" "που χρησιμοποιήθηκε κατά την εισαγωγή της ενότητας. Δείτε το :ref:`module-" "specs` για περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:967 +#: reference/datamodel.rst:963 msgid "The :term:`package` a module belongs to." msgstr "Το :term:`package` στο οποίο ανήκει μια ενότητα." -#: reference/datamodel.rst:969 +#: reference/datamodel.rst:965 msgid "" "If the module is top-level (that is, not a part of any specific package) " "then the attribute should be set to ``''`` (the empty string). Otherwise, it " @@ -1560,7 +1558,7 @@ msgstr "" "__name__` εάν η ίδια η ενότητα είναι πακέτο). Δείτε :pep:`366` για " "περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:975 +#: reference/datamodel.rst:971 msgid "" "This attribute is used instead of :attr:`~module.__name__` to calculate " "explicit relative imports for main modules. It defaults to ``None`` for " @@ -1575,7 +1573,7 @@ msgstr "" "το :func:`importlib.util.module_from_spec` για να βεβαιωθείτε ότι το " "χαρακτηριστικό έχει οριστεί σε :class:`str`." -#: reference/datamodel.rst:981 +#: reference/datamodel.rst:977 msgid "" "It is **strongly** recommended that you use :attr:`module.__spec__.parent " "` instead of :attr:`!module." @@ -1588,7 +1586,7 @@ msgstr "" "ως εφεδρική εντολή εάν η εντολή :attr:`!__spec__.parent` δεν έχει οριστεί " "και αυτή η εφεδρική διαδρομή έχει καταργηθεί." -#: reference/datamodel.rst:1028 +#: reference/datamodel.rst:1024 msgid "" "This attribute now defaults to ``None`` for modules created dynamically " "using the :class:`types.ModuleType` constructor. Previously the attribute " @@ -1598,7 +1596,7 @@ msgstr "" "modules που δημιουργούνται δυναμικά χρησιμοποιώντας τον κατασκευαστή :class:" "`types.ModuleType`. Προηγουμένως, το χαρακτηριστικό ήταν προαιρετικό." -#: reference/datamodel.rst:992 +#: reference/datamodel.rst:988 msgid "" "The value of :attr:`!__package__` is expected to be the same as :attr:" "`__spec__.parent `. :attr:" @@ -1610,7 +1608,7 @@ msgstr "" "`__package__` χρησιμοποιείται πλέον μόνο ως εφεδρική τιμή κατά την ανάλυση " "εισαγωγής εάν δεν έχει οριστεί το :attr:`!__spec__.parent`." -#: reference/datamodel.rst:998 +#: reference/datamodel.rst:994 msgid "" ":exc:`ImportWarning` is raised if an import resolution falls back to :attr:`!" "__package__` instead of :attr:`__spec__.parent `." -#: reference/datamodel.rst:1003 +#: reference/datamodel.rst:999 msgid "" "Raise :exc:`DeprecationWarning` instead of :exc:`ImportWarning` when falling " "back to :attr:`!__package__` during import resolution." @@ -1628,7 +1626,7 @@ msgstr "" "Γίνεται :exc:`DeprecationWarning` αντί για :exc:`ImportWarning` κατά την " "επιστροφή στο :attr:`!__package__` κατά την επίλυση της εισαγωγής." -#: reference/datamodel.rst:1007 +#: reference/datamodel.rst:1003 msgid "" ":attr:`!__package__` will cease to be set or taken into consideration by the " "import system or standard library." @@ -1636,14 +1634,14 @@ msgstr "" "Το :attr:`!__package__` θα πάψει να ορίζεται ή να λαμβάνεται υπόψη από το " "σύστημα εισαγωγής ή την τυπική βιβλιοθήκη." -#: reference/datamodel.rst:1013 +#: reference/datamodel.rst:1009 msgid "" "The :term:`loader` object that the import machinery used to load the module." msgstr "" "Το αντικείμενο :term:`loader` που χρησιμοποίησε ο μηχανισμός εισαγωγής για " "τη φόρτωση του module." -#: reference/datamodel.rst:1015 +#: reference/datamodel.rst:1011 msgid "" "This attribute is mostly useful for introspection, but can be used for " "additional loader-specific functionality, for example getting data " @@ -1653,7 +1651,7 @@ msgstr "" "χρησιμοποιηθεί για πρόσθετη λειτουργικότητα ειδικά για τον loader, για " "παράδειγμα για τη λήψη δεδομένων που σχετίζονται με έναν loader." -#: reference/datamodel.rst:1019 +#: reference/datamodel.rst:1015 msgid "" ":attr:`!__loader__` defaults to ``None`` for modules created dynamically " "using the :class:`types.ModuleType` constructor; use :func:`importlib.util." @@ -1666,7 +1664,7 @@ msgstr "" "να βεβαιωθείτε ότι το χαρακτηριστικό έχει οριστεί σε ένα αντικείμενο :term:" "`loader`." -#: reference/datamodel.rst:1024 +#: reference/datamodel.rst:1020 msgid "" "It is **strongly** recommended that you use :attr:`module.__spec__.loader " "` instead of :attr:`!module." @@ -1676,7 +1674,7 @@ msgstr "" "loader ` αντί για την εντολή :attr:`!" "module.__loader__`." -#: reference/datamodel.rst:1033 +#: reference/datamodel.rst:1029 msgid "" "Setting :attr:`!__loader__` on a module while failing to set :attr:`!" "__spec__.loader` is deprecated. In Python 3.16, :attr:`!__loader__` will " @@ -1688,7 +1686,7 @@ msgstr "" "attr:`!__loader__` θα πάψει να ορίζεται η να λαμβάνεται υπόψη από το σύστημα " "εισαγωγής ή την τυπική βιβλιοθήκη." -#: reference/datamodel.rst:1041 +#: reference/datamodel.rst:1037 msgid "" "A (possibly empty) :term:`sequence` of strings enumerating the locations " "where the package's submodules will be found. Non-package modules should not " @@ -1700,7 +1698,7 @@ msgstr "" "είναι πακέτα δεν θα πρέπει να έχουν το χαρακτηριστικό :attr:`!__path__`. " "Δείτε το :ref:`package-path-rules` για περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:1046 +#: reference/datamodel.rst:1042 msgid "" "It is **strongly** recommended that you use :attr:`module.__spec__." "submodule_search_locations ` αντί για το :attr:`!module.__path__`." -#: reference/datamodel.rst:1053 +#: reference/datamodel.rst:1049 msgid "" ":attr:`!__file__` and :attr:`!__cached__` are both optional attributes that " "may or may not be set. Both attributes should be a :class:`str` when they " @@ -1720,7 +1718,7 @@ msgstr "" "χαρακτηριστικά, τα οποία ενδέχεται να μην έχουν οριστεί. Όταν είναι " "διαθέσιμα, και τα δύο θα πρέπει να είναι αντικείμενα τύπου μιας :class:`str`." -#: reference/datamodel.rst:1057 +#: reference/datamodel.rst:1053 msgid "" ":attr:`!__file__` indicates the pathname of the file from which the module " "was loaded (if loaded from a file), or the pathname of the shared library " @@ -1739,7 +1737,7 @@ msgstr "" "δεν έχει σημασιολογική αξία (π.χ. ένα module που φορτώνεται από μια βάση " "δεδομένων)." -#: reference/datamodel.rst:1065 +#: reference/datamodel.rst:1061 msgid "" "If :attr:`!__file__` is set then the :attr:`!__cached__` attribute might " "also be set, which is the path to any compiled version of the code (for " @@ -1754,7 +1752,7 @@ msgstr "" "χαρακτηριστικό. Η διαδρομή μπορεί απλά να επισημάνει το πού *θα* υπήρχε το " "αρχείο που έχει καταρτιστεί (βλ. :pep:`3147`)." -#: reference/datamodel.rst:1071 +#: reference/datamodel.rst:1067 msgid "" "Note that :attr:`!__cached__` may be set even if :attr:`!__file__` is not " "set. However, that scenario is quite atypical. Ultimately, the :term:" @@ -1771,7 +1769,7 @@ msgstr "" "φορτωθεί από ένα προσωρινό module, αλλά διαφορετικά δεν φορτώνεται από ένα " "αρχείο, αυτό το άτυπο σενάριο μπορεί να είναι κατάλληλο." -#: reference/datamodel.rst:1078 +#: reference/datamodel.rst:1074 msgid "" "It is **strongly** recommended that you use :attr:`module.__spec__.cached " "` instead of :attr:`!module." @@ -1781,7 +1779,7 @@ msgstr "" "` αντί για το :attr:`!module." "__cached__`." -#: reference/datamodel.rst:1082 +#: reference/datamodel.rst:1078 msgid "" "Setting :attr:`!__cached__` on a module while failing to set :attr:`!" "__spec__.cached` is deprecated. In Python 3.15, :attr:`!__cached__` will " @@ -1793,11 +1791,11 @@ msgstr "" "attr:`!__cached__` θα πάψει να ορίζεται η να λαμβάνεται υπόψη από το σύστημα " "εισαγωγής ή την τυπική βιβλιοθήκη." -#: reference/datamodel.rst:1089 +#: reference/datamodel.rst:1085 msgid "Other writable attributes on module objects" msgstr "Άλλα εγγράφως χαρακτηριστικά σε αντικείμενα μονάδων" -#: reference/datamodel.rst:1091 +#: reference/datamodel.rst:1087 msgid "" "As well as the import-related attributes listed above, module objects also " "have the following writable attributes:" @@ -1806,7 +1804,7 @@ msgstr "" "παραπάνω, τα αντικείμενα της μονάδας έχουν επίσης τα ακόλουθα δικαιολογημένα " "χαρακτηριστικά:" -#: reference/datamodel.rst:1096 +#: reference/datamodel.rst:1092 msgid "" "The module's documentation string, or ``None`` if unavailable. See also: :" "attr:`__doc__ attributes `." @@ -1814,7 +1812,7 @@ msgstr "" "Η συμβολοσειρά τεκμηρίωσης του module, ή ``None`` αν δεν είναι διαθέσιμη. " "Δείτε επίσης: :attr:`__doc__ attributes `." -#: reference/datamodel.rst:1101 +#: reference/datamodel.rst:1097 msgid "" "A dictionary containing :term:`variable annotations ` " "collected during module body execution. For best practices on working with :" @@ -1825,7 +1823,7 @@ msgstr "" "πρακτικές σχετικά με την εργασία με :attr:`!__annotations__`, δείτε το :mod:" "`annotationlib`." -#: reference/datamodel.rst:1111 +#: reference/datamodel.rst:1107 msgid "" "The :term:`annotate function` for this module, or ``None`` if the module has " "no annotations. See also: :attr:`~object.__annotate__` attributes." @@ -1833,17 +1831,17 @@ msgstr "" "Η :term:`annotate function` για αυτό το module, ή ``None`` εάν το module δεν " "έχει annotations. Δείτε επίσης: :attr:`~object.__annotate__` attributes." -#: reference/datamodel.rst:1117 +#: reference/datamodel.rst:1113 msgid "Module dictionaries" msgstr "Λεξικά Modules" -#: reference/datamodel.rst:1119 +#: reference/datamodel.rst:1115 msgid "Module objects also have the following special read-only attribute:" msgstr "" "Τα αντικείμενα module έχουν επίσης την ακόλουθη ειδική ιδιότητα μόνο για " "ανάγνωση:" -#: reference/datamodel.rst:1124 +#: reference/datamodel.rst:1120 msgid "" "The module's namespace as a dictionary object. Uniquely among the attributes " "listed here, :attr:`!__dict__` cannot be accessed as a global variable from " @@ -1854,7 +1852,7 @@ msgstr "" "προσπελαστεί ως καθολική μεταβλητή από μέσα σε ένα module∙ μπορεί να " "προσπελαστεί μόνο ως χαρακτηριστικό σε αντικείμενα module." -#: reference/datamodel.rst:1130 +#: reference/datamodel.rst:1126 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 " @@ -1867,11 +1865,11 @@ msgstr "" "αποφύγετε αυτό, αντιγράψτε το λεξικό ή κρατήστε το module ενώ " "χρησιμοποιείται απευθείας το λεξικό της." -#: reference/datamodel.rst:1139 +#: reference/datamodel.rst:1135 msgid "Custom classes" msgstr "Προσαρμοσμένες κλάσεις" -#: reference/datamodel.rst:1141 +#: reference/datamodel.rst:1137 msgid "" "Custom class types are typically created by class definitions (see section :" "ref:`class`). A class has a namespace implemented by a dictionary object. " @@ -1899,7 +1897,7 @@ msgstr "" "λεπτομέρειες για το C3 MRO που χρησιμοποιείται από την Python μπορείτε να " "βρείτε στην διεύθυνση :ref:`python_2.3_mro`." -#: reference/datamodel.rst:1162 +#: reference/datamodel.rst:1158 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 :" @@ -1919,7 +1917,7 @@ msgstr "" "να διαφέρουν από αυτά που πραγματικά περιέχονται στο :attr:`~object." "__dict__` της." -#: reference/datamodel.rst:1173 +#: reference/datamodel.rst:1169 msgid "" "Class attribute assignments update the class's dictionary, never the " "dictionary of a base class." @@ -1927,7 +1925,7 @@ msgstr "" "Οι αναθέσεις χαρακτηριστικών κλάσης ενημερώνουν το λεξικό της κλάσης, ποτέ " "το λεξικό μιας βασικής κλάσης." -#: reference/datamodel.rst:1178 +#: reference/datamodel.rst:1174 msgid "" "A class object can be called (see above) to yield a class instance (see " "below)." @@ -1935,11 +1933,11 @@ msgstr "" "Ένα αντικείμενο κλάσης μπορεί να κληθεί (δείτε παραπάνω) για να δώσει ένα " "στιγμιότυπο κλάσης (δείτε παρακάτω)." -#: reference/datamodel.rst:1349 +#: reference/datamodel.rst:1353 msgid "Special attributes" msgstr "Ειδικά χαρακτηριστικά" -#: reference/datamodel.rst:1202 +#: reference/datamodel.rst:1199 msgid "" "The class's name. See also: :attr:`__name__ attributes `." @@ -1947,7 +1945,7 @@ msgstr "" "Το όνομα της κλάσης, Δείτε επίσης: :attr:`__name__ attributes `." -#: reference/datamodel.rst:1206 +#: reference/datamodel.rst:1203 msgid "" "The class's :term:`qualified name`. See also: :attr:`__qualname__ attributes " "`." @@ -1955,11 +1953,11 @@ msgstr "" "Το :term:`qualified name` της κλάσης. Δείτε επίσης: :attr:`__qualname__ " "attributes `." -#: reference/datamodel.rst:1210 +#: reference/datamodel.rst:1207 msgid "The name of the module in which the class was defined." msgstr "Το όνομα του module στην οποία ορίστηκε η κλάση." -#: reference/datamodel.rst:1213 +#: reference/datamodel.rst:1210 msgid "" "A :class:`mapping proxy ` providing a read-only view " "of the class's namespace. See also: :attr:`__dict__ attributes `." -#: reference/datamodel.rst:1218 +#: reference/datamodel.rst:1215 msgid "" "A :class:`tuple` containing the class's bases. In most cases, for a class " "defined as ``class X(A, B, C)``, ``X.__bases__`` will be exactly equal to " @@ -1979,7 +1977,17 @@ msgstr "" "περιπτώσεις, για μια κλάση που ορίζεται ως ``class X(A, B, C)``, το ``X." "__bases__`` θα είναι ακριβώς ίσο με ``(A, B, C)``." -#: reference/datamodel.rst:1223 +#: reference/datamodel.rst:1222 +msgid "" +"The single base class in the inheritance chain that is responsible for the " +"memory layout of instances. This attribute corresponds to :c:member:" +"`~PyTypeObject.tp_base` at the C level." +msgstr "" +"Η μοναδική βασική κλάση στην αλυσίδα κληρονομικότητας που είναι υπεύθυνη για " +"τη διάταξη μνήμης των στιγμιοτύπων. Αυτό το χαρακτηριστικό αντιστοιχεί στο :" +"c:member:`~PyTypeObject.tp_base` σε επίπεδο C." + +#: reference/datamodel.rst:1227 msgid "" "The class's documentation string, or ``None`` if undefined. Not inherited by " "subclasses." @@ -1987,7 +1995,7 @@ msgstr "" "Η συμβολοσειρά τεκμηρίωσης της κλάσης ή ``None`` εάν δεν έχει οριστεί. Δεν " "κληρονομείται από υποκλάσεις." -#: reference/datamodel.rst:1227 +#: reference/datamodel.rst:1231 msgid "" "A dictionary containing :term:`variable annotations ` " "collected during class body execution. See also: :attr:`__annotations__ " @@ -1997,7 +2005,7 @@ msgstr "" "που συλλέγονται κατά την εκτέλεση του σώματος της κλάσης. Δείτε επίσης: :" "attr:`__annotations__ attributes `." -#: reference/datamodel.rst:1232 +#: reference/datamodel.rst:1236 msgid "" "For best practices on working with :attr:`~object.__annotations__`, please " "see :mod:`annotationlib`. Use :func:`annotationlib.get_annotations` instead " @@ -2008,7 +2016,7 @@ msgstr "" "`annotationlib.get_annotations` αντί να έχετε άμεση πρόσβαση σε αυτό το " "χαρακτηριστικό." -#: reference/datamodel.rst:1239 +#: reference/datamodel.rst:1243 msgid "" "Accessing the :attr:`!__annotations__` attribute directly on a class object " "may return annotations for the wrong class, specifically in certain cases " @@ -2022,7 +2030,7 @@ msgstr "" "μετακλάση ορίζεται με το ``from __future__ import annotations``. Δείτε το :" "pep:`749 <749#pep749-metaclasses>` για λεπτομέρειες." -#: reference/datamodel.rst:1245 +#: reference/datamodel.rst:1249 msgid "" "This attribute does not exist on certain builtin classes. On user-defined " "classes without ``__annotations__``, it is an empty dictionary." @@ -2030,7 +2038,7 @@ msgstr "" "Αυτό το χαρακτηριστικό δεν υπάρχει σε ορισμένες ενσωματωμένες κλάσεις. Σε " "προσαρμοσμένες κλάσεις χωρίς ``__annotations__``, είναι ένα κενό λεξικό." -#: reference/datamodel.rst:1254 +#: reference/datamodel.rst:1258 msgid "" "The :term:`annotate function` for this class, or ``None`` if the class has " "no annotations. See also: :attr:`__annotate__ attributes `." -#: reference/datamodel.rst:1261 +#: reference/datamodel.rst:1265 msgid "" "A :class:`tuple` containing the :ref:`type parameters ` of a :" "ref:`generic class `." @@ -2048,7 +2056,7 @@ msgstr "" "Μια :class:`tuple` που περιέχει τις :ref:`type parameters ` " "μιας :ref:`generic class `." -#: reference/datamodel.rst:1267 +#: reference/datamodel.rst:1271 msgid "" "A :class:`tuple` containing names of attributes of this class which are " "assigned through ``self.X`` from any function in its body." @@ -2056,17 +2064,18 @@ msgstr "" "Ένα :class:`tuple` που περιέχει ονόματα χαρακτηριστικών αυτής της κλάσης τα " "οποία ανατίθενται μέσω του ``self.X`` από οποιαδήποτε συνάρτηση στο σώμα της." -#: reference/datamodel.rst:1273 +#: reference/datamodel.rst:1277 msgid "" "The line number of the first line of the class definition, including " -"decorators. Setting the :attr:`__module__` attribute removes the :attr:`!" -"__firstlineno__` item from the type's dictionary." +"decorators. Setting the :attr:`~type.__module__` attribute removes the :attr:" +"`!__firstlineno__` item from the type's dictionary." msgstr "" "Ο αριθμός γραμμής της πρώτης γραμμής του ορισμού της κλάσης, " "συμπεριλαμβανομένων των διακοσμητών. Ο ορισμός του χαρακτηριστικού :attr:" -"`__module__` αφαιρεί το :attr:`!__firstlineno__` από το λεξικό του τύπου." +"`~type.__module__` αφαιρεί το :attr:`!__firstlineno__` από το λεξικό του " +"τύπου." -#: reference/datamodel.rst:1281 +#: reference/datamodel.rst:1285 msgid "" "The :class:`tuple` of classes that are considered when looking for base " "classes during method resolution." @@ -2074,11 +2083,11 @@ msgstr "" "Η :class:`tuple` των κλάσεων που λαμβάνονται υπόψη κατά την αναζήτηση " "βασικών κλάσεων κατά την ανάλυση της μεθόδου." -#: reference/datamodel.rst:1286 +#: reference/datamodel.rst:1290 msgid "Special methods" msgstr "Ειδικές μέθοδοι" -#: reference/datamodel.rst:1288 +#: reference/datamodel.rst:1292 msgid "" "In addition to the special attributes described above, all Python classes " "also have the following two methods available:" @@ -2086,7 +2095,7 @@ msgstr "" "Εκτός από τα ειδικά χαρακτηριστικά που περιγράφονται παραπάνω, όλες οι " "κλάσεις Python έχουν επίσης διαθέσιμες τις ακόλουθες δύο μεθόδους:" -#: reference/datamodel.rst:1293 +#: reference/datamodel.rst:1297 msgid "" "This method can be overridden by a metaclass to customize the method " "resolution order for its instances. It is called at class instantiation, " @@ -2097,7 +2106,7 @@ msgstr "" "έναρξη της κλάσης και το αποτέλεσμα της αποθηκεύεται στο :attr:`~type." "__mro__`." -#: reference/datamodel.rst:1299 +#: reference/datamodel.rst:1303 msgid "" "Each class keeps a list of weak references to its immediate subclasses. This " "method returns a list of all those references still alive. The list is in " @@ -2107,7 +2116,7 @@ msgstr "" "της. Αυτή η μέθοδος επιστρέφει μια λίστα με όλες αυτές τις αναφορές που " "εξακολουθούν να είναι ενεργές. Η λίστα είναι με σειρά ορισμού. Παράδειγμα:" -#: reference/datamodel.rst:1303 +#: reference/datamodel.rst:1307 msgid "" ">>> class A: pass\n" ">>> class B(A): pass\n" @@ -2119,11 +2128,11 @@ msgstr "" ">>> A.__subclasses__()\n" "[]" -#: reference/datamodel.rst:1311 +#: reference/datamodel.rst:1315 msgid "Class instances" msgstr "Στιγμιότυπα κλάσης" -#: reference/datamodel.rst:1319 +#: reference/datamodel.rst:1323 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 " @@ -2157,7 +2166,7 @@ msgstr "" "αντικειμένου έχει μια μέθοδο :meth:`~object.__getattr__`, αυτή καλείται να " "ικανοποιήσει την αναζήτηση." -#: reference/datamodel.rst:1335 +#: reference/datamodel.rst:1339 msgid "" "Attribute assignments and deletions update the instance's dictionary, never " "a class's dictionary. If the class has a :meth:`~object.__setattr__` or :" @@ -2169,7 +2178,7 @@ msgstr "" "ή :meth:`~object.__delattr__`, καλείται αντί να ενημερώνεται απευθείας το " "λεξικό του στιγμιοτύπου." -#: reference/datamodel.rst:1345 +#: reference/datamodel.rst:1349 msgid "" "Class instances can pretend to be numbers, sequences, or mappings if they " "have methods with certain special names. See section :ref:`specialnames`." @@ -2178,11 +2187,11 @@ msgstr "" "ή αντιστοιχίσεις εάν έχουν μεθόδους με συγκεκριμένα ειδικά ονόματα. Δείτε " "την ενότητα :ref:`specialnames`." -#: reference/datamodel.rst:1357 +#: reference/datamodel.rst:1361 msgid "The class to which a class instance belongs." msgstr "Η κλάση στην οποία ανήκει ένα στιγμιότυπο κλάσης." -#: reference/datamodel.rst:1361 +#: reference/datamodel.rst:1365 msgid "" "A dictionary or other mapping object used to store an object's (writable) " "attributes. Not all instances have a :attr:`!__dict__` attribute; see the " @@ -2193,11 +2202,11 @@ msgstr "" "τα στιγμιότυπα ένα χαρακτηριστικό :attr:`!__dict__` ∙ δείτε την ενότητα για " "τα :ref:`slots` για περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:1367 +#: reference/datamodel.rst:1371 msgid "I/O objects (also known as file objects)" msgstr "Αντικείμενα εισόδου/εξόδου (γνωστά και ως αντικείμενα αρχείου)" -#: reference/datamodel.rst:1382 +#: reference/datamodel.rst:1386 msgid "" "A :term:`file object` represents an open file. Various shortcuts are " "available to create file objects: the :func:`open` built-in function, and " @@ -2212,7 +2221,7 @@ msgstr "" "αντικειμένων socket (και ίσως από άλλες συναρτήσεις ή μεθόδους που " "παρέχονται από modules επέκτασης)." -#: reference/datamodel.rst:1388 +#: reference/datamodel.rst:1392 msgid "" "The objects ``sys.stdin``, ``sys.stdout`` and ``sys.stderr`` are initialized " "to file objects corresponding to the interpreter's standard input, output " @@ -2225,11 +2234,11 @@ msgstr "" "σε λειτουργία κειμένου και επομένως ακολουθούν τη διεπαφή που ορίζεται από " "την αφηρημένη κλάση :class:`io.TextIOBase`." -#: reference/datamodel.rst:1396 +#: reference/datamodel.rst:1400 msgid "Internal types" msgstr "Εσωτερικοί τύποι" -#: reference/datamodel.rst:1402 +#: reference/datamodel.rst:1406 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 " @@ -2239,11 +2248,11 @@ msgstr "" "στο χρήστη. Οι ορισμοί τους μπορεί να αλλάξουν με μελλοντικές εκδόσεις του " "διερμηνέα, αλλά αναφέρονται εδώ για πληρότητα." -#: reference/datamodel.rst:1410 +#: reference/datamodel.rst:1414 msgid "Code objects" msgstr "Αντικείμενα κώδικα" -#: reference/datamodel.rst:1414 +#: reference/datamodel.rst:1418 msgid "" "Code objects represent *byte-compiled* executable Python code, or :term:" "`bytecode`. The difference between a code object and a function object is " @@ -2265,15 +2274,15 @@ msgstr "" "κώδικα είναι αμετάβλητα και δεν περιέχουν αναφορές (άμεσα ή έμμεσα) σε " "μεταβλητά αντικείμενα." -#: reference/datamodel.rst:1448 +#: reference/datamodel.rst:1452 msgid "The function name" msgstr "Το όνομα της συνάρτησης" -#: reference/datamodel.rst:1451 +#: reference/datamodel.rst:1455 msgid "The fully qualified function name" msgstr "Το πλήρως αναγνωρισμένο όνομα συνάρτησης" -#: reference/datamodel.rst:1456 +#: reference/datamodel.rst:1460 msgid "" "The total number of positional :term:`parameters ` (including " "positional-only parameters and parameters with default values) that the " @@ -2283,7 +2292,7 @@ msgstr "" "(συμπεριλαμβανομένων των παραμέτρων μόνο θέσης και παραμέτρων με " "προεπιλεγμένες τιμές) που έχει η συνάρτηση" -#: reference/datamodel.rst:1461 +#: reference/datamodel.rst:1465 msgid "" "The number of positional-only :term:`parameters ` (including " "arguments with default values) that the function has" @@ -2291,7 +2300,7 @@ msgstr "" "Ο αριθμός των :term:`parameters ` θέσεως (συμπεριλαμβανομένων " "ορισμάτων με προεπιλεγμένες τιμές) που έχει η συνάρτηση" -#: reference/datamodel.rst:1465 +#: reference/datamodel.rst:1469 msgid "" "The number of keyword-only :term:`parameters ` (including " "arguments with default values) that the function has" @@ -2299,7 +2308,7 @@ msgstr "" "Ο αριθμός των :term:`parameters ` λέξεων κλειδιών " "(συμπεριλαμβανομένων ορισμάτων με προεπιλεγμένες τιμές) που έχει η συνάρτηση" -#: reference/datamodel.rst:1469 +#: reference/datamodel.rst:1473 msgid "" "The number of :ref:`local variables ` used by the function " "(including parameters)" @@ -2307,7 +2316,7 @@ msgstr "" "Ο αριθμός των :ref:`local variables ` που χρησιμοποιούνται από τη " "συνάρτηση (συμπεριλαμβανομένων των παραμέτρων)" -#: reference/datamodel.rst:1473 +#: reference/datamodel.rst:1477 msgid "" "A :class:`tuple` containing the names of the local variables in the function " "(starting with the parameter names)" @@ -2315,7 +2324,7 @@ msgstr "" "Μια :class:`tuple` που περιέχει τα ονόματα των τοπικών μεταβλητών στη " "συνάρτηση (ξεκινώντας με τα ονόματα των παραμέτρων)" -#: reference/datamodel.rst:1477 +#: reference/datamodel.rst:1481 msgid "" "A :class:`tuple` containing the names of :ref:`local variables ` " "that are referenced from at least one :term:`nested scope` inside the " @@ -2325,7 +2334,7 @@ msgstr "" "` που αναφέρονται από τουλάχιστον ένα :term:`nested scope` μέσα στη " "συνάρτηση" -#: reference/datamodel.rst:1481 +#: reference/datamodel.rst:1485 msgid "" "A :class:`tuple` containing the names of :term:`free (closure) variables " "` that a :term:`nested scope` references in an outer " @@ -2335,13 +2344,13 @@ msgstr "" "variables ` που αναφέρεται από ένα :term:`nested scope` σε " "ένα εξωτερικό πλαίσιο. Δείτε επίσης το :attr:`function.__closure__`." -#: reference/datamodel.rst:1485 +#: reference/datamodel.rst:1489 msgid "Note: references to global and builtin names are *not* included." msgstr "" "Σημείωση: οι αναφορές σε καθολικά και ενσωματωμένα ονόματα *δεν* " "περιλαμβάνονται." -#: reference/datamodel.rst:1488 +#: reference/datamodel.rst:1492 msgid "" "A string representing the sequence of :term:`bytecode` instructions in the " "function" @@ -2349,7 +2358,7 @@ msgstr "" "Μια συμβολοσειρά που αντιπροσωπεύει την ακολουθία εντολών :term:`bytecode` " "στη συνάρτηση" -#: reference/datamodel.rst:1492 +#: reference/datamodel.rst:1496 msgid "" "A :class:`tuple` containing the literals used by the :term:`bytecode` in the " "function" @@ -2357,7 +2366,7 @@ msgstr "" "Μια :class:`tuple` που περιέχει τα literals που χρησιμοποιούνται από το :" "term:`bytecode` στη συνάρτηση" -#: reference/datamodel.rst:1496 +#: reference/datamodel.rst:1500 msgid "" "A :class:`tuple` containing the names used by the :term:`bytecode` in the " "function" @@ -2365,15 +2374,15 @@ msgstr "" "Μια :class:`tuple` που περιέχει τα ονόματα που χρησιμοποιούνται από τον :" "term:`bytecode` στην συνάρτηση" -#: reference/datamodel.rst:1500 +#: reference/datamodel.rst:1504 msgid "The name of the file from which the code was compiled" msgstr "Το όνομα του αρχείου από το οποίο συντάχθηκε ο κώδικας" -#: reference/datamodel.rst:1503 +#: reference/datamodel.rst:1507 msgid "The line number of the first line of the function" msgstr "Ο αριθμός γραμμής της πρώτης γραμμής της συνάρτησης" -#: reference/datamodel.rst:1506 +#: reference/datamodel.rst:1510 msgid "" "A string encoding the mapping from :term:`bytecode` offsets to line numbers. " "For details, see the source code of the interpreter." @@ -2382,7 +2391,7 @@ msgstr "" "μετατοπίζεται σε αριθμούς γραμμών. Για λεπτομέρειες, ανατρέξτε στον πηγαίο " "κώδικα του διερμηνέα." -#: reference/datamodel.rst:1509 +#: reference/datamodel.rst:1513 msgid "" "This attribute of code objects is deprecated, and may be removed in Python " "3.15." @@ -2390,18 +2399,18 @@ msgstr "" "Αυτό το χαρακτηριστικό των αντικειμένων κώδικα έχει καταργηθεί, και μπορεί " "να αφαιρεθεί στην Python 3.15." -#: reference/datamodel.rst:1514 +#: reference/datamodel.rst:1518 msgid "The required stack size of the code object" msgstr "Το απαιτούμενο μέγεθος στοίβας του αντικειμένου κώδικα" -#: reference/datamodel.rst:1517 +#: reference/datamodel.rst:1521 msgid "" "An :class:`integer ` encoding a number of flags for the interpreter." msgstr "" "Μια :class:`integer ` που κωδικοποιεί έναν αριθμό flags για τον " "διερμηνέα." -#: reference/datamodel.rst:1522 +#: reference/datamodel.rst:1526 msgid "" "The following flag bits are defined for :attr:`~codeobject.co_flags`: bit " "``0x04`` is set if the function uses the ``*arguments`` syntax to accept an " @@ -2419,7 +2428,7 @@ msgstr "" "είναι γεννήτρια. Δείτε το :ref:`inspect-module-co-flags` για λεπτομέρειες " "σχετικά με τη σημασιολογία κάθε σημαίας που μπορεί να υπάρχει." -#: reference/datamodel.rst:1530 +#: reference/datamodel.rst:1534 msgid "" "Future feature declarations (for example, ``from __future__ import " "division``) also use bits in :attr:`~codeobject.co_flags` to indicate " @@ -2432,14 +2441,14 @@ msgstr "" "συγκεκριμένη ενεργοποιημένη δυνατότητα. Δείτε το :attr:`~__future__._Feature." "compiler_flag`." -#: reference/datamodel.rst:1534 +#: reference/datamodel.rst:1538 msgid "" "Other bits in :attr:`~codeobject.co_flags` are reserved for internal use." msgstr "" "Άλλα bits στο :attr:`~codeobject.co_flags` είναι δεσμευμένα για εσωτερική " "χρήση." -#: reference/datamodel.rst:1538 +#: reference/datamodel.rst:1542 msgid "" "If a code object represents a function and has a docstring, the :data:" "`~inspect.CO_HAS_DOCSTRING` bit is set in :attr:`~codeobject.co_flags` and " @@ -2451,11 +2460,11 @@ msgstr "" "στο :attr:`~codeobject.co_flags` και το πρώτο στοιχείο στο :attr:" "`~codeobject.co_consts` είναι η συμβολοσειρά τεκμηρίωσης της συνάρτησης." -#: reference/datamodel.rst:1544 +#: reference/datamodel.rst:1548 msgid "Methods on code objects" msgstr "Μέθοδοι σε αντικείμενα κώδικα" -#: reference/datamodel.rst:1548 +#: reference/datamodel.rst:1552 msgid "" "Returns an iterable over the source code positions of each :term:`bytecode` " "instruction in the code object." @@ -2463,7 +2472,7 @@ msgstr "" "Επιστρέφει έναν iterable πάνω από τις θέσεις του πηγαίου κώδικα κάθε " "εντολής :term:`bytecode` στο αντικείμενο κώδικα." -#: reference/datamodel.rst:1551 +#: reference/datamodel.rst:1555 msgid "" "The iterator returns :class:`tuple`\\s containing the ``(start_line, " "end_line, start_column, end_column)``. The *i-th* tuple corresponds to the " @@ -2476,7 +2485,7 @@ msgstr "" "στηλών είναι μετατοπίσεις utf-8 byte με ευρετήριο 0 στη δεδομένη γραμμή " "πηγής." -#: reference/datamodel.rst:1557 +#: reference/datamodel.rst:1561 msgid "" "This positional information can be missing. A non-exhaustive lists of cases " "where this may happen:" @@ -2484,22 +2493,22 @@ msgstr "" "Αυτές οι πληροφορίες θέσης μπορεί να λείπουν. Μια μη εξαντλητική λίστα " "περιπτώσεων όπου αυτό μπορεί να συμβεί:" -#: reference/datamodel.rst:1560 +#: reference/datamodel.rst:1564 msgid "Running the interpreter with :option:`-X` ``no_debug_ranges``." msgstr "Εκτέλεση του διερμηνέα με :option:`-X` ``no_debug_ranges``." -#: reference/datamodel.rst:1561 +#: reference/datamodel.rst:1565 msgid "" "Loading a pyc file compiled while using :option:`-X` ``no_debug_ranges``." msgstr "" "Φόρτωση ενός αρχείου pyc που έχει μεταγλωττιστεί κατά τη χρήση του :option:`-" "X` ``no_debug_ranges``." -#: reference/datamodel.rst:1562 +#: reference/datamodel.rst:1566 msgid "Position tuples corresponding to artificial instructions." msgstr "Τοποθετεί τις πλειάδες που αντιστοιχούν σε τεχνικές οδηγίες." -#: reference/datamodel.rst:1563 +#: reference/datamodel.rst:1567 msgid "" "Line and column numbers that can't be represented due to implementation " "specific limitations." @@ -2507,14 +2516,14 @@ msgstr "" "Αριθμοί γραμμών και στηλών που δεν μπορούν να αναπαρασταθούν λόγω " "περιορισμών για την υλοποίηση." -#: reference/datamodel.rst:1566 +#: reference/datamodel.rst:1570 msgid "" "When this occurs, some or all of the tuple elements can be :const:`None`." msgstr "" "Όταν συμβαίνει αυτό, ορισμένα η όλα τα πολλαπλά στοιχεία μπορεί να είναι :" "const:`None`." -#: reference/datamodel.rst:1572 +#: reference/datamodel.rst:1576 msgid "" "This feature requires storing column positions in code objects which may " "result in a small increase of disk usage of compiled Python files or " @@ -2531,7 +2540,7 @@ msgstr "" "(flag) γραμμής εντολών :option:`-X` ``no_debug_ranges`` ή η μεταβλητή " "περιβάλλοντος :envvar:`PYTHONNODEBUGRANGES`." -#: reference/datamodel.rst:1581 +#: reference/datamodel.rst:1585 msgid "" "Returns an iterator that yields information about successive ranges of :term:" "`bytecode`\\s. Each item yielded is a ``(start, end, lineno)`` :class:" @@ -2541,7 +2550,7 @@ msgstr "" "term:`bytecode`\\s. Κάθε στοιχείο που αποδίδεται είναι μια ``(start, end, " "lineno)`` :class:`tuple`:" -#: reference/datamodel.rst:1585 +#: reference/datamodel.rst:1589 msgid "" "``start`` (an :class:`int`) represents the offset (inclusive) of the start " "of the :term:`bytecode` range" @@ -2549,7 +2558,7 @@ msgstr "" "Το ``start`` (ένα :class:`int`) αναπαριστά τη μετατόπιση " "(συμπεριλαμβανομένης) της έναρξης του εύρους :term:`bytecode`" -#: reference/datamodel.rst:1587 +#: reference/datamodel.rst:1591 msgid "" "``end`` (an :class:`int`) represents the offset (exclusive) of the end of " "the :term:`bytecode` range" @@ -2557,7 +2566,7 @@ msgstr "" "Το ``end`` (ένα :class:`int`) αναπαριστά τη μετατόπιση (αποκλειστική) του " "τέλους του εύρους :term:`bytecode`" -#: reference/datamodel.rst:1589 +#: reference/datamodel.rst:1593 msgid "" "``lineno`` is an :class:`int` representing the line number of the :term:" "`bytecode` range, or ``None`` if the bytecodes in the given range have no " @@ -2567,15 +2576,15 @@ msgstr "" "εύρους :term:`bytecode` ή ``None`` εάν τα bytecodes στη δεδομένη περιοχή δεν " "έχουν αριθμό γραμμής" -#: reference/datamodel.rst:1593 +#: reference/datamodel.rst:1597 msgid "The items yielded will have the following properties:" msgstr "Τα στοιχεία που θα προκύψουν θα έχουν τις ακόλουθες ιδιότητες:" -#: reference/datamodel.rst:1595 +#: reference/datamodel.rst:1599 msgid "The first range yielded will have a ``start`` of 0." msgstr "Το πρώτο εύρος που θα προκύψει θα έχει ένα ``start`` 0." -#: reference/datamodel.rst:1596 +#: reference/datamodel.rst:1600 msgid "" "The ``(start, end)`` ranges will be non-decreasing and consecutive. That is, " "for any pair of :class:`tuple`\\s, the ``start`` of the second will be equal " @@ -2585,13 +2594,13 @@ msgstr "" "οποιοδήποτε ζεύγος :class:`tuple`\\s, το ``start`` του δεύτερου θα είναι ίσο " "με το το ``end`` του πρώτου." -#: reference/datamodel.rst:1599 +#: reference/datamodel.rst:1603 msgid "No range will be backwards: ``end >= start`` for all triples." msgstr "" "Κανένα εύρος δεν θα είναι προς τα πίσω: ``end >= start`` για όλες τις " "τριάδες." -#: reference/datamodel.rst:1600 +#: reference/datamodel.rst:1604 msgid "" "The last :class:`tuple` yielded will have ``end`` equal to the size of the :" "term:`bytecode`." @@ -2599,7 +2608,7 @@ msgstr "" "Το τελευταίο :class:`tuple` που θα αποφέρει θα έχει ``end`` ίσο με το " "μέγεθος του :term:`bytecode`." -#: reference/datamodel.rst:1603 +#: reference/datamodel.rst:1607 msgid "" "Zero-width ranges, where ``start == end``, are allowed. Zero-width ranges " "are used for lines that are present in the source code, but have been " @@ -2609,35 +2618,35 @@ msgstr "" "μηδενικού πλάτους χρησιμοποιούνται για γραμμές που υπάρχουν στον πηγαίο " "κώδικα, αλλά έχουν εξαλειφθεί από τον μεταγλωττιστή :term:`bytecode`." -#: reference/datamodel.rst:1611 +#: reference/datamodel.rst:1615 msgid ":pep:`626` - Precise line numbers for debugging and other tools." msgstr "" ":pep:`626` - Ακριβείς αριθμοί γραμμών για εντοπισμό σφαλμάτων και άλλα " "εργαλεία." -#: reference/datamodel.rst:1612 +#: reference/datamodel.rst:1616 msgid "The PEP that introduced the :meth:`!co_lines` method." msgstr "Το PEP που εισήγαγε τη μέθοδο :meth:`!co_lines`." -#: reference/datamodel.rst:1616 +#: reference/datamodel.rst:1620 msgid "" "Return a copy of the code object with new values for the specified fields." msgstr "" "Επιστρέφει ένα αντίγραφο του αντικειμένου κώδικα με νέες τιμές για τα " "καθορισμένα πεδία." -#: reference/datamodel.rst:1618 +#: reference/datamodel.rst:1622 msgid "" "Code objects are also supported by the generic function :func:`copy.replace`." msgstr "" "Τα αντικείμενα κώδικα υποστηρίζονται επίσης από τη γενική συνάρτηση :func:" "`copy.replace`." -#: reference/datamodel.rst:1626 +#: reference/datamodel.rst:1630 msgid "Frame objects" msgstr "Πλαίσιο αντικειμένων" -#: reference/datamodel.rst:1630 +#: reference/datamodel.rst:1634 msgid "" "Frame objects represent execution frames. They may occur in :ref:`traceback " "objects `, and are also passed to registered trace " @@ -2647,7 +2656,7 @@ msgstr "" "εμφανίζονται σε :ref:`traceback objects `, και επίσης " "μεταβιβάζονται σε καταχωρημένες συναρτήσεις ανίχνευσης." -#: reference/datamodel.rst:1648 +#: reference/datamodel.rst:1653 msgid "" "Points to the previous stack frame (towards the caller), or ``None`` if this " "is the bottom stack frame" @@ -2655,7 +2664,7 @@ msgstr "" "Δείχνει το προηγούμενο πλαίσιο στοίβας (προς από εκεί που καλείται), ή " "``None`` αν αυτό είναι το πλαίσιο της κάτω στοίβας" -#: reference/datamodel.rst:1652 +#: reference/datamodel.rst:1657 msgid "" "The :ref:`code object ` being executed in this frame. " "Accessing this attribute raises an :ref:`auditing event ` ``object." @@ -2666,7 +2675,7 @@ msgstr "" "`auditing event ` ``object.__getattr__`` με ορίσματα ``obj`` και " "``\"f_code\"``." -#: reference/datamodel.rst:1657 +#: reference/datamodel.rst:1662 msgid "" "The mapping used by the frame to look up :ref:`local variables `. If " "the frame refers to an :term:`optimized scope`, this may return a write-" @@ -2677,18 +2686,18 @@ msgstr "" "`optimized scope`, αυτό μπορεί να επιστρέψει ένα αντικείμενο proxy write-" "through." -#: reference/datamodel.rst:1662 +#: reference/datamodel.rst:1667 msgid "Return a proxy for optimized scopes." msgstr "Επιστρέφει ένα proxy για βελτιστοποιημένα πλαίσια." -#: reference/datamodel.rst:1666 +#: reference/datamodel.rst:1671 msgid "" "The dictionary used by the frame to look up :ref:`global variables `" msgstr "" "Το λεξικό που χρησιμοποιείται από το πλαίσιο για την αναζήτηση :ref:`global " "variables `" -#: reference/datamodel.rst:1670 +#: reference/datamodel.rst:1675 msgid "" "The dictionary used by the frame to look up :ref:`built-in (intrinsic) names " "`" @@ -2696,7 +2705,7 @@ msgstr "" "Το λεξικό που χρησιμοποιείται από το πλαίσιο για την αναζήτηση :ref:`built-" "in (intrinsic) names `" -#: reference/datamodel.rst:1674 +#: reference/datamodel.rst:1679 msgid "" "The \"precise instruction\" of the frame object (this is an index into the :" "term:`bytecode` string of the :ref:`code object `)" @@ -2705,7 +2714,15 @@ msgstr "" "συμβολοσειρά :term:`bytecode` του αντικειμένου :ref:`code object `)" -#: reference/datamodel.rst:1690 +#: reference/datamodel.rst:1684 +msgid "" +"The :term:`generator` or :term:`coroutine` object that owns this frame, or " +"``None`` if the frame is a normal function." +msgstr "" +"Το αντικείμενο :term:`generator` ή :term:`coroutine` που κατέχει αυτό το " +"πλαίσιο, ή ``None`` εάν το πλαίσιο είναι μια κανονική συνάρτηση." + +#: reference/datamodel.rst:1701 msgid "" "If not ``None``, this is a function called for various events during code " "execution (this is used by debuggers). Normally an event is triggered for " @@ -2716,7 +2733,7 @@ msgstr "" "σφαλμάτων). Κανονικά ένα συμβάν ενεργοποιείται για κάθε νέα γραμμή πηγαίου " "κώδικα (δείτε :attr:`~frame.f_trace_lines`)." -#: reference/datamodel.rst:1695 +#: reference/datamodel.rst:1706 msgid "" "Set this attribute to :const:`False` to disable triggering a tracing event " "for each source line." @@ -2724,7 +2741,7 @@ msgstr "" "Ορίστε αυτό το χαρακτηριστικό σε :const:`False` για να απενεργοποιήσετε την " "ενεργοποίηση ενός συμβάντος ανίχνευσης για κάθε γραμμή πηγαίου κώδικα." -#: reference/datamodel.rst:1699 +#: reference/datamodel.rst:1710 msgid "" "Set this attribute to :const:`True` to allow per-opcode events to be " "requested. Note that this may lead to undefined interpreter behaviour if " @@ -2735,7 +2752,7 @@ msgstr "" "συμπεριφορά διερμηνέα εάν οι εξαιρέσεις που προκύπτουν από τη συνάρτηση " "ανίχνευσης διαφεύγουν στη συνάρτηση που παρακολουθείται." -#: reference/datamodel.rst:1705 +#: reference/datamodel.rst:1716 msgid "" "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 " @@ -2748,15 +2765,15 @@ msgstr "" "Μετάβασης (γνωστή και ως Ορισμός Επόμενης Δήλωσης) γράφοντας σε αυτό το " "χαρακτηριστικό." -#: reference/datamodel.rst:1711 +#: reference/datamodel.rst:1722 msgid "Frame object methods" msgstr "Μέθοδοι αντικειμένων πλαισίου" -#: reference/datamodel.rst:1713 +#: reference/datamodel.rst:1724 msgid "Frame objects support one method:" msgstr "Τα αντικείμενα πλαισίου υποστηρίζουν μια μέθοδο:" -#: reference/datamodel.rst:1717 +#: reference/datamodel.rst:1728 msgid "" "This method clears all references to :ref:`local variables ` held by " "the frame. Also, if the frame belonged to a :term:`generator`, the " @@ -2771,14 +2788,14 @@ msgstr "" "παράδειγμα, όταν γίνεται catch μια :ref:`exception ` και " "αποθηκεύετε το :ref:`traceback ` για μετέπειτα χρήση)." -#: reference/datamodel.rst:1723 +#: reference/datamodel.rst:1734 msgid "" ":exc:`RuntimeError` is raised if the frame is currently executing or " "suspended." msgstr "" "Η :exc:`RuntimeError` γίνεται raise εάν το πλαίσιο εκτελείται ή αναστέλλεται." -#: reference/datamodel.rst:1728 +#: reference/datamodel.rst:1739 msgid "" "Attempting to clear a suspended frame raises :exc:`RuntimeError` (as has " "always been the case for executing frames)." @@ -2786,11 +2803,11 @@ msgstr "" "Η προσπάθεια εκκαθάρισης ενός ανασταλμένου πλαισίου κάνει raise :exc:" "`RuntimeError` (όπως πάντα συμβαίνει για τα εκτελούμενα πλαίσια)." -#: reference/datamodel.rst:1736 +#: reference/datamodel.rst:1747 msgid "Traceback objects" msgstr "Αντικείμενα ανίχνευσης" -#: reference/datamodel.rst:1749 +#: reference/datamodel.rst:1760 msgid "" "Traceback objects represent the stack trace of an :ref:`exception `. A traceback object is implicitly created when an exception occurs, " @@ -2801,13 +2818,13 @@ msgstr "" "όταν εμφανίζεται μια εξαίρεση και μπορεί επίσης να δημιουργηθεί ρητά " "καλώντας το :class:`types.TracebackType`." -#: reference/datamodel.rst:1754 +#: reference/datamodel.rst:1765 msgid "Traceback objects can now be explicitly instantiated from Python code." msgstr "" "Τα αντικείμενα Traceback μπορούν τώρα να δημιουργηθούν ρητά από τον κώδικα " "Python." -#: reference/datamodel.rst:1757 +#: reference/datamodel.rst:1768 msgid "" "For implicitly created tracebacks, when the search for an exception handler " "unwinds the execution stack, at each unwound level a traceback object is " @@ -2826,7 +2843,7 @@ msgstr "" "ως το χαρακτηριστικό :attr:`~BaseException.__traceback__` της εξαίρεσης που " "έχει εντοπιστεί." -#: reference/datamodel.rst:1766 +#: reference/datamodel.rst:1777 msgid "" "When the program contains no suitable handler, the stack trace is written " "(nicely formatted) to the standard error stream; if the interpreter is " @@ -2838,7 +2855,7 @@ msgstr "" "είναι διαδραστικός, διατίθεται επίσης στον χρήστη ως :data:`sys." "last_traceback`." -#: reference/datamodel.rst:1771 +#: reference/datamodel.rst:1782 msgid "" "For explicitly created tracebacks, it is up to the creator of the traceback " "to determine how the :attr:`~traceback.tb_next` attributes should be linked " @@ -2848,13 +2865,13 @@ msgstr "" "να καθορίσει πως θα πρέπει να συνδεθούν, τα χαρακτηριστικά :attr:`~traceback." "tb_next` για να σχηματίσουν ένα ίχνος πλήρους στοίβας." -#: reference/datamodel.rst:1786 +#: reference/datamodel.rst:1797 msgid "" "Points to the execution :ref:`frame ` of the current level." msgstr "" "Δείχνει την εκτέλεση :ref:`frame ` του τρέχοντος επιπέδου." -#: reference/datamodel.rst:1789 +#: reference/datamodel.rst:1800 msgid "" "Accessing this attribute raises an :ref:`auditing event ` ``object." "__getattr__`` with arguments ``obj`` and ``\"tb_frame\"``." @@ -2862,15 +2879,15 @@ msgstr "" "Η πρόσβαση σε αυτό το χαρακτηριστικό κάνει raise ένα :ref:`auditing event " "` ``object.__getattr__`` με ορίσματα ``obj`` και ``\"tb_frame\"``." -#: reference/datamodel.rst:1794 +#: reference/datamodel.rst:1805 msgid "Gives the line number where the exception occurred" msgstr "Δίνει τον αριθμό γραμμής όπου προέκυψε η εξαίρεση" -#: reference/datamodel.rst:1797 +#: reference/datamodel.rst:1808 msgid "Indicates the \"precise instruction\"." msgstr "Δηλώνει την \"ακριβή οδηγία\"." -#: reference/datamodel.rst:1799 +#: reference/datamodel.rst:1810 msgid "" "The line number and last instruction in the traceback may differ from the " "line number of its :ref:`frame object ` if the exception " @@ -2882,7 +2899,7 @@ msgstr "" "εάν η εξαίρεση εμφανίστηκε σε μια πρόταση :keyword:`try` χωρίς αντιστοίχιση " "εκτός από τον όρο ή με έναν όρο :keyword:`finally`." -#: reference/datamodel.rst:1810 +#: reference/datamodel.rst:1821 msgid "" "The special writable attribute :attr:`!tb_next` is the next level in the " "stack trace (towards the frame where the exception occurred), or ``None`` if " @@ -2892,15 +2909,15 @@ msgstr "" "στο ίχνος στοίβας (προς το πλαίσιο όπου σημειώθηκε η εξαίρεση), ή ``None`` " "εάν δεν υπάρχει επόμενο επίπεδο." -#: reference/datamodel.rst:1814 +#: reference/datamodel.rst:1825 msgid "This attribute is now writable" msgstr "Αυτό το χαρακτηριστικό είναι τώρα εγγράψιμο" -#: reference/datamodel.rst:1819 +#: reference/datamodel.rst:1830 msgid "Slice objects" msgstr "Αντικείμενα τμηματοποίησης" -#: reference/datamodel.rst:1823 +#: reference/datamodel.rst:1834 msgid "" "Slice objects are used to represent slices for :meth:`~object.__getitem__` " "methods. They are also created by the built-in :func:`slice` function." @@ -2909,7 +2926,7 @@ msgstr "" "για μεθόδους :meth:`~object.__getitem__`. Δημιουργούνται επίσης από την " "ενσωματωμένη συνάρτηση :func:`slice`." -#: reference/datamodel.rst:1832 +#: reference/datamodel.rst:1843 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; " @@ -2920,11 +2937,11 @@ msgstr "" "step` είναι το βήμα∙ κάθε ένα είναι ``None`` αν παραλειφθεί. Τα " "χαρακτηριστικά μπορούν να έχουν οποιονδήποτε τύπο." -#: reference/datamodel.rst:1836 +#: reference/datamodel.rst:1847 msgid "Slice objects support one method:" msgstr "Τα αντικείμενα slice υποστηρίζουν μια μέθοδο:" -#: reference/datamodel.rst:1840 +#: reference/datamodel.rst:1851 msgid "" "This method takes a single integer argument *length* and computes " "information about the slice that the slice object would describe if applied " @@ -2941,11 +2958,11 @@ msgstr "" "είναι εκτός ορίων αντιμετωπίζονται με τρόπο που συνάδει με τα κανονικά " "slices." -#: reference/datamodel.rst:1849 +#: reference/datamodel.rst:1860 msgid "Static method objects" msgstr "Αντικείμενα στατικών μεθόδων" -#: reference/datamodel.rst:1851 +#: reference/datamodel.rst:1862 msgid "" "Static method objects provide a way of defeating the transformation of " "function objects to method objects described above. A static method object " @@ -2966,11 +2983,11 @@ msgstr "" "μπορούν επίσης να κληθούν. Τα αντικείμενα στατικής μεθόδου δημιουργούνται " "από τον ενσωματωμένο κατασκευαστή :func:`staticmethod`." -#: reference/datamodel.rst:1861 +#: reference/datamodel.rst:1872 msgid "Class method objects" msgstr "Αντικείμενα μεθόδων κλάσεων" -#: reference/datamodel.rst:1863 +#: reference/datamodel.rst:1874 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 " @@ -2987,11 +3004,11 @@ msgstr "" "methods>`. Τα αντικείμενα της μεθόδου κλάσης δημιουργούνται από τον " "ενσωματωμένο κατασκευαστή :func:`classmethod`." -#: reference/datamodel.rst:1873 +#: reference/datamodel.rst:1884 msgid "Special method names" msgstr "Ειδικά ονόματα μεθόδων" -#: reference/datamodel.rst:1879 +#: reference/datamodel.rst:1890 msgid "" "A class can implement certain operations that are invoked by special syntax " "(such as arithmetic operations or subscripting and slicing) by defining " @@ -3016,7 +3033,7 @@ msgstr "" "ορίζεται κατάλληλη μέθοδος (συνήθως :exc:`AttributeError` ή :exc:" "`TypeError`)." -#: reference/datamodel.rst:1890 +#: reference/datamodel.rst:1901 msgid "" "Setting a special method to ``None`` indicates that the corresponding " "operation is not available. For example, if a class sets :meth:`~object." @@ -3030,28 +3047,28 @@ msgstr "" "κλήση :func:`iter` στα στιγμιότυπα της θα κάνει raise μια :exc:`TypeError` " "(χωρίς να επιστρέψουμε στο :meth:`~object.__getitem__`). [#]_" -#: reference/datamodel.rst:1896 +#: reference/datamodel.rst:1907 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.)" +"retrieval of individual elements, but extracting a slice may not make sense. " +"(One example of this is the :ref:`NodeList ` interface " +"in the W3C's Document Object Model.)" msgstr "" "Κατά την υλοποίηση μιας κλάσης που προσομοιώνει οποιονδήποτε ενσωματωμένο " "τύπο, είναι σημαντικό η εξομοίωση να υλοποιείται μόνο στο βαθμό που έχει " "νόημα για το αντικείμενο που μοντελοποιείται. Για παράδειγμα, ορισμένες " "ακολουθίες μπορεί να λειτουργούν καλά με την ανάκτηση μεμονωμένων στοιχείων, " "αλλά η εξαγωγή ενός τμήματος μπορεί να μην έχει νόημα. (Ένα παράδειγμα " -"αυτού είναι η διεπαφή :class:`~xml.dom.NodeList` στο Μοντέλο Αντικειμένου " -"Εγγράφου του W3C.)" +"αυτού είναι η διεπαφή :ref:`NodeList ` στο Μοντέλο " +"Αντικειμένου Εγγράφου του W3C.)" -#: reference/datamodel.rst:1907 +#: reference/datamodel.rst:1918 msgid "Basic customization" msgstr "Βασική προσαρμογή" -#: reference/datamodel.rst:1913 +#: reference/datamodel.rst:1924 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 " @@ -3068,7 +3085,7 @@ msgstr "" "κλάση). Η επιστρεφόμενη τιμή του :meth:`__new__` θα πρέπει να είναι το νέο " "στιγμιότυπο αντικειμένου (συνήθως ένα στιγμιότυπο του *cls*)." -#: reference/datamodel.rst:1920 +#: reference/datamodel.rst:1931 msgid "" "Typical implementations create a new instance of the class by invoking the " "superclass's :meth:`__new__` method using ``super().__new__(cls[, ...])`` " @@ -3080,7 +3097,7 @@ msgstr "" "__new__(cls[, ...])`` με κατάλληλα ορίσματα και στη συνέχεια τροποποιώντας " "τη νεο-δημιουργηθείσα παρουσία όπως απαιτείται πριν την επιστρέψει." -#: reference/datamodel.rst:1925 +#: reference/datamodel.rst:1936 msgid "" "If :meth:`__new__` is invoked during object construction and it returns an " "instance of *cls*, then the new instance’s :meth:`__init__` method will be " @@ -3094,7 +3111,7 @@ msgstr "" "είναι το νέο στιγμιότυπο και τα υπόλοιπα ορίσματα είναι τα ίδια με αυτά που " "διαβιβάστηκαν στον κατασκευαστή του αντικειμένου." -#: reference/datamodel.rst:1930 +#: reference/datamodel.rst:1941 msgid "" "If :meth:`__new__` does not return an instance of *cls*, then the new " "instance's :meth:`__init__` method will not be invoked." @@ -3102,7 +3119,7 @@ msgstr "" "Εάν το :meth:`__new__` δεν επιστρέφει ένα στιγμιότυπο του *cls*, τότε η " "μέθοδος :meth:`__init__` του νέου στιγμιοτύπου δεν θα κληθεί." -#: reference/datamodel.rst:1933 +#: reference/datamodel.rst:1944 msgid "" ":meth:`__new__` is intended mainly to allow subclasses of immutable types " "(like int, str, or tuple) to customize instance creation. It is also " @@ -3114,7 +3131,7 @@ msgstr "" "στιγμιοτύπων. Επίσης συνήθως παρακάμπτεται σε προσαρμοσμένες μετακλάσεις " "προκειμένου να προσαρμόσουν τη δημιουργία κλάσεων." -#: reference/datamodel.rst:1942 +#: reference/datamodel.rst:1953 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 " @@ -3131,7 +3148,7 @@ msgstr "" "προετοιμασία του τμήματος της βασικής κλάσης του στιγμιοτύπου∙ για " "παράδειγμα: ``super().__init__([args...])``." -#: reference/datamodel.rst:1949 +#: reference/datamodel.rst:1960 msgid "" "Because :meth:`__new__` and :meth:`__init__` work together in constructing " "objects (:meth:`__new__` to create it, and :meth:`__init__` to customize " @@ -3144,7 +3161,7 @@ msgstr "" "μη-``None`` από το :meth:`__init__` ∙ αν το κάνετε αυτό, θα εμφανιστεί ένα :" "exc:`TypeError` κατά το χρόνο εκτέλεσης." -#: reference/datamodel.rst:1962 +#: reference/datamodel.rst:1973 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:" @@ -3158,7 +3175,7 @@ msgstr "" "πρέπει να την καλέσει ρητά για να διασφαλιστεί η σωστή διαγραφή του τμήματος " "της βασικής κλάσης του στιγμιοτύπου." -#: reference/datamodel.rst:1968 +#: reference/datamodel.rst:1979 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. " @@ -3174,7 +3191,7 @@ msgstr "" "αντικείμενο πρόκειται να καταστραφεί εξαρτάται από την υλοποίηση∙ η τρέχουσα " "υλοποίηση του :term:`CPython` την καλεί μόνο μία φορά." -#: reference/datamodel.rst:1975 +#: reference/datamodel.rst:1986 msgid "" "It is not guaranteed that :meth:`__del__` methods are called for objects " "that still exist when the interpreter exits. :class:`weakref.finalize` " @@ -3186,7 +3203,7 @@ msgstr "" "finalize` παρέχει έναν απλό τρόπο για την καταχώριση μιας συνάρτησης " "καθαρισμού που θα καλείται όταν ένα αντικείμενο συλλέγεται από τα σκουπίδια." -#: reference/datamodel.rst:1982 +#: reference/datamodel.rst:1993 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 " @@ -3196,7 +3213,7 @@ msgstr "" "πλήθος αναφοράς για το ``x`` κατά ένα και το δεύτερο καλείται μόνο όταν το " "πλήθος αναφοράς του ``x`` φτάσει στο μηδέν." -#: reference/datamodel.rst:1987 +#: reference/datamodel.rst:1998 msgid "" "It is possible for a reference cycle to prevent the reference count of an " "object from going to zero. In this case, the cycle will be later detected " @@ -3214,11 +3231,11 @@ msgstr "" "εξαίρεση, η οποία αναφέρεται στο δικό του traceback, το οποίο αναφέρεται " "στους τοπικούς αριθμούς όλων των καρέ που έχουν εντοπιστεί στο traceback." -#: reference/datamodel.rst:1997 +#: reference/datamodel.rst:2008 msgid "Documentation for the :mod:`gc` module." msgstr "Τεκμηρίωση για το module :mod:`gc`." -#: reference/datamodel.rst:2001 +#: reference/datamodel.rst:2012 msgid "" "Due to the precarious circumstances under which :meth:`__del__` methods are " "invoked, exceptions that occur during their execution are ignored, and a " @@ -3228,7 +3245,7 @@ msgstr "" "`__del__`, οι εξαιρέσεις που προκύπτουν κατά την εκτέλεση τους αγνοούνται " "και αντ' αυτού εκτυπώνεται μια προειδοποίηση στο ``sys.stderr``. Ειδικότερα:" -#: reference/datamodel.rst:2005 +#: reference/datamodel.rst:2016 msgid "" ":meth:`__del__` can be invoked when arbitrary code is being executed, " "including from any arbitrary thread. If :meth:`__del__` needs to take a " @@ -3242,7 +3259,7 @@ msgstr "" "μπορεί να είναι αδιέξοδο καθώς ο πόρος μπορεί να έχει ήδη ληφθεί από τον " "κώδικα που διακόπτεται για να εκτελεστεί :meth:`__del__`." -#: reference/datamodel.rst:2011 +#: reference/datamodel.rst:2022 msgid "" ":meth:`__del__` can be executed during interpreter shutdown. As a " "consequence, the global variables it needs to access (including other " @@ -3262,7 +3279,7 @@ msgstr "" "εισαγόμενα modules εξακολουθούν να είναι διαθέσιμες τη στιγμή που καλείται η " "μέθοδος :meth:`__del__`." -#: reference/datamodel.rst:2026 +#: reference/datamodel.rst:2037 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 " @@ -3284,7 +3301,7 @@ msgstr "" "`__str__`, τότε η :meth:`__repr__` χρησιμοποιείται επίσης όταν απαιτείται " "μια \"ανεπίσημη\" αναπαράσταση συμβολοσειράς στιγμιοτύπων αυτής της κλάσης." -#: reference/datamodel.rst:2035 +#: reference/datamodel.rst:2046 msgid "" "This is typically used for debugging, so it is important that the " "representation is information-rich and unambiguous. A default implementation " @@ -3294,7 +3311,7 @@ msgstr "" "σημαντικό η αναπαράσταση να είναι πλούσια σε πληροφορίες και ξεκάθαρη. Μια " "προεπιλεγμένη υλοποίηση παρέχεται από την ίδια την κλάση :class:`object`." -#: reference/datamodel.rst:2047 +#: reference/datamodel.rst:2058 msgid "" "Called by :func:`str(object) `, the default :meth:`__format__` " "implementation, and the built-in function :func:`print`, to compute the " @@ -3306,7 +3323,7 @@ msgstr "" "ωραίας εκτύπωσης συμβολοσειράς ενός αντικειμένου. Η τιμή που επιστρέφεται " "πρέπει να είναι ένα αντικείμενο :ref:`string `." -#: reference/datamodel.rst:2052 +#: reference/datamodel.rst:2063 msgid "" "This method differs from :meth:`object.__repr__` in that there is no " "expectation that :meth:`__str__` return a valid Python expression: a more " @@ -3316,7 +3333,7 @@ msgstr "" "καμία προσδοκία ότι η :meth:`__str__` θα επιστρέψει μια έγκυρη έκφραση " "Python: μπορεί να χρησιμοποιηθεί μια πιο βολική ή συνοπτική αναπαράσταση." -#: reference/datamodel.rst:2056 +#: reference/datamodel.rst:2067 msgid "" "The default implementation defined by the built-in type :class:`object` " "calls :meth:`object.__repr__`." @@ -3324,7 +3341,7 @@ msgstr "" "Η προεπιλεγμένη υλοποίηση που ορίζεται από τον ενσωματωμένο τύπο :class:" "`object` καλεί την :meth:`object.__repr__`." -#: reference/datamodel.rst:2066 +#: reference/datamodel.rst:2077 msgid "" "Called by :ref:`bytes ` to compute a byte-string representation " "of an object. This should return a :class:`bytes` object. The :class:" @@ -3335,7 +3352,7 @@ msgstr "" "class:`bytes` αντικείμενο. Η ίδια κλάση :class:`object` δεν παρέχει αυτήν τη " "μέθοδο." -#: reference/datamodel.rst:2078 +#: reference/datamodel.rst:2089 msgid "" "Called by the :func:`format` built-in function, and by extension, evaluation " "of :ref:`formatted string literals ` and the :meth:`str.format` " @@ -3356,18 +3373,18 @@ msgstr "" "αναθέσουν τη μορφοποίηση σε έναν από τους ενσωματωμένους τύπους είτε θα " "χρησιμοποιήσουν παρόμοια σύνταξη επιλογής μορφοποίησης." -#: reference/datamodel.rst:2088 +#: reference/datamodel.rst:2099 msgid "" "See :ref:`formatspec` for a description of the standard formatting syntax." msgstr "" "Δείτε το :ref:`formatspec` για μια περιγραφή της τυπικής σύνταξης " "μορφοποίησης." -#: reference/datamodel.rst:2090 +#: reference/datamodel.rst:2101 msgid "The return value must be a string object." msgstr "Η τιμή επιστροφής πρέπει να είναι αντικείμενο συμβολοσειράς." -#: reference/datamodel.rst:2092 +#: reference/datamodel.rst:2103 msgid "" "The default implementation by the :class:`object` class should be given an " "empty *format_spec* string. It delegates to :meth:`__str__`." @@ -3375,7 +3392,7 @@ msgstr "" "Η προεπιλεγμένη υλοποίηση από την κλάση :class:`object` θα πρέπει να λάβει " "μια κενή συμβολοσειρά *format_spec*. Αναθέτει την εντολή σε :meth:`__str__`." -#: reference/datamodel.rst:2095 +#: reference/datamodel.rst:2106 msgid "" "The __format__ method of ``object`` itself raises a :exc:`TypeError` if " "passed any non-empty string." @@ -3383,7 +3400,7 @@ msgstr "" "Η ίδια μέθοδος __format__ του ``object`` κάνει raise μια :exc:`TypeError` " "εάν περάσει οποιαδήποτε μη κενή συμβολοσειρά." -#: reference/datamodel.rst:2099 +#: reference/datamodel.rst:2110 msgid "" "``object.__format__(x, '')`` is now equivalent to ``str(x)`` rather than " "``format(str(x), '')``." @@ -3391,7 +3408,7 @@ msgstr "" "Το ``object.__format__(x, '')`` είναι πλέον ισοδύναμο με το ``str(x)`` αντί " "για το ``format(str(x), '')``." -#: reference/datamodel.rst:2115 +#: reference/datamodel.rst:2126 msgid "" "These are the so-called \"rich comparison\" methods. The correspondence " "between operator symbols and method names is as follows: ``xy`` " "καλεί ``x.__gt__(y)``, και ``x>=y`` καλεί ``x.__ge__(y)``." -#: reference/datamodel.rst:2121 +#: reference/datamodel.rst:2132 msgid "" "A rich comparison method may return the singleton :data:`NotImplemented` if " "it does not implement the operation for a given pair of arguments. By " @@ -3424,7 +3441,7 @@ msgstr "" "``if``), η Python θα καλέσει τη συνάρτηση :func:`bool` στην τιμή για να " "προσδιορίσει εάν το αποτέλεσμα είναι αληθές ή ψευδές." -#: reference/datamodel.rst:2128 +#: reference/datamodel.rst:2139 msgid "" "By default, ``object`` implements :meth:`__eq__` by using ``is``, returning :" "data:`NotImplemented` in the case of a false comparison: ``True if x is y " @@ -3445,7 +3462,7 @@ msgstr "" "δημιουργήσετε αυτόματα λειτουργίες ταξινόμησης από μία μόνο ριζική " "λειτουργία, ανατρέξτε στο :func:`functools.total_ordering`." -#: reference/datamodel.rst:2137 +#: reference/datamodel.rst:2148 msgid "" "By default, the :class:`object` class provides implementations consistent " "with :ref:`expressions-value-comparisons`: equality compares according to " @@ -3460,7 +3477,7 @@ msgstr "" "αποτελέσματα απευθείας, αλλά μπορεί επίσης να επιστρέψει την τιμή :data:" "`NotImplemented`." -#: reference/datamodel.rst:2143 +#: reference/datamodel.rst:2154 msgid "" "See the paragraph on :meth:`__hash__` for some important notes on creating :" "term:`hashable` objects which support custom comparison operations and are " @@ -3471,7 +3488,7 @@ msgstr "" "υποστηρίζουν προσαρμοσμένες λειτουργίες σύγκρισης και μπορούν να " "χρησιμοποιηθούν ως κλειδιά λεξικού." -#: reference/datamodel.rst:2147 +#: reference/datamodel.rst:2158 msgid "" "There are no swapped-argument versions of these methods (to be used when the " "left argument does not support the operation but the right argument does); " @@ -3494,7 +3511,7 @@ msgstr "" "έχει προτεραιότητα, διαφορετικά η μέθοδος του αριστερού τελεστέου έχει " "προτεραιότητα. Η εικονική υποκλάση δεν λαμβάνεται υπόψη." -#: reference/datamodel.rst:2158 +#: reference/datamodel.rst:2169 msgid "" "When no appropriate method returns any value other than :data:" "`NotImplemented`, the ``==`` and ``!=`` operators will fall back to ``is`` " @@ -3504,7 +3521,7 @@ msgstr "" "`NotImplemented`, οι τελεστές ``==`` και ``!=`` θα επιστρέψουν στις τιμές " "``is`` και ``is not``, αντίστοιχα." -#: reference/datamodel.rst:2167 +#: reference/datamodel.rst:2178 msgid "" "Called by built-in function :func:`hash` and for operations on members of " "hashed collections including :class:`set`, :class:`frozenset`, and :class:" @@ -3524,7 +3541,7 @@ msgstr "" "συσκευάζοντας τα σε μια πλειάδα και κατακερματίζοντας την πλειάδα. " "Παράδειγμα::" -#: reference/datamodel.rst:2175 +#: reference/datamodel.rst:2186 msgid "" "def __hash__(self):\n" " return hash((self.name, self.nick, self.color))" @@ -3532,7 +3549,7 @@ msgstr "" "def __hash__(self):\n" " return hash((self.name, self.nick, self.color))" -#: reference/datamodel.rst:2180 +#: reference/datamodel.rst:2191 msgid "" ":func:`hash` truncates the value returned from an object's custom :meth:" "`__hash__` method to the size of a :c:type:`Py_ssize_t`. This is typically " @@ -3549,7 +3566,7 @@ msgstr "" "υποστηριζόμενες εκδόσεις. Ένας εύκολος τρόπος για να το κάνετε αυτό είναι " "με την ``python -c \"import sys; print(sys.hash_info.width)\"``." -#: reference/datamodel.rst:2188 +#: reference/datamodel.rst:2199 msgid "" "If a class does not define an :meth:`__eq__` method it should not define a :" "meth:`__hash__` operation either; if it defines :meth:`__eq__` but not :meth:" @@ -3570,7 +3587,7 @@ msgstr "" "αμετάβλητη (εάν η τιμή hash του αντικειμένου αλλάξει, θα βρίσκεται σε λάθος " "κάδο hash)." -#: reference/datamodel.rst:2197 +#: reference/datamodel.rst:2208 msgid "" "User-defined classes have :meth:`__eq__` and :meth:`__hash__` methods by " "default (inherited from the :class:`object` class); with them, all objects " @@ -3585,7 +3602,7 @@ msgstr "" "τιμή έτσι ώστε το ``x == y`` να υπονοεί ότι το ``x is y`` και ``hash(x) == " "hash(y)``." -#: reference/datamodel.rst:2202 +#: reference/datamodel.rst:2213 msgid "" "A class that overrides :meth:`__eq__` and does not define :meth:`__hash__` " "will have its :meth:`__hash__` implicitly set to ``None``. When the :meth:" @@ -3602,7 +3619,7 @@ msgstr "" "επίσης σωστά ως μη κατακερματιζόμενες κατά τον έλεγχο του ``isinstance(obj, " "collections.abc.Hashable)``." -#: reference/datamodel.rst:2209 +#: reference/datamodel.rst:2220 msgid "" "If a class that overrides :meth:`__eq__` needs to retain the implementation " "of :meth:`__hash__` from a parent class, the interpreter must be told this " @@ -3613,7 +3630,7 @@ msgstr "" "να ενημερωθεί ρητά για αυτό ορίζονται την ``__hash__ = ." "__hash__``." -#: reference/datamodel.rst:2213 +#: reference/datamodel.rst:2224 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 " @@ -3628,7 +3645,7 @@ msgstr "" "μια κλάση που μπορεί να κατακερματιστεί από μια κλήση ``isinstance(obj, " "collections.abc.Hashable)``." -#: reference/datamodel.rst:2222 +#: reference/datamodel.rst:2233 msgid "" "By default, the :meth:`__hash__` values of str and bytes objects are " "\"salted\" with an unpredictable random value. Although they remain " @@ -3640,7 +3657,7 @@ msgstr "" "σταθερές μέσα σε μια μεμονωμένη διεργασία Python, δεν είναι προβλέψιμες " "μεταξύ επαναλαμβανόμενων κλήσεων της Python." -#: reference/datamodel.rst:2227 +#: reference/datamodel.rst:2238 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 " @@ -3653,7 +3670,7 @@ msgstr "" "`2`). Δείτε http://ocert.org/advisories/ocert-2011-003.html για " "λεπτομέρειες." -#: reference/datamodel.rst:2232 +#: reference/datamodel.rst:2243 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 " @@ -3663,15 +3680,15 @@ msgstr "" "συνόλων. Η Python δεν έχει δώσει ποτέ εγγυήσεις σχετικά με αυτήν τη σειρά " "(και συνήθως ποικίλει μεταξύ εκδόσεων 32-bit και 64-bit)." -#: reference/datamodel.rst:2236 +#: reference/datamodel.rst:2247 msgid "See also :envvar:`PYTHONHASHSEED`." msgstr "Δείτε επίσης :envvar:`PYTHONHASHSEED`." -#: reference/datamodel.rst:2238 +#: reference/datamodel.rst:2249 msgid "Hash randomization is enabled by default." msgstr "Η τυχαιοποίηση κατακερματισμού είναι ενεργοποιημένη από προεπιλογή." -#: reference/datamodel.rst:2246 +#: reference/datamodel.rst:2257 msgid "" "Called to implement truth value testing and the built-in operation " "``bool()``; should return ``False`` or ``True``. When this method is not " @@ -3688,11 +3705,11 @@ msgstr "" "meth:`!__bool__`, (κάτι που ισχύει για την ίδια την κλάση :class:`object`), " "όλα τα στιγμιότυπα της θεωρούνται αληθείς." -#: reference/datamodel.rst:2257 +#: reference/datamodel.rst:2268 msgid "Customizing attribute access" msgstr "Προσαρμογή πρόσβασης χαρακτηριστικών" -#: reference/datamodel.rst:2259 +#: reference/datamodel.rst:2270 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 " @@ -3702,7 +3719,7 @@ msgstr "" "πρόσβασης χαρακτηριστικών (χρήση, ανάθεση ή διαγραφή του ``x.name``) για " "στιγμιότυπα κλάσης." -#: reference/datamodel.rst:2267 +#: reference/datamodel.rst:2278 msgid "" "Called when the default attribute access fails with an :exc:`AttributeError` " "(either :meth:`__getattribute__` raises an :exc:`AttributeError` because " @@ -3721,7 +3738,7 @@ msgstr "" "να κάνει raise μια εξαίρεση :exc:`AttributeError`. Η ίδια η κλάση :class:" "`object` δεν παρέχει αυτήν τη μέθοδο." -#: reference/datamodel.rst:2275 +#: reference/datamodel.rst:2286 msgid "" "Note that if the attribute is found through the normal mechanism, :meth:" "`__getattr__` is not called. (This is an intentional asymmetry between :" @@ -3744,7 +3761,7 @@ msgstr "" "αντικείμενο). Δείτε την παρακάτω μέθοδο :meth:`__getattribute__` για έναν " "τρόπο να έχετε πραγματικά πλήρη έλεγχο της πρόσβασης σε χαρακτηριστικά." -#: reference/datamodel.rst:2288 +#: reference/datamodel.rst:2299 msgid "" "Called unconditionally to implement attribute accesses for instances of the " "class. If the class also defines :meth:`__getattr__`, the latter will not be " @@ -3766,7 +3783,7 @@ msgstr "" "οποιαδήποτε ιδιότητα χρειάζεται, για παράδειγμα ``object." "__getattribute__(self, name)``." -#: reference/datamodel.rst:2299 +#: reference/datamodel.rst:2310 msgid "" "This method may still be bypassed when looking up special methods as the " "result of implicit invocation via language syntax or :ref:`built-in " @@ -3776,7 +3793,7 @@ msgstr "" "μεθόδων ως αποτέλεσμα σιωπηρής επίκλησης μέσω σύνταξης γλώσσας ή :ref:`built-" "in functions `. Βλ. :ref:`special-lookup`." -#: reference/datamodel.rst:2306 +#: reference/datamodel.rst:2317 msgid "" "For certain sensitive attribute accesses, raises an :ref:`auditing event " "` ``object.__getattr__`` with arguments ``obj`` and ``name``." @@ -3785,7 +3802,7 @@ msgstr "" "`auditing event ` ``object.__getattr__`` με ορίσματα ``obj`` και " "``name``." -#: reference/datamodel.rst:2313 +#: reference/datamodel.rst:2324 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). " @@ -3796,7 +3813,7 @@ msgstr "" "στιγμιοτύπου). Το *name* είναι το όνομα του χαρακτηριστικού, *value* είναι η " "τιμή που θα του εκχωρηθεί." -#: reference/datamodel.rst:2317 +#: reference/datamodel.rst:2328 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." @@ -3806,7 +3823,7 @@ msgstr "" "στιγμιοτύπου, θα πρέπει να καλέσει τη μέθοδο της βασικής κλάσης με το ίδιο " "όνομα, για παράδειγμα, ``object.__setattr__(self, name, value)``." -#: reference/datamodel.rst:2323 +#: reference/datamodel.rst:2334 msgid "" "For certain sensitive attribute assignments, raises an :ref:`auditing event " "` ``object.__setattr__`` with arguments ``obj``, ``name``, " @@ -3816,7 +3833,7 @@ msgstr "" "`auditing event ` ``object.__setattr__`` με ορίσματα ``obj``, " "``name``, ``value``." -#: reference/datamodel.rst:2330 +#: reference/datamodel.rst:2341 msgid "" "Like :meth:`__setattr__` but for attribute deletion instead of assignment. " "This should only be implemented if ``del obj.name`` is meaningful for the " @@ -3826,7 +3843,7 @@ msgstr "" "ανάθεση. Αυτό θα πρέπει να εφαρμοστεί μόνο εάν το ``del obj.name`` έχει " "νόημα για το αντικείμενο." -#: reference/datamodel.rst:2335 +#: reference/datamodel.rst:2346 msgid "" "For certain sensitive attribute deletions, raises an :ref:`auditing event " "` ``object.__delattr__`` with arguments ``obj`` and ``name``." @@ -3835,7 +3852,7 @@ msgstr "" "`auditing event ` ``object.__delattr__`` με ορίσματα ``obj`` και " "``name``." -#: reference/datamodel.rst:2342 +#: reference/datamodel.rst:2353 msgid "" "Called when :func:`dir` is called on the object. An iterable must be " "returned. :func:`dir` converts the returned iterable to a list and sorts it." @@ -3844,11 +3861,11 @@ msgstr "" "ένα iterable. Η :func:`dir` μετατρέπει το iterable που επιστρέφεται σε λίστα " "και τον ταξινομεί." -#: reference/datamodel.rst:2347 +#: reference/datamodel.rst:2358 msgid "Customizing module attribute access" msgstr "Προσαρμογή πρόσβασης χαρακτηριστικών module" -#: reference/datamodel.rst:2354 +#: reference/datamodel.rst:2368 msgid "" "Special names ``__getattr__`` and ``__dir__`` can be also used to customize " "access to module attributes. The ``__getattr__`` function at the module " @@ -3870,7 +3887,7 @@ msgstr "" "module πριν γίνει raise η εξαίρεση :exc:`AttributeError`. Αν βρεθεί, " "καλείται με το όνομα της ιδιότητας και το αποτέλεσμα επιστρέφεται." -#: reference/datamodel.rst:2363 +#: reference/datamodel.rst:2377 msgid "" "The ``__dir__`` function should accept no arguments, and return an iterable " "of strings that represents the names accessible on module. If present, this " @@ -3881,7 +3898,7 @@ msgstr "" "προσβάσιμα στο module. Εάν υπάρχει, αυτή η συνάρτηση παρακάμπτει την τυπική " "αναζήτηση :func:`dir` σε ένα module." -#: reference/datamodel.rst:2367 +#: reference/datamodel.rst:2383 msgid "" "For a more fine grained customization of the module behavior (setting " "attributes, properties, etc.), one can set the ``__class__`` attribute of a " @@ -3892,7 +3909,7 @@ msgstr "" "``__class__`` ενός αντικειμένου module σε μια υποκλάση :class:`types." "ModuleType`. Για παράδειγμα::" -#: reference/datamodel.rst:2371 +#: reference/datamodel.rst:2387 msgid "" "import sys\n" "from types import ModuleType\n" @@ -3920,7 +3937,7 @@ msgstr "" "\n" "sys.modules[__name__].__class__ = VerboseModule" -#: reference/datamodel.rst:2385 +#: reference/datamodel.rst:2401 msgid "" "Defining module ``__getattr__`` and setting module ``__class__`` only affect " "lookups made using the attribute access syntax -- directly accessing the " @@ -3933,27 +3950,27 @@ msgstr "" "του module (είτε μέσω κώδικας εντός του module, είτε μέσω αναφοράς στο " "λεξικό καθολικών του module) δεν επηρεάζεται." -#: reference/datamodel.rst:2390 +#: reference/datamodel.rst:2406 msgid "``__class__`` module attribute is now writable." msgstr "Το χαρακτηριστικό ``__class__`` του module είναι πλέον εγγράψιμο." -#: reference/datamodel.rst:2393 +#: reference/datamodel.rst:2409 msgid "``__getattr__`` and ``__dir__`` module attributes." msgstr "Τα χαρακτηριστικά ``__getattr__`` και ``__dir__`` του module." -#: reference/datamodel.rst:2398 +#: reference/datamodel.rst:2414 msgid ":pep:`562` - Module __getattr__ and __dir__" msgstr ":pep:`562` - Module __getattr__ and __dir__" -#: reference/datamodel.rst:2399 +#: reference/datamodel.rst:2415 msgid "Describes the ``__getattr__`` and ``__dir__`` functions on modules." msgstr "Περιγράφει τις συναρτήσεις ``__getattr__`` και ``__dir__`` σε modules." -#: reference/datamodel.rst:2405 +#: reference/datamodel.rst:2421 msgid "Implementing Descriptors" msgstr "Υλοποίηση Περιγραφέων" -#: reference/datamodel.rst:2407 +#: reference/datamodel.rst:2423 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 " @@ -3972,7 +3989,7 @@ msgstr "" "`~object.__dict__` της ιδιοκτήτριας κλάσης. Η ίδια η κλάση :class:`object` " "δεν υλοποιεί κανένα από αυτά τα πρωτόκολλα." -#: reference/datamodel.rst:2417 +#: reference/datamodel.rst:2433 msgid "" "Called to get the attribute of the owner class (class attribute access) or " "of an instance of that class (instance attribute access). The optional " @@ -3987,7 +4004,7 @@ msgstr "" "έγινε πρόσβαση στο χαρακτηριστικό, ή ``None`` όταν η πρόσβαση στο " "χαρακτηριστικό έγινε μέσω της *owner*." -#: reference/datamodel.rst:2423 +#: reference/datamodel.rst:2439 msgid "" "This method should return the computed attribute value or raise an :exc:" "`AttributeError` exception." @@ -3995,7 +4012,7 @@ msgstr "" "Αυτή η μέθοδος πρέπει να επιστρέφει την υπολογισμένη τιμή του " "χαρακτηριστικού ή να κάνει raise μια :exc:`AttributeError` εξαίρεση." -#: reference/datamodel.rst:2426 +#: reference/datamodel.rst:2442 msgid "" ":PEP:`252` specifies that :meth:`__get__` is callable with one or two " "arguments. Python's own built-in descriptors support this specification; " @@ -4011,7 +4028,7 @@ msgstr "" "Python για τη μέθοδο :meth:`__getattribute__` περνάει πάντα και τα δύο " "ορίσματα, είτε είναι απαραίτητα είτε όχι." -#: reference/datamodel.rst:2435 +#: reference/datamodel.rst:2451 msgid "" "Called to set the attribute on an instance *instance* of the owner class to " "a new value, *value*." @@ -4019,7 +4036,7 @@ msgstr "" "Καλείται για να οριστεί το χαρακτηριστικό σε ένα στιγμιότυπο *instance* της " "ιδιοκτήτρια κλάσης σε μια νέα τιμή, *value*." -#: reference/datamodel.rst:2438 +#: reference/datamodel.rst:2454 msgid "" "Note, adding :meth:`__set__` or :meth:`__delete__` changes the kind of " "descriptor to a \"data descriptor\". See :ref:`descriptor-invocation` for " @@ -4029,14 +4046,14 @@ msgstr "" "είδος του περιγραφέα σε έναν \"περιγραφέα δεδομένων\". Δείτε το :ref:" "`descriptor-invocation` για περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:2444 +#: reference/datamodel.rst:2460 msgid "" "Called to delete the attribute on an instance *instance* of the owner class." msgstr "" "Καλείται για να διαγραφεί το χαρακτηριστικό σε ένα στιγμιότυπο *instance* " "της ιδιοκτήτρια κλάσης." -#: reference/datamodel.rst:2446 +#: reference/datamodel.rst:2462 msgid "" "Instances of descriptors may also have the :attr:`!__objclass__` attribute " "present:" @@ -4044,7 +4061,7 @@ msgstr "" "Τα στιγμιότυπα περιγραφέων μπορείς επίσης να έχουν διαθέσιμο το " "χαρακτηριστικό :attr:`!__objclass__`:" -#: reference/datamodel.rst:2451 +#: reference/datamodel.rst:2467 msgid "" "The attribute :attr:`!__objclass__` is interpreted by the :mod:`inspect` " "module as specifying the class where this object was defined (setting this " @@ -4063,11 +4080,11 @@ msgstr "" "παράδειγμα, η CPython θέτει αυτήν την ιδιότητα για μη δεσμευμένες μεθόδους " "που έχουν υλοποιηθεί σε C)." -#: reference/datamodel.rst:2462 +#: reference/datamodel.rst:2478 msgid "Invoking Descriptors" msgstr "Κλήση Descriptors" -#: reference/datamodel.rst:2464 +#: reference/datamodel.rst:2480 msgid "" "In general, a descriptor is an object attribute with \"binding behavior\", " "one whose attribute access has been overridden by methods in the descriptor " @@ -4082,7 +4099,7 @@ msgstr "" "οποιαδήποτε από αυτές τις μεθόδους έχει οριστεί για ένα αντικείμενο, τότε το " "αντικείμενο αυτό θεωρείται descriptor." -#: reference/datamodel.rst:2470 +#: reference/datamodel.rst:2486 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 " @@ -4096,7 +4113,7 @@ msgstr "" "συνεχίζει στις βασικές κατηγορίες του ``type(a)`` εξαιρουμένων των " "μετακλάσεων." -#: reference/datamodel.rst:2475 +#: reference/datamodel.rst:2491 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 " @@ -4109,7 +4126,7 @@ msgstr "" "στην αλυσίδα προτεραιότητας εξαρτάται από το ποιες μέθοδοι περιγραφής " "ορίστηκαν και πώς ονομάστηκαν." -#: reference/datamodel.rst:2480 +#: reference/datamodel.rst:2496 msgid "" "The starting point for descriptor invocation is a binding, ``a.x``. How the " "arguments are assembled depends on ``a``:" @@ -4117,11 +4134,11 @@ msgstr "" "Το σημείο εκκίνηση για την επίκληση του περιγραφέα είναι ένα δεσμευτικό, ``a." "x``. Ο τρόπος συναρμολόγησης των ορισμάτων εξαρτάται από το ``a``:" -#: reference/datamodel.rst:2483 +#: reference/datamodel.rst:2499 msgid "Direct Call" msgstr "Απευθείας Κλήση" -#: reference/datamodel.rst:2484 +#: reference/datamodel.rst:2500 msgid "" "The simplest and least common call is when user code directly invokes a " "descriptor method: ``x.__get__(a)``." @@ -4129,11 +4146,11 @@ msgstr "" "Η απλούστερη και λιγότερο συνηθισμένη κλήση είναι όταν ο κωδικός χρήστη " "καλεί απευθείας μια μέθοδο περιγραφής: ``x.__get__(a)``." -#: reference/datamodel.rst:2487 +#: reference/datamodel.rst:2503 msgid "Instance Binding" msgstr "Δέσμευση Στιγμιοτύπου" -#: reference/datamodel.rst:2488 +#: reference/datamodel.rst:2504 msgid "" "If binding to an object instance, ``a.x`` is transformed into the call: " "``type(a).__dict__['x'].__get__(a, type(a))``." @@ -4141,11 +4158,11 @@ msgstr "" "Εάν δεσμεύεται σε ένα στιγμιότυπο αντικειμένου, το ``a.x`` μετατρέπεται στην " "κλήση: ``type(a).__dict__['x'].__get__(a, type(a))``." -#: reference/datamodel.rst:2491 +#: reference/datamodel.rst:2507 msgid "Class Binding" msgstr "Δέσμευση Κλάσης" -#: reference/datamodel.rst:2492 +#: reference/datamodel.rst:2508 msgid "" "If binding to a class, ``A.x`` is transformed into the call: ``A." "__dict__['x'].__get__(None, A)``." @@ -4153,11 +4170,11 @@ msgstr "" "Εάν δεσμεύεται σε μια κλάση, το ``A.x`` μετατρέπεται στην κλήση: ``A." "__dict__['x'].__get__(None, A)``." -#: reference/datamodel.rst:2495 +#: reference/datamodel.rst:2511 msgid "Super Binding" msgstr "Υπερ-Δέσμευση" -#: reference/datamodel.rst:2496 +#: reference/datamodel.rst:2512 msgid "" "A dotted lookup such as ``super(A, a).x`` searches ``a.__class__.__mro__`` " "for a base class ``B`` following ``A`` and then returns ``B.__dict__['x']." @@ -4168,7 +4185,7 @@ msgstr "" "επιστρέφει το ``B.__dict__['x'].__get__(a, A)``. Εάν δεν είναι περιγραφέας, " "το ``x`` επιστρέφεται αμετάβλητο." -#: reference/datamodel.rst:2533 +#: reference/datamodel.rst:2549 msgid "" "For instance bindings, the precedence of descriptor invocation depends on " "which descriptor methods are defined. A descriptor can define any " @@ -4201,22 +4218,21 @@ msgstr "" "στιγμιοτύπου. Αντίθετα, οι μη περιγραφείς δεδομένων μπορούν να παρακαμφθούν " "από στιγμιότυπα." -#: reference/datamodel.rst:2548 +#: reference/datamodel.rst:2564 msgid "" -"Python methods (including those decorated with :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." +"Python methods (including those decorated with :deco:`staticmethod` and :" +"deco:`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 "" "Οι μέθοδοι Python (συμπεριλαμβανομένων εκείνων που είναι διακοσμημένες με :" -"func:`@staticmethod ` και :func:`@classmethod `) " -"υλοποιούνται ως περιγραφέα χωρίς δεδομένα. Αντίστοιχα, τα στιγμιότυπα " -"μπορούν να επαναπροσδιορίσουν και να παρακάμψουν μεθόδους. Αυτό επιτρέπει σε " -"μεμονωμένα στιγμιότυπα να αποκτήσουν συμπεριφορές που διαφέρουν από άλλα " -"στιγμιότυπα της ίδιας κλάσης." +"deco:`staticmethod` και :deco:`classmethod`) υλοποιούνται ως περιγραφέα " +"χωρίς δεδομένα. Αντίστοιχα, τα στιγμιότυπα μπορούν να επαναπροσδιορίσουν και " +"να παρακάμψουν μεθόδους. Αυτό επιτρέπει σε μεμονωμένα στιγμιότυπα να " +"αποκτήσουν συμπεριφορές που διαφέρουν από άλλα στιγμιότυπα της ίδιας κλάσης." -#: reference/datamodel.rst:2554 +#: reference/datamodel.rst:2570 msgid "" "The :func:`property` function is implemented as a data descriptor. " "Accordingly, instances cannot override the behavior of a property." @@ -4224,11 +4240,11 @@ msgstr "" "Η συνάρτηση :func:`property` υλοποιείται ως περιγραφέας δεδομένων. Συνεπώς, " "οι περιπτώσεις δεν μπορούν να παρακάμψουν τη συμπεριφορά μιας ιδιότητας." -#: reference/datamodel.rst:2561 +#: reference/datamodel.rst:2577 msgid "__slots__" msgstr "__slots__" -#: reference/datamodel.rst:2563 +#: reference/datamodel.rst:2579 msgid "" "*__slots__* allow us to explicitly declare data members (like properties) " "and deny the creation of :attr:`~object.__dict__` and *__weakref__* (unless " @@ -4239,7 +4255,7 @@ msgstr "" "*__weakref__* (εκτός εάν δηλώνεται ρητά στο *__slots__* ή είναι διαθέσιμο σε " "έναν γονέα.)" -#: reference/datamodel.rst:2567 +#: reference/datamodel.rst:2583 msgid "" "The space saved over using :attr:`~object.__dict__` can be significant. " "Attribute lookup speed can be significantly improved as well." @@ -4248,7 +4264,7 @@ msgstr "" "να είναι σημαντικός. Η ταχύτητα αναζήτησης χαρακτηριστικών μπορεί επίσης να " "βελτιωθεί σημαντικά." -#: reference/datamodel.rst:2572 +#: reference/datamodel.rst:2588 msgid "" "This class variable can be assigned a string, iterable, or sequence of " "strings with variable names used by instances. *__slots__* reserves space " @@ -4261,11 +4277,11 @@ msgstr "" "αποτρέπει την αυτόματη δημιουργία των :attr:`~object.__dict__` και " "*__weakref__* για κάθε περίπτωση." -#: reference/datamodel.rst:2581 +#: reference/datamodel.rst:2597 msgid "Notes on using *__slots__*:" msgstr "Σημειώσεις σχετικά με τη χρήση *__slots__*:" -#: reference/datamodel.rst:2583 +#: reference/datamodel.rst:2599 msgid "" "When inheriting from a class without *__slots__*, the :attr:`~object." "__dict__` and *__weakref__* attribute of the instances will always be " @@ -4275,7 +4291,7 @@ msgstr "" "attr:`~object.__dict__` και *__weakref__* των στιγμιοτύπων θα είναι πάντα " "προσβάσιμο." -#: reference/datamodel.rst:2587 +#: reference/datamodel.rst:2603 msgid "" "Without a :attr:`~object.__dict__` variable, instances cannot be assigned " "new variables not listed in the *__slots__* definition. Attempts to assign " @@ -4290,7 +4306,7 @@ msgstr "" "αντιστοίχιση νέων μεταβλητών, τότε προσθέστε το ``'__dict__'`` στην " "ακολουθία συμβολοσειρών στη δήλωση *__slots__*." -#: reference/datamodel.rst:2594 +#: reference/datamodel.rst:2610 msgid "" "Without a *__weakref__* variable for each instance, classes defining " "*__slots__* do not support :mod:`weak references ` to its " @@ -4303,7 +4319,7 @@ msgstr "" "τότε προσθέστε το ``'__weakref__'`` στην ακολουθία των συμβολοσειρών στη " "δήλωση των *__slots__*." -#: reference/datamodel.rst:2600 +#: reference/datamodel.rst:2616 msgid "" "*__slots__* are implemented at the class level by creating :ref:`descriptors " "` for each variable name. As a result, class attributes cannot " @@ -4317,7 +4333,7 @@ msgstr "" "*__slots__* ∙ διαφορετικά, το χαρακτηριστικό της κλάσης θα αντικαθιστούσε " "την ανάθεση του descriptor." -#: reference/datamodel.rst:2606 +#: reference/datamodel.rst:2622 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. " @@ -4332,7 +4348,7 @@ msgstr "" "ίδιες *__slots__* (τα οποία θα πρέπει να περιέχουν μόνο τα *επιπλέον* " "ονόματα slots)." -#: reference/datamodel.rst:2612 +#: reference/datamodel.rst:2628 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 " @@ -4346,7 +4362,7 @@ msgstr "" "κλάση). Αυτό καθιστά το νόημα του προγράμματος ασαφές. Στο μέλλον, μπορεί " "να προστεθεί έλεγχος που να αποτρέπει κάτι τέτοιο." -#: reference/datamodel.rst:2617 +#: reference/datamodel.rst:2633 msgid "" ":exc:`TypeError` will be raised if nonempty *__slots__* are defined for a " "class derived from a :c:member:`\"variable-length\" built-in type " @@ -4358,13 +4374,13 @@ msgstr "" "`, όπως οι :class:`int`, :class:`bytes`, και :" "class:`tuple`." -#: reference/datamodel.rst:2622 +#: reference/datamodel.rst:2638 msgid "Any non-string :term:`iterable` may be assigned to *__slots__*." msgstr "" "Οποιαδήποτε μη συμβολοσειρά :term:`iterable` μπορεί να εκχωρηθεί σε " "*__slots__*." -#: reference/datamodel.rst:2624 +#: reference/datamodel.rst:2640 msgid "" "If a :class:`dictionary ` is used to assign *__slots__*, the " "dictionary keys will be used as the slot names. The values of the dictionary " @@ -4378,7 +4394,7 @@ msgstr "" "συνάρτηση :func:`inspect.getdoc` και θα εμφανίζεται στην έξοδο της :func:" "`help`." -#: reference/datamodel.rst:2629 +#: reference/datamodel.rst:2645 msgid "" ":attr:`~object.__class__` assignment works only if both classes have the " "same *__slots__*." @@ -4386,7 +4402,7 @@ msgstr "" "Η ανάθεση στη :attr:`~instance.__class__` λειτουργεί μόνο αν και οι δύο " "κλάσεις έχουν τα ίδια *__slots__*." -#: reference/datamodel.rst:2632 +#: reference/datamodel.rst:2648 msgid "" ":ref:`Multiple inheritance ` with multiple slotted parent " "classes can be used, but only one parent is allowed to have attributes " @@ -4399,7 +4415,7 @@ msgstr "" "κλάσεις πρέπει να έχουν κενή διάταξη slots) - παραβιάσεις αυτού κάνουν " "raise :exc:`TypeError`." -#: reference/datamodel.rst:2638 +#: reference/datamodel.rst:2654 msgid "" "If an :term:`iterator` is used for *__slots__* then a :term:`descriptor` is " "created for each of the iterator's values. However, the *__slots__* " @@ -4409,11 +4425,11 @@ msgstr "" "ένας :term:`descriptor` για κάθε μία από τις τιμές του iterator. Ωστόσο, το " "χαρακτηριστικό *__slots__* θα είναι ένας κενός iterator." -#: reference/datamodel.rst:2646 +#: reference/datamodel.rst:2662 msgid "Customizing class creation" msgstr "Προσαρμογή δημιουργίας κλάσης" -#: reference/datamodel.rst:2648 +#: reference/datamodel.rst:2664 msgid "" "Whenever a class inherits from another class, :meth:`~object." "__init_subclass__` is called on the parent class. This way, it is possible " @@ -4430,7 +4446,7 @@ msgstr "" "``__init_subclass__`` ισχύει αποκλειστικά για μελλοντικές υποκλάσεις της " "κλάσης που ορίζουν τη μέθοδο." -#: reference/datamodel.rst:2657 +#: reference/datamodel.rst:2673 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 " @@ -4440,7 +4456,7 @@ msgstr "" "είναι τότε η νέα υποκλάση. Εάν οριστεί ως μια κανονική μέθοδος στιγμιοτύπου, " "αυτή η μέθοδος μετατρέπεται σιωπηρά σε μέθοδο κλάσης." -#: reference/datamodel.rst:2661 +#: reference/datamodel.rst:2677 msgid "" "Keyword arguments which are given to a new class are passed to the parent " "class's ``__init_subclass__``. For compatibility with other classes using " @@ -4452,7 +4468,7 @@ msgstr "" "``__init_subclass__``, θα πρέπει να αφαιρεθούν τα απαραίτητα ορίσματα λέξεων-" "κλειδιών και να περάσουν τα άλλα στη βασική κλάση, όπως στο::" -#: reference/datamodel.rst:2667 +#: reference/datamodel.rst:2683 msgid "" "class Philosopher:\n" " def __init_subclass__(cls, /, default_name, **kwargs):\n" @@ -4470,7 +4486,7 @@ msgstr "" "class AustralianPhilosopher(Philosopher, default_name=\"Bruce\"):\n" " pass" -#: reference/datamodel.rst:2675 +#: reference/datamodel.rst:2691 msgid "" "The default implementation ``object.__init_subclass__`` does nothing, but " "raises an error if it is called with any arguments." @@ -4478,7 +4494,7 @@ msgstr "" "Η προεπιλεγμένη υλοποίηση ``object.__init_subclass__`` δεν κάνει τίποτα, " "αλλά δημιουργεί ένα σφάλμα εάν καλείται με οποιαδήποτε ορίσματα." -#: reference/datamodel.rst:2680 +#: reference/datamodel.rst:2696 msgid "" "The metaclass hint ``metaclass`` is consumed by the rest of the type " "machinery, and is never passed to ``__init_subclass__`` implementations. The " @@ -4490,16 +4506,16 @@ msgstr "" "πραγματική μετακλάση (και όχι η ρητή υπόδειξη) μπορεί να προσπελαστεί ως " "``type(cls)``." -#: reference/datamodel.rst:2688 +#: reference/datamodel.rst:2704 msgid "" -"When a class is created, :meth:`type.__new__` scans the class variables and " +"When a class is created, :meth:`!type.__new__` scans the class variables and " "makes callbacks to those with a :meth:`~object.__set_name__` hook." msgstr "" -"Όταν δημιουργείται μια κλάση, η :meth:`type.__new__` σαρώνει τις μεταβλητές " +"Όταν δημιουργείται μια κλάση, η :meth:`!type.__new__` σαρώνει τις μεταβλητές " "κλάσης και πραγματοποιεί επανάκληση σε εκείνες με ένα :meth:`~object." "__set_name__` hook." -#: reference/datamodel.rst:2693 +#: reference/datamodel.rst:2709 msgid "" "Automatically called at the time the owning class *owner* is created. The " "object has been assigned to *name* in that class::" @@ -4507,7 +4523,7 @@ msgstr "" "Καλείται αυτόματα τη στιγμή που δημιουργείται η ιδιοκτήτρια κλάση *owner*. " "Το αντικείμενο έχει εκχωρηθεί στο *name* σε αυτήν την κλάση::" -#: reference/datamodel.rst:2696 +#: reference/datamodel.rst:2712 msgid "" "class A:\n" " x = C() # Automatically calls: x.__set_name__(A, 'x')" @@ -4515,7 +4531,7 @@ msgstr "" "class A:\n" " x = C() # Automatically calls: x.__set_name__(A, 'x')" -#: reference/datamodel.rst:2699 +#: reference/datamodel.rst:2715 msgid "" "If the class variable is assigned after the class is created, :meth:" "`__set_name__` will not be called automatically. If needed, :meth:" @@ -4525,7 +4541,7 @@ msgstr "" "`__set_name__` δεν θα κληθεί αυτόματα. Εάν χρειάζεται, η :meth:" "`__set_name__` μπορεί να κληθεί απευθείας::" -#: reference/datamodel.rst:2703 +#: reference/datamodel.rst:2719 msgid "" "class A:\n" " pass\n" @@ -4541,15 +4557,15 @@ msgstr "" "A.x = c # The hook is not called\n" "c.__set_name__(A, 'x') # Manually invoke the hook" -#: reference/datamodel.rst:2710 +#: reference/datamodel.rst:2726 msgid "See :ref:`class-object-creation` for more details." msgstr "Δείτε το :ref:`class-object-creation` για περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:2718 +#: reference/datamodel.rst:2734 msgid "Metaclasses" msgstr "Μετα-κλάσεις" -#: reference/datamodel.rst:2725 +#: reference/datamodel.rst:2741 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 " @@ -4559,7 +4575,7 @@ msgstr "" "σώμα κλάσης εκτελείται σε νέο χώρο ονομάτων και το όνομα της κλάσης " "συνδέεται τοπικά με το αποτέλεσμα του ``type(name, bases, namespace)``." -#: reference/datamodel.rst:2729 +#: reference/datamodel.rst:2745 msgid "" "The class creation process can be customized by passing the ``metaclass`` " "keyword argument in the class definition line, or by inheriting from an " @@ -4572,7 +4588,7 @@ msgstr "" "παρακάτω παράδειγμα, τόσο το ``MyClass`` και ``MySubclass`` είναι " "περιπτώσεις του ``Meta``::" -#: reference/datamodel.rst:2734 +#: reference/datamodel.rst:2750 msgid "" "class Meta(type):\n" " pass\n" @@ -4592,7 +4608,7 @@ msgstr "" "class MySubclass(MyClass):\n" " pass" -#: reference/datamodel.rst:2743 +#: reference/datamodel.rst:2759 msgid "" "Any other keyword arguments that are specified in the class definition are " "passed through to all metaclass operations described below." @@ -4600,35 +4616,35 @@ msgstr "" "Οποιαδήποτε άλλα ορίσματα λέξης-κλειδιού που καθορίζονται στον ορισμό κλάσης " "μεταβιβάζονται σε όλες τις λειτουργίες μετακλάσης που περιγράφονται παρακάτω." -#: reference/datamodel.rst:2746 +#: reference/datamodel.rst:2762 msgid "When a class definition is executed, the following steps occur:" msgstr "Όταν εκτελείται ένας ορισμός κλάσης, εμφανίζονται τα ακόλουθα βήματα:" -#: reference/datamodel.rst:2748 +#: reference/datamodel.rst:2764 msgid "MRO entries are resolved;" msgstr "Οι εγγραφές MRO επιλύονται∙" -#: reference/datamodel.rst:2749 +#: reference/datamodel.rst:2765 msgid "the appropriate metaclass is determined;" msgstr "καθορίζεται η κατάλληλη μετακλάση∙" -#: reference/datamodel.rst:2750 +#: reference/datamodel.rst:2766 msgid "the class namespace is prepared;" msgstr "προετοιμάζεται ο χώρος ονομάτων της κλάσης∙" -#: reference/datamodel.rst:2751 +#: reference/datamodel.rst:2767 msgid "the class body is executed;" msgstr "εκτελείται το σώμα της κλάσης∙" -#: reference/datamodel.rst:2752 +#: reference/datamodel.rst:2768 msgid "the class object is created." msgstr "δημιουργείται το αντικείμενο της κλάσης." -#: reference/datamodel.rst:2756 +#: reference/datamodel.rst:2772 msgid "Resolving MRO entries" msgstr "Επίλυση εγγραφών MRO" -#: reference/datamodel.rst:2760 +#: reference/datamodel.rst:2776 msgid "" "If a base that appears in a class definition is not an instance of :class:" "`type`, then an :meth:`!__mro_entries__` method is searched on the base. If " @@ -4649,19 +4665,19 @@ msgstr "" "πλειάδα που επιστράφηκε μπορεί να είναι κενή: σε αυτές τις περιπτώσεις, η " "αρχική βάση αγνοείται." -#: reference/datamodel.rst:2771 +#: reference/datamodel.rst:2787 msgid ":func:`types.resolve_bases`" msgstr ":func:`types.resolve_bases`" -#: reference/datamodel.rst:2772 +#: reference/datamodel.rst:2788 msgid "Dynamically resolve bases that are not instances of :class:`type`." msgstr "Επιλύστε δυναμικά βάσεις που δεν είναι στιγμιότυπα του :class:`type`." -#: reference/datamodel.rst:2774 +#: reference/datamodel.rst:2790 msgid ":func:`types.get_original_bases`" msgstr ":func:`types.get_original_bases`" -#: reference/datamodel.rst:2775 +#: reference/datamodel.rst:2791 msgid "" "Retrieve a class's \"original bases\" prior to modifications by :meth:" "`~object.__mro_entries__`." @@ -4669,31 +4685,31 @@ msgstr "" "Ανακτήσετε τις \"αρχικές βάσεις\" μιας κλάσης πριν από τις τροποποιήσεις " "από :meth:`~object.__mro_entries__`." -#: reference/datamodel.rst:2778 +#: reference/datamodel.rst:2794 msgid ":pep:`560`" msgstr ":pep:`560`" -#: reference/datamodel.rst:2779 +#: reference/datamodel.rst:2795 msgid "Core support for typing module and generic types." msgstr "Βασική υποστήριξη για modules τύπων και γενικούς τύπους." -#: reference/datamodel.rst:2783 +#: reference/datamodel.rst:2799 msgid "Determining the appropriate metaclass" msgstr "Προσδιορισμός της κατάλληλης μετακλάσης" -#: reference/datamodel.rst:2787 +#: reference/datamodel.rst:2803 msgid "" "The appropriate metaclass for a class definition is determined as follows:" msgstr "Η κατάλληλη μετακλάση για έναν ορισμό κλάσης καθορίζεται ως εξής:" -#: reference/datamodel.rst:2789 +#: reference/datamodel.rst:2805 msgid "" "if no bases and no explicit metaclass are given, then :func:`type` is used;" msgstr "" "εάν δεν δίνονται βάσεις και καμία ρητή μετακλάση, τότε χρησιμοποιείται η :" "func:`type` ∙" -#: reference/datamodel.rst:2790 +#: reference/datamodel.rst:2806 msgid "" "if an explicit metaclass is given and it is *not* an instance of :func:" "`type`, then it is used directly as the metaclass;" @@ -4701,7 +4717,7 @@ msgstr "" "εάν δοθεί μια ρητή μετακλάση και *δεν* είναι ένα στιγμιότυπο της :func:" "`type`, τότε χρησιμοποιείται απευθείας ως μετακλάση∙" -#: reference/datamodel.rst:2792 +#: reference/datamodel.rst:2808 msgid "" "if an instance of :func:`type` is given as the explicit metaclass, or bases " "are defined, then the most derived metaclass is used." @@ -4709,7 +4725,7 @@ msgstr "" "εάν ένα στιγμιότυπο της :func:`type` δίνεται ως ρητή μετακλάση ή ορίζονται " "βάσεις, τότε χρησιμοποιείται η πιο παραγόμενη μετακλάση." -#: reference/datamodel.rst:2795 +#: reference/datamodel.rst:2811 msgid "" "The most derived metaclass is selected from the explicitly specified " "metaclass (if any) and the metaclasses (i.e. ``type(cls)``) of all specified " @@ -4724,11 +4740,11 @@ msgstr "" "μετακλάσεις δεν πληροί αυτό το κριτήριο, τότε ο ορισμός της κλάσης θα " "αποτύχει με ``TypeError``." -#: reference/datamodel.rst:2805 +#: reference/datamodel.rst:2821 msgid "Preparing the class namespace" msgstr "Προετοιμασία του χώρου ονομάτων της κλάσης" -#: reference/datamodel.rst:2810 +#: reference/datamodel.rst:2826 msgid "" "Once the appropriate metaclass has been identified, then the class namespace " "is prepared. If the metaclass has a ``__prepare__`` attribute, it is called " @@ -4749,7 +4765,7 @@ msgstr "" "δημιουργείται το τελικό αντικείμενο κλάσης, ο χώρος ονομάτων αντιγράφεται σε " "ένα νέο ``dict``." -#: reference/datamodel.rst:2819 +#: reference/datamodel.rst:2835 msgid "" "If the metaclass has no ``__prepare__`` attribute, then the class namespace " "is initialised as an empty ordered mapping." @@ -4757,19 +4773,19 @@ msgstr "" "Εάν η μετακλάση δεν έχει χαρακτηριστικό ``__prepare__``, τότε ο χώρος " "ονομάτων κλάσης αρχικοποιείται ως κενή ταξινομημένη αντιστοίχιση." -#: reference/datamodel.rst:2824 +#: reference/datamodel.rst:2840 msgid ":pep:`3115` - Metaclasses in Python 3000" msgstr ":pep:`3115` - Μετακλάσεις στην Python 3000" -#: reference/datamodel.rst:2825 +#: reference/datamodel.rst:2841 msgid "Introduced the ``__prepare__`` namespace hook" msgstr "Παρουσιάστηκε το άγκιστρο χώρου ονομάτων ``__prepare__``" -#: reference/datamodel.rst:2829 +#: reference/datamodel.rst:2845 msgid "Executing the class body" msgstr "Εκτέλεση του σώματος της κλάσης" -#: reference/datamodel.rst:2834 +#: reference/datamodel.rst:2850 msgid "" "The class body is executed (approximately) as ``exec(body, globals(), " "namespace)``. The key difference from a normal call to :func:`exec` is that " @@ -4784,7 +4800,7 @@ msgstr "" "τρέχον και το εξωτερικό πεδίο εφαρμογής όταν ο ορισμός κλάσης εμφανίζεται " "μέσα σε μια συνάρτηση." -#: reference/datamodel.rst:2840 +#: reference/datamodel.rst:2856 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. " @@ -4799,11 +4815,11 @@ msgstr "" "κλάσης ή μέσω της σιωπηρής αναφοράς ``__class__`` με λεξικό που περιγράφεται " "στην επόμενη ενότητα." -#: reference/datamodel.rst:2849 +#: reference/datamodel.rst:2865 msgid "Creating the class object" msgstr "Δημιουργία αντικειμένου κλάσης" -#: reference/datamodel.rst:2856 +#: reference/datamodel.rst:2872 msgid "" "Once the class namespace has been populated by executing the class body, the " "class object is created by calling ``metaclass(name, bases, namespace, " @@ -4815,7 +4831,7 @@ msgstr "" "bases, namespace, **kwds)`` (οι πρόσθετε λέξεις-κλειδιά που μεταβιβάζονται " "εδώ είναι οι ίδιες με αυτές που διαβιβάζονται στο ``__prepare__``)." -#: reference/datamodel.rst:2861 +#: reference/datamodel.rst:2877 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 " @@ -4835,7 +4851,7 @@ msgstr "" "τρέχουσας κλήσης προσδιορίζεται με βάση το πρώτο όρισμα που μεταβιβάστηκε " "στη μέθοδο." -#: reference/datamodel.rst:2871 +#: reference/datamodel.rst:2887 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 " @@ -4850,7 +4866,7 @@ msgstr "" "γίνει σωστά. Αν δεν το κάνετε αυτό θα έχει ως αποτέλεσμα μια :exc:" "`RuntimeError` στην Python 3.8." -#: reference/datamodel.rst:2877 +#: reference/datamodel.rst:2893 msgid "" "When using the default metaclass :class:`type`, or any metaclass that " "ultimately calls ``type.__new__``, the following additional customization " @@ -4860,7 +4876,7 @@ msgstr "" "μετακλάσης που τελικά καλεί ``type.__new__``, τα ακόλουθα πρόσθετα βήματα " "προσαρμογής καλούνται μετά τη δημιουργία του αντικείμενου κλάσης:" -#: reference/datamodel.rst:2881 +#: reference/datamodel.rst:2897 msgid "" "The ``type.__new__`` method collects all of the attributes in the class " "namespace that define a :meth:`~object.__set_name__` method;" @@ -4868,7 +4884,7 @@ msgstr "" "Η μέθοδος ``type.__new__`` συλλέγει όλα τα χαρακτηριστικά στον χώρο ονομάτων " "της κλάσης που ορίζουν μια μέθοδο :meth:`~object.__set_name__` ∙" -#: reference/datamodel.rst:2883 +#: reference/datamodel.rst:2899 msgid "" "Those ``__set_name__`` methods are called with the class being defined and " "the assigned name of that particular attribute;" @@ -4876,7 +4892,7 @@ msgstr "" "Αυτές οι μέθοδοι ``__set_name__`` καλούνται με την κλάση που ορίζεται και το " "εκχωρημένο όνομα του συγκεκριμένου χαρακτηριστικού∙" -#: reference/datamodel.rst:2885 +#: reference/datamodel.rst:2901 msgid "" "The :meth:`~object.__init_subclass__` hook is called on the immediate parent " "of the new class in its method resolution order." @@ -4884,7 +4900,7 @@ msgstr "" "Το άγκιστρο :meth:`~object.__init_subclass__` καλείται στον άμεσο γονέα της " "νέας κλάσης στη σειρά ανάλυσης της μεθόδου." -#: reference/datamodel.rst:2888 +#: reference/datamodel.rst:2904 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 " @@ -4895,7 +4911,7 @@ msgstr "" "αντικείμενο που προκύπτει δεσμεύεται στον τοπικό χώρο ονομάτων ως η " "καθορισμένη κλάση." -#: reference/datamodel.rst:2892 +#: reference/datamodel.rst:2908 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 " @@ -4909,19 +4925,19 @@ msgstr "" "οποίος γίνεται το χαρακτηριστικό :attr:`~object.__dict__` του αντικειμένου " "κλάσης." -#: reference/datamodel.rst:2899 +#: reference/datamodel.rst:2915 msgid ":pep:`3135` - New super" msgstr ":pep:`3135` - Νέο super" -#: reference/datamodel.rst:2900 +#: reference/datamodel.rst:2916 msgid "Describes the implicit ``__class__`` closure reference" msgstr "Περιγράφει την σιωπηρή αναφορά κλεισίματος ``__class__``" -#: reference/datamodel.rst:2904 +#: reference/datamodel.rst:2920 msgid "Uses for metaclasses" msgstr "Χρήσεις για μετακλάσεις" -#: reference/datamodel.rst:2906 +#: reference/datamodel.rst:2922 msgid "" "The potential uses for metaclasses are boundless. Some ideas that have been " "explored include enum, logging, interface checking, automatic delegation, " @@ -4933,11 +4949,11 @@ msgstr "" "την αυτόματα ανάθεση την αυτόματη δημιουργία ιδιοτήτων, τους διακομιστές " "μεσολάβησης, τα πλαίσια και το αυτόματο κλείδωμα/συγχρονισμό πόρων." -#: reference/datamodel.rst:2913 +#: reference/datamodel.rst:2929 msgid "Customizing instance and subclass checks" msgstr "Προσαρμογή ελέγχων παρουσίας και υποκλάσης" -#: reference/datamodel.rst:2915 +#: reference/datamodel.rst:2931 msgid "" "The following methods are used to override the default behavior of the :func:" "`isinstance` and :func:`issubclass` built-in functions." @@ -4946,7 +4962,7 @@ msgstr "" "συμπεριφοράς των ενσωματωμένων συναρτήσεων :func:`isinstance` και :func:" "`issubclass`." -#: reference/datamodel.rst:2918 +#: reference/datamodel.rst:2934 msgid "" "In particular, the metaclass :class:`abc.ABCMeta` implements these methods " "in order to allow the addition of Abstract Base Classes (ABCs) as \"virtual " @@ -4959,7 +4975,7 @@ msgstr "" "(συμπεριλαμβανομένων των ενσωματωμένων τύπων), συμπεριλαμβανομένων άλλων " "ABCs." -#: reference/datamodel.rst:2925 +#: reference/datamodel.rst:2941 msgid "" "Return true if *instance* should be considered a (direct or indirect) " "instance of *class*. If defined, called to implement ``isinstance(instance, " @@ -4969,7 +4985,7 @@ msgstr "" "έμμεσο) στιγμιότυπο της *class*. Εάν ορίζεται, καλείται να υλοποιήσει " "``isinstance(instance, class)``." -#: reference/datamodel.rst:2932 +#: reference/datamodel.rst:2948 msgid "" "Return true if *subclass* should be considered a (direct or indirect) " "subclass of *class*. If defined, called to implement ``issubclass(subclass, " @@ -4979,7 +4995,7 @@ msgstr "" "υποκλάση της *class*. Εάν ορίζεται, καλείται να υλοποιήσει " "``issubclass(subclass, class)``." -#: reference/datamodel.rst:2937 +#: reference/datamodel.rst:2953 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 " @@ -4991,11 +5007,11 @@ msgstr "" "Αυτό είναι σύμφωνο με την αναζήτηση ειδικών μεθόδων που καλούνται σε " "στιγμιότυπα, μόνο σε αυτήν την περίπτωση το ίδιο στιγμιότυπο είναι μια κλάση." -#: reference/datamodel.rst:2944 +#: reference/datamodel.rst:2960 msgid ":pep:`3119` - Introducing Abstract Base Classes" msgstr ":pep:`3119` - Εισάγοντας τις Αφηρημένες Βασικές Κλάσεις" -#: reference/datamodel.rst:2945 +#: reference/datamodel.rst:2961 msgid "" "Includes the specification for customizing :func:`isinstance` and :func:" "`issubclass` behavior through :meth:`~type.__instancecheck__` and :meth:" @@ -5009,11 +5025,11 @@ msgstr "" "αυτήν τη λειτουργικότητα στο πλαίσιο της προσθήκης Αφηρημένης Βασικής Κλάσης " "(δείτε το module :mod:`abc`) στη γλώσσα." -#: reference/datamodel.rst:2953 +#: reference/datamodel.rst:2969 msgid "Emulating generic types" msgstr "Εξομοίωση γενικών τύπων" -#: reference/datamodel.rst:2955 +#: reference/datamodel.rst:2971 msgid "" "When using :term:`type annotations`, it is often useful to " "*parameterize* a :term:`generic type` using Python's square-brackets " @@ -5026,25 +5042,25 @@ msgstr "" "``list[int]`` μπορεί να χρησιμοποιηθεί για να υποδηλώσει μια :class:`list` " "στην οποία όλα τα στοιχεία της κλάσης είναι τύπου :class:`int`." -#: reference/datamodel.rst:2962 +#: reference/datamodel.rst:2978 msgid ":pep:`484` - Type Hints" msgstr ":pep:`484` - Τύπος Hints" -#: reference/datamodel.rst:2963 +#: reference/datamodel.rst:2979 msgid "Introducing Python's framework for type annotations" msgstr "Εισάγοντας το πλαίσιο της Python για τύπους annotations" -#: reference/datamodel.rst:2965 +#: reference/datamodel.rst:2981 msgid ":ref:`Generic Alias Types`" msgstr ":ref:`Generic Alias Types`" -#: reference/datamodel.rst:2966 +#: reference/datamodel.rst:2982 msgid "Documentation for objects representing parameterized generic classes" msgstr "" "Τεκμηρίωση για αντικείμενα που αντιπροσωπεύουν παραμετροποιημένες γενικές " "κλάσεις" -#: reference/datamodel.rst:2968 +#: reference/datamodel.rst:2984 msgid "" ":ref:`Generics`, :ref:`user-defined generics` and :" "class:`typing.Generic`" @@ -5052,7 +5068,7 @@ msgstr "" ":ref:`Generics`, :ref:`user-defined generics` και :" "class:`typing.Generic`" -#: reference/datamodel.rst:2969 +#: reference/datamodel.rst:2985 msgid "" "Documentation on how to implement generic classes that can be parameterized " "at runtime and understood by static type-checkers." @@ -5061,7 +5077,7 @@ msgstr "" "παραμετροποιηθούν κατά το χρόνο εκτέλεσης και να κατανοηθούν από στατικούς " "ελεγκτές τύπων." -#: reference/datamodel.rst:2972 +#: reference/datamodel.rst:2988 msgid "" "A class can *generally* only be parameterized if it defines the special " "class method ``__class_getitem__()``." @@ -5069,7 +5085,7 @@ msgstr "" "Μια κλάση *γενικά* μπορεί να παραμετροποιηθεί μόνο εάν ορίζει την ειδική " "μέθοδο κλάσης ``__class_getitem__()``." -#: reference/datamodel.rst:2977 +#: reference/datamodel.rst:2993 msgid "" "Return an object representing the specialization of a generic class by type " "arguments found in *key*." @@ -5077,21 +5093,21 @@ msgstr "" "Επιστρέφετε ένα αντικείμενο που αντιπροσωπεύει την εξειδίκευση μιας γενικής " "κλάσης κατά ορίσματα τύπου που βρίσκονται στο *key*." -#: reference/datamodel.rst:2980 +#: reference/datamodel.rst:2996 msgid "" "When defined on a class, ``__class_getitem__()`` is automatically a class " -"method. As such, there is no need for it to be decorated with :func:" -"`@classmethod` when it is defined." +"method. As such, there is no need for it to be decorated with :deco:" +"`classmethod` when it is defined." msgstr "" "Όταν ορίζεται σε μια κλάση, το ``__class_getitem__()`` είναι αυτόματα " -"μέθοδος κλάσης. Ως εκ τούτου, δεν χρειάζεται να γίνει decorated με :func:" -"`@classmethod` όταν ορίζεται." +"μέθοδος κλάσης. Ως εκ τούτου, δεν χρειάζεται να γίνει decorated με :deco:" +"`classmethod` όταν ορίζεται." -#: reference/datamodel.rst:2986 +#: reference/datamodel.rst:3002 msgid "The purpose of *__class_getitem__*" msgstr "Ο σκοπός του *__class_getitem__*" -#: reference/datamodel.rst:2988 +#: reference/datamodel.rst:3004 msgid "" "The purpose of :meth:`~object.__class_getitem__` is to allow runtime " "parameterization of standard-library generic classes in order to more easily " @@ -5102,7 +5118,7 @@ msgstr "" "προκειμένου να εφαρμοστούν πιο εύκολα :term:`type hints` σε αυτές " "τις κλάσεις." -#: reference/datamodel.rst:2992 +#: reference/datamodel.rst:3008 msgid "" "To implement custom generic classes that can be parameterized at runtime and " "understood by static type-checkers, users should either inherit from a " @@ -5117,7 +5133,7 @@ msgstr "" "είτε να κληρονομήσουν από την :class:`typing.Generic`, η οποία έχει τη δική " "της υλοποίηση του ``__class_getitem__()``." -#: reference/datamodel.rst:2998 +#: reference/datamodel.rst:3014 msgid "" "Custom implementations of :meth:`~object.__class_getitem__` on classes " "defined outside of the standard library may not be understood by third-party " @@ -5130,11 +5146,11 @@ msgstr "" "``__class_getitem__()`` σε οποιαδήποτε κλάση για άλλους σκοπούς εκτός από " "την υπόδειξη τύπων δεν ενθαρρύνεται." -#: reference/datamodel.rst:3008 +#: reference/datamodel.rst:3024 msgid "*__class_getitem__* versus *__getitem__*" msgstr "*__class_getitem__* έναντι *__getitem__*" -#: reference/datamodel.rst:3010 +#: reference/datamodel.rst:3026 msgid "" "Usually, the :ref:`subscription` of an object using square " "brackets will call the :meth:`~object.__getitem__` instance method defined " @@ -5151,7 +5167,7 @@ msgstr "" "``__class_getitem__()`` θα πρέπει να επιστρέψει ένα αντικείμενο :ref:" "`GenericAlias`, εάν έχει οριστεί σωστά." -#: reference/datamodel.rst:3017 +#: reference/datamodel.rst:3033 msgid "" "Presented with the :term:`expression` ``obj[x]``, the Python interpreter " "follows something like the following process to decide whether :meth:" @@ -5161,7 +5177,7 @@ msgstr "" "ακολουθεί κάτι σαν την ακόλουθη διαδικασία για να αποφασίσει εάν θα πρέπει " "να κληθεί :meth:`~object.__getitem__` ή :meth:`~object.__class_getitem__`::" -#: reference/datamodel.rst:3022 +#: reference/datamodel.rst:3038 msgid "" "from inspect import isclass\n" "\n" @@ -5209,7 +5225,7 @@ msgstr "" " f\"'{class_of_obj.__name__}' object is not subscriptable\"\n" " )" -#: reference/datamodel.rst:3045 +#: reference/datamodel.rst:3061 msgid "" "In Python, all classes are themselves instances of other classes. The class " "of a class is known as that class's :term:`metaclass`, and most classes have " @@ -5225,7 +5241,7 @@ msgstr "" "εκφράσεις όπως ``list[int]``, ``dict[str, float]`` και ``tuple[str, bytes]`` " "έχουν ως αποτέλεσμα την κλήση της :meth:`~object.__class_getitem__`::" -#: reference/datamodel.rst:3052 +#: reference/datamodel.rst:3068 msgid "" ">>> # list has class \"type\" as its metaclass, like most classes:\n" ">>> type(list)\n" @@ -5251,7 +5267,7 @@ msgstr "" ">>> type(list[int])\n" "" -#: reference/datamodel.rst:3064 +#: reference/datamodel.rst:3080 msgid "" "However, if a class has a custom metaclass that defines :meth:`~object." "__getitem__`, subscribing the class may result in different behaviour. An " @@ -5262,7 +5278,7 @@ msgstr "" "διαφορετική συμπεριφορά. Ένα παράδειγμα αυτού μπορεί να βρεθεί στο module :" "meth:`~object.__getitem__`::" -#: reference/datamodel.rst:3068 +#: reference/datamodel.rst:3084 msgid "" ">>> from enum import Enum\n" ">>> class Menu(Enum):\n" @@ -5298,12 +5314,12 @@ msgstr "" ">>> type(Menu['SPAM'])\n" "" -#: reference/datamodel.rst:3087 +#: reference/datamodel.rst:3103 msgid ":pep:`560` - Core Support for typing module and generic types" msgstr "" ":pep:`560` - Βασική υποστήριξη για module πληκτρολόγησης και γενικούς τύπους" -#: reference/datamodel.rst:3088 +#: reference/datamodel.rst:3104 msgid "" "Introducing :meth:`~object.__class_getitem__`, and outlining when a :ref:" "`subscription` results in ``__class_getitem__()`` being " @@ -5313,11 +5329,11 @@ msgstr "" "ένα :ref:`subscription` έχει ως αποτέλεσμα την κλήση " "``__class_getitem__()`` αντί για :meth:`~object.__getitem__`" -#: reference/datamodel.rst:3096 +#: reference/datamodel.rst:3112 msgid "Emulating callable objects" msgstr "Εξομοίωση αντικειμένων με δυνατότητα κλήσης" -#: reference/datamodel.rst:3103 +#: reference/datamodel.rst:3119 msgid "" "Called when the instance is \"called\" as a function; if this method is " "defined, ``x(arg1, arg2, ...)`` roughly translates to ``type(x).__call__(x, " @@ -5328,11 +5344,11 @@ msgstr "" "__call__(x, arg1, ...)``. Η ίδια η κλάση :class:`object` δεν παρέχει αυτήν " "τη μέθοδο." -#: reference/datamodel.rst:3111 +#: reference/datamodel.rst:3127 msgid "Emulating container types" msgstr "Εξομοίωση τύπων κοντέινερ" -#: reference/datamodel.rst:3113 +#: reference/datamodel.rst:3129 msgid "" "The following methods can be defined to implement container objects. None of " "them are provided by the :class:`object` class itself. Containers usually " @@ -5350,23 +5366,7 @@ msgid "" "The :mod:`collections.abc` module provides a :class:`~collections.abc." "MutableMapping` :term:`abstract base class` to help create those methods " "from a base set of :meth:`~object.__getitem__`, :meth:`~object." -"__setitem__`, :meth:`~object.__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 :class:`list` " -"objects. Finally, sequence types should implement addition (meaning " -"concatenation) and multiplication (meaning repetition) by defining the " -"methods :meth:`~object.__add__`, :meth:`~object.__radd__`, :meth:`~object." -"__iadd__`, :meth:`~object.__mul__`, :meth:`~object.__rmul__` and :meth:" -"`~object.__imul__` described below; they should not define other numerical " -"operators. It is recommended that both mappings and sequences implement " -"the :meth:`~object.__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:`~object.__iter__` " -"method to allow efficient iteration through the container; for mappings, :" -"meth:`!__iter__` should iterate through the object's keys; for sequences, it " -"should iterate through the values." +"__setitem__`, :meth:`~object.__delitem__`, and :meth:`!keys`." msgstr "" "Οι ακόλουθες μέθοδοι μπορούν να οριστούν για την υλοποίηση αντικειμένων " "κοντέινερ. Καμία από αυτές δεν παρέχεται από την ίδια την κλάση :class:" @@ -5386,27 +5386,55 @@ msgstr "" "Το module :mod:`collections.abc` παρέχει μια :class:`~collections.abc." "MutableMapping` :term:`abstract base class` για να βοηθήσει στη δημιουργία " "αυτών των μεθόδων από ένα βασικό σύνολο :meth:`~object.__getitem__`, :meth:" -"`~object.__setitem__`, :meth:`~object.__delitem__`, και :meth:`!keys`. Οι " -"μεταβλητές ακολουθίες θα πρέπει να παρέχουν μεθόδους :meth:`!append`, :meth:" -"`!count`, :meth:`!index`, :meth:`!extend`, :meth:`!insert`, :meth:`!pop`, :" -"meth:`!remove`, :meth:`!reverse` και :meth:`!sort`, όπως τα πρότυπα Python :" -"class:`list` αντικείμενα. Τέλος, οι τύποι ακολουθιών θα πρέπει να υλοποιούν " -"πρόσθεση (που σημαίνει συνένωση) και πολλαπλασιασμό (δηλαδή επανάληψη) " -"ορίζοντας τις μεθόδους :meth:`~object.__add__`, :meth:`~object.__radd__`, :" -"meth:`~object.__iadd__`, :meth:`~object.__mul__`, :meth:`~object.__rmul__` " -"και :meth:`~object.__imul__` που περιγράφονται παρακάτω∙ δεν θα πρέπει να " -"ορίζουν άλλους αριθμητικούς τελεστές. Συνίσταται τόσο οι αντιστοιχίσεις όσο " -"και οι ακολουθίες να εφαρμόζουν τη μέθοδο :meth:`~object.__contains__` για " -"να επιτρέπεται η αποτελεσματική χρήση του τελεστή ``in`` ∙ για " -"αντιστοιχίσεις, το ``in`` θα πρέπει να αναζητήσει τα κλειδιά της " -"αντιστοίχισης∙ για ακολουθίες θα πρέπει να αναζητήσει τις τιμές. Συνίσταται " -"περαιτέρω τόσο οι αντιστοιχίσεις όσο και οι ακολουθίες να εφαρμόζουν τη " -"μέθοδο :meth:`~object.__iter__` για να επιτρέπεται η αποτελεσματική " -"επανάληψη μέσω του κοντέινερ∙ για αντιστοιχίσεις, η :meth:`!__iter__` θα " -"πρέπει να επαναλαμβάνεται μέσω των κλειδιών του αντικειμένου∙ για " -"ακολουθίες, θα πρέπει να επαναλαμβάνεται μέσω των τιμών." - -#: reference/datamodel.rst:3155 +"`~object.__setitem__`, :meth:`~object.__delitem__`, και :meth:`!keys`." + +#: reference/datamodel.rst:3148 +msgid "" +"Mutable sequences should provide methods :meth:`~sequence.append`, :meth:" +"`~sequence.clear`, :meth:`~sequence.count`, :meth:`~sequence.extend`, :meth:" +"`~sequence.index`, :meth:`~sequence.insert`, :meth:`~sequence.pop`, :meth:" +"`~sequence.remove`, and :meth:`~sequence.reverse`, like Python standard :" +"class:`list` objects. Finally, sequence types should implement addition " +"(meaning concatenation) and multiplication (meaning repetition) by defining " +"the methods :meth:`~object.__add__`, :meth:`~object.__radd__`, :meth:" +"`~object.__iadd__`, :meth:`~object.__mul__`, :meth:`~object.__rmul__` and :" +"meth:`~object.__imul__` described below; they should not define other " +"numerical operators." +msgstr "" +"Οι μεταβλητές ακολουθίες θα πρέπει να παρέχουν μεθόδους :meth:`~sequence." +"append`, :meth:`~sequence.clear`, :meth:`~sequence.count`, :meth:`~sequence." +"extend`, :meth:`~sequence.index`, :meth:`~sequence.insert`, :meth:`~sequence." +"pop`, :meth:`~sequence.remove`, και :meth:`~sequence.reverse`, όπως τα " +"πρότυπα Python :class:`list` αντικείμενα. Τέλος, οι τύποι ακολουθιών θα " +"πρέπει να υλοποιούν πρόσθεση (που σημαίνει συνένωση) και πολλαπλασιασμό " +"(δηλαδή επανάληψη) ορίζοντας τις μεθόδους :meth:`~object.__add__`, :meth:" +"`~object.__radd__`, :meth:`~object.__iadd__`, :meth:`~object.__mul__`, :meth:" +"`~object.__rmul__` και :meth:`~object.__imul__` που περιγράφονται παρακάτω∙ " +"δεν θα πρέπει να ορίζουν άλλους αριθμητικούς τελεστές." + +#: reference/datamodel.rst:3160 +msgid "" +"It is recommended that both mappings and sequences implement the :meth:" +"`~object.__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:`~object.__iter__` method to " +"allow efficient iteration through the container; for mappings, :meth:`!" +"__iter__` should iterate through the object's keys; for sequences, it should " +"iterate through the values." +msgstr "" +"Αυτό συνίσταται τόσο οι αντιστοιχίσεις όσο και οι ακολουθίες να εφαρμόζουν " +"τη μέθοδο :meth:`~object.__contains__` για να επιτρέπεται η αποτελεσματική " +"χρήση του τελεστή ``in`` ∙ για αντιστοιχίσεις, το ``in`` θα πρέπει να " +"αναζητήσει τα κλειδιά της αντιστοίχισης∙ για ακολουθίες θα πρέπει να " +"αναζητήσει τις τιμές. Συνίσταται περαιτέρω τόσο οι αντιστοιχίσεις όσο και " +"οι ακολουθίες να εφαρμόζουν τη μέθοδο :meth:`~object.__iter__` για να " +"επιτρέπεται η αποτελεσματική επανάληψη μέσω του κοντέινερ∙ για " +"αντιστοιχίσεις, η :meth:`!__iter__` θα πρέπει να επαναλαμβάνεται μέσω των " +"κλειδιών του αντικειμένου∙ για ακολουθίες, θα πρέπει να επαναλαμβάνεται μέσω " +"των τιμών." + +#: reference/datamodel.rst:3175 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 " @@ -5419,7 +5447,7 @@ msgstr "" "__bool__` και του οποίου η μέθοδος :meth:`!__len__` επιστρέφει μηδέν, " "θεωρείται ψευδές σε ένα Boolean περιβάλλον." -#: reference/datamodel.rst:3162 +#: reference/datamodel.rst:3182 msgid "" "In CPython, the length is required to be at most :data:`sys.maxsize`. If the " "length is larger than :data:`!sys.maxsize` some features (such as :func:" @@ -5434,7 +5462,7 @@ msgstr "" "αλήθειας, ένα αντικείμενο πρέπει να ορίσει μια μέθοδο :meth:`~object." "__bool__`." -#: reference/datamodel.rst:3171 +#: reference/datamodel.rst:3191 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). " @@ -5451,32 +5479,32 @@ msgstr "" "υπήρχε καθόλου η μέθοδος ``__length_hint__``. Αυτή η μέθοδος είναι καθαρά " "βελτιστοποίηση και δεν απαιτείται ποτέ για ορθότητα." -#: reference/datamodel.rst:3185 +#: reference/datamodel.rst:3205 msgid "" "Slicing is done exclusively with the following three methods. A call like ::" msgstr "" "Η διαδικασία τμηματοποίησης γίνεται αποκλειστικά με τις ακόλουθες τρεις " "μεθόδους. Μια κλήση όπως ::" -#: reference/datamodel.rst:3187 +#: reference/datamodel.rst:3207 msgid "a[1:2] = b" msgstr "a[1:2] = b" -#: reference/datamodel.rst:3189 +#: reference/datamodel.rst:3209 msgid "is translated to ::" msgstr "μεταφράζεται σε ::" -#: reference/datamodel.rst:3191 +#: reference/datamodel.rst:3211 msgid "a[slice(1, 2, None)] = b" msgstr "a[slice(1, 2, None)] = b" -#: reference/datamodel.rst:3193 +#: reference/datamodel.rst:3213 msgid "and so forth. Missing slice items are always filled in with ``None``." msgstr "" "και ούτω καθεξής. Τα στοιχεία τμήματος που λείπουν συμπληρώνονται πάντα με " "``None``." -#: reference/datamodel.rst:3198 +#: reference/datamodel.rst:3218 msgid "" "Called to implement evaluation of ``self[key]``. For :term:`sequence` types, " "the accepted keys should be integers. Optionally, they may support :class:" @@ -5497,7 +5525,7 @@ msgstr "" "να γίνει raise. Για τύπους :term:`mapping`, εάν λείπει το *key* (όχι στο " "κοντέινερ), το :exc:`KeyError` θα πρέπει να γίνει raise." -#: reference/datamodel.rst:3210 +#: reference/datamodel.rst:3230 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." @@ -5506,7 +5534,7 @@ msgstr "" "για παράνομα ευρετήρια για να επιτρέπεται ο σωστός εντοπισμός του τέλους της " "ακολουθίας." -#: reference/datamodel.rst:3215 +#: reference/datamodel.rst:3235 msgid "" "When :ref:`subscripting` a *class*, the special class method :" "meth:`~object.__class_getitem__` may be called instead of ``__getitem__()``. " @@ -5517,7 +5545,7 @@ msgstr "" "``__getitem__()``. Δείτε το :ref:`classgetitem-versus-getitem` για " "περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:3223 +#: reference/datamodel.rst:3243 msgid "" "Called to implement assignment to ``self[key]``. Same note as for :meth:" "`__getitem__`. This should only be implemented for mappings if the objects " @@ -5532,7 +5560,7 @@ msgstr "" "στοιχεία. Θα πρέπει να δημιουργηθούν οι ίδιες εξαιρέσεις για ακατάλληλες " "τιμές *key* όπως και για τη μέθοδο :meth:`__getitem__`." -#: reference/datamodel.rst:3232 +#: reference/datamodel.rst:3252 msgid "" "Called to implement deletion of ``self[key]``. Same note as for :meth:" "`__getitem__`. This should only be implemented for mappings if the objects " @@ -5547,7 +5575,7 @@ msgstr "" "να δημιουργηθούν οι ίδιες εξαιρέσεις για ακατάλληλες τιμές *key* όπως και " "για τη μέθοδο :meth:`__getitem__`." -#: reference/datamodel.rst:3241 +#: reference/datamodel.rst:3261 msgid "" "Called by :class:`dict`\\ .\\ :meth:`__getitem__` to implement ``self[key]`` " "for dict subclasses when key is not in the dictionary." @@ -5555,7 +5583,7 @@ msgstr "" "Κλήθηκε από :class:`dict`\\ .\\ :meth:`__getitem__` για την υλοποίηση του " "``self[key]`` για υποκλάσεις dict όταν το κλειδί δεν υπάρχει στο λεξικό." -#: reference/datamodel.rst:3247 +#: reference/datamodel.rst:3267 msgid "" "This method is called when an :term:`iterator` is required for a container. " "This method should return a new iterator object that can iterate over all " @@ -5568,7 +5596,7 @@ msgstr "" "αντιστοιχίσεις, θα πρέπει να επαναλαμβάνεται πάνω από τα κλειδιά του " "κοντέινερ." -#: reference/datamodel.rst:3255 +#: reference/datamodel.rst:3275 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 " @@ -5579,7 +5607,7 @@ msgstr "" "iterator αντικείμενο που επαναλαμβάνεται πάνω από όλα τα αντικείμενα στο " "κοντέινερ με αντίστροφη σειρά." -#: reference/datamodel.rst:3259 +#: reference/datamodel.rst:3279 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 :" @@ -5594,7 +5622,7 @@ msgstr "" "παρέχουν μια υλοποίηση που είναι πιο αποτελεσματική από αυτή που παρέχεται " "από τη :func:`reversed`." -#: reference/datamodel.rst:3266 +#: reference/datamodel.rst:3286 msgid "" "The membership test operators (:keyword:`in` and :keyword:`not in`) are " "normally implemented as an iteration through a container. However, container " @@ -5607,7 +5635,7 @@ msgstr "" "αποτελεσματική υλοποίηση, η οποία επίσης δεν απαιτεί το αντικείμενο να είναι " "επαναλαμβανόμενο." -#: reference/datamodel.rst:3273 +#: reference/datamodel.rst:3293 msgid "" "Called to implement membership test operators. Should return true if *item* " "is in *self*, false otherwise. For mapping objects, this should consider " @@ -5618,7 +5646,7 @@ msgstr "" "αντιστοίχιση αντικειμένων, αυτό θα πρέπει να λαμβάνει υπόψη τα κλειδιά της " "αντιστοίχισης αντί για τις τιμές ή τα ζεύγη κλειδιών-στοιχείων." -#: reference/datamodel.rst:3277 +#: reference/datamodel.rst:3297 msgid "" "For objects that don't define :meth:`__contains__`, the membership test " "first tries iteration via :meth:`__iter__`, then the old sequence iteration " @@ -5630,11 +5658,11 @@ msgstr "" "πρωτόκολλο επανάληψης ακολουθίας μέσω :meth:`__getitem__`, δείτε :ref:`this " "section in the language reference `." -#: reference/datamodel.rst:3286 +#: reference/datamodel.rst:3306 msgid "Emulating numeric types" msgstr "Εξομοίωση αριθμητικών τύπων" -#: reference/datamodel.rst:3288 +#: reference/datamodel.rst:3308 msgid "" "The following methods can be defined to emulate numeric objects. Methods " "corresponding to operations that are not supported by the particular kind of " @@ -5646,7 +5674,7 @@ msgstr "" "από το συγκεκριμένο είδος αριθμού που υλοποιείται (π.χ. λειτουργίες bitwise " "για μη ακέραιους αριθμούς) θα πρέπει να παραμείνουν απροσδιόριστες." -#: reference/datamodel.rst:3314 +#: reference/datamodel.rst:3334 msgid "" "These methods are called to implement the binary arithmetic operations " "(``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:" @@ -5671,7 +5699,7 @@ msgstr "" "εάν υποστηρίζεται η τριών ορισμάτων έκδοση της ενσωματωμένης συνάρτησης :" "func:`pow`." -#: reference/datamodel.rst:3325 +#: reference/datamodel.rst:3345 msgid "" "If one of those methods does not support the operation with the supplied " "arguments, it should return :data:`NotImplemented`." @@ -5679,7 +5707,7 @@ msgstr "" "Εάν μία από αυτές τις μεθόδους δεν υποστηρίζει τη λειτουργία με τα " "παρεχόμενα ορίσματα, θα πρέπει να επιστρέψει :data:`NotImplemented`." -#: reference/datamodel.rst:3348 +#: reference/datamodel.rst:3368 msgid "" "These methods are called to implement the binary arithmetic operations " "(``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:" @@ -5704,7 +5732,7 @@ msgstr "" "εάν το ``type(x).__sub__(x, y)`` επιστρέψει :data:`NotImplemented` ή το " "``type(y)`` είναι υποκλάση του ``type(x)``. [#]_" -#: reference/datamodel.rst:3359 +#: reference/datamodel.rst:3379 msgid "" "Note that :meth:`__rpow__` should be defined to accept an optional third " "argument if the three-argument version of the built-in :func:`pow` function " @@ -5714,7 +5742,7 @@ msgstr "" "προαιρετικό τρίτο όρισμα εάν υποστηρίζεται η τριών ορισμάτων έκδοση της " "ενσωματωμένης συνάρτησης :func:`pow`." -#: reference/datamodel.rst:3365 +#: reference/datamodel.rst:3385 msgid "" "Three-argument :func:`pow` now try calling :meth:`~object.__rpow__` if " "necessary. Previously it was only called in two-argument :func:`!pow` and " @@ -5724,7 +5752,7 @@ msgstr "" "__rpow__` εάν είναι απαραίτητο. Παλαιότερα καλούνταν μόνο στη δύο ορισμάτων :" "func:`!pow` και στον δυαδικό τελεστή δύναμης." -#: reference/datamodel.rst:3371 +#: reference/datamodel.rst:3391 msgid "" "If the right operand's type is a subclass of the left operand's type and " "that subclass provides a different implementation of the reflected method " @@ -5738,7 +5766,7 @@ msgstr "" "μη ανακλώμενη μέθοδο του αριστερού τελεστή. Αυτή η συμπεριφορά επιτρέπει " "στις υποκλάσεις να παρακάμπτουν τις πράξεις των προγόνων τους." -#: reference/datamodel.rst:3391 +#: reference/datamodel.rst:3411 msgid "" "These methods are called to implement the augmented arithmetic assignments " "(``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, ``**=``, ``<<=``, " @@ -5772,7 +5800,7 @@ msgstr "" "αλλά αυτή η συμπεριφορά είναι στην πραγματικότητα μέρος του μοντέλου " "δεδομένων." -#: reference/datamodel.rst:3414 +#: reference/datamodel.rst:3434 msgid "" "Called to implement the unary arithmetic operations (``-``, ``+``, :func:" "`abs` and ``~``)." @@ -5780,7 +5808,7 @@ msgstr "" "Καλείται για την υλοποίηση μονομερών αριθμητικών πράξεων (``-``, ``+``, :" "func:`abs` και ``~``)." -#: reference/datamodel.rst:3427 +#: reference/datamodel.rst:3447 msgid "" "Called to implement the built-in functions :func:`complex`, :func:`int` and :" "func:`float`. Should return a value of the appropriate type." @@ -5789,7 +5817,7 @@ msgstr "" "func:`int` και :func:`float`. Θα πρέπει να επιστρέψει μια τιμή του " "κατάλληλου τύπου." -#: reference/datamodel.rst:3434 +#: reference/datamodel.rst:3454 msgid "" "Called to implement :func:`operator.index`, and whenever Python needs to " "losslessly convert the numeric object to an integer object (such as in " @@ -5804,7 +5832,7 @@ msgstr "" "μεθόδου υποδεικνύει ότι το αριθμητικό αντικείμενο είναι ακέραιου τύπου. " "Πρέπει να επιστρέψει έναν ακέραιο αριθμό." -#: reference/datamodel.rst:3440 +#: reference/datamodel.rst:3460 msgid "" "If :meth:`__int__`, :meth:`__float__` and :meth:`__complex__` are not " "defined then corresponding built-in functions :func:`int`, :func:`float` " @@ -5814,7 +5842,7 @@ msgstr "" "ορίζονται, τότε οι αντίστοιχες ενσωματωμένες συναρτήσεις :func:`int`, :func:" "`float` και :func:`complex` επιστρέφουν στο :meth:`__index__`." -#: reference/datamodel.rst:3452 +#: reference/datamodel.rst:3472 msgid "" "Called to implement the built-in function :func:`round` and :mod:`math` " "functions :func:`~math.trunc`, :func:`~math.floor` and :func:`~math.ceil`. " @@ -5828,16 +5856,16 @@ msgstr "" "όλες αυτές οι μέθοδοι θα πρέπει να επιστρέψουν την τιμή του αντικειμένου που " "περικόπτεται σε μια :class:`~numbers.Integral` (συνήθως ένα :class:`int`)." -#: reference/datamodel.rst:3458 +#: reference/datamodel.rst:3478 msgid "" ":func:`int` no longer delegates to the :meth:`~object.__trunc__` method." msgstr "Η :func:`int` δεν αναθέτει πλέον στη μέθοδο :meth:`~object.__trunc__`." -#: reference/datamodel.rst:3465 +#: reference/datamodel.rst:3485 msgid "With Statement Context Managers" msgstr "Με τους Διαχειριστές Περιβάλλοντος Δήλωσης" -#: reference/datamodel.rst:3467 +#: reference/datamodel.rst:3487 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 " @@ -5854,7 +5882,7 @@ msgstr "" "keyword:`!with` (που περιγράφεται στην ενότητα :ref:`with`), αλλά μπορούν " "επίσης να χρησιμοποιηθούν με απευθείας επίκληση των μεθόδων τους." -#: reference/datamodel.rst:3478 +#: reference/datamodel.rst:3498 msgid "" "Typical uses of context managers include saving and restoring various kinds " "of global state, locking and unlocking resources, closing opened files, etc." @@ -5863,7 +5891,7 @@ msgstr "" "αποθήκευση και την επαναφορά διαφόρων ειδών καθολικών καταστάσεων, το " "κλείδωμα και το ξεκλείδωμα πόρων, το κλείσιμο των ανοιχτών αρχείων κ.λπ." -#: reference/datamodel.rst:3481 +#: reference/datamodel.rst:3501 msgid "" "For more information on context managers, see :ref:`typecontextmanager`. " "The :class:`object` class itself does not provide the context manager " @@ -5873,7 +5901,7 @@ msgstr "" "ανατρέξτε στο :ref:`typecontextmanager`. Η ίδια η κλάση :class:`object` δεν " "παρέχει τις μεθόδους διαχειριστή περιβάλλοντος." -#: reference/datamodel.rst:3487 +#: reference/datamodel.rst:3507 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 " @@ -5884,7 +5912,7 @@ msgstr "" "αυτής της μεθόδου με τους στόχους που καθορίζονται στον όρο :keyword:`!as` " "της πρότασης, εάν υπάρχει." -#: reference/datamodel.rst:3494 +#: reference/datamodel.rst:3514 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 " @@ -5895,7 +5923,7 @@ msgstr "" "από το περιβάλλον. Εάν το περιβάλλον είχε βγει χωρίς εξαίρεση, και τα τρία " "ορίσματα θα είναι :const:`None`." -#: reference/datamodel.rst:3498 +#: reference/datamodel.rst:3518 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. " @@ -5907,7 +5935,7 @@ msgstr "" "πραγματική τιμή. Διαφορετικά, η εξαίρεση θα διεκπεραιωθεί κανονικά κατά την " "έξοδο από αυτήν τη μέθοδο." -#: reference/datamodel.rst:3502 +#: reference/datamodel.rst:3522 msgid "" "Note that :meth:`~object.__exit__` methods should not reraise the passed-in " "exception; this is the caller's responsibility." @@ -5915,11 +5943,11 @@ msgstr "" "Λάβετε υπόψη ότι οι μέθοδοι :meth:`~object.__exit__` δεν θα πρέπει να " "επαναφέρουν την εξαίρεση που μεταβιβάστηκε∙ αυτή είναι ευθύνη του καλούντος." -#: reference/datamodel.rst:3508 +#: reference/datamodel.rst:3528 msgid ":pep:`343` - The \"with\" statement" msgstr ":pep:`343` - Η πρόταση \"with\"" -#: reference/datamodel.rst:3509 +#: reference/datamodel.rst:3529 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." @@ -5927,11 +5955,11 @@ msgstr "" "Οι προδιαγραφές, το υπόβαθρο και τα παραδείγματα για τη δήλωση Python :" "keyword:`with`." -#: reference/datamodel.rst:3516 +#: reference/datamodel.rst:3536 msgid "Customizing positional arguments in class pattern matching" msgstr "Προσαρμογή ορισμάτων θέσης στην αντιστοίχιση προτύπων κλάσης" -#: reference/datamodel.rst:3518 +#: reference/datamodel.rst:3538 msgid "" "When using a class name in a pattern, positional arguments in the pattern " "are not allowed by default, i.e. ``case MyClass(x, y)`` is typically invalid " @@ -5944,7 +5972,7 @@ msgstr "" "μπορέσει να χρησιμοποιήσει αυτό το είδος μοτίβου, η κλάση πρέπει να ορίσει " "ένα χαρακτηριστικό *__match_args__*." -#: reference/datamodel.rst:3525 +#: reference/datamodel.rst:3545 msgid "" "This class variable can be assigned a tuple of strings. When this class is " "used in a class pattern with positional arguments, each positional argument " @@ -5958,7 +5986,7 @@ msgstr "" "την αντίστοιχη τιμή στο *__match_args__* ως λέξη-κλειδί. Η απουσία αυτού του " "χαρακτηριστικού ισοδυναμεί με τη ρύθμιση του σε ``()``." -#: reference/datamodel.rst:3531 +#: reference/datamodel.rst:3551 msgid "" "For example, if ``MyClass.__match_args__`` is ``(\"left\", \"center\", " "\"right\")`` that means that ``case MyClass(x, y)`` is equivalent to ``case " @@ -5974,19 +6002,19 @@ msgstr "" "στοιχείων στο *__match_args__* ∙ αν είναι μεγαλύτερο, η προσπάθεια " "αντιστοίχισης μοτίβου θα κάνει raise μια :exc:`TypeError`." -#: reference/datamodel.rst:3541 +#: reference/datamodel.rst:3561 msgid ":pep:`634` - Structural Pattern Matching" msgstr ":pep:`634` - Αντιστοίχιση δομικών προτύπων" -#: reference/datamodel.rst:3542 +#: reference/datamodel.rst:3562 msgid "The specification for the Python ``match`` statement." msgstr "Η προδιαγραφή για τη δήλωση Python ``match``." -#: reference/datamodel.rst:3548 +#: reference/datamodel.rst:3568 msgid "Emulating buffer types" msgstr "Εξομοίωση τύπων buffer" -#: reference/datamodel.rst:3550 +#: reference/datamodel.rst:3570 msgid "" "The :ref:`buffer protocol ` provides a way for Python objects " "to expose efficient access to a low-level memory array. This protocol is " @@ -5999,7 +6027,7 @@ msgstr "" "τύπους όπως :class:`bytes` και :class:`memoryview`, και οι βιβλιοθήκες " "τρίτων μπορούν να ορίσουν πρόσθετους τύπους buffer." -#: reference/datamodel.rst:3555 +#: reference/datamodel.rst:3575 msgid "" "While buffer types are usually implemented in C, it is also possible to " "implement the protocol in Python." @@ -6007,7 +6035,7 @@ msgstr "" "Ενώ οι τύπου buffer συνήθως υλοποιούνται σε C, είναι επίσης δυνατή η " "υλοποίηση του πρωτοκόλλου στην Python." -#: reference/datamodel.rst:3560 +#: reference/datamodel.rst:3580 msgid "" "Called when a buffer is requested from *self* (for example, by the :class:" "`memoryview` constructor). The *flags* argument is an integer representing " @@ -6024,7 +6052,7 @@ msgstr "" "έναν βολικό τρόπο ερμηνείας των flags. Η μέθοδος πρέπει να επιστρέψει ένα " "αντικείμενο :class:`memoryview`." -#: reference/datamodel.rst:3569 +#: reference/datamodel.rst:3589 msgid "" "Called when a buffer is no longer needed. The *buffer* argument is a :class:" "`memoryview` object that was previously returned by :meth:`~object." @@ -6039,29 +6067,29 @@ msgstr "" "``None``. Τα αντικείμενα buffer που δεν χρειάζονται εκκαθάριση δεν " "απαιτούνται για την εφαρμογή αυτής της μεθόδου." -#: reference/datamodel.rst:3580 +#: reference/datamodel.rst:3600 msgid ":pep:`688` - Making the buffer protocol accessible in Python" msgstr ":pep:`688` - Κάνοντας το πρωτόκολλο buffer προσβάσιμο στην Python" -#: reference/datamodel.rst:3581 +#: reference/datamodel.rst:3601 msgid "" "Introduces the Python ``__buffer__`` and ``__release_buffer__`` methods." msgstr "" "Παρουσιάζει τις μεθόδους Python ``__buffer__`` και ``__release_buffer__``." -#: reference/datamodel.rst:3583 +#: reference/datamodel.rst:3603 msgid ":class:`collections.abc.Buffer`" msgstr ":class:`collections.abc.Buffer`" -#: reference/datamodel.rst:3584 +#: reference/datamodel.rst:3604 msgid "ABC for buffer types." msgstr "ABC για τύπους buffer." -#: reference/datamodel.rst:3587 +#: reference/datamodel.rst:3607 msgid "Annotations" msgstr "Annotations" -#: reference/datamodel.rst:3589 +#: reference/datamodel.rst:3609 msgid "" "Functions, classes, and modules may contain :term:`annotations " "`, which are a way to associate information (usually :term:`type " @@ -6071,7 +6099,7 @@ msgstr "" "`annotations `, που είναι ένας τρόπος να συσχετιστεί πληροφορία " "(συνήθως :term:`type hints `) με ένα σύμβολο." -#: reference/datamodel.rst:3595 +#: reference/datamodel.rst:3615 msgid "" "This attribute contains the annotations for an object. It is :ref:`lazily " "evaluated `, so accessing the attribute may execute " @@ -6084,11 +6112,11 @@ msgstr "" "εξαιρέσεις. Εάν η αξιολόγηση είναι επιτυχής, το χαρακτηριστικό ορίζεται σε " "ένα λεξικό που αντιστοιχεί από ονόματα μεταβλητών σε annotations." -#: reference/datamodel.rst:3600 +#: reference/datamodel.rst:3620 msgid "Annotations are now lazily evaluated." msgstr "Τα annotations αξιολογούνται πλέον τεμπέλικα." -#: reference/datamodel.rst:3605 +#: reference/datamodel.rst:3625 msgid "" "An :term:`annotate function`. Returns a new dictionary object mapping " "attribute/parameter names to their annotation values." @@ -6097,7 +6125,7 @@ msgstr "" "αντιστοιχεί ονόματα χαρακτηριστικών/παραμέτρων στις τιμές των annotations " "τους." -#: reference/datamodel.rst:3608 +#: reference/datamodel.rst:3628 msgid "" "Takes a format parameter specifying the format in which annotations values " "should be provided. It must be a member of the :class:`annotationlib.Format` " @@ -6108,7 +6136,7 @@ msgstr "" "`annotationlib.Format` enum, ή ένας ακέραιος αριθμός με τιμή που αντιστοιχεί " "σε μέλος της enum." -#: reference/datamodel.rst:3612 +#: reference/datamodel.rst:3632 msgid "" "If an annotate function doesn't support the requested format, it must raise :" "exc:`NotImplementedError`. Annotate functions must always support :attr:" @@ -6120,7 +6148,7 @@ msgstr "" "να υποστηρίζουν τη μορφή :attr:`~annotationlib.Format.VALUE` ∙ δεν πρέπει να " "κάνουν raise :exc:`NotImplementedError()` όταν καλούνται με αυτή τη μορφή." -#: reference/datamodel.rst:3617 +#: reference/datamodel.rst:3637 msgid "" "When called with :attr:`~annotationlib.Format.VALUE` format, an annotate " "function may raise :exc:`NameError`; it must not raise :exc:`!NameError` " @@ -6130,7 +6158,7 @@ msgstr "" "συνάρτηση μπορεί να κάνει raise :exc:`NameError`∙ δεν πρέπει να κάνει raise :" "exc:`!NameError` όταν καλείται ζητώντας οποιαδήποτε άλλη μορφή." -#: reference/datamodel.rst:3620 +#: reference/datamodel.rst:3640 msgid "" "If an object does not have any annotations, :attr:`~object.__annotate__` " "should preferably be set to ``None`` (it can’t be deleted), rather than set " @@ -6141,23 +6169,23 @@ msgstr "" "να διαγραφεί), αντί να ορίζεται σε μια συνάρτηση που επιστρέφει ένα κενό " "dict." -#: reference/datamodel.rst:3627 +#: reference/datamodel.rst:3647 msgid ":pep:`649` --- Deferred evaluation of annotation using descriptors" msgstr "" ":pep:`649` --- Τεμπέλικη αξιολόγηση annotation χρησιμοποιώντας descriptors" -#: reference/datamodel.rst:3628 +#: reference/datamodel.rst:3648 msgid "" "Introduces lazy evaluation of annotations and the ``__annotate__`` function." msgstr "" "Παρουσιάζει την τεμπέλικη αξιολόγηση των annotations και τη συνάρτηση " "``__annotate__``." -#: reference/datamodel.rst:3634 +#: reference/datamodel.rst:3654 msgid "Special method lookup" msgstr "Αναζήτηση ειδικής μεθόδου" -#: reference/datamodel.rst:3636 +#: reference/datamodel.rst:3656 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 " @@ -6170,7 +6198,7 @@ msgstr "" "συμπεριφορά είναι ο λόγος για τον οποίο ο ακόλουθος κώδικας κάνει raise μια " "εξαίρεση::" -#: reference/datamodel.rst:3641 +#: reference/datamodel.rst:3661 msgid "" ">>> class C:\n" "... pass\n" @@ -6192,7 +6220,7 @@ msgstr "" " File \"\", line 1, in \n" "TypeError: object of type 'C' has no len()" -#: reference/datamodel.rst:3651 +#: reference/datamodel.rst:3671 msgid "" "The rationale behind this behaviour lies with a number of special methods " "such as :meth:`~object.__hash__` and :meth:`~object.__repr__` that are " @@ -6206,7 +6234,7 @@ msgstr "" "σιωπηρή αναζήτηση αυτών των μεθόδων χρησιμοποιούσε τη συμβατική διαδικασία " "αναζήτησης, θα αποτύγχανε όταν καλούνταν στο ίδιο το αντικείμενο τύπου::" -#: reference/datamodel.rst:3658 +#: reference/datamodel.rst:3678 msgid "" ">>> 1 .__hash__() == hash(1)\n" "True\n" @@ -6222,7 +6250,7 @@ msgstr "" " File \"\", line 1, in \n" "TypeError: descriptor '__hash__' of 'int' object needs an argument" -#: reference/datamodel.rst:3665 +#: reference/datamodel.rst:3685 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 " @@ -6232,7 +6260,7 @@ msgstr "" "αυτόν τον τρόπο αναφέρεται μερικές φορές ως 'σύγχυση μετακλάσης', και " "αποφεύγεται με παράκαμψη της παρουσίας κατά την αναζήτηση ειδικών μεθόδων::" -#: reference/datamodel.rst:3669 +#: reference/datamodel.rst:3689 msgid "" ">>> type(1).__hash__(1) == hash(1)\n" "True\n" @@ -6244,7 +6272,7 @@ msgstr "" ">>> type(int).__hash__(int) == hash(int)\n" "True" -#: reference/datamodel.rst:3674 +#: reference/datamodel.rst:3694 msgid "" "In addition to bypassing any instance attributes in the interest of " "correctness, implicit special method lookup generally also bypasses the :" @@ -6255,7 +6283,7 @@ msgstr "" "μέθοδο :meth:`~object.__getattribute__` ακόμη και της μετακλάσης του " "αντικειμένου::" -#: reference/datamodel.rst:3678 +#: reference/datamodel.rst:3698 msgid "" ">>> class Meta(type):\n" "... def __getattribute__(*args):\n" @@ -6301,7 +6329,7 @@ msgstr "" ">>> len(c) # Implicit lookup\n" "10" -#: reference/datamodel.rst:3700 +#: reference/datamodel.rst:3720 msgid "" "Bypassing the :meth:`~object.__getattribute__` machinery in this fashion " "provides significant scope for speed optimisations within the interpreter, " @@ -6315,15 +6343,15 @@ msgstr "" "ειδική μέθοδος *πρέπει* να οριστεί στο ίδιο το αντικείμενο κλάσης για να " "καλείται με συνέπεια από τον διερμηνέα)." -#: reference/datamodel.rst:3711 +#: reference/datamodel.rst:3731 msgid "Coroutines" msgstr "Coroutines" -#: reference/datamodel.rst:3715 +#: reference/datamodel.rst:3735 msgid "Awaitable Objects" msgstr "Awaitable Αντικείμενα" -#: reference/datamodel.rst:3717 +#: reference/datamodel.rst:3737 msgid "" "An :term:`awaitable` object generally implements an :meth:`~object." "__await__` method. :term:`Coroutine objects ` returned from :" @@ -6333,7 +6361,7 @@ msgstr "" "__await__`. Τα :term:`Coroutine objects ` που επιστρέφονται από " "τις :keyword:`async def` συναρτήσεις είναι awaitable." -#: reference/datamodel.rst:3723 +#: reference/datamodel.rst:3743 msgid "" "The :term:`generator iterator` objects returned from generators decorated " "with :func:`types.coroutine` are also awaitable, but they do not implement :" @@ -6343,7 +6371,7 @@ msgstr "" "διακοσμημένες με :func:`types.coroutine` είναι επίσης awaitable, αλλά δεν " "εφαρμόζουν το :meth:`~object.__await__`." -#: reference/datamodel.rst:3729 +#: reference/datamodel.rst:3749 msgid "" "Must return an :term:`iterator`. Should be used to implement :term:" "`awaitable` objects. For instance, :class:`asyncio.Future` implements this " @@ -6356,7 +6384,7 @@ msgstr "" "έκφραση :keyword:`await`. Η ίδια η κλάση :class:`object` δεν είναι αναμονή " "και δεν παρέχει αυτήν τη μέθοδο." -#: reference/datamodel.rst:3737 +#: reference/datamodel.rst:3757 msgid "" "The language doesn't place any restriction on the type or value of the " "objects yielded by the iterator returned by ``__await__``, as this is " @@ -6368,16 +6396,16 @@ msgstr "" "αυτό αφορά συγκεκριμένα την υλοποίηση του πλαισίου ασύγχρονης εκτέλεσης (π." "χ. :mod:`asyncio`) που θα διαχειρίζεται το :term:`awaitable` αντικείμενο." -#: reference/datamodel.rst:3745 +#: reference/datamodel.rst:3765 msgid ":pep:`492` for additional information about awaitable objects." msgstr "" "Το :pep:`492` για πρόσθετες πληροφορίες σχετικά με τα awaitable αντικείμενα." -#: reference/datamodel.rst:3751 +#: reference/datamodel.rst:3771 msgid "Coroutine Objects" msgstr "Coroutine Αντικείμενα" -#: reference/datamodel.rst:3753 +#: reference/datamodel.rst:3773 msgid "" ":term:`Coroutine objects ` are :term:`awaitable` objects. A " "coroutine's execution can be controlled by calling :meth:`~object.__await__` " @@ -6396,7 +6424,7 @@ msgstr "" "εξαίρεση, αυτή διαδίδεται από τον iterator. Οι coroutines δεν πρέπει να " "κάνουν raise ανεξέλεγκτες εξαιρέσεις :exc:`StopIteration`." -#: reference/datamodel.rst:3761 +#: reference/datamodel.rst:3781 msgid "" "Coroutines also have the methods listed below, which are analogous to those " "of generators (see :ref:`generator-methods`). However, unlike generators, " @@ -6407,13 +6435,13 @@ msgstr "" "Ωστόσο, σε αντίθεση με τις γεννήτριες, οι coroutines δεν υποστηρίζουν άμεσα " "την επανάληψη." -#: reference/datamodel.rst:3765 +#: reference/datamodel.rst:3785 msgid "It is a :exc:`RuntimeError` to await on a coroutine more than once." msgstr "" "Είναι ένα :exc:`RuntimeError` να περιμένει κανείς σε μια coroutine " "περισσότερες από μία φορές." -#: reference/datamodel.rst:3771 +#: reference/datamodel.rst:3791 msgid "" "Starts or resumes execution of the coroutine. If *value* is ``None``, this " "is equivalent to advancing the iterator returned by :meth:`~object." @@ -6431,7 +6459,7 @@ msgstr "" "εξαίρεση) είναι το ίδιο όπως όταν γίνεται επανάληψη πάνω από την τιμή " "επιστροφής :meth:`!__await__` , που περιγράφεται παραπάνω." -#: reference/datamodel.rst:3782 +#: reference/datamodel.rst:3802 msgid "" "Raises the specified exception in the coroutine. This method delegates to " "the :meth:`~generator.throw` method of the iterator that caused the " @@ -6450,7 +6478,7 @@ msgstr "" "παραπάνω. Εάν η εξαίρεση δεν περιλαμβάνεται στην coroutine, διαδίδεται πίσω " "από εκεί που καλέστηκε." -#: reference/datamodel.rst:3793 +#: reference/datamodel.rst:3813 msgid "" "The second signature \\(type\\[, value\\[, traceback\\]\\]\\) is deprecated " "and may be removed in a future version of Python." @@ -6458,7 +6486,7 @@ msgstr "" "Η δεύτερη υπογραφή \\(type\\[, value\\[, traceback\\]\\]\\) έχει καταργηθεί " "και μπορεί να αφαιρεθεί σε μια μελλοντική έκδοση της Python." -#: reference/datamodel.rst:3798 +#: reference/datamodel.rst:3818 msgid "" "Causes the coroutine to clean itself up and exit. If the coroutine is " "suspended, this method first delegates to the :meth:`~generator.close` " @@ -6475,7 +6503,7 @@ msgstr "" "coroutine επισημαίνεται ότι έχει τελειώσει την εκτέλεση, ακόμα κι αν δεν " "ξεκίνησε ποτέ." -#: reference/datamodel.rst:3806 +#: reference/datamodel.rst:3826 msgid "" "Coroutine objects are automatically closed using the above process when they " "are about to be destroyed." @@ -6483,11 +6511,11 @@ msgstr "" "Τα αντικείμενα coroutine κλείνουν αυτόματα χρησιμοποιώντας την παραπάνω " "διαδικασία όταν πρόκειται να καταστραφούν." -#: reference/datamodel.rst:3812 +#: reference/datamodel.rst:3832 msgid "Asynchronous Iterators" msgstr "Ασύγχρονοι Iterators" -#: reference/datamodel.rst:3814 +#: reference/datamodel.rst:3834 msgid "" "An *asynchronous iterator* can call asynchronous code in its ``__anext__`` " "method." @@ -6495,22 +6523,22 @@ msgstr "" "Ένας *ασύγχρονος iterator* μπορεί να καλέσει ασύγχρονο κώδικα με τη μέθοδο " "``__anext__``." -#: reference/datamodel.rst:3817 +#: reference/datamodel.rst:3837 msgid "" "Asynchronous iterators can be used in an :keyword:`async for` statement." msgstr "" "Οι ασύγχρονοι iterators μπορούν να χρησιμοποιηθούν σε μια δήλωση :keyword:" "`async for`." -#: reference/datamodel.rst:3868 +#: reference/datamodel.rst:3888 msgid "The :class:`object` class itself does not provide these methods." msgstr "Η ίδια η κλάση :class:`object` δεν παρέχει αυτές τις μεθόδους." -#: reference/datamodel.rst:3824 +#: reference/datamodel.rst:3844 msgid "Must return an *asynchronous iterator* object." msgstr "Πρέπει να επιστρέψει ένα αντικείμενο *ασύγχρονου iterator*." -#: reference/datamodel.rst:3828 +#: reference/datamodel.rst:3848 msgid "" "Must return an *awaitable* resulting in a next value of the iterator. " "Should raise a :exc:`StopAsyncIteration` error when the iteration is over." @@ -6519,11 +6547,11 @@ msgstr "" "τιμή iterator. Θα πρέπει να κάνει raise ένα σφάλμα :exc:" "`StopAsyncIteration` όταν τελειώσει η επανάληψη." -#: reference/datamodel.rst:3831 +#: reference/datamodel.rst:3851 msgid "An example of an asynchronous iterable object::" msgstr "Παράδειγμα σύγχρονου iterator αντικειμένου::" -#: reference/datamodel.rst:3833 +#: reference/datamodel.rst:3853 msgid "" "class Reader:\n" " async def readline(self):\n" @@ -6551,7 +6579,7 @@ msgstr "" " raise StopAsyncIteration\n" " return val" -#: reference/datamodel.rst:3848 +#: reference/datamodel.rst:3868 msgid "" "Prior to Python 3.7, :meth:`~object.__aiter__` could return an *awaitable* " "that would resolve to an :term:`asynchronous iterator `." -#: reference/datamodel.rst:3853 +#: reference/datamodel.rst:3873 msgid "" "Starting with Python 3.7, :meth:`~object.__aiter__` must return an " "asynchronous iterator object. Returning anything else will result in a :exc:" @@ -6571,11 +6599,11 @@ msgstr "" "επιστρέψει ένα ασύγχρονο αντικείμενο iterator. Εάν επιστρέφει οτιδήποτε " "άλλο θα έχει ως αποτέλεσμα ένα σφάλμα :exc:`TypeError`." -#: reference/datamodel.rst:3861 +#: reference/datamodel.rst:3881 msgid "Asynchronous Context Managers" msgstr "Ασύγχρονοι Διαχειριστές Περιβάλλοντος" -#: reference/datamodel.rst:3863 +#: reference/datamodel.rst:3883 msgid "" "An *asynchronous context manager* is a *context manager* that is able to " "suspend execution in its ``__aenter__`` and ``__aexit__`` methods." @@ -6584,7 +6612,7 @@ msgstr "" "περιβάλλοντος* που μπορεί να αναστείλει την εκτέλεση στις μεθόδους " "``__aenter__`` και ``__aexit__``." -#: reference/datamodel.rst:3866 +#: reference/datamodel.rst:3886 msgid "" "Asynchronous context managers can be used in an :keyword:`async with` " "statement." @@ -6592,7 +6620,7 @@ msgstr "" "Οι ασύγχρονοι διαχειριστές περιβάλλοντος μπορούν να χρησιμοποιηθούν σε μια " "δήλωση :keyword:`async with`." -#: reference/datamodel.rst:3872 +#: reference/datamodel.rst:3892 msgid "" "Semantically similar to :meth:`~object.__enter__`, the only difference being " "that it must return an *awaitable*." @@ -6600,7 +6628,7 @@ msgstr "" "Σημασιολογικά παρόμοια με :meth:`~object.__enter__`, η μόνη διαφορά είναι " "ότι πρέπει να επιστρέψει ένα *awaitable*." -#: reference/datamodel.rst:3877 +#: reference/datamodel.rst:3897 msgid "" "Semantically similar to :meth:`~object.__exit__`, the only difference being " "that it must return an *awaitable*." @@ -6608,11 +6636,11 @@ msgstr "" "Σημασιολογικά παρόμοια με :meth:`~object.__exit__`, η μόνη διαφορά είναι ότι " "πρέπει να επιστρέψει ένα *awaitable*." -#: reference/datamodel.rst:3880 +#: reference/datamodel.rst:3900 msgid "An example of an asynchronous context manager class::" msgstr "Ένα παράδειγμα κλάσης ασύγχρονης διαχείρισης περιβάλλοντος::" -#: reference/datamodel.rst:3882 +#: reference/datamodel.rst:3902 msgid "" "class AsyncContextManager:\n" " async def __aenter__(self):\n" @@ -6628,11 +6656,11 @@ msgstr "" " async def __aexit__(self, exc_type, exc, tb):\n" " await log('exiting context')" -#: reference/datamodel.rst:3893 +#: reference/datamodel.rst:3913 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: reference/datamodel.rst:3894 +#: reference/datamodel.rst:3914 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 " @@ -6643,7 +6671,7 @@ msgstr "" "όμως, καθώς μπορεί να οδηγήσει σε κάποια πολύ περίεργη συμπεριφορά εάν γίνει " "λάθος χειρισμός." -#: reference/datamodel.rst:3898 +#: reference/datamodel.rst:3918 msgid "" "The :meth:`~object.__hash__`, :meth:`~object.__iter__`, :meth:`~object." "__reversed__`, :meth:`~object.__contains__`, :meth:`~object." @@ -6658,7 +6686,7 @@ msgstr "" "μπορεί να το κάνουν με την αξιοποίηση της συμπεριφοράς ότι το ``None`` δεν " "είναι καλούμενο." -#: reference/datamodel.rst:3905 +#: reference/datamodel.rst:3925 msgid "" "\"Does not support\" here means that the class has no such method, or the " "method returns :data:`NotImplemented`. Do not set the method to ``None`` if " @@ -6671,7 +6699,7 @@ msgstr "" "δεξιού τελεστή-αυτό θα έχει το αντίθετο αποτέλεσμα του ρητού " "*μπλοκαρίσματος* αυτού του εναλλακτικού." -#: reference/datamodel.rst:3911 +#: reference/datamodel.rst:3931 msgid "" "For operands of the same type, it is assumed that if the non-reflected " "method (such as :meth:`~object.__add__`) fails then the operation is not " @@ -6681,7 +6709,7 @@ msgstr "" "(όπως :meth:`~object.__add__`) αποτύχει τότε η λειτουργία δεν υποστηρίζεται, " "γι' αυτό δεν καλείται η ανακλώμενη μέθοδος." -#: reference/datamodel.rst:3915 +#: reference/datamodel.rst:3935 msgid "" "If the right operand's type is a subclass of the left operand's type, the " "reflected method having precedence allows subclasses to override their " @@ -6691,963 +6719,971 @@ msgstr "" "τελεστή, η προτεραιότητα της ανακλώμενης μεθόδου επιτρέπει στις υποκλάσεις " "να υπερισχύουν των λειτουργιών των προγόνων τους." -#: reference/datamodel.rst:152 reference/datamodel.rst:187 -#: reference/datamodel.rst:232 reference/datamodel.rst:270 -#: reference/datamodel.rst:301 reference/datamodel.rst:368 -#: reference/datamodel.rst:414 reference/datamodel.rst:452 -#: reference/datamodel.rst:471 reference/datamodel.rst:524 -#: reference/datamodel.rst:677 reference/datamodel.rst:839 -#: reference/datamodel.rst:1153 reference/datamodel.rst:1340 -#: reference/datamodel.rst:1520 reference/datamodel.rst:1738 -#: reference/datamodel.rst:3181 +#: reference/datamodel.rst:148 reference/datamodel.rst:183 +#: reference/datamodel.rst:228 reference/datamodel.rst:266 +#: reference/datamodel.rst:297 reference/datamodel.rst:364 +#: reference/datamodel.rst:410 reference/datamodel.rst:448 +#: reference/datamodel.rst:467 reference/datamodel.rst:520 +#: reference/datamodel.rst:673 reference/datamodel.rst:835 +#: reference/datamodel.rst:1149 reference/datamodel.rst:1344 +#: reference/datamodel.rst:1524 reference/datamodel.rst:1749 +#: reference/datamodel.rst:3201 msgid "object" msgstr "αντικείμενο" -#: reference/datamodel.rst:126 +#: reference/datamodel.rst:122 msgid "data" msgstr "δεδομένα" -#: reference/datamodel.rst:301 reference/datamodel.rst:432 -#: reference/datamodel.rst:815 reference/datamodel.rst:1821 -#: reference/datamodel.rst:2070 reference/datamodel.rst:2720 -#: reference/datamodel.rst:3309 reference/datamodel.rst:3412 -#: reference/datamodel.rst:3450 +#: reference/datamodel.rst:297 reference/datamodel.rst:428 +#: reference/datamodel.rst:811 reference/datamodel.rst:1832 +#: reference/datamodel.rst:2081 reference/datamodel.rst:2736 +#: reference/datamodel.rst:3329 reference/datamodel.rst:3432 +#: reference/datamodel.rst:3470 msgid "built-in function" msgstr "ενσωματωμένη συνάρτηση" -#: reference/datamodel.rst:23 +#: reference/datamodel.rst:22 msgid "id" msgstr "αναγνωριστικό" -#: reference/datamodel.rst:126 reference/datamodel.rst:2720 +#: reference/datamodel.rst:122 reference/datamodel.rst:2736 msgid "type" msgstr "τύπος" -#: reference/datamodel.rst:23 +#: reference/datamodel.rst:22 msgid "identity of an object" msgstr "ταυτότητα ενός αντικειμένου" -#: reference/datamodel.rst:23 +#: reference/datamodel.rst:22 msgid "value of an object" msgstr "τιμή ενός αντικειμένου" -#: reference/datamodel.rst:23 +#: reference/datamodel.rst:22 msgid "type of an object" msgstr "τύπος ενός αντικειμένου" -#: reference/datamodel.rst:23 +#: reference/datamodel.rst:22 msgid "mutable object" msgstr "ευμετάβλητο αντικείμενο" -#: reference/datamodel.rst:23 +#: reference/datamodel.rst:22 msgid "immutable object" msgstr "αμετάβλητο αντικείμενο" -#: reference/datamodel.rst:60 +#: reference/datamodel.rst:56 msgid "garbage collection" msgstr "συλλογή σκουπιδιών" -#: reference/datamodel.rst:60 +#: reference/datamodel.rst:56 msgid "reference counting" msgstr "καταμέτρηση αναφοράς" -#: reference/datamodel.rst:60 +#: reference/datamodel.rst:56 msgid "unreachable object" msgstr "απρόσιτο αντικείμενο" -#: reference/datamodel.rst:1153 +#: reference/datamodel.rst:1149 msgid "container" msgstr "κοντέινερ" -#: reference/datamodel.rst:126 +#: reference/datamodel.rst:122 msgid "hierarchy" msgstr "ιεραρχία" -#: reference/datamodel.rst:126 +#: reference/datamodel.rst:122 msgid "extension" msgstr "επέκταση" -#: reference/datamodel.rst:405 reference/datamodel.rst:507 -#: reference/datamodel.rst:895 reference/datamodel.rst:1369 +#: reference/datamodel.rst:401 reference/datamodel.rst:503 +#: reference/datamodel.rst:891 reference/datamodel.rst:1373 msgid "module" msgstr "module" -#: reference/datamodel.rst:270 reference/datamodel.rst:815 +#: reference/datamodel.rst:266 reference/datamodel.rst:811 msgid "C" msgstr "C" -#: reference/datamodel.rst:270 reference/datamodel.rst:815 +#: reference/datamodel.rst:266 reference/datamodel.rst:811 msgid "language" msgstr "γλώσσα" -#: reference/datamodel.rst:1153 reference/datamodel.rst:1313 -#: reference/datamodel.rst:1333 +#: reference/datamodel.rst:1149 reference/datamodel.rst:1317 +#: reference/datamodel.rst:1337 msgid "attribute" msgstr "χαρακτηριστικό" -#: reference/datamodel.rst:139 +#: reference/datamodel.rst:135 msgid "special" msgstr "ειδικό" -#: reference/datamodel.rst:139 +#: reference/datamodel.rst:135 msgid "generic" msgstr "γενικό" -#: reference/datamodel.rst:187 +#: reference/datamodel.rst:183 msgid "..." msgstr "..." -#: reference/datamodel.rst:187 +#: reference/datamodel.rst:183 msgid "ellipsis literal" msgstr "ellipsis literal" -#: reference/datamodel.rst:1340 +#: reference/datamodel.rst:1344 msgid "numeric" msgstr "αριθμητικό" -#: reference/datamodel.rst:238 reference/datamodel.rst:348 +#: reference/datamodel.rst:234 reference/datamodel.rst:344 msgid "integer" msgstr "ακέραιος" -#: reference/datamodel.rst:238 +#: reference/datamodel.rst:234 msgid "representation" msgstr "αναπαράσταση" -#: reference/datamodel.rst:253 +#: reference/datamodel.rst:249 msgid "Boolean" msgstr "Boolean" -#: reference/datamodel.rst:253 +#: reference/datamodel.rst:249 msgid "False" msgstr "False" -#: reference/datamodel.rst:253 +#: reference/datamodel.rst:249 msgid "True" msgstr "True" -#: reference/datamodel.rst:270 +#: reference/datamodel.rst:266 msgid "floating-point" msgstr "κινητής υποδιαστολής" -#: reference/datamodel.rst:288 +#: reference/datamodel.rst:284 msgid "number" msgstr "αριθμός" -#: reference/datamodel.rst:270 +#: reference/datamodel.rst:266 msgid "Java" msgstr "Java" -#: reference/datamodel.rst:3422 +#: reference/datamodel.rst:3442 msgid "complex" msgstr "complex" -#: reference/datamodel.rst:432 reference/datamodel.rst:3151 +#: reference/datamodel.rst:428 reference/datamodel.rst:3171 msgid "len" msgstr "len" -#: reference/datamodel.rst:1340 +#: reference/datamodel.rst:1344 msgid "sequence" msgstr "ακολουθία" -#: reference/datamodel.rst:301 +#: reference/datamodel.rst:297 msgid "index operation" msgstr "λειτουργία ευρετηρίου" -#: reference/datamodel.rst:301 +#: reference/datamodel.rst:297 msgid "item selection" msgstr "επιλογή αντικειμένου" -#: reference/datamodel.rst:393 reference/datamodel.rst:471 +#: reference/datamodel.rst:389 reference/datamodel.rst:467 msgid "subscription" msgstr "εγγραφή" -#: reference/datamodel.rst:393 +#: reference/datamodel.rst:389 msgid "slicing" msgstr "τμηματοποίηση" -#: reference/datamodel.rst:333 +#: reference/datamodel.rst:329 msgid "immutable sequence" msgstr "αμετάβλητη ακολουθία" -#: reference/datamodel.rst:333 +#: reference/datamodel.rst:329 msgid "immutable" msgstr "αμετάβλητο" -#: reference/datamodel.rst:2039 reference/datamodel.rst:2070 +#: reference/datamodel.rst:2050 reference/datamodel.rst:2081 msgid "string" msgstr "συμβολοσειρά" -#: reference/datamodel.rst:344 +#: reference/datamodel.rst:340 msgid "immutable sequences" msgstr "αμετάβλητες ακολουθίες" -#: reference/datamodel.rst:348 +#: reference/datamodel.rst:344 msgid "chr" msgstr "chr" -#: reference/datamodel.rst:348 +#: reference/datamodel.rst:344 msgid "ord" msgstr "ord" -#: reference/datamodel.rst:348 +#: reference/datamodel.rst:344 msgid "character" msgstr "χαρακτήρας" -#: reference/datamodel.rst:348 +#: reference/datamodel.rst:344 msgid "Unicode" msgstr "Unicode" -#: reference/datamodel.rst:368 +#: reference/datamodel.rst:364 msgid "tuple" msgstr "πλειάδα" -#: reference/datamodel.rst:368 +#: reference/datamodel.rst:364 msgid "singleton" msgstr "singleton" -#: reference/datamodel.rst:368 +#: reference/datamodel.rst:364 msgid "empty" msgstr "empty" -#: reference/datamodel.rst:2064 +#: reference/datamodel.rst:2075 msgid "bytes" msgstr "bytes" -#: reference/datamodel.rst:381 +#: reference/datamodel.rst:377 msgid "byte" msgstr "byte" -#: reference/datamodel.rst:393 +#: reference/datamodel.rst:389 msgid "mutable sequence" msgstr "ευμετάβλητη ακολουθία" -#: reference/datamodel.rst:393 +#: reference/datamodel.rst:389 msgid "mutable" msgstr "ευμετάβλητο" -#: reference/datamodel.rst:1171 reference/datamodel.rst:1333 +#: reference/datamodel.rst:1167 reference/datamodel.rst:1337 msgid "assignment" msgstr "εκχώρηση" -#: reference/datamodel.rst:875 reference/datamodel.rst:1957 -#: reference/datamodel.rst:3474 +#: reference/datamodel.rst:871 reference/datamodel.rst:1968 +#: reference/datamodel.rst:3494 msgid "statement" msgstr "δήλωση" -#: reference/datamodel.rst:405 +#: reference/datamodel.rst:401 msgid "array" msgstr "πίνακας" -#: reference/datamodel.rst:406 +#: reference/datamodel.rst:402 msgid "collections" msgstr "συλλογές" -#: reference/datamodel.rst:414 +#: reference/datamodel.rst:410 msgid "list" msgstr "λίστα" -#: reference/datamodel.rst:421 +#: reference/datamodel.rst:417 msgid "bytearray" msgstr "πίνακας byte" -#: reference/datamodel.rst:432 +#: reference/datamodel.rst:428 msgid "set type" msgstr "τύπος συνόλου" -#: reference/datamodel.rst:452 +#: reference/datamodel.rst:448 msgid "set" msgstr "σύνολο" -#: reference/datamodel.rst:460 +#: reference/datamodel.rst:456 msgid "frozenset" msgstr "αμετάβλητο σύνολο" -#: reference/datamodel.rst:1340 +#: reference/datamodel.rst:1344 msgid "mapping" msgstr "αντιστοίχιση" -#: reference/datamodel.rst:1153 reference/datamodel.rst:2163 +#: reference/datamodel.rst:1149 reference/datamodel.rst:2174 msgid "dictionary" msgstr "λεξικό" -#: reference/datamodel.rst:507 +#: reference/datamodel.rst:503 msgid "dbm.ndbm" msgstr "dbm.ndbm" -#: reference/datamodel.rst:507 +#: reference/datamodel.rst:503 msgid "dbm.gnu" msgstr "dbm.gnu" -#: reference/datamodel.rst:524 +#: reference/datamodel.rst:520 msgid "callable" msgstr "με δυνατότητα κλήσης" -#: reference/datamodel.rst:539 reference/datamodel.rst:777 -#: reference/datamodel.rst:815 +#: reference/datamodel.rst:535 reference/datamodel.rst:773 +#: reference/datamodel.rst:811 msgid "function" msgstr "συνάρτηση" -#: reference/datamodel.rst:1153 reference/datamodel.rst:3101 +#: reference/datamodel.rst:1149 reference/datamodel.rst:3117 msgid "call" msgstr "κλήση" -#: reference/datamodel.rst:524 +#: reference/datamodel.rst:520 msgid "invocation" msgstr "εκτέλεση" -#: reference/datamodel.rst:524 +#: reference/datamodel.rst:520 msgid "argument" msgstr "παράμετρος" -#: reference/datamodel.rst:677 +#: reference/datamodel.rst:673 msgid "user-defined" msgstr "ορισμένο από τον χρήστη" -#: reference/datamodel.rst:539 +#: reference/datamodel.rst:535 msgid "user-defined function" msgstr "συνάρτηση ορισμένη από τον χρήστη" -#: reference/datamodel.rst:552 +#: reference/datamodel.rst:548 msgid "__closure__ (function attribute)" msgstr "__closure__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:552 +#: reference/datamodel.rst:548 msgid "__globals__ (function attribute)" msgstr "__globals__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:552 +#: reference/datamodel.rst:548 msgid "global" msgstr "global" -#: reference/datamodel.rst:895 +#: reference/datamodel.rst:891 msgid "namespace" msgstr "πεδίο ονομάτων" -#: reference/datamodel.rst:579 +#: reference/datamodel.rst:575 msgid "__doc__ (function attribute)" msgstr "__doc__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:579 +#: reference/datamodel.rst:575 msgid "__name__ (function attribute)" msgstr "__name__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:579 +#: reference/datamodel.rst:575 msgid "__module__ (function attribute)" msgstr "__module__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:579 +#: reference/datamodel.rst:575 msgid "__dict__ (function attribute)" msgstr "__dict__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:579 +#: reference/datamodel.rst:575 msgid "__defaults__ (function attribute)" msgstr "__defaults__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:579 +#: reference/datamodel.rst:575 msgid "__code__ (function attribute)" msgstr "__code__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:579 +#: reference/datamodel.rst:575 msgid "__annotations__ (function attribute)" msgstr "__annotations__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:579 +#: reference/datamodel.rst:575 msgid "__annotate__ (function attribute)" msgstr "__annotate__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:579 +#: reference/datamodel.rst:575 msgid "__kwdefaults__ (function attribute)" msgstr "__kwdefaults__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:579 +#: reference/datamodel.rst:575 msgid "__type_params__ (function attribute)" msgstr "__type_params__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:839 +#: reference/datamodel.rst:835 msgid "method" msgstr "μέθοδος" -#: reference/datamodel.rst:677 +#: reference/datamodel.rst:673 msgid "user-defined method" msgstr "μέθοδος ορισμένη από τον χρήστη" -#: reference/datamodel.rst:685 +#: reference/datamodel.rst:681 msgid "__func__ (method attribute)" msgstr "__func__ (χαρακτηριστικό μεθόδου)" -#: reference/datamodel.rst:685 +#: reference/datamodel.rst:681 msgid "__self__ (method attribute)" msgstr "__self__ (χαρακτηριστικό μεθόδου)" -#: reference/datamodel.rst:685 +#: reference/datamodel.rst:681 msgid "__doc__ (method attribute)" msgstr "__doc__ (χαρακτηριστικό μεθόδου)" -#: reference/datamodel.rst:685 +#: reference/datamodel.rst:681 msgid "__name__ (method attribute)" msgstr "__name__ (χαρακτηριστικό μεθόδου)" -#: reference/datamodel.rst:685 +#: reference/datamodel.rst:681 msgid "__module__ (method attribute)" msgstr "__module__ (χαρακτηριστικό μεθόδου)" -#: reference/datamodel.rst:1520 +#: reference/datamodel.rst:1524 msgid "generator" msgstr "γεννήτρια" -#: reference/datamodel.rst:759 +#: reference/datamodel.rst:755 msgid "iterator" msgstr "iterator" -#: reference/datamodel.rst:3707 +#: reference/datamodel.rst:3727 msgid "coroutine" msgstr "coroutine" -#: reference/datamodel.rst:790 +#: reference/datamodel.rst:786 msgid "asynchronous generator" msgstr "ασύγχρονη γεννήτρια" -#: reference/datamodel.rst:790 +#: reference/datamodel.rst:786 msgid "asynchronous iterator" msgstr "ασύγχρονος iterator" -#: reference/datamodel.rst:839 +#: reference/datamodel.rst:835 msgid "built-in method" msgstr "ενσωματωμένη μέθοδος" -#: reference/datamodel.rst:839 +#: reference/datamodel.rst:835 msgid "built-in" msgstr "built-in" -#: reference/datamodel.rst:875 +#: reference/datamodel.rst:871 msgid "import" msgstr "import" -#: reference/datamodel.rst:895 +#: reference/datamodel.rst:891 msgid "__name__ (module attribute)" msgstr "__name__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:895 +#: reference/datamodel.rst:891 msgid "__spec__ (module attribute)" msgstr "__spec__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:895 +#: reference/datamodel.rst:891 msgid "__package__ (module attribute)" msgstr "__package__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:895 +#: reference/datamodel.rst:891 msgid "__loader__ (module attribute)" msgstr "__loader__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:895 +#: reference/datamodel.rst:891 msgid "__path__ (module attribute)" msgstr "__path__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:895 +#: reference/datamodel.rst:891 msgid "__file__ (module attribute)" msgstr "__file__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:895 +#: reference/datamodel.rst:891 msgid "__cached__ (module attribute)" msgstr "__cached__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:895 +#: reference/datamodel.rst:891 msgid "__doc__ (module attribute)" msgstr "__doc__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:895 +#: reference/datamodel.rst:891 msgid "__annotations__ (module attribute)" msgstr "__annotations__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:895 +#: reference/datamodel.rst:891 msgid "__annotate__ (module attribute)" msgstr "__annotate__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:1121 +#: reference/datamodel.rst:1117 msgid "__dict__ (module attribute)" msgstr "__dict__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:1171 reference/datamodel.rst:1940 -#: reference/datamodel.rst:2831 +#: reference/datamodel.rst:1167 reference/datamodel.rst:1951 +#: reference/datamodel.rst:2847 msgid "class" msgstr "κλάση" -#: reference/datamodel.rst:1313 reference/datamodel.rst:1333 +#: reference/datamodel.rst:1317 reference/datamodel.rst:1337 msgid "class instance" msgstr "στιγμιότυπο κλάσης" -#: reference/datamodel.rst:1313 reference/datamodel.rst:3101 +#: reference/datamodel.rst:1317 reference/datamodel.rst:3117 msgid "instance" msgstr "στιγμιότυπο" -#: reference/datamodel.rst:1176 +#: reference/datamodel.rst:1172 msgid "class object" msgstr "αντικείμενα κλάσης" -#: reference/datamodel.rst:1183 +#: reference/datamodel.rst:1179 msgid "__name__ (class attribute)" msgstr "__name__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1183 +#: reference/datamodel.rst:1179 msgid "__module__ (class attribute)" msgstr "__module__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1183 +#: reference/datamodel.rst:1179 msgid "__dict__ (class attribute)" msgstr "__dict__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1183 +#: reference/datamodel.rst:1179 msgid "__bases__ (class attribute)" msgstr "__bases__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1183 +#: reference/datamodel.rst:1179 +msgid "__base__ (class attribute)" +msgstr "__base__ (χαρακτηριστικό κλάσης)" + +#: reference/datamodel.rst:1179 msgid "__doc__ (class attribute)" msgstr "__doc__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1183 +#: reference/datamodel.rst:1179 msgid "__annotations__ (class attribute)" msgstr "__annotations__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1183 +#: reference/datamodel.rst:1179 msgid "__annotate__ (class attribute)" msgstr "__annotate__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1183 +#: reference/datamodel.rst:1179 msgid "__type_params__ (class attribute)" msgstr "__type_params__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1183 +#: reference/datamodel.rst:1179 msgid "__static_attributes__ (class attribute)" msgstr "__static_attributes__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1183 +#: reference/datamodel.rst:1179 msgid "__firstlineno__ (class attribute)" msgstr "__firstlineno__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1351 +#: reference/datamodel.rst:1355 msgid "__dict__ (instance attribute)" msgstr "__dict__ (χαρακτηριστικό στιγμιοτύπου)" -#: reference/datamodel.rst:1351 +#: reference/datamodel.rst:1355 msgid "__class__ (instance attribute)" msgstr "__class__ (χαρακτηριστικό στιγμιοτύπου)" -#: reference/datamodel.rst:1369 +#: reference/datamodel.rst:1373 msgid "open" msgstr "open" -#: reference/datamodel.rst:1369 +#: reference/datamodel.rst:1373 msgid "io" msgstr "io" -#: reference/datamodel.rst:1369 +#: reference/datamodel.rst:1373 msgid "popen() (in module os)" msgstr "popen() (στο module os)" -#: reference/datamodel.rst:1369 +#: reference/datamodel.rst:1373 msgid "makefile() (socket method)" msgstr "makefile() (μέθοδος socket)" -#: reference/datamodel.rst:1369 +#: reference/datamodel.rst:1373 msgid "sys.stdin" msgstr "sys.stdin" -#: reference/datamodel.rst:1369 +#: reference/datamodel.rst:1373 msgid "sys.stdout" msgstr "sys.stdout" -#: reference/datamodel.rst:1369 +#: reference/datamodel.rst:1373 msgid "sys.stderr" msgstr "sys.stderr" -#: reference/datamodel.rst:1369 +#: reference/datamodel.rst:1373 msgid "stdio" msgstr "stdio" -#: reference/datamodel.rst:1369 +#: reference/datamodel.rst:1373 msgid "stdin (in module sys)" msgstr "stdin (στο module sys)" -#: reference/datamodel.rst:1369 +#: reference/datamodel.rst:1373 msgid "stdout (in module sys)" msgstr "stdout (στο module sys)" -#: reference/datamodel.rst:1369 +#: reference/datamodel.rst:1373 msgid "stderr (in module sys)" msgstr "stderr (στο module sys)" -#: reference/datamodel.rst:1398 +#: reference/datamodel.rst:1402 msgid "internal type" msgstr "εσωτερικός τύπος" -#: reference/datamodel.rst:1398 +#: reference/datamodel.rst:1402 msgid "types, internal" msgstr "τύποι, εσωτερικό" -#: reference/datamodel.rst:1412 +#: reference/datamodel.rst:1416 msgid "bytecode" msgstr "bytecode" -#: reference/datamodel.rst:1412 +#: reference/datamodel.rst:1416 msgid "code" msgstr "code" -#: reference/datamodel.rst:1412 +#: reference/datamodel.rst:1416 msgid "code object" msgstr "code object" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_argcount (code object attribute)" msgstr "co_argcount (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_posonlyargcount (code object attribute)" msgstr "co_posonlyargcount (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_kwonlyargcount (code object attribute)" msgstr "co_kwonlyargcount (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_code (code object attribute)" msgstr "co_code (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_consts (code object attribute)" msgstr "co_consts (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_filename (code object attribute)" msgstr "co_filename (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_firstlineno (code object attribute)" msgstr "co_firstlineno (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_flags (code object attribute)" msgstr "co_flags (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_lnotab (code object attribute)" msgstr "co_lnotab (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_name (code object attribute)" msgstr "co_name (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_names (code object attribute)" msgstr "co_names (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_nlocals (code object attribute)" msgstr "co_nlocals (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_stacksize (code object attribute)" msgstr "co_stacksize (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_varnames (code object attribute)" msgstr "co_varnames (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_cellvars (code object attribute)" msgstr "co_cellvars (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_freevars (code object attribute)" msgstr "co_freevars (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1423 +#: reference/datamodel.rst:1427 msgid "co_qualname (code object attribute)" msgstr "co_qualname (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1536 +#: reference/datamodel.rst:1540 msgid "documentation string" msgstr "κείμενο τεκμηρίωσης" -#: reference/datamodel.rst:1628 +#: reference/datamodel.rst:1632 msgid "frame" msgstr "frame" -#: reference/datamodel.rst:1634 +#: reference/datamodel.rst:1638 msgid "f_back (frame attribute)" msgstr "f_back (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1634 +#: reference/datamodel.rst:1638 msgid "f_code (frame attribute)" msgstr "f_code (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1634 +#: reference/datamodel.rst:1638 msgid "f_globals (frame attribute)" msgstr "f_globals (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1634 +#: reference/datamodel.rst:1638 msgid "f_locals (frame attribute)" msgstr "f_locals (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1634 +#: reference/datamodel.rst:1638 msgid "f_lasti (frame attribute)" msgstr "f_lasti (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1634 +#: reference/datamodel.rst:1638 msgid "f_builtins (frame attribute)" msgstr "f_builtins (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1678 +#: reference/datamodel.rst:1638 +msgid "f_generator (frame attribute)" +msgstr "f_generator (χαρακτηριστικό frame)" + +#: reference/datamodel.rst:1689 msgid "f_trace (frame attribute)" msgstr "f_trace (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1678 +#: reference/datamodel.rst:1689 msgid "f_trace_lines (frame attribute)" msgstr "f_trace_lines (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1678 +#: reference/datamodel.rst:1689 msgid "f_trace_opcodes (frame attribute)" msgstr "f_trace_opcodes (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1678 +#: reference/datamodel.rst:1689 msgid "f_lineno (frame attribute)" msgstr "f_lineno (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1738 +#: reference/datamodel.rst:1749 msgid "traceback" msgstr "traceback" -#: reference/datamodel.rst:1738 +#: reference/datamodel.rst:1749 msgid "stack" msgstr "stack" -#: reference/datamodel.rst:1738 +#: reference/datamodel.rst:1749 msgid "trace" msgstr "trace" -#: reference/datamodel.rst:1738 +#: reference/datamodel.rst:1749 msgid "exception" msgstr "exception" -#: reference/datamodel.rst:1738 +#: reference/datamodel.rst:1749 msgid "handler" msgstr "χειριστής" -#: reference/datamodel.rst:1738 +#: reference/datamodel.rst:1749 msgid "execution" msgstr "execution" -#: reference/datamodel.rst:1738 +#: reference/datamodel.rst:1749 msgid "exc_info (in module sys)" msgstr "exc_info (στο module sys)" -#: reference/datamodel.rst:1738 +#: reference/datamodel.rst:1749 msgid "last_traceback (in module sys)" msgstr "last_traceback (στο module sys)" -#: reference/datamodel.rst:1738 +#: reference/datamodel.rst:1749 msgid "sys.exc_info" msgstr "sys.exc_info" -#: reference/datamodel.rst:1738 +#: reference/datamodel.rst:1749 msgid "sys.exception" msgstr "sys.exception" -#: reference/datamodel.rst:1738 +#: reference/datamodel.rst:1749 msgid "sys.last_traceback" msgstr "sys.last_traceback" -#: reference/datamodel.rst:1775 +#: reference/datamodel.rst:1786 msgid "tb_frame (traceback attribute)" msgstr "tb_frame (χαρακτηριστικό traceback)" -#: reference/datamodel.rst:1775 +#: reference/datamodel.rst:1786 msgid "tb_lineno (traceback attribute)" msgstr "tb_lineno (χαρακτηριστικό traceback)" -#: reference/datamodel.rst:1775 +#: reference/datamodel.rst:1786 msgid "tb_lasti (traceback attribute)" msgstr "tb_lasti (χαρακτηριστικό traceback)" -#: reference/datamodel.rst:1775 +#: reference/datamodel.rst:1786 msgid "try" msgstr "try" -#: reference/datamodel.rst:1805 +#: reference/datamodel.rst:1816 msgid "tb_next (traceback attribute)" msgstr "tb_next (χαρακτηριστικό traceback)" -#: reference/datamodel.rst:3181 +#: reference/datamodel.rst:3201 msgid "slice" msgstr "slice" -#: reference/datamodel.rst:1827 +#: reference/datamodel.rst:1838 msgid "start (slice object attribute)" msgstr "start (χαρακτηριστικό αντικειμένου slice)" -#: reference/datamodel.rst:1827 +#: reference/datamodel.rst:1838 msgid "stop (slice object attribute)" msgstr "stop (χαρακτηριστικό αντικειμένου slice)" -#: reference/datamodel.rst:1827 +#: reference/datamodel.rst:1838 msgid "step (slice object attribute)" msgstr "step (χαρακτηριστικό αντικειμένου slice)" -#: reference/datamodel.rst:1875 +#: reference/datamodel.rst:1886 msgid "operator" msgstr "τελεστής" -#: reference/datamodel.rst:1875 +#: reference/datamodel.rst:1886 msgid "overloading" msgstr "υπερφόρτωση" -#: reference/datamodel.rst:1875 +#: reference/datamodel.rst:1886 msgid "__getitem__() (mapping object method)" msgstr "__getitem__() (μέθοδος αντικειμένου αντιστοίχισης)" -#: reference/datamodel.rst:1911 +#: reference/datamodel.rst:1922 msgid "subclassing" msgstr "δημιουργία υποκλάσης" -#: reference/datamodel.rst:1911 +#: reference/datamodel.rst:1922 msgid "immutable types" msgstr "αμετάβλητοι τύποι" -#: reference/datamodel.rst:1940 +#: reference/datamodel.rst:1951 msgid "constructor" msgstr "constructor" -#: reference/datamodel.rst:1957 +#: reference/datamodel.rst:1968 msgid "destructor" msgstr "destructor" -#: reference/datamodel.rst:1957 +#: reference/datamodel.rst:1968 msgid "finalizer" msgstr "finalizer" -#: reference/datamodel.rst:1957 +#: reference/datamodel.rst:1968 msgid "del" msgstr "del" -#: reference/datamodel.rst:2021 +#: reference/datamodel.rst:2032 msgid "repr() (built-in function)" msgstr "repr() (ενσωματωμένη συνάρτηση)" -#: reference/datamodel.rst:2021 +#: reference/datamodel.rst:2032 msgid "__repr__() (object method)" msgstr "__repr__() (μέθοδος αντικειμένου)" -#: reference/datamodel.rst:2039 +#: reference/datamodel.rst:2050 msgid "__str__() (object method)" msgstr "__str__() (μέθοδος αντικειμένου)" -#: reference/datamodel.rst:2039 +#: reference/datamodel.rst:2050 msgid "format() (built-in function)" msgstr "format() (ενσωματωμένη συνάρτηση)" -#: reference/datamodel.rst:2039 +#: reference/datamodel.rst:2050 msgid "print() (built-in function)" msgstr "print() (ενσωματωμένη συνάρτηση)" -#: reference/datamodel.rst:2070 +#: reference/datamodel.rst:2081 msgid "__format__() (object method)" msgstr "__format__() (μέθοδος αντικειμένου)" -#: reference/datamodel.rst:2070 +#: reference/datamodel.rst:2081 msgid "conversion" msgstr "μετατροπή" -#: reference/datamodel.rst:2070 +#: reference/datamodel.rst:2081 msgid "print" msgstr "print" -#: reference/datamodel.rst:2112 +#: reference/datamodel.rst:2123 msgid "comparisons" msgstr "συγκρίσεις" -#: reference/datamodel.rst:2163 +#: reference/datamodel.rst:2174 msgid "hash" msgstr "hash" -#: reference/datamodel.rst:2244 +#: reference/datamodel.rst:2255 msgid "__len__() (mapping object method)" msgstr "__len__() (μέθοδος αντιστοίχισης αντικειμένου)" -#: reference/datamodel.rst:2349 +#: reference/datamodel.rst:2360 msgid "__getattr__ (module attribute)" msgstr "__getattr__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:2349 +#: reference/datamodel.rst:2360 msgid "__dir__ (module attribute)" msgstr "__dir__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:2349 +#: reference/datamodel.rst:2360 msgid "__class__ (module attribute)" msgstr "__class__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:2720 +#: reference/datamodel.rst:2736 msgid "metaclass" msgstr "μετακλάση" -#: reference/datamodel.rst:2720 +#: reference/datamodel.rst:2736 msgid "= (equals)" msgstr "= (ισοδυναμεί)" -#: reference/datamodel.rst:2720 +#: reference/datamodel.rst:2736 msgid "class definition" msgstr "ορισμός κλάσης" -#: reference/datamodel.rst:2784 +#: reference/datamodel.rst:2800 msgid "metaclass hint" msgstr "υπόδειξη μετακλάσης" -#: reference/datamodel.rst:2807 +#: reference/datamodel.rst:2823 msgid "__prepare__ (metaclass method)" msgstr "__prepare__ (μέθοδος μετακλάσης)" -#: reference/datamodel.rst:2831 +#: reference/datamodel.rst:2847 msgid "body" msgstr "σώμα" -#: reference/datamodel.rst:2851 +#: reference/datamodel.rst:2867 msgid "__class__ (method cell)" msgstr "__class__ (κελί που περιέχει μέθοδο)" -#: reference/datamodel.rst:2851 +#: reference/datamodel.rst:2867 msgid "__classcell__ (class namespace entry)" msgstr "__classcell__ (καταχώρηση στο namespace της κλάσης)" -#: reference/datamodel.rst:3151 +#: reference/datamodel.rst:3171 msgid "__bool__() (object method)" msgstr "__bool__() (μέθοδος αντικειμένου)" -#: reference/datamodel.rst:3344 +#: reference/datamodel.rst:3364 msgid "divmod" msgstr "divmod" -#: reference/datamodel.rst:3344 +#: reference/datamodel.rst:3364 msgid "pow" msgstr "pow" -#: reference/datamodel.rst:3412 +#: reference/datamodel.rst:3432 msgid "abs" msgstr "abs" -#: reference/datamodel.rst:3422 +#: reference/datamodel.rst:3442 msgid "int" msgstr "int" -#: reference/datamodel.rst:3422 +#: reference/datamodel.rst:3442 msgid "float" msgstr "float" -#: reference/datamodel.rst:3450 +#: reference/datamodel.rst:3470 msgid "round" msgstr "round" -#: reference/datamodel.rst:3474 +#: reference/datamodel.rst:3494 msgid "with" msgstr "with" -#: reference/datamodel.rst:3474 +#: reference/datamodel.rst:3494 msgid "context manager" msgstr "διαχειριστής περιβάλλοντος" diff --git a/reference/executionmodel.po b/reference/executionmodel.po index 2ab91599..283d035c 100644 --- a/reference/executionmodel.po +++ b/reference/executionmodel.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-13 19:59+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" @@ -798,11 +798,414 @@ msgstr "" "Δείτε επίσης την περιγραφή της δήλωσης :keyword:`try` στην ενότητα :ref:" "`try` και της δήλωσης :keyword:`raise` στην ενότητα :ref:`raise`." -#: reference/executionmodel.rst:402 +#: reference/executionmodel.rst:404 +msgid "Runtime Components" +msgstr "Συστατικά χρόνου εκτέλεσης" + +#: reference/executionmodel.rst:407 +msgid "General Computing Model" +msgstr "Γενικό μοντέλο υπολογισμού" + +#: reference/executionmodel.rst:409 +msgid "" +"Python's execution model does not operate in a vacuum. It runs on a host " +"machine and through that host's runtime environment, including its operating " +"system (OS), if there is one. When a program runs, the conceptual layers of " +"how it runs on the host look something like this:" +msgstr "" +"Το μοντέλο εκτέλεσης της Python δεν λειτουργεί σε κενό. Εκτελείται σε μια " +"μηχανή υποδοχής και μέσω του περιβάλλοντος χρόνου εκτέλεσης αυτής της " +"υποδοχής, συμπεριλαμβανομένου του λειτουργικού της συστήματος (OS), αν " +"υπάρχει. Όταν εκτελείται ένα πρόγραμμα, τα εννοιολογικά επίπεδα του τρόπου " +"με τον οποίο εκτελείται στην υποδοχή μοιάζουν κάπως έτσι:" + +#: reference/executionmodel.rst:0 +msgid "**host machine**" +msgstr "**μηχανή υποδοχής**" + +#: reference/executionmodel.rst:0 +msgid "**process** (global resources)" +msgstr "**διαδικασία** (παγκόσμιοι πόροι)" + +#: reference/executionmodel.rst:0 +msgid "**thread** (runs machine code)" +msgstr "**νήμα** (εκτελεί κώδικα μηχανής)" + +#: reference/executionmodel.rst:419 +msgid "" +"Each process represents a program running on the host. Think of each " +"process itself as the data part of its program. Think of the process' " +"threads as the execution part of the program. This distinction will be " +"important to understand the conceptual Python runtime." +msgstr "" +"Κάθε διαδικασία αντιπροσωπεύει ένα πρόγραμμα που εκτελείται στην υποδοχή. " +"Σκεφτείτε κάθε διαδικασία ως το δεδομένο μέρος του προγράμματός της. " +"Σκεφτείτε τα νήματα της διαδικασίας ως το εκτελεστικό μέρος του " +"προγράμματος. Αυτή η διάκριση θα είναι σημαντική για την κατανόηση του " +"εννοιολογικού χρόνου εκτέλεσης της Python." + +#: reference/executionmodel.rst:424 +msgid "" +"The process, as the data part, is the execution context in which the program " +"runs. It mostly consists of the set of resources assigned to the program by " +"the host, including memory, signals, file handles, sockets, and environment " +"variables." +msgstr "" +"Η διαδικασία, ως το δεδομένο μέρος, είναι το εκτελεστικό πλαίσιο στο οποίο " +"εκτελείται το πρόγραμμα. Αποτελείται κυρίως από το σύνολο των πόρων που " +"ανατίθενται στο πρόγραμμα από την υποδοχή, συμπεριλαμβανομένης της μνήμης, " +"των σημάτων, των χειριστηρίων αρχείων, των υποδοχών και των μεταβλητών " +"περιβάλλοντος." + +#: reference/executionmodel.rst:429 +msgid "" +"Processes are isolated and independent from one another. (The same is true " +"for hosts.) The host manages the process' access to its assigned resources, " +"in addition to coordinating between processes." +msgstr "" +"Οι διαδικασίες είναι απομονωμένες και ανεξάρτητες η μία από την άλλη. (Το " +"ίδιο ισχύει και για τις υποδοχές.) Η υποδοχή διαχειρίζεται την πρόσβαση της " +"διαδικασίας στους ανατεθειμένους πόρους της, εκτός από τον συντονισμό μεταξύ " +"διαδικασιών." + +#: reference/executionmodel.rst:433 +msgid "" +"Each thread represents the actual execution of the program's machine code, " +"running relative to the resources assigned to the program's process. It's " +"strictly up to the host how and when that execution takes place." +msgstr "" +"Κάθε νήμα αντιπροσωπεύει την πραγματική εκτέλεση του κώδικα μηχανής του " +"προγράμματος, που εκτελείται σε σχέση με τους πόρους που έχουν ανατεθεί στη " +"διαδικασία του προγράμματος. Είναι αυστηρά στην υποδοχή ο τρόπος και ο " +"χρόνος με τον οποίο πραγματοποιείται αυτή η εκτέλεση." + +#: reference/executionmodel.rst:438 +msgid "" +"From the point of view of Python, a program always starts with exactly one " +"thread. However, the program may grow to run in multiple simultaneous " +"threads. Not all hosts support multiple threads per process, but most do. " +"Unlike processes, threads in a process are not isolated and independent from " +"one another. Specifically, all threads in a process share all of the " +"process' resources." +msgstr "" +"Από την άποψη της Python, ένα πρόγραμμα ξεκινά πάντα με ακριβώς ένα νήμα. " +"Ωστόσο, το πρόγραμμα μπορεί να αναπτυχθεί για να εκτελείται σε πολλαπλά " +"ταυτόχρονα νήματα. Δεν υποστηρίζουν όλοι οι οικοδεσπότες πολλαπλά νήματα ανά " +"διαδικασία, αλλά οι περισσότεροι το κάνουν. Σε αντίθεση με τις διαδικασίες, " +"τα νήματα σε μια διαδικασία δεν είναι απομονωμένα και ανεξάρτητα το ένα από " +"το άλλο. Συγκεκριμένα, όλα τα νήματα σε μια διαδικασία μοιράζονται όλους " +"τους πόρους της διαδικασίας." + +#: reference/executionmodel.rst:445 +msgid "" +"The fundamental point of threads is that each one does *run* independently, " +"at the same time as the others. That may be only conceptually at the same " +"time (\"concurrently\") or physically (\"in parallel\"). Either way, the " +"threads effectively run at a non-synchronized rate." +msgstr "" +"Το θεμελιώδες σημείο των νημάτων είναι ότι το καθένα *εκτελείται* " +"ανεξάρτητα, ταυτόχρονα με τα άλλα. Αυτό μπορεί να είναι μόνο εννοιολογικά " +"ταυτόχρονα (\"concurrently\") ή φυσικά (\"in parallel\"). Σε κάθε περίπτωση, " +"τα νήματα εκτελούνται αποτελεσματικά με μη συγχρονισμένο ρυθμό." + +#: reference/executionmodel.rst:453 +msgid "" +"That non-synchronized rate means none of the process' memory is guaranteed " +"to stay consistent for the code running in any given thread. Thus multi-" +"threaded programs must take care to coordinate access to intentionally " +"shared resources. Likewise, they must take care to be absolutely diligent " +"about not accessing any *other* resources in multiple threads; otherwise two " +"threads running at the same time might accidentally interfere with each " +"other's use of some shared data. All this is true for both Python programs " +"and the Python runtime." +msgstr "" +"Αυτός ο μη συγχρονισμένος ρυθμός σημαίνει ότι δεν εγγυάται ότι η μνήμη της " +"διαδικασίας θα παραμείνει συνεπής για τον κώδικα που εκτελείται σε " +"οποιοδήποτε δοσμένο νήμα. Επομένως, τα πολυνηματικά προγράμματα πρέπει να " +"φροντίζουν να συντονίζουν την πρόσβαση σε σκόπιμα κοινόχρηστους πόρους. " +"Ομοίως, πρέπει να φροντίζουν να είναι απόλυτα επιμελείς ώστε να μην έχουν " +"πρόσβαση σε *άλλους* πόρους σε πολλαπλά νήματα· διαφορετικά, δύο νήματα που " +"εκτελούνται ταυτόχρονα μπορεί να παρεμβαίνουν κατά λάθος στη χρήση κάποιων " +"κοινόχρηστων δεδομένων. Όλα αυτά ισχύουν τόσο για προγράμματα Python όσο και " +"για τον χρόνο εκτέλεσης της Python." + +#: reference/executionmodel.rst:463 +msgid "" +"The cost of this broad, unstructured requirement is the tradeoff for the " +"kind of raw concurrency that threads provide. The alternative to the " +"required discipline generally means dealing with non-deterministic bugs and " +"data corruption." +msgstr "" +"Το κόστος αυτής της ευρείας, μη δομημένης απαίτησης είναι το αντάλλαγμα για " +"τον τύπο της ακατέργαστης ταυτόχρονης εκτέλεσης που παρέχουν τα νήματα. Η " +"εναλλακτική λύση στην απαιτούμενη πειθαρχία γενικά σημαίνει την αντιμετώπιση " +"μη ντετερμινιστικών σφαλμάτων και διαφθοράς δεδομένων." + +#: reference/executionmodel.rst:469 +msgid "Python Runtime Model" +msgstr "Μοντέλο χρόνου εκτέλεσης της Python" + +#: reference/executionmodel.rst:471 +msgid "" +"The same conceptual layers apply to each Python program, with some extra " +"data layers specific to Python:" +msgstr "" +"Τα ίδια εννοιολογικά επίπεδα ισχύουν για κάθε πρόγραμμα Python, με μερικά " +"επιπλέον επίπεδα δεδομένων συγκεκριμένα για την Python:" + +#: reference/executionmodel.rst:0 +msgid "Python global runtime (*state*)" +msgstr "Παγκόσμιος χρόνος εκτέλεσης της Python (*κατάσταση*)" + +#: reference/executionmodel.rst:0 +msgid "Python interpreter (*state*)" +msgstr "Διερμηνέας Python (*κατάσταση*)" + +#: reference/executionmodel.rst:0 +msgid "**thread** (runs Python bytecode and \"C-API\")" +msgstr "**thread** (εκτελεί bytecode Python και \"C-API\")" + +#: reference/executionmodel.rst:0 +msgid "Python thread *state*" +msgstr "*Κατάσταση* νήματος Python" + +#: reference/executionmodel.rst:481 +msgid "" +"At the conceptual level: when a Python program starts, it looks exactly like " +"that diagram, with one of each. The runtime may grow to include multiple " +"interpreters, and each interpreter may grow to include multiple thread " +"states." +msgstr "" +"Σε εννοιολογικό επίπεδο: όταν ξεκινά ένα πρόγραμμα Python, μοιάζει ακριβώς " +"με αυτό το διάγραμμα, με ένα από κάθε στοιχείο. Ο χρόνος εκτέλεσης μπορεί να " +"αναπτυχθεί ώστε να περιλαμβάνει πολλαπλούς διερμηνείς, και κάθε διερμηνέας " +"μπορεί να αναπτυχθεί ώστε να περιλαμβάνει πολλαπλές καταστάσεις νημάτων." + +#: reference/executionmodel.rst:488 +msgid "" +"A Python implementation won't necessarily implement the runtime layers " +"distinctly or even concretely. The only exception is places where distinct " +"layers are directly specified or exposed to users, like through the :mod:" +"`threading` module." +msgstr "" +"Μια υλοποίηση της Python δεν θα υλοποιήσει απαραίτητα τα επίπεδα χρόνου " +"εκτέλεσης με διακριτό ή ακόμη και συγκεκριμένο τρόπο. Η μόνη εξαίρεση είναι " +"τα σημεία όπου τα διακριτά επίπεδα καθορίζονται άμεσα ή εκτίθενται στους " +"χρήστες, όπως μέσω του module :mod:`threading`." + +#: reference/executionmodel.rst:495 +msgid "" +"The initial interpreter is typically called the \"main\" interpreter. Some " +"Python implementations, like CPython, assign special roles to the main " +"interpreter." +msgstr "" +"Ο αρχικός διερμηνέας ονομάζεται συνήθως ο \"κύριος\" διερμηνέας. Ορισμένες " +"υλοποιήσεις της Python, όπως η CPython, αναθέτουν ειδικούς ρόλους στον κύριο " +"διερμηνέα." + +#: reference/executionmodel.rst:499 +msgid "" +"Likewise, the host thread where the runtime was initialized is known as the " +"\"main\" thread. It may be different from the process' initial thread, " +"though they are often the same. In some cases \"main thread\" may be even " +"more specific and refer to the initial thread state. A Python runtime might " +"assign specific responsibilities to the main thread, such as handling " +"signals." +msgstr "" +"Ομοίως, το νήμα υποδοχής όπου αρχικοποιήθηκε ο χρόνος εκτέλεσης είναι γνωστό " +"ως το \"κύριο\" νήμα. Μπορεί να είναι διαφορετικό από το αρχικό νήμα της " +"διαδικασίας, αν και συχνά είναι το ίδιο. Σε ορισμένες περιπτώσεις, το " +"\"κύριο νήμα\" μπορεί να είναι ακόμη πιο συγκεκριμένο και να αναφέρεται στην " +"αρχική κατάσταση νήματος. Ένας χρόνος εκτέλεσης της Python μπορεί να " +"αναθέσει συγκεκριμένες ευθύνες στο κύριο νήμα, όπως η διαχείριση σημάτων." + +#: reference/executionmodel.rst:506 +msgid "" +"As a whole, the Python runtime consists of the global runtime state, " +"interpreters, and thread states. The runtime ensures all that state stays " +"consistent over its lifetime, particularly when used with multiple host " +"threads." +msgstr "" +"Συνολικά, ο χρόνος εκτέλεσης της Python αποτελείται από την παγκόσμια " +"κατάσταση χρόνου εκτέλεσης, τους διερμηνείς και τις καταστάσεις νημάτων. Ο " +"χρόνος εκτέλεσης διασφαλίζει ότι όλη αυτή η κατάσταση παραμένει συνεπής κατά " +"τη διάρκειά της ζωής του, ιδιαίτερα όταν χρησιμοποιείται με πολλαπλά νήματα " +"υποδοχής." + +#: reference/executionmodel.rst:511 +msgid "" +"The global runtime, at the conceptual level, is just a set of interpreters. " +"While those interpreters are otherwise isolated and independent from one " +"another, they may share some data or other resources. The runtime is " +"responsible for managing these global resources safely. The actual nature " +"and management of these resources is implementation-specific. Ultimately, " +"the external utility of the global runtime is limited to managing " +"interpreters." +msgstr "" +"Ο παγκόσμιος χρόνος εκτέλεσης, σε εννοιολογικό επίπεδο, είναι απλώς ένα " +"σύνολο διερμηνέων. Ενώ αυτοί οι διερμηνείς είναι διαφορετικά απομονωμένοι " +"και ανεξάρτητοι ο ένας από τον άλλον, μπορεί να μοιράζονται ορισμένα " +"δεδομένα ή άλλους πόρους. Ο χρόνος εκτέλεσης είναι υπεύθυνος για τη " +"διαχείριση αυτών των παγκόσμιων πόρων με ασφάλεια. Η πραγματική φύση και " +"διαχείριση αυτών των πόρων είναι συγκεκριμένη για την υλοποίηση. Τελικά, η " +"εξωτερική χρησιμότητα του παγκόσμιου χρόνου εκτέλεσης περιορίζεται στη " +"διαχείριση διερμηνέων." + +#: reference/executionmodel.rst:519 +msgid "" +"In contrast, an \"interpreter\" is conceptually what we would normally think " +"of as the (full-featured) \"Python runtime\". When machine code executing " +"in a host thread interacts with the Python runtime, it calls into Python in " +"the context of a specific interpreter." +msgstr "" +"Σε αντίθεση, ένας \"διερμηνέας\" είναι εννοιολογικά αυτό που θα σκεφτόμασταν " +"κανονικά ως ο (πλήρως εξοπλισμένος) \"χρόνος εκτέλεσης της Python\". Όταν ο " +"κώδικας μηχανής που εκτελείται σε ένα νήμα υποδοχής αλληλεπιδράεί με τον " +"χρόνο εκτέλεσης της Python, καλεί την Python στο πλαίσιο ενός συγκεκριμένου " +"διερμηνέα." + +#: reference/executionmodel.rst:526 +msgid "" +"The term \"interpreter\" here is not the same as the \"bytecode " +"interpreter\", which is what regularly runs in threads, executing compiled " +"Python code." +msgstr "" +"Ο όρος \"διερμηνέας\" εδώ δεν είναι ο ίδιος με τον \"διερμηνέα bytecode\", " +"που είναι αυτός που εκτελείται τακτικά σε νήματα, εκτελώντας μεταγλωττισμένο " +"κώδικα Python." + +#: reference/executionmodel.rst:530 +msgid "" +"In an ideal world, \"Python runtime\" would refer to what we currently call " +"\"interpreter\". However, it's been called \"interpreter\" at least since " +"introduced in 1997 (`CPython:a027efa5b`_)." +msgstr "" +"Σε έναν ιδανικό κόσμο, ο όρος \"χρόνος εκτέλεσης της Python\" θα αναφερόταν " +"σε αυτό που τώρα ονομάζουμε \"διερμηνέα\". Ωστόσο, έχει ονομαστεί " +"\"διερμηνέας\" τουλάχιστον από την εισαγωγή του το 1997 (`CPython:" +"a027efa5b`_)." + +#: reference/executionmodel.rst:536 +msgid "" +"Each interpreter completely encapsulates all of the non-process-global, non-" +"thread-specific state needed for the Python runtime to work. Notably, the " +"interpreter's state persists between uses. It includes fundamental data " +"like :data:`sys.modules`. The runtime ensures multiple threads using the " +"same interpreter will safely share it between them." +msgstr "" +"Κάθε διερμηνέας ενσωματώνει πλήρως όλη την κατάσταση που δεν είναι παγκόσμια " +"για τη διαδικασία και δεν είναι ειδική για το νήμα που χρειάζεται ο χρόνος " +"εκτέλεσης της Python για να λειτουργήσει. Σημαντικά, η κατάσταση του " +"διερμηνέα διατηρείται μεταξύ των χρήσεων. Περιλαμβάνει θεμελιώδη δεδομένα " +"όπως το :data:`sys.modules`. Ο χρόνος εκτέλεσης διασφαλίζει ότι πολλαπλά " +"νήματα που χρησιμοποιούν τον ίδιο διερμηνέα θα τον μοιράζονται με ασφάλεια " +"μεταξύ τους." + +#: reference/executionmodel.rst:543 +msgid "" +"A Python implementation may support using multiple interpreters at the same " +"time in the same process. They are independent and isolated from one " +"another. For example, each interpreter has its own :data:`sys.modules`." +msgstr "" +"Μια υλοποίηση της Python μπορεί να υποστηρίζει τη χρήση πολλαπλών διερμηνέων " +"ταυτόχρονα στην ίδια διαδικασία. Είναι ανεξάρτητοι και απομονωμένοι ο ένας " +"από τον άλλον. Για παράδειγμα, κάθε διερμηνέας έχει το δικό του :data:`sys." +"modules`." + +#: reference/executionmodel.rst:548 +msgid "" +"For thread-specific runtime state, each interpreter has a set of thread " +"states, which it manages, in the same way the global runtime contains a set " +"of interpreters. It can have thread states for as many host threads as it " +"needs. It may even have multiple thread states for the same host thread, " +"though that isn't as common." +msgstr "" +"Για το χρόνο εκτέλεσης ειδικό για τα νήματα, κάθε διερμηνέας έχει ένα σύνολο " +"καταστάσεων νημάτων, τις οποίες διαχειρίζεται, με τον ίδιο τρόπο που ο " +"παγκόσμιος χρόνος εκτέλεσης περιέχει ένα σύνολο διερμηνέων. Μπορεί να έχει " +"καταστάσεις νημάτων για όσα νήματα υποδοχής χρειάζεται. Μπορεί ακόμη και να " +"έχει πολλαπλές καταστάσεις νημάτων για το ίδιο νήμα υποδοχής, αν και αυτό " +"δεν είναι τόσο συνηθισμένο." + +#: reference/executionmodel.rst:554 +msgid "" +"Each thread state, conceptually, has all the thread-specific runtime data an " +"interpreter needs to operate in one host thread. The thread state includes " +"the current raised exception and the thread's Python call stack. It may " +"include other thread-specific resources." +msgstr "" +"Κάθε κατάσταση νήματος, εννοιολογικά, έχει όλα τα δεδομένα χρόνου εκτέλεσης " +"ειδικά για το νήμα που χρειάζεται ένας διερμηνέας για να λειτουργήσει σε ένα " +"νήμα υποδοχής. Η κατάσταση νήματος περιλαμβάνει την τρέχουσα εγερθείσα " +"εξαίρεση και τη στοίβα κλήσεων Python του νήματος. Μπορεί να περιλαμβάνει " +"και άλλους πόρους ειδικούς για το νήμα." + +#: reference/executionmodel.rst:561 +msgid "" +"The term \"Python thread\" can sometimes refer to a thread state, but " +"normally it means a thread created using the :mod:`threading` module." +msgstr "" +"Ο όρος \"νήμα Python\" μπορεί μερικές φορές να αναφέρεται σε μια κατάσταση " +"νήματος, αλλά συνήθως σημαίνει ένα νήμα που δημιουργείται χρησιμοποιώντας το " +"module :mod:`threading`." + +#: reference/executionmodel.rst:564 +msgid "" +"Each thread state, over its lifetime, is always tied to exactly one " +"interpreter and exactly one host thread. It will only ever be used in that " +"thread and with that interpreter." +msgstr "" +"Κάθε κατάσταση νήματος, κατά τη διάρκεια της ζωής της, συνδέεται πάντα με " +"ακριβώς έναν διερμηνέα και ακριβώς ένα νήμα υποδοχής. Θα χρησιμοποιηθεί μόνο " +"σε αυτό το νήμα και με αυτόνν τον διερμηνέα." + +#: reference/executionmodel.rst:568 +msgid "" +"Multiple thread states may be tied to the same host thread, whether for " +"different interpreters or even the same interpreter. However, for any given " +"host thread, only one of the thread states tied to it can be used by the " +"thread at a time." +msgstr "" +"Πολλαπλές καταστάσεις νημάτων μπορεί να συνδέονται με το ίδιο νήμα υποδοχής, " +"είτε για διαφορετικούς διερμηνείς είτε ακόμη και για τον ίδιο διερμηνέα. " +"Ωστόσο, για οποιοδήποτε δεδομένο νήμα υποδοχής, μόνο μία από τις καταστάσεις " +"νημάτων που συνδέονται με αυτό μπορεί να χρησιμοποιηθεί από το νήμα τη φορά." + +#: reference/executionmodel.rst:573 +msgid "" +"Thread states are isolated and independent from one another and don't share " +"any data, except for possibly sharing an interpreter and objects or other " +"resources belonging to that interpreter." +msgstr "" +"Οι καταστάσεις νημάτων είναι απομονωμένες και ανεξάρτητες η μία από την άλλη " +"και δεν μοιράζονται κανένα δεδομένο, εκτός από το ενδεχόμενο να μοιράζονται " +"έναν διερμηνέα και αντικείμενα ή άλλους πόρους που ανήκουν σε αυτόν τον " +"διερμηνέα." + +#: reference/executionmodel.rst:577 +msgid "" +"Once a program is running, new Python threads can be created using the :mod:" +"`threading` module (on platforms and Python implementations that support " +"threads). Additional processes can be created using the :mod:`os`, :mod:" +"`subprocess`, and :mod:`multiprocessing` modules. Interpreters can be " +"created and used with the :mod:`~concurrent.interpreters` module. " +"Coroutines (async) can be run using :mod:`asyncio` in each interpreter, " +"typically only in a single thread (often the main thread)." +msgstr "" +"Μόλις εκτελείται ένα πρόγραμμα, μπορούν να δημιουργηθούν νέα νήματα Python " +"χρησιμοποιώντας το module :mod:`threading` (σε πλατφόρμες και υλοποιήσεις " +"Python που υποστηρίζουν νήματα). Μπορούν να δημιουργηθούν επιπλέον " +"διαδικασίες χρησιμοποιώντας τα modules :mod:`os`, :mod:`subprocess` και :mod:" +"`multiprocessing`. Οι διερμηνείς μπορούν να δημιουργηθούν και να " +"χρησιμοποιηθούν με το module :mod:`~concurrent.interpreters`. Οι συναρτήσεις-" +"συνεργάτες (async) μπορούν να εκτελεστούν χρησιμοποιώντας το :mod:`asyncio` " +"σε κάθε διερμηνέα, συνήθως μόνο σε ένα νήμα (συχνά το κύριο νήμα)." + +#: reference/executionmodel.rst:588 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: reference/executionmodel.rst:403 +#: reference/executionmodel.rst:589 msgid "" "This limitation occurs because the code that is executed by these operations " "is not available at the time the module is compiled." diff --git a/reference/expressions.po b/reference/expressions.po index ae172d1d..67b9560f 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -179,15 +179,16 @@ msgstr "" msgid "Python supports string and bytes literals and various numeric literals:" msgstr "" -#: reference/expressions.rst:139 +#: reference/expressions.rst:141 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." +"(complex) literals. See section :ref:`literals` for details. See section :" +"ref:`string-concatenation` for details on ``strings``." msgstr "" -#: reference/expressions.rst:148 +#: reference/expressions.rst:153 msgid "" "All literals correspond to immutable data types, and hence the object's " "identity is less important than its value. Multiple evaluations of literals " @@ -196,30 +197,106 @@ msgid "" "the same value." msgstr "" -#: reference/expressions.rst:158 +#: reference/expressions.rst:163 +msgid "String literal concatenation" +msgstr "" + +#: reference/expressions.rst:165 +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::" +msgstr "" + +#: reference/expressions.rst:169 +msgid "" +">>> \"hello\" 'world'\n" +"\"helloworld\"" +msgstr "" + +#: reference/expressions.rst:172 +msgid "Formally:" +msgstr "" + +#: reference/expressions.rst:179 +msgid "" +"This feature is defined at the syntactical level, so it only works with " +"literals. To concatenate string expressions at run time, the '+' operator " +"may be used::" +msgstr "" + +#: reference/expressions.rst:182 +msgid "" +">>> greeting = \"Hello\"\n" +">>> space = \" \"\n" +">>> name = \"Blaise\"\n" +">>> print(greeting + space + name) # not: print(greeting space name)\n" +"Hello Blaise" +msgstr "" + +#: reference/expressions.rst:188 +msgid "" +"Literal concatenation can freely mix raw strings, triple-quoted strings, and " +"formatted string literals. For example::" +msgstr "" + +#: reference/expressions.rst:192 +msgid "" +">>> \"Hello\" r', ' f\"{name}!\"\n" +"\"Hello, Blaise!\"" +msgstr "" + +#: reference/expressions.rst:195 +msgid "" +"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 "" + +#: reference/expressions.rst:199 +msgid "" +"re.compile(\"[A-Za-z_]\" # letter or underscore\n" +" \"[A-Za-z0-9_]*\" # letter, digit or underscore\n" +" )" +msgstr "" + +#: reference/expressions.rst:203 +msgid "" +"However, bytes literals may only be combined with other byte literals; not " +"with string literals of any kind. Also, template string literals may only be " +"combined with other template string literals::" +msgstr "" + +#: reference/expressions.rst:208 +msgid "" +">>> t\"Hello\" t\"{name}!\"\n" +"Template(strings=('Hello', '!'), interpolations=(...))" +msgstr "" + +#: reference/expressions.rst:215 msgid "Parenthesized forms" msgstr "" -#: reference/expressions.rst:164 +#: reference/expressions.rst:221 msgid "" "A parenthesized form is an optional expression list enclosed in parentheses:" msgstr "" -#: reference/expressions.rst:169 +#: reference/expressions.rst:226 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 "" -#: reference/expressions.rst:175 +#: reference/expressions.rst:232 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 "" -#: reference/expressions.rst:183 +#: reference/expressions.rst:240 msgid "" "Note that tuples are not formed by the parentheses, but rather by use of the " "comma. The exception is the empty tuple, for which parentheses *are* " @@ -227,31 +304,31 @@ msgid "" "ambiguities and allow common typos to pass uncaught." msgstr "" -#: reference/expressions.rst:192 +#: reference/expressions.rst:249 msgid "Displays for lists, sets and dictionaries" msgstr "" -#: reference/expressions.rst:196 +#: reference/expressions.rst:253 msgid "" "For constructing a list, a set or a dictionary Python provides special " "syntax called \"displays\", each of them in two flavors:" msgstr "" -#: reference/expressions.rst:199 +#: reference/expressions.rst:256 msgid "either the container contents are listed explicitly, or" msgstr "" -#: reference/expressions.rst:201 +#: reference/expressions.rst:258 msgid "" "they are computed via a set of looping and filtering instructions, called a :" "dfn:`comprehension`." msgstr "" -#: reference/expressions.rst:209 +#: reference/expressions.rst:266 msgid "Common syntax elements for comprehensions are:" msgstr "" -#: reference/expressions.rst:217 +#: reference/expressions.rst:274 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` " @@ -261,7 +338,7 @@ msgid "" "expression to produce an element each time the innermost block is reached." msgstr "" -#: reference/expressions.rst:224 +#: reference/expressions.rst:281 msgid "" "However, aside from the iterable expression in the leftmost :keyword:`!for` " "clause, the comprehension is executed in a separate implicitly nested scope. " @@ -269,7 +346,7 @@ msgid "" "the enclosing scope." msgstr "" -#: reference/expressions.rst:228 +#: reference/expressions.rst:285 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 " @@ -279,14 +356,14 @@ msgid "" "iterable. For example: ``[x*y for x in range(10) for y in range(x, x+10)]``." msgstr "" -#: reference/expressions.rst:235 +#: reference/expressions.rst:292 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." msgstr "" -#: reference/expressions.rst:242 +#: reference/expressions.rst:299 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 " @@ -296,7 +373,7 @@ msgid "" "clauses, and may also use :keyword:`await` expressions." msgstr "" -#: reference/expressions.rst:249 +#: reference/expressions.rst:306 msgid "" "If a comprehension contains :keyword:`!async for` clauses, or if it " "contains :keyword:`!await` expressions or other asynchronous comprehensions " @@ -306,31 +383,31 @@ msgid "" "it appears. See also :pep:`530`." msgstr "" -#: reference/expressions.rst:256 +#: reference/expressions.rst:313 msgid "Asynchronous comprehensions were introduced." msgstr "" -#: reference/expressions.rst:438 +#: reference/expressions.rst:495 msgid "``yield`` and ``yield from`` prohibited in the implicitly nested scope." msgstr "" -#: reference/expressions.rst:262 +#: reference/expressions.rst:319 msgid "" "Asynchronous comprehensions are now allowed inside comprehensions in " "asynchronous functions. Outer comprehensions implicitly become asynchronous." msgstr "" -#: reference/expressions.rst:271 +#: reference/expressions.rst:328 msgid "List displays" msgstr "" -#: reference/expressions.rst:281 +#: reference/expressions.rst:338 msgid "" "A list display is a possibly empty series of expressions enclosed in square " "brackets:" msgstr "" -#: reference/expressions.rst:287 +#: reference/expressions.rst:344 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 " @@ -340,17 +417,17 @@ msgid "" "comprehension." msgstr "" -#: reference/expressions.rst:297 +#: reference/expressions.rst:354 msgid "Set displays" msgstr "" -#: reference/expressions.rst:306 +#: reference/expressions.rst:363 msgid "" "A set display is denoted by curly braces and distinguishable from dictionary " "displays by the lack of colons separating keys and values:" msgstr "" -#: reference/expressions.rst:312 +#: reference/expressions.rst:369 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-" @@ -360,27 +437,27 @@ msgid "" "comprehension." msgstr "" -#: reference/expressions.rst:318 +#: reference/expressions.rst:375 msgid "" "An empty set cannot be constructed with ``{}``; this literal constructs an " "empty dictionary." msgstr "" -#: reference/expressions.rst:325 +#: reference/expressions.rst:382 msgid "Dictionary displays" msgstr "" -#: reference/expressions.rst:336 +#: reference/expressions.rst:393 msgid "" "A dictionary display is a possibly empty series of dict items (key/value " "pairs) enclosed in curly braces:" msgstr "" -#: reference/expressions.rst:345 +#: reference/expressions.rst:402 msgid "A dictionary display yields a new dictionary object." msgstr "" -#: reference/expressions.rst:347 +#: reference/expressions.rst:404 msgid "" "If a comma-separated sequence of dict items is given, they are evaluated " "from left to right to define the entries of the dictionary: each key object " @@ -390,7 +467,7 @@ msgid "" "given." msgstr "" -#: reference/expressions.rst:357 +#: reference/expressions.rst:414 msgid "" "A double asterisk ``**`` denotes :dfn:`dictionary unpacking`. Its operand " "must be a :term:`mapping`. Each mapping item is added to the new " @@ -398,11 +475,11 @@ msgid "" "and earlier dictionary unpackings." msgstr "" -#: reference/expressions.rst:362 +#: reference/expressions.rst:419 msgid "Unpacking into dictionary displays, originally proposed by :pep:`448`." msgstr "" -#: reference/expressions.rst:365 +#: reference/expressions.rst:422 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\" " @@ -410,7 +487,7 @@ msgid "" "are inserted in the new dictionary in the order they are produced." msgstr "" -#: reference/expressions.rst:373 +#: reference/expressions.rst:430 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 " @@ -419,7 +496,7 @@ msgid "" "given key value prevails." msgstr "" -#: reference/expressions.rst:379 +#: reference/expressions.rst:436 msgid "" "Prior to Python 3.8, in dict comprehensions, the evaluation order of key and " "value was not well-defined. In CPython, the value was evaluated before the " @@ -427,22 +504,22 @@ msgid "" "by :pep:`572`." msgstr "" -#: reference/expressions.rst:389 +#: reference/expressions.rst:446 msgid "Generator expressions" msgstr "" -#: reference/expressions.rst:396 +#: reference/expressions.rst:453 msgid "A generator expression is a compact generator notation in parentheses:" msgstr "" -#: reference/expressions.rst:401 +#: reference/expressions.rst:458 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 "" -#: reference/expressions.rst:405 +#: reference/expressions.rst:462 msgid "" "Variables used in the generator expression are evaluated lazily when the :" "meth:`~generator.__next__` method is called for the generator object (in the " @@ -457,20 +534,20 @@ msgid "" "iterable. For example: ``(x*y for x in range(10) for y in range(x, x+10))``." msgstr "" -#: reference/expressions.rst:417 +#: reference/expressions.rst:474 msgid "" "The parentheses can be omitted on calls with only one argument. See " "section :ref:`calls` for details." msgstr "" -#: reference/expressions.rst:420 +#: reference/expressions.rst:477 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." msgstr "" -#: reference/expressions.rst:424 +#: reference/expressions.rst:481 msgid "" "If a generator expression contains either :keyword:`!async for` clauses or :" "keyword:`await` expressions it is called an :dfn:`asynchronous generator " @@ -479,22 +556,22 @@ msgid "" "`async-iterators`)." msgstr "" -#: reference/expressions.rst:430 +#: reference/expressions.rst:487 msgid "Asynchronous generator expressions were introduced." msgstr "" -#: reference/expressions.rst:433 +#: reference/expressions.rst:490 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 "" -#: reference/expressions.rst:445 +#: reference/expressions.rst:502 msgid "Yield expressions" msgstr "" -#: reference/expressions.rst:458 +#: reference/expressions.rst:515 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 " @@ -504,7 +581,7 @@ msgid "" "asynchronous generator function. For example::" msgstr "" -#: reference/expressions.rst:465 +#: reference/expressions.rst:522 msgid "" "def gen(): # defines a generator function\n" " yield 123\n" @@ -513,27 +590,27 @@ msgid "" " yield 123" msgstr "" -#: reference/expressions.rst:471 +#: reference/expressions.rst:528 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." msgstr "" -#: reference/expressions.rst:475 +#: reference/expressions.rst:532 msgid "" "Yield expressions prohibited in the implicitly nested scopes used to " "implement comprehensions and generator expressions." msgstr "" -#: reference/expressions.rst:479 +#: reference/expressions.rst:536 msgid "" "Generator functions are described below, while asynchronous generator " "functions are described separately in section :ref:`asynchronous-generator-" "functions`." msgstr "" -#: reference/expressions.rst:483 +#: reference/expressions.rst:540 msgid "" "When a generator function is called, it returns an iterator known as a " "generator. That generator then controls the execution of the generator " @@ -554,7 +631,7 @@ msgid "" "be the value passed in to that method." msgstr "" -#: reference/expressions.rst:503 +#: reference/expressions.rst:560 msgid "" "All of this makes generator functions quite similar to coroutines; they " "yield multiple times, they have more than one entry point and their " @@ -563,7 +640,7 @@ msgid "" "the control is always transferred to the generator's caller." msgstr "" -#: reference/expressions.rst:509 +#: reference/expressions.rst:566 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 " @@ -572,7 +649,7 @@ msgid "" "`finally` clauses to execute." msgstr "" -#: reference/expressions.rst:518 +#: reference/expressions.rst:575 msgid "" "When ``yield from `` is used, the supplied expression must be an " "iterable. The values produced by iterating that iterable are passed directly " @@ -584,7 +661,7 @@ msgid "" "will just raise the passed in exception immediately." msgstr "" -#: reference/expressions.rst:527 +#: reference/expressions.rst:584 msgid "" "When the underlying iterator is complete, the :attr:`~StopIteration.value` " "attribute of the raised :exc:`StopIteration` instance becomes the value of " @@ -593,73 +670,73 @@ msgid "" "returning a value from the subgenerator)." msgstr "" -#: reference/expressions.rst:533 +#: reference/expressions.rst:590 msgid "Added ``yield from `` to delegate control flow to a subiterator." msgstr "" -#: reference/expressions.rst:536 +#: reference/expressions.rst:593 msgid "" "The parentheses may be omitted when the yield expression is the sole " "expression on the right hand side of an assignment statement." msgstr "" -#: reference/expressions.rst:541 +#: reference/expressions.rst:598 msgid ":pep:`255` - Simple Generators" msgstr "" -#: reference/expressions.rst:542 +#: reference/expressions.rst:599 msgid "" "The proposal for adding generators and the :keyword:`yield` statement to " "Python." msgstr "" -#: reference/expressions.rst:544 +#: reference/expressions.rst:601 msgid ":pep:`342` - Coroutines via Enhanced Generators" msgstr "" -#: reference/expressions.rst:545 +#: reference/expressions.rst:602 msgid "" "The proposal to enhance the API and syntax of generators, making them usable " "as simple coroutines." msgstr "" -#: reference/expressions.rst:548 +#: reference/expressions.rst:605 msgid ":pep:`380` - Syntax for Delegating to a Subgenerator" msgstr "" -#: reference/expressions.rst:549 +#: reference/expressions.rst:606 msgid "" "The proposal to introduce the :token:`~python-grammar:yield_from` syntax, " "making delegation to subgenerators easy." msgstr "" -#: reference/expressions.rst:552 +#: reference/expressions.rst:609 msgid ":pep:`525` - Asynchronous Generators" msgstr "" -#: reference/expressions.rst:553 +#: reference/expressions.rst:610 msgid "" "The proposal that expanded on :pep:`492` by adding generator capabilities to " "coroutine functions." msgstr "" -#: reference/expressions.rst:560 +#: reference/expressions.rst:617 msgid "Generator-iterator methods" msgstr "" -#: reference/expressions.rst:562 +#: reference/expressions.rst:619 msgid "" "This subsection describes the methods of a generator iterator. They can be " "used to control the execution of a generator function." msgstr "" -#: reference/expressions.rst:565 +#: reference/expressions.rst:622 msgid "" "Note that calling any of the generator methods below when the generator is " "already executing raises a :exc:`ValueError` exception." msgstr "" -#: reference/expressions.rst:573 +#: reference/expressions.rst:630 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 :" @@ -671,13 +748,13 @@ msgid "" "`StopIteration` exception is raised." msgstr "" -#: reference/expressions.rst:582 +#: reference/expressions.rst:639 msgid "" "This method is normally called implicitly, e.g. by a :keyword:`for` loop, or " "by the built-in :func:`next` function." msgstr "" -#: reference/expressions.rst:588 +#: reference/expressions.rst:645 msgid "" "Resumes the execution and \"sends\" a value into the generator function. " "The *value* argument becomes the result of the current yield expression. " @@ -688,7 +765,7 @@ msgid "" "expression that could receive the value." msgstr "" -#: reference/expressions.rst:600 +#: reference/expressions.rst:657 msgid "" "Raises an exception at the point where the generator was paused, and returns " "the next value yielded by the generator function. If the generator exits " @@ -697,13 +774,13 @@ msgid "" "a different exception, then that exception propagates to the caller." msgstr "" -#: reference/expressions.rst:606 +#: reference/expressions.rst:663 msgid "" "In typical use, this is called with a single exception instance similar to " "the way the :keyword:`raise` keyword is used." msgstr "" -#: reference/expressions.rst:609 +#: reference/expressions.rst:666 msgid "" "For backwards compatibility, however, the second signature is supported, " "following a convention from older versions of Python. The *type* argument " @@ -714,42 +791,44 @@ msgid "" "*value* may be cleared." msgstr "" -#: reference/expressions.rst:804 +#: reference/expressions.rst:863 msgid "" "The second signature \\(type\\[, value\\[, traceback\\]\\]\\) is deprecated " "and may be removed in a future version of Python." msgstr "" -#: reference/expressions.rst:628 +#: reference/expressions.rst:685 msgid "" -"Raises a :exc:`GeneratorExit` at the point where the generator function was " -"paused. If the generator function catches the exception and returns a " -"value, this value is returned from :meth:`close`. If the generator function " -"is already closed, or raises :exc:`GeneratorExit` (by not catching the " -"exception), :meth:`close` returns :const:`None`. If the generator yields a " -"value, a :exc:`RuntimeError` is raised. If the generator raises any other " -"exception, it is propagated to the caller. If the generator has already " -"exited due to an exception or normal exit, :meth:`close` returns :const:" -"`None` and has no other effect." +"Raises a :exc:`GeneratorExit` exception at the point where the generator " +"function was paused (equivalent to calling ``throw(GeneratorExit)``). The " +"exception is raised by the yield expression where the generator was paused. " +"If the generator function catches the exception and returns a value, this " +"value is returned from :meth:`close`. If the generator function is already " +"closed, or raises :exc:`GeneratorExit` (by not catching the exception), :" +"meth:`close` returns :const:`None`. If the generator yields a value, a :exc:" +"`RuntimeError` is raised. If the generator raises any other exception, it " +"is propagated to the caller. If the generator has already exited due to an " +"exception or normal exit, :meth:`close` returns :const:`None` and has no " +"other effect." msgstr "" -#: reference/expressions.rst:640 +#: reference/expressions.rst:699 msgid "" "If a generator returns a value upon being closed, the value is returned by :" "meth:`close`." msgstr "" -#: reference/expressions.rst:646 +#: reference/expressions.rst:705 msgid "Examples" msgstr "" -#: reference/expressions.rst:648 +#: reference/expressions.rst:707 msgid "" "Here is a simple example that demonstrates the behavior of generators and " "generator functions::" msgstr "" -#: reference/expressions.rst:651 +#: reference/expressions.rst:710 msgid "" ">>> def echo(value=None):\n" "... print(\"Execution starts when 'next()' is called for the first time." @@ -777,24 +856,24 @@ msgid "" "Don't forget to clean up when 'close()' is called." msgstr "" -#: reference/expressions.rst:675 +#: reference/expressions.rst:734 msgid "" "For examples using ``yield from``, see :ref:`pep-380` in \"What's New in " "Python.\"" msgstr "" -#: reference/expressions.rst:681 +#: reference/expressions.rst:740 msgid "Asynchronous generator functions" msgstr "" -#: reference/expressions.rst:683 +#: reference/expressions.rst:742 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 "" -#: reference/expressions.rst:687 +#: reference/expressions.rst:746 msgid "" "When an asynchronous generator function is called, it returns an " "asynchronous iterator known as an asynchronous generator object. That object " @@ -804,7 +883,7 @@ msgid "" "keyword:`for` statement." msgstr "" -#: reference/expressions.rst:694 +#: reference/expressions.rst:753 msgid "" "Calling one of the asynchronous generator's methods returns an :term:" "`awaitable` object, and the execution starts when this object is awaited on. " @@ -822,7 +901,7 @@ msgid "" "then the result will be the value passed in to that method." msgstr "" -#: reference/expressions.rst:709 +#: reference/expressions.rst:768 msgid "" "If an asynchronous generator happens to exit early by :keyword:`break`, the " "caller task being cancelled, or other exceptions, the generator's async " @@ -834,7 +913,7 @@ msgid "" "generator and ultimately detach it from the event loop." msgstr "" -#: reference/expressions.rst:719 +#: reference/expressions.rst:778 msgid "" "In an asynchronous generator function, yield expressions are allowed " "anywhere in a :keyword:`try` construct. However, if an asynchronous " @@ -848,7 +927,7 @@ msgid "" "finally` clauses to execute." msgstr "" -#: reference/expressions.rst:730 +#: reference/expressions.rst:789 msgid "" "To take care of finalization upon event loop termination, an event loop " "should define a *finalizer* function which takes an asynchronous generator-" @@ -861,23 +940,23 @@ msgid "" "asyncio/base_events.py`." msgstr "" -#: reference/expressions.rst:739 +#: reference/expressions.rst:798 msgid "" "The expression ``yield from `` is a syntax error when used in an " "asynchronous generator function." msgstr "" -#: reference/expressions.rst:746 +#: reference/expressions.rst:805 msgid "Asynchronous generator-iterator methods" msgstr "" -#: reference/expressions.rst:748 +#: reference/expressions.rst:807 msgid "" "This subsection describes the methods of an asynchronous generator iterator, " "which are used to control the execution of a generator function." msgstr "" -#: reference/expressions.rst:757 +#: reference/expressions.rst:816 msgid "" "Returns an awaitable which when run starts to execute the asynchronous " "generator or resumes it at the last executed yield expression. When an " @@ -892,12 +971,12 @@ msgid "" "has completed." msgstr "" -#: reference/expressions.rst:769 +#: reference/expressions.rst:828 msgid "" "This method is normally called implicitly by a :keyword:`async for` loop." msgstr "" -#: reference/expressions.rst:775 +#: reference/expressions.rst:834 msgid "" "Returns an awaitable which when run resumes the execution of the " "asynchronous generator. As with the :meth:`~generator.send` method for a " @@ -912,7 +991,7 @@ msgid "" "receive the value." msgstr "" -#: reference/expressions.rst:792 +#: reference/expressions.rst:851 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 " @@ -924,7 +1003,7 @@ msgid "" "that exception propagates to the caller of the awaitable." msgstr "" -#: reference/expressions.rst:813 +#: reference/expressions.rst:872 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 " @@ -940,25 +1019,25 @@ msgid "" "will return an awaitable that does nothing." msgstr "" -#: reference/expressions.rst:829 +#: reference/expressions.rst:888 msgid "Primaries" msgstr "" -#: reference/expressions.rst:833 +#: reference/expressions.rst:892 msgid "" "Primaries represent the most tightly bound operations of the language. Their " "syntax is:" msgstr "" -#: reference/expressions.rst:843 +#: reference/expressions.rst:902 msgid "Attribute references" msgstr "" -#: reference/expressions.rst:849 +#: reference/expressions.rst:908 msgid "An attribute reference is a primary followed by a period and a name:" msgstr "" -#: reference/expressions.rst:859 +#: reference/expressions.rst:918 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 " @@ -967,7 +1046,7 @@ msgid "" "reference may yield different objects." msgstr "" -#: reference/expressions.rst:865 +#: reference/expressions.rst:924 msgid "" "This production can be customized by overriding the :meth:`~object." "__getattribute__` method or the :meth:`~object.__getattr__` method. The :" @@ -975,17 +1054,17 @@ msgid "" "or raises :exc:`AttributeError` if the attribute is not available." msgstr "" -#: reference/expressions.rst:871 +#: reference/expressions.rst:930 msgid "" "If an :exc:`AttributeError` is raised and the object has a :meth:`!" "__getattr__` method, that method is called as a fallback." msgstr "" -#: reference/expressions.rst:877 +#: reference/expressions.rst:936 msgid "Subscriptions" msgstr "" -#: reference/expressions.rst:892 +#: reference/expressions.rst:951 msgid "" "The subscription of an instance of a :ref:`container class ` " "will generally select an element from the container. The subscription of a :" @@ -993,13 +1072,13 @@ msgid "" "`GenericAlias ` object." msgstr "" -#: reference/expressions.rst:900 +#: reference/expressions.rst:959 msgid "" "When an object is subscripted, the interpreter will evaluate the primary and " "the expression list." msgstr "" -#: reference/expressions.rst:903 +#: reference/expressions.rst:962 msgid "" "The primary must evaluate to an object that supports subscription. An object " "may support subscription through defining one or both of :meth:`~object." @@ -1009,7 +1088,7 @@ msgid "" "called instead of ``__getitem__``, see :ref:`classgetitem-versus-getitem`." msgstr "" -#: reference/expressions.rst:910 +#: reference/expressions.rst:969 msgid "" "If the expression list contains at least one comma, or if any of the " "expressions are starred, the expression list will evaluate to a :class:" @@ -1017,17 +1096,17 @@ msgid "" "expression list will evaluate to the value of the list's sole member." msgstr "" -#: reference/expressions.rst:915 +#: reference/expressions.rst:974 msgid "Expressions in an expression list may be starred. See :pep:`646`." msgstr "" -#: reference/expressions.rst:918 +#: reference/expressions.rst:977 msgid "" "For built-in objects, there are two types of objects that support " "subscription via :meth:`~object.__getitem__`:" msgstr "" -#: reference/expressions.rst:921 +#: reference/expressions.rst:980 msgid "" "Mappings. If the primary is a :term:`mapping`, the expression list must " "evaluate to an object whose value is one of the keys of the mapping, and the " @@ -1035,7 +1114,7 @@ msgid "" "An example of a builtin mapping class is the :class:`dict` class." msgstr "" -#: reference/expressions.rst:925 +#: reference/expressions.rst:984 msgid "" "Sequences. If the primary is a :term:`sequence`, the expression list must " "evaluate to an :class:`int` or a :class:`slice` (as discussed in the " @@ -1043,7 +1122,7 @@ msgid "" "`str`, :class:`list` and :class:`tuple` classes." msgstr "" -#: reference/expressions.rst:930 +#: reference/expressions.rst:989 msgid "" "The formal syntax makes no special provision for negative indices in :term:" "`sequences `. However, built-in sequences all provide a :meth:" @@ -1057,25 +1136,25 @@ msgid "" "explicitly add that support." msgstr "" -#: reference/expressions.rst:944 +#: reference/expressions.rst:1003 msgid "" "A :class:`string ` is a special kind of sequence whose items are " "*characters*. A character is not a separate data type but a string of " "exactly one character." msgstr "" -#: reference/expressions.rst:952 +#: reference/expressions.rst:1011 msgid "Slicings" msgstr "" -#: reference/expressions.rst:966 +#: reference/expressions.rst:1025 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 "" -#: reference/expressions.rst:979 +#: reference/expressions.rst:1038 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 " @@ -1085,7 +1164,7 @@ msgid "" "the case if the slice list contains no proper slice)." msgstr "" -#: reference/expressions.rst:991 +#: reference/expressions.rst:1050 msgid "" "The semantics for a slicing are as follows. The primary is indexed (using " "the same :meth:`~object.__getitem__` method as normal subscription) with a " @@ -1100,23 +1179,23 @@ msgid "" "missing expressions." msgstr "" -#: reference/expressions.rst:1015 +#: reference/expressions.rst:1074 msgid "Calls" msgstr "" -#: reference/expressions.rst:1017 +#: reference/expressions.rst:1076 msgid "" "A call calls a callable object (e.g., a :term:`function`) with a possibly " "empty series of :term:`arguments `:" msgstr "" -#: reference/expressions.rst:1034 +#: reference/expressions.rst:1093 msgid "" "An optional trailing comma may be present after the positional and keyword " "arguments but does not affect the semantics." msgstr "" -#: reference/expressions.rst:1040 +#: reference/expressions.rst:1099 msgid "" "The primary must evaluate to a callable object (user-defined functions, " "built-in functions, methods of built-in objects, class objects, methods of " @@ -1126,7 +1205,7 @@ msgid "" "formal :term:`parameter` lists." msgstr "" -#: reference/expressions.rst:1048 +#: reference/expressions.rst:1107 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 " @@ -1147,7 +1226,7 @@ msgid "" "filled slots is used as the argument list for the call." msgstr "" -#: reference/expressions.rst:1068 +#: reference/expressions.rst:1127 msgid "" "An implementation may provide built-in functions whose positional parameters " "do not have names, even if they are 'named' for the purpose of " @@ -1156,7 +1235,7 @@ msgid "" "`PyArg_ParseTuple` to parse their arguments." msgstr "" -#: reference/expressions.rst:1074 +#: reference/expressions.rst:1133 msgid "" "If there are more positional arguments than there are formal parameter " "slots, a :exc:`TypeError` exception is raised, unless a formal parameter " @@ -1165,7 +1244,7 @@ msgid "" "empty tuple if there were no excess positional arguments)." msgstr "" -#: reference/expressions.rst:1080 +#: reference/expressions.rst:1139 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 " @@ -1175,7 +1254,7 @@ msgid "" "(new) empty dictionary if there were no excess keyword arguments." msgstr "" -#: reference/expressions.rst:1091 +#: reference/expressions.rst:1150 msgid "" "If the syntax ``*expression`` appears in the function call, ``expression`` " "must evaluate to an :term:`iterable`. Elements from these iterables are " @@ -1185,14 +1264,14 @@ msgid "" "*y1*, ..., *yM*, *x3*, *x4*." msgstr "" -#: reference/expressions.rst:1098 +#: reference/expressions.rst:1157 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 "" -#: reference/expressions.rst:1102 +#: reference/expressions.rst:1161 msgid "" ">>> def f(a, b):\n" "... print(a, b)\n" @@ -1207,13 +1286,13 @@ msgid "" "1 2" msgstr "" -#: reference/expressions.rst:1114 +#: reference/expressions.rst:1173 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 often arise." msgstr "" -#: reference/expressions.rst:1120 +#: reference/expressions.rst:1179 msgid "" "If the syntax ``**expression`` appears in the function call, ``expression`` " "must evaluate to a :term:`mapping`, the contents of which are treated as " @@ -1222,7 +1301,7 @@ msgid "" "a :exc:`TypeError` exception is raised." msgstr "" -#: reference/expressions.rst:1126 +#: reference/expressions.rst:1185 msgid "" "When ``**expression`` is used, each key in this mapping must be a string. " "Each value from the mapping is assigned to the first formal parameter " @@ -1234,35 +1313,35 @@ msgid "" "is raised." msgstr "" -#: reference/expressions.rst:1136 +#: reference/expressions.rst:1195 msgid "" "Formal parameters using the syntax ``*identifier`` or ``**identifier`` " "cannot be used as positional argument slots or as keyword argument names." msgstr "" -#: reference/expressions.rst:1139 +#: reference/expressions.rst:1198 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 "" -#: reference/expressions.rst:1145 +#: reference/expressions.rst:1204 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 "" -#: reference/expressions.rst:1149 +#: reference/expressions.rst:1208 msgid "If it is---" msgstr "" -#: reference/expressions.rst:1151 +#: reference/expressions.rst:1210 msgid "a user-defined function:" msgstr "" -#: reference/expressions.rst:1158 +#: reference/expressions.rst:1217 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 " @@ -1273,73 +1352,73 @@ msgid "" "``None``." msgstr "" -#: reference/expressions.rst:1165 +#: reference/expressions.rst:1224 msgid "a built-in function or method:" msgstr "" -#: reference/expressions.rst:1176 +#: reference/expressions.rst:1235 msgid "" "The result is up to the interpreter; see :ref:`built-in-funcs` for the " "descriptions of built-in functions and methods." msgstr "" -#: reference/expressions.rst:1179 +#: reference/expressions.rst:1238 msgid "a class object:" msgstr "" -#: reference/expressions.rst:1184 +#: reference/expressions.rst:1243 msgid "A new instance of that class is returned." msgstr "" -#: reference/expressions.rst:1186 +#: reference/expressions.rst:1245 msgid "a class instance method:" msgstr "" -#: reference/expressions.rst:1192 +#: reference/expressions.rst:1251 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 "" -#: reference/expressions.rst:1196 +#: reference/expressions.rst:1255 msgid "a class instance:" msgstr "" -#: reference/expressions.rst:1201 +#: reference/expressions.rst:1260 msgid "" "The class must define a :meth:`~object.__call__` method; the effect is then " "the same as if that method was called." msgstr "" -#: reference/expressions.rst:2022 +#: reference/expressions.rst:2082 msgid "Await expression" msgstr "" -#: reference/expressions.rst:1211 +#: reference/expressions.rst:1270 msgid "" "Suspend the execution of :term:`coroutine` on an :term:`awaitable` object. " "Can only be used inside a :term:`coroutine function`." msgstr "" -#: reference/expressions.rst:1223 +#: reference/expressions.rst:1282 msgid "The power operator" msgstr "" -#: reference/expressions.rst:1229 +#: reference/expressions.rst:1288 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 "" -#: reference/expressions.rst:1235 +#: reference/expressions.rst:1294 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 "" -#: reference/expressions.rst:1239 +#: reference/expressions.rst:1298 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 " @@ -1347,7 +1426,7 @@ msgid "" "converted to a common type, and the result is of that type." msgstr "" -#: reference/expressions.rst:1244 +#: reference/expressions.rst:1303 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 " @@ -1355,41 +1434,41 @@ msgid "" "``100``, but ``10**-2`` returns ``0.01``." msgstr "" -#: reference/expressions.rst:1249 +#: reference/expressions.rst:1308 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 "" -#: reference/expressions.rst:1253 +#: reference/expressions.rst:1312 msgid "" "This operation can be customized using the special :meth:`~object.__pow__` " "and :meth:`~object.__rpow__` methods." msgstr "" -#: reference/expressions.rst:1259 +#: reference/expressions.rst:1318 msgid "Unary arithmetic and bitwise operations" msgstr "" -#: reference/expressions.rst:1265 +#: reference/expressions.rst:1324 msgid "All unary arithmetic and bitwise operations have the same priority:" msgstr "" -#: reference/expressions.rst:1276 +#: reference/expressions.rst:1335 msgid "" "The unary ``-`` (minus) operator yields the negation of its numeric " "argument; the operation can be overridden with the :meth:`~object.__neg__` " "special method." msgstr "" -#: reference/expressions.rst:1284 +#: reference/expressions.rst:1343 msgid "" "The unary ``+`` (plus) operator yields its numeric argument unchanged; the " "operation can be overridden with the :meth:`~object.__pos__` special method." msgstr "" -#: reference/expressions.rst:1291 +#: reference/expressions.rst:1350 msgid "" "The unary ``~`` (invert) operator yields the bitwise inversion of its " "integer argument. The bitwise inversion of ``x`` is defined as ``-(x+1)``. " @@ -1397,17 +1476,17 @@ msgid "" "meth:`~object.__invert__` special method." msgstr "" -#: reference/expressions.rst:1300 +#: reference/expressions.rst:1359 msgid "" "In all three cases, if the argument does not have the proper type, a :exc:" "`TypeError` exception is raised." msgstr "" -#: reference/expressions.rst:1307 +#: reference/expressions.rst:1366 msgid "Binary arithmetic operations" msgstr "" -#: reference/expressions.rst:1311 +#: reference/expressions.rst:1370 msgid "" "The binary arithmetic operations have the conventional priority levels. " "Note that some of these operations also apply to certain non-numeric types. " @@ -1415,7 +1494,7 @@ msgid "" "multiplicative operators and one for additive operators:" msgstr "" -#: reference/expressions.rst:1326 +#: reference/expressions.rst:1385 msgid "" "The ``*`` (multiplication) operator yields the product of its arguments. " "The arguments must either both be numbers, or one argument must be an " @@ -1425,31 +1504,31 @@ msgid "" "yields an empty sequence." msgstr "" -#: reference/expressions.rst:1332 +#: reference/expressions.rst:1391 msgid "" "This operation can be customized using the special :meth:`~object.__mul__` " "and :meth:`~object.__rmul__` methods." msgstr "" -#: reference/expressions.rst:1412 reference/expressions.rst:1427 +#: reference/expressions.rst:1471 reference/expressions.rst:1486 msgid "" "If only one operand is a complex number, the other operand is converted to a " "floating-point number." msgstr "" -#: reference/expressions.rst:1343 +#: reference/expressions.rst:1402 msgid "" "The ``@`` (at) operator is intended to be used for matrix multiplication. " "No builtin Python types implement this operator." msgstr "" -#: reference/expressions.rst:1346 +#: reference/expressions.rst:1405 msgid "" "This operation can be customized using the special :meth:`~object." "__matmul__` and :meth:`~object.__rmatmul__` methods." msgstr "" -#: reference/expressions.rst:1357 +#: reference/expressions.rst:1416 msgid "" "The ``/`` (division) and ``//`` (floor division) operators yield the " "quotient of their arguments. The numeric arguments are first converted to a " @@ -1459,7 +1538,7 @@ msgid "" "the :exc:`ZeroDivisionError` exception." msgstr "" -#: reference/expressions.rst:1364 +#: reference/expressions.rst:1423 msgid "" "The division operation can be customized using the special :meth:`~object." "__truediv__` and :meth:`~object.__rtruediv__` methods. The floor division " @@ -1467,7 +1546,7 @@ msgid "" "and :meth:`~object.__rfloordiv__` methods." msgstr "" -#: reference/expressions.rst:1373 +#: reference/expressions.rst:1432 msgid "" "The ``%`` (modulo) operator yields the remainder from the division of the " "first argument by the second. The numeric arguments are first converted to " @@ -1479,7 +1558,7 @@ msgid "" "absolute value of the second operand [#]_." msgstr "" -#: reference/expressions.rst:1382 +#: reference/expressions.rst:1441 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 " @@ -1487,7 +1566,7 @@ msgid "" "y, x%y)``. [#]_." msgstr "" -#: reference/expressions.rst:1387 +#: reference/expressions.rst:1446 msgid "" "In addition to performing the modulo operation on numbers, the ``%`` " "operator is also overloaded by string objects to perform old-style string " @@ -1496,20 +1575,20 @@ msgid "" "formatting`." msgstr "" -#: reference/expressions.rst:1392 +#: reference/expressions.rst:1451 msgid "" "The *modulo* operation can be customized using the special :meth:`~object." "__mod__` and :meth:`~object.__rmod__` methods." msgstr "" -#: reference/expressions.rst:1395 +#: reference/expressions.rst:1454 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 "" -#: reference/expressions.rst:1404 +#: reference/expressions.rst:1463 msgid "" "The ``+`` (addition) operator yields the sum of its arguments. The " "arguments must either both be numbers or both be sequences of the same " @@ -1517,40 +1596,40 @@ msgid "" "and then added together. In the latter case, the sequences are concatenated." msgstr "" -#: reference/expressions.rst:1409 +#: reference/expressions.rst:1468 msgid "" "This operation can be customized using the special :meth:`~object.__add__` " "and :meth:`~object.__radd__` methods." msgstr "" -#: reference/expressions.rst:1421 +#: reference/expressions.rst:1480 msgid "" "The ``-`` (subtraction) operator yields the difference of its arguments. " "The numeric arguments are first converted to a common real type." msgstr "" -#: reference/expressions.rst:1424 +#: reference/expressions.rst:1483 msgid "" "This operation can be customized using the special :meth:`~object.__sub__` " "and :meth:`~object.__rsub__` methods." msgstr "" -#: reference/expressions.rst:1435 +#: reference/expressions.rst:1494 msgid "Shifting operations" msgstr "" -#: reference/expressions.rst:1442 +#: reference/expressions.rst:1501 msgid "" "The shifting operations have lower priority than the arithmetic operations:" msgstr "" -#: reference/expressions.rst:1447 +#: reference/expressions.rst:1506 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 "" -#: reference/expressions.rst:1450 +#: reference/expressions.rst:1509 msgid "" "The left shift operation can be customized using the special :meth:`~object." "__lshift__` and :meth:`~object.__rlshift__` methods. The right shift " @@ -1558,46 +1637,46 @@ msgid "" "and :meth:`~object.__rrshift__` methods." msgstr "" -#: reference/expressions.rst:1457 +#: reference/expressions.rst:1516 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 "" -#: reference/expressions.rst:1464 +#: reference/expressions.rst:1523 msgid "Binary bitwise operations" msgstr "" -#: reference/expressions.rst:1468 +#: reference/expressions.rst:1527 msgid "Each of the three bitwise operations has a different priority level:" msgstr "" -#: reference/expressions.rst:1479 +#: reference/expressions.rst:1538 msgid "" "The ``&`` operator yields the bitwise AND of its arguments, which must be " "integers or one of them must be a custom object overriding :meth:`~object." "__and__` or :meth:`~object.__rand__` special methods." msgstr "" -#: reference/expressions.rst:1488 +#: reference/expressions.rst:1547 msgid "" "The ``^`` operator yields the bitwise XOR (exclusive OR) of its arguments, " "which must be integers or one of them must be a custom object overriding :" "meth:`~object.__xor__` or :meth:`~object.__rxor__` special methods." msgstr "" -#: reference/expressions.rst:1497 +#: reference/expressions.rst:1556 msgid "" "The ``|`` operator yields the bitwise (inclusive) OR of its arguments, which " "must be integers or one of them must be a custom object overriding :meth:" "`~object.__or__` or :meth:`~object.__ror__` special methods." msgstr "" -#: reference/expressions.rst:1505 +#: reference/expressions.rst:1564 msgid "Comparisons" msgstr "" -#: reference/expressions.rst:1517 +#: reference/expressions.rst:1576 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 " @@ -1605,14 +1684,14 @@ msgid "" "conventional in mathematics:" msgstr "" -#: reference/expressions.rst:1527 +#: reference/expressions.rst:1586 msgid "" "Comparisons yield boolean values: ``True`` or ``False``. Custom :dfn:`rich " "comparison methods` may return non-boolean values. In this case Python will " "call :func:`bool` on such value in boolean contexts." msgstr "" -#: reference/expressions.rst:1533 +#: reference/expressions.rst:1592 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 " @@ -1620,7 +1699,7 @@ msgid "" "false)." msgstr "" -#: reference/expressions.rst:1537 +#: reference/expressions.rst:1596 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 " @@ -1628,24 +1707,24 @@ msgid "" "each expression is evaluated at most once." msgstr "" -#: reference/expressions.rst:1542 +#: reference/expressions.rst:1601 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 "" -#: reference/expressions.rst:1549 +#: reference/expressions.rst:1608 msgid "Value comparisons" msgstr "" -#: reference/expressions.rst:1551 +#: reference/expressions.rst:1610 msgid "" "The operators ``<``, ``>``, ``==``, ``>=``, ``<=``, and ``!=`` compare the " "values of two objects. The objects do not need to have the same type." msgstr "" -#: reference/expressions.rst:1554 +#: reference/expressions.rst:1613 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 " @@ -1657,7 +1736,7 @@ msgid "" "indirectly, by means of their comparison implementation." msgstr "" -#: reference/expressions.rst:1563 +#: reference/expressions.rst:1622 msgid "" "Because all types are (direct or indirect) subtypes of :class:`object`, they " "inherit the default comparison behavior from :class:`object`. Types can " @@ -1665,7 +1744,7 @@ msgid "" "methods` like :meth:`~object.__lt__`, described in :ref:`customization`." msgstr "" -#: reference/expressions.rst:1569 +#: reference/expressions.rst:1628 msgid "" "The default behavior for equality comparison (``==`` and ``!=``) is based on " "the identity of the objects. Hence, equality comparison of instances with " @@ -1675,14 +1754,14 @@ msgid "" "``x is y`` implies ``x == y``)." msgstr "" -#: reference/expressions.rst:1576 +#: reference/expressions.rst:1635 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 "" -#: reference/expressions.rst:1580 +#: reference/expressions.rst:1639 msgid "" "The behavior of the default equality comparison, that instances with " "different identities are always unequal, may be in contrast to what types " @@ -1691,13 +1770,13 @@ msgid "" "in fact, a number of built-in types have done that." msgstr "" -#: reference/expressions.rst:1586 +#: reference/expressions.rst:1645 msgid "" "The following list describes the comparison behavior of the most important " "built-in types." msgstr "" -#: reference/expressions.rst:1589 +#: reference/expressions.rst:1648 msgid "" "Numbers of built-in numeric types (:ref:`typesnumeric`) and of the standard " "library types :class:`fractions.Fraction` and :class:`decimal.Decimal` can " @@ -1707,7 +1786,7 @@ msgid "" "of precision." msgstr "" -#: reference/expressions.rst:1596 +#: reference/expressions.rst:1655 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 " @@ -1717,32 +1796,32 @@ msgid "" "is compliant with IEEE 754." msgstr "" -#: reference/expressions.rst:1603 +#: reference/expressions.rst:1662 msgid "" "``None`` and :data:`NotImplemented` are singletons. :PEP:`8` advises that " "comparisons for singletons should always be done with ``is`` or ``is not``, " "never the equality operators." msgstr "" -#: reference/expressions.rst:1607 +#: reference/expressions.rst:1666 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 "" -#: reference/expressions.rst:1611 +#: reference/expressions.rst:1670 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 "" -#: reference/expressions.rst:1615 +#: reference/expressions.rst:1674 msgid "Strings and binary sequences cannot be directly compared." msgstr "" -#: reference/expressions.rst:1617 +#: reference/expressions.rst:1676 msgid "" "Sequences (instances of :class:`tuple`, :class:`list`, or :class:`range`) " "can be compared only within each of their types, with the restriction that " @@ -1751,7 +1830,7 @@ msgid "" "raises :exc:`TypeError`." msgstr "" -#: reference/expressions.rst:1623 +#: reference/expressions.rst:1682 msgid "" "Sequences compare lexicographically using comparison of corresponding " "elements. The built-in containers typically assume identical objects are " @@ -1759,19 +1838,19 @@ msgid "" "objects to improve performance and to maintain their internal invariants." msgstr "" -#: reference/expressions.rst:1628 +#: reference/expressions.rst:1687 msgid "" "Lexicographical comparison between built-in collections works as follows:" msgstr "" -#: reference/expressions.rst:1630 +#: reference/expressions.rst:1689 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 "" -#: reference/expressions.rst:1635 +#: reference/expressions.rst:1694 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 " @@ -1780,25 +1859,25 @@ msgid "" "true)." msgstr "" -#: reference/expressions.rst:1641 +#: reference/expressions.rst:1700 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 "" -#: reference/expressions.rst:1645 +#: reference/expressions.rst:1704 msgid "" "Order comparisons (``<``, ``>``, ``<=``, and ``>=``) raise :exc:`TypeError`." msgstr "" -#: reference/expressions.rst:1647 +#: reference/expressions.rst:1706 msgid "" "Sets (instances of :class:`set` or :class:`frozenset`) can be compared " "within and across their types." msgstr "" -#: reference/expressions.rst:1650 +#: reference/expressions.rst:1709 msgid "" "They define order comparison operators to mean subset and superset tests. " "Those relations do not define total orderings (for example, the two sets " @@ -1809,110 +1888,110 @@ msgid "" "sets as inputs)." msgstr "" -#: reference/expressions.rst:1658 +#: reference/expressions.rst:1717 msgid "Comparison of sets enforces reflexivity of its elements." msgstr "" -#: reference/expressions.rst:1660 +#: reference/expressions.rst:1719 msgid "" "Most other built-in types have no comparison methods implemented, so they " "inherit the default comparison behavior." msgstr "" -#: reference/expressions.rst:1663 +#: reference/expressions.rst:1722 msgid "" "User-defined classes that customize their comparison behavior should follow " "some consistency rules, if possible:" msgstr "" -#: reference/expressions.rst:1666 +#: reference/expressions.rst:1725 msgid "" "Equality comparison should be reflexive. In other words, identical objects " "should compare equal:" msgstr "" -#: reference/expressions.rst:1669 +#: reference/expressions.rst:1728 msgid "``x is y`` implies ``x == y``" msgstr "" -#: reference/expressions.rst:1671 +#: reference/expressions.rst:1730 msgid "" "Comparison should be symmetric. In other words, the following expressions " "should have the same result:" msgstr "" -#: reference/expressions.rst:1674 +#: reference/expressions.rst:1733 msgid "``x == y`` and ``y == x``" msgstr "" -#: reference/expressions.rst:1676 +#: reference/expressions.rst:1735 msgid "``x != y`` and ``y != x``" msgstr "" -#: reference/expressions.rst:1678 +#: reference/expressions.rst:1737 msgid "``x < y`` and ``y > x``" msgstr "" -#: reference/expressions.rst:1680 +#: reference/expressions.rst:1739 msgid "``x <= y`` and ``y >= x``" msgstr "" -#: reference/expressions.rst:1682 +#: reference/expressions.rst:1741 msgid "" "Comparison should be transitive. The following (non-exhaustive) examples " "illustrate that:" msgstr "" -#: reference/expressions.rst:1685 +#: reference/expressions.rst:1744 msgid "``x > y and y > z`` implies ``x > z``" msgstr "" -#: reference/expressions.rst:1687 +#: reference/expressions.rst:1746 msgid "``x < y and y <= z`` implies ``x < z``" msgstr "" -#: reference/expressions.rst:1689 +#: reference/expressions.rst:1748 msgid "" "Inverse comparison should result in the boolean negation. In other words, " "the following expressions should have the same result:" msgstr "" -#: reference/expressions.rst:1692 +#: reference/expressions.rst:1751 msgid "``x == y`` and ``not x != y``" msgstr "" -#: reference/expressions.rst:1694 +#: reference/expressions.rst:1753 msgid "``x < y`` and ``not x >= y`` (for total ordering)" msgstr "" -#: reference/expressions.rst:1696 +#: reference/expressions.rst:1755 msgid "``x > y`` and ``not x <= y`` (for total ordering)" msgstr "" -#: reference/expressions.rst:1698 +#: reference/expressions.rst:1757 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 "" -#: reference/expressions.rst:1702 +#: reference/expressions.rst:1761 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 "" -#: reference/expressions.rst:1706 +#: reference/expressions.rst:1765 msgid "" "Python does not enforce these consistency rules. In fact, the not-a-number " "values are an example for not following these rules." msgstr "" -#: reference/expressions.rst:1715 +#: reference/expressions.rst:1774 msgid "Membership test operations" msgstr "" -#: reference/expressions.rst:1717 +#: reference/expressions.rst:1776 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`` " @@ -1923,7 +2002,7 @@ msgid "" "expression ``x in y`` is equivalent to ``any(x is e or x == e for e in y)``." msgstr "" -#: reference/expressions.rst:1725 +#: reference/expressions.rst:1784 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 " @@ -1931,14 +2010,14 @@ msgid "" "``\"\" in \"abc\"`` will return ``True``." msgstr "" -#: reference/expressions.rst:1730 +#: reference/expressions.rst:1789 msgid "" "For user-defined classes which define the :meth:`~object.__contains__` " "method, ``x in y`` returns ``True`` if ``y.__contains__(x)`` returns a true " "value, and ``False`` otherwise." msgstr "" -#: reference/expressions.rst:1734 +#: reference/expressions.rst:1793 msgid "" "For user-defined classes which do not define :meth:`~object.__contains__` " "but do define :meth:`~object.__iter__`, ``x in y`` is ``True`` if some value " @@ -1947,7 +2026,7 @@ msgid "" "it is as if :keyword:`in` raised that exception." msgstr "" -#: reference/expressions.rst:1740 +#: reference/expressions.rst:1799 msgid "" "Lastly, the old-style iteration protocol is tried: if a class defines :meth:" "`~object.__getitem__`, ``x in y`` is ``True`` if and only if there is a non-" @@ -1956,17 +2035,17 @@ msgid "" "exception is raised, it is as if :keyword:`in` raised that exception)." msgstr "" -#: reference/expressions.rst:1752 +#: reference/expressions.rst:1811 msgid "" "The operator :keyword:`not in` is defined to have the inverse truth value " "of :keyword:`in`." msgstr "" -#: reference/expressions.rst:1765 +#: reference/expressions.rst:1824 msgid "Identity comparisons" msgstr "" -#: reference/expressions.rst:1767 +#: reference/expressions.rst:1826 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 " @@ -1974,11 +2053,11 @@ msgid "" "``x is not y`` yields the inverse truth value. [#]_" msgstr "" -#: reference/expressions.rst:1779 +#: reference/expressions.rst:1838 msgid "Boolean operations" msgstr "" -#: reference/expressions.rst:1790 +#: reference/expressions.rst:1849 msgid "" "In the context of Boolean operations, and also when expressions are used by " "control flow statements, the following values are interpreted as false: " @@ -1989,25 +2068,25 @@ msgid "" "__bool__` method." msgstr "" -#: reference/expressions.rst:1799 +#: reference/expressions.rst:1858 msgid "" "The operator :keyword:`not` yields ``True`` if its argument is false, " "``False`` otherwise." msgstr "" -#: reference/expressions.rst:1804 +#: reference/expressions.rst:1863 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 "" -#: reference/expressions.rst:1809 +#: reference/expressions.rst:1868 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 "" -#: reference/expressions.rst:1812 +#: reference/expressions.rst:1871 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 " @@ -2018,11 +2097,11 @@ msgid "" "argument (for example, ``not 'foo'`` produces ``False`` rather than ``''``.)" msgstr "" -#: reference/expressions.rst:1831 +#: reference/expressions.rst:1890 msgid "Assignment expressions" msgstr "" -#: reference/expressions.rst:1836 +#: reference/expressions.rst:1895 msgid "" "An assignment expression (sometimes also called a \"named expression\" or " "\"walrus\") assigns an :token:`~python-grammar:expression` to an :token:" @@ -2030,27 +2109,27 @@ msgid "" "`~python-grammar:expression`." msgstr "" -#: reference/expressions.rst:1841 +#: reference/expressions.rst:1900 msgid "One common use case is when handling matched regular expressions:" msgstr "" -#: reference/expressions.rst:1843 +#: reference/expressions.rst:1902 msgid "" "if matching := pattern.search(data):\n" " do_something(matching)" msgstr "" -#: reference/expressions.rst:1848 +#: reference/expressions.rst:1907 msgid "Or, when processing a file stream in chunks:" msgstr "" -#: reference/expressions.rst:1850 +#: reference/expressions.rst:1909 msgid "" "while chunk := file.read(9000):\n" " process(chunk)" msgstr "" -#: reference/expressions.rst:1855 +#: reference/expressions.rst:1914 msgid "" "Assignment expressions must be surrounded by parentheses when used as " "expression statements and when used as sub-expressions in slicing, " @@ -2060,36 +2139,37 @@ msgid "" "and ``while`` statements." msgstr "" -#: reference/expressions.rst:1863 +#: reference/expressions.rst:1922 msgid "See :pep:`572` for more details about assignment expressions." msgstr "" -#: reference/expressions.rst:1870 +#: reference/expressions.rst:1929 msgid "Conditional expressions" msgstr "" -#: reference/expressions.rst:1882 +#: reference/expressions.rst:1941 msgid "" -"Conditional expressions (sometimes called a \"ternary operator\") have the " -"lowest priority of all Python operations." +"A conditional expression (sometimes called a \"ternary operator\") is an " +"alternative to the if-else statement. As it is an expression, it returns a " +"value and can appear as a sub-expression." msgstr "" -#: reference/expressions.rst:1885 +#: reference/expressions.rst:1945 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 "" -#: reference/expressions.rst:1889 +#: reference/expressions.rst:1949 msgid "See :pep:`308` for more details about conditional expressions." msgstr "" -#: reference/expressions.rst:1896 +#: reference/expressions.rst:1956 msgid "Lambdas" msgstr "" -#: reference/expressions.rst:1907 +#: reference/expressions.rst:1967 msgid "" "Lambda expressions (sometimes called lambda forms) are used to create " "anonymous functions. The expression ``lambda parameters: expression`` yields " @@ -2097,31 +2177,31 @@ msgid "" "defined with:" msgstr "" -#: reference/expressions.rst:1911 +#: reference/expressions.rst:1971 msgid "" "def (parameters):\n" " return expression" msgstr "" -#: reference/expressions.rst:1916 +#: reference/expressions.rst:1976 msgid "" "See section :ref:`function` for the syntax of parameter lists. Note that " "functions created with lambda expressions cannot contain statements or " "annotations." msgstr "" -#: reference/expressions.rst:1924 +#: reference/expressions.rst:1984 msgid "Expression lists" msgstr "" -#: reference/expressions.rst:1940 +#: reference/expressions.rst:2000 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 "" -#: reference/expressions.rst:1949 +#: reference/expressions.rst:2009 msgid "" "An asterisk ``*`` denotes :dfn:`iterable unpacking`. Its operand must be " "an :term:`iterable`. The iterable is expanded into a sequence of items, " @@ -2129,16 +2209,16 @@ msgid "" "unpacking." msgstr "" -#: reference/expressions.rst:1954 +#: reference/expressions.rst:2014 msgid "" "Iterable unpacking in expression lists, originally proposed by :pep:`448`." msgstr "" -#: reference/expressions.rst:1957 +#: reference/expressions.rst:2017 msgid "Any item in an expression list may be starred. See :pep:`646`." msgstr "" -#: reference/expressions.rst:1962 +#: reference/expressions.rst:2022 msgid "" "A trailing comma is required only to create a one-item tuple, such as ``1," "``; it is optional in all other cases. A single expression without a " @@ -2147,24 +2227,24 @@ msgid "" "``()``.)" msgstr "" -#: reference/expressions.rst:1973 +#: reference/expressions.rst:2033 msgid "Evaluation order" msgstr "" -#: reference/expressions.rst:1977 +#: reference/expressions.rst:2037 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 "" -#: reference/expressions.rst:1980 +#: reference/expressions.rst:2040 msgid "" "In the following lines, expressions will be evaluated in the arithmetic " "order of their suffixes::" msgstr "" -#: reference/expressions.rst:1983 +#: reference/expressions.rst:2043 msgid "" "expr1, expr2, expr3, expr4\n" "(expr1, expr2, expr3, expr4)\n" @@ -2174,11 +2254,11 @@ msgid "" "expr3, expr4 = expr1, expr2" msgstr "" -#: reference/expressions.rst:1994 +#: reference/expressions.rst:2054 msgid "Operator precedence" msgstr "" -#: reference/expressions.rst:1999 +#: reference/expressions.rst:2059 msgid "" "The following table summarizes the operator precedence in Python, from " "highest precedence (most binding) to lowest precedence (least binding). " @@ -2188,176 +2268,176 @@ msgid "" "group from right to left)." msgstr "" -#: reference/expressions.rst:2005 +#: reference/expressions.rst:2065 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 "" -#: reference/expressions.rst:2011 +#: reference/expressions.rst:2071 msgid "Operator" msgstr "" -#: reference/expressions.rst:2011 +#: reference/expressions.rst:2071 msgid "Description" msgstr "" -#: reference/expressions.rst:2013 +#: reference/expressions.rst:2073 msgid "``(expressions...)``," msgstr "" -#: reference/expressions.rst:2015 +#: reference/expressions.rst:2075 msgid "``[expressions...]``, ``{key: value...}``, ``{expressions...}``" msgstr "" -#: reference/expressions.rst:2013 +#: reference/expressions.rst:2073 msgid "" "Binding or parenthesized expression, list display, dictionary display, set " "display" msgstr "" -#: reference/expressions.rst:2019 +#: reference/expressions.rst:2079 msgid "``x[index]``, ``x[index:index]``, ``x(arguments...)``, ``x.attribute``" msgstr "" -#: reference/expressions.rst:2019 +#: reference/expressions.rst:2079 msgid "Subscription, slicing, call, attribute reference" msgstr "" -#: reference/expressions.rst:2022 +#: reference/expressions.rst:2082 msgid ":keyword:`await x `" msgstr "" -#: reference/expressions.rst:2024 +#: reference/expressions.rst:2084 msgid "``**``" msgstr "" -#: reference/expressions.rst:2024 +#: reference/expressions.rst:2084 msgid "Exponentiation [#]_" msgstr "" -#: reference/expressions.rst:2026 +#: reference/expressions.rst:2086 msgid "``+x``, ``-x``, ``~x``" msgstr "" -#: reference/expressions.rst:2026 +#: reference/expressions.rst:2086 msgid "Positive, negative, bitwise NOT" msgstr "" -#: reference/expressions.rst:2028 +#: reference/expressions.rst:2088 msgid "``*``, ``@``, ``/``, ``//``, ``%``" msgstr "" -#: reference/expressions.rst:2028 +#: reference/expressions.rst:2088 msgid "" "Multiplication, matrix multiplication, division, floor division, remainder " "[#]_" msgstr "" -#: reference/expressions.rst:2032 +#: reference/expressions.rst:2092 msgid "``+``, ``-``" msgstr "" -#: reference/expressions.rst:2032 +#: reference/expressions.rst:2092 msgid "Addition and subtraction" msgstr "" -#: reference/expressions.rst:2034 +#: reference/expressions.rst:2094 msgid "``<<``, ``>>``" msgstr "" -#: reference/expressions.rst:2034 +#: reference/expressions.rst:2094 msgid "Shifts" msgstr "" -#: reference/expressions.rst:2036 +#: reference/expressions.rst:2096 msgid "``&``" msgstr "" -#: reference/expressions.rst:2036 +#: reference/expressions.rst:2096 msgid "Bitwise AND" msgstr "" -#: reference/expressions.rst:2038 +#: reference/expressions.rst:2098 msgid "``^``" msgstr "" -#: reference/expressions.rst:2038 +#: reference/expressions.rst:2098 msgid "Bitwise XOR" msgstr "" -#: reference/expressions.rst:2040 +#: reference/expressions.rst:2100 msgid "``|``" msgstr "" -#: reference/expressions.rst:2040 +#: reference/expressions.rst:2100 msgid "Bitwise OR" msgstr "" -#: reference/expressions.rst:2042 +#: reference/expressions.rst:2102 msgid "" ":keyword:`in`, :keyword:`not in`, :keyword:`is`, :keyword:`is not`, ``<``, " "``<=``, ``>``, ``>=``, ``!=``, ``==``" msgstr "" -#: reference/expressions.rst:2042 +#: reference/expressions.rst:2102 msgid "Comparisons, including membership tests and identity tests" msgstr "" -#: reference/expressions.rst:2046 +#: reference/expressions.rst:2106 msgid ":keyword:`not x `" msgstr "" -#: reference/expressions.rst:2046 +#: reference/expressions.rst:2106 msgid "Boolean NOT" msgstr "" -#: reference/expressions.rst:2048 +#: reference/expressions.rst:2108 msgid ":keyword:`and`" msgstr "" -#: reference/expressions.rst:2048 +#: reference/expressions.rst:2108 msgid "Boolean AND" msgstr "" -#: reference/expressions.rst:2050 +#: reference/expressions.rst:2110 msgid ":keyword:`or`" msgstr "" -#: reference/expressions.rst:2050 +#: reference/expressions.rst:2110 msgid "Boolean OR" msgstr "" -#: reference/expressions.rst:2052 +#: reference/expressions.rst:2112 msgid ":keyword:`if ` -- :keyword:`!else`" msgstr "" -#: reference/expressions.rst:2052 +#: reference/expressions.rst:2112 msgid "Conditional expression" msgstr "" -#: reference/expressions.rst:2054 +#: reference/expressions.rst:2114 msgid ":keyword:`lambda`" msgstr "" -#: reference/expressions.rst:2054 +#: reference/expressions.rst:2114 msgid "Lambda expression" msgstr "" -#: reference/expressions.rst:2056 +#: reference/expressions.rst:2116 msgid "``:=``" msgstr "" -#: reference/expressions.rst:2056 +#: reference/expressions.rst:2116 msgid "Assignment expression" msgstr "" -#: reference/expressions.rst:2061 +#: reference/expressions.rst:2121 msgid "Footnotes" msgstr "" -#: reference/expressions.rst:2062 +#: reference/expressions.rst:2122 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 " @@ -2369,7 +2449,7 @@ msgid "" "approach is more appropriate depends on the application." msgstr "" -#: reference/expressions.rst:2071 +#: reference/expressions.rst:2131 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, " @@ -2377,7 +2457,7 @@ msgid "" "* y + x % y`` be very close to ``x``." msgstr "" -#: reference/expressions.rst:2076 +#: reference/expressions.rst:2136 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 " @@ -2391,7 +2471,7 @@ msgid "" "(COMBINING CEDILLA)." msgstr "" -#: reference/expressions.rst:2087 +#: reference/expressions.rst:2147 msgid "" "The comparison operators on strings compare at the level of Unicode code " "points. This may be counter-intuitive to humans. For example, ``\"\\u00C7\" " @@ -2399,13 +2479,13 @@ msgid "" "same abstract character \"LATIN CAPITAL LETTER C WITH CEDILLA\"." msgstr "" -#: reference/expressions.rst:2092 +#: reference/expressions.rst:2152 msgid "" "To compare strings at the level of abstract characters (that is, in a way " "intuitive to humans), use :func:`unicodedata.normalize`." msgstr "" -#: reference/expressions.rst:2095 +#: reference/expressions.rst:2155 msgid "" "Due to automatic garbage-collection, free lists, and the dynamic nature of " "descriptors, you may notice seemingly unusual behaviour in certain uses of " @@ -2413,20 +2493,20 @@ msgid "" "instance methods, or constants. Check their documentation for more info." msgstr "" -#: reference/expressions.rst:2100 +#: reference/expressions.rst:2160 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 "" -#: reference/expressions.rst:2103 +#: reference/expressions.rst:2163 msgid "" "The ``%`` operator is also used for string formatting; the same precedence " "applies." msgstr "" -#: reference/expressions.rst:391 reference/expressions.rst:1781 -#: reference/expressions.rst:1872 reference/expressions.rst:1926 +#: reference/expressions.rst:448 reference/expressions.rst:1840 +#: reference/expressions.rst:1931 reference/expressions.rst:1986 msgid "expression" msgstr "" @@ -2434,7 +2514,7 @@ msgstr "" msgid "BNF" msgstr "" -#: reference/expressions.rst:1261 reference/expressions.rst:1309 +#: reference/expressions.rst:1320 reference/expressions.rst:1368 msgid "arithmetic" msgstr "" @@ -2454,9 +2534,9 @@ msgstr "" msgid "identifier" msgstr "" -#: reference/expressions.rst:568 reference/expressions.rst:752 -#: reference/expressions.rst:854 reference/expressions.rst:1351 -#: reference/expressions.rst:1455 +#: reference/expressions.rst:625 reference/expressions.rst:811 +#: reference/expressions.rst:913 reference/expressions.rst:1410 +#: reference/expressions.rst:1514 msgid "exception" msgstr "" @@ -2480,676 +2560,676 @@ msgstr "" msgid "literal" msgstr "" -#: reference/expressions.rst:370 +#: reference/expressions.rst:427 msgid "immutable" msgstr "" -#: reference/expressions.rst:144 +#: reference/expressions.rst:149 msgid "data" msgstr "" -#: reference/expressions.rst:144 +#: reference/expressions.rst:149 msgid "type" msgstr "" -#: reference/expressions.rst:273 reference/expressions.rst:327 -#: reference/expressions.rst:391 reference/expressions.rst:742 -#: reference/expressions.rst:883 reference/expressions.rst:1004 -#: reference/expressions.rst:1166 reference/expressions.rst:1187 -#: reference/expressions.rst:1938 +#: reference/expressions.rst:330 reference/expressions.rst:384 +#: reference/expressions.rst:448 reference/expressions.rst:801 +#: reference/expressions.rst:942 reference/expressions.rst:1063 +#: reference/expressions.rst:1225 reference/expressions.rst:1246 +#: reference/expressions.rst:1998 msgid "object" msgstr "" -#: reference/expressions.rst:160 +#: reference/expressions.rst:217 msgid "parenthesized form" msgstr "" -#: reference/expressions.rst:391 reference/expressions.rst:1004 +#: reference/expressions.rst:448 reference/expressions.rst:1063 msgid "() (parentheses)" msgstr "" -#: reference/expressions.rst:160 +#: reference/expressions.rst:217 msgid "tuple display" msgstr "" -#: reference/expressions.rst:273 +#: reference/expressions.rst:330 msgid "empty" msgstr "" -#: reference/expressions.rst:883 reference/expressions.rst:1938 +#: reference/expressions.rst:942 reference/expressions.rst:1998 msgid "tuple" msgstr "" -#: reference/expressions.rst:1960 +#: reference/expressions.rst:2020 msgid "comma" msgstr "" -#: reference/expressions.rst:273 reference/expressions.rst:327 -#: reference/expressions.rst:1004 reference/expressions.rst:1926 +#: reference/expressions.rst:330 reference/expressions.rst:384 +#: reference/expressions.rst:1063 reference/expressions.rst:1986 msgid ", (comma)" msgstr "" -#: reference/expressions.rst:273 reference/expressions.rst:327 +#: reference/expressions.rst:330 reference/expressions.rst:384 msgid "comprehensions" msgstr "" -#: reference/expressions.rst:204 +#: reference/expressions.rst:261 msgid "for" msgstr "" -#: reference/expressions.rst:239 +#: reference/expressions.rst:296 msgid "in comprehensions" msgstr "" -#: reference/expressions.rst:1872 +#: reference/expressions.rst:1931 msgid "if" msgstr "" -#: reference/expressions.rst:204 +#: reference/expressions.rst:261 msgid "async for" msgstr "" -#: reference/expressions.rst:1205 +#: reference/expressions.rst:1264 msgid "await" msgstr "" -#: reference/expressions.rst:854 reference/expressions.rst:960 -#: reference/expressions.rst:1926 +#: reference/expressions.rst:913 reference/expressions.rst:1019 +#: reference/expressions.rst:1986 msgid "list" msgstr "" -#: reference/expressions.rst:299 reference/expressions.rst:327 +#: reference/expressions.rst:356 reference/expressions.rst:384 msgid "display" msgstr "" -#: reference/expressions.rst:879 +#: reference/expressions.rst:938 msgid "[] (square brackets)" msgstr "" -#: reference/expressions.rst:273 +#: reference/expressions.rst:330 msgid "list expression" msgstr "" -#: reference/expressions.rst:299 reference/expressions.rst:1926 +#: reference/expressions.rst:356 reference/expressions.rst:1986 msgid "expression list" msgstr "" -#: reference/expressions.rst:299 +#: reference/expressions.rst:356 msgid "set" msgstr "" -#: reference/expressions.rst:327 +#: reference/expressions.rst:384 msgid "{} (curly brackets)" msgstr "" -#: reference/expressions.rst:299 +#: reference/expressions.rst:356 msgid "set expression" msgstr "" -#: reference/expressions.rst:353 reference/expressions.rst:883 +#: reference/expressions.rst:410 reference/expressions.rst:942 msgid "dictionary" msgstr "" -#: reference/expressions.rst:327 +#: reference/expressions.rst:384 msgid "key" msgstr "" -#: reference/expressions.rst:327 +#: reference/expressions.rst:384 msgid "value" msgstr "" -#: reference/expressions.rst:327 +#: reference/expressions.rst:384 msgid "key/value pair" msgstr "" -#: reference/expressions.rst:327 +#: reference/expressions.rst:384 msgid "dictionary expression" msgstr "" -#: reference/expressions.rst:954 reference/expressions.rst:1898 +#: reference/expressions.rst:1013 reference/expressions.rst:1958 msgid ": (colon)" msgstr "" -#: reference/expressions.rst:327 +#: reference/expressions.rst:384 msgid "in dictionary expressions" msgstr "" -#: reference/expressions.rst:353 +#: reference/expressions.rst:410 msgid "in dictionary displays" msgstr "" -#: reference/expressions.rst:1087 reference/expressions.rst:1945 +#: reference/expressions.rst:1146 reference/expressions.rst:2005 msgid "unpacking" msgstr "" -#: reference/expressions.rst:1117 reference/expressions.rst:1225 +#: reference/expressions.rst:1176 reference/expressions.rst:1284 msgid "**" msgstr "" -#: reference/expressions.rst:370 +#: reference/expressions.rst:427 msgid "hashable" msgstr "" -#: reference/expressions.rst:447 reference/expressions.rst:556 +#: reference/expressions.rst:504 reference/expressions.rst:613 msgid "generator" msgstr "" -#: reference/expressions.rst:391 +#: reference/expressions.rst:448 msgid "generator expression" msgstr "" -#: reference/expressions.rst:1205 +#: reference/expressions.rst:1264 msgid "keyword" msgstr "" -#: reference/expressions.rst:643 +#: reference/expressions.rst:702 msgid "yield" msgstr "" -#: reference/expressions.rst:515 +#: reference/expressions.rst:572 msgid "from" msgstr "" -#: reference/expressions.rst:1152 reference/expressions.rst:1898 +#: reference/expressions.rst:1211 reference/expressions.rst:1958 msgid "function" msgstr "" -#: reference/expressions.rst:501 +#: reference/expressions.rst:558 msgid "coroutine" msgstr "" -#: reference/expressions.rst:515 +#: reference/expressions.rst:572 msgid "yield from expression" msgstr "" -#: reference/expressions.rst:568 +#: reference/expressions.rst:625 msgid "StopIteration" msgstr "" -#: reference/expressions.rst:807 +#: reference/expressions.rst:866 msgid "GeneratorExit" msgstr "" -#: reference/expressions.rst:643 +#: reference/expressions.rst:702 msgid "examples" msgstr "" -#: reference/expressions.rst:742 +#: reference/expressions.rst:801 msgid "asynchronous-generator" msgstr "" -#: reference/expressions.rst:752 +#: reference/expressions.rst:811 msgid "StopAsyncIteration" msgstr "" -#: reference/expressions.rst:831 +#: reference/expressions.rst:890 msgid "primary" msgstr "" -#: reference/expressions.rst:845 +#: reference/expressions.rst:904 msgid "attribute" msgstr "" -#: reference/expressions.rst:845 +#: reference/expressions.rst:904 msgid "reference" msgstr "" -#: reference/expressions.rst:845 +#: reference/expressions.rst:904 msgid ". (dot)" msgstr "" -#: reference/expressions.rst:845 +#: reference/expressions.rst:904 msgid "attribute reference" msgstr "" -#: reference/expressions.rst:854 +#: reference/expressions.rst:913 msgid "AttributeError" msgstr "" -#: reference/expressions.rst:854 +#: reference/expressions.rst:913 msgid "module" msgstr "" -#: reference/expressions.rst:879 +#: reference/expressions.rst:938 msgid "subscription" msgstr "" -#: reference/expressions.rst:960 reference/expressions.rst:1746 +#: reference/expressions.rst:1019 reference/expressions.rst:1805 msgid "sequence" msgstr "" -#: reference/expressions.rst:883 +#: reference/expressions.rst:942 msgid "mapping" msgstr "" -#: reference/expressions.rst:940 reference/expressions.rst:960 +#: reference/expressions.rst:999 reference/expressions.rst:1019 msgid "string" msgstr "" -#: reference/expressions.rst:940 +#: reference/expressions.rst:999 msgid "item" msgstr "" -#: reference/expressions.rst:940 +#: reference/expressions.rst:999 msgid "character" msgstr "" -#: reference/expressions.rst:954 +#: reference/expressions.rst:1013 msgid "slicing" msgstr "" -#: reference/expressions.rst:954 +#: reference/expressions.rst:1013 msgid "slice" msgstr "" -#: reference/expressions.rst:986 +#: reference/expressions.rst:1045 msgid "start (slice object attribute)" msgstr "" -#: reference/expressions.rst:986 +#: reference/expressions.rst:1045 msgid "stop (slice object attribute)" msgstr "" -#: reference/expressions.rst:986 +#: reference/expressions.rst:1045 msgid "step (slice object attribute)" msgstr "" -#: reference/expressions.rst:1004 +#: reference/expressions.rst:1063 msgid "callable" msgstr "" -#: reference/expressions.rst:1152 reference/expressions.rst:1180 -#: reference/expressions.rst:1197 +#: reference/expressions.rst:1211 reference/expressions.rst:1239 +#: reference/expressions.rst:1256 msgid "call" msgstr "" -#: reference/expressions.rst:1004 +#: reference/expressions.rst:1063 msgid "argument" msgstr "" -#: reference/expressions.rst:1037 +#: reference/expressions.rst:1096 msgid "call semantics" msgstr "" -#: reference/expressions.rst:1004 +#: reference/expressions.rst:1063 msgid "argument list" msgstr "" -#: reference/expressions.rst:1004 +#: reference/expressions.rst:1063 msgid "= (equals)" msgstr "" -#: reference/expressions.rst:1087 reference/expressions.rst:1117 +#: reference/expressions.rst:1146 reference/expressions.rst:1176 msgid "in function calls" msgstr "" -#: reference/expressions.rst:1037 +#: reference/expressions.rst:1096 msgid "parameter" msgstr "" -#: reference/expressions.rst:1322 reference/expressions.rst:1945 +#: reference/expressions.rst:1381 reference/expressions.rst:2005 msgid "* (asterisk)" msgstr "" -#: reference/expressions.rst:1152 +#: reference/expressions.rst:1211 msgid "user-defined" msgstr "" -#: reference/expressions.rst:1152 +#: reference/expressions.rst:1211 msgid "user-defined function" msgstr "" -#: reference/expressions.rst:1166 +#: reference/expressions.rst:1225 msgid "built-in function" msgstr "" -#: reference/expressions.rst:1166 +#: reference/expressions.rst:1225 msgid "method" msgstr "" -#: reference/expressions.rst:1166 +#: reference/expressions.rst:1225 msgid "built-in method" msgstr "" -#: reference/expressions.rst:1180 +#: reference/expressions.rst:1239 msgid "class" msgstr "" -#: reference/expressions.rst:1180 +#: reference/expressions.rst:1239 msgid "class object" msgstr "" -#: reference/expressions.rst:1187 +#: reference/expressions.rst:1246 msgid "class instance" msgstr "" -#: reference/expressions.rst:1197 +#: reference/expressions.rst:1256 msgid "instance" msgstr "" -#: reference/expressions.rst:1197 +#: reference/expressions.rst:1256 msgid "__call__() (object method)" msgstr "" -#: reference/expressions.rst:1225 +#: reference/expressions.rst:1284 msgid "power" msgstr "" -#: reference/expressions.rst:1261 reference/expressions.rst:1437 -#: reference/expressions.rst:1781 +#: reference/expressions.rst:1320 reference/expressions.rst:1496 +#: reference/expressions.rst:1840 msgid "operation" msgstr "" -#: reference/expressions.rst:1270 reference/expressions.rst:1287 -#: reference/expressions.rst:1339 reference/expressions.rst:1369 -#: reference/expressions.rst:1416 reference/expressions.rst:1475 -#: reference/expressions.rst:1492 reference/expressions.rst:1746 -#: reference/expressions.rst:1797 reference/expressions.rst:1807 -#: reference/expressions.rst:1996 +#: reference/expressions.rst:1329 reference/expressions.rst:1346 +#: reference/expressions.rst:1398 reference/expressions.rst:1428 +#: reference/expressions.rst:1475 reference/expressions.rst:1534 +#: reference/expressions.rst:1551 reference/expressions.rst:1805 +#: reference/expressions.rst:1856 reference/expressions.rst:1866 +#: reference/expressions.rst:2056 msgid "operator" msgstr "" -#: reference/expressions.rst:1261 +#: reference/expressions.rst:1320 msgid "unary" msgstr "" -#: reference/expressions.rst:1466 reference/expressions.rst:1483 -#: reference/expressions.rst:1492 +#: reference/expressions.rst:1525 reference/expressions.rst:1542 +#: reference/expressions.rst:1551 msgid "bitwise" msgstr "" -#: reference/expressions.rst:1270 +#: reference/expressions.rst:1329 msgid "negation" msgstr "" -#: reference/expressions.rst:1270 +#: reference/expressions.rst:1329 msgid "minus" msgstr "" -#: reference/expressions.rst:1416 +#: reference/expressions.rst:1475 msgid "- (minus)" msgstr "" -#: reference/expressions.rst:1279 +#: reference/expressions.rst:1338 msgid "unary operator" msgstr "" -#: reference/expressions.rst:1279 +#: reference/expressions.rst:1338 msgid "plus" msgstr "" -#: reference/expressions.rst:1399 +#: reference/expressions.rst:1458 msgid "+ (plus)" msgstr "" -#: reference/expressions.rst:1287 +#: reference/expressions.rst:1346 msgid "inversion" msgstr "" -#: reference/expressions.rst:1287 +#: reference/expressions.rst:1346 msgid "~ (tilde)" msgstr "" -#: reference/expressions.rst:1298 +#: reference/expressions.rst:1357 msgid "TypeError" msgstr "" -#: reference/expressions.rst:1466 +#: reference/expressions.rst:1525 msgid "binary" msgstr "" -#: reference/expressions.rst:1322 +#: reference/expressions.rst:1381 msgid "multiplication" msgstr "" -#: reference/expressions.rst:1339 +#: reference/expressions.rst:1398 msgid "matrix multiplication" msgstr "" -#: reference/expressions.rst:1339 +#: reference/expressions.rst:1398 msgid "@ (at)" msgstr "" -#: reference/expressions.rst:1351 +#: reference/expressions.rst:1410 msgid "ZeroDivisionError" msgstr "" -#: reference/expressions.rst:1351 +#: reference/expressions.rst:1410 msgid "division" msgstr "" -#: reference/expressions.rst:1351 +#: reference/expressions.rst:1410 msgid "/ (slash)" msgstr "" -#: reference/expressions.rst:1351 +#: reference/expressions.rst:1410 msgid "//" msgstr "" -#: reference/expressions.rst:1369 +#: reference/expressions.rst:1428 msgid "modulo" msgstr "" -#: reference/expressions.rst:1369 +#: reference/expressions.rst:1428 msgid "% (percent)" msgstr "" -#: reference/expressions.rst:1399 +#: reference/expressions.rst:1458 msgid "addition" msgstr "" -#: reference/expressions.rst:1416 +#: reference/expressions.rst:1475 msgid "binary operator" msgstr "" -#: reference/expressions.rst:1416 +#: reference/expressions.rst:1475 msgid "subtraction" msgstr "" -#: reference/expressions.rst:1437 +#: reference/expressions.rst:1496 msgid "shifting" msgstr "" -#: reference/expressions.rst:1437 +#: reference/expressions.rst:1496 msgid "<<" msgstr "" -#: reference/expressions.rst:1437 +#: reference/expressions.rst:1496 msgid ">>" msgstr "" -#: reference/expressions.rst:1455 +#: reference/expressions.rst:1514 msgid "ValueError" msgstr "" -#: reference/expressions.rst:1802 +#: reference/expressions.rst:1861 msgid "and" msgstr "" -#: reference/expressions.rst:1475 +#: reference/expressions.rst:1534 msgid "& (ampersand)" msgstr "" -#: reference/expressions.rst:1483 +#: reference/expressions.rst:1542 msgid "xor" msgstr "" -#: reference/expressions.rst:1483 +#: reference/expressions.rst:1542 msgid "exclusive" msgstr "" -#: reference/expressions.rst:1492 reference/expressions.rst:1807 +#: reference/expressions.rst:1551 reference/expressions.rst:1866 msgid "or" msgstr "" -#: reference/expressions.rst:1483 +#: reference/expressions.rst:1542 msgid "^ (caret)" msgstr "" -#: reference/expressions.rst:1492 +#: reference/expressions.rst:1551 msgid "inclusive" msgstr "" -#: reference/expressions.rst:1492 +#: reference/expressions.rst:1551 msgid "| (vertical bar)" msgstr "" -#: reference/expressions.rst:1507 +#: reference/expressions.rst:1566 msgid "comparison" msgstr "" -#: reference/expressions.rst:1507 +#: reference/expressions.rst:1566 msgid "C" msgstr "" -#: reference/expressions.rst:1507 +#: reference/expressions.rst:1566 msgid "language" msgstr "" -#: reference/expressions.rst:1507 +#: reference/expressions.rst:1566 msgid "< (less)" msgstr "" -#: reference/expressions.rst:1507 +#: reference/expressions.rst:1566 msgid "> (greater)" msgstr "" -#: reference/expressions.rst:1507 +#: reference/expressions.rst:1566 msgid "<=" msgstr "" -#: reference/expressions.rst:1507 +#: reference/expressions.rst:1566 msgid ">=" msgstr "" -#: reference/expressions.rst:1507 +#: reference/expressions.rst:1566 msgid "==" msgstr "" -#: reference/expressions.rst:1507 +#: reference/expressions.rst:1566 msgid "!=" msgstr "" -#: reference/expressions.rst:1531 +#: reference/expressions.rst:1590 msgid "chaining" msgstr "" -#: reference/expressions.rst:1531 +#: reference/expressions.rst:1590 msgid "comparisons" msgstr "" -#: reference/expressions.rst:1746 +#: reference/expressions.rst:1805 msgid "in" msgstr "" -#: reference/expressions.rst:1746 +#: reference/expressions.rst:1805 msgid "not in" msgstr "" -#: reference/expressions.rst:1746 +#: reference/expressions.rst:1805 msgid "membership" msgstr "" -#: reference/expressions.rst:1755 +#: reference/expressions.rst:1814 msgid "test" msgstr "" -#: reference/expressions.rst:1755 +#: reference/expressions.rst:1814 msgid "is" msgstr "" -#: reference/expressions.rst:1755 +#: reference/expressions.rst:1814 msgid "is not" msgstr "" -#: reference/expressions.rst:1755 +#: reference/expressions.rst:1814 msgid "identity" msgstr "" -#: reference/expressions.rst:1781 +#: reference/expressions.rst:1840 msgid "Conditional" msgstr "" -#: reference/expressions.rst:1781 +#: reference/expressions.rst:1840 msgid "Boolean" msgstr "" -#: reference/expressions.rst:1797 +#: reference/expressions.rst:1856 msgid "not" msgstr "" -#: reference/expressions.rst:1821 +#: reference/expressions.rst:1880 msgid ":= (colon equals)" msgstr "" -#: reference/expressions.rst:1821 +#: reference/expressions.rst:1880 msgid "assignment expression" msgstr "" -#: reference/expressions.rst:1821 +#: reference/expressions.rst:1880 msgid "walrus operator" msgstr "" -#: reference/expressions.rst:1821 +#: reference/expressions.rst:1880 msgid "named expression" msgstr "" -#: reference/expressions.rst:1821 +#: reference/expressions.rst:1880 msgid "assignment" msgstr "" -#: reference/expressions.rst:1872 +#: reference/expressions.rst:1931 msgid "conditional" msgstr "" -#: reference/expressions.rst:1872 +#: reference/expressions.rst:1931 msgid "ternary" msgstr "" -#: reference/expressions.rst:1872 +#: reference/expressions.rst:1931 msgid "conditional expression" msgstr "" -#: reference/expressions.rst:1872 +#: reference/expressions.rst:1931 msgid "else" msgstr "" -#: reference/expressions.rst:1898 +#: reference/expressions.rst:1958 msgid "lambda" msgstr "" -#: reference/expressions.rst:1898 +#: reference/expressions.rst:1958 msgid "form" msgstr "" -#: reference/expressions.rst:1898 +#: reference/expressions.rst:1958 msgid "anonymous" msgstr "" -#: reference/expressions.rst:1898 +#: reference/expressions.rst:1958 msgid "lambda expression" msgstr "" -#: reference/expressions.rst:1945 +#: reference/expressions.rst:2005 msgid "iterable" msgstr "" -#: reference/expressions.rst:1945 +#: reference/expressions.rst:2005 msgid "in expression lists" msgstr "" -#: reference/expressions.rst:1960 +#: reference/expressions.rst:2020 msgid "trailing" msgstr "" -#: reference/expressions.rst:1975 +#: reference/expressions.rst:2035 msgid "evaluation" msgstr "" -#: reference/expressions.rst:1975 +#: reference/expressions.rst:2035 msgid "order" msgstr "" -#: reference/expressions.rst:1996 +#: reference/expressions.rst:2056 msgid "precedence" msgstr "" diff --git a/reference/grammar.po b/reference/grammar.po index 23d14167..b58ea01a 100644 --- a/reference/grammar.po +++ b/reference/grammar.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-05-04 22:25+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -35,8 +35,8 @@ msgstr "" #: reference/grammar.rst:11 msgid "" "The notation used here is the same as in the preceding docs, and is " -"described in the :ref:`notation ` section, except for a few extra " -"complications:" +"described in the :ref:`notation ` section, except for an extra " +"complication:" msgstr "" "Η σημειογραφία που χρησιμοποιείται εδώ είναι η ίδια με τα προηγούμενα " "έγγραφα και περιγράφεται στην ενότητα :ref:`notation `, εκτός από " @@ -44,29 +44,13 @@ msgstr "" #: reference/grammar.rst:15 msgid "" -"``&e``: a positive lookahead (that is, ``e`` is required to match but not " -"consumed)" -msgstr "" -"``&e``: μια θετική προοπτική (δηλαδή, το ``e`` απαιτείται να ταιριάζει αλλά " -"δεν καταναλώνεται)" - -#: reference/grammar.rst:17 -msgid "" -"``!e``: a negative lookahead (that is, ``e`` is required *not* to match)" -msgstr "" -"``!e``: μια αρνητική προοπτική (δηλαδή, το ``e`` απαιτείται *να μην* " -"ταιριάζει)" - -#: reference/grammar.rst:18 -msgid "" "``~`` (\"cut\"): commit to the current alternative and fail the rule even if " "this fails to parse" msgstr "" "``~`` (\"cut\"): ολοκλήρωση της τρέχουσας εναλλακτικής λύσης και αποτυχία " "του κανόνα ακόμα κι αν αυτή αποτύχει να αναλυθεί" -#: reference/grammar.rst:21 -#, fuzzy +#: reference/grammar.rst:18 msgid "" "# PEG grammar for Python\n" "\n" @@ -176,11 +160,13 @@ msgid "" "# GENERAL STATEMENTS\n" "# ==================\n" "\n" -"statements[asdl_stmt_seq*]: a=statement+ { _PyPegen_register_stmts(p, " -"(asdl_stmt_seq*)_PyPegen_seq_flatten(p, a)) }\n" +"statements[asdl_stmt_seq*]: a=statement+ " +"{ (asdl_stmt_seq*)_PyPegen_seq_flatten(p, a) }\n" "\n" "statement[asdl_stmt_seq*]:\n" -" | a=compound_stmt { (asdl_stmt_seq*)_PyPegen_singleton_seq(p, a) }\n" +" | a=compound_stmt { _PyPegen_register_stmts(p ,\n" +" (asdl_stmt_seq*)_PyPegen_singleton_seq(p, a)\n" +" ) }\n" " | a[asdl_stmt_seq*]=simple_stmts { a }\n" "\n" "single_compound_stmt[asdl_stmt_seq*]:\n" @@ -1200,8 +1186,12 @@ msgid "" " _PyPegen_template_str(p, a, (asdl_expr_seq*)b, c)) }\n" "\n" "string[expr_ty]: s[Token*]=STRING { _PyPegen_constant_from_string(p, s) }\n" -"strings[expr_ty] (memo): a[asdl_expr_seq*]=(fstring|string|tstring)+ " -"{ _PyPegen_concatenate_strings(p, a, EXTRA) }\n" +"strings[expr_ty] (memo):\n" +" | invalid_string_tstring_concat\n" +" | a[asdl_expr_seq*]=(fstring|string)+ { _PyPegen_concatenate_strings(p, " +"a, EXTRA) }\n" +" | a[asdl_expr_seq*]=tstring+ { _PyPegen_concatenate_tstrings(p, a, " +"EXTRA) }\n" "\n" "list[expr_ty]:\n" " | '[' a=[star_named_expressions] ']' { _PyAST_List(a, Load, EXTRA) }\n" @@ -1712,12 +1702,12 @@ msgid "" " RAISE_SYNTAX_ERROR_STARTING_FROM(token, \"Expected one or more names " "after 'import'\") }\n" "invalid_dotted_as_name:\n" -" | dotted_name 'as' !(NAME (',' | ')' | NEWLINE)) a=expression {\n" +" | dotted_name 'as' !(NAME (',' | ')' | ';' | NEWLINE)) a=expression {\n" " RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a,\n" " \"cannot use %s as import target\", " "_PyPegen_get_expr_name(a)) }\n" "invalid_import_from_as_name:\n" -" | NAME 'as' !(NAME (',' | ')' | NEWLINE)) a=expression {\n" +" | NAME 'as' !(NAME (',' | ')' | ';' | NEWLINE)) a=expression {\n" " RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a,\n" " \"cannot use %s as import target\", " "_PyPegen_get_expr_name(a)) }\n" @@ -1959,6 +1949,14 @@ msgid "" " | '!' !NAME { RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN(\"t-string: invalid " "conversion character\") }\n" "\n" +"invalid_string_tstring_concat:\n" +" | a=(fstring|string)+ b[expr_ty]=tstring {\n" +" RAISE_SYNTAX_ERROR_KNOWN_RANGE(PyPegen_last_item(a, expr_ty), b, " +"\"cannot mix t-string literals with string or bytes literals\") }\n" +" | a=tstring+ b[expr_ty]=(fstring|string) {\n" +" RAISE_SYNTAX_ERROR_KNOWN_RANGE(PyPegen_last_item(a, expr_ty), b, " +"\"cannot mix t-string literals with string or bytes literals\") }\n" +"\n" "invalid_arithmetic:\n" " | sum ('+'|'-'|'*'|'/'|'%'|'//'|'@') a='not' b=inversion " "{ RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, \"'not' after an operator must be " @@ -2081,11 +2079,13 @@ msgstr "" "# GENERAL STATEMENTS\n" "# ==================\n" "\n" -"statements[asdl_stmt_seq*]: a=statement+ { _PyPegen_register_stmts(p, " -"(asdl_stmt_seq*)_PyPegen_seq_flatten(p, a)) }\n" +"statements[asdl_stmt_seq*]: a=statement+ " +"{ (asdl_stmt_seq*)_PyPegen_seq_flatten(p, a) }\n" "\n" "statement[asdl_stmt_seq*]:\n" -" | a=compound_stmt { (asdl_stmt_seq*)_PyPegen_singleton_seq(p, a) }\n" +" | a=compound_stmt { _PyPegen_register_stmts(p ,\n" +" (asdl_stmt_seq*)_PyPegen_singleton_seq(p, a)\n" +" ) }\n" " | a[asdl_stmt_seq*]=simple_stmts { a }\n" "\n" "single_compound_stmt[asdl_stmt_seq*]:\n" @@ -3105,8 +3105,12 @@ msgstr "" " _PyPegen_template_str(p, a, (asdl_expr_seq*)b, c)) }\n" "\n" "string[expr_ty]: s[Token*]=STRING { _PyPegen_constant_from_string(p, s) }\n" -"strings[expr_ty] (memo): a[asdl_expr_seq*]=(fstring|string|tstring)+ " -"{ _PyPegen_concatenate_strings(p, a, EXTRA) }\n" +"strings[expr_ty] (memo):\n" +" | invalid_string_tstring_concat\n" +" | a[asdl_expr_seq*]=(fstring|string)+ { _PyPegen_concatenate_strings(p, " +"a, EXTRA) }\n" +" | a[asdl_expr_seq*]=tstring+ { _PyPegen_concatenate_tstrings(p, a, " +"EXTRA) }\n" "\n" "list[expr_ty]:\n" " | '[' a=[star_named_expressions] ']' { _PyAST_List(a, Load, EXTRA) }\n" @@ -3617,12 +3621,12 @@ msgstr "" " RAISE_SYNTAX_ERROR_STARTING_FROM(token, \"Expected one or more names " "after 'import'\") }\n" "invalid_dotted_as_name:\n" -" | dotted_name 'as' !(NAME (',' | ')' | NEWLINE)) a=expression {\n" +" | dotted_name 'as' !(NAME (',' | ')' | ';' | NEWLINE)) a=expression {\n" " RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a,\n" " \"cannot use %s as import target\", " "_PyPegen_get_expr_name(a)) }\n" "invalid_import_from_as_name:\n" -" | NAME 'as' !(NAME (',' | ')' | NEWLINE)) a=expression {\n" +" | NAME 'as' !(NAME (',' | ')' | ';' | NEWLINE)) a=expression {\n" " RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a,\n" " \"cannot use %s as import target\", " "_PyPegen_get_expr_name(a)) }\n" @@ -3864,6 +3868,14 @@ msgstr "" " | '!' !NAME { RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN(\"t-string: invalid " "conversion character\") }\n" "\n" +"invalid_string_tstring_concat:\n" +" | a=(fstring|string)+ b[expr_ty]=tstring {\n" +" RAISE_SYNTAX_ERROR_KNOWN_RANGE(PyPegen_last_item(a, expr_ty), b, " +"\"cannot mix t-string literals with string or bytes literals\") }\n" +" | a=tstring+ b[expr_ty]=(fstring|string) {\n" +" RAISE_SYNTAX_ERROR_KNOWN_RANGE(PyPegen_last_item(a, expr_ty), b, " +"\"cannot mix t-string literals with string or bytes literals\") }\n" +"\n" "invalid_arithmetic:\n" " | sum ('+'|'-'|'*'|'/'|'%'|'//'|'@') a='not' b=inversion " "{ RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, \"'not' after an operator must be " @@ -3878,6 +3890,19 @@ msgstr "" " token,\n" " \"Type parameter list cannot be empty\")}\n" +#~ msgid "" +#~ "``&e``: a positive lookahead (that is, ``e`` is required to match but not " +#~ "consumed)" +#~ msgstr "" +#~ "``&e``: μια θετική προοπτική (δηλαδή, το ``e`` απαιτείται να ταιριάζει " +#~ "αλλά δεν καταναλώνεται)" + +#~ msgid "" +#~ "``!e``: a negative lookahead (that is, ``e`` is required *not* to match)" +#~ msgstr "" +#~ "``!e``: μια αρνητική προοπτική (δηλαδή, το ``e`` απαιτείται *να μην* " +#~ "ταιριάζει)" + #~ msgid "" #~ "The notation is a mixture of `EBNF `_ and `PEG \n" "Language-Team: LANGUAGE \n" diff --git a/reference/index.po b/reference/index.po index 94c8b08f..db550cae 100644 --- a/reference/index.po +++ b/reference/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/reference/introduction.po b/reference/introduction.po index 9b6e5573..781ed0cf 100644 --- a/reference/introduction.po +++ b/reference/introduction.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2024-11-25 12:27+0200\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Stelios Rotas \n" "Language-Team: PyGreece \n" "Language: el_GR\n" @@ -353,34 +353,58 @@ msgstr "" msgid "``(e)``: Parentheses are used for grouping." msgstr "``(e)``: Οι παρενθέσεις χρησιμοποιούνται για ομαδοποίηση." -#: reference/introduction.rst:148 +#: reference/introduction.rst:149 +msgid "" +"The following notation is only used in :ref:`lexical definitions `." +msgstr "" +"Η ακόλουθη σημειογραφία χρησιμοποιείται μόνο σε :ref:`λεξιλογικούς ορισμούς " +"`." + +#: reference/introduction.rst:152 msgid "" "``\"a\"...\"z\"``: Two literal characters separated by three dots mean a " "choice of any single character in the given (inclusive) range of ASCII " -"characters. This notation is only used in :ref:`lexical definitions " -"`." +"characters." msgstr "" "``\"a\"...\"z\"``: Δύο κυριολεκτικοί χαρακτήρες διαχωρισμένοι από τρεις " "τελείες σημαίνουν την επιλογή οποιουδήποτε μεμονωμένου χαρακτήρα στο " -"δεδομένο (συμπεριλαμβανομένου) εύρος χαρακτήρων ASCII. Αυτή η σημειογραφία " -"χρησιμοποιείται μόνο σε :ref:`lexical definitions `." +"δεδομένο (συμπεριλαμβανομένου) εύρος χαρακτήρων ASCII." -#: reference/introduction.rst:152 +#: reference/introduction.rst:154 msgid "" "``<...>``: A phrase between angular brackets gives an informal description " "of the matched symbol (for example, ````), or an abbreviation that is defined in nearby text (for example, " -"````). This notation is only used in :ref:`lexical definitions `." +"````)." msgstr "" "``<...>``: Μια φράση μέσα σε γωνιακές αγκύλες δίνει μια άτυπη περιγραφή του " "αντίστοιχου συμβόλου (για παράδειγμα ````), ή μια συντομογραφία που ορίζεται σε κοντινό κείμενο (για παράδειγμα, " -"````). Αυτή η σημειογραφία χρησιμοποιείται μόνο σε :ref:`lexical " -"definitions `." +"````)." -#: reference/introduction.rst:158 +#: reference/introduction.rst:160 +msgid "" +"Some definitions also use *lookaheads*, which indicate that an element must " +"(or must not) match at a given position, but without consuming any input:" +msgstr "" +"Ορισμοί επίσης χρησιμοποιούν *lookaheads*, που υποδεικνύουν ότι ένα στοιχείο " +"πρέπει (ή δεν πρέπει) να ταιριάζει σε μια δεδομένη θέση, αλλά χωρίς να " +"καταναλώνει οποιαδήποτε είσοδο:" + +#: reference/introduction.rst:163 +msgid "``&e``: a positive lookahead (that is, ``e`` is required to match)" +msgstr "" +"``&e``: μια θετική προοπτική (δηλαδή, το ``e`` απαιτείται να ταιριάζει)" + +#: reference/introduction.rst:164 +msgid "" +"``!e``: a negative lookahead (that is, ``e`` is required *not* to match)" +msgstr "" +"``!e``: μια αρνητική προοπτική (δηλαδή, το ``e`` απαιτείται *να μην* " +"ταιριάζει)" + +#: reference/introduction.rst:166 msgid "" "The unary operators (``*``, ``+``, ``?``) bind as tightly as possible; the " "vertical bar (``|``) binds most loosely." @@ -388,11 +412,11 @@ msgstr "" "Οι μοναδιαίοι τελεστές (``*``, ``+``, ``?``) συνδέονται όσο το δυνατόν πιο " "σφιχτά∙ η κάθετη γραμμή (``|``) συνδέεται πιο χαλαρά." -#: reference/introduction.rst:161 +#: reference/introduction.rst:169 msgid "White space is only meaningful to separate tokens." msgstr "Το κενό έχει νόημα μόνο για τον διαχωρισμό των διακριτικών." -#: reference/introduction.rst:163 +#: reference/introduction.rst:171 msgid "" "Rules are normally contained on a single line, but rules that are too long " "may be wrapped:" @@ -400,7 +424,7 @@ msgstr "" "Οι κανόνες συνήθως περιέχονται σε μία μόνο γραμμή, αλλά οι κανόνες που είναι " "πολύ μεγάλοι μπορούν να αναδιπλωθούν." -#: reference/introduction.rst:172 +#: reference/introduction.rst:180 msgid "" "Alternatively, rules may be formatted with the first line ending at the " "colon, and each alternative beginning with a vertical bar on a new line. For " @@ -410,15 +434,15 @@ msgstr "" "τελειών στην άνω και κάτω τελεία και κάθε εναλλακτική να ξεκινά με μια " "κάθετη γραμμή σε μια νέα γραμμή. Για παράδειγμα:" -#: reference/introduction.rst:187 +#: reference/introduction.rst:195 msgid "This does *not* mean that there is an empty first alternative." msgstr "Αυτό *δεν* σημαίνει ότι υπάρχει μια κενή πρώτη εναλλακτική λύση." -#: reference/introduction.rst:194 +#: reference/introduction.rst:202 msgid "Lexical and Syntactic definitions" msgstr "Λεξικοί και Συντακτικοί ορισμοί" -#: reference/introduction.rst:196 +#: reference/introduction.rst:204 msgid "" "There is some difference between *lexical* and *syntactic* analysis: the :" "term:`lexical analyzer` operates on the individual characters of the input " @@ -434,7 +458,7 @@ msgstr "" "σε ορισμένες περιπτώσεις το ακριβές όριο μεταξύ των δύο φάσεων είναι μια " "λεπτομέρεια υλοποίησης της CPython." -#: reference/introduction.rst:203 +#: reference/introduction.rst:211 msgid "" "The practical difference between the two is that in *lexical* definitions, " "all whitespace is significant. The lexical analyzer :ref:`discards " @@ -448,7 +472,7 @@ msgstr "" "data:`~token.NEWLINE`. Οι *συντακτικοί* ορισμοί χρησιμοποιούν στη συνέχεια " "αυτά τα διακριτικά, αντί για τους χαρακτήρες προέλευσης." -#: reference/introduction.rst:209 +#: reference/introduction.rst:217 msgid "" "This documentation uses the same BNF grammar for both styles of definitions. " "All uses of BNF in the next chapter (:ref:`lexical`) are lexical " @@ -475,7 +499,7 @@ msgstr "συντακτικό" msgid "notation" msgstr "σημειογραφία" -#: reference/introduction.rst:189 +#: reference/introduction.rst:197 msgid "lexical definitions" msgstr "λεξιλογικοί ορισμοί" diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 7770b633..3aa90734 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,66 +25,237 @@ msgstr "" msgid "" "A Python program is read by a *parser*. Input to the parser is a stream of :" "term:`tokens `, generated by the *lexical analyzer* (also known as " -"the *tokenizer*). This chapter describes how the lexical analyzer breaks a " -"file into tokens." +"the *tokenizer*). This chapter describes how the lexical analyzer produces " +"these tokens." msgstr "" #: reference/lexical_analysis.rst:15 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." +"The lexical analyzer determines the program text's :ref:`encoding " +"` (UTF-8 by default), and decodes the text into :ref:`source " +"characters `. If the text cannot be decoded, a :" +"exc:`SyntaxError` is raised." msgstr "" -#: reference/lexical_analysis.rst:24 +#: reference/lexical_analysis.rst:20 +msgid "" +"Next, the lexical analyzer uses the source characters to generate a stream " +"of tokens. The type of a generated token generally depends on the next " +"source character to be processed. Similarly, other special behavior of the " +"analyzer depends on the first source character that hasn't yet been " +"processed. The following table gives a quick summary of these source " +"characters, with links to sections that contain more information." +msgstr "" + +#: reference/lexical_analysis.rst:30 +msgid "Character" +msgstr "" + +#: reference/lexical_analysis.rst:31 +msgid "Next token (or other relevant documentation)" +msgstr "" + +#: reference/lexical_analysis.rst:33 reference/lexical_analysis.rst:266 +msgid "space" +msgstr "" + +#: reference/lexical_analysis.rst:34 reference/lexical_analysis.rst:266 +msgid "tab" +msgstr "" + +#: reference/lexical_analysis.rst:35 +msgid "formfeed" +msgstr "" + +#: reference/lexical_analysis.rst:36 +msgid ":ref:`Whitespace `" +msgstr "" + +#: reference/lexical_analysis.rst:38 +msgid "CR, LF" +msgstr "" + +#: reference/lexical_analysis.rst:39 +msgid ":ref:`New line `" +msgstr "" + +#: reference/lexical_analysis.rst:40 +msgid ":ref:`Indentation `" +msgstr "" + +#: reference/lexical_analysis.rst:42 +msgid "backslash (``\\``)" +msgstr "" + +#: reference/lexical_analysis.rst:43 +msgid ":ref:`Explicit line joining `" +msgstr "" + +#: reference/lexical_analysis.rst:44 +msgid "(Also significant in :ref:`string escape sequences `)" +msgstr "" + +#: reference/lexical_analysis.rst:46 +msgid "hash (``#``)" +msgstr "" + +#: reference/lexical_analysis.rst:47 +msgid ":ref:`Comment `" +msgstr "" + +#: reference/lexical_analysis.rst:49 +msgid "quote (``'``, ``\"``)" +msgstr "" + +#: reference/lexical_analysis.rst:50 +msgid ":ref:`String literal `" +msgstr "" + +#: reference/lexical_analysis.rst:52 +msgid "ASCII letter (``a``-``z``, ``A``-``Z``)" +msgstr "" + +#: reference/lexical_analysis.rst:53 +msgid "non-ASCII character" +msgstr "" + +#: reference/lexical_analysis.rst:54 reference/lexical_analysis.rst:58 +msgid ":ref:`Name `" +msgstr "" + +#: reference/lexical_analysis.rst:55 +msgid "Prefixed :ref:`string or bytes literal `" +msgstr "" + +#: reference/lexical_analysis.rst:57 +msgid "underscore (``_``)" +msgstr "" + +#: reference/lexical_analysis.rst:59 +msgid "(Can also be part of :ref:`numeric literals `)" +msgstr "" + +#: reference/lexical_analysis.rst:61 +msgid "number (``0``-``9``)" +msgstr "" + +#: reference/lexical_analysis.rst:62 reference/lexical_analysis.rst:65 +msgid ":ref:`Numeric literal `" +msgstr "" + +#: reference/lexical_analysis.rst:64 +msgid "dot (``.``)" +msgstr "" + +#: reference/lexical_analysis.rst:66 +msgid ":ref:`Operator `" +msgstr "" + +#: reference/lexical_analysis.rst:68 +msgid "question mark (``?``)" +msgstr "" + +#: reference/lexical_analysis.rst:69 +msgid "dollar (``$``)" +msgstr "" + +#: reference/lexical_analysis.rst:74 +msgid "backquote (``​`​``)" +msgstr "" + +#: reference/lexical_analysis.rst:75 +msgid "control character" +msgstr "" + +#: reference/lexical_analysis.rst:76 +msgid "Error (outside string literals and comments)" +msgstr "" + +#: reference/lexical_analysis.rst:78 +msgid "other printing character" +msgstr "" + +#: reference/lexical_analysis.rst:79 +msgid ":ref:`Operator or delimiter `" +msgstr "" + +#: reference/lexical_analysis.rst:81 +msgid "end of file" +msgstr "" + +#: reference/lexical_analysis.rst:82 +msgid ":ref:`End marker `" +msgstr "" + +#: reference/lexical_analysis.rst:88 msgid "Line structure" msgstr "" -#: reference/lexical_analysis.rst:28 +#: reference/lexical_analysis.rst:92 msgid "A Python program is divided into a number of *logical lines*." msgstr "" -#: reference/lexical_analysis.rst:34 +#: reference/lexical_analysis.rst:98 msgid "Logical lines" msgstr "" -#: reference/lexical_analysis.rst:38 +#: reference/lexical_analysis.rst:102 msgid "" "The end of a logical line is represented by the token :data:`~token." "NEWLINE`. Statements cannot cross logical line boundaries except where :data:" "`!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." +"by following the :ref:`explicit ` or :ref:`implicit " +"` *line joining* rules." msgstr "" -#: reference/lexical_analysis.rst:48 +#: reference/lexical_analysis.rst:113 msgid "Physical lines" msgstr "" -#: reference/lexical_analysis.rst:50 +#: reference/lexical_analysis.rst:115 +msgid "" +"A physical line is a sequence of characters terminated by one the following " +"end-of-line sequences:" +msgstr "" + +#: reference/lexical_analysis.rst:118 +msgid "the Unix form using ASCII LF (linefeed)," +msgstr "" + +#: reference/lexical_analysis.rst:119 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." +"linefeed)," msgstr "" -#: reference/lexical_analysis.rst:58 +#: reference/lexical_analysis.rst:120 +msgid "the '`Classic Mac OS`__' form using the ASCII CR (return) character." +msgstr "" + +#: reference/lexical_analysis.rst:124 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)." +"Regardless of platform, each of these sequences is replaced by a single " +"ASCII LF (linefeed) character. (This is done even inside :ref:`string " +"literals `.) Each line can use any of the sequences; they do not " +"need to be consistent within a file." msgstr "" -#: reference/lexical_analysis.rst:66 +#: reference/lexical_analysis.rst:130 +msgid "" +"The end of input also serves as an implicit terminator for the final " +"physical line." +msgstr "" + +#: reference/lexical_analysis.rst:133 +msgid "Formally:" +msgstr "" + +#: reference/lexical_analysis.rst:144 msgid "Comments" msgstr "" -#: reference/lexical_analysis.rst:71 +#: reference/lexical_analysis.rst:149 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 " @@ -92,11 +263,11 @@ msgid "" "Comments are ignored by the syntax." msgstr "" -#: reference/lexical_analysis.rst:80 +#: reference/lexical_analysis.rst:158 msgid "Encoding declarations" msgstr "" -#: reference/lexical_analysis.rst:85 +#: reference/lexical_analysis.rst:163 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 " @@ -106,23 +277,23 @@ msgid "" "comment-only line. The recommended forms of an encoding expression are ::" msgstr "" -#: reference/lexical_analysis.rst:92 +#: reference/lexical_analysis.rst:170 msgid "# -*- coding: -*-" msgstr "" -#: reference/lexical_analysis.rst:94 +#: reference/lexical_analysis.rst:172 msgid "which is recognized also by GNU Emacs, and ::" msgstr "" -#: reference/lexical_analysis.rst:96 +#: reference/lexical_analysis.rst:174 msgid "# vim:fileencoding=" msgstr "" -#: reference/lexical_analysis.rst:98 +#: reference/lexical_analysis.rst:176 msgid "which is recognized by Bram Moolenaar's VIM." msgstr "" -#: reference/lexical_analysis.rst:100 +#: reference/lexical_analysis.rst:178 msgid "" "If no encoding declaration is found, the default encoding is UTF-8. If the " "implicit or explicit encoding of a file is UTF-8, an initial UTF-8 byte-" @@ -130,18 +301,25 @@ msgid "" "error." msgstr "" -#: reference/lexical_analysis.rst:104 +#: reference/lexical_analysis.rst:182 msgid "" "If an encoding is declared, the encoding name must be recognized by Python " "(see :ref:`standard-encodings`). The encoding is used for all lexical " "analysis, including string literals, comments and identifiers." msgstr "" -#: reference/lexical_analysis.rst:113 +#: reference/lexical_analysis.rst:189 +msgid "" +"All lexical analysis, including string literals, comments and identifiers, " +"works on Unicode text decoded using the source encoding. Any Unicode code " +"point, except the NUL control character, can appear in Python source." +msgstr "" + +#: reference/lexical_analysis.rst:203 msgid "Explicit line joining" msgstr "" -#: reference/lexical_analysis.rst:117 +#: reference/lexical_analysis.rst:207 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 " @@ -150,7 +328,7 @@ msgid "" "following end-of-line character. For example::" msgstr "" -#: reference/lexical_analysis.rst:123 +#: reference/lexical_analysis.rst:213 msgid "" "if 1900 < year < 2100 and 1 <= month <= 12 \\\n" " and 1 <= day <= 31 and 0 <= hour < 24 \\\n" @@ -158,7 +336,7 @@ msgid "" " return 1" msgstr "" -#: reference/lexical_analysis.rst:128 +#: reference/lexical_analysis.rst:218 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 " @@ -167,17 +345,17 @@ msgid "" "line outside a string literal." msgstr "" -#: reference/lexical_analysis.rst:138 +#: reference/lexical_analysis.rst:228 msgid "Implicit line joining" msgstr "" -#: reference/lexical_analysis.rst:140 +#: reference/lexical_analysis.rst:230 msgid "" "Expressions in parentheses, square brackets or curly braces can be split " "over more than one physical line without using backslashes. For example::" msgstr "" -#: reference/lexical_analysis.rst:143 +#: reference/lexical_analysis.rst:233 msgid "" "month_names = ['Januari', 'Februari', 'Maart', # These are the\n" " 'April', 'Mei', 'Juni', # Dutch names\n" @@ -185,7 +363,7 @@ msgid "" " 'Oktober', 'November', 'December'] # of the year" msgstr "" -#: reference/lexical_analysis.rst:148 +#: reference/lexical_analysis.rst:238 msgid "" "Implicitly continued lines can carry comments. The indentation of the " "continuation lines is not important. Blank continuation lines are allowed. " @@ -194,11 +372,11 @@ msgid "" "that case they cannot carry comments." msgstr "" -#: reference/lexical_analysis.rst:158 +#: reference/lexical_analysis.rst:248 msgid "Blank lines" msgstr "" -#: reference/lexical_analysis.rst:162 +#: reference/lexical_analysis.rst:252 msgid "" "A logical line that contains only spaces, tabs, formfeeds and possibly a " "comment, is ignored (i.e., no :data:`~token.NEWLINE` token is generated). " @@ -209,18 +387,18 @@ msgid "" "statement." msgstr "" -#: reference/lexical_analysis.rst:174 +#: reference/lexical_analysis.rst:264 msgid "Indentation" msgstr "" -#: reference/lexical_analysis.rst:178 +#: reference/lexical_analysis.rst:268 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 "" -#: reference/lexical_analysis.rst:182 +#: reference/lexical_analysis.rst:272 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 " @@ -231,14 +409,14 @@ msgid "" "the indentation." msgstr "" -#: reference/lexical_analysis.rst:190 +#: reference/lexical_analysis.rst:280 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 "" -#: reference/lexical_analysis.rst:194 +#: reference/lexical_analysis.rst:284 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 " @@ -246,7 +424,7 @@ msgid "" "different platforms may explicitly limit the maximum indentation level." msgstr "" -#: reference/lexical_analysis.rst:199 +#: reference/lexical_analysis.rst:289 msgid "" "A formfeed character may be present at the start of the line; it will be " "ignored for the indentation calculations above. Formfeed characters " @@ -254,13 +432,13 @@ msgid "" "instance, they may reset the space count to zero)." msgstr "" -#: reference/lexical_analysis.rst:206 +#: reference/lexical_analysis.rst:296 msgid "" "The indentation levels of consecutive lines are used to generate :data:" "`~token.INDENT` and :data:`~token.DEDENT` tokens, using a stack, as follows." msgstr "" -#: reference/lexical_analysis.rst:210 +#: reference/lexical_analysis.rst:300 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 " @@ -275,13 +453,13 @@ msgid "" "than zero." msgstr "" -#: reference/lexical_analysis.rst:221 +#: reference/lexical_analysis.rst:311 msgid "" "Here is an example of a correctly (though confusingly) indented piece of " "Python code::" msgstr "" -#: reference/lexical_analysis.rst:224 +#: reference/lexical_analysis.rst:314 msgid "" "def perm(l):\n" " # Compute the list of all permutations of l\n" @@ -296,11 +474,11 @@ msgid "" " return r" msgstr "" -#: reference/lexical_analysis.rst:236 +#: reference/lexical_analysis.rst:326 msgid "The following example shows various indentation errors::" msgstr "" -#: reference/lexical_analysis.rst:238 +#: reference/lexical_analysis.rst:328 msgid "" " def perm(l): # error: first line indented\n" "for i in range(len(l)): # error: not indented\n" @@ -311,18 +489,18 @@ msgid "" " return r # error: inconsistent dedent" msgstr "" -#: reference/lexical_analysis.rst:246 +#: reference/lexical_analysis.rst:336 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 "" -#: reference/lexical_analysis.rst:254 +#: reference/lexical_analysis.rst:344 msgid "Whitespace between tokens" msgstr "" -#: reference/lexical_analysis.rst:256 +#: reference/lexical_analysis.rst:346 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 " @@ -333,21 +511,21 @@ msgid "" "token." msgstr "" -#: reference/lexical_analysis.rst:267 +#: reference/lexical_analysis.rst:357 msgid "End marker" msgstr "" -#: reference/lexical_analysis.rst:269 +#: reference/lexical_analysis.rst:359 msgid "" "At the end of non-interactive input, the lexical analyzer generates an :data:" "`~token.ENDMARKER` token." msgstr "" -#: reference/lexical_analysis.rst:276 +#: reference/lexical_analysis.rst:366 msgid "Other tokens" msgstr "" -#: reference/lexical_analysis.rst:278 +#: reference/lexical_analysis.rst:368 msgid "" "Besides :data:`~token.NEWLINE`, :data:`~token.INDENT` and :data:`~token." "DEDENT`, the following categories of tokens exist: *identifiers* and " @@ -359,17 +537,17 @@ msgid "" "string that forms a legal token, when read from left to right." msgstr "" -#: reference/lexical_analysis.rst:292 +#: reference/lexical_analysis.rst:382 msgid "Names (identifiers and keywords)" msgstr "" -#: reference/lexical_analysis.rst:296 +#: reference/lexical_analysis.rst:386 msgid "" ":data:`~token.NAME` tokens represent *identifiers*, *keywords*, and *soft " "keywords*." msgstr "" -#: reference/lexical_analysis.rst:299 +#: reference/lexical_analysis.rst:389 msgid "" "Within the ASCII range (U+0001..U+007F), the valid characters for names " "include the uppercase and lowercase letters (``A-Z`` and ``a-z``), the " @@ -377,133 +555,133 @@ msgid "" "through ``9``." msgstr "" -#: reference/lexical_analysis.rst:304 +#: reference/lexical_analysis.rst:394 msgid "" "Names must contain at least one character, but have no upper length limit. " "Case is significant." msgstr "" -#: reference/lexical_analysis.rst:307 +#: reference/lexical_analysis.rst:397 msgid "" "Besides ``A-Z``, ``a-z``, ``_`` and ``0-9``, names can also use \"letter-" "like\" and \"number-like\" characters from outside the ASCII range, as " "detailed below." msgstr "" -#: reference/lexical_analysis.rst:310 +#: reference/lexical_analysis.rst:400 msgid "" "All identifiers are converted into the `normalization form`_ NFKC while " "parsing; comparison of identifiers is based on NFKC." msgstr "" -#: reference/lexical_analysis.rst:313 +#: reference/lexical_analysis.rst:403 msgid "" "Formally, the first character of a normalized identifier must belong to the " "set ``id_start``, which is the union of:" msgstr "" -#: reference/lexical_analysis.rst:316 +#: reference/lexical_analysis.rst:406 msgid "Unicode category ```` - uppercase letters (includes ``A`` to ``Z``)" msgstr "" -#: reference/lexical_analysis.rst:317 +#: reference/lexical_analysis.rst:407 msgid "Unicode category ```` - lowercase letters (includes ``a`` to ``z``)" msgstr "" -#: reference/lexical_analysis.rst:318 +#: reference/lexical_analysis.rst:408 msgid "Unicode category ```` - titlecase letters" msgstr "" -#: reference/lexical_analysis.rst:319 +#: reference/lexical_analysis.rst:409 msgid "Unicode category ```` - modifier letters" msgstr "" -#: reference/lexical_analysis.rst:320 +#: reference/lexical_analysis.rst:410 msgid "Unicode category ```` - other letters" msgstr "" -#: reference/lexical_analysis.rst:321 +#: reference/lexical_analysis.rst:411 msgid "Unicode category ```` - letter numbers" msgstr "" -#: reference/lexical_analysis.rst:322 +#: reference/lexical_analysis.rst:412 msgid "{``\"_\"``} - the underscore" msgstr "" -#: reference/lexical_analysis.rst:323 +#: reference/lexical_analysis.rst:413 msgid "" "```` - an explicit set of characters in `PropList.txt`_ to " "support backwards compatibility" msgstr "" -#: reference/lexical_analysis.rst:326 +#: reference/lexical_analysis.rst:416 msgid "" "The remaining characters must belong to the set ``id_continue``, which is " "the union of:" msgstr "" -#: reference/lexical_analysis.rst:329 +#: reference/lexical_analysis.rst:419 msgid "all characters in ``id_start``" msgstr "" -#: reference/lexical_analysis.rst:330 +#: reference/lexical_analysis.rst:420 msgid "Unicode category ```` - decimal numbers (includes ``0`` to ``9``)" msgstr "" -#: reference/lexical_analysis.rst:331 +#: reference/lexical_analysis.rst:421 msgid "Unicode category ```` - connector punctuations" msgstr "" -#: reference/lexical_analysis.rst:332 +#: reference/lexical_analysis.rst:422 msgid "Unicode category ```` - nonspacing marks" msgstr "" -#: reference/lexical_analysis.rst:333 +#: reference/lexical_analysis.rst:423 msgid "Unicode category ```` - spacing combining marks" msgstr "" -#: reference/lexical_analysis.rst:334 +#: reference/lexical_analysis.rst:424 msgid "" "```` - another explicit set of characters in `PropList." "txt`_ to support backwards compatibility" msgstr "" -#: reference/lexical_analysis.rst:337 +#: reference/lexical_analysis.rst:427 msgid "" "Unicode categories use the version of the Unicode Character Database as " "included in the :mod:`unicodedata` module." msgstr "" -#: reference/lexical_analysis.rst:340 +#: reference/lexical_analysis.rst:430 msgid "" "These sets are based on the Unicode standard annex `UAX-31`_. See also :pep:" "`3131` for further details." msgstr "" -#: reference/lexical_analysis.rst:343 +#: reference/lexical_analysis.rst:433 msgid "" "Even more formally, names are described by the following lexical definitions:" msgstr "" -#: reference/lexical_analysis.rst:357 +#: reference/lexical_analysis.rst:447 msgid "" "A non-normative listing of all valid identifier characters as defined by " "Unicode is available in the `DerivedCoreProperties.txt`_ file in the Unicode " "Character Database." msgstr "" -#: reference/lexical_analysis.rst:371 +#: reference/lexical_analysis.rst:461 msgid "Keywords" msgstr "" -#: reference/lexical_analysis.rst:377 +#: reference/lexical_analysis.rst:467 msgid "" "The following names 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 "" -#: reference/lexical_analysis.rst:381 +#: reference/lexical_analysis.rst:471 msgid "" "False await else import pass\n" "None break except in raise\n" @@ -514,101 +692,101 @@ msgid "" "async elif if or yield" msgstr "" -#: reference/lexical_analysis.rst:395 +#: reference/lexical_analysis.rst:485 msgid "Soft Keywords" msgstr "" -#: reference/lexical_analysis.rst:401 +#: reference/lexical_analysis.rst:491 msgid "" "Some names are only reserved under specific contexts. These are known as " "*soft keywords*:" msgstr "" -#: reference/lexical_analysis.rst:404 +#: reference/lexical_analysis.rst:494 msgid "" "``match``, ``case``, and ``_``, when used in the :keyword:`match` statement." msgstr "" -#: reference/lexical_analysis.rst:405 +#: reference/lexical_analysis.rst:495 msgid "``type``, when used in the :keyword:`type` statement." msgstr "" -#: reference/lexical_analysis.rst:407 +#: reference/lexical_analysis.rst:497 msgid "" "These syntactically act as keywords in their specific contexts, but this " "distinction is done at the parser level, not when tokenizing." msgstr "" -#: reference/lexical_analysis.rst:410 +#: reference/lexical_analysis.rst:500 msgid "" "As soft keywords, their use in the grammar is possible while still " "preserving compatibility with existing code that uses these names as " "identifier names." msgstr "" -#: reference/lexical_analysis.rst:414 +#: reference/lexical_analysis.rst:504 msgid "``type`` is now a soft keyword." msgstr "" -#: reference/lexical_analysis.rst:423 +#: reference/lexical_analysis.rst:513 msgid "Reserved classes of identifiers" msgstr "" -#: reference/lexical_analysis.rst:425 +#: reference/lexical_analysis.rst:515 msgid "" "Certain classes of identifiers (besides keywords) have special meanings. " "These classes are identified by the patterns of leading and trailing " "underscore characters:" msgstr "" -#: reference/lexical_analysis.rst:429 +#: reference/lexical_analysis.rst:519 msgid "``_*``" msgstr "" -#: reference/lexical_analysis.rst:430 +#: reference/lexical_analysis.rst:520 msgid "Not imported by ``from module import *``." msgstr "" -#: reference/lexical_analysis.rst:432 +#: reference/lexical_analysis.rst:522 msgid "``_``" msgstr "" -#: reference/lexical_analysis.rst:433 +#: reference/lexical_analysis.rst:523 msgid "" "In a ``case`` pattern within a :keyword:`match` statement, ``_`` is a :ref:" "`soft keyword ` that denotes a :ref:`wildcard `." msgstr "" -#: reference/lexical_analysis.rst:437 +#: reference/lexical_analysis.rst:527 msgid "" "Separately, the interactive interpreter makes the result of the last " "evaluation available in the variable ``_``. (It is stored in the :mod:" "`builtins` module, alongside built-in functions like ``print``.)" msgstr "" -#: reference/lexical_analysis.rst:442 +#: reference/lexical_analysis.rst:532 msgid "" "Elsewhere, ``_`` is a regular identifier. It is often used to name " "\"special\" items, but it is not special to Python itself." msgstr "" -#: reference/lexical_analysis.rst:447 +#: reference/lexical_analysis.rst:537 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 "" -#: reference/lexical_analysis.rst:451 +#: reference/lexical_analysis.rst:541 msgid "It is also commonly used for unused variables." msgstr "" -#: reference/lexical_analysis.rst:453 +#: reference/lexical_analysis.rst:543 msgid "``__*__``" msgstr "" -#: reference/lexical_analysis.rst:454 +#: reference/lexical_analysis.rst:544 msgid "" "System-defined names, informally known as \"dunder\" names. These names are " "defined by the interpreter and its implementation (including the standard " @@ -618,11 +796,11 @@ msgid "" "explicitly documented use, is subject to breakage without warning." msgstr "" -#: reference/lexical_analysis.rst:461 +#: reference/lexical_analysis.rst:551 msgid "``__*``" msgstr "" -#: reference/lexical_analysis.rst:462 +#: reference/lexical_analysis.rst:552 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 " @@ -630,355 +808,592 @@ msgid "" "section :ref:`atom-identifiers`." msgstr "" -#: reference/lexical_analysis.rst:471 +#: reference/lexical_analysis.rst:561 msgid "Literals" msgstr "" -#: reference/lexical_analysis.rst:475 +#: reference/lexical_analysis.rst:565 msgid "Literals are notations for constant values of some built-in types." msgstr "" -#: reference/lexical_analysis.rst:486 +#: reference/lexical_analysis.rst:567 +msgid "" +"In terms of lexical analysis, Python has :ref:`string, bytes ` and :" +"ref:`numeric ` literals." +msgstr "" + +#: reference/lexical_analysis.rst:570 +msgid "" +"Other \"literals\" are lexically denoted using :ref:`keywords ` " +"(``None``, ``True``, ``False``) and the special :ref:`ellipsis token " +"` (``...``)." +msgstr "" + +#: reference/lexical_analysis.rst:581 msgid "String and Bytes literals" msgstr "" -#: reference/lexical_analysis.rst:488 -msgid "String literals are described by the following lexical definitions:" +#: reference/lexical_analysis.rst:583 +msgid "" +"String literals are text enclosed in single quotes (``'``) or double quotes " +"(``\"``). For example:" msgstr "" -#: reference/lexical_analysis.rst:514 +#: reference/lexical_analysis.rst:586 msgid "" -"One syntactic restriction not indicated by these productions is that " -"whitespace is not allowed between the :token:`~python-grammar:stringprefix` " -"or :token:`~python-grammar: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`." +"\"spam\"\n" +"'eggs'" msgstr "" -#: reference/lexical_analysis.rst:524 +#: reference/lexical_analysis.rst:591 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 give special meaning to otherwise ordinary characters like ``n``, " -"which means 'newline' when escaped (``\\n``). It can also be used to escape " -"characters that otherwise have a special meaning, such as newline, backslash " -"itself, or the quote character. See :ref:`escape sequences ` below for examples." +"The quote used to start the literal also terminates it, so a string literal " +"can only contain the other quote (except with escape sequences, see below). " +"For example:" msgstr "" -#: reference/lexical_analysis.rst:537 +#: reference/lexical_analysis.rst:595 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." +"'Say \"Hello\", please.'\n" +"\"Don't do that!\"" msgstr "" -#: reference/lexical_analysis.rst:546 +#: reference/lexical_analysis.rst:600 msgid "" -"Both string and bytes literals may optionally be prefixed with a letter " -"``'r'`` or ``'R'``; such constructs are called :dfn:`raw string literals` " -"and :dfn:`raw bytes literals` respectively and treat backslashes as literal " -"characters. As a result, in raw string literals, ``'\\U'`` and ``'\\u'`` " -"escapes are not treated specially." +"Except for this limitation, the choice of quote character (``'`` or ``\"``) " +"does not affect how the literal is parsed." msgstr "" -#: reference/lexical_analysis.rst:552 +#: reference/lexical_analysis.rst:603 +msgid "" +"Inside a string literal, the backslash (``\\``) character introduces an :dfn:" +"`escape sequence`, which has special meaning depending on the character " +"after the backslash. For example, ``\\\"`` denotes the double quote " +"character, and does *not* end the string:" +msgstr "" + +#: reference/lexical_analysis.rst:609 +msgid "" +">>> print(\"Say \\\"Hello\\\" to everyone!\")\n" +"Say \"Hello\" to everyone!" +msgstr "" + +#: reference/lexical_analysis.rst:614 +msgid "" +"See :ref:`escape sequences ` below for a full list of such " +"sequences, and more details." +msgstr "" + +#: reference/lexical_analysis.rst:623 +msgid "Triple-quoted strings" +msgstr "" + +#: reference/lexical_analysis.rst:625 +msgid "" +"Strings can also be enclosed in matching groups of three single or double " +"quotes. These are generally referred to as :dfn:`triple-quoted strings`::" +msgstr "" + +#: reference/lexical_analysis.rst:629 +msgid "\"\"\"This is a triple-quoted string.\"\"\"" +msgstr "" + +#: reference/lexical_analysis.rst:631 +msgid "" +"In triple-quoted literals, unescaped quotes are allowed (and are retained), " +"except that three unescaped quotes in a row terminate the literal, if they " +"are of the same kind (``'`` or ``\"``) used at the start::" +msgstr "" + +#: reference/lexical_analysis.rst:635 +msgid "\"\"\"This string has \"quotes\" inside.\"\"\"" +msgstr "" + +#: reference/lexical_analysis.rst:637 +msgid "Unescaped newlines are also allowed and retained::" +msgstr "" + +#: reference/lexical_analysis.rst:639 +msgid "" +"'''This triple-quoted string\n" +"continues on the next line.'''" +msgstr "" + +#: reference/lexical_analysis.rst:648 +msgid "String prefixes" +msgstr "" + +#: reference/lexical_analysis.rst:650 +msgid "" +"String literals can have an optional :dfn:`prefix` that influences how the " +"content of the literal is parsed, for example:" +msgstr "" + +#: reference/lexical_analysis.rst:653 +msgid "" +"b\"data\"\n" +"f'{result=}'" +msgstr "" + +#: reference/lexical_analysis.rst:658 +msgid "The allowed prefixes are:" +msgstr "" + +#: reference/lexical_analysis.rst:660 +msgid "``b``: :ref:`Bytes literal `" +msgstr "" + +#: reference/lexical_analysis.rst:661 +msgid "``r``: :ref:`Raw string `" +msgstr "" + +#: reference/lexical_analysis.rst:662 +msgid "``f``: :ref:`Formatted string literal ` (\"f-string\")" +msgstr "" + +#: reference/lexical_analysis.rst:663 +msgid "``t``: :ref:`Template string literal ` (\"t-string\")" +msgstr "" + +#: reference/lexical_analysis.rst:664 +msgid "``u``: No effect (allowed for backwards compatibility)" +msgstr "" + +#: reference/lexical_analysis.rst:666 +msgid "See the linked sections for details on each type." +msgstr "" + +#: reference/lexical_analysis.rst:668 +msgid "" +"Prefixes are case-insensitive (for example, '``B``' works the same as " +"'``b``'). The '``r``' prefix can be combined with '``f``', '``t``' or " +"'``b``', so '``fr``', '``rf``', '``tr``', '``rt``', '``br``', and '``rb``' " +"are also valid prefixes." +msgstr "" + +#: reference/lexical_analysis.rst:672 msgid "" "The ``'rb'`` prefix of raw bytes literals has been added as a synonym of " "``'br'``." msgstr "" -#: reference/lexical_analysis.rst:556 +#: reference/lexical_analysis.rst:676 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 "" -#: reference/lexical_analysis.rst:564 +#: reference/lexical_analysis.rst:682 +msgid "Formal grammar" +msgstr "" + +#: reference/lexical_analysis.rst:684 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." +"String literals, except :ref:`\"f-strings\" ` and :ref:`\"t-" +"strings\" `, are described by the following lexical definitions." msgstr "" -#: reference/lexical_analysis.rst:569 +#: reference/lexical_analysis.rst:688 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 ``\"``.)" +"These definitions use :ref:`negative lookaheads ` (``!" +"``) to indicate that an ending quote ends the literal." msgstr "" -#: reference/lexical_analysis.rst:592 +#: reference/lexical_analysis.rst:706 +msgid "" +"Note that as in all lexical definitions, whitespace is significant. In " +"particular, the prefix (if any) must be immediately followed by the starting " +"quote." +msgstr "" + +#: reference/lexical_analysis.rst:728 msgid "Escape sequences" msgstr "" -#: reference/lexical_analysis.rst:594 +#: reference/lexical_analysis.rst:730 msgid "" -"Unless an ``'r'`` or ``'R'`` prefix is present, escape sequences in string " +"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 "" -#: reference/lexical_analysis.rst:599 reference/lexical_analysis.rst:632 +#: reference/lexical_analysis.rst:738 msgid "Escape Sequence" msgstr "" -#: reference/lexical_analysis.rst:599 reference/lexical_analysis.rst:632 +#: reference/lexical_analysis.rst:739 msgid "Meaning" msgstr "" -#: reference/lexical_analysis.rst:599 reference/lexical_analysis.rst:632 -msgid "Notes" -msgstr "" - -#: reference/lexical_analysis.rst:601 +#: reference/lexical_analysis.rst:740 msgid "``\\``\\ " msgstr "" -#: reference/lexical_analysis.rst:601 -msgid "Backslash and newline ignored" +#: reference/lexical_analysis.rst:741 +msgid ":ref:`string-escape-ignore`" msgstr "" -#: reference/lexical_analysis.rst:601 -msgid "\\(1)" -msgstr "" - -#: reference/lexical_analysis.rst:603 +#: reference/lexical_analysis.rst:742 msgid "``\\\\``" msgstr "" -#: reference/lexical_analysis.rst:603 -msgid "Backslash (``\\``)" +#: reference/lexical_analysis.rst:743 +msgid ":ref:`Backslash `" msgstr "" -#: reference/lexical_analysis.rst:605 +#: reference/lexical_analysis.rst:744 msgid "``\\'``" msgstr "" -#: reference/lexical_analysis.rst:605 -msgid "Single quote (``'``)" +#: reference/lexical_analysis.rst:745 +msgid ":ref:`Single quote `" msgstr "" -#: reference/lexical_analysis.rst:607 +#: reference/lexical_analysis.rst:746 msgid "``\\\"``" msgstr "" -#: reference/lexical_analysis.rst:607 -msgid "Double quote (``\"``)" +#: reference/lexical_analysis.rst:747 +msgid ":ref:`Double quote `" msgstr "" -#: reference/lexical_analysis.rst:609 +#: reference/lexical_analysis.rst:748 msgid "``\\a``" msgstr "" -#: reference/lexical_analysis.rst:609 +#: reference/lexical_analysis.rst:749 msgid "ASCII Bell (BEL)" msgstr "" -#: reference/lexical_analysis.rst:611 +#: reference/lexical_analysis.rst:750 msgid "``\\b``" msgstr "" -#: reference/lexical_analysis.rst:611 +#: reference/lexical_analysis.rst:751 msgid "ASCII Backspace (BS)" msgstr "" -#: reference/lexical_analysis.rst:613 +#: reference/lexical_analysis.rst:752 msgid "``\\f``" msgstr "" -#: reference/lexical_analysis.rst:613 +#: reference/lexical_analysis.rst:753 msgid "ASCII Formfeed (FF)" msgstr "" -#: reference/lexical_analysis.rst:615 +#: reference/lexical_analysis.rst:754 msgid "``\\n``" msgstr "" -#: reference/lexical_analysis.rst:615 +#: reference/lexical_analysis.rst:755 msgid "ASCII Linefeed (LF)" msgstr "" -#: reference/lexical_analysis.rst:617 +#: reference/lexical_analysis.rst:756 msgid "``\\r``" msgstr "" -#: reference/lexical_analysis.rst:617 +#: reference/lexical_analysis.rst:757 msgid "ASCII Carriage Return (CR)" msgstr "" -#: reference/lexical_analysis.rst:619 +#: reference/lexical_analysis.rst:758 msgid "``\\t``" msgstr "" -#: reference/lexical_analysis.rst:619 +#: reference/lexical_analysis.rst:759 msgid "ASCII Horizontal Tab (TAB)" msgstr "" -#: reference/lexical_analysis.rst:621 +#: reference/lexical_analysis.rst:760 msgid "``\\v``" msgstr "" -#: reference/lexical_analysis.rst:621 +#: reference/lexical_analysis.rst:761 msgid "ASCII Vertical Tab (VT)" msgstr "" -#: reference/lexical_analysis.rst:623 +#: reference/lexical_analysis.rst:762 msgid ":samp:`\\\\\\\\{ooo}`" msgstr "" -#: reference/lexical_analysis.rst:623 -msgid "Character with octal value *ooo*" +#: reference/lexical_analysis.rst:763 +msgid ":ref:`string-escape-oct`" msgstr "" -#: reference/lexical_analysis.rst:623 -msgid "(2,4)" +#: reference/lexical_analysis.rst:764 +msgid ":samp:`\\\\x{hh}`" msgstr "" -#: reference/lexical_analysis.rst:626 -msgid ":samp:`\\\\x{hh}`" +#: reference/lexical_analysis.rst:765 +msgid ":ref:`string-escape-hex`" +msgstr "" + +#: reference/lexical_analysis.rst:766 +msgid ":samp:`\\\\N\\\\{{name}\\\\}`" +msgstr "" + +#: reference/lexical_analysis.rst:767 +msgid ":ref:`string-escape-named`" +msgstr "" + +#: reference/lexical_analysis.rst:768 +msgid ":samp:`\\\\u{xxxx}`" +msgstr "" + +#: reference/lexical_analysis.rst:769 reference/lexical_analysis.rst:771 +msgid ":ref:`Hexadecimal Unicode character `" +msgstr "" + +#: reference/lexical_analysis.rst:770 +msgid ":samp:`\\\\U{xxxxxxxx}`" +msgstr "" + +#: reference/lexical_analysis.rst:776 +msgid "Ignored end of line" +msgstr "" + +#: reference/lexical_analysis.rst:778 +msgid "A backslash can be added at the end of a line to ignore the newline::" +msgstr "" + +#: reference/lexical_analysis.rst:780 +msgid "" +">>> 'This string will not include \\\n" +"... backslashes or newline characters.'\n" +"'This string will not include backslashes or newline characters.'" +msgstr "" + +#: reference/lexical_analysis.rst:784 +msgid "" +"The same result can be achieved using :ref:`triple-quoted strings " +"`, or parentheses and :ref:`string literal concatenation `." +msgstr "" + +#: reference/lexical_analysis.rst:790 +msgid "Escaped characters" +msgstr "" + +#: reference/lexical_analysis.rst:792 +msgid "" +"To include a backslash in a non-:ref:`raw ` Python string " +"literal, it must be doubled. The ``\\\\`` escape sequence denotes a single " +"backslash character::" +msgstr "" + +#: reference/lexical_analysis.rst:796 +msgid "" +">>> print('C:\\\\Program Files')\n" +"C:\\Program Files" +msgstr "" + +#: reference/lexical_analysis.rst:799 +msgid "" +"Similarly, the ``\\'`` and ``\\\"`` sequences denote the single and double " +"quote character, respectively::" +msgstr "" + +#: reference/lexical_analysis.rst:802 +msgid "" +">>> print('\\' and \\\"')\n" +"' and \"" +msgstr "" + +#: reference/lexical_analysis.rst:808 +msgid "Octal character" +msgstr "" + +#: reference/lexical_analysis.rst:810 +msgid "" +"The sequence :samp:`\\\\\\\\{ooo}` denotes a *character* with the octal " +"(base 8) value *ooo*::" +msgstr "" + +#: reference/lexical_analysis.rst:813 +msgid "" +">>> '\\120'\n" +"'P'" +msgstr "" + +#: reference/lexical_analysis.rst:816 +msgid "Up to three octal digits (0 through 7) are accepted." +msgstr "" + +#: reference/lexical_analysis.rst:818 reference/lexical_analysis.rst:843 +msgid "" +"In a bytes literal, *character* means a *byte* with the given value. In a " +"string literal, it means a Unicode character with the given value." +msgstr "" + +#: reference/lexical_analysis.rst:821 +msgid "" +"Octal escapes with value larger than ``0o377`` (255) produce a :exc:" +"`DeprecationWarning`." +msgstr "" + +#: reference/lexical_analysis.rst:825 +msgid "" +"Octal escapes with value larger than ``0o377`` (255) produce a :exc:" +"`SyntaxWarning`. In a future Python version they will raise a :exc:" +"`SyntaxError`." msgstr "" -#: reference/lexical_analysis.rst:626 -msgid "Character with hex value *hh*" +#: reference/lexical_analysis.rst:833 +msgid "Hexadecimal character" msgstr "" -#: reference/lexical_analysis.rst:626 -msgid "(3,4)" +#: reference/lexical_analysis.rst:835 +msgid "" +"The sequence :samp:`\\\\x{hh}` denotes a *character* with the hex (base 16) " +"value *hh*::" msgstr "" -#: reference/lexical_analysis.rst:629 -msgid "Escape sequences only recognized in string literals are:" +#: reference/lexical_analysis.rst:838 +msgid "" +">>> '\\x50'\n" +"'P'" msgstr "" -#: reference/lexical_analysis.rst:634 -msgid ":samp:`\\\\N\\\\{{name}\\\\}`" +#: reference/lexical_analysis.rst:841 +msgid "Unlike in Standard C, exactly two hex digits are required." msgstr "" -#: reference/lexical_analysis.rst:634 -msgid "Character named *name* in the Unicode database" +#: reference/lexical_analysis.rst:849 +msgid "Named Unicode character" msgstr "" -#: reference/lexical_analysis.rst:634 -msgid "\\(5)" +#: reference/lexical_analysis.rst:851 +msgid "" +"The sequence :samp:`\\\\N\\\\{{name}\\\\}` denotes a Unicode character with " +"the given *name*::" msgstr "" -#: reference/lexical_analysis.rst:637 -msgid ":samp:`\\\\u{xxxx}`" +#: reference/lexical_analysis.rst:854 +msgid "" +">>> '\\N{LATIN CAPITAL LETTER P}'\n" +"'P'\n" +">>> '\\N{SNAKE}'\n" +"'🐍'" msgstr "" -#: reference/lexical_analysis.rst:637 -msgid "Character with 16-bit hex value *xxxx*" +#: reference/lexical_analysis.rst:859 +msgid "This sequence cannot appear in :ref:`bytes literals `." msgstr "" -#: reference/lexical_analysis.rst:637 -msgid "\\(6)" +#: reference/lexical_analysis.rst:861 +msgid "" +"Support for `name aliases `__ has been added." msgstr "" -#: reference/lexical_analysis.rst:640 -msgid ":samp:`\\\\U{xxxxxxxx}`" +#: reference/lexical_analysis.rst:868 +msgid "Hexadecimal Unicode characters" msgstr "" -#: reference/lexical_analysis.rst:640 -msgid "Character with 32-bit hex value *xxxxxxxx*" +#: reference/lexical_analysis.rst:870 +msgid "" +"These sequences :samp:`\\\\u{xxxx}` and :samp:`\\\\U{xxxxxxxx}` denote the " +"Unicode character with the given hex (base 16) value. Exactly four digits " +"are required for ``\\u``; exactly eight digits are required for ``\\U``. The " +"latter can encode any Unicode character." msgstr "" -#: reference/lexical_analysis.rst:640 -msgid "\\(7)" +#: reference/lexical_analysis.rst:876 +msgid "" +">>> '\\u1234'\n" +"'ሴ'\n" +">>> '\\U0001f40d'\n" +"'🐍'" msgstr "" -#: reference/lexical_analysis.rst:644 -msgid "Notes:" +#: reference/lexical_analysis.rst:883 +msgid "These sequences cannot appear in :ref:`bytes literals `." msgstr "" -#: reference/lexical_analysis.rst:647 -msgid "A backslash can be added at the end of a line to ignore the newline::" +#: reference/lexical_analysis.rst:889 +msgid "Unrecognized escape sequences" msgstr "" -#: reference/lexical_analysis.rst:649 +#: reference/lexical_analysis.rst:891 msgid "" -">>> 'This string will not include \\\n" -"... backslashes or newline characters.'\n" -"'This string will not include backslashes or newline characters.'" +"Unlike in Standard C, all unrecognized escape sequences are left in the " +"string unchanged, that is, *the backslash is left in the result*::" msgstr "" -#: reference/lexical_analysis.rst:653 +#: reference/lexical_analysis.rst:894 msgid "" -"The same result can be achieved using :ref:`triple-quoted strings " -"`, or parentheses and :ref:`string literal concatenation `." +">>> print('\\q')\n" +"\\q\n" +">>> list('\\q')\n" +"['\\\\', 'q']" msgstr "" -#: reference/lexical_analysis.rst:658 -msgid "As in Standard C, up to three octal digits are accepted." +#: reference/lexical_analysis.rst:899 +msgid "" +"Note that for bytes literals, the escape sequences only recognized in string " +"literals (``\\N...``, ``\\u...``, ``\\U...``) fall into the category of " +"unrecognized escapes." msgstr "" -#: reference/lexical_analysis.rst:660 -msgid "" -"Octal escapes with value larger than ``0o377`` produce a :exc:" -"`DeprecationWarning`." +#: reference/lexical_analysis.rst:903 +msgid "Unrecognized escape sequences produce a :exc:`DeprecationWarning`." msgstr "" -#: reference/lexical_analysis.rst:664 +#: reference/lexical_analysis.rst:906 msgid "" -"Octal escapes with value larger than ``0o377`` produce a :exc:" -"`SyntaxWarning`. In a future Python version they will be eventually a :exc:" -"`SyntaxError`." +"Unrecognized escape sequences produce a :exc:`SyntaxWarning`. In a future " +"Python version they will raise a :exc:`SyntaxError`." msgstr "" -#: reference/lexical_analysis.rst:670 -msgid "Unlike in Standard C, exactly two hex digits are required." +#: reference/lexical_analysis.rst:919 +msgid "Bytes literals" msgstr "" -#: reference/lexical_analysis.rst:673 +#: reference/lexical_analysis.rst:921 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." +":dfn:`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 escape sequences (typically :ref:" +"`string-escape-hex` or :ref:`string-escape-oct`):" msgstr "" -#: reference/lexical_analysis.rst:678 -msgid "Support for name aliases [#]_ has been added." -msgstr "" - -#: reference/lexical_analysis.rst:682 -msgid "Exactly four hex digits are required." +#: reference/lexical_analysis.rst:927 +msgid "" +">>> b'\\x89PNG\\r\\n\\x1a\\n'\n" +"b'\\x89PNG\\r\\n\\x1a\\n'\n" +">>> list(b'\\x89PNG\\r\\n\\x1a\\n')\n" +"[137, 80, 78, 71, 13, 10, 26, 10]" msgstr "" -#: reference/lexical_analysis.rst:685 +#: reference/lexical_analysis.rst:934 msgid "" -"Any Unicode character can be encoded this way. Exactly eight hex digits are " -"required." +"Similarly, a zero byte must be expressed using an escape sequence (typically " +"``\\0`` or ``\\x00``)." msgstr "" -#: reference/lexical_analysis.rst:691 -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." +#: reference/lexical_analysis.rst:945 +msgid "Raw string literals" msgstr "" -#: reference/lexical_analysis.rst:698 -msgid "Unrecognized escape sequences produce a :exc:`DeprecationWarning`." +#: reference/lexical_analysis.rst:947 +msgid "" +"Both string and bytes literals may optionally be prefixed with a letter " +"'``r``' or '``R``'; such constructs are called :dfn:`raw string literals` " +"and :dfn:`raw bytes literals` respectively and treat backslashes as literal " +"characters. As a result, in raw string literals, :ref:`escape sequences " +"` are not treated specially:" msgstr "" -#: reference/lexical_analysis.rst:701 +#: reference/lexical_analysis.rst:954 msgid "" -"Unrecognized escape sequences produce a :exc:`SyntaxWarning`. In a future " -"Python version they will be eventually a :exc:`SyntaxError`." +">>> r'\\d{4}-\\d{2}-\\d{2}'\n" +"'\\\\d{4}-\\\\d{2}-\\\\d{2}'" msgstr "" -#: reference/lexical_analysis.rst:705 +#: reference/lexical_analysis.rst:959 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 " @@ -991,58 +1406,27 @@ msgid "" "continuation." msgstr "" -#: reference/lexical_analysis.rst:718 -msgid "String literal concatenation" -msgstr "" - -#: reference/lexical_analysis.rst:720 -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 "" - -#: reference/lexical_analysis.rst:727 -msgid "" -"re.compile(\"[A-Za-z_]\" # letter or underscore\n" -" \"[A-Za-z0-9_]*\" # letter, digit or underscore\n" -" )" -msgstr "" - -#: reference/lexical_analysis.rst:731 -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 "" - -#: reference/lexical_analysis.rst:754 +#: reference/lexical_analysis.rst:987 msgid "f-strings" msgstr "" -#: reference/lexical_analysis.rst:758 +#: reference/lexical_analysis.rst:991 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 " +"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 "" -#: reference/lexical_analysis.rst:764 +#: reference/lexical_analysis.rst:997 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 "" -#: reference/lexical_analysis.rst:778 +#: reference/lexical_analysis.rst:1011 msgid "" "The parts of the string outside curly braces are treated literally, except " "that any doubled curly braces ``'{{'`` or ``'}}'`` are replaced with the " @@ -1055,7 +1439,7 @@ msgid "" "replacement field ends with a closing curly bracket ``'}'``." msgstr "" -#: reference/lexical_analysis.rst:788 +#: reference/lexical_analysis.rst:1021 msgid "" "Expressions in formatted string literals are treated like regular Python " "expressions surrounded by parentheses, with a few exceptions. An empty " @@ -1069,27 +1453,27 @@ msgid "" "replacement fields must be closed in a different line." msgstr "" -#: reference/lexical_analysis.rst:799 +#: reference/lexical_analysis.rst:1032 msgid "" ">>> f\"abc{a # This is a comment }\"\n" "... + 3}\"\n" "'abc5'" msgstr "" -#: reference/lexical_analysis.rst:805 +#: reference/lexical_analysis.rst:1038 msgid "" "Prior to Python 3.7, an :keyword:`await` expression and comprehensions " "containing an :keyword:`async for` clause were illegal in the expressions in " "formatted string literals due to a problem with the implementation." msgstr "" -#: reference/lexical_analysis.rst:810 +#: reference/lexical_analysis.rst:1043 msgid "" "Prior to Python 3.12, comments were not allowed inside f-string replacement " "fields." msgstr "" -#: reference/lexical_analysis.rst:814 +#: reference/lexical_analysis.rst:1047 msgid "" "When the equal sign ``'='`` is provided, the output will have the expression " "text, the ``'='`` and the evaluated value. Spaces after the opening brace " @@ -1100,18 +1484,18 @@ msgid "" "r'`` is declared." msgstr "" -#: reference/lexical_analysis.rst:822 +#: reference/lexical_analysis.rst:1055 msgid "The equal sign ``'='``." msgstr "" -#: reference/lexical_analysis.rst:825 +#: reference/lexical_analysis.rst:1058 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 "" -#: reference/lexical_analysis.rst:829 +#: reference/lexical_analysis.rst:1062 msgid "" "The result is then formatted using the :func:`format` protocol. The format " "specifier is passed to the :meth:`~object.__format__` method of the " @@ -1120,7 +1504,7 @@ msgid "" "value of the whole string." msgstr "" -#: reference/lexical_analysis.rst:835 +#: reference/lexical_analysis.rst:1068 msgid "" "Top-level format specifiers may include nested replacement fields. These " "nested fields may include their own conversion fields and :ref:`format " @@ -1129,17 +1513,17 @@ msgid "" "as that used by the :meth:`str.format` method." msgstr "" -#: reference/lexical_analysis.rst:841 +#: reference/lexical_analysis.rst:1074 msgid "" "Formatted string literals may be concatenated, but replacement fields cannot " "be split across literals." msgstr "" -#: reference/lexical_analysis.rst:844 +#: reference/lexical_analysis.rst:1077 msgid "Some examples of formatted string literals::" msgstr "" -#: reference/lexical_analysis.rst:846 +#: reference/lexical_analysis.rst:1079 msgid "" ">>> name = \"Fred\"\n" ">>> f\"He said his name is {name!r}.\"\n" @@ -1171,32 +1555,32 @@ msgid "" "'line = \"The mill\\'s closed\" '" msgstr "" -#: reference/lexical_analysis.rst:876 +#: reference/lexical_analysis.rst:1109 msgid "" "Reusing the outer f-string quoting type inside a replacement field is " "permitted::" msgstr "" -#: reference/lexical_analysis.rst:879 +#: reference/lexical_analysis.rst:1112 msgid "" ">>> a = dict(x=2)\n" ">>> f\"abc {a[\"x\"]} def\"\n" "'abc 2 def'" msgstr "" -#: reference/lexical_analysis.rst:883 +#: reference/lexical_analysis.rst:1116 msgid "" "Prior to Python 3.12, reuse of the same quoting type of the outer f-string " "inside a replacement field was not possible." msgstr "" -#: reference/lexical_analysis.rst:887 +#: reference/lexical_analysis.rst:1120 msgid "" "Backslashes are also allowed in replacement fields and are evaluated the " "same way as in any other context::" msgstr "" -#: reference/lexical_analysis.rst:890 +#: reference/lexical_analysis.rst:1123 msgid "" ">>> a = [\"a\", \"b\", \"c\"]\n" ">>> print(f\"List a contains:\\n{\"\\n\".join(a)}\")\n" @@ -1206,19 +1590,19 @@ msgid "" "c" msgstr "" -#: reference/lexical_analysis.rst:897 +#: reference/lexical_analysis.rst:1130 msgid "" "Prior to Python 3.12, backslashes were not permitted inside an f-string " "replacement field." msgstr "" -#: reference/lexical_analysis.rst:901 +#: reference/lexical_analysis.rst:1134 msgid "" "Formatted string literals cannot be used as docstrings, even if they do not " "include expressions." msgstr "" -#: reference/lexical_analysis.rst:906 +#: reference/lexical_analysis.rst:1139 msgid "" ">>> def foo():\n" "... f\"Not a docstring\"\n" @@ -1227,23 +1611,72 @@ msgid "" "True" msgstr "" -#: reference/lexical_analysis.rst:912 +#: reference/lexical_analysis.rst:1145 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 "" -#: reference/lexical_analysis.rst:919 +#: reference/lexical_analysis.rst:1153 +msgid "t-strings" +msgstr "" + +#: reference/lexical_analysis.rst:1157 +msgid "" +"A :dfn:`template string literal` or :dfn:`t-string` is a string literal that " +"is prefixed with '``t``' or '``T``'. These strings follow the same syntax " +"and evaluation rules as :ref:`formatted string literals `, with " +"the following differences:" +msgstr "" + +#: reference/lexical_analysis.rst:1162 +msgid "" +"Rather than evaluating to a ``str`` object, template string literals " +"evaluate to a :class:`string.templatelib.Template` object." +msgstr "" + +#: reference/lexical_analysis.rst:1165 +msgid "" +"The :func:`format` protocol is not used. Instead, the format specifier and " +"conversions (if any) are passed to a new :class:`~string.templatelib." +"Interpolation` object that is created for each evaluated expression. It is " +"up to code that processes the resulting :class:`~string.templatelib." +"Template` object to decide how to handle format specifiers and conversions." +msgstr "" + +#: reference/lexical_analysis.rst:1172 +msgid "" +"Format specifiers containing nested replacement fields are evaluated " +"eagerly, prior to being passed to the :class:`~string.templatelib." +"Interpolation` object. For instance, an interpolation of the form ``{amount:." +"{precision}f}`` will evaluate the inner expression ``{precision}`` to " +"determine the value of the ``format_spec`` attribute. If ``precision`` were " +"to be ``2``, the resulting format specifier would be ``'.2f'``." +msgstr "" + +#: reference/lexical_analysis.rst:1180 +msgid "" +"When the equals sign ``'='`` is provided in an interpolation expression, the " +"text of the expression is appended to the literal string that precedes the " +"relevant interpolation. This includes the equals sign and any surrounding " +"whitespace. The :class:`!Interpolation` instance for the expression will be " +"created as normal, except that :attr:`~string.templatelib.Interpolation." +"conversion` will be set to '``r``' (:func:`repr`) by default. If an explicit " +"conversion or format specifier are provided, this will override the default " +"behaviour." +msgstr "" + +#: reference/lexical_analysis.rst:1194 msgid "Numeric literals" msgstr "" -#: reference/lexical_analysis.rst:925 +#: reference/lexical_analysis.rst:1200 msgid "" ":data:`~token.NUMBER` tokens represent numeric literals, of which there are " "three types: integers, floating-point numbers, and imaginary numbers." msgstr "" -#: reference/lexical_analysis.rst:933 +#: reference/lexical_analysis.rst:1208 msgid "" "The numeric value of a numeric literal is the same as if it were passed as a " "string to the :class:`int`, :class:`float` or :class:`complex` class " @@ -1251,58 +1684,58 @@ msgid "" "constructors are also valid literals." msgstr "" -#: reference/lexical_analysis.rst:938 +#: reference/lexical_analysis.rst:1213 msgid "" "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 "" -#: reference/lexical_analysis.rst:952 +#: reference/lexical_analysis.rst:1227 msgid "Integer literals" msgstr "" -#: reference/lexical_analysis.rst:954 +#: reference/lexical_analysis.rst:1229 msgid "Integer literals denote whole numbers. For example::" msgstr "" -#: reference/lexical_analysis.rst:956 +#: reference/lexical_analysis.rst:1231 msgid "" "7\n" "3\n" "2147483647" msgstr "" -#: reference/lexical_analysis.rst:960 +#: reference/lexical_analysis.rst:1235 msgid "" "There is no limit for the length of integer literals apart from what can be " "stored in available memory::" msgstr "" -#: reference/lexical_analysis.rst:963 +#: reference/lexical_analysis.rst:1238 msgid "7922816251426433759354395033679228162514264337593543950336" msgstr "" -#: reference/lexical_analysis.rst:965 +#: reference/lexical_analysis.rst:1240 msgid "" "Underscores can be used to group digits for enhanced readability, and are " "ignored for determining the numeric value of the literal. For example, the " "following literals are equivalent::" msgstr "" -#: reference/lexical_analysis.rst:969 +#: reference/lexical_analysis.rst:1244 msgid "" "100_000_000_000\n" "100000000000\n" "1_00_00_00_00_000" msgstr "" -#: reference/lexical_analysis.rst:973 +#: reference/lexical_analysis.rst:1248 msgid "" "Underscores can only occur between digits. For example, ``_123``, ``321_``, " "and ``123__321`` are *not* valid literals." msgstr "" -#: reference/lexical_analysis.rst:976 +#: reference/lexical_analysis.rst:1251 msgid "" "Integers can be specified in binary (base 2), octal (base 8), or hexadecimal " "(base 16) using the prefixes ``0b``, ``0o`` and ``0x``, respectively. " @@ -1310,7 +1743,7 @@ msgid "" "case-insensitive. For example::" msgstr "" -#: reference/lexical_analysis.rst:981 +#: reference/lexical_analysis.rst:1256 msgid "" "0b100110111\n" "0b_1110_0101\n" @@ -1320,80 +1753,80 @@ msgid "" "0xDead_Beef" msgstr "" -#: reference/lexical_analysis.rst:988 +#: reference/lexical_analysis.rst:1263 msgid "" "An underscore can follow the base specifier. For example, ``0x_1f`` is a " "valid literal, but ``0_x1f`` and ``0x__1f`` are not." msgstr "" -#: reference/lexical_analysis.rst:992 +#: reference/lexical_analysis.rst:1267 msgid "" "Leading zeros in a non-zero decimal number are not allowed. For example, " "``0123`` is not a valid literal. This is for disambiguation with C-style " "octal literals, which Python used before version 3.0." msgstr "" -#: reference/lexical_analysis.rst:997 +#: reference/lexical_analysis.rst:1272 msgid "" "Formally, integer literals are described by the following lexical " "definitions:" msgstr "" -#: reference/lexical_analysis.rst:1014 reference/lexical_analysis.rst:1078 +#: reference/lexical_analysis.rst:1289 reference/lexical_analysis.rst:1353 msgid "Underscores are now allowed for grouping purposes in literals." msgstr "" -#: reference/lexical_analysis.rst:1025 +#: reference/lexical_analysis.rst:1300 msgid "Floating-point literals" msgstr "" -#: reference/lexical_analysis.rst:1027 +#: reference/lexical_analysis.rst:1302 msgid "" "Floating-point (float) literals, such as ``3.14`` or ``1.5``, denote :ref:" "`approximations of real numbers `." msgstr "" -#: reference/lexical_analysis.rst:1030 +#: reference/lexical_analysis.rst:1305 msgid "" "They consist of *integer* and *fraction* parts, each composed of decimal " "digits. The parts are separated by a decimal point, ``.``::" msgstr "" -#: reference/lexical_analysis.rst:1033 +#: reference/lexical_analysis.rst:1308 msgid "" "2.71828\n" "4.0" msgstr "" -#: reference/lexical_analysis.rst:1036 +#: reference/lexical_analysis.rst:1311 msgid "" -"Unlike in integer literals, leading zeros are allowed in the numeric parts. " -"For example, ``077.010`` is legal, and denotes the same number as ``77.10``." +"Unlike in integer literals, leading zeros are allowed. For example, " +"``077.010`` is legal, and denotes the same number as ``77.01``." msgstr "" -#: reference/lexical_analysis.rst:1039 +#: reference/lexical_analysis.rst:1314 msgid "" "As in integer literals, single underscores may occur between digits to help " "readability::" msgstr "" -#: reference/lexical_analysis.rst:1042 +#: reference/lexical_analysis.rst:1317 msgid "" "96_485.332_123\n" "3.14_15_93" msgstr "" -#: reference/lexical_analysis.rst:1045 +#: reference/lexical_analysis.rst:1320 msgid "Either of these parts, but not both, can be empty. For example::" msgstr "" -#: reference/lexical_analysis.rst:1047 +#: reference/lexical_analysis.rst:1322 msgid "" "10. # (equivalent to 10.0)\n" ".001 # (equivalent to 0.001)" msgstr "" -#: reference/lexical_analysis.rst:1050 +#: reference/lexical_analysis.rst:1325 msgid "" "Optionally, the integer and fraction may be followed by an *exponent*: the " "letter ``e`` or ``E``, followed by an optional sign, ``+`` or ``-``, and a " @@ -1401,54 +1834,54 @@ msgid "" "``E`` represents \"times ten raised to the power of\"::" msgstr "" -#: reference/lexical_analysis.rst:1055 +#: reference/lexical_analysis.rst:1330 msgid "" "1.0e3 # (represents 1.0×10³, or 1000.0)\n" "1.166e-5 # (represents 1.166×10⁻⁵, or 0.00001166)\n" "6.02214076e+23 # (represents 6.02214076×10²³, or 602214076000000000000000.)" msgstr "" -#: reference/lexical_analysis.rst:1059 +#: reference/lexical_analysis.rst:1334 msgid "" "In floats with only integer and exponent parts, the decimal point may be " "omitted::" msgstr "" -#: reference/lexical_analysis.rst:1062 +#: reference/lexical_analysis.rst:1337 msgid "" "1e3 # (equivalent to 1.e3 and 1.0e3)\n" "0e0 # (equivalent to 0.)" msgstr "" -#: reference/lexical_analysis.rst:1065 +#: reference/lexical_analysis.rst:1340 msgid "" "Formally, floating-point literals are described by the following lexical " "definitions:" msgstr "" -#: reference/lexical_analysis.rst:1087 +#: reference/lexical_analysis.rst:1362 msgid "Imaginary literals" msgstr "" -#: reference/lexical_analysis.rst:1089 +#: reference/lexical_analysis.rst:1364 msgid "" "Python has :ref:`complex number ` objects, but no complex " "literals. Instead, *imaginary literals* denote complex numbers with a zero " "real part." msgstr "" -#: reference/lexical_analysis.rst:1094 +#: reference/lexical_analysis.rst:1369 msgid "" "For example, in math, the complex number 3+4.2\\ *i* is written as the real " "number 3 added to the imaginary number 4.2\\ *i*. Python uses a similar " "syntax, except the imaginary unit is written as ``j`` rather than *i*::" msgstr "" -#: reference/lexical_analysis.rst:1099 +#: reference/lexical_analysis.rst:1374 msgid "3+4.2j" msgstr "" -#: reference/lexical_analysis.rst:1101 +#: reference/lexical_analysis.rst:1376 msgid "" "This is an expression composed of the :ref:`integer literal ` " "``3``, the :ref:`operator ` '``+``', and the :ref:`imaginary " @@ -1456,23 +1889,23 @@ msgid "" "whitespace is allowed between them::" msgstr "" -#: reference/lexical_analysis.rst:1107 +#: reference/lexical_analysis.rst:1382 msgid "3 + 4.2j" msgstr "" -#: reference/lexical_analysis.rst:1109 +#: reference/lexical_analysis.rst:1384 msgid "" "No whitespace is allowed *within* each token. In particular, the ``j`` " "suffix, may not be separated from the number before it." msgstr "" -#: reference/lexical_analysis.rst:1113 +#: reference/lexical_analysis.rst:1388 msgid "" "The number before the ``j`` has the same syntax as a floating-point literal. " "Thus, the following are valid imaginary literals::" msgstr "" -#: reference/lexical_analysis.rst:1116 +#: reference/lexical_analysis.rst:1391 msgid "" "4.2j\n" "3.14j\n" @@ -1483,100 +1916,79 @@ msgid "" "3.14_15_93j" msgstr "" -#: reference/lexical_analysis.rst:1124 +#: reference/lexical_analysis.rst:1399 msgid "" "Unlike in a floating-point literal the decimal point can be omitted if the " "imaginary number only has an integer part. The number is still evaluated as " "a floating-point number, not an integer::" msgstr "" -#: reference/lexical_analysis.rst:1128 +#: reference/lexical_analysis.rst:1403 msgid "" "10j\n" "0j\n" "1000000000000000000000000j # equivalent to 1e+24j" msgstr "" -#: reference/lexical_analysis.rst:1132 +#: reference/lexical_analysis.rst:1407 msgid "" "The ``j`` suffix is case-insensitive. That means you can use ``J`` instead::" msgstr "" -#: reference/lexical_analysis.rst:1135 +#: reference/lexical_analysis.rst:1410 msgid "3.14J # equivalent to 3.14j" msgstr "" -#: reference/lexical_analysis.rst:1137 +#: reference/lexical_analysis.rst:1412 msgid "" "Formally, imaginary literals are described by the following lexical " "definition:" msgstr "" -#: reference/lexical_analysis.rst:1148 -msgid "Operators" -msgstr "" - -#: reference/lexical_analysis.rst:1152 -msgid "The following tokens are operators:" +#: reference/lexical_analysis.rst:1425 +msgid "Operators and delimiters" msgstr "" -#: reference/lexical_analysis.rst:1154 +#: reference/lexical_analysis.rst:1431 msgid "" -"+ - * ** / // % @\n" -"<< >> & | ^ ~ :=\n" -"< > <= >= == !=" -msgstr "" - -#: reference/lexical_analysis.rst:1165 -msgid "Delimiters" -msgstr "" - -#: reference/lexical_analysis.rst:1169 -msgid "The following tokens serve as delimiters in the grammar:" +"The following grammar defines :dfn:`operator` and :dfn:`delimiter` tokens, " +"that is, the generic :data:`~token.OP` token type. A :ref:`list of these " +"tokens and their names ` is also available in " +"the :mod:`!token` module documentation." msgstr "" -#: reference/lexical_analysis.rst:1171 +#: reference/lexical_analysis.rst:1460 msgid "" -"( ) [ ] { }\n" -", : ! . ; @ =\n" -"-> += -= *= /= //= %=\n" -"@= &= |= ^= >>= <<= **=" +"Generally, *operators* are used to combine :ref:`expressions `, " +"while *delimiters* serve other purposes. However, there is no clear, formal " +"distinction between the two categories." msgstr "" -#: reference/lexical_analysis.rst:1178 +#: reference/lexical_analysis.rst:1464 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." +"Some tokens can serve as either operators or delimiters, depending on usage. " +"For example, ``*`` is both the multiplication operator and a delimiter used " +"for sequence unpacking, and ``@`` is both the matrix multiplication and a " +"delimiter that introduces decorators." msgstr "" -#: reference/lexical_analysis.rst:1183 +#: reference/lexical_analysis.rst:1469 msgid "" -"The following printing ASCII characters have special meaning as part of " -"other tokens or are otherwise significant to the lexical analyzer:" +"For some tokens, the distinction is unclear. For example, some people " +"consider ``.``, ``(``, and ``)`` to be delimiters, while others see the :py:" +"func:`getattr` operator and the function call operator(s)." msgstr "" -#: reference/lexical_analysis.rst:1186 -msgid "' \" # \\" -msgstr "" - -#: reference/lexical_analysis.rst:1190 +#: reference/lexical_analysis.rst:1473 msgid "" -"The following printing ASCII characters are not used in Python. Their " -"occurrence outside string literals and comments is an unconditional error:" -msgstr "" - -#: reference/lexical_analysis.rst:1193 -msgid "$ ? `" +"Some of Python's operators, like ``and``, ``or``, and ``not in``, use :ref:" +"`keyword ` tokens rather than \"symbols\" (operator tokens)." msgstr "" -#: reference/lexical_analysis.rst:1199 -msgid "Footnotes" -msgstr "" - -#: reference/lexical_analysis.rst:1200 -msgid "https://www.unicode.org/Public/16.0.0/ucd/NameAliases.txt" +#: reference/lexical_analysis.rst:1476 +msgid "" +"A sequence of three consecutive periods (``...``) has a special meaning as " +"an :py:data:`Ellipsis` literal." msgstr "" #: reference/lexical_analysis.rst:8 @@ -1591,404 +2003,389 @@ msgstr "" msgid "token" msgstr "" -#: reference/lexical_analysis.rst:26 +#: reference/lexical_analysis.rst:90 msgid "line structure" msgstr "" -#: reference/lexical_analysis.rst:36 +#: reference/lexical_analysis.rst:100 msgid "logical line" msgstr "" -#: reference/lexical_analysis.rst:36 reference/lexical_analysis.rst:115 -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:100 reference/lexical_analysis.rst:205 +#: reference/lexical_analysis.rst:710 msgid "physical line" msgstr "" -#: reference/lexical_analysis.rst:36 reference/lexical_analysis.rst:115 +#: reference/lexical_analysis.rst:100 reference/lexical_analysis.rst:205 msgid "line joining" msgstr "" -#: reference/lexical_analysis.rst:36 +#: reference/lexical_analysis.rst:100 msgid "NEWLINE token" msgstr "" -#: reference/lexical_analysis.rst:68 +#: reference/lexical_analysis.rst:146 msgid "comment" msgstr "" -#: reference/lexical_analysis.rst:68 +#: reference/lexical_analysis.rst:146 msgid "hash character" msgstr "" -#: reference/lexical_analysis.rst:68 reference/lexical_analysis.rst:82 +#: reference/lexical_analysis.rst:146 reference/lexical_analysis.rst:160 msgid "# (hash)" msgstr "" -#: reference/lexical_analysis.rst:82 +#: reference/lexical_analysis.rst:160 msgid "source character set" msgstr "" -#: reference/lexical_analysis.rst:82 +#: reference/lexical_analysis.rst:160 msgid "encoding declarations (source file)" msgstr "" -#: reference/lexical_analysis.rst:82 +#: reference/lexical_analysis.rst:160 msgid "source encoding declaration" msgstr "" -#: reference/lexical_analysis.rst:115 +#: reference/lexical_analysis.rst:205 msgid "line continuation" msgstr "" -#: reference/lexical_analysis.rst:115 +#: reference/lexical_analysis.rst:205 msgid "backslash character" msgstr "" -#: reference/lexical_analysis.rst:160 +#: reference/lexical_analysis.rst:250 msgid "blank line" msgstr "" -#: reference/lexical_analysis.rst:176 +#: reference/lexical_analysis.rst:266 msgid "indentation" msgstr "" -#: reference/lexical_analysis.rst:176 +#: reference/lexical_analysis.rst:266 msgid "leading whitespace" msgstr "" -#: reference/lexical_analysis.rst:176 -msgid "space" -msgstr "" - -#: reference/lexical_analysis.rst:176 -msgid "tab" -msgstr "" - -#: reference/lexical_analysis.rst:176 +#: reference/lexical_analysis.rst:266 msgid "grouping" msgstr "" -#: reference/lexical_analysis.rst:176 +#: reference/lexical_analysis.rst:266 msgid "statement grouping" msgstr "" -#: reference/lexical_analysis.rst:204 +#: reference/lexical_analysis.rst:294 msgid "INDENT token" msgstr "" -#: reference/lexical_analysis.rst:204 +#: reference/lexical_analysis.rst:294 msgid "DEDENT token" msgstr "" -#: reference/lexical_analysis.rst:294 +#: reference/lexical_analysis.rst:384 msgid "identifier" msgstr "" -#: reference/lexical_analysis.rst:294 +#: reference/lexical_analysis.rst:384 msgid "name" msgstr "" -#: reference/lexical_analysis.rst:373 reference/lexical_analysis.rst:397 +#: reference/lexical_analysis.rst:463 reference/lexical_analysis.rst:487 msgid "keyword" msgstr "" -#: reference/lexical_analysis.rst:373 +#: reference/lexical_analysis.rst:463 msgid "reserved word" msgstr "" -#: reference/lexical_analysis.rst:397 +#: reference/lexical_analysis.rst:487 msgid "soft keyword" msgstr "" -#: reference/lexical_analysis.rst:417 +#: reference/lexical_analysis.rst:507 msgid "_, identifiers" msgstr "" -#: reference/lexical_analysis.rst:417 +#: reference/lexical_analysis.rst:507 msgid "__, identifiers" msgstr "" -#: reference/lexical_analysis.rst:473 +#: reference/lexical_analysis.rst:563 msgid "literal" msgstr "" -#: reference/lexical_analysis.rst:473 +#: reference/lexical_analysis.rst:563 msgid "constant" msgstr "" -#: reference/lexical_analysis.rst:478 reference/lexical_analysis.rst:520 +#: reference/lexical_analysis.rst:575 reference/lexical_analysis.rst:618 +#: reference/lexical_analysis.rst:643 msgid "string literal" msgstr "" -#: reference/lexical_analysis.rst:478 reference/lexical_analysis.rst:533 +#: reference/lexical_analysis.rst:575 reference/lexical_analysis.rst:911 msgid "bytes literal" msgstr "" -#: reference/lexical_analysis.rst:478 +#: reference/lexical_analysis.rst:575 msgid "ASCII" msgstr "" -#: reference/lexical_analysis.rst:478 +#: reference/lexical_analysis.rst:575 msgid "' (single quote)" msgstr "" -#: reference/lexical_analysis.rst:478 +#: reference/lexical_analysis.rst:575 msgid "\" (double quote)" msgstr "" -#: reference/lexical_analysis.rst:478 -msgid "u'" -msgstr "" - -#: reference/lexical_analysis.rst:478 -msgid "u\"" -msgstr "" - -#: reference/lexical_analysis.rst:520 +#: reference/lexical_analysis.rst:618 msgid "triple-quoted string" msgstr "" -#: reference/lexical_analysis.rst:520 -msgid "Unicode Consortium" -msgstr "" - -#: reference/lexical_analysis.rst:520 -msgid "raw string" -msgstr "" - -#: reference/lexical_analysis.rst:520 +#: reference/lexical_analysis.rst:618 msgid "\"\"\"" msgstr "" -#: reference/lexical_analysis.rst:520 +#: reference/lexical_analysis.rst:618 msgid "'''" msgstr "" -#: reference/lexical_analysis.rst:533 -msgid "b'" -msgstr "" - -#: reference/lexical_analysis.rst:533 -msgid "b\"" -msgstr "" - -#: reference/lexical_analysis.rst:542 -msgid "r'" -msgstr "" - -#: reference/lexical_analysis.rst:542 -msgid "raw string literal" -msgstr "" - -#: reference/lexical_analysis.rst:542 -msgid "r\"" -msgstr "" - -#: reference/lexical_analysis.rst:560 -msgid "f'" -msgstr "" - -#: reference/lexical_analysis.rst:560 reference/lexical_analysis.rst:738 -msgid "formatted string literal" +#: reference/lexical_analysis.rst:643 +msgid "u'" msgstr "" -#: reference/lexical_analysis.rst:560 -msgid "f\"" +#: reference/lexical_analysis.rst:643 +msgid "u\"" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "escape sequence" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "Standard C" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "C" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "\\ (backslash)" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "\\\\" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "\\a" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "\\b" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "\\f" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "\\n" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "\\r" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "\\t" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "\\v" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "\\x" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "\\N" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "\\u" msgstr "" -#: reference/lexical_analysis.rst:573 +#: reference/lexical_analysis.rst:710 msgid "\\U" msgstr "" -#: reference/lexical_analysis.rst:689 +#: reference/lexical_analysis.rst:886 msgid "unrecognized escape sequence" msgstr "" -#: reference/lexical_analysis.rst:738 +#: reference/lexical_analysis.rst:911 +msgid "b'" +msgstr "" + +#: reference/lexical_analysis.rst:911 +msgid "b\"" +msgstr "" + +#: reference/lexical_analysis.rst:938 +msgid "r'" +msgstr "" + +#: reference/lexical_analysis.rst:938 +msgid "raw string literal" +msgstr "" + +#: reference/lexical_analysis.rst:938 +msgid "r\"" +msgstr "" + +#: reference/lexical_analysis.rst:969 +msgid "formatted string literal" +msgstr "" + +#: reference/lexical_analysis.rst:969 msgid "interpolated string literal" msgstr "" -#: reference/lexical_analysis.rst:738 +#: reference/lexical_analysis.rst:969 msgid "string" msgstr "" -#: reference/lexical_analysis.rst:738 +#: reference/lexical_analysis.rst:969 msgid "formatted literal" msgstr "" -#: reference/lexical_analysis.rst:738 +#: reference/lexical_analysis.rst:969 msgid "interpolated literal" msgstr "" -#: reference/lexical_analysis.rst:738 +#: reference/lexical_analysis.rst:969 msgid "f-string" msgstr "" -#: reference/lexical_analysis.rst:738 +#: reference/lexical_analysis.rst:969 msgid "fstring" msgstr "" -#: reference/lexical_analysis.rst:738 +#: reference/lexical_analysis.rst:969 +msgid "f'" +msgstr "" + +#: reference/lexical_analysis.rst:969 +msgid "f\"" +msgstr "" + +#: reference/lexical_analysis.rst:969 msgid "{} (curly brackets)" msgstr "" -#: reference/lexical_analysis.rst:738 +#: reference/lexical_analysis.rst:969 msgid "in formatted string literal" msgstr "" -#: reference/lexical_analysis.rst:738 +#: reference/lexical_analysis.rst:969 msgid "! (exclamation)" msgstr "" -#: reference/lexical_analysis.rst:738 +#: reference/lexical_analysis.rst:969 msgid ": (colon)" msgstr "" -#: reference/lexical_analysis.rst:738 +#: reference/lexical_analysis.rst:969 msgid "= (equals)" msgstr "" -#: reference/lexical_analysis.rst:738 +#: reference/lexical_analysis.rst:969 msgid "for help in debugging using string literals" msgstr "" -#: reference/lexical_analysis.rst:921 +#: reference/lexical_analysis.rst:1196 msgid "number" msgstr "" -#: reference/lexical_analysis.rst:921 +#: reference/lexical_analysis.rst:1196 msgid "numeric literal" msgstr "" -#: reference/lexical_analysis.rst:921 reference/lexical_analysis.rst:943 +#: reference/lexical_analysis.rst:1196 reference/lexical_analysis.rst:1218 msgid "integer literal" msgstr "" -#: reference/lexical_analysis.rst:921 +#: reference/lexical_analysis.rst:1196 msgid "floating-point literal" msgstr "" -#: reference/lexical_analysis.rst:921 +#: reference/lexical_analysis.rst:1196 msgid "hexadecimal literal" msgstr "" -#: reference/lexical_analysis.rst:921 +#: reference/lexical_analysis.rst:1196 msgid "octal literal" msgstr "" -#: reference/lexical_analysis.rst:921 +#: reference/lexical_analysis.rst:1196 msgid "binary literal" msgstr "" -#: reference/lexical_analysis.rst:921 +#: reference/lexical_analysis.rst:1196 msgid "decimal literal" msgstr "" -#: reference/lexical_analysis.rst:921 +#: reference/lexical_analysis.rst:1196 msgid "imaginary literal" msgstr "" -#: reference/lexical_analysis.rst:921 +#: reference/lexical_analysis.rst:1196 msgid "complex literal" msgstr "" -#: reference/lexical_analysis.rst:943 +#: reference/lexical_analysis.rst:1218 msgid "0b" msgstr "" -#: reference/lexical_analysis.rst:943 +#: reference/lexical_analysis.rst:1218 msgid "0o" msgstr "" -#: reference/lexical_analysis.rst:943 +#: reference/lexical_analysis.rst:1218 msgid "0x" msgstr "" -#: reference/lexical_analysis.rst:943 reference/lexical_analysis.rst:1018 +#: reference/lexical_analysis.rst:1218 reference/lexical_analysis.rst:1293 msgid "_ (underscore)" msgstr "" -#: reference/lexical_analysis.rst:943 reference/lexical_analysis.rst:1018 -#: reference/lexical_analysis.rst:1082 +#: reference/lexical_analysis.rst:1218 reference/lexical_analysis.rst:1293 +#: reference/lexical_analysis.rst:1357 msgid "in numeric literal" msgstr "" -#: reference/lexical_analysis.rst:1018 +#: reference/lexical_analysis.rst:1293 msgid ". (dot)" msgstr "" -#: reference/lexical_analysis.rst:1018 +#: reference/lexical_analysis.rst:1293 msgid "e" msgstr "" -#: reference/lexical_analysis.rst:1082 +#: reference/lexical_analysis.rst:1357 msgid "j" msgstr "" -#: reference/lexical_analysis.rst:1150 +#: reference/lexical_analysis.rst:1427 msgid "operators" msgstr "" -#: reference/lexical_analysis.rst:1167 +#: reference/lexical_analysis.rst:1427 msgid "delimiters" msgstr "" diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index 63bb47b5..dad2c863 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -501,8 +501,8 @@ msgstr "" 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." +"statement in the same code block. Trying to delete an unbound name raises " +"a :exc:`NameError` exception." msgstr "" #: reference/simple_stmts.rst:473 @@ -925,7 +925,7 @@ msgid "" "the :keyword:`import` statement occurs." msgstr "" -#: reference/simple_stmts.rst:834 +#: reference/simple_stmts.rst:837 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 " @@ -938,14 +938,14 @@ msgid "" "API (such as library modules which were imported and used within the module)." msgstr "" -#: reference/simple_stmts.rst:844 +#: reference/simple_stmts.rst:847 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 "" -#: reference/simple_stmts.rst:851 +#: reference/simple_stmts.rst:854 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 " @@ -962,31 +962,31 @@ msgid "" "the :ref:`relativeimports` section." msgstr "" -#: reference/simple_stmts.rst:865 +#: reference/simple_stmts.rst:868 msgid "" ":func:`importlib.import_module` is provided to support applications that " "determine dynamically the modules to be loaded." msgstr "" -#: reference/simple_stmts.rst:868 +#: reference/simple_stmts.rst:871 msgid "" "Raises an :ref:`auditing event ` ``import`` with arguments " "``module``, ``filename``, ``sys.path``, ``sys.meta_path``, ``sys." "path_hooks``." msgstr "" -#: reference/simple_stmts.rst:873 +#: reference/simple_stmts.rst:876 msgid "Future statements" msgstr "" -#: reference/simple_stmts.rst:879 +#: reference/simple_stmts.rst:882 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 "" -#: reference/simple_stmts.rst:883 +#: reference/simple_stmts.rst:886 msgid "" "The future statement is intended to ease migration to future versions of " "Python that introduce incompatible changes to the language. It allows use " @@ -994,35 +994,35 @@ msgid "" "feature becomes standard." msgstr "" -#: reference/simple_stmts.rst:895 +#: reference/simple_stmts.rst:898 msgid "" "A future statement must appear near the top of the module. The only lines " "that can appear before a future statement are:" msgstr "" -#: reference/simple_stmts.rst:898 +#: reference/simple_stmts.rst:901 msgid "the module docstring (if any)," msgstr "" -#: reference/simple_stmts.rst:899 +#: reference/simple_stmts.rst:902 msgid "comments," msgstr "" -#: reference/simple_stmts.rst:900 +#: reference/simple_stmts.rst:903 msgid "blank lines, and" msgstr "" -#: reference/simple_stmts.rst:901 +#: reference/simple_stmts.rst:904 msgid "other future statements." msgstr "" -#: reference/simple_stmts.rst:903 +#: reference/simple_stmts.rst:906 msgid "" "The only feature that requires using the future statement is ``annotations`` " "(see :pep:`563`)." msgstr "" -#: reference/simple_stmts.rst:906 +#: reference/simple_stmts.rst:909 msgid "" "All historical features enabled by the future statement are still recognized " "by Python 3. The list includes ``absolute_import``, ``division``, " @@ -1032,7 +1032,7 @@ msgid "" "compatibility." msgstr "" -#: reference/simple_stmts.rst:913 +#: reference/simple_stmts.rst:916 msgid "" "A future statement is recognized and treated specially at compile time: " "Changes to the semantics of core constructs are often implemented by " @@ -1042,41 +1042,41 @@ msgid "" "cannot be pushed off until runtime." msgstr "" -#: reference/simple_stmts.rst:920 +#: reference/simple_stmts.rst:923 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 "" -#: reference/simple_stmts.rst:924 +#: reference/simple_stmts.rst:927 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 "" -#: reference/simple_stmts.rst:928 +#: reference/simple_stmts.rst:931 msgid "" "The interesting runtime semantics depend on the specific feature enabled by " "the future statement." msgstr "" -#: reference/simple_stmts.rst:931 +#: reference/simple_stmts.rst:934 msgid "Note that there is nothing special about the statement::" msgstr "" -#: reference/simple_stmts.rst:933 +#: reference/simple_stmts.rst:936 msgid "import __future__ [as name]" msgstr "" -#: reference/simple_stmts.rst:935 +#: reference/simple_stmts.rst:938 msgid "" "That is not a future statement; it's an ordinary import statement with no " "special semantics or syntax restrictions." msgstr "" -#: reference/simple_stmts.rst:938 +#: reference/simple_stmts.rst:941 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 " @@ -1085,7 +1085,7 @@ msgid "" "--- see the documentation of that function for details." msgstr "" -#: reference/simple_stmts.rst:944 +#: reference/simple_stmts.rst:947 msgid "" "A future statement typed at an interactive interpreter prompt will take " "effect for the rest of the interpreter session. If an interpreter is " @@ -1094,19 +1094,19 @@ msgid "" "interactive session started after the script is executed." msgstr "" -#: reference/simple_stmts.rst:952 +#: reference/simple_stmts.rst:955 msgid ":pep:`236` - Back to the __future__" msgstr "" -#: reference/simple_stmts.rst:953 +#: reference/simple_stmts.rst:956 msgid "The original proposal for the __future__ mechanism." msgstr "" -#: reference/simple_stmts.rst:959 +#: reference/simple_stmts.rst:962 msgid "The :keyword:`!global` statement" msgstr "" -#: reference/simple_stmts.rst:969 +#: reference/simple_stmts.rst:972 msgid "" "The :keyword:`global` statement causes the listed identifiers to be " "interpreted as globals. It would be impossible to assign to a global " @@ -1114,14 +1114,23 @@ msgid "" "globals without being declared global." msgstr "" -#: reference/simple_stmts.rst:974 +#: reference/simple_stmts.rst:977 +msgid "" +"The :keyword:`!global` statement applies to the entire current scope " +"(module, function body or class definition). A :exc:`SyntaxError` is raised " +"if a variable is used or assigned to prior to its global declaration in the " +"scope." +msgstr "" + +#: reference/simple_stmts.rst:982 msgid "" -"The :keyword:`global` statement applies to the entire scope of a function or " -"class body. A :exc:`SyntaxError` is raised if a variable is used or assigned " -"to prior to its global declaration in the scope." +"At the module level, all variables are global, so a :keyword:`!global` " +"statement has no effect. However, variables must still not be used or " +"assigned to prior to their :keyword:`!global` declaration. This requirement " +"is relaxed in the interactive prompt (:term:`REPL`)." msgstr "" -#: reference/simple_stmts.rst:983 +#: reference/simple_stmts.rst:993 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` " @@ -1133,11 +1142,11 @@ msgid "" "func:`compile` functions." msgstr "" -#: reference/simple_stmts.rst:995 +#: reference/simple_stmts.rst:1005 msgid "The :keyword:`!nonlocal` statement" msgstr "" -#: reference/simple_stmts.rst:1003 +#: reference/simple_stmts.rst:1013 msgid "" "When the definition of a function or class is nested (enclosed) within the " "definitions of other functions, its nonlocal scopes are the local scopes of " @@ -1149,64 +1158,64 @@ msgid "" "`SyntaxError` is raised." msgstr "" -#: reference/simple_stmts.rst:1012 +#: reference/simple_stmts.rst:1022 msgid "" "The :keyword:`nonlocal` statement applies to the entire scope of a function " "or class body. A :exc:`SyntaxError` is raised if a variable is used or " "assigned to prior to its nonlocal declaration in the scope." msgstr "" -#: reference/simple_stmts.rst:1018 +#: reference/simple_stmts.rst:1028 msgid ":pep:`3104` - Access to Names in Outer Scopes" msgstr "" -#: reference/simple_stmts.rst:1019 +#: reference/simple_stmts.rst:1029 msgid "The specification for the :keyword:`nonlocal` statement." msgstr "" -#: reference/simple_stmts.rst:1021 +#: reference/simple_stmts.rst:1031 msgid "" "**Programmer's note:** :keyword:`nonlocal` is a directive to the parser and " "applies only to code parsed along with it. See the note for the :keyword:" "`global` statement." msgstr "" -#: reference/simple_stmts.rst:1029 +#: reference/simple_stmts.rst:1039 msgid "The :keyword:`!type` statement" msgstr "" -#: reference/simple_stmts.rst:1036 +#: reference/simple_stmts.rst:1046 msgid "" "The :keyword:`!type` statement declares a type alias, which is an instance " "of :class:`typing.TypeAliasType`." msgstr "" -#: reference/simple_stmts.rst:1039 +#: reference/simple_stmts.rst:1049 msgid "For example, the following statement creates a type alias::" msgstr "" -#: reference/simple_stmts.rst:1041 +#: reference/simple_stmts.rst:1051 msgid "type Point = tuple[float, float]" msgstr "" -#: reference/simple_stmts.rst:1043 +#: reference/simple_stmts.rst:1053 msgid "This code is roughly equivalent to::" msgstr "" -#: reference/simple_stmts.rst:1045 +#: reference/simple_stmts.rst:1055 msgid "" "annotation-def VALUE_OF_Point():\n" " return tuple[float, float]\n" "Point = typing.TypeAliasType(\"Point\", VALUE_OF_Point())" msgstr "" -#: reference/simple_stmts.rst:1049 +#: reference/simple_stmts.rst:1059 msgid "" "``annotation-def`` indicates an :ref:`annotation scope `, " "which behaves mostly like a function, but with several small differences." msgstr "" -#: reference/simple_stmts.rst:1052 +#: reference/simple_stmts.rst:1062 msgid "" "The value of the type alias is evaluated in the annotation scope. It is not " "evaluated when the type alias is created, but only when the value is " @@ -1215,21 +1224,21 @@ msgid "" "not yet defined." msgstr "" -#: reference/simple_stmts.rst:1058 +#: reference/simple_stmts.rst:1068 msgid "" "Type aliases may be made generic by adding a :ref:`type parameter list ` after the name. See :ref:`generic-type-aliases` for more." msgstr "" -#: reference/simple_stmts.rst:1061 +#: reference/simple_stmts.rst:1071 msgid ":keyword:`!type` is a :ref:`soft keyword `." msgstr "" -#: reference/simple_stmts.rst:1067 +#: reference/simple_stmts.rst:1077 msgid ":pep:`695` - Type Parameter Syntax" msgstr "" -#: reference/simple_stmts.rst:1068 +#: reference/simple_stmts.rst:1078 msgid "" "Introduced the :keyword:`!type` statement and syntax for generic classes and " "functions." @@ -1242,8 +1251,8 @@ msgstr "" #: reference/simple_stmts.rst:39 reference/simple_stmts.rst:263 #: reference/simple_stmts.rst:384 reference/simple_stmts.rst:449 #: reference/simple_stmts.rst:488 reference/simple_stmts.rst:561 -#: reference/simple_stmts.rst:720 reference/simple_stmts.rst:875 -#: reference/simple_stmts.rst:997 reference/simple_stmts.rst:1031 +#: reference/simple_stmts.rst:720 reference/simple_stmts.rst:878 +#: reference/simple_stmts.rst:1007 reference/simple_stmts.rst:1041 msgid "statement" msgstr "" @@ -1256,7 +1265,7 @@ msgstr "" msgid "list" msgstr "" -#: reference/simple_stmts.rst:978 +#: reference/simple_stmts.rst:988 msgid "built-in function" msgstr "" @@ -1318,12 +1327,12 @@ msgstr "" msgid "assignment" msgstr "" -#: reference/simple_stmts.rst:745 reference/simple_stmts.rst:961 +#: reference/simple_stmts.rst:745 reference/simple_stmts.rst:964 msgid "binding" msgstr "" #: reference/simple_stmts.rst:462 reference/simple_stmts.rst:800 -#: reference/simple_stmts.rst:961 +#: reference/simple_stmts.rst:964 msgid "name" msgstr "" @@ -1343,8 +1352,8 @@ msgstr "" msgid "target" msgstr "" -#: reference/simple_stmts.rst:384 reference/simple_stmts.rst:961 -#: reference/simple_stmts.rst:997 +#: reference/simple_stmts.rst:384 reference/simple_stmts.rst:964 +#: reference/simple_stmts.rst:1007 msgid ", (comma)" msgstr "" @@ -1517,7 +1526,7 @@ msgstr "" msgid "deletion" msgstr "" -#: reference/simple_stmts.rst:961 +#: reference/simple_stmts.rst:964 msgid "global" msgstr "" @@ -1622,7 +1631,7 @@ msgstr "" msgid "continue" msgstr "" -#: reference/simple_stmts.rst:848 +#: reference/simple_stmts.rst:851 msgid "import" msgstr "" @@ -1654,42 +1663,42 @@ msgstr "" msgid "__all__ (optional module attribute)" msgstr "" -#: reference/simple_stmts.rst:848 +#: reference/simple_stmts.rst:851 msgid "relative" msgstr "" -#: reference/simple_stmts.rst:875 +#: reference/simple_stmts.rst:878 msgid "future" msgstr "" -#: reference/simple_stmts.rst:875 +#: reference/simple_stmts.rst:878 msgid "__future__" msgstr "" -#: reference/simple_stmts.rst:875 +#: reference/simple_stmts.rst:878 msgid "future statement" msgstr "" -#: reference/simple_stmts.rst:997 +#: reference/simple_stmts.rst:1007 msgid "identifier list" msgstr "" -#: reference/simple_stmts.rst:978 +#: reference/simple_stmts.rst:988 msgid "exec" msgstr "" -#: reference/simple_stmts.rst:978 +#: reference/simple_stmts.rst:988 msgid "eval" msgstr "" -#: reference/simple_stmts.rst:978 +#: reference/simple_stmts.rst:988 msgid "compile" msgstr "" -#: reference/simple_stmts.rst:997 +#: reference/simple_stmts.rst:1007 msgid "nonlocal" msgstr "" -#: reference/simple_stmts.rst:1031 +#: reference/simple_stmts.rst:1041 msgid "type" msgstr "" diff --git a/reference/toplevel_components.po b/reference/toplevel_components.po index f605736a..2203d07e 100644 --- a/reference/toplevel_components.po +++ b/reference/toplevel_components.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/sphinx.po b/sphinx.po index 59e49450..794061c3 100644 --- a/sphinx.po +++ b/sphinx.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2024-05-08 09:17+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -52,167 +52,123 @@ msgstr "Τελευταία ενημέρωση στις: %(last_updated)s." #: tools/templates/download.html:34 msgid "" -"To download an archive containing all the documents for this version of\n" -"Python in one of various formats, follow one of links in this table." +"Download an archive containing all the documentation for this version of " +"Python:" msgstr "" -"Για λήψη ενός αρχείου που περιέχει όλα τα έγγραφα για αυτήν την έκδοση της\n" -"Python σε μία από τις διάφορες μορφές, ακολουθήστε έναν από τους συνδέσμου " -"σε αυτόν τον πίνακα.σ" +"Για λήψη ενός αρχείου που περιέχει όλα τα έγγραφα για αυτήν την έκδοση της " +"Python:" -#: tools/templates/download.html:39 +#: tools/templates/download.html:38 msgid "Format" msgstr "Διάταξη" -#: tools/templates/download.html:40 +#: tools/templates/download.html:39 msgid "Packed as .zip" msgstr "Συσκευασμένο ως .zip" -#: tools/templates/download.html:41 +#: tools/templates/download.html:40 msgid "Packed as .tar.bz2" msgstr "Συσκευασμένο ως .tar.bz2" -#: tools/templates/download.html:44 -msgid "PDF" -msgstr "PDF" - -#: tools/templates/download.html:45 -msgid "" -"Download " -"(ca. %(download_size)s MiB)" -msgstr "" -"Download " -"(ca. %(download_size)s MiB)" - -#: tools/templates/download.html:46 -msgid "" -"Download (ca. %(download_size)s MiB)" -msgstr "" -"Download (ca. %(download_size)s MiB)" - -#: tools/templates/download.html:49 +#: tools/templates/download.html:43 msgid "HTML" msgstr "HTML" -#: tools/templates/download.html:50 +#: tools/templates/download.html:44 msgid "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" msgstr "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" -#: tools/templates/download.html:51 +#: tools/templates/download.html:45 msgid "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" msgstr "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" -#: tools/templates/download.html:54 +#: tools/templates/download.html:48 msgid "Plain text" msgstr "Απλό κείμενο" -#: tools/templates/download.html:55 +#: tools/templates/download.html:49 msgid "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" msgstr "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" -#: tools/templates/download.html:56 +#: tools/templates/download.html:50 msgid "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" msgstr "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" -#: tools/templates/download.html:59 +#: tools/templates/download.html:53 msgid "Texinfo" msgstr "Texinfo" -#: tools/templates/download.html:60 +#: tools/templates/download.html:54 msgid "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" msgstr "" -"Download " -"(ca. %(download_size)s MiB)" +"Download" -#: tools/templates/download.html:61 +#: tools/templates/download.html:55 msgid "" "Download (ca. %(download_size)s MiB)" +"a>" msgstr "" "Download (ca. %(download_size)s MiB)" +"a>" -#: tools/templates/download.html:64 +#: tools/templates/download.html:58 msgid "EPUB" msgstr "EPUB" -#: tools/templates/download.html:65 -msgid "" -"Download (ca. " -"%(download_size)s MiB)" -msgstr "" -"Download (ca. " -"%(download_size)s MiB)" - -#: tools/templates/download.html:70 -msgid "These archives contain all the content in the documentation." -msgstr "Αυτά τα αρχεία περιέχουν όλο το περιεχόμενο της τεκμηρίωσης." - -#: tools/templates/download.html:73 -msgid "Unpacking" -msgstr "Αποσυμπίεση" +#: tools/templates/download.html:59 +msgid "Download" +msgstr "Download" -#: tools/templates/download.html:75 +#: tools/templates/download.html:64 msgid "" -"Unix users should download the .tar.bz2 archives; these are bzipped tar\n" -"archives and can be handled in the usual way using tar and the bzip2\n" -"program. The Info-ZIP unzip " -"program can be\n" -"used to handle the ZIP archives if desired. The .tar.bz2 archives provide " -"the\n" -"best compression and fastest download times." +"\n" +"We no longer provide pre-built PDFs of the documentation.\n" +"To build a PDF archive, follow the instructions in the\n" +"Developer's Guide\n" +"and run make dist-pdf in the Doc/ directory of a " +"copy of the CPython repository.\n" msgstr "" -"Οι χρήστες Unix θα πρέπει να κατεβάσουν τα αρχεία .tar.bz2· αυτά τα αρχεία " -"tar\n" -"archives με μορφή bzip μπορούν να τα χειριστούν με τον συνήθη τρόπο " -"χρησιμοποιώντας το tar και το πρόγραμμα bzip2\n" -". Το πρόγραμμα αποσυμπίεσης Info-" -"ZIP μπορεί να\n" -" χρησιμοποιηθεί για το χειρισμό των αρχείων ZIP εάν το επιθυμείτε. Τα " -"αρχεία .tar.bz2 παρέχουν την καλύτερη συμπίεση και τους ταχύτερους χρόνους " -"λήψης." - -#: tools/templates/download.html:81 +"\n" +"Δεν παρέχουμε πλέον προ-κατασκευασμένα PDF της τεκμηρίωσης.\n" +"Για να δημιουργήσετε ένα αρχείο PDF, ακολουθήστε τις οδηγίες στο\n" +"Developer's Guide\n" +"και εκτελέστε make dist-pdf στον κατάλογο Doc/ " +"ενός αντιγράφου του αποθετηρίου CPython.\n" + +#: tools/templates/download.html:71 msgid "" -"Windows users can use the ZIP archives since those are customary on that\n" -"platform. These are created on Unix using the Info-ZIP zip program." +"\n" +"See the directory " +"listing\n" +"for file sizes." msgstr "" -"Οι χρήστες των Windows μπορούν να χρησιμοποιήσουν τα αρχεία ZIP αφού αυτά " -"είναι συνηθισμένα σε αυτήν την\n" -"πλατφόρμα. Αυτά δημιουργούνται στο Unix χρησιμοποιώντας το πρόγραμμα zip " -"Info-ZIP." +"\n" +"Δείτε τον directory listing\n" +"για τα μεγέθη των αρχείων." -#: tools/templates/download.html:85 +#: tools/templates/download.html:75 msgid "Problems" msgstr "Προβλήματα" -#: tools/templates/download.html:87 +#: tools/templates/download.html:77 msgid "" -"If you have comments or suggestions for the Python documentation, please " -"send\n" -"email to docs@python.org." +"Open an issue\n" +"if you have comments or suggestions for the Python documentation." msgstr "" -"Εάν έχετε σχόλια ή προτάσεις για την τεκμηρίωση της Python, στείλτε\n" -"email στη διεύθυνση docs@python.org." +"Ανοίξτε ένα θέμα\n" +"εάν έχετε σχόλια ή προτάσεις για την τεκμηρίωση της Python." #: tools/templates/dummy.html:6 msgid "Availability" @@ -275,14 +231,12 @@ msgid "CPython implementation detail:" msgstr "Λεπτομέρεια υλοποίησης CPython:" #: tools/templates/dummy.html:30 -msgid "" -"Deprecated since version {deprecated}, will be removed in version {removed}" -msgstr "" -"Καταργήθηκε στην έκδοση {deprecated}, θα αφαιρεθεί στην έκδοση {removed}" +msgid "Deprecated since version %s, will be removed in version %s" +msgstr "Καταργήθηκε από την έκδοση %s, θα αφαιρεθεί στην έκδοση %s" #: tools/templates/dummy.html:31 -msgid "Deprecated since version {deprecated}, removed in version {removed}" -msgstr "Καταργήθηκε στην έκδοση {deprecated}, αφαιρέθηκε στην έκδοση {removed}" +msgid "Deprecated since version %s, removed in version %s" +msgstr "Καταργήθηκε από την έκδοση %s, αφαιρέθηκε στην έκδοση %s" #: tools/templates/dummy.html:35 msgid "in development" @@ -549,6 +503,66 @@ msgstr "" msgid "the current stable release" msgstr "η τρέχουσα σταθερή έκδοση" +#~ msgid "PDF" +#~ msgstr "PDF" + +#~ msgid "" +#~ "Download (ca. %(download_size)s MiB)" +#~ msgstr "" +#~ "Download (ca. %(download_size)s MiB)" + +#~ msgid "" +#~ "Download (ca. %(download_size)s MiB)" +#~ msgstr "" +#~ "Download (ca. %(download_size)s MiB)" + +#~ msgid "These archives contain all the content in the documentation." +#~ msgstr "Αυτά τα αρχεία περιέχουν όλο το περιεχόμενο της τεκμηρίωσης." + +#~ msgid "Unpacking" +#~ msgstr "Αποσυμπίεση" + +#~ msgid "" +#~ "Unix users should download the .tar.bz2 archives; these are bzipped tar\n" +#~ "archives and can be handled in the usual way using tar and the bzip2\n" +#~ "program. The Info-ZIP " +#~ "unzip program can be\n" +#~ "used to handle the ZIP archives if desired. The .tar.bz2 archives provide " +#~ "the\n" +#~ "best compression and fastest download times." +#~ msgstr "" +#~ "Οι χρήστες Unix θα πρέπει να κατεβάσουν τα αρχεία .tar.bz2· αυτά τα " +#~ "αρχεία tar\n" +#~ "archives με μορφή bzip μπορούν να τα χειριστούν με τον συνήθη τρόπο " +#~ "χρησιμοποιώντας το tar και το πρόγραμμα bzip2\n" +#~ ". Το πρόγραμμα αποσυμπίεσης Info-ZIP μπορεί να\n" +#~ " χρησιμοποιηθεί για το χειρισμό των αρχείων ZIP εάν το επιθυμείτε. Τα " +#~ "αρχεία .tar.bz2 παρέχουν την καλύτερη συμπίεση και τους ταχύτερους " +#~ "χρόνους λήψης." + +#~ msgid "" +#~ "Windows users can use the ZIP archives since those are customary on that\n" +#~ "platform. These are created on Unix using the Info-ZIP zip program." +#~ msgstr "" +#~ "Οι χρήστες των Windows μπορούν να χρησιμοποιήσουν τα αρχεία ZIP αφού αυτά " +#~ "είναι συνηθισμένα σε αυτήν την\n" +#~ "πλατφόρμα. Αυτά δημιουργούνται στο Unix χρησιμοποιώντας το πρόγραμμα zip " +#~ "Info-ZIP." + +#~ msgid "" +#~ "If you have comments or suggestions for the Python documentation, please " +#~ "send\n" +#~ "email to docs@python.org." +#~ msgstr "" +#~ "Εάν έχετε σχόλια ή προτάσεις για την τεκμηρίωση της Python, στείλτε\n" +#~ "email στη διεύθυνση docs@python.org." + #~ msgid "Parts of the documentation:" #~ msgstr "Μέρη της τεκμηρίωσης:" diff --git a/tutorial/appendix.po b/tutorial/appendix.po index e65836f3..eebde0a0 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-05-03 22:21+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" @@ -39,26 +39,26 @@ msgstr "" #: tutorial/appendix.rst:17 msgid "" "On Windows, or Unix-like systems with :mod:`curses` support, a new " -"interactive shell is used by default. This one supports color, multiline " -"editing, history browsing, and paste mode. To disable color, see :ref:" -"`using-on-controlling-color` for details. Function keys provide some " -"additional functionality. :kbd:`F1` enters the interactive help browser :mod:" -"`pydoc`. :kbd:`F2` allows for browsing command-line history with neither " -"output nor the :term:`>>>` and :term:`...` prompts. :kbd:`F3` enters \"paste " -"mode\", which makes pasting larger blocks of code easier. Press :kbd:`F3` to " -"return to the regular prompt." +"interactive shell is used by default since Python 3.13. This one supports " +"color, multiline editing, history browsing, and paste mode. To disable " +"color, see :ref:`using-on-controlling-color` for details. Function keys " +"provide some additional functionality. :kbd:`F1` enters the interactive help " +"browser :mod:`pydoc`. :kbd:`F2` allows for browsing command-line history " +"with neither output nor the :term:`>>>` and :term:`...` prompts. :kbd:`F3` " +"enters \"paste mode\", which makes pasting larger blocks of code easier. " +"Press :kbd:`F3` to return to the regular prompt." msgstr "" -"Σε Windows ή συστήματα τύπου Unix με υποστήριξη :mod:`curses`, " -"χρησιμοποιείται από προεπιλογή ένα νέο διαδραστικό shell. Αυτό υποστηρίζει " -"χρώμα, επεξεργασία πολλαπλών γραμμών, περιήγηση ιστορικού και λειτουργία " -"επικόλλησης. Για να απενεργοποιήσετε το χρώμα, δείτε το στο :ref:`using-on-" -"controlling-color` για λεπτομέρειες. Τα πλήκτρα λειτουργιών παρέχουν κάποια " -"πρόσθετη λειτουργικότητα. Το :kbd:`F1` εισέρχεται στο διαδραστικό πρόγραμμα " -"περιήγησης βοήθειας :mod:`pydoc`. Το :kbd:`F2` επιτρέπει την περιήγηση στο " -"ιστορικό γραμμής εντολών χωρίς έξοδο ούτε με τις εντολές :term:`>>>` and :" -"term:`...`. Το :kbd:`F3` εισέρχεται στην \"λειτουργία επικόλλησης\", πράγμα " -"που διευκολύνει την επικόλληση μεγαλύτερων μπλοκ κώδικα. Πατήστε το :kbd:" -"`F3` για να επιστρέψετε στην κανονική προτροπή." +"Σε Windows ή συστήματα τύπου Unix με υποστήριξη :mod:`curses`, ένα νέο " +"διαδραστικό κέλυφος χρησιμοποιείται από προεπιλογή από την Python 3.13. Αυτό " +"υποστηρίζει χρώμα, επεξεργασία πολλαπλών γραμμών, περιήγηση στο ιστορικό και " +"λειτουργία επικόλλησης. Για να απενεργοποιήσετε το χρώμα, δείτε :ref:`using-" +"on-controlling-color` για λεπτομέρειες. Τα πλήκτρα λειτουργιών παρέχουν " +"επιπλέον λειτουργικότητα. :kbd:`F1` εισέρχεται στον διαδραστικό περιηγητή " +"βοήθειας :mod:`pydoc`. :kbd:`F2` επιτρέπει την περιήγηση στο ιστορικό " +"γραμμής εντολών χωρίς έξοδο ή τις προτροπές :term:`>>>` και :term:`...`. :" +"kbd:`F3` εισέρχεται στη \"λειτουργία επικόλλησης\", η οποία καθιστά την " +"επικόλληση μεγαλύτερων μπλοκ κώδικα πιο εύκολη. Πατήστε :kbd:`F3` για να " +"επιστρέψετε στην κανονική προτροπή." #: tutorial/appendix.rst:28 msgid "" diff --git a/tutorial/appetite.po b/tutorial/appetite.po index 2521fea3..0b7ab0d0 100644 --- a/tutorial/appetite.po +++ b/tutorial/appetite.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-08-02 13:10+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: LANGUAGE \n" diff --git a/tutorial/classes.po b/tutorial/classes.po index b0412875..5190344f 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-05-13 19:53+0200\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Anastasios Louka \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -816,12 +816,12 @@ msgstr "x.f()" #: tutorial/classes.rst:362 msgid "" -"In the :class:`!MyClass` example, this will return the string ``'hello " +"If ``x = MyClass()``, as above, 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 "" -"Στο παράδειγμα :class:`!MyClass`, αυτό θα επιστρέψει τη συμβολοσειρά " +"Αν ``x = MyClass()``, όπως παραπάνω, αυτό θα επιστρέψει τη συμβολοσειρά " "``'hello world'``. Ωστόσο, δεν είναι απαραίτητο να καλέσετε μια μέθοδο " "αμέσως: το ``x.f`` είναι ένα αντικείμενο μεθόδου και μπορεί να αποθηκευτεί " "και να κληθεί αργότερα. Για παράδειγμα::" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 2b7e096e..7e7c7dcd 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2024-09-30 23:13+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -549,11 +549,11 @@ msgstr "" "υπάρχει ``break``. Για περισσότερα με τη δήλωση ``try`` και τις εξαιρέσεις, " "δείτε :ref:`tut-handling`." -#: tutorial/controlflow.rst:257 +#: tutorial/controlflow.rst:258 msgid ":keyword:`!pass` Statements" msgstr "Προτάσεις :keyword:`!pass`" -#: tutorial/controlflow.rst:259 +#: tutorial/controlflow.rst:260 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::" @@ -562,7 +562,7 @@ msgstr "" "απαιτείται συντακτικά μια πρόταση, αλλά το πρόγραμμα δεν απαιτεί καμία " "ενέργεια. Για παράδειγμα::" -#: tutorial/controlflow.rst:262 +#: tutorial/controlflow.rst:263 msgid "" ">>> while True:\n" "... pass # Busy-wait for keyboard interrupt (Ctrl+C)\n" @@ -572,11 +572,11 @@ msgstr "" "... pass # Busy-wait for keyboard interrupt (Ctrl+C)\n" "..." -#: tutorial/controlflow.rst:266 +#: tutorial/controlflow.rst:267 msgid "This is commonly used for creating minimal classes::" msgstr "Αυτό χρησιμοποιείται συνήθως για τη δημιουργία ελάχιστων κλάσεων::" -#: tutorial/controlflow.rst:268 +#: tutorial/controlflow.rst:269 msgid "" ">>> class MyEmptyClass:\n" "... pass\n" @@ -586,7 +586,7 @@ msgstr "" "... pass\n" "..." -#: tutorial/controlflow.rst:272 +#: tutorial/controlflow.rst:273 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 " @@ -598,7 +598,7 @@ msgstr "" "επιτρέποντας σας να συνεχίσετε να σκέφτεστε σε ένα πιο αφηρημένο επίπεδο. " "Το :keyword:`!pass` αγνοείται σιωπηλά::" -#: tutorial/controlflow.rst:276 +#: tutorial/controlflow.rst:277 msgid "" ">>> def initlog(*args):\n" "... pass # Remember to implement this!\n" @@ -608,11 +608,26 @@ msgstr "" "... pass # Remember to implement this!\n" "..." -#: tutorial/controlflow.rst:284 +#: tutorial/controlflow.rst:281 +msgid "" +"For this last case, many people use the ellipsis literal :code:`...` instead " +"of :code:`pass`. This use has no special meaning to Python, and is not part " +"of the language definition (you could use any constant expression here), " +"but :code:`...` is used conventionally as a placeholder body as well. See :" +"ref:`bltin-ellipsis-object`." +msgstr "" +"Για αυτήν την τελευταία περίπτωση, πολλοί άνθρωποι χρησιμοποιούν το literale " +"αποσιωπητικών :code:`...` αντί για :code:`pass`. Αυτή η χρήση δεν έχει " +"ειδική σημασία για την Python και δεν αποτελεί μέρος του ορισμού της γλώσσας " +"(θα μπορούσατε να χρησιμοποιήσετε οποιαδήποτε σταθερή έκφραση εδώ), αλλά το :" +"code:`...` χρησιμοποιείται συμβατικά και ως σώμα placeholder. Δείτε :ref:" +"`bltin-ellipsis-object`." + +#: tutorial/controlflow.rst:291 msgid ":keyword:`!match` Statements" msgstr "Προτάσεις :keyword:`!match`" -#: tutorial/controlflow.rst:286 +#: tutorial/controlflow.rst:293 msgid "" "A :keyword:`match` statement takes an expression and compares its value to " "successive patterns given as one or more case blocks. This is superficially " @@ -631,13 +646,13 @@ msgstr "" "ακολουθίας ή ιδιότητες αντικειμένου) από την τιμή σε μεταβλητές. Εάν καμία " "περίπτωση δεν ταιριάζει, κανένας από τους κλάδους δεν εκτελείται." -#: tutorial/controlflow.rst:295 +#: tutorial/controlflow.rst:302 msgid "" "The simplest form compares a subject value against one or more literals::" msgstr "" "Η απλούστερη φόρμα συγκρίνει μια τιμή θέματος με ένα ή περισσότερα literals::" -#: tutorial/controlflow.rst:297 +#: tutorial/controlflow.rst:304 msgid "" "def http_error(status):\n" " match status:\n" @@ -661,7 +676,7 @@ msgstr "" " case _:\n" " return \"Something's wrong with the internet\"" -#: tutorial/controlflow.rst:308 +#: tutorial/controlflow.rst:315 msgid "" "Note the last block: the \"variable name\" ``_`` acts as a *wildcard* and " "never fails to match." @@ -669,14 +684,14 @@ msgstr "" "Σημειώστε το τελευταίο μπλοκ: το \"variable name\" ``_`` λειτουργεί ως " "*μπαλαντέρ* και δεν αποτυγχάνει ποτέ να ταιριάζει." -#: tutorial/controlflow.rst:311 +#: tutorial/controlflow.rst:318 msgid "" "You can combine several literals in a single pattern using ``|`` (\"or\")::" msgstr "" "Μπορείτε να συνδυάσετε πολλά γράμματα σε ένα μόνο μοτίβο χρησιμοποιώντας το " "``|`` (\"ή\")::" -#: tutorial/controlflow.rst:313 +#: tutorial/controlflow.rst:320 msgid "" "case 401 | 403 | 404:\n" " return \"Not allowed\"" @@ -684,7 +699,7 @@ msgstr "" "case 401 | 403 | 404:\n" " return \"Not allowed\"" -#: tutorial/controlflow.rst:316 +#: tutorial/controlflow.rst:323 msgid "" "Patterns can look like unpacking assignments, and can be used to bind " "variables::" @@ -692,7 +707,7 @@ msgstr "" "Τα μοτίβα μπορεί να μοιάζουν με αναθέσεις unpacking, και μπορούν να " "χρησιμοποιηθούν για τη σύνδεση μεταβλητών::" -#: tutorial/controlflow.rst:319 +#: tutorial/controlflow.rst:326 msgid "" "# point is an (x, y) tuple\n" "match point:\n" @@ -720,7 +735,7 @@ msgstr "" " case _:\n" " raise ValueError(\"Not a point\")" -#: tutorial/controlflow.rst:332 +#: tutorial/controlflow.rst:339 msgid "" "Study that one carefully! The first pattern has two literals, and can be " "thought of as an extension of the literal pattern shown above. But the next " @@ -736,7 +751,7 @@ msgstr "" "δύο τιμές, γεγονός που το κάνει εννοιολογικά παρόμοιο με την ανάθεση " "unpacking ``(x, y) = point``." -#: tutorial/controlflow.rst:339 +#: tutorial/controlflow.rst:346 msgid "" "If you are using classes to structure your data you can use the class name " "followed by an argument list resembling a constructor, but with the ability " @@ -747,7 +762,7 @@ msgstr "" "που μοιάζει με έναν κατασκευαστή, αλλά με τη δυνατότητα να συλλαμβάνει " "χαρακτηριστικά σε μεταβλητές::" -#: tutorial/controlflow.rst:343 +#: tutorial/controlflow.rst:350 msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -785,7 +800,7 @@ msgstr "" " case _:\n" " print(\"Not a point\")" -#: tutorial/controlflow.rst:361 +#: tutorial/controlflow.rst:368 msgid "" "You can use positional parameters with some builtin classes that provide an " "ordering for their attributes (e.g. dataclasses). You can also define a " @@ -802,7 +817,7 @@ msgstr "" "ακόλουθα μοτίβα είναι όλα ισοδύναμα (και όλα δεσμεύουν το χαρακτηριστικό " "``y`` στη μεταβλητή ``var``)::" -#: tutorial/controlflow.rst:367 +#: tutorial/controlflow.rst:374 msgid "" "Point(1, var)\n" "Point(1, y=var)\n" @@ -814,7 +829,7 @@ msgstr "" "Point(x=1, y=var)\n" "Point(y=var, x=1)" -#: tutorial/controlflow.rst:372 +#: tutorial/controlflow.rst:379 msgid "" "A recommended way to read patterns is to look at them as an extended form of " "what you would put on the left of an assignment, to understand which " @@ -832,7 +847,7 @@ msgstr "" "παραπάνω) ή ονόματα κλάσεων (αναγνωρίζονται από το \"(...)\" που βρίσκεται " "δίπλα όπως το ``Point`` παραπάνω) δεν ανατίθενται ποτέ." -#: tutorial/controlflow.rst:379 +#: tutorial/controlflow.rst:386 msgid "" "Patterns can be arbitrarily nested. For example, if we have a short list of " "Points, with ``__match_args__`` added, we could match it like this::" @@ -841,7 +856,7 @@ msgstr "" "σύντομη λίστα με πόντους, με προσθήκη ``__match_args__``, θα μπορούσαμε να " "την αντιστοιχίσουμε ως εξής::" -#: tutorial/controlflow.rst:382 +#: tutorial/controlflow.rst:389 msgid "" "class Point:\n" " __match_args__ = ('x', 'y')\n" @@ -879,7 +894,7 @@ msgstr "" " case _:\n" " print(\"Something else\")" -#: tutorial/controlflow.rst:400 +#: tutorial/controlflow.rst:407 msgid "" "We can add an ``if`` clause to a pattern, known as a \"guard\". If the " "guard is false, ``match`` goes on to try the next case block. Note that " @@ -890,7 +905,7 @@ msgstr "" "δοκιμάσει το επόμενο μπλοκ πεζών-κεφαλαίων. Λάβετε υπόψη ότι η σύλληψη της " "τιμής γίνεται πριν ο guard αξιολογηθεί::" -#: tutorial/controlflow.rst:404 +#: tutorial/controlflow.rst:411 msgid "" "match point:\n" " case Point(x, y) if x == y:\n" @@ -904,11 +919,11 @@ msgstr "" " case Point(x, y):\n" " print(f\"Not on the diagonal\")" -#: tutorial/controlflow.rst:410 +#: tutorial/controlflow.rst:417 msgid "Several other key features of this statement:" msgstr "Πολλά άλλα βασικά χαρακτηριστικά αυτής της δήλωσης:" -#: tutorial/controlflow.rst:412 +#: tutorial/controlflow.rst:419 msgid "" "Like unpacking assignments, tuple and list patterns have exactly the same " "meaning and actually match arbitrary sequences. An important exception is " @@ -919,7 +934,7 @@ msgstr "" "ακολουθίες. Μια σημαντική εξαίρεση είναι ότι δεν ταιριάζουν με iterators ή " "συμβολοσειρές." -#: tutorial/controlflow.rst:416 +#: tutorial/controlflow.rst:423 msgid "" "Sequence patterns support extended unpacking: ``[x, y, *rest]`` and ``(x, y, " "*rest)`` work similar to unpacking assignments. The name after ``*`` may " @@ -932,7 +947,7 @@ msgstr "" "αντιστοιχεί σε μια ακολουθία τουλάχιστον δύο στοιχείων χωρίς να δεσμεύει τα " "υπόλοιπα στοιχεία." -#: tutorial/controlflow.rst:421 +#: tutorial/controlflow.rst:428 msgid "" "Mapping patterns: ``{\"bandwidth\": b, \"latency\": l}`` captures the " "``\"bandwidth\"`` and ``\"latency\"`` values from a dictionary. Unlike " @@ -945,17 +960,17 @@ msgstr "" "unpacking όπως το ``**rest``. (Αλλά το ``**_`` θα ήταν περιττό, επομένως " "δεν επιτρέπεται.)" -#: tutorial/controlflow.rst:426 +#: tutorial/controlflow.rst:433 msgid "Subpatterns may be captured using the ``as`` keyword::" msgstr "" "Τα δευτερεύοντα μοτίβα μπορούν να αποτυπωθούν χρησιμοποιώντας το keyword " "``as``::" -#: tutorial/controlflow.rst:428 +#: tutorial/controlflow.rst:435 msgid "case (Point(x1, y1), Point(x2, y2) as p2): ..." msgstr "case (Point(x1, y1), Point(x2, y2) as p2): ..." -#: tutorial/controlflow.rst:430 +#: tutorial/controlflow.rst:437 msgid "" "will capture the second element of the input as ``p2`` (as long as the input " "is a sequence of two points)" @@ -963,7 +978,7 @@ msgstr "" "θα καταγράψει το δεύτερο στοιχείο της εισόδου ως ``p2`` (εφόσον η είσοδος " "είναι μια ακολουθία δύο σημείων)" -#: tutorial/controlflow.rst:433 +#: tutorial/controlflow.rst:440 msgid "" "Most literals are compared by equality, however the singletons ``True``, " "``False`` and ``None`` are compared by identity." @@ -971,7 +986,7 @@ msgstr "" "Τα περισσότερα literals συγκρίνονται με ισότητα, ωστόσο τα singletons " "``True``, ``False`` και ``None`` συγκρίνονται με ταυτότητα." -#: tutorial/controlflow.rst:436 +#: tutorial/controlflow.rst:443 msgid "" "Patterns may use named constants. These must be dotted names to prevent " "them from being interpreted as capture variable::" @@ -979,7 +994,7 @@ msgstr "" "Τα μοτίβα μπορούν να χρησιμοποιούν ονομασμένες σταθερές. Αυτά πρέπει να " "είναι ονόματα με κουκκίδες για να μην ερμηνεύονται ως capture μεταβλητή::" -#: tutorial/controlflow.rst:439 +#: tutorial/controlflow.rst:446 msgid "" "from enum import Enum\n" "class Color(Enum):\n" @@ -1013,7 +1028,7 @@ msgstr "" " case Color.BLUE:\n" " print(\"I'm feeling the blues :(\")" -#: tutorial/controlflow.rst:455 +#: tutorial/controlflow.rst:462 msgid "" "For a more detailed explanation and additional examples, you can look into :" "pep:`636` which is written in a tutorial format." @@ -1021,11 +1036,11 @@ msgstr "" "Για πιο λεπτομερή επεξήγηση και πρόσθετα παραδείγματα, μπορείτε να δείτε το :" "pep:`636` το οποίο είναι γραμμένο σε μορφή εκμάθησης." -#: tutorial/controlflow.rst:461 +#: tutorial/controlflow.rst:468 msgid "Defining Functions" msgstr "Καθορισμός Συναρτήσεων" -#: tutorial/controlflow.rst:463 +#: tutorial/controlflow.rst:470 msgid "" "We can create a function that writes the Fibonacci series to an arbitrary " "boundary::" @@ -1033,7 +1048,7 @@ msgstr "" "Μπορούμε να δημιουργήσουμε μια συνάρτηση που γράφει τη σειρά Fibonacci σε " "ένα αυθαίρετο όριο::" -#: tutorial/controlflow.rst:466 +#: tutorial/controlflow.rst:473 msgid "" ">>> def fib(n): # write Fibonacci series less than n\n" "... \"\"\"Print a Fibonacci series less than n.\"\"\"\n" @@ -1059,7 +1074,7 @@ msgstr "" ">>> fib(2000)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597" -#: tutorial/controlflow.rst:483 +#: tutorial/controlflow.rst:490 msgid "" "The keyword :keyword:`def` introduces a function *definition*. It must be " "followed by the function name and the parenthesized list of formal " @@ -1071,7 +1086,7 @@ msgstr "" "σε παρένθεση. Οι δηλώσεις που σχηματίζουν το σώμα της συνάρτησης ξεκινούν " "από την επόμενη γραμμή και πρέπει να είναι εσοχές." -#: tutorial/controlflow.rst:488 +#: tutorial/controlflow.rst:495 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:" @@ -1090,7 +1105,7 @@ msgstr "" "στον κώδικα· είναι καλή πρακτική να συμπεριλαμβάνονται docstrings στον " "κώδικα που γράφετε, για αυτό κάντε το συνήθεια." -#: tutorial/controlflow.rst:495 +#: tutorial/controlflow.rst:502 msgid "" "The *execution* of a function introduces a new symbol table used for the " "local variables of the function. More precisely, all variable assignments " @@ -1116,7 +1131,7 @@ msgstr "" "μεταβλητές συναρτήσεων που περικλείουν, ονομάζονται ως μια δήλωση :keyword:" "`nonlocal`), αν και μπορεί να αναφέρονται." -#: tutorial/controlflow.rst:506 +#: tutorial/controlflow.rst:513 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 " @@ -1133,7 +1148,7 @@ msgstr "" "αναδρομικά, δημιουργείται ένας νέος πίνακας τοπικών συμβόλων για αυτήν την " "κλήση." -#: tutorial/controlflow.rst:513 +#: tutorial/controlflow.rst:520 msgid "" "A function definition associates the function name with the function object " "in the current symbol table. The interpreter recognizes the object pointed " @@ -1146,7 +1161,7 @@ msgstr "" "από τον χρήστη. Άλλα ονόματα μπορούν επίσης να δείχνουν το ίδιο αντικείμενο " "συνάρτησης και μπορούν επίσης να χρησιμοποιηθούν για πρόσβαση στη συνάρτηση::" -#: tutorial/controlflow.rst:518 +#: tutorial/controlflow.rst:525 msgid "" ">>> fib\n" "\n" @@ -1160,7 +1175,7 @@ msgstr "" ">>> f(100)\n" "0 1 1 2 3 5 8 13 21 34 55 89" -#: tutorial/controlflow.rst:524 +#: tutorial/controlflow.rst:531 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 " @@ -1178,7 +1193,7 @@ msgstr "" "μόνη τιμή που γράφεται. Μπορείτε να το δείτε αν το θέλετε πραγματικά " "χρησιμοποιώντας τη :func:`print`::" -#: tutorial/controlflow.rst:531 +#: tutorial/controlflow.rst:538 msgid "" ">>> fib(0)\n" ">>> print(fib(0))\n" @@ -1188,7 +1203,7 @@ msgstr "" ">>> print(fib(0))\n" "None" -#: tutorial/controlflow.rst:535 +#: tutorial/controlflow.rst:542 msgid "" "It is simple to write a function that returns a list of the numbers of the " "Fibonacci series, instead of printing it::" @@ -1196,7 +1211,7 @@ msgstr "" "Είναι απλό να γράψετε μια συνάρτηση που επιστρέφει μια λίστα με τους " "αριθμούς της σειράς Fibonacci, αντί να την εκτυπώσετε::" -#: tutorial/controlflow.rst:538 +#: tutorial/controlflow.rst:545 msgid "" ">>> def fib2(n): # return Fibonacci series up to n\n" "... \"\"\"Return a list containing the Fibonacci series up to n.\"\"\"\n" @@ -1224,12 +1239,12 @@ msgstr "" ">>> f100 # write the result\n" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" -#: tutorial/controlflow.rst:551 +#: tutorial/controlflow.rst:558 msgid "This example, as usual, demonstrates some new Python features:" msgstr "" "Αυτό το παράδειγμα, ως συνήθως, δείχνει μερικά νέα χαρακτηριστικά Python:" -#: tutorial/controlflow.rst:553 +#: tutorial/controlflow.rst:560 msgid "" "The :keyword:`return` statement returns with a value from a function. :" "keyword:`!return` without an expression argument returns ``None``. Falling " @@ -1239,7 +1254,7 @@ msgstr "" "keyword:`!return` χωρίς όρισμα έκφρασης, επιστρέφει το ``None``. Η πτώση του " "τέλους μιας συνάρτησης επιστρέφει επίσης ``None``." -#: tutorial/controlflow.rst:557 +#: tutorial/controlflow.rst:564 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 " @@ -1248,7 +1263,7 @@ msgid "" "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 " +"ref:`tut-classes`) The method :meth:`~list.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." @@ -1261,16 +1276,16 @@ msgstr "" "ορίζουν διαφορετικές μεθόδους. Μέθοδοι διαφορετικών τύπων μπορεί να έχουν " "το ίδιο όνομα χωρίς να προκαλούν ασάφεια. (Είναι δυνατό να ορίσετε τους " "δικούς σας τύπους αντικειμένων και μεθόδους, χρησιμοποιώντας *classes*, " -"δείτε :ref:`tut-classes`) Η μέθοδος :meth:`!append` που εμφανίζεται στο " +"δείτε :ref:`tut-classes`) Η μέθοδος :meth:`~list.append` που εμφανίζεται στο " "παράδειγμα ορίζεται για αντικείμενα λίστας· προσθέτει ένα νέο στοιχείο στο " "τέλος της λίστας. Σε αυτό το παράδειγμα είναι ισοδύναμο με ``result = " "result + [a]``, αλλά πιο αποτελεσματικό." -#: tutorial/controlflow.rst:572 +#: tutorial/controlflow.rst:579 msgid "More on Defining Functions" msgstr "Περισσότερο για τον Καθορισμό Συναρτήσεων" -#: tutorial/controlflow.rst:574 +#: tutorial/controlflow.rst:581 msgid "" "It is also possible to define functions with a variable number of arguments. " "There are three forms, which can be combined." @@ -1278,11 +1293,11 @@ msgstr "" "Είναι επίσης δυνατός ο ορισμός συναρτήσεων με μεταβλητό αριθμό ορισμάτων. " "Υπάρχουν τρεις μορφές, που μπορούν να συνδυαστούν." -#: tutorial/controlflow.rst:581 +#: tutorial/controlflow.rst:588 msgid "Default Argument Values" msgstr "Προεπιλεγμένες Τιμές Ορίσματος" -#: tutorial/controlflow.rst:583 +#: tutorial/controlflow.rst:590 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 " @@ -1292,7 +1307,7 @@ msgstr "" "περισσότερα ορίσματα. Αυτό δημιουργεί μια συνάρτηση που μπορεί να κληθεί με " "λιγότερα ορίσματα από αυτά που έχει ορίσει ότι επιτρέπει. Για παράδειγμα::" -#: tutorial/controlflow.rst:587 +#: tutorial/controlflow.rst:594 msgid "" "def ask_ok(prompt, retries=4, reminder='Please try again!'):\n" " while True:\n" @@ -1318,18 +1333,18 @@ msgstr "" " raise ValueError('invalid user response')\n" " print(reminder)" -#: tutorial/controlflow.rst:599 +#: tutorial/controlflow.rst:606 msgid "This function can be called in several ways:" msgstr "Αυτή η συνάρτηση μπορεί να κληθεί με διάφορους τρόπους:" -#: tutorial/controlflow.rst:601 +#: tutorial/controlflow.rst:608 msgid "" "giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``" msgstr "" "δίνοντας μόνο το υποχρεωτικό όρισμα: ``ask_ok('Do you really want to " "quit?')``" -#: tutorial/controlflow.rst:603 +#: tutorial/controlflow.rst:610 msgid "" "giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " "2)``" @@ -1337,7 +1352,7 @@ msgstr "" "δίνοντας ένα από τα προαιρετικά ορίσματα: ``ask_ok('OK to overwrite the " "file?', 2)``" -#: tutorial/controlflow.rst:605 +#: tutorial/controlflow.rst:612 msgid "" "or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come " "on, only yes or no!')``" @@ -1345,7 +1360,7 @@ msgstr "" "ή δίνοντας όλα τα ορίσματα: ``ask_ok('OK to overwrite the file?', 2, 'Come " "on, only yes or no!')``" -#: tutorial/controlflow.rst:608 +#: tutorial/controlflow.rst:615 msgid "" "This example also introduces the :keyword:`in` keyword. This tests whether " "or not a sequence contains a certain value." @@ -1353,7 +1368,7 @@ msgstr "" "Αυτό το παράδειγμα εισάγει επίσης το keyword :keyword:`in`. Αυτό ελέγχει εάν " "μια ακολουθία περιέχει ή όχι μια συγκεκριμένη τιμή." -#: tutorial/controlflow.rst:611 +#: tutorial/controlflow.rst:618 msgid "" "The default values are evaluated at the point of function definition in the " "*defining* scope, so that ::" @@ -1361,7 +1376,7 @@ msgstr "" "Οι προεπιλεγμένες τιμές αξιολογούνται στο σημείο του ορισμού της συνάρτησης " "στο πεδίο που *ορίζεται*, έτσι ώστε ::" -#: tutorial/controlflow.rst:614 +#: tutorial/controlflow.rst:621 msgid "" "i = 5\n" "\n" @@ -1379,11 +1394,11 @@ msgstr "" "i = 6\n" "f()" -#: tutorial/controlflow.rst:622 +#: tutorial/controlflow.rst:629 msgid "will print ``5``." msgstr "θα εκτυπώσει ``5``." -#: tutorial/controlflow.rst:624 +#: tutorial/controlflow.rst:631 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, " @@ -1396,7 +1411,7 @@ msgstr "" "Για παράδειγμα, η ακόλουθη συνάρτηση συσσωρεύει τα ορίσματα που διαβάζονται " "σε αυτό σε επόμενες κλήσεις::" -#: tutorial/controlflow.rst:629 +#: tutorial/controlflow.rst:636 msgid "" "def f(a, L=[]):\n" " L.append(a)\n" @@ -1414,11 +1429,11 @@ msgstr "" "print(f(2))\n" "print(f(3))" -#: tutorial/controlflow.rst:637 +#: tutorial/controlflow.rst:644 msgid "This will print ::" msgstr "Αυτό θα εκτυπώσει ::" -#: tutorial/controlflow.rst:639 +#: tutorial/controlflow.rst:646 msgid "" "[1]\n" "[1, 2]\n" @@ -1428,7 +1443,7 @@ msgstr "" "[1, 2]\n" "[1, 2, 3]" -#: tutorial/controlflow.rst:643 +#: tutorial/controlflow.rst:650 msgid "" "If you don't want the default to be shared between subsequent calls, you can " "write the function like this instead::" @@ -1436,7 +1451,7 @@ msgstr "" "Εάν δεν θέλετε να γίνεται κοινή χρήση της προεπιλογής μεταξύ των επόμενων " "κλήσεων, μπορείτε να γράψετε τη συνάρτηση ως εξής::" -#: tutorial/controlflow.rst:646 +#: tutorial/controlflow.rst:653 msgid "" "def f(a, L=None):\n" " if L is None:\n" @@ -1450,11 +1465,11 @@ msgstr "" " L.append(a)\n" " return L" -#: tutorial/controlflow.rst:656 +#: tutorial/controlflow.rst:663 msgid "Keyword Arguments" msgstr "Ορίσματα Keyword" -#: tutorial/controlflow.rst:658 +#: tutorial/controlflow.rst:665 msgid "" "Functions can also be called using :term:`keyword arguments ` of the form ``kwarg=value``. For instance, the following " @@ -1464,7 +1479,7 @@ msgstr "" "arguments ` της μορφής ``kwarg=value``. Για παράδειγμα, " "την ακόλουθη συνάρτηση::" -#: tutorial/controlflow.rst:661 +#: tutorial/controlflow.rst:668 msgid "" "def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):\n" " print(\"-- This parrot wouldn't\", action, end=' ')\n" @@ -1478,7 +1493,7 @@ msgstr "" " print(\"-- Lovely plumage, the\", type)\n" " print(\"-- It's\", state, \"!\")" -#: tutorial/controlflow.rst:667 +#: tutorial/controlflow.rst:674 msgid "" "accepts one required argument (``voltage``) and three optional arguments " "(``state``, ``action``, and ``type``). This function can be called in any " @@ -1488,7 +1503,7 @@ msgstr "" "(``state``, ``action``, και ``type``). Αυτή η συνάρτηση μπορεί να κληθεί με " "οποιονδήποτε από τους ακόλουθους τρόπους::" -#: tutorial/controlflow.rst:671 +#: tutorial/controlflow.rst:678 msgid "" "parrot(1000) # 1 positional " "argument\n" @@ -1510,11 +1525,11 @@ msgstr "" "parrot('a thousand', state='pushing up the daisies') # 1 positional, 1 " "keyword" -#: tutorial/controlflow.rst:678 +#: tutorial/controlflow.rst:685 msgid "but all the following calls would be invalid::" msgstr "αλλά όλες οι ακόλουθες κλήσεις θα ήταν άκυρες::" -#: tutorial/controlflow.rst:680 +#: tutorial/controlflow.rst:687 msgid "" "parrot() # required argument missing\n" "parrot(voltage=5.0, 'dead') # non-keyword argument after a keyword " @@ -1528,7 +1543,7 @@ msgstr "" "parrot(110, voltage=220) # duplicate value for the same argument\n" "parrot(actor='John Cleese') # unknown keyword argument" -#: tutorial/controlflow.rst:685 +#: tutorial/controlflow.rst:692 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 " @@ -1547,7 +1562,7 @@ msgstr "" "λάβει μια τιμή περισσότερες από μία φορές. Ακολουθεί ένα παράδειγμα που " "αποτυγχάνει λόγω αυτού του περιορισμού::" -#: tutorial/controlflow.rst:693 +#: tutorial/controlflow.rst:700 msgid "" ">>> def function(a):\n" "... pass\n" @@ -1565,7 +1580,7 @@ msgstr "" " File \"\", line 1, in \n" "TypeError: function() got multiple values for argument 'a'" -#: tutorial/controlflow.rst:701 +#: tutorial/controlflow.rst:708 msgid "" "When a final formal parameter of the form ``**name`` is present, it receives " "a dictionary (see :ref:`typesmapping`) containing all keyword arguments " @@ -1584,7 +1599,7 @@ msgstr "" "``*name`` πρέπει να εμφανίζεται πριν από το ``**name``.) Για παράδειγμα, αν " "ορίσουμε μια συνάρτηση όπως αυτή::" -#: tutorial/controlflow.rst:709 +#: tutorial/controlflow.rst:716 msgid "" "def cheeseshop(kind, *arguments, **keywords):\n" " print(\"-- Do you have any\", kind, \"?\")\n" @@ -1604,11 +1619,11 @@ msgstr "" " for kw in keywords:\n" " print(kw, \":\", keywords[kw])" -#: tutorial/controlflow.rst:718 +#: tutorial/controlflow.rst:725 msgid "It could be called like this::" msgstr "Μπορεί να καλεστεί κάπως έτσι::" -#: tutorial/controlflow.rst:720 +#: tutorial/controlflow.rst:727 msgid "" "cheeseshop(\"Limburger\", \"It's very runny, sir.\",\n" " \"It's really very, VERY runny, sir.\",\n" @@ -1622,11 +1637,11 @@ msgstr "" " client=\"John Cleese\",\n" " sketch=\"Cheese Shop Sketch\")" -#: tutorial/controlflow.rst:726 +#: tutorial/controlflow.rst:733 msgid "and of course it would print:" msgstr "και φυσικά θα εκτυπώσει:" -#: tutorial/controlflow.rst:728 +#: tutorial/controlflow.rst:735 msgid "" "-- Do you have any Limburger ?\n" "-- I'm sorry, we're all out of Limburger\n" @@ -1646,7 +1661,7 @@ msgstr "" "client : John Cleese\n" "sketch : Cheese Shop Sketch" -#: tutorial/controlflow.rst:739 +#: tutorial/controlflow.rst:746 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." @@ -1655,11 +1670,11 @@ msgstr "" "εγγυημένη ότι ταιριάζει με τη σειρά με την οποία δόθηκαν στην κλήση της " "συνάρτησης." -#: tutorial/controlflow.rst:743 +#: tutorial/controlflow.rst:750 msgid "Special parameters" msgstr "Ειδικές παράμετροι" -#: tutorial/controlflow.rst:745 +#: tutorial/controlflow.rst:752 msgid "" "By default, arguments may be passed to a Python function either by position " "or explicitly by keyword. For readability and performance, it makes sense to " @@ -1674,11 +1689,11 @@ msgstr "" "κοιτάξει τον ορισμό της συνάρτησης για να προσδιορίσει εάν τα στοιχεία " "μεταβιβάζονται κατά θέση, κατά θέση ή keyword, ή κατά keyword." -#: tutorial/controlflow.rst:751 +#: tutorial/controlflow.rst:758 msgid "A function definition may look like:" msgstr "Ένας ορισμός συνάρτησης μπορεί να μοιάζει με αυτό:" -#: tutorial/controlflow.rst:753 +#: tutorial/controlflow.rst:760 msgid "" "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):\n" " ----------- ---------- ----------\n" @@ -1694,7 +1709,7 @@ msgstr "" " | - Keyword only\n" " -- Positional only" -#: tutorial/controlflow.rst:762 +#: tutorial/controlflow.rst:769 msgid "" "where ``/`` and ``*`` are optional. If used, these symbols indicate the kind " "of parameter by how the arguments may be passed to the function: positional-" @@ -1707,11 +1722,11 @@ msgstr "" "ή keyword (positional-or-keyword), και μόνο keyword (keyword-only). Οι " "keyword παράμετροι αναφέρονται επίσης ως ονομασμένες παράμετροι." -#: tutorial/controlflow.rst:769 +#: tutorial/controlflow.rst:776 msgid "Positional-or-Keyword Arguments" msgstr "Παράμετροι Θέσης ή Keyword" -#: tutorial/controlflow.rst:771 +#: tutorial/controlflow.rst:778 msgid "" "If ``/`` and ``*`` are not present in the function definition, arguments may " "be passed to a function by position or by keyword." @@ -1719,11 +1734,11 @@ msgstr "" "Εάν τα ``/`` και ``*`` δεν υπάρχουν στον ορισμό της συνάρτησης, τα ορίσματα " "μπορούν να μεταβιβαστούν σε μια συνάρτηση ανά θέση ή κατά keyword." -#: tutorial/controlflow.rst:776 +#: tutorial/controlflow.rst:783 msgid "Positional-Only Parameters" msgstr "Παράμετροι Μόνο-Θέσης" -#: tutorial/controlflow.rst:778 +#: tutorial/controlflow.rst:785 msgid "" "Looking at this in a bit more detail, it is possible to mark certain " "parameters as *positional-only*. If *positional-only*, the parameters' order " @@ -1741,7 +1756,7 @@ msgstr "" "παραμέτρους μόνο θέσης από τις υπόλοιπες παραμέτρους. Εάν δεν υπάερχει το ``/" "`` στον ορισμό της συνάρτησης, δεν υπάρχουν παράμετροι μόνο θέσης." -#: tutorial/controlflow.rst:786 +#: tutorial/controlflow.rst:793 msgid "" "Parameters following the ``/`` may be *positional-or-keyword* or *keyword-" "only*." @@ -1749,11 +1764,11 @@ msgstr "" "Οι παράμετροι που ακολουθούν το ``/`` μπορεί να είναι *θέσης ή keyword* ή " "*μόνο keyword*." -#: tutorial/controlflow.rst:790 +#: tutorial/controlflow.rst:797 msgid "Keyword-Only Arguments" msgstr "Ορίσματα μόνο Keyword" -#: tutorial/controlflow.rst:792 +#: tutorial/controlflow.rst:799 msgid "" "To mark parameters as *keyword-only*, indicating the parameters must be " "passed by keyword argument, place an ``*`` in the arguments list just before " @@ -1763,11 +1778,11 @@ msgstr "" "παράμετροι πρέπει να περάσουν από το keyword όρισμα, τοποθετήσετε ένα ``*`` " "στη λίστα ορισμάτων ακριβώς πριν από την πρώτη παράμετρο *μόνο keyword*." -#: tutorial/controlflow.rst:798 +#: tutorial/controlflow.rst:805 msgid "Function Examples" msgstr "Παραδείγματα Συναρτήσεων" -#: tutorial/controlflow.rst:800 +#: tutorial/controlflow.rst:807 msgid "" "Consider the following example function definitions paying close attention " "to the markers ``/`` and ``*``::" @@ -1775,7 +1790,7 @@ msgstr "" "Σκεφτείτε τα ακόλουθα παραδείγματα ορισμών συναρτήσεων δίνοντας ιδιαίτερη " "προσοχή στους δείκτες ``/`` και ``*``::" -#: tutorial/controlflow.rst:803 +#: tutorial/controlflow.rst:810 msgid "" ">>> def standard_arg(arg):\n" "... print(arg)\n" @@ -1801,7 +1816,7 @@ msgstr "" ">>> def combined_example(pos_only, /, standard, *, kwd_only):\n" "... print(pos_only, standard, kwd_only)" -#: tutorial/controlflow.rst:816 +#: tutorial/controlflow.rst:823 msgid "" "The first function definition, ``standard_arg``, the most familiar form, " "places no restrictions on the calling convention and arguments may be passed " @@ -1811,7 +1826,7 @@ msgstr "" "περιορισμούς στη σύμβαση κλήσης και τα ορίσματα μπορούν να περάσουν από θέση " "ή από keyword::" -#: tutorial/controlflow.rst:820 +#: tutorial/controlflow.rst:827 msgid "" ">>> standard_arg(2)\n" "2\n" @@ -1825,7 +1840,7 @@ msgstr "" ">>> standard_arg(arg=2)\n" "2" -#: tutorial/controlflow.rst:826 +#: tutorial/controlflow.rst:833 msgid "" "The second function ``pos_only_arg`` is restricted to only use positional " "parameters as there is a ``/`` in the function definition::" @@ -1833,7 +1848,7 @@ msgstr "" "Η δεύτερη συνάρτηση ``pos_only_arg`` περιορίζεται στη χρήση μόνο παραμέτρων " "θέσης καθώς υπάρχει ένα ``/`` στον ορισμός της συνάρτησης::" -#: tutorial/controlflow.rst:829 +#: tutorial/controlflow.rst:836 msgid "" ">>> pos_only_arg(1)\n" "1\n" @@ -1853,7 +1868,7 @@ msgstr "" "TypeError: pos_only_arg() got some positional-only arguments passed as " "keyword arguments: 'arg'" -#: tutorial/controlflow.rst:837 +#: tutorial/controlflow.rst:844 msgid "" "The third function ``kwd_only_arg`` only allows keyword arguments as " "indicated by a ``*`` in the function definition::" @@ -1861,7 +1876,7 @@ msgstr "" "Η τρίτη συνάρτηση ``kwd_only_arg`` επιτρέπει μόνο keyword ορίσματα όπως " "υποδεικνύεται από ένα ``*`` στον ορισμός της συνάρτησης::" -#: tutorial/controlflow.rst:840 +#: tutorial/controlflow.rst:847 msgid "" ">>> kwd_only_arg(3)\n" "Traceback (most recent call last):\n" @@ -1879,7 +1894,7 @@ msgstr "" ">>> kwd_only_arg(arg=3)\n" "3" -#: tutorial/controlflow.rst:848 +#: tutorial/controlflow.rst:855 msgid "" "And the last uses all three calling conventions in the same function " "definition::" @@ -1887,7 +1902,7 @@ msgstr "" "Και το τελευταίο χρησιμοποιεί και τις τρεις συμβάσεις κλήσης στον ίδιο " "ορισμό συνάρτησης::" -#: tutorial/controlflow.rst:851 +#: tutorial/controlflow.rst:858 msgid "" ">>> combined_example(1, 2, 3)\n" "Traceback (most recent call last):\n" @@ -1923,7 +1938,7 @@ msgstr "" "TypeError: combined_example() got some positional-only arguments passed as " "keyword arguments: 'pos_only'" -#: tutorial/controlflow.rst:868 +#: tutorial/controlflow.rst:875 msgid "" "Finally, consider this function definition which has a potential collision " "between the positional argument ``name`` and ``**kwds`` which has ``name`` " @@ -1933,7 +1948,7 @@ msgstr "" "μεταξύ του ορίσματος θέσης ``name`` και ``**kwds`` που έχει ως κλειδί το " "``name``::" -#: tutorial/controlflow.rst:870 +#: tutorial/controlflow.rst:877 msgid "" "def foo(name, **kwds):\n" " return 'name' in kwds" @@ -1941,7 +1956,7 @@ msgstr "" "def foo(name, **kwds):\n" " return 'name' in kwds" -#: tutorial/controlflow.rst:873 +#: tutorial/controlflow.rst:880 msgid "" "There is no possible call that will make it return ``True`` as the keyword " "``'name'`` will always bind to the first parameter. For example::" @@ -1950,7 +1965,7 @@ msgstr "" "το keyword ``'name'`` θα συνδέεται πάντα με την πρώτη παράμετρο. Για " "παράδειγμα::" -#: tutorial/controlflow.rst:876 +#: tutorial/controlflow.rst:883 msgid "" ">>> foo(1, **{'name': 2})\n" "Traceback (most recent call last):\n" @@ -1964,7 +1979,7 @@ msgstr "" "TypeError: foo() got multiple values for argument 'name'\n" ">>>" -#: tutorial/controlflow.rst:882 +#: tutorial/controlflow.rst:889 msgid "" "But using ``/`` (positional only arguments), it is possible since it allows " "``name`` as a positional argument and ``'name'`` as a key in the keyword " @@ -1974,7 +1989,7 @@ msgstr "" "επιτρέπει το ``name`` ως όρισμα θέσης και το ``'name'`` ως κλειδί στα " "keyword ορίσματα::" -#: tutorial/controlflow.rst:884 +#: tutorial/controlflow.rst:891 msgid "" ">>> def foo(name, /, **kwds):\n" "... return 'name' in kwds\n" @@ -1988,7 +2003,7 @@ msgstr "" ">>> foo(1, **{'name': 2})\n" "True" -#: tutorial/controlflow.rst:890 +#: tutorial/controlflow.rst:897 msgid "" "In other words, the names of positional-only parameters can be used in " "``**kwds`` without ambiguity." @@ -1996,11 +2011,11 @@ msgstr "" "Με άλλα λόγια, τα ονόματα των παραμέτρων μόνο θέσης μπορούν να " "χρησιμοποιηθούν σε ``**kwds`` χωρίς ασάφεια." -#: tutorial/controlflow.rst:895 +#: tutorial/controlflow.rst:902 msgid "Recap" msgstr "Ανακεφαλαίωση" -#: tutorial/controlflow.rst:897 +#: tutorial/controlflow.rst:904 msgid "" "The use case will determine which parameters to use in the function " "definition::" @@ -2008,15 +2023,15 @@ msgstr "" "Η περίπτωση χρήσης θα καθορίσει ποιες παραμέτρους θα χρησιμοποιηθούν στον " "ορισμό της συνάρτησης::" -#: tutorial/controlflow.rst:899 +#: tutorial/controlflow.rst:906 msgid "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" msgstr "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" -#: tutorial/controlflow.rst:901 +#: tutorial/controlflow.rst:908 msgid "As guidance:" msgstr "Ως καθοδήγηση:" -#: tutorial/controlflow.rst:903 +#: tutorial/controlflow.rst:910 msgid "" "Use positional-only if you want the name of the parameters to not be " "available to the user. This is useful when parameter names have no real " @@ -2030,7 +2045,7 @@ msgstr "" "όταν καλείται η συνάρτηση ή εάν πρέπει να ληφθούν ορισμένες παράμετροι θέσης " "και αυθαίρετα keywords." -#: tutorial/controlflow.rst:908 +#: tutorial/controlflow.rst:915 msgid "" "Use keyword-only when names have meaning and the function definition is more " "understandable by being explicit with names or you want to prevent users " @@ -2041,7 +2056,7 @@ msgstr "" "αποτρέψετε τους χρήστες να βασίζονται στη θέση του επιχειρήματος που " "μεταβιβάζεται." -#: tutorial/controlflow.rst:911 +#: tutorial/controlflow.rst:918 msgid "" "For an API, use positional-only to prevent breaking API changes if the " "parameter's name is modified in the future." @@ -2049,11 +2064,11 @@ msgstr "" "Για ένα API, χρησιμοποιήστε το μόνο θέσης για να αποτρέψετε τη διακοπή των " "αλλαγών τους API, εάν το όνομα της παραμέτρου τροποποιηθεί στο μέλλον." -#: tutorial/controlflow.rst:917 +#: tutorial/controlflow.rst:924 msgid "Arbitrary Argument Lists" msgstr "Λίστες Αυθαίρετων Ορισμάτων" -#: tutorial/controlflow.rst:922 +#: tutorial/controlflow.rst:929 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 " @@ -2066,7 +2081,7 @@ msgstr "" "από τον μεταβλητό αριθμό ορισμάτων ενδέχεται να προκύψουν μηδέν ή " "περισσότερα κανονικά ορίσματα. ::" -#: tutorial/controlflow.rst:927 +#: tutorial/controlflow.rst:934 msgid "" "def write_multiple_items(file, separator, *args):\n" " file.write(separator.join(args))" @@ -2074,7 +2089,7 @@ msgstr "" "def write_multiple_items(file, separator, *args):\n" " file.write(separator.join(args))" -#: tutorial/controlflow.rst:931 +#: tutorial/controlflow.rst:938 msgid "" "Normally, these *variadic* arguments will be last in the list of formal " "parameters, because they scoop up all remaining input arguments that are " @@ -2089,7 +2104,7 @@ msgstr "" "σημαίνει ότι μπορούν να χρησιμοποιηθούν μόνο ως λέξεις-κλειδιά και όχι ως " "ορίσματα θέσης. ::" -#: tutorial/controlflow.rst:937 +#: tutorial/controlflow.rst:944 msgid "" ">>> def concat(*args, sep=\"/\"):\n" "... return sep.join(args)\n" @@ -2107,11 +2122,11 @@ msgstr "" ">>> concat(\"earth\", \"mars\", \"venus\", sep=\".\")\n" "'earth.mars.venus'" -#: tutorial/controlflow.rst:948 +#: tutorial/controlflow.rst:955 msgid "Unpacking Argument Lists" msgstr "Unpacking Λίστες Ορισμάτων" -#: tutorial/controlflow.rst:950 +#: tutorial/controlflow.rst:957 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 " @@ -2128,7 +2143,7 @@ msgstr "" "συνάρτησης με τον ``*``\\ -τελεστή για να αποσυμπιέσετε τα ορίσματα από μια " "λίστα ή πλειάδα (tuple)::" -#: tutorial/controlflow.rst:957 +#: tutorial/controlflow.rst:964 msgid "" ">>> list(range(3, 6)) # normal call with separate arguments\n" "[3, 4, 5]\n" @@ -2144,7 +2159,7 @@ msgstr "" "list\n" "[3, 4, 5]" -#: tutorial/controlflow.rst:966 +#: tutorial/controlflow.rst:973 msgid "" "In the same fashion, dictionaries can deliver keyword arguments with the " "``**``\\ -operator::" @@ -2152,7 +2167,7 @@ msgstr "" "Με τον ίδιο τρόπο, τα λεξικά μπορούν να παραδίδουν keyword ορίσματα με τον " "``**``\\ -τελεστή::" -#: tutorial/controlflow.rst:969 +#: tutorial/controlflow.rst:976 msgid "" ">>> def parrot(voltage, state='a stiff', action='voom'):\n" "... print(\"-- This parrot wouldn't\", action, end=' ')\n" @@ -2176,11 +2191,11 @@ msgstr "" "-- This parrot wouldn't VOOM if you put four million volts through it. E's " "bleedin' demised !" -#: tutorial/controlflow.rst:982 +#: tutorial/controlflow.rst:989 msgid "Lambda Expressions" msgstr "Εκφράσεις Lambda" -#: tutorial/controlflow.rst:984 +#: tutorial/controlflow.rst:991 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``. " @@ -2198,7 +2213,7 @@ msgstr "" "κανονικής συνάρτησης. Όπως οι ορισμοί ένθετων συναρτήσεων, οι συναρτήσεις " "lambda μπορούν να παραπέμπουν σε μεταβλητές από το πεδίο που περιέχει::" -#: tutorial/controlflow.rst:992 +#: tutorial/controlflow.rst:999 msgid "" ">>> def make_incrementor(n):\n" "... return lambda x: x + n\n" @@ -2218,7 +2233,7 @@ msgstr "" ">>> f(1)\n" "43" -#: tutorial/controlflow.rst:1001 +#: tutorial/controlflow.rst:1008 msgid "" "The above example uses a lambda expression to return a function. Another " "use is to pass a small function as an argument. For instance, :meth:`list." @@ -2229,7 +2244,7 @@ msgstr "" "όρισμα. Για παράδειγμα, η :meth:`list.sort` δέχεται μια συνάρτηση " "ταξινόμησης κλειδιού *key* η οποία μπορεί να είναι μια συνάρτηση lambda::" -#: tutorial/controlflow.rst:1005 +#: tutorial/controlflow.rst:1012 msgid "" ">>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]\n" ">>> pairs.sort(key=lambda pair: pair[1])\n" @@ -2241,11 +2256,11 @@ msgstr "" ">>> pairs\n" "[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]" -#: tutorial/controlflow.rst:1014 +#: tutorial/controlflow.rst:1021 msgid "Documentation Strings" msgstr "Συμβολοσειρές Τεκμηρίωσης" -#: tutorial/controlflow.rst:1021 +#: tutorial/controlflow.rst:1028 msgid "" "Here are some conventions about the content and formatting of documentation " "strings." @@ -2253,7 +2268,7 @@ msgstr "" "Ακολουθούν ορισμένες συμβάσεις σχετικά με το περιεχόμενο και τη μορφοποίηση " "των συμβολοσειρών τεκμηρίωσης." -#: tutorial/controlflow.rst:1024 +#: tutorial/controlflow.rst:1031 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 " @@ -2267,7 +2282,7 @@ msgstr "" "εάν το όνομα είναι ρήμα που περιγράφει τη λειτουργία της συνάρτησης). Αυτή " "η γραμμή πρέπει να ξεκινά με κεφαλαίο γράμμα και να τελειώνει με τελεία." -#: tutorial/controlflow.rst:1030 +#: tutorial/controlflow.rst:1037 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. " @@ -2280,7 +2295,7 @@ msgstr "" "παράγραφοι που περιγράφουν τις συμβάσεις κλήσης του αντικειμένου, τις " "παρενέργειές του κ.λπ.." -#: tutorial/controlflow.rst:1035 +#: tutorial/controlflow.rst:1042 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 " @@ -2308,11 +2323,11 @@ msgstr "" "αρχικό κενό τους. Η ισοδυναμία των κενών διαστημάτων θα πρέπει να ελέγχεται " "μετά την επέκταση των καρτελών (σε 8 κενά, κανονικά)." -#: tutorial/controlflow.rst:1047 +#: tutorial/controlflow.rst:1054 msgid "Here is an example of a multi-line docstring::" msgstr "Ακολουθεί ένα παράδειγμα ενός πολλαπλών γραμμών docstring::" -#: tutorial/controlflow.rst:1049 +#: tutorial/controlflow.rst:1056 msgid "" ">>> def my_function():\n" "... \"\"\"Do nothing, but document it.\n" @@ -2338,11 +2353,11 @@ msgstr "" "\n" "No, really, it doesn't do anything." -#: tutorial/controlflow.rst:1065 +#: tutorial/controlflow.rst:1072 msgid "Function Annotations" msgstr "Annotations Συναρτήσεων" -#: tutorial/controlflow.rst:1073 +#: tutorial/controlflow.rst:1080 msgid "" ":ref:`Function annotations ` are completely optional metadata " "information about the types used by user-defined functions (see :pep:`3107` " @@ -2353,9 +2368,9 @@ msgstr "" "συναρτήσεις που καθορίζονται από το χρήστη (δείτε :pep:`3107` και :pep:`484` " "για περισσότερες πληροφορίες)." -#: tutorial/controlflow.rst:1077 +#: tutorial/controlflow.rst:1084 msgid "" -":term:`Annotations ` are stored in the :attr:`!" +":term:`Annotations ` are stored in the :attr:`~object." "__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 " @@ -2365,17 +2380,17 @@ msgid "" "a required argument, an optional argument, and the return value annotated::" msgstr "" "Το :term:`Annotations ` αποθηκεύονται στο " -"χαρακτηριστικό :attr:`!__annotations__` της συνάρτησης ως λεξικό και δεν " -"έχουνε καμία επίδραση σε κανένα άλλο μέρος της συνάρτησης. Τα annotations " -"των παραμέτρων ορίζονται με άνω και κάτω τελεία μετά το όνομα παραμέτρου, " -"ακολουθούμενη από μια έκφραση που αξιολογεί την τιμή του annotation. Τα " -"annotations επιστροφής ορίζονται από ένα literal ``->``, ακολουθούμενο από " -"μια έκφραση, μεταξύ της λίστας παραμέτρων και της άνω και κάτω τελείας που " -"υποδηλώνει το τέλος της δήλωσης :keyword:`def`. Το ακόλουθο παράδειγμα έχει " -"ένα απαιτούμενο όρισμα, ένα προαιρετικό όρισμα και την επιστρεφόμενη τιμή σε " -"annotations::" - -#: tutorial/controlflow.rst:1086 +"χαρακτηριστικό :attr:`~object.__annotations__` της συνάρτησης ως λεξικό και " +"δεν έχουνε καμία επίδραση σε κανένα άλλο μέρος της συνάρτησης. Τα " +"annotations των παραμέτρων ορίζονται με άνω και κάτω τελεία μετά το όνομα " +"παραμέτρου, ακολουθούμενη από μια έκφραση που αξιολογεί την τιμή του " +"annotation. Τα annotations επιστροφής ορίζονται από ένα literal ``->``, " +"ακολουθούμενο από μια έκφραση, μεταξύ της λίστας παραμέτρων και της άνω και " +"κάτω τελείας που υποδηλώνει το τέλος της δήλωσης :keyword:`def`. Το " +"ακόλουθο παράδειγμα έχει ένα απαιτούμενο όρισμα, ένα προαιρετικό όρισμα και " +"την επιστρεφόμενη τιμή σε annotations::" + +#: tutorial/controlflow.rst:1093 msgid "" ">>> def f(ham: str, eggs: str = 'eggs') -> str:\n" "... print(\"Annotations:\", f.__annotations__)\n" @@ -2399,11 +2414,11 @@ msgstr "" "Arguments: spam eggs\n" "'spam and eggs'" -#: tutorial/controlflow.rst:1099 +#: tutorial/controlflow.rst:1106 msgid "Intermezzo: Coding Style" msgstr "Intermezzo: Στυλ Κώδικα" -#: tutorial/controlflow.rst:1104 +#: tutorial/controlflow.rst:1111 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 " @@ -2419,7 +2434,7 @@ msgstr "" "πάντα μια καλή ιδέα και η υιοθέτηση ενός ωραίου στυλ κώδικα βοηθάει πάρα " "πολύ σε αυτό." -#: tutorial/controlflow.rst:1110 +#: tutorial/controlflow.rst:1117 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 " @@ -2431,11 +2446,11 @@ msgstr "" "κώδικα. Κάθε προγραμματιστής Python θα πρέπει να το διαβάσει κάποια στιγμή· " "εδώ είναι τα πιο σημαντικό σημεία που εξάγονται για εσάς:" -#: tutorial/controlflow.rst:1115 +#: tutorial/controlflow.rst:1122 msgid "Use 4-space indentation, and no tabs." msgstr "Χρησιμοποιήστε εσοχή 4 διαστημάτων και όχι tabs." -#: tutorial/controlflow.rst:1117 +#: tutorial/controlflow.rst:1124 msgid "" "4 spaces are a good compromise between small indentation (allows greater " "nesting depth) and large indentation (easier to read). Tabs introduce " @@ -2446,11 +2461,11 @@ msgstr "" "ανάγνωση). Τα tabs δημιουργούν σύγχυση, και είναι καλύτερο να παραμείνουν " "απέξω." -#: tutorial/controlflow.rst:1121 +#: tutorial/controlflow.rst:1128 msgid "Wrap lines so that they don't exceed 79 characters." msgstr "Τυλίξτε τις γραμμές έτσι ώστε να μην υπερβαίνουν τους 79 χαρακτήρες." -#: tutorial/controlflow.rst:1123 +#: tutorial/controlflow.rst:1130 msgid "" "This helps users with small displays and makes it possible to have several " "code files side-by-side on larger displays." @@ -2458,7 +2473,7 @@ msgstr "" "Αυτό βοηθά του χρήστες με μικρές οθόνες και καθιστά δυνατή την ύπαρξη πολλών " "αρχείων κώδικα δίπλα-δίπλα σε μεγαλύτερες οθόνες." -#: tutorial/controlflow.rst:1126 +#: tutorial/controlflow.rst:1133 msgid "" "Use blank lines to separate functions and classes, and larger blocks of code " "inside functions." @@ -2466,15 +2481,15 @@ msgstr "" "Χρησιμοποιείστε κενές γραμμές για να διαχωρίσετε συναρτήσεις και κλάσεις και " "μεγαλύτερα μπλοκ κώδικα μέσα συναρτήσεις." -#: tutorial/controlflow.rst:1129 +#: tutorial/controlflow.rst:1136 msgid "When possible, put comments on a line of their own." msgstr "Όταν είναι δυνατόν, βάλτε σχόλια σε μια δική τους γραμμή." -#: tutorial/controlflow.rst:1131 +#: tutorial/controlflow.rst:1138 msgid "Use docstrings." msgstr "Χρησιμοποιήστε docstrings." -#: tutorial/controlflow.rst:1133 +#: tutorial/controlflow.rst:1140 msgid "" "Use spaces around operators and after commas, but not directly inside " "bracketing constructs: ``a = f(1, 2) + g(3, 4)``." @@ -2482,7 +2497,7 @@ msgstr "" "Χρησιμοποιήστε κενά γύρω από τελεστές και μετά από κόμματα, αλλά όχι " "απευθείας μέσα δε δομές αγκύλων: ``a = f(1, 2) + g(3, 4)``." -#: tutorial/controlflow.rst:1136 +#: tutorial/controlflow.rst:1143 msgid "" "Name your classes and functions consistently; the convention is to use " "``UpperCamelCase`` for classes and ``lowercase_with_underscores`` for " @@ -2496,7 +2511,7 @@ msgstr "" "(δείτε :ref:`tut-firstclasses` για περισσότερα σχετικά με τις κλάσεις και " "τις μεθόδους)." -#: tutorial/controlflow.rst:1141 +#: tutorial/controlflow.rst:1148 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 " @@ -2506,7 +2521,7 @@ msgstr "" "να χρησιμοποιηθεί σε διεθνή περιβάλλοντα. Η προεπιλογή της Python, UTF-8, ή " "ακόμα και το απλό ASCII λειτουργούν καλύτερα σε κάθε περίπτωση." -#: tutorial/controlflow.rst:1145 +#: tutorial/controlflow.rst:1152 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 " @@ -2516,11 +2531,11 @@ msgstr "" "εάν υπάρχει μόνο η παραμικρή πιθανότητα οι άνθρωποι που μιλούν διαφορετική " "γλώσσα να διαβάσουν ή να διατηρήσουν τον κώδικα." -#: tutorial/controlflow.rst:1151 +#: tutorial/controlflow.rst:1158 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: tutorial/controlflow.rst:1152 +#: tutorial/controlflow.rst:1159 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 " @@ -2539,55 +2554,63 @@ msgstr "statement" msgid "for" msgstr "for" -#: tutorial/controlflow.rst:1016 +#: tutorial/controlflow.rst:254 +msgid "..." +msgstr "..." + +#: tutorial/controlflow.rst:254 +msgid "ellipsis literal" +msgstr "ellipsis literal" + +#: tutorial/controlflow.rst:1023 msgid "documentation strings" msgstr "documentation strings" -#: tutorial/controlflow.rst:1016 +#: tutorial/controlflow.rst:1023 msgid "docstrings" msgstr "docstrings" -#: tutorial/controlflow.rst:1016 +#: tutorial/controlflow.rst:1023 msgid "strings, documentation" msgstr "strings, documentation" -#: tutorial/controlflow.rst:919 +#: tutorial/controlflow.rst:926 msgid "* (asterisk)" msgstr "* (αστερίσκος)" -#: tutorial/controlflow.rst:963 +#: tutorial/controlflow.rst:970 msgid "in function calls" msgstr "in function calls" -#: tutorial/controlflow.rst:963 +#: tutorial/controlflow.rst:970 msgid "**" msgstr "**" -#: tutorial/controlflow.rst:1068 +#: tutorial/controlflow.rst:1075 msgid "function" msgstr "function" -#: tutorial/controlflow.rst:1068 +#: tutorial/controlflow.rst:1075 msgid "annotations" msgstr "annotations" -#: tutorial/controlflow.rst:1068 +#: tutorial/controlflow.rst:1075 msgid "->" msgstr "->" -#: tutorial/controlflow.rst:1068 +#: tutorial/controlflow.rst:1075 msgid "function annotations" msgstr "function annotations" -#: tutorial/controlflow.rst:1068 +#: tutorial/controlflow.rst:1075 msgid ": (colon)" msgstr ": (colon)" -#: tutorial/controlflow.rst:1102 +#: tutorial/controlflow.rst:1109 msgid "coding" msgstr "coding" -#: tutorial/controlflow.rst:1102 +#: tutorial/controlflow.rst:1109 msgid "style" msgstr "style" diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index f3973b8d..d1f6451f 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2024-09-18 17:32+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -36,19 +36,19 @@ msgstr "Περισσότερα για τις Λίστες" #: tutorial/datastructures.rst:15 msgid "" -"The list data type has some more methods. Here are all of the methods of " -"list objects:" +"The :ref:`list ` data type has some more methods. Here are " +"all of the methods of list objects:" msgstr "" -"Ο τύπος δεδομένων λίστας έχει μερικές ακόμη μεθόδους. Ακολουθούν όλες οι " -"μέθοδοι αντικειμένων τύπου λίστας:" +"Ο τύπος δεδομένων :ref:`λίστα ` έχει μερικές ακόμη μεθόδους. " +"Εδώ είναι όλες οι μέθοδοι των αντικειμένων λίστας:" -#: tutorial/datastructures.rst:22 +#: tutorial/datastructures.rst:21 msgid "Add an item to the end of the list. Similar to ``a[len(a):] = [x]``." msgstr "" "Προσθέτει ένα στοιχείο στο τέλος της λίστας. Παρόμοιο με ``a[len(a):] = " "[x]``." -#: tutorial/datastructures.rst:28 +#: tutorial/datastructures.rst:27 msgid "" "Extend the list by appending all the items from the iterable. Similar to " "``a[len(a):] = iterable``." @@ -56,7 +56,7 @@ msgstr "" "Επεκτείνει τη λίστα προσθέτοντας όλα τα στοιχεία από το iterable. Παρόμοιο " "με ``a[len(a):] = iterable``." -#: tutorial/datastructures.rst:35 +#: tutorial/datastructures.rst:34 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 " @@ -67,7 +67,7 @@ msgstr "" "εισάγεται στο μπροστινό μέρος της λίστας, και το ``a.insert(len(a), x)`` " "ισοδυναμεί με ``a.append(x)``." -#: tutorial/datastructures.rst:43 +#: tutorial/datastructures.rst:42 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." @@ -75,7 +75,7 @@ msgstr "" "Καταργεί το πρώτο στοιχείο από τη λίστα του οποίου η τιμή είναι ίση με *x*. " "Κάνει raise ένα :exc:`ValueError` εάν δεν υπάρχει τέτοιο στοιχείο." -#: tutorial/datastructures.rst:50 +#: tutorial/datastructures.rst:49 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 " @@ -87,20 +87,19 @@ msgstr "" "τελευταίο στοιχείο στη λίστα. Κάνει raise ένα :exc:`IndexError` εάν η λίστα " "είναι κενή ή το ευρετήριο βρίσκεται εκτός του εύρους της λίστας." -#: tutorial/datastructures.rst:59 +#: tutorial/datastructures.rst:58 msgid "Remove all items from the list. Similar to ``del a[:]``." msgstr "Αφαιρεί όλα τα στοιχεία από τη λίστα. Παρόμοιο με ``del a[:]``." -#: tutorial/datastructures.rst:65 +#: tutorial/datastructures.rst:64 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." +"Return zero-based index of the first occurrence of *x* in the list. Raises " +"a :exc:`ValueError` if there is no such item." msgstr "" -"Επιστρέφει το μηδενικό index στη λίστα του πρώτου στοιχείου του οποίου η " -"τιμή είναι ίση με *x*. Κάνει raise ένα :exc:`ValueError` εάν δεν υπάρχει " -"τέτοιο στοιχείο." +"Επιστρέφει τον μηδενικό δείκτη της πρώτης εμφάνισης του *x* στη λίστα. Κάνει " +"raise μια :exc:`ValueError` εάν δεν υπάρχει τέτοιο στοιχείο." -#: tutorial/datastructures.rst:68 +#: tutorial/datastructures.rst:67 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 " @@ -112,11 +111,11 @@ msgstr "" "συγκεκριμένη υποακολουθία της λίστας. Ο επιστρεφόμενος δείκτης υπολογίζεται " "σε σχέση με την αρχή της πλήρους ακολουθίας αντί για το όρισμα *start*." -#: tutorial/datastructures.rst:77 +#: tutorial/datastructures.rst:76 msgid "Return the number of times *x* appears in the list." msgstr "Επιστρέφει τον αριθμό των φορών που εμφανίζεται το *x* στη λίστα." -#: tutorial/datastructures.rst:83 +#: tutorial/datastructures.rst:82 msgid "" "Sort the items of the list in place (the arguments can be used for sort " "customization, see :func:`sorted` for their explanation)." @@ -125,22 +124,22 @@ msgstr "" "χρησιμοποιηθούν για προσαρμογή ταξινόμησης, βλ. :func:`sorted` για την " "εξήγησή τους)." -#: tutorial/datastructures.rst:90 +#: tutorial/datastructures.rst:89 msgid "Reverse the elements of the list in place." msgstr "Αντιστρέφει τα στοιχεία της λίστας στη θέση τους." -#: tutorial/datastructures.rst:96 +#: tutorial/datastructures.rst:95 msgid "Return a shallow copy of the list. Similar to ``a[:]``." msgstr "" "Επιστρέφει ένα shallow (ρηχό) αντίγραφο της λίστας. Παρόμοιο με ``a[:]``." -#: tutorial/datastructures.rst:99 +#: tutorial/datastructures.rst:98 msgid "An example that uses most of the list methods::" msgstr "" "Ένα παράδειγμα που χρησιμοποιεί τις περισσότερες από τις μεθόδους της " "λίστας::" -#: tutorial/datastructures.rst:101 +#: tutorial/datastructures.rst:100 msgid "" ">>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', " "'banana']\n" @@ -186,7 +185,7 @@ msgstr "" ">>> fruits.pop()\n" "'pear'" -#: tutorial/datastructures.rst:122 +#: tutorial/datastructures.rst:121 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 " @@ -198,7 +197,7 @@ msgstr "" "-- επιστρέφουν το προεπιλεγμένο (default) ``None``. [#]_ Αυτή είναι μια " "αρχή σχεδιασμού για όλες τις μεταβλητές δομές δεδομένων στην Python." -#: tutorial/datastructures.rst:127 +#: tutorial/datastructures.rst:126 msgid "" "Another thing you might notice is that not all data can be sorted or " "compared. For instance, ``[None, 'hello', 10]`` doesn't sort because " @@ -214,26 +213,26 @@ msgstr "" "καθορισμένη σχέση διάταξης. Για παράδειγμα, το ``3+4j < 5+7j`` δεν είναι " "έγκυρη σύγκριση." -#: tutorial/datastructures.rst:138 +#: tutorial/datastructures.rst:137 msgid "Using Lists as Stacks" msgstr "Χρήστη Λιστών ως Στοίβες (Stacks)" -#: tutorial/datastructures.rst:143 +#: tutorial/datastructures.rst:142 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::" +"add an item to the top of the stack, use :meth:`~list.append`. To retrieve " +"an item from the top of the stack, use :meth:`~list.pop` without an explicit " +"index. For example::" msgstr "" "Οι μέθοδοι λίστας καθιστούν πιο εύκολη τη χρήση μιας λίστα ως στοίβας " "(stack), όπου το τελευταίο στοιχείο που προστέθηκε είναι το πρώτο στοιχείο " "που ανακτήθηκε (\"last-in, first-out\"). Για να προσθέσετε ένα στοιχείο " -"στην κορυφή της στοίβας (stack), χρησιμοποιήστε τη :meth:`!append`. Για να " -"ανακτήσετε ένα στοιχείο από την κορυφής της στοίβας, χρησιμοποιήστε τη :meth:" -"`!pop` χωρίς κάποιο σαφές index. Για παράδειγμα::" +"στην κορυφή της στοίβας, χρησιμοποιήστε την :meth:`~list.append`. Για να " +"ανακτήσετε ένα στοιχείο από την κορυφή της στοίβας, χρησιμοποιήστε την :meth:" +"`~list.pop` χωρίς κάποιο σαφές index. Για παράδειγμα::" -#: tutorial/datastructures.rst:148 +#: tutorial/datastructures.rst:147 msgid "" ">>> stack = [3, 4, 5]\n" ">>> stack.append(6)\n" @@ -267,11 +266,11 @@ msgstr "" ">>> stack\n" "[3, 4]" -#: tutorial/datastructures.rst:168 +#: tutorial/datastructures.rst:167 msgid "Using Lists as Queues" msgstr "Χρήση λιστών ως Ουρές (Queues)" -#: tutorial/datastructures.rst:172 +#: tutorial/datastructures.rst:171 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 " @@ -287,7 +286,7 @@ msgstr "" "αφαιρέσεις (στοιχείων) στην αρχή της λίστα είναι αργό (επειδή όλα τα " "στοιχεία πρέπει να μετατοπιστούν κατά ένα)." -#: tutorial/datastructures.rst:178 +#: tutorial/datastructures.rst:177 msgid "" "To implement a queue, use :class:`collections.deque` which was designed to " "have fast appends and pops from both ends. For example::" @@ -296,7 +295,7 @@ msgstr "" "deque` η οποία σχεδιάστηκε για να έχει γρήγορες προσθέσεις και αφαιρέσεις " "και από τα δύο άκρα. Για παράδειγμα:΅:" -#: tutorial/datastructures.rst:181 +#: tutorial/datastructures.rst:180 msgid "" ">>> from collections import deque\n" ">>> queue = deque([\"Eric\", \"John\", \"Michael\"])\n" @@ -320,11 +319,11 @@ msgstr "" ">>> queue # Remaining queue in order of arrival\n" "deque(['Michael', 'Terry', 'Graham'])" -#: tutorial/datastructures.rst:196 +#: tutorial/datastructures.rst:195 msgid "List Comprehensions" msgstr "Comprehensions Λίστας" -#: tutorial/datastructures.rst:198 +#: tutorial/datastructures.rst:197 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 " @@ -337,13 +336,13 @@ msgstr "" "ακολουθίας ή iterable, ή η δημιουργία μιας υποακολουθίας αυτών των στοιχείων " "που ικανοποιούν μια συγκεκριμένη συνθήκη." -#: tutorial/datastructures.rst:203 +#: tutorial/datastructures.rst:202 msgid "For example, assume we want to create a list of squares, like::" msgstr "" "Για παράδειγμα, ας υποθέσουμε ότι θέλουμε να δημιουργήσουμε μια λίστα " "τετραγώνων όπως::" -#: tutorial/datastructures.rst:205 +#: tutorial/datastructures.rst:204 msgid "" ">>> squares = []\n" ">>> for x in range(10):\n" @@ -359,7 +358,7 @@ msgstr "" ">>> squares\n" "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]" -#: tutorial/datastructures.rst:212 +#: tutorial/datastructures.rst:211 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 " @@ -369,23 +368,23 @@ msgstr "" "``x`` που εξακολουθεί να υπάρχει μετά την ολοκλήρωση της loop. Μπορούμε να " "υπολογίσουμε τη λίστα των τετραγώνων χωρίς παρενέργειες χρησιμοποιώντας::" -#: tutorial/datastructures.rst:216 +#: tutorial/datastructures.rst:215 msgid "squares = list(map(lambda x: x**2, range(10)))" msgstr "squares = list(map(lambda x: x**2, range(10)))" -#: tutorial/datastructures.rst:218 +#: tutorial/datastructures.rst:217 msgid "or, equivalently::" msgstr "ή, ισοδύναμα::" -#: tutorial/datastructures.rst:220 +#: tutorial/datastructures.rst:219 msgid "squares = [x**2 for x in range(10)]" msgstr "squares = [x**2 for x in range(10)]" -#: tutorial/datastructures.rst:222 +#: tutorial/datastructures.rst:221 msgid "which is more concise and readable." msgstr "που είναι πιο συνοπτικό και ευανάγνωστο." -#: tutorial/datastructures.rst:224 +#: tutorial/datastructures.rst:223 msgid "" "A list comprehension consists of brackets containing an expression followed " "by a :keyword:`!for` clause, then zero or more :keyword:`!for` or :keyword:`!" @@ -402,7 +401,7 @@ msgstr "" "Για παράδειγμα, αυτή η λίστα συνδυάζει τα στοιχεία δύο λιστών εάν δεν είναι " "ίσες::" -#: tutorial/datastructures.rst:231 +#: tutorial/datastructures.rst:230 msgid "" ">>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]\n" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" @@ -410,11 +409,11 @@ msgstr "" ">>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]\n" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" -#: tutorial/datastructures.rst:234 +#: tutorial/datastructures.rst:233 msgid "and it's equivalent to::" msgstr "και ισοδυναμεί με::" -#: tutorial/datastructures.rst:236 +#: tutorial/datastructures.rst:235 msgid "" ">>> combs = []\n" ">>> for x in [1,2,3]:\n" @@ -434,7 +433,7 @@ msgstr "" ">>> combs\n" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" -#: tutorial/datastructures.rst:245 +#: tutorial/datastructures.rst:244 msgid "" "Note how the order of the :keyword:`for` and :keyword:`if` statements is the " "same in both these snippets." @@ -442,7 +441,7 @@ msgstr "" "Σημειώστε πώς η σειρά των δηλώσεων :keyword:`for` και :keyword:`if` είναι " "ίδια και στα δύο αποσπάσματα." -#: tutorial/datastructures.rst:248 +#: tutorial/datastructures.rst:247 msgid "" "If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), " "it must be parenthesized. ::" @@ -450,7 +449,7 @@ msgstr "" "Εάν η έκφραση είναι πλειάδα (π.χ. το ``(x, y)`` στο προηγούμενο παράδειγμα), " "πρέπει να μπει σε παρένθεση. ::" -#: tutorial/datastructures.rst:251 +#: tutorial/datastructures.rst:250 msgid "" ">>> vec = [-4, -2, 0, 2, 4]\n" ">>> # create a new list with the values doubled\n" @@ -508,14 +507,14 @@ msgstr "" ">>> [num for elem in vec for num in elem]\n" "[1, 2, 3, 4, 5, 6, 7, 8, 9]" -#: tutorial/datastructures.rst:279 +#: tutorial/datastructures.rst:278 msgid "" "List comprehensions can contain complex expressions and nested functions::" msgstr "" "Τα comprehensions λίστας μπορεί να περιέχουν σύνθετες εκφράσεις και ένθετες " "συναρτήσεις::" -#: tutorial/datastructures.rst:281 +#: tutorial/datastructures.rst:280 msgid "" ">>> from math import pi\n" ">>> [str(round(pi, i)) for i in range(1, 6)]\n" @@ -525,11 +524,11 @@ msgstr "" ">>> [str(round(pi, i)) for i in range(1, 6)]\n" "['3.1', '3.14', '3.142', '3.1416', '3.14159']" -#: tutorial/datastructures.rst:286 +#: tutorial/datastructures.rst:285 msgid "Nested List Comprehensions" msgstr "Comprehensions Ένθετων Λιστών" -#: tutorial/datastructures.rst:288 +#: tutorial/datastructures.rst:287 msgid "" "The initial expression in a list comprehension can be any arbitrary " "expression, including another list comprehension." @@ -537,7 +536,7 @@ msgstr "" "Η αρχική έκφραση σε ένα comprehension λίστας μπορεί να είναι οποιαδήποτε " "αυθαίρετη έκφραση, συμπεριλαμβανομένης ενός άλλου comprehension λίστας." -#: tutorial/datastructures.rst:291 +#: tutorial/datastructures.rst:290 msgid "" "Consider the following example of a 3x4 matrix implemented as a list of 3 " "lists of length 4::" @@ -545,7 +544,7 @@ msgstr "" "Σκεφτείτε το ακόλουθο παράδειγμα μιας μήτρας 3x4 που υλοποιήθηκε ως μια " "λίστα 3 λιστών μήκους 4::" -#: tutorial/datastructures.rst:294 +#: tutorial/datastructures.rst:293 msgid "" ">>> matrix = [\n" "... [1, 2, 3, 4],\n" @@ -559,11 +558,11 @@ msgstr "" "... [9, 10, 11, 12],\n" "... ]" -#: tutorial/datastructures.rst:300 +#: tutorial/datastructures.rst:299 msgid "The following list comprehension will transpose rows and columns::" msgstr "Το ακόλουθο comprehension λίστας θα μεταφέρει γραμμές και στήλες::" -#: tutorial/datastructures.rst:302 +#: tutorial/datastructures.rst:301 msgid "" ">>> [[row[i] for row in matrix] for i in range(4)]\n" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" @@ -571,7 +570,7 @@ msgstr "" ">>> [[row[i] for row in matrix] for i in range(4)]\n" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" -#: tutorial/datastructures.rst:305 +#: tutorial/datastructures.rst:304 msgid "" "As we saw in the previous section, the inner list comprehension is evaluated " "in the context of the :keyword:`for` that follows it, so this example is " @@ -581,7 +580,7 @@ msgstr "" "αξιολογείται στο πλαίσιο του :keyword:`for` που την ακολουθεί, επομένως αυτό " "το παράδειγμα είναι ισοδύναμο με::" -#: tutorial/datastructures.rst:309 +#: tutorial/datastructures.rst:308 msgid "" ">>> transposed = []\n" ">>> for i in range(4):\n" @@ -597,11 +596,11 @@ msgstr "" ">>> transposed\n" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" -#: tutorial/datastructures.rst:316 +#: tutorial/datastructures.rst:315 msgid "which, in turn, is the same as::" msgstr "το οποίο, με τη σειρά του, είναι το ίδιο με::" -#: tutorial/datastructures.rst:318 +#: tutorial/datastructures.rst:317 msgid "" ">>> transposed = []\n" ">>> for i in range(4):\n" @@ -625,7 +624,7 @@ msgstr "" ">>> transposed\n" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" -#: tutorial/datastructures.rst:329 +#: tutorial/datastructures.rst:328 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::" @@ -634,7 +633,7 @@ msgstr "" "συναρτήσεις από τις σύνθετες εντολές ροής. Η συνάρτηση :func:`zip` θα έκανε " "εξαιρετική δουλειά για αυτήν την περίπτωση χρήσης::" -#: tutorial/datastructures.rst:332 +#: tutorial/datastructures.rst:331 msgid "" ">>> list(zip(*matrix))\n" "[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]" @@ -642,33 +641,33 @@ msgstr "" ">>> list(zip(*matrix))\n" "[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]" -#: tutorial/datastructures.rst:335 +#: tutorial/datastructures.rst:334 msgid "" "See :ref:`tut-unpacking-arguments` for details on the asterisk in this line." msgstr "" "Δείτε :ref:`tut-unpacking-arguments` για λεπτομέρειες σχετικά με τον " "αστερίσκο σε αυτήν τη γραμμή." -#: tutorial/datastructures.rst:340 +#: tutorial/datastructures.rst:339 msgid "The :keyword:`!del` statement" msgstr "Η δήλωση :keyword:`!del`" -#: tutorial/datastructures.rst:342 +#: tutorial/datastructures.rst:341 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 " +"value: the :keyword:`del` statement. This differs from the :meth:`~list." +"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 "" "Υπάρχει ένας τρόπος να αφαιρέσετε ένα στοιχείο από μια λίστα με το ευρετήριο " "του αντί για την τιμή του: η δήλωση :keyword:`del`. Αυτό διαφέρει από τη " -"μέθοδο :meth:`!pop` που επιστρέφει μια τιμή. Η δήλωση :keyword:`!del` " +"μέθοδο :meth:`~list.pop` που επιστρέφει μια τιμή. Η δήλωση :keyword:`!del` " "μπορεί επίσης να χρησιμοποιηθεί για την αφαίρεση τμημάτων από μια λίστα ή " -"για την εκκαθάριση ολόκληρης της λίστας (κάτι που κάναμε νωρίτερα με την " -"ανάθεση μιας κενής λίστας στο slice). Για παράδειγμα::" +"για να καθαρίσει ολόκληρη τη λίστα (που κάναμε νωρίτερα με την εκχώρηση μιας " +"κενής λίστας στο τμήμα). Για παράδειγμα::" -#: tutorial/datastructures.rst:348 +#: tutorial/datastructures.rst:347 msgid "" ">>> a = [-1, 1, 66.25, 333, 333, 1234.5]\n" ">>> del a[0]\n" @@ -692,17 +691,17 @@ msgstr "" ">>> a\n" "[]" -#: tutorial/datastructures.rst:359 +#: tutorial/datastructures.rst:358 msgid ":keyword:`del` can also be used to delete entire variables::" msgstr "" "Το :keyword:`del` μπορεί επίσης να χρησιμοποιηθεί για τη διαγραφή ολόκληρων " "μεταβλητών::" -#: tutorial/datastructures.rst:361 +#: tutorial/datastructures.rst:360 msgid ">>> del a" msgstr ">>> del a" -#: tutorial/datastructures.rst:363 +#: tutorial/datastructures.rst:362 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." @@ -711,11 +710,11 @@ msgstr "" "του εκχωρηθεί άλλη τιμή). Θα βρούμε άλλες χρήσεις για το :keyword:`del` " "αργότερα." -#: tutorial/datastructures.rst:370 +#: tutorial/datastructures.rst:369 msgid "Tuples and Sequences" msgstr "Πλειάδες (Tuples) και Ακολουθίες" -#: tutorial/datastructures.rst:372 +#: tutorial/datastructures.rst:371 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 " @@ -730,14 +729,14 @@ msgstr "" "προστεθούν. Υπάρχει επίσης ένας άλλος τυπικός τύπος δεδομένων ακολουθίας " "type: the *πλειάδα* (*tuple*)." -#: tutorial/datastructures.rst:378 +#: tutorial/datastructures.rst:377 msgid "" "A tuple consists of a number of values separated by commas, for instance::" msgstr "" "Μια πλειάδα (tuple) αποτελείται από έναν αριθμό τιμών που χωρίζονται με " "κόμματα, για παράδειγμα::" -#: tutorial/datastructures.rst:380 +#: tutorial/datastructures.rst:379 msgid "" ">>> t = 12345, 54321, 'hello!'\n" ">>> t[0]\n" @@ -777,7 +776,7 @@ msgstr "" ">>> v\n" "([1, 2, 3], [3, 2, 1])" -#: tutorial/datastructures.rst:400 +#: tutorial/datastructures.rst:399 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 " @@ -794,7 +793,7 @@ msgstr "" "στοιχεία μιας πλειάδας, ωστόσο είναι δυνατό να δημιουργηθούν πλειάδες " "(tuples) που περιέχουν μεταβλητά αντικείμενα, όπως λίστες." -#: tutorial/datastructures.rst:407 +#: tutorial/datastructures.rst:406 msgid "" "Though tuples may seem similar to lists, they are often used in different " "situations and for different purposes. Tuples are :term:`immutable`, and " @@ -813,7 +812,7 @@ msgstr "" "namedtuple>`). Οι λίστες είναι :term:`mutable`, και τα στοιχεία τους είναι " "συνήθως ομοιογενή και προσπελάζονται με επανάληψη στη λίστα." -#: tutorial/datastructures.rst:415 +#: tutorial/datastructures.rst:414 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 " @@ -828,7 +827,7 @@ msgstr "" "μια τιμή με κόμμα (δεν αρκεί να περικλείεται μια μόνο τιμή σε παρενθέσεις). " "Άσχημο, αλλά αποτελεσματικό. Για παράδειγμα::" -#: tutorial/datastructures.rst:421 +#: tutorial/datastructures.rst:420 msgid "" ">>> empty = ()\n" ">>> singleton = 'hello', # <-- note trailing comma\n" @@ -848,7 +847,7 @@ msgstr "" ">>> singleton\n" "('hello',)" -#: tutorial/datastructures.rst:430 +#: tutorial/datastructures.rst:429 msgid "" "The statement ``t = 12345, 54321, 'hello!'`` is an example of *tuple " "packing*: the values ``12345``, ``54321`` and ``'hello!'`` are packed " @@ -858,11 +857,11 @@ msgstr "" "packing*: οι τιμές ``12345``, ``54321`` και ``'hello!'`` είναι συσκευασμένες " "μαζί σε μια πλειάδα (tuple). Η αντίστροφη λειτουργία είναι επίσης εφικτή::" -#: tutorial/datastructures.rst:434 +#: tutorial/datastructures.rst:433 msgid ">>> x, y, z = t" msgstr ">>> x, y, z = t" -#: tutorial/datastructures.rst:436 +#: tutorial/datastructures.rst:435 msgid "" "This is called, appropriately enough, *sequence unpacking* and works for any " "sequence on the right-hand side. Sequence unpacking requires that there are " @@ -877,23 +876,23 @@ msgstr "" "στην πραγματικότητα απλώς ένας συνδυασμός tuple packing και sequence " "unpacking." -#: tutorial/datastructures.rst:446 +#: tutorial/datastructures.rst:445 msgid "Sets" msgstr "Σύνολα (Sets)" -#: tutorial/datastructures.rst:448 +#: tutorial/datastructures.rst:447 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." +"Python also includes a data type for :ref:`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 περιλαμβάνει επίσης έναν τύπο δεδομένων για *sets*. Ένα set είναι " -"μια μη ταξινομημένη συλλογή χωρίς διπλότυπα στοιχεία. Οι βασικές χρήσεις " -"περιλαμβάνουν τη δοκιμή ιδιότητας μέλους και την εξάλειψη διπλότυπων " -"εγγραφών. Τα αντικείμενα συνόλου υποστηρίζουν επίσης μαθηματικές πράξεις " -"όπως ένωση, τομή, διαφορά και συμμετρική διαφορά." +"Η Python περιλαμβάνει επίσης έναν τύπο δεδομένων για :ref:`sets `. Ένα set είναι μια μη ταξινομημένη συλλογή χωρίς διπλότυπα στοιχεία. " +"Οι βασικές χρήσεις περιλαμβάνουν τη δοκιμή ιδιότητας μέλους και την εξάλειψη " +"διπλότυπων εγγραφών. Τα αντικείμενα συνόλου υποστηρίζουν επίσης μαθηματικές " +"πράξεις όπως ένωση, τομή, διαφορά και συμμετρική διαφορά." #: tutorial/datastructures.rst:453 msgid "" @@ -993,8 +992,8 @@ msgid "" "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`." +"in place using index assignments, slice assignments, or methods like :meth:" +"`~list.append` and :meth:`~list.extend`." msgstr "" "Ένα άλλος χρήσιμος τύπος δεδομένων που είναι ενσωματωμένος στην Python είναι " "το *dictionary* (βλ. :ref:`typesmapping`). Τα λεξικά βρίσκονται μερικές " @@ -1008,7 +1007,7 @@ msgstr "" "έμμεσα, δεν μπορεί να χρησιμοποιηθεί ως κλειδί. Δεν μπορείτε να " "χρησιμοποιήσετε λίστες ως κλειδιά, καθώς οι λίστες μπορούν να τροποποιηθούν " "επιτόπου χρησιμοποιώντας αναθέσεις index, αναθέσεις slice, ή μεθόδους όπως :" -"meth:`!append` και :meth:`!.extend`." +"meth:`~list.append` και :meth:`~list.extend`." #: tutorial/datastructures.rst:506 msgid "" @@ -1029,17 +1028,30 @@ 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." +"the old value associated with that key is forgotten." msgstr "" "Οι κύριες λειτουργίες σε ένα λεξικό είναι η αποθήκευση μιας τιμής με κάποιο " "κλειδί και η εξαγωγή της τιμής που δίνεται στο κλειδί. Είναι επίσης δυνατή " "η διαγραφή ενός ζεύγους key:value με ``del``. Εάν αποθηκεύετε " "χρησιμοποιώντας ένα κλειδί που βρίσκεται ήδη σε χρήση, η παλιά τιμή που " -"σχετίζεται με αυτό το κλειδί έχει ξεχαστεί. Είναι σφάλμα να εξαγάγετε μια " -"τιμή χρησιμοποιώντας ένα ανύπαρκτο κλειδί." +"σχετίζεται με αυτό το κλειδί έχει ξεχαστεί." + +#: tutorial/datastructures.rst:517 +msgid "" +"Extracting a value for a non-existent key by subscripting (``d[key]``) " +"raises a :exc:`KeyError`. To avoid getting this error when trying to access " +"a possibly non-existent key, use the :meth:`~dict.get` method instead, which " +"returns ``None`` (or a specified default value) if the key is not in the " +"dictionary." +msgstr "" +"Η εξαγωγή μιας τιμής για ένα μη υπάρχον κλειδί με δεικτοδότηση (``d[key]``) " +"προκαλεί ένα :exc:`KeyError`. Για να αποφύγετε αυτό το σφάλμα όταν " +"προσπαθείτε να αποκτήσετε πρόσβαση σε ένα πιθανώς μη υπάρχον κλειδί, " +"χρησιμοποιήστε αντίθετα τη μέθοδο :meth:`~dict.get`, η οποία επιστρέφει " +"``None`` (ή μια καθορισμένη προεπιλεγμένη τιμή) εάν το κλειδί δεν βρίσκεται " +"στο λεξικό." -#: tutorial/datastructures.rst:518 +#: tutorial/datastructures.rst:522 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 " @@ -1052,11 +1064,11 @@ msgstr "" "υπάρχει ένα μεμονωμένο κλειδί στο λεξικό, χρησιμοποιήστε τη λέξη-κλειδί :" "keyword:`in`." -#: tutorial/datastructures.rst:523 +#: tutorial/datastructures.rst:527 msgid "Here is a small example using a dictionary::" msgstr "Ακολουθεί ένα μικρό παράδειγμα χρησιμοποιώντας ένα λεξικό::" -#: tutorial/datastructures.rst:525 +#: tutorial/datastructures.rst:529 msgid "" ">>> tel = {'jack': 4098, 'sape': 4139}\n" ">>> tel['guido'] = 4127\n" @@ -1064,6 +1076,12 @@ msgid "" "{'jack': 4098, 'sape': 4139, 'guido': 4127}\n" ">>> tel['jack']\n" "4098\n" +">>> tel['irv']\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"KeyError: 'irv'\n" +">>> print(tel.get('irv'))\n" +"None\n" ">>> del tel['sape']\n" ">>> tel['irv'] = 4127\n" ">>> tel\n" @@ -1083,6 +1101,12 @@ msgstr "" "{'jack': 4098, 'sape': 4139, 'guido': 4127}\n" ">>> tel['jack']\n" "4098\n" +">>> tel['irv']\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"KeyError: 'irv'\n" +">>> print(tel.get('irv'))\n" +"None\n" ">>> del tel['sape']\n" ">>> tel['irv'] = 4127\n" ">>> tel\n" @@ -1096,7 +1120,7 @@ msgstr "" ">>> 'jack' not in tel\n" "False" -#: tutorial/datastructures.rst:544 +#: tutorial/datastructures.rst:554 msgid "" "The :func:`dict` constructor builds dictionaries directly from sequences of " "key-value pairs::" @@ -1104,7 +1128,7 @@ msgstr "" "Ο constructor :func:`dict` δημιουργεί λεξικά απευθείας από ακολουθίες ζευγών " "key-value::" -#: tutorial/datastructures.rst:547 +#: tutorial/datastructures.rst:557 msgid "" ">>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])\n" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" @@ -1112,7 +1136,7 @@ msgstr "" ">>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])\n" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" -#: tutorial/datastructures.rst:550 +#: tutorial/datastructures.rst:560 msgid "" "In addition, dict comprehensions can be used to create dictionaries from " "arbitrary key and value expressions::" @@ -1120,7 +1144,7 @@ msgstr "" "Επιπλέον, τα comprehensions λεξικών μπορούν να χρησιμοποιηθούν για τη " "δημιουργία λεξικών από αυθαίρετες εκφράσεις κλειδιού και τιμών::" -#: tutorial/datastructures.rst:553 +#: tutorial/datastructures.rst:563 msgid "" ">>> {x: x**2 for x in (2, 4, 6)}\n" "{2: 4, 4: 16, 6: 36}" @@ -1128,7 +1152,7 @@ msgstr "" ">>> {x: x**2 for x in (2, 4, 6)}\n" "{2: 4, 4: 16, 6: 36}" -#: tutorial/datastructures.rst:556 +#: tutorial/datastructures.rst:566 msgid "" "When the keys are simple strings, it is sometimes easier to specify pairs " "using keyword arguments::" @@ -1136,7 +1160,7 @@ msgstr "" "Όταν τα κλειδιά είναι απλές συμβολοσειρές, μερικές φορές είναι πιο εύκολο να " "ορίσετε ζεύγη χρησιμοποιώντας ορίσματα λέξεων-κλειδιών::" -#: tutorial/datastructures.rst:559 +#: tutorial/datastructures.rst:569 msgid "" ">>> dict(sape=4139, guido=4127, jack=4098)\n" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" @@ -1144,11 +1168,11 @@ msgstr "" ">>> dict(sape=4139, guido=4127, jack=4098)\n" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" -#: tutorial/datastructures.rst:566 +#: tutorial/datastructures.rst:576 msgid "Looping Techniques" msgstr "Τεχνικές Looping" -#: tutorial/datastructures.rst:568 +#: tutorial/datastructures.rst:578 msgid "" "When looping through dictionaries, the key and corresponding value can be " "retrieved at the same time using the :meth:`~dict.items` method. ::" @@ -1156,7 +1180,7 @@ msgstr "" "Κατά το looping μέσω λεξικών, το κλειδί και η αντίστοιχη τιμή μπορούν να " "ανακτηθούν ταυτόχρονα χρησιμοποιώντας τη μέθοδο :meth:`~dict.items`. ::" -#: tutorial/datastructures.rst:571 +#: tutorial/datastructures.rst:581 msgid "" ">>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}\n" ">>> for k, v in knights.items():\n" @@ -1172,7 +1196,7 @@ msgstr "" "gallahad the pure\n" "robin the brave" -#: tutorial/datastructures.rst:578 +#: tutorial/datastructures.rst:588 msgid "" "When looping through a sequence, the position index and corresponding value " "can be retrieved at the same time using the :func:`enumerate` function. ::" @@ -1181,7 +1205,7 @@ msgstr "" "μπορούν να ανακτηθούν ταυτόχρονα χρησιμοποιώντας τη συνάρτηση :func:" "`enumerate`. ::" -#: tutorial/datastructures.rst:581 +#: tutorial/datastructures.rst:591 msgid "" ">>> for i, v in enumerate(['tic', 'tac', 'toe']):\n" "... print(i, v)\n" @@ -1197,7 +1221,7 @@ msgstr "" "1 tac\n" "2 toe" -#: tutorial/datastructures.rst:588 +#: tutorial/datastructures.rst:598 msgid "" "To loop over two or more sequences at the same time, the entries can be " "paired with the :func:`zip` function. ::" @@ -1205,7 +1229,7 @@ msgstr "" "Για να κάνετε loop σε δύο ή περισσότερες ακολουθίες ταυτόχρονα, οι " "καταχωρίσεις μπορούν να αντιστοιχιστούν με τη συνάρτηση :func:`zip`. ::" -#: tutorial/datastructures.rst:591 +#: tutorial/datastructures.rst:601 msgid "" ">>> questions = ['name', 'quest', 'favorite color']\n" ">>> answers = ['lancelot', 'the holy grail', 'blue']\n" @@ -1225,7 +1249,7 @@ msgstr "" "What is your quest? It is the holy grail.\n" "What is your favorite color? It is blue." -#: tutorial/datastructures.rst:600 +#: tutorial/datastructures.rst:610 msgid "" "To loop over a sequence in reverse, first specify the sequence in a forward " "direction and then call the :func:`reversed` function. ::" @@ -1233,7 +1257,7 @@ msgstr "" "Για να κάνετε loop σε μια ακολουθία αντίστροφα, καθορίστε πρώτα την " "ακολουθία προς τα εμπρός και μετά καλέστε τη συνάρτηση :func:`reversed`. ::" -#: tutorial/datastructures.rst:603 +#: tutorial/datastructures.rst:613 msgid "" ">>> for i in reversed(range(1, 10, 2)):\n" "... print(i)\n" @@ -1253,7 +1277,7 @@ msgstr "" "3\n" "1" -#: tutorial/datastructures.rst:612 +#: tutorial/datastructures.rst:622 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. ::" @@ -1262,7 +1286,7 @@ msgstr "" "συνάρτηση :func:`sorted`, η οποία επιστρέφει μια νέα ταξινομημένη λίστα " "αφήνοντας την πηγή αναλλοίωτη. ::" -#: tutorial/datastructures.rst:615 +#: tutorial/datastructures.rst:625 msgid "" ">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n" ">>> for i in sorted(basket):\n" @@ -1286,7 +1310,7 @@ msgstr "" "orange\n" "pear" -#: tutorial/datastructures.rst:626 +#: tutorial/datastructures.rst:636 msgid "" "Using :func:`set` on a sequence eliminates duplicate elements. The use of :" "func:`sorted` in combination with :func:`set` over a sequence is an " @@ -1298,7 +1322,7 @@ msgstr "" "είναι ένας ιδιωματικός τρόπος για να κάνετε loop πάνω από μοναδικά στοιχεία " "της ακολουθίας σε ταξινομημένη σειρά. ::" -#: tutorial/datastructures.rst:630 +#: tutorial/datastructures.rst:640 msgid "" ">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n" ">>> for f in sorted(set(basket)):\n" @@ -1318,7 +1342,7 @@ msgstr "" "orange\n" "pear" -#: tutorial/datastructures.rst:639 +#: tutorial/datastructures.rst:649 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. ::" @@ -1326,7 +1350,7 @@ msgstr "" "Μερικές φορές είναι δελεαστικό να αλλάζετε μια λίστα ενώ την περιηγείστε∙ " "ωστόσο, είναι συχνά πιο απλό και ασφαλές να δημιουργήσετε μια νέα λίστα. ::" -#: tutorial/datastructures.rst:642 +#: tutorial/datastructures.rst:652 msgid "" ">>> import math\n" ">>> raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8]\n" @@ -1348,11 +1372,11 @@ msgstr "" ">>> filtered_data\n" "[56.2, 51.7, 55.3, 52.5, 47.8]" -#: tutorial/datastructures.rst:656 +#: tutorial/datastructures.rst:666 msgid "More on Conditions" msgstr "Περισσότερα για τις συνθήκες" -#: tutorial/datastructures.rst:658 +#: tutorial/datastructures.rst:668 msgid "" "The conditions used in ``while`` and ``if`` statements can contain any " "operators, not just comparisons." @@ -1360,7 +1384,7 @@ msgstr "" "Οι συνθήκες που χρησιμοποιούνται στις δηλώσεις ``while`` και ``if`` μπορούν " "να περιέχουν οποιουσδήποτε τελεστές, όχι μόνο συγκρίσεις." -#: tutorial/datastructures.rst:662 +#: tutorial/datastructures.rst:672 msgid "" "The comparison operators ``in`` and ``not in`` are membership tests that " "determine whether a value is in (or not in) a container. The operators " @@ -1374,7 +1398,7 @@ msgstr "" "ίδιο αντικείμενο. Όλοι οι τελεστές σύγκρισης έχουν την ίδια προτεραιότητα, " "η οποία είναι χαμηλότερη από αυτή όλων των αριθμητικών τελεστών." -#: tutorial/datastructures.rst:668 +#: tutorial/datastructures.rst:678 msgid "" "Comparisons can be chained. For example, ``a < b == c`` tests whether ``a`` " "is less than ``b`` and moreover ``b`` equals ``c``." @@ -1383,7 +1407,7 @@ msgstr "" "ελέγχει εάν το ``a`` είναι μικρότερο από ``b`` και επιπλέον το ``b`` ισούται " "με ``c``." -#: tutorial/datastructures.rst:671 +#: tutorial/datastructures.rst:681 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 " @@ -1400,7 +1424,7 @@ msgstr "" "ισοδυναμεί με ``(A and (not B)) or C``. Όπως πάντα, οι παρενθέσεις μπορούν " "να χρησιμοποιηθούν για να εκφράσουν την επιθυμητή σύνθεση." -#: tutorial/datastructures.rst:678 +#: tutorial/datastructures.rst:688 msgid "" "The Boolean operators ``and`` and ``or`` are so-called *short-circuit* " "operators: their arguments are evaluated from left to right, and evaluation " @@ -1417,7 +1441,7 @@ msgstr "" "και όχι ως λογική, η τιμή επιστροφής ενός short-circuit τελεστή είναι το " "τελευταίο αξιολογημένο όρισμα." -#: tutorial/datastructures.rst:685 +#: tutorial/datastructures.rst:695 msgid "" "It is possible to assign the result of a comparison or other Boolean " "expression to a variable. For example, ::" @@ -1425,7 +1449,7 @@ msgstr "" "Είναι δυνατό να αντιστοιχίσετε το αποτέλεσμα μιας σύγκρισης ή άλλη δυαδική " "έκφρασης σε μια μεταβλητή. Για παράδειγμα, ::" -#: tutorial/datastructures.rst:688 +#: tutorial/datastructures.rst:698 msgid "" ">>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'\n" ">>> non_null = string1 or string2 or string3\n" @@ -1437,7 +1461,7 @@ msgstr "" ">>> non_null\n" "'Trondheim'" -#: tutorial/datastructures.rst:693 +#: tutorial/datastructures.rst:703 msgid "" "Note that in Python, unlike C, assignment inside expressions must be done " "explicitly with the :ref:`walrus operator `` is legal " "provided that the objects have appropriate comparison methods. For example, " @@ -1516,11 +1540,11 @@ msgstr "" "αντί να παρέχει μια αυθαίρετη παραγγελία, ο διερμηνέας θα κάνει raise μια " "εξαίρεση :exc:`TypeError`." -#: tutorial/datastructures.rst:732 +#: tutorial/datastructures.rst:742 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: tutorial/datastructures.rst:733 +#: tutorial/datastructures.rst:743 msgid "" "Other languages may return the mutated object, which allows method chaining, " "such as ``d->insert(\"a\")->remove(\"b\")->sort();``." diff --git a/tutorial/errors.po b/tutorial/errors.po index 46df48b5..8112db24 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-04 22:12+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: LANGUAGE \n" diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index df753392..cc797566 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-08-04 20:25+0000\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" diff --git a/tutorial/index.po b/tutorial/index.po index 3ac868f9..312dd106 100644 --- a/tutorial/index.po +++ b/tutorial/index.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2024-12-10 22:14+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Dimitrios Papadopoulos\n" "Language-Team: PyGreece \n" "Language: el\n" @@ -19,13 +19,16 @@ msgstr "" #: tutorial/index.rst:5 msgid "The Python Tutorial" -msgstr "Το Python Tutorial" +msgstr "Οδηγός εκμάθησης Python" #: tutorial/index.rst:7 msgid "" "This tutorial is designed for *programmers* that are new to the Python " "language, **not** *beginners* who are new to programming." msgstr "" +"Αυτός ο οδηγός εκμάθησης έχει σχεδιασττεί για *προγραμματιστές* που είναι " +"νέοι στην γλώσσα Python, **όχι** για *αρχάριους* που είναι νέοι στο " +"προγραμματισμό." #: tutorial/index.rst:11 msgid "" @@ -46,7 +49,7 @@ msgstr "" 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 " +"website, 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 "" diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index ec1187a3..c9d26bf5 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2024-09-20 11:10+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -223,21 +223,23 @@ msgstr "" #: tutorial/inputoutput.rst:98 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." +"The :mod:`string` module contains support for a simple templating approach " +"based upon regular expressions, via :class:`string.Template`. This offers " +"yet another way to substitute values into strings, using placeholders like " +"``$x`` and replacing them with values from a dictionary. This syntax is easy " +"to use, although it offers much less control for formatting." msgstr "" -"Το module :mod:`string` περιέχει μια κλάση :class:`~string.Template` που " -"προσφέρει έναν ακόμη τρόπο αντικατάστασης τιμών σε συμβολοσειρές, " -"χρησιμοποιώντας placeholders όπως ``$x`` και αντικαθιστώντας τις με τιμές " -"από ένα λεξικό, αλλά προσφέρει πολύ λιγότερο έλεγχο της μορφοποίησης." +"Το :mod:`string` module περιέχει υποστήριξη για μια απλή προσέγγιση " +"templating βασισμένη σε κανονικές εκφράσεις, μέσω της :class:`string." +"Template`. Αυτό προσφέρει έναν ακόμη τρόπο για να αντικαταστήσετε τιμές σε " +"συμβολοσειρές, χρησιμοποιώντας θέσεις κράτησης όπως ``$x`` και " +"αντικαθιστώντας τις με τιμές από ένα λεξικό." -#: tutorial/inputoutput.rst:114 +#: tutorial/inputoutput.rst:115 msgid "Formatted String Literals" msgstr "Μορφοποιημένα String Literals" -#: tutorial/inputoutput.rst:116 +#: tutorial/inputoutput.rst:117 msgid "" ":ref:`Formatted string literals ` (also called f-strings for " "short) let you include the value of Python expressions inside a string by " @@ -249,7 +251,7 @@ msgstr "" "Python μέσα σε μια συμβολοσειρά, θέτοντας πρόθεμα στη συμβολοσειρά με ``f`` " "ή ``F`` και γράφοντας εκφράσεις ως ``{expression}``." -#: tutorial/inputoutput.rst:121 +#: tutorial/inputoutput.rst:122 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 " @@ -259,7 +261,7 @@ msgstr "" "έκφραση. Αυτό επιτρέπει μεγαλύτερο έλεγχο στον τρόπο μορφοποίησης της τιμής. " "Το παρακάτω παράδειγμα στρογγυλοποιεί το pi σε τρία ψηφία μετά το δεκαδικό::" -#: tutorial/inputoutput.rst:125 +#: tutorial/inputoutput.rst:126 msgid "" ">>> import math\n" ">>> print(f'The value of pi is approximately {math.pi:.3f}.')\n" @@ -269,7 +271,7 @@ msgstr "" ">>> print(f'The value of pi is approximately {math.pi:.3f}.')\n" "The value of pi is approximately 3.142." -#: tutorial/inputoutput.rst:129 +#: tutorial/inputoutput.rst:130 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. ::" @@ -278,7 +280,7 @@ msgstr "" "το πεδίο να έχει πλάτος ελάχιστου αριθμού χαρακτήρων. Αυτό είναι χρήσιμο " "για την ευθυγράμμιση στηλών. ::" -#: tutorial/inputoutput.rst:132 +#: tutorial/inputoutput.rst:133 msgid "" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}\n" ">>> for name, phone in table.items():\n" @@ -296,7 +298,7 @@ msgstr "" "Jack ==> 4098\n" "Dcab ==> 7678" -#: tutorial/inputoutput.rst:140 +#: tutorial/inputoutput.rst:141 msgid "" "Other modifiers can be used to convert the value before it is formatted. ``'!" "a'`` applies :func:`ascii`, ``'!s'`` applies :func:`str`, and ``'!r'`` " @@ -306,7 +308,7 @@ msgstr "" "πριν τη μορφοποίηση της. Το ``'!a'`` ισχύει για :func:`ascii`, το ``'!s'`` " "ισχύει για :func:`str`, και το ``'!r'`` ισχύει για :func:`repr`::" -#: tutorial/inputoutput.rst:144 +#: tutorial/inputoutput.rst:145 msgid "" ">>> animals = 'eels'\n" ">>> print(f'My hovercraft is full of {animals}.')\n" @@ -320,7 +322,7 @@ msgstr "" ">>> print(f'My hovercraft is full of {animals!r}.')\n" "My hovercraft is full of 'eels'." -#: tutorial/inputoutput.rst:150 +#: tutorial/inputoutput.rst:151 msgid "" "The ``=`` specifier can be used to expand an expression to the text of the " "expression, an equal sign, then the representation of the evaluated " @@ -330,7 +332,7 @@ msgstr "" "έκφραση στο κείμενο της έκφρασης, ένα σύμβολο ίσο, και μετά την αναπαράσταση " "της αξιολογούμενης έκφρασης:" -#: tutorial/inputoutput.rst:159 +#: tutorial/inputoutput.rst:160 msgid "" "See :ref:`self-documenting expressions ` for more " "information on the ``=`` specifier. For a reference on these format " @@ -341,15 +343,15 @@ msgstr "" "αναφορά σε αυτές τις προδιαγραφές μορφής, ανατρέξτε στον οδηγό αναφοράς για " "το :ref:`formatspec`." -#: tutorial/inputoutput.rst:166 +#: tutorial/inputoutput.rst:167 msgid "The String format() Method" msgstr "Η μέθοδος String format()" -#: tutorial/inputoutput.rst:168 +#: tutorial/inputoutput.rst:169 msgid "Basic usage of the :meth:`str.format` method looks like this::" msgstr "Η βασική χρήση της μεθόδου :meth:`str.format` μοιάζει με αυτό::" -#: tutorial/inputoutput.rst:170 +#: tutorial/inputoutput.rst:171 msgid "" ">>> print('We are the {} who say \"{}!\"'.format('knights', 'Ni'))\n" "We are the knights who say \"Ni!\"" @@ -357,7 +359,7 @@ msgstr "" ">>> print('We are the {} who say \"{}!\"'.format('knights', 'Ni'))\n" "We are the knights who say \"Ni!\"" -#: tutorial/inputoutput.rst:173 +#: tutorial/inputoutput.rst:174 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 " @@ -370,7 +372,7 @@ msgstr "" "αναφέρεται στη θέση του αντικειμένου που μεταβιβάζεται στη μέθοδο :meth:`str." "format`. ::" -#: tutorial/inputoutput.rst:178 +#: tutorial/inputoutput.rst:179 msgid "" ">>> print('{0} and {1}'.format('spam', 'eggs'))\n" "spam and eggs\n" @@ -382,7 +384,7 @@ msgstr "" ">>> print('{1} and {0}'.format('spam', 'eggs'))\n" "eggs and spam" -#: tutorial/inputoutput.rst:183 +#: tutorial/inputoutput.rst:184 msgid "" "If keyword arguments are used in the :meth:`str.format` method, their values " "are referred to by using the name of the argument. ::" @@ -390,7 +392,7 @@ msgstr "" "Εάν χρησιμοποιούνται keyword ορίσματα στη μέθοδο :meth:`str.format`, οι " "τιμές τους αναφέρονται χρησιμοποιώντας το όνομα του ορίσματος. ::" -#: tutorial/inputoutput.rst:186 +#: tutorial/inputoutput.rst:187 msgid "" ">>> print('This {food} is {adjective}.'.format(\n" "... food='spam', adjective='absolutely horrible'))\n" @@ -400,12 +402,12 @@ msgstr "" "... food='spam', adjective='absolutely horrible'))\n" "This spam is absolutely horrible." -#: tutorial/inputoutput.rst:190 +#: tutorial/inputoutput.rst:191 msgid "Positional and keyword arguments can be arbitrarily combined::" msgstr "" "Τα ορίσματα θέσης και λέξης-κλειδιού μπορούν να συνδυαστούν αυθαίρετα::" -#: tutorial/inputoutput.rst:192 +#: tutorial/inputoutput.rst:193 msgid "" ">>> print('The story of {0}, {1}, and {other}.'.format('Bill', 'Manfred',\n" "... other='Georg'))\n" @@ -415,7 +417,7 @@ msgstr "" "... other='Georg'))\n" "The story of Bill, Manfred, and Georg." -#: tutorial/inputoutput.rst:196 +#: tutorial/inputoutput.rst:197 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 " @@ -427,7 +429,7 @@ msgstr "" "όνομα αντί για τη θέση. Αυτό μπορεί να γίνει απλά περνώντας το λεξικό και " "χρησιμοποιώντας αγκύλες ``'[]'`` για πρόσβαση στα κλειδιά ::" -#: tutorial/inputoutput.rst:201 +#: tutorial/inputoutput.rst:202 msgid "" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}\n" ">>> print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; '\n" @@ -439,7 +441,7 @@ msgstr "" "... 'Dcab: {0[Dcab]:d}'.format(table))\n" "Jack: 4098; Sjoerd: 4127; Dcab: 8637678" -#: tutorial/inputoutput.rst:206 +#: tutorial/inputoutput.rst:207 msgid "" "This could also be done by passing the ``table`` dictionary as keyword " "arguments with the ``**`` notation. ::" @@ -447,7 +449,7 @@ msgstr "" "Αυτό θα μπορούσε επίσης να γίνει περνώντας το λεξικό ``table`` ως ορίσματα " "λέξεων-κλειδιών με την σημείωση ``**``. ::" -#: tutorial/inputoutput.rst:209 +#: tutorial/inputoutput.rst:210 msgid "" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}\n" ">>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'." @@ -459,7 +461,7 @@ msgstr "" "format(**table))\n" "Jack: 4098; Sjoerd: 4127; Dcab: 8637678" -#: tutorial/inputoutput.rst:213 +#: tutorial/inputoutput.rst:214 msgid "" "This is particularly useful in combination with the built-in function :func:" "`vars`, which returns a dictionary containing all local variables::" @@ -468,7 +470,7 @@ msgstr "" "συνάρτηση :func:`vars`, η οποία επιστρέφει ένα λεξικό που περιέχει όλες τις " "τοπικές μεταβλητές::" -#: tutorial/inputoutput.rst:216 +#: tutorial/inputoutput.rst:217 msgid "" ">>> table = {k: str(v) for k, v in vars().items()}\n" ">>> message = \" \".join([f'{k}: ' + '{' + k +'};' for k in table.keys()])\n" @@ -480,7 +482,7 @@ msgstr "" ">>> print(message.format(**table))\n" "__name__: __main__; __doc__: None; __package__: None; __loader__: ..." -#: tutorial/inputoutput.rst:221 +#: tutorial/inputoutput.rst:222 msgid "" "As an example, the following lines produce a tidily aligned set of columns " "giving integers and their squares and cubes::" @@ -488,7 +490,7 @@ msgstr "" "Για παράδειγμα, οι ακόλουθες γραμμές παράγουν ένα τακτοποιημένο σύνολο " "στηλών που δίνουν ακέραιους αριθμούς και τα τετράγωνα και τους κύβους τους::" -#: tutorial/inputoutput.rst:224 +#: tutorial/inputoutput.rst:225 msgid "" ">>> for x in range(1, 11):\n" "... print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))\n" @@ -518,7 +520,7 @@ msgstr "" " 9 81 729\n" "10 100 1000" -#: tutorial/inputoutput.rst:238 +#: tutorial/inputoutput.rst:239 msgid "" "For a complete overview of string formatting with :meth:`str.format`, see :" "ref:`formatstrings`." @@ -526,16 +528,16 @@ msgstr "" "Για μια πλήρη επισκόπηση της μορφοποίησης συμβολοσειρών με :meth:`str." "format`, δείτε :ref:`formatstrings`." -#: tutorial/inputoutput.rst:243 +#: tutorial/inputoutput.rst:244 msgid "Manual String Formatting" msgstr "Χειροκίνητη Μορφοποίηση Συμβολοσειρών" -#: tutorial/inputoutput.rst:245 +#: tutorial/inputoutput.rst:246 msgid "Here's the same table of squares and cubes, formatted manually::" msgstr "" "Ακολουθεί ο ίδιος πίνακας τετραγώνων και κύβων, μορφοποιημένος χειροκίνητα::" -#: tutorial/inputoutput.rst:247 +#: tutorial/inputoutput.rst:248 msgid "" ">>> for x in range(1, 11):\n" "... print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')\n" @@ -569,7 +571,7 @@ msgstr "" " 9 81 729\n" "10 100 1000" -#: tutorial/inputoutput.rst:263 +#: tutorial/inputoutput.rst:264 msgid "" "(Note that the one space between each column was added by the way :func:" "`print` works: it always adds spaces between its arguments.)" @@ -577,7 +579,7 @@ msgstr "" "(Σημειώστε ότι το ένα κενό μεταξύ κάθε στήλης προστέθηκε με τον τρόπο που " "λειτουργεί το :func:`print`: προσθέτει πάντα κενά μεταξύ των ορισμάτων του.)" -#: tutorial/inputoutput.rst:266 +#: tutorial/inputoutput.rst:267 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 " @@ -598,7 +600,7 @@ msgstr "" "ήταν ψέματα για μια τιμή. (Αν θέλετε πραγματικά περικοπή, μπορείτε πάντα να " "προσθέσετε μια λειτουργία slice, όπως στο ``x.ljust(n)[:n]``.)" -#: tutorial/inputoutput.rst:275 +#: tutorial/inputoutput.rst:276 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::" @@ -607,7 +609,7 @@ msgstr "" "αριθμητική συμβολοσειρά στα αριστερά με μηδενικά. Καταλαβαίνει τα σύμβολα " "συν και πλην::" -#: tutorial/inputoutput.rst:278 +#: tutorial/inputoutput.rst:279 msgid "" ">>> '12'.zfill(5)\n" "'00012'\n" @@ -623,11 +625,11 @@ msgstr "" ">>> '3.14159265359'.zfill(5)\n" "'3.14159265359'" -#: tutorial/inputoutput.rst:287 +#: tutorial/inputoutput.rst:288 msgid "Old string formatting" msgstr "Παλιά μορφοποίηση συμβολοσειράς" -#: tutorial/inputoutput.rst:289 +#: tutorial/inputoutput.rst:290 msgid "" "The % operator (modulo) can also be used for string formatting. Given " "``format % values`` (where *format* is a string), ``%`` conversion " @@ -641,7 +643,7 @@ msgstr "" "αντικαθίστανται με μηδέν ή περισσότερα στοιχεία *τιμών*. Αυτή η λειτουργία " "είναι κοινώς γνωστή ως παρεμβολή συμβολοσειρών. Για παράδειγμα::" -#: tutorial/inputoutput.rst:296 +#: tutorial/inputoutput.rst:297 msgid "" ">>> import math\n" ">>> print('The value of pi is approximately %5.3f.' % math.pi)\n" @@ -651,18 +653,18 @@ msgstr "" ">>> print('The value of pi is approximately %5.3f.' % math.pi)\n" "The value of pi is approximately 3.142." -#: tutorial/inputoutput.rst:300 +#: tutorial/inputoutput.rst:301 msgid "" "More information can be found in the :ref:`old-string-formatting` section." msgstr "" "Περισσότερες πληροφορίες μπορείτε να βρείτε στην ενότητα :ref:`old-string-" "formatting`." -#: tutorial/inputoutput.rst:306 +#: tutorial/inputoutput.rst:307 msgid "Reading and Writing Files" msgstr "Ανάγνωση και Εγγραφή Αρχείων" -#: tutorial/inputoutput.rst:312 +#: tutorial/inputoutput.rst:313 msgid "" ":func:`open` returns a :term:`file object`, and is most commonly used with " "two positional arguments and one keyword argument: ``open(filename, mode, " @@ -672,11 +674,11 @@ msgstr "" "συχνά με δύο ορίσματα θέσης και ένα όρισμα λέξης-κλειδιού: ``open(filename, " "mode, encoding=None)``" -#: tutorial/inputoutput.rst:318 +#: tutorial/inputoutput.rst:319 msgid ">>> f = open('workfile', 'w', encoding=\"utf-8\")" msgstr ">>> f = open('workfile', 'w', encoding=\"utf-8\")" -#: tutorial/inputoutput.rst:325 +#: tutorial/inputoutput.rst:326 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 " @@ -697,7 +699,7 @@ msgstr "" "τόσο για ανάγνωση όσο και για γραφή. Το όρισμα *mode* είναι προαιρετικό· το " "``'r'`` θα θεωρείται εάν παραληφθεί." -#: tutorial/inputoutput.rst:334 +#: tutorial/inputoutput.rst:335 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 " @@ -720,7 +722,7 @@ msgstr "" "μπορείτε να καθορίσετε *κωδικοποίηση* όταν ανοίγετε αρχείο σε δυαδική " "λειτουργία." -#: tutorial/inputoutput.rst:344 +#: tutorial/inputoutput.rst:345 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 " @@ -740,7 +742,7 @@ msgstr "" "`EXE`. Να είστε πολύ προσεκτικοί να χρησιμοποιείτε τη δυαδική λειτουργία " "όταν διαβάζετε και γράφετε τέτοια αρχεία." -#: tutorial/inputoutput.rst:352 +#: tutorial/inputoutput.rst:353 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 " @@ -755,7 +757,7 @@ msgstr "" "πολύ πιο σύντομο από την σύνταξη ισοδύναμου :keyword:`try`\\ -\\ :keyword:" "`finally` blocks::" -#: tutorial/inputoutput.rst:358 +#: tutorial/inputoutput.rst:359 msgid "" ">>> with open('workfile', encoding=\"utf-8\") as f:\n" "... read_data = f.read()\n" @@ -771,7 +773,7 @@ msgstr "" ">>> f.closed\n" "True" -#: tutorial/inputoutput.rst:365 +#: tutorial/inputoutput.rst:366 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 " @@ -781,7 +783,7 @@ msgstr "" "τη ``f.close()`` για να κλείσετε το αρχείο και να ελευθερώσετε αμέσως τυχόν " "πόρους συστήματος που χρησιμοποιούνται από αυτό." -#: tutorial/inputoutput.rst:370 +#: tutorial/inputoutput.rst:371 msgid "" "Calling ``f.write()`` without using the :keyword:`!with` keyword or calling " "``f.close()`` **might** result in the arguments of ``f.write()`` not being " @@ -792,7 +794,7 @@ msgstr "" "write()`` να μην εγγραφεί πλήρως στο δίσκο, ακόμα και αν το πρόγραμμα " "εξέλθει με επιτυχία." -#: tutorial/inputoutput.rst:378 +#: tutorial/inputoutput.rst:379 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 " @@ -802,7 +804,7 @@ msgstr "" "είτε καλώντας ``f.close()``, οι προσπάθειες χρήσης του αντικειμένου αρχείου " "θα αποτύχουν αυτόματα. ::" -#: tutorial/inputoutput.rst:382 +#: tutorial/inputoutput.rst:383 msgid "" ">>> f.close()\n" ">>> f.read()\n" @@ -816,11 +818,11 @@ msgstr "" " File \"\", line 1, in \n" "ValueError: I/O operation on closed file." -#: tutorial/inputoutput.rst:392 +#: tutorial/inputoutput.rst:393 msgid "Methods of File Objects" msgstr "Μέθοδοι Αντικειμένων Αρχείων" -#: tutorial/inputoutput.rst:394 +#: tutorial/inputoutput.rst:395 msgid "" "The rest of the examples in this section will assume that a file object " "called ``f`` has already been created." @@ -828,7 +830,7 @@ msgstr "" "Τα υπόλοιπα παραδείγματα σε αυτήν την ενότητα θα υποθέσουν ότι ένα " "αντικείμενο αρχείου που ονομάζεται ``f`` έχει ήδη δημιουργηθεί." -#: tutorial/inputoutput.rst:397 +#: tutorial/inputoutput.rst:398 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 " @@ -850,7 +852,7 @@ msgstr "" "*size* (σε δυαδική λειτουργία). Εάν έχει φτάσει το τέλος του αρχείου, το ``f." "read()`` θα επιστρέψει μια κενή συμβολοσειρά (``''``). ::" -#: tutorial/inputoutput.rst:406 +#: tutorial/inputoutput.rst:407 msgid "" ">>> f.read()\n" "'This is the entire file.\\n'\n" @@ -862,7 +864,7 @@ msgstr "" ">>> f.read()\n" "''" -#: tutorial/inputoutput.rst:411 +#: tutorial/inputoutput.rst:412 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 " @@ -879,7 +881,7 @@ msgstr "" "κενή γραμμή αντιπροσωπεύεται από ``'\\n'``, μια συμβολοσειρά που περιέχει " "μόνο μία νέα γραμμή. ::" -#: tutorial/inputoutput.rst:418 +#: tutorial/inputoutput.rst:419 msgid "" ">>> f.readline()\n" "'This is the first line of the file.\\n'\n" @@ -895,7 +897,7 @@ msgstr "" ">>> f.readline()\n" "''" -#: tutorial/inputoutput.rst:425 +#: tutorial/inputoutput.rst:426 msgid "" "For reading lines from a file, you can loop over the file object. This is " "memory efficient, fast, and leads to simple code::" @@ -904,7 +906,7 @@ msgstr "" "αντικείμενο του αρχείου. Αυτό είναι αποδοτικό στη μνήμη, γρήγορο και οδηγεί " "σε απλό κώδικα::" -#: tutorial/inputoutput.rst:428 +#: tutorial/inputoutput.rst:429 msgid "" ">>> for line in f:\n" "... print(line, end='')\n" @@ -918,7 +920,7 @@ msgstr "" "This is the first line of the file.\n" "Second line of the file" -#: tutorial/inputoutput.rst:434 +#: tutorial/inputoutput.rst:435 msgid "" "If you want to read all the lines of a file in a list you can also use " "``list(f)`` or ``f.readlines()``." @@ -926,7 +928,7 @@ msgstr "" "Εάν θέλετε να διαβάσετε όλες τις γραμμές ενός αρχείου σε μια λίστα, μπορείτε " "επίσης να χρησιμοποιήσετε το ``list(f)`` ή ``f.readlines()``." -#: tutorial/inputoutput.rst:437 +#: tutorial/inputoutput.rst:438 msgid "" "``f.write(string)`` writes the contents of *string* to the file, returning " "the number of characters written. ::" @@ -934,7 +936,7 @@ msgstr "" "Το ``f.write(string)`` γράφει τα περιεχόμενα του *string* στο αρχείο, " "επιστρέφοντας τον αριθμό των χαρακτήρων που γράφτηκαν. ::" -#: tutorial/inputoutput.rst:440 +#: tutorial/inputoutput.rst:441 msgid "" ">>> f.write('This is a test\\n')\n" "15" @@ -942,7 +944,7 @@ msgstr "" ">>> f.write('This is a test\\n')\n" "15" -#: tutorial/inputoutput.rst:443 +#: tutorial/inputoutput.rst:444 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::" @@ -951,7 +953,7 @@ msgstr "" "(σε λειτουργία κειμένου) ή σε ένα αντικείμενο bytes (σε δυαδική λειτουργία) " "-- πριν τα γράψετε::" -#: tutorial/inputoutput.rst:446 +#: tutorial/inputoutput.rst:447 msgid "" ">>> value = ('the answer', 42)\n" ">>> s = str(value) # convert the tuple to string\n" @@ -963,7 +965,7 @@ msgstr "" ">>> f.write(s)\n" "18" -#: tutorial/inputoutput.rst:451 +#: tutorial/inputoutput.rst:452 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 " @@ -974,7 +976,7 @@ msgstr "" "αρχή του αρχείου όταν βρίσκεται σε δυαδική λειτουργία και έναν αδιαφανή " "αριθμό όταν βρίσκεται σε λειτουργία κειμένου." -#: tutorial/inputoutput.rst:455 +#: tutorial/inputoutput.rst:456 msgid "" "To change the file object's position, use ``f.seek(offset, whence)``. The " "position is computed from adding *offset* to a reference point; the " @@ -992,7 +994,7 @@ msgstr "" "*whence* μπορεί να παραληφθεί και να οριστεί από προεπιλογή 0, " "χρησιμοποιώντας την αρχή του αρχείου ως σημείο αναφοράς. ::" -#: tutorial/inputoutput.rst:462 +#: tutorial/inputoutput.rst:463 msgid "" ">>> f = open('workfile', 'rb+')\n" ">>> f.write(b'0123456789abcdef')\n" @@ -1018,7 +1020,7 @@ msgstr "" ">>> f.read(1)\n" "b'd'" -#: tutorial/inputoutput.rst:474 +#: tutorial/inputoutput.rst:475 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 " @@ -1033,7 +1035,7 @@ msgstr "" "tell()``, ή μηδέν. Οποιαδήποτε άλλη τιμή *offset* παράγει απροσδιόριστη " "συμπεριφορά." -#: tutorial/inputoutput.rst:480 +#: tutorial/inputoutput.rst:481 msgid "" "File objects have some additional methods, such as :meth:`~io.IOBase.isatty` " "and :meth:`~io.IOBase.truncate` which are less frequently used; consult the " @@ -1044,11 +1046,11 @@ msgstr "" "συχνά· συμβουλευτείτε την Αναφορά της Βιβλιοθήκης για έναν πλήρη οδηγό για " "τα αντικείμενα αρχείων." -#: tutorial/inputoutput.rst:488 +#: tutorial/inputoutput.rst:489 msgid "Saving structured data with :mod:`json`" msgstr "Αποθήκευση δομημένων δεδομένων με :mod:`json`" -#: tutorial/inputoutput.rst:492 +#: tutorial/inputoutput.rst:493 msgid "" "Strings can easily be written to and read from a file. Numbers take a bit " "more effort, since the :meth:`~io.TextIOBase.read` method only returns " @@ -1065,7 +1067,7 @@ msgstr "" "Όταν θέλετε να αποθηκεύσετε πιο σύνθετους τύπους δεδομένων, όπως ένθετε " "λίστες και λεξικά, η ανάλυση και η σειριοποίηση με το χέρι γίνεται περίπλοκη." -#: tutorial/inputoutput.rst:499 +#: tutorial/inputoutput.rst:500 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 " @@ -1090,7 +1092,7 @@ msgstr "" "δεδομένα ή να έχει σταλεί μέσω μιας σύνδεσης δικτύου σε κάποιο απομακρυσμένο " "μηχάνημα." -#: tutorial/inputoutput.rst:510 +#: tutorial/inputoutput.rst:511 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 " @@ -1101,7 +1103,7 @@ msgstr "" "εξοικειωμένοι με αυτήν, γεγονός που την καθιστά καλή επιλογή για " "διαλειτουργικότητα." -#: tutorial/inputoutput.rst:514 +#: tutorial/inputoutput.rst:515 msgid "" "If you have an object ``x``, you can view its JSON string representation " "with a simple line of code::" @@ -1109,7 +1111,7 @@ msgstr "" "Εάν έχετε ένα αντικείμενο ``x``, μπορείτε να δείτε την αναπαράσταση " "συμβολοσειράς JSON με μια απλή γραμμή κώδικα::" -#: tutorial/inputoutput.rst:517 +#: tutorial/inputoutput.rst:518 msgid "" ">>> import json\n" ">>> x = [1, 'simple', 'list']\n" @@ -1121,7 +1123,7 @@ msgstr "" ">>> json.dumps(x)\n" "'[1, \"simple\", \"list\"]'" -#: tutorial/inputoutput.rst:522 +#: tutorial/inputoutput.rst:523 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 " @@ -1132,11 +1134,11 @@ msgstr "" "Έτσι, εάν το ``f`` είναι ένα αντικείμενο :term:`text file` που ανοίγει για " "εγγραφή, μπορούμε να κάνουμε αυτό::" -#: tutorial/inputoutput.rst:526 +#: tutorial/inputoutput.rst:527 msgid "json.dump(x, f)" msgstr "json.dump(x, f)" -#: tutorial/inputoutput.rst:528 +#: tutorial/inputoutput.rst:529 msgid "" "To decode the object again, if ``f`` is a :term:`binary file` or :term:`text " "file` object which has been opened for reading::" @@ -1145,11 +1147,11 @@ msgstr "" "αντικείμενο :term:`binary file` ή :term:`text file` που έχει ανοίξει για " "ανάγνωση::" -#: tutorial/inputoutput.rst:531 +#: tutorial/inputoutput.rst:532 msgid "x = json.load(f)" msgstr "x = json.load(f)" -#: tutorial/inputoutput.rst:534 +#: tutorial/inputoutput.rst:535 msgid "" "JSON files must be encoded in UTF-8. Use ``encoding=\"utf-8\"`` when opening " "JSON file as a :term:`text file` for both of reading and writing." @@ -1158,7 +1160,7 @@ msgstr "" "``encoding=\"utf-8\"`` όταν ανοίγετε το αρχείο JSON ως :term:`text file` " "τόσο για ανάγνωση όσο και για εγγραφή." -#: tutorial/inputoutput.rst:537 +#: tutorial/inputoutput.rst:538 msgid "" "This simple serialization technique can handle lists and dictionaries, but " "serializing arbitrary class instances in JSON requires a bit of extra " @@ -1170,11 +1172,11 @@ msgstr "" "επιπλέον προσπάθεια. Η αναφορά για το module :mod:`json` περιέχει μια " "εξήγηση για αυτό." -#: tutorial/inputoutput.rst:543 +#: tutorial/inputoutput.rst:544 msgid ":mod:`pickle` - the pickle module" msgstr ":mod:`pickle` - το pickle module" -#: tutorial/inputoutput.rst:545 +#: tutorial/inputoutput.rst:546 msgid "" "Contrary to :ref:`JSON `, *pickle* is a protocol which allows the " "serialization of arbitrarily complex Python objects. As such, it is " @@ -1191,54 +1193,54 @@ msgstr "" "που προέρχονται από μια μη αξιόπιστη πηγή μπορεί να εκτελέσει αυθαίρετο " "κώδικα, εάν τα δεδομένα έχουν δημιουργηθεί από έναν έμπειρο εισβολέα." -#: tutorial/inputoutput.rst:103 +#: tutorial/inputoutput.rst:104 msgid "formatted string literal" msgstr "μορφοποιημένα String Literals" -#: tutorial/inputoutput.rst:103 +#: tutorial/inputoutput.rst:104 msgid "interpolated string literal" msgstr "παρεμβαλλόμενα String Literals" -#: tutorial/inputoutput.rst:103 +#: tutorial/inputoutput.rst:104 msgid "string" msgstr "string" -#: tutorial/inputoutput.rst:103 +#: tutorial/inputoutput.rst:104 msgid "formatted literal" msgstr "Μορφοποιημένα Literals" -#: tutorial/inputoutput.rst:103 +#: tutorial/inputoutput.rst:104 msgid "interpolated literal" msgstr "παρεμβαλλόμενα literal" -#: tutorial/inputoutput.rst:103 +#: tutorial/inputoutput.rst:104 msgid "f-string" msgstr "f-string" -#: tutorial/inputoutput.rst:103 +#: tutorial/inputoutput.rst:104 msgid "fstring" msgstr "fstring" -#: tutorial/inputoutput.rst:308 +#: tutorial/inputoutput.rst:309 msgid "built-in function" msgstr "ενσωματωμένη (built-in) συνάρτηση" -#: tutorial/inputoutput.rst:308 +#: tutorial/inputoutput.rst:309 msgid "open" msgstr "open" -#: tutorial/inputoutput.rst:308 +#: tutorial/inputoutput.rst:309 msgid "object" msgstr "object" -#: tutorial/inputoutput.rst:308 +#: tutorial/inputoutput.rst:309 msgid "file" msgstr "file" -#: tutorial/inputoutput.rst:490 +#: tutorial/inputoutput.rst:491 msgid "module" msgstr "module" -#: tutorial/inputoutput.rst:490 +#: tutorial/inputoutput.rst:491 msgid "json" msgstr "json" diff --git a/tutorial/interactive.po b/tutorial/interactive.po index 29be1743..181bf288 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-03 17:14+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index 9f45c3f3..efe28e07 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-04 22:16+0000\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: LANGUAGE \n" diff --git a/tutorial/introduction.po b/tutorial/introduction.po index 57bbc83b..d1fb22cd 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-02-13 17:17+0001\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Lysandros Nikolaou \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -996,12 +996,12 @@ msgstr "" #: tutorial/introduction.rst:422 msgid "" -"You can also add new items at the end of the list, by using the :meth:`!list." +"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 "" "Μπορείτε επίσης να προσθέσετε νέα στοιχεία στο τέλος της λίστας, " -"χρησιμοποιώντας την *μέθοδο* :meth:`!list.append` (θα δούμε περισσότερα για " -"τις μεθόδους αργότερα)::" +"χρησιμοποιώντας :meth:`list.append` *μέθοδο* (θα δούμε περισσότερα για τις " +"μεθόδους αργότερα)::" #: tutorial/introduction.rst:425 msgid "" diff --git a/tutorial/modules.po b/tutorial/modules.po index ac21ceb4..5724c58a 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-03 17:11+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" @@ -1295,15 +1295,15 @@ msgstr "" #: tutorial/modules.rst:582 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." +"Note that relative imports are based on the name of the current module's " +"package. Since the main module does not have a package, modules intended for " +"use as the main module of a Python application must always use absolute " +"imports." msgstr "" "Λάβετε υπόψη ότι οι σχετικές εισαγωγές βασίζονται στο όνομα του τρέχοντος " -"module. Επειδή το όνομα του κύριου module είναι πάντα ``\"__main__\"``, τα " -"modules που προορίζονται για χρήση ως κύριο module μιας εφαρμογής Python " -"πρέπει πάντα να χρησιμοποιούν απόλυτες εισαγωγές." +"module. Επειδή το όνομα του κύριου module δεν έχει πακέτο, τα modules που " +"προορίζονται για χρήση ως το κύριο module μιας εφαρμογής Python πρέπει πάντα " +"να χρησιμοποιούν απόλυτες εισαγωγές." #: tutorial/modules.rst:588 msgid "Packages in Multiple Directories" diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index e1a8faae..bf5a0287 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-05-13 19:39+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -389,14 +389,13 @@ msgstr "" #: tutorial/stdlib.rst:185 msgid "" ">>> from urllib.request import urlopen\n" -">>> with urlopen('http://worldtimeapi.org/api/timezone/etc/UTC.txt') as " -"response:\n" +">>> with urlopen('https://docs.python.org/3/') as response:\n" "... for line in response:\n" "... line = line.decode() # Convert bytes to a str\n" -"... if line.startswith('datetime'):\n" +"... if 'updated' in line:\n" "... print(line.rstrip()) # Remove trailing newline\n" "...\n" -"datetime: 2022-01-01T01:36:47.689215+00:00\n" +" Last updated on Nov 11, 2025 (20:11 UTC).\n" "\n" ">>> import smtplib\n" ">>> server = smtplib.SMTP('localhost')\n" @@ -409,14 +408,13 @@ msgid "" ">>> server.quit()" msgstr "" ">>> from urllib.request import urlopen\n" -">>> with urlopen('http://worldtimeapi.org/api/timezone/etc/UTC.txt') as " -"response:\n" +">>> with urlopen('https://docs.python.org/3/') as response:\n" "... for line in response:\n" "... line = line.decode() # Convert bytes to a str\n" -"... if line.startswith('datetime'):\n" +"... if 'updated' in line:\n" "... print(line.rstrip()) # Remove trailing newline\n" "...\n" -"datetime: 2022-01-01T01:36:47.689215+00:00\n" +" Last updated on Nov 11, 2025 (20:11 UTC).\n" "\n" ">>> import smtplib\n" ">>> server = smtplib.SMTP('localhost')\n" @@ -694,7 +692,7 @@ msgstr "" #: tutorial/stdlib.rst:337 msgid "" "The :mod:`email` package is a library for managing email messages, including " -"MIME and other :rfc:`2822`-based message documents. Unlike :mod:`smtplib` " +"MIME and other :rfc:`5322`-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 " @@ -702,7 +700,7 @@ msgid "" msgstr "" "Το πακέτο :mod:`email` είναι μια βιβλιοθήκη για τη διαχείριση μηνυμάτων " "ηλεκτρονικού ταχυδρομείου, συμπεριλαμβανομένων MIME και άλλων μηνυμάτων " -"εγγράφων που βασίζονται σε :rfc:`2822`. Σε αντίθεση με τα :mod:`smtplib` " +"εγγράφων που βασίζονται σε :rfc:`5322`. Σε αντίθεση με τα :mod:`smtplib` " "και :mod:`poplib` που στην πραγματικότητα στέλνουν και λαμβάνουν μηνύματα, " "το πακέτο email έχει ένα πλήρες σύνολο εργαλείων για τη δημιουργία ή την " "αποκωδικοποίηση πολύπλοκων δομών μηνυμάτων (συμπεριλαμβανομένων των " diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po index 0a373b70..aec8f5ed 100644 --- a/tutorial/stdlib2.po +++ b/tutorial/stdlib2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-05-13 19:38+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" diff --git a/tutorial/venv.po b/tutorial/venv.po index 491b1f15..28572313 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2024-06-13 23:10+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index c4558457..0b900821 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2024-06-12 09:07+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -88,7 +88,7 @@ msgstr "Περισσότερα Βοηθήματα για Python:" #: tutorial/whatnow.rst:33 msgid "" -"https://www.python.org: The major Python web site. It contains code, " +"https://www.python.org: The major Python website. It contains code, " "documentation, and pointers to Python-related pages around the web." msgstr "" "https://www.python.org: Ο κύριος ιστότοπος της Python. Περιέχει κώδικα, " diff --git a/using/android.po b/using/android.po index ddf47479..2b0715b2 100644 --- a/using/android.po +++ b/using/android.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -94,60 +94,72 @@ msgid "" msgstr "" #: using/android.rst:43 +msgid "First, acquire a build of Python for Android:" +msgstr "" + +#: using/android.rst:45 msgid "" -"Build Python by following the instructions in :source:`Android/README.md`. " -"This will create the directory ``cross-build/HOST/prefix``." +"The easiest way is to download an Android release from `python.org `__. The ``prefix`` directory mentioned " +"below is at the top level of the package." msgstr "" -#: using/android.rst:46 +#: using/android.rst:49 +msgid "" +"Or if you want to build it yourself, follow the instructions in :source:" +"`Android/README.md`. The ``prefix`` directory will be created under :samp:" +"`cross-build/{HOST}`." +msgstr "" + +#: using/android.rst:53 msgid "" "Add code to your :source:`build.gradle ` file to copy the following items into your project. All except your " "own Python code can be copied from ``prefix/lib``:" msgstr "" -#: using/android.rst:50 +#: using/android.rst:57 msgid "In your JNI libraries:" msgstr "" -#: using/android.rst:52 +#: using/android.rst:59 msgid "``libpython*.*.so``" msgstr "" -#: using/android.rst:53 +#: using/android.rst:60 msgid "``lib*_python.so`` (external libraries such as OpenSSL)" msgstr "" -#: using/android.rst:55 +#: using/android.rst:62 msgid "In your assets:" msgstr "" -#: using/android.rst:57 +#: using/android.rst:64 msgid "``python*.*`` (the Python standard library)" msgstr "" -#: using/android.rst:58 +#: using/android.rst:65 msgid "``python*.*/site-packages`` (your own Python code)" msgstr "" -#: using/android.rst:60 +#: using/android.rst:67 msgid "" "Add code to your app to :source:`extract the assets to the filesystem " "`." msgstr "" -#: using/android.rst:63 +#: using/android.rst:70 msgid "" "Add code to your app to :source:`start Python in embedded mode `. This will need to be C code called " "via JNI." msgstr "" -#: using/android.rst:68 +#: using/android.rst:75 msgid "Building a Python package for Android" msgstr "" -#: using/android.rst:70 +#: using/android.rst:77 msgid "" "Python packages can be built for Android as wheels and released on PyPI. The " "recommended tool for doing this is `cibuildwheel \n" "Language-Team: LANGUAGE \n" @@ -234,7 +234,7 @@ msgid "" "path`." msgstr "" -#: using/cmdline.rst:827 +#: using/cmdline.rst:834 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_stdin`` with no " "arguments." @@ -512,8 +512,8 @@ msgstr "" #: using/cmdline.rst:371 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." +"`PYTHONHASHSEED` environment variable is set to anything other than " +"``random``, since hash randomization is enabled by default." msgstr "" #: using/cmdline.rst:375 @@ -553,7 +553,7 @@ msgstr "" msgid "See also :envvar:`PYTHONNOUSERSITE`." msgstr "" -#: using/cmdline.rst:924 using/cmdline.rst:936 +#: using/cmdline.rst:931 using/cmdline.rst:943 msgid ":pep:`370` -- Per user site-packages directory" msgstr "" @@ -603,7 +603,7 @@ msgid "" "messages to :data:`sys.stderr`." msgstr "" -#: using/cmdline.rst:952 +#: using/cmdline.rst:959 msgid "" "The simplest settings apply a particular action unconditionally to all " "warnings emitted by a process (even those that are otherwise ignored by " @@ -691,7 +691,7 @@ msgid "" "can be used to use a regular expression on the warning message." msgstr "" -#: using/cmdline.rst:964 +#: using/cmdline.rst:971 msgid "" "See :ref:`warning-filter` and :ref:`describing-warning-filters` for more " "details." @@ -878,7 +878,7 @@ msgstr "" #: using/cmdline.rst:655 msgid "" ":samp:`-X thread_inherit_context={0,1}` causes :class:`~threading.Thread` " -"to, by default, use a copy of context of of the caller of ``Thread.start()`` " +"to, by default, use a copy of context of the caller of ``Thread.start()`` " "when starting. Otherwise, threads will start with an empty context. If " "unset, the value of this option defaults to ``1`` on free-threaded builds " "and to ``0`` otherwise. See also :envvar:`PYTHON_THREAD_INHERIT_CONTEXT`." @@ -895,54 +895,62 @@ msgstr "" #: using/cmdline.rst:672 msgid "" +":samp:`-X tlbc={0,1}` enables (1, the default) or disables (0) thread-local " +"bytecode in builds configured with :option:`--disable-gil`. When disabled, " +"this also disables the specializing interpreter. See also :envvar:" +"`PYTHON_TLBC`." +msgstr "" + +#: using/cmdline.rst:679 +msgid "" "It also allows passing arbitrary values and retrieving them through the :" "data:`sys._xoptions` dictionary." msgstr "" -#: using/cmdline.rst:677 +#: using/cmdline.rst:684 msgid "Removed the ``-X showalloccount`` option." msgstr "" -#: using/cmdline.rst:680 +#: using/cmdline.rst:687 msgid "Removed the ``-X oldparser`` option." msgstr "" -#: using/cmdline.rst:685 +#: using/cmdline.rst:692 msgid "" ":option:`!-J` is no longer reserved for use by Jython_, and now has no " "special meaning." msgstr "" -#: using/cmdline.rst:693 +#: using/cmdline.rst:700 msgid "Controlling color" msgstr "" -#: using/cmdline.rst:695 +#: using/cmdline.rst:702 msgid "" "The Python interpreter is configured by default to use colors to highlight " "output in certain situations such as when displaying tracebacks. This " "behavior can be controlled by setting different environment variables." msgstr "" -#: using/cmdline.rst:699 +#: using/cmdline.rst:706 msgid "" "Setting the environment variable ``TERM`` to ``dumb`` will disable color." msgstr "" -#: using/cmdline.rst:701 +#: using/cmdline.rst:708 msgid "" "If the |FORCE_COLOR|_ environment variable is set, then color will be " "enabled regardless of the value of TERM. This is useful on CI systems which " "aren’t terminals but can still display ANSI escape sequences." msgstr "" -#: using/cmdline.rst:705 +#: using/cmdline.rst:712 msgid "" "If the |NO_COLOR|_ environment variable is set, Python will disable all " "color in the output. This takes precedence over ``FORCE_COLOR``." msgstr "" -#: using/cmdline.rst:708 +#: using/cmdline.rst:715 msgid "" "All these environment variables are used also by other tools to control " "color output. To control the color output only in the Python interpreter, " @@ -951,11 +959,11 @@ msgid "" "``FORCE_COLOR``." msgstr "" -#: using/cmdline.rst:718 +#: using/cmdline.rst:725 msgid "Environment variables" msgstr "" -#: using/cmdline.rst:720 +#: using/cmdline.rst:727 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 " @@ -963,7 +971,7 @@ msgid "" "conflict." msgstr "" -#: using/cmdline.rst:727 +#: using/cmdline.rst:734 msgid "" "Change the location of the standard Python libraries. By default, the " "libraries are searched in :file:`{prefix}/lib/python{version}` and :file:" @@ -972,14 +980,14 @@ msgid "" "file:`/usr/local`." msgstr "" -#: using/cmdline.rst:733 +#: using/cmdline.rst:740 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 "" -#: using/cmdline.rst:740 +#: using/cmdline.rst:747 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 :" @@ -987,21 +995,21 @@ msgid "" "existent directories are silently ignored." msgstr "" -#: using/cmdline.rst:745 +#: using/cmdline.rst:752 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 "" -#: using/cmdline.rst:749 +#: using/cmdline.rst:756 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 "" -#: using/cmdline.rst:753 +#: using/cmdline.rst:760 msgid "" "An additional directory will be inserted in the search path in front of :" "envvar:`PYTHONPATH` as described above under :ref:`using-on-interface-" @@ -1009,19 +1017,19 @@ msgid "" "the variable :data:`sys.path`." msgstr "" -#: using/cmdline.rst:761 +#: using/cmdline.rst:768 msgid "" "If this is set to a non-empty string, don't prepend a potentially unsafe " "path to :data:`sys.path`: see the :option:`-P` option for details." msgstr "" -#: using/cmdline.rst:769 +#: using/cmdline.rst:776 msgid "" "If this is set to a non-empty string, it overrides the :data:`sys." "platlibdir` value." msgstr "" -#: using/cmdline.rst:777 +#: using/cmdline.rst:784 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 " @@ -1032,20 +1040,20 @@ msgid "" "file." msgstr "" -#: using/cmdline.rst:786 +#: using/cmdline.rst:793 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_startup`` with the " "filename as the argument when called on startup." msgstr "" -#: using/cmdline.rst:792 +#: using/cmdline.rst:799 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 "" -#: using/cmdline.rst:799 +#: using/cmdline.rst:806 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 " @@ -1056,68 +1064,68 @@ msgid "" "breakpointhook` to do nothing but return immediately." msgstr "" -#: using/cmdline.rst:811 +#: using/cmdline.rst:818 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 "" -#: using/cmdline.rst:815 +#: using/cmdline.rst:822 msgid "" "This environment variable requires a :ref:`debug build of Python `, otherwise it's ignored." msgstr "" -#: using/cmdline.rst:821 +#: using/cmdline.rst:828 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-i` option." msgstr "" -#: using/cmdline.rst:824 +#: using/cmdline.rst:831 msgid "" "This variable can also be modified by Python code using :data:`os.environ` " "to force inspect mode on program termination." msgstr "" -#: using/cmdline.rst:829 +#: using/cmdline.rst:836 msgid "(also 3.11.10, 3.10.15, 3.9.20, and 3.8.20) Emits audit events." msgstr "" -#: using/cmdline.rst:832 +#: using/cmdline.rst:839 msgid "" "Uses PyREPL if possible, in which case :envvar:`PYTHONSTARTUP` is also " "executed. Emits audit events." msgstr "" -#: using/cmdline.rst:839 +#: using/cmdline.rst:846 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-u` option." msgstr "" -#: using/cmdline.rst:845 +#: using/cmdline.rst:852 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 "" -#: using/cmdline.rst:852 +#: using/cmdline.rst:859 msgid "" "If this is set, Python ignores case in :keyword:`import` statements. This " "only works on Windows and macOS." msgstr "" -#: using/cmdline.rst:858 +#: using/cmdline.rst:865 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 "" -#: using/cmdline.rst:865 +#: using/cmdline.rst:872 msgid "" "If this is set, Python will write ``.pyc`` files in a mirror directory tree " "at this path, instead of in ``__pycache__`` directories within the source " @@ -1125,40 +1133,40 @@ msgid "" "``pycache_prefix=PATH`` option." msgstr "" -#: using/cmdline.rst:875 +#: using/cmdline.rst:882 msgid "" "If this variable is not set or set to ``random``, a random value is used to " "seed the hashes of str and bytes objects." msgstr "" -#: using/cmdline.rst:878 +#: using/cmdline.rst:885 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 "" -#: using/cmdline.rst:882 +#: using/cmdline.rst:889 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 "" -#: using/cmdline.rst:886 +#: using/cmdline.rst:893 msgid "" "The integer must be a decimal number in the range [0,4294967295]. " "Specifying the value 0 will disable hash randomization." msgstr "" -#: using/cmdline.rst:893 +#: using/cmdline.rst:900 msgid "" "If this variable is set to an integer, it is used to configure the " "interpreter's global :ref:`integer string conversion length limitation " "`." msgstr "" -#: using/cmdline.rst:901 +#: using/cmdline.rst:908 msgid "" "If this is set before running the interpreter, it overrides the encoding " "used for stdin/stdout/stderr, in the syntax ``encodingname:errorhandler``. " @@ -1166,17 +1174,17 @@ msgid "" "have the same meaning as in :func:`str.encode`." msgstr "" -#: using/cmdline.rst:906 +#: using/cmdline.rst:913 msgid "" "For stderr, the ``:errorhandler`` part is ignored; the handler will always " "be ``'backslashreplace'``." msgstr "" -#: using/cmdline.rst:909 +#: using/cmdline.rst:916 msgid "The ``encodingname`` part is now optional." msgstr "" -#: using/cmdline.rst:912 +#: using/cmdline.rst:919 msgid "" "On Windows, the encoding specified by this variable is ignored for " "interactive console buffers unless :envvar:`PYTHONLEGACYWINDOWSSTDIO` is " @@ -1184,13 +1192,13 @@ msgid "" "not affected." msgstr "" -#: using/cmdline.rst:919 +#: using/cmdline.rst:926 msgid "" "If this is set, Python won't add the :data:`user site-packages directory " "` to :data:`sys.path`." msgstr "" -#: using/cmdline.rst:929 +#: using/cmdline.rst:936 msgid "" "Defines the :data:`user base directory `, which is used to " "compute the path of the :data:`user site-packages directory ` of the :mod:`asyncio` module." msgstr "" -#: using/cmdline.rst:1017 +#: using/cmdline.rst:1024 msgid "Set the Python memory allocators and/or install debug hooks." msgstr "" -#: using/cmdline.rst:1019 +#: using/cmdline.rst:1026 msgid "Set the family of memory allocators used by Python:" msgstr "" -#: using/cmdline.rst:1021 +#: using/cmdline.rst:1028 msgid "" "``default``: use the :ref:`default memory allocators `." msgstr "" -#: using/cmdline.rst:1023 +#: using/cmdline.rst:1030 msgid "" "``malloc``: use the :c:func:`malloc` function of the C library for all " "domains (:c:macro:`PYMEM_DOMAIN_RAW`, :c:macro:`PYMEM_DOMAIN_MEM`, :c:macro:" "`PYMEM_DOMAIN_OBJ`)." msgstr "" -#: using/cmdline.rst:1026 +#: using/cmdline.rst:1033 msgid "" "``pymalloc``: use the :ref:`pymalloc allocator ` for :c:macro:" "`PYMEM_DOMAIN_MEM` and :c:macro:`PYMEM_DOMAIN_OBJ` domains and use the :c:" "func:`malloc` function for the :c:macro:`PYMEM_DOMAIN_RAW` domain." msgstr "" -#: using/cmdline.rst:1029 +#: using/cmdline.rst:1036 msgid "" "``mimalloc``: use the :ref:`mimalloc allocator ` for :c:macro:" "`PYMEM_DOMAIN_MEM` and :c:macro:`PYMEM_DOMAIN_OBJ` domains and use the :c:" "func:`malloc` function for the :c:macro:`PYMEM_DOMAIN_RAW` domain." msgstr "" -#: using/cmdline.rst:1033 +#: using/cmdline.rst:1040 msgid "Install :ref:`debug hooks `:" msgstr "" -#: using/cmdline.rst:1035 +#: using/cmdline.rst:1042 msgid "" "``debug``: install debug hooks on top of the :ref:`default memory allocators " "`." msgstr "" -#: using/cmdline.rst:1037 +#: using/cmdline.rst:1044 msgid "``malloc_debug``: same as ``malloc`` but also install debug hooks." msgstr "" -#: using/cmdline.rst:1038 +#: using/cmdline.rst:1045 msgid "``pymalloc_debug``: same as ``pymalloc`` but also install debug hooks." msgstr "" -#: using/cmdline.rst:1039 +#: using/cmdline.rst:1046 msgid "``mimalloc_debug``: same as ``mimalloc`` but also install debug hooks." msgstr "" -#: using/cmdline.rst:1043 +#: using/cmdline.rst:1050 msgid "Added the ``\"default\"`` allocator." msgstr "" -#: using/cmdline.rst:1049 +#: using/cmdline.rst:1056 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 "" -#: using/cmdline.rst:1053 +#: using/cmdline.rst:1060 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 "" -#: using/cmdline.rst:1057 +#: using/cmdline.rst:1064 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 "" -#: using/cmdline.rst:1064 +#: using/cmdline.rst:1071 msgid "" "If set to a non-empty string, the default :term:`filesystem encoding and " "error handler` mode will revert to their pre-3.6 values of 'mbcs' and " @@ -1349,41 +1357,41 @@ msgid "" "'surrogatepass' are used." msgstr "" -#: using/cmdline.rst:1069 +#: using/cmdline.rst:1076 msgid "" "This may also be enabled at runtime with :func:`sys." "_enablelegacywindowsfsencoding`." msgstr "" -#: using/cmdline.rst:1086 using/cmdline.rst:1137 +#: using/cmdline.rst:1093 using/cmdline.rst:1144 msgid "Availability" msgstr "" -#: using/cmdline.rst:1074 +#: using/cmdline.rst:1081 msgid "See :pep:`529` for more details." msgstr "" -#: using/cmdline.rst:1079 +#: using/cmdline.rst:1086 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 "" -#: using/cmdline.rst:1083 +#: using/cmdline.rst:1090 msgid "" "This variable is ignored if the standard streams are redirected (to files or " "pipes) rather than referring to console buffers." msgstr "" -#: using/cmdline.rst:1093 +#: using/cmdline.rst:1100 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 "" -#: using/cmdline.rst:1097 +#: using/cmdline.rst:1104 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 " @@ -1394,19 +1402,19 @@ msgid "" "runtime:" msgstr "" -#: using/cmdline.rst:1105 +#: using/cmdline.rst:1112 msgid "``C.UTF-8``" msgstr "" -#: using/cmdline.rst:1106 +#: using/cmdline.rst:1113 msgid "``C.utf8``" msgstr "" -#: using/cmdline.rst:1107 +#: using/cmdline.rst:1114 msgid "``UTF-8``" msgstr "" -#: using/cmdline.rst:1109 +#: using/cmdline.rst:1116 msgid "" "If setting one of these locale categories succeeds, then the ``LC_CTYPE`` " "environment variable will also be set accordingly in the current process " @@ -1419,7 +1427,7 @@ msgid "" "(such as Python's own :func:`locale.getdefaultlocale`)." msgstr "" -#: using/cmdline.rst:1119 +#: using/cmdline.rst:1126 msgid "" "Configuring one of these locales (either explicitly or via the above " "implicit locale coercion) automatically enables the ``surrogateescape`` :ref:" @@ -1429,7 +1437,7 @@ msgid "" "envvar:`PYTHONIOENCODING` as usual." msgstr "" -#: using/cmdline.rst:1126 +#: using/cmdline.rst:1133 msgid "" "For debugging purposes, setting ``PYTHONCOERCECLOCALE=warn`` will cause " "Python to emit warning messages on ``stderr`` if either the locale coercion " @@ -1437,7 +1445,7 @@ msgid "" "active when the Python runtime is initialized." msgstr "" -#: using/cmdline.rst:1131 +#: using/cmdline.rst:1138 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 " @@ -1446,11 +1454,11 @@ msgid "" "system interfaces." msgstr "" -#: using/cmdline.rst:1139 +#: using/cmdline.rst:1146 msgid "See :pep:`538` for more details." msgstr "" -#: using/cmdline.rst:1145 +#: using/cmdline.rst:1152 msgid "" "If this environment variable is set to a non-empty string, enable :ref:" "`Python Development Mode `, introducing additional runtime checks " @@ -1458,31 +1466,31 @@ msgid "" "setting the :option:`-X` ``dev`` option." msgstr "" -#: using/cmdline.rst:1154 +#: using/cmdline.rst:1161 msgid "If set to ``1``, enable the :ref:`Python UTF-8 Mode `." msgstr "" -#: using/cmdline.rst:1156 +#: using/cmdline.rst:1163 msgid "If set to ``0``, disable the :ref:`Python UTF-8 Mode `." msgstr "" -#: using/cmdline.rst:1158 +#: using/cmdline.rst:1165 msgid "" "Setting any other non-empty string causes an error during interpreter " "initialisation." msgstr "" -#: using/cmdline.rst:1165 +#: using/cmdline.rst:1172 msgid "" "If this environment variable is set to a non-empty string, issue a :class:" "`EncodingWarning` when the locale-specific default encoding is used." msgstr "" -#: using/cmdline.rst:1168 +#: using/cmdline.rst:1175 msgid "See :ref:`io-encoding-warning` for details." msgstr "" -#: using/cmdline.rst:1174 +#: using/cmdline.rst:1181 msgid "" "If this variable is set, it disables the inclusion of the tables mapping " "extra location information (end line, start column offset and end column " @@ -1491,36 +1499,36 @@ msgid "" "visual location indicators when the interpreter displays tracebacks." msgstr "" -#: using/cmdline.rst:1184 +#: using/cmdline.rst:1191 msgid "" "If this variable is set to a nonzero value, it enables support for the Linux " "``perf`` profiler so Python calls can be detected by it." msgstr "" -#: using/cmdline.rst:1200 +#: using/cmdline.rst:1207 msgid "If set to ``0``, disable Linux ``perf`` profiler support." msgstr "" -#: using/cmdline.rst:1189 +#: using/cmdline.rst:1196 msgid "" "See also the :option:`-X perf <-X>` command-line option and :ref:" "`perf_profiling`." msgstr "" -#: using/cmdline.rst:1196 +#: using/cmdline.rst:1203 msgid "" "If this variable is set to a nonzero value, it enables support for the Linux " "``perf`` profiler so Python calls can be detected by it using DWARF " "information." msgstr "" -#: using/cmdline.rst:1202 +#: using/cmdline.rst:1209 msgid "" "See also the :option:`-X perf_jit <-X>` command-line option and :ref:" "`perf_profiling`." msgstr "" -#: using/cmdline.rst:1209 +#: using/cmdline.rst:1216 msgid "" "If this variable is set to a non-empty string, it disables the remote " "debugging feature described in :pep:`768`. This includes both the " @@ -1528,21 +1536,21 @@ msgid "" "functionality to receive code for execution in the current process." msgstr "" -#: using/cmdline.rst:1214 +#: using/cmdline.rst:1221 msgid "See also the :option:`-X disable_remote_debug` command-line option." msgstr "" -#: using/cmdline.rst:1220 +#: using/cmdline.rst:1227 msgid "" "If this variable is set to a positive integer, it overrides the return " "values of :func:`os.cpu_count` and :func:`os.process_cpu_count`." msgstr "" -#: using/cmdline.rst:1223 +#: using/cmdline.rst:1230 msgid "See also the :option:`-X cpu_count <-X>` command-line option." msgstr "" -#: using/cmdline.rst:1229 +#: using/cmdline.rst:1236 msgid "" "If this variable is set to ``on`` or ``off``, it determines whether or not " "frozen modules are ignored by the import machinery. A value of ``on`` means " @@ -1553,54 +1561,54 @@ msgid "" "flag is set to ``off``." msgstr "" -#: using/cmdline.rst:1237 +#: using/cmdline.rst:1244 msgid "See also the :option:`-X frozen_modules <-X>` command-line option." msgstr "" -#: using/cmdline.rst:1243 +#: using/cmdline.rst:1250 msgid "" "If this variable is set to ``1``, the interpreter will colorize various " "kinds of output. Setting it to ``0`` deactivates this behavior. See also :" "ref:`using-on-controlling-color`." msgstr "" -#: using/cmdline.rst:1251 +#: using/cmdline.rst:1258 msgid "" "If this variable is set to any value, the interpreter will not attempt to " -"load the Python-based :term:`REPL` that requires :mod:`curses` and :mod:" -"`readline`, and will instead use the traditional parser-based :term:`REPL`." +"load the Python-based :term:`REPL` that requires :mod:`readline`, and will " +"instead use the traditional parser-based :term:`REPL`." msgstr "" -#: using/cmdline.rst:1260 +#: using/cmdline.rst:1266 msgid "" "This environment variable can be used to set the location of a ``." "python_history`` file (by default, it is ``.python_history`` in the user's " "home directory)." msgstr "" -#: using/cmdline.rst:1268 +#: using/cmdline.rst:1274 msgid "" "If this variable is set to ``1``, the global interpreter lock (GIL) will be " "forced on. Setting it to ``0`` forces the GIL off (needs Python configured " "with the :option:`--disable-gil` build option)." msgstr "" -#: using/cmdline.rst:1272 +#: using/cmdline.rst:1278 msgid "" "See also the :option:`-X gil <-X>` command-line option, which takes " "precedence over this variable, and :ref:`whatsnew313-free-threaded-cpython`." msgstr "" -#: using/cmdline.rst:1279 +#: using/cmdline.rst:1285 msgid "" "If this variable is set to ``1`` then :class:`~threading.Thread` will, by " -"default, use a copy of context of of the caller of ``Thread.start()`` when " +"default, use a copy of context of the caller of ``Thread.start()`` when " "starting. Otherwise, new threads will start with an empty context. If " "unset, this variable defaults to ``1`` on free-threaded builds and to ``0`` " "otherwise. See also :option:`-X thread_inherit_context<-X>`." msgstr "" -#: using/cmdline.rst:1289 +#: using/cmdline.rst:1295 msgid "" "If set to ``1`` then the :class:`warnings.catch_warnings` context manager " "will use a :class:`~contextvars.ContextVar` to store warnings filter state. " @@ -1608,36 +1616,47 @@ msgid "" "``0`` otherwise. See :option:`-X context_aware_warnings<-X>`." msgstr "" -#: using/cmdline.rst:1299 +#: using/cmdline.rst:1305 msgid "" "On builds where experimental just-in-time compilation is available, this " "variable can force the JIT to be disabled (``0``) or enabled (``1``) at " "interpreter startup." msgstr "" -#: using/cmdline.rst:1306 +#: using/cmdline.rst:1313 +msgid "" +"If set to ``1`` enables thread-local bytecode. If set to ``0`` thread-local " +"bytecode and the specializing interpreter are disabled. Only applies to " +"builds configured with :option:`--disable-gil`." +msgstr "" + +#: using/cmdline.rst:1317 +msgid "See also the :option:`-X tlbc <-X>` command-line option." +msgstr "" + +#: using/cmdline.rst:1322 msgid "Debug-mode variables" msgstr "" -#: using/cmdline.rst:1310 +#: using/cmdline.rst:1326 msgid "" "If set, Python will dump objects and reference counts still alive after " "shutting down the interpreter." msgstr "" -#: using/cmdline.rst:1321 +#: using/cmdline.rst:1337 msgid "" "Needs Python configured with the :option:`--with-trace-refs` build option." msgstr "" -#: using/cmdline.rst:1317 +#: using/cmdline.rst:1333 msgid "" "If set, Python will dump objects and reference counts still alive after " "shutting down the interpreter into a file under the path given as the value " "to this environment variable." msgstr "" -#: using/cmdline.rst:1327 +#: using/cmdline.rst:1343 msgid "" "If this variable is set to a module, that module will be imported early in " "the interpreter lifecycle, before the :mod:`site` module is executed, and " @@ -1645,22 +1664,22 @@ msgid "" "is not treated as :mod:`__main__`." msgstr "" -#: using/cmdline.rst:1332 +#: using/cmdline.rst:1348 msgid "This can be used to execute code early during Python initialization." msgstr "" -#: using/cmdline.rst:1334 +#: using/cmdline.rst:1350 msgid "" "To import a submodule, use ``package.module`` as the value, like in an " "import statement." msgstr "" -#: using/cmdline.rst:1337 +#: using/cmdline.rst:1353 msgid "" "See also the :option:`-X presite <-X>` command-line option, which takes " "precedence over this variable." msgstr "" -#: using/cmdline.rst:1340 +#: using/cmdline.rst:1356 msgid "Needs Python configured with the :option:`--with-pydebug` build option." msgstr "" diff --git a/using/configure.po b/using/configure.po index 64da2224..7c8c7805 100644 --- a/using/configure.po +++ b/using/configure.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,112 +21,327 @@ msgstr "" msgid "Configure Python" msgstr "" -#: using/configure.rst:8 +#: using/configure.rst:11 msgid "Build Requirements" msgstr "" -#: using/configure.rst:10 -msgid "Features and minimum versions required to build CPython:" +#: using/configure.rst:13 +msgid "To build CPython, you will need:" msgstr "" -#: using/configure.rst:12 +#: using/configure.rst:15 msgid "" "A `C11 `_ compiler. `Optional C11 " "features `_ are not required." msgstr "" -#: using/configure.rst:17 +#: using/configure.rst:20 msgid "On Windows, Microsoft Visual Studio 2017 or later is required." msgstr "" -#: using/configure.rst:19 +#: using/configure.rst:22 msgid "" "Support for `IEEE 754 `_ floating-" "point numbers and `floating-point Not-a-Number (NaN) `_." msgstr "" -#: using/configure.rst:23 +#: using/configure.rst:26 msgid "Support for threads." msgstr "" -#: using/configure.rst:25 +#: using/configure.rst:28 +msgid "On Windows, Visual Studio 2015 or later is now required." +msgstr "" + +#: using/configure.rst:31 msgid "" -"OpenSSL 1.1.1 is the minimum version and OpenSSL 3.0.16 is the recommended " -"minimum version for the :mod:`ssl` and :mod:`hashlib` extension modules." +"Selected C99 features, like ```` and ``static inline`` functions, " +"are now required." msgstr "" -#: using/configure.rst:28 -msgid "SQLite 3.15.2 for the :mod:`sqlite3` extension module." +#: using/configure.rst:35 +msgid "Thread support is now required." msgstr "" -#: using/configure.rst:30 -msgid "Tcl/Tk 8.5.12 for the :mod:`tkinter` module." +#: using/configure.rst:38 +msgid "" +"C11 compiler, IEEE 754 and NaN support are now required. On Windows, Visual " +"Studio 2017 or later is required." msgstr "" -#: using/configure.rst:32 +#: using/configure.rst:42 msgid "" -"Autoconf 2.72 and aclocal 1.16.5 are required to regenerate the :file:" -"`configure` script." +"See also :pep:`7` \"Style Guide for C Code\" and :pep:`11` \"CPython " +"platform support\"." msgstr "" -#: using/configure.rst:35 -msgid "Tcl/Tk version 8.3.1 is now required." +#: using/configure.rst:49 +msgid "Requirements for optional modules" msgstr "" -#: using/configure.rst:38 +#: using/configure.rst:51 msgid "" -"On Windows, Visual Studio 2015 or later is now required. Tcl/Tk version 8.4 " -"is now required." +"Some :term:`optional modules ` of the standard library " +"require third-party libraries installed for development (for example, header " +"files must be available)." msgstr "" -#: using/configure.rst:42 +#: using/configure.rst:55 msgid "" -"Selected C99 features are now required, like ```` and ``static " -"inline`` functions." +"Missing requirements are reported in the ``configure`` output. Modules that " +"are missing due to missing dependencies are listed near the end of the " +"``make`` output, sometimes using an internal name, for example, ``_ctypes`` " +"for :mod:`ctypes` module." msgstr "" -#: using/configure.rst:46 -msgid "Thread support and OpenSSL 1.0.2 are now required." +#: using/configure.rst:61 +msgid "" +"If you distribute a CPython interpreter without optional modules, it's best " +"practice to advise users, who generally expect that standard library modules " +"are available." msgstr "" -#: using/configure.rst:49 -msgid "OpenSSL 1.1.1 is now required. Require SQLite 3.7.15." +#: using/configure.rst:65 +msgid "Dependencies to build optional modules are:" +msgstr "" + +#: using/configure.rst:71 +msgid "Dependency" +msgstr "" + +#: using/configure.rst:72 +msgid "Minimum version" +msgstr "" + +#: using/configure.rst:73 +msgid "Python module" +msgstr "" + +#: using/configure.rst:74 +msgid "`libbz2 `_" +msgstr "" + +#: using/configure.rst:76 +msgid ":mod:`bz2`" +msgstr "" + +#: using/configure.rst:77 +msgid "`libffi `_" +msgstr "" + +#: using/configure.rst:78 +msgid "3.3.0 recommended" +msgstr "" + +#: using/configure.rst:79 +msgid ":mod:`ctypes`" +msgstr "" + +#: using/configure.rst:80 +msgid "`liblzma `_" +msgstr "" + +#: using/configure.rst:82 +msgid ":mod:`lzma`" +msgstr "" + +#: using/configure.rst:83 +msgid "`libmpdec `_" +msgstr "" + +#: using/configure.rst:84 +msgid "2.5.0" msgstr "" -#: using/configure.rst:53 +#: using/configure.rst:85 +msgid ":mod:`decimal` [1]_" +msgstr "" + +#: using/configure.rst:86 msgid "" -"C11 compiler, IEEE 754 and NaN support are now required. On Windows, Visual " -"Studio 2017 or later is required. Tcl/Tk version 8.5.12 is now required for " -"the :mod:`tkinter` module." +"`libreadline `_ or " +"`libedit `_ [2]_" msgstr "" -#: using/configure.rst:58 -msgid "Autoconf 2.71, aclocal 1.16.5 and SQLite 3.15.2 are now required." +#: using/configure.rst:89 +msgid ":mod:`readline`" msgstr "" -#: using/configure.rst:61 -msgid "Autoconf 2.72 is now required." +#: using/configure.rst:90 +msgid "`libuuid `_" +msgstr "" + +#: using/configure.rst:92 +msgid "``_uuid`` [3]_" +msgstr "" + +#: using/configure.rst:93 +msgid "`ncurses `_ [4]_" +msgstr "" + +#: using/configure.rst:95 +msgid ":mod:`curses`" +msgstr "" + +#: using/configure.rst:96 +msgid "`OpenSSL `_" +msgstr "" + +#: using/configure.rst:0 +msgid "3.0.18 recommended" +msgstr "" + +#: using/configure.rst:0 +msgid "(1.1.1 minimum)" +msgstr "" + +#: using/configure.rst:99 +msgid ":mod:`ssl`, :mod:`hashlib` [5]_" +msgstr "" + +#: using/configure.rst:100 +msgid "`SQLite `_" +msgstr "" + +#: using/configure.rst:101 +msgid "3.15.2" +msgstr "" + +#: using/configure.rst:102 +msgid ":mod:`sqlite3`" +msgstr "" + +#: using/configure.rst:103 +msgid "`Tcl/Tk `_" +msgstr "" + +#: using/configure.rst:104 +msgid "8.5.12" +msgstr "" + +#: using/configure.rst:105 +msgid ":mod:`tkinter`, :ref:`IDLE `, :mod:`turtle`" +msgstr "" + +#: using/configure.rst:106 +msgid "`zlib `_" +msgstr "" + +#: using/configure.rst:107 +msgid "1.2.2.1" +msgstr "" + +#: using/configure.rst:108 +msgid ":mod:`zlib`, :mod:`gzip`, :mod:`ensurepip`" +msgstr "" + +#: using/configure.rst:109 +msgid "`zstd `_" msgstr "" -#: using/configure.rst:64 +#: using/configure.rst:110 +msgid "1.4.5" +msgstr "" + +#: using/configure.rst:111 +msgid ":mod:`compression.zstd`" +msgstr "" + +#: using/configure.rst:113 msgid "" -"See also :pep:`7` \"Style Guide for C Code\" and :pep:`11` \"CPython " -"platform support\"." +"If *libmpdec* is not available, the :mod:`decimal` module will use a pure-" +"Python implementation. See :option:`--with-system-libmpdec` for details." +msgstr "" + +#: using/configure.rst:116 +msgid "" +"See :option:`--with-readline` for choosing the backend for the :mod:" +"`readline` module." +msgstr "" + +#: using/configure.rst:118 +msgid "" +"The :mod:`uuid` module uses ``_uuid`` to generate \"safe\" UUIDs. See the " +"module documentation for details." +msgstr "" + +#: using/configure.rst:120 +msgid "" +"The :mod:`curses` module requires the ``libncurses`` or ``libncursesw`` " +"library. The :mod:`curses.panel` module additionally requires the " +"``libpanel`` or ``libpanelw`` library." +msgstr "" + +#: using/configure.rst:124 +msgid "" +"If OpenSSL is not available, the :mod:`hashlib` module will use bundled " +"implementations of several hash functions. See :option:`--with-builtin-" +"hashlib-hashes` for *forcing* usage of OpenSSL." +msgstr "" + +#: using/configure.rst:128 +msgid "" +"Note that the table does not include all optional modules; in particular, " +"platform-specific modules like :mod:`winreg` are not listed here." msgstr "" -#: using/configure.rst:69 +#: using/configure.rst:133 +msgid "" +"The `devguide `_ includes a full list of dependencies required to " +"build all modules and instructions on how to install them on common " +"platforms." +msgstr "" + +#: using/configure.rst:136 +msgid "" +":option:`--with-system-expat` allows building with an external `libexpat " +"`_ library." +msgstr "" + +#: using/configure.rst:138 +msgid ":ref:`configure-options-for-dependencies`" +msgstr "" + +#: using/configure.rst:140 +msgid "Tcl/Tk version 8.3.1 is now required for :mod:`tkinter`." +msgstr "" + +#: using/configure.rst:143 +msgid "Tcl/Tk version 8.4 is now required for :mod:`tkinter`." +msgstr "" + +#: using/configure.rst:146 +msgid "OpenSSL 1.0.2 is now required for :mod:`hashlib` and :mod:`ssl`." +msgstr "" + +#: using/configure.rst:149 +msgid "" +"OpenSSL 1.1.1 is now required for :mod:`hashlib` and :mod:`ssl`. SQLite " +"3.7.15 is now required for :mod:`sqlite3`." +msgstr "" + +#: using/configure.rst:153 +msgid "Tcl/Tk version 8.5.12 is now required for :mod:`tkinter`." +msgstr "" + +#: using/configure.rst:156 +msgid "SQLite 3.15.2 is now required for :mod:`sqlite3`." +msgstr "" + +#: using/configure.rst:161 msgid "Generated files" msgstr "" -#: using/configure.rst:71 +#: using/configure.rst:163 msgid "" "To reduce build dependencies, Python source code contains multiple generated " "files. Commands to regenerate all generated files::" msgstr "" -#: using/configure.rst:74 +#: using/configure.rst:166 msgid "" "make regen-all\n" "make regen-stdlib-module-names\n" @@ -134,17 +349,17 @@ msgid "" "make regen-configure" msgstr "" -#: using/configure.rst:79 +#: using/configure.rst:171 msgid "" "The ``Makefile.pre.in`` file documents generated files, their inputs, and " "tools used to regenerate them. Search for ``regen-*`` make targets." msgstr "" -#: using/configure.rst:83 +#: using/configure.rst:175 msgid "configure script" msgstr "" -#: using/configure.rst:85 +#: using/configure.rst:177 msgid "" "The ``make regen-configure`` command regenerates the ``aclocal.m4`` file and " "the ``configure`` script using the ``Tools/build/regen-configure.sh`` shell " @@ -152,81 +367,94 @@ msgid "" "have a reproducible output." msgstr "" -#: using/configure.rst:90 +#: using/configure.rst:182 msgid "The container is optional, the following command can be run locally::" msgstr "" -#: using/configure.rst:92 +#: using/configure.rst:184 msgid "autoreconf -ivf -Werror" msgstr "" -#: using/configure.rst:94 +#: using/configure.rst:186 msgid "" -"The generated files can change depending on the exact ``autoconf-archive``, " -"``aclocal`` and ``pkg-config`` versions." +"The generated files can change depending on the exact versions of the tools " +"used. The container that CPython uses has `Autoconf `_ 2.72, ``aclocal`` from `Automake `_ 1.16.5, and `pkg-config `_ 1.8.1." msgstr "" -#: using/configure.rst:101 +#: using/configure.rst:193 +msgid "" +"Autoconf 2.71 and aclocal 1.16.5 and are now used to regenerate :file:" +"`configure`." +msgstr "" + +#: using/configure.rst:197 +msgid "Autoconf 2.72 is now used to regenerate :file:`configure`." +msgstr "" + +#: using/configure.rst:204 msgid "Configure Options" msgstr "" -#: using/configure.rst:103 +#: using/configure.rst:206 msgid "List all :file:`configure` script options using::" msgstr "" -#: using/configure.rst:105 +#: using/configure.rst:208 msgid "./configure --help" msgstr "" -#: using/configure.rst:107 +#: using/configure.rst:210 msgid "" "See also the :file:`Misc/SpecialBuilds.txt` in the Python source " "distribution." msgstr "" -#: using/configure.rst:110 +#: using/configure.rst:213 msgid "General Options" msgstr "" -#: using/configure.rst:114 +#: using/configure.rst:217 msgid "" "Support loadable extensions in the :mod:`!_sqlite` extension module (default " "is no) of the :mod:`sqlite3` module." msgstr "" -#: using/configure.rst:117 +#: using/configure.rst:220 msgid "" "See the :meth:`sqlite3.Connection.enable_load_extension` method of the :mod:" "`sqlite3` module." msgstr "" -#: using/configure.rst:124 +#: using/configure.rst:227 msgid "" "Disable IPv6 support (enabled by default if supported), see the :mod:" "`socket` module." msgstr "" -#: using/configure.rst:129 +#: using/configure.rst:232 msgid "Define the size in bits of Python :class:`int` digits: 15 or 30 bits." msgstr "" -#: using/configure.rst:131 +#: using/configure.rst:234 msgid "By default, the digit size is 30." msgstr "" -#: using/configure.rst:133 +#: using/configure.rst:236 msgid "Define the ``PYLONG_BITS_IN_DIGIT`` to ``15`` or ``30``." msgstr "" -#: using/configure.rst:135 +#: using/configure.rst:238 msgid "See :data:`sys.int_info.bits_per_digit `." msgstr "" -#: using/configure.rst:139 +#: using/configure.rst:242 msgid "Set the Python executable suffix to *SUFFIX*." msgstr "" -#: using/configure.rst:141 +#: using/configure.rst:244 msgid "" "The default suffix is ``.exe`` on Windows and macOS (``python.exe`` " "executable), ``.js`` on Emscripten node, ``.html`` on Emscripten browser, ``." @@ -234,91 +462,91 @@ msgid "" "executable)." msgstr "" -#: using/configure.rst:146 +#: using/configure.rst:249 msgid "" "The default suffix on WASM platform is one of ``.js``, ``.html`` or ``." "wasm``." msgstr "" -#: using/configure.rst:152 +#: using/configure.rst:255 msgid "" "Select the default time zone search path for :const:`zoneinfo.TZPATH`. See " "the :ref:`Compile-time configuration ` of " "the :mod:`zoneinfo` module." msgstr "" -#: using/configure.rst:156 +#: using/configure.rst:259 msgid "" "Default: ``/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/" "etc/zoneinfo``." msgstr "" -#: using/configure.rst:158 +#: using/configure.rst:261 msgid "See :data:`os.pathsep` path separator." msgstr "" -#: using/configure.rst:164 +#: using/configure.rst:267 msgid "" "Build the ``_decimal`` extension module using a thread-local context rather " "than a coroutine-local context (default), see the :mod:`decimal` module." msgstr "" -#: using/configure.rst:167 +#: using/configure.rst:270 msgid "See :const:`decimal.HAVE_CONTEXTVAR` and the :mod:`contextvars` module." msgstr "" -#: using/configure.rst:173 +#: using/configure.rst:276 msgid "Override order to check db backends for the :mod:`dbm` module" msgstr "" -#: using/configure.rst:175 +#: using/configure.rst:278 msgid "" "A valid value is a colon (``:``) separated string with the backend names:" msgstr "" -#: using/configure.rst:177 +#: using/configure.rst:280 msgid "``ndbm``;" msgstr "" -#: using/configure.rst:178 +#: using/configure.rst:281 msgid "``gdbm``;" msgstr "" -#: using/configure.rst:179 +#: using/configure.rst:282 msgid "``bdb``." msgstr "" -#: using/configure.rst:183 +#: using/configure.rst:286 msgid "Disable C locale coercion to a UTF-8 based locale (enabled by default)." msgstr "" -#: using/configure.rst:185 +#: using/configure.rst:288 msgid "Don't define the ``PY_COERCE_C_LOCALE`` macro." msgstr "" -#: using/configure.rst:187 +#: using/configure.rst:290 msgid "See :envvar:`PYTHONCOERCECLOCALE` and the :pep:`538`." msgstr "" -#: using/configure.rst:191 +#: using/configure.rst:294 msgid "Python library directory name (default is ``lib``)." msgstr "" -#: using/configure.rst:193 +#: using/configure.rst:296 msgid "Fedora and SuSE use ``lib64`` on 64-bit platforms." msgstr "" -#: using/configure.rst:195 +#: using/configure.rst:298 msgid "See :data:`sys.platlibdir`." msgstr "" -#: using/configure.rst:201 +#: using/configure.rst:304 msgid "" "Directory of wheel packages used by the :mod:`ensurepip` module (none by " "default)." msgstr "" -#: using/configure.rst:204 +#: using/configure.rst:307 msgid "" "Some Linux distribution packaging policies recommend against bundling " "dependencies. For example, Fedora installs wheel packages in the ``/usr/" @@ -326,241 +554,241 @@ msgid "" "_bundled` package." msgstr "" -#: using/configure.rst:213 +#: using/configure.rst:316 msgid "" "Whether configure should use :program:`pkg-config` to detect build " "dependencies." msgstr "" -#: using/configure.rst:216 +#: using/configure.rst:319 msgid "``check`` (default): :program:`pkg-config` is optional" msgstr "" -#: using/configure.rst:217 +#: using/configure.rst:320 msgid "``yes``: :program:`pkg-config` is mandatory" msgstr "" -#: using/configure.rst:218 +#: using/configure.rst:321 msgid "``no``: configure does not use :program:`pkg-config` even when present" msgstr "" -#: using/configure.rst:224 +#: using/configure.rst:327 msgid "Turn on internal Python performance statistics gathering." msgstr "" -#: using/configure.rst:226 +#: using/configure.rst:329 msgid "" "By default, statistics gathering is off. Use ``python3 -X pystats`` command " "or set ``PYTHONSTATS=1`` environment variable to turn on statistics " "gathering at Python startup." msgstr "" -#: using/configure.rst:230 +#: using/configure.rst:333 msgid "" "At Python exit, dump statistics if statistics gathering was on and not " "cleared." msgstr "" -#: using/configure.rst:749 +#: using/configure.rst:855 msgid "Effects:" msgstr "" -#: using/configure.rst:235 +#: using/configure.rst:338 msgid "Add :option:`-X pystats <-X>` command line option." msgstr "" -#: using/configure.rst:236 +#: using/configure.rst:339 msgid "Add :envvar:`!PYTHONSTATS` environment variable." msgstr "" -#: using/configure.rst:237 +#: using/configure.rst:340 msgid "Define the ``Py_STATS`` macro." msgstr "" -#: using/configure.rst:238 +#: using/configure.rst:341 msgid "Add functions to the :mod:`sys` module:" msgstr "" -#: using/configure.rst:240 +#: using/configure.rst:343 msgid ":func:`!sys._stats_on`: Turns on statistics gathering." msgstr "" -#: using/configure.rst:241 +#: using/configure.rst:344 msgid ":func:`!sys._stats_off`: Turns off statistics gathering." msgstr "" -#: using/configure.rst:242 +#: using/configure.rst:345 msgid ":func:`!sys._stats_clear`: Clears the statistics." msgstr "" -#: using/configure.rst:243 +#: using/configure.rst:346 msgid "" ":func:`!sys._stats_dump`: Dump statistics to file, and clears the statistics." msgstr "" -#: using/configure.rst:245 +#: using/configure.rst:348 msgid "" "The statistics will be dumped to a arbitrary (probably unique) file in ``/" "tmp/py_stats/`` (Unix) or ``C:\\temp\\py_stats\\`` (Windows). If that " "directory does not exist, results will be printed on stderr." msgstr "" -#: using/configure.rst:249 +#: using/configure.rst:352 msgid "Use ``Tools/scripts/summarize_stats.py`` to read the stats." msgstr "" -#: using/configure.rst:251 +#: using/configure.rst:354 msgid "Statistics:" msgstr "" -#: using/configure.rst:253 +#: using/configure.rst:356 msgid "Opcode:" msgstr "" -#: using/configure.rst:255 +#: using/configure.rst:358 msgid "Specialization: success, failure, hit, deferred, miss, deopt, failures;" msgstr "" -#: using/configure.rst:256 +#: using/configure.rst:359 msgid "Execution count;" msgstr "" -#: using/configure.rst:257 +#: using/configure.rst:360 msgid "Pair count." msgstr "" -#: using/configure.rst:259 +#: using/configure.rst:362 msgid "Call:" msgstr "" -#: using/configure.rst:261 +#: using/configure.rst:364 msgid "Inlined Python calls;" msgstr "" -#: using/configure.rst:262 +#: using/configure.rst:365 msgid "PyEval calls;" msgstr "" -#: using/configure.rst:263 +#: using/configure.rst:366 msgid "Frames pushed;" msgstr "" -#: using/configure.rst:264 +#: using/configure.rst:367 msgid "Frame object created;" msgstr "" -#: using/configure.rst:265 +#: using/configure.rst:368 msgid "" "Eval calls: vector, generator, legacy, function VECTORCALL, build class, " "slot, function \"ex\", API, method." msgstr "" -#: using/configure.rst:268 +#: using/configure.rst:371 msgid "Object:" msgstr "" -#: using/configure.rst:270 +#: using/configure.rst:373 msgid "incref and decref;" msgstr "" -#: using/configure.rst:271 +#: using/configure.rst:374 msgid "interpreter incref and decref;" msgstr "" -#: using/configure.rst:272 +#: using/configure.rst:375 msgid "allocations: all, 512 bytes, 4 kiB, big;" msgstr "" -#: using/configure.rst:273 +#: using/configure.rst:376 msgid "free;" msgstr "" -#: using/configure.rst:274 +#: using/configure.rst:377 msgid "to/from free lists;" msgstr "" -#: using/configure.rst:275 +#: using/configure.rst:378 msgid "dictionary materialized/dematerialized;" msgstr "" -#: using/configure.rst:276 +#: using/configure.rst:379 msgid "type cache;" msgstr "" -#: using/configure.rst:277 +#: using/configure.rst:380 msgid "optimization attempts;" msgstr "" -#: using/configure.rst:278 +#: using/configure.rst:381 msgid "optimization traces created/executed;" msgstr "" -#: using/configure.rst:279 +#: using/configure.rst:382 msgid "uops executed." msgstr "" -#: using/configure.rst:281 +#: using/configure.rst:384 msgid "Garbage collector:" msgstr "" -#: using/configure.rst:283 +#: using/configure.rst:386 msgid "Garbage collections;" msgstr "" -#: using/configure.rst:284 +#: using/configure.rst:387 msgid "Objects visited;" msgstr "" -#: using/configure.rst:285 +#: using/configure.rst:388 msgid "Objects collected." msgstr "" -#: using/configure.rst:293 +#: using/configure.rst:396 msgid "" "Enables support for running Python without the :term:`global interpreter " "lock` (GIL): free threading build." msgstr "" -#: using/configure.rst:296 +#: using/configure.rst:399 msgid "" "Defines the ``Py_GIL_DISABLED`` macro and adds ``\"t\"`` to :data:`sys." "abiflags`." msgstr "" -#: using/configure.rst:299 +#: using/configure.rst:402 msgid "See :ref:`whatsnew313-free-threaded-cpython` for more detail." msgstr "" -#: using/configure.rst:305 +#: using/configure.rst:408 msgid "" "Indicate how to integrate the :ref:`experimental just-in-time compiler " "`." msgstr "" -#: using/configure.rst:307 +#: using/configure.rst:410 msgid "``no``: Don't build the JIT." msgstr "" -#: using/configure.rst:308 +#: using/configure.rst:411 msgid "" "``yes``: Enable the JIT. To disable it at runtime, set the environment " "variable :envvar:`PYTHON_JIT=0 `." msgstr "" -#: using/configure.rst:310 +#: using/configure.rst:413 msgid "" "``yes-off``: Build the JIT, but disable it by default. To enable it at " "runtime, set the environment variable :envvar:`PYTHON_JIT=1 `." msgstr "" -#: using/configure.rst:312 +#: using/configure.rst:415 msgid "" "``interpreter``: Enable the \"JIT interpreter\" (only useful for those " "debugging the JIT itself). To disable it at runtime, set the environment " "variable :envvar:`PYTHON_JIT=0 `." msgstr "" -#: using/configure.rst:316 +#: using/configure.rst:419 msgid "" "``--enable-experimental-jit=no`` is the default behavior if the option is " "not provided, and ``--enable-experimental-jit`` is shorthand for ``--enable-" @@ -568,259 +796,253 @@ msgid "" "information, including how to install the necessary build-time dependencies." msgstr "" -#: using/configure.rst:323 +#: using/configure.rst:426 msgid "" "When building CPython with JIT enabled, ensure that your system has Python " "3.11 or later installed." msgstr "" -#: using/configure.rst:329 +#: using/configure.rst:432 msgid "Path to ``pkg-config`` utility." msgstr "" -#: using/configure.rst:334 +#: using/configure.rst:437 msgid "``pkg-config`` options." msgstr "" -#: using/configure.rst:338 +#: using/configure.rst:441 msgid "C compiler options" msgstr "" -#: using/configure.rst:1316 +#: using/configure.rst:1432 msgid "C compiler command." msgstr "" -#: using/configure.rst:1328 +#: using/configure.rst:1444 msgid "C compiler flags." msgstr "" -#: using/configure.rst:350 +#: using/configure.rst:453 msgid "C preprocessor command." msgstr "" -#: using/configure.rst:354 +#: using/configure.rst:457 msgid "C preprocessor flags, e.g. :samp:`-I{include_dir}`." msgstr "" -#: using/configure.rst:820 +#: using/configure.rst:929 msgid "Linker options" msgstr "" -#: using/configure.rst:362 +#: using/configure.rst:465 msgid "Linker flags, e.g. :samp:`-L{library_directory}`." msgstr "" -#: using/configure.rst:366 +#: using/configure.rst:469 msgid "Libraries to pass to the linker, e.g. :samp:`-l{library}`." msgstr "" -#: using/configure.rst:370 +#: using/configure.rst:473 msgid "Name for machine-dependent library files." msgstr "" -#: using/configure.rst:374 +#: using/configure.rst:479 msgid "Options for third-party dependencies" msgstr "" -#: using/configure.rst:381 +#: using/configure.rst:486 msgid "" "C compiler and linker flags to link Python to ``libbz2``, used by :mod:`bz2` " "module, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:387 +#: using/configure.rst:492 msgid "" "C compiler and linker flags for ``libncurses`` or ``libncursesw``, used by :" "mod:`curses` module, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:393 +#: using/configure.rst:498 msgid "C compiler and linker flags for ``gdbm``." msgstr "" -#: using/configure.rst:398 -msgid "" -"C compiler and linker flags for ``libb2`` (:ref:`BLAKE2 `), " -"used by :mod:`hashlib` module, overriding ``pkg-config``." -msgstr "" - -#: using/configure.rst:404 +#: using/configure.rst:503 msgid "" "C compiler and linker flags for ``libedit``, used by :mod:`readline` module, " "overriding ``pkg-config``." msgstr "" -#: using/configure.rst:410 +#: using/configure.rst:509 msgid "" "C compiler and linker flags for ``libffi``, used by :mod:`ctypes` module, " "overriding ``pkg-config``." msgstr "" -#: using/configure.rst:416 +#: using/configure.rst:515 msgid "" "C compiler and linker flags for ``libmpdec``, used by :mod:`decimal` module, " "overriding ``pkg-config``." msgstr "" -#: using/configure.rst:421 +#: using/configure.rst:520 msgid "" "These environment variables have no effect unless :option:`--with-system-" "libmpdec` is specified." msgstr "" -#: using/configure.rst:427 +#: using/configure.rst:526 msgid "" "C compiler and linker flags for ``liblzma``, used by :mod:`lzma` module, " "overriding ``pkg-config``." msgstr "" -#: using/configure.rst:433 +#: using/configure.rst:532 msgid "" "C compiler and linker flags for ``libreadline``, used by :mod:`readline` " "module, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:439 +#: using/configure.rst:538 msgid "" "C compiler and linker flags for ``libsqlite3``, used by :mod:`sqlite3` " "module, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:445 +#: using/configure.rst:544 msgid "" "C compiler and linker flags for ``libuuid``, used by :mod:`uuid` module, " "overriding ``pkg-config``." msgstr "" -#: using/configure.rst:451 +#: using/configure.rst:550 msgid "" "C compiler and linker flags for ``libzstd``, used by :mod:`compression.zstd` " "module, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:459 +#: using/configure.rst:558 msgid "C compiler and linker flags for PANEL, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:461 +#: using/configure.rst:560 msgid "" "C compiler and linker flags for ``libpanel`` or ``libpanelw``, used by :mod:" "`curses.panel` module, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:467 +#: using/configure.rst:566 msgid "C compiler and linker flags for TCLTK, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:472 +#: using/configure.rst:571 msgid "" "C compiler and linker flags for ``libzlib``, used by :mod:`gzip` module, " "overriding ``pkg-config``." msgstr "" -#: using/configure.rst:477 +#: using/configure.rst:576 msgid "WebAssembly Options" msgstr "" -#: using/configure.rst:481 +#: using/configure.rst:580 msgid "Turn on dynamic linking support for WASM." msgstr "" -#: using/configure.rst:483 +#: using/configure.rst:582 msgid "" "Dynamic linking enables ``dlopen``. File size of the executable increases " "due to limited dead code elimination and additional features." msgstr "" -#: using/configure.rst:490 +#: using/configure.rst:589 msgid "Turn on pthreads support for WASM." msgstr "" -#: using/configure.rst:496 +#: using/configure.rst:595 msgid "Install Options" msgstr "" -#: using/configure.rst:500 +#: using/configure.rst:599 msgid "" "Install architecture-independent files in PREFIX. On Unix, it defaults to :" "file:`/usr/local`." msgstr "" -#: using/configure.rst:503 +#: using/configure.rst:602 msgid "This value can be retrieved at runtime using :data:`sys.prefix`." msgstr "" -#: using/configure.rst:505 +#: using/configure.rst:604 msgid "" "As an example, one can use ``--prefix=\"$HOME/.local/\"`` to install a " "Python in its home directory." msgstr "" -#: using/configure.rst:510 +#: using/configure.rst:609 msgid "" "Install architecture-dependent files in EPREFIX, defaults to :option:`--" "prefix`." msgstr "" -#: using/configure.rst:512 +#: using/configure.rst:611 msgid "This value can be retrieved at runtime using :data:`sys.exec_prefix`." msgstr "" -#: using/configure.rst:516 +#: using/configure.rst:615 msgid "" "Don't build nor install test modules, like the :mod:`test` package or the :" "mod:`!_testcapi` extension module (built and installed by default)." msgstr "" -#: using/configure.rst:523 +#: using/configure.rst:622 msgid "Select the :mod:`ensurepip` command run on Python installation:" msgstr "" -#: using/configure.rst:525 +#: using/configure.rst:624 msgid "" "``upgrade`` (default): run ``python -m ensurepip --altinstall --upgrade`` " "command." msgstr "" -#: using/configure.rst:527 +#: using/configure.rst:626 msgid "``install``: run ``python -m ensurepip --altinstall`` command;" msgstr "" -#: using/configure.rst:528 +#: using/configure.rst:627 msgid "``no``: don't run ensurepip;" msgstr "" -#: using/configure.rst:534 +#: using/configure.rst:633 msgid "Performance options" msgstr "" -#: using/configure.rst:536 +#: using/configure.rst:635 msgid "" "Configuring Python using ``--enable-optimizations --with-lto`` (PGO + LTO) " "is recommended for best performance. The experimental ``--enable-bolt`` flag " "can also be used to improve performance." msgstr "" -#: using/configure.rst:542 +#: using/configure.rst:641 msgid "" "Enable Profile Guided Optimization (PGO) using :envvar:`PROFILE_TASK` " "(disabled by default)." msgstr "" -#: using/configure.rst:545 +#: using/configure.rst:644 msgid "" "The C compiler Clang requires ``llvm-profdata`` program for PGO. On macOS, " "GCC also requires it: GCC is just an alias to Clang on macOS." msgstr "" -#: using/configure.rst:548 +#: using/configure.rst:647 msgid "" "Disable also semantic interposition in libpython if ``--enable-shared`` and " "GCC is used: add ``-fno-semantic-interposition`` to the compiler and linker " "flags." msgstr "" -#: using/configure.rst:554 +#: using/configure.rst:653 msgid "" "During the build, you may encounter compiler warnings about profile data not " "being available for some source files. These warnings are harmless, as only " @@ -829,58 +1051,58 @@ msgid "" "profile-instr-unprofiled`` to :envvar:`CFLAGS`." msgstr "" -#: using/configure.rst:563 +#: using/configure.rst:662 msgid "Use ``-fno-semantic-interposition`` on GCC." msgstr "" -#: using/configure.rst:568 +#: using/configure.rst:667 msgid "" "Environment variable used in the Makefile: Python command line arguments for " "the PGO generation task." msgstr "" -#: using/configure.rst:571 +#: using/configure.rst:670 msgid "Default: ``-m test --pgo --timeout=$(TESTTIMEOUT)``." msgstr "" -#: using/configure.rst:575 +#: using/configure.rst:674 msgid "Task failure is no longer ignored silently." msgstr "" -#: using/configure.rst:580 +#: using/configure.rst:679 msgid "Enable Link Time Optimization (LTO) in any build (disabled by default)." msgstr "" -#: using/configure.rst:582 +#: using/configure.rst:681 msgid "" "The C compiler Clang requires ``llvm-ar`` for LTO (``ar`` on macOS), as well " "as an LTO-aware linker (``ld.gold`` or ``lld``)." msgstr "" -#: using/configure.rst:587 +#: using/configure.rst:686 msgid "To use ThinLTO feature, use ``--with-lto=thin`` on Clang." msgstr "" -#: using/configure.rst:590 +#: using/configure.rst:689 msgid "" "Use ThinLTO as the default optimization policy on Clang if the compiler " "accepts the flag." msgstr "" -#: using/configure.rst:595 +#: using/configure.rst:694 msgid "" "Enable usage of the `BOLT post-link binary optimizer `_ (disabled by default)." msgstr "" -#: using/configure.rst:599 +#: using/configure.rst:698 msgid "" "BOLT is part of the LLVM project but is not always included in their binary " "distributions. This flag requires that ``llvm-bolt`` and ``merge-fdata`` are " "available." msgstr "" -#: using/configure.rst:603 +#: using/configure.rst:702 msgid "" "BOLT is still a fairly new project so this flag should be considered " "experimental for now. Because this tool operates on machine code its success " @@ -891,7 +1113,7 @@ msgid "" "encouraged." msgstr "" -#: using/configure.rst:611 +#: using/configure.rst:710 msgid "" "The :envvar:`!BOLT_INSTRUMENT_FLAGS` and :envvar:`!BOLT_APPLY_FLAGS` :" "program:`configure` variables can be defined to override the default set of " @@ -899,23 +1121,23 @@ msgid "" "binaries, respectively." msgstr "" -#: using/configure.rst:620 +#: using/configure.rst:719 msgid "" "Arguments to ``llvm-bolt`` when creating a `BOLT optimized binary `_." msgstr "" -#: using/configure.rst:627 +#: using/configure.rst:726 msgid "Arguments to ``llvm-bolt`` when instrumenting binaries." msgstr "" -#: using/configure.rst:633 +#: using/configure.rst:732 msgid "" "Enable computed gotos in evaluation loop (enabled by default on supported " "compilers)." msgstr "" -#: using/configure.rst:638 +#: using/configure.rst:737 msgid "" "Enable interpreters using tail calls in CPython. If enabled, enabling PGO (:" "option:`--enable-optimizations`) is highly recommended. This option " @@ -925,46 +1147,46 @@ msgid "" "feature." msgstr "" -#: using/configure.rst:648 +#: using/configure.rst:747 msgid "" "Disable the fast :ref:`mimalloc ` allocator (enabled by default)." msgstr "" -#: using/configure.rst:658 +#: using/configure.rst:757 msgid "See also :envvar:`PYTHONMALLOC` environment variable." msgstr "" -#: using/configure.rst:655 +#: using/configure.rst:754 msgid "" "Disable the specialized Python memory allocator :ref:`pymalloc ` " "(enabled by default)." msgstr "" -#: using/configure.rst:662 +#: using/configure.rst:761 msgid "" "Disable static documentation strings to reduce the memory footprint (enabled " "by default). Documentation strings defined in Python are not affected." msgstr "" -#: using/configure.rst:665 +#: using/configure.rst:764 msgid "Don't define the ``WITH_DOC_STRINGS`` macro." msgstr "" -#: using/configure.rst:667 +#: using/configure.rst:766 msgid "See the ``PyDoc_STRVAR()`` macro." msgstr "" -#: using/configure.rst:671 +#: using/configure.rst:770 msgid "Enable C-level code profiling with ``gprof`` (disabled by default)." msgstr "" -#: using/configure.rst:675 +#: using/configure.rst:774 msgid "" "Add ``-fstrict-overflow`` to the C compiler flags (by default we add ``-fno-" "strict-overflow`` instead)." msgstr "" -#: using/configure.rst:680 +#: using/configure.rst:779 msgid "" "Deactivate remote debugging support described in :pep:`768` (enabled by " "default). When this flag is provided the code that allows the interpreter to " @@ -974,61 +1196,73 @@ msgid "" "executed." msgstr "" -#: using/configure.rst:693 +#: using/configure.rst:787 +msgid "" +"This macro is defined by default, unless Python is configured with :option:" +"`--without-remote-debug`." +msgstr "" + +#: using/configure.rst:790 +msgid "" +"Note that even if the macro is defined, remote debugging may not be " +"available (for example, on an incompatible platform)." +msgstr "" + +#: using/configure.rst:799 msgid "Python Debug Build" msgstr "" -#: using/configure.rst:695 +#: using/configure.rst:801 msgid "" "A debug build is Python built with the :option:`--with-pydebug` configure " "option." msgstr "" -#: using/configure.rst:698 +#: using/configure.rst:804 msgid "Effects of a debug build:" msgstr "" -#: using/configure.rst:700 +#: using/configure.rst:806 msgid "" "Display all warnings by default: the list of default warning filters is " "empty in the :mod:`warnings` module." msgstr "" -#: using/configure.rst:702 +#: using/configure.rst:808 msgid "Add ``d`` to :data:`sys.abiflags`." msgstr "" -#: using/configure.rst:703 +#: using/configure.rst:809 msgid "Add :func:`!sys.gettotalrefcount` function." msgstr "" -#: using/configure.rst:704 +#: using/configure.rst:810 msgid "Add :option:`-X showrefcount <-X>` command line option." msgstr "" -#: using/configure.rst:705 +#: using/configure.rst:811 msgid "" "Add :option:`-d` command line option and :envvar:`PYTHONDEBUG` environment " "variable to debug the parser." msgstr "" -#: using/configure.rst:707 +#: using/configure.rst:813 msgid "" "Add support for the ``__lltrace__`` variable: enable low-level tracing in " "the bytecode evaluation loop if the variable is defined." msgstr "" -#: using/configure.rst:709 +#: using/configure.rst:815 msgid "" "Install :ref:`debug hooks on memory allocators ` " "to detect buffer overflow and other memory errors." msgstr "" -#: using/configure.rst:711 +#: using/configure.rst:817 msgid "Define ``Py_DEBUG`` and ``Py_REF_DEBUG`` macros." msgstr "" -#: using/configure.rst:712 +#: using/configure.rst:818 msgid "" "Add runtime checks: code surrounded by ``#ifdef Py_DEBUG`` and ``#endif``. " "Enable ``assert(...)`` and ``_PyObject_ASSERT(...)`` assertions: don't set " @@ -1036,317 +1270,328 @@ msgid "" "option). Main runtime checks:" msgstr "" -#: using/configure.rst:717 +#: using/configure.rst:823 msgid "Add sanity checks on the function arguments." msgstr "" -#: using/configure.rst:718 +#: using/configure.rst:824 msgid "" "Unicode and int objects are created with their memory filled with a pattern " "to detect usage of uninitialized objects." msgstr "" -#: using/configure.rst:720 +#: using/configure.rst:826 msgid "" "Ensure that functions which can clear or replace the current exception are " "not called with an exception raised." msgstr "" -#: using/configure.rst:722 +#: using/configure.rst:828 msgid "Check that deallocator functions don't change the current exception." msgstr "" -#: using/configure.rst:723 +#: using/configure.rst:829 msgid "" "The garbage collector (:func:`gc.collect` function) runs some basic checks " "on objects consistency." msgstr "" -#: using/configure.rst:725 +#: using/configure.rst:831 msgid "" "The :c:macro:`!Py_SAFE_DOWNCAST()` macro checks for integer underflow and " "overflow when downcasting from wide types to narrow types." msgstr "" -#: using/configure.rst:728 +#: using/configure.rst:834 msgid "" "See also the :ref:`Python Development Mode ` and the :option:`--" "with-trace-refs` configure option." msgstr "" -#: using/configure.rst:731 +#: using/configure.rst:837 msgid "" "Release builds and debug builds are now ABI compatible: defining the " "``Py_DEBUG`` macro no longer implies the ``Py_TRACE_REFS`` macro (see the :" "option:`--with-trace-refs` option)." msgstr "" -#: using/configure.rst:738 +#: using/configure.rst:844 msgid "Debug options" msgstr "" -#: using/configure.rst:742 +#: using/configure.rst:848 msgid "" ":ref:`Build Python in debug mode `: define the ``Py_DEBUG`` " "macro (disabled by default)." msgstr "" -#: using/configure.rst:747 +#: using/configure.rst:853 msgid "Enable tracing references for debugging purpose (disabled by default)." msgstr "" -#: using/configure.rst:751 +#: using/configure.rst:857 msgid "Define the ``Py_TRACE_REFS`` macro." msgstr "" -#: using/configure.rst:752 +#: using/configure.rst:858 msgid "Add :func:`sys.getobjects` function." msgstr "" -#: using/configure.rst:753 +#: using/configure.rst:859 msgid "Add :envvar:`PYTHONDUMPREFS` environment variable." msgstr "" -#: using/configure.rst:755 +#: using/configure.rst:861 msgid "" "The :envvar:`PYTHONDUMPREFS` environment variable can be used to dump " "objects and reference counts still alive at Python exit." msgstr "" -#: using/configure.rst:758 +#: using/configure.rst:864 msgid ":ref:`Statically allocated objects ` are not traced." msgstr "" -#: using/configure.rst:762 +#: using/configure.rst:868 msgid "" "This build is now ABI compatible with release build and :ref:`debug build " "`." msgstr "" -#: using/configure.rst:768 +#: using/configure.rst:874 msgid "" "Build with C assertions enabled (default is no): ``assert(...);`` and " "``_PyObject_ASSERT(...);``." msgstr "" -#: using/configure.rst:771 +#: using/configure.rst:877 msgid "" "If set, the ``NDEBUG`` macro is not defined in the :envvar:`OPT` compiler " "variable." msgstr "" -#: using/configure.rst:774 +#: using/configure.rst:880 msgid "" "See also the :option:`--with-pydebug` option (:ref:`debug build `) which also enables assertions." msgstr "" -#: using/configure.rst:781 +#: using/configure.rst:887 msgid "Enable Valgrind support (default is no)." msgstr "" -#: using/configure.rst:785 +#: using/configure.rst:891 msgid "Enable DTrace support (default is no)." msgstr "" -#: using/configure.rst:787 +#: using/configure.rst:893 msgid "" "See :ref:`Instrumenting CPython with DTrace and SystemTap `." msgstr "" -#: using/configure.rst:794 +#: using/configure.rst:900 msgid "" -"Enable AddressSanitizer memory error detector, ``asan`` (default is no)." +"Enable AddressSanitizer memory error detector, ``asan`` (default is no). To " +"improve ASan detection capabilities you may also want to combine this with :" +"option:`--without-pymalloc` to disable the specialized small-object " +"allocator whose allocations are not tracked by ASan." msgstr "" -#: using/configure.rst:800 +#: using/configure.rst:909 msgid "" "Enable MemorySanitizer allocation error detector, ``msan`` (default is no)." msgstr "" -#: using/configure.rst:806 +#: using/configure.rst:915 msgid "" "Enable UndefinedBehaviorSanitizer undefined behaviour detector, ``ubsan`` " "(default is no)." msgstr "" -#: using/configure.rst:813 +#: using/configure.rst:922 msgid "Enable ThreadSanitizer data race detector, ``tsan`` (default is no)." msgstr "" -#: using/configure.rst:824 +#: using/configure.rst:933 msgid "Enable building a shared Python library: ``libpython`` (default is no)." msgstr "" -#: using/configure.rst:828 +#: using/configure.rst:937 msgid "" "Do not build ``libpythonMAJOR.MINOR.a`` and do not install ``python.o`` " "(built and enabled by default)." msgstr "" -#: using/configure.rst:835 +#: using/configure.rst:944 msgid "Libraries options" msgstr "" -#: using/configure.rst:839 +#: using/configure.rst:948 msgid "Link against additional libraries (default is no)." msgstr "" -#: using/configure.rst:843 +#: using/configure.rst:952 msgid "" "Build the :mod:`!pyexpat` module using an installed ``expat`` library " "(default is no)." msgstr "" -#: using/configure.rst:848 +#: using/configure.rst:957 msgid "" "Build the ``_decimal`` extension module using an installed ``mpdecimal`` " "library, see the :mod:`decimal` module (default is yes)." msgstr "" -#: using/configure.rst:853 +#: using/configure.rst:962 msgid "Default to using the installed ``mpdecimal`` library." msgstr "" -#: using/configure.rst:856 +#: using/configure.rst:967 +msgid "" +"A bundled copy of the library will no longer be selected implicitly if an " +"installed ``mpdecimal`` library is not found. In Python 3.15 only, it can " +"still be selected explicitly using ``--with-system-libmpdec=no`` or ``--" +"without-system-libmpdec``." +msgstr "" + +#: using/configure.rst:972 msgid "" "A copy of the ``mpdecimal`` library sources will no longer be distributed " -"with Python 3.15." +"with Python 3.16." msgstr "" -#: using/configure.rst:860 +#: using/configure.rst:976 msgid ":option:`LIBMPDEC_CFLAGS` and :option:`LIBMPDEC_LIBS`." msgstr "" -#: using/configure.rst:864 +#: using/configure.rst:980 msgid "Designate a backend library for the :mod:`readline` module." msgstr "" -#: using/configure.rst:866 +#: using/configure.rst:982 msgid "readline: Use readline as the backend." msgstr "" -#: using/configure.rst:867 +#: using/configure.rst:983 msgid "editline: Use editline as the backend." msgstr "" -#: using/configure.rst:873 +#: using/configure.rst:989 msgid "Don't build the :mod:`readline` module (built by default)." msgstr "" -#: using/configure.rst:875 +#: using/configure.rst:991 msgid "Don't define the ``HAVE_LIBREADLINE`` macro." msgstr "" -#: using/configure.rst:881 +#: using/configure.rst:997 msgid "" "Override ``libm`` math library to *STRING* (default is system-dependent)." msgstr "" -#: using/configure.rst:885 +#: using/configure.rst:1001 msgid "Override ``libc`` C library to *STRING* (default is system-dependent)." msgstr "" -#: using/configure.rst:889 +#: using/configure.rst:1005 msgid "Root of the OpenSSL directory." msgstr "" -#: using/configure.rst:895 +#: using/configure.rst:1011 msgid "Set runtime library directory (rpath) for OpenSSL libraries:" msgstr "" -#: using/configure.rst:897 +#: using/configure.rst:1013 msgid "``no`` (default): don't set rpath;" msgstr "" -#: using/configure.rst:898 +#: using/configure.rst:1014 msgid "" "``auto``: auto-detect rpath from :option:`--with-openssl` and ``pkg-config``;" msgstr "" -#: using/configure.rst:900 +#: using/configure.rst:1016 msgid "*DIR*: set an explicit rpath." msgstr "" -#: using/configure.rst:906 +#: using/configure.rst:1022 msgid "Security Options" msgstr "" -#: using/configure.rst:910 +#: using/configure.rst:1026 msgid "Select hash algorithm for use in ``Python/pyhash.c``:" msgstr "" -#: using/configure.rst:912 +#: using/configure.rst:1028 msgid "``siphash13`` (default);" msgstr "" -#: using/configure.rst:913 +#: using/configure.rst:1029 msgid "``siphash24``;" msgstr "" -#: using/configure.rst:914 +#: using/configure.rst:1030 msgid "``fnv``." msgstr "" -#: using/configure.rst:918 +#: using/configure.rst:1034 msgid "``siphash13`` is added and it is the new default." msgstr "" -#: using/configure.rst:923 +#: using/configure.rst:1039 msgid "Built-in hash modules:" msgstr "" -#: using/configure.rst:925 +#: using/configure.rst:1041 msgid "``md5``;" msgstr "" -#: using/configure.rst:926 +#: using/configure.rst:1042 msgid "``sha1``;" msgstr "" -#: using/configure.rst:927 +#: using/configure.rst:1043 msgid "``sha256``;" msgstr "" -#: using/configure.rst:928 +#: using/configure.rst:1044 msgid "``sha512``;" msgstr "" -#: using/configure.rst:929 +#: using/configure.rst:1045 msgid "``sha3`` (with shake);" msgstr "" -#: using/configure.rst:930 +#: using/configure.rst:1046 msgid "``blake2``." msgstr "" -#: using/configure.rst:936 +#: using/configure.rst:1052 msgid "Override the OpenSSL default cipher suites string:" msgstr "" -#: using/configure.rst:938 +#: using/configure.rst:1054 msgid "``python`` (default): use Python's preferred selection;" msgstr "" -#: using/configure.rst:939 +#: using/configure.rst:1055 msgid "``openssl``: leave OpenSSL's defaults untouched;" msgstr "" -#: using/configure.rst:940 +#: using/configure.rst:1056 msgid "*STRING*: use a custom string" msgstr "" -#: using/configure.rst:942 +#: using/configure.rst:1058 msgid "See the :mod:`ssl` module." msgstr "" -#: using/configure.rst:948 +#: using/configure.rst:1064 msgid "" "The settings ``python`` and *STRING* also set TLS 1.2 as minimum protocol " "version." msgstr "" -#: using/configure.rst:953 +#: using/configure.rst:1069 msgid "" "Disable compiler options that are `recommended by OpenSSF`_ for security " "reasons with no performance overhead. If this option is not enabled, CPython " @@ -1355,24 +1600,24 @@ msgid "" "listed below." msgstr "" -#: using/configure.rst:957 +#: using/configure.rst:1073 msgid "" "The following compiler options are disabled with :option:`!--disable-safety`:" msgstr "" -#: using/configure.rst:959 +#: using/configure.rst:1075 msgid "" "`-fstack-protector-strong`_: Enable run-time checks for stack-based buffer " "overflows." msgstr "" -#: using/configure.rst:960 +#: using/configure.rst:1076 msgid "" "`-Wtrampolines`_: Enable warnings about trampolines that require executable " "stacks." msgstr "" -#: using/configure.rst:970 +#: using/configure.rst:1086 msgid "" "Enable compiler options that are `recommended by OpenSSF`_ for security " "reasons which require overhead. If this option is not enabled, CPython will " @@ -1381,81 +1626,81 @@ msgid "" "listed below." msgstr "" -#: using/configure.rst:974 +#: using/configure.rst:1090 msgid "" "The following compiler options are enabled with :option:`!--enable-slower-" "safety`:" msgstr "" -#: using/configure.rst:976 +#: using/configure.rst:1092 msgid "" "`-D_FORTIFY_SOURCE=3`_: Fortify sources with compile- and run-time checks " "for unsafe libc usage and buffer overflows." msgstr "" -#: using/configure.rst:984 +#: using/configure.rst:1100 msgid "macOS Options" msgstr "" -#: using/configure.rst:986 +#: using/configure.rst:1102 msgid "See :source:`Mac/README.rst`." msgstr "" -#: using/configure.rst:991 +#: using/configure.rst:1107 msgid "" "Create a universal binary build. *SDKDIR* specifies which macOS SDK should " "be used to perform the build (default is no)." msgstr "" -#: using/configure.rst:997 +#: using/configure.rst:1113 msgid "" "Create a Python.framework rather than a traditional Unix install. Optional " "*INSTALLDIR* specifies the installation path (default is no)." msgstr "" -#: using/configure.rst:1002 +#: using/configure.rst:1118 msgid "" "Specify the kind of universal binary that should be created. This option is " "only valid when :option:`--enable-universalsdk` is set." msgstr "" -#: using/configure.rst:1005 +#: using/configure.rst:1121 msgid "Options:" msgstr "" -#: using/configure.rst:1007 +#: using/configure.rst:1123 msgid "``universal2`` (x86-64 and arm64);" msgstr "" -#: using/configure.rst:1008 +#: using/configure.rst:1124 msgid "``32-bit`` (PPC and i386);" msgstr "" -#: using/configure.rst:1009 +#: using/configure.rst:1125 msgid "``64-bit`` (PPC64 and x86-64);" msgstr "" -#: using/configure.rst:1010 +#: using/configure.rst:1126 msgid "``3-way`` (i386, PPC and x86-64);" msgstr "" -#: using/configure.rst:1011 +#: using/configure.rst:1127 msgid "``intel`` (i386 and x86-64);" msgstr "" -#: using/configure.rst:1012 +#: using/configure.rst:1128 msgid "``intel-32`` (i386);" msgstr "" -#: using/configure.rst:1013 +#: using/configure.rst:1129 msgid "``intel-64`` (x86-64);" msgstr "" -#: using/configure.rst:1014 +#: using/configure.rst:1130 msgid "``all`` (PPC, i386, PPC64 and x86-64)." msgstr "" -#: using/configure.rst:1016 +#: using/configure.rst:1132 msgid "" "Note that values for this configuration item are *not* the same as the " "identifiers used for universal binary wheels on macOS. See the Python " @@ -1464,13 +1709,13 @@ msgid "" "platform-compatibility-tags/#macos>`_" msgstr "" -#: using/configure.rst:1024 +#: using/configure.rst:1140 msgid "" "Specify the name for the python framework on macOS only valid when :option:" "`--enable-framework` is set (default: ``Python``)." msgstr "" -#: using/configure.rst:1030 +#: using/configure.rst:1146 msgid "" "The Python standard library contains strings that are known to trigger " "automated inspection tool errors when submitted for distribution by the " @@ -1479,29 +1724,29 @@ msgid "" "can also be specified. This option is disabled by default." msgstr "" -#: using/configure.rst:1039 +#: using/configure.rst:1155 msgid "iOS Options" msgstr "" -#: using/configure.rst:1041 +#: using/configure.rst:1157 msgid "See :source:`iOS/README.rst`." msgstr "" -#: using/configure.rst:1045 +#: using/configure.rst:1161 msgid "" "Create a Python.framework. Unlike macOS, the *INSTALLDIR* argument " "specifying the installation path is mandatory." msgstr "" -#: using/configure.rst:1050 +#: using/configure.rst:1166 msgid "Specify the name for the framework (default: ``Python``)." msgstr "" -#: using/configure.rst:1054 +#: using/configure.rst:1170 msgid "Cross Compiling Options" msgstr "" -#: using/configure.rst:1056 +#: using/configure.rst:1172 msgid "" "Cross compiling, also known as cross building, can be used to build Python " "for another CPU architecture or platform. Cross compiling requires a Python " @@ -1509,28 +1754,28 @@ msgid "" "match the version of the cross compiled host Python." msgstr "" -#: using/configure.rst:1063 +#: using/configure.rst:1179 msgid "" "configure for building on BUILD, usually guessed by :program:`config.guess`." msgstr "" -#: using/configure.rst:1067 +#: using/configure.rst:1183 msgid "cross-compile to build programs to run on HOST (target platform)" msgstr "" -#: using/configure.rst:1071 +#: using/configure.rst:1187 msgid "path to build ``python`` binary for cross compiling" msgstr "" -#: using/configure.rst:1077 +#: using/configure.rst:1193 msgid "An environment variable that points to a file with configure overrides." msgstr "" -#: using/configure.rst:1079 +#: using/configure.rst:1195 msgid "Example *config.site* file:" msgstr "" -#: using/configure.rst:1081 +#: using/configure.rst:1197 msgid "" "# config.site-aarch64\n" "ac_cv_buggy_getaddrinfo=no\n" @@ -1538,15 +1783,15 @@ msgid "" "ac_cv_file__dev_ptc=no" msgstr "" -#: using/configure.rst:1090 +#: using/configure.rst:1206 msgid "Program to run CPython for the host platform for cross-compilation." msgstr "" -#: using/configure.rst:1095 +#: using/configure.rst:1211 msgid "Cross compiling example::" msgstr "" -#: using/configure.rst:1097 +#: using/configure.rst:1213 msgid "" "CONFIG_SITE=config.site-aarch64 ../configure \\\n" " --build=x86_64-pc-linux-gnu \\\n" @@ -1554,64 +1799,64 @@ msgid "" " --with-build-python=../x86_64/python" msgstr "" -#: using/configure.rst:1104 +#: using/configure.rst:1220 msgid "Python Build System" msgstr "" -#: using/configure.rst:1107 +#: using/configure.rst:1223 msgid "Main files of the build system" msgstr "" -#: using/configure.rst:1109 +#: using/configure.rst:1225 msgid ":file:`configure.ac` => :file:`configure`;" msgstr "" -#: using/configure.rst:1110 +#: using/configure.rst:1226 msgid "" ":file:`Makefile.pre.in` => :file:`Makefile` (created by :file:`configure`);" msgstr "" -#: using/configure.rst:1111 +#: using/configure.rst:1227 msgid ":file:`pyconfig.h` (created by :file:`configure`);" msgstr "" -#: using/configure.rst:1112 +#: using/configure.rst:1228 msgid "" ":file:`Modules/Setup`: C extensions built by the Makefile using :file:" "`Module/makesetup` shell script;" msgstr "" -#: using/configure.rst:1116 +#: using/configure.rst:1232 msgid "Main build steps" msgstr "" -#: using/configure.rst:1118 +#: using/configure.rst:1234 msgid "C files (``.c``) are built as object files (``.o``)." msgstr "" -#: using/configure.rst:1119 +#: using/configure.rst:1235 msgid "A static ``libpython`` library (``.a``) is created from objects files." msgstr "" -#: using/configure.rst:1120 +#: using/configure.rst:1236 msgid "" "``python.o`` and the static ``libpython`` library are linked into the final " "``python`` program." msgstr "" -#: using/configure.rst:1122 +#: using/configure.rst:1238 msgid "C extensions are built by the Makefile (see :file:`Modules/Setup`)." msgstr "" -#: using/configure.rst:1125 +#: using/configure.rst:1241 msgid "Main Makefile targets" msgstr "" -#: using/configure.rst:1128 +#: using/configure.rst:1244 msgid "make" msgstr "" -#: using/configure.rst:1130 +#: using/configure.rst:1246 msgid "" "For the most part, when rebuilding after editing some code or refreshing " "your checkout from upstream, all you need to do is execute ``make``, which " @@ -1622,22 +1867,22 @@ msgid "" "all`` will build. The three choices are:" msgstr "" -#: using/configure.rst:1139 +#: using/configure.rst:1255 msgid "``profile-opt`` (configured with ``--enable-optimizations``)" msgstr "" -#: using/configure.rst:1140 +#: using/configure.rst:1256 msgid "" "``build_wasm`` (chosen if the host platform matches ``wasm32-wasi*`` or " "``wasm32-emscripten``)" msgstr "" -#: using/configure.rst:1142 +#: using/configure.rst:1258 msgid "" "``build_all`` (configured without explicitly using either of the others)" msgstr "" -#: using/configure.rst:1144 +#: using/configure.rst:1260 msgid "" "Depending on the most recent source file changes, Make will rebuild any " "targets (object files and executables) deemed out-of-date, including running " @@ -1650,11 +1895,11 @@ msgid "" "problems, at the expense of longer build times." msgstr "" -#: using/configure.rst:1157 +#: using/configure.rst:1273 msgid "make platform" msgstr "" -#: using/configure.rst:1159 +#: using/configure.rst:1275 msgid "" "Build the ``python`` program, but don't build the standard library extension " "modules. This generates a file named ``platform`` which contains a single " @@ -1662,91 +1907,91 @@ msgid "" "arm64-3.12`` or ``linux-x86_64-3.13``." msgstr "" -#: using/configure.rst:1166 +#: using/configure.rst:1282 msgid "make profile-opt" msgstr "" -#: using/configure.rst:1168 +#: using/configure.rst:1284 msgid "" "Build Python using profile-guided optimization (PGO). You can use the " "configure :option:`--enable-optimizations` option to make this the default " "target of the ``make`` command (``make all`` or just ``make``)." msgstr "" -#: using/configure.rst:1176 +#: using/configure.rst:1292 msgid "make clean" msgstr "" -#: using/configure.rst:1178 +#: using/configure.rst:1294 msgid "Remove built files." msgstr "" -#: using/configure.rst:1182 +#: using/configure.rst:1298 msgid "make distclean" msgstr "" -#: using/configure.rst:1184 +#: using/configure.rst:1300 msgid "" "In addition to the work done by ``make clean``, remove files created by the " "configure script. ``configure`` will have to be run before building again. " "[#]_" msgstr "" -#: using/configure.rst:1190 +#: using/configure.rst:1306 msgid "make install" msgstr "" -#: using/configure.rst:1192 +#: using/configure.rst:1308 msgid "Build the ``all`` target and install Python." msgstr "" -#: using/configure.rst:1196 +#: using/configure.rst:1312 msgid "make test" msgstr "" -#: using/configure.rst:1198 +#: using/configure.rst:1314 msgid "" "Build the ``all`` target and run the Python test suite with the ``--fast-" "ci`` option without GUI tests. Variables:" msgstr "" -#: using/configure.rst:1201 +#: using/configure.rst:1317 msgid "``TESTOPTS``: additional regrtest command-line options." msgstr "" -#: using/configure.rst:1202 +#: using/configure.rst:1318 msgid "``TESTPYTHONOPTS``: additional Python command-line options." msgstr "" -#: using/configure.rst:1203 +#: using/configure.rst:1319 msgid "``TESTTIMEOUT``: timeout in seconds (default: 10 minutes)." msgstr "" -#: using/configure.rst:1207 +#: using/configure.rst:1323 msgid "make ci" msgstr "" -#: using/configure.rst:1209 +#: using/configure.rst:1325 msgid "" "This is similar to ``make test``, but uses the ``-ugui`` to also run GUI " "tests." msgstr "" -#: using/configure.rst:1215 +#: using/configure.rst:1331 msgid "make buildbottest" msgstr "" -#: using/configure.rst:1217 +#: using/configure.rst:1333 msgid "" "This is similar to ``make test``, but uses the ``--slow-ci`` option and " "default timeout of 20 minutes, instead of ``--fast-ci`` option." msgstr "" -#: using/configure.rst:1222 +#: using/configure.rst:1338 msgid "make regen-all" msgstr "" -#: using/configure.rst:1224 +#: using/configure.rst:1340 msgid "" "Regenerate (almost) all generated files. These include (but are not limited " "to) bytecode cases, and parser generator file. ``make regen-stdlib-module-" @@ -1754,18 +1999,18 @@ msgid "" "files <#generated-files>`_." msgstr "" -#: using/configure.rst:1231 +#: using/configure.rst:1347 msgid "C extensions" msgstr "" -#: using/configure.rst:1233 +#: using/configure.rst:1349 msgid "" "Some C extensions are built as built-in modules, like the ``sys`` module. " "They are built with the ``Py_BUILD_CORE_BUILTIN`` macro defined. Built-in " "modules have no ``__file__`` attribute:" msgstr "" -#: using/configure.rst:1237 +#: using/configure.rst:1353 msgid "" ">>> import sys\n" ">>> sys\n" @@ -1776,14 +2021,14 @@ msgid "" "AttributeError: module 'sys' has no attribute '__file__'" msgstr "" -#: using/configure.rst:1247 +#: using/configure.rst:1363 msgid "" "Other C extensions are built as dynamic libraries, like the ``_asyncio`` " "module. They are built with the ``Py_BUILD_CORE_MODULE`` macro defined. " "Example on Linux x86-64:" msgstr "" -#: using/configure.rst:1251 +#: using/configure.rst:1367 msgid "" ">>> import _asyncio\n" ">>> _asyncio\n" @@ -1793,7 +2038,7 @@ msgid "" "'/usr/lib64/python3.9/lib-dynload/_asyncio.cpython-39-x86_64-linux-gnu.so'" msgstr "" -#: using/configure.rst:1259 +#: using/configure.rst:1375 msgid "" ":file:`Modules/Setup` is used to generate Makefile targets to build C " "extensions. At the beginning of the files, C extensions are built as built-" @@ -1801,304 +2046,304 @@ msgid "" "dynamic libraries." msgstr "" -#: using/configure.rst:1263 +#: using/configure.rst:1379 msgid "" "The :c:macro:`!PyAPI_FUNC()`, :c:macro:`!PyAPI_DATA()` and :c:macro:" "`PyMODINIT_FUNC` macros of :file:`Include/exports.h` are defined differently " "depending if the ``Py_BUILD_CORE_MODULE`` macro is defined:" msgstr "" -#: using/configure.rst:1267 +#: using/configure.rst:1383 msgid "Use ``Py_EXPORTED_SYMBOL`` if the ``Py_BUILD_CORE_MODULE`` is defined" msgstr "" -#: using/configure.rst:1268 +#: using/configure.rst:1384 msgid "Use ``Py_IMPORTED_SYMBOL`` otherwise." msgstr "" -#: using/configure.rst:1270 +#: using/configure.rst:1386 msgid "" "If the ``Py_BUILD_CORE_BUILTIN`` macro is used by mistake on a C extension " "built as a shared library, its :samp:`PyInit_{xxx}()` function is not " "exported, causing an :exc:`ImportError` on import." msgstr "" -#: using/configure.rst:1276 +#: using/configure.rst:1392 msgid "Compiler and linker flags" msgstr "" -#: using/configure.rst:1278 +#: using/configure.rst:1394 msgid "" "Options set by the ``./configure`` script and environment variables and used " "by ``Makefile``." msgstr "" -#: using/configure.rst:1282 +#: using/configure.rst:1398 msgid "Preprocessor flags" msgstr "" -#: using/configure.rst:1286 +#: using/configure.rst:1402 msgid "" "Value of :envvar:`CPPFLAGS` variable passed to the ``./configure`` script." msgstr "" -#: using/configure.rst:1292 +#: using/configure.rst:1408 msgid "" "(Objective) C/C++ preprocessor flags, e.g. :samp:`-I{include_dir}` if you " "have headers in a nonstandard directory *include_dir*." msgstr "" -#: using/configure.rst:1485 +#: using/configure.rst:1601 msgid "" "Both :envvar:`CPPFLAGS` and :envvar:`LDFLAGS` need to contain the shell's " "value to be able to build extension modules using the directories specified " "in the environment variables." msgstr "" -#: using/configure.rst:1305 +#: using/configure.rst:1421 msgid "" "Extra preprocessor flags added for building the interpreter object files." msgstr "" -#: using/configure.rst:1307 +#: using/configure.rst:1423 msgid "" "Default: ``$(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) " "$(CPPFLAGS)``." msgstr "" -#: using/configure.rst:1312 +#: using/configure.rst:1428 msgid "Compiler flags" msgstr "" -#: using/configure.rst:1318 +#: using/configure.rst:1434 msgid "Example: ``gcc -pthread``." msgstr "" -#: using/configure.rst:1322 +#: using/configure.rst:1438 msgid "C++ compiler command." msgstr "" -#: using/configure.rst:1324 +#: using/configure.rst:1440 msgid "Example: ``g++ -pthread``." msgstr "" -#: using/configure.rst:1332 +#: using/configure.rst:1448 msgid "" ":envvar:`CFLAGS_NODIST` is used for building the interpreter and stdlib C " "extensions. Use it when a compiler flag should *not* be part of :envvar:" "`CFLAGS` once Python is installed (:gh:`65320`)." msgstr "" -#: using/configure.rst:1336 +#: using/configure.rst:1452 msgid "In particular, :envvar:`CFLAGS` should not contain:" msgstr "" -#: using/configure.rst:1338 +#: using/configure.rst:1454 msgid "" "the compiler flag ``-I`` (for setting the search path for include files). " "The ``-I`` flags are processed from left to right, and any flags in :envvar:" "`CFLAGS` would take precedence over user- and package-supplied ``-I`` flags." msgstr "" -#: using/configure.rst:1343 +#: using/configure.rst:1459 msgid "" "hardening flags such as ``-Werror`` because distributions cannot control " "whether packages installed by users conform to such heightened standards." msgstr "" -#: using/configure.rst:1351 +#: using/configure.rst:1467 msgid "" "Options passed to the :mod:`compileall` command line when building PYC files " "in ``make install``. Default: ``-j0``." msgstr "" -#: using/configure.rst:1358 +#: using/configure.rst:1474 msgid "Extra C compiler flags." msgstr "" -#: using/configure.rst:1362 +#: using/configure.rst:1478 msgid "" "Value of :envvar:`CFLAGS` variable passed to the ``./configure`` script." msgstr "" -#: using/configure.rst:1369 +#: using/configure.rst:1485 msgid "" "Value of :envvar:`CFLAGS_NODIST` variable passed to the ``./configure`` " "script." msgstr "" -#: using/configure.rst:1376 +#: using/configure.rst:1492 msgid "Base compiler flags." msgstr "" -#: using/configure.rst:1380 +#: using/configure.rst:1496 msgid "Optimization flags." msgstr "" -#: using/configure.rst:1384 +#: using/configure.rst:1500 msgid "Strict or non-strict aliasing flags used to compile ``Python/dtoa.c``." msgstr "" -#: using/configure.rst:1390 +#: using/configure.rst:1506 msgid "Compiler flags used to build a shared library." msgstr "" -#: using/configure.rst:1392 +#: using/configure.rst:1508 msgid "For example, ``-fPIC`` is used on Linux and on BSD." msgstr "" -#: using/configure.rst:1396 +#: using/configure.rst:1512 msgid "Extra C flags added for building the interpreter object files." msgstr "" -#: using/configure.rst:1398 +#: using/configure.rst:1514 msgid "" "Default: ``$(CCSHARED)`` when :option:`--enable-shared` is used, or an empty " "string otherwise." msgstr "" -#: using/configure.rst:1403 +#: using/configure.rst:1519 msgid "" "Default: ``$(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) " "$(EXTRA_CFLAGS)``." msgstr "" -#: using/configure.rst:1407 +#: using/configure.rst:1523 msgid "" "Default: ``$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include/" "internal``." msgstr "" -#: using/configure.rst:1413 +#: using/configure.rst:1529 msgid "C flags used for building the interpreter object files." msgstr "" -#: using/configure.rst:1415 +#: using/configure.rst:1531 msgid "" "Default: ``$(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) " "$(CFLAGSFORSHARED)``." msgstr "" -#: using/configure.rst:1421 +#: using/configure.rst:1537 msgid "Default: ``$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE``." msgstr "" -#: using/configure.rst:1427 +#: using/configure.rst:1543 msgid "" "Compiler flags to build a standard library extension module as a built-in " "module, like the :mod:`posix` module." msgstr "" -#: using/configure.rst:1430 +#: using/configure.rst:1546 msgid "Default: ``$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN``." msgstr "" -#: using/configure.rst:1436 +#: using/configure.rst:1552 msgid "Purify command. Purify is a memory debugger program." msgstr "" -#: using/configure.rst:1438 +#: using/configure.rst:1554 msgid "Default: empty string (not used)." msgstr "" -#: using/configure.rst:1442 +#: using/configure.rst:1558 msgid "Linker flags" msgstr "" -#: using/configure.rst:1446 +#: using/configure.rst:1562 msgid "" "Linker command used to build programs like ``python`` and ``_testembed``." msgstr "" -#: using/configure.rst:1448 +#: using/configure.rst:1564 msgid "Default: ``$(PURIFY) $(CC)``." msgstr "" -#: using/configure.rst:1452 +#: using/configure.rst:1568 msgid "" "Value of :envvar:`LDFLAGS` variable passed to the ``./configure`` script." msgstr "" -#: using/configure.rst:1454 +#: using/configure.rst:1570 msgid "" "Avoid assigning :envvar:`CFLAGS`, :envvar:`LDFLAGS`, etc. so users can use " "them on the command line to append to these values without stomping the pre-" "set values." msgstr "" -#: using/configure.rst:1462 +#: using/configure.rst:1578 msgid "" ":envvar:`LDFLAGS_NODIST` is used in the same manner as :envvar:" "`CFLAGS_NODIST`. Use it when a linker flag should *not* be part of :envvar:" "`LDFLAGS` once Python is installed (:gh:`65320`)." msgstr "" -#: using/configure.rst:1466 +#: using/configure.rst:1582 msgid "In particular, :envvar:`LDFLAGS` should not contain:" msgstr "" -#: using/configure.rst:1468 +#: using/configure.rst:1584 msgid "" "the compiler flag ``-L`` (for setting the search path for libraries). The ``-" "L`` flags are processed from left to right, and any flags in :envvar:" "`LDFLAGS` would take precedence over user- and package-supplied ``-L`` flags." msgstr "" -#: using/configure.rst:1475 +#: using/configure.rst:1591 msgid "" "Value of :envvar:`LDFLAGS_NODIST` variable passed to the ``./configure`` " "script." msgstr "" -#: using/configure.rst:1482 +#: using/configure.rst:1598 msgid "" "Linker flags, e.g. :samp:`-L{lib_dir}` if you have libraries in a " "nonstandard directory *lib_dir*." msgstr "" -#: using/configure.rst:1491 +#: using/configure.rst:1607 msgid "" "Linker flags to pass libraries to the linker when linking the Python " "executable." msgstr "" -#: using/configure.rst:1494 +#: using/configure.rst:1610 msgid "Example: ``-lrt``." msgstr "" -#: using/configure.rst:1498 +#: using/configure.rst:1614 msgid "Command to build a shared library." msgstr "" -#: using/configure.rst:1500 +#: using/configure.rst:1616 msgid "Default: ``@LDSHARED@ $(PY_LDFLAGS)``." msgstr "" -#: using/configure.rst:1504 +#: using/configure.rst:1620 msgid "Command to build ``libpython`` shared library." msgstr "" -#: using/configure.rst:1506 +#: using/configure.rst:1622 msgid "Default: ``@BLDSHARED@ $(PY_CORE_LDFLAGS)``." msgstr "" -#: using/configure.rst:1510 +#: using/configure.rst:1626 msgid "Default: ``$(CONFIGURE_LDFLAGS) $(LDFLAGS)``." msgstr "" -#: using/configure.rst:1514 +#: using/configure.rst:1630 msgid "Default: ``$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)``." msgstr "" -#: using/configure.rst:1520 +#: using/configure.rst:1636 msgid "Linker flags used for building the interpreter object files." msgstr "" -#: using/configure.rst:1526 +#: using/configure.rst:1642 msgid "Footnotes" msgstr "" -#: using/configure.rst:1527 +#: using/configure.rst:1643 msgid "" "``git clean -fdx`` is an even more extreme way to \"clean\" your checkout. " "It removes all files not known to Git. When bug hunting using ``git " diff --git a/using/editors.po b/using/editors.po index 68b563ee..6ad6e618 100644 --- a/using/editors.po +++ b/using/editors.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-04-05 19:20+0300\n" "Last-Translator: ALEXANDROS TZIORAS alextzioras23@gmail.com\n" "Language-Team: Language-Team: PyGreece \n" diff --git a/using/index.po b/using/index.po index 2b64048b..04f1e69a 100644 --- a/using/index.po +++ b/using/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-04-06 10:11+0300\n" "Last-Translator: ALEXANDROS TZIORAS alextzioras23@gmail.com\n" "Language-Team: Language-Team: PyGreece Language: \n" diff --git a/using/ios.po b/using/ios.po index 2e677cdd..70c5a3c1 100644 --- a/using/ios.po +++ b/using/ios.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -271,9 +271,9 @@ msgstr "" #: using/ios.rst:172 msgid "" "Build or obtain a Python ``XCFramework``. See the instructions in :source:" -"`iOS/README.rst` (in the CPython source distribution) for details on how to " -"build a Python ``XCFramework``. At a minimum, you will need a build that " -"supports ``arm64-apple-ios``, plus one of either ``arm64-apple-ios-" +"`Apple/iOS/README.md` (in the CPython source distribution) for details on " +"how to build a Python ``XCFramework``. At a minimum, you will need a build " +"that supports ``arm64-apple-ios``, plus one of either ``arm64-apple-ios-" "simulator`` or ``x86_64-apple-ios-simulator``." msgstr "" @@ -287,12 +287,6 @@ msgstr "" #: using/ios.rst:183 msgid "" -"Drag the ``iOS/Resources/dylib-Info-template.plist`` file into your project, " -"and ensure it is associated with the app target." -msgstr "" - -#: using/ios.rst:186 -msgid "" "Add your application code as a folder in your Xcode project. In the " "following instructions, we'll assume that your user code is in a folder " "named ``app`` in the root of your project; you can use any other location by " @@ -300,327 +294,278 @@ msgid "" "app target." msgstr "" -#: using/ios.rst:192 +#: using/ios.rst:189 msgid "" "Select the app target by selecting the root node of your Xcode project, then " "the target name in the sidebar that appears." msgstr "" -#: using/ios.rst:195 +#: using/ios.rst:192 msgid "" "In the \"General\" settings, under \"Frameworks, Libraries and Embedded " "Content\", add ``Python.xcframework``, with \"Embed & Sign\" selected." msgstr "" -#: using/ios.rst:198 +#: using/ios.rst:195 msgid "In the \"Build Settings\" tab, modify the following:" msgstr "" -#: using/ios.rst:200 +#: using/ios.rst:197 msgid "Build Options" msgstr "" -#: using/ios.rst:202 +#: using/ios.rst:199 msgid "User Script Sandboxing: No" msgstr "" -#: using/ios.rst:203 +#: using/ios.rst:200 msgid "Enable Testability: Yes" msgstr "" -#: using/ios.rst:205 +#: using/ios.rst:202 msgid "Search Paths" msgstr "" -#: using/ios.rst:207 +#: using/ios.rst:204 msgid "Framework Search Paths: ``$(PROJECT_DIR)``" msgstr "" -#: using/ios.rst:208 +#: using/ios.rst:205 msgid "" "Header Search Paths: ``\"$(BUILT_PRODUCTS_DIR)/Python.framework/Headers\"``" msgstr "" -#: using/ios.rst:210 +#: using/ios.rst:207 msgid "Apple Clang - Warnings - All languages" msgstr "" -#: using/ios.rst:212 +#: using/ios.rst:209 msgid "Quoted Include In Framework Header: No" msgstr "" -#: using/ios.rst:214 +#: using/ios.rst:211 msgid "" -"Add a build step that copies the Python standard library into your app. In " -"the \"Build Phases\" tab, add a new \"Run Script\" build step *before* the " -"\"Embed Frameworks\" step, but *after* the \"Copy Bundle Resources\" step. " -"Name the step \"Install Target Specific Python Standard Library\", disable " -"the \"Based on dependency analysis\" checkbox, and set the script content to:" +"Add a build step that processes the Python standard library, and your own " +"Python binary dependencies. In the \"Build Phases\" tab, add a new \"Run " +"Script\" build step *before* the \"Embed Frameworks\" step, but *after* the " +"\"Copy Bundle Resources\" step. Name the step \"Process Python libraries\", " +"disable the \"Based on dependency analysis\" checkbox, and set the script " +"content to:" msgstr "" -#: using/ios.rst:220 +#: using/ios.rst:218 msgid "" "set -e\n" -"\n" -"mkdir -p \"$CODESIGNING_FOLDER_PATH/python/lib\"\n" -"if [ \"$EFFECTIVE_PLATFORM_NAME\" = \"-iphonesimulator\" ]; then\n" -" echo \"Installing Python modules for iOS Simulator\"\n" -" rsync -au --delete \"$PROJECT_DIR/Python.xcframework/ios-arm64_x86_64-" -"simulator/lib/\" \"$CODESIGNING_FOLDER_PATH/python/lib/\"\n" -"else\n" -" echo \"Installing Python modules for iOS Device\"\n" -" rsync -au --delete \"$PROJECT_DIR/Python.xcframework/ios-arm64/lib/\" " -"\"$CODESIGNING_FOLDER_PATH/python/lib/\"\n" -"fi" +"source $PROJECT_DIR/Python.xcframework/build/build_utils.sh\n" +"install_python Python.xcframework app" msgstr "" -#: using/ios.rst:233 +#: using/ios.rst:224 msgid "" -"Note that the name of the simulator \"slice\" in the XCframework may be " -"different, depending the CPU architectures your ``XCFramework`` supports." +"If you have placed your XCframework somewhere other than the root of your " +"project, modify the path to the first argument." msgstr "" -#: using/ios.rst:236 -msgid "" -"Add a second build step that processes the binary extension modules in the " -"standard library into \"Framework\" format. Add a \"Run Script\" build step " -"*directly after* the one you added in step 8, named \"Prepare Python Binary " -"Modules\". It should also have \"Based on dependency analysis\" unchecked, " -"with the following script content:" -msgstr "" - -#: using/ios.rst:242 -msgid "" -"set -e\n" -"\n" -"install_dylib () {\n" -" INSTALL_BASE=$1\n" -" FULL_EXT=$2\n" -"\n" -" # The name of the extension file\n" -" EXT=$(basename \"$FULL_EXT\")\n" -" # The location of the extension file, relative to the bundle\n" -" RELATIVE_EXT=${FULL_EXT#$CODESIGNING_FOLDER_PATH/}\n" -" # The path to the extension file, relative to the install base\n" -" PYTHON_EXT=${RELATIVE_EXT/$INSTALL_BASE/}\n" -" # The full dotted name of the extension module, constructed from the " -"file path.\n" -" FULL_MODULE_NAME=$(echo $PYTHON_EXT | cut -d \".\" -f 1 | tr \"/\" \"." -"\");\n" -" # A bundle identifier; not actually used, but required by Xcode " -"framework packaging\n" -" FRAMEWORK_BUNDLE_ID=$(echo $PRODUCT_BUNDLE_IDENTIFIER.$FULL_MODULE_NAME " -"| tr \"_\" \"-\")\n" -" # The name of the framework folder.\n" -" FRAMEWORK_FOLDER=\"Frameworks/$FULL_MODULE_NAME.framework\"\n" -"\n" -" # If the framework folder doesn't exist, create it.\n" -" if [ ! -d \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER\" ]; then\n" -" echo \"Creating framework for $RELATIVE_EXT\"\n" -" mkdir -p \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER\"\n" -" cp \"$CODESIGNING_FOLDER_PATH/dylib-Info-template.plist\" " -"\"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\"\n" -" plutil -replace CFBundleExecutable -string \"$FULL_MODULE_NAME\" " -"\"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\"\n" -" plutil -replace CFBundleIdentifier -string \"$FRAMEWORK_BUNDLE_ID\" " -"\"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\"\n" -" fi\n" -"\n" -" echo \"Installing binary for $FRAMEWORK_FOLDER/$FULL_MODULE_NAME\"\n" -" mv \"$FULL_EXT\" \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/" -"$FULL_MODULE_NAME\"\n" -" # Create a placeholder .fwork file where the .so was\n" -" echo \"$FRAMEWORK_FOLDER/$FULL_MODULE_NAME\" > ${FULL_EXT%.so}.fwork\n" -" # Create a back reference to the .so file location in the framework\n" -" echo \"${RELATIVE_EXT%.so}.fwork\" > \"$CODESIGNING_FOLDER_PATH/" -"$FRAMEWORK_FOLDER/$FULL_MODULE_NAME.origin\"\n" -" }\n" -"\n" -" PYTHON_VER=$(ls -1 \"$CODESIGNING_FOLDER_PATH/python/lib\")\n" -" echo \"Install Python $PYTHON_VER standard library extension modules...\"\n" -" find \"$CODESIGNING_FOLDER_PATH/python/lib/$PYTHON_VER/lib-dynload\" -name " -"\"*.so\" | while read FULL_EXT; do\n" -" install_dylib python/lib/$PYTHON_VER/lib-dynload/ \"$FULL_EXT\"\n" -" done\n" -"\n" -" # Clean up dylib template\n" -" rm -f \"$CODESIGNING_FOLDER_PATH/dylib-Info-template.plist\"\n" -"\n" -" echo \"Signing frameworks as $EXPANDED_CODE_SIGN_IDENTITY_NAME " -"($EXPANDED_CODE_SIGN_IDENTITY)...\"\n" -" find \"$CODESIGNING_FOLDER_PATH/Frameworks\" -name \"*.framework\" -exec /" -"usr/bin/codesign --force --sign \"$EXPANDED_CODE_SIGN_IDENTITY\" " -"${OTHER_CODE_SIGN_FLAGS:-} -o runtime --timestamp=none --preserve-" -"metadata=identifier,entitlements,flags --generate-entitlement-der \"{}\" \\;" -msgstr "" - -#: using/ios.rst:292 +#: using/ios.rst:227 msgid "" "Add Objective C code to initialize and use a Python interpreter in embedded " "mode. You should ensure that:" msgstr "" -#: using/ios.rst:295 +#: using/ios.rst:230 msgid "UTF-8 mode (:c:member:`PyPreConfig.utf8_mode`) is *enabled*;" msgstr "" -#: using/ios.rst:296 +#: using/ios.rst:231 msgid "Buffered stdio (:c:member:`PyConfig.buffered_stdio`) is *disabled*;" msgstr "" -#: using/ios.rst:297 +#: using/ios.rst:232 msgid "Writing bytecode (:c:member:`PyConfig.write_bytecode`) is *disabled*;" msgstr "" -#: using/ios.rst:298 +#: using/ios.rst:233 msgid "" "Signal handlers (:c:member:`PyConfig.install_signal_handlers`) are *enabled*;" msgstr "" -#: using/ios.rst:299 +#: using/ios.rst:234 msgid "" "System logging (:c:member:`PyConfig.use_system_logger`) is *enabled* " "(optional, but strongly recommended; this is enabled by default);" msgstr "" -#: using/ios.rst:301 +#: using/ios.rst:236 msgid "" -"``PYTHONHOME`` for the interpreter is configured to point at the ``python`` " -"subfolder of your app's bundle; and" +":envvar:`PYTHONHOME` for the interpreter is configured to point at the " +"``python`` subfolder of your app's bundle; and" msgstr "" -#: using/ios.rst:303 -msgid "The ``PYTHONPATH`` for the interpreter includes:" +#: using/ios.rst:238 +msgid "The :envvar:`PYTHONPATH` for the interpreter includes:" msgstr "" -#: using/ios.rst:305 +#: using/ios.rst:240 msgid "the ``python/lib/python3.X`` subfolder of your app's bundle," msgstr "" -#: using/ios.rst:306 +#: using/ios.rst:241 msgid "" "the ``python/lib/python3.X/lib-dynload`` subfolder of your app's bundle, and" msgstr "" -#: using/ios.rst:307 +#: using/ios.rst:242 msgid "the ``app`` subfolder of your app's bundle" msgstr "" -#: using/ios.rst:309 +#: using/ios.rst:244 msgid "" "Your app's bundle location can be determined using ``[[NSBundle mainBundle] " "resourcePath]``." msgstr "" -#: using/ios.rst:312 +#: using/ios.rst:247 msgid "" -"Steps 8, 9 and 10 of these instructions assume that you have a single folder " -"of pure Python application code, named ``app``. If you have third-party " -"binary modules in your app, some additional steps will be required:" +"Steps 7 and 8 of these instructions assume that you have a single folder of " +"pure Python application code, named ``app``. If you have third-party binary " +"modules in your app, some additional steps will be required:" msgstr "" -#: using/ios.rst:316 +#: using/ios.rst:251 msgid "" "You need to ensure that any folders containing third-party binaries are " -"either associated with the app target, or copied in as part of step 8. Step " -"8 should also purge any binaries that are not appropriate for the platform a " -"specific build is targeting (i.e., delete any device binaries if you're " -"building an app targeting the simulator)." +"either associated with the app target, or are explicitly copied as part of " +"step 7. Step 7 should also purge any binaries that are not appropriate for " +"the platform a specific build is targeting (i.e., delete any device binaries " +"if you're building an app targeting the simulator)." msgstr "" -#: using/ios.rst:322 +#: using/ios.rst:257 msgid "" -"Any folders that contain third-party binaries must be processed into " -"framework form by step 9. The invocation of ``install_dylib`` that processes " -"the ``lib-dynload`` folder can be copied and adapted for this purpose." +"If you're using a separate folder for third-party packages, ensure that " +"folder is added to the end of the call to ``install_python`` in step 7, and " +"as part of the :envvar:`PYTHONPATH` configuration in step 8." msgstr "" -#: using/ios.rst:326 +#: using/ios.rst:261 msgid "" -"If you're using a separate folder for third-party packages, ensure that " -"folder is included as part of the ``PYTHONPATH`` configuration in step 10." +"If any of the folders that contain third-party packages will contain ``." +"pth`` files, you should add that folder as a *site directory* (using :meth:" +"`site.addsitedir`), rather than adding to :envvar:`PYTHONPATH` or :attr:`sys." +"path` directly." msgstr "" -#: using/ios.rst:330 +#: using/ios.rst:267 msgid "Testing a Python package" msgstr "" -#: using/ios.rst:332 +#: using/ios.rst:269 msgid "" -"The CPython source tree contains :source:`a testbed project ` " -"that is used to run the CPython test suite on the iOS simulator. This " -"testbed can also be used as a testbed project for running your Python " +"The CPython source tree contains :source:`a testbed project ` that is used to run the CPython test suite on the iOS simulator. " +"This testbed can also be used as a testbed project for running your Python " "library's test suite on iOS." msgstr "" -#: using/ios.rst:336 +#: using/ios.rst:273 msgid "" -"After building or obtaining an iOS XCFramework (See :source:`iOS/README.rst` " -"for details), create a clone of the Python iOS testbed project by running:" +"After building or obtaining an iOS XCFramework (see :source:`Apple/iOS/" +"README.md` for details), create a clone of the Python iOS testbed project. " +"If you used the ``Apple`` build script to build the XCframework, you can run:" msgstr "" -#: using/ios.rst:339 +#: using/ios.rst:277 msgid "" -"$ python iOS/testbed clone --framework --app " -" --app app-testbed" +"$ python cross-build/iOS/testbed clone --app --app app-testbed" msgstr "" -#: using/ios.rst:343 +#: using/ios.rst:281 +msgid "Or, if you've sourced your own XCframework, by running:" +msgstr "" + +#: using/ios.rst:283 +msgid "" +"$ python Apple/testbed clone --platform iOS --framework --app --app app-testbed" +msgstr "" + +#: using/ios.rst:287 msgid "" -"You will need to modify the ``iOS/testbed`` reference to point to that " -"directory in the CPython source tree; any folders specified with the ``--" -"app`` flag will be copied into the cloned testbed project. The resulting " -"testbed will be created in the ``app-testbed`` folder. In this example, the " -"``module1`` and ``module2`` would be importable modules at runtime. If your " -"project has additional dependencies, they can be installed into the ``app-" -"testbed/iOSTestbed/app_packages`` folder (using ``pip install --target app-" -"testbed/iOSTestbed/app_packages`` or similar)." +"Any folders specified with the ``--app`` flag will be copied into the cloned " +"testbed project. The resulting testbed will be created in the ``app-" +"testbed`` folder. In this example, the ``module1`` and ``module2`` would be " +"importable modules at runtime. If your project has additional dependencies, " +"they can be installed into the ``app-testbed/Testbed/app_packages`` folder " +"(using ``pip install --target app-testbed/Testbed/app_packages`` or similar)." msgstr "" -#: using/ios.rst:352 +#: using/ios.rst:294 msgid "" "You can then use the ``app-testbed`` folder to run the test suite for your " "app, For example, if ``module1.tests`` was the entry point to your test " "suite, you could run:" msgstr "" -#: using/ios.rst:356 +#: using/ios.rst:298 msgid "$ python app-testbed run -- module1.tests" msgstr "" -#: using/ios.rst:360 +#: using/ios.rst:302 msgid "" "This is the equivalent of running ``python -m module1.tests`` on a desktop " "Python build. Any arguments after the ``--`` will be passed to the testbed " "as if they were arguments to ``python -m`` on a desktop machine." msgstr "" -#: using/ios.rst:364 +#: using/ios.rst:306 msgid "You can also open the testbed project in Xcode by running:" msgstr "" -#: using/ios.rst:366 +#: using/ios.rst:308 msgid "$ open app-testbed/iOSTestbed.xcodeproj" msgstr "" -#: using/ios.rst:370 +#: using/ios.rst:312 msgid "This will allow you to use the full Xcode suite of tools for debugging." msgstr "" -#: using/ios.rst:373 +#: using/ios.rst:314 +msgid "" +"The arguments used to run the test suite are defined as part of the test " +"plan. To modify the test plan, select the test plan node of the project tree " +"(it should be the first child of the root node), and select the " +"\"Configurations\" tab. Modify the \"Arguments Passed On Launch\" value to " +"change the testing arguments." +msgstr "" + +#: using/ios.rst:320 +msgid "" +"The test plan also disables parallel testing, and specifies the use of the " +"``Testbed.lldbinit`` file for providing configuration of the debugger. The " +"default debugger configuration disables automatic breakpoints on the " +"``SIGINT``, ``SIGUSR1``, ``SIGUSR2``, and ``SIGXFSZ`` signals." +msgstr "" + +#: using/ios.rst:326 msgid "App Store Compliance" msgstr "" -#: using/ios.rst:375 +#: using/ios.rst:328 msgid "" "The only mechanism for distributing apps to third-party iOS devices is to " "submit the app to the iOS App Store; apps submitted for distribution must " "pass Apple's app review process. This process includes a set of automated " "validation rules that inspect the submitted application bundle for " -"problematic code." +"problematic code. There are some steps that must be taken to ensure that " +"your app will be able to pass these validation steps." +msgstr "" + +#: using/ios.rst:336 +msgid "Incompatible code in the standard library" msgstr "" -#: using/ios.rst:380 +#: using/ios.rst:338 msgid "" "The Python standard library contains some code that is known to violate " "these automated rules. While these violations appear to be false positives, " @@ -628,10 +573,33 @@ msgid "" "Python standard library for an app to pass App Store review." msgstr "" -#: using/ios.rst:385 +#: using/ios.rst:343 msgid "" "The Python source tree contains :source:`a patch file ` that will remove all code that is known to cause " "issues with the App Store review process. This patch is applied " "automatically when building for iOS." msgstr "" + +#: using/ios.rst:349 +msgid "Privacy manifests" +msgstr "" + +#: using/ios.rst:351 +msgid "" +"In April 2025, Apple introduced a requirement for `certain third-party " +"libraries to provide a Privacy Manifest `__. As a result, if you have a binary module " +"that uses one of the affected libraries, you must provide an ``.xcprivacy`` " +"file for that library. OpenSSL is one library affected by this requirement, " +"but there are others." +msgstr "" + +#: using/ios.rst:358 +msgid "" +"If you produce a binary module named ``mymodule.so``, and use you the Xcode " +"build script described in step 7 above, you can place a ``mymodule." +"xcprivacy`` file next to ``mymodule.so``, and the privacy manifest will be " +"installed into the required location when the binary module is converted " +"into a framework." +msgstr "" diff --git a/using/mac.po b/using/mac.po index 81ab0ee4..39ef38a6 100644 --- a/using/mac.po +++ b/using/mac.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-06-19 17:58+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -68,7 +68,7 @@ msgid "" "Current installers provide a `universal2 binary `_ build of Python which runs natively on all Macs " "(Apple Silicon and Intel) that are supported by a wide range of macOS " -"versions, currently typically from at least **macOS 10.13 High Sierra** on." +"versions, currently typically from at least **macOS 10.15 Catalina** on." msgstr "" "Για `τρέχουσες εκδόσεις Python `_ (εκτός " "από αυτές που είναι σε κατάσταση ``security``), η ομάδα κυκλοφορίας παράγει " @@ -79,7 +79,7 @@ msgstr "" "`universal2 binary `_ έκδοση " "της Python που εκτελείται εγγενώς σε όλους τους υπολογιστές Mac (Apple " "Silicon και Intel) που υποστηρίζονται από μια ευρεία γκάμα εκδόσεων macOS, " -"αυτή τη στιγμή συνήθως από τουλάχιστον **macOS 10.13 High Sierra** και μετά." +"αυτή τη στιγμή συνήθως από τουλάχιστον **macOS 10.15 Catalina** και μετά." #: using/mac.rst:44 msgid "" diff --git a/using/unix.po b/using/unix.po index f3e8fce0..065593d1 100644 --- a/using/unix.po +++ b/using/unix.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" -"PO-Revision-Date: 2025-05-03 17:10+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" +"PO-Revision-Date: 2025-11-29 09:18+0200\n" "Last-Translator: Kleopatra Karapanagiotou \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -181,26 +181,36 @@ msgstr "" msgid "Building Python" msgstr "Μεταγλώττιση της Python" -#: using/unix.rst:87 +#: using/unix.rst:89 +msgid "" +"If you want to contribute to CPython, refer to the `devguide `_, which includes build " +"instructions and other tips on setting up environment." +msgstr "" +"Αν θέλετε να συνεισφέρετε στο CPython, ανατρέξτε στον `devguide `_, που περιλαμβάνει " +"οδηγίες μεταγλώττισης και άλλες συμβουλές για τη ρύθμιση του περιβάλλοντος." + +#: using/unix.rst:93 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.)" +"either the latest release's source or grab a fresh `clone `_. You will also need to install the :" +"ref:`build requirements `." msgstr "" "Αν θέλετε να κάνετε compile το CPython μόνοι σας, το πρώτο πράγμα που πρέπει " "να κάνετε είναι να πάρετε τον πηγαίο κώδικα `_. Μπορείτε να κατεβάσετε είτε τον πηγαίο κώδικα της " "τελευταίας έκδοσης είτε απλά να πάρετε έναν καινούργιο `clone `_. (Αν θέλετε να " -"συνεισφέρετε διορθώσεις, θα χρειαστείτε έναν κλώνο)." +"devguide.python.org/setup/#get-the-source-code>`_. Θα χρειαστεί επίσης να " +"εγκαταστήσετε τις :ref:`build requirements `." -#: using/unix.rst:93 +#: using/unix.rst:99 msgid "The build process consists of the usual commands::" msgstr "Η διαδικασία της μεταγλώττισης απαρτίζεται από τις συνήθεις εντολές::" -#: using/unix.rst:95 +#: using/unix.rst:101 msgid "" "./configure\n" "make\n" @@ -210,7 +220,7 @@ msgstr "" "make\n" "make install" -#: using/unix.rst:99 +#: using/unix.rst:105 msgid "" ":ref:`Configuration options ` and caveats for specific " "Unix platforms are extensively documented in the :source:`README.rst` file " @@ -220,7 +230,7 @@ msgstr "" "συγκεκριμένες πλατφόρμες Unix τεκμηριώνονται εκτενώς στο αρχείο :source:" "`README.rst` στην βάση του πηγαίου δέντρου της Python." -#: using/unix.rst:105 +#: using/unix.rst:111 msgid "" "``make install`` can overwrite or masquerade the :file:`python3` binary. " "``make altinstall`` is therefore recommended instead of ``make install`` " @@ -231,11 +241,11 @@ msgstr "" "με το ``make install`` που μπορεί να εγκαταστήσει μόνο το :" "file`{exec_prefix}/bin/python{version}`." -#: using/unix.rst:111 +#: using/unix.rst:117 msgid "Python-related paths and files" msgstr "Διαδρομές και αρχεία που σχετίζονται με την Python" -#: using/unix.rst:113 +#: using/unix.rst:119 msgid "" "These are subject to difference depending on local installation " "conventions; :option:`prefix <--prefix>` and :option:`exec_prefix <--exec-" @@ -247,30 +257,30 @@ msgstr "" "εξαρτώνται από την εγκατάσταση και θα πρέπει να ερμηνεύονται όπως για το " "λογισμικό GNU∙ μπορεί να είναι τα ίδια." -#: using/unix.rst:118 +#: using/unix.rst:124 msgid "" "For example, on most Linux systems, the default for both is :file:`/usr`." msgstr "" "Για παράδειγμα, στα περισσότερα Linux συστήματα, η προεπιλογή είναι και για " "τα δύο :file:`/usr`." -#: using/unix.rst:121 +#: using/unix.rst:127 msgid "File/directory" msgstr "File/directory" -#: using/unix.rst:121 +#: using/unix.rst:127 msgid "Meaning" msgstr "Που σημαίνει" -#: using/unix.rst:123 +#: using/unix.rst:129 msgid ":file:`{exec_prefix}/bin/python3`" msgstr ":file:`{exec_prefix}/bin/python3`" -#: using/unix.rst:123 +#: using/unix.rst:129 msgid "Recommended location of the interpreter." msgstr "Προτεινόμενη θέση του διερμηνέα." -#: using/unix.rst:125 +#: using/unix.rst:131 msgid "" ":file:`{prefix}/lib/python{version}`, :file:`{exec_prefix}/lib/" "python{version}`" @@ -278,13 +288,13 @@ msgstr "" ":file:`{prefix}/lib/python{version}`, :file:`{exec_prefix}/lib/" "python{version}`" -#: using/unix.rst:125 +#: using/unix.rst:131 msgid "" "Recommended locations of the directories containing the standard modules." msgstr "" "Προτεινόμενες θέσεις για τους καταλόγους που περιέχουν τα βασικά modules." -#: using/unix.rst:128 +#: using/unix.rst:134 msgid "" ":file:`{prefix}/include/python{version}`, :file:`{exec_prefix}/include/" "python{version}`" @@ -292,7 +302,7 @@ msgstr "" ":file:`{prefix}/include/python{version}`, :file:`{exec_prefix}/include/" "python{version}`" -#: using/unix.rst:128 +#: using/unix.rst:134 msgid "" "Recommended locations of the directories containing the include files needed " "for developing Python extensions and embedding the interpreter." @@ -301,11 +311,11 @@ msgstr "" "(include files) που απαιτούνται για την ανάπτυξη επεκτάσεων της Python και " "την ενσωμάτωση του διερμηνέα." -#: using/unix.rst:136 +#: using/unix.rst:142 msgid "Miscellaneous" msgstr "Διάφορα" -#: using/unix.rst:138 +#: using/unix.rst:144 msgid "" "To easily use Python scripts on Unix, you need to make them executable, e.g. " "with" @@ -313,11 +323,11 @@ msgstr "" "Για να εκτελείτε εύκολα τα Python scripts σε συστήματα Unix, πρέπει να τα " "κάνετε εκτελέσιμα, για παράδειγμα με" -#: using/unix.rst:141 +#: using/unix.rst:147 msgid "$ chmod +x script" msgstr "$ chmod +x script" -#: using/unix.rst:145 +#: using/unix.rst:151 msgid "" "and put an appropriate Shebang line at the top of the script. A good choice " "is usually ::" @@ -325,11 +335,11 @@ msgstr "" "και να προσθέσετε μια κατάλληλη γραμμή Shebang στην αρχή του script. Μια " "καλή επιλογή είναι συνήθως ::" -#: using/unix.rst:148 +#: using/unix.rst:154 msgid "#!/usr/bin/env python3" msgstr "#!/usr/bin/env python3" -#: using/unix.rst:150 +#: using/unix.rst:156 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 " @@ -340,7 +350,7 @@ msgstr "" "`env`, οπότε μπορεί να χρειαστεί να κωδικοποιήσετε το ``/usr/bin/python3`` " "ως διαδρομή του διερμηνέα." -#: using/unix.rst:154 +#: using/unix.rst:160 msgid "" "To use shell commands in your Python scripts, look at the :mod:`subprocess` " "module." @@ -348,11 +358,11 @@ msgstr "" "Για να χρησιμοποιήσετε εντολές shell στα Python script σας, δείτε την " "ενότητα :mod:`subprocess`." -#: using/unix.rst:159 +#: using/unix.rst:165 msgid "Custom OpenSSL" msgstr "Custom OpenSSL" -#: using/unix.rst:161 +#: using/unix.rst:167 msgid "" "To use your vendor's OpenSSL configuration and system trust store, locate " "the directory with ``openssl.cnf`` file or symlink in ``/etc``. On most " @@ -367,7 +377,7 @@ msgstr "" "πρέπει επίσης να περιέχει ένα αρχείο ``cert.pem`` και/ή έναν κατάλογο " "``certs``." -#: using/unix.rst:167 +#: using/unix.rst:173 msgid "" "$ find /etc/ -name openssl.cnf -printf \"%h\\n\"\n" "/etc/ssl" @@ -375,7 +385,7 @@ msgstr "" "$ find /etc/ -name openssl.cnf -printf \"%h\\n\"\n" "/etc/ssl" -#: using/unix.rst:172 +#: using/unix.rst:178 msgid "" "Download, build, and install OpenSSL. Make sure you use ``install_sw`` and " "not ``install``. The ``install_sw`` target does not override ``openssl.cnf``." @@ -384,7 +394,7 @@ msgstr "" "το ``install_sw`` και όχι το ``install``. Ο στόχος ``install_sw`` δεν " "παρακάμπτει το αρχείο ``openssl.cnf``." -#: using/unix.rst:176 +#: using/unix.rst:182 msgid "" "$ curl -O https://www.openssl.org/source/openssl-VERSION.tar.gz\n" "$ tar xzf openssl-VERSION\n" @@ -410,7 +420,7 @@ msgstr "" "$ make install_sw\n" "$ popd" -#: using/unix.rst:190 +#: using/unix.rst:196 msgid "" "Build Python with custom OpenSSL (see the configure ``--with-openssl`` and " "``--with-openssl-rpath`` options)" @@ -418,7 +428,7 @@ msgstr "" "Μεταγλώττιση της Python με προσαρμοσμένο OpenSSL (δείτε τις επιλογές " "configure ``----with-openssl`` και ``----with-openssl-rpath``)" -#: using/unix.rst:193 +#: using/unix.rst:199 msgid "" "$ pushd python-3.x.x\n" "$ ./configure -C \\\n" @@ -436,7 +446,7 @@ msgstr "" "$ make -j8\n" "$ make altinstall" -#: using/unix.rst:205 +#: using/unix.rst:211 msgid "" "Patch releases of OpenSSL have a backwards compatible ABI. You don't need to " "recompile Python to update OpenSSL. It's sufficient to replace the custom " diff --git a/using/windows.po b/using/windows.po index e3dadb06..bf7663f6 100644 --- a/using/windows.po +++ b/using/windows.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: 2025-11-04 21:13+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" @@ -17,11 +17,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: using/windows.rst:11 +#: using/windows.rst:13 msgid "Using Python on Windows" msgstr "Χρησιμοποιώντας Python στα Windows" -#: using/windows.rst:15 +#: using/windows.rst:17 msgid "" "This document aims to give an overview of Windows-specific behaviour you " "should know about when using Python on Microsoft Windows." @@ -30,7 +30,7 @@ msgstr "" "Windows που πρέπει να γνωρίζετε, όταν χρησιμοποιείτε την Python στα " "Microsoft Windows." -#: using/windows.rst:18 +#: using/windows.rst:20 msgid "" "Unlike most Unix systems and services, Windows does not include a system " "supported installation of Python. Instead, Python can be obtained from a " @@ -50,7 +50,7 @@ msgstr "" "συνιστούμε να ερευνήσετε τα υπάρχοντα εργαλεία σας για να δείτε αν μπορούν " "να παρέχουν την Python απευθείας." -#: using/windows.rst:26 +#: using/windows.rst:28 msgid "" "To obtain Python from the CPython team, use the Python Install Manager. This " "is a standalone tool that makes Python available as global commands on your " @@ -65,7 +65,7 @@ msgstr "" "χρόνου. Μπορείτε να κατεβάσετε τον Python Install Manager από το `python.org/" "downloads`_ ή μέσω του `Microsoft Store app`_." -#: using/windows.rst:32 +#: using/windows.rst:34 msgid "" "Once you have installed the Python Install Manager, the global ``python`` " "command can be used from any terminal to launch your current latest version " @@ -78,7 +78,7 @@ msgstr "" "αλλάξει με την πάροδο του χρόνου καθώς προσθέτετε ή αφαιρείτε διαφορετικές " "εκδόσεις, και η εντολή ``py list`` θα δείξει ποια είναι η τρέχουσα." -#: using/windows.rst:37 +#: using/windows.rst:39 msgid "" "In general, we recommend that you create a :ref:`virtual environment ` for each project and run ``\\Scripts\\Activate`` in your " @@ -95,7 +95,7 @@ msgstr "" "σας. Δημιουργήστε ένα εικονικό περιβάλλον χρησιμοποιώντας ``python -m venv " "``." -#: using/windows.rst:43 +#: using/windows.rst:45 msgid "" "If the ``python`` or ``py`` commands do not seem to be working, please see " "the :ref:`Troubleshooting ` section below. There are " @@ -106,7 +106,7 @@ msgstr "" "παρακάτω. Υπάρχουν μερικές φορές επιπλέον χειροκίνητα βήματα που απαιτούνται " "για τη διαμόρφωση του υπολογιστή σας." -#: using/windows.rst:47 +#: using/windows.rst:49 msgid "" "Apart from using the Python install manager, Python can also be obtained as " "NuGet packages. See :ref:`windows-nuget` below for more information on these " @@ -116,7 +116,7 @@ msgstr "" "επίσης να αποκτηθεί ως πακέτο NuGet. Δείτε :ref:`windows-nuget` παρακάτω για " "περισσότερες πληροφορίες σχετικά με αυτά τα πακέτα." -#: using/windows.rst:51 +#: using/windows.rst:53 msgid "" "The embeddable distros are minimal packages of Python suitable for embedding " "into larger applications. They can be installed using the Python install " @@ -128,15 +128,15 @@ msgstr "" "χρησιμοποιώντας τον διαχειριστή εγκατάστασης Python. Δείτε :ref:`windows-" "embeddable` παρακάτω για περισσότερες πληροφορίες σχετικά με αυτά τα πακέτα." -#: using/windows.rst:64 -msgid "Python Install Manager" -msgstr "Διαχειριστής Εγκατάστασης Python" +#: using/windows.rst:66 +msgid "Python install manager" +msgstr "Διαχειριστής εγκατάστασης Python" -#: using/windows.rst:67 +#: using/windows.rst:69 msgid "Installation" msgstr "Εγκατάσταση" -#: using/windows.rst:69 +#: using/windows.rst:71 msgid "" "The Python install manager can be installed from the `Microsoft Store app`_ " "or downloaded and installed from `python.org/downloads`_. The two versions " @@ -146,7 +146,7 @@ msgstr "" "`Microsoft Store app`_ ή να ληφθεί και να εγκατασταθεί από το `python.org/" "downloads`_. Οι δύο εκδόσεις είναι ταυτόσημες." -#: using/windows.rst:73 +#: using/windows.rst:75 msgid "" "To install through the Store, simply click \"Install\". After it has " "completed, open a terminal and type ``python`` to get started." @@ -155,7 +155,7 @@ msgstr "" "Αφού ολοκληρωθεί, ανοίξτε ένα τερματικό και πληκτρολογήστε ``python`` για να " "ξεκινήσετε." -#: using/windows.rst:76 +#: using/windows.rst:78 msgid "" "To install the file downloaded from python.org, either double-click and " "select \"Install\", or run ``Add-AppxPackage `` in Windows " @@ -165,7 +165,7 @@ msgstr "" "διπλό κλικ και επιλέξτε \"Εγκατάσταση\", είτε εκτελέστε ``Add-AppxPackage " "<διαδρομή προς MSIX>`` στα Windows Powershell." -#: using/windows.rst:79 +#: using/windows.rst:81 msgid "" "After installation, the ``python``, ``py``, and ``pymanager`` commands " "should be available. If you have existing installations of Python, or you " @@ -180,7 +180,7 @@ msgstr "" "troubleshoot` για περισσότερη βοήθεια σχετικά με την αποκατάσταση μη " "λειτουργικών εντολών." -#: using/windows.rst:85 +#: using/windows.rst:87 msgid "" "When you first install a runtime, you will likely be prompted to add a " "directory to your :envvar:`PATH`. This is optional, if you prefer to use the " @@ -200,7 +200,7 @@ msgstr "" "για τον λογαριασμό σας\" για τη σελίδα ρυθμίσεων συστήματος για να " "προσθέσετε τη διαδρομή." -#: using/windows.rst:93 +#: using/windows.rst:95 msgid "" "Each Python runtime you install will have its own directory for scripts. " "These also need to be added to :envvar:`PATH` if you want to use them." @@ -209,7 +209,7 @@ msgstr "" "σενάρια. Αυτά πρέπει επίσης να προστεθούν στη μεταβλητή :envvar:`PATH` αν " "θέλετε να τα χρησιμοποιήσετε." -#: using/windows.rst:96 +#: using/windows.rst:98 msgid "" "The Python install manager will be automatically updated to new releases. " "This does not affect any installs of Python runtimes. Uninstalling the " @@ -220,7 +220,7 @@ msgstr "" "απεγκατάσταση του διαχειριστή εγκατάστασης Python δεν απεγκαθιστά καμία " "εγκατάσταση runtime της Python." -#: using/windows.rst:100 +#: using/windows.rst:102 msgid "" "If you are not able to install an MSIX in your context, for example, you are " "using automated deployment software that does not support it, or are " @@ -232,11 +232,11 @@ msgstr "" "ή στοχεύετε τα Windows Server 2019, παρακαλώ δείτε :ref:`pymanager-" "advancedinstall` παρακάτω για περισσότερες πληροφορίες." -#: using/windows.rst:107 -msgid "Basic Use" -msgstr "Βασική Χρήση" - #: using/windows.rst:109 +msgid "Basic use" +msgstr "Βασική χρήση" + +#: using/windows.rst:111 msgid "" "The recommended command for launching Python is ``python``, which will " "either launch the version requested by the script being launched, an active " @@ -253,7 +253,7 @@ msgstr "" "εγκατεστημένες καθόλου εκδόσεις, η τρέχουσα τελευταία έκδοση θα εγκατασταθεί " "αυτόματα." -#: using/windows.rst:116 +#: using/windows.rst:118 msgid "" "For all scenarios involving multiple runtime versions, the recommended " "command is ``py``. This may be used anywhere in place of ``python`` or the " @@ -270,7 +270,7 @@ msgstr "" "και υποεντολές για τη διαχείριση εγκαταστάσεων. Αυτές περιγράφονται " "λεπτομερώς " -#: using/windows.rst:122 +#: using/windows.rst:124 msgid "" "Because the ``py`` command may already be taken by the previous version, " "there is also an unambiguous ``pymanager`` command. Scripted installs that " @@ -291,7 +291,7 @@ msgstr "" "τον προεπιλεγμένο διερμηνέα σας, ενώ το ``pymanager`` θα εμφανίσει βοήθεια " "(``pymanager exec ...`` παρέχει ισοδύναμη συμπεριφορά με το ``py ...``)." -#: using/windows.rst:131 +#: using/windows.rst:133 msgid "" "Each of these commands also has a windowed version that avoids creating a " "console window. These are ``pyw``, ``pythonw`` and ``pymanagerw``. A " @@ -306,7 +306,7 @@ msgstr "" "χρήσεις της τυπικής εντολής POSIX σε Windows, αλλά δεν προορίζεται να " "χρησιμοποιείται ευρέως ή να συνιστάται." -#: using/windows.rst:137 +#: using/windows.rst:139 msgid "" "To launch your default runtime, run ``python`` or ``py`` with the arguments " "you want to be passed to the runtime (such as script files or the module to " @@ -316,7 +316,7 @@ msgstr "" "``python`` ή το ``py`` με τα ορίσματα που θέλετε να περαστούν στο χρόνο " "εκτέλεσης (όπως αρχεία σεναρίων ή το module για εκκίνηση):" -#: using/windows.rst:140 +#: using/windows.rst:142 msgid "" "$> py\n" "...\n" @@ -332,7 +332,7 @@ msgstr "" "$> py -m this\n" "..." -#: using/windows.rst:149 +#: using/windows.rst:151 msgid "" "The default runtime can be overridden with the :envvar:" "`PYTHON_MANAGER_DEFAULT` environment variable, or a configuration file. See :" @@ -343,7 +343,7 @@ msgstr "" "Δείτε :ref:`pymanager-config` για πληροφορίες σχετικά με τις ρυθμίσεις " "διαμόρφωσης." -#: using/windows.rst:153 +#: using/windows.rst:155 msgid "" "To launch a specific runtime, the ``py`` command accepts a ``-V:`` " "option. This option must be specified before any others. The tag is part or " @@ -359,7 +359,7 @@ msgstr "" "την πλατφόρμα. Για λόγους συμβατότητας, το ``V:`` μπορεί να παραλειφθεί σε " "περιπτώσεις όπου το tag αναφέρεται σε μια επίσημη έκδοση και ξεκινά με ``3``." -#: using/windows.rst:160 +#: using/windows.rst:162 msgid "" "$> py -V:3.14 ...\n" "$> py -V:3-arm64 ..." @@ -367,7 +367,7 @@ msgstr "" "$> py -V:3.14 ...\n" "$> py -V:3-arm64 ..." -#: using/windows.rst:165 +#: using/windows.rst:167 msgid "" "Runtimes from other distributors may require the *company* to be included as " "well. This should be separated from the tag by a slash, and may be a prefix. " @@ -381,7 +381,7 @@ msgstr "" "προαιρετικός όταν είναι ``PythonCore``, και η καθορισμός του tag είναι " "προαιρετικός (αλλά όχι η κάθετος) όταν θέλετε την τελευταία έκδοση " -#: using/windows.rst:171 +#: using/windows.rst:173 msgid "" "$> py -V:Distributor\\1.0 ...\n" "$> py -V:distrib/ ..." @@ -389,7 +389,7 @@ msgstr "" "$> py -V:Distributor\\1.0 ...\n" "$> py -V:distrib/ ..." -#: using/windows.rst:176 +#: using/windows.rst:178 msgid "" "If no version is specified, but a script file is passed, the script will be " "inspected for a *shebang line*. This is a special format for the first line " @@ -404,7 +404,7 @@ msgstr "" "υπάρχει shebang line, ή δεν μπορεί να επιλυθεί, το σενάριο θα εκκινήσει με " "το προεπιλεγμένο χρόνο εκτέλεσης." -#: using/windows.rst:182 +#: using/windows.rst:184 msgid "" "If you are running in an active virtual environment, have not requested a " "particular version, and there is no shebang line, the default runtime will " @@ -419,7 +419,7 @@ msgstr "" "συνέβη. Ωστόσο, αυτή η συμπεριφορά διασφαλίζει ότι η εντολή ``py`` μπορεί να " "χρησιμοποιηθεί εναλλακτικά." -#: using/windows.rst:188 +#: using/windows.rst:190 msgid "" "When you launch either ``python`` or ``py`` but do not have any runtimes " "installed, and the requested version is the default, it will be installed " @@ -436,11 +436,11 @@ msgstr "" "``PYTHON_MANAGER_AUTOMATIC_INSTALL`` σε ``true``), ή εάν χρησιμοποιήθηκαν οι " "μορφές ``py exec`` ή ``pymanager exec`` της εντολής." -#: using/windows.rst:197 -msgid "Command Help" -msgstr "Εντολή Βοήθειας" - #: using/windows.rst:199 +msgid "Command help" +msgstr "Εντολή βοήθειας" + +#: using/windows.rst:201 msgid "" "The ``py help`` command will display the full list of supported commands, " "along with their options. Any command may be passed the ``-?`` option to " @@ -451,7 +451,7 @@ msgstr "" "επιλογή ``-?`` για να εμφανίσει τη βοήθειά της, ή το όνομά της μπορεί να " "περαστεί στην εντολή ``py help``." -#: using/windows.rst:203 +#: using/windows.rst:205 msgid "" "$> py help\n" "$> py help install\n" @@ -461,7 +461,7 @@ msgstr "" "$> py help install\n" "$> py install /?" -#: using/windows.rst:210 +#: using/windows.rst:212 msgid "" "All commands support some common options, which will be shown by ``py " "help``. These options must be specified after any subcommand. Specifying ``-" @@ -476,7 +476,7 @@ msgstr "" "περαιτέρω για σκοπούς αποσφαλμάτωσης. Η μετάβαση του ``-q`` ή ``--quiet`` θα " "μειώσει την έξοδο, και ``-qq`` θα την μειώσει περαιτέρω." -#: using/windows.rst:216 +#: using/windows.rst:218 msgid "" "The ``--config=`` option allows specifying a configuration file to " "override multiple settings at once. See :ref:`pymanager-config` below for " @@ -487,11 +487,11 @@ msgstr "" "`pymanager-config` παρακάτω για περισσότερες πληροφορίες σχετικά με αυτά τα " "αρχεία." -#: using/windows.rst:222 -msgid "Listing Runtimes" -msgstr "Καταχώριση Χρόνων Εκτέλεσης" - #: using/windows.rst:224 +msgid "Listing runtimes" +msgstr "Καταχώριση χρόνων εκτέλεσης" + +#: using/windows.rst:226 msgid "" "$> py list [-f=|--format=] [-1|--one] [--online|-s=|--source=] " "[...]" @@ -499,7 +499,7 @@ msgstr "" "$> py list [-f=|--format=] [-1|--one] [--online|-s=|--source=] " "[...]" -#: using/windows.rst:228 +#: using/windows.rst:230 msgid "" "The list of installed runtimes can be seen using ``py list``. A filter may " "be added in the form of one or more tags (with or without company " @@ -512,7 +512,7 @@ msgstr "" "μπορεί να περιλαμβάνει ένα πρόθεμα ``<``, ``<=``, ``>=`` ή ``>`` για " "περιορισμό σε μια περιοχή." -#: using/windows.rst:232 +#: using/windows.rst:234 msgid "" "A range of formats are supported, and can be passed as the ``--" "format=`` or ``-f `` option. Formats include ``table`` (a user " @@ -527,7 +527,7 @@ msgstr "" "``exe`` (μόνο η διαδρομή εκτελέσιμου), ``prefix`` (μόνο η διαδρομή " "προθέματος)." -#: using/windows.rst:238 +#: using/windows.rst:240 msgid "" "The ``--one`` or ``-1`` option only displays a single result. If the default " "runtime is included, it will be the one. Otherwise, the \"best\" result is " @@ -542,7 +542,7 @@ msgstr "" "το ``py list --one `` θα ταιριάξει με το χρόνο εκτέλεσης που θα " "εκκινηθεί από το ``py -V:``." -#: using/windows.rst:244 +#: using/windows.rst:246 msgid "" "The ``--only-managed`` option excludes results that were not installed by " "the Python install manager. This is useful when determining which runtimes " @@ -553,7 +553,7 @@ msgstr "" "προσδιορισμό των χρόνων εκτέλεσης που μπορούν να ενημερωθούν ή να " "απεγκατασταθούν μέσω της εντολής ``py``." -#: using/windows.rst:248 +#: using/windows.rst:250 msgid "" "The ``--online`` option is short for passing ``--source=`` with the " "default source. Passing either of these options will search the online index " @@ -568,11 +568,11 @@ msgstr "" "--online --one `` θα ταιριάξει με το χρόνο εκτέλεσης που θα " "εγκατασταθεί από το ``py install ``." -#: using/windows.rst:253 +#: using/windows.rst:255 msgid "$> py list --online 3.14" msgstr "$> py list --online 3.14" -#: using/windows.rst:257 +#: using/windows.rst:259 msgid "" "For compatibility with the old launcher, the ``--list``, ``--list-paths``, " "``-0`` and ``-0p`` commands (e.g. ``py -0p``) are retained. They do not " @@ -582,11 +582,11 @@ msgstr "" "paths``, ``-0`` και ``-0p`` (π.χ. ``py -0p``) διατηρούνται. Δεν επιτρέπουν " "πρόσθετες επιλογές, και θα παράγουν έξοδο σε παλιά μορφή." -#: using/windows.rst:263 -msgid "Installing Runtimes" -msgstr "Εγκαθιστώντας Χρόνους Εκτέλεσης" - #: using/windows.rst:265 +msgid "Installing runtimes" +msgstr "Εγκαθιστώντας χρόνους εκτέλεσης" + +#: using/windows.rst:267 msgid "" "$> py install [-s=|--source=] [-f|--force] [-u|--update] [--dry-run] " "[...]" @@ -594,7 +594,7 @@ msgstr "" "$> py install [-s=|--source=] [-f|--force] [-u|--update] [--dry-run] " "[...]" -#: using/windows.rst:269 +#: using/windows.rst:271 msgid "" "New runtime versions may be added using ``py install``. One or more tags may " "be specified, and the special tag ``default`` may be used to select the " @@ -605,7 +605,7 @@ msgstr "" "``default`` μπορεί να χρησιμοποιηθεί για την επιλογή του προεπιλεγμένου. Οι " "περιοχές δεν υποστηρίζονται για εγκατάσταση." -#: using/windows.rst:273 +#: using/windows.rst:275 msgid "" "The ``--source=`` option allows overriding the online index that is " "used to obtain runtimes. This may be used with an offline index, as shown " @@ -616,7 +616,7 @@ msgstr "" "μπορεί να χρησιμοποιηθεί με ευρετήριο εκτός σύνδεσης, όπως φαίνεται στο :ref:" "`pymanager-offline`." -#: using/windows.rst:277 +#: using/windows.rst:279 msgid "" "Passing ``--force`` will ignore any cached files and remove any existing " "install to replace it with the specified one." @@ -625,7 +625,7 @@ msgstr "" "μνήμη και θα αφαιρέσει οποιαδήποτε υπάρχουσα εγκατάσταση για να την " "αντικαταστήσει με την καθορισμένη." -#: using/windows.rst:280 +#: using/windows.rst:282 msgid "" "Passing ``--update`` will replace existing installs if the new version is " "newer. Otherwise, they will be left. If no tags are provided with ``--" @@ -642,7 +642,7 @@ msgstr "" "έγιναν στην εγκατάσταση, συμπεριλαμβανομένων των παγκοσμίως εγκατεστημένων " "πακέτων, αλλά τα εικονικά περιβάλλοντα θα συνεχίσουν να λειτουργούν." -#: using/windows.rst:287 +#: using/windows.rst:289 msgid "" "Passing ``--dry-run`` will generate output and logs, but will not modify any " "installs." @@ -650,7 +650,7 @@ msgstr "" "Περνώντας την επιλογή ``--dry-run`` θα δημιουργήσει έξοδο και αρχεία " "καταγραφής, αλλά δεν θα τροποποιήσει καμία εγκατάσταση." -#: using/windows.rst:290 +#: using/windows.rst:292 msgid "" "In addition to the above options, the ``--target`` option will extract the " "runtime to the specified directory instead of doing a normal install. This " @@ -661,15 +661,15 @@ msgstr "" "Αυτό είναι χρήσιμο για την ενσωμάτωση χρόνων εκτέλεσης σε μεγαλύτερες " "εφαρμογές." -#: using/windows.rst:294 +#: using/windows.rst:296 msgid "$> py install ... [-t=|--target=] " msgstr "$> py install ... [-t=|--target=] " -#: using/windows.rst:302 -msgid "Offline Installs" -msgstr "Εγκαταστάσεις Εκτός Σύνδεσης" - #: using/windows.rst:304 +msgid "Offline installs" +msgstr "Εγκαταστάσεις εκτός σύνδεσης" + +#: using/windows.rst:306 msgid "" "To perform offline installs of Python, you will need to first create an " "offline index on a machine that has network access." @@ -678,11 +678,11 @@ msgstr "" "χρειαστεί πρώτα να δημιουργήσετε ένα ευρετήριο εκτός σύνδεσης σε ένα " "μηχάνημα που έχει πρόσβαση στο δίκτυο." -#: using/windows.rst:307 +#: using/windows.rst:309 msgid "$> py install --download= ... ..." msgstr "$> py install --download= ... ..." -#: using/windows.rst:311 +#: using/windows.rst:313 msgid "" "The ``--download=`` option will download the packages for the listed " "tags and create a directory containing them and an ``index.json`` file " @@ -696,11 +696,11 @@ msgstr "" "χρησιμοποιηθεί για την εγκατάσταση ενός ή περισσότερων από τους παρεχόμενους " "χρόνους εκτέλεσης:" -#: using/windows.rst:316 +#: using/windows.rst:318 msgid "$> py install --source=\"\\index.json\" ..." msgstr "$> py install --source=\"\\index.json\" ..." -#: using/windows.rst:320 +#: using/windows.rst:322 msgid "" "The Python install manager can be installed by downloading its installer and " "moving it to another machine before installing." @@ -708,7 +708,7 @@ msgstr "" "Ο διαχειριστής εγκατάστασης Python μπορεί να εγκατασταθεί κατεβάζοντας τον " "εγκαταστάτη του και μεταφέροντάς τον σε άλλο μηχάνημα πριν την εγκατάσταση." -#: using/windows.rst:323 +#: using/windows.rst:325 msgid "" "Alternatively, the ZIP files in an offline index directory can simply be " "transferred to another machine and extracted. This will not register the " @@ -724,7 +724,7 @@ msgstr "" "μερικές φορές είναι μια προτιμότερη προσέγγιση σε περιπτώσεις όπου η " "εγκατάσταση του διαχειριστή εγκατάστασης Python δεν είναι δυνατή ή βολική." -#: using/windows.rst:329 +#: using/windows.rst:331 msgid "" "In this way, Python runtimes can be installed and managed on a machine " "without access to the internet." @@ -732,15 +732,15 @@ msgstr "" "Με αυτόν τον τρόπο, οι χρόνοι εκτέλεσης της Python μπορούν να εγκατασταθούν " "και να διαχειριστούν σε ένα μηχάνημα χωρίς πρόσβαση στο διαδίκτυο." -#: using/windows.rst:334 -msgid "Uninstalling Runtimes" -msgstr "Απεγκατάσταση Χρόνων Εκτέλεσης" - #: using/windows.rst:336 +msgid "Uninstalling runtimes" +msgstr "Απεγκατάσταση χρόνων εκτέλεσης" + +#: using/windows.rst:338 msgid "$> py uninstall [-y|--yes] ..." msgstr "$> py uninstall [-y|--yes] ..." -#: using/windows.rst:340 +#: using/windows.rst:342 msgid "" "Runtimes may be removed using the ``py uninstall`` command. One or more tags " "must be specified. Ranges are not supported here." @@ -749,14 +749,14 @@ msgstr "" "uninstall``. Πρέπει να καθοριστούν μία ή περισσότερες ετικέτες. Οι περιοχές " "δεν υποστηρίζονται εδώ." -#: using/windows.rst:343 +#: using/windows.rst:345 msgid "" "The ``--yes`` option bypasses the confirmation prompt before uninstalling." msgstr "" "Η επιλογή ``--yes`` παρακάμπτει την προτροπή επιβεβαίωσης πριν από την " "απεγκατάσταση." -#: using/windows.rst:345 +#: using/windows.rst:347 msgid "" "Instead of passing tags individually, the ``--purge`` option may be " "specified. This will remove all runtimes managed by the Python install " @@ -772,11 +772,11 @@ msgstr "" "εγκατάστασης Python δεν θα επηρεαστούν, και ούτε τα χειροκίνητα " "δημιουργημένα αρχεία διαμόρφωσης." -#: using/windows.rst:351 +#: using/windows.rst:353 msgid "$> py uninstall [-y|--yes] --purge" msgstr "$> py uninstall [-y|--yes] --purge" -#: using/windows.rst:355 +#: using/windows.rst:357 msgid "" "The Python install manager can be uninstalled through the Windows " "\"Installed apps\" settings page. This does not remove any runtimes, and " @@ -794,11 +794,11 @@ msgstr "" "χρόνους εκτέλεσης Python, εκτελέστε με ``--purge`` πριν από την " "απεγκατάσταση του διαχειριστή εγκατάστασης Python." -#: using/windows.rst:365 +#: using/windows.rst:367 msgid "Configuration" msgstr "Διαμόρφωση" -#: using/windows.rst:367 +#: using/windows.rst:369 msgid "" "Python install manager is configured with a hierarchy of configuration " "files, environment variables, command-line options, and registry settings. " @@ -814,7 +814,7 @@ msgstr "" "διαμόρφωσης, ενώ οι ρυθμίσεις μητρώου είναι μόνο για διαχειριστές και θα " "παρακάμψουν τα αρχεία διαμόρφωσης." -#: using/windows.rst:374 +#: using/windows.rst:376 msgid "" "This section will describe the defaults, but be aware that modified or " "overridden installs may resolve settings differently." @@ -823,7 +823,7 @@ msgstr "" "τροποποιημένες ή παρακαμφθείσες εγκαταστάσεις μπορεί να επιλύσουν τις " "ρυθμίσεις διαφορετικά." -#: using/windows.rst:377 +#: using/windows.rst:379 msgid "" "A global configuration file may be configured by an administrator, and would " "be read first. The user configuration file is stored at :file:`%AppData%\\" @@ -840,7 +840,7 @@ msgstr "" "περιβάλλοντος ``PYTHON_MANAGER_CONFIG`` ή η επιλογή γραμμής εντολών ``--" "config`` (αλλά όχι και τα δύο)." -#: using/windows.rst:384 +#: using/windows.rst:386 msgid "" "The following settings are those that are considered likely to be modified " "in normal use. Later sections list those that are intended for " @@ -850,31 +850,27 @@ msgstr "" "κανονική χρήση. Οι επόμενες ενότητες απαριθμούν αυτές που προορίζονται για " "διοικητική προσαρμογή." -#: using/windows.rst:388 +#: using/windows.rst:394 msgid "Standard configuration options" msgstr "Τυπικές επιλογές διαμόρφωσης" -#: using/windows.rst:1 +#: using/windows.rst:694 msgid "Config Key" msgstr "Κλειδί Διαμόρφωσης" -#: using/windows.rst:1 +#: using/windows.rst:399 msgid "Environment Variable" msgstr "Μεταβλητή Περιβάλλοντος" -#: using/windows.rst:1301 using/windows.rst:1916 +#: using/windows.rst:695 using/windows.rst:1404 using/windows.rst:1994 msgid "Description" msgstr "Περιγραφή" -#: using/windows.rst:1 +#: using/windows.rst:402 msgid "``default_tag``" msgstr "``default_tag``" -#: using/windows.rst:1 -msgid "``PYTHON_MANAGER_DEFAULT``" -msgstr "``PYTHON_MANAGER_DEFAULT``" - -#: using/windows.rst:1 +#: using/windows.rst:404 msgid "" "The preferred default version to launch or install. By default, this is " "interpreted as the most recent non-prerelease version from the CPython team." @@ -883,15 +879,15 @@ msgstr "" "προεπιλογή, αυτό ερμηνεύεται ως η πιο πρόσφατη μη-προκαταρκτική έκδοση από " "την ομάδα CPython." -#: using/windows.rst:1 +#: using/windows.rst:408 msgid "``default_platform``" msgstr "``default_platform``" -#: using/windows.rst:1 +#: using/windows.rst:409 msgid "``PYTHON_MANAGER_DEFAULT_PLATFORM``" msgstr "``PYTHON_MANAGER_DEFAULT_PLATFORM``" -#: using/windows.rst:1 +#: using/windows.rst:410 msgid "" "The preferred default platform to launch or install. This is treated as a " "suffix to the specified tag, such that ``py -V:3.14`` would prefer an " @@ -904,29 +900,29 @@ msgstr "" "``default_platform`` είναι ``-64``), αλλά θα χρησιμοποιούσε το ``3.14`` εάν " "δεν υπάρχει εγκατάσταση με tag." -#: using/windows.rst:1 +#: using/windows.rst:416 msgid "``logs_dir``" msgstr "``logs_dir``" -#: using/windows.rst:1 +#: using/windows.rst:417 msgid "``PYTHON_MANAGER_LOGS``" msgstr "``PYTHON_MANAGER_LOGS``" -#: using/windows.rst:1 +#: using/windows.rst:418 msgid "The location where log files are written. By default, :file:`%TEMP%`." msgstr "" "Η τοποθεσία όπου γράφονται τα αρχεία καταγραφής. Κατά προεπιλογή, :file:" "`%TEMP%`." -#: using/windows.rst:1 +#: using/windows.rst:421 msgid "``automatic_install``" msgstr "``automatic_install``" -#: using/windows.rst:1 +#: using/windows.rst:422 msgid "``PYTHON_MANAGER_AUTOMATIC_INSTALL``" msgstr "``PYTHON_MANAGER_AUTOMATIC_INSTALL``" -#: using/windows.rst:1 +#: using/windows.rst:423 msgid "" "True to allow automatic installs when specifying a particular runtime to " "launch. By default, true." @@ -934,15 +930,15 @@ msgstr "" "True για να επιτρέπεται η αυτόματη εγκατάσταση κατά τον καθορισμό ενός " "συγκεκριμένου χρόνου εκτέλεσης για εκκίνηση. Κατά προεπιλογή, true." -#: using/windows.rst:1 +#: using/windows.rst:427 msgid "``include_unmanaged``" msgstr "``include_unmanaged``" -#: using/windows.rst:1 +#: using/windows.rst:428 msgid "``PYTHON_MANAGER_INCLUDE_UNMANAGED``" msgstr "``PYTHON_MANAGER_INCLUDE_UNMANAGED``" -#: using/windows.rst:1 +#: using/windows.rst:429 msgid "" "True to allow listing and launching runtimes that were not installed by the " "Python install manager, or false to exclude them. By default, true." @@ -951,15 +947,15 @@ msgstr "" "εγκαταστάθηκαν από τον διαχειριστή εγκατάστασης Python, ή false για να τους " "εξαιρέσετε. Κατά προεπιλογή, true." -#: using/windows.rst:1 +#: using/windows.rst:433 msgid "``shebang_can_run_anything``" msgstr "``shebang_can_run_anything``" -#: using/windows.rst:1 +#: using/windows.rst:434 msgid "``PYTHON_MANAGER_SHEBANG_CAN_RUN_ANYTHING``" msgstr "``PYTHON_MANAGER_SHEBANG_CAN_RUN_ANYTHING``" -#: using/windows.rst:1 +#: using/windows.rst:435 msgid "" "True to allow shebangs in ``.py`` files to launch applications other than " "Python runtimes, or false to prevent it. By default, true." @@ -968,35 +964,35 @@ msgstr "" "εφαρμογές εκτός από χρόνους εκτέλεσης Python, ή false για να το αποτρέψετε. " "Κατά προεπιλογή, true." -#: using/windows.rst:1 +#: using/windows.rst:439 msgid "``log_level``" msgstr "``log_level``" -#: using/windows.rst:1 +#: using/windows.rst:440 msgid "``PYMANAGER_VERBOSE``, ``PYMANAGER_DEBUG``" msgstr "``PYMANAGER_VERBOSE``, ``PYMANAGER_DEBUG``" -#: using/windows.rst:1 +#: using/windows.rst:441 msgid "" -"Set the default level of output (0-50) By default, 20. Lower values produce " +"Set the default level of output (0-50). By default, 20. Lower values produce " "more output. The environment variables are boolean, and may produce " "additional output during startup that is later suppressed by other " "configuration." msgstr "" -"Ορίζει το προεπιλεγμένο επίπεδο εξόδου (0-50) Κατά προεπιλογή, 20. " +"Ορίζει το προεπιλεγμένο επίπεδο εξόδου (0-50). Κατά προεπιλογή, 20. " "Χαμηλότερες τιμές παράγουν περισσότερη έξοδο. Οι μεταβλητές περιβάλλοντος " "είναι boolean, και μπορεί να παράγουν επιπλέον έξοδο κατά την εκκίνηση που " "αργότερα καταστέλλεται από άλλες ρυθμίσεις." -#: using/windows.rst:1 +#: using/windows.rst:447 msgid "``confirm``" msgstr "``confirm``" -#: using/windows.rst:1 +#: using/windows.rst:448 msgid "``PYTHON_MANAGER_CONFIRM``" msgstr "``PYTHON_MANAGER_CONFIRM``" -#: using/windows.rst:1 +#: using/windows.rst:449 msgid "" "True to confirm certain actions before taking them (such as uninstall), or " "false to skip the confirmation. By default, true." @@ -1005,28 +1001,28 @@ msgstr "" "απεγκατάσταση), ή false για να παραλείψετε την επιβεβαίωση. Κατά προεπιλογή, " "true." -#: using/windows.rst:1 +#: using/windows.rst:453 msgid "``install.source``" msgstr "``install.source``" -#: using/windows.rst:1 +#: using/windows.rst:454 msgid "``PYTHON_MANAGER_SOURCE_URL``" msgstr "``PYTHON_MANAGER_SOURCE_URL``" -#: using/windows.rst:1 +#: using/windows.rst:455 msgid "Override the index feed to obtain new installs from." msgstr "" "Αντικαταστήστε την πηγή του δείκτη για να αποκτήσετε νέες εγκαταστάσεις." -#: using/windows.rst:1 +#: using/windows.rst:457 msgid "``list.format``" msgstr "``list.format``" -#: using/windows.rst:1 +#: using/windows.rst:458 msgid "``PYTHON_MANAGER_LIST_FORMAT``" msgstr "``PYTHON_MANAGER_LIST_FORMAT``" -#: using/windows.rst:1 +#: using/windows.rst:459 msgid "" "Specify the default format used by the ``py list`` command. By default, " "``table``." @@ -1034,7 +1030,53 @@ msgstr "" "Καθορίστε την προεπιλεγμένη μορφή που χρησιμοποιείται από την εντολή ``py " "list``. Κατά προεπιλογή, ``table``." -#: using/windows.rst:433 +#: using/windows.rst:462 +msgid "``install_dir``" +msgstr "``install_dir``" + +#: using/windows.rst:469 using/windows.rst:476 +msgid "(none)" +msgstr "(none)" + +#: using/windows.rst:464 +msgid "" +"Specify the root directory that runtimes will be installed into. If you " +"change this setting, previously installed runtimes will not be usable unless " +"you move them to the new location." +msgstr "" +"Καθορίστε τον ριζικό κατάλογο στον οποίο θα εγκατασταθούν οι χρόνοι " +"εκτέλεσης. Εάν αλλάξετε αυτήν τη ρύθμιση, οι προηγουμένως εγκατεστημένοι " +"χρόνοι εκτέλεσης δεν θα είναι χρησιμοποιήσιμοι εκτός εάν τους μετακινήσετε " +"στη νέα τοποθεσία." + +#: using/windows.rst:468 +msgid "``global_dir``" +msgstr "``global_dir``" + +#: using/windows.rst:470 +msgid "" +"Specify the directory where global commands (such as ``python3.14.exe``) are " +"stored. This directory should be added to your :envvar:`PATH` to make the " +"commands available from your terminal." +msgstr "" +"Καθορίστε τον κατάλογο όπου αποθηκεύονται οι παγκόσμιες εντολές (όπως το " +"``python3.14.exe``). Αυτός ο κατάλογος θα πρέπει να προστεθεί στη :envvar:" +"`PATH` σας για να κάνετε τις εντολές διαθέσιμες από το τερματικό σας." + +#: using/windows.rst:475 +msgid "``download_dir``" +msgstr "``download_dir``" + +#: using/windows.rst:477 +msgid "" +"Specify the directory where downloaded files are stored. This directory is a " +"temporary cache, and can be cleaned up from time to time." +msgstr "" +"Καθορίστε τον κατάλογο όπου αποθηκεύονται τα αρχεία που έχουν ληφθεί. Αυτός " +"ο κατάλογος είναι μια προσωρινή μνήμη και μπορεί να καθαριστεί από καιρό σε " +"καιρό." + +#: using/windows.rst:481 msgid "" "Dotted names should be nested inside JSON objects, for example, ``list." "format`` would be specified as ``{\"list\": {\"format\": \"table\"}}``." @@ -1043,11 +1085,11 @@ msgstr "" "JSON, για παράδειγμα, ``list.format`` θα καθοριζόταν ως ``{\"list\": " "{\"format\": \"table\"}}``." -#: using/windows.rst:439 +#: using/windows.rst:1750 msgid "Shebang lines" msgstr "Γραμμές Shebang" -#: using/windows.rst:441 +#: using/windows.rst:489 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 " @@ -1062,7 +1104,7 @@ msgstr "" "script. Οι εντολές ``python`` και ``py`` επιτρέπουν την ίδια δυνατότητα να " "χρησιμοποιηθεί με scripts Python στα Windows." -#: using/windows.rst:447 +#: using/windows.rst:495 msgid "" "To allow shebang lines in Python scripts to be portable between Unix and " "Windows, a number of 'virtual' commands are supported to specify which " @@ -1073,35 +1115,35 @@ msgstr "" "καθορίσετε ποιο διερμηνέα να χρησιμοποιήσετε. Οι υποστηριζόμενες εικονικές " "εντολές είναι:" -#: using/windows.rst:451 +#: using/windows.rst:499 msgid "``/usr/bin/env ``" msgstr "``/usr/bin/env ``" -#: using/windows.rst:452 +#: using/windows.rst:500 msgid "``/usr/bin/env -S ``" msgstr "``/usr/bin/env -S ``" -#: using/windows.rst:453 +#: using/windows.rst:501 msgid "``/usr/bin/``" msgstr "``/usr/bin/``" -#: using/windows.rst:454 +#: using/windows.rst:502 msgid "``/usr/local/bin/``" msgstr "``/usr/local/bin/``" -#: using/windows.rst:455 +#: using/windows.rst:503 msgid "````" msgstr "````" -#: using/windows.rst:1690 +#: using/windows.rst:1768 msgid "For example, if the first line of your script starts with" msgstr "Για παράδειγμα, εάν η πρώτη γραμμή του script σας ξεκινά με" -#: using/windows.rst:1692 +#: using/windows.rst:1770 msgid "#! /usr/bin/python" msgstr "#! /usr/bin/python" -#: using/windows.rst:1696 +#: using/windows.rst:1774 msgid "" "The default Python or an active virtual environment will be located and " "used. As many Python scripts written to work on Unix will already have this " @@ -1118,7 +1160,7 @@ msgstr "" "θα πρέπει να χρησιμοποιήσετε μία από τις γραμμές shebang που ξεκινούν με ``/" "usr``." -#: using/windows.rst:469 +#: using/windows.rst:517 msgid "" "Any of the above virtual commands can have ```` replaced by an alias " "from an installed runtime. That is, any command generated in the global " @@ -1135,7 +1177,7 @@ msgstr "" "είναι στο :envvar:`PATH`. Αυτό επιτρέπει τη χρήση shebangs όπως ``/usr/bin/" "python3.12`` για να επιλέξετε μια συγκεκριμένη runtime." -#: using/windows.rst:475 +#: using/windows.rst:523 msgid "" "If no runtimes are installed, or if automatic installation is enabled, the " "requested runtime will be installed if necessary. See :ref:`pymanager-" @@ -1146,7 +1188,7 @@ msgstr "" "εγκατασταθεί εάν είναι απαραίτητο. Δείτε :ref:`pymanager-config` για " "πληροφορίες σχετικά με τις ρυθμίσεις διαμόρφωσης." -#: using/windows.rst:479 +#: using/windows.rst:527 msgid "" "The ``/usr/bin/env`` form of shebang line will also search the :envvar:" "`PATH` environment variable for unrecognized commands. This corresponds to " @@ -1163,7 +1205,7 @@ msgstr "" "αρχεία, και αυτή η αναζήτηση μπορεί να απενεργοποιηθεί από την επιλογή " "διαμόρφωσης ``shebang_can_run_anything``." -#: using/windows.rst:486 +#: using/windows.rst:534 msgid "" "Shebang lines that do not match any of patterns are treated as *Windows* " "executable paths that are absolute or relative to the directory containing " @@ -1184,11 +1226,28 @@ msgstr "" "το σενάριο και τυχόν πρόσθετα ορίσματα. Αυτή η λειτουργικότητα μπορεί να " "απενεργοποιηθεί από την επιλογή διαμόρφωσης ``shebang_can_run_anything``." -#: using/windows.rst:518 -msgid "Advanced Installation" -msgstr "Προχωρημένη Εγκατάσταση" +#: using/windows.rst:545 +msgid "" +"The behaviour of shebangs in the Python install manager is subtly different " +"from the previous ``py.exe`` launcher, and the old configuration options no " +"longer apply. If you are specifically reliant on the old behaviour or " +"configuration, we recommend installing the `legacy launcher`_. The legacy " +"launcher's ``py`` command will override PyManager's one by default, and you " +"will need to use ``pymanager`` commands for installing and uninstalling." +msgstr "" +"Η συμπεριφορά των shebangs στον διαχειριστή εγκατάστασης Python είναι λεπτά " +"διαφορετική από τον προηγούμενο εκκινητή ``py.exe``, και οι παλιές επιλογές " +"διαμόρφωσης δεν ισχύουν πλέον. Εάν βασίζεστε συγκεκριμένα στην παλιά " +"συμπεριφορά ή διαμόρφωση, συνιστούμε την εγκατάσταση του `legacy launcher`_. " +"Η εντολή ``py`` του legacy launcher θα παρακάμψει αυτήν του PyManager από " +"προεπιλογή, και θα χρειαστεί να χρησιμοποιήσετε τις εντολές ``pymanager`` " +"για εγκατάσταση και απεγκατάσταση." -#: using/windows.rst:520 +#: using/windows.rst:563 +msgid "Advanced installation" +msgstr "Προχωρημένη εγκατάσταση" + +#: using/windows.rst:565 msgid "" "For situations where an MSIX cannot be installed, such as some older " "administrative distribution platforms, there is an MSI available from the " @@ -1206,7 +1265,7 @@ msgstr "" "συστημική μεταβλητή :envvar:`PATH` για να συμπεριλάβει αυτή την τοποθεσία " "εγκατάστασης, αλλά βεβαιωθείτε ότι το επαληθεύετε στη διαμόρφωσή σας." -#: using/windows.rst:529 +#: using/windows.rst:574 msgid "" "Windows Server 2019 is the only version of Windows that CPython supports " "that does not support MSIX. For Windows Server 2019, you should use the MSI." @@ -1215,7 +1274,7 @@ msgstr "" "CPython και δεν υποστηρίζει MSIX. Για τα Windows Server 2019, θα πρέπει να " "χρησιμοποιήσετε το MSI." -#: using/windows.rst:532 +#: using/windows.rst:577 msgid "" "Be aware that the MSI package does not bundle any runtimes, and so is not " "suitable for installs into offline environments without also creating an " @@ -1228,7 +1287,7 @@ msgstr "" "σύνδεση. Δείτε :ref:`pymanager-offline` και :ref:`pymanager-admin-config` " "για πληροφορίες σχετικά με τη διαχείριση αυτών των σεναρίων." -#: using/windows.rst:537 +#: using/windows.rst:582 msgid "" "Runtimes installed by the MSI are shared with those installed by the MSIX, " "and are all per-user only. The Python install manager does not support " @@ -1245,7 +1304,7 @@ msgstr "" "διαχειριστής και να προσθέσετε τις δικές σας τροποποιήσεις σε :envvar:" "`PATH`, το μητρώο, ή το μενού Έναρξης." -#: using/windows.rst:543 +#: using/windows.rst:588 msgid "" "When the MSIX is installed, but commands are not available in the :envvar:" "`PATH` environment variable, they can be found under :file:`%LocalAppData%\\" @@ -1265,7 +1324,7 @@ msgstr "" "προσπάθεια εκτέλεσης του εκτελέσιμου απευθείας από τα Program Files δεν " "συνιστάται." -#: using/windows.rst:552 +#: using/windows.rst:597 msgid "" "To programmatically install the Python install manager, it is easiest to use " "WinGet, which is included with all supported versions of Windows:" @@ -1274,7 +1333,7 @@ msgstr "" "είναι πιο εύκολο να χρησιμοποιήσετε το WinGet, το οποίο περιλαμβάνεται σε " "όλες τις υποστηριζόμενες εκδόσεις των Windows:" -#: using/windows.rst:555 +#: using/windows.rst:600 msgid "" "$> winget install 9NQ7512CXL7T -e --accept-package-agreements --disable-" "interactivity\n" @@ -1288,7 +1347,7 @@ msgstr "" "# Optionally run the configuration checker and accept all changes\n" "$> py install --configure -y" -#: using/windows.rst:562 +#: using/windows.rst:607 msgid "" "To download the Python install manager and install on another machine, the " "following WinGet command will download the required files from the Store to " @@ -1305,7 +1364,7 @@ msgstr "" "κατεβασμένο MSIX μπορεί να εγκατασταθεί με την εκκίνηση ή τη χρήση των " "παρακάτω εντολών." -#: using/windows.rst:568 +#: using/windows.rst:613 msgid "" "$> winget download 9NQ7512CXL7T -e --skip-license --accept-package-" "agreements --accept-source-agreements" @@ -1313,7 +1372,7 @@ msgstr "" "$> winget download 9NQ7512CXL7T -e --skip-license --accept-package-" "agreements --accept-source-agreements" -#: using/windows.rst:572 +#: using/windows.rst:617 msgid "" "To programmatically install or uninstall an MSIX using only PowerShell, the " "`Add-AppxPackage`_ and `Remove-AppxPackage`_ PowerShell cmdlets are " @@ -1323,7 +1382,7 @@ msgstr "" "χρησιμοποιώντας μόνο το PowerShell, συνιστώνται τα PowerShell cmdlets `Add-" "AppxPackage`_ και `Remove-AppxPackage`_:" -#: using/windows.rst:575 +#: using/windows.rst:620 msgid "" "$> Add-AppxPackage C:\\Downloads\\python-manager-25.0.msix\n" "...\n" @@ -1335,7 +1394,7 @@ msgstr "" "$> Get-AppxPackage PythonSoftwareFoundation.PythonManager | Remove-" "AppxPackage" -#: using/windows.rst:581 +#: using/windows.rst:626 msgid "" "The latest release can be downloaded and installed by Windows by passing the " "AppInstaller file to the Add-AppxPackage command. This installs using the " @@ -1348,7 +1407,7 @@ msgstr "" "περιπτώσεις όπου η εγκατάσταση μέσω του Store (διαδραστικά ή χρησιμοποιώντας " "το WinGet) δεν είναι δυνατή." -#: using/windows.rst:586 +#: using/windows.rst:631 msgid "" "$> Add-AppxPackage -AppInstallerFile https://www.python.org/ftp/python/" "pymanager/pymanager.appinstaller" @@ -1356,7 +1415,7 @@ msgstr "" "$> Add-AppxPackage -AppInstallerFile https://www.python.org/ftp/python/" "pymanager/pymanager.appinstaller" -#: using/windows.rst:590 +#: using/windows.rst:635 msgid "" "Other tools and APIs may also be used to provision an MSIX package for all " "users on a machine, but Python does not consider this a supported scenario. " @@ -1370,7 +1429,7 @@ msgstr "" "AppxProvisionedPackage`_ cmdlet, την εγγενή κλάση Windows `PackageManager`_, " "ή την τεκμηρίωση και υποστήριξη για το εργαλείο ανάπτυξής σας." -#: using/windows.rst:596 +#: using/windows.rst:641 msgid "" "Regardless of the install method, users will still need to install their own " "copies of Python itself, as there is no way to trigger those installs " @@ -1383,7 +1442,7 @@ msgstr "" "Όταν χρησιμοποιείτε το MSIX, η τελευταία έκδοση της Python θα είναι " "διαθέσιμη για όλους τους χρήστες για εγκατάσταση χωρίς πρόσβαση στο δίκτυο." -#: using/windows.rst:601 +#: using/windows.rst:646 msgid "" "Note that the MSIX downloadable from the Store and from the Python website " "are subtly different and cannot be installed at the same time. Wherever " @@ -1400,11 +1459,11 @@ msgstr "" "στον διαχειριστή εγκατάστασης Python που να εμποδίζουν τη χρήση του πακέτου " "Store με αυτόν τον τρόπο." -#: using/windows.rst:612 -msgid "Administrative Configuration" -msgstr "Διαχειριστική Διαμόρφωση" +#: using/windows.rst:657 +msgid "Administrative configuration" +msgstr "Διαχειριστική διαμόρφωση" -#: using/windows.rst:614 +#: using/windows.rst:659 msgid "" "There are a number of options that may be useful for administrators to " "override configuration of the Python install manager. These can be used to " @@ -1419,7 +1478,7 @@ msgstr "" "ενσωματωμένου περιεχομένου. Όλες οι παραπάνω επιλογές διαμόρφωσης μπορούν να " "οριστούν, καθώς και αυτές παρακάτω." -#: using/windows.rst:619 +#: using/windows.rst:664 msgid "" "Configuration options may be overridden in the registry by setting values " "under :file:`HKEY_LOCAL_MACHINE\\\\Software\\\\Policies\\\\Python\\" @@ -1443,7 +1502,7 @@ msgstr "" "οποιαδήποτε άλλη ρυθμισμένη ρύθμιση, ενώ ``base_config`` επιτρέπει στους " "χρήστες να τροποποιούν περαιτέρω ρυθμίσεις που μπορεί να χρειαστούν." -#: using/windows.rst:629 +#: using/windows.rst:674 msgid "" "Note that most settings with environment variables support those variables " "because their default setting specifies the variable. If you override them, " @@ -1464,7 +1523,7 @@ msgstr "" "περιβάλλοντος δεν θα χρησιμοποιείται πλέον. Εάν υπερκαλύψετε την τιμή σε " "``%CONFIRM%``, τότε θα χρησιμοποιηθεί αυτή η μεταβλητή περιβάλλοντος." -#: using/windows.rst:638 +#: using/windows.rst:683 msgid "" "Configuration settings that are paths are interpreted as relative to the " "directory containing the configuration file that specified them." @@ -1472,15 +1531,15 @@ msgstr "" "Οι ρυθμίσεις διαμόρφωσης που είναι διαδρομές ερμηνεύονται ως σχετικές με τον " "κατάλογο που περιέχει το αρχείο διαμόρφωσης που τις καθόρισε." -#: using/windows.rst:641 +#: using/windows.rst:690 msgid "Administrative configuration options" msgstr "Διαχειριστικές επιλογές διαμόρφωσης" -#: using/windows.rst:1 +#: using/windows.rst:697 msgid "``base_config``" msgstr "``base_config``" -#: using/windows.rst:1 +#: using/windows.rst:698 msgid "" "The highest priority configuration file to read. Note that only the built-in " "configuration file and the registry can modify this setting." @@ -1489,27 +1548,27 @@ msgstr "" "ότι μόνο το ενσωματωμένο αρχείο διαμόρφωσης και το μητρώο μπορούν να " "τροποποιήσουν αυτήν τη ρύθμιση." -#: using/windows.rst:1 +#: using/windows.rst:702 msgid "``user_config``" msgstr "``user_config``" -#: using/windows.rst:1 +#: using/windows.rst:703 msgid "The second configuration file to read." msgstr "Το δεύτερο αρχείο διαμόρφωσης για ανάγνωση." -#: using/windows.rst:1 +#: using/windows.rst:705 msgid "``additional_config``" msgstr "``additional_config``" -#: using/windows.rst:1 +#: using/windows.rst:706 msgid "The third configuration file to read." msgstr "Το τρίτο αρχείο διαμόρφωσης για ανάγνωση." -#: using/windows.rst:1 +#: using/windows.rst:708 msgid "``registry_override_key``" msgstr "``registry_override_key``" -#: using/windows.rst:1 +#: using/windows.rst:709 msgid "" "Registry location to check for overrides. Note that only the built-in " "configuration file can modify this setting." @@ -1517,30 +1576,30 @@ msgstr "" "Τοποθεσία μητρώου για έλεγχο για υπερκαλύψεις. Σημειώστε ότι μόνο το " "ενσωματωμένο αρχείο διαμόρφωσης μπορεί να τροποποιήσει αυτήν τη ρύθμιση." -#: using/windows.rst:1 +#: using/windows.rst:712 msgid "``bundled_dir``" msgstr "``bundled_dir``" -#: using/windows.rst:1 +#: using/windows.rst:713 msgid "Read-only directory containing locally cached files." msgstr "Κατάλογος μόνο για ανάγνωση που περιέχει τοπικά αποθηκευμένα αρχεία." -#: using/windows.rst:1 +#: using/windows.rst:715 msgid "``install.fallback_source``" msgstr "``install.fallback_source``" -#: using/windows.rst:1 +#: using/windows.rst:716 msgid "" "Path or URL to an index to consult when the main index cannot be accessed." msgstr "" "Διαδρομή ή URL σε έναν ευρετήριο για συμβουλή όταν δεν είναι δυνατή η " "πρόσβαση στον κύριο ευρετήριο." -#: using/windows.rst:1 +#: using/windows.rst:718 msgid "``install.enable_shortcut_kinds``" msgstr "``install.enable_shortcut_kinds``" -#: using/windows.rst:1 +#: using/windows.rst:719 msgid "" "Comma-separated list of shortcut kinds to allow (e.g. ``\"pep514,start\"``). " "Enabled shortcuts may still be disabled by ``disable_shortcut_kinds``." @@ -1549,11 +1608,11 @@ msgstr "" "``\"pep514,start\"``). Οι ενεργοποιημένες συντομεύσεις ενδέχεται ακόμη να " "απενεργοποιηθούν από το ``disable_shortcut_kinds``." -#: using/windows.rst:1 +#: using/windows.rst:722 msgid "``install.disable_shortcut_kinds``" msgstr "``install.disable_shortcut_kinds``" -#: using/windows.rst:1 +#: using/windows.rst:723 msgid "" "Comma-separated list of shortcut kinds to exclude (e.g. ``\"pep514," "start\"``). Disabled shortcuts are not reactivated by " @@ -1563,11 +1622,11 @@ msgstr "" "``\"pep514,start\"``). Οι απενεργοποιημένες συντομεύσεις δεν " "επανενεργοποιούνται από το ``enable_shortcut_kinds``." -#: using/windows.rst:1 +#: using/windows.rst:727 msgid "``pep514_root``" msgstr "``pep514_root``" -#: using/windows.rst:1 +#: using/windows.rst:728 msgid "" "Registry location to read and write PEP 514 entries into. By default, :file:" "`HKEY_CURRENT_USER\\\\Software\\\\Python`." @@ -1575,11 +1634,11 @@ msgstr "" "Τοποθεσία μητρώου για ανάγνωση και εγγραφή καταχωρήσεων PEP 514. Από " "προεπιλογή, :file:`HKEY_CURRENT_USER\\\\Software\\\\Python`." -#: using/windows.rst:1 +#: using/windows.rst:731 msgid "``start_folder``" msgstr "``start_folder``" -#: using/windows.rst:1 +#: using/windows.rst:732 msgid "" "Start menu folder to write shortcuts into. By default, ``Python``. This path " "is relative to the user's Programs folder." @@ -1587,11 +1646,11 @@ msgstr "" "Φάκελος μενού Έναρξης για εγγραφή συντομεύσεων. Από προεπιλογή, ``Python``. " "Αυτή η διαδρομή είναι σχετική με το φάκελο Προγράμματα του χρήστη." -#: using/windows.rst:1 +#: using/windows.rst:736 msgid "``virtual_env``" msgstr "``virtual_env``" -#: using/windows.rst:1 +#: using/windows.rst:737 msgid "" "Path to the active virtual environment. By default, this is " "``%VIRTUAL_ENV%``, but may be set empty to disable venv detection." @@ -1600,11 +1659,11 @@ msgstr "" "``%VIRTUAL_ENV%``, αλλά μπορεί να οριστεί κενό για να απενεργοποιηθεί η " "ανίχνευση venv." -#: using/windows.rst:1 +#: using/windows.rst:741 msgid "``shebang_can_run_anything_silently``" msgstr "``shebang_can_run_anything_silently``" -#: using/windows.rst:1 +#: using/windows.rst:742 msgid "" "True to suppress visible warnings when a shebang launches an application " "other than a Python runtime." @@ -1612,31 +1671,19 @@ msgstr "" "True για να καταστείλει ορατές προειδοποιήσεις όταν ένα shebang εκκινεί μια " "εφαρμογή εκτός από μια εκτελέσιμη Python." -#: using/windows.rst:1480 -msgid "Installing Free-threaded Binaries" +#: using/windows.rst:1563 +msgid "Installing free-threaded binaries" msgstr "Εγκατάσταση Δυαδικών Αρχείων με Ελεύθερα Νήματα" -#: using/windows.rst:928 using/windows.rst:1482 -msgid "(Experimental)" -msgstr "(Πειραματικό)" - -#: using/windows.rst:932 using/windows.rst:1486 +#: using/windows.rst:752 msgid "" -"Everything described in this section is considered experimental, and should " -"be expected to change in future releases." +"Pre-built distributions of the free-threaded build are available by " +"installing tags with the ``t`` suffix." msgstr "" -"Όλα όσα περιγράφονται σε αυτήν την ενότητα θεωρούνται πειραματικά και θα " -"πρέπει να αναμένονται να αλλάξουν σε μελλοντικές εκδόσεις." - -#: using/windows.rst:694 -msgid "" -"Pre-built distributions of the experimental free-threaded build are " -"available by installing tags with the ``t`` suffix." -msgstr "" -"Διανεμημένες προ-κατασκευές του πειραματικού build με ελεύθερα νήματα είναι " +"Οι προ-κατασκευασμένες διανομές της έκδοσης με ελεύθερα νήματα είναι " "διαθέσιμες με την εγκατάσταση ετικετών με το επίθημα ``t``." -#: using/windows.rst:697 +#: using/windows.rst:755 msgid "" "$> py install 3.14t\n" "$> py install 3.14t-arm64\n" @@ -1646,7 +1693,7 @@ msgstr "" "$> py install 3.14t-arm64\n" "$> py install 3.14t-32" -#: using/windows.rst:703 +#: using/windows.rst:761 msgid "" "This will install and register as normal. If you have no other runtimes " "installed, then ``python`` will launch this one. Otherwise, you will need to " @@ -1660,11 +1707,11 @@ msgstr "" "τον παγκόσμιο κατάλογο ψευδωνύμων στη μεταβλητή περιβάλλοντος :envvar:" "`PATH`, τις εντολές ``python3.14t.exe``." -#: using/windows.rst:719 +#: using/windows.rst:781 msgid "Troubleshooting" msgstr "Αντιμετώπιση προβλημάτων" -#: using/windows.rst:713 +#: using/windows.rst:771 msgid "" "If your Python install manager does not seem to be working correctly, please " "work through these tests and fixes to see if it helps. If not, please report " @@ -1679,15 +1726,15 @@ msgstr "" "οποιαδήποτε σχετικά αρχεία καταγραφής (γραμμένα στον φάκελο :file:`%TEMP%` " "από προεπιλογή)." -#: using/windows.rst:1 +#: using/windows.rst:785 msgid "Symptom" msgstr "Σύμπτωμα" -#: using/windows.rst:1 +#: using/windows.rst:786 msgid "Things to try" msgstr "Πράγματα που μπορείτε να δοκιμάσετε" -#: using/windows.rst:1 +#: using/windows.rst:788 msgid "" "``python`` gives me a \"command not found\" error or opens the Store app " "when I type it in my terminal." @@ -1695,11 +1742,11 @@ msgstr "" "το ``python`` μου δίνει σφάλμα \"command not found\" ή ανοίγει την εφαρμογή " "Store όταν το πληκτρολογώ στο τερματικό μου." -#: using/windows.rst:1 +#: using/windows.rst:803 msgid "Did you :ref:`install the Python install manager `?" msgstr "Εγκαταστήσατε το :ref:`install the Python install manager `" -#: using/windows.rst:1 +#: using/windows.rst:806 msgid "" "Click Start, open \"Manage app execution aliases\", and check that the " "aliases for \"Python (default)\" are enabled. If they already are, try " @@ -1712,33 +1759,18 @@ msgstr "" "για να ανανεώσετε την εντολή. Οι εντολές \"Python (default windowed)\" και " "\"Python install manager\" ενδέχεται επίσης να χρειάζονται ανανέωση." -#: using/windows.rst:1 +#: using/windows.rst:800 msgid "Check that the ``py`` and ``pymanager`` commands work." msgstr "Ελέγξτε ότι οι εντολές ``py`` και ``pymanager`` λειτουργούν." -#: using/windows.rst:1 +#: using/windows.rst:802 msgid "" -"το ``py`` gives me a \"command not found\" error when I type it in my " -"terminal." +"``py`` gives me a \"command not found\" error when I type it in my terminal." msgstr "" -"το ``py`` μου δίνει σφάλμα \"command not found\" όταν το πληκτρολογώ στο " +"Tο ``py`` μου δίνει σφάλμα \"command not found\" όταν το πληκτρολογώ στο " "τερματικό μου." -#: using/windows.rst:1 -msgid "" -"Click Start, open \"Manage app execution aliases\", and check that the " -"aliases for \"Python install manager\" are enabled. If they already are, try " -"disabling and re-enabling to refresh the command. The \"Python (default " -"windowed)\" and \"Python install manager\" commands may also need refreshing." -msgstr "" -"Κάντε κλικ στο Έναρξη, ανοίξτε το \"Διαχείριση εκτέλεσης εφαρμογών\" και " -"ελέγξτε ότι τα aliases για το \"Python install manager\" είναι " -"ενεργοποιημένα. Εάν ήδη είναι, δοκιμάστε να τα απενεργοποιήσετε και να τα " -"ενεργοποιήσετε ξανά για να ανανεώσετε την εντολή. Οι εντολές \"Python " -"(default windowed)\" και \"Python install manager\" ενδέχεται επίσης να " -"χρειάζονται ανανέωση." - -#: using/windows.rst:1 +#: using/windows.rst:812 msgid "" "``py`` gives me a \"can't open file\" error when I type commands in my " "terminal." @@ -1746,7 +1778,7 @@ msgstr "" "το ``py`` μου δίνει σφάλμα \"can't open file\" όταν πληκτρολογώ εντολές στο " "τερματικό μου." -#: using/windows.rst:1 +#: using/windows.rst:814 msgid "" "This usually means you have the legacy launcher installed and it has " "priority over the Python install manager. To remove, click Start, open " @@ -1757,11 +1789,11 @@ msgstr "" "αφαιρέσετε, κάντε κλικ στο Έναρξη, ανοίξτε το \"Εγκατεστημένες εφαρμογές\", " "αναζητήστε το \"Python launcher\" και απεγκαταστήστε το." -#: using/windows.rst:1 +#: using/windows.rst:819 msgid "``python`` doesn't launch the same runtime as ``py``" msgstr "η ``python`` δεν ξεκινά το ίδιο runtime με το ``py``" -#: using/windows.rst:1 +#: using/windows.rst:820 msgid "" "Click Start, open \"Installed apps\", look for any existing Python runtimes, " "and either remove them or Modify and disable the :envvar:`PATH` options." @@ -1770,7 +1802,7 @@ msgstr "" "τους υπάρχοντες Python runtimes και είτε αφαιρέστε τους είτε τροποποιήστε " "και απενεργοποιήστε τις επιλογές :envvar:`PATH`." -#: using/windows.rst:1 +#: using/windows.rst:824 msgid "" "Click Start, open \"Manage app execution aliases\", and check that your " "``python.exe`` alias is set to \"Python (default)\"" @@ -1778,21 +1810,21 @@ msgstr "" "Κάντε κλικ στο Έναρξη, ανοίξτε το \"Διαχείριση εκτέλεσης εφαρμογών\" και " "ελέγξτε ότι το alias ``python.exe`` είναι ρυθμισμένο σε \"Python (default)\"" -#: using/windows.rst:1 +#: using/windows.rst:827 msgid "``python`` and ``py`` don't launch the runtime I expect" msgstr "``python`` και ``py`` δεν ξεκινούν το runtime που περιμένω" -#: using/windows.rst:1 +#: using/windows.rst:828 msgid "" -"Check your ``PYTHON_MANAGER_DEFAULT`` environment variable or " +"Check your :envvar:`PYTHON_MANAGER_DEFAULT` environment variable or " "``default_tag`` configuration. The ``py list`` command will show your " "default based on these settings." msgstr "" -"Ελέγξτε τη μεταβλητή περιβάλλοντος ``PYTHON_MANAGER_DEFAULT`` ή τη " +"Ελέγξτε τη μεταβλητή περιβάλλοντος :envvar:`PYTHON_MANAGER_DEFAULT` ή τη " "διαμόρφωση ``default_tag``. Η εντολή ``py list`` θα εμφανίσει την προεπιλογή " "σας με βάση αυτές τις ρυθμίσεις." -#: using/windows.rst:1 +#: using/windows.rst:833 msgid "" "Installs that are managed by the Python install manager will be chosen ahead " "of unmanaged installs. Use ``py install`` to install the runtime you expect, " @@ -1803,7 +1835,7 @@ msgstr "" "``py install`` για να εγκαταστήσετε το runtime που περιμένετε, ή διαμορφώστε " "την προεπιλεγμένη ετικέτα σας." -#: using/windows.rst:1 +#: using/windows.rst:839 msgid "" "Prerelease and experimental installs that are not managed by the Python " "install manager may be chosen ahead of stable releases. Configure your " @@ -1815,14 +1847,14 @@ msgstr "" "εκδόσεις. Διαμορφώστε την προεπιλεγμένη ετικέτα σας ή απεγκαταστήστε το " "runtime προέκδοσης και επανεγκαταστήστε το χρησιμοποιώντας το ``py install``." -#: using/windows.rst:1 +#: using/windows.rst:844 msgid "" "``pythonw`` or ``pyw`` don't launch the same runtime as ``python`` or ``py``" msgstr "" "``pythonw`` ή ``pyw`` δεν ξεκινούν το ίδιο runtime με το ``python`` ή το " "``py``" -#: using/windows.rst:1 +#: using/windows.rst:845 msgid "" "Click Start, open \"Manage app execution aliases\", and check that your " "``pythonw.exe`` and ``pyw.exe`` aliases are consistent with your others." @@ -1831,14 +1863,14 @@ msgstr "" "ελέγξτε ότι τα aliases σας ``pythonw.exe`` και ``pyw.exe`` είναι συνεπή με " "τα άλλα." -#: using/windows.rst:1 +#: using/windows.rst:848 msgid "" "``pip`` gives me a \"command not found\" error when I type it in my terminal." msgstr "" "Το ``pip`` μου δίνει σφάλμα \"command not found\" όταν το πληκτρολογώ στο " "τερματικό μου." -#: using/windows.rst:1 +#: using/windows.rst:849 msgid "" "Have you activated a virtual environment? Run the ``." "venv\\Scripts\\activate`` script in your terminal to activate." @@ -1846,7 +1878,7 @@ msgstr "" "Έχετε ενεργοποιήσει ένα εικονικό περιβάλλον; Εκτελέστε το script ``." "venv\\Scripts\\activate`` στο τερματικό σας για να το ενεργοποιήσετε." -#: using/windows.rst:1 +#: using/windows.rst:853 msgid "" "The package may be available but missing the generated executable. We " "recommend using the ``python -m pip`` command instead, or alternatively the " @@ -1861,11 +1893,43 @@ msgstr "" "Αυτά τα scripts είναι ξεχωριστά για κάθε runtime, και έτσι μπορεί να " "χρειαστεί να προσθέσετε πολλαπλές διαδρομές." -#: using/windows.rst:788 +#: using/windows.rst:861 +msgid "Typing ``script-name.py`` in the terminal opens in a new window." +msgstr "" +"Πληκτρολογώντας ``script-name.py`` στο τερματικό ανοίγει σε νέο παράθυρο." + +#: using/windows.rst:862 +msgid "" +"This is a known limitation of the operating system. Either specify ``py`` " +"before the script name, create a batch file containing ``@py \"%~dpn0.py\" " +"%*`` with the same name as the script, or install the `legacy launcher`_ and " +"select it as the association for scripts." +msgstr "" +"Αυτή είναι μια γνωστή περιορισμός του λειτουργικού συστήματος. Είτε " +"καθορίστε ``py`` πριν από το όνομα του script, δημιουργήστε ένα αρχείο batch " +"που περιέχει ``@py \"%~dpn0.py\" %*`` με το ίδιο όνομα με το script, είτε " +"εγκαταστήστε τον `legacy launcher`_ και επιλέξτε τον ως την συσχέτιση για τα " +"scripts." + +#: using/windows.rst:867 +msgid "Drag-dropping files onto a script doesn't work" +msgstr "Το drag-dropping αρχείων σε ένα script δεν λειτουργεί" + +#: using/windows.rst:868 +msgid "" +"This is a known limitation of the operating system. It is supported with the " +"`legacy launcher`_, or with the Python install manager when installed from " +"the MSI." +msgstr "" +"Αυτή είναι μια γνωστή περιορισμός του λειτουργικού συστήματος. Υποστηρίζεται " +"με τον `legacy launcher`_, ή με τον διαχειριστή εγκατάστασης Python όταν " +"εγκαθίσταται από το MSI." + +#: using/windows.rst:876 msgid "The embeddable package" msgstr "Το ενσωματωμένο πακέτο" -#: using/windows.rst:792 +#: using/windows.rst:880 msgid "" "The embedded distribution is a ZIP file containing a minimal Python " "environment. It is intended for acting as part of another application, " @@ -1875,7 +1939,7 @@ msgstr "" "περιβάλλον Python. Προορίζεται για δράση ως μέρος μιας άλλης εφαρμογής, αντί " "να έχει άμεση πρόσβαση από τους τελικούς χρήστες." -#: using/windows.rst:796 +#: using/windows.rst:884 msgid "" "To install an embedded distribution, we recommend using ``py install`` with " "the ``--target`` option:" @@ -1883,11 +1947,11 @@ msgstr "" "Για να εγκαταστήσετε μια ενσωματωμένη διανομή, προτείνουμε τη χρήση του ``py " "install`` με την επιλογή ``--target``:" -#: using/windows.rst:799 +#: using/windows.rst:887 msgid "$> py install 3.14-embed --target=runtime" msgstr "$> py install 3.14-embed --target=runtime" -#: using/windows.rst:803 +#: using/windows.rst:891 msgid "" "When extracted, the embedded distribution is (almost) fully isolated from " "the user's system, including environment variables, system registry " @@ -1906,7 +1970,7 @@ msgstr "" "εξαρτημένων, όπως το Idle), το pip και η τεκμηρίωση Python δεν " "συμπεριλαμβάνονται." -#: using/windows.rst:810 +#: using/windows.rst:898 msgid "" "A default ``._pth`` file is included, which further restricts the default " "search paths (as described below in :ref:`windows_finding_modules`). This " @@ -1917,7 +1981,7 @@ msgstr "" "παρακάτω στο :ref:`windows_finding_modules`). Αυτό το αρχείο προορίζεται για " "τροποποίηση από ενσωματωτές όπως είναι απαραίτητο." -#: using/windows.rst:814 +#: using/windows.rst:902 msgid "" "Third-party packages should be installed by the application installer " "alongside the embedded distribution. Using pip to manage dependencies as for " @@ -1937,18 +2001,18 @@ msgstr "" "διασφαλίσει τη συμβατότητα με νεότερες εκδόσεις προτού παρέχει ενημερώσεις " "στους χρήστες." -#: using/windows.rst:822 +#: using/windows.rst:910 msgid "" "The two recommended use cases for this distribution are described below." msgstr "" "Οι δύο προτεινόμενες περιπτώσεις χρήσης για αυτήν τη διανομή περιγράφονται " "παρακάτω." -#: using/windows.rst:825 -msgid "Python Application" +#: using/windows.rst:913 +msgid "Python application" msgstr "Εφαρμογή Python" -#: using/windows.rst:827 +#: using/windows.rst:915 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 " @@ -1962,7 +2026,7 @@ msgstr "" "ένα πακέτο εγκατάστασης. Ανάλογα με το πόσο διαφανές θα πρέπει να είναι (ή " "αντίστροφα, πόσο επαγγελματικό θα έπρεπε να φαίνεται), υπάρχουν δύο επιλογές." -#: using/windows.rst:833 +#: using/windows.rst:921 msgid "" "Using a specialized executable as a launcher requires some coding, but " "provides the most transparent experience for users. With a customized " @@ -1981,7 +2045,7 @@ msgstr "" "περιπτώσεις, ένα προσαρμοσμένο πρόγραμμα εκκίνησης θα πρέπει απλώς να μην " "μπορεί να καλεί το ``Py_Main`` με μια σκληρά κωδικοποιημένη γραμμή εντολών." -#: using/windows.rst:840 +#: using/windows.rst:928 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 " @@ -1996,7 +2060,7 @@ msgstr "" "χρήστες μπορεί να έχουν πρόβλημα να το ξεχωρίσουν από άλλες διεργασίες " "Python που εκτελούνται ή συσχετίσεις αρχείων." -#: using/windows.rst:846 +#: using/windows.rst:934 msgid "" "With the latter approach, packages should be installed as directories " "alongside the Python executable to ensure they are available on the path. " @@ -2010,11 +2074,11 @@ msgstr "" "μπορούν να βρίσκονται σε άλλες τοποθεσίες, καθώς υπάρχει η ευκαιρία να " "καθοριστεί η διαδρομή αναζήτησης πριν από την εκκίνηση της εφαρμογής." -#: using/windows.rst:852 +#: using/windows.rst:940 msgid "Embedding Python" msgstr "Ενσωμάτωση Python" -#: using/windows.rst:854 +#: using/windows.rst:942 msgid "" "Applications written in native code often require some form of scripting " "language, and the embedded Python distribution can be used for this purpose. " @@ -2032,7 +2096,7 @@ msgstr "" "εξαγωγή της ενσωματωμένης διανομής σε έναν υποκατάλογο της εγκατάστασης της " "εφαρμογής αρκεί για να παρέχει έναν διερμηνέα Python με δυνατότητα φόρτωσης." -#: using/windows.rst:861 +#: using/windows.rst:949 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 " @@ -2045,11 +2109,11 @@ msgstr "" "θεμελιώδεις διαφορές μεταξύ της χρήσης της ενσωματωμένης διανομή και μιας " "κανονικής εγκατάστασης." -#: using/windows.rst:870 +#: using/windows.rst:958 msgid "The nuget.org packages" msgstr "Τα πακέτα nuget.org" -#: using/windows.rst:874 +#: using/windows.rst:962 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 " @@ -2062,7 +2126,7 @@ msgstr "" "NET\", λειτουργεί επίσης τέλεια για πακέτα που περιέχουν εργαλεία χρόνου " "κατασκευής." -#: using/windows.rst:879 +#: using/windows.rst:967 msgid "" "Visit `nuget.org `_ for the most up-to-date " "information on using nuget. What follows is a summary that is sufficient for " @@ -2072,7 +2136,7 @@ msgstr "" "ενημερωμένες πληροφορίες σχετικά με τη χρήση του nuget. Αυτό που ακολουθεί " "είναι μια περίληψη που είναι επαρκής για προγραμματιστές Python." -#: using/windows.rst:883 +#: using/windows.rst:971 msgid "" "The ``nuget.exe`` command line tool may be downloaded directly from " "``https://aka.ms/nugetclidl``, for example, using curl or PowerShell. With " @@ -2084,7 +2148,7 @@ msgstr "" "PowerShell. Με το εργαλείο, η πιο πρόσφατη έκδοση της Python για μηχανήματα " "64-bit ή 32-bit εγκαθίστανται χρησιμοποιώντας::" -#: using/windows.rst:888 +#: using/windows.rst:976 msgid "" "nuget.exe install python -ExcludeVersion -OutputDirectory .\n" "nuget.exe install pythonx86 -ExcludeVersion -OutputDirectory ." @@ -2092,7 +2156,7 @@ msgstr "" "nuget.exe install python -ExcludeVersion -OutputDirectory .\n" "nuget.exe install pythonx86 -ExcludeVersion -OutputDirectory ." -#: using/windows.rst:891 +#: using/windows.rst:979 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 " @@ -2109,7 +2173,7 @@ msgstr "" "υποκατάλογο υπάρχει ένας κατάλογος ``tools`` που περιέχει την εγκατάσταση " "Python:" -#: using/windows.rst:898 +#: using/windows.rst:986 msgid "" "# Without -ExcludeVersion\n" "> .\\python.3.5.2\\tools\\python.exe -V\n" @@ -2127,7 +2191,7 @@ msgstr "" "> .\\python\\tools\\python.exe -V\n" "Python 3.5.2" -#: using/windows.rst:908 +#: using/windows.rst:996 msgid "" "In general, nuget packages are not upgradeable, and newer versions should be " "installed side-by-side and referenced using the full path. Alternatively, " @@ -2140,7 +2204,7 @@ msgstr "" "πακέτων με μη αυτόματο τρόπο και εγκαταστήστε τον ξανά. Πολλά συστήματα CI " "θα το κάνουν αυτόματα εάν δεν διατηρούν αρχεία μεταξύ των εκδόσεων." -#: using/windows.rst:913 +#: using/windows.rst:1001 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+" @@ -2153,7 +2217,7 @@ msgstr "" "συμπερίληψη των ρυθμίσεων θα χρησιμοποιεί αυτόματα τις κεφαλίδες και θα " "εισάγει βιβλιοθήκες στο build σας." -#: using/windows.rst:918 +#: using/windows.rst:1006 msgid "" "The package information pages on nuget.org are `www.nuget.org/packages/" "python `_ for the 64-bit version, " @@ -2167,11 +2231,11 @@ msgstr "" "έκδοση 32 bit και `www.nuget.org/packages/pythonarm64 `_ για την έκδοση ARM64." -#: using/windows.rst:926 +#: using/windows.rst:1014 msgid "Free-threaded packages" msgstr "Πακέτα με ελεύθερα νήματα" -#: using/windows.rst:935 +#: using/windows.rst:1018 msgid "" "Packages containing free-threaded binaries are named `python-freethreaded " "`_ for the 64-bit " @@ -2189,11 +2253,11 @@ msgstr "" "Αυτά τα πακέτα περιέχουν τόσο τα σημεία εισόδου ``python3.13t.exe`` όσο και " "``python.exe``, και τα δύο από τα οποία εκτελούν ελεύθερα νήματα." -#: using/windows.rst:946 +#: using/windows.rst:1029 msgid "Alternative bundles" msgstr "Εναλλακτικά πακέτα" -#: using/windows.rst:948 +#: using/windows.rst:1031 msgid "" "Besides the standard CPython distribution, there are modified packages " "including additional functionality. The following is a list of popular " @@ -2203,21 +2267,21 @@ msgstr "" "περιλαμβάνουν πρόσθετες λειτουργίες. Ακολουθεί μια λίστα με δημοφιλείς " "εκδόσεις και τα βασικά χαρακτηριστικά τους:" -#: using/windows.rst:952 +#: using/windows.rst:1035 msgid "`ActivePython `_" msgstr "`ActivePython `_" -#: using/windows.rst:953 +#: using/windows.rst:1036 msgid "Installer with multi-platform compatibility, documentation, PyWin32" msgstr "" "Πρόγραμμα εγκατάστασης με συμβατότητα πολλαπλών πλατφορμών, τεκμηρίωση, " "PyWin32" -#: using/windows.rst:955 +#: using/windows.rst:1038 msgid "`Anaconda `_" msgstr "`Anaconda `_" -#: using/windows.rst:956 +#: using/windows.rst:1039 msgid "" "Popular scientific modules (such as numpy, scipy and pandas) and the " "``conda`` package manager." @@ -2225,16 +2289,16 @@ msgstr "" "Δημοφιλείς επιστημονικά modules (όπως το numpy, scipy και pandas) και ο " "διαχειριστής πακέτων ``conda``." -#: using/windows.rst:959 +#: using/windows.rst:1042 msgid "" "`Enthought Deployment Manager `_" msgstr "`Enthought Deployment Manager `_" -#: using/windows.rst:960 +#: using/windows.rst:1043 msgid "\"The Next Generation Python Environment and Package Manager\"." msgstr "\"Η επόμενη γενικά Διαχειριστή Περιβάλλοντος και Πακέτων Python\"." -#: using/windows.rst:962 +#: using/windows.rst:1045 msgid "" "Previously Enthought provided Canopy, but it `reached end of life in 2016 " "`_." -#: using/windows.rst:965 +#: using/windows.rst:1048 msgid "`WinPython `_" msgstr "`WinPython `_" -#: using/windows.rst:966 +#: using/windows.rst:1049 msgid "" "Windows-specific distribution with prebuilt scientific packages and tools " "for building packages." @@ -2258,7 +2322,7 @@ msgstr "" "Διανομή ειδικά για Windows με προκατασκευασμένα επιστημονικά πακέτα και " "εργαλεία για την κατασκευή πακέτων." -#: using/windows.rst:969 +#: using/windows.rst:1052 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." @@ -2267,11 +2331,11 @@ msgstr "" "πρόσφατες εκδόσεις της Python ή άλλες βιβλιοθήκες και δεν διατηρούνται ή " "υποστηρίζονται από την βασική ομάδα της Python." -#: using/windows.rst:974 +#: using/windows.rst:1057 msgid "Supported Windows versions" msgstr "Υποστηριζόμενες εκδόσεις των Windows" -#: using/windows.rst:976 +#: using/windows.rst:1059 msgid "" "As specified in :pep:`11`, a Python release only supports a Windows platform " "while Microsoft considers the platform under extended support. This means " @@ -2286,11 +2350,11 @@ msgstr "" "Python 3.8. Εάν χρειάζεστε υποστήριξη Windows 8.1, εγκαταστήστε την Python " "3.12." -#: using/windows.rst:1267 -msgid "Removing the MAX_PATH Limitation" -msgstr "Κατάργηση του περιορισμού MAX_PATH" +#: using/windows.rst:1350 +msgid "Removing the MAX_PATH limitation" +msgstr "Αφαίρεση του περιορισμού MAX_PATH" -#: using/windows.rst:1269 +#: using/windows.rst:1352 msgid "" "Windows historically has limited path lengths to 260 characters. This meant " "that paths longer than this would not resolve and errors would result." @@ -2299,7 +2363,7 @@ msgstr "" "Αυτό σήμαινε ότι διαδρομές μεγαλύτερες από αυτό δεν θα επιλύονταν και θα " "προέκυπταν σφάλματα." -#: using/windows.rst:991 +#: using/windows.rst:1074 msgid "" "In the latest versions of Windows, this limitation can be expanded to over " "32,000 characters. Your administrator will need to activate the \"Enable " @@ -2313,7 +2377,7 @@ msgstr "" "να ορίσει το ``LongPathsEnabled`` σε ``1`` στο κλειδί μητρώου " "``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\FileSystem``." -#: using/windows.rst:1278 +#: using/windows.rst:1361 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." @@ -2322,18 +2386,18 @@ msgstr "" "περισσότερες άλλες λειτουργίες διαδρομής να αποδέχονται και να επιστρέφουν " "διαδρομές μεγαλύτερες από 260 χαρακτήρες." -#: using/windows.rst:999 +#: using/windows.rst:1082 msgid "" "After changing the above option and rebooting, no further configuration is " "required." msgstr "" "Μετά την αλλαγή της παραπάνω επιλογής, δεν απαιτείται περαιτέρω διαμόρφωση." -#: using/windows.rst:1006 +#: using/windows.rst:1089 msgid "UTF-8 mode" msgstr "Λειτουργία UTF-8" -#: using/windows.rst:1010 +#: using/windows.rst:1093 msgid "" "Windows still uses legacy encodings for the system encoding (the ANSI Code " "Page). Python uses it for the default encoding of text files (e.g. :func:" @@ -2344,7 +2408,7 @@ msgstr "" "χρησιμοποιεί για την προεπιλεγμένη κωδικοποίηση αρχείων κειμένου (π.χ. :func:" "`locale.getencoding`)." -#: using/windows.rst:1014 +#: using/windows.rst:1097 msgid "" "This may cause issues because UTF-8 is widely used on the internet and most " "Unix systems, including WSL (Windows Subsystem for Linux)." @@ -2353,7 +2417,7 @@ msgstr "" "στο διαδίκτυο και στα περισσότερα συστήματα Unix, συμπεριλαμβανομένου του " "WSL (Windows Subsystem for Linux)." -#: using/windows.rst:1017 +#: using/windows.rst:1100 msgid "" "You can use the :ref:`Python UTF-8 Mode ` to change the default " "text encoding to UTF-8. You can enable the :ref:`Python UTF-8 Mode ` is enabled, you can still use " "the system encoding (the ANSI Code Page) via the \"mbcs\" codec." @@ -2378,7 +2442,7 @@ msgstr "" "ακόμα να χρησιμοποιήσετε την κωδικοποίηση συστήματος (τη σελίδα κώδικα ANSI) " "μέσω του κωδικοποιητή \"mbcs\"." -#: using/windows.rst:1026 +#: using/windows.rst:1109 msgid "" "Note that adding ``PYTHONUTF8=1`` to the default environment variables will " "affect all Python 3.7+ applications on your system. If you have any Python " @@ -2393,7 +2457,7 @@ msgstr "" "περιβάλλον μεταβλητή προσωρινά ή χρησιμοποιήστε την επιλογή γραμμής εντολών " "``-X utf8``." -#: using/windows.rst:1033 +#: using/windows.rst:1116 msgid "" "Even when UTF-8 mode is disabled, Python uses UTF-8 by default on Windows " "for:" @@ -2401,11 +2465,11 @@ msgstr "" "Ακόμη και όταν η λειτουργία UTF-8 είναι απενεργοποιημένη, η Python " "χρησιμοποιεί το UTF-8 από προεπιλογή στα Windows για:" -#: using/windows.rst:1036 +#: using/windows.rst:1119 msgid "Console I/O including standard I/O (see :pep:`528` for details)." msgstr "I/O κονσόλας με τυπικό I/O (δείτε το :pep:`528` για λεπτομέρειες)." -#: using/windows.rst:1037 +#: using/windows.rst:1120 msgid "" "The :term:`filesystem encoding ` " "(see :pep:`529` for details)." @@ -2413,11 +2477,11 @@ msgstr "" "Το :term:`filesystem encoding ` " "(δείτε το :pep:`529` για λεπτομέρειες)." -#: using/windows.rst:1044 +#: using/windows.rst:1127 msgid "Finding modules" msgstr "Εύρεση modules" -#: using/windows.rst:1046 +#: using/windows.rst:1129 msgid "" "These notes supplement the description at :ref:`sys-path-init` with detailed " "Windows notes." @@ -2425,7 +2489,7 @@ msgstr "" "Αυτές οι σημειώσεις συμπληρώνουν την περιγραφή :ref:`sys-path-init` με " "λεπτομερείς σημειώσεις των Windows." -#: using/windows.rst:1049 +#: using/windows.rst:1132 msgid "" "When no ``._pth`` file is found, this is how :data:`sys.path` is populated " "on Windows:" @@ -2433,7 +2497,7 @@ msgstr "" "Όταν δεν βρεθεί αρχείο ``._pth``, συμπληρώνεται έτσι το :data:`sys.path` στα " "Windows:" -#: using/windows.rst:1052 +#: using/windows.rst:1135 msgid "" "An empty entry is added at the start, which corresponds to the current " "directory." @@ -2441,7 +2505,7 @@ msgstr "" "Μια κενή καταχώρηση προστίθεται στην αρχή, η οποία αντιστοιχεί στον τρέχοντα " "κατάλογο." -#: using/windows.rst:1055 +#: using/windows.rst:1138 msgid "" "If the environment variable :envvar:`PYTHONPATH` exists, as described in :" "ref:`using-on-envvars`, its entries are added next. Note that on Windows, " @@ -2455,7 +2519,7 @@ msgstr "" "και κάτω τελεία που χρησιμοποιείται στα αναγνωριστικά μονάδων δίσκου (``C:" "\\`` κλπ.)." -#: using/windows.rst:1060 +#: using/windows.rst:1143 msgid "" "Additional \"application paths\" can be added in the registry as subkeys of :" "samp:`\\\\SOFTWARE\\\\Python\\\\PythonCore\\\\{version}\\\\PythonPath` under " @@ -2473,7 +2537,7 @@ msgstr "" "γνωστά προγράμματα εγκατάστασης χρησιμοποιούν μόνο HKLM, επομένως το HKCU " "είναι συνήθως κενό.)" -#: using/windows.rst:1067 +#: using/windows.rst:1150 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 " @@ -2492,7 +2556,7 @@ msgstr "" "φάκελο. Διαφορετικά, η διαδρομή του πυρήνα της Python δημιουργείται από το " "PythonPath που είναι αποθηκευμένο στο μητρώο." -#: using/windows.rst:1075 +#: using/windows.rst:1158 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 " @@ -2503,7 +2567,7 @@ msgstr "" "χρησιμοποιείται μια προεπιλεγμένη διαδρομή με σχετικές καταχωρήσεις (π.χ. ``." "\\Lib;.\\plat-win``, κλπ)." -#: using/windows.rst:1079 +#: using/windows.rst:1162 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:" @@ -2512,7 +2576,7 @@ msgstr "" "στον κατάλογο ένα επίπεδο πάνω από το εκτελέσιμο αρχείο, ισχύουν οι " "ακόλουθες παραλλαγές:" -#: using/windows.rst:1082 +#: using/windows.rst:1165 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 " @@ -2522,11 +2586,11 @@ msgstr "" "έχει οριστεί, αυτή η διαδρομή χρησιμοποιείται αντί για τη διαδρομή προς το " "κύριο εκτελέσιμο κατά την εξαγωγή της αρχικής τοποθεσίας." -#: using/windows.rst:1086 +#: using/windows.rst:1169 msgid "The end result of all this is:" msgstr "Το τελικό αποτέλεσμα όλων αυτών είναι:" -#: using/windows.rst:1088 +#: using/windows.rst:1171 msgid "" "When running :file:`python.exe`, or any other .exe in the main Python " "directory (either an installed version, or directly from the PCbuild " @@ -2539,7 +2603,7 @@ msgstr "" "στο μητρώο αγνοούνται. Άλλες \"διαδρομές εφαρμογής\" στο μητρώο διαβάζονται " "πάντα." -#: using/windows.rst:1093 +#: using/windows.rst:1176 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 " @@ -2551,7 +2615,7 @@ msgstr "" "χρησιμοποιείται η βασική διαδρομή από το μητρώο. Άλλες \"διαδρομές " "εφαρμογής\" στο μητρώο διαβάζονται πάντα." -#: using/windows.rst:1097 +#: using/windows.rst:1180 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 " @@ -2561,7 +2625,7 @@ msgstr "" "(frozen .exe, κάποια πολύ περίεργη εγκατάσταση) λαμβάνετε μια διαδρομή με " "κάποιες προεπιλεγμένες, αλλά σχετικές, διαδρομές." -#: using/windows.rst:1101 +#: using/windows.rst:1184 msgid "" "For those who want to bundle Python into their application or distribution, " "the following advice will prevent conflicts with other installations:" @@ -2570,7 +2634,7 @@ msgstr "" "τους, οι ακόλουθες συμβουλές θα αποτρέψουν τις διενέξεις με άλλες " "εγκαταστάσεις:" -#: using/windows.rst:1104 +#: using/windows.rst:1187 msgid "" "Include a ``._pth`` file alongside your executable containing the " "directories to include. This will ignore paths listed in the registry and " @@ -2582,7 +2646,7 @@ msgstr "" "διαδρομές που παρατίθενται στο μητρώο και τις μεταβλητές περιβάλλοντος και " "θα αγνοήσει επίσης το :mod:`site` εκτός εάν αναφέρεται το ``import site``." -#: using/windows.rst:1109 +#: using/windows.rst:1192 msgid "" "If you are loading :file:`python3.dll` or :file:`python37.dll` in your own " "executable, explicitly set :c:member:`PyConfig.module_search_paths` before :" @@ -2592,7 +2656,7 @@ msgstr "" "εκτελέσιμο αρχείο, ορίστε ρητά το :c:member:`PyConfig.module_search_paths` " "πριν από το :c:func:`Py_InitializeFromConfig`." -#: using/windows.rst:1113 +#: using/windows.rst:1196 msgid "" "Clear and/or overwrite :envvar:`PYTHONPATH` and set :envvar:`PYTHONHOME` " "before launching :file:`python.exe` from your application." @@ -2601,7 +2665,7 @@ msgstr "" "`PYTHONHOME πριν από την εκκίνηση του :file:`python.exe` από την εφαρμογή " "σας." -#: using/windows.rst:1116 +#: using/windows.rst:1199 msgid "" "If you cannot use the previous suggestions (for example, you are a " "distribution that allows people to run :file:`python.exe` directly), ensure " @@ -2616,7 +2680,7 @@ msgstr "" "δεν θα εντοπιστεί σε ένα αρχείο ZIP, αλλά θα εντοπιστεί ένα αρχείο ZIP με το " "σωστό όνομα.)" -#: using/windows.rst:1122 +#: using/windows.rst:1205 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 " @@ -2632,7 +2696,7 @@ msgstr "" "είναι η καλύτερη, καθώς τα άλλα μπορεί να εξακολουθούν να είναι επιρρεπή σε " "μη τυπικές διαδρομές στο μητρώο και στα πακέτα ιστοτόπων χρηστών." -#: using/windows.rst:1130 +#: using/windows.rst:1213 msgid "" "Add ``._pth`` file support and removes ``applocal`` option from ``pyvenv." "cfg``." @@ -2640,7 +2704,7 @@ msgstr "" "Προσθήκη υποστήριξης αρχείου ``._pth`` και καταργείται η επιλογή " "``applocal`` από το ``pyvenv.cfg``." -#: using/windows.rst:1135 +#: using/windows.rst:1218 msgid "" "Add :file:`python{XX}.zip` as a potential landmark when directly adjacent to " "the executable." @@ -2648,7 +2712,7 @@ msgstr "" "Προσθήκη :file:`python{XX}.zip` ως πιθανό ορόσημο όταν βρίσκεται ακριβώς " "δίπλα στο εκτελέσιμο αρχείο." -#: using/windows.rst:1140 +#: using/windows.rst:1223 msgid "" "Modules specified in the registry under ``Modules`` (not ``PythonPath``) may " "be imported by :class:`importlib.machinery.WindowsRegistryFinder`. This " @@ -2661,11 +2725,11 @@ msgstr "" "Windows σε 3.6.0 και παλαιότερες εκδόσεις, αλλά ενδέχεται να πρέπει να " "προστεθεί ρητά στο :data:`sys.meta_path` στο μέλλον." -#: using/windows.rst:1146 +#: using/windows.rst:1229 msgid "Additional modules" msgstr "Πρόσθετα modules" -#: using/windows.rst:1148 +#: using/windows.rst:1231 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 " @@ -2676,7 +2740,7 @@ msgstr "" "τυπική βιβλιοθήκη όσο και στην εξωτερική, και αποσπάσματα υπάρχουν για χρήση " "αυτών των δυνατοτήτων." -#: using/windows.rst:1152 +#: using/windows.rst:1235 msgid "" "The Windows-specific standard modules are documented in :ref:`mswin-specific-" "services`." @@ -2684,11 +2748,11 @@ msgstr "" "Τα τυπικά modules ειδικά για Windows τεκμηριώνονται στο :ref:`mswin-specific-" "services`." -#: using/windows.rst:1156 +#: using/windows.rst:1239 msgid "PyWin32" msgstr "PyWin32" -#: using/windows.rst:1158 +#: using/windows.rst:1241 msgid "" "The :pypi:`PyWin32` module by Mark Hammond is a collection of modules for " "advanced Windows-specific support. This includes utilities for:" @@ -2697,7 +2761,7 @@ msgstr "" "είναι μια συλλογή από modules για προηγμένη υποστήριξη ειδικά για Windows. " "Αυτό περιλαμβάνει βοηθητικά προγράμματα για:" -#: using/windows.rst:1162 +#: using/windows.rst:1245 msgid "" "`Component Object Model `_ (COM)" @@ -2705,19 +2769,19 @@ msgstr "" "`Component Object Model `_ (COM)" -#: using/windows.rst:1165 +#: using/windows.rst:1248 msgid "Win32 API calls" msgstr "Win32 API κλήσεις" -#: using/windows.rst:1166 +#: using/windows.rst:1249 msgid "Registry" msgstr "Μητρώο" -#: using/windows.rst:1167 +#: using/windows.rst:1250 msgid "Event log" msgstr "Μητρώο συμβάντων" -#: using/windows.rst:1168 +#: using/windows.rst:1251 msgid "" "`Microsoft Foundation Classes `_ (MFC) user interfaces" @@ -2725,7 +2789,7 @@ msgstr "" "Τα `Microsoft Foundation Classes `_ (MFC) διεπαφές χρήστη" -#: using/windows.rst:1172 +#: using/windows.rst:1255 msgid "" "`PythonWin `_ is a sample MFC application shipped with PyWin32. " @@ -2736,29 +2800,29 @@ msgstr "" "αποστέλλεται με το PyWin32. Είναι ένα ενσωματωμένο IDE με ενσωματωμένο " "πρόγραμμα εντοπισμού σφαλμάτων." -#: using/windows.rst:1178 +#: using/windows.rst:1261 msgid "" "`Win32 How Do I...? `_" msgstr "" "`Win32 How Do I...? `_" -#: using/windows.rst:1179 +#: using/windows.rst:1262 msgid "by Tim Golden" msgstr "από τον Tim Golden" -#: using/windows.rst:1181 +#: using/windows.rst:1264 msgid "`Python and COM `_" msgstr "`Python and COM `_" -#: using/windows.rst:1182 +#: using/windows.rst:1265 msgid "by David and Paul Boddie" msgstr "από τους David και Paul Boddie" -#: using/windows.rst:1186 +#: using/windows.rst:1269 msgid "cx_Freeze" msgstr "cx_Freeze" -#: using/windows.rst:1188 +#: using/windows.rst:1271 msgid "" "`cx_Freeze `_ wraps Python " "scripts into executable Windows programs (:file:`{*}.exe` files). When you " @@ -2770,11 +2834,11 @@ msgstr "" "αρχεία). Όταν το κάνετε αυτό, μπορείτε να διανείμετε την εφαρμογή σας χωρίς " "να απαιτείται από τους χρήστες σας να εγκαταστήσουν την Python." -#: using/windows.rst:1195 +#: using/windows.rst:1278 msgid "Compiling Python on Windows" msgstr "Μεταγλώττιση Python στα Windows" -#: using/windows.rst:1197 +#: using/windows.rst:1280 msgid "" "If you want to compile CPython yourself, first thing you should do is get " "the `source `_. You can download " @@ -2787,7 +2851,7 @@ msgstr "" "πρόσφατης έκδοσης είτε απλώς να πάρετε μια φρέσκια έκδοση `checkout `_." -#: using/windows.rst:1202 +#: using/windows.rst:1285 msgid "" "The source tree contains a build solution and project files for Microsoft " "Visual Studio, which is the compiler used to build the official Python " @@ -2798,7 +2862,7 @@ msgstr "" "τη δημιουργία των επίσημων εκδόσεων Python. Αυτά τα αρχεία βρίσκονται στον " "κατάλογο :file:`PCbuild`." -#: using/windows.rst:1206 +#: using/windows.rst:1289 msgid "" "Check :file:`PCbuild/readme.txt` for general information on the build " "process." @@ -2806,15 +2870,15 @@ msgstr "" "Ελέγξτε το :file:`PCbuild/readme.txt` για γενικές πληροφορίες σχετικά με τη " "διαδικασία κατασκευής." -#: using/windows.rst:1208 +#: using/windows.rst:1291 msgid "For extension modules, consult :ref:`building-on-windows`." msgstr "Για modules επέκτασης, συμβουλευτείτε το :ref:`building-on-windows`." -#: using/windows.rst:1215 +#: using/windows.rst:1298 msgid "The full installer (deprecated)" msgstr "Το πλήρες πρόγραμμα εγκατάστασης" -#: using/windows.rst:1219 +#: using/windows.rst:1302 msgid "" "This installer is deprecated since 3.14 and will not be produced for Python " "3.16 or later. See :ref:`pymanager` for the modern installer." @@ -2823,11 +2887,11 @@ msgstr "" "παραχθεί για την Python 3.16 ή νεότερη έκδοση. Δείτε το :ref:`pymanager` για " "το σύγχρονο πρόγραμμα εγκατάστασης." -#: using/windows.rst:1224 +#: using/windows.rst:1307 msgid "Installation steps" msgstr "Βήματα Εγκατάστασης" -#: using/windows.rst:1226 +#: using/windows.rst:1309 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 " @@ -2846,17 +2910,17 @@ msgstr "" "προαιρετικές λειτουργίες. Δείτε το :ref:`install-layout-option` για άλλους " "τρόπους αποφυγής λήψης κατά την εγκατάσταση." -#: using/windows.rst:1234 +#: using/windows.rst:1317 msgid "After starting the installer, one of two options may be selected:" msgstr "" "Μετά την εκκίνηση του προγράμματος εγκατάστασης, μπορεί να επιλέγει μία από " "τις δύο επιλογές:" -#: using/windows.rst:1238 +#: using/windows.rst:1321 msgid "If you select \"Install Now\":" msgstr "Εάν επιλέξετε \"Install Now\":" -#: using/windows.rst:1240 +#: using/windows.rst:1323 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)" @@ -2865,11 +2929,11 @@ msgstr "" "συστήματος για τη Βιβλιοθήκη C Runtime ή εγκαταστήσετε το :ref:`launcher` " "για όλους τους χρήστες)" -#: using/windows.rst:1243 +#: using/windows.rst:1326 msgid "Python will be installed into your user directory" msgstr "Η Python θα εγκατασταθεί στον κατάλογο του χρήστη σας" -#: using/windows.rst:1244 +#: using/windows.rst:1327 msgid "" "The :ref:`launcher` will be installed according to the option at the bottom " "of the first page" @@ -2877,22 +2941,22 @@ msgstr "" "Το :ref:`launcher` θα εγκατασταθεί σύμφωνα με την επιλογή στο κάτω μέρος της " "πρώτης σελίδας" -#: using/windows.rst:1246 +#: using/windows.rst:1329 msgid "The standard library, test suite, launcher and pip will be installed" msgstr "" "Θα εγκατασταθεί η τυπική βιβλιοθήκη, η δοκιμαστική σουίτα, ο εκκινητής και " "το pip" -#: using/windows.rst:1247 +#: using/windows.rst:1330 msgid "If selected, the install directory will be added to your :envvar:`PATH`" msgstr "" "Εάν επιλεγεί, ο κατάλογος εγκατάστασης θα προστεθεί στο :envvar:`PATH` σας" -#: using/windows.rst:1248 +#: using/windows.rst:1331 msgid "Shortcuts will only be visible for the current user" msgstr "Οι συντομεύσεις θα είναι ορατές μόνο για τον τρέχοντα χρήστη" -#: using/windows.rst:1250 +#: using/windows.rst:1333 msgid "" "Selecting \"Customize installation\" will allow you to select the features " "to install, the installation location and other options or post-install " @@ -2905,7 +2969,7 @@ msgstr "" "σφαλμάτων ή δυαδικά αρχεία, θα χρειαστεί να χρησιμοποιήσετε αυτήν την " "επιλογή." -#: using/windows.rst:1254 +#: using/windows.rst:1337 msgid "" "To perform an all-users installation, you should select \"Customize " "installation\". In this case:" @@ -2913,39 +2977,39 @@ msgstr "" "Για να εκτελέσετε μια εγκατάσταση για όλους τους χρήστες, θα πρέπει να " "επιλέξετε \"Customize installation\". Σε αυτήν την περίπτωση:" -#: using/windows.rst:1257 +#: using/windows.rst:1340 msgid "You may be required to provide administrative credentials or approval" msgstr "" "Ενδέχεται να σας ζητηθεί να παρέχετε διαπιστευτήρια διαχείρισης ή έγκριση" -#: using/windows.rst:1258 +#: using/windows.rst:1341 msgid "Python will be installed into the Program Files directory" msgstr "Η Python θα εγκατασταθεί στον κατάλογο Program Files" -#: using/windows.rst:1259 +#: using/windows.rst:1342 msgid "The :ref:`launcher` will be installed into the Windows directory" msgstr "Το :ref:`launcher` θα εγκατασταθεί στον κατάλογο των Windows" -#: using/windows.rst:1260 +#: using/windows.rst:1343 msgid "Optional features may be selected during installation" msgstr "Προαιρετικά χαρακτηριστικά μπορούν να επιλεγούν κατά την εγκατάσταση" -#: using/windows.rst:1261 +#: using/windows.rst:1344 msgid "The standard library can be pre-compiled to bytecode" msgstr "Η τυπική βιβλιοθήκη μπορεί να προ-μεταγλωττιστεί σε bytecode" -#: using/windows.rst:1262 +#: using/windows.rst:1345 msgid "" "If selected, the install directory will be added to the system :envvar:`PATH`" msgstr "" "Εάν επιλεγεί, ο κατάλογος εγκατάστασης θα προστεθεί στο σύστημα :envvar:" "`PATH`" -#: using/windows.rst:1263 +#: using/windows.rst:1346 msgid "Shortcuts are available for all users" msgstr "Οι συντομεύσεις είναι διαθέσιμες για όλους τους χρήστες" -#: using/windows.rst:1272 +#: using/windows.rst:1355 msgid "" "In the latest versions of Windows, this limitation can be expanded to " "approximately 32,000 characters. Your administrator will need to activate " @@ -2959,20 +3023,20 @@ msgstr "" "``LongPathsEnabled`` σε ``1`` το κλειδί μητρώου " "``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\FileSystem``." -#: using/windows.rst:1281 +#: using/windows.rst:1364 msgid "After changing the above option, no further configuration is required." msgstr "" "Μετά την αλλαγή της παραπάνω επιλογής, δεν απαιτείται περαιτέρω διαμόρφωση." -#: using/windows.rst:1285 +#: using/windows.rst:1368 msgid "Support for long paths was enabled in Python." msgstr "Η υποστήριξη για μεγάλες διαδρομές ήταν ενεργοποιημένη στην Python." -#: using/windows.rst:1290 -msgid "Installing Without UI" +#: using/windows.rst:1373 +msgid "Installing without UI" msgstr "Εγκατάσταση χωρίς περιβάλλον διεπαφής χρήστη" -#: using/windows.rst:1292 +#: using/windows.rst:1375 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 " @@ -2986,7 +3050,7 @@ msgstr "" "οριστούν χωρίς να καταργηθεί η διεπαφή χρήστη προκειμένου να αλλάξουν " "ορισμένες από τις προεπιλογές." -#: using/windows.rst:1297 +#: using/windows.rst:1380 msgid "" "The following options (found by executing the installer with ``/?``) can be " "passed into the installer:" @@ -2994,59 +3058,59 @@ msgstr "" "Οι ακόλουθες επιλογές (που βρίσκονται εκτελώντας το πρόγραμμα εγκατάστασης " "με ``/?``) μπορούν να περάσουν στο πρόγραμμα εγκατάστασης:" -#: using/windows.rst:1321 using/windows.rst:1916 +#: using/windows.rst:1404 using/windows.rst:1994 msgid "Name" msgstr "Όνομα" -#: using/windows.rst:1303 +#: using/windows.rst:1386 msgid "/passive" msgstr "/passive" -#: using/windows.rst:1303 +#: using/windows.rst:1386 msgid "to display progress without requiring user interaction" msgstr "για εμφάνιση προόδου χωρίς να απαιτείται αλληλεπίδραση με τον χρήστη" -#: using/windows.rst:1305 +#: using/windows.rst:1388 msgid "/quiet" msgstr "/quiet" -#: using/windows.rst:1305 +#: using/windows.rst:1388 msgid "to install/uninstall without displaying any UI" msgstr "για εγκατάσταση/απεγκατάσταση χωρίς εμφάνιση διεπαφής χρήστη" -#: using/windows.rst:1307 +#: using/windows.rst:1390 msgid "/simple" msgstr "/simple" -#: using/windows.rst:1307 +#: using/windows.rst:1390 msgid "to prevent user customization" msgstr "για να αποτρέψετε την προσαρμογή του χρήστη" -#: using/windows.rst:1309 +#: using/windows.rst:1392 msgid "/uninstall" msgstr "/uninstall" -#: using/windows.rst:1309 +#: using/windows.rst:1392 msgid "to remove Python (without confirmation)" msgstr "για να αφαιρέσετε την Python (χωρίς επιβεβαίωση)" -#: using/windows.rst:1311 +#: using/windows.rst:1394 msgid "/layout [directory]" msgstr "/layout [κατάλογος]" -#: using/windows.rst:1311 +#: using/windows.rst:1394 msgid "to pre-download all components" msgstr "για προ-λήψη όλων των στοιχείων" -#: using/windows.rst:1313 +#: using/windows.rst:1396 msgid "/log [filename]" msgstr "/log [όνομα αρχείου]" -#: using/windows.rst:1313 +#: using/windows.rst:1396 msgid "to specify log files location" msgstr "για να καθορίσετε τη θέση των αρχείων καταγραφής" -#: using/windows.rst:1316 +#: using/windows.rst:1399 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 " @@ -3057,46 +3121,46 @@ msgstr "" "ενεργοποιήσετε ένα χαρακτηριστικό ή μια διαδρομή. Η πλήρης λίστα των " "διαθέσιμων επιλογών φαίνεται παρακάτω." -#: using/windows.rst:1321 +#: using/windows.rst:1404 msgid "Default" msgstr "Προεπιλογή" -#: using/windows.rst:1323 +#: using/windows.rst:1406 msgid "InstallAllUsers" msgstr "InstallAllUsers" -#: using/windows.rst:1323 +#: using/windows.rst:1406 msgid "Perform a system-wide installation." msgstr "Εκτέλεση εγκατάστασης σε όλο το σύστημα." -#: using/windows.rst:1349 using/windows.rst:1356 using/windows.rst:1387 -#: using/windows.rst:1398 +#: using/windows.rst:1432 using/windows.rst:1439 using/windows.rst:1470 +#: using/windows.rst:1481 msgid "0" msgstr "0" -#: using/windows.rst:1325 +#: using/windows.rst:1408 msgid "TargetDir" msgstr "TargetDir" -#: using/windows.rst:1325 +#: using/windows.rst:1408 msgid "The installation directory" msgstr "Ο κατάλογος εγκατάστασης" -#: using/windows.rst:1325 +#: using/windows.rst:1408 msgid "Selected based on InstallAllUsers" msgstr "Επιλέχθηκε με βάση το InstallAllUsers" -#: using/windows.rst:1328 +#: using/windows.rst:1411 msgid "DefaultAllUsersTargetDir" msgstr "DefaultAllUsersTargetDir" -#: using/windows.rst:1328 +#: using/windows.rst:1411 msgid "The default installation directory for all-user installs" msgstr "" "Ο προεπιλεγμένος κατάλογος εγκατάστασης για τις εγκαταστάσεις όλων των " "χρηστών" -#: using/windows.rst:1328 +#: using/windows.rst:1411 msgid "" ":file:`%ProgramFiles%\\\\\\ Python X.Y` or :file:`\\ %ProgramFiles(x86)%\\\\" "\\ Python X.Y`" @@ -3104,16 +3168,16 @@ msgstr "" ":file:`%ProgramFiles%\\\\\\ Python X.Y` or :file:`\\ %ProgramFiles(x86)%\\\\" "\\ Python X.Y`" -#: using/windows.rst:1333 +#: using/windows.rst:1416 msgid "DefaultJustForMeTargetDir" msgstr "DefaultJustForMeTargetDir" -#: using/windows.rst:1333 +#: using/windows.rst:1416 msgid "The default install directory for just-for-me installs" msgstr "" "Ο προεπιλεγμένος κατάλογος εγκατάστασης για εξατομικευμένες εγκαταστάσεις" -#: using/windows.rst:1333 +#: using/windows.rst:1416 msgid "" ":file:`%LocalAppData%\\\\\\ Programs\\\\Python\\\\\\ PythonXY` or :file:" "`%LocalAppData%\\\\\\ Programs\\\\Python\\\\\\ PythonXY-32` or :file:" @@ -3123,47 +3187,47 @@ msgstr "" "`%LocalAppData%\\\\\\ Programs\\\\Python\\\\\\ PythonXY-32` or :file:" "`%LocalAppData%\\\\\\ Programs\\\\Python\\\\\\ PythonXY-64`" -#: using/windows.rst:1343 +#: using/windows.rst:1426 msgid "DefaultCustomTargetDir" msgstr "DefaultCustomTargetDir" -#: using/windows.rst:1343 +#: using/windows.rst:1426 msgid "The default custom install directory displayed in the UI" msgstr "" "Ο προεπιλεγμένος κατάλογος προσαρμοσμένης εγκατάστασης που εμφανίζεται στο UI" -#: using/windows.rst:1400 +#: using/windows.rst:1483 msgid "(empty)" msgstr "(empty)" -#: using/windows.rst:1346 +#: using/windows.rst:1429 msgid "AssociateFiles" msgstr "AssociateFiles" -#: using/windows.rst:1346 +#: using/windows.rst:1429 msgid "Create file associations if the launcher is also installed." msgstr "" "Δημιουργήστε συσχετίσεις αρχείων εάν είναι επίσης εγκατεστημένο το πρόγραμμα " "εκκίνησης." -#: using/windows.rst:1360 using/windows.rst:1367 using/windows.rst:1375 -#: using/windows.rst:1381 using/windows.rst:1389 using/windows.rst:1393 +#: using/windows.rst:1443 using/windows.rst:1450 using/windows.rst:1458 +#: using/windows.rst:1464 using/windows.rst:1472 using/windows.rst:1476 msgid "1" msgstr "1" -#: using/windows.rst:1349 +#: using/windows.rst:1432 msgid "CompileAll" msgstr "CompileAll" -#: using/windows.rst:1349 +#: using/windows.rst:1432 msgid "Compile all ``.py`` files to ``.pyc``." msgstr "Μεταγλώττιση όλων των αρχείων ``.py`` σε ``.pyc``." -#: using/windows.rst:1352 +#: using/windows.rst:1435 msgid "PrependPath" msgstr "PrependPath" -#: using/windows.rst:1352 +#: using/windows.rst:1435 msgid "" "Prepend install and Scripts directories to :envvar:`PATH` and add ``.PY`` " "to :envvar:`PATHEXT`" @@ -3171,11 +3235,11 @@ msgstr "" "Προετοιμάστε τους καταλόγους εγκατάστασης και Scripts στο :envvar:`PATH` και " "προσθέστε το ``.PY`` στο :envvar:`PATHEXT`" -#: using/windows.rst:1356 +#: using/windows.rst:1439 msgid "AppendPath" msgstr "AppendPath" -#: using/windows.rst:1356 +#: using/windows.rst:1439 msgid "" "Append install and Scripts directories to :envvar:`PATH` and add ``.PY`` " "to :envvar:`PATHEXT`" @@ -3183,38 +3247,38 @@ msgstr "" "Προσθήκη καταλόγων εγκατάστασης και Scripts σε :envvar:`PATH` και προσθήκη " "``.PY`` σε :envvar:`PATHEXT`" -#: using/windows.rst:1360 +#: using/windows.rst:1443 msgid "Shortcuts" msgstr "Συντομεύσεις" -#: using/windows.rst:1360 +#: using/windows.rst:1443 msgid "" "Create shortcuts for the interpreter, documentation and IDLE if installed." msgstr "" "Δημιουργήστε συντομεύσεις για τον διερμηνέα, την τεκμηρίωση και το IDLE εάν " "είναι εγκατεστημένα." -#: using/windows.rst:1363 +#: using/windows.rst:1446 msgid "Include_doc" msgstr "Include_doc" -#: using/windows.rst:1363 +#: using/windows.rst:1446 msgid "Install Python manual" msgstr "Εγκαταστήστε το εγχειρίδιο της Python" -#: using/windows.rst:1365 +#: using/windows.rst:1448 msgid "Include_debug" msgstr "Include_debug" -#: using/windows.rst:1365 +#: using/windows.rst:1448 msgid "Install debug binaries" msgstr "Εγκαταστήστε δυαδικά αρχεία εντοπισμού σφαλμάτων" -#: using/windows.rst:1367 +#: using/windows.rst:1450 msgid "Include_dev" msgstr "Include_dev" -#: using/windows.rst:1367 +#: using/windows.rst:1450 msgid "" "Install developer headers and libraries. Omitting this may lead to an " "unusable installation." @@ -3222,11 +3286,11 @@ msgstr "" "Εγκατάσταση κεφαλίδων και βιβλιοθηκών προγραμματιστή. Η παράλειψη αυτού " "μπορεί να οδηγήσει σε μη χρησιμοποιήσιμη εγκατάσταση." -#: using/windows.rst:1371 +#: using/windows.rst:1454 msgid "Include_exe" msgstr "Include_exe" -#: using/windows.rst:1371 +#: using/windows.rst:1454 msgid "" "Install :file:`python.exe` and related files. Omitting this may lead to an " "unusable installation." @@ -3234,19 +3298,19 @@ msgstr "" "Εγκατάσταση :file:`python.exe` και σχετικών αρχείων. Η παράλειψη αυτού " "μπορεί να οδηγήσει σε μη χρησιμοποιήσιμη εγκατάσταση." -#: using/windows.rst:1375 +#: using/windows.rst:1458 msgid "Include_launcher" msgstr "Include_launcher" -#: using/windows.rst:1375 +#: using/windows.rst:1458 msgid "Install :ref:`launcher`." msgstr "Εγκαταστήστε το :ref:`launcher`." -#: using/windows.rst:1377 +#: using/windows.rst:1460 msgid "InstallLauncherAllUsers" msgstr "InstallLauncherAllUsers" -#: using/windows.rst:1377 +#: using/windows.rst:1460 msgid "" "Installs the launcher for all users. Also requires ``Include_launcher`` to " "be set to 1" @@ -3254,11 +3318,11 @@ msgstr "" "Εγκαθιστά το πρόγραμμα εκκίνησης για όλους του χρήστες. Επίσης, απαιτείται η " "ρύθμιση ``Include_launcher`` να τεθεί σε 1" -#: using/windows.rst:1381 +#: using/windows.rst:1464 msgid "Include_lib" msgstr "Include_lib" -#: using/windows.rst:1381 +#: using/windows.rst:1464 msgid "" "Install standard library and extension modules. Omitting this may lead to an " "unusable installation." @@ -3266,75 +3330,75 @@ msgstr "" "Εγκαταστήστε τυπικά module βιβλιοθήκης και επέκτασης. Η παράλειψη αυτού " "μπορεί να οδηγήσει σε μη χρησιμοποιήσιμη εγκατάσταση." -#: using/windows.rst:1385 +#: using/windows.rst:1468 msgid "Include_pip" msgstr "Include_pip" -#: using/windows.rst:1385 +#: using/windows.rst:1468 msgid "Install bundled pip and setuptools" msgstr "Εγκαταστήστε το πακέτο pip και setuptools" -#: using/windows.rst:1387 +#: using/windows.rst:1470 msgid "Include_symbols" msgstr "Include_symbols" -#: using/windows.rst:1387 +#: using/windows.rst:1470 msgid "Install debugging symbols (``*.pdb``)" msgstr "Εγκατάσταση συμβόλων εντοπισμού σφαλμάτων (``*.pdb``)" -#: using/windows.rst:1389 +#: using/windows.rst:1472 msgid "Include_tcltk" msgstr "Include_tcltk" -#: using/windows.rst:1389 +#: using/windows.rst:1472 msgid "Install Tcl/Tk support and IDLE" msgstr "Εγκατάσταση υποστήριξης Tcl/Tk και IDLE" -#: using/windows.rst:1391 +#: using/windows.rst:1474 msgid "Include_test" msgstr "Include_test" -#: using/windows.rst:1391 +#: using/windows.rst:1474 msgid "Install standard library test suite" msgstr "Εγκαταστήστε την τυπική σουίτα δοκιμών βιβλιοθήκης" -#: using/windows.rst:1393 +#: using/windows.rst:1476 msgid "Include_tools" msgstr "Include_tools" -#: using/windows.rst:1393 +#: using/windows.rst:1476 msgid "Install utility scripts" msgstr "Εγκαταστήστε βοηθητικά scripts" -#: using/windows.rst:1395 +#: using/windows.rst:1478 msgid "LauncherOnly" msgstr "LauncherOnly" -#: using/windows.rst:1395 +#: using/windows.rst:1478 msgid "Only installs the launcher. This will override most other options." msgstr "" "Εγκαθιστά μόνο το πρόγραμμα εκκίνησης. Αυτό θα παρακάμψει τις περισσότερες " "άλλες επιλογές." -#: using/windows.rst:1398 +#: using/windows.rst:1481 msgid "SimpleInstall" msgstr "SimpleInstall" -#: using/windows.rst:1398 +#: using/windows.rst:1481 msgid "Disable most install UI" msgstr "Απενεργοποιήστε τις περισσότερες διεπαφές εγκατάστασης" -#: using/windows.rst:1400 +#: using/windows.rst:1483 msgid "SimpleInstallDescription" msgstr "SimpleInstallDescription" -#: using/windows.rst:1400 +#: using/windows.rst:1483 msgid "A custom message to display when the simplified install UI is used." msgstr "" "Ένα προσαρμοσμένο μήνυμα που θα εμφανίζεται όταν χρησιμοποιείται το " "απλοποιημένο περιβάλλον διεπαφής χρήστη." -#: using/windows.rst:1404 +#: using/windows.rst:1487 msgid "" "For example, to silently install a default, system-wide Python installation, " "you could use the following command (from an elevated command prompt)::" @@ -3343,11 +3407,11 @@ msgstr "" "Python σε όλο το σύστημα, θα μπορούσατε να χρησιμοποιήσετε την ακόλουθη " "εντολή (από μια ανυψωμένη γραμμή εντολών)::" -#: using/windows.rst:1407 +#: using/windows.rst:1490 msgid "python-3.9.0.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0" msgstr "python-3.9.0.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0" -#: using/windows.rst:1409 +#: using/windows.rst:1492 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 " @@ -3358,7 +3422,7 @@ msgstr "" "μια συντόμευση με την ακόλουθη εντολή. Αυτή θα εμφανίσει μια απλοποιημένη " "αρχική σελίδα και θα απαγορεύσει την προσαρμογή::" -#: using/windows.rst:1413 +#: using/windows.rst:1496 msgid "" "python-3.9.0.exe InstallAllUsers=0 Include_launcher=0 Include_test=0\n" " SimpleInstall=1 SimpleInstallDescription=\"Just for me, no test suite.\"" @@ -3366,7 +3430,7 @@ msgstr "" "python-3.9.0.exe InstallAllUsers=0 Include_launcher=0 Include_test=0\n" " SimpleInstall=1 SimpleInstallDescription=\"Just for me, no test suite.\"" -#: using/windows.rst:1416 +#: using/windows.rst:1499 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 " @@ -3377,7 +3441,7 @@ msgstr "" "υπάρχει επίσης εγκατάσταση σε όλο το σύστημα που περιλάμβανε τη λειτουργία " "εκκίνησης.)" -#: using/windows.rst:1420 +#: using/windows.rst:1503 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 " @@ -3392,7 +3456,7 @@ msgstr "" "παρέχονται ως κείμενο στοιχείου παραμένουν πάντα ως συμβολοσειρές. Αυτό το " "αρχείο παραδείγματος ορίζει τις ίδιες επιλογές με το προηγούμενο παράδειγμα:" -#: using/windows.rst:1426 +#: using/windows.rst:1509 msgid "" "\n" " " -#: using/windows.rst:1439 -msgid "Installing Without Downloading" +#: using/windows.rst:1522 +msgid "Installing without downloading" msgstr "Εγκατάσταση χωρίς λήψη" -#: using/windows.rst:1441 +#: using/windows.rst:1524 msgid "" "As some features of Python are not included in the initial installer " "download, selecting those features may require an internet connection. To " @@ -3436,7 +3500,7 @@ msgstr "" "πραγματοποιηθεί μεγάλος αριθμός εγκαταστάσεων, είναι πολύ χρήσιμο να έχετε " "ένα αντίγραφο προσωρινής αποθήκευσης." -#: using/windows.rst:1449 +#: using/windows.rst:1532 msgid "" "Execute the following command from Command Prompt to download all possible " "required files. Remember to substitute ``python-3.9.0.exe`` for the actual " @@ -3449,22 +3513,22 @@ msgstr "" "και να δημιουργήσετε διατάξεις στους δικούς τους καταλόγους για να αποφύγετε " "συγκρούσεις μεταξύ αρχείων με το ίδιο όνομα." -#: using/windows.rst:1456 +#: using/windows.rst:1539 msgid "python-3.9.0.exe /layout [optional target directory]" msgstr "python-3.9.0.exe /layout [optional target directory]" -#: using/windows.rst:1458 +#: using/windows.rst:1541 msgid "" "You may also specify the ``/quiet`` option to hide the progress display." msgstr "" "Μπορείτε επίσης να καθορίσετε την επιλογή ``/quiet`` για απόκρυψη της " "εμφάνισης προόδου." -#: using/windows.rst:1461 +#: using/windows.rst:1544 msgid "Modifying an install" msgstr "Τροποποίηση εγκατάστασης" -#: using/windows.rst:1463 +#: using/windows.rst:1546 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 " @@ -3476,7 +3540,7 @@ msgstr "" "εγκατάστασης/Αλλαγή\" για να ανοίξετε το πρόγραμμα εγκατάστασης σε " "λειτουργία συντήρησης." -#: using/windows.rst:1467 +#: using/windows.rst:1550 msgid "" "\"Modify\" allows you to add or remove features by modifying the checkboxes " "- unchanged checkboxes will not install or remove anything. Some options " @@ -3490,7 +3554,7 @@ msgstr "" "τροποποιήσετε, θα χρειαστεί αν αφαιρέσετε και, στη συνέχεια να " "επανεγκαταστήσετε ξανά την Python." -#: using/windows.rst:1472 +#: using/windows.rst:1555 msgid "" "\"Repair\" will verify all the files that should be installed using the " "current settings and replace any that have been removed or modified." @@ -3499,7 +3563,7 @@ msgstr "" "χρησιμοποιώντας τις τρέχουσες ρυθμίσεις και θα αντικαταστήσει όσα έχουν " "αφαιρεθεί ή τροποποιηθεί." -#: using/windows.rst:1475 +#: using/windows.rst:1558 msgid "" "\"Uninstall\" will remove Python entirely, with the exception of the :ref:" "`launcher`, which has its own entry in Programs and Features." @@ -3508,7 +3572,7 @@ msgstr "" "το :ref:`launcher`, το οποίο έχει τη δική του καταχώριση στο Προγράμματα και " "Δυνατότητες." -#: using/windows.rst:1489 +#: using/windows.rst:1567 msgid "" "To install pre-built binaries with free-threading enabled (see :pep:`703`), " "you should select \"Customize installation\". The second page of options " @@ -3519,7 +3583,7 @@ msgstr "" "εγκατάσταση\". Η δεύτερη σελίδα επιλογών περιλαμβάνει το πλαίσιο επιλογής " "\"Λήψη δυαδικών αρχείων με ελεύθερο νήμα\"." -#: using/windows.rst:1495 +#: using/windows.rst:1573 msgid "" "Selecting this option will download and install additional binaries to the " "same location as the main Python install. The main executable is called " @@ -3527,8 +3591,14 @@ msgid "" "full ABI suffix. Python source files and bundled third-party dependencies " "are shared with the main install." msgstr "" +"Η επιλογή αυτής της επιλογής θα κατεβάσει και θα εγκαταστήσει πρόσθετα " +"δυαδικά αρχεία στην ίδια τοποθεσία με την κύρια εγκατάσταση Python. Το κύριο " +"εκτελέσιμο αρχείο ονομάζεται ``python3.13t.exe``, και άλλα δυαδικά αρχεία " +"είτε λαμβάνουν μια κατάληξη ``t`` είτε μια πλήρη κατάληξη ABI. Τα αρχεία " +"πηγαίου κώδικα Python και οι ενσωματωμένες εξαρτήσεις τρίτων μοιράζονται με " +"την κύρια εγκατάσταση." -#: using/windows.rst:1501 +#: using/windows.rst:1579 msgid "" "The free-threaded version is registered as a regular Python install with the " "tag ``3.13t`` (with a ``-32`` or ``-arm64`` suffix as normal for those " @@ -3539,8 +3609,18 @@ msgid "" "-3.13`` will not. If you use the short style of option, you may prefer to " "not install the free-threaded binaries at this time." msgstr "" +"Η έκδοση με ελεύθερο νήμα καταχωρείται ως κανονική εγκατάσταση Python με την " +"ετικέτα ``3.13t`` (με κατάληξη ``-32`` ή ``-arm64`` ως κανονική για αυτές " +"τις πλατφόρμες). Αυτό επιτρέπει στα εργαλεία να την ανακαλύψουν και για το :" +"ref:`launcher` να υποστηρίζει το ``py.exe -3.13t``. Σημειώστε ότι το " +"πρόγραμμα εκκίνησης θα ερμηνεύσει το ``py.exe -3`` (ή ένα shebang " +"``python3``) ως \"την τελευταία εγκατάσταση 3.x\", η οποία θα προτιμήσει τα " +"δυαδικά αρχεία με ελεύθερο νήμα έναντι των κανονικών, ενώ το ``py.exe " +"-3.13`` δεν θα το κάνει. Εάν χρησιμοποιείτε το σύντομο στυλ επιλογής, μπορεί " +"να προτιμάτε να μην εγκαταστήσετε τα δυαδικά αρχεία με ελεύθερο νήμα αυτή τη " +"στιγμή." -#: using/windows.rst:1510 +#: using/windows.rst:1588 msgid "" "To specify the install option at the command line, use " "``Include_freethreaded=1``. See :ref:`install-layout-option` for " @@ -3548,18 +3628,26 @@ msgid "" "offline install. The options to include debug symbols and binaries also " "apply to the free-threaded builds." msgstr "" +"Για να καθορίσετε την επιλογή εγκατάστασης στη γραμμή εντολών, " +"χρησιμοποιήστε ``Include_freethreaded=1``. Δείτε :ref:`install-layout-" +"option` για οδηγίες σχετικά με την προληπτική λήψη των πρόσθετων δυαδικών " +"αρχείων για εγκατάσταση εκτός σύνδεσης. Οι επιλογές για την συμπερίληψη " +"συμβόλων και δυαδικών αρχείων εντοπισμού σφαλμάτων ισχύουν επίσης για τις " +"κατασκευές με ελεύθερο νήμα." -#: using/windows.rst:1516 +#: using/windows.rst:1594 msgid "" "Free-threaded binaries are also available :ref:`on nuget.org `." msgstr "" +"Τα δυαδικά αρχεία με ελεύθερο νήμα είναι επίσης διαθέσιμα :ref:`στο nuget." +"org `." -#: using/windows.rst:1520 -msgid "Python Launcher for Windows (Deprecated)" +#: using/windows.rst:1598 +msgid "Python launcher for Windows (deprecated)" msgstr "Το πρόγραμμα εκκίνησης Python για Windows (Απαρχαιωμένο)" -#: using/windows.rst:1524 +#: using/windows.rst:1602 msgid "" "The launcher and this documentation have been superseded by the Python " "Install Manager described above. This is preserved temporarily for " @@ -3569,7 +3657,7 @@ msgstr "" "Python Install Manager που περιγράφεται παραπάνω. Αυτό διατηρείται προσωρινά " "για ιστορικό ενδιαφέρον." -#: using/windows.rst:1530 +#: using/windows.rst:1608 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-" @@ -3582,7 +3670,7 @@ msgstr "" "μια συγκεκριμένη έκδοση Python και θα εντοπίσουν και θα εκτελέσουν αυτήν την " "έκδοση." -#: using/windows.rst:1535 +#: using/windows.rst:1613 msgid "" "Unlike the :envvar:`PATH` variable, the launcher will correctly select the " "most appropriate version of Python. It will prefer per-user installations " @@ -3595,19 +3683,19 @@ msgstr "" "παραγγελίες ανά έκδοση γλώσσας αντί να χρησιμοποιεί την πιο πρόσφατα " "εγκατεστημένη έκδοση." -#: using/windows.rst:1540 +#: using/windows.rst:1618 msgid "The launcher was originally specified in :pep:`397`." msgstr "Το πρόγραμμα εκκίνησης προσδιορίστηκε αρχικά στο :pep:`397`." -#: using/windows.rst:1543 +#: using/windows.rst:1621 msgid "Getting started" msgstr "Ξεκινώντας" -#: using/windows.rst:1546 +#: using/windows.rst:1624 msgid "From the command-line" msgstr "Από τη γραμμή εντολών" -#: using/windows.rst:1550 +#: using/windows.rst:1628 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 " @@ -3621,11 +3709,11 @@ msgstr "" "πρόγραμμα εκκίνησης είναι διαθέσιμο, εκτελέστε την ακόλουθη εντολή στη " "Γραμμή Εντολών::" -#: using/windows.rst:1555 +#: using/windows.rst:1633 msgid "py" msgstr "py" -#: using/windows.rst:1557 +#: using/windows.rst:1635 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 " @@ -3635,7 +3723,7 @@ msgstr "" "εγκαταστήσει έχει ξεκινήσει - μπορεί να βγει κανονικά και τυχόν πρόσθετα " "ορίσματα γραμμής εντολών που καθορίστηκαν θα σταλούν απευθείας στην Python." -#: using/windows.rst:1561 +#: using/windows.rst:1639 msgid "" "If you have multiple versions of Python installed (e.g., 3.7 and |version|) " "you will have noticed that Python |version| was started - to launch Python " @@ -3645,11 +3733,11 @@ msgstr "" "θα έχετε παρατηρήσει ότι ξεκίνησε η Python |version| - για να εκκινήσετε την " "Python 3.7, δοκιμάστε την εντολή::" -#: using/windows.rst:1565 +#: using/windows.rst:1643 msgid "py -3.7" msgstr "py -3.7" -#: using/windows.rst:1567 +#: using/windows.rst:1645 msgid "" "If you want the latest version of Python 2 you have installed, try the " "command::" @@ -3657,17 +3745,17 @@ msgstr "" "Αν θέλετε την πιο πρόσφατη έκδοση της Python 2 που έχετε εγκαταστήσει, " "δοκιμάστε την εντολή::" -#: using/windows.rst:1570 +#: using/windows.rst:1648 msgid "py -2" msgstr "py -2" -#: using/windows.rst:1572 +#: using/windows.rst:1650 msgid "" "If you see the following error, you do not have the launcher installed::" msgstr "" "Αν δείτε το ακόλουθο σφάλμα, δεν έχετε εγκαταστήσει τον εκκινητή (launcher)::" -#: using/windows.rst:1574 +#: using/windows.rst:1652 msgid "" "'py' is not recognized as an internal or external command,\n" "operable program or batch file." @@ -3675,19 +3763,19 @@ msgstr "" "Το 'py' δεν αναγνωρίζεται ως εσωτερική ή εξωτερική εντολή,\n" "λειτουργικό πρόγραμμα ή αρχείο παρτίδας." -#: using/windows.rst:1577 +#: using/windows.rst:1655 msgid "The command::" msgstr "Η εντολή::" -#: using/windows.rst:1579 +#: using/windows.rst:1657 msgid "py --list" msgstr "py --list" -#: using/windows.rst:1581 +#: using/windows.rst:1659 msgid "displays the currently installed version(s) of Python." msgstr "εμφανίζει τις τρέχουσες εγκατεστημένες εκδόσεις της Python." -#: using/windows.rst:1583 +#: using/windows.rst:1661 msgid "" "The ``-x.y`` argument is the short form of the ``-V:Company/Tag`` argument, " "which allows selecting a specific Python runtime, including those that may " @@ -3703,7 +3791,7 @@ msgstr "" "list`` παραθέτει όλους τους διαθέσιμους χρόνους εκτέλεσης χρησιμοποιώντας τη " "μορφή ``-V:``." -#: using/windows.rst:1589 +#: using/windows.rst:1667 msgid "" "When using the ``-V:`` argument, specifying the Company will limit selection " "to runtimes from that provider, while specifying only the Tag will select " @@ -3714,7 +3802,7 @@ msgstr "" "καθορισμός μόνο της ετικέτας θα επιλέγεται από όλους τους παρόχους. " "Σημειώστε ότι η παράλειψη της καθέτου (slash) συνεπάγεται μια ετικέτα::" -#: using/windows.rst:1593 +#: using/windows.rst:1671 msgid "" "# Select any '3.*' tagged runtime\n" "py -V:3\n" @@ -3734,7 +3822,7 @@ msgstr "" "# Select PythonCore's latest Python 3 runtime\n" "py -V:PythonCore/3" -#: using/windows.rst:1602 +#: using/windows.rst:1680 msgid "" "The short form of the argument (``-3``) only ever selects from core Python " "releases, and not other distributions. However, the longer form (``-V:3``) " @@ -3744,7 +3832,7 @@ msgstr "" "εκδόσεις Python, και όχι άλλες διανομές. Ωστόσο, η μεγαλύτερη μορφή (``-" "V:3``) θα επιλέξει από οποιαδήποτε." -#: using/windows.rst:1606 +#: using/windows.rst:1684 msgid "" "The Company is matched on the full string, case-insensitive. The Tag is " "matched on either the full string, or a prefix, provided the next character " @@ -3760,11 +3848,11 @@ msgstr "" "είναι νεότερο από ``3.1``), αλλά συγκρίνονται χρησιμοποιώντας κείμενο (``-" "V:3.01`` δεν ταιριάζει με το ``3.1``)." -#: using/windows.rst:1614 +#: using/windows.rst:1692 msgid "Virtual environments" msgstr "Εικονικά Περιβάλλοντα" -#: using/windows.rst:1618 +#: using/windows.rst:1696 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 " @@ -3781,11 +3869,11 @@ msgstr "" "απενεργοποιήστε το εικονικό περιβάλλον είτε καθορίστε ρητά την καθολική " "έκδοση Python." -#: using/windows.rst:1626 +#: using/windows.rst:1704 msgid "From a script" msgstr "Από ένα script" -#: using/windows.rst:1628 +#: using/windows.rst:1706 msgid "" "Let's create a test Python script - create a file called ``hello.py`` with " "the following contents" @@ -3793,7 +3881,7 @@ msgstr "" "Ας δημιουργήσουμε ένα δοκιμαστικό Python script - δημιουργήστε ένα αρχείο " "που ονομάζεται ``hello.py`` με τα ακόλουθα περιεχόμενα" -#: using/windows.rst:1631 +#: using/windows.rst:1709 msgid "" "#! python\n" "import sys\n" @@ -3803,15 +3891,15 @@ msgstr "" "import sys\n" "sys.stdout.write(\"hello from Python %s\\n\" % (sys.version,))" -#: using/windows.rst:1637 +#: using/windows.rst:1715 msgid "From the directory in which hello.py lives, execute the command::" msgstr "Από τον κατάλογο στον οποίο ζει το hello.py, εκτελέστε την εντολή::" -#: using/windows.rst:1639 +#: using/windows.rst:1717 msgid "py hello.py" msgstr "py hello.py" -#: using/windows.rst:1641 +#: using/windows.rst:1719 msgid "" "You should notice the version number of your latest Python 2.x installation " "is printed. Now try changing the first line to be:" @@ -3819,11 +3907,11 @@ msgstr "" "Θα πρέπει να παρατηρήσετε ότι ο αριθμός έκδοσης της τελευταίας εγκατάστασης " "Python 2.x έχει εκτυπωθεί. Τώρα δοκιμάστε να αλλάξετε την πρώτη γραμμή σε:" -#: using/windows.rst:1644 +#: using/windows.rst:1722 msgid "#! python3" msgstr "#! python3" -#: using/windows.rst:1648 +#: using/windows.rst:1726 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 " @@ -3838,7 +3926,7 @@ msgstr "" "πρώτη γραμμή σε ``#! python3.7`` και θα πρέπει να βρείτε τυπωμένες τις " "πληροφορίες της έκδοσης 3.7." -#: using/windows.rst:1654 +#: using/windows.rst:1732 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 " @@ -3850,11 +3938,11 @@ msgstr "" "εγκαταστήσει. Αυτή είναι μια συμβατότητα προς τα πίσω και για συμβατότητα " "με Unix, όπου συνήθως αναφέρεται η εντολή ``python`` στην Python 2." -#: using/windows.rst:1660 +#: using/windows.rst:1738 msgid "From file associations" msgstr "Από συσχετίσεις αρχείων" -#: using/windows.rst:1662 +#: using/windows.rst:1740 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 " @@ -3869,7 +3957,7 @@ msgstr "" "μπορείτε να χρησιμοποιήσετε τις ίδιες ευκολίες που περιγράφονται παραπάνω " "για να έχετε το script να καθορίζει ποια έκδοση θα χρησιμοποιηθεί." -#: using/windows.rst:1668 +#: using/windows.rst:1746 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." @@ -3878,11 +3966,7 @@ msgstr "" "μπορεί να υποστηρίξει πολλές εκδόσεις Python ταυτόχρονα, ανάλογα με τα " "περιεχόμενα της πρώτης γραμμής." -#: using/windows.rst:1672 -msgid "Shebang Lines" -msgstr "Γραμμές Shebang" - -#: using/windows.rst:1674 +#: using/windows.rst:1752 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 " @@ -3899,7 +3983,7 @@ msgstr "" "εγκαταστάσεων με Python scripts στα Windows και τα παραπάνω παραδείγματα " "δείχνουν τη χρήση τους." -#: using/windows.rst:1681 +#: using/windows.rst:1759 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 " @@ -3910,23 +3994,23 @@ msgstr "" "'εικονικών' εντολών για να καθορίσει ποιος διερμηνέας θα χρησιμοποιηθεί. Οι " "υποστηριζόμενες εικονικές εντολές είναι:" -#: using/windows.rst:1685 +#: using/windows.rst:1763 msgid "``/usr/bin/env``" msgstr "``/usr/bin/env``" -#: using/windows.rst:1686 +#: using/windows.rst:1764 msgid "``/usr/bin/python``" msgstr "``/usr/bin/python``" -#: using/windows.rst:1687 +#: using/windows.rst:1765 msgid "``/usr/local/bin/python``" msgstr "``/usr/local/bin/python``" -#: using/windows.rst:1688 +#: using/windows.rst:1766 msgid "``python``" msgstr "``python``" -#: using/windows.rst:1702 +#: using/windows.rst:1780 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 " @@ -3942,7 +4026,7 @@ msgstr "" "χρήση της python 3.7. Εάν ένα εικονικό περιβάλλον είναι ενεργό, η έκδοση θα " "αγνοηθεί και θα χρησιμοποιηθεί το περιβάλλον." -#: using/windows.rst:1711 +#: using/windows.rst:1789 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 " @@ -3953,7 +4037,7 @@ msgstr "" "μια κύρια έκδοση και μια αρχιτεκτονική χωρίς δευτερεύοντα (δηλαδή ``/usr/" "bin/python3-64``)." -#: using/windows.rst:1717 +#: using/windows.rst:1795 msgid "" "The \"-64\" suffix is deprecated, and now implies \"any architecture that is " "not provably i386/32-bit\". To request a specific environment, use the new :" @@ -3964,7 +4048,7 @@ msgstr "" "συγκεκριμένο περιβάλλον, χρησιμοποιήστε το νέο :samp:`-V:{TAG}` όρισμα με " "την πλήρη ετικέτα." -#: using/windows.rst:1723 +#: using/windows.rst:1801 msgid "" "Virtual commands referencing ``python`` now prefer an active virtual " "environment rather than searching :envvar:`PATH`. This handles cases where " @@ -3976,7 +4060,7 @@ msgstr "" "χειρίζεται περιπτώσεις όπου το shebang καθορίζει ``/usr/bin/env python3`` " "αλλά το :file:`python3.exe` δεν υπάρχει στο ενεργό περιβάλλον." -#: using/windows.rst:1728 +#: using/windows.rst:1806 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 " @@ -3985,9 +4069,9 @@ msgid "" "program, which performs a :envvar:`PATH` search. If an executable matching " "the first argument after the ``env`` command cannot be found, but the " "argument starts with ``python``, it will be handled as described for the " -"other virtual commands. The environment variable :envvar:" -"`PYLAUNCHER_NO_SEARCH_PATH` may be set (to any value) to skip this search " -"of :envvar:`PATH`." +"other virtual commands. The environment variable :envvar:`!" +"PYLAUNCHER_NO_SEARCH_PATH` may be set (to any value) to skip this search of :" +"envvar:`PATH`." msgstr "" "Η φόρμα ``/usr/bin/env`` της γραμμής shebang έχει μια επιπλέον ειδική " "ιδιότητα. Πριν αναζητήσετε εγκατεστημένους διερμηνείς Python, αυτή η φόρμα " @@ -3997,11 +4081,11 @@ msgstr "" "μια αναζήτηση :envvar:`PATH`. Εάν δεν μπορεί να βρεθεί ένα εκτελέσιμο αρχείο " "που ταιριάζει με το πρώτο όρισμα μετά την εντολή ``env``, αλλά το όρισμα " "ξεκινά με ``python``, ο χειρισμός του θα γίνει όπως περιγράφεται για τις " -"άλλες εικονικές εντολές. Η μεταβλητή περιβάλλοντος :envvar:" -"`PYLAUNCHER_NO_SEARCH_PATH` μπορεί να οριστεί (σε οποιαδήποτε τιμή) για να " +"άλλες εικονικές εντολές. Η μεταβλητή περιβάλλοντος :envvar:`!" +"PYLAUNCHER_NO_SEARCH_PATH` μπορεί να οριστεί (σε οποιαδήποτε τιμή) για να " "παραλείψει αυτήν την αναζήτηση για :envvar:`PATH`." -#: using/windows.rst:1739 +#: using/windows.rst:1817 msgid "" "Shebang lines that do not match any of these patterns are looked up in the " "``[commands]`` section of the launcher's :ref:`.INI file `. " @@ -4020,7 +4104,7 @@ msgstr "" "διαδρομή προς το εκτελέσιμο (τα πρόσθετα ορίσματα που καθορίζονται στο .INI " "θα αναφέρονται ως μέρος του ονόματος αρχείου)." -#: using/windows.rst:1747 +#: using/windows.rst:1825 msgid "" "[commands]\n" "/bin/xpython=C:\\Program Files\\XPython\\python.exe" @@ -4028,7 +4112,7 @@ msgstr "" "[commands]\n" "/bin/xpython=C:\\Program Files\\XPython\\python.exe" -#: using/windows.rst:1752 +#: using/windows.rst:1830 msgid "" "Any commands not found in the .INI file are treated as **Windows** " "executable paths that are absolute or relative to the directory containing " @@ -4047,11 +4131,11 @@ msgstr "" "πολλαπλά ορίσματα, μετά τη διαδρομή προς το script και θα προσαρτηθούν τυχόν " "πρόσθετα ορίσματα." -#: using/windows.rst:1761 +#: using/windows.rst:1839 msgid "Arguments in shebang lines" msgstr "Ορίσματα στις γραμμές shebang" -#: using/windows.rst:1763 +#: using/windows.rst:1841 msgid "" "The shebang lines can also specify additional options to be passed to the " "Python interpreter. For example, if you have a shebang line:" @@ -4060,23 +4144,23 @@ msgstr "" "μεταβιβαστούν στον διερμηνέα Python. Για παράδειγμα, εάν έχετε μια γραμμή " "shebang:" -#: using/windows.rst:1766 +#: using/windows.rst:1844 msgid "#! /usr/bin/python -v" msgstr "#! /usr/bin/python -v" -#: using/windows.rst:1770 +#: using/windows.rst:1848 msgid "Then Python will be started with the ``-v`` option" msgstr "Στη συνέχεια, η Python θα ξεκινήσει με την επιλογή ``-v``" -#: using/windows.rst:1773 +#: using/windows.rst:1851 msgid "Customization" msgstr "Προσαρμογή" -#: using/windows.rst:1778 +#: using/windows.rst:1856 msgid "Customization via INI files" msgstr "Προσαρμογή μέσω αρχείων INI" -#: using/windows.rst:1780 +#: using/windows.rst:1858 msgid "" "Two .ini files will be searched by the launcher - ``py.ini`` in the current " "user's application data directory (``%LOCALAPPDATA%`` or ``$env:" @@ -4091,7 +4175,7 @@ msgstr "" "'κονσόλας' του προγράμματος εκκίνησης (π.χ. py.exe) όσο και για την έκδοση " "'windows' (δηλ. pyw.exe)." -#: using/windows.rst:1786 +#: using/windows.rst:1864 msgid "" "Customization specified in the \"application directory\" will have " "precedence over the one next to the executable, so a user, who may not have " @@ -4104,11 +4188,11 @@ msgstr "" "αρχείο .ini δίπλα στο πρόγραμμα εκκίνησης, μπορεί να παρακάμψει εντολές σε " "αυτό το καθολικό .ini αρχείο." -#: using/windows.rst:1791 +#: using/windows.rst:1869 msgid "Customizing default Python versions" msgstr "Προσαρμογή προεπιλεγμένων εκδόσεων Python" -#: using/windows.rst:1793 +#: using/windows.rst:1871 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 " @@ -4124,7 +4208,7 @@ msgstr "" "δευτερεύων προσδιοριστής έκδοσης. Επιπλέον, είναι δυνατό να καθοριστεί εάν " "θα ζητηθεί υλοποίηση 32 ή 64 bit προσθέτοντας \"-32\" ή \"-64\"." -#: using/windows.rst:1799 +#: using/windows.rst:1877 msgid "" "For example, a shebang line of ``#!python`` has no version qualifier, while " "``#!python3`` has a version qualifier which specifies only a major version." @@ -4133,23 +4217,23 @@ msgstr "" "έκδοσης, ενώ το ``#!python3`` έχει έναν προσδιορισμό έκδοσης που καθορίζει " "μόνο μια κύρια έκδοση." -#: using/windows.rst:1802 +#: using/windows.rst:1880 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 " +"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 "" "Εάν δεν βρεθούν κριτήρια έκδοσης σε μια εντολή, η μεταβλητή περιβάλλοντος :" -"envvar:`PY_PYTHON` μπορεί να οριστεί για να καθορίσει τον προσδιορισμό της " +"envvar:`!PY_PYTHON` μπορεί να οριστεί για να καθορίσει τον προσδιορισμό της " "προεπιλεγμένης έκδοσης. Εάν δεν έχει οριστεί, η προεπιλογή είναι \"3\", " "\"3.7\", \"3.7-32\" ή \"3.7-64\". (Σημειώστε ότι η επιλογή \"-64\" είναι " "διαθέσιμη μόνο με το πρόγραμμα εκκίνησης που περιλαμβάνεται στην Python 3.7 " "ή νεότερη έκδοση.)" -#: using/windows.rst:1809 +#: using/windows.rst:1887 msgid "" "If no minor version qualifiers are found, the environment variable " "``PY_PYTHON{major}`` (where ``{major}`` is the current major version " @@ -4168,7 +4252,7 @@ msgstr "" "πιθανό, αν και δεν είναι εγγυημένη, να είναι η πιο πρόσφατα εγκατεστημένη " "έκδοση σε αυτήν την οικογένεια." -#: using/windows.rst:1817 +#: using/windows.rst:1895 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 " @@ -4195,11 +4279,11 @@ msgstr "" "χρησιμοποιηθεί σε έναν προσδιοριστή έκδοσης για την αλλαγή αυτής της " "συμπεριφοράς." -#: using/windows.rst:1828 +#: using/windows.rst:1906 msgid "Examples:" msgstr "Παραδείγματα:" -#: using/windows.rst:1830 +#: using/windows.rst:1908 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 " @@ -4210,7 +4294,7 @@ msgstr "" "εντολή ``python3`` θα χρησιμοποιήσει την πιο πρόσφατη εγκατεστημένη Python 3." "x." -#: using/windows.rst:1834 +#: using/windows.rst:1912 msgid "" "The command ``python3.7`` will not consult any options at all as the " "versions are fully specified." @@ -4218,7 +4302,7 @@ msgstr "" "Η εντολή ``python3.7`` δεν θα συμβουλευτεί καμία απολύτως επιλογή καθώς οι " "εκδόσεις είναι πλήρως καθορισμένες." -#: using/windows.rst:1837 +#: using/windows.rst:1915 msgid "" "If ``PY_PYTHON=3``, the commands ``python`` and ``python3`` will both use " "the latest installed Python 3 version." @@ -4226,7 +4310,7 @@ msgstr "" "Εάν ``PY_PYTHON=3``, οι εντολές ``python`` και ``python3`` θα χρησιμοποιούν " "και οι δύο την πιο πρόσφατη εγκατεστημένη έκδοση Python 3." -#: using/windows.rst:1840 +#: using/windows.rst:1918 msgid "" "If ``PY_PYTHON=3.7-32``, the command ``python`` will use the 32-bit " "implementation of 3.7 whereas the command ``python3`` will use the latest " @@ -4238,7 +4322,7 @@ msgstr "" "πρόσφατη εγκατεστημένη Python (Το PY_PYTHON δεν θεωρήθηκε καθόλου καθώς " "καθορίστηκε μια κύρια έκδοση.)" -#: using/windows.rst:1845 +#: using/windows.rst:1923 msgid "" "If ``PY_PYTHON=3`` and ``PY_PYTHON3=3.7``, the commands ``python`` and " "``python3`` will both use specifically 3.7" @@ -4246,7 +4330,7 @@ msgstr "" "Εάν ``PY_PYTHON=3`` και ``PY_PYTHON3=3.7``, οι εντολές ``python`` και " "``python3`` θα χρησιμοποιούν και οι δύο συγκεκριμένα την 3.7" -#: using/windows.rst:1848 +#: using/windows.rst:1926 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 " @@ -4263,16 +4347,16 @@ msgstr "" "δεν έχουν διάκριση πεζών-κεφαλαίων.) Τα περιεχόμενα μιας μεταβλητής " "περιβάλλοντος θα αντικαταστήσουν τα στοιχεία που καθορίζονται στο αρχείο INI." -#: using/windows.rst:1855 +#: using/windows.rst:1933 msgid "For example:" msgstr "Για παράδειγμα:" -#: using/windows.rst:1857 +#: using/windows.rst:1935 msgid "Setting ``PY_PYTHON=3.7`` is equivalent to the INI file containing:" msgstr "" "Η ρύθμιση ``PY_PYTHON=3.7`` είναι ισοδύναμη με το αρχείο INI που περιέχει:" -#: using/windows.rst:1859 +#: using/windows.rst:1937 msgid "" "[defaults]\n" "python=3.7" @@ -4280,7 +4364,7 @@ msgstr "" "[defaults]\n" "python=3.7" -#: using/windows.rst:1864 +#: using/windows.rst:1942 msgid "" "Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.7`` is equivalent to the INI file " "containing:" @@ -4288,7 +4372,7 @@ msgstr "" "Η ρύθμιση ``PY_PYTHON=3`` και ``PY_PYTHON3=3.7`` ισοδυναμεί με το αρχείο INI " "που περιέχει:" -#: using/windows.rst:1867 +#: using/windows.rst:1945 msgid "" "[defaults]\n" "python=3\n" @@ -4298,20 +4382,21 @@ msgstr "" "python=3\n" "python3=3.7" -#: using/windows.rst:1874 +#: using/windows.rst:1952 msgid "Diagnostics" msgstr "Διαγνωστικά" -#: using/windows.rst:1876 +#: using/windows.rst:1954 msgid "" -"If an environment variable :envvar:`PYLAUNCHER_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. It is primarily intended for testing and debugging." +"If an environment variable :envvar:`!PYLAUNCHER_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. It is primarily intended for testing and " +"debugging." msgstr "" -"Εάν μια μεταβλητή περιβάλλοντος :envvar:`PYLAUNCHER_DEBUG` έχει οριστεί (σε " +"Εάν μια μεταβλητή περιβάλλοντος :envvar:`!PYLAUNCHER_DEBUG` έχει οριστεί (σε " "οποιαδήποτε τιμή), το πρόγραμμα εκκίνησης θα εκτυπώσει διαγνωστικές " "πληροφορίες στο stderr (δηλαδή στην κονσόλα). Ενώ αυτές οι πληροφορίες " "καταφέρνουν να είναι ταυτόχρονα αναλυτικές *και*, θα πρέπει να επιτρέπουν " @@ -4320,63 +4405,63 @@ msgstr "" "εκτέλεση του στόχου Python. Προορίζεται κυρίως για δοκιμή και εντοπισμό " "σφαλμάτων." -#: using/windows.rst:1884 -msgid "Dry Run" -msgstr "Dry Run" +#: using/windows.rst:1962 +msgid "Dry run" +msgstr "Dry run" -#: using/windows.rst:1886 +#: using/windows.rst:1964 msgid "" -"If an environment variable :envvar:`PYLAUNCHER_DRYRUN` is set (to any " +"If an environment variable :envvar:`!PYLAUNCHER_DRYRUN` is set (to any " "value), the launcher will output the command it would have run, but will not " "actually launch Python. This may be useful for tools that want to use the " "launcher to detect and then launch Python directly. Note that the command " "written to standard output is always encoded using UTF-8, and may not render " "correctly in the console." msgstr "" -"Εάν μια μεταβλητή περιβάλλοντος :envvar:`PYLAUNCHER_DRYRUN` έχει οριστεί (σε " -"οποιαδήποτε τιμή), το πρόγραμμα εκκίνησης θα δώσει την εντολή που θα " +"Εάν μια μεταβλητή περιβάλλοντος :envvar:`!PYLAUNCHER_DRYRUN` έχει οριστεί " +"(σε οποιαδήποτε τιμή), το πρόγραμμα εκκίνησης θα δώσει την εντολή που θα " "εκτελούσε, αλλά δεν θα εκκινήσει πραγματικά την Python. Αυτό μπορεί να είναι " "χρήσιμο για εργαλεία που θέλουν να χρησιμοποιήσουν το πρόγραμμα εκκίνησης " "για να εντοπιστεί και να εκκινηθεί απευθείας η Python. Σημειώστε ότι η " "εντολή που είναι γραμμένη στην τυπική έξοδο κωδικοποιείται πάντα με χρήση " "UTF-8 και ενδέχεται να μην αποδίδεται σωστά στην κονσόλα." -#: using/windows.rst:1894 +#: using/windows.rst:1972 msgid "Install on demand" msgstr "Εγκατάσταση κατ' απαίτηση" -#: using/windows.rst:1896 +#: using/windows.rst:1974 msgid "" -"If an environment variable :envvar:`PYLAUNCHER_ALLOW_INSTALL` is set (to any " -"value), and the requested Python version is not installed but is available " -"on the Microsoft Store, the launcher will attempt to install it. This may " -"require user interaction to complete, and you may need to run the command " -"again." +"If an environment variable :envvar:`!PYLAUNCHER_ALLOW_INSTALL` is set (to " +"any value), and the requested Python version is not installed but is " +"available on the Microsoft Store, the launcher will attempt to install it. " +"This may require user interaction to complete, and you may need to run the " +"command again." msgstr "" -"Εάν μια μεταβλητή περιβάλλοντος :envvar:`PYLAUNCHER_ALLOW_INSTALL` έχει " +"Εάν μια μεταβλητή περιβάλλοντος :envvar:`!PYLAUNCHER_ALLOW_INSTALL` έχει " "οριστεί (σε οποιαδήποτε τιμή), και η ζητούμενη έκδοση Python δεν είναι " "εγκατεστημένη αλλά είναι διαθέσιμη στο Microsoft Store, το πρόγραμμα " "εκκίνησης θα επιχειρήσει να την εγκαταστήσει. Αυτό μπορεί να απαιτεί την " "ολοκλήρωση της αλληλεπίδρασης του χρήστη και ίσως χρειαστεί να εκτελέσετε " "ξανά την εντολή." -#: using/windows.rst:1901 +#: using/windows.rst:1979 msgid "" -"An additional :envvar:`PYLAUNCHER_ALWAYS_INSTALL` variable causes the " +"An additional :envvar:`!PYLAUNCHER_ALWAYS_INSTALL` variable causes the " "launcher to always try to install Python, even if it is detected. This is " -"mainly intended for testing (and should be used with :envvar:" -"`PYLAUNCHER_DRYRUN`)." +"mainly intended for testing (and should be used with :envvar:`!" +"PYLAUNCHER_DRYRUN`)." msgstr "" "Μια πρόσθετη μεταβλητή :envvar:`PYLAUNCHER_ALWAYS_INSTALL` αναγκάζει το " "πρόγραμμα εκκίνησης να προσπαθεί πάντα να εγκαταστήσει την Python, ακόμα κι " "αν εντοπιστεί. Αυτό προορίζεται κυρίως για δοκιμή (και θα πρέπει να " -"χρησιμοποιείται με το :envvar:`PYLAUNCHER_DRYRUN`)." +"χρησιμοποιείται με το :envvar:`!PYLAUNCHER_DRYRUN`)." -#: using/windows.rst:1906 +#: using/windows.rst:1984 msgid "Return codes" msgstr "Επιστρεφόμενοι κωδικοί" -#: using/windows.rst:1908 +#: using/windows.rst:1986 msgid "" "The following exit codes may be returned by the Python launcher. " "Unfortunately, there is no way to distinguish these from the exit code of " @@ -4386,7 +4471,7 @@ msgstr "" "Δυστυχώς, δεν υπάρχει τρόπος να διακρίνουμε αυτούς από τον κωδικό εξόδου της " "ίδιας της Python." -#: using/windows.rst:1911 +#: using/windows.rst:1989 msgid "" "The names of codes are as used in the sources, and are only for reference. " "There is no way to access or resolve them apart from reading this page. " @@ -4397,43 +4482,43 @@ msgstr "" "ανάγνωση αυτής της σελίδας. Οι καταχωρήσεις παρατίθενται με αλφαβητική σειρά " "των ονομάτων." -#: using/windows.rst:1916 +#: using/windows.rst:1994 msgid "Value" msgstr "Τιμή" -#: using/windows.rst:1918 +#: using/windows.rst:1996 msgid "RC_BAD_VENV_CFG" msgstr "RC_BAD_VENV_CFG" -#: using/windows.rst:1918 +#: using/windows.rst:1996 msgid "107" msgstr "107" -#: using/windows.rst:1918 +#: using/windows.rst:1996 msgid "A :file:`pyvenv.cfg` was found but is corrupt." msgstr "Βρέθηκε ένα :file:`pyvenv.cfg` αλλά είναι κατεστραμμένο." -#: using/windows.rst:1920 +#: using/windows.rst:1998 msgid "RC_CREATE_PROCESS" msgstr "RC_CREATE_PROCESS" -#: using/windows.rst:1920 +#: using/windows.rst:1998 msgid "101" msgstr "101" -#: using/windows.rst:1920 +#: using/windows.rst:1998 msgid "Failed to launch Python." msgstr "Απέτυχε η εκκίνηση της Python." -#: using/windows.rst:1922 +#: using/windows.rst:2000 msgid "RC_INSTALLING" msgstr "RC_INSTALLING" -#: using/windows.rst:1922 +#: using/windows.rst:2000 msgid "111" msgstr "111" -#: using/windows.rst:1922 +#: using/windows.rst:2000 msgid "" "An install was started, but the command will need to be re-run after it " "completes." @@ -4441,51 +4526,88 @@ msgstr "" "Ξεκίνησε μια εγκατάσταση, αλλά η εντολή θα πρέπει να εκτελεστεί ξανά μετά " "την ολοκλήρωση της." -#: using/windows.rst:1925 +#: using/windows.rst:2003 msgid "RC_INTERNAL_ERROR" msgstr "RC_INTERNAL_ERROR" -#: using/windows.rst:1925 +#: using/windows.rst:2003 msgid "109" msgstr "109" -#: using/windows.rst:1925 +#: using/windows.rst:2003 msgid "Unexpected error. Please report a bug." msgstr "Απροσδόκητο σφάλμα. Αναφέρετε ένα σφάλμα." -#: using/windows.rst:1927 +#: using/windows.rst:2005 msgid "RC_NO_COMMANDLINE" msgstr "RC_NO_COMMANDLINE" -#: using/windows.rst:1927 +#: using/windows.rst:2005 msgid "108" msgstr "108" -#: using/windows.rst:1927 +#: using/windows.rst:2005 msgid "Unable to obtain command line from the operating system." msgstr "" "Δεν είναι δυνατή η λήψη της γραμμής εντολών από το λειτουργικό σύστημα." -#: using/windows.rst:1930 +#: using/windows.rst:2008 msgid "RC_NO_PYTHON" msgstr "RC_NO_PYTHON" -#: using/windows.rst:1930 +#: using/windows.rst:2008 msgid "103" msgstr "103" -#: using/windows.rst:1930 +#: using/windows.rst:2008 msgid "Unable to locate the requested version." msgstr "Δεν είναι δυνατός ο εντοπισμός της ζητούμενης έκδοσης." -#: using/windows.rst:1932 +#: using/windows.rst:2010 msgid "RC_NO_VENV_CFG" msgstr "RC_NO_VENV_CFG" -#: using/windows.rst:1932 +#: using/windows.rst:2010 msgid "106" msgstr "106" -#: using/windows.rst:1932 +#: using/windows.rst:2010 msgid "A :file:`pyvenv.cfg` was required but not found." msgstr "Απαιτήθηκε ένα :file:`pyvenv.cfg` αλλά δεν βρέθηκε." + +#~ msgid "``PYTHON_MANAGER_DEFAULT``" +#~ msgstr "``PYTHON_MANAGER_DEFAULT``" + +#~ msgid "(Experimental)" +#~ msgstr "(Πειραματικό)" + +#~ msgid "" +#~ "Everything described in this section is considered experimental, and " +#~ "should be expected to change in future releases." +#~ msgstr "" +#~ "Όλα όσα περιγράφονται σε αυτήν την ενότητα θεωρούνται πειραματικά και θα " +#~ "πρέπει να αναμένονται να αλλάξουν σε μελλοντικές εκδόσεις." + +#~ msgid "" +#~ "το ``py`` gives me a \"command not found\" error when I type it in my " +#~ "terminal." +#~ msgstr "" +#~ "το ``py`` μου δίνει σφάλμα \"command not found\" όταν το πληκτρολογώ στο " +#~ "τερματικό μου." + +#~ msgid "" +#~ "Click Start, open \"Manage app execution aliases\", and check that the " +#~ "aliases for \"Python install manager\" are enabled. If they already are, " +#~ "try disabling and re-enabling to refresh the command. The \"Python " +#~ "(default windowed)\" and \"Python install manager\" commands may also " +#~ "need refreshing." +#~ msgstr "" +#~ "Κάντε κλικ στο Έναρξη, ανοίξτε το \"Διαχείριση εκτέλεσης εφαρμογών\" και " +#~ "ελέγξτε ότι τα aliases για το \"Python install manager\" είναι " +#~ "ενεργοποιημένα. Εάν ήδη είναι, δοκιμάστε να τα απενεργοποιήσετε και να τα " +#~ "ενεργοποιήσετε ξανά για να ανανεώσετε την εντολή. Οι εντολές \"Python " +#~ "(default windowed)\" και \"Python install manager\" ενδέχεται επίσης να " +#~ "χρειάζονται ανανέωση." + +#~ msgid "Shebang Lines" +#~ msgstr "Γραμμές Shebang" diff --git a/whatsnew/2.0.po b/whatsnew/2.0.po index ed9184a6..dbaebf85 100644 --- a/whatsnew/2.0.po +++ b/whatsnew/2.0.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -943,15 +943,15 @@ 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) )``." +"as :meth:`~list.append` and :meth:`~list.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 "" -#: whatsnew/2.0.rst:665 +#: whatsnew/2.0.rst:666 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 " @@ -963,7 +963,7 @@ msgid "" "this isn't recommended." msgstr "" -#: whatsnew/2.0.rst:673 +#: whatsnew/2.0.rst:674 msgid "" "Some of the functions in the :mod:`socket` module are still forgiving in " "this way. For example, ``socket.connect( ('hostname', 25) )`` is the " @@ -979,7 +979,7 @@ msgid "" "version." msgstr "" -#: whatsnew/2.0.rst:684 +#: whatsnew/2.0.rst:685 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 " @@ -987,7 +987,7 @@ msgid "" "``\\x56``." msgstr "" -#: whatsnew/2.0.rst:688 +#: whatsnew/2.0.rst:689 msgid "" "The :exc:`AttributeError` and :exc:`NameError` exceptions have a more " "friendly error message, whose text will be something like ``'Spam' instance " @@ -996,7 +996,7 @@ msgid "" "to take advantage of this fact will break in 2.0." msgstr "" -#: whatsnew/2.0.rst:694 +#: whatsnew/2.0.rst:695 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 " @@ -1013,7 +1013,7 @@ msgid "" "2L**64`` will produce the string ``18446744073709551616``." msgstr "" -#: whatsnew/2.0.rst:708 +#: whatsnew/2.0.rst:709 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 " @@ -1024,7 +1024,7 @@ msgid "" "the final digit." msgstr "" -#: whatsnew/2.0.rst:716 +#: whatsnew/2.0.rst:717 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:`!" @@ -1035,7 +1035,7 @@ msgid "" "``'8.1'``." msgstr "" -#: whatsnew/2.0.rst:724 +#: whatsnew/2.0.rst:725 msgid "" "The ``-X`` command-line option, which turned all standard exceptions into " "strings instead of classes, has been removed; the standard exceptions will " @@ -1044,11 +1044,11 @@ msgid "" "written by Barry Warsaw and Fredrik Lundh." msgstr "" -#: whatsnew/2.0.rst:740 +#: whatsnew/2.0.rst:741 msgid "Extending/Embedding Changes" msgstr "" -#: whatsnew/2.0.rst:742 +#: whatsnew/2.0.rst:743 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 " @@ -1056,7 +1056,7 @@ msgid "" "safely skip this section." msgstr "" -#: whatsnew/2.0.rst:747 +#: whatsnew/2.0.rst:748 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 " @@ -1065,7 +1065,7 @@ msgid "" "exception and the import will fail." msgstr "" -#: whatsnew/2.0.rst:753 +#: whatsnew/2.0.rst:754 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:" @@ -1074,7 +1074,7 @@ msgid "" "use the more natural ``if isinstance(obj, myExtensionClass)``." msgstr "" -#: whatsnew/2.0.rst:759 +#: whatsnew/2.0.rst:760 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 " @@ -1085,7 +1085,7 @@ msgid "" "into a single file, :file:`Include/pyport.h`." msgstr "" -#: whatsnew/2.0.rst:767 +#: whatsnew/2.0.rst:768 msgid "" "Vladimir Marangozov's long-awaited malloc restructuring was completed, to " "make it easy to have the Python interpreter use a custom allocator instead " @@ -1095,7 +1095,7 @@ msgid "" "archives of the 'patches' and 'python-dev' lists at python.org." msgstr "" -#: whatsnew/2.0.rst:774 +#: whatsnew/2.0.rst:775 msgid "" "Recent versions of the GUSI development environment for MacOS support POSIX " "threads. Therefore, Python's POSIX threading support now works on the " @@ -1103,7 +1103,7 @@ msgid "" "also contributed." msgstr "" -#: whatsnew/2.0.rst:779 +#: whatsnew/2.0.rst:780 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 " @@ -1113,14 +1113,14 @@ msgid "" "These improvements were contributed by Yakov Markovitch." msgstr "" -#: whatsnew/2.0.rst:786 +#: whatsnew/2.0.rst:787 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 "" -#: whatsnew/2.0.rst:790 +#: whatsnew/2.0.rst:791 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 " @@ -1129,7 +1129,7 @@ msgid "" "Charles G. Waldman raises the limit from ``2**16`` to ``2**32``." msgstr "" -#: whatsnew/2.0.rst:796 +#: whatsnew/2.0.rst:797 msgid "" "Three new convenience functions intended for adding constants to a module's " "dictionary at module initialization time were added: :c:func:" @@ -1140,18 +1140,18 @@ msgid "" "argument is, respectively, a Python object, a C long, or a C string." msgstr "" -#: whatsnew/2.0.rst:804 +#: whatsnew/2.0.rst:805 msgid "" "A wrapper API was added for Unix-style signal handlers. :c:func:" "`PyOS_getsig` gets a signal handler and :c:func:`PyOS_setsig` will set a new " "handler." msgstr "" -#: whatsnew/2.0.rst:811 +#: whatsnew/2.0.rst:812 msgid "Distutils: Making Modules Easy to Install" msgstr "" -#: whatsnew/2.0.rst:813 +#: whatsnew/2.0.rst:814 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 " @@ -1163,7 +1163,7 @@ msgid "" "something of a chore." msgstr "" -#: whatsnew/2.0.rst:821 +#: whatsnew/2.0.rst:822 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 " @@ -1179,40 +1179,40 @@ msgid "" "directories, and more." msgstr "" -#: whatsnew/2.0.rst:833 +#: whatsnew/2.0.rst:834 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 "" -#: whatsnew/2.0.rst:837 +#: whatsnew/2.0.rst:838 msgid "" "from distutils.core import setup\n" "setup (name = \"foo\", version = \"1.0\",\n" " py_modules = [\"module1\", \"module2\"])" msgstr "" -#: whatsnew/2.0.rst:841 +#: whatsnew/2.0.rst:842 msgid "" "The :file:`setup.py` file isn't much more complicated if the software " "consists of a few packages::" msgstr "" -#: whatsnew/2.0.rst:844 +#: whatsnew/2.0.rst:845 msgid "" "from distutils.core import setup\n" "setup (name = \"foo\", version = \"1.0\",\n" " packages = [\"package\", \"package.subpackage\"])" msgstr "" -#: whatsnew/2.0.rst:848 +#: whatsnew/2.0.rst:849 msgid "" "A C extension can be the most complicated case; here's an example taken from " "the PyXML package::" msgstr "" -#: whatsnew/2.0.rst:851 +#: whatsnew/2.0.rst:852 msgid "" "from distutils.core import setup, Extension\n" "\n" @@ -1228,7 +1228,7 @@ msgid "" " ext_modules =[ expat_extension ] )" msgstr "" -#: whatsnew/2.0.rst:864 +#: whatsnew/2.0.rst:865 msgid "" "The Distutils can also take care of creating source and binary " "distributions. The \"sdist\" command, run by \"``python setup.py sdist``', " @@ -1240,17 +1240,17 @@ msgid "" "are in various stages of development." msgstr "" -#: whatsnew/2.0.rst:873 +#: whatsnew/2.0.rst:874 msgid "" "All this is documented in a new manual, *Distributing Python Modules*, that " "joins the basic set of Python documentation." msgstr "" -#: whatsnew/2.0.rst:880 +#: whatsnew/2.0.rst:881 msgid "XML Modules" msgstr "" -#: whatsnew/2.0.rst:882 +#: whatsnew/2.0.rst:883 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 " @@ -1265,11 +1265,11 @@ msgid "" "also working on improved documentation." msgstr "" -#: whatsnew/2.0.rst:896 +#: whatsnew/2.0.rst:897 msgid "SAX2 Support" msgstr "" -#: whatsnew/2.0.rst:898 +#: whatsnew/2.0.rst:899 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 " @@ -1281,7 +1281,7 @@ msgid "" "chunk of character data, and so forth." msgstr "" -#: whatsnew/2.0.rst:906 +#: whatsnew/2.0.rst:907 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 " @@ -1290,14 +1290,14 @@ msgid "" "structure in some elaborate way." msgstr "" -#: whatsnew/2.0.rst:912 +#: whatsnew/2.0.rst:913 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 "" -#: whatsnew/2.0.rst:916 +#: whatsnew/2.0.rst:917 msgid "" "from xml import sax\n" "\n" @@ -1319,17 +1319,17 @@ msgid "" "parser.parse( 'hamlet.xml' )" msgstr "" -#: whatsnew/2.0.rst:935 +#: whatsnew/2.0.rst:936 msgid "" "For more information, consult the Python documentation, or the XML HOWTO at " "https://pyxml.sourceforge.net/topics/howto/xml-howto.html." msgstr "" -#: whatsnew/2.0.rst:940 +#: whatsnew/2.0.rst:941 msgid "DOM Support" msgstr "" -#: whatsnew/2.0.rst:942 +#: whatsnew/2.0.rst:943 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, " @@ -1341,7 +1341,7 @@ msgid "" "the tree back into XML." msgstr "" -#: whatsnew/2.0.rst:950 +#: whatsnew/2.0.rst:951 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 " @@ -1351,7 +1351,7 @@ msgid "" "file." msgstr "" -#: whatsnew/2.0.rst:956 +#: whatsnew/2.0.rst:957 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 " @@ -1359,13 +1359,13 @@ msgid "" "convenience functions are provided for generating a DOM tree::" msgstr "" -#: whatsnew/2.0.rst:961 +#: whatsnew/2.0.rst:962 msgid "" "from xml.dom import minidom\n" "doc = minidom.parse('hamlet.xml')" msgstr "" -#: whatsnew/2.0.rst:964 +#: whatsnew/2.0.rst:965 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 " @@ -1377,31 +1377,31 @@ msgid "" "with a given tag name. Continuing from the previous 2-line example::" msgstr "" -#: whatsnew/2.0.rst:973 +#: whatsnew/2.0.rst:974 msgid "" "perslist = doc.getElementsByTagName( 'PERSONA' )\n" "print perslist[0].toxml()\n" "print perslist[1].toxml()" msgstr "" -#: whatsnew/2.0.rst:977 +#: whatsnew/2.0.rst:978 msgid "For the *Hamlet* XML file, the above few lines output::" msgstr "" -#: whatsnew/2.0.rst:979 +#: whatsnew/2.0.rst:980 msgid "" "CLAUDIUS, king of Denmark. \n" "HAMLET, son to the late, and nephew to the present king." msgstr "" -#: whatsnew/2.0.rst:982 +#: whatsnew/2.0.rst:983 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 "" -#: whatsnew/2.0.rst:985 +#: whatsnew/2.0.rst:986 msgid "" "root = doc.documentElement\n" "\n" @@ -1416,17 +1416,17 @@ msgid "" "root.insertBefore( root.childNodes[0], root.childNodes[20] )" msgstr "" -#: whatsnew/2.0.rst:997 +#: whatsnew/2.0.rst:998 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 "" -#: whatsnew/2.0.rst:1002 +#: whatsnew/2.0.rst:1003 msgid "Relationship to PyXML" msgstr "" -#: whatsnew/2.0.rst:1004 +#: whatsnew/2.0.rst:1005 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 " @@ -1436,7 +1436,7 @@ msgid "" "compatibility with the 2.0 :mod:`xml` package." msgstr "" -#: whatsnew/2.0.rst:1010 +#: whatsnew/2.0.rst:1011 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. " @@ -1448,23 +1448,23 @@ msgid "" "features. Some of the additional features in PyXML include:" msgstr "" -#: whatsnew/2.0.rst:1019 +#: whatsnew/2.0.rst:1020 msgid "4DOM, a full DOM implementation from FourThought, Inc." msgstr "" -#: whatsnew/2.0.rst:1021 +#: whatsnew/2.0.rst:1022 msgid "The xmlproc validating parser, written by Lars Marius Garshol." msgstr "" -#: whatsnew/2.0.rst:1023 +#: whatsnew/2.0.rst:1024 msgid "The :mod:`!sgmlop` parser accelerator module, written by Fredrik Lundh." msgstr "" -#: whatsnew/2.0.rst:1029 +#: whatsnew/2.0.rst:1030 msgid "Module changes" msgstr "" -#: whatsnew/2.0.rst:1031 +#: whatsnew/2.0.rst:1032 msgid "" "Lots of improvements and bugfixes were made to Python's extensive standard " "library; some of the affected modules include :mod:`readline`, :mod:" @@ -1474,7 +1474,7 @@ msgid "" "the exact patch-by-patch details." msgstr "" -#: whatsnew/2.0.rst:1037 +#: whatsnew/2.0.rst:1038 msgid "" "Brian Gallew contributed OpenSSL support for the :mod:`socket` module. " "OpenSSL is an implementation of the Secure Socket Layer, which encrypts the " @@ -1486,20 +1486,20 @@ msgid "" "though no one has implemented FTP or SMTP over SSL." msgstr "" -#: whatsnew/2.0.rst:1046 +#: whatsnew/2.0.rst:1047 msgid "" "The :mod:`httplib ` module has been rewritten by Greg Stein to support " "HTTP/1.1." msgstr "" -#: whatsnew/2.0.rst:1048 +#: whatsnew/2.0.rst:1049 msgid "" "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 "" -#: whatsnew/2.0.rst:1052 +#: whatsnew/2.0.rst:1053 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 " @@ -1508,7 +1508,7 @@ msgid "" "``create_polygon`` much faster, especially when using lots of coordinates." msgstr "" -#: whatsnew/2.0.rst:1058 +#: whatsnew/2.0.rst:1059 msgid "" "The :mod:`curses` module has been greatly extended, starting from Oliver " "Andrich's enhanced version, to provide many additional functions from " @@ -1518,7 +1518,7 @@ msgid "" "currently maintained OSes that fall into this category." msgstr "" -#: whatsnew/2.0.rst:1065 +#: whatsnew/2.0.rst:1066 msgid "" "As mentioned in the earlier discussion of 2.0's Unicode support, the " "underlying implementation of the regular expressions provided by the :mod:" @@ -1527,18 +1527,18 @@ msgid "" "against both 8-bit strings and Unicode strings." msgstr "" -#: whatsnew/2.0.rst:1075 +#: whatsnew/2.0.rst:1076 msgid "New modules" msgstr "" -#: whatsnew/2.0.rst:1077 +#: whatsnew/2.0.rst:1078 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 "" -#: whatsnew/2.0.rst:1081 +#: whatsnew/2.0.rst:1082 msgid "" ":mod:`atexit`: For registering functions to be called before the Python " "interpreter exits. Code that currently sets ``sys.exitfunc`` directly should " @@ -1547,20 +1547,20 @@ msgid "" "(Contributed by Skip Montanaro.)" msgstr "" -#: whatsnew/2.0.rst:1087 +#: whatsnew/2.0.rst:1088 msgid "" ":mod:`codecs`, :mod:`!encodings`, :mod:`unicodedata`: Added as part of the " "new Unicode support." msgstr "" -#: whatsnew/2.0.rst:1090 +#: whatsnew/2.0.rst:1091 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 "" -#: whatsnew/2.0.rst:1094 +#: whatsnew/2.0.rst:1095 msgid "" ":mod:`gettext`: This module provides internationalization (I18N) and " "localization (L10N) support for Python programs by providing an interface to " @@ -1569,14 +1569,14 @@ msgid "" "Henstridge.)" msgstr "" -#: whatsnew/2.0.rst:1099 +#: whatsnew/2.0.rst:1100 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 "" -#: whatsnew/2.0.rst:1103 +#: whatsnew/2.0.rst:1104 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 " @@ -1586,13 +1586,13 @@ msgid "" "M. Kuchling.)" msgstr "" -#: whatsnew/2.0.rst:1109 +#: whatsnew/2.0.rst:1110 msgid "" ":mod:`!pyexpat`: An interface to the Expat XML parser. (Contributed by Paul " "Prescod.)" msgstr "" -#: whatsnew/2.0.rst:1112 +#: whatsnew/2.0.rst:1113 msgid "" ":mod:`robotparser `: Parse a :file:`robots.txt` file, " "which is used for writing web spiders that politely avoid certain areas of a " @@ -1601,19 +1601,19 @@ msgid "" "fetchability of a given URL. (Contributed by Skip Montanaro.)" msgstr "" -#: whatsnew/2.0.rst:1118 +#: whatsnew/2.0.rst:1119 msgid "" ":mod:`tabnanny`: A module/script to check Python source code for ambiguous " "indentation. (Contributed by Tim Peters.)" msgstr "" -#: whatsnew/2.0.rst:1121 +#: whatsnew/2.0.rst:1122 msgid "" ":mod:`!UserString`: A base class useful for deriving objects that behave " "like strings." msgstr "" -#: whatsnew/2.0.rst:1124 +#: whatsnew/2.0.rst:1125 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 " @@ -1625,7 +1625,7 @@ msgid "" "Fred.)" msgstr "" -#: whatsnew/2.0.rst:1133 +#: whatsnew/2.0.rst:1134 msgid "" ":mod:`_winreg `: An interface to the Windows registry. :mod:`!" "_winreg` is an adaptation of functions that have been part of PythonWin " @@ -1634,7 +1634,7 @@ msgid "" "Hammond." msgstr "" -#: whatsnew/2.0.rst:1138 +#: whatsnew/2.0.rst:1139 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` " @@ -1642,7 +1642,7 @@ msgid "" "supported by the :mod:`gzip` module) (Contributed by James C. Ahlstrom.)" msgstr "" -#: whatsnew/2.0.rst:1143 +#: whatsnew/2.0.rst:1144 msgid "" ":mod:`!imputil`: A module that provides a simpler way for writing customized " "import hooks, in comparison to the existing :mod:`!ihooks` module. " @@ -1650,70 +1650,70 @@ msgid "" "way.)" msgstr "" -#: whatsnew/2.0.rst:1151 +#: whatsnew/2.0.rst:1152 msgid "IDLE Improvements" msgstr "" -#: whatsnew/2.0.rst:1153 +#: whatsnew/2.0.rst:1154 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 "" -#: whatsnew/2.0.rst:1157 +#: whatsnew/2.0.rst:1158 msgid "" "UI improvements and optimizations, especially in the area of syntax " "highlighting and auto-indentation." msgstr "" -#: whatsnew/2.0.rst:1160 +#: whatsnew/2.0.rst:1161 msgid "" "The class browser now shows more information, such as the top level " "functions in a module." msgstr "" -#: whatsnew/2.0.rst:1163 +#: whatsnew/2.0.rst:1164 msgid "" "Tab width is now a user settable option. When opening an existing Python " "file, IDLE automatically detects the indentation conventions, and adapts." msgstr "" -#: whatsnew/2.0.rst:1166 +#: whatsnew/2.0.rst:1167 msgid "" "There is now support for calling browsers on various platforms, used to open " "the Python documentation in a browser." msgstr "" -#: whatsnew/2.0.rst:1169 +#: whatsnew/2.0.rst:1170 msgid "" "IDLE now has a command line, which is largely similar to the vanilla Python " "interpreter." msgstr "" -#: whatsnew/2.0.rst:1172 +#: whatsnew/2.0.rst:1173 msgid "Call tips were added in many places." msgstr "" -#: whatsnew/2.0.rst:1174 +#: whatsnew/2.0.rst:1175 msgid "IDLE can now be installed as a package." msgstr "" -#: whatsnew/2.0.rst:1176 +#: whatsnew/2.0.rst:1177 msgid "In the editor window, there is now a line/column bar at the bottom." msgstr "" -#: whatsnew/2.0.rst:1178 +#: whatsnew/2.0.rst:1179 msgid "" "Three new keystroke commands: Check module (:kbd:`Alt-F5`), Import module (:" "kbd:`F5`) and Run script (:kbd:`Ctrl-F5`)." msgstr "" -#: whatsnew/2.0.rst:1185 +#: whatsnew/2.0.rst:1186 msgid "Deleted and Deprecated Modules" msgstr "" -#: whatsnew/2.0.rst:1187 +#: whatsnew/2.0.rst:1188 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 " @@ -1721,7 +1721,7 @@ msgid "" "developed." msgstr "" -#: whatsnew/2.0.rst:1191 +#: whatsnew/2.0.rst:1192 msgid "" "A number of modules have been moved to the :file:`lib-old` subdirectory: :" "mod:`!cmp`, :mod:`!cmpcache`, :mod:`!dircmp`, :mod:`!dump`, :mod:`!find`, :" @@ -1732,11 +1732,11 @@ msgid "" "uses these modules." msgstr "" -#: whatsnew/2.0.rst:1200 +#: whatsnew/2.0.rst:1201 msgid "Acknowledgements" msgstr "" -#: whatsnew/2.0.rst:1202 +#: whatsnew/2.0.rst:1203 msgid "" "The authors would like to thank the following people for offering " "suggestions on various drafts of this article: David Bolen, Mark Hammond, " diff --git a/whatsnew/2.1.po b/whatsnew/2.1.po index 138fb248..ab838cda 100644 --- a/whatsnew/2.1.po +++ b/whatsnew/2.1.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/whatsnew/2.2.po b/whatsnew/2.2.po index 7579b065..8d803eae 100644 --- a/whatsnew/2.2.po +++ b/whatsnew/2.2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po index e6b9df9b..25bb39d5 100644 --- a/whatsnew/2.3.po +++ b/whatsnew/2.3.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po index 08c59e30..942adb05 100644 --- a/whatsnew/2.4.po +++ b/whatsnew/2.4.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/whatsnew/2.5.po b/whatsnew/2.5.po index cff7c150..b498341e 100644 --- a/whatsnew/2.5.po +++ b/whatsnew/2.5.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3213,15 +3213,14 @@ msgstr "" #: 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 macro :c:macro:`!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.)" +"current file so that a faster calling convention can be used. :c:macro:" +"`Py_LOCAL` declares the function as returning a value of the specified " +"*type* and uses a fast-calling qualifier. :c:macro:`Py_LOCAL_INLINE` does " +"the same thing and also requests the function be inlined. If macro :c:macro:" +"`!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 "" #: whatsnew/2.5.rst:2181 diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po index b81b9a35..328e5847 100644 --- a/whatsnew/2.6.po +++ b/whatsnew/2.6.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -42,7 +42,7 @@ msgid "" "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:" +"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 "" @@ -113,7 +113,7 @@ 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 " +"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 "" @@ -123,7 +123,7 @@ 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." +"switch is available to Python code as the boolean variable :data:`!sys." "py3kwarning`, and to C extension code as :c:data:`!Py_Py3kWarningFlag`." msgstr "" @@ -406,9 +406,10 @@ msgstr "" #: whatsnew/2.6.rst:310 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::" +"The :func:`~decimal.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 "" #: whatsnew/2.6.rst:314 @@ -513,7 +514,7 @@ msgstr "" 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::" +"class:`!DatabaseConnection` that I'll assume::" msgstr "" #: whatsnew/2.6.rst:383 @@ -589,24 +590,24 @@ msgstr "" #: whatsnew/2.6.rst:434 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:`~object.__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:`~object.__exit__` " -"method. Any exception raised in the block will be raised by the :keyword:`!" -"yield` statement." +"The decorator is called :func:`~contextlib.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:`~object.__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:" +"`~object.__exit__` method. Any exception raised in the block will be raised " +"by the :keyword:`!yield` statement." msgstr "" -#: whatsnew/2.6.rst:443 +#: whatsnew/2.6.rst:444 msgid "" "Using this decorator, our database example from the previous section could " "be written as::" msgstr "" -#: whatsnew/2.6.rst:446 +#: whatsnew/2.6.rst:447 msgid "" "from contextlib import contextmanager\n" "\n" @@ -626,7 +627,7 @@ msgid "" " ..." msgstr "" -#: whatsnew/2.6.rst:463 +#: whatsnew/2.6.rst:464 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 " @@ -635,21 +636,21 @@ msgid "" "lock::" msgstr "" -#: whatsnew/2.6.rst:468 +#: whatsnew/2.6.rst:469 msgid "" "lock = threading.Lock()\n" "with nested (db_transaction(db), lock) as (cursor, locked):\n" " ..." msgstr "" -#: whatsnew/2.6.rst:472 +#: whatsnew/2.6.rst:473 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. ::" +"Finally, the :func:`~contextlib.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 "" -#: whatsnew/2.6.rst:476 +#: whatsnew/2.6.rst:477 msgid "" "import urllib, sys\n" "from contextlib import closing\n" @@ -659,11 +660,11 @@ msgid "" " sys.stdout.write(line)" msgstr "" -#: whatsnew/2.6.rst:486 +#: whatsnew/2.6.rst:487 msgid ":pep:`343` - The \"with\" statement" msgstr "" -#: whatsnew/2.6.rst:487 +#: whatsnew/2.6.rst:488 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 " @@ -671,29 +672,29 @@ msgid "" "statement works." msgstr "" -#: whatsnew/2.6.rst:492 +#: whatsnew/2.6.rst:493 msgid "The documentation for the :mod:`contextlib` module." msgstr "" -#: whatsnew/2.6.rst:499 +#: whatsnew/2.6.rst:500 msgid "PEP 366: Explicit Relative Imports From a Main Module" msgstr "" -#: whatsnew/2.6.rst:501 +#: whatsnew/2.6.rst:502 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 "" -#: whatsnew/2.6.rst:505 +#: whatsnew/2.6.rst:506 msgid "" "The fix for Python 2.6 adds a :attr:`module.__package__` attribute. When " "this attribute is present, relative imports will be relative to the value of " "this attribute instead of the :attr:`~module.__name__` attribute." msgstr "" -#: whatsnew/2.6.rst:510 +#: whatsnew/2.6.rst:511 msgid "" "PEP 302-style importers can then set :attr:`~module.__package__` as " "necessary. The :mod:`runpy` module that implements the :option:`-m` switch " @@ -701,11 +702,11 @@ msgid "" "running from inside a package." msgstr "" -#: whatsnew/2.6.rst:520 +#: whatsnew/2.6.rst:521 msgid "PEP 370: Per-user ``site-packages`` Directory" msgstr "" -#: whatsnew/2.6.rst:522 +#: whatsnew/2.6.rst:523 msgid "" "When you run Python, the module search path ``sys.path`` usually includes a " "directory whose path ends in ``\"site-packages\"``. This directory is " @@ -713,56 +714,56 @@ msgid "" "machine or a particular site installation." msgstr "" -#: whatsnew/2.6.rst:527 +#: whatsnew/2.6.rst:528 msgid "" "Python 2.6 introduces a convention for user-specific site directories. The " "directory varies depending on the platform:" msgstr "" -#: whatsnew/2.6.rst:530 +#: whatsnew/2.6.rst:531 msgid "Unix and Mac OS X: :file:`~/.local/`" msgstr "" -#: whatsnew/2.6.rst:531 +#: whatsnew/2.6.rst:532 msgid "Windows: :file:`%APPDATA%/Python`" msgstr "" -#: whatsnew/2.6.rst:533 +#: whatsnew/2.6.rst:534 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 "" -#: whatsnew/2.6.rst:537 +#: whatsnew/2.6.rst:538 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." +"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 "" -#: whatsnew/2.6.rst:544 +#: whatsnew/2.6.rst:545 msgid "" "The feature can be disabled entirely by running Python with the :option:`-s` " "option or setting the :envvar:`PYTHONNOUSERSITE` environment variable." msgstr "" -#: whatsnew/2.6.rst:550 +#: whatsnew/2.6.rst:551 msgid ":pep:`370` - Per-user ``site-packages`` Directory" msgstr "" -#: whatsnew/2.6.rst:551 +#: whatsnew/2.6.rst:552 msgid "PEP written and implemented by Christian Heimes." msgstr "" -#: whatsnew/2.6.rst:559 +#: whatsnew/2.6.rst:560 msgid "PEP 371: The ``multiprocessing`` Package" msgstr "" -#: whatsnew/2.6.rst:561 +#: whatsnew/2.6.rst:562 msgid "" "The new :mod:`multiprocessing` package lets Python programs create new " "processes that will perform a computation and return a result to the " @@ -771,26 +772,28 @@ msgid "" "share simple arrays of data." msgstr "" -#: whatsnew/2.6.rst:567 +#: whatsnew/2.6.rst:568 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." +"module is still similar. The fundamental class is the :class:" +"`~multiprocessing.Process`, which is passed a callable object and a " +"collection of arguments. The :meth:`~multiprocessing.Process.start` method " +"sets the callable running in a subprocess, after which you can call the :" +"meth:`~multiprocessing.Process.is_alive` method to check whether the " +"subprocess is still running and the :meth:`~multiprocessing.Process.join` " +"method to wait for the process to exit." msgstr "" -#: whatsnew/2.6.rst:577 +#: 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 "" -#: whatsnew/2.6.rst:584 +#: whatsnew/2.6.rst:586 msgid "" "import time\n" "from multiprocessing import Process, Queue\n" @@ -823,7 +826,7 @@ msgid "" " print 'Factorial', N, '=', result" msgstr "" -#: whatsnew/2.6.rst:614 +#: 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 " @@ -833,18 +836,20 @@ msgid "" "variable, the child's value would be unaffected, and vice versa.)" msgstr "" -#: whatsnew/2.6.rst:622 +#: 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::" +"Two other classes, :class:`~multiprocessing.pool.Pool` and :class:" +"`~multiprocessing.Manager`, provide higher-level interfaces. :class:" +"`~multiprocessing.pool.Pool` will create a fixed number of worker processes, " +"and requests can then be distributed to the workers by calling :meth:" +"`~multiprocessing.pool.Pool.apply` or :meth:`~multiprocessing.pool.Pool." +"apply_async` to add a single request, and :meth:`~multiprocessing.pool.Pool." +"map` or :meth:`~multiprocessing.pool.Pool.map_async` to add a number of " +"requests. The following code uses a :class:`~multiprocessing.pool.Pool` to " +"spread requests across 5 worker processes and retrieve a list of results::" msgstr "" -#: whatsnew/2.6.rst:630 +#: whatsnew/2.6.rst:635 msgid "" "from multiprocessing import Pool\n" "\n" @@ -857,11 +862,11 @@ msgid "" " print v" msgstr "" -#: whatsnew/2.6.rst:640 +#: whatsnew/2.6.rst:645 msgid "This produces the following output::" msgstr "" -#: whatsnew/2.6.rst:642 +#: whatsnew/2.6.rst:647 msgid "" "1\n" "39916800\n" @@ -871,20 +876,22 @@ msgid "" "..." msgstr "" -#: whatsnew/2.6.rst:649 +#: whatsnew/2.6.rst:654 msgid "" -"The other high-level interface, the :class:`Manager` class, creates a " -"separate server process that can hold master copies of Python data " +"The other high-level interface, the :class:`~multiprocessing.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 " +"automatically, which doesn't matter in this example. :class:" +"`~multiprocessing.Manager`'s methods also include :meth:`~multiprocessing." +"managers.SyncManager.Lock`, :meth:`~multiprocessing.managers.SyncManager." +"RLock`, and :meth:`~multiprocessing.managers.SyncManager.Semaphore` to " "create shared locks.)" msgstr "" -#: whatsnew/2.6.rst:661 +#: whatsnew/2.6.rst:669 msgid "" "import time\n" "from multiprocessing import Pool, Manager\n" @@ -919,11 +926,11 @@ msgid "" " print k, v" msgstr "" -#: whatsnew/2.6.rst:693 +#: whatsnew/2.6.rst:701 msgid "This will produce the output::" msgstr "" -#: whatsnew/2.6.rst:695 +#: whatsnew/2.6.rst:703 msgid "" "1 1\n" "11 39916800\n" @@ -933,32 +940,32 @@ msgid "" "51 15511187532873822802242430164693032110632597200169861120000..." msgstr "" -#: whatsnew/2.6.rst:704 +#: whatsnew/2.6.rst:712 msgid "The documentation for the :mod:`multiprocessing` module." msgstr "" -#: whatsnew/2.6.rst:706 +#: whatsnew/2.6.rst:714 msgid ":pep:`371` - Addition of the multiprocessing package" msgstr "" -#: whatsnew/2.6.rst:707 +#: whatsnew/2.6.rst:715 msgid "" "PEP written by Jesse Noller and Richard Oudkerk; implemented by Richard " "Oudkerk and Jesse Noller." msgstr "" -#: whatsnew/2.6.rst:716 +#: whatsnew/2.6.rst:724 msgid "PEP 3101: Advanced String Formatting" msgstr "" -#: whatsnew/2.6.rst:718 +#: whatsnew/2.6.rst:726 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 "" -#: whatsnew/2.6.rst:722 +#: whatsnew/2.6.rst:730 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 " @@ -966,7 +973,7 @@ msgid "" "characters::" msgstr "" -#: whatsnew/2.6.rst:726 +#: whatsnew/2.6.rst:734 msgid "" ">>> # Substitute positional argument 0 into the string.\n" ">>> \"User ID: {0}\".format(\"root\")\n" @@ -978,24 +985,24 @@ msgid "" "'User ID: root Last seen: 5 Mar 2008 07:20'" msgstr "" -#: whatsnew/2.6.rst:735 +#: whatsnew/2.6.rst:743 msgid "Curly brackets can be escaped by doubling them::" msgstr "" -#: whatsnew/2.6.rst:737 +#: whatsnew/2.6.rst:745 msgid "" ">>> \"Empty dict: {{}}\".format()\n" "\"Empty dict: {}\"" msgstr "" -#: whatsnew/2.6.rst:740 +#: whatsnew/2.6.rst:748 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 "" -#: whatsnew/2.6.rst:744 +#: whatsnew/2.6.rst:752 msgid "" ">>> import sys\n" ">>> print 'Platform: {0.platform}\\nPython version: {0.version}'." @@ -1009,7 +1016,7 @@ msgid "" "'Content-type: video/mp4'" msgstr "" -#: whatsnew/2.6.rst:754 +#: whatsnew/2.6.rst:762 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 " @@ -1018,14 +1025,14 @@ msgid "" "inside a format string." msgstr "" -#: whatsnew/2.6.rst:760 +#: whatsnew/2.6.rst:768 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 "" -#: whatsnew/2.6.rst:764 +#: whatsnew/2.6.rst:772 msgid "" ">>> # Field 0: left justify, pad to 15 characters\n" ">>> # Field 1: right justify, pad to 6 characters\n" @@ -1038,11 +1045,11 @@ msgid "" "'Banquet $ 125'" msgstr "" -#: whatsnew/2.6.rst:774 +#: whatsnew/2.6.rst:782 msgid "Format specifiers can reference other fields through nesting::" msgstr "" -#: whatsnew/2.6.rst:776 +#: whatsnew/2.6.rst:784 msgid "" ">>> fmt = '{0:{1}}'\n" ">>> width = 15\n" @@ -1053,58 +1060,58 @@ msgid "" "'Invoice #1234 '" msgstr "" -#: whatsnew/2.6.rst:784 +#: whatsnew/2.6.rst:792 msgid "The alignment of a field within the desired width can be specified:" msgstr "" -#: whatsnew/2.6.rst:787 +#: whatsnew/2.6.rst:795 msgid "Character" msgstr "" -#: whatsnew/2.6.rst:787 +#: whatsnew/2.6.rst:795 msgid "Effect" msgstr "" -#: whatsnew/2.6.rst:789 +#: whatsnew/2.6.rst:797 msgid "< (default)" msgstr "" -#: whatsnew/2.6.rst:789 +#: whatsnew/2.6.rst:797 msgid "Left-align" msgstr "" -#: whatsnew/2.6.rst:790 +#: whatsnew/2.6.rst:798 msgid ">" msgstr "" -#: whatsnew/2.6.rst:790 +#: whatsnew/2.6.rst:798 msgid "Right-align" msgstr "" -#: whatsnew/2.6.rst:791 +#: whatsnew/2.6.rst:799 msgid "^" msgstr "" -#: whatsnew/2.6.rst:791 +#: whatsnew/2.6.rst:799 msgid "Center" msgstr "" -#: whatsnew/2.6.rst:792 +#: whatsnew/2.6.rst:800 msgid "=" msgstr "" -#: whatsnew/2.6.rst:792 +#: whatsnew/2.6.rst:800 msgid "(For numeric types only) Pad after the sign." msgstr "" -#: whatsnew/2.6.rst:795 +#: whatsnew/2.6.rst:803 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 "" -#: whatsnew/2.6.rst:799 +#: whatsnew/2.6.rst:807 msgid "" ">>> '{0:g}'.format(3.75)\n" "'3.75'\n" @@ -1112,104 +1119,104 @@ msgid "" "'3.750000e+00'" msgstr "" -#: whatsnew/2.6.rst:804 +#: whatsnew/2.6.rst:812 msgid "" "A variety of presentation types are available. Consult the 2.6 " "documentation for a :ref:`complete list `; here's a sample:" msgstr "" -#: whatsnew/2.6.rst:808 +#: whatsnew/2.6.rst:816 msgid "``b``" msgstr "" -#: whatsnew/2.6.rst:808 +#: whatsnew/2.6.rst:816 msgid "Binary. Outputs the number in base 2." msgstr "" -#: whatsnew/2.6.rst:809 +#: whatsnew/2.6.rst:817 msgid "``c``" msgstr "" -#: whatsnew/2.6.rst:809 +#: whatsnew/2.6.rst:817 msgid "" "Character. Converts the integer to the corresponding Unicode character " "before printing." msgstr "" -#: whatsnew/2.6.rst:811 +#: whatsnew/2.6.rst:819 msgid "``d``" msgstr "" -#: whatsnew/2.6.rst:811 +#: whatsnew/2.6.rst:819 msgid "Decimal Integer. Outputs the number in base 10." msgstr "" -#: whatsnew/2.6.rst:812 +#: whatsnew/2.6.rst:820 msgid "``o``" msgstr "" -#: whatsnew/2.6.rst:812 +#: whatsnew/2.6.rst:820 msgid "Octal format. Outputs the number in base 8." msgstr "" -#: whatsnew/2.6.rst:813 +#: whatsnew/2.6.rst:821 msgid "``x``" msgstr "" -#: whatsnew/2.6.rst:813 +#: whatsnew/2.6.rst:821 msgid "" "Hex format. Outputs the number in base 16, using lower-case letters for the " "digits above 9." msgstr "" -#: whatsnew/2.6.rst:815 +#: whatsnew/2.6.rst:823 msgid "``e``" msgstr "" -#: whatsnew/2.6.rst:815 +#: whatsnew/2.6.rst:823 msgid "" "Exponent notation. Prints the number in scientific notation using the letter " "'e' to indicate the exponent." msgstr "" -#: whatsnew/2.6.rst:817 +#: whatsnew/2.6.rst:825 msgid "``g``" msgstr "" -#: whatsnew/2.6.rst:817 +#: whatsnew/2.6.rst:825 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 "" -#: whatsnew/2.6.rst:820 +#: whatsnew/2.6.rst:828 msgid "``n``" msgstr "" -#: whatsnew/2.6.rst:820 +#: whatsnew/2.6.rst:828 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 "" -#: whatsnew/2.6.rst:823 +#: whatsnew/2.6.rst:831 msgid "``%``" msgstr "" -#: whatsnew/2.6.rst:823 +#: whatsnew/2.6.rst:831 msgid "" "Percentage. Multiplies the number by 100 and displays in fixed ('f') format, " "followed by a percent sign." msgstr "" -#: whatsnew/2.6.rst:827 +#: whatsnew/2.6.rst:835 msgid "" -"Classes and types can define a :meth:`__format__` method to control how " -"they're formatted. It receives a single argument, the format specifier::" +"Classes and types can define a :meth:`~object.__format__` method to control " +"how they're formatted. It receives a single argument, the format specifier::" msgstr "" -#: whatsnew/2.6.rst:830 +#: whatsnew/2.6.rst:838 msgid "" "def __format__(self, format_spec):\n" " if isinstance(format_spec, unicode):\n" @@ -1218,106 +1225,107 @@ msgid "" " return str(self)" msgstr "" -#: whatsnew/2.6.rst:836 +#: whatsnew/2.6.rst:844 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::" +"calls the type's :meth:`~object.__format__` method with the provided " +"specifier::" msgstr "" -#: whatsnew/2.6.rst:840 +#: whatsnew/2.6.rst:848 msgid "" ">>> format(75.6564, '.2f')\n" "'75.66'" msgstr "" -#: whatsnew/2.6.rst:846 +#: whatsnew/2.6.rst:854 msgid ":ref:`formatstrings`" msgstr "" -#: whatsnew/2.6.rst:847 +#: whatsnew/2.6.rst:855 msgid "The reference documentation for format fields." msgstr "" -#: whatsnew/2.6.rst:849 +#: whatsnew/2.6.rst:857 msgid ":pep:`3101` - Advanced String Formatting" msgstr "" -#: whatsnew/2.6.rst:850 +#: whatsnew/2.6.rst:858 msgid "PEP written by Talin. Implemented by Eric Smith." msgstr "" -#: whatsnew/2.6.rst:857 +#: whatsnew/2.6.rst:865 msgid "PEP 3105: ``print`` As a Function" msgstr "" -#: whatsnew/2.6.rst:859 +#: whatsnew/2.6.rst:867 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 "" -#: whatsnew/2.6.rst:863 +#: whatsnew/2.6.rst:871 msgid "" "Python 2.6 has a ``__future__`` import that removes ``print`` as language " "syntax, letting you use the functional form instead. For example::" msgstr "" -#: whatsnew/2.6.rst:866 +#: whatsnew/2.6.rst:874 msgid "" ">>> from __future__ import print_function\n" ">>> print('# of entries', len(dictionary), file=sys.stderr)" msgstr "" -#: whatsnew/2.6.rst:869 +#: whatsnew/2.6.rst:877 msgid "The signature of the new function is::" msgstr "" -#: whatsnew/2.6.rst:871 +#: whatsnew/2.6.rst:879 msgid "def print(*args, sep=' ', end='\\n', file=None)" msgstr "" -#: whatsnew/2.6.rst:874 +#: whatsnew/2.6.rst:882 msgid "The parameters are:" msgstr "" -#: whatsnew/2.6.rst:876 +#: whatsnew/2.6.rst:884 msgid "*args*: positional arguments whose values will be printed out." msgstr "" -#: whatsnew/2.6.rst:877 +#: whatsnew/2.6.rst:885 msgid "*sep*: the separator, which will be printed between arguments." msgstr "" -#: whatsnew/2.6.rst:878 +#: whatsnew/2.6.rst:886 msgid "" "*end*: the ending text, which will be printed after all of the arguments " "have been output." msgstr "" -#: whatsnew/2.6.rst:880 +#: whatsnew/2.6.rst:888 msgid "*file*: the file object to which the output will be sent." msgstr "" -#: whatsnew/2.6.rst:884 +#: whatsnew/2.6.rst:892 msgid ":pep:`3105` - Make print a function" msgstr "" -#: whatsnew/2.6.rst:885 +#: whatsnew/2.6.rst:893 msgid "PEP written by Georg Brandl." msgstr "" -#: whatsnew/2.6.rst:892 +#: whatsnew/2.6.rst:900 msgid "PEP 3110: Exception-Handling Changes" msgstr "" -#: whatsnew/2.6.rst:894 +#: whatsnew/2.6.rst:902 msgid "" "One error that Python programmers occasionally make is writing the following " "code::" msgstr "" -#: whatsnew/2.6.rst:897 +#: whatsnew/2.6.rst:905 msgid "" "try:\n" " ...\n" @@ -1325,7 +1333,7 @@ msgid "" " ..." msgstr "" -#: whatsnew/2.6.rst:902 +#: whatsnew/2.6.rst:910 msgid "" "The author is probably trying to catch both :exc:`TypeError` and :exc:" "`ValueError` exceptions, but this code actually does something different: it " @@ -1334,7 +1342,7 @@ msgid "" "caught at all. The correct code specifies a tuple of exceptions::" msgstr "" -#: whatsnew/2.6.rst:909 +#: whatsnew/2.6.rst:917 msgid "" "try:\n" " ...\n" @@ -1342,21 +1350,21 @@ msgid "" " ..." msgstr "" -#: whatsnew/2.6.rst:914 +#: whatsnew/2.6.rst:922 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 "" -#: whatsnew/2.6.rst:918 +#: whatsnew/2.6.rst:926 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 "" -#: whatsnew/2.6.rst:922 +#: whatsnew/2.6.rst:930 msgid "" "try:\n" " ...\n" @@ -1364,7 +1372,7 @@ msgid "" " ..." msgstr "" -#: whatsnew/2.6.rst:927 +#: whatsnew/2.6.rst:935 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 " @@ -1373,19 +1381,19 @@ msgid "" "be executed with 2.6." msgstr "" -#: whatsnew/2.6.rst:935 +#: whatsnew/2.6.rst:943 msgid ":pep:`3110` - Catching Exceptions in Python 3000" msgstr "" -#: whatsnew/2.6.rst:936 +#: whatsnew/2.6.rst:944 msgid "PEP written and implemented by Collin Winter." msgstr "" -#: whatsnew/2.6.rst:943 +#: whatsnew/2.6.rst:951 msgid "PEP 3112: Byte Literals" msgstr "" -#: whatsnew/2.6.rst:945 +#: whatsnew/2.6.rst:953 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 :" @@ -1394,7 +1402,7 @@ msgid "" "``b''`` notation." msgstr "" -#: whatsnew/2.6.rst:952 +#: whatsnew/2.6.rst:960 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, " @@ -1403,7 +1411,7 @@ msgid "" "func:`str` of the list." msgstr "" -#: whatsnew/2.6.rst:958 +#: whatsnew/2.6.rst:966 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, " @@ -1413,14 +1421,14 @@ msgid "" "be correct in Python 3.0." msgstr "" -#: whatsnew/2.6.rst:965 +#: whatsnew/2.6.rst:973 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 "" -#: whatsnew/2.6.rst:970 +#: whatsnew/2.6.rst:978 msgid "" "from __future__ import unicode_literals\n" "\n" @@ -1430,7 +1438,7 @@ msgid "" "print len(s) # 12 Unicode characters" msgstr "" -#: whatsnew/2.6.rst:977 +#: whatsnew/2.6.rst:985 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`. " @@ -1440,13 +1448,13 @@ msgid "" "with strings." msgstr "" -#: whatsnew/2.6.rst:984 +#: whatsnew/2.6.rst:992 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 "" -#: whatsnew/2.6.rst:988 +#: whatsnew/2.6.rst:996 msgid "" ">>> bytearray([65, 66, 67])\n" "bytearray(b'ABC')\n" @@ -1460,14 +1468,16 @@ msgid "" "u'\\u31ef \\u3244'" msgstr "" -#: whatsnew/2.6.rst:999 +#: whatsnew/2.6.rst:1007 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`." +"`~bytearray.startswith`/:meth:`~bytearray.endswith`, :meth:`~bytearray." +"find`/:meth:`~bytearray.rfind`, and some of the methods of lists, such as :" +"meth:`~bytearray.append`, :meth:`~bytearray.pop`, and :meth:`~bytearray." +"reverse`." msgstr "" -#: whatsnew/2.6.rst:1006 +#: whatsnew/2.6.rst:1015 msgid "" ">>> b = bytearray('ABC')\n" ">>> b.append('d')\n" @@ -1476,94 +1486,96 @@ msgid "" "bytearray(b'ABCde')" msgstr "" -#: whatsnew/2.6.rst:1012 +#: whatsnew/2.6.rst:1021 msgid "" "There's also a corresponding C API, with :c:func:`PyByteArray_FromObject`, :" "c:func:`PyByteArray_FromStringAndSize`, and various other functions." msgstr "" -#: whatsnew/2.6.rst:1019 +#: whatsnew/2.6.rst:1028 msgid ":pep:`3112` - Bytes literals in Python 3000" msgstr "" -#: whatsnew/2.6.rst:1020 +#: whatsnew/2.6.rst:1029 msgid "PEP written by Jason Orendorff; backported to 2.6 by Christian Heimes." msgstr "" -#: whatsnew/2.6.rst:1027 +#: whatsnew/2.6.rst:1036 msgid "PEP 3116: New I/O Library" msgstr "" -#: whatsnew/2.6.rst:1029 +#: whatsnew/2.6.rst:1038 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 " +"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 "" -#: whatsnew/2.6.rst:1037 +#: whatsnew/2.6.rst:1046 msgid "" "There are three levels of abstract base classes provided by the :mod:`io` " "module:" msgstr "" -#: whatsnew/2.6.rst:1040 +#: whatsnew/2.6.rst:1049 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." +":class:`~io.RawIOBase` defines raw I/O operations: :meth:`~io.RawIOBase." +"read`, :meth:`~io.RawIOBase.readinto`, :meth:`~io.RawIOBase.write`, :meth:" +"`~io.IOBase.seek`, :meth:`~io.IOBase.tell`, :meth:`~io.IOBase.truncate`, " +"and :meth:`~io.IOBase.close`. Most of the methods of this class will often " +"map to a single system call. There are also :meth:`~io.IOBase.readable`, :" +"meth:`~io.IOBase.writable`, and :meth:`~io.IOBase.seekable` methods for " +"determining what operations a given object will allow." msgstr "" -#: whatsnew/2.6.rst:1048 +#: whatsnew/2.6.rst:1058 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 "" -#: whatsnew/2.6.rst:1052 +#: whatsnew/2.6.rst:1062 msgid "" -":class:`BufferedIOBase` is an abstract base class that buffers data in " +":class:`~io.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." +"efficient. It supports all of the methods of :class:`~io.RawIOBase`, and " +"adds a :attr:`~io.BufferedIOBase.raw` attribute holding the underlying raw " +"object." msgstr "" -#: whatsnew/2.6.rst:1058 +#: whatsnew/2.6.rst:1069 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." +"There are five concrete classes implementing this ABC. :class:`~io." +"BufferedWriter` and :class:`~io.BufferedReader` are for objects that support " +"write-only or read-only usage that have a :meth:`~io.IOBase.seek` method for " +"random access. :class:`~io.BufferedRandom` objects support read and write " +"access upon the same underlying stream, and :class:`~io.BufferedRWPair` is " +"for objects such as TTYs that have both read and write operations acting " +"upon unconnected streams of data. The :class:`~io.BytesIO` class supports " +"reading, writing, and seeking over an in-memory buffer." msgstr "" -#: whatsnew/2.6.rst:1071 +#: whatsnew/2.6.rst:1082 msgid "" -":class:`TextIOBase`: Provides functions for reading and writing strings " +":class:`~io.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` " +"`universal newlines`. :class:`~io.TextIOBase` defines the :meth:`readline` " "method and supports iteration upon objects." msgstr "" -#: whatsnew/2.6.rst:1077 +#: whatsnew/2.6.rst:1088 msgid "" -"There are two concrete implementations. :class:`TextIOWrapper` wraps a " +"There are two concrete implementations. :class:`~io.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." +"a :attr:`~io.TextIOBase.buffer` attribute for access to the underlying " +"object. :class:`~io.StringIO` simply buffers everything in memory without " +"ever writing anything to disk." msgstr "" -#: whatsnew/2.6.rst:1083 +#: whatsnew/2.6.rst:1094 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` " @@ -1572,7 +1584,7 @@ msgid "" "will be backported to the 2.x releases.)" msgstr "" -#: whatsnew/2.6.rst:1089 +#: whatsnew/2.6.rst:1100 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 " @@ -1581,22 +1593,22 @@ msgid "" "buffering and text I/O." msgstr "" -#: whatsnew/2.6.rst:1097 +#: whatsnew/2.6.rst:1108 msgid ":pep:`3116` - New I/O" msgstr "" -#: whatsnew/2.6.rst:1098 +#: whatsnew/2.6.rst:1109 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 "" -#: whatsnew/2.6.rst:1107 +#: whatsnew/2.6.rst:1118 msgid "PEP 3118: Revised Buffer Protocol" msgstr "" -#: whatsnew/2.6.rst:1109 +#: whatsnew/2.6.rst:1120 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 " @@ -1605,7 +1617,7 @@ msgid "" "searched." msgstr "" -#: whatsnew/2.6.rst:1115 +#: whatsnew/2.6.rst:1126 msgid "" "The primary users of the buffer protocol are numeric-processing packages " "such as NumPy, which expose the internal representation of arrays so that " @@ -1615,7 +1627,7 @@ msgid "" "the shape of an array or locking a memory region." msgstr "" -#: whatsnew/2.6.rst:1122 +#: whatsnew/2.6.rst:1133 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 " @@ -1626,89 +1638,89 @@ msgid "" "external caller is done." msgstr "" -#: whatsnew/2.6.rst:1132 +#: whatsnew/2.6.rst:1143 msgid "" "The *flags* argument to :c:func:`PyObject_GetBuffer` specifies constraints " "upon the memory returned. Some examples are:" msgstr "" -#: whatsnew/2.6.rst:1135 +#: whatsnew/2.6.rst:1146 msgid ":c:macro:`PyBUF_WRITABLE` indicates that the memory must be writable." msgstr "" -#: whatsnew/2.6.rst:1137 +#: whatsnew/2.6.rst:1148 msgid "" ":c:macro:`PyBUF_LOCK` requests a read-only or exclusive lock on the memory." msgstr "" -#: whatsnew/2.6.rst:1139 +#: whatsnew/2.6.rst:1150 msgid "" ":c:macro:`PyBUF_C_CONTIGUOUS` and :c:macro:`PyBUF_F_CONTIGUOUS` requests a C-" "contiguous (last dimension varies the fastest) or Fortran-contiguous (first " "dimension varies the fastest) array layout." msgstr "" -#: whatsnew/2.6.rst:1143 +#: whatsnew/2.6.rst:1154 msgid "" "Two new argument codes for :c:func:`PyArg_ParseTuple`, ``s*`` and ``z*``, " "return locked buffer objects for a parameter." msgstr "" -#: whatsnew/2.6.rst:1148 +#: whatsnew/2.6.rst:1159 msgid ":pep:`3118` - Revising the buffer protocol" msgstr "" -#: whatsnew/2.6.rst:1149 +#: whatsnew/2.6.rst:1160 msgid "" "PEP written by Travis Oliphant and Carl Banks; implemented by Travis " "Oliphant." msgstr "" -#: whatsnew/2.6.rst:1158 +#: whatsnew/2.6.rst:1169 msgid "PEP 3119: Abstract Base Classes" msgstr "" -#: whatsnew/2.6.rst:1160 +#: whatsnew/2.6.rst:1171 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." +"metaclass called :class:`~abc.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 "" -#: whatsnew/2.6.rst:1170 +#: whatsnew/2.6.rst:1181 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`?" +"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 "" -#: whatsnew/2.6.rst:1178 +#: whatsnew/2.6.rst:1189 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." +"defines :meth:`~object.__iter__`, and :class:`Container` means the class " +"defines a :meth:`~object.__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 "" -#: whatsnew/2.6.rst:1187 +#: whatsnew/2.6.rst:1198 msgid "" "You can derive your own classes from a particular ABC to indicate they " "support that ABC's interface::" msgstr "" -#: whatsnew/2.6.rst:1190 +#: whatsnew/2.6.rst:1201 msgid "" "import collections\n" "\n" @@ -1716,14 +1728,14 @@ msgid "" " ..." msgstr "" -#: whatsnew/2.6.rst:1196 +#: whatsnew/2.6.rst:1207 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::" +"ABC and instead register the class by calling the ABC's :meth:`~abc.ABCMeta." +"register` method::" msgstr "" -#: whatsnew/2.6.rst:1200 +#: whatsnew/2.6.rst:1211 msgid "" "import collections\n" "\n" @@ -1733,16 +1745,16 @@ msgid "" "collections.MutableMapping.register(Storage)" msgstr "" -#: whatsnew/2.6.rst:1207 +#: whatsnew/2.6.rst:1218 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::" +"meth:`~abc.ABCMeta.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 "" -#: whatsnew/2.6.rst:1214 +#: whatsnew/2.6.rst:1225 msgid "" "# Register Python's types\n" "PrintableType.register(int)\n" @@ -1750,27 +1762,27 @@ msgid "" "PrintableType.register(str)" msgstr "" -#: whatsnew/2.6.rst:1219 +#: whatsnew/2.6.rst:1230 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 "" -#: whatsnew/2.6.rst:1223 +#: whatsnew/2.6.rst:1234 msgid "" "To check whether an object supports a particular interface, you can now " "write::" msgstr "" -#: whatsnew/2.6.rst:1226 +#: whatsnew/2.6.rst:1237 msgid "" "def func(d):\n" " if not isinstance(d, collections.MutableMapping):\n" " raise ValueError(\"Mapping object expected, not %r\" % d)" msgstr "" -#: whatsnew/2.6.rst:1230 +#: whatsnew/2.6.rst:1241 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-" @@ -1780,13 +1792,13 @@ msgid "" "necessary." msgstr "" -#: whatsnew/2.6.rst:1237 +#: whatsnew/2.6.rst:1248 msgid "" "You can write your own ABCs by using ``abc.ABCMeta`` as the metaclass in a " "class definition::" msgstr "" -#: whatsnew/2.6.rst:1240 +#: whatsnew/2.6.rst:1251 msgid "" "from abc import ABCMeta, abstractmethod\n" "\n" @@ -1806,26 +1818,26 @@ msgid "" " ..." msgstr "" -#: whatsnew/2.6.rst:1258 +#: whatsnew/2.6.rst:1269 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 " +"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 "" -#: whatsnew/2.6.rst:1266 +#: whatsnew/2.6.rst:1277 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 " +"You can apply the :deco:`~abc.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 "" -#: whatsnew/2.6.rst:1272 +#: whatsnew/2.6.rst:1283 msgid "" ">>> class Circle(Drawable):\n" "... pass\n" @@ -1838,13 +1850,13 @@ msgid "" ">>>" msgstr "" -#: whatsnew/2.6.rst:1281 +#: whatsnew/2.6.rst:1292 msgid "" "Abstract data attributes can be declared using the ``@abstractproperty`` " "decorator::" msgstr "" -#: whatsnew/2.6.rst:1284 +#: whatsnew/2.6.rst:1295 msgid "" "from abc import abstractproperty\n" "...\n" @@ -1854,38 +1866,38 @@ msgid "" " return self._x" msgstr "" -#: whatsnew/2.6.rst:1291 -msgid "Subclasses must then define a :meth:`readonly` property." +#: whatsnew/2.6.rst:1302 +msgid "Subclasses must then define a ``readonly`` property." msgstr "" -#: whatsnew/2.6.rst:1295 +#: whatsnew/2.6.rst:1306 msgid ":pep:`3119` - Introducing Abstract Base Classes" msgstr "" -#: whatsnew/2.6.rst:1296 +#: whatsnew/2.6.rst:1307 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 "" -#: whatsnew/2.6.rst:1305 +#: whatsnew/2.6.rst:1316 msgid "PEP 3127: Integer Literal Support and Syntax" msgstr "" -#: whatsnew/2.6.rst:1307 +#: whatsnew/2.6.rst:1318 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 "" -#: whatsnew/2.6.rst:1312 +#: whatsnew/2.6.rst:1323 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 "" -#: whatsnew/2.6.rst:1315 +#: whatsnew/2.6.rst:1326 msgid "" ">>> 0o21, 2*8 + 1\n" "(17, 17)\n" @@ -1893,14 +1905,14 @@ msgid "" "47" msgstr "" -#: whatsnew/2.6.rst:1320 +#: whatsnew/2.6.rst:1331 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 "" -#: whatsnew/2.6.rst:1324 +#: whatsnew/2.6.rst:1335 msgid "" ">>> oct(42)\n" "'052'\n" @@ -1910,7 +1922,7 @@ msgid "" "'0b10101101'" msgstr "" -#: whatsnew/2.6.rst:1331 +#: whatsnew/2.6.rst:1342 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* " @@ -1918,7 +1930,7 @@ msgid "" "the string)::" msgstr "" -#: whatsnew/2.6.rst:1336 +#: whatsnew/2.6.rst:1347 msgid "" ">>> int ('0o52', 0)\n" "42\n" @@ -1930,25 +1942,25 @@ msgid "" "13" msgstr "" -#: whatsnew/2.6.rst:1348 +#: whatsnew/2.6.rst:1359 msgid ":pep:`3127` - Integer Literal Support and Syntax" msgstr "" -#: whatsnew/2.6.rst:1349 +#: whatsnew/2.6.rst:1360 msgid "PEP written by Patrick Maupin; backported to 2.6 by Eric Smith." msgstr "" -#: whatsnew/2.6.rst:1357 +#: whatsnew/2.6.rst:1368 msgid "PEP 3129: Class Decorators" msgstr "" -#: whatsnew/2.6.rst:1359 +#: whatsnew/2.6.rst:1370 msgid "" "Decorators have been extended from functions to classes. It's now legal to " "write::" msgstr "" -#: whatsnew/2.6.rst:1362 +#: whatsnew/2.6.rst:1373 msgid "" "@foo\n" "@bar\n" @@ -1956,11 +1968,11 @@ msgid "" " pass" msgstr "" -#: whatsnew/2.6.rst:1367 +#: whatsnew/2.6.rst:1378 msgid "This is equivalent to::" msgstr "" -#: whatsnew/2.6.rst:1369 +#: whatsnew/2.6.rst:1380 msgid "" "class A:\n" " pass\n" @@ -1968,33 +1980,33 @@ msgid "" "A = foo(bar(A))" msgstr "" -#: whatsnew/2.6.rst:1376 +#: whatsnew/2.6.rst:1387 msgid ":pep:`3129` - Class Decorators" msgstr "" -#: whatsnew/2.6.rst:1377 +#: whatsnew/2.6.rst:1388 msgid "PEP written by Collin Winter." msgstr "" -#: whatsnew/2.6.rst:1384 +#: whatsnew/2.6.rst:1395 msgid "PEP 3141: A Type Hierarchy for Numbers" msgstr "" -#: whatsnew/2.6.rst:1386 +#: whatsnew/2.6.rst:1397 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 "" -#: whatsnew/2.6.rst:1390 +#: whatsnew/2.6.rst:1401 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 "" -#: whatsnew/2.6.rst:1394 +#: whatsnew/2.6.rst:1405 msgid "" ":class:`Complex` is a subclass of :class:`Number`. Complex numbers can " "undergo the basic operations of addition, subtraction, multiplication, " @@ -2003,14 +2015,14 @@ msgid "" "implementation of :class:`Complex`." msgstr "" -#: whatsnew/2.6.rst:1400 +#: whatsnew/2.6.rst:1411 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 "" -#: whatsnew/2.6.rst:1405 +#: whatsnew/2.6.rst:1416 msgid "" ":class:`Rational` numbers derive from :class:`Real`, have :attr:`numerator` " "and :attr:`denominator` properties, and can be converted to floats. Python " @@ -2019,7 +2031,7 @@ msgid "" "`Rational` to avoid a name clash with :class:`numbers.Rational`.)" msgstr "" -#: whatsnew/2.6.rst:1412 +#: whatsnew/2.6.rst:1423 msgid "" ":class:`Integral` numbers derive from :class:`Rational`, and can be shifted " "left and right with ``<<`` and ``>>``, combined using bitwise operations " @@ -2027,7 +2039,7 @@ msgid "" "boundaries." msgstr "" -#: whatsnew/2.6.rst:1417 +#: whatsnew/2.6.rst:1428 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:" @@ -2036,32 +2048,32 @@ msgid "" "the function's argument and zero." msgstr "" -#: whatsnew/2.6.rst:1425 +#: whatsnew/2.6.rst:1436 msgid ":pep:`3141` - A Type Hierarchy for Numbers" msgstr "" -#: whatsnew/2.6.rst:1426 +#: whatsnew/2.6.rst:1437 msgid "PEP written by Jeffrey Yasskin." msgstr "" -#: whatsnew/2.6.rst:1428 +#: whatsnew/2.6.rst:1439 msgid "" "`Scheme's numerical tower `__, from the Guile manual." msgstr "" -#: whatsnew/2.6.rst:1430 +#: whatsnew/2.6.rst:1441 msgid "" "`Scheme's number datatypes `__ from the R5RS " "Scheme specification." msgstr "" -#: whatsnew/2.6.rst:1434 +#: whatsnew/2.6.rst:1445 msgid "The :mod:`fractions` Module" msgstr "" -#: whatsnew/2.6.rst:1436 +#: whatsnew/2.6.rst:1447 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 " @@ -2069,13 +2081,13 @@ msgid "" "numbers such as ``2/3`` that floating-point numbers can only approximate." msgstr "" -#: whatsnew/2.6.rst:1442 +#: whatsnew/2.6.rst:1453 msgid "" "The :class:`Fraction` constructor takes two :class:`Integral` values that " "will be the numerator and denominator of the resulting fraction. ::" msgstr "" -#: whatsnew/2.6.rst:1445 +#: whatsnew/2.6.rst:1456 msgid "" ">>> from fractions import Fraction\n" ">>> a = Fraction(2, 3)\n" @@ -2088,14 +2100,14 @@ msgid "" "Fraction(5, 3)" msgstr "" -#: whatsnew/2.6.rst:1455 +#: whatsnew/2.6.rst:1466 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 "" -#: whatsnew/2.6.rst:1460 +#: whatsnew/2.6.rst:1471 msgid "" ">>> (2.5) .as_integer_ratio()\n" "(5, 2)\n" @@ -2105,29 +2117,29 @@ msgid "" "(6004799503160661L, 18014398509481984L)" msgstr "" -#: whatsnew/2.6.rst:1467 +#: whatsnew/2.6.rst:1478 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 "" -#: whatsnew/2.6.rst:1472 +#: whatsnew/2.6.rst:1483 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 "" -#: whatsnew/2.6.rst:1479 +#: whatsnew/2.6.rst:1490 msgid "Other Language Changes" msgstr "" -#: whatsnew/2.6.rst:1481 +#: whatsnew/2.6.rst:1492 msgid "Some smaller changes made to the core Python language are:" msgstr "" -#: whatsnew/2.6.rst:1483 +#: whatsnew/2.6.rst:1494 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 " @@ -2136,7 +2148,7 @@ msgid "" "J. Eby and Nick Coghlan; :issue:`1739468`.)" msgstr "" -#: whatsnew/2.6.rst:1490 +#: whatsnew/2.6.rst:1501 msgid "" "The :func:`hasattr` function was catching and ignoring all errors, under the " "assumption that they meant a :meth:`__getattr__` method was failing somehow " @@ -2147,14 +2159,14 @@ msgid "" "`2196`.)" msgstr "" -#: whatsnew/2.6.rst:1498 +#: whatsnew/2.6.rst:1509 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 "" -#: whatsnew/2.6.rst:1502 +#: whatsnew/2.6.rst:1513 msgid "" ">>> def f(**kw):\n" "... print sorted(kw)\n" @@ -2166,17 +2178,17 @@ msgid "" "['a', 'b']" msgstr "" -#: whatsnew/2.6.rst:1511 +#: whatsnew/2.6.rst:1522 msgid "(Contributed by Alexander Belopolsky; :issue:`1686487`.)" msgstr "" -#: whatsnew/2.6.rst:1513 +#: whatsnew/2.6.rst:1524 msgid "" "It's also become legal to provide keyword arguments after a ``*args`` " "argument to a function call. ::" msgstr "" -#: whatsnew/2.6.rst:1516 +#: whatsnew/2.6.rst:1527 msgid "" ">>> def f(*args, **kw):\n" "... print args, kw\n" @@ -2185,13 +2197,13 @@ msgid "" "(1, 2, 3, 4, 5, 6) {'keyword': 13}" msgstr "" -#: whatsnew/2.6.rst:1522 +#: whatsnew/2.6.rst:1533 msgid "" "Previously this would have been a syntax error. (Contributed by Amaury " "Forgeot d'Arc; :issue:`3473`.)" msgstr "" -#: whatsnew/2.6.rst:1525 +#: whatsnew/2.6.rst:1536 msgid "" "A new builtin, ``next(iterator, [default])`` returns the next item from the " "specified iterator. If the *default* argument is supplied, it will be " @@ -2199,13 +2211,14 @@ msgid "" "`StopIteration` exception will be raised. (Backported in :issue:`2719`.)" msgstr "" -#: whatsnew/2.6.rst:1531 +#: whatsnew/2.6.rst:1542 msgid "" -"Tuples now have :meth:`index` and :meth:`count` methods matching the list " -"type's :meth:`index` and :meth:`count` methods::" +"Tuples now have :meth:`~tuple.index` and :meth:`~tuple.count` methods " +"matching the list type's :meth:`~list.index` and :meth:`~list.count` " +"methods::" msgstr "" -#: whatsnew/2.6.rst:1534 +#: whatsnew/2.6.rst:1545 msgid "" ">>> t = (0,1,2,3,4,0,1,2)\n" ">>> t.index(3)\n" @@ -2214,11 +2227,11 @@ msgid "" "2" msgstr "" -#: whatsnew/2.6.rst:1540 +#: whatsnew/2.6.rst:1551 msgid "(Contributed by Raymond Hettinger)" msgstr "" -#: whatsnew/2.6.rst:1542 +#: whatsnew/2.6.rst:1553 msgid "" "The built-in types now have improved support for extended slicing syntax, " "accepting various combinations of ``(start, stop, step)``. Previously, the " @@ -2226,7 +2239,7 @@ msgid "" "Thomas Wouters.)" msgstr "" -#: whatsnew/2.6.rst:1549 +#: whatsnew/2.6.rst:1560 msgid "" "Properties now have three attributes, :attr:`getter`, :attr:`setter` and :" "attr:`deleter`, that are decorators providing useful shortcuts for adding a " @@ -2234,7 +2247,7 @@ msgid "" "them like this::" msgstr "" -#: whatsnew/2.6.rst:1554 +#: whatsnew/2.6.rst:1565 msgid "" "class C(object):\n" " @property\n" @@ -2259,14 +2272,14 @@ msgid "" " self._x = value / 2" msgstr "" -#: whatsnew/2.6.rst:1576 +#: whatsnew/2.6.rst:1587 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 "" -#: whatsnew/2.6.rst:1584 +#: whatsnew/2.6.rst:1595 msgid "" ">>> s=set('1234567890')\n" ">>> s.intersection('abc123', 'cdf246') # Intersection between all inputs\n" @@ -2275,11 +2288,11 @@ msgid "" "set(['1', '0', '3', '5'])" msgstr "" -#: whatsnew/2.6.rst:1875 whatsnew/2.6.rst:1896 +#: whatsnew/2.6.rst:1886 whatsnew/2.6.rst:1907 msgid "(Contributed by Raymond Hettinger.)" msgstr "" -#: whatsnew/2.6.rst:1592 +#: whatsnew/2.6.rst:1603 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 " @@ -2288,14 +2301,14 @@ msgid "" "`1635`.)" msgstr "" -#: whatsnew/2.6.rst:1598 +#: whatsnew/2.6.rst:1609 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 "" -#: whatsnew/2.6.rst:1602 +#: whatsnew/2.6.rst:1613 msgid "" "Conversion functions were added to convert floating-point numbers into " "hexadecimal strings (:issue:`3008`). These functions convert floats to and " @@ -2305,7 +2318,7 @@ msgid "" "converts a string back into a number::" msgstr "" -#: whatsnew/2.6.rst:1610 +#: whatsnew/2.6.rst:1621 msgid "" ">>> a = 3.75\n" ">>> a.hex()\n" @@ -2317,7 +2330,7 @@ msgid "" "'0x1.5555555555555p-2'" msgstr "" -#: whatsnew/2.6.rst:1619 +#: whatsnew/2.6.rst:1630 msgid "" "A numerical nicety: when creating a complex number from two floats on " "systems that support signed zeros (-0 and +0), the :func:`complex` " @@ -2325,7 +2338,7 @@ msgid "" "Dickinson; :issue:`1507`.)" msgstr "" -#: whatsnew/2.6.rst:1624 +#: whatsnew/2.6.rst:1635 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 " @@ -2333,7 +2346,7 @@ msgid "" "indicated as implementing the :class:`Hashable` ABC." msgstr "" -#: whatsnew/2.6.rst:1630 +#: whatsnew/2.6.rst:1641 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 " @@ -2345,7 +2358,7 @@ msgid "" "d'Arc; :issue:`2235`.)" msgstr "" -#: whatsnew/2.6.rst:1640 +#: whatsnew/2.6.rst:1651 msgid "" "The :exc:`GeneratorExit` exception now subclasses :exc:`BaseException` " "instead of :exc:`Exception`. This means that an exception handler that does " @@ -2353,20 +2366,20 @@ msgid "" "(Contributed by Chad Austin; :issue:`1537`.)" msgstr "" -#: whatsnew/2.6.rst:1646 +#: whatsnew/2.6.rst:1657 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 "" -#: whatsnew/2.6.rst:1650 +#: whatsnew/2.6.rst:1661 msgid "" "The :func:`compile` built-in function now accepts keyword arguments as well " "as positional parameters. (Contributed by Thomas Wouters; :issue:`1444529`.)" msgstr "" -#: whatsnew/2.6.rst:1654 +#: whatsnew/2.6.rst:1665 msgid "" "The :func:`complex` constructor now accepts strings containing parenthesized " "complex numbers, meaning that ``complex(repr(cplx))`` will now round-trip " @@ -2374,7 +2387,7 @@ msgid "" "issue:`1491866`)" msgstr "" -#: whatsnew/2.6.rst:1659 +#: whatsnew/2.6.rst:1670 msgid "" "The string :meth:`translate` method now accepts ``None`` as the translation " "table parameter, which is treated as the identity transformation. This " @@ -2383,7 +2396,7 @@ msgid "" "`1193128`.)" msgstr "" -#: whatsnew/2.6.rst:1665 +#: whatsnew/2.6.rst:1676 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 " @@ -2393,7 +2406,7 @@ msgid "" "pseudo-attributes they will honor. (:issue:`1591665`)" msgstr "" -#: whatsnew/2.6.rst:1673 +#: whatsnew/2.6.rst:1684 msgid "" "Instance method objects have new attributes for the object and function " "comprising the method; the new synonym for :attr:`!im_self` is :attr:" @@ -2402,7 +2415,7 @@ msgid "" "3.0." msgstr "" -#: whatsnew/2.6.rst:1679 +#: whatsnew/2.6.rst:1690 msgid "" "An obscure change: when you use the :func:`locals` function inside a :" "keyword:`class` statement, the resulting dictionary no longer returns free " @@ -2410,11 +2423,11 @@ msgid "" "keyword:`!class` statement that aren't attributes of the class.)" msgstr "" -#: whatsnew/2.6.rst:1688 +#: whatsnew/2.6.rst:1699 msgid "Optimizations" msgstr "" -#: whatsnew/2.6.rst:1690 +#: whatsnew/2.6.rst:1701 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 " @@ -2422,7 +2435,7 @@ msgid "" "`1631171`.)" msgstr "" -#: whatsnew/2.6.rst:1695 +#: whatsnew/2.6.rst:1706 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 " @@ -2433,7 +2446,7 @@ msgid "" "updated for Python 2.6 by Kevin Jacobs; :issue:`1700288`.)" msgstr "" -#: whatsnew/2.6.rst:1705 +#: whatsnew/2.6.rst:1716 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 " @@ -2445,7 +2458,7 @@ msgid "" "interpreter to determine that. See :issue:`1878` for some discussion.)" msgstr "" -#: whatsnew/2.6.rst:1716 +#: whatsnew/2.6.rst:1727 msgid "" "Function calls that use keyword arguments are significantly faster by doing " "a quick pointer comparison, usually saving the time of a full string " @@ -2453,21 +2466,21 @@ msgid "" "implementation by Antoine Pitrou; :issue:`1819`.)" msgstr "" -#: whatsnew/2.6.rst:1721 +#: whatsnew/2.6.rst:1732 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 "" -#: whatsnew/2.6.rst:1725 +#: whatsnew/2.6.rst:1736 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 "" -#: whatsnew/2.6.rst:1729 +#: whatsnew/2.6.rst:1740 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:" @@ -2475,24 +2488,24 @@ msgid "" "reduced by using pymalloc for the Unicode string's data." msgstr "" -#: whatsnew/2.6.rst:1735 +#: whatsnew/2.6.rst:1746 msgid "" "The ``with`` statement now stores the :meth:`~object.__exit__` method on the " "stack, producing a small speedup. (Implemented by Jeffrey Yasskin.)" msgstr "" -#: whatsnew/2.6.rst:1738 +#: whatsnew/2.6.rst:1749 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 "" -#: whatsnew/2.6.rst:1747 +#: whatsnew/2.6.rst:1758 msgid "Interpreter Changes" msgstr "" -#: whatsnew/2.6.rst:1749 +#: whatsnew/2.6.rst:1760 msgid "" "Two command-line options have been reserved for use by other Python " "implementations. The :option:`!-J` switch has been reserved for use by " @@ -2503,7 +2516,7 @@ msgid "" "the option isn't currently used." msgstr "" -#: whatsnew/2.6.rst:1757 +#: whatsnew/2.6.rst:1768 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 " @@ -2514,7 +2527,7 @@ msgid "" "and Georg Brandl.)" msgstr "" -#: whatsnew/2.6.rst:1765 +#: whatsnew/2.6.rst:1776 msgid "" "The encoding used for standard input, output, and standard error can be " "specified by setting the :envvar:`PYTHONIOENCODING` environment variable " @@ -2526,11 +2539,11 @@ msgid "" "\"replace\". (Contributed by Martin von Löwis.)" msgstr "" -#: whatsnew/2.6.rst:1778 +#: whatsnew/2.6.rst:1789 msgid "New and Improved Modules" msgstr "" -#: whatsnew/2.6.rst:1780 +#: whatsnew/2.6.rst:1791 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 " @@ -2539,14 +2552,14 @@ msgid "" "the Subversion logs for all the details." msgstr "" -#: whatsnew/2.6.rst:1786 +#: whatsnew/2.6.rst:1797 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 "" -#: whatsnew/2.6.rst:1791 +#: whatsnew/2.6.rst:1802 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 " @@ -2556,14 +2569,14 @@ msgid "" "frequent than Python's." msgstr "" -#: whatsnew/2.6.rst:1799 +#: whatsnew/2.6.rst:1810 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 "" -#: whatsnew/2.6.rst:1803 +#: whatsnew/2.6.rst:1814 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 " @@ -2571,7 +2584,7 @@ msgid "" "(Contributed by Alexandre Fiori and Nubis; :issue:`1817`.)" msgstr "" -#: whatsnew/2.6.rst:1809 +#: whatsnew/2.6.rst:1820 msgid "" "The :func:`parse_qs` and :func:`parse_qsl` functions have been relocated " "from the :mod:`!cgi` module to the :mod:`urlparse ` module. " @@ -2579,43 +2592,43 @@ msgid "" "`PendingDeprecationWarning` messages in 2.6 (:issue:`600362`)." msgstr "" -#: whatsnew/2.6.rst:1815 +#: whatsnew/2.6.rst:1826 msgid "" "The :mod:`cmath` module underwent extensive revision, contributed by Mark " "Dickinson and Christian Heimes. Five new functions were added:" msgstr "" -#: whatsnew/2.6.rst:1819 +#: whatsnew/2.6.rst:1830 msgid "" ":func:`polar` converts a complex number to polar form, returning the modulus " "and argument of the complex number." msgstr "" -#: whatsnew/2.6.rst:1822 +#: whatsnew/2.6.rst:1833 msgid "" ":func:`rect` does the opposite, turning a modulus, argument pair back into " "the corresponding complex number." msgstr "" -#: whatsnew/2.6.rst:1825 +#: whatsnew/2.6.rst:1836 msgid "" ":func:`phase` returns the argument (also called the angle) of a complex " "number." msgstr "" -#: whatsnew/2.6.rst:1828 +#: whatsnew/2.6.rst:1839 msgid "" ":func:`isnan` returns True if either the real or imaginary part of its " "argument is a NaN." msgstr "" -#: whatsnew/2.6.rst:1831 +#: whatsnew/2.6.rst:1842 msgid "" ":func:`isinf` returns True if either the real or imaginary part of its " "argument is infinite." msgstr "" -#: whatsnew/2.6.rst:1834 +#: whatsnew/2.6.rst:1845 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 " @@ -2624,27 +2637,27 @@ msgid "" "`atanh`: and :func:`atan` have also been corrected." msgstr "" -#: whatsnew/2.6.rst:1841 +#: whatsnew/2.6.rst:1852 msgid "" "The tests for the module have been greatly expanded; nearly 2000 new test " "cases exercise the algebraic functions." msgstr "" -#: whatsnew/2.6.rst:1844 +#: whatsnew/2.6.rst:1855 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 "" -#: whatsnew/2.6.rst:1848 +#: whatsnew/2.6.rst:1859 msgid "" "A new data type in the :mod:`collections` module: ``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 "" -#: whatsnew/2.6.rst:1852 +#: whatsnew/2.6.rst:1863 msgid "" ">>> var_type = collections.namedtuple('variable',\n" "... 'id name type size')\n" @@ -2665,7 +2678,7 @@ msgid "" "variable(id=1, name='amplitude', type='int', size=4)" msgstr "" -#: whatsnew/2.6.rst:1870 +#: whatsnew/2.6.rst:1881 msgid "" "Several places in the standard library that returned tuples have been " "modified to return :func:`namedtuple` instances. For example, the :meth:" @@ -2673,7 +2686,7 @@ msgid "" "`digits`, and :attr:`exponent` fields." msgstr "" -#: whatsnew/2.6.rst:1877 +#: whatsnew/2.6.rst:1888 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 " @@ -2681,7 +2694,7 @@ msgid "" "to a full deque causes old items to be discarded." msgstr "" -#: whatsnew/2.6.rst:1885 +#: whatsnew/2.6.rst:1896 msgid "" ">>> from collections import deque\n" ">>> dq=deque(maxlen=3)\n" @@ -2695,7 +2708,7 @@ msgid "" "deque([2, 3, 4], maxlen=3)" msgstr "" -#: whatsnew/2.6.rst:1898 +#: whatsnew/2.6.rst:1909 msgid "" "The :mod:`Cookie ` module's :class:`~http.cookies.Morsel` " "objects now support an :attr:`~http.cookies.Morsel.httponly` attribute. In " @@ -2704,21 +2717,21 @@ msgid "" "`1638033`.)" msgstr "" -#: whatsnew/2.6.rst:1903 +#: whatsnew/2.6.rst:1914 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 "" -#: whatsnew/2.6.rst:1909 +#: whatsnew/2.6.rst:1920 msgid "" "# Boldface text starting at y=0,x=21\n" "# and affecting the rest of the line.\n" "stdscr.chgat(0, 21, curses.A_BOLD)" msgstr "" -#: whatsnew/2.6.rst:1913 +#: whatsnew/2.6.rst:1924 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 " @@ -2726,7 +2739,7 @@ msgid "" "class:`Textbox` instance." msgstr "" -#: whatsnew/2.6.rst:1918 +#: whatsnew/2.6.rst:1929 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-" @@ -2734,7 +2747,7 @@ msgid "" "`1158`.)" msgstr "" -#: whatsnew/2.6.rst:1923 +#: whatsnew/2.6.rst:1934 msgid "" "The :mod:`decimal` module was updated to version 1.66 of `the General " "Decimal Specification `__. " @@ -2742,7 +2755,7 @@ msgid "" "as :meth:`exp` and :meth:`log10`::" msgstr "" -#: whatsnew/2.6.rst:1928 +#: whatsnew/2.6.rst:1939 msgid "" ">>> Decimal(1).exp()\n" "Decimal(\"2.718281828459045235360287471\")\n" @@ -2752,26 +2765,26 @@ msgid "" "Decimal(\"3\")" msgstr "" -#: whatsnew/2.6.rst:1935 +#: whatsnew/2.6.rst:1946 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 "" -#: whatsnew/2.6.rst:1938 +#: whatsnew/2.6.rst:1949 msgid "" "(Implemented by Facundo Batista and Mark Dickinson. Named tuple support " "added by Raymond Hettinger.)" msgstr "" -#: whatsnew/2.6.rst:1941 +#: whatsnew/2.6.rst:1952 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 "" -#: whatsnew/2.6.rst:1946 +#: whatsnew/2.6.rst:1957 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:" @@ -2781,7 +2794,7 @@ msgid "" "data has been sent. (Contributed by Phil Schwartz; :issue:`1221598`.)" msgstr "" -#: whatsnew/2.6.rst:1954 +#: whatsnew/2.6.rst:1965 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:" @@ -2790,7 +2803,7 @@ msgid "" "issue:`1739906`.)" msgstr "" -#: whatsnew/2.6.rst:1960 +#: whatsnew/2.6.rst:1971 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 " @@ -2799,14 +2812,14 @@ msgid "" "P. Smith.)" msgstr "" -#: whatsnew/2.6.rst:1966 +#: whatsnew/2.6.rst:1977 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 "" -#: whatsnew/2.6.rst:1970 +#: whatsnew/2.6.rst:1981 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 " @@ -2814,20 +2827,20 @@ msgid "" "order. For example::" msgstr "" -#: whatsnew/2.6.rst:1975 +#: whatsnew/2.6.rst:1986 msgid "" ">>> list(heapq.merge([1, 3, 5, 9], [2, 8, 16]))\n" "[1, 2, 3, 5, 8, 9, 16]" msgstr "" -#: whatsnew/2.6.rst:1978 +#: whatsnew/2.6.rst:1989 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 "" -#: whatsnew/2.6.rst:1983 +#: whatsnew/2.6.rst:1994 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:" @@ -2835,7 +2848,7 @@ msgid "" "by Raymond Hettinger.)" msgstr "" -#: whatsnew/2.6.rst:1989 +#: whatsnew/2.6.rst:2000 msgid "" "An optional ``timeout`` parameter, specifying a timeout measured in seconds, " "was added to the :class:`httplib.HTTPConnection >> tuple(itertools.izip_longest([1,2,3], [1,2,3,4,5]))\n" "((1, 1), (2, 2), (3, 3), (None, 4), (None, 5))" msgstr "" -#: whatsnew/2.6.rst:2013 +#: whatsnew/2.6.rst:2024 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 "" -#: whatsnew/2.6.rst:2017 +#: whatsnew/2.6.rst:2028 msgid "" ">>> list(itertools.product([1,2,3], [4,5,6]))\n" "[(1, 4), (1, 5), (1, 6),\n" @@ -2889,25 +2902,25 @@ msgid "" " (3, 4), (3, 5), (3, 6)]" msgstr "" -#: whatsnew/2.6.rst:2022 +#: whatsnew/2.6.rst:2033 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 "" -#: whatsnew/2.6.rst:2027 +#: whatsnew/2.6.rst:2038 msgid "" ">>> list(itertools.product([1,2], repeat=3))\n" "[(1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2),\n" " (2, 1, 1), (2, 1, 2), (2, 2, 1), (2, 2, 2)]" msgstr "" -#: whatsnew/2.6.rst:2031 +#: whatsnew/2.6.rst:2042 msgid "With two iterables, *2N*-tuples are returned. ::" msgstr "" -#: whatsnew/2.6.rst:2033 +#: whatsnew/2.6.rst:2044 msgid "" ">>> list(itertools.product([1,2], [3,4], repeat=2))\n" "[(1, 3, 1, 3), (1, 3, 1, 4), (1, 3, 2, 3), (1, 3, 2, 4),\n" @@ -2916,13 +2929,13 @@ msgid "" " (2, 4, 1, 3), (2, 4, 1, 4), (2, 4, 2, 3), (2, 4, 2, 4)]" msgstr "" -#: whatsnew/2.6.rst:2039 +#: whatsnew/2.6.rst:2050 msgid "" "``combinations(iterable, r)`` returns sub-sequences of length *r* from the " "elements of *iterable*. ::" msgstr "" -#: whatsnew/2.6.rst:2042 +#: whatsnew/2.6.rst:2053 msgid "" ">>> list(itertools.combinations('123', 2))\n" "[('1', '2'), ('1', '3'), ('2', '3')]\n" @@ -2933,14 +2946,14 @@ msgid "" " ('1', '3', '4'), ('2', '3', '4')]" msgstr "" -#: whatsnew/2.6.rst:2050 +#: whatsnew/2.6.rst:2061 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 "" -#: whatsnew/2.6.rst:2054 +#: whatsnew/2.6.rst:2065 msgid "" ">>> list(itertools.permutations([1,2,3,4], 2))\n" "[(1, 2), (1, 3), (1, 4),\n" @@ -2949,7 +2962,7 @@ msgid "" " (4, 1), (4, 2), (4, 3)]" msgstr "" -#: whatsnew/2.6.rst:2060 +#: whatsnew/2.6.rst:2071 msgid "" "``itertools.chain(*iterables)`` is an existing function in :mod:`itertools` " "that gained a new constructor in Python 2.6. ``itertools.chain." @@ -2958,17 +2971,17 @@ msgid "" "iterable, then all the elements of the second, and so on. ::" msgstr "" -#: whatsnew/2.6.rst:2067 +#: whatsnew/2.6.rst:2078 msgid "" ">>> list(itertools.chain.from_iterable([[1,2,3], [4,5,6]]))\n" "[1, 2, 3, 4, 5, 6]" msgstr "" -#: whatsnew/2.6.rst:2070 +#: whatsnew/2.6.rst:2081 msgid "(All contributed by Raymond Hettinger.)" msgstr "" -#: whatsnew/2.6.rst:2072 +#: whatsnew/2.6.rst:2083 msgid "" "The :mod:`logging` module's :class:`FileHandler` class and its subclasses :" "class:`WatchedFileHandler`, :class:`RotatingFileHandler`, and :class:" @@ -2977,68 +2990,68 @@ msgid "" "the first :meth:`emit` call is made. (Contributed by Vinay Sajip.)" msgstr "" -#: whatsnew/2.6.rst:2079 +#: whatsnew/2.6.rst:2090 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 "" -#: whatsnew/2.6.rst:2084 +#: whatsnew/2.6.rst:2095 msgid "Several new functions were added to the :mod:`math` module:" msgstr "" -#: whatsnew/2.6.rst:2086 +#: whatsnew/2.6.rst:2097 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 "" -#: whatsnew/2.6.rst:2089 +#: whatsnew/2.6.rst:2100 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 "" -#: whatsnew/2.6.rst:2094 +#: whatsnew/2.6.rst:2105 msgid "" ":func:`~math.factorial` computes the factorial of a number. (Contributed by " "Raymond Hettinger; :issue:`2138`.)" msgstr "" -#: whatsnew/2.6.rst:2097 +#: whatsnew/2.6.rst:2108 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 "" -#: whatsnew/2.6.rst:2102 +#: whatsnew/2.6.rst:2113 msgid "" ":func:`~math.acosh`, :func:`~math.asinh` and :func:`~math.atanh` compute the " "inverse hyperbolic functions." msgstr "" -#: whatsnew/2.6.rst:2105 +#: whatsnew/2.6.rst:2116 msgid ":func:`~math.log1p` returns the natural logarithm of *1+x* (base *e*)." msgstr "" -#: whatsnew/2.6.rst:2108 +#: whatsnew/2.6.rst:2119 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 "" -#: whatsnew/2.6.rst:2113 +#: whatsnew/2.6.rst:2124 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 "" -#: whatsnew/2.6.rst:2117 +#: whatsnew/2.6.rst:2128 msgid "" "Whenever possible, the module follows the recommendations of the C99 " "standard about 754's special values. For example, ``sqrt(-1.)`` should now " @@ -3050,11 +3063,11 @@ msgid "" "`OverflowError`. (See :issue:`711019` and :issue:`1640`.)" msgstr "" -#: whatsnew/2.6.rst:2127 +#: whatsnew/2.6.rst:2138 msgid "(Contributed by Christian Heimes and Mark Dickinson.)" msgstr "" -#: whatsnew/2.6.rst:2129 +#: whatsnew/2.6.rst:2140 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. " @@ -3062,14 +3075,14 @@ msgid "" "which to stop searching. (Contributed by John Lenton.)" msgstr "" -#: whatsnew/2.6.rst:2135 +#: whatsnew/2.6.rst:2146 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 "" -#: whatsnew/2.6.rst:2140 +#: whatsnew/2.6.rst:2151 msgid "" ">>> # Equivalent to lambda s: s.replace('old', 'new')\n" ">>> replacer = operator.methodcaller('replace', 'old', 'new')\n" @@ -3077,17 +3090,17 @@ msgid "" "'new wine in new bottles'" msgstr "" -#: whatsnew/2.6.rst:2145 +#: whatsnew/2.6.rst:2156 msgid "(Contributed by Georg Brandl, after a suggestion by Gregory Petrosyan.)" msgstr "" -#: whatsnew/2.6.rst:2147 +#: whatsnew/2.6.rst:2158 msgid "" "The :func:`attrgetter` function now accepts dotted names and performs the " "corresponding attribute lookups::" msgstr "" -#: whatsnew/2.6.rst:2150 +#: whatsnew/2.6.rst:2161 msgid "" ">>> inst_name = operator.attrgetter(\n" "... '__class__.__name__')\n" @@ -3097,11 +3110,11 @@ msgid "" "'_Helper'" msgstr "" -#: whatsnew/2.6.rst:2157 +#: whatsnew/2.6.rst:2168 msgid "(Contributed by Georg Brandl, after a suggestion by Barry Warsaw.)" msgstr "" -#: whatsnew/2.6.rst:2159 +#: whatsnew/2.6.rst:2170 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 " @@ -3109,7 +3122,7 @@ msgid "" "(Contributed by Georg Brandl and Christian Heimes.)" msgstr "" -#: whatsnew/2.6.rst:2165 +#: whatsnew/2.6.rst:2176 msgid "" ":func:`chflags` and :func:`lchflags` are wrappers for the corresponding " "system calls (where they're available), changing the flags set on a file. " @@ -3119,7 +3132,7 @@ msgid "" "the file. (Contributed by M. Levinson.)" msgstr "" -#: whatsnew/2.6.rst:2173 +#: whatsnew/2.6.rst:2184 msgid "" "``os.closerange(low, high)`` efficiently closes all file descriptors from " "*low* to *high*, ignoring any errors and not including *high* itself. This " @@ -3127,14 +3140,14 @@ msgid "" "processes faster. (Contributed by Georg Brandl; :issue:`1663329`.)" msgstr "" -#: whatsnew/2.6.rst:2178 +#: whatsnew/2.6.rst:2189 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 "" -#: whatsnew/2.6.rst:2182 +#: whatsnew/2.6.rst:2193 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 " @@ -3143,7 +3156,7 @@ msgid "" "if there's a symlink that points to a parent directory. (:issue:`1273829`)" msgstr "" -#: whatsnew/2.6.rst:2189 +#: whatsnew/2.6.rst:2200 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 " @@ -3152,7 +3165,7 @@ msgid "" "`1115886`)" msgstr "" -#: whatsnew/2.6.rst:2196 +#: whatsnew/2.6.rst:2207 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 " @@ -3160,14 +3173,14 @@ msgid "" "issue:`1339796`.)" msgstr "" -#: whatsnew/2.6.rst:2201 +#: whatsnew/2.6.rst:2212 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 "" -#: whatsnew/2.6.rst:2206 +#: whatsnew/2.6.rst:2217 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 " @@ -3175,14 +3188,14 @@ msgid "" "Bernstein; :issue:`1393667`.)" msgstr "" -#: whatsnew/2.6.rst:2211 +#: whatsnew/2.6.rst:2222 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 "" -#: whatsnew/2.6.rst:2216 +#: whatsnew/2.6.rst:2227 msgid "" "The :mod:`pickletools` module now has an :func:`optimize` function that " "takes a string containing a pickle and removes some unused opcodes, " @@ -3190,14 +3203,14 @@ msgid "" "(Contributed by Raymond Hettinger.)" msgstr "" -#: whatsnew/2.6.rst:2221 +#: whatsnew/2.6.rst:2232 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 "" -#: whatsnew/2.6.rst:2225 +#: whatsnew/2.6.rst:2236 msgid "" ">>> import pkgutil\n" ">>> print pkgutil.get_data('test', 'exception_hierarchy.txt')\n" @@ -3211,18 +3224,18 @@ msgid "" " ..." msgstr "" -#: whatsnew/2.6.rst:2236 +#: whatsnew/2.6.rst:2247 msgid "(Contributed by Paul Moore; :issue:`2439`.)" msgstr "" -#: whatsnew/2.6.rst:2238 +#: whatsnew/2.6.rst:2249 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 "" -#: whatsnew/2.6.rst:2243 +#: whatsnew/2.6.rst:2254 msgid "" "The :mod:`Queue` module now provides queue variants that retrieve entries in " "different orders. The :class:`PriorityQueue` class stores queued items in a " @@ -3231,7 +3244,7 @@ msgid "" "(Contributed by Raymond Hettinger.)" msgstr "" -#: whatsnew/2.6.rst:2250 +#: whatsnew/2.6.rst:2261 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. " @@ -3240,7 +3253,7 @@ msgid "" "(Contributed by Shawn Ligocki; :issue:`1727780`.)" msgstr "" -#: whatsnew/2.6.rst:2257 +#: whatsnew/2.6.rst:2268 msgid "" "The new ``triangular(low, high, mode)`` function returns random numbers " "following a triangular distribution. The returned values are between *low* " @@ -3249,14 +3262,14 @@ msgid "" "der Laan and Raymond Hettinger; :issue:`1681432`.)" msgstr "" -#: whatsnew/2.6.rst:2264 +#: whatsnew/2.6.rst:2275 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 "" -#: whatsnew/2.6.rst:2269 +#: whatsnew/2.6.rst:2280 msgid "" "The regular expression module is implemented by compiling bytecodes for a " "tiny regex-specific virtual machine. Untrusted code could create malicious " @@ -3265,14 +3278,14 @@ msgid "" "for Google App Engine; :issue:`3487`.)" msgstr "" -#: whatsnew/2.6.rst:2276 +#: whatsnew/2.6.rst:2287 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 "" -#: whatsnew/2.6.rst:2280 +#: whatsnew/2.6.rst:2291 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, " @@ -3280,7 +3293,7 @@ msgid "" "action, argument)``. (Contributed by Raymond Hettinger; :issue:`1861`.)" msgstr "" -#: whatsnew/2.6.rst:2286 +#: whatsnew/2.6.rst:2297 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 " @@ -3290,7 +3303,7 @@ msgid "" "Heimes; :issue:`1657`.)" msgstr "" -#: whatsnew/2.6.rst:2294 +#: whatsnew/2.6.rst:2305 msgid "" "The :func:`shutil.copytree` function now has an optional *ignore* argument " "that takes a callable object. This callable will receive each directory " @@ -3298,7 +3311,7 @@ msgid "" "that will be ignored, not copied." msgstr "" -#: whatsnew/2.6.rst:2299 +#: whatsnew/2.6.rst:2310 msgid "" "The :mod:`shutil` module also provides an :func:`ignore_patterns` function " "for use with this new parameter. :func:`ignore_patterns` takes an arbitrary " @@ -3308,17 +3321,17 @@ msgid "" "Emacs backup files, which have names ending with '~'::" msgstr "" -#: whatsnew/2.6.rst:2307 +#: whatsnew/2.6.rst:2318 msgid "" "shutil.copytree('Doc/library', '/tmp/library',\n" " ignore=shutil.ignore_patterns('*~', '.svn'))" msgstr "" -#: whatsnew/2.6.rst:2310 +#: whatsnew/2.6.rst:2321 msgid "(Contributed by Tarek Ziadé; :issue:`2663`.)" msgstr "" -#: whatsnew/2.6.rst:2312 +#: whatsnew/2.6.rst:2323 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, " @@ -3330,7 +3343,7 @@ msgid "" "descriptor." msgstr "" -#: whatsnew/2.6.rst:2322 +#: whatsnew/2.6.rst:2333 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 :" @@ -3340,18 +3353,18 @@ msgid "" "loop will be woken up, avoiding the need to poll." msgstr "" -#: whatsnew/2.6.rst:2330 +#: whatsnew/2.6.rst:2341 msgid "(Contributed by Adam Olsen; :issue:`1583`.)" msgstr "" -#: whatsnew/2.6.rst:2332 +#: whatsnew/2.6.rst:2343 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 "" -#: whatsnew/2.6.rst:2336 +#: whatsnew/2.6.rst:2347 msgid "" "The :func:`setitimer` and :func:`getitimer` functions have also been added " "(where they're available). :func:`setitimer` allows setting interval timers " @@ -3360,7 +3373,7 @@ msgid "" "process+system time. (Contributed by Guilherme Polo; :issue:`2240`.)" msgstr "" -#: whatsnew/2.6.rst:2343 +#: whatsnew/2.6.rst:2354 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 " @@ -3370,7 +3383,7 @@ msgid "" "seconds. (Contributed by Facundo Batista.)" msgstr "" -#: whatsnew/2.6.rst:2351 +#: whatsnew/2.6.rst:2362 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 " @@ -3378,14 +3391,14 @@ msgid "" "issue:`957003`.)" msgstr "" -#: whatsnew/2.6.rst:2356 +#: whatsnew/2.6.rst:2367 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 "" -#: whatsnew/2.6.rst:2361 +#: whatsnew/2.6.rst:2372 msgid "" "The :mod:`socket` module now supports TIPC (https://tipc.sourceforge.net/), " "a high-performance non-IP-based protocol designed for use in clustered " @@ -3393,7 +3406,7 @@ msgid "" "Bertogli; :issue:`1646`.)" msgstr "" -#: whatsnew/2.6.rst:2366 +#: whatsnew/2.6.rst:2377 msgid "" "A new function, :func:`create_connection`, takes an address and connects to " "it using an optional timeout value, returning the connected socket object. " @@ -3403,7 +3416,7 @@ msgid "" "make your code work with IPv6." msgstr "" -#: whatsnew/2.6.rst:2374 +#: whatsnew/2.6.rst:2385 msgid "" "The base classes in the :mod:`SocketServer ` module now " "support calling a :meth:`~socketserver.BaseServer.handle_timeout` method " @@ -3415,19 +3428,19 @@ msgid "" "Yasskin; :issue:`742598`, :issue:`1193577`.)" msgstr "" -#: whatsnew/2.6.rst:2383 +#: whatsnew/2.6.rst:2394 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 "" -#: whatsnew/2.6.rst:2387 +#: whatsnew/2.6.rst:2398 msgid "" "The :mod:`struct` module now supports the C99 :c:expr:`_Bool` type, using " "the format character ``'?'``. (Contributed by David Remahl.)" msgstr "" -#: whatsnew/2.6.rst:2391 +#: whatsnew/2.6.rst:2402 msgid "" "The :class:`~subprocess.Popen` objects provided by the :mod:`subprocess` " "module now have :meth:`~subprocess.Popen.terminate`, :meth:`~subprocess." @@ -3437,7 +3450,7 @@ msgid "" "TerminateProcess`. (Contributed by Christian Heimes.)" msgstr "" -#: whatsnew/2.6.rst:2398 +#: whatsnew/2.6.rst:2409 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 " @@ -3447,7 +3460,7 @@ msgid "" "several others. (Contributed by Christian Heimes; :issue:`1534`.)" msgstr "" -#: whatsnew/2.6.rst:2406 +#: whatsnew/2.6.rst:2417 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 " @@ -3459,7 +3472,7 @@ msgid "" "written or not. (Contributed by Neal Norwitz and Georg Brandl.)" msgstr "" -#: whatsnew/2.6.rst:2417 +#: whatsnew/2.6.rst:2428 msgid "" "Information about the command-line arguments supplied to the Python " "interpreter is available by reading attributes of a named tuple available as " @@ -3468,7 +3481,7 @@ msgid "" "These attributes are all read-only. (Contributed by Christian Heimes.)" msgstr "" -#: whatsnew/2.6.rst:2425 +#: whatsnew/2.6.rst:2436 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 " @@ -3477,14 +3490,14 @@ msgid "" "Schuppenies; :issue:`2898`.)" msgstr "" -#: whatsnew/2.6.rst:2432 +#: whatsnew/2.6.rst:2443 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 "" -#: whatsnew/2.6.rst:2436 +#: whatsnew/2.6.rst:2447 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 " @@ -3492,13 +3505,13 @@ msgid "" "to open a file using a different format::" msgstr "" -#: whatsnew/2.6.rst:2441 +#: whatsnew/2.6.rst:2452 msgid "" "tar = tarfile.open(\"output.tar\", \"w\",\n" " format=tarfile.PAX_FORMAT)" msgstr "" -#: whatsnew/2.6.rst:2444 +#: whatsnew/2.6.rst:2455 msgid "" "The new ``encoding`` and ``errors`` parameters specify an encoding and an " "error handling scheme for character conversions. ``'strict'``, " @@ -3508,7 +3521,7 @@ msgid "" "PAX format supports Unicode filenames, defaulting to UTF-8 encoding.)" msgstr "" -#: whatsnew/2.6.rst:2452 +#: whatsnew/2.6.rst:2463 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 " @@ -3518,18 +3531,18 @@ msgid "" "added directories." msgstr "" -#: whatsnew/2.6.rst:2460 +#: whatsnew/2.6.rst:2471 msgid "(All changes contributed by Lars Gustäbel)." msgstr "" -#: whatsnew/2.6.rst:2462 +#: whatsnew/2.6.rst:2473 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 "" -#: whatsnew/2.6.rst:2466 +#: whatsnew/2.6.rst:2477 msgid "" "The :class:`tempfile.NamedTemporaryFile` class usually deletes the temporary " "file it created when the file is closed. This behaviour can now be changed " @@ -3537,7 +3550,7 @@ msgid "" "Miller; :issue:`1537850`.)" msgstr "" -#: whatsnew/2.6.rst:2471 +#: whatsnew/2.6.rst:2482 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 " @@ -3545,7 +3558,7 @@ msgid "" "(Contributed by Dustin J. Mitchell.)" msgstr "" -#: whatsnew/2.6.rst:2476 +#: whatsnew/2.6.rst:2487 msgid "" "The :class:`NamedTemporaryFile` and :class:`SpooledTemporaryFile` classes " "both work as context managers, so you can write ``with tempfile." @@ -3553,7 +3566,7 @@ msgid "" "issue:`2021`.)" msgstr "" -#: whatsnew/2.6.rst:2481 +#: whatsnew/2.6.rst:2492 msgid "" "The :mod:`test.test_support ` module gained a number of " "context managers useful for writing tests. :func:`~test.support.os_helper." @@ -3561,7 +3574,7 @@ msgid "" "environment variables and automatically restores them to their old values." msgstr "" -#: whatsnew/2.6.rst:2487 +#: whatsnew/2.6.rst:2498 msgid "" "Another context manager, :class:`TransientResource`, can surround calls to " "resources that may or may not be available; it will catch and ignore a " @@ -3569,7 +3582,7 @@ msgid "" "certain failures when connecting to an external web site::" msgstr "" -#: whatsnew/2.6.rst:2493 +#: whatsnew/2.6.rst:2504 msgid "" "with test_support.TransientResource(IOError,\n" " errno=errno.ETIMEDOUT):\n" @@ -3577,14 +3590,14 @@ msgid "" " ..." msgstr "" -#: whatsnew/2.6.rst:2498 +#: whatsnew/2.6.rst:2509 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 "" -#: whatsnew/2.6.rst:2502 +#: whatsnew/2.6.rst:2513 msgid "" "with test_support.check_warnings() as wrec:\n" " warnings.simplefilter(\"always\")\n" @@ -3593,18 +3606,18 @@ msgid "" " assert len(wrec.warnings) == 1, \"Multiple warnings raised\"" msgstr "" -#: whatsnew/2.6.rst:2508 +#: whatsnew/2.6.rst:2519 msgid "(Contributed by Brett Cannon.)" msgstr "" -#: whatsnew/2.6.rst:2510 +#: whatsnew/2.6.rst:2521 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 "" -#: whatsnew/2.6.rst:2515 +#: whatsnew/2.6.rst:2526 msgid "" ">>> S = \"\"\"This sentence has a bunch of\n" "... extra whitespace.\"\"\"\n" @@ -3621,11 +3634,11 @@ msgid "" ">>>" msgstr "" -#: whatsnew/2.6.rst:2529 +#: whatsnew/2.6.rst:2540 msgid "(Contributed by Dwayne Bailey; :issue:`1581073`.)" msgstr "" -#: whatsnew/2.6.rst:2531 +#: whatsnew/2.6.rst:2542 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 " @@ -3638,14 +3651,14 @@ msgid "" "Peterson.)" msgstr "" -#: whatsnew/2.6.rst:2542 +#: whatsnew/2.6.rst:2553 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 "" -#: whatsnew/2.6.rst:2547 +#: whatsnew/2.6.rst:2558 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 " @@ -3655,62 +3668,62 @@ msgid "" "issue:`1533909`.)" msgstr "" -#: whatsnew/2.6.rst:2556 +#: whatsnew/2.6.rst:2567 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 "" -#: whatsnew/2.6.rst:2561 +#: whatsnew/2.6.rst:2572 msgid "" "The :mod:`turtle` module for turtle graphics was greatly enhanced by Gregor " "Lingl. New features in the module include:" msgstr "" -#: whatsnew/2.6.rst:2564 +#: whatsnew/2.6.rst:2575 msgid "Better animation of turtle movement and rotation." msgstr "" -#: whatsnew/2.6.rst:2565 +#: whatsnew/2.6.rst:2576 msgid "" "Control over turtle movement using the new :meth:`delay`, :meth:`tracer`, " "and :meth:`speed` methods." msgstr "" -#: whatsnew/2.6.rst:2567 +#: whatsnew/2.6.rst:2578 msgid "" "The ability to set new shapes for the turtle, and to define a new coordinate " "system." msgstr "" -#: whatsnew/2.6.rst:2569 +#: whatsnew/2.6.rst:2580 msgid "Turtles now have an :meth:`undo` method that can roll back actions." msgstr "" -#: whatsnew/2.6.rst:2570 +#: whatsnew/2.6.rst:2581 msgid "" "Simple support for reacting to input events such as mouse and keyboard " "activity, making it possible to write simple games." msgstr "" -#: whatsnew/2.6.rst:2572 +#: whatsnew/2.6.rst:2583 msgid "" "A :file:`turtle.cfg` file can be used to customize the starting appearance " "of the turtle's screen." msgstr "" -#: whatsnew/2.6.rst:2574 +#: whatsnew/2.6.rst:2585 msgid "" "The module's docstrings can be replaced by new docstrings that have been " "translated into another language." msgstr "" -#: whatsnew/2.6.rst:2577 +#: whatsnew/2.6.rst:2588 msgid "(:issue:`1513695`)" msgstr "" -#: whatsnew/2.6.rst:2579 +#: whatsnew/2.6.rst:2590 msgid "" "An optional ``timeout`` parameter was added to the :func:`urllib.urlopen " "` function and the :class:`urllib.ftpwrapper` class " @@ -3719,7 +3732,7 @@ msgid "" "example::" msgstr "" -#: whatsnew/2.6.rst:2585 +#: whatsnew/2.6.rst:2596 msgid "" ">>> u = urllib2.urlopen(\"http://slow.example.com\",\n" " timeout=3)\n" @@ -3729,17 +3742,17 @@ msgid "" ">>>" msgstr "" -#: whatsnew/2.6.rst:2592 +#: whatsnew/2.6.rst:2603 msgid "(Added by Facundo Batista.)" msgstr "" -#: whatsnew/2.6.rst:2594 +#: whatsnew/2.6.rst:2605 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 "" -#: whatsnew/2.6.rst:2598 +#: whatsnew/2.6.rst:2609 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 " @@ -3747,14 +3760,14 @@ msgid "" "of the :mod:`warnings` module in C code.)" msgstr "" -#: whatsnew/2.6.rst:2603 +#: whatsnew/2.6.rst:2614 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 "" -#: whatsnew/2.6.rst:2607 +#: whatsnew/2.6.rst:2618 msgid "" "The XML-RPC :class:`SimpleXMLRPCServer ` and :class:" "`DocXMLRPCServer ` classes can now be prevented from " @@ -3766,7 +3779,7 @@ msgid "" "`1599845`.)" msgstr "" -#: whatsnew/2.6.rst:2616 +#: whatsnew/2.6.rst:2627 msgid "" ":class:`SimpleXMLRPCServer` also has a :attr:`_send_traceback_header` " "attribute; if true, the exception and formatted traceback are returned as " @@ -3777,7 +3790,7 @@ msgid "" "Code 2007.)" msgstr "" -#: whatsnew/2.6.rst:2624 +#: whatsnew/2.6.rst:2635 msgid "" "The :mod:`xmlrpclib ` module no longer automatically " "converts :class:`datetime.date` and :class:`datetime.time` to the :class:" @@ -3790,14 +3803,14 @@ msgid "" "`2985`)." msgstr "" -#: whatsnew/2.6.rst:2634 +#: whatsnew/2.6.rst:2645 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 "" -#: whatsnew/2.6.rst:2639 +#: whatsnew/2.6.rst:2650 msgid "" "z = zipfile.ZipFile('python-251.zip')\n" "\n" @@ -3809,11 +3822,11 @@ msgid "" "z.extractall()" msgstr "" -#: whatsnew/2.6.rst:2648 +#: whatsnew/2.6.rst:2659 msgid "(Contributed by Alan McIntyre; :issue:`467924`.)" msgstr "" -#: whatsnew/2.6.rst:2650 +#: whatsnew/2.6.rst:2661 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 " @@ -3821,17 +3834,17 @@ msgid "" "Horler; :issue:`1775025`.)" msgstr "" -#: whatsnew/2.6.rst:2655 +#: whatsnew/2.6.rst:2666 msgid "" "Finally, :mod:`zipfile` now supports using Unicode filenames for archived " "files. (Contributed by Alexey Borzenkov; :issue:`1734346`.)" msgstr "" -#: whatsnew/2.6.rst:2662 +#: whatsnew/2.6.rst:2673 msgid "The :mod:`ast` module" msgstr "" -#: whatsnew/2.6.rst:2664 +#: whatsnew/2.6.rst:2675 msgid "" "The :mod:`ast` module provides an Abstract Syntax Tree representation of " "Python code, and Armin Ronacher contributed a set of helper functions that " @@ -3839,13 +3852,13 @@ msgid "" "packages, code analyzers, and similar tools that process Python code." msgstr "" -#: whatsnew/2.6.rst:2671 +#: whatsnew/2.6.rst:2682 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 "" -#: whatsnew/2.6.rst:2675 +#: whatsnew/2.6.rst:2686 msgid "" "import ast\n" "\n" @@ -3858,11 +3871,11 @@ msgid "" "print ast.dump(t)" msgstr "" -#: whatsnew/2.6.rst:2685 +#: whatsnew/2.6.rst:2696 msgid "This outputs a deeply nested tree::" msgstr "" -#: whatsnew/2.6.rst:2687 +#: whatsnew/2.6.rst:2698 msgid "" "Module(body=[\n" " Assign(targets=[\n" @@ -3896,7 +3909,7 @@ msgid "" " ])" msgstr "" -#: whatsnew/2.6.rst:2718 +#: whatsnew/2.6.rst:2729 msgid "" "The :func:`literal_eval` method takes a string or an AST representing a " "literal expression, parses and evaluates it, and returns the resulting " @@ -3906,7 +3919,7 @@ msgid "" "an :func:`eval` call, :func:`literal_eval` will handle it safely::" msgstr "" -#: whatsnew/2.6.rst:2726 +#: whatsnew/2.6.rst:2737 msgid "" ">>> literal = '(\"a\", \"b\", {2:4, 3:8, 1:2})'\n" ">>> print ast.literal_eval(literal)\n" @@ -3917,44 +3930,44 @@ msgid "" "ValueError: malformed string" msgstr "" -#: whatsnew/2.6.rst:2734 +#: whatsnew/2.6.rst:2745 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 "" -#: whatsnew/2.6.rst:2742 -msgid "The :mod:`future_builtins` module" +#: whatsnew/2.6.rst:2753 +msgid "The :mod:`!future_builtins` module" msgstr "" -#: whatsnew/2.6.rst:2744 +#: whatsnew/2.6.rst:2755 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 " +"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 "" -#: whatsnew/2.6.rst:2751 +#: whatsnew/2.6.rst:2762 msgid "The functions in this module currently include:" msgstr "" -#: whatsnew/2.6.rst:2753 +#: whatsnew/2.6.rst:2764 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 "" -#: whatsnew/2.6.rst:2757 +#: whatsnew/2.6.rst:2768 msgid "" "``filter(predicate, iterable)``, ``map(func, iterable1, ...)``: the 3.0 " "versions return iterators, unlike the 2.x builtins which return lists." msgstr "" -#: whatsnew/2.6.rst:2761 +#: whatsnew/2.6.rst:2772 msgid "" "``hex(value)``, ``oct(value)``: instead of calling the :meth:`__hex__` or :" "meth:`__oct__` methods, these versions will call the :meth:`__index__` " @@ -3962,11 +3975,11 @@ msgid "" "the new ``0o`` notation for its result." msgstr "" -#: whatsnew/2.6.rst:2770 +#: whatsnew/2.6.rst:2781 msgid "The :mod:`json` module: JavaScript Object Notation" msgstr "" -#: whatsnew/2.6.rst:2772 +#: whatsnew/2.6.rst:2783 msgid "" "The new :mod:`json` module supports the encoding and decoding of Python " "types in JSON (Javascript Object Notation). JSON is a lightweight " @@ -3974,13 +3987,13 @@ msgid "" "about JSON, see http://www.json.org." msgstr "" -#: whatsnew/2.6.rst:2777 +#: whatsnew/2.6.rst:2788 msgid "" ":mod:`json` comes with support for decoding and encoding most built-in " "Python types. The following example encodes and decodes a dictionary::" msgstr "" -#: whatsnew/2.6.rst:2780 +#: whatsnew/2.6.rst:2791 msgid "" ">>> import json\n" ">>> data = {\"spam\": \"foo\", \"parrot\": 42}\n" @@ -3991,28 +4004,28 @@ msgid "" "{\"spam\": \"foo\", \"parrot\": 42}" msgstr "" -#: whatsnew/2.6.rst:2788 +#: whatsnew/2.6.rst:2799 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 "" -#: whatsnew/2.6.rst:2791 +#: whatsnew/2.6.rst:2802 msgid ":mod:`json` (originally called simplejson) was written by Bob Ippolito." msgstr "" -#: whatsnew/2.6.rst:2798 +#: whatsnew/2.6.rst:2809 msgid "The :mod:`plistlib` module: A Property-List Parser" msgstr "" -#: whatsnew/2.6.rst:2800 +#: whatsnew/2.6.rst:2811 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 "" -#: whatsnew/2.6.rst:2805 +#: whatsnew/2.6.rst:2816 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 " @@ -4020,11 +4033,11 @@ msgid "" "standard library." msgstr "" -#: whatsnew/2.6.rst:2810 +#: whatsnew/2.6.rst:2821 msgid "Using the module is simple::" msgstr "" -#: whatsnew/2.6.rst:2812 +#: whatsnew/2.6.rst:2823 msgid "" "import sys\n" "import plistlib\n" @@ -4049,29 +4062,29 @@ msgid "" "plistlib.writePlist(data_struct, sys.stdout)" msgstr "" -#: whatsnew/2.6.rst:2837 +#: whatsnew/2.6.rst:2848 msgid "ctypes Enhancements" msgstr "" -#: whatsnew/2.6.rst:2839 +#: whatsnew/2.6.rst:2850 msgid "" "Thomas Heller continued to maintain and enhance the :mod:`ctypes` module." msgstr "" -#: whatsnew/2.6.rst:2842 +#: whatsnew/2.6.rst:2853 msgid "" ":mod:`ctypes` now supports a :class:`c_bool` datatype that represents the " "C99 ``bool`` type. (Contributed by David Remahl; :issue:`1649190`.)" msgstr "" -#: whatsnew/2.6.rst:2846 +#: whatsnew/2.6.rst:2857 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 "" -#: whatsnew/2.6.rst:2853 +#: whatsnew/2.6.rst:2864 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 " @@ -4079,14 +4092,14 @@ msgid "" "while :meth:`from_buffer` will share the same memory area." msgstr "" -#: whatsnew/2.6.rst:2860 +#: whatsnew/2.6.rst:2871 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 "" -#: whatsnew/2.6.rst:2864 +#: whatsnew/2.6.rst:2875 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 " @@ -4095,7 +4108,7 @@ msgid "" "error value." msgstr "" -#: whatsnew/2.6.rst:2870 +#: whatsnew/2.6.rst:2881 msgid "" "The Win32 LastError variable is similarly supported by the :func:`DLL`, :" "func:`OleDLL`, and :func:`WinDLL` functions. You supply " @@ -4103,18 +4116,18 @@ msgid "" "level methods :meth:`set_last_error` and :meth:`get_last_error`." msgstr "" -#: whatsnew/2.6.rst:2876 +#: whatsnew/2.6.rst:2887 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 "" -#: whatsnew/2.6.rst:2883 +#: whatsnew/2.6.rst:2894 msgid "Improved SSL Support" msgstr "" -#: whatsnew/2.6.rst:2885 +#: whatsnew/2.6.rst:2896 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 " @@ -4125,7 +4138,7 @@ msgid "" "removed and continues to work, though it will be removed in Python 3.0." msgstr "" -#: whatsnew/2.6.rst:2894 +#: whatsnew/2.6.rst:2905 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 " @@ -4133,35 +4146,35 @@ msgid "" "by calling the :meth:`getpeercert` method." msgstr "" -#: whatsnew/2.6.rst:2901 +#: whatsnew/2.6.rst:2912 msgid "The documentation for the :mod:`ssl` module." msgstr "" -#: whatsnew/2.6.rst:2906 +#: whatsnew/2.6.rst:2917 msgid "Deprecations and Removals" msgstr "" -#: whatsnew/2.6.rst:3262 +#: whatsnew/2.6.rst:3273 msgid "" "String exceptions have been removed. Attempting to use them raises a :exc:" "`TypeError`." msgstr "" -#: whatsnew/2.6.rst:2911 +#: whatsnew/2.6.rst:2922 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:`~BaseException.args` attribute." msgstr "" -#: whatsnew/2.6.rst:2916 +#: whatsnew/2.6.rst:2927 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 "" -#: whatsnew/2.6.rst:2921 +#: whatsnew/2.6.rst:2932 msgid "" "The list of deprecated modules is: :mod:`!audiodev`, :mod:`!bgenlocations`, :" "mod:`!buildtools`, :mod:`!bundlebuilder`, :mod:`!Canvas`, :mod:`!compiler`, :" @@ -4172,59 +4185,59 @@ msgid "" "toaiff`." msgstr "" -#: whatsnew/2.6.rst:2946 +#: whatsnew/2.6.rst:2957 msgid "The :mod:`!gopherlib` module has been removed." msgstr "" -#: whatsnew/2.6.rst:2948 +#: whatsnew/2.6.rst:2959 msgid "" "The :mod:`!MimeWriter` module and :mod:`!mimify` module have been " "deprecated; use the :mod:`email` package instead." msgstr "" -#: whatsnew/2.6.rst:2952 +#: whatsnew/2.6.rst:2963 msgid "" "The :mod:`!md5` module has been deprecated; use the :mod:`hashlib` module " "instead." msgstr "" -#: whatsnew/2.6.rst:2955 +#: whatsnew/2.6.rst:2966 msgid "" "The :mod:`!posixfile` module has been deprecated; :func:`fcntl.lockf` " "provides better locking." msgstr "" -#: whatsnew/2.6.rst:2958 +#: whatsnew/2.6.rst:2969 msgid "" "The :mod:`!popen2` module has been deprecated; use the :mod:`subprocess` " "module." msgstr "" -#: whatsnew/2.6.rst:2961 +#: whatsnew/2.6.rst:2972 msgid "The :mod:`!rgbimg` module has been removed." msgstr "" -#: whatsnew/2.6.rst:2963 +#: whatsnew/2.6.rst:2974 msgid "" "The :mod:`!sets` module has been deprecated; it's better to use the built-" "in :class:`set` and :class:`frozenset` types." msgstr "" -#: whatsnew/2.6.rst:2966 +#: whatsnew/2.6.rst:2977 msgid "" "The :mod:`!sha` module has been deprecated; use the :mod:`hashlib` module " "instead." msgstr "" -#: whatsnew/2.6.rst:2974 +#: whatsnew/2.6.rst:2985 msgid "Build and C API Changes" msgstr "" -#: whatsnew/2.6.rst:2976 +#: whatsnew/2.6.rst:2987 msgid "Changes to Python's build process and to the C API include:" msgstr "" -#: whatsnew/2.6.rst:2978 +#: whatsnew/2.6.rst:2989 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:" @@ -4232,14 +4245,14 @@ msgid "" "library." msgstr "" -#: whatsnew/2.6.rst:2983 +#: whatsnew/2.6.rst:2994 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 "" -#: whatsnew/2.6.rst:2988 +#: whatsnew/2.6.rst:2999 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-" @@ -4248,7 +4261,7 @@ msgid "" "(Contributed by Ronald Oussoren.)" msgstr "" -#: whatsnew/2.6.rst:2995 +#: whatsnew/2.6.rst:3006 msgid "" "A new function added in Python 2.6.6, :c:func:`!PySys_SetArgvEx`, sets the " "value of ``sys.argv`` and can optionally update ``sys.path`` to include the " @@ -4256,7 +4269,7 @@ msgid "" "value of an *updatepath* parameter." msgstr "" -#: whatsnew/2.6.rst:3000 +#: whatsnew/2.6.rst:3011 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 " @@ -4267,7 +4280,7 @@ msgid "" "and run." msgstr "" -#: whatsnew/2.6.rst:3008 +#: whatsnew/2.6.rst:3019 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 " @@ -4279,27 +4292,27 @@ msgid "" "discard the first ``sys.path`` component." msgstr "" -#: whatsnew/2.6.rst:3018 +#: whatsnew/2.6.rst:3029 msgid "" "Security issue reported as :cve:`2008-5983`; discussed in :gh:`50003`, and " "fixed by Antoine Pitrou." msgstr "" -#: whatsnew/2.6.rst:3021 +#: whatsnew/2.6.rst:3032 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 "" -#: whatsnew/2.6.rst:3026 +#: whatsnew/2.6.rst:3037 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 "" -#: whatsnew/2.6.rst:3031 +#: whatsnew/2.6.rst:3042 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 " @@ -4314,7 +4327,7 @@ msgid "" "Gregory P. Smith.)" msgstr "" -#: whatsnew/2.6.rst:3044 +#: whatsnew/2.6.rst:3055 msgid "" "Importing modules simultaneously in two different threads no longer " "deadlocks; it will now raise an :exc:`ImportError`. A new API function, :c:" @@ -4324,7 +4337,7 @@ msgid "" "(Contributed by Christian Heimes.)" msgstr "" -#: whatsnew/2.6.rst:3052 +#: whatsnew/2.6.rst:3063 msgid "" "Several functions return information about the platform's floating-point " "support. :c:func:`PyFloat_GetMax` returns the maximum representable " @@ -4336,7 +4349,7 @@ msgid "" "by Christian Heimes; :issue:`1534`.)" msgstr "" -#: whatsnew/2.6.rst:3063 +#: whatsnew/2.6.rst:3074 msgid "" "C functions and methods that use :c:func:`PyComplex_AsCComplex` will now " "accept arguments that have a :meth:`__complex__` method. In particular, the " @@ -4345,14 +4358,14 @@ msgid "" "Dickinson; :issue:`1675423`.)" msgstr "" -#: whatsnew/2.6.rst:3070 +#: whatsnew/2.6.rst:3081 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 "" -#: whatsnew/2.6.rst:3075 +#: whatsnew/2.6.rst:3086 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 " @@ -4361,7 +4374,7 @@ msgid "" "(Contributed by Christian Heimes.)" msgstr "" -#: whatsnew/2.6.rst:3082 +#: whatsnew/2.6.rst:3093 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:" @@ -4370,14 +4383,14 @@ msgid "" "still available in Python 2.6 for backward compatibility. (:issue:`1629`)" msgstr "" -#: whatsnew/2.6.rst:3091 +#: whatsnew/2.6.rst:3102 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 "" -#: whatsnew/2.6.rst:3095 +#: whatsnew/2.6.rst:3106 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 " @@ -4386,7 +4399,7 @@ msgid "" "``Py_MAXFREELIST`` is always defined." msgstr "" -#: whatsnew/2.6.rst:3102 +#: whatsnew/2.6.rst:3113 msgid "" "A new Makefile target, \"make patchcheck\", prepares the Python source tree " "for making a patch: it fixes trailing whitespace in all modified ``.py`` " @@ -4395,7 +4408,7 @@ msgid "" "(Contributed by Brett Cannon.)" msgstr "" -#: whatsnew/2.6.rst:3109 +#: whatsnew/2.6.rst:3120 msgid "" "Another new target, \"make profile-opt\", compiles a Python binary using " "GCC's profile-guided optimization. It compiles Python with profiling " @@ -4404,17 +4417,17 @@ msgid "" "Smith.)" msgstr "" -#: whatsnew/2.6.rst:3118 +#: whatsnew/2.6.rst:3129 msgid "Port-Specific Changes: Windows" msgstr "" -#: whatsnew/2.6.rst:3120 +#: whatsnew/2.6.rst:3131 msgid "" "The support for Windows 95, 98, ME and NT4 has been dropped. Python 2.6 " "requires at least Windows 2000 SP4." msgstr "" -#: whatsnew/2.6.rst:3123 +#: whatsnew/2.6.rst:3134 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 " @@ -4425,7 +4438,7 @@ msgid "" "Martin von Löwis.)" msgstr "" -#: whatsnew/2.6.rst:3131 +#: whatsnew/2.6.rst:3142 msgid "" "The :mod:`msvcrt` module now supports both the normal and wide char variants " "of the console I/O API. The :func:`~msvcrt.getwch` function reads a " @@ -4434,21 +4447,21 @@ msgid "" "writes it to the console. (Contributed by Christian Heimes.)" msgstr "" -#: whatsnew/2.6.rst:3138 +#: whatsnew/2.6.rst:3149 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 "" -#: whatsnew/2.6.rst:3142 +#: whatsnew/2.6.rst:3153 msgid "" "The :mod:`socket` module's socket objects now have an :meth:`~socket.socket." "ioctl` method that provides a limited interface to the :c:func:`WSAIoctl` " "system interface." msgstr "" -#: whatsnew/2.6.rst:3146 +#: whatsnew/2.6.rst:3157 msgid "" "The :mod:`_winreg ` module now has a function, :func:`~winreg." "ExpandEnvironmentStrings`, that expands environment variable references such " @@ -4457,7 +4470,7 @@ msgid "" "`with` statements. (Contributed by Christian Heimes.)" msgstr "" -#: whatsnew/2.6.rst:3153 +#: whatsnew/2.6.rst:3164 msgid "" ":mod:`_winreg ` also has better support for x64 systems, exposing " "the :func:`~winreg.DisableReflectionKey`, :func:`~winreg." @@ -4466,32 +4479,32 @@ msgid "" "64-bit systems. (:issue:`1753245`)" msgstr "" -#: whatsnew/2.6.rst:3159 +#: whatsnew/2.6.rst:3170 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 "" -#: whatsnew/2.6.rst:3167 +#: whatsnew/2.6.rst:3178 msgid "Port-Specific Changes: Mac OS X" msgstr "" -#: whatsnew/2.6.rst:3169 +#: whatsnew/2.6.rst:3180 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 "" -#: whatsnew/2.6.rst:3174 +#: whatsnew/2.6.rst:3185 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 "" -#: whatsnew/2.6.rst:3178 +#: whatsnew/2.6.rst:3189 msgid "" "Many other Mac OS modules have been deprecated and will be removed in Python " "3.0: :mod:`!_builtinSuites`, :mod:`!aepack`, :mod:`!aetools`, :mod:`!" @@ -4506,11 +4519,11 @@ msgid "" "mod:`!SystemEvents`, :mod:`!Terminal`, and :mod:`!terminalcommand`." msgstr "" -#: whatsnew/2.6.rst:3221 +#: whatsnew/2.6.rst:3232 msgid "Port-Specific Changes: IRIX" msgstr "" -#: whatsnew/2.6.rst:3223 +#: whatsnew/2.6.rst:3234 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:`!" @@ -4521,30 +4534,30 @@ msgid "" "`!torgb`, :mod:`!videoreader`, and :mod:`!WAIT`." msgstr "" -#: whatsnew/2.6.rst:3253 +#: whatsnew/2.6.rst:3264 msgid "Porting to Python 2.6" msgstr "" -#: whatsnew/2.6.rst:3255 +#: whatsnew/2.6.rst:3266 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code:" msgstr "" -#: whatsnew/2.6.rst:3258 +#: whatsnew/2.6.rst:3269 msgid "" "Classes that aren't supposed to be hashable should set ``__hash__ = None`` " "in their definitions to indicate the fact." msgstr "" -#: whatsnew/2.6.rst:3265 +#: whatsnew/2.6.rst:3276 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 "" -#: whatsnew/2.6.rst:3270 +#: whatsnew/2.6.rst:3281 msgid "" ":meth:`object.__init__` previously accepted arbitrary arguments and keyword " "arguments, ignoring them. In Python 2.6, this is no longer allowed and will " @@ -4553,7 +4566,7 @@ msgid "" "through using :func:`super`). See :issue:`1683368` for discussion." msgstr "" -#: whatsnew/2.6.rst:3277 +#: whatsnew/2.6.rst:3288 msgid "" "The :class:`Decimal` constructor now accepts leading and trailing whitespace " "when passed a string. Previously it would raise an :exc:`InvalidOperation` " @@ -4562,7 +4575,7 @@ msgid "" "`ConversionSyntax` exception." msgstr "" -#: whatsnew/2.6.rst:3284 +#: whatsnew/2.6.rst:3295 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 " @@ -4570,20 +4583,20 @@ msgid "" "explicitly checks for this case and raises an :exc:`ImportError`." msgstr "" -#: whatsnew/2.6.rst:3290 +#: whatsnew/2.6.rst:3301 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 "" -#: whatsnew/2.6.rst:3294 +#: whatsnew/2.6.rst:3305 msgid "" "C API: extension data types that shouldn't be hashable should define their " "``tp_hash`` slot to :c:func:`PyObject_HashNotImplemented`." msgstr "" -#: whatsnew/2.6.rst:3298 +#: whatsnew/2.6.rst:3309 msgid "" "The :mod:`socket` module exception :exc:`socket.error` now inherits from :" "exc:`IOError`. Previously it wasn't a subclass of :exc:`StandardError` but " @@ -4591,7 +4604,7 @@ msgid "" "`1706815`.)" msgstr "" -#: whatsnew/2.6.rst:3303 +#: whatsnew/2.6.rst:3314 msgid "" "The :mod:`xmlrpclib ` module no longer automatically " "converts :class:`datetime.date` and :class:`datetime.time` to the :class:" @@ -4601,32 +4614,32 @@ msgid "" "instances. (:issue:`1330538`)" msgstr "" -#: whatsnew/2.6.rst:3310 +#: whatsnew/2.6.rst:3321 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 "" -#: whatsnew/2.6.rst:3314 +#: whatsnew/2.6.rst:3325 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 "" -#: whatsnew/2.6.rst:3319 +#: whatsnew/2.6.rst:3330 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 "" -#: whatsnew/2.6.rst:3323 +#: whatsnew/2.6.rst:3334 msgid "For applications that embed Python:" msgstr "" -#: whatsnew/2.6.rst:3325 +#: whatsnew/2.6.rst:3336 msgid "" "The :c:func:`!PySys_SetArgvEx` function was added in Python 2.6.6, letting " "applications close a security hole when the existing :c:func:`!" @@ -4635,11 +4648,11 @@ msgid "" "using :c:func:`!PySys_SetArgvEx` with *updatepath* set to false." msgstr "" -#: whatsnew/2.6.rst:3338 +#: whatsnew/2.6.rst:3349 msgid "Acknowledgements" msgstr "" -#: whatsnew/2.6.rst:3340 +#: whatsnew/2.6.rst:3351 msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " @@ -4647,10 +4660,10 @@ msgid "" "Johnson, Chris Lambacher, Martin Michlmayr, Antoine Pitrou, Brian Warner." msgstr "" -#: whatsnew/2.6.rst:1068 +#: whatsnew/2.6.rst:1079 msgid "universal newlines" msgstr "" -#: whatsnew/2.6.rst:1068 +#: whatsnew/2.6.rst:1079 msgid "What's new" msgstr "" diff --git a/whatsnew/2.7.po b/whatsnew/2.7.po index 4a09b0d8..fdb026a5 100644 --- a/whatsnew/2.7.po +++ b/whatsnew/2.7.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1184,14 +1184,13 @@ msgstr "" #: whatsnew/2.7.rst:861 msgid "" -"When using :class:`@classmethod ` and :class:`@staticmethod " -"` to wrap methods as class or static methods, the wrapper " -"object now exposes the wrapped function as their :attr:`~method.__func__` " -"attribute. (Contributed by Amaury Forgeot d'Arc, after a suggestion by " -"George Sakkis; :issue:`5982`.)" +"When using :deco:`classmethod` and :deco:`staticmethod` to wrap methods as " +"class or static methods, the wrapper object now exposes the wrapped function " +"as their :attr:`~method.__func__` attribute. (Contributed by Amaury Forgeot " +"d'Arc, after a suggestion by George Sakkis; :issue:`5982`.)" msgstr "" -#: whatsnew/2.7.rst:2466 +#: whatsnew/2.7.rst:2464 msgid "" "When a restricted set of attributes were set using ``__slots__``, deleting " "an unset attribute would not raise :exc:`AttributeError` as you would " @@ -1660,7 +1659,7 @@ msgid "" "types. (Changed by Mark Dickinson; :issue:`6857`.)" msgstr "" -#: whatsnew/2.7.rst:2484 +#: whatsnew/2.7.rst:2482 msgid "" "Comparisons involving a signaling NaN value (or ``sNAN``) now signal :const:" "`~decimal.InvalidOperation` instead of silently returning a true or false " @@ -2123,8 +2122,9 @@ 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`)." +"which will prevent an error code being returned from :meth:`!recv` " +"operations that trigger an SSL renegotiation (fix by Antoine Pitrou; :issue:" +"`8222`)." msgstr "" #: whatsnew/2.7.rst:1547 @@ -2202,7 +2202,7 @@ msgid "" "Hylton.)" msgstr "" -#: whatsnew/2.7.rst:2500 +#: whatsnew/2.7.rst:2498 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 " @@ -2225,7 +2225,7 @@ msgid "" "(Contributed by Brian Curtin; :issue:`7766`.)" msgstr "" -#: whatsnew/2.7.rst:2504 +#: whatsnew/2.7.rst:2502 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 " @@ -2269,7 +2269,7 @@ msgid "" "Florent Xicluna; :issue:`8024`)." msgstr "" -#: whatsnew/2.7.rst:2512 +#: whatsnew/2.7.rst:2510 msgid "" "The :mod:`urlparse ` module's :func:`~urllib.parse.urlsplit` " "now handles unknown URL schemes in a fashion compliant with :rfc:`3986`: if " @@ -2279,25 +2279,25 @@ msgid "" "behaviour. For example, Python 2.6.4 or 2.5 will return the following:" msgstr "" -#: whatsnew/2.7.rst:2520 +#: whatsnew/2.7.rst:2518 msgid "" ">>> import urlparse\n" ">>> urlparse.urlsplit('invented://host/filename?query')\n" "('invented', '', '//host/filename?query', '', '')" msgstr "" -#: whatsnew/2.7.rst:2527 +#: whatsnew/2.7.rst:2525 msgid "Python 2.7 (and Python 2.6.5) will return:" msgstr "" -#: whatsnew/2.7.rst:2529 +#: whatsnew/2.7.rst:2527 msgid "" ">>> import urlparse\n" ">>> urlparse.urlsplit('invented://host/filename?query')\n" "('invented', 'host', '/filename?query', '', '')" msgstr "" -#: whatsnew/2.7.rst:2536 +#: whatsnew/2.7.rst:2534 msgid "" "(Python 2.7 actually produces slightly different output, since it returns a " "named tuple instead of a standard tuple.)" @@ -2843,8 +2843,8 @@ msgstr "" 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 " +"`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:" @@ -2859,7 +2859,7 @@ 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 :" +"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 "" @@ -3058,7 +3058,7 @@ msgid "" "Eric Smith; :issue:`5793`.)" msgstr "" -#: whatsnew/2.7.rst:2201 +#: whatsnew/2.7.rst:2199 msgid "" "Removed function: :c:func:`!PyEval_CallObject` is now only available as a " "macro. A function version was being kept around to preserve ABI linking " @@ -3066,7 +3066,7 @@ msgid "" "(Removed by Antoine Pitrou; :issue:`8276`.)" msgstr "" -#: whatsnew/2.7.rst:2206 +#: whatsnew/2.7.rst:2204 msgid "" "New format codes: the :c:func:`!PyString_FromFormat`, :c:func:`!" "PyString_FromFormatV`, and :c:func:`PyErr_Format` functions now accept " @@ -3074,7 +3074,7 @@ msgid "" "types. (Contributed by Mark Dickinson; :issue:`7228`.)" msgstr "" -#: whatsnew/2.7.rst:2212 +#: whatsnew/2.7.rst:2210 msgid "" "The complicated interaction between threads and process forking has been " "changed. Previously, the child process created by :func:`os.fork` might " @@ -3086,7 +3086,7 @@ msgid "" "replicated, and the child process would no longer be able to perform imports." msgstr "" -#: whatsnew/2.7.rst:2222 +#: whatsnew/2.7.rst:2220 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. " @@ -3094,31 +3094,31 @@ msgid "" "themselves, will not benefit from this clean-up." msgstr "" -#: whatsnew/2.7.rst:2228 +#: whatsnew/2.7.rst:2226 msgid "(Fixed by Thomas Wouters; :issue:`1590864`.)" msgstr "" -#: whatsnew/2.7.rst:2230 +#: whatsnew/2.7.rst:2228 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 "" -#: whatsnew/2.7.rst:2235 +#: whatsnew/2.7.rst:2233 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 :c:macro:" -"`T_STRING_INPLACE` attribute." +"type, Python will no longer let you try to delete or set a :c:macro:`!" +"T_STRING_INPLACE` attribute." msgstr "" -#: whatsnew/2.7.rst:2241 +#: whatsnew/2.7.rst:2239 msgid "" "Global symbols defined by the :mod:`ctypes` module are now prefixed with " "``Py``, or with ``_ctypes``. (Implemented by Thomas Heller; :issue:`3102`.)" msgstr "" -#: whatsnew/2.7.rst:2245 +#: whatsnew/2.7.rst:2243 msgid "" "New configure option: the :option:`!--with-system-expat` switch allows " "building the :mod:`pyexpat ` module to use the system " @@ -3126,7 +3126,7 @@ msgid "" "`7609`.)" msgstr "" -#: whatsnew/2.7.rst:2249 +#: whatsnew/2.7.rst:2247 msgid "" "New configure option: the :option:`!--with-valgrind` option will now disable " "the pymalloc allocator, which is difficult for the Valgrind memory-error " @@ -3135,46 +3135,46 @@ msgid "" "issue:`2422`.)" msgstr "" -#: whatsnew/2.7.rst:2256 +#: whatsnew/2.7.rst:2254 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 "" -#: whatsnew/2.7.rst:2261 +#: whatsnew/2.7.rst:2259 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` " +"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 "" -#: whatsnew/2.7.rst:2267 +#: whatsnew/2.7.rst:2265 msgid "" -":program:`configure` also now sets a :envvar:`LDCXXSHARED` Makefile variable " -"for supporting C++ linking. (Contributed by Arfrever Frehtes Taifersar " -"Arahesis; :issue:`1222585`.)" +":program:`configure` also now sets a :envvar:`!LDCXXSHARED` Makefile " +"variable for supporting C++ linking. (Contributed by Arfrever Frehtes " +"Taifersar Arahesis; :issue:`1222585`.)" msgstr "" -#: whatsnew/2.7.rst:2271 +#: whatsnew/2.7.rst:2269 msgid "" "The build process now creates the necessary files for pkg-config support. " "(Contributed by Clinton Roy; :issue:`3585`.)" msgstr "" -#: whatsnew/2.7.rst:2274 +#: whatsnew/2.7.rst:2272 msgid "" "The build process now supports Subversion 1.7. (Contributed by Arfrever " "Frehtes Taifersar Arahesis; :issue:`6094`.)" msgstr "" -#: whatsnew/2.7.rst:2281 +#: whatsnew/2.7.rst:2279 msgid "Capsules" msgstr "" -#: whatsnew/2.7.rst:2283 +#: whatsnew/2.7.rst:2281 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 " @@ -3186,7 +3186,7 @@ msgid "" "module's various API functions." msgstr "" -#: whatsnew/2.7.rst:2292 +#: whatsnew/2.7.rst:2290 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 " @@ -3196,7 +3196,7 @@ msgid "" "name:" msgstr "" -#: whatsnew/2.7.rst:2299 +#: whatsnew/2.7.rst:2297 msgid "" "void *vtable;\n" "\n" @@ -3208,7 +3208,7 @@ msgid "" "vtable = PyCapsule_GetPointer(capsule, \"mymodule.CAPI\");" msgstr "" -#: whatsnew/2.7.rst:2310 +#: whatsnew/2.7.rst:2308 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 " @@ -3216,7 +3216,7 @@ msgid "" "more information on using these objects." msgstr "" -#: whatsnew/2.7.rst:2315 +#: whatsnew/2.7.rst:2313 msgid "" "Python 2.7 now uses capsules internally to provide various extension-module " "APIs, but the :c:func:`!PyCObject_AsVoidPtr` was modified to handle " @@ -3225,17 +3225,17 @@ msgid "" "exc:`PendingDeprecationWarning`, which is silent by default." msgstr "" -#: whatsnew/2.7.rst:2322 +#: whatsnew/2.7.rst:2320 msgid "" "Implemented in Python 3.1 and backported to 2.7 by Larry Hastings; discussed " "in :issue:`5630`." msgstr "" -#: whatsnew/2.7.rst:2329 +#: whatsnew/2.7.rst:2327 msgid "Port-Specific Changes: Windows" msgstr "" -#: whatsnew/2.7.rst:2331 +#: whatsnew/2.7.rst:2329 msgid "" "The :mod:`msvcrt` module now contains some constants from the :file:" "`crtassem.h` header file: :data:`~msvcrt.CRT_ASSEMBLY_VERSION`, :data:" @@ -3244,7 +3244,7 @@ msgid "" "`4365`.)" msgstr "" -#: whatsnew/2.7.rst:2338 +#: whatsnew/2.7.rst:2336 msgid "" "The :mod:`_winreg ` module for accessing the registry now implements " "the :func:`~winreg.CreateKeyEx` and :func:`~winreg.DeleteKeyEx` functions, " @@ -3254,14 +3254,14 @@ msgid "" "tested and documented. (Implemented by Brian Curtin: :issue:`7347`.)" msgstr "" -#: whatsnew/2.7.rst:2346 +#: whatsnew/2.7.rst:2344 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 "" -#: whatsnew/2.7.rst:2350 +#: whatsnew/2.7.rst:2348 msgid "" "The :func:`os.kill` function now works on Windows. The signal value can be " "the constants :const:`~signal.CTRL_C_EVENT`, :const:`~signal." @@ -3271,23 +3271,23 @@ msgid "" "Miki Tebeka; :issue:`1220212`.)" msgstr "" -#: whatsnew/2.7.rst:2357 +#: whatsnew/2.7.rst:2355 msgid "" "The :func:`os.listdir` function now correctly fails for an empty path. " "(Fixed by Hirokazu Yamamoto; :issue:`5913`.)" msgstr "" -#: whatsnew/2.7.rst:2360 +#: whatsnew/2.7.rst:2358 msgid "" "The :mod:`mimetypes` module will now read the MIME database from the Windows " "registry when initializing. (Patch by Gabriel Genellina; :issue:`4969`.)" msgstr "" -#: whatsnew/2.7.rst:2367 +#: whatsnew/2.7.rst:2365 msgid "Port-Specific Changes: Mac OS X" msgstr "" -#: whatsnew/2.7.rst:2369 +#: whatsnew/2.7.rst:2367 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 " @@ -3295,7 +3295,7 @@ msgid "" "issue:`4865`.)" msgstr "" -#: whatsnew/2.7.rst:2376 +#: whatsnew/2.7.rst:2374 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 " @@ -3307,11 +3307,11 @@ msgid "" "Pythons. (:issue:`28440`)" msgstr "" -#: whatsnew/2.7.rst:2387 +#: whatsnew/2.7.rst:2385 msgid "Port-Specific Changes: FreeBSD" msgstr "" -#: whatsnew/2.7.rst:2389 +#: whatsnew/2.7.rst:2387 msgid "" "FreeBSD 7.1's :const:`!SO_SETFIB` constant, used with the :func:`~socket." "socket` methods :func:`~socket.socket.getsockopt`/:func:`~socket.socket." @@ -3319,11 +3319,11 @@ msgid "" "mod:`socket` module. (Added by Kyle VanderBeek; :issue:`8235`.)" msgstr "" -#: whatsnew/2.7.rst:2395 +#: whatsnew/2.7.rst:2393 msgid "Other Changes and Fixes" msgstr "" -#: whatsnew/2.7.rst:2397 +#: whatsnew/2.7.rst:2395 msgid "" "Two benchmark scripts, :file:`iobench` and :file:`ccbench`, were added to " "the :file:`Tools` directory. :file:`iobench` measures the speed of the " @@ -3333,13 +3333,13 @@ msgid "" "bandwidth when performing several tasks using a varying number of threads." msgstr "" -#: whatsnew/2.7.rst:2405 +#: whatsnew/2.7.rst:2403 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 "" -#: whatsnew/2.7.rst:2409 +#: whatsnew/2.7.rst:2407 msgid "" "When importing a module from a :file:`.pyc` or :file:`.pyo` file with an " "existing :file:`.py` counterpart, the :attr:`~codeobject.co_filename` " @@ -3349,7 +3349,7 @@ msgid "" "Paul Calderone; :issue:`1180193`.)" msgstr "" -#: whatsnew/2.7.rst:2416 +#: whatsnew/2.7.rst:2414 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:" @@ -3357,7 +3357,7 @@ msgid "" "also reports the seed that was used (Added by Collin Winter.)" msgstr "" -#: whatsnew/2.7.rst:2422 +#: whatsnew/2.7.rst:2420 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 " @@ -3368,31 +3368,31 @@ msgid "" "they fail. (Added by Antoine Pitrou; :issue:`7312`.)" msgstr "" -#: whatsnew/2.7.rst:2431 +#: whatsnew/2.7.rst:2429 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 "" -#: whatsnew/2.7.rst:2439 +#: whatsnew/2.7.rst:2437 msgid "Porting to Python 2.7" msgstr "" -#: whatsnew/2.7.rst:2441 +#: whatsnew/2.7.rst:2439 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code:" msgstr "" -#: whatsnew/2.7.rst:2444 +#: whatsnew/2.7.rst:2442 msgid "" "The :func:`range` function processes its arguments more consistently; it " "will now call :meth:`~object.__int__` on non-float, non-integer arguments " "that are supplied to it. (Fixed by Alexander Belopolsky; :issue:`1533`.)" msgstr "" -#: whatsnew/2.7.rst:2449 +#: whatsnew/2.7.rst:2447 msgid "" "The string :meth:`format` method changed the default precision used for " "floating-point and complex numbers from 6 decimal places to 12, which " @@ -3400,7 +3400,7 @@ msgid "" "`5920`.)" msgstr "" -#: whatsnew/2.7.rst:2454 +#: whatsnew/2.7.rst:2452 msgid "" "Because of an optimization for the :keyword:`with` statement, the special " "methods :meth:`~object.__enter__` and :meth:`~object.__exit__` must belong " @@ -3409,7 +3409,7 @@ msgid "" "C extension types. (:issue:`6101`.)" msgstr "" -#: whatsnew/2.7.rst:2460 +#: whatsnew/2.7.rst:2458 msgid "" "Due to a bug in Python 2.6, the *exc_value* parameter to :meth:`~object." "__exit__` methods was often the string representation of the exception, not " @@ -3417,11 +3417,11 @@ msgid "" "expected. (Fixed by Florent Xicluna; :issue:`7853`.)" msgstr "" -#: whatsnew/2.7.rst:2470 +#: whatsnew/2.7.rst:2468 msgid "In the standard library:" msgstr "" -#: whatsnew/2.7.rst:2472 +#: whatsnew/2.7.rst:2470 msgid "" "Operations with :class:`~datetime.datetime` instances that resulted in a " "year falling outside the supported range didn't always raise :exc:" @@ -3430,7 +3430,7 @@ msgid "" "Alexander Belopolsky; :issue:`7150`.)" msgstr "" -#: whatsnew/2.7.rst:2478 +#: whatsnew/2.7.rst:2476 msgid "" "When using :class:`~decimal.Decimal` instances with a string's :meth:" "`format` method, the default alignment was previously left-alignment. This " @@ -3438,7 +3438,7 @@ msgid "" "programs. (Changed by Mark Dickinson; :issue:`6857`.)" msgstr "" -#: whatsnew/2.7.rst:2490 +#: whatsnew/2.7.rst:2488 msgid "" "The :mod:`xml.etree.ElementTree` library no longer escapes ampersands and " "angle brackets when outputting an XML processing instruction (which looks " @@ -3446,36 +3446,36 @@ msgid "" "````). (Patch by Neil Muller; :issue:`2746`.)" msgstr "" -#: whatsnew/2.7.rst:2496 +#: whatsnew/2.7.rst:2494 msgid "" "The :meth:`!readline` method of :class:`~io.StringIO` objects now does " "nothing when a negative length is requested, as other file-like objects do. " "(:issue:`7348`)." msgstr "" -#: whatsnew/2.7.rst:2539 +#: whatsnew/2.7.rst:2537 msgid "For C extensions:" msgstr "" -#: whatsnew/2.7.rst:2541 +#: whatsnew/2.7.rst:2539 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 "" -#: whatsnew/2.7.rst:2545 +#: whatsnew/2.7.rst:2543 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 "" -#: whatsnew/2.7.rst:2549 +#: whatsnew/2.7.rst:2547 msgid "For applications that embed Python:" msgstr "" -#: whatsnew/2.7.rst:2551 +#: whatsnew/2.7.rst:2549 msgid "" "The :c:func:`!PySys_SetArgvEx` function was added, letting applications " "close a security hole when the existing :c:func:`!PySys_SetArgv` function " @@ -3484,11 +3484,11 @@ msgid "" "PySys_SetArgvEx` with *updatepath* set to false." msgstr "" -#: whatsnew/2.7.rst:2564 +#: whatsnew/2.7.rst:2562 msgid "New Features Added to Python 2.7 Maintenance Releases" msgstr "" -#: whatsnew/2.7.rst:2566 +#: whatsnew/2.7.rst:2564 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 " @@ -3497,25 +3497,25 @@ msgid "" "Python 3, or else by publishing it on the Python Package Index." msgstr "" -#: whatsnew/2.7.rst:2572 +#: whatsnew/2.7.rst:2570 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 "" -#: whatsnew/2.7.rst:2578 +#: whatsnew/2.7.rst:2576 msgid "Two new environment variables for debug mode" msgstr "" -#: whatsnew/2.7.rst:2580 +#: whatsnew/2.7.rst:2578 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 "" -#: whatsnew/2.7.rst:2584 +#: whatsnew/2.7.rst:2582 msgid "" "When Python is compiled with ``COUNT_ALLOC`` defined, allocation counts are " "no longer dumped by default anymore: the :envvar:`!PYTHONSHOWALLOCCOUNT` " @@ -3524,11 +3524,11 @@ msgid "" "issue:`31692`.)" msgstr "" -#: whatsnew/2.7.rst:2593 +#: whatsnew/2.7.rst:2591 msgid "PEP 434: IDLE Enhancement Exception for All Branches" msgstr "" -#: whatsnew/2.7.rst:2595 +#: whatsnew/2.7.rst:2593 msgid "" ":pep:`434` describes a general exemption for changes made to the IDLE " "development environment shipped along with Python. This exemption makes it " @@ -3536,63 +3536,63 @@ msgid "" "experience across all supported versions of Python 2 and 3." msgstr "" -#: whatsnew/2.7.rst:2600 +#: whatsnew/2.7.rst:2598 msgid "" "For details of any IDLE changes, refer to the NEWS file for the specific " "release." msgstr "" -#: whatsnew/2.7.rst:2605 +#: whatsnew/2.7.rst:2603 msgid "PEP 466: Network Security Enhancements for Python 2.7" msgstr "" -#: whatsnew/2.7.rst:2607 +#: whatsnew/2.7.rst:2605 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 "" -#: whatsnew/2.7.rst:2611 +#: whatsnew/2.7.rst:2609 msgid ":pep:`466` related features added in Python 2.7.7:" msgstr "" -#: whatsnew/2.7.rst:2613 +#: whatsnew/2.7.rst:2611 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 "" -#: whatsnew/2.7.rst:2617 +#: whatsnew/2.7.rst:2615 msgid "" "OpenSSL 1.0.1g was upgraded in the official Windows installers published on " "python.org. (Contributed by Zachary Ware; :issue:`21462`.)" msgstr "" -#: whatsnew/2.7.rst:2620 +#: whatsnew/2.7.rst:2618 msgid ":pep:`466` related features added in Python 2.7.8:" msgstr "" -#: whatsnew/2.7.rst:2622 +#: whatsnew/2.7.rst:2620 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 "" -#: whatsnew/2.7.rst:2626 +#: whatsnew/2.7.rst:2624 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 "" -#: whatsnew/2.7.rst:2629 +#: whatsnew/2.7.rst:2627 msgid ":pep:`466` related features added in Python 2.7.9:" msgstr "" -#: whatsnew/2.7.rst:2631 +#: whatsnew/2.7.rst:2629 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 " @@ -3600,20 +3600,20 @@ msgid "" "(Contributed by Alex Gaynor and David Reid; :issue:`21308`.)" msgstr "" -#: whatsnew/2.7.rst:2636 +#: whatsnew/2.7.rst:2634 msgid "" "Refer to the \"Version added: 2.7.9\" notes in the module documentation for " "specific details." msgstr "" -#: whatsnew/2.7.rst:2639 +#: whatsnew/2.7.rst:2637 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 "" -#: whatsnew/2.7.rst:2643 +#: whatsnew/2.7.rst:2641 msgid "" ":data:`hashlib.algorithms_guaranteed` and :data:`hashlib." "algorithms_available` were backported from Python 3 to make it easier for " @@ -3621,22 +3621,22 @@ msgid "" "(Contributed by Alex Gaynor in :issue:`21307`)" msgstr "" -#: whatsnew/2.7.rst:2650 +#: whatsnew/2.7.rst:2648 msgid "PEP 477: Backport ensurepip (PEP 453) to Python 2.7" msgstr "" -#: whatsnew/2.7.rst:2652 +#: whatsnew/2.7.rst:2650 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 "" -#: whatsnew/2.7.rst:2658 +#: whatsnew/2.7.rst:2656 msgid "Bootstrapping pip By Default" msgstr "" -#: whatsnew/2.7.rst:2660 +#: whatsnew/2.7.rst:2658 msgid "" "The new :mod:`ensurepip` module (defined in :pep:`453`) provides a standard " "cross-platform mechanism to bootstrap the pip installer into Python " @@ -3646,14 +3646,14 @@ msgid "" "the release candidate." msgstr "" -#: whatsnew/2.7.rst:2667 +#: whatsnew/2.7.rst:2665 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 "" -#: whatsnew/2.7.rst:2671 +#: whatsnew/2.7.rst:2669 msgid "" "For CPython :ref:`source builds on POSIX systems `, " "the ``make install`` and ``make altinstall`` commands do not bootstrap " @@ -3661,7 +3661,7 @@ msgid "" "options, and overridden through Makefile options." msgstr "" -#: whatsnew/2.7.rst:2676 +#: whatsnew/2.7.rst:2674 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 " @@ -3671,7 +3671,7 @@ msgid "" "Windows as ``py -m pip``." msgstr "" -#: whatsnew/2.7.rst:2683 +#: whatsnew/2.7.rst:2681 msgid "" "As :pep:`discussed in the PEP <0477#disabling-ensurepip-by-downstream-" "distributors>`, platform packagers may choose not to install these commands " @@ -3680,11 +3680,11 @@ msgid "" "package manager)." msgstr "" -#: whatsnew/2.7.rst:2690 +#: whatsnew/2.7.rst:2688 msgid "Documentation Changes" msgstr "" -#: whatsnew/2.7.rst:2692 +#: 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 " @@ -3694,29 +3694,29 @@ msgid "" "of the individual projects." msgstr "" -#: whatsnew/2.7.rst:2700 +#: 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:`setuptools-index`." msgstr "" -#: whatsnew/2.7.rst:2706 +#: whatsnew/2.7.rst:2704 msgid ":pep:`453` -- Explicit bootstrapping of pip in Python installations" msgstr "" -#: whatsnew/2.7.rst:2707 +#: 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 "" -#: whatsnew/2.7.rst:2711 +#: whatsnew/2.7.rst:2709 msgid "" "PEP 476: Enabling certificate verification by default for stdlib http clients" msgstr "" -#: whatsnew/2.7.rst:2713 +#: 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 " @@ -3726,13 +3726,13 @@ msgid "" "for many applications. This change was made in the Python 2.7.9 release." msgstr "" -#: whatsnew/2.7.rst:2721 +#: whatsnew/2.7.rst:2719 msgid "" "For applications which require the old previous behavior, they can pass an " "alternate context::" msgstr "" -#: whatsnew/2.7.rst:2724 +#: whatsnew/2.7.rst:2722 msgid "" "import urllib2\n" "import ssl\n" @@ -3747,11 +3747,11 @@ msgid "" "urllib2.urlopen(\"https://invalid-cert\", context=context)" msgstr "" -#: whatsnew/2.7.rst:2738 +#: whatsnew/2.7.rst:2736 msgid "PEP 493: HTTPS verification migration tools for Python 2.7" msgstr "" -#: whatsnew/2.7.rst:2740 +#: whatsnew/2.7.rst:2738 msgid "" ":pep:`493` provides additional migration tools to support a more incremental " "infrastructure upgrade process for environments containing applications and " @@ -3760,14 +3760,14 @@ msgid "" "were made in the Python 2.7.12 release." msgstr "" -#: whatsnew/2.7.rst:2746 +#: whatsnew/2.7.rst:2744 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 "" -#: whatsnew/2.7.rst:2750 +#: whatsnew/2.7.rst:2748 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 " @@ -3775,18 +3775,18 @@ msgid "" "2.7.8 and earlier." msgstr "" -#: whatsnew/2.7.rst:2755 +#: whatsnew/2.7.rst:2753 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 "" -#: whatsnew/2.7.rst:2761 +#: whatsnew/2.7.rst:2759 msgid "New ``make regen-all`` build target" msgstr "" -#: whatsnew/2.7.rst:2763 +#: whatsnew/2.7.rst:2761 msgid "" "To simplify cross-compilation, and to ensure that CPython can reliably be " "compiled without requiring an existing version of Python to already be " @@ -3794,43 +3794,43 @@ msgid "" "recompile generated files based on file modification times." msgstr "" -#: whatsnew/2.7.rst:2768 +#: whatsnew/2.7.rst:2766 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 "" -#: whatsnew/2.7.rst:2772 +#: whatsnew/2.7.rst:2770 msgid "" "More selective regeneration targets are also defined - see :source:`Makefile." "pre.in` for details." msgstr "" -#: whatsnew/2.7.rst:2788 +#: whatsnew/2.7.rst:2786 msgid "(Contributed by Victor Stinner in :issue:`23404`.)" msgstr "" -#: whatsnew/2.7.rst:2781 +#: whatsnew/2.7.rst:2779 msgid "Removal of ``make touch`` build target" msgstr "" -#: whatsnew/2.7.rst:2783 +#: whatsnew/2.7.rst:2781 msgid "" "The ``make touch`` build target previously used to request implicit " "regeneration of generated files by updating their modification times has " "been removed." msgstr "" -#: whatsnew/2.7.rst:2786 +#: whatsnew/2.7.rst:2784 msgid "It has been replaced by the new ``make regen-all`` target." msgstr "" -#: whatsnew/2.7.rst:2797 +#: whatsnew/2.7.rst:2795 msgid "Acknowledgements" msgstr "" -#: whatsnew/2.7.rst:2799 +#: whatsnew/2.7.rst:2797 msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " diff --git a/whatsnew/3.0.po b/whatsnew/3.0.po index 805e3fef..6ebebd3b 100644 --- a/whatsnew/3.0.po +++ b/whatsnew/3.0.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/whatsnew/3.1.po b/whatsnew/3.1.po index 7a0f1f63..23fe32f4 100644 --- a/whatsnew/3.1.po +++ b/whatsnew/3.1.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/whatsnew/3.10.po b/whatsnew/3.10.po index 1ed4b224..a02679ac 100644 --- a/whatsnew/3.10.po +++ b/whatsnew/3.10.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1250,12 +1250,11 @@ msgstr "" #: whatsnew/3.10.rst:850 msgid "" -"Static methods (:func:`@staticmethod `) and class methods (:" -"func:`@classmethod `) now inherit the method attributes " -"(``__module__``, ``__name__``, ``__qualname__``, ``__doc__``, " -"``__annotations__``) and have a new ``__wrapped__`` attribute. Moreover, " -"static methods are now callable as regular functions. (Contributed by Victor " -"Stinner in :issue:`43682`.)" +"Static methods (:deco:`staticmethod`) and class methods (:deco:" +"`classmethod`) now inherit the method attributes (``__module__``, " +"``__name__``, ``__qualname__``, ``__doc__``, ``__annotations__``) and have a " +"new ``__wrapped__`` attribute. Moreover, static methods are now callable as " +"regular functions. (Contributed by Victor Stinner in :issue:`43682`.)" msgstr "" #: whatsnew/3.10.rst:857 @@ -1333,9 +1332,8 @@ msgstr "" #: whatsnew/3.10.rst:904 msgid "" -"Add missing :meth:`~asyncio.events.AbstractEventLoop." -"connect_accepted_socket` method. (Contributed by Alex Grönholm in :issue:" -"`41332`.)" +"Add missing :meth:`~asyncio.loop.connect_accepted_socket` method. " +"(Contributed by Alex Grönholm in :issue:`41332`.)" msgstr "" #: whatsnew/3.10.rst:909 @@ -1387,8 +1385,8 @@ msgstr "" #: whatsnew/3.10.rst:936 msgid "" -"Add :meth:`~bdb.Breakpoint.clearBreakpoints` to reset all set breakpoints. " -"(Contributed by Irit Katriel in :issue:`24160`.)" +"Add :meth:`!clearBreakpoints` to reset all set breakpoints. (Contributed by " +"Irit Katriel in :issue:`24160`.)" msgstr "" #: whatsnew/3.10.rst:940 @@ -2085,9 +2083,9 @@ msgstr "" #: whatsnew/3.10.rst:1401 msgid "" -"Add audit events for :func:`~sqlite3.connect/handle`, :meth:`~sqlite3." -"Connection.enable_load_extension`, and :meth:`~sqlite3.Connection." -"load_extension`. (Contributed by Erlend E. Aasland in :issue:`43762`.)" +"Add audit events for :func:`~sqlite3.connect`, :meth:`~sqlite3.Connection." +"enable_load_extension`, and :meth:`~sqlite3.Connection.load_extension`. " +"(Contributed by Erlend E. Aasland in :issue:`43762`.)" msgstr "" #: whatsnew/3.10.rst:1407 diff --git a/whatsnew/3.11.po b/whatsnew/3.11.po index b26374dd..a1e9a68e 100644 --- a/whatsnew/3.11.po +++ b/whatsnew/3.11.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/whatsnew/3.12.po b/whatsnew/3.12.po index aae68d48..f5efe401 100644 --- a/whatsnew/3.12.po +++ b/whatsnew/3.12.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -256,7 +256,7 @@ msgid "" "`_." msgstr "" -#: whatsnew/3.12.rst:1842 +#: whatsnew/3.12.rst:1856 msgid "New Features" msgstr "" @@ -1222,7 +1222,7 @@ msgid "" "Windows. (Contributed by Charles Machalow in :gh:`103179`.)" msgstr "" -#: whatsnew/3.12.rst:1546 +#: whatsnew/3.12.rst:1560 msgid "sqlite3" msgstr "" @@ -1295,7 +1295,7 @@ msgid "" "Katriel in :gh:`102778`.)" msgstr "" -#: whatsnew/3.12.rst:1741 +#: whatsnew/3.12.rst:1755 msgid "" ":func:`sys._current_exceptions` now returns a mapping from thread-id to an " "exception instance, rather than to a ``(typ, exc, tb)`` tuple. (Contributed " @@ -1461,7 +1461,7 @@ msgid "" "Benjamin Peterson in :gh:`96734`)." msgstr "" -#: whatsnew/3.12.rst:1586 +#: whatsnew/3.12.rst:1600 msgid "unittest" msgstr "" @@ -1654,7 +1654,7 @@ msgid "" "demos>`_. (Contributed by Victor Stinner in :gh:`97669`.)" msgstr "" -#: whatsnew/3.12.rst:2144 +#: whatsnew/3.12.rst:2158 msgid "Deprecated" msgstr "" @@ -1728,7 +1728,7 @@ msgid "" "Rossum in :gh:`100160`.)" msgstr "" -#: whatsnew/3.12.rst:1190 deprecations/pending-removal-in-future.rst:45 +#: whatsnew/3.12.rst:1190 deprecations/pending-removal-in-future.rst:44 msgid "" ":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " "are deprecated and replaced by :data:`calendar.JANUARY` and :data:`calendar." @@ -1736,14 +1736,39 @@ msgid "" msgstr "" #: whatsnew/3.12.rst:1194 +msgid ":mod:`collections.abc`: Deprecated :class:`collections.abc.ByteString`." +msgstr "" + +#: whatsnew/3.12.rst:1196 deprecations/pending-removal-in-3.17.rst:8 +#: deprecations/pending-removal-in-3.17.rst:36 msgid "" -":mod:`collections.abc`: Deprecated :class:`!collections.abc.ByteString`. " -"Prefer :class:`Sequence` or :class:`collections.abc.Buffer`. For use in " -"typing, prefer a union, like ``bytes | bytearray``, or :class:`collections." -"abc.Buffer`. (Contributed by Shantanu Jain in :gh:`91896`.)" +"Use ``isinstance(obj, collections.abc.Buffer)`` to test if ``obj`` " +"implements the :ref:`buffer protocol ` at runtime. For use in " +"type annotations, either use :class:`~collections.abc.Buffer` or a union " +"that explicitly specifies the types your code supports (e.g., ``bytes | " +"bytearray | memoryview``)." msgstr "" -#: whatsnew/3.12.rst:1199 +#: whatsnew/3.12.rst:1202 deprecations/pending-removal-in-3.17.rst:14 +#: deprecations/pending-removal-in-3.17.rst:42 +msgid "" +":class:`!ByteString` was originally intended to be an abstract class that " +"would serve as a supertype of both :class:`bytes` and :class:`bytearray`. " +"However, since the ABC never had any methods, knowing that an object was an " +"instance of :class:`!ByteString` never actually told you anything useful " +"about the object. Other common buffer types such as :class:`memoryview` were " +"also never understood as subtypes of :class:`!ByteString` (either at runtime " +"or by static type checkers)." +msgstr "" + +#: whatsnew/3.12.rst:1210 deprecations/pending-removal-in-3.17.rst:22 +#: deprecations/pending-removal-in-3.17.rst:50 +msgid "" +"See :pep:`PEP 688 <688#current-options>` for more details. (Contributed by " +"Shantanu Jain in :gh:`91896`.)" +msgstr "" + +#: whatsnew/3.12.rst:1213 msgid "" ":mod:`datetime`: :class:`datetime.datetime`'s :meth:`~datetime.datetime." "utcnow` and :meth:`~datetime.datetime.utcfromtimestamp` are deprecated and " @@ -1753,47 +1778,47 @@ msgid "" "set to :const:`datetime.UTC`. (Contributed by Paul Ganssle in :gh:`103857`.)" msgstr "" -#: whatsnew/3.12.rst:1207 +#: whatsnew/3.12.rst:1221 msgid "" ":mod:`email`: Deprecate the *isdst* parameter in :func:`email.utils." "localtime`. (Contributed by Alan Williams in :gh:`72346`.)" msgstr "" -#: whatsnew/3.12.rst:1210 +#: whatsnew/3.12.rst:1224 msgid "" ":mod:`importlib.abc`: Deprecated the following classes, scheduled for " "removal in Python 3.14:" msgstr "" -#: whatsnew/3.12.rst:1213 deprecations/pending-removal-in-3.14.rst:52 +#: whatsnew/3.12.rst:1227 deprecations/pending-removal-in-3.14.rst:46 msgid ":class:`!importlib.abc.ResourceReader`" msgstr "" -#: whatsnew/3.12.rst:1214 deprecations/pending-removal-in-3.14.rst:53 +#: whatsnew/3.12.rst:1228 deprecations/pending-removal-in-3.14.rst:47 msgid ":class:`!importlib.abc.Traversable`" msgstr "" -#: whatsnew/3.12.rst:1215 deprecations/pending-removal-in-3.14.rst:54 +#: whatsnew/3.12.rst:1229 deprecations/pending-removal-in-3.14.rst:48 msgid ":class:`!importlib.abc.TraversableResources`" msgstr "" -#: whatsnew/3.12.rst:1217 deprecations/pending-removal-in-3.14.rst:56 +#: whatsnew/3.12.rst:1231 deprecations/pending-removal-in-3.14.rst:50 msgid "Use :mod:`importlib.resources.abc` classes instead:" msgstr "" -#: whatsnew/3.12.rst:1219 deprecations/pending-removal-in-3.14.rst:58 +#: whatsnew/3.12.rst:1233 deprecations/pending-removal-in-3.14.rst:52 msgid ":class:`importlib.resources.abc.Traversable`" msgstr "" -#: whatsnew/3.12.rst:1220 deprecations/pending-removal-in-3.14.rst:59 +#: whatsnew/3.12.rst:1234 deprecations/pending-removal-in-3.14.rst:53 msgid ":class:`importlib.resources.abc.TraversableResources`" msgstr "" -#: whatsnew/3.12.rst:1222 deprecations/pending-removal-in-3.14.rst:61 +#: whatsnew/3.12.rst:1236 deprecations/pending-removal-in-3.14.rst:55 msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" msgstr "" -#: whatsnew/3.12.rst:1224 +#: whatsnew/3.12.rst:1238 msgid "" ":mod:`itertools`: Deprecate the support for copy, deepcopy, and pickle " "operations, which is undocumented, inefficient, historically buggy, and " @@ -1802,7 +1827,7 @@ msgid "" "`101588`.)" msgstr "" -#: whatsnew/3.12.rst:1230 +#: whatsnew/3.12.rst:1244 msgid "" ":mod:`multiprocessing`: In Python 3.14, the default :mod:`multiprocessing` " "start method will change to a safer one on Linux, BSDs, and other non-macOS " @@ -1814,14 +1839,14 @@ msgid "" "methods `." msgstr "" -#: whatsnew/3.12.rst:1240 +#: whatsnew/3.12.rst:1254 msgid "" ":mod:`pkgutil`: :func:`!pkgutil.find_loader` and :func:`!pkgutil.get_loader` " "are deprecated and will be removed in Python 3.14; use :func:`importlib.util." "find_spec` instead. (Contributed by Nikita Sobolev in :gh:`97850`.)" msgstr "" -#: whatsnew/3.12.rst:1245 +#: whatsnew/3.12.rst:1259 msgid "" ":mod:`pty`: The module has two undocumented ``master_open()`` and " "``slave_open()`` functions that have been deprecated since Python 2 but only " @@ -1829,11 +1854,11 @@ msgid "" "(Contributed by Soumendra Ganguly and Gregory P. Smith in :gh:`85984`.)" msgstr "" -#: whatsnew/3.12.rst:1250 +#: whatsnew/3.12.rst:1264 msgid ":mod:`os`:" msgstr "" -#: whatsnew/3.12.rst:1252 +#: whatsnew/3.12.rst:1266 msgid "" "The ``st_ctime`` fields return by :func:`os.stat` and :func:`os.lstat` on " "Windows are deprecated. In a future release, they will contain the last " @@ -1842,7 +1867,7 @@ msgid "" "``st_birthtime`` field. (Contributed by Steve Dower in :gh:`99726`.)" msgstr "" -#: whatsnew/3.12.rst:1258 +#: whatsnew/3.12.rst:1272 msgid "" "On POSIX platforms, :func:`os.fork` can now raise a :exc:" "`DeprecationWarning` when it can detect being called from a multithreaded " @@ -1856,32 +1881,32 @@ msgid "" "platform compatibility problem to developers." msgstr "" -#: whatsnew/3.12.rst:1268 +#: whatsnew/3.12.rst:1282 msgid "" "When this warning appears due to usage of :mod:`multiprocessing` or :mod:" "`concurrent.futures` the fix is to use a different :mod:`multiprocessing` " "start method such as ``\"spawn\"`` or ``\"forkserver\"``." msgstr "" -#: whatsnew/3.12.rst:1272 +#: whatsnew/3.12.rst:1286 msgid "" ":mod:`shutil`: The *onerror* argument of :func:`shutil.rmtree` is " "deprecated; use *onexc* instead. (Contributed by Irit Katriel in :gh:" "`102828`.)" msgstr "" -#: whatsnew/3.12.rst:1275 deprecations/pending-removal-in-3.14.rst:91 +#: whatsnew/3.12.rst:1289 deprecations/pending-removal-in-3.14.rst:85 msgid ":mod:`sqlite3`:" msgstr "" -#: whatsnew/3.12.rst:1277 +#: whatsnew/3.12.rst:1291 msgid "" ":ref:`default adapters and converters ` are now " "deprecated. Instead, use the :ref:`sqlite3-adapter-converter-recipes` and " "tailor them to your needs. (Contributed by Erlend E. Aasland in :gh:`90016`.)" msgstr "" -#: whatsnew/3.12.rst:1283 +#: whatsnew/3.12.rst:1297 msgid "" "In :meth:`~sqlite3.Cursor.execute`, :exc:`DeprecationWarning` is now emitted " "when :ref:`named placeholders ` are used together with " @@ -1891,40 +1916,40 @@ msgid "" "Erlend E. Aasland in :gh:`101698`.)" msgstr "" -#: whatsnew/3.12.rst:1290 +#: whatsnew/3.12.rst:1304 msgid "" ":mod:`sys`: The :data:`sys.last_type`, :data:`sys.last_value` and :data:`sys." "last_traceback` fields are deprecated. Use :data:`sys.last_exc` instead. " "(Contributed by Irit Katriel in :gh:`102778`.)" msgstr "" -#: whatsnew/3.12.rst:1294 +#: whatsnew/3.12.rst:1308 msgid "" ":mod:`tarfile`: Extracting tar archives without specifying *filter* is " "deprecated until Python 3.14, when ``'data'`` filter will become the " "default. See :ref:`tarfile-extraction-filter` for details." msgstr "" -#: whatsnew/3.12.rst:1298 deprecations/pending-removal-in-3.15.rst:80 -#: deprecations/pending-removal-in-3.17.rst:4 +#: whatsnew/3.12.rst:1312 deprecations/pending-removal-in-3.15.rst:80 +#: deprecations/pending-removal-in-3.17.rst:26 msgid ":mod:`typing`:" msgstr "" -#: whatsnew/3.12.rst:1300 +#: whatsnew/3.12.rst:1314 msgid "" ":class:`typing.Hashable` and :class:`typing.Sized`, aliases for :class:" "`collections.abc.Hashable` and :class:`collections.abc.Sized` respectively, " "are deprecated. (:gh:`94309`.)" msgstr "" -#: whatsnew/3.12.rst:1304 +#: whatsnew/3.12.rst:1318 msgid "" -":class:`!typing.ByteString`, deprecated since Python 3.9, now causes a :exc:" +":class:`typing.ByteString`, deprecated since Python 3.9, now causes a :exc:" "`DeprecationWarning` to be emitted when it is used. (Contributed by Alex " "Waygood in :gh:`91896`.)" msgstr "" -#: whatsnew/3.12.rst:1308 +#: whatsnew/3.12.rst:1322 msgid "" ":mod:`xml.etree.ElementTree`: The module now emits :exc:`DeprecationWarning` " "when testing the truth value of an :class:`xml.etree.ElementTree.Element`. " @@ -1932,7 +1957,7 @@ msgid "" "implementation emitted nothing. (Contributed by Jacob Walls in :gh:`83122`.)" msgstr "" -#: whatsnew/3.12.rst:1314 +#: whatsnew/3.12.rst:1328 msgid "" "The 3-arg signatures (type, value, traceback) of :meth:`coroutine throw() " "`, :meth:`generator throw() ` and :meth:" @@ -1941,7 +1966,7 @@ msgid "" "instead. (Contributed by Ofey Chan in :gh:`89874`.)" msgstr "" -#: whatsnew/3.12.rst:1320 +#: whatsnew/3.12.rst:1334 msgid "" ":exc:`DeprecationWarning` is now raised when :attr:`~module.__package__` on " "a module differs from :attr:`__spec__.parent `_ (:gh:`106531`)" -msgstr "" - #: deprecations/c-api-pending-removal-in-3.14.rst:2 #: deprecations/pending-removal-in-3.14.rst:2 msgid "Pending removal in Python 3.14" @@ -2159,23 +2145,15 @@ msgstr "" #: deprecations/pending-removal-in-3.14.rst:41 msgid "" -":mod:`collections.abc`: Deprecated :class:`!collections.abc.ByteString`. " -"Prefer :class:`!Sequence` or :class:`~collections.abc.Buffer`. For use in " -"typing, prefer a union, like ``bytes | bytearray``, or :class:`collections." -"abc.Buffer`. (Contributed by Shantanu Jain in :gh:`91896`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:47 -msgid "" ":mod:`email`: Deprecated the *isdst* parameter in :func:`email.utils." "localtime`. (Contributed by Alan Williams in :gh:`72346`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:50 +#: deprecations/pending-removal-in-3.14.rst:44 msgid ":mod:`importlib.abc` deprecated classes:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:63 +#: deprecations/pending-removal-in-3.14.rst:57 msgid "" ":mod:`itertools` had undocumented, inefficient, historically buggy, and " "inconsistent support for copy, deepcopy, and pickle operations. This will be " @@ -2183,7 +2161,7 @@ msgid "" "burden. (Contributed by Raymond Hettinger in :gh:`101588`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:69 +#: deprecations/pending-removal-in-3.14.rst:63 msgid "" ":mod:`multiprocessing`: The default start method will change to a safer one " "on Linux, BSDs, and other non-macOS POSIX platforms where ``'fork'`` is " @@ -2194,49 +2172,43 @@ msgid "" "``'fork'``. See :ref:`multiprocessing-start-methods`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:77 +#: deprecations/pending-removal-in-3.14.rst:71 msgid "" ":mod:`pathlib`: :meth:`~pathlib.PurePath.is_relative_to` and :meth:`~pathlib." "PurePath.relative_to`: passing additional arguments is deprecated." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:81 +#: deprecations/pending-removal-in-3.14.rst:75 msgid "" ":mod:`pkgutil`: :func:`!pkgutil.find_loader` and :func:`!pkgutil.get_loader` " "now raise :exc:`DeprecationWarning`; use :func:`importlib.util.find_spec` " "instead. (Contributed by Nikita Sobolev in :gh:`97850`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:86 +#: deprecations/pending-removal-in-3.14.rst:80 msgid ":mod:`pty`:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:88 +#: deprecations/pending-removal-in-3.14.rst:82 msgid "``master_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:89 +#: deprecations/pending-removal-in-3.14.rst:83 msgid "``slave_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:93 +#: deprecations/pending-removal-in-3.14.rst:87 msgid ":data:`!version` and :data:`!version_info`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:95 +#: deprecations/pending-removal-in-3.14.rst:89 msgid "" ":meth:`~sqlite3.Cursor.execute` and :meth:`~sqlite3.Cursor.executemany` if :" "ref:`named placeholders ` are used and *parameters* is " "a sequence instead of a :class:`dict`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:99 -msgid "" -":mod:`typing`: :class:`!typing.ByteString`, deprecated since Python 3.9, now " -"causes a :exc:`DeprecationWarning` to be emitted when it is used." -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:102 +#: deprecations/pending-removal-in-3.14.rst:93 msgid "" ":mod:`urllib`: :class:`!urllib.parse.Quoter` is deprecated: it was not " "intended to be a public API. (Contributed by Gregory P. Smith in :gh:" @@ -2297,7 +2269,7 @@ msgid "" msgstr "" #: deprecations/pending-removal-in-3.15.rst:32 -#: deprecations/pending-removal-in-future.rst:64 +#: deprecations/pending-removal-in-future.rst:63 msgid ":mod:`importlib`:" msgstr "" @@ -2420,6 +2392,7 @@ msgid "" "by Jiahao Li in :gh:`125746`.)" msgstr "" +#: deprecations/c-api-pending-removal-in-3.16.rst:2 #: deprecations/pending-removal-in-3.16.rst:2 msgid "Pending removal in Python 3.16" msgstr "" @@ -2605,8 +2578,17 @@ msgstr "" msgid "Pending removal in Python 3.17" msgstr "" +#: deprecations/pending-removal-in-3.17.rst:4 +msgid ":mod:`collections.abc`:" +msgstr "" + #: deprecations/pending-removal-in-3.17.rst:6 msgid "" +":class:`collections.abc.ByteString` is scheduled for removal in Python 3.17." +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:28 +msgid "" "Before Python 3.14, old-style unions were implemented using the private " "class ``typing._UnionGenericAlias``. This class is no longer needed for the " "implementation, but it has been retained for backward compatibility, with " @@ -2615,6 +2597,12 @@ msgid "" "of relying on private implementation details." msgstr "" +#: deprecations/pending-removal-in-3.17.rst:33 +msgid "" +":class:`typing.ByteString`, deprecated since Python 3.9, is scheduled for " +"removal in Python 3.17." +msgstr "" + #: deprecations/c-api-pending-removal-in-future.rst:2 #: deprecations/pending-removal-in-future.rst:2 msgid "Pending removal in future versions" @@ -2646,17 +2634,13 @@ msgid "The :class:`argparse.FileType` type converter is deprecated." msgstr "" #: deprecations/pending-removal-in-future.rst:18 -msgid "``bool(NotImplemented)``." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:19 msgid "" "Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)`` signature " "is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " "argument signature." msgstr "" -#: deprecations/pending-removal-in-future.rst:22 +#: deprecations/pending-removal-in-future.rst:21 msgid "" "Currently Python accepts numeric literals immediately followed by keywords, " "for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " @@ -2668,32 +2652,32 @@ msgid "" "syntax error. (:gh:`87999`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:30 +#: deprecations/pending-removal-in-future.rst:29 msgid "" "Support for ``__index__()`` and ``__int__()`` method returning non-int type: " "these methods will be required to return an instance of a strict subclass " "of :class:`int`." msgstr "" -#: deprecations/pending-removal-in-future.rst:33 +#: deprecations/pending-removal-in-future.rst:32 msgid "" "Support for ``__float__()`` method returning a strict subclass of :class:" "`float`: these methods will be required to return an instance of :class:" "`float`." msgstr "" -#: deprecations/pending-removal-in-future.rst:36 +#: deprecations/pending-removal-in-future.rst:35 msgid "" "Support for ``__complex__()`` method returning a strict subclass of :class:" "`complex`: these methods will be required to return an instance of :class:" "`complex`." msgstr "" -#: deprecations/pending-removal-in-future.rst:39 +#: deprecations/pending-removal-in-future.rst:38 msgid "Delegation of ``int()`` to ``__trunc__()`` method." msgstr "" -#: deprecations/pending-removal-in-future.rst:40 +#: deprecations/pending-removal-in-future.rst:39 msgid "" "Passing a complex number as the *real* or *imag* argument in the :func:" "`complex` constructor is now deprecated; it should only be passed as a " @@ -2701,80 +2685,80 @@ msgid "" "`109218`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:50 +#: deprecations/pending-removal-in-future.rst:49 msgid "" ":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. (:gh:" "`133038`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:52 +#: deprecations/pending-removal-in-future.rst:51 msgid "" ":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:55 +#: deprecations/pending-removal-in-future.rst:54 msgid ":mod:`datetime`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:57 +#: deprecations/pending-removal-in-future.rst:56 msgid "" ":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." "UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:59 +#: deprecations/pending-removal-in-future.rst:58 msgid "" ":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." "fromtimestamp(timestamp, tz=datetime.UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:62 +#: deprecations/pending-removal-in-future.rst:61 msgid ":mod:`gettext`: Plural value must be an integer." msgstr "" -#: deprecations/pending-removal-in-future.rst:66 +#: deprecations/pending-removal-in-future.rst:65 msgid "" ":func:`~importlib.util.cache_from_source` *debug_override* parameter is " "deprecated: use the *optimization* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:69 +#: deprecations/pending-removal-in-future.rst:68 msgid ":mod:`importlib.metadata`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:71 +#: deprecations/pending-removal-in-future.rst:70 msgid "``EntryPoints`` tuple interface." msgstr "" -#: deprecations/pending-removal-in-future.rst:72 +#: deprecations/pending-removal-in-future.rst:71 msgid "Implicit ``None`` on return values." msgstr "" -#: deprecations/pending-removal-in-future.rst:74 +#: deprecations/pending-removal-in-future.rst:73 msgid "" ":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " "use :meth:`~logging.warning` instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:77 +#: deprecations/pending-removal-in-future.rst:76 msgid "" ":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " "BytesIO and binary mode instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:80 +#: deprecations/pending-removal-in-future.rst:79 msgid "" ":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." msgstr "" -#: deprecations/pending-removal-in-future.rst:82 +#: deprecations/pending-removal-in-future.rst:81 msgid "" ":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " "deprecated, use an exception instance." msgstr "" -#: deprecations/pending-removal-in-future.rst:85 +#: deprecations/pending-removal-in-future.rst:84 msgid "" ":mod:`re`: More strict rules are now applied for numerical group references " "and group names in regular expressions. Only sequence of ASCII digits is " @@ -2783,110 +2767,110 @@ msgid "" "underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:92 +#: deprecations/pending-removal-in-future.rst:91 msgid "" ":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." msgstr "" -#: deprecations/pending-removal-in-future.rst:94 +#: deprecations/pending-removal-in-future.rst:93 msgid "" ":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " "Python 3.12; use the *onexc* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:97 +#: deprecations/pending-removal-in-future.rst:96 msgid ":mod:`ssl` options and protocols:" msgstr "" -#: deprecations/pending-removal-in-future.rst:99 +#: deprecations/pending-removal-in-future.rst:98 msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." msgstr "" -#: deprecations/pending-removal-in-future.rst:100 +#: deprecations/pending-removal-in-future.rst:99 msgid "" ":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` and :meth:" "`!selected_npn_protocol` are deprecated: use ALPN instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:103 +#: deprecations/pending-removal-in-future.rst:102 msgid "``ssl.OP_NO_SSL*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:104 +#: deprecations/pending-removal-in-future.rst:103 msgid "``ssl.OP_NO_TLS*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:105 +#: deprecations/pending-removal-in-future.rst:104 msgid "``ssl.PROTOCOL_SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:106 +#: deprecations/pending-removal-in-future.rst:105 msgid "``ssl.PROTOCOL_TLS``" msgstr "" -#: deprecations/pending-removal-in-future.rst:107 +#: deprecations/pending-removal-in-future.rst:106 msgid "``ssl.PROTOCOL_TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:108 +#: deprecations/pending-removal-in-future.rst:107 msgid "``ssl.PROTOCOL_TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:109 +#: deprecations/pending-removal-in-future.rst:108 msgid "``ssl.PROTOCOL_TLSv1_2``" msgstr "" -#: deprecations/pending-removal-in-future.rst:110 +#: deprecations/pending-removal-in-future.rst:109 msgid "``ssl.TLSVersion.SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:111 +#: deprecations/pending-removal-in-future.rst:110 msgid "``ssl.TLSVersion.TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:112 +#: deprecations/pending-removal-in-future.rst:111 msgid "``ssl.TLSVersion.TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:114 +#: deprecations/pending-removal-in-future.rst:113 msgid ":mod:`threading` methods:" msgstr "" -#: deprecations/pending-removal-in-future.rst:116 +#: deprecations/pending-removal-in-future.rst:115 msgid "" ":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." "notify_all`." msgstr "" -#: deprecations/pending-removal-in-future.rst:117 +#: deprecations/pending-removal-in-future.rst:116 msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." msgstr "" -#: deprecations/pending-removal-in-future.rst:118 +#: deprecations/pending-removal-in-future.rst:117 msgid "" ":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :" "attr:`threading.Thread.daemon` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:120 +#: deprecations/pending-removal-in-future.rst:119 msgid "" ":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :" "attr:`threading.Thread.name` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:122 +#: deprecations/pending-removal-in-future.rst:121 msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." msgstr "" -#: deprecations/pending-removal-in-future.rst:123 +#: deprecations/pending-removal-in-future.rst:122 msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." msgstr "" -#: deprecations/pending-removal-in-future.rst:125 +#: deprecations/pending-removal-in-future.rst:124 msgid ":class:`typing.Text` (:gh:`92332`)." msgstr "" -#: deprecations/pending-removal-in-future.rst:127 +#: deprecations/pending-removal-in-future.rst:126 msgid "" "The internal class ``typing._UnionGenericAlias`` is no longer used to " "implement :class:`typing.Union`. To preserve compatibility with users using " @@ -2894,69 +2878,69 @@ msgid "" "Python 3.17. (Contributed by Jelle Zijlstra in :gh:`105499`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:132 +#: deprecations/pending-removal-in-future.rst:131 msgid "" ":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " "value that is not ``None`` from a test case." msgstr "" -#: deprecations/pending-removal-in-future.rst:135 +#: deprecations/pending-removal-in-future.rst:134 msgid "" ":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " "instead" msgstr "" -#: deprecations/pending-removal-in-future.rst:137 +#: deprecations/pending-removal-in-future.rst:136 msgid "``splitattr()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:138 +#: deprecations/pending-removal-in-future.rst:137 msgid "``splithost()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:139 +#: deprecations/pending-removal-in-future.rst:138 msgid "``splitnport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:140 +#: deprecations/pending-removal-in-future.rst:139 msgid "``splitpasswd()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:141 +#: deprecations/pending-removal-in-future.rst:140 msgid "``splitport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:142 +#: deprecations/pending-removal-in-future.rst:141 msgid "``splitquery()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:143 +#: deprecations/pending-removal-in-future.rst:142 msgid "``splittag()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:144 +#: deprecations/pending-removal-in-future.rst:143 msgid "``splittype()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:145 +#: deprecations/pending-removal-in-future.rst:144 msgid "``splituser()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:146 +#: deprecations/pending-removal-in-future.rst:145 msgid "``splitvalue()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:147 +#: deprecations/pending-removal-in-future.rst:146 msgid "``to_bytes()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:149 +#: deprecations/pending-removal-in-future.rst:148 msgid "" ":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " "writes." msgstr "" -#: deprecations/pending-removal-in-future.rst:152 +#: deprecations/pending-removal-in-future.rst:151 msgid "" ":mod:`xml.etree.ElementTree`: Testing the truth value of an :class:`~xml." "etree.ElementTree.Element` is deprecated. In a future release it will always " @@ -2964,60 +2948,60 @@ msgid "" "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:157 +#: deprecations/pending-removal-in-future.rst:156 msgid "" ":func:`sys._clear_type_cache` is deprecated: use :func:`sys." "_clear_internal_caches` instead." msgstr "" -#: whatsnew/3.12.rst:2239 +#: whatsnew/3.12.rst:2255 msgid "Removed" msgstr "" -#: whatsnew/3.12.rst:1360 +#: whatsnew/3.12.rst:1374 msgid "asynchat and asyncore" msgstr "" -#: whatsnew/3.12.rst:1362 +#: whatsnew/3.12.rst:1376 msgid "" "These two modules have been removed according to the schedule in :pep:`594`, " "having been deprecated in Python 3.6. Use :mod:`asyncio` instead. " "(Contributed by Nikita Sobolev in :gh:`96580`.)" msgstr "" -#: whatsnew/3.12.rst:1369 +#: whatsnew/3.12.rst:1383 msgid "configparser" msgstr "" -#: whatsnew/3.12.rst:1371 +#: whatsnew/3.12.rst:1385 msgid "" "Several names deprecated in the :mod:`configparser` way back in 3.2 have " "been removed per :gh:`89336`:" msgstr "" -#: whatsnew/3.12.rst:1374 +#: whatsnew/3.12.rst:1388 msgid "" ":class:`configparser.ParsingError` no longer has a ``filename`` attribute or " "argument. Use the ``source`` attribute and argument instead." msgstr "" -#: whatsnew/3.12.rst:1376 +#: whatsnew/3.12.rst:1390 msgid "" ":mod:`configparser` no longer has a ``SafeConfigParser`` class. Use the " "shorter :class:`~configparser.ConfigParser` name instead." msgstr "" -#: whatsnew/3.12.rst:1378 +#: whatsnew/3.12.rst:1392 msgid "" ":class:`configparser.ConfigParser` no longer has a ``readfp`` method. Use :" "meth:`~configparser.ConfigParser.read_file` instead." msgstr "" -#: whatsnew/3.12.rst:1384 +#: whatsnew/3.12.rst:1398 msgid "distutils" msgstr "" -#: whatsnew/3.12.rst:1386 +#: whatsnew/3.12.rst:1400 msgid "" "Remove the :py:mod:`!distutils` package. It was deprecated in Python 3.10 " "by :pep:`632` \"Deprecate distutils module\". For projects still using " @@ -3026,17 +3010,17 @@ msgid "" "Victor Stinner in :gh:`92584`.)" msgstr "" -#: whatsnew/3.12.rst:1393 +#: whatsnew/3.12.rst:1407 msgid "ensurepip" msgstr "" -#: whatsnew/3.12.rst:1395 +#: whatsnew/3.12.rst:1409 msgid "" "Remove the bundled setuptools wheel from :mod:`ensurepip`, and stop " "installing setuptools in environments created by :mod:`venv`." msgstr "" -#: whatsnew/3.12.rst:1398 +#: whatsnew/3.12.rst:1412 msgid "" "``pip (>= 22.1)`` does not require setuptools to be installed in the " "environment. ``setuptools``-based (and ``distutils``-based) packages can " @@ -3044,7 +3028,7 @@ msgid "" "the build environment it uses for building a package." msgstr "" -#: whatsnew/3.12.rst:1404 +#: whatsnew/3.12.rst:1418 msgid "" "``easy_install``, ``pkg_resources``, ``setuptools`` and ``distutils`` are no " "longer provided by default in environments created with ``venv`` or " @@ -3054,35 +3038,35 @@ msgid "" "(typically, using pip)." msgstr "" -#: whatsnew/3.12.rst:1411 +#: whatsnew/3.12.rst:1425 msgid "(Contributed by Pradyun Gedam in :gh:`95299`.)" msgstr "" -#: whatsnew/3.12.rst:1414 +#: whatsnew/3.12.rst:1428 msgid "enum" msgstr "" -#: whatsnew/3.12.rst:1416 +#: whatsnew/3.12.rst:1430 msgid "" "Remove :mod:`enum`'s ``EnumMeta.__getattr__``, which is no longer needed for " "enum attribute access. (Contributed by Ethan Furman in :gh:`95083`.)" msgstr "" -#: whatsnew/3.12.rst:1421 +#: whatsnew/3.12.rst:1435 msgid "ftplib" msgstr "" -#: whatsnew/3.12.rst:1423 +#: whatsnew/3.12.rst:1437 msgid "" "Remove :mod:`ftplib`'s ``FTP_TLS.ssl_version`` class attribute: use the " "*context* parameter instead. (Contributed by Victor Stinner in :gh:`94172`.)" msgstr "" -#: whatsnew/3.12.rst:1428 +#: whatsnew/3.12.rst:1442 msgid "gzip" msgstr "" -#: whatsnew/3.12.rst:1430 +#: whatsnew/3.12.rst:1444 msgid "" "Remove the ``filename`` attribute of :mod:`gzip`'s :class:`gzip.GzipFile`, " "deprecated since Python 2.6, use the :attr:`~gzip.GzipFile.name` attribute " @@ -3091,11 +3075,11 @@ msgid "" "`94196`.)" msgstr "" -#: whatsnew/3.12.rst:1437 +#: whatsnew/3.12.rst:1451 msgid "hashlib" msgstr "" -#: whatsnew/3.12.rst:1439 +#: whatsnew/3.12.rst:1453 msgid "" "Remove the pure Python implementation of :mod:`hashlib`'s :func:`hashlib." "pbkdf2_hmac`, deprecated in Python 3.10. Python 3.10 and newer requires " @@ -3104,150 +3088,150 @@ msgid "" "Stinner in :gh:`94199`.)" msgstr "" -#: whatsnew/3.12.rst:1475 +#: whatsnew/3.12.rst:1489 msgid "importlib" msgstr "" -#: whatsnew/3.12.rst:1448 +#: whatsnew/3.12.rst:1462 msgid "" "Many previously deprecated cleanups in :mod:`importlib` have now been " "completed:" msgstr "" -#: whatsnew/3.12.rst:1451 +#: whatsnew/3.12.rst:1465 msgid "" "References to, and support for :meth:`!module_repr` has been removed. " "(Contributed by Barry Warsaw in :gh:`97850`.)" msgstr "" -#: whatsnew/3.12.rst:1454 +#: whatsnew/3.12.rst:1468 msgid "" "``importlib.util.set_package``, ``importlib.util.set_loader`` and " "``importlib.util.module_for_loader`` have all been removed. (Contributed by " "Brett Cannon and Nikita Sobolev in :gh:`65961` and :gh:`97850`.)" msgstr "" -#: whatsnew/3.12.rst:1458 +#: whatsnew/3.12.rst:1472 msgid "" "Support for ``find_loader()`` and ``find_module()`` APIs have been removed. " "(Contributed by Barry Warsaw in :gh:`98040`.)" msgstr "" -#: whatsnew/3.12.rst:1461 +#: whatsnew/3.12.rst:1475 msgid "" "``importlib.abc.Finder``, ``pkgutil.ImpImporter``, and ``pkgutil.ImpLoader`` " "have been removed. (Contributed by Barry Warsaw in :gh:`98040`.)" msgstr "" -#: whatsnew/3.12.rst:1475 +#: whatsnew/3.12.rst:1489 msgid "imp" msgstr "" -#: whatsnew/3.12.rst:1469 +#: whatsnew/3.12.rst:1483 msgid "" "The :mod:`!imp` module has been removed. (Contributed by Barry Warsaw in :" "gh:`98040`.)" msgstr "" -#: whatsnew/3.12.rst:1472 +#: whatsnew/3.12.rst:1486 msgid "To migrate, consult the following correspondence table:" msgstr "" -#: whatsnew/3.12.rst:1477 +#: whatsnew/3.12.rst:1491 msgid "``imp.NullImporter``" msgstr "" -#: whatsnew/3.12.rst:1477 +#: whatsnew/3.12.rst:1491 msgid "Insert ``None`` into ``sys.path_importer_cache``" msgstr "" -#: whatsnew/3.12.rst:1478 +#: whatsnew/3.12.rst:1492 msgid "``imp.cache_from_source()``" msgstr "" -#: whatsnew/3.12.rst:1478 +#: whatsnew/3.12.rst:1492 msgid ":func:`importlib.util.cache_from_source`" msgstr "" -#: whatsnew/3.12.rst:1479 +#: whatsnew/3.12.rst:1493 msgid "``imp.find_module()``" msgstr "" -#: whatsnew/3.12.rst:1479 +#: whatsnew/3.12.rst:1493 msgid ":func:`importlib.util.find_spec`" msgstr "" -#: whatsnew/3.12.rst:1480 +#: whatsnew/3.12.rst:1494 msgid "``imp.get_magic()``" msgstr "" -#: whatsnew/3.12.rst:1480 +#: whatsnew/3.12.rst:1494 msgid ":const:`importlib.util.MAGIC_NUMBER`" msgstr "" -#: whatsnew/3.12.rst:1481 +#: whatsnew/3.12.rst:1495 msgid "``imp.get_suffixes()``" msgstr "" -#: whatsnew/3.12.rst:1481 +#: whatsnew/3.12.rst:1495 msgid "" ":const:`importlib.machinery.SOURCE_SUFFIXES`, :const:`importlib.machinery." "EXTENSION_SUFFIXES`, and :const:`importlib.machinery.BYTECODE_SUFFIXES`" msgstr "" -#: whatsnew/3.12.rst:1482 +#: whatsnew/3.12.rst:1496 msgid "``imp.get_tag()``" msgstr "" -#: whatsnew/3.12.rst:1482 +#: whatsnew/3.12.rst:1496 msgid ":attr:`sys.implementation.cache_tag `" msgstr "" -#: whatsnew/3.12.rst:1483 +#: whatsnew/3.12.rst:1497 msgid "``imp.load_module()``" msgstr "" -#: whatsnew/3.12.rst:1483 +#: whatsnew/3.12.rst:1497 msgid ":func:`importlib.import_module`" msgstr "" -#: whatsnew/3.12.rst:1484 +#: whatsnew/3.12.rst:1498 msgid "``imp.new_module(name)``" msgstr "" -#: whatsnew/3.12.rst:1484 +#: whatsnew/3.12.rst:1498 msgid "``types.ModuleType(name)``" msgstr "" -#: whatsnew/3.12.rst:1485 +#: whatsnew/3.12.rst:1499 msgid "``imp.reload()``" msgstr "" -#: whatsnew/3.12.rst:1485 +#: whatsnew/3.12.rst:1499 msgid ":func:`importlib.reload`" msgstr "" -#: whatsnew/3.12.rst:1486 +#: whatsnew/3.12.rst:1500 msgid "``imp.source_from_cache()``" msgstr "" -#: whatsnew/3.12.rst:1486 +#: whatsnew/3.12.rst:1500 msgid ":func:`importlib.util.source_from_cache`" msgstr "" -#: whatsnew/3.12.rst:1487 +#: whatsnew/3.12.rst:1501 msgid "``imp.load_source()``" msgstr "" -#: whatsnew/3.12.rst:1487 +#: whatsnew/3.12.rst:1501 msgid "*See below*" msgstr "" -#: whatsnew/3.12.rst:1490 +#: whatsnew/3.12.rst:1504 msgid "Replace ``imp.load_source()`` with::" msgstr "" -#: whatsnew/3.12.rst:1492 +#: whatsnew/3.12.rst:1506 msgid "" "import importlib.util\n" "import importlib.machinery\n" @@ -3264,48 +3248,48 @@ msgid "" " return module" msgstr "" -#: whatsnew/3.12.rst:1505 +#: whatsnew/3.12.rst:1519 msgid "Remove :mod:`!imp` functions and attributes with no replacements:" msgstr "" -#: whatsnew/3.12.rst:1507 +#: whatsnew/3.12.rst:1521 msgid "Undocumented functions:" msgstr "" -#: whatsnew/3.12.rst:1509 +#: whatsnew/3.12.rst:1523 msgid "``imp.init_builtin()``" msgstr "" -#: whatsnew/3.12.rst:1510 +#: whatsnew/3.12.rst:1524 msgid "``imp.load_compiled()``" msgstr "" -#: whatsnew/3.12.rst:1511 +#: whatsnew/3.12.rst:1525 msgid "``imp.load_dynamic()``" msgstr "" -#: whatsnew/3.12.rst:1512 +#: whatsnew/3.12.rst:1526 msgid "``imp.load_package()``" msgstr "" -#: whatsnew/3.12.rst:1514 +#: whatsnew/3.12.rst:1528 msgid "" "``imp.lock_held()``, ``imp.acquire_lock()``, ``imp.release_lock()``: the " "locking scheme has changed in Python 3.3 to per-module locks." msgstr "" -#: whatsnew/3.12.rst:1516 +#: whatsnew/3.12.rst:1530 msgid "" "``imp.find_module()`` constants: ``SEARCH_ERROR``, ``PY_SOURCE``, " "``PY_COMPILED``, ``C_EXTENSION``, ``PY_RESOURCE``, ``PKG_DIRECTORY``, " "``C_BUILTIN``, ``PY_FROZEN``, ``PY_CODERESOURCE``, ``IMP_HOOK``." msgstr "" -#: whatsnew/3.12.rst:1521 +#: whatsnew/3.12.rst:1535 msgid "io" msgstr "" -#: whatsnew/3.12.rst:1523 +#: whatsnew/3.12.rst:1537 msgid "" "Remove :mod:`io`'s ``io.OpenWrapper`` and ``_pyio.OpenWrapper``, deprecated " "in Python 3.10: just use :func:`open` instead. The :func:`open` (:func:`io." @@ -3314,22 +3298,22 @@ msgid "" "`94169`.)" msgstr "" -#: whatsnew/3.12.rst:1530 +#: whatsnew/3.12.rst:1544 msgid "locale" msgstr "" -#: whatsnew/3.12.rst:1532 +#: whatsnew/3.12.rst:1546 msgid "" "Remove :mod:`locale`'s :func:`!locale.format` function, deprecated in Python " "3.7: use :func:`locale.format_string` instead. (Contributed by Victor " "Stinner in :gh:`94226`.)" msgstr "" -#: whatsnew/3.12.rst:1537 +#: whatsnew/3.12.rst:1551 msgid "smtpd" msgstr "" -#: whatsnew/3.12.rst:1539 +#: whatsnew/3.12.rst:1553 msgid "" "The ``smtpd`` module has been removed according to the schedule in :pep:" "`594`, having been deprecated in Python 3.4.7 and 3.5.4. Use the :pypi:" @@ -3337,27 +3321,27 @@ msgid "" "(Contributed by Oleg Iarygin in :gh:`93243`.)" msgstr "" -#: whatsnew/3.12.rst:1548 +#: whatsnew/3.12.rst:1562 msgid "" "The following undocumented :mod:`sqlite3` features, deprecated in Python " "3.10, are now removed:" msgstr "" -#: whatsnew/3.12.rst:1551 +#: whatsnew/3.12.rst:1565 msgid "``sqlite3.enable_shared_cache()``" msgstr "" -#: whatsnew/3.12.rst:1552 +#: whatsnew/3.12.rst:1566 msgid "``sqlite3.OptimizedUnicode``" msgstr "" -#: whatsnew/3.12.rst:1554 +#: whatsnew/3.12.rst:1568 msgid "" "If a shared cache must be used, open the database in URI mode using the " "``cache=shared`` query parameter." msgstr "" -#: whatsnew/3.12.rst:1557 +#: whatsnew/3.12.rst:1571 msgid "" "The ``sqlite3.OptimizedUnicode`` text factory has been an alias for :class:" "`str` since Python 3.3. Code that previously set the text factory to " @@ -3365,22 +3349,22 @@ msgid "" "default value which is also ``str``." msgstr "" -#: whatsnew/3.12.rst:1562 +#: whatsnew/3.12.rst:1576 msgid "(Contributed by Erlend E. Aasland in :gh:`92548`.)" msgstr "" -#: whatsnew/3.12.rst:1565 +#: whatsnew/3.12.rst:1579 msgid "ssl" msgstr "" -#: whatsnew/3.12.rst:1567 +#: whatsnew/3.12.rst:1581 msgid "" "Remove :mod:`ssl`'s :func:`!ssl.RAND_pseudo_bytes` function, deprecated in " "Python 3.6: use :func:`os.urandom` or :func:`ssl.RAND_bytes` instead. " "(Contributed by Victor Stinner in :gh:`94199`.)" msgstr "" -#: whatsnew/3.12.rst:1571 +#: whatsnew/3.12.rst:1585 msgid "" "Remove the :func:`!ssl.match_hostname` function. It was deprecated in Python " "3.7. OpenSSL performs hostname matching since Python 3.7, Python no longer " @@ -3388,7 +3372,7 @@ msgid "" "Stinner in :gh:`94199`.)" msgstr "" -#: whatsnew/3.12.rst:1577 +#: whatsnew/3.12.rst:1591 msgid "" "Remove the :func:`!ssl.wrap_socket` function, deprecated in Python 3.7: " "instead, create a :class:`ssl.SSLContext` object and call its :class:`ssl." @@ -3399,185 +3383,185 @@ msgid "" "`94199`.)" msgstr "" -#: whatsnew/3.12.rst:1588 +#: whatsnew/3.12.rst:1602 msgid "Remove many long-deprecated :mod:`unittest` features:" msgstr "" -#: whatsnew/3.12.rst:1592 +#: whatsnew/3.12.rst:1606 msgid "A number of :class:`~unittest.TestCase` method aliases:" msgstr "" -#: whatsnew/3.12.rst:1595 +#: whatsnew/3.12.rst:1609 msgid "Deprecated alias" msgstr "" -#: whatsnew/3.12.rst:1595 +#: whatsnew/3.12.rst:1609 msgid "Method Name" msgstr "" -#: whatsnew/3.12.rst:1595 +#: whatsnew/3.12.rst:1609 msgid "Deprecated in" msgstr "" -#: whatsnew/3.12.rst:1597 +#: whatsnew/3.12.rst:1611 msgid "``failUnless``" msgstr "" -#: whatsnew/3.12.rst:1604 +#: whatsnew/3.12.rst:1618 msgid ":meth:`.assertTrue`" msgstr "" -#: whatsnew/3.12.rst:1598 whatsnew/3.12.rst:1600 whatsnew/3.12.rst:1602 -#: whatsnew/3.12.rst:1603 +#: whatsnew/3.12.rst:1612 whatsnew/3.12.rst:1614 whatsnew/3.12.rst:1616 +#: whatsnew/3.12.rst:1617 msgid "3.1" msgstr "" -#: whatsnew/3.12.rst:1598 +#: whatsnew/3.12.rst:1612 msgid "``failIf``" msgstr "" -#: whatsnew/3.12.rst:1598 +#: whatsnew/3.12.rst:1612 msgid ":meth:`.assertFalse`" msgstr "" -#: whatsnew/3.12.rst:1599 +#: whatsnew/3.12.rst:1613 msgid "``failUnlessEqual``" msgstr "" -#: whatsnew/3.12.rst:1605 +#: whatsnew/3.12.rst:1619 msgid ":meth:`.assertEqual`" msgstr "" -#: whatsnew/3.12.rst:1600 +#: whatsnew/3.12.rst:1614 msgid "``failIfEqual``" msgstr "" -#: whatsnew/3.12.rst:1606 +#: whatsnew/3.12.rst:1620 msgid ":meth:`.assertNotEqual`" msgstr "" -#: whatsnew/3.12.rst:1601 +#: whatsnew/3.12.rst:1615 msgid "``failUnlessAlmostEqual``" msgstr "" -#: whatsnew/3.12.rst:1607 +#: whatsnew/3.12.rst:1621 msgid ":meth:`.assertAlmostEqual`" msgstr "" -#: whatsnew/3.12.rst:1602 +#: whatsnew/3.12.rst:1616 msgid "``failIfAlmostEqual``" msgstr "" -#: whatsnew/3.12.rst:1608 +#: whatsnew/3.12.rst:1622 msgid ":meth:`.assertNotAlmostEqual`" msgstr "" -#: whatsnew/3.12.rst:1603 +#: whatsnew/3.12.rst:1617 msgid "``failUnlessRaises``" msgstr "" -#: whatsnew/3.12.rst:1603 +#: whatsnew/3.12.rst:1617 msgid ":meth:`.assertRaises`" msgstr "" -#: whatsnew/3.12.rst:1604 +#: whatsnew/3.12.rst:1618 msgid "``assert_``" msgstr "" -#: whatsnew/3.12.rst:1605 whatsnew/3.12.rst:1607 whatsnew/3.12.rst:1609 -#: whatsnew/3.12.rst:1610 +#: whatsnew/3.12.rst:1619 whatsnew/3.12.rst:1621 whatsnew/3.12.rst:1623 +#: whatsnew/3.12.rst:1624 msgid "3.2" msgstr "" -#: whatsnew/3.12.rst:1605 +#: whatsnew/3.12.rst:1619 msgid "``assertEquals``" msgstr "" -#: whatsnew/3.12.rst:1606 +#: whatsnew/3.12.rst:1620 msgid "``assertNotEquals``" msgstr "" -#: whatsnew/3.12.rst:1607 +#: whatsnew/3.12.rst:1621 msgid "``assertAlmostEquals``" msgstr "" -#: whatsnew/3.12.rst:1608 +#: whatsnew/3.12.rst:1622 msgid "``assertNotAlmostEquals``" msgstr "" -#: whatsnew/3.12.rst:1609 +#: whatsnew/3.12.rst:1623 msgid "``assertRegexpMatches``" msgstr "" -#: whatsnew/3.12.rst:1609 +#: whatsnew/3.12.rst:1623 msgid ":meth:`.assertRegex`" msgstr "" -#: whatsnew/3.12.rst:1610 +#: whatsnew/3.12.rst:1624 msgid "``assertRaisesRegexp``" msgstr "" -#: whatsnew/3.12.rst:1610 +#: whatsnew/3.12.rst:1624 msgid ":meth:`.assertRaisesRegex`" msgstr "" -#: whatsnew/3.12.rst:1611 +#: whatsnew/3.12.rst:1625 msgid "``assertNotRegexpMatches``" msgstr "" -#: whatsnew/3.12.rst:1611 +#: whatsnew/3.12.rst:1625 msgid ":meth:`.assertNotRegex`" msgstr "" -#: whatsnew/3.12.rst:1611 +#: whatsnew/3.12.rst:1625 msgid "3.5" msgstr "" -#: whatsnew/3.12.rst:1614 +#: whatsnew/3.12.rst:1628 msgid "" "You can use https://github.com/isidentical/teyit to automatically modernise " "your unit tests." msgstr "" -#: whatsnew/3.12.rst:1617 +#: whatsnew/3.12.rst:1631 msgid "" "Undocumented and broken :class:`~unittest.TestCase` method " "``assertDictContainsSubset`` (deprecated in Python 3.2)." msgstr "" -#: whatsnew/3.12.rst:1620 +#: whatsnew/3.12.rst:1634 msgid "" "Undocumented :meth:`TestLoader.loadTestsFromModule ` parameter *use_load_tests* (deprecated and ignored " "since Python 3.5)." msgstr "" -#: whatsnew/3.12.rst:1624 +#: whatsnew/3.12.rst:1638 msgid "" "An alias of the :class:`~unittest.TextTestResult` class: ``_TextTestResult`` " "(deprecated in Python 3.2)." msgstr "" -#: whatsnew/3.12.rst:1627 +#: whatsnew/3.12.rst:1641 msgid "(Contributed by Serhiy Storchaka in :gh:`89325`.)" msgstr "" -#: whatsnew/3.12.rst:1630 +#: whatsnew/3.12.rst:1644 msgid "webbrowser" msgstr "" -#: whatsnew/3.12.rst:1632 +#: whatsnew/3.12.rst:1646 msgid "" "Remove support for obsolete browsers from :mod:`webbrowser`. The removed " "browsers include: Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, " "Firebird, and Firefox versions 35 and below (:gh:`102871`)." msgstr "" -#: whatsnew/3.12.rst:1637 +#: whatsnew/3.12.rst:1651 msgid "xml.etree.ElementTree" msgstr "" -#: whatsnew/3.12.rst:1639 +#: whatsnew/3.12.rst:1653 msgid "" "Remove the ``ElementTree.Element.copy()`` method of the pure Python " "implementation, deprecated in Python 3.10, use the :func:`copy.copy` " @@ -3586,22 +3570,22 @@ msgid "" "Stinner in :gh:`94383`.)" msgstr "" -#: whatsnew/3.12.rst:1646 +#: whatsnew/3.12.rst:1660 msgid "zipimport" msgstr "" -#: whatsnew/3.12.rst:1648 +#: whatsnew/3.12.rst:1662 msgid "" "Remove :mod:`zipimport`'s ``find_loader()`` and ``find_module()`` methods, " "deprecated in Python 3.10: use the ``find_spec()`` method instead. See :pep:" "`451` for the rationale. (Contributed by Victor Stinner in :gh:`94379`.)" msgstr "" -#: whatsnew/3.12.rst:1654 +#: whatsnew/3.12.rst:1668 msgid "Others" msgstr "" -#: whatsnew/3.12.rst:1656 +#: whatsnew/3.12.rst:1670 msgid "" "Remove the ``suspicious`` rule from the documentation :file:`Makefile` and :" "file:`Doc/tools/rstlint.py`, both in favor of `sphinx-lint `, " "intended for low-level tools like debuggers and JIT compilers. This API may " @@ -3888,84 +3872,84 @@ msgid "" "contents are marked by the ``PyUnstable_`` prefix in names." msgstr "" -#: whatsnew/3.12.rst:1852 +#: whatsnew/3.12.rst:1866 msgid "Code object constructors:" msgstr "" -#: whatsnew/3.12.rst:1854 +#: whatsnew/3.12.rst:1868 msgid "``PyUnstable_Code_New()`` (renamed from ``PyCode_New``)" msgstr "" -#: whatsnew/3.12.rst:1855 +#: whatsnew/3.12.rst:1869 msgid "" "``PyUnstable_Code_NewWithPosOnlyArgs()`` (renamed from " "``PyCode_NewWithPosOnlyArgs``)" msgstr "" -#: whatsnew/3.12.rst:1857 +#: whatsnew/3.12.rst:1871 msgid "Extra storage for code objects (:pep:`523`):" msgstr "" -#: whatsnew/3.12.rst:1859 +#: whatsnew/3.12.rst:1873 msgid "" "``PyUnstable_Eval_RequestCodeExtraIndex()`` (renamed from " "``_PyEval_RequestCodeExtraIndex``)" msgstr "" -#: whatsnew/3.12.rst:1860 +#: whatsnew/3.12.rst:1874 msgid "``PyUnstable_Code_GetExtra()`` (renamed from ``_PyCode_GetExtra``)" msgstr "" -#: whatsnew/3.12.rst:1861 +#: whatsnew/3.12.rst:1875 msgid "``PyUnstable_Code_SetExtra()`` (renamed from ``_PyCode_SetExtra``)" msgstr "" -#: whatsnew/3.12.rst:1863 +#: whatsnew/3.12.rst:1877 msgid "" "The original names will continue to be available until the respective API " "changes." msgstr "" -#: whatsnew/3.12.rst:1866 +#: whatsnew/3.12.rst:1880 msgid "(Contributed by Petr Viktorin in :gh:`101101`.)" msgstr "" -#: whatsnew/3.12.rst:1868 +#: whatsnew/3.12.rst:1882 msgid "" ":pep:`697`: Add an API for extending types whose instance memory layout is " "opaque:" msgstr "" -#: whatsnew/3.12.rst:1871 +#: whatsnew/3.12.rst:1885 msgid "" ":c:member:`PyType_Spec.basicsize` can be zero or negative to specify " "inheriting or extending the base class size." msgstr "" -#: whatsnew/3.12.rst:1873 +#: whatsnew/3.12.rst:1887 msgid "" ":c:func:`PyObject_GetTypeData` and :c:func:`PyType_GetTypeDataSize` added to " "allow access to subclass-specific instance data." msgstr "" -#: whatsnew/3.12.rst:1875 +#: whatsnew/3.12.rst:1889 msgid "" ":c:macro:`Py_TPFLAGS_ITEMS_AT_END` and :c:func:`PyObject_GetItemData` added " "to allow safely extending certain variable-sized types, including :c:var:" "`PyType_Type`." msgstr "" -#: whatsnew/3.12.rst:1878 +#: whatsnew/3.12.rst:1892 msgid "" ":c:macro:`Py_RELATIVE_OFFSET` added to allow defining :c:type:`members " "` in terms of a subclass-specific struct." msgstr "" -#: whatsnew/3.12.rst:1881 +#: whatsnew/3.12.rst:1895 msgid "(Contributed by Petr Viktorin in :gh:`103509`.)" msgstr "" -#: whatsnew/3.12.rst:1883 +#: whatsnew/3.12.rst:1897 msgid "" "Add the new :ref:`limited C API ` function :c:func:" "`PyType_FromMetaclass`, which generalizes the existing :c:func:" @@ -3973,29 +3957,29 @@ msgid "" "(Contributed by Wenzel Jakob in :gh:`93012`.)" msgstr "" -#: whatsnew/3.12.rst:1888 +#: whatsnew/3.12.rst:1902 msgid "" "API for creating objects that can be called using :ref:`the vectorcall " "protocol ` was added to the :ref:`Limited API `:" msgstr "" -#: whatsnew/3.12.rst:1892 +#: whatsnew/3.12.rst:1906 msgid ":c:macro:`Py_TPFLAGS_HAVE_VECTORCALL`" msgstr "" -#: whatsnew/3.12.rst:1893 +#: whatsnew/3.12.rst:1907 msgid ":c:func:`PyVectorcall_NARGS`" msgstr "" -#: whatsnew/3.12.rst:1894 +#: whatsnew/3.12.rst:1908 msgid ":c:func:`PyVectorcall_Call`" msgstr "" -#: whatsnew/3.12.rst:1895 +#: whatsnew/3.12.rst:1909 msgid ":c:type:`vectorcallfunc`" msgstr "" -#: whatsnew/3.12.rst:1897 +#: whatsnew/3.12.rst:1911 msgid "" "The :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class " "when the class's :py:meth:`~object.__call__` method is reassigned. This " @@ -4006,7 +3990,7 @@ msgid "" "`93274`.)" msgstr "" -#: whatsnew/3.12.rst:1905 +#: whatsnew/3.12.rst:1919 msgid "" "The :c:macro:`Py_TPFLAGS_MANAGED_DICT` and :c:macro:" "`Py_TPFLAGS_MANAGED_WEAKREF` flags have been added. This allows extensions " @@ -4014,32 +3998,32 @@ msgid "" "bookkeeping, using less memory and with faster access." msgstr "" -#: whatsnew/3.12.rst:1910 +#: whatsnew/3.12.rst:1924 msgid "" "API for performing calls using :ref:`the vectorcall protocol ` " "was added to the :ref:`Limited API `:" msgstr "" -#: whatsnew/3.12.rst:1914 +#: whatsnew/3.12.rst:1928 msgid ":c:func:`PyObject_Vectorcall`" msgstr "" -#: whatsnew/3.12.rst:1915 +#: whatsnew/3.12.rst:1929 msgid ":c:func:`PyObject_VectorcallMethod`" msgstr "" -#: whatsnew/3.12.rst:1916 +#: whatsnew/3.12.rst:1930 msgid ":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`" msgstr "" -#: whatsnew/3.12.rst:1918 +#: whatsnew/3.12.rst:1932 msgid "" "This means that both the incoming and outgoing ends of the vector call " "protocol are now available in the :ref:`Limited API `. (Contributed " "by Wenzel Jakob in :gh:`98586`.)" msgstr "" -#: whatsnew/3.12.rst:1922 +#: whatsnew/3.12.rst:1936 msgid "" "Add two new public functions, :c:func:`PyEval_SetProfileAllThreads` and :c:" "func:`PyEval_SetTraceAllThreads`, that allow to set tracing and profiling " @@ -4047,14 +4031,14 @@ msgid "" "(Contributed by Pablo Galindo in :gh:`93503`.)" msgstr "" -#: whatsnew/3.12.rst:1928 +#: whatsnew/3.12.rst:1942 msgid "" "Add new function :c:func:`PyFunction_SetVectorcall` to the C API which sets " "the vectorcall field of a given :c:type:`PyFunctionObject`. (Contributed by " "Andrew Frost in :gh:`92257`.)" msgstr "" -#: whatsnew/3.12.rst:1932 +#: whatsnew/3.12.rst:1946 msgid "" "The C API now permits registering callbacks via :c:func:" "`PyDict_AddWatcher`, :c:func:`PyDict_Watch` and related APIs to be called " @@ -4063,28 +4047,28 @@ msgid "" "`91052`.)" msgstr "" -#: whatsnew/3.12.rst:1938 +#: whatsnew/3.12.rst:1952 msgid "" "Add :c:func:`PyType_AddWatcher` and :c:func:`PyType_Watch` API to register " "callbacks to receive notification on changes to a type. (Contributed by Carl " "Meyer in :gh:`91051`.)" msgstr "" -#: whatsnew/3.12.rst:1942 +#: whatsnew/3.12.rst:1956 msgid "" "Add :c:func:`PyCode_AddWatcher` and :c:func:`PyCode_ClearWatcher` APIs to " "register callbacks to receive notification on creation and destruction of " "code objects. (Contributed by Itamar Oren in :gh:`91054`.)" msgstr "" -#: whatsnew/3.12.rst:1947 +#: whatsnew/3.12.rst:1961 msgid "" "Add :c:func:`PyFrame_GetVar` and :c:func:`PyFrame_GetVarString` functions to " "get a frame variable by its name. (Contributed by Victor Stinner in :gh:" "`91248`.)" msgstr "" -#: whatsnew/3.12.rst:1951 +#: whatsnew/3.12.rst:1965 msgid "" "Add :c:func:`PyErr_GetRaisedException` and :c:func:" "`PyErr_SetRaisedException` for saving and restoring the current exception. " @@ -4094,14 +4078,14 @@ msgid "" "(Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" -#: whatsnew/3.12.rst:1959 +#: whatsnew/3.12.rst:1973 msgid "" "Add ``_PyErr_ChainExceptions1``, which takes an exception instance, to " "replace the legacy-API ``_PyErr_ChainExceptions``, which is now deprecated. " "(Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" -#: whatsnew/3.12.rst:1963 +#: whatsnew/3.12.rst:1977 msgid "" "Add :c:func:`PyException_GetArgs` and :c:func:`PyException_SetArgs` as " "convenience functions for retrieving and modifying the :attr:`~BaseException." @@ -4109,71 +4093,71 @@ msgid "" "in :gh:`101578`.)" msgstr "" -#: whatsnew/3.12.rst:1968 +#: whatsnew/3.12.rst:1982 msgid "" "Add :c:func:`PyErr_DisplayException`, which takes an exception instance, to " "replace the legacy-api :c:func:`!PyErr_Display`. (Contributed by Irit " "Katriel in :gh:`102755`)." msgstr "" -#: whatsnew/3.12.rst:1974 +#: whatsnew/3.12.rst:1988 msgid "" ":pep:`683`: Introduce *Immortal Objects*, which allows objects to bypass " "reference counts, and related changes to the C-API:" msgstr "" -#: whatsnew/3.12.rst:1977 +#: whatsnew/3.12.rst:1991 msgid "``_Py_IMMORTAL_REFCNT``: The reference count that defines an object" msgstr "" -#: whatsnew/3.12.rst:1978 +#: whatsnew/3.12.rst:1992 msgid "as immortal." msgstr "" -#: whatsnew/3.12.rst:1979 +#: whatsnew/3.12.rst:1993 msgid "" "``_Py_IsImmortal`` Checks if an object has the immortal reference count." msgstr "" -#: whatsnew/3.12.rst:1980 +#: whatsnew/3.12.rst:1994 msgid "``PyObject_HEAD_INIT`` This will now initialize reference count to" msgstr "" -#: whatsnew/3.12.rst:1981 +#: whatsnew/3.12.rst:1995 msgid "``_Py_IMMORTAL_REFCNT`` when used with ``Py_BUILD_CORE``." msgstr "" -#: whatsnew/3.12.rst:1982 +#: whatsnew/3.12.rst:1996 msgid "``SSTATE_INTERNED_IMMORTAL`` An identifier for interned unicode objects" msgstr "" -#: whatsnew/3.12.rst:1983 +#: whatsnew/3.12.rst:1997 msgid "that are immortal." msgstr "" -#: whatsnew/3.12.rst:1984 +#: whatsnew/3.12.rst:1998 msgid "``SSTATE_INTERNED_IMMORTAL_STATIC`` An identifier for interned unicode" msgstr "" -#: whatsnew/3.12.rst:1985 +#: whatsnew/3.12.rst:1999 msgid "objects that are immortal and static" msgstr "" -#: whatsnew/3.12.rst:1986 +#: whatsnew/3.12.rst:2000 msgid "``sys.getunicodeinternedsize`` This returns the total number of unicode" msgstr "" -#: whatsnew/3.12.rst:1987 +#: whatsnew/3.12.rst:2001 msgid "" "objects that have been interned. This is now needed for :file:`refleak.py` " "to correctly track reference counts and allocated blocks" msgstr "" -#: whatsnew/3.12.rst:1990 +#: whatsnew/3.12.rst:2004 msgid "(Contributed by Eddie Elizondo in :gh:`84436`.)" msgstr "" -#: whatsnew/3.12.rst:1992 +#: whatsnew/3.12.rst:2006 msgid "" ":pep:`684`: Add the new :c:func:`Py_NewInterpreterFromConfig` function and :" "c:type:`PyInterpreterConfig`, which may be used to create sub-interpreters " @@ -4181,27 +4165,27 @@ msgid "" "(Contributed by Eric Snow in :gh:`104110`.)" msgstr "" -#: whatsnew/3.12.rst:1998 +#: whatsnew/3.12.rst:2012 msgid "" "In the limited C API version 3.12, :c:func:`Py_INCREF` and :c:func:" "`Py_DECREF` functions are now implemented as opaque function calls to hide " "implementation details. (Contributed by Victor Stinner in :gh:`105387`.)" msgstr "" -#: whatsnew/3.12.rst:2006 +#: whatsnew/3.12.rst:2020 msgid "" "Legacy Unicode APIs based on ``Py_UNICODE*`` representation has been " "removed. Please migrate to APIs based on UTF-8 or ``wchar_t*``." msgstr "" -#: whatsnew/3.12.rst:2009 +#: whatsnew/3.12.rst:2023 msgid "" "Argument parsing functions like :c:func:`PyArg_ParseTuple` doesn't support " "``Py_UNICODE*`` based format (e.g. ``u``, ``Z``) anymore. Please migrate to " "other formats for Unicode like ``s``, ``z``, ``es``, and ``U``." msgstr "" -#: whatsnew/3.12.rst:2013 +#: whatsnew/3.12.rst:2027 msgid "" "``tp_weaklist`` for all static builtin types is always ``NULL``. This is an " "internal-only field on ``PyTypeObject`` but we're pointing out the change in " @@ -4210,7 +4194,7 @@ msgid "" "necessary, the (internal-only) ``_PyObject_GET_WEAKREFS_LISTPTR()`` macro." msgstr "" -#: whatsnew/3.12.rst:2020 +#: whatsnew/3.12.rst:2034 msgid "" "This internal-only :c:member:`PyTypeObject.tp_subclasses` may now not be a " "valid object pointer. Its type was changed to :c:expr:`void *` to reflect " @@ -4218,13 +4202,13 @@ msgid "" "only field directly." msgstr "" -#: whatsnew/3.12.rst:2025 +#: whatsnew/3.12.rst:2039 msgid "" "To get a list of subclasses, call the Python method :py:meth:`~type." "__subclasses__` (using :c:func:`PyObject_CallMethod`, for example)." msgstr "" -#: whatsnew/3.12.rst:2029 +#: whatsnew/3.12.rst:2043 msgid "" "Add support of more formatting options (left aligning, octals, uppercase " "hexadecimals, :c:type:`intmax_t`, :c:type:`ptrdiff_t`, :c:type:`wchar_t` C " @@ -4233,7 +4217,7 @@ msgid "" "`98836`.)" msgstr "" -#: whatsnew/3.12.rst:2035 +#: whatsnew/3.12.rst:2049 msgid "" "An unrecognized format character in :c:func:`PyUnicode_FromFormat` and :c:" "func:`PyUnicode_FromFormatV` now sets a :exc:`SystemError`. In previous " @@ -4242,13 +4226,13 @@ msgid "" "Storchaka in :gh:`95781`.)" msgstr "" -#: whatsnew/3.12.rst:2041 +#: whatsnew/3.12.rst:2055 msgid "" "Fix wrong sign placement in :c:func:`PyUnicode_FromFormat` and :c:func:" "`PyUnicode_FromFormatV`. (Contributed by Philip Georgi in :gh:`95504`.)" msgstr "" -#: whatsnew/3.12.rst:2045 +#: whatsnew/3.12.rst:2059 msgid "" "Extension classes wanting to add a :attr:`~object.__dict__` or weak " "reference slot should use :c:macro:`Py_TPFLAGS_MANAGED_DICT` and :c:macro:" @@ -4262,7 +4246,7 @@ msgid "" "func:`PyObject_ClearWeakRefs`, as before." msgstr "" -#: whatsnew/3.12.rst:2057 +#: whatsnew/3.12.rst:2071 msgid "" "The :c:func:`PyUnicode_FSDecoder` function no longer accepts bytes-like " "paths, like :class:`bytearray` and :class:`memoryview` types: only the " @@ -4270,7 +4254,7 @@ msgid "" "Victor Stinner in :gh:`98393`.)" msgstr "" -#: whatsnew/3.12.rst:2062 +#: whatsnew/3.12.rst:2076 msgid "" "The :c:macro:`Py_CLEAR`, :c:macro:`Py_SETREF` and :c:macro:`Py_XSETREF` " "macros now only evaluate their arguments once. If an argument has side " @@ -4278,7 +4262,7 @@ msgid "" "Stinner in :gh:`98724`.)" msgstr "" -#: whatsnew/3.12.rst:2067 +#: whatsnew/3.12.rst:2081 msgid "" "The interpreter's error indicator is now always normalized. This means that :" "c:func:`PyErr_SetObject`, :c:func:`PyErr_SetString` and the other functions " @@ -4286,7 +4270,7 @@ msgid "" "(Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" -#: whatsnew/3.12.rst:2072 +#: whatsnew/3.12.rst:2086 msgid "" "``_Py_RefTotal`` is no longer authoritative and only kept around for ABI " "compatibility. Note that it is an internal global and only available on " @@ -4294,25 +4278,25 @@ msgid "" "``_Py_GetGlobalRefTotal()``." msgstr "" -#: whatsnew/3.12.rst:2077 +#: whatsnew/3.12.rst:2091 msgid "" "The following functions now select an appropriate metaclass for the newly " "created type:" msgstr "" -#: whatsnew/3.12.rst:2080 +#: whatsnew/3.12.rst:2094 msgid ":c:func:`PyType_FromSpec`" msgstr "" -#: whatsnew/3.12.rst:2081 +#: whatsnew/3.12.rst:2095 msgid ":c:func:`PyType_FromSpecWithBases`" msgstr "" -#: whatsnew/3.12.rst:2082 +#: whatsnew/3.12.rst:2096 msgid ":c:func:`PyType_FromModuleAndSpec`" msgstr "" -#: whatsnew/3.12.rst:2084 +#: whatsnew/3.12.rst:2098 msgid "" "Creating classes whose metaclass overrides :c:member:`~PyTypeObject.tp_new` " "is deprecated, and in Python 3.14+ it will be disallowed. Note that these " @@ -4320,14 +4304,14 @@ msgid "" "initialization." msgstr "" -#: whatsnew/3.12.rst:2089 +#: whatsnew/3.12.rst:2103 msgid "" "Note that :c:func:`PyType_FromMetaclass` (added in Python 3.12) already " "disallows creating classes whose metaclass overrides ``tp_new`` (:meth:" "`~object.__new__` in Python)." msgstr "" -#: whatsnew/3.12.rst:2093 +#: whatsnew/3.12.rst:2107 msgid "" "Since ``tp_new`` overrides almost everything ``PyType_From*`` functions do, " "the two are incompatible with each other. The existing behavior -- ignoring " @@ -4336,17 +4320,17 @@ msgid "" "general workaround. One of the following may work for you:" msgstr "" -#: whatsnew/3.12.rst:2100 +#: whatsnew/3.12.rst:2114 msgid "If you control the metaclass, avoid using ``tp_new`` in it:" msgstr "" -#: whatsnew/3.12.rst:2102 +#: whatsnew/3.12.rst:2116 msgid "" "If initialization can be skipped, it can be done in :c:member:`~PyTypeObject." "tp_init` instead." msgstr "" -#: whatsnew/3.12.rst:2104 +#: whatsnew/3.12.rst:2118 msgid "" "If the metaclass doesn't need to be instantiated from Python, set its " "``tp_new`` to ``NULL`` using the :c:macro:" @@ -4354,20 +4338,20 @@ msgid "" "``PyType_From*`` functions." msgstr "" -#: whatsnew/3.12.rst:2109 +#: whatsnew/3.12.rst:2123 msgid "" "Avoid ``PyType_From*`` functions: if you don't need C-specific features " "(slots or setting the instance size), create types by :ref:`calling ` " "the metaclass." msgstr "" -#: whatsnew/3.12.rst:2113 +#: whatsnew/3.12.rst:2127 msgid "" "If you *know* the ``tp_new`` can be skipped safely, filter the deprecation " "warning out using :func:`warnings.catch_warnings` from Python." msgstr "" -#: whatsnew/3.12.rst:2116 +#: whatsnew/3.12.rst:2130 msgid "" ":c:var:`PyOS_InputHook` and :c:var:`PyOS_ReadlineFunctionPointer` are no " "longer called in :ref:`subinterpreters `. This is " @@ -4375,14 +4359,14 @@ msgid "" "callbacks have no way of recovering extension module state)." msgstr "" -#: whatsnew/3.12.rst:2121 +#: whatsnew/3.12.rst:2135 msgid "" "This also avoids situations where extensions may find themselves running in " "a subinterpreter that they don't support (or haven't yet been loaded in). " "See :gh:`104668` for more info." msgstr "" -#: whatsnew/3.12.rst:2125 +#: whatsnew/3.12.rst:2139 msgid "" ":c:struct:`PyLongObject` has had its internals changed for better " "performance. Although the internals of :c:struct:`PyLongObject` are private, " @@ -4393,15 +4377,15 @@ msgid "" "a single machine word:" msgstr "" -#: whatsnew/3.12.rst:2133 +#: whatsnew/3.12.rst:2147 msgid ":c:func:`PyUnstable_Long_IsCompact`" msgstr "" -#: whatsnew/3.12.rst:2134 +#: whatsnew/3.12.rst:2148 msgid ":c:func:`PyUnstable_Long_CompactValue`" msgstr "" -#: whatsnew/3.12.rst:2136 +#: whatsnew/3.12.rst:2150 msgid "" "Custom allocators, set via :c:func:`PyMem_SetAllocator`, are now required to " "be thread-safe, regardless of memory domain. Allocators that don't have " @@ -4410,7 +4394,7 @@ msgid "" "create a new GitHub issue and CC ``@ericsnowcurrently``." msgstr "" -#: whatsnew/3.12.rst:2146 +#: whatsnew/3.12.rst:2160 msgid "" "In accordance with :pep:`699`, the ``ma_version_tag`` field in :c:type:" "`PyDictObject` is deprecated for extension modules. Accessing this field " @@ -4419,215 +4403,215 @@ msgid "" "PEP by Ken Jin.)" msgstr "" -#: whatsnew/3.12.rst:2151 +#: whatsnew/3.12.rst:2165 msgid "Deprecate global configuration variable:" msgstr "" -#: whatsnew/3.12.rst:2153 +#: whatsnew/3.12.rst:2167 msgid ":c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug`" msgstr "" -#: whatsnew/3.12.rst:2154 +#: whatsnew/3.12.rst:2168 msgid ":c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose`" msgstr "" -#: whatsnew/3.12.rst:2155 +#: whatsnew/3.12.rst:2169 msgid ":c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet`" msgstr "" -#: whatsnew/3.12.rst:2156 +#: whatsnew/3.12.rst:2170 msgid ":c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive`" msgstr "" -#: whatsnew/3.12.rst:2157 +#: whatsnew/3.12.rst:2171 msgid ":c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect`" msgstr "" -#: whatsnew/3.12.rst:2158 +#: whatsnew/3.12.rst:2172 msgid ":c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level`" msgstr "" -#: whatsnew/3.12.rst:2159 +#: whatsnew/3.12.rst:2173 msgid ":c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import`" msgstr "" -#: whatsnew/3.12.rst:2160 +#: whatsnew/3.12.rst:2174 msgid ":c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning`" msgstr "" -#: whatsnew/3.12.rst:2161 +#: whatsnew/3.12.rst:2175 msgid ":c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings`" msgstr "" -#: whatsnew/3.12.rst:2162 +#: whatsnew/3.12.rst:2176 msgid "" ":c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment`" msgstr "" -#: whatsnew/3.12.rst:2163 +#: whatsnew/3.12.rst:2177 msgid "" ":c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode`" msgstr "" -#: whatsnew/3.12.rst:2164 +#: whatsnew/3.12.rst:2178 msgid "" ":c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory`" msgstr "" -#: whatsnew/3.12.rst:2165 +#: whatsnew/3.12.rst:2179 msgid "" ":c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio`" msgstr "" -#: whatsnew/3.12.rst:2166 +#: whatsnew/3.12.rst:2180 msgid "" ":c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed` " "and :c:member:`PyConfig.hash_seed`" msgstr "" -#: whatsnew/3.12.rst:2168 +#: whatsnew/3.12.rst:2182 msgid ":c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated`" msgstr "" -#: whatsnew/3.12.rst:2169 +#: whatsnew/3.12.rst:2183 msgid "" ":c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig." "legacy_windows_fs_encoding`" msgstr "" -#: whatsnew/3.12.rst:2170 +#: whatsnew/3.12.rst:2184 msgid "" ":c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig." "legacy_windows_stdio`" msgstr "" -#: whatsnew/3.12.rst:2171 +#: whatsnew/3.12.rst:2185 msgid "" ":c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig." "filesystem_encoding`" msgstr "" -#: whatsnew/3.12.rst:2172 +#: whatsnew/3.12.rst:2186 msgid "" ":c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig." "filesystem_encoding`" msgstr "" -#: whatsnew/3.12.rst:2173 +#: whatsnew/3.12.rst:2187 msgid "" ":c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig." "filesystem_errors`" msgstr "" -#: whatsnew/3.12.rst:2174 +#: whatsnew/3.12.rst:2188 msgid "" ":c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` (see :c:func:" "`Py_PreInitialize`)" msgstr "" -#: whatsnew/3.12.rst:2176 +#: whatsnew/3.12.rst:2190 msgid "" "The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" "`PyConfig` instead. (Contributed by Victor Stinner in :gh:`77782`.)" msgstr "" -#: whatsnew/3.12.rst:2180 +#: whatsnew/3.12.rst:2194 msgid "" "Creating :c:data:`immutable types ` with mutable " "bases is deprecated and will be disabled in Python 3.14. (:gh:`95388`)" msgstr "" -#: whatsnew/3.12.rst:2183 +#: whatsnew/3.12.rst:2197 msgid "" "The :file:`structmember.h` header is deprecated, though it continues to be " "available and there are no plans to remove it." msgstr "" -#: whatsnew/3.12.rst:2186 +#: whatsnew/3.12.rst:2200 msgid "" "Its contents are now available just by including :file:`Python.h`, with a " "``Py`` prefix added if it was missing:" msgstr "" -#: whatsnew/3.12.rst:2189 +#: whatsnew/3.12.rst:2203 msgid "" ":c:struct:`PyMemberDef`, :c:func:`PyMember_GetOne` and :c:func:" "`PyMember_SetOne`" msgstr "" -#: whatsnew/3.12.rst:2191 +#: whatsnew/3.12.rst:2205 msgid "" "Type macros like :c:macro:`Py_T_INT`, :c:macro:`Py_T_DOUBLE`, etc. " "(previously ``T_INT``, ``T_DOUBLE``, etc.)" msgstr "" -#: whatsnew/3.12.rst:2193 +#: whatsnew/3.12.rst:2207 msgid "" "The flags :c:macro:`Py_READONLY` (previously ``READONLY``) and :c:macro:" "`Py_AUDIT_READ` (previously all uppercase)" msgstr "" -#: whatsnew/3.12.rst:2196 +#: whatsnew/3.12.rst:2210 msgid "Several items are not exposed from :file:`Python.h`:" msgstr "" -#: whatsnew/3.12.rst:2198 +#: whatsnew/3.12.rst:2212 msgid ":c:macro:`T_OBJECT` (use :c:macro:`Py_T_OBJECT_EX`)" msgstr "" -#: whatsnew/3.12.rst:2199 +#: whatsnew/3.12.rst:2213 msgid ":c:macro:`T_NONE` (previously undocumented, and pretty quirky)" msgstr "" -#: whatsnew/3.12.rst:2200 +#: whatsnew/3.12.rst:2214 msgid "The macro ``WRITE_RESTRICTED`` which does nothing." msgstr "" -#: whatsnew/3.12.rst:2201 +#: whatsnew/3.12.rst:2215 msgid "" "The macros ``RESTRICTED`` and ``READ_RESTRICTED``, equivalents of :c:macro:" "`Py_AUDIT_READ`." msgstr "" -#: whatsnew/3.12.rst:2203 +#: whatsnew/3.12.rst:2217 msgid "" "In some configurations, ```` is not included from :file:`Python." "h`. It should be included manually when using ``offsetof()``." msgstr "" -#: whatsnew/3.12.rst:2206 +#: whatsnew/3.12.rst:2220 msgid "" "The deprecated header continues to provide its original contents under the " "original names. Your old code can stay unchanged, unless the extra include " "and non-namespaced macros bother you greatly." msgstr "" -#: whatsnew/3.12.rst:2211 +#: whatsnew/3.12.rst:2225 msgid "" "(Contributed in :gh:`47146` by Petr Viktorin, based on earlier work by " "Alexander Belopolsky and Matthias Braun.)" msgstr "" -#: whatsnew/3.12.rst:2214 +#: whatsnew/3.12.rst:2228 msgid "" ":c:func:`PyErr_Fetch` and :c:func:`PyErr_Restore` are deprecated. Use :c:" "func:`PyErr_GetRaisedException` and :c:func:`PyErr_SetRaisedException` " "instead. (Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" -#: whatsnew/3.12.rst:2219 +#: whatsnew/3.12.rst:2233 msgid "" ":c:func:`!PyErr_Display` is deprecated. Use :c:func:`PyErr_DisplayException` " "instead. (Contributed by Irit Katriel in :gh:`102755`)." msgstr "" -#: whatsnew/3.12.rst:2222 +#: whatsnew/3.12.rst:2236 msgid "" "``_PyErr_ChainExceptions`` is deprecated. Use ``_PyErr_ChainExceptions1`` " "instead. (Contributed by Irit Katriel in :gh:`102192`.)" msgstr "" -#: whatsnew/3.12.rst:2225 +#: whatsnew/3.12.rst:2239 msgid "" "Using :c:func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases` or :c:" "func:`PyType_FromModuleAndSpec` to create a class whose metaclass overrides :" @@ -4647,16 +4631,12 @@ msgid "" msgstr "" #: deprecations/c-api-pending-removal-in-3.15.rst:4 -msgid "The bundled copy of ``libmpdecimal``." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:5 msgid "" "The :c:func:`PyImport_ImportModuleNoBlock`: Use :c:func:" "`PyImport_ImportModule` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:7 +#: deprecations/c-api-pending-removal-in-3.15.rst:6 msgid "" ":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: Use :c:" "func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project ` (:data:`sys.path`) instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:28 +#: deprecations/c-api-pending-removal-in-3.15.rst:27 msgid "" ":c:func:`Py_GetPrefix`: Use :c:func:`PyConfig_Get(\"base_prefix\") " "` (:data:`sys.base_prefix`) instead. Use :c:func:" @@ -4712,7 +4692,7 @@ msgid "" "`virtual environments ` need to be handled." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:33 +#: deprecations/c-api-pending-removal-in-3.15.rst:32 msgid "" ":c:func:`Py_GetExecPrefix`: Use :c:func:`PyConfig_Get(\"base_exec_prefix\") " "` (:data:`sys.base_exec_prefix`) instead. Use :c:func:" @@ -4720,176 +4700,176 @@ msgid "" "ref:`virtual environments ` need to be handled." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:39 +#: deprecations/c-api-pending-removal-in-3.15.rst:38 msgid "" ":c:func:`Py_GetProgramFullPath`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:42 +#: deprecations/c-api-pending-removal-in-3.15.rst:41 msgid "" ":c:func:`Py_GetProgramName`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:45 +#: deprecations/c-api-pending-removal-in-3.15.rst:44 msgid "" ":c:func:`Py_GetPythonHome`: Use :c:func:`PyConfig_Get(\"home\") " "` or the :envvar:`PYTHONHOME` environment variable instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:49 +#: deprecations/c-api-pending-removal-in-3.15.rst:48 msgid "" "The `pythoncapi-compat project `__ can be used to get :c:func:`PyConfig_Get` on Python 3.13 and older." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:53 +#: deprecations/c-api-pending-removal-in-3.15.rst:52 msgid "" "Functions to configure Python's initialization, deprecated in Python 3.11:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:55 +#: deprecations/c-api-pending-removal-in-3.15.rst:54 msgid ":c:func:`!PySys_SetArgvEx()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:57 +#: deprecations/c-api-pending-removal-in-3.15.rst:56 msgid ":c:func:`!PySys_SetArgv()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:59 +#: deprecations/c-api-pending-removal-in-3.15.rst:58 msgid "" ":c:func:`!Py_SetProgramName()`: Set :c:member:`PyConfig.program_name` " "instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:61 +#: deprecations/c-api-pending-removal-in-3.15.rst:60 msgid ":c:func:`!Py_SetPythonHome()`: Set :c:member:`PyConfig.home` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:63 +#: deprecations/c-api-pending-removal-in-3.15.rst:62 msgid "" ":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" "warnings.filters` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:66 +#: deprecations/c-api-pending-removal-in-3.15.rst:65 msgid "" "The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" "`PyConfig` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:69 +#: deprecations/c-api-pending-removal-in-3.15.rst:68 msgid "Global configuration variables:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:71 +#: deprecations/c-api-pending-removal-in-3.15.rst:70 msgid "" ":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` or :c:func:" "`PyConfig_Get(\"parser_debug\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:74 +#: deprecations/c-api-pending-removal-in-3.15.rst:73 msgid "" ":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` or :c:func:" "`PyConfig_Get(\"verbose\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:77 +#: deprecations/c-api-pending-removal-in-3.15.rst:76 msgid "" ":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` or :c:func:" "`PyConfig_Get(\"quiet\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:80 +#: deprecations/c-api-pending-removal-in-3.15.rst:79 msgid "" ":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` or :c:func:" "`PyConfig_Get(\"interactive\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:83 +#: deprecations/c-api-pending-removal-in-3.15.rst:82 msgid "" ":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` or :c:func:" "`PyConfig_Get(\"inspect\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:86 +#: deprecations/c-api-pending-removal-in-3.15.rst:85 msgid "" ":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` or :c:" "func:`PyConfig_Get(\"optimization_level\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:89 +#: deprecations/c-api-pending-removal-in-3.15.rst:88 msgid "" ":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` or :c:func:" "`PyConfig_Get(\"site_import\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:92 +#: deprecations/c-api-pending-removal-in-3.15.rst:91 msgid "" ":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` or :c:" "func:`PyConfig_Get(\"bytes_warning\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:95 +#: deprecations/c-api-pending-removal-in-3.15.rst:94 msgid "" ":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` or :c:" "func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:98 +#: deprecations/c-api-pending-removal-in-3.15.rst:97 msgid "" ":c:var:`Py_IgnoreEnvironmentFlag`: Use :c:member:`PyConfig.use_environment` " "or :c:func:`PyConfig_Get(\"use_environment\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:101 +#: deprecations/c-api-pending-removal-in-3.15.rst:100 msgid "" ":c:var:`Py_DontWriteBytecodeFlag`: Use :c:member:`PyConfig.write_bytecode` " "or :c:func:`PyConfig_Get(\"write_bytecode\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:104 +#: deprecations/c-api-pending-removal-in-3.15.rst:103 msgid "" ":c:var:`Py_NoUserSiteDirectory`: Use :c:member:`PyConfig." "user_site_directory` or :c:func:`PyConfig_Get(\"user_site_directory\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:107 +#: deprecations/c-api-pending-removal-in-3.15.rst:106 msgid "" ":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` or :" "c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:110 +#: deprecations/c-api-pending-removal-in-3.15.rst:109 msgid "" ":c:var:`Py_HashRandomizationFlag`: Use :c:member:`PyConfig.use_hash_seed` " "and :c:member:`PyConfig.hash_seed` or :c:func:`PyConfig_Get(\"hash_seed\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:114 +#: deprecations/c-api-pending-removal-in-3.15.rst:113 msgid "" ":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` or :c:func:" "`PyConfig_Get(\"isolated\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:117 +#: deprecations/c-api-pending-removal-in-3.15.rst:116 msgid "" ":c:var:`Py_LegacyWindowsFSEncodingFlag`: Use :c:member:`PyPreConfig." "legacy_windows_fs_encoding` or :c:func:" "`PyConfig_Get(\"legacy_windows_fs_encoding\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:120 +#: deprecations/c-api-pending-removal-in-3.15.rst:119 msgid "" ":c:var:`Py_LegacyWindowsStdioFlag`: Use :c:member:`PyConfig." "legacy_windows_stdio` or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:123 +#: deprecations/c-api-pending-removal-in-3.15.rst:122 msgid "" ":c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!" "Py_HasFileSystemDefaultEncoding`: Use :c:member:`PyConfig." @@ -4897,27 +4877,31 @@ msgid "" "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:126 +#: deprecations/c-api-pending-removal-in-3.15.rst:125 msgid "" ":c:var:`!Py_FileSystemDefaultEncodeErrors`: Use :c:member:`PyConfig." "filesystem_errors` or :c:func:`PyConfig_Get(\"filesystem_errors\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:129 +#: deprecations/c-api-pending-removal-in-3.15.rst:128 msgid "" ":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` or :c:func:" "`PyConfig_Get(\"utf8_mode\") ` instead. (see :c:func:" "`Py_PreInitialize`)" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:134 +#: deprecations/c-api-pending-removal-in-3.15.rst:133 msgid "" "The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" "`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can be used to " "get these options at runtime." msgstr "" +#: deprecations/c-api-pending-removal-in-3.16.rst:4 +msgid "The bundled copy of ``libmpdec``." +msgstr "" + #: deprecations/c-api-pending-removal-in-future.rst:4 msgid "" "The following APIs are deprecated and will be removed, although there is " @@ -5012,54 +4996,54 @@ msgstr "" msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." msgstr "" -#: whatsnew/3.12.rst:2241 +#: whatsnew/3.12.rst:2257 msgid "" "Remove the :file:`token.h` header file. There was never any public tokenizer " "C API. The :file:`token.h` header file was only designed to be used by " "Python internals. (Contributed by Victor Stinner in :gh:`92651`.)" msgstr "" -#: whatsnew/3.12.rst:2246 +#: whatsnew/3.12.rst:2262 msgid "Legacy Unicode APIs have been removed. See :pep:`623` for detail." msgstr "" -#: whatsnew/3.12.rst:2248 +#: whatsnew/3.12.rst:2264 msgid ":c:macro:`!PyUnicode_WCHAR_KIND`" msgstr "" -#: whatsnew/3.12.rst:2249 +#: whatsnew/3.12.rst:2265 msgid ":c:func:`!PyUnicode_AS_UNICODE`" msgstr "" -#: whatsnew/3.12.rst:2250 +#: whatsnew/3.12.rst:2266 msgid ":c:func:`!PyUnicode_AsUnicode`" msgstr "" -#: whatsnew/3.12.rst:2251 +#: whatsnew/3.12.rst:2267 msgid ":c:func:`!PyUnicode_AsUnicodeAndSize`" msgstr "" -#: whatsnew/3.12.rst:2252 +#: whatsnew/3.12.rst:2268 msgid ":c:func:`!PyUnicode_AS_DATA`" msgstr "" -#: whatsnew/3.12.rst:2253 +#: whatsnew/3.12.rst:2269 msgid ":c:func:`!PyUnicode_FromUnicode`" msgstr "" -#: whatsnew/3.12.rst:2254 +#: whatsnew/3.12.rst:2270 msgid ":c:func:`!PyUnicode_GET_SIZE`" msgstr "" -#: whatsnew/3.12.rst:2255 +#: whatsnew/3.12.rst:2271 msgid ":c:func:`!PyUnicode_GetSize`" msgstr "" -#: whatsnew/3.12.rst:2256 +#: whatsnew/3.12.rst:2272 msgid ":c:func:`!PyUnicode_GET_DATA_SIZE`" msgstr "" -#: whatsnew/3.12.rst:2258 +#: whatsnew/3.12.rst:2274 msgid "" "Remove the ``PyUnicode_InternImmortal()`` function macro. (Contributed by " "Victor Stinner in :gh:`85858`.)" diff --git a/whatsnew/3.13.po b/whatsnew/3.13.po index 1f0b8ce0..4cd02b8d 100644 --- a/whatsnew/3.13.po +++ b/whatsnew/3.13.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -46,13 +46,12 @@ msgstr "" #: whatsnew/3.13.rst:63 msgid "" -"Python 3.13 is the latest stable release of the Python programming language, " -"with a mix of changes to the language, the implementation and the standard " -"library. The biggest changes include a new `interactive interpreter " -"`_, experimental support for " -"running in a `free-threaded mode `_ (:" -"pep:`703`), and a `Just-In-Time compiler `_ (:pep:" -"`744`)." +"Python 3.13 is a stable release of the Python programming language, with a " +"mix of changes to the language, the implementation and the standard library. " +"The biggest changes include a new `interactive interpreter `_, experimental support for running in a " +"`free-threaded mode `_ (:pep:`703`), and " +"a `Just-In-Time compiler `_ (:pep:`744`)." msgstr "" #: whatsnew/3.13.rst:72 @@ -339,7 +338,7 @@ msgid "" "years of security fixes." msgstr "" -#: whatsnew/3.13.rst:2046 +#: whatsnew/3.13.rst:2044 msgid "New Features" msgstr "" @@ -1155,7 +1154,7 @@ msgstr "" msgid "concurrent.futures" msgstr "" -#: whatsnew/3.13.rst:1680 +#: whatsnew/3.13.rst:1678 msgid "configparser" msgstr "" @@ -1263,9 +1262,9 @@ msgstr "" #: whatsnew/3.13.rst:836 msgid "" -"Allow removing all items from the database through the new :meth:`.gdbm." -"clear` and :meth:`.ndbm.clear` methods. (Contributed by Donghee Na in :gh:" -"`107122`.)" +"Allow removing all items from the database through the new :meth:`!clear` " +"methods of the GDBM and NDBM database objects. (Contributed by Donghee Na " +"in :gh:`107122`.)" msgstr "" #: whatsnew/3.13.rst:842 @@ -1624,7 +1623,7 @@ msgid "" "file is not accessible. (Contributed by Moonsik Park in :gh:`82367`.)" msgstr "" -#: whatsnew/3.13.rst:1736 +#: whatsnew/3.13.rst:1734 msgid "pathlib" msgstr "" @@ -1738,7 +1737,7 @@ msgid "" "Kemenade in :gh:`118131`.)" msgstr "" -#: whatsnew/3.13.rst:1744 +#: whatsnew/3.13.rst:1742 msgid "re" msgstr "" @@ -2015,7 +2014,7 @@ msgid "" "`108191`.)" msgstr "" -#: whatsnew/3.13.rst:1769 +#: whatsnew/3.13.rst:1767 msgid "typing" msgstr "" @@ -2282,35 +2281,29 @@ msgid "" msgstr "" #: whatsnew/3.13.rst:1572 -msgid "" -":pypi:`passlib`: Comprehensive password hashing framework supporting over 30 " -"schemes." -msgstr "" - -#: whatsnew/3.13.rst:1574 msgid ":pypi:`argon2-cffi`: The secure Argon2 password hashing algorithm." msgstr "" -#: whatsnew/3.13.rst:1576 +#: whatsnew/3.13.rst:1574 msgid "" ":pypi:`legacycrypt`: :mod:`ctypes` wrapper to the POSIX crypt library call " "and associated functionality." msgstr "" -#: whatsnew/3.13.rst:1579 +#: whatsnew/3.13.rst:1577 msgid "" ":pypi:`crypt_r`: Fork of the :mod:`!crypt` module, wrapper to the :manpage:" "`crypt_r(3)` library call and associated functionality." msgstr "" -#: whatsnew/3.13.rst:1583 +#: whatsnew/3.13.rst:1581 msgid "" ":pypi:`standard-crypt` and :pypi:`deprecated-crypt-alternative`: Use the " "redistribution of ``crypt`` and reimplementation of ``_crypt`` libraries " "from PyPI." msgstr "" -#: whatsnew/3.13.rst:1586 +#: whatsnew/3.13.rst:1584 msgid "" ":mod:`!imghdr`: The :pypi:`filetype`, :pypi:`puremagic`, or :pypi:`python-" "magic` libraries should be used as replacements. For example, the :func:`!" @@ -2318,138 +2311,138 @@ msgid "" "function for all file formats that were supported by :mod:`!imghdr`." msgstr "" -#: whatsnew/3.13.rst:1593 +#: whatsnew/3.13.rst:1591 msgid "" ":pypi:`standard-imghdr`: Use the redistribution of ``imghdr`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1596 +#: whatsnew/3.13.rst:1594 msgid ":mod:`!mailcap`: Use the :mod:`mimetypes` module instead." msgstr "" -#: whatsnew/3.13.rst:1599 +#: whatsnew/3.13.rst:1597 msgid "" ":pypi:`standard-mailcap`: Use the redistribution of ``mailcap`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1602 +#: whatsnew/3.13.rst:1600 msgid ":mod:`!msilib`" msgstr "" -#: whatsnew/3.13.rst:1603 +#: whatsnew/3.13.rst:1601 msgid ":mod:`!nis`" msgstr "" -#: whatsnew/3.13.rst:1604 +#: whatsnew/3.13.rst:1602 msgid ":mod:`!nntplib`: Use the :pypi:`pynntp` library from PyPI instead." msgstr "" -#: whatsnew/3.13.rst:1607 +#: whatsnew/3.13.rst:1605 msgid "" ":pypi:`standard-nntplib`: Use the redistribution of ``nntplib`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1610 +#: whatsnew/3.13.rst:1608 msgid "" ":mod:`!ossaudiodev`: For audio playback, use the :pypi:`pygame` library from " "PyPI instead." msgstr "" -#: whatsnew/3.13.rst:1612 +#: whatsnew/3.13.rst:1610 msgid "" ":mod:`!pipes`: Use the :mod:`subprocess` module instead. Use :func:`shlex." "quote` to replace the undocumented ``pipes.quote`` function." msgstr "" -#: whatsnew/3.13.rst:1617 +#: whatsnew/3.13.rst:1615 msgid "" ":pypi:`standard-pipes`: Use the redistribution of ``pipes`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1620 +#: whatsnew/3.13.rst:1618 msgid "" ":mod:`!sndhdr`: The :pypi:`filetype`, :pypi:`puremagic`, or :pypi:`python-" "magic` libraries should be used as replacements." msgstr "" -#: whatsnew/3.13.rst:1624 +#: whatsnew/3.13.rst:1622 msgid "" ":pypi:`standard-sndhdr`: Use the redistribution of ``sndhdr`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1627 +#: whatsnew/3.13.rst:1625 msgid ":mod:`!spwd`: Use the :pypi:`python-pam` library from PyPI instead." msgstr "" -#: whatsnew/3.13.rst:1629 +#: whatsnew/3.13.rst:1627 msgid ":mod:`!sunau`" msgstr "" -#: whatsnew/3.13.rst:1631 +#: whatsnew/3.13.rst:1629 msgid "" ":pypi:`standard-sunau`: Use the redistribution of ``sunau`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1634 +#: whatsnew/3.13.rst:1632 msgid "" ":mod:`!telnetlib`, Use the :pypi:`telnetlib3` or :pypi:`Exscript` libraries " "from PyPI instead." msgstr "" -#: whatsnew/3.13.rst:1637 +#: whatsnew/3.13.rst:1635 msgid "" ":pypi:`standard-telnetlib`: Use the redistribution of ``telnetlib`` library " "from PyPI." msgstr "" -#: whatsnew/3.13.rst:1640 +#: whatsnew/3.13.rst:1638 msgid "" ":mod:`!uu`: Use the :mod:`base64` module instead, as a modern alternative." msgstr "" -#: whatsnew/3.13.rst:1643 +#: whatsnew/3.13.rst:1641 msgid "" ":pypi:`standard-uu`: Use the redistribution of ``uu`` library from PyPI." msgstr "" -#: whatsnew/3.13.rst:1646 +#: whatsnew/3.13.rst:1644 msgid ":mod:`!xdrlib`" msgstr "" -#: whatsnew/3.13.rst:1648 +#: whatsnew/3.13.rst:1646 msgid "" ":pypi:`standard-xdrlib`: Use the redistribution of ``xdrlib`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1651 +#: whatsnew/3.13.rst:1649 msgid "" "(Contributed by Victor Stinner and Zachary Ware in :gh:`104773` and :gh:" "`104780`.)" msgstr "" -#: whatsnew/3.13.rst:1655 +#: whatsnew/3.13.rst:1653 msgid "2to3" msgstr "" -#: whatsnew/3.13.rst:1657 +#: whatsnew/3.13.rst:1655 msgid "" "Remove the :program:`2to3` program and the :mod:`!lib2to3` module, " "previously deprecated in Python 3.11. (Contributed by Victor Stinner in :gh:" "`104780`.)" msgstr "" -#: whatsnew/3.13.rst:1663 +#: whatsnew/3.13.rst:1661 msgid "builtins" msgstr "" -#: whatsnew/3.13.rst:1665 +#: whatsnew/3.13.rst:1663 msgid "" "Remove support for chained :class:`classmethod` descriptors (introduced in :" "gh:`63272`). These can no longer be used to wrap other descriptors, such as :" @@ -2459,47 +2452,47 @@ msgid "" "(Contributed by Raymond Hettinger in :gh:`89519`.)" msgstr "" -#: whatsnew/3.13.rst:1674 +#: whatsnew/3.13.rst:1672 msgid "" "Raise a :exc:`RuntimeError` when calling :meth:`frame.clear` on a suspended " "frame (as has always been the case for an executing frame). (Contributed by " "Irit Katriel in :gh:`79932`.)" msgstr "" -#: whatsnew/3.13.rst:1682 +#: whatsnew/3.13.rst:1680 msgid "" "Remove the undocumented :class:`!LegacyInterpolation` class, deprecated in " "the docstring since Python 3.2, and at runtime since Python 3.11. " "(Contributed by Hugo van Kemenade in :gh:`104886`.)" msgstr "" -#: whatsnew/3.13.rst:1689 +#: whatsnew/3.13.rst:1687 msgid "importlib.metadata" msgstr "" -#: whatsnew/3.13.rst:1691 +#: whatsnew/3.13.rst:1689 msgid "" "Remove deprecated subscript (:meth:`~object.__getitem__`) access for :ref:" "`EntryPoint ` objects. (Contributed by Jason R. Coombs in :gh:" "`113175`.)" msgstr "" -#: whatsnew/3.13.rst:1697 +#: whatsnew/3.13.rst:1695 msgid "locale" msgstr "" -#: whatsnew/3.13.rst:1699 +#: whatsnew/3.13.rst:1697 msgid "" "Remove the :func:`!locale.resetlocale` function, deprecated in Python 3.11. " "Use ``locale.setlocale(locale.LC_ALL, \"\")`` instead. (Contributed by " "Victor Stinner in :gh:`104783`.)" msgstr "" -#: whatsnew/3.13.rst:1705 +#: whatsnew/3.13.rst:1703 msgid "opcode" msgstr "" -#: whatsnew/3.13.rst:1707 +#: whatsnew/3.13.rst:1705 msgid "" "Move :attr:`!opcode.ENABLE_SPECIALIZATION` to :attr:`!_opcode." "ENABLE_SPECIALIZATION`. This field was added in 3.12, it was never " @@ -2507,7 +2500,7 @@ msgid "" "Katriel in :gh:`105481`.)" msgstr "" -#: whatsnew/3.13.rst:1712 +#: whatsnew/3.13.rst:1710 msgid "" "Remove :func:`!opcode.is_pseudo`, :attr:`!opcode.MIN_PSEUDO_OPCODE`, and :" "attr:`!opcode.MAX_PSEUDO_OPCODE`, which were added in Python 3.12, but were " @@ -2515,11 +2508,11 @@ msgid "" "be used externally. (Contributed by Irit Katriel in :gh:`105481`.)" msgstr "" -#: whatsnew/3.13.rst:1720 +#: whatsnew/3.13.rst:1718 msgid "optparse" msgstr "" -#: whatsnew/3.13.rst:1722 +#: whatsnew/3.13.rst:1720 msgid "" "This module is no longer considered :term:`soft deprecated`. While :mod:" "`argparse` remains preferred for new projects that aren't using a third " @@ -2532,43 +2525,43 @@ msgid "" "(Contributed by Alyssa Coghlan and Serhiy Storchaka in :gh:`126180`.)" msgstr "" -#: whatsnew/3.13.rst:1738 +#: whatsnew/3.13.rst:1736 msgid "" "Remove the ability to use :class:`~pathlib.Path` objects as context " "managers. This functionality was deprecated and has had no effect since " "Python 3.9. (Contributed by Barney Gale in :gh:`83863`.)" msgstr "" -#: whatsnew/3.13.rst:1746 +#: whatsnew/3.13.rst:1744 msgid "" "Remove the undocumented, deprecated, and broken :func:`!re.template` " "function and :attr:`!re.TEMPLATE` / :attr:`!re.T` flag. (Contributed by " "Serhiy Storchaka and Nikita Sobolev in :gh:`105687`.)" msgstr "" -#: whatsnew/3.13.rst:1752 +#: whatsnew/3.13.rst:1750 msgid "tkinter.tix" msgstr "" -#: whatsnew/3.13.rst:1754 +#: whatsnew/3.13.rst:1752 msgid "" "Remove the :mod:`!tkinter.tix` module, deprecated in Python 3.6. The third-" "party Tix library which the module wrapped is unmaintained. (Contributed by " "Zachary Ware in :gh:`75552`.)" msgstr "" -#: whatsnew/3.13.rst:1760 +#: whatsnew/3.13.rst:1758 msgid "turtle" msgstr "" -#: whatsnew/3.13.rst:1762 +#: whatsnew/3.13.rst:1760 msgid "" "Remove the :meth:`!RawTurtle.settiltangle` method, deprecated in the " "documentation since Python 3.1 and at runtime since Python 3.11. " "(Contributed by Hugo van Kemenade in :gh:`104876`.)" msgstr "" -#: whatsnew/3.13.rst:1771 +#: whatsnew/3.13.rst:1769 msgid "" "Remove the :mod:`!typing.io` and :mod:`!typing.re` namespaces, deprecated " "since Python 3.8. The items in those namespaces can be imported directly " @@ -2576,66 +2569,66 @@ msgid "" "`92871`.)" msgstr "" -#: whatsnew/3.13.rst:1777 +#: whatsnew/3.13.rst:1775 msgid "" "Remove the keyword-argument method of creating :class:`~typing.TypedDict` " "types, deprecated in Python 3.11. (Contributed by Tomas Roun in :gh:" "`104786`.)" msgstr "" -#: whatsnew/3.13.rst:1783 +#: whatsnew/3.13.rst:1781 msgid "unittest" msgstr "" -#: whatsnew/3.13.rst:1785 +#: whatsnew/3.13.rst:1783 msgid "" "Remove the following :mod:`unittest` functions, deprecated in Python 3.11:" msgstr "" -#: whatsnew/3.13.rst:1787 +#: whatsnew/3.13.rst:1785 msgid ":func:`!unittest.findTestCases`" msgstr "" -#: whatsnew/3.13.rst:1788 +#: whatsnew/3.13.rst:1786 msgid ":func:`!unittest.makeSuite`" msgstr "" -#: whatsnew/3.13.rst:1789 +#: whatsnew/3.13.rst:1787 msgid ":func:`!unittest.getTestCaseNames`" msgstr "" -#: whatsnew/3.13.rst:1791 +#: whatsnew/3.13.rst:1789 msgid "Use :class:`~unittest.TestLoader` methods instead:" msgstr "" -#: whatsnew/3.13.rst:1793 +#: whatsnew/3.13.rst:1791 msgid ":meth:`~unittest.TestLoader.loadTestsFromModule`" msgstr "" -#: whatsnew/3.13.rst:1794 +#: whatsnew/3.13.rst:1792 msgid ":meth:`~unittest.TestLoader.loadTestsFromTestCase`" msgstr "" -#: whatsnew/3.13.rst:1795 +#: whatsnew/3.13.rst:1793 msgid ":meth:`~unittest.TestLoader.getTestCaseNames`" msgstr "" -#: whatsnew/3.13.rst:1797 +#: whatsnew/3.13.rst:1795 msgid "(Contributed by Hugo van Kemenade in :gh:`104835`.)" msgstr "" -#: whatsnew/3.13.rst:1799 +#: whatsnew/3.13.rst:1797 msgid "" "Remove the untested and undocumented :meth:`!TestProgram.usageExit` method, " "deprecated in Python 3.11. (Contributed by Hugo van Kemenade in :gh:" "`104992`.)" msgstr "" -#: whatsnew/3.13.rst:1805 +#: whatsnew/3.13.rst:1803 msgid "urllib" msgstr "" -#: whatsnew/3.13.rst:1807 +#: whatsnew/3.13.rst:1805 msgid "" "Remove the *cafile*, *capath*, and *cadefault* parameters of the :func:" "`urllib.request.urlopen` function, deprecated in Python 3.6. Use the " @@ -2646,33 +2639,33 @@ msgid "" "Victor Stinner in :gh:`105382`.)" msgstr "" -#: whatsnew/3.13.rst:1818 +#: whatsnew/3.13.rst:1816 msgid "webbrowser" msgstr "" -#: whatsnew/3.13.rst:1820 +#: whatsnew/3.13.rst:1818 msgid "" "Remove the untested and undocumented :class:`!MacOSX` class, deprecated in " "Python 3.11. Use the :class:`!MacOSXOSAScript` class (introduced in Python " "3.2) instead. (Contributed by Hugo van Kemenade in :gh:`104804`.)" msgstr "" -#: whatsnew/3.13.rst:1825 +#: whatsnew/3.13.rst:1823 msgid "" "Remove the deprecated :attr:`!MacOSXOSAScript._name` attribute. Use the :" "attr:`MacOSXOSAScript.name ` attribute instead. " "(Contributed by Nikita Sobolev in :gh:`105546`.)" msgstr "" -#: whatsnew/3.13.rst:1832 +#: whatsnew/3.13.rst:1830 msgid "New Deprecations" msgstr "" -#: whatsnew/3.13.rst:1834 +#: whatsnew/3.13.rst:1832 msgid ":ref:`User-defined functions `:" msgstr "" -#: whatsnew/3.13.rst:1836 +#: whatsnew/3.13.rst:1834 msgid "" "Deprecate assignment to a function's :attr:`~function.__code__` attribute, " "where the new code object's type does not match the function's type. The " @@ -2680,11 +2673,11 @@ msgid "" "coroutine. (Contributed by Irit Katriel in :gh:`81137`.)" msgstr "" -#: whatsnew/3.13.rst:1842 deprecations/pending-removal-in-3.16.rst:11 +#: whatsnew/3.13.rst:1840 deprecations/pending-removal-in-3.16.rst:11 msgid ":mod:`array`:" msgstr "" -#: whatsnew/3.13.rst:1844 +#: whatsnew/3.13.rst:1842 msgid "" "Deprecate the ``'u'`` format code (:c:type:`wchar_t`) at runtime. This " "format code has been deprecated in documentation since Python 3.3, and will " @@ -2693,60 +2686,60 @@ msgid "" "`80480`.)" msgstr "" -#: whatsnew/3.13.rst:1851 deprecations/pending-removal-in-3.15.rst:16 +#: whatsnew/3.13.rst:1849 deprecations/pending-removal-in-3.15.rst:16 msgid ":mod:`ctypes`:" msgstr "" -#: whatsnew/3.13.rst:1853 +#: whatsnew/3.13.rst:1851 msgid "" "Deprecate the undocumented :func:`!SetPointerType` function, to be removed " "in Python 3.15. (Contributed by Victor Stinner in :gh:`105733`.)" msgstr "" -#: whatsnew/3.13.rst:1857 +#: whatsnew/3.13.rst:1855 msgid "" ":term:`Soft-deprecate ` the :func:`~ctypes.ARRAY` function " "in favour of ``type * length`` multiplication. (Contributed by Victor " "Stinner in :gh:`105733`.)" msgstr "" -#: whatsnew/3.13.rst:1861 +#: whatsnew/3.13.rst:1859 msgid ":mod:`decimal`:" msgstr "" -#: whatsnew/3.13.rst:1863 +#: whatsnew/3.13.rst:1861 msgid "" "Deprecate the non-standard and undocumented :class:`~decimal.Decimal` format " "specifier ``'N'``, which is only supported in the :mod:`!decimal` module's C " "implementation. (Contributed by Serhiy Storchaka in :gh:`89902`.)" msgstr "" -#: whatsnew/3.13.rst:1868 +#: whatsnew/3.13.rst:1866 msgid ":mod:`dis`:" msgstr "" -#: whatsnew/3.13.rst:1870 +#: whatsnew/3.13.rst:1868 msgid "" "Deprecate the :attr:`!HAVE_ARGUMENT` separator. Check membership in :data:" "`~dis.hasarg` instead. (Contributed by Irit Katriel in :gh:`109319`.)" msgstr "" -#: whatsnew/3.13.rst:1874 +#: whatsnew/3.13.rst:1872 msgid ":mod:`gettext`:" msgstr "" -#: whatsnew/3.13.rst:1876 +#: whatsnew/3.13.rst:1874 msgid "" "Deprecate non-integer numbers as arguments to functions and methods that " "consider plural forms in the :mod:`!gettext` module, even if no translation " "was found. (Contributed by Serhiy Storchaka in :gh:`88434`.)" msgstr "" -#: whatsnew/3.13.rst:1881 +#: whatsnew/3.13.rst:1879 msgid ":mod:`glob`:" msgstr "" -#: whatsnew/3.13.rst:1883 +#: whatsnew/3.13.rst:1881 msgid "" "Deprecate the undocumented :func:`!glob0` and :func:`!glob1` functions. Use :" "func:`~glob.glob` and pass a :term:`path-like object` specifying the root " @@ -2754,11 +2747,11 @@ msgid "" "in :gh:`117337`.)" msgstr "" -#: whatsnew/3.13.rst:1888 deprecations/pending-removal-in-3.15.rst:21 +#: whatsnew/3.13.rst:1886 deprecations/pending-removal-in-3.15.rst:21 msgid ":mod:`http.server`:" msgstr "" -#: whatsnew/3.13.rst:1890 +#: whatsnew/3.13.rst:1888 msgid "" "Deprecate :class:`~http.server.CGIHTTPRequestHandler`, to be removed in " "Python 3.15. Process-based CGI HTTP servers have been out of favor for a " @@ -2767,29 +2760,29 @@ msgid "" "by Gregory P. Smith in :gh:`109096`.)" msgstr "" -#: whatsnew/3.13.rst:1897 +#: whatsnew/3.13.rst:1895 msgid "" "Deprecate the :option:`!--cgi` flag to the :program:`python -m http.server` " "command-line interface, to be removed in Python 3.15. (Contributed by " "Gregory P. Smith in :gh:`109096`.)" msgstr "" -#: whatsnew/3.13.rst:1902 deprecations/pending-removal-in-3.16.rst:70 +#: whatsnew/3.13.rst:1900 deprecations/pending-removal-in-3.16.rst:70 msgid ":mod:`mimetypes`:" msgstr "" -#: whatsnew/3.13.rst:1904 +#: whatsnew/3.13.rst:1902 msgid "" ":term:`Soft-deprecate ` file path arguments to :func:" "`~mimetypes.guess_type`, use :func:`~mimetypes.guess_file_type` instead. " "(Contributed by Serhiy Storchaka in :gh:`66543`.)" msgstr "" -#: whatsnew/3.13.rst:1909 +#: whatsnew/3.13.rst:1907 msgid ":mod:`re`:" msgstr "" -#: whatsnew/3.13.rst:1911 +#: whatsnew/3.13.rst:1909 msgid "" "Deprecate passing the optional *maxsplit*, *count*, or *flags* arguments as " "positional arguments to the module-level :func:`~re.split`, :func:`~re.sub`, " @@ -2798,43 +2791,43 @@ msgid "" "by Serhiy Storchaka in :gh:`56166`.)" msgstr "" -#: whatsnew/3.13.rst:1918 deprecations/pending-removal-in-3.15.rst:46 +#: whatsnew/3.13.rst:1916 deprecations/pending-removal-in-3.15.rst:46 msgid ":mod:`pathlib`:" msgstr "" -#: whatsnew/3.13.rst:1920 +#: whatsnew/3.13.rst:1918 msgid "" "Deprecate :meth:`.PurePath.is_reserved`, to be removed in Python 3.15. Use :" "func:`os.path.isreserved` to detect reserved paths on Windows. (Contributed " "by Barney Gale in :gh:`88569`.)" msgstr "" -#: whatsnew/3.13.rst:1925 deprecations/pending-removal-in-3.15.rst:52 +#: whatsnew/3.13.rst:1923 deprecations/pending-removal-in-3.15.rst:52 msgid ":mod:`platform`:" msgstr "" -#: whatsnew/3.13.rst:1927 +#: whatsnew/3.13.rst:1925 msgid "" "Deprecate :func:`~platform.java_ver`, to be removed in Python 3.15. This " "function is only useful for Jython support, has a confusing API, and is " "largely untested. (Contributed by Nikita Sobolev in :gh:`116349`.)" msgstr "" -#: whatsnew/3.13.rst:1933 +#: whatsnew/3.13.rst:1931 msgid ":mod:`pydoc`:" msgstr "" -#: whatsnew/3.13.rst:1935 +#: whatsnew/3.13.rst:1933 msgid "" "Deprecate the undocumented :func:`!ispackage` function. (Contributed by " "Zackery Spytz in :gh:`64020`.)" msgstr "" -#: whatsnew/3.13.rst:1938 deprecations/pending-removal-in-3.14.rst:91 +#: whatsnew/3.13.rst:1936 deprecations/pending-removal-in-3.14.rst:85 msgid ":mod:`sqlite3`:" msgstr "" -#: whatsnew/3.13.rst:1940 +#: whatsnew/3.13.rst:1938 msgid "" "Deprecate passing more than one positional argument to the :func:`~sqlite3." "connect` function and the :class:`~sqlite3.Connection` constructor. The " @@ -2842,7 +2835,7 @@ msgid "" "by Erlend E. Aasland in :gh:`107948`.)" msgstr "" -#: whatsnew/3.13.rst:1946 +#: whatsnew/3.13.rst:1944 msgid "" "Deprecate passing name, number of arguments, and the callable as keyword " "arguments for :meth:`.Connection.create_function` and :meth:`.Connection." @@ -2850,7 +2843,7 @@ msgid "" "3.15. (Contributed by Erlend E. Aasland in :gh:`108278`.)" msgstr "" -#: whatsnew/3.13.rst:1952 +#: whatsnew/3.13.rst:1950 msgid "" "Deprecate passing the callback callable by keyword for the :meth:`~sqlite3." "Connection.set_authorizer`, :meth:`~sqlite3.Connection." @@ -2860,44 +2853,44 @@ msgid "" "`108278`.)" msgstr "" -#: whatsnew/3.13.rst:1960 deprecations/pending-removal-in-3.16.rst:90 +#: whatsnew/3.13.rst:1958 deprecations/pending-removal-in-3.16.rst:90 msgid ":mod:`sys`:" msgstr "" -#: whatsnew/3.13.rst:1962 +#: whatsnew/3.13.rst:1960 msgid "" "Deprecate the :func:`~sys._enablelegacywindowsfsencoding` function, to be " "removed in Python 3.16. Use the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " "environment variable instead. (Contributed by Inada Naoki in :gh:`73427`.)" msgstr "" -#: whatsnew/3.13.rst:1967 deprecations/pending-removal-in-3.16.rst:102 +#: whatsnew/3.13.rst:1965 deprecations/pending-removal-in-3.16.rst:102 msgid ":mod:`tarfile`:" msgstr "" -#: whatsnew/3.13.rst:1969 +#: whatsnew/3.13.rst:1967 msgid "" "Deprecate the undocumented and unused :attr:`!TarFile.tarfile` attribute, to " "be removed in Python 3.16. (Contributed in :gh:`115256`.)" msgstr "" -#: whatsnew/3.13.rst:1973 +#: whatsnew/3.13.rst:1971 msgid ":mod:`traceback`:" msgstr "" -#: whatsnew/3.13.rst:1975 +#: whatsnew/3.13.rst:1973 msgid "" "Deprecate the :attr:`.TracebackException.exc_type` attribute. Use :attr:`." "TracebackException.exc_type_str` instead. (Contributed by Irit Katriel in :" "gh:`112332`.)" msgstr "" -#: whatsnew/3.13.rst:1979 deprecations/pending-removal-in-3.15.rst:80 -#: deprecations/pending-removal-in-3.17.rst:4 +#: whatsnew/3.13.rst:1977 deprecations/pending-removal-in-3.15.rst:80 +#: deprecations/pending-removal-in-3.17.rst:26 msgid ":mod:`typing`:" msgstr "" -#: whatsnew/3.13.rst:1981 +#: whatsnew/3.13.rst:1979 msgid "" "Deprecate the undocumented keyword argument syntax for creating :class:" "`~typing.NamedTuple` classes (e.g. ``Point = NamedTuple(\"Point\", x=int, " @@ -2905,7 +2898,7 @@ msgid "" "functional syntax instead. (Contributed by Alex Waygood in :gh:`105566`.)" msgstr "" -#: whatsnew/3.13.rst:1988 +#: whatsnew/3.13.rst:1986 msgid "" "Deprecate omitting the *fields* parameter when creating a :class:`~typing." "NamedTuple` or :class:`typing.TypedDict` class, and deprecate passing " @@ -2917,15 +2910,15 @@ msgid "" "Alex Waygood in :gh:`105566` and :gh:`105570`.)" msgstr "" -#: whatsnew/3.13.rst:1998 +#: whatsnew/3.13.rst:1996 msgid "" "Deprecate the :func:`typing.no_type_check_decorator` decorator function, to " -"be removed in in Python 3.15. After eight years in the :mod:`typing` module, " -"it has yet to be supported by any major type checker. (Contributed by Alex " +"be removed in Python 3.15. After eight years in the :mod:`typing` module, it " +"has yet to be supported by any major type checker. (Contributed by Alex " "Waygood in :gh:`106309`.)" msgstr "" -#: whatsnew/3.13.rst:2004 +#: whatsnew/3.13.rst:2002 msgid "" "Deprecate :data:`typing.AnyStr`. In Python 3.16, it will be removed from " "``typing.__all__``, and a :exc:`DeprecationWarning` will be emitted at " @@ -2934,11 +2927,11 @@ msgid "" "(Contributed by Michael The in :gh:`107116`.)" msgstr "" -#: whatsnew/3.13.rst:2012 deprecations/pending-removal-in-3.15.rst:100 +#: whatsnew/3.13.rst:2010 deprecations/pending-removal-in-3.15.rst:100 msgid ":mod:`wave`:" msgstr "" -#: whatsnew/3.13.rst:2014 +#: whatsnew/3.13.rst:2012 msgid "" "Deprecate the :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, and :meth:" "`~wave.Wave_read.getmarkers` methods of the :class:`~wave.Wave_read` and :" @@ -3022,51 +3015,43 @@ msgstr "" #: deprecations/pending-removal-in-3.14.rst:41 msgid "" -":mod:`collections.abc`: Deprecated :class:`!collections.abc.ByteString`. " -"Prefer :class:`!Sequence` or :class:`~collections.abc.Buffer`. For use in " -"typing, prefer a union, like ``bytes | bytearray``, or :class:`collections." -"abc.Buffer`. (Contributed by Shantanu Jain in :gh:`91896`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:47 -msgid "" ":mod:`email`: Deprecated the *isdst* parameter in :func:`email.utils." "localtime`. (Contributed by Alan Williams in :gh:`72346`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:50 +#: deprecations/pending-removal-in-3.14.rst:44 msgid ":mod:`importlib.abc` deprecated classes:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:52 +#: deprecations/pending-removal-in-3.14.rst:46 msgid ":class:`!importlib.abc.ResourceReader`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:53 +#: deprecations/pending-removal-in-3.14.rst:47 msgid ":class:`!importlib.abc.Traversable`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:54 +#: deprecations/pending-removal-in-3.14.rst:48 msgid ":class:`!importlib.abc.TraversableResources`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:56 +#: deprecations/pending-removal-in-3.14.rst:50 msgid "Use :mod:`importlib.resources.abc` classes instead:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:58 +#: deprecations/pending-removal-in-3.14.rst:52 msgid ":class:`importlib.resources.abc.Traversable`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:59 +#: deprecations/pending-removal-in-3.14.rst:53 msgid ":class:`importlib.resources.abc.TraversableResources`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:61 +#: deprecations/pending-removal-in-3.14.rst:55 msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:63 +#: deprecations/pending-removal-in-3.14.rst:57 msgid "" ":mod:`itertools` had undocumented, inefficient, historically buggy, and " "inconsistent support for copy, deepcopy, and pickle operations. This will be " @@ -3074,7 +3059,7 @@ msgid "" "burden. (Contributed by Raymond Hettinger in :gh:`101588`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:69 +#: deprecations/pending-removal-in-3.14.rst:63 msgid "" ":mod:`multiprocessing`: The default start method will change to a safer one " "on Linux, BSDs, and other non-macOS POSIX platforms where ``'fork'`` is " @@ -3085,49 +3070,43 @@ msgid "" "``'fork'``. See :ref:`multiprocessing-start-methods`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:77 +#: deprecations/pending-removal-in-3.14.rst:71 msgid "" ":mod:`pathlib`: :meth:`~pathlib.PurePath.is_relative_to` and :meth:`~pathlib." "PurePath.relative_to`: passing additional arguments is deprecated." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:81 +#: deprecations/pending-removal-in-3.14.rst:75 msgid "" ":mod:`pkgutil`: :func:`!pkgutil.find_loader` and :func:`!pkgutil.get_loader` " "now raise :exc:`DeprecationWarning`; use :func:`importlib.util.find_spec` " "instead. (Contributed by Nikita Sobolev in :gh:`97850`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:86 +#: deprecations/pending-removal-in-3.14.rst:80 msgid ":mod:`pty`:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:88 +#: deprecations/pending-removal-in-3.14.rst:82 msgid "``master_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:89 +#: deprecations/pending-removal-in-3.14.rst:83 msgid "``slave_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:93 +#: deprecations/pending-removal-in-3.14.rst:87 msgid ":data:`!version` and :data:`!version_info`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:95 +#: deprecations/pending-removal-in-3.14.rst:89 msgid "" ":meth:`~sqlite3.Cursor.execute` and :meth:`~sqlite3.Cursor.executemany` if :" "ref:`named placeholders ` are used and *parameters* is " "a sequence instead of a :class:`dict`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:99 -msgid "" -":mod:`typing`: :class:`!typing.ByteString`, deprecated since Python 3.9, now " -"causes a :exc:`DeprecationWarning` to be emitted when it is used." -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:102 +#: deprecations/pending-removal-in-3.14.rst:93 msgid "" ":mod:`urllib`: :class:`!urllib.parse.Quoter` is deprecated: it was not " "intended to be a public API. (Contributed by Gregory P. Smith in :gh:" @@ -3180,7 +3159,7 @@ msgid "" msgstr "" #: deprecations/pending-removal-in-3.15.rst:32 -#: deprecations/pending-removal-in-future.rst:64 +#: deprecations/pending-removal-in-future.rst:63 msgid ":mod:`importlib`:" msgstr "" @@ -3291,6 +3270,7 @@ msgid "" "by Jiahao Li in :gh:`125746`.)" msgstr "" +#: deprecations/c-api-pending-removal-in-3.16.rst:2 #: deprecations/pending-removal-in-3.16.rst:2 msgid "Pending removal in Python 3.16" msgstr "" @@ -3460,8 +3440,46 @@ msgstr "" msgid "Pending removal in Python 3.17" msgstr "" +#: deprecations/pending-removal-in-3.17.rst:4 +msgid ":mod:`collections.abc`:" +msgstr "" + #: deprecations/pending-removal-in-3.17.rst:6 msgid "" +":class:`collections.abc.ByteString` is scheduled for removal in Python 3.17." +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:8 +#: deprecations/pending-removal-in-3.17.rst:36 +msgid "" +"Use ``isinstance(obj, collections.abc.Buffer)`` to test if ``obj`` " +"implements the :ref:`buffer protocol ` at runtime. For use in " +"type annotations, either use :class:`~collections.abc.Buffer` or a union " +"that explicitly specifies the types your code supports (e.g., ``bytes | " +"bytearray | memoryview``)." +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:14 +#: deprecations/pending-removal-in-3.17.rst:42 +msgid "" +":class:`!ByteString` was originally intended to be an abstract class that " +"would serve as a supertype of both :class:`bytes` and :class:`bytearray`. " +"However, since the ABC never had any methods, knowing that an object was an " +"instance of :class:`!ByteString` never actually told you anything useful " +"about the object. Other common buffer types such as :class:`memoryview` were " +"also never understood as subtypes of :class:`!ByteString` (either at runtime " +"or by static type checkers)." +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:22 +#: deprecations/pending-removal-in-3.17.rst:50 +msgid "" +"See :pep:`PEP 688 <688#current-options>` for more details. (Contributed by " +"Shantanu Jain in :gh:`91896`.)" +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:28 +msgid "" "Before Python 3.14, old-style unions were implemented using the private " "class ``typing._UnionGenericAlias``. This class is no longer needed for the " "implementation, but it has been retained for backward compatibility, with " @@ -3470,6 +3488,12 @@ msgid "" "of relying on private implementation details." msgstr "" +#: deprecations/pending-removal-in-3.17.rst:33 +msgid "" +":class:`typing.ByteString`, deprecated since Python 3.9, is scheduled for " +"removal in Python 3.17." +msgstr "" + #: deprecations/c-api-pending-removal-in-future.rst:2 #: deprecations/pending-removal-in-future.rst:2 msgid "Pending removal in future versions" @@ -3501,17 +3525,13 @@ msgid "The :class:`argparse.FileType` type converter is deprecated." msgstr "" #: deprecations/pending-removal-in-future.rst:18 -msgid "``bool(NotImplemented)``." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:19 msgid "" "Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)`` signature " "is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " "argument signature." msgstr "" -#: deprecations/pending-removal-in-future.rst:22 +#: deprecations/pending-removal-in-future.rst:21 msgid "" "Currently Python accepts numeric literals immediately followed by keywords, " "for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " @@ -3523,32 +3543,32 @@ msgid "" "syntax error. (:gh:`87999`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:30 +#: deprecations/pending-removal-in-future.rst:29 msgid "" "Support for ``__index__()`` and ``__int__()`` method returning non-int type: " "these methods will be required to return an instance of a strict subclass " "of :class:`int`." msgstr "" -#: deprecations/pending-removal-in-future.rst:33 +#: deprecations/pending-removal-in-future.rst:32 msgid "" "Support for ``__float__()`` method returning a strict subclass of :class:" "`float`: these methods will be required to return an instance of :class:" "`float`." msgstr "" -#: deprecations/pending-removal-in-future.rst:36 +#: deprecations/pending-removal-in-future.rst:35 msgid "" "Support for ``__complex__()`` method returning a strict subclass of :class:" "`complex`: these methods will be required to return an instance of :class:" "`complex`." msgstr "" -#: deprecations/pending-removal-in-future.rst:39 +#: deprecations/pending-removal-in-future.rst:38 msgid "Delegation of ``int()`` to ``__trunc__()`` method." msgstr "" -#: deprecations/pending-removal-in-future.rst:40 +#: deprecations/pending-removal-in-future.rst:39 msgid "" "Passing a complex number as the *real* or *imag* argument in the :func:" "`complex` constructor is now deprecated; it should only be passed as a " @@ -3556,87 +3576,87 @@ msgid "" "`109218`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:45 +#: deprecations/pending-removal-in-future.rst:44 msgid "" ":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " "are deprecated and replaced by :data:`calendar.JANUARY` and :data:`calendar." "FEBRUARY`. (Contributed by Prince Roshan in :gh:`103636`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:50 +#: deprecations/pending-removal-in-future.rst:49 msgid "" ":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. (:gh:" "`133038`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:52 +#: deprecations/pending-removal-in-future.rst:51 msgid "" ":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:55 +#: deprecations/pending-removal-in-future.rst:54 msgid ":mod:`datetime`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:57 +#: deprecations/pending-removal-in-future.rst:56 msgid "" ":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." "UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:59 +#: deprecations/pending-removal-in-future.rst:58 msgid "" ":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." "fromtimestamp(timestamp, tz=datetime.UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:62 +#: deprecations/pending-removal-in-future.rst:61 msgid ":mod:`gettext`: Plural value must be an integer." msgstr "" -#: deprecations/pending-removal-in-future.rst:66 +#: deprecations/pending-removal-in-future.rst:65 msgid "" ":func:`~importlib.util.cache_from_source` *debug_override* parameter is " "deprecated: use the *optimization* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:69 +#: deprecations/pending-removal-in-future.rst:68 msgid ":mod:`importlib.metadata`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:71 +#: deprecations/pending-removal-in-future.rst:70 msgid "``EntryPoints`` tuple interface." msgstr "" -#: deprecations/pending-removal-in-future.rst:72 +#: deprecations/pending-removal-in-future.rst:71 msgid "Implicit ``None`` on return values." msgstr "" -#: deprecations/pending-removal-in-future.rst:74 +#: deprecations/pending-removal-in-future.rst:73 msgid "" ":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " "use :meth:`~logging.warning` instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:77 +#: deprecations/pending-removal-in-future.rst:76 msgid "" ":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " "BytesIO and binary mode instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:80 +#: deprecations/pending-removal-in-future.rst:79 msgid "" ":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." msgstr "" -#: deprecations/pending-removal-in-future.rst:82 +#: deprecations/pending-removal-in-future.rst:81 msgid "" ":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " "deprecated, use an exception instance." msgstr "" -#: deprecations/pending-removal-in-future.rst:85 +#: deprecations/pending-removal-in-future.rst:84 msgid "" ":mod:`re`: More strict rules are now applied for numerical group references " "and group names in regular expressions. Only sequence of ASCII digits is " @@ -3645,110 +3665,110 @@ msgid "" "underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:92 +#: deprecations/pending-removal-in-future.rst:91 msgid "" ":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." msgstr "" -#: deprecations/pending-removal-in-future.rst:94 +#: deprecations/pending-removal-in-future.rst:93 msgid "" ":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " "Python 3.12; use the *onexc* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:97 +#: deprecations/pending-removal-in-future.rst:96 msgid ":mod:`ssl` options and protocols:" msgstr "" -#: deprecations/pending-removal-in-future.rst:99 +#: deprecations/pending-removal-in-future.rst:98 msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." msgstr "" -#: deprecations/pending-removal-in-future.rst:100 +#: deprecations/pending-removal-in-future.rst:99 msgid "" ":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` and :meth:" "`!selected_npn_protocol` are deprecated: use ALPN instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:103 +#: deprecations/pending-removal-in-future.rst:102 msgid "``ssl.OP_NO_SSL*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:104 +#: deprecations/pending-removal-in-future.rst:103 msgid "``ssl.OP_NO_TLS*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:105 +#: deprecations/pending-removal-in-future.rst:104 msgid "``ssl.PROTOCOL_SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:106 +#: deprecations/pending-removal-in-future.rst:105 msgid "``ssl.PROTOCOL_TLS``" msgstr "" -#: deprecations/pending-removal-in-future.rst:107 +#: deprecations/pending-removal-in-future.rst:106 msgid "``ssl.PROTOCOL_TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:108 +#: deprecations/pending-removal-in-future.rst:107 msgid "``ssl.PROTOCOL_TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:109 +#: deprecations/pending-removal-in-future.rst:108 msgid "``ssl.PROTOCOL_TLSv1_2``" msgstr "" -#: deprecations/pending-removal-in-future.rst:110 +#: deprecations/pending-removal-in-future.rst:109 msgid "``ssl.TLSVersion.SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:111 +#: deprecations/pending-removal-in-future.rst:110 msgid "``ssl.TLSVersion.TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:112 +#: deprecations/pending-removal-in-future.rst:111 msgid "``ssl.TLSVersion.TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:114 +#: deprecations/pending-removal-in-future.rst:113 msgid ":mod:`threading` methods:" msgstr "" -#: deprecations/pending-removal-in-future.rst:116 +#: deprecations/pending-removal-in-future.rst:115 msgid "" ":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." "notify_all`." msgstr "" -#: deprecations/pending-removal-in-future.rst:117 +#: deprecations/pending-removal-in-future.rst:116 msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." msgstr "" -#: deprecations/pending-removal-in-future.rst:118 +#: deprecations/pending-removal-in-future.rst:117 msgid "" ":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :" "attr:`threading.Thread.daemon` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:120 +#: deprecations/pending-removal-in-future.rst:119 msgid "" ":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :" "attr:`threading.Thread.name` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:122 +#: deprecations/pending-removal-in-future.rst:121 msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." msgstr "" -#: deprecations/pending-removal-in-future.rst:123 +#: deprecations/pending-removal-in-future.rst:122 msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." msgstr "" -#: deprecations/pending-removal-in-future.rst:125 +#: deprecations/pending-removal-in-future.rst:124 msgid ":class:`typing.Text` (:gh:`92332`)." msgstr "" -#: deprecations/pending-removal-in-future.rst:127 +#: deprecations/pending-removal-in-future.rst:126 msgid "" "The internal class ``typing._UnionGenericAlias`` is no longer used to " "implement :class:`typing.Union`. To preserve compatibility with users using " @@ -3756,69 +3776,69 @@ msgid "" "Python 3.17. (Contributed by Jelle Zijlstra in :gh:`105499`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:132 +#: deprecations/pending-removal-in-future.rst:131 msgid "" ":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " "value that is not ``None`` from a test case." msgstr "" -#: deprecations/pending-removal-in-future.rst:135 +#: deprecations/pending-removal-in-future.rst:134 msgid "" ":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " "instead" msgstr "" -#: deprecations/pending-removal-in-future.rst:137 +#: deprecations/pending-removal-in-future.rst:136 msgid "``splitattr()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:138 +#: deprecations/pending-removal-in-future.rst:137 msgid "``splithost()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:139 +#: deprecations/pending-removal-in-future.rst:138 msgid "``splitnport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:140 +#: deprecations/pending-removal-in-future.rst:139 msgid "``splitpasswd()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:141 +#: deprecations/pending-removal-in-future.rst:140 msgid "``splitport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:142 +#: deprecations/pending-removal-in-future.rst:141 msgid "``splitquery()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:143 +#: deprecations/pending-removal-in-future.rst:142 msgid "``splittag()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:144 +#: deprecations/pending-removal-in-future.rst:143 msgid "``splittype()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:145 +#: deprecations/pending-removal-in-future.rst:144 msgid "``splituser()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:146 +#: deprecations/pending-removal-in-future.rst:145 msgid "``splitvalue()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:147 +#: deprecations/pending-removal-in-future.rst:146 msgid "``to_bytes()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:149 +#: deprecations/pending-removal-in-future.rst:148 msgid "" ":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " "writes." msgstr "" -#: deprecations/pending-removal-in-future.rst:152 +#: deprecations/pending-removal-in-future.rst:151 msgid "" ":mod:`xml.etree.ElementTree`: Testing the truth value of an :class:`~xml." "etree.ElementTree.Element` is deprecated. In a future release it will always " @@ -3826,17 +3846,17 @@ msgid "" "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:157 +#: deprecations/pending-removal-in-future.rst:156 msgid "" ":func:`sys._clear_type_cache` is deprecated: use :func:`sys." "_clear_internal_caches` instead." msgstr "" -#: whatsnew/3.13.rst:2033 +#: whatsnew/3.13.rst:2031 msgid "CPython Bytecode Changes" msgstr "" -#: whatsnew/3.13.rst:2035 +#: whatsnew/3.13.rst:2033 msgid "" "The oparg of :opcode:`YIELD_VALUE` is now ``1`` if the yield is part of a " "yield-from or await, and ``0`` otherwise. The oparg of :opcode:`RESUME` was " @@ -3845,97 +3865,97 @@ msgid "" "`111354`.)" msgstr "" -#: whatsnew/3.13.rst:2043 +#: whatsnew/3.13.rst:2041 msgid "C API Changes" msgstr "" -#: whatsnew/3.13.rst:2048 +#: whatsnew/3.13.rst:2046 msgid "" "Add the :ref:`PyMonitoring C API ` for generating :pep:" "`669` monitoring events:" msgstr "" -#: whatsnew/3.13.rst:2051 +#: whatsnew/3.13.rst:2049 msgid ":c:type:`PyMonitoringState`" msgstr "" -#: whatsnew/3.13.rst:2052 +#: whatsnew/3.13.rst:2050 msgid ":c:func:`PyMonitoring_FirePyStartEvent`" msgstr "" -#: whatsnew/3.13.rst:2053 +#: whatsnew/3.13.rst:2051 msgid ":c:func:`PyMonitoring_FirePyResumeEvent`" msgstr "" -#: whatsnew/3.13.rst:2054 +#: whatsnew/3.13.rst:2052 msgid ":c:func:`PyMonitoring_FirePyReturnEvent`" msgstr "" -#: whatsnew/3.13.rst:2055 +#: whatsnew/3.13.rst:2053 msgid ":c:func:`PyMonitoring_FirePyYieldEvent`" msgstr "" -#: whatsnew/3.13.rst:2056 +#: whatsnew/3.13.rst:2054 msgid ":c:func:`PyMonitoring_FireCallEvent`" msgstr "" -#: whatsnew/3.13.rst:2057 +#: whatsnew/3.13.rst:2055 msgid ":c:func:`PyMonitoring_FireLineEvent`" msgstr "" -#: whatsnew/3.13.rst:2058 +#: whatsnew/3.13.rst:2056 msgid ":c:func:`PyMonitoring_FireJumpEvent`" msgstr "" -#: whatsnew/3.13.rst:2059 +#: whatsnew/3.13.rst:2057 msgid "``PyMonitoring_FireBranchEvent``" msgstr "" -#: whatsnew/3.13.rst:2060 +#: whatsnew/3.13.rst:2058 msgid ":c:func:`PyMonitoring_FireCReturnEvent`" msgstr "" -#: whatsnew/3.13.rst:2061 +#: whatsnew/3.13.rst:2059 msgid ":c:func:`PyMonitoring_FirePyThrowEvent`" msgstr "" -#: whatsnew/3.13.rst:2062 +#: whatsnew/3.13.rst:2060 msgid ":c:func:`PyMonitoring_FireRaiseEvent`" msgstr "" -#: whatsnew/3.13.rst:2063 +#: whatsnew/3.13.rst:2061 msgid ":c:func:`PyMonitoring_FireCRaiseEvent`" msgstr "" -#: whatsnew/3.13.rst:2064 +#: whatsnew/3.13.rst:2062 msgid ":c:func:`PyMonitoring_FireReraiseEvent`" msgstr "" -#: whatsnew/3.13.rst:2065 +#: whatsnew/3.13.rst:2063 msgid ":c:func:`PyMonitoring_FireExceptionHandledEvent`" msgstr "" -#: whatsnew/3.13.rst:2066 +#: whatsnew/3.13.rst:2064 msgid ":c:func:`PyMonitoring_FirePyUnwindEvent`" msgstr "" -#: whatsnew/3.13.rst:2067 +#: whatsnew/3.13.rst:2065 msgid ":c:func:`PyMonitoring_FireStopIterationEvent`" msgstr "" -#: whatsnew/3.13.rst:2068 +#: whatsnew/3.13.rst:2066 msgid ":c:func:`PyMonitoring_EnterScope`" msgstr "" -#: whatsnew/3.13.rst:2069 +#: whatsnew/3.13.rst:2067 msgid ":c:func:`PyMonitoring_ExitScope`" msgstr "" -#: whatsnew/3.13.rst:2071 +#: whatsnew/3.13.rst:2069 msgid "(Contributed by Irit Katriel in :gh:`111997`)." msgstr "" -#: whatsnew/3.13.rst:2073 +#: whatsnew/3.13.rst:2071 msgid "" "Add :c:type:`PyMutex`, a lightweight mutex that occupies a single byte, and " "the new :c:func:`PyMutex_Lock` and :c:func:`PyMutex_Unlock` functions. :c:" @@ -3943,52 +3963,52 @@ msgid "" "operation needs to block. (Contributed by Sam Gross in :gh:`108724`.)" msgstr "" -#: whatsnew/3.13.rst:2079 +#: whatsnew/3.13.rst:2077 msgid "" "Add the :ref:`PyTime C API ` to provide access to system clocks:" msgstr "" -#: whatsnew/3.13.rst:2081 +#: whatsnew/3.13.rst:2079 msgid ":c:type:`PyTime_t`." msgstr "" -#: whatsnew/3.13.rst:2082 +#: whatsnew/3.13.rst:2080 msgid ":c:var:`PyTime_MIN` and :c:var:`PyTime_MAX`." msgstr "" -#: whatsnew/3.13.rst:2083 +#: whatsnew/3.13.rst:2081 msgid ":c:func:`PyTime_AsSecondsDouble`." msgstr "" -#: whatsnew/3.13.rst:2084 +#: whatsnew/3.13.rst:2082 msgid ":c:func:`PyTime_Monotonic`." msgstr "" -#: whatsnew/3.13.rst:2085 +#: whatsnew/3.13.rst:2083 msgid ":c:func:`PyTime_MonotonicRaw`." msgstr "" -#: whatsnew/3.13.rst:2086 +#: whatsnew/3.13.rst:2084 msgid ":c:func:`PyTime_PerfCounter`." msgstr "" -#: whatsnew/3.13.rst:2087 +#: whatsnew/3.13.rst:2085 msgid ":c:func:`PyTime_PerfCounterRaw`." msgstr "" -#: whatsnew/3.13.rst:2088 +#: whatsnew/3.13.rst:2086 msgid ":c:func:`PyTime_Time`." msgstr "" -#: whatsnew/3.13.rst:2089 +#: whatsnew/3.13.rst:2087 msgid ":c:func:`PyTime_TimeRaw`." msgstr "" -#: whatsnew/3.13.rst:2091 +#: whatsnew/3.13.rst:2089 msgid "(Contributed by Victor Stinner and Petr Viktorin in :gh:`110850`.)" msgstr "" -#: whatsnew/3.13.rst:2093 +#: whatsnew/3.13.rst:2091 msgid "" "Add the :c:func:`PyDict_ContainsString` function with the same behavior as :" "c:func:`PyDict_Contains`, but *key* is specified as a :c:expr:`const char*` " @@ -3996,7 +4016,7 @@ msgid "" "by Victor Stinner in :gh:`108314`.)" msgstr "" -#: whatsnew/3.13.rst:2099 +#: whatsnew/3.13.rst:2097 msgid "" "Add the :c:func:`PyDict_GetItemRef` and :c:func:`PyDict_GetItemStringRef` " "functions, which behave similarly to :c:func:`PyDict_GetItemWithError`, but " @@ -4006,7 +4026,7 @@ msgid "" "`106004`.)" msgstr "" -#: whatsnew/3.13.rst:2107 +#: whatsnew/3.13.rst:2105 msgid "" "Add the :c:func:`PyDict_SetDefaultRef` function, which behaves similarly to :" "c:func:`PyDict_SetDefault`, but returns a :term:`strong reference` instead " @@ -4015,7 +4035,7 @@ msgid "" "dictionary. (Contributed by Sam Gross in :gh:`112066`.)" msgstr "" -#: whatsnew/3.13.rst:2115 +#: whatsnew/3.13.rst:2113 msgid "" "Add the :c:func:`PyDict_Pop` and :c:func:`PyDict_PopString` functions to " "remove a key from a dictionary and optionally return the removed value. This " @@ -4024,7 +4044,7 @@ msgid "" "Victor Stinner in :gh:`111262`.)" msgstr "" -#: whatsnew/3.13.rst:2122 +#: whatsnew/3.13.rst:2120 msgid "" "Add the :c:func:`PyMapping_GetOptionalItem` and :c:func:" "`PyMapping_GetOptionalItemString` functions as alternatives to :c:func:" @@ -4035,7 +4055,7 @@ msgid "" "gh:`106307`.)" msgstr "" -#: whatsnew/3.13.rst:2132 +#: whatsnew/3.13.rst:2130 msgid "" "Add the :c:func:`PyObject_GetOptionalAttr` and :c:func:" "`PyObject_GetOptionalAttrString` functions as alternatives to :c:func:" @@ -4046,37 +4066,37 @@ msgid "" "Serhiy Storchaka in :gh:`106521`.)" msgstr "" -#: whatsnew/3.13.rst:2142 +#: whatsnew/3.13.rst:2140 msgid "" "Add the :c:func:`PyErr_FormatUnraisable` function as an extension to :c:func:" "`PyErr_WriteUnraisable` that allows customizing the warning message. " "(Contributed by Serhiy Storchaka in :gh:`108082`.)" msgstr "" -#: whatsnew/3.13.rst:2147 +#: whatsnew/3.13.rst:2145 msgid "" "Add new functions that return a :term:`strong reference` instead of a :term:" "`borrowed reference` for frame locals, globals, and builtins, as part of :" "ref:`PEP 667 `:" msgstr "" -#: whatsnew/3.13.rst:2151 +#: whatsnew/3.13.rst:2149 msgid ":c:func:`PyEval_GetFrameBuiltins` replaces :c:func:`PyEval_GetBuiltins`" msgstr "" -#: whatsnew/3.13.rst:2152 +#: whatsnew/3.13.rst:2150 msgid ":c:func:`PyEval_GetFrameGlobals` replaces :c:func:`PyEval_GetGlobals`" msgstr "" -#: whatsnew/3.13.rst:2153 +#: whatsnew/3.13.rst:2151 msgid ":c:func:`PyEval_GetFrameLocals` replaces :c:func:`PyEval_GetLocals`" msgstr "" -#: whatsnew/3.13.rst:2155 +#: whatsnew/3.13.rst:2153 msgid "(Contributed by Mark Shannon and Tian Gao in :gh:`74929`.)" msgstr "" -#: whatsnew/3.13.rst:2157 +#: whatsnew/3.13.rst:2155 msgid "" "Add the :c:func:`Py_GetConstant` and :c:func:`Py_GetConstantBorrowed` " "functions to get :term:`strong ` or :term:`borrowed " @@ -4085,7 +4105,7 @@ msgid "" "constant zero. (Contributed by Victor Stinner in :gh:`115754`.)" msgstr "" -#: whatsnew/3.13.rst:2164 +#: whatsnew/3.13.rst:2162 msgid "" "Add the :c:func:`PyImport_AddModuleRef` function as a replacement for :c:" "func:`PyImport_AddModule` that returns a :term:`strong reference` instead of " @@ -4093,35 +4113,35 @@ msgid "" "`105922`.)" msgstr "" -#: whatsnew/3.13.rst:2169 +#: whatsnew/3.13.rst:2167 msgid "" "Add the :c:func:`Py_IsFinalizing` function to check whether the main Python " "interpreter is :term:`shutting down `. (Contributed by " "Victor Stinner in :gh:`108014`.)" msgstr "" -#: whatsnew/3.13.rst:2174 +#: whatsnew/3.13.rst:2172 msgid "" "Add the :c:func:`PyList_GetItemRef` function as a replacement for :c:func:" "`PyList_GetItem` that returns a :term:`strong reference` instead of a :term:" "`borrowed reference`. (Contributed by Sam Gross in :gh:`114329`.)" msgstr "" -#: whatsnew/3.13.rst:2179 +#: whatsnew/3.13.rst:2177 msgid "" "Add the :c:func:`PyList_Extend` and :c:func:`PyList_Clear` functions, " -"mirroring the Python :meth:`!list.extend` and :meth:`!list.clear` methods. " +"mirroring the Python :meth:`list.extend` and :meth:`list.clear` methods. " "(Contributed by Victor Stinner in :gh:`111138`.)" msgstr "" -#: whatsnew/3.13.rst:2183 +#: whatsnew/3.13.rst:2181 msgid "" "Add the :c:func:`PyLong_AsInt` function. It behaves similarly to :c:func:" "`PyLong_AsLong`, but stores the result in a C :c:expr:`int` instead of a C :" "c:expr:`long`. (Contributed by Victor Stinner in :gh:`108014`.)" msgstr "" -#: whatsnew/3.13.rst:2188 +#: whatsnew/3.13.rst:2186 msgid "" "Add the :c:func:`PyLong_AsNativeBytes`, :c:func:`PyLong_FromNativeBytes`, " "and :c:func:`PyLong_FromUnsignedNativeBytes` functions to simplify " @@ -4129,27 +4149,27 @@ msgid "" "(Contributed by Steve Dower in :gh:`111140`.)" msgstr "" -#: whatsnew/3.13.rst:2194 +#: whatsnew/3.13.rst:2192 msgid "" "Add :c:func:`PyModule_Add` function, which is similar to :c:func:" "`PyModule_AddObjectRef` and :c:func:`PyModule_AddObject`, but always steals " "a reference to the value. (Contributed by Serhiy Storchaka in :gh:`86493`.)" msgstr "" -#: whatsnew/3.13.rst:2199 +#: whatsnew/3.13.rst:2197 msgid "" "Add the :c:func:`PyObject_GenericHash` function that implements the default " "hashing function of a Python object. (Contributed by Serhiy Storchaka in :gh:" "`113024`.)" msgstr "" -#: whatsnew/3.13.rst:2203 +#: whatsnew/3.13.rst:2201 msgid "" "Add the :c:func:`Py_HashPointer` function to hash a raw pointer. " "(Contributed by Victor Stinner in :gh:`111545`.)" msgstr "" -#: whatsnew/3.13.rst:2206 +#: whatsnew/3.13.rst:2204 msgid "" "Add the :c:func:`PyObject_VisitManagedDict` and :c:func:" "`PyObject_ClearManagedDict` functions. which must be called by the traverse " @@ -4158,7 +4178,7 @@ msgid "" "with Python 3.11 and 3.12. (Contributed by Victor Stinner in :gh:`107073`.)" msgstr "" -#: whatsnew/3.13.rst:2214 +#: whatsnew/3.13.rst:2212 msgid "" "Add the :c:func:`PyRefTracer_SetTracer` and :c:func:`PyRefTracer_GetTracer` " "functions, which enable tracking object creation and destruction in the same " @@ -4166,14 +4186,14 @@ msgid "" "in :gh:`93502`.)" msgstr "" -#: whatsnew/3.13.rst:2220 +#: whatsnew/3.13.rst:2218 msgid "" "Add the :c:func:`PySys_AuditTuple` function as an alternative to :c:func:" "`PySys_Audit` that takes event arguments as a Python :class:`tuple` object. " "(Contributed by Victor Stinner in :gh:`85283`.)" msgstr "" -#: whatsnew/3.13.rst:2225 +#: whatsnew/3.13.rst:2223 msgid "" "Add the :c:func:`PyThreadState_GetUnchecked()` function as an alternative " "to :c:func:`PyThreadState_Get()` that doesn't kill the process with a fatal " @@ -4181,7 +4201,7 @@ msgid "" "result is ``NULL``. (Contributed by Victor Stinner in :gh:`108867`.)" msgstr "" -#: whatsnew/3.13.rst:2231 +#: whatsnew/3.13.rst:2229 msgid "" "Add the :c:func:`PyType_GetFullyQualifiedName` function to get the type's " "fully qualified name. The module name is prepended if :attr:`type." @@ -4189,14 +4209,14 @@ msgid "" "``'__main__'``. (Contributed by Victor Stinner in :gh:`111696`.)" msgstr "" -#: whatsnew/3.13.rst:2237 +#: whatsnew/3.13.rst:2235 msgid "" "Add the :c:func:`PyType_GetModuleName` function to get the type's module " "name. This is equivalent to getting the :attr:`type.__module__` attribute. " "(Contributed by Eric Snow and Victor Stinner in :gh:`111696`.)" msgstr "" -#: whatsnew/3.13.rst:2242 +#: whatsnew/3.13.rst:2240 msgid "" "Add the :c:func:`PyUnicode_EqualToUTF8AndSize` and :c:func:" "`PyUnicode_EqualToUTF8` functions to compare a Unicode object with a :c:expr:" @@ -4205,7 +4225,7 @@ msgid "" "Storchaka in :gh:`110289`.)" msgstr "" -#: whatsnew/3.13.rst:2249 +#: whatsnew/3.13.rst:2247 msgid "" "Add the :c:func:`PyWeakref_GetRef` function as an alternative to :c:func:" "`PyWeakref_GetObject` that returns a :term:`strong reference` or ``NULL`` if " @@ -4213,47 +4233,47 @@ msgid "" "`105927`.)" msgstr "" -#: whatsnew/3.13.rst:2255 +#: whatsnew/3.13.rst:2253 msgid "Add fixed variants of functions which silently ignore errors:" msgstr "" -#: whatsnew/3.13.rst:2257 +#: whatsnew/3.13.rst:2255 msgid "" ":c:func:`PyObject_HasAttrWithError` replaces :c:func:`PyObject_HasAttr`." msgstr "" -#: whatsnew/3.13.rst:2258 +#: whatsnew/3.13.rst:2256 msgid "" ":c:func:`PyObject_HasAttrStringWithError` replaces :c:func:" "`PyObject_HasAttrString`." msgstr "" -#: whatsnew/3.13.rst:2260 +#: whatsnew/3.13.rst:2258 msgid "" ":c:func:`PyMapping_HasKeyWithError` replaces :c:func:`PyMapping_HasKey`." msgstr "" -#: whatsnew/3.13.rst:2261 +#: whatsnew/3.13.rst:2259 msgid "" ":c:func:`PyMapping_HasKeyStringWithError` replaces :c:func:" "`PyMapping_HasKeyString`." msgstr "" -#: whatsnew/3.13.rst:2264 +#: whatsnew/3.13.rst:2262 msgid "" "The new functions return ``-1`` for errors and the standard ``1`` for true " "and ``0`` for false." msgstr "" -#: whatsnew/3.13.rst:2267 +#: whatsnew/3.13.rst:2265 msgid "(Contributed by Serhiy Storchaka in :gh:`108511`.)" msgstr "" -#: whatsnew/3.13.rst:2271 +#: whatsnew/3.13.rst:2269 msgid "Changed C APIs" msgstr "" -#: whatsnew/3.13.rst:2273 +#: whatsnew/3.13.rst:2271 msgid "" "The *keywords* parameter of :c:func:`PyArg_ParseTupleAndKeywords` and :c:" "func:`PyArg_VaParseTupleAndKeywords` now has type :c:expr:`char * const *` " @@ -4266,20 +4286,20 @@ msgid "" "`65210`.)" msgstr "" -#: whatsnew/3.13.rst:2285 +#: whatsnew/3.13.rst:2283 msgid "" ":c:func:`PyArg_ParseTupleAndKeywords` now supports non-ASCII keyword " "parameter names. (Contributed by Serhiy Storchaka in :gh:`110815`.)" msgstr "" -#: whatsnew/3.13.rst:2289 +#: whatsnew/3.13.rst:2287 msgid "" "The :c:func:`!PyCode_GetFirstFree` function is now unstable API and is now " "named :c:func:`PyUnstable_Code_GetFirstFree`. (Contributed by Bogdan " "Romanyuk in :gh:`115781`.)" msgstr "" -#: whatsnew/3.13.rst:2293 +#: whatsnew/3.13.rst:2291 msgid "" "The :c:func:`PyDict_GetItem`, :c:func:`PyDict_GetItemString`, :c:func:" "`PyMapping_HasKey`, :c:func:`PyMapping_HasKeyString`, :c:func:" @@ -4290,35 +4310,35 @@ msgid "" "documentation. (Contributed by Serhiy Storchaka in :gh:`106672`.)" msgstr "" -#: whatsnew/3.13.rst:2302 +#: whatsnew/3.13.rst:2300 msgid "" "Add support for the ``%T``, ``%#T``, ``%N`` and ``%#N`` formats to :c:func:" "`PyUnicode_FromFormat`:" msgstr "" -#: whatsnew/3.13.rst:2305 +#: whatsnew/3.13.rst:2303 msgid "``%T``: Get the fully qualified name of an object type" msgstr "" -#: whatsnew/3.13.rst:2306 +#: whatsnew/3.13.rst:2304 msgid "``%#T``: As above, but use a colon as the separator" msgstr "" -#: whatsnew/3.13.rst:2307 +#: whatsnew/3.13.rst:2305 msgid "``%N``: Get the fully qualified name of a type" msgstr "" -#: whatsnew/3.13.rst:2308 +#: whatsnew/3.13.rst:2306 msgid "``%#N``: As above, but use a colon as the separator" msgstr "" -#: whatsnew/3.13.rst:2310 +#: whatsnew/3.13.rst:2308 msgid "" "See :pep:`737` for more information. (Contributed by Victor Stinner in :gh:" "`111696`.)" msgstr "" -#: whatsnew/3.13.rst:2313 +#: whatsnew/3.13.rst:2311 msgid "" "You no longer have to define the ``PY_SSIZE_T_CLEAN`` macro before " "including :file:`Python.h` when using ``#`` formats in :ref:`format codes " @@ -4327,7 +4347,7 @@ msgid "" "`104922`.)" msgstr "" -#: whatsnew/3.13.rst:2319 +#: whatsnew/3.13.rst:2317 msgid "" "If Python is built in :ref:`debug mode ` or :option:`with " "assertions <--with-assertions>`, :c:func:`PyTuple_SET_ITEM` and :c:func:" @@ -4335,60 +4355,60 @@ msgid "" "(Contributed by Victor Stinner in :gh:`106168`.)" msgstr "" -#: whatsnew/3.13.rst:2327 +#: whatsnew/3.13.rst:2325 msgid "Limited C API Changes" msgstr "" -#: whatsnew/3.13.rst:2329 +#: whatsnew/3.13.rst:2327 msgid "The following functions are now included in the Limited C API:" msgstr "" -#: whatsnew/3.13.rst:2331 +#: whatsnew/3.13.rst:2329 msgid ":c:func:`PyMem_RawMalloc`" msgstr "" -#: whatsnew/3.13.rst:2332 +#: whatsnew/3.13.rst:2330 msgid ":c:func:`PyMem_RawCalloc`" msgstr "" -#: whatsnew/3.13.rst:2333 +#: whatsnew/3.13.rst:2331 msgid ":c:func:`PyMem_RawRealloc`" msgstr "" -#: whatsnew/3.13.rst:2334 +#: whatsnew/3.13.rst:2332 msgid ":c:func:`PyMem_RawFree`" msgstr "" -#: whatsnew/3.13.rst:2335 +#: whatsnew/3.13.rst:2333 msgid ":c:func:`PySys_Audit`" msgstr "" -#: whatsnew/3.13.rst:2336 +#: whatsnew/3.13.rst:2334 msgid ":c:func:`PySys_AuditTuple`" msgstr "" -#: whatsnew/3.13.rst:2337 +#: whatsnew/3.13.rst:2335 msgid ":c:func:`PyType_GetModuleByDef`" msgstr "" -#: whatsnew/3.13.rst:2339 +#: whatsnew/3.13.rst:2337 msgid "" "(Contributed by Victor Stinner in :gh:`85283`, :gh:`85283`, and :gh:" "`116936`.)" msgstr "" -#: whatsnew/3.13.rst:2341 +#: whatsnew/3.13.rst:2339 msgid "" "Python built with :option:`--with-trace-refs` (tracing references) now " "supports the :ref:`Limited API `. (Contributed by Victor " "Stinner in :gh:`108634`.)" msgstr "" -#: whatsnew/3.13.rst:2347 +#: whatsnew/3.13.rst:2345 msgid "Removed C APIs" msgstr "" -#: whatsnew/3.13.rst:2349 +#: whatsnew/3.13.rst:2347 msgid "" "Remove several functions, macros, variables, etc with names prefixed by " "``_Py`` or ``_PY`` (which are considered private). If your project is " @@ -4398,13 +4418,13 @@ msgid "" "Victor Stinner. (Contributed by Victor Stinner in :gh:`106320`.)" msgstr "" -#: whatsnew/3.13.rst:2357 +#: whatsnew/3.13.rst:2355 msgid "" "Remove old buffer protocols deprecated in Python 3.0. Use :ref:" "`bufferobjects` instead." msgstr "" -#: whatsnew/3.13.rst:2360 +#: whatsnew/3.13.rst:2358 msgid "" ":c:func:`!PyObject_CheckReadBuffer`: Use :c:func:`PyObject_CheckBuffer` to " "test whether the object supports the buffer protocol. Note that :c:func:" @@ -4413,13 +4433,13 @@ msgid "" "example of :c:func:`PyObject_GetBuffer`." msgstr "" -#: whatsnew/3.13.rst:2368 +#: whatsnew/3.13.rst:2366 msgid "" ":c:func:`!PyObject_AsCharBuffer`, :c:func:`!PyObject_AsReadBuffer`: Use :c:" "func:`PyObject_GetBuffer` and :c:func:`PyBuffer_Release` instead:" msgstr "" -#: whatsnew/3.13.rst:2371 +#: whatsnew/3.13.rst:2369 msgid "" "Py_buffer view;\n" "if (PyObject_GetBuffer(obj, &view, PyBUF_SIMPLE) < 0) {\n" @@ -4430,13 +4450,13 @@ msgid "" "PyBuffer_Release(&view);" msgstr "" -#: whatsnew/3.13.rst:2381 +#: whatsnew/3.13.rst:2379 msgid "" ":c:func:`!PyObject_AsWriteBuffer`: Use :c:func:`PyObject_GetBuffer` and :c:" "func:`PyBuffer_Release` instead:" msgstr "" -#: whatsnew/3.13.rst:2384 +#: whatsnew/3.13.rst:2382 msgid "" "Py_buffer view;\n" "if (PyObject_GetBuffer(obj, &view, PyBUF_WRITABLE) < 0) {\n" @@ -4446,21 +4466,21 @@ msgid "" "PyBuffer_Release(&view);" msgstr "" -#: whatsnew/3.13.rst:2393 +#: whatsnew/3.13.rst:2391 msgid "(Contributed by Inada Naoki in :gh:`85275`.)" msgstr "" -#: whatsnew/3.13.rst:2395 +#: whatsnew/3.13.rst:2393 msgid "Remove various functions deprecated in Python 3.9:" msgstr "" -#: whatsnew/3.13.rst:2397 +#: whatsnew/3.13.rst:2395 msgid "" ":c:func:`!PyEval_CallObject`, :c:func:`!PyEval_CallObjectWithKeywords`: Use :" "c:func:`PyObject_CallNoArgs` or :c:func:`PyObject_Call` instead." msgstr "" -#: whatsnew/3.13.rst:2402 +#: whatsnew/3.13.rst:2400 msgid "" "In :c:func:`PyObject_Call`, positional arguments must be a :class:`tuple` " "and must not be ``NULL``, and keyword arguments must be a :class:`dict` or " @@ -4471,106 +4491,106 @@ msgid "" "`PyTuple_New(0) `." msgstr "" -#: whatsnew/3.13.rst:2412 +#: whatsnew/3.13.rst:2410 msgid "" ":c:func:`!PyEval_CallFunction`: Use :c:func:`PyObject_CallFunction` instead." msgstr "" -#: whatsnew/3.13.rst:2414 +#: whatsnew/3.13.rst:2412 msgid "" ":c:func:`!PyEval_CallMethod`: Use :c:func:`PyObject_CallMethod` instead." msgstr "" -#: whatsnew/3.13.rst:2416 +#: whatsnew/3.13.rst:2414 msgid ":c:func:`!PyCFunction_Call`: Use :c:func:`PyObject_Call` instead." msgstr "" -#: whatsnew/3.13.rst:2419 +#: whatsnew/3.13.rst:2417 msgid "(Contributed by Victor Stinner in :gh:`105107`.)" msgstr "" -#: whatsnew/3.13.rst:2421 +#: whatsnew/3.13.rst:2419 msgid "" "Remove the following old functions to configure the Python initialization, " "deprecated in Python 3.11:" msgstr "" -#: whatsnew/3.13.rst:2424 +#: whatsnew/3.13.rst:2422 msgid "" ":c:func:`!PySys_AddWarnOptionUnicode`: Use :c:member:`PyConfig.warnoptions` " "instead." msgstr "" -#: whatsnew/3.13.rst:2426 +#: whatsnew/3.13.rst:2424 msgid "" ":c:func:`!PySys_AddWarnOption`: Use :c:member:`PyConfig.warnoptions` instead." msgstr "" -#: whatsnew/3.13.rst:2428 +#: whatsnew/3.13.rst:2426 msgid ":c:func:`!PySys_AddXOption`: Use :c:member:`PyConfig.xoptions` instead." msgstr "" -#: whatsnew/3.13.rst:2430 +#: whatsnew/3.13.rst:2428 msgid "" ":c:func:`!PySys_HasWarnOptions`: Use :c:member:`PyConfig.xoptions` instead." msgstr "" -#: whatsnew/3.13.rst:2432 +#: whatsnew/3.13.rst:2430 msgid "" ":c:func:`!PySys_SetPath`: Set :c:member:`PyConfig.module_search_paths` " "instead." msgstr "" -#: whatsnew/3.13.rst:2434 +#: whatsnew/3.13.rst:2432 msgid "" ":c:func:`!Py_SetPath`: Set :c:member:`PyConfig.module_search_paths` instead." msgstr "" -#: whatsnew/3.13.rst:2436 +#: whatsnew/3.13.rst:2434 msgid "" ":c:func:`!Py_SetStandardStreamEncoding`: Set :c:member:`PyConfig." "stdio_encoding` instead, and set also maybe :c:member:`PyConfig." "legacy_windows_stdio` (on Windows)." msgstr "" -#: whatsnew/3.13.rst:2439 +#: whatsnew/3.13.rst:2437 msgid "" ":c:func:`!_Py_SetProgramFullPath`: Set :c:member:`PyConfig.executable` " "instead." msgstr "" -#: whatsnew/3.13.rst:2442 +#: whatsnew/3.13.rst:2440 msgid "" "Use the new :c:type:`PyConfig` API of the :ref:`Python Initialization " "Configuration ` instead (:pep:`587`), added to Python 3.8. " "(Contributed by Victor Stinner in :gh:`105145`.)" msgstr "" -#: whatsnew/3.13.rst:2446 +#: whatsnew/3.13.rst:2444 msgid "" "Remove :c:func:`!PyEval_AcquireLock` and :c:func:`!PyEval_ReleaseLock` " "functions, deprecated in Python 3.2. They didn't update the current thread " "state. They can be replaced with:" msgstr "" -#: whatsnew/3.13.rst:2451 +#: whatsnew/3.13.rst:2449 msgid ":c:func:`PyEval_SaveThread` and :c:func:`PyEval_RestoreThread`;" msgstr "" -#: whatsnew/3.13.rst:2452 +#: whatsnew/3.13.rst:2450 msgid "" "low-level :c:func:`PyEval_AcquireThread` and :c:func:`PyEval_RestoreThread`;" msgstr "" -#: whatsnew/3.13.rst:2453 +#: whatsnew/3.13.rst:2451 msgid "or :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release`." msgstr "" -#: whatsnew/3.13.rst:2455 +#: whatsnew/3.13.rst:2453 msgid "(Contributed by Victor Stinner in :gh:`105182`.)" msgstr "" -#: whatsnew/3.13.rst:2457 +#: whatsnew/3.13.rst:2455 msgid "" "Remove the :c:func:`!PyEval_ThreadsInitialized` function, deprecated in " "Python 3.9. Since Python 3.7, :c:func:`!Py_Initialize` always creates the " @@ -4579,7 +4599,7 @@ msgid "" "Stinner in :gh:`105182`.)" msgstr "" -#: whatsnew/3.13.rst:2464 +#: whatsnew/3.13.rst:2462 msgid "" "Remove the :c:func:`!_PyInterpreterState_Get` alias to :c:func:" "`PyInterpreterState_Get()` which was kept for backward compatibility with " @@ -4588,26 +4608,26 @@ msgid "" "Stinner in :gh:`106320`.)" msgstr "" -#: whatsnew/3.13.rst:2471 +#: whatsnew/3.13.rst:2469 msgid "" "Remove the private :c:func:`!_PyObject_FastCall` function: use :c:func:`!" "PyObject_Vectorcall` which is available since Python 3.8 (:pep:`590`). " "(Contributed by Victor Stinner in :gh:`106023`.)" msgstr "" -#: whatsnew/3.13.rst:2476 +#: whatsnew/3.13.rst:2474 msgid "" "Remove the ``cpython/pytime.h`` header file, which only contained private " "functions. (Contributed by Victor Stinner in :gh:`106316`.)" msgstr "" -#: whatsnew/3.13.rst:2480 +#: whatsnew/3.13.rst:2478 msgid "" "Remove the undocumented ``PY_TIMEOUT_MAX`` constant from the limited C API. " "(Contributed by Victor Stinner in :gh:`110014`.)" msgstr "" -#: whatsnew/3.13.rst:2483 +#: whatsnew/3.13.rst:2481 msgid "" "Remove the old trashcan macros ``Py_TRASHCAN_SAFE_BEGIN`` and " "``Py_TRASHCAN_SAFE_END``. Replace both with the new macros " @@ -4615,72 +4635,72 @@ msgid "" "in :gh:`105111`.)" msgstr "" -#: whatsnew/3.13.rst:2490 +#: whatsnew/3.13.rst:2488 msgid "Deprecated C APIs" msgstr "" -#: whatsnew/3.13.rst:2492 +#: whatsnew/3.13.rst:2490 msgid "Deprecate old Python initialization functions:" msgstr "" -#: whatsnew/3.13.rst:2494 deprecations/c-api-pending-removal-in-3.15.rst:63 +#: whatsnew/3.13.rst:2492 deprecations/c-api-pending-removal-in-3.15.rst:62 msgid "" ":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" "warnings.filters` instead." msgstr "" -#: whatsnew/3.13.rst:2496 +#: whatsnew/3.13.rst:2494 msgid ":c:func:`Py_GetExecPrefix`: Get :data:`sys.exec_prefix` instead." msgstr "" -#: whatsnew/3.13.rst:2498 +#: whatsnew/3.13.rst:2496 msgid ":c:func:`Py_GetPath`: Get :data:`sys.path` instead." msgstr "" -#: whatsnew/3.13.rst:2500 +#: whatsnew/3.13.rst:2498 msgid ":c:func:`Py_GetPrefix`: Get :data:`sys.prefix` instead." msgstr "" -#: whatsnew/3.13.rst:2502 +#: whatsnew/3.13.rst:2500 msgid ":c:func:`Py_GetProgramFullPath`: Get :data:`sys.executable` instead." msgstr "" -#: whatsnew/3.13.rst:2504 +#: whatsnew/3.13.rst:2502 msgid ":c:func:`Py_GetProgramName`: Get :data:`sys.executable` instead." msgstr "" -#: whatsnew/3.13.rst:2506 +#: whatsnew/3.13.rst:2504 msgid "" ":c:func:`Py_GetPythonHome`: Get :c:member:`PyConfig.home` or the :envvar:" "`PYTHONHOME` environment variable instead." msgstr "" -#: whatsnew/3.13.rst:2510 +#: whatsnew/3.13.rst:2508 msgid "(Contributed by Victor Stinner in :gh:`105145`.)" msgstr "" -#: whatsnew/3.13.rst:2512 +#: whatsnew/3.13.rst:2510 msgid "" ":term:`Soft deprecate ` the :c:func:`PyEval_GetBuiltins`, :" "c:func:`PyEval_GetGlobals`, and :c:func:`PyEval_GetLocals` functions, which " "return a :term:`borrowed reference`. (Soft deprecated as part of :pep:`667`.)" msgstr "" -#: whatsnew/3.13.rst:2518 +#: whatsnew/3.13.rst:2516 msgid "" "Deprecate the :c:func:`PyImport_ImportModuleNoBlock` function, which is just " "an alias to :c:func:`PyImport_ImportModule` since Python 3.3. (Contributed " "by Victor Stinner in :gh:`105396`.)" msgstr "" -#: whatsnew/3.13.rst:2522 +#: whatsnew/3.13.rst:2520 msgid "" ":term:`Soft deprecate ` the :c:func:`PyModule_AddObject` " "function. It should be replaced with :c:func:`PyModule_Add` or :c:func:" "`PyModule_AddObjectRef`. (Contributed by Serhiy Storchaka in :gh:`86493`.)" msgstr "" -#: whatsnew/3.13.rst:2528 +#: whatsnew/3.13.rst:2526 msgid "" "Deprecate the old ``Py_UNICODE`` and ``PY_UNICODE_TYPE`` types and the :c:" "macro:`!Py_UNICODE_WIDE` define. Use the :c:type:`wchar_t` type directly " @@ -4689,7 +4709,7 @@ msgid "" "`105156`.)" msgstr "" -#: whatsnew/3.13.rst:2535 +#: whatsnew/3.13.rst:2533 msgid "" "Deprecate the :c:func:`PyWeakref_GetObject` and :c:func:" "`PyWeakref_GET_OBJECT` functions, which return a :term:`borrowed reference`. " @@ -4712,16 +4732,12 @@ msgid "" msgstr "" #: deprecations/c-api-pending-removal-in-3.15.rst:4 -msgid "The bundled copy of ``libmpdecimal``." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:5 msgid "" "The :c:func:`PyImport_ImportModuleNoBlock`: Use :c:func:" "`PyImport_ImportModule` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:7 +#: deprecations/c-api-pending-removal-in-3.15.rst:6 msgid "" ":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: Use :c:" "func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project ` (:data:`sys.path`) instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:28 +#: deprecations/c-api-pending-removal-in-3.15.rst:27 msgid "" ":c:func:`Py_GetPrefix`: Use :c:func:`PyConfig_Get(\"base_prefix\") " "` (:data:`sys.base_prefix`) instead. Use :c:func:" @@ -4777,7 +4793,7 @@ msgid "" "`virtual environments ` need to be handled." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:33 +#: deprecations/c-api-pending-removal-in-3.15.rst:32 msgid "" ":c:func:`Py_GetExecPrefix`: Use :c:func:`PyConfig_Get(\"base_exec_prefix\") " "` (:data:`sys.base_exec_prefix`) instead. Use :c:func:" @@ -4785,170 +4801,170 @@ msgid "" "ref:`virtual environments ` need to be handled." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:39 +#: deprecations/c-api-pending-removal-in-3.15.rst:38 msgid "" ":c:func:`Py_GetProgramFullPath`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:42 +#: deprecations/c-api-pending-removal-in-3.15.rst:41 msgid "" ":c:func:`Py_GetProgramName`: Use :c:func:`PyConfig_Get(\"executable\") " "` (:data:`sys.executable`) instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:45 +#: deprecations/c-api-pending-removal-in-3.15.rst:44 msgid "" ":c:func:`Py_GetPythonHome`: Use :c:func:`PyConfig_Get(\"home\") " "` or the :envvar:`PYTHONHOME` environment variable instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:49 +#: deprecations/c-api-pending-removal-in-3.15.rst:48 msgid "" "The `pythoncapi-compat project `__ can be used to get :c:func:`PyConfig_Get` on Python 3.13 and older." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:53 +#: deprecations/c-api-pending-removal-in-3.15.rst:52 msgid "" "Functions to configure Python's initialization, deprecated in Python 3.11:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:55 +#: deprecations/c-api-pending-removal-in-3.15.rst:54 msgid ":c:func:`!PySys_SetArgvEx()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:57 +#: deprecations/c-api-pending-removal-in-3.15.rst:56 msgid ":c:func:`!PySys_SetArgv()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:59 +#: deprecations/c-api-pending-removal-in-3.15.rst:58 msgid "" ":c:func:`!Py_SetProgramName()`: Set :c:member:`PyConfig.program_name` " "instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:61 +#: deprecations/c-api-pending-removal-in-3.15.rst:60 msgid ":c:func:`!Py_SetPythonHome()`: Set :c:member:`PyConfig.home` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:66 +#: deprecations/c-api-pending-removal-in-3.15.rst:65 msgid "" "The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" "`PyConfig` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:69 +#: deprecations/c-api-pending-removal-in-3.15.rst:68 msgid "Global configuration variables:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:71 +#: deprecations/c-api-pending-removal-in-3.15.rst:70 msgid "" ":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` or :c:func:" "`PyConfig_Get(\"parser_debug\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:74 +#: deprecations/c-api-pending-removal-in-3.15.rst:73 msgid "" ":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` or :c:func:" "`PyConfig_Get(\"verbose\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:77 +#: deprecations/c-api-pending-removal-in-3.15.rst:76 msgid "" ":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` or :c:func:" "`PyConfig_Get(\"quiet\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:80 +#: deprecations/c-api-pending-removal-in-3.15.rst:79 msgid "" ":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` or :c:func:" "`PyConfig_Get(\"interactive\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:83 +#: deprecations/c-api-pending-removal-in-3.15.rst:82 msgid "" ":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` or :c:func:" "`PyConfig_Get(\"inspect\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:86 +#: deprecations/c-api-pending-removal-in-3.15.rst:85 msgid "" ":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` or :c:" "func:`PyConfig_Get(\"optimization_level\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:89 +#: deprecations/c-api-pending-removal-in-3.15.rst:88 msgid "" ":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` or :c:func:" "`PyConfig_Get(\"site_import\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:92 +#: deprecations/c-api-pending-removal-in-3.15.rst:91 msgid "" ":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` or :c:" "func:`PyConfig_Get(\"bytes_warning\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:95 +#: deprecations/c-api-pending-removal-in-3.15.rst:94 msgid "" ":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` or :c:" "func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:98 +#: deprecations/c-api-pending-removal-in-3.15.rst:97 msgid "" ":c:var:`Py_IgnoreEnvironmentFlag`: Use :c:member:`PyConfig.use_environment` " "or :c:func:`PyConfig_Get(\"use_environment\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:101 +#: deprecations/c-api-pending-removal-in-3.15.rst:100 msgid "" ":c:var:`Py_DontWriteBytecodeFlag`: Use :c:member:`PyConfig.write_bytecode` " "or :c:func:`PyConfig_Get(\"write_bytecode\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:104 +#: deprecations/c-api-pending-removal-in-3.15.rst:103 msgid "" ":c:var:`Py_NoUserSiteDirectory`: Use :c:member:`PyConfig." "user_site_directory` or :c:func:`PyConfig_Get(\"user_site_directory\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:107 +#: deprecations/c-api-pending-removal-in-3.15.rst:106 msgid "" ":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` or :" "c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:110 +#: deprecations/c-api-pending-removal-in-3.15.rst:109 msgid "" ":c:var:`Py_HashRandomizationFlag`: Use :c:member:`PyConfig.use_hash_seed` " "and :c:member:`PyConfig.hash_seed` or :c:func:`PyConfig_Get(\"hash_seed\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:114 +#: deprecations/c-api-pending-removal-in-3.15.rst:113 msgid "" ":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` or :c:func:" "`PyConfig_Get(\"isolated\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:117 +#: deprecations/c-api-pending-removal-in-3.15.rst:116 msgid "" ":c:var:`Py_LegacyWindowsFSEncodingFlag`: Use :c:member:`PyPreConfig." "legacy_windows_fs_encoding` or :c:func:" "`PyConfig_Get(\"legacy_windows_fs_encoding\") ` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:120 +#: deprecations/c-api-pending-removal-in-3.15.rst:119 msgid "" ":c:var:`Py_LegacyWindowsStdioFlag`: Use :c:member:`PyConfig." "legacy_windows_stdio` or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:123 +#: deprecations/c-api-pending-removal-in-3.15.rst:122 msgid "" ":c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!" "Py_HasFileSystemDefaultEncoding`: Use :c:member:`PyConfig." @@ -4956,104 +4972,110 @@ msgid "" "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:126 +#: deprecations/c-api-pending-removal-in-3.15.rst:125 msgid "" ":c:var:`!Py_FileSystemDefaultEncodeErrors`: Use :c:member:`PyConfig." "filesystem_errors` or :c:func:`PyConfig_Get(\"filesystem_errors\") " "` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:129 +#: deprecations/c-api-pending-removal-in-3.15.rst:128 msgid "" ":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` or :c:func:" "`PyConfig_Get(\"utf8_mode\") ` instead. (see :c:func:" "`Py_PreInitialize`)" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:134 +#: deprecations/c-api-pending-removal-in-3.15.rst:133 msgid "" "The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" "`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can be used to " "get these options at runtime." msgstr "" +#: deprecations/c-api-pending-removal-in-3.16.rst:4 +msgid "The bundled copy of ``libmpdec``." +msgstr "" + #: deprecations/c-api-pending-removal-in-3.18.rst:2 msgid "Pending removal in Python 3.18" msgstr "" #: deprecations/c-api-pending-removal-in-3.18.rst:4 -msgid "Deprecated private functions (:gh:`128863`):" +msgid "" +"The following private functions are deprecated and planned for removal in " +"Python 3.18:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:6 +#: deprecations/c-api-pending-removal-in-3.18.rst:7 msgid ":c:func:`!_PyBytes_Join`: use :c:func:`PyBytes_Join`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:7 +#: deprecations/c-api-pending-removal-in-3.18.rst:8 msgid "" ":c:func:`!_PyDict_GetItemStringWithError`: use :c:func:" "`PyDict_GetItemStringRef`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:8 -msgid ":c:func:`!_PyDict_Pop()`: :c:func:`PyDict_Pop`." +#: deprecations/c-api-pending-removal-in-3.18.rst:9 +msgid ":c:func:`!_PyDict_Pop()`: use :c:func:`PyDict_Pop`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:9 +#: deprecations/c-api-pending-removal-in-3.18.rst:10 msgid ":c:func:`!_PyLong_Sign()`: use :c:func:`PyLong_GetSign`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:10 +#: deprecations/c-api-pending-removal-in-3.18.rst:11 msgid "" ":c:func:`!_PyLong_FromDigits` and :c:func:`!_PyLong_New`: use :c:func:" "`PyLongWriter_Create`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:12 +#: deprecations/c-api-pending-removal-in-3.18.rst:13 msgid "" ":c:func:`!_PyThreadState_UncheckedGet`: use :c:func:" "`PyThreadState_GetUnchecked`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:13 +#: deprecations/c-api-pending-removal-in-3.18.rst:14 msgid ":c:func:`!_PyUnicode_AsString`: use :c:func:`PyUnicode_AsUTF8`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:14 +#: deprecations/c-api-pending-removal-in-3.18.rst:15 msgid "" ":c:func:`!_PyUnicodeWriter_Init`: replace ``_PyUnicodeWriter_Init(&writer)`` " "with :c:func:`writer = PyUnicodeWriter_Create(0) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:17 +#: deprecations/c-api-pending-removal-in-3.18.rst:18 msgid "" ":c:func:`!_PyUnicodeWriter_Finish`: replace " "``_PyUnicodeWriter_Finish(&writer)`` with :c:func:" "`PyUnicodeWriter_Finish(writer) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:20 +#: deprecations/c-api-pending-removal-in-3.18.rst:21 msgid "" ":c:func:`!_PyUnicodeWriter_Dealloc`: replace " "``_PyUnicodeWriter_Dealloc(&writer)`` with :c:func:" "`PyUnicodeWriter_Discard(writer) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:23 +#: deprecations/c-api-pending-removal-in-3.18.rst:24 msgid "" ":c:func:`!_PyUnicodeWriter_WriteChar`: replace " "``_PyUnicodeWriter_WriteChar(&writer, ch)`` with :c:func:" "`PyUnicodeWriter_WriteChar(writer, ch) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:26 +#: deprecations/c-api-pending-removal-in-3.18.rst:27 msgid "" ":c:func:`!_PyUnicodeWriter_WriteStr`: replace " "``_PyUnicodeWriter_WriteStr(&writer, str)`` with :c:func:" "`PyUnicodeWriter_WriteStr(writer, str) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:29 +#: deprecations/c-api-pending-removal-in-3.18.rst:30 msgid "" ":c:func:`!_PyUnicodeWriter_WriteSubstring`: replace " "``_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)`` with :c:func:" @@ -5061,40 +5083,41 @@ msgid "" "`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:32 +#: deprecations/c-api-pending-removal-in-3.18.rst:33 msgid "" ":c:func:`!_PyUnicodeWriter_WriteASCIIString`: replace " "``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` with :c:func:" -"`PyUnicodeWriter_WriteUTF8(writer, str) `." +"`PyUnicodeWriter_WriteASCII(writer, str) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:35 +#: deprecations/c-api-pending-removal-in-3.18.rst:36 msgid "" ":c:func:`!_PyUnicodeWriter_WriteLatin1String`: replace " "``_PyUnicodeWriter_WriteLatin1String(&writer, str)`` with :c:func:" "`PyUnicodeWriter_WriteUTF8(writer, str) `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:38 +#: deprecations/c-api-pending-removal-in-3.18.rst:39 msgid ":c:func:`!_PyUnicodeWriter_Prepare`: (no replacement)." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:39 +#: deprecations/c-api-pending-removal-in-3.18.rst:40 msgid ":c:func:`!_PyUnicodeWriter_PrepareKind`: (no replacement)." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:40 +#: deprecations/c-api-pending-removal-in-3.18.rst:41 msgid ":c:func:`!_Py_HashPointer`: use :c:func:`Py_HashPointer`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:41 +#: deprecations/c-api-pending-removal-in-3.18.rst:42 msgid ":c:func:`!_Py_fopen_obj`: use :c:func:`Py_fopen`." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:43 +#: deprecations/c-api-pending-removal-in-3.18.rst:44 msgid "" "The `pythoncapi-compat project `__ can be used to get these new public functions on Python 3.13 and older." +">`__ can be used to get these new public functions on Python 3.13 and older. " +"(Contributed by Victor Stinner in :gh:`128863`.)" msgstr "" #: deprecations/c-api-pending-removal-in-future.rst:4 @@ -5251,8 +5274,7 @@ msgstr "" #: whatsnew/3.13.rst:2594 msgid "" "The :file:`configure` option :option:`--with-system-libmpdec` now defaults " -"to ``yes``. The bundled copy of ``libmpdecimal`` will be removed in Python " -"3.15." +"to ``yes``. The bundled copy of ``libmpdec`` will be removed in Python 3.16." msgstr "" #: whatsnew/3.13.rst:2598 diff --git a/whatsnew/3.14.po b/whatsnew/3.14.po index 053d7b97..8e36e955 100644 --- a/whatsnew/3.14.po +++ b/whatsnew/3.14.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,498 +17,582 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: whatsnew/3.14.rst:3 +#: whatsnew/3.14.rst:4 msgid "What's new in Python 3.14" msgstr "" #: whatsnew/3.14.rst:0 -msgid "Editor" +msgid "Editors" msgstr "" -#: whatsnew/3.14.rst:5 -msgid "Hugo van Kemenade" +#: whatsnew/3.14.rst:6 +msgid "Adam Turner and Hugo van Kemenade" msgstr "" -#: whatsnew/3.14.rst:47 +#: whatsnew/3.14.rst:48 msgid "" -"This article explains the new features in Python 3.14, compared to 3.13." +"This article explains the new features in Python 3.14, compared to 3.13. " +"Python 3.14 was released on 7 October 2025. For full details, see the :ref:" +"`changelog `." msgstr "" -#: whatsnew/3.14.rst:49 -msgid "For full details, see the :ref:`changelog `." +#: whatsnew/3.14.rst:54 +msgid ":pep:`745` -- Python 3.14 release schedule" msgstr "" -#: whatsnew/3.14.rst:53 -msgid ":pep:`745` -- Python 3.14 release schedule" +#: whatsnew/3.14.rst:58 +msgid "Summary -- Release highlights" msgstr "" -#: whatsnew/3.14.rst:57 +#: whatsnew/3.14.rst:63 msgid "" -"Prerelease users should be aware that this document is currently in draft " -"form. It will be updated substantially as Python 3.14 moves towards release, " -"so it's worth checking back even after reading earlier versions." +"Python 3.14 is the latest stable release of the Python programming language, " +"with a mix of changes to the language, the implementation, and the standard " +"library. The biggest changes include :ref:`template string literals " +"`, :ref:`deferred evaluation of " +"annotations `, and support for :ref:" +"`subinterpreters ` in the standard " +"library." msgstr "" -#: whatsnew/3.14.rst:63 -msgid "Summary -- release highlights" +#: whatsnew/3.14.rst:72 +msgid "" +"The library changes include significantly improved capabilities for :ref:" +"`introspection in asyncio `, :ref:" +"`support for Zstandard ` via a new :mod:`compression." +"zstd` module, syntax highlighting in the REPL, as well as the usual " +"deprecations and removals, and improvements in user-friendliness and " +"correctness." msgstr "" -#: whatsnew/3.14.rst:68 +#: whatsnew/3.14.rst:79 msgid "" -"Python 3.14 beta is the pre-release of the next version of the Python " -"programming language, with a mix of changes to the language, the " -"implementation and the standard library." +"This article doesn't attempt to provide a complete specification of all new " +"features, but instead gives a convenient overview. For full details refer to " +"the documentation, such as the :ref:`Library Reference ` and :" +"ref:`Language Reference `. To understand the complete " +"implementation and design rationale for a change, refer to the PEP for a " +"particular new feature; but note that PEPs usually are not kept up-to-date " +"once a feature has been fully implemented. See `Porting to Python 3.14`_ for " +"guidance on upgrading from earlier versions of Python." msgstr "" -#: whatsnew/3.14.rst:72 +#: whatsnew/3.14.rst:95 +msgid "Interpreter improvements:" +msgstr "" + +#: whatsnew/3.14.rst:97 msgid "" -"The biggest changes to the implementation include template strings (:pep:" -"`750`), deferred evaluation of annotations (:pep:`649`), and a new type of " -"interpreter that uses tail calls." +":pep:`649` and :pep:`749`: :ref:`Deferred evaluation of annotations " +"`" msgstr "" -#: whatsnew/3.14.rst:76 +#: whatsnew/3.14.rst:99 msgid "" -"The library changes include the addition of a new :mod:`!annotationlib` " -"module for introspecting and wrapping annotations (:pep:`749`), a new :mod:`!" -"compression.zstd` module for Zstandard support (:pep:`784`), plus syntax " -"highlighting in the REPL, as well as the usual deprecations and removals, " -"and improvements in user-friendliness and correctness." +":pep:`734`: :ref:`Multiple interpreters in the standard library `" msgstr "" -#: whatsnew/3.14.rst:85 +#: whatsnew/3.14.rst:101 msgid "" -":ref:`PEP 779: Free-threaded Python is officially supported `" +":pep:`750`: :ref:`Template strings `" msgstr "" -#: whatsnew/3.14.rst:86 +#: whatsnew/3.14.rst:102 msgid "" -":ref:`PEP 649 and 749: deferred evaluation of annotations `" +":pep:`758`: :ref:`Allow except and except* expressions without brackets " +"`" msgstr "" -#: whatsnew/3.14.rst:87 +#: whatsnew/3.14.rst:104 msgid "" -":ref:`PEP 734: Multiple interpreters in the stdlib `" +":pep:`765`: :ref:`Control flow in finally blocks `" msgstr "" -#: whatsnew/3.14.rst:88 -msgid ":ref:`PEP 741: Python configuration C API `" +#: whatsnew/3.14.rst:106 +msgid "" +":pep:`768`: :ref:`Safe external debugger interface for CPython `" msgstr "" -#: whatsnew/3.14.rst:89 -msgid ":ref:`PEP 750: Template strings `" +#: whatsnew/3.14.rst:108 +msgid ":ref:`A new type of interpreter `" msgstr "" -#: whatsnew/3.14.rst:90 +#: whatsnew/3.14.rst:109 msgid "" -":ref:`PEP 758: Allow except and except* expressions without parentheses " -"`" +":ref:`Free-threaded mode improvements `" msgstr "" -#: whatsnew/3.14.rst:91 -msgid ":ref:`PEP 761: Discontinuation of PGP signatures `" +#: whatsnew/3.14.rst:110 +msgid ":ref:`Improved error messages `" msgstr "" -#: whatsnew/3.14.rst:92 -msgid "" -":ref:`PEP 765: Disallow return/break/continue that exit a finally block " -"`" +#: whatsnew/3.14.rst:111 +msgid ":ref:`Incremental garbage collection `" msgstr "" -#: whatsnew/3.14.rst:93 -msgid "" -":ref:`Free-threaded mode improvements `" +#: whatsnew/3.14.rst:113 +msgid "Significant improvements in the standard library:" msgstr "" -#: whatsnew/3.14.rst:94 +#: whatsnew/3.14.rst:115 msgid "" -":ref:`PEP 768: Safe external debugger interface for CPython `" +":pep:`784`: :ref:`Zstandard support in the standard library `" msgstr "" -#: whatsnew/3.14.rst:95 -msgid "" -":ref:`PEP 784: Adding Zstandard to the standard library `" +#: whatsnew/3.14.rst:117 +msgid ":ref:`whatsnew314-asyncio-introspection`" msgstr "" -#: whatsnew/3.14.rst:96 -msgid ":ref:`A new type of interpreter `" +#: whatsnew/3.14.rst:118 +msgid ":ref:`whatsnew314-concurrent-warnings-control`" msgstr "" -#: whatsnew/3.14.rst:97 +#: whatsnew/3.14.rst:119 msgid "" -":ref:`Syntax highlighting in PyREPL `, and " -"color output in :ref:`unittest `, :ref:`argparse " -"`, :ref:`json ` and :ref:" -"`calendar ` CLIs" +":ref:`Syntax highlighting in the default interactive shell `, and color output in several standard library CLIs" msgstr "" -#: whatsnew/3.14.rst:102 +#: whatsnew/3.14.rst:123 +msgid "C API improvements:" +msgstr "" + +#: whatsnew/3.14.rst:125 +msgid ":pep:`741`: :ref:`Python configuration C API `" +msgstr "" + +#: whatsnew/3.14.rst:127 +msgid "Platform support:" +msgstr "" + +#: whatsnew/3.14.rst:129 msgid "" -":ref:`Binary releases for the experimental just-in-time compiler " -"`" +":pep:`776`: Emscripten is now an :ref:`officially supported platform " +"`, at :pep:`tier 3 <11#tier-3>`." msgstr "" -#: whatsnew/3.14.rst:106 -msgid "Incompatible changes" +#: whatsnew/3.14.rst:132 +msgid "Release changes:" msgstr "" -#: whatsnew/3.14.rst:108 +#: whatsnew/3.14.rst:134 msgid "" -"On platforms other than macOS and Windows, the default :ref:`start method " -"` for :mod:`multiprocessing` and :class:" -"`~concurrent.futures.ProcessPoolExecutor` switches from *fork* to " -"*forkserver*." +":pep:`779`: :ref:`Free-threaded Python is officially supported `" msgstr "" -#: whatsnew/3.14.rst:113 +#: whatsnew/3.14.rst:136 msgid "" -"See :ref:`(1) ` and :ref:`(2) " -"` for details." +":pep:`761`: :ref:`PGP signatures have been discontinued for official " +"releases `" msgstr "" -#: whatsnew/3.14.rst:116 +#: whatsnew/3.14.rst:138 msgid "" -"If you encounter :exc:`NameError`\\s or pickling errors coming out of :mod:" -"`multiprocessing` or :mod:`concurrent.futures`, see the :ref:`forkserver " -"restrictions `." +":ref:`Windows and macOS binary releases now support the experimental just-in-" +"time compiler `" msgstr "" -#: whatsnew/3.14.rst:120 +#: whatsnew/3.14.rst:140 msgid "" -"The interpreter avoids some reference count modifications internally when " -"it's safe to do so. This can lead to different values returned from :func:" -"`sys.getrefcount` and :c:func:`Py_REFCNT` compared to previous versions of " -"Python. See :ref:`below ` for details." +":ref:`Binary releases for Android are now provided `" msgstr "" -#: whatsnew/3.14.rst:2722 +#: whatsnew/3.14.rst:144 msgid "New features" msgstr "" -#: whatsnew/3.14.rst:131 -msgid "PEP 779: Free-threaded Python is officially supported" +#: whatsnew/3.14.rst:149 +msgid ":pep:`649` & :pep:`749`: Deferred evaluation of annotations" msgstr "" -#: whatsnew/3.14.rst:133 +#: whatsnew/3.14.rst:151 msgid "" -"The free-threaded build of Python is now supported and no longer " -"experimental. This is the start of phase II where free-threaded Python is " -"officially supported but still optional." +"The :term:`annotations ` on functions, classes, and modules are " +"no longer evaluated eagerly. Instead, annotations are stored in special-" +"purpose :term:`annotate functions ` and evaluated only " +"when necessary (except if ``from __future__ import annotations`` is used)." msgstr "" -#: whatsnew/3.14.rst:137 +#: whatsnew/3.14.rst:156 msgid "" -"We are confident that the project is on the right path, and we appreciate " -"the continued dedication from everyone working to make free-threading ready " -"for broader adoption across the Python community." +"This change is designed to improve performance and usability of annotations " +"in Python in most circumstances. The runtime cost for defining annotations " +"is minimized, but it remains possible to introspect annotations at runtime. " +"It is no longer necessary to enclose annotations in strings if they contain " +"forward references." msgstr "" -#: whatsnew/3.14.rst:141 +#: whatsnew/3.14.rst:162 msgid "" -"With these recommendations and the acceptance of this PEP, we as the Python " -"developer community should broadly advertise that free-threading is a " -"supported Python build option now and into the future, and that it will not " -"be removed without a proper deprecation schedule." +"The new :mod:`annotationlib` module provides tools for inspecting deferred " +"annotations. Annotations may be evaluated in the :attr:`~annotationlib." +"Format.VALUE` format (which evaluates annotations to runtime values, similar " +"to the behavior in earlier Python versions), the :attr:`~annotationlib." +"Format.FORWARDREF` format (which replaces undefined names with special " +"markers), and the :attr:`~annotationlib.Format.STRING` format (which returns " +"annotations as strings)." +msgstr "" + +#: whatsnew/3.14.rst:169 +msgid "This example shows how these formats behave:" +msgstr "" + +#: whatsnew/3.14.rst:171 +msgid "" +">>> from annotationlib import get_annotations, Format\n" +">>> def func(arg: Undefined):\n" +"... pass\n" +">>> get_annotations(func, format=Format.VALUE)\n" +"Traceback (most recent call last):\n" +" ...\n" +"NameError: name 'Undefined' is not defined\n" +">>> get_annotations(func, format=Format.FORWARDREF)\n" +"{'arg': ForwardRef('Undefined', owner=)}\n" +">>> get_annotations(func, format=Format.STRING)\n" +"{'arg': 'Undefined'}" msgstr "" -#: whatsnew/3.14.rst:146 +#: whatsnew/3.14.rst:185 msgid "" -"Any decision to transition to phase III, with free-threading as the default " -"or sole build of Python is still undecided, and dependent on many factors " -"both within CPython itself and the community. This decision is for the " -"future." +"The :ref:`porting ` section contains " +"guidance on changes that may be needed due to these changes, though in the " +"majority of cases, code will continue working as-is." msgstr "" -#: whatsnew/3.14.rst:151 +#: whatsnew/3.14.rst:189 msgid "" -":pep:`779` and its `acceptance `__." +"(Contributed by Jelle Zijlstra in :pep:`749` and :gh:`119180`; :pep:`649` " +"was written by Larry Hastings.)" +msgstr "" + +#: whatsnew/3.14.rst:194 +msgid ":pep:`649`" +msgstr "" + +#: whatsnew/3.14.rst:195 +msgid "Deferred Evaluation Of Annotations Using Descriptors" msgstr "" -#: whatsnew/3.14.rst:157 -msgid "PEP 734: Multiple interpreters in the stdlib" +#: whatsnew/3.14.rst:196 +msgid ":pep:`749`" msgstr "" -#: whatsnew/3.14.rst:159 +#: whatsnew/3.14.rst:197 +msgid "Implementing PEP 649" +msgstr "" + +#: whatsnew/3.14.rst:203 +msgid ":pep:`734`: Multiple interpreters in the standard library" +msgstr "" + +#: whatsnew/3.14.rst:205 msgid "" "The CPython runtime supports running multiple copies of Python in the same " "process simultaneously and has done so for over 20 years. Each of these " -"separate copies is called an \"interpreter\". However, the feature had been " -"available only through the C-API." +"separate copies is called an 'interpreter'. However, the feature had been " +"available only through the :ref:`C-API `." msgstr "" -#: whatsnew/3.14.rst:164 +#: whatsnew/3.14.rst:211 msgid "" -"That limitation is removed in the 3.14 release, with the new :mod:" -"`concurrent.interpreters` module." +"That limitation is removed in Python 3.14, with the new :mod:`concurrent." +"interpreters` module." msgstr "" -#: whatsnew/3.14.rst:167 +#: whatsnew/3.14.rst:214 msgid "" -"There are at least two notable reasons why using multiple interpreters is " -"worth considering:" +"There are at least two notable reasons why using multiple interpreters has " +"significant benefits:" msgstr "" -#: whatsnew/3.14.rst:170 +#: whatsnew/3.14.rst:217 msgid "they support a new (to Python), human-friendly concurrency model" msgstr "" -#: whatsnew/3.14.rst:171 +#: whatsnew/3.14.rst:218 msgid "true multi-core parallelism" msgstr "" -#: whatsnew/3.14.rst:173 +#: whatsnew/3.14.rst:220 msgid "" -"For some use cases, concurrency in software enables efficiency and can " -"simplify software, at a high level. At the same time, implementing and " +"For some use cases, concurrency in software improves efficiency and can " +"simplify design, at a high level. At the same time, implementing and " "maintaining all but the simplest concurrency is often a struggle for the " -"human brain. That especially applies to plain threads (for example, :mod:" +"human brain. That especially applies to plain threads (for example, :mod:" "`threading`), where all memory is shared between all threads." msgstr "" -#: whatsnew/3.14.rst:179 +#: whatsnew/3.14.rst:227 msgid "" "With multiple isolated interpreters, you can take advantage of a class of " -"concurrency models, like CSP or the actor model, that have found success in " -"other programming languages, like Smalltalk, Erlang, Haskell, and Go. Think " -"of multiple interpreters like threads but with opt-in sharing." +"concurrency models, like Communicating Sequential Processes (CSP) or the " +"actor model, that have found success in other programming languages, like " +"Smalltalk, Erlang, Haskell, and Go. Think of multiple interpreters as " +"threads but with opt-in sharing." msgstr "" -#: whatsnew/3.14.rst:185 +#: whatsnew/3.14.rst:234 msgid "" -"Regarding multi-core parallelism: as of the 3.12 release, interpreters are " -"now sufficiently isolated from one another to be used in parallel. (See :pep:" -"`684`.) This unlocks a variety of CPU-intensive use cases for Python that " +"Regarding multi-core parallelism: as of Python 3.12, interpreters are now " +"sufficiently isolated from one another to be used in parallel (see :pep:" +"`684`). This unlocks a variety of CPU-intensive use cases for Python that " "were limited by the :term:`GIL`." msgstr "" -#: whatsnew/3.14.rst:190 +#: whatsnew/3.14.rst:239 msgid "" "Using multiple interpreters is similar in many ways to :mod:" "`multiprocessing`, in that they both provide isolated logical \"processes\" " "that can run in parallel, with no sharing by default. However, when using " "multiple interpreters, an application will use fewer system resources and " -"will operate more efficiently (since it stays within the same process). " +"will operate more efficiently (since it stays within the same process). " "Think of multiple interpreters as having the isolation of processes with the " "efficiency of threads." msgstr "" -#: whatsnew/3.14.rst:201 +#: whatsnew/3.14.rst:250 msgid "" "While the feature has been around for decades, multiple interpreters have " -"not been used widely, due to low awareness and the lack of a stdlib module. " -"Consequently, they currently have several notable limitations, which will " -"improve significantly now that the feature is finally going mainstream." +"not been used widely, due to low awareness and the lack of a standard " +"library module. Consequently, they currently have several notable " +"limitations, which are expected to improve significantly now that the " +"feature is going mainstream." msgstr "" -#: whatsnew/3.14.rst:207 +#: whatsnew/3.14.rst:256 msgid "Current limitations:" msgstr "" -#: whatsnew/3.14.rst:209 +#: whatsnew/3.14.rst:258 msgid "starting each interpreter has not been optimized yet" msgstr "" -#: whatsnew/3.14.rst:210 +#: whatsnew/3.14.rst:259 msgid "" -"each interpreter uses more memory than necessary (we will be working next on " +"each interpreter uses more memory than necessary (work continues on " "extensive internal sharing between interpreters)" msgstr "" -#: whatsnew/3.14.rst:213 +#: whatsnew/3.14.rst:261 msgid "" "there aren't many options *yet* for truly sharing objects or other data " "between interpreters (other than :type:`memoryview`)" msgstr "" -#: whatsnew/3.14.rst:215 +#: whatsnew/3.14.rst:263 msgid "" -"many extension modules on PyPI are not compatible with multiple interpreters " -"yet (stdlib extension modules *are* compatible)" +"many third-party extension modules on PyPI are not yet compatible with " +"multiple interpreters (all standard library extension modules *are* " +"compatible)" msgstr "" -#: whatsnew/3.14.rst:217 +#: whatsnew/3.14.rst:266 msgid "" "the approach to writing applications that use multiple isolated interpreters " "is mostly unfamiliar to Python users, for now" msgstr "" -#: whatsnew/3.14.rst:220 +#: whatsnew/3.14.rst:269 msgid "" "The impact of these limitations will depend on future CPython improvements, " "how interpreters are used, and what the community solves through PyPI " -"packages. Depending on the use case, the limitations may not have much " +"packages. Depending on the use case, the limitations may not have much " "impact, so try it out!" msgstr "" -#: whatsnew/3.14.rst:225 +#: whatsnew/3.14.rst:274 msgid "" "Furthermore, future CPython releases will reduce or eliminate overhead and " -"provide utilities that are less appropriate on PyPI. In the meantime, most " +"provide utilities that are less appropriate on PyPI. In the meantime, most " "of the limitations can also be addressed through extension modules, meaning " "PyPI packages can fill any gap for 3.14, and even back to 3.12 where " "interpreters were finally properly isolated and stopped sharing the :term:" -"`GIL`. Likewise, we expect to slowly see libraries on PyPI for high-level " +"`GIL`. Likewise, libraries on PyPI are expected to emerge for high-level " "abstractions on top of interpreters." msgstr "" -#: whatsnew/3.14.rst:233 +#: whatsnew/3.14.rst:282 msgid "" "Regarding extension modules, work is in progress to update some PyPI " "projects, as well as tools like Cython, pybind11, nanobind, and PyO3. The " "steps for isolating an extension module are found at :ref:`isolating-" -"extensions-howto`. Isolating a module has a lot of overlap with what is " +"extensions-howto`. Isolating a module has a lot of overlap with what is " "required to support :ref:`free-threading `, so the ongoing work in the community in that area will help " "accelerate support for multiple interpreters." msgstr "" -#: whatsnew/3.14.rst:242 +#: whatsnew/3.14.rst:291 msgid "" "Also added in 3.14: :ref:`concurrent.futures.InterpreterPoolExecutor " "`." msgstr "" -#: whatsnew/3.14.rst:246 -msgid ":pep:`734`." +#: whatsnew/3.14.rst:294 +msgid "(Contributed by Eric Snow in :gh:`134939`.)" msgstr "" -#: whatsnew/3.14.rst:252 -msgid "PEP 750: Template strings" +#: whatsnew/3.14.rst:296 +msgid ":pep:`734`" msgstr "" -#: whatsnew/3.14.rst:254 +#: whatsnew/3.14.rst:302 +msgid ":pep:`750`: Template string literals" +msgstr "" + +#: whatsnew/3.14.rst:304 msgid "" -"Template string literals (t-strings) are a generalization of f-strings, " -"using a ``t`` in place of the ``f`` prefix. Instead of evaluating to :class:" -"`str`, t-strings evaluate to a new :class:`!string.templatelib.Template` " -"type:" +"Template strings are a new mechanism for custom string processing. They " +"share the familiar syntax of f-strings but, unlike f-strings, return an " +"object representing the static and interpolated parts of the string, instead " +"of a simple :class:`str`." msgstr "" -#: whatsnew/3.14.rst:258 +#: whatsnew/3.14.rst:309 +msgid "To write a t-string, use a ``'t'`` prefix instead of an ``'f'``:" +msgstr "" + +#: whatsnew/3.14.rst:311 msgid "" -"from string.templatelib import Template\n" -"\n" -"name = \"World\"\n" -"template: Template = t\"Hello {name}\"" +">>> variety = 'Stilton'\n" +">>> template = t'Try some {variety} cheese!'\n" +">>> type(template)\n" +"" msgstr "" -#: whatsnew/3.14.rst:265 +#: whatsnew/3.14.rst:318 msgid "" -"The template can then be combined with functions that operate on the " -"template's structure to produce a :class:`str` or a string-like result. For " -"example, sanitizing input:" +":class:`~string.templatelib.Template` objects provide access to the static " +"and interpolated (in curly braces) parts of a string *before* they are " +"combined. Iterate over :class:`!Template` instances to access their parts in " +"order:" msgstr "" -#: whatsnew/3.14.rst:269 +#: whatsnew/3.14.rst:327 msgid "" -"evil = \"\"\n" -"template = t\"

{evil}

\"\n" -"assert html(template) == \"

<script>alert('evil')</script>\"" +">>> list(template)\n" +"['Try some ', Interpolation('Stilton', 'variety', None, ''), ' cheese!']" msgstr "" -#: whatsnew/3.14.rst:275 -msgid "As another example, generating HTML attributes from data:" +#: whatsnew/3.14.rst:332 +msgid "" +"It's easy to write (or call) code to process :class:`!Template` instances. " +"For example, here's a function that renders static parts lowercase and :" +"class:`~string.templatelib.Interpolation` instances uppercase:" msgstr "" -#: whatsnew/3.14.rst:277 +#: whatsnew/3.14.rst:336 msgid "" -"attributes = {\"src\": \"shrubbery.jpg\", \"alt\": \"looks nice\"}\n" -"template = t\"\"\n" -"assert html(template) == '\"looks'" +"from string.templatelib import Interpolation\n" +"\n" +"def lower_upper(template):\n" +" \"\"\"Render static parts lowercase and interpolations uppercase.\"\"\"\n" +" parts = []\n" +" for part in template:\n" +" if isinstance(part, Interpolation):\n" +" parts.append(str(part.value).upper())\n" +" else:\n" +" parts.append(part.lower())\n" +" return ''.join(parts)\n" +"\n" +"name = 'Wenslydale'\n" +"template = t'Mister {name}'\n" +"assert lower_upper(template) == 'mister WENSLYDALE'" msgstr "" -#: whatsnew/3.14.rst:283 +#: whatsnew/3.14.rst:354 msgid "" -"Compared to using an f-string, the ``html`` function has access to template " -"attributes containing the original information: static strings, " -"interpolations, and values from the original scope. Unlike existing " -"templating approaches, t-strings build from the well-known f-string syntax " -"and rules. Template systems thus benefit from Python tooling as they are " -"much closer to the Python language, syntax, scoping, and more." +"Because :class:`!Template` instances distinguish between static strings and " +"interpolations at runtime, they can be useful for sanitising user input. " +"Writing a :func:`!html` function that escapes user input in HTML is an " +"exercise left to the reader! Template processing code can provide improved " +"flexibility. For instance, a more advanced :func:`!html` function could " +"accept a :class:`!dict` of HTML attributes directly in the template:" msgstr "" -#: whatsnew/3.14.rst:290 -msgid "Writing template handlers is straightforward:" +#: whatsnew/3.14.rst:362 +msgid "" +"attributes = {'src': 'limburger.jpg', 'alt': 'lovely cheese'}\n" +"template = t''\n" +"assert html(template) == '\"lovely'" msgstr "" -#: whatsnew/3.14.rst:292 +#: whatsnew/3.14.rst:368 msgid "" -"from string.templatelib import Template, Interpolation\n" -"\n" -"def lower_upper(template: Template) -> str:\n" -" \"\"\"Render static parts lowercased and interpolations uppercased." -"\"\"\"\n" -" parts: list[str] = []\n" -" for item in template:\n" -" if isinstance(item, Interpolation):\n" -" parts.append(str(item.value).upper())\n" -" else:\n" -" parts.append(item.lower())\n" -" return \"\".join(parts)\n" -"\n" -"name = \"world\"\n" -"assert lower_upper(t\"HELLO {name}\") == \"hello WORLD\"" +"Of course, template processing code does not need to return a string-like " +"result. An even *more* advanced :func:`!html` could return a custom type " +"representing a DOM-like structure." msgstr "" -#: whatsnew/3.14.rst:309 +#: whatsnew/3.14.rst:372 msgid "" -"With this in place, developers can write template systems to sanitize SQL, " +"With t-strings in place, developers can write systems that sanitise SQL, " "make safe shell operations, improve logging, tackle modern ideas in web " -"development (HTML, CSS, and so on), and implement lightweight, custom " +"development (HTML, CSS, and so on), and implement lightweight custom " "business DSLs." msgstr "" -#: whatsnew/3.14.rst:313 +#: whatsnew/3.14.rst:376 msgid "" "(Contributed by Jim Baker, Guido van Rossum, Paul Everitt, Koudai Aono, " "Lysandros Nikolaou, Dave Peck, Adam Turner, Jelle Zijlstra, Bénédikt Tran, " "and Pablo Galindo Salgado in :gh:`132661`.)" msgstr "" -#: whatsnew/3.14.rst:318 +#: whatsnew/3.14.rst:380 msgid ":pep:`750`." msgstr "" -#: whatsnew/3.14.rst:324 -msgid "PEP 768: Safe external debugger interface for CPython" +#: whatsnew/3.14.rst:386 +msgid ":pep:`768`: Safe external debugger interface" msgstr "" -#: whatsnew/3.14.rst:326 +#: whatsnew/3.14.rst:388 msgid "" -":pep:`768` introduces a zero-overhead debugging interface that allows " -"debuggers and profilers to safely attach to running Python processes. This " -"is a significant enhancement to Python's debugging capabilities allowing " -"debuggers to forego unsafe alternatives. See :ref:`below ` for how this feature is leveraged to implement the new :mod:`pdb` " -"module's remote attaching capabilities." +"Python 3.14 introduces a zero-overhead debugging interface that allows " +"debuggers and profilers to safely attach to running Python processes without " +"stopping or restarting them. This is a significant enhancement to Python's " +"debugging capabilities, meaning that unsafe alternatives are no longer " +"required." msgstr "" -#: whatsnew/3.14.rst:332 +#: whatsnew/3.14.rst:394 msgid "" "The new interface provides safe execution points for attaching debugger code " -"without modifying the interpreter's normal execution path or adding runtime " -"overhead. This enables tools to inspect and interact with Python " -"applications in real-time without stopping or restarting them — a crucial " -"capability for high-availability systems and production environments." +"without modifying the interpreter's normal execution path or adding any " +"overhead at runtime. Due to this, tools can now inspect and interact with " +"Python applications in real-time, which is a crucial capability for high-" +"availability systems and production environments." msgstr "" -#: whatsnew/3.14.rst:337 +#: whatsnew/3.14.rst:401 msgid "" -"For convenience, CPython implements this interface through the :mod:`sys` " -"module with a :func:`sys.remote_exec` function::" +"For convenience, this interface is implemented in the :func:`sys." +"remote_exec` function. For example:" msgstr "" -#: whatsnew/3.14.rst:340 -msgid "sys.remote_exec(pid, script_path)" +#: whatsnew/3.14.rst:404 +msgid "" +"import sys\n" +"from tempfile import NamedTemporaryFile\n" +"\n" +"with NamedTemporaryFile(mode='w', suffix='.py', delete=False) as f:\n" +" script_path = f.name\n" +" f.write(f'import my_debugger; my_debugger.connect({os.getpid()})')\n" +"\n" +"# Execute in process with PID 1234\n" +"print('Behold! An offering:')\n" +"sys.remote_exec(1234, script_path)" msgstr "" -#: whatsnew/3.14.rst:342 +#: whatsnew/3.14.rst:418 msgid "" "This function allows sending Python code to be executed in a target process " "at the next safe execution point. However, tool authors can also implement " @@ -516,492 +600,243 @@ msgid "" "mechanisms used to safely attach to running processes." msgstr "" -#: whatsnew/3.14.rst:346 -msgid "" -"Here's a simple example that inspects object types in a running Python " -"process:" -msgstr "" - -#: whatsnew/3.14.rst:348 -msgid "" -"import os\n" -"import sys\n" -"import tempfile\n" -"\n" -"# Create a temporary script\n" -"with tempfile.NamedTemporaryFile(mode='w', suffix='.py', delete=False) as " -"f:\n" -" script_path = f.name\n" -" f.write(f\"import my_debugger; my_debugger.connect({os.getpid()})\")\n" -"try:\n" -" # Execute in process with PID 1234\n" -" print(\"Behold! An offering:\")\n" -" sys.remote_exec(1234, script_path)\n" -"finally:\n" -" os.unlink(script_path)" -msgstr "" - -#: whatsnew/3.14.rst:365 +#: whatsnew/3.14.rst:424 msgid "" "The debugging interface has been carefully designed with security in mind " "and includes several mechanisms to control access:" msgstr "" -#: whatsnew/3.14.rst:368 +#: whatsnew/3.14.rst:427 msgid "A :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` environment variable." msgstr "" -#: whatsnew/3.14.rst:369 +#: whatsnew/3.14.rst:428 msgid "A :option:`-X disable-remote-debug` command-line option." msgstr "" -#: whatsnew/3.14.rst:370 +#: whatsnew/3.14.rst:429 msgid "" "A :option:`--without-remote-debug` configure flag to completely disable the " "feature at build time." msgstr "" -#: whatsnew/3.14.rst:372 -msgid "" -"A key implementation detail is that the interface piggybacks on the " -"interpreter's existing evaluation loop and safe points, ensuring zero " -"overhead during normal execution while providing a reliable way for external " -"processes to coordinate debugging operations." -msgstr "" - -#: whatsnew/3.14.rst:376 +#: whatsnew/3.14.rst:432 msgid "" "(Contributed by Pablo Galindo Salgado, Matt Wozniski, and Ivona Stojanovic " "in :gh:`131591`.)" msgstr "" -#: whatsnew/3.14.rst:453 +#: whatsnew/3.14.rst:435 msgid ":pep:`768`." msgstr "" -#: whatsnew/3.14.rst:385 -msgid "PEP 784: Adding Zstandard to the standard library" +#: whatsnew/3.14.rst:441 +msgid "A new type of interpreter" msgstr "" -#: whatsnew/3.14.rst:387 +#: whatsnew/3.14.rst:443 msgid "" -"The new ``compression`` package contains modules :mod:`!compression.lzma`, :" -"mod:`!compression.bz2`, :mod:`!compression.gzip` and :mod:`!compression." -"zlib` which re-export the :mod:`lzma`, :mod:`bz2`, :mod:`gzip` and :mod:" -"`zlib` modules respectively. The new import names under ``compression`` are " -"the canonical names for importing these compression modules going forward. " -"However, the existing modules names have not been deprecated. Any " -"deprecation or removal of the existing compression modules will occur no " -"sooner than five years after the release of 3.14." +"A new type of interpreter has been added to CPython. It uses tail calls " +"between small C functions that implement individual Python opcodes, rather " +"than one large C ``case`` statement. For certain newer compilers, this " +"interpreter provides significantly better performance. Preliminary " +"benchmarks suggest a geometric mean of 3-5% faster on the standard " +"``pyperformance`` benchmark suite, depending on platform and architecture. " +"The baseline is Python 3.14 built with Clang 19, without this new " +"interpreter." msgstr "" -#: whatsnew/3.14.rst:396 +#: whatsnew/3.14.rst:452 msgid "" -"The new :mod:`!compression.zstd` module provides compression and " -"decompression APIs for the Zstandard format via bindings to `Meta's zstd " -"library `__. Zstandard is a widely " -"adopted, highly efficient, and fast compression format. In addition to the " -"APIs introduced in :mod:`!compression.zstd`, support for reading and writing " -"Zstandard compressed archives has been added to the :mod:`tarfile`, :mod:" -"`zipfile`, and :mod:`shutil` modules." -msgstr "" - -#: whatsnew/3.14.rst:404 -msgid "Here's an example of using the new module to compress some data:" +"This interpreter currently only works with Clang 19 and newer on x86-64 and " +"AArch64 architectures. However, a future release of GCC is expected to " +"support this as well." msgstr "" -#: whatsnew/3.14.rst:406 +#: whatsnew/3.14.rst:456 msgid "" -"from compression import zstd\n" -"import math\n" -"\n" -"data = str(math.pi).encode() * 20\n" -"\n" -"compressed = zstd.compress(data)\n" -"\n" -"ratio = len(compressed) / len(data)\n" -"print(f\"Achieved compression ratio of {ratio}\")" +"This feature is opt-in for now. Enabling profile-guided optimization is " +"highly recommendeded when using the new interpreter as it is the only " +"configuration that has been tested and validated for improved performance. " +"For further information, see :option:`--with-tail-call-interp`." msgstr "" -#: whatsnew/3.14.rst:418 +#: whatsnew/3.14.rst:463 msgid "" -"As can be seen, the API is similar to the APIs of the :mod:`!lzma` and :mod:" -"`!bz2` modules." +"This is not to be confused with `tail call optimization`__ of Python " +"functions, which is currently not implemented in CPython." msgstr "" -#: whatsnew/3.14.rst:421 +#: whatsnew/3.14.rst:466 msgid "" -"(Contributed by Emma Harper Smith, Adam Turner, Gregory P. Smith, Tomas " -"Roun, Victor Stinner, and Rogdham in :gh:`132983`.)" +"This new interpreter type is an internal implementation detail of the " +"CPython interpreter. It doesn't change the visible behavior of Python " +"programs at all. It can improve their performance, but doesn't change " +"anything else." msgstr "" -#: whatsnew/3.14.rst:425 -msgid ":pep:`784`." +#: whatsnew/3.14.rst:472 +msgid "" +"(Contributed by Ken Jin in :gh:`128563`, with ideas on how to implement this " +"in CPython by Mark Shannon, Garrett Gu, Haoran Xu, and Josh Haberman.)" msgstr "" -#: whatsnew/3.14.rst:431 -msgid "Remote attaching to a running Python process with PDB" +#: whatsnew/3.14.rst:479 +msgid "Free-threaded mode improvements" msgstr "" -#: whatsnew/3.14.rst:433 +#: whatsnew/3.14.rst:481 msgid "" -"The :mod:`pdb` module now supports remote attaching to a running Python " -"process using a new ``-p PID`` command-line option:" +"CPython's free-threaded mode (:pep:`703`), initially added in 3.13, has been " +"significantly improved in Python 3.14. The implementation described in PEP " +"703 has been finished, including C API changes, and temporary workarounds in " +"the interpreter were replaced with more permanent solutions. The " +"specializing adaptive interpreter (:pep:`659`) is now enabled in free-" +"threaded mode, which along with many other optimizations greatly improves " +"its performance. The performance penalty on single-threaded code in free-" +"threaded mode is now roughly 5-10%, depending on the platform and C compiler " +"used." msgstr "" -#: whatsnew/3.14.rst:436 -msgid "python -m pdb -p 1234" +#: whatsnew/3.14.rst:492 +msgid "" +"From Python 3.14, when compiling extension modules for the free-threaded " +"build of CPython on Windows, the preprocessor variable ``Py_GIL_DISABLED`` " +"now needs to be specified by the build backend, as it will no longer be " +"determined automatically by the C compiler. For a running interpreter, the " +"setting that was used at compile time can be found using :func:`sysconfig." +"get_config_var`." msgstr "" -#: whatsnew/3.14.rst:440 +#: whatsnew/3.14.rst:498 msgid "" -"This will connect to the Python process with the given PID and allow you to " -"debug it interactively. Notice that due to how the Python interpreter works " -"attaching to a remote process that is blocked in a system call or waiting " -"for I/O will only work once the next bytecode instruction is executed or " -"when the process receives a signal." +"The new :option:`-X context_aware_warnings <-X>` flag controls if :ref:" +"`concurrent safe warnings control ` " +"is enabled. The flag defaults to true for the free-threaded build and false " +"for the GIL-enabled build." msgstr "" -#: whatsnew/3.14.rst:446 +#: whatsnew/3.14.rst:503 msgid "" -"This feature uses :pep:`768` and the :func:`sys.remote_exec` function to " -"attach to the remote process and send the PDB commands to it." +"A new :data:`~sys.flags.thread_inherit_context` flag has been added, which " +"if enabled means that threads created with :class:`threading.Thread` start " +"with a copy of the :class:`~contextvars.Context()` of the caller of :meth:" +"`~threading.Thread.start`. Most significantly, this makes the warning " +"filtering context established by :class:`~warnings.catch_warnings` be " +"\"inherited\" by threads (or asyncio tasks) started within that context. It " +"also affects other modules that use context variables, such as the :mod:" +"`decimal` context manager. This flag defaults to true for the free-threaded " +"build and false for the GIL-enabled build." msgstr "" -#: whatsnew/3.14.rst:450 -msgid "(Contributed by Matt Wozniski and Pablo Galindo in :gh:`131591`.)" +#: whatsnew/3.14.rst:514 +msgid "" +"(Contributed by Sam Gross, Matt Page, Neil Schemenauer, Thomas Wouters, " +"Donghee Na, Kirill Podoprigora, Ken Jin, Itamar Oren, Brett Simmers, Dino " +"Viehland, Nathan Goldbaum, Ralf Gommers, Lysandros Nikolaou, Kumar Aditya, " +"Edgar Margffoy, and many others. Some of these contributors are employed by " +"Meta, which has continued to provide significant engineering resources to " +"support this project.)" msgstr "" -#: whatsnew/3.14.rst:459 -msgid "PEP 758 – Allow except and except* expressions without parentheses" +#: whatsnew/3.14.rst:525 +msgid "Improved error messages" msgstr "" -#: whatsnew/3.14.rst:461 +#: whatsnew/3.14.rst:527 msgid "" -"The :keyword:`except` and :keyword:`except* ` expressions now " -"allow parentheses to be omitted when there are multiple exception types and " -"the ``as`` clause is not used. For example the following expressions are now " -"valid:" +"The interpreter now provides helpful suggestions when it detects typos in " +"Python keywords. When a word that closely resembles a Python keyword is " +"encountered, the interpreter will suggest the correct keyword in the error " +"message. This feature helps programmers quickly identify and fix common " +"typing mistakes. For example:" msgstr "" -#: whatsnew/3.14.rst:465 +#: whatsnew/3.14.rst:533 msgid "" -"try:\n" -" connect_to_server()\n" -"except TimeoutError, ConnectionRefusedError:\n" -" print(\"Network issue encountered.\")\n" -"\n" -" # The same applies to except* (for exception groups):\n" -"\n" -"try:\n" -" connect_to_server()\n" -"except* TimeoutError, ConnectionRefusedError:\n" -" print(\"Network issue encountered.\")" +">>> whille True:\n" +"... pass\n" +"Traceback (most recent call last):\n" +" File \"\", line 1\n" +" whille True:\n" +" ^^^^^^\n" +"SyntaxError: invalid syntax. Did you mean 'while'?" msgstr "" -#: whatsnew/3.14.rst:479 -msgid "Check :pep:`758` for more details." +#: whatsnew/3.14.rst:543 +msgid "" +"While the feature focuses on the most common cases, some variations of " +"misspellings may still result in regular syntax errors. (Contributed by " +"Pablo Galindo in :gh:`132449`.)" msgstr "" -#: whatsnew/3.14.rst:481 -msgid "(Contributed by Pablo Galindo and Brett Cannon in :gh:`131831`.)" +#: whatsnew/3.14.rst:547 +msgid "" +":keyword:`elif` statements that follow an :keyword:`else` block now have a " +"specific error message. (Contributed by Steele Farnsworth in :gh:`129902`.)" msgstr "" -#: whatsnew/3.14.rst:484 -msgid ":pep:`758`." +#: whatsnew/3.14.rst:551 +msgid "" +">>> if who == \"me\":\n" +"... print(\"It's me!\")\n" +"... else:\n" +"... print(\"It's not me!\")\n" +"... elif who is None:\n" +"... print(\"Who is it?\")\n" +"File \"\", line 5\n" +" elif who is None:\n" +" ^^^^\n" +"SyntaxError: 'elif' block follows an 'else' block" msgstr "" -#: whatsnew/3.14.rst:490 -msgid "PEP 649 and 749: deferred evaluation of annotations" +#: whatsnew/3.14.rst:564 +msgid "" +"If a statement is passed to the :ref:`if_expr` after :keyword:`else`, or one " +"of :keyword:`pass`, :keyword:`break`, or :keyword:`continue` is passed " +"before :keyword:`if`, then the error message highlights where the :token:" +"`~python-grammar:expression` is required. (Contributed by Sergey Miryanov " +"in :gh:`129515`.)" msgstr "" -#: whatsnew/3.14.rst:492 +#: whatsnew/3.14.rst:570 msgid "" -"The :term:`annotations ` on functions, classes, and modules are " -"no longer evaluated eagerly. Instead, annotations are stored in special-" -"purpose :term:`annotate functions ` and evaluated only " -"when necessary (except if ``from __future__ import annotations`` is used). " -"This is specified in :pep:`649` and :pep:`749`." +">>> x = 1 if True else pass\n" +"Traceback (most recent call last):\n" +" File \"\", line 1\n" +" x = 1 if True else pass\n" +" ^^^^\n" +"SyntaxError: expected expression after 'else', but statement is given\n" +"\n" +">>> x = continue if True else break\n" +"Traceback (most recent call last):\n" +" File \"\", line 1\n" +" x = continue if True else break\n" +" ^^^^^^^^\n" +"SyntaxError: expected expression before 'if', but statement is given" msgstr "" -#: whatsnew/3.14.rst:498 -msgid "" -"This change is designed to make annotations in Python more performant and " -"more usable in most circumstances. The runtime cost for defining annotations " -"is minimized, but it remains possible to introspect annotations at runtime. " -"It is no longer necessary to enclose annotations in strings if they contain " -"forward references." -msgstr "" - -#: whatsnew/3.14.rst:504 -msgid "" -"The new :mod:`annotationlib` module provides tools for inspecting deferred " -"annotations. Annotations may be evaluated in the :attr:`~annotationlib." -"Format.VALUE` format (which evaluates annotations to runtime values, similar " -"to the behavior in earlier Python versions), the :attr:`~annotationlib." -"Format.FORWARDREF` format (which replaces undefined names with special " -"markers), and the :attr:`~annotationlib.Format.STRING` format (which returns " -"annotations as strings)." -msgstr "" - -#: whatsnew/3.14.rst:511 -msgid "This example shows how these formats behave:" -msgstr "" - -#: whatsnew/3.14.rst:513 -msgid "" -">>> from annotationlib import get_annotations, Format\n" -">>> def func(arg: Undefined):\n" -"... pass\n" -">>> get_annotations(func, format=Format.VALUE)\n" -"Traceback (most recent call last):\n" -" ...\n" -"NameError: name 'Undefined' is not defined\n" -">>> get_annotations(func, format=Format.FORWARDREF)\n" -"{'arg': ForwardRef('Undefined', owner=)}\n" -">>> get_annotations(func, format=Format.STRING)\n" -"{'arg': 'Undefined'}" -msgstr "" - -#: whatsnew/3.14.rst:528 -msgid "Implications for annotated code" -msgstr "" - -#: whatsnew/3.14.rst:530 -msgid "" -"If you define annotations in your code (for example, for use with a static " -"type checker), then this change probably does not affect you: you can keep " -"writing annotations the same way you did with previous versions of Python." -msgstr "" - -#: whatsnew/3.14.rst:534 -msgid "" -"You will likely be able to remove quoted strings in annotations, which are " -"frequently used for forward references. Similarly, if you use ``from " -"__future__ import annotations`` to avoid having to write strings in " -"annotations, you may well be able to remove that import once you support " -"only Python 3.14 and newer. However, if you rely on third-party libraries " -"that read annotations, those libraries may need changes to support unquoted " -"annotations before they work as expected." -msgstr "" - -#: whatsnew/3.14.rst:543 -msgid "Implications for readers of ``__annotations__``" -msgstr "" - -#: whatsnew/3.14.rst:545 -msgid "" -"If your code reads the ``__annotations__`` attribute on objects, you may " -"want to make changes in order to support code that relies on deferred " -"evaluation of annotations. For example, you may want to use :func:" -"`annotationlib.get_annotations` with the :attr:`~annotationlib.Format." -"FORWARDREF` format, as the :mod:`dataclasses` module now does." -msgstr "" - -#: whatsnew/3.14.rst:551 -msgid "" -"The external :pypi:`typing_extensions` package provides partial backports of " -"some of the functionality of the :mod:`annotationlib` module, such as the :" -"class:`~annotationlib.Format` enum and the :func:`~annotationlib." -"get_annotations` function. These can be used to write cross-version code " -"that takes advantage of the new behavior in Python 3.14." -msgstr "" - -#: whatsnew/3.14.rst:557 -msgid "Related changes" -msgstr "" - -#: whatsnew/3.14.rst:559 -msgid "" -"The changes in Python 3.14 are designed to rework how ``__annotations__`` " -"works at runtime while minimizing breakage to code that contains annotations " -"in source code and to code that reads ``__annotations__``. However, if you " -"rely on undocumented details of the annotation behavior or on private " -"functions in the standard library, there are many ways in which your code " -"may not work in Python 3.14. To safeguard your code against future changes, " -"use only the documented functionality of the :mod:`annotationlib` module." -msgstr "" - -#: whatsnew/3.14.rst:567 -msgid "" -"In particular, do not read annotations directly from the namespace " -"dictionary attribute of type objects. Use :func:`annotationlib." -"get_annotate_from_class_namespace` during class construction and :func:" -"`annotationlib.get_annotations` afterwards." -msgstr "" - -#: whatsnew/3.14.rst:571 -msgid "" -"In previous releases, it was sometimes possible to access class annotations " -"from an instance of an annotated class. This behavior was undocumented and " -"accidental, and will no longer work in Python 3.14." -msgstr "" - -#: whatsnew/3.14.rst:576 -msgid "``from __future__ import annotations``" -msgstr "" - -#: whatsnew/3.14.rst:578 -msgid "" -"In Python 3.7, :pep:`563` introduced the ``from __future__ import " -"annotations`` directive, which turns all annotations into strings. This " -"directive is now considered deprecated and it is expected to be removed in a " -"future version of Python. However, this removal will not happen until after " -"Python 3.13, the last version of Python without deferred evaluation of " -"annotations, reaches its end of life in 2029. In Python 3.14, the behavior " -"of code using ``from __future__ import annotations`` is unchanged." -msgstr "" - -#: whatsnew/3.14.rst:586 -msgid "" -"(Contributed by Jelle Zijlstra in :gh:`119180`; :pep:`649` was written by " -"Larry Hastings.)" -msgstr "" - -#: whatsnew/3.14.rst:589 -msgid ":pep:`649` and :pep:`749`." -msgstr "" - -#: whatsnew/3.14.rst:593 -msgid "Improved error messages" -msgstr "" - -#: whatsnew/3.14.rst:595 -msgid "" -"The interpreter now provides helpful suggestions when it detects typos in " -"Python keywords. When a word that closely resembles a Python keyword is " -"encountered, the interpreter will suggest the correct keyword in the error " -"message. This feature helps programmers quickly identify and fix common " -"typing mistakes. For example:" -msgstr "" - -#: whatsnew/3.14.rst:601 -msgid "" -">>> whille True:\n" -"... pass\n" -"Traceback (most recent call last):\n" -" File \"\", line 1\n" -" whille True:\n" -" ^^^^^^\n" -"SyntaxError: invalid syntax. Did you mean 'while'?\n" -"\n" -">>> asynch def fetch_data():\n" -"... pass\n" -"Traceback (most recent call last):\n" -" File \"\", line 1\n" -" asynch def fetch_data():\n" -" ^^^^^^\n" -"SyntaxError: invalid syntax. Did you mean 'async'?\n" -"\n" -">>> async def foo():\n" -"... awaid fetch_data()\n" -"Traceback (most recent call last):\n" -" File \"\", line 2\n" -" awaid fetch_data()\n" -" ^^^^^\n" -"SyntaxError: invalid syntax. Did you mean 'await'?\n" -"\n" -">>> raisee ValueError(\"Error\")\n" -"Traceback (most recent call last):\n" -" File \"\", line 1\n" -" raisee ValueError(\"Error\")\n" -" ^^^^^^\n" -"SyntaxError: invalid syntax. Did you mean 'raise'?" -msgstr "" - -#: whatsnew/3.14.rst:634 -msgid "" -"While the feature focuses on the most common cases, some variations of " -"misspellings may still result in regular syntax errors. (Contributed by " -"Pablo Galindo in :gh:`132449`.)" -msgstr "" - -#: whatsnew/3.14.rst:638 -msgid "" -"When unpacking assignment fails due to incorrect number of variables, the " -"error message prints the received number of values in more cases than " -"before. (Contributed by Tushar Sadhwani in :gh:`122239`.)" -msgstr "" - -#: whatsnew/3.14.rst:642 -msgid "" -">>> x, y, z = 1, 2, 3, 4\n" -"Traceback (most recent call last):\n" -" File \"\", line 1, in \n" -" x, y, z = 1, 2, 3, 4\n" -" ^^^^^^^\n" -"ValueError: too many values to unpack (expected 3, got 4)" -msgstr "" - -#: whatsnew/3.14.rst:651 -msgid "" -":keyword:`elif` statements that follow an :keyword:`else` block now have a " -"specific error message. (Contributed by Steele Farnsworth in :gh:`129902`.)" -msgstr "" - -#: whatsnew/3.14.rst:654 -msgid "" -">>> if who == \"me\":\n" -"... print(\"It's me!\")\n" -"... else:\n" -"... print(\"It's not me!\")\n" -"... elif who is None:\n" -"... print(\"Who is it?\")\n" -"File \"\", line 5\n" -" elif who is None:\n" -" ^^^^\n" -"SyntaxError: 'elif' block follows an 'else' block" -msgstr "" - -#: whatsnew/3.14.rst:667 -msgid "" -"If a statement (:keyword:`pass`, :keyword:`del`, :keyword:`return`, :keyword:" -"`yield`, :keyword:`raise`, :keyword:`break`, :keyword:`continue`, :keyword:" -"`assert`, :keyword:`import`, :keyword:`from`) is passed to the :ref:" -"`if_expr` after :keyword:`else`, or one of :keyword:`pass`, :keyword:" -"`break`, or :keyword:`continue` is passed before :keyword:`if`, then the " -"error message highlights where the :token:`~python-grammar:expression` is " -"required. (Contributed by Sergey Miryanov in :gh:`129515`.)" -msgstr "" - -#: whatsnew/3.14.rst:675 -msgid "" -">>> x = 1 if True else pass\n" -"Traceback (most recent call last):\n" -" File \"\", line 1\n" -" x = 1 if True else pass\n" -" ^^^^\n" -"SyntaxError: expected expression after 'else', but statement is given\n" -"\n" -">>> x = continue if True else break\n" -"Traceback (most recent call last):\n" -" File \"\", line 1\n" -" x = continue if True else break\n" -" ^^^^^^^^\n" -"SyntaxError: expected expression before 'if', but statement is given" -msgstr "" - -#: whatsnew/3.14.rst:692 +#: whatsnew/3.14.rst:586 msgid "" "When incorrectly closed strings are detected, the error message suggests " "that the string may be intended to be part of the string. (Contributed by " "Pablo Galindo in :gh:`88535`.)" msgstr "" -#: whatsnew/3.14.rst:696 +#: whatsnew/3.14.rst:590 msgid "" ">>> \"The interesting object \"The important object\" is very important\"\n" "Traceback (most recent call last):\n" "SyntaxError: invalid syntax. Is this intended to be part of the string?" msgstr "" -#: whatsnew/3.14.rst:702 +#: whatsnew/3.14.rst:596 msgid "" "When strings have incompatible prefixes, the error now shows which prefixes " "are incompatible. (Contributed by Nikita Sobolev in :gh:`133197`.)" msgstr "" -#: whatsnew/3.14.rst:706 +#: whatsnew/3.14.rst:600 msgid "" ">>> ub'abc'\n" " File \"\", line 1\n" @@ -1010,49 +845,40 @@ msgid "" "SyntaxError: 'u' and 'b' prefixes are incompatible" msgstr "" -#: whatsnew/3.14.rst:714 +#: whatsnew/3.14.rst:608 msgid "Improved error messages when using ``as`` with incompatible targets in:" msgstr "" -#: whatsnew/3.14.rst:716 +#: whatsnew/3.14.rst:610 msgid "Imports: ``import ... as ...``" msgstr "" -#: whatsnew/3.14.rst:717 +#: whatsnew/3.14.rst:611 msgid "From imports: ``from ... import ... as ...``" msgstr "" -#: whatsnew/3.14.rst:718 +#: whatsnew/3.14.rst:612 msgid "Except handlers: ``except ... as ...``" msgstr "" -#: whatsnew/3.14.rst:719 +#: whatsnew/3.14.rst:613 msgid "Pattern-match cases: ``case ... as ...``" msgstr "" -#: whatsnew/3.14.rst:721 +#: whatsnew/3.14.rst:615 msgid "" "(Contributed by Nikita Sobolev in :gh:`123539`, :gh:`123562`, and :gh:" "`123440`.)" msgstr "" -#: whatsnew/3.14.rst:724 -msgid "" -">>> import ast as arr[0]\n" -" File \"\", line 1\n" -" import ast as arr[0]\n" -" ^^^^^^\n" -"SyntaxError: cannot use subscript as import target" -msgstr "" - -#: whatsnew/3.14.rst:732 +#: whatsnew/3.14.rst:617 msgid "" "Improved error message when trying to add an instance of an unhashable type " "to a :class:`dict` or :class:`set`. (Contributed by CF Bolz-Tereick and " "Victor Stinner in :gh:`132828`.)" msgstr "" -#: whatsnew/3.14.rst:736 +#: whatsnew/3.14.rst:621 msgid "" ">>> s = set()\n" ">>> s.add({'pages': 12, 'grade': 'A'})\n" @@ -1071,127 +897,137 @@ msgid "" "TypeError: cannot use 'list' as a dict key (unhashable type: 'list')" msgstr "" -#: whatsnew/3.14.rst:758 -msgid "PEP 741: Python configuration C API" +#: whatsnew/3.14.rst:639 +msgid "" +"Improved error message when an object supporting the synchronous context " +"manager protocol is entered using :keyword:`async with` instead of :keyword:" +"`with`, and vice versa for the asynchronous context manager protocol. " +"(Contributed by Bénédikt Tran in :gh:`128398`.)" msgstr "" -#: whatsnew/3.14.rst:760 -msgid "" -"Add a :ref:`PyInitConfig C API ` to configure the Python " -"initialization without relying on C structures and the ability to make ABI-" -"compatible changes in the future." +#: whatsnew/3.14.rst:649 +msgid ":pep:`784`: Zstandard support in the standard library" msgstr "" -#: whatsnew/3.14.rst:764 +#: whatsnew/3.14.rst:651 msgid "" -"Complete the :pep:`587` :ref:`PyConfig C API ` by adding :c:" -"func:`PyInitConfig_AddModule` which can be used to add a built-in extension " -"module; feature previously referred to as the “inittab”." +"The new :mod:`!compression` package contains modules :mod:`!compression." +"lzma`, :mod:`!compression.bz2`, :mod:`!compression.gzip` and :mod:`!" +"compression.zlib` which re-export the :mod:`lzma`, :mod:`bz2`, :mod:`gzip` " +"and :mod:`zlib` modules respectively. The new import names under :mod:`!" +"compression` are the preferred names for importing these compression modules " +"from Python 3.14. However, the existing modules names have not been " +"deprecated. Any deprecation or removal of the existing compression modules " +"will occur no sooner than five years after the release of 3.14." msgstr "" -#: whatsnew/3.14.rst:768 +#: whatsnew/3.14.rst:660 msgid "" -"Add :c:func:`PyConfig_Get` and :c:func:`PyConfig_Set` functions to get and " -"set the current runtime configuration." +"The new :mod:`!compression.zstd` module provides compression and " +"decompression APIs for the Zstandard format via bindings to `Meta's zstd " +"library `__. Zstandard is a widely " +"adopted, highly efficient, and fast compression format. In addition to the " +"APIs introduced in :mod:`!compression.zstd`, support for reading and writing " +"Zstandard compressed archives has been added to the :mod:`tarfile`, :mod:" +"`zipfile`, and :mod:`shutil` modules." +msgstr "" + +#: whatsnew/3.14.rst:668 +msgid "Here's an example of using the new module to compress some data:" msgstr "" -#: whatsnew/3.14.rst:771 +#: whatsnew/3.14.rst:670 msgid "" -"PEP 587 “Python Initialization Configuration” unified all the ways to " -"configure the Python initialization. This PEP unifies also the configuration " -"of the Python preinitialization and the Python initialization in a single " -"API. Moreover, this PEP only provides a single choice to embed Python, " -"instead of having two “Python” and “Isolated” choices (PEP 587), to simplify " -"the API further." +"from compression import zstd\n" +"import math\n" +"\n" +"data = str(math.pi).encode() * 20\n" +"compressed = zstd.compress(data)\n" +"ratio = len(compressed) / len(data)\n" +"print(f\"Achieved compression ratio of {ratio}\")" msgstr "" -#: whatsnew/3.14.rst:778 +#: whatsnew/3.14.rst:680 msgid "" -"The lower level PEP 587 PyConfig API remains available for use cases with an " -"intentionally higher level of coupling to CPython implementation details " -"(such as emulating the full functionality of CPython’s CLI, including its " -"configuration mechanisms)." +"As can be seen, the API is similar to the APIs of the :mod:`!lzma` and :mod:" +"`!bz2` modules." msgstr "" -#: whatsnew/3.14.rst:2784 whatsnew/3.14.rst:2803 -msgid "(Contributed by Victor Stinner in :gh:`107954`.)" +#: whatsnew/3.14.rst:683 +msgid "" +"(Contributed by Emma Harper Smith, Adam Turner, Gregory P. Smith, Tomas " +"Roun, Victor Stinner, and Rogdham in :gh:`132983`.)" msgstr "" -#: whatsnew/3.14.rst:786 -msgid ":pep:`741`." +#: whatsnew/3.14.rst:686 +msgid ":pep:`784`." msgstr "" -#: whatsnew/3.14.rst:791 +#: whatsnew/3.14.rst:692 msgid "Asyncio introspection capabilities" msgstr "" -#: whatsnew/3.14.rst:793 +#: whatsnew/3.14.rst:694 msgid "" "Added a new command-line interface to inspect running Python processes using " -"asynchronous tasks, available via:" +"asynchronous tasks, available via ``python -m asyncio ps PID`` or ``python -" +"m asyncio pstree PID``." msgstr "" -#: whatsnew/3.14.rst:796 -msgid "python -m asyncio ps PID" -msgstr "" - -#: whatsnew/3.14.rst:800 +#: whatsnew/3.14.rst:698 msgid "" -"This tool inspects the given process ID (PID) and displays information about " -"currently running asyncio tasks. It outputs a task table: a flat listing of " -"all tasks, their names, their coroutine stacks, and which tasks are awaiting " -"them." -msgstr "" - -#: whatsnew/3.14.rst:805 -msgid "python -m asyncio pstree PID" +"The ``ps`` subcommand inspects the given process ID (PID) and displays " +"information about currently running asyncio tasks. It outputs a task table: " +"a flat listing of all tasks, their names, their coroutine stacks, and which " +"tasks are awaiting them." msgstr "" -#: whatsnew/3.14.rst:809 +#: whatsnew/3.14.rst:704 msgid "" -"This tool fetches the same information, but renders a visual async call " -"tree, showing coroutine relationships in a hierarchical format. This " -"command is particularly useful for debugging long-running or stuck " -"asynchronous programs. It can help developers quickly identify where a " +"The ``pstree`` subcommand fetches the same information, but instead renders " +"a visual async call tree, showing coroutine relationships in a hierarchical " +"format. This command is particularly useful for debugging long-running or " +"stuck asynchronous programs. It can help developers quickly identify where a " "program is blocked, what tasks are pending, and how coroutines are chained " "together." msgstr "" -#: whatsnew/3.14.rst:815 +#: whatsnew/3.14.rst:711 msgid "For example given this code:" msgstr "" -#: whatsnew/3.14.rst:817 +#: whatsnew/3.14.rst:713 msgid "" "import asyncio\n" "\n" -"async def play(track):\n" +"async def play_track(track):\n" " await asyncio.sleep(5)\n" -" print(f\"🎵 Finished: {track}\")\n" +" print(f'🎵 Finished: {track}')\n" "\n" -"async def album(name, tracks):\n" +"async def play_album(name, tracks):\n" " async with asyncio.TaskGroup() as tg:\n" " for track in tracks:\n" -" tg.create_task(play(track), name=track)\n" +" tg.create_task(play_track(track), name=track)\n" "\n" "async def main():\n" " async with asyncio.TaskGroup() as tg:\n" " tg.create_task(\n" -" album(\"Sundowning\", [\"TNDNBTG\", \"Levitate\"]), " -"name=\"Sundowning\")\n" +" play_album('Sundowning', ['TNDNBTG', 'Levitate']),\n" +" name='Sundowning')\n" " tg.create_task(\n" -" album(\"TMBTE\", [\"DYWTYLM\", \"Aqua Regia\"]), name=\"TMBTE\")\n" +" play_album('TMBTE', ['DYWTYLM', 'Aqua Regia']),\n" +" name='TMBTE')\n" "\n" -"if __name__ == \"__main__\":\n" +"if __name__ == '__main__':\n" " asyncio.run(main())" msgstr "" -#: whatsnew/3.14.rst:840 +#: whatsnew/3.14.rst:738 msgid "" "Executing the new tool on the running process will yield a table like this:" msgstr "" -#: whatsnew/3.14.rst:842 +#: whatsnew/3.14.rst:740 msgid "" "python -m asyncio ps 12345\n" "\n" @@ -1223,11 +1059,11 @@ msgid "" "__aexit__ -> album TMBTE 0x7fc93173fa50" msgstr "" -#: whatsnew/3.14.rst:856 +#: whatsnew/3.14.rst:754 msgid "or a tree like this:" msgstr "" -#: whatsnew/3.14.rst:858 +#: whatsnew/3.14.rst:756 msgid "" "python -m asyncio pstree 12345\n" "\n" @@ -1261,14 +1097,14 @@ msgid "" " └── sleep Lib/asyncio/tasks.py:702" msgstr "" -#: whatsnew/3.14.rst:887 +#: whatsnew/3.14.rst:785 msgid "" "If a cycle is detected in the async await graph (which could indicate a " "programming issue), the tool raises an error and lists the cycle paths that " "prevent tree construction:" msgstr "" -#: whatsnew/3.14.rst:891 +#: whatsnew/3.14.rst:789 msgid "" "python -m asyncio pstree 12345\n" "\n" @@ -1277,387 +1113,344 @@ msgid "" "cycle: Task-2 → Task-3 → Task-2" msgstr "" -#: whatsnew/3.14.rst:899 +#: whatsnew/3.14.rst:797 msgid "" "(Contributed by Pablo Galindo, Łukasz Langa, Yury Selivanov, and Marta Gomez " "Macias in :gh:`91048`.)" msgstr "" -#: whatsnew/3.14.rst:905 -msgid "A new type of interpreter" +#: whatsnew/3.14.rst:804 +msgid "Concurrent safe warnings control" msgstr "" -#: whatsnew/3.14.rst:907 +#: whatsnew/3.14.rst:806 msgid "" -"A new type of interpreter has been added to CPython. It uses tail calls " -"between small C functions that implement individual Python opcodes, rather " -"than one large C case statement. For certain newer compilers, this " -"interpreter provides significantly better performance. Preliminary numbers " -"on our machines suggest anywhere up to 30% faster Python code, and a " -"geometric mean of 3-5% faster on ``pyperformance`` depending on platform and " -"architecture. The baseline is Python 3.14 built with Clang 19 without this " -"new interpreter." +"The :class:`warnings.catch_warnings` context manager will now optionally use " +"a context variable for warning filters. This is enabled by setting the :data:" +"`~sys.flags.context_aware_warnings` flag, either with the ``-X`` command-" +"line option or an environment variable. This gives predictable warnings " +"control when using :class:`~warnings.catch_warnings` combined with multiple " +"threads or asynchronous tasks. The flag defaults to true for the free-" +"threaded build and false for the GIL-enabled build." msgstr "" -#: whatsnew/3.14.rst:916 -msgid "" -"This interpreter currently only works with Clang 19 and newer on x86-64 and " -"AArch64 architectures. However, we expect that a future release of GCC will " -"support this as well." +#: whatsnew/3.14.rst:814 +msgid "(Contributed by Neil Schemenauer and Kumar Aditya in :gh:`130010`.)" msgstr "" -#: whatsnew/3.14.rst:920 -msgid "" -"This feature is opt-in for now. We highly recommend enabling profile-guided " -"optimization with the new interpreter as it is the only configuration we " -"have tested and can validate its improved performance. For further " -"information on how to build Python, see :option:`--with-tail-call-interp`." +#: whatsnew/3.14.rst:818 +msgid "Other language changes" msgstr "" -#: whatsnew/3.14.rst:928 +#: whatsnew/3.14.rst:820 msgid "" -"This is not to be confused with `tail call optimization`__ of Python " -"functions, which is currently not implemented in CPython." +"All Windows code pages are now supported as 'cpXXX' codecs on Windows. " +"(Contributed by Serhiy Storchaka in :gh:`123803`.)" msgstr "" -#: whatsnew/3.14.rst:931 +#: whatsnew/3.14.rst:823 msgid "" -"This new interpreter type is an internal implementation detail of the " -"CPython interpreter. It doesn't change the visible behavior of Python " -"programs at all. It can improve their performance, but doesn't change " -"anything else." +"Implement mixed-mode arithmetic rules combining real and complex numbers as " +"specified by the C standard since C99. (Contributed by Sergey B Kirpichev " +"in :gh:`69639`.)" msgstr "" -#: whatsnew/3.14.rst:939 +#: whatsnew/3.14.rst:827 msgid "" -"This section previously reported a 9-15% geometric mean speedup. This number " -"has since been cautiously revised down to 3-5%. While we expect performance " -"results to be better than what we report, our estimates are more " -"conservative due to a `compiler bug `_ found in Clang/LLVM 19, which causes the normal interpreter " -"to be slower. We were unaware of this bug, resulting in inaccurate results. " -"We sincerely apologize for communicating results that were only accurate for " -"LLVM v19.1.x and v20.1.0. In the meantime, the bug has been fixed in LLVM " -"v20.1.1 and for the upcoming v21.1, but it will remain unfixed for LLVM " -"v19.1.x and v20.1.0. Thus any benchmarks with those versions of LLVM may " -"produce inaccurate numbers. (Thanks to Nelson Elhage for bringing this to " -"light.)" +"More syntax errors are now detected regardless of optimisation and the :" +"option:`-O` command-line option. This includes writes to ``__debug__``, " +"incorrect use of :keyword:`await`, and asynchronous comprehensions outside " +"asynchronous functions. For example, ``python -O -c 'assert (__debug__ := " +"1)'`` or ``python -O -c 'assert await 1'`` now produce :exc:`SyntaxError`\\ " +"s. (Contributed by Irit Katriel and Jelle Zijlstra in :gh:`122245` & :gh:" +"`121637`.)" msgstr "" -#: whatsnew/3.14.rst:951 +#: whatsnew/3.14.rst:835 msgid "" -"(Contributed by Ken Jin in :gh:`128563`, with ideas on how to implement this " -"in CPython by Mark Shannon, Garrett Gu, Haoran Xu, and Josh Haberman.)" +"When subclassing a pure C type, the C slots for the new type are no longer " +"replaced with a wrapped version on class creation if they are not explicitly " +"overridden in the subclass. (Contributed by Tomasz Pytel in :gh:`132284`.)" msgstr "" -#: whatsnew/3.14.rst:957 -msgid "Free-threaded mode" +#: whatsnew/3.14.rst:842 +msgid "Built-ins" msgstr "" -#: whatsnew/3.14.rst:959 +#: whatsnew/3.14.rst:844 msgid "" -"Free-threaded mode (:pep:`703`), initially added in 3.13, has been " -"significantly improved. The implementation described in PEP 703 was " -"finished, including C API changes, and temporary workarounds in the " -"interpreter were replaced with more permanent solutions. The specializing " -"adaptive interpreter (:pep:`659`) is now enabled in free-threaded mode, " -"which along with many other optimizations greatly improves its performance. " -"The performance penalty on single-threaded code in free-threaded mode is now " -"roughly 5-10%, depending on platform and C compiler used." +"The :meth:`bytes.fromhex` and :meth:`bytearray.fromhex` methods now accept " +"ASCII :class:`bytes` and :term:`bytes-like objects `. " +"(Contributed by Daniel Pope in :gh:`129349`.)" msgstr "" -#: whatsnew/3.14.rst:967 +#: whatsnew/3.14.rst:848 msgid "" -"This work was done by many contributors: Sam Gross, Matt Page, Neil " -"Schemenauer, Thomas Wouters, Donghee Na, Kirill Podoprigora, Ken Jin, Itamar " -"Oren, Brett Simmers, Dino Viehland, Nathan Goldbaum, Ralf Gommers, Lysandros " -"Nikolaou, Kumar Aditya, Edgar Margffoy, and many others." +"Add class methods :meth:`float.from_number` and :meth:`complex.from_number` " +"to convert a number to :class:`float` or :class:`complex` type " +"correspondingly. They raise a :exc:`TypeError` if the argument is not a real " +"number. (Contributed by Serhiy Storchaka in :gh:`84978`.)" msgstr "" -#: whatsnew/3.14.rst:972 +#: whatsnew/3.14.rst:853 msgid "" -"Some of these contributors are employed by Meta, which has continued to " -"provide significant engineering resources to support this project." +"Support underscore and comma as thousands separators in the fractional part " +"for floating-point presentation types of the new-style string formatting " +"(with :func:`format` or :ref:`f-strings`). (Contributed by Sergey B " +"Kirpichev in :gh:`87790`.)" msgstr "" -#: whatsnew/3.14.rst:975 +#: whatsnew/3.14.rst:858 msgid "" -"From 3.14, when compiling extension modules for the free-threaded build of " -"CPython on Windows, the preprocessor variable ``Py_GIL_DISABLED`` now needs " -"to be specified by the build backend, as it will no longer be determined " -"automatically by the C compiler. For a running interpreter, the setting that " -"was used at compile time can be found using :func:`sysconfig.get_config_var`." -msgstr "" - -#: whatsnew/3.14.rst:985 -msgid "Syntax highlighting in PyREPL" +"The :func:`int` function no longer delegates to :meth:`~object.__trunc__`. " +"Classes that want to support conversion to :func:`!int` must implement " +"either :meth:`~object.__int__` or :meth:`~object.__index__`. (Contributed by " +"Mark Dickinson in :gh:`119743`.)" msgstr "" -#: whatsnew/3.14.rst:987 +#: whatsnew/3.14.rst:863 msgid "" -"The default :term:`interactive` shell now highlights Python syntax as you " -"type. The feature is enabled by default unless the :envvar:" -"`PYTHON_BASIC_REPL` environment is set or any color-disabling environment " -"variables are used. See :ref:`using-on-controlling-color` for details." +"The :func:`map` function now has an optional keyword-only *strict* flag " +"like :func:`zip` to check that all the iterables are of equal length. " +"(Contributed by Wannes Boeykens in :gh:`119793`.)" msgstr "" -#: whatsnew/3.14.rst:993 +#: whatsnew/3.14.rst:867 msgid "" -"The default color theme for syntax highlighting strives for good contrast " -"and uses exclusively the 4-bit VGA standard ANSI color codes for maximum " -"compatibility. The theme can be customized using an experimental API " -"``_colorize.set_theme()``. This can be called interactively, as well as in " -"the :envvar:`PYTHONSTARTUP` script." +"The :class:`memoryview` type now supports subscription, making it a :term:" +"`generic type`. (Contributed by Brian Schubert in :gh:`126012`.)" msgstr "" -#: whatsnew/3.14.rst:999 -msgid "(Contributed by Łukasz Langa in :gh:`131507`.)" +#: whatsnew/3.14.rst:871 +msgid "" +"Using :data:`NotImplemented` in a boolean context will now raise a :exc:" +"`TypeError`. This has raised a :exc:`DeprecationWarning` since Python 3.9. " +"(Contributed by Jelle Zijlstra in :gh:`118767`.)" msgstr "" -#: whatsnew/3.14.rst:1005 -msgid "Binary releases for the experimental just-in-time compiler" +#: whatsnew/3.14.rst:876 +msgid "" +"Three-argument :func:`pow` now tries calling :meth:`~object.__rpow__` if " +"necessary. Previously it was only called in two-argument :func:`!pow` and " +"the binary power operator. (Contributed by Serhiy Storchaka in :gh:`130104`.)" msgstr "" -#: whatsnew/3.14.rst:1007 +#: whatsnew/3.14.rst:882 msgid "" -"The official macOS and Windows release binaries now include an " -"*experimental* just-in-time (JIT) compiler. Although it is **not** " -"recommended for production use, it can be tested by setting :envvar:" -"`PYTHON_JIT=1 ` as an environment variable. Downstream source " -"builds and redistributors can use the :option:`--enable-experimental-jit=yes-" -"off` configuration option for similar behavior." +":class:`super` objects are now :mod:`copyable ` and :mod:`pickleable " +"`. (Contributed by Serhiy Storchaka in :gh:`125767`.)" msgstr "" -#: whatsnew/3.14.rst:1014 -msgid "" -"The JIT is at an early stage and still in active development. As such, the " -"typical performance impact of enabling it can range from 10% slower to 20% " -"faster, depending on workload. To aid in testing and evaluation, a set of " -"introspection functions has been provided in the :data:`sys._jit` " -"namespace. :func:`sys._jit.is_available` can be used to determine if the " -"current executable supports JIT compilation, while :func:`sys._jit." -"is_enabled` can be used to tell if JIT compilation has been enabled for the " -"current process." +#: whatsnew/3.14.rst:888 +msgid "Command line and environment" msgstr "" -#: whatsnew/3.14.rst:1022 +#: whatsnew/3.14.rst:890 msgid "" -"Currently, the most significant missing functionality is that native " -"debuggers and profilers like ``gdb`` and ``perf`` are unable to unwind " -"through JIT frames (Python debuggers and profilers, like :mod:`pdb` or :mod:" -"`profile`, continue to work without modification). Free-threaded builds do " -"not support JIT compilation." +"The import time flag can now track modules that are already loaded " +"('cached'), via the new :option:`-X importtime=2 <-X>`. When such a module " +"is imported, the ``self`` and ``cumulative`` times are replaced by the " +"string ``cached``." msgstr "" -#: whatsnew/3.14.rst:1027 +#: whatsnew/3.14.rst:895 msgid "" -"Please report any bugs or major performance regressions that you encounter!" +"Values above ``2`` for ``-X importtime`` are now reserved for future use." msgstr "" -#: whatsnew/3.14.rst:1029 -msgid ":pep:`744`" +#: whatsnew/3.14.rst:897 +msgid "(Contributed by Noah Kim and Adam Turner in :gh:`118655`.)" msgstr "" -#: whatsnew/3.14.rst:1033 -msgid "Other language changes" +#: whatsnew/3.14.rst:899 +msgid "" +"The command-line option :option:`-c` now automatically dedents its code " +"argument before execution. The auto-dedentation behavior mirrors :func:" +"`textwrap.dedent`. (Contributed by Jon Crall and Steven Sun in :gh:`103998`.)" msgstr "" -#: whatsnew/3.14.rst:1035 +#: whatsnew/3.14.rst:904 msgid "" -"The default :term:`interactive` shell now supports import autocompletion. " -"This means that typing ``import foo`` and pressing ```` will suggest " -"modules starting with ``foo``. Similarly, typing ``from foo import b`` will " -"suggest submodules of ``foo`` starting with ``b``. Note that autocompletion " -"of module attributes is not currently supported. (Contributed by Tomas Roun " -"in :gh:`69605`.)" +":option:`!-J` is no longer a reserved flag for Jython_, and now has no " +"special meaning. (Contributed by Adam Turner in :gh:`133336`.)" msgstr "" -#: whatsnew/3.14.rst:1042 -msgid "" -"The :func:`map` built-in now has an optional keyword-only *strict* flag " -"like :func:`zip` to check that all the iterables are of equal length. " -"(Contributed by Wannes Boeykens in :gh:`119793`.)" +#: whatsnew/3.14.rst:914 +msgid "PEP 758: Allow ``except`` and ``except*`` expressions without brackets" msgstr "" -#: whatsnew/3.14.rst:1046 +#: whatsnew/3.14.rst:916 msgid "" -"Incorrect usage of :keyword:`await` and asynchronous comprehensions is now " -"detected even if the code is optimized away by the :option:`-O` command-line " -"option. For example, ``python -O -c 'assert await 1'`` now produces a :exc:" -"`SyntaxError`. (Contributed by Jelle Zijlstra in :gh:`121637`.)" +"The :keyword:`except` and :keyword:`except* ` expressions now " +"allow brackets to be omitted when there are multiple exception types and the " +"``as`` clause is not used. For example:" msgstr "" -#: whatsnew/3.14.rst:1051 +#: whatsnew/3.14.rst:921 msgid "" -"Writes to ``__debug__`` are now detected even if the code is optimized away " -"by the :option:`-O` command-line option. For example, ``python -O -c 'assert " -"(__debug__ := 1)'`` now produces a :exc:`SyntaxError`. (Contributed by Irit " -"Katriel in :gh:`122245`.)" +"try:\n" +" connect_to_server()\n" +"except TimeoutError, ConnectionRefusedError:\n" +" print('The network has ceased to be!')" msgstr "" -#: whatsnew/3.14.rst:1056 +#: whatsnew/3.14.rst:928 msgid "" -"Add class methods :meth:`float.from_number` and :meth:`complex.from_number` " -"to convert a number to :class:`float` or :class:`complex` type " -"correspondingly. They raise an error if the argument is a string. " -"(Contributed by Serhiy Storchaka in :gh:`84978`.)" +"(Contributed by Pablo Galindo and Brett Cannon in :pep:`758` and :gh:" +"`131831`.)" msgstr "" -#: whatsnew/3.14.rst:1061 -msgid "" -"Implement mixed-mode arithmetic rules combining real and complex numbers as " -"specified by C standards since C99. (Contributed by Sergey B Kirpichev in :" -"gh:`69639`.)" +#: whatsnew/3.14.rst:934 +msgid "PEP 765: Control flow in :keyword:`finally` blocks" msgstr "" -#: whatsnew/3.14.rst:1065 +#: whatsnew/3.14.rst:936 msgid "" -"All Windows code pages are now supported as \"cpXXX\" codecs on Windows. " -"(Contributed by Serhiy Storchaka in :gh:`123803`.)" +"The compiler now emits a :exc:`SyntaxWarning` when a :keyword:`return`, :" +"keyword:`break`, or :keyword:`continue` statement have the effect of leaving " +"a :keyword:`finally` block. This change is specified in :pep:`765`." msgstr "" -#: whatsnew/3.14.rst:1068 +#: whatsnew/3.14.rst:941 msgid "" -":class:`super` objects are now :mod:`pickleable ` and :mod:`copyable " -"`. (Contributed by Serhiy Storchaka in :gh:`125767`.)" +"In situations where this change is inconvenient (such as those where the " +"warnings are redundant due to code linting), the :ref:`warning filter " +"` can be used to turn off all syntax warnings by adding " +"``ignore::SyntaxWarning`` as a filter. This can be specified in combination " +"with a filter that converts other warnings to errors (for example, passing " +"``-Werror -Wignore::SyntaxWarning`` as CLI options, or setting " +"``PYTHONWARNINGS=error,ignore::SyntaxWarning``)." msgstr "" -#: whatsnew/3.14.rst:1072 +#: whatsnew/3.14.rst:949 msgid "" -"The :class:`memoryview` type now supports subscription, making it a :term:" -"`generic type`. (Contributed by Brian Schubert in :gh:`126012`.)" +"Note that applying such a filter at runtime using the :mod:`warnings` module " +"will only suppress the warning in code that is compiled *after* the filter " +"is adjusted. Code that is compiled prior to the filter adjustment (for " +"example, when a module is imported) will still emit the syntax warning." msgstr "" -#: whatsnew/3.14.rst:1076 -msgid "" -"Support underscore and comma as thousands separators in the fractional part " -"for floating-point presentation types of the new-style string formatting " -"(with :func:`format` or :ref:`f-strings`). (Contributed by Sergey B " -"Kirpichev in :gh:`87790`.)" +#: whatsnew/3.14.rst:954 +msgid "(Contributed by Irit Katriel in :gh:`130080`.)" msgstr "" -#: whatsnew/3.14.rst:1081 -msgid "" -"The :func:`bytes.fromhex` and :func:`bytearray.fromhex` methods now accept " -"ASCII :class:`bytes` and :term:`bytes-like objects `. " -"(Contributed by Daniel Pope in :gh:`129349`.)" +#: whatsnew/3.14.rst:960 +msgid "Incremental garbage collection" msgstr "" -#: whatsnew/3.14.rst:1085 +#: whatsnew/3.14.rst:962 msgid "" -"Support ``\\z`` as a synonym for ``\\Z`` in :mod:`regular expressions `. " -"It is interpreted unambiguously in many other regular expression engines, " -"unlike ``\\Z``, which has subtly different behavior. (Contributed by Serhiy " -"Storchaka in :gh:`133306`.)" +"The cycle garbage collector is now incremental. This means that maximum " +"pause times are reduced by an order of magnitude or more for larger heaps." msgstr "" -#: whatsnew/3.14.rst:1090 +#: whatsnew/3.14.rst:966 msgid "" -"``\\B`` in :mod:`regular expression ` now matches empty input string. " -"Now it is always the opposite of ``\\b``. (Contributed by Serhiy Storchaka " -"in :gh:`124130`.)" +"There are now only two generations: young and old. When :func:`gc.collect` " +"is not called directly, the GC is invoked a little less frequently. When " +"invoked, it collects the young generation and an increment of the old " +"generation, instead of collecting one or more generations." msgstr "" -#: whatsnew/3.14.rst:1094 -msgid "" -"iOS and macOS apps can now be configured to redirect ``stdout`` and " -"``stderr`` content to the system log. (Contributed by Russell Keith-Magee " -"in :gh:`127592`.)" +#: whatsnew/3.14.rst:972 +msgid "The behavior of :func:`!gc.collect` changes slightly:" msgstr "" -#: whatsnew/3.14.rst:1098 +#: whatsnew/3.14.rst:3267 msgid "" -"The iOS testbed is now able to stream test output while the test is running. " -"The testbed can also be used to run the test suite of projects other than " -"CPython itself. (Contributed by Russell Keith-Magee in :gh:`127592`.)" +"``gc.collect(1)``: Performs an increment of garbage collection, rather than " +"collecting generation 1." msgstr "" -#: whatsnew/3.14.rst:1102 -msgid "" -"Three-argument :func:`pow` now tries calling :meth:`~object.__rpow__` if " -"necessary. Previously it was only called in two-argument :func:`!pow` and " -"the binary power operator. (Contributed by Serhiy Storchaka in :gh:`130104`.)" +#: whatsnew/3.14.rst:3269 +msgid "Other calls to :func:`!gc.collect` are unchanged." msgstr "" -#: whatsnew/3.14.rst:1107 -msgid "" -"Add a built-in implementation for HMAC (:rfc:`2104`) using formally verified " -"code from the `HACL* `__ project. " -"This implementation is used as a fallback when the OpenSSL implementation of " -"HMAC is not available. (Contributed by Bénédikt Tran in :gh:`99108`.)" +#: whatsnew/3.14.rst:2236 +msgid "(Contributed by Mark Shannon in :gh:`108362`.)" msgstr "" -#: whatsnew/3.14.rst:1113 -msgid "" -"The import time flag can now track modules that are already loaded " -"('cached'), via the new :option:`-X importtime=2 <-X>`. When such a module " -"is imported, the ``self`` and ``cumulative`` times are replaced by the " -"string ``cached``. Values above ``2`` for ``-X importtime`` are now reserved " -"for future use. (Contributed by Noah Kim and Adam Turner in :gh:`118655`.)" +#: whatsnew/3.14.rst:982 +msgid "Default interactive shell" msgstr "" -#: whatsnew/3.14.rst:1120 +#: whatsnew/3.14.rst:986 msgid "" -"When subclassing from a pure C type, the C slots for the new type are no " -"longer replaced with a wrapped version on class creation if they are not " -"explicitly overridden in the subclass. (Contributed by Tomasz Pytel in :gh:" -"`132329`.)" +"The default :term:`interactive` shell now highlights Python syntax. The " +"feature is enabled by default, save if :envvar:`PYTHON_BASIC_REPL` or any " +"other environment variable that disables colour is set. See :ref:`using-on-" +"controlling-color` for details." msgstr "" -#: whatsnew/3.14.rst:1125 +#: whatsnew/3.14.rst:991 msgid "" -"The command-line option :option:`-c` now automatically dedents its code " -"argument before execution. The auto-dedentation behavior mirrors :func:" -"`textwrap.dedent`. (Contributed by Jon Crall and Steven Sun in :gh:`103998`.)" +"The default color theme for syntax highlighting strives for good contrast " +"and exclusively uses the 4-bit VGA standard ANSI color codes for maximum " +"compatibility. The theme can be customized using an experimental API :func:`!" +"_colorize.set_theme`. This can be called interactively or in the :envvar:" +"`PYTHONSTARTUP` script. Note that this function has no stability guarantees, " +"and may change or be removed." msgstr "" -#: whatsnew/3.14.rst:1130 -msgid "" -"Improve error message when an object supporting the synchronous context " -"manager protocol is entered using :keyword:`async with` instead of :keyword:" -"`with`. And vice versa with the asynchronous context manager protocol. " -"(Contributed by Bénédikt Tran in :gh:`128398`.)" +#: whatsnew/3.14.rst:999 +msgid "(Contributed by Łukasz Langa in :gh:`131507`.)" msgstr "" -#: whatsnew/3.14.rst:1136 +#: whatsnew/3.14.rst:1001 msgid "" -":option:`!-J` is no longer a reserved flag for Jython_, and now has no " -"special meaning. (Contributed by Adam Turner in :gh:`133336`.)" +"The default :term:`interactive` shell now supports import auto-completion. " +"This means that typing ``import co`` and pressing :kbd:`` will suggest " +"modules starting with ``co``. Similarly, typing ``from concurrent import i`` " +"will suggest submodules of ``concurrent`` starting with ``i``. Note that " +"autocompletion of module attributes is not currently supported. (Contributed " +"by Tomas Roun in :gh:`69605`.)" msgstr "" -#: whatsnew/3.14.rst:1145 +#: whatsnew/3.14.rst:1010 +msgid "New modules" +msgstr "" + +#: whatsnew/3.14.rst:1012 msgid "" -"PEP 765: Disallow ``return``/``break``/``continue`` that exit a ``finally`` " -"block" +":mod:`annotationlib`: For introspecting :term:`annotations `. " +"See :ref:`PEP 749 ` for more details. " +"(Contributed by Jelle Zijlstra in :gh:`119180`.)" msgstr "" -#: whatsnew/3.14.rst:1147 +#: whatsnew/3.14.rst:1017 msgid "" -"The compiler emits a :exc:`SyntaxWarning` when a :keyword:`return`, :keyword:" -"`break` or :keyword:`continue` statements appears where it exits a :keyword:" -"`finally` block. This change is specified in :pep:`765`." +":mod:`compression` (including :mod:`compression.zstd`): A package for " +"compression-related modules, including a new module to support the Zstandard " +"compression format. See :ref:`PEP 784 ` for more " +"details. (Contributed by Emma Harper Smith, Adam Turner, Gregory P. Smith, " +"Tomas Roun, Victor Stinner, and Rogdham in :gh:`132983`.)" msgstr "" -#: whatsnew/3.14.rst:1153 -msgid "New modules" +#: whatsnew/3.14.rst:1024 +msgid "" +":mod:`concurrent.interpreters`: Support for multiple interpreters in the " +"standard library. See :ref:`PEP 734 ` for " +"more details. (Contributed by Eric Snow in :gh:`134939`.)" msgstr "" -#: whatsnew/3.14.rst:1155 +#: whatsnew/3.14.rst:1029 msgid "" -":mod:`annotationlib`: For introspecting :term:`annotations `. " -"See :pep:`749` for more details. (Contributed by Jelle Zijlstra in :gh:" -"`119180`.)" +":mod:`string.templatelib`: Support for template string literals (t-strings). " +"See :ref:`PEP 750 ` for more details. " +"(Contributed by Jim Baker, Guido van Rossum, Paul Everitt, Koudai Aono, " +"Lysandros Nikolaou, Dave Peck, Adam Turner, Jelle Zijlstra, Bénédikt Tran, " +"and Pablo Galindo Salgado in :gh:`132661`.)" msgstr "" -#: whatsnew/3.14.rst:1161 +#: whatsnew/3.14.rst:1038 msgid "Improved modules" msgstr "" -#: whatsnew/3.14.rst:2395 +#: whatsnew/3.14.rst:2301 msgid "argparse" msgstr "" -#: whatsnew/3.14.rst:1166 +#: whatsnew/3.14.rst:1043 msgid "" "The default value of the :ref:`program name ` for :class:`argparse." "ArgumentParser` now reflects the way the Python interpreter was instructed " @@ -1665,7 +1458,7 @@ msgid "" "Alyssa Coghlan in :gh:`66436`.)" msgstr "" -#: whatsnew/3.14.rst:1171 +#: whatsnew/3.14.rst:1048 msgid "" "Introduced the optional *suggest_on_error* parameter to :class:`argparse." "ArgumentParser`, enabling suggestions for argument choices and subparser " @@ -1673,61 +1466,62 @@ msgid "" "`124456`.)" msgstr "" -#: whatsnew/3.14.rst:1178 +#: whatsnew/3.14.rst:1053 msgid "" -"Introduced the optional *color* parameter to :class:`argparse." -"ArgumentParser`, enabling color for help text. This can be controlled by :" -"ref:`environment variables `. Color has also " -"been enabled for help in the :ref:`stdlib CLIs ` which use :" -"mod:`!argparse`. (Contributed by Hugo van Kemenade in :gh:`130645`.)" +"Enable color for help text, which can be disabled with the optional *color* " +"parameter to :class:`argparse.ArgumentParser`. This can also be controlled " +"by :ref:`environment variables `. (Contributed " +"by Hugo van Kemenade in :gh:`130645`.)" msgstr "" -#: whatsnew/3.14.rst:2410 +#: whatsnew/3.14.rst:2320 msgid "ast" msgstr "" -#: whatsnew/3.14.rst:1189 +#: whatsnew/3.14.rst:1063 msgid "" -"Add :func:`ast.compare` for comparing two ASTs. (Contributed by Batuhan " -"Taskaya and Jeremy Hylton in :gh:`60191`.)" +"Add :func:`~ast.compare`, a function for comparing two ASTs. (Contributed by " +"Batuhan Taskaya and Jeremy Hylton in :gh:`60191`.)" msgstr "" -#: whatsnew/3.14.rst:1192 +#: whatsnew/3.14.rst:1066 msgid "" "Add support for :func:`copy.replace` for AST nodes. (Contributed by Bénédikt " "Tran in :gh:`121141`.)" msgstr "" -#: whatsnew/3.14.rst:1195 +#: whatsnew/3.14.rst:1069 msgid "" "Docstrings are now removed from an optimized AST in optimization level 2. " "(Contributed by Irit Katriel in :gh:`123958`.)" msgstr "" -#: whatsnew/3.14.rst:1198 +#: whatsnew/3.14.rst:1072 msgid "" -"The ``repr()`` output for AST nodes now includes more information. " +"The :func:`repr` output for AST nodes now includes more information. " "(Contributed by Tomas Roun in :gh:`116022`.)" msgstr "" -#: whatsnew/3.14.rst:1201 +#: whatsnew/3.14.rst:1075 msgid "" -":func:`ast.parse`, when called with an AST as input, now always verifies " -"that the root node type is appropriate. (Contributed by Irit Katriel in :gh:" -"`130139`.)" +"When called with an AST as input, the :func:`~ast.parse` function now always " +"verifies that the root node type is appropriate. (Contributed by Irit " +"Katriel in :gh:`130139`.)" msgstr "" -#: whatsnew/3.14.rst:1205 +#: whatsnew/3.14.rst:1079 msgid "" -"Add new ``--feature-version``, ``--optimize``, ``--show-empty`` options to " -"command-line interface. (Contributed by Semyon Moroz in :gh:`133367`.)" +"Add new options to the command-line interface: :option:`--feature-version " +"`, :option:`--optimize `, and :option:" +"`--show-empty `. (Contributed by Semyon Moroz in :gh:" +"`133367`.)" msgstr "" -#: whatsnew/3.14.rst:2186 whatsnew/3.14.rst:2438 +#: whatsnew/3.14.rst:2162 whatsnew/3.14.rst:2351 msgid "asyncio" msgstr "" -#: whatsnew/3.14.rst:1213 +#: whatsnew/3.14.rst:1089 msgid "" "The function and methods named :func:`!create_task` now take an arbitrary " "list of keyword arguments. All keyword arguments are passed to the :class:" @@ -1737,28 +1531,31 @@ msgid "" "``name`` keyword argument of the factory, and ``context`` may be ``None``." msgstr "" -#: whatsnew/3.14.rst:1221 +#: whatsnew/3.14.rst:1097 msgid "" "This affects the following function and methods: :meth:`asyncio." "create_task`, :meth:`asyncio.loop.create_task`, :meth:`asyncio.TaskGroup." -"create_task`. (Contributed by Thomas Grainger in :gh:`128307`.)" +"create_task`." msgstr "" -#: whatsnew/3.14.rst:1229 -msgid "bdb" +#: whatsnew/3.14.rst:1102 +msgid "(Contributed by Thomas Grainger in :gh:`128307`.)" msgstr "" -#: whatsnew/3.14.rst:1231 +#: whatsnew/3.14.rst:1104 msgid "" -"The :mod:`bdb` module now supports the :mod:`sys.monitoring` backend. " -"(Contributed by Tian Gao in :gh:`124533`.)" +"There are two new utility functions for introspecting and printing a " +"program's call graph: :func:`~asyncio.capture_call_graph` and :func:" +"`~asyncio.print_call_graph`. See :ref:`Asyncio introspection capabilities " +"` for more details. (Contributed by Yury " +"Selivanov, Pablo Galindo Salgado, and Łukasz Langa in :gh:`91048`.)" msgstr "" -#: whatsnew/3.14.rst:1238 +#: whatsnew/3.14.rst:1114 msgid "calendar" msgstr "" -#: whatsnew/3.14.rst:1240 +#: whatsnew/3.14.rst:1118 msgid "" "By default, today's date is highlighted in color in :mod:`calendar`'s :ref:" "`command-line ` text output. This can be controlled by :ref:" @@ -1766,35 +1563,43 @@ msgid "" "van Kemenade in :gh:`128317`.)" msgstr "" -#: whatsnew/3.14.rst:1248 +#: whatsnew/3.14.rst:1126 msgid "concurrent.futures" msgstr "" -#: whatsnew/3.14.rst:1252 +#: whatsnew/3.14.rst:1130 +msgid "" +"Add a new executor class, :class:`~concurrent.futures." +"InterpreterPoolExecutor`, which exposes multiple Python interpreters in the " +"same process ('subinterpreters') to Python code. This uses a pool of " +"independent Python interpreters to execute calls asynchronously." +msgstr "" + +#: whatsnew/3.14.rst:1136 msgid "" -"Add :class:`~concurrent.futures.InterpreterPoolExecutor`, which exposes " -"\"subinterpreters\" (multiple Python interpreters in the same process) to " -"Python code. This is separate from the proposed API in :pep:`734`. " +"This is separate from the new :mod:`~concurrent.interpreters` module " +"introduced by :ref:`PEP 734 `. " "(Contributed by Eric Snow in :gh:`124548`.)" msgstr "" -#: whatsnew/3.14.rst:1260 +#: whatsnew/3.14.rst:1142 msgid "" -"The default :class:`~concurrent.futures.ProcessPoolExecutor` :ref:`start " -"method ` changed from :ref:`fork " -"` to :ref:`forkserver ` on platforms other than macOS and Windows where it " -"was already :ref:`spawn `." +"On Unix platforms other than macOS, :ref:`'forkserver' ` is now the default :ref:`start method " +"` for :class:`~concurrent.futures." +"ProcessPoolExecutor` (replacing :ref:`'fork' `). This change does not affect Windows or macOS, where :ref:`'spawn' " +"` remains the default start method." msgstr "" -#: whatsnew/3.14.rst:1266 +#: whatsnew/3.14.rst:1150 msgid "" "If the threading incompatible *fork* method is required, you must explicitly " "request it by supplying a multiprocessing context *mp_context* to :class:" "`~concurrent.futures.ProcessPoolExecutor`." msgstr "" -#: whatsnew/3.14.rst:1700 +#: whatsnew/3.14.rst:1604 msgid "" "See :ref:`forkserver restrictions ` " "for information and differences with the *fork* method and how this change " @@ -1802,68 +1607,70 @@ msgid "" "objects that can not be automatically :mod:`pickled `." msgstr "" -#: whatsnew/3.14.rst:1705 +#: whatsnew/3.14.rst:1609 msgid "(Contributed by Gregory P. Smith in :gh:`84559`.)" msgstr "" -#: whatsnew/3.14.rst:1277 +#: whatsnew/3.14.rst:1161 msgid "" -"Add :meth:`concurrent.futures.ProcessPoolExecutor.terminate_workers` and :" -"meth:`concurrent.futures.ProcessPoolExecutor.kill_workers` as ways to " -"terminate or kill all living worker processes in the given pool. " -"(Contributed by Charles Machalow in :gh:`130849`.)" +"Add two new methods to :class:`~concurrent.futures.ProcessPoolExecutor`, :" +"meth:`~concurrent.futures.ProcessPoolExecutor.terminate_workers` and :meth:" +"`~concurrent.futures.ProcessPoolExecutor.kill_workers`, as ways to terminate " +"or kill all living worker processes in the given pool. (Contributed by " +"Charles Machalow in :gh:`130849`.)" msgstr "" -#: whatsnew/3.14.rst:1282 +#: whatsnew/3.14.rst:1167 msgid "" -"Add the optional ``buffersize`` parameter to :meth:`concurrent.futures." -"Executor.map` to limit the number of submitted tasks whose results have not " -"yet been yielded. If the buffer is full, iteration over the *iterables* " -"pauses until a result is yielded from the buffer. (Contributed by Enzo " -"Bonnal and Josh Rosenberg in :gh:`74028`.)" +"Add the optional *buffersize* parameter to :meth:`Executor.map ` to limit the number of submitted tasks whose results " +"have not yet been yielded. If the buffer is full, iteration over the " +"*iterables* pauses until a result is yielded from the buffer. (Contributed " +"by Enzo Bonnal and Josh Rosenberg in :gh:`74028`.)" msgstr "" -#: whatsnew/3.14.rst:1290 +#: whatsnew/3.14.rst:1176 msgid "configparser" msgstr "" -#: whatsnew/3.14.rst:1292 +#: whatsnew/3.14.rst:1178 msgid "" -"Security fix: will no longer write config files it cannot read. Attempting " -"to :meth:`configparser.ConfigParser.write` keys containing delimiters or " -"beginning with the section header pattern will raise a :class:`configparser." -"InvalidWriteError`. (Contributed by Jacob Lincoln in :gh:`129270`.)" +":mod:`!configparser` will no longer write config files it cannot read, to " +"improve security. Attempting to :meth:`~configparser.ConfigParser.write` " +"keys containing delimiters or beginning with the section header pattern will " +"raise an :class:`~configparser.InvalidWriteError`. (Contributed by Jacob " +"Lincoln in :gh:`129270`.)" msgstr "" -#: whatsnew/3.14.rst:1299 +#: whatsnew/3.14.rst:1187 msgid "contextvars" msgstr "" -#: whatsnew/3.14.rst:1301 +#: whatsnew/3.14.rst:1189 msgid "" -"Support context manager protocol by :class:`contextvars.Token`. (Contributed " -"by Andrew Svetlov in :gh:`129889`.)" +"Support the :term:`context manager` protocol for :class:`~contextvars.Token` " +"objects. (Contributed by Andrew Svetlov in :gh:`129889`.)" msgstr "" -#: whatsnew/3.14.rst:1306 +#: whatsnew/3.14.rst:1195 msgid "ctypes" msgstr "" -#: whatsnew/3.14.rst:1308 +#: whatsnew/3.14.rst:1197 msgid "" "The layout of :ref:`bit fields ` in :" -"class:`~ctypes.Structure` and :class:`~ctypes.Union` now matches platform " -"defaults (GCC/Clang or MSVC) more closely. In particular, fields no longer " -"overlap. (Contributed by Matthias Görgens in :gh:`97702`.)" +"class:`~ctypes.Structure` and :class:`~ctypes.Union` objects is now a closer " +"match to platform defaults (GCC/Clang or MSVC). In particular, fields no " +"longer overlap. (Contributed by Matthias Görgens in :gh:`97702`.)" msgstr "" -#: whatsnew/3.14.rst:1314 +#: whatsnew/3.14.rst:1203 msgid "" "The :attr:`.Structure._layout_` class attribute can now be set to help match " "a non-default ABI. (Contributed by Petr Viktorin in :gh:`97702`.)" msgstr "" -#: whatsnew/3.14.rst:1318 +#: whatsnew/3.14.rst:1207 msgid "" "The class of :class:`~ctypes.Structure`/:class:`~ctypes.Union` field " "descriptors is now available as :class:`~ctypes.CField`, and has new " @@ -1871,117 +1678,118 @@ msgid "" "in :gh:`128715`.)" msgstr "" -#: whatsnew/3.14.rst:1323 +#: whatsnew/3.14.rst:1212 msgid "" "On Windows, the :exc:`~ctypes.COMError` exception is now public. " "(Contributed by Jun Komoda in :gh:`126686`.)" msgstr "" -#: whatsnew/3.14.rst:1326 +#: whatsnew/3.14.rst:1215 msgid "" "On Windows, the :func:`~ctypes.CopyComPointer` function is now public. " "(Contributed by Jun Komoda in :gh:`127275`.)" msgstr "" -#: whatsnew/3.14.rst:1329 +#: whatsnew/3.14.rst:1218 msgid "" -":func:`ctypes.memoryview_at` now exists to create a :class:`memoryview` " -"object that refers to the supplied pointer and length. This works like :func:" -"`ctypes.string_at` except it avoids a buffer copy, and is typically useful " -"when implementing pure Python callback functions that are passed dynamically-" -"sized buffers. (Contributed by Rian Hunter in :gh:`112018`.)" +"Add :func:`~ctypes.memoryview_at`, a function to create a :class:" +"`memoryview` object that refers to the supplied pointer and length. This " +"works like :func:`ctypes.string_at` except it avoids a buffer copy, and is " +"typically useful when implementing pure Python callback functions that are " +"passed dynamically-sized buffers. (Contributed by Rian Hunter in :gh:" +"`112018`.)" msgstr "" -#: whatsnew/3.14.rst:1336 +#: whatsnew/3.14.rst:1225 msgid "" "Complex types, :class:`~ctypes.c_float_complex`, :class:`~ctypes." -"c_double_complex` and :class:`~ctypes.c_longdouble_complex`, are now " +"c_double_complex`, and :class:`~ctypes.c_longdouble_complex`, are now " "available if both the compiler and the ``libffi`` library support complex C " "types. (Contributed by Sergey B Kirpichev in :gh:`61103`.)" msgstr "" -#: whatsnew/3.14.rst:1342 +#: whatsnew/3.14.rst:1231 msgid "" "Add :func:`ctypes.util.dllist` for listing the shared libraries loaded by " "the current process. (Contributed by Brian Ward in :gh:`119349`.)" msgstr "" -#: whatsnew/3.14.rst:1346 +#: whatsnew/3.14.rst:1235 msgid "" "Move :func:`ctypes.POINTER` types cache from a global internal cache " -"(``_pointer_type_cache``) to the :attr:`ctypes._CData.__pointer_type__` " -"attribute of the corresponding :mod:`ctypes` types. This will stop the cache " -"from growing without limits in some situations. (Contributed by Sergey " -"Miryanov in :gh:`100926`.)" +"(``_pointer_type_cache``) to the :attr:`_CData.__pointer_type__ ` attribute of the corresponding :mod:`!ctypes` " +"types. This will stop the cache from growing without limits in some " +"situations. (Contributed by Sergey Miryanov in :gh:`100926`.)" msgstr "" -#: whatsnew/3.14.rst:1352 +#: whatsnew/3.14.rst:1242 msgid "" -"The :class:`ctypes.py_object` type now supports subscription, making it a :" +"The :class:`~ctypes.py_object` type now supports subscription, making it a :" "term:`generic type`. (Contributed by Brian Schubert in :gh:`132168`.)" msgstr "" -#: whatsnew/3.14.rst:1356 +#: whatsnew/3.14.rst:1246 msgid "" -":mod:`ctypes` now supports :term:`free-threading builds `. " +":mod:`!ctypes` now supports :term:`free-threading builds `. " "(Contributed by Kumar Aditya and Peter Bierma in :gh:`127945`.)" msgstr "" -#: whatsnew/3.14.rst:1360 +#: whatsnew/3.14.rst:1251 msgid "curses" msgstr "" -#: whatsnew/3.14.rst:1362 +#: whatsnew/3.14.rst:1253 msgid "" "Add the :func:`~curses.assume_default_colors` function, a refinement of the :" -"func:`~curses.use_default_colors` function which allows to change the color " +"func:`~curses.use_default_colors` function which allows changing the color " "pair ``0``. (Contributed by Serhiy Storchaka in :gh:`133139`.)" msgstr "" -#: whatsnew/3.14.rst:1368 +#: whatsnew/3.14.rst:1260 msgid "datetime" msgstr "" -#: whatsnew/3.14.rst:1370 +#: whatsnew/3.14.rst:1262 msgid "" -"Add :meth:`datetime.time.strptime` and :meth:`datetime.date.strptime`. " -"(Contributed by Wannes Boeykens in :gh:`41431`.)" +"Add the :meth:`~datetime.date.strptime` method to the :class:`datetime.date` " +"and :class:`datetime.time` classes. (Contributed by Wannes Boeykens in :gh:" +"`41431`.)" msgstr "" -#: whatsnew/3.14.rst:1374 +#: whatsnew/3.14.rst:1268 msgid "decimal" msgstr "" -#: whatsnew/3.14.rst:1376 +#: whatsnew/3.14.rst:1270 msgid "" -"Add alternative :class:`~decimal.Decimal` constructor :meth:`Decimal." -"from_number() `. (Contributed by Serhiy " -"Storchaka in :gh:`121798`.)" +"Add :meth:`.Decimal.from_number` as an alternative constructor for :class:" +"`~decimal.Decimal`. (Contributed by Serhiy Storchaka in :gh:`121798`.)" msgstr "" -#: whatsnew/3.14.rst:1380 +#: whatsnew/3.14.rst:1274 msgid "" -"Expose :func:`decimal.IEEEContext` to support creation of contexts " +"Expose :func:`~decimal.IEEEContext` to support creation of contexts " "corresponding to the IEEE 754 (2008) decimal interchange formats. " "(Contributed by Sergey B Kirpichev in :gh:`53032`.)" msgstr "" -#: whatsnew/3.14.rst:1385 +#: whatsnew/3.14.rst:2198 msgid "difflib" msgstr "" -#: whatsnew/3.14.rst:1387 +#: whatsnew/3.14.rst:1282 msgid "" -"Comparison pages with highlighted changes generated by the :class:`difflib." -"HtmlDiff` class now support dark mode. (Contributed by Jiahao Li in :gh:" +"Comparison pages with highlighted changes generated by the :class:`~difflib." +"HtmlDiff` class now support 'dark mode'. (Contributed by Jiahao Li in :gh:" "`129939`.)" msgstr "" -#: whatsnew/3.14.rst:1392 +#: whatsnew/3.14.rst:1288 msgid "dis" msgstr "" -#: whatsnew/3.14.rst:1394 +#: whatsnew/3.14.rst:1290 msgid "" "Add support for rendering full source location information of :class:" "`instructions `, rather than only the line number. This " @@ -1989,191 +1797,194 @@ msgid "" "keyword argument:" msgstr "" -#: whatsnew/3.14.rst:1399 +#: whatsnew/3.14.rst:1295 msgid ":class:`dis.Bytecode`" msgstr "" -#: whatsnew/3.14.rst:1400 +#: whatsnew/3.14.rst:1296 msgid ":func:`dis.dis`" msgstr "" -#: whatsnew/3.14.rst:1401 +#: whatsnew/3.14.rst:1297 msgid ":func:`dis.distb`" msgstr "" -#: whatsnew/3.14.rst:1402 +#: whatsnew/3.14.rst:1298 msgid ":func:`dis.disassemble`" msgstr "" -#: whatsnew/3.14.rst:1404 +#: whatsnew/3.14.rst:1300 msgid "" "This feature is also exposed via :option:`dis --show-positions`. " "(Contributed by Bénédikt Tran in :gh:`123165`.)" msgstr "" -#: whatsnew/3.14.rst:1407 +#: whatsnew/3.14.rst:1303 msgid "" "Add the :option:`dis --specialized` command-line option to show specialized " "bytecode. (Contributed by Bénédikt Tran in :gh:`127413`.)" msgstr "" -#: whatsnew/3.14.rst:1413 +#: whatsnew/3.14.rst:1309 msgid "errno" msgstr "" -#: whatsnew/3.14.rst:1415 +#: whatsnew/3.14.rst:1311 msgid "" -"Add :data:`errno.EHWPOISON` error code. (Contributed by James Roy in :gh:" -"`126585`.)" +"Add the :data:`~errno.EHWPOISON` error code constant. (Contributed by James " +"Roy in :gh:`126585`.)" msgstr "" -#: whatsnew/3.14.rst:1420 +#: whatsnew/3.14.rst:1316 msgid "faulthandler" msgstr "" -#: whatsnew/3.14.rst:1422 +#: whatsnew/3.14.rst:1318 msgid "" "Add support for printing the C stack trace on systems that :ref:`support it " -"` via :func:`faulthandler.dump_c_stack` or via the " -"*c_stack* argument in :func:`faulthandler.enable`. (Contributed by Peter " -"Bierma in :gh:`127604`.)" +"` via the new :func:`~faulthandler.dump_c_stack` " +"function or via the *c_stack* argument in :func:`faulthandler.enable`. " +"(Contributed by Peter Bierma in :gh:`127604`.)" msgstr "" -#: whatsnew/3.14.rst:1429 +#: whatsnew/3.14.rst:1326 msgid "fnmatch" msgstr "" -#: whatsnew/3.14.rst:1431 +#: whatsnew/3.14.rst:1328 msgid "" -"Added :func:`fnmatch.filterfalse` for excluding names matching a pattern. " -"(Contributed by Bénédikt Tran in :gh:`74598`.)" +"Add :func:`~fnmatch.filterfalse`, a function to reject names matching a " +"given pattern. (Contributed by Bénédikt Tran in :gh:`74598`.)" msgstr "" -#: whatsnew/3.14.rst:1436 +#: whatsnew/3.14.rst:1334 msgid "fractions" msgstr "" -#: whatsnew/3.14.rst:1438 +#: whatsnew/3.14.rst:1336 msgid "" -"Add support for converting any objects that have the :meth:`!" -"as_integer_ratio` method to a :class:`~fractions.Fraction`. (Contributed by " -"Serhiy Storchaka in :gh:`82017`.)" +"A :class:`~fractions.Fraction` object may now be constructed from any object " +"with the :meth:`!as_integer_ratio` method. (Contributed by Serhiy Storchaka " +"in :gh:`82017`.)" msgstr "" -#: whatsnew/3.14.rst:1442 +#: whatsnew/3.14.rst:1340 msgid "" -"Add alternative :class:`~fractions.Fraction` constructor :meth:`Fraction." -"from_number() `. (Contributed by Serhiy " -"Storchaka in :gh:`121797`.)" +"Add :meth:`.Fraction.from_number` as an alternative constructor for :class:" +"`~fractions.Fraction`. (Contributed by Serhiy Storchaka in :gh:`121797`.)" msgstr "" -#: whatsnew/3.14.rst:1448 +#: whatsnew/3.14.rst:1346 msgid "functools" msgstr "" -#: whatsnew/3.14.rst:1450 +#: whatsnew/3.14.rst:1348 msgid "" -"Add support to :func:`functools.partial` and :func:`functools.partialmethod` " -"for :data:`functools.Placeholder` sentinels to reserve a place for " -"positional arguments. (Contributed by Dominykas Grigonis in :gh:`119127`.)" +"Add the :data:`~functools.Placeholder` sentinel. This may be used with the :" +"func:`~functools.partial` or :func:`~functools.partialmethod` functions to " +"reserve a place for positional arguments in the returned :ref:`partial " +"object `. (Contributed by Dominykas Grigonis in :gh:" +"`119127`.)" msgstr "" -#: whatsnew/3.14.rst:1455 +#: whatsnew/3.14.rst:1355 msgid "" -"Allow the *initial* parameter of :func:`functools.reduce` to be passed as a " +"Allow the *initial* parameter of :func:`~functools.reduce` to be passed as a " "keyword argument. (Contributed by Sayandip Dutta in :gh:`125916`.)" msgstr "" -#: whatsnew/3.14.rst:1461 +#: whatsnew/3.14.rst:1361 msgid "getopt" msgstr "" -#: whatsnew/3.14.rst:1463 +#: whatsnew/3.14.rst:1363 msgid "" "Add support for options with optional arguments. (Contributed by Serhiy " "Storchaka in :gh:`126374`.)" msgstr "" -#: whatsnew/3.14.rst:1466 +#: whatsnew/3.14.rst:1366 msgid "" "Add support for returning intermixed options and non-option arguments in " "order. (Contributed by Serhiy Storchaka in :gh:`126390`.)" msgstr "" -#: whatsnew/3.14.rst:1471 +#: whatsnew/3.14.rst:1371 msgid "getpass" msgstr "" -#: whatsnew/3.14.rst:1473 +#: whatsnew/3.14.rst:1373 msgid "" -"Support keyboard feedback by :func:`getpass.getpass` via the keyword-only " -"optional argument ``echo_char``. Placeholder characters are rendered " -"whenever a character is entered, and removed when a character is deleted. " -"(Contributed by Semyon Moroz in :gh:`77065`.)" +"Support keyboard feedback in the :func:`~getpass.getpass` function via the " +"keyword-only optional argument *echo_char*. Placeholder characters are " +"rendered whenever a character is entered, and removed when a character is " +"deleted. (Contributed by Semyon Moroz in :gh:`77065`.)" msgstr "" -#: whatsnew/3.14.rst:1480 +#: whatsnew/3.14.rst:1381 msgid "graphlib" msgstr "" -#: whatsnew/3.14.rst:1482 +#: whatsnew/3.14.rst:1383 msgid "" -"Allow :meth:`graphlib.TopologicalSorter.prepare` to be called more than once " -"as long as sorting has not started. (Contributed by Daniel Pope in :gh:" -"`130914`.)" +"Allow :meth:`.TopologicalSorter.prepare` to be called more than once as long " +"as sorting has not started. (Contributed by Daniel Pope in :gh:`130914`.)" msgstr "" -#: whatsnew/3.14.rst:1488 +#: whatsnew/3.14.rst:1389 msgid "heapq" msgstr "" -#: whatsnew/3.14.rst:1490 -msgid "Add functions for working with max-heaps:" +#: whatsnew/3.14.rst:1391 +msgid "" +"The :mod:`!heapq` module has improved support for working with max-heaps, " +"via the following new functions:" msgstr "" -#: whatsnew/3.14.rst:1492 -msgid ":func:`heapq.heapify_max`," +#: whatsnew/3.14.rst:1394 +msgid ":func:`~heapq.heapify_max`" msgstr "" -#: whatsnew/3.14.rst:1493 -msgid ":func:`heapq.heappush_max`," +#: whatsnew/3.14.rst:1395 +msgid ":func:`~heapq.heappush_max`" msgstr "" -#: whatsnew/3.14.rst:1494 -msgid ":func:`heapq.heappop_max`," +#: whatsnew/3.14.rst:1396 +msgid ":func:`~heapq.heappop_max`" msgstr "" -#: whatsnew/3.14.rst:1495 -msgid ":func:`heapq.heapreplace_max`" +#: whatsnew/3.14.rst:1397 +msgid ":func:`~heapq.heapreplace_max`" msgstr "" -#: whatsnew/3.14.rst:1496 -msgid ":func:`heapq.heappushpop_max`" +#: whatsnew/3.14.rst:1398 +msgid ":func:`~heapq.heappushpop_max`" msgstr "" -#: whatsnew/3.14.rst:1500 +#: whatsnew/3.14.rst:1402 msgid "hmac" msgstr "" -#: whatsnew/3.14.rst:1502 +#: whatsnew/3.14.rst:1404 msgid "" "Add a built-in implementation for HMAC (:rfc:`2104`) using formally verified " "code from the `HACL* `__ project. " -"(Contributed by Bénédikt Tran in :gh:`99108`.)" +"This implementation is used as a fallback when the OpenSSL implementation of " +"HMAC is not available. (Contributed by Bénédikt Tran in :gh:`99108`.)" msgstr "" -#: whatsnew/3.14.rst:1508 +#: whatsnew/3.14.rst:1412 msgid "http" msgstr "" -#: whatsnew/3.14.rst:1510 +#: whatsnew/3.14.rst:1414 msgid "" "Directory lists and error pages generated by the :mod:`http.server` module " "allow the browser to apply its default dark mode. (Contributed by Yorik " "Hansen in :gh:`123430`.)" msgstr "" -#: whatsnew/3.14.rst:1514 +#: whatsnew/3.14.rst:1418 msgid "" "The :mod:`http.server` module now supports serving over HTTPS using the :" "class:`http.server.HTTPSServer` class. This functionality is exposed by the " @@ -2181,97 +1992,101 @@ msgid "" "options:" msgstr "" -#: whatsnew/3.14.rst:1519 -msgid "``--tls-cert ``: Path to the TLS certificate file." +#: whatsnew/3.14.rst:1423 +msgid "" +":option:`--tls-cert \\ `: Path to the TLS " +"certificate file." msgstr "" -#: whatsnew/3.14.rst:1520 -msgid "``--tls-key ``: Optional path to the private key file." +#: whatsnew/3.14.rst:1425 +msgid "" +":option:`--tls-key \\ `: Optional path to the " +"private key file." msgstr "" -#: whatsnew/3.14.rst:1521 +#: whatsnew/3.14.rst:1427 msgid "" -"``--tls-password-file ``: Optional path to the password file for the " -"private key." +":option:`--tls-password-file \\ `: " +"Optional path to the password file for the private key." msgstr "" -#: whatsnew/3.14.rst:1523 +#: whatsnew/3.14.rst:1430 msgid "(Contributed by Semyon Moroz in :gh:`85162`.)" msgstr "" -#: whatsnew/3.14.rst:1527 +#: whatsnew/3.14.rst:1434 msgid "imaplib" msgstr "" -#: whatsnew/3.14.rst:1529 +#: whatsnew/3.14.rst:1436 msgid "" -"Add :meth:`IMAP4.idle() `, implementing the IMAP4 " -"``IDLE`` command as defined in :rfc:`2177`. (Contributed by Forest in :gh:" -"`55454`.)" +"Add :meth:`.IMAP4.idle`, implementing the IMAP4 ``IDLE`` command as defined " +"in :rfc:`2177`. (Contributed by Forest in :gh:`55454`.)" msgstr "" -#: whatsnew/3.14.rst:1535 +#: whatsnew/3.14.rst:1442 msgid "inspect" msgstr "" -#: whatsnew/3.14.rst:1537 +#: whatsnew/3.14.rst:1444 msgid "" -":func:`inspect.signature` takes a new argument *annotation_format* to " +":func:`~inspect.signature` takes a new argument *annotation_format* to " "control the :class:`annotationlib.Format` used for representing annotations. " "(Contributed by Jelle Zijlstra in :gh:`101552`.)" msgstr "" -#: whatsnew/3.14.rst:1541 +#: whatsnew/3.14.rst:1448 msgid "" -":meth:`inspect.Signature.format` takes a new argument *unquote_annotations*. " -"If true, string :term:`annotations ` are displayed without " +":meth:`.Signature.format` takes a new argument *unquote_annotations*. If " +"true, string :term:`annotations ` are displayed without " "surrounding quotes. (Contributed by Jelle Zijlstra in :gh:`101552`.)" msgstr "" -#: whatsnew/3.14.rst:1545 +#: whatsnew/3.14.rst:1453 msgid "" -"Add function :func:`inspect.ispackage` to determine whether an object is a :" +"Add function :func:`~inspect.ispackage` to determine whether an object is a :" "term:`package` or not. (Contributed by Zhikang Yan in :gh:`125634`.)" msgstr "" -#: whatsnew/3.14.rst:2216 +#: whatsnew/3.14.rst:2240 msgid "io" msgstr "" -#: whatsnew/3.14.rst:1553 +#: whatsnew/3.14.rst:1461 msgid "" "Reading text from a non-blocking stream with ``read`` may now raise a :exc:" "`BlockingIOError` if the operation cannot immediately return bytes. " "(Contributed by Giovanni Siragusa in :gh:`109523`.)" msgstr "" -#: whatsnew/3.14.rst:1557 +#: whatsnew/3.14.rst:1465 msgid "" -"Add protocols :class:`io.Reader` and :class:`io.Writer` as a simpler " +"Add the :class:`~io.Reader` and :class:`~io.Writer` protocols as simpler " "alternatives to the pseudo-protocols :class:`typing.IO`, :class:`typing." "TextIO`, and :class:`typing.BinaryIO`. (Contributed by Sebastian Rittau in :" "gh:`127648`.)" msgstr "" -#: whatsnew/3.14.rst:1564 +#: whatsnew/3.14.rst:1472 msgid "json" msgstr "" -#: whatsnew/3.14.rst:1566 +#: whatsnew/3.14.rst:1474 msgid "" -"Add notes for JSON serialization errors that allow to identify the source of " -"the error. (Contributed by Serhiy Storchaka in :gh:`122163`.)" +"Add exception notes for JSON serialization errors that allow identifying the " +"source of the error. (Contributed by Serhiy Storchaka in :gh:`122163`.)" msgstr "" -#: whatsnew/3.14.rst:1570 +#: whatsnew/3.14.rst:1478 msgid "" -"Enable the :mod:`json` module to work as a script using the :option:`-m` " -"switch: :program:`python -m json`. See the :ref:`JSON command-line interface " -"` documentation. (Contributed by Trey Hunner in :gh:" -"`122873`.)" +"Allow using the :mod:`json` module as a script using the :option:`-m` " +"switch: :program:`python -m json`. This is now preferred to :program:`python " +"-m json.tool`, which is :term:`soft deprecated`. See the :ref:`JSON command-" +"line interface ` documentation. (Contributed by Trey " +"Hunner in :gh:`122873`.)" msgstr "" -#: whatsnew/3.14.rst:1577 +#: whatsnew/3.14.rst:1485 msgid "" "By default, the output of the :ref:`JSON command-line interface ` is highlighted in color. This can be controlled by :ref:" @@ -2279,412 +2094,434 @@ msgid "" "Roun in :gh:`131952`.)" msgstr "" -#: whatsnew/3.14.rst:1584 +#: whatsnew/3.14.rst:1493 msgid "linecache" msgstr "" -#: whatsnew/3.14.rst:1586 +#: whatsnew/3.14.rst:1495 msgid "" -":func:`linecache.getline` can retrieve source code for frozen modules. " +":func:`~linecache.getline` can now retrieve source code for frozen modules. " "(Contributed by Tian Gao in :gh:`131638`.)" msgstr "" -#: whatsnew/3.14.rst:1591 +#: whatsnew/3.14.rst:1500 msgid "logging.handlers" msgstr "" -#: whatsnew/3.14.rst:1593 +#: whatsnew/3.14.rst:1502 msgid "" -":class:`logging.handlers.QueueListener` now implements the context manager " -"protocol, allowing it to be used in a :keyword:`with` statement. " -"(Contributed by Charles Machalow in :gh:`132106`.)" +":class:`~logging.handlers.QueueListener` objects now support the :term:" +"`context manager` protocol. (Contributed by Charles Machalow in :gh:" +"`132106`.)" msgstr "" -#: whatsnew/3.14.rst:1597 +#: whatsnew/3.14.rst:1506 msgid "" ":meth:`QueueListener.start ` now " "raises a :exc:`RuntimeError` if the listener is already started. " "(Contributed by Charles Machalow in :gh:`132106`.)" msgstr "" -#: whatsnew/3.14.rst:1603 +#: whatsnew/3.14.rst:1512 msgid "math" msgstr "" -#: whatsnew/3.14.rst:1605 +#: whatsnew/3.14.rst:1514 msgid "" "Added more detailed error messages for domain errors in the module. " -"(Contributed by by Charlie Zhao and Sergey B Kirpichev in :gh:`101410`.)" +"(Contributed by Charlie Zhao and Sergey B Kirpichev in :gh:`101410`.)" msgstr "" -#: whatsnew/3.14.rst:1610 +#: whatsnew/3.14.rst:1519 msgid "mimetypes" msgstr "" -#: whatsnew/3.14.rst:1612 +#: whatsnew/3.14.rst:1521 msgid "" -"Document the command-line for :mod:`mimetypes`. It now exits with ``1`` on " -"failure instead of ``0`` and ``2`` on incorrect command-line parameters " -"instead of ``1``. Also, errors are printed to stderr instead of stdout and " -"their text is made tighter. (Contributed by Oleg Iarygin and Hugo van " -"Kemenade in :gh:`93096`.)" +"Add a public :ref:`command-line ` for the module, invoked " +"via :program:`python -m mimetypes`. (Contributed by Oleg Iarygin and Hugo " +"van Kemenade in :gh:`93096`.)" msgstr "" -#: whatsnew/3.14.rst:1619 -msgid "Add MS and :rfc:`8081` MIME types for fonts:" +#: whatsnew/3.14.rst:1525 +msgid "Add several new MIME types based on RFCs and common usage:" msgstr "" -#: whatsnew/3.14.rst:1621 +#: whatsnew/3.14.rst:0 +msgid "Microsoft and :rfc:`8081` MIME types for fonts" +msgstr "" + +#: whatsnew/3.14.rst:1529 msgid "Embedded OpenType: ``application/vnd.ms-fontobject``" msgstr "" -#: whatsnew/3.14.rst:1622 +#: whatsnew/3.14.rst:1530 msgid "OpenType Layout (OTF) ``font/otf``" msgstr "" -#: whatsnew/3.14.rst:1623 +#: whatsnew/3.14.rst:1531 msgid "TrueType: ``font/ttf``" msgstr "" -#: whatsnew/3.14.rst:1624 +#: whatsnew/3.14.rst:1532 msgid "WOFF 1.0 ``font/woff``" msgstr "" -#: whatsnew/3.14.rst:1625 +#: whatsnew/3.14.rst:1533 msgid "WOFF 2.0 ``font/woff2``" msgstr "" -#: whatsnew/3.14.rst:1627 -msgid "(Contributed by Sahil Prajapati and Hugo van Kemenade in :gh:`84852`.)" -msgstr "" - -#: whatsnew/3.14.rst:1629 +#: whatsnew/3.14.rst:0 msgid "" -"Add :rfc:`9559` MIME types for Matroska audiovisual data container " -"structures, containing:" +":rfc:`9559` MIME types for Matroska audiovisual data container structures" msgstr "" -#: whatsnew/3.14.rst:1632 +#: whatsnew/3.14.rst:1538 msgid "audio with no video: ``audio/matroska`` (``.mka``)" msgstr "" -#: whatsnew/3.14.rst:1633 +#: whatsnew/3.14.rst:1539 msgid "video: ``video/matroska`` (``.mkv``)" msgstr "" -#: whatsnew/3.14.rst:1634 +#: whatsnew/3.14.rst:1540 msgid "stereoscopic video: ``video/matroska-3d`` (``.mk3d``)" msgstr "" -#: whatsnew/3.14.rst:1636 -msgid "(Contributed by Hugo van Kemenade in :gh:`89416`.)" -msgstr "" - -#: whatsnew/3.14.rst:1638 -msgid "Add MIME types for images with RFCs:" +#: whatsnew/3.14.rst:0 +msgid "Images with RFCs" msgstr "" -#: whatsnew/3.14.rst:1640 +#: whatsnew/3.14.rst:1544 msgid ":rfc:`1494`: CCITT Group 3 (``.g3``)" msgstr "" -#: whatsnew/3.14.rst:1641 +#: whatsnew/3.14.rst:1545 msgid ":rfc:`3362`: Real-time Facsimile, T.38 (``.t38``)" msgstr "" -#: whatsnew/3.14.rst:1642 +#: whatsnew/3.14.rst:1546 msgid "" ":rfc:`3745`: JPEG 2000 (``.jp2``), extension (``.jpx``) and compound (``." "jpm``)" msgstr "" -#: whatsnew/3.14.rst:1643 +#: whatsnew/3.14.rst:1547 msgid ":rfc:`3950`: Tag Image File Format Fax eXtended, TIFF-FX (``.tfx``)" msgstr "" -#: whatsnew/3.14.rst:1644 +#: whatsnew/3.14.rst:1548 msgid ":rfc:`4047`: Flexible Image Transport System (``.fits``)" msgstr "" -#: whatsnew/3.14.rst:1645 +#: whatsnew/3.14.rst:1549 msgid "" ":rfc:`7903`: Enhanced Metafile (``.emf``) and Windows Metafile (``.wmf``)" msgstr "" -#: whatsnew/3.14.rst:1647 -msgid "(Contributed by Hugo van Kemenade in :gh:`85957`.)" -msgstr "" - -#: whatsnew/3.14.rst:1649 -msgid "More MIME type changes:" +#: whatsnew/3.14.rst:0 +msgid "Other MIME type additions and changes" msgstr "" -#: whatsnew/3.14.rst:1651 +#: whatsnew/3.14.rst:1553 msgid "" ":rfc:`2361`: Change type for ``.avi`` to ``video/vnd.avi`` and for ``.wav`` " "to ``audio/vnd.wave``" msgstr "" -#: whatsnew/3.14.rst:1653 +#: whatsnew/3.14.rst:1555 msgid ":rfc:`4337`: Add MPEG-4 ``audio/mp4`` (``.m4a``)" msgstr "" -#: whatsnew/3.14.rst:1654 +#: whatsnew/3.14.rst:1556 msgid ":rfc:`5334`: Add Ogg media (``.oga``, ``.ogg`` and ``.ogx``)" msgstr "" -#: whatsnew/3.14.rst:1655 +#: whatsnew/3.14.rst:1557 msgid ":rfc:`6713`: Add gzip ``application/gzip`` (``.gz``)" msgstr "" -#: whatsnew/3.14.rst:1656 +#: whatsnew/3.14.rst:1558 msgid ":rfc:`9639`: Add FLAC ``audio/flac`` (``.flac``)" msgstr "" -#: whatsnew/3.14.rst:1657 +#: whatsnew/3.14.rst:1559 +msgid "" +":rfc:`9512` ``application/yaml`` MIME type for YAML files (``.yaml`` and ``." +"yml``)" +msgstr "" + +#: whatsnew/3.14.rst:1561 msgid "Add 7z ``application/x-7z-compressed`` (``.7z``)" msgstr "" -#: whatsnew/3.14.rst:1658 +#: whatsnew/3.14.rst:1562 msgid "" "Add Android Package ``application/vnd.android.package-archive`` (``.apk``) " "when not strict" msgstr "" -#: whatsnew/3.14.rst:1660 +#: whatsnew/3.14.rst:1564 msgid "Add deb ``application/x-debian-package`` (``.deb``)" msgstr "" -#: whatsnew/3.14.rst:1661 +#: whatsnew/3.14.rst:1565 msgid "Add glTF binary ``model/gltf-binary`` (``.glb``)" msgstr "" -#: whatsnew/3.14.rst:1662 +#: whatsnew/3.14.rst:1566 msgid "Add glTF JSON/ASCII ``model/gltf+json`` (``.gltf``)" msgstr "" -#: whatsnew/3.14.rst:1663 +#: whatsnew/3.14.rst:1567 msgid "Add M4V ``video/x-m4v`` (``.m4v``)" msgstr "" -#: whatsnew/3.14.rst:1664 +#: whatsnew/3.14.rst:1568 msgid "Add PHP ``application/x-httpd-php`` (``.php``)" msgstr "" -#: whatsnew/3.14.rst:1665 +#: whatsnew/3.14.rst:1569 msgid "Add RAR ``application/vnd.rar`` (``.rar``)" msgstr "" -#: whatsnew/3.14.rst:1666 +#: whatsnew/3.14.rst:1570 msgid "Add RPM ``application/x-rpm`` (``.rpm``)" msgstr "" -#: whatsnew/3.14.rst:1667 +#: whatsnew/3.14.rst:1571 msgid "Add STL ``model/stl`` (``.stl``)" msgstr "" -#: whatsnew/3.14.rst:1668 +#: whatsnew/3.14.rst:1572 msgid "Add Windows Media Video ``video/x-ms-wmv`` (``.wmv``)" msgstr "" -#: whatsnew/3.14.rst:1669 +#: whatsnew/3.14.rst:1573 msgid "De facto: Add WebM ``audio/webm`` (``.weba``)" msgstr "" -#: whatsnew/3.14.rst:1670 +#: whatsnew/3.14.rst:1574 msgid "" "`ECMA-376 `__: Add ``.docx``, ``.pptx`` and ``.xlsx`` types" msgstr "" -#: whatsnew/3.14.rst:1673 +#: whatsnew/3.14.rst:1577 msgid "" "`OASIS `__: Add OpenDocument ``.odg``, ``.odp``, ``.ods`` and " "``.odt`` types" msgstr "" -#: whatsnew/3.14.rst:1676 +#: whatsnew/3.14.rst:1580 msgid "" "`W3C `__: Add EPUB " "``application/epub+zip`` (``.epub``)" msgstr "" -#: whatsnew/3.14.rst:1679 -msgid "(Contributed by Hugo van Kemenade in :gh:`129965`.)" -msgstr "" - -#: whatsnew/3.14.rst:1681 +#: whatsnew/3.14.rst:1583 msgid "" -"Add :rfc:`9512` ``application/yaml`` MIME type for YAML files (``.yaml`` and " -"``.yml``). (Contributed by Sasha \"Nelie\" Chernykh and Hugo van Kemenade " -"in :gh:`132056`.)" +"(Contributed by Sahil Prajapati and Hugo van Kemenade in :gh:`84852`, by " +"Sasha \"Nelie\" Chernykh and Hugo van Kemenade in :gh:`132056`, and by Hugo " +"van Kemenade in :gh:`89416`, :gh:`85957`, and :gh:`129965`.)" msgstr "" -#: whatsnew/3.14.rst:1687 +#: whatsnew/3.14.rst:1589 msgid "multiprocessing" msgstr "" -#: whatsnew/3.14.rst:1691 +#: whatsnew/3.14.rst:1593 msgid "" -"The default :ref:`start method ` changed " -"from :ref:`fork ` to :ref:`forkserver " -"` on platforms other than macOS and " -"Windows where it was already :ref:`spawn `." +"On Unix platforms other than macOS, :ref:`'forkserver' ` is now the default :ref:`start method " +"` (replacing :ref:`'fork' `). This change does not affect Windows or macOS, where :" +"ref:`'spawn' ` remains the default start " +"method." msgstr "" -#: whatsnew/3.14.rst:1696 +#: whatsnew/3.14.rst:1600 msgid "" "If the threading incompatible *fork* method is required, you must explicitly " -"request it via a context from :func:`multiprocessing.get_context` " -"(preferred) or change the default via :func:`multiprocessing." +"request it via a context from :func:`~multiprocessing.get_context` " +"(preferred) or change the default via :func:`~multiprocessing." "set_start_method`." msgstr "" -#: whatsnew/3.14.rst:1707 +#: whatsnew/3.14.rst:1611 msgid "" -":mod:`multiprocessing`'s ``\"forkserver\"`` start method now authenticates " -"its control socket to avoid solely relying on filesystem permissions to " -"restrict what other processes could cause the forkserver to spawn workers " -"and run code. (Contributed by Gregory P. Smith for :gh:`97514`.)" +":mod:`multiprocessing`'s ``'forkserver'`` start method now authenticates its " +"control socket to avoid solely relying on filesystem permissions to restrict " +"what other processes could cause the forkserver to spawn workers and run " +"code. (Contributed by Gregory P. Smith for :gh:`97514`.)" msgstr "" -#: whatsnew/3.14.rst:1713 +#: whatsnew/3.14.rst:1617 msgid "" "The :ref:`multiprocessing proxy objects ` for " "*list* and *dict* types gain previously overlooked missing methods:" msgstr "" -#: whatsnew/3.14.rst:1716 +#: whatsnew/3.14.rst:1620 msgid ":meth:`!clear` and :meth:`!copy` for proxies of :class:`list`" msgstr "" -#: whatsnew/3.14.rst:1717 +#: whatsnew/3.14.rst:1621 msgid "" ":meth:`~dict.fromkeys`, ``reversed(d)``, ``d | {}``, ``{} | d``, ``d |= " "{'b': 2}`` for proxies of :class:`dict`" msgstr "" -#: whatsnew/3.14.rst:1720 +#: whatsnew/3.14.rst:1624 msgid "(Contributed by Roy Hyunjin Han for :gh:`103134`.)" msgstr "" -#: whatsnew/3.14.rst:1722 +#: whatsnew/3.14.rst:1626 msgid "" -"Add support for shared :class:`set` objects via :meth:`SyncManager.set() " -"`. The :func:`set` in :func:" -"`multiprocessing.Manager` method is now available. (Contributed by Mingyu " -"Park in :gh:`129949`.)" +"Add support for shared :class:`set` objects via :meth:`.SyncManager.set`. " +"The :func:`set` in :func:`~multiprocessing.Manager` method is now available. " +"(Contributed by Mingyu Park in :gh:`129949`.)" msgstr "" -#: whatsnew/3.14.rst:1727 +#: whatsnew/3.14.rst:1631 msgid "" -"Add :func:`multiprocessing.Process.interrupt` which terminates the child " -"process by sending :py:const:`~signal.SIGINT`. This enables :keyword:" -"`finally` clauses to print a stack trace for the terminated process. " -"(Contributed by Artem Pulkin in :gh:`131913`.)" +"Add the :meth:`~multiprocessing.Process.interrupt` to :class:" +"`multiprocessing.Process` objects, which terminates the child process by " +"sending :py:const:`~signal.SIGINT`. This enables :keyword:`finally` clauses " +"to print a stack trace for the terminated process. (Contributed by Artem " +"Pulkin in :gh:`131913`.)" msgstr "" -#: whatsnew/3.14.rst:1733 +#: whatsnew/3.14.rst:1639 msgid "operator" msgstr "" -#: whatsnew/3.14.rst:1735 +#: whatsnew/3.14.rst:1641 msgid "" -"Two new functions :func:`operator.is_none` and :func:`operator.is_not_none` " -"have been added, such that ``operator.is_none(obj)`` is equivalent to ``obj " -"is None`` and ``operator.is_not_none(obj)`` is equivalent to ``obj is not " +"Add :func:`~operator.is_none` and :func:`~operator.is_not_none` as a pair of " +"functions, such that ``operator.is_none(obj)`` is equivalent to ``obj is " +"None`` and ``operator.is_not_none(obj)`` is equivalent to ``obj is not " "None``. (Contributed by Raymond Hettinger and Nico Mexis in :gh:`115808`.)" msgstr "" -#: whatsnew/3.14.rst:1743 +#: whatsnew/3.14.rst:1649 msgid "os" msgstr "" -#: whatsnew/3.14.rst:1745 +#: whatsnew/3.14.rst:1651 msgid "" -"Add the :func:`os.reload_environ` function to update :data:`os.environ` and :" -"data:`os.environb` with changes to the environment made by :func:`os." +"Add the :func:`~os.reload_environ` function to update :data:`os.environ` " +"and :data:`os.environb` with changes to the environment made by :func:`os." "putenv`, by :func:`os.unsetenv`, or made outside Python in the same process. " "(Contributed by Victor Stinner in :gh:`120057`.)" msgstr "" -#: whatsnew/3.14.rst:1751 +#: whatsnew/3.14.rst:1657 msgid "" "Add the :data:`~os.SCHED_DEADLINE` and :data:`~os.SCHED_NORMAL` constants to " -"the :mod:`os` module. (Contributed by James Roy in :gh:`127688`.)" +"the :mod:`!os` module. (Contributed by James Roy in :gh:`127688`.)" msgstr "" -#: whatsnew/3.14.rst:1755 +#: whatsnew/3.14.rst:1661 msgid "" -"Add the :func:`os.readinto` function to read into a :ref:`buffer object " +"Add the :func:`~os.readinto` function to read into a :ref:`buffer object " "` from a file descriptor. (Contributed by Cody Maloney in :gh:" "`129205`.)" msgstr "" -#: whatsnew/3.14.rst:1761 +#: whatsnew/3.14.rst:1667 msgid "os.path" msgstr "" -#: whatsnew/3.14.rst:1763 +#: whatsnew/3.14.rst:1669 msgid "" -"The *strict* parameter to :func:`os.path.realpath` accepts a new value, :" -"data:`os.path.ALLOW_MISSING`. If used, errors other than :exc:" +"The *strict* parameter to :func:`~os.path.realpath` accepts a new value, :" +"data:`~os.path.ALLOW_MISSING`. If used, errors other than :exc:" "`FileNotFoundError` will be re-raised; the resulting path can be missing but " "it will be free of symlinks. (Contributed by Petr Viktorin for :cve:" "`2025-4517`.)" msgstr "" -#: whatsnew/3.14.rst:2587 +#: whatsnew/3.14.rst:2249 whatsnew/3.14.rst:2501 msgid "pathlib" msgstr "" -#: whatsnew/3.14.rst:1773 +#: whatsnew/3.14.rst:1679 msgid "" "Add methods to :class:`pathlib.Path` to recursively copy or move files and " "directories:" msgstr "" -#: whatsnew/3.14.rst:1776 +#: whatsnew/3.14.rst:1682 msgid "" ":meth:`~pathlib.Path.copy` copies a file or directory tree to a destination." msgstr "" -#: whatsnew/3.14.rst:1777 +#: whatsnew/3.14.rst:1683 msgid ":meth:`~pathlib.Path.copy_into` copies *into* a destination directory." msgstr "" -#: whatsnew/3.14.rst:1778 +#: whatsnew/3.14.rst:1684 msgid "" ":meth:`~pathlib.Path.move` moves a file or directory tree to a destination." msgstr "" -#: whatsnew/3.14.rst:1779 +#: whatsnew/3.14.rst:1685 msgid ":meth:`~pathlib.Path.move_into` moves *into* a destination directory." msgstr "" -#: whatsnew/3.14.rst:1781 +#: whatsnew/3.14.rst:1687 msgid "(Contributed by Barney Gale in :gh:`73991`.)" msgstr "" -#: whatsnew/3.14.rst:1783 +#: whatsnew/3.14.rst:1689 msgid "" -"Add :attr:`pathlib.Path.info` attribute, which stores an object implementing " -"the :class:`pathlib.types.PathInfo` protocol (also new). The object supports " -"querying the file type and internally caching :func:`~os.stat` results. Path " -"objects generated by :meth:`~pathlib.Path.iterdir` are initialized with file " -"type information gleaned from scanning the parent directory. (Contributed by " -"Barney Gale in :gh:`125413`.)" +"Add the :attr:`~pathlib.Path.info` attribute, which stores an object " +"implementing the new :class:`pathlib.types.PathInfo` protocol. The object " +"supports querying the file type and internally caching :func:`~os.stat` " +"results. Path objects generated by :meth:`~pathlib.Path.iterdir` are " +"initialized with file type information gleaned from scanning the parent " +"directory. (Contributed by Barney Gale in :gh:`125413`.)" msgstr "" -#: whatsnew/3.14.rst:1793 +#: whatsnew/3.14.rst:2257 msgid "pdb" msgstr "" -#: whatsnew/3.14.rst:1795 +#: whatsnew/3.14.rst:1701 +msgid "" +"The :mod:`pdb` module now supports remote attaching to a running Python " +"process using a new :option:`-p PID ` command-line option:" +msgstr "" + +#: whatsnew/3.14.rst:1704 +msgid "python -m pdb -p 1234" +msgstr "" + +#: whatsnew/3.14.rst:1708 msgid "" -"Hardcoded breakpoints (:func:`breakpoint` and :func:`pdb.set_trace`) now " +"This will connect to the Python process with the given PID and allow you to " +"debug it interactively. Notice that due to how the Python interpreter works " +"attaching to a remote process that is blocked in a system call or waiting " +"for I/O will only work once the next bytecode instruction is executed or " +"when the process receives a signal." +msgstr "" + +#: whatsnew/3.14.rst:1714 +msgid "" +"This feature uses :ref:`PEP 768 ` and the new :" +"func:`sys.remote_exec` function to attach to the remote process and send the " +"PDB commands to it." +msgstr "" + +#: whatsnew/3.14.rst:1718 +msgid "(Contributed by Matt Wozniski and Pablo Galindo in :gh:`131591`.)" +msgstr "" + +#: whatsnew/3.14.rst:1720 +msgid "" +"Hardcoded breakpoints (:func:`breakpoint` and :func:`~pdb.set_trace`) now " "reuse the most recent :class:`~pdb.Pdb` instance that calls :meth:`~pdb.Pdb." "set_trace`, instead of creating a new one each time. As a result, all the " "instance specific data like :pdbcmd:`display` and :pdbcmd:`commands` are " @@ -2692,14 +2529,14 @@ msgid "" "`121450`.)" msgstr "" -#: whatsnew/3.14.rst:1802 +#: whatsnew/3.14.rst:1727 msgid "" "Add a new argument *mode* to :class:`pdb.Pdb`. Disable the ``restart`` " "command when :mod:`pdb` is in ``inline`` mode. (Contributed by Tian Gao in :" "gh:`123757`.)" msgstr "" -#: whatsnew/3.14.rst:1806 +#: whatsnew/3.14.rst:1731 msgid "" "A confirmation prompt will be shown when the user tries to quit :mod:`pdb` " "in ``inline`` mode. ``y``, ``Y``, ```` or ``EOF`` will confirm the " @@ -2707,263 +2544,291 @@ msgid "" "(Contributed by Tian Gao in :gh:`124704`.)" msgstr "" -#: whatsnew/3.14.rst:1811 +#: whatsnew/3.14.rst:1736 msgid "" "Inline breakpoints like :func:`breakpoint` or :func:`pdb.set_trace` will " "always stop the program at calling frame, ignoring the ``skip`` pattern (if " "any). (Contributed by Tian Gao in :gh:`130493`.)" msgstr "" -#: whatsnew/3.14.rst:1816 +#: whatsnew/3.14.rst:1741 msgid "" "```` at the beginning of the line in :mod:`pdb` multi-line input will " "fill in a 4-space indentation now, instead of inserting a ``\\t`` character. " "(Contributed by Tian Gao in :gh:`130471`.)" msgstr "" -#: whatsnew/3.14.rst:1820 +#: whatsnew/3.14.rst:1745 msgid "" "Auto-indent is introduced in :mod:`pdb` multi-line input. It will either " "keep the indentation of the last line or insert a 4-space indentation when " "it detects a new code block. (Contributed by Tian Gao in :gh:`133350`.)" msgstr "" -#: whatsnew/3.14.rst:1825 +#: whatsnew/3.14.rst:1750 msgid "" "``$_asynctask`` is added to access the current asyncio task if applicable. " "(Contributed by Tian Gao in :gh:`124367`.)" msgstr "" -#: whatsnew/3.14.rst:1828 -msgid "" -":mod:`pdb` now supports two backends: :func:`sys.settrace` and :mod:`sys." -"monitoring`. Using :mod:`pdb` CLI or :func:`breakpoint` will always use the :" -"mod:`sys.monitoring` backend. Explicitly instantiating :class:`pdb.Pdb` and " -"its derived classes will use the :func:`sys.settrace` backend by default, " -"which is configurable. (Contributed by Tian Gao in :gh:`124533`.)" -msgstr "" - -#: whatsnew/3.14.rst:1835 +#: whatsnew/3.14.rst:1753 msgid "" ":func:`pdb.set_trace_async` is added to support debugging asyncio " "coroutines. :keyword:`await` statements are supported with this function. " "(Contributed by Tian Gao in :gh:`132576`.)" msgstr "" -#: whatsnew/3.14.rst:1840 +#: whatsnew/3.14.rst:1758 msgid "" "Source code displayed in :mod:`pdb` will be syntax-highlighted. This feature " -"can be controlled using the same methods as PyREPL, in addition to the newly " -"added ``colorize`` argument of :class:`pdb.Pdb`. (Contributed by Tian Gao " -"and Łukasz Langa in :gh:`133355`.)" +"can be controlled using the same methods as the default :term:`interactive` " +"shell, in addition to the newly added ``colorize`` argument of :class:`pdb." +"Pdb`. (Contributed by Tian Gao and Łukasz Langa in :gh:`133355`.)" msgstr "" -#: whatsnew/3.14.rst:1847 +#: whatsnew/3.14.rst:1765 msgid "pickle" msgstr "" -#: whatsnew/3.14.rst:1849 +#: whatsnew/3.14.rst:1767 msgid "" "Set the default protocol version on the :mod:`pickle` module to 5. For more " "details, see :ref:`pickle protocols `." msgstr "" -#: whatsnew/3.14.rst:1852 +#: whatsnew/3.14.rst:1770 msgid "" -"Add notes for pickle serialization errors that allow to identify the source " -"of the error. (Contributed by Serhiy Storchaka in :gh:`122213`.)" +"Add exception notes for pickle serialization errors that allow identifying " +"the source of the error. (Contributed by Serhiy Storchaka in :gh:`122213`.)" msgstr "" -#: whatsnew/3.14.rst:1858 +#: whatsnew/3.14.rst:1776 msgid "platform" msgstr "" -#: whatsnew/3.14.rst:1860 +#: whatsnew/3.14.rst:1778 msgid "" -"Add :func:`platform.invalidate_caches` to invalidate the cached results. " -"(Contributed by Bénédikt Tran in :gh:`122549`.)" +"Add :func:`~platform.invalidate_caches`, a function to invalidate cached " +"results in the :mod:`!platform` module. (Contributed by Bénédikt Tran in :gh:" +"`122549`.)" msgstr "" -#: whatsnew/3.14.rst:1865 +#: whatsnew/3.14.rst:1784 msgid "pydoc" msgstr "" -#: whatsnew/3.14.rst:1867 +#: whatsnew/3.14.rst:1786 msgid "" ":term:`Annotations ` in help output are now usually displayed in " "a format closer to that in the original source. (Contributed by Jelle " "Zijlstra in :gh:`101552`.)" msgstr "" -#: whatsnew/3.14.rst:1873 +#: whatsnew/3.14.rst:1792 +msgid "re" +msgstr "" + +#: whatsnew/3.14.rst:1794 +msgid "" +"Support ``\\z`` as a synonym for ``\\Z`` in :mod:`regular expressions `. " +"It is interpreted unambiguously in many other regular expression engines, " +"unlike ``\\Z``, which has subtly different behavior. (Contributed by Serhiy " +"Storchaka in :gh:`133306`.)" +msgstr "" + +#: whatsnew/3.14.rst:1799 +msgid "" +"``\\B`` in :mod:`regular expression ` now matches the empty input " +"string, meaning that it is now always the opposite of ``\\b``. (Contributed " +"by Serhiy Storchaka in :gh:`124130`.)" +msgstr "" + +#: whatsnew/3.14.rst:1805 msgid "socket" msgstr "" -#: whatsnew/3.14.rst:1875 +#: whatsnew/3.14.rst:1807 msgid "Improve and fix support for Bluetooth sockets." msgstr "" -#: whatsnew/3.14.rst:1877 +#: whatsnew/3.14.rst:1809 msgid "" "Fix support of Bluetooth sockets on NetBSD and DragonFly BSD. (Contributed " "by Serhiy Storchaka in :gh:`132429`.)" msgstr "" -#: whatsnew/3.14.rst:1879 +#: whatsnew/3.14.rst:1811 msgid "" "Fix support for :const:`~socket.BTPROTO_HCI` on FreeBSD. (Contributed by " "Victor Stinner in :gh:`111178`.)" msgstr "" -#: whatsnew/3.14.rst:1881 +#: whatsnew/3.14.rst:1813 msgid "" "Add support for :const:`~socket.BTPROTO_SCO` on FreeBSD. (Contributed by " "Serhiy Storchaka in :gh:`85302`.)" msgstr "" -#: whatsnew/3.14.rst:1883 +#: whatsnew/3.14.rst:1815 msgid "" "Add support for *cid* and *bdaddr_type* in the address for :const:`~socket." "BTPROTO_L2CAP` on FreeBSD. (Contributed by Serhiy Storchaka in :gh:`132429`.)" msgstr "" -#: whatsnew/3.14.rst:1886 +#: whatsnew/3.14.rst:1818 msgid "" "Add support for *channel* in the address for :const:`~socket.BTPROTO_HCI` on " "Linux. (Contributed by Serhiy Storchaka in :gh:`70145`.)" msgstr "" -#: whatsnew/3.14.rst:1889 +#: whatsnew/3.14.rst:1821 msgid "" "Accept an integer as the address for :const:`~socket.BTPROTO_HCI` on Linux. " "(Contributed by Serhiy Storchaka in :gh:`132099`.)" msgstr "" -#: whatsnew/3.14.rst:1892 +#: whatsnew/3.14.rst:1824 msgid "" "Return *cid* in :meth:`~socket.socket.getsockname` for :const:`~socket." "BTPROTO_L2CAP`. (Contributed by Serhiy Storchaka in :gh:`132429`.)" msgstr "" -#: whatsnew/3.14.rst:1895 +#: whatsnew/3.14.rst:1827 msgid "" "Add many new constants. (Contributed by Serhiy Storchaka in :gh:`132734`.)" msgstr "" -#: whatsnew/3.14.rst:1899 +#: whatsnew/3.14.rst:1832 msgid "ssl" msgstr "" -#: whatsnew/3.14.rst:1901 +#: whatsnew/3.14.rst:1834 msgid "" -"Indicate through :data:`ssl.HAS_PHA` whether the :mod:`ssl` module supports " -"TLSv1.3 post-handshake client authentication (PHA). (Contributed by Will " -"Childs-Klein in :gh:`128036`.)" +"Indicate through the :data:`~ssl.HAS_PHA` Boolean whether the :mod:`!ssl` " +"module supports TLSv1.3 post-handshake client authentication (PHA). " +"(Contributed by Will Childs-Klein in :gh:`128036`.)" msgstr "" -#: whatsnew/3.14.rst:1907 +#: whatsnew/3.14.rst:1840 msgid "struct" msgstr "" -#: whatsnew/3.14.rst:1909 +#: whatsnew/3.14.rst:1842 msgid "" "Support the :c:expr:`float complex` and :c:expr:`double complex` C types in " "the :mod:`struct` module (formatting characters ``'F'`` and ``'D'`` " "respectively). (Contributed by Sergey B Kirpichev in :gh:`121249`.)" msgstr "" -#: whatsnew/3.14.rst:1916 +#: whatsnew/3.14.rst:1849 msgid "symtable" msgstr "" -#: whatsnew/3.14.rst:1918 -msgid "Expose the following :class:`symtable.Symbol` methods:" +#: whatsnew/3.14.rst:1851 +msgid "Expose the following :class:`~symtable.Symbol` methods:" msgstr "" -#: whatsnew/3.14.rst:1920 +#: whatsnew/3.14.rst:1853 msgid ":meth:`~symtable.Symbol.is_comp_cell`" msgstr "" -#: whatsnew/3.14.rst:1921 +#: whatsnew/3.14.rst:1854 msgid ":meth:`~symtable.Symbol.is_comp_iter`" msgstr "" -#: whatsnew/3.14.rst:1922 +#: whatsnew/3.14.rst:1855 msgid ":meth:`~symtable.Symbol.is_free_class`" msgstr "" -#: whatsnew/3.14.rst:1924 +#: whatsnew/3.14.rst:1857 msgid "(Contributed by Bénédikt Tran in :gh:`120029`.)" msgstr "" -#: whatsnew/3.14.rst:1928 +#: whatsnew/3.14.rst:1861 msgid "sys" msgstr "" -#: whatsnew/3.14.rst:1930 +#: whatsnew/3.14.rst:1863 msgid "" "The previously undocumented special function :func:`sys.getobjects`, which " "only exists in specialized builds of Python, may now return objects from " -"other interpreters than the one it's called in." +"other interpreters than the one it's called in. (Contributed by Eric Snow " +"in :gh:`125286`.)" msgstr "" -#: whatsnew/3.14.rst:1934 +#: whatsnew/3.14.rst:1868 msgid "" "Add :func:`sys._is_immortal` for determining if an object is :term:" "`immortal`. (Contributed by Peter Bierma in :gh:`128509`.)" msgstr "" -#: whatsnew/3.14.rst:1937 +#: whatsnew/3.14.rst:1871 msgid "" -"On FreeBSD, :data:`sys.platform` doesn't contain the major version anymore. " -"It is always ``'freebsd'``, instead of ``'freebsd13'`` or ``'freebsd14'``." +"On FreeBSD, :data:`sys.platform` no longer contains the major version " +"number. It is always ``'freebsd'``, instead of ``'freebsd13'`` or " +"``'freebsd14'``. (Contributed by Michael Osipov in :gh:`129393`.)" msgstr "" -#: whatsnew/3.14.rst:1940 +#: whatsnew/3.14.rst:1875 msgid "" "Raise :exc:`DeprecationWarning` for :func:`sys._clear_type_cache`. This " "function was deprecated in Python 3.13 but it didn't raise a runtime warning." msgstr "" -#: whatsnew/3.14.rst:1945 +#: whatsnew/3.14.rst:1878 +msgid "" +"Add :func:`sys.remote_exec` to implement the new external debugger " +"interface. See :ref:`PEP 768 ` for details. " +"(Contributed by Pablo Galindo Salgado, Matt Wozniski, and Ivona Stojanovic " +"in :gh:`131591`.)" +msgstr "" + +#: whatsnew/3.14.rst:1883 +msgid "" +"Add the :data:`sys._jit` namespace, containing utilities for introspecting " +"just-in-time compilation. (Contributed by Brandt Bucher in :gh:`133231`.)" +msgstr "" + +#: whatsnew/3.14.rst:1889 msgid "sys.monitoring" msgstr "" -#: whatsnew/3.14.rst:1947 +#: whatsnew/3.14.rst:1891 msgid "" -"Two new events are added: :monitoring-event:`BRANCH_LEFT` and :monitoring-" -"event:`BRANCH_RIGHT`. The ``BRANCH`` event is deprecated." +"Add two new monitoring events, :monitoring-event:`BRANCH_LEFT` and :" +"monitoring-event:`BRANCH_RIGHT`. These replace and deprecate the :monitoring-" +"event:`!BRANCH` event. (Contributed by Mark Shannon in :gh:`122548`.)" msgstr "" -#: whatsnew/3.14.rst:1952 +#: whatsnew/3.14.rst:1898 msgid "sysconfig" msgstr "" -#: whatsnew/3.14.rst:1954 +#: whatsnew/3.14.rst:1900 msgid "" -"Add ``ABIFLAGS`` key to :func:`sysconfig.get_config_vars` on Windows. " +"Add ``ABIFLAGS`` key to :func:`~sysconfig.get_config_vars` on Windows. " "(Contributed by Xuehai Pan in :gh:`131799`.)" msgstr "" -#: whatsnew/3.14.rst:1959 +#: whatsnew/3.14.rst:1905 msgid "tarfile" msgstr "" -#: whatsnew/3.14.rst:1961 +#: whatsnew/3.14.rst:1907 msgid "" ":func:`~tarfile.data_filter` now normalizes symbolic link targets in order " "to avoid path traversal attacks. (Contributed by Petr Viktorin in :gh:" "`127987` and :cve:`2025-4138`.)" msgstr "" -#: whatsnew/3.14.rst:1964 +#: whatsnew/3.14.rst:1911 msgid "" ":func:`~tarfile.TarFile.extractall` now skips fixing up directory attributes " "when a directory was removed or replaced by another kind of file. " "(Contributed by Petr Viktorin in :gh:`127987` and :cve:`2024-12718`.)" msgstr "" -#: whatsnew/3.14.rst:1967 +#: whatsnew/3.14.rst:1915 msgid "" ":func:`~tarfile.TarFile.extract` and :func:`~tarfile.TarFile.extractall` now " "(re-)apply the extraction filter when substituting a link (hard or symbolic) " @@ -2973,7 +2838,7 @@ msgid "" "cve:`2024-12718`.)" msgstr "" -#: whatsnew/3.14.rst:1973 +#: whatsnew/3.14.rst:1922 msgid "" ":func:`~tarfile.TarFile.extract` and :func:`~tarfile.TarFile.extractall` no " "longer extract rejected members when :func:`~tarfile.TarFile.errorlevel` is " @@ -2981,691 +2846,1156 @@ msgid "" "cve:`2025-4435`.)" msgstr "" -#: whatsnew/3.14.rst:1981 +#: whatsnew/3.14.rst:1930 msgid "threading" msgstr "" -#: whatsnew/3.14.rst:1983 +#: whatsnew/3.14.rst:1932 msgid "" ":meth:`threading.Thread.start` now sets the operating system thread name to :" "attr:`threading.Thread.name`. (Contributed by Victor Stinner in :gh:`59705`.)" msgstr "" -#: whatsnew/3.14.rst:1989 +#: whatsnew/3.14.rst:1938 msgid "tkinter" msgstr "" -#: whatsnew/3.14.rst:1991 +#: whatsnew/3.14.rst:1940 msgid "" "Make :mod:`tkinter` widget methods :meth:`!after` and :meth:`!after_idle` " -"accept arguments passed by keyword. (Contributed by Zhikang Yan in :gh:" -"`126899`.)" +"accept keyword arguments. (Contributed by Zhikang Yan in :gh:`126899`.)" msgstr "" -#: whatsnew/3.14.rst:1995 +#: whatsnew/3.14.rst:1944 msgid "" -"Add ability to specify name for :class:`!tkinter.OptionMenu` and :class:`!" +"Add ability to specify a name for :class:`!tkinter.OptionMenu` and :class:`!" "tkinter.ttk.OptionMenu`. (Contributed by Zhikang Yan in :gh:`130482`.)" msgstr "" -#: whatsnew/3.14.rst:2000 +#: whatsnew/3.14.rst:1950 msgid "turtle" msgstr "" -#: whatsnew/3.14.rst:2002 +#: whatsnew/3.14.rst:1952 msgid "" -"Add context managers for :func:`turtle.fill`, :func:`turtle.poly` and :func:" +"Add context managers for :func:`turtle.fill`, :func:`turtle.poly`, and :func:" "`turtle.no_animation`. (Contributed by Marie Roald and Yngve Mardal Moe in :" "gh:`126350`.)" msgstr "" -#: whatsnew/3.14.rst:2008 +#: whatsnew/3.14.rst:1958 msgid "types" msgstr "" -#: whatsnew/3.14.rst:2010 +#: whatsnew/3.14.rst:1960 msgid "" ":class:`types.UnionType` is now an alias for :class:`typing.Union`. See :ref:" "`below ` for more details. (Contributed by Jelle " "Zijlstra in :gh:`105499`.)" msgstr "" -#: whatsnew/3.14.rst:2623 +#: whatsnew/3.14.rst:1966 msgid "typing" msgstr "" -#: whatsnew/3.14.rst:2020 +#: whatsnew/3.14.rst:1970 msgid "" -":class:`types.UnionType` and :class:`typing.Union` are now aliases for each " -"other, meaning that both old-style unions (created with ``Union[int, str]``) " -"and new-style unions (``int | str``) now create instances of the same " -"runtime type. This unifies the behavior between the two syntaxes, but leads " -"to some differences in behavior that may affect users who introspect types " -"at runtime:" +"The :class:`types.UnionType` and :class:`typing.Union` types are now aliases " +"for each other, meaning that both old-style unions (created with " +"``Union[int, str]``) and new-style unions (``int | str``) now create " +"instances of the same runtime type. This unifies the behavior between the " +"two syntaxes, but leads to some differences in behavior that may affect " +"users who introspect types at runtime:" msgstr "" -#: whatsnew/3.14.rst:2026 +#: whatsnew/3.14.rst:1977 msgid "" "Both syntaxes for creating a union now produce the same string " -"representation in ``repr()``. For example, ``repr(Union[int, str])`` is now " -"``\"int | str\"`` instead of ``\"typing.Union[int, str]\"``." +"representation in :func:`repr`. For example, ``repr(Union[int, str])`` is " +"now ``\"int | str\"`` instead of ``\"typing.Union[int, str]\"``." msgstr "" -#: whatsnew/3.14.rst:2029 +#: whatsnew/3.14.rst:1982 msgid "" "Unions created using the old syntax are no longer cached. Previously, " "running ``Union[int, str]`` multiple times would return the same object " "(``Union[int, str] is Union[int, str]`` would be ``True``), but now it will " -"return two different objects. Users should use ``==`` to compare unions for " -"equality, not ``is``. New-style unions have never been cached this way. This " -"change could increase memory usage for some programs that use a large number " -"of unions created by subscripting ``typing.Union``. However, several factors " -"offset this cost: unions used in annotations are no longer evaluated by " -"default in Python 3.14 because of :pep:`649`; an instance of :class:`types." -"UnionType` is itself much smaller than the object returned by ``Union[]`` " -"was on prior Python versions; and removing the cache also saves some space. " -"It is therefore unlikely that this change will cause a significant increase " -"in memory usage for most users." +"return two different objects. Use ``==`` to compare unions for equality, not " +"``is``. New-style unions have never been cached this way. This change could " +"increase memory usage for some programs that use a large number of unions " +"created by subscripting ``typing.Union``. However, several factors offset " +"this cost: unions used in annotations are no longer evaluated by default in " +"Python 3.14 because of :pep:`649`; an instance of :class:`types.UnionType` " +"is itself much smaller than the object returned by ``Union[]`` was on prior " +"Python versions; and removing the cache also saves some space. It is " +"therefore unlikely that this change will cause a significant increase in " +"memory usage for most users." msgstr "" -#: whatsnew/3.14.rst:2042 +#: whatsnew/3.14.rst:1998 msgid "" "Previously, old-style unions were implemented using the private class " "``typing._UnionGenericAlias``. This class is no longer needed for the " "implementation, but it has been retained for backward compatibility, with " "removal scheduled for Python 3.17. Users should use documented introspection " -"helpers like :func:`typing.get_origin` and :func:`typing.get_args` instead " +"helpers like :func:`~typing.get_origin` and :func:`typing.get_args` instead " "of relying on private implementation details." msgstr "" -#: whatsnew/3.14.rst:2047 +#: whatsnew/3.14.rst:2007 msgid "" "It is now possible to use :class:`typing.Union` itself in :func:`isinstance` " "checks. For example, ``isinstance(int | str, typing.Union)`` will return " "``True``; previously this raised :exc:`TypeError`." msgstr "" -#: whatsnew/3.14.rst:2050 +#: whatsnew/3.14.rst:2012 msgid "" -"The ``__args__`` attribute of :class:`typing.Union` objects is no longer " -"writable." +"The :attr:`!__args__` attribute of :class:`typing.Union` objects is no " +"longer writable." msgstr "" -#: whatsnew/3.14.rst:2051 +#: whatsnew/3.14.rst:2015 msgid "" -"It is no longer possible to set any attributes on :class:`typing.Union` " +"It is no longer possible to set any attributes on :class:`~typing.Union` " "objects. This only ever worked for dunder attributes on previous versions, " "was never documented to work, and was subtly broken in many cases." msgstr "" -#: whatsnew/3.14.rst:2055 +#: whatsnew/3.14.rst:2020 msgid "(Contributed by Jelle Zijlstra in :gh:`105499`.)" msgstr "" -#: whatsnew/3.14.rst:2059 +#: whatsnew/3.14.rst:2022 +msgid ":class:`~typing.TypeAliasType` now supports star unpacking." +msgstr "" + +#: whatsnew/3.14.rst:2026 msgid "unicodedata" msgstr "" -#: whatsnew/3.14.rst:2061 +#: whatsnew/3.14.rst:2028 msgid "The Unicode database has been updated to Unicode 16.0.0." msgstr "" -#: whatsnew/3.14.rst:2067 +#: whatsnew/3.14.rst:2032 msgid "unittest" msgstr "" -#: whatsnew/3.14.rst:2069 +#: whatsnew/3.14.rst:2036 msgid "" ":mod:`unittest` output is now colored by default. This can be controlled by :" "ref:`environment variables `. (Contributed by " "Hugo van Kemenade in :gh:`127221`.)" msgstr "" -#: whatsnew/3.14.rst:2074 +#: whatsnew/3.14.rst:2041 msgid "" "unittest discovery supports :term:`namespace package` as start directory " "again. It was removed in Python 3.11. (Contributed by Jacob Walls in :gh:" "`80958`.)" msgstr "" -#: whatsnew/3.14.rst:2078 +#: whatsnew/3.14.rst:2045 msgid "" "A number of new methods were added in the :class:`~unittest.TestCase` class " "that provide more specialized tests." msgstr "" -#: whatsnew/3.14.rst:2081 +#: whatsnew/3.14.rst:2048 msgid "" ":meth:`~unittest.TestCase.assertHasAttr` and :meth:`~unittest.TestCase." "assertNotHasAttr` check whether the object has a particular attribute." msgstr "" -#: whatsnew/3.14.rst:2084 +#: whatsnew/3.14.rst:2051 msgid "" ":meth:`~unittest.TestCase.assertIsSubclass` and :meth:`~unittest.TestCase." "assertNotIsSubclass` check whether the object is a subclass of a particular " "class, or of one of a tuple of classes." msgstr "" -#: whatsnew/3.14.rst:2087 +#: whatsnew/3.14.rst:2054 msgid "" ":meth:`~unittest.TestCase.assertStartsWith`, :meth:`~unittest.TestCase." "assertNotStartsWith`, :meth:`~unittest.TestCase.assertEndsWith` and :meth:" "`~unittest.TestCase.assertNotEndsWith` check whether the Unicode or byte " -"string starts or ends with particular string(s)." +"string starts or ends with particular strings." msgstr "" -#: whatsnew/3.14.rst:2093 +#: whatsnew/3.14.rst:2060 msgid "(Contributed by Serhiy Storchaka in :gh:`71339`.)" msgstr "" -#: whatsnew/3.14.rst:2631 +#: whatsnew/3.14.rst:2547 msgid "urllib" msgstr "" -#: whatsnew/3.14.rst:2099 +#: whatsnew/3.14.rst:2066 msgid "" "Upgrade HTTP digest authentication algorithm for :mod:`urllib.request` by " "supporting SHA-256 digest authentication as specified in :rfc:`7616`. " "(Contributed by Calvin Bui in :gh:`128193`.)" msgstr "" -#: whatsnew/3.14.rst:2103 +#: whatsnew/3.14.rst:2070 msgid "" "Improve ergonomics and standards compliance when parsing and emitting ``file:" "`` URLs." msgstr "" -#: whatsnew/3.14.rst:2106 -msgid "In :func:`urllib.request.url2pathname`:" +#: whatsnew/3.14.rst:2073 +msgid "In :func:`~urllib.request.url2pathname`:" msgstr "" -#: whatsnew/3.14.rst:2108 +#: whatsnew/3.14.rst:2075 msgid "" "Accept a complete URL when the new *require_scheme* argument is set to true." msgstr "" -#: whatsnew/3.14.rst:2110 +#: whatsnew/3.14.rst:2077 msgid "Discard URL authority if it matches the local hostname." msgstr "" -#: whatsnew/3.14.rst:2111 +#: whatsnew/3.14.rst:2078 msgid "" "Discard URL authority if it resolves to a local IP address when the new " "*resolve_host* argument is set to true." msgstr "" -#: whatsnew/3.14.rst:2113 +#: whatsnew/3.14.rst:2080 +msgid "Discard URL query and fragment components." +msgstr "" + +#: whatsnew/3.14.rst:2081 msgid "" "Raise :exc:`~urllib.error.URLError` if a URL authority isn't local, except " "on Windows where we return a UNC path as before." msgstr "" -#: whatsnew/3.14.rst:2116 -msgid "In :func:`urllib.request.pathname2url`:" +#: whatsnew/3.14.rst:2084 +msgid "In :func:`~urllib.request.pathname2url`:" msgstr "" -#: whatsnew/3.14.rst:2118 +#: whatsnew/3.14.rst:2086 msgid "" "Return a complete URL when the new *add_scheme* argument is set to true." msgstr "" -#: whatsnew/3.14.rst:2119 +#: whatsnew/3.14.rst:2087 msgid "" "Include an empty URL authority when a path begins with a slash. For example, " "the path ``/etc/hosts`` is converted to the URL ``///etc/hosts``." msgstr "" -#: whatsnew/3.14.rst:2122 +#: whatsnew/3.14.rst:2090 msgid "" "On Windows, drive letters are no longer converted to uppercase, and ``:`` " "characters not following a drive letter no longer cause an :exc:`OSError` " "exception to be raised." msgstr "" -#: whatsnew/3.14.rst:2126 +#: whatsnew/3.14.rst:2094 msgid "(Contributed by Barney Gale in :gh:`125866`.)" msgstr "" -#: whatsnew/3.14.rst:2226 +#: whatsnew/3.14.rst:2269 msgid "uuid" msgstr "" -#: whatsnew/3.14.rst:2132 +#: whatsnew/3.14.rst:2100 msgid "" -"Add support for UUID versions 6, 7, and 8 via :func:`uuid.uuid6`, :func:" -"`uuid.uuid7`, and :func:`uuid.uuid8` respectively, as specified in :rfc:" +"Add support for UUID versions 6, 7, and 8 via :func:`~uuid.uuid6`, :func:" +"`~uuid.uuid7`, and :func:`~uuid.uuid8` respectively, as specified in :rfc:" "`9562`. (Contributed by Bénédikt Tran in :gh:`89083`.)" msgstr "" -#: whatsnew/3.14.rst:2137 +#: whatsnew/3.14.rst:2105 msgid "" -":const:`uuid.NIL` and :const:`uuid.MAX` are now available to represent the " +":const:`~uuid.NIL` and :const:`~uuid.MAX` are now available to represent the " "Nil and Max UUID formats as defined by :rfc:`9562`. (Contributed by Nick " "Pope in :gh:`128427`.)" msgstr "" -#: whatsnew/3.14.rst:2141 +#: whatsnew/3.14.rst:2109 msgid "" -"Allow to generate multiple UUIDs at once via :option:`python -m uuid --count " -"`. (Contributed by Simon Legner in :gh:`131236`.)" +"Allow generating multiple UUIDs simultaneously on the command-line via :" +"option:`python -m uuid --count `. (Contributed by Simon Legner " +"in :gh:`131236`.)" msgstr "" -#: whatsnew/3.14.rst:2146 +#: whatsnew/3.14.rst:2115 msgid "webbrowser" msgstr "" -#: whatsnew/3.14.rst:2148 +#: whatsnew/3.14.rst:2117 msgid "" "Names in the :envvar:`BROWSER` environment variable can now refer to already " "registered browsers for the :mod:`webbrowser` module, instead of always " "generating a new browser command." msgstr "" -#: whatsnew/3.14.rst:2152 +#: whatsnew/3.14.rst:2121 msgid "" "This makes it possible to set :envvar:`BROWSER` to the value of one of the " "supported browsers on macOS." msgstr "" -#: whatsnew/3.14.rst:2157 -msgid "zipinfo" +#: whatsnew/3.14.rst:2126 +msgid "zipfile" msgstr "" -#: whatsnew/3.14.rst:2159 +#: whatsnew/3.14.rst:2128 msgid "" -"Added :func:`ZipInfo._for_archive ` to resolve " -"suitable defaults for a :class:`~zipfile.ZipInfo` object as used by :func:" -"`ZipFile.writestr `. (Contributed by Bénédikt Tran " -"in :gh:`123424`.)" +"Added :meth:`ZipInfo._for_archive `, a method " +"to resolve suitable defaults for a :class:`~zipfile.ZipInfo` object as used " +"by :func:`ZipFile.writestr `. (Contributed by " +"Bénédikt Tran in :gh:`123424`.)" msgstr "" -#: whatsnew/3.14.rst:2164 +#: whatsnew/3.14.rst:2133 msgid "" -":meth:`zipfile.ZipFile.writestr` now respect ``SOURCE_DATE_EPOCH`` that " -"distributions can set centrally and have build tools consume this in order " -"to produce reproducible output. (Contributed by Jiahao Li in :gh:`91279`.)" +":meth:`.ZipFile.writestr` now respects the :envvar:`SOURCE_DATE_EPOCH` " +"environment variable in order to better support reproducible builds. " +"(Contributed by Jiahao Li in :gh:`91279`.)" msgstr "" -#: whatsnew/3.14.rst:2173 +#: whatsnew/3.14.rst:2142 msgid "Optimizations" msgstr "" -#: whatsnew/3.14.rst:2175 +#: whatsnew/3.14.rst:2144 msgid "" "The import time for several standard library modules has been improved, " -"including :mod:`ast`, :mod:`asyncio`, :mod:`base64`, :mod:`cmd`, :mod:" -"`csv`, :mod:`gettext`, :mod:`importlib.util`, :mod:`locale`, :mod:" -"`mimetypes`, :mod:`optparse`, :mod:`pickle`, :mod:`pprint`, :mod:`pstats`, :" -"mod:`socket`, :mod:`subprocess`, :mod:`threading`, :mod:`tomllib`, and :mod:" +"including :mod:`annotationlib`, :mod:`ast`, :mod:`asyncio`, :mod:`base64`, :" +"mod:`cmd`, :mod:`csv`, :mod:`gettext`, :mod:`importlib.util`, :mod:" +"`locale`, :mod:`mimetypes`, :mod:`optparse`, :mod:`pickle`, :mod:`pprint`, :" +"mod:`pstats`, :mod:`shlex`, :mod:`socket`, :mod:`string`, :mod:" +"`subprocess`, :mod:`threading`, :mod:`tomllib`, :mod:`types`, and :mod:" "`zipfile`." msgstr "" -#: whatsnew/3.14.rst:2181 +#: whatsnew/3.14.rst:2151 msgid "" "(Contributed by Adam Turner, Bénédikt Tran, Chris Markiewicz, Eli Schwartz, " "Hugo van Kemenade, Jelle Zijlstra, and others in :gh:`118761`.)" msgstr "" -#: whatsnew/3.14.rst:2188 +#: whatsnew/3.14.rst:2154 msgid "" -":mod:`asyncio` has a new per-thread double linked list implementation " -"internally for :class:`native tasks ` which speeds up " -"execution by 10-20% on standard pyperformance benchmarks and reduces memory " -"usage. This enables external introspection tools such as :ref:`python -m " -"asyncio pstree ` to introspect the call " -"graph of asyncio tasks running in all threads. (Contributed by Kumar Aditya " -"in :gh:`107803`.)" +"The interpreter now avoids some reference count modifications internally " +"when it's safe to do so. This can lead to different values being returned " +"from :func:`sys.getrefcount` and :c:func:`Py_REFCNT` compared to previous " +"versions of Python. See :ref:`below ` for details." msgstr "" -#: whatsnew/3.14.rst:2196 +#: whatsnew/3.14.rst:2164 msgid "" -":mod:`asyncio` has first class support for :term:`free-threading builds " -"`. This enables parallel execution of multiple event loops " -"across different threads and scales linearly with the number of threads. " -"(Contributed by Kumar Aditya in :gh:`128002`.)" +"Standard benchmark results have improved by 10-20% following the " +"implementation of a new per-thread doubly linked list for :class:`native " +"tasks `, also reducing memory usage. This enables external " +"introspection tools such as :ref:`python -m asyncio pstree ` to introspect the call graph of asyncio tasks " +"running in all threads. (Contributed by Kumar Aditya in :gh:`107803`.)" msgstr "" -#: whatsnew/3.14.rst:2201 +#: whatsnew/3.14.rst:2173 msgid "" -":mod:`asyncio` has new utility functions for introspecting and printing the " -"program's call graph: :func:`asyncio.capture_call_graph` and :func:`asyncio." -"print_call_graph`. (Contributed by Yury Selivanov, Pablo Galindo Salgado, " -"and Łukasz Langa in :gh:`91048`.)" +"The module now has first class support for :term:`free-threading builds " +"`. This enables parallel execution of multiple event loops " +"across different threads, scaling linearly with the number of threads. " +"(Contributed by Kumar Aditya in :gh:`128002`.)" msgstr "" -#: whatsnew/3.14.rst:2208 +#: whatsnew/3.14.rst:2181 msgid "base64" msgstr "" -#: whatsnew/3.14.rst:2210 +#: whatsnew/3.14.rst:2183 msgid "" -"Improve the performance of :func:`base64.b16decode` by up to ten times, and " -"reduce the import time of :mod:`base64` by up to six times. (Contributed by " +":func:`~base64.b16decode` is now up to six times faster. (Contributed by " "Bénédikt Tran, Chris Markiewicz, and Adam Turner in :gh:`118761`.)" msgstr "" -#: whatsnew/3.14.rst:2217 -msgid "" -":mod:`io` which provides the built-in :func:`open` makes less system calls " -"when opening regular files as well as reading whole files. Reading a small " -"operating system cached file in full is up to 15% faster. :func:`pathlib." -"Path.read_bytes` has the most optimizations for reading a file's bytes in " -"full. (Contributed by Cody Maloney and Victor Stinner in :gh:`120754` and :" -"gh:`90102`.)" +#: whatsnew/3.14.rst:2189 +msgid "bdb" msgstr "" -#: whatsnew/3.14.rst:2228 +#: whatsnew/3.14.rst:2191 msgid "" -"Improve generation of :class:`~uuid.UUID` objects via their dedicated " -"functions:" +"The basic debugger now has a :mod:`sys.monitoring`-based backend, which can " +"be selected via the passing ``'monitoring'`` to the :class:`~bdb.Bdb` " +"class's new *backend* parameter. (Contributed by Tian Gao in :gh:`124533`.)" msgstr "" -#: whatsnew/3.14.rst:2231 +#: whatsnew/3.14.rst:2200 msgid "" -":func:`~uuid.uuid3` and :func:`~uuid.uuid5` are both roughly 40% faster for " -"16-byte names and 20% faster for 1024-byte names. Performance for longer " -"names remains unchanged." +"The :func:`~difflib.IS_LINE_JUNK` function is now up to twice as fast. " +"(Contributed by Adam Turner and Semyon Moroz in :gh:`130167`.)" msgstr "" -#: whatsnew/3.14.rst:2234 -msgid "" -":func:`~uuid.uuid4` and :func:`~uuid.uuid8` are 30% and 40% faster " -"respectively." +#: whatsnew/3.14.rst:2205 +msgid "gc" msgstr "" -#: whatsnew/3.14.rst:2237 -msgid "(Contributed by Bénédikt Tran in :gh:`128150`.)" +#: whatsnew/3.14.rst:2207 +msgid "" +"The new :ref:`incremental garbage collector ` " +"means that maximum pause times are reduced by an order of magnitude or more " +"for larger heaps." msgstr "" -#: whatsnew/3.14.rst:2241 -msgid "zlib" +#: whatsnew/3.14.rst:2211 +msgid "" +"Because of this optimization, the meaning of the results of :meth:`~gc." +"get_threshold` and :meth:`~gc.set_threshold` have changed, along with :meth:" +"`~gc.get_count` and :meth:`~gc.get_stats`." msgstr "" -#: whatsnew/3.14.rst:2243 +#: whatsnew/3.14.rst:2215 msgid "" -"On Windows, ``zlib-ng`` is now used as the implementation of the :mod:`zlib` " -"module. This should produce compatible and comparable results with better " -"performance, though it is worth noting that ``zlib.Z_BEST_SPEED`` (1) may " -"result in significantly less compression than the previous implementation " -"(while also significantly reducing the time taken to compress). (Contributed " -"by Steve Dower in :gh:`91349`.)" +"For backwards compatibility, :meth:`~gc.get_threshold` continues to return a " +"three-item tuple. The first value is the threshold for young collections, as " +"before; the second value determines the rate at which the old collection is " +"scanned (the default is 10, and higher values mean that the old collection " +"is scanned more slowly). The third value is now meaningless and is always " +"zero." msgstr "" -#: whatsnew/3.14.rst:2952 -msgid "Deprecated" +#: whatsnew/3.14.rst:2223 +msgid ":meth:`~gc.set_threshold` now ignores any items after the second." msgstr "" -#: whatsnew/3.14.rst:2255 deprecations/pending-removal-in-future.rst:7 -msgid ":mod:`argparse`:" +#: whatsnew/3.14.rst:2225 +msgid "" +":meth:`~gc.get_count` and :meth:`~gc.get_stats` continue to return the same " +"format of results. The only difference is that instead of the results " +"referring to the young, aging and old generations, the results refer to the " +"young generation and the aging and collecting spaces of the old generation." msgstr "" -#: whatsnew/3.14.rst:2257 +#: whatsnew/3.14.rst:2232 msgid "" -"Passing the undocumented keyword argument *prefix_chars* to :meth:`~argparse." -"ArgumentParser.add_argument_group` is now deprecated. (Contributed by " -"Savannah Ostrowski in :gh:`125563`.)" +"In summary, code that attempted to manipulate the behavior of the cycle GC " +"may not work exactly as intended, but it is very unlikely to be harmful. All " +"other code will work just fine." msgstr "" -#: whatsnew/3.14.rst:2261 +#: whatsnew/3.14.rst:2242 msgid "" -"Deprecated the :class:`argparse.FileType` type converter. Anything with " -"resource management should be done downstream after the arguments are " -"parsed. (Contributed by Serhiy Storchaka in :gh:`58032`.)" +"Opening and reading files now executes fewer system calls. Reading a small " +"operating system cached file in full is up to 15% faster. (Contributed by " +"Cody Maloney and Victor Stinner in :gh:`120754` and :gh:`90102`.)" msgstr "" -#: whatsnew/3.14.rst:2266 deprecations/pending-removal-in-3.16.rst:19 -msgid ":mod:`asyncio`:" +#: whatsnew/3.14.rst:2251 +msgid "" +":func:`Path.read_bytes ` now uses unbuffered mode " +"to open files, which is between 9% and 17% faster to read in full. " +"(Contributed by Cody Maloney in :gh:`120754`.)" msgstr "" -#: whatsnew/3.14.rst:2268 deprecations/pending-removal-in-3.16.rst:21 +#: whatsnew/3.14.rst:2259 msgid "" -":func:`!asyncio.iscoroutinefunction` is deprecated and will be removed in " -"Python 3.16; use :func:`inspect.iscoroutinefunction` instead. (Contributed " -"by Jiahao Li and Kumar Aditya in :gh:`122875`.)" +":mod:`pdb` now supports two backends, based on either :func:`sys.settrace` " +"or :mod:`sys.monitoring`. Using the :ref:`pdb CLI ` or :func:" +"`breakpoint` will always use the :mod:`sys.monitoring` backend. Explicitly " +"instantiating :class:`pdb.Pdb` and its derived classes will use the :func:" +"`sys.settrace` backend by default, which is configurable. (Contributed by " +"Tian Gao in :gh:`124533`.)" msgstr "" -#: whatsnew/3.14.rst:2273 deprecations/pending-removal-in-3.16.rst:26 +#: whatsnew/3.14.rst:2271 msgid "" -":mod:`asyncio` policy system is deprecated and will be removed in Python " -"3.16. In particular, the following classes and functions are deprecated:" +":func:`~uuid.uuid3` and :func:`~uuid.uuid5` are now both roughly 40% faster " +"for 16-byte names and 20% faster for 1024-byte names. Performance for longer " +"names remains unchanged. (Contributed by Bénédikt Tran in :gh:`128150`.)" msgstr "" -#: whatsnew/3.14.rst:2276 deprecations/pending-removal-in-3.16.rst:29 -msgid ":class:`asyncio.AbstractEventLoopPolicy`" +#: whatsnew/3.14.rst:2276 +msgid "" +":func:`~uuid.uuid4` is now c. 30% faster. (Contributed by Bénédikt Tran in :" +"gh:`128150`.)" msgstr "" -#: whatsnew/3.14.rst:2277 deprecations/pending-removal-in-3.16.rst:30 -msgid ":class:`asyncio.DefaultEventLoopPolicy`" +#: whatsnew/3.14.rst:2281 +msgid "zlib" msgstr "" -#: whatsnew/3.14.rst:2278 deprecations/pending-removal-in-3.16.rst:31 -msgid ":class:`asyncio.WindowsSelectorEventLoopPolicy`" +#: whatsnew/3.14.rst:2283 +msgid "" +"On Windows, `zlib-ng `__ is now used as " +"the implementation of the :mod:`zlib` module in the default binaries. There " +"are no known incompatibilities between ``zlib-ng`` and the previously-used " +"``zlib`` implementation. This should result in better performance at all " +"compression levels." msgstr "" -#: whatsnew/3.14.rst:2279 deprecations/pending-removal-in-3.16.rst:32 -msgid ":class:`asyncio.WindowsProactorEventLoopPolicy`" +#: whatsnew/3.14.rst:2290 +msgid "" +"It is worth noting that ``zlib.Z_BEST_SPEED`` (``1``) may result in " +"significantly less compression than the previous implementation, whilst also " +"significantly reducing the time taken to compress." msgstr "" -#: whatsnew/3.14.rst:2280 deprecations/pending-removal-in-3.16.rst:33 -msgid ":func:`asyncio.get_event_loop_policy`" +#: whatsnew/3.14.rst:2294 +msgid "(Contributed by Steve Dower in :gh:`91349`.)" msgstr "" -#: whatsnew/3.14.rst:2281 deprecations/pending-removal-in-3.16.rst:34 -msgid ":func:`asyncio.set_event_loop_policy`" +#: whatsnew/3.14.rst:2298 +msgid "Removed" msgstr "" -#: whatsnew/3.14.rst:2283 deprecations/pending-removal-in-3.16.rst:36 +#: whatsnew/3.14.rst:2303 msgid "" -"Users should use :func:`asyncio.run` or :class:`asyncio.Runner` with " -"*loop_factory* to use the desired event loop implementation." +"Remove the *type*, *choices*, and *metavar* parameters of :class:`!" +"BooleanOptionalAction`. These have been deprecated since Python 3.12. " +"(Contributed by Nikita Sobolev in :gh:`118805`.)" msgstr "" -#: whatsnew/3.14.rst:2286 deprecations/pending-removal-in-3.16.rst:39 -msgid "For example, to use :class:`asyncio.SelectorEventLoop` on Windows::" +#: whatsnew/3.14.rst:2308 +msgid "" +"Calling :meth:`~argparse.ArgumentParser.add_argument_group` on an argument " +"group now raises a :exc:`ValueError`. Similarly, :meth:`~argparse." +"ArgumentParser.add_argument_group` or :meth:`~argparse.ArgumentParser." +"add_mutually_exclusive_group` on a mutually exclusive group now both raise :" +"exc:`ValueError`\\ s. This 'nesting' was never supported, often failed to " +"work correctly, and was unintentionally exposed through inheritance. This " +"functionality has been deprecated since Python 3.11. (Contributed by " +"Savannah Ostrowski in :gh:`127186`.)" msgstr "" -#: whatsnew/3.14.rst:2288 deprecations/pending-removal-in-3.16.rst:41 +#: whatsnew/3.14.rst:2322 msgid "" -"import asyncio\n" -"\n" -"async def main():\n" -" ...\n" -"\n" -"asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)" +"Remove the following classes, which have been deprecated aliases of :class:" +"`~ast.Constant` since Python 3.8 and have emitted deprecation warnings since " +"Python 3.12:" msgstr "" -#: whatsnew/3.14.rst:2295 deprecations/pending-removal-in-3.16.rst:48 -msgid "(Contributed by Kumar Aditya in :gh:`127949`.)" +#: whatsnew/3.14.rst:2326 +msgid ":class:`!Bytes`" msgstr "" -#: whatsnew/3.14.rst:2297 -msgid "" -":mod:`builtins`: Passing a complex number as the *real* or *imag* argument " -"in the :func:`complex` constructor is now deprecated; it should only be " -"passed as a single positional argument. (Contributed by Serhiy Storchaka in :" -"gh:`109218`.)" +#: whatsnew/3.14.rst:2327 +msgid ":class:`!Ellipsis`" msgstr "" -#: whatsnew/3.14.rst:2303 -msgid "" -":mod:`codecs`: :func:`codecs.open` is now deprecated. Use :func:`open` " -"instead. (Contributed by Inada Naoki in :gh:`133036`.)" +#: whatsnew/3.14.rst:2328 +msgid ":class:`!NameConstant`" msgstr "" -#: whatsnew/3.14.rst:2307 deprecations/pending-removal-in-3.15.rst:16 -#: deprecations/pending-removal-in-3.19.rst:4 -msgid ":mod:`ctypes`:" +#: whatsnew/3.14.rst:2329 +msgid ":class:`!Num`" msgstr "" -#: whatsnew/3.14.rst:2309 -msgid "" -"On non-Windows platforms, setting :attr:`.Structure._pack_` to use a MSVC-" -"compatible default memory layout is deprecated in favor of setting :attr:`." -"Structure._layout_` to ``'ms'``. (Contributed by Petr Viktorin in :gh:" -"`131747`.)" +#: whatsnew/3.14.rst:2330 +msgid ":class:`!Str`" msgstr "" -#: whatsnew/3.14.rst:2314 +#: whatsnew/3.14.rst:2332 msgid "" -"Calling :func:`ctypes.POINTER` on a string is deprecated. Use :ref:`ctypes-" -"incomplete-types` for self-referential structures. Also, the internal " -"``ctypes._pointer_type_cache`` is deprecated. See :func:`ctypes.POINTER` for " -"updated implementation details. (Contributed by Sergey Myrianov in :gh:" -"`100926`.)" +"As a consequence of these removals, user-defined ``visit_Num``, " +"``visit_Str``, ``visit_Bytes``, ``visit_NameConstant`` and " +"``visit_Ellipsis`` methods on custom :class:`~ast.NodeVisitor` subclasses " +"will no longer be called when the :class:`!NodeVisitor` subclass is visiting " +"an AST. Define a ``visit_Constant`` method instead." msgstr "" -#: whatsnew/3.14.rst:2320 -msgid "" -":mod:`functools`: Calling the Python implementation of :func:`functools." -"reduce` with *function* or *sequence* as keyword arguments is now " -"deprecated. (Contributed by Kirill Podoprigora in :gh:`121676`.)" +#: whatsnew/3.14.rst:2338 +msgid "(Contributed by Alex Waygood in :gh:`119562`.)" msgstr "" -#: whatsnew/3.14.rst:2325 +#: whatsnew/3.14.rst:2340 msgid "" -":mod:`logging`: Support for custom logging handlers with the *strm* argument " -"is deprecated and scheduled for removal in Python 3.16. Define handlers with " -"the *stream* argument instead. (Contributed by Mariusz Felisiak in :gh:" -"`115032`.)" +"Remove the following deprecated properties on :class:`ast.Constant`, which " +"were present for compatibility with the now-removed AST classes:" msgstr "" -#: whatsnew/3.14.rst:2330 -msgid "" -":mod:`mimetypes`: Valid extensions start with a '.' or are empty for :meth:" -"`mimetypes.MimeTypes.add_type`. Undotted extensions are deprecated and will " -"raise a :exc:`ValueError` in Python 3.16. (Contributed by Hugo van Kemenade " -"in :gh:`75223`.)" +#: whatsnew/3.14.rst:2343 +msgid ":attr:`!Constant.n`" msgstr "" -#: whatsnew/3.14.rst:2337 -msgid "" -":mod:`!nturl2path`: This module is now deprecated. Call :func:`urllib." -"request.url2pathname` and :func:`~urllib.request.pathname2url` instead. " -"(Contributed by Barney Gale in :gh:`125866`.)" +#: whatsnew/3.14.rst:2344 +msgid ":attr:`!Constant.s`" msgstr "" -#: whatsnew/3.14.rst:2342 +#: whatsnew/3.14.rst:2346 msgid "" -":mod:`os`: :term:`Soft deprecate ` :func:`os.popen` and :" -"func:`os.spawn* ` functions. They should no longer be used to " -"write new code. The :mod:`subprocess` module is recommended instead. " -"(Contributed by Victor Stinner in :gh:`120743`.)" +"Use :attr:`!Constant.value` instead. (Contributed by Alex Waygood in :gh:" +"`119562`.)" msgstr "" -#: whatsnew/3.14.rst:2348 +#: whatsnew/3.14.rst:2353 msgid "" -":mod:`pathlib`: :meth:`!pathlib.PurePath.as_uri` is deprecated and will be " -"removed in Python 3.19. Use :meth:`pathlib.Path.as_uri` instead. " -"(Contributed by Barney Gale in :gh:`123599`.)" +"Remove the following classes, methods, and functions, which have been " +"deprecated since Python 3.12:" msgstr "" -#: whatsnew/3.14.rst:2353 -msgid "" -":mod:`pdb`: The undocumented ``pdb.Pdb.curframe_locals`` attribute is now a " -"deprecated read-only property. The low overhead dynamic frame locals access " -"added in Python 3.13 by PEP 667 means the frame locals cache reference " -"previously stored in this attribute is no longer needed. Derived debuggers " -"should access ``pdb.Pdb.curframe.f_locals`` directly in Python 3.13 and " -"later versions. (Contributed by Tian Gao in :gh:`124369` and :gh:`125951`.)" +#: whatsnew/3.14.rst:2356 +msgid ":class:`!AbstractChildWatcher`" msgstr "" -#: whatsnew/3.14.rst:2361 -msgid "" -":mod:`symtable`: Deprecate :meth:`symtable.Class.get_methods` due to the " -"lack of interest. (Contributed by Bénédikt Tran in :gh:`119698`.)" +#: whatsnew/3.14.rst:2357 +msgid ":class:`!FastChildWatcher`" msgstr "" -#: whatsnew/3.14.rst:2365 -msgid "" -":mod:`tkinter`: The :class:`!tkinter.Variable` methods :meth:`!" -"trace_variable`, :meth:`!trace_vdelete` and :meth:`!trace_vinfo` are now " -"deprecated. Use :meth:`!trace_add`, :meth:`!trace_remove` and :meth:`!" -"trace_info` instead. (Contributed by Serhiy Storchaka in :gh:`120220`.)" +#: whatsnew/3.14.rst:2358 +msgid ":class:`!MultiLoopChildWatcher`" msgstr "" -#: whatsnew/3.14.rst:2372 -msgid "" -":mod:`urllib.parse`: Accepting objects with false values (like ``0`` and " -"``[]``) except empty strings, byte-like objects and ``None`` in :mod:`urllib." -"parse` functions :func:`~urllib.parse.parse_qsl` and :func:`~urllib.parse." -"parse_qs` is now deprecated. (Contributed by Serhiy Storchaka in :gh:" -"`116897`.)" +#: whatsnew/3.14.rst:2359 +msgid ":class:`!PidfdChildWatcher`" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:2 -#: deprecations/pending-removal-in-3.15.rst:2 -msgid "Pending removal in Python 3.15" +#: whatsnew/3.14.rst:2360 +msgid ":class:`!SafeChildWatcher`" msgstr "" -#: deprecations/pending-removal-in-3.15.rst:4 -#: deprecations/pending-removal-in-3.16.rst:4 -msgid "The import system:" +#: whatsnew/3.14.rst:2361 +msgid ":class:`!ThreadedChildWatcher`" msgstr "" -#: deprecations/pending-removal-in-3.15.rst:6 -msgid "" -"Setting :attr:`~module.__cached__` on a module while failing to set :attr:" -"`__spec__.cached ` is deprecated. In " -"Python 3.15, :attr:`!__cached__` will cease to be set or take into " -"consideration by the import system or standard library. (:gh:`97879`)" +#: whatsnew/3.14.rst:2362 +msgid ":meth:`!AbstractEventLoopPolicy.get_child_watcher`" msgstr "" -#: deprecations/pending-removal-in-3.15.rst:11 -msgid "" -"Setting :attr:`~module.__package__` on a module while failing to set :attr:" -"`__spec__.parent ` is deprecated. In " -"Python 3.15, :attr:`!__package__` will cease to be set or take into " -"consideration by the import system or standard library. (:gh:`97879`)" +#: whatsnew/3.14.rst:2363 +msgid ":meth:`!AbstractEventLoopPolicy.set_child_watcher`" msgstr "" -#: deprecations/pending-removal-in-3.15.rst:18 -msgid "" -"The undocumented :func:`!ctypes.SetPointerType` function has been deprecated " -"since Python 3.13." +#: whatsnew/3.14.rst:2364 +msgid ":func:`!get_child_watcher`" msgstr "" -#: deprecations/pending-removal-in-3.15.rst:21 -msgid ":mod:`http.server`:" +#: whatsnew/3.14.rst:2365 +msgid ":func:`!set_child_watcher`" msgstr "" -#: deprecations/pending-removal-in-3.15.rst:23 -msgid "" -"The obsolete and rarely used :class:`~http.server.CGIHTTPRequestHandler` has " -"been deprecated since Python 3.13. No direct replacement exists. *Anything* " -"is better than CGI to interface a web server with a request handler." +#: whatsnew/3.14.rst:2367 +msgid "(Contributed by Kumar Aditya in :gh:`120804`.)" msgstr "" -#: deprecations/pending-removal-in-3.15.rst:29 +#: whatsnew/3.14.rst:2369 msgid "" -"The :option:`!--cgi` flag to the :program:`python -m http.server` command-" -"line interface has been deprecated since Python 3.13." +":func:`asyncio.get_event_loop` now raises a :exc:`RuntimeError` if there is " +"no current event loop, and no longer implicitly creates an event loop." msgstr "" -#: deprecations/pending-removal-in-3.15.rst:32 -#: deprecations/pending-removal-in-future.rst:64 -msgid ":mod:`importlib`:" +#: whatsnew/3.14.rst:2373 +msgid "(Contributed by Kumar Aditya in :gh:`126353`.)" msgstr "" -#: deprecations/pending-removal-in-3.15.rst:34 -msgid "``load_module()`` method: use ``exec_module()`` instead." +#: whatsnew/3.14.rst:2378 +msgid "" +"There's a few patterns that use :func:`asyncio.get_event_loop`, most of them " +"can be replaced with :func:`asyncio.run`." msgstr "" -#: deprecations/pending-removal-in-3.15.rst:36 -msgid ":class:`locale`:" +#: whatsnew/3.14.rst:2381 +msgid "If you're running an async function, simply use :func:`asyncio.run`." msgstr "" -#: deprecations/pending-removal-in-3.15.rst:38 +#: whatsnew/3.14.rst:2410 whatsnew/3.14.rst:2438 +msgid "Before:" +msgstr "" + +#: whatsnew/3.14.rst:2385 msgid "" -"The :func:`~locale.getdefaultlocale` function has been deprecated since " -"Python 3.11. Its removal was originally planned for Python 3.13 (:gh:" -"`90817`), but has been postponed to Python 3.15. Use :func:`~locale." -"getlocale`, :func:`~locale.setlocale`, and :func:`~locale.getencoding` " -"instead. (Contributed by Hugo van Kemenade in :gh:`111187`.)" +"async def main():\n" +" ...\n" +"\n" +"\n" +"loop = asyncio.get_event_loop()\n" +"try:\n" +" loop.run_until_complete(main())\n" +"finally:\n" +" loop.close()" msgstr "" -#: deprecations/pending-removal-in-3.15.rst:46 -msgid ":mod:`pathlib`:" +#: whatsnew/3.14.rst:2423 whatsnew/3.14.rst:2454 +msgid "After:" +msgstr "" + +#: whatsnew/3.14.rst:2399 +msgid "" +"async def main():\n" +" ...\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: whatsnew/3.14.rst:2406 +msgid "" +"If you need to start something, for example, a server listening on a socket " +"and then run forever, use :func:`asyncio.run` and an :class:`asyncio.Event`." +msgstr "" + +#: whatsnew/3.14.rst:2412 +msgid "" +"def start_server(loop): ...\n" +"\n" +"loop = asyncio.get_event_loop()\n" +"try:\n" +" start_server(loop)\n" +" loop.run_forever()\n" +"finally:\n" +" loop.close()" +msgstr "" + +#: whatsnew/3.14.rst:2425 +msgid "" +"def start_server(loop): ...\n" +"\n" +"async def main():\n" +" start_server(asyncio.get_running_loop())\n" +" await asyncio.Event().wait()\n" +"\n" +"asyncio.run(main())" +msgstr "" + +#: whatsnew/3.14.rst:2435 +msgid "" +"If you need to run something in an event loop, then run some blocking code " +"around it, use :class:`asyncio.Runner`." +msgstr "" + +#: whatsnew/3.14.rst:2440 +msgid "" +"async def operation_one(): ...\n" +"def blocking_code(): ...\n" +"async def operation_two(): ...\n" +"\n" +"loop = asyncio.get_event_loop()\n" +"try:\n" +" loop.run_until_complete(operation_one())\n" +" blocking_code()\n" +" loop.run_until_complete(operation_two())\n" +"finally:\n" +" loop.close()" +msgstr "" + +#: whatsnew/3.14.rst:2456 +msgid "" +"async def operation_one(): ...\n" +"def blocking_code(): ...\n" +"async def operation_two(): ...\n" +"\n" +"with asyncio.Runner() as runner:\n" +" runner.run(operation_one())\n" +" blocking_code()\n" +" runner.run(operation_two())" +msgstr "" + +#: whatsnew/3.14.rst:2469 +msgid "email" +msgstr "" + +#: whatsnew/3.14.rst:2471 +msgid "" +"Remove :func:`email.utils.localtime`'s *isdst* parameter, which was " +"deprecated in and has been ignored since Python 3.12. (Contributed by Hugo " +"van Kemenade in :gh:`118798`.)" +msgstr "" + +#: whatsnew/3.14.rst:2477 +msgid "importlib.abc" +msgstr "" + +#: whatsnew/3.14.rst:2479 +msgid "Remove deprecated :mod:`importlib.abc` classes:" +msgstr "" + +#: whatsnew/3.14.rst:2481 +msgid "" +":class:`!ResourceReader` (use :class:`~importlib.resources.abc." +"TraversableResources`)" +msgstr "" + +#: whatsnew/3.14.rst:2483 +msgid "" +":class:`!Traversable` (use :class:`~importlib.resources.abc.Traversable`)" +msgstr "" + +#: whatsnew/3.14.rst:2485 +msgid "" +":class:`!TraversableResources` (use :class:`~importlib.resources.abc." +"TraversableResources`)" +msgstr "" + +#: whatsnew/3.14.rst:2488 +msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" +msgstr "" + +#: whatsnew/3.14.rst:2492 +msgid "itertools" +msgstr "" + +#: whatsnew/3.14.rst:2494 +msgid "" +"Remove support for copy, deepcopy, and pickle operations from :mod:" +"`itertools` iterators. These have emitted a :exc:`DeprecationWarning` since " +"Python 3.12. (Contributed by Raymond Hettinger in :gh:`101588`.)" +msgstr "" + +#: whatsnew/3.14.rst:2503 +msgid "" +"Remove support for passing additional keyword arguments to :class:`~pathlib." +"Path`. In previous versions, any such arguments are ignored. (Contributed by " +"Barney Gale in :gh:`74033`.)" +msgstr "" + +#: whatsnew/3.14.rst:2508 +msgid "" +"Remove support for passing additional positional arguments to :meth:`." +"PurePath.relative_to` and :meth:`~pathlib.PurePath.is_relative_to`. In " +"previous versions, any such arguments are joined onto *other*. (Contributed " +"by Barney Gale in :gh:`78707`.)" +msgstr "" + +#: whatsnew/3.14.rst:2515 +msgid "pkgutil" +msgstr "" + +#: whatsnew/3.14.rst:2517 +msgid "" +"Remove the :func:`!get_loader` and :func:`!find_loader` functions, which " +"have been deprecated since Python 3.12. (Contributed by Bénédikt Tran in :gh:" +"`97850`.)" +msgstr "" + +#: whatsnew/3.14.rst:2523 +msgid "pty" +msgstr "" + +#: whatsnew/3.14.rst:2525 +msgid "" +"Remove the :func:`!master_open` and :func:`!slave_open` functions, which " +"have been deprecated since Python 3.12. Use :func:`pty.openpty` instead. " +"(Contributed by Nikita Sobolev in :gh:`118824`.)" +msgstr "" + +#: whatsnew/3.14.rst:2532 +msgid "sqlite3" +msgstr "" + +#: whatsnew/3.14.rst:2534 +msgid "" +"Remove :data:`!version` and :data:`!version_info` from the :mod:`sqlite3` " +"module; use :data:`~sqlite3.sqlite_version` and :data:`~sqlite3." +"sqlite_version_info` for the actual version number of the runtime SQLite " +"library. (Contributed by Hugo van Kemenade in :gh:`118924`.)" +msgstr "" + +#: whatsnew/3.14.rst:2540 +msgid "" +"Using a sequence of parameters with named placeholders now raises a :exc:" +"`~sqlite3.ProgrammingError`, having been deprecated since Python 3.12. " +"(Contributed by Erlend E. Aasland in :gh:`118928` and :gh:`101693`.)" +msgstr "" + +#: whatsnew/3.14.rst:2549 +msgid "" +"Remove the :class:`!Quoter` class from :mod:`urllib.parse`, which has been " +"deprecated since Python 3.11. (Contributed by Nikita Sobolev in :gh:" +"`118827`.)" +msgstr "" + +#: whatsnew/3.14.rst:2553 +msgid "" +"Remove the :class:`!URLopener` and :class:`!FancyURLopener` classes from :" +"mod:`urllib.request`, which have been deprecated since Python 3.3." +msgstr "" + +#: whatsnew/3.14.rst:2557 +msgid "" +"``myopener.open()`` can be replaced with :func:`~urllib.request.urlopen`. " +"``myopener.retrieve()`` can be replaced with :func:`~urllib.request." +"urlretrieve`. Customisations to the opener classes can be replaced by " +"passing customized handlers to :func:`~urllib.request.build_opener`. " +"(Contributed by Barney Gale in :gh:`84850`.)" +msgstr "" + +#: whatsnew/3.14.rst:2566 +msgid "Deprecated" +msgstr "" + +#: whatsnew/3.14.rst:2569 +msgid "New deprecations" +msgstr "" + +#: whatsnew/3.14.rst:2571 +msgid "" +"Passing a complex number as the *real* or *imag* argument in the :func:" +"`complex` constructor is now deprecated; complex numbers should only be " +"passed as a single positional argument. (Contributed by Serhiy Storchaka in :" +"gh:`109218`.)" +msgstr "" + +#: whatsnew/3.14.rst:2576 deprecations/pending-removal-in-future.rst:7 +msgid ":mod:`argparse`:" +msgstr "" + +#: whatsnew/3.14.rst:2578 +msgid "" +"Passing the undocumented keyword argument *prefix_chars* to the :meth:" +"`~argparse.ArgumentParser.add_argument_group` method is now deprecated. " +"(Contributed by Savannah Ostrowski in :gh:`125563`.)" +msgstr "" + +#: whatsnew/3.14.rst:2582 +msgid "" +"Deprecated the :class:`argparse.FileType` type converter. Anything relating " +"to resource management should be handled downstream, after the arguments " +"have been parsed. (Contributed by Serhiy Storchaka in :gh:`58032`.)" +msgstr "" + +#: whatsnew/3.14.rst:2587 deprecations/pending-removal-in-3.16.rst:19 +msgid ":mod:`asyncio`:" +msgstr "" + +#: whatsnew/3.14.rst:2589 +msgid "" +"The :func:`!asyncio.iscoroutinefunction` is now deprecated and will be " +"removed in Python 3.16; use :func:`inspect.iscoroutinefunction` instead. " +"(Contributed by Jiahao Li and Kumar Aditya in :gh:`122875`.)" +msgstr "" + +#: whatsnew/3.14.rst:2594 +msgid "" +"The :mod:`asyncio` policy system is deprecated and will be removed in Python " +"3.16. In particular, the following classes and functions are deprecated:" +msgstr "" + +#: whatsnew/3.14.rst:2598 deprecations/pending-removal-in-3.16.rst:29 +msgid ":class:`asyncio.AbstractEventLoopPolicy`" +msgstr "" + +#: whatsnew/3.14.rst:2599 deprecations/pending-removal-in-3.16.rst:30 +msgid ":class:`asyncio.DefaultEventLoopPolicy`" +msgstr "" + +#: whatsnew/3.14.rst:2600 deprecations/pending-removal-in-3.16.rst:31 +msgid ":class:`asyncio.WindowsSelectorEventLoopPolicy`" +msgstr "" + +#: whatsnew/3.14.rst:2601 deprecations/pending-removal-in-3.16.rst:32 +msgid ":class:`asyncio.WindowsProactorEventLoopPolicy`" +msgstr "" + +#: whatsnew/3.14.rst:2602 deprecations/pending-removal-in-3.16.rst:33 +msgid ":func:`asyncio.get_event_loop_policy`" +msgstr "" + +#: whatsnew/3.14.rst:2603 deprecations/pending-removal-in-3.16.rst:34 +msgid ":func:`asyncio.set_event_loop_policy`" +msgstr "" + +#: whatsnew/3.14.rst:2605 +msgid "" +"Users should use :func:`asyncio.run` or :class:`asyncio.Runner` with the " +"*loop_factory* argument to use the desired event loop implementation." +msgstr "" + +#: whatsnew/3.14.rst:2608 +msgid "For example, to use :class:`asyncio.SelectorEventLoop` on Windows:" +msgstr "" + +#: whatsnew/3.14.rst:2610 deprecations/pending-removal-in-3.16.rst:41 +msgid "" +"import asyncio\n" +"\n" +"async def main():\n" +" ...\n" +"\n" +"asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)" +msgstr "" + +#: whatsnew/3.14.rst:2619 deprecations/pending-removal-in-3.16.rst:48 +msgid "(Contributed by Kumar Aditya in :gh:`127949`.)" +msgstr "" + +#: whatsnew/3.14.rst:2621 +msgid "" +":mod:`codecs`: The :func:`codecs.open` function is now deprecated, and will " +"be removed in a future version of Python. Use :func:`open` instead. " +"(Contributed by Inada Naoki in :gh:`133036`.)" +msgstr "" + +#: whatsnew/3.14.rst:2627 deprecations/pending-removal-in-3.15.rst:16 +#: deprecations/pending-removal-in-3.19.rst:4 +msgid ":mod:`ctypes`:" +msgstr "" + +#: whatsnew/3.14.rst:2629 +msgid "" +"On non-Windows platforms, setting :attr:`.Structure._pack_` to use a MSVC-" +"compatible default memory layout is now deprecated in favor of setting :attr:" +"`.Structure._layout_` to ``'ms'``, and will be removed in Python 3.19. " +"(Contributed by Petr Viktorin in :gh:`131747`.)" +msgstr "" + +#: whatsnew/3.14.rst:2634 +msgid "" +"Calling :func:`ctypes.POINTER` on a string is now deprecated. Use :ref:" +"`incomplete types ` for self-referential " +"structures. Also, the internal ``ctypes._pointer_type_cache`` is deprecated. " +"See :func:`ctypes.POINTER` for updated implementation details. (Contributed " +"by Sergey Myrianov in :gh:`100926`.)" +msgstr "" + +#: whatsnew/3.14.rst:2641 +msgid "" +":mod:`functools`: Calling the Python implementation of :func:`functools." +"reduce` with *function* or *sequence* as keyword arguments is now " +"deprecated; the parameters will be made positional-only in Python 3.16. " +"(Contributed by Kirill Podoprigora in :gh:`121676`.)" +msgstr "" + +#: whatsnew/3.14.rst:2647 +msgid "" +":mod:`logging`: Support for custom logging handlers with the *strm* argument " +"is now deprecated and scheduled for removal in Python 3.16. Define handlers " +"with the *stream* argument instead. (Contributed by Mariusz Felisiak in :gh:" +"`115032`.)" +msgstr "" + +#: whatsnew/3.14.rst:2653 +msgid "" +":mod:`mimetypes`: Valid extensions are either empty or must start with '.' " +"for :meth:`mimetypes.MimeTypes.add_type`. Undotted extensions are deprecated " +"and will raise a :exc:`ValueError` in Python 3.16. (Contributed by Hugo van " +"Kemenade in :gh:`75223`.)" +msgstr "" + +#: whatsnew/3.14.rst:2660 +msgid "" +":mod:`!nturl2path`: This module is now deprecated. Call :func:`urllib." +"request.url2pathname` and :func:`~urllib.request.pathname2url` instead. " +"(Contributed by Barney Gale in :gh:`125866`.)" +msgstr "" + +#: whatsnew/3.14.rst:2665 +msgid "" +":mod:`os`: The :func:`os.popen` and :func:`os.spawn* ` functions " +"are now :term:`soft deprecated`. They should no longer be used to write new " +"code. The :mod:`subprocess` module is recommended instead. (Contributed by " +"Victor Stinner in :gh:`120743`.)" +msgstr "" + +#: whatsnew/3.14.rst:2672 +msgid "" +":mod:`pathlib`: :meth:`!pathlib.PurePath.as_uri` is now deprecated and " +"scheduled for removal in Python 3.19. Use :meth:`pathlib.Path.as_uri` " +"instead. (Contributed by Barney Gale in :gh:`123599`.)" +msgstr "" + +#: whatsnew/3.14.rst:2678 +msgid "" +":mod:`pdb`: The undocumented ``pdb.Pdb.curframe_locals`` attribute is now a " +"deprecated read-only property, which will be removed in a future version of " +"Python. The low overhead dynamic frame locals access added in Python 3.13 " +"by :pep:`667` means the frame locals cache reference previously stored in " +"this attribute is no longer needed. Derived debuggers should access ``pdb." +"Pdb.curframe.f_locals`` directly in Python 3.13 and later versions. " +"(Contributed by Tian Gao in :gh:`124369` and :gh:`125951`.)" +msgstr "" + +#: whatsnew/3.14.rst:2687 +msgid "" +":mod:`symtable`: Deprecate :meth:`symtable.Class.get_methods` due to the " +"lack of interest, scheduled for removal in Python 3.16. (Contributed by " +"Bénédikt Tran in :gh:`119698`.)" +msgstr "" + +#: whatsnew/3.14.rst:2692 +msgid "" +":mod:`tkinter`: The :class:`!tkinter.Variable` methods :meth:`!" +"trace_variable`, :meth:`!trace_vdelete` and :meth:`!trace_vinfo` are now " +"deprecated. Use :meth:`!trace_add`, :meth:`!trace_remove` and :meth:`!" +"trace_info` instead. (Contributed by Serhiy Storchaka in :gh:`120220`.)" +msgstr "" + +#: whatsnew/3.14.rst:2698 +msgid "" +":mod:`urllib.parse`: Accepting objects with false values (like ``0`` and " +"``[]``) except empty strings, bytes-like objects and ``None`` in :func:" +"`~urllib.parse.parse_qsl` and :func:`~urllib.parse.parse_qs` is now " +"deprecated. (Contributed by Serhiy Storchaka in :gh:`116897`.)" +msgstr "" + +#: deprecations/c-api-pending-removal-in-3.15.rst:2 +#: deprecations/pending-removal-in-3.15.rst:2 +msgid "Pending removal in Python 3.15" +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:4 +#: deprecations/pending-removal-in-3.16.rst:4 +msgid "The import system:" +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:6 +msgid "" +"Setting :attr:`~module.__cached__` on a module while failing to set :attr:" +"`__spec__.cached ` is deprecated. In " +"Python 3.15, :attr:`!__cached__` will cease to be set or take into " +"consideration by the import system or standard library. (:gh:`97879`)" +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:11 +msgid "" +"Setting :attr:`~module.__package__` on a module while failing to set :attr:" +"`__spec__.parent ` is deprecated. In " +"Python 3.15, :attr:`!__package__` will cease to be set or take into " +"consideration by the import system or standard library. (:gh:`97879`)" +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:18 +msgid "" +"The undocumented :func:`!ctypes.SetPointerType` function has been deprecated " +"since Python 3.13." +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:21 +msgid ":mod:`http.server`:" +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:23 +msgid "" +"The obsolete and rarely used :class:`~http.server.CGIHTTPRequestHandler` has " +"been deprecated since Python 3.13. No direct replacement exists. *Anything* " +"is better than CGI to interface a web server with a request handler." +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:29 +msgid "" +"The :option:`!--cgi` flag to the :program:`python -m http.server` command-" +"line interface has been deprecated since Python 3.13." +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:32 +#: deprecations/pending-removal-in-future.rst:63 +msgid ":mod:`importlib`:" +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:34 +msgid "``load_module()`` method: use ``exec_module()`` instead." +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:36 +msgid ":class:`locale`:" +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:38 +msgid "" +"The :func:`~locale.getdefaultlocale` function has been deprecated since " +"Python 3.11. Its removal was originally planned for Python 3.13 (:gh:" +"`90817`), but has been postponed to Python 3.15. Use :func:`~locale." +"getlocale`, :func:`~locale.setlocale`, and :func:`~locale.getencoding` " +"instead. (Contributed by Hugo van Kemenade in :gh:`111187`.)" +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:46 +msgid ":mod:`pathlib`:" msgstr "" #: deprecations/pending-removal-in-3.15.rst:48 @@ -3721,7 +4051,7 @@ msgid "" msgstr "" #: deprecations/pending-removal-in-3.15.rst:80 -#: deprecations/pending-removal-in-3.17.rst:4 +#: deprecations/pending-removal-in-3.17.rst:26 msgid ":mod:`typing`:" msgstr "" @@ -3771,6 +4101,7 @@ msgid "" "by Jiahao Li in :gh:`125746`.)" msgstr "" +#: deprecations/c-api-pending-removal-in-3.16.rst:2 #: deprecations/pending-removal-in-3.16.rst:2 msgid "Pending removal in Python 3.16" msgstr "" @@ -3794,6 +4125,29 @@ msgid "" "``'w'`` format code (:c:type:`Py_UCS4`) for Unicode characters instead." msgstr "" +#: deprecations/pending-removal-in-3.16.rst:21 +msgid "" +":func:`!asyncio.iscoroutinefunction` is deprecated and will be removed in " +"Python 3.16; use :func:`inspect.iscoroutinefunction` instead. (Contributed " +"by Jiahao Li and Kumar Aditya in :gh:`122875`.)" +msgstr "" + +#: deprecations/pending-removal-in-3.16.rst:26 +msgid "" +":mod:`asyncio` policy system is deprecated and will be removed in Python " +"3.16. In particular, the following classes and functions are deprecated:" +msgstr "" + +#: deprecations/pending-removal-in-3.16.rst:36 +msgid "" +"Users should use :func:`asyncio.run` or :class:`asyncio.Runner` with " +"*loop_factory* to use the desired event loop implementation." +msgstr "" + +#: deprecations/pending-removal-in-3.16.rst:39 +msgid "For example, to use :class:`asyncio.SelectorEventLoop` on Windows::" +msgstr "" + #: deprecations/pending-removal-in-3.16.rst:50 #: deprecations/pending-removal-in-future.rst:16 msgid ":mod:`builtins`:" @@ -3895,8 +4249,46 @@ msgstr "" msgid "Pending removal in Python 3.17" msgstr "" +#: deprecations/pending-removal-in-3.17.rst:4 +msgid ":mod:`collections.abc`:" +msgstr "" + #: deprecations/pending-removal-in-3.17.rst:6 msgid "" +":class:`collections.abc.ByteString` is scheduled for removal in Python 3.17." +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:8 +#: deprecations/pending-removal-in-3.17.rst:36 +msgid "" +"Use ``isinstance(obj, collections.abc.Buffer)`` to test if ``obj`` " +"implements the :ref:`buffer protocol ` at runtime. For use in " +"type annotations, either use :class:`~collections.abc.Buffer` or a union " +"that explicitly specifies the types your code supports (e.g., ``bytes | " +"bytearray | memoryview``)." +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:14 +#: deprecations/pending-removal-in-3.17.rst:42 +msgid "" +":class:`!ByteString` was originally intended to be an abstract class that " +"would serve as a supertype of both :class:`bytes` and :class:`bytearray`. " +"However, since the ABC never had any methods, knowing that an object was an " +"instance of :class:`!ByteString` never actually told you anything useful " +"about the object. Other common buffer types such as :class:`memoryview` were " +"also never understood as subtypes of :class:`!ByteString` (either at runtime " +"or by static type checkers)." +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:22 +#: deprecations/pending-removal-in-3.17.rst:50 +msgid "" +"See :pep:`PEP 688 <688#current-options>` for more details. (Contributed by " +"Shantanu Jain in :gh:`91896`.)" +msgstr "" + +#: deprecations/pending-removal-in-3.17.rst:28 +msgid "" "Before Python 3.14, old-style unions were implemented using the private " "class ``typing._UnionGenericAlias``. This class is no longer needed for the " "implementation, but it has been retained for backward compatibility, with " @@ -3905,6 +4297,12 @@ msgid "" "of relying on private implementation details." msgstr "" +#: deprecations/pending-removal-in-3.17.rst:33 +msgid "" +":class:`typing.ByteString`, deprecated since Python 3.9, is scheduled for " +"removal in Python 3.17." +msgstr "" + #: deprecations/pending-removal-in-3.19.rst:2 msgid "Pending removal in Python 3.19" msgstr "" @@ -3943,17 +4341,13 @@ msgid "The :class:`argparse.FileType` type converter is deprecated." msgstr "" #: deprecations/pending-removal-in-future.rst:18 -msgid "``bool(NotImplemented)``." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:19 msgid "" "Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)`` signature " "is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " "argument signature." msgstr "" -#: deprecations/pending-removal-in-future.rst:22 +#: deprecations/pending-removal-in-future.rst:21 msgid "" "Currently Python accepts numeric literals immediately followed by keywords, " "for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " @@ -3965,32 +4359,32 @@ msgid "" "syntax error. (:gh:`87999`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:30 +#: deprecations/pending-removal-in-future.rst:29 msgid "" "Support for ``__index__()`` and ``__int__()`` method returning non-int type: " "these methods will be required to return an instance of a strict subclass " "of :class:`int`." msgstr "" -#: deprecations/pending-removal-in-future.rst:33 +#: deprecations/pending-removal-in-future.rst:32 msgid "" "Support for ``__float__()`` method returning a strict subclass of :class:" "`float`: these methods will be required to return an instance of :class:" "`float`." msgstr "" -#: deprecations/pending-removal-in-future.rst:36 +#: deprecations/pending-removal-in-future.rst:35 msgid "" "Support for ``__complex__()`` method returning a strict subclass of :class:" "`complex`: these methods will be required to return an instance of :class:" "`complex`." msgstr "" -#: deprecations/pending-removal-in-future.rst:39 +#: deprecations/pending-removal-in-future.rst:38 msgid "Delegation of ``int()`` to ``__trunc__()`` method." msgstr "" -#: deprecations/pending-removal-in-future.rst:40 +#: deprecations/pending-removal-in-future.rst:39 msgid "" "Passing a complex number as the *real* or *imag* argument in the :func:" "`complex` constructor is now deprecated; it should only be passed as a " @@ -3998,87 +4392,87 @@ msgid "" "`109218`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:45 +#: deprecations/pending-removal-in-future.rst:44 msgid "" ":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " "are deprecated and replaced by :data:`calendar.JANUARY` and :data:`calendar." "FEBRUARY`. (Contributed by Prince Roshan in :gh:`103636`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:50 +#: deprecations/pending-removal-in-future.rst:49 msgid "" ":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. (:gh:" "`133038`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:52 +#: deprecations/pending-removal-in-future.rst:51 msgid "" ":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:55 +#: deprecations/pending-removal-in-future.rst:54 msgid ":mod:`datetime`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:57 +#: deprecations/pending-removal-in-future.rst:56 msgid "" ":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." "UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:59 +#: deprecations/pending-removal-in-future.rst:58 msgid "" ":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." "fromtimestamp(timestamp, tz=datetime.UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:62 +#: deprecations/pending-removal-in-future.rst:61 msgid ":mod:`gettext`: Plural value must be an integer." msgstr "" -#: deprecations/pending-removal-in-future.rst:66 +#: deprecations/pending-removal-in-future.rst:65 msgid "" ":func:`~importlib.util.cache_from_source` *debug_override* parameter is " "deprecated: use the *optimization* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:69 +#: deprecations/pending-removal-in-future.rst:68 msgid ":mod:`importlib.metadata`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:71 +#: deprecations/pending-removal-in-future.rst:70 msgid "``EntryPoints`` tuple interface." msgstr "" -#: deprecations/pending-removal-in-future.rst:72 +#: deprecations/pending-removal-in-future.rst:71 msgid "Implicit ``None`` on return values." msgstr "" -#: deprecations/pending-removal-in-future.rst:74 +#: deprecations/pending-removal-in-future.rst:73 msgid "" ":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " "use :meth:`~logging.warning` instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:77 +#: deprecations/pending-removal-in-future.rst:76 msgid "" ":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " "BytesIO and binary mode instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:80 +#: deprecations/pending-removal-in-future.rst:79 msgid "" ":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." msgstr "" -#: deprecations/pending-removal-in-future.rst:82 +#: deprecations/pending-removal-in-future.rst:81 msgid "" ":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " "deprecated, use an exception instance." msgstr "" -#: deprecations/pending-removal-in-future.rst:85 +#: deprecations/pending-removal-in-future.rst:84 msgid "" ":mod:`re`: More strict rules are now applied for numerical group references " "and group names in regular expressions. Only sequence of ASCII digits is " @@ -4087,110 +4481,110 @@ msgid "" "underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:92 +#: deprecations/pending-removal-in-future.rst:91 msgid "" ":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." msgstr "" -#: deprecations/pending-removal-in-future.rst:94 +#: deprecations/pending-removal-in-future.rst:93 msgid "" ":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " "Python 3.12; use the *onexc* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:97 +#: deprecations/pending-removal-in-future.rst:96 msgid ":mod:`ssl` options and protocols:" msgstr "" -#: deprecations/pending-removal-in-future.rst:99 +#: deprecations/pending-removal-in-future.rst:98 msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." msgstr "" -#: deprecations/pending-removal-in-future.rst:100 +#: deprecations/pending-removal-in-future.rst:99 msgid "" ":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` and :meth:" "`!selected_npn_protocol` are deprecated: use ALPN instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:103 +#: deprecations/pending-removal-in-future.rst:102 msgid "``ssl.OP_NO_SSL*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:104 +#: deprecations/pending-removal-in-future.rst:103 msgid "``ssl.OP_NO_TLS*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:105 +#: deprecations/pending-removal-in-future.rst:104 msgid "``ssl.PROTOCOL_SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:106 +#: deprecations/pending-removal-in-future.rst:105 msgid "``ssl.PROTOCOL_TLS``" msgstr "" -#: deprecations/pending-removal-in-future.rst:107 +#: deprecations/pending-removal-in-future.rst:106 msgid "``ssl.PROTOCOL_TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:108 +#: deprecations/pending-removal-in-future.rst:107 msgid "``ssl.PROTOCOL_TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:109 +#: deprecations/pending-removal-in-future.rst:108 msgid "``ssl.PROTOCOL_TLSv1_2``" msgstr "" -#: deprecations/pending-removal-in-future.rst:110 +#: deprecations/pending-removal-in-future.rst:109 msgid "``ssl.TLSVersion.SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:111 +#: deprecations/pending-removal-in-future.rst:110 msgid "``ssl.TLSVersion.TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:112 +#: deprecations/pending-removal-in-future.rst:111 msgid "``ssl.TLSVersion.TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:114 +#: deprecations/pending-removal-in-future.rst:113 msgid ":mod:`threading` methods:" msgstr "" -#: deprecations/pending-removal-in-future.rst:116 +#: deprecations/pending-removal-in-future.rst:115 msgid "" ":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." "notify_all`." msgstr "" -#: deprecations/pending-removal-in-future.rst:117 +#: deprecations/pending-removal-in-future.rst:116 msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." msgstr "" -#: deprecations/pending-removal-in-future.rst:118 +#: deprecations/pending-removal-in-future.rst:117 msgid "" ":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :" "attr:`threading.Thread.daemon` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:120 +#: deprecations/pending-removal-in-future.rst:119 msgid "" ":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :" "attr:`threading.Thread.name` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:122 +#: deprecations/pending-removal-in-future.rst:121 msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." msgstr "" -#: deprecations/pending-removal-in-future.rst:123 +#: deprecations/pending-removal-in-future.rst:122 msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." msgstr "" -#: deprecations/pending-removal-in-future.rst:125 +#: deprecations/pending-removal-in-future.rst:124 msgid ":class:`typing.Text` (:gh:`92332`)." msgstr "" -#: deprecations/pending-removal-in-future.rst:127 +#: deprecations/pending-removal-in-future.rst:126 msgid "" "The internal class ``typing._UnionGenericAlias`` is no longer used to " "implement :class:`typing.Union`. To preserve compatibility with users using " @@ -4198,1188 +4592,1057 @@ msgid "" "Python 3.17. (Contributed by Jelle Zijlstra in :gh:`105499`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:132 +#: deprecations/pending-removal-in-future.rst:131 msgid "" ":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " "value that is not ``None`` from a test case." msgstr "" -#: deprecations/pending-removal-in-future.rst:135 +#: deprecations/pending-removal-in-future.rst:134 msgid "" ":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " "instead" msgstr "" -#: deprecations/pending-removal-in-future.rst:137 +#: deprecations/pending-removal-in-future.rst:136 msgid "``splitattr()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:138 +#: deprecations/pending-removal-in-future.rst:137 msgid "``splithost()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:139 +#: deprecations/pending-removal-in-future.rst:138 msgid "``splitnport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:140 +#: deprecations/pending-removal-in-future.rst:139 msgid "``splitpasswd()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:141 +#: deprecations/pending-removal-in-future.rst:140 msgid "``splitport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:142 +#: deprecations/pending-removal-in-future.rst:141 msgid "``splitquery()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:143 +#: deprecations/pending-removal-in-future.rst:142 msgid "``splittag()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:144 +#: deprecations/pending-removal-in-future.rst:143 msgid "``splittype()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:145 +#: deprecations/pending-removal-in-future.rst:144 msgid "``splituser()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:146 +#: deprecations/pending-removal-in-future.rst:145 msgid "``splitvalue()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:147 +#: deprecations/pending-removal-in-future.rst:146 msgid "``to_bytes()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:149 -msgid "" -":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " -"writes." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:152 -msgid "" -":mod:`xml.etree.ElementTree`: Testing the truth value of an :class:`~xml." -"etree.ElementTree.Element` is deprecated. In a future release it will always " -"return ``True``. Prefer explicit ``len(elem)`` or ``elem is not None`` tests " -"instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:157 -msgid "" -":func:`sys._clear_type_cache` is deprecated: use :func:`sys." -"_clear_internal_caches` instead." -msgstr "" - -#: whatsnew/3.14.rst:3033 -msgid "Removed" -msgstr "" - -#: whatsnew/3.14.rst:2397 -msgid "" -"Remove the *type*, *choices*, and *metavar* parameters of :class:`!argparse." -"BooleanOptionalAction`. They were deprecated since 3.12." -msgstr "" - -#: whatsnew/3.14.rst:2401 -msgid "" -"Calling :meth:`~argparse.ArgumentParser.add_argument_group` on an argument " -"group, and calling :meth:`~argparse.ArgumentParser.add_argument_group` or :" -"meth:`~argparse.ArgumentParser.add_mutually_exclusive_group` on a mutually " -"exclusive group now raise exceptions. This nesting was never supported, " -"often failed to work correctly, and was unintentionally exposed through " -"inheritance. This functionality has been deprecated since Python 3.11. " -"(Contributed by Savannah Ostrowski in :gh:`127186`.)" -msgstr "" - -#: whatsnew/3.14.rst:2412 -msgid "" -"Remove the following classes. They were all deprecated since Python 3.8, and " -"have emitted deprecation warnings since Python 3.12:" -msgstr "" - -#: whatsnew/3.14.rst:2415 -msgid ":class:`!ast.Bytes`" -msgstr "" - -#: whatsnew/3.14.rst:2416 -msgid ":class:`!ast.Ellipsis`" -msgstr "" - -#: whatsnew/3.14.rst:2417 -msgid ":class:`!ast.NameConstant`" -msgstr "" - -#: whatsnew/3.14.rst:2418 -msgid ":class:`!ast.Num`" -msgstr "" - -#: whatsnew/3.14.rst:2419 -msgid ":class:`!ast.Str`" -msgstr "" - -#: whatsnew/3.14.rst:2421 -msgid "" -"Use :class:`ast.Constant` instead. As a consequence of these removals, user-" -"defined ``visit_Num``, ``visit_Str``, ``visit_Bytes``, " -"``visit_NameConstant`` and ``visit_Ellipsis`` methods on custom :class:`ast." -"NodeVisitor` subclasses will no longer be called when the :class:`!" -"NodeVisitor` subclass is visiting an AST. Define a ``visit_Constant`` method " -"instead." -msgstr "" - -#: whatsnew/3.14.rst:2428 -msgid "" -"Also, remove the following deprecated properties on :class:`ast.Constant`, " -"which were present for compatibility with the now-removed AST classes:" -msgstr "" - -#: whatsnew/3.14.rst:2431 -msgid ":attr:`!ast.Constant.n`" -msgstr "" - -#: whatsnew/3.14.rst:2432 -msgid ":attr:`!ast.Constant.s`" -msgstr "" - -#: whatsnew/3.14.rst:2434 -msgid "" -"Use :attr:`!ast.Constant.value` instead. (Contributed by Alex Waygood in :gh:" -"`119562`.)" -msgstr "" - -#: whatsnew/3.14.rst:2440 -msgid "" -"Remove the following classes and functions. They were all deprecated and " -"emitted deprecation warnings since Python 3.12:" -msgstr "" - -#: whatsnew/3.14.rst:2443 -msgid ":func:`!asyncio.get_child_watcher`" -msgstr "" - -#: whatsnew/3.14.rst:2444 -msgid ":func:`!asyncio.set_child_watcher`" -msgstr "" - -#: whatsnew/3.14.rst:2445 -msgid ":meth:`!asyncio.AbstractEventLoopPolicy.get_child_watcher`" -msgstr "" - -#: whatsnew/3.14.rst:2446 -msgid ":meth:`!asyncio.AbstractEventLoopPolicy.set_child_watcher`" -msgstr "" - -#: whatsnew/3.14.rst:2447 -msgid ":class:`!asyncio.AbstractChildWatcher`" -msgstr "" - -#: whatsnew/3.14.rst:2448 -msgid ":class:`!asyncio.FastChildWatcher`" -msgstr "" - -#: whatsnew/3.14.rst:2449 -msgid ":class:`!asyncio.MultiLoopChildWatcher`" -msgstr "" - -#: whatsnew/3.14.rst:2450 -msgid ":class:`!asyncio.PidfdChildWatcher`" -msgstr "" - -#: whatsnew/3.14.rst:2451 -msgid ":class:`!asyncio.SafeChildWatcher`" -msgstr "" - -#: whatsnew/3.14.rst:2452 -msgid ":class:`!asyncio.ThreadedChildWatcher`" -msgstr "" - -#: whatsnew/3.14.rst:2454 -msgid "(Contributed by Kumar Aditya in :gh:`120804`.)" -msgstr "" - -#: whatsnew/3.14.rst:2456 -msgid "" -"Removed implicit creation of event loop by :func:`asyncio.get_event_loop`. " -"It now raises a :exc:`RuntimeError` if there is no current event loop. " -"(Contributed by Kumar Aditya in :gh:`126353`.)" -msgstr "" - -#: whatsnew/3.14.rst:2460 -msgid "" -"There's a few patterns that use :func:`asyncio.get_event_loop`, most of them " -"can be replaced with :func:`asyncio.run`." -msgstr "" - -#: whatsnew/3.14.rst:2463 -msgid "If you're running an async function, simply use :func:`asyncio.run`." -msgstr "" - -#: whatsnew/3.14.rst:2488 whatsnew/3.14.rst:2514 -msgid "Before::" -msgstr "" - -#: whatsnew/3.14.rst:2467 -msgid "" -"async def main():\n" -" ...\n" -"\n" -"\n" -"loop = asyncio.get_event_loop()\n" -"try:\n" -" loop.run_until_complete(main())\n" -"finally:\n" -" loop.close()" -msgstr "" - -#: whatsnew/3.14.rst:2500 whatsnew/3.14.rst:2533 -msgid "After::" +#: deprecations/pending-removal-in-future.rst:148 +msgid "" +":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " +"writes." msgstr "" -#: whatsnew/3.14.rst:2479 +#: deprecations/pending-removal-in-future.rst:151 msgid "" -"async def main():\n" -" ...\n" -"\n" -"asyncio.run(main())" +":mod:`xml.etree.ElementTree`: Testing the truth value of an :class:`~xml." +"etree.ElementTree.Element` is deprecated. In a future release it will always " +"return ``True``. Prefer explicit ``len(elem)`` or ``elem is not None`` tests " +"instead." msgstr "" -#: whatsnew/3.14.rst:2484 +#: deprecations/pending-removal-in-future.rst:156 msgid "" -"If you need to start something, for example, a server listening on a socket " -"and then run forever, use :func:`asyncio.run` and an :class:`asyncio.Event`." +":func:`sys._clear_type_cache` is deprecated: use :func:`sys." +"_clear_internal_caches` instead." msgstr "" -#: whatsnew/3.14.rst:2490 -msgid "" -"def start_server(loop):\n" -" ...\n" -"\n" -"loop = asyncio.get_event_loop()\n" -"try:\n" -" start_server(loop)\n" -" loop.run_forever()\n" -"finally:\n" -" loop.close()" +#: whatsnew/3.14.rst:2718 +msgid "CPython bytecode changes" msgstr "" -#: whatsnew/3.14.rst:2502 +#: whatsnew/3.14.rst:2720 msgid "" -"def start_server(loop):\n" -" ...\n" -"\n" -"async def main():\n" -" start_server(asyncio.get_running_loop())\n" -" await asyncio.Event().wait()\n" -"\n" -"asyncio.run(main())" +"Replaced the opcode :opcode:`!BINARY_SUBSCR` by the :opcode:`BINARY_OP` " +"opcode with the ``NB_SUBSCR`` oparg. (Contributed by Irit Katriel in :gh:" +"`100239`.)" msgstr "" -#: whatsnew/3.14.rst:2511 +#: whatsnew/3.14.rst:2724 msgid "" -"If you need to run something in an event loop, then run some blocking code " -"around it, use :class:`asyncio.Runner`." +"Add the :opcode:`BUILD_INTERPOLATION` and :opcode:`BUILD_TEMPLATE` opcodes " +"to construct new :class:`~string.templatelib.Interpolation` and :class:" +"`~string.templatelib.Template` instances, respectively. (Contributed by " +"Lysandros Nikolaou and others in :gh:`132661`; see also :ref:`PEP 750: " +"Template strings `)." msgstr "" -#: whatsnew/3.14.rst:2516 +#: whatsnew/3.14.rst:2730 msgid "" -"async def operation_one():\n" -" ...\n" -"\n" -"def blocking_code():\n" -" ...\n" -"\n" -"async def operation_two():\n" -" ...\n" -"\n" -"loop = asyncio.get_event_loop()\n" -"try:\n" -" loop.run_until_complete(operation_one())\n" -" blocking_code()\n" -" loop.run_until_complete(operation_two())\n" -"finally:\n" -" loop.close()" +"Remove the :opcode:`!BUILD_CONST_KEY_MAP` opcode. Use :opcode:`BUILD_MAP` " +"instead. (Contributed by Mark Shannon in :gh:`122160`.)" msgstr "" -#: whatsnew/3.14.rst:2535 +#: whatsnew/3.14.rst:2734 msgid "" -"async def operation_one():\n" -" ...\n" -"\n" -"def blocking_code():\n" -" ...\n" -"\n" -"async def operation_two():\n" -" ...\n" -"\n" -"with asyncio.Runner() as runner:\n" -" runner.run(operation_one())\n" -" blocking_code()\n" -" runner.run(operation_two())" +"Replace the :opcode:`!LOAD_ASSERTION_ERROR` opcode with :opcode:" +"`LOAD_COMMON_CONSTANT` and add support for loading :exc:" +"`NotImplementedError`." msgstr "" -#: whatsnew/3.14.rst:2552 -msgid "collections.abc" +#: whatsnew/3.14.rst:2738 +msgid "" +"Add the :opcode:`LOAD_FAST_BORROW` and :opcode:" +"`LOAD_FAST_BORROW_LOAD_FAST_BORROW` opcodes to reduce reference counting " +"overhead when the interpreter can prove that the reference in the frame " +"outlives the reference loaded onto the stack. (Contributed by Matt Page in :" +"gh:`130704`.)" msgstr "" -#: whatsnew/3.14.rst:2554 +#: whatsnew/3.14.rst:2743 msgid "" -"Remove :class:`!collections.abc.ByteString`. It had previously raised a :exc:" -"`DeprecationWarning` since Python 3.12." +"Add the :opcode:`LOAD_SMALL_INT` opcode, which pushes a small integer equal " +"to the ``oparg`` to the stack. The :opcode:`!RETURN_CONST` opcode is removed " +"as it is no longer used. (Contributed by Mark Shannon in :gh:`125837`.)" msgstr "" -#: whatsnew/3.14.rst:2558 -msgid "email" +#: whatsnew/3.14.rst:2748 +msgid "" +"Add the new :opcode:`LOAD_SPECIAL` instruction. Generate code for :keyword:" +"`with` and :keyword:`async with` statements using the new instruction. " +"Removed the :opcode:`!BEFORE_WITH` and :opcode:`!BEFORE_ASYNC_WITH` " +"instructions. (Contributed by Mark Shannon in :gh:`120507`.)" msgstr "" -#: whatsnew/3.14.rst:2560 +#: whatsnew/3.14.rst:2754 msgid "" -"Remove the *isdst* parameter from :func:`email.utils.localtime`. " -"(Contributed by Hugo van Kemenade in :gh:`118798`.)" +"Add the :opcode:`POP_ITER` opcode to support 'virtual' iterators. " +"(Contributed by Mark Shannon in :gh:`132554`.)" msgstr "" -#: whatsnew/3.14.rst:2564 -msgid "importlib" +#: whatsnew/3.14.rst:2759 +msgid "Pseudo-instructions" msgstr "" -#: whatsnew/3.14.rst:2566 -msgid "Remove deprecated :mod:`importlib.abc` classes:" +#: whatsnew/3.14.rst:2761 +msgid "" +"Add the :opcode:`!ANNOTATIONS_PLACEHOLDER` pseudo instruction to support " +"partially executed module-level annotations with :ref:`deferred evaluation " +"of annotations `. (Contributed by Jelle " +"Zijlstra in :gh:`130907`.)" msgstr "" -#: whatsnew/3.14.rst:2568 -msgid ":class:`!importlib.abc.ResourceReader`" +#: whatsnew/3.14.rst:2766 +msgid "" +"Add the :opcode:`!BINARY_OP_EXTEND` pseudo instruction, which executes a " +"pair of functions (guard and specialization functions) accessed from the " +"inline cache. (Contributed by Irit Katriel in :gh:`100239`.)" msgstr "" -#: whatsnew/3.14.rst:2569 -msgid ":class:`!importlib.abc.Traversable`" +#: whatsnew/3.14.rst:2771 +msgid "" +"Add three specializations for :opcode:`CALL_KW`; :opcode:`!CALL_KW_PY` for " +"calls to Python functions, :opcode:`!CALL_KW_BOUND_METHOD` for calls to " +"bound methods, and :opcode:`!CALL_KW_NON_PY` for all other calls. " +"(Contributed by Mark Shannon in :gh:`118093`.)" msgstr "" -#: whatsnew/3.14.rst:2570 -msgid ":class:`!importlib.abc.TraversableResources`" +#: whatsnew/3.14.rst:2777 +msgid "" +"Add the :opcode:`JUMP_IF_TRUE` and :opcode:`JUMP_IF_FALSE` pseudo " +"instructions, conditional jumps which do not impact the stack. Replaced by " +"the sequence ``COPY 1``, ``TO_BOOL``, ``POP_JUMP_IF_TRUE/FALSE``. " +"(Contributed by Irit Katriel in :gh:`124285`.)" msgstr "" -#: whatsnew/3.14.rst:2572 -msgid "Use :mod:`importlib.resources.abc` classes instead:" +#: whatsnew/3.14.rst:2782 +msgid "" +"Add the :opcode:`!LOAD_CONST_MORTAL` pseudo instruction. (Contributed by " +"Mark Shannon in :gh:`128685`.)" msgstr "" -#: whatsnew/3.14.rst:2574 -msgid ":class:`importlib.resources.abc.Traversable`" +#: whatsnew/3.14.rst:2785 +msgid "" +"Add the :opcode:`LOAD_CONST_IMMORTAL` pseudo instruction, which does the " +"same as :opcode:`!LOAD_CONST`, but is more efficient for immortal objects. " +"(Contributed by Mark Shannon in :gh:`125837`.)" msgstr "" -#: whatsnew/3.14.rst:2575 -msgid ":class:`importlib.resources.abc.TraversableResources`" +#: whatsnew/3.14.rst:2790 +msgid "" +"Add the :opcode:`NOT_TAKEN` pseudo instruction, used by :mod:`sys." +"monitoring` to record branch events (such as :monitoring-event:" +"`BRANCH_LEFT`). (Contributed by Mark Shannon in :gh:`122548`.)" msgstr "" -#: whatsnew/3.14.rst:2577 -msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" +#: whatsnew/3.14.rst:2796 +msgid "C API changes" msgstr "" -#: whatsnew/3.14.rst:2580 -msgid "itertools" +#: whatsnew/3.14.rst:2801 +msgid "Python configuration C API" msgstr "" -#: whatsnew/3.14.rst:2582 +#: whatsnew/3.14.rst:2803 msgid "" -"Remove :mod:`itertools` support for copy, deepcopy, and pickle operations. " -"These had previously raised a :exc:`DeprecationWarning` since Python 3.12. " -"(Contributed by Raymond Hettinger in :gh:`101588`.)" +"Add a :ref:`PyInitConfig C API ` to configure the Python " +"initialization without relying on C structures and the ability to make ABI-" +"compatible changes in the future." msgstr "" -#: whatsnew/3.14.rst:2589 +#: whatsnew/3.14.rst:2807 msgid "" -"Remove support for passing additional keyword arguments to :class:`pathlib." -"Path`. In previous versions, any such arguments are ignored." +"Complete the :pep:`587` :ref:`PyConfig C API ` by adding :c:" +"func:`PyInitConfig_AddModule` which can be used to add a built-in extension " +"module; a feature previously referred to as the \"inittab\"." msgstr "" -#: whatsnew/3.14.rst:2591 +#: whatsnew/3.14.rst:2811 msgid "" -"Remove support for passing additional positional arguments to :meth:`pathlib." -"PurePath.relative_to` and :meth:`~pathlib.PurePath.is_relative_to`. In " -"previous versions, any such arguments are joined onto *other*." +"Add :c:func:`PyConfig_Get` and :c:func:`PyConfig_Set` functions to get and " +"set the current runtime configuration." msgstr "" -#: whatsnew/3.14.rst:2597 -msgid "pkgutil" +#: whatsnew/3.14.rst:2814 +msgid "" +":pep:`587` 'Python Initialization Configuration' unified all the ways to " +"configure Python's initialization. This PEP also unifies the configuration " +"of Python's preinitialization and initialization in a single API. Moreover, " +"this PEP only provides a single choice to embed Python, instead of having " +"two 'Python' and 'Isolated' choices (PEP 587), to further simplify the API." msgstr "" -#: whatsnew/3.14.rst:2599 +#: whatsnew/3.14.rst:2821 msgid "" -"Remove deprecated :func:`!pkgutil.get_loader` and :func:`!pkgutil." -"find_loader`. These had previously raised a :exc:`DeprecationWarning` since " -"Python 3.12. (Contributed by Bénédikt Tran in :gh:`97850`.)" +"The lower level PEP 587 PyConfig API remains available for use cases with an " +"intentionally higher level of coupling to CPython implementation details " +"(such as emulating the full functionality of CPython's CLI, including its " +"configuration mechanisms)." msgstr "" -#: whatsnew/3.14.rst:2604 -msgid "pty" +#: whatsnew/3.14.rst:2853 whatsnew/3.14.rst:2873 +msgid "(Contributed by Victor Stinner in :gh:`107954`.)" msgstr "" -#: whatsnew/3.14.rst:2606 -msgid "" -"Remove deprecated :func:`!pty.master_open` and :func:`!pty.slave_open`. They " -"had previously raised a :exc:`DeprecationWarning` since Python 3.12. Use :" -"func:`pty.openpty` instead. (Contributed by Nikita Sobolev in :gh:`118824`.)" +#: whatsnew/3.14.rst:2828 +msgid ":pep:`741` and :pep:`587`" msgstr "" -#: whatsnew/3.14.rst:2612 -msgid "sqlite3" +#: whatsnew/3.14.rst:2832 +msgid "New features in the C API" msgstr "" -#: whatsnew/3.14.rst:2614 +#: whatsnew/3.14.rst:2834 msgid "" -"Remove :data:`!version` and :data:`!version_info` from :mod:`sqlite3`. " -"(Contributed by Hugo van Kemenade in :gh:`118924`.)" +"Add :c:func:`Py_PACK_VERSION` and :c:func:`Py_PACK_FULL_VERSION`, two new " +"macros for bit-packing Python version numbers. This is useful for " +"comparisons with :c:var:`Py_Version` or :c:macro:`PY_VERSION_HEX`. " +"(Contributed by Petr Viktorin in :gh:`128629`.)" msgstr "" -#: whatsnew/3.14.rst:2617 +#: whatsnew/3.14.rst:2840 msgid "" -"Disallow using a sequence of parameters with named placeholders. This had " -"previously raised a :exc:`DeprecationWarning` since Python 3.12; it will now " -"raise a :exc:`sqlite3.ProgrammingError`. (Contributed by Erlend E. Aasland " -"in :gh:`118928` and :gh:`101693`.)" +"Add :c:func:`PyBytes_Join(sep, iterable) ` function, similar " +"to ``sep.join(iterable)`` in Python. (Contributed by Victor Stinner in :gh:" +"`121645`.)" msgstr "" -#: whatsnew/3.14.rst:2625 +#: whatsnew/3.14.rst:2844 msgid "" -"Remove :class:`!typing.ByteString`. It had previously raised a :exc:" -"`DeprecationWarning` since Python 3.12." +"Add functions to manipulate the configuration of the current runtime Python " +"interpreter (:ref:`PEP 741: Python configuration C API `):" +msgstr "" + +#: whatsnew/3.14.rst:2848 +msgid ":c:func:`PyConfig_Get`" msgstr "" -#: whatsnew/3.14.rst:2628 -msgid ":class:`typing.TypeAliasType` now supports star unpacking." +#: whatsnew/3.14.rst:2849 +msgid ":c:func:`PyConfig_GetInt`" msgstr "" -#: whatsnew/3.14.rst:2633 -msgid "" -"Remove deprecated :class:`!Quoter` class from :mod:`urllib.parse`. It had " -"previously raised a :exc:`DeprecationWarning` since Python 3.11. " -"(Contributed by Nikita Sobolev in :gh:`118827`.)" +#: whatsnew/3.14.rst:2850 +msgid ":c:func:`PyConfig_Set`" msgstr "" -#: whatsnew/3.14.rst:2636 -msgid "" -"Remove deprecated :class:`!URLopener` and :class:`!FancyURLopener` classes " -"from :mod:`urllib.request`. They had previously raised a :exc:" -"`DeprecationWarning` since Python 3.3." +#: whatsnew/3.14.rst:2851 +msgid ":c:func:`PyConfig_Names`" msgstr "" -#: whatsnew/3.14.rst:2640 +#: whatsnew/3.14.rst:2855 msgid "" -"``myopener.open()`` can be replaced with :func:`~urllib.request.urlopen`, " -"and ``myopener.retrieve()`` can be replaced with :func:`~urllib.request." -"urlretrieve`. Customizations to the opener classes can be replaced by " -"passing customized handlers to :func:`~urllib.request.build_opener`. " -"(Contributed by Barney Gale in :gh:`84850`.)" +"Add functions to configure Python initialization (:ref:`PEP 741: Python " +"configuration C API `):" msgstr "" -#: whatsnew/3.14.rst:2648 -msgid "Others" +#: whatsnew/3.14.rst:2858 +msgid ":c:func:`Py_InitializeFromInitConfig`" msgstr "" -#: whatsnew/3.14.rst:2650 -msgid "" -"Using :data:`NotImplemented` in a boolean context will now raise a :exc:" -"`TypeError`. It had previously raised a :exc:`DeprecationWarning` since " -"Python 3.9. (Contributed by Jelle Zijlstra in :gh:`118767`.)" +#: whatsnew/3.14.rst:2859 +msgid ":c:func:`PyInitConfig_AddModule`" msgstr "" -#: whatsnew/3.14.rst:2654 -msgid "" -"The :func:`int` built-in no longer delegates to :meth:`~object.__trunc__`. " -"Classes that want to support conversion to integer must implement either :" -"meth:`~object.__int__` or :meth:`~object.__index__`. (Contributed by Mark " -"Dickinson in :gh:`119743`.)" +#: whatsnew/3.14.rst:2860 +msgid ":c:func:`PyInitConfig_Create`" msgstr "" -#: whatsnew/3.14.rst:2661 -msgid "CPython bytecode changes" +#: whatsnew/3.14.rst:2861 +msgid ":c:func:`PyInitConfig_Free`" msgstr "" -#: whatsnew/3.14.rst:2663 -msgid "" -"Replaced the opcode ``BINARY_SUBSCR`` by :opcode:`BINARY_OP` with oparg " -"``NB_SUBSCR``. (Contributed by Irit Katriel in :gh:`100239`.)" +#: whatsnew/3.14.rst:2862 +msgid ":c:func:`PyInitConfig_FreeStrList`" msgstr "" -#: whatsnew/3.14.rst:2894 -msgid "Porting to Python 3.14" +#: whatsnew/3.14.rst:2863 +msgid ":c:func:`PyInitConfig_GetError`" msgstr "" -#: whatsnew/3.14.rst:2669 -msgid "" -"This section lists previously described changes and other bugfixes that may " -"require changes to your code." +#: whatsnew/3.14.rst:2864 +msgid ":c:func:`PyInitConfig_GetExitCode`" msgstr "" -#: whatsnew/3.14.rst:2673 -msgid "Changes in the Python API" +#: whatsnew/3.14.rst:2865 +msgid ":c:func:`PyInitConfig_GetInt`" msgstr "" -#: whatsnew/3.14.rst:2675 -msgid "" -":class:`functools.partial` is now a method descriptor. Wrap it in :func:" -"`staticmethod` if you want to preserve the old behavior. (Contributed by " -"Serhiy Storchaka and Dominykas Grigonis in :gh:`121027`.)" +#: whatsnew/3.14.rst:2866 +msgid ":c:func:`PyInitConfig_GetStr`" msgstr "" -#: whatsnew/3.14.rst:2679 -msgid "" -"The :func:`locale.nl_langinfo` function now sets temporarily the " -"``LC_CTYPE`` locale in some cases. This temporary change affects other " -"threads. (Contributed by Serhiy Storchaka in :gh:`69998`.)" +#: whatsnew/3.14.rst:2867 +msgid ":c:func:`PyInitConfig_GetStrList`" msgstr "" -#: whatsnew/3.14.rst:2684 -msgid "" -":class:`types.UnionType` is now an alias for :class:`typing.Union`, causing " -"changes in some behaviors. See :ref:`above ` for " -"more details. (Contributed by Jelle Zijlstra in :gh:`105499`.)" +#: whatsnew/3.14.rst:2868 +msgid ":c:func:`PyInitConfig_HasOption`" msgstr "" -#: whatsnew/3.14.rst:2689 -msgid "" -"The runtime behavior of annotations has changed in various ways; see :ref:" -"`above ` for details. While most code that interacts " -"with annotations should continue to work, some undocumented details may " -"behave differently." +#: whatsnew/3.14.rst:2869 +msgid ":c:func:`PyInitConfig_SetInt`" msgstr "" -#: whatsnew/3.14.rst:2696 -msgid "Build changes" +#: whatsnew/3.14.rst:2870 +msgid ":c:func:`PyInitConfig_SetStr`" msgstr "" -#: whatsnew/3.14.rst:2698 -msgid "" -"GNU Autoconf 2.72 is now required to generate :file:`configure`. " -"(Contributed by Erlend Aasland in :gh:`115765`.)" +#: whatsnew/3.14.rst:2871 +msgid ":c:func:`PyInitConfig_SetStrList`" msgstr "" -#: whatsnew/3.14.rst:2701 +#: whatsnew/3.14.rst:2875 msgid "" -"``#pragma``-based linking with ``python3*.lib`` can now be switched off " -"with :c:expr:`Py_NO_LINK_LIB`. (Contributed by Jean-Christophe Fillion-Robin " -"in :gh:`82909`.)" +"Add :c:func:`Py_fopen` function to open a file. This works similarly to the " +"standard C :c:func:`!fopen` function, instead accepting a Python object for " +"the *path* parameter and setting an exception on error. The corresponding " +"new :c:func:`Py_fclose` function should be used to close a file. " +"(Contributed by Victor Stinner in :gh:`127350`.)" msgstr "" -#: whatsnew/3.14.rst:2708 -msgid "PEP 761: Discontinuation of PGP signatures" +#: whatsnew/3.14.rst:2883 +msgid "" +"Add :c:func:`Py_HashBuffer` to compute and return the hash value of a " +"buffer. (Contributed by Antoine Pitrou and Victor Stinner in :gh:`122854`.)" msgstr "" -#: whatsnew/3.14.rst:2710 +#: whatsnew/3.14.rst:2886 msgid "" -"PGP signatures will not be available for CPython 3.14 and onwards. Users " -"verifying artifacts must use `Sigstore verification materials`_ for " -"verifying CPython artifacts. This change in release process is specified in :" -"pep:`761`." +"Add :c:func:`PyImport_ImportModuleAttr` and :c:func:" +"`PyImport_ImportModuleAttrString` helper functions to import a module and " +"get an attribute of the module. (Contributed by Victor Stinner in :gh:" +"`128911`.)" msgstr "" -#: whatsnew/3.14.rst:2719 -msgid "C API changes" +#: whatsnew/3.14.rst:2891 +msgid "" +"Add :c:func:`PyIter_NextItem` to replace :c:func:`PyIter_Next`, which has an " +"ambiguous return value. (Contributed by Irit Katriel and Erlend Aasland in :" +"gh:`105201`.)" msgstr "" -#: whatsnew/3.14.rst:2724 +#: whatsnew/3.14.rst:2895 msgid "" "Add :c:func:`PyLong_GetSign` function to get the sign of :class:`int` " "objects. (Contributed by Sergey B Kirpichev in :gh:`116560`.)" msgstr "" -#: whatsnew/3.14.rst:2727 +#: whatsnew/3.14.rst:2898 msgid "" -"Add a new :c:type:`PyUnicodeWriter` API to create a Python :class:`str` " -"object:" +"Add :c:func:`PyLong_IsPositive`, :c:func:`PyLong_IsNegative` and :c:func:" +"`PyLong_IsZero` for checking if :c:type:`PyLongObject` is positive, " +"negative, or zero, respectively. (Contributed by James Roy and Sergey B " +"Kirpichev in :gh:`126061`.)" msgstr "" -#: whatsnew/3.14.rst:2730 -msgid ":c:func:`PyUnicodeWriter_Create`" +#: whatsnew/3.14.rst:2903 +msgid "" +"Add new functions to convert C ```` numbers to/from Python :class:" +"`int` objects:" msgstr "" -#: whatsnew/3.14.rst:2731 -msgid ":c:func:`PyUnicodeWriter_DecodeUTF8Stateful`" +#: whatsnew/3.14.rst:2906 +msgid ":c:func:`PyLong_AsInt32`" msgstr "" -#: whatsnew/3.14.rst:2732 -msgid ":c:func:`PyUnicodeWriter_Discard`" +#: whatsnew/3.14.rst:2907 +msgid ":c:func:`PyLong_AsInt64`" msgstr "" -#: whatsnew/3.14.rst:2733 -msgid ":c:func:`PyUnicodeWriter_Finish`" +#: whatsnew/3.14.rst:2908 +msgid ":c:func:`PyLong_AsUInt32`" msgstr "" -#: whatsnew/3.14.rst:2734 -msgid ":c:func:`PyUnicodeWriter_Format`" +#: whatsnew/3.14.rst:2909 +msgid ":c:func:`PyLong_AsUInt64`" msgstr "" -#: whatsnew/3.14.rst:2735 -msgid ":c:func:`PyUnicodeWriter_WriteASCII`" +#: whatsnew/3.14.rst:2910 +msgid ":c:func:`PyLong_FromInt32`" msgstr "" -#: whatsnew/3.14.rst:2736 -msgid ":c:func:`PyUnicodeWriter_WriteChar`" +#: whatsnew/3.14.rst:2911 +msgid ":c:func:`PyLong_FromInt64`" msgstr "" -#: whatsnew/3.14.rst:2737 -msgid ":c:func:`PyUnicodeWriter_WriteRepr`" +#: whatsnew/3.14.rst:2912 +msgid ":c:func:`PyLong_FromUInt32`" msgstr "" -#: whatsnew/3.14.rst:2738 -msgid ":c:func:`PyUnicodeWriter_WriteStr`" +#: whatsnew/3.14.rst:2913 +msgid ":c:func:`PyLong_FromUInt64`" msgstr "" -#: whatsnew/3.14.rst:2739 -msgid ":c:func:`PyUnicodeWriter_WriteSubstring`" +#: whatsnew/3.14.rst:2915 +msgid "(Contributed by Victor Stinner in :gh:`120389`.)" msgstr "" -#: whatsnew/3.14.rst:2740 -msgid ":c:func:`PyUnicodeWriter_WriteUCS4`" +#: whatsnew/3.14.rst:2917 +msgid "" +"Add a new import and export API for Python :class:`int` objects (:pep:`757`):" msgstr "" -#: whatsnew/3.14.rst:2741 -msgid ":c:func:`PyUnicodeWriter_WriteUTF8`" +#: whatsnew/3.14.rst:2920 +msgid ":c:func:`PyLong_GetNativeLayout`" msgstr "" -#: whatsnew/3.14.rst:2742 -msgid ":c:func:`PyUnicodeWriter_WriteWideChar`" +#: whatsnew/3.14.rst:2921 +msgid ":c:func:`PyLong_Export`" msgstr "" -#: whatsnew/3.14.rst:2744 -msgid "(Contributed by Victor Stinner in :gh:`119182`.)" +#: whatsnew/3.14.rst:2922 +msgid ":c:func:`PyLong_FreeExport`" msgstr "" -#: whatsnew/3.14.rst:2746 -msgid "" -"Add :c:func:`PyIter_NextItem` to replace :c:func:`PyIter_Next`, which has an " -"ambiguous return value. (Contributed by Irit Katriel and Erlend Aasland in :" -"gh:`105201`.)" +#: whatsnew/3.14.rst:2923 +msgid ":c:func:`PyLongWriter_Create`" msgstr "" -#: whatsnew/3.14.rst:2750 -msgid "" -"Add :c:func:`PyLong_IsPositive`, :c:func:`PyLong_IsNegative` and :c:func:" -"`PyLong_IsZero` for checking if :c:type:`PyLongObject` is positive, " -"negative, or zero, respectively. (Contributed by James Roy and Sergey B " -"Kirpichev in :gh:`126061`.)" +#: whatsnew/3.14.rst:2924 +msgid ":c:func:`PyLongWriter_Finish`" msgstr "" -#: whatsnew/3.14.rst:2755 -msgid "" -"Add new functions to convert C ```` numbers from/to Python :class:" -"`int`:" +#: whatsnew/3.14.rst:2925 +msgid ":c:func:`PyLongWriter_Discard`" msgstr "" -#: whatsnew/3.14.rst:2758 -msgid ":c:func:`PyLong_AsInt32`" +#: whatsnew/3.14.rst:2927 +msgid "(Contributed by Sergey B Kirpichev and Victor Stinner in :gh:`102471`.)" msgstr "" -#: whatsnew/3.14.rst:2759 -msgid ":c:func:`PyLong_AsInt64`" +#: whatsnew/3.14.rst:2929 +msgid "" +"Add :c:func:`PyMonitoring_FireBranchLeftEvent` and :c:func:" +"`PyMonitoring_FireBranchRightEvent` for generating :monitoring-event:" +"`BRANCH_LEFT` and :monitoring-event:`BRANCH_RIGHT` events, respectively. " +"(Contributed by Mark Shannon in :gh:`122548`.)" msgstr "" -#: whatsnew/3.14.rst:2760 -msgid ":c:func:`PyLong_AsUInt32`" +#: whatsnew/3.14.rst:2935 +msgid "" +"Add :c:func:`PyType_Freeze` function to make a type immutable. (Contributed " +"by Victor Stinner in :gh:`121654`.)" msgstr "" -#: whatsnew/3.14.rst:2761 -msgid ":c:func:`PyLong_AsUInt64`" +#: whatsnew/3.14.rst:2938 +msgid "" +"Add :c:func:`PyType_GetBaseByToken` and :c:data:`Py_tp_token` slot for " +"easier superclass identification, which attempts to resolve the type " +"checking issue mentioned in :pep:`PEP 630 <630#type-checking>`. (Contributed " +"in :gh:`124153`.)" msgstr "" -#: whatsnew/3.14.rst:2762 -msgid ":c:func:`PyLong_FromInt32`" +#: whatsnew/3.14.rst:2943 +msgid "" +"Add a new :c:func:`PyUnicode_Equal` function to test if two strings are " +"equal. The function is also added to the Limited C API. (Contributed by " +"Victor Stinner in :gh:`124502`.)" msgstr "" -#: whatsnew/3.14.rst:2763 -msgid ":c:func:`PyLong_FromInt64`" +#: whatsnew/3.14.rst:2948 +msgid "" +"Add a new :c:type:`PyUnicodeWriter` API to create a Python :class:`str` " +"object, with the following functions:" msgstr "" -#: whatsnew/3.14.rst:2764 -msgid ":c:func:`PyLong_FromUInt32`" +#: whatsnew/3.14.rst:2951 +msgid ":c:func:`PyUnicodeWriter_Create`" msgstr "" -#: whatsnew/3.14.rst:2765 -msgid ":c:func:`PyLong_FromUInt64`" +#: whatsnew/3.14.rst:2952 +msgid ":c:func:`PyUnicodeWriter_DecodeUTF8Stateful`" msgstr "" -#: whatsnew/3.14.rst:2767 -msgid "(Contributed by Victor Stinner in :gh:`120389`.)" +#: whatsnew/3.14.rst:2953 +msgid ":c:func:`PyUnicodeWriter_Discard`" msgstr "" -#: whatsnew/3.14.rst:2769 -msgid "" -"Add :c:func:`PyBytes_Join(sep, iterable) ` function, similar " -"to ``sep.join(iterable)`` in Python. (Contributed by Victor Stinner in :gh:" -"`121645`.)" +#: whatsnew/3.14.rst:2954 +msgid ":c:func:`PyUnicodeWriter_Finish`" msgstr "" -#: whatsnew/3.14.rst:2773 -msgid "" -"Add :c:func:`Py_HashBuffer` to compute and return the hash value of a " -"buffer. (Contributed by Antoine Pitrou and Victor Stinner in :gh:`122854`.)" +#: whatsnew/3.14.rst:2955 +msgid ":c:func:`PyUnicodeWriter_Format`" msgstr "" -#: whatsnew/3.14.rst:2776 -msgid "" -"Add functions to get and set the current runtime Python configuration (:pep:" -"`741`):" +#: whatsnew/3.14.rst:2956 +msgid ":c:func:`PyUnicodeWriter_WriteASCII`" msgstr "" -#: whatsnew/3.14.rst:2779 -msgid ":c:func:`PyConfig_Get`" +#: whatsnew/3.14.rst:2957 +msgid ":c:func:`PyUnicodeWriter_WriteChar`" msgstr "" -#: whatsnew/3.14.rst:2780 -msgid ":c:func:`PyConfig_GetInt`" +#: whatsnew/3.14.rst:2958 +msgid ":c:func:`PyUnicodeWriter_WriteRepr`" msgstr "" -#: whatsnew/3.14.rst:2781 -msgid ":c:func:`PyConfig_Set`" +#: whatsnew/3.14.rst:2959 +msgid ":c:func:`PyUnicodeWriter_WriteStr`" msgstr "" -#: whatsnew/3.14.rst:2782 -msgid ":c:func:`PyConfig_Names`" +#: whatsnew/3.14.rst:2960 +msgid ":c:func:`PyUnicodeWriter_WriteSubstring`" msgstr "" -#: whatsnew/3.14.rst:2786 -msgid "Add functions to configure the Python initialization (:pep:`741`):" +#: whatsnew/3.14.rst:2961 +msgid ":c:func:`PyUnicodeWriter_WriteUCS4`" msgstr "" -#: whatsnew/3.14.rst:2788 -msgid ":c:func:`Py_InitializeFromInitConfig`" +#: whatsnew/3.14.rst:2962 +msgid ":c:func:`PyUnicodeWriter_WriteUTF8`" msgstr "" -#: whatsnew/3.14.rst:2789 -msgid ":c:func:`PyInitConfig_AddModule`" +#: whatsnew/3.14.rst:2963 +msgid ":c:func:`PyUnicodeWriter_WriteWideChar`" msgstr "" -#: whatsnew/3.14.rst:2790 -msgid ":c:func:`PyInitConfig_Create`" +#: whatsnew/3.14.rst:2965 +msgid "(Contributed by Victor Stinner in :gh:`119182`.)" msgstr "" -#: whatsnew/3.14.rst:2791 -msgid ":c:func:`PyInitConfig_Free`" +#: whatsnew/3.14.rst:2967 +msgid "" +"The ``k`` and ``K`` formats in :c:func:`PyArg_ParseTuple` and similar " +"functions now use :meth:`~object.__index__` if available, like all other " +"integer formats. (Contributed by Serhiy Storchaka in :gh:`112068`.)" msgstr "" -#: whatsnew/3.14.rst:2792 -msgid ":c:func:`PyInitConfig_FreeStrList`" +#: whatsnew/3.14.rst:2972 +msgid "" +"Add support for a new ``p`` format unit in :c:func:`Py_BuildValue` that " +"produces a Python :class:`bool` object from a C integer. (Contributed by " +"Pablo Galindo in :issue:`45325`.)" msgstr "" -#: whatsnew/3.14.rst:2793 -msgid ":c:func:`PyInitConfig_GetError`" +#: whatsnew/3.14.rst:2976 +msgid "" +"Add :c:func:`PyUnstable_IsImmortal` for determining if an object is :term:" +"`immortal`, for debugging purposes. (Contributed by Peter Bierma in :gh:" +"`128509`.)" msgstr "" -#: whatsnew/3.14.rst:2794 -msgid ":c:func:`PyInitConfig_GetExitCode`" +#: whatsnew/3.14.rst:2980 +msgid "" +"Add :c:func:`PyUnstable_Object_EnableDeferredRefcount` for enabling deferred " +"reference counting, as outlined in :pep:`703`." msgstr "" -#: whatsnew/3.14.rst:2795 -msgid ":c:func:`PyInitConfig_GetInt`" +#: whatsnew/3.14.rst:2983 +msgid "" +"Add :c:func:`PyUnstable_Object_IsUniquelyReferenced` as a replacement for " +"``Py_REFCNT(op) == 1`` on :term:`free threaded ` builds. " +"(Contributed by Peter Bierma in :gh:`133140`.)" msgstr "" -#: whatsnew/3.14.rst:2796 -msgid ":c:func:`PyInitConfig_GetStr`" +#: whatsnew/3.14.rst:2988 +msgid "" +"Add :c:func:`PyUnstable_Object_IsUniqueReferencedTemporary` to determine if " +"an object is a unique temporary object on the interpreter's operand stack. " +"This can be used in some cases as a replacement for checking if :c:func:" +"`Py_REFCNT` is ``1`` for Python objects passed as arguments to C API " +"functions. (Contributed by Sam Gross in :gh:`133164`.)" msgstr "" -#: whatsnew/3.14.rst:2797 -msgid ":c:func:`PyInitConfig_GetStrList`" +#: whatsnew/3.14.rst:2998 +msgid "Limited C API changes" msgstr "" -#: whatsnew/3.14.rst:2798 -msgid ":c:func:`PyInitConfig_HasOption`" +#: whatsnew/3.14.rst:3000 +msgid "" +"In the limited C API version 3.14 and newer, :c:func:`Py_TYPE` and :c:func:" +"`Py_REFCNT` are now implemented as an opaque function call to hide " +"implementation details. (Contributed by Victor Stinner in :gh:`120600` and :" +"gh:`124127`.)" msgstr "" -#: whatsnew/3.14.rst:2799 -msgid ":c:func:`PyInitConfig_SetInt`" +#: whatsnew/3.14.rst:3005 +msgid "" +"Remove the :c:macro:`PySequence_Fast_GET_SIZE`, :c:macro:" +"`PySequence_Fast_GET_ITEM`, and :c:macro:`PySequence_Fast_ITEMS` macros from " +"the limited C API, since they have always been broken in the limited C API. " +"(Contributed by Victor Stinner in :gh:`91417`.)" msgstr "" -#: whatsnew/3.14.rst:2800 -msgid ":c:func:`PyInitConfig_SetStr`" +#: whatsnew/3.14.rst:3016 +msgid "Removed C APIs" msgstr "" -#: whatsnew/3.14.rst:2801 -msgid ":c:func:`PyInitConfig_SetStrList`" +#: whatsnew/3.14.rst:3018 +msgid "" +"Creating :c:data:`immutable types ` with mutable " +"bases was deprecated in Python 3.12, and now raises a :exc:`TypeError`. " +"(Contributed by Nikita Sobolev in :gh:`119775`.)" msgstr "" -#: whatsnew/3.14.rst:2805 +#: whatsnew/3.14.rst:3023 msgid "" -"Add a new import and export API for Python :class:`int` objects (:pep:`757`):" +"Remove ``PyDictObject.ma_version_tag`` member, which was deprecated in " +"Python 3.12. Use the :c:func:`PyDict_AddWatcher` API instead. (Contributed " +"by Sam Gross in :gh:`124296`.)" msgstr "" -#: whatsnew/3.14.rst:2807 -msgid ":c:func:`PyLong_GetNativeLayout`" +#: whatsnew/3.14.rst:3028 +msgid "" +"Remove the private ``_Py_InitializeMain()`` function. It was a :term:" +"`provisional API` added to Python 3.8 by :pep:`587`. (Contributed by Victor " +"Stinner in :gh:`129033`.)" msgstr "" -#: whatsnew/3.14.rst:2808 -msgid ":c:func:`PyLong_Export`" +#: whatsnew/3.14.rst:3032 +msgid "" +"Remove the undocumented APIs :c:macro:`!Py_C_RECURSION_LIMIT` and :c:member:" +"`!PyThreadState.c_recursion_remaining`. These were added in 3.13 and have " +"been removed without deprecation. Use :c:func:`Py_EnterRecursiveCall` to " +"guard against runaway recursion in C code. (Removed by Petr Viktorin in :gh:" +"`133079`, see also :gh:`130396`.)" msgstr "" -#: whatsnew/3.14.rst:2809 -msgid ":c:func:`PyLong_FreeExport`" +#: whatsnew/3.14.rst:3043 +msgid "Deprecated C APIs" msgstr "" -#: whatsnew/3.14.rst:2810 -msgid ":c:func:`PyLongWriter_Create`" +#: whatsnew/3.14.rst:3045 +msgid "" +"The :c:macro:`!Py_HUGE_VAL` macro is now :term:`soft deprecated`. Use :c:" +"macro:`!Py_INFINITY` instead. (Contributed by Sergey B Kirpichev in :gh:" +"`120026`.)" msgstr "" -#: whatsnew/3.14.rst:2811 -msgid ":c:func:`PyLongWriter_Finish`" +#: whatsnew/3.14.rst:3049 +msgid "" +"The :c:macro:`!Py_IS_NAN`, :c:macro:`!Py_IS_INFINITY`, and :c:macro:`!" +"Py_IS_FINITE` macros are now :term:`soft deprecated`. Use :c:macro:`!" +"isnan`, :c:macro:`!isinf` and :c:macro:`!isfinite` instead, available from :" +"file:`math.h` since C99. (Contributed by Sergey B Kirpichev in :gh:`119613`.)" msgstr "" -#: whatsnew/3.14.rst:2812 -msgid ":c:func:`PyLongWriter_Discard`" +#: whatsnew/3.14.rst:3055 +msgid "" +"Non-tuple sequences are now deprecated as argument for the ``(items)`` " +"format unit in :c:func:`PyArg_ParseTuple` and other :ref:`argument parsing " +"` functions if *items* contains format units which store a :ref:" +"`borrowed buffer ` or a :term:`borrowed reference`. " +"(Contributed by Serhiy Storchaka in :gh:`50333`.)" msgstr "" -#: whatsnew/3.14.rst:2814 -msgid "(Contributed by Sergey B Kirpichev and Victor Stinner in :gh:`102471`.)" +#: whatsnew/3.14.rst:3062 +msgid "" +"The ``_PyMonitoring_FireBranchEvent`` function is now deprecated and should " +"be replaced with calls to :c:func:`PyMonitoring_FireBranchLeftEvent` and :c:" +"func:`PyMonitoring_FireBranchRightEvent`." msgstr "" -#: whatsnew/3.14.rst:2816 +#: whatsnew/3.14.rst:3067 msgid "" -"Add :c:func:`PyType_GetBaseByToken` and :c:data:`Py_tp_token` slot for " -"easier superclass identification, which attempts to resolve the `type " -"checking issue `__ " -"mentioned in :pep:`630`. (Contributed in :gh:`124153`.)" +"The previously undocumented function :c:func:`PySequence_In` is now :term:" +"`soft deprecated`. Use :c:func:`PySequence_Contains` instead. (Contributed " +"by Yuki Kobayashi in :gh:`127896`.)" msgstr "" -#: whatsnew/3.14.rst:2821 +#: deprecations/c-api-pending-removal-in-3.15.rst:4 msgid "" -"Add :c:func:`PyUnicode_Equal` function to the limited C API: test if two " -"strings are equal. (Contributed by Victor Stinner in :gh:`124502`.)" +"The :c:func:`PyImport_ImportModuleNoBlock`: Use :c:func:" +"`PyImport_ImportModule` instead." msgstr "" -#: whatsnew/3.14.rst:2825 +#: deprecations/c-api-pending-removal-in-3.15.rst:6 msgid "" -"Add :c:func:`PyType_Freeze` function to make a type immutable. (Contributed " -"by Victor Stinner in :gh:`121654`.)" +":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: Use :c:" +"func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project `__ can be used to get :c:func:" +"`PyWeakref_GetRef` on Python 3.12 and older." msgstr "" -#: whatsnew/3.14.rst:2828 +#: deprecations/c-api-pending-removal-in-3.15.rst:10 msgid "" -"Add :c:func:`PyUnstable_Object_EnableDeferredRefcount` for enabling deferred " -"reference counting, as outlined in :pep:`703`." +":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: Use :c:" +"type:`wchar_t` instead." msgstr "" -#: whatsnew/3.14.rst:2831 +#: deprecations/c-api-pending-removal-in-3.15.rst:12 msgid "" -"Add :c:func:`PyMonitoring_FireBranchLeftEvent` and :c:func:" -"`PyMonitoring_FireBranchRightEvent` for generating :monitoring-event:" -"`BRANCH_LEFT` and :monitoring-event:`BRANCH_RIGHT` events, respectively." +":c:func:`!PyUnicode_AsDecodedObject`: Use :c:func:`PyCodec_Decode` instead." msgstr "" -#: whatsnew/3.14.rst:2836 +#: deprecations/c-api-pending-removal-in-3.15.rst:14 msgid "" -"Add :c:func:`Py_fopen` function to open a file. Similar to the :c:func:`!" -"fopen` function, but the *path* parameter is a Python object and an " -"exception is set on error. Add also :c:func:`Py_fclose` function to close a " -"file. (Contributed by Victor Stinner in :gh:`127350`.)" +":c:func:`!PyUnicode_AsDecodedUnicode`: Use :c:func:`PyCodec_Decode` instead; " +"Note that some codecs (for example, \"base64\") may return a type other " +"than :class:`str`, such as :class:`bytes`." msgstr "" -#: whatsnew/3.14.rst:2842 +#: deprecations/c-api-pending-removal-in-3.15.rst:17 msgid "" -"Add support of nullable arguments in :c:func:`PyArg_ParseTuple` and similar " -"functions. Adding ``?`` after any format unit makes ``None`` be accepted as " -"a value. (Contributed by Serhiy Storchaka in :gh:`112068`.)" +":c:func:`!PyUnicode_AsEncodedObject`: Use :c:func:`PyCodec_Encode` instead." msgstr "" -#: whatsnew/3.14.rst:2847 +#: deprecations/c-api-pending-removal-in-3.15.rst:19 msgid "" -"The ``k`` and ``K`` formats in :c:func:`PyArg_ParseTuple` and similar " -"functions now use :meth:`~object.__index__` if available, like all other " -"integer formats. (Contributed by Serhiy Storchaka in :gh:`112068`.)" +":c:func:`!PyUnicode_AsEncodedUnicode`: Use :c:func:`PyCodec_Encode` instead; " +"Note that some codecs (for example, \"base64\") may return a type other " +"than :class:`bytes`, such as :class:`str`." msgstr "" -#: whatsnew/3.14.rst:2852 -msgid "" -"Add macros :c:func:`Py_PACK_VERSION` and :c:func:`Py_PACK_FULL_VERSION` for " -"bit-packing Python version numbers. (Contributed by Petr Viktorin in :gh:" -"`128629`.)" +#: deprecations/c-api-pending-removal-in-3.15.rst:22 +msgid "Python initialization functions, deprecated in Python 3.13:" msgstr "" -#: whatsnew/3.14.rst:2856 +#: deprecations/c-api-pending-removal-in-3.15.rst:24 msgid "" -"Add :c:func:`PyUnstable_IsImmortal` for determining whether an object is :" -"term:`immortal`, for debugging purposes." +":c:func:`Py_GetPath`: Use :c:func:`PyConfig_Get(\"module_search_paths\") " +"` (:data:`sys.path`) instead." msgstr "" -#: whatsnew/3.14.rst:2859 +#: deprecations/c-api-pending-removal-in-3.15.rst:27 msgid "" -"Add :c:func:`PyImport_ImportModuleAttr` and :c:func:" -"`PyImport_ImportModuleAttrString` helper functions to import a module and " -"get an attribute of the module. (Contributed by Victor Stinner in :gh:" -"`128911`.)" +":c:func:`Py_GetPrefix`: Use :c:func:`PyConfig_Get(\"base_prefix\") " +"` (:data:`sys.base_prefix`) instead. Use :c:func:" +"`PyConfig_Get(\"prefix\") ` (:data:`sys.prefix`) if :ref:" +"`virtual environments ` need to be handled." msgstr "" -#: whatsnew/3.14.rst:2864 +#: deprecations/c-api-pending-removal-in-3.15.rst:32 msgid "" -"Add support for a new ``p`` format unit in :c:func:`Py_BuildValue` that " -"allows to take a C integer and produce a Python :class:`bool` object. " -"(Contributed by Pablo Galindo in :issue:`45325`.)" +":c:func:`Py_GetExecPrefix`: Use :c:func:`PyConfig_Get(\"base_exec_prefix\") " +"` (:data:`sys.base_exec_prefix`) instead. Use :c:func:" +"`PyConfig_Get(\"exec_prefix\") ` (:data:`sys.exec_prefix`) if :" +"ref:`virtual environments ` need to be handled." msgstr "" -#: whatsnew/3.14.rst:2868 +#: deprecations/c-api-pending-removal-in-3.15.rst:38 msgid "" -"Add :c:func:`PyUnstable_Object_IsUniqueReferencedTemporary` to determine if " -"an object is a unique temporary object on the interpreter's operand stack. " -"This can be used in some cases as a replacement for checking if :c:func:" -"`Py_REFCNT` is ``1`` for Python objects passed as arguments to C API " -"functions." +":c:func:`Py_GetProgramFullPath`: Use :c:func:`PyConfig_Get(\"executable\") " +"` (:data:`sys.executable`) instead." msgstr "" -#: whatsnew/3.14.rst:2873 +#: deprecations/c-api-pending-removal-in-3.15.rst:41 msgid "" -"Add :c:func:`PyUnstable_Object_IsUniquelyReferenced` as a replacement for " -"``Py_REFCNT(op) == 1`` on :term:`free threaded ` builds. " -"(Contributed by Peter Bierma in :gh:`133140`.)" +":c:func:`Py_GetProgramName`: Use :c:func:`PyConfig_Get(\"executable\") " +"` (:data:`sys.executable`) instead." msgstr "" -#: whatsnew/3.14.rst:2879 -msgid "Limited C API changes" +#: deprecations/c-api-pending-removal-in-3.15.rst:44 +msgid "" +":c:func:`Py_GetPythonHome`: Use :c:func:`PyConfig_Get(\"home\") " +"` or the :envvar:`PYTHONHOME` environment variable instead." msgstr "" -#: whatsnew/3.14.rst:2881 +#: deprecations/c-api-pending-removal-in-3.15.rst:48 msgid "" -"In the limited C API 3.14 and newer, :c:func:`Py_TYPE` and :c:func:" -"`Py_REFCNT` are now implemented as an opaque function call to hide " -"implementation details. (Contributed by Victor Stinner in :gh:`120600` and :" -"gh:`124127`.)" +"The `pythoncapi-compat project `__ can be used to get :c:func:`PyConfig_Get` on Python 3.13 and older." msgstr "" -#: whatsnew/3.14.rst:2886 +#: deprecations/c-api-pending-removal-in-3.15.rst:52 msgid "" -"Remove the :c:macro:`PySequence_Fast_GET_SIZE`, :c:macro:" -"`PySequence_Fast_GET_ITEM` and :c:macro:`PySequence_Fast_ITEMS` macros from " -"the limited C API, since these macros never worked in the limited C API. " -"Keep :c:func:`PySequence_Fast` in the limited C API. (Contributed by Victor " -"Stinner in :gh:`91417`.)" +"Functions to configure Python's initialization, deprecated in Python 3.11:" msgstr "" -#: whatsnew/3.14.rst:2896 -msgid "" -":c:func:`Py_Finalize` now deletes all interned strings. This is backwards " -"incompatible to any C-Extension that holds onto an interned string after a " -"call to :c:func:`Py_Finalize` and is then reused after a call to :c:func:" -"`Py_Initialize`. Any issues arising from this behavior will normally result " -"in crashes during the execution of the subsequent call to :c:func:" -"`Py_Initialize` from accessing uninitialized memory. To fix, use an address " -"sanitizer to identify any use-after-free coming from an interned string and " -"deallocate it during module shutdown. (Contributed by Eddie Elizondo in :gh:" -"`113601`.)" +#: deprecations/c-api-pending-removal-in-3.15.rst:54 +msgid ":c:func:`!PySys_SetArgvEx()`: Set :c:member:`PyConfig.argv` instead." msgstr "" -#: whatsnew/3.14.rst:2906 +#: deprecations/c-api-pending-removal-in-3.15.rst:56 +msgid ":c:func:`!PySys_SetArgv()`: Set :c:member:`PyConfig.argv` instead." +msgstr "" + +#: deprecations/c-api-pending-removal-in-3.15.rst:58 msgid "" -"The :ref:`Unicode Exception Objects ` C API now raises a :" -"exc:`TypeError` if its exception argument is not a :exc:`UnicodeError` " -"object. (Contributed by Bénédikt Tran in :gh:`127691`.)" +":c:func:`!Py_SetProgramName()`: Set :c:member:`PyConfig.program_name` " +"instead." msgstr "" -#: whatsnew/3.14.rst:2913 +#: deprecations/c-api-pending-removal-in-3.15.rst:60 +msgid ":c:func:`!Py_SetPythonHome()`: Set :c:member:`PyConfig.home` instead." +msgstr "" + +#: deprecations/c-api-pending-removal-in-3.15.rst:62 msgid "" -"The interpreter internally avoids some reference count modifications when " -"loading objects onto the operands stack by :term:`borrowing ` references when possible. This can lead to smaller reference " -"count values compared to previous Python versions. C API extensions that " -"checked :c:func:`Py_REFCNT` of ``1`` to determine if an function argument is " -"not referenced by any other code should instead use :c:func:" -"`PyUnstable_Object_IsUniqueReferencedTemporary` as a safer replacement." +":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" +"warnings.filters` instead." msgstr "" -#: whatsnew/3.14.rst:2922 -msgid "Private functions promoted to public C APIs:" +#: deprecations/c-api-pending-removal-in-3.15.rst:65 +msgid "" +"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" +"`PyConfig` instead." msgstr "" -#: whatsnew/3.14.rst:2924 -msgid "``_PyBytes_Join()``: :c:func:`PyBytes_Join`" +#: deprecations/c-api-pending-removal-in-3.15.rst:68 +msgid "Global configuration variables:" msgstr "" -#: whatsnew/3.14.rst:2925 -msgid "``_PyLong_IsNegative()``: :c:func:`PyLong_IsNegative`" +#: deprecations/c-api-pending-removal-in-3.15.rst:70 +msgid "" +":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` or :c:func:" +"`PyConfig_Get(\"parser_debug\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2926 -msgid "``_PyLong_IsPositive()``: :c:func:`PyLong_IsPositive`" +#: deprecations/c-api-pending-removal-in-3.15.rst:73 +msgid "" +":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` or :c:func:" +"`PyConfig_Get(\"verbose\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2927 -msgid "``_PyLong_IsZero()``: :c:func:`PyLong_IsZero`" +#: deprecations/c-api-pending-removal-in-3.15.rst:76 +msgid "" +":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` or :c:func:" +"`PyConfig_Get(\"quiet\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2928 -msgid "``_PyLong_Sign()``: :c:func:`PyLong_GetSign`" +#: deprecations/c-api-pending-removal-in-3.15.rst:79 +msgid "" +":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` or :c:func:" +"`PyConfig_Get(\"interactive\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2929 -msgid "``_PyUnicodeWriter_Dealloc()``: :c:func:`PyUnicodeWriter_Discard`" +#: deprecations/c-api-pending-removal-in-3.15.rst:82 +msgid "" +":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` or :c:func:" +"`PyConfig_Get(\"inspect\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2930 -msgid "``_PyUnicodeWriter_Finish()``: :c:func:`PyUnicodeWriter_Finish`" +#: deprecations/c-api-pending-removal-in-3.15.rst:85 +msgid "" +":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` or :c:" +"func:`PyConfig_Get(\"optimization_level\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2931 -msgid "``_PyUnicodeWriter_Init()``: use :c:func:`PyUnicodeWriter_Create`" +#: deprecations/c-api-pending-removal-in-3.15.rst:88 +msgid "" +":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` or :c:func:" +"`PyConfig_Get(\"site_import\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2932 -msgid "``_PyUnicodeWriter_Prepare()``: (no replacement)" +#: deprecations/c-api-pending-removal-in-3.15.rst:91 +msgid "" +":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` or :c:" +"func:`PyConfig_Get(\"bytes_warning\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2933 -msgid "``_PyUnicodeWriter_PrepareKind()``: (no replacement)" +#: deprecations/c-api-pending-removal-in-3.15.rst:94 +msgid "" +":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` or :c:" +"func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2934 -msgid "``_PyUnicodeWriter_WriteChar()``: :c:func:`PyUnicodeWriter_WriteChar`" +#: deprecations/c-api-pending-removal-in-3.15.rst:97 +msgid "" +":c:var:`Py_IgnoreEnvironmentFlag`: Use :c:member:`PyConfig.use_environment` " +"or :c:func:`PyConfig_Get(\"use_environment\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2935 -msgid "``_PyUnicodeWriter_WriteStr()``: :c:func:`PyUnicodeWriter_WriteStr`" +#: deprecations/c-api-pending-removal-in-3.15.rst:100 +msgid "" +":c:var:`Py_DontWriteBytecodeFlag`: Use :c:member:`PyConfig.write_bytecode` " +"or :c:func:`PyConfig_Get(\"write_bytecode\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2936 +#: deprecations/c-api-pending-removal-in-3.15.rst:103 msgid "" -"``_PyUnicodeWriter_WriteSubstring()``: :c:func:" -"`PyUnicodeWriter_WriteSubstring`" +":c:var:`Py_NoUserSiteDirectory`: Use :c:member:`PyConfig." +"user_site_directory` or :c:func:`PyConfig_Get(\"user_site_directory\") " +"` instead." msgstr "" -#: whatsnew/3.14.rst:2937 -msgid "``_PyUnicode_EQ()``: :c:func:`PyUnicode_Equal`" +#: deprecations/c-api-pending-removal-in-3.15.rst:106 +msgid "" +":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` or :" +"c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2938 -msgid "``_PyUnicode_Equal()``: :c:func:`PyUnicode_Equal`" +#: deprecations/c-api-pending-removal-in-3.15.rst:109 +msgid "" +":c:var:`Py_HashRandomizationFlag`: Use :c:member:`PyConfig.use_hash_seed` " +"and :c:member:`PyConfig.hash_seed` or :c:func:`PyConfig_Get(\"hash_seed\") " +"` instead." msgstr "" -#: whatsnew/3.14.rst:2939 +#: deprecations/c-api-pending-removal-in-3.15.rst:113 msgid "" -"``_Py_GetConfig()``: :c:func:`PyConfig_Get` and :c:func:`PyConfig_GetInt`" +":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` or :c:func:" +"`PyConfig_Get(\"isolated\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2940 -msgid "``_Py_HashBytes()``: :c:func:`Py_HashBuffer`" +#: deprecations/c-api-pending-removal-in-3.15.rst:116 +msgid "" +":c:var:`Py_LegacyWindowsFSEncodingFlag`: Use :c:member:`PyPreConfig." +"legacy_windows_fs_encoding` or :c:func:" +"`PyConfig_Get(\"legacy_windows_fs_encoding\") ` instead." msgstr "" -#: whatsnew/3.14.rst:2941 -msgid "``_Py_fopen_obj()``: :c:func:`Py_fopen`" +#: deprecations/c-api-pending-removal-in-3.15.rst:119 +msgid "" +":c:var:`Py_LegacyWindowsStdioFlag`: Use :c:member:`PyConfig." +"legacy_windows_stdio` or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") " +"` instead." msgstr "" -#: whatsnew/3.14.rst:2943 +#: deprecations/c-api-pending-removal-in-3.15.rst:122 msgid "" -"The `pythoncapi-compat project`_ can be used to get most of these new " -"functions on Python 3.13 and older." +":c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!" +"Py_HasFileSystemDefaultEncoding`: Use :c:member:`PyConfig." +"filesystem_encoding` or :c:func:`PyConfig_Get(\"filesystem_encoding\") " +"` instead." msgstr "" -#: whatsnew/3.14.rst:2954 +#: deprecations/c-api-pending-removal-in-3.15.rst:125 msgid "" -"The :c:macro:`!Py_HUGE_VAL` macro is :term:`soft deprecated`, use :c:macro:`!" -"Py_INFINITY` instead. (Contributed by Sergey B Kirpichev in :gh:`120026`.)" +":c:var:`!Py_FileSystemDefaultEncodeErrors`: Use :c:member:`PyConfig." +"filesystem_errors` or :c:func:`PyConfig_Get(\"filesystem_errors\") " +"` instead." msgstr "" -#: whatsnew/3.14.rst:2958 +#: deprecations/c-api-pending-removal-in-3.15.rst:128 msgid "" -"Macros :c:macro:`!Py_IS_NAN`, :c:macro:`!Py_IS_INFINITY` and :c:macro:`!" -"Py_IS_FINITE` are :term:`soft deprecated`, use instead :c:macro:`!isnan`, :c:" -"macro:`!isinf` and :c:macro:`!isfinite` available from :file:`math.h` since " -"C99. (Contributed by Sergey B Kirpichev in :gh:`119613`.)" +":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` or :c:func:" +"`PyConfig_Get(\"utf8_mode\") ` instead. (see :c:func:" +"`Py_PreInitialize`)" msgstr "" -#: whatsnew/3.14.rst:2964 +#: deprecations/c-api-pending-removal-in-3.15.rst:133 msgid "" -"Non-tuple sequences are deprecated as argument for the ``(items)`` format " -"unit in :c:func:`PyArg_ParseTuple` and other :ref:`argument parsing ` functions if *items* contains format units which store a :ref:" -"`borrowed buffer ` or a :term:`borrowed reference`. " -"(Contributed by Serhiy Storchaka in :gh:`50333`.)" +"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" +"`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can be used to " +"get these options at runtime." msgstr "" -#: whatsnew/3.14.rst:2971 -msgid "" -"The previously undocumented function :c:func:`PySequence_In` is :term:`soft " -"deprecated`. Use :c:func:`PySequence_Contains` instead. (Contributed by Yuki " -"Kobayashi in :gh:`127896`.)" +#: deprecations/c-api-pending-removal-in-3.16.rst:4 +msgid "The bundled copy of ``libmpdec``." msgstr "" -#: whatsnew/3.14.rst:2977 -msgid "" -"The ``PyMonitoring_FireBranchEvent`` function is deprecated and should be " -"replaced with calls to :c:func:`PyMonitoring_FireBranchLeftEvent` and :c:" -"func:`PyMonitoring_FireBranchRightEvent`." +#: deprecations/c-api-pending-removal-in-3.18.rst:2 +msgid "Pending removal in Python 3.18" msgstr "" -#: whatsnew/3.14.rst:2981 +#: deprecations/c-api-pending-removal-in-3.18.rst:4 msgid "" "The following private functions are deprecated and planned for removal in " "Python 3.18:" msgstr "" -#: whatsnew/3.14.rst:2984 deprecations/c-api-pending-removal-in-3.18.rst:6 +#: deprecations/c-api-pending-removal-in-3.18.rst:7 msgid ":c:func:`!_PyBytes_Join`: use :c:func:`PyBytes_Join`." msgstr "" -#: whatsnew/3.14.rst:2985 deprecations/c-api-pending-removal-in-3.18.rst:7 +#: deprecations/c-api-pending-removal-in-3.18.rst:8 msgid "" ":c:func:`!_PyDict_GetItemStringWithError`: use :c:func:" "`PyDict_GetItemStringRef`." msgstr "" -#: whatsnew/3.14.rst:2986 +#: deprecations/c-api-pending-removal-in-3.18.rst:9 msgid ":c:func:`!_PyDict_Pop()`: use :c:func:`PyDict_Pop`." msgstr "" -#: whatsnew/3.14.rst:2987 deprecations/c-api-pending-removal-in-3.18.rst:9 +#: deprecations/c-api-pending-removal-in-3.18.rst:10 msgid ":c:func:`!_PyLong_Sign()`: use :c:func:`PyLong_GetSign`." msgstr "" -#: whatsnew/3.14.rst:2988 deprecations/c-api-pending-removal-in-3.18.rst:10 +#: deprecations/c-api-pending-removal-in-3.18.rst:11 msgid "" ":c:func:`!_PyLong_FromDigits` and :c:func:`!_PyLong_New`: use :c:func:" "`PyLongWriter_Create`." msgstr "" -#: whatsnew/3.14.rst:2990 deprecations/c-api-pending-removal-in-3.18.rst:12 +#: deprecations/c-api-pending-removal-in-3.18.rst:13 msgid "" ":c:func:`!_PyThreadState_UncheckedGet`: use :c:func:" "`PyThreadState_GetUnchecked`." msgstr "" -#: whatsnew/3.14.rst:2991 deprecations/c-api-pending-removal-in-3.18.rst:13 +#: deprecations/c-api-pending-removal-in-3.18.rst:14 msgid ":c:func:`!_PyUnicode_AsString`: use :c:func:`PyUnicode_AsUTF8`." msgstr "" -#: whatsnew/3.14.rst:2992 deprecations/c-api-pending-removal-in-3.18.rst:14 +#: deprecations/c-api-pending-removal-in-3.18.rst:15 msgid "" ":c:func:`!_PyUnicodeWriter_Init`: replace ``_PyUnicodeWriter_Init(&writer)`` " "with :c:func:`writer = PyUnicodeWriter_Create(0) `." msgstr "" -#: whatsnew/3.14.rst:2995 deprecations/c-api-pending-removal-in-3.18.rst:17 +#: deprecations/c-api-pending-removal-in-3.18.rst:18 msgid "" ":c:func:`!_PyUnicodeWriter_Finish`: replace " "``_PyUnicodeWriter_Finish(&writer)`` with :c:func:" "`PyUnicodeWriter_Finish(writer) `." msgstr "" -#: whatsnew/3.14.rst:2998 deprecations/c-api-pending-removal-in-3.18.rst:20 +#: deprecations/c-api-pending-removal-in-3.18.rst:21 msgid "" ":c:func:`!_PyUnicodeWriter_Dealloc`: replace " "``_PyUnicodeWriter_Dealloc(&writer)`` with :c:func:" "`PyUnicodeWriter_Discard(writer) `." msgstr "" -#: whatsnew/3.14.rst:3001 deprecations/c-api-pending-removal-in-3.18.rst:23 +#: deprecations/c-api-pending-removal-in-3.18.rst:24 msgid "" ":c:func:`!_PyUnicodeWriter_WriteChar`: replace " "``_PyUnicodeWriter_WriteChar(&writer, ch)`` with :c:func:" "`PyUnicodeWriter_WriteChar(writer, ch) `." msgstr "" -#: whatsnew/3.14.rst:3004 deprecations/c-api-pending-removal-in-3.18.rst:26 +#: deprecations/c-api-pending-removal-in-3.18.rst:27 msgid "" ":c:func:`!_PyUnicodeWriter_WriteStr`: replace " "``_PyUnicodeWriter_WriteStr(&writer, str)`` with :c:func:" "`PyUnicodeWriter_WriteStr(writer, str) `." msgstr "" -#: whatsnew/3.14.rst:3007 deprecations/c-api-pending-removal-in-3.18.rst:29 +#: deprecations/c-api-pending-removal-in-3.18.rst:30 msgid "" ":c:func:`!_PyUnicodeWriter_WriteSubstring`: replace " "``_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)`` with :c:func:" @@ -5387,459 +5650,689 @@ msgid "" "`." msgstr "" -#: whatsnew/3.14.rst:3010 +#: deprecations/c-api-pending-removal-in-3.18.rst:33 msgid "" ":c:func:`!_PyUnicodeWriter_WriteASCIIString`: replace " "``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` with :c:func:" "`PyUnicodeWriter_WriteASCII(writer, str) `." msgstr "" -#: whatsnew/3.14.rst:3013 deprecations/c-api-pending-removal-in-3.18.rst:35 +#: deprecations/c-api-pending-removal-in-3.18.rst:36 msgid "" ":c:func:`!_PyUnicodeWriter_WriteLatin1String`: replace " "``_PyUnicodeWriter_WriteLatin1String(&writer, str)`` with :c:func:" "`PyUnicodeWriter_WriteUTF8(writer, str) `." msgstr "" -#: whatsnew/3.14.rst:3016 deprecations/c-api-pending-removal-in-3.18.rst:40 +#: deprecations/c-api-pending-removal-in-3.18.rst:39 +msgid ":c:func:`!_PyUnicodeWriter_Prepare`: (no replacement)." +msgstr "" + +#: deprecations/c-api-pending-removal-in-3.18.rst:40 +msgid ":c:func:`!_PyUnicodeWriter_PrepareKind`: (no replacement)." +msgstr "" + +#: deprecations/c-api-pending-removal-in-3.18.rst:41 msgid ":c:func:`!_Py_HashPointer`: use :c:func:`Py_HashPointer`." msgstr "" -#: whatsnew/3.14.rst:3017 deprecations/c-api-pending-removal-in-3.18.rst:41 +#: deprecations/c-api-pending-removal-in-3.18.rst:42 msgid ":c:func:`!_Py_fopen_obj`: use :c:func:`Py_fopen`." msgstr "" -#: whatsnew/3.14.rst:3019 +#: deprecations/c-api-pending-removal-in-3.18.rst:44 msgid "" -"The `pythoncapi-compat project`_ can be used to get these new public " -"functions on Python 3.13 and older. (Contributed by Victor Stinner in :gh:" -"`128863`.)" +"The `pythoncapi-compat project `__ can be used to get these new public functions on Python 3.13 and older. " +"(Contributed by Victor Stinner in :gh:`128863`.)" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:4 -msgid "The bundled copy of ``libmpdecimal``." +#: deprecations/c-api-pending-removal-in-future.rst:4 +msgid "" +"The following APIs are deprecated and will be removed, although there is " +"currently no date scheduled for their removal." +msgstr "" + +#: deprecations/c-api-pending-removal-in-future.rst:7 +msgid ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: Unneeded since Python 3.8." +msgstr "" + +#: deprecations/c-api-pending-removal-in-future.rst:9 +msgid ":c:func:`PyErr_Fetch`: Use :c:func:`PyErr_GetRaisedException` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:5 +#: deprecations/c-api-pending-removal-in-future.rst:11 msgid "" -"The :c:func:`PyImport_ImportModuleNoBlock`: Use :c:func:" -"`PyImport_ImportModule` instead." +":c:func:`PyErr_NormalizeException`: Use :c:func:`PyErr_GetRaisedException` " +"instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:7 +#: deprecations/c-api-pending-removal-in-future.rst:13 msgid "" -":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: Use :c:" -"func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project `__ can be used to get :c:func:" -"`PyWeakref_GetRef` on Python 3.12 and older." +":c:func:`PyErr_Restore`: Use :c:func:`PyErr_SetRaisedException` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:11 +#: deprecations/c-api-pending-removal-in-future.rst:15 msgid "" -":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: Use :c:" -"type:`wchar_t` instead." +":c:func:`PyModule_GetFilename`: Use :c:func:`PyModule_GetFilenameObject` " +"instead." +msgstr "" + +#: deprecations/c-api-pending-removal-in-future.rst:17 +msgid ":c:func:`PyOS_AfterFork`: Use :c:func:`PyOS_AfterFork_Child` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:13 +#: deprecations/c-api-pending-removal-in-future.rst:19 msgid "" -":c:func:`!PyUnicode_AsDecodedObject`: Use :c:func:`PyCodec_Decode` instead." +":c:func:`PySlice_GetIndicesEx`: Use :c:func:`PySlice_Unpack` and :c:func:" +"`PySlice_AdjustIndices` instead." +msgstr "" + +#: deprecations/c-api-pending-removal-in-future.rst:21 +msgid ":c:func:`PyUnicode_READY`: Unneeded since Python 3.12" +msgstr "" + +#: deprecations/c-api-pending-removal-in-future.rst:23 +msgid ":c:func:`!PyErr_Display`: Use :c:func:`PyErr_DisplayException` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:15 +#: deprecations/c-api-pending-removal-in-future.rst:25 msgid "" -":c:func:`!PyUnicode_AsDecodedUnicode`: Use :c:func:`PyCodec_Decode` instead; " -"Note that some codecs (for example, \"base64\") may return a type other " -"than :class:`str`, such as :class:`bytes`." +":c:func:`!_PyErr_ChainExceptions`: Use :c:func:`!_PyErr_ChainExceptions1` " +"instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:18 +#: deprecations/c-api-pending-removal-in-future.rst:27 msgid "" -":c:func:`!PyUnicode_AsEncodedObject`: Use :c:func:`PyCodec_Encode` instead." +":c:member:`!PyBytesObject.ob_shash` member: call :c:func:`PyObject_Hash` " +"instead." +msgstr "" + +#: deprecations/c-api-pending-removal-in-future.rst:29 +msgid "Thread Local Storage (TLS) API:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:20 +#: deprecations/c-api-pending-removal-in-future.rst:31 msgid "" -":c:func:`!PyUnicode_AsEncodedUnicode`: Use :c:func:`PyCodec_Encode` instead; " -"Note that some codecs (for example, \"base64\") may return a type other " -"than :class:`bytes`, such as :class:`str`." +":c:func:`PyThread_create_key`: Use :c:func:`PyThread_tss_alloc` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:23 -msgid "Python initialization functions, deprecated in Python 3.13:" +#: deprecations/c-api-pending-removal-in-future.rst:33 +msgid ":c:func:`PyThread_delete_key`: Use :c:func:`PyThread_tss_free` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:25 +#: deprecations/c-api-pending-removal-in-future.rst:35 msgid "" -":c:func:`Py_GetPath`: Use :c:func:`PyConfig_Get(\"module_search_paths\") " -"` (:data:`sys.path`) instead." +":c:func:`PyThread_set_key_value`: Use :c:func:`PyThread_tss_set` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:28 +#: deprecations/c-api-pending-removal-in-future.rst:37 msgid "" -":c:func:`Py_GetPrefix`: Use :c:func:`PyConfig_Get(\"base_prefix\") " -"` (:data:`sys.base_prefix`) instead. Use :c:func:" -"`PyConfig_Get(\"prefix\") ` (:data:`sys.prefix`) if :ref:" -"`virtual environments ` need to be handled." +":c:func:`PyThread_get_key_value`: Use :c:func:`PyThread_tss_get` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:33 +#: deprecations/c-api-pending-removal-in-future.rst:39 msgid "" -":c:func:`Py_GetExecPrefix`: Use :c:func:`PyConfig_Get(\"base_exec_prefix\") " -"` (:data:`sys.base_exec_prefix`) instead. Use :c:func:" -"`PyConfig_Get(\"exec_prefix\") ` (:data:`sys.exec_prefix`) if :" -"ref:`virtual environments ` need to be handled." +":c:func:`PyThread_delete_key_value`: Use :c:func:`PyThread_tss_delete` " +"instead." +msgstr "" + +#: deprecations/c-api-pending-removal-in-future.rst:41 +msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." +msgstr "" + +#: whatsnew/3.14.rst:3086 +msgid "Build changes" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:39 +#: whatsnew/3.14.rst:3088 msgid "" -":c:func:`Py_GetProgramFullPath`: Use :c:func:`PyConfig_Get(\"executable\") " -"` (:data:`sys.executable`) instead." +":pep:`776`: Emscripten is now an officially supported platform at :pep:`tier " +"3 <11#tier-3>`. As a part of this effort, more than 25 bugs in `Emscripten " +"libc`__ were fixed. Emscripten now includes support for :mod:`ctypes`, :mod:" +"`termios`, and :mod:`fcntl`, as well as experimental support for the new :" +"ref:`default interactive shell `. (Contributed by R. Hood " +"Chatham in :gh:`127146`, :gh:`127683`, and :gh:`136931`.)" +msgstr "" + +#: whatsnew/3.14.rst:3098 +msgid "Official Android binary releases are now provided on python.org__." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:42 +#: whatsnew/3.14.rst:3102 msgid "" -":c:func:`Py_GetProgramName`: Use :c:func:`PyConfig_Get(\"executable\") " -"` (:data:`sys.executable`) instead." +"GNU Autoconf 2.72 is now required to generate :file:`configure`. " +"(Contributed by Erlend Aasland in :gh:`115765`.)" +msgstr "" + +#: whatsnew/3.14.rst:3105 +msgid "" +"``wasm32-unknown-emscripten`` is now a :pep:`11` tier 3 platform. " +"(Contributed by R. Hood Chatham in :gh:`127146`, :gh:`127683`, and :gh:" +"`136931`.)" +msgstr "" + +#: whatsnew/3.14.rst:3108 +msgid "" +"``#pragma``-based linking with ``python3*.lib`` can now be switched off " +"with :c:expr:`Py_NO_LINK_LIB`. (Contributed by Jean-Christophe Fillion-Robin " +"in :gh:`82909`.)" +msgstr "" + +#: whatsnew/3.14.rst:3112 +msgid "" +"CPython now enables a set of recommended compiler options by default for " +"improved security. Use the :option:`--disable-safety` :file:`configure` " +"option to disable them, or the :option:`--enable-slower-safety` option for a " +"larger set of compiler options, albeit with a performance cost." +msgstr "" + +#: whatsnew/3.14.rst:3118 +msgid "" +"The ``WITH_FREELISTS`` macro and ``--without-freelists`` :file:`configure` " +"option have been removed." +msgstr "" + +#: whatsnew/3.14.rst:3121 +msgid "" +"The new :file:`configure` option :option:`--with-tail-call-interp` may be " +"used to enable the experimental tail call interpreter. See :ref:`whatsnew314-" +"tail-call-interpreter` for further details." +msgstr "" + +#: whatsnew/3.14.rst:3125 +msgid "" +"To disable the new remote debugging support, use the :option:`--without-" +"remote-debug` :file:`configure` option. This may be useful for security " +"reasons." +msgstr "" + +#: whatsnew/3.14.rst:3129 +msgid "" +"iOS and macOS apps can now be configured to redirect ``stdout`` and " +"``stderr`` content to the system log. (Contributed by Russell Keith-Magee " +"in :gh:`127592`.)" +msgstr "" + +#: whatsnew/3.14.rst:3133 +msgid "" +"The iOS testbed is now able to stream test output while the test is running. " +"The testbed can also be used to run the test suite of projects other than " +"CPython itself. (Contributed by Russell Keith-Magee in :gh:`127592`.)" +msgstr "" + +#: whatsnew/3.14.rst:3142 +msgid ":file:`build-details.json`" +msgstr "" + +#: whatsnew/3.14.rst:3144 +msgid "" +"Installations of Python now contain a new file, :file:`build-details.json`. " +"This is a static JSON document containing build details for CPython, to " +"allow for introspection without needing to run code. This is helpful for use-" +"cases such as Python launchers, cross-compilation, and so on." +msgstr "" + +#: whatsnew/3.14.rst:3150 +msgid "" +":file:`build-details.json` must be installed in the platform-independent " +"standard library directory. This corresponds to the :ref:`'stdlib' " +"` :mod:`sysconfig` installation path, which can be found " +"by running ``sysconfig.get_path('stdlib')``." +msgstr "" + +#: whatsnew/3.14.rst:3156 +msgid "" +":pep:`739` -- ``build-details.json`` 1.0 -- a static description file for " +"Python build details" +msgstr "" + +#: whatsnew/3.14.rst:3163 +msgid "Discontinuation of PGP signatures" +msgstr "" + +#: whatsnew/3.14.rst:3165 +msgid "" +"PGP (Pretty Good Privacy) signatures will not be provided for releases of " +"Python 3.14 or future versions. To verify CPython artifacts, users must use " +"`Sigstore verification materials `__. Releases have been signed using Sigstore_ since Python 3.11." +msgstr "" + +#: whatsnew/3.14.rst:3171 +msgid "This change in release process was specified in :pep:`761`." +msgstr "" + +#: whatsnew/3.14.rst:3179 +msgid "Free-threaded Python is officially supported" +msgstr "" + +#: whatsnew/3.14.rst:3181 +msgid "" +"The free-threaded build of Python is now supported and no longer " +"experimental. This is the start of `phase II `__ where free-threaded Python is officially supported but still " +"optional." +msgstr "" + +#: whatsnew/3.14.rst:3185 +msgid "" +"The free-threading team are confident that the project is on the right path, " +"and appreciate the continued dedication from everyone working to make free-" +"threading ready for broader adoption across the Python community." +msgstr "" + +#: whatsnew/3.14.rst:3189 +msgid "" +"With these recommendations and the acceptance of this PEP, the Python " +"developer community should broadly advertise that free-threading is a " +"supported Python build option now and into the future, and that it will not " +"be removed without a proper deprecation schedule." +msgstr "" + +#: whatsnew/3.14.rst:3194 +msgid "" +"Any decision to transition to `phase III `__, with free-threading as the default or sole build of Python is " +"still undecided, and dependent on many factors both within CPython itself " +"and the community. This decision is for the future." +msgstr "" + +#: whatsnew/3.14.rst:3201 +msgid ":pep:`779`" +msgstr "" + +#: whatsnew/3.14.rst:3203 +msgid "`PEP 779's acceptance `__" +msgstr "" + +#: whatsnew/3.14.rst:3209 +msgid "Binary releases for the experimental just-in-time compiler" +msgstr "" + +#: whatsnew/3.14.rst:3211 +msgid "" +"The official macOS and Windows release binaries now include an " +"*experimental* just-in-time (JIT) compiler. Although it is **not** " +"recommended for production use, it can be tested by setting :envvar:" +"`PYTHON_JIT=1 ` as an environment variable. Downstream source " +"builds and redistributors can use the :option:`--enable-experimental-jit=yes-" +"off` configuration option for similar behavior." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:45 +#: whatsnew/3.14.rst:3218 msgid "" -":c:func:`Py_GetPythonHome`: Use :c:func:`PyConfig_Get(\"home\") " -"` or the :envvar:`PYTHONHOME` environment variable instead." +"The JIT is at an early stage and still in active development. As such, the " +"typical performance impact of enabling it can range from 10% slower to 20% " +"faster, depending on workload. To aid in testing and evaluation, a set of " +"introspection functions has been provided in the :data:`sys._jit` " +"namespace. :func:`sys._jit.is_available` can be used to determine if the " +"current executable supports JIT compilation, while :func:`sys._jit." +"is_enabled` can be used to tell if JIT compilation has been enabled for the " +"current process." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:49 +#: whatsnew/3.14.rst:3226 msgid "" -"The `pythoncapi-compat project `__ can be used to get :c:func:`PyConfig_Get` on Python 3.13 and older." +"Currently, the most significant missing functionality is that native " +"debuggers and profilers like ``gdb`` and ``perf`` are unable to unwind " +"through JIT frames (Python debuggers and profilers, like :mod:`pdb` or :mod:" +"`profile`, continue to work without modification). Free-threaded builds do " +"not support JIT compilation." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:53 +#: whatsnew/3.14.rst:3231 msgid "" -"Functions to configure Python's initialization, deprecated in Python 3.11:" +"Please report any bugs or major performance regressions that you encounter!" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:55 -msgid ":c:func:`!PySys_SetArgvEx()`: Set :c:member:`PyConfig.argv` instead." +#: whatsnew/3.14.rst:3233 +msgid ":pep:`744`" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:57 -msgid ":c:func:`!PySys_SetArgv()`: Set :c:member:`PyConfig.argv` instead." +#: whatsnew/3.14.rst:3237 +msgid "Porting to Python 3.14" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:59 +#: whatsnew/3.14.rst:3239 msgid "" -":c:func:`!Py_SetProgramName()`: Set :c:member:`PyConfig.program_name` " -"instead." +"This section lists previously described changes and other bugfixes that may " +"require changes to your code." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:61 -msgid ":c:func:`!Py_SetPythonHome()`: Set :c:member:`PyConfig.home` instead." +#: whatsnew/3.14.rst:3244 +msgid "Changes in the Python API" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:63 +#: whatsnew/3.14.rst:3246 msgid "" -":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" -"warnings.filters` instead." +"On Unix platforms other than macOS, *forkserver* is now the default :ref:" +"`start method ` for :mod:`multiprocessing` " +"and :class:`~concurrent.futures.ProcessPoolExecutor`, instead of *fork*." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:66 +#: whatsnew/3.14.rst:3250 msgid "" -"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" -"`PyConfig` instead." +"See :ref:`(1) ` and :ref:`(2) " +"` for details." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:69 -msgid "Global configuration variables:" +#: whatsnew/3.14.rst:3253 +msgid "" +"If you encounter :exc:`NameError`\\s or pickling errors coming out of :mod:" +"`multiprocessing` or :mod:`concurrent.futures`, see the :ref:`forkserver " +"restrictions `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:71 +#: whatsnew/3.14.rst:3257 msgid "" -":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` or :c:func:" -"`PyConfig_Get(\"parser_debug\") ` instead." +"This change does not affect Windows or macOS, where :ref:`'spawn' " +"` remains the default start method." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:74 +#: whatsnew/3.14.rst:3260 msgid "" -":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` or :c:func:" -"`PyConfig_Get(\"verbose\") ` instead." +":class:`functools.partial` is now a method descriptor. Wrap it in :func:" +"`staticmethod` if you want to preserve the old behavior. (Contributed by " +"Serhiy Storchaka and Dominykas Grigonis in :gh:`121027`.)" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:77 +#: whatsnew/3.14.rst:3264 msgid "" -":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` or :c:func:" -"`PyConfig_Get(\"quiet\") ` instead." +"The :ref:`garbage collector is now incremental `, which means that the behavior of :func:`gc.collect` changes slightly:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:80 +#: whatsnew/3.14.rst:3271 msgid "" -":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` or :c:func:" -"`PyConfig_Get(\"interactive\") ` instead." +"The :func:`locale.nl_langinfo` function now temporarily sets the " +"``LC_CTYPE`` locale in some cases. This temporary change affects other " +"threads. (Contributed by Serhiy Storchaka in :gh:`69998`.)" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:83 +#: whatsnew/3.14.rst:3276 msgid "" -":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` or :c:func:" -"`PyConfig_Get(\"inspect\") ` instead." +":class:`types.UnionType` is now an alias for :class:`typing.Union`, causing " +"changes in some behaviors. See :ref:`above ` for " +"more details. (Contributed by Jelle Zijlstra in :gh:`105499`.)" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:86 +#: whatsnew/3.14.rst:3281 msgid "" -":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` or :c:" -"func:`PyConfig_Get(\"optimization_level\") ` instead." +"The runtime behavior of annotations has changed in various ways; see :ref:" +"`above ` for details. While most code that " +"interacts with annotations should continue to work, some undocumented " +"details may behave differently." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:89 +#: whatsnew/3.14.rst:3286 msgid "" -":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` or :c:func:" -"`PyConfig_Get(\"site_import\") ` instead." +"As part of making the :mod:`mimetypes` CLI public, it now exits with ``1`` " +"on failure instead of ``0`` and ``2`` on incorrect command-line parameters " +"instead of ``1``. Error messages are now printed to stderr." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:92 +#: whatsnew/3.14.rst:3291 msgid "" -":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` or :c:" -"func:`PyConfig_Get(\"bytes_warning\") ` instead." +"The ``\\B`` pattern in regular expression now matches the empty string when " +"given as the entire pattern, which may cause behavioural changes." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:95 +#: whatsnew/3.14.rst:3294 msgid "" -":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` or :c:" -"func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." +"On FreeBSD, :data:`sys.platform` no longer contains the major version number." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:98 -msgid "" -":c:var:`Py_IgnoreEnvironmentFlag`: Use :c:member:`PyConfig.use_environment` " -"or :c:func:`PyConfig_Get(\"use_environment\") ` instead." +#: whatsnew/3.14.rst:3300 +msgid "Changes in annotations (:pep:`649` and :pep:`749`)" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:101 +#: whatsnew/3.14.rst:3302 msgid "" -":c:var:`Py_DontWriteBytecodeFlag`: Use :c:member:`PyConfig.write_bytecode` " -"or :c:func:`PyConfig_Get(\"write_bytecode\") ` instead." +"This section contains guidance on changes that may be needed to annotations " +"or Python code that interacts with or introspects annotations, due to the " +"changes related to :ref:`deferred evaluation of annotations `." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:104 +#: whatsnew/3.14.rst:3307 msgid "" -":c:var:`Py_NoUserSiteDirectory`: Use :c:member:`PyConfig." -"user_site_directory` or :c:func:`PyConfig_Get(\"user_site_directory\") " -"` instead." +"In the majority of cases, working code from older versions of Python will " +"not require any changes." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:107 -msgid "" -":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` or :" -"c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." +#: whatsnew/3.14.rst:3312 +msgid "Implications for annotated code" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:110 +#: whatsnew/3.14.rst:3314 msgid "" -":c:var:`Py_HashRandomizationFlag`: Use :c:member:`PyConfig.use_hash_seed` " -"and :c:member:`PyConfig.hash_seed` or :c:func:`PyConfig_Get(\"hash_seed\") " -"` instead." +"If you define annotations in your code (for example, for use with a static " +"type checker), then this change probably does not affect you: you can keep " +"writing annotations the same way you did with previous versions of Python." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:114 +#: whatsnew/3.14.rst:3318 msgid "" -":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` or :c:func:" -"`PyConfig_Get(\"isolated\") ` instead." +"You will likely be able to remove quoted strings in annotations, which are " +"frequently used for forward references. Similarly, if you use ``from " +"__future__ import annotations`` to avoid having to write strings in " +"annotations, you may well be able to remove that import once you support " +"only Python 3.14 and newer. However, if you rely on third-party libraries " +"that read annotations, those libraries may need changes to support unquoted " +"annotations before they work as expected." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:117 -msgid "" -":c:var:`Py_LegacyWindowsFSEncodingFlag`: Use :c:member:`PyPreConfig." -"legacy_windows_fs_encoding` or :c:func:" -"`PyConfig_Get(\"legacy_windows_fs_encoding\") ` instead." +#: whatsnew/3.14.rst:3328 +msgid "Implications for readers of ``__annotations__``" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:120 +#: whatsnew/3.14.rst:3330 msgid "" -":c:var:`Py_LegacyWindowsStdioFlag`: Use :c:member:`PyConfig." -"legacy_windows_stdio` or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") " -"` instead." +"If your code reads the :attr:`~object.__annotations__` attribute on objects, " +"you may want to make changes in order to support code that relies on " +"deferred evaluation of annotations. For example, you may want to use :func:" +"`annotationlib.get_annotations` with the :attr:`~annotationlib.Format." +"FORWARDREF` format, as the :mod:`dataclasses` module now does." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:123 +#: whatsnew/3.14.rst:3337 msgid "" -":c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!" -"Py_HasFileSystemDefaultEncoding`: Use :c:member:`PyConfig." -"filesystem_encoding` or :c:func:`PyConfig_Get(\"filesystem_encoding\") " -"` instead." +"The external :pypi:`typing_extensions` package provides partial backports of " +"some of the functionality of the :mod:`annotationlib` module, such as the :" +"class:`~annotationlib.Format` enum and the :func:`~annotationlib." +"get_annotations` function. These can be used to write cross-version code " +"that takes advantage of the new behavior in Python 3.14." +msgstr "" + +#: whatsnew/3.14.rst:3346 +msgid "Related changes" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:126 +#: whatsnew/3.14.rst:3348 msgid "" -":c:var:`!Py_FileSystemDefaultEncodeErrors`: Use :c:member:`PyConfig." -"filesystem_errors` or :c:func:`PyConfig_Get(\"filesystem_errors\") " -"` instead." +"The changes in Python 3.14 are designed to rework how :attr:`!" +"__annotations__` works at runtime while minimizing breakage to code that " +"contains annotations in source code and to code that reads :attr:`!" +"__annotations__`. However, if you rely on undocumented details of the " +"annotation behavior or on private functions in the standard library, there " +"are many ways in which your code may not work in Python 3.14. To safeguard " +"your code against future changes, only use the documented functionality of " +"the :mod:`annotationlib` module." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:129 +#: whatsnew/3.14.rst:3357 msgid "" -":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` or :c:func:" -"`PyConfig_Get(\"utf8_mode\") ` instead. (see :c:func:" -"`Py_PreInitialize`)" +"In particular, do not read annotations directly from the namespace " +"dictionary attribute of type objects. Use :func:`annotationlib." +"get_annotate_from_class_namespace` during class construction and :func:" +"`annotationlib.get_annotations` afterwards." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:134 +#: whatsnew/3.14.rst:3362 msgid "" -"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" -"`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can be used to " -"get these options at runtime." +"In previous releases, it was sometimes possible to access class annotations " +"from an instance of an annotated class. This behavior was undocumented and " +"accidental, and will no longer work in Python 3.14." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:2 -msgid "Pending removal in Python 3.18" +#: whatsnew/3.14.rst:3368 +msgid "``from __future__ import annotations``" msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:4 -msgid "Deprecated private functions (:gh:`128863`):" +#: whatsnew/3.14.rst:3370 +msgid "" +"In Python 3.7, :pep:`563` introduced the ``from __future__ import " +"annotations`` :ref:`future statement `, which turns all annotations " +"into strings." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:8 -msgid ":c:func:`!_PyDict_Pop()`: :c:func:`PyDict_Pop`." +#: whatsnew/3.14.rst:3373 +msgid "" +"However, this statement is now deprecated and it is expected to be removed " +"in a future version of Python. This removal will not happen until after " +"Python 3.13 reaches its end of life in 2029, being the last version of " +"Python without support for deferred evaluation of annotations." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:32 +#: whatsnew/3.14.rst:3379 msgid "" -":c:func:`!_PyUnicodeWriter_WriteASCIIString`: replace " -"``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` with :c:func:" -"`PyUnicodeWriter_WriteUTF8(writer, str) `." +"In Python 3.14, the behavior of code using ``from __future__ import " +"annotations`` is unchanged." msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:38 -msgid ":c:func:`!_PyUnicodeWriter_Prepare`: (no replacement)." +#: whatsnew/3.14.rst:3384 +msgid "Changes in the C API" msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:39 -msgid ":c:func:`!_PyUnicodeWriter_PrepareKind`: (no replacement)." +#: whatsnew/3.14.rst:3386 +msgid "" +":c:func:`Py_Finalize` now deletes all interned strings. This is backwards " +"incompatible to any C extension that holds onto an interned string after a " +"call to :c:func:`Py_Finalize` and is then reused after a call to :c:func:" +"`Py_Initialize`. Any issues arising from this behavior will normally result " +"in crashes during the execution of the subsequent call to :c:func:" +"`Py_Initialize` from accessing uninitialized memory. To fix, use an address " +"sanitizer to identify any use-after-free coming from an interned string and " +"deallocate it during module shutdown. (Contributed by Eddie Elizondo in :gh:" +"`113601`.)" msgstr "" -#: deprecations/c-api-pending-removal-in-3.18.rst:43 +#: whatsnew/3.14.rst:3396 msgid "" -"The `pythoncapi-compat project `__ can be used to get these new public functions on Python 3.13 and older." +"The :ref:`Unicode Exception Objects ` C API now raises a :" +"exc:`TypeError` if its exception argument is not a :exc:`UnicodeError` " +"object. (Contributed by Bénédikt Tran in :gh:`127691`.)" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:4 +#: whatsnew/3.14.rst:3403 msgid "" -"The following APIs are deprecated and will be removed, although there is " -"currently no date scheduled for their removal." +"The interpreter internally avoids some reference count modifications when " +"loading objects onto the operands stack by :term:`borrowing ` references when possible. This can lead to smaller reference " +"count values compared to previous Python versions. C API extensions that " +"checked :c:func:`Py_REFCNT` of ``1`` to determine if an function argument is " +"not referenced by any other code should instead use :c:func:" +"`PyUnstable_Object_IsUniqueReferencedTemporary` as a safer replacement." msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:7 -msgid ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: Unneeded since Python 3.8." +#: whatsnew/3.14.rst:3412 +msgid "Private functions promoted to public C APIs:" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:9 -msgid ":c:func:`PyErr_Fetch`: Use :c:func:`PyErr_GetRaisedException` instead." +#: whatsnew/3.14.rst:3414 +msgid "``_PyBytes_Join()``: :c:func:`PyBytes_Join`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:11 -msgid "" -":c:func:`PyErr_NormalizeException`: Use :c:func:`PyErr_GetRaisedException` " -"instead." +#: whatsnew/3.14.rst:3415 +msgid "``_PyLong_IsNegative()``: :c:func:`PyLong_IsNegative`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:13 -msgid "" -":c:func:`PyErr_Restore`: Use :c:func:`PyErr_SetRaisedException` instead." +#: whatsnew/3.14.rst:3416 +msgid "``_PyLong_IsPositive()``: :c:func:`PyLong_IsPositive`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:15 -msgid "" -":c:func:`PyModule_GetFilename`: Use :c:func:`PyModule_GetFilenameObject` " -"instead." +#: whatsnew/3.14.rst:3417 +msgid "``_PyLong_IsZero()``: :c:func:`PyLong_IsZero`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:17 -msgid ":c:func:`PyOS_AfterFork`: Use :c:func:`PyOS_AfterFork_Child` instead." +#: whatsnew/3.14.rst:3418 +msgid "``_PyLong_Sign()``: :c:func:`PyLong_GetSign`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:19 -msgid "" -":c:func:`PySlice_GetIndicesEx`: Use :c:func:`PySlice_Unpack` and :c:func:" -"`PySlice_AdjustIndices` instead." +#: whatsnew/3.14.rst:3419 +msgid "``_PyUnicodeWriter_Dealloc()``: :c:func:`PyUnicodeWriter_Discard`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:21 -msgid ":c:func:`PyUnicode_READY`: Unneeded since Python 3.12" +#: whatsnew/3.14.rst:3420 +msgid "``_PyUnicodeWriter_Finish()``: :c:func:`PyUnicodeWriter_Finish`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:23 -msgid ":c:func:`!PyErr_Display`: Use :c:func:`PyErr_DisplayException` instead." +#: whatsnew/3.14.rst:3421 +msgid "``_PyUnicodeWriter_Init()``: use :c:func:`PyUnicodeWriter_Create`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:25 -msgid "" -":c:func:`!_PyErr_ChainExceptions`: Use :c:func:`!_PyErr_ChainExceptions1` " -"instead." +#: whatsnew/3.14.rst:3422 +msgid "``_PyUnicodeWriter_Prepare()``: (no replacement)" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:27 -msgid "" -":c:member:`!PyBytesObject.ob_shash` member: call :c:func:`PyObject_Hash` " -"instead." +#: whatsnew/3.14.rst:3423 +msgid "``_PyUnicodeWriter_PrepareKind()``: (no replacement)" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:29 -msgid "Thread Local Storage (TLS) API:" +#: whatsnew/3.14.rst:3424 +msgid "``_PyUnicodeWriter_WriteChar()``: :c:func:`PyUnicodeWriter_WriteChar`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:31 +#: whatsnew/3.14.rst:3425 +msgid "``_PyUnicodeWriter_WriteStr()``: :c:func:`PyUnicodeWriter_WriteStr`" +msgstr "" + +#: whatsnew/3.14.rst:3426 msgid "" -":c:func:`PyThread_create_key`: Use :c:func:`PyThread_tss_alloc` instead." +"``_PyUnicodeWriter_WriteSubstring()``: :c:func:" +"`PyUnicodeWriter_WriteSubstring`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:33 -msgid ":c:func:`PyThread_delete_key`: Use :c:func:`PyThread_tss_free` instead." +#: whatsnew/3.14.rst:3427 +msgid "``_PyUnicode_EQ()``: :c:func:`PyUnicode_Equal`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:35 -msgid "" -":c:func:`PyThread_set_key_value`: Use :c:func:`PyThread_tss_set` instead." +#: whatsnew/3.14.rst:3428 +msgid "``_PyUnicode_Equal()``: :c:func:`PyUnicode_Equal`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:37 +#: whatsnew/3.14.rst:3429 msgid "" -":c:func:`PyThread_get_key_value`: Use :c:func:`PyThread_tss_get` instead." +"``_Py_GetConfig()``: :c:func:`PyConfig_Get` and :c:func:`PyConfig_GetInt`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:39 -msgid "" -":c:func:`PyThread_delete_key_value`: Use :c:func:`PyThread_tss_delete` " -"instead." +#: whatsnew/3.14.rst:3430 +msgid "``_Py_HashBytes()``: :c:func:`Py_HashBuffer`" msgstr "" -#: deprecations/c-api-pending-removal-in-future.rst:41 -msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." +#: whatsnew/3.14.rst:3431 +msgid "``_Py_fopen_obj()``: :c:func:`Py_fopen`" msgstr "" -#: whatsnew/3.14.rst:3035 -msgid "" -"Creating :c:data:`immutable types ` with mutable " -"bases was deprecated since 3.12 and now raises a :exc:`TypeError`." +#: whatsnew/3.14.rst:3432 +msgid "``PyMutex_IsLocked()`` : :c:func:`PyMutex_IsLocked`" msgstr "" -#: whatsnew/3.14.rst:3038 +#: whatsnew/3.14.rst:3434 msgid "" -"Remove ``PyDictObject.ma_version_tag`` member which was deprecated since " -"Python 3.12. Use the :c:func:`PyDict_AddWatcher` API instead. (Contributed " -"by Sam Gross in :gh:`124296`.)" +"The `pythoncapi-compat project`_ can be used to get most of these new " +"functions on Python 3.13 and older." msgstr "" -#: whatsnew/3.14.rst:3042 -msgid "" -"Remove the private ``_Py_InitializeMain()`` function. It was a :term:" -"`provisional API` added to Python 3.8 by :pep:`587`. (Contributed by Victor " -"Stinner in :gh:`129033`.)" +#: whatsnew/3.14.rst:3441 +msgid "Notable changes in 3.14.1" msgstr "" -#: whatsnew/3.14.rst:3046 +#: whatsnew/3.14.rst:3443 msgid "" -"The undocumented APIs :c:macro:`!Py_C_RECURSION_LIMIT` and :c:member:`!" -"PyThreadState.c_recursion_remaining`, added in 3.13, are removed without a " -"deprecation period. Please use :c:func:`Py_EnterRecursiveCall` to guard " -"against runaway recursion in C code. (Removed in :gh:`133079`, see also :gh:" -"`130396`.)" +"Add :c:func:`PyUnstable_ThreadState_SetStackProtection` and :c:func:" +"`PyUnstable_ThreadState_ResetStackProtection` functions to set the stack " +"protection base address and stack protection size of a Python thread state. " +"(Contributed by Victor Stinner in :gh:`139653`.)" msgstr "" diff --git a/whatsnew/3.2.po b/whatsnew/3.2.po index 54464c2d..85f3d215 100644 --- a/whatsnew/3.2.po +++ b/whatsnew/3.2.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -613,7 +613,7 @@ msgid "" "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::" +"meth:`~object.__missing__` method for unknown keys::" msgstr "" #: whatsnew/3.2.rst:463 diff --git a/whatsnew/3.3.po b/whatsnew/3.3.po index c27ac370..85271dc4 100644 --- a/whatsnew/3.3.po +++ b/whatsnew/3.3.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -495,7 +495,7 @@ msgstr "" 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." +"`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 "" @@ -1203,8 +1203,8 @@ msgstr "" 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`)." +"`~collections.abc.MutableSequence` now also defines a :meth:`!clear` method " +"(:issue:`11388`)." msgstr "" #: whatsnew/3.3.rst:810 @@ -1314,10 +1314,11 @@ 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." +"fault handlers for the :const:`~signal.SIGSEGV`, :const:`~signal.SIGFPE`, :" +"const:`~signal.SIGABRT`, :const:`~signal.SIGBUS`, and :const:`~signal." +"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 "" #: whatsnew/3.3.rst:877 @@ -1380,23 +1381,23 @@ msgstr "" 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 " +"descriptors is now to provide :attr:`!__isabstractmethod__` as a dynamically " "updated property. The built-in descriptors have been updated accordingly." msgstr "" -#: whatsnew/3.3.rst:2248 +#: whatsnew/3.3.rst:2247 msgid "" ":class:`abc.abstractproperty` has been deprecated, use :class:`property` " "with :func:`abc.abstractmethod` instead." msgstr "" -#: whatsnew/3.3.rst:2250 +#: whatsnew/3.3.rst:2249 msgid "" ":class:`abc.abstractclassmethod` has been deprecated, use :class:" "`classmethod` with :func:`abc.abstractmethod` instead." msgstr "" -#: whatsnew/3.3.rst:2252 +#: whatsnew/3.3.rst:2251 msgid "" ":class:`abc.abstractstaticmethod` has been deprecated, use :class:" "`staticmethod` with :func:`abc.abstractmethod` instead." @@ -1490,7 +1491,7 @@ msgstr "" #: whatsnew/3.3.rst:981 msgid "" ":class:`bz2.BZ2File` now implements all of the :class:`io.BufferedIOBase` " -"API, except for the :meth:`detach` and :meth:`truncate` methods." +"API, except for the :meth:`!detach` and :meth:`!truncate` methods." msgstr "" #: whatsnew/3.3.rst:986 @@ -1621,8 +1622,8 @@ msgstr "" #: whatsnew/3.3.rst:1065 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`)." +"functions when Unicode strings or characters are passed (e.g. :c:func:`!" +"waddwstr`), and bytes functions otherwise (e.g. :c:func:`!waddstr`)." msgstr "" #: whatsnew/3.3.rst:1068 @@ -1803,7 +1804,7 @@ msgid "64-bit" msgstr "" #: whatsnew/3.3.rst:1143 -msgid ":const:`MAX_PREC`" +msgid ":const:`~decimal.MAX_PREC`" msgstr "" #: whatsnew/3.3.rst:1145 @@ -1815,11 +1816,11 @@ msgid "``999999999999999999``" msgstr "" #: whatsnew/3.3.rst:1145 -msgid ":const:`MAX_EMAX`" +msgid ":const:`~decimal.MAX_EMAX`" msgstr "" #: whatsnew/3.3.rst:1147 -msgid ":const:`MIN_EMIN`" +msgid ":const:`~decimal.MIN_EMIN`" msgstr "" #: whatsnew/3.3.rst:1147 @@ -2259,10 +2260,10 @@ msgstr "" 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:" +"exc:`!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`.)" @@ -2338,9 +2339,9 @@ msgstr "" 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." +"meth:`!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 "" #: whatsnew/3.3.rst:1495 @@ -2366,11 +2367,10 @@ msgstr "" #: whatsnew/3.3.rst:1507 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." +"A class level attribute :attr:`!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 "" #: whatsnew/3.3.rst:1515 @@ -2412,9 +2412,9 @@ msgstr "" #: whatsnew/3.3.rst:1539 msgid "" -":class:`multiprocessing.Connection` objects can now be transferred over " -"multiprocessing connections. (Contributed by Richard Oudkerk in :issue:" -"`4892`.)" +":class:`multiprocessing.connection.Connection` objects can now be " +"transferred over multiprocessing connections. (Contributed by Richard " +"Oudkerk in :issue:`4892`.)" msgstr "" #: whatsnew/3.3.rst:1543 @@ -2521,7 +2521,7 @@ msgid "" "`~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`." +"`os.supports_follow_symlinks`." msgstr "" #: whatsnew/3.3.rst:1616 @@ -2686,7 +2686,7 @@ msgid "" "`~os.RTLD_NOLOAD`, and :const:`~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`.)" +"mod:`!DLFCN`. (Contributed by Victor Stinner in :issue:`13226`.)" msgstr "" #: whatsnew/3.3.rst:1704 @@ -2730,9 +2730,9 @@ msgstr "" #: whatsnew/3.3.rst:1731 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." +"The Tk GUI and the :func:`!serve` function have been removed from the :mod:" +"`pydoc` module: ``pydoc -g`` and :func:`!serve` have been deprecated in " +"Python 3.2." msgstr "" #: whatsnew/3.3.rst:1737 @@ -3069,7 +3069,7 @@ msgid "" msgstr "" #: whatsnew/3.3.rst:1934 -msgid ":func:`~ssl.RAND_pseudo_bytes`: generate pseudo-random bytes." +msgid ":func:`!RAND_pseudo_bytes`: generate pseudo-random bytes." msgstr "" #: whatsnew/3.3.rst:1936 @@ -3209,27 +3209,26 @@ msgstr "" #: whatsnew/3.3.rst:2023 msgid "" -":class:`tempfile.SpooledTemporaryFile`\\'s :meth:`~tempfile." -"SpooledTemporaryFile.truncate` method now accepts a ``size`` parameter. " -"(Contributed by Ryan Kelly in :issue:`9957`.)" +":class:`tempfile.SpooledTemporaryFile`\\'s :meth:`!truncate` method now " +"accepts a ``size`` parameter. (Contributed by Ryan Kelly in :issue:`9957`.)" msgstr "" -#: whatsnew/3.3.rst:2029 +#: whatsnew/3.3.rst:2028 msgid "textwrap" msgstr "" -#: whatsnew/3.3.rst:2031 +#: whatsnew/3.3.rst:2030 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 "" -#: whatsnew/3.3.rst:2037 +#: whatsnew/3.3.rst:2036 msgid "threading" msgstr "" -#: whatsnew/3.3.rst:2039 +#: whatsnew/3.3.rst:2038 msgid "" ":class:`threading.Condition`, :class:`threading.Semaphore`, :class:" "`threading.BoundedSemaphore`, :class:`threading.Event`, and :class:" @@ -3238,14 +3237,14 @@ msgid "" "Araujo in :issue:`10968`.)" msgstr "" -#: whatsnew/3.3.rst:2045 +#: whatsnew/3.3.rst:2044 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 "" -#: whatsnew/3.3.rst:2049 +#: whatsnew/3.3.rst:2048 msgid "" "The formerly private function ``_thread.get_ident`` is now available as the " "public function :func:`threading.get_ident`. This eliminates several cases " @@ -3254,76 +3253,76 @@ msgid "" "public interface." msgstr "" -#: whatsnew/3.3.rst:2057 +#: whatsnew/3.3.rst:2056 msgid "time" msgstr "" -#: whatsnew/3.3.rst:2059 +#: whatsnew/3.3.rst:2058 msgid "The :pep:`418` added new functions to the :mod:`time` module:" msgstr "" -#: whatsnew/3.3.rst:2061 +#: whatsnew/3.3.rst:2060 msgid ":func:`~time.get_clock_info`: Get information on a clock." msgstr "" -#: whatsnew/3.3.rst:2062 +#: whatsnew/3.3.rst:2061 msgid "" ":func:`~time.monotonic`: Monotonic clock (cannot go backward), not affected " "by system clock updates." msgstr "" -#: whatsnew/3.3.rst:2064 +#: whatsnew/3.3.rst:2063 msgid "" ":func:`~time.perf_counter`: Performance counter with the highest available " "resolution to measure a short duration." msgstr "" -#: whatsnew/3.3.rst:2066 +#: whatsnew/3.3.rst:2065 msgid "" ":func:`~time.process_time`: Sum of the system and user CPU time of the " "current process." msgstr "" -#: whatsnew/3.3.rst:2069 +#: whatsnew/3.3.rst:2068 msgid "Other new functions:" msgstr "" -#: whatsnew/3.3.rst:2071 +#: whatsnew/3.3.rst:2070 msgid "" ":func:`~time.clock_getres`, :func:`~time.clock_gettime` and :func:`~time." "clock_settime` functions with :samp:`CLOCK_{xxx}` constants. (Contributed by " "Victor Stinner in :issue:`10278`.)" msgstr "" -#: whatsnew/3.3.rst:2075 +#: whatsnew/3.3.rst:2074 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 "" -#: whatsnew/3.3.rst:2081 +#: whatsnew/3.3.rst:2080 msgid "types" msgstr "" -#: whatsnew/3.3.rst:2083 +#: whatsnew/3.3.rst:2082 msgid "" "Add a new :class:`types.MappingProxyType` class: Read-only proxy of a " "mapping. (:issue:`14386`)" msgstr "" -#: whatsnew/3.3.rst:2087 +#: whatsnew/3.3.rst:2086 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 "" -#: whatsnew/3.3.rst:2092 +#: whatsnew/3.3.rst:2091 msgid "unittest" msgstr "" -#: whatsnew/3.3.rst:2094 +#: whatsnew/3.3.rst:2093 msgid "" ":meth:`.assertRaises`, :meth:`.assertRaisesRegex`, :meth:`.assertWarns`, " "and :meth:`.assertWarnsRegex` now accept a keyword argument *msg* when used " @@ -3331,36 +3330,36 @@ msgid "" "issue:`10775`.)" msgstr "" -#: whatsnew/3.3.rst:2099 +#: whatsnew/3.3.rst:2098 msgid "" ":meth:`unittest.TestCase.run` now returns the :class:`~unittest.TestResult` " "object." msgstr "" -#: whatsnew/3.3.rst:2104 +#: whatsnew/3.3.rst:2103 msgid "urllib" msgstr "" -#: whatsnew/3.3.rst:2106 +#: whatsnew/3.3.rst:2105 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 "" -#: whatsnew/3.3.rst:2110 +#: whatsnew/3.3.rst:2109 msgid ">>> urlopen(Request('https://www.python.org', method='HEAD'))" msgstr "" -#: whatsnew/3.3.rst:2112 +#: whatsnew/3.3.rst:2111 msgid "(:issue:`1673007`)" msgstr "" -#: whatsnew/3.3.rst:2116 +#: whatsnew/3.3.rst:2115 msgid "webbrowser" msgstr "" -#: whatsnew/3.3.rst:2118 +#: whatsnew/3.3.rst:2117 msgid "" "The :mod:`webbrowser` module supports more \"browsers\": Google Chrome " "(named :program:`chrome`, :program:`chromium`, :program:`chrome-browser` or :" @@ -3371,14 +3370,14 @@ msgid "" "latter by Matthias Klose in :issue:`14493`.)" msgstr "" -#: whatsnew/3.3.rst:2128 +#: whatsnew/3.3.rst:2127 msgid "xml.etree.ElementTree" msgstr "" -#: whatsnew/3.3.rst:2130 +#: whatsnew/3.3.rst:2129 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." +"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 " @@ -3386,252 +3385,252 @@ msgid "" "detailed reference." msgstr "" -#: whatsnew/3.3.rst:2140 +#: whatsnew/3.3.rst:2139 msgid "zlib" msgstr "" -#: whatsnew/3.3.rst:2142 +#: whatsnew/3.3.rst:2141 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 "" -#: whatsnew/3.3.rst:2146 +#: whatsnew/3.3.rst:2145 msgid "" "New attribute :const:`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 "" -#: whatsnew/3.3.rst:2152 +#: whatsnew/3.3.rst:2151 msgid "Optimizations" msgstr "" -#: whatsnew/3.3.rst:2154 +#: whatsnew/3.3.rst:2153 msgid "Major performance enhancements have been added:" msgstr "" -#: whatsnew/3.3.rst:2156 +#: whatsnew/3.3.rst:2155 msgid "" "Thanks to :pep:`393`, some operations on Unicode strings have been optimized:" msgstr "" -#: whatsnew/3.3.rst:2158 +#: whatsnew/3.3.rst:2157 msgid "the memory footprint is divided by 2 to 4 depending on the text" msgstr "" -#: whatsnew/3.3.rst:2159 +#: whatsnew/3.3.rst:2158 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 "" -#: whatsnew/3.3.rst:2161 +#: whatsnew/3.3.rst:2160 msgid "the UTF-8 encoder has been optimized" msgstr "" -#: whatsnew/3.3.rst:2162 +#: whatsnew/3.3.rst:2161 msgid "" "repeating a single ASCII letter and getting a substring of an ASCII string " "is 4 times faster" msgstr "" -#: whatsnew/3.3.rst:2165 +#: whatsnew/3.3.rst:2164 msgid "UTF-8 is now 2x to 4x faster. UTF-16 encoding is now up to 10x faster." msgstr "" -#: whatsnew/3.3.rst:2167 +#: whatsnew/3.3.rst:2166 msgid "" "(Contributed by Serhiy Storchaka, :issue:`14624`, :issue:`14738` and :issue:" "`15026`.)" msgstr "" -#: whatsnew/3.3.rst:2172 +#: whatsnew/3.3.rst:2171 msgid "Build and C API Changes" msgstr "" -#: whatsnew/3.3.rst:2174 +#: whatsnew/3.3.rst:2173 msgid "Changes to Python's build process and to the C API include:" msgstr "" -#: whatsnew/3.3.rst:2176 +#: whatsnew/3.3.rst:2175 msgid "New :pep:`3118` related function:" msgstr "" -#: whatsnew/3.3.rst:2178 +#: whatsnew/3.3.rst:2177 msgid ":c:func:`PyMemoryView_FromMemory`" msgstr "" -#: whatsnew/3.3.rst:2180 +#: whatsnew/3.3.rst:2179 msgid ":pep:`393` added new Unicode types, macros and functions:" msgstr "" -#: whatsnew/3.3.rst:2182 +#: whatsnew/3.3.rst:2181 msgid "High-level API:" msgstr "" -#: whatsnew/3.3.rst:2184 +#: whatsnew/3.3.rst:2183 msgid ":c:func:`PyUnicode_CopyCharacters`" msgstr "" -#: whatsnew/3.3.rst:2185 +#: whatsnew/3.3.rst:2184 msgid ":c:func:`PyUnicode_FindChar`" msgstr "" -#: whatsnew/3.3.rst:2186 +#: whatsnew/3.3.rst:2185 msgid ":c:func:`PyUnicode_GetLength`, :c:macro:`PyUnicode_GET_LENGTH`" msgstr "" -#: whatsnew/3.3.rst:2187 +#: whatsnew/3.3.rst:2186 msgid ":c:func:`PyUnicode_New`" msgstr "" -#: whatsnew/3.3.rst:2188 +#: whatsnew/3.3.rst:2187 msgid ":c:func:`PyUnicode_Substring`" msgstr "" -#: whatsnew/3.3.rst:2189 +#: whatsnew/3.3.rst:2188 msgid ":c:func:`PyUnicode_ReadChar`, :c:func:`PyUnicode_WriteChar`" msgstr "" -#: whatsnew/3.3.rst:2191 +#: whatsnew/3.3.rst:2190 msgid "Low-level API:" msgstr "" -#: whatsnew/3.3.rst:2193 +#: whatsnew/3.3.rst:2192 msgid ":c:type:`Py_UCS1`, :c:type:`Py_UCS2`, :c:type:`Py_UCS4` types" msgstr "" -#: whatsnew/3.3.rst:2194 +#: whatsnew/3.3.rst:2193 msgid ":c:type:`PyASCIIObject` and :c:type:`PyCompactUnicodeObject` structures" msgstr "" -#: whatsnew/3.3.rst:2195 +#: whatsnew/3.3.rst:2194 msgid ":c:macro:`PyUnicode_READY`" msgstr "" -#: whatsnew/3.3.rst:2196 +#: whatsnew/3.3.rst:2195 msgid ":c:func:`PyUnicode_FromKindAndData`" msgstr "" -#: whatsnew/3.3.rst:2197 +#: whatsnew/3.3.rst:2196 msgid ":c:func:`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsUCS4Copy`" msgstr "" -#: whatsnew/3.3.rst:2198 +#: whatsnew/3.3.rst:2197 msgid "" ":c:macro:`PyUnicode_DATA`, :c:macro:`PyUnicode_1BYTE_DATA`, :c:macro:" "`PyUnicode_2BYTE_DATA`, :c:macro:`PyUnicode_4BYTE_DATA`" msgstr "" -#: whatsnew/3.3.rst:2200 +#: whatsnew/3.3.rst:2199 msgid "" -":c:macro:`PyUnicode_KIND` with :c:enum:`PyUnicode_Kind` enum: :c:data:`!" +":c:macro:`PyUnicode_KIND` with :c:enum:`!PyUnicode_Kind` enum: :c:data:`!" "PyUnicode_WCHAR_KIND`, :c:data:`PyUnicode_1BYTE_KIND`, :c:data:" "`PyUnicode_2BYTE_KIND`, :c:data:`PyUnicode_4BYTE_KIND`" msgstr "" -#: whatsnew/3.3.rst:2203 +#: whatsnew/3.3.rst:2202 msgid "" ":c:macro:`PyUnicode_READ`, :c:macro:`PyUnicode_READ_CHAR`, :c:macro:" "`PyUnicode_WRITE`" msgstr "" -#: whatsnew/3.3.rst:2204 +#: whatsnew/3.3.rst:2203 msgid ":c:macro:`PyUnicode_MAX_CHAR_VALUE`" msgstr "" -#: whatsnew/3.3.rst:2206 +#: whatsnew/3.3.rst:2205 msgid "" ":c:macro:`PyArg_ParseTuple` now accepts a :class:`bytearray` for the ``c`` " "format (:issue:`12380`)." msgstr "" -#: whatsnew/3.3.rst:2212 +#: whatsnew/3.3.rst:2211 msgid "Deprecated" msgstr "" -#: whatsnew/3.3.rst:2215 +#: whatsnew/3.3.rst:2214 msgid "Unsupported Operating Systems" msgstr "" -#: whatsnew/3.3.rst:2217 +#: whatsnew/3.3.rst:2216 msgid "OS/2 and VMS are no longer supported due to the lack of a maintainer." msgstr "" -#: whatsnew/3.3.rst:2219 +#: whatsnew/3.3.rst:2218 msgid "" "Windows 2000 and Windows platforms which set ``COMSPEC`` to ``command.com`` " "are no longer supported due to maintenance burden." msgstr "" -#: whatsnew/3.3.rst:2222 +#: whatsnew/3.3.rst:2221 msgid "OSF support, which was deprecated in 3.2, has been completely removed." msgstr "" -#: whatsnew/3.3.rst:2226 +#: whatsnew/3.3.rst:2225 msgid "Deprecated Python modules, functions and methods" msgstr "" -#: whatsnew/3.3.rst:2228 +#: whatsnew/3.3.rst:2227 msgid "" "Passing a non-empty string to ``object.__format__()`` is deprecated, and " "will produce a :exc:`TypeError` in Python 3.4 (:issue:`9856`)." msgstr "" -#: whatsnew/3.3.rst:2230 +#: whatsnew/3.3.rst:2229 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 "" -#: whatsnew/3.3.rst:2233 +#: whatsnew/3.3.rst:2232 msgid "" ":meth:`ftplib.FTP.nlst` and :meth:`ftplib.FTP.dir`: use :meth:`ftplib.FTP." "mlsd`" msgstr "" -#: whatsnew/3.3.rst:2235 +#: whatsnew/3.3.rst:2234 msgid "" -":func:`platform.popen`: use the :mod:`subprocess` module. Check especially " +":func:`!platform.popen`: use the :mod:`subprocess` module. Check especially " "the :ref:`subprocess-replacements` section (:issue:`11377`)." msgstr "" -#: whatsnew/3.3.rst:2237 +#: whatsnew/3.3.rst:2236 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 "" -#: whatsnew/3.3.rst:2240 +#: whatsnew/3.3.rst:2239 msgid "" -":issue:`13988`: The :mod:`xml.etree.cElementTree` module is deprecated. The " -"accelerator is used automatically whenever available." +":issue:`13988`: The :mod:`!xml.etree.cElementTree` module is deprecated. " +"The accelerator is used automatically whenever available." msgstr "" -#: whatsnew/3.3.rst:2242 +#: whatsnew/3.3.rst:2241 msgid "" -"The behaviour of :func:`time.clock` depends on the platform: use the new :" +"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 "" -#: whatsnew/3.3.rst:2245 -msgid "The :func:`os.stat_float_times` function is deprecated." +#: whatsnew/3.3.rst:2244 +msgid "The :func:`!os.stat_float_times` function is deprecated." msgstr "" -#: whatsnew/3.3.rst:2246 +#: whatsnew/3.3.rst:2245 msgid ":mod:`abc` module:" msgstr "" -#: whatsnew/3.3.rst:2255 +#: whatsnew/3.3.rst:2254 msgid ":mod:`importlib` package:" msgstr "" -#: whatsnew/3.3.rst:2257 +#: whatsnew/3.3.rst:2256 msgid "" ":meth:`importlib.abc.SourceLoader.path_mtime` is now deprecated in favour " "of :meth:`importlib.abc.SourceLoader.path_stats` as bytecode files now store " @@ -3639,206 +3638,206 @@ msgid "" "compiled from." msgstr "" -#: whatsnew/3.3.rst:2267 +#: whatsnew/3.3.rst:2266 msgid "Deprecated functions and types of the C API" msgstr "" -#: whatsnew/3.3.rst:2269 +#: whatsnew/3.3.rst:2268 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 "" -#: whatsnew/3.3.rst:2272 +#: whatsnew/3.3.rst:2271 msgid "" "Unicode functions and methods using :c:type:`Py_UNICODE` and :c:expr:" "`Py_UNICODE*` types:" msgstr "" -#: whatsnew/3.3.rst:2275 +#: whatsnew/3.3.rst:2274 msgid "" ":c:macro:`!PyUnicode_FromUnicode`: use :c:func:`PyUnicode_FromWideChar` or :" "c:func:`PyUnicode_FromKindAndData`" msgstr "" -#: whatsnew/3.3.rst:2277 +#: whatsnew/3.3.rst:2276 msgid "" ":c:macro:`!PyUnicode_AS_UNICODE`, :c:func:`!PyUnicode_AsUnicode`, :c:func:`!" "PyUnicode_AsUnicodeAndSize`: use :c:func:`PyUnicode_AsWideCharString`" msgstr "" -#: whatsnew/3.3.rst:2279 +#: whatsnew/3.3.rst:2278 msgid "" ":c:macro:`!PyUnicode_AS_DATA`: use :c:macro:`PyUnicode_DATA` with :c:macro:" "`PyUnicode_READ` and :c:macro:`PyUnicode_WRITE`" msgstr "" -#: whatsnew/3.3.rst:2281 +#: whatsnew/3.3.rst:2280 msgid "" ":c:macro:`!PyUnicode_GET_SIZE`, :c:func:`!PyUnicode_GetSize`: use :c:macro:" "`PyUnicode_GET_LENGTH` or :c:func:`PyUnicode_GetLength`" msgstr "" -#: whatsnew/3.3.rst:2283 +#: whatsnew/3.3.rst:2282 msgid "" ":c:macro:`!PyUnicode_GET_DATA_SIZE`: use ``PyUnicode_GET_LENGTH(str) * " "PyUnicode_KIND(str)`` (only work on ready strings)" msgstr "" -#: whatsnew/3.3.rst:2286 +#: whatsnew/3.3.rst:2285 msgid "" ":c:func:`!PyUnicode_AsUnicodeCopy`: use :c:func:`PyUnicode_AsUCS4Copy` or :c:" "func:`PyUnicode_AsWideCharString`" msgstr "" -#: whatsnew/3.3.rst:2288 +#: whatsnew/3.3.rst:2287 msgid ":c:func:`!PyUnicode_GetMax`" msgstr "" -#: whatsnew/3.3.rst:2291 +#: whatsnew/3.3.rst:2290 msgid "Functions and macros manipulating Py_UNICODE* strings:" msgstr "" -#: whatsnew/3.3.rst:2293 +#: whatsnew/3.3.rst:2292 msgid "" ":c:macro:`!Py_UNICODE_strlen()`: use :c:func:`PyUnicode_GetLength` or :c:" "macro:`PyUnicode_GET_LENGTH`" msgstr "" -#: whatsnew/3.3.rst:2295 +#: whatsnew/3.3.rst:2294 msgid "" ":c:macro:`!Py_UNICODE_strcat()`: use :c:func:`PyUnicode_CopyCharacters` or :" "c:func:`PyUnicode_FromFormat`" msgstr "" -#: whatsnew/3.3.rst:2297 +#: whatsnew/3.3.rst:2296 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 "" -#: whatsnew/3.3.rst:2300 +#: whatsnew/3.3.rst:2299 msgid ":c:macro:`!Py_UNICODE_strcmp()`: use :c:func:`PyUnicode_Compare`" msgstr "" -#: whatsnew/3.3.rst:2301 +#: whatsnew/3.3.rst:2300 msgid ":c:macro:`!Py_UNICODE_strncmp()`: use :c:func:`PyUnicode_Tailmatch`" msgstr "" -#: whatsnew/3.3.rst:2302 +#: whatsnew/3.3.rst:2301 msgid "" ":c:macro:`!Py_UNICODE_strchr()`, :c:macro:`!Py_UNICODE_strrchr()`: use :c:" "func:`PyUnicode_FindChar`" msgstr "" -#: whatsnew/3.3.rst:2304 +#: whatsnew/3.3.rst:2303 msgid ":c:macro:`!Py_UNICODE_FILL()`: use :c:func:`PyUnicode_Fill`" msgstr "" -#: whatsnew/3.3.rst:2305 +#: whatsnew/3.3.rst:2304 msgid ":c:macro:`!Py_UNICODE_MATCH`" msgstr "" -#: whatsnew/3.3.rst:2307 +#: whatsnew/3.3.rst:2306 msgid "Encoders:" msgstr "" -#: whatsnew/3.3.rst:2309 +#: whatsnew/3.3.rst:2308 msgid ":c:func:`!PyUnicode_Encode`: use :c:func:`!PyUnicode_AsEncodedObject`" msgstr "" -#: whatsnew/3.3.rst:2310 +#: whatsnew/3.3.rst:2309 msgid ":c:func:`!PyUnicode_EncodeUTF7`" msgstr "" -#: whatsnew/3.3.rst:2311 +#: whatsnew/3.3.rst:2310 msgid "" ":c:func:`!PyUnicode_EncodeUTF8`: use :c:func:`PyUnicode_AsUTF8` or :c:func:" "`PyUnicode_AsUTF8String`" msgstr "" -#: whatsnew/3.3.rst:2313 +#: whatsnew/3.3.rst:2312 msgid ":c:func:`!PyUnicode_EncodeUTF32`" msgstr "" -#: whatsnew/3.3.rst:2314 +#: whatsnew/3.3.rst:2313 msgid ":c:func:`!PyUnicode_EncodeUTF16`" msgstr "" -#: whatsnew/3.3.rst:2315 +#: whatsnew/3.3.rst:2314 msgid "" ":c:func:`!PyUnicode_EncodeUnicodeEscape` use :c:func:" "`PyUnicode_AsUnicodeEscapeString`" msgstr "" -#: whatsnew/3.3.rst:2317 +#: whatsnew/3.3.rst:2316 msgid "" ":c:func:`!PyUnicode_EncodeRawUnicodeEscape` use :c:func:" "`PyUnicode_AsRawUnicodeEscapeString`" msgstr "" -#: whatsnew/3.3.rst:2319 +#: whatsnew/3.3.rst:2318 msgid "" ":c:func:`!PyUnicode_EncodeLatin1`: use :c:func:`PyUnicode_AsLatin1String`" msgstr "" -#: whatsnew/3.3.rst:2320 +#: whatsnew/3.3.rst:2319 msgid ":c:func:`!PyUnicode_EncodeASCII`: use :c:func:`PyUnicode_AsASCIIString`" msgstr "" -#: whatsnew/3.3.rst:2321 +#: whatsnew/3.3.rst:2320 msgid ":c:func:`!PyUnicode_EncodeCharmap`" msgstr "" -#: whatsnew/3.3.rst:2322 +#: whatsnew/3.3.rst:2321 msgid ":c:func:`!PyUnicode_TranslateCharmap`" msgstr "" -#: whatsnew/3.3.rst:2323 +#: whatsnew/3.3.rst:2322 msgid "" ":c:func:`!PyUnicode_EncodeMBCS`: use :c:func:`PyUnicode_AsMBCSString` or :c:" "func:`PyUnicode_EncodeCodePage` (with ``CP_ACP`` code_page)" msgstr "" -#: whatsnew/3.3.rst:2325 +#: whatsnew/3.3.rst:2324 msgid "" ":c:func:`!PyUnicode_EncodeDecimal`, :c:func:`!" "PyUnicode_TransformDecimalToASCII`" msgstr "" -#: whatsnew/3.3.rst:2330 +#: whatsnew/3.3.rst:2329 msgid "Deprecated features" msgstr "" -#: whatsnew/3.3.rst:2332 +#: whatsnew/3.3.rst:2331 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 "" -#: whatsnew/3.3.rst:2337 +#: whatsnew/3.3.rst:2336 msgid "Porting to Python 3.3" msgstr "" -#: whatsnew/3.3.rst:2339 +#: whatsnew/3.3.rst:2338 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: whatsnew/3.3.rst:2345 +#: whatsnew/3.3.rst:2344 msgid "Porting Python code" msgstr "" -#: whatsnew/3.3.rst:2347 +#: whatsnew/3.3.rst:2346 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 "" -#: whatsnew/3.3.rst:2351 +#: whatsnew/3.3.rst:2350 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 " @@ -3847,7 +3846,7 @@ msgid "" "if you don't need to support older Python versions." msgstr "" -#: whatsnew/3.3.rst:2357 +#: whatsnew/3.3.rst:2356 msgid "" ":issue:`13847`, :issue:`14180`: :mod:`time` and :mod:`datetime`: :exc:" "`OverflowError` is now raised instead of :exc:`ValueError` if a timestamp is " @@ -3855,7 +3854,7 @@ msgid "" "or :c:func:`localtime` failed." msgstr "" -#: whatsnew/3.3.rst:2362 +#: whatsnew/3.3.rst:2361 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 " @@ -3864,7 +3863,7 @@ msgid "" "file." msgstr "" -#: whatsnew/3.3.rst:2367 +#: whatsnew/3.3.rst:2366 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 " @@ -3872,7 +3871,7 @@ msgid "" "name." msgstr "" -#: whatsnew/3.3.rst:2372 +#: whatsnew/3.3.rst:2371 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` " @@ -3883,20 +3882,20 @@ msgid "" "import_module` rather than call :func:`__import__` directly." msgstr "" -#: whatsnew/3.3.rst:2380 +#: whatsnew/3.3.rst:2379 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 "" -#: whatsnew/3.3.rst:2383 +#: whatsnew/3.3.rst:2382 msgid "" "Because :data:`sys.meta_path` and :data:`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 "" -#: whatsnew/3.3.rst:2387 +#: whatsnew/3.3.rst:2386 msgid "" "Because ``None`` is now inserted into :data:`sys.path_importer_cache`, if " "you are clearing out entries in the dictionary of paths that do not have a " @@ -3907,7 +3906,7 @@ msgid "" "finders, but semantically it should not change anything." msgstr "" -#: whatsnew/3.3.rst:2395 +#: whatsnew/3.3.rst:2394 msgid "" ":class:`!importlib.abc.Finder` no longer specifies a ``find_module()`` " "abstract method that must be implemented. If you were relying on subclasses " @@ -3916,7 +3915,7 @@ msgid "" "in the case of working with :term:`path entry finders `." msgstr "" -#: whatsnew/3.3.rst:2401 +#: whatsnew/3.3.rst:2400 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 " @@ -3927,7 +3926,7 @@ msgid "" "do not provide the non-standard ``iter_modules()`` method." msgstr "" -#: whatsnew/3.3.rst:2409 +#: whatsnew/3.3.rst:2408 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 " @@ -3941,7 +3940,7 @@ msgid "" "already present in the input strings." msgstr "" -#: whatsnew/3.3.rst:2420 +#: whatsnew/3.3.rst:2419 msgid "" ":func:`email.utils.formataddr` now does the correct content transfer " "encoding when passed non-``ASCII`` display names. Any code that depended on " @@ -3949,7 +3948,7 @@ msgid "" "formatted output string will need to be changed (:issue:`1690608`)." msgstr "" -#: whatsnew/3.3.rst:2425 +#: whatsnew/3.3.rst:2424 msgid "" ":meth:`poplib.POP3.quit` may now raise protocol errors like all other " "``poplib`` methods. Code that assumes ``quit`` does not raise :exc:`poplib." @@ -3957,57 +3956,57 @@ msgid "" "encountered by a particular application (:issue:`11291`)." msgstr "" -#: whatsnew/3.3.rst:2430 +#: whatsnew/3.3.rst:2429 msgid "" "The ``strict`` argument to :class:`email.parser.Parser`, deprecated since " "Python 2.4, has finally been removed." msgstr "" -#: whatsnew/3.3.rst:2433 +#: whatsnew/3.3.rst:2432 msgid "" "The deprecated method ``unittest.TestCase.assertSameElements`` has been " "removed." msgstr "" -#: whatsnew/3.3.rst:2436 +#: whatsnew/3.3.rst:2435 msgid "The deprecated variable ``time.accept2dyear`` has been removed." msgstr "" -#: whatsnew/3.3.rst:2438 +#: whatsnew/3.3.rst:2437 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 "" -#: whatsnew/3.3.rst:2442 +#: whatsnew/3.3.rst:2441 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 "" -#: whatsnew/3.3.rst:2446 +#: whatsnew/3.3.rst:2445 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 "" -#: whatsnew/3.3.rst:2449 +#: whatsnew/3.3.rst:2448 msgid "" "The ``ast.__version__`` constant has been removed. If you need to make " "decisions affected by the AST version, use :data:`sys.version_info` to make " "the decision." msgstr "" -#: whatsnew/3.3.rst:2453 +#: whatsnew/3.3.rst:2452 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 "" -#: whatsnew/3.3.rst:2457 +#: whatsnew/3.3.rst:2456 msgid "" "The undocumented debugging machinery in the threading module has been " "removed, simplifying the code. This should have no effect on production " @@ -4015,24 +4014,24 @@ msgid "" "interacting with it (:issue:`13550`)." msgstr "" -#: whatsnew/3.3.rst:2464 +#: whatsnew/3.3.rst:2463 msgid "Porting C code" msgstr "" -#: whatsnew/3.3.rst:2466 +#: whatsnew/3.3.rst:2465 msgid "" "In the course of changes to the buffer API the undocumented :c:member:`!" "smalltable` member of the :c:type:`Py_buffer` structure has been removed and " -"the layout of the :c:type:`PyMemoryViewObject` has changed." +"the layout of the :c:type:`!PyMemoryViewObject` has changed." msgstr "" -#: whatsnew/3.3.rst:2471 +#: whatsnew/3.3.rst:2470 msgid "" "All extensions relying on the relevant parts in ``memoryobject.h`` or " "``object.h`` must be rebuilt." msgstr "" -#: whatsnew/3.3.rst:2474 +#: whatsnew/3.3.rst:2473 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 " @@ -4042,7 +4041,7 @@ msgid "" "doc:`Unicode API <../c-api/unicode>`." msgstr "" -#: whatsnew/3.3.rst:2481 +#: whatsnew/3.3.rst:2480 msgid "" "However, if you only have been using high-level functions such as :c:func:" "`PyUnicode_Concat()`, :c:func:`PyUnicode_Join` or :c:func:" @@ -4050,11 +4049,11 @@ msgid "" "new unicode representations." msgstr "" -#: whatsnew/3.3.rst:2486 +#: whatsnew/3.3.rst:2485 msgid ":c:func:`PyImport_GetMagicNumber` now returns ``-1`` upon failure." msgstr "" -#: whatsnew/3.3.rst:2488 +#: whatsnew/3.3.rst:2487 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`. " @@ -4062,11 +4061,11 @@ msgid "" "`PyImport_ImportModuleEx` is now ``0`` instead of ``-1``." msgstr "" -#: whatsnew/3.3.rst:2495 +#: whatsnew/3.3.rst:2494 msgid "Building C extensions" msgstr "" -#: whatsnew/3.3.rst:2497 +#: whatsnew/3.3.rst:2496 msgid "" "The range of possible file names for C extensions has been narrowed. Very " "rarely used spellings have been suppressed: under POSIX, files named " @@ -4076,32 +4075,32 @@ msgid "" "remove the ``module`` string from the file names)." msgstr "" -#: whatsnew/3.3.rst:2505 +#: whatsnew/3.3.rst:2504 msgid "(implemented in :issue:`14040`.)" msgstr "" -#: whatsnew/3.3.rst:2509 +#: whatsnew/3.3.rst:2508 msgid "Command Line Switch Changes" msgstr "" -#: whatsnew/3.3.rst:2511 +#: whatsnew/3.3.rst:2510 msgid "" "The -Q command-line flag and related artifacts have been removed. Code " "checking sys.flags.division_warning will need updating." msgstr "" -#: whatsnew/3.3.rst:2514 +#: whatsnew/3.3.rst:2513 msgid "(:issue:`10998`, contributed by Éric Araujo.)" msgstr "" -#: whatsnew/3.3.rst:2516 +#: whatsnew/3.3.rst:2515 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 "" -#: whatsnew/3.3.rst:2520 +#: whatsnew/3.3.rst:2519 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 index 73da895d..cdce83c8 100644 --- a/whatsnew/3.4.po +++ b/whatsnew/3.4.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -161,9 +161,9 @@ msgstr "" #: 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`)." +"mod:`~email.message.Message` subclass (:class:`~email.message.EmailMessage`) " +"that :ref:`simplify MIME handling ` (:issue:" +"`18891`)." msgstr "" #: whatsnew/3.4.rst:127 @@ -243,7 +243,7 @@ msgstr "" #: 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." +"certificate verification, including hostname matching (:func:`!ssl." "match_hostname`) and CRLs (Certificate Revocation lists, see :func:`ssl." "SSLContext.load_verify_locations`)." msgstr "" @@ -425,7 +425,7 @@ msgstr "" msgid ":pep:`446` -- Make newly created file descriptors non-inheritable" msgstr "" -#: whatsnew/3.4.rst:1811 +#: whatsnew/3.4.rst:1812 msgid "PEP written and implemented by Victor Stinner." msgstr "" @@ -781,7 +781,7 @@ msgstr "" msgid ":pep:`428` -- The pathlib module -- object-oriented filesystem paths" msgstr "" -#: whatsnew/3.4.rst:1834 +#: whatsnew/3.4.rst:1835 msgid "PEP written and implemented by Antoine Pitrou." msgstr "" @@ -891,7 +891,7 @@ msgid "" "Serhiy Storchacha in :issue:`16486`.)" msgstr "" -#: whatsnew/3.4.rst:1542 +#: whatsnew/3.4.rst:1543 msgid "" "The :meth:`!writeframesraw` and :meth:`!writeframes` methods now accept any :" "term:`bytes-like object`. (Contributed by Serhiy Storchaka in :issue:" @@ -1073,10 +1073,11 @@ msgid "" "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::" +"get_instructions` 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 "" #: whatsnew/3.4.rst:748 @@ -1375,22 +1376,23 @@ msgid "" "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`.)" +"`~http.server.BaseHTTPRequestHandler.error_message_format` attribute and " +"sent as the body of the error response. (Contributed by Karl Cow in :issue:" +"`12921`.)" msgstr "" -#: whatsnew/3.4.rst:964 +#: 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 "" -#: whatsnew/3.4.rst:970 +#: whatsnew/3.4.rst:971 msgid "idlelib and IDLE" msgstr "" -#: whatsnew/3.4.rst:972 +#: 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:" @@ -1399,11 +1401,11 @@ msgid "" "the IDLE :menuselection:`Help --> About IDLE` dialog." msgstr "" -#: whatsnew/3.4.rst:980 +#: whatsnew/3.4.rst:981 msgid "importlib" msgstr "" -#: whatsnew/3.4.rst:982 +#: 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 " @@ -1412,7 +1414,7 @@ msgid "" "Snow and Brett Cannon in :issue:`15627`.)" msgstr "" -#: whatsnew/3.4.rst:988 +#: 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 " @@ -1420,14 +1422,14 @@ msgid "" "performance reasons. (Contributed by Brett Cannon in :issue:`18072`.)" msgstr "" -#: whatsnew/3.4.rst:993 +#: 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 "" -#: whatsnew/3.4.rst:997 +#: whatsnew/3.4.rst:998 msgid "" ":mod:`importlib.util` now has a :const:`~importlib.util.MAGIC_NUMBER` " "attribute providing access to the bytecode version number. This replaces " @@ -1435,7 +1437,7 @@ msgid "" "(Contributed by Brett Cannon in :issue:`18192`.)" msgstr "" -#: whatsnew/3.4.rst:1002 +#: 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 " @@ -1443,7 +1445,7 @@ msgid "" "Brett Cannon in :issue:`18194`.)" msgstr "" -#: whatsnew/3.4.rst:1007 +#: 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 -" @@ -1451,7 +1453,7 @@ msgid "" "in :issue:`18058`.)" msgstr "" -#: whatsnew/3.4.rst:1012 +#: 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 " @@ -1459,7 +1461,7 @@ msgid "" "get_source` methods." msgstr "" -#: whatsnew/3.4.rst:1016 +#: whatsnew/3.4.rst:1017 msgid "" ":class:`importlib.machinery.ExtensionFileLoader` now has a :meth:`~importlib." "machinery.ExtensionFileLoader.get_filename` method. This was inadvertently " @@ -1467,11 +1469,11 @@ msgid "" "`19152`.)" msgstr "" -#: whatsnew/3.4.rst:1023 +#: whatsnew/3.4.rst:1024 msgid "inspect" msgstr "" -#: whatsnew/3.4.rst:1025 +#: 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 " @@ -1479,7 +1481,7 @@ msgid "" "Coghlan in :issue:`18626`.)" msgstr "" -#: whatsnew/3.4.rst:1030 +#: 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 " @@ -1487,7 +1489,7 @@ msgid "" "Urban, Aaron Iles and Nick Coghlan in :issue:`13266`.)" msgstr "" -#: whatsnew/3.4.rst:1035 +#: 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__`` " @@ -1495,31 +1497,31 @@ msgid "" "(Contributed by Ethan Furman in :issue:`18929` and :issue:`19030`.)" msgstr "" -#: whatsnew/3.4.rst:1041 +#: 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 " +":func:`~inspect.getfullargspec` and :func:`!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 "" -#: whatsnew/3.4.rst:1052 +#: 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 "" -#: whatsnew/3.4.rst:1058 +#: whatsnew/3.4.rst:1059 msgid "ipaddress" msgstr "" -#: whatsnew/3.4.rst:1060 +#: 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 " @@ -1527,32 +1529,32 @@ msgid "" "the normal standard library requirements to maintain backwards compatibility." msgstr "" -#: whatsnew/3.4.rst:1066 +#: 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 "" -#: whatsnew/3.4.rst:1072 +#: whatsnew/3.4.rst:1073 msgid "logging" msgstr "" -#: whatsnew/3.4.rst:1074 +#: 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 "" -#: whatsnew/3.4.rst:1078 +#: 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 "" -#: whatsnew/3.4.rst:1083 +#: whatsnew/3.4.rst:1084 msgid "" ":func:`~logging.config.fileConfig` now accepts a :class:`configparser." "RawConfigParser` subclass instance for the *fname* parameter. This " @@ -1562,7 +1564,7 @@ msgid "" "fileConfig`. (Contributed by Vinay Sajip in :issue:`16110`.)" msgstr "" -#: whatsnew/3.4.rst:1091 +#: 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 " @@ -1570,11 +1572,11 @@ msgid "" "keyword argument. (Contributed by Vinay Sajip in :issue:`15452`.)" msgstr "" -#: whatsnew/3.4.rst:1100 +#: whatsnew/3.4.rst:1101 msgid "marshal" msgstr "" -#: whatsnew/3.4.rst:1102 +#: 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 " @@ -1587,21 +1589,21 @@ msgid "" "issue:`19219`.)" msgstr "" -#: whatsnew/3.4.rst:1113 +#: whatsnew/3.4.rst:1114 msgid "mmap" msgstr "" -#: whatsnew/3.4.rst:1115 +#: whatsnew/3.4.rst:1116 msgid "" "mmap objects are now :ref:`weakly referenceable `. (Contributed " "by Valerie Lambert in :issue:`4885`.)" msgstr "" -#: whatsnew/3.4.rst:1120 +#: whatsnew/3.4.rst:1121 msgid "multiprocessing" msgstr "" -#: whatsnew/3.4.rst:1124 +#: whatsnew/3.4.rst:1125 msgid "" "On Unix two new :ref:`start methods `, " "``spawn`` and ``forkserver``, have been added for starting processes using :" @@ -1614,7 +1616,7 @@ msgid "" "(Contributed by Richard Oudkerk in :issue:`8713`.)" msgstr "" -#: whatsnew/3.4.rst:1134 +#: 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:" @@ -1627,14 +1629,14 @@ msgid "" "Richard Oudkerk in :issue:`18999`.)" msgstr "" -#: whatsnew/3.4.rst:1144 +#: 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 "" -#: whatsnew/3.4.rst:1148 +#: 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 " @@ -1644,11 +1646,11 @@ msgid "" "(Contributed by Nick Coghlan in :issue:`19946`.)" msgstr "" -#: whatsnew/3.4.rst:1157 +#: whatsnew/3.4.rst:1158 msgid "operator" msgstr "" -#: whatsnew/3.4.rst:1159 +#: 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 " @@ -1656,18 +1658,18 @@ msgid "" "language feature. (Contributed by Armin Ronacher in :issue:`16148`.)" msgstr "" -#: whatsnew/3.4.rst:1164 +#: 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 "" -#: whatsnew/3.4.rst:1170 +#: whatsnew/3.4.rst:1171 msgid "os" msgstr "" -#: whatsnew/3.4.rst:1172 +#: 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:" @@ -1675,7 +1677,7 @@ msgid "" "get_handle_inheritable`, :func:`os.set_handle_inheritable`)." msgstr "" -#: whatsnew/3.4.rst:1177 +#: 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 " @@ -1685,20 +1687,20 @@ msgid "" "`17914`.)" msgstr "" -#: whatsnew/3.4.rst:1183 +#: 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 "" -#: whatsnew/3.4.rst:1187 +#: 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 "" -#: whatsnew/3.4.rst:1190 +#: whatsnew/3.4.rst:1191 msgid "" ":func:`os.open` supports two new flags on platforms that provide them, :" "const:`~os.O_PATH` (un-opened file descriptor), and :const:`~os.O_TMPFILE` " @@ -1708,11 +1710,11 @@ msgid "" "respectively.)" msgstr "" -#: whatsnew/3.4.rst:1198 +#: whatsnew/3.4.rst:1199 msgid "pdb" msgstr "" -#: whatsnew/3.4.rst:1200 +#: 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 " @@ -1720,7 +1722,7 @@ msgid "" "Xavier de Gaye in :issue:`16596`.)" msgstr "" -#: whatsnew/3.4.rst:1205 +#: 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 " @@ -1733,33 +1735,33 @@ msgid "" "(Contributed by Connor Osborn in :issue:`18764`.)" msgstr "" -#: whatsnew/3.4.rst:1219 +#: whatsnew/3.4.rst:1220 msgid "pickle" msgstr "" -#: whatsnew/3.4.rst:1221 +#: 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 " +"classes, very large strings and containers, and classes whose :meth:`~object." +"__new__` method takes keyword-only arguments. It also provides some " "efficiency improvements." msgstr "" -#: whatsnew/3.4.rst:1229 +#: whatsnew/3.4.rst:1230 msgid ":pep:`3154` -- Pickle protocol 4" msgstr "" -#: whatsnew/3.4.rst:1230 +#: whatsnew/3.4.rst:1231 msgid "PEP written by Antoine Pitrou and implemented by Alexandre Vassalotti." msgstr "" -#: whatsnew/3.4.rst:1234 +#: whatsnew/3.4.rst:1235 msgid "plistlib" msgstr "" -#: whatsnew/3.4.rst:1236 +#: 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:" @@ -1770,11 +1772,11 @@ msgid "" "(Contributed by Ronald Oussoren and others in :issue:`14455`.)" msgstr "" -#: whatsnew/3.4.rst:1246 +#: whatsnew/3.4.rst:1247 msgid "poplib" msgstr "" -#: whatsnew/3.4.rst:1248 +#: 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 :" @@ -1783,11 +1785,11 @@ msgid "" "Lorenzo Catucci in :issue:`4473`.)" msgstr "" -#: whatsnew/3.4.rst:1256 +#: whatsnew/3.4.rst:1257 msgid "pprint" msgstr "" -#: whatsnew/3.4.rst:1258 +#: 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 " @@ -1797,27 +1799,27 @@ msgid "" "(Contributed by Serhiy Storchaka in :issue:`19132`.)" msgstr "" -#: whatsnew/3.4.rst:1265 +#: 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 "" -#: whatsnew/3.4.rst:1270 +#: whatsnew/3.4.rst:1271 msgid "pty" msgstr "" -#: whatsnew/3.4.rst:1272 +#: 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 "" -#: whatsnew/3.4.rst:1277 +#: whatsnew/3.4.rst:1278 msgid "pydoc" msgstr "" -#: whatsnew/3.4.rst:1279 +#: 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 " @@ -1826,7 +1828,7 @@ msgid "" "information. (Contributed by Larry Hastings in :issue:`19674`.)" msgstr "" -#: whatsnew/3.4.rst:1285 +#: 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 " @@ -1834,7 +1836,7 @@ msgid "" "issue:`20710`.)" msgstr "" -#: whatsnew/3.4.rst:1290 +#: 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 " @@ -1842,19 +1844,19 @@ msgid "" "`inspect` module." msgstr "" -#: whatsnew/3.4.rst:1295 +#: 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 "" -#: whatsnew/3.4.rst:1300 +#: whatsnew/3.4.rst:1301 msgid "re" msgstr "" -#: whatsnew/3.4.rst:1302 +#: whatsnew/3.4.rst:1303 msgid "" -"New :func:`~re.fullmatch` function and :meth:`.regex.fullmatch` method " +"New :func:`~re.fullmatch` function and :meth:`.Pattern.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 " @@ -1862,7 +1864,7 @@ msgid "" "Barnett in :issue:`16203`.)" msgstr "" -#: whatsnew/3.4.rst:1309 +#: 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 " @@ -1870,11 +1872,11 @@ msgid "" "Lopes Tavares and Serhiy Storchaka in :issue:`13592` and :issue:`17087`.)" msgstr "" -#: whatsnew/3.4.rst:1317 +#: whatsnew/3.4.rst:1318 msgid "resource" msgstr "" -#: whatsnew/3.4.rst:1319 +#: 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 " @@ -1882,7 +1884,7 @@ msgid "" "making the call. (Contributed by Christian Heimes in :issue:`16595`.)" msgstr "" -#: whatsnew/3.4.rst:1324 +#: whatsnew/3.4.rst:1325 msgid "" "On Linux kernel version 2.6.36 or later, there are also some new Linux " "specific constants: :const:`~resource.RLIMIT_MSGQUEUE`, :const:`~resource." @@ -1891,18 +1893,18 @@ msgid "" "Christian Heimes in :issue:`19324`.)" msgstr "" -#: whatsnew/3.4.rst:1330 +#: whatsnew/3.4.rst:1331 msgid "" "On FreeBSD version 9 and later, there some new FreeBSD specific constants: :" "const:`~resource.RLIMIT_SBSIZE`, :const:`~resource.RLIMIT_SWAP`, and :const:" "`~resource.RLIMIT_NPTS`. (Contributed by Claudiu Popa in :issue:`19343`.)" msgstr "" -#: whatsnew/3.4.rst:1337 +#: whatsnew/3.4.rst:1338 msgid "select" msgstr "" -#: whatsnew/3.4.rst:1339 +#: 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` " @@ -1910,29 +1912,29 @@ msgid "" "by Serhiy Storchaka in :issue:`16488`.)" msgstr "" -#: whatsnew/3.4.rst:1344 +#: 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 "" -#: whatsnew/3.4.rst:1351 +#: whatsnew/3.4.rst:1352 msgid "shelve" msgstr "" -#: whatsnew/3.4.rst:1353 +#: 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 "" -#: whatsnew/3.4.rst:1359 +#: whatsnew/3.4.rst:1360 msgid "shutil" msgstr "" -#: whatsnew/3.4.rst:1361 +#: 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 " @@ -1941,11 +1943,11 @@ msgid "" "issue:`1492704`.)" msgstr "" -#: whatsnew/3.4.rst:1369 +#: whatsnew/3.4.rst:1370 msgid "smtpd" msgstr "" -#: whatsnew/3.4.rst:1371 +#: whatsnew/3.4.rst:1372 msgid "" "The :class:`!SMTPServer` and :class:`!SMTPChannel` classes now accept a " "*map* keyword argument which, if specified, is passed in to :class:`!" @@ -1954,11 +1956,11 @@ msgid "" "issue:`11959`.)" msgstr "" -#: whatsnew/3.4.rst:1379 +#: whatsnew/3.4.rst:1380 msgid "smtplib" msgstr "" -#: whatsnew/3.4.rst:1381 +#: 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 " @@ -1966,45 +1968,45 @@ msgid "" "occurred. (Contributed by Ned Jackson Lovely in :issue:`2118`.)" msgstr "" -#: whatsnew/3.4.rst:1388 +#: whatsnew/3.4.rst:1389 msgid "socket" msgstr "" -#: whatsnew/3.4.rst:1390 +#: whatsnew/3.4.rst:1391 msgid "" "The socket module now supports the :const:`~socket.CAN_BCM` protocol on " "platforms that support it. (Contributed by Brian Thorne in :issue:`15359`.)" msgstr "" -#: whatsnew/3.4.rst:1393 +#: 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 "" -#: whatsnew/3.4.rst:1397 +#: 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 "" -#: whatsnew/3.4.rst:1401 +#: whatsnew/3.4.rst:1402 msgid "The :const:`~socket.AF_LINK` constant is now available on BSD and OSX." msgstr "" -#: whatsnew/3.4.rst:1403 +#: 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 "" -#: whatsnew/3.4.rst:1408 +#: whatsnew/3.4.rst:1409 msgid "sqlite3" msgstr "" -#: whatsnew/3.4.rst:1410 +#: 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 " @@ -2012,11 +2014,11 @@ msgid "" "(Contributed by poq in :issue:`13773`.)" msgstr "" -#: whatsnew/3.4.rst:1417 +#: whatsnew/3.4.rst:1418 msgid "ssl" msgstr "" -#: whatsnew/3.4.rst:1421 +#: 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 " @@ -2024,7 +2026,7 @@ msgid "" "Michele Orrù and Antoine Pitrou in :issue:`16692`.)" msgstr "" -#: whatsnew/3.4.rst:1428 +#: 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 " @@ -2038,7 +2040,7 @@ msgid "" "stdlib API. (Contributed by Christian Heimes in :issue:`19689`.)" msgstr "" -#: whatsnew/3.4.rst:1440 +#: whatsnew/3.4.rst:1441 msgid "" ":class:`~ssl.SSLContext` method :meth:`~ssl.SSLContext." "load_verify_locations` accepts a new optional argument *cadata*, which can " @@ -2046,7 +2048,7 @@ msgid "" "bytes, respectively. (Contributed by Christian Heimes in :issue:`18138`.)" msgstr "" -#: whatsnew/3.4.rst:1445 +#: 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." @@ -2055,7 +2057,7 @@ msgid "" "issues. (Contributed by Christian Heimes in :issue:`18143`.)" msgstr "" -#: whatsnew/3.4.rst:1452 +#: 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, " @@ -2065,7 +2067,7 @@ msgid "" "`18147`.)" msgstr "" -#: whatsnew/3.4.rst:1459 +#: 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 " @@ -2076,7 +2078,7 @@ msgid "" "default. (Contributed by Christien Heimes in :issue:`8813`.)" msgstr "" -#: whatsnew/3.4.rst:1467 +#: 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) " @@ -2088,7 +2090,7 @@ msgid "" "by Christian Heimes in :issue:`19292`.)" msgstr "" -#: whatsnew/3.4.rst:1478 +#: 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 " @@ -2096,14 +2098,14 @@ msgid "" "Christian Heimes in :issue:`17134`.)" msgstr "" -#: whatsnew/3.4.rst:1485 +#: 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 "" -#: whatsnew/3.4.rst:1489 +#: whatsnew/3.4.rst:1490 msgid "" "The dictionary returned by :meth:`.SSLSocket.getpeercert` contains " "additional ``X509v3`` extension items: ``crlDistributionPoints``, " @@ -2111,29 +2113,29 @@ msgid "" "issue:`18379`.)" msgstr "" -#: whatsnew/3.4.rst:1495 +#: whatsnew/3.4.rst:1496 msgid "stat" msgstr "" -#: whatsnew/3.4.rst:1497 +#: 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 "" -#: whatsnew/3.4.rst:1501 +#: whatsnew/3.4.rst:1502 msgid "" "The module supports new :mod:`~stat.ST_MODE` flags, :mod:`~stat.S_IFDOOR`, :" "const:`~stat.S_IFPORT`, and :const:`~stat.S_IFWHT`. (Contributed by " "Christian Hiemes in :issue:`11016`.)" msgstr "" -#: whatsnew/3.4.rst:1507 +#: whatsnew/3.4.rst:1508 msgid "struct" msgstr "" -#: whatsnew/3.4.rst:1509 +#: 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 " @@ -2141,35 +2143,35 @@ msgid "" "by Antoine Pitrou in :issue:`17804`.)" msgstr "" -#: whatsnew/3.4.rst:1516 +#: whatsnew/3.4.rst:1517 msgid "subprocess" msgstr "" -#: whatsnew/3.4.rst:1518 +#: 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 "" -#: whatsnew/3.4.rst:1522 +#: whatsnew/3.4.rst:1523 msgid "" -":func:`~subprocess.getstatus` and :func:`~subprocess.getstatusoutput` now " +":func:`~subprocess.getoutput` 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 "" -#: whatsnew/3.4.rst:1528 +#: whatsnew/3.4.rst:1529 msgid "sunau" msgstr "" -#: whatsnew/3.4.rst:1530 +#: whatsnew/3.4.rst:1531 msgid "" "The :meth:`!getparams` method now returns a namedtuple rather than a plain " "tuple. (Contributed by Claudiu Popa in :issue:`18901`.)" msgstr "" -#: whatsnew/3.4.rst:1533 +#: 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 " @@ -2177,18 +2179,18 @@ msgid "" "Storchaka in :issue:`18878`.)" msgstr "" -#: whatsnew/3.4.rst:1538 +#: whatsnew/3.4.rst:1539 msgid "" -":meth:`.AU_write.setsampwidth` now supports 24 bit samples, thus adding " +":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 "" -#: whatsnew/3.4.rst:1548 +#: whatsnew/3.4.rst:1549 msgid "sys" msgstr "" -#: whatsnew/3.4.rst:1550 +#: 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-" @@ -2198,7 +2200,7 @@ msgid "" "in :issue:`13390`.)" msgstr "" -#: whatsnew/3.4.rst:1557 +#: whatsnew/3.4.rst:1558 msgid "" "When the Python interpreter starts in :ref:`interactive mode `, it checks for an :data:`~sys.__interactivehook__` attribute " @@ -2214,11 +2216,11 @@ msgid "" "Araujo and Antoine Pitrou in :issue:`5845`.)" msgstr "" -#: whatsnew/3.4.rst:1572 +#: whatsnew/3.4.rst:1573 msgid "tarfile" msgstr "" -#: whatsnew/3.4.rst:1574 +#: 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 " @@ -2226,11 +2228,11 @@ msgid "" "`13477`.)" msgstr "" -#: whatsnew/3.4.rst:1580 +#: whatsnew/3.4.rst:1581 msgid "textwrap" msgstr "" -#: whatsnew/3.4.rst:1582 +#: 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 " @@ -2244,11 +2246,11 @@ msgid "" "issue:`18725`.)" msgstr "" -#: whatsnew/3.4.rst:1594 +#: whatsnew/3.4.rst:1595 msgid "threading" msgstr "" -#: whatsnew/3.4.rst:1596 +#: 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 " @@ -2256,11 +2258,11 @@ msgid "" "started. (Contributed by Andrew Svetlov in :issue:`18882`.)" msgstr "" -#: whatsnew/3.4.rst:1603 +#: whatsnew/3.4.rst:1604 msgid "traceback" msgstr "" -#: whatsnew/3.4.rst:1605 +#: 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 " @@ -2268,32 +2270,32 @@ msgid "" "`1565525`.)" msgstr "" -#: whatsnew/3.4.rst:1612 +#: whatsnew/3.4.rst:1613 msgid "types" msgstr "" -#: whatsnew/3.4.rst:1614 +#: 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` " +"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 "" -#: whatsnew/3.4.rst:1623 +#: whatsnew/3.4.rst:1624 msgid "urllib" msgstr "" -#: whatsnew/3.4.rst:1625 +#: 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 "" -#: whatsnew/3.4.rst:1629 +#: 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." @@ -2301,7 +2303,7 @@ msgid "" "issue:`18978`.)" msgstr "" -#: whatsnew/3.4.rst:1634 +#: 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` " @@ -2316,7 +2318,7 @@ msgid "" "`17485`, and Damien Brecht and Senthil Kumaran in :issue:`17272`.)" msgstr "" -#: whatsnew/3.4.rst:1647 +#: 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 " @@ -2324,11 +2326,11 @@ msgid "" "`15701`.)" msgstr "" -#: whatsnew/3.4.rst:1654 +#: whatsnew/3.4.rst:1655 msgid "unittest" msgstr "" -#: whatsnew/3.4.rst:1656 +#: 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` " @@ -2339,7 +2341,7 @@ msgid "" "of which will run even if one or more of them fail. For example::" msgstr "" -#: whatsnew/3.4.rst:1664 +#: whatsnew/3.4.rst:1665 msgid "" "class NumbersTest(unittest.TestCase):\n" " def test_even(self):\n" @@ -2348,7 +2350,7 @@ msgid "" " self.assertEqual(i % 2, 0)" msgstr "" -#: whatsnew/3.4.rst:1670 +#: 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 " @@ -2356,28 +2358,28 @@ msgid "" "version of this example. (Contributed by Antoine Pitrou in :issue:`16997`.)" msgstr "" -#: whatsnew/3.4.rst:1675 +#: 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 "" -#: whatsnew/3.4.rst:1679 +#: 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 "" -#: whatsnew/3.4.rst:1683 +#: 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 "" -#: whatsnew/3.4.rst:1687 +#: 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 " @@ -2388,7 +2390,7 @@ msgid "" "Wardill, Matt McClure, and Andrew Svetlov in :issue:`11798`.)" msgstr "" -#: whatsnew/3.4.rst:1695 +#: 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:" @@ -2400,13 +2402,13 @@ msgid "" "in :issue:`18937`.)" msgstr "" -#: whatsnew/3.4.rst:1704 +#: whatsnew/3.4.rst:1705 msgid "" "Test discovery now works with namespace packages (Contributed by Claudiu " "Popa in :issue:`17457`.)" msgstr "" -#: whatsnew/3.4.rst:1707 +#: 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 " @@ -2414,23 +2416,23 @@ msgid "" "Pitrou in :issue:`17015`.)" msgstr "" -#: whatsnew/3.4.rst:1712 +#: whatsnew/3.4.rst:1713 msgid "" -":func:`~mock.mock_open` objects now have ``readline`` and ``readlines`` " -"methods. (Contributed by Toshio Kuratomi in :issue:`17467`.)" +":func:`~unittest.mock.mock_open` objects now have ``readline`` and " +"``readlines`` methods. (Contributed by Toshio Kuratomi in :issue:`17467`.)" msgstr "" -#: whatsnew/3.4.rst:1717 +#: whatsnew/3.4.rst:1718 msgid "venv" msgstr "" -#: whatsnew/3.4.rst:1719 +#: 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 "" -#: whatsnew/3.4.rst:1722 +#: 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 " @@ -2439,47 +2441,47 @@ msgid "" "issue:`19552` as part of the :pep:`453` implementation.)" msgstr "" -#: whatsnew/3.4.rst:1730 +#: whatsnew/3.4.rst:1731 msgid "wave" msgstr "" -#: whatsnew/3.4.rst:1732 +#: 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`.)" +"The :meth:`~wave.Wave_read.getparams` method now returns a namedtuple rather " +"than a plain tuple. (Contributed by Claudiu Popa in :issue:`17487`.)" msgstr "" -#: whatsnew/3.4.rst:1735 +#: whatsnew/3.4.rst:1736 msgid "" ":meth:`wave.open` now supports the context management protocol. " "(Contributed by Claudiu Popa in :issue:`17616`.)" msgstr "" -#: whatsnew/3.4.rst:1738 +#: 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 "" -#: whatsnew/3.4.rst:1742 +#: 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 "" -#: whatsnew/3.4.rst:1748 +#: whatsnew/3.4.rst:1749 msgid "weakref" msgstr "" -#: whatsnew/3.4.rst:1750 +#: 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 "" -#: whatsnew/3.4.rst:1753 +#: 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 " @@ -2487,18 +2489,18 @@ msgid "" "(Contributed by Richard Oudkerk in :issue:`15528`.)" msgstr "" -#: whatsnew/3.4.rst:1758 +#: 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 "" -#: whatsnew/3.4.rst:1764 +#: whatsnew/3.4.rst:1765 msgid "xml.etree" msgstr "" -#: whatsnew/3.4.rst:1766 +#: 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 :" @@ -2506,7 +2508,7 @@ msgid "" "`17741`.)" msgstr "" -#: whatsnew/3.4.rst:1771 +#: 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:" @@ -2518,11 +2520,11 @@ msgid "" "Storchaka in :issue:`14377`.)" msgstr "" -#: whatsnew/3.4.rst:1782 +#: whatsnew/3.4.rst:1783 msgid "zipfile" msgstr "" -#: whatsnew/3.4.rst:1784 +#: 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 " @@ -2531,44 +2533,44 @@ msgid "" "Christian Tismer in :issue:`19274`.)" msgstr "" -#: whatsnew/3.4.rst:1790 +#: 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 :" +"PyZipFile` is now ``True`` by default. (Contributed by William Mallard in :" "issue:`17201`.)" msgstr "" -#: whatsnew/3.4.rst:1797 +#: whatsnew/3.4.rst:1798 msgid "CPython Implementation Changes" msgstr "" -#: whatsnew/3.4.rst:1803 +#: whatsnew/3.4.rst:1804 msgid "PEP 445: Customization of CPython Memory Allocators" msgstr "" -#: whatsnew/3.4.rst:1805 +#: whatsnew/3.4.rst:1806 msgid "" ":pep:`445` adds new C level interfaces to customize memory allocation in the " "CPython interpreter." msgstr "" -#: whatsnew/3.4.rst:1810 +#: whatsnew/3.4.rst:1811 msgid ":pep:`445` -- Add new APIs to customize Python memory allocators" msgstr "" -#: whatsnew/3.4.rst:1817 +#: whatsnew/3.4.rst:1818 msgid "PEP 442: Safe Object Finalization" msgstr "" -#: whatsnew/3.4.rst:1819 +#: 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." +"in CPython. With it, objects with :meth:`~object.__del__` methods, as well " +"as generators with :keyword:`finally` clauses, can be finalized when they " +"are part of a reference cycle." msgstr "" -#: whatsnew/3.4.rst:1824 +#: 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 " @@ -2577,15 +2579,15 @@ msgid "" "that have plagued Python since the cyclic GC was first introduced." msgstr "" -#: whatsnew/3.4.rst:1833 +#: whatsnew/3.4.rst:1834 msgid ":pep:`442` -- Safe object finalization" msgstr "" -#: whatsnew/3.4.rst:1840 +#: whatsnew/3.4.rst:1841 msgid "PEP 456: Secure and Interchangeable Hash Algorithm" msgstr "" -#: whatsnew/3.4.rst:1842 +#: 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 " @@ -2597,18 +2599,18 @@ msgid "" "comparison with the older FNV algorithm are trivial." msgstr "" -#: whatsnew/3.4.rst:1851 +#: whatsnew/3.4.rst:1852 msgid "" "The PEP adds additional fields to the :data:`sys.hash_info` named tuple to " "describe the hash algorithm in use by the currently executing binary. " "Otherwise, the PEP does not alter any existing CPython APIs." msgstr "" -#: whatsnew/3.4.rst:1859 +#: whatsnew/3.4.rst:1860 msgid "PEP 436: Argument Clinic" msgstr "" -#: whatsnew/3.4.rst:1861 +#: 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 " @@ -2616,21 +2618,21 @@ msgid "" "in C." msgstr "" -#: whatsnew/3.4.rst:1866 +#: 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 "" -#: whatsnew/3.4.rst:1870 +#: 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 "" -#: whatsnew/3.4.rst:1875 +#: 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 " @@ -2638,26 +2640,26 @@ msgid "" "available as a public API for third party use in Python 3.4." msgstr "" -#: whatsnew/3.4.rst:1882 +#: whatsnew/3.4.rst:1883 msgid ":pep:`436` -- The Argument Clinic DSL" msgstr "" -#: whatsnew/3.4.rst:1883 +#: whatsnew/3.4.rst:1884 msgid "PEP written and implemented by Larry Hastings." msgstr "" -#: whatsnew/3.4.rst:1887 +#: whatsnew/3.4.rst:1888 msgid "Other Build and C API Changes" msgstr "" -#: whatsnew/3.4.rst:1889 +#: 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 "" -#: whatsnew/3.4.rst:1893 +#: 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 " @@ -2665,34 +2667,34 @@ msgid "" "by Bastien Montagne and Nick Coghlan in :issue:`16129`.)" msgstr "" -#: whatsnew/3.4.rst:1898 +#: 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 "" -#: whatsnew/3.4.rst:1902 +#: 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 "" -#: whatsnew/3.4.rst:1905 +#: 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 "" -#: whatsnew/3.4.rst:1909 +#: 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 "" -#: whatsnew/3.4.rst:1913 +#: 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 " @@ -2700,7 +2702,7 @@ msgid "" "`18596`.)" msgstr "" -#: whatsnew/3.4.rst:1918 +#: whatsnew/3.4.rst:1919 msgid "" "The Windows build now uses `Address Space Layout Randomization `_ and `Data Execution " @@ -2708,17 +2710,17 @@ msgid "" "(Contributed by Christian Heimes in :issue:`16632`.)" msgstr "" -#: whatsnew/3.4.rst:1923 +#: 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 "" -#: whatsnew/3.4.rst:1931 +#: whatsnew/3.4.rst:1932 msgid "Other Improvements" msgstr "" -#: whatsnew/3.4.rst:1935 +#: whatsnew/3.4.rst:1936 msgid "" "The :ref:`python ` command has a new :ref:`option `, ``-I``, which causes it to run in \"isolated mode\", " @@ -2732,7 +2734,7 @@ msgid "" "scripts. (Contributed by Christian Heimes in :issue:`16499`.)" msgstr "" -#: whatsnew/3.4.rst:1946 +#: 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, " @@ -2740,7 +2742,7 @@ msgid "" "(Contributed by Antoine Pitrou and Éric Araujo in :issue:`5845`.)" msgstr "" -#: whatsnew/3.4.rst:1951 +#: 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 " @@ -2748,7 +2750,7 @@ msgid "" "have script-like invocation capabilities (:issue:`18922`)." msgstr "" -#: whatsnew/3.4.rst:1956 +#: 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 " @@ -2756,7 +2758,7 @@ msgid "" "py`` extension. (Contributed by Paul Moore in :issue:`18569`.)" msgstr "" -#: whatsnew/3.4.rst:1961 +#: whatsnew/3.4.rst:1962 msgid "" "A new ``make`` target `coverage-report `_ will build python, run " @@ -2764,32 +2766,32 @@ msgid "" "using ``gcov`` and `lcov `_." msgstr "" -#: whatsnew/3.4.rst:1967 +#: 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 "" -#: whatsnew/3.4.rst:1972 +#: whatsnew/3.4.rst:1973 msgid "``python -m`` now works with namespace packages." msgstr "" -#: whatsnew/3.4.rst:1974 +#: 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 "" -#: whatsnew/3.4.rst:1978 +#: 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 "" -#: whatsnew/3.4.rst:1982 +#: 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 " @@ -2797,21 +2799,21 @@ msgid "" "issue:`17853`.)" msgstr "" -#: whatsnew/3.4.rst:1987 +#: 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 "" -#: whatsnew/3.4.rst:1991 +#: 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 "" -#: whatsnew/3.4.rst:1995 +#: 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. " @@ -2819,7 +2821,7 @@ msgid "" "implementation.)" msgstr "" -#: whatsnew/3.4.rst:2000 +#: 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 " @@ -2827,24 +2829,24 @@ msgid "" "Serhiy Storchaka in :issue:`18818`.)" msgstr "" -#: whatsnew/3.4.rst:2005 +#: 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 "" -#: whatsnew/3.4.rst:2011 +#: whatsnew/3.4.rst:2012 msgid "Significant Optimizations" msgstr "" -#: whatsnew/3.4.rst:2013 +#: whatsnew/3.4.rst:2014 msgid "" "The UTF-32 decoder is now 3x to 4x faster. (Contributed by Serhiy Storchaka " "in :issue:`14625`.)" msgstr "" -#: whatsnew/3.4.rst:2016 +#: 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 " @@ -2857,7 +2859,7 @@ msgid "" "Raymond Hettinger in :issue:`18771`.)" msgstr "" -#: whatsnew/3.4.rst:2027 +#: 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:" @@ -2868,59 +2870,59 @@ msgid "" "`19209`, :issue:`19205` and :issue:`9548`.)" msgstr "" -#: whatsnew/3.4.rst:2035 +#: 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 "" -#: whatsnew/3.4.rst:2039 +#: 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 "" -#: whatsnew/3.4.rst:2042 +#: 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 "" -#: whatsnew/3.4.rst:2046 +#: whatsnew/3.4.rst:2047 msgid "" -"A performance issue in :meth:`io.FileIO.readall` has been solved. This " +"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 "" -#: whatsnew/3.4.rst:2051 +#: whatsnew/3.4.rst:2052 msgid "" ":func:`html.escape` is now 10x faster. (Contributed by Matt Bryant in :" "issue:`18020`.)" msgstr "" -#: whatsnew/3.4.rst:2054 +#: 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 "" -#: whatsnew/3.4.rst:2058 +#: 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 "" -#: whatsnew/3.4.rst:2066 +#: whatsnew/3.4.rst:2067 msgid "Deprecated" msgstr "" -#: whatsnew/3.4.rst:2068 +#: 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 " @@ -2929,11 +2931,11 @@ msgid "" "enabled (for example, by using ``-Wd``)." msgstr "" -#: whatsnew/3.4.rst:2076 +#: whatsnew/3.4.rst:2077 msgid "Deprecations in the Python API" msgstr "" -#: whatsnew/3.4.rst:2078 +#: 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 " @@ -2956,61 +2958,61 @@ msgid "" "now handled automatically by the import system." msgstr "" -#: whatsnew/3.4.rst:2103 +#: 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 "" -#: whatsnew/3.4.rst:2106 +#: whatsnew/3.4.rst:2107 msgid "" -"The :mod:`formatter` module is pending deprecation and is slated for removal " -"in Python 3.6." +"The :mod:`!formatter` module is pending deprecation and is slated for " +"removal in Python 3.6." msgstr "" -#: whatsnew/3.4.rst:2109 +#: 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 "" -#: whatsnew/3.4.rst:2113 +#: 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 "" -#: whatsnew/3.4.rst:2117 +#: 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 "" -#: whatsnew/3.4.rst:2121 +#: whatsnew/3.4.rst:2122 msgid "" "The *strict* argument of :class:`~html.parser.HTMLParser` is deprecated." msgstr "" -#: whatsnew/3.4.rst:2123 +#: 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." +"The :mod:`plistlib` :func:`!readPlist`, :func:`!writePlist`, :func:`!" +"readPlistFromBytes`, and :func:`!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:`!Data` is deprecated in favor of just using the :class:`bytes` " +"constructor." msgstr "" -#: whatsnew/3.4.rst:2130 +#: whatsnew/3.4.rst:2131 msgid "" "The :mod:`sysconfig` key ``SO`` is deprecated, it has been replaced by " "``EXT_SUFFIX``." msgstr "" -#: whatsnew/3.4.rst:2133 +#: 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 " @@ -3018,7 +3020,7 @@ msgid "" "argument." msgstr "" -#: whatsnew/3.4.rst:2138 +#: 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." @@ -3026,97 +3028,97 @@ msgid "" "``XMLParser`` should be passed by keyword." msgstr "" -#: whatsnew/3.4.rst:2145 +#: whatsnew/3.4.rst:2146 msgid "Deprecated Features" msgstr "" -#: whatsnew/3.4.rst:2147 +#: 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 "" -#: whatsnew/3.4.rst:2150 +#: 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 "" -#: whatsnew/3.4.rst:2156 +#: whatsnew/3.4.rst:2157 msgid "Removed" msgstr "" -#: whatsnew/3.4.rst:2160 +#: whatsnew/3.4.rst:2161 msgid "Operating Systems No Longer Supported" msgstr "" -#: whatsnew/3.4.rst:2162 +#: whatsnew/3.4.rst:2163 msgid "" "Support for the following operating systems has been removed from the source " "and build tools:" msgstr "" -#: whatsnew/3.4.rst:2165 +#: whatsnew/3.4.rst:2166 msgid "OS/2 (:issue:`16135`)." msgstr "" -#: whatsnew/3.4.rst:2166 +#: whatsnew/3.4.rst:2167 msgid "Windows 2000 (changeset e52df05b496a)." msgstr "" -#: whatsnew/3.4.rst:2167 +#: whatsnew/3.4.rst:2168 msgid "" "Windows systems where ``COMSPEC`` points to ``command.com`` (:issue:`14470`)." msgstr "" -#: whatsnew/3.4.rst:2168 +#: whatsnew/3.4.rst:2169 msgid "VMS (:issue:`16136`)." msgstr "" -#: whatsnew/3.4.rst:2172 +#: whatsnew/3.4.rst:2173 msgid "API and Feature Removals" msgstr "" -#: whatsnew/3.4.rst:2174 +#: whatsnew/3.4.rst:2175 msgid "" "The following obsolete and previously deprecated APIs and features have been " "removed:" msgstr "" -#: whatsnew/3.4.rst:2177 +#: 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 "" -#: whatsnew/3.4.rst:2181 +#: 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 "" -#: whatsnew/3.4.rst:2184 +#: 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 "" -#: whatsnew/3.4.rst:2188 +#: whatsnew/3.4.rst:2189 msgid "" "``PyLoader`` and ``PyPycLoader`` have been removed from :mod:`importlib`. " "(Contributed by Taras Lyapun in :issue:`15641`.)" msgstr "" -#: whatsnew/3.4.rst:2191 +#: 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 "" -#: whatsnew/3.4.rst:2195 +#: 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``, " @@ -3124,19 +3126,19 @@ msgid "" "``is_unverifiable`` have been removed (use direct attribute access instead)." msgstr "" -#: whatsnew/3.4.rst:2200 +#: 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 "" -#: whatsnew/3.4.rst:2203 +#: whatsnew/3.4.rst:2204 msgid "" ":class:`inspect.Signature`: positional-only parameters are now required to " "have a valid name." msgstr "" -#: whatsnew/3.4.rst:2206 +#: 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 " @@ -3148,25 +3150,25 @@ msgid "" "`7994` for background." msgstr "" -#: whatsnew/3.4.rst:2215 +#: whatsnew/3.4.rst:2216 msgid "" -":meth:`difflib.SequenceMatcher.isbjunk` and :meth:`difflib.SequenceMatcher." +":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 "" -#: whatsnew/3.4.rst:2223 +#: whatsnew/3.4.rst:2224 msgid "Code Cleanups" msgstr "" -#: whatsnew/3.4.rst:2225 +#: whatsnew/3.4.rst:2226 msgid "" "The unused and undocumented internal ``Scanner`` class has been removed from " "the :mod:`pydoc` module." msgstr "" -#: whatsnew/3.4.rst:2228 +#: 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``, " @@ -3174,27 +3176,27 @@ msgid "" "called on badly broken OSX systems (see :issue:`18393`)." msgstr "" -#: whatsnew/3.4.rst:2233 +#: 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 "" -#: whatsnew/3.4.rst:2239 +#: whatsnew/3.4.rst:2240 msgid "Porting to Python 3.4" msgstr "" -#: whatsnew/3.4.rst:2241 +#: whatsnew/3.4.rst:2242 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: whatsnew/3.4.rst:2246 +#: whatsnew/3.4.rst:2247 msgid "Changes in 'python' Command Behavior" msgstr "" -#: whatsnew/3.4.rst:2248 +#: 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 :" @@ -3205,25 +3207,25 @@ msgid "" "for :envvar:`PATH`." msgstr "" -#: whatsnew/3.4.rst:2256 +#: 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 "" -#: whatsnew/3.4.rst:2260 +#: 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 "" -#: whatsnew/3.4.rst:2266 +#: whatsnew/3.4.rst:2267 msgid "Changes in the Python API" msgstr "" -#: whatsnew/3.4.rst:2268 +#: 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:" @@ -3232,7 +3234,7 @@ msgid "" "catch both :exc:`NotImplementedError` or the appropriate exception as needed." msgstr "" -#: whatsnew/3.4.rst:2274 +#: whatsnew/3.4.rst:2275 msgid "" "The module type now initializes the :attr:`~module.__package__` and :attr:" "`~module.__loader__` attributes to ``None`` by default. To determine if " @@ -3240,15 +3242,15 @@ msgid "" "``getattr(module, '__loader__', None) is not None``. (:issue:`17115`.)" msgstr "" -#: whatsnew/3.4.rst:2280 +#: whatsnew/3.4.rst:2281 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." +"use :func:`!importlib.util.module_to_load` for module management." msgstr "" -#: whatsnew/3.4.rst:2285 +#: whatsnew/3.4.rst:2286 msgid "" "Import now resets relevant attributes (e.g. ``__name__``, ``__loader__``, " "``__package__``, ``__file__``, ``__cached__``) unconditionally when " @@ -3256,7 +3258,7 @@ msgid "" "module is re-found when re-loaded (:issue:`19413`)." msgstr "" -#: whatsnew/3.4.rst:2290 +#: whatsnew/3.4.rst:2291 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 " @@ -3266,7 +3268,7 @@ msgid "" "'__path__')`` (:issue:`18065`)." msgstr "" -#: whatsnew/3.4.rst:2297 +#: whatsnew/3.4.rst:2298 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 " @@ -3277,7 +3279,7 @@ msgid "" "use :func:`!imp.is_frozen`." msgstr "" -#: whatsnew/3.4.rst:2305 +#: whatsnew/3.4.rst:2306 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 " @@ -3285,7 +3287,7 @@ msgid "" "regardless of what type of file path they were originally." msgstr "" -#: whatsnew/3.4.rst:2310 +#: whatsnew/3.4.rst:2311 msgid "" ":meth:`importlib.abc.SourceLoader.get_source` no longer raises :exc:" "`ImportError` when the source code being loaded triggers a :exc:" @@ -3297,7 +3299,7 @@ msgid "" "exceptions now." msgstr "" -#: whatsnew/3.4.rst:2319 +#: whatsnew/3.4.rst:2320 msgid "" ":func:`functools.update_wrapper` and :func:`functools.wraps` now correctly " "set the ``__wrapped__`` attribute to the function being wrapped, even if " @@ -3309,7 +3311,7 @@ msgid "" "function in the chain that has no ``__wrapped__`` attribute." msgstr "" -#: whatsnew/3.4.rst:2329 +#: whatsnew/3.4.rst:2330 msgid "" ":func:`inspect.getfullargspec` has been reimplemented on top of :func:" "`inspect.signature` and hence handles a much wider variety of callable " @@ -3319,7 +3321,7 @@ msgid "" "will fail on non-Python callables may need to be adjusted accordingly." msgstr "" -#: whatsnew/3.4.rst:2337 +#: whatsnew/3.4.rst:2338 msgid "" ":class:`importlib.machinery.PathFinder` now passes on the current working " "directory to objects in :data:`sys.path_hooks` for the empty string. This " @@ -3333,7 +3335,7 @@ msgid "" "`18416`)." msgstr "" -#: whatsnew/3.4.rst:2348 +#: whatsnew/3.4.rst:2349 msgid "" "The removal of the *strict* argument to :class:`~http.client.HTTPConnection` " "and :class:`~http.client.HTTPSConnection` changes the meaning of the " @@ -3342,7 +3344,7 @@ msgid "" "should already be specifying any additional arguments via keywords." msgstr "" -#: whatsnew/3.4.rst:2354 +#: whatsnew/3.4.rst:2355 msgid "" "Strings between ``from __future__ import ...`` statements now *always* raise " "a :exc:`SyntaxError`. Previously if there was no leading docstring, an " @@ -3351,7 +3353,7 @@ msgid "" "`17434`)." msgstr "" -#: whatsnew/3.4.rst:2360 +#: whatsnew/3.4.rst:2361 msgid "" ":meth:`ssl.SSLSocket.getpeercert` and :meth:`ssl.SSLSocket.do_handshake` now " "raise an :exc:`OSError` with ``ENOTCONN`` when the ``SSLSocket`` is not " @@ -3360,7 +3362,7 @@ msgid "" "raise a :exc:`ValueError` if the handshake has not yet been done." msgstr "" -#: whatsnew/3.4.rst:2366 +#: whatsnew/3.4.rst:2367 msgid "" ":func:`base64.b32decode` now raises a :exc:`binascii.Error` when the input " "string contains non-b32-alphabet characters, instead of a :exc:`TypeError`. " @@ -3369,7 +3371,7 @@ msgid "" "`18011`.) Note: this change was also inadvertently applied in Python 3.3.3." msgstr "" -#: whatsnew/3.4.rst:2373 +#: whatsnew/3.4.rst:2374 msgid "" "The :attr:`!file` attribute is now automatically closed when the creating :" "class:`!cgi.FieldStorage` instance is garbage collected. If you were pulling " @@ -3379,14 +3381,14 @@ msgid "" "the :class:`!cgi.FieldStorage` instance is garbage collected." msgstr "" -#: whatsnew/3.4.rst:2380 +#: whatsnew/3.4.rst:2381 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 "" -#: whatsnew/3.4.rst:2384 +#: whatsnew/3.4.rst:2385 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 :" @@ -3394,7 +3396,7 @@ msgid "" "values (:issue:`14794`)." msgstr "" -#: whatsnew/3.4.rst:2389 +#: whatsnew/3.4.rst:2390 msgid "" "The :class:`complex` constructor, unlike the :mod:`cmath` functions, was " "incorrectly accepting :class:`float` values if an object's ``__complex__`` " @@ -3402,21 +3404,21 @@ msgid "" "`16290`.)" msgstr "" -#: whatsnew/3.4.rst:2394 +#: whatsnew/3.4.rst:2395 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 "" -#: whatsnew/3.4.rst:2398 +#: whatsnew/3.4.rst:2399 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 "" -#: whatsnew/3.4.rst:2402 +#: whatsnew/3.4.rst:2403 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 " @@ -3424,21 +3426,21 @@ msgid "" "storage). (:issue:`17094`.)" msgstr "" -#: whatsnew/3.4.rst:2407 +#: whatsnew/3.4.rst:2408 msgid "" "Parameter names in ``__annotations__`` dicts are now mangled properly, " "similarly to :attr:`~function.__kwdefaults__`. (Contributed by Yury " "Selivanov in :issue:`20625`.)" msgstr "" -#: whatsnew/3.4.rst:2411 +#: whatsnew/3.4.rst:2412 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 "" -#: whatsnew/3.4.rst:2415 +#: whatsnew/3.4.rst:2416 msgid "" "Because :mod:`unittest.TestSuite` now drops references to tests after they " "are run, test harnesses that reuse a :class:`~unittest.TestSuite` to re-run " @@ -3451,7 +3453,7 @@ msgid "" "__iter__`) (:issue:`11798`)." msgstr "" -#: whatsnew/3.4.rst:2425 +#: whatsnew/3.4.rst:2426 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 " @@ -3460,23 +3462,23 @@ msgid "" "use." msgstr "" -#: whatsnew/3.4.rst:2430 +#: whatsnew/3.4.rst:2431 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 " +"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 "" -#: whatsnew/3.4.rst:2437 +#: whatsnew/3.4.rst:2438 msgid "" ":mod:`!audioop` functions now raise an error immediately if passed string " "input, instead of failing randomly later on (:issue:`16685`)." msgstr "" -#: whatsnew/3.4.rst:2440 +#: whatsnew/3.4.rst:2441 msgid "" "The new *convert_charrefs* argument to :class:`~html.parser.HTMLParser` " "currently defaults to ``False`` for backward compatibility, but will " @@ -3485,14 +3487,14 @@ msgid "" "HTMLParser` calls in your code (:issue:`13633`)." msgstr "" -#: whatsnew/3.4.rst:2446 +#: whatsnew/3.4.rst:2447 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 "" -#: whatsnew/3.4.rst:2450 +#: whatsnew/3.4.rst:2451 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 " @@ -3500,7 +3502,7 @@ msgid "" "``SHLIB_SUFFIX``, depending on the context (:issue:`19555`)." msgstr "" -#: whatsnew/3.4.rst:2455 +#: whatsnew/3.4.rst:2456 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. " @@ -3510,13 +3512,13 @@ msgid "" "`15204`)." msgstr "" -#: whatsnew/3.4.rst:2462 +#: whatsnew/3.4.rst:2463 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 "" -#: whatsnew/3.4.rst:2466 +#: whatsnew/3.4.rst:2467 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 " @@ -3525,7 +3527,7 @@ msgid "" "output (:issue:`16333`)." msgstr "" -#: whatsnew/3.4.rst:2472 +#: whatsnew/3.4.rst:2473 msgid "" ":mod:`doctest` now looks for doctests in extension module ``__doc__`` " "strings, so if your doctest test discovery includes extension modules that " @@ -3533,7 +3535,7 @@ msgid "" "never seen before when running your tests (:issue:`3158`)." msgstr "" -#: whatsnew/3.4.rst:2477 +#: whatsnew/3.4.rst:2478 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 " @@ -3543,11 +3545,11 @@ msgid "" "`20784`)." msgstr "" -#: whatsnew/3.4.rst:2486 +#: whatsnew/3.4.rst:2487 msgid "Changes in the C API" msgstr "" -#: whatsnew/3.4.rst:2488 +#: whatsnew/3.4.rst:2489 msgid "" ":c:func:`PyEval_EvalFrameEx`, :c:func:`PyObject_Repr`, and :c:func:" "`PyObject_Str`, along with some other internal C APIs, now include a " @@ -3561,14 +3563,14 @@ msgid "" "version of Python that is compiled with assertions enabled." msgstr "" -#: whatsnew/3.4.rst:2500 +#: whatsnew/3.4.rst:2501 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 "" -#: whatsnew/3.4.rst:2504 +#: whatsnew/3.4.rst:2505 msgid "" "The result of the :c:data:`PyOS_ReadlineFunctionPointer` callback must now " "be a string allocated by :c:func:`PyMem_RawMalloc` or :c:func:" @@ -3577,30 +3579,30 @@ msgid "" "`16742`)" msgstr "" -#: whatsnew/3.4.rst:2510 +#: whatsnew/3.4.rst:2511 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 "" -#: whatsnew/3.4.rst:2514 +#: whatsnew/3.4.rst:2515 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 "" -#: whatsnew/3.4.rst:2519 +#: whatsnew/3.4.rst:2520 msgid "Changed in 3.4.3" msgstr "" -#: whatsnew/3.4.rst:2524 +#: whatsnew/3.4.rst:2525 msgid "" "PEP 476: Enabling certificate verification by default for stdlib http clients" msgstr "" -#: whatsnew/3.4.rst:2526 +#: whatsnew/3.4.rst:2527 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 " @@ -3609,13 +3611,13 @@ msgid "" "improving security for many applications." msgstr "" -#: whatsnew/3.4.rst:2532 +#: whatsnew/3.4.rst:2533 msgid "" "For applications which require the old previous behavior, they can pass an " "alternate context::" msgstr "" -#: whatsnew/3.4.rst:2535 +#: whatsnew/3.4.rst:2536 msgid "" "import urllib.request\n" "import ssl\n" diff --git a/whatsnew/3.5.po b/whatsnew/3.5.po index d2fd0846..baac75cc 100644 --- a/whatsnew/3.5.po +++ b/whatsnew/3.5.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -252,7 +252,7 @@ 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." +"defining the :meth:`~object.__await__` method." msgstr "" #: whatsnew/3.5.rst:186 @@ -370,38 +370,38 @@ msgstr "" 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." +"can be implemented by defining :meth:`~object.__matmul__`, :meth:`~object." +"__rmatmul__`, and :meth:`~object.__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 "" -#: whatsnew/3.5.rst:281 +#: whatsnew/3.5.rst:282 msgid "" "Matrix multiplication is a notably common operation in many fields of " "mathematics, science, engineering, and the addition of ``@`` allows writing " "cleaner code::" msgstr "" -#: whatsnew/3.5.rst:285 +#: whatsnew/3.5.rst:286 msgid "S = (H @ beta - r).T @ inv(H @ V @ H.T) @ (H @ beta - r)" msgstr "" -#: whatsnew/3.5.rst:287 +#: whatsnew/3.5.rst:288 msgid "instead of::" msgstr "" -#: whatsnew/3.5.rst:289 +#: whatsnew/3.5.rst:290 msgid "" "S = dot((dot(H, beta) - r).T,\n" " dot(inv(dot(dot(H, V), H.T)), dot(H, beta) - r))" msgstr "" -#: whatsnew/3.5.rst:292 +#: whatsnew/3.5.rst:293 msgid "NumPy 1.10 has support for the new operator::" msgstr "" -#: whatsnew/3.5.rst:294 +#: whatsnew/3.5.rst:295 msgid "" ">>> import numpy\n" "\n" @@ -419,26 +419,26 @@ msgid "" "array([ 1., 1., 1.])" msgstr "" -#: whatsnew/3.5.rst:312 +#: whatsnew/3.5.rst:313 msgid ":pep:`465` -- A dedicated infix operator for matrix multiplication" msgstr "" -#: whatsnew/3.5.rst:313 +#: whatsnew/3.5.rst:314 msgid "PEP written by Nathaniel J. Smith; implemented by Benjamin Peterson." msgstr "" -#: whatsnew/3.5.rst:319 +#: whatsnew/3.5.rst:320 msgid "PEP 448 - Additional Unpacking Generalizations" msgstr "" -#: whatsnew/3.5.rst:321 +#: whatsnew/3.5.rst:322 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 "" -#: whatsnew/3.5.rst:325 +#: whatsnew/3.5.rst:326 msgid "" ">>> print(*[1], *[2], 3, *[4, 5])\n" "1 2 3 4 5\n" @@ -451,13 +451,13 @@ msgid "" "1 2 3 4" msgstr "" -#: whatsnew/3.5.rst:335 +#: whatsnew/3.5.rst:336 msgid "" "Similarly, tuple, list, set, and dictionary displays allow multiple " "unpackings (see :ref:`exprlists` and :ref:`dict`)::" msgstr "" -#: whatsnew/3.5.rst:338 +#: whatsnew/3.5.rst:339 msgid "" ">>> *range(4), 4\n" "(0, 1, 2, 3, 4)\n" @@ -472,27 +472,27 @@ msgid "" "{'x': 1, 'y': 2}" msgstr "" -#: whatsnew/3.5.rst:352 +#: whatsnew/3.5.rst:353 msgid ":pep:`448` -- Additional Unpacking Generalizations" msgstr "" -#: whatsnew/3.5.rst:353 +#: whatsnew/3.5.rst:354 msgid "" "PEP written by Joshua Landau; implemented by Neil Girdhar, Thomas Wouters, " "and Joshua Landau." msgstr "" -#: whatsnew/3.5.rst:360 +#: whatsnew/3.5.rst:361 msgid "PEP 461 - percent formatting support for bytes and bytearray" msgstr "" -#: whatsnew/3.5.rst:362 +#: whatsnew/3.5.rst:363 msgid "" ":pep:`461` adds support for the ``%`` :ref:`interpolation operator ` to :class:`bytes` and :class:`bytearray`." msgstr "" -#: whatsnew/3.5.rst:366 +#: whatsnew/3.5.rst:367 msgid "" "While interpolation is usually thought of as a string operation, there are " "cases where interpolation on ``bytes`` or ``bytearrays`` makes sense, and " @@ -502,11 +502,11 @@ msgid "" "ASCII compatible text." msgstr "" -#: whatsnew/3.5.rst:1848 +#: whatsnew/3.5.rst:1847 msgid "Examples::" msgstr "" -#: whatsnew/3.5.rst:375 +#: whatsnew/3.5.rst:376 msgid "" ">>> b'Hello %b!' % b'World'\n" "b'Hello World!'\n" @@ -515,13 +515,13 @@ msgid "" "b'x=1 y=2.500000'" msgstr "" -#: whatsnew/3.5.rst:381 +#: whatsnew/3.5.rst:382 msgid "" "Unicode is not allowed for ``%b``, but it is accepted by ``%a`` (equivalent " "of ``repr(obj).encode('ascii', 'backslashreplace')``)::" msgstr "" -#: whatsnew/3.5.rst:384 +#: whatsnew/3.5.rst:385 msgid "" ">>> b'Hello %b!' % 'World'\n" "Traceback (most recent call last):\n" @@ -533,33 +533,33 @@ msgid "" "b\"price: '10\\\\u20ac'\"" msgstr "" -#: whatsnew/3.5.rst:392 +#: whatsnew/3.5.rst:393 msgid "" "Note that ``%s`` and ``%r`` conversion types, although supported, should " "only be used in codebases that need compatibility with Python 2." msgstr "" -#: whatsnew/3.5.rst:397 +#: whatsnew/3.5.rst:398 msgid ":pep:`461` -- Adding % formatting to bytes and bytearray" msgstr "" -#: whatsnew/3.5.rst:398 +#: whatsnew/3.5.rst:399 msgid "" "PEP written by Ethan Furman; implemented by Neil Schemenauer and Ethan " "Furman." msgstr "" -#: whatsnew/3.5.rst:405 +#: whatsnew/3.5.rst:406 msgid "PEP 484 - Type Hints" msgstr "" -#: whatsnew/3.5.rst:407 +#: whatsnew/3.5.rst:408 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 "" -#: whatsnew/3.5.rst:410 +#: whatsnew/3.5.rst:411 msgid "" "Experience has shown that the majority of function annotation uses were to " "provide type hints to function parameters and return values. It became " @@ -567,26 +567,26 @@ msgid "" "library included the base definitions and tools for type annotations." msgstr "" -#: whatsnew/3.5.rst:415 +#: whatsnew/3.5.rst:416 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 "" -#: whatsnew/3.5.rst:419 +#: whatsnew/3.5.rst:420 msgid "" "For example, here is a simple function whose argument and return type are " "declared in the annotations::" msgstr "" -#: whatsnew/3.5.rst:422 +#: whatsnew/3.5.rst:423 msgid "" "def greeting(name: str) -> str:\n" " return 'Hello ' + name" msgstr "" -#: whatsnew/3.5.rst:425 +#: whatsnew/3.5.rst:426 msgid "" "While these annotations are available at runtime through the usual :attr:" "`~object.__annotations__` attribute, *no automatic type checking happens at " @@ -595,41 +595,41 @@ msgid "" "analysis." msgstr "" -#: whatsnew/3.5.rst:431 +#: whatsnew/3.5.rst:432 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 "" -#: whatsnew/3.5.rst:437 +#: whatsnew/3.5.rst:438 msgid ":mod:`typing` module documentation" msgstr "" -#: whatsnew/3.5.rst:438 +#: whatsnew/3.5.rst:439 msgid ":pep:`484` -- Type Hints" msgstr "" -#: whatsnew/3.5.rst:439 +#: whatsnew/3.5.rst:440 msgid "" "PEP written by Guido van Rossum, Jukka Lehtosalo, and Łukasz Langa; " "implemented by Guido van Rossum." msgstr "" -#: whatsnew/3.5.rst:441 +#: whatsnew/3.5.rst:442 msgid ":pep:`483` -- The Theory of Type Hints" msgstr "" -#: whatsnew/3.5.rst:442 +#: whatsnew/3.5.rst:443 msgid "PEP written by Guido van Rossum" msgstr "" -#: whatsnew/3.5.rst:448 +#: whatsnew/3.5.rst:449 msgid "" "PEP 471 - os.scandir() function -- a better and faster directory iterator" msgstr "" -#: whatsnew/3.5.rst:450 +#: whatsnew/3.5.rst:451 msgid "" ":pep:`471` adds a new directory iteration function, :func:`os.scandir`, to " "the standard library. Additionally, :func:`os.walk` is now implemented " @@ -639,14 +639,14 @@ msgid "" "tree." msgstr "" -#: whatsnew/3.5.rst:457 +#: whatsnew/3.5.rst:458 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 "" -#: whatsnew/3.5.rst:461 +#: whatsnew/3.5.rst:462 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 " @@ -654,28 +654,28 @@ msgid "" "generally not make an additional system call::" msgstr "" -#: whatsnew/3.5.rst:466 +#: whatsnew/3.5.rst:467 msgid "" "for entry in os.scandir(path):\n" " if not entry.name.startswith('.') and entry.is_file():\n" " print(entry.name)" msgstr "" -#: whatsnew/3.5.rst:472 +#: whatsnew/3.5.rst:473 msgid "" ":pep:`471` -- os.scandir() function -- a better and faster directory iterator" msgstr "" -#: whatsnew/3.5.rst:473 +#: whatsnew/3.5.rst:474 msgid "" "PEP written and implemented by Ben Hoyt with the help of Victor Stinner." msgstr "" -#: whatsnew/3.5.rst:479 +#: whatsnew/3.5.rst:480 msgid "PEP 475: Retry system calls failing with EINTR" msgstr "" -#: whatsnew/3.5.rst:481 +#: whatsnew/3.5.rst:482 msgid "" "An :py:const:`errno.EINTR` error code is returned whenever a system call, " "that is waiting for I/O, is interrupted by a signal. Previously, Python " @@ -683,32 +683,32 @@ msgid "" "writing a Python application, the developer had two choices:" msgstr "" -#: whatsnew/3.5.rst:486 +#: whatsnew/3.5.rst:487 msgid "Ignore the ``InterruptedError``." msgstr "" -#: whatsnew/3.5.rst:487 +#: whatsnew/3.5.rst:488 msgid "" "Handle the ``InterruptedError`` and attempt to restart the interrupted " "system call at every call site." msgstr "" -#: whatsnew/3.5.rst:490 +#: whatsnew/3.5.rst:491 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 "" -#: whatsnew/3.5.rst:494 +#: whatsnew/3.5.rst:495 msgid "print(\"Hello World\")" msgstr "" -#: whatsnew/3.5.rst:496 +#: whatsnew/3.5.rst:497 msgid "and::" msgstr "" -#: whatsnew/3.5.rst:498 +#: whatsnew/3.5.rst:499 msgid "" "while True:\n" " try:\n" @@ -718,7 +718,7 @@ msgid "" " continue" msgstr "" -#: whatsnew/3.5.rst:505 +#: whatsnew/3.5.rst:506 msgid "" ":pep:`475` implements automatic retry of system calls on ``EINTR``. This " "removes the burden of dealing with ``EINTR`` or :exc:`InterruptedError` in " @@ -727,21 +727,21 @@ msgid "" "the signal handler does not raise an exception." msgstr "" -#: whatsnew/3.5.rst:512 +#: whatsnew/3.5.rst:513 msgid "" "Below is a list of functions which are now retried when interrupted by a " "signal:" msgstr "" -#: whatsnew/3.5.rst:515 +#: whatsnew/3.5.rst:516 msgid ":func:`open` and :func:`io.open`;" msgstr "" -#: whatsnew/3.5.rst:517 +#: whatsnew/3.5.rst:518 msgid "functions of the :mod:`faulthandler` module;" msgstr "" -#: whatsnew/3.5.rst:519 +#: whatsnew/3.5.rst:520 msgid "" ":mod:`os` functions: :func:`~os.fchdir`, :func:`~os.fchmod`, :func:`~os." "fchown`, :func:`~os.fdatasync`, :func:`~os.fstat`, :func:`~os.fstatvfs`, :" @@ -753,21 +753,21 @@ msgid "" "`~os.write`, :func:`~os.writev`;" msgstr "" -#: whatsnew/3.5.rst:529 +#: whatsnew/3.5.rst:530 msgid "" "special cases: :func:`os.close` and :func:`os.dup2` now ignore :py:const:" "`~errno.EINTR` errors; the syscall is not retried (see the PEP for the " "rationale);" msgstr "" -#: whatsnew/3.5.rst:533 +#: whatsnew/3.5.rst:534 msgid "" ":mod:`select` functions: :func:`devpoll.poll() `, :func:" "`epoll.poll() `, :func:`kqueue.control() `, :func:`poll.poll() `, :func:`~select.select`;" msgstr "" -#: whatsnew/3.5.rst:538 +#: whatsnew/3.5.rst:539 msgid "" "methods of the :class:`~socket.socket` class: :meth:`~socket.socket." "accept`, :meth:`~socket.socket.connect` (except for non-blocking sockets), :" @@ -776,29 +776,29 @@ msgid "" "sendall`, :meth:`~socket.socket.sendmsg`, :meth:`~socket.socket.sendto`;" msgstr "" -#: whatsnew/3.5.rst:545 +#: whatsnew/3.5.rst:546 msgid ":func:`signal.sigtimedwait` and :func:`signal.sigwaitinfo`;" msgstr "" -#: whatsnew/3.5.rst:547 +#: whatsnew/3.5.rst:548 msgid ":func:`time.sleep`." msgstr "" -#: whatsnew/3.5.rst:551 +#: whatsnew/3.5.rst:552 msgid ":pep:`475` -- Retry system calls failing with EINTR" msgstr "" -#: whatsnew/3.5.rst:552 +#: whatsnew/3.5.rst:553 msgid "" "PEP and implementation written by Charles-François Natali and Victor " "Stinner, with the help of Antoine Pitrou (the French connection)." msgstr "" -#: whatsnew/3.5.rst:559 +#: whatsnew/3.5.rst:560 msgid "PEP 479: Change StopIteration handling inside generators" msgstr "" -#: whatsnew/3.5.rst:561 +#: whatsnew/3.5.rst:562 msgid "" "The interaction of generators and :exc:`StopIteration` in Python 3.4 and " "earlier was sometimes surprising, and could conceal obscure bugs. " @@ -807,7 +807,7 @@ msgid "" "driving the generator." msgstr "" -#: whatsnew/3.5.rst:567 +#: whatsnew/3.5.rst:568 msgid "" ":pep:`479` changes the behavior of generators: when a ``StopIteration`` " "exception is raised inside a generator, it is replaced with a :exc:" @@ -818,13 +818,13 @@ msgid "" "combination with the ``yield from`` construct." msgstr "" -#: whatsnew/3.5.rst:575 +#: whatsnew/3.5.rst:576 msgid "" "This is a backwards incompatible change, so to enable the new behavior, a :" "term:`__future__` import is necessary::" msgstr "" -#: whatsnew/3.5.rst:578 +#: whatsnew/3.5.rst:579 msgid "" ">>> from __future__ import generator_stop\n" "\n" @@ -844,28 +844,28 @@ msgid "" "RuntimeError: generator raised StopIteration" msgstr "" -#: whatsnew/3.5.rst:595 +#: whatsnew/3.5.rst:596 msgid "" "Without a ``__future__`` import, a :exc:`PendingDeprecationWarning` will be " "raised whenever a :exc:`StopIteration` exception is raised inside a " "generator." msgstr "" -#: whatsnew/3.5.rst:600 +#: whatsnew/3.5.rst:601 msgid ":pep:`479` -- Change StopIteration handling inside generators" msgstr "" -#: whatsnew/3.5.rst:601 +#: whatsnew/3.5.rst:602 msgid "" "PEP written by Chris Angelico and Guido van Rossum. Implemented by Chris " "Angelico, Yury Selivanov and Nick Coghlan." msgstr "" -#: whatsnew/3.5.rst:608 +#: whatsnew/3.5.rst:609 msgid "PEP 485: A function for testing approximate equality" msgstr "" -#: whatsnew/3.5.rst:610 +#: whatsnew/3.5.rst:611 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 " @@ -875,7 +875,7 @@ msgid "" "the larger absolute value::" msgstr "" -#: whatsnew/3.5.rst:617 +#: whatsnew/3.5.rst:618 msgid "" ">>> import math\n" ">>> a = 5.0\n" @@ -886,13 +886,13 @@ msgid "" "False" msgstr "" -#: whatsnew/3.5.rst:625 +#: whatsnew/3.5.rst:626 msgid "" "It is also possible to compare two values using absolute tolerance, which " "must be a non-negative value::" msgstr "" -#: whatsnew/3.5.rst:628 +#: whatsnew/3.5.rst:629 msgid "" ">>> import math\n" ">>> a = 5.0\n" @@ -903,20 +903,20 @@ msgid "" "False" msgstr "" -#: whatsnew/3.5.rst:638 +#: whatsnew/3.5.rst:639 msgid ":pep:`485` -- A function for testing approximate equality" msgstr "" -#: whatsnew/3.5.rst:639 +#: whatsnew/3.5.rst:640 msgid "" "PEP written by Christopher Barker; implemented by Chris Barker and Tal Einat." msgstr "" -#: whatsnew/3.5.rst:646 +#: whatsnew/3.5.rst:647 msgid "PEP 486: Make the Python Launcher aware of virtual environments" msgstr "" -#: whatsnew/3.5.rst:648 +#: whatsnew/3.5.rst:649 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 " @@ -924,19 +924,19 @@ msgid "" "environment will be used." msgstr "" -#: whatsnew/3.5.rst:655 +#: whatsnew/3.5.rst:656 msgid ":pep:`486` -- Make the Python Launcher aware of virtual environments" msgstr "" -#: whatsnew/3.5.rst:656 +#: whatsnew/3.5.rst:657 msgid "PEP written and implemented by Paul Moore." msgstr "" -#: whatsnew/3.5.rst:662 +#: whatsnew/3.5.rst:663 msgid "PEP 488: Elimination of PYO files" msgstr "" -#: whatsnew/3.5.rst:664 +#: whatsnew/3.5.rst:665 msgid "" ":pep:`488` does away with the concept of ``.pyo`` files. This means that ``." "pyc`` files represent both unoptimized and optimized bytecode. To prevent " @@ -949,25 +949,25 @@ msgid "" "change." msgstr "" -#: whatsnew/3.5.rst:676 +#: whatsnew/3.5.rst:677 msgid ":pep:`488` -- Elimination of PYO files" msgstr "" -#: whatsnew/3.5.rst:677 +#: whatsnew/3.5.rst:678 msgid "PEP written and implemented by Brett Cannon." msgstr "" -#: whatsnew/3.5.rst:683 +#: whatsnew/3.5.rst:684 msgid "PEP 489: Multi-phase extension module initialization" msgstr "" -#: whatsnew/3.5.rst:685 +#: whatsnew/3.5.rst:686 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 "" -#: whatsnew/3.5.rst:688 +#: whatsnew/3.5.rst:689 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 " @@ -975,77 +975,77 @@ msgid "" "rather than being restricted to ASCII." msgstr "" -#: whatsnew/3.5.rst:695 +#: whatsnew/3.5.rst:696 msgid ":pep:`489` -- Multi-phase extension module initialization" msgstr "" -#: whatsnew/3.5.rst:696 +#: whatsnew/3.5.rst:697 msgid "" "PEP written by Petr Viktorin, Stefan Behnel, and Nick Coghlan; implemented " "by Petr Viktorin." msgstr "" -#: whatsnew/3.5.rst:701 +#: whatsnew/3.5.rst:702 msgid "Other Language Changes" msgstr "" -#: whatsnew/3.5.rst:703 +#: whatsnew/3.5.rst:704 msgid "Some smaller changes made to the core Python language are:" msgstr "" -#: whatsnew/3.5.rst:705 +#: whatsnew/3.5.rst:706 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 "" -#: whatsnew/3.5.rst:709 +#: whatsnew/3.5.rst:710 msgid "" "The :option:`-b` option now affects comparisons of :class:`bytes` with :" "class:`int`. (Contributed by Serhiy Storchaka in :issue:`23681`.)" msgstr "" -#: whatsnew/3.5.rst:712 +#: whatsnew/3.5.rst:713 msgid "" "New Kazakh ``kz1048`` and Tajik ``koi8_t`` :ref:`codecs `. (Contributed by Serhiy Storchaka in :issue:`22682` and :issue:" "`22681`.)" msgstr "" -#: whatsnew/3.5.rst:715 +#: whatsnew/3.5.rst:716 msgid "" "Property docstrings are now writable. This is especially useful for :func:" "`collections.namedtuple` docstrings. (Contributed by Berker Peksag in :issue:" "`24064`.)" msgstr "" -#: whatsnew/3.5.rst:719 +#: whatsnew/3.5.rst:720 msgid "" "Circular imports involving relative imports are now supported. (Contributed " "by Brett Cannon and Antoine Pitrou in :issue:`17636`.)" msgstr "" -#: whatsnew/3.5.rst:724 +#: whatsnew/3.5.rst:725 msgid "New Modules" msgstr "" -#: whatsnew/3.5.rst:727 +#: whatsnew/3.5.rst:728 msgid "typing" msgstr "" -#: whatsnew/3.5.rst:729 +#: whatsnew/3.5.rst:730 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 "" -#: whatsnew/3.5.rst:736 +#: whatsnew/3.5.rst:737 msgid "zipapp" msgstr "" -#: whatsnew/3.5.rst:738 +#: whatsnew/3.5.rst:739 msgid "" "The new :mod:`zipapp` module (specified in :pep:`441`) provides an API and " "command line tool for creating executable Python Zip Applications, which " @@ -1053,38 +1053,38 @@ msgid "" "publicized, either at the time or since." msgstr "" -#: whatsnew/3.5.rst:743 +#: whatsnew/3.5.rst:744 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 "" -#: whatsnew/3.5.rst:747 +#: whatsnew/3.5.rst:748 msgid "" "$ python -m zipapp myapp\n" "$ python myapp.pyz" msgstr "" -#: whatsnew/3.5.rst:752 +#: whatsnew/3.5.rst:753 msgid "" "The module implementation has been contributed by Paul Moore in :issue:" "`23491`." msgstr "" -#: whatsnew/3.5.rst:757 +#: whatsnew/3.5.rst:758 msgid ":pep:`441` -- Improving Python ZIP Application Support" msgstr "" -#: whatsnew/3.5.rst:761 +#: whatsnew/3.5.rst:762 msgid "Improved Modules" msgstr "" -#: whatsnew/3.5.rst:764 +#: whatsnew/3.5.rst:765 msgid "argparse" msgstr "" -#: whatsnew/3.5.rst:766 +#: whatsnew/3.5.rst:767 msgid "" "The :class:`~argparse.ArgumentParser` class now allows disabling :ref:" "`abbreviated usage ` of long options by setting :ref:" @@ -1092,41 +1092,41 @@ msgid "" "Bethard, paul j3 and Daniel Eriksson in :issue:`14910`.)" msgstr "" -#: whatsnew/3.5.rst:773 +#: whatsnew/3.5.rst:774 msgid "asyncio" msgstr "" -#: whatsnew/3.5.rst:775 +#: whatsnew/3.5.rst:776 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 "" -#: whatsnew/3.5.rst:778 +#: whatsnew/3.5.rst:779 msgid "Notable changes in the :mod:`asyncio` module since Python 3.4.0:" msgstr "" -#: whatsnew/3.5.rst:780 +#: whatsnew/3.5.rst:781 msgid "" "New debugging APIs: :meth:`loop.set_debug() ` and :" "meth:`loop.get_debug() ` methods. (Contributed by " "Victor Stinner.)" msgstr "" -#: whatsnew/3.5.rst:784 +#: whatsnew/3.5.rst:785 msgid "" "The proactor event loop now supports SSL. (Contributed by Antoine Pitrou and " "Victor Stinner in :issue:`22560`.)" msgstr "" -#: whatsnew/3.5.rst:787 +#: whatsnew/3.5.rst:788 msgid "" "A new :meth:`loop.is_closed() ` method to check if " "the event loop is closed. (Contributed by Victor Stinner in :issue:`21326`.)" msgstr "" -#: whatsnew/3.5.rst:791 +#: whatsnew/3.5.rst:792 msgid "" "A new :meth:`loop.create_task() ` to conveniently " "create and schedule a new :class:`~asyncio.Task` for a coroutine. The " @@ -1135,20 +1135,20 @@ msgid "" "etc. (Contributed by Victor Stinner.)" msgstr "" -#: whatsnew/3.5.rst:798 +#: whatsnew/3.5.rst:799 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 "" -#: whatsnew/3.5.rst:803 +#: whatsnew/3.5.rst:804 msgid "" -"The :func:`~asyncio.async` function is deprecated in favor of :func:" -"`~asyncio.ensure_future`. (Contributed by Yury Selivanov.)" +"The :func:`!async` function is deprecated in favor of :func:`~asyncio." +"ensure_future`. (Contributed by Yury Selivanov.)" msgstr "" -#: whatsnew/3.5.rst:807 +#: whatsnew/3.5.rst:808 msgid "" "New :meth:`loop.set_task_factory() ` and :" "meth:`loop.get_task_factory() ` methods to " @@ -1156,23 +1156,23 @@ msgid "" "create_task>` method uses. (Contributed by Yury Selivanov.)" msgstr "" -#: whatsnew/3.5.rst:814 +#: whatsnew/3.5.rst:815 msgid "" "New :meth:`Queue.join() ` and :meth:`Queue.task_done() " "` queue methods. (Contributed by Victor Stinner.)" msgstr "" -#: whatsnew/3.5.rst:818 +#: whatsnew/3.5.rst:819 msgid "" "The ``JoinableQueue`` class was removed, in favor of the :class:`asyncio." "Queue` class. (Contributed by Victor Stinner.)" msgstr "" -#: whatsnew/3.5.rst:822 +#: whatsnew/3.5.rst:823 msgid "Updates in 3.5.1:" msgstr "" -#: whatsnew/3.5.rst:824 +#: whatsnew/3.5.rst:825 msgid "" "The :func:`~asyncio.ensure_future` function and all functions that use it, " "such as :meth:`loop.run_until_complete() `, " @@ -1180,30 +1180,30 @@ msgid "" "by Yury Selivanov.)" msgstr "" -#: whatsnew/3.5.rst:829 +#: whatsnew/3.5.rst:830 msgid "" "New :func:`~asyncio.run_coroutine_threadsafe` function to submit coroutines " "to event loops from other threads. (Contributed by Vincent Michel.)" msgstr "" -#: whatsnew/3.5.rst:833 +#: whatsnew/3.5.rst:834 msgid "" "New :meth:`Transport.is_closing() ` method " "to check if the transport is closing or closed. (Contributed by Yury " "Selivanov.)" msgstr "" -#: whatsnew/3.5.rst:837 +#: whatsnew/3.5.rst:838 msgid "" "The :meth:`loop.create_server() ` method can now " "accept a list of hosts. (Contributed by Yann Sionneau.)" msgstr "" -#: whatsnew/3.5.rst:841 +#: whatsnew/3.5.rst:842 msgid "Updates in 3.5.2:" msgstr "" -#: whatsnew/3.5.rst:843 +#: whatsnew/3.5.rst:844 msgid "" "New :meth:`loop.create_future() ` method to " "create Future objects. This allows alternative event loop implementations, " @@ -1212,21 +1212,21 @@ msgid "" "Selivanov.)" msgstr "" -#: whatsnew/3.5.rst:850 +#: whatsnew/3.5.rst:851 msgid "" "New :meth:`loop.get_exception_handler() ` method to get the current exception handler. " "(Contributed by Yury Selivanov.)" msgstr "" -#: whatsnew/3.5.rst:854 +#: whatsnew/3.5.rst:855 msgid "" "New :meth:`StreamReader.readuntil() ` method " "to read data from the stream until a separator bytes sequence appears. " "(Contributed by Mark Korenberg.)" msgstr "" -#: whatsnew/3.5.rst:859 +#: whatsnew/3.5.rst:860 msgid "" "The :meth:`loop.create_connection() ` and :" "meth:`loop.create_server() ` methods are " @@ -1234,49 +1234,49 @@ msgid "" "address is already resolved. (Contributed by A. Jesse Jiryu Davis.)" msgstr "" -#: whatsnew/3.5.rst:865 +#: whatsnew/3.5.rst:866 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 "" -#: whatsnew/3.5.rst:871 +#: whatsnew/3.5.rst:872 msgid "bz2" msgstr "" -#: whatsnew/3.5.rst:873 +#: whatsnew/3.5.rst:874 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 "" -#: whatsnew/3.5.rst:879 +#: whatsnew/3.5.rst:880 msgid "cgi" msgstr "" -#: whatsnew/3.5.rst:881 +#: whatsnew/3.5.rst:882 msgid "" "The :class:`!FieldStorage` class now supports the :term:`context manager` " "protocol. (Contributed by Berker Peksag in :issue:`20289`.)" msgstr "" -#: whatsnew/3.5.rst:886 +#: whatsnew/3.5.rst:887 msgid "cmath" msgstr "" -#: whatsnew/3.5.rst:888 +#: whatsnew/3.5.rst:889 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 "" -#: whatsnew/3.5.rst:893 +#: whatsnew/3.5.rst:894 msgid "code" msgstr "" -#: whatsnew/3.5.rst:895 +#: whatsnew/3.5.rst:896 msgid "" "The :func:`InteractiveInterpreter.showtraceback() ` method now prints the full chained " @@ -1284,26 +1284,25 @@ msgid "" "Popa in :issue:`17442`.)" msgstr "" -#: whatsnew/3.5.rst:901 +#: whatsnew/3.5.rst:902 msgid "collections" msgstr "" -#: whatsnew/3.5.rst:905 +#: whatsnew/3.5.rst:906 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 "" -#: whatsnew/3.5.rst:908 +#: whatsnew/3.5.rst:909 msgid "" -":meth:`OrderedDict.items() `, :meth:" -"`OrderedDict.keys() `, :meth:`OrderedDict." -"values() ` views now support :func:" -"`reversed` iteration. (Contributed by Serhiy Storchaka in :issue:`19505`.)" +":meth:`!OrderedDict.items`, :meth:`!OrderedDict.keys`, and :meth:`!" +"OrderedDict.values` views now support :func:`reversed` iteration. " +"(Contributed by Serhiy Storchaka in :issue:`19505`.)" msgstr "" -#: whatsnew/3.5.rst:914 +#: whatsnew/3.5.rst:913 msgid "" "The :class:`~collections.deque` class now defines :meth:`~collections.deque." "index`, :meth:`~collections.deque.insert`, and :meth:`~collections.deque." @@ -1313,12 +1312,12 @@ msgid "" "`23704`.)" msgstr "" -#: whatsnew/3.5.rst:921 +#: whatsnew/3.5.rst:920 msgid "" "Docstrings produced by :func:`~collections.namedtuple` can now be updated::" msgstr "" -#: whatsnew/3.5.rst:923 +#: whatsnew/3.5.rst:922 msgid "" "Point = namedtuple('Point', ['x', 'y'])\n" "Point.__doc__ += ': Cartesian coordinate'\n" @@ -1326,38 +1325,37 @@ msgid "" "Point.y.__doc__ = 'ordinate'" msgstr "" -#: whatsnew/3.5.rst:928 +#: whatsnew/3.5.rst:927 msgid "(Contributed by Berker Peksag in :issue:`24064`.)" msgstr "" -#: whatsnew/3.5.rst:930 +#: whatsnew/3.5.rst:929 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`.)" +"The :class:`~collections.UserString` class now implements the :meth:`~object." +"__getnewargs__`, :meth:`~object.__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 "" -#: whatsnew/3.5.rst:938 +#: whatsnew/3.5.rst:937 msgid "collections.abc" msgstr "" -#: whatsnew/3.5.rst:940 +#: whatsnew/3.5.rst:939 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`.)" +"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 "" -#: whatsnew/3.5.rst:945 +#: whatsnew/3.5.rst:944 msgid "" "A new :class:`~collections.abc.Generator` abstract base class. (Contributed " "by Stefan Behnel in :issue:`24018`.)" msgstr "" -#: whatsnew/3.5.rst:948 +#: whatsnew/3.5.rst:947 msgid "" "New :class:`~collections.abc.Awaitable`, :class:`~collections.abc." "Coroutine`, :class:`~collections.abc.AsyncIterator`, and :class:" @@ -1365,17 +1363,17 @@ msgid "" "Selivanov in :issue:`24184`.)" msgstr "" -#: whatsnew/3.5.rst:953 +#: whatsnew/3.5.rst:952 msgid "" "For earlier Python versions, a backport of the new ABCs is available in an " "external :pypi:`PyPI package `." msgstr "" -#: whatsnew/3.5.rst:958 +#: whatsnew/3.5.rst:957 msgid "compileall" msgstr "" -#: whatsnew/3.5.rst:960 +#: whatsnew/3.5.rst:959 msgid "" "A new :mod:`compileall` option, :samp:`-j {N}`, allows running *N* workers " "simultaneously to perform parallel bytecode compilation. The :func:" @@ -1383,13 +1381,13 @@ msgid "" "parameter. (Contributed by Claudiu Popa in :issue:`16104`.)" msgstr "" -#: whatsnew/3.5.rst:965 +#: whatsnew/3.5.rst:964 msgid "" "Another new option, ``-r``, allows controlling the maximum recursion level " "for subdirectories. (Contributed by Claudiu Popa in :issue:`19628`.)" msgstr "" -#: whatsnew/3.5.rst:968 +#: whatsnew/3.5.rst:967 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 " @@ -1399,11 +1397,11 @@ msgid "" "Thomas Kluyver in :issue:`21338`.)" msgstr "" -#: whatsnew/3.5.rst:977 +#: whatsnew/3.5.rst:976 msgid "concurrent.futures" msgstr "" -#: whatsnew/3.5.rst:979 +#: whatsnew/3.5.rst:978 msgid "" "The :meth:`Executor.map() ` method now " "accepts a *chunksize* argument to allow batching of tasks to improve " @@ -1411,18 +1409,18 @@ msgid "" "(Contributed by Dan O'Reilly in :issue:`11271`.)" msgstr "" -#: whatsnew/3.5.rst:984 +#: whatsnew/3.5.rst:983 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 "" -#: whatsnew/3.5.rst:990 +#: whatsnew/3.5.rst:989 msgid "configparser" msgstr "" -#: whatsnew/3.5.rst:992 +#: whatsnew/3.5.rst:991 msgid "" ":mod:`configparser` now provides a way to customize the conversion of values " "by specifying a dictionary of converters in the :class:`~configparser." @@ -1431,11 +1429,11 @@ msgid "" "inherited by its section proxies." msgstr "" -#: whatsnew/3.5.rst:998 +#: whatsnew/3.5.rst:997 msgid "Example::" msgstr "" -#: whatsnew/3.5.rst:1000 +#: whatsnew/3.5.rst:999 msgid "" ">>> import configparser\n" ">>> conv = {}\n" @@ -1454,15 +1452,15 @@ msgid "" "['a', 'b', 'c', 'd', 'e', 'f', 'g']" msgstr "" -#: whatsnew/3.5.rst:1016 +#: whatsnew/3.5.rst:1015 msgid "(Contributed by Łukasz Langa in :issue:`18159`.)" msgstr "" -#: whatsnew/3.5.rst:1020 +#: whatsnew/3.5.rst:1019 msgid "contextlib" msgstr "" -#: whatsnew/3.5.rst:1022 +#: whatsnew/3.5.rst:1021 msgid "" "The new :func:`~contextlib.redirect_stderr` :term:`context manager` (similar " "to :func:`~contextlib.redirect_stdout`) makes it easier for utility scripts " @@ -1470,7 +1468,7 @@ msgid "" "don't provide any options to redirect it::" msgstr "" -#: whatsnew/3.5.rst:1027 +#: whatsnew/3.5.rst:1026 msgid "" ">>> import contextlib, io, logging\n" ">>> f = io.StringIO()\n" @@ -1481,47 +1479,48 @@ msgid "" "'WARNING:root:warning\\n'" msgstr "" -#: whatsnew/3.5.rst:1035 +#: whatsnew/3.5.rst:1034 msgid "(Contributed by Berker Peksag in :issue:`22389`.)" msgstr "" -#: whatsnew/3.5.rst:1039 +#: whatsnew/3.5.rst:1038 msgid "csv" msgstr "" -#: whatsnew/3.5.rst:1041 +#: whatsnew/3.5.rst:1040 msgid "" "The :meth:`~csv.csvwriter.writerow` method now supports arbitrary iterables, " "not just sequences. (Contributed by Serhiy Storchaka in :issue:`23171`.)" msgstr "" -#: whatsnew/3.5.rst:1046 +#: whatsnew/3.5.rst:1045 msgid "curses" msgstr "" -#: whatsnew/3.5.rst:1048 +#: whatsnew/3.5.rst:1047 msgid "" -"The new :func:`~curses.update_lines_cols` function updates the :data:`LINES` " -"and :data:`COLS` module variables. This is useful for detecting manual " -"screen resizing. (Contributed by Arnon Yaari in :issue:`4254`.)" +"The new :func:`~curses.update_lines_cols` function updates the :data:" +"`~curses.LINES` and :data:`~curses.COLS` module variables. This is useful " +"for detecting manual screen resizing. (Contributed by Arnon Yaari in :issue:" +"`4254`.)" msgstr "" -#: whatsnew/3.5.rst:1054 +#: whatsnew/3.5.rst:1053 msgid "dbm" msgstr "" -#: whatsnew/3.5.rst:1056 +#: whatsnew/3.5.rst:1055 msgid "" ":func:`dumb.open ` always creates a new database when the " "flag has the value ``\"n\"``. (Contributed by Claudiu Popa in :issue:" "`18039`.)" msgstr "" -#: whatsnew/3.5.rst:1061 +#: whatsnew/3.5.rst:1060 msgid "difflib" msgstr "" -#: whatsnew/3.5.rst:1063 +#: whatsnew/3.5.rst:1062 msgid "" "The charset of HTML documents generated by :meth:`HtmlDiff.make_file() " "` can now be customized by using a new *charset* " @@ -1530,47 +1529,47 @@ msgid "" "`2052`.)" msgstr "" -#: whatsnew/3.5.rst:1070 +#: whatsnew/3.5.rst:1069 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 "" -#: whatsnew/3.5.rst:1076 +#: whatsnew/3.5.rst:1075 msgid "distutils" msgstr "" -#: whatsnew/3.5.rst:1078 +#: whatsnew/3.5.rst:1077 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 "" -#: whatsnew/3.5.rst:1082 +#: whatsnew/3.5.rst:1081 msgid "" "The ``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 "" -#: whatsnew/3.5.rst:1088 +#: whatsnew/3.5.rst:1087 msgid "doctest" msgstr "" -#: whatsnew/3.5.rst:1090 +#: whatsnew/3.5.rst:1089 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 "" -#: whatsnew/3.5.rst:1096 +#: whatsnew/3.5.rst:1095 msgid "email" msgstr "" -#: whatsnew/3.5.rst:1098 +#: whatsnew/3.5.rst:1097 msgid "" "A new policy option :attr:`Policy.mangle_from_ ` controls whether or not lines that start with ``\"From \"`` " @@ -1579,7 +1578,7 @@ msgid "" "other policies. (Contributed by Milan Oberkirch in :issue:`20098`.)" msgstr "" -#: whatsnew/3.5.rst:1104 +#: whatsnew/3.5.rst:1103 msgid "" "A new :meth:`Message.get_content_disposition() ` method provides easy access to a canonical value " @@ -1587,7 +1586,7 @@ msgid "" "Raj in :issue:`21083`.)" msgstr "" -#: whatsnew/3.5.rst:1110 +#: whatsnew/3.5.rst:1109 msgid "" "A new policy option :attr:`EmailPolicy.utf8 ` " "can be set to ``True`` to encode email headers using the UTF-8 charset " @@ -1597,24 +1596,24 @@ msgid "" "`24211`.)" msgstr "" -#: whatsnew/3.5.rst:1117 +#: whatsnew/3.5.rst:1116 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 "" -#: whatsnew/3.5.rst:1123 +#: whatsnew/3.5.rst:1122 msgid "enum" msgstr "" -#: whatsnew/3.5.rst:1125 +#: whatsnew/3.5.rst:1124 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 "" -#: whatsnew/3.5.rst:1128 +#: whatsnew/3.5.rst:1127 msgid "" ">>> Animal = enum.Enum('Animal', 'cat dog', start=10)\n" ">>> Animal.cat\n" @@ -1623,15 +1622,15 @@ msgid "" "" msgstr "" -#: whatsnew/3.5.rst:1134 +#: whatsnew/3.5.rst:1133 msgid "(Contributed by Ethan Furman in :issue:`21706`.)" msgstr "" -#: whatsnew/3.5.rst:1138 +#: whatsnew/3.5.rst:1137 msgid "faulthandler" msgstr "" -#: whatsnew/3.5.rst:1140 +#: whatsnew/3.5.rst:1139 msgid "" "The :func:`~faulthandler.enable`, :func:`~faulthandler.register`, :func:" "`~faulthandler.dump_traceback` and :func:`~faulthandler." @@ -1639,44 +1638,44 @@ msgid "" "file-like objects. (Contributed by Wei Wu in :issue:`23566`.)" msgstr "" -#: whatsnew/3.5.rst:1148 +#: whatsnew/3.5.rst:1147 msgid "functools" msgstr "" -#: whatsnew/3.5.rst:1152 +#: whatsnew/3.5.rst:1151 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 "" -#: whatsnew/3.5.rst:1158 +#: whatsnew/3.5.rst:1157 msgid "glob" msgstr "" -#: whatsnew/3.5.rst:1160 +#: whatsnew/3.5.rst:1159 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 "" -#: whatsnew/3.5.rst:1166 +#: whatsnew/3.5.rst:1165 msgid "gzip" msgstr "" -#: whatsnew/3.5.rst:1168 +#: whatsnew/3.5.rst:1167 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 "" -#: whatsnew/3.5.rst:1174 +#: whatsnew/3.5.rst:1173 msgid "heapq" msgstr "" -#: whatsnew/3.5.rst:1176 +#: whatsnew/3.5.rst:1175 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 " @@ -1684,7 +1683,7 @@ msgid "" "comparison::" msgstr "" -#: whatsnew/3.5.rst:1181 +#: whatsnew/3.5.rst:1180 msgid "" ">>> import heapq\n" ">>> a = ['9', '777', '55555']\n" @@ -1695,26 +1694,26 @@ msgid "" "['55555', '6666', '777', '88', '9']" msgstr "" -#: whatsnew/3.5.rst:1189 +#: whatsnew/3.5.rst:1188 msgid "(Contributed by Raymond Hettinger in :issue:`13742`.)" msgstr "" -#: whatsnew/3.5.rst:1193 +#: whatsnew/3.5.rst:1192 msgid "http" msgstr "" -#: whatsnew/3.5.rst:1195 +#: whatsnew/3.5.rst:1194 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 "" -#: whatsnew/3.5.rst:1201 +#: whatsnew/3.5.rst:1200 msgid "http.client" msgstr "" -#: whatsnew/3.5.rst:1203 +#: whatsnew/3.5.rst:1202 msgid "" ":meth:`HTTPConnection.getresponse() ` now raises a :exc:`~http.client.RemoteDisconnected` exception " @@ -1724,7 +1723,7 @@ msgid "" "the next request::" msgstr "" -#: whatsnew/3.5.rst:1210 +#: whatsnew/3.5.rst:1209 msgid "" "import http.client\n" "conn = http.client.HTTPConnection('www.python.org')\n" @@ -1736,15 +1735,15 @@ msgid "" " pass" msgstr "" -#: whatsnew/3.5.rst:1219 +#: whatsnew/3.5.rst:1218 msgid "(Contributed by Martin Panter in :issue:`3566`.)" msgstr "" -#: whatsnew/3.5.rst:1223 +#: whatsnew/3.5.rst:1222 msgid "idlelib and IDLE" msgstr "" -#: whatsnew/3.5.rst:1225 +#: whatsnew/3.5.rst:1224 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 :" @@ -1753,11 +1752,11 @@ msgid "" "from the IDLE :menuselection:`Help --> About IDLE` dialog." msgstr "" -#: whatsnew/3.5.rst:1233 +#: whatsnew/3.5.rst:1232 msgid "imaplib" msgstr "" -#: whatsnew/3.5.rst:1235 +#: whatsnew/3.5.rst:1234 msgid "" "The :class:`~imaplib.IMAP4` class now supports the :term:`context manager` " "protocol. When used in a :keyword:`with` statement, the IMAP4 ``LOGOUT`` " @@ -1765,7 +1764,7 @@ msgid "" "by Tarek Ziadé and Serhiy Storchaka in :issue:`4972`.)" msgstr "" -#: whatsnew/3.5.rst:1240 +#: whatsnew/3.5.rst:1239 msgid "" "The :mod:`imaplib` module now supports :rfc:`5161` (ENABLE Extension) and :" "rfc:`6855` (UTF-8 Support) via the :meth:`IMAP4.enable() `_ format (contributed by Martin Vignali and Claudiu Popa in :issue:" @@ -1794,18 +1793,18 @@ msgid "" "(contributed by Fabrice Aneche and Claudiu Popa in :issue:`20197`.)" msgstr "" -#: whatsnew/3.5.rst:1263 +#: whatsnew/3.5.rst:1262 msgid "importlib" msgstr "" -#: whatsnew/3.5.rst:1265 +#: whatsnew/3.5.rst:1264 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 "" -#: whatsnew/3.5.rst:1269 +#: whatsnew/3.5.rst:1268 msgid "" "The :func:`abc.InspectLoader.source_to_code() ` method is now a static method. This makes it easier to " @@ -1814,7 +1813,7 @@ msgid "" "`21156`.)" msgstr "" -#: whatsnew/3.5.rst:1275 +#: whatsnew/3.5.rst:1274 msgid "" "The new :func:`util.module_from_spec() ` " "function is now the preferred way to create a new module. As opposed to " @@ -1823,25 +1822,25 @@ msgid "" "spec object. (Contributed by Brett Cannon in :issue:`20383`.)" msgstr "" -#: whatsnew/3.5.rst:1283 +#: whatsnew/3.5.rst:1282 msgid "inspect" msgstr "" -#: whatsnew/3.5.rst:1285 +#: whatsnew/3.5.rst:1284 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 "" -#: whatsnew/3.5.rst:1289 +#: whatsnew/3.5.rst:1288 msgid "" "A new :meth:`BoundArguments.apply_defaults() ` method provides a way to set default values for missing " "arguments::" msgstr "" -#: whatsnew/3.5.rst:1293 +#: whatsnew/3.5.rst:1292 msgid "" ">>> def foo(a, b='ham', *args): pass\n" ">>> ba = inspect.signature(foo).bind('spam')\n" @@ -1850,18 +1849,18 @@ msgid "" "OrderedDict([('a', 'spam'), ('b', 'ham'), ('args', ())])" msgstr "" -#: whatsnew/3.5.rst:1299 +#: whatsnew/3.5.rst:1298 msgid "(Contributed by Yury Selivanov in :issue:`24190`.)" msgstr "" -#: whatsnew/3.5.rst:1301 +#: whatsnew/3.5.rst:1300 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 "" -#: whatsnew/3.5.rst:1306 +#: whatsnew/3.5.rst:1305 msgid "" "The :func:`~inspect.signature` function now accepts a *follow_wrapped* " "optional keyword argument, which, when set to ``False``, disables automatic " @@ -1869,7 +1868,7 @@ msgid "" "`20691`.)" msgstr "" -#: whatsnew/3.5.rst:1311 +#: whatsnew/3.5.rst:1310 msgid "" "A set of new functions to inspect :term:`coroutine functions ` and :term:`coroutine objects ` has been added: :func:" @@ -1879,18 +1878,18 @@ msgid "" "`24017` and :issue:`24400`.)" msgstr "" -#: whatsnew/3.5.rst:1319 +#: whatsnew/3.5.rst:1318 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 "" -#: whatsnew/3.5.rst:1326 +#: whatsnew/3.5.rst:1325 msgid "io" msgstr "" -#: whatsnew/3.5.rst:1328 +#: whatsnew/3.5.rst:1327 msgid "" "A new :meth:`BufferedIOBase.readinto1() ` " "method, that uses at most one call to the underlying raw stream's :meth:" @@ -1899,18 +1898,18 @@ msgid "" "`20578`.)" msgstr "" -#: whatsnew/3.5.rst:1336 +#: whatsnew/3.5.rst:1335 msgid "ipaddress" msgstr "" -#: whatsnew/3.5.rst:1338 +#: whatsnew/3.5.rst:1337 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 "" -#: whatsnew/3.5.rst:1342 +#: whatsnew/3.5.rst:1341 msgid "" ">>> import ipaddress\n" ">>> ipaddress.IPv4Network(('127.0.0.0', 8))\n" @@ -1919,18 +1918,18 @@ msgid "" "IPv4Network('127.0.0.0/8')" msgstr "" -#: whatsnew/3.5.rst:1348 +#: whatsnew/3.5.rst:1347 msgid "(Contributed by Peter Moody and Antoine Pitrou in :issue:`16531`.)" msgstr "" -#: whatsnew/3.5.rst:1350 +#: whatsnew/3.5.rst:1349 msgid "" -"A new :attr:`~ipaddress.IPv4Network.reverse_pointer` attribute for the :" -"class:`~ipaddress.IPv4Network` and :class:`~ipaddress.IPv6Network` classes " +"A new :attr:`~ipaddress.IPv4Address.reverse_pointer` attribute for the :" +"class:`~ipaddress.IPv4Address` and :class:`~ipaddress.IPv6Address` classes " "returns the name of the reverse DNS PTR record::" msgstr "" -#: whatsnew/3.5.rst:1354 +#: whatsnew/3.5.rst:1353 msgid "" ">>> import ipaddress\n" ">>> addr = ipaddress.IPv4Address('127.0.0.1')\n" @@ -1941,15 +1940,15 @@ msgid "" "'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa'" msgstr "" -#: whatsnew/3.5.rst:1362 +#: whatsnew/3.5.rst:1361 msgid "(Contributed by Leon Weber in :issue:`20480`.)" msgstr "" -#: whatsnew/3.5.rst:1366 +#: whatsnew/3.5.rst:1365 msgid "json" msgstr "" -#: whatsnew/3.5.rst:1368 +#: whatsnew/3.5.rst:1367 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 " @@ -1957,18 +1956,18 @@ msgid "" "`21650`.)" msgstr "" -#: whatsnew/3.5.rst:1373 +#: whatsnew/3.5.rst:1372 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 "" -#: whatsnew/3.5.rst:1379 +#: whatsnew/3.5.rst:1378 msgid "linecache" msgstr "" -#: whatsnew/3.5.rst:1381 +#: whatsnew/3.5.rst:1380 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 " @@ -1977,18 +1976,18 @@ msgid "" "indefinitely. (Contributed by Robert Collins in :issue:`17911`.)" msgstr "" -#: whatsnew/3.5.rst:1389 +#: whatsnew/3.5.rst:1388 msgid "locale" msgstr "" -#: whatsnew/3.5.rst:1391 +#: whatsnew/3.5.rst:1390 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 "" -#: whatsnew/3.5.rst:1394 +#: whatsnew/3.5.rst:1393 msgid "" ">>> import locale\n" ">>> locale.setlocale(locale.LC_NUMERIC, 'de_DE.UTF-8')\n" @@ -2001,15 +2000,15 @@ msgid "" "'1234.56'" msgstr "" -#: whatsnew/3.5.rst:1404 +#: whatsnew/3.5.rst:1403 msgid "(Contributed by Cédric Krier in :issue:`13918`.)" msgstr "" -#: whatsnew/3.5.rst:1408 +#: whatsnew/3.5.rst:1407 msgid "logging" msgstr "" -#: whatsnew/3.5.rst:1410 +#: whatsnew/3.5.rst:1409 msgid "" "All logging methods (:class:`~logging.Logger` :meth:`~logging.Logger.log`, :" "meth:`~logging.Logger.exception`, :meth:`~logging.Logger.critical`, :meth:" @@ -2017,7 +2016,7 @@ msgid "" "*exc_info* argument, in addition to boolean values and exception tuples::" msgstr "" -#: whatsnew/3.5.rst:1416 +#: whatsnew/3.5.rst:1415 msgid "" ">>> import logging\n" ">>> try:\n" @@ -2027,11 +2026,11 @@ msgid "" "ERROR:root:exception" msgstr "" -#: whatsnew/3.5.rst:1423 +#: whatsnew/3.5.rst:1422 msgid "(Contributed by Yury Selivanov in :issue:`20537`.)" msgstr "" -#: whatsnew/3.5.rst:1425 +#: whatsnew/3.5.rst:1424 msgid "" "The :class:`handlers.HTTPHandler ` class now " "accepts an optional :class:`ssl.SSLContext` instance to configure SSL " @@ -2039,7 +2038,7 @@ msgid "" "`22788`.)" msgstr "" -#: whatsnew/3.5.rst:1430 +#: whatsnew/3.5.rst:1429 msgid "" "The :class:`handlers.QueueListener ` class " "now takes a *respect_handler_level* keyword argument which, if set to " @@ -2047,75 +2046,75 @@ msgid "" "(Contributed by Vinay Sajip.)" msgstr "" -#: whatsnew/3.5.rst:1437 +#: whatsnew/3.5.rst:1436 msgid "lzma" msgstr "" -#: whatsnew/3.5.rst:1439 +#: whatsnew/3.5.rst:1438 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 "" -#: whatsnew/3.5.rst:1446 +#: whatsnew/3.5.rst:1445 msgid "math" msgstr "" -#: whatsnew/3.5.rst:1448 +#: whatsnew/3.5.rst:1447 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 "" -#: whatsnew/3.5.rst:1451 +#: whatsnew/3.5.rst:1450 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 "" -#: whatsnew/3.5.rst:1454 +#: whatsnew/3.5.rst:1453 msgid "" -"A new :func:`~math.gcd` function has been added. The :func:`fractions.gcd` " +"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 "" -#: whatsnew/3.5.rst:1460 +#: whatsnew/3.5.rst:1459 msgid "multiprocessing" msgstr "" -#: whatsnew/3.5.rst:1462 +#: whatsnew/3.5.rst:1461 msgid "" ":func:`sharedctypes.synchronized() ` objects now support the :term:`context manager` protocol. " "(Contributed by Charles-François Natali in :issue:`21565`.)" msgstr "" -#: whatsnew/3.5.rst:1468 +#: whatsnew/3.5.rst:1467 msgid "operator" msgstr "" -#: whatsnew/3.5.rst:1470 +#: whatsnew/3.5.rst:1469 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 "" -#: whatsnew/3.5.rst:1474 +#: whatsnew/3.5.rst:1473 msgid "" "New :func:`~operator.matmul` and :func:`~operator.imatmul` functions to " "perform matrix multiplication. (Contributed by Benjamin Peterson in :issue:" "`21176`.)" msgstr "" -#: whatsnew/3.5.rst:1480 +#: whatsnew/3.5.rst:1479 msgid "os" msgstr "" -#: whatsnew/3.5.rst:1482 +#: whatsnew/3.5.rst:1481 msgid "" "The new :func:`~os.scandir` function returning an iterator of :class:`~os." "DirEntry` objects has been added. If possible, :func:`~os.scandir` extracts " @@ -2125,7 +2124,7 @@ msgid "" "of Victor Stinner in :issue:`22524`.)" msgstr "" -#: whatsnew/3.5.rst:1489 +#: whatsnew/3.5.rst:1488 msgid "" "On Windows, a new :attr:`stat_result.st_file_attributes ` attribute is now available. It corresponds to the " @@ -2134,7 +2133,7 @@ msgid "" "issue:`21719`.)" msgstr "" -#: whatsnew/3.5.rst:1495 +#: whatsnew/3.5.rst:1494 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 " @@ -2142,27 +2141,27 @@ msgid "" "descriptor exhaustion. (Contributed by Victor Stinner in :issue:`22181`.)" msgstr "" -#: whatsnew/3.5.rst:1500 +#: whatsnew/3.5.rst:1499 msgid "" "New :func:`~os.get_blocking` and :func:`~os.set_blocking` functions allow " "getting and setting a file descriptor's blocking mode (:const:`~os." "O_NONBLOCK`.) (Contributed by Victor Stinner in :issue:`22054`.)" msgstr "" -#: whatsnew/3.5.rst:1504 +#: whatsnew/3.5.rst:1503 msgid "" "The :func:`~os.truncate` and :func:`~os.ftruncate` functions are now " "supported on Windows. (Contributed by Steve Dower in :issue:`23668`.)" msgstr "" -#: whatsnew/3.5.rst:1507 +#: whatsnew/3.5.rst:1506 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 "" -#: whatsnew/3.5.rst:1512 +#: whatsnew/3.5.rst:1511 msgid "" ">>> os.path.commonprefix(['/usr/lib', '/usr/local/lib'])\n" "'/usr/l'\n" @@ -2171,22 +2170,22 @@ msgid "" "'/usr'" msgstr "" -#: whatsnew/3.5.rst:1518 +#: whatsnew/3.5.rst:1517 msgid "(Contributed by Rafik Draoui and Serhiy Storchaka in :issue:`10395`.)" msgstr "" -#: whatsnew/3.5.rst:1522 +#: whatsnew/3.5.rst:1521 msgid "pathlib" msgstr "" -#: whatsnew/3.5.rst:1524 +#: whatsnew/3.5.rst:1523 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 "" -#: whatsnew/3.5.rst:1528 +#: whatsnew/3.5.rst:1527 msgid "" ">>> import pathlib\n" ">>> p1 = pathlib.Path('/etc/hosts')\n" @@ -2195,25 +2194,25 @@ msgid "" "True" msgstr "" -#: whatsnew/3.5.rst:1534 +#: whatsnew/3.5.rst:1533 msgid "(Contributed by Vajrasky Kok and Antoine Pitrou in :issue:`19775`.)" msgstr "" -#: whatsnew/3.5.rst:1536 +#: whatsnew/3.5.rst:1535 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 "" -#: whatsnew/3.5.rst:1540 +#: whatsnew/3.5.rst:1539 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 "" -#: whatsnew/3.5.rst:1544 +#: whatsnew/3.5.rst:1543 msgid "" "A new :meth:`Path.home() ` class method can be used to " "get a :class:`~pathlib.Path` instance representing the user’s home " @@ -2221,7 +2220,7 @@ msgid "" "`19777`.)" msgstr "" -#: whatsnew/3.5.rst:1549 +#: whatsnew/3.5.rst:1548 msgid "" "New :meth:`Path.write_text() `, :meth:`Path." "read_text() `, :meth:`Path.write_bytes() >> import pathlib\n" ">>> p = pathlib.Path('~/spam42')\n" @@ -2243,15 +2242,15 @@ msgid "" "3" msgstr "" -#: whatsnew/3.5.rst:1563 +#: whatsnew/3.5.rst:1562 msgid "(Contributed by Christopher Welborn in :issue:`20218`.)" msgstr "" -#: whatsnew/3.5.rst:1567 +#: whatsnew/3.5.rst:1566 msgid "pickle" msgstr "" -#: whatsnew/3.5.rst:1569 +#: whatsnew/3.5.rst:1568 msgid "" "Nested objects, such as unbound methods or nested classes, can now be " "pickled using :ref:`pickle protocols ` older than protocol " @@ -2259,28 +2258,28 @@ msgid "" "Serhiy Storchaka in :issue:`23611`.)" msgstr "" -#: whatsnew/3.5.rst:1576 +#: whatsnew/3.5.rst:1575 msgid "poplib" msgstr "" -#: whatsnew/3.5.rst:1578 +#: whatsnew/3.5.rst:1577 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 "" -#: whatsnew/3.5.rst:1584 +#: whatsnew/3.5.rst:1583 msgid "re" msgstr "" -#: whatsnew/3.5.rst:1586 +#: whatsnew/3.5.rst:1585 msgid "" "References and conditional references to groups with fixed length are now " "allowed in lookbehind assertions::" msgstr "" -#: whatsnew/3.5.rst:1589 +#: whatsnew/3.5.rst:1588 msgid "" ">>> import re\n" ">>> pat = re.compile(r'(a|b).(?<=\\1)c')\n" @@ -2290,32 +2289,33 @@ msgid "" "<_sre.SRE_Match object; span=(0, 3), match='bbc'>" msgstr "" -#: whatsnew/3.5.rst:1596 +#: whatsnew/3.5.rst:1595 msgid "(Contributed by Serhiy Storchaka in :issue:`9179`.)" msgstr "" -#: whatsnew/3.5.rst:1598 +#: whatsnew/3.5.rst:1597 msgid "" "The number of capturing groups in regular expressions is no longer limited " "to 100. (Contributed by Serhiy Storchaka in :issue:`22437`.)" msgstr "" -#: whatsnew/3.5.rst:1601 +#: whatsnew/3.5.rst:1600 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 "" -#: whatsnew/3.5.rst:1605 +#: whatsnew/3.5.rst:1604 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::" +"The :class:`re.error ` exceptions have new attributes, :" +"attr:`~re.PatternError.msg`, :attr:`~re.PatternError.pattern`, :attr:`~re." +"PatternError.pos`, :attr:`~re.PatternError.lineno`, and :attr:`~re." +"PatternError.colno`, that provide better context information about the " +"error::" msgstr "" -#: whatsnew/3.5.rst:1611 +#: whatsnew/3.5.rst:1610 msgid "" ">>> re.compile(\"\"\"\n" "... (?x)\n" @@ -2326,36 +2326,36 @@ msgid "" "sre_constants.error: multiple repeat at position 16 (line 3, column 7)" msgstr "" -#: whatsnew/3.5.rst:1619 +#: whatsnew/3.5.rst:1618 msgid "(Contributed by Serhiy Storchaka in :issue:`22578`.)" msgstr "" -#: whatsnew/3.5.rst:1623 +#: whatsnew/3.5.rst:1622 msgid "readline" msgstr "" -#: whatsnew/3.5.rst:1625 +#: whatsnew/3.5.rst:1624 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 "" -#: whatsnew/3.5.rst:1631 +#: whatsnew/3.5.rst:1630 msgid "selectors" msgstr "" -#: whatsnew/3.5.rst:1633 +#: whatsnew/3.5.rst:1632 msgid "" "The new :class:`~selectors.DevpollSelector` supports efficient ``/dev/poll`` " "polling on Solaris. (Contributed by Giampaolo Rodola' in :issue:`18931`.)" msgstr "" -#: whatsnew/3.5.rst:1639 +#: whatsnew/3.5.rst:1638 msgid "shutil" msgstr "" -#: whatsnew/3.5.rst:1641 +#: whatsnew/3.5.rst:1640 msgid "" "The :func:`~shutil.move` function now accepts a *copy_function* argument, " "allowing, for example, the :func:`~shutil.copy` function to be used instead " @@ -2363,23 +2363,23 @@ msgid "" "metadata when moving. (Contributed by Claudiu Popa in :issue:`19840`.)" msgstr "" -#: whatsnew/3.5.rst:1647 +#: whatsnew/3.5.rst:1646 msgid "" "The :func:`~shutil.make_archive` function now supports the *xztar* format. " "(Contributed by Serhiy Storchaka in :issue:`5411`.)" msgstr "" -#: whatsnew/3.5.rst:1652 +#: whatsnew/3.5.rst:1651 msgid "signal" msgstr "" -#: whatsnew/3.5.rst:1654 +#: whatsnew/3.5.rst:1653 msgid "" "On Windows, the :func:`~signal.set_wakeup_fd` function now also supports " "socket handles. (Contributed by Victor Stinner in :issue:`22018`.)" msgstr "" -#: whatsnew/3.5.rst:1657 +#: whatsnew/3.5.rst:1656 msgid "" "Various ``SIG*`` constants in the :mod:`signal` module have been converted " "into :mod:`Enums `. This allows meaningful names to be printed during " @@ -2387,11 +2387,11 @@ msgid "" "Rodola' in :issue:`21076`.)" msgstr "" -#: whatsnew/3.5.rst:1664 +#: whatsnew/3.5.rst:1663 msgid "smtpd" msgstr "" -#: whatsnew/3.5.rst:1666 +#: whatsnew/3.5.rst:1665 msgid "" "Both the :class:`!SMTPServer` and :class:`!SMTPChannel` classes now accept a " "*decode_data* keyword argument to determine if the ``DATA`` portion of the " @@ -2403,7 +2403,7 @@ msgid "" "arguments. (Contributed by Maciej Szulik in :issue:`19662`.)" msgstr "" -#: whatsnew/3.5.rst:1677 +#: whatsnew/3.5.rst:1676 msgid "" "The :class:`!SMTPServer` class now advertises the ``8BITMIME`` extension (:" "rfc:`6152`) if *decode_data* has been set ``True``. If the client specifies " @@ -2412,7 +2412,7 @@ msgid "" "Milan Oberkirch and R. David Murray in :issue:`21795`.)" msgstr "" -#: whatsnew/3.5.rst:1684 +#: whatsnew/3.5.rst:1683 msgid "" "The :class:`!SMTPServer` class now also supports the ``SMTPUTF8`` extension " "(:rfc:`6531`: Internationalized Email). If the client specified ``SMTPUTF8 " @@ -2422,25 +2422,25 @@ msgid "" "``SMTPUTF8`` data. (Contributed by Milan Oberkirch in :issue:`21725`.)" msgstr "" -#: whatsnew/3.5.rst:1692 +#: whatsnew/3.5.rst:1691 msgid "" "It is now possible to provide, directly or via name resolution, IPv6 " "addresses in the :class:`!SMTPServer` constructor, and have it successfully " "connect. (Contributed by Milan Oberkirch in :issue:`14758`.)" msgstr "" -#: whatsnew/3.5.rst:1698 +#: whatsnew/3.5.rst:1697 msgid "smtplib" msgstr "" -#: whatsnew/3.5.rst:1700 +#: whatsnew/3.5.rst:1699 msgid "" "A new :meth:`SMTP.auth() ` method provides a convenient " "way to implement custom authentication mechanisms. (Contributed by Milan " "Oberkirch in :issue:`15014`.)" msgstr "" -#: whatsnew/3.5.rst:1704 +#: whatsnew/3.5.rst:1703 msgid "" "The :meth:`SMTP.set_debuglevel() ` method now " "accepts an additional debuglevel (2), which enables timestamps in debug " @@ -2448,7 +2448,7 @@ msgid "" "`16914`.)" msgstr "" -#: whatsnew/3.5.rst:1708 +#: whatsnew/3.5.rst:1707 msgid "" "Both the :meth:`SMTP.sendmail() ` and :meth:`SMTP." "send_message() ` methods now support :rfc:`6531` " @@ -2456,27 +2456,27 @@ msgid "" "`22027`.)" msgstr "" -#: whatsnew/3.5.rst:1715 +#: whatsnew/3.5.rst:1714 msgid "sndhdr" msgstr "" -#: whatsnew/3.5.rst:1717 +#: whatsnew/3.5.rst:1716 msgid "" "The :func:`!what` and :func:`!whathdr` functions now return a :func:" "`~collections.namedtuple`. (Contributed by Claudiu Popa in :issue:`18615`.)" msgstr "" -#: whatsnew/3.5.rst:1723 +#: whatsnew/3.5.rst:1722 msgid "socket" msgstr "" -#: whatsnew/3.5.rst:1725 +#: whatsnew/3.5.rst:1724 msgid "" "Functions with timeouts now use a monotonic clock, instead of a system " "clock. (Contributed by Victor Stinner in :issue:`22043`.)" msgstr "" -#: whatsnew/3.5.rst:1728 +#: whatsnew/3.5.rst:1727 msgid "" "A new :meth:`socket.sendfile() ` method allows " "sending a file over a socket by using the high-performance :func:`os." @@ -2485,7 +2485,7 @@ msgid "" "(Contributed by Giampaolo Rodola' in :issue:`17552`.)" msgstr "" -#: whatsnew/3.5.rst:1734 +#: whatsnew/3.5.rst:1733 msgid "" "The :meth:`socket.sendall() ` method no longer resets " "the socket timeout every time bytes are received or sent. The socket " @@ -2493,7 +2493,7 @@ msgid "" "Victor Stinner in :issue:`23853`.)" msgstr "" -#: whatsnew/3.5.rst:1739 +#: whatsnew/3.5.rst:1738 msgid "" "The *backlog* argument of the :meth:`socket.listen() ` " "method is now optional. By default it is set to :data:`SOMAXCONN ` method can be " "used to create a new ``SSLObject`` instance." msgstr "" -#: whatsnew/3.5.rst:1771 +#: whatsnew/3.5.rst:1770 msgid "Application-Layer Protocol Negotiation Support" msgstr "" -#: whatsnew/3.5.rst:1773 +#: whatsnew/3.5.rst:1772 msgid "(Contributed by Benjamin Peterson in :issue:`20188`.)" msgstr "" -#: whatsnew/3.5.rst:1775 +#: whatsnew/3.5.rst:1774 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 "" -#: whatsnew/3.5.rst:1779 +#: whatsnew/3.5.rst:1778 msgid "" "The new :meth:`SSLContext.set_alpn_protocols() ` can be used to specify which protocols a socket should " "advertise during the TLS handshake." msgstr "" -#: whatsnew/3.5.rst:1783 +#: whatsnew/3.5.rst:1782 msgid "" "The new :meth:`SSLSocket.selected_alpn_protocol() ` returns the protocol that was selected during the " @@ -2566,69 +2566,67 @@ msgid "" "support is present." msgstr "" -#: whatsnew/3.5.rst:1790 +#: whatsnew/3.5.rst:1789 msgid "Other Changes" msgstr "" -#: whatsnew/3.5.rst:1792 +#: whatsnew/3.5.rst:1791 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 "" -#: whatsnew/3.5.rst:1796 +#: whatsnew/3.5.rst:1795 msgid "" -"The :class:`~ssl.SSLSocket` class now implements a :meth:`SSLSocket." -"sendfile() ` method. (Contributed by Giampaolo " -"Rodola' in :issue:`17552`.)" +"The :class:`~ssl.SSLSocket` class now implements a :meth:`!SSLSocket." +"sendfile` method. (Contributed by Giampaolo Rodola' in :issue:`17552`.)" msgstr "" -#: whatsnew/3.5.rst:1800 +#: whatsnew/3.5.rst:1799 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`.)" +"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 "" -#: whatsnew/3.5.rst:1805 +#: whatsnew/3.5.rst:1804 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 "" -#: whatsnew/3.5.rst:1809 +#: whatsnew/3.5.rst:1808 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`.)" +"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 "" -#: whatsnew/3.5.rst:1814 +#: whatsnew/3.5.rst:1813 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`.)" +"`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 "" -#: whatsnew/3.5.rst:1822 +#: whatsnew/3.5.rst:1821 msgid "" -"The :func:`~ssl.match_hostname` function now supports matching of IP " -"addresses. (Contributed by Antoine Pitrou in :issue:`23239`.)" +"The :func:`!match_hostname` function now supports matching of IP addresses. " +"(Contributed by Antoine Pitrou in :issue:`23239`.)" msgstr "" -#: whatsnew/3.5.rst:1827 +#: whatsnew/3.5.rst:1826 msgid "sqlite3" msgstr "" -#: whatsnew/3.5.rst:1829 +#: whatsnew/3.5.rst:1828 msgid "" "The :class:`~sqlite3.Row` class now fully supports the sequence protocol, in " "particular :func:`reversed` iteration and slice indexing. (Contributed by " @@ -2636,11 +2634,11 @@ msgid "" "Serhiy Storchaka in :issue:`13583`.)" msgstr "" -#: whatsnew/3.5.rst:1838 +#: whatsnew/3.5.rst:1837 msgid "subprocess" msgstr "" -#: whatsnew/3.5.rst:1840 +#: whatsnew/3.5.rst:1839 msgid "" "The new :func:`~subprocess.run` function has been added. It runs the " "specified command and returns a :class:`~subprocess.CompletedProcess` " @@ -2650,7 +2648,7 @@ msgid "" "(Contributed by Thomas Kluyver in :issue:`23342`.)" msgstr "" -#: whatsnew/3.5.rst:1850 +#: whatsnew/3.5.rst:1849 msgid "" ">>> subprocess.run([\"ls\", \"-l\"]) # doesn't capture output\n" "CompletedProcess(args=['ls', '-l'], returncode=0)\n" @@ -2666,50 +2664,50 @@ msgid "" "stdout=b'crw-rw-rw- 1 root root 1, 3 Jan 23 16:23 /dev/null\\n')" msgstr "" -#: whatsnew/3.5.rst:1864 +#: whatsnew/3.5.rst:1863 msgid "sys" msgstr "" -#: whatsnew/3.5.rst:1866 +#: whatsnew/3.5.rst:1865 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." +"A new :func:`!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:`!" "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 "" -#: whatsnew/3.5.rst:1874 +#: whatsnew/3.5.rst:1873 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 "" -#: whatsnew/3.5.rst:1880 +#: whatsnew/3.5.rst:1879 msgid "sysconfig" msgstr "" -#: whatsnew/3.5.rst:1882 +#: whatsnew/3.5.rst:1881 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 "" -#: whatsnew/3.5.rst:1888 +#: whatsnew/3.5.rst:1887 msgid "tarfile" msgstr "" -#: whatsnew/3.5.rst:1890 +#: whatsnew/3.5.rst:1889 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 "" -#: whatsnew/3.5.rst:1893 +#: whatsnew/3.5.rst:1892 msgid "" "The :meth:`TarFile.extractall() ` and :meth:" "`TarFile.extract() ` methods now take a keyword " @@ -2720,7 +2718,7 @@ msgid "" "tarfile. (Contributed by Michael Vogt and Eric Smith in :issue:`23193`.)" msgstr "" -#: whatsnew/3.5.rst:1901 +#: whatsnew/3.5.rst:1900 msgid "" "The :meth:`TarFile.list() ` now accepts an optional " "*members* keyword argument that can be set to a subset of the list returned " @@ -2728,50 +2726,50 @@ msgid "" "by Serhiy Storchaka in :issue:`21549`.)" msgstr "" -#: whatsnew/3.5.rst:1908 +#: whatsnew/3.5.rst:1907 msgid "threading" msgstr "" -#: whatsnew/3.5.rst:1910 +#: whatsnew/3.5.rst:1909 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 "" -#: whatsnew/3.5.rst:1917 +#: whatsnew/3.5.rst:1916 msgid "time" msgstr "" -#: whatsnew/3.5.rst:1919 +#: whatsnew/3.5.rst:1918 msgid "" "The :func:`~time.monotonic` function is now always available. (Contributed " "by Victor Stinner in :issue:`22043`.)" msgstr "" -#: whatsnew/3.5.rst:1924 +#: whatsnew/3.5.rst:1923 msgid "timeit" msgstr "" -#: whatsnew/3.5.rst:1926 +#: whatsnew/3.5.rst:1925 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 "" -#: whatsnew/3.5.rst:1930 +#: whatsnew/3.5.rst:1929 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 "" -#: whatsnew/3.5.rst:1936 +#: whatsnew/3.5.rst:1935 msgid "tkinter" msgstr "" -#: whatsnew/3.5.rst:1938 +#: whatsnew/3.5.rst:1937 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` " @@ -2779,36 +2777,36 @@ msgid "" "(Contributed by Zachary Ware in :issue:`20035`.)" msgstr "" -#: whatsnew/3.5.rst:1947 +#: whatsnew/3.5.rst:1946 msgid "traceback" msgstr "" -#: whatsnew/3.5.rst:1949 +#: whatsnew/3.5.rst:1948 msgid "" "New :func:`~traceback.walk_stack` and :func:`~traceback.walk_tb` functions " "to conveniently traverse frame and :ref:`traceback objects `. (Contributed by Robert Collins in :issue:`17911`.)" msgstr "" -#: whatsnew/3.5.rst:1954 +#: 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 "" -#: whatsnew/3.5.rst:1958 +#: 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 "" -#: whatsnew/3.5.rst:1964 +#: whatsnew/3.5.rst:1963 msgid "types" msgstr "" -#: whatsnew/3.5.rst:1966 +#: whatsnew/3.5.rst:1965 msgid "" "A new :func:`~types.coroutine` function to transform :term:`generator " "` and :class:`generator-like `_." msgstr "" -#: whatsnew/3.5.rst:1985 +#: whatsnew/3.5.rst:1984 msgid "unittest" msgstr "" -#: whatsnew/3.5.rst:1987 +#: whatsnew/3.5.rst:1986 msgid "" "The :meth:`TestLoader.loadTestsFromModule() ` method now accepts a keyword-only argument *pattern* " @@ -2848,47 +2846,47 @@ msgid "" "`16662`.)" msgstr "" -#: whatsnew/3.5.rst:1994 +#: 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 "" -#: whatsnew/3.5.rst:1999 +#: 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 "" -#: whatsnew/3.5.rst:2004 +#: whatsnew/3.5.rst:2003 msgid "unittest.mock" msgstr "" -#: whatsnew/3.5.rst:2006 +#: whatsnew/3.5.rst:2005 msgid "The :class:`~unittest.mock.Mock` class has the following improvements:" msgstr "" -#: whatsnew/3.5.rst:2008 +#: 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 "" -#: whatsnew/3.5.rst:2013 +#: 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 "" -#: whatsnew/3.5.rst:2017 +#: 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`.)" +"The :class:`~unittest.mock.MagicMock` class now supports :meth:`~object." +"__truediv__`, :meth:`~object.__divmod__` and :meth:`~object.__matmul__` " +"operators. (Contributed by Johannes Baiter in :issue:`20968`, and Håkan " +"Lövdahl in :issue:`23581` and :issue:`23568`.)" msgstr "" #: whatsnew/3.5.rst:2022 @@ -3325,14 +3323,14 @@ msgstr "" #: whatsnew/3.5.rst:2293 msgid "" -"The :mod:`formatter` module has now graduated to full deprecation and is " +"The :mod:`!formatter` module has now graduated to full deprecation and is " "still slated for removal in Python 3.6." msgstr "" #: whatsnew/3.5.rst:2296 msgid "" -"The :func:`asyncio.async` function is deprecated in favor of :func:`~asyncio." -"ensure_future`." +"The :func:`!asyncio.async` function is deprecated in favor of :func:" +"`~asyncio.ensure_future`." msgstr "" #: whatsnew/3.5.rst:2299 @@ -3363,9 +3361,9 @@ msgstr "" #: whatsnew/3.5.rst:2317 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. " +"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 "" @@ -3379,16 +3377,16 @@ msgstr "" #: whatsnew/3.5.rst:2327 msgid "" -"The :func:`inspect.getargspec` function is deprecated and scheduled to be " +"The :func:`!inspect.getargspec` function is deprecated and scheduled to be " "removed in Python 3.6. (See :issue:`20438` for details.)" msgstr "" #: whatsnew/3.5.rst:2330 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`.)" +"getcallargs`, and :func:`!formatargspec` functions are deprecated in favor " +"of the :func:`inspect.signature` API. (Contributed by Yury Selivanov in :" +"issue:`20438`.)" msgstr "" #: whatsnew/3.5.rst:2335 @@ -3510,7 +3508,7 @@ msgstr "" #: whatsnew/3.5.rst:2408 msgid "" -"The :meth:`ssl.SSLSocket.send` method now raises either :exc:`ssl." +"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`.)" @@ -3563,13 +3561,12 @@ msgstr "" #: whatsnew/3.5.rst:2443 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`.)" +"When an import loader defines :meth:`~importlib.abc.Loader.exec_module` it " +"is now expected to also define :meth:`~importlib.abc.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.abc.Loader.create_module` to " +"return ``None``. (Contributed by Brett Cannon in :issue:`23014`.)" msgstr "" #: whatsnew/3.5.rst:2451 @@ -3632,7 +3629,7 @@ msgstr "" #: whatsnew/3.5.rst:2490 msgid "" "The :mod:`smtplib` module now uses :data:`sys.stderr` instead of the " -"previous module-level :data:`stderr` variable for debug output. If your " +"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 "" @@ -3669,14 +3666,14 @@ msgstr "" #: whatsnew/3.5.rst:2516 msgid "" -"The undocumented :c:member:`!format` member of the (non-public) :c:type:" -"`PyMemoryViewObject` structure has been removed. All extensions relying on " +"The undocumented :c:member:`!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 "" #: whatsnew/3.5.rst:2521 msgid "" -"The :c:type:`PyMemAllocator` structure was renamed to :c:type:" +"The :c:type:`!PyMemAllocator` structure was renamed to :c:type:" "`PyMemAllocatorEx` and a new ``calloc`` field was added." msgstr "" diff --git a/whatsnew/3.6.po b/whatsnew/3.6.po index 4c64cde4..d7bd88e8 100644 --- a/whatsnew/3.6.po +++ b/whatsnew/3.6.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1017,8 +1017,9 @@ msgstr "" 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`.)" +"if a class sets :meth:`~object.__iter__` to ``None``, the class is not " +"iterable. (Contributed by Andrew Barnert and Ivan Levkivskyi in :issue:" +"`25958`.)" msgstr "" #: whatsnew/3.6.rst:752 @@ -1204,8 +1205,8 @@ msgstr "" #: whatsnew/3.6.rst:874 msgid "" -":meth:`Future.set_exception ` will now " -"raise :exc:`TypeError` when passed an instance of the :exc:`StopIteration` " +":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 "" @@ -1281,7 +1282,7 @@ msgstr "" #: 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. " +"iterable classes that also provide the :meth:`~object.__reversed__` method. " "(Contributed by Ivan Levkivskyi in :issue:`25987`.)" msgstr "" @@ -1300,7 +1301,7 @@ msgid "" "Raymond Hettinger in :issue:`17941`.)" msgstr "" -#: whatsnew/3.6.rst:2295 +#: whatsnew/3.6.rst:2297 msgid "" "The *verbose* and *rename* arguments for :func:`~collections.namedtuple` are " "now keyword-only. (Contributed by Raymond Hettinger in :issue:`25628`.)" @@ -1345,8 +1346,8 @@ msgstr "" #: 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 " +"new :attr:`~datetime.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`.)" @@ -1463,7 +1464,7 @@ msgstr "" #: 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 " +"class:`~enum.Flag` and :class:`~enum.IntFlag`. Both are used to define " "constants that can be combined using the bitwise operators. (Contributed by " "Ethan Furman in :issue:`23591`.)" msgstr "" @@ -1471,7 +1472,7 @@ msgstr "" #: whatsnew/3.6.rst:1059 msgid "" "Many standard library modules have been updated to use the :class:`~enum." -"IntFlags` class for their constants." +"IntFlag` class for their constants." msgstr "" #: whatsnew/3.6.rst:1062 @@ -1721,8 +1722,8 @@ msgstr "" #: 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:" +"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. " @@ -1793,7 +1794,7 @@ msgstr "" 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 " +"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 "" @@ -2014,9 +2015,9 @@ msgstr "" #: 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." +"The :attr:`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 "" @@ -2061,7 +2062,7 @@ msgstr "" #: 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`.)" +"class:`~enum.IntFlag`. (Contributed by Christian Heimes in :issue:`28025`.)" msgstr "" #: whatsnew/3.6.rst:1471 @@ -2155,8 +2156,8 @@ msgstr "" #: whatsnew/3.6.rst:1534 msgid "" -"The :class:`~time.struct_time` attributes :attr:`tm_gmtoff` and :attr:" -"`tm_zone` are now available on all platforms." +"The :class:`~time.struct_time` attributes :attr:`!tm_gmtoff` and :attr:`!" +"tm_zone` are now available on all platforms." msgstr "" #: whatsnew/3.6.rst:1539 @@ -2183,13 +2184,12 @@ msgstr "" #: whatsnew/3.6.rst:1554 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`)." +"Added methods :meth:`!Variable.trace_add`, :meth:`!Variable.trace_remove` " +"and :meth:`!trace_info` in the :class:`!tkinter.Variable` class. They " +"replace old methods :meth:`!trace_variable`, :meth:`!trace`, :meth:`!" +"trace_vdelete` and :meth:`!trace_vinfo` that use obsolete Tcl commands and " +"might not work in future versions of Tcl. (Contributed by Serhiy Storchaka " +"in :issue:`22115`)." msgstr "" #: whatsnew/3.6.rst:1567 @@ -2353,8 +2353,9 @@ msgstr "" 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`.)" +"`AbstractHTTPHandler ` now falls back to use " +"chunked transfer encoding. (Contributed by Demian Brecht and Rolf Krahl in :" +"issue:`12319`.)" msgstr "" #: whatsnew/3.6.rst:1683 @@ -2387,8 +2388,8 @@ msgstr "" 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` " +"`ResourceWarning`. A *source* attribute has also been added to :class:`!" +"warnings.WarningMessage` (contributed by Victor Stinner in :issue:`26568` " "and :issue:`26567`)." msgstr "" @@ -2767,11 +2768,11 @@ msgstr "" #: whatsnew/3.6.rst:1945 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`.)" +"The :meth:`~object.__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 "" #: whatsnew/3.6.rst:1951 @@ -3094,10 +3095,9 @@ msgstr "" #: whatsnew/3.6.rst:2192 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`." +"Reading the :attr:`!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 "" #: whatsnew/3.6.rst:2197 @@ -3108,14 +3108,14 @@ msgstr "" #: whatsnew/3.6.rst:2200 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`.)" +"The following modules have had missing APIs added to their :attr:`~module." +"__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 "" #: whatsnew/3.6.rst:2211 @@ -3186,14 +3186,15 @@ 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." +"__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 "" -#: whatsnew/3.6.rst:2262 +#: whatsnew/3.6.rst:2264 msgid "" "In ``distutils.command.sdist.sdist``, the ``default_format`` attribute has " "been removed and is no longer honored. Instead, the gzipped tarfile format " @@ -3203,19 +3204,19 @@ msgid "" "containing the following:" msgstr "" -#: whatsnew/3.6.rst:2270 +#: whatsnew/3.6.rst:2272 msgid "" "[sdist]\n" "formats=zip" msgstr "" -#: whatsnew/3.6.rst:2275 +#: whatsnew/3.6.rst:2277 msgid "" "This behavior has also been backported to earlier Python versions by " "Setuptools 26.0.0." msgstr "" -#: whatsnew/3.6.rst:2278 +#: whatsnew/3.6.rst:2280 msgid "" "In the :mod:`urllib.request` module and the :meth:`http.client." "HTTPConnection.request` method, if no Content-Length header field has been " @@ -3226,47 +3227,46 @@ msgid "" "`12319`.)" msgstr "" -#: whatsnew/3.6.rst:2287 +#: whatsnew/3.6.rst:2289 msgid "" "The :class:`~csv.DictReader` now returns rows of type :class:`~collections." "OrderedDict`. (Contributed by Steve Holden in :issue:`27842`.)" msgstr "" -#: whatsnew/3.6.rst:2291 +#: whatsnew/3.6.rst:2293 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 "" -#: whatsnew/3.6.rst:2299 +#: whatsnew/3.6.rst:2301 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 "" -#: whatsnew/3.6.rst:2303 +#: whatsnew/3.6.rst:2305 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 "" -#: whatsnew/3.6.rst:2308 +#: whatsnew/3.6.rst:2310 msgid "" -"The :func:`mmap.write() ` function now returns the number of " -"bytes written like other write methods. (Contributed by Jakub Stasiak in :" -"issue:`26335`.)" +"The :func:`mmap.mmap.write` function now returns the number of bytes written " +"like other write methods. (Contributed by Jakub Stasiak in :issue:`26335`.)" msgstr "" -#: whatsnew/3.6.rst:2312 +#: whatsnew/3.6.rst:2314 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 "" -#: whatsnew/3.6.rst:2316 +#: whatsnew/3.6.rst:2318 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 " @@ -3275,7 +3275,7 @@ msgid "" "in :issue:`25953`.)" msgstr "" -#: whatsnew/3.6.rst:2322 +#: whatsnew/3.6.rst:2324 msgid "" ":class:`zipfile.ZipFile` will now raise :exc:`NotImplementedError` for " "unrecognized compression values. Previously a plain :exc:`RuntimeError` was " @@ -3285,7 +3285,7 @@ msgid "" "`RuntimeError` was raised in those scenarios." msgstr "" -#: whatsnew/3.6.rst:2329 +#: whatsnew/3.6.rst:2331 msgid "" "when custom metaclasses are combined with zero-argument :func:`super` or " "direct references from methods to the implicit ``__class__`` closure " @@ -3295,7 +3295,7 @@ msgid "" "Python 3.8." msgstr "" -#: whatsnew/3.6.rst:2336 +#: whatsnew/3.6.rst:2338 msgid "" "With the introduction of :exc:`ModuleNotFoundError`, import system consumers " "may start expecting import system replacements to raise that more specific " @@ -3308,11 +3308,11 @@ msgid "" "the default import system will raise the new subclass when appropriate." msgstr "" -#: whatsnew/3.6.rst:2348 +#: whatsnew/3.6.rst:2350 msgid "Changes in the C API" msgstr "" -#: whatsnew/3.6.rst:2350 +#: whatsnew/3.6.rst:2352 msgid "" "The :c:func:`PyMem_Malloc` allocator family now uses the :ref:`pymalloc " "allocator ` rather than the system :c:func:`malloc`. Applications " @@ -3321,29 +3321,29 @@ msgid "" "usage of memory allocators in your application. See :issue:`26249`." msgstr "" -#: whatsnew/3.6.rst:2356 +#: whatsnew/3.6.rst:2358 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 "" -#: whatsnew/3.6.rst:2361 +#: whatsnew/3.6.rst:2363 msgid "CPython bytecode changes" msgstr "" -#: whatsnew/3.6.rst:2363 +#: whatsnew/3.6.rst:2365 msgid "" "There have been several major changes to the :term:`bytecode` in Python 3.6." msgstr "" -#: whatsnew/3.6.rst:2365 +#: whatsnew/3.6.rst:2367 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 "" -#: whatsnew/3.6.rst:2369 +#: whatsnew/3.6.rst:2371 msgid "" "The new :opcode:`!FORMAT_VALUE` and :opcode:`BUILD_STRING` opcodes as part " "of the :ref:`formatted string literal ` implementation. " @@ -3351,14 +3351,14 @@ msgid "" "`27078`.)" msgstr "" -#: whatsnew/3.6.rst:2374 +#: whatsnew/3.6.rst:2376 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 "" -#: whatsnew/3.6.rst:2378 +#: whatsnew/3.6.rst:2380 msgid "" "The function call opcodes have been heavily reworked for better performance " "and simpler implementation. The :opcode:`MAKE_FUNCTION`, :opcode:`!" @@ -3370,22 +3370,22 @@ msgid "" "issue:`27095`, and Serhiy Storchaka in :issue:`27213`, :issue:`28257`.)" msgstr "" -#: whatsnew/3.6.rst:2389 +#: whatsnew/3.6.rst:2391 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 "" -#: whatsnew/3.6.rst:2395 +#: whatsnew/3.6.rst:2397 msgid "Notable changes in Python 3.6.2" msgstr "" -#: whatsnew/3.6.rst:2398 +#: whatsnew/3.6.rst:2400 msgid "New ``make regen-all`` build target" msgstr "" -#: whatsnew/3.6.rst:2400 +#: whatsnew/3.6.rst:2402 msgid "" "To simplify cross-compilation, and to ensure that CPython can reliably be " "compiled without requiring an existing version of Python to already be " @@ -3393,43 +3393,43 @@ msgid "" "recompile generated files based on file modification times." msgstr "" -#: whatsnew/3.6.rst:2405 +#: whatsnew/3.6.rst:2407 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 "" -#: whatsnew/3.6.rst:2409 +#: whatsnew/3.6.rst:2411 msgid "" "More selective regeneration targets are also defined - see :source:`Makefile." "pre.in` for details." msgstr "" -#: whatsnew/3.6.rst:2425 +#: whatsnew/3.6.rst:2427 msgid "(Contributed by Victor Stinner in :issue:`23404`.)" msgstr "" -#: whatsnew/3.6.rst:2418 +#: whatsnew/3.6.rst:2420 msgid "Removal of ``make touch`` build target" msgstr "" -#: whatsnew/3.6.rst:2420 +#: whatsnew/3.6.rst:2422 msgid "" "The ``make touch`` build target previously used to request implicit " "regeneration of generated files by updating their modification times has " "been removed." msgstr "" -#: whatsnew/3.6.rst:2423 +#: whatsnew/3.6.rst:2425 msgid "It has been replaced by the new ``make regen-all`` target." msgstr "" -#: whatsnew/3.6.rst:2431 +#: whatsnew/3.6.rst:2433 msgid "Notable changes in Python 3.6.4" msgstr "" -#: whatsnew/3.6.rst:2433 +#: whatsnew/3.6.rst:2435 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 " @@ -3437,28 +3437,28 @@ msgid "" "issue:`22898` and :issue:`30697`.)" msgstr "" -#: whatsnew/3.6.rst:2440 +#: whatsnew/3.6.rst:2442 msgid "Notable changes in Python 3.6.5" msgstr "" -#: whatsnew/3.6.rst:2442 +#: whatsnew/3.6.rst:2444 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 "" -#: whatsnew/3.6.rst:2448 +#: whatsnew/3.6.rst:2450 msgid "Notable changes in Python 3.6.7" msgstr "" -#: whatsnew/3.6.rst:2450 +#: whatsnew/3.6.rst:2452 msgid "" ":mod:`xml.dom.minidom` and :mod:`xml.sax` modules no longer process external " "entities by default. See also :gh:`61441`." msgstr "" -#: whatsnew/3.6.rst:2453 +#: whatsnew/3.6.rst:2455 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 " @@ -3466,11 +3466,11 @@ msgid "" "Ammar Askar in :issue:`33899`.)" msgstr "" -#: whatsnew/3.6.rst:2459 +#: whatsnew/3.6.rst:2461 msgid "Notable changes in Python 3.6.10" msgstr "" -#: whatsnew/3.6.rst:2461 +#: whatsnew/3.6.rst:2463 msgid "" "Due to significant security concerns, the *reuse_address* parameter of :meth:" "`asyncio.loop.create_datagram_endpoint` is no longer supported. This is " @@ -3480,11 +3480,11 @@ msgid "" "`37228`.)" msgstr "" -#: whatsnew/3.6.rst:2469 +#: whatsnew/3.6.rst:2471 msgid "Notable changes in Python 3.6.13" msgstr "" -#: whatsnew/3.6.rst:2471 +#: whatsnew/3.6.rst:2473 msgid "" "Earlier Python versions allowed using both ``;`` and ``&`` as query " "parameter separators in :func:`urllib.parse.parse_qs` and :func:`urllib." @@ -3496,11 +3496,11 @@ msgid "" "Adam Goldschmidt, Senthil Kumaran and Ken Jin in :issue:`42967`.)" msgstr "" -#: whatsnew/3.6.rst:2482 +#: whatsnew/3.6.rst:2484 msgid "Notable changes in Python 3.6.14" msgstr "" -#: whatsnew/3.6.rst:2484 +#: whatsnew/3.6.rst:2486 msgid "" "A security fix alters the :class:`ftplib.FTP` behavior to not trust the IPv4 " "address sent from the remote server when setting up a passive data channel. " @@ -3509,7 +3509,7 @@ msgid "" "instance to ``True``. (See :gh:`87451`)" msgstr "" -#: whatsnew/3.6.rst:2490 +#: whatsnew/3.6.rst:2492 msgid "" "The presence of newline or tab characters in parts of a URL allows for some " "forms of attacks. Following the WHATWG specification that updates RFC 3986, " diff --git a/whatsnew/3.7.po b/whatsnew/3.7.po index 45f3bb61..409190f6 100644 --- a/whatsnew/3.7.po +++ b/whatsnew/3.7.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -462,9 +462,9 @@ msgstr "" #: whatsnew/3.7.rst:323 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." +"Python 3.7 allows defining :meth:`~module.__getattr__` on modules and will " +"call it whenever a module attribute is otherwise not found. Defining :meth:" +"`~module.__dir__` on modules is now also allowed." msgstr "" #: whatsnew/3.7.rst:327 @@ -494,27 +494,27 @@ msgid "" "module:" msgstr "" -#: whatsnew/3.7.rst:1451 +#: whatsnew/3.7.rst:1455 msgid ":func:`time.clock_gettime_ns`" msgstr "" -#: whatsnew/3.7.rst:1452 +#: whatsnew/3.7.rst:1456 msgid ":func:`time.clock_settime_ns`" msgstr "" -#: whatsnew/3.7.rst:1453 +#: whatsnew/3.7.rst:1457 msgid ":func:`time.monotonic_ns`" msgstr "" -#: whatsnew/3.7.rst:1454 +#: whatsnew/3.7.rst:1458 msgid ":func:`time.perf_counter_ns`" msgstr "" -#: whatsnew/3.7.rst:1455 +#: whatsnew/3.7.rst:1459 msgid ":func:`time.process_time_ns`" msgstr "" -#: whatsnew/3.7.rst:1456 +#: whatsnew/3.7.rst:1460 msgid ":func:`time.time_ns`" msgstr "" @@ -601,12 +601,12 @@ 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." +"is removed. The PEP introduces two special methods :meth:`~object." +"__class_getitem__` and :meth:`~object.__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 "" #: whatsnew/3.7.rst:421 @@ -866,7 +866,7 @@ msgid "" "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." +"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 "" @@ -896,7 +896,7 @@ msgid "" "positional arguments. (Contributed by paul.j3 in :issue:`14191`.)" msgstr "" -#: whatsnew/3.7.rst:1964 +#: whatsnew/3.7.rst:1968 msgid "asyncio" msgstr "" @@ -1133,7 +1133,7 @@ msgid "" "(Contributed by Oz Tiram in :issue:`30095`.)" msgstr "" -#: whatsnew/3.7.rst:1978 +#: whatsnew/3.7.rst:1982 msgid "collections" msgstr "" @@ -1240,7 +1240,7 @@ msgid "" "(Contributed by Alexander Belopolsky in :issue:`5288`.)" msgstr "" -#: whatsnew/3.7.rst:1988 +#: whatsnew/3.7.rst:1992 msgid "dbm" msgstr "" @@ -1285,7 +1285,7 @@ msgid "" "in :issue:`11913`.)" msgstr "" -#: whatsnew/3.7.rst:1998 +#: whatsnew/3.7.rst:2002 msgid "enum" msgstr "" @@ -1298,12 +1298,12 @@ msgstr "" #: whatsnew/3.7.rst:913 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`.)" +"In Python 3.8, attempting to check for non-Enum objects in :class:`~enum." +"Enum` classes will raise a :exc:`TypeError` (e.g. ``1 in Color``); " +"similarly, attempting to check for non-Flag objects in a :class:`~enum.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 "" #: whatsnew/3.7.rst:922 @@ -1377,7 +1377,7 @@ msgstr "" #: whatsnew/3.7.rst:971 msgid "" "The new :class:`ThreadingHTTPServer ` class " -"uses threads to handle requests using :class:`~socketserver.ThreadingMixin`. " +"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 "" @@ -1485,7 +1485,7 @@ msgid "" "`17535`.)" msgstr "" -#: whatsnew/3.7.rst:2017 +#: whatsnew/3.7.rst:2021 msgid "importlib" msgstr "" @@ -1505,17 +1505,17 @@ msgstr "" #: whatsnew/3.7.rst:1055 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`.)" +":func:`importlib.util.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 "" #: whatsnew/3.7.rst:1060 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." +"The new :func:`importlib.util.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 "" #: whatsnew/3.7.rst:1066 @@ -1553,7 +1553,7 @@ msgid "" "Roberts in :issue:`30537`.)" msgstr "" -#: whatsnew/3.7.rst:2035 +#: whatsnew/3.7.rst:2039 msgid "locale" msgstr "" @@ -1640,8 +1640,8 @@ msgstr "" #: whatsnew/3.7.rst:1150 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`.)" +"used to terminate the process using the :data:`~signal.SIGKILL` signal on " +"Unix. (Contributed by Vitor Pereira in :issue:`30794`.)" msgstr "" #: whatsnew/3.7.rst:1154 @@ -1817,7 +1817,7 @@ msgid "" "in :issue:`30050`.)" msgstr "" -#: whatsnew/3.7.rst:2058 +#: whatsnew/3.7.rst:2062 msgid "socket" msgstr "" @@ -1838,69 +1838,71 @@ msgstr "" #: whatsnew/3.7.rst:1283 msgid "" -"The :mod:`socket` module now exposes the :const:`socket.TCP_CONGESTION` " -"(Linux 2.6.13), :const:`socket.TCP_USER_TIMEOUT` (Linux 2.6.37), and :const:" -"`socket.TCP_NOTSENT_LOWAT` (Linux 3.12) constants. (Contributed by Omar " -"Sandoval in :issue:`26273` and Nathaniel J. Smith in :issue:`29728`.)" +"The :mod:`socket` module now exposes the :ref:`socket.TCP_CONGESTION ` (Linux 2.6.13), :ref:`socket.TCP_USER_TIMEOUT ` (Linux 2.6.37), and :ref:`socket.TCP_NOTSENT_LOWAT ` (Linux 3.12) constants. (Contributed by Omar Sandoval in :issue:" +"`26273` and Nathaniel J. Smith in :issue:`29728`.)" msgstr "" -#: whatsnew/3.7.rst:1289 +#: whatsnew/3.7.rst:1290 msgid "" "Support for :const:`socket.AF_VSOCK` sockets has been added to allow " "communication between virtual machines and their hosts. (Contributed by " "Cathy Avery in :issue:`27584`.)" msgstr "" -#: whatsnew/3.7.rst:1293 +#: whatsnew/3.7.rst:1294 msgid "" "Sockets now auto-detect family, type and protocol from file descriptor by " "default. (Contributed by Christian Heimes in :issue:`28134`.)" msgstr "" -#: whatsnew/3.7.rst:1299 +#: whatsnew/3.7.rst:1300 msgid "socketserver" msgstr "" -#: whatsnew/3.7.rst:1301 +#: whatsnew/3.7.rst:1302 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." +":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 "" -#: whatsnew/3.7.rst:1305 +#: whatsnew/3.7.rst:1308 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." +"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 "" -#: whatsnew/3.7.rst:1311 +#: whatsnew/3.7.rst:1315 msgid "sqlite3" msgstr "" -#: whatsnew/3.7.rst:1313 +#: whatsnew/3.7.rst:1317 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 "" -#: whatsnew/3.7.rst:1317 +#: whatsnew/3.7.rst:1321 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 "" -#: whatsnew/3.7.rst:2067 +#: whatsnew/3.7.rst:2071 msgid "ssl" msgstr "" -#: whatsnew/3.7.rst:1325 +#: whatsnew/3.7.rst:1329 msgid "" -"The :mod:`ssl` module now uses OpenSSL's builtin API instead of :func:`~ssl." +"The :mod:`ssl` module now uses OpenSSL's builtin API instead of :func:`!" "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 " @@ -1911,7 +1913,7 @@ msgid "" "`31399`.)" msgstr "" -#: whatsnew/3.7.rst:1336 +#: whatsnew/3.7.rst:1340 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 " @@ -1919,20 +1921,20 @@ msgid "" "The ssl module is mostly compatible with LibreSSL 2.7.2 and newer." msgstr "" -#: whatsnew/3.7.rst:1341 +#: whatsnew/3.7.rst:1345 msgid "" "The ``ssl`` module no longer sends IP addresses in SNI TLS extension. " "(Contributed by Christian Heimes in :issue:`32185`.)" msgstr "" -#: whatsnew/3.7.rst:1344 +#: whatsnew/3.7.rst:1348 msgid "" -":func:`~ssl.match_hostname` no longer supports partial wildcards like ``www*." +":func:`!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 "" -#: whatsnew/3.7.rst:1349 +#: whatsnew/3.7.rst:1353 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-" @@ -1941,7 +1943,7 @@ msgid "" "Christian Heimes in :issue:`31429`.)" msgstr "" -#: whatsnew/3.7.rst:1355 +#: whatsnew/3.7.rst:1359 msgid "" "Validation of server certificates containing internationalized domain names " "(IDNs) is now supported. As part of this change, the :attr:`SSLSocket." @@ -1951,7 +1953,7 @@ msgid "" "and Christian Heimes in :issue:`28414`.)" msgstr "" -#: whatsnew/3.7.rst:1362 +#: whatsnew/3.7.rst:1366 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 " @@ -1961,7 +1963,7 @@ msgid "" "`32947`, :issue:`20995`, :issue:`29136`, :issue:`30622` and :issue:`33618`)" msgstr "" -#: whatsnew/3.7.rst:1370 +#: whatsnew/3.7.rst:1374 msgid "" ":class:`~ssl.SSLSocket` and :class:`~ssl.SSLObject` no longer have a public " "constructor. Direct instantiation was never a documented and supported " @@ -1970,7 +1972,7 @@ msgid "" "(Contributed by Christian Heimes in :issue:`32951`)" msgstr "" -#: whatsnew/3.7.rst:1376 +#: whatsnew/3.7.rst:1380 msgid "" "OpenSSL 1.1 APIs for setting the minimum and maximum TLS protocol version " "are available as :attr:`SSLContext.minimum_version `_. (Contributed by " "Benjamin Peterson.)" msgstr "" -#: whatsnew/3.7.rst:1519 +#: whatsnew/3.7.rst:1523 msgid "unittest" msgstr "" -#: whatsnew/3.7.rst:1521 +#: whatsnew/3.7.rst:1525 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 " @@ -2177,18 +2179,18 @@ msgid "" "Jonas Haag in :issue:`32071`.)" msgstr "" -#: whatsnew/3.7.rst:1530 +#: whatsnew/3.7.rst:1534 msgid "unittest.mock" msgstr "" -#: whatsnew/3.7.rst:1532 +#: whatsnew/3.7.rst:1536 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 "" -#: whatsnew/3.7.rst:1536 +#: whatsnew/3.7.rst:1540 msgid "" "The new :func:`~unittest.mock.seal` function allows sealing :class:" "`~unittest.mock.Mock` instances, which will disallow further creation of " @@ -2196,33 +2198,33 @@ msgid "" "themselves mocks. (Contributed by Mario Corchero in :issue:`30541`.)" msgstr "" -#: whatsnew/3.7.rst:1544 +#: whatsnew/3.7.rst:1548 msgid "urllib.parse" msgstr "" -#: whatsnew/3.7.rst:1546 +#: whatsnew/3.7.rst:1550 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 "" -#: whatsnew/3.7.rst:1552 +#: whatsnew/3.7.rst:1556 msgid "uu" msgstr "" -#: whatsnew/3.7.rst:1554 +#: whatsnew/3.7.rst:1558 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 "" -#: whatsnew/3.7.rst:1560 +#: whatsnew/3.7.rst:1564 msgid "uuid" msgstr "" -#: whatsnew/3.7.rst:1562 +#: whatsnew/3.7.rst:1566 msgid "" "The new :attr:`UUID.is_safe ` attribute relays " "information from the platform about whether generated UUIDs are generated " @@ -2230,7 +2232,7 @@ msgid "" "`22807`.)" msgstr "" -#: whatsnew/3.7.rst:1567 +#: whatsnew/3.7.rst:1571 msgid "" ":func:`uuid.getnode` now prefers universally administered MAC addresses over " "locally administered MAC addresses. This makes a better guarantee for global " @@ -2239,116 +2241,115 @@ msgid "" "returned. (Contributed by Barry Warsaw in :issue:`32107`.)" msgstr "" -#: whatsnew/3.7.rst:1576 +#: whatsnew/3.7.rst:1580 msgid "warnings" msgstr "" -#: whatsnew/3.7.rst:1578 +#: whatsnew/3.7.rst:1582 msgid "" "The initialization of the default warnings filters has changed as follows:" msgstr "" -#: whatsnew/3.7.rst:1580 +#: whatsnew/3.7.rst:1584 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 "" -#: whatsnew/3.7.rst:1584 +#: whatsnew/3.7.rst:1588 msgid "" "warnings filters enabled via the command line or the environment now have " "the following order of precedence:" msgstr "" -#: whatsnew/3.7.rst:1587 +#: whatsnew/3.7.rst:1591 msgid "the ``BytesWarning`` filter for :option:`-b` (or ``-bb``)" msgstr "" -#: whatsnew/3.7.rst:1588 +#: whatsnew/3.7.rst:1592 msgid "any filters specified with the :option:`-W` option" msgstr "" -#: whatsnew/3.7.rst:1589 +#: whatsnew/3.7.rst:1593 msgid "" "any filters specified with the :envvar:`PYTHONWARNINGS` environment variable" msgstr "" -#: whatsnew/3.7.rst:1591 +#: whatsnew/3.7.rst:1595 msgid "" "any other CPython specific filters (e.g. the ``default`` filter added for " "the new ``-X dev`` mode)" msgstr "" -#: whatsnew/3.7.rst:1593 +#: whatsnew/3.7.rst:1597 msgid "any implicit filters defined directly by the warnings machinery" msgstr "" -#: whatsnew/3.7.rst:1595 +#: whatsnew/3.7.rst:1599 msgid "" "in :ref:`CPython debug builds `, all warnings are now displayed " "by default (the implicit filter list is empty)" msgstr "" -#: whatsnew/3.7.rst:1598 +#: whatsnew/3.7.rst:1602 msgid "" "(Contributed by Nick Coghlan and Victor Stinner in :issue:`20361`, :issue:" "`32043`, and :issue:`32230`.)" msgstr "" -#: whatsnew/3.7.rst:1601 +#: whatsnew/3.7.rst:1605 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 "" -#: whatsnew/3.7.rst:1607 +#: whatsnew/3.7.rst:1611 msgid "xml" msgstr "" -#: whatsnew/3.7.rst:1609 +#: whatsnew/3.7.rst:1613 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 :gh:`61441`.)" msgstr "" -#: whatsnew/3.7.rst:1616 +#: whatsnew/3.7.rst:1620 msgid "xml.etree" msgstr "" -#: whatsnew/3.7.rst:1618 +#: whatsnew/3.7.rst:1622 msgid "" -":ref:`ElementPath ` predicates in the :meth:`find` " +":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 "" -#: whatsnew/3.7.rst:1625 +#: whatsnew/3.7.rst:1629 msgid "xmlrpc.server" msgstr "" -#: whatsnew/3.7.rst:1627 +#: whatsnew/3.7.rst:1631 msgid "" -":meth:`SimpleXMLRPCDispatcher.register_function ` can now be used as a decorator. (Contributed by " -"Xiang Zhang in :issue:`7769`.)" +":meth:`!SimpleXMLRPCDispatcher.register_function` can now be used as a " +"decorator. (Contributed by Xiang Zhang in :issue:`7769`.)" msgstr "" -#: whatsnew/3.7.rst:1633 +#: whatsnew/3.7.rst:1637 msgid "zipapp" msgstr "" -#: whatsnew/3.7.rst:1635 +#: whatsnew/3.7.rst:1639 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 "" -#: whatsnew/3.7.rst:1639 +#: whatsnew/3.7.rst:1643 msgid "" "Function :func:`~zipapp.create_archive` now accepts an optional *compressed* " "argument to generate a compressed archive. A command line option ``--" @@ -2356,27 +2357,27 @@ msgid "" "Zhiming Wang in :issue:`31638`.)" msgstr "" -#: whatsnew/3.7.rst:1646 +#: whatsnew/3.7.rst:1650 msgid "zipfile" msgstr "" -#: whatsnew/3.7.rst:1648 +#: whatsnew/3.7.rst:1652 msgid "" ":class:`~zipfile.ZipFile` now accepts the new *compresslevel* parameter to " "control the compression level. (Contributed by Bo Bayles in :issue:`21417`.)" msgstr "" -#: whatsnew/3.7.rst:1652 +#: whatsnew/3.7.rst:1656 msgid "" "Subdirectories in archives created by ``ZipFile`` are now stored in " "alphabetical order. (Contributed by Bernhard M. Wiedemann in :issue:`30693`.)" msgstr "" -#: whatsnew/3.7.rst:1658 +#: whatsnew/3.7.rst:1662 msgid "C API Changes" msgstr "" -#: whatsnew/3.7.rst:1660 +#: whatsnew/3.7.rst:1664 msgid "" "A new API for thread-local storage has been implemented. See :ref:" "`whatsnew37-pep539` for an overview and :ref:`thread-specific-storage-api` " @@ -2384,82 +2385,82 @@ msgid "" "`25658`.)" msgstr "" -#: whatsnew/3.7.rst:1665 +#: whatsnew/3.7.rst:1669 msgid "" "The new :ref:`context variables ` functionality exposes a " "number of :ref:`new C APIs `." msgstr "" -#: whatsnew/3.7.rst:1668 +#: whatsnew/3.7.rst:1672 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 "" -#: whatsnew/3.7.rst:1672 +#: whatsnew/3.7.rst:1676 msgid "" "The new :c:macro:`Py_RETURN_RICHCOMPARE` macro eases writing rich comparison " "functions. (Contributed by Petr Victorin in :issue:`23699`.)" msgstr "" -#: whatsnew/3.7.rst:1676 +#: whatsnew/3.7.rst:1680 msgid "" "The new :c:macro:`Py_UNREACHABLE` macro can be used to mark unreachable code " "paths. (Contributed by Barry Warsaw in :issue:`31338`.)" msgstr "" -#: whatsnew/3.7.rst:1680 +#: whatsnew/3.7.rst:1684 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 "" -#: whatsnew/3.7.rst:1685 +#: whatsnew/3.7.rst:1689 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`.)" +"The new :ref:`import__find__load__start ` and :ref:" +"`import__find__load__done ` static markers can be used to " +"trace module imports. (Contributed by Christian Heimes in :issue:`31574`.)" msgstr "" -#: whatsnew/3.7.rst:1690 +#: whatsnew/3.7.rst:1694 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:struct:`wrapperbase` are now of type " +"type:`PyStructSequence_Desc`, and :c:struct:`!wrapperbase` are now of type " "``const char *`` rather of ``char *``. (Contributed by Serhiy Storchaka in :" "issue:`28761`.)" msgstr "" -#: whatsnew/3.7.rst:1696 +#: whatsnew/3.7.rst:1700 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 "" -#: whatsnew/3.7.rst:1700 +#: whatsnew/3.7.rst:1704 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 "" -#: whatsnew/3.7.rst:1704 +#: whatsnew/3.7.rst:1708 msgid "" "Added functions :c:func:`PySlice_Unpack` and :c:func:" "`PySlice_AdjustIndices`. (Contributed by Serhiy Storchaka in :issue:`27867`.)" msgstr "" -#: whatsnew/3.7.rst:1707 +#: whatsnew/3.7.rst:1711 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 "" -#: whatsnew/3.7.rst:1712 +#: whatsnew/3.7.rst:1716 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 " @@ -2467,7 +2468,7 @@ msgid "" "issue:`22898` and :issue:`30697`." msgstr "" -#: whatsnew/3.7.rst:1717 +#: whatsnew/3.7.rst:1721 msgid "" "Added C API support for timezones with timezone constructors :c:func:" "`PyTimeZone_FromOffset` and :c:func:`PyTimeZone_FromOffsetAndName`, and " @@ -2475,22 +2476,22 @@ msgid "" "Contributed by Paul Ganssle in :issue:`10381`." msgstr "" -#: whatsnew/3.7.rst:1722 +#: whatsnew/3.7.rst:1726 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:" +"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:expr:`long` to :c:expr:`unsigned " "long`. (Contributed by Serhiy Storchaka in :issue:`6532`.)" msgstr "" -#: whatsnew/3.7.rst:1728 +#: whatsnew/3.7.rst:1732 msgid "" ":c:func:`PyUnicode_AsWideCharString` now raises a :exc:`ValueError` if the " "second argument is ``NULL`` and the :c:expr:`wchar_t*` string contains null " "characters. (Contributed by Serhiy Storchaka in :issue:`30708`.)" msgstr "" -#: whatsnew/3.7.rst:1732 +#: whatsnew/3.7.rst:1736 msgid "" "Changes to the startup sequence and the management of dynamic memory " "allocators mean that the long documented requirement to call :c:func:" @@ -2501,45 +2502,45 @@ msgid "" "details." msgstr "" -#: whatsnew/3.7.rst:1740 +#: whatsnew/3.7.rst:1744 msgid "" "The new :c:func:`PyInterpreterState_GetID` returns the unique ID for a given " "interpreter. (Contributed by Eric Snow in :issue:`29102`.)" msgstr "" -#: whatsnew/3.7.rst:1744 +#: whatsnew/3.7.rst:1748 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 "" -#: whatsnew/3.7.rst:1748 +#: whatsnew/3.7.rst:1752 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 "" -#: whatsnew/3.7.rst:1752 +#: whatsnew/3.7.rst:1756 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 "" -#: whatsnew/3.7.rst:1758 +#: whatsnew/3.7.rst:1762 msgid "Build Changes" msgstr "" -#: whatsnew/3.7.rst:1760 +#: whatsnew/3.7.rst:1764 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 "" -#: whatsnew/3.7.rst:1764 +#: whatsnew/3.7.rst:1768 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 " @@ -2547,7 +2548,7 @@ msgid "" "(Contributed by Zachary Ware in :issue:`27979`.)" msgstr "" -#: whatsnew/3.7.rst:1769 +#: whatsnew/3.7.rst:1773 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 " @@ -2556,7 +2557,7 @@ msgid "" "by Zachary Ware in :issue:`30450`.)" msgstr "" -#: whatsnew/3.7.rst:1775 +#: whatsnew/3.7.rst:1779 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 " @@ -2564,11 +2565,11 @@ msgid "" "up to version 2.6.4 are missing required OpenSSL 1.0.2 APIs." msgstr "" -#: whatsnew/3.7.rst:1784 +#: whatsnew/3.7.rst:1788 msgid "Optimizations" msgstr "" -#: whatsnew/3.7.rst:1786 +#: whatsnew/3.7.rst:1790 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 " @@ -2576,85 +2577,85 @@ msgid "" "`29300`, :issue:`29507`, :issue:`29452`, and :issue:`29286`.)" msgstr "" -#: whatsnew/3.7.rst:1792 +#: whatsnew/3.7.rst:1796 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 "" -#: whatsnew/3.7.rst:1797 +#: whatsnew/3.7.rst:1801 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 "" -#: whatsnew/3.7.rst:1803 +#: whatsnew/3.7.rst:1807 msgid "" "The :mod:`asyncio` module received a number of notable optimizations for " "commonly used functions:" msgstr "" -#: whatsnew/3.7.rst:1806 +#: whatsnew/3.7.rst:1810 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 "" -#: whatsnew/3.7.rst:1810 +#: whatsnew/3.7.rst:1814 msgid "" ":class:`asyncio.Future` callback management has been optimized. (Contributed " "by Yury Selivanov in :issue:`32348`.)" msgstr "" -#: whatsnew/3.7.rst:1813 +#: whatsnew/3.7.rst:1817 msgid "" ":func:`asyncio.gather` is now up to 15% faster. (Contributed by Yury " "Selivanov in :issue:`32355`.)" msgstr "" -#: whatsnew/3.7.rst:1816 +#: whatsnew/3.7.rst:1820 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 "" -#: whatsnew/3.7.rst:1820 +#: whatsnew/3.7.rst:1824 msgid "" "The performance overhead of asyncio debug mode has been reduced. " "(Contributed by Antoine Pitrou in :issue:`31970`.)" msgstr "" -#: whatsnew/3.7.rst:1823 +#: whatsnew/3.7.rst:1827 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 "" -#: whatsnew/3.7.rst:1828 +#: whatsnew/3.7.rst:1832 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 "" -#: whatsnew/3.7.rst:1832 +#: whatsnew/3.7.rst:1836 msgid "" ":meth:`dict.copy` is now up to 5.5 times faster. (Contributed by Yury " "Selivanov in :issue:`31179`.)" msgstr "" -#: whatsnew/3.7.rst:1835 +#: whatsnew/3.7.rst:1839 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 "" -#: whatsnew/3.7.rst:1840 +#: whatsnew/3.7.rst:1844 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 " @@ -2662,7 +2663,7 @@ msgid "" "in :issue:`24821`.)" msgstr "" -#: whatsnew/3.7.rst:1845 +#: whatsnew/3.7.rst:1849 msgid "" "The :func:`collections.namedtuple` factory has been reimplemented to make " "the creation of named tuples 4 to 6 times faster. (Contributed by Jelle " @@ -2670,33 +2671,34 @@ msgid "" "Raymond Hettinger in :issue:`28638`.)" msgstr "" -#: whatsnew/3.7.rst:1850 +#: whatsnew/3.7.rst:1854 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`.)" +":meth:`datetime.date.fromordinal` and :meth:`datetime.date.fromtimestamp` " +"are now up to 30% faster in the common case. (Contributed by Paul Ganssle " +"in :issue:`32403`.)" msgstr "" -#: whatsnew/3.7.rst:1854 +#: whatsnew/3.7.rst:1858 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 "" -#: whatsnew/3.7.rst:1858 +#: whatsnew/3.7.rst:1862 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 "" -#: whatsnew/3.7.rst:1862 +#: whatsnew/3.7.rst:1866 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 "" -#: whatsnew/3.7.rst:1866 +#: whatsnew/3.7.rst:1870 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 " @@ -2704,7 +2706,7 @@ msgid "" "`31671`.)" msgstr "" -#: whatsnew/3.7.rst:1871 +#: whatsnew/3.7.rst:1875 msgid "" "The :meth:`~selectors.BaseSelector.modify` methods of classes :class:" "`selectors.EpollSelector`, :class:`selectors.PollSelector` and :class:" @@ -2712,7 +2714,7 @@ msgid "" "(Contributed by Giampaolo Rodola' in :issue:`30014`)" msgstr "" -#: whatsnew/3.7.rst:1876 +#: whatsnew/3.7.rst:1880 msgid "" "Constant folding has been moved from the peephole optimizer to the new AST " "optimizer, which is able perform optimizations more consistently. " @@ -2720,7 +2722,7 @@ msgid "" "`11549`.)" msgstr "" -#: whatsnew/3.7.rst:1881 +#: whatsnew/3.7.rst:1885 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 :" @@ -2729,7 +2731,7 @@ msgid "" "`31333`)" msgstr "" -#: whatsnew/3.7.rst:1887 +#: whatsnew/3.7.rst:1891 msgid "" "Significant speed improvements to alternate constructors for :class:" "`datetime.date` and :class:`datetime.datetime` by using fast-path " @@ -2737,7 +2739,7 @@ msgid "" "in :issue:`32403`)" msgstr "" -#: whatsnew/3.7.rst:1892 +#: whatsnew/3.7.rst:1896 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 " @@ -2745,18 +2747,18 @@ msgid "" "Adrian Wielgosik in :issue:`24700`.)" msgstr "" -#: whatsnew/3.7.rst:1897 +#: whatsnew/3.7.rst:1901 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 "" -#: whatsnew/3.7.rst:1903 +#: whatsnew/3.7.rst:1907 msgid "Other CPython Implementation Changes" msgstr "" -#: whatsnew/3.7.rst:1905 +#: whatsnew/3.7.rst:1909 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 :" @@ -2764,7 +2766,7 @@ msgid "" "the frame being traced. (Contributed by Nick Coghlan in :issue:`31344`.)" msgstr "" -#: whatsnew/3.7.rst:1910 +#: whatsnew/3.7.rst:1914 msgid "" "Fixed some consistency problems with namespace package module attributes. " "Namespace module objects now have an ``__file__`` that is set to ``None`` " @@ -2775,14 +2777,14 @@ msgid "" "`32303`." msgstr "" -#: whatsnew/3.7.rst:1918 +#: whatsnew/3.7.rst:1922 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 "" -#: whatsnew/3.7.rst:1922 +#: whatsnew/3.7.rst:1926 msgid "" "The ``distutils`` ``upload`` command no longer tries to change CR end-of-" "line characters to CRLF. This fixes a corruption issue with sdists that " @@ -2790,11 +2792,11 @@ msgid "" "`32304`.)" msgstr "" -#: whatsnew/3.7.rst:1929 +#: whatsnew/3.7.rst:1933 msgid "Deprecated Python Behavior" msgstr "" -#: whatsnew/3.7.rst:1931 +#: whatsnew/3.7.rst:1935 msgid "" "Yield expressions (both ``yield`` and ``yield from`` clauses) are now " "deprecated in comprehensions and generator expressions (aside from the " @@ -2808,7 +2810,7 @@ msgid "" "Storchaka in :issue:`10544`.)" msgstr "" -#: whatsnew/3.7.rst:1942 +#: whatsnew/3.7.rst:1946 msgid "" "Returning a subclass of :class:`complex` from :meth:`object.__complex__` is " "deprecated and will be an error in future Python versions. This makes " @@ -2816,22 +2818,22 @@ msgid "" "__float__`. (Contributed by Serhiy Storchaka in :issue:`28894`.)" msgstr "" -#: whatsnew/3.7.rst:1951 +#: whatsnew/3.7.rst:1955 msgid "Deprecated Python modules, functions and methods" msgstr "" -#: whatsnew/3.7.rst:1954 +#: whatsnew/3.7.rst:1958 msgid "aifc" msgstr "" -#: whatsnew/3.7.rst:1956 +#: whatsnew/3.7.rst:1960 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 "" -#: whatsnew/3.7.rst:1966 +#: whatsnew/3.7.rst:1970 msgid "" "Support for directly ``await``-ing instances of :class:`asyncio.Lock` and " "other asyncio synchronization primitives has been deprecated. An " @@ -2840,14 +2842,14 @@ msgid "" "`32253`.)" msgstr "" -#: whatsnew/3.7.rst:1972 +#: whatsnew/3.7.rst:1976 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 "" -#: whatsnew/3.7.rst:1980 +#: whatsnew/3.7.rst:1984 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 " @@ -2855,7 +2857,7 @@ msgid "" "base classes. (Contributed by Serhiy Storchaka in :issue:`25988`.)" msgstr "" -#: whatsnew/3.7.rst:1990 +#: whatsnew/3.7.rst:1994 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 " @@ -2864,28 +2866,28 @@ msgid "" "Storchaka in :issue:`28847`.)" msgstr "" -#: whatsnew/3.7.rst:2000 +#: whatsnew/3.7.rst:2004 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`.)" +"In Python 3.8, attempting to check for non-Enum objects in :class:`~enum." +"Enum` classes will raise a :exc:`TypeError` (e.g. ``1 in Color``); " +"similarly, attempting to check for non-Flag objects in a :class:`~enum.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 "" -#: whatsnew/3.7.rst:2009 +#: whatsnew/3.7.rst:2013 msgid "gettext" msgstr "" -#: whatsnew/3.7.rst:2011 +#: whatsnew/3.7.rst:2015 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 "" -#: whatsnew/3.7.rst:2019 +#: whatsnew/3.7.rst:2023 msgid "" "Methods :meth:`!MetaPathFinder.find_module` (replaced by :meth:" "`MetaPathFinder.find_spec() `) and :" @@ -2895,40 +2897,40 @@ msgid "" "Bussonnier in :issue:`29576`.)" msgstr "" -#: whatsnew/3.7.rst:2030 +#: whatsnew/3.7.rst:2034 msgid "" "The :class:`importlib.abc.ResourceLoader` ABC has been deprecated in favour " "of :class:`importlib.abc.ResourceReader`." msgstr "" -#: whatsnew/3.7.rst:2037 +#: whatsnew/3.7.rst:2041 msgid "" -":func:`locale.format` has been deprecated, use :meth:`locale.format_string` " +":func:`!locale.format` has been deprecated, use :meth:`locale.format_string` " "instead. (Contributed by Garvit in :issue:`10379`.)" msgstr "" -#: whatsnew/3.7.rst:2042 +#: whatsnew/3.7.rst:2046 msgid "macpath" msgstr "" -#: whatsnew/3.7.rst:2044 +#: whatsnew/3.7.rst:2048 msgid "" -"The :mod:`macpath` is now deprecated and will be removed in Python 3.8. " +"The :mod:`!macpath` is now deprecated and will be removed in Python 3.8. " "(Contributed by Chi Hsuan Yen in :issue:`9850`.)" msgstr "" -#: whatsnew/3.7.rst:2049 +#: whatsnew/3.7.rst:2053 msgid "threading" msgstr "" -#: whatsnew/3.7.rst:2051 +#: whatsnew/3.7.rst:2055 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 "" -#: whatsnew/3.7.rst:2060 +#: whatsnew/3.7.rst:2064 msgid "" "The silent argument value truncation in :func:`socket.htons` and :func:" "`socket.ntohs` has been deprecated. In future versions of Python, if the " @@ -2936,52 +2938,52 @@ msgid "" "(Contributed by Oren Milman in :issue:`28332`.)" msgstr "" -#: whatsnew/3.7.rst:2069 +#: whatsnew/3.7.rst:2073 msgid "" -":func:`ssl.wrap_socket` is deprecated. Use :meth:`ssl.SSLContext." +":func:`!ssl.wrap_socket` is deprecated. Use :meth:`ssl.SSLContext." "wrap_socket` instead. (Contributed by Christian Heimes in :issue:`28124`.)" msgstr "" -#: whatsnew/3.7.rst:2075 +#: whatsnew/3.7.rst:2079 msgid "sunau" msgstr "" -#: whatsnew/3.7.rst:2077 +#: whatsnew/3.7.rst:2081 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 "" -#: whatsnew/3.7.rst:2085 +#: whatsnew/3.7.rst:2089 msgid "" -"Deprecated :func:`sys.set_coroutine_wrapper` and :func:`sys." +"Deprecated :func:`!sys.set_coroutine_wrapper` and :func:`!sys." "get_coroutine_wrapper`." msgstr "" -#: whatsnew/3.7.rst:2088 +#: whatsnew/3.7.rst:2092 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 "" -#: whatsnew/3.7.rst:2094 +#: whatsnew/3.7.rst:2098 msgid "wave" msgstr "" -#: whatsnew/3.7.rst:2096 +#: whatsnew/3.7.rst:2100 msgid "" -":func:`wave.openfp` has been deprecated and will be removed in Python 3.9. " +":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 "" -#: whatsnew/3.7.rst:2102 +#: whatsnew/3.7.rst:2106 msgid "Deprecated functions and types of the C API" msgstr "" -#: whatsnew/3.7.rst:2104 +#: whatsnew/3.7.rst:2108 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 " @@ -2990,7 +2992,7 @@ msgid "" "`27867`.)" msgstr "" -#: whatsnew/3.7.rst:2109 +#: whatsnew/3.7.rst:2113 msgid "" ":c:func:`PyOS_AfterFork` has been deprecated. Use :c:func:" "`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` or :c:func:" @@ -2998,15 +3000,15 @@ msgid "" "`16500`.)" msgstr "" -#: whatsnew/3.7.rst:2117 +#: whatsnew/3.7.rst:2121 msgid "Platform Support Removals" msgstr "" -#: whatsnew/3.7.rst:2119 +#: whatsnew/3.7.rst:2123 msgid "FreeBSD 9 and older are no longer officially supported." msgstr "" -#: whatsnew/3.7.rst:2120 +#: whatsnew/3.7.rst:2124 msgid "" "For full Unicode support, including within extension modules, \\*nix " "platforms are now expected to provide at least one of ``C.UTF-8`` (full " @@ -3014,7 +3016,7 @@ msgid "" "an alternative to the legacy ``ASCII``-based ``C`` locale." msgstr "" -#: whatsnew/3.7.rst:2124 +#: whatsnew/3.7.rst:2128 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 " @@ -3022,14 +3024,14 @@ msgid "" "OpenSSL." msgstr "" -#: whatsnew/3.7.rst:2128 +#: whatsnew/3.7.rst:2132 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 "" -#: whatsnew/3.7.rst:2132 +#: whatsnew/3.7.rst:2136 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), " @@ -3037,7 +3039,7 @@ msgid "" "configuration." msgstr "" -#: whatsnew/3.7.rst:2136 +#: whatsnew/3.7.rst:2140 msgid "" "CPython's own `CI configuration file `_ provides an example of using the SSL :source:" @@ -3046,41 +3048,41 @@ msgid "" "outdated system provided OpenSSL." msgstr "" -#: whatsnew/3.7.rst:2145 +#: whatsnew/3.7.rst:2149 msgid "API and Feature Removals" msgstr "" -#: whatsnew/3.7.rst:2147 +#: whatsnew/3.7.rst:2151 msgid "The following features and APIs have been removed from Python 3.7:" msgstr "" -#: whatsnew/3.7.rst:2149 +#: whatsnew/3.7.rst:2153 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 "" -#: whatsnew/3.7.rst:2153 +#: whatsnew/3.7.rst:2157 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 "" -#: whatsnew/3.7.rst:2157 +#: whatsnew/3.7.rst:2161 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 "" -#: whatsnew/3.7.rst:2160 +#: whatsnew/3.7.rst:2164 msgid "" "The :func:`!ntpath.splitunc` function was deprecated in Python 3.1, and has " "now been removed. Use :func:`~os.path.splitdrive` instead." msgstr "" -#: whatsnew/3.7.rst:2164 +#: whatsnew/3.7.rst:2168 msgid "" ":func:`collections.namedtuple` no longer supports the *verbose* parameter or " "``_source`` attribute which showed the generated source code for the named " @@ -3089,23 +3091,23 @@ msgid "" "Naoki, Serhiy Storchaka, and Raymond Hettinger in :issue:`28638`.)" msgstr "" -#: whatsnew/3.7.rst:2170 +#: whatsnew/3.7.rst:2174 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 "" -#: whatsnew/3.7.rst:2174 +#: whatsnew/3.7.rst:2178 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." +"of functions :func:`!readPlist` and :func:`!readPlistFromBytes` are now " +"normal dicts. You no longer can use attribute access to access items of " +"these dictionaries." msgstr "" -#: whatsnew/3.7.rst:2180 +#: whatsnew/3.7.rst:2184 msgid "" "The ``asyncio.windows_utils.socketpair()`` function has been removed. Use " "the :func:`socket.socketpair` function instead, it is available on all " @@ -3113,33 +3115,33 @@ msgid "" "alias to ``socket.socketpair`` on Python 3.5 and newer." msgstr "" -#: whatsnew/3.7.rst:2186 +#: whatsnew/3.7.rst:2190 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 "" -#: whatsnew/3.7.rst:2191 +#: whatsnew/3.7.rst:2195 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." +"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 "" -#: whatsnew/3.7.rst:2197 +#: whatsnew/3.7.rst:2201 msgid "" "The unused ``distutils`` ``install_misc`` command has been removed. " "(Contributed by Eric N. Vander Weele in :issue:`29218`.)" msgstr "" -#: whatsnew/3.7.rst:2202 +#: whatsnew/3.7.rst:2206 msgid "Module Removals" msgstr "" -#: whatsnew/3.7.rst:2204 +#: whatsnew/3.7.rst:2208 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 " @@ -3147,11 +3149,11 @@ msgid "" "Smith in :issue:`29137`.)" msgstr "" -#: whatsnew/3.7.rst:2487 +#: whatsnew/3.7.rst:2494 msgid "Windows-only Changes" msgstr "" -#: whatsnew/3.7.rst:2213 +#: whatsnew/3.7.rst:2217 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`` " @@ -3161,7 +3163,7 @@ msgid "" "(Contributed by Steve Barnes in :issue:`30291`.)" msgstr "" -#: whatsnew/3.7.rst:2220 +#: whatsnew/3.7.rst:2224 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 " @@ -3170,28 +3172,28 @@ msgid "" "(Contributed by Steve Barnes in :issue:`30362`.)" msgstr "" -#: whatsnew/3.7.rst:2230 +#: whatsnew/3.7.rst:2234 msgid "Porting to Python 3.7" msgstr "" -#: whatsnew/3.7.rst:2232 +#: whatsnew/3.7.rst:2236 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: whatsnew/3.7.rst:2237 +#: whatsnew/3.7.rst:2241 msgid "Changes in Python Behavior" msgstr "" -#: whatsnew/3.7.rst:2239 +#: whatsnew/3.7.rst:2243 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 "" -#: whatsnew/3.7.rst:2243 +#: whatsnew/3.7.rst:2247 msgid "" ":pep:`479` is enabled for all code in Python 3.7, meaning that :exc:" "`StopIteration` exceptions raised directly or indirectly in coroutines and " @@ -3199,19 +3201,19 @@ msgid "" "by Yury Selivanov in :issue:`32670`.)" msgstr "" -#: whatsnew/3.7.rst:2249 +#: whatsnew/3.7.rst:2253 msgid "" ":meth:`object.__aiter__` methods can no longer be declared as asynchronous. " "(Contributed by Yury Selivanov in :issue:`31709`.)" msgstr "" -#: whatsnew/3.7.rst:2252 +#: whatsnew/3.7.rst:2256 msgid "" "Due to an oversight, earlier Python versions erroneously accepted the " "following syntax::" msgstr "" -#: whatsnew/3.7.rst:2255 +#: whatsnew/3.7.rst:2259 msgid "" "f(1 for x in [1],)\n" "\n" @@ -3219,7 +3221,7 @@ msgid "" " pass" msgstr "" -#: whatsnew/3.7.rst:2260 +#: whatsnew/3.7.rst:2264 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 " @@ -3228,7 +3230,7 @@ msgid "" "`32012` and :issue:`32023`.)" msgstr "" -#: whatsnew/3.7.rst:2266 +#: whatsnew/3.7.rst:2270 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 " @@ -3240,41 +3242,43 @@ msgid "" "place)." msgstr "" -#: whatsnew/3.7.rst:2276 +#: whatsnew/3.7.rst:2280 msgid "Changes in the Python API" msgstr "" -#: whatsnew/3.7.rst:2278 +#: whatsnew/3.7.rst:2282 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`.)" +":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 "" -#: whatsnew/3.7.rst:2284 +#: whatsnew/3.7.rst:2289 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. " +":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 "" -#: whatsnew/3.7.rst:2290 +#: whatsnew/3.7.rst:2297 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 "" -#: whatsnew/3.7.rst:2294 +#: whatsnew/3.7.rst:2301 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 "" -#: whatsnew/3.7.rst:2298 +#: whatsnew/3.7.rst:2305 msgid "" "A format string argument for :meth:`string.Formatter.format` is now :ref:" "`positional-only `. Passing it as a keyword " @@ -3282,7 +3286,7 @@ msgid "" "issue:`29193`.)" msgstr "" -#: whatsnew/3.7.rst:2303 +#: whatsnew/3.7.rst:2310 msgid "" "Attributes :attr:`~http.cookies.Morsel.key`, :attr:`~http.cookies.Morsel." "value` and :attr:`~http.cookies.Morsel.coded_value` of class :class:`http." @@ -3291,7 +3295,7 @@ msgid "" "them. (Contributed by Serhiy Storchaka in :issue:`29192`.)" msgstr "" -#: whatsnew/3.7.rst:2311 +#: whatsnew/3.7.rst:2318 msgid "" "The *mode* argument of :func:`os.makedirs` no longer affects the file " "permission bits of newly created intermediate-level directories. To set " @@ -3299,13 +3303,13 @@ msgid "" "``makedirs()``. (Contributed by Serhiy Storchaka in :issue:`19930`.)" msgstr "" -#: whatsnew/3.7.rst:2317 +#: whatsnew/3.7.rst:2324 msgid "" "The :attr:`struct.Struct.format` type is now :class:`str` instead of :class:" "`bytes`. (Contributed by Victor Stinner in :issue:`21071`.)" msgstr "" -#: whatsnew/3.7.rst:2320 +#: whatsnew/3.7.rst:2327 msgid "" ":func:`!cgi.parse_multipart` now accepts the *encoding* and *errors* " "arguments and returns the same results as :class:`!FieldStorage`: for non-" @@ -3313,27 +3317,27 @@ msgid "" "(Contributed by Pierre Quentel in :issue:`29979`.)" msgstr "" -#: whatsnew/3.7.rst:2326 +#: whatsnew/3.7.rst:2333 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 "" -#: whatsnew/3.7.rst:2330 +#: whatsnew/3.7.rst:2337 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 "" -#: whatsnew/3.7.rst:2334 +#: whatsnew/3.7.rst:2341 msgid "" "``repr`` for :class:`datetime.timedelta` has changed to include the keyword " "arguments in the output. (Contributed by Utkarsh Upadhyay in :issue:`30302`.)" msgstr "" -#: whatsnew/3.7.rst:2337 +#: whatsnew/3.7.rst:2344 msgid "" "Because :func:`shutil.rmtree` is now implemented using the :func:`os." "scandir` function, the user specified handler *onerror* is now called with " @@ -3341,7 +3345,7 @@ msgid "" "directory is failed." msgstr "" -#: whatsnew/3.7.rst:2342 +#: whatsnew/3.7.rst:2349 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 " @@ -3352,7 +3356,7 @@ msgid "" "with a backslash. (Contributed by Serhiy Storchaka in :issue:`30349`.)" msgstr "" -#: whatsnew/3.7.rst:2353 +#: whatsnew/3.7.rst:2360 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 " @@ -3363,7 +3367,7 @@ msgid "" "patterns since Python 3.5." msgstr "" -#: whatsnew/3.7.rst:2362 +#: whatsnew/3.7.rst:2369 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 " @@ -3373,7 +3377,7 @@ msgid "" "as ``r'(?m)^[^\\S\\n]*$'``." msgstr "" -#: whatsnew/3.7.rst:2369 +#: whatsnew/3.7.rst:2376 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-'`` " @@ -3381,25 +3385,25 @@ msgid "" "and the second minus replaces an empty string between 'x' and 'd')." msgstr "" -#: whatsnew/3.7.rst:2375 +#: whatsnew/3.7.rst:2382 msgid "(Contributed by Serhiy Storchaka in :issue:`25054` and :issue:`32308`.)" msgstr "" -#: whatsnew/3.7.rst:2377 +#: whatsnew/3.7.rst:2384 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 "" -#: whatsnew/3.7.rst:2381 +#: whatsnew/3.7.rst:2388 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 "" -#: whatsnew/3.7.rst:2385 +#: whatsnew/3.7.rst:2392 msgid "" "On OSes that support :const:`socket.SOCK_NONBLOCK` or :const:`socket." "SOCK_CLOEXEC` bit flags, the :attr:`socket.type ` no " @@ -3408,7 +3412,7 @@ msgid "" "Selivanov in :issue:`32331`.)" msgstr "" -#: whatsnew/3.7.rst:2392 +#: whatsnew/3.7.rst:2399 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 " @@ -3418,7 +3422,7 @@ msgid "" "`STARTUPINFO.lpAttributeList `." msgstr "" -#: whatsnew/3.7.rst:2400 +#: whatsnew/3.7.rst:2407 msgid "" ":meth:`importlib.machinery.PathFinder.invalidate_caches` -- which implicitly " "affects :func:`importlib.invalidate_caches` -- now deletes entries in :data:" @@ -3426,7 +3430,7 @@ msgid "" "Cannon in :issue:`33169`.)" msgstr "" -#: whatsnew/3.7.rst:2405 +#: whatsnew/3.7.rst:2412 msgid "" "In :mod:`asyncio`, :meth:`loop.sock_recv() `, :meth:" "`loop.sock_sendall() `, :meth:`loop.sock_accept() " @@ -3437,21 +3441,21 @@ msgid "" "(Contributed by Yury Selivanov in :issue:`32327`.)" msgstr "" -#: whatsnew/3.7.rst:2416 +#: whatsnew/3.7.rst:2423 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 "" -#: whatsnew/3.7.rst:2420 +#: whatsnew/3.7.rst:2427 msgid "" ":attr:`Struct.format ` is now a :class:`str` instance " "instead of a :class:`bytes` instance. (Contributed by Victor Stinner in :" "issue:`21071`.)" msgstr "" -#: whatsnew/3.7.rst:2424 +#: whatsnew/3.7.rst:2431 msgid "" ":mod:`argparse` subparsers can now be made mandatory by passing " "``required=True`` to :meth:`ArgumentParser.add_subparsers() ` will now " "consistently raise an exception when a date falls outside of the " @@ -3478,13 +3482,13 @@ msgid "" "date`. (Contributed by Alexander Belopolsky in :issue:`28292`.)" msgstr "" -#: whatsnew/3.7.rst:2442 +#: whatsnew/3.7.rst:2449 msgid "" ":class:`collections.ChainMap` now preserves the order of the underlying " "mappings. (Contributed by Raymond Hettinger in :issue:`32792`.)" msgstr "" -#: whatsnew/3.7.rst:2445 +#: whatsnew/3.7.rst:2452 msgid "" "The ``submit()`` method of :class:`concurrent.futures.ThreadPoolExecutor` " "and :class:`concurrent.futures.ProcessPoolExecutor` now raises a :exc:" @@ -3492,7 +3496,7 @@ msgid "" "Nemec in :issue:`33097`.)" msgstr "" -#: whatsnew/3.7.rst:2450 +#: whatsnew/3.7.rst:2457 msgid "" "The :class:`configparser.ConfigParser` constructor now uses ``read_dict()`` " "to process the default values, making its behavior consistent with the rest " @@ -3501,7 +3505,7 @@ msgid "" "in :issue:`23835`.)" msgstr "" -#: whatsnew/3.7.rst:2456 +#: whatsnew/3.7.rst:2463 msgid "" "Several undocumented internal imports were removed. One example is that ``os." "errno`` is no longer available; use ``import errno`` directly instead. Note " @@ -3509,11 +3513,11 @@ msgid "" "notice, even in micro version releases." msgstr "" -#: whatsnew/3.7.rst:2464 +#: whatsnew/3.7.rst:2471 msgid "Changes in the C API" msgstr "" -#: whatsnew/3.7.rst:2466 +#: whatsnew/3.7.rst:2473 msgid "" "The function :c:func:`PySlice_GetIndicesEx` is considered unsafe for " "resizable sequences. If the slice indices are not instances of :class:" @@ -3525,23 +3529,24 @@ msgid "" "Storchaka in :issue:`27867`.)" msgstr "" -#: whatsnew/3.7.rst:2477 +#: whatsnew/3.7.rst:2484 msgid "CPython bytecode changes" msgstr "" -#: whatsnew/3.7.rst:2479 +#: whatsnew/3.7.rst:2486 msgid "" -"There are two new opcodes: :opcode:`LOAD_METHOD` and :opcode:`!CALL_METHOD`. " -"(Contributed by Yury Selivanov and INADA Naoki in :issue:`26110`.)" +"There are two new opcodes: :opcode:`!LOAD_METHOD` and :opcode:`!" +"CALL_METHOD`. (Contributed by Yury Selivanov and INADA Naoki in :issue:" +"`26110`.)" msgstr "" -#: whatsnew/3.7.rst:2482 +#: whatsnew/3.7.rst:2489 msgid "" "The :opcode:`!STORE_ANNOTATION` opcode has been removed. (Contributed by " "Mark Shannon in :issue:`32550`.)" msgstr "" -#: whatsnew/3.7.rst:2489 +#: whatsnew/3.7.rst:2496 msgid "" "The file used to override :data:`sys.path` is now called ``._pth`` instead of ``'sys.path'``. See :ref:" @@ -3549,11 +3554,11 @@ msgid "" "in :issue:`28137`.)" msgstr "" -#: whatsnew/3.7.rst:2496 +#: whatsnew/3.7.rst:2503 msgid "Other CPython implementation changes" msgstr "" -#: whatsnew/3.7.rst:2498 +#: whatsnew/3.7.rst:2505 msgid "" "In preparation for potential future changes to the public CPython runtime " "initialization API (see :pep:`432` for an initial, but somewhat outdated, " @@ -3568,21 +3573,21 @@ msgid "" "Stinner in a number of other issues). Some known details affected:" msgstr "" -#: whatsnew/3.7.rst:2511 +#: whatsnew/3.7.rst:2518 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 "" -#: whatsnew/3.7.rst:2515 +#: whatsnew/3.7.rst:2522 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 "" -#: whatsnew/3.7.rst:2519 +#: whatsnew/3.7.rst:2526 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 " @@ -3592,7 +3597,7 @@ msgid "" "BytesWarning`` warnings filter added to convert them to exceptions." msgstr "" -#: whatsnew/3.7.rst:2526 +#: whatsnew/3.7.rst:2533 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 " @@ -3600,7 +3605,7 @@ msgid "" "function's header line." msgstr "" -#: whatsnew/3.7.rst:2531 +#: whatsnew/3.7.rst:2538 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 " @@ -3608,11 +3613,11 @@ msgid "" "(Contributed by Mark Shannon in :issue:`25612`.)" msgstr "" -#: whatsnew/3.7.rst:2537 +#: whatsnew/3.7.rst:2544 msgid "Notable changes in Python 3.7.1" msgstr "" -#: whatsnew/3.7.rst:2539 +#: whatsnew/3.7.rst:2546 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 " @@ -3622,14 +3627,14 @@ msgid "" "`Py_IgnoreEnvironmentFlag` to 1 before calling :c:func:`Py_Initialize`." msgstr "" -#: whatsnew/3.7.rst:2546 +#: whatsnew/3.7.rst:2553 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 "" -#: whatsnew/3.7.rst:2550 +#: whatsnew/3.7.rst:2557 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 " @@ -3637,11 +3642,11 @@ msgid "" "Ammar Askar in :issue:`33899`.)" msgstr "" -#: whatsnew/3.7.rst:2556 +#: whatsnew/3.7.rst:2563 msgid "Notable changes in Python 3.7.2" msgstr "" -#: whatsnew/3.7.rst:2558 +#: whatsnew/3.7.rst:2565 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. " @@ -3651,11 +3656,11 @@ msgid "" "to get the new scripts." msgstr "" -#: whatsnew/3.7.rst:2566 +#: whatsnew/3.7.rst:2573 msgid "Notable changes in Python 3.7.6" msgstr "" -#: whatsnew/3.7.rst:2568 +#: whatsnew/3.7.rst:2575 msgid "" "Due to significant security concerns, the *reuse_address* parameter of :meth:" "`asyncio.loop.create_datagram_endpoint` is no longer supported. This is " @@ -3665,11 +3670,11 @@ msgid "" "`37228`.)" msgstr "" -#: whatsnew/3.7.rst:2576 +#: whatsnew/3.7.rst:2583 msgid "Notable changes in Python 3.7.10" msgstr "" -#: whatsnew/3.7.rst:2578 +#: whatsnew/3.7.rst:2585 msgid "" "Earlier Python versions allowed using both ``;`` and ``&`` as query " "parameter separators in :func:`urllib.parse.parse_qs` and :func:`urllib." @@ -3681,11 +3686,11 @@ msgid "" "Adam Goldschmidt, Senthil Kumaran and Ken Jin in :issue:`42967`.)" msgstr "" -#: whatsnew/3.7.rst:2589 +#: whatsnew/3.7.rst:2596 msgid "Notable changes in Python 3.7.11" msgstr "" -#: whatsnew/3.7.rst:2591 +#: whatsnew/3.7.rst:2598 msgid "" "A security fix alters the :class:`ftplib.FTP` behavior to not trust the IPv4 " "address sent from the remote server when setting up a passive data channel. " @@ -3694,7 +3699,7 @@ msgid "" "instance to ``True``. (See :gh:`87451`)" msgstr "" -#: whatsnew/3.7.rst:2598 +#: whatsnew/3.7.rst:2605 msgid "" "The presence of newline or tab characters in parts of a URL allows for some " "forms of attacks. Following the WHATWG specification that updates RFC 3986, " @@ -3704,11 +3709,11 @@ msgid "" "parse._UNSAFE_URL_BYTES_TO_REMOVE``. (See :gh:`88048`)" msgstr "" -#: whatsnew/3.7.rst:2606 +#: whatsnew/3.7.rst:2613 msgid "Notable security feature in 3.7.14" msgstr "" -#: whatsnew/3.7.rst:2608 +#: whatsnew/3.7.rst:2615 msgid "" "Converting between :class:`int` and :class:`str` in bases other than 2 " "(binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) " diff --git a/whatsnew/3.8.po b/whatsnew/3.8.po index d2f933eb..10b69775 100644 --- a/whatsnew/3.8.po +++ b/whatsnew/3.8.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -829,8 +829,8 @@ msgid "" "element is a callable with a ``(obj, state)`` signature. This allows the " "direct control over the state-updating behavior of a specific object. If " "not *None*, this callable will have priority over the object's :meth:" -"`~__setstate__` method. (Contributed by Pierre Glaser and Olivier Grisel in :" -"issue:`35900`.)" +"`~object.__setstate__` method. (Contributed by Pierre Glaser and Olivier " +"Grisel in :issue:`35900`.)" msgstr "" #: whatsnew/3.8.rst:543 @@ -995,7 +995,7 @@ msgstr "" msgid "(Contributed by Yury Selivanov in :issue:`37028`.)" msgstr "" -#: whatsnew/3.8.rst:1970 +#: whatsnew/3.8.rst:1973 msgid "" "The exception :class:`asyncio.CancelledError` now inherits from :class:" "`BaseException` rather than :class:`Exception` and no longer inherits from :" @@ -1571,9 +1571,9 @@ msgid "" "system. Specifically, :func:`os.stat` will now traverse anything supported " "by the operating system, while :func:`os.lstat` will only open reparse " "points that identify as \"name surrogates\" while others are opened as for :" -"func:`os.stat`. In all cases, :attr:`stat_result.st_mode` will only have " +"func:`os.stat`. In all cases, :attr:`os.stat_result.st_mode` will only have " "``S_IFLNK`` set for symbolic links and not other kinds of reparse points. To " -"identify other kinds of reparse point, check the new :attr:`stat_result." +"identify other kinds of reparse point, check the new :attr:`os.stat_result." "st_reparse_tag` attribute." msgstr "" @@ -1605,7 +1605,7 @@ msgid "" "Storchaka in :issue:`33721`.)" msgstr "" -#: whatsnew/3.8.rst:1965 +#: whatsnew/3.8.rst:1968 msgid "" ":func:`~os.path.expanduser` on Windows now prefers the :envvar:`USERPROFILE` " "environment variable and does not use :envvar:`HOME`, which is not normally " @@ -1861,7 +1861,7 @@ msgid "" "(:func:`gc.collect`). (Contributed by Victor Stinner in :issue:`36829`.)" msgstr "" -#: whatsnew/3.8.rst:2350 +#: whatsnew/3.8.rst:2353 msgid "tarfile" msgstr "" @@ -1914,23 +1914,22 @@ msgstr "" #: whatsnew/3.8.rst:1288 msgid "" -"Added methods :meth:`~tkinter.Spinbox.selection_from`, :meth:`~tkinter." -"Spinbox.selection_present`, :meth:`~tkinter.Spinbox.selection_range` and :" -"meth:`~tkinter.Spinbox.selection_to` in the :class:`tkinter.Spinbox` class. " -"(Contributed by Juliette Monsel in :issue:`34829`.)" +"Added methods :meth:`!selection_from`, :meth:`!selection_present`, :meth:`!" +"selection_range` and :meth:`!selection_to` in the :class:`!tkinter.Spinbox` " +"class. (Contributed by Juliette Monsel in :issue:`34829`.)" msgstr "" #: whatsnew/3.8.rst:1295 msgid "" -"Added method :meth:`~tkinter.Canvas.moveto` in the :class:`tkinter.Canvas` " -"class. (Contributed by Juliette Monsel in :issue:`23831`.)" +"Added method :meth:`!moveto` in the :class:`!tkinter.Canvas` class. " +"(Contributed by Juliette Monsel in :issue:`23831`.)" msgstr "" #: whatsnew/3.8.rst:1299 msgid "" -"The :class:`tkinter.PhotoImage` class now has :meth:`~tkinter.PhotoImage." -"transparency_get` and :meth:`~tkinter.PhotoImage.transparency_set` methods. " -"(Contributed by Zackery Spytz in :issue:`25451`.)" +"The :class:`!tkinter.PhotoImage` class now has :meth:`!transparency_get` " +"and :meth:`!transparency_set` methods. (Contributed by Zackery Spytz in :" +"issue:`25451`.)" msgstr "" #: whatsnew/3.8.rst:1306 @@ -2126,7 +2125,7 @@ msgstr "" #: whatsnew/3.8.rst:1434 msgid "" -"The :mod:`xml.etree.ElementTree` module provides a new function :func:`–xml." +"The :mod:`xml.etree.ElementTree` module provides a new function :func:`~xml." "etree.ElementTree.canonicalize` that implements C14N 2.0. (Contributed by " "Stefan Behnel in :issue:`13611`.)" msgstr "" @@ -2359,7 +2358,7 @@ msgid ":c:func:`Py_XINCREF`, :c:func:`Py_XDECREF`" msgstr "" #: whatsnew/3.8.rst:1576 -msgid ":c:func:`PyObject_INIT`, :c:func:`PyObject_INIT_VAR`" +msgid ":c:macro:`!PyObject_INIT`, :c:macro:`!PyObject_INIT_VAR`" msgstr "" #: whatsnew/3.8.rst:1577 @@ -2517,7 +2516,7 @@ msgstr "" #: whatsnew/3.8.rst:1680 msgid "" -"The :func:`asyncio.coroutine` :term:`decorator` is deprecated and will be " +"The :deco:`!asyncio.coroutine` :term:`decorator` is deprecated and will be " "removed in version 3.10. Instead of ``@asyncio.coroutine``, use :keyword:" "`async def` instead. (Contributed by Andrew Svetlov in :issue:`36921`.)" msgstr "" @@ -2544,28 +2543,28 @@ msgstr "" #: whatsnew/3.8.rst:1699 msgid "" "The following functions and methods are deprecated in the :mod:`gettext` " -"module: :func:`~gettext.lgettext`, :func:`~gettext.ldgettext`, :func:" -"`~gettext.lngettext` and :func:`~gettext.ldngettext`. They return encoded " -"bytes, and it's possible that you will get unexpected Unicode-related " -"exceptions if there are encoding problems with the translated strings. It's " -"much better to use alternatives which return Unicode strings in Python 3. " -"These functions have been broken for a long time." +"module: :func:`!lgettext`, :func:`!ldgettext`, :func:`!lngettext` and :func:" +"`!ldngettext`. They return encoded bytes, and it's possible that you will " +"get unexpected Unicode-related exceptions if there are encoding problems " +"with the translated strings. It's much better to use alternatives which " +"return Unicode strings in Python 3. These functions have been broken for a " +"long time." msgstr "" #: whatsnew/3.8.rst:1707 msgid "" -"Function :func:`~gettext.bind_textdomain_codeset`, methods :meth:`~gettext." -"NullTranslations.output_charset` and :meth:`~gettext.NullTranslations." -"set_output_charset`, and the *codeset* parameter of functions :func:" -"`~gettext.translation` and :func:`~gettext.install` are also deprecated, " -"since they are only used for the ``l*gettext()`` functions. (Contributed by " -"Serhiy Storchaka in :issue:`33710`.)" +"Function :func:`!bind_textdomain_codeset`, methods :meth:`!NullTranslations." +"output_charset` and :meth:`!NullTranslations.set_output_charset`, and the " +"*codeset* parameter of functions :func:`~gettext.translation` and :func:" +"`~gettext.install` are also deprecated, since they are only used for the " +"``l*gettext()`` functions. (Contributed by Serhiy Storchaka in :issue:" +"`33710`.)" msgstr "" #: whatsnew/3.8.rst:1715 msgid "" -"The :meth:`~threading.Thread.isAlive` method of :class:`threading.Thread` " -"has been deprecated. (Contributed by Donghee Na in :issue:`35283`.)" +"The :meth:`!isAlive` method of :class:`threading.Thread` has been " +"deprecated. (Contributed by Donghee Na in :issue:`35283`.)" msgstr "" #: whatsnew/3.8.rst:1719 @@ -2585,7 +2584,7 @@ msgstr "" #: whatsnew/3.8.rst:1729 msgid "" "*func* in :func:`functools.partialmethod`, :func:`weakref.finalize`, :meth:" -"`profile.Profile.runcall`, :meth:`cProfile.Profile.runcall`, :meth:`bdb.Bdb." +"`profile.Profile.runcall`, :meth:`!cProfile.Profile.runcall`, :meth:`bdb.Bdb." "runcall`, :meth:`trace.Trace.runfunc` and :func:`curses.wrapper`." msgstr "" @@ -2602,16 +2601,15 @@ msgstr "" #: whatsnew/3.8.rst:1737 msgid "" -"*callback* in :meth:`contextlib.ExitStack.callback`, :meth:`contextlib." +"*callback* in :meth:`contextlib.ExitStack.callback`, :meth:`!contextlib." "AsyncExitStack.callback` and :meth:`contextlib.AsyncExitStack." "push_async_callback`." msgstr "" #: whatsnew/3.8.rst:1740 msgid "" -"*c* and *typeid* in the :meth:`~multiprocessing.managers.Server.create` " -"method of :class:`multiprocessing.managers.Server` and :class:" -"`multiprocessing.managers.SharedMemoryServer`." +"*c* and *typeid* in the :meth:`!create` method of :class:`!multiprocessing." +"managers.Server` and :class:`!multiprocessing.managers.SharedMemoryServer`." msgstr "" #: whatsnew/3.8.rst:1743 @@ -2642,20 +2640,20 @@ msgstr "" #: whatsnew/3.8.rst:1760 msgid "" -"The :mod:`macpath` module, deprecated in Python 3.7, has been removed. " +"The :mod:`!macpath` module, deprecated in Python 3.7, has been removed. " "(Contributed by Victor Stinner in :issue:`35471`.)" msgstr "" -#: whatsnew/3.8.rst:1882 +#: whatsnew/3.8.rst:1883 msgid "" -"The function :func:`platform.popen` has been removed, after having been " +"The function :func:`!platform.popen` has been removed, after having been " "deprecated since Python 3.3: use :func:`os.popen` instead. (Contributed by " "Victor Stinner in :issue:`35345`.)" msgstr "" #: whatsnew/3.8.rst:1767 msgid "" -"The function :func:`time.clock` has been removed, after having been " +"The function :func:`!time.clock` has been removed, after having been " "deprecated since Python 3.3: use :func:`time.perf_counter` or :func:`time." "process_time` instead, depending on your requirements, to have well-defined " "behavior. (Contributed by Matthias Bussonnier in :issue:`36895`.)" @@ -2716,7 +2714,7 @@ msgstr "" #: whatsnew/3.8.rst:1803 msgid "" -"The functions :func:`sys.set_coroutine_wrapper` and :func:`sys." +"The functions :func:`!sys.set_coroutine_wrapper` and :func:`!sys." "get_coroutine_wrapper` deprecated in Python 3.7 have been removed; :issue:" "`36933` (Contributed by Matthias Bussonnier.)" msgstr "" @@ -2790,7 +2788,7 @@ msgid "" "`sys.is_finalizing`. (Contributed by Joannah Nanjekye in :issue:`36475`.)" msgstr "" -#: whatsnew/3.8.rst:2321 +#: whatsnew/3.8.rst:2324 msgid "Changes in the Python API" msgstr "" @@ -2806,13 +2804,14 @@ msgstr "" msgid "" ":class:`subprocess.Popen` can now use :func:`os.posix_spawn` in some cases " "for better performance. On Windows Subsystem for Linux and QEMU User " -"Emulation, the :class:`Popen` constructor using :func:`os.posix_spawn` no " -"longer raises an exception on errors like \"missing program\". Instead the " -"child process fails with a non-zero :attr:`~Popen.returncode`. (Contributed " -"by Joannah Nanjekye and Victor Stinner in :issue:`35537`.)" +"Emulation, the :class:`~subprocess.Popen` constructor using :func:`os." +"posix_spawn` no longer raises an exception on errors like \"missing " +"program\". Instead the child process fails with a non-zero :attr:" +"`~subprocess.Popen.returncode`. (Contributed by Joannah Nanjekye and Victor " +"Stinner in :issue:`35537`.)" msgstr "" -#: whatsnew/3.8.rst:1872 +#: whatsnew/3.8.rst:1873 msgid "" "The *preexec_fn* argument of * :class:`subprocess.Popen` is no longer " "compatible with subinterpreters. The use of the parameter in a " @@ -2820,20 +2819,20 @@ msgid "" "issue:`34651`, modified by Christian Heimes in :issue:`37951`.)" msgstr "" -#: whatsnew/3.8.rst:1878 +#: whatsnew/3.8.rst:1879 msgid "" -"The :meth:`imap.IMAP4.logout` method no longer silently ignores arbitrary " +"The :meth:`imaplib.IMAP4.logout` method no longer silently ignores arbitrary " "exceptions. (Contributed by Victor Stinner in :issue:`36348`.)" msgstr "" -#: whatsnew/3.8.rst:1886 +#: whatsnew/3.8.rst:1887 msgid "" "The :func:`statistics.mode` function no longer raises an exception when " "given multimodal data. Instead, it returns the first mode encountered in " "the input data. (Contributed by Raymond Hettinger in :issue:`35892`.)" msgstr "" -#: whatsnew/3.8.rst:1891 +#: whatsnew/3.8.rst:1892 msgid "" "The :meth:`~tkinter.ttk.Treeview.selection` method of the :class:`tkinter." "ttk.Treeview` class no longer takes arguments. Using it with arguments for " @@ -2842,22 +2841,24 @@ msgid "" "selection. (Contributed by Serhiy Storchaka in :issue:`31508`.)" msgstr "" -#: whatsnew/3.8.rst:1897 +#: whatsnew/3.8.rst:1898 msgid "" -"The :meth:`writexml`, :meth:`toxml` and :meth:`toprettyxml` methods of :mod:" -"`xml.dom.minidom`, and the :meth:`write` method of :mod:`xml.etree`, now " -"preserve the attribute order specified by the user. (Contributed by Diego " -"Rojas and Raymond Hettinger in :issue:`34160`.)" +"The :meth:`~xml.dom.minidom.Node.writexml`, :meth:`~xml.dom.minidom.Node." +"toxml` and :meth:`~xml.dom.minidom.Node.toprettyxml` methods of :mod:`xml." +"dom.minidom` and the :meth:`~xml.etree.ElementTree.ElementTree.write` method " +"of :mod:`xml.etree.ElementTree` now preserve the attribute order specified " +"by the user. (Contributed by Diego Rojas and Raymond Hettinger in :issue:" +"`34160`.)" msgstr "" -#: whatsnew/3.8.rst:1902 +#: whatsnew/3.8.rst:1905 msgid "" "A :mod:`dbm.dumb` database opened with flags ``'r'`` is now read-only. :func:" "`dbm.dumb.open` with flags ``'r'`` and ``'w'`` no longer creates a database " "if it does not exist. (Contributed by Serhiy Storchaka in :issue:`32749`.)" msgstr "" -#: whatsnew/3.8.rst:1907 +#: whatsnew/3.8.rst:1910 msgid "" "The ``doctype()`` method defined in a subclass of :class:`~xml.etree." "ElementTree.XMLParser` will no longer be called and will emit a :exc:" @@ -2867,7 +2868,7 @@ msgid "" "in :issue:`29209`.)" msgstr "" -#: whatsnew/3.8.rst:1914 +#: whatsnew/3.8.rst:1917 msgid "" "A :exc:`RuntimeError` is now raised when the custom metaclass doesn't " "provide the ``__classcell__`` entry in the namespace passed to ``type." @@ -2875,13 +2876,13 @@ msgid "" "(Contributed by Serhiy Storchaka in :issue:`23722`.)" msgstr "" -#: whatsnew/3.8.rst:1919 +#: whatsnew/3.8.rst:1922 msgid "" -"The :class:`cProfile.Profile` class can now be used as a context manager. " -"(Contributed by Scott Sanderson in :issue:`29235`.)" +"The :class:`cProfile.Profile ` class can now be used as a " +"context manager. (Contributed by Scott Sanderson in :issue:`29235`.)" msgstr "" -#: whatsnew/3.8.rst:1922 +#: whatsnew/3.8.rst:1925 msgid "" ":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:" "`shutil.copytree` and :func:`shutil.move` use platform-specific \"fast-" @@ -2889,19 +2890,19 @@ msgid "" "operations` section)." msgstr "" -#: whatsnew/3.8.rst:1927 +#: whatsnew/3.8.rst:1930 msgid "" ":func:`shutil.copyfile` default buffer size on Windows was changed from 16 " "KiB to 1 MiB." msgstr "" -#: whatsnew/3.8.rst:1930 +#: whatsnew/3.8.rst:1933 msgid "" "The ``PyGC_Head`` struct has changed completely. All code that touched the " "struct member should be rewritten. (See :issue:`33597`.)" msgstr "" -#: whatsnew/3.8.rst:1933 +#: whatsnew/3.8.rst:1936 msgid "" "The :c:type:`PyInterpreterState` struct has been moved into the \"internal\" " "header files (specifically Include/internal/pycore_pystate.h). An opaque " @@ -2913,7 +2914,7 @@ msgid "" "functions to the public API). (See :issue:`35886`.)" msgstr "" -#: whatsnew/3.8.rst:1943 +#: whatsnew/3.8.rst:1946 msgid "" "The :meth:`mmap.flush() ` method now returns ``None`` on " "success and raises an exception on error under all platforms. Previously, " @@ -2923,21 +2924,21 @@ msgid "" "(Contributed by Berker Peksag in :issue:`2122`.)" msgstr "" -#: whatsnew/3.8.rst:1950 +#: whatsnew/3.8.rst:1953 msgid "" ":mod:`xml.dom.minidom` and :mod:`xml.sax` modules no longer process external " "entities by default. (Contributed by Christian Heimes in :issue:`17239`.)" msgstr "" -#: whatsnew/3.8.rst:1954 +#: whatsnew/3.8.rst:1957 msgid "" "Deleting a key from a read-only :mod:`dbm` database (:mod:`dbm.dumb`, :mod:" -"`dbm.gnu` or :mod:`dbm.ndbm`) raises :attr:`error` (:exc:`dbm.dumb.error`, :" +"`dbm.gnu` or :mod:`dbm.ndbm`) raises :attr:`!error` (:exc:`dbm.dumb.error`, :" "exc:`dbm.gnu.error` or :exc:`dbm.ndbm.error`) instead of :exc:`KeyError`. " "(Contributed by Xiang Zhang in :issue:`33106`.)" msgstr "" -#: whatsnew/3.8.rst:1959 +#: whatsnew/3.8.rst:1962 msgid "" "Simplified AST for literals. All constants will be represented as :class:" "`ast.Constant` instances. Instantiating old classes ``Num``, ``Str``, " @@ -2945,7 +2946,7 @@ msgid "" "``Constant``. (Contributed by Serhiy Storchaka in :issue:`32892`.)" msgstr "" -#: whatsnew/3.8.rst:1975 +#: whatsnew/3.8.rst:1978 msgid "" "The function :func:`asyncio.wait_for` now correctly waits for cancellation " "when using an instance of :class:`asyncio.Task`. Previously, upon reaching " @@ -2953,18 +2954,18 @@ msgid "" "Pranskevichus in :issue:`32751`.)" msgstr "" -#: whatsnew/3.8.rst:1980 +#: whatsnew/3.8.rst:1983 msgid "" "The function :func:`asyncio.BaseTransport.get_extra_info` now returns a safe " "to use socket object when 'socket' is passed to the *name* parameter. " "(Contributed by Yury Selivanov in :issue:`37027`.)" msgstr "" -#: whatsnew/3.8.rst:1984 +#: whatsnew/3.8.rst:1987 msgid ":class:`asyncio.BufferedProtocol` has graduated to the stable API." msgstr "" -#: whatsnew/3.8.rst:1988 +#: whatsnew/3.8.rst:1991 msgid "" "DLL dependencies for extension modules and DLLs loaded with :mod:`ctypes` on " "Windows are now resolved more securely. Only the system paths, the directory " @@ -2979,14 +2980,14 @@ msgid "" "verified by the installer). (Contributed by Steve Dower in :issue:`36085`.)" msgstr "" -#: whatsnew/3.8.rst:2001 +#: whatsnew/3.8.rst:2004 msgid "" "The header files and functions related to pgen have been removed after its " "replacement by a pure Python implementation. (Contributed by Pablo Galindo " "in :issue:`36623`.)" msgstr "" -#: whatsnew/3.8.rst:2005 +#: whatsnew/3.8.rst:2008 msgid "" ":class:`types.CodeType` has a new parameter in the second position of the " "constructor (*posonlyargcount*) to support positional-only arguments defined " @@ -2996,17 +2997,17 @@ msgid "" "code future-proof." msgstr "" -#: whatsnew/3.8.rst:2012 +#: whatsnew/3.8.rst:2015 msgid "" "The parameter ``digestmod`` for :func:`hmac.new` no longer uses the MD5 " "digest by default." msgstr "" -#: whatsnew/3.8.rst:2016 +#: whatsnew/3.8.rst:2019 msgid "Changes in the C API" msgstr "" -#: whatsnew/3.8.rst:2018 +#: whatsnew/3.8.rst:2021 msgid "" "The :c:struct:`PyCompilerFlags` structure got a new *cf_feature_version* " "field. It should be initialized to ``PY_MINOR_VERSION``. The field is " @@ -3014,14 +3015,14 @@ msgid "" "in *cf_flags*. (Contributed by Guido van Rossum in :issue:`35766`.)" msgstr "" -#: whatsnew/3.8.rst:2024 +#: whatsnew/3.8.rst:2027 msgid "" "The :c:func:`!PyEval_ReInitThreads` function has been removed from the C " "API. It should not be called explicitly: use :c:func:`PyOS_AfterFork_Child` " "instead. (Contributed by Victor Stinner in :issue:`36728`.)" msgstr "" -#: whatsnew/3.8.rst:2029 +#: whatsnew/3.8.rst:2032 msgid "" "On Unix, C extensions are no longer linked to libpython except on Android " "and Cygwin. When Python is embedded, ``libpython`` must not be loaded with " @@ -3032,7 +3033,7 @@ msgid "" "Stinner in :issue:`21536`.)" msgstr "" -#: whatsnew/3.8.rst:2037 +#: whatsnew/3.8.rst:2040 msgid "" "Use of ``#`` variants of formats in parsing or building value (e.g. :c:func:" "`PyArg_ParseTuple`, :c:func:`Py_BuildValue`, :c:func:" @@ -3041,21 +3042,21 @@ msgid "" "`arg-parsing` for detail. (Contributed by Inada Naoki in :issue:`36381`.)" msgstr "" -#: whatsnew/3.8.rst:2043 +#: whatsnew/3.8.rst:2046 msgid "" "Instances of heap-allocated types (such as those created with :c:func:" "`PyType_FromSpec`) hold a reference to their type object. Increasing the " "reference count of these type objects has been moved from :c:func:" "`PyType_GenericAlloc` to the more low-level functions, :c:func:" -"`PyObject_Init` and :c:func:`PyObject_INIT`. This makes types created " +"`PyObject_Init` and :c:macro:`!PyObject_INIT`. This makes types created " "through :c:func:`PyType_FromSpec` behave like other classes in managed code." msgstr "" -#: whatsnew/3.8.rst:2051 +#: whatsnew/3.8.rst:2054 msgid ":ref:`Statically allocated types ` are not affected." msgstr "" -#: whatsnew/3.8.rst:2053 +#: whatsnew/3.8.rst:2056 msgid "" "For the vast majority of cases, there should be no side effect. However, " "types that manually increase the reference count after allocating an " @@ -3064,25 +3065,25 @@ msgid "" "instance deallocation." msgstr "" -#: whatsnew/3.8.rst:2059 +#: whatsnew/3.8.rst:2062 msgid "" "To correctly port these types into 3.8, please apply the following changes:" msgstr "" -#: whatsnew/3.8.rst:2062 +#: whatsnew/3.8.rst:2065 msgid "" "Remove :c:macro:`Py_INCREF` on the type object after allocating an instance " "- if any. This may happen after calling :c:macro:`PyObject_New`, :c:macro:" "`PyObject_NewVar`, :c:func:`PyObject_GC_New`, :c:func:`PyObject_GC_NewVar`, " -"or any other custom allocator that uses :c:func:`PyObject_Init` or :c:func:" -"`PyObject_INIT`." +"or any other custom allocator that uses :c:func:`PyObject_Init` or :c:macro:" +"`!PyObject_INIT`." msgstr "" -#: whatsnew/3.8.rst:2088 whatsnew/3.8.rst:2107 +#: whatsnew/3.8.rst:2091 whatsnew/3.8.rst:2110 msgid "Example:" msgstr "" -#: whatsnew/3.8.rst:2071 +#: whatsnew/3.8.rst:2074 msgid "" "static foo_struct *\n" "foo_new(PyObject *type) {\n" @@ -3097,13 +3098,13 @@ msgid "" "}" msgstr "" -#: whatsnew/3.8.rst:2085 +#: whatsnew/3.8.rst:2088 msgid "" "Ensure that all custom ``tp_dealloc`` functions of heap-allocated types " "decrease the type's reference count." msgstr "" -#: whatsnew/3.8.rst:2090 +#: whatsnew/3.8.rst:2093 msgid "" "static void\n" "foo_dealloc(foo_struct *instance) {\n" @@ -3116,25 +3117,25 @@ msgid "" "}" msgstr "" -#: whatsnew/3.8.rst:2102 +#: whatsnew/3.8.rst:2105 msgid "(Contributed by Eddie Elizondo in :issue:`35810`.)" msgstr "" -#: whatsnew/3.8.rst:2104 +#: whatsnew/3.8.rst:2107 msgid "" "The :c:macro:`Py_DEPRECATED()` macro has been implemented for MSVC. The " "macro now must be placed before the symbol name." msgstr "" -#: whatsnew/3.8.rst:2109 +#: whatsnew/3.8.rst:2112 msgid "Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void);" msgstr "" -#: whatsnew/3.8.rst:2113 +#: whatsnew/3.8.rst:2116 msgid "(Contributed by Zackery Spytz in :issue:`33407`.)" msgstr "" -#: whatsnew/3.8.rst:2115 +#: whatsnew/3.8.rst:2118 msgid "" "The interpreter does not pretend to support binary compatibility of " "extension types across feature releases, anymore. A :c:type:`PyTypeObject` " @@ -3144,18 +3145,18 @@ msgid "" "before reading :c:member:`~PyTypeObject.tp_finalize`)." msgstr "" -#: whatsnew/3.8.rst:2122 +#: whatsnew/3.8.rst:2125 msgid "(Contributed by Antoine Pitrou in :issue:`32388`.)" msgstr "" -#: whatsnew/3.8.rst:2124 +#: whatsnew/3.8.rst:2127 msgid "" "The functions :c:func:`!PyNode_AddChild` and :c:func:`!PyParser_AddToken` " "now accept two additional ``int`` arguments *end_lineno* and " "*end_col_offset*." msgstr "" -#: whatsnew/3.8.rst:2127 +#: whatsnew/3.8.rst:2130 msgid "" "The :file:`libpython38.a` file to allow MinGW tools to link directly " "against :file:`python38.dll` is no longer included in the regular Windows " @@ -3164,13 +3165,13 @@ msgid "" "package:" msgstr "" -#: whatsnew/3.8.rst:2132 +#: whatsnew/3.8.rst:2135 msgid "" "gendef - python38.dll > tmp.def\n" "dlltool --dllname python38.dll --def tmp.def --output-lib libpython38.a" msgstr "" -#: whatsnew/3.8.rst:2137 +#: whatsnew/3.8.rst:2140 msgid "" "The location of an installed :file:`pythonXY.dll` will depend on the " "installation options and the version and language of Windows. See :ref:" @@ -3179,15 +3180,15 @@ msgid "" "the :file:`libs` directory under your Python installation." msgstr "" -#: whatsnew/3.8.rst:2143 +#: whatsnew/3.8.rst:2146 msgid "(Contributed by Steve Dower in :issue:`37351`.)" msgstr "" -#: whatsnew/3.8.rst:2147 +#: whatsnew/3.8.rst:2150 msgid "CPython bytecode changes" msgstr "" -#: whatsnew/3.8.rst:2149 +#: whatsnew/3.8.rst:2152 msgid "" "The interpreter loop has been simplified by moving the logic of unrolling " "the stack of blocks into the compiler. The compiler emits now explicit " @@ -3195,7 +3196,7 @@ msgid "" "code for :keyword:`break`, :keyword:`continue` and :keyword:`return`." msgstr "" -#: whatsnew/3.8.rst:2155 +#: whatsnew/3.8.rst:2158 msgid "" "Removed opcodes :opcode:`!BREAK_LOOP`, :opcode:`!CONTINUE_LOOP`, :opcode:`!" "SETUP_LOOP` and :opcode:`!SETUP_EXCEPT`. Added new opcodes :opcode:`!" @@ -3204,20 +3205,20 @@ msgid "" "WITH_CLEANUP_START`." msgstr "" -#: whatsnew/3.8.rst:2161 +#: whatsnew/3.8.rst:2164 msgid "" "(Contributed by Mark Shannon, Antoine Pitrou and Serhiy Storchaka in :issue:" "`17611`.)" msgstr "" -#: whatsnew/3.8.rst:2164 +#: whatsnew/3.8.rst:2167 msgid "" "Added new opcode :opcode:`END_ASYNC_FOR` for handling exceptions raised when " "awaiting a next item in an :keyword:`async for` loop. (Contributed by Serhiy " "Storchaka in :issue:`33041`.)" msgstr "" -#: whatsnew/3.8.rst:2168 +#: whatsnew/3.8.rst:2171 msgid "" "The :opcode:`MAP_ADD` now expects the value as the first element in the " "stack and the key as the second element. This change was made so the key is " @@ -3225,22 +3226,22 @@ msgid "" "by :pep:`572`. (Contributed by Jörn Heissler in :issue:`35224`.)" msgstr "" -#: whatsnew/3.8.rst:2175 +#: whatsnew/3.8.rst:2178 msgid "Demos and Tools" msgstr "" -#: whatsnew/3.8.rst:2177 +#: whatsnew/3.8.rst:2180 msgid "" "Added a benchmark script for timing various ways to access variables: " "``Tools/scripts/var_access_benchmark.py``. (Contributed by Raymond Hettinger " "in :issue:`35884`.)" msgstr "" -#: whatsnew/3.8.rst:2181 +#: whatsnew/3.8.rst:2184 msgid "Here's a summary of performance improvements since Python 3.3:" msgstr "" -#: whatsnew/3.8.rst:2183 +#: whatsnew/3.8.rst:2186 msgid "" "Python version 3.3 3.4 3.5 3.6 3.7 " "3.8\n" @@ -3316,7 +3317,7 @@ msgid "" "0.3" msgstr "" -#: whatsnew/3.8.rst:2228 +#: whatsnew/3.8.rst:2231 msgid "" "The benchmarks were measured on an `Intel® Core™ i7-4960HQ processor " "\n" "Language-Team: LANGUAGE \n" @@ -630,8 +630,8 @@ msgstr "" #: whatsnew/3.9.rst:426 msgid "" -"Added constants :const:`~fcntl.F_OFD_GETLK`, :const:`~fcntl.F_OFD_SETLK` " -"and :const:`~fcntl.F_OFD_SETLKW`. (Contributed by Donghee Na in :issue:" +"Added constants :const:`!fcntl.F_OFD_GETLK`, :const:`!fcntl.F_OFD_SETLK` " +"and :const:`!fcntl.F_OFD_SETLKW`. (Contributed by Donghee Na in :issue:" "`38602`.)" msgstr "" @@ -986,7 +986,7 @@ msgstr "" #: whatsnew/3.9.rst:647 msgid "" -"Added a new :attr:`random.Random.randbytes` method: generate random bytes. " +"Added a new :meth:`random.Random.randbytes` method: generate random bytes. " "(Contributed by Victor Stinner in :issue:`40286`.)" msgstr "" @@ -1198,7 +1198,7 @@ msgstr "" #: whatsnew/3.9.rst:779 msgid "" -"Optimized :func:`~set.difference_update` for the case when the other set is " +"Optimized :meth:`!set.difference_update` for the case when the other set is " "much larger than the base set. (Suggested by Evgeny Kapun with code " "contributed by Michele Orrù in :issue:`8425`.)" msgstr "" diff --git a/whatsnew/changelog.po b/whatsnew/changelog.po index 2e4216a6..ec38e05b 100644 --- a/whatsnew/changelog.po +++ b/whatsnew/changelog.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-19 17:36+0300\n" +"POT-Creation-Date: 2025-11-29 09:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,124 +22,357 @@ msgid "Changelog" msgstr "" #: build/NEWS:3 -msgid "Python 3.12.10 final" +msgid "Python next" msgstr "" #: build/NEWS:5 +msgid "*Release date: XXXX-XX-XX*" +msgstr "" + +#: build/NEWS:111 build/NEWS:719 build/NEWS:1457 build/NEWS:2428 +#: build/NEWS:4072 build/NEWS:5795 build/NEWS:7133 build/NEWS:13409 +#: build/NEWS:16443 build/NEWS:17874 build/NEWS:19746 build/NEWS:21405 +#: build/NEWS:24501 build/NEWS:29106 build/NEWS:33505 build/NEWS:34763 +#: build/NEWS:37309 build/NEWS:39081 build/NEWS:39784 +msgid "Security" +msgstr "" + +#: build/NEWS:10 +msgid "" +":gh:`137836`: Add support of the \"plaintext\" element, RAWTEXT elements " +"\"xmp\", \"iframe\", \"noembed\" and \"noframes\", and optionally RAWTEXT " +"element \"noscript\" in :class:`html.parser.HTMLParser`." +msgstr "" + +#: build/NEWS:14 +msgid ":gh:`136065`: Fix quadratic complexity in :func:`os.path.expandvars`." +msgstr "" + +#: build/NEWS:18 +msgid "Python 3.12.12 final" +msgstr "" + +#: build/NEWS:20 +msgid "*Release date: 2025-10-09*" +msgstr "" + +#: build/NEWS:700 build/NEWS:2837 build/NEWS:4048 build/NEWS:5778 +#: build/NEWS:9591 build/NEWS:15160 build/NEWS:19679 build/NEWS:23596 +#: build/NEWS:25340 build/NEWS:29302 build/NEWS:30756 build/NEWS:33800 +#: build/NEWS:35075 build/NEWS:36528 build/NEWS:38557 build/NEWS:41015 +#: build/NEWS:42129 build/NEWS:44041 +msgid "Tools/Demos" +msgstr "" + +#: build/NEWS:25 +msgid "" +":gh:`139330`: SBOM generation tool didn't cross-check the version and " +"checksum values against the ``Modules/expat/refresh.sh`` script, leading to " +"the values becoming out-of-date during routine updates." +msgstr "" + +#: build/NEWS:32 +msgid "" +":gh:`139700`: Check consistency of the zip64 end of central directory " +"record. Support records with \"zip64 extensible data\" if there are no bytes " +"prepended to the ZIP file." +msgstr "" + +#: build/NEWS:36 +msgid "" +":gh:`139400`: :mod:`xml.parsers.expat`: Make sure that parent Expat parsers " +"are only garbage-collected once they are no longer referenced by subparsers " +"created by :meth:`~xml.parsers.expat.xmlparser.ExternalEntityParserCreate`. " +"Patch by Sebastian Pipping." +msgstr "" + +#: build/NEWS:42 +msgid "" +":gh:`135661`: Fix parsing start and end tags in :class:`html.parser." +"HTMLParser` according to the HTML5 standard." +msgstr "" + +#: build/NEWS:45 +msgid "" +"Whitespaces no longer accepted between ```` does not end the script section." +msgstr "" + +#: build/NEWS:48 +msgid "" +"Vertical tabulation (``\\v``) and non-ASCII whitespaces no longer recognized " +"as whitespaces. The only whitespaces are ``\\t\\n\\r\\f`` and space." +msgstr "" + +#: build/NEWS:51 +msgid "Null character (U+0000) no longer ends the tag name." +msgstr "" + +#: build/NEWS:53 +msgid "" +"Attributes and slashes after the tag name in end tags are now ignored, " +"instead of terminating after the first ``>`` in quoted attribute value. E.g. " +"``\"/>``." +msgstr "" + +#: build/NEWS:57 +msgid "" +"Multiple slashes and whitespaces between the last attribute and closing " +"``>`` are now ignored in both start and end tags. E.g. ````." +msgstr "" + +#: build/NEWS:60 +msgid "" +"Multiple ``=`` between attribute name and value are no longer collapsed. E." +"g. ```` produces attribute \"foo\" with value \"=bar\"." +msgstr "" + +#: build/NEWS:63 +msgid "" +":gh:`135661`: Fix CDATA section parsing in :class:`html.parser.HTMLParser` " +"according to the HTML5 standard: ``] ]>`` and ``]] >`` no longer end the " +"CDATA section. Add private method ``_set_support_cdata()`` which can be used " +"to specify how to parse ``<[CDATA[`` --- as a CDATA section in foreign " +"content (SVG or MathML) or as a bogus comment in the HTML namespace." +msgstr "" + +#: build/NEWS:70 +msgid "" +":gh:`102555`: Fix comment parsing in :class:`html.parser.HTMLParser` " +"according to the HTML5 standard. ``--!>`` now ends the comment. ``-- >`` no " +"longer ends the comment. Support abnormally ended empty comments ``<-->`` " +"and ``<--->``." +msgstr "" + +#: build/NEWS:75 +msgid "" +":gh:`135462`: Fix quadratic complexity in processing specially crafted input " +"in :class:`html.parser.HTMLParser`. End-of-file errors are now handled " +"according to the HTML5 specs -- comments and declarations are automatically " +"closed, tags are ignored." +msgstr "" + +#: build/NEWS:80 +msgid "" +":gh:`118350`: Fix support of escapable raw text mode (elements \"textarea\" " +"and \"title\") in :class:`html.parser.HTMLParser`." +msgstr "" + +#: build/NEWS:83 +msgid "" +":gh:`86155`: :meth:`html.parser.HTMLParser.close` no longer loses data when " +"the ``