diff --git a/Makefile b/Makefile index d3ad6e69..6992b90b 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 := 973e2d3e29d4994bf01683e607d2a448d3d49f4f +CPYTHON_CURRENT_COMMIT := 9756d8c63737042db611205b0c33c353d5dbd9c3 CPYTHON_PATH := ./cpython diff --git a/about.po b/about.po index 2567a1c5..9ea7bcfd 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 54445c68..c83cab97 100644 --- a/bugs.po +++ b/bugs.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" -"PO-Revision-Date: 2024-05-06 12:51+0000\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Theofanis Petkos \n" "Language-Team: PyGreece \n" "Language: \n" @@ -49,15 +49,26 @@ msgstr "Σφάλματα Τεκμηρίωσης" #: bugs.rst:18 msgid "" "If you find a bug in this documentation or would like to propose an " -"improvement, please submit a bug report on the :ref:`tracker `. If you have a suggestion on how to fix it, include that as well." +"improvement, please submit a bug report on the :ref:`issue tracker `. If you have a suggestion on how to fix it, include that as " +"well." msgstr "" "Εάν βρείτε ένα σφάλμα σε αυτήν την τεκμηρίωση ή θέλετε να προτείνετε μια " -"βελτίωση, υποβάλετε μια αναφορά σφάλματος στο :ref:`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 " "`_." @@ -65,35 +76,21 @@ 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 bug " +"documentation, please submit a bug report on the `python-doc-theme issue " "tracker `_." msgstr "" "Εάν εντοπίσετε ένα σφάλμα στο θέμα (HTML / CSS / JavaScript) της " -"τεκμηρίωσης , υποβάλετε μια αναφορά σφαλμάτων σχετικά με το πρόγραμμα " -"παρακολούθησης σφαλμάτων `python-doc-theme bug tracker `_." - -#: bugs.rst:29 -msgid "" -"If you're short on time, you can also email documentation bug reports to " -"docs@python.org (behavioral bugs can be sent to python-list@python.org). " -"'docs@' is a mailing list run by volunteers; your request will be noticed, " -"though it may take a while to be processed." -msgstr "" -"Εάν δεν έχετε χρόνο, μπορείτε επίσης να στείλετε με email αναφορές σφαλμάτων " -"τεκμηρίωσης στο docs@python.org (τα σφάλματα συμπεριφοράς - behavioral bugs " -"μπορούν να σταλούν στη διεύθυνση python-list@python.org). Το 'docs@' είναι " -"ένα mailing list που διευθύνεται από εθελοντές. Το αίτημά σας θα γίνει " -"αντιληπτό, αν και μπορεί να χρειαστεί λίγος χρόνος για την επεξεργασία του." +"τεκμηρίωσης , υποβάλετε μια αναφορά σφαλμάτων με το `python-doc-theme issue " +"tracker `_." -#: bugs.rst:36 +#: bugs.rst:37 msgid "`Documentation bugs`_" msgstr "`Σφάλματα τεκμηρίωσης`_" -#: bugs.rst:37 +#: bugs.rst:38 msgid "" "A list of documentation bugs that have been submitted to the Python issue " "tracker." @@ -101,18 +98,18 @@ msgstr "" "Μια λίστα σφαλμάτων τεκμηρίωσης που έχουν υποβληθεί στον Python issue " "tracker." -#: bugs.rst:39 +#: bugs.rst:40 msgid "`Issue Tracking `_" msgstr "`Παρακολούθηση Issue `_" -#: bugs.rst:40 +#: bugs.rst:41 msgid "" "Overview of the process involved in reporting an improvement on the tracker." msgstr "" "Επισκόπηση της διαδικασίας που περιλαμβάνει η αναφορά μιας βελτίωσης στον " "tracker." -#: bugs.rst:42 +#: bugs.rst:43 msgid "" "`Helping with Documentation `_" @@ -120,7 +117,7 @@ msgstr "" "`Βοηθώντας με την Τεκμηρίωση `_" -#: bugs.rst:43 +#: bugs.rst:44 msgid "" "Comprehensive guide for individuals that are interested in contributing to " "Python documentation." @@ -128,7 +125,7 @@ msgstr "" "Ολοκληρωμένος οδηγός για άτομα που ενδιαφέρονται να συνεισφέρουν στην " "Τεκμηρίωση της Python." -#: bugs.rst:45 +#: bugs.rst:46 msgid "" "`Documentation Translations `_" @@ -136,7 +133,7 @@ msgstr "" "`Μεταφράσεις Τεκμηρίωσης `_" -#: bugs.rst:46 +#: bugs.rst:47 msgid "" "A list of GitHub pages for documentation translation and their primary " "contacts." @@ -144,11 +141,11 @@ msgstr "" "Μια λίστα από Github pages για την μετάφραση της τεκμηρίωσης και τις " "κυριότερες επαφές." -#: bugs.rst:52 +#: bugs.rst:53 msgid "Using the Python issue tracker" msgstr "Χρησιμοποιώντας τον Python issue tracker" -#: bugs.rst:54 +#: 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 " @@ -160,7 +157,7 @@ msgstr "" "GitHub issues tracker προσφέρει μια web φόρμα που επιτρέπει την εισαγωγή και " "υποβολή σχετικών πληροφοριών στους προγραμματιστές." -#: bugs.rst:59 +#: 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 " @@ -179,7 +176,7 @@ msgstr "" "αναζητήστε στον tracker χρησιμοποιώντας το πλαίσιο αναζήτησης στο επάνω " "μέρος της σελίδας." -#: bugs.rst:66 +#: 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 " @@ -191,7 +188,7 @@ msgstr "" "λογαριασμό χρησιμοποιώντας τον σύνδεσμο \"Sign up\". Δεν είναι δυνατή η " "υποβολή αναφοράς σφαλμάτων ανώνυμα." -#: bugs.rst:71 +#: 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." @@ -199,11 +196,11 @@ msgstr "" "Όταν πλέον είστε συνδεδεμένοι, μπορείτε να υποβάλετε ένα issue. Κάντε κλικ " "στο κουμπί \"New issue\" στην επάνω γραμμή για να αναφέρετε ένα νέο issue." -#: bugs.rst:74 +#: bugs.rst:75 msgid "The submission form has two fields, \"Title\" and \"Comment\"." msgstr "Η φόρμα υποβολής έχει δύο πεδία, \"Title\" και \"Comment\"." -#: bugs.rst:76 +#: bugs.rst:77 msgid "" "For the \"Title\" field, enter a *very* short description of the problem; " "fewer than ten words is good." @@ -211,7 +208,7 @@ msgstr "" "Για το πεδίο \"Title\", εισαγάγετε μια *πολύ* σύντομη περιγραφή του " "προβλήματος' λιγότερες από δέκα λέξεις είναι καλές." -#: bugs.rst:79 +#: 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 " @@ -224,7 +221,7 @@ msgstr "" "ποια πλατφόρμα υλικού και λογισμικού (συμπεριλαμβανομένων των πληροφοριών " "έκδοσης ανάλογα με την περίπτωση)." -#: bugs.rst:84 +#: 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 " @@ -234,7 +231,7 @@ msgstr "" "καθορίσει τι πρέπει να γίνει για να διορθωθεί το πρόβλημα. Θα λαμβάνετε μια " "ενημέρωση κάθε φορά που γίνεται κάποια ενέργεια για το πρόβλημα." -#: bugs.rst:91 +#: bugs.rst:92 msgid "" "`How to Report Bugs Effectively `_" @@ -242,7 +239,7 @@ msgstr "" "`Πως να Αναφέρεται Σφάλματα Αποτελεσματικά `_" -#: bugs.rst:92 +#: 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." @@ -251,15 +248,15 @@ msgstr "" "μιας χρήσιμης αναφοράς σφάλματος. Περιγράφει τι είδους πληροφορίες είναι " "χρήσιμες και γιατί είναι χρήσιμες." -#: bugs.rst:95 +#: bugs.rst:96 msgid "" "`Bug Writing Guidelines `_" msgstr "" -"Οδηγίες Συγγραφής Αναφορών Σφαλμάτων `_" -#: bugs.rst:96 +#: 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." @@ -268,11 +265,11 @@ msgstr "" "αυτά αφορούν ειδικά το πρότζεκτ Mozilla, αλλά περιγράφουν και γενικές καλές " "πρακτικές." -#: bugs.rst:102 +#: bugs.rst:103 msgid "Getting started contributing to Python yourself" msgstr "Ξεκινήστε να συνεισφέρετε και εσείς στην Python" -#: bugs.rst:104 +#: 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 " @@ -287,3 +284,16 @@ msgstr "" "list`_ είναι ένα φιλικό μέρος για να λάβετε απαντήσεις για οποιασδήποτε ή " "και όλες τις ερωτήσεις που σχετίζονται με τη διαδικασία επίλυσης προβλημάτων " "στην Python." + +#~ msgid "" +#~ "If you're short on time, you can also email documentation bug reports to " +#~ "docs@python.org (behavioral bugs can be sent to python-list@python.org). " +#~ "'docs@' is a mailing list run by volunteers; your request will be " +#~ "noticed, though it may take a while to be processed." +#~ msgstr "" +#~ "Εάν δεν έχετε χρόνο, μπορείτε επίσης να στείλετε με email αναφορές " +#~ "σφαλμάτων τεκμηρίωσης στο docs@python.org (τα σφάλματα συμπεριφοράς - " +#~ "behavioral bugs μπορούν να σταλούν στη διεύθυνση python-list@python.org). " +#~ "Το 'docs@' είναι ένα mailing list που διευθύνεται από εθελοντές. Το " +#~ "αίτημά σας θα γίνει αντιληπτό, αν και μπορεί να χρειαστεί λίγος χρόνος " +#~ "για την επεξεργασία του." diff --git a/c-api/abstract.po b/c-api/abstract.po index 00ce69e9..68aa56c4 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 6400e4ef..14424859 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -73,24 +73,61 @@ msgstr "" #: c-api/allocation.rst:63 msgid "" -"Releases memory allocated to an object using :c:macro:`PyObject_New` or :c:" -"macro:`PyObject_NewVar`. This is normally called from the :c:member:" -"`~PyTypeObject.tp_dealloc` handler specified in the object's type. The " -"fields of the object should not be accessed after this call as the memory is " -"no longer a valid Python object." -msgstr "" - -#: c-api/allocation.rst:72 -msgid "" "Object which is visible in Python as ``None``. This should only be accessed " "using the :c:macro:`Py_None` macro, which evaluates to a pointer to this " "object." msgstr "" -#: c-api/allocation.rst:79 -msgid ":c:func:`PyModule_Create`" +#: c-api/allocation.rst:70 +msgid ":ref:`moduleobjects`" msgstr "" -#: c-api/allocation.rst:80 +#: c-api/allocation.rst:71 msgid "To allocate and create extension modules." msgstr "" + +#: c-api/allocation.rst:75 +msgid "Deprecated aliases" +msgstr "" + +#: c-api/allocation.rst:77 +msgid "" +"These are :term:`soft deprecated` aliases to existing functions and macros. " +"They exist solely for backwards compatibility." +msgstr "" + +#: c-api/allocation.rst:85 +msgid "Deprecated alias" +msgstr "" + +#: c-api/allocation.rst:86 +msgid "Function" +msgstr "" + +#: c-api/allocation.rst:88 +msgid ":c:macro:`PyObject_New`" +msgstr "" + +#: c-api/allocation.rst:90 +msgid ":c:macro:`PyObject_NewVar`" +msgstr "" + +#: c-api/allocation.rst:92 +msgid ":c:func:`PyObject_Init`" +msgstr "" + +#: c-api/allocation.rst:94 +msgid ":c:func:`PyObject_InitVar`" +msgstr "" + +#: c-api/allocation.rst:96 +msgid ":c:func:`PyObject_Malloc`" +msgstr "" + +#: c-api/allocation.rst:98 +msgid ":c:func:`PyObject_Realloc`" +msgstr "" + +#: c-api/allocation.rst:102 c-api/allocation.rst:104 +msgid ":c:func:`PyObject_Free`" +msgstr "" diff --git a/c-api/apiabiversion.po b/c-api/apiabiversion.po index fd351c01..7ba2f9ca 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b43139b4..a5783f39 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -290,7 +290,7 @@ msgstr "" 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 "" diff --git a/c-api/bool.po b/c-api/bool.po index 9bb2b35c..a723df09 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 30f261e4..500de2b5 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 0f136937..4342b38f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 d1fdb7f0..765d0eff 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -324,6 +324,57 @@ msgid "" "``NULL``, :exc:`MemoryError` is set, and ``-1`` is returned." msgstr "" +#: c-api/bytes.rst:208 +msgid "" +"Get the string representation of *bytes*. This function is currently used to " +"implement :meth:`!bytes.__repr__` in Python." +msgstr "" + +#: c-api/bytes.rst:211 +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:214 +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:220 +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:227 +msgid "" +"Unescape a backslash-escaped string *s*. *s* must not be ``NULL``. *len* " +"must be the size of *s*." +msgstr "" + +#: c-api/bytes.rst:230 +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:233 +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:237 +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 05e3dcd3..b417df72 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ac738e7b..6f34748f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 8cf1dfc6..2d0726d2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 0b5cf998..fbf55d8b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -212,7 +212,7 @@ msgstr "" #: c-api/code.rst:184 msgid "" "If *event* is ``PY_CODE_EVENT_CREATE``, then the callback is invoked after " -"`co` has been fully initialized. Otherwise, the callback is invoked before " +"*co* has been fully initialized. Otherwise, the callback is invoked before " "the destruction of *co* takes place, so the prior state of *co* can be " "inspected." msgstr "" @@ -251,85 +251,197 @@ 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:271 +msgid "no effect (:py:data:`__future__.division`)" +msgstr "" + +#: c-api/code.rst:273 +msgid "no effect (:py:data:`__future__.absolute_import`)" +msgstr "" + +#: c-api/code.rst:275 +msgid "no effect (:py:data:`__future__.with_statement`)" +msgstr "" + +#: c-api/code.rst:277 +msgid "no effect (:py:data:`__future__.print_function`)" +msgstr "" + +#: c-api/code.rst:279 +msgid "no effect (:py:data:`__future__.unicode_literals`)" +msgstr "" + +#: c-api/code.rst:281 +msgid "no effect (:py:data:`__future__.generator_stop`)" +msgstr "" + +#: c-api/code.rst:283 +msgid ":py:data:`__future__.annotations`" +msgstr "" + +#: c-api/code.rst:287 msgid "Extra information" msgstr "" -#: c-api/code.rst:217 +#: c-api/code.rst:289 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:293 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:299 +msgid "Return a new opaque index value used to adding data to code objects." msgstr "" -#: c-api/code.rst:229 +#: c-api/code.rst:301 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:305 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:311 msgid "as ``_PyEval_RequestCodeExtraIndex``" msgstr "" -#: c-api/code.rst:243 +#: c-api/code.rst:315 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:321 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:324 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:329 msgid "as ``_PyCode_GetExtra``" msgstr "" -#: c-api/code.rst:261 +#: c-api/code.rst:333 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:339 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:344 msgid "as ``_PyCode_SetExtra``" msgstr "" -#: c-api/code.rst:276 +#: c-api/code.rst:348 msgid "" "Renamed to ``PyUnstable_Code_SetExtra``. The old private name is deprecated, " "but will be available until the API changes." @@ -355,14 +467,14 @@ msgstr "" msgid "PyCode_NewWithPosOnlyArgs (C function)" msgstr "" -#: c-api/code.rst:237 +#: c-api/code.rst:309 msgid "_PyEval_RequestCodeExtraIndex (C function)" msgstr "" -#: c-api/code.rst:255 +#: c-api/code.rst:327 msgid "_PyCode_GetExtra (C function)" msgstr "" -#: c-api/code.rst:270 +#: c-api/code.rst:342 msgid "_PyCode_SetExtra (C function)" msgstr "" diff --git a/c-api/codec.po b/c-api/codec.po index 63449df5..9e7e5e04 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1dca3029..c443d3b6 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 d82fe1e6..43d794d1 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a6a1ed8e..779e8eaa 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 2439bda8..7b85b615 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 d9083c84..a815775e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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..70ab7c18 --- /dev/null +++ b/c-api/curses.po @@ -0,0 +1,183 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001-2025, 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.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-27 09:00+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 c2fe14e0..79f5601a 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 21891b4d..3ee8ab22 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 290cfb6c..b09ddd07 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,7 @@ msgid "" "Py_END_CRITICAL_SECTION();" msgstr "" -#: c-api/dict.rst:307 +#: c-api/dict.rst:312 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 +348,7 @@ msgid "" "or ``-1`` if an exception was raised." msgstr "" -#: c-api/dict.rst:317 +#: c-api/dict.rst:322 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 +357,7 @@ msgid "" "exception was raised." msgstr "" -#: c-api/dict.rst:326 +#: c-api/dict.rst:331 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 +366,7 @@ msgid "" "if an exception was raised. Equivalent Python (except for the return value)::" msgstr "" -#: c-api/dict.rst:333 +#: c-api/dict.rst:338 msgid "" "def PyDict_MergeFromSeq2(a, seq2, override):\n" " for key, value in seq2:\n" @@ -370,7 +374,7 @@ msgid "" " a[key] = value" msgstr "" -#: c-api/dict.rst:340 +#: c-api/dict.rst:345 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 +382,21 @@ msgid "" "exception." msgstr "" -#: c-api/dict.rst:349 +#: c-api/dict.rst:354 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:362 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:370 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 +404,7 @@ msgid "" "watched by this watcher. Return ``0`` on success or ``-1`` on error." msgstr "" -#: c-api/dict.rst:374 +#: c-api/dict.rst:379 msgid "" "Enumeration of possible dictionary watcher events: ``PyDict_EVENT_ADDED``, " "``PyDict_EVENT_MODIFIED``, ``PyDict_EVENT_DELETED``, " @@ -408,11 +412,11 @@ msgid "" "``PyDict_EVENT_DEALLOCATED``." msgstr "" -#: c-api/dict.rst:382 +#: c-api/dict.rst:387 msgid "Type of a dict watcher callback function." msgstr "" -#: c-api/dict.rst:384 +#: c-api/dict.rst:389 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 +425,7 @@ msgid "" "dictionary and *new_value* will be ``NULL``." msgstr "" -#: c-api/dict.rst:390 +#: c-api/dict.rst:395 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 +433,14 @@ msgid "" "``PyDict_EVENT_CLONED`` is issued, and *key* will be the source dictionary." msgstr "" -#: c-api/dict.rst:396 +#: c-api/dict.rst:401 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:405 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 +449,20 @@ msgid "" "again." msgstr "" -#: c-api/dict.rst:406 +#: c-api/dict.rst:411 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:414 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:418 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 +471,160 @@ msgid "" "it before returning." msgstr "" +#: c-api/dict.rst:428 +msgid "Dictionary View Objects" +msgstr "" + +#: c-api/dict.rst:432 +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:439 +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:445 +msgid "" +"Return true if *op* is an instance of a dictionary keys view. This function " +"always succeeds." +msgstr "" + +#: c-api/dict.rst:451 +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:457 +msgid "" +"Return true if *op* is an instance of a dictionary values view. This " +"function always succeeds." +msgstr "" + +#: c-api/dict.rst:463 +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:469 +msgid "" +"Return true if *op* is an instance of a dictionary items view. This function " +"always succeeds." +msgstr "" + +#: c-api/dict.rst:474 +msgid "Ordered Dictionaries" +msgstr "" + +#: c-api/dict.rst:476 +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:483 +msgid "" +"Type object for ordered dictionaries. This is the same object as :class:" +"`collections.OrderedDict` in the Python layer." +msgstr "" + +#: c-api/dict.rst:489 +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:496 +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:503 +msgid "Analogous to :c:type:`PyDictKeys_Type` for ordered dictionaries." +msgstr "" + +#: c-api/dict.rst:508 +msgid "Analogous to :c:type:`PyDictValues_Type` for ordered dictionaries." +msgstr "" + +#: c-api/dict.rst:513 +msgid "Analogous to :c:type:`PyDictItems_Type` for ordered dictionaries." +msgstr "" + +#: c-api/dict.rst:518 +msgid "Return a new empty ordered dictionary, or ``NULL`` on failure." +msgstr "" + +#: c-api/dict.rst:520 +msgid "This is analogous to :c:func:`PyDict_New`." +msgstr "" + +#: c-api/dict.rst:525 +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:528 +msgid "This is analogous to :c:func:`PyDict_SetItem`." +msgstr "" + +#: c-api/dict.rst:533 +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:536 +msgid "This is analogous to :c:func:`PyDict_DelItem`." +msgstr "" + +#: c-api/dict.rst:539 +msgid "These are :term:`soft deprecated` aliases to ``PyDict`` APIs:" +msgstr "" + +#: c-api/dict.rst:546 +msgid "``PyODict``" +msgstr "" + +#: c-api/dict.rst:547 +msgid "``PyDict``" +msgstr "" + +#: c-api/dict.rst:549 +msgid ":c:func:`PyDict_GetItem`" +msgstr "" + +#: c-api/dict.rst:551 +msgid ":c:func:`PyDict_GetItemWithError`" +msgstr "" + +#: c-api/dict.rst:553 +msgid ":c:func:`PyDict_GetItemString`" +msgstr "" + +#: c-api/dict.rst:555 +msgid ":c:func:`PyDict_Contains`" +msgstr "" + +#: c-api/dict.rst:557 +msgid ":c:func:`PyDict_Size`" +msgstr "" + +#: c-api/dict.rst:559 +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 2bb1e6b2..3f9f9819 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 hold the GIL." 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 the :term:" "`GIL` 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,72 +917,72 @@ 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:860 +#: c-api/exceptions.rst:915 msgid "" "Set the *start* attribute of the given exception object to *start*. Return " "``0`` on success, ``-1`` on failure." msgstr "" -#: c-api/exceptions.rst:867 +#: c-api/exceptions.rst:922 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:875 +#: c-api/exceptions.rst:930 msgid "" "Set the *end* attribute of the given exception object to *end*. Return " "``0`` on success, ``-1`` on failure." msgstr "" -#: c-api/exceptions.rst:882 +#: c-api/exceptions.rst:937 msgid "Return the *reason* attribute of the given exception object." msgstr "" -#: c-api/exceptions.rst:888 +#: c-api/exceptions.rst:943 msgid "" "Set the *reason* attribute of the given exception object to *reason*. " "Return ``0`` on success, ``-1`` on failure." msgstr "" -#: c-api/exceptions.rst:895 +#: c-api/exceptions.rst:950 msgid "Recursion Control" msgstr "" -#: c-api/exceptions.rst:897 +#: c-api/exceptions.rst:952 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 " @@ -940,44 +992,44 @@ msgid "" "recursion handling." msgstr "" -#: c-api/exceptions.rst:906 +#: c-api/exceptions.rst:961 msgid "Marks a point where a recursive C-level call is about to be performed." msgstr "" -#: c-api/exceptions.rst:908 +#: c-api/exceptions.rst:963 msgid "" "If :c:macro:`!USE_STACKCHECK` is defined, this function checks if the OS " "stack overflowed using :c:func:`PyOS_CheckStack`. If this is the case, it " "sets a :exc:`MemoryError` and returns a nonzero value." msgstr "" -#: c-api/exceptions.rst:912 +#: c-api/exceptions.rst:967 msgid "" "The function then checks if the recursion limit is reached. If this is the " "case, a :exc:`RecursionError` is set and a nonzero value is returned. " "Otherwise, zero is returned." msgstr "" -#: c-api/exceptions.rst:916 +#: c-api/exceptions.rst:971 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:928 +#: c-api/exceptions.rst:983 msgid "" "This function is now also available in the :ref:`limited API `." msgstr "" -#: c-api/exceptions.rst:925 +#: c-api/exceptions.rst:980 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:931 +#: c-api/exceptions.rst:986 msgid "" "Properly implementing :c:member:`~PyTypeObject.tp_repr` for container types " "requires special recursion handling. In addition to protecting the stack, :" @@ -986,13 +1038,13 @@ msgid "" "Effectively, these are the C equivalent to :func:`reprlib.recursive_repr`." msgstr "" -#: c-api/exceptions.rst:939 +#: c-api/exceptions.rst:994 msgid "" "Called at the beginning of the :c:member:`~PyTypeObject.tp_repr` " "implementation to detect cycles." msgstr "" -#: c-api/exceptions.rst:942 +#: c-api/exceptions.rst:997 msgid "" "If the object has already been processed, the function returns a positive " "integer. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " @@ -1000,487 +1052,296 @@ msgid "" "`dict` objects return ``{...}`` and :class:`list` objects return ``[...]``." msgstr "" -#: c-api/exceptions.rst:948 +#: c-api/exceptions.rst:1003 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:952 +#: c-api/exceptions.rst:1007 msgid "" "Otherwise, the function returns zero and the :c:member:`~PyTypeObject." "tp_repr` implementation can continue normally." msgstr "" -#: c-api/exceptions.rst:957 +#: c-api/exceptions.rst:1012 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:964 -msgid "Standard Exceptions" -msgstr "" - -#: c-api/exceptions.rst:966 +#: c-api/exceptions.rst:1017 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:" +"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:1163 c-api/exceptions.rst:1208 -msgid "C Name" +#: c-api/exceptions.rst:1031 +msgid "This function cannot fail, and the caller must hold the :term:`GIL`." msgstr "" -#: c-api/exceptions.rst:1208 -msgid "Python Name" +#: c-api/exceptions.rst:1025 +msgid ":py:func:`sys.getrecursionlimit`" msgstr "" -#: c-api/exceptions.rst:1163 c-api/exceptions.rst:1208 -msgid "Notes" +#: c-api/exceptions.rst:1029 +msgid "Set the recursion limit for the current interpreter." msgstr "" -#: c-api/exceptions.rst:1030 -msgid ":c:data:`PyExc_BaseException`" +#: c-api/exceptions.rst:1035 +msgid ":py:func:`sys.setrecursionlimit`" msgstr "" -#: c-api/exceptions.rst:1030 -msgid ":exc:`BaseException`" +#: c-api/exceptions.rst:1040 +msgid "Exception and warning types" msgstr "" -#: c-api/exceptions.rst:1032 c-api/exceptions.rst:1080 -#: c-api/exceptions.rst:1092 -msgid "[1]_" +#: c-api/exceptions.rst:1042 +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:1032 -msgid ":c:data:`PyExc_Exception`" +#: c-api/exceptions.rst:1046 +msgid "For completeness, here are all the variables:" msgstr "" -#: c-api/exceptions.rst:1032 -msgid ":exc:`Exception`" +#: c-api/exceptions.rst:1049 +msgid "Exception types" msgstr "" -#: c-api/exceptions.rst:1034 -msgid ":c:data:`PyExc_ArithmeticError`" +#: c-api/exceptions.rst:1202 c-api/exceptions.rst:1232 +msgid "C name" msgstr "" -#: c-api/exceptions.rst:1034 -msgid ":exc:`ArithmeticError`" +#: c-api/exceptions.rst:1203 c-api/exceptions.rst:1233 +msgid "Python name" msgstr "" -#: c-api/exceptions.rst:1036 -msgid ":c:data:`PyExc_AssertionError`" +#: c-api/exceptions.rst:1059 +msgid ":exc:`BaseException`" msgstr "" -#: c-api/exceptions.rst:1036 -msgid ":exc:`AssertionError`" +#: c-api/exceptions.rst:1061 +msgid ":exc:`BaseExceptionGroup`" msgstr "" -#: c-api/exceptions.rst:1038 -msgid ":c:data:`PyExc_AttributeError`" +#: c-api/exceptions.rst:1063 +msgid ":exc:`Exception`" msgstr "" -#: c-api/exceptions.rst:1038 -msgid ":exc:`AttributeError`" +#: c-api/exceptions.rst:1065 +msgid ":exc:`ArithmeticError`" msgstr "" -#: c-api/exceptions.rst:1040 -msgid ":c:data:`PyExc_BlockingIOError`" +#: c-api/exceptions.rst:1067 +msgid ":exc:`AssertionError`" msgstr "" -#: c-api/exceptions.rst:1040 -msgid ":exc:`BlockingIOError`" +#: c-api/exceptions.rst:1069 +msgid ":exc:`AttributeError`" msgstr "" -#: c-api/exceptions.rst:1042 -msgid ":c:data:`PyExc_BrokenPipeError`" +#: c-api/exceptions.rst:1071 +msgid ":exc:`BlockingIOError`" msgstr "" -#: c-api/exceptions.rst:1042 +#: c-api/exceptions.rst:1073 msgid ":exc:`BrokenPipeError`" msgstr "" -#: c-api/exceptions.rst:1044 -msgid ":c:data:`PyExc_BufferError`" -msgstr "" - -#: c-api/exceptions.rst:1044 +#: c-api/exceptions.rst:1075 msgid ":exc:`BufferError`" msgstr "" -#: c-api/exceptions.rst:1046 -msgid ":c:data:`PyExc_ChildProcessError`" -msgstr "" - -#: c-api/exceptions.rst:1046 +#: c-api/exceptions.rst:1077 msgid ":exc:`ChildProcessError`" msgstr "" -#: c-api/exceptions.rst:1048 -msgid ":c:data:`PyExc_ConnectionAbortedError`" -msgstr "" - -#: c-api/exceptions.rst:1048 +#: c-api/exceptions.rst:1079 msgid ":exc:`ConnectionAbortedError`" msgstr "" -#: c-api/exceptions.rst:1050 -msgid ":c:data:`PyExc_ConnectionError`" -msgstr "" - -#: c-api/exceptions.rst:1050 +#: c-api/exceptions.rst:1081 msgid ":exc:`ConnectionError`" msgstr "" -#: c-api/exceptions.rst:1052 -msgid ":c:data:`PyExc_ConnectionRefusedError`" -msgstr "" - -#: c-api/exceptions.rst:1052 +#: c-api/exceptions.rst:1083 msgid ":exc:`ConnectionRefusedError`" msgstr "" -#: c-api/exceptions.rst:1054 -msgid ":c:data:`PyExc_ConnectionResetError`" -msgstr "" - -#: c-api/exceptions.rst:1054 +#: c-api/exceptions.rst:1085 msgid ":exc:`ConnectionResetError`" msgstr "" -#: c-api/exceptions.rst:1056 -msgid ":c:data:`PyExc_EOFError`" -msgstr "" - -#: c-api/exceptions.rst:1056 +#: c-api/exceptions.rst:1087 msgid ":exc:`EOFError`" msgstr "" -#: c-api/exceptions.rst:1058 -msgid ":c:data:`PyExc_FileExistsError`" -msgstr "" - -#: c-api/exceptions.rst:1058 +#: c-api/exceptions.rst:1089 msgid ":exc:`FileExistsError`" msgstr "" -#: c-api/exceptions.rst:1060 -msgid ":c:data:`PyExc_FileNotFoundError`" -msgstr "" - -#: c-api/exceptions.rst:1060 +#: c-api/exceptions.rst:1091 msgid ":exc:`FileNotFoundError`" msgstr "" -#: c-api/exceptions.rst:1062 -msgid ":c:data:`PyExc_FloatingPointError`" -msgstr "" - -#: c-api/exceptions.rst:1062 +#: c-api/exceptions.rst:1093 msgid ":exc:`FloatingPointError`" msgstr "" -#: c-api/exceptions.rst:1064 -msgid ":c:data:`PyExc_GeneratorExit`" -msgstr "" - -#: c-api/exceptions.rst:1064 +#: c-api/exceptions.rst:1095 msgid ":exc:`GeneratorExit`" msgstr "" -#: c-api/exceptions.rst:1066 -msgid ":c:data:`PyExc_ImportError`" -msgstr "" - -#: c-api/exceptions.rst:1066 +#: c-api/exceptions.rst:1097 msgid ":exc:`ImportError`" msgstr "" -#: c-api/exceptions.rst:1068 -msgid ":c:data:`PyExc_IndentationError`" -msgstr "" - -#: c-api/exceptions.rst:1068 +#: c-api/exceptions.rst:1099 msgid ":exc:`IndentationError`" msgstr "" -#: c-api/exceptions.rst:1070 -msgid ":c:data:`PyExc_IndexError`" -msgstr "" - -#: c-api/exceptions.rst:1070 +#: c-api/exceptions.rst:1101 msgid ":exc:`IndexError`" msgstr "" -#: c-api/exceptions.rst:1072 -msgid ":c:data:`PyExc_InterruptedError`" -msgstr "" - -#: c-api/exceptions.rst:1072 +#: c-api/exceptions.rst:1103 msgid ":exc:`InterruptedError`" msgstr "" -#: c-api/exceptions.rst:1074 -msgid ":c:data:`PyExc_IsADirectoryError`" -msgstr "" - -#: c-api/exceptions.rst:1074 +#: c-api/exceptions.rst:1105 msgid ":exc:`IsADirectoryError`" msgstr "" -#: c-api/exceptions.rst:1076 -msgid ":c:data:`PyExc_KeyError`" -msgstr "" - -#: c-api/exceptions.rst:1076 +#: c-api/exceptions.rst:1107 msgid ":exc:`KeyError`" msgstr "" -#: c-api/exceptions.rst:1078 -msgid ":c:data:`PyExc_KeyboardInterrupt`" -msgstr "" - -#: c-api/exceptions.rst:1078 +#: c-api/exceptions.rst:1109 msgid ":exc:`KeyboardInterrupt`" msgstr "" -#: c-api/exceptions.rst:1080 -msgid ":c:data:`PyExc_LookupError`" -msgstr "" - -#: c-api/exceptions.rst:1080 +#: c-api/exceptions.rst:1111 msgid ":exc:`LookupError`" msgstr "" -#: c-api/exceptions.rst:1082 -msgid ":c:data:`PyExc_MemoryError`" -msgstr "" - -#: c-api/exceptions.rst:1082 +#: c-api/exceptions.rst:1113 msgid ":exc:`MemoryError`" msgstr "" -#: c-api/exceptions.rst:1084 -msgid ":c:data:`PyExc_ModuleNotFoundError`" -msgstr "" - -#: c-api/exceptions.rst:1084 +#: c-api/exceptions.rst:1115 msgid ":exc:`ModuleNotFoundError`" msgstr "" -#: c-api/exceptions.rst:1086 -msgid ":c:data:`PyExc_NameError`" -msgstr "" - -#: c-api/exceptions.rst:1086 +#: c-api/exceptions.rst:1117 msgid ":exc:`NameError`" msgstr "" -#: c-api/exceptions.rst:1088 -msgid ":c:data:`PyExc_NotADirectoryError`" -msgstr "" - -#: c-api/exceptions.rst:1088 +#: c-api/exceptions.rst:1119 msgid ":exc:`NotADirectoryError`" msgstr "" -#: c-api/exceptions.rst:1090 -msgid ":c:data:`PyExc_NotImplementedError`" -msgstr "" - -#: c-api/exceptions.rst:1090 +#: c-api/exceptions.rst:1121 msgid ":exc:`NotImplementedError`" msgstr "" -#: c-api/exceptions.rst:1092 -msgid ":c:data:`PyExc_OSError`" -msgstr "" - -#: c-api/exceptions.rst:1092 +#: c-api/exceptions.rst:1206 c-api/exceptions.rst:1212 msgid ":exc:`OSError`" msgstr "" -#: c-api/exceptions.rst:1094 -msgid ":c:data:`PyExc_OverflowError`" -msgstr "" - -#: c-api/exceptions.rst:1094 +#: c-api/exceptions.rst:1125 msgid ":exc:`OverflowError`" msgstr "" -#: c-api/exceptions.rst:1096 -msgid ":c:data:`PyExc_PermissionError`" -msgstr "" - -#: c-api/exceptions.rst:1096 +#: c-api/exceptions.rst:1127 msgid ":exc:`PermissionError`" msgstr "" -#: c-api/exceptions.rst:1098 -msgid ":c:data:`PyExc_ProcessLookupError`" -msgstr "" - -#: c-api/exceptions.rst:1098 +#: c-api/exceptions.rst:1129 msgid ":exc:`ProcessLookupError`" msgstr "" -#: c-api/exceptions.rst:1100 -msgid ":c:data:`PyExc_PythonFinalizationError`" -msgstr "" - -#: c-api/exceptions.rst:1100 +#: c-api/exceptions.rst:1131 msgid ":exc:`PythonFinalizationError`" msgstr "" -#: c-api/exceptions.rst:1102 -msgid ":c:data:`PyExc_RecursionError`" -msgstr "" - -#: c-api/exceptions.rst:1102 +#: c-api/exceptions.rst:1133 msgid ":exc:`RecursionError`" msgstr "" -#: c-api/exceptions.rst:1104 -msgid ":c:data:`PyExc_ReferenceError`" -msgstr "" - -#: c-api/exceptions.rst:1104 +#: c-api/exceptions.rst:1135 msgid ":exc:`ReferenceError`" msgstr "" -#: c-api/exceptions.rst:1106 -msgid ":c:data:`PyExc_RuntimeError`" -msgstr "" - -#: c-api/exceptions.rst:1106 +#: c-api/exceptions.rst:1137 msgid ":exc:`RuntimeError`" msgstr "" -#: c-api/exceptions.rst:1108 -msgid ":c:data:`PyExc_StopAsyncIteration`" -msgstr "" - -#: c-api/exceptions.rst:1108 +#: c-api/exceptions.rst:1139 msgid ":exc:`StopAsyncIteration`" msgstr "" -#: c-api/exceptions.rst:1110 -msgid ":c:data:`PyExc_StopIteration`" -msgstr "" - -#: c-api/exceptions.rst:1110 +#: c-api/exceptions.rst:1141 msgid ":exc:`StopIteration`" msgstr "" -#: c-api/exceptions.rst:1112 -msgid ":c:data:`PyExc_SyntaxError`" -msgstr "" - -#: c-api/exceptions.rst:1112 +#: c-api/exceptions.rst:1143 msgid ":exc:`SyntaxError`" msgstr "" -#: c-api/exceptions.rst:1114 -msgid ":c:data:`PyExc_SystemError`" -msgstr "" - -#: c-api/exceptions.rst:1114 +#: c-api/exceptions.rst:1145 msgid ":exc:`SystemError`" msgstr "" -#: c-api/exceptions.rst:1116 -msgid ":c:data:`PyExc_SystemExit`" -msgstr "" - -#: c-api/exceptions.rst:1116 +#: c-api/exceptions.rst:1147 msgid ":exc:`SystemExit`" msgstr "" -#: c-api/exceptions.rst:1118 -msgid ":c:data:`PyExc_TabError`" -msgstr "" - -#: c-api/exceptions.rst:1118 +#: c-api/exceptions.rst:1149 msgid ":exc:`TabError`" msgstr "" -#: c-api/exceptions.rst:1120 -msgid ":c:data:`PyExc_TimeoutError`" -msgstr "" - -#: c-api/exceptions.rst:1120 +#: c-api/exceptions.rst:1151 msgid ":exc:`TimeoutError`" msgstr "" -#: c-api/exceptions.rst:1122 -msgid ":c:data:`PyExc_TypeError`" -msgstr "" - -#: c-api/exceptions.rst:1122 +#: c-api/exceptions.rst:1153 msgid ":exc:`TypeError`" msgstr "" -#: c-api/exceptions.rst:1124 -msgid ":c:data:`PyExc_UnboundLocalError`" -msgstr "" - -#: c-api/exceptions.rst:1124 +#: c-api/exceptions.rst:1155 msgid ":exc:`UnboundLocalError`" msgstr "" -#: c-api/exceptions.rst:1126 -msgid ":c:data:`PyExc_UnicodeDecodeError`" -msgstr "" - -#: c-api/exceptions.rst:1126 +#: c-api/exceptions.rst:1157 msgid ":exc:`UnicodeDecodeError`" msgstr "" -#: c-api/exceptions.rst:1128 -msgid ":c:data:`PyExc_UnicodeEncodeError`" -msgstr "" - -#: c-api/exceptions.rst:1128 +#: c-api/exceptions.rst:1159 msgid ":exc:`UnicodeEncodeError`" msgstr "" -#: c-api/exceptions.rst:1130 -msgid ":c:data:`PyExc_UnicodeError`" -msgstr "" - -#: c-api/exceptions.rst:1130 +#: c-api/exceptions.rst:1161 msgid ":exc:`UnicodeError`" msgstr "" -#: c-api/exceptions.rst:1132 -msgid ":c:data:`PyExc_UnicodeTranslateError`" -msgstr "" - -#: c-api/exceptions.rst:1132 +#: c-api/exceptions.rst:1163 msgid ":exc:`UnicodeTranslateError`" msgstr "" -#: c-api/exceptions.rst:1134 -msgid ":c:data:`PyExc_ValueError`" -msgstr "" - -#: c-api/exceptions.rst:1134 +#: c-api/exceptions.rst:1165 msgid ":exc:`ValueError`" msgstr "" -#: c-api/exceptions.rst:1136 -msgid ":c:data:`PyExc_ZeroDivisionError`" -msgstr "" - -#: c-api/exceptions.rst:1136 +#: c-api/exceptions.rst:1167 msgid ":exc:`ZeroDivisionError`" msgstr "" -#: c-api/exceptions.rst:1139 +#: c-api/exceptions.rst:1169 msgid "" ":c:data:`PyExc_BlockingIOError`, :c:data:`PyExc_BrokenPipeError`, :c:data:" "`PyExc_ChildProcessError`, :c:data:`PyExc_ConnectionError`, :c:data:" @@ -1492,452 +1353,160 @@ msgid "" "`PyExc_TimeoutError` were introduced following :pep:`3151`." msgstr "" -#: c-api/exceptions.rst:1149 +#: c-api/exceptions.rst:1179 msgid ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`." msgstr "" -#: c-api/exceptions.rst:1152 +#: c-api/exceptions.rst:1182 msgid ":c:data:`PyExc_ModuleNotFoundError`." msgstr "" -#: c-api/exceptions.rst:1155 -msgid "These are compatibility aliases to :c:data:`PyExc_OSError`:" -msgstr "" - -#: c-api/exceptions.rst:1165 -msgid ":c:data:`!PyExc_EnvironmentError`" +#: c-api/exceptions.rst:1185 +msgid ":c:data:`PyExc_BaseExceptionGroup`." msgstr "" -#: c-api/exceptions.rst:1167 -msgid ":c:data:`!PyExc_IOError`" +#: c-api/exceptions.rst:1190 +msgid "OSError aliases" msgstr "" -#: c-api/exceptions.rst:1169 -msgid ":c:data:`!PyExc_WindowsError`" +#: c-api/exceptions.rst:1192 +msgid "The following are a compatibility aliases to :c:data:`PyExc_OSError`." msgstr "" -#: c-api/exceptions.rst:1169 -msgid "[2]_" -msgstr "" - -#: c-api/exceptions.rst:1172 +#: c-api/exceptions.rst:1194 msgid "These aliases used to be separate exception types." msgstr "" -#: c-api/exceptions.rst:1236 -msgid "Notes:" +#: c-api/exceptions.rst:1204 +msgid "Notes" msgstr "" -#: c-api/exceptions.rst:1178 -msgid "This is a base class for other standard exceptions." +#: c-api/exceptions.rst:1213 +msgid "[win]_" msgstr "" -#: c-api/exceptions.rst:1181 -msgid "" -"Only defined on Windows; protect code that uses this by testing that the " -"preprocessor macro ``MS_WINDOWS`` is defined." -msgstr "" - -#: c-api/exceptions.rst:1187 -msgid "Standard Warning Categories" +#: c-api/exceptions.rst:1215 +msgid "Notes:" msgstr "" -#: c-api/exceptions.rst:1189 +#: c-api/exceptions.rst:1218 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:1210 -msgid ":c:data:`PyExc_Warning`" +#: c-api/exceptions.rst:1225 +msgid "Warning types" msgstr "" -#: c-api/exceptions.rst:1210 +#: c-api/exceptions.rst:1235 msgid ":exc:`Warning`" msgstr "" -#: c-api/exceptions.rst:1210 -msgid "[3]_" -msgstr "" - -#: c-api/exceptions.rst:1212 -msgid ":c:data:`PyExc_BytesWarning`" -msgstr "" - -#: c-api/exceptions.rst:1212 +#: c-api/exceptions.rst:1237 msgid ":exc:`BytesWarning`" msgstr "" -#: c-api/exceptions.rst:1214 -msgid ":c:data:`PyExc_DeprecationWarning`" -msgstr "" - -#: c-api/exceptions.rst:1214 +#: c-api/exceptions.rst:1239 msgid ":exc:`DeprecationWarning`" msgstr "" -#: c-api/exceptions.rst:1216 -msgid ":c:data:`PyExc_FutureWarning`" +#: c-api/exceptions.rst:1241 +msgid ":exc:`EncodingWarning`" msgstr "" -#: c-api/exceptions.rst:1216 +#: c-api/exceptions.rst:1243 msgid ":exc:`FutureWarning`" msgstr "" -#: c-api/exceptions.rst:1218 -msgid ":c:data:`PyExc_ImportWarning`" -msgstr "" - -#: c-api/exceptions.rst:1218 +#: c-api/exceptions.rst:1245 msgid ":exc:`ImportWarning`" msgstr "" -#: c-api/exceptions.rst:1220 -msgid ":c:data:`PyExc_PendingDeprecationWarning`" -msgstr "" - -#: c-api/exceptions.rst:1220 +#: c-api/exceptions.rst:1247 msgid ":exc:`PendingDeprecationWarning`" msgstr "" -#: c-api/exceptions.rst:1222 -msgid ":c:data:`PyExc_ResourceWarning`" -msgstr "" - -#: c-api/exceptions.rst:1222 +#: c-api/exceptions.rst:1249 msgid ":exc:`ResourceWarning`" msgstr "" -#: c-api/exceptions.rst:1224 -msgid ":c:data:`PyExc_RuntimeWarning`" -msgstr "" - -#: c-api/exceptions.rst:1224 +#: c-api/exceptions.rst:1251 msgid ":exc:`RuntimeWarning`" msgstr "" -#: c-api/exceptions.rst:1226 -msgid ":c:data:`PyExc_SyntaxWarning`" -msgstr "" - -#: c-api/exceptions.rst:1226 +#: c-api/exceptions.rst:1253 msgid ":exc:`SyntaxWarning`" msgstr "" -#: c-api/exceptions.rst:1228 -msgid ":c:data:`PyExc_UnicodeWarning`" -msgstr "" - -#: c-api/exceptions.rst:1228 +#: c-api/exceptions.rst:1255 msgid ":exc:`UnicodeWarning`" msgstr "" -#: c-api/exceptions.rst:1230 -msgid ":c:data:`PyExc_UserWarning`" -msgstr "" - -#: c-api/exceptions.rst:1230 +#: c-api/exceptions.rst:1257 msgid ":exc:`UserWarning`" msgstr "" -#: c-api/exceptions.rst:1233 +#: c-api/exceptions.rst:1259 msgid ":c:data:`PyExc_ResourceWarning`." msgstr "" -#: c-api/exceptions.rst:1239 -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)" +#: c-api/exceptions.rst:1262 +msgid ":c:data:`PyExc_EncodingWarning`." msgstr "" -#: c-api/exceptions.rst:668 c-api/exceptions.rst:683 -msgid "KeyboardInterrupt (built-in exception)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_BaseException (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_Exception (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_ArithmeticError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_AssertionError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_AttributeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_BlockingIOError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_BrokenPipeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_BufferError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_ChildProcessError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_ConnectionAbortedError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_ConnectionError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_ConnectionRefusedError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_ConnectionResetError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_EOFError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_FileExistsError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_FileNotFoundError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_FloatingPointError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_GeneratorExit (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_ImportError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_IndentationError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_IndexError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_InterruptedError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_IsADirectoryError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_KeyError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_KeyboardInterrupt (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_LookupError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_MemoryError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_ModuleNotFoundError (C var)" +#: c-api/exceptions.rst:1267 +msgid "Tracebacks" msgstr "" -#: c-api/exceptions.rst:971 -msgid "PyExc_NameError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_NotADirectoryError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_NotImplementedError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_OSError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_OverflowError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_PermissionError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_ProcessLookupError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_PythonFinalizationError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_RecursionError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_ReferenceError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_RuntimeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_StopAsyncIteration (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_StopIteration (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_SyntaxError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_SystemError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_SystemExit (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_TabError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_TimeoutError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_TypeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_UnboundLocalError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_UnicodeDecodeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_UnicodeEncodeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_UnicodeError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_UnicodeTranslateError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_ValueError (C var)" -msgstr "" - -#: c-api/exceptions.rst:971 -msgid "PyExc_ZeroDivisionError (C var)" -msgstr "" - -#: c-api/exceptions.rst:1157 -msgid "PyExc_EnvironmentError (C var)" -msgstr "" - -#: c-api/exceptions.rst:1157 -msgid "PyExc_IOError (C var)" -msgstr "" - -#: c-api/exceptions.rst:1157 -msgid "PyExc_WindowsError (C var)" -msgstr "" - -#: c-api/exceptions.rst:1194 -msgid "PyExc_Warning (C var)" +#: c-api/exceptions.rst:1271 +msgid "" +"Type object for traceback objects. This is available as :class:`types." +"TracebackType` in the Python layer." msgstr "" -#: c-api/exceptions.rst:1194 -msgid "PyExc_BytesWarning (C var)" +#: c-api/exceptions.rst:1277 +msgid "" +"Return true if *op* is a traceback object, false otherwise. This function " +"does not account for subtypes." msgstr "" -#: c-api/exceptions.rst:1194 -msgid "PyExc_DeprecationWarning (C var)" +#: c-api/exceptions.rst:1283 +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:1194 -msgid "PyExc_FutureWarning (C var)" +#: c-api/exceptions.rst:1286 +msgid "Calling this function without an exception set is undefined behavior." msgstr "" -#: c-api/exceptions.rst:1194 -msgid "PyExc_ImportWarning (C var)" +#: c-api/exceptions.rst:1296 +msgid "" +"This function returns ``0`` on success, and returns ``-1`` with an exception " +"set on failure." msgstr "" -#: c-api/exceptions.rst:1194 -msgid "PyExc_PendingDeprecationWarning (C var)" +#: c-api/exceptions.rst:1294 +msgid "Write the traceback *tb* into the file *f*." msgstr "" -#: c-api/exceptions.rst:1194 -msgid "PyExc_ResourceWarning (C var)" +#: c-api/exceptions.rst:183 +msgid "strerror (C function)" msgstr "" -#: c-api/exceptions.rst:1194 -msgid "PyExc_RuntimeWarning (C var)" +#: c-api/exceptions.rst:702 c-api/exceptions.rst:717 +msgid "module" msgstr "" -#: c-api/exceptions.rst:1194 -msgid "PyExc_SyntaxWarning (C var)" +#: c-api/exceptions.rst:702 c-api/exceptions.rst:717 +msgid "signal" msgstr "" -#: c-api/exceptions.rst:1194 -msgid "PyExc_UnicodeWarning (C var)" +#: c-api/exceptions.rst:702 +msgid "SIGINT (C macro)" msgstr "" -#: c-api/exceptions.rst:1194 -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/file.po b/c-api/file.po index 5006d5b8..c3cc5d6f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 db9b8edd..f1857725 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,7 +231,7 @@ msgid "" "an exception." msgstr "" -#: c-api/float.rst:99 +#: c-api/float.rst:197 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 " @@ -126,11 +239,11 @@ msgid "" "What happens in such cases is partly accidental (alas)." msgstr "" -#: c-api/float.rst:107 +#: c-api/float.rst:205 msgid "Pack functions" msgstr "" -#: c-api/float.rst:109 +#: c-api/float.rst:207 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 " @@ -140,41 +253,41 @@ msgid "" "to ``1`` on big endian processor, or ``0`` on little endian processor." msgstr "" -#: c-api/float.rst:116 +#: c-api/float.rst:214 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:119 +#: c-api/float.rst:217 msgid "There are two problems on non-IEEE platforms:" msgstr "" -#: c-api/float.rst:121 +#: c-api/float.rst:219 msgid "What this does is undefined if *x* is a NaN or infinity." msgstr "" -#: c-api/float.rst:122 +#: c-api/float.rst:220 msgid "``-0.0`` and ``+0.0`` produce the same bytes string." msgstr "" -#: c-api/float.rst:126 +#: c-api/float.rst:224 msgid "Pack a C double as the IEEE 754 binary16 half-precision format." msgstr "" -#: c-api/float.rst:130 +#: c-api/float.rst:228 msgid "Pack a C double as the IEEE 754 binary32 single precision format." msgstr "" -#: c-api/float.rst:134 +#: c-api/float.rst:232 msgid "Pack a C double as the IEEE 754 binary64 double precision format." msgstr "" -#: c-api/float.rst:138 +#: c-api/float.rst:236 msgid "Unpack functions" msgstr "" -#: c-api/float.rst:140 +#: c-api/float.rst:238 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 " @@ -184,28 +297,28 @@ msgid "" "processor, or ``0`` on little endian processor." msgstr "" -#: c-api/float.rst:147 +#: c-api/float.rst:245 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:151 +#: c-api/float.rst:249 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:156 +#: c-api/float.rst:254 msgid "Unpack the IEEE 754 binary16 half-precision format as a C double." msgstr "" -#: c-api/float.rst:160 +#: c-api/float.rst:258 msgid "Unpack the IEEE 754 binary32 single precision format as a C double." msgstr "" -#: c-api/float.rst:164 +#: c-api/float.rst:262 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 d17b0442..b67fad95 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 02ad8c44..2521d02a 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,16 +215,16 @@ 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 " +"after *func* has been fully initialized. Otherwise, the callback is invoked " "before the modification to *func* takes place, so the prior state of *func* " "can be inspected. The runtime is permitted to optimize away the creation of " "function objects when possible. In such cases no event will be emitted. " @@ -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 36822f65..1c84b608 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -254,9 +254,10 @@ msgstr "" #: c-api/gcsupport.rst:185 msgid "" -"If *o* is not ``NULL``, call the *visit* callback, with arguments *o* and " -"*arg*. If *visit* returns a non-zero value, then return it. Using this " -"macro, :c:member:`~PyTypeObject.tp_traverse` handlers look like::" +"If the :c:expr:`PyObject *` *o* is not ``NULL``, call the *visit* callback, " +"with arguments *o* and *arg*. If *visit* returns a non-zero value, then " +"return it. Using this macro, :c:member:`~PyTypeObject.tp_traverse` handlers " +"look like::" msgstr "" #: c-api/gcsupport.rst:190 diff --git a/c-api/gen.po b/c-api/gen.po index 6a449019..ded0e7d5 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 5feca4b4..f6b97c14 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,72 +30,151 @@ 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:94 +#: c-api/hash.rst:156 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:99 +#: c-api/hash.rst:161 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 ec131671..4f0c246f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/index.po b/c-api/index.po index a3f36443..7c4b7e05 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 37a946bf..b215df3c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -654,29 +654,33 @@ msgid "" "extension modules may not be freed. Some extensions may not work properly " "if their initialization routine is called more than once; this can happen if " "an application calls :c:func:`Py_Initialize` and :c:func:`Py_FinalizeEx` " -"more than once." +"more than once. :c:func:`Py_FinalizeEx` must not be called recursively from " +"within itself. Therefore, it must not be called by any code that may be run " +"as part of the interpreter shutdown process, such as :py:mod:`atexit` " +"handlers, object finalizers, or any code that may be run while flushing the " +"stdout and stderr files." msgstr "" -#: c-api/init.rst:452 +#: c-api/init.rst:456 msgid "" "Raises an :ref:`auditing event ` ``cpython." "_PySys_ClearAuditHooks`` with no arguments." msgstr "" -#: c-api/init.rst:459 +#: c-api/init.rst:463 msgid "" "This is a backwards-compatible version of :c:func:`Py_FinalizeEx` that " "disregards the return value." msgstr "" -#: c-api/init.rst:465 +#: c-api/init.rst:469 msgid "" "Similar to :c:func:`Py_Main` but *argv* is an array of bytes strings, " "allowing the calling application to delegate the text decoding step to the " "CPython runtime." msgstr "" -#: c-api/init.rst:474 +#: c-api/init.rst:478 msgid "" "The main program for the standard interpreter, encapsulating a full " "initialization/finalization cycle, as well as additional behaviour to " @@ -685,14 +689,14 @@ msgid "" "cmdline`." msgstr "" -#: c-api/init.rst:480 +#: c-api/init.rst:484 msgid "" "This is made available for programs which wish to support the full CPython " "command line interface, rather than just embedding a Python runtime in a " "larger application." msgstr "" -#: c-api/init.rst:484 +#: c-api/init.rst:488 msgid "" "The *argc* and *argv* parameters are similar to those which are passed to a " "C program's :c:func:`main` function, except that the *argv* entries are " @@ -702,31 +706,20 @@ msgid "" "pointed to by the argument list are not modified)." msgstr "" -#: c-api/init.rst:491 -msgid "" -"The return value will be ``0`` if the interpreter exits normally (i.e., " -"without an exception), ``1`` if the interpreter exits due to an exception, " -"or ``2`` if the argument list does not represent a valid Python command line." -msgstr "" - -#: c-api/init.rst:496 +#: c-api/init.rst:495 msgid "" -"Note that if an otherwise unhandled :exc:`SystemExit` is raised, this " -"function will not return ``1``, but exit the process, as long as " -"``Py_InspectFlag`` is not set. If ``Py_InspectFlag`` is set, execution will " -"drop into the interactive Python prompt, at which point a second otherwise " -"unhandled :exc:`SystemExit` will still exit the process, while any other " -"means of exiting will set the return value as described above." +"The return value is ``2`` if the argument list does not represent a valid " +"Python command line, and otherwise the same as :c:func:`Py_RunMain`." msgstr "" -#: c-api/init.rst:503 +#: c-api/init.rst:498 msgid "" "In terms of the CPython runtime configuration APIs documented in the :ref:" "`runtime configuration ` section (and without accounting for " "error handling), ``Py_Main`` is approximately equivalent to::" msgstr "" -#: c-api/init.rst:507 +#: c-api/init.rst:502 msgid "" "PyConfig config;\n" "PyConfig_InitPythonConfig(&config);\n" @@ -737,7 +730,7 @@ msgid "" "Py_RunMain();" msgstr "" -#: c-api/init.rst:515 +#: c-api/init.rst:510 msgid "" "In normal usage, an embedding application will call this function *instead* " "of calling :c:func:`Py_Initialize`, :c:func:`Py_InitializeEx` or :c:func:" @@ -750,11 +743,11 @@ msgid "" "first initialized)." msgstr "" -#: c-api/init.rst:528 +#: c-api/init.rst:523 msgid "Executes the main module in a fully configured CPython runtime." msgstr "" -#: c-api/init.rst:530 +#: c-api/init.rst:525 msgid "" "Executes the command (:c:member:`PyConfig.run_command`), the script (:c:" "member:`PyConfig.run_filename`) or the module (:c:member:`PyConfig." @@ -763,65 +756,60 @@ msgid "" "``__main__`` module's global namespace." msgstr "" -#: c-api/init.rst:536 +#: c-api/init.rst:531 msgid "" "If :c:member:`PyConfig.inspect` is not set (the default), the return value " "will be ``0`` if the interpreter exits normally (that is, without raising an " -"exception), or ``1`` if the interpreter exits due to an exception. If an " -"otherwise unhandled :exc:`SystemExit` is raised, the function will " -"immediately exit the process instead of returning ``1``." +"exception), the exit status of an unhandled :exc:`SystemExit`, or ``1`` for " +"any other unhandled exception." msgstr "" -#: c-api/init.rst:542 +#: c-api/init.rst:536 msgid "" "If :c:member:`PyConfig.inspect` is set (such as when the :option:`-i` option " "is used), rather than returning when the interpreter exits, execution will " "instead resume in an interactive Python prompt (REPL) using the ``__main__`` " "module's global namespace. If the interpreter exited with an exception, it " "is immediately raised in the REPL session. The function return value is then " -"determined by the way the *REPL session* terminates: returning ``0`` if the " -"session terminates without raising an unhandled exception, exiting " -"immediately for an unhandled :exc:`SystemExit`, and returning ``1`` for any " -"other unhandled exception." +"determined by the way the *REPL session* terminates: ``0``, ``1``, or the " +"status of a :exc:`SystemExit`, as specified above." msgstr "" -#: c-api/init.rst:552 +#: c-api/init.rst:544 msgid "" -"This function always finalizes the Python interpreter regardless of whether " -"it returns a value or immediately exits the process due to an unhandled :exc:" -"`SystemExit` exception." +"This function always finalizes the Python interpreter before it returns." msgstr "" -#: c-api/init.rst:556 +#: c-api/init.rst:546 msgid "" "See :ref:`Python Configuration ` for an example of a " "customized Python that always runs in isolated mode using :c:func:" "`Py_RunMain`." msgstr "" -#: c-api/init.rst:562 +#: c-api/init.rst:552 msgid "" "Register an :mod:`atexit` callback for the target interpreter *interp*. This " "is similar to :c:func:`Py_AtExit`, but takes an explicit interpreter and " "data pointer for the callback." msgstr "" -#: c-api/init.rst:566 +#: c-api/init.rst:556 msgid "The :term:`GIL` must be held for *interp*." msgstr "" -#: c-api/init.rst:571 +#: c-api/init.rst:561 msgid "Process-wide parameters" msgstr "" -#: c-api/init.rst:581 +#: c-api/init.rst:571 msgid "" "This API is kept for backward compatibility: setting :c:member:`PyConfig." "program_name` should be used instead, see :ref:`Python Initialization " "Configuration `." msgstr "" -#: c-api/init.rst:585 +#: c-api/init.rst:575 msgid "" "This function should be called before :c:func:`Py_Initialize` is called for " "the first time, if it is called at all. It tells the interpreter the value " @@ -835,34 +823,34 @@ msgid "" "this storage." msgstr "" -#: c-api/init.rst:838 c-api/init.rst:900 +#: c-api/init.rst:828 c-api/init.rst:890 msgid "" "Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:expr:" "`wchar_t*` string." msgstr "" -#: c-api/init.rst:604 +#: c-api/init.rst:594 msgid "" "Return the program name set with :c:member:`PyConfig.program_name`, or the " "default. The returned string points into static storage; the caller should " "not modify its value." msgstr "" -#: c-api/init.rst:630 c-api/init.rst:698 c-api/init.rst:912 +#: c-api/init.rst:620 c-api/init.rst:688 c-api/init.rst:902 msgid "" "This function should not be called before :c:func:`Py_Initialize`, otherwise " "it returns ``NULL``." msgstr "" -#: c-api/init.rst:633 c-api/init.rst:701 c-api/init.rst:915 +#: c-api/init.rst:623 c-api/init.rst:691 c-api/init.rst:905 msgid "It now returns ``NULL`` if called before :c:func:`Py_Initialize`." msgstr "" -#: c-api/init.rst:704 +#: c-api/init.rst:694 msgid "Get :data:`sys.executable` instead." msgstr "" -#: c-api/init.rst:620 +#: c-api/init.rst:610 msgid "" "Return the *prefix* for installed platform-independent files. This is " "derived through a number of complicated rules from the program name set " @@ -876,13 +864,13 @@ msgid "" "See also the next function." msgstr "" -#: c-api/init.rst:636 +#: c-api/init.rst:626 msgid "" "Get :data:`sys.base_prefix` instead, or :data:`sys.prefix` if :ref:`virtual " "environments ` need to be handled." msgstr "" -#: c-api/init.rst:643 +#: c-api/init.rst:633 msgid "" "Return the *exec-prefix* for installed platform-*dependent* files. This is " "derived through a number of complicated rules from the program name set " @@ -896,7 +884,7 @@ msgid "" "useful on Unix." msgstr "" -#: c-api/init.rst:654 +#: c-api/init.rst:644 msgid "" "Background: The exec-prefix differs from the prefix when platform dependent " "files (such as executables and shared libraries) are installed in a " @@ -905,7 +893,7 @@ msgid "" "independent may be installed in :file:`/usr/local`." msgstr "" -#: c-api/init.rst:660 +#: c-api/init.rst:650 msgid "" "Generally speaking, a platform is a combination of hardware and software " "families, e.g. Sparc machines running the Solaris 2.x operating system are " @@ -919,7 +907,7 @@ msgid "" "independent from the Python version by which they were compiled!)." msgstr "" -#: c-api/init.rst:671 +#: c-api/init.rst:661 msgid "" "System administrators will know how to configure the :program:`mount` or :" "program:`automount` programs to share :file:`/usr/local` between platforms " @@ -927,13 +915,13 @@ msgid "" "platform." msgstr "" -#: c-api/init.rst:682 +#: c-api/init.rst:672 msgid "" "Get :data:`sys.base_exec_prefix` instead, or :data:`sys.exec_prefix` if :ref:" "`virtual environments ` need to be handled." msgstr "" -#: c-api/init.rst:692 +#: c-api/init.rst:682 msgid "" "Return the full program name of the Python executable; this is computed as " "a side-effect of deriving the default module search path from the program " @@ -942,7 +930,7 @@ msgid "" "available to Python code as ``sys.executable``." msgstr "" -#: c-api/init.rst:714 +#: c-api/init.rst:704 msgid "" "Return the default module search path; this is computed from the program " "name (set by :c:member:`PyConfig.program_name`) and some environment " @@ -955,21 +943,21 @@ msgid "" "for loading modules." msgstr "" -#: c-api/init.rst:732 +#: c-api/init.rst:722 msgid "Get :data:`sys.path` instead." msgstr "" -#: c-api/init.rst:738 +#: c-api/init.rst:728 msgid "" "Return the version of this Python interpreter. This is a string that looks " "something like ::" msgstr "" -#: c-api/init.rst:741 +#: c-api/init.rst:731 msgid "\"3.0a5+ (py3k:63103M, May 12 2008, 00:53:55) \\n[GCC 4.2.3]\"" msgstr "" -#: c-api/init.rst:745 +#: c-api/init.rst:735 msgid "" "The first word (up to the first space character) is the current Python " "version; the first characters are the major and minor version separated by a " @@ -978,11 +966,11 @@ msgid "" "version`." msgstr "" -#: c-api/init.rst:750 +#: c-api/init.rst:740 msgid "See also the :c:var:`Py_Version` constant." msgstr "" -#: c-api/init.rst:757 +#: c-api/init.rst:747 msgid "" "Return the platform identifier for the current platform. On Unix, this is " "formed from the \"official\" name of the operating system, converted to " @@ -993,50 +981,50 @@ msgid "" "available to Python code as ``sys.platform``." msgstr "" -#: c-api/init.rst:768 +#: c-api/init.rst:758 msgid "" "Return the official copyright string for the current Python version, for " "example" msgstr "" -#: c-api/init.rst:770 +#: c-api/init.rst:760 msgid "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" msgstr "" -#: c-api/init.rst:774 +#: c-api/init.rst:764 msgid "" "The returned string points into static storage; the caller should not modify " "its value. The value is available to Python code as ``sys.copyright``." msgstr "" -#: c-api/init.rst:780 +#: c-api/init.rst:770 msgid "" "Return an indication of the compiler used to build the current Python " "version, in square brackets, for example::" msgstr "" -#: c-api/init.rst:783 +#: c-api/init.rst:773 msgid "\"[GCC 2.7.2.2]\"" msgstr "" -#: c-api/init.rst:801 +#: c-api/init.rst:791 msgid "" "The returned string points into static storage; the caller should not modify " "its value. The value is available to Python code as part of the variable " "``sys.version``." msgstr "" -#: c-api/init.rst:794 +#: c-api/init.rst:784 msgid "" "Return information about the sequence number and build date and time of the " "current Python interpreter instance, for example ::" msgstr "" -#: c-api/init.rst:797 +#: c-api/init.rst:787 msgid "\"#67, Aug 1 1997, 22:34:28\"" msgstr "" -#: c-api/init.rst:813 +#: c-api/init.rst:803 msgid "" "This API is kept for backward compatibility: setting :c:member:`PyConfig." "argv`, :c:member:`PyConfig.parse_argv` and :c:member:`PyConfig.safe_path` " @@ -1044,7 +1032,7 @@ msgid "" "config>`." msgstr "" -#: c-api/init.rst:818 +#: c-api/init.rst:808 msgid "" "Set :data:`sys.argv` based on *argc* and *argv*. These parameters are " "similar to those passed to the program's :c:func:`main` function with the " @@ -1055,84 +1043,84 @@ msgid "" "fatal condition is signalled using :c:func:`Py_FatalError`." msgstr "" -#: c-api/init.rst:826 +#: c-api/init.rst:816 msgid "" "If *updatepath* is zero, this is all the function does. If *updatepath* is " "non-zero, the function also modifies :data:`sys.path` according to the " "following algorithm:" msgstr "" -#: c-api/init.rst:830 +#: c-api/init.rst:820 msgid "" "If the name of an existing script is passed in ``argv[0]``, the absolute " "path of the directory where the script is located is prepended to :data:`sys." "path`." msgstr "" -#: c-api/init.rst:833 +#: c-api/init.rst:823 msgid "" "Otherwise (that is, if *argc* is ``0`` or ``argv[0]`` doesn't point to an " "existing file name), an empty string is prepended to :data:`sys.path`, which " "is the same as prepending the current working directory (``\".\"``)." msgstr "" -#: c-api/init.rst:877 +#: c-api/init.rst:867 msgid "" "See also :c:member:`PyConfig.orig_argv` and :c:member:`PyConfig.argv` " "members of the :ref:`Python Initialization Configuration `." msgstr "" -#: c-api/init.rst:845 +#: c-api/init.rst:835 msgid "" "It is recommended that applications embedding the Python interpreter for " "purposes other than executing a single script pass ``0`` as *updatepath*, " "and update :data:`sys.path` themselves if desired. See :cve:`2008-5983`." msgstr "" -#: c-api/init.rst:850 +#: c-api/init.rst:840 msgid "" "On versions before 3.1.3, you can achieve the same effect by manually " "popping the first :data:`sys.path` element after having called :c:func:" "`PySys_SetArgv`, for example using::" msgstr "" -#: c-api/init.rst:854 +#: c-api/init.rst:844 msgid "PyRun_SimpleString(\"import sys; sys.path.pop(0)\\n\");" msgstr "" -#: c-api/init.rst:866 +#: c-api/init.rst:856 msgid "" "This API is kept for backward compatibility: setting :c:member:`PyConfig." "argv` and :c:member:`PyConfig.parse_argv` should be used instead, see :ref:" "`Python Initialization Configuration `." msgstr "" -#: c-api/init.rst:870 +#: c-api/init.rst:860 msgid "" "This function works like :c:func:`PySys_SetArgvEx` with *updatepath* set to " "``1`` unless the :program:`python` interpreter was started with the :option:" "`-I`." msgstr "" -#: c-api/init.rst:880 +#: c-api/init.rst:870 msgid "The *updatepath* value depends on :option:`-I`." msgstr "" -#: c-api/init.rst:887 +#: c-api/init.rst:877 msgid "" "This API is kept for backward compatibility: setting :c:member:`PyConfig." "home` should be used instead, see :ref:`Python Initialization Configuration " "`." msgstr "" -#: c-api/init.rst:891 +#: c-api/init.rst:881 msgid "" "Set the default \"home\" directory, that is, the location of the standard " "Python libraries. See :envvar:`PYTHONHOME` for the meaning of the argument " "string." msgstr "" -#: c-api/init.rst:895 +#: c-api/init.rst:885 msgid "" "The argument should point to a zero-terminated character string in static " "storage whose contents will not change for the duration of the program's " @@ -1140,24 +1128,24 @@ msgid "" "this storage." msgstr "" -#: c-api/init.rst:908 +#: c-api/init.rst:898 msgid "" "Return the default \"home\", that is, the value set by :c:member:`PyConfig." "home`, or the value of the :envvar:`PYTHONHOME` environment variable if it " "is set." msgstr "" -#: c-api/init.rst:918 +#: c-api/init.rst:908 msgid "" "Get :c:member:`PyConfig.home` or :envvar:`PYTHONHOME` environment variable " "instead." msgstr "" -#: c-api/init.rst:926 +#: c-api/init.rst:916 msgid "Thread State and the Global Interpreter Lock" msgstr "" -#: c-api/init.rst:933 +#: c-api/init.rst:923 msgid "" "The Python interpreter is not fully thread-safe. In order to support multi-" "threaded Python programs, there's a global lock, called the :term:`global " @@ -1169,7 +1157,7 @@ msgid "" "once instead of twice." msgstr "" -#: c-api/init.rst:943 +#: c-api/init.rst:933 msgid "" "Therefore, the rule exists that only the thread that has acquired the :term:" "`GIL` may operate on Python objects or call Python/C API functions. In order " @@ -1179,7 +1167,7 @@ msgid "" "a file, so that other Python threads can run in the meantime." msgstr "" -#: c-api/init.rst:953 +#: c-api/init.rst:943 msgid "" "The Python interpreter keeps some thread-specific bookkeeping information " "inside a data structure called :c:type:`PyThreadState`. There's also one " @@ -1187,17 +1175,17 @@ msgid "" "retrieved using :c:func:`PyThreadState_Get`." msgstr "" -#: c-api/init.rst:959 +#: c-api/init.rst:949 msgid "Releasing the GIL from extension code" msgstr "" -#: c-api/init.rst:961 +#: c-api/init.rst:951 msgid "" "Most extension code manipulating the :term:`GIL` has the following simple " "structure::" msgstr "" -#: c-api/init.rst:964 +#: c-api/init.rst:954 msgid "" "Save the thread state in a local variable.\n" "Release the global interpreter lock.\n" @@ -1206,29 +1194,29 @@ msgid "" "Restore the thread state from the local variable." msgstr "" -#: c-api/init.rst:970 +#: c-api/init.rst:960 msgid "This is so common that a pair of macros exists to simplify it::" msgstr "" -#: c-api/init.rst:972 +#: c-api/init.rst:962 msgid "" "Py_BEGIN_ALLOW_THREADS\n" "... Do some blocking I/O operation ...\n" "Py_END_ALLOW_THREADS" msgstr "" -#: c-api/init.rst:980 +#: c-api/init.rst:970 msgid "" "The :c:macro:`Py_BEGIN_ALLOW_THREADS` macro opens a new block and declares a " "hidden local variable; the :c:macro:`Py_END_ALLOW_THREADS` macro closes the " "block." msgstr "" -#: c-api/init.rst:984 +#: c-api/init.rst:974 msgid "The block above expands to the following code::" msgstr "" -#: c-api/init.rst:986 +#: c-api/init.rst:976 msgid "" "PyThreadState *_save;\n" "\n" @@ -1237,7 +1225,7 @@ msgid "" "PyEval_RestoreThread(_save);" msgstr "" -#: c-api/init.rst:996 +#: c-api/init.rst:986 msgid "" "Here is how these functions work: the global interpreter lock is used to " "protect the pointer to the current thread state. When releasing the lock " @@ -1248,7 +1236,7 @@ msgid "" "state, the lock must be acquired before storing the thread state pointer." msgstr "" -#: c-api/init.rst:1005 +#: c-api/init.rst:995 msgid "" "Calling system I/O functions is the most common use case for releasing the " "GIL, but it can also be useful before calling long-running computations " @@ -1258,11 +1246,11 @@ msgid "" "compressing or hashing data." msgstr "" -#: c-api/init.rst:1016 +#: c-api/init.rst:1006 msgid "Non-Python created threads" msgstr "" -#: c-api/init.rst:1018 +#: c-api/init.rst:1008 msgid "" "When threads are created using the dedicated Python APIs (such as the :mod:" "`threading` module), a thread state is automatically associated to them and " @@ -1272,7 +1260,7 @@ msgid "" "for them." msgstr "" -#: c-api/init.rst:1025 +#: c-api/init.rst:1015 msgid "" "If you need to call Python code from these threads (often this will be part " "of a callback API provided by the aforementioned third-party library), you " @@ -1283,14 +1271,14 @@ msgid "" "finally free the thread state data structure." msgstr "" -#: c-api/init.rst:1033 +#: c-api/init.rst:1023 msgid "" "The :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release` functions " "do all of the above automatically. The typical idiom for calling into " "Python from a C thread is::" msgstr "" -#: c-api/init.rst:1037 +#: c-api/init.rst:1027 msgid "" "PyGILState_STATE gstate;\n" "gstate = PyGILState_Ensure();\n" @@ -1303,7 +1291,7 @@ msgid "" "PyGILState_Release(gstate);" msgstr "" -#: c-api/init.rst:1047 +#: c-api/init.rst:1037 msgid "" "Note that the ``PyGILState_*`` functions assume there is only one global " "interpreter (created automatically by :c:func:`Py_Initialize`). Python " @@ -1312,11 +1300,11 @@ msgid "" "``PyGILState_*`` API is unsupported." msgstr "" -#: c-api/init.rst:1057 +#: c-api/init.rst:1047 msgid "Cautions about fork()" msgstr "" -#: c-api/init.rst:1059 +#: c-api/init.rst:1049 msgid "" "Another important thing to note about threads is their behaviour in the face " "of the C :c:func:`fork` call. On most systems with :c:func:`fork`, after a " @@ -1325,7 +1313,7 @@ msgid "" "CPython's runtime." msgstr "" -#: c-api/init.rst:1065 +#: c-api/init.rst:1055 msgid "" "The fact that only the \"current\" thread remains means any locks held by " "other threads will never be released. Python solves this for :func:`os.fork` " @@ -1342,7 +1330,7 @@ msgid "" "locks, but is not always able to." msgstr "" -#: c-api/init.rst:1080 +#: c-api/init.rst:1070 msgid "" "The fact that all other threads go away also means that CPython's runtime " "state there must be cleaned up properly, which :func:`os.fork` does. This " @@ -1355,17 +1343,56 @@ msgid "" "called immediately after." msgstr "" -#: c-api/init.rst:1093 +#: c-api/init.rst:1084 +msgid "Cautions regarding runtime finalization" +msgstr "" + +#: c-api/init.rst:1086 +msgid "" +"In the late stage of :term:`interpreter shutdown`, after attempting to wait " +"for non-daemon threads to exit (though this can be interrupted by :class:" +"`KeyboardInterrupt`) and running the :mod:`atexit` functions, the runtime is " +"marked as *finalizing*: :c:func:`Py_IsFinalizing` and :func:`sys." +"is_finalizing` return true. At this point, only the *finalization thread* " +"that initiated finalization (typically the main thread) is allowed to " +"acquire the :term:`GIL`." +msgstr "" + +#: c-api/init.rst:1094 +msgid "" +"If any thread, other than the finalization thread, attempts to acquire the " +"GIL during finalization, either explicitly via :c:func:`PyGILState_Ensure`, :" +"c:macro:`Py_END_ALLOW_THREADS`, :c:func:`PyEval_AcquireThread`, or :c:func:`!" +"PyEval_AcquireLock`, or implicitly when the interpreter attempts to " +"reacquire it after having yielded it, the thread enters **a permanently " +"blocked state** where it remains until the program exits. In most cases " +"this is harmless, but this can result in deadlock if a later stage of " +"finalization attempts to acquire a lock owned by the blocked thread, or " +"otherwise waits on the blocked thread." +msgstr "" + +#: c-api/init.rst:1104 +msgid "" +"Gross? Yes. This prevents random crashes and/or unexpectedly skipped C++ " +"finalizations further up the call stack when such threads were forcibly " +"exited here in CPython 3.13.7 and earlier. The CPython runtime GIL acquiring " +"C APIs have never had any error reporting or handling expectations at GIL " +"acquisition time that would've allowed for graceful exit from this " +"situation. Changing that would require new stable C APIs and rewriting the " +"majority of C code in the CPython ecosystem to use those with error handling." +msgstr "" + +#: c-api/init.rst:1114 msgid "High-level API" msgstr "" -#: c-api/init.rst:1095 +#: c-api/init.rst:1116 msgid "" "These are the most commonly used types and functions when writing C " "extension code, or when embedding the Python interpreter:" msgstr "" -#: c-api/init.rst:1100 +#: c-api/init.rst:1121 msgid "" "This data structure represents the state shared by a number of cooperating " "threads. Threads belonging to the same interpreter share their module " @@ -1373,7 +1400,7 @@ msgid "" "in this structure." msgstr "" -#: c-api/init.rst:1105 +#: c-api/init.rst:1126 msgid "" "Threads belonging to different interpreters initially share nothing, except " "process state like available memory, open file descriptors and such. The " @@ -1381,41 +1408,47 @@ msgid "" "which interpreter they belong." msgstr "" -#: c-api/init.rst:1113 +#: c-api/init.rst:1133 +msgid "" +":pep:`684` introduced the possibility of a :ref:`per-interpreter GIL `. See :c:func:`Py_NewInterpreterFromConfig`." +msgstr "" + +#: c-api/init.rst:1140 msgid "" "This data structure represents the state of a single thread. The only " "public data member is:" msgstr "" -#: c-api/init.rst:1118 +#: c-api/init.rst:1145 msgid "This thread's interpreter state." msgstr "" -#: c-api/init.rst:1129 +#: c-api/init.rst:1156 msgid "Deprecated function which does nothing." msgstr "" -#: c-api/init.rst:1131 +#: c-api/init.rst:1158 msgid "" "In Python 3.6 and older, this function created the GIL if it didn't exist." msgstr "" -#: c-api/init.rst:1133 +#: c-api/init.rst:1160 msgid "The function now does nothing." msgstr "" -#: c-api/init.rst:1136 +#: c-api/init.rst:1163 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:1140 +#: c-api/init.rst:1167 msgid "" "This function cannot be called before :c:func:`Py_Initialize()` anymore." msgstr "" -#: c-api/init.rst:1150 +#: c-api/init.rst:1177 msgid "" "Release the global interpreter lock (if it has been created) and reset the " "thread state to ``NULL``, returning the previous thread state (which is not " @@ -1423,7 +1456,7 @@ msgid "" "acquired it." msgstr "" -#: c-api/init.rst:1158 +#: c-api/init.rst:1185 msgid "" "Acquire the global interpreter lock (if it has been created) and set the " "thread state to *tstate*, which must not be ``NULL``. If the lock has been " @@ -1431,53 +1464,77 @@ msgid "" "ensues." msgstr "" -#: c-api/init.rst:1223 c-api/init.rst:1519 +#: c-api/init.rst:1267 c-api/init.rst:1569 msgid "" -"Calling this function from a thread when the runtime is finalizing will " -"terminate the thread, even if the thread was not created by Python. You can " -"use :c:func:`Py_IsFinalizing` or :func:`sys.is_finalizing` to check if the " -"interpreter is in process of being finalized before calling this function to " -"avoid unwanted termination." +"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 " +"Python. Refer to :ref:`cautions-regarding-runtime-finalization` for more " +"details." msgstr "" -#: c-api/init.rst:1172 +#: c-api/init.rst:1272 c-api/init.rst:1579 +msgid "" +"Hangs the current thread, rather than terminating it, if called while the " +"interpreter is finalizing." +msgstr "" + +#: c-api/init.rst:1202 msgid "" "Return the current thread state. The global interpreter lock must be held. " "When the current thread state is ``NULL``, this issues a fatal error (so " "that the caller needn't check for ``NULL``)." msgstr "" -#: c-api/init.rst:1176 +#: c-api/init.rst:1206 msgid "See also :c:func:`PyThreadState_GetUnchecked`." msgstr "" -#: c-api/init.rst:1181 +#: c-api/init.rst:1211 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:1185 +#: c-api/init.rst:1215 msgid "" "In Python 3.5 to 3.12, the function was private and known as " "``_PyThreadState_UncheckedGet()``." msgstr "" -#: c-api/init.rst:1192 +#: c-api/init.rst:1222 msgid "" "Swap the current thread state with the thread state given by the argument " -"*tstate*, which may be ``NULL``. The global interpreter lock must be held " -"and is not released." +"*tstate*, which may be ``NULL``." msgstr "" -#: c-api/init.rst:1197 +#: c-api/init.rst:1225 +msgid "" +"The :term:`GIL` does not need to be held, but will be held upon returning if " +"*tstate* is non-``NULL``." +msgstr "" + +#: c-api/init.rst:1228 msgid "" "The following functions use thread-local storage, and are not compatible " "with sub-interpreters:" msgstr "" -#: c-api/init.rst:1202 +#: c-api/init.rst:1233 +msgid "" +"The type of the value returned by :c:func:`PyGILState_Ensure` and passed to :" +"c:func:`PyGILState_Release`." +msgstr "" + +#: c-api/init.rst:1238 +msgid "The GIL was already held when :c:func:`PyGILState_Ensure` was called." +msgstr "" + +#: c-api/init.rst:1242 +msgid "The GIL was not held when :c:func:`PyGILState_Ensure` was called." +msgstr "" + +#: c-api/init.rst:1246 msgid "" "Ensure that the current thread is ready to call the Python C API regardless " "of the current state of Python, or of the global interpreter lock. This may " @@ -1490,7 +1547,7 @@ msgid "" "is acceptable." msgstr "" -#: c-api/init.rst:1212 +#: c-api/init.rst:1256 msgid "" "The return value is an opaque \"handle\" to the thread state when :c:func:" "`PyGILState_Ensure` was called, and must be passed to :c:func:" @@ -1500,13 +1557,13 @@ msgid "" "func:`PyGILState_Release`." msgstr "" -#: c-api/init.rst:1219 +#: c-api/init.rst:1263 msgid "" "When the function returns, the current thread will hold the GIL and be able " "to call arbitrary Python code. Failure is a fatal error." msgstr "" -#: c-api/init.rst:1231 +#: c-api/init.rst:1278 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:" @@ -1514,13 +1571,13 @@ msgid "" "caller, hence the use of the GILState API)." msgstr "" -#: c-api/init.rst:1236 +#: c-api/init.rst:1283 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:1242 +#: c-api/init.rst:1289 msgid "" "Get the current thread state for this thread. May return ``NULL`` if no " "GILState API has been used on the current thread. Note that the main thread " @@ -1528,7 +1585,7 @@ msgid "" "made on the main thread. This is mainly a helper/diagnostic function." msgstr "" -#: c-api/init.rst:1250 +#: c-api/init.rst:1297 msgid "" "Return ``1`` if the current thread is holding the GIL and ``0`` otherwise. " "This function can be called from any thread at any time. Only if it has had " @@ -1539,13 +1596,13 @@ msgid "" "otherwise behave differently." msgstr "" -#: c-api/init.rst:1262 +#: c-api/init.rst:1309 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:1268 +#: c-api/init.rst:1315 msgid "" "This macro expands to ``{ PyThreadState *_save; _save = PyEval_SaveThread();" "``. Note that it contains an opening brace; it must be matched with a " @@ -1553,7 +1610,7 @@ msgid "" "discussion of this macro." msgstr "" -#: c-api/init.rst:1276 +#: c-api/init.rst:1323 msgid "" "This macro expands to ``PyEval_RestoreThread(_save); }``. Note that it " "contains a closing brace; it must be matched with an earlier :c:macro:" @@ -1561,95 +1618,95 @@ msgid "" "macro." msgstr "" -#: c-api/init.rst:1284 +#: c-api/init.rst:1331 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:1290 +#: c-api/init.rst:1337 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:1296 +#: c-api/init.rst:1343 msgid "Low-level API" msgstr "" -#: c-api/init.rst:1298 +#: c-api/init.rst:1345 msgid "" "All of the following functions must be called after :c:func:`Py_Initialize`." msgstr "" -#: c-api/init.rst:1300 +#: c-api/init.rst:1347 msgid ":c:func:`Py_Initialize()` now initializes the :term:`GIL`." msgstr "" -#: c-api/init.rst:1306 +#: c-api/init.rst:1353 msgid "" "Create a new interpreter state object. The global interpreter lock need not " "be held, but may be held if it is necessary to serialize calls to this " "function." msgstr "" -#: c-api/init.rst:1310 +#: c-api/init.rst:1357 msgid "" "Raises an :ref:`auditing event ` ``cpython." "PyInterpreterState_New`` with no arguments." msgstr "" -#: c-api/init.rst:1315 +#: c-api/init.rst:1362 msgid "" "Reset all information in an interpreter state object. The global " "interpreter lock must be held." msgstr "" -#: c-api/init.rst:1318 +#: c-api/init.rst:1365 msgid "" "Raises an :ref:`auditing event ` ``cpython." "PyInterpreterState_Clear`` with no arguments." msgstr "" -#: c-api/init.rst:1323 +#: c-api/init.rst:1370 msgid "" "Destroy an interpreter state object. The global interpreter lock need not " "be held. The interpreter state must have been reset with a previous call " "to :c:func:`PyInterpreterState_Clear`." msgstr "" -#: c-api/init.rst:1330 +#: c-api/init.rst:1377 msgid "" "Create a new thread state object belonging to the given interpreter object. " "The global interpreter lock need not be held, but may be held if it is " "necessary to serialize calls to this function." msgstr "" -#: c-api/init.rst:1337 +#: c-api/init.rst:1384 msgid "" "Reset all information in a thread state object. The global interpreter lock " "must be held." msgstr "" -#: c-api/init.rst:1340 +#: c-api/init.rst:1387 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:1344 -msgid "The :c:member:`PyThreadState.on_delete` callback was removed." +#: c-api/init.rst:1391 +msgid "The :c:member:`!PyThreadState.on_delete` callback was removed." msgstr "" -#: c-api/init.rst:1350 +#: c-api/init.rst:1397 msgid "" "Destroy a thread state object. The global interpreter lock need not be " "held. The thread state must have been reset with a previous call to :c:func:" "`PyThreadState_Clear`." msgstr "" -#: c-api/init.rst:1357 +#: c-api/init.rst:1404 msgid "" "Destroy the current thread state and release the global interpreter lock. " "Like :c:func:`PyThreadState_Delete`, the global interpreter lock must be " @@ -1657,124 +1714,130 @@ msgid "" "`PyThreadState_Clear`." msgstr "" -#: c-api/init.rst:1365 +#: c-api/init.rst:1412 msgid "Get the current frame of the Python thread state *tstate*." msgstr "" -#: c-api/init.rst:1367 +#: c-api/init.rst:1414 msgid "" "Return a :term:`strong reference`. Return ``NULL`` if no frame is currently " "executing." msgstr "" -#: c-api/init.rst:1370 +#: c-api/init.rst:1417 msgid "See also :c:func:`PyEval_GetFrame`." msgstr "" -#: c-api/init.rst:1381 c-api/init.rst:1390 +#: c-api/init.rst:1428 c-api/init.rst:1437 msgid "*tstate* must not be ``NULL``." msgstr "" -#: c-api/init.rst:1379 +#: c-api/init.rst:1426 msgid "" "Get the unique thread state identifier of the Python thread state *tstate*." msgstr "" -#: c-api/init.rst:1388 +#: c-api/init.rst:1435 msgid "Get the interpreter of the Python thread state *tstate*." msgstr "" -#: c-api/init.rst:1397 +#: c-api/init.rst:1444 msgid "Suspend tracing and profiling in the Python thread state *tstate*." msgstr "" -#: c-api/init.rst:1399 +#: c-api/init.rst:1446 msgid "Resume them using the :c:func:`PyThreadState_LeaveTracing` function." msgstr "" -#: c-api/init.rst:1406 +#: c-api/init.rst:1453 msgid "" "Resume tracing and profiling in the Python thread state *tstate* suspended " "by the :c:func:`PyThreadState_EnterTracing` function." msgstr "" -#: c-api/init.rst:1409 +#: c-api/init.rst:1456 msgid "" "See also :c:func:`PyEval_SetTrace` and :c:func:`PyEval_SetProfile` functions." msgstr "" -#: c-api/init.rst:1417 +#: c-api/init.rst:1464 msgid "Get the current interpreter." msgstr "" -#: c-api/init.rst:1419 +#: c-api/init.rst:1466 msgid "" "Issue a fatal error if there no current Python thread state or no current " "interpreter. It cannot return NULL." msgstr "" -#: c-api/init.rst:1432 c-api/init.rst:1454 +#: c-api/init.rst:1479 c-api/init.rst:1504 msgid "The caller must hold the GIL." msgstr "" -#: c-api/init.rst:1429 +#: c-api/init.rst:1476 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:1439 +#: c-api/init.rst:1486 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:1443 +#: c-api/init.rst:1490 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:1451 +#: c-api/init.rst:1493 +msgid "" +"The returned dictionary is borrowed from the interpreter and is valid until " +"interpreter shutdown." +msgstr "" + +#: c-api/init.rst:1501 msgid "" "Return a :term:`strong reference` to the ``__main__`` :ref:`module object " "` for the given interpreter." msgstr "" -#: c-api/init.rst:1461 +#: c-api/init.rst:1511 msgid "Type of a frame evaluation function." msgstr "" -#: c-api/init.rst:1463 +#: c-api/init.rst:1513 msgid "" "The *throwflag* parameter is used by the ``throw()`` method of generators: " "if non-zero, handle the current exception." msgstr "" -#: c-api/init.rst:1466 +#: c-api/init.rst:1516 msgid "The function now takes a *tstate* parameter." msgstr "" -#: c-api/init.rst:1469 +#: c-api/init.rst:1519 msgid "" "The *frame* parameter changed from ``PyFrameObject*`` to " "``_PyInterpreterFrame*``." msgstr "" -#: c-api/init.rst:1474 +#: c-api/init.rst:1524 msgid "Get the frame evaluation function." msgstr "" -#: c-api/init.rst:1484 +#: c-api/init.rst:1534 msgid "See the :pep:`523` \"Adding a frame evaluation API to CPython\"." msgstr "" -#: c-api/init.rst:1482 +#: c-api/init.rst:1532 msgid "Set the frame evaluation function." msgstr "" -#: c-api/init.rst:1491 +#: c-api/init.rst:1541 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 " @@ -1783,7 +1846,7 @@ msgid "" "raised and the caller should assume no current thread state is available." msgstr "" -#: c-api/init.rst:1500 +#: c-api/init.rst:1550 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. " @@ -1795,33 +1858,33 @@ msgid "" "raises no exceptions." msgstr "" -#: c-api/init.rst:1508 +#: c-api/init.rst:1558 msgid "" "The type of the *id* parameter changed from :c:expr:`long` to :c:expr:" "`unsigned long`." msgstr "" -#: c-api/init.rst:1514 +#: c-api/init.rst:1564 msgid "" "Acquire the global interpreter lock and set the current thread state to " "*tstate*, which must not be ``NULL``. The lock must have been created " "earlier. If this thread already has the lock, deadlock ensues." msgstr "" -#: c-api/init.rst:1525 +#: c-api/init.rst:1574 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:1530 +#: c-api/init.rst:1583 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:1536 +#: c-api/init.rst:1589 msgid "" "Reset the current thread state to ``NULL`` and release the global " "interpreter lock. The lock must have been created earlier and must be held " @@ -1830,17 +1893,17 @@ msgid "" "isn't, a fatal error is reported." msgstr "" -#: c-api/init.rst:1542 +#: c-api/init.rst:1595 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:1549 +#: c-api/init.rst:1602 msgid "Sub-interpreter support" msgstr "" -#: c-api/init.rst:1551 +#: c-api/init.rst:1604 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 " @@ -1848,7 +1911,7 @@ msgid "" "to do that." msgstr "" -#: c-api/init.rst:1556 +#: c-api/init.rst:1609 msgid "" "The \"main\" interpreter is the first one created when the runtime " "initializes. It is usually the only Python interpreter in a process. Unlike " @@ -1859,31 +1922,31 @@ msgid "" "returns a pointer to its state." msgstr "" -#: c-api/init.rst:1563 +#: c-api/init.rst:1616 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:1569 +#: c-api/init.rst:1622 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:1575 +#: c-api/init.rst:1628 msgid "Structure fields:" msgstr "" -#: c-api/init.rst:1579 +#: c-api/init.rst:1632 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:1583 +#: c-api/init.rst:1636 msgid "" "If this is ``0`` then :c:member:`~PyInterpreterConfig." "check_multi_interp_extensions` must be ``1`` (non-zero). If this is ``1`` " @@ -1891,44 +1954,44 @@ msgid "" "`PyInterpreterConfig_OWN_GIL`." msgstr "" -#: c-api/init.rst:1591 +#: c-api/init.rst:1644 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:1595 +#: c-api/init.rst:1648 msgid "" "Note that the :mod:`subprocess` module still works when fork is disallowed." msgstr "" -#: c-api/init.rst:1600 +#: c-api/init.rst:1653 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:1605 +#: c-api/init.rst:1658 msgid "" "Note that the :mod:`subprocess` module still works when exec is disallowed." msgstr "" -#: c-api/init.rst:1610 +#: c-api/init.rst:1663 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:1616 +#: c-api/init.rst:1669 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:1623 +#: c-api/init.rst:1676 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 " @@ -1937,37 +2000,37 @@ msgid "" "`Py_mod_multiple_interpreters`.)" msgstr "" -#: c-api/init.rst:1630 +#: c-api/init.rst:1683 msgid "" "This must be ``1`` (non-zero) if :c:member:`~PyInterpreterConfig." "use_main_obmalloc` is ``0``." msgstr "" -#: c-api/init.rst:1635 +#: c-api/init.rst:1688 msgid "" "This determines the operation of the GIL for the sub-interpreter. It may be " "one of the following:" msgstr "" -#: c-api/init.rst:1642 +#: c-api/init.rst:1695 msgid "Use the default selection (:c:macro:`PyInterpreterConfig_SHARED_GIL`)." msgstr "" -#: c-api/init.rst:1646 +#: c-api/init.rst:1699 msgid "Use (share) the main interpreter's GIL." msgstr "" -#: c-api/init.rst:1650 +#: c-api/init.rst:1703 msgid "Use the sub-interpreter's own GIL." msgstr "" -#: c-api/init.rst:1652 +#: c-api/init.rst:1705 msgid "" "If this is :c:macro:`PyInterpreterConfig_OWN_GIL` then :c:member:" "`PyInterpreterConfig.use_main_obmalloc` must be ``0``." msgstr "" -#: c-api/init.rst:1666 +#: c-api/init.rst:1719 msgid "" "Create a new sub-interpreter. This is an (almost) totally separate " "environment for the execution of Python code. In particular, the new " @@ -1980,13 +2043,13 @@ msgid "" "underlying file descriptors)." msgstr "" -#: c-api/init.rst:1676 +#: c-api/init.rst:1729 msgid "" "The given *config* controls the options with which the interpreter is " "initialized." msgstr "" -#: c-api/init.rst:1679 +#: c-api/init.rst:1732 msgid "" "Upon success, *tstate_p* will be set to the first thread state created in " "the new sub-interpreter. This thread state is made in the current thread " @@ -1997,7 +2060,7 @@ msgid "" "state." msgstr "" -#: c-api/init.rst:1688 +#: c-api/init.rst:1741 msgid "" "Like all other Python/C API functions, the global interpreter lock must be " "held before calling this function and is still held when it returns. " @@ -2009,13 +2072,13 @@ msgid "" "released here." msgstr "" -#: c-api/init.rst:1699 +#: c-api/init.rst:1752 msgid "" "Sub-interpreters are most effective when isolated from each other, with " "certain functionality restricted::" msgstr "" -#: c-api/init.rst:1702 +#: c-api/init.rst:1755 msgid "" "PyInterpreterConfig config = {\n" " .use_main_obmalloc = 0,\n" @@ -2033,7 +2096,7 @@ msgid "" "}" msgstr "" -#: c-api/init.rst:1717 +#: c-api/init.rst:1770 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:" @@ -2041,11 +2104,11 @@ msgid "" "internally on the :c:type:`PyInterpreterState`." msgstr "" -#: c-api/init.rst:1726 +#: c-api/init.rst:1779 msgid "Extension modules are shared between (sub-)interpreters as follows:" msgstr "" -#: c-api/init.rst:1728 +#: c-api/init.rst:1781 msgid "" "For modules using multi-phase initialization, e.g. :c:func:" "`PyModule_FromDefAndSpec`, a separate module object is created and " @@ -2053,7 +2116,7 @@ msgid "" "are shared between these module objects." msgstr "" -#: c-api/init.rst:1734 +#: c-api/init.rst:1787 msgid "" "For modules using single-phase initialization, e.g. :c:func:" "`PyModule_Create`, the first time a particular extension is imported, it is " @@ -2065,7 +2128,7 @@ msgid "" "might cause unwanted behavior (see `Bugs and caveats`_ below)." msgstr "" -#: c-api/init.rst:1745 +#: c-api/init.rst:1798 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:" @@ -2075,7 +2138,7 @@ msgid "" "shared between these modules." msgstr "" -#: c-api/init.rst:1765 +#: c-api/init.rst:1818 msgid "" "Create a new sub-interpreter. This is essentially just a wrapper around :c:" "func:`Py_NewInterpreterFromConfig` with a config that preserves the existing " @@ -2084,7 +2147,7 @@ msgid "" "single-phase init modules." msgstr "" -#: c-api/init.rst:1777 +#: c-api/init.rst:1830 msgid "" "Destroy the (sub-)interpreter represented by the given thread state. The " "given thread state must be the current thread state. See the discussion of " @@ -2094,17 +2157,17 @@ msgid "" "be held before calling this function. No GIL is held when it returns." msgstr "" -#: c-api/init.rst:1785 +#: c-api/init.rst:1838 msgid "" ":c:func:`Py_FinalizeEx` will destroy all sub-interpreters that haven't been " "explicitly destroyed at that point." msgstr "" -#: c-api/init.rst:1790 +#: c-api/init.rst:1845 msgid "A Per-Interpreter GIL" msgstr "" -#: c-api/init.rst:1792 +#: c-api/init.rst:1847 msgid "" "Using :c:func:`Py_NewInterpreterFromConfig` you can create a sub-interpreter " "that is completely isolated from other interpreters, including having its " @@ -2113,10 +2176,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:1802 +#: c-api/init.rst:1857 msgid "" "Using an isolated interpreter requires vigilance in preserving that " "isolation. That especially means not sharing any objects or mutable state " @@ -2130,7 +2193,7 @@ msgid "" "builtin objects." msgstr "" -#: c-api/init.rst:1813 +#: c-api/init.rst:1868 msgid "" "If you preserve isolation then you will have access to proper multi-core " "computing without the complications that come with free-threading. Failure " @@ -2138,7 +2201,7 @@ msgid "" "threading, including races and hard-to-debug crashes." msgstr "" -#: c-api/init.rst:1818 +#: c-api/init.rst:1873 msgid "" "Aside from that, one of the main challenges of using multiple isolated " "interpreters is how to communicate between them safely (not break isolation) " @@ -2148,11 +2211,11 @@ msgid "" "sharing) data between interpreters." msgstr "" -#: c-api/init.rst:1829 +#: c-api/init.rst:1884 msgid "Bugs and caveats" msgstr "" -#: c-api/init.rst:1831 +#: c-api/init.rst:1886 msgid "" "Because sub-interpreters (and the main interpreter) are part of the same " "process, the insulation between them isn't perfect --- for example, using " @@ -2165,7 +2228,7 @@ msgid "" "should be avoided if possible." msgstr "" -#: c-api/init.rst:1841 +#: c-api/init.rst:1896 msgid "" "Special care should be taken to avoid sharing user-defined functions, " "methods, instances or classes between sub-interpreters, since import " @@ -2174,7 +2237,7 @@ msgid "" "objects from which the above are reachable." msgstr "" -#: c-api/init.rst:1847 +#: c-api/init.rst:1902 msgid "" "Also note that combining this functionality with ``PyGILState_*`` APIs is " "delicate, because these APIs assume a bijection between Python thread states " @@ -2186,25 +2249,25 @@ msgid "" "created threads will probably be broken when using sub-interpreters." msgstr "" -#: c-api/init.rst:1858 +#: c-api/init.rst:1913 msgid "Asynchronous Notifications" msgstr "" -#: c-api/init.rst:1860 +#: c-api/init.rst:1915 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:1867 +#: c-api/init.rst:1922 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:1871 +#: c-api/init.rst:1926 msgid "" "When successfully queued, *func* will be *eventually* called from the main " "interpreter thread with the argument *arg*. It will be called " @@ -2212,17 +2275,17 @@ msgid "" "these conditions met:" msgstr "" -#: c-api/init.rst:1876 +#: c-api/init.rst:1931 msgid "on a :term:`bytecode` boundary;" msgstr "" -#: c-api/init.rst:1877 +#: c-api/init.rst:1932 msgid "" "with the main thread holding the :term:`global interpreter lock` (*func* can " "therefore use the full C API)." msgstr "" -#: c-api/init.rst:1880 +#: c-api/init.rst:1935 msgid "" "*func* must return ``0`` on success, or ``-1`` on failure with an exception " "set. *func* won't be interrupted to perform another asynchronous " @@ -2230,20 +2293,20 @@ msgid "" "if the global interpreter lock is released." msgstr "" -#: c-api/init.rst:1885 +#: c-api/init.rst:1940 msgid "" "This function doesn't need a current thread state to run, and it doesn't " "need the global interpreter lock." msgstr "" -#: c-api/init.rst:1888 +#: c-api/init.rst:1943 msgid "" "To call this function in a subinterpreter, the caller must hold the GIL. " "Otherwise, the function *func* can be scheduled to be called from the wrong " "interpreter." msgstr "" -#: c-api/init.rst:1893 +#: c-api/init.rst:1948 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 " @@ -2253,7 +2316,7 @@ msgid "" "`PyGILState API`." msgstr "" -#: c-api/init.rst:1902 +#: c-api/init.rst:1957 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 " @@ -2261,18 +2324,46 @@ msgid "" "scheduled calls." msgstr "" -#: c-api/init.rst:1911 +#: c-api/init.rst:1963 +msgid "" +"This function now always schedules *func* to be run in the main interpreter." +msgstr "" + +#: c-api/init.rst:1970 +msgid "" +"Execute all pending calls. This is usually executed automatically by the " +"interpreter." +msgstr "" + +#: c-api/init.rst:1973 +msgid "" +"This function returns ``0`` on success, and returns ``-1`` with an exception " +"set on failure." +msgstr "" + +#: c-api/init.rst:1976 +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 the :term:" +"`GIL`." +msgstr "" + +#: c-api/init.rst:1982 +msgid "This function only runs pending calls in the main interpreter." +msgstr "" + +#: c-api/init.rst:1989 msgid "Profiling and Tracing" msgstr "" -#: c-api/init.rst:1916 +#: c-api/init.rst:1994 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:1920 +#: c-api/init.rst:1998 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 " @@ -2282,7 +2373,7 @@ msgid "" "reported to the Python-level trace functions in previous versions." msgstr "" -#: c-api/init.rst:1930 +#: c-api/init.rst:2008 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 " @@ -2294,64 +2385,64 @@ msgid "" "value of *what*:" msgstr "" -#: c-api/init.rst:1939 +#: c-api/init.rst:2017 msgid "Value of *what*" msgstr "" -#: c-api/init.rst:1939 +#: c-api/init.rst:2017 msgid "Meaning of *arg*" msgstr "" -#: c-api/init.rst:1941 +#: c-api/init.rst:2019 msgid ":c:data:`PyTrace_CALL`" msgstr "" -#: c-api/init.rst:1946 c-api/init.rst:1957 +#: c-api/init.rst:2024 c-api/init.rst:2035 msgid "Always :c:data:`Py_None`." msgstr "" -#: c-api/init.rst:1943 +#: c-api/init.rst:2021 msgid ":c:data:`PyTrace_EXCEPTION`" msgstr "" -#: c-api/init.rst:1943 +#: c-api/init.rst:2021 msgid "Exception information as returned by :func:`sys.exc_info`." msgstr "" -#: c-api/init.rst:1946 +#: c-api/init.rst:2024 msgid ":c:data:`PyTrace_LINE`" msgstr "" -#: c-api/init.rst:1948 +#: c-api/init.rst:2026 msgid ":c:data:`PyTrace_RETURN`" msgstr "" -#: c-api/init.rst:1948 +#: c-api/init.rst:2026 msgid "" "Value being returned to the caller, or ``NULL`` if caused by an exception." msgstr "" -#: c-api/init.rst:1951 +#: c-api/init.rst:2029 msgid ":c:data:`PyTrace_C_CALL`" msgstr "" -#: c-api/init.rst:1953 c-api/init.rst:1955 +#: c-api/init.rst:2031 c-api/init.rst:2033 msgid "Function object being called." msgstr "" -#: c-api/init.rst:1953 +#: c-api/init.rst:2031 msgid ":c:data:`PyTrace_C_EXCEPTION`" msgstr "" -#: c-api/init.rst:1955 +#: c-api/init.rst:2033 msgid ":c:data:`PyTrace_C_RETURN`" msgstr "" -#: c-api/init.rst:1957 +#: c-api/init.rst:2035 msgid ":c:data:`PyTrace_OPCODE`" msgstr "" -#: c-api/init.rst:1962 +#: c-api/init.rst:2040 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 " @@ -2360,7 +2451,7 @@ msgid "" "the corresponding frame." msgstr "" -#: c-api/init.rst:1971 +#: c-api/init.rst:2049 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 " @@ -2372,7 +2463,7 @@ msgid "" "profiler." msgstr "" -#: c-api/init.rst:1982 +#: c-api/init.rst:2060 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 " @@ -2380,31 +2471,31 @@ msgid "" "f_trace_lines` to *0* on that frame." msgstr "" -#: c-api/init.rst:1990 +#: c-api/init.rst:2068 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:1996 +#: c-api/init.rst:2074 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:2002 +#: c-api/init.rst:2080 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:2008 +#: c-api/init.rst:2086 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function has returned." msgstr "" -#: c-api/init.rst:2014 +#: c-api/init.rst:2092 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 " @@ -2412,7 +2503,7 @@ msgid "" "attr:`~frame.f_trace_opcodes` to *1* on the frame." msgstr "" -#: c-api/init.rst:2022 +#: c-api/init.rst:2100 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``. " @@ -2422,28 +2513,28 @@ msgid "" "`PyTrace_LINE` :c:data:`PyTrace_OPCODE` and :c:data:`PyTrace_EXCEPTION`." msgstr "" -#: c-api/init.rst:2029 +#: c-api/init.rst:2107 msgid "See also the :func:`sys.setprofile` function." msgstr "" -#: c-api/init.rst:2038 c-api/init.rst:2064 +#: c-api/init.rst:2116 c-api/init.rst:2142 c-api/init.rst:2694 msgid "The caller must hold the :term:`GIL`." msgstr "" -#: c-api/init.rst:2035 +#: c-api/init.rst:2113 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:2040 +#: c-api/init.rst:2118 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:2048 +#: c-api/init.rst:2126 msgid "" "Set the tracing function to *func*. This is similar to :c:func:" "`PyEval_SetProfile`, except the tracing function does receive line-number " @@ -2454,28 +2545,28 @@ msgid "" "*what* parameter." msgstr "" -#: c-api/init.rst:2055 +#: c-api/init.rst:2133 msgid "See also the :func:`sys.settrace` function." msgstr "" -#: c-api/init.rst:2061 +#: c-api/init.rst:2139 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:2066 +#: c-api/init.rst:2144 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:2072 +#: c-api/init.rst:2150 msgid "Reference tracing" msgstr "" -#: c-api/init.rst:2078 +#: c-api/init.rst:2156 msgid "" "The type of the trace function registered using :c:func:" "`PyRefTracer_SetTracer`. The first parameter is a Python object that has " @@ -2485,19 +2576,19 @@ msgid "" "provided when :c:func:`PyRefTracer_SetTracer` was called." msgstr "" -#: c-api/init.rst:2088 +#: c-api/init.rst:2166 msgid "" "The value for the *event* parameter to :c:type:`PyRefTracer` functions when " "a Python object has been created." msgstr "" -#: c-api/init.rst:2093 +#: c-api/init.rst:2171 msgid "" "The value for the *event* parameter to :c:type:`PyRefTracer` functions when " "a Python object has been destroyed." msgstr "" -#: c-api/init.rst:2098 +#: c-api/init.rst:2176 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 " @@ -2506,7 +2597,7 @@ msgid "" "return ``-1`` on error." msgstr "" -#: c-api/init.rst:2104 +#: c-api/init.rst:2182 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 " @@ -2514,11 +2605,11 @@ msgid "" "the tracer function is called." msgstr "" -#: c-api/init.rst:2120 +#: c-api/init.rst:2198 msgid "The GIL must be held when calling this function." msgstr "" -#: c-api/init.rst:2115 +#: c-api/init.rst:2193 msgid "" "Get the registered reference tracer function and the value of the opaque " "data pointer that was registered when :c:func:`PyRefTracer_SetTracer` was " @@ -2526,48 +2617,48 @@ msgid "" "set the **data** pointer to NULL." msgstr "" -#: c-api/init.rst:2127 +#: c-api/init.rst:2205 msgid "Advanced Debugger Support" msgstr "" -#: c-api/init.rst:2132 +#: c-api/init.rst:2210 msgid "" "These functions are only intended to be used by advanced debugging tools." msgstr "" -#: c-api/init.rst:2137 +#: c-api/init.rst:2215 msgid "" "Return the interpreter state object at the head of the list of all such " "objects." msgstr "" -#: c-api/init.rst:2142 +#: c-api/init.rst:2220 msgid "Return the main interpreter state object." msgstr "" -#: c-api/init.rst:2147 +#: c-api/init.rst:2225 msgid "" "Return the next interpreter state object after *interp* from the list of all " "such objects." msgstr "" -#: c-api/init.rst:2153 +#: c-api/init.rst:2231 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:2159 +#: c-api/init.rst:2237 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:2166 +#: c-api/init.rst:2244 msgid "Thread Local Storage Support" msgstr "" -#: c-api/init.rst:2170 +#: c-api/init.rst:2248 msgid "" "The Python interpreter provides low-level support for thread-local storage " "(TLS) which wraps the underlying native TLS implementation to support the " @@ -2577,19 +2668,19 @@ msgid "" "thread." msgstr "" -#: c-api/init.rst:2177 +#: c-api/init.rst:2255 msgid "" "The GIL does *not* need to be held when calling these functions; they supply " "their own locking." msgstr "" -#: c-api/init.rst:2180 +#: c-api/init.rst:2258 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:2184 +#: c-api/init.rst:2262 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 " @@ -2597,22 +2688,22 @@ msgid "" "don't do refcount operations on them either." msgstr "" -#: c-api/init.rst:2192 +#: c-api/init.rst:2270 msgid "Thread Specific Storage (TSS) API" msgstr "" -#: c-api/init.rst:2194 +#: c-api/init.rst:2272 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:2200 +#: c-api/init.rst:2278 msgid "\"A New C-API for Thread-Local Storage in CPython\" (:pep:`539`)" msgstr "" -#: c-api/init.rst:2205 +#: c-api/init.rst:2283 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 " @@ -2620,52 +2711,52 @@ msgid "" "public members in this structure." msgstr "" -#: c-api/init.rst:2210 +#: c-api/init.rst:2288 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:2216 +#: c-api/init.rst:2294 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:2221 +#: c-api/init.rst:2299 msgid "Dynamic Allocation" msgstr "" -#: c-api/init.rst:2223 +#: c-api/init.rst:2301 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:2230 +#: c-api/init.rst:2308 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:2237 +#: c-api/init.rst:2315 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:2243 +#: c-api/init.rst:2321 msgid "" "A freed key becomes a dangling pointer. You should reset the key to ``NULL``." msgstr "" -#: c-api/init.rst:2248 +#: c-api/init.rst:2326 msgid "Methods" msgstr "" -#: c-api/init.rst:2250 +#: c-api/init.rst:2328 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 " @@ -2673,13 +2764,13 @@ msgid "" "func:`PyThread_tss_create`." msgstr "" -#: c-api/init.rst:2258 +#: c-api/init.rst:2336 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:2264 +#: c-api/init.rst:2342 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 " @@ -2688,7 +2779,7 @@ msgid "" "no-op and immediately returns success." msgstr "" -#: c-api/init.rst:2273 +#: c-api/init.rst:2351 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 " @@ -2697,31 +2788,31 @@ msgid "" "key -- calling it on an already destroyed key is a no-op." msgstr "" -#: c-api/init.rst:2282 +#: c-api/init.rst:2360 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:2289 +#: c-api/init.rst:2367 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:2297 +#: c-api/init.rst:2375 msgid "Thread Local Storage (TLS) API" msgstr "" -#: c-api/init.rst:2299 +#: c-api/init.rst:2377 msgid "" "This API is superseded by :ref:`Thread Specific Storage (TSS) API `." msgstr "" -#: c-api/init.rst:2304 +#: c-api/init.rst:2382 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 " @@ -2730,62 +2821,62 @@ msgid "" "platforms." msgstr "" -#: c-api/init.rst:2309 +#: c-api/init.rst:2387 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:2320 +#: c-api/init.rst:2398 msgid "Synchronization Primitives" msgstr "" -#: c-api/init.rst:2322 +#: c-api/init.rst:2400 msgid "The C-API provides a basic mutual exclusion lock." msgstr "" -#: c-api/init.rst:2326 +#: c-api/init.rst:2404 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:2329 +#: c-api/init.rst:2407 msgid "PyMutex mutex = {0};" msgstr "" -#: c-api/init.rst:2331 +#: c-api/init.rst:2409 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:2337 +#: c-api/init.rst:2415 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:2345 +#: c-api/init.rst:2423 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 " "temporarily release the :term:`GIL` if it is held." msgstr "" -#: c-api/init.rst:2353 +#: c-api/init.rst:2431 msgid "" "Unlock mutex *m*. The mutex must be locked --- otherwise, the function will " "issue a fatal error." msgstr "" -#: c-api/init.rst:2361 +#: c-api/init.rst:2439 msgid "Python Critical Section API" msgstr "" -#: c-api/init.rst:2363 +#: c-api/init.rst:2441 msgid "" "The critical section API provides a deadlock avoidance layer on top of per-" "object locks for :term:`free-threaded ` CPython. They are " @@ -2793,17 +2884,27 @@ msgid "" "no-ops in versions of Python with the global interpreter lock." msgstr "" -#: c-api/init.rst:2368 +#: c-api/init.rst:2446 +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:2453 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:2375 +#: c-api/init.rst:2461 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 " @@ -2811,7 +2912,7 @@ msgid "" "future Python versions." msgstr "" -#: c-api/init.rst:2382 +#: c-api/init.rst:2468 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 " @@ -2820,11 +2921,11 @@ msgid "" "lock more than two objects at once." msgstr "" -#: c-api/init.rst:2388 +#: c-api/init.rst:2474 msgid "Example usage::" msgstr "" -#: c-api/init.rst:2390 +#: c-api/init.rst:2476 msgid "" "static PyObject *\n" "set_field(MyObject *self, PyObject *value)\n" @@ -2836,7 +2937,7 @@ msgid "" "}" msgstr "" -#: c-api/init.rst:2399 +#: c-api/init.rst:2485 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 " @@ -2846,65 +2947,310 @@ msgid "" "`PyEval_SaveThread`." msgstr "" -#: c-api/init.rst:2407 +#: c-api/init.rst:2493 msgid "" "Acquires the per-object lock for the object *op* and begins a critical " "section." msgstr "" -#: c-api/init.rst:2424 c-api/init.rst:2453 +#: c-api/init.rst:2510 c-api/init.rst:2539 msgid "In the free-threaded build, this macro expands to::" msgstr "" -#: c-api/init.rst:2412 +#: c-api/init.rst:2498 msgid "" "{\n" " PyCriticalSection _py_cs;\n" " PyCriticalSection_Begin(&_py_cs, (PyObject*)(op))" msgstr "" -#: c-api/init.rst:2445 +#: c-api/init.rst:2531 msgid "In the default build, this macro expands to ``{``." msgstr "" -#: c-api/init.rst:2422 +#: c-api/init.rst:2508 msgid "Ends the critical section and releases the per-object lock." msgstr "" -#: c-api/init.rst:2426 +#: c-api/init.rst:2512 msgid "" " PyCriticalSection_End(&_py_cs);\n" "}" msgstr "" -#: c-api/init.rst:2458 +#: c-api/init.rst:2544 msgid "In the default build, this macro expands to ``}``." msgstr "" -#: c-api/init.rst:2435 +#: c-api/init.rst:2521 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:2441 +#: c-api/init.rst:2527 msgid "" "{\n" " PyCriticalSection2 _py_cs2;\n" " PyCriticalSection2_Begin(&_py_cs2, (PyObject*)(a), (PyObject*)(b))" msgstr "" -#: c-api/init.rst:2451 +#: c-api/init.rst:2537 msgid "Ends the critical section and releases the per-object locks." msgstr "" -#: c-api/init.rst:2455 +#: c-api/init.rst:2541 msgid "" " PyCriticalSection2_End(&_py_cs2);\n" "}" msgstr "" +#: c-api/init.rst:2550 +msgid "Legacy Locking APIs" +msgstr "" + +#: c-api/init.rst:2552 +msgid "" +"These APIs are obsolete since Python 3.13 with the introduction of :c:type:" +"`PyMutex`." +msgstr "" + +#: c-api/init.rst:2555 +msgid "These APIs are now a simple wrapper around ``PyMutex``." +msgstr "" + +#: c-api/init.rst:2561 +msgid "A pointer to a mutual exclusion lock." +msgstr "" + +#: c-api/init.rst:2566 +msgid "The result of acquiring a lock with a timeout." +msgstr "" + +#: c-api/init.rst:2572 +msgid "Failed to acquire the lock." +msgstr "" + +#: c-api/init.rst:2576 +msgid "The lock was successfully acquired." +msgstr "" + +#: c-api/init.rst:2580 +msgid "The lock was interrupted by a signal." +msgstr "" + +#: c-api/init.rst:2585 +msgid "Allocate a new lock." +msgstr "" + +#: c-api/init.rst:2587 +msgid "" +"On success, this function returns a lock; on failure, this function returns " +"``0`` without an exception set." +msgstr "" + +#: c-api/init.rst:2602 c-api/init.rst:2640 c-api/init.rst:2671 +#: c-api/init.rst:2761 +msgid "The caller does not need to hold the :term:`GIL`." +msgstr "" + +#: c-api/init.rst:2592 +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:2599 +msgid "" +"Destroy *lock*. The lock should not be held by any thread when calling this." +msgstr "" + +#: c-api/init.rst:2607 +msgid "Acquire *lock* with a timeout." +msgstr "" + +#: c-api/init.rst:2609 +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:2614 +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:2619 +msgid "" +"If the lock is successfully acquired, this function returns :c:enumerator:" +"`PY_LOCK_ACQUIRED`." +msgstr "" + +#: c-api/init.rst:2627 +msgid "Acquire *lock*." +msgstr "" + +#: c-api/init.rst:2629 +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:2633 +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:2637 +msgid "" +"Unlike :c:func:`PyThread_acquire_lock_timed`, acquiring the lock cannot be " +"interrupted by a signal." +msgstr "" + +#: c-api/init.rst:2645 +msgid "" +"Release *lock*. If *lock* is not held, then this function issues a fatal " +"error." +msgstr "" + +#: c-api/init.rst:2652 +msgid "Operating System Thread APIs" +msgstr "" + +#: c-api/init.rst:2656 +msgid "Sentinel value for an invalid thread ID." +msgstr "" + +#: c-api/init.rst:2658 +msgid "This is currently equivalent to ``(unsigned long)-1``." +msgstr "" + +#: c-api/init.rst:2663 +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:2666 +msgid "*func* must not be ``NULL``, but *arg* may be ``NULL``." +msgstr "" + +#: c-api/init.rst:2668 +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:2676 +msgid "Return the identifier of the current thread, which will never be zero." +msgstr "" + +#: c-api/init.rst:2710 +msgid "" +"This function cannot fail, and the caller does not need to hold the :term:" +"`GIL`." +msgstr "" + +#: c-api/init.rst:2682 +msgid ":py:func:`threading.get_ident`" +msgstr "" + +#: c-api/init.rst:2687 +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:2691 +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:2699 +msgid "This macro is defined when the system supports native thread IDs." +msgstr "" + +#: c-api/init.rst:2704 +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:2707 +msgid "" +"This function is only available when :c:macro:`PY_HAVE_THREAD_NATIVE_ID` is " +"defined." +msgstr "" + +#: c-api/init.rst:2714 +msgid ":py:func:`threading.get_native_id`" +msgstr "" + +#: c-api/init.rst:2719 +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:2722 +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:2727 +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:2733 +msgid "" +"On Windows, this function calls ``_endthreadex()``, which kills the thread " +"without calling C++ destructors." +msgstr "" + +#: c-api/init.rst:2736 +msgid "In any case, there is a risk of corruption on the thread's stack." +msgstr "" + +#: c-api/init.rst:2741 +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:2747 +msgid "Set the stack size of the current thread to *size* bytes." +msgstr "" + +#: c-api/init.rst:2749 +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:2758 +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 "" @@ -2913,146 +3259,146 @@ msgstr "" msgid "modules (in module sys)" msgstr "" -#: c-api/init.rst:710 +#: c-api/init.rst:700 msgid "path (in module sys)" msgstr "" -#: c-api/init.rst:710 c-api/init.rst:1658 c-api/init.rst:1757 +#: c-api/init.rst:700 c-api/init.rst:1711 c-api/init.rst:1810 msgid "module" msgstr "" -#: c-api/init.rst:1658 c-api/init.rst:1757 +#: c-api/init.rst:1711 c-api/init.rst:1810 msgid "builtins" msgstr "" -#: c-api/init.rst:1658 c-api/init.rst:1757 +#: c-api/init.rst:1711 c-api/init.rst:1810 msgid "__main__" msgstr "" -#: c-api/init.rst:1658 c-api/init.rst:1757 +#: c-api/init.rst:1711 c-api/init.rst:1810 msgid "sys" msgstr "" -#: c-api/init.rst:710 +#: c-api/init.rst:700 msgid "search" msgstr "" -#: c-api/init.rst:710 +#: c-api/init.rst:700 msgid "path" msgstr "" -#: c-api/init.rst:1722 c-api/init.rst:1775 +#: c-api/init.rst:1775 c-api/init.rst:1828 msgid "Py_FinalizeEx (C function)" msgstr "" -#: c-api/init.rst:576 +#: c-api/init.rst:566 msgid "Py_Initialize()" msgstr "" -#: c-api/init.rst:808 +#: c-api/init.rst:798 msgid "main()" msgstr "" -#: c-api/init.rst:576 +#: c-api/init.rst:566 msgid "Py_GetPath()" msgstr "" -#: c-api/init.rst:689 +#: c-api/init.rst:679 msgid "executable (in module sys)" msgstr "" -#: c-api/init.rst:785 c-api/init.rst:799 +#: c-api/init.rst:775 c-api/init.rst:789 msgid "version (in module sys)" msgstr "" -#: c-api/init.rst:755 +#: c-api/init.rst:745 msgid "platform (in module sys)" msgstr "" -#: c-api/init.rst:772 +#: c-api/init.rst:762 msgid "copyright (in module sys)" msgstr "" -#: c-api/init.rst:808 +#: c-api/init.rst:798 msgid "Py_FatalError()" msgstr "" -#: c-api/init.rst:808 +#: c-api/init.rst:798 msgid "argv (in module sys)" msgstr "" -#: c-api/init.rst:928 +#: c-api/init.rst:918 msgid "global interpreter lock" msgstr "" -#: c-api/init.rst:928 +#: c-api/init.rst:918 msgid "interpreter lock" msgstr "" -#: c-api/init.rst:928 +#: c-api/init.rst:918 msgid "lock, interpreter" msgstr "" -#: c-api/init.rst:941 +#: c-api/init.rst:931 msgid "setswitchinterval (in module sys)" msgstr "" -#: c-api/init.rst:950 +#: c-api/init.rst:940 msgid "PyThreadState (C type)" msgstr "" -#: c-api/init.rst:976 +#: c-api/init.rst:966 msgid "Py_BEGIN_ALLOW_THREADS (C macro)" msgstr "" -#: c-api/init.rst:976 +#: c-api/init.rst:966 msgid "Py_END_ALLOW_THREADS (C macro)" msgstr "" -#: c-api/init.rst:992 +#: c-api/init.rst:982 msgid "PyEval_RestoreThread (C function)" msgstr "" -#: c-api/init.rst:992 +#: c-api/init.rst:982 msgid "PyEval_SaveThread (C function)" msgstr "" -#: c-api/init.rst:1123 +#: c-api/init.rst:1150 msgid "PyEval_AcquireThread()" msgstr "" -#: c-api/init.rst:1123 +#: c-api/init.rst:1150 msgid "PyEval_ReleaseThread()" msgstr "" -#: c-api/init.rst:1123 +#: c-api/init.rst:1150 msgid "PyEval_SaveThread()" msgstr "" -#: c-api/init.rst:1123 +#: c-api/init.rst:1150 msgid "PyEval_RestoreThread()" msgstr "" -#: c-api/init.rst:1145 +#: c-api/init.rst:1172 msgid "_thread" msgstr "" -#: c-api/init.rst:1757 +#: c-api/init.rst:1810 msgid "stdout (in module sys)" msgstr "" -#: c-api/init.rst:1757 +#: c-api/init.rst:1810 msgid "stderr (in module sys)" msgstr "" -#: c-api/init.rst:1757 +#: c-api/init.rst:1810 msgid "stdin (in module sys)" msgstr "" -#: c-api/init.rst:1722 +#: c-api/init.rst:1775 msgid "Py_Initialize (C function)" msgstr "" -#: c-api/init.rst:1752 +#: c-api/init.rst:1805 msgid "close (in module os)" msgstr "" diff --git a/c-api/init_config.po b/c-api/init_config.po index a6e1b410..4a20ccff 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/intro.po b/c-api/intro.po index 909f2d31..1567d1d2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -177,7 +177,7 @@ msgstr "" #: c-api/intro.rst:119 msgid "" "static struct PyModuleDef spam_module = {\n" -" PyModuleDef_HEAD_INIT,\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" " .m_name = \"spam\",\n" " ...\n" "};\n" @@ -185,7 +185,7 @@ msgid "" "PyMODINIT_FUNC\n" "PyInit_spam(void)\n" "{\n" -" return PyModule_Create(&spam_module);\n" +" return PyModuleDef_Init(&spam_module);\n" "}" msgstr "" @@ -193,104 +193,123 @@ msgstr "" msgid "Return the absolute value of ``x``." msgstr "" -#: c-api/intro.rst:140 +#: c-api/intro.rst:136 +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:144 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:143 +#: c-api/intro.rst:147 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:147 +#: c-api/intro.rst:151 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:151 +#: c-api/intro.rst:155 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:154 +#: c-api/intro.rst:158 msgid "It must be specified before the function return type. Usage::" msgstr "" -#: c-api/intro.rst:156 +#: c-api/intro.rst:160 msgid "static inline Py_ALWAYS_INLINE int random(void) { return 4; }" msgstr "" -#: c-api/intro.rst:162 +#: c-api/intro.rst:166 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:167 +#: c-api/intro.rst:171 msgid "" "Use this for deprecated declarations. The macro must be placed before the " "symbol name." msgstr "" -#: c-api/intro.rst:256 c-api/intro.rst:274 +#: c-api/intro.rst:294 c-api/intro.rst:312 msgid "Example::" msgstr "" -#: c-api/intro.rst:172 +#: c-api/intro.rst:176 msgid "Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void);" msgstr "" -#: c-api/intro.rst:174 +#: c-api/intro.rst:178 msgid "MSVC support was added." msgstr "" -#: c-api/intro.rst:179 +#: c-api/intro.rst:183 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:184 +#: c-api/intro.rst:188 +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:194 +msgid "" +"Equivalent to :c:macro:`Py_LOCAL` but additionally requests the function be " +"inlined." +msgstr "" + +#: c-api/intro.rst:199 msgid "Return the maximum value between ``x`` and ``y``." msgstr "" -#: c-api/intro.rst:190 +#: c-api/intro.rst:205 msgid "Return the size of a structure (``type``) ``member`` in bytes." msgstr "" -#: c-api/intro.rst:196 +#: c-api/intro.rst:211 msgid "Return the minimum value between ``x`` and ``y``." msgstr "" -#: c-api/intro.rst:202 +#: c-api/intro.rst:217 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:206 +#: c-api/intro.rst:221 msgid "Usage::" msgstr "" -#: c-api/intro.rst:208 +#: c-api/intro.rst:223 msgid "Py_NO_INLINE static int random(void) { return 4; }" msgstr "" -#: c-api/intro.rst:214 +#: c-api/intro.rst:229 msgid "" "Convert ``x`` to a C string. E.g. ``Py_STRINGIFY(123)`` returns ``\"123\"``." msgstr "" -#: c-api/intro.rst:221 +#: c-api/intro.rst:236 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 " @@ -298,20 +317,20 @@ msgid "" "where you might be tempted to put an ``assert(0)`` or ``abort()`` call." msgstr "" -#: c-api/intro.rst:226 +#: c-api/intro.rst:241 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:230 +#: c-api/intro.rst:245 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:233 +#: c-api/intro.rst:248 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 " @@ -320,25 +339,52 @@ msgid "" "reported to caller, :c:func:`Py_FatalError` can be used." msgstr "" -#: c-api/intro.rst:243 +#: c-api/intro.rst:258 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:250 +#: c-api/intro.rst:265 +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:279 c-api/intro.rst:324 +msgid "For example::" +msgstr "" + +#: c-api/intro.rst:270 +msgid "Py_BUILD_ASSERT(sizeof(PyTime_t) == sizeof(int64_t));" +msgstr "" + +#: c-api/intro.rst:276 +msgid "" +"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:281 +msgid "" +"#define foo_to_char(foo) \\\n" +" ((char *)(foo) + Py_BUILD_ASSERT_EXPR(offsetof(struct foo, string) == 0))" +msgstr "" + +#: c-api/intro.rst:288 msgid "" -"Creates a variable with name ``name`` that can be used in docstrings. If " +"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:253 +#: c-api/intro.rst:291 msgid "" "Use :c:macro:`PyDoc_STRVAR` for docstrings to support building Python " "without docstrings, as specified in :pep:`7`." msgstr "" -#: c-api/intro.rst:258 +#: c-api/intro.rst:296 msgid "" "PyDoc_STRVAR(pop_doc, \"Remove and return the rightmost element.\");\n" "\n" @@ -349,19 +395,19 @@ msgid "" "}" msgstr "" -#: c-api/intro.rst:268 +#: c-api/intro.rst:306 msgid "" "Creates a docstring for the given input string or an empty string if " "docstrings are disabled." msgstr "" -#: c-api/intro.rst:271 +#: c-api/intro.rst:309 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:276 +#: c-api/intro.rst:314 msgid "" "static PyMethodDef pysqlite_row_methods[] = {\n" " {\"keys\", (PyCFunction)pysqlite_row_keys, METH_NOARGS,\n" @@ -370,11 +416,43 @@ msgid "" "};" msgstr "" -#: c-api/intro.rst:286 +#: c-api/intro.rst:322 +msgid "Declares a static character array variable with the given name *name*." +msgstr "" + +#: c-api/intro.rst:326 +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:331 +msgid "Compute the length of a statically allocated C array at compile time." +msgstr "" + +#: c-api/intro.rst:333 +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:338 +msgid "This is roughly equivalent to::" +msgstr "" + +#: c-api/intro.rst:340 +msgid "sizeof(array) / sizeof((array)[0])" +msgstr "" + +#: c-api/intro.rst:346 msgid "Objects, Types and Reference Counts" msgstr "" -#: c-api/intro.rst:290 +#: c-api/intro.rst:350 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 " @@ -389,7 +467,7 @@ msgid "" "objects." msgstr "" -#: c-api/intro.rst:301 +#: c-api/intro.rst:361 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." @@ -400,11 +478,11 @@ msgid "" "a Python list." msgstr "" -#: c-api/intro.rst:312 +#: c-api/intro.rst:372 msgid "Reference Counts" msgstr "" -#: c-api/intro.rst:314 +#: c-api/intro.rst:374 msgid "" "The reference count is important because today's computers have a finite " "(and often severely limited) memory size; it counts how many different " @@ -419,7 +497,7 @@ msgid "" "that.\")" msgstr "" -#: c-api/intro.rst:331 +#: c-api/intro.rst:391 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. " @@ -438,7 +516,7 @@ msgid "" "increment is a simple operation." msgstr "" -#: c-api/intro.rst:347 +#: c-api/intro.rst:407 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 " @@ -456,7 +534,7 @@ msgid "" "reference to every argument for the duration of the call." msgstr "" -#: c-api/intro.rst:363 +#: c-api/intro.rst:423 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 " @@ -467,7 +545,7 @@ msgid "" "`Py_DECREF`, so almost any operation is potentially dangerous." msgstr "" -#: c-api/intro.rst:371 +#: c-api/intro.rst:431 msgid "" "A safe approach is to always use the generic operations (functions whose " "name begins with ``PyObject_``, ``PyNumber_``, ``PySequence_`` or " @@ -477,11 +555,11 @@ msgid "" "when they are done with the result; this soon becomes second nature." msgstr "" -#: c-api/intro.rst:382 +#: c-api/intro.rst:442 msgid "Reference Count Details" msgstr "" -#: c-api/intro.rst:384 +#: c-api/intro.rst:444 msgid "" "The reference count behavior of functions in the Python/C API is best " "explained in terms of *ownership of references*. Ownership pertains to " @@ -498,7 +576,7 @@ msgid "" "`borrowed reference`." msgstr "" -#: c-api/intro.rst:397 +#: c-api/intro.rst:457 msgid "" "Conversely, when a calling function passes in a reference to an object, " "there are two possibilities: the function *steals* a reference to the " @@ -507,7 +585,7 @@ msgid "" "reference, and you are not responsible for it any longer." msgstr "" -#: c-api/intro.rst:407 +#: c-api/intro.rst:467 msgid "" "Few functions steal references; the two notable exceptions are :c:func:" "`PyList_SetItem` and :c:func:`PyTuple_SetItem`, which steal a reference to " @@ -519,7 +597,7 @@ msgid "" "below)::" msgstr "" -#: c-api/intro.rst:415 +#: c-api/intro.rst:475 msgid "" "PyObject *t;\n" "\n" @@ -529,7 +607,7 @@ msgid "" "PyTuple_SetItem(t, 2, PyUnicode_FromString(\"three\"));" msgstr "" -#: c-api/intro.rst:422 +#: c-api/intro.rst:482 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 " @@ -537,7 +615,7 @@ msgid "" "another reference before calling the reference-stealing function." msgstr "" -#: c-api/intro.rst:427 +#: c-api/intro.rst:487 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 " @@ -545,13 +623,13 @@ msgid "" "func:`PyTuple_SetItem` for tuples that you are creating yourself." msgstr "" -#: c-api/intro.rst:432 +#: c-api/intro.rst:492 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:435 +#: c-api/intro.rst:495 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:" @@ -560,7 +638,7 @@ msgid "" "be replaced by the following (which also takes care of the error checking)::" msgstr "" -#: c-api/intro.rst:441 +#: c-api/intro.rst:501 msgid "" "PyObject *tuple, *list;\n" "\n" @@ -568,7 +646,7 @@ msgid "" "list = Py_BuildValue(\"[iis]\", 1, 2, \"three\");" msgstr "" -#: c-api/intro.rst:446 +#: c-api/intro.rst:506 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 " @@ -579,7 +657,7 @@ msgid "" "sequence) to a given item::" msgstr "" -#: c-api/intro.rst:453 +#: c-api/intro.rst:513 msgid "" "int\n" "set_all(PyObject *target, PyObject *item)\n" @@ -603,7 +681,7 @@ msgid "" "}" msgstr "" -#: c-api/intro.rst:476 +#: c-api/intro.rst:536 msgid "" "The situation is slightly different for function return values. While " "passing a reference to most functions does not change your ownership " @@ -616,7 +694,7 @@ msgid "" "becomes the owner of the reference)." msgstr "" -#: c-api/intro.rst:485 +#: c-api/intro.rst:545 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 " @@ -627,14 +705,14 @@ msgid "" "the same arguments), you do own a reference to the returned object." msgstr "" -#: c-api/intro.rst:497 +#: c-api/intro.rst:557 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:501 +#: c-api/intro.rst:561 msgid "" "long\n" "sum_list(PyObject *list)\n" @@ -659,7 +737,7 @@ msgid "" "}" msgstr "" -#: c-api/intro.rst:527 +#: c-api/intro.rst:587 msgid "" "long\n" "sum_sequence(PyObject *sequence)\n" @@ -690,11 +768,11 @@ msgid "" "}" msgstr "" -#: c-api/intro.rst:561 +#: c-api/intro.rst:621 msgid "Types" msgstr "" -#: c-api/intro.rst:563 +#: c-api/intro.rst:623 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:" @@ -705,7 +783,7 @@ msgid "" "that use them." msgstr "" -#: c-api/intro.rst:573 +#: c-api/intro.rst:633 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 " @@ -713,11 +791,11 @@ msgid "" "positive value of type :c:type:`Py_ssize_t`." msgstr "" -#: c-api/intro.rst:582 +#: c-api/intro.rst:642 msgid "Exceptions" msgstr "" -#: c-api/intro.rst:584 +#: c-api/intro.rst:644 msgid "" "The Python programmer only needs to deal with exceptions if specific error " "handling is required; unhandled exceptions are automatically propagated to " @@ -726,7 +804,7 @@ msgid "" "stack traceback." msgstr "" -#: c-api/intro.rst:592 +#: c-api/intro.rst:652 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 " @@ -741,7 +819,7 @@ msgid "" "explicitly documented." msgstr "" -#: c-api/intro.rst:607 +#: c-api/intro.rst:667 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 " @@ -754,7 +832,7 @@ msgid "" "clears the exception state." msgstr "" -#: c-api/intro.rst:617 +#: c-api/intro.rst:677 msgid "" "The full exception state consists of three objects (all of which can be " "``NULL``): the exception type, the corresponding exception value, and the " @@ -767,7 +845,7 @@ msgid "" "``sys.exc_info()`` and friends." msgstr "" -#: c-api/intro.rst:629 +#: c-api/intro.rst:689 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." @@ -781,7 +859,7 @@ msgid "" "referenced by the stack frames in the traceback." msgstr "" -#: c-api/intro.rst:640 +#: c-api/intro.rst:700 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 " @@ -792,7 +870,7 @@ msgid "" "of the error." msgstr "" -#: c-api/intro.rst:649 +#: c-api/intro.rst:709 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 " @@ -801,7 +879,7 @@ msgid "" "why you like Python, we show the equivalent Python code::" msgstr "" -#: c-api/intro.rst:655 +#: c-api/intro.rst:715 msgid "" "def incr_item(dict, key):\n" " try:\n" @@ -811,11 +889,11 @@ msgid "" " dict[key] = item + 1" msgstr "" -#: c-api/intro.rst:664 +#: c-api/intro.rst:724 msgid "Here is the corresponding C code, in all its glory::" msgstr "" -#: c-api/intro.rst:666 +#: c-api/intro.rst:726 msgid "" "int\n" "incr_item(PyObject *dict, PyObject *key)\n" @@ -861,7 +939,7 @@ msgid "" "}" msgstr "" -#: c-api/intro.rst:716 +#: c-api/intro.rst:776 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:" @@ -874,11 +952,11 @@ msgid "" "success after the final call made is successful." msgstr "" -#: c-api/intro.rst:730 +#: c-api/intro.rst:790 msgid "Embedding Python" msgstr "" -#: c-api/intro.rst:732 +#: c-api/intro.rst:792 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 " @@ -886,7 +964,7 @@ msgid "" "the interpreter can only be used after the interpreter has been initialized." msgstr "" -#: c-api/intro.rst:745 +#: c-api/intro.rst:805 msgid "" "The basic initialization function is :c:func:`Py_Initialize`. This " "initializes the table of loaded modules, and creates the fundamental " @@ -894,7 +972,7 @@ msgid "" "initializes the module search path (``sys.path``)." msgstr "" -#: c-api/intro.rst:750 +#: c-api/intro.rst:810 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 " @@ -902,7 +980,7 @@ msgid "" "must be set: see :ref:`Python Initialization Configuration `." msgstr "" -#: c-api/intro.rst:755 +#: c-api/intro.rst:815 msgid "" "On most systems (in particular, on Unix and Windows, although the details " "are slightly different), :c:func:`Py_Initialize` calculates the module " @@ -914,7 +992,7 @@ msgid "" "on the shell command search path (the environment variable :envvar:`PATH`)." msgstr "" -#: c-api/intro.rst:764 +#: c-api/intro.rst:824 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/" @@ -925,7 +1003,7 @@ msgid "" "in front of the standard path by setting :envvar:`PYTHONPATH`." msgstr "" -#: c-api/intro.rst:778 +#: c-api/intro.rst:838 msgid "" "The embedding application can steer the search by setting :c:member:" "`PyConfig.program_name` *before* calling :c:func:`Py_InitializeFromConfig`. " @@ -936,7 +1014,7 @@ msgid "" "func:`Py_GetProgramFullPath` (all defined in :file:`Modules/getpath.c`)." msgstr "" -#: c-api/intro.rst:789 +#: c-api/intro.rst:849 msgid "" "Sometimes, it is desirable to \"uninitialize\" Python. For instance, the " "application may want to start over (make another call to :c:func:" @@ -950,18 +1028,18 @@ msgid "" "released." msgstr "" -#: c-api/intro.rst:803 +#: c-api/intro.rst:863 msgid "Debugging Builds" msgstr "" -#: c-api/intro.rst:805 +#: c-api/intro.rst:865 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:809 +#: c-api/intro.rst:869 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 " @@ -971,7 +1049,7 @@ msgid "" "section." msgstr "" -#: c-api/intro.rst:817 +#: c-api/intro.rst:877 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:828 +#: c-api/intro.rst:888 msgid "" "Defining :c:macro:`Py_TRACE_REFS` enables reference tracing (see the :option:" "`configure --with-trace-refs option <--with-trace-refs>`). When defined, a " @@ -998,132 +1076,206 @@ msgid "" "this happens after every statement run by the interpreter.)" msgstr "" -#: c-api/intro.rst:835 +#: c-api/intro.rst:895 msgid "" "Please refer to :file:`Misc/SpecialBuilds.txt` in the Python source " "distribution for more detailed information." msgstr "" -#: c-api/intro.rst:288 +#: c-api/intro.rst:902 +msgid "Recommended third party tools" +msgstr "" + +#: c-api/intro.rst:904 +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:907 +msgid "`Cython `_" +msgstr "" + +#: c-api/intro.rst:908 +msgid "`cffi `_" +msgstr "" + +#: c-api/intro.rst:909 +msgid "`HPy `_" +msgstr "" + +#: c-api/intro.rst:910 +msgid "`nanobind `_ (C++)" +msgstr "" + +#: c-api/intro.rst:911 +msgid "`Numba `_" +msgstr "" + +#: c-api/intro.rst:912 +msgid "`pybind11 `_ (C++)" +msgstr "" + +#: c-api/intro.rst:913 +msgid "`PyO3 `_ (Rust)" +msgstr "" + +#: c-api/intro.rst:914 +msgid "`SWIG `_" +msgstr "" + +#: c-api/intro.rst:916 +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 " +"focus more on your own code than on using the CPython API. In general, new " +"versions of Python can be supported by updating the tool, and your code will " +"often use newer and more efficient APIs automatically. Some tools also " +"support compiling for other implementations of Python from a single set of " +"sources." +msgstr "" + +#: c-api/intro.rst:923 +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 " +"the project is still maintained and supported, as the list above may become " +"outdated." +msgstr "" + +#: c-api/intro.rst:930 +msgid "" +"`Python Packaging User Guide: Binary Extensions `_" +msgstr "" + +#: c-api/intro.rst:931 +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:348 msgid "object" msgstr "" -#: c-api/intro.rst:288 +#: c-api/intro.rst:348 msgid "type" msgstr "" -#: c-api/intro.rst:327 +#: c-api/intro.rst:387 msgid "Py_INCREF (C function)" msgstr "" -#: c-api/intro.rst:327 +#: c-api/intro.rst:387 msgid "Py_DECREF (C function)" msgstr "" -#: c-api/intro.rst:403 +#: c-api/intro.rst:463 msgid "PyList_SetItem (C function)" msgstr "" -#: c-api/intro.rst:403 +#: c-api/intro.rst:463 msgid "PyTuple_SetItem (C function)" msgstr "" -#: c-api/intro.rst:474 +#: c-api/intro.rst:534 msgid "set_all()" msgstr "" -#: c-api/intro.rst:493 +#: c-api/intro.rst:553 msgid "PyList_GetItem (C function)" msgstr "" -#: c-api/intro.rst:493 +#: c-api/intro.rst:553 msgid "PySequence_GetItem (C function)" msgstr "" -#: c-api/intro.rst:523 +#: c-api/intro.rst:583 msgid "sum_list()" msgstr "" -#: c-api/intro.rst:647 +#: c-api/intro.rst:707 msgid "sum_sequence()" msgstr "" -#: c-api/intro.rst:590 +#: c-api/intro.rst:650 msgid "PyErr_Occurred (C function)" msgstr "" -#: c-api/intro.rst:603 +#: c-api/intro.rst:663 msgid "PyErr_SetString (C function)" msgstr "" -#: c-api/intro.rst:711 +#: c-api/intro.rst:771 msgid "PyErr_Clear (C function)" msgstr "" -#: c-api/intro.rst:627 +#: c-api/intro.rst:687 msgid "exc_info (in module sys)" msgstr "" -#: c-api/intro.rst:709 +#: c-api/intro.rst:769 msgid "incr_item()" msgstr "" -#: c-api/intro.rst:711 +#: c-api/intro.rst:771 msgid "PyErr_ExceptionMatches (C function)" msgstr "" -#: c-api/intro.rst:711 +#: c-api/intro.rst:771 msgid "Py_XDECREF (C function)" msgstr "" -#: c-api/intro.rst:737 +#: c-api/intro.rst:797 msgid "Py_Initialize (C function)" msgstr "" -#: c-api/intro.rst:737 +#: c-api/intro.rst:797 msgid "module" msgstr "" -#: c-api/intro.rst:737 +#: c-api/intro.rst:797 msgid "builtins" msgstr "" -#: c-api/intro.rst:737 +#: c-api/intro.rst:797 msgid "__main__" msgstr "" -#: c-api/intro.rst:737 +#: c-api/intro.rst:797 msgid "sys" msgstr "" -#: c-api/intro.rst:737 +#: c-api/intro.rst:797 msgid "search" msgstr "" -#: c-api/intro.rst:737 +#: c-api/intro.rst:797 msgid "path" msgstr "" -#: c-api/intro.rst:737 +#: c-api/intro.rst:797 msgid "path (in module sys)" msgstr "" -#: c-api/intro.rst:772 +#: c-api/intro.rst:832 msgid "Py_GetPath (C function)" msgstr "" -#: c-api/intro.rst:772 +#: c-api/intro.rst:832 msgid "Py_GetPrefix (C function)" msgstr "" -#: c-api/intro.rst:772 +#: c-api/intro.rst:832 msgid "Py_GetExecPrefix (C function)" msgstr "" -#: c-api/intro.rst:772 +#: c-api/intro.rst:832 msgid "Py_GetProgramFullPath (C function)" msgstr "" -#: c-api/intro.rst:787 +#: c-api/intro.rst:847 msgid "Py_IsInitialized (C function)" msgstr "" diff --git a/c-api/iter.po b/c-api/iter.po index 44794730..28fcf1af 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 5009840d..a3b5f3d9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/list.po b/c-api/list.po index 0b2f0af5..f7fa120e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 aecece52..100b04f1 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -60,50 +60,50 @@ 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:74 +#: c-api/long.rst:76 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:80 +#: c-api/long.rst:82 msgid "" "Return a new :c:type:`PyLongObject` object from the integer part of *v*, or " "``NULL`` on failure." msgstr "" -#: c-api/long.rst:86 +#: c-api/long.rst:88 msgid "" "Return a new :c:type:`PyLongObject` based on the string value in *str*, " "which is interpreted according to the radix in *base*, or ``NULL`` on " @@ -118,32 +118,32 @@ msgid "" "whitespace, :exc:`ValueError` will be raised." msgstr "" -#: c-api/long.rst:97 +#: c-api/long.rst:99 msgid "" "Python methods :meth:`int.to_bytes` and :meth:`int.from_bytes` to convert a :" "c:type:`PyLongObject` to/from an array of bytes in base ``256``. You can " "call those from C using :c:func:`PyObject_CallMethod`." msgstr "" -#: c-api/long.rst:104 +#: c-api/long.rst:106 msgid "" "Convert a sequence of Unicode digits in the string *u* to a Python integer " "value." msgstr "" -#: c-api/long.rst:112 +#: c-api/long.rst:114 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:118 +#: c-api/long.rst:120 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:121 +#: c-api/long.rst:123 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 " @@ -152,62 +152,72 @@ msgid "" "calling :c:func:`PyLong_FromUnsignedNativeBytes`. Other flags are ignored." msgstr "" -#: c-api/long.rst:132 +#: c-api/long.rst:134 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:135 +#: c-api/long.rst:137 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:184 +#: c-api/long.rst:146 +msgid "Macro for creating a Python integer from a process identifier." +msgstr "" + +#: c-api/long.rst:148 +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:197 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:152 +#: c-api/long.rst:165 msgid "" "Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" "expr:`long`." msgstr "" -#: c-api/long.rst:193 c-api/long.rst:234 c-api/long.rst:257 +#: c-api/long.rst:206 c-api/long.rst:247 c-api/long.rst:270 msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" -#: c-api/long.rst:195 c-api/long.rst:238 c-api/long.rst:342 +#: c-api/long.rst:208 c-api/long.rst:251 c-api/long.rst:355 msgid "Use :meth:`~object.__index__` if available." msgstr "" -#: c-api/long.rst:198 c-api/long.rst:241 c-api/long.rst:345 +#: c-api/long.rst:211 c-api/long.rst:254 c-api/long.rst:358 msgid "This function will no longer use :meth:`~object.__int__`." msgstr "" -#: c-api/long.rst:167 +#: c-api/long.rst:180 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:171 +#: c-api/long.rst:184 msgid "The function is soft deprecated." msgstr "" -#: c-api/long.rst:176 +#: c-api/long.rst:189 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:188 +#: c-api/long.rst:201 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 " @@ -215,20 +225,20 @@ msgid "" "exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." msgstr "" -#: c-api/long.rst:225 +#: c-api/long.rst:238 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:211 +#: c-api/long.rst:224 msgid "" "Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" "expr:`long long`." msgstr "" -#: c-api/long.rst:229 +#: c-api/long.rst:242 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 " @@ -236,133 +246,133 @@ msgid "" "exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." msgstr "" -#: c-api/long.rst:251 +#: c-api/long.rst:264 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:254 +#: c-api/long.rst:267 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:266 +#: c-api/long.rst:279 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:269 +#: c-api/long.rst:282 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "expr:`unsigned long`." msgstr "" -#: c-api/long.rst:272 +#: c-api/long.rst:285 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: c-api/long.rst:282 +#: c-api/long.rst:295 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:285 +#: c-api/long.rst:298 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`size_t`." msgstr "" -#: c-api/long.rst:288 +#: c-api/long.rst:301 msgid "" "Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: c-api/long.rst:297 +#: c-api/long.rst:310 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:300 +#: c-api/long.rst:313 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:303 +#: c-api/long.rst:316 msgid "" "Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: c-api/long.rst:306 +#: c-api/long.rst:319 msgid "" "A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`." msgstr "" -#: c-api/long.rst:312 +#: c-api/long.rst:325 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:316 +#: c-api/long.rst:329 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:319 +#: c-api/long.rst:332 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: c-api/long.rst:331 +#: c-api/long.rst:344 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:336 +#: c-api/long.rst:349 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:339 +#: c-api/long.rst:352 msgid "" "Returns ``(unsigned long 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:`double` representation of *pylong*. *pylong* must be an " "instance of :c:type:`PyLongObject`." msgstr "" -#: c-api/long.rst:354 +#: c-api/long.rst:367 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "expr:`double`." msgstr "" -#: c-api/long.rst:357 +#: c-api/long.rst:370 msgid "" "Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" -#: c-api/long.rst:362 +#: c-api/long.rst:375 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 " @@ -370,59 +380,70 @@ msgid "" "c:func:`PyLong_FromVoidPtr`." msgstr "" -#: c-api/long.rst:367 +#: c-api/long.rst:380 msgid "" "Returns ``NULL`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" -#: c-api/long.rst:372 +#: c-api/long.rst:385 +msgid "Macro for converting a Python integer into a process identifier." +msgstr "" + +#: c-api/long.rst:387 +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:396 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:376 +#: c-api/long.rst:400 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:380 +#: c-api/long.rst:404 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:385 +#: c-api/long.rst:409 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:392 +#: c-api/long.rst:416 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:395 +#: c-api/long.rst:419 msgid "``0`` will never be returned." msgstr "" -#: c-api/long.rst:397 +#: c-api/long.rst:421 msgid "Values are always copied as two's-complement." msgstr "" -#: c-api/long.rst:399 +#: c-api/long.rst:423 msgid "Usage example::" msgstr "" -#: c-api/long.rst:401 +#: c-api/long.rst:425 msgid "" "int32_t value;\n" "Py_ssize_t bytes = PyLong_AsNativeBytes(pylong, &value, sizeof(value), -1);\n" @@ -439,26 +460,26 @@ msgid "" "}" msgstr "" -#: c-api/long.rst:415 +#: c-api/long.rst:439 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:422 +#: c-api/long.rst:446 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:425 +#: c-api/long.rst:449 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:428 +#: c-api/long.rst:452 msgid "" "// Ask how much space we need.\n" "Py_ssize_t expected = PyLong_AsNativeBytes(pylong, NULL, 0, -1);\n" @@ -489,69 +510,69 @@ msgid "" "free(bignum);" msgstr "" -#: c-api/long.rst:456 +#: c-api/long.rst:480 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:461 +#: c-api/long.rst:485 msgid "" "Currently, ``-1`` corresponds to ``Py_ASNATIVEBYTES_NATIVE_ENDIAN | " "Py_ASNATIVEBYTES_UNSIGNED_BUFFER``." msgstr "" -#: c-api/long.rst:467 +#: c-api/long.rst:491 msgid "Flag" msgstr "" -#: c-api/long.rst:467 +#: c-api/long.rst:491 msgid "Value" msgstr "" -#: c-api/long.rst:469 +#: c-api/long.rst:493 msgid "``-1``" msgstr "" -#: c-api/long.rst:470 +#: c-api/long.rst:494 msgid "``0``" msgstr "" -#: c-api/long.rst:471 +#: c-api/long.rst:495 msgid "``1``" msgstr "" -#: c-api/long.rst:472 +#: c-api/long.rst:496 msgid "``3``" msgstr "" -#: c-api/long.rst:473 +#: c-api/long.rst:497 msgid "``4``" msgstr "" -#: c-api/long.rst:474 +#: c-api/long.rst:498 msgid "``8``" msgstr "" -#: c-api/long.rst:475 +#: c-api/long.rst:499 msgid "``16``" msgstr "" -#: c-api/long.rst:478 +#: c-api/long.rst:502 msgid "" "Specifying ``Py_ASNATIVEBYTES_NATIVE_ENDIAN`` will override any other endian " "flags. Passing ``2`` is reserved." msgstr "" -#: c-api/long.rst:481 +#: c-api/long.rst:505 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:485 +#: c-api/long.rst:509 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 " @@ -561,7 +582,7 @@ msgid "" "requested." msgstr "" -#: c-api/long.rst:492 +#: c-api/long.rst:516 msgid "" "Specifying ``Py_ASNATIVEBYTES_REJECT_NEGATIVE`` causes an exception to be " "set if *pylong* is negative. Without this flag, negative values will be " @@ -569,7 +590,7 @@ msgid "" "of whether ``Py_ASNATIVEBYTES_UNSIGNED_BUFFER`` was specified." msgstr "" -#: c-api/long.rst:497 +#: c-api/long.rst:521 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 " @@ -579,7 +600,7 @@ msgid "" "`TypeError`." msgstr "" -#: c-api/long.rst:506 +#: c-api/long.rst:530 msgid "" "With the default *flags* (``-1``, or *UNSIGNED_BUFFER* without " "*REJECT_NEGATIVE*), multiple Python integers can map to a single value " @@ -587,22 +608,22 @@ msgid "" "buffer and set all its bits. This matches typical C cast behavior." msgstr "" -#: c-api/long.rst:517 +#: c-api/long.rst:541 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:521 +#: c-api/long.rst:545 msgid "On failure, return ``NULL`` with an exception set." msgstr "" -#: c-api/long.rst:528 +#: c-api/long.rst:552 msgid "Return 1 if *op* is compact, 0 otherwise." msgstr "" -#: c-api/long.rst:530 +#: c-api/long.rst:554 msgid "" "This function makes it possible for performance-critical code to implement a " "“fast path” for small integers. For compact values use :c:func:" @@ -610,23 +631,23 @@ msgid "" "`PyLong_As* ` function or :c:func:`PyLong_AsNativeBytes`." msgstr "" -#: c-api/long.rst:536 +#: c-api/long.rst:560 msgid "The speedup is expected to be negligible for most users." msgstr "" -#: c-api/long.rst:538 +#: c-api/long.rst:562 msgid "" "Exactly what values are considered compact is an implementation detail and " "is subject to change." msgstr "" -#: c-api/long.rst:546 +#: c-api/long.rst:570 msgid "" "If *op* is compact, as determined by :c:func:`PyUnstable_Long_IsCompact`, " "return its value." msgstr "" -#: c-api/long.rst:549 +#: c-api/long.rst:573 msgid "Otherwise, the return value is undefined." msgstr "" @@ -642,22 +663,22 @@ msgstr "" msgid "integer" msgstr "" -#: c-api/long.rst:144 +#: c-api/long.rst:157 msgid "LONG_MAX (C macro)" msgstr "" -#: c-api/long.rst:204 c-api/long.rst:262 c-api/long.rst:294 +#: c-api/long.rst:217 c-api/long.rst:275 c-api/long.rst:307 msgid "OverflowError (built-in exception)" msgstr "" -#: c-api/long.rst:247 +#: c-api/long.rst:260 msgid "PY_SSIZE_T_MAX (C macro)" msgstr "" -#: c-api/long.rst:262 +#: c-api/long.rst:275 msgid "ULONG_MAX (C macro)" msgstr "" -#: c-api/long.rst:278 +#: c-api/long.rst:291 msgid "SIZE_MAX (C macro)" msgstr "" diff --git a/c-api/mapping.po b/c-api/mapping.po index 5d06f877..e1ef8c69 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 06c9c81a..6180dfa8 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -110,7 +110,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 6a2d7d0d..8af2b7c7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 "" @@ -581,19 +581,19 @@ msgid "" "following fields:" msgstr "" -#: c-api/memory.rst:670 +#: c-api/memory.rst:674 msgid "Field" msgstr "" -#: c-api/memory.rst:670 +#: c-api/memory.rst:674 msgid "Meaning" msgstr "" -#: c-api/memory.rst:672 +#: c-api/memory.rst:676 msgid "``void *ctx``" msgstr "" -#: c-api/memory.rst:672 +#: c-api/memory.rst:676 msgid "user context passed as first argument" msgstr "" @@ -996,45 +996,52 @@ msgid "" "envvar:`PYTHONMALLOC` environment variable (ex: ``PYTHONMALLOC=malloc``)." msgstr "" -#: c-api/memory.rst:660 +#: c-api/memory.rst:659 +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:664 msgid "Customize pymalloc Arena Allocator" msgstr "" -#: c-api/memory.rst:666 +#: c-api/memory.rst:670 msgid "" "Structure used to describe an arena allocator. The structure has three " "fields:" msgstr "" -#: c-api/memory.rst:674 +#: c-api/memory.rst:678 msgid "``void* alloc(void *ctx, size_t size)``" msgstr "" -#: c-api/memory.rst:674 +#: c-api/memory.rst:678 msgid "allocate an arena of size bytes" msgstr "" -#: c-api/memory.rst:676 +#: c-api/memory.rst:680 msgid "``void free(void *ctx, void *ptr, size_t size)``" msgstr "" -#: c-api/memory.rst:676 +#: c-api/memory.rst:680 msgid "free an arena" msgstr "" -#: c-api/memory.rst:681 +#: c-api/memory.rst:685 msgid "Get the arena allocator." msgstr "" -#: c-api/memory.rst:685 +#: c-api/memory.rst:689 msgid "Set the arena allocator." msgstr "" -#: c-api/memory.rst:690 +#: c-api/memory.rst:694 msgid "The mimalloc allocator" msgstr "" -#: c-api/memory.rst:694 +#: c-api/memory.rst:698 msgid "" "Python supports the mimalloc allocator when the underlying platform support " "is available. mimalloc \"is a general purpose allocator with excellent " @@ -1042,46 +1049,46 @@ msgid "" "runtime systems of the Koka and Lean languages.\"" msgstr "" -#: c-api/memory.rst:699 +#: c-api/memory.rst:703 msgid "tracemalloc C API" msgstr "" -#: c-api/memory.rst:705 +#: c-api/memory.rst:709 msgid "Track an allocated memory block in the :mod:`tracemalloc` module." msgstr "" -#: c-api/memory.rst:707 +#: c-api/memory.rst:711 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:710 +#: c-api/memory.rst:714 msgid "If memory block is already tracked, update the existing trace." msgstr "" -#: c-api/memory.rst:714 +#: c-api/memory.rst:718 msgid "" "Untrack an allocated memory block in the :mod:`tracemalloc` module. Do " "nothing if the block was not tracked." msgstr "" -#: c-api/memory.rst:717 +#: c-api/memory.rst:721 msgid "Return ``-2`` if tracemalloc is disabled, otherwise return ``0``." msgstr "" -#: c-api/memory.rst:723 +#: c-api/memory.rst:727 msgid "Examples" msgstr "" -#: c-api/memory.rst:725 +#: c-api/memory.rst:729 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:728 +#: c-api/memory.rst:732 msgid "" "PyObject *res;\n" "char *buf = (char *) PyMem_Malloc(BUFSIZ); /* for I/O */\n" @@ -1094,11 +1101,11 @@ msgid "" "return res;" msgstr "" -#: c-api/memory.rst:738 +#: c-api/memory.rst:742 msgid "The same code using the type-oriented function set::" msgstr "" -#: c-api/memory.rst:740 +#: c-api/memory.rst:744 msgid "" "PyObject *res;\n" "char *buf = PyMem_New(char, BUFSIZ); /* for I/O */\n" @@ -1111,7 +1118,7 @@ msgid "" "return res;" msgstr "" -#: c-api/memory.rst:750 +#: c-api/memory.rst:754 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 " @@ -1121,7 +1128,7 @@ msgid "" "different allocators operating on different heaps. ::" msgstr "" -#: c-api/memory.rst:757 +#: c-api/memory.rst:761 msgid "" "char *buf1 = PyMem_New(char, BUFSIZ);\n" "char *buf2 = (char *) malloc(BUFSIZ);\n" @@ -1132,14 +1139,14 @@ msgid "" "free(buf1); /* Fatal -- should be PyMem_Del() */" msgstr "" -#: c-api/memory.rst:765 +#: c-api/memory.rst:769 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_Del`." msgstr "" -#: c-api/memory.rst:769 +#: c-api/memory.rst:773 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 e2d1e2a1..5310de9c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 c28e9394..b721c723 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 abfa001a..1ac094f2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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:272 c-api/module.rst:474 +#: c-api/module.rst:286 c-api/module.rst:510 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,29 +120,42 @@ 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 "Initializing C modules" msgstr "" -#: c-api/module.rst:135 +#: c-api/module.rst:149 msgid "" "Modules objects are usually created from extension modules (shared libraries " "which export an initialization function), or compiled-in modules (where the " @@ -137,55 +163,55 @@ msgid "" "See :ref:`building` or :ref:`extending-with-embedding` for details." msgstr "" -#: c-api/module.rst:140 +#: c-api/module.rst:154 msgid "" "The initialization function can either pass a module definition instance to :" "c:func:`PyModule_Create`, and return the resulting module object, or request " "\"multi-phase initialization\" by returning the definition struct itself." msgstr "" -#: c-api/module.rst:146 +#: c-api/module.rst:160 msgid "" "The module definition struct, which holds all information needed to create a " "module object. There is usually only one statically initialized variable of " "this type for each module." msgstr "" -#: c-api/module.rst:152 +#: c-api/module.rst:166 msgid "Always initialize this member to :c:macro:`PyModuleDef_HEAD_INIT`." msgstr "" -#: c-api/module.rst:156 +#: c-api/module.rst:170 msgid "Name for the new module." msgstr "" -#: c-api/module.rst:160 +#: c-api/module.rst:174 msgid "" "Docstring for the module; usually a docstring variable created with :c:macro:" "`PyDoc_STRVAR` is used." msgstr "" -#: c-api/module.rst:165 +#: c-api/module.rst:179 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:169 +#: c-api/module.rst:183 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:173 +#: c-api/module.rst:187 msgid "" "Setting ``m_size`` to ``-1`` means that the module does not support sub-" "interpreters, because it has global state." msgstr "" -#: c-api/module.rst:176 +#: c-api/module.rst:190 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 " @@ -193,36 +219,36 @@ msgid "" "initialization." msgstr "" -#: c-api/module.rst:181 +#: c-api/module.rst:195 msgid "See :PEP:`3121` for more details." msgstr "" -#: c-api/module.rst:185 +#: c-api/module.rst:199 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:190 +#: c-api/module.rst:204 msgid "" "An array of slot definitions for multi-phase initialization, terminated by a " "``{0, NULL}`` entry. When using single-phase initialization, *m_slots* must " "be ``NULL``." msgstr "" -#: c-api/module.rst:196 +#: c-api/module.rst:210 msgid "" "Prior to version 3.5, this member was always set to ``NULL``, and was " "defined as:" msgstr "" -#: c-api/module.rst:203 +#: c-api/module.rst:217 msgid "" "A traversal function to call during GC traversal of the module object, or " "``NULL`` if not needed." msgstr "" -#: c-api/module.rst:221 c-api/module.rst:242 +#: c-api/module.rst:235 c-api/module.rst:256 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 " @@ -232,17 +258,17 @@ msgid "" "`PyModule_GetState`) is ``NULL``." msgstr "" -#: c-api/module.rst:234 c-api/module.rst:249 +#: c-api/module.rst:248 c-api/module.rst:263 msgid "No longer called before the module state is allocated." msgstr "" -#: c-api/module.rst:218 +#: c-api/module.rst:232 msgid "" "A clear function to call during GC clearing of the module object, or " "``NULL`` if not needed." msgstr "" -#: c-api/module.rst:228 +#: c-api/module.rst:242 msgid "" "Like :c:member:`PyTypeObject.tp_clear`, this function is not *always* called " "before a module is deallocated. For example, when reference counting is " @@ -251,85 +277,108 @@ msgid "" "directly." msgstr "" -#: c-api/module.rst:239 +#: c-api/module.rst:253 msgid "" "A function to call during deallocation of the module object, or ``NULL`` if " "not needed." msgstr "" -#: c-api/module.rst:253 +#: c-api/module.rst:267 msgid "Single-phase initialization" msgstr "" -#: c-api/module.rst:255 +#: c-api/module.rst:269 msgid "" "The module initialization function may create and return the module object " "directly. This is referred to as \"single-phase initialization\", and uses " "one of the following two module creation functions:" msgstr "" -#: c-api/module.rst:261 +#: c-api/module.rst:275 msgid "" "Create a new module object, given the definition in *def*. This behaves " "like :c:func:`PyModule_Create2` with *module_api_version* set to :c:macro:" "`PYTHON_API_VERSION`." msgstr "" -#: c-api/module.rst:268 +#: c-api/module.rst:282 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:276 +#: c-api/module.rst:290 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:279 +#: c-api/module.rst:293 msgid "" "Before it is returned from in the initialization function, the resulting " "module object is typically populated using functions like :c:func:" "`PyModule_AddObjectRef`." msgstr "" -#: c-api/module.rst:285 +#: c-api/module.rst:299 msgid "Multi-phase initialization" msgstr "" -#: c-api/module.rst:287 +#: c-api/module.rst:301 msgid "" "An alternate way to specify extensions is to request \"multi-phase " "initialization\". Extension modules created this way behave more like Python " "modules: the initialization is split between the *creation phase*, when the " "module object is created, and the *execution phase*, when it is populated. " -"The distinction is similar to the :py:meth:`!__new__` and :py:meth:`!" -"__init__` methods of classes." +"The distinction is similar to the :py:meth:`~object.__new__` and :py:meth:" +"`~object.__init__` methods of classes." msgstr "" -#: c-api/module.rst:294 +#: c-api/module.rst:308 msgid "" "Unlike modules created using single-phase initialization, these modules are " -"not singletons: if the *sys.modules* entry is removed and the module is re-" -"imported, a new module object is created, and the old module is subject to " -"normal garbage collection -- as with Python modules. By default, multiple " -"modules created from the same definition should be independent: changes to " -"one should not affect the others. This means that all state should be " -"specific to the module object (using e.g. using :c:func:" -"`PyModule_GetState`), or its contents (such as the module's :attr:`~object." -"__dict__` or individual classes created with :c:func:`PyType_FromSpec`)." +"not singletons. For example, if the :py:attr:`sys.modules` entry is removed " +"and the module is re-imported, a new module object is created, and typically " +"populated with fresh method and type objects. The old module is subject to " +"normal garbage collection. This mirrors the behavior of pure-Python modules." +msgstr "" + +#: c-api/module.rst:316 +msgid "" +"Additional module instances may be created in :ref:`sub-interpreters ` or after after Python runtime reinitialization (:c:" +"func:`Py_Finalize` and :c:func:`Py_Initialize`). In these cases, sharing " +"Python objects between module instances would likely cause crashes or " +"undefined behavior." +msgstr "" + +#: c-api/module.rst:323 +msgid "" +"To avoid such issues, each instance of an extension module should be " +"*isolated*: changes to one instance should not implicitly affect the others, " +"and all state, including references to Python objects, should be specific to " +"a particular module instance. See :ref:`isolating-extensions-howto` for more " +"details and a practical guide." +msgstr "" + +#: c-api/module.rst:329 +msgid "" +"A simpler way to avoid these issues is :ref:`raising an error on repeated " +"initialization `." msgstr "" -#: c-api/module.rst:304 +#: c-api/module.rst:332 msgid "" "All modules created using multi-phase initialization are expected to " -"support :ref:`sub-interpreters `. Making sure " -"multiple modules are independent is typically enough to achieve this." +"support :ref:`sub-interpreters `, or otherwise " +"explicitly signal a lack of support. This is usually achieved by isolation " +"or blocking repeated initialization, as above. A module may also be limited " +"to the main interpreter using the :c:data:`Py_mod_multiple_interpreters` " +"slot." msgstr "" -#: c-api/module.rst:308 +#: c-api/module.rst:340 msgid "" "To request multi-phase initialization, the initialization function " "(PyInit_modulename) returns a :c:type:`PyModuleDef` instance with non-empty :" @@ -337,65 +386,65 @@ msgid "" "instance must be initialized with the following function:" msgstr "" -#: c-api/module.rst:315 +#: c-api/module.rst:347 msgid "" "Ensures a module definition is a properly initialized Python object that " "correctly reports its type and reference count." msgstr "" -#: c-api/module.rst:318 +#: c-api/module.rst:350 msgid "Returns *def* cast to ``PyObject*``, or ``NULL`` if an error occurred." msgstr "" -#: c-api/module.rst:322 +#: c-api/module.rst:354 msgid "" "The *m_slots* member of the module definition must point to an array of " "``PyModuleDef_Slot`` structures:" msgstr "" -#: c-api/module.rst:329 +#: c-api/module.rst:361 msgid "A slot ID, chosen from the available values explained below." msgstr "" -#: c-api/module.rst:333 +#: c-api/module.rst:365 msgid "Value of the slot, whose meaning depends on the slot ID." msgstr "" -#: c-api/module.rst:337 +#: c-api/module.rst:369 msgid "The *m_slots* array must be terminated by a slot with id 0." msgstr "" -#: c-api/module.rst:339 +#: c-api/module.rst:371 msgid "The available slot types are:" msgstr "" -#: c-api/module.rst:343 +#: c-api/module.rst:375 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:350 +#: c-api/module.rst:382 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:355 +#: c-api/module.rst:387 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:359 +#: c-api/module.rst:391 msgid "" "Multiple ``Py_mod_create`` slots may not be specified in one module " "definition." msgstr "" -#: c-api/module.rst:362 +#: c-api/module.rst:394 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 " @@ -404,7 +453,7 @@ msgid "" "through symlinks, all while sharing a single module definition." msgstr "" -#: c-api/module.rst:368 +#: c-api/module.rst:400 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 " @@ -414,7 +463,7 @@ msgid "" "``Py_mod_create``." msgstr "" -#: c-api/module.rst:377 +#: c-api/module.rst:411 msgid "" "Specifies a function that is called to *execute* the module. This is " "equivalent to executing the code of a Python module: typically, this " @@ -422,61 +471,61 @@ msgid "" "function is:" msgstr "" -#: c-api/module.rst:386 +#: c-api/module.rst:420 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:424 +#: c-api/module.rst:460 msgid "Specifies one of the following values:" msgstr "" -#: c-api/module.rst:397 +#: c-api/module.rst:433 msgid "The module does not support being imported in subinterpreters." msgstr "" -#: c-api/module.rst:401 +#: c-api/module.rst:437 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:407 +#: c-api/module.rst:443 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:411 +#: c-api/module.rst:447 msgid "" "This slot determines whether or not importing this module in a " "subinterpreter will fail." msgstr "" -#: c-api/module.rst:414 +#: c-api/module.rst:450 msgid "" "Multiple ``Py_mod_multiple_interpreters`` slots may not be specified in one " "module definition." msgstr "" -#: c-api/module.rst:417 +#: c-api/module.rst:453 msgid "" "If ``Py_mod_multiple_interpreters`` is not specified, the import machinery " "defaults to ``Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED``." msgstr "" -#: c-api/module.rst:430 +#: c-api/module.rst:466 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:435 +#: c-api/module.rst:471 msgid "The module is safe to run without an active GIL." msgstr "" -#: c-api/module.rst:437 +#: c-api/module.rst:473 msgid "" "This slot is ignored by Python builds not configured with :option:`--disable-" "gil`. Otherwise, it determines whether or not importing this module will " @@ -484,26 +533,26 @@ msgid "" "threaded-cpython` for more detail." msgstr "" -#: c-api/module.rst:442 +#: c-api/module.rst:478 msgid "" "Multiple ``Py_mod_gil`` slots may not be specified in one module definition." msgstr "" -#: c-api/module.rst:444 +#: c-api/module.rst:480 msgid "" "If ``Py_mod_gil`` is not specified, the import machinery defaults to " "``Py_MOD_GIL_USED``." msgstr "" -#: c-api/module.rst:449 +#: c-api/module.rst:485 msgid "See :PEP:`489` for more details on multi-phase initialization." msgstr "" -#: c-api/module.rst:452 +#: c-api/module.rst:488 msgid "Low-level module creation functions" msgstr "" -#: c-api/module.rst:454 +#: c-api/module.rst:490 msgid "" "The following functions are called under the hood when using multi-phase " "initialization. They can be used directly, for example when creating module " @@ -511,14 +560,14 @@ msgid "" "``PyModule_ExecDef`` must be called to fully initialize a module." msgstr "" -#: c-api/module.rst:461 +#: c-api/module.rst:497 msgid "" "Create a new module object, given the definition in *def* and the ModuleSpec " "*spec*. This behaves like :c:func:`PyModule_FromDefAndSpec2` with " "*module_api_version* set to :c:macro:`PYTHON_API_VERSION`." msgstr "" -#: c-api/module.rst:469 +#: c-api/module.rst:505 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 " @@ -526,24 +575,24 @@ msgid "" "emitted." msgstr "" -#: c-api/module.rst:478 +#: c-api/module.rst:514 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:485 +#: c-api/module.rst:521 msgid "Process any execution slots (:c:data:`Py_mod_exec`) given in *def*." msgstr "" -#: c-api/module.rst:491 +#: c-api/module.rst:527 msgid "" "Set the docstring for *module* to *docstring*. This function is called " "automatically when creating a module from ``PyModuleDef``, using either " "``PyModule_Create`` or ``PyModule_FromDefAndSpec``." msgstr "" -#: c-api/module.rst:500 +#: c-api/module.rst:536 msgid "" "Add the functions from the ``NULL`` terminated *functions* array to " "*module*. Refer to the :c:type:`PyMethodDef` documentation for details on " @@ -555,11 +604,17 @@ msgid "" "``PyModule_FromDefAndSpec``." msgstr "" -#: c-api/module.rst:512 +#: c-api/module.rst:545 +msgid "" +"The *functions* array must be statically allocated (or otherwise guaranteed " +"to outlive the module object)." +msgstr "" + +#: c-api/module.rst:551 msgid "Support functions" msgstr "" -#: c-api/module.rst:514 +#: c-api/module.rst:553 msgid "" "The module initialization function (if using single phase initialization) or " "a function called from a module execution slot (if using multi-phase " @@ -567,22 +622,22 @@ msgid "" "module state:" msgstr "" -#: c-api/module.rst:521 +#: c-api/module.rst:560 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:524 +#: c-api/module.rst:563 msgid "" "On success, return ``0``. On error, raise an exception and return ``-1``." msgstr "" -#: c-api/module.rst:577 c-api/module.rst:604 +#: c-api/module.rst:616 c-api/module.rst:643 msgid "Example usage::" msgstr "" -#: c-api/module.rst:528 +#: c-api/module.rst:567 msgid "" "static int\n" "add_spam(PyObject *module, int value)\n" @@ -597,20 +652,20 @@ msgid "" " }" msgstr "" -#: c-api/module.rst:540 +#: c-api/module.rst:579 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:544 +#: c-api/module.rst:583 msgid "" "The example can also be written without checking explicitly if *obj* is " "``NULL``::" msgstr "" -#: c-api/module.rst:547 +#: c-api/module.rst:586 msgid "" "static int\n" "add_spam(PyObject *module, int value)\n" @@ -622,13 +677,13 @@ msgid "" " }" msgstr "" -#: c-api/module.rst:556 +#: c-api/module.rst:595 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:559 +#: c-api/module.rst:598 msgid "" "The number of different *name* strings passed to this function should be " "kept small, usually by only using statically allocated strings as *name*. " @@ -638,7 +693,7 @@ msgid "" "internally to create a key object." msgstr "" -#: c-api/module.rst:572 +#: c-api/module.rst:611 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 " @@ -646,39 +701,39 @@ msgid "" "variable." msgstr "" -#: c-api/module.rst:579 +#: c-api/module.rst:618 msgid "" "if (PyModule_Add(module, \"spam\", PyBytes_FromString(value)) < 0) {\n" " goto error;\n" "}" msgstr "" -#: c-api/module.rst:588 +#: c-api/module.rst:627 msgid "" "Similar to :c:func:`PyModule_AddObjectRef`, but steals a reference to " "*value* on success (if it returns ``0``)." msgstr "" -#: c-api/module.rst:591 +#: c-api/module.rst:630 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:598 +#: c-api/module.rst:637 msgid "" "Unlike other functions that steal references, ``PyModule_AddObject()`` only " "releases the reference to *value* **on success**." msgstr "" -#: c-api/module.rst:601 +#: c-api/module.rst:640 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:606 +#: c-api/module.rst:645 msgid "" "PyObject *obj = PyBytes_FromString(value);\n" "if (PyModule_AddObject(module, \"spam\", obj) < 0) {\n" @@ -692,24 +747,24 @@ msgid "" "// Py_XDECREF(obj) is not needed here." msgstr "" -#: c-api/module.rst:619 +#: c-api/module.rst:658 msgid ":c:func:`PyModule_AddObject` is :term:`soft deprecated`." msgstr "" -#: c-api/module.rst:624 +#: c-api/module.rst:663 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:628 +#: c-api/module.rst:667 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:634 +#: c-api/module.rst:673 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 " @@ -717,14 +772,14 @@ msgid "" "on success." msgstr "" -#: c-api/module.rst:639 +#: c-api/module.rst:678 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:646 +#: c-api/module.rst:685 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 " @@ -732,11 +787,11 @@ msgid "" "with an exception set on error, ``0`` on success." msgstr "" -#: c-api/module.rst:654 +#: c-api/module.rst:693 msgid "Add a string constant to *module*." msgstr "" -#: c-api/module.rst:658 +#: c-api/module.rst:697 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 " @@ -744,7 +799,7 @@ msgid "" "``-1`` with an exception set on error, ``0`` on success." msgstr "" -#: c-api/module.rst:668 +#: c-api/module.rst:707 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`. " @@ -755,25 +810,25 @@ msgid "" "Return ``-1`` with an exception set on error, ``0`` on success." msgstr "" -#: c-api/module.rst:681 +#: c-api/module.rst:720 msgid "Module lookup" msgstr "" -#: c-api/module.rst:683 +#: c-api/module.rst:722 msgid "" "Single-phase initialization creates singleton modules that can be looked up " "in the context of the current interpreter. This allows the module object to " "be retrieved later with only a reference to the module definition." msgstr "" -#: c-api/module.rst:687 +#: c-api/module.rst:726 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:692 +#: c-api/module.rst:731 msgid "" "Returns the module object that was created from *def* for the current " "interpreter. This method requires that the module object has been attached " @@ -782,18 +837,18 @@ msgid "" "to the interpreter state yet, it returns ``NULL``." msgstr "" -#: c-api/module.rst:699 +#: c-api/module.rst:738 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:702 +#: c-api/module.rst:741 msgid "Only effective on modules created using single-phase initialization." msgstr "" -#: c-api/module.rst:704 +#: c-api/module.rst:743 msgid "" "Python calls ``PyState_AddModule`` automatically after importing a module, " "so it is unnecessary (but harmless) to call it from module initialization " @@ -804,15 +859,15 @@ msgid "" "state updates)." msgstr "" -#: c-api/module.rst:723 +#: c-api/module.rst:762 msgid "The caller must hold the GIL." msgstr "" -#: c-api/module.rst:714 +#: c-api/module.rst:753 msgid "Return ``-1`` with an exception set on error, ``0`` on success." msgstr "" -#: c-api/module.rst:720 +#: c-api/module.rst:759 msgid "" "Removes the module object created from *def* from the interpreter state. " "Return ``-1`` with an exception set on error, ``0`` on success." @@ -830,7 +885,7 @@ msgstr "" msgid "ModuleType (in module types)" msgstr "" -#: c-api/module.rst:77 +#: c-api/module.rst:80 msgid "__name__ (module attribute)" msgstr "" @@ -838,7 +893,7 @@ msgstr "" msgid "__doc__ (module attribute)" msgstr "" -#: c-api/module.rst:108 +#: c-api/module.rst:119 msgid "__file__ (module attribute)" msgstr "" @@ -854,6 +909,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 30580af1..da4dc31a 100644 --- a/c-api/monitoring.po +++ b/c-api/monitoring.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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" @@ -163,7 +164,7 @@ msgstr "" #: c-api/monitoring.rst:133 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:138 diff --git a/c-api/none.po b/c-api/none.po index b049c4a3..302222f3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 70328478..70db1bd5 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 35509fa1..19f801f3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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:328 c-api/object.rst:404 c-api/object.rst:459 msgid "built-in function" msgstr "" diff --git a/c-api/objimpl.po b/c-api/objimpl.po index 09257b92..09427b48 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3b68dacb..1c53d7f1 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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..214f71cf --- /dev/null +++ b/c-api/picklebuffer.po @@ -0,0 +1,100 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001-2025, 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.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-27 09:00+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 466542df..1df6f136 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -270,7 +270,7 @@ msgstr "" #: c-api/refcounting.rst:204 msgid "" -"That arranges to set *dst* to *src* _before_ releasing the reference to the " +"That arranges to set *dst* to *src* *before* releasing the reference to the " "old value of *dst*, so that any code triggered as a side-effect of *dst* " "getting torn down no longer believes *dst* points to a valid object." msgstr "" diff --git a/c-api/reflection.po b/c-api/reflection.po index 5ba34cda..baacba86 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a31a3ea7..6cb9a5f3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 65164a44..b04beec9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 8f3b2e8e..a108b3c2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3e4f9c96..939da517 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 f0bc75bf..ab16c461 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -467,20 +467,38 @@ msgid "" "wrapper object calls." msgstr "" -#: c-api/structures.rst:409 +#: c-api/structures.rst:410 +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:416 +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:422 +msgid "" +"This is the same as :c:func:`PyCMethod_Check`, but does not account for " +"subtypes." +msgstr "" + +#: c-api/structures.rst:428 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:432 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:436 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 +506,151 @@ msgid "" "can be set to :const:`None` or ``NULL``." msgstr "" -#: c-api/structures.rst:423 +#: c-api/structures.rst:442 msgid ":attr:`function.__module__`" msgstr "" -#: c-api/structures.rst:425 +#: c-api/structures.rst:444 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:453 +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:459 +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:465 +msgid "" +"This is the same as :c:func:`PyCFunction_Check`, but does not account for " +"subtypes." +msgstr "" + +#: c-api/structures.rst:471 msgid "Equivalent to ``PyCMethod_New(ml, self, module, NULL)``." msgstr "" -#: c-api/structures.rst:439 +#: c-api/structures.rst:476 msgid "Equivalent to ``PyCMethod_New(ml, self, NULL, NULL)``." msgstr "" -#: c-api/structures.rst:443 +#: c-api/structures.rst:481 +msgid "" +"Get the function's flags on *func* as they were passed to :c:member:" +"`~PyMethodDef.ml_flags`." +msgstr "" + +#: c-api/structures.rst:502 c-api/structures.rst:522 +msgid "" +"If *func* is not a C function object, this fails with an exception. *func* " +"must not be ``NULL``." +msgstr "" + +#: c-api/structures.rst:487 +msgid "" +"This function returns the function's flags on success, and ``-1`` with an " +"exception set on failure." +msgstr "" + +#: c-api/structures.rst:493 +msgid "" +"This is the same as :c:func:`PyCFunction_GetFlags`, but without error or " +"type checking." +msgstr "" + +#: c-api/structures.rst:499 +msgid "" +"Get the function pointer on *func* as it was passed to :c:member:" +"`~PyMethodDef.ml_meth`." +msgstr "" + +#: c-api/structures.rst:505 +msgid "" +"This function returns the function pointer on success, and ``NULL`` with an " +"exception set on failure." +msgstr "" + +#: c-api/structures.rst:511 +msgid "" +"This is the same as :c:func:`PyCFunction_GetFunction`, but without error or " +"type checking." +msgstr "" + +#: c-api/structures.rst:517 +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:525 +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:531 +msgid "" +"This is the same as :c:func:`PyCFunction_GetSelf`, but without error or type " +"checking." +msgstr "" + +#: c-api/structures.rst:536 msgid "Accessing attributes of extension types" msgstr "" -#: c-api/structures.rst:447 +#: c-api/structures.rst:540 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:545 msgid "Its fields are, in order:" msgstr "" -#: c-api/structures.rst:456 +#: c-api/structures.rst:549 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:552 msgid "The string should be static, no copy is made of it." msgstr "" -#: c-api/structures.rst:463 +#: c-api/structures.rst:556 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:561 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:565 msgid "" "Zero or more of the :ref:`PyMemberDef-flags`, combined using bitwise OR." msgstr "" -#: c-api/structures.rst:476 +#: c-api/structures.rst:569 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:573 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 +659,7 @@ msgid "" "`T_OBJECT`) members can be deleted." msgstr "" -#: c-api/structures.rst:489 +#: c-api/structures.rst:582 msgid "" "For heap-allocated types (created using :c:func:`PyType_FromSpec` or " "similar), ``PyMemberDef`` may contain a definition for the special member " @@ -570,7 +668,7 @@ msgid "" "``Py_T_PYSSIZET`` and ``Py_READONLY``, for example::" msgstr "" -#: c-api/structures.rst:495 +#: c-api/structures.rst:588 msgid "" "static PyMemberDef spam_type_members[] = {\n" " {\"__vectorcalloffset__\", Py_T_PYSSIZET,\n" @@ -579,11 +677,11 @@ msgid "" "};" msgstr "" -#: c-api/structures.rst:501 +#: c-api/structures.rst:594 msgid "(You may need to ``#include `` for :c:func:`!offsetof`.)" msgstr "" -#: c-api/structures.rst:503 +#: c-api/structures.rst:596 msgid "" "The legacy offsets :c:member:`~PyTypeObject.tp_dictoffset` and :c:member:" "`~PyTypeObject.tp_weaklistoffset` can be defined similarly using " @@ -592,77 +690,77 @@ msgid "" "and :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` instead." msgstr "" -#: c-api/structures.rst:511 +#: c-api/structures.rst:604 msgid "" "``PyMemberDef`` is always available. Previously, it required including " "``\"structmember.h\"``." msgstr "" -#: c-api/structures.rst:516 +#: c-api/structures.rst:609 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:522 +#: c-api/structures.rst:615 msgid "" "``PyMember_GetOne`` is always available. Previously, it required including " "``\"structmember.h\"``." msgstr "" -#: c-api/structures.rst:527 +#: c-api/structures.rst:620 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:533 +#: c-api/structures.rst:626 msgid "" "``PyMember_SetOne`` is always available. Previously, it required including " "``\"structmember.h\"``." msgstr "" -#: c-api/structures.rst:539 +#: c-api/structures.rst:632 msgid "Member flags" msgstr "" -#: c-api/structures.rst:541 +#: c-api/structures.rst:634 msgid "The following flags can be used with :c:member:`PyMemberDef.flags`:" msgstr "" -#: c-api/structures.rst:545 +#: c-api/structures.rst:638 msgid "Not writable." msgstr "" -#: c-api/structures.rst:549 +#: c-api/structures.rst:642 msgid "" "Emit an ``object.__getattr__`` :ref:`audit event ` before " "reading." msgstr "" -#: c-api/structures.rst:554 +#: c-api/structures.rst:647 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:558 +#: c-api/structures.rst:651 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." msgstr "" -#: c-api/structures.rst:563 +#: c-api/structures.rst:656 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:575 +#: c-api/structures.rst:668 msgid "" "The :c:macro:`!RESTRICTED`, :c:macro:`!READ_RESTRICTED` and :c:macro:`!" "WRITE_RESTRICTED` macros available with ``#include \"structmember.h\"`` are " @@ -671,7 +769,7 @@ msgid "" "nothing." msgstr "" -#: c-api/structures.rst:586 +#: c-api/structures.rst:679 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 " @@ -680,11 +778,11 @@ msgid "" "names." msgstr "" -#: c-api/structures.rst:595 +#: c-api/structures.rst:688 msgid "Member types" msgstr "" -#: c-api/structures.rst:597 +#: c-api/structures.rst:690 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 " @@ -693,143 +791,143 @@ msgid "" "exception such as :exc:`TypeError` or :exc:`ValueError` is raised." msgstr "" -#: c-api/structures.rst:605 +#: c-api/structures.rst:698 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:609 +#: c-api/structures.rst:702 msgid "Macro name" msgstr "" -#: c-api/structures.rst:609 +#: c-api/structures.rst:702 msgid "C type" msgstr "" -#: c-api/structures.rst:609 +#: c-api/structures.rst:702 msgid "Python type" msgstr "" -#: c-api/structures.rst:611 +#: c-api/structures.rst:704 msgid ":c:expr:`char`" msgstr "" -#: c-api/structures.rst:612 c-api/structures.rst:614 c-api/structures.rst:616 -#: c-api/structures.rst:618 c-api/structures.rst:620 c-api/structures.rst:621 +#: c-api/structures.rst:705 c-api/structures.rst:707 c-api/structures.rst:709 +#: c-api/structures.rst:711 c-api/structures.rst:713 c-api/structures.rst:714 msgid ":py:class:`int`" msgstr "" -#: c-api/structures.rst:612 +#: c-api/structures.rst:705 msgid ":c:expr:`short`" msgstr "" -#: c-api/structures.rst:613 +#: c-api/structures.rst:706 msgid ":c:expr:`int`" msgstr "" -#: c-api/structures.rst:614 +#: c-api/structures.rst:707 msgid ":c:expr:`long`" msgstr "" -#: c-api/structures.rst:615 +#: c-api/structures.rst:708 msgid ":c:expr:`long long`" msgstr "" -#: c-api/structures.rst:616 +#: c-api/structures.rst:709 msgid ":c:expr:`unsigned char`" msgstr "" -#: c-api/structures.rst:617 +#: c-api/structures.rst:710 msgid ":c:expr:`unsigned int`" msgstr "" -#: c-api/structures.rst:618 +#: c-api/structures.rst:711 msgid ":c:expr:`unsigned short`" msgstr "" -#: c-api/structures.rst:619 +#: c-api/structures.rst:712 msgid ":c:expr:`unsigned long`" msgstr "" -#: c-api/structures.rst:620 +#: c-api/structures.rst:713 msgid ":c:expr:`unsigned long long`" msgstr "" -#: c-api/structures.rst:621 +#: c-api/structures.rst:714 msgid ":c:expr:`Py_ssize_t`" msgstr "" -#: c-api/structures.rst:622 +#: c-api/structures.rst:715 msgid ":c:expr:`float`" msgstr "" -#: c-api/structures.rst:623 +#: c-api/structures.rst:716 msgid ":py:class:`float`" msgstr "" -#: c-api/structures.rst:623 +#: c-api/structures.rst:716 msgid ":c:expr:`double`" msgstr "" -#: c-api/structures.rst:624 +#: c-api/structures.rst:717 msgid ":c:expr:`char` (written as 0 or 1)" msgstr "" -#: c-api/structures.rst:624 +#: c-api/structures.rst:717 msgid ":py:class:`bool`" msgstr "" -#: c-api/structures.rst:626 +#: c-api/structures.rst:719 msgid ":c:expr:`const char *` (*)" msgstr "" -#: c-api/structures.rst:627 +#: c-api/structures.rst:720 msgid ":py:class:`str` (RO)" msgstr "" -#: c-api/structures.rst:627 +#: c-api/structures.rst:720 msgid ":c:expr:`const char[]` (*)" msgstr "" -#: c-api/structures.rst:628 +#: c-api/structures.rst:721 msgid ":c:expr:`char` (0-127)" msgstr "" -#: c-api/structures.rst:628 +#: c-api/structures.rst:721 msgid ":py:class:`str` (**)" msgstr "" -#: c-api/structures.rst:629 +#: c-api/structures.rst:722 msgid ":c:expr:`PyObject *`" msgstr "" -#: c-api/structures.rst:629 +#: c-api/structures.rst:722 msgid ":py:class:`object` (D)" msgstr "" -#: c-api/structures.rst:632 +#: c-api/structures.rst:725 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:637 +#: c-api/structures.rst:730 msgid "(**): String of length 1. Only ASCII is accepted." msgstr "" -#: c-api/structures.rst:639 +#: c-api/structures.rst:732 msgid "(RO): Implies :c:macro:`Py_READONLY`." msgstr "" -#: c-api/structures.rst:641 +#: c-api/structures.rst:734 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:667 +#: c-api/structures.rst:760 msgid "" "In previous versions, the macros were only available with ``#include " "\"structmember.h\"`` and were named without the ``Py_`` prefix (e.g. as " @@ -837,69 +935,69 @@ msgid "" "with the following deprecated types:" msgstr "" -#: c-api/structures.rst:675 +#: c-api/structures.rst:768 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:681 +#: c-api/structures.rst:774 msgid "Always ``None``. Must be used with :c:macro:`Py_READONLY`." msgstr "" -#: c-api/structures.rst:684 +#: c-api/structures.rst:777 msgid "Defining Getters and Setters" msgstr "" -#: c-api/structures.rst:688 +#: c-api/structures.rst:781 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:693 +#: c-api/structures.rst:786 msgid "attribute name" msgstr "" -#: c-api/structures.rst:697 +#: c-api/structures.rst:790 msgid "C function to get the attribute." msgstr "" -#: c-api/structures.rst:701 +#: c-api/structures.rst:794 msgid "" "Optional C function to set or delete the attribute. If ``NULL``, the " "attribute is read-only." msgstr "" -#: c-api/structures.rst:706 +#: c-api/structures.rst:799 msgid "optional docstring" msgstr "" -#: c-api/structures.rst:710 +#: c-api/structures.rst:803 msgid "" "Optional user data pointer, providing additional data for getter and setter." msgstr "" -#: c-api/structures.rst:714 +#: c-api/structures.rst:807 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:717 +#: c-api/structures.rst:810 msgid "" "It should return a new reference on success or ``NULL`` with a set exception " "on failure." msgstr "" -#: c-api/structures.rst:722 +#: c-api/structures.rst:815 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:725 +#: c-api/structures.rst:818 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." @@ -917,94 +1015,94 @@ msgstr "" msgid "staticmethod" msgstr "" -#: c-api/structures.rst:568 +#: c-api/structures.rst:661 msgid "READ_RESTRICTED (C macro)" msgstr "" -#: c-api/structures.rst:568 +#: c-api/structures.rst:661 msgid "WRITE_RESTRICTED (C macro)" msgstr "" -#: c-api/structures.rst:568 +#: c-api/structures.rst:661 msgid "RESTRICTED (C macro)" msgstr "" -#: c-api/structures.rst:581 +#: c-api/structures.rst:674 msgid "READONLY (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_BYTE (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_SHORT (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_INT (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_LONG (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_LONGLONG (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_UBYTE (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_USHORT (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_UINT (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_ULONG (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_ULONGULONG (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_PYSSIZET (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_FLOAT (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_DOUBLE (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_BOOL (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_CHAR (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_STRING (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_STRING_INPLACE (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "T_OBJECT_EX (C macro)" msgstr "" -#: c-api/structures.rst:644 +#: c-api/structures.rst:737 msgid "structmember.h" msgstr "" diff --git a/c-api/sys.po b/c-api/sys.po index 1e5cb94f..a8418187 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 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,42 +241,42 @@ 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:223 +#: c-api/sys.rst:241 msgid "System Functions" msgstr "" -#: c-api/sys.rst:225 +#: c-api/sys.rst:243 msgid "" "These are utility functions that make functionality from the :mod:`sys` " "module accessible to C code. They all work with the current interpreter " @@ -259,36 +284,36 @@ msgid "" "state structure." msgstr "" -#: c-api/sys.rst:231 +#: c-api/sys.rst:249 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:236 +#: c-api/sys.rst:254 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:242 +#: c-api/sys.rst:260 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:245 +#: c-api/sys.rst:263 msgid "Clear :data:`sys.warnoptions` and :data:`!warnings.filters` instead." msgstr "" -#: c-api/sys.rst:250 +#: c-api/sys.rst:268 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:253 +#: c-api/sys.rst:271 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 " @@ -299,48 +324,48 @@ msgid "" "of digits for very large numbers." msgstr "" -#: c-api/sys.rst:261 +#: c-api/sys.rst:279 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:266 +#: c-api/sys.rst:284 msgid "" "As :c:func:`PySys_WriteStdout`, but write to :data:`sys.stderr` or *stderr* " "instead." msgstr "" -#: c-api/sys.rst:271 +#: c-api/sys.rst:289 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:279 +#: c-api/sys.rst:297 msgid "" "As :c:func:`PySys_FormatStdout`, but write to :data:`sys.stderr` or *stderr* " "instead." msgstr "" -#: c-api/sys.rst:286 +#: c-api/sys.rst:304 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:295 +#: c-api/sys.rst:313 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:298 +#: c-api/sys.rst:316 msgid "The *event* string argument must not be *NULL*." msgstr "" -#: c-api/sys.rst:300 +#: c-api/sys.rst:318 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 " @@ -348,40 +373,40 @@ msgid "" "tuple, it will be added into a single-element tuple." msgstr "" -#: c-api/sys.rst:305 +#: c-api/sys.rst:323 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:309 +#: c-api/sys.rst:327 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:312 +#: c-api/sys.rst:330 msgid ":func:`sys.audit` performs the same function from Python code." msgstr "" -#: c-api/sys.rst:314 +#: c-api/sys.rst:332 msgid "See also :c:func:`PySys_AuditTuple`." msgstr "" -#: c-api/sys.rst:320 +#: c-api/sys.rst:338 msgid "" "Require :c:type:`Py_ssize_t` for ``#`` format characters. Previously, an " "unavoidable deprecation warning was raised." msgstr "" -#: c-api/sys.rst:326 +#: c-api/sys.rst:344 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:334 +#: c-api/sys.rst:352 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, " @@ -389,14 +414,14 @@ msgid "" "all interpreters created by the runtime." msgstr "" -#: c-api/sys.rst:340 +#: c-api/sys.rst:358 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:344 +#: c-api/sys.rst:362 msgid "" "This function is safe to call before :c:func:`Py_Initialize`. When called " "after runtime initialization, existing audit hooks are notified and may " @@ -404,20 +429,20 @@ msgid "" "`Exception` (other errors will not be silenced)." msgstr "" -#: c-api/sys.rst:349 +#: c-api/sys.rst:367 msgid "" "The hook function is always called with the GIL held by the Python " "interpreter that raised the event." msgstr "" -#: c-api/sys.rst:352 +#: c-api/sys.rst:370 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:359 +#: c-api/sys.rst:377 msgid "" "If the interpreter is initialized, this function raises an auditing event " "``sys.addaudithook`` with no arguments. If any existing hooks raise an " @@ -426,7 +451,7 @@ msgid "" "hook has been added unless they control all existing hooks." msgstr "" -#: c-api/sys.rst:368 +#: c-api/sys.rst:386 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 " @@ -434,11 +459,11 @@ msgid "" "PySys_AddAuditHook()." msgstr "" -#: c-api/sys.rst:380 +#: c-api/sys.rst:398 msgid "Process Control" msgstr "" -#: c-api/sys.rst:387 +#: c-api/sys.rst:405 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 " @@ -448,29 +473,29 @@ msgid "" "file:`core` file." msgstr "" -#: c-api/sys.rst:394 +#: c-api/sys.rst:412 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:398 +#: c-api/sys.rst:416 msgid "Log the function name automatically." msgstr "" -#: c-api/sys.rst:408 +#: c-api/sys.rst:426 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:412 +#: c-api/sys.rst:430 msgid "Errors from finalization no longer ignored." msgstr "" -#: c-api/sys.rst:422 +#: c-api/sys.rst:440 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 " @@ -482,7 +507,7 @@ msgid "" "should be called by *func*." msgstr "" -#: c-api/sys.rst:432 +#: c-api/sys.rst:450 msgid ":c:func:`PyUnstable_AtExit` for passing a ``void *data`` argument." msgstr "" @@ -490,18 +515,18 @@ msgstr "" msgid "USE_STACKCHECK (C macro)" msgstr "" -#: c-api/sys.rst:385 +#: c-api/sys.rst:403 msgid "abort (C function)" msgstr "" -#: c-api/sys.rst:418 +#: c-api/sys.rst:436 msgid "Py_FinalizeEx (C function)" msgstr "" -#: c-api/sys.rst:404 +#: c-api/sys.rst:422 msgid "exit (C function)" msgstr "" -#: c-api/sys.rst:418 +#: c-api/sys.rst:436 msgid "cleanup functions" msgstr "" diff --git a/c-api/time.po b/c-api/time.po index c0813e70..2dac5d74 100644 --- a/c-api/time.po +++ b/c-api/time.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/tuple.po b/c-api/tuple.po index 419fafda..0fe4c2f7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ad03c3d3..995d7e1f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -135,54 +135,86 @@ 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. Use Python's default memory allocation mechanism to allocate a new " "instance and initialize all its contents to ``NULL``." msgstr "" -#: c-api/type.rst:160 +#: c-api/type.rst:187 msgid "" "Generic handler for the :c:member:`~PyTypeObject.tp_new` slot of a type " "object. Create a new instance using the type's :c:member:`~PyTypeObject." "tp_alloc` slot." msgstr "" -#: c-api/type.rst:165 +#: c-api/type.rst:193 msgid "" "Finalize a type object. This should be called on all type objects to finish " "their initialization. This function is responsible for adding inherited " @@ -190,7 +222,7 @@ msgid "" "and sets an exception on error." msgstr "" -#: c-api/type.rst:171 +#: c-api/type.rst:199 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 " @@ -201,32 +233,32 @@ msgid "" "handle." msgstr "" -#: c-api/type.rst:181 +#: c-api/type.rst:210 msgid "" "Return the type's name. Equivalent to getting the type's :attr:`~type." "__name__` attribute." msgstr "" -#: c-api/type.rst:188 +#: c-api/type.rst:218 msgid "" "Return the type's qualified name. Equivalent to getting the type's :attr:" "`~type.__qualname__` attribute." msgstr "" -#: c-api/type.rst:195 +#: c-api/type.rst:225 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:203 +#: c-api/type.rst:234 msgid "" "Return the type's module name. Equivalent to getting the :attr:`type." "__module__` attribute." msgstr "" -#: c-api/type.rst:210 +#: c-api/type.rst:242 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 " @@ -234,30 +266,30 @@ msgid "" "result pointer into the appropriate function type." msgstr "" -#: c-api/type.rst:216 +#: c-api/type.rst:248 msgid "" "See :c:member:`PyType_Slot.slot` for possible values of the *slot* argument." msgstr "" -#: c-api/type.rst:220 +#: c-api/type.rst:252 msgid "" ":c:func:`PyType_GetSlot` can now accept all types. Previously, it was " "limited to :ref:`heap types `." msgstr "" -#: c-api/type.rst:226 +#: c-api/type.rst:259 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:249 +#: c-api/type.rst:283 msgid "" "If no module is associated with the given type, sets :py:class:`TypeError` " "and returns ``NULL``." msgstr "" -#: c-api/type.rst:232 +#: c-api/type.rst:265 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 " @@ -268,31 +300,31 @@ msgid "" "type:`!PyCMethod` cannot be used." msgstr "" -#: c-api/type.rst:245 +#: c-api/type.rst:279 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:252 +#: c-api/type.rst:286 msgid "" "If the *type* has an associated module but its state is ``NULL``, returns " "``NULL`` without setting an exception." msgstr "" -#: c-api/type.rst:259 +#: c-api/type.rst:294 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:262 +#: c-api/type.rst:297 msgid "" "If no module is found, raises a :py:class:`TypeError` and returns ``NULL``." msgstr "" -#: c-api/type.rst:264 +#: c-api/type.rst:299 msgid "" "This function is intended to be used together with :c:func:" "`PyModule_GetState()` to get module state from slot methods (such as :c:" @@ -301,40 +333,61 @@ msgid "" "type:`PyCMethod` calling convention." msgstr "" -#: c-api/type.rst:274 +#: c-api/type.rst:305 +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:314 msgid "Attempt to assign a version tag to the given type." msgstr "" -#: c-api/type.rst:276 +#: c-api/type.rst:316 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:283 +#: c-api/type.rst:324 +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:328 +msgid ":ref:`weakrefobjects`" +msgstr "" + +#: c-api/type.rst:329 +msgid ":py:mod:`weakref`" +msgstr "" + +#: c-api/type.rst:333 msgid "Creating Heap-Allocated Types" msgstr "" -#: c-api/type.rst:285 +#: c-api/type.rst:335 msgid "" "The following functions and structs are used to create :ref:`heap types " "`." msgstr "" -#: c-api/type.rst:290 +#: c-api/type.rst:340 msgid "" "Create and return a :ref:`heap type ` from the *spec* (see :c:" "macro:`Py_TPFLAGS_HEAPTYPE`)." msgstr "" -#: c-api/type.rst:293 +#: c-api/type.rst:343 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:297 +#: c-api/type.rst:347 msgid "" "Metaclasses that override :c:member:`~PyTypeObject.tp_new` are not " "supported, except if ``tp_new`` is ``NULL``. (For backwards compatibility, " @@ -343,7 +396,7 @@ msgid "" "deprecated and in Python 3.14+ such metaclasses will not be supported.)" msgstr "" -#: c-api/type.rst:304 +#: c-api/type.rst:354 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 " @@ -352,7 +405,7 @@ msgid "" "derives from :class:`object`." msgstr "" -#: c-api/type.rst:310 +#: c-api/type.rst:360 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``, " @@ -361,11 +414,11 @@ msgid "" "subclasses; it must be specified for each class individually." msgstr "" -#: c-api/type.rst:317 +#: c-api/type.rst:367 msgid "This function calls :c:func:`PyType_Ready` on the new type." msgstr "" -#: c-api/type.rst:319 +#: c-api/type.rst:369 msgid "" "Note that this function does *not* fully match the behavior of calling :py:" "class:`type() ` or using the :keyword:`class` statement. With user-" @@ -374,41 +427,41 @@ msgid "" "Specifically:" msgstr "" -#: c-api/type.rst:326 +#: c-api/type.rst:376 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:328 +#: c-api/type.rst:378 msgid ":py:meth:`~object.__init__` is not called on the new class." msgstr "" -#: c-api/type.rst:329 +#: c-api/type.rst:379 msgid ":py:meth:`~object.__init_subclass__` is not called on any bases." msgstr "" -#: c-api/type.rst:330 +#: c-api/type.rst:380 msgid ":py:meth:`~object.__set_name__` is not called on new descriptors." msgstr "" -#: c-api/type.rst:336 +#: c-api/type.rst:387 msgid "Equivalent to ``PyType_FromMetaclass(NULL, module, spec, bases)``." msgstr "" -#: c-api/type.rst:342 +#: c-api/type.rst:393 msgid "" "The function now accepts a single class as the *bases* argument and ``NULL`` " "as the ``tp_doc`` slot." msgstr "" -#: c-api/type.rst:364 +#: c-api/type.rst:416 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:367 c-api/type.rst:383 +#: c-api/type.rst:419 c-api/type.rst:436 msgid "" "The :c:member:`~PyTypeObject.tp_new` of the metaclass is *ignored*. which " "may result in incomplete initialization. Creating classes whose metaclass " @@ -416,42 +469,42 @@ msgid "" "it will be no longer allowed." msgstr "" -#: c-api/type.rst:358 +#: c-api/type.rst:410 msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, bases)``." msgstr "" -#: c-api/type.rst:375 +#: c-api/type.rst:428 msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, NULL)``." msgstr "" -#: c-api/type.rst:379 +#: c-api/type.rst:432 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:400 +#: c-api/type.rst:453 msgid "Structure defining a type's behavior." msgstr "" -#: c-api/type.rst:404 +#: c-api/type.rst:457 msgid "Name of the type, used to set :c:member:`PyTypeObject.tp_name`." msgstr "" -#: c-api/type.rst:408 +#: c-api/type.rst:461 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:411 +#: c-api/type.rst:464 msgid "" "If zero, specifies that :c:member:`~PyTypeObject.tp_basicsize` should be " "inherited." msgstr "" -#: c-api/type.rst:414 +#: c-api/type.rst:467 msgid "" "If negative, the absolute value specifies how much space instances of the " "class need *in addition* to the superclass. Use :c:func:" @@ -461,17 +514,17 @@ msgid "" "requirements." msgstr "" -#: c-api/type.rst:424 +#: c-api/type.rst:477 msgid "Previously, this field could not be negative." msgstr "" -#: c-api/type.rst:428 +#: c-api/type.rst:481 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:432 +#: c-api/type.rst:485 msgid "" "If zero, :c:member:`~PyTypeObject.tp_itemsize` is inherited. Extending " "arbitrary variable-sized classes is dangerous, since some types use a fixed " @@ -480,58 +533,58 @@ msgid "" "only possible in the following situations:" msgstr "" -#: c-api/type.rst:439 +#: c-api/type.rst:492 msgid "" "The base is not variable-sized (its :c:member:`~PyTypeObject.tp_itemsize`)." msgstr "" -#: c-api/type.rst:441 +#: c-api/type.rst:494 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:443 +#: c-api/type.rst:496 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:446 +#: c-api/type.rst:499 msgid "With the :c:macro:`Py_TPFLAGS_ITEMS_AT_END` flag." msgstr "" -#: c-api/type.rst:450 +#: c-api/type.rst:503 msgid "Type flags, used to set :c:member:`PyTypeObject.tp_flags`." msgstr "" -#: c-api/type.rst:452 +#: c-api/type.rst:505 msgid "" "If the ``Py_TPFLAGS_HEAPTYPE`` flag is not set, :c:func:" "`PyType_FromSpecWithBases` sets it automatically." msgstr "" -#: c-api/type.rst:457 +#: c-api/type.rst:510 msgid "" "Array of :c:type:`PyType_Slot` structures. Terminated by the special slot " "value ``{0, NULL}``." msgstr "" -#: c-api/type.rst:460 +#: c-api/type.rst:513 msgid "Each slot ID should be specified at most once." msgstr "" -#: c-api/type.rst:470 +#: c-api/type.rst:523 msgid "" "Structure defining optional functionality of a type, containing a slot ID " "and a value pointer." msgstr "" -#: c-api/type.rst:475 +#: c-api/type.rst:528 msgid "A slot ID." msgstr "" -#: c-api/type.rst:477 +#: c-api/type.rst:530 msgid "" "Slot IDs are named like the field names of the structures :c:type:" "`PyTypeObject`, :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, :c:" @@ -539,42 +592,42 @@ msgid "" "prefix. For example, use:" msgstr "" -#: c-api/type.rst:483 +#: c-api/type.rst:536 msgid "``Py_tp_dealloc`` to set :c:member:`PyTypeObject.tp_dealloc`" msgstr "" -#: c-api/type.rst:484 +#: c-api/type.rst:537 msgid "``Py_nb_add`` to set :c:member:`PyNumberMethods.nb_add`" msgstr "" -#: c-api/type.rst:485 +#: c-api/type.rst:538 msgid "``Py_sq_length`` to set :c:member:`PySequenceMethods.sq_length`" msgstr "" -#: c-api/type.rst:487 +#: c-api/type.rst:540 msgid "" "The following “offset” fields cannot be set using :c:type:`PyType_Slot`:" msgstr "" -#: c-api/type.rst:489 +#: c-api/type.rst:542 msgid "" ":c:member:`~PyTypeObject.tp_weaklistoffset` (use :c:macro:" "`Py_TPFLAGS_MANAGED_WEAKREF` instead if possible)" msgstr "" -#: c-api/type.rst:491 +#: c-api/type.rst:544 msgid "" ":c:member:`~PyTypeObject.tp_dictoffset` (use :c:macro:" "`Py_TPFLAGS_MANAGED_DICT` instead if possible)" msgstr "" -#: c-api/type.rst:493 +#: c-api/type.rst:546 msgid "" ":c:member:`~PyTypeObject.tp_vectorcall_offset` (use " "``\"__vectorcalloffset__\"`` in :ref:`PyMemberDef `)" msgstr "" -#: c-api/type.rst:497 +#: c-api/type.rst:550 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:" @@ -582,48 +635,48 @@ msgid "" "documentation ` for details." msgstr "" -#: c-api/type.rst:503 +#: c-api/type.rst:556 msgid "The following fields cannot be set at all when creating a heap type:" msgstr "" -#: c-api/type.rst:505 +#: c-api/type.rst:558 msgid "" ":c:member:`~PyTypeObject.tp_vectorcall` (use :c:member:`~PyTypeObject." "tp_new` and/or :c:member:`~PyTypeObject.tp_init`)" msgstr "" -#: c-api/type.rst:509 +#: c-api/type.rst:562 msgid "" "Internal fields: :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:516 +#: c-api/type.rst:569 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:521 +#: c-api/type.rst:574 msgid "Slots in :c:type:`PyBufferProcs` may be set in the unlimited API." msgstr "" -#: c-api/type.rst:524 +#: c-api/type.rst:577 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:531 +#: c-api/type.rst:584 msgid "" "The desired value of the slot. In most cases, this is a pointer to a " "function." msgstr "" -#: c-api/type.rst:534 +#: c-api/type.rst:587 msgid "Slots other than ``Py_tp_doc`` may not be ``NULL``." msgstr "" diff --git a/c-api/typehints.po b/c-api/typehints.po index 9b59edad..78f0e030 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3125184b..3a60db8d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -115,7 +115,7 @@ msgid ":c:member:`~PyTypeObject.tp_basicsize`" msgstr "" #: c-api/typeobj.rst:46 c-api/typeobj.rst:52 c-api/typeobj.rst:120 -#: c-api/typeobj.rst:416 +#: c-api/typeobj.rst:417 msgid ":c:type:`Py_ssize_t`" msgstr "" @@ -127,7 +127,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_dealloc`" msgstr "" -#: c-api/typeobj.rst:142 c-api/typeobj.rst:346 +#: c-api/typeobj.rst:142 c-api/typeobj.rst:347 msgid ":c:type:`destructor`" msgstr "" @@ -139,7 +139,7 @@ msgstr "" msgid "(:c:member:`~PyTypeObject.tp_getattr`)" msgstr "" -#: c-api/typeobj.rst:370 +#: c-api/typeobj.rst:371 msgid ":c:type:`getattrfunc`" msgstr "" @@ -156,7 +156,7 @@ msgstr "" msgid "(:c:member:`~PyTypeObject.tp_setattr`)" msgstr "" -#: c-api/typeobj.rst:375 +#: c-api/typeobj.rst:376 msgid ":c:type:`setattrfunc`" msgstr "" @@ -172,7 +172,7 @@ msgstr "" msgid ":c:type:`PyAsyncMethods` *" msgstr "" -#: c-api/typeobj.rst:64 c-api/typeobj.rst:68 +#: c-api/typeobj.rst:64 c-api/typeobj.rst:68 c-api/typeobj.rst:82 msgid ":ref:`sub-slots`" msgstr "" @@ -184,7 +184,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_repr`" msgstr "" -#: c-api/typeobj.rst:74 c-api/typeobj.rst:368 +#: c-api/typeobj.rst:74 c-api/typeobj.rst:369 msgid ":c:type:`reprfunc`" msgstr "" @@ -220,7 +220,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_hash`" msgstr "" -#: c-api/typeobj.rst:404 +#: c-api/typeobj.rst:405 msgid ":c:type:`hashfunc`" msgstr "" @@ -232,7 +232,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_call`" msgstr "" -#: c-api/typeobj.rst:237 c-api/typeobj.rst:440 +#: c-api/typeobj.rst:237 c-api/typeobj.rst:441 msgid ":c:type:`ternaryfunc`" msgstr "" @@ -252,7 +252,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_getattro`" msgstr "" -#: c-api/typeobj.rst:381 +#: c-api/typeobj.rst:382 msgid ":c:type:`getattrofunc`" msgstr "" @@ -260,7 +260,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_setattro`" msgstr "" -#: c-api/typeobj.rst:386 +#: c-api/typeobj.rst:387 msgid ":c:type:`setattrofunc`" msgstr "" @@ -297,7 +297,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_traverse`" msgstr "" -#: c-api/typeobj.rst:350 +#: c-api/typeobj.rst:351 msgid ":c:type:`traverseproc`" msgstr "" @@ -305,7 +305,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_clear`" msgstr "" -#: c-api/typeobj.rst:130 c-api/typeobj.rst:429 +#: c-api/typeobj.rst:130 c-api/typeobj.rst:430 msgid ":c:type:`inquiry`" msgstr "" @@ -313,7 +313,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_richcompare`" msgstr "" -#: c-api/typeobj.rst:406 +#: c-api/typeobj.rst:407 msgid ":c:type:`richcmpfunc`" msgstr "" @@ -329,7 +329,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_iter`" msgstr "" -#: c-api/typeobj.rst:412 +#: c-api/typeobj.rst:413 msgid ":c:type:`getiterfunc`" msgstr "" @@ -341,7 +341,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_iternext`" msgstr "" -#: c-api/typeobj.rst:414 +#: c-api/typeobj.rst:415 msgid ":c:type:`iternextfunc`" msgstr "" @@ -390,9 +390,9 @@ msgid ":c:member:`~PyTypeObject.tp_dict`" msgstr "" #: c-api/typeobj.rst:113 c-api/typeobj.rst:134 c-api/typeobj.rst:140 -#: c-api/typeobj.rst:346 c-api/typeobj.rst:368 c-api/typeobj.rst:381 -#: c-api/typeobj.rst:404 c-api/typeobj.rst:412 c-api/typeobj.rst:416 -#: c-api/typeobj.rst:431 c-api/typeobj.rst:440 c-api/typeobj.rst:446 +#: c-api/typeobj.rst:347 c-api/typeobj.rst:369 c-api/typeobj.rst:382 +#: c-api/typeobj.rst:405 c-api/typeobj.rst:413 c-api/typeobj.rst:417 +#: c-api/typeobj.rst:432 c-api/typeobj.rst:441 c-api/typeobj.rst:447 msgid ":c:type:`PyObject` *" msgstr "" @@ -404,7 +404,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_descr_get`" msgstr "" -#: c-api/typeobj.rst:392 +#: c-api/typeobj.rst:393 msgid ":c:type:`descrgetfunc`" msgstr "" @@ -416,7 +416,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_descr_set`" msgstr "" -#: c-api/typeobj.rst:398 +#: c-api/typeobj.rst:399 msgid ":c:type:`descrsetfunc`" msgstr "" @@ -432,7 +432,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_init`" msgstr "" -#: c-api/typeobj.rst:362 +#: c-api/typeobj.rst:363 msgid ":c:type:`initproc`" msgstr "" @@ -444,7 +444,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_alloc`" msgstr "" -#: c-api/typeobj.rst:341 +#: c-api/typeobj.rst:342 msgid ":c:type:`allocfunc`" msgstr "" @@ -452,7 +452,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_new`" msgstr "" -#: c-api/typeobj.rst:356 +#: c-api/typeobj.rst:357 msgid ":c:type:`newfunc`" msgstr "" @@ -464,7 +464,7 @@ msgstr "" msgid ":c:member:`~PyTypeObject.tp_free`" msgstr "" -#: c-api/typeobj.rst:348 +#: c-api/typeobj.rst:349 msgid ":c:type:`freefunc`" msgstr "" @@ -500,7 +500,7 @@ msgstr "" msgid "[:c:member:`~PyTypeObject.tp_subclasses`]" msgstr "" -#: c-api/typeobj.rst:138 c-api/typeobj.rst:348 +#: c-api/typeobj.rst:138 c-api/typeobj.rst:349 msgid "void *" msgstr "" @@ -630,7 +630,7 @@ msgid ":c:member:`~PyAsyncMethods.am_await`" msgstr "" #: c-api/typeobj.rst:206 c-api/typeobj.rst:242 c-api/typeobj.rst:246 -#: c-api/typeobj.rst:277 c-api/typeobj.rst:291 c-api/typeobj.rst:431 +#: c-api/typeobj.rst:277 c-api/typeobj.rst:291 c-api/typeobj.rst:432 msgid ":c:type:`unaryfunc`" msgstr "" @@ -670,7 +670,7 @@ msgstr "" #: c-api/typeobj.rst:232 c-api/typeobj.rst:252 c-api/typeobj.rst:257 #: c-api/typeobj.rst:262 c-api/typeobj.rst:267 c-api/typeobj.rst:272 #: c-api/typeobj.rst:283 c-api/typeobj.rst:287 c-api/typeobj.rst:293 -#: c-api/typeobj.rst:302 c-api/typeobj.rst:322 c-api/typeobj.rst:435 +#: c-api/typeobj.rst:302 c-api/typeobj.rst:322 c-api/typeobj.rst:436 msgid ":c:type:`binaryfunc`" msgstr "" @@ -958,7 +958,7 @@ msgstr "" msgid ":c:member:`~PyMappingMethods.mp_length`" msgstr "" -#: c-api/typeobj.rst:309 c-api/typeobj.rst:416 +#: c-api/typeobj.rst:309 c-api/typeobj.rst:417 msgid ":c:type:`lenfunc`" msgstr "" @@ -978,7 +978,7 @@ msgstr "" msgid ":c:member:`~PyMappingMethods.mp_ass_subscript`" msgstr "" -#: c-api/typeobj.rst:462 +#: c-api/typeobj.rst:463 msgid ":c:type:`objobjargproc`" msgstr "" @@ -1002,7 +1002,7 @@ msgstr "" msgid ":c:member:`~PySequenceMethods.sq_repeat`" msgstr "" -#: c-api/typeobj.rst:315 c-api/typeobj.rst:446 +#: c-api/typeobj.rst:315 c-api/typeobj.rst:447 msgid ":c:type:`ssizeargfunc`" msgstr "" @@ -1018,7 +1018,7 @@ msgstr "" msgid ":c:member:`~PySequenceMethods.sq_ass_item`" msgstr "" -#: c-api/typeobj.rst:451 +#: c-api/typeobj.rst:452 msgid ":c:type:`ssizeobjargproc`" msgstr "" @@ -1030,7 +1030,7 @@ msgstr "" msgid ":c:member:`~PySequenceMethods.sq_contains`" msgstr "" -#: c-api/typeobj.rst:457 +#: c-api/typeobj.rst:458 msgid ":c:type:`objobjproc`" msgstr "" @@ -1054,6 +1054,10 @@ msgstr "" msgid ":c:func:`getbufferproc`" msgstr "" +#: c-api/typeobj.rst:328 +msgid "__buffer__" +msgstr "" + #: c-api/typeobj.rst:330 msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`" msgstr "" @@ -1062,23 +1066,27 @@ msgstr "" msgid ":c:func:`releasebufferproc`" msgstr "" -#: c-api/typeobj.rst:336 +#: c-api/typeobj.rst:330 +msgid "__release_\\ buffer\\__" +msgstr "" + +#: c-api/typeobj.rst:337 msgid "slot typedefs" msgstr "" -#: c-api/typeobj.rst:339 +#: c-api/typeobj.rst:340 msgid "typedef" msgstr "" -#: c-api/typeobj.rst:339 +#: c-api/typeobj.rst:340 msgid "Parameter Types" msgstr "" -#: c-api/typeobj.rst:339 +#: c-api/typeobj.rst:340 msgid "Return Type" msgstr "" -#: c-api/typeobj.rst:348 c-api/typeobj.rst:424 +#: c-api/typeobj.rst:349 c-api/typeobj.rst:425 msgid "void" msgstr "" @@ -1086,16 +1094,16 @@ msgstr "" msgid ":c:type:`visitproc`" msgstr "" -#: c-api/typeobj.rst:350 c-api/typeobj.rst:375 c-api/typeobj.rst:398 -#: c-api/typeobj.rst:429 c-api/typeobj.rst:457 c-api/typeobj.rst:462 +#: c-api/typeobj.rst:351 c-api/typeobj.rst:376 c-api/typeobj.rst:399 +#: c-api/typeobj.rst:430 c-api/typeobj.rst:458 c-api/typeobj.rst:463 msgid "int" msgstr "" -#: c-api/typeobj.rst:404 +#: c-api/typeobj.rst:405 msgid "Py_hash_t" msgstr "" -#: c-api/typeobj.rst:418 +#: c-api/typeobj.rst:419 msgid ":c:type:`getbufferproc`" msgstr "" @@ -1103,26 +1111,26 @@ msgstr "" msgid ":c:type:`Py_buffer` *" msgstr "" -#: c-api/typeobj.rst:424 +#: c-api/typeobj.rst:425 msgid ":c:type:`releasebufferproc`" msgstr "" -#: c-api/typeobj.rst:469 +#: c-api/typeobj.rst:470 msgid "See :ref:`slot-typedefs` below for more detail." msgstr "" -#: c-api/typeobj.rst:473 +#: c-api/typeobj.rst:474 msgid "PyTypeObject Definition" msgstr "" -#: c-api/typeobj.rst:475 +#: c-api/typeobj.rst:476 msgid "" "The structure definition for :c:type:`PyTypeObject` can be found in :file:" "`Include/cpython/object.h`. For convenience of reference, this repeats the " "definition found there:" msgstr "" -#: c-api/typeobj.rst:481 +#: c-api/typeobj.rst:482 msgid "" "typedef struct _typeobject {\n" " PyObject_VAR_HEAD\n" @@ -1212,11 +1220,11 @@ msgid "" "} PyTypeObject;\n" msgstr "" -#: c-api/typeobj.rst:485 +#: c-api/typeobj.rst:486 msgid "PyObject Slots" msgstr "" -#: c-api/typeobj.rst:487 +#: c-api/typeobj.rst:488 msgid "" "The type object structure extends the :c:type:`PyVarObject` structure. The :" "c:member:`~PyVarObject.ob_size` field is used for dynamic types (created by :" @@ -1226,7 +1234,7 @@ msgid "" "the :c:member:`~PyVarObject.ob_size` field." msgstr "" -#: c-api/typeobj.rst:496 +#: c-api/typeobj.rst:497 msgid "" "This is the type object's reference count, initialized to ``1`` by the " "``PyObject_HEAD_INIT`` macro. Note that for :ref:`statically allocated type " @@ -1236,25 +1244,25 @@ msgid "" "instances *do* count as references." msgstr "" -#: c-api/typeobj.rst:526 c-api/typeobj.rst:587 c-api/typeobj.rst:741 -#: c-api/typeobj.rst:799 c-api/typeobj.rst:834 c-api/typeobj.rst:875 -#: c-api/typeobj.rst:899 c-api/typeobj.rst:954 c-api/typeobj.rst:995 -#: c-api/typeobj.rst:1040 c-api/typeobj.rst:1095 c-api/typeobj.rst:1116 -#: c-api/typeobj.rst:1140 c-api/typeobj.rst:1181 c-api/typeobj.rst:1212 -#: c-api/typeobj.rst:1278 c-api/typeobj.rst:1318 c-api/typeobj.rst:1370 -#: c-api/typeobj.rst:1481 c-api/typeobj.rst:1616 c-api/typeobj.rst:1677 -#: c-api/typeobj.rst:1713 c-api/typeobj.rst:1742 c-api/typeobj.rst:1804 -#: c-api/typeobj.rst:1848 c-api/typeobj.rst:1921 c-api/typeobj.rst:1979 -#: c-api/typeobj.rst:2033 c-api/typeobj.rst:2074 c-api/typeobj.rst:2101 -#: c-api/typeobj.rst:2132 c-api/typeobj.rst:2188 +#: c-api/typeobj.rst:527 c-api/typeobj.rst:588 c-api/typeobj.rst:744 +#: c-api/typeobj.rst:804 c-api/typeobj.rst:841 c-api/typeobj.rst:884 +#: c-api/typeobj.rst:908 c-api/typeobj.rst:967 c-api/typeobj.rst:1012 +#: c-api/typeobj.rst:1059 c-api/typeobj.rst:1114 c-api/typeobj.rst:1135 +#: c-api/typeobj.rst:1159 c-api/typeobj.rst:1200 c-api/typeobj.rst:1231 +#: c-api/typeobj.rst:1297 c-api/typeobj.rst:1337 c-api/typeobj.rst:1389 +#: c-api/typeobj.rst:1504 c-api/typeobj.rst:1643 c-api/typeobj.rst:1706 +#: c-api/typeobj.rst:1746 c-api/typeobj.rst:1779 c-api/typeobj.rst:1843 +#: c-api/typeobj.rst:1891 c-api/typeobj.rst:1966 c-api/typeobj.rst:2028 +#: c-api/typeobj.rst:2086 c-api/typeobj.rst:2129 c-api/typeobj.rst:2156 +#: c-api/typeobj.rst:2189 c-api/typeobj.rst:2249 msgid "**Inheritance:**" msgstr "" -#: c-api/typeobj.rst:545 c-api/typeobj.rst:589 +#: c-api/typeobj.rst:546 c-api/typeobj.rst:590 msgid "This field is not inherited by subtypes." msgstr "" -#: c-api/typeobj.rst:510 +#: c-api/typeobj.rst:511 msgid "" "This is the type's type, in other words its metatype. It is initialized by " "the argument to the ``PyObject_HEAD_INIT`` macro, and its value should " @@ -1266,11 +1274,11 @@ msgid "" "doing anything else. This is typically done like this::" msgstr "" -#: c-api/typeobj.rst:519 +#: c-api/typeobj.rst:520 msgid "Foo_Type.ob_type = &PyType_Type;" msgstr "" -#: c-api/typeobj.rst:521 +#: c-api/typeobj.rst:522 msgid "" "This should be done before any instances of the type are created. :c:func:" "`PyType_Ready` checks if :c:member:`~PyObject.ob_type` is ``NULL``, and if " @@ -1278,33 +1286,33 @@ msgid "" "class. :c:func:`PyType_Ready` will not change this field if it is non-zero." msgstr "" -#: c-api/typeobj.rst:743 c-api/typeobj.rst:956 c-api/typeobj.rst:1679 -#: c-api/typeobj.rst:1832 c-api/typeobj.rst:1923 c-api/typeobj.rst:2167 +#: c-api/typeobj.rst:746 c-api/typeobj.rst:969 c-api/typeobj.rst:1708 +#: c-api/typeobj.rst:1873 c-api/typeobj.rst:1968 c-api/typeobj.rst:2228 msgid "This field is inherited by subtypes." msgstr "" -#: c-api/typeobj.rst:532 +#: c-api/typeobj.rst:533 msgid "PyVarObject Slots" msgstr "" -#: c-api/typeobj.rst:536 +#: c-api/typeobj.rst:537 msgid "" "For :ref:`statically allocated type objects `, this should be " "initialized to zero. For :ref:`dynamically allocated type objects `, this field has a special internal meaning." msgstr "" -#: c-api/typeobj.rst:540 +#: c-api/typeobj.rst:541 msgid "" "This field should be accessed using the :c:func:`Py_SIZE()` and :c:func:" "`Py_SET_SIZE()` macros." msgstr "" -#: c-api/typeobj.rst:549 +#: c-api/typeobj.rst:550 msgid "PyTypeObject Slots" msgstr "" -#: c-api/typeobj.rst:551 +#: c-api/typeobj.rst:552 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 " @@ -1312,7 +1320,7 @@ msgid "" "`PyBaseObject_Type` and :c:data:`PyType_Type` effectively act as defaults.)" msgstr "" -#: c-api/typeobj.rst:558 +#: c-api/typeobj.rst:559 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 " @@ -1324,14 +1332,14 @@ msgid "" "tp_name` initializer ``\"P.Q.M.T\"``." msgstr "" -#: c-api/typeobj.rst:566 +#: c-api/typeobj.rst:567 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:571 +#: c-api/typeobj.rst:572 msgid "" "For :ref:`statically allocated type objects `, the *tp_name* " "field should contain a dot. Everything before the last dot is made " @@ -1339,7 +1347,7 @@ msgid "" "the last dot is made accessible as the :attr:`~type.__name__` attribute." msgstr "" -#: c-api/typeobj.rst:577 +#: c-api/typeobj.rst:578 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:" @@ -1349,19 +1357,19 @@ msgid "" "created with pydoc." msgstr "" -#: c-api/typeobj.rst:583 +#: c-api/typeobj.rst:584 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:595 +#: c-api/typeobj.rst:596 msgid "" "These fields allow calculating the size in bytes of instances of the type." msgstr "" -#: c-api/typeobj.rst:597 +#: c-api/typeobj.rst:598 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 " @@ -1371,7 +1379,7 @@ msgid "" "`PyUnstable_Object_GC_NewWithExtraData`.)" msgstr "" -#: c-api/typeobj.rst:604 +#: c-api/typeobj.rst:605 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:`!" @@ -1379,7 +1387,7 @@ msgid "" "\"length\" of the object." msgstr "" -#: c-api/typeobj.rst:609 +#: c-api/typeobj.rst:610 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` " @@ -1390,13 +1398,13 @@ msgid "" "`PyLong_Export`." msgstr "" -#: c-api/typeobj.rst:619 +#: c-api/typeobj.rst:620 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:622 +#: c-api/typeobj.rst:623 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. " @@ -1406,13 +1414,13 @@ msgid "" "`PyList_Size` instead.)" msgstr "" -#: c-api/typeobj.rst:629 +#: c-api/typeobj.rst:630 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:633 +#: c-api/typeobj.rst:634 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 " @@ -1421,7 +1429,7 @@ msgid "" "tp_basicsize`." msgstr "" -#: c-api/typeobj.rst:639 +#: c-api/typeobj.rst:640 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:" @@ -1430,23 +1438,23 @@ msgid "" "respectively." msgstr "" -#: c-api/typeobj.rst:645 +#: c-api/typeobj.rst:646 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:648 +#: c-api/typeobj.rst:649 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:651 +#: c-api/typeobj.rst:652 msgid "Notes about alignment:" msgstr "" -#: c-api/typeobj.rst:653 +#: c-api/typeobj.rst:654 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 " @@ -1455,7 +1463,7 @@ msgid "" "you." msgstr "" -#: c-api/typeobj.rst:658 +#: c-api/typeobj.rst:659 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 " @@ -1463,14 +1471,14 @@ msgid "" "your responsibility that both fields are a multiple of ``_Alignof(double)``." msgstr "" -#: c-api/typeobj.rst:667 +#: c-api/typeobj.rst:668 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:672 +#: c-api/typeobj.rst:673 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 " @@ -1478,7 +1486,7 @@ msgid "" "implementation of the base type)." msgstr "" -#: c-api/typeobj.rst:679 +#: c-api/typeobj.rst:682 msgid "" "A pointer to the instance destructor function. This function must be " "defined unless the type guarantees that its instances will never be " @@ -1486,11 +1494,11 @@ msgid "" "The function signature is::" msgstr "" -#: c-api/typeobj.rst:683 +#: c-api/typeobj.rst:686 msgid "void tp_dealloc(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:685 +#: c-api/typeobj.rst:688 msgid "" "The destructor function is called by the :c:func:`Py_DECREF` and :c:func:" "`Py_XDECREF` macros when the new reference count is zero. At this point, " @@ -1508,14 +1516,14 @@ msgid "" "allocated using :c:macro:`PyObject_GC_New` or :c:macro:`PyObject_GC_NewVar`." msgstr "" -#: c-api/typeobj.rst:700 +#: c-api/typeobj.rst:703 msgid "" "If the type supports garbage collection (has the :c:macro:" "`Py_TPFLAGS_HAVE_GC` flag bit set), the destructor should call :c:func:" "`PyObject_GC_UnTrack` before clearing any member fields." msgstr "" -#: c-api/typeobj.rst:704 +#: c-api/typeobj.rst:707 msgid "" "static void foo_dealloc(foo_object *self) {\n" " PyObject_GC_UnTrack(self);\n" @@ -1524,7 +1532,7 @@ msgid "" "}" msgstr "" -#: c-api/typeobj.rst:712 +#: c-api/typeobj.rst:715 msgid "" "Finally, if the type is heap allocated (:c:macro:`Py_TPFLAGS_HEAPTYPE`), the " "deallocator should release the owned reference to its type object (via :c:" @@ -1532,7 +1540,7 @@ msgid "" "dangling pointers, the recommended way to achieve this is:" msgstr "" -#: c-api/typeobj.rst:718 +#: c-api/typeobj.rst:721 msgid "" "static void foo_dealloc(foo_object *self) {\n" " PyTypeObject *tp = Py_TYPE(self);\n" @@ -1542,7 +1550,7 @@ msgid "" "}" msgstr "" -#: c-api/typeobj.rst:729 +#: c-api/typeobj.rst:732 msgid "" "In a garbage collected Python, :c:member:`!tp_dealloc` may be called from " "any Python thread, not just the thread which created the object (if the " @@ -1555,28 +1563,28 @@ msgid "" "member:`!tp_dealloc` will not violate any assumptions of the library." msgstr "" -#: c-api/typeobj.rst:748 +#: c-api/typeobj.rst:751 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:753 +#: c-api/typeobj.rst:756 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:757 +#: c-api/typeobj.rst:760 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:761 +#: c-api/typeobj.rst:764 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 " @@ -1584,13 +1592,13 @@ msgid "" "`PyVectorcall_Call`." msgstr "" -#: c-api/typeobj.rst:768 +#: c-api/typeobj.rst:771 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:774 +#: c-api/typeobj.rst:777 msgid "" "Before version 3.12, it was not recommended for :ref:`mutable heap types " "` to implement the vectorcall protocol. When a user sets :attr:" @@ -1600,7 +1608,7 @@ msgid "" "`Py_TPFLAGS_HAVE_VECTORCALL` flag." msgstr "" -#: c-api/typeobj.rst:784 +#: c-api/typeobj.rst:787 msgid "" "This field is always inherited. However, the :c:macro:" "`Py_TPFLAGS_HAVE_VECTORCALL` flag is not always inherited. If it's not set, " @@ -1608,11 +1616,11 @@ msgid "" "func:`PyVectorcall_Call` is explicitly called." msgstr "" -#: c-api/typeobj.rst:793 +#: c-api/typeobj.rst:798 msgid "An optional pointer to the get-attribute-string function." msgstr "" -#: c-api/typeobj.rst:795 +#: c-api/typeobj.rst:800 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, " @@ -1620,13 +1628,13 @@ msgid "" "attribute name." msgstr "" -#: c-api/typeobj.rst:997 +#: c-api/typeobj.rst:1014 msgid "" "Group: :c:member:`~PyTypeObject.tp_getattr`, :c:member:`~PyTypeObject." "tp_getattro`" msgstr "" -#: c-api/typeobj.rst:803 +#: c-api/typeobj.rst:808 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_getattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " @@ -1635,12 +1643,12 @@ msgid "" "tp_getattro` are both ``NULL``." msgstr "" -#: c-api/typeobj.rst:1010 +#: c-api/typeobj.rst:1029 msgid "" "An optional pointer to the function for setting and deleting attributes." msgstr "" -#: c-api/typeobj.rst:812 +#: c-api/typeobj.rst:819 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, " @@ -1648,13 +1656,13 @@ msgid "" "attribute name." msgstr "" -#: c-api/typeobj.rst:1023 +#: c-api/typeobj.rst:1042 msgid "" "Group: :c:member:`~PyTypeObject.tp_setattr`, :c:member:`~PyTypeObject." "tp_setattro`" msgstr "" -#: c-api/typeobj.rst:820 +#: c-api/typeobj.rst:827 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_setattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` " @@ -1663,38 +1671,38 @@ msgid "" "tp_setattro` are both ``NULL``." msgstr "" -#: c-api/typeobj.rst:827 +#: c-api/typeobj.rst:834 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:831 +#: c-api/typeobj.rst:838 msgid "Formerly known as ``tp_compare`` and ``tp_reserved``." msgstr "" -#: c-api/typeobj.rst:836 +#: c-api/typeobj.rst:843 msgid "" "The :c:member:`~PyTypeObject.tp_as_async` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: c-api/typeobj.rst:844 +#: c-api/typeobj.rst:853 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`repr`." msgstr "" -#: c-api/typeobj.rst:847 +#: c-api/typeobj.rst:856 msgid "The signature is the same as for :c:func:`PyObject_Repr`::" msgstr "" -#: c-api/typeobj.rst:849 +#: c-api/typeobj.rst:858 msgid "PyObject *tp_repr(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:851 +#: c-api/typeobj.rst:860 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 " @@ -1703,80 +1711,80 @@ msgid "" "``'>'`` from which both the type and the value of the object can be deduced." msgstr "" -#: c-api/typeobj.rst:941 c-api/typeobj.rst:1003 c-api/typeobj.rst:1070 -#: c-api/typeobj.rst:1659 c-api/typeobj.rst:1809 c-api/typeobj.rst:1925 -#: c-api/typeobj.rst:1985 c-api/typeobj.rst:2037 +#: c-api/typeobj.rst:952 c-api/typeobj.rst:1020 c-api/typeobj.rst:1089 +#: c-api/typeobj.rst:1686 c-api/typeobj.rst:1848 c-api/typeobj.rst:1970 +#: c-api/typeobj.rst:2034 c-api/typeobj.rst:2090 msgid "**Default:**" msgstr "" -#: c-api/typeobj.rst:864 +#: c-api/typeobj.rst:873 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:871 +#: c-api/typeobj.rst:880 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:877 +#: c-api/typeobj.rst:886 msgid "" "The :c:member:`~PyTypeObject.tp_as_number` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: c-api/typeobj.rst:883 +#: c-api/typeobj.rst:892 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:889 +#: c-api/typeobj.rst:898 msgid "" "The :c:member:`~PyTypeObject.tp_as_sequence` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: c-api/typeobj.rst:895 +#: c-api/typeobj.rst:904 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:901 +#: c-api/typeobj.rst:910 msgid "" "The :c:member:`~PyTypeObject.tp_as_mapping` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: c-api/typeobj.rst:909 +#: c-api/typeobj.rst:920 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`hash`." msgstr "" -#: c-api/typeobj.rst:912 +#: c-api/typeobj.rst:923 msgid "The signature is the same as for :c:func:`PyObject_Hash`::" msgstr "" -#: c-api/typeobj.rst:914 +#: c-api/typeobj.rst:925 msgid "Py_hash_t tp_hash(PyObject *);" msgstr "" -#: c-api/typeobj.rst:916 +#: c-api/typeobj.rst:927 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:920 +#: c-api/typeobj.rst:931 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:" @@ -1784,7 +1792,7 @@ msgid "" "`PyObject_HashNotImplemented`." msgstr "" -#: c-api/typeobj.rst:924 +#: c-api/typeobj.rst:935 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 " @@ -1795,13 +1803,13 @@ msgid "" "`PyObject_HashNotImplemented`." msgstr "" -#: c-api/typeobj.rst:1618 +#: c-api/typeobj.rst:1645 msgid "" "Group: :c:member:`~PyTypeObject.tp_hash`, :c:member:`~PyTypeObject." "tp_richcompare`" msgstr "" -#: c-api/typeobj.rst:936 +#: c-api/typeobj.rst:947 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_richcompare`: a subtype inherits both of :c:member:`~PyTypeObject." @@ -1810,22 +1818,22 @@ msgid "" "are both ``NULL``." msgstr "" -#: c-api/typeobj.rst:943 +#: c-api/typeobj.rst:954 msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericHash`." msgstr "" -#: c-api/typeobj.rst:948 +#: c-api/typeobj.rst:961 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:952 +#: c-api/typeobj.rst:965 msgid "PyObject *tp_call(PyObject *self, PyObject *args, PyObject *kwargs);" msgstr "" -#: c-api/typeobj.rst:961 +#: c-api/typeobj.rst:976 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 " @@ -1834,15 +1842,15 @@ msgid "" "this handler.)" msgstr "" -#: c-api/typeobj.rst:966 +#: c-api/typeobj.rst:981 msgid "The signature is the same as for :c:func:`PyObject_Str`::" msgstr "" -#: c-api/typeobj.rst:968 +#: c-api/typeobj.rst:983 msgid "PyObject *tp_str(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:970 +#: c-api/typeobj.rst:985 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 " @@ -1850,32 +1858,32 @@ msgid "" "function." msgstr "" -#: c-api/typeobj.rst:980 +#: c-api/typeobj.rst:995 msgid "" "When this field is not set, :c:func:`PyObject_Repr` is called to return a " "string representation." msgstr "" -#: c-api/typeobj.rst:986 +#: c-api/typeobj.rst:1003 msgid "An optional pointer to the get-attribute function." msgstr "" -#: c-api/typeobj.rst:988 +#: c-api/typeobj.rst:1005 msgid "The signature is the same as for :c:func:`PyObject_GetAttr`::" msgstr "" -#: c-api/typeobj.rst:990 +#: c-api/typeobj.rst:1007 msgid "PyObject *tp_getattro(PyObject *self, PyObject *attr);" msgstr "" -#: c-api/typeobj.rst:992 +#: c-api/typeobj.rst:1009 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:999 +#: c-api/typeobj.rst:1016 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_getattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " @@ -1884,19 +1892,19 @@ msgid "" "tp_getattro` are both ``NULL``." msgstr "" -#: c-api/typeobj.rst:1005 +#: c-api/typeobj.rst:1022 msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericGetAttr`." msgstr "" -#: c-api/typeobj.rst:1012 +#: c-api/typeobj.rst:1031 msgid "The signature is the same as for :c:func:`PyObject_SetAttr`::" msgstr "" -#: c-api/typeobj.rst:1014 +#: c-api/typeobj.rst:1033 msgid "int tp_setattro(PyObject *self, PyObject *attr, PyObject *value);" msgstr "" -#: c-api/typeobj.rst:1016 +#: c-api/typeobj.rst:1035 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:" @@ -1904,7 +1912,7 @@ msgid "" "attributes." msgstr "" -#: c-api/typeobj.rst:1025 +#: c-api/typeobj.rst:1044 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_setattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` " @@ -1913,24 +1921,24 @@ msgid "" "tp_setattro` are both ``NULL``." msgstr "" -#: c-api/typeobj.rst:1031 +#: c-api/typeobj.rst:1050 msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericSetAttr`." msgstr "" -#: c-api/typeobj.rst:1036 +#: c-api/typeobj.rst:1055 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:1042 +#: c-api/typeobj.rst:1061 msgid "" "The :c:member:`~PyTypeObject.tp_as_buffer` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: c-api/typeobj.rst:1048 +#: c-api/typeobj.rst:1067 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 " @@ -1942,7 +1950,7 @@ msgid "" "accessed and must be considered to have a zero or ``NULL`` value instead." msgstr "" -#: c-api/typeobj.rst:1058 +#: c-api/typeobj.rst:1077 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 " @@ -1958,17 +1966,17 @@ msgid "" "*really* inherited individually?" msgstr "" -#: c-api/typeobj.rst:1072 +#: c-api/typeobj.rst:1091 msgid "" ":c:data:`PyBaseObject_Type` uses ``Py_TPFLAGS_DEFAULT | " "Py_TPFLAGS_BASETYPE``." msgstr "" -#: c-api/typeobj.rst:1075 +#: c-api/typeobj.rst:1094 msgid "**Bit Masks:**" msgstr "" -#: c-api/typeobj.rst:1079 +#: c-api/typeobj.rst:1098 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." @@ -1977,7 +1985,7 @@ msgid "" "zero." msgstr "" -#: c-api/typeobj.rst:1086 +#: c-api/typeobj.rst:1105 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 " @@ -1990,30 +1998,30 @@ msgid "" "reference cycle with their own module object." msgstr "" -#: c-api/typeobj.rst:1108 c-api/typeobj.rst:1128 c-api/typeobj.rst:1160 +#: c-api/typeobj.rst:1127 c-api/typeobj.rst:1147 c-api/typeobj.rst:1179 msgid "???" msgstr "" -#: c-api/typeobj.rst:1102 +#: c-api/typeobj.rst:1121 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:1113 +#: c-api/typeobj.rst:1132 msgid "" "This bit is set when the type object has been fully initialized by :c:func:" "`PyType_Ready`." msgstr "" -#: c-api/typeobj.rst:1123 +#: c-api/typeobj.rst:1142 msgid "" "This bit is set while :c:func:`PyType_Ready` is in the process of " "initializing the type object." msgstr "" -#: c-api/typeobj.rst:1133 +#: c-api/typeobj.rst:1152 msgid "" "This bit is set when the object supports garbage collection. If this bit is " "set, instances must be created using :c:macro:`PyObject_GC_New` and " @@ -2023,13 +2031,13 @@ msgid "" "tp_clear` are present in the type object." msgstr "" -#: c-api/typeobj.rst:1483 c-api/typeobj.rst:1557 +#: c-api/typeobj.rst:1506 c-api/typeobj.rst:1582 msgid "" "Group: :c:macro:`Py_TPFLAGS_HAVE_GC`, :c:member:`~PyTypeObject." "tp_traverse`, :c:member:`~PyTypeObject.tp_clear`" msgstr "" -#: c-api/typeobj.rst:1144 +#: c-api/typeobj.rst:1163 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` " @@ -2039,198 +2047,200 @@ msgid "" "values." msgstr "" -#: c-api/typeobj.rst:1154 +#: c-api/typeobj.rst:1173 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:1165 +#: c-api/typeobj.rst:1184 msgid "This bit indicates that objects behave like unbound methods." msgstr "" -#: c-api/typeobj.rst:1167 +#: c-api/typeobj.rst:1186 msgid "If this flag is set for ``type(meth)``, then:" msgstr "" -#: c-api/typeobj.rst:1169 +#: c-api/typeobj.rst:1188 msgid "" "``meth.__get__(obj, cls)(*args, **kwds)`` (with ``obj`` not None) must be " "equivalent to ``meth(obj, *args, **kwds)``." msgstr "" -#: c-api/typeobj.rst:1172 +#: c-api/typeobj.rst:1191 msgid "" "``meth.__get__(None, cls)(*args, **kwds)`` must be equivalent to " "``meth(*args, **kwds)``." msgstr "" -#: c-api/typeobj.rst:1175 +#: c-api/typeobj.rst:1194 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:1183 +#: c-api/typeobj.rst:1202 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:1189 +#: c-api/typeobj.rst:1208 msgid "" -"This bit indicates that instances of the class have a `~object.__dict__` " -"attribute, and that the space for the dictionary is managed by the VM." +"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:1192 +#: c-api/typeobj.rst:1211 msgid "If this flag is set, :c:macro:`Py_TPFLAGS_HAVE_GC` should also be set." msgstr "" -#: c-api/typeobj.rst:1194 +#: c-api/typeobj.rst:1213 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:1201 +#: c-api/typeobj.rst:1220 msgid "" "This flag is inherited unless the :c:member:`~PyTypeObject.tp_dictoffset` " "field is set in a superclass." msgstr "" -#: c-api/typeobj.rst:1207 +#: c-api/typeobj.rst:1226 msgid "" "This bit indicates that instances of the class should be weakly " "referenceable." msgstr "" -#: c-api/typeobj.rst:1214 +#: c-api/typeobj.rst:1233 msgid "" "This flag is inherited unless the :c:member:`~PyTypeObject." "tp_weaklistoffset` field is set in a superclass." msgstr "" -#: c-api/typeobj.rst:1220 +#: c-api/typeobj.rst:1239 msgid "" "Only usable with variable-size types, i.e. ones with non-zero :c:member:" "`~PyTypeObject.tp_itemsize`." msgstr "" -#: c-api/typeobj.rst:1223 +#: c-api/typeobj.rst:1242 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:1228 +#: c-api/typeobj.rst:1247 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:1236 +#: c-api/typeobj.rst:1255 msgid "This flag is inherited." msgstr "" -#: c-api/typeobj.rst:1250 +#: c-api/typeobj.rst:1269 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:1261 +#: c-api/typeobj.rst:1280 msgid "" "This bit is set when the :c:member:`~PyTypeObject.tp_finalize` slot is " "present in the type structure." msgstr "" -#: c-api/typeobj.rst:1266 +#: c-api/typeobj.rst:1285 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:1274 +#: c-api/typeobj.rst:1293 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:1280 +#: c-api/typeobj.rst:1299 msgid "" "This bit is inherited if :c:member:`~PyTypeObject.tp_call` is also inherited." msgstr "" -#: c-api/typeobj.rst:1287 +#: c-api/typeobj.rst:1306 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:1290 +#: c-api/typeobj.rst:1309 msgid "This flag can now be inherited by mutable classes." msgstr "" -#: c-api/typeobj.rst:1294 +#: c-api/typeobj.rst:1313 msgid "" "This bit is set for type objects that are immutable: type attributes cannot " "be set nor deleted." msgstr "" -#: c-api/typeobj.rst:1296 +#: c-api/typeobj.rst:1315 msgid "" ":c:func:`PyType_Ready` automatically applies this flag to :ref:`static types " "`." msgstr "" -#: c-api/typeobj.rst:1301 +#: c-api/typeobj.rst:1320 msgid "This flag is not inherited." msgstr "" -#: c-api/typeobj.rst:1307 +#: c-api/typeobj.rst:1326 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:1311 +#: c-api/typeobj.rst:1330 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:1314 +#: c-api/typeobj.rst:1333 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:1320 +#: c-api/typeobj.rst:1339 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:1327 +#: c-api/typeobj.rst:1346 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:1338 +#: c-api/typeobj.rst:1357 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 " @@ -2238,23 +2248,23 @@ msgid "" "unset when registering :class:`collections.abc.Sequence`." msgstr "" -#: c-api/typeobj.rst:1367 +#: c-api/typeobj.rst:1386 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:1350 +#: c-api/typeobj.rst:1369 msgid "" "This flag is inherited by types that do not already set :c:macro:" "`Py_TPFLAGS_SEQUENCE`." msgstr "" -#: c-api/typeobj.rst:1375 +#: c-api/typeobj.rst:1394 msgid ":pep:`634` -- Structural Pattern Matching: Specification" msgstr "" -#: c-api/typeobj.rst:1360 +#: c-api/typeobj.rst:1379 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 " @@ -2262,53 +2272,53 @@ msgid "" "unset when registering :class:`collections.abc.Mapping`." msgstr "" -#: c-api/typeobj.rst:1372 +#: c-api/typeobj.rst:1391 msgid "" "This flag is inherited by types that do not already set :c:macro:" "`Py_TPFLAGS_MAPPING`." msgstr "" -#: c-api/typeobj.rst:1382 +#: c-api/typeobj.rst:1401 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:1386 +#: c-api/typeobj.rst:1405 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:1392 +#: c-api/typeobj.rst:1413 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:1398 +#: c-api/typeobj.rst:1419 msgid "This field is *not* inherited by subtypes." msgstr "" -#: c-api/typeobj.rst:1403 +#: c-api/typeobj.rst:1426 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:1406 +#: c-api/typeobj.rst:1429 msgid "int tp_traverse(PyObject *self, visitproc visit, void *arg);" msgstr "" -#: c-api/typeobj.rst:1552 +#: c-api/typeobj.rst:1577 msgid "" "More information about Python's garbage collection scheme can be found in " "section :ref:`supporting-cycle-detection`." msgstr "" -#: c-api/typeobj.rst:1411 +#: c-api/typeobj.rst:1434 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` pointer is used by the garbage " "collector to detect reference cycles. A typical implementation of a :c:" @@ -2318,7 +2328,7 @@ msgid "" "`!_thread` extension module::" msgstr "" -#: c-api/typeobj.rst:1417 +#: c-api/typeobj.rst:1440 msgid "" "static int\n" "local_traverse(localobject *self, visitproc visit, void *arg)\n" @@ -2330,7 +2340,7 @@ msgid "" "}" msgstr "" -#: c-api/typeobj.rst:1426 +#: c-api/typeobj.rst:1449 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`` " @@ -2338,47 +2348,47 @@ msgid "" "part of a reference cycle." msgstr "" -#: c-api/typeobj.rst:1430 +#: c-api/typeobj.rst:1453 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:1434 +#: c-api/typeobj.rst:1457 msgid "" "Heap types (:c:macro:`Py_TPFLAGS_HEAPTYPE`) must visit their type with::" msgstr "" -#: c-api/typeobj.rst:1436 +#: c-api/typeobj.rst:1459 msgid "Py_VISIT(Py_TYPE(self));" msgstr "" -#: c-api/typeobj.rst:1438 +#: c-api/typeobj.rst:1461 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:1441 +#: c-api/typeobj.rst:1464 msgid "" "#if PY_VERSION_HEX >= 0x03090000\n" " Py_VISIT(Py_TYPE(self));\n" "#endif" msgstr "" -#: c-api/typeobj.rst:1445 +#: c-api/typeobj.rst:1468 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:1449 +#: c-api/typeobj.rst:1472 msgid "PyObject_VisitManagedDict((PyObject*)self, visit, arg);" msgstr "" -#: c-api/typeobj.rst:1452 +#: c-api/typeobj.rst:1475 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:" @@ -2407,14 +2417,14 @@ msgid "" "superclass). If they do not, the type object may not be garbage-collected." msgstr "" -#: c-api/typeobj.rst:1476 +#: c-api/typeobj.rst:1499 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:1485 +#: c-api/typeobj.rst:1508 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:" @@ -2422,18 +2432,18 @@ msgid "" "are all inherited from the base type if they are all zero in the subtype." msgstr "" -#: c-api/typeobj.rst:1493 +#: c-api/typeobj.rst:1518 msgid "" "An optional pointer to a clear 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:1496 +#: c-api/typeobj.rst:1521 msgid "int tp_clear(PyObject *);" msgstr "" -#: c-api/typeobj.rst:1498 +#: c-api/typeobj.rst:1523 msgid "" "The :c:member:`~PyTypeObject.tp_clear` member function is used to break " "reference cycles in cyclic garbage detected by the garbage collector. Taken " @@ -2448,7 +2458,7 @@ msgid "" "good reason to avoid implementing :c:member:`~PyTypeObject.tp_clear`." msgstr "" -#: c-api/typeobj.rst:1508 +#: c-api/typeobj.rst:1533 msgid "" "Implementations of :c:member:`~PyTypeObject.tp_clear` should drop the " "instance's references to those of its members that may be Python objects, " @@ -2456,7 +2466,7 @@ msgid "" "example::" msgstr "" -#: c-api/typeobj.rst:1512 +#: c-api/typeobj.rst:1537 msgid "" "static int\n" "local_clear(localobject *self)\n" @@ -2469,7 +2479,7 @@ msgid "" "}" msgstr "" -#: c-api/typeobj.rst:1522 +#: c-api/typeobj.rst:1547 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 :" @@ -2484,18 +2494,18 @@ msgid "" "performs the operations in a safe order." msgstr "" -#: c-api/typeobj.rst:1534 +#: c-api/typeobj.rst:1559 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:1538 +#: c-api/typeobj.rst:1563 msgid "PyObject_ClearManagedDict((PyObject*)self);" msgstr "" -#: c-api/typeobj.rst:1540 +#: c-api/typeobj.rst:1565 msgid "" "Note that :c:member:`~PyTypeObject.tp_clear` is not *always* called before " "an instance is deallocated. For example, when reference counting is enough " @@ -2503,7 +2513,7 @@ msgid "" "is not involved and :c:member:`~PyTypeObject.tp_dealloc` is called directly." msgstr "" -#: c-api/typeobj.rst:1546 +#: c-api/typeobj.rst:1571 msgid "" "Because the goal of :c:member:`~PyTypeObject.tp_clear` functions is to break " "reference cycles, it's not necessary to clear contained objects like Python " @@ -2513,7 +2523,7 @@ msgid "" "invoke :c:member:`~PyTypeObject.tp_clear`." msgstr "" -#: c-api/typeobj.rst:1559 +#: c-api/typeobj.rst:1584 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, :" @@ -2521,22 +2531,22 @@ msgid "" "are all inherited from the base type if they are all zero in the subtype." msgstr "" -#: c-api/typeobj.rst:1567 +#: c-api/typeobj.rst:1594 msgid "" "An optional pointer to the rich comparison function, whose signature is::" msgstr "" -#: c-api/typeobj.rst:1569 +#: c-api/typeobj.rst:1596 msgid "PyObject *tp_richcompare(PyObject *self, PyObject *other, int op);" msgstr "" -#: c-api/typeobj.rst:1571 +#: c-api/typeobj.rst:1598 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:1574 +#: c-api/typeobj.rst:1601 msgid "" "The function should return the result of the comparison (usually ``Py_True`` " "or ``Py_False``). If the comparison is undefined, it must return " @@ -2544,50 +2554,50 @@ msgid "" "set an exception condition." msgstr "" -#: c-api/typeobj.rst:1579 +#: c-api/typeobj.rst:1606 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:1585 +#: c-api/typeobj.rst:1612 msgid "Constant" msgstr "" -#: c-api/typeobj.rst:1585 +#: c-api/typeobj.rst:1612 msgid "Comparison" msgstr "" -#: c-api/typeobj.rst:1587 +#: c-api/typeobj.rst:1614 msgid "``<``" msgstr "" -#: c-api/typeobj.rst:1589 +#: c-api/typeobj.rst:1616 msgid "``<=``" msgstr "" -#: c-api/typeobj.rst:1591 +#: c-api/typeobj.rst:1618 msgid "``==``" msgstr "" -#: c-api/typeobj.rst:1593 +#: c-api/typeobj.rst:1620 msgid "``!=``" msgstr "" -#: c-api/typeobj.rst:1595 +#: c-api/typeobj.rst:1622 msgid "``>``" msgstr "" -#: c-api/typeobj.rst:1597 +#: c-api/typeobj.rst:1624 msgid "``>=``" msgstr "" -#: c-api/typeobj.rst:1600 +#: c-api/typeobj.rst:1627 msgid "" "The following macro is defined to ease writing rich comparison functions:" msgstr "" -#: c-api/typeobj.rst:1604 +#: c-api/typeobj.rst:1631 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 " @@ -2595,15 +2605,15 @@ msgid "" "specifies the requested operation, as for :c:func:`PyObject_RichCompare`." msgstr "" -#: c-api/typeobj.rst:1610 +#: c-api/typeobj.rst:1637 msgid "The returned value is a new :term:`strong reference`." msgstr "" -#: c-api/typeobj.rst:1612 +#: c-api/typeobj.rst:1639 msgid "On error, sets an exception and returns ``NULL`` from the function." msgstr "" -#: c-api/typeobj.rst:1620 +#: c-api/typeobj.rst:1647 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_hash`: a subtype inherits :c:member:`~PyTypeObject.tp_richcompare` and :c:" @@ -2611,7 +2621,7 @@ msgid "" "tp_richcompare` and :c:member:`~PyTypeObject.tp_hash` are both ``NULL``." msgstr "" -#: c-api/typeobj.rst:1627 +#: c-api/typeobj.rst:1654 msgid "" ":c:data:`PyBaseObject_Type` provides a :c:member:`~PyTypeObject." "tp_richcompare` implementation, which may be inherited. However, if only :c:" @@ -2620,13 +2630,13 @@ msgid "" "comparisons." msgstr "" -#: c-api/typeobj.rst:1636 +#: c-api/typeobj.rst:1663 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:1639 +#: c-api/typeobj.rst:1666 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 " @@ -2636,19 +2646,19 @@ msgid "" "`PyObject*` which is initialized to ``NULL``." msgstr "" -#: c-api/typeobj.rst:1646 +#: c-api/typeobj.rst:1673 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:1649 +#: c-api/typeobj.rst:1676 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:1654 +#: c-api/typeobj.rst:1681 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 " @@ -2657,7 +2667,7 @@ msgid "" "not be a problem." msgstr "" -#: c-api/typeobj.rst:1661 +#: c-api/typeobj.rst:1688 msgid "" "If the :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` bit is set in the :c:member:" "`~PyTypeObject.tp_flags` field, then :c:member:`~PyTypeObject." @@ -2665,32 +2675,32 @@ msgid "" "unsafe to use this field." msgstr "" -#: c-api/typeobj.rst:1669 +#: c-api/typeobj.rst:1698 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:1673 +#: c-api/typeobj.rst:1702 msgid "This function has the same signature as :c:func:`PyObject_GetIter`::" msgstr "" -#: c-api/typeobj.rst:1675 +#: c-api/typeobj.rst:1704 msgid "PyObject *tp_iter(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:1684 +#: c-api/typeobj.rst:1715 msgid "" "An optional pointer to a function that returns the next item in an :term:" "`iterator`. The signature is::" msgstr "" -#: c-api/typeobj.rst:1687 +#: c-api/typeobj.rst:1718 msgid "PyObject *tp_iternext(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:1689 +#: c-api/typeobj.rst:1720 msgid "" "When the iterator is exhausted, it must return ``NULL``; a :exc:" "`StopIteration` exception may or may not be set. When another error occurs, " @@ -2698,74 +2708,74 @@ msgid "" "this type are iterators." msgstr "" -#: c-api/typeobj.rst:1694 +#: c-api/typeobj.rst:1725 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:1698 +#: c-api/typeobj.rst:1729 msgid "This function has the same signature as :c:func:`PyIter_Next`." msgstr "" -#: c-api/typeobj.rst:1707 +#: c-api/typeobj.rst:1740 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:1710 +#: c-api/typeobj.rst:1743 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:1715 +#: c-api/typeobj.rst:1748 msgid "" "This field is not inherited by subtypes (methods are inherited through a " "different mechanism)." msgstr "" -#: c-api/typeobj.rst:1721 +#: c-api/typeobj.rst:1756 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:1725 +#: c-api/typeobj.rst:1760 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:1730 +#: c-api/typeobj.rst:1765 msgid "" "This field is not inherited by subtypes (members are inherited through a " "different mechanism)." msgstr "" -#: c-api/typeobj.rst:1736 +#: c-api/typeobj.rst:1773 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:1739 +#: c-api/typeobj.rst:1776 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:1744 +#: c-api/typeobj.rst:1781 msgid "" "This field is not inherited by subtypes (computed attributes are inherited " "through a different mechanism)." msgstr "" -#: c-api/typeobj.rst:1750 +#: c-api/typeobj.rst:1789 msgid "" "An optional pointer to a base type from which type properties are " "inherited. At this level, only single inheritance is supported; multiple " @@ -2773,7 +2783,7 @@ msgid "" "metatype." msgstr "" -#: c-api/typeobj.rst:1758 +#: c-api/typeobj.rst:1797 msgid "" "Slot initialization is subject to the rules of initializing globals. C99 " "requires the initializers to be \"address constants\". Function designators " @@ -2781,7 +2791,7 @@ msgid "" "valid C99 address constants." msgstr "" -#: c-api/typeobj.rst:1763 +#: c-api/typeobj.rst:1802 msgid "" "However, the unary '&' operator applied to a non-static variable like :c:" "data:`PyBaseObject_Type` is not required to produce an address constant. " @@ -2789,27 +2799,27 @@ msgid "" "strictly standard conforming in this particular behavior." msgstr "" -#: c-api/typeobj.rst:1769 +#: c-api/typeobj.rst:1808 msgid "" "Consequently, :c:member:`~PyTypeObject.tp_base` should be set in the " "extension module's init function." msgstr "" -#: c-api/typeobj.rst:1774 +#: c-api/typeobj.rst:1813 msgid "This field is not inherited by subtypes (obviously)." msgstr "" -#: c-api/typeobj.rst:1778 +#: c-api/typeobj.rst:1817 msgid "" "This field defaults to ``&PyBaseObject_Type`` (which to Python programmers " "is known as the type :class:`object`)." msgstr "" -#: c-api/typeobj.rst:1784 +#: c-api/typeobj.rst:1823 msgid "The type's dictionary is stored here by :c:func:`PyType_Ready`." msgstr "" -#: c-api/typeobj.rst:1786 +#: c-api/typeobj.rst:1825 msgid "" "This field should normally be initialized to ``NULL`` before PyType_Ready is " "called; it may also be initialized to a dictionary containing initial " @@ -2820,70 +2830,70 @@ msgid "" "be treated as read-only." msgstr "" -#: c-api/typeobj.rst:1794 +#: c-api/typeobj.rst:1833 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:1800 +#: c-api/typeobj.rst:1839 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:1806 +#: c-api/typeobj.rst:1845 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:1811 +#: c-api/typeobj.rst:1850 msgid "" "If this field is ``NULL``, :c:func:`PyType_Ready` will assign a new " "dictionary to it." msgstr "" -#: c-api/typeobj.rst:1816 +#: c-api/typeobj.rst:1855 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:1822 +#: c-api/typeobj.rst:1863 msgid "An optional pointer to a \"descriptor get\" function." msgstr "" -#: c-api/typeobj.rst:1840 c-api/typeobj.rst:1934 c-api/typeobj.rst:1958 +#: c-api/typeobj.rst:1883 c-api/typeobj.rst:1981 c-api/typeobj.rst:2007 msgid "The function signature is::" msgstr "" -#: c-api/typeobj.rst:1826 +#: c-api/typeobj.rst:1867 msgid "PyObject * tp_descr_get(PyObject *self, PyObject *obj, PyObject *type);" msgstr "" -#: c-api/typeobj.rst:1837 +#: c-api/typeobj.rst:1880 msgid "" "An optional pointer to a function for setting and deleting a descriptor's " "value." msgstr "" -#: c-api/typeobj.rst:1842 +#: c-api/typeobj.rst:1885 msgid "int tp_descr_set(PyObject *self, PyObject *obj, PyObject *value);" msgstr "" -#: c-api/typeobj.rst:1844 +#: c-api/typeobj.rst:1887 msgid "The *value* argument is set to ``NULL`` to delete the value." msgstr "" -#: c-api/typeobj.rst:1855 +#: c-api/typeobj.rst:1898 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:1858 +#: c-api/typeobj.rst:1901 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 " @@ -2891,19 +2901,19 @@ msgid "" "func:`PyObject_GenericGetAttr`." msgstr "" -#: c-api/typeobj.rst:1863 +#: c-api/typeobj.rst:1906 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:1866 +#: c-api/typeobj.rst:1909 msgid "" "The value specifies the offset of the dictionary from the start of the " "instance structure." msgstr "" -#: c-api/typeobj.rst:1868 +#: c-api/typeobj.rst:1911 msgid "" "The :c:member:`~PyTypeObject.tp_dictoffset` should be regarded as write-" "only. To get the pointer to the dictionary call :c:func:" @@ -2912,13 +2922,13 @@ msgid "" "to call :c:func:`PyObject_GetAttr` when accessing an attribute on the object." msgstr "" -#: c-api/typeobj.rst:1874 +#: c-api/typeobj.rst:1917 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:1879 +#: c-api/typeobj.rst:1922 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 " @@ -2926,25 +2936,25 @@ msgid "" "`Py_TPFLAGS_MANAGED_DICT`." msgstr "" -#: c-api/typeobj.rst:1886 +#: c-api/typeobj.rst:1929 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:1889 +#: c-api/typeobj.rst:1932 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:1897 +#: c-api/typeobj.rst:1942 msgid "An optional pointer to an instance initialization function." msgstr "" -#: c-api/typeobj.rst:1899 +#: c-api/typeobj.rst:1944 msgid "" "This function corresponds to the :meth:`~object.__init__` method of " "classes. Like :meth:`!__init__`, it is possible to create an instance " @@ -2952,18 +2962,18 @@ msgid "" "instance by calling its :meth:`!__init__` method again." msgstr "" -#: c-api/typeobj.rst:1906 +#: c-api/typeobj.rst:1951 msgid "int tp_init(PyObject *self, PyObject *args, PyObject *kwds);" msgstr "" -#: c-api/typeobj.rst:1908 +#: c-api/typeobj.rst:1953 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:1912 +#: c-api/typeobj.rst:1957 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 :" @@ -2975,52 +2985,52 @@ msgid "" "subtype's :c:member:`~PyTypeObject.tp_init` is called." msgstr "" -#: c-api/typeobj.rst:1919 +#: c-api/typeobj.rst:1964 msgid "Returns ``0`` on success, ``-1`` and sets an exception on error." msgstr "" -#: c-api/typeobj.rst:1927 +#: c-api/typeobj.rst:1972 msgid "" "For :ref:`static types ` this field does not have a default." msgstr "" -#: c-api/typeobj.rst:1932 +#: c-api/typeobj.rst:1979 msgid "An optional pointer to an instance allocation function." msgstr "" -#: c-api/typeobj.rst:1936 +#: c-api/typeobj.rst:1983 msgid "PyObject *tp_alloc(PyTypeObject *self, Py_ssize_t nitems);" msgstr "" -#: c-api/typeobj.rst:1940 +#: c-api/typeobj.rst:1987 msgid "" "This field is inherited by static subtypes, but not by dynamic subtypes " "(subtypes created by a class statement)." msgstr "" -#: c-api/typeobj.rst:1945 +#: c-api/typeobj.rst:1992 msgid "" "For dynamic subtypes, this field is always set to :c:func:" "`PyType_GenericAlloc`, to force a standard heap allocation strategy." msgstr "" -#: c-api/typeobj.rst:1949 +#: c-api/typeobj.rst:1996 msgid "" "For static subtypes, :c:data:`PyBaseObject_Type` uses :c:func:" "`PyType_GenericAlloc`. That is the recommended value for all statically " "defined types." msgstr "" -#: c-api/typeobj.rst:1956 +#: c-api/typeobj.rst:2005 msgid "An optional pointer to an instance creation function." msgstr "" -#: c-api/typeobj.rst:1960 +#: c-api/typeobj.rst:2009 msgid "" "PyObject *tp_new(PyTypeObject *subtype, PyObject *args, PyObject *kwds);" msgstr "" -#: c-api/typeobj.rst:1962 +#: c-api/typeobj.rst:2011 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 " @@ -3029,7 +3039,7 @@ msgid "" "that type (but not an unrelated type)." msgstr "" -#: c-api/typeobj.rst:1968 +#: c-api/typeobj.rst:2017 msgid "" "The :c:member:`~PyTypeObject.tp_new` function should call ``subtype-" ">tp_alloc(subtype, nitems)`` to allocate space for the object, and then do " @@ -3041,20 +3051,20 @@ msgid "" "be deferred to :c:member:`~PyTypeObject.tp_init`." msgstr "" -#: c-api/typeobj.rst:1976 +#: c-api/typeobj.rst:2025 msgid "" "Set the :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag to disallow " "creating instances of the type in Python." msgstr "" -#: c-api/typeobj.rst:1981 +#: c-api/typeobj.rst:2030 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:1987 +#: c-api/typeobj.rst:2036 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 " @@ -3062,44 +3072,44 @@ msgid "" "factory function." msgstr "" -#: c-api/typeobj.rst:1995 +#: c-api/typeobj.rst:2046 msgid "" "An optional pointer to an instance deallocation function. Its signature is::" msgstr "" -#: c-api/typeobj.rst:1997 +#: c-api/typeobj.rst:2048 msgid "void tp_free(void *self);" msgstr "" -#: c-api/typeobj.rst:1999 +#: c-api/typeobj.rst:2050 msgid "" "An initializer that is compatible with this signature is :c:func:" "`PyObject_Free`." msgstr "" -#: c-api/typeobj.rst:2003 +#: c-api/typeobj.rst:2054 msgid "" "This field is inherited by static subtypes, but not by dynamic subtypes " "(subtypes created by a class statement)" msgstr "" -#: c-api/typeobj.rst:2008 +#: c-api/typeobj.rst:2059 msgid "" "In dynamic subtypes, this field is set to a deallocator suitable to match :c:" "func:`PyType_GenericAlloc` and the value of the :c:macro:" "`Py_TPFLAGS_HAVE_GC` flag bit." msgstr "" -#: c-api/typeobj.rst:2012 +#: c-api/typeobj.rst:2063 msgid "" "For static subtypes, :c:data:`PyBaseObject_Type` uses :c:func:`PyObject_Del`." msgstr "" -#: c-api/typeobj.rst:2017 +#: c-api/typeobj.rst:2070 msgid "An optional pointer to a function called by the garbage collector." msgstr "" -#: c-api/typeobj.rst:2019 +#: c-api/typeobj.rst:2072 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 " @@ -3111,91 +3121,91 @@ msgid "" "instance. The signature is::" msgstr "" -#: c-api/typeobj.rst:2027 +#: c-api/typeobj.rst:2080 msgid "int tp_is_gc(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:2029 +#: c-api/typeobj.rst:2082 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:2039 +#: c-api/typeobj.rst:2092 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:2045 +#: c-api/typeobj.rst:2100 msgid "Tuple of base types." msgstr "" -#: c-api/typeobj.rst:2071 +#: c-api/typeobj.rst:2126 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:2050 +#: c-api/typeobj.rst:2105 msgid "" "For dynamically created classes, the ``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:2057 +#: c-api/typeobj.rst:2112 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:2086 c-api/typeobj.rst:2120 c-api/typeobj.rst:2134 +#: c-api/typeobj.rst:2141 c-api/typeobj.rst:2175 c-api/typeobj.rst:2191 msgid "This field is not inherited." msgstr "" -#: c-api/typeobj.rst:2068 +#: c-api/typeobj.rst:2123 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:2076 +#: c-api/typeobj.rst:2131 msgid "" "This field is not inherited; it is calculated fresh by :c:func:" "`PyType_Ready`." msgstr "" -#: c-api/typeobj.rst:2082 +#: c-api/typeobj.rst:2137 msgid "Unused. Internal use only." msgstr "" -#: c-api/typeobj.rst:2091 +#: c-api/typeobj.rst:2146 msgid "" "A collection of subclasses. Internal use only. May be an invalid pointer." msgstr "" -#: c-api/typeobj.rst:2093 +#: c-api/typeobj.rst:2148 msgid "" "To get a list of subclasses, call the Python method :py:meth:`~type." "__subclasses__`." msgstr "" -#: c-api/typeobj.rst:2098 +#: c-api/typeobj.rst:2153 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:2108 +#: c-api/typeobj.rst:2163 msgid "" "Weak reference list head, for weak references to this type object. Not " "inherited. Internal use only." msgstr "" -#: c-api/typeobj.rst:2113 +#: c-api/typeobj.rst:2168 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 " @@ -3203,25 +3213,27 @@ msgid "" "``_PyObject_GET_WEAKREFS_LISTPTR()`` macro to avoid the distinction." msgstr "" -#: c-api/typeobj.rst:2125 +#: c-api/typeobj.rst:2182 msgid "" "This field is deprecated. Use :c:member:`~PyTypeObject.tp_finalize` instead." msgstr "" -#: c-api/typeobj.rst:2130 +#: c-api/typeobj.rst:2187 msgid "Used to index into the method cache. Internal use only." msgstr "" -#: c-api/typeobj.rst:2139 +#: c-api/typeobj.rst:2198 msgid "" -"An optional pointer to an instance finalization function. Its signature is::" +"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:2141 +#: c-api/typeobj.rst:2202 msgid "void tp_finalize(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:2143 +#: c-api/typeobj.rst:2204 msgid "" "If :c:member:`~PyTypeObject.tp_finalize` is set, the interpreter calls it " "once when finalizing an instance. It is called either from the garbage " @@ -3231,14 +3243,14 @@ msgid "" "object in a sane state." msgstr "" -#: c-api/typeobj.rst:2150 +#: c-api/typeobj.rst:2211 msgid "" ":c:member:`~PyTypeObject.tp_finalize` should not mutate the current " "exception status; therefore, a recommended way to write a non-trivial " "finalizer is::" msgstr "" -#: c-api/typeobj.rst:2153 +#: c-api/typeobj.rst:2214 msgid "" "static void\n" "local_finalize(PyObject *self)\n" @@ -3253,18 +3265,18 @@ msgid "" "}" msgstr "" -#: c-api/typeobj.rst:2173 +#: c-api/typeobj.rst:2234 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:2177 +#: c-api/typeobj.rst:2238 msgid "\"Safe object finalization\" (:pep:`442`)" msgstr "" -#: c-api/typeobj.rst:2182 +#: c-api/typeobj.rst:2243 msgid "" "Vectorcall function to use for calls of this type object. In other words, it " "is used to implement :ref:`vectorcall ` for ``type.__call__``. " @@ -3272,65 +3284,65 @@ msgid "" "meth:`~object.__new__` and :meth:`~object.__init__` is used." msgstr "" -#: c-api/typeobj.rst:2190 +#: c-api/typeobj.rst:2251 msgid "This field is never inherited." msgstr "" -#: c-api/typeobj.rst:2192 +#: c-api/typeobj.rst:2253 msgid "(the field exists since 3.8 but it's only used since 3.9)" msgstr "" -#: c-api/typeobj.rst:2197 +#: c-api/typeobj.rst:2258 msgid "Internal. Do not use." msgstr "" -#: c-api/typeobj.rst:2205 +#: c-api/typeobj.rst:2266 msgid "Static Types" msgstr "" -#: c-api/typeobj.rst:2207 +#: c-api/typeobj.rst:2268 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:2211 +#: c-api/typeobj.rst:2272 msgid "" "This results in types that are limited relative to types defined in Python:" msgstr "" -#: c-api/typeobj.rst:2213 +#: c-api/typeobj.rst:2274 msgid "" "Static types are limited to one base, i.e. they cannot use multiple " "inheritance." msgstr "" -#: c-api/typeobj.rst:2215 +#: c-api/typeobj.rst:2276 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:2217 +#: c-api/typeobj.rst:2278 msgid "" "Static type objects are shared across :ref:`sub-interpreters `, so they should not include any subinterpreter-" "specific state." msgstr "" -#: c-api/typeobj.rst:2221 +#: c-api/typeobj.rst:2282 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:2229 +#: c-api/typeobj.rst:2290 msgid "Heap Types" msgstr "" -#: c-api/typeobj.rst:2231 +#: c-api/typeobj.rst:2292 msgid "" "An alternative to :ref:`static types ` is *heap-allocated " "types*, or *heap types* for short, which correspond closely to classes " @@ -3338,29 +3350,29 @@ msgid "" "`Py_TPFLAGS_HEAPTYPE` flag set." msgstr "" -#: c-api/typeobj.rst:2236 +#: c-api/typeobj.rst:2297 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:2244 +#: c-api/typeobj.rst:2305 msgid "Number Object Structures" msgstr "" -#: c-api/typeobj.rst:2251 +#: c-api/typeobj.rst:2312 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:2581 +#: c-api/typeobj.rst:2774 msgid "Here is the structure definition::" msgstr "" -#: c-api/typeobj.rst:2259 +#: c-api/typeobj.rst:2320 msgid "" "typedef struct {\n" " binaryfunc nb_add;\n" @@ -3406,7 +3418,7 @@ msgid "" "} PyNumberMethods;" msgstr "" -#: c-api/typeobj.rst:2304 +#: c-api/typeobj.rst:2365 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 " @@ -3416,31 +3428,31 @@ msgid "" "and set an exception." msgstr "" -#: c-api/typeobj.rst:2313 +#: c-api/typeobj.rst:2374 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:2358 +#: c-api/typeobj.rst:2525 msgid "Mapping Object Structures" msgstr "" -#: c-api/typeobj.rst:2365 +#: c-api/typeobj.rst:2532 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:2370 +#: c-api/typeobj.rst:2539 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:2376 +#: c-api/typeobj.rst:2547 msgid "" "This function is used by :c:func:`PyObject_GetItem` and :c:func:" "`PySequence_GetSlice`, and has the same signature as :c:func:`!" @@ -3448,7 +3460,7 @@ msgid "" "`PyMapping_Check` function to return ``1``, it can be ``NULL`` otherwise." msgstr "" -#: c-api/typeobj.rst:2384 +#: c-api/typeobj.rst:2557 msgid "" "This function is used by :c:func:`PyObject_SetItem`, :c:func:" "`PyObject_DelItem`, :c:func:`PySequence_SetSlice` and :c:func:" @@ -3458,17 +3470,17 @@ msgid "" "deletion." msgstr "" -#: c-api/typeobj.rst:2395 +#: c-api/typeobj.rst:2568 msgid "Sequence Object Structures" msgstr "" -#: c-api/typeobj.rst:2402 +#: c-api/typeobj.rst:2575 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the sequence protocol." msgstr "" -#: c-api/typeobj.rst:2407 +#: c-api/typeobj.rst:2582 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 " @@ -3476,21 +3488,21 @@ msgid "" "member:`~PySequenceMethods.sq_ass_item` slots." msgstr "" -#: c-api/typeobj.rst:2414 +#: c-api/typeobj.rst:2591 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:2420 +#: c-api/typeobj.rst:2599 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:2426 +#: c-api/typeobj.rst:2607 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 " @@ -3499,7 +3511,7 @@ msgid "" "``1``, it can be ``NULL`` otherwise." msgstr "" -#: c-api/typeobj.rst:2432 +#: c-api/typeobj.rst:2613 msgid "" "Negative indexes are handled as follows: if the :c:member:" "`~PySequenceMethods.sq_length` slot is filled, it is called and the sequence " @@ -3508,7 +3520,7 @@ msgid "" "index is passed as is to the function." msgstr "" -#: c-api/typeobj.rst:2439 +#: c-api/typeobj.rst:2622 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:" @@ -3517,14 +3529,14 @@ msgid "" "``NULL`` if the object does not support item assignment and deletion." msgstr "" -#: c-api/typeobj.rst:2448 +#: c-api/typeobj.rst:2633 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:2455 +#: c-api/typeobj.rst:2642 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 " @@ -3534,7 +3546,7 @@ msgid "" "c:member:`~PyNumberMethods.nb_inplace_add` slot." msgstr "" -#: c-api/typeobj.rst:2464 +#: c-api/typeobj.rst:2653 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 " @@ -3544,74 +3556,74 @@ msgid "" "via the :c:member:`~PyNumberMethods.nb_inplace_multiply` slot." msgstr "" -#: c-api/typeobj.rst:2475 +#: c-api/typeobj.rst:2664 msgid "Buffer Object Structures" msgstr "" -#: c-api/typeobj.rst:2483 +#: c-api/typeobj.rst:2672 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:2538 c-api/typeobj.rst:2603 c-api/typeobj.rst:2625 +#: c-api/typeobj.rst:2731 c-api/typeobj.rst:2800 c-api/typeobj.rst:2826 msgid "The signature of this function is::" msgstr "" -#: c-api/typeobj.rst:2491 +#: c-api/typeobj.rst:2682 msgid "int (PyObject *exporter, Py_buffer *view, int flags);" msgstr "" -#: c-api/typeobj.rst:2493 +#: c-api/typeobj.rst:2684 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:2497 +#: c-api/typeobj.rst:2688 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:2500 +#: c-api/typeobj.rst:2691 msgid "Fill in the requested fields." msgstr "" -#: c-api/typeobj.rst:2502 +#: c-api/typeobj.rst:2693 msgid "Increment an internal counter for the number of exports." msgstr "" -#: c-api/typeobj.rst:2504 +#: c-api/typeobj.rst:2695 msgid "" "Set :c:expr:`view->obj` to *exporter* and increment :c:expr:`view->obj`." msgstr "" -#: c-api/typeobj.rst:2506 +#: c-api/typeobj.rst:2697 msgid "Return ``0``." msgstr "" -#: c-api/typeobj.rst:2508 +#: c-api/typeobj.rst:2699 msgid "" "If *exporter* is part of a chain or tree of buffer providers, two main " "schemes can be used:" msgstr "" -#: c-api/typeobj.rst:2511 +#: c-api/typeobj.rst:2702 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:2514 +#: c-api/typeobj.rst:2705 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:2518 +#: c-api/typeobj.rst:2709 msgid "" "The individual fields of *view* are described in section :ref:`Buffer " "structure `, the rules how an exporter must react to " @@ -3619,7 +3631,7 @@ msgid "" "types>`." msgstr "" -#: c-api/typeobj.rst:2523 +#: c-api/typeobj.rst:2714 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:" @@ -3628,23 +3640,23 @@ msgid "" "internal` are read-only for the consumer." msgstr "" -#: c-api/typeobj.rst:2530 +#: c-api/typeobj.rst:2721 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:2533 +#: c-api/typeobj.rst:2724 msgid "" ":c:func:`PyObject_GetBuffer` is the interface for the consumer that wraps " "this function." msgstr "" -#: c-api/typeobj.rst:2540 +#: c-api/typeobj.rst:2733 msgid "void (PyObject *exporter, Py_buffer *view);" msgstr "" -#: c-api/typeobj.rst:2542 +#: c-api/typeobj.rst:2735 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 " @@ -3652,15 +3664,15 @@ msgid "" "these optional steps:" msgstr "" -#: c-api/typeobj.rst:2547 +#: c-api/typeobj.rst:2740 msgid "Decrement an internal counter for the number of exports." msgstr "" -#: c-api/typeobj.rst:2549 +#: c-api/typeobj.rst:2742 msgid "If the counter is ``0``, free all memory associated with *view*." msgstr "" -#: c-api/typeobj.rst:2551 +#: c-api/typeobj.rst:2744 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 " @@ -3668,30 +3680,30 @@ msgid "" "*view* argument." msgstr "" -#: c-api/typeobj.rst:2557 +#: c-api/typeobj.rst:2750 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:2562 +#: c-api/typeobj.rst:2755 msgid "" ":c:func:`PyBuffer_Release` is the interface for the consumer that wraps this " "function." msgstr "" -#: c-api/typeobj.rst:2570 +#: c-api/typeobj.rst:2763 msgid "Async Object Structures" msgstr "" -#: c-api/typeobj.rst:2578 +#: c-api/typeobj.rst:2771 msgid "" "This structure holds pointers to the functions required to implement :term:" "`awaitable` and :term:`asynchronous iterator` objects." msgstr "" -#: c-api/typeobj.rst:2583 +#: c-api/typeobj.rst:2776 msgid "" "typedef struct {\n" " unaryfunc am_await;\n" @@ -3701,61 +3713,61 @@ msgid "" "} PyAsyncMethods;" msgstr "" -#: c-api/typeobj.rst:2594 +#: c-api/typeobj.rst:2789 msgid "PyObject *am_await(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:2596 +#: c-api/typeobj.rst:2791 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:2599 +#: c-api/typeobj.rst:2794 msgid "" "This slot may be set to ``NULL`` if an object is not an :term:`awaitable`." msgstr "" -#: c-api/typeobj.rst:2605 +#: c-api/typeobj.rst:2802 msgid "PyObject *am_aiter(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:2607 +#: c-api/typeobj.rst:2804 msgid "" "Must return an :term:`asynchronous iterator` object. See :meth:`~object." "__anext__` for details." msgstr "" -#: c-api/typeobj.rst:2610 +#: c-api/typeobj.rst:2807 msgid "" "This slot may be set to ``NULL`` if an object does not implement " "asynchronous iteration protocol." msgstr "" -#: c-api/typeobj.rst:2617 +#: c-api/typeobj.rst:2816 msgid "PyObject *am_anext(PyObject *self);" msgstr "" -#: c-api/typeobj.rst:2619 +#: c-api/typeobj.rst:2818 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:2627 +#: c-api/typeobj.rst:2828 msgid "PySendResult am_send(PyObject *self, PyObject *arg, PyObject **result);" msgstr "" -#: c-api/typeobj.rst:2629 +#: c-api/typeobj.rst:2830 msgid "" "See :c:func:`PyIter_Send` for details. This slot may be set to ``NULL``." msgstr "" -#: c-api/typeobj.rst:2638 +#: c-api/typeobj.rst:2839 msgid "Slot Type typedefs" msgstr "" -#: c-api/typeobj.rst:2642 +#: c-api/typeobj.rst:2843 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 " @@ -3769,80 +3781,80 @@ msgid "" "length of the block should be :c:member:`~PyTypeObject.tp_basicsize`." msgstr "" -#: c-api/typeobj.rst:2652 +#: c-api/typeobj.rst:2853 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:2659 +#: c-api/typeobj.rst:2860 msgid "See :c:member:`~PyTypeObject.tp_free`." msgstr "" -#: c-api/typeobj.rst:2663 +#: c-api/typeobj.rst:2864 msgid "See :c:member:`~PyTypeObject.tp_new`." msgstr "" -#: c-api/typeobj.rst:2667 +#: c-api/typeobj.rst:2868 msgid "See :c:member:`~PyTypeObject.tp_init`." msgstr "" -#: c-api/typeobj.rst:2671 +#: c-api/typeobj.rst:2872 msgid "See :c:member:`~PyTypeObject.tp_repr`." msgstr "" -#: c-api/typeobj.rst:2684 +#: c-api/typeobj.rst:2885 msgid "Return the value of the named attribute for the object." msgstr "" -#: c-api/typeobj.rst:2690 +#: c-api/typeobj.rst:2891 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:2686 +#: c-api/typeobj.rst:2887 msgid "See :c:member:`~PyTypeObject.tp_getattro`." msgstr "" -#: c-api/typeobj.rst:2693 +#: c-api/typeobj.rst:2894 msgid "See :c:member:`~PyTypeObject.tp_setattro`." msgstr "" -#: c-api/typeobj.rst:2697 +#: c-api/typeobj.rst:2898 msgid "See :c:member:`~PyTypeObject.tp_descr_get`." msgstr "" -#: c-api/typeobj.rst:2701 +#: c-api/typeobj.rst:2902 msgid "See :c:member:`~PyTypeObject.tp_descr_set`." msgstr "" -#: c-api/typeobj.rst:2705 +#: c-api/typeobj.rst:2906 msgid "See :c:member:`~PyTypeObject.tp_hash`." msgstr "" -#: c-api/typeobj.rst:2709 +#: c-api/typeobj.rst:2910 msgid "See :c:member:`~PyTypeObject.tp_richcompare`." msgstr "" -#: c-api/typeobj.rst:2713 +#: c-api/typeobj.rst:2914 msgid "See :c:member:`~PyTypeObject.tp_iter`." msgstr "" -#: c-api/typeobj.rst:2717 +#: c-api/typeobj.rst:2918 msgid "See :c:member:`~PyTypeObject.tp_iternext`." msgstr "" -#: c-api/typeobj.rst:2731 +#: c-api/typeobj.rst:2932 msgid "See :c:member:`~PyAsyncMethods.am_send`." msgstr "" -#: c-api/typeobj.rst:2747 +#: c-api/typeobj.rst:2948 msgid "Examples" msgstr "" -#: c-api/typeobj.rst:2749 +#: c-api/typeobj.rst:2950 msgid "" "The following are simple examples of Python type definitions. They include " "common usage you may encounter. Some demonstrate tricky corner cases. For " @@ -3850,11 +3862,11 @@ msgid "" "and :ref:`new-types-topics`." msgstr "" -#: c-api/typeobj.rst:2754 +#: c-api/typeobj.rst:2955 msgid "A basic :ref:`static type `::" msgstr "" -#: c-api/typeobj.rst:2756 +#: c-api/typeobj.rst:2957 msgid "" "typedef struct {\n" " PyObject_HEAD\n" @@ -3872,13 +3884,13 @@ msgid "" "};" msgstr "" -#: c-api/typeobj.rst:2771 +#: c-api/typeobj.rst:2972 msgid "" "You may also find older code (especially in the CPython code base) with a " "more verbose initializer::" msgstr "" -#: c-api/typeobj.rst:2774 +#: c-api/typeobj.rst:2975 msgid "" "static PyTypeObject MyObject_Type = {\n" " PyVarObject_HEAD_INIT(NULL, 0)\n" @@ -3922,11 +3934,11 @@ msgid "" "};" msgstr "" -#: c-api/typeobj.rst:2815 +#: c-api/typeobj.rst:3016 msgid "A type that supports weakrefs, instance dicts, and hashing::" msgstr "" -#: c-api/typeobj.rst:2817 +#: c-api/typeobj.rst:3018 msgid "" "typedef struct {\n" " PyObject_HEAD\n" @@ -3952,14 +3964,14 @@ msgid "" "};" msgstr "" -#: c-api/typeobj.rst:2840 +#: c-api/typeobj.rst:3041 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:2844 +#: c-api/typeobj.rst:3045 msgid "" "typedef struct {\n" " PyUnicodeObject raw;\n" @@ -3977,12 +3989,12 @@ msgid "" "};" msgstr "" -#: c-api/typeobj.rst:2859 +#: c-api/typeobj.rst:3060 msgid "" "The simplest :ref:`static type ` with fixed-length instances::" msgstr "" -#: c-api/typeobj.rst:2861 +#: c-api/typeobj.rst:3062 msgid "" "typedef struct {\n" " PyObject_HEAD\n" @@ -3994,13 +4006,13 @@ msgid "" "};" msgstr "" -#: c-api/typeobj.rst:2870 +#: c-api/typeobj.rst:3071 msgid "" "The simplest :ref:`static type ` with variable-length " "instances::" msgstr "" -#: c-api/typeobj.rst:2872 +#: c-api/typeobj.rst:3073 msgid "" "typedef struct {\n" " PyObject_VAR_HEAD\n" @@ -4015,14 +4027,14 @@ msgid "" "};" msgstr "" -#: c-api/typeobj.rst:907 +#: c-api/typeobj.rst:918 msgid "built-in function" msgstr "" -#: c-api/typeobj.rst:842 +#: c-api/typeobj.rst:851 msgid "repr" msgstr "" -#: c-api/typeobj.rst:907 +#: c-api/typeobj.rst:918 msgid "hash" msgstr "" diff --git a/c-api/unicode.po b/c-api/unicode.po index d1fd3abf..999fa8af 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -315,40 +315,52 @@ msgstr "" #: c-api/unicode.rst:321 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:326 +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:331 +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:328 +#: c-api/unicode.rst:338 msgid "Creating and accessing Unicode strings" msgstr "" -#: c-api/unicode.rst:330 +#: c-api/unicode.rst:340 msgid "" "To create Unicode objects and access their basic sequence properties, use " "these APIs:" msgstr "" -#: c-api/unicode.rst:335 +#: c-api/unicode.rst:345 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:339 +#: c-api/unicode.rst:349 msgid "" "This is the recommended way to allocate a new Unicode object. Objects " "created using this function are not resizable." msgstr "" -#: c-api/unicode.rst:342 +#: c-api/unicode.rst:352 msgid "On error, set an exception and return ``NULL``." msgstr "" -#: c-api/unicode.rst:350 +#: c-api/unicode.rst:360 msgid "" "Create a new Unicode object with the given *kind* (possible values are :c:" "macro:`PyUnicode_1BYTE_KIND` etc., as returned by :c:func:" @@ -356,7 +368,7 @@ msgid "" "1, 2 or 4 bytes per character, as given by the kind." msgstr "" -#: c-api/unicode.rst:355 +#: c-api/unicode.rst:365 msgid "" "If necessary, the input *buffer* is copied and transformed into the " "canonical representation. For example, if the *buffer* is a UCS4 string (:c:" @@ -364,7 +376,7 @@ msgid "" "range, it will be transformed into UCS1 (:c:macro:`PyUnicode_1BYTE_KIND`)." msgstr "" -#: c-api/unicode.rst:366 +#: c-api/unicode.rst:376 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 " @@ -372,29 +384,29 @@ msgid "" "data is not allowed." msgstr "" -#: c-api/unicode.rst:372 +#: c-api/unicode.rst:382 msgid "This function raises :exc:`SystemError` when:" msgstr "" -#: c-api/unicode.rst:374 +#: c-api/unicode.rst:384 msgid "*size* < 0," msgstr "" -#: c-api/unicode.rst:375 +#: c-api/unicode.rst:385 msgid "*str* is ``NULL`` and *size* > 0" msgstr "" -#: c-api/unicode.rst:377 +#: c-api/unicode.rst:387 msgid "*str* == ``NULL`` with *size* > 0 is not allowed anymore." msgstr "" -#: c-api/unicode.rst:383 +#: c-api/unicode.rst:393 msgid "" "Create a Unicode object from a UTF-8 encoded null-terminated char buffer " "*str*." msgstr "" -#: c-api/unicode.rst:389 +#: c-api/unicode.rst:399 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 " @@ -403,23 +415,23 @@ msgid "" "*format* ASCII-encoded string." msgstr "" -#: c-api/unicode.rst:395 +#: c-api/unicode.rst:405 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:398 +#: c-api/unicode.rst:408 msgid "The ``'%'`` character, which marks the start of the specifier." msgstr "" -#: c-api/unicode.rst:400 +#: c-api/unicode.rst:410 msgid "" "Conversion flags (optional), which affect the result of some conversion " "types." msgstr "" -#: c-api/unicode.rst:403 +#: c-api/unicode.rst:413 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:" @@ -427,7 +439,7 @@ msgid "" "optional precision." msgstr "" -#: c-api/unicode.rst:408 +#: c-api/unicode.rst:418 msgid "" "Precision (optional), given as a ``'.'`` (dot) followed by the precision. If " "specified as ``'*'`` (an asterisk), the actual precision is given in the " @@ -435,312 +447,312 @@ msgid "" "comes after the precision." msgstr "" -#: c-api/unicode.rst:413 +#: c-api/unicode.rst:423 msgid "Length modifier (optional)." msgstr "" -#: c-api/unicode.rst:415 +#: c-api/unicode.rst:425 msgid "Conversion type." msgstr "" -#: c-api/unicode.rst:417 +#: c-api/unicode.rst:427 msgid "The conversion flag characters are:" msgstr "" -#: c-api/unicode.rst:422 +#: c-api/unicode.rst:432 msgid "Flag" msgstr "" -#: c-api/unicode.rst:422 +#: c-api/unicode.rst:432 msgid "Meaning" msgstr "" -#: c-api/unicode.rst:424 +#: c-api/unicode.rst:434 msgid "``0``" msgstr "" -#: c-api/unicode.rst:424 +#: c-api/unicode.rst:434 msgid "The conversion will be zero padded for numeric values." msgstr "" -#: c-api/unicode.rst:426 +#: c-api/unicode.rst:436 msgid "``-``" msgstr "" -#: c-api/unicode.rst:426 +#: c-api/unicode.rst:436 msgid "" "The converted value is left adjusted (overrides the ``0`` flag if both are " "given)." msgstr "" -#: c-api/unicode.rst:430 +#: c-api/unicode.rst:440 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:437 +#: c-api/unicode.rst:447 msgid "Modifier" msgstr "" -#: c-api/unicode.rst:437 +#: c-api/unicode.rst:447 msgid "Types" msgstr "" -#: c-api/unicode.rst:439 +#: c-api/unicode.rst:449 msgid "``l``" msgstr "" -#: c-api/unicode.rst:439 +#: c-api/unicode.rst:449 msgid ":c:expr:`long` or :c:expr:`unsigned long`" msgstr "" -#: c-api/unicode.rst:441 +#: c-api/unicode.rst:451 msgid "``ll``" msgstr "" -#: c-api/unicode.rst:441 +#: c-api/unicode.rst:451 msgid ":c:expr:`long long` or :c:expr:`unsigned long long`" msgstr "" -#: c-api/unicode.rst:443 +#: c-api/unicode.rst:453 msgid "``j``" msgstr "" -#: c-api/unicode.rst:443 +#: c-api/unicode.rst:453 msgid ":c:type:`intmax_t` or :c:type:`uintmax_t`" msgstr "" -#: c-api/unicode.rst:445 +#: c-api/unicode.rst:455 msgid "``z``" msgstr "" -#: c-api/unicode.rst:445 +#: c-api/unicode.rst:455 msgid ":c:type:`size_t` or :c:type:`ssize_t`" msgstr "" -#: c-api/unicode.rst:447 +#: c-api/unicode.rst:457 msgid "``t``" msgstr "" -#: c-api/unicode.rst:447 +#: c-api/unicode.rst:457 msgid ":c:type:`ptrdiff_t`" msgstr "" -#: c-api/unicode.rst:450 +#: c-api/unicode.rst:460 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:453 +#: c-api/unicode.rst:463 msgid "The conversion specifiers are:" msgstr "" -#: c-api/unicode.rst:459 +#: c-api/unicode.rst:469 msgid "Conversion Specifier" msgstr "" -#: c-api/unicode.rst:460 +#: c-api/unicode.rst:470 msgid "Type" msgstr "" -#: c-api/unicode.rst:461 +#: c-api/unicode.rst:471 msgid "Comment" msgstr "" -#: c-api/unicode.rst:463 +#: c-api/unicode.rst:473 msgid "``%``" msgstr "" -#: c-api/unicode.rst:464 +#: c-api/unicode.rst:474 msgid "*n/a*" msgstr "" -#: c-api/unicode.rst:465 +#: c-api/unicode.rst:475 msgid "The literal ``%`` character." msgstr "" -#: c-api/unicode.rst:467 +#: c-api/unicode.rst:477 msgid "``d``, ``i``" msgstr "" -#: c-api/unicode.rst:472 c-api/unicode.rst:480 c-api/unicode.rst:484 +#: c-api/unicode.rst:482 c-api/unicode.rst:490 c-api/unicode.rst:494 msgid "Specified by the length modifier" msgstr "" -#: c-api/unicode.rst:469 +#: c-api/unicode.rst:479 msgid "The decimal representation of a signed C integer." msgstr "" -#: c-api/unicode.rst:471 +#: c-api/unicode.rst:481 msgid "``u``" msgstr "" -#: c-api/unicode.rst:473 +#: c-api/unicode.rst:483 msgid "The decimal representation of an unsigned C integer." msgstr "" -#: c-api/unicode.rst:475 +#: c-api/unicode.rst:485 msgid "``o``" msgstr "" -#: c-api/unicode.rst:477 +#: c-api/unicode.rst:487 msgid "The octal representation of an unsigned C integer." msgstr "" -#: c-api/unicode.rst:479 +#: c-api/unicode.rst:489 msgid "``x``" msgstr "" -#: c-api/unicode.rst:481 +#: c-api/unicode.rst:491 msgid "The hexadecimal representation of an unsigned C integer (lowercase)." msgstr "" -#: c-api/unicode.rst:483 +#: c-api/unicode.rst:493 msgid "``X``" msgstr "" -#: c-api/unicode.rst:485 +#: c-api/unicode.rst:495 msgid "The hexadecimal representation of an unsigned C integer (uppercase)." msgstr "" -#: c-api/unicode.rst:487 +#: c-api/unicode.rst:497 msgid "``c``" msgstr "" -#: c-api/unicode.rst:488 +#: c-api/unicode.rst:498 msgid ":c:expr:`int`" msgstr "" -#: c-api/unicode.rst:489 +#: c-api/unicode.rst:499 msgid "A single character." msgstr "" -#: c-api/unicode.rst:491 +#: c-api/unicode.rst:501 msgid "``s``" msgstr "" -#: c-api/unicode.rst:492 +#: c-api/unicode.rst:502 msgid ":c:expr:`const char*` or :c:expr:`const wchar_t*`" msgstr "" -#: c-api/unicode.rst:493 +#: c-api/unicode.rst:503 msgid "A null-terminated C character array." msgstr "" -#: c-api/unicode.rst:495 +#: c-api/unicode.rst:505 msgid "``p``" msgstr "" -#: c-api/unicode.rst:496 +#: c-api/unicode.rst:506 msgid ":c:expr:`const void*`" msgstr "" -#: c-api/unicode.rst:497 +#: c-api/unicode.rst:507 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:502 +#: c-api/unicode.rst:512 msgid "``A``" msgstr "" -#: c-api/unicode.rst:507 c-api/unicode.rst:521 c-api/unicode.rst:530 +#: c-api/unicode.rst:517 c-api/unicode.rst:531 c-api/unicode.rst:540 msgid ":c:expr:`PyObject*`" msgstr "" -#: c-api/unicode.rst:504 +#: c-api/unicode.rst:514 msgid "The result of calling :func:`ascii`." msgstr "" -#: c-api/unicode.rst:506 +#: c-api/unicode.rst:516 msgid "``U``" msgstr "" -#: c-api/unicode.rst:508 +#: c-api/unicode.rst:518 msgid "A Unicode object." msgstr "" -#: c-api/unicode.rst:510 +#: c-api/unicode.rst:520 msgid "``V``" msgstr "" -#: c-api/unicode.rst:511 +#: c-api/unicode.rst:521 msgid ":c:expr:`PyObject*`, :c:expr:`const char*` or :c:expr:`const wchar_t*`" msgstr "" -#: c-api/unicode.rst:512 +#: c-api/unicode.rst:522 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:516 +#: c-api/unicode.rst:526 msgid "``S``" msgstr "" -#: c-api/unicode.rst:518 +#: c-api/unicode.rst:528 msgid "The result of calling :c:func:`PyObject_Str`." msgstr "" -#: c-api/unicode.rst:520 +#: c-api/unicode.rst:530 msgid "``R``" msgstr "" -#: c-api/unicode.rst:522 +#: c-api/unicode.rst:532 msgid "The result of calling :c:func:`PyObject_Repr`." msgstr "" -#: c-api/unicode.rst:524 +#: c-api/unicode.rst:534 msgid "``T``" msgstr "" -#: c-api/unicode.rst:526 +#: c-api/unicode.rst:536 msgid "" "Get the fully qualified name of an object type; call :c:func:" "`PyType_GetFullyQualifiedName`." msgstr "" -#: c-api/unicode.rst:529 +#: c-api/unicode.rst:539 msgid "``#T``" msgstr "" -#: c-api/unicode.rst:531 +#: c-api/unicode.rst:541 msgid "" "Similar to ``T`` format, but use a colon (``:``) as separator between the " "module name and the qualified name." msgstr "" -#: c-api/unicode.rst:534 +#: c-api/unicode.rst:544 msgid "``N``" msgstr "" -#: c-api/unicode.rst:540 +#: c-api/unicode.rst:550 msgid ":c:expr:`PyTypeObject*`" msgstr "" -#: c-api/unicode.rst:536 +#: c-api/unicode.rst:546 msgid "" "Get the fully qualified name of a type; call :c:func:" "`PyType_GetFullyQualifiedName`." msgstr "" -#: c-api/unicode.rst:539 +#: c-api/unicode.rst:549 msgid "``#N``" msgstr "" -#: c-api/unicode.rst:541 +#: c-api/unicode.rst:551 msgid "" "Similar to ``N`` format, but use a colon (``:``) as separator between the " "module name and the qualified name." msgstr "" -#: c-api/unicode.rst:545 +#: c-api/unicode.rst:555 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 " @@ -750,28 +762,28 @@ msgid "" "``PyObject*`` argument is not ``NULL``)." msgstr "" -#: c-api/unicode.rst:553 +#: c-api/unicode.rst:563 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:557 +#: c-api/unicode.rst:567 msgid "Support for ``\"%lld\"`` and ``\"%llu\"`` added." msgstr "" -#: c-api/unicode.rst:560 +#: c-api/unicode.rst:570 msgid "Support for ``\"%li\"``, ``\"%lli\"`` and ``\"%zi\"`` added." msgstr "" -#: c-api/unicode.rst:563 +#: c-api/unicode.rst:573 msgid "" "Support width and precision formatter for ``\"%s\"``, ``\"%A\"``, " "``\"%U\"``, ``\"%V\"``, ``\"%S\"``, ``\"%R\"`` added." msgstr "" -#: c-api/unicode.rst:567 +#: c-api/unicode.rst:577 msgid "" "Support for conversion specifiers ``o`` and ``X``. Support for length " "modifiers ``j`` and ``t``. Length modifiers are now applied to all integer " @@ -780,50 +792,50 @@ msgid "" "flag ``-``." msgstr "" -#: c-api/unicode.rst:575 +#: c-api/unicode.rst:585 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:579 +#: c-api/unicode.rst:589 msgid "Support for ``%T``, ``%#T``, ``%N`` and ``%#N`` formats added." msgstr "" -#: c-api/unicode.rst:585 +#: c-api/unicode.rst:595 msgid "" "Identical to :c:func:`PyUnicode_FromFormat` except that it takes exactly two " "arguments." msgstr "" -#: c-api/unicode.rst:591 +#: c-api/unicode.rst:601 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:595 +#: c-api/unicode.rst:605 msgid "" "Objects other than Unicode or its subtypes will cause a :exc:`TypeError`." msgstr "" -#: c-api/unicode.rst:600 +#: c-api/unicode.rst:610 msgid "Create a Unicode Object from the given Unicode code point *ordinal*." msgstr "" -#: c-api/unicode.rst:602 +#: c-api/unicode.rst:612 msgid "" "The ordinal must be in ``range(0x110000)``. A :exc:`ValueError` is raised in " "the case it is not." msgstr "" -#: c-api/unicode.rst:609 +#: c-api/unicode.rst:619 msgid "Decode an encoded object *obj* to a Unicode object." msgstr "" -#: c-api/unicode.rst:611 +#: c-api/unicode.rst:621 msgid "" ":class:`bytes`, :class:`bytearray` and other :term:`bytes-like objects " "` are decoded according to the given *encoding* and using " @@ -831,39 +843,48 @@ msgid "" "interface use the default values (see :ref:`builtincodecs` for details)." msgstr "" -#: c-api/unicode.rst:617 +#: c-api/unicode.rst:627 msgid "" "All other objects, including Unicode objects, cause a :exc:`TypeError` to be " "set." msgstr "" -#: c-api/unicode.rst:620 +#: c-api/unicode.rst:630 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:626 +#: c-api/unicode.rst:636 +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 " +"table, returns either a compact internal mapping object or a dictionary " +"mapping character ordinals to byte values. Raises a :exc:`TypeError` and " +"return ``NULL`` on invalid input. .. versionadded:: 3.2" +msgstr "" + +#: c-api/unicode.rst:646 msgid "" "Return the name of the default string encoding, ``\"utf-8\"``. See :func:" "`sys.getdefaultencoding`." msgstr "" -#: c-api/unicode.rst:629 +#: c-api/unicode.rst:649 msgid "" "The returned string does not need to be freed, and is valid until " "interpreter shutdown." msgstr "" -#: c-api/unicode.rst:635 +#: c-api/unicode.rst:655 msgid "Return the length of the Unicode object, in code points." msgstr "" -#: c-api/unicode.rst:637 +#: c-api/unicode.rst:657 msgid "On error, set an exception and return ``-1``." msgstr "" -#: c-api/unicode.rst:648 +#: c-api/unicode.rst:668 msgid "" "Copy characters from one Unicode object into another. This function " "performs character conversion when necessary and falls back to :c:func:`!" @@ -871,61 +892,61 @@ msgid "" "otherwise returns the number of copied characters." msgstr "" -#: c-api/unicode.rst:659 +#: c-api/unicode.rst:679 msgid "" "Fill a string with a character: write *fill_char* into ``unicode[start:" "start+length]``." msgstr "" -#: c-api/unicode.rst:662 +#: c-api/unicode.rst:682 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:665 +#: c-api/unicode.rst:685 msgid "" "Return the number of written character, or return ``-1`` and raise an " "exception on error." msgstr "" -#: c-api/unicode.rst:674 +#: c-api/unicode.rst:694 msgid "" "Write a character to a string. The string must have been created through :c:" "func:`PyUnicode_New`. Since Unicode strings are supposed to be immutable, " "the string must not be shared, or have been hashed yet." msgstr "" -#: c-api/unicode.rst:678 +#: c-api/unicode.rst:698 msgid "" "This function checks that *unicode* is a Unicode object, that the index is " "not out of bounds, and that the object can be modified safely (i.e. that it " "its reference count is one)." msgstr "" -#: c-api/unicode.rst:682 +#: c-api/unicode.rst:702 msgid "Return ``0`` on success, ``-1`` on error with an exception set." msgstr "" -#: c-api/unicode.rst:689 +#: c-api/unicode.rst:709 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:693 +#: c-api/unicode.rst:713 msgid "Return character on success, ``-1`` on error with an exception set." msgstr "" -#: c-api/unicode.rst:701 +#: c-api/unicode.rst:721 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:711 +#: c-api/unicode.rst:731 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 " @@ -933,7 +954,7 @@ msgid "" "*unicode*). *buffer* is returned on success." msgstr "" -#: c-api/unicode.rst:721 +#: c-api/unicode.rst:741 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:" @@ -941,17 +962,17 @@ msgid "" "appended." msgstr "" -#: c-api/unicode.rst:730 +#: c-api/unicode.rst:750 msgid "Locale Encoding" msgstr "" -#: c-api/unicode.rst:732 +#: c-api/unicode.rst:752 msgid "" "The current locale encoding can be used to decode text from the operating " "system." msgstr "" -#: c-api/unicode.rst:739 +#: c-api/unicode.rst:759 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 " @@ -960,21 +981,21 @@ msgid "" "null character but cannot contain embedded null characters." msgstr "" -#: c-api/unicode.rst:746 +#: c-api/unicode.rst:766 msgid "" "Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` to decode a string from the :" "term:`filesystem encoding and error handler`." msgstr "" -#: c-api/unicode.rst:784 +#: c-api/unicode.rst:804 msgid "This function ignores the :ref:`Python UTF-8 Mode `." msgstr "" -#: c-api/unicode.rst:869 +#: c-api/unicode.rst:889 msgid "The :c:func:`Py_DecodeLocale` function." msgstr "" -#: c-api/unicode.rst:757 +#: c-api/unicode.rst:777 msgid "" "The function now also uses the current locale encoding for the " "``surrogateescape`` error handler, except on Android. Previously, :c:func:" @@ -982,13 +1003,13 @@ msgid "" "locale encoding was used for ``strict``." msgstr "" -#: c-api/unicode.rst:766 +#: c-api/unicode.rst:786 msgid "" "Similar to :c:func:`PyUnicode_DecodeLocaleAndSize`, but compute the string " "length using :c:func:`!strlen`." msgstr "" -#: c-api/unicode.rst:774 +#: c-api/unicode.rst:794 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 " @@ -997,17 +1018,17 @@ msgid "" "`bytes` object. *unicode* cannot contain embedded null characters." msgstr "" -#: c-api/unicode.rst:781 +#: c-api/unicode.rst:801 msgid "" "Use :c:func:`PyUnicode_EncodeFSDefault` to encode a string to the :term:" "`filesystem encoding and error handler`." msgstr "" -#: c-api/unicode.rst:900 +#: c-api/unicode.rst:920 msgid "The :c:func:`Py_EncodeLocale` function." msgstr "" -#: c-api/unicode.rst:792 +#: c-api/unicode.rst:812 msgid "" "The function now also uses the current locale encoding for the " "``surrogateescape`` error handler, except on Android. Previously, :c:func:" @@ -1015,24 +1036,24 @@ msgid "" "locale encoding was used for ``strict``." msgstr "" -#: c-api/unicode.rst:801 +#: c-api/unicode.rst:821 msgid "File System Encoding" msgstr "" -#: c-api/unicode.rst:803 +#: c-api/unicode.rst:823 msgid "" "Functions encoding to and decoding from the :term:`filesystem encoding and " "error handler` (:pep:`383` and :pep:`529`)." msgstr "" -#: c-api/unicode.rst:806 +#: c-api/unicode.rst:826 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:812 +#: c-api/unicode.rst:832 msgid "" ":ref:`PyArg_Parse\\* converter `: encode :class:`str` objects " "-- obtained directly or through the :class:`os.PathLike` interface -- to :" @@ -1045,24 +1066,24 @@ msgid "" "not allowed in the result. On failure, return ``0`` with an exception set." msgstr "" -#: c-api/unicode.rst:824 +#: c-api/unicode.rst:844 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:856 +#: c-api/unicode.rst:876 msgid "Accepts a :term:`path-like object`." msgstr "" -#: c-api/unicode.rst:832 +#: c-api/unicode.rst:852 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:838 +#: c-api/unicode.rst:858 msgid "" ":ref:`PyArg_Parse\\* converter `: decode :class:`bytes` objects " "-- obtained either directly or indirectly through the :class:`os.PathLike` " @@ -1076,62 +1097,62 @@ msgid "" "result. On failure, return ``0`` with an exception set." msgstr "" -#: c-api/unicode.rst:851 +#: c-api/unicode.rst:871 msgid "" "If *obj* is ``NULL``, release the strong reference to the object referred to " "by *result* and return ``1``." msgstr "" -#: c-api/unicode.rst:862 +#: c-api/unicode.rst:882 msgid "Decode a string from the :term:`filesystem encoding and error handler`." msgstr "" -#: c-api/unicode.rst:864 +#: c-api/unicode.rst:884 msgid "" "If you need to decode a string from the current locale encoding, use :c:func:" "`PyUnicode_DecodeLocaleAndSize`." msgstr "" -#: c-api/unicode.rst:884 c-api/unicode.rst:904 +#: c-api/unicode.rst:904 c-api/unicode.rst:924 msgid "" "The :term:`filesystem error handler ` " "is now used." msgstr "" -#: c-api/unicode.rst:878 +#: c-api/unicode.rst:898 msgid "" "Decode a null-terminated string from the :term:`filesystem encoding and " "error handler`." msgstr "" -#: c-api/unicode.rst:881 +#: c-api/unicode.rst:901 msgid "" "If the string length is known, use :c:func:" "`PyUnicode_DecodeFSDefaultAndSize`." msgstr "" -#: c-api/unicode.rst:891 +#: c-api/unicode.rst:911 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:895 +#: c-api/unicode.rst:915 msgid "" "If you need to encode a string to the current locale encoding, use :c:func:" "`PyUnicode_EncodeLocale`." msgstr "" -#: c-api/unicode.rst:909 +#: c-api/unicode.rst:929 msgid "wchar_t Support" msgstr "" -#: c-api/unicode.rst:911 +#: c-api/unicode.rst:931 msgid ":c:type:`wchar_t` support for platforms which support it:" msgstr "" -#: c-api/unicode.rst:915 +#: c-api/unicode.rst:935 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 " @@ -1139,7 +1160,7 @@ msgid "" "failure." msgstr "" -#: c-api/unicode.rst:923 +#: c-api/unicode.rst:943 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 " @@ -1147,13 +1168,13 @@ msgid "" "`wchar_t` characters copied or ``-1`` in case of an error." msgstr "" -#: c-api/unicode.rst:928 +#: c-api/unicode.rst:948 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:931 +#: c-api/unicode.rst:951 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:" @@ -1163,7 +1184,7 @@ msgid "" "most C functions." msgstr "" -#: c-api/unicode.rst:941 +#: c-api/unicode.rst:961 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 " @@ -1174,37 +1195,37 @@ msgid "" "`wchar_t*` string contains null characters a :exc:`ValueError` is raised." msgstr "" -#: c-api/unicode.rst:949 +#: c-api/unicode.rst:969 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:956 +#: c-api/unicode.rst:976 msgid "" "Raises a :exc:`ValueError` if *size* is ``NULL`` and the :c:expr:`wchar_t*` " "string contains null characters." msgstr "" -#: c-api/unicode.rst:964 +#: c-api/unicode.rst:984 msgid "Built-in Codecs" msgstr "" -#: c-api/unicode.rst:966 +#: c-api/unicode.rst:986 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:969 +#: c-api/unicode.rst:989 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:973 +#: c-api/unicode.rst:993 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 " @@ -1212,28 +1233,28 @@ msgid "" "handler` internally." msgstr "" -#: c-api/unicode.rst:978 +#: c-api/unicode.rst:998 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:982 +#: c-api/unicode.rst:1002 msgid "" "The codecs all use a similar interface. Only deviations from the following " "generic ones are documented for simplicity." msgstr "" -#: c-api/unicode.rst:987 +#: c-api/unicode.rst:1007 msgid "Generic Codecs" msgstr "" -#: c-api/unicode.rst:989 +#: c-api/unicode.rst:1009 msgid "These are the generic codec APIs:" msgstr "" -#: c-api/unicode.rst:995 +#: c-api/unicode.rst:1015 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 " @@ -1242,7 +1263,7 @@ msgid "" "was raised by the codec." msgstr "" -#: c-api/unicode.rst:1005 +#: c-api/unicode.rst:1025 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 " @@ -1251,21 +1272,21 @@ msgid "" "was raised by the codec." msgstr "" -#: c-api/unicode.rst:1013 +#: c-api/unicode.rst:1033 msgid "UTF-8 Codecs" msgstr "" -#: c-api/unicode.rst:1015 +#: c-api/unicode.rst:1035 msgid "These are the UTF-8 codec APIs:" msgstr "" -#: c-api/unicode.rst:1020 +#: c-api/unicode.rst:1040 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:1027 +#: c-api/unicode.rst:1047 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF8`. If " "*consumed* is not ``NULL``, trailing incomplete UTF-8 byte sequences will " @@ -1273,20 +1294,20 @@ msgid "" "of bytes that have been decoded will be stored in *consumed*." msgstr "" -#: c-api/unicode.rst:1035 +#: c-api/unicode.rst:1055 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:1054 +#: c-api/unicode.rst:1074 msgid "" "The function fails if the string contains surrogate code points (``U+D800`` " "- ``U+DFFF``)." msgstr "" -#: c-api/unicode.rst:1045 +#: c-api/unicode.rst:1065 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* " @@ -1295,13 +1316,13 @@ msgid "" "regardless of whether there are any other null code points." msgstr "" -#: c-api/unicode.rst:1051 +#: c-api/unicode.rst:1071 msgid "" "On error, set an exception, set *size* to ``-1`` (if it's not NULL) and " "return ``NULL``." msgstr "" -#: c-api/unicode.rst:1057 +#: c-api/unicode.rst:1077 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 " @@ -1310,19 +1331,19 @@ msgid "" "collected." msgstr "" -#: c-api/unicode.rst:1086 +#: c-api/unicode.rst:1106 msgid "The return type is now ``const char *`` rather of ``char *``." msgstr "" -#: c-api/unicode.rst:1067 +#: c-api/unicode.rst:1087 msgid "This function is a part of the :ref:`limited API `." msgstr "" -#: c-api/unicode.rst:1073 +#: c-api/unicode.rst:1093 msgid "As :c:func:`PyUnicode_AsUTF8AndSize`, but does not store the size." msgstr "" -#: c-api/unicode.rst:1077 +#: c-api/unicode.rst:1097 msgid "" "This function does not have any special behavior for `null characters " "`_ embedded within *unicode*. " @@ -1332,35 +1353,35 @@ msgid "" "c:func:`PyUnicode_AsUTF8AndSize` instead." msgstr "" -#: c-api/unicode.rst:1091 +#: c-api/unicode.rst:1111 msgid "UTF-32 Codecs" msgstr "" -#: c-api/unicode.rst:1093 +#: c-api/unicode.rst:1113 msgid "These are the UTF-32 codec APIs:" msgstr "" -#: c-api/unicode.rst:1099 +#: c-api/unicode.rst:1119 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:1153 +#: c-api/unicode.rst:1173 msgid "" "If *byteorder* is non-``NULL``, the decoder starts decoding using the given " "byte order::" msgstr "" -#: c-api/unicode.rst:1156 +#: c-api/unicode.rst:1176 msgid "" "*byteorder == -1: little endian\n" "*byteorder == 0: native order\n" "*byteorder == 1: big endian" msgstr "" -#: c-api/unicode.rst:1110 +#: c-api/unicode.rst:1130 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 " @@ -1368,21 +1389,21 @@ msgid "" "``-1`` or ``1``, any byte order mark is copied to the output." msgstr "" -#: c-api/unicode.rst:1115 +#: c-api/unicode.rst:1135 msgid "" "After completion, *\\*byteorder* is set to the current byte order at the end " "of input data." msgstr "" -#: c-api/unicode.rst:1169 +#: c-api/unicode.rst:1189 msgid "If *byteorder* is ``NULL``, the codec starts in native order mode." msgstr "" -#: c-api/unicode.rst:1171 +#: c-api/unicode.rst:1191 msgid "Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: c-api/unicode.rst:1126 +#: c-api/unicode.rst:1146 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF32`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF32Stateful` will not " @@ -1391,29 +1412,29 @@ msgid "" "number of bytes that have been decoded will be stored in *consumed*." msgstr "" -#: c-api/unicode.rst:1135 +#: c-api/unicode.rst:1155 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:1141 +#: c-api/unicode.rst:1161 msgid "UTF-16 Codecs" msgstr "" -#: c-api/unicode.rst:1143 +#: c-api/unicode.rst:1163 msgid "These are the UTF-16 codec APIs:" msgstr "" -#: c-api/unicode.rst:1149 +#: c-api/unicode.rst:1169 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:1160 +#: c-api/unicode.rst:1180 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 " @@ -1422,13 +1443,13 @@ msgid "" "result in either a ``\\ufeff`` or a ``\\ufffe`` character)." msgstr "" -#: c-api/unicode.rst:1166 +#: c-api/unicode.rst:1186 msgid "" "After completion, ``*byteorder`` is set to the current byte order at the end " "of input data." msgstr "" -#: c-api/unicode.rst:1177 +#: c-api/unicode.rst:1197 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF16`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF16Stateful` will not " @@ -1438,28 +1459,28 @@ msgid "" "*consumed*." msgstr "" -#: c-api/unicode.rst:1186 +#: c-api/unicode.rst:1206 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:1192 +#: c-api/unicode.rst:1212 msgid "UTF-7 Codecs" msgstr "" -#: c-api/unicode.rst:1194 +#: c-api/unicode.rst:1214 msgid "These are the UTF-7 codec APIs:" msgstr "" -#: c-api/unicode.rst:1199 +#: c-api/unicode.rst:1219 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:1206 +#: c-api/unicode.rst:1226 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF7`. If " "*consumed* is not ``NULL``, trailing incomplete UTF-7 base-64 sections will " @@ -1467,101 +1488,101 @@ msgid "" "of bytes that have been decoded will be stored in *consumed*." msgstr "" -#: c-api/unicode.rst:1213 +#: c-api/unicode.rst:1233 msgid "Unicode-Escape Codecs" msgstr "" -#: c-api/unicode.rst:1215 +#: c-api/unicode.rst:1235 msgid "These are the \"Unicode Escape\" codec APIs:" msgstr "" -#: c-api/unicode.rst:1221 +#: c-api/unicode.rst:1241 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:1227 +#: c-api/unicode.rst:1247 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:1233 +#: c-api/unicode.rst:1253 msgid "Raw-Unicode-Escape Codecs" msgstr "" -#: c-api/unicode.rst:1235 +#: c-api/unicode.rst:1255 msgid "These are the \"Raw Unicode Escape\" codec APIs:" msgstr "" -#: c-api/unicode.rst:1241 +#: c-api/unicode.rst:1261 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:1247 +#: c-api/unicode.rst:1267 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:1253 +#: c-api/unicode.rst:1273 msgid "Latin-1 Codecs" msgstr "" -#: c-api/unicode.rst:1255 +#: c-api/unicode.rst:1275 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:1261 +#: c-api/unicode.rst:1281 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:1267 +#: c-api/unicode.rst:1287 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:1273 +#: c-api/unicode.rst:1293 msgid "ASCII Codecs" msgstr "" -#: c-api/unicode.rst:1275 +#: c-api/unicode.rst:1295 msgid "" "These are the ASCII codec APIs. Only 7-bit ASCII data is accepted. All " "other codes generate errors." msgstr "" -#: c-api/unicode.rst:1281 +#: c-api/unicode.rst:1301 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:1287 +#: c-api/unicode.rst:1307 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:1293 +#: c-api/unicode.rst:1313 msgid "Character Map Codecs" msgstr "" -#: c-api/unicode.rst:1295 +#: c-api/unicode.rst:1315 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 " @@ -1571,18 +1592,18 @@ msgid "" "sequences work well." msgstr "" -#: c-api/unicode.rst:1301 +#: c-api/unicode.rst:1321 msgid "These are the mapping codec APIs:" msgstr "" -#: c-api/unicode.rst:1306 +#: c-api/unicode.rst:1326 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:1310 +#: c-api/unicode.rst:1330 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 " @@ -1592,14 +1613,14 @@ msgid "" "treated as undefined mappings and cause an error." msgstr "" -#: c-api/unicode.rst:1321 +#: c-api/unicode.rst:1341 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:1325 +#: c-api/unicode.rst:1345 msgid "" "The *mapping* object must map Unicode ordinal integers to bytes objects, " "integers in the range from 0 to 255 or ``None``. Unmapped character " @@ -1607,41 +1628,41 @@ msgid "" "``None`` are treated as \"undefined mapping\" and cause an error." msgstr "" -#: c-api/unicode.rst:1331 +#: c-api/unicode.rst:1351 msgid "The following codec API is special in that maps Unicode to Unicode." msgstr "" -#: c-api/unicode.rst:1335 +#: c-api/unicode.rst:1355 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:1339 +#: c-api/unicode.rst:1359 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:1342 +#: c-api/unicode.rst:1362 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:1346 +#: c-api/unicode.rst:1366 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:1351 +#: c-api/unicode.rst:1371 msgid "MBCS codecs for Windows" msgstr "" -#: c-api/unicode.rst:1353 +#: c-api/unicode.rst:1373 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 " @@ -1649,13 +1670,13 @@ msgid "" "is defined by the user settings on the machine running the codec." msgstr "" -#: c-api/unicode.rst:1360 +#: c-api/unicode.rst:1380 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:1367 +#: c-api/unicode.rst:1387 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeMBCS`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeMBCSStateful` will not " @@ -1663,50 +1684,46 @@ msgid "" "will be stored in *consumed*." msgstr "" -#: c-api/unicode.rst:1376 +#: c-api/unicode.rst:1396 msgid "" "Similar to :c:func:`PyUnicode_DecodeMBCSStateful`, except uses the code page " "specified by *code_page*." msgstr "" -#: c-api/unicode.rst:1382 +#: c-api/unicode.rst:1402 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:1389 +#: c-api/unicode.rst:1409 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:1397 -msgid "Methods & Slots" -msgstr "" - -#: c-api/unicode.rst:1403 +#: c-api/unicode.rst:1419 msgid "Methods and Slot Functions" msgstr "" -#: c-api/unicode.rst:1405 +#: c-api/unicode.rst:1421 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:1409 +#: c-api/unicode.rst:1425 msgid "They all return ``NULL`` or ``-1`` if an exception occurs." msgstr "" -#: c-api/unicode.rst:1414 +#: c-api/unicode.rst:1430 msgid "Concat two strings giving a new Unicode string." msgstr "" -#: c-api/unicode.rst:1419 +#: c-api/unicode.rst:1435 msgid "" "Split a string giving a list of Unicode strings. If *sep* is ``NULL``, " "splitting will be done at all whitespace substrings. Otherwise, splits " @@ -1715,32 +1732,32 @@ msgid "" "list." msgstr "" -#: c-api/unicode.rst:1434 c-api/unicode.rst:1468 +#: c-api/unicode.rst:1450 c-api/unicode.rst:1484 msgid "On error, return ``NULL`` with an exception set." msgstr "" -#: c-api/unicode.rst:1426 +#: c-api/unicode.rst:1442 msgid "Equivalent to :py:meth:`str.split`." msgstr "" -#: c-api/unicode.rst:1431 +#: c-api/unicode.rst:1447 msgid "" "Similar to :c:func:`PyUnicode_Split`, but splitting will be done beginning " "at the end of the string." msgstr "" -#: c-api/unicode.rst:1436 +#: c-api/unicode.rst:1452 msgid "Equivalent to :py:meth:`str.rsplit`." msgstr "" -#: c-api/unicode.rst:1441 +#: c-api/unicode.rst:1457 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:1448 +#: c-api/unicode.rst:1464 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 " @@ -1748,39 +1765,39 @@ msgid "" "tuple containing the string itself, followed by two empty strings." msgstr "" -#: c-api/unicode.rst:1466 +#: c-api/unicode.rst:1482 msgid "*sep* must not be empty." msgstr "" -#: c-api/unicode.rst:1457 +#: c-api/unicode.rst:1473 msgid "Equivalent to :py:meth:`str.partition`." msgstr "" -#: c-api/unicode.rst:1462 +#: c-api/unicode.rst:1478 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:1470 +#: c-api/unicode.rst:1486 msgid "Equivalent to :py:meth:`str.rpartition`." msgstr "" -#: c-api/unicode.rst:1475 +#: c-api/unicode.rst:1491 msgid "" "Join a sequence of strings using the given *separator* and return the " "resulting Unicode string." msgstr "" -#: c-api/unicode.rst:1482 +#: c-api/unicode.rst:1498 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:1490 +#: c-api/unicode.rst:1506 msgid "" "Return the first position of *substr* in ``unicode[start:end]`` using the " "given *direction* (*direction* == ``1`` means to do a forward search, " @@ -1789,7 +1806,7 @@ msgid "" "``-2`` indicates that an error occurred and an exception has been set." msgstr "" -#: c-api/unicode.rst:1500 +#: c-api/unicode.rst:1516 msgid "" "Return the first position of the character *ch* in ``unicode[start:end]`` " "using the given *direction* (*direction* == ``1`` means to do a forward " @@ -1799,37 +1816,37 @@ msgid "" "set." msgstr "" -#: c-api/unicode.rst:1508 +#: c-api/unicode.rst:1524 msgid "" "*start* and *end* are now adjusted to behave like ``unicode[start:end]``." msgstr "" -#: c-api/unicode.rst:1515 +#: c-api/unicode.rst:1531 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:1522 +#: c-api/unicode.rst:1538 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:1529 +#: c-api/unicode.rst:1545 msgid "" "Compare two strings and return ``-1``, ``0``, ``1`` for less than, equal, " "and greater than, respectively." msgstr "" -#: c-api/unicode.rst:1532 +#: c-api/unicode.rst:1548 msgid "" "This function returns ``-1`` upon failure, so one should call :c:func:" "`PyErr_Occurred` to check for errors." msgstr "" -#: c-api/unicode.rst:1538 +#: c-api/unicode.rst:1554 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 " @@ -1838,18 +1855,18 @@ msgid "" "is returned." msgstr "" -#: c-api/unicode.rst:1566 +#: c-api/unicode.rst:1582 msgid "This function does not raise exceptions." msgstr "" -#: c-api/unicode.rst:1552 +#: c-api/unicode.rst:1568 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:1561 +#: c-api/unicode.rst:1577 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 " @@ -1857,47 +1874,47 @@ msgid "" "string as ISO-8859-1 if it contains non-ASCII characters." msgstr "" -#: c-api/unicode.rst:1571 +#: c-api/unicode.rst:1587 msgid "Rich compare two Unicode strings and return one of the following:" msgstr "" -#: c-api/unicode.rst:1573 +#: c-api/unicode.rst:1589 msgid "``NULL`` in case an exception was raised" msgstr "" -#: c-api/unicode.rst:1574 +#: c-api/unicode.rst:1590 msgid ":c:data:`Py_True` or :c:data:`Py_False` for successful comparisons" msgstr "" -#: c-api/unicode.rst:1575 +#: c-api/unicode.rst:1591 msgid ":c:data:`Py_NotImplemented` in case the type combination is unknown" msgstr "" -#: c-api/unicode.rst:1577 +#: c-api/unicode.rst:1593 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:1583 +#: c-api/unicode.rst:1599 msgid "" "Return a new string object from *format* and *args*; this is analogous to " "``format % args``." msgstr "" -#: c-api/unicode.rst:1589 +#: c-api/unicode.rst:1605 msgid "" "Check whether *substr* is contained in *unicode* and return true or false " "accordingly." msgstr "" -#: c-api/unicode.rst:1592 +#: c-api/unicode.rst:1608 msgid "" "*substr* has to coerce to a one element Unicode string. ``-1`` is returned " "if there was an error." msgstr "" -#: c-api/unicode.rst:1598 +#: c-api/unicode.rst:1614 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. " @@ -1908,7 +1925,7 @@ msgid "" "interns it." msgstr "" -#: c-api/unicode.rst:1605 +#: c-api/unicode.rst:1621 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; " @@ -1916,39 +1933,39 @@ msgid "" "the result.)" msgstr "" -#: c-api/unicode.rst:1610 +#: c-api/unicode.rst:1626 msgid "" "This function never raises an exception. On error, it leaves its argument " "unchanged without interning it." msgstr "" -#: c-api/unicode.rst:1613 +#: c-api/unicode.rst:1629 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:1617 +#: c-api/unicode.rst:1633 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:1623 +#: c-api/unicode.rst:1639 msgid "" "A combination of :c:func:`PyUnicode_FromString` and :c:func:" "`PyUnicode_InternInPlace`, meant for statically allocated strings." msgstr "" -#: c-api/unicode.rst:1626 +#: c-api/unicode.rst:1642 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:1630 +#: c-api/unicode.rst:1646 msgid "" "Python may keep a reference to the result, or make it :term:`immortal`, " "preventing it from being garbage-collected promptly. For interning an " @@ -1956,7 +1973,3 @@ msgid "" "prefer calling :c:func:`PyUnicode_FromString` and :c:func:" "`PyUnicode_InternInPlace` directly." msgstr "" - -#: c-api/unicode.rst:1638 -msgid "Strings interned this way are made :term:`immortal`." -msgstr "" diff --git a/c-api/utilities.po b/c-api/utilities.po index 8341d8bf..867121fa 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 8e04beba..a41c16e7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 07cbbee9..8bc7614f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,32 +116,32 @@ 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 "" "This function is called by the :c:member:`~PyTypeObject.tp_dealloc` handler " "to clear weak references." msgstr "" -#: c-api/weakref.rst:96 +#: c-api/weakref.rst:111 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:103 +#: c-api/weakref.rst:118 msgid "Clears the weakrefs for *object* without calling the callbacks." msgstr "" -#: c-api/weakref.rst:105 +#: c-api/weakref.rst:120 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 " @@ -138,7 +150,7 @@ msgid "" "clear any weakrefs that may have been created by the finalizer." msgstr "" -#: c-api/weakref.rst:111 +#: c-api/weakref.rst:126 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 f2aca82a..e639c677 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 c78f0f38..6829c7f7 100644 --- a/copyright.po +++ b/copyright.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" -"PO-Revision-Date: 2024-04-24 22:33+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -27,10 +27,9 @@ msgid "Python and this documentation is:" msgstr "Η Python και αυτή η τεκμηρίωση είναι:" #: copyright.rst:7 -#, fuzzy msgid "Copyright © 2001-2024 Python Software Foundation. All rights reserved." msgstr "" -"Copyright © 2001-2023 Python Software Foundation. Όλα τα δικαιώματα " +"Copyright © 2001-2024 Python Software Foundation. Όλα τα δικαιώματα " "διατηρούνται." #: copyright.rst:9 diff --git a/cpython b/cpython index 5daeebbb..9756d8c6 160000 --- a/cpython +++ b/cpython @@ -1 +1 @@ -Subproject commit 5daeebbbf2533bbb56f1cc95fa6db9c5efcb5dc5 +Subproject commit 9756d8c63737042db611205b0c33c353d5dbd9c3 diff --git a/deprecations/c-api-pending-removal-in-3.14.po b/deprecations/c-api-pending-removal-in-3.14.po index 8857f918..7ff7ffe6 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b9550fa7..595f133a 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,62 +22,58 @@ 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." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:9 +#: deprecations/c-api-pending-removal-in-3.15.rst:8 msgid "" ":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: Use :c:" "type:`wchar_t` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:11 +#: deprecations/c-api-pending-removal-in-3.15.rst:10 msgid "Python initialization functions:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:13 +#: deprecations/c-api-pending-removal-in-3.15.rst:12 msgid "" ":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" "warnings.filters` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:15 +#: deprecations/c-api-pending-removal-in-3.15.rst:14 msgid "" ":c:func:`Py_GetExecPrefix`: Get :data:`sys.base_exec_prefix` and :data:`sys." "exec_prefix` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:17 +#: deprecations/c-api-pending-removal-in-3.15.rst:16 msgid ":c:func:`Py_GetPath`: Get :data:`sys.path` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:19 +#: deprecations/c-api-pending-removal-in-3.15.rst:18 msgid "" ":c:func:`Py_GetPrefix`: Get :data:`sys.base_prefix` and :data:`sys.prefix` " "instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:21 +#: deprecations/c-api-pending-removal-in-3.15.rst:20 msgid ":c:func:`Py_GetProgramFullPath`: Get :data:`sys.executable` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:23 +#: deprecations/c-api-pending-removal-in-3.15.rst:22 msgid ":c:func:`Py_GetProgramName`: Get :data:`sys.executable` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:25 +#: deprecations/c-api-pending-removal-in-3.15.rst:24 msgid "" ":c:func:`Py_GetPythonHome`: Get :c:member:`PyConfig.home` or the :envvar:" "`PYTHONHOME` environment variable instead." 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..059f2e0d --- /dev/null +++ b/deprecations/c-api-pending-removal-in-3.16.po @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001-2025, 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.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-27 09:00+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-future.po b/deprecations/c-api-pending-removal-in-future.po index 4c4c5493..5deb4e93 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 4deab285..619fb0b6 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -97,51 +97,50 @@ 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`.)" +":mod:`builtins`: ``bool(NotImplemented)`` now emits a :exc:" +"`DeprecationWarning` and will raise a :exc:`TypeError` in Python 3.14. " +"(Contributed by Jelle Zijlstra in :gh:`118767`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:47 +#: deprecations/pending-removal-in-3.14.rst:45 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:48 msgid ":mod:`importlib.abc` deprecated classes:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:52 +#: deprecations/pending-removal-in-3.14.rst:50 msgid ":class:`!importlib.abc.ResourceReader`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:53 +#: deprecations/pending-removal-in-3.14.rst:51 msgid ":class:`!importlib.abc.Traversable`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:54 +#: deprecations/pending-removal-in-3.14.rst:52 msgid ":class:`!importlib.abc.TraversableResources`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:56 +#: deprecations/pending-removal-in-3.14.rst:54 msgid "Use :mod:`importlib.resources.abc` classes instead:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:58 +#: deprecations/pending-removal-in-3.14.rst:56 msgid ":class:`importlib.resources.abc.Traversable`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:59 +#: deprecations/pending-removal-in-3.14.rst:57 msgid ":class:`importlib.resources.abc.TraversableResources`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:61 +#: deprecations/pending-removal-in-3.14.rst:59 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:61 msgid "" ":mod:`itertools` had undocumented, inefficient, historically buggy, and " "inconsistent support for copy, deepcopy, and pickle operations. This will be " @@ -149,7 +148,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:67 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 " @@ -160,53 +159,47 @@ msgid "" "``'fork'``. See :ref:`multiprocessing-start-methods`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:77 +#: deprecations/pending-removal-in-3.14.rst:75 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:79 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:84 msgid ":mod:`pty`:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:88 +#: deprecations/pending-removal-in-3.14.rst:86 msgid "``master_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:89 +#: deprecations/pending-removal-in-3.14.rst:87 msgid "``slave_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:91 +#: deprecations/pending-removal-in-3.14.rst:89 msgid ":mod:`sqlite3`:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:93 +#: deprecations/pending-removal-in-3.14.rst:91 msgid ":data:`~sqlite3.version` and :data:`~sqlite3.version_info`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:95 +#: deprecations/pending-removal-in-3.14.rst:93 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:97 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:" @@ -267,7 +260,7 @@ msgid "" msgstr "" #: deprecations/pending-removal-in-3.15.rst:32 -#: deprecations/pending-removal-in-future.rst:56 +#: deprecations/pending-removal-in-future.rst:55 msgid ":mod:`importlib`:" msgstr "" @@ -344,6 +337,7 @@ msgid "" msgstr "" #: deprecations/pending-removal-in-3.15.rst:80 +#: deprecations/pending-removal-in-3.17.rst:26 msgid ":mod:`typing`:" msgstr "" @@ -357,16 +351,25 @@ msgstr "" #: deprecations/pending-removal-in-3.15.rst:88 msgid "" +"When using the functional syntax of :class:`~typing.TypedDict`\\s, failing " +"to pass a value to the *fields* parameter (``TD = TypedDict(\"TD\")``) or " +"passing ``None`` (``TD = TypedDict(\"TD\", None)``) has been deprecated " +"since Python 3.13. Use ``class TD(TypedDict): pass`` or ``TD = " +"TypedDict(\"TD\", {})`` to create a TypedDict with zero field." +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:95 +msgid "" "The :func:`typing.no_type_check_decorator` decorator function has been " "deprecated since Python 3.13. After eight years in the :mod:`typing` module, " "it has yet to be supported by any major type checker." msgstr "" -#: deprecations/pending-removal-in-3.15.rst:93 +#: deprecations/pending-removal-in-3.15.rst:100 msgid ":mod:`wave`:" msgstr "" -#: deprecations/pending-removal-in-3.15.rst:95 +#: deprecations/pending-removal-in-3.15.rst:102 msgid "" "The :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, and :meth:`~wave." "Wave_read.getmarkers` methods of the :class:`~wave.Wave_read` and :class:" @@ -459,6 +462,64 @@ msgid "" "deprecated since Python 3.13." msgstr "" +#: deprecations/pending-removal-in-3.17.rst:2 +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 " +"removal scheduled for Python 3.17. Users should use documented introspection " +"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 "" + #: deprecations/c-api-pending-removal-in-future.rst:2 #: deprecations/pending-removal-in-future.rst:2 msgid "Pending Removal in Future Versions" @@ -477,17 +538,13 @@ msgid "" msgstr "" #: deprecations/pending-removal-in-future.rst:12 -msgid "``bool(NotImplemented)``." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:13 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:16 +#: deprecations/pending-removal-in-future.rst:15 msgid "" "Currently Python accepts numeric literals immediately followed by keywords, " "for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " @@ -499,32 +556,32 @@ msgid "" "syntax error. (:gh:`87999`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:24 +#: deprecations/pending-removal-in-future.rst:23 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:27 +#: deprecations/pending-removal-in-future.rst:26 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:30 +#: deprecations/pending-removal-in-future.rst:29 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:33 +#: deprecations/pending-removal-in-future.rst:32 msgid "Delegation of ``int()`` to ``__trunc__()`` method." msgstr "" -#: deprecations/pending-removal-in-future.rst:34 +#: deprecations/pending-removal-in-future.rst:33 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 " @@ -532,81 +589,81 @@ msgid "" "`109218`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:39 +#: deprecations/pending-removal-in-future.rst:38 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:44 +#: deprecations/pending-removal-in-future.rst:43 msgid "" ":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:47 +#: deprecations/pending-removal-in-future.rst:46 msgid ":mod:`datetime`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:49 +#: deprecations/pending-removal-in-future.rst:48 msgid "" ":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." "UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:51 +#: deprecations/pending-removal-in-future.rst:50 msgid "" ":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." "fromtimestamp(timestamp, tz=datetime.UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:54 +#: deprecations/pending-removal-in-future.rst:53 msgid ":mod:`gettext`: Plural value must be an integer." msgstr "" -#: deprecations/pending-removal-in-future.rst:58 +#: deprecations/pending-removal-in-future.rst:57 msgid "" ":func:`~importlib.util.cache_from_source` *debug_override* parameter is " "deprecated: use the *optimization* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:61 +#: deprecations/pending-removal-in-future.rst:60 msgid ":mod:`importlib.metadata`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:63 +#: deprecations/pending-removal-in-future.rst:62 msgid "``EntryPoints`` tuple interface." msgstr "" -#: deprecations/pending-removal-in-future.rst:64 +#: deprecations/pending-removal-in-future.rst:63 msgid "Implicit ``None`` on return values." msgstr "" -#: deprecations/pending-removal-in-future.rst:66 +#: deprecations/pending-removal-in-future.rst:65 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:69 +#: deprecations/pending-removal-in-future.rst:68 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:72 +#: deprecations/pending-removal-in-future.rst:71 msgid "" ":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." msgstr "" -#: deprecations/pending-removal-in-future.rst:74 +#: deprecations/pending-removal-in-future.rst:73 msgid "" ":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " "deprecated, use an exception instance." msgstr "" -#: deprecations/pending-removal-in-future.rst:77 +#: deprecations/pending-removal-in-future.rst:76 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 " @@ -615,179 +672,179 @@ msgid "" "underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:84 +#: deprecations/pending-removal-in-future.rst:83 msgid "" ":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." msgstr "" -#: deprecations/pending-removal-in-future.rst:86 +#: deprecations/pending-removal-in-future.rst:85 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:89 +#: deprecations/pending-removal-in-future.rst:88 msgid ":mod:`ssl` options and protocols:" msgstr "" -#: deprecations/pending-removal-in-future.rst:91 +#: deprecations/pending-removal-in-future.rst:90 msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." msgstr "" -#: deprecations/pending-removal-in-future.rst:92 +#: deprecations/pending-removal-in-future.rst:91 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:95 +#: deprecations/pending-removal-in-future.rst:94 msgid "``ssl.OP_NO_SSL*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:96 +#: deprecations/pending-removal-in-future.rst:95 msgid "``ssl.OP_NO_TLS*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:97 +#: deprecations/pending-removal-in-future.rst:96 msgid "``ssl.PROTOCOL_SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:98 +#: deprecations/pending-removal-in-future.rst:97 msgid "``ssl.PROTOCOL_TLS``" msgstr "" -#: deprecations/pending-removal-in-future.rst:99 +#: deprecations/pending-removal-in-future.rst:98 msgid "``ssl.PROTOCOL_TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:100 +#: deprecations/pending-removal-in-future.rst:99 msgid "``ssl.PROTOCOL_TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:101 +#: deprecations/pending-removal-in-future.rst:100 msgid "``ssl.PROTOCOL_TLSv1_2``" msgstr "" -#: deprecations/pending-removal-in-future.rst:102 +#: deprecations/pending-removal-in-future.rst:101 msgid "``ssl.TLSVersion.SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:103 +#: deprecations/pending-removal-in-future.rst:102 msgid "``ssl.TLSVersion.TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:104 +#: deprecations/pending-removal-in-future.rst:103 msgid "``ssl.TLSVersion.TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:106 +#: deprecations/pending-removal-in-future.rst:105 msgid ":mod:`threading` methods:" msgstr "" -#: deprecations/pending-removal-in-future.rst:108 +#: deprecations/pending-removal-in-future.rst:107 msgid "" ":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." "notify_all`." msgstr "" -#: deprecations/pending-removal-in-future.rst:109 +#: deprecations/pending-removal-in-future.rst:108 msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." msgstr "" -#: deprecations/pending-removal-in-future.rst:110 +#: deprecations/pending-removal-in-future.rst:109 msgid "" ":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :" "attr:`threading.Thread.daemon` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:112 +#: deprecations/pending-removal-in-future.rst:111 msgid "" ":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :" "attr:`threading.Thread.name` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:114 +#: deprecations/pending-removal-in-future.rst:113 msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." msgstr "" -#: deprecations/pending-removal-in-future.rst:115 +#: deprecations/pending-removal-in-future.rst:114 msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." msgstr "" -#: deprecations/pending-removal-in-future.rst:117 +#: deprecations/pending-removal-in-future.rst:116 msgid ":class:`typing.Text` (:gh:`92332`)." msgstr "" -#: deprecations/pending-removal-in-future.rst:119 +#: deprecations/pending-removal-in-future.rst:118 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:122 +#: deprecations/pending-removal-in-future.rst:121 msgid "" ":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " "instead" msgstr "" -#: deprecations/pending-removal-in-future.rst:124 +#: deprecations/pending-removal-in-future.rst:123 msgid "``splitattr()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:125 +#: deprecations/pending-removal-in-future.rst:124 msgid "``splithost()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:126 +#: deprecations/pending-removal-in-future.rst:125 msgid "``splitnport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:127 +#: deprecations/pending-removal-in-future.rst:126 msgid "``splitpasswd()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:128 +#: deprecations/pending-removal-in-future.rst:127 msgid "``splitport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:129 +#: deprecations/pending-removal-in-future.rst:128 msgid "``splitquery()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:130 +#: deprecations/pending-removal-in-future.rst:129 msgid "``splittag()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:131 +#: deprecations/pending-removal-in-future.rst:130 msgid "``splittype()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:132 +#: deprecations/pending-removal-in-future.rst:131 msgid "``splituser()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:133 +#: deprecations/pending-removal-in-future.rst:132 msgid "``splitvalue()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:134 +#: deprecations/pending-removal-in-future.rst:133 msgid "``to_bytes()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:136 +#: deprecations/pending-removal-in-future.rst:135 msgid "" ":mod:`urllib.request`: :class:`~urllib.request.URLopener` and :class:" "`~urllib.request.FancyURLopener` style of invoking requests is deprecated. " "Use newer :func:`~urllib.request.urlopen` functions and methods." msgstr "" -#: deprecations/pending-removal-in-future.rst:140 +#: deprecations/pending-removal-in-future.rst:139 msgid "" ":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " "writes." msgstr "" -#: deprecations/pending-removal-in-future.rst:143 +#: deprecations/pending-removal-in-future.rst:142 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 " @@ -795,13 +852,13 @@ msgid "" "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:148 +#: deprecations/pending-removal-in-future.rst:147 msgid "" ":meth:`zipimport.zipimporter.load_module` is deprecated: use :meth:" "`~zipimport.zipimporter.exec_module` instead." msgstr "" -#: deprecations/index.rst:13 +#: deprecations/index.rst:15 msgid "C API Deprecations" msgstr "" @@ -963,62 +1020,58 @@ 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." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:9 +#: deprecations/c-api-pending-removal-in-3.15.rst:8 msgid "" ":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: Use :c:" "type:`wchar_t` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:11 +#: deprecations/c-api-pending-removal-in-3.15.rst:10 msgid "Python initialization functions:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:13 +#: deprecations/c-api-pending-removal-in-3.15.rst:12 msgid "" ":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" "warnings.filters` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:15 +#: deprecations/c-api-pending-removal-in-3.15.rst:14 msgid "" ":c:func:`Py_GetExecPrefix`: Get :data:`sys.base_exec_prefix` and :data:`sys." "exec_prefix` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:17 +#: deprecations/c-api-pending-removal-in-3.15.rst:16 msgid ":c:func:`Py_GetPath`: Get :data:`sys.path` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:19 +#: deprecations/c-api-pending-removal-in-3.15.rst:18 msgid "" ":c:func:`Py_GetPrefix`: Get :data:`sys.base_prefix` and :data:`sys.prefix` " "instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:21 +#: deprecations/c-api-pending-removal-in-3.15.rst:20 msgid ":c:func:`Py_GetProgramFullPath`: Get :data:`sys.executable` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:23 +#: deprecations/c-api-pending-removal-in-3.15.rst:22 msgid ":c:func:`Py_GetProgramName`: Get :data:`sys.executable` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:25 +#: deprecations/c-api-pending-removal-in-3.15.rst:24 msgid "" ":c:func:`Py_GetPythonHome`: Get :c:member:`PyConfig.home` or the :envvar:" "`PYTHONHOME` environment variable instead." diff --git a/deprecations/pending-removal-in-3.13.po b/deprecations/pending-removal-in-3.13.po index 1d351a73..a64e2e8f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 cbe8bcd8..8d1923b0 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -91,51 +91,50 @@ 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`.)" +":mod:`builtins`: ``bool(NotImplemented)`` now emits a :exc:" +"`DeprecationWarning` and will raise a :exc:`TypeError` in Python 3.14. " +"(Contributed by Jelle Zijlstra in :gh:`118767`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:47 +#: deprecations/pending-removal-in-3.14.rst:45 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:48 msgid ":mod:`importlib.abc` deprecated classes:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:52 +#: deprecations/pending-removal-in-3.14.rst:50 msgid ":class:`!importlib.abc.ResourceReader`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:53 +#: deprecations/pending-removal-in-3.14.rst:51 msgid ":class:`!importlib.abc.Traversable`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:54 +#: deprecations/pending-removal-in-3.14.rst:52 msgid ":class:`!importlib.abc.TraversableResources`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:56 +#: deprecations/pending-removal-in-3.14.rst:54 msgid "Use :mod:`importlib.resources.abc` classes instead:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:58 +#: deprecations/pending-removal-in-3.14.rst:56 msgid ":class:`importlib.resources.abc.Traversable`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:59 +#: deprecations/pending-removal-in-3.14.rst:57 msgid ":class:`importlib.resources.abc.TraversableResources`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:61 +#: deprecations/pending-removal-in-3.14.rst:59 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:61 msgid "" ":mod:`itertools` had undocumented, inefficient, historically buggy, and " "inconsistent support for copy, deepcopy, and pickle operations. This will be " @@ -143,7 +142,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:67 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 +153,47 @@ msgid "" "``'fork'``. See :ref:`multiprocessing-start-methods`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:77 +#: deprecations/pending-removal-in-3.14.rst:75 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:79 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:84 msgid ":mod:`pty`:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:88 +#: deprecations/pending-removal-in-3.14.rst:86 msgid "``master_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:89 +#: deprecations/pending-removal-in-3.14.rst:87 msgid "``slave_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:91 +#: deprecations/pending-removal-in-3.14.rst:89 msgid ":mod:`sqlite3`:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:93 +#: deprecations/pending-removal-in-3.14.rst:91 msgid ":data:`~sqlite3.version` and :data:`~sqlite3.version_info`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:95 +#: deprecations/pending-removal-in-3.14.rst:93 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:97 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 df33476c..1705d6d7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -158,16 +158,25 @@ msgstr "" #: deprecations/pending-removal-in-3.15.rst:88 msgid "" +"When using the functional syntax of :class:`~typing.TypedDict`\\s, failing " +"to pass a value to the *fields* parameter (``TD = TypedDict(\"TD\")``) or " +"passing ``None`` (``TD = TypedDict(\"TD\", None)``) has been deprecated " +"since Python 3.13. Use ``class TD(TypedDict): pass`` or ``TD = " +"TypedDict(\"TD\", {})`` to create a TypedDict with zero field." +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:95 +msgid "" "The :func:`typing.no_type_check_decorator` decorator function has been " "deprecated since Python 3.13. After eight years in the :mod:`typing` module, " "it has yet to be supported by any major type checker." msgstr "" -#: deprecations/pending-removal-in-3.15.rst:93 +#: deprecations/pending-removal-in-3.15.rst:100 msgid ":mod:`wave`:" msgstr "" -#: deprecations/pending-removal-in-3.15.rst:95 +#: deprecations/pending-removal-in-3.15.rst:102 msgid "" "The :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, and :meth:`~wave." "Wave_read.getmarkers` methods of the :class:`~wave.Wave_read` and :class:" diff --git a/deprecations/pending-removal-in-3.16.po b/deprecations/pending-removal-in-3.16.po index 083e9e0d..b337f4a2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 new file mode 100644 index 00000000..72d479f5 --- /dev/null +++ b/deprecations/pending-removal-in-3.17.po @@ -0,0 +1,79 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001-2025, 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.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-27 09:00+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/pending-removal-in-3.17.rst:2 +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: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 " +"removal scheduled for Python 3.17. Users should use documented introspection " +"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-future.po b/deprecations/pending-removal-in-future.po index 9695172d..9e952293 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -38,17 +38,13 @@ msgid ":mod:`builtins`:" msgstr "" #: deprecations/pending-removal-in-future.rst:12 -msgid "``bool(NotImplemented)``." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:13 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:16 +#: deprecations/pending-removal-in-future.rst:15 msgid "" "Currently Python accepts numeric literals immediately followed by keywords, " "for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " @@ -60,32 +56,32 @@ msgid "" "syntax error. (:gh:`87999`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:24 +#: deprecations/pending-removal-in-future.rst:23 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:27 +#: deprecations/pending-removal-in-future.rst:26 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:30 +#: deprecations/pending-removal-in-future.rst:29 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:33 +#: deprecations/pending-removal-in-future.rst:32 msgid "Delegation of ``int()`` to ``__trunc__()`` method." msgstr "" -#: deprecations/pending-removal-in-future.rst:34 +#: deprecations/pending-removal-in-future.rst:33 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 " @@ -93,85 +89,85 @@ msgid "" "`109218`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:39 +#: deprecations/pending-removal-in-future.rst:38 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:44 +#: deprecations/pending-removal-in-future.rst:43 msgid "" ":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:47 +#: deprecations/pending-removal-in-future.rst:46 msgid ":mod:`datetime`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:49 +#: deprecations/pending-removal-in-future.rst:48 msgid "" ":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." "UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:51 +#: deprecations/pending-removal-in-future.rst:50 msgid "" ":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." "fromtimestamp(timestamp, tz=datetime.UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:54 +#: deprecations/pending-removal-in-future.rst:53 msgid ":mod:`gettext`: Plural value must be an integer." msgstr "" -#: deprecations/pending-removal-in-future.rst:56 +#: deprecations/pending-removal-in-future.rst:55 msgid ":mod:`importlib`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:58 +#: deprecations/pending-removal-in-future.rst:57 msgid "" ":func:`~importlib.util.cache_from_source` *debug_override* parameter is " "deprecated: use the *optimization* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:61 +#: deprecations/pending-removal-in-future.rst:60 msgid ":mod:`importlib.metadata`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:63 +#: deprecations/pending-removal-in-future.rst:62 msgid "``EntryPoints`` tuple interface." msgstr "" -#: deprecations/pending-removal-in-future.rst:64 +#: deprecations/pending-removal-in-future.rst:63 msgid "Implicit ``None`` on return values." msgstr "" -#: deprecations/pending-removal-in-future.rst:66 +#: deprecations/pending-removal-in-future.rst:65 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:69 +#: deprecations/pending-removal-in-future.rst:68 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:72 +#: deprecations/pending-removal-in-future.rst:71 msgid "" ":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." msgstr "" -#: deprecations/pending-removal-in-future.rst:74 +#: deprecations/pending-removal-in-future.rst:73 msgid "" ":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " "deprecated, use an exception instance." msgstr "" -#: deprecations/pending-removal-in-future.rst:77 +#: deprecations/pending-removal-in-future.rst:76 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 " @@ -180,179 +176,179 @@ msgid "" "underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:84 +#: deprecations/pending-removal-in-future.rst:83 msgid "" ":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." msgstr "" -#: deprecations/pending-removal-in-future.rst:86 +#: deprecations/pending-removal-in-future.rst:85 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:89 +#: deprecations/pending-removal-in-future.rst:88 msgid ":mod:`ssl` options and protocols:" msgstr "" -#: deprecations/pending-removal-in-future.rst:91 +#: deprecations/pending-removal-in-future.rst:90 msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." msgstr "" -#: deprecations/pending-removal-in-future.rst:92 +#: deprecations/pending-removal-in-future.rst:91 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:95 +#: deprecations/pending-removal-in-future.rst:94 msgid "``ssl.OP_NO_SSL*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:96 +#: deprecations/pending-removal-in-future.rst:95 msgid "``ssl.OP_NO_TLS*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:97 +#: deprecations/pending-removal-in-future.rst:96 msgid "``ssl.PROTOCOL_SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:98 +#: deprecations/pending-removal-in-future.rst:97 msgid "``ssl.PROTOCOL_TLS``" msgstr "" -#: deprecations/pending-removal-in-future.rst:99 +#: deprecations/pending-removal-in-future.rst:98 msgid "``ssl.PROTOCOL_TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:100 +#: deprecations/pending-removal-in-future.rst:99 msgid "``ssl.PROTOCOL_TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:101 +#: deprecations/pending-removal-in-future.rst:100 msgid "``ssl.PROTOCOL_TLSv1_2``" msgstr "" -#: deprecations/pending-removal-in-future.rst:102 +#: deprecations/pending-removal-in-future.rst:101 msgid "``ssl.TLSVersion.SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:103 +#: deprecations/pending-removal-in-future.rst:102 msgid "``ssl.TLSVersion.TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:104 +#: deprecations/pending-removal-in-future.rst:103 msgid "``ssl.TLSVersion.TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:106 +#: deprecations/pending-removal-in-future.rst:105 msgid ":mod:`threading` methods:" msgstr "" -#: deprecations/pending-removal-in-future.rst:108 +#: deprecations/pending-removal-in-future.rst:107 msgid "" ":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." "notify_all`." msgstr "" -#: deprecations/pending-removal-in-future.rst:109 +#: deprecations/pending-removal-in-future.rst:108 msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." msgstr "" -#: deprecations/pending-removal-in-future.rst:110 +#: deprecations/pending-removal-in-future.rst:109 msgid "" ":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :" "attr:`threading.Thread.daemon` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:112 +#: deprecations/pending-removal-in-future.rst:111 msgid "" ":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :" "attr:`threading.Thread.name` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:114 +#: deprecations/pending-removal-in-future.rst:113 msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." msgstr "" -#: deprecations/pending-removal-in-future.rst:115 +#: deprecations/pending-removal-in-future.rst:114 msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." msgstr "" -#: deprecations/pending-removal-in-future.rst:117 +#: deprecations/pending-removal-in-future.rst:116 msgid ":class:`typing.Text` (:gh:`92332`)." msgstr "" -#: deprecations/pending-removal-in-future.rst:119 +#: deprecations/pending-removal-in-future.rst:118 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:122 +#: deprecations/pending-removal-in-future.rst:121 msgid "" ":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " "instead" msgstr "" -#: deprecations/pending-removal-in-future.rst:124 +#: deprecations/pending-removal-in-future.rst:123 msgid "``splitattr()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:125 +#: deprecations/pending-removal-in-future.rst:124 msgid "``splithost()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:126 +#: deprecations/pending-removal-in-future.rst:125 msgid "``splitnport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:127 +#: deprecations/pending-removal-in-future.rst:126 msgid "``splitpasswd()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:128 +#: deprecations/pending-removal-in-future.rst:127 msgid "``splitport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:129 +#: deprecations/pending-removal-in-future.rst:128 msgid "``splitquery()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:130 +#: deprecations/pending-removal-in-future.rst:129 msgid "``splittag()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:131 +#: deprecations/pending-removal-in-future.rst:130 msgid "``splittype()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:132 +#: deprecations/pending-removal-in-future.rst:131 msgid "``splituser()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:133 +#: deprecations/pending-removal-in-future.rst:132 msgid "``splitvalue()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:134 +#: deprecations/pending-removal-in-future.rst:133 msgid "``to_bytes()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:136 +#: deprecations/pending-removal-in-future.rst:135 msgid "" ":mod:`urllib.request`: :class:`~urllib.request.URLopener` and :class:" "`~urllib.request.FancyURLopener` style of invoking requests is deprecated. " "Use newer :func:`~urllib.request.urlopen` functions and methods." msgstr "" -#: deprecations/pending-removal-in-future.rst:140 +#: deprecations/pending-removal-in-future.rst:139 msgid "" ":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " "writes." msgstr "" -#: deprecations/pending-removal-in-future.rst:143 +#: deprecations/pending-removal-in-future.rst:142 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 " @@ -360,7 +356,7 @@ msgid "" "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:148 +#: deprecations/pending-removal-in-future.rst:147 msgid "" ":meth:`zipimport.zipimporter.load_module` is deprecated: use :meth:" "`~zipimport.zipimporter.exec_module` instead." diff --git a/dictionaries/main.txt b/dictionaries/main.txt index ec20d0b3..1fb25bc0 100644 --- a/dictionaries/main.txt +++ b/dictionaries/main.txt @@ -37,6 +37,7 @@ Category Centrum Chapman Cheese +Clause Cleese Command Comment @@ -60,6 +61,7 @@ Dec December Decimal Default +Developer Dictionaries Digit Digital @@ -102,6 +104,7 @@ Green Greg Gross Group +Guide Guido Hans Haskell @@ -282,6 +285,7 @@ Tutorial Twisted U Ulf +Unbounded Unices United Unix @@ -329,6 +333,7 @@ any api append apple +archive archives are arg @@ -339,6 +344,7 @@ argv around arr array +artifacts as assembly assert @@ -557,9 +563,11 @@ dictionary did dir direct +directory dishes dispatch display +dist distribute distribution dll @@ -574,9 +582,11 @@ doesn done dots dotted +double doubles dtoa duck +dunder e editor editors @@ -858,8 +868,10 @@ linters lisp list listcomp +listing lists literal +literale literals little lnotab @@ -1034,6 +1046,7 @@ paths pattern payload pdb +pdf pear perform permission @@ -1369,6 +1382,7 @@ unary uncased uncomp undecorated +underscore underscores unhandled unhashable @@ -1479,6 +1493,7 @@ zlib ή αίτημά αγγίξετε +αδειάστηκαν αιωρούμενους αλλαγές αλληλοαποκλείονται @@ -1653,6 +1668,7 @@ zlib οκταδικό ολισθημένο ομαδοποιήστε +ονοματοδοσίας οποιουσδήποτε οριοθέτες οριοθέτη @@ -1759,6 +1775,7 @@ zlib υπεραντικείμενο υπερισχύουσα υπερκλάσης +υπερτύπος υπο υποακολουθία υποακολουθίας @@ -1782,6 +1799,7 @@ zlib υποσυμβολοσειρά υποτετραγωνική υποτμημάτων +υποτύποι υποτύπος χειριζόμενες χρήσιμες diff --git a/distributing/index.po b/distributing/index.po index ad108393..cfbb9852 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 19bff4e0..76872795 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -47,12 +47,12 @@ msgstr "" #: extending/building.rst:25 msgid "" -"For modules with ASCII-only names, the function must be named " -"``PyInit_``, with ```` replaced by the name of the " -"module. When using :ref:`multi-phase-initialization`, non-ASCII module names " -"are allowed. In this case, the initialization function name is " -"``PyInitU_``, with ```` encoded using Python's " -"*punycode* encoding with hyphens replaced by underscores. In Python::" +"For modules with ASCII-only names, the function must be named :samp:" +"`PyInit_{}`, with ```` replaced by the name of the module. When " +"using :ref:`multi-phase-initialization`, non-ASCII module names are allowed. " +"In this case, the initialization function name is :samp:`PyInitU_{}`, " +"with ```` encoded using Python's *punycode* encoding with hyphens " +"replaced by underscores. In Python::" msgstr "" #: extending/building.rst:32 diff --git a/extending/embedding.po b/extending/embedding.po index f2c6a3c0..968ae6d6 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -418,60 +418,62 @@ msgid "" " return PyLong_FromLong(numargs);\n" "}\n" "\n" -"static PyMethodDef EmbMethods[] = {\n" +"static PyMethodDef emb_module_methods[] = {\n" " {\"numargs\", emb_numargs, METH_VARARGS,\n" " \"Return the number of arguments received by the process.\"},\n" " {NULL, NULL, 0, NULL}\n" "};\n" "\n" -"static PyModuleDef EmbModule = {\n" -" PyModuleDef_HEAD_INIT, \"emb\", NULL, -1, EmbMethods,\n" -" NULL, NULL, NULL, NULL\n" +"static struct PyModuleDef emb_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"emb\",\n" +" .m_size = 0,\n" +" .m_methods = emb_module_methods,\n" "};\n" "\n" "static PyObject*\n" "PyInit_emb(void)\n" "{\n" -" return PyModule_Create(&EmbModule);\n" +" return PyModuleDef_Init(&emb_module);\n" "}" msgstr "" -#: extending/embedding.rst:265 +#: extending/embedding.rst:267 msgid "" "Insert the above code just above the :c:func:`main` function. Also, insert " "the following two statements before the call to :c:func:`Py_Initialize`::" msgstr "" -#: extending/embedding.rst:268 +#: extending/embedding.rst:270 msgid "" "numargs = argc;\n" "PyImport_AppendInittab(\"emb\", &PyInit_emb);" msgstr "" -#: extending/embedding.rst:271 +#: extending/embedding.rst:273 msgid "" "These two lines initialize the ``numargs`` variable, and make the :func:`!" "emb.numargs` function accessible to the embedded Python interpreter. With " "these extensions, the Python script can do things like" msgstr "" -#: extending/embedding.rst:275 +#: extending/embedding.rst:277 msgid "" "import emb\n" "print(\"Number of arguments\", emb.numargs())" msgstr "" -#: extending/embedding.rst:280 +#: extending/embedding.rst:282 msgid "" "In a real application, the methods will expose an API of the application to " "Python." msgstr "" -#: extending/embedding.rst:290 +#: extending/embedding.rst:292 msgid "Embedding Python in C++" msgstr "" -#: extending/embedding.rst:292 +#: extending/embedding.rst:294 msgid "" "It is also possible to embed Python in a C++ program; precisely how this is " "done will depend on the details of the C++ system used; in general you will " @@ -480,11 +482,11 @@ msgid "" "+." msgstr "" -#: extending/embedding.rst:301 +#: extending/embedding.rst:303 msgid "Compiling and Linking under Unix-like systems" msgstr "" -#: extending/embedding.rst:303 +#: extending/embedding.rst:305 msgid "" "It is not necessarily trivial to find the right flags to pass to your " "compiler (and linker) in order to embed the Python interpreter into your " @@ -492,7 +494,7 @@ msgid "" "implemented as C dynamic extensions (:file:`.so` files) linked against it." msgstr "" -#: extending/embedding.rst:309 +#: extending/embedding.rst:311 msgid "" "To find out the required compiler and linker flags, you can execute the :" "file:`python{X.Y}-config` script which is generated as part of the " @@ -501,33 +503,33 @@ msgid "" "directly useful to you:" msgstr "" -#: extending/embedding.rst:315 +#: extending/embedding.rst:317 msgid "" "``pythonX.Y-config --cflags`` will give you the recommended flags when " "compiling:" msgstr "" -#: extending/embedding.rst:318 +#: extending/embedding.rst:320 msgid "" "$ /opt/bin/python3.11-config --cflags\n" "-I/opt/include/python3.11 -I/opt/include/python3.11 -Wsign-compare -DNDEBUG " "-g -fwrapv -O3 -Wall" msgstr "" -#: extending/embedding.rst:323 +#: extending/embedding.rst:325 msgid "" "``pythonX.Y-config --ldflags --embed`` will give you the recommended flags " "when linking:" msgstr "" -#: extending/embedding.rst:326 +#: extending/embedding.rst:328 msgid "" "$ /opt/bin/python3.11-config --ldflags --embed\n" "-L/opt/lib/python3.11/config-3.11-x86_64-linux-gnu -L/opt/lib -lpython3.11 -" "lpthread -ldl -lutil -lm" msgstr "" -#: extending/embedding.rst:332 +#: extending/embedding.rst:334 msgid "" "To avoid confusion between several Python installations (and especially " "between the system Python and your own compiled Python), it is recommended " @@ -535,7 +537,7 @@ msgid "" "above example." msgstr "" -#: extending/embedding.rst:337 +#: extending/embedding.rst:339 msgid "" "If this procedure doesn't work for you (it is not guaranteed to work for all " "Unix-like platforms; however, we welcome :ref:`bug reports >> import sysconfig\n" ">>> sysconfig.get_config_var('LIBS')\n" diff --git a/extending/extending.po b/extending/extending.po index d809854a..53a2247b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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:663 +#: 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,45 +372,80 @@ 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. For this, " -"you usually declare a static object variable at the beginning of your file::" +"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:209 -msgid "static PyObject *SpamError;" +#: extending/extending.rst:235 +msgid "static PyObject *SpamError = NULL;" msgstr "" -#: extending/extending.rst:211 +#: extending/extending.rst:237 msgid "" -"and initialize it in your module's initialization function (:c:func:`!" -"PyInit_spam`) with an exception object::" +"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:240 +msgid "SpamError = PyErr_NewException(\"spam.error\", NULL, NULL);" msgstr "" -#: extending/extending.rst:214 +#: extending/extending.rst:242 msgid "" -"PyMODINIT_FUNC\n" -"PyInit_spam(void)\n" -"{\n" -" PyObject *m;\n" -"\n" -" m = PyModule_Create(&spammodule);\n" -" if (m == NULL)\n" -" return NULL;\n" +"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:245 +msgid "" +"For now, let's avoid the issue: we will block repeated initialization by " +"raising an :py:exc:`ImportError`::" +msgstr "" + +#: extending/extending.rst:248 +msgid "" +"static PyObject *SpamError = NULL;\n" "\n" +"static int\n" +"spam_module_exec(PyObject *m)\n" +"{\n" +" if (SpamError != NULL) {\n" +" PyErr_SetString(PyExc_ImportError,\n" +" \"cannot initialize spam module more than once\");\n" +" return -1;\n" +" }\n" " SpamError = PyErr_NewException(\"spam.error\", NULL, NULL);\n" -" if (PyModule_AddObjectRef(m, \"error\", SpamError) < 0) {\n" -" Py_CLEAR(SpamError);\n" -" Py_DECREF(m);\n" -" return NULL;\n" +" if (PyModule_AddObjectRef(m, \"SpamError\", SpamError) < 0) {\n" +" return -1;\n" " }\n" "\n" -" return m;\n" +" return 0;\n" +"}\n" +"\n" +"static PyModuleDef_Slot spam_module_slots[] = {\n" +" {Py_mod_exec, spam_module_exec},\n" +" {0, NULL}\n" +"};\n" +"\n" +"static struct PyModuleDef spam_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"spam\",\n" +" .m_size = 0, // non-negative\n" +" .m_slots = spam_module_slots,\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_spam(void)\n" +"{\n" +" return PyModuleDef_Init(&spam_module);\n" "}" msgstr "" -#: extending/extending.rst:233 +#: 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 " @@ -347,7 +453,7 @@ msgid "" "``NULL``), described in :ref:`bltin-exceptions`." msgstr "" -#: extending/extending.rst:238 +#: 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 " @@ -358,19 +464,27 @@ msgid "" "unintended side effects." msgstr "" -#: extending/extending.rst:245 +#: 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` " +"variable will not be garbage-collected. It will \"leak\". We did, however, " +"ensure that this will happen at most once per process." +msgstr "" + +#: 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:248 +#: 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:251 +#: extending/extending.rst:307 msgid "" "static PyObject *\n" "spam_system(PyObject *self, PyObject *args)\n" @@ -389,23 +503,23 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:271 +#: extending/extending.rst:327 msgid "Back to the Example" msgstr "" -#: extending/extending.rst:273 +#: extending/extending.rst:329 msgid "" "Going back to our example function, you should now be able to understand " "this statement::" msgstr "" -#: extending/extending.rst:276 +#: extending/extending.rst:332 msgid "" "if (!PyArg_ParseTuple(args, \"s\", &command))\n" " return NULL;" msgstr "" -#: extending/extending.rst:279 +#: 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 " @@ -416,34 +530,34 @@ msgid "" "properly be declared as ``const char *command``)." msgstr "" -#: extending/extending.rst:287 +#: 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:290 +#: extending/extending.rst:346 msgid "sts = system(command);" msgstr "" -#: extending/extending.rst:292 +#: 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:295 +#: extending/extending.rst:351 msgid "return PyLong_FromLong(sts);" msgstr "" -#: extending/extending.rst:297 +#: 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:300 +#: 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 " @@ -451,32 +565,32 @@ msgid "" "macro:`Py_RETURN_NONE` macro)::" msgstr "" -#: extending/extending.rst:305 +#: extending/extending.rst:361 msgid "" "Py_INCREF(Py_None);\n" "return Py_None;" msgstr "" -#: extending/extending.rst:308 +#: 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:316 +#: extending/extending.rst:372 msgid "The Module's Method Table and Initialization Function" msgstr "" -#: extending/extending.rst:318 +#: 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:321 +#: extending/extending.rst:377 msgid "" -"static PyMethodDef SpamMethods[] = {\n" +"static PyMethodDef spam_methods[] = {\n" " ...\n" " {\"system\", spam_system, METH_VARARGS,\n" " \"Execute a shell command.\"},\n" @@ -485,7 +599,7 @@ msgid "" "};" msgstr "" -#: extending/extending.rst:329 +#: 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 " @@ -494,14 +608,14 @@ msgid "" "is used." msgstr "" -#: extending/extending.rst:334 +#: 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:338 +#: 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 " @@ -510,24 +624,21 @@ msgid "" "to such a function." msgstr "" -#: extending/extending.rst:344 +#: extending/extending.rst:400 msgid "" "The method table must be referenced in the module definition structure::" msgstr "" -#: extending/extending.rst:346 +#: extending/extending.rst:402 msgid "" -"static struct PyModuleDef spammodule = {\n" -" PyModuleDef_HEAD_INIT,\n" -" \"spam\", /* name of module */\n" -" spam_doc, /* module documentation, may be NULL */\n" -" -1, /* size of per-interpreter state of the module,\n" -" or -1 if the module keeps state in global variables. */\n" -" SpamMethods\n" +"static struct PyModuleDef spam_module = {\n" +" ...\n" +" .m_methods = spam_methods,\n" +" ...\n" "};" msgstr "" -#: extending/extending.rst:355 +#: 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:" @@ -535,45 +646,40 @@ msgid "" "only non-\\ ``static`` item defined in the module file::" msgstr "" -#: extending/extending.rst:360 +#: extending/extending.rst:413 msgid "" "PyMODINIT_FUNC\n" "PyInit_spam(void)\n" "{\n" -" return PyModule_Create(&spammodule);\n" +" return PyModuleDef_Init(&spam_module);\n" "}" msgstr "" -#: extending/extending.rst:366 +#: 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:370 +#: extending/extending.rst:423 msgid "" -"When the Python program imports module :mod:`!spam` for the first time, :c:" -"func:`!PyInit_spam` is called. (See below for comments about embedding " -"Python.) It calls :c:func:`PyModule_Create`, which returns a module object, " -"and inserts built-in function objects into the newly created module based " -"upon the table (an array of :c:type:`PyMethodDef` structures) found in the " -"module definition. :c:func:`PyModule_Create` returns a pointer to the module " -"object that it creates. It may abort with a fatal error for certain errors, " -"or return ``NULL`` if the module could not be initialized satisfactorily. " -"The init function must return the module object to its caller, so that it " -"then gets inserted into ``sys.modules``." +":c:func:`!PyInit_spam` is called when each interpreter imports its module :" +"mod:`!spam` for the first time. (See below for comments about embedding " +"Python.) A pointer to the module definition must be returned via :c:func:" +"`PyModuleDef_Init`, so that the import machinery can create the module and " +"store it in ``sys.modules``." msgstr "" -#: extending/extending.rst:381 +#: 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` " +"automatically unless there's an entry in the :c:data:`!PyImport_Inittab` " "table. To add the module to the initialization table, use :c:func:" "`PyImport_AppendInittab`, optionally followed by an import of the module::" msgstr "" -#: extending/extending.rst:386 +#: extending/extending.rst:433 msgid "" "#define PY_SSIZE_T_CLEAN\n" "#include \n" @@ -626,35 +732,30 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:436 +#: extending/extending.rst:483 msgid "" -"Removing entries from ``sys.modules`` or importing compiled modules into " +"If you declare a global variable or a local static one, the module may " +"experience unintended side-effects on re-initialisation, for example when " +"removing entries from ``sys.modules`` or importing compiled modules into " "multiple interpreters within a process (or following a :c:func:`fork` " -"without an intervening :c:func:`exec`) can create problems for some " -"extension modules. Extension module authors should exercise caution when " -"initializing internal data structures." +"without an intervening :c:func:`exec`). If module state is not yet fully :" +"ref:`isolated `, authors should consider marking " +"the module as having no support for subinterpreters (via :c:macro:" +"`Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED`)." msgstr "" -#: extending/extending.rst:442 +#: extending/extending.rst:492 msgid "" "A more substantial example module is included in the Python source " -"distribution as :file:`Modules/xxmodule.c`. This file may be used as a " +"distribution as :file:`Modules/xxlimited.c`. This file may be used as a " "template or simply read as an example." msgstr "" -#: extending/extending.rst:448 -msgid "" -"Unlike our ``spam`` example, ``xxmodule`` uses *multi-phase initialization* " -"(new in Python 3.5), where a PyModuleDef structure is returned from " -"``PyInit_spam``, and creation of the module is left to the import machinery. " -"For details on multi-phase initialization, see :PEP:`489`." -msgstr "" - -#: extending/extending.rst:457 +#: extending/extending.rst:500 msgid "Compilation and Linkage" msgstr "" -#: extending/extending.rst:459 +#: 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 " @@ -664,7 +765,7 @@ msgid "" "Windows (chapter :ref:`building-on-windows`) for more information about this." msgstr "" -#: extending/extending.rst:466 +#: 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 " @@ -674,11 +775,11 @@ msgid "" "line to the file :file:`Modules/Setup.local` describing your file:" msgstr "" -#: extending/extending.rst:473 +#: extending/extending.rst:516 msgid "spam spammodule.o" msgstr "" -#: extending/extending.rst:477 +#: 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/` " @@ -687,21 +788,21 @@ msgid "" "the :file:`Setup` file.)" msgstr "" -#: extending/extending.rst:483 +#: 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:486 +#: extending/extending.rst:529 msgid "spam spammodule.o -lX11" msgstr "" -#: extending/extending.rst:494 +#: extending/extending.rst:537 msgid "Calling Python Functions from C" msgstr "" -#: extending/extending.rst:496 +#: 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 " @@ -712,7 +813,7 @@ msgid "" "uses are also imaginable." msgstr "" -#: extending/extending.rst:504 +#: 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 " @@ -721,7 +822,7 @@ msgid "" "line option in :file:`Modules/main.c` from the Python source code.)" msgstr "" -#: extending/extending.rst:510 +#: 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 " @@ -731,7 +832,7 @@ msgid "" "function might be part of a module definition::" msgstr "" -#: extending/extending.rst:517 +#: extending/extending.rst:560 msgid "" "static PyObject *my_callback = NULL;\n" "\n" @@ -758,7 +859,7 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:540 +#: 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 :" @@ -766,7 +867,7 @@ msgid "" "section :ref:`parsetuple`." msgstr "" -#: extending/extending.rst:545 +#: 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`` " @@ -774,7 +875,7 @@ msgid "" "info on them in section :ref:`refcounts`." msgstr "" -#: extending/extending.rst:552 +#: 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 " @@ -786,7 +887,7 @@ msgid "" "or more format codes between parentheses. For example::" msgstr "" -#: extending/extending.rst:561 +#: extending/extending.rst:604 msgid "" "int arg;\n" "PyObject *arglist;\n" @@ -800,7 +901,7 @@ msgid "" "Py_DECREF(arglist);" msgstr "" -#: extending/extending.rst:572 +#: 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 " @@ -809,7 +910,7 @@ msgid "" "`Py_DECREF`\\ -ed immediately after the :c:func:`PyObject_CallObject` call." msgstr "" -#: extending/extending.rst:579 +#: 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 " @@ -818,7 +919,7 @@ msgid "" "not interested in its value." msgstr "" -#: extending/extending.rst:585 +#: 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 " @@ -829,7 +930,7 @@ msgid "" "should be cleared by calling :c:func:`PyErr_Clear`. For example::" msgstr "" -#: extending/extending.rst:593 +#: extending/extending.rst:636 msgid "" "if (result == NULL)\n" " return NULL; /* Pass error back */\n" @@ -837,7 +938,7 @@ msgid "" "Py_DECREF(result);" msgstr "" -#: extending/extending.rst:598 +#: 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 " @@ -849,7 +950,7 @@ msgid "" "you want to pass an integral event code, you might use the following code::" msgstr "" -#: extending/extending.rst:607 +#: extending/extending.rst:650 msgid "" "PyObject *arglist;\n" "...\n" @@ -862,7 +963,7 @@ msgid "" "Py_DECREF(result);" msgstr "" -#: extending/extending.rst:617 +#: 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 " @@ -870,14 +971,14 @@ msgid "" "checked." msgstr "" -#: extending/extending.rst:621 +#: 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:625 +#: extending/extending.rst:668 msgid "" "PyObject *dict;\n" "...\n" @@ -890,19 +991,19 @@ msgid "" "Py_DECREF(result);" msgstr "" -#: extending/extending.rst:639 +#: extending/extending.rst:682 msgid "Extracting Parameters in Extension Functions" msgstr "" -#: extending/extending.rst:643 +#: extending/extending.rst:686 msgid "The :c:func:`PyArg_ParseTuple` function is declared as follows::" msgstr "" -#: extending/extending.rst:645 +#: extending/extending.rst:688 msgid "int PyArg_ParseTuple(PyObject *arg, const char *format, ...);" msgstr "" -#: extending/extending.rst:647 +#: 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, " @@ -911,7 +1012,7 @@ msgid "" "whose type is determined by the format string." msgstr "" -#: extending/extending.rst:653 +#: 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 " @@ -919,17 +1020,17 @@ msgid "" "probably crash or at least overwrite random bits in memory. So be careful!" msgstr "" -#: extending/extending.rst:658 +#: 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:661 +#: extending/extending.rst:704 msgid "Some example calls::" msgstr "" -#: extending/extending.rst:668 +#: extending/extending.rst:711 msgid "" "int ok;\n" "int i, j;\n" @@ -941,27 +1042,27 @@ msgid "" " /* Python call: f() */" msgstr "" -#: extending/extending.rst:679 +#: extending/extending.rst:722 msgid "" "ok = PyArg_ParseTuple(args, \"s\", &s); /* A string */\n" " /* Possible Python call: f('whoops!') */" msgstr "" -#: extending/extending.rst:684 +#: 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:689 +#: 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:695 +#: extending/extending.rst:738 msgid "" "{\n" " const char *file;\n" @@ -976,7 +1077,7 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:709 +#: extending/extending.rst:752 msgid "" "{\n" " int left, top, right, bottom, h, v;\n" @@ -988,7 +1089,7 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:720 +#: extending/extending.rst:763 msgid "" "{\n" " Py_complex c;\n" @@ -998,23 +1099,23 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:731 +#: extending/extending.rst:774 msgid "Keyword Parameters for Extension Functions" msgstr "" -#: extending/extending.rst:735 +#: extending/extending.rst:778 msgid "" "The :c:func:`PyArg_ParseTupleAndKeywords` function is declared as follows::" msgstr "" -#: extending/extending.rst:737 +#: extending/extending.rst:780 msgid "" "int PyArg_ParseTupleAndKeywords(PyObject *arg, PyObject *kwdict,\n" " const char *format, char * const " "*kwlist, ...);" msgstr "" -#: extending/extending.rst:740 +#: 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 " @@ -1026,20 +1127,20 @@ msgid "" "raises an appropriate exception." msgstr "" -#: extending/extending.rst:750 +#: 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:756 +#: 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:759 +#: extending/extending.rst:802 msgid "" "#define PY_SSIZE_T_CLEAN\n" "#include \n" @@ -1078,36 +1179,35 @@ msgid "" " {NULL, NULL, 0, NULL} /* sentinel */\n" "};\n" "\n" -"static struct PyModuleDef keywdargmodule = {\n" -" PyModuleDef_HEAD_INIT,\n" -" \"keywdarg\",\n" -" NULL,\n" -" -1,\n" -" keywdarg_methods\n" +"static struct PyModuleDef keywdarg_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"keywdarg\",\n" +" .m_size = 0,\n" +" .m_methods = keywdarg_methods,\n" "};\n" "\n" "PyMODINIT_FUNC\n" "PyInit_keywdarg(void)\n" "{\n" -" return PyModule_Create(&keywdargmodule);\n" +" return PyModuleDef_Init(&keywdarg_module);\n" "}" msgstr "" -#: extending/extending.rst:811 +#: extending/extending.rst:853 msgid "Building Arbitrary Values" msgstr "" -#: extending/extending.rst:813 +#: extending/extending.rst:855 msgid "" "This function is the counterpart to :c:func:`PyArg_ParseTuple`. It is " "declared as follows::" msgstr "" -#: extending/extending.rst:816 +#: extending/extending.rst:858 msgid "PyObject *Py_BuildValue(const char *format, ...);" msgstr "" -#: extending/extending.rst:818 +#: 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, " @@ -1115,7 +1215,7 @@ msgid "" "object, suitable for returning from a C function called from Python." msgstr "" -#: extending/extending.rst:823 +#: 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 " @@ -1127,12 +1227,12 @@ msgid "" "parenthesize the format string." msgstr "" -#: extending/extending.rst:831 +#: extending/extending.rst:873 msgid "" "Examples (to the left the call, to the right the resulting Python value):" msgstr "" -#: extending/extending.rst:833 +#: extending/extending.rst:875 msgid "" "Py_BuildValue(\"\") None\n" "Py_BuildValue(\"i\", 123) 123\n" @@ -1153,11 +1253,11 @@ msgid "" " 1, 2, 3, 4, 5, 6) (((1, 2), (3, 4)), (5, 6))" msgstr "" -#: extending/extending.rst:857 +#: extending/extending.rst:899 msgid "Reference Counts" msgstr "" -#: extending/extending.rst:859 +#: 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 " @@ -1166,7 +1266,7 @@ msgid "" "restrict the following discussion to the C case." msgstr "" -#: extending/extending.rst:865 +#: 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:" @@ -1181,7 +1281,7 @@ msgid "" "crashes." msgstr "" -#: extending/extending.rst:876 +#: 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, " @@ -1198,7 +1298,7 @@ msgid "" "of errors." msgstr "" -#: extending/extending.rst:889 +#: 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. " @@ -1209,7 +1309,7 @@ msgid "" "reference to the object has been deleted and the object is freed." msgstr "" -#: extending/extending.rst:897 +#: 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 " @@ -1225,7 +1325,7 @@ msgid "" "with reference counts." msgstr "" -#: extending/extending.rst:909 +#: 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 " @@ -1239,7 +1339,7 @@ msgid "" "though there are no further references to the cycle itself." msgstr "" -#: extending/extending.rst:920 +#: 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." @@ -1247,11 +1347,11 @@ msgid "" "disable the detector at runtime." msgstr "" -#: extending/extending.rst:929 +#: extending/extending.rst:971 msgid "Reference Counting in Python" msgstr "" -#: extending/extending.rst:931 +#: 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:" @@ -1262,7 +1362,7 @@ msgid "" "object." msgstr "" -#: extending/extending.rst:938 +#: 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 " @@ -1275,7 +1375,7 @@ msgid "" "reference creates a memory leak." msgstr "" -#: extending/extending.rst:947 +#: 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 " @@ -1284,7 +1384,7 @@ msgid "" "risks using freed memory and should be avoided completely [#]_." msgstr "" -#: extending/extending.rst:953 +#: 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 " @@ -1295,7 +1395,7 @@ msgid "" "borrowed has in fact disposed of it." msgstr "" -#: extending/extending.rst:961 +#: 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 " @@ -1304,18 +1404,18 @@ msgid "" "properly, as well as the previous owner)." msgstr "" -#: extending/extending.rst:971 +#: extending/extending.rst:1013 msgid "Ownership Rules" msgstr "" -#: extending/extending.rst:973 +#: 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:977 +#: 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 " @@ -1326,7 +1426,7 @@ msgid "" "reference to a cached item." msgstr "" -#: extending/extending.rst:985 +#: extending/extending.rst:1027 msgid "" "Many functions that extract objects from other objects also transfer " "ownership with the reference, for instance :c:func:" @@ -1337,14 +1437,14 @@ msgid "" "list or dictionary." msgstr "" -#: extending/extending.rst:992 +#: 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:996 +#: 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 " @@ -1355,7 +1455,7 @@ msgid "" "don't take over ownership --- they are \"normal.\")" msgstr "" -#: extending/extending.rst:1004 +#: 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 " @@ -1364,18 +1464,18 @@ msgid "" "turned into an owned reference by calling :c:func:`Py_INCREF`." msgstr "" -#: extending/extending.rst:1010 +#: 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:1018 +#: extending/extending.rst:1060 msgid "Thin Ice" msgstr "" -#: extending/extending.rst:1020 +#: 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 " @@ -1383,14 +1483,14 @@ msgid "" "dispose of it." msgstr "" -#: extending/extending.rst:1024 +#: 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:1027 +#: extending/extending.rst:1069 msgid "" "void\n" "bug(PyObject *list)\n" @@ -1402,24 +1502,31 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:1036 +#: 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:1040 +#: 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:1047 +#: 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 " @@ -1430,13 +1537,13 @@ msgid "" "associated with it, thereby invalidating ``item``." msgstr "" -#: extending/extending.rst:1055 +#: 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:1058 +#: extending/extending.rst:1107 msgid "" "void\n" "no_bug(PyObject *list)\n" @@ -1450,27 +1557,27 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:1069 +#: 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:1073 +#: 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 " -"each other's way, because there is a global lock protecting Python's entire " -"object space. However, it is possible to temporarily release this lock " -"using the macro :c:macro:`Py_BEGIN_ALLOW_THREADS`, and to re-acquire it " -"using :c:macro:`Py_END_ALLOW_THREADS`. This is common around blocking I/O " -"calls, to let other threads use the processor while waiting for the I/O to " -"complete. Obviously, the following function has the same problem as the " -"previous one::" +"each other's way, because there is a :term:`global lock ` protecting Python's entire object space. However, it is possible to " +"temporarily release this lock using the macro :c:macro:" +"`Py_BEGIN_ALLOW_THREADS`, and to re-acquire it using :c:macro:" +"`Py_END_ALLOW_THREADS`. This is common around blocking I/O calls, to let " +"other threads use the processor while waiting for the I/O to complete. " +"Obviously, the following function has the same problem as the previous one::" msgstr "" -#: extending/extending.rst:1082 +#: extending/extending.rst:1132 msgid "" "void\n" "bug(PyObject *list)\n" @@ -1483,11 +1590,11 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:1096 +#: extending/extending.rst:1146 msgid "NULL Pointers" msgstr "" -#: extending/extending.rst:1098 +#: 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 " @@ -1499,21 +1606,21 @@ msgid "" "more slowly." msgstr "" -#: extending/extending.rst:1106 +#: 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:1110 +#: 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:1114 +#: 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 " @@ -1522,24 +1629,24 @@ msgid "" "variants with ``NULL`` checking." msgstr "" -#: extending/extending.rst:1120 +#: 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:1124 +#: 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:1135 +#: extending/extending.rst:1185 msgid "Writing Extensions in C++" msgstr "" -#: extending/extending.rst:1137 +#: 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 " @@ -1552,11 +1659,11 @@ msgid "" "(all recent C++ compilers define this symbol)." msgstr "" -#: extending/extending.rst:1151 +#: extending/extending.rst:1201 msgid "Providing a C API for an Extension Module" msgstr "" -#: extending/extending.rst:1156 +#: 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 " @@ -1567,7 +1674,7 @@ msgid "" "functions for direct manipulation from other extension modules." msgstr "" -#: extending/extending.rst:1164 +#: 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 " @@ -1583,7 +1690,7 @@ msgid "" "call might not have been loaded yet!" msgstr "" -#: extending/extending.rst:1176 +#: 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 " @@ -1593,7 +1700,7 @@ msgid "" "accessible from other extension modules must be exported in a different way." msgstr "" -#: extending/extending.rst:1183 +#: 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 " @@ -1605,7 +1712,7 @@ msgid "" "the Capsule." msgstr "" -#: extending/extending.rst:1191 +#: 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 " @@ -1615,7 +1722,7 @@ msgid "" "client modules." msgstr "" -#: extending/extending.rst:1197 +#: 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 " @@ -1625,17 +1732,17 @@ msgid "" "from another." msgstr "" -#: extending/extending.rst:1204 +#: 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:1207 +#: extending/extending.rst:1257 msgid "modulename.attributename" msgstr "" -#: extending/extending.rst:1209 +#: 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 " @@ -1643,7 +1750,7 @@ msgid "" "the Capsule they load contains the correct C API." msgstr "" -#: extending/extending.rst:1214 +#: 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 " @@ -1654,7 +1761,7 @@ msgid "" "modules only have to call this macro before accessing the C API." msgstr "" -#: extending/extending.rst:1222 +#: 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` " @@ -1665,13 +1772,13 @@ msgid "" "modules." msgstr "" -#: extending/extending.rst:1229 +#: 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:1232 +#: extending/extending.rst:1282 msgid "" "static int\n" "PySpam_System(const char *command)\n" @@ -1680,11 +1787,11 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:1238 +#: extending/extending.rst:1288 msgid "The function :c:func:`!spam_system` is modified in a trivial way::" msgstr "" -#: extending/extending.rst:1240 +#: extending/extending.rst:1290 msgid "" "static PyObject *\n" "spam_system(PyObject *self, PyObject *args)\n" @@ -1699,45 +1806,40 @@ msgid "" "}" msgstr "" -#: extending/extending.rst:1252 +#: extending/extending.rst:1302 msgid "In the beginning of the module, right after the line ::" msgstr "" -#: extending/extending.rst:1254 +#: extending/extending.rst:1304 msgid "#include " msgstr "" -#: extending/extending.rst:1256 +#: extending/extending.rst:1306 msgid "two more lines must be added::" msgstr "" -#: extending/extending.rst:1258 +#: extending/extending.rst:1308 msgid "" "#define SPAM_MODULE\n" "#include \"spammodule.h\"" msgstr "" -#: extending/extending.rst:1261 +#: 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 " -"initialization function must take care of initializing the C API pointer " -"array::" +"the exporting module, not a client module. Finally, the module's :c:data:" +"`mod_exec ` function must take care of initializing the C API " +"pointer array::" msgstr "" -#: extending/extending.rst:1265 +#: extending/extending.rst:1315 msgid "" -"PyMODINIT_FUNC\n" -"PyInit_spam(void)\n" +"static int\n" +"spam_module_exec(PyObject *m)\n" "{\n" -" PyObject *m;\n" " static void *PySpam_API[PySpam_API_pointers];\n" " PyObject *c_api_object;\n" "\n" -" m = PyModule_Create(&spammodule);\n" -" if (m == NULL)\n" -" return NULL;\n" -"\n" " /* Initialize the C API pointer array */\n" " PySpam_API[PySpam_System_NUM] = (void *)PySpam_System;\n" "\n" @@ -1746,27 +1848,26 @@ msgid "" "NULL);\n" "\n" " if (PyModule_Add(m, \"_C_API\", c_api_object) < 0) {\n" -" Py_DECREF(m);\n" -" return NULL;\n" +" return -1;\n" " }\n" "\n" -" return m;\n" +" return 0;\n" "}" msgstr "" -#: extending/extending.rst:1290 +#: 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:1293 +#: 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:1296 +#: extending/extending.rst:1340 msgid "" "#ifndef Py_SPAMMODULE_H\n" "#define Py_SPAMMODULE_H\n" @@ -1818,38 +1919,34 @@ msgid "" "#endif /* !defined(Py_SPAMMODULE_H) */" msgstr "" -#: extending/extending.rst:1344 +#: 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 initialization function::" +"import_spam` in its :c:data:`mod_exec ` function::" msgstr "" -#: extending/extending.rst:1348 +#: extending/extending.rst:1392 msgid "" -"PyMODINIT_FUNC\n" -"PyInit_client(void)\n" +"static int\n" +"client_module_exec(PyObject *m)\n" "{\n" -" PyObject *m;\n" -"\n" -" m = PyModule_Create(&clientmodule);\n" -" if (m == NULL)\n" -" return NULL;\n" -" if (import_spam() < 0)\n" -" return NULL;\n" +" if (import_spam() < 0) {\n" +" return -1;\n" +" }\n" " /* additional initialization can happen here */\n" -" return m;\n" +" return 0;\n" "}" msgstr "" -#: extending/extending.rst:1362 +#: 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:1366 +#: 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 " @@ -1859,47 +1956,47 @@ msgid "" "in the Python source code distribution)." msgstr "" -#: extending/extending.rst:1374 +#: extending/extending.rst:1414 msgid "Footnotes" msgstr "" -#: extending/extending.rst:1375 +#: 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:1378 +#: 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:1381 +#: 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:1385 +#: 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:550 +#: extending/extending.rst:593 msgid "PyObject_CallObject (C function)" msgstr "" -#: extending/extending.rst:641 +#: extending/extending.rst:684 msgid "PyArg_ParseTuple (C function)" msgstr "" -#: extending/extending.rst:733 +#: extending/extending.rst:776 msgid "PyArg_ParseTupleAndKeywords (C function)" msgstr "" -#: extending/extending.rst:754 +#: extending/extending.rst:797 msgid "Philbrick, Geoff" msgstr "" diff --git a/extending/index.po b/extending/index.po index 04ccbed9..73e40582 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -54,30 +54,16 @@ msgstr "" #: extending/index.rst:28 msgid "" "This guide only covers the basic tools for creating extensions provided as " -"part of this version of CPython. Third party tools like `Cython `_, `cffi `_, `SWIG `_ and `Numba `_ offer both simpler and " -"more sophisticated approaches to creating C and C++ extensions for Python." +"part of this version of CPython. Some :ref:`third party tools ` " +"offer both simpler and more sophisticated approaches to creating C and C++ " +"extensions for Python." msgstr "" -#: extending/index.rst:37 -msgid "" -"`Python Packaging User Guide: Binary Extensions `_" -msgstr "" - -#: extending/index.rst:38 -msgid "" -"The Python Packaging User Guide not only covers several available tools that " -"simplify the creation of binary extensions, but also discusses the various " -"reasons why creating an extension module may be desirable in the first place." -msgstr "" - -#: extending/index.rst:45 +#: extending/index.rst:35 msgid "Creating extensions without third party tools" msgstr "" -#: extending/index.rst:47 +#: extending/index.rst:37 msgid "" "This section of the guide covers creating C and C++ extensions without " "assistance from third party tools. It is intended primarily for creators of " @@ -85,11 +71,15 @@ msgid "" "extensions." msgstr "" -#: extending/index.rst:63 +#: extending/index.rst:44 +msgid ":pep:`489` -- Multi-phase extension module initialization" +msgstr "" + +#: extending/index.rst:57 msgid "Embedding the CPython runtime in a larger application" msgstr "" -#: extending/index.rst:65 +#: extending/index.rst:59 msgid "" "Sometimes, rather than creating an extension that runs inside the Python " "interpreter as the main application, it is desirable to instead embed the " diff --git a/extending/newtypes.po b/extending/newtypes.po index 97631f0c..db87b6a1 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 5fc045f4..f83b17e4 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -87,31 +87,41 @@ msgid "" " .tp_new = PyType_GenericNew,\n" "};\n" "\n" -"static PyModuleDef custommodule = {\n" +"static int\n" +"custom_module_exec(PyObject *m)\n" +"{\n" +" if (PyType_Ready(&CustomType) < 0) {\n" +" return -1;\n" +" }\n" +"\n" +" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " +"{\n" +" return -1;\n" +" }\n" +"\n" +" return 0;\n" +"}\n" +"\n" +"static PyModuleDef_Slot custom_module_slots[] = {\n" +" {Py_mod_exec, custom_module_exec},\n" +" // Just use this while using static types\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {0, NULL}\n" +"};\n" +"\n" +"static PyModuleDef custom_module = {\n" " .m_base = PyModuleDef_HEAD_INIT,\n" " .m_name = \"custom\",\n" " .m_doc = \"Example module that creates an extension type.\",\n" -" .m_size = -1,\n" +" .m_size = 0,\n" +" .m_slots = custom_module_slots,\n" "};\n" "\n" "PyMODINIT_FUNC\n" "PyInit_custom(void)\n" "{\n" -" PyObject *m;\n" -" if (PyType_Ready(&CustomType) < 0)\n" -" return NULL;\n" -"\n" -" m = PyModule_Create(&custommodule);\n" -" if (m == NULL)\n" -" return NULL;\n" -"\n" -" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " -"{\n" -" Py_DECREF(m);\n" -" return NULL;\n" -" }\n" -"\n" -" return m;\n" +" return PyModuleDef_Init(&custom_module);\n" "}\n" msgstr "" @@ -136,22 +146,24 @@ msgstr "" #: extending/newtypes_tutorial.rst:58 msgid "" -"How to initialize the :mod:`!custom` module: this is the ``PyInit_custom`` " -"function and the associated ``custommodule`` struct." +"How to define and execute the :mod:`!custom` module: this is the " +"``PyInit_custom`` function and the associated ``custom_module`` struct for " +"defining the module, and the ``custom_module_exec`` function to set up a " +"fresh module object." msgstr "" -#: extending/newtypes_tutorial.rst:61 +#: extending/newtypes_tutorial.rst:63 msgid "The first bit is::" msgstr "" -#: extending/newtypes_tutorial.rst:63 +#: extending/newtypes_tutorial.rst:65 msgid "" "typedef struct {\n" " PyObject_HEAD\n" "} CustomObject;" msgstr "" -#: extending/newtypes_tutorial.rst:67 +#: extending/newtypes_tutorial.rst:69 msgid "" "This is what a Custom object will contain. ``PyObject_HEAD`` is mandatory " "at the start of each object struct and defines a field called ``ob_base`` of " @@ -162,20 +174,20 @@ msgid "" "builds `." msgstr "" -#: extending/newtypes_tutorial.rst:76 +#: extending/newtypes_tutorial.rst:78 msgid "" "There is no semicolon above after the :c:macro:`PyObject_HEAD` macro. Be " "wary of adding one by accident: some compilers will complain." msgstr "" -#: extending/newtypes_tutorial.rst:79 +#: extending/newtypes_tutorial.rst:81 msgid "" "Of course, objects generally store additional data besides the standard " "``PyObject_HEAD`` boilerplate; for example, here is the definition for " "standard Python floats::" msgstr "" -#: extending/newtypes_tutorial.rst:83 +#: extending/newtypes_tutorial.rst:85 msgid "" "typedef struct {\n" " PyObject_HEAD\n" @@ -183,11 +195,11 @@ msgid "" "} PyFloatObject;" msgstr "" -#: extending/newtypes_tutorial.rst:88 +#: extending/newtypes_tutorial.rst:90 msgid "The second bit is the definition of the type object. ::" msgstr "" -#: extending/newtypes_tutorial.rst:90 +#: extending/newtypes_tutorial.rst:92 msgid "" "static PyTypeObject CustomType = {\n" " .ob_base = PyVarObject_HEAD_INIT(NULL, 0)\n" @@ -200,14 +212,14 @@ msgid "" "};" msgstr "" -#: extending/newtypes_tutorial.rst:101 +#: extending/newtypes_tutorial.rst:103 msgid "" "We recommend using C99-style designated initializers as above, to avoid " "listing all the :c:type:`PyTypeObject` fields that you don't care about and " "also to avoid caring about the fields' declaration order." msgstr "" -#: extending/newtypes_tutorial.rst:105 +#: extending/newtypes_tutorial.rst:107 msgid "" "The actual definition of :c:type:`PyTypeObject` in :file:`object.h` has many " "more :ref:`fields ` than the definition above. The remaining " @@ -215,31 +227,31 @@ msgid "" "to not specify them explicitly unless you need them." msgstr "" -#: extending/newtypes_tutorial.rst:110 +#: extending/newtypes_tutorial.rst:112 msgid "We're going to pick it apart, one field at a time::" msgstr "" -#: extending/newtypes_tutorial.rst:112 +#: extending/newtypes_tutorial.rst:114 msgid ".ob_base = PyVarObject_HEAD_INIT(NULL, 0)" msgstr "" -#: extending/newtypes_tutorial.rst:114 +#: extending/newtypes_tutorial.rst:116 msgid "" "This line is mandatory boilerplate to initialize the ``ob_base`` field " "mentioned above. ::" msgstr "" -#: extending/newtypes_tutorial.rst:117 +#: extending/newtypes_tutorial.rst:119 msgid ".tp_name = \"custom.Custom\"," msgstr "" -#: extending/newtypes_tutorial.rst:119 +#: extending/newtypes_tutorial.rst:121 msgid "" "The name of our type. This will appear in the default textual " "representation of our objects and in some error messages, for example:" msgstr "" -#: extending/newtypes_tutorial.rst:122 +#: extending/newtypes_tutorial.rst:124 msgid "" ">>> \"\" + custom.Custom()\n" "Traceback (most recent call last):\n" @@ -247,7 +259,7 @@ msgid "" "TypeError: can only concatenate str (not \"custom.Custom\") to str" msgstr "" -#: extending/newtypes_tutorial.rst:129 +#: extending/newtypes_tutorial.rst:131 msgid "" "Note that the name is a dotted name that includes both the module name and " "the name of the type within the module. The module in this case is :mod:`!" @@ -256,20 +268,20 @@ msgid "" "your type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::" msgstr "" -#: extending/newtypes_tutorial.rst:135 +#: extending/newtypes_tutorial.rst:137 msgid "" ".tp_basicsize = sizeof(CustomObject),\n" ".tp_itemsize = 0," msgstr "" -#: extending/newtypes_tutorial.rst:138 +#: extending/newtypes_tutorial.rst:140 msgid "" "This is so that Python knows how much memory to allocate when creating new :" "class:`!Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is only " "used for variable-sized objects and should otherwise be zero." msgstr "" -#: extending/newtypes_tutorial.rst:144 +#: extending/newtypes_tutorial.rst:146 msgid "" "If you want your type to be subclassable from Python, and your type has the " "same :c:member:`~PyTypeObject.tp_basicsize` as its base type, you may have " @@ -283,31 +295,31 @@ msgid "" "your base type, and therefore increasing its size." msgstr "" -#: extending/newtypes_tutorial.rst:154 +#: extending/newtypes_tutorial.rst:156 msgid "We set the class flags to :c:macro:`Py_TPFLAGS_DEFAULT`. ::" msgstr "" -#: extending/newtypes_tutorial.rst:156 +#: extending/newtypes_tutorial.rst:158 msgid ".tp_flags = Py_TPFLAGS_DEFAULT," msgstr "" -#: extending/newtypes_tutorial.rst:158 +#: extending/newtypes_tutorial.rst:160 msgid "" "All types should include this constant in their flags. It enables all of " "the members defined until at least Python 3.3. If you need further members, " "you will need to OR the corresponding flags." msgstr "" -#: extending/newtypes_tutorial.rst:162 +#: extending/newtypes_tutorial.rst:164 msgid "" "We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::" msgstr "" -#: extending/newtypes_tutorial.rst:164 +#: extending/newtypes_tutorial.rst:166 msgid ".tp_doc = PyDoc_STR(\"Custom objects\")," msgstr "" -#: extending/newtypes_tutorial.rst:166 +#: extending/newtypes_tutorial.rst:168 msgid "" "To enable object creation, we have to provide a :c:member:`~PyTypeObject." "tp_new` handler. This is the equivalent of the Python method :meth:`~object." @@ -316,56 +328,56 @@ msgid "" "`PyType_GenericNew`. ::" msgstr "" -#: extending/newtypes_tutorial.rst:171 +#: extending/newtypes_tutorial.rst:173 msgid ".tp_new = PyType_GenericNew," msgstr "" -#: extending/newtypes_tutorial.rst:173 +#: extending/newtypes_tutorial.rst:175 msgid "" "Everything else in the file should be familiar, except for some code in :c:" -"func:`!PyInit_custom`::" +"func:`!custom_module_exec`::" msgstr "" -#: extending/newtypes_tutorial.rst:176 +#: extending/newtypes_tutorial.rst:178 msgid "" -"if (PyType_Ready(&CustomType) < 0)\n" -" return;" +"if (PyType_Ready(&CustomType) < 0) {\n" +" return -1;\n" +"}" msgstr "" -#: extending/newtypes_tutorial.rst:179 +#: extending/newtypes_tutorial.rst:182 msgid "" "This initializes the :class:`!Custom` type, filling in a number of members " "to the appropriate default values, including :c:member:`~PyObject.ob_type` " "that we initially set to ``NULL``. ::" msgstr "" -#: extending/newtypes_tutorial.rst:183 +#: extending/newtypes_tutorial.rst:186 msgid "" "if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) {\n" -" Py_DECREF(m);\n" -" return NULL;\n" +" return -1;\n" "}" msgstr "" -#: extending/newtypes_tutorial.rst:188 +#: extending/newtypes_tutorial.rst:190 msgid "" "This adds the type to the module dictionary. This allows us to create :" "class:`!Custom` instances by calling the :class:`!Custom` class:" msgstr "" -#: extending/newtypes_tutorial.rst:191 +#: extending/newtypes_tutorial.rst:193 msgid "" ">>> import custom\n" ">>> mycustom = custom.Custom()" msgstr "" -#: extending/newtypes_tutorial.rst:196 +#: extending/newtypes_tutorial.rst:198 msgid "" "That's it! All that remains is to build it; put the above code in a file " "called :file:`custom.c`," msgstr "" -#: extending/newtypes_tutorial.rst:199 +#: extending/newtypes_tutorial.rst:201 msgid "" "[build-system]\n" "requires = [\"setuptools\"]\n" @@ -376,53 +388,53 @@ msgid "" "version = \"1\"\n" msgstr "" -#: extending/newtypes_tutorial.rst:201 +#: extending/newtypes_tutorial.rst:203 msgid "in a file called :file:`pyproject.toml`, and" msgstr "" -#: extending/newtypes_tutorial.rst:203 +#: extending/newtypes_tutorial.rst:205 msgid "" "from setuptools import Extension, setup\n" "setup(ext_modules=[Extension(\"custom\", [\"custom.c\"])])" msgstr "" -#: extending/newtypes_tutorial.rst:208 +#: extending/newtypes_tutorial.rst:210 msgid "in a file called :file:`setup.py`; then typing" msgstr "" -#: extending/newtypes_tutorial.rst:210 extending/newtypes_tutorial.rst:525 +#: extending/newtypes_tutorial.rst:212 extending/newtypes_tutorial.rst:527 msgid "$ python -m pip install ." msgstr "" -#: extending/newtypes_tutorial.rst:214 +#: extending/newtypes_tutorial.rst:216 msgid "" "in a shell should produce a file :file:`custom.so` in a subdirectory and " "install it; now fire up Python --- you should be able to ``import custom`` " "and play around with ``Custom`` objects." msgstr "" -#: extending/newtypes_tutorial.rst:218 +#: extending/newtypes_tutorial.rst:220 msgid "That wasn't so hard, was it?" msgstr "" -#: extending/newtypes_tutorial.rst:220 +#: extending/newtypes_tutorial.rst:222 msgid "" "Of course, the current Custom type is pretty uninteresting. It has no data " "and doesn't do anything. It can't even be subclassed." msgstr "" -#: extending/newtypes_tutorial.rst:225 +#: extending/newtypes_tutorial.rst:227 msgid "Adding data and methods to the Basic example" msgstr "" -#: extending/newtypes_tutorial.rst:227 +#: extending/newtypes_tutorial.rst:229 msgid "" "Let's extend the basic example to add some data and methods. Let's also " "make the type usable as a base class. We'll create a new module, :mod:`!" "custom2` that adds these capabilities:" msgstr "" -#: extending/newtypes_tutorial.rst:231 +#: extending/newtypes_tutorial.rst:233 msgid "" "#define PY_SSIZE_T_CLEAN\n" "#include \n" @@ -529,39 +541,48 @@ msgid "" " .tp_methods = Custom_methods,\n" "};\n" "\n" -"static PyModuleDef custommodule = {\n" -" .m_base =PyModuleDef_HEAD_INIT,\n" +"static int\n" +"custom_module_exec(PyObject *m)\n" +"{\n" +" if (PyType_Ready(&CustomType) < 0) {\n" +" return -1;\n" +" }\n" +"\n" +" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " +"{\n" +" return -1;\n" +" }\n" +"\n" +" return 0;\n" +"}\n" +"\n" +"static PyModuleDef_Slot custom_module_slots[] = {\n" +" {Py_mod_exec, custom_module_exec},\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {0, NULL}\n" +"};\n" +"\n" +"static PyModuleDef custom_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" " .m_name = \"custom2\",\n" " .m_doc = \"Example module that creates an extension type.\",\n" -" .m_size = -1,\n" +" .m_size = 0,\n" +" .m_slots = custom_module_slots,\n" "};\n" "\n" "PyMODINIT_FUNC\n" "PyInit_custom2(void)\n" "{\n" -" PyObject *m;\n" -" if (PyType_Ready(&CustomType) < 0)\n" -" return NULL;\n" -"\n" -" m = PyModule_Create(&custommodule);\n" -" if (m == NULL)\n" -" return NULL;\n" -"\n" -" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " -"{\n" -" Py_DECREF(m);\n" -" return NULL;\n" -" }\n" -"\n" -" return m;\n" +" return PyModuleDef_Init(&custom_module);\n" "}\n" msgstr "" -#: extending/newtypes_tutorial.rst:234 +#: extending/newtypes_tutorial.rst:236 msgid "This version of the module has a number of changes." msgstr "" -#: extending/newtypes_tutorial.rst:236 +#: extending/newtypes_tutorial.rst:238 msgid "" "The :class:`!Custom` type now has three data attributes in its C struct, " "*first*, *last*, and *number*. The *first* and *last* variables are Python " @@ -569,11 +590,11 @@ msgid "" "integer." msgstr "" -#: extending/newtypes_tutorial.rst:240 +#: extending/newtypes_tutorial.rst:242 msgid "The object structure is updated accordingly::" msgstr "" -#: extending/newtypes_tutorial.rst:242 +#: extending/newtypes_tutorial.rst:244 msgid "" "typedef struct {\n" " PyObject_HEAD\n" @@ -583,13 +604,13 @@ msgid "" "} CustomObject;" msgstr "" -#: extending/newtypes_tutorial.rst:249 +#: extending/newtypes_tutorial.rst:251 msgid "" "Because we now have data to manage, we have to be more careful about object " "allocation and deallocation. At a minimum, we need a deallocation method::" msgstr "" -#: extending/newtypes_tutorial.rst:252 +#: extending/newtypes_tutorial.rst:254 msgid "" "static void\n" "Custom_dealloc(CustomObject *self)\n" @@ -600,15 +621,15 @@ msgid "" "}" msgstr "" -#: extending/newtypes_tutorial.rst:260 +#: extending/newtypes_tutorial.rst:262 msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::" msgstr "" -#: extending/newtypes_tutorial.rst:262 +#: extending/newtypes_tutorial.rst:264 msgid ".tp_dealloc = (destructor) Custom_dealloc," msgstr "" -#: extending/newtypes_tutorial.rst:264 +#: extending/newtypes_tutorial.rst:266 msgid "" "This method first clears the reference counts of the two Python attributes. :" "c:func:`Py_XDECREF` correctly handles the case where its argument is " @@ -619,7 +640,7 @@ msgid "" "an instance of a subclass." msgstr "" -#: extending/newtypes_tutorial.rst:273 +#: extending/newtypes_tutorial.rst:275 msgid "" "The explicit cast to ``destructor`` above is needed because we defined " "``Custom_dealloc`` to take a ``CustomObject *`` argument, but the " @@ -628,13 +649,13 @@ msgid "" "oriented polymorphism, in C!" msgstr "" -#: extending/newtypes_tutorial.rst:279 +#: extending/newtypes_tutorial.rst:281 msgid "" "We want to make sure that the first and last names are initialized to empty " "strings, so we provide a ``tp_new`` implementation::" msgstr "" -#: extending/newtypes_tutorial.rst:282 +#: extending/newtypes_tutorial.rst:284 msgid "" "static PyObject *\n" "Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)\n" @@ -658,15 +679,15 @@ msgid "" "}" msgstr "" -#: extending/newtypes_tutorial.rst:303 +#: extending/newtypes_tutorial.rst:305 msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::" msgstr "" -#: extending/newtypes_tutorial.rst:305 +#: extending/newtypes_tutorial.rst:307 msgid ".tp_new = Custom_new," msgstr "" -#: extending/newtypes_tutorial.rst:307 +#: extending/newtypes_tutorial.rst:309 msgid "" "The ``tp_new`` handler is responsible for creating (as opposed to " "initializing) objects of the type. It is exposed in Python as the :meth:" @@ -677,7 +698,7 @@ msgid "" "``first`` and ``last`` attributes to non-``NULL`` default values." msgstr "" -#: extending/newtypes_tutorial.rst:315 +#: extending/newtypes_tutorial.rst:317 msgid "" "``tp_new`` is passed the type being instantiated (not necessarily " "``CustomType``, if a subclass is instantiated) and any arguments passed when " @@ -687,29 +708,29 @@ msgid "" "k.a. ``tp_init`` in C or ``__init__`` in Python) methods." msgstr "" -#: extending/newtypes_tutorial.rst:323 +#: extending/newtypes_tutorial.rst:325 msgid "" "``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do " "it itself." msgstr "" -#: extending/newtypes_tutorial.rst:326 +#: extending/newtypes_tutorial.rst:328 msgid "" "The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` " "slot to allocate memory::" msgstr "" -#: extending/newtypes_tutorial.rst:329 +#: extending/newtypes_tutorial.rst:331 msgid "self = (CustomObject *) type->tp_alloc(type, 0);" msgstr "" -#: extending/newtypes_tutorial.rst:331 +#: extending/newtypes_tutorial.rst:333 msgid "" "Since memory allocation may fail, we must check the :c:member:`~PyTypeObject." "tp_alloc` result against ``NULL`` before proceeding." msgstr "" -#: extending/newtypes_tutorial.rst:335 +#: extending/newtypes_tutorial.rst:337 msgid "" "We didn't fill the :c:member:`~PyTypeObject.tp_alloc` slot ourselves. " "Rather :c:func:`PyType_Ready` fills it for us by inheriting it from our base " @@ -717,7 +738,7 @@ msgid "" "allocation strategy." msgstr "" -#: extending/newtypes_tutorial.rst:341 +#: extending/newtypes_tutorial.rst:343 msgid "" "If you are creating a co-operative :c:member:`~PyTypeObject.tp_new` (one " "that calls a base type's :c:member:`~PyTypeObject.tp_new` or :meth:`~object." @@ -730,13 +751,13 @@ msgid "" "subclasses without getting a :exc:`TypeError`.)" msgstr "" -#: extending/newtypes_tutorial.rst:351 +#: extending/newtypes_tutorial.rst:353 msgid "" "We also define an initialization function which accepts arguments to provide " "initial values for our instance::" msgstr "" -#: extending/newtypes_tutorial.rst:354 +#: extending/newtypes_tutorial.rst:356 msgid "" "static int\n" "Custom_init(CustomObject *self, PyObject *args, PyObject *kwds)\n" @@ -765,15 +786,15 @@ msgid "" "}" msgstr "" -#: extending/newtypes_tutorial.rst:380 +#: extending/newtypes_tutorial.rst:382 msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::" msgstr "" -#: extending/newtypes_tutorial.rst:382 +#: extending/newtypes_tutorial.rst:384 msgid ".tp_init = (initproc) Custom_init," msgstr "" -#: extending/newtypes_tutorial.rst:384 +#: extending/newtypes_tutorial.rst:386 msgid "" "The :c:member:`~PyTypeObject.tp_init` slot is exposed in Python as the :meth:" "`~object.__init__` method. It is used to initialize an object after it's " @@ -781,7 +802,7 @@ msgid "" "they should return either ``0`` on success or ``-1`` on error." msgstr "" -#: extending/newtypes_tutorial.rst:389 +#: extending/newtypes_tutorial.rst:391 msgid "" "Unlike the ``tp_new`` handler, there is no guarantee that ``tp_init`` is " "called at all (for example, the :mod:`pickle` module by default doesn't " @@ -792,7 +813,7 @@ msgid "" "``first`` member like this::" msgstr "" -#: extending/newtypes_tutorial.rst:397 +#: extending/newtypes_tutorial.rst:399 msgid "" "if (first) {\n" " Py_XDECREF(self->first);\n" @@ -801,7 +822,7 @@ msgid "" "}" msgstr "" -#: extending/newtypes_tutorial.rst:403 +#: extending/newtypes_tutorial.rst:405 msgid "" "But this would be risky. Our type doesn't restrict the type of the " "``first`` member, so it could be any kind of object. It could have a " @@ -811,37 +832,37 @@ msgid "" "accesses and modifies our object." msgstr "" -#: extending/newtypes_tutorial.rst:410 +#: extending/newtypes_tutorial.rst:412 msgid "" "To be paranoid and protect ourselves against this possibility, we almost " "always reassign members before decrementing their reference counts. When " "don't we have to do this?" msgstr "" -#: extending/newtypes_tutorial.rst:414 +#: extending/newtypes_tutorial.rst:416 msgid "when we absolutely know that the reference count is greater than 1;" msgstr "" -#: extending/newtypes_tutorial.rst:416 +#: extending/newtypes_tutorial.rst:418 msgid "" "when we know that deallocation of the object [#]_ will neither release the :" "term:`GIL` nor cause any calls back into our type's code;" msgstr "" -#: extending/newtypes_tutorial.rst:419 +#: extending/newtypes_tutorial.rst:421 msgid "" "when decrementing a reference count in a :c:member:`~PyTypeObject." "tp_dealloc` handler on a type which doesn't support cyclic garbage " "collection [#]_." msgstr "" -#: extending/newtypes_tutorial.rst:422 +#: extending/newtypes_tutorial.rst:424 msgid "" "We want to expose our instance variables as attributes. There are a number " "of ways to do that. The simplest way is to define member definitions::" msgstr "" -#: extending/newtypes_tutorial.rst:425 +#: extending/newtypes_tutorial.rst:427 msgid "" "static PyMemberDef Custom_members[] = {\n" " {\"first\", Py_T_OBJECT_EX, offsetof(CustomObject, first), 0,\n" @@ -854,23 +875,23 @@ msgid "" "};" msgstr "" -#: extending/newtypes_tutorial.rst:435 +#: extending/newtypes_tutorial.rst:437 msgid "" "and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::" msgstr "" -#: extending/newtypes_tutorial.rst:437 +#: extending/newtypes_tutorial.rst:439 msgid ".tp_members = Custom_members," msgstr "" -#: extending/newtypes_tutorial.rst:439 +#: extending/newtypes_tutorial.rst:441 msgid "" "Each member definition has a member name, type, offset, access flags and " "documentation string. See the :ref:`Generic-Attribute-Management` section " "below for details." msgstr "" -#: extending/newtypes_tutorial.rst:443 +#: extending/newtypes_tutorial.rst:445 msgid "" "A disadvantage of this approach is that it doesn't provide a way to restrict " "the types of objects that can be assigned to the Python attributes. We " @@ -881,13 +902,13 @@ msgid "" "deleted." msgstr "" -#: extending/newtypes_tutorial.rst:450 +#: extending/newtypes_tutorial.rst:452 msgid "" "We define a single method, :meth:`!Custom.name`, that outputs the objects " "name as the concatenation of the first and last names. ::" msgstr "" -#: extending/newtypes_tutorial.rst:453 +#: extending/newtypes_tutorial.rst:455 msgid "" "static PyObject *\n" "Custom_name(CustomObject *self, PyObject *Py_UNUSED(ignored))\n" @@ -904,7 +925,7 @@ msgid "" "}" msgstr "" -#: extending/newtypes_tutorial.rst:467 +#: extending/newtypes_tutorial.rst:469 msgid "" "The method is implemented as a C function that takes a :class:`!Custom` (or :" "class:`!Custom` subclass) instance as the first argument. Methods always " @@ -914,13 +935,13 @@ msgid "" "method is equivalent to the Python method:" msgstr "" -#: extending/newtypes_tutorial.rst:474 +#: extending/newtypes_tutorial.rst:476 msgid "" "def name(self):\n" " return \"%s %s\" % (self.first, self.last)" msgstr "" -#: extending/newtypes_tutorial.rst:479 +#: extending/newtypes_tutorial.rst:481 msgid "" "Note that we have to check for the possibility that our :attr:`!first` and :" "attr:`!last` members are ``NULL``. This is because they can be deleted, in " @@ -929,13 +950,13 @@ msgid "" "We'll see how to do that in the next section." msgstr "" -#: extending/newtypes_tutorial.rst:485 +#: extending/newtypes_tutorial.rst:487 msgid "" "Now that we've defined the method, we need to create an array of method " "definitions::" msgstr "" -#: extending/newtypes_tutorial.rst:488 +#: extending/newtypes_tutorial.rst:490 msgid "" "static PyMethodDef Custom_methods[] = {\n" " {\"name\", (PyCFunction) Custom_name, METH_NOARGS,\n" @@ -945,21 +966,21 @@ msgid "" "};" msgstr "" -#: extending/newtypes_tutorial.rst:495 +#: extending/newtypes_tutorial.rst:497 msgid "" "(note that we used the :c:macro:`METH_NOARGS` flag to indicate that the " "method is expecting no arguments other than *self*)" msgstr "" -#: extending/newtypes_tutorial.rst:498 +#: extending/newtypes_tutorial.rst:500 msgid "and assign it to the :c:member:`~PyTypeObject.tp_methods` slot::" msgstr "" -#: extending/newtypes_tutorial.rst:500 +#: extending/newtypes_tutorial.rst:502 msgid ".tp_methods = Custom_methods," msgstr "" -#: extending/newtypes_tutorial.rst:502 +#: extending/newtypes_tutorial.rst:504 msgid "" "Finally, we'll make our type usable as a base class for subclassing. We've " "written our methods carefully so far so that they don't make any assumptions " @@ -967,22 +988,22 @@ msgid "" "to add the :c:macro:`Py_TPFLAGS_BASETYPE` to our class flag definition::" msgstr "" -#: extending/newtypes_tutorial.rst:507 +#: extending/newtypes_tutorial.rst:509 msgid ".tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE," msgstr "" -#: extending/newtypes_tutorial.rst:509 +#: extending/newtypes_tutorial.rst:511 msgid "" "We rename :c:func:`!PyInit_custom` to :c:func:`!PyInit_custom2`, update the " "module name in the :c:type:`PyModuleDef` struct, and update the full class " "name in the :c:type:`PyTypeObject` struct." msgstr "" -#: extending/newtypes_tutorial.rst:513 +#: extending/newtypes_tutorial.rst:515 msgid "Finally, we update our :file:`setup.py` file to include the new module," msgstr "" -#: extending/newtypes_tutorial.rst:515 +#: extending/newtypes_tutorial.rst:517 msgid "" "from setuptools import Extension, setup\n" "setup(ext_modules=[\n" @@ -991,15 +1012,15 @@ msgid "" "])" msgstr "" -#: extending/newtypes_tutorial.rst:523 +#: extending/newtypes_tutorial.rst:525 msgid "and then we re-install so that we can ``import custom2``:" msgstr "" -#: extending/newtypes_tutorial.rst:530 +#: extending/newtypes_tutorial.rst:532 msgid "Providing finer control over data attributes" msgstr "" -#: extending/newtypes_tutorial.rst:532 +#: extending/newtypes_tutorial.rst:534 msgid "" "In this section, we'll provide finer control over how the :attr:`!first` " "and :attr:`!last` attributes are set in the :class:`!Custom` example. In the " @@ -1008,7 +1029,7 @@ msgid "" "make sure that these attributes always contain strings." msgstr "" -#: extending/newtypes_tutorial.rst:538 +#: extending/newtypes_tutorial.rst:540 msgid "" "#define PY_SSIZE_T_CLEAN\n" "#include \n" @@ -1158,42 +1179,51 @@ msgid "" " .tp_getset = Custom_getsetters,\n" "};\n" "\n" -"static PyModuleDef custommodule = {\n" +"static int\n" +"custom_module_exec(PyObject *m)\n" +"{\n" +" if (PyType_Ready(&CustomType) < 0) {\n" +" return -1;\n" +" }\n" +"\n" +" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " +"{\n" +" return -1;\n" +" }\n" +"\n" +" return 0;\n" +"}\n" +"\n" +"static PyModuleDef_Slot custom_module_slots[] = {\n" +" {Py_mod_exec, custom_module_exec},\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {0, NULL}\n" +"};\n" +"\n" +"static PyModuleDef custom_module = {\n" " .m_base = PyModuleDef_HEAD_INIT,\n" " .m_name = \"custom3\",\n" " .m_doc = \"Example module that creates an extension type.\",\n" -" .m_size = -1,\n" +" .m_size = 0,\n" +" .m_slots = custom_module_slots,\n" "};\n" "\n" "PyMODINIT_FUNC\n" "PyInit_custom3(void)\n" "{\n" -" PyObject *m;\n" -" if (PyType_Ready(&CustomType) < 0)\n" -" return NULL;\n" -"\n" -" m = PyModule_Create(&custommodule);\n" -" if (m == NULL)\n" -" return NULL;\n" -"\n" -" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " -"{\n" -" Py_DECREF(m);\n" -" return NULL;\n" -" }\n" -"\n" -" return m;\n" +" return PyModuleDef_Init(&custom_module);\n" "}\n" msgstr "" -#: extending/newtypes_tutorial.rst:541 +#: extending/newtypes_tutorial.rst:543 msgid "" "To provide greater control, over the :attr:`!first` and :attr:`!last` " "attributes, we'll use custom getter and setter functions. Here are the " "functions for getting and setting the :attr:`!first` attribute::" msgstr "" -#: extending/newtypes_tutorial.rst:545 +#: extending/newtypes_tutorial.rst:547 msgid "" "static PyObject *\n" "Custom_getfirst(CustomObject *self, void *closure)\n" @@ -1224,7 +1254,7 @@ msgid "" "}" msgstr "" -#: extending/newtypes_tutorial.rst:572 +#: extending/newtypes_tutorial.rst:574 msgid "" "The getter function is passed a :class:`!Custom` object and a \"closure\", " "which is a void pointer. In this case, the closure is ignored. (The " @@ -1234,7 +1264,7 @@ msgid "" "data in the closure.)" msgstr "" -#: extending/newtypes_tutorial.rst:578 +#: extending/newtypes_tutorial.rst:580 msgid "" "The setter function is passed the :class:`!Custom` object, the new value, " "and the closure. The new value may be ``NULL``, in which case the attribute " @@ -1242,11 +1272,11 @@ msgid "" "deleted or if its new value is not a string." msgstr "" -#: extending/newtypes_tutorial.rst:583 +#: extending/newtypes_tutorial.rst:585 msgid "We create an array of :c:type:`PyGetSetDef` structures::" msgstr "" -#: extending/newtypes_tutorial.rst:585 +#: extending/newtypes_tutorial.rst:587 msgid "" "static PyGetSetDef Custom_getsetters[] = {\n" " {\"first\", (getter) Custom_getfirst, (setter) Custom_setfirst,\n" @@ -1257,26 +1287,26 @@ msgid "" "};" msgstr "" -#: extending/newtypes_tutorial.rst:593 +#: extending/newtypes_tutorial.rst:595 msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::" msgstr "" -#: extending/newtypes_tutorial.rst:595 +#: extending/newtypes_tutorial.rst:597 msgid ".tp_getset = Custom_getsetters," msgstr "" -#: extending/newtypes_tutorial.rst:597 +#: extending/newtypes_tutorial.rst:599 msgid "" "The last item in a :c:type:`PyGetSetDef` structure is the \"closure\" " "mentioned above. In this case, we aren't using a closure, so we just pass " "``NULL``." msgstr "" -#: extending/newtypes_tutorial.rst:600 +#: extending/newtypes_tutorial.rst:602 msgid "We also remove the member definitions for these attributes::" msgstr "" -#: extending/newtypes_tutorial.rst:602 +#: extending/newtypes_tutorial.rst:604 msgid "" "static PyMemberDef Custom_members[] = {\n" " {\"number\", Py_T_INT, offsetof(CustomObject, number), 0,\n" @@ -1285,13 +1315,13 @@ msgid "" "};" msgstr "" -#: extending/newtypes_tutorial.rst:608 +#: extending/newtypes_tutorial.rst:610 msgid "" "We also need to update the :c:member:`~PyTypeObject.tp_init` handler to only " "allow strings [#]_ to be passed::" msgstr "" -#: extending/newtypes_tutorial.rst:611 +#: extending/newtypes_tutorial.rst:613 msgid "" "static int\n" "Custom_init(CustomObject *self, PyObject *args, PyObject *kwds)\n" @@ -1320,7 +1350,7 @@ msgid "" "}" msgstr "" -#: extending/newtypes_tutorial.rst:637 +#: extending/newtypes_tutorial.rst:639 msgid "" "With these changes, we can assure that the ``first`` and ``last`` members " "are never ``NULL`` so we can remove checks for ``NULL`` values in almost all " @@ -1330,32 +1360,32 @@ msgid "" "possibility that the initialization of these members failed in ``tp_new``." msgstr "" -#: extending/newtypes_tutorial.rst:644 +#: extending/newtypes_tutorial.rst:646 msgid "" "We also rename the module initialization function and module name in the " "initialization function, as we did before, and we add an extra definition to " "the :file:`setup.py` file." msgstr "" -#: extending/newtypes_tutorial.rst:650 +#: extending/newtypes_tutorial.rst:652 msgid "Supporting cyclic garbage collection" msgstr "" -#: extending/newtypes_tutorial.rst:652 +#: extending/newtypes_tutorial.rst:654 msgid "" "Python has a :term:`cyclic garbage collector (GC) ` that " "can identify unneeded objects even when their reference counts are not zero. " "This can happen when objects are involved in cycles. For example, consider:" msgstr "" -#: extending/newtypes_tutorial.rst:656 +#: extending/newtypes_tutorial.rst:658 msgid "" ">>> l = []\n" ">>> l.append(l)\n" ">>> del l" msgstr "" -#: extending/newtypes_tutorial.rst:662 +#: extending/newtypes_tutorial.rst:664 msgid "" "In this example, we create a list that contains itself. When we delete it, " "it still has a reference from itself. Its reference count doesn't drop to " @@ -1363,7 +1393,7 @@ msgid "" "out that the list is garbage and free it." msgstr "" -#: extending/newtypes_tutorial.rst:667 +#: extending/newtypes_tutorial.rst:669 msgid "" "In the second version of the :class:`!Custom` example, we allowed any kind " "of object to be stored in the :attr:`!first` or :attr:`!last` attributes " @@ -1372,7 +1402,7 @@ msgid "" "those two reasons, :class:`!Custom` objects can participate in cycles:" msgstr "" -#: extending/newtypes_tutorial.rst:673 +#: extending/newtypes_tutorial.rst:675 msgid "" ">>> import custom3\n" ">>> class Derived(custom3.Custom): pass\n" @@ -1381,7 +1411,7 @@ msgid "" ">>> n.some_attribute = n" msgstr "" -#: extending/newtypes_tutorial.rst:681 +#: extending/newtypes_tutorial.rst:683 msgid "" "To allow a :class:`!Custom` instance participating in a reference cycle to " "be properly detected and collected by the cyclic GC, our :class:`!Custom` " @@ -1389,7 +1419,7 @@ msgid "" "these slots:" msgstr "" -#: extending/newtypes_tutorial.rst:685 +#: extending/newtypes_tutorial.rst:687 msgid "" "#define PY_SSIZE_T_CLEAN\n" "#include \n" @@ -1558,41 +1588,50 @@ msgid "" " .tp_getset = Custom_getsetters,\n" "};\n" "\n" -"static PyModuleDef custommodule = {\n" +"static int\n" +"custom_module_exec(PyObject *m)\n" +"{\n" +" if (PyType_Ready(&CustomType) < 0) {\n" +" return -1;\n" +" }\n" +"\n" +" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " +"{\n" +" return -1;\n" +" }\n" +"\n" +" return 0;\n" +"}\n" +"\n" +"static PyModuleDef_Slot custom_module_slots[] = {\n" +" {Py_mod_exec, custom_module_exec},\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {0, NULL}\n" +"};\n" +"\n" +"static PyModuleDef custom_module = {\n" " .m_base = PyModuleDef_HEAD_INIT,\n" " .m_name = \"custom4\",\n" " .m_doc = \"Example module that creates an extension type.\",\n" -" .m_size = -1,\n" +" .m_size = 0,\n" +" .m_slots = custom_module_slots,\n" "};\n" "\n" "PyMODINIT_FUNC\n" "PyInit_custom4(void)\n" "{\n" -" PyObject *m;\n" -" if (PyType_Ready(&CustomType) < 0)\n" -" return NULL;\n" -"\n" -" m = PyModule_Create(&custommodule);\n" -" if (m == NULL)\n" -" return NULL;\n" -"\n" -" if (PyModule_AddObjectRef(m, \"Custom\", (PyObject *) &CustomType) < 0) " -"{\n" -" Py_DECREF(m);\n" -" return NULL;\n" -" }\n" -"\n" -" return m;\n" +" return PyModuleDef_Init(&custom_module);\n" "}\n" msgstr "" -#: extending/newtypes_tutorial.rst:688 +#: extending/newtypes_tutorial.rst:690 msgid "" "First, the traversal method lets the cyclic GC know about subobjects that " "could participate in cycles::" msgstr "" -#: extending/newtypes_tutorial.rst:691 +#: extending/newtypes_tutorial.rst:693 msgid "" "static int\n" "Custom_traverse(CustomObject *self, visitproc visit, void *arg)\n" @@ -1612,7 +1651,7 @@ msgid "" "}" msgstr "" -#: extending/newtypes_tutorial.rst:708 +#: extending/newtypes_tutorial.rst:710 msgid "" "For each subobject that can participate in cycles, we need to call the :c:" "func:`!visit` function, which is passed to the traversal method. The :c:func:" @@ -1621,14 +1660,14 @@ msgid "" "be returned if it is non-zero." msgstr "" -#: extending/newtypes_tutorial.rst:714 +#: extending/newtypes_tutorial.rst:716 msgid "" "Python provides a :c:func:`Py_VISIT` macro that automates calling visit " "functions. With :c:func:`Py_VISIT`, we can minimize the amount of " "boilerplate in ``Custom_traverse``::" msgstr "" -#: extending/newtypes_tutorial.rst:718 +#: extending/newtypes_tutorial.rst:720 msgid "" "static int\n" "Custom_traverse(CustomObject *self, visitproc visit, void *arg)\n" @@ -1639,19 +1678,19 @@ msgid "" "}" msgstr "" -#: extending/newtypes_tutorial.rst:727 +#: extending/newtypes_tutorial.rst:729 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` implementation must name its " "arguments exactly *visit* and *arg* in order to use :c:func:`Py_VISIT`." msgstr "" -#: extending/newtypes_tutorial.rst:730 +#: extending/newtypes_tutorial.rst:732 msgid "" "Second, we need to provide a method for clearing any subobjects that can " "participate in cycles::" msgstr "" -#: extending/newtypes_tutorial.rst:733 +#: extending/newtypes_tutorial.rst:735 msgid "" "static int\n" "Custom_clear(CustomObject *self)\n" @@ -1662,7 +1701,7 @@ msgid "" "}" msgstr "" -#: extending/newtypes_tutorial.rst:741 +#: extending/newtypes_tutorial.rst:743 msgid "" "Notice the use of the :c:func:`Py_CLEAR` macro. It is the recommended and " "safe way to clear data attributes of arbitrary types while decrementing " @@ -1672,11 +1711,11 @@ msgid "" "again (*especially* if there is a reference cycle)." msgstr "" -#: extending/newtypes_tutorial.rst:749 +#: extending/newtypes_tutorial.rst:751 msgid "You could emulate :c:func:`Py_CLEAR` by writing::" msgstr "" -#: extending/newtypes_tutorial.rst:751 +#: extending/newtypes_tutorial.rst:753 msgid "" "PyObject *tmp;\n" "tmp = self->first;\n" @@ -1684,14 +1723,14 @@ msgid "" "Py_XDECREF(tmp);" msgstr "" -#: extending/newtypes_tutorial.rst:756 +#: extending/newtypes_tutorial.rst:758 msgid "" "Nevertheless, it is much easier and less error-prone to always use :c:func:" "`Py_CLEAR` when deleting an attribute. Don't try to micro-optimize at the " "expense of robustness!" msgstr "" -#: extending/newtypes_tutorial.rst:760 +#: extending/newtypes_tutorial.rst:762 msgid "" "The deallocator ``Custom_dealloc`` may call arbitrary code when clearing " "attributes. It means the circular GC can be triggered inside the function. " @@ -1701,7 +1740,7 @@ msgid "" "`PyObject_GC_UnTrack` and ``Custom_clear``::" msgstr "" -#: extending/newtypes_tutorial.rst:767 +#: extending/newtypes_tutorial.rst:769 msgid "" "static void\n" "Custom_dealloc(CustomObject *self)\n" @@ -1712,17 +1751,17 @@ msgid "" "}" msgstr "" -#: extending/newtypes_tutorial.rst:775 +#: extending/newtypes_tutorial.rst:777 msgid "" "Finally, we add the :c:macro:`Py_TPFLAGS_HAVE_GC` flag to the class flags::" msgstr "" -#: extending/newtypes_tutorial.rst:777 +#: extending/newtypes_tutorial.rst:779 msgid "" ".tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC," msgstr "" -#: extending/newtypes_tutorial.rst:779 +#: extending/newtypes_tutorial.rst:781 msgid "" "That's pretty much it. If we had written custom :c:member:`~PyTypeObject." "tp_alloc` or :c:member:`~PyTypeObject.tp_free` handlers, we'd need to modify " @@ -1730,11 +1769,11 @@ msgid "" "automatically provided." msgstr "" -#: extending/newtypes_tutorial.rst:785 +#: extending/newtypes_tutorial.rst:787 msgid "Subclassing other types" msgstr "" -#: extending/newtypes_tutorial.rst:787 +#: extending/newtypes_tutorial.rst:789 msgid "" "It is possible to create new extension types that are derived from existing " "types. It is easiest to inherit from the built in types, since an extension " @@ -1742,7 +1781,7 @@ msgid "" "share these :c:type:`PyTypeObject` structures between extension modules." msgstr "" -#: extending/newtypes_tutorial.rst:792 +#: extending/newtypes_tutorial.rst:794 msgid "" "In this example we will create a :class:`!SubList` type that inherits from " "the built-in :class:`list` type. The new type will be completely compatible " @@ -1750,7 +1789,7 @@ msgid "" "that increases an internal counter:" msgstr "" -#: extending/newtypes_tutorial.rst:797 +#: extending/newtypes_tutorial.rst:799 msgid "" ">>> import sublist\n" ">>> s = sublist.SubList(range(3))\n" @@ -1763,7 +1802,7 @@ msgid "" "2" msgstr "" -#: extending/newtypes_tutorial.rst:809 +#: extending/newtypes_tutorial.rst:811 msgid "" "#define PY_SSIZE_T_CLEAN\n" "#include \n" @@ -1796,7 +1835,7 @@ msgid "" "}\n" "\n" "static PyTypeObject SubListType = {\n" -" PyVarObject_HEAD_INIT(NULL, 0)\n" +" .ob_base = PyVarObject_HEAD_INIT(NULL, 0)\n" " .tp_name = \"sublist.SubList\",\n" " .tp_doc = PyDoc_STR(\"SubList objects\"),\n" " .tp_basicsize = sizeof(SubListObject),\n" @@ -1806,43 +1845,52 @@ msgid "" " .tp_methods = SubList_methods,\n" "};\n" "\n" -"static PyModuleDef sublistmodule = {\n" -" PyModuleDef_HEAD_INIT,\n" -" .m_name = \"sublist\",\n" -" .m_doc = \"Example module that creates an extension type.\",\n" -" .m_size = -1,\n" -"};\n" -"\n" -"PyMODINIT_FUNC\n" -"PyInit_sublist(void)\n" +"static int\n" +"sublist_module_exec(PyObject *m)\n" "{\n" -" PyObject *m;\n" " SubListType.tp_base = &PyList_Type;\n" -" if (PyType_Ready(&SubListType) < 0)\n" -" return NULL;\n" -"\n" -" m = PyModule_Create(&sublistmodule);\n" -" if (m == NULL)\n" -" return NULL;\n" +" if (PyType_Ready(&SubListType) < 0) {\n" +" return -1;\n" +" }\n" "\n" " if (PyModule_AddObjectRef(m, \"SubList\", (PyObject *) &SubListType) < " "0) {\n" -" Py_DECREF(m);\n" -" return NULL;\n" +" return -1;\n" " }\n" "\n" -" return m;\n" +" return 0;\n" +"}\n" +"\n" +"static PyModuleDef_Slot sublist_module_slots[] = {\n" +" {Py_mod_exec, sublist_module_exec},\n" +" {Py_mod_multiple_interpreters, " +"Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n" +" {0, NULL}\n" +"};\n" +"\n" +"static PyModuleDef sublist_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"sublist\",\n" +" .m_doc = \"Example module that creates an extension type.\",\n" +" .m_size = 0,\n" +" .m_slots = sublist_module_slots,\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_sublist(void)\n" +"{\n" +" return PyModuleDef_Init(&sublist_module);\n" "}\n" msgstr "" -#: extending/newtypes_tutorial.rst:812 +#: extending/newtypes_tutorial.rst:814 msgid "" "As you can see, the source code closely resembles the :class:`!Custom` " "examples in previous sections. We will break down the main differences " "between them. ::" msgstr "" -#: extending/newtypes_tutorial.rst:815 +#: extending/newtypes_tutorial.rst:817 msgid "" "typedef struct {\n" " PyListObject list;\n" @@ -1850,21 +1898,21 @@ msgid "" "} SubListObject;" msgstr "" -#: extending/newtypes_tutorial.rst:820 +#: extending/newtypes_tutorial.rst:822 msgid "" "The primary difference for derived type objects is that the base type's " "object structure must be the first value. The base type will already " "include the :c:func:`PyObject_HEAD` at the beginning of its structure." msgstr "" -#: extending/newtypes_tutorial.rst:824 +#: extending/newtypes_tutorial.rst:826 msgid "" "When a Python object is a :class:`!SubList` instance, its ``PyObject *`` " "pointer can be safely cast to both ``PyListObject *`` and ``SubListObject " "*``::" msgstr "" -#: extending/newtypes_tutorial.rst:827 +#: extending/newtypes_tutorial.rst:829 msgid "" "static int\n" "SubList_init(SubListObject *self, PyObject *args, PyObject *kwds)\n" @@ -1876,13 +1924,13 @@ msgid "" "}" msgstr "" -#: extending/newtypes_tutorial.rst:836 +#: extending/newtypes_tutorial.rst:838 msgid "" "We see above how to call through to the :meth:`~object.__init__` method of " "the base type." msgstr "" -#: extending/newtypes_tutorial.rst:839 +#: extending/newtypes_tutorial.rst:841 msgid "" "This pattern is important when writing a type with custom :c:member:" "`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_dealloc` members. " @@ -1891,40 +1939,34 @@ msgid "" "the base class handle it by calling its own :c:member:`~PyTypeObject.tp_new`." msgstr "" -#: extending/newtypes_tutorial.rst:845 +#: extending/newtypes_tutorial.rst:847 msgid "" "The :c:type:`PyTypeObject` struct supports a :c:member:`~PyTypeObject." "tp_base` specifying the type's concrete base class. Due to cross-platform " "compiler issues, you can't fill that field directly with a reference to :c:" -"type:`PyList_Type`; it should be done later in the module initialization " -"function::" +"type:`PyList_Type`; it should be done in the :c:data:`Py_mod_exec` function::" msgstr "" -#: extending/newtypes_tutorial.rst:851 +#: extending/newtypes_tutorial.rst:853 msgid "" -"PyMODINIT_FUNC\n" -"PyInit_sublist(void)\n" +"static int\n" +"sublist_module_exec(PyObject *m)\n" "{\n" -" PyObject* m;\n" " SubListType.tp_base = &PyList_Type;\n" -" if (PyType_Ready(&SubListType) < 0)\n" -" return NULL;\n" -"\n" -" m = PyModule_Create(&sublistmodule);\n" -" if (m == NULL)\n" -" return NULL;\n" +" if (PyType_Ready(&SubListType) < 0) {\n" +" return -1;\n" +" }\n" "\n" " if (PyModule_AddObjectRef(m, \"SubList\", (PyObject *) &SubListType) < " "0) {\n" -" Py_DECREF(m);\n" -" return NULL;\n" +" return -1;\n" " }\n" "\n" -" return m;\n" +" return 0;\n" "}" msgstr "" -#: extending/newtypes_tutorial.rst:871 +#: extending/newtypes_tutorial.rst:868 msgid "" "Before calling :c:func:`PyType_Ready`, the type structure must have the :c:" "member:`~PyTypeObject.tp_base` slot filled in. When we are deriving an " @@ -1933,29 +1975,29 @@ msgid "" "from the base type will be inherited." msgstr "" -#: extending/newtypes_tutorial.rst:877 +#: extending/newtypes_tutorial.rst:874 msgid "" "After that, calling :c:func:`PyType_Ready` and adding the type object to the " "module is the same as with the basic :class:`!Custom` examples." msgstr "" -#: extending/newtypes_tutorial.rst:882 +#: extending/newtypes_tutorial.rst:879 msgid "Footnotes" msgstr "" -#: extending/newtypes_tutorial.rst:883 +#: extending/newtypes_tutorial.rst:880 msgid "" "This is true when we know that the object is a basic type, like a string or " "a float." msgstr "" -#: extending/newtypes_tutorial.rst:886 +#: extending/newtypes_tutorial.rst:883 msgid "" "We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in " "this example, because our type doesn't support garbage collection." msgstr "" -#: extending/newtypes_tutorial.rst:889 +#: extending/newtypes_tutorial.rst:886 msgid "" "We now know that the first and last members are strings, so perhaps we could " "be less careful about decrementing their reference counts, however, we " @@ -1965,7 +2007,7 @@ msgid "" "objects." msgstr "" -#: extending/newtypes_tutorial.rst:895 +#: extending/newtypes_tutorial.rst:892 msgid "" "Also, even with our attributes restricted to strings instances, the user " "could pass arbitrary :class:`str` subclasses and therefore still create " diff --git a/extending/windows.po b/extending/windows.po index 1ac0c39f..4d9eefda 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 11ff3cd9..656f5152 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a4224cfd..500c85b8 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" -"PO-Revision-Date: 2024-10-31 12:22+0200\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -70,49 +70,20 @@ msgstr "Το να γράψει C κάποιος είναι δύσκολο· υπ #: faq/extending.rst:39 msgid "" "There are a number of alternatives to writing your own C extensions, " -"depending on what you're trying to do." -msgstr "" -"Υπάρχουν διάφορες εναλλακτικές λύσεις για να γράψετε τις δικές σας " -"επεκτάσεις C, ανάλογα με το τι προσπαθείτε να κάνετε." - -#: faq/extending.rst:44 -msgid "" -"`Cython `_ and its relative `Pyrex `_ are compilers that accept a " -"slightly modified form of Python and generate the corresponding C code. " -"Cython and Pyrex make it possible to write an extension without having to " -"learn Python's C API." -msgstr "" -"Το `Cython `_ και το σχετικό του `Pyrex `_ είναι μεταγλωττιστές που " -"δέχονται ελαφρώς τροποποιημένη μορφή της Python και δημιουργούν τον " -"αντίστοιχο C κώδικα. Το Cython και το Pyrex καθιστούν δυνατή τη σύνταξη " -"μιας επέκτασης χωρίς να χρειάζεται να μάθετε το C API της Python." - -#: faq/extending.rst:50 -msgid "" -"If you need to interface to some C or C++ library for which no Python " -"extension currently exists, you can try wrapping the library's data types " -"and functions with a tool such as `SWIG `_. `SIP " -"`__, `CXX `_ `Boost `_, or `Weave " -"`_ are also alternatives for wrapping C++ " -"libraries." -msgstr "" -"Εάν χρειάζεται να συνδεθείτε με κάποια βιβλιοθήκη C ή C++ για την οποία δεν " -"υπάρχει αυτήν τη στιγμή επέκταση Python, μπορείτε να δοκιμάσετε να " -"αναδιπλώσετε τους τύπους δεδομένων και τις συναρτήσεις της βιβλιοθήκης με " -"ένα εργαλείο όπως `SWIG `_. `SIP `__, `CXX `_ `Boost `_, ή `Weave `_ είναι επίσης εναλλακτικές λύσεις για την αναδίπλωση " -"βιβλιοθηκών C++." - -#: faq/extending.rst:61 +"depending on what you're trying to do. :ref:`Recommended third party tools " +"` offer both simpler and more sophisticated approaches to " +"creating C and C++ extensions for Python." +msgstr "" +"Υπάρχουν αρκετές εναλλακτικές στο να γράψετε τις δικές σας επεκτάσεις C, " +"ανάλογα με το τι προσπαθείτε να κάνετε. :ref:`Recommended third party tools " +"` προσφέρουν τόσο απλούστερες όσο και πιο εξελιγμένες " +"προσεγγίσεις για τη δημιουργία επεκτάσεων C και C++ για την Python." + +#: faq/extending.rst:46 msgid "How can I execute arbitrary Python statements from C?" msgstr "Πως μπορώ να εκτελέσω αυθαίρετες δηλώσεις Python από το C;" -#: faq/extending.rst:63 +#: faq/extending.rst:48 msgid "" "The highest-level function to do this is :c:func:`PyRun_SimpleString` which " "takes a single string argument to be executed in the context of the module " @@ -125,14 +96,14 @@ msgstr "" "`PyRun_SimpleString` η οποία εκτελεί ένα όρισμα συμβολοσειράς στο πλαίσιο " "της ενότητας ``__main__`` και επιστρέφει ``0`` για επιτυχία και ``-1`` όταν " "συμβαίνει μια εξαίρεση (συμπεριλαμβανομένου του :exc:`SyntaxError`). Εάν " -"θέλετε περισσότερο έλεγχο, χρησιμοποιήστε :c:func:`PyRun_String`· δείτε τον " -"πηγαίο κώδικα :c:func:`PyRun_SimpleString` στο``Python/pythonrun.c``." +"θέλετε περισσότερο έλεγχο, χρησιμοποιήστε :c:func:`PyRun_String` · δείτε τον " +"πηγαίο κώδικα :c:func:`PyRun_SimpleString` στο ``Python/pythonrun.c``." -#: faq/extending.rst:72 +#: faq/extending.rst:57 msgid "How can I evaluate an arbitrary Python expression from C?" msgstr "Πώς μπορώ να αξιολογήσω μια αυθαίρετη έκφραση Python από τη C;" -#: faq/extending.rst:74 +#: faq/extending.rst:59 msgid "" "Call the function :c:func:`PyRun_String` from the previous question with the " "start symbol :c:data:`Py_eval_input`; it parses an expression, evaluates it " @@ -142,11 +113,11 @@ msgstr "" "το σύμβολο έναρξης :c:data:`Py_eval_input`· αναλύει μια παράσταση, την " "αξιολογεί και επιστρέφει την τιμή της." -#: faq/extending.rst:80 +#: faq/extending.rst:65 msgid "How do I extract C values from a Python object?" msgstr "Πως μπορώ να εξάγω τιμές C από ένα αντικείμενο Python;" -#: faq/extending.rst:82 +#: faq/extending.rst:67 msgid "" "That depends on the object's type. If it's a tuple, :c:func:`PyTuple_Size` " "returns its length and :c:func:`PyTuple_GetItem` returns the item at a " @@ -159,7 +130,7 @@ msgstr "" "λίστες έχουν παρόμοιες συναρτήσεις, :c:func:`PyList_Size` και :c:func:" "`PyList_GetItem`." -#: faq/extending.rst:87 +#: faq/extending.rst:72 msgid "" "For bytes, :c:func:`PyBytes_Size` returns its length and :c:func:" "`PyBytes_AsStringAndSize` provides a pointer to its value and its length. " @@ -171,7 +142,7 @@ msgstr "" "Λάβετε υπόψη ότι τα αντικείμενα byte της Python μπορεί να περιέχουν null " "byte, επομένως η :c:func:`!strlen` της C δεν πρέπει να χρησιμοποιείται." -#: faq/extending.rst:92 +#: faq/extending.rst:77 msgid "" "To test the type of an object, first make sure it isn't ``NULL``, and then " "use :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:" @@ -181,7 +152,7 @@ msgstr "" "``NULL``, και μετά χρησιμοποιήστε τα :c:func:`PyBytes_Check`, :c:func:" "`PyTuple_Check`, :c:func:`PyList_Check`, κλπ." -#: faq/extending.rst:95 +#: faq/extending.rst:80 msgid "" "There is also a high-level API to Python objects which is provided by the so-" "called 'abstract' interface -- read ``Include/abstract.h`` for further " @@ -198,21 +169,21 @@ msgstr "" "χρήσιμα πρωτόκολλα όπως αριθμοί (:c:func:`PyNumber_Index` et al.) και " "αντιστοιχίσεις στον PyMapping APIs." -#: faq/extending.rst:104 +#: faq/extending.rst:89 msgid "How do I use Py_BuildValue() to create a tuple of arbitrary length?" msgstr "" "Πώς μπορώ να χρησιμοποιήσω την Py_BuildValue() για να δημιουργήσω μια " "πλειάδα (tuple) αυθαίρετου μήκους;" -#: faq/extending.rst:106 +#: faq/extending.rst:91 msgid "You can't. Use :c:func:`PyTuple_Pack` instead." msgstr "Δεν μπορείς. Χρησιμοποιήστε το :c:func:`PyTuple_Pack`." -#: faq/extending.rst:110 +#: faq/extending.rst:95 msgid "How do I call an object's method from C?" msgstr "Πώς καλώ τη μέθοδο ενός αντικειμένου από τη C;" -#: faq/extending.rst:112 +#: faq/extending.rst:97 msgid "" "The :c:func:`PyObject_CallMethod` function can be used to call an arbitrary " "method of an object. The parameters are the object, the name of the method " @@ -225,7 +196,7 @@ msgstr "" "αυτή που χρησιμοποιείται με τη :c:func:`Py_BuildValue`, και τις τιμές " "ορίσματος::" -#: faq/extending.rst:117 +#: faq/extending.rst:102 msgid "" "PyObject *\n" "PyObject_CallMethod(PyObject *object, const char *method_name,\n" @@ -235,7 +206,7 @@ msgstr "" "PyObject_CallMethod(PyObject *object, const char *method_name,\n" " const char *arg_format, ...);" -#: faq/extending.rst:121 +#: faq/extending.rst:106 msgid "" "This works for any object that has methods -- whether built-in or user-" "defined. You are responsible for eventually :c:func:`Py_DECREF`\\ 'ing the " @@ -245,7 +216,7 @@ msgstr "" "ενσωματωμένες είτε καθορίζονται από το χρήστη. Είστε υπεύθυνοι εάν τελικά " "χρησιμοποιήσετε :c:func:`Py_DECREF` στην τιμή επιστροφής." -#: faq/extending.rst:124 +#: faq/extending.rst:109 msgid "" "To call, e.g., a file object's \"seek\" method with arguments 10, 0 " "(assuming the file object pointer is \"f\")::" @@ -254,7 +225,7 @@ msgstr "" "ορίσματα 10, 0 (υποθέτοντας ότι ο δείκτης του αντικειμένου αρχείου είναι " "\"f\")::" -#: faq/extending.rst:127 +#: faq/extending.rst:112 msgid "" "res = PyObject_CallMethod(f, \"seek\", \"(ii)\", 10, 0);\n" "if (res == NULL) {\n" @@ -272,7 +243,7 @@ msgstr "" " Py_DECREF(res);\n" "}" -#: faq/extending.rst:135 +#: faq/extending.rst:120 msgid "" "Note that since :c:func:`PyObject_CallObject` *always* wants a tuple for the " "argument list, to call a function without arguments, pass \"()\" for the " @@ -284,7 +255,7 @@ msgstr "" "ορίσματα, να περάσει \"()\" για τη μορφή και να καλέσει μια συνάρτηση με ένα " "όρισμα, περιβάλλουν το όρισμα σε παρένθεση, π.χ. \"(i)\"." -#: faq/extending.rst:142 +#: faq/extending.rst:127 msgid "" "How do I catch the output from PyErr_Print() (or anything that prints to " "stdout/stderr)?" @@ -292,7 +263,7 @@ msgstr "" "Πώς μπορώ να κάνω catch την έξοδο από την PyErr_Print() (ή οτιδήποτε " "εκτυπώνεται σε stdout/stderr);" -#: faq/extending.rst:144 +#: faq/extending.rst:129 msgid "" "In Python code, define an object that supports the ``write()`` method. " "Assign this object to :data:`sys.stdout` and :data:`sys.stderr`. Call " @@ -305,13 +276,13 @@ msgstr "" "μηχανισμό ανίχνευσης να λειτουργήσει. Στη συνέχεια, η έξοδος θα πάει " "οπουδήποτε την στείλει η μέθοδος ``write()``." -#: faq/extending.rst:149 +#: faq/extending.rst:134 msgid "The easiest way to do this is to use the :class:`io.StringIO` class:" msgstr "" "Ο ευκολότερος τρόπος για να το κάνετε αυτό είναι να χρησιμοποιήσετε την " "κλάση :class:`io.StringIO`:" -#: faq/extending.rst:151 +#: faq/extending.rst:136 msgid "" ">>> import io, sys\n" ">>> sys.stdout = io.StringIO()\n" @@ -329,11 +300,11 @@ msgstr "" "foo\n" "hello world!" -#: faq/extending.rst:161 +#: faq/extending.rst:146 msgid "A custom object to do the same would look like this:" msgstr "Ένα προσαρμοσμένο αντικείμενο για να κάνει το ίδιο θα μοιάζει με αυτό:" -#: faq/extending.rst:163 +#: faq/extending.rst:148 msgid "" ">>> import io, sys\n" ">>> class StdoutCatcher(io.TextIOBase):\n" @@ -365,20 +336,20 @@ msgstr "" "foo\n" "hello world!" -#: faq/extending.rst:182 +#: faq/extending.rst:167 msgid "How do I access a module written in Python from C?" msgstr "" "Πως μπορώ να αποκτήσω πρόσβαση σε ένα module γραμμένο σε Python από τη C;" -#: faq/extending.rst:184 +#: faq/extending.rst:169 msgid "You can get a pointer to the module object as follows::" msgstr "Μπορείτε να λάβετε έναν δείκτη στο αντικείμενο του module ως εξής::" -#: faq/extending.rst:186 +#: faq/extending.rst:171 msgid "module = PyImport_ImportModule(\"\");" msgstr "module = PyImport_ImportModule(\"\");" -#: faq/extending.rst:188 +#: faq/extending.rst:173 msgid "" "If the module hasn't been imported yet (i.e. it is not yet present in :data:" "`sys.modules`), this initializes the module; otherwise it simply returns the " @@ -392,7 +363,7 @@ msgstr "" "module σε κανένα namespace -- διασφαλίζει μόνο ότι έχει αρχικοποιηθεί και " "ότι είναι αποθηκευμένη στο :data:`sys.modules`." -#: faq/extending.rst:194 +#: faq/extending.rst:179 msgid "" "You can then access the module's attributes (i.e. any name defined in the " "module) as follows::" @@ -400,11 +371,11 @@ msgstr "" "Μπορείτε στη συνέχεια να αποκτήσετε πρόσβαση στα χαρακτηριστικά του module " "(δηλαδή οποιοδήποτε όνομα ορίζεται στο module) ως εξής::" -#: faq/extending.rst:197 +#: faq/extending.rst:182 msgid "attr = PyObject_GetAttrString(module, \"\");" msgstr "attr = PyObject_GetAttrString(module, \"\");" -#: faq/extending.rst:199 +#: faq/extending.rst:184 msgid "" "Calling :c:func:`PyObject_SetAttrString` to assign to variables in the " "module also works." @@ -412,11 +383,11 @@ msgstr "" "Η κλήση :c:func:`PyObject_SetAttrString` για αντιστοίχιση σε μεταβλητές στο " "module λειτουργεί επίσης." -#: faq/extending.rst:204 +#: faq/extending.rst:189 msgid "How do I interface to C++ objects from Python?" msgstr "Πως διασυνδέομαι με αντικείμενα C++ από την Python;" -#: faq/extending.rst:206 +#: faq/extending.rst:191 msgid "" "Depending on your requirements, there are many approaches. To do this " "manually, begin by reading :ref:`the \"Extending and Embedding\" document " @@ -432,17 +403,17 @@ msgstr "" "-- επομένως η στρατηγική της δημιουργίας ενός νέου τύπου Python γύρω από " "έναν τύπο δομής C (δείκτη) θα λειτουργήσει επίσης για αντικείμενα C++." -#: faq/extending.rst:212 +#: faq/extending.rst:197 msgid "For C++ libraries, see :ref:`c-wrapper-software`." msgstr "Για βιβλιοθήκες C++, δείτε :ref:`c-wrapper-software`." -#: faq/extending.rst:216 +#: faq/extending.rst:201 msgid "I added a module using the Setup file and the make fails; why?" msgstr "" "Πρόσθεσα ένα module χρησιμοποιώντας το αρχείο Setup και το make αποτυγχάνει· " "γιατί;" -#: faq/extending.rst:218 +#: faq/extending.rst:203 msgid "" "Setup must end in a newline, if there is no newline there, the build process " "fails. (Fixing this requires some ugly shell script hackery, and this bug " @@ -453,11 +424,11 @@ msgstr "" "κακόβουλο script shell, και αυτό το σφάλμα είναι τόσο μικρό που δεν φαίνεται " "να αξίζει τον κόπο.)" -#: faq/extending.rst:224 +#: faq/extending.rst:209 msgid "How do I debug an extension?" msgstr "Πως κάνω debug μια επέκταση;" -#: faq/extending.rst:226 +#: faq/extending.rst:211 msgid "" "When using GDB with dynamically loaded extensions, you can't set a " "breakpoint in your extension until your extension is loaded." @@ -466,19 +437,19 @@ msgstr "" "να ορίσετε σημείο διακοπής στην επέκταση σας μέχρι να φορτωθεί η επέκτασής " "σας." -#: faq/extending.rst:229 +#: faq/extending.rst:214 msgid "In your ``.gdbinit`` file (or interactively), add the command:" msgstr "Στο αρχείο σας ``.gdbinit`` (ή διαδραστικά), προσθέστε την εντολή:" -#: faq/extending.rst:231 +#: faq/extending.rst:216 msgid "br _PyImport_LoadDynamicModule" msgstr "br _PyImport_LoadDynamicModule" -#: faq/extending.rst:235 +#: faq/extending.rst:220 msgid "Then, when you run GDB:" msgstr "Στη συνέχεια, όταν εκτελείτε το GDB:" -#: faq/extending.rst:237 +#: faq/extending.rst:222 msgid "" "$ gdb /local/bin/python\n" "gdb) run myscript.py\n" @@ -494,7 +465,7 @@ msgstr "" "gdb) br myfunction.c:50\n" "gdb) continue" -#: faq/extending.rst:247 +#: faq/extending.rst:232 msgid "" "I want to compile a Python module on my Linux system, but some files are " "missing. Why?" @@ -502,7 +473,7 @@ msgstr "" "Θέλω να κάνω compile ένα Python module στο σύστημα Linux μου, αλλά λείπουν " "ορισμένα αρχεία. Γιατί;" -#: faq/extending.rst:249 +#: faq/extending.rst:234 msgid "" "Most packaged versions of Python omit some files required for compiling " "Python extensions." @@ -510,22 +481,22 @@ msgstr "" "Οι περισσότερες συσκευασμένες εκδόσεις της Python παραλείπουν ορισμένα " "αρχεία που απαιτούνται για τη μεταγλώττιση των επεκτάσεων Python." -#: faq/extending.rst:252 +#: faq/extending.rst:237 msgid "For Red Hat, install the python3-devel RPM to get the necessary files." msgstr "" "Για το Red Hat, εγκαταστήστε το RPM της python3-devel για να λάβετε τα " "απαραίτητα αρχεία." -#: faq/extending.rst:254 +#: faq/extending.rst:239 msgid "For Debian, run ``apt-get install python3-dev``." msgstr "Για το Debian, εκτελέστε το ``apt-get install python3-dev``." -#: faq/extending.rst:257 +#: faq/extending.rst:242 msgid "How do I tell \"incomplete input\" from \"invalid input\"?" msgstr "" "Πώς μπορώ να ξεχωρίσω την \"ελλιπή εισαγωγή\" από την \"έγκυρη εισαγωγή\";" -#: faq/extending.rst:259 +#: faq/extending.rst:244 msgid "" "Sometimes you want to emulate the Python interactive interpreter's behavior, " "where it gives you a continuation prompt when the input is incomplete (e.g. " @@ -539,7 +510,7 @@ msgstr "" "παρενθέσεις ή τα τριπλά εισαγωγικά συμβολοσειρών), αλλά σας δίνει ένα μήνυμα " "συντακτικού σφάλματος αμέσως όταν η εισαγωγή δεν είναι έγκυρη." -#: faq/extending.rst:265 +#: faq/extending.rst:250 msgid "" "In Python you can use the :mod:`codeop` module, which approximates the " "parser's behavior sufficiently. IDLE uses this, for example." @@ -548,7 +519,7 @@ msgstr "" "προσεγγίζει επαρκώς τη συμπεριφορά του parser. Το IDLE χρησιμοποιεί αυτό, " "για παράδειγμα." -#: faq/extending.rst:268 +#: faq/extending.rst:253 msgid "" "The easiest way to do it in C is to call :c:func:`PyRun_InteractiveLoop` " "(perhaps in a separate thread) and let the Python interpreter handle the " @@ -563,12 +534,12 @@ msgstr "" "προσαρμοσμένη συνάρτηση εισαγωγής. Δείτε τα ``Modules/readline.c`` και " "``Parser/myreadline.c`` για περισσότερες συμβουλές." -#: faq/extending.rst:275 +#: faq/extending.rst:260 msgid "How do I find undefined g++ symbols __builtin_new or __pure_virtual?" msgstr "" "Πώς μπορώ να βρω απροσδιόριστα σύμβολα g++ __builtin_new ή __pure_virtual;" -#: faq/extending.rst:277 +#: faq/extending.rst:262 msgid "" "To dynamically load g++ extension modules, you must recompile Python, relink " "it using g++ (change LINKCC in the Python Modules Makefile), and link your " @@ -579,7 +550,7 @@ msgstr "" "Python Modules Makefile), και να συνδέσετε το module επέκτασης σας " "χρησιμοποιώντας g++ (π.χ. ``g++ -shared -o mymodule.so mymodule.o``)." -#: faq/extending.rst:283 +#: faq/extending.rst:268 msgid "" "Can I create an object class with some methods implemented in C and others " "in Python (e.g. through inheritance)?" @@ -587,7 +558,7 @@ msgstr "" "Μπορώ να δημιουργήσω μια κλάση αντικειμένου με ορισμένες μεθόδους που " "υλοποιούνται στη C και άλλες στη Python (π.χ. μέσω κληρονομικότητας);" -#: faq/extending.rst:285 +#: faq/extending.rst:270 msgid "" "Yes, you can inherit from built-in classes such as :class:`int`, :class:" "`list`, :class:`dict`, etc." @@ -595,7 +566,7 @@ msgstr "" "Ναι, μπορείτε να κληρονομήσετε από ενσωματωμένες (built-in) κλάσεις όπως :" "class:`int`, :class:`list`, :class:`dict`, κ.λπ." -#: faq/extending.rst:288 +#: faq/extending.rst:273 msgid "" "The Boost Python Library (BPL, https://www.boost.org/libs/python/doc/index." "html) provides a way of doing this from C++ (i.e. you can inherit from an " @@ -605,3 +576,41 @@ msgstr "" "doc/index.html) παρέχει ένα τρόπο για να γίνει αυτό από την C++ (δηλαδή " "μπορείτε να κληρονομήσετε από μια κλάση επέκτασης γραμμένη σε C++ " "χρησιμοποιώντας το BPL)." + +#~ msgid "" +#~ "There are a number of alternatives to writing your own C extensions, " +#~ "depending on what you're trying to do." +#~ msgstr "" +#~ "Υπάρχουν διάφορες εναλλακτικές λύσεις για να γράψετε τις δικές σας " +#~ "επεκτάσεις C, ανάλογα με το τι προσπαθείτε να κάνετε." + +#~ msgid "" +#~ "`Cython `_ and its relative `Pyrex `_ are compilers that accept a " +#~ "slightly modified form of Python and generate the corresponding C code. " +#~ "Cython and Pyrex make it possible to write an extension without having to " +#~ "learn Python's C API." +#~ msgstr "" +#~ "Το `Cython `_ και το σχετικό του `Pyrex `_ είναι μεταγλωττιστές " +#~ "που δέχονται ελαφρώς τροποποιημένη μορφή της Python και δημιουργούν τον " +#~ "αντίστοιχο C κώδικα. Το Cython και το Pyrex καθιστούν δυνατή τη σύνταξη " +#~ "μιας επέκτασης χωρίς να χρειάζεται να μάθετε το C API της Python." + +#~ msgid "" +#~ "If you need to interface to some C or C++ library for which no Python " +#~ "extension currently exists, you can try wrapping the library's data types " +#~ "and functions with a tool such as `SWIG `_. `SIP " +#~ "`__, `CXX `_ `Boost `_, or " +#~ "`Weave `_ are also alternatives for " +#~ "wrapping C++ libraries." +#~ msgstr "" +#~ "Εάν χρειάζεται να συνδεθείτε με κάποια βιβλιοθήκη C ή C++ για την οποία " +#~ "δεν υπάρχει αυτήν τη στιγμή επέκταση Python, μπορείτε να δοκιμάσετε να " +#~ "αναδιπλώσετε τους τύπους δεδομένων και τις συναρτήσεις της βιβλιοθήκης με " +#~ "ένα εργαλείο όπως `SWIG `_. `SIP `__, `CXX `_ `Boost " +#~ "`_, ή `Weave `_ είναι επίσης εναλλακτικές λύσεις για την " +#~ "αναδίπλωση βιβλιοθηκών C++." diff --git a/faq/general.po b/faq/general.po index bcd7ebd2..1f72fc77 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b52b44c8..e021f563 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 2ac3c1e9..61c0a651 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 f8c46e8d..3037001f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: 2024-05-06 12:51+0000\n" "Last-Translator: Dimitrios Papadopoulos\n" "Language-Team: PyGreece \n" @@ -129,7 +129,7 @@ msgstr "" "Αν η Python εγκαταστάθηκε από μια εφαρμογή τρίτου μέρους, μπορείτε επίσης να " "την αφαιρέσετε, αλλά η εφαρμογή αυτή δεν θα λειτουργεί πλέον. Θα πρέπει να " "χρησιμοποιήσετε το πρόγραμμα απεγκατάστασης αυτής της εφαρμογής αντί να " -"αφαιρέσετε απευθείας την Python. " +"αφαιρέσετε απευθείας την Python." #: faq/installed.rst:49 msgid "" diff --git a/faq/library.po b/faq/library.po index e0035da7..0b3016c9 100644 --- a/faq/library.po +++ b/faq/library.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: 2025-11-21 09:35+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" @@ -958,7 +958,7 @@ msgid "" "open`, where *fd* is the file descriptor (a small integer)." msgstr "" "Για να περικόψετε ένα αρχείο, ανοίξτε το χρησιμοποιώντας ``f = " -"open(filename, \"rb+\")``, και χρησιμοποιήστε το ``f.truncate(offset)``∙ " +"open(filename, \"rb+\")``, και χρησιμοποιήστε το ``f.truncate(offset)`` ∙ " "μετατόπιση των προεπιλογών στην τρέχουσα θέση αναζήτησης. Υπάρχει επίσης το " "``os.ftruncate(fd, offset)`` για αρχεία που ανοίγουν με :func:`os.open`, " "όπου *fd* είναι ο περιγραφέας αρχείου (ένας μικρός ακέραιος)." diff --git a/faq/programming.po b/faq/programming.po index 6dda3397..c3d34e55 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" -"PO-Revision-Date: 2025-05-05 22:13+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\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:`!list.extend`::" +"meth:`!__iadd__` ισοδυναμεί με την κλήση του :meth:`~sequence.extend` στη " +"λίστα και επιστρέφει τη λίστα. Για αυτό λέμε ότι για λίστες ``+=`` είναι " +"μια \"συντομογραφία\" για :meth:`list.extend`::" #: faq/programming.rst:1404 msgid "" diff --git a/faq/windows.po b/faq/windows.po index 6c12d85e..25ef723b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 57287f1f..68197ea2 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-05-04 22:06+0300\n" -"PO-Revision-Date: 2025-05-03 18:04+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+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 "annotation" msgstr "annotation" -#: glossary.rst:40 +#: glossary.rst:42 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`." @@ -101,7 +104,7 @@ msgstr "" "παράμετρος συνάρτησης ή τιμή που επιστρέφεται, που χρησιμοποιείται κατά " "σύμβαση ως :term:`type hint`." -#: glossary.rst:44 +#: glossary.rst:46 msgid "" "Annotations of local variables cannot be accessed at runtime, but " "annotations of global variables, class attributes, and functions are stored " @@ -114,7 +117,7 @@ msgstr "" "χαρακτηριστικό :attr:`__annotations__` των modules, των κλάσεων και των " "συναρτήσεων, αντίστοιχα." -#: glossary.rst:50 +#: glossary.rst:52 msgid "" "See :term:`variable annotation`, :term:`function annotation`, :pep:`484` " "and :pep:`526`, which describe this functionality. Also see :ref:" @@ -124,11 +127,11 @@ msgstr "" "και :pep:`526`, τα οποία περιγράφουν την λειτουργικότητα. Επίσης βλ. :ref:" "`annotations-howto` για τις βέλτιστες πρακτικές δουλεύοντας με annotations." -#: glossary.rst:54 +#: glossary.rst:56 msgid "argument" msgstr "όρισμα" -#: glossary.rst:56 +#: glossary.rst:58 msgid "" "A value passed to a :term:`function` (or :term:`method`) when calling the " "function. There are two kinds of argument:" @@ -136,7 +139,7 @@ msgstr "" "Μια τιμή μεταβιβάζεται σε μία :term:`function` (ή :term:`method`) κατά την " "κλήση της συνάρτησης. Υπάρχουν δύο είδη ορισμάτων:" -#: glossary.rst:59 +#: glossary.rst:61 msgid "" ":dfn:`keyword argument`: an argument preceded by an identifier (e.g. " "``name=``) in a function call or passed as a value in a dictionary preceded " @@ -148,7 +151,7 @@ msgstr "" "από ``**``. Για παράδειγμα, το ``3`` και το ``5`` αποτελούν ορίσματα λέξεων-" "κλειδιών στις ακόλουθες κλήσεις προς :func:`complex`::" -#: glossary.rst:64 +#: glossary.rst:66 msgid "" "complex(real=3, imag=5)\n" "complex(**{'real': 3, 'imag': 5})" @@ -156,7 +159,7 @@ msgstr "" "complex(real=3, imag=5)\n" "complex(**{'real': 3, 'imag': 5})" -#: glossary.rst:67 +#: glossary.rst:69 msgid "" ":dfn:`positional argument`: an argument that is not a keyword argument. " "Positional arguments can appear at the beginning of an argument list and/or " @@ -169,7 +172,7 @@ msgstr "" "παράδειγμα, το ``3`` και το ``5`` αποτελούν ορίσματα θέσης στις παρακάτω " "κλήσεις::" -#: glossary.rst:73 +#: glossary.rst:75 msgid "" "complex(3, 5)\n" "complex(*(3, 5))" @@ -177,7 +180,7 @@ msgstr "" "complex(3, 5)\n" "complex(*(3, 5))" -#: glossary.rst:76 +#: glossary.rst:78 msgid "" "Arguments are assigned to the named local variables in a function body. See " "the :ref:`calls` section for the rules governing this assignment. " @@ -190,7 +193,7 @@ msgstr "" "να αναπαραστήσει ένα όρισμα' η αξιολογούμενη τιμή εκχωρείται σε μια τοπική " "μεταβλητή." -#: glossary.rst:81 +#: glossary.rst:83 msgid "" "See also the :term:`parameter` glossary entry, the FAQ question on :ref:`the " "difference between arguments and parameters `, " @@ -200,11 +203,11 @@ msgstr "" "ερώτηση στο :ref:`η διαφορά μεταξύ ορισμάτων και παραμέτρων `, και :pep:`362`." -#: glossary.rst:84 +#: glossary.rst:86 msgid "asynchronous context manager" msgstr "ασύγχρονος διαχειριστής context" -#: glossary.rst:86 +#: glossary.rst:88 msgid "" "An object which controls the environment seen in an :keyword:`async with` " "statement by defining :meth:`~object.__aenter__` and :meth:`~object." @@ -214,11 +217,11 @@ msgstr "" "`async with` ορίζοντας τις μεθόδους :meth:`~object.__aenter__` και :meth:" "`~object.__aexit__`. Που εισήχθη από :pep:`492`." -#: glossary.rst:89 +#: glossary.rst:91 msgid "asynchronous generator" msgstr "ασύγχρονος generator" -#: glossary.rst:91 +#: glossary.rst:93 msgid "" "A function which returns an :term:`asynchronous generator iterator`. It " "looks like a coroutine function defined with :keyword:`async def` except " @@ -231,7 +234,7 @@ msgstr "" "σειράς τιμών που μπορούν να χρησιμοποιηθούν σε έναν :keyword:`async for` " "βρόχο." -#: glossary.rst:96 +#: glossary.rst:98 msgid "" "Usually refers to an asynchronous generator function, but may refer to an " "*asynchronous generator iterator* in some contexts. In cases where the " @@ -242,7 +245,7 @@ msgstr "" "περιπτώσεις όπου το επιδιωκόμενο νόημα δεν είναι σαφές, με την χρήση των " "πλήρων όρων αποφεύγεται η ασάφεια." -#: glossary.rst:100 +#: glossary.rst:102 msgid "" "An asynchronous generator function may contain :keyword:`await` expressions " "as well as :keyword:`async for`, and :keyword:`async with` statements." @@ -250,17 +253,17 @@ msgstr "" "Μια συνάρτηση ασύγχρονου generator μπορεί να περιέχει εκφράσεις :keyword:" "`await` , καθώς και δηλώσεις :keyword:`async for`, και :keyword:`async with`." -#: glossary.rst:103 +#: glossary.rst:105 msgid "asynchronous generator iterator" msgstr "ασύγχρονος generator iterator" -#: glossary.rst:105 -msgid "An object created by a :term:`asynchronous generator` function." +#: glossary.rst:107 +msgid "An object created by an :term:`asynchronous generator` function." msgstr "" "Ένα αντικείμενο που δημιουργήθηκε από μια συνάρτηση :term:`asynchronous " "generator`." -#: glossary.rst:107 +#: glossary.rst:109 msgid "" "This is an :term:`asynchronous iterator` which when called using the :meth:" "`~object.__anext__` method returns an awaitable object which will execute " @@ -272,7 +275,7 @@ msgstr "" "αναμενόμενο αντικείμενο που θα εκτελέσει στο σώμα της συνάρτησης του " "ασύγχρονου generator μέχρι την επόμενη :keyword:`yield` έκφραση." -#: glossary.rst:112 +#: glossary.rst:114 msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " "execution state (including local variables and pending try-statements). " @@ -287,11 +290,11 @@ msgstr "" "`~object.__anext__ `, συνεχίζει από εκεί που σταμάτησε. Βλ. :pep:`492` και :" "pep:`525`." -#: glossary.rst:117 +#: glossary.rst:119 msgid "asynchronous iterable" msgstr "ασύγχρονος iterable" -#: glossary.rst:119 +#: glossary.rst:121 msgid "" "An object, that can be used in an :keyword:`async for` statement. Must " "return an :term:`asynchronous iterator` from its :meth:`~object.__aiter__` " @@ -301,11 +304,11 @@ msgstr "" "for`. Πρέπει να επιστρέφει ένα :term:`asynchronous iterator` από την μέθοδο :" "meth:`~object.__aiter__`. Που εισήχθη από :pep:`492`." -#: glossary.rst:122 +#: glossary.rst:124 msgid "asynchronous iterator" msgstr "ασύγχρονος iterator" -#: glossary.rst:124 +#: glossary.rst:126 msgid "" "An object that implements the :meth:`~object.__aiter__` and :meth:`~object." "__anext__` methods. :meth:`~object.__anext__` must return an :term:" @@ -320,11 +323,11 @@ msgstr "" "__anext__` ενός ασύγχρονου iterator έως ότου εγείρει μια εξαίρεση :exc:" "`StopAsyncIteration`. Εισήχθη από :pep:`492`." -#: glossary.rst:129 +#: glossary.rst:131 msgid "attribute" msgstr "χαρακτηριστικό" -#: glossary.rst:131 +#: glossary.rst:133 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 " @@ -334,7 +337,7 @@ msgstr "" "χρησιμοποιώντας εκφράσεις με κουκκίδες. Για παράδειγμα, εάν ένα αντικείμενο " "*o* έχει ένα χαρακτηριστικό *a* θα αναφέρεται ως *o.a*." -#: glossary.rst:136 +#: glossary.rst:138 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:" @@ -349,11 +352,11 @@ msgstr "" "χρησιμοποιώντας τις τελείες, και αντί αυτού θα πρέπει να ανακτηθεί " "χρησιμοποιώντας :func:`getattr`." -#: glossary.rst:141 +#: glossary.rst:143 msgid "awaitable" msgstr "awaitable" -#: glossary.rst:143 +#: glossary.rst:145 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 " @@ -363,11 +366,11 @@ msgstr "" "Μπορεί να είναι :term:`coroutine` ή ένα αντικείμενο με μια :meth:`~object." "__await__` μέθοδο. Βλ. επίσης :pep:`492`." -#: glossary.rst:146 +#: glossary.rst:148 msgid "BDFL" msgstr "BDFL" -#: glossary.rst:148 +#: glossary.rst:150 msgid "" "Benevolent Dictator For Life, a.k.a. `Guido van Rossum `_, Python's creator." @@ -376,11 +379,11 @@ msgstr "" "ζωής, δηλαδή `Guido van Rossum `_, ο " "δημιουργός της Python." -#: glossary.rst:150 +#: glossary.rst:152 msgid "binary file" msgstr "δυαδικό αρχείο" -#: glossary.rst:152 +#: glossary.rst:154 msgid "" "A :term:`file object` able to read and write :term:`bytes-like objects " "`. Examples of binary files are files opened in binary " @@ -394,7 +397,7 @@ msgstr "" "data:`sys.stdin.buffer `, :data:`sys.stdout.buffer `, " "και στιγμιοτύπων των :class:`io.BytesIO` και :class:`gzip.GzipFile`." -#: glossary.rst:159 +#: glossary.rst:161 msgid "" "See also :term:`text file` for a file object able to read and write :class:" "`str` objects." @@ -402,11 +405,11 @@ msgstr "" "Βλ. επίσης :term:`text file` για ένα αντικείμενο τύπου αρχείο ικανό να " "διαβάσει και να γράψει :class:`str` αντικείμενα." -#: glossary.rst:161 +#: glossary.rst:163 msgid "borrowed reference" msgstr "δανεική αναφορά" -#: glossary.rst:163 +#: glossary.rst:165 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 " @@ -420,7 +423,7 @@ msgstr "" "αφαιρέσει το τελευταίο :term:`strong reference` από το αντικείμενο και έτσι " "να το καταστρέψει." -#: glossary.rst:169 +#: glossary.rst:171 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 " @@ -435,11 +438,11 @@ msgstr "" "c:func:`Py_NewRef` μπορεί να χρησιμοποιηθεί ώστε να δημιουργηθεί ένα :term:" "`ισχυρή αναφορά `." -#: glossary.rst:174 +#: glossary.rst:176 msgid "bytes-like object" msgstr "bytes-like αντικείμενα" -#: glossary.rst:176 +#: glossary.rst:178 msgid "" "An object that supports the :ref:`bufferobjects` and can export a C-:term:" "`contiguous` buffer. This includes all :class:`bytes`, :class:`bytearray`, " @@ -456,7 +459,7 @@ msgstr "" "διαχειρίζονται δυαδικά δεδομένα' αυτά περιλαμβάνουν συμπίεση αποθήκευση σε " "δυαδικό αρχείο και αποστολή μέσω socket." -#: glossary.rst:183 +#: glossary.rst:185 msgid "" "Some operations need the binary data to be mutable. The documentation often " "refers to these as \"read-write bytes-like objects\". Example mutable " @@ -475,11 +478,11 @@ msgstr "" "αυτών περιέχουν :class:`bytes` και ένα :class:`memoryview` ενός :class:" "`bytes` αντικειμένου." -#: glossary.rst:191 +#: glossary.rst:193 msgid "bytecode" msgstr "bytecode" -#: glossary.rst:193 +#: glossary.rst:195 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 " @@ -501,7 +504,7 @@ msgstr "" "εικονικών μηχανών Python, ούτε να είναι σταθερά μεταξύ των εκδόσεων της " "Python." -#: glossary.rst:203 +#: glossary.rst:205 msgid "" "A list of bytecode instructions can be found in the documentation for :ref:" "`the dis module `." @@ -509,11 +512,11 @@ msgstr "" "Μια λίστα από οδηγίες σχετικά με τα bytecode μπορεί να βρεθεί στην " "τεκμηρίωση για :ref:`το module dis `." -#: glossary.rst:205 +#: glossary.rst:207 msgid "callable" msgstr "callable" -#: glossary.rst:207 +#: glossary.rst:209 msgid "" "A callable is an object that can be called, possibly with a set of arguments " "(see :term:`argument`), with the following syntax::" @@ -521,11 +524,11 @@ msgstr "" "Ένα callable είναι ένα αντικείμενο που μπορεί να καλεστεί, πιθανά με ένα " "σύνολο ορισμάτων (βλ. :term:`argument`), με την παρακάτω σύνταξη::" -#: glossary.rst:210 +#: glossary.rst:212 msgid "callable(argument1, argument2, argumentN)" msgstr "callable(argument1, argument2, argumentN)" -#: glossary.rst:212 +#: glossary.rst:214 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 " @@ -535,11 +538,11 @@ msgstr "" "Ένα στιγμιότυπο μια κλάσης που υλοποιεί τη μέθοδο :meth:`~object.__call__` " "είναι επίσης callable." -#: glossary.rst:215 +#: glossary.rst:217 msgid "callback" msgstr "callback" -#: glossary.rst:217 +#: glossary.rst:219 msgid "" "A subroutine function which is passed as an argument to be executed at some " "point in the future." @@ -547,11 +550,11 @@ msgstr "" "Μια subroutine συνάρτηση η οποία μεταβιβάζεται ως όρισμα που θα εκτελεστεί " "κάποια στιγμή στο μέλλον." -#: glossary.rst:219 +#: glossary.rst:221 msgid "class" msgstr "κλάση" -#: glossary.rst:221 +#: glossary.rst:223 msgid "" "A template for creating user-defined objects. Class definitions normally " "contain method definitions which operate on instances of the class." @@ -560,11 +563,11 @@ msgstr "" "ορισμοί κλάσεων συνήθως περιέχουν ορισμούς μεθόδων που λειτουργούν σε " "στιγμιότυπα της κλάσης." -#: glossary.rst:224 +#: glossary.rst:226 msgid "class variable" msgstr "μεταβλητή κλάσης" -#: glossary.rst:226 +#: glossary.rst:228 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)." @@ -572,11 +575,11 @@ msgstr "" "Μια μεταβλητή που ορίζεται σε μια κλάση και προορίζεται να τροποποιηθεί μόνο " "σε επίπεδο κλάσης (δηλ. όχι σε ένα στιγμιότυπο μιας κλάσης)." -#: glossary.rst:228 +#: glossary.rst:230 msgid "closure variable" msgstr "μεταβλητή κλεισίματος" -#: glossary.rst:230 +#: glossary.rst:232 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 " @@ -591,7 +594,7 @@ msgstr "" "εγγραφή, ή να θεωρηθεί ότι ορίζεται έμμεσα όταν η μεταβλητή χρησιμοποιείται " "μόνο για ανάγνωση." -#: glossary.rst:235 +#: glossary.rst:237 msgid "" "For example, in the ``inner`` function in the following code, both ``x`` and " "``print`` are :term:`free variables `, but only ``x`` is a " @@ -601,7 +604,7 @@ msgstr "" "και η ``print`` είναι :term:`free variables `, αλλά μόνο η " "``x`` είναι μια *μεταβλητή κλεισίματος*::" -#: glossary.rst:238 +#: glossary.rst:240 msgid "" "def outer():\n" " x = 0\n" @@ -619,7 +622,7 @@ msgstr "" " print(x)\n" " return inner" -#: glossary.rst:246 +#: glossary.rst:248 msgid "" "Due to the :attr:`codeobject.co_freevars` attribute (which, despite its " "name, only includes the names of closure variables rather than listing all " @@ -633,11 +636,11 @@ msgstr "" "φορές ο πιο γενικός όρος :term:`free variable` ακόμη και όταν γίνεται ειδική " "αναφορά σε μεταβλητές κλεισίματος." -#: glossary.rst:250 +#: glossary.rst:252 msgid "complex number" msgstr "μιγαδικός αριθμός" -#: glossary.rst:252 +#: glossary.rst:254 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 " @@ -661,11 +664,11 @@ msgstr "" "προηγμένο μαθηματικό χαρακτηριστικό. εάν δεν γνωρίζετε την ανάγκη τους, " "είναι σχεδόν σίγουρο ότι μπορείτε να τα αγνοήσετε με ασφάλεια." -#: glossary.rst:262 +#: glossary.rst:264 msgid "context" msgstr "context" -#: glossary.rst:264 +#: glossary.rst:266 msgid "" "This term has different meanings depending on where and how it is used. Some " "common meanings:" @@ -673,7 +676,7 @@ msgstr "" "Αυτό ο όρος έχει διαφορετικές σημασίες ανάλογα με το πού και πώς " "χρησιμοποιείται. Μερικές κοινές έννοιες:" -#: glossary.rst:267 +#: glossary.rst:269 msgid "" "The temporary state or environment established by a :term:`context manager` " "via a :keyword:`with` statement." @@ -681,7 +684,7 @@ msgstr "" "Η προσωρινή κατάσταση ή το περιβάλλον που δημιουργείται από έναν :term:" "`context manager` μέσω μιας δήλωσης :keyword:`with`." -#: glossary.rst:269 +#: glossary.rst:271 msgid "" "The collection of key­value bindings associated with a particular :class:" "`contextvars.Context` object and accessed via :class:`~contextvars." @@ -692,18 +695,18 @@ msgstr "" "αντικειμένων :class:`~contextvars.ContextVar`. Βλ. επίσης :term:`context " "variable`." -#: glossary.rst:273 +#: glossary.rst:275 msgid "" "A :class:`contextvars.Context` object. Also see :term:`current context`." msgstr "" "Ένα αντικείμενο :class:`contextvars.Context`. Βλ. επίσης :term:`current " "context`." -#: glossary.rst:275 +#: glossary.rst:277 msgid "context management protocol" msgstr "πρωτόκολλο διαχείρισης περιβάλλοντος" -#: glossary.rst:277 +#: glossary.rst:279 msgid "" "The :meth:`~object.__enter__` and :meth:`~object.__exit__` methods called by " "the :keyword:`with` statement. See :pep:`343`." @@ -711,11 +714,11 @@ msgstr "" "Οι μέθοδοι :meth:`~object.__enter__` και :meth:`~object.__exit__` καλούνται " "από τη δήλωση :keyword:`with`. Βλ. :pep:`343`." -#: glossary.rst:279 +#: glossary.rst:281 msgid "context manager" msgstr "διαχειριστής context" -#: glossary.rst:281 +#: glossary.rst:283 msgid "" "An object which implements the :term:`context management protocol` and " "controls the environment seen in a :keyword:`with` statement. See :pep:" @@ -725,11 +728,11 @@ msgstr "" "ελέγχει το περιβάλλον που είσαι ορατό μέσα σε μια δήλωση :keyword:`with`. " "Βλ. :pep:`343`." -#: glossary.rst:284 +#: glossary.rst:286 msgid "context variable" msgstr "context μεταβλητή" -#: glossary.rst:286 +#: glossary.rst:288 msgid "" "A variable whose value depends on which context is the :term:`current " "context`. Values are accessed via :class:`contextvars.ContextVar` objects. " @@ -742,11 +745,11 @@ msgstr "" "κυρίως για να απομονώσουν την κατάσταση μεταξύ ταυτόχρονων ασύγχρονων " "εργασιών." -#: glossary.rst:290 +#: glossary.rst:292 msgid "contiguous" msgstr "contiguous" -#: glossary.rst:294 +#: glossary.rst:296 msgid "" "A buffer is considered contiguous exactly if it is either *C-contiguous* or " "*Fortran contiguous*. Zero-dimensional buffers are C and Fortran " @@ -765,11 +768,11 @@ msgstr "" "μνήμης. Ωστόσο, σε Fortran contiguous πίνακες, ο πρώτος δείκτης μεταβάλλεται " "πιο γρήγορα." -#: glossary.rst:302 +#: glossary.rst:304 msgid "coroutine" msgstr "coroutine" -#: glossary.rst:304 +#: glossary.rst:306 msgid "" "Coroutines are a more generalized form of subroutines. Subroutines are " "entered at one point and exited at another point. Coroutines can be " @@ -782,11 +785,11 @@ msgstr "" "Μπορούν να υλοποιήσουν με την δήλωση :keyword:`async def`. Βλ. επίσης :pep:" "`492`." -#: glossary.rst:309 +#: glossary.rst:311 msgid "coroutine function" msgstr "coroutine συνάρτηση" -#: glossary.rst:311 +#: glossary.rst:313 msgid "" "A function which returns a :term:`coroutine` object. A coroutine function " "may be defined with the :keyword:`async def` statement, and may contain :" @@ -798,11 +801,11 @@ msgstr "" "και μπορεί να περιέχει :keyword:`await`, :keyword:`async for`, και :keyword:" "`async with` λέξεις κλειδιά. Αυτές εισήχθησαν από το :pep:`492`." -#: glossary.rst:316 +#: glossary.rst:318 msgid "CPython" msgstr "CPython" -#: glossary.rst:318 +#: glossary.rst:320 msgid "" "The canonical implementation of the Python programming language, as " "distributed on `python.org `_. The term \"CPython\" " @@ -814,11 +817,11 @@ msgstr "" "όταν είναι απαραίτητο για την διάκριση αυτής της υλοποίησης από άλλες όπως η " "*Jython* ή η *IronPython*." -#: glossary.rst:322 +#: glossary.rst:324 msgid "current context" msgstr "τρέχον πλαίσιο" -#: glossary.rst:324 +#: glossary.rst:326 msgid "" "The :term:`context` (:class:`contextvars.Context` object) that is currently " "used by :class:`~contextvars.ContextVar` objects to access (get or set) the " @@ -835,11 +838,11 @@ msgstr "" "`asyncio`) συνδέουν κάθε εργασία με ένα συμφραζόμενο, το οποίο γίνεται το " "τρέχον συμφραζόμενο όποτε η εργασία ξεκινά ή συνεχίζει την εκτέλεση." -#: glossary.rst:330 +#: glossary.rst:332 msgid "decorator" msgstr "decorator" -#: glossary.rst:332 +#: glossary.rst:334 msgid "" "A function returning another function, usually applied as a function " "transformation using the ``@wrapper`` syntax. Common examples for " @@ -850,7 +853,7 @@ msgstr "" "Συνηθισμένα παραδείγματα για τους decorators είναι :func:`classmethod` και :" "func:`staticmethod`." -#: glossary.rst:336 +#: glossary.rst:338 msgid "" "The decorator syntax is merely syntactic sugar, the following two function " "definitions are semantically equivalent::" @@ -858,7 +861,7 @@ msgstr "" "Η σύνταξη του decorator είναι απλώς καλλωπιστική, οι ακόλουθοι δύο ορισμοί " "συναρτήσεων είναι σημασιολογικά ισοδύναμοι::" -#: glossary.rst:339 +#: glossary.rst:341 msgid "" "def f(arg):\n" " ...\n" @@ -876,7 +879,7 @@ msgstr "" "def f(arg):\n" " ..." -#: glossary.rst:347 +#: glossary.rst:349 msgid "" "The same concept exists for classes, but is less commonly used there. See " "the documentation for :ref:`function definitions ` and :ref:`class " @@ -886,11 +889,11 @@ msgstr "" "εκεί. Βλ. την τεκμηρίωση για :ref:`function definitions ` και :ref:" "`class definitions ` για περισσότερα σχετικά με τους decorators." -#: glossary.rst:350 +#: glossary.rst:352 msgid "descriptor" msgstr "descriptor" -#: glossary.rst:352 +#: glossary.rst:354 msgid "" "Any object which defines the methods :meth:`~object.__get__`, :meth:`~object." "__set__`, or :meth:`~object.__delete__`. When a class attribute is a " @@ -913,7 +916,7 @@ msgstr "" "αποτελεί την βάση για πολλά χαρακτηριστικά όπως συναρτήσεις, μεθόδους, " "ιδιότητες, μέθοδοι κλάσης στατικές μέθοδοι, και αναφορά σε σούπερ κλάσεις." -#: glossary.rst:363 +#: glossary.rst:365 msgid "" "For more information about descriptors' methods, see :ref:`descriptors` or " "the :ref:`Descriptor How To Guide `." @@ -922,11 +925,11 @@ msgstr "" "see :ref:`descriptors` ή το :ref:`Πρακτικός οδηγός για τη χρήση του " "Descriptor `." -#: glossary.rst:365 +#: glossary.rst:367 msgid "dictionary" msgstr "λεξικό" -#: glossary.rst:367 +#: glossary.rst:369 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__` " @@ -936,11 +939,11 @@ msgstr "" "τιμές. Τα κλειδιά μπορεί να είναι οποιοδήποτε αντικείμενο με μεθόδους :meth:" "`~object.__hash__` και :meth:`~object.__eq__`. Ονομάζεται ως hash στο Perl." -#: glossary.rst:371 +#: glossary.rst:373 msgid "dictionary comprehension" msgstr "κατανόηση λεξικού" -#: glossary.rst:373 +#: glossary.rst:375 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 " @@ -953,11 +956,11 @@ msgstr "" "κλειδί ``n`` που αντιστοιχίζεται με την τιμή ``n ** 2``. Βλ. :ref:" "`comprehensions`." -#: glossary.rst:377 +#: glossary.rst:379 msgid "dictionary view" msgstr "όψη λεξικού" -#: glossary.rst:379 +#: glossary.rst:381 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 " @@ -972,11 +975,11 @@ msgstr "" "όψη λεξικού να γίνει μια πλήρης λίστα χρησιμοποιήστε το ``list(dictview)``. " "Βλ. :ref:`dict-views`." -#: glossary.rst:385 +#: glossary.rst:387 msgid "docstring" msgstr "docstring" -#: glossary.rst:387 +#: glossary.rst:389 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 " @@ -991,11 +994,11 @@ msgstr "" "περικλείει. Δεδομένου ότι είναι διαθέσιμο μέσω ενδοσκόπησης, το κανονικό " "μέρος για την τεκμηρίωση του αντικειμένου." -#: glossary.rst:393 +#: glossary.rst:395 msgid "duck-typing" msgstr "duck-typing" -#: glossary.rst:395 +#: glossary.rst:397 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 " @@ -1018,11 +1021,25 @@ msgstr "" "με :term:`abstract base classes `.) Αντί αυτού, συνήθως " "χρησιμοποιεί δοκιμές :func:`hasattr` ή προγραμματισμό :term:`EAFP`." -#: glossary.rst:404 +#: glossary.rst:406 +msgid "dunder" +msgstr "dunder" + +#: glossary.rst:408 +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:411 msgid "EAFP" msgstr "EAFP" -#: glossary.rst:406 +#: glossary.rst:413 msgid "" "Easier to ask for forgiveness than permission. This common Python coding " "style assumes the existence of valid keys or attributes and catches " @@ -1039,11 +1056,11 @@ msgstr "" "αντίθεση με το στυλ που είναι :term:`LBYL` κοινό σε πολλές άλλες γλώσσες, " "όπως η C." -#: glossary.rst:412 +#: glossary.rst:419 msgid "expression" msgstr "έκφραση" -#: glossary.rst:414 +#: glossary.rst:421 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, " @@ -1061,11 +1078,11 @@ msgstr "" "μπορούν να χρησιμοποιηθούν ως εκφράσεις, όπως το :keyword:`while`. Οι " "αναθέσεις τιμών είναι επίσης δηλώσεις όχι εκφράσεις." -#: glossary.rst:421 +#: glossary.rst:428 msgid "extension module" msgstr "module επέκτασης" -#: glossary.rst:423 +#: glossary.rst:430 msgid "" "A module written in C or C++, using Python's C API to interact with the core " "and with user code." @@ -1073,11 +1090,11 @@ msgstr "" "Ένα module γραμμένο σε C ή C++, που χρησιμοποιείται από το C API της Python " "για να αλληλεπιδράσουν με τον πυρήνα και με τον κώδικα του χρήστη." -#: glossary.rst:425 +#: glossary.rst:432 msgid "f-string" msgstr "f-string" -#: glossary.rst:427 +#: glossary.rst:434 msgid "" "String literals prefixed with ``'f'`` or ``'F'`` are commonly called \"f-" "strings\" which is short for :ref:`formatted string literals `. " @@ -1087,11 +1104,11 @@ msgstr "" "ονομάζονται συνήθως \"f-strings\" που είναι συντομογραφία του :ref:" "`formatted string literals `. Βλ. επίσης :pep:`498`." -#: glossary.rst:430 +#: glossary.rst:437 msgid "file object" msgstr "αντικείμενο αρχείου" -#: glossary.rst:432 +#: glossary.rst:439 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 " @@ -1108,7 +1125,7 @@ msgstr "" "buffers, sockets, pipes, κλπ.). Αντικείμενο αρχείου ονομάζονται επίσης :dfn:" "`file-like objects` ή :dfn:`streams`." -#: glossary.rst:440 +#: glossary.rst:447 msgid "" "There are actually three categories of file objects: raw :term:`binary files " "`, buffered :term:`binary files ` and :term:`text " @@ -1122,19 +1139,19 @@ msgstr "" "στην ενότητα :mod:`io`. Ο κανονικός τρόπος για να δημιουργήσετε ένα " "αντικείμενο αρχείου είναι χρησιμοποιώντας την συνάρτηση :func:`open`." -#: glossary.rst:445 +#: glossary.rst:452 msgid "file-like object" msgstr "αντικείμενο που μοιάζει με αρχείο" -#: glossary.rst:447 +#: glossary.rst:454 msgid "A synonym for :term:`file object`." msgstr "Ένα συνώνυμο με το :term:`file object`." -#: glossary.rst:448 +#: glossary.rst:455 msgid "filesystem encoding and error handler" msgstr "κωδικοποίηση συστήματος αρχείων και χειριστής σφαλμάτων" -#: glossary.rst:450 +#: glossary.rst:457 msgid "" "Encoding and error handler used by Python to decode bytes from the operating " "system and encode Unicode to the operating system." @@ -1143,7 +1160,7 @@ msgstr "" "την αποκωδικοποίηση των bytes από το λειτουργικό σύστημα και την " "κωδικοποίηση σε Unicode για το λειτουργικό σύστημα." -#: glossary.rst:453 +#: glossary.rst:460 msgid "" "The filesystem encoding must guarantee to successfully decode all bytes " "below 128. If the file system encoding fails to provide this guarantee, API " @@ -1154,7 +1171,7 @@ msgstr "" "αρχείων δεν παρέχει αυτήν την εγγύηση, οι συναρτήσεις API μπορούν να " "εγείρουν ένα :exc:`UnicodeError`." -#: glossary.rst:457 +#: glossary.rst:464 msgid "" "The :func:`sys.getfilesystemencoding` and :func:`sys." "getfilesystemencodeerrors` functions can be used to get the filesystem " @@ -1164,7 +1181,7 @@ msgstr "" "getfilesystemencodeerrors` μπορούν να χρησιμοποιηθούν για να λάβετε την " "κωδικοποίηση του συστήματος αρχείων και του χειριστή σφαλμάτων." -#: glossary.rst:461 +#: glossary.rst:468 msgid "" "The :term:`filesystem encoding and error handler` are configured at Python " "startup by the :c:func:`PyConfig_Read` function: see :c:member:`~PyConfig." @@ -1176,15 +1193,15 @@ msgstr "" "`~PyConfig.filesystem_encoding` και :c:member:`~PyConfig.filesystem_errors` " "μέλη του :c:type:`PyConfig`." -#: glossary.rst:466 +#: glossary.rst:473 msgid "See also the :term:`locale encoding`." msgstr "Βλ. επίσης το :term:`locale encoding`." -#: glossary.rst:467 +#: glossary.rst:474 msgid "finder" msgstr "finder" -#: glossary.rst:469 +#: glossary.rst:476 msgid "" "An object that tries to find the :term:`loader` for a module that is being " "imported." @@ -1192,7 +1209,7 @@ msgstr "" "Ένα αντικείμενο που προσπαθεί να βρει το :term:`loader` για ένα module που " "εισήχθη." -#: glossary.rst:472 +#: glossary.rst:479 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:476 +#: glossary.rst:483 msgid "" "See :ref:`finders-and-loaders` and :mod:`importlib` for much more detail." msgstr "" "Βλ. :ref:`finders-and-loaders` και :mod:`importlib` για περισσότερες " "λεπτομέρειες." -#: glossary.rst:477 +#: glossary.rst:484 msgid "floor division" msgstr "ακέραια διαίρεση" -#: glossary.rst:479 +#: glossary.rst:486 msgid "" "Mathematical division that rounds down to nearest integer. The floor " "division operator is ``//``. For example, the expression ``11 // 4`` " @@ -1228,11 +1245,11 @@ msgstr "" "4`` κάνει ``-3`` επειδή αυτή είναι η στρογγυλοποίηση *προς τα κάτω* του " "``-2.75``. Βλ. :pep:`238`." -#: glossary.rst:484 +#: glossary.rst:491 msgid "free threading" msgstr "δωρεάν νήμα" -#: glossary.rst:486 +#: glossary.rst:493 msgid "" "A threading model where multiple threads can run Python bytecode " "simultaneously within the same interpreter. This is in contrast to the :" @@ -1244,11 +1261,11 @@ msgstr "" "`global interpreter lock`, το οποίο επιτρέπει σε ένα μόνο νήμα να εκτελεί " "Python bytecode κάθε φορά. Δείτε το :pep:`703`." -#: glossary.rst:490 +#: glossary.rst:497 msgid "free variable" msgstr "δωρεάν μεταβλητή" -#: glossary.rst:492 +#: glossary.rst:499 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 " @@ -1264,11 +1281,11 @@ msgstr "" "χαρακτηριστικού :attr:`codeobject.co_freevars`, ο όρος χρησιμοποιείται " "επίσης μερικές φορές ως συνώνυμο της :term:`closure variable`." -#: glossary.rst:497 +#: glossary.rst:504 msgid "function" msgstr "συνάρτηση" -#: glossary.rst:499 +#: glossary.rst:506 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 " @@ -1280,16 +1297,16 @@ msgstr "" "` που μπορεί να χρησιμοποιηθεί για την εκτέλεση. Βλ. επίσης τις " "ενότητες :term:`parameter`, :term:`method`, και the :ref:`function`." -#: glossary.rst:503 +#: glossary.rst:510 msgid "function annotation" msgstr "συνάρτηση annotation" -#: glossary.rst:505 +#: glossary.rst:512 msgid "An :term:`annotation` of a function parameter or return value." msgstr "" "Ένας :term:`annotation` μιας παραμέτρου συνάρτησης ή μιας τιμής επιστροφής." -#: glossary.rst:507 +#: glossary.rst:514 msgid "" "Function annotations are usually used for :term:`type hints `: " "for example, this function is expected to take two :class:`int` arguments " @@ -1300,7 +1317,7 @@ msgstr "" "ορίσματα :class:`int` και επίσης αναμένεται να έχει μία επιστρεφόμενη τιμή :" "class:`int`::" -#: glossary.rst:512 +#: glossary.rst:519 msgid "" "def sum_two_numbers(a: int, b: int) -> int:\n" " return a + b" @@ -1308,12 +1325,12 @@ msgstr "" "def sum_two_numbers(a: int, b: int) -> int:\n" " return a + b" -#: glossary.rst:515 +#: glossary.rst:522 msgid "Function annotation syntax is explained in section :ref:`function`." msgstr "" "Η σύνταξη συνάρτησης annotation αναλύεται στην ενότητα :ref:`function`." -#: glossary.rst:517 +#: glossary.rst:524 msgid "" "See :term:`variable annotation` and :pep:`484`, which describe this " "functionality. Also see :ref:`annotations-howto` for best practices on " @@ -1323,11 +1340,11 @@ msgstr "" "λειτουργικότητα. Επίσης βλ. :ref:`annotations-howto` για τις καλύτερες " "πρακτικές δουλεύοντας με annotations." -#: glossary.rst:521 +#: glossary.rst:528 msgid "__future__" msgstr "__future__" -#: glossary.rst:523 +#: glossary.rst:530 msgid "" "A :ref:`future statement `, ``from __future__ import ``, " "directs the compiler to compile the current module using syntax or semantics " @@ -1346,7 +1363,7 @@ msgstr "" "προστέθηκε για πρώτη φορά στην γλώσσα και πότε θα γίνει (ή έγινε) η " "προεπιλογή::" -#: glossary.rst:531 +#: glossary.rst:538 msgid "" ">>> import __future__\n" ">>> __future__.division\n" @@ -1356,11 +1373,11 @@ msgstr "" ">>> __future__.division\n" "_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)" -#: glossary.rst:534 +#: glossary.rst:541 msgid "garbage collection" msgstr "συλλογή απορριμάτων" -#: glossary.rst:536 +#: glossary.rst:543 msgid "" "The process of freeing memory when it is not used anymore. Python performs " "garbage collection via reference counting and a cyclic garbage collector " @@ -1373,11 +1390,11 @@ msgstr "" "τους κύκλους αναφοράς. Ο συλλέκτης απορριμάτων μπορεί να ελεγχθεί " "χρησιμοποιώντας το module :mod:`gc`." -#: glossary.rst:542 +#: glossary.rst:549 msgid "generator" msgstr "generator" -#: glossary.rst:544 +#: glossary.rst:551 msgid "" "A function which returns a :term:`generator iterator`. It looks like a " "normal function except that it contains :keyword:`yield` expressions for " @@ -1390,7 +1407,7 @@ msgstr "" "*for* ή που μπορούν να ανακτηθούν μία τη φορά με την συνάρτηση :func:`next` " "function." -#: glossary.rst:549 +#: glossary.rst:556 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 " @@ -1401,15 +1418,15 @@ msgstr "" "επιδιωκόμενο νόημα δεν είναι σαφές, η χρήση των πλήρων όρων αποφεύγει την " "ασάφεια." -#: glossary.rst:552 +#: glossary.rst:559 msgid "generator iterator" msgstr "generator iterator" -#: glossary.rst:554 +#: glossary.rst:561 msgid "An object created by a :term:`generator` function." msgstr "Ένα αντικείμενο που δημιουργείται από μια συνάρτηση :term:`generator`." -#: glossary.rst:556 +#: glossary.rst:563 msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " "execution state (including local variables and pending try-statements). " @@ -1422,11 +1439,11 @@ msgstr "" "συνεχίζει από εκεί που σταμάτησε (σε αντίθεση με τις συναρτήσεις που " "ξεκινούν από την αρχή σε κάθε επίκληση)." -#: glossary.rst:563 +#: glossary.rst:570 msgid "generator expression" msgstr "generator έκφραση" -#: glossary.rst:565 +#: glossary.rst:572 msgid "" "An :term:`expression` that returns an :term:`iterator`. It looks like a " "normal expression followed by a :keyword:`!for` clause defining a loop " @@ -1438,7 +1455,7 @@ msgstr "" "μια μεταβλητή βρόχου, ένα εύρος και μια προαιρετική πρόταση :keyword:`!if`. " "Η συνδυασμένη έκφραση δημιουργεί τιμές για μια συνάρτηση εγκλεισμού::" -#: glossary.rst:570 +#: glossary.rst:577 msgid "" ">>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81\n" "285" @@ -1446,11 +1463,11 @@ msgstr "" ">>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81\n" "285" -#: glossary.rst:572 +#: glossary.rst:579 msgid "generic function" msgstr "γενική συνάρτηση" -#: glossary.rst:574 +#: glossary.rst:581 msgid "" "A function composed of multiple functions implementing the same operation " "for different types. Which implementation should be used during a call is " @@ -1461,7 +1478,7 @@ msgstr "" "χρησιμοποιηθεί κατά τη διάρκεια μια κλήσης καθορίζεται από τον αλγόριθμο " "αποστολής." -#: glossary.rst:578 +#: glossary.rst:585 msgid "" "See also the :term:`single dispatch` glossary entry, the :func:`functools." "singledispatch` decorator, and :pep:`443`." @@ -1469,11 +1486,11 @@ msgstr "" "Βλ. επίσης την καταχώρηση του :term:`single dispatch`, τον decorator :func:" "`functools.singledispatch` και :pep:`443`." -#: glossary.rst:580 +#: glossary.rst:587 msgid "generic type" msgstr "γενικός τύπος" -#: glossary.rst:582 +#: glossary.rst:589 msgid "" "A :term:`type` that can be parameterized; typically a :ref:`container " "class` such as :class:`list` or :class:`dict`. Used for :" @@ -1484,7 +1501,7 @@ msgstr "" "Χρησιμοποιείται για :term:`type hints ` και :term:`annotations " "`." -#: glossary.rst:587 +#: glossary.rst:594 msgid "" "For more details, see :ref:`generic alias types`, :pep:" "`483`, :pep:`484`, :pep:`585`, and the :mod:`typing` module." @@ -1493,19 +1510,19 @@ msgstr "" "genericalias>` :pep:`483`, :pep:`484`, :pep:`585`, και το module :mod:" "`typing`." -#: glossary.rst:589 +#: glossary.rst:596 msgid "GIL" msgstr "GIL" -#: glossary.rst:591 +#: glossary.rst:598 msgid "See :term:`global interpreter lock`." msgstr "Βλ. :term:`global interpreter lock`." -#: glossary.rst:592 +#: glossary.rst:599 msgid "global interpreter lock" msgstr "global interpreter lock" -#: glossary.rst:594 +#: glossary.rst:601 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 " @@ -1524,7 +1541,7 @@ msgstr "" "του μεγάλου μέρους του παραλληλισμού που παρέχουν οι μηχανές πολλαπλών " "επεξεργαστών." -#: glossary.rst:603 +#: glossary.rst:610 msgid "" "However, some extension modules, either standard or third-party, are " "designed so as to release the GIL when doing computationally intensive tasks " @@ -1536,7 +1553,7 @@ msgstr "" "εντατικών υπολογισμών όπως συμπίεση ή κατακερματισμός. Επίσης, το GIL " "απελευθερώνεται πάντα όταν εκτελείτε I/O." -#: glossary.rst:608 +#: glossary.rst:615 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 " @@ -1554,11 +1571,11 @@ msgstr "" "διευκολύνει τη χρήση των επεξεργαστών πολλαπλών πυρήνων με αποδοτικό τρόπο. " "Για περισσότερες λεπτομέρειες, δείτε το :pep:`703`." -#: glossary.rst:614 +#: glossary.rst:621 msgid "hash-based pyc" msgstr "hash-based pyc" -#: glossary.rst:616 +#: glossary.rst:623 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-" @@ -1568,11 +1585,11 @@ msgstr "" "όχι τον χρόνο τροποποίησης του αντίστοιχου αρχείου προέλευσης για να " "προσδιορίσει την εγκυρότητα του. Βλ. :ref:`pyc-invalidation`." -#: glossary.rst:619 +#: glossary.rst:626 msgid "hashable" msgstr "hashable" -#: glossary.rst:621 +#: glossary.rst:628 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 " @@ -1586,7 +1603,7 @@ msgstr "" "που συγκρίνονται ως προς την ισότητα τους πρέπει να έχουν την ίδια τιμή " "κατακερματισμού." -#: glossary.rst:627 +#: glossary.rst:634 msgid "" "Hashability makes an object usable as a dictionary key and a set member, " "because these data structures use the hash value internally." @@ -1595,7 +1612,7 @@ msgstr "" "κλειδί λεξικού και ως μέλος ενός συνόλου, επειδή αυτές οι δομές δεδομένων " "χρησιμοποιούν τιμές κατακερματισμού." -#: glossary.rst:630 +#: glossary.rst:637 msgid "" "Most of Python's immutable built-in objects are hashable; mutable containers " "(such as lists or dictionaries) are not; immutable containers (such as " @@ -1612,11 +1629,11 @@ msgstr "" "μπορούν να κατακερματιστούν από προεπιλογή. Όλα συγκρίνονται άνισα εκτός από " "τον εαυτό τους) και η τιμή κατακερματισμού τους προέρχεται από το :func:`id`." -#: glossary.rst:637 +#: glossary.rst:644 msgid "IDLE" msgstr "IDLE" -#: glossary.rst:639 +#: glossary.rst:646 msgid "" "An Integrated Development and Learning Environment for Python. :ref:`idle` " "is a basic editor and interpreter environment which ships with the standard " @@ -1626,11 +1643,11 @@ msgstr "" "`idle` είναι ένα βασικό περιβάλλον επεξεργασίας και διερμηνέα που " "συνοδεύεται από την τυπική διανομή της Python." -#: glossary.rst:642 +#: glossary.rst:649 msgid "immortal" msgstr "Αθάνατο" -#: glossary.rst:644 +#: glossary.rst:651 msgid "" "*Immortal objects* are a CPython implementation detail introduced in :pep:" "`683`." @@ -1638,7 +1655,7 @@ msgstr "" "*Αθάνατα αντικείμενα* είναι μια λεπτομέρεια υλοποίησης της CPython που " "εισήχθη στην :pep:`683`." -#: glossary.rst:647 +#: glossary.rst:654 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 " @@ -1648,11 +1665,11 @@ msgstr "" "τροποποιείται, και επομένως δεν εκχωρείται ποτέ ενώ εκτελείται ο διερμηνέας. " "Για παράδειγμα, :const:`True` και :const:`None` είναι αθάνατα στην CPython." -#: glossary.rst:650 +#: glossary.rst:657 msgid "immutable" msgstr "immutable" -#: glossary.rst:652 +#: glossary.rst:659 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 " @@ -1666,11 +1683,11 @@ msgstr "" "αποθηκευτεί μια διαφορετική τιμή. Παίζουν σημαντικό ρόλο σε μέρη όπου μια " "σταθερά απαιτείται, για παράδειγμα ως κλειδί σε ένα λεξικό." -#: glossary.rst:657 +#: glossary.rst:664 msgid "import path" msgstr "εισαγόμενο path" -#: glossary.rst:659 +#: glossary.rst:666 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 " @@ -1683,11 +1700,11 @@ msgstr "" "από :data:`sys.path`, αλλά για τα υποπακέτα μπορεί επίσης να έρθει από το " "χαρακτηριστικό του πακέτου γονέα ``__path__``." -#: glossary.rst:664 +#: glossary.rst:671 msgid "importing" msgstr "εισαγωγή" -#: glossary.rst:666 +#: glossary.rst:673 msgid "" "The process by which Python code in one module is made available to Python " "code in another module." @@ -1695,11 +1712,11 @@ msgstr "" "Η διαδικασία κατά την οποία ο κώδικας της Python σε ένα module είναι " "διαθέσιμη στον κώδικα Python ενός άλλου module." -#: glossary.rst:668 +#: glossary.rst:675 msgid "importer" msgstr "εισαγωγέας" -#: glossary.rst:670 +#: glossary.rst:677 msgid "" "An object that both finds and loads a module; both a :term:`finder` and :" "term:`loader` object." @@ -1707,11 +1724,11 @@ msgstr "" "Ένα αντικείμενο μπορεί και να αναζητεί και να φορτώνει ένα module' και ένα :" "term:`finder` και :term:`loader` αντικείμενο." -#: glossary.rst:672 +#: glossary.rst:679 msgid "interactive" msgstr "διαδραστικός" -#: glossary.rst:674 +#: glossary.rst:681 msgid "" "Python has an interactive interpreter which means you can enter statements " "and expressions at the interpreter prompt, immediately execute them and see " @@ -1728,11 +1745,11 @@ msgstr "" "να εξετάστε modules και πακέτα (θυμηθείτε ``help(x)``). Για περισσότερα " "σχετικά με τη διαδραστική λειτουργία, δείτε :ref:`tut-interac`." -#: glossary.rst:681 +#: glossary.rst:688 msgid "interpreted" msgstr "interpreted" -#: glossary.rst:683 +#: glossary.rst:690 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. " @@ -1749,11 +1766,11 @@ msgstr "" "εντοπισμού σφαλμάτων από τις μεταγλωττισμένες, αν και τα προγράμματά τους " "γενικά εκτελούνται πιο αργά. Βλ. επίσης :term:`interactive`." -#: glossary.rst:690 +#: glossary.rst:697 msgid "interpreter shutdown" msgstr "τερματισμός λειτουργίας διερμηνέα" -#: glossary.rst:692 +#: glossary.rst:699 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 " @@ -1775,7 +1792,7 @@ msgstr "" "βασίζεται ενδέχεται να μην λειτουργούν πλέον (συνήθη παραδείγματα είναι οι " "λειτουργικές μονάδες βιβλιοθήκης ή ο μηχανισμός ειδοποιήσεων)." -#: glossary.rst:701 +#: glossary.rst:708 msgid "" "The main reason for interpreter shutdown is that the ``__main__`` module or " "the script being run has finished executing." @@ -1783,11 +1800,11 @@ msgstr "" "Ο βασικός λόγος τερματισμού λειτουργίας του διερμηνέα είναι ότι το " "``__main__`` module ή ολοκληρώθηκε η εκτέλεση του κώδικα που έτρεχε." -#: glossary.rst:703 +#: glossary.rst:710 msgid "iterable" msgstr "iterable" -#: glossary.rst:705 +#: glossary.rst:712 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`, " @@ -1804,7 +1821,7 @@ msgstr "" "__iter__` ή με μία μέθοδο :meth:`~object.__getitem__` που υλοποιεί τη " "σημασιολογία :term:`sequence`." -#: glossary.rst:713 +#: glossary.rst:720 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 " @@ -1828,11 +1845,11 @@ msgstr "" "του βρόχου. Βλ. επίσης :term:`iterator`, :term:`sequence`, και :term:" "`generator`." -#: glossary.rst:723 +#: glossary.rst:730 msgid "iterator" msgstr "iterator" -#: glossary.rst:725 +#: glossary.rst:732 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 :" @@ -1867,11 +1884,11 @@ msgstr "" "εξαντλημένο αντικείμενο iterator που χρησιμοποιήθηκε στο προηγούμενο πέρασμα " "iteration , κάνοντας το να φαίνεται σαν ένα άδειο κοντέινερ." -#: glossary.rst:740 +#: glossary.rst:747 msgid "More information can be found in :ref:`typeiter`." msgstr "Περισσότερες πληροφορίες μπορούν να βρεθούν στο :ref:`typeiter`." -#: glossary.rst:744 +#: glossary.rst:751 msgid "" "CPython does not consistently apply the requirement that an iterator define :" "meth:`~iterator.__iter__`. And also please note that the free-threading " @@ -1882,11 +1899,11 @@ msgstr "" "υποστήριξη νημάτων δεν εγγυάται την ασφάλεια νημάτων για διαδικασίες με " "iterators." -#: glossary.rst:749 +#: glossary.rst:756 msgid "key function" msgstr "συνάρτηση key" -#: glossary.rst:751 +#: glossary.rst:758 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 " @@ -1898,7 +1915,7 @@ msgstr "" "κλειδιού ταξινόμησης που γνωρίζει τις συμβάσεις ταξινόμησης για " "συγκεκριμένες τοπικές ρυθμίσεις." -#: glossary.rst:756 +#: glossary.rst:763 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`, :" @@ -1911,7 +1928,7 @@ msgstr "" "`heapq.merge`, :func:`heapq.nsmallest`, :func:`heapq. nlargest`, και :func:" "`itertools.groupby`." -#: glossary.rst:762 +#: glossary.rst:769 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. " @@ -1931,19 +1948,19 @@ msgstr "" "TO` για παραδείγματα δημιουργίας και χρήσης βασικών " "συναρτήσεων." -#: glossary.rst:769 +#: glossary.rst:776 msgid "keyword argument" msgstr "όρισμα keyword" -#: glossary.rst:1086 +#: glossary.rst:1093 msgid "See :term:`argument`." msgstr "Βλ. :term:`argument`." -#: glossary.rst:772 +#: glossary.rst:779 msgid "lambda" msgstr "lambda" -#: glossary.rst:774 +#: glossary.rst:781 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 " @@ -1954,11 +1971,11 @@ msgstr "" "τη δημιουργία μιας συνάρτησης lambda είναι ``lambda [parameters]: " "expression``" -#: glossary.rst:777 +#: glossary.rst:784 msgid "LBYL" msgstr "LBYL" -#: glossary.rst:779 +#: glossary.rst:786 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` " @@ -1970,7 +1987,7 @@ msgstr "" "έρχεται σε αντίθεση με την προσέγγιση :term:`EAFP` και χαρακτηρίζεται από " "την παρουσία πολλών δηλώσεων :keyword:`if`." -#: glossary.rst:784 +#: glossary.rst:791 msgid "" "In a multi-threaded environment, the LBYL approach can risk introducing a " "race condition between \"the looking\" and \"the leaping\". For example, " @@ -1985,19 +2002,19 @@ msgstr "" "το *mapping* μετά τη δοκιμή, αλλά πριν από την αναζήτηση. Αυτό το πρόβλημα " "μπορεί να λυθεί με κλειδώματα ή χρησιμοποιώντας την προσέγγιση EAFP." -#: glossary.rst:789 +#: glossary.rst:796 msgid "lexical analyzer" msgstr "λεξικός αναλυτής" -#: glossary.rst:792 +#: glossary.rst:799 msgid "Formal name for the *tokenizer*; see :term:`token`." msgstr "Επίσημη ονομασία για τον *tokenizer* · βλ. :term:`token`." -#: glossary.rst:793 +#: glossary.rst:800 msgid "list" msgstr "λίστα" -#: glossary.rst:795 +#: glossary.rst:802 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 " @@ -2007,11 +2024,11 @@ msgstr "" "περισσότερο με έναν πίνακα σε άλλες γλώσσες παρά με μια συνδεδεμένη λίστα, " "καθώς η πρόσβαση στα στοιχεί είναι *O*\\ (1)." -#: glossary.rst:798 +#: glossary.rst:805 msgid "list comprehension" msgstr "list comprehension" -#: glossary.rst:800 +#: glossary.rst:807 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 " @@ -2026,11 +2043,11 @@ msgstr "" "από 0 έως 255. Η πρόταση :keyword:`if` είναι προαιρετική. Εάν παραλειφθεί, " "όλα τα στοιχεία στο ``range(256)`` υποβάλλονται σε επεξεργασία." -#: glossary.rst:806 +#: glossary.rst:813 msgid "loader" msgstr "loader" -#: glossary.rst:808 +#: glossary.rst:815 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." @@ -2042,23 +2059,23 @@ msgstr "" "class:`~importlib.abc.Loader`. Ένας loader συνήθως επιστρέφεται με ένα :term:" "`finder`. Δείτε επίσης:" -#: glossary.rst:814 +#: glossary.rst:821 msgid ":ref:`finders-and-loaders`" msgstr ":ref:`finders-and-loaders`" -#: glossary.rst:815 +#: glossary.rst:822 msgid ":class:`importlib.abc.Loader`" msgstr ":class:`importlib.abc.Loader`" -#: glossary.rst:816 +#: glossary.rst:823 msgid ":pep:`302`" msgstr ":pep:`302`" -#: glossary.rst:817 +#: glossary.rst:824 msgid "locale encoding" msgstr "τοπική κωδικοποίηση" -#: glossary.rst:819 +#: glossary.rst:826 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) `." @@ -2067,40 +2084,40 @@ msgstr "" "ρυθμιστεί με :func:`locale.setlocale(locale.LC_CTYPE, new_locale) `." -#: glossary.rst:822 +#: glossary.rst:829 msgid "On Windows, it is the ANSI code page (ex: ``\"cp1252\"``)." msgstr "Στα Windows, είναι η code page ANSI (π.χ. ``\"cp1252\"``)." -#: glossary.rst:824 +#: glossary.rst:831 msgid "" "On Android and VxWorks, Python uses ``\"utf-8\"`` as the locale encoding." msgstr "" "Στο Android και το VxWorks, η Python χρησιμοποιεί το ``\"utf-8\"`` ως τοπική " "κωδικοποίηση." -#: glossary.rst:826 +#: glossary.rst:833 msgid ":func:`locale.getencoding` can be used to get the locale encoding." msgstr "" ":func:`locale.getencoding` μπορεί να χρησιμοποιηθεί για την ανάκτηση της " "τοπικής κωδικοποίησης." -#: glossary.rst:828 +#: glossary.rst:835 msgid "See also the :term:`filesystem encoding and error handler`." msgstr "Βλ. επίσης το :term:`filesystem encoding and error handler`." -#: glossary.rst:829 +#: glossary.rst:836 msgid "magic method" msgstr "μαγική μέθοδος" -#: glossary.rst:833 +#: glossary.rst:840 msgid "An informal synonym for :term:`special method`." msgstr "Ένα άτυπο συνώνυμο για :term:`special method`." -#: glossary.rst:834 +#: glossary.rst:841 msgid "mapping" msgstr "mapping" -#: glossary.rst:836 +#: glossary.rst:843 msgid "" "A container object that supports arbitrary key lookups and implements the " "methods specified in the :class:`collections.abc.Mapping` or :class:" @@ -2116,11 +2133,11 @@ msgstr "" "class:`dict`, :class:`collections.defaultdict`, :class:`collections." "OrderedDict` και :class:`collections.Counter`." -#: glossary.rst:842 +#: glossary.rst:849 msgid "meta path finder" msgstr "meta path finder" -#: glossary.rst:844 +#: glossary.rst:851 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:848 +#: glossary.rst:855 msgid "" "See :class:`importlib.abc.MetaPathFinder` for the methods that meta path " "finders implement." @@ -2138,11 +2155,11 @@ msgstr "" "Βλ. :class:`importlib.abc.MetaPathFinder` για τις μεθόδους που υλοποιούν οι " "meta path finders." -#: glossary.rst:850 +#: glossary.rst:857 msgid "metaclass" msgstr "μετα-κλάση" -#: glossary.rst:852 +#: glossary.rst:859 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 " @@ -2166,15 +2183,15 @@ msgstr "" "ασφάλειας νημάτων, την παρακολούθηση δημιουργίας αντικειμένων, την υλοποίηση " "*singletons*, και πολλές άλλες εργασίες." -#: glossary.rst:862 +#: glossary.rst:869 msgid "More information can be found in :ref:`metaclasses`." msgstr "Περισσότερες πληροφορίες μπορούν να βρεθούν στο :ref:`metaclasses`." -#: glossary.rst:1231 +#: glossary.rst:1244 msgid "method" msgstr "μέθοδος" -#: glossary.rst:865 +#: glossary.rst:872 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 " @@ -2186,11 +2203,11 @@ msgstr "" "αντικείμενο περίπτωσης ως πρώτο της :term:`argument` (το οποίο συνήθως " "ονομάζεται ``self``). Βλ. :term:`function` και :term:`nested scope`." -#: glossary.rst:869 +#: glossary.rst:876 msgid "method resolution order" msgstr "σειρά ανάλυσης μεθόδων" -#: glossary.rst:871 +#: glossary.rst:878 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 " @@ -2201,11 +2218,11 @@ msgstr "" "για λεπτομέρειες του αλγορίθμου που χρησιμοποιείται από τον διερμηνέα της " "Python από την έκδοση 2.3." -#: glossary.rst:874 +#: glossary.rst:881 msgid "module" msgstr "module" -#: glossary.rst:876 +#: glossary.rst:883 msgid "" "An object that serves as an organizational unit of Python code. Modules " "have a namespace containing arbitrary Python objects. Modules are loaded " @@ -2216,15 +2233,15 @@ msgstr "" "Python. Τα modules φορτώνονται στην Python με την διαδικασία :term:" "`importing`." -#: glossary.rst:880 +#: glossary.rst:887 msgid "See also :term:`package`." msgstr "Βλ. επίσης :term:`package`." -#: glossary.rst:881 +#: glossary.rst:888 msgid "module spec" msgstr "τεχνικές προδιαγραφές module" -#: glossary.rst:883 +#: glossary.rst:890 msgid "" "A namespace containing the import-related information used to load a module. " "An instance of :class:`importlib.machinery.ModuleSpec`." @@ -2233,23 +2250,23 @@ msgstr "" "που χρησιμοποιούνται για την φόρτωση ενός module. Μια περίπτωση του :class:" "`importlib.machinery.ModuleSpec`." -#: glossary.rst:886 +#: glossary.rst:893 msgid "See also :ref:`module-specs`." msgstr "Βλ. επίσης :ref:`module-specs`." -#: glossary.rst:887 +#: glossary.rst:894 msgid "MRO" msgstr "MRO" -#: glossary.rst:889 +#: glossary.rst:896 msgid "See :term:`method resolution order`." msgstr "Βλ. :term:`method resolution order`." -#: glossary.rst:890 +#: glossary.rst:897 msgid "mutable" msgstr "mutable" -#: glossary.rst:892 +#: glossary.rst:899 msgid "" "Mutable objects can change their value but keep their :func:`id`. See also :" "term:`immutable`." @@ -2257,11 +2274,11 @@ msgstr "" "Τα ευμετάβλητα αντικείμενα μπορούν να αλλάξουν τις τιμές αλλά να κρατήσουν " "τα :func:`id`. Βλ. επίσης :term:`immutable`." -#: glossary.rst:894 +#: glossary.rst:901 msgid "named tuple" msgstr "named tuple" -#: glossary.rst:896 +#: glossary.rst:903 msgid "" "The term \"named tuple\" applies to any type or class that inherits from " "tuple and whose indexable elements are also accessible using named " @@ -2272,7 +2289,7 @@ msgstr "" "ευρετηριοποιηθούν είναι προσβάσιμα χρησιμοποιώντας επώνυμα χαρακτηριστικά. " "Ο τύπος ή η κλάση μπορεί να έχει και άλλα χαρακτηριστικά." -#: glossary.rst:900 +#: glossary.rst:907 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." @@ -2282,7 +2299,7 @@ msgstr "" "που επιστρέφονται από :func:`time.localtime` και :func:`os.stat`. Ένα άλλο " "παράδειγμα είναι το :data:`sys.float_info`::" -#: glossary.rst:904 +#: glossary.rst:911 msgid "" ">>> sys.float_info[1] # indexed access\n" "1024\n" @@ -2298,7 +2315,7 @@ msgstr "" ">>> isinstance(sys.float_info, tuple) # kind of tuple\n" "True" -#: glossary.rst:911 +#: glossary.rst:918 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 " @@ -2317,11 +2334,11 @@ msgstr "" "τελευταίες τεχνικές προσθέτουν επίσης μερικές επιπλέον μεθόδους που μπορεί " "να μην βρεθούν σε χειρόγραφες ή ενσωματωμένες πλειάδες με όνομα." -#: glossary.rst:919 +#: glossary.rst:926 msgid "namespace" msgstr "namespace" -#: glossary.rst:921 +#: glossary.rst:928 msgid "" "The place where a variable is stored. Namespaces are implemented as " "dictionaries. There are the local, global and built-in namespaces as well " @@ -2343,11 +2360,11 @@ msgstr "" "seed` ή :func:`itertools.islice` καθιστά σαφές ότι αυτές οι συναρτήσεις " "υλοποιούνται από τα module :mod:`random` και :mod:`itertools`, αντίστοιχα." -#: glossary.rst:931 +#: glossary.rst:938 msgid "namespace package" msgstr "πακέτο namespace" -#: glossary.rst:933 +#: glossary.rst:940 msgid "" "A :term:`package` which serves only as a container for subpackages. " "Namespace packages may have no physical representation, and specifically are " @@ -2358,7 +2375,7 @@ msgstr "" "συγκεκριμένα να μην είναι σαν ένα :term:`regular package` επειδή δεν έχουν " "το ``__init__.py`` αρχείο." -#: glossary.rst:938 +#: glossary.rst:945 msgid "" "Namespace packages allow several individually installable packages to have a " "common parent package. Otherwise, it is recommended to use a :term:`regular " @@ -2368,22 +2385,22 @@ msgstr "" "εγκατάστασης μεμονωμένα να έχουν ένα κοινό γονικό πακέτο. Διαφορετικά, " "συνίσταται η χρήση ενός :term:`regular package`." -#: glossary.rst:941 +#: glossary.rst:948 msgid "" "For more information, see :pep:`420` and :ref:`reference-namespace-package`." msgstr "" "Για περισσότερες πληροφορίες, δείτε το :pep:`420` και το :ref:`reference-" "namespace-package`." -#: glossary.rst:943 +#: glossary.rst:950 msgid "See also :term:`module`." msgstr "Βλ. επίσης :term:`module`." -#: glossary.rst:944 +#: glossary.rst:951 msgid "nested scope" msgstr "nested scope" -#: glossary.rst:946 +#: glossary.rst:953 msgid "" "The ability to refer to a variable in an enclosing definition. For " "instance, a function defined inside another function can refer to variables " @@ -2400,11 +2417,11 @@ msgstr "" "Ομοίως, οι καθολικές μεταβλητές διαβάζουν και γράφουν στον καθολικό χώρο " "ονομάτων. Το :keyword:`nonlocal` επιτρέπει την εγγραφή σε εξωτερικά πεδία." -#: glossary.rst:953 +#: glossary.rst:960 msgid "new-style class" msgstr "κλάση νέου στυλ" -#: glossary.rst:955 +#: glossary.rst:962 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, " @@ -2417,11 +2434,11 @@ msgstr "" "όπως :attr:`~object.__slots__`, descriptors, ιδιότητες :meth:`~object." "__getattribute__`, μέθοδοι κλάσης, και στατικές μέθοδοι." -#: glossary.rst:960 +#: glossary.rst:967 msgid "object" msgstr "αντικείμενο" -#: glossary.rst:962 +#: glossary.rst:969 msgid "" "Any data with state (attributes or value) and defined behavior (methods). " "Also the ultimate base class of any :term:`new-style class`." @@ -2430,11 +2447,11 @@ msgstr "" "συμπεριφορά (μέθοδοι). Επίσης, η τελική βασική κλάση οποιασδήποτε :term:`new-" "style class`." -#: glossary.rst:965 +#: glossary.rst:972 msgid "optimized scope" msgstr "βελτιστοποιημένο πεδίο ορατότητας (scope)" -#: glossary.rst:967 +#: glossary.rst:974 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 " @@ -2454,11 +2471,11 @@ msgstr "" "εκείνες που βασίζονται σε γνωστό σύνολο τοπικών και μη τοπικών μεταβλητών " "περιορίζονται σε βελτιστοποιημένα πεδία ορατότητας." -#: glossary.rst:974 +#: glossary.rst:981 msgid "package" msgstr "πακέτο" -#: glossary.rst:976 +#: glossary.rst:983 msgid "" "A Python :term:`module` which can contain submodules or recursively, " "subpackages. Technically, a package is a Python module with a ``__path__`` " @@ -2468,15 +2485,15 @@ msgstr "" "υποπακέτα. Τεχνικά, ένα πακέτο είναι μια λειτουργική μονάδα Python με ένα " "``__path__`` χαρακτηριστικό." -#: glossary.rst:980 +#: glossary.rst:987 msgid "See also :term:`regular package` and :term:`namespace package`." msgstr "Βλ. επίσης :term:`regular package` και :term:`namespace package`." -#: glossary.rst:981 +#: glossary.rst:988 msgid "parameter" msgstr "παράμετρος" -#: glossary.rst:983 +#: glossary.rst:990 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 " @@ -2486,7 +2503,7 @@ msgstr "" "καθορίζει ένα :term:`argument` (ή σε ορισμένες περιπτώσεις, ορίσματα) που " "μπορεί να δεχθεί η συνάρτηση. Υπάρχουν πέντε είδη παραμέτρων:" -#: glossary.rst:987 +#: glossary.rst:994 msgid "" ":dfn:`positional-or-keyword`: specifies an argument that can be passed " "either :term:`positionally ` or as a :term:`keyword argument " @@ -2498,11 +2515,11 @@ msgstr "" "`. Αυτό είναι το προεπιλεγμένο είδος παραμέτρου, για παράδειγμα " "*foo* και *bar* στα ακόλουθα::" -#: glossary.rst:992 +#: glossary.rst:999 msgid "def func(foo, bar=None): ..." msgstr "def func(foo, bar=None): ..." -#: glossary.rst:996 +#: glossary.rst:1003 msgid "" ":dfn:`positional-only`: specifies an argument that can be supplied only by " "position. Positional-only parameters can be defined by including a ``/`` " @@ -2514,11 +2531,11 @@ msgstr "" "χαρακτήρα ``/`` στη λίστα παραμέτρων του ορισμού συνάρτησης μετά από αυτές, " "για παράδειγμα *posonly1* και *posonly2* στα εξής::" -#: glossary.rst:1001 +#: glossary.rst:1008 msgid "def func(posonly1, posonly2, /, positional_or_keyword): ..." msgstr "def func(posonly1, posonly2, /, positional_or_keyword): ..." -#: glossary.rst:1005 +#: glossary.rst:1012 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-" @@ -2532,11 +2549,11 @@ msgstr "" "του ορισμού συνάρτησης πριν από αυτές, για παράδειγμα *kw_only1* και " "*kw_only2* στα ακόλουθα::" -#: glossary.rst:1011 +#: glossary.rst:1018 msgid "def func(arg, *, kw_only1, kw_only2): ..." msgstr "def func(arg, *, kw_only1, kw_only2): ..." -#: glossary.rst:1013 +#: glossary.rst:1020 msgid "" ":dfn:`var-positional`: specifies that an arbitrary sequence of positional " "arguments can be provided (in addition to any positional arguments already " @@ -2550,11 +2567,11 @@ msgstr "" "προσαρτώντας το όνομα της παραμέτρου με ``*``, για παράδειγμα *args* στα " "ακόλουθα::" -#: glossary.rst:1019 +#: glossary.rst:1026 msgid "def func(*args, **kwargs): ..." msgstr "def func(*args, **kwargs): ..." -#: glossary.rst:1021 +#: glossary.rst:1028 msgid "" ":dfn:`var-keyword`: specifies that arbitrarily many keyword arguments can be " "provided (in addition to any keyword arguments already accepted by other " @@ -2567,7 +2584,7 @@ msgstr "" "οριστεί προσαρτώντας το όνομα της παραμέτρου με ``**``, για παράδειγμα " "*kwargs* όπως παραπάνω." -#: glossary.rst:1027 +#: glossary.rst:1034 msgid "" "Parameters can specify both optional and required arguments, as well as " "default values for some optional arguments." @@ -2576,7 +2593,7 @@ msgstr "" "απαιτούμενα ορίσματα , καθώς και προεπιλεγμένες τιμές για ορισμένα " "προαιρετικά ορίσματα." -#: glossary.rst:1030 +#: glossary.rst:1037 msgid "" "See also the :term:`argument` glossary entry, the FAQ question on :ref:`the " "difference between arguments and parameters `, " @@ -2588,11 +2605,11 @@ msgstr "" "parameter>`, την κλάση :class:`inspect.Parameter`, την ενότητα :ref:" "`function` και :pep:`362`." -#: glossary.rst:1034 +#: glossary.rst:1041 msgid "path entry" msgstr "path entry" -#: glossary.rst:1036 +#: glossary.rst:1043 msgid "" "A single location on the :term:`import path` which the :term:`path based " "finder` consults to find modules for importing." @@ -2600,11 +2617,11 @@ msgstr "" "Μια μεμονωμένη τοποθεσία στο :term:`import path` την οποία συμβουλεύεται ο :" "term:`path based finder` για να βρει modules για εισαγωγή." -#: glossary.rst:1038 +#: glossary.rst:1045 msgid "path entry finder" msgstr "path entry finder" -#: glossary.rst:1040 +#: glossary.rst:1047 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:" @@ -2614,7 +2631,7 @@ msgstr "" "path_hooks` (δηλαδή ένα :term:`path entry hook`) που ξέρει πως να εντοπίζει " "modules με :term:`path entry`." -#: glossary.rst:1044 +#: glossary.rst:1051 msgid "" "See :class:`importlib.abc.PathEntryFinder` for the methods that path entry " "finders implement." @@ -2622,11 +2639,11 @@ msgstr "" "Βλ. :class:`importlib.abc.PathEntryFinder` για τις μεθόδους που ο entry " "finder διαδρομής υλοποιεί." -#: glossary.rst:1046 +#: glossary.rst:1053 msgid "path entry hook" msgstr "path entry hook" -#: glossary.rst:1048 +#: glossary.rst:1055 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 " @@ -2636,11 +2653,11 @@ msgstr "" "term:`path entry finder` εάν ξέρει πως να βρίσκει module σε μια " "συγκεκριμένη :term:`path entry`." -#: glossary.rst:1051 +#: glossary.rst:1058 msgid "path based finder" msgstr "path based finder" -#: glossary.rst:1053 +#: glossary.rst:1060 msgid "" "One of the default :term:`meta path finders ` which " "searches an :term:`import path` for modules." @@ -2648,11 +2665,11 @@ msgstr "" "Ένα από τα προεπιλεγμένα :term:`meta path finders ` που " "αναζητά ένα :term:`import path` για modules." -#: glossary.rst:1055 +#: glossary.rst:1062 msgid "path-like object" msgstr "path-like αντικείμενο" -#: glossary.rst:1057 +#: glossary.rst:1064 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 " @@ -2673,11 +2690,11 @@ msgstr "" "ενός αποτελέσματος :class:`str` ή :class:`bytes`, αντίστοιχα. Εισήχθη από " "τον :pep:`519`." -#: glossary.rst:1065 +#: glossary.rst:1072 msgid "PEP" msgstr "PEP" -#: glossary.rst:1067 +#: glossary.rst:1074 msgid "" "Python Enhancement Proposal. A PEP is a design document providing " "information to the Python community, or describing a new feature for Python " @@ -2690,7 +2707,7 @@ msgstr "" "μια συνοπτική τεχνική προδιαγραφή και μια λογική για τα προτεινόμενα " "χαρακτηριστικά." -#: glossary.rst:1073 +#: glossary.rst:1080 msgid "" "PEPs are intended to be the primary mechanisms for proposing major new " "features, for collecting community input on an issue, and for documenting " @@ -2704,15 +2721,15 @@ msgstr "" "στην Python. Ο συγγραφέας του PEP είναι υπεύθυνος για την οικοδόμηση " "συναίνεσης εντός της κοινότητας και την τεκμηρίωση αντίθετων απόψεων." -#: glossary.rst:1079 +#: glossary.rst:1086 msgid "See :pep:`1`." msgstr "Βλ. :pep:`1`." -#: glossary.rst:1080 +#: glossary.rst:1087 msgid "portion" msgstr "τμήμα" -#: glossary.rst:1082 +#: glossary.rst:1089 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`." @@ -2721,15 +2738,15 @@ msgstr "" "αρχείο *zip*) που συμβάλλουν σε ένα namespace πακέτο, όπως ορίζεται στο :pep:" "`420`." -#: glossary.rst:1084 +#: glossary.rst:1091 msgid "positional argument" msgstr "όρισμα θέσης" -#: glossary.rst:1087 +#: glossary.rst:1094 msgid "provisional API" msgstr "provisional API" -#: glossary.rst:1089 +#: glossary.rst:1096 msgid "" "A provisional API is one which has been deliberately excluded from the " "standard library's backwards compatibility guarantees. While major changes " @@ -2748,7 +2765,7 @@ msgstr "" "αποκαλυφθούν σοβαρά θεμελιώδη ελαττώματα που παραλείφθηκαν πριν από τη " "συμπερίληψη του API." -#: glossary.rst:1098 +#: glossary.rst:1105 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 " @@ -2758,7 +2775,7 @@ msgstr "" "\"λύση έσχατης ανάγκης\"- θα εξακολουθεί να γίνεται κάθε προσπάθεια για να " "βρεθεί μια λύση backwards συμβατή σε τυχόν εντοπισμένα προβλήματα." -#: glossary.rst:1102 +#: glossary.rst:1109 msgid "" "This process allows the standard library to continue to evolve over time, " "without locking in problematic design errors for extended periods of time. " @@ -2769,19 +2786,19 @@ msgstr "" "σφάλματα σχεδιασμού για εκτεταμένες χρονικές περιόδους. Βλ. :pep:`411` για " "περισσότερες λεπτομέρειες." -#: glossary.rst:1105 +#: glossary.rst:1112 msgid "provisional package" msgstr "provisional πακέτο" -#: glossary.rst:1107 +#: glossary.rst:1114 msgid "See :term:`provisional API`." msgstr "Βλ. :term:`provisional API`." -#: glossary.rst:1108 +#: glossary.rst:1115 msgid "Python 3000" msgstr "Python 3000" -#: glossary.rst:1110 +#: glossary.rst:1117 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 " @@ -2791,11 +2808,11 @@ msgstr "" "όταν η κυκλοφορία της έκδοσης 3 ήταν κάτι στο μακρινό μέλλον.) Αυτό " "ονομάζεται επίσης ως συντομογραφία \"Py3k\"." -#: glossary.rst:1113 +#: glossary.rst:1120 msgid "Pythonic" msgstr "Pythonic" -#: glossary.rst:1115 +#: glossary.rst:1122 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 " @@ -2812,7 +2829,7 @@ msgstr "" "κατασκευής, έτσι οι άνθρωποι που δεν είναι εξοικειωμένοι με την Python " "χρησιμοποιούν μερικές φορές έναν αριθμητικό μετρητή::" -#: glossary.rst:1122 +#: glossary.rst:1129 msgid "" "for i in range(len(food)):\n" " print(food[i])" @@ -2820,11 +2837,11 @@ msgstr "" "for i in range(len(food)):\n" " print(food[i])" -#: glossary.rst:1125 +#: glossary.rst:1132 msgid "As opposed to the cleaner, Pythonic method::" msgstr "Αντίθετα, μια πιο καθαρή μέθοδος Pythonic::" -#: glossary.rst:1127 +#: glossary.rst:1134 msgid "" "for piece in food:\n" " print(piece)" @@ -2832,11 +2849,11 @@ msgstr "" "for piece in food:\n" " print(piece)" -#: glossary.rst:1129 +#: glossary.rst:1136 msgid "qualified name" msgstr "αναγνωρισμένο όνομα" -#: glossary.rst:1131 +#: glossary.rst:1138 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 " @@ -2848,7 +2865,7 @@ msgstr "" "ενότητα, όπως ορίζεται στο :pep:`3155`. Για συναρτήσεις και κλάσεις ανώτατου " "επιπέδου, το αναγνωρισμένο όνομα είναι ίδιο με το όνομα του αντικειμένου::" -#: glossary.rst:1136 +#: glossary.rst:1143 msgid "" ">>> class C:\n" "... class D:\n" @@ -2874,7 +2891,7 @@ msgstr "" ">>> C.D.meth.__qualname__\n" "'C.D.meth'" -#: glossary.rst:1148 +#: glossary.rst:1155 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." @@ -2884,7 +2901,7 @@ msgstr "" "όνομα* σημαίνει ολόκληρο το διακεκομμένο path προς το module, " "συμπεριλαμβανομένων τυχόν γονικών πακέτων π.χ. ``email.mime.text``::" -#: glossary.rst:1152 +#: glossary.rst:1159 msgid "" ">>> import email.mime.text\n" ">>> email.mime.text.__name__\n" @@ -2894,11 +2911,11 @@ msgstr "" ">>> email.mime.text.__name__\n" "'email.mime.text'" -#: glossary.rst:1155 +#: glossary.rst:1162 msgid "reference count" msgstr "πλήθος αναφοράς" -#: glossary.rst:1157 +#: glossary.rst:1164 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` " @@ -2917,11 +2934,22 @@ msgstr "" "συνάρτηση :func:`sys.getrefcount` για να επιστρέψουν το πλήθος αναφοράς για " "ένα συγκεκριμένο αντικείμενο." -#: glossary.rst:1165 +#: glossary.rst:1173 +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:1177 msgid "regular package" msgstr "κανονικό πακέτο" -#: glossary.rst:1167 +#: glossary.rst:1179 msgid "" "A traditional :term:`package`, such as a directory containing an ``__init__." "py`` file." @@ -2929,15 +2957,15 @@ msgstr "" "Ένα παραδοσιακό :term:`package`, όπως ένας κατάλογος που περιέχει ένα " "``__init__.py`` αρχείο." -#: glossary.rst:1170 +#: glossary.rst:1182 msgid "See also :term:`namespace package`." msgstr "Βλ. επίσης :term:`namespace package`." -#: glossary.rst:1171 +#: glossary.rst:1183 msgid "REPL" msgstr "REPL" -#: glossary.rst:1173 +#: glossary.rst:1185 msgid "" "An acronym for the \"read–eval–print loop\", another name for the :term:" "`interactive` interpreter shell." @@ -2945,11 +2973,11 @@ msgstr "" "Ακρωνύμιο του \"read–eval–print loop\", άλλη ονομασία για το :term:" "`interactive` περιβάλλον του διερμηνέα." -#: glossary.rst:1175 +#: glossary.rst:1187 msgid "__slots__" msgstr "__slots__" -#: glossary.rst:1177 +#: glossary.rst:1189 msgid "" "A declaration inside a class that saves memory by pre-declaring space for " "instance attributes and eliminating instance dictionaries. Though popular, " @@ -2963,11 +2991,11 @@ msgstr "" "σωστή και προορίζεται καλύτερα για σπάνιες περιπτώσεις όπου υπάρχει μεγάλος " "αριθμός στιγμιοτύπων σε μια εφαρμογή κρίσιμης-μνήμης." -#: glossary.rst:1182 +#: glossary.rst:1194 msgid "sequence" msgstr "ακολουθία" -#: glossary.rst:1184 +#: glossary.rst:1196 msgid "" "An :term:`iterable` which supports efficient element access using integer " "indices via the :meth:`~object.__getitem__` special method and defines a :" @@ -2988,30 +3016,30 @@ msgstr "" "ακολουθία επειδή οι αναζητήσεις χρησιμοποιούν αυθαίρετα :term:`hashable` " "κλειδιά παρά ακέραιοι." -#: glossary.rst:1193 +#: glossary.rst:1205 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:1202 +"meth:`~object.__len__`, προσθέτοντας τις :meth:`~sequence.count`, :meth:" +"`~sequence.index`, :meth:`~object.__contains__`, και :meth:`~object." +"__reversed__`. Οι τύποι που υλοποιούν αυτήν την διευρυμένη διεπαφή μπορούν " +"να καταχωρηθούν ρητά χρησιμοποιώντας :func:`~abc.ABCMeta.register`. Για " +"περισσότερη τεκμηρίωση σχετικά με τις μεθόδους ακολουθίας γενικά, ανατρέξτε " +"στο :ref:`Common Sequence Operations `." + +#: glossary.rst:1215 msgid "set comprehension" msgstr "set comprehension" -#: glossary.rst:1204 +#: glossary.rst:1217 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 " @@ -3023,11 +3051,11 @@ msgstr "" "c in 'abracadabra' if c not in 'abc'}`` δημιουργεί το σύνολο συμβολοσειρών " "``{'r', 'd'}``. Βλ. :ref:`comprehensions`." -#: glossary.rst:1208 +#: glossary.rst:1221 msgid "single dispatch" msgstr "μοναδικό dispatch" -#: glossary.rst:1210 +#: glossary.rst:1223 msgid "" "A form of :term:`generic function` dispatch where the implementation is " "chosen based on the type of a single argument." @@ -3035,11 +3063,11 @@ msgstr "" "Μια μορφή dispatch :term:`generic function` όπου η υλοποίηση επιλέγεται με " "βάση τον τύπο ενός μεμονωμένου ορίσματος." -#: glossary.rst:1212 +#: glossary.rst:1225 msgid "slice" msgstr "slice" -#: glossary.rst:1214 +#: glossary.rst:1227 msgid "" "An object usually containing a portion of a :term:`sequence`. A slice is " "created using the subscript notation, ``[]`` with colons between numbers " @@ -3052,11 +3080,11 @@ msgstr "" "``variable_name[1:3:5]``. Η σημείωση αγκύλης (subscript) χρησιμοποιεί " "εσωτερικά αντικείμενα :class:`slice`." -#: glossary.rst:1218 +#: glossary.rst:1231 msgid "soft deprecated" msgstr "απαρχαιωμένη με ήπιο τρόπο" -#: glossary.rst:1220 +#: glossary.rst:1233 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 " @@ -3066,7 +3094,7 @@ msgstr "" "κώδικα, αλλά είναι ασφαλές σε ήδη υπάρχοντα κώδικα να το χρησιμοποιεί. Το " "API παραμένει τεκμηριωμένο και δοκιμασμένο, αλλά δεν θα ενισχυθεί περαιτέρω." -#: glossary.rst:1224 +#: glossary.rst:1237 msgid "" "Soft deprecation, unlike normal deprecation, does not plan on removing the " "API and will not emit warnings." @@ -3074,7 +3102,7 @@ msgstr "" "Η κατάργηση με ήπιο τρόπο, σε αντίθεση με την κανονική κατάργηση, δεν " "σχεδιάζει την κατάργηση του API και δεν θα εκπέμπει ειδοποιήσεις" -#: glossary.rst:1227 +#: glossary.rst:1240 msgid "" "See `PEP 387: Soft Deprecation `_." @@ -3082,11 +3110,11 @@ msgstr "" "Δείτε `PEP 387: Soft Deprecation `_." -#: glossary.rst:1229 +#: glossary.rst:1242 msgid "special method" msgstr "ειδική μέθοδος" -#: glossary.rst:1233 +#: glossary.rst:1246 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 " @@ -3098,11 +3126,37 @@ msgstr "" "έχουνε ονόματα που ξεκινούν και τελειώνουν με διπλές κάτω παύλες. Οι ειδικές " "μέθοδοι τεκμηριώνονται στο :ref:`specialnames`." -#: glossary.rst:1237 +#: glossary.rst:1250 +msgid "standard library" +msgstr "τυπική βιβλιοθήκη" + +#: glossary.rst:1252 +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:`πακέτα `, :term:`μονάδες ` και :term:" +"`επεκτάσεις μονάδων ` που διανέμονται ως μέρος του " +"επίσημου πακέτου διερμηνέα Python. Η ακριβής σύνθεση της συλλογής μπορεί να " +"διαφέρει ανάλογα με την πλατφόρμα, τις διαθέσιμες βιβλιοθήκες συστήματος ή " +"άλλα κριτήρια. Η τεκμηρίωση μπορεί να βρεθεί στο :ref:`library-index`." + +#: glossary.rst:1258 +msgid "" +"See also :data:`sys.stdlib_module_names` for a list of all possible standard " +"library module names." +msgstr "" +"Δείτε επίσης :data:`sys.stdlib_module_names` για μια λίστα με όλα τα πιθανά " +"ονόματα μονάδων τυπικής βιβλιοθήκης." + +#: glossary.rst:1260 msgid "statement" msgstr "δήλωση" -#: glossary.rst:1239 +#: glossary.rst:1262 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 :" @@ -3112,11 +3166,11 @@ msgstr "" "είναι είτε ένας :term:`expression` είτε μια από πολλές δομές με μια λέξη-" "κλειδί όπως :keyword:`if`, :keyword:`while` ή :keyword:`for`." -#: glossary.rst:1242 +#: glossary.rst:1265 msgid "static type checker" msgstr "ελεγκτής στατικού τύπου" -#: glossary.rst:1244 +#: glossary.rst:1267 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 :" @@ -3126,11 +3180,19 @@ msgstr "" "αναζητώντας προβλήματα όπως λανθασμένοι τύποι. Βλ. επίσης :term:`type hints " "` και το module :mod:`typing`." -#: glossary.rst:1247 +#: glossary.rst:1270 +msgid "stdlib" +msgstr "stdlib" + +#: glossary.rst:1272 +msgid "An abbreviation of :term:`standard library`." +msgstr "Μια συντομογραφία του :term:`standard library`." + +#: glossary.rst:1273 msgid "strong reference" msgstr "strong reference" -#: glossary.rst:1249 +#: glossary.rst:1275 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 " @@ -3143,7 +3205,7 @@ msgstr "" "δημιουργείται και απελευθερώνεται με :c:func:`Py_DECREF` όταν διαγραφεί η " "αναφορά." -#: glossary.rst:1255 +#: glossary.rst:1281 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 " @@ -3155,15 +3217,15 @@ msgstr "" "`Py_DECREF` πρέπει να καλείται στην ισχυρή αναφορά πριν βγει από το εύρος " "της ισχυρής αναφοράς, για να αποφευχθεί η διαρροή μιας αναφοράς." -#: glossary.rst:1260 +#: glossary.rst:1286 msgid "See also :term:`borrowed reference`." msgstr "Βλ. επίσης :term:`borrowed reference`." -#: glossary.rst:1261 +#: glossary.rst:1287 msgid "text encoding" msgstr "κωδικοποίηση κειμένου" -#: glossary.rst:1263 +#: glossary.rst:1289 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 " @@ -3173,7 +3235,7 @@ msgstr "" "εύρος ``U+0000``--``U+10FFFF``). Για να αποθηκεύσετε ή να μεταφέρετε μια " "συμβολοσειρά, πρέπει να σειριοποιηθεί ως δυαδική ακολουθία." -#: glossary.rst:1267 +#: glossary.rst:1293 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\"." @@ -3182,7 +3244,7 @@ msgstr "" "\"κωδικοποίηση\" , και η αναδημιουργία της συμβολοσειράς από την δυαδική " "ακολουθία είναι γνωστή ως \"αποκωδικοποίηση\"." -#: glossary.rst:1270 +#: glossary.rst:1296 msgid "" "There are a variety of different text serialization :ref:`codecs `, which are collectively referred to as \"text encodings\"." @@ -3191,11 +3253,11 @@ msgstr "" "`, οι οποίοι συλλογικά αναφέρονται ως \"κωδικοποιήσεις " "κειμένου\"." -#: glossary.rst:1273 +#: glossary.rst:1299 msgid "text file" msgstr "αρχείο κειμένου" -#: glossary.rst:1275 +#: glossary.rst:1301 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:" @@ -3210,7 +3272,7 @@ msgstr "" "κειμένου (``'r'`` ή ``'w'``), :data:`sys.stdin`, :data:`sys.stdout`, και " "στιγμιότυπα του :class:`io.StringIO`." -#: glossary.rst:1282 +#: glossary.rst:1308 msgid "" "See also :term:`binary file` for a file object able to read and write :term:" "`bytes-like objects `." @@ -3218,11 +3280,11 @@ msgstr "" "Βλ. επίσης :term:`binary file` για ένα αντικείμενο αρχείου με δυνατότητα " "ανάγνωσης και εγγραφής :term:`δυαδικά αντικείμενα `." -#: glossary.rst:1284 +#: glossary.rst:1310 msgid "token" msgstr "λεκτικό σύμβολο (token)" -#: glossary.rst:1287 +#: glossary.rst:1313 msgid "" "A small unit of source code, generated by the :ref:`lexical analyzer " "` (also called the *tokenizer*). Names, numbers, strings, " @@ -3233,7 +3295,7 @@ msgstr "" "συμβολοσειρές, τελεστές αλλαγές γραμμής και παρόμοια στοιχεία αναπαρίστανται " "ως λεκτικά σύμβολα (tokens)." -#: glossary.rst:1292 +#: glossary.rst:1318 msgid "" "The :mod:`tokenize` module exposes Python's lexical analyzer. The :mod:" "`token` module contains information on the various types of tokens." @@ -3242,11 +3304,11 @@ msgstr "" "mod:`token` περιέχει πληροφορίες για τους διάφορους τύπους λεκτικών συμβόλων " "(tokens)." -#: glossary.rst:1295 +#: glossary.rst:1321 msgid "triple-quoted string" msgstr "συμβολοσειρά τριπλών εισαγωγικών" -#: glossary.rst:1297 +#: glossary.rst:1323 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 " @@ -3264,11 +3326,11 @@ msgstr "" "γραμμές χωρίς τη χρήση του χαρακτήρα συνέχεια, καθιστώντας τα ιδιαίτερα " "χρήσιμα κατά τη σύνταξη εγγράφων με συμβολοσειρές." -#: glossary.rst:1304 +#: glossary.rst:1330 msgid "type" msgstr "τύπος" -#: glossary.rst:1306 +#: glossary.rst:1332 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." @@ -3279,17 +3341,17 @@ msgstr "" "το χαρακτηριστικό :attr:`~object.__class__` ή μπορεί να ανακτηθεί με " "``type(obj)``." -#: glossary.rst:1310 +#: glossary.rst:1336 msgid "type alias" msgstr "type alias" -#: glossary.rst:1312 +#: glossary.rst:1338 msgid "A synonym for a type, created by assigning the type to an identifier." msgstr "" "Ένα συνώνυμο για έναν τύπο, που δημιουργείται με την ανάθεση τύπου σε ένα " "αναγνωριστικό." -#: glossary.rst:1314 +#: glossary.rst:1340 msgid "" "Type aliases are useful for simplifying :term:`type hints `. For " "example::" @@ -3297,7 +3359,7 @@ msgstr "" "Τα type aliases είναι χρήσιμα για την απλοποίηση :term:`type alias `. Για παράδειγμα::" -#: glossary.rst:1317 +#: glossary.rst:1343 msgid "" "def remove_gray_shades(\n" " colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]:\n" @@ -3307,11 +3369,11 @@ msgstr "" " colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]:\n" " pass" -#: glossary.rst:1321 +#: glossary.rst:1347 msgid "could be made more readable like this::" msgstr "μπορεί να γίνει πιο ευανάγνωστο όπως::" -#: glossary.rst:1323 +#: glossary.rst:1349 msgid "" "Color = tuple[int, int, int]\n" "\n" @@ -3323,16 +3385,16 @@ msgstr "" "def remove_gray_shades(colors: list[Color]) -> list[Color]:\n" " pass" -#: glossary.rst:1342 +#: glossary.rst:1368 msgid "See :mod:`typing` and :pep:`484`, which describe this functionality." msgstr "" "Βλ. :mod:`typing` και :pep:`484`, που περιγράφει αυτήν την λειτουργικότητα." -#: glossary.rst:1329 +#: glossary.rst:1355 msgid "type hint" msgstr "type hint" -#: glossary.rst:1331 +#: glossary.rst:1357 msgid "" "An :term:`annotation` that specifies the expected type for a variable, a " "class attribute, or a function parameter or return value." @@ -3341,7 +3403,7 @@ msgstr "" "μεταβλητή, ένα χαρακτηριστικό κλάσης ή μια παράμετρο συνάρτησης ή τιμή " "επιστροφής." -#: glossary.rst:1334 +#: glossary.rst:1360 msgid "" "Type hints are optional and are not enforced by Python but they are useful " "to :term:`static type checkers `. They can also aid " @@ -3352,7 +3414,7 @@ msgstr "" "checker>`. Μπορούν επίσης να βοηθήσουν τους IDEs με τη συμπλήρωση και την " "αναδιαμόρφωση κώδικα." -#: glossary.rst:1338 +#: glossary.rst:1364 msgid "" "Type hints of global variables, class attributes, and functions, but not " "local variables, can be accessed using :func:`typing.get_type_hints`." @@ -3361,11 +3423,11 @@ msgstr "" "κλάσης και συναρτήσεις , αλλά όχι τοπικές μεταβλητές, μπορούν να " "προσπελαστούν χρησιμοποιώντας το :func:`typing.get_type_hints`." -#: glossary.rst:1343 +#: glossary.rst:1369 msgid "universal newlines" msgstr "καθολικές νέες γραμμές" -#: glossary.rst:1345 +#: glossary.rst:1371 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 " @@ -3379,22 +3441,22 @@ msgstr "" "Βλ. :pep:`278` και :pep:`3116`, καθώς και :func:`bytes.splitlines` για " "πρόσθετη χρήση." -#: glossary.rst:1350 +#: glossary.rst:1376 msgid "variable annotation" msgstr "annotation μεταβλητής" -#: glossary.rst:1352 +#: glossary.rst:1378 msgid "An :term:`annotation` of a variable or a class attribute." msgstr "Ένας :term:`annotation` μια μεταβλητής ή ενός χαρακτηριστικού κλάσης." -#: glossary.rst:1354 +#: glossary.rst:1380 msgid "" "When annotating a variable or a class attribute, assignment is optional::" msgstr "" "Όταν annotating μια μεταβλητή ή ένα χαρακτηριστικό κλάσης, η ανάθεση είναι " "προαιρετική::" -#: glossary.rst:1356 +#: glossary.rst:1382 msgid "" "class C:\n" " field: 'annotation'" @@ -3402,7 +3464,7 @@ msgstr "" "class C:\n" " field: 'annotation'" -#: glossary.rst:1359 +#: glossary.rst:1385 msgid "" "Variable annotations are usually used for :term:`type hints `: " "for example this variable is expected to take :class:`int` values::" @@ -3411,16 +3473,16 @@ msgstr "" "`: για παράδειγμα αυτή η μεταβλητή αναμένεται να λάβει τιμές :" "class:`int`::" -#: glossary.rst:1363 +#: glossary.rst:1389 msgid "count: int = 0" msgstr "count: int = 0" -#: glossary.rst:1365 +#: glossary.rst:1391 msgid "Variable annotation syntax is explained in section :ref:`annassign`." msgstr "" "Η σύνταξη annotation μεταβλητής περιγράφεται στην ενότητα :ref:`annassign`." -#: glossary.rst:1367 +#: glossary.rst:1393 msgid "" "See :term:`function annotation`, :pep:`484` and :pep:`526`, which describe " "this functionality. Also see :ref:`annotations-howto` for best practices on " @@ -3430,11 +3492,11 @@ msgstr "" "αυτή τη λειτουργία. Δείτε επίσης :ref:`annotations-howto` για βέλτιστες " "πρακτικές σχετικά με την εργασία με σχολιασμούς." -#: glossary.rst:1371 +#: glossary.rst:1397 msgid "virtual environment" msgstr "virtual environment" -#: glossary.rst:1373 +#: glossary.rst:1399 msgid "" "A cooperatively isolated runtime environment that allows Python users and " "applications to install and upgrade Python distribution packages without " @@ -3446,15 +3508,15 @@ msgstr "" "πακέτα διανομής Python χωρίς να παρεμβαίνουν στη συμπεριφορά άλλων εφαρμογών " "Python που εκτελούνται στο ίδιο σύστημα." -#: glossary.rst:1378 +#: glossary.rst:1404 msgid "See also :mod:`venv`." msgstr "Βλ. επίσης :mod:`venv`." -#: glossary.rst:1379 +#: glossary.rst:1405 msgid "virtual machine" msgstr "virtual machine" -#: glossary.rst:1381 +#: glossary.rst:1407 msgid "" "A computer defined entirely in software. Python's virtual machine executes " "the :term:`bytecode` emitted by the bytecode compiler." @@ -3463,11 +3525,25 @@ msgstr "" "της Python εκτελεί το :term:`bytecode` που εκπέμπεται από τον μεταγλωττιστή " "bytecode." -#: glossary.rst:1383 +#: glossary.rst:1409 +msgid "walrus operator" +msgstr "τελεστής walrus" + +#: glossary.rst:1411 +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:" +"`assignment expression ` ``:=`` επειδή μοιάζει λίγο " +"με ένα θαλάσσιο ίππο αν γυρίσετε το κεφάλι σας." + +#: glossary.rst:1414 msgid "Zen of Python" msgstr "Zen της Python" -#: glossary.rst:1385 +#: glossary.rst:1416 msgid "" "Listing of Python design principles and philosophies that are helpful in " "understanding and using the language. The listing can be found by typing " @@ -3477,22 +3553,33 @@ msgstr "" "κατανόηση και τη χρήση της γλώσσας. Ο κατάλογος μπορεί να βρεθεί " "πληκτρολογώντας \"``import this``\" στην διαδραστική κονσόλα." -#: glossary.rst:292 +#: glossary.rst:24 +msgid "..." +msgstr "..." + +#: glossary.rst:24 +msgid "ellipsis literal" +msgstr "γραμματική παράσταση αποσιωπητικών" + +#: glossary.rst:294 msgid "C-contiguous" msgstr "C-contiguous" -#: glossary.rst:292 +#: glossary.rst:294 msgid "Fortran contiguous" msgstr "Fortran contiguous" -#: glossary.rst:831 +#: glossary.rst:838 msgid "magic" msgstr "magic" -#: glossary.rst:1231 +#: glossary.rst:1244 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..fc7387e1 --- /dev/null +++ b/howto/a-conceptual-overview-of-asyncio.po @@ -0,0 +1,812 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001-2025, 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.13\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-11-27 09:00+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 e9b2fbc6..42c33533 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 14737cf3..8c2bdb39 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b5fdfc55..5030a359 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 7d016add..d07214fa 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 424f4cda..934d0ca3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -42,8 +42,8 @@ msgstr "" #: howto/cporting.rst:17 msgid "" -"The `Cython`_ and `CFFI`_ libraries offer abstractions over Python's C API. " -"Extensions generally need to be re-written to use one of them, but the " -"library then handles differences between various Python versions and " -"implementations." +":ref:`Recommended third party tools ` offer abstractions over " +"the Python's C API. Extensions generally need to be re-written to use one of " +"them, but the library then handles differences between various Python " +"versions and implementations." msgstr "" diff --git a/howto/curses.po b/howto/curses.po index 56ca5b00..9fb519a7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3960652b..9f8ce35a 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 6ae2315d..d96a8242 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 acf4dd1a..e52e8bdd 100644 --- a/howto/free-threading-extensions.po +++ b/howto/free-threading-extensions.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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" @@ -47,29 +48,37 @@ msgid "" "#endif" msgstr "" -#: howto/free-threading-extensions.rst:27 +#: howto/free-threading-extensions.rst:28 +msgid "" +"On Windows, this macro is not defined automatically, but must be specified " +"to the compiler when building. The :func:`sysconfig.get_config_var` function " +"can be used to determine whether the current running interpreter had the " +"macro defined." +msgstr "" + +#: howto/free-threading-extensions.rst:35 msgid "Module Initialization" msgstr "" -#: howto/free-threading-extensions.rst:29 +#: howto/free-threading-extensions.rst:37 msgid "" "Extension modules need to explicitly indicate that they support running with " "the GIL disabled; otherwise importing the extension will raise a warning and " "enable the GIL at runtime." msgstr "" -#: howto/free-threading-extensions.rst:33 +#: howto/free-threading-extensions.rst:41 msgid "" "There are two ways to indicate that an extension module supports running " "with the GIL disabled depending on whether the extension uses multi-phase or " "single-phase initialization." msgstr "" -#: howto/free-threading-extensions.rst:38 +#: howto/free-threading-extensions.rst:46 msgid "Multi-Phase Initialization" msgstr "" -#: howto/free-threading-extensions.rst:40 +#: howto/free-threading-extensions.rst:48 msgid "" "Extensions that use multi-phase initialization (i.e., :c:func:" "`PyModuleDef_Init`) should add a :c:data:`Py_mod_gil` slot in the module " @@ -77,7 +86,7 @@ msgid "" "should guard the slot with a :c:data:`PY_VERSION_HEX` check." msgstr "" -#: howto/free-threading-extensions.rst:47 +#: howto/free-threading-extensions.rst:55 msgid "" "static struct PyModuleDef_Slot module_slots[] = {\n" " ...\n" @@ -94,11 +103,11 @@ msgid "" "};" msgstr "" -#: howto/free-threading-extensions.rst:63 +#: howto/free-threading-extensions.rst:71 msgid "Single-Phase Initialization" msgstr "" -#: howto/free-threading-extensions.rst:65 +#: howto/free-threading-extensions.rst:73 msgid "" "Extensions that use single-phase initialization (i.e., :c:func:" "`PyModule_Create`) should call :c:func:`PyUnstable_Module_SetGIL` to " @@ -107,7 +116,7 @@ msgid "" "``#ifdef Py_GIL_DISABLED`` to avoid compilation errors in the regular build." msgstr "" -#: howto/free-threading-extensions.rst:73 +#: howto/free-threading-extensions.rst:81 msgid "" "static struct PyModuleDef moduledef = {\n" " PyModuleDef_HEAD_INIT,\n" @@ -128,28 +137,28 @@ msgid "" "}" msgstr "" -#: howto/free-threading-extensions.rst:93 +#: howto/free-threading-extensions.rst:101 msgid "General API Guidelines" msgstr "" -#: howto/free-threading-extensions.rst:95 +#: howto/free-threading-extensions.rst:103 msgid "Most of the C API is thread-safe, but there are some exceptions." msgstr "" -#: howto/free-threading-extensions.rst:97 +#: howto/free-threading-extensions.rst:105 msgid "" "**Struct Fields**: Accessing fields in Python C API objects or structs " "directly is not thread-safe if the field may be concurrently modified." msgstr "" -#: howto/free-threading-extensions.rst:99 +#: howto/free-threading-extensions.rst:107 msgid "" "**Macros**: Accessor macros like :c:macro:`PyList_GET_ITEM` and :c:macro:" "`PyList_SET_ITEM` do not perform any error checking or locking. These macros " "are not thread-safe if the container object may be modified concurrently." msgstr "" -#: howto/free-threading-extensions.rst:103 +#: howto/free-threading-extensions.rst:111 msgid "" "**Borrowed References**: C API functions that return :term:`borrowed " "references ` may not be thread-safe if the containing " @@ -157,11 +166,11 @@ msgid "" "references ` for more information." msgstr "" -#: howto/free-threading-extensions.rst:110 +#: howto/free-threading-extensions.rst:118 msgid "Container Thread Safety" msgstr "" -#: howto/free-threading-extensions.rst:112 +#: howto/free-threading-extensions.rst:120 msgid "" "Containers like :c:struct:`PyListObject`, :c:struct:`PyDictObject`, and :c:" "struct:`PySetObject` perform internal locking in the free-threaded build. " @@ -169,11 +178,11 @@ msgid "" "an item." msgstr "" -#: howto/free-threading-extensions.rst:120 +#: howto/free-threading-extensions.rst:128 msgid "``PyDict_Next``" msgstr "" -#: howto/free-threading-extensions.rst:122 +#: howto/free-threading-extensions.rst:130 msgid "" "A notable exception is :c:func:`PyDict_Next`, which does not lock the " "dictionary. You should use :c:macro:`Py_BEGIN_CRITICAL_SECTION` to protect " @@ -181,7 +190,7 @@ msgid "" "modified::" msgstr "" -#: howto/free-threading-extensions.rst:127 +#: howto/free-threading-extensions.rst:135 msgid "" "Py_BEGIN_CRITICAL_SECTION(dict);\n" "PyObject *key, *value;\n" @@ -192,11 +201,11 @@ msgid "" "Py_END_CRITICAL_SECTION();" msgstr "" -#: howto/free-threading-extensions.rst:137 +#: howto/free-threading-extensions.rst:145 msgid "Borrowed References" msgstr "" -#: howto/free-threading-extensions.rst:141 +#: howto/free-threading-extensions.rst:149 msgid "" "Some C API functions return :term:`borrowed references `. These APIs are not thread-safe if the containing object is " @@ -204,87 +213,92 @@ msgid "" "`PyList_GetItem` if the list may be modified concurrently." msgstr "" -#: howto/free-threading-extensions.rst:146 +#: howto/free-threading-extensions.rst:154 msgid "" "The following table lists some borrowed reference APIs and their " "replacements that return :term:`strong references `." msgstr "" -#: howto/free-threading-extensions.rst:150 +#: howto/free-threading-extensions.rst:158 msgid "Borrowed reference API" msgstr "" -#: howto/free-threading-extensions.rst:150 +#: howto/free-threading-extensions.rst:158 msgid "Strong reference API" msgstr "" -#: howto/free-threading-extensions.rst:152 +#: howto/free-threading-extensions.rst:160 msgid ":c:func:`PyList_GetItem`" msgstr "" -#: howto/free-threading-extensions.rst:152 +#: howto/free-threading-extensions.rst:160 +#: howto/free-threading-extensions.rst:162 msgid ":c:func:`PyList_GetItemRef`" msgstr "" -#: howto/free-threading-extensions.rst:154 +#: howto/free-threading-extensions.rst:162 +msgid ":c:func:`PyList_GET_ITEM`" +msgstr "" + +#: howto/free-threading-extensions.rst:164 msgid ":c:func:`PyDict_GetItem`" msgstr "" -#: howto/free-threading-extensions.rst:154 -#: howto/free-threading-extensions.rst:156 +#: howto/free-threading-extensions.rst:164 +#: howto/free-threading-extensions.rst:166 msgid ":c:func:`PyDict_GetItemRef`" msgstr "" -#: howto/free-threading-extensions.rst:156 +#: howto/free-threading-extensions.rst:166 msgid ":c:func:`PyDict_GetItemWithError`" msgstr "" -#: howto/free-threading-extensions.rst:158 +#: howto/free-threading-extensions.rst:168 msgid ":c:func:`PyDict_GetItemString`" msgstr "" -#: howto/free-threading-extensions.rst:158 +#: howto/free-threading-extensions.rst:168 msgid ":c:func:`PyDict_GetItemStringRef`" msgstr "" -#: howto/free-threading-extensions.rst:160 +#: howto/free-threading-extensions.rst:170 msgid ":c:func:`PyDict_SetDefault`" msgstr "" -#: howto/free-threading-extensions.rst:160 +#: howto/free-threading-extensions.rst:170 msgid ":c:func:`PyDict_SetDefaultRef`" msgstr "" -#: howto/free-threading-extensions.rst:162 +#: howto/free-threading-extensions.rst:172 msgid ":c:func:`PyDict_Next`" msgstr "" -#: howto/free-threading-extensions.rst:162 +#: howto/free-threading-extensions.rst:172 msgid "none (see :ref:`PyDict_Next`)" msgstr "" -#: howto/free-threading-extensions.rst:164 +#: howto/free-threading-extensions.rst:174 msgid ":c:func:`PyWeakref_GetObject`" msgstr "" -#: howto/free-threading-extensions.rst:164 -#: howto/free-threading-extensions.rst:166 +#: howto/free-threading-extensions.rst:174 +#: howto/free-threading-extensions.rst:176 msgid ":c:func:`PyWeakref_GetRef`" msgstr "" -#: howto/free-threading-extensions.rst:166 +#: howto/free-threading-extensions.rst:176 msgid ":c:func:`PyWeakref_GET_OBJECT`" msgstr "" -#: howto/free-threading-extensions.rst:168 +#: howto/free-threading-extensions.rst:178 msgid ":c:func:`PyImport_AddModule`" msgstr "" -#: howto/free-threading-extensions.rst:168 +#: howto/free-threading-extensions.rst:178 msgid ":c:func:`PyImport_AddModuleRef`" msgstr "" -#: howto/free-threading-extensions.rst:171 +#: howto/free-threading-extensions.rst:181 msgid "" "Not all APIs that return borrowed references are problematic. For example, :" "c:func:`PyTuple_GetItem` is safe because tuples are immutable. Similarly, " @@ -295,18 +309,18 @@ msgid "" "context is safe." msgstr "" -#: howto/free-threading-extensions.rst:179 +#: howto/free-threading-extensions.rst:189 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:187 +#: howto/free-threading-extensions.rst:197 msgid "Memory Allocation APIs" msgstr "" -#: howto/free-threading-extensions.rst:189 +#: howto/free-threading-extensions.rst:199 msgid "" "Python's memory management C API provides functions in three different :ref:" "`allocation domains `: \"raw\", \"mem\", and \"object\". " @@ -316,36 +330,36 @@ msgid "" "where this was only a best practice and not a hard requirement." msgstr "" -#: howto/free-threading-extensions.rst:198 +#: howto/free-threading-extensions.rst:208 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:205 +#: howto/free-threading-extensions.rst:215 msgid "Thread State and GIL APIs" msgstr "" -#: howto/free-threading-extensions.rst:207 +#: howto/free-threading-extensions.rst:217 msgid "" "Python provides a set of functions and macros to manage thread state and the " "GIL, such as:" msgstr "" -#: howto/free-threading-extensions.rst:210 +#: howto/free-threading-extensions.rst:220 msgid ":c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release`" msgstr "" -#: howto/free-threading-extensions.rst:211 +#: howto/free-threading-extensions.rst:221 msgid ":c:func:`PyEval_SaveThread` and :c:func:`PyEval_RestoreThread`" msgstr "" -#: howto/free-threading-extensions.rst:212 +#: howto/free-threading-extensions.rst:222 msgid ":c:macro:`Py_BEGIN_ALLOW_THREADS` and :c:macro:`Py_END_ALLOW_THREADS`" msgstr "" -#: howto/free-threading-extensions.rst:214 +#: howto/free-threading-extensions.rst:224 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 " @@ -354,7 +368,7 @@ msgid "" "Python thread state." msgstr "" -#: howto/free-threading-extensions.rst:220 +#: howto/free-threading-extensions.rst:230 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 " @@ -362,25 +376,25 @@ msgid "" "collector `." msgstr "" -#: howto/free-threading-extensions.rst:227 +#: howto/free-threading-extensions.rst:237 msgid "Protecting Internal Extension State" msgstr "" -#: howto/free-threading-extensions.rst:229 +#: howto/free-threading-extensions.rst:239 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:233 +#: howto/free-threading-extensions.rst:243 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:236 +#: howto/free-threading-extensions.rst:246 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 " @@ -388,34 +402,34 @@ msgid "" "language/storage_duration>`_." msgstr "" -#: howto/free-threading-extensions.rst:243 +#: howto/free-threading-extensions.rst:253 msgid "Building Extensions for the Free-Threaded Build" msgstr "" -#: howto/free-threading-extensions.rst:245 +#: howto/free-threading-extensions.rst:255 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:248 +#: howto/free-threading-extensions.rst:258 msgid "" "`pypa/manylinux `_ supports the free-" "threaded build, with the ``t`` suffix, such as ``python3.13t``." msgstr "" -#: howto/free-threading-extensions.rst:250 +#: howto/free-threading-extensions.rst:260 msgid "" "`pypa/cibuildwheel `_ supports the " -"free-threaded build if you set `CIBW_FREE_THREADED_SUPPORT `_." +"free-threaded build if you set `CIBW_ENABLE to cpython-freethreading " +"`_." msgstr "" -#: howto/free-threading-extensions.rst:255 +#: howto/free-threading-extensions.rst:265 msgid "Limited C API and Stable ABI" msgstr "" -#: howto/free-threading-extensions.rst:257 +#: howto/free-threading-extensions.rst:267 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 5d49546c..0f44f0ad 100644 --- a/howto/free-threading-python.po +++ b/howto/free-threading-python.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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" @@ -64,7 +65,7 @@ msgstr "" #: howto/free-threading-python.rst:34 msgid "" "For information on other platforms, see the `Installing a Free-Threaded " -"Python `_, a " +"Python `_, a " "community-maintained installation guide for installing free-threaded Python." msgstr "" diff --git a/howto/functional.po b/howto/functional.po index 78cf3b17..ad66287d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 9989c1dc..ff2fdc17 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 da11b9fe..d795e50e 100644 --- a/howto/index.po +++ b/howto/index.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" -"PO-Revision-Date: 2025-05-05 22:15+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: ALEXANDROS TZIORAS alextzioras23@gmail.com\n" "Language-Team: Language-Team: PyGreece \n" "Language: \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,106 +33,110 @@ msgstr "" "συλλογή είναι μια προσπάθεια να προωθηθεί η τεκμηρίωση που είναι πιο " "λεπτομερής από την Αναφορά της Βιβλιοθήκης Python." -#: howto/index.rst:38 +#: howto/index.rst:41 msgid "General:" msgstr "Γενικά:" -#: howto/index.rst:40 +#: howto/index.rst:43 +msgid ":ref:`a-conceptual-overview-of-asyncio`" +msgstr ":ref:`a-conceptual-overview-of-asyncio`" + +#: howto/index.rst:44 msgid ":ref:`annotations-howto`" msgstr ":ref:`annotations-howto`" -#: howto/index.rst:41 +#: howto/index.rst:45 msgid ":ref:`argparse-tutorial`" msgstr ":ref:`argparse-tutorial`" -#: howto/index.rst:42 +#: howto/index.rst:46 msgid ":ref:`descriptorhowto`" msgstr ":ref:`descriptorhowto`" -#: howto/index.rst:43 +#: howto/index.rst:47 msgid ":ref:`enum-howto`" msgstr ":ref:`enum-howto`" -#: howto/index.rst:44 +#: howto/index.rst:48 msgid ":ref:`functional-howto`" msgstr ":ref:`functional-howto`" -#: howto/index.rst:45 +#: howto/index.rst:49 msgid ":ref:`ipaddress-howto`" msgstr ":ref:`ipaddress-howto`" -#: howto/index.rst:46 +#: howto/index.rst:50 msgid ":ref:`logging-howto`" msgstr ":ref:`logging-howto`" -#: howto/index.rst:47 +#: howto/index.rst:51 msgid ":ref:`logging-cookbook`" msgstr ":ref:`logging-cookbook`" -#: howto/index.rst:48 +#: howto/index.rst:52 msgid ":ref:`regex-howto`" msgstr ":ref:`regex-howto`" -#: howto/index.rst:49 +#: howto/index.rst:53 msgid ":ref:`sortinghowto`" msgstr ":ref:`sortinghowto`" -#: howto/index.rst:50 +#: howto/index.rst:54 msgid ":ref:`unicode-howto`" msgstr ":ref:`unicode-howto`" -#: howto/index.rst:51 +#: howto/index.rst:55 msgid ":ref:`urllib-howto`" msgstr ":ref:`urllib-howto`" -#: howto/index.rst:53 +#: howto/index.rst:57 msgid "Advanced development:" msgstr "Προχωρημένη ανάπτυξη:" -#: howto/index.rst:55 +#: howto/index.rst:59 msgid ":ref:`curses-howto`" msgstr ":ref:`curses-howto`" -#: howto/index.rst:56 +#: howto/index.rst:60 msgid ":ref:`freethreading-python-howto`" msgstr ":ref:`freethreading-python-howto`" -#: howto/index.rst:57 +#: howto/index.rst:61 msgid ":ref:`freethreading-extensions-howto`" msgstr ":ref:`freethreading-extensions-howto`" -#: howto/index.rst:58 +#: howto/index.rst:62 msgid ":ref:`isolating-extensions-howto`" msgstr ":ref:`isolating-extensions-howto`" -#: howto/index.rst:59 +#: howto/index.rst:63 msgid ":ref:`python_2.3_mro`" msgstr ":ref:`python_2.3_mro`" -#: howto/index.rst:60 +#: howto/index.rst:64 msgid ":ref:`socket-howto`" msgstr ":ref:`socket-howto`" -#: howto/index.rst:61 +#: howto/index.rst:65 msgid ":ref:`timerfd-howto`" msgstr ":ref:`timerfd-howto`" -#: howto/index.rst:62 +#: howto/index.rst:66 msgid ":ref:`cporting-howto`" msgstr ":ref:`cporting-howto`" -#: howto/index.rst:64 +#: howto/index.rst:68 msgid "Debugging and profiling:" msgstr "Αποσφαλμάτωση και σκιαγράφηση:" -#: howto/index.rst:66 +#: howto/index.rst:70 msgid ":ref:`gdb`" msgstr ":ref:`gdb`" -#: howto/index.rst:67 +#: howto/index.rst:71 msgid ":ref:`instrumentation`" msgstr ":ref:`instrumentation`" -#: howto/index.rst:68 +#: howto/index.rst:72 msgid ":ref:`perf_profiling`" msgstr ":ref:`perf_profiling`" diff --git a/howto/instrumentation.po b/howto/instrumentation.po index 4840d338..705f47fb 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 0d4bb507..bd3bf0ef 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ccb2a47b..a09bbb34 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -254,8 +254,8 @@ msgstr "" msgid "" "If it is necessary to use process-global state, the simplest way to avoid " "issues with multiple interpreters is to explicitly prevent a module from " -"being loaded more than once per process—see `Opt-Out: Limiting to One Module " -"Object per Process`_." +"being loaded more than once per process—see :ref:`isolating-extensions-" +"optout`." msgstr "" #: howto/isolating-extensions.rst:175 @@ -311,11 +311,11 @@ msgid "" "c>`__; example module initialization shown at the bottom of the file." msgstr "" -#: howto/isolating-extensions.rst:211 +#: howto/isolating-extensions.rst:213 msgid "Opt-Out: Limiting to One Module Object per Process" msgstr "" -#: howto/isolating-extensions.rst:213 +#: howto/isolating-extensions.rst:215 msgid "" "A non-negative ``PyModuleDef.m_size`` signals that a module supports " "multiple interpreters correctly. If this is not yet the case for your " @@ -323,35 +323,51 @@ msgid "" "For example::" msgstr "" -#: howto/isolating-extensions.rst:218 +#: howto/isolating-extensions.rst:220 msgid "" +"// A process-wide flag\n" "static int loaded = 0;\n" "\n" +"// Mutex to provide thread safety (only needed for free-threaded Python)\n" +"static PyMutex modinit_mutex = {0};\n" +"\n" "static int\n" "exec_module(PyObject* module)\n" "{\n" +" PyMutex_Lock(&modinit_mutex);\n" " if (loaded) {\n" +" PyMutex_Unlock(&modinit_mutex);\n" " PyErr_SetString(PyExc_ImportError,\n" " \"cannot load module more than once per process\");\n" " return -1;\n" " }\n" " loaded = 1;\n" +" PyMutex_Unlock(&modinit_mutex);\n" " // ... rest of initialization\n" "}" msgstr "" -#: howto/isolating-extensions.rst:234 +#: howto/isolating-extensions.rst:242 +msgid "" +"If your module's :c:member:`PyModuleDef.m_clear` function is able to prepare " +"for future re-initialization, it should clear the ``loaded`` flag. In this " +"case, your module won't support multiple instances existing *concurrently*, " +"but it will, for example, support being loaded after Python runtime shutdown " +"(:c:func:`Py_FinalizeEx`) and re-initialization (:c:func:`Py_Initialize`)." +msgstr "" + +#: howto/isolating-extensions.rst:251 msgid "Module State Access from Functions" msgstr "" -#: howto/isolating-extensions.rst:236 +#: howto/isolating-extensions.rst:253 msgid "" "Accessing the state from module-level functions is straightforward. " "Functions get the module object as their first argument; for extracting the " "state, you can use ``PyModule_GetState``::" msgstr "" -#: howto/isolating-extensions.rst:240 +#: howto/isolating-extensions.rst:257 msgid "" "static PyObject *\n" "func(PyObject *module, PyObject *args)\n" @@ -364,25 +380,25 @@ msgid "" "}" msgstr "" -#: howto/isolating-extensions.rst:251 +#: howto/isolating-extensions.rst:268 msgid "" "``PyModule_GetState`` may return ``NULL`` without setting an exception if " "there is no module state, i.e. ``PyModuleDef.m_size`` was zero. In your own " "module, you're in control of ``m_size``, so this is easy to prevent." msgstr "" -#: howto/isolating-extensions.rst:258 +#: howto/isolating-extensions.rst:275 msgid "Heap Types" msgstr "" -#: howto/isolating-extensions.rst:260 +#: howto/isolating-extensions.rst:277 msgid "" "Traditionally, types defined in C code are *static*; that is, ``static " "PyTypeObject`` structures defined directly in code and initialized using " "``PyType_Ready()``." msgstr "" -#: howto/isolating-extensions.rst:264 +#: howto/isolating-extensions.rst:281 msgid "" "Such types are necessarily shared across the process. Sharing them between " "module objects requires paying attention to any state they own or access. To " @@ -390,7 +406,7 @@ msgid "" "for example, you can't set ``str.myattribute = 123``." msgstr "" -#: howto/isolating-extensions.rst:270 +#: howto/isolating-extensions.rst:287 msgid "" "Sharing truly immutable objects between interpreters is fine, as long as " "they don't provide access to mutable objects. However, in CPython, every " @@ -400,7 +416,7 @@ msgid "" "process-wide GIL." msgstr "" -#: howto/isolating-extensions.rst:277 +#: howto/isolating-extensions.rst:294 msgid "" "Because they are immutable and process-global, static types cannot access " "\"their\" module state. If any method of such a type requires access to " @@ -409,15 +425,15 @@ msgid "" "Python's ``class`` statement." msgstr "" -#: howto/isolating-extensions.rst:284 +#: howto/isolating-extensions.rst:301 msgid "For new modules, using heap types by default is a good rule of thumb." msgstr "" -#: howto/isolating-extensions.rst:288 +#: howto/isolating-extensions.rst:305 msgid "Changing Static Types to Heap Types" msgstr "" -#: howto/isolating-extensions.rst:290 +#: howto/isolating-extensions.rst:307 msgid "" "Static types can be converted to heap types, but note that the heap type API " "was not designed for \"lossless\" conversion from static types—that is, " @@ -427,101 +443,101 @@ msgid "" "slots). Always test the details that are important to you." msgstr "" -#: howto/isolating-extensions.rst:299 +#: howto/isolating-extensions.rst:316 msgid "" "Watch out for the following two points in particular (but note that this is " "not a comprehensive list):" msgstr "" -#: howto/isolating-extensions.rst:302 +#: howto/isolating-extensions.rst:319 msgid "" "Unlike static types, heap type objects are mutable by default. Use the :c:" "macro:`Py_TPFLAGS_IMMUTABLETYPE` flag to prevent mutability." msgstr "" -#: howto/isolating-extensions.rst:304 +#: howto/isolating-extensions.rst:321 msgid "" "Heap types inherit :c:member:`~PyTypeObject.tp_new` by default, so it may " "become possible to instantiate them from Python code. You can prevent this " "with the :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag." msgstr "" -#: howto/isolating-extensions.rst:310 +#: howto/isolating-extensions.rst:327 msgid "Defining Heap Types" msgstr "" -#: howto/isolating-extensions.rst:312 +#: howto/isolating-extensions.rst:329 msgid "" "Heap types can be created by filling a :c:struct:`PyType_Spec` structure, a " "description or \"blueprint\" of a class, and calling :c:func:" "`PyType_FromModuleAndSpec` to construct a new class object." msgstr "" -#: howto/isolating-extensions.rst:317 +#: howto/isolating-extensions.rst:334 msgid "" "Other functions, like :c:func:`PyType_FromSpec`, can also create heap types, " "but :c:func:`PyType_FromModuleAndSpec` associates the module with the class, " "allowing access to the module state from methods." msgstr "" -#: howto/isolating-extensions.rst:321 +#: howto/isolating-extensions.rst:338 msgid "" "The class should generally be stored in *both* the module state (for safe " "access from C) and the module's ``__dict__`` (for access from Python code)." msgstr "" -#: howto/isolating-extensions.rst:327 +#: howto/isolating-extensions.rst:344 msgid "Garbage-Collection Protocol" msgstr "" -#: howto/isolating-extensions.rst:329 +#: howto/isolating-extensions.rst:346 msgid "" "Instances of heap types hold a reference to their type. This ensures that " "the type isn't destroyed before all its instances are, but may result in " "reference cycles that need to be broken by the garbage collector." msgstr "" -#: howto/isolating-extensions.rst:334 +#: howto/isolating-extensions.rst:351 msgid "" "To avoid memory leaks, instances of heap types must implement the garbage " "collection protocol. That is, heap types should:" msgstr "" -#: howto/isolating-extensions.rst:338 +#: howto/isolating-extensions.rst:355 msgid "Have the :c:macro:`Py_TPFLAGS_HAVE_GC` flag." msgstr "" -#: howto/isolating-extensions.rst:339 +#: 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))``)." msgstr "" -#: howto/isolating-extensions.rst:342 +#: howto/isolating-extensions.rst:359 msgid "" "Please refer to the documentation of :c:macro:`Py_TPFLAGS_HAVE_GC` and :c:" "member:`~PyTypeObject.tp_traverse` for additional considerations." msgstr "" -#: howto/isolating-extensions.rst:346 +#: howto/isolating-extensions.rst:363 msgid "" "The API for defining heap types grew organically, leaving it somewhat " "awkward to use in its current state. The following sections will guide you " "through common issues." msgstr "" -#: howto/isolating-extensions.rst:352 +#: howto/isolating-extensions.rst:369 msgid "``tp_traverse`` in Python 3.8 and lower" msgstr "" -#: howto/isolating-extensions.rst:354 +#: howto/isolating-extensions.rst:371 msgid "" "The requirement to visit the type from ``tp_traverse`` was added in Python " "3.9. If you support Python 3.8 and lower, the traverse function must *not* " "visit the type, so it must be more complicated::" msgstr "" -#: howto/isolating-extensions.rst:358 +#: howto/isolating-extensions.rst:375 msgid "" "static int my_traverse(PyObject *self, visitproc visit, void *arg)\n" "{\n" @@ -532,27 +548,27 @@ msgid "" "}" msgstr "" -#: howto/isolating-extensions.rst:366 +#: howto/isolating-extensions.rst:383 msgid "" "Unfortunately, :c:data:`Py_Version` was only added in Python 3.11. As a " "replacement, use:" msgstr "" -#: howto/isolating-extensions.rst:369 +#: howto/isolating-extensions.rst:386 msgid ":c:macro:`PY_VERSION_HEX`, if not using the stable ABI, or" msgstr "" -#: howto/isolating-extensions.rst:370 +#: howto/isolating-extensions.rst:387 msgid "" ":py:data:`sys.version_info` (via :c:func:`PySys_GetObject` and :c:func:" "`PyArg_ParseTuple`)." msgstr "" -#: howto/isolating-extensions.rst:375 +#: howto/isolating-extensions.rst:392 msgid "Delegating ``tp_traverse``" msgstr "" -#: howto/isolating-extensions.rst:377 +#: howto/isolating-extensions.rst:394 msgid "" "If your traverse function delegates to the :c:member:`~PyTypeObject." "tp_traverse` of its base class (or another type), ensure that " @@ -560,19 +576,19 @@ msgid "" "expected to visit the type in ``tp_traverse``." msgstr "" -#: howto/isolating-extensions.rst:382 +#: howto/isolating-extensions.rst:399 msgid "For example, if your traverse function includes::" msgstr "" -#: howto/isolating-extensions.rst:384 +#: howto/isolating-extensions.rst:401 msgid "base->tp_traverse(self, visit, arg)" msgstr "" -#: howto/isolating-extensions.rst:386 +#: howto/isolating-extensions.rst:403 msgid "...and ``base`` may be a static type, then it should also include::" msgstr "" -#: howto/isolating-extensions.rst:388 +#: howto/isolating-extensions.rst:405 msgid "" "if (base->tp_flags & Py_TPFLAGS_HEAPTYPE) {\n" " // a heap type's tp_traverse already visited Py_TYPE(self)\n" @@ -583,38 +599,38 @@ msgid "" "}" msgstr "" -#: howto/isolating-extensions.rst:396 +#: howto/isolating-extensions.rst:413 msgid "" "It is not necessary to handle the type's reference count in :c:member:" "`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_clear`." msgstr "" -#: howto/isolating-extensions.rst:401 +#: howto/isolating-extensions.rst:418 msgid "Defining ``tp_dealloc``" msgstr "" -#: howto/isolating-extensions.rst:403 +#: howto/isolating-extensions.rst:420 msgid "" "If your type has a custom :c:member:`~PyTypeObject.tp_dealloc` function, it " "needs to:" msgstr "" -#: howto/isolating-extensions.rst:406 +#: howto/isolating-extensions.rst:423 msgid "" "call :c:func:`PyObject_GC_UnTrack` before any fields are invalidated, and" msgstr "" -#: howto/isolating-extensions.rst:407 +#: howto/isolating-extensions.rst:424 msgid "decrement the reference count of the type." msgstr "" -#: howto/isolating-extensions.rst:409 +#: howto/isolating-extensions.rst:426 msgid "" "To keep the type valid while ``tp_free`` is called, the type's refcount " "needs to be decremented *after* the instance is deallocated. For example::" msgstr "" -#: howto/isolating-extensions.rst:412 +#: howto/isolating-extensions.rst:429 msgid "" "static void my_dealloc(PyObject *self)\n" "{\n" @@ -626,81 +642,81 @@ msgid "" "}" msgstr "" -#: howto/isolating-extensions.rst:421 +#: howto/isolating-extensions.rst:438 msgid "" "The default ``tp_dealloc`` function does this, so if your type does *not* " "override ``tp_dealloc`` you don't need to add it." msgstr "" -#: howto/isolating-extensions.rst:427 +#: howto/isolating-extensions.rst:444 msgid "Not overriding ``tp_free``" msgstr "" -#: howto/isolating-extensions.rst:429 +#: howto/isolating-extensions.rst:446 msgid "" "The :c:member:`~PyTypeObject.tp_free` slot of a heap type must be set to :c:" "func:`PyObject_GC_Del`. This is the default; do not override it." msgstr "" -#: howto/isolating-extensions.rst:435 +#: howto/isolating-extensions.rst:452 msgid "Avoiding ``PyObject_New``" msgstr "" -#: howto/isolating-extensions.rst:437 +#: howto/isolating-extensions.rst:454 msgid "GC-tracked objects need to be allocated using GC-aware functions." msgstr "" -#: howto/isolating-extensions.rst:439 -msgid "If you use use :c:func:`PyObject_New` or :c:func:`PyObject_NewVar`:" +#: howto/isolating-extensions.rst:456 +msgid "If you use :c:func:`PyObject_New` or :c:func:`PyObject_NewVar`:" msgstr "" -#: howto/isolating-extensions.rst:441 +#: howto/isolating-extensions.rst:458 msgid "" "Get and call type's :c:member:`~PyTypeObject.tp_alloc` slot, if possible. " "That is, replace ``TYPE *o = PyObject_New(TYPE, typeobj)`` with::" msgstr "" -#: howto/isolating-extensions.rst:444 +#: howto/isolating-extensions.rst:461 msgid "TYPE *o = typeobj->tp_alloc(typeobj, 0);" msgstr "" -#: howto/isolating-extensions.rst:446 +#: howto/isolating-extensions.rst:463 msgid "" "Replace ``o = PyObject_NewVar(TYPE, typeobj, size)`` with the same, but use " "size instead of the 0." msgstr "" -#: howto/isolating-extensions.rst:449 +#: howto/isolating-extensions.rst:466 msgid "" "If the above is not possible (e.g. inside a custom ``tp_alloc``), call :c:" "func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar`::" msgstr "" -#: howto/isolating-extensions.rst:452 +#: howto/isolating-extensions.rst:469 msgid "" "TYPE *o = PyObject_GC_New(TYPE, typeobj);\n" "\n" "TYPE *o = PyObject_GC_NewVar(TYPE, typeobj, size);" msgstr "" -#: howto/isolating-extensions.rst:458 +#: howto/isolating-extensions.rst:475 msgid "Module State Access from Classes" msgstr "" -#: howto/isolating-extensions.rst:460 +#: howto/isolating-extensions.rst:477 msgid "" "If you have a type object defined with :c:func:`PyType_FromModuleAndSpec`, " "you can call :c:func:`PyType_GetModule` to get the associated module, and " "then :c:func:`PyModule_GetState` to get the module's state." msgstr "" -#: howto/isolating-extensions.rst:464 +#: howto/isolating-extensions.rst:481 msgid "" "To save a some tedious error-handling boilerplate code, you can combine " "these two steps with :c:func:`PyType_GetModuleState`, resulting in::" msgstr "" -#: howto/isolating-extensions.rst:467 +#: howto/isolating-extensions.rst:484 msgid "" "my_struct *state = (my_struct*)PyType_GetModuleState(type);\n" "if (state == NULL) {\n" @@ -708,11 +724,11 @@ msgid "" "}" msgstr "" -#: howto/isolating-extensions.rst:474 +#: howto/isolating-extensions.rst:491 msgid "Module State Access from Regular Methods" msgstr "" -#: howto/isolating-extensions.rst:476 +#: howto/isolating-extensions.rst:493 msgid "" "Accessing the module-level state from methods of a class is somewhat more " "complicated, but is possible thanks to API introduced in Python 3.9. To get " @@ -720,27 +736,27 @@ msgid "" "module state from it." msgstr "" -#: howto/isolating-extensions.rst:481 +#: howto/isolating-extensions.rst:498 msgid "" "The largest roadblock is getting *the class a method was defined in*, or " "that method's \"defining class\" for short. The defining class can have a " "reference to the module it is part of." msgstr "" -#: howto/isolating-extensions.rst:485 +#: howto/isolating-extensions.rst:502 msgid "" "Do not confuse the defining class with ``Py_TYPE(self)``. If the method is " "called on a *subclass* of your type, ``Py_TYPE(self)`` will refer to that " "subclass, which may be defined in different module than yours." msgstr "" -#: howto/isolating-extensions.rst:490 +#: howto/isolating-extensions.rst:507 msgid "" "The following Python code can illustrate the concept. ``Base." "get_defining_class`` returns ``Base`` even if ``type(self) == Sub``:" msgstr "" -#: howto/isolating-extensions.rst:494 +#: howto/isolating-extensions.rst:511 msgid "" "class Base:\n" " def get_type_of_self(self):\n" @@ -753,7 +769,7 @@ msgid "" " pass" msgstr "" -#: howto/isolating-extensions.rst:506 +#: howto/isolating-extensions.rst:523 msgid "" "For a method to get its \"defining class\", it must use the :ref:" "`METH_METHOD | METH_FASTCALL | METH_KEYWORDS `__." +"Discussions about improving the situation are best held on the `discuss " +"forum under c-api tag `__." msgstr "" -#: howto/isolating-extensions.rst:617 +#: howto/isolating-extensions.rst:633 msgid "Per-Class Scope" msgstr "" -#: howto/isolating-extensions.rst:619 +#: 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 " @@ -904,11 +919,11 @@ msgid "" "per-class scope)." msgstr "" -#: howto/isolating-extensions.rst:626 +#: howto/isolating-extensions.rst:642 msgid "Lossless Conversion to Heap Types" msgstr "" -#: howto/isolating-extensions.rst:628 +#: 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 a6898f62..4b55de1f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -5059,11 +5059,137 @@ msgid "" "WARNING:demo:ZeroDivisionError: division by zero" msgstr "" -#: howto/logging-cookbook.rst:4072 +#: howto/logging-cookbook.rst:4069 +msgid "How to uniformly handle newlines in logging output" +msgstr "" + +#: howto/logging-cookbook.rst:4071 +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:4079 +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:4097 +msgid "You can use the mixin as in the following script:" +msgstr "" + +#: howto/logging-cookbook.rst:4099 +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:4118 +msgid "The script, when run, prints something like:" +msgstr "" + +#: howto/logging-cookbook.rst:4120 +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:4130 +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:4134 +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:4154 +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:4157 +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:4164 +msgid "" +"Escaping behaviour can't be the stdlib default , as it would break backwards " +"compatibility." +msgstr "" + +#: howto/logging-cookbook.rst:4170 msgid "Patterns to avoid" msgstr "" -#: howto/logging-cookbook.rst:4074 +#: howto/logging-cookbook.rst:4172 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 " @@ -5071,11 +5197,11 @@ msgid "" "The following sections are in no particular order." msgstr "" -#: howto/logging-cookbook.rst:4080 +#: howto/logging-cookbook.rst:4178 msgid "Opening the same log file multiple times" msgstr "" -#: howto/logging-cookbook.rst:4082 +#: howto/logging-cookbook.rst:4180 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. " @@ -5083,32 +5209,32 @@ msgid "" "file multiple times. This could be done accidentally, for example by:" msgstr "" -#: howto/logging-cookbook.rst:4087 +#: howto/logging-cookbook.rst:4185 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:4090 +#: howto/logging-cookbook.rst:4188 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:4093 +#: howto/logging-cookbook.rst:4191 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:4097 +#: howto/logging-cookbook.rst:4195 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:4100 +#: howto/logging-cookbook.rst:4198 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 " @@ -5117,7 +5243,7 @@ msgid "" "different handler instances which happen to point to the same file." msgstr "" -#: howto/logging-cookbook.rst:4106 +#: howto/logging-cookbook.rst:4204 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 " @@ -5127,17 +5253,17 @@ msgid "" "being supposedly in place." msgstr "" -#: howto/logging-cookbook.rst:4113 +#: howto/logging-cookbook.rst:4211 msgid "" "Use the techniques outlined in :ref:`multiple-processes` to circumvent such " "issues." msgstr "" -#: howto/logging-cookbook.rst:4117 +#: howto/logging-cookbook.rst:4215 msgid "Using loggers as attributes in a class or passing them as parameters" msgstr "" -#: howto/logging-cookbook.rst:4119 +#: howto/logging-cookbook.rst:4217 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 " @@ -5148,13 +5274,13 @@ msgid "" "module (and not the class) is the unit of software decomposition." msgstr "" -#: howto/logging-cookbook.rst:4128 +#: howto/logging-cookbook.rst:4226 msgid "" "Adding handlers other than :class:`~logging.NullHandler` to a logger in a " "library" msgstr "" -#: howto/logging-cookbook.rst:4130 +#: howto/logging-cookbook.rst:4228 msgid "" "Configuring logging by adding handlers, formatters and filters is the " "responsibility of the application developer, not the library developer. If " @@ -5162,11 +5288,11 @@ msgid "" "your loggers other than a :class:`~logging.NullHandler` instance." msgstr "" -#: howto/logging-cookbook.rst:4136 +#: howto/logging-cookbook.rst:4234 msgid "Creating a lot of loggers" msgstr "" -#: howto/logging-cookbook.rst:4138 +#: howto/logging-cookbook.rst:4236 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. " @@ -5177,38 +5303,38 @@ msgid "" "occasionally slightly more fine-grained than that)." msgstr "" -#: howto/logging-cookbook.rst:4149 +#: howto/logging-cookbook.rst:4247 msgid "Other resources" msgstr "" -#: howto/logging-cookbook.rst:4153 +#: howto/logging-cookbook.rst:4251 msgid "Module :mod:`logging`" msgstr "" -#: howto/logging-cookbook.rst:4154 +#: howto/logging-cookbook.rst:4252 msgid "API reference for the logging module." msgstr "" -#: howto/logging-cookbook.rst:4156 +#: howto/logging-cookbook.rst:4254 msgid "Module :mod:`logging.config`" msgstr "" -#: howto/logging-cookbook.rst:4157 +#: howto/logging-cookbook.rst:4255 msgid "Configuration API for the logging module." msgstr "" -#: howto/logging-cookbook.rst:4159 +#: howto/logging-cookbook.rst:4257 msgid "Module :mod:`logging.handlers`" msgstr "" -#: howto/logging-cookbook.rst:4160 +#: howto/logging-cookbook.rst:4258 msgid "Useful handlers included with the logging module." msgstr "" -#: howto/logging-cookbook.rst:4162 +#: howto/logging-cookbook.rst:4260 msgid ":ref:`Basic Tutorial `" msgstr "" -#: howto/logging-cookbook.rst:4164 +#: howto/logging-cookbook.rst:4262 msgid ":ref:`Advanced Tutorial `" msgstr "" diff --git a/howto/logging.po b/howto/logging.po index 2aa102c4..4a8ce516 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b89977d7..00d91adf 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 f646772c..59b70716 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 4c7da2ad..d2c2da1c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 8d7d858b..792f14c5 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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:1065 +#: howto/regex.rst:417 howto/regex.rst:1069 msgid "Method/Attribute" msgstr "" -#: howto/regex.rst:417 howto/regex.rst:1065 +#: howto/regex.rst:417 howto/regex.rst:1069 msgid "Purpose" msgstr "" @@ -1687,17 +1687,21 @@ msgid "" msgstr "" #: howto/regex.rst:1016 +msgid "``.*[.][^b].*$``" +msgstr "" + +#: howto/regex.rst:1018 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:1020 +#: howto/regex.rst:1022 msgid "``.*[.]([^b]..|.[^a].|..[^t])$``" msgstr "" -#: howto/regex.rst:1022 +#: howto/regex.rst:1024 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 " @@ -1708,18 +1712,18 @@ msgid "" "pattern again in an effort to fix it." msgstr "" -#: howto/regex.rst:1030 +#: howto/regex.rst:1032 msgid "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" msgstr "" -#: howto/regex.rst:1032 +#: howto/regex.rst:1034 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:1036 +#: howto/regex.rst:1038 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 " @@ -1727,75 +1731,79 @@ msgid "" "complicated and confusing." msgstr "" -#: howto/regex.rst:1041 +#: howto/regex.rst:1043 msgid "A negative lookahead cuts through all this confusion:" msgstr "" -#: howto/regex.rst:1043 +#: howto/regex.rst:1045 +msgid "``.*[.](?!bat$)[^.]*$``" +msgstr "" + +#: howto/regex.rst:1047 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:1050 +#: howto/regex.rst:1054 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:1054 +#: howto/regex.rst:1058 msgid "``.*[.](?!bat$|exe$)[^.]*$``" msgstr "" -#: howto/regex.rst:1058 +#: howto/regex.rst:1062 msgid "Modifying Strings" msgstr "" -#: howto/regex.rst:1060 +#: howto/regex.rst:1064 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:1067 +#: howto/regex.rst:1071 msgid "``split()``" msgstr "" -#: howto/regex.rst:1067 +#: howto/regex.rst:1071 msgid "Split the string into a list, splitting it wherever the RE matches" msgstr "" -#: howto/regex.rst:1070 +#: howto/regex.rst:1074 msgid "``sub()``" msgstr "" -#: howto/regex.rst:1070 +#: howto/regex.rst:1074 msgid "" "Find all substrings where the RE matches, and replace them with a different " "string" msgstr "" -#: howto/regex.rst:1073 +#: howto/regex.rst:1077 msgid "``subn()``" msgstr "" -#: howto/regex.rst:1073 +#: howto/regex.rst:1077 msgid "" "Does the same thing as :meth:`!sub`, but returns the new string and the " "number of replacements" msgstr "" -#: howto/regex.rst:1080 +#: howto/regex.rst:1084 msgid "Splitting Strings" msgstr "" -#: howto/regex.rst:1082 +#: howto/regex.rst:1086 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 " @@ -1805,7 +1813,7 @@ msgid "" "module-level :func:`re.split` function, too." msgstr "" -#: howto/regex.rst:1093 +#: howto/regex.rst:1097 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 " @@ -1813,7 +1821,7 @@ msgid "" "splits are performed." msgstr "" -#: howto/regex.rst:1098 +#: howto/regex.rst:1102 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 " @@ -1822,7 +1830,7 @@ msgid "" "characters. ::" msgstr "" -#: howto/regex.rst:1104 +#: howto/regex.rst:1108 msgid "" ">>> p = re.compile(r'\\W+')\n" ">>> p.split('This is a test, short and sweet, of split().')\n" @@ -1831,7 +1839,7 @@ msgid "" "['This', 'is', 'a', 'test, short and sweet, of split().']" msgstr "" -#: howto/regex.rst:1110 +#: howto/regex.rst:1114 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 " @@ -1839,7 +1847,7 @@ msgid "" "Compare the following calls::" msgstr "" -#: howto/regex.rst:1115 +#: howto/regex.rst:1119 msgid "" ">>> p = re.compile(r'\\W+')\n" ">>> p2 = re.compile(r'(\\W+)')\n" @@ -1849,13 +1857,13 @@ msgid "" "['This', '... ', 'is', ' ', 'a', ' ', 'test', '.', '']" msgstr "" -#: howto/regex.rst:1122 +#: howto/regex.rst:1126 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:1125 +#: howto/regex.rst:1129 msgid "" ">>> re.split(r'[\\W]+', 'Words, words, words.')\n" "['Words', 'words', 'words', '']\n" @@ -1865,11 +1873,11 @@ msgid "" "['Words', 'words, words.']" msgstr "" -#: howto/regex.rst:1134 +#: howto/regex.rst:1138 msgid "Search and Replace" msgstr "" -#: howto/regex.rst:1136 +#: howto/regex.rst:1140 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 " @@ -1877,27 +1885,27 @@ msgid "" "string to be processed." msgstr "" -#: howto/regex.rst:1143 +#: howto/regex.rst:1147 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:1147 +#: howto/regex.rst:1151 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:1151 +#: howto/regex.rst:1155 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:1154 +#: howto/regex.rst:1158 msgid "" ">>> p = re.compile('(blue|white|red)')\n" ">>> p.sub('colour', 'blue socks and red shoes')\n" @@ -1906,14 +1914,14 @@ msgid "" "'colour socks and red shoes'" msgstr "" -#: howto/regex.rst:1160 +#: howto/regex.rst:1164 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:1163 +#: howto/regex.rst:1167 msgid "" ">>> p = re.compile('(blue|white|red)')\n" ">>> p.subn('colour', 'blue socks and red shoes')\n" @@ -1922,20 +1930,20 @@ msgid "" "('no colours at all', 0)" msgstr "" -#: howto/regex.rst:1169 +#: howto/regex.rst:1173 msgid "" "Empty matches are replaced only when they're not adjacent to a previous " "empty match. ::" msgstr "" -#: howto/regex.rst:1172 +#: howto/regex.rst:1176 msgid "" ">>> p = re.compile('x*')\n" ">>> p.sub('-', 'abxd')\n" "'-a-b--d-'" msgstr "" -#: howto/regex.rst:1176 +#: howto/regex.rst:1180 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 " @@ -1946,20 +1954,20 @@ msgid "" "string." msgstr "" -#: howto/regex.rst:1183 +#: howto/regex.rst:1187 msgid "" "This example matches the word ``section`` followed by a string enclosed in " "``{``, ``}``, and changes ``section`` to ``subsection``::" msgstr "" -#: howto/regex.rst:1186 +#: howto/regex.rst:1190 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:1190 +#: howto/regex.rst:1194 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 " @@ -1971,7 +1979,7 @@ msgid "" "but use all three variations of the replacement string. ::" msgstr "" -#: howto/regex.rst:1199 +#: howto/regex.rst:1203 msgid "" ">>> p = re.compile('section{ (?P [^}]* ) }', re.VERBOSE)\n" ">>> p.sub(r'subsection{\\1}','section{First}')\n" @@ -1982,7 +1990,7 @@ msgid "" "'subsection{First}'" msgstr "" -#: howto/regex.rst:1207 +#: howto/regex.rst:1211 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-" @@ -1991,13 +1999,13 @@ msgid "" "this information to compute the desired replacement string and return it." msgstr "" -#: howto/regex.rst:1213 +#: howto/regex.rst:1217 msgid "" "In the following example, the replacement function translates decimals into " "hexadecimal::" msgstr "" -#: howto/regex.rst:1216 +#: howto/regex.rst:1220 msgid "" ">>> def hexrepl(match):\n" "... \"Return the hex string for a decimal number\"\n" @@ -2009,7 +2017,7 @@ msgid "" "'Call 0xffd2 for printing, 0xc000 for user code.'" msgstr "" -#: howto/regex.rst:1225 +#: howto/regex.rst:1229 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 " @@ -2019,11 +2027,11 @@ msgid "" "x'``." msgstr "" -#: howto/regex.rst:1233 +#: howto/regex.rst:1237 msgid "Common Problems" msgstr "" -#: howto/regex.rst:1235 +#: howto/regex.rst:1239 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 " @@ -2031,11 +2039,11 @@ msgid "" "pitfalls." msgstr "" -#: howto/regex.rst:1241 +#: howto/regex.rst:1245 msgid "Use String Methods" msgstr "" -#: howto/regex.rst:1243 +#: howto/regex.rst:1247 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:" @@ -2047,7 +2055,7 @@ msgid "" "engine." msgstr "" -#: howto/regex.rst:1251 +#: howto/regex.rst:1255 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 " @@ -2060,7 +2068,7 @@ msgid "" "meth:`!replace`'s abilities.)" msgstr "" -#: howto/regex.rst:1260 +#: howto/regex.rst:1264 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 " @@ -2069,17 +2077,17 @@ msgid "" "operation can be." msgstr "" -#: howto/regex.rst:1266 +#: howto/regex.rst:1270 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:1271 +#: howto/regex.rst:1275 msgid "match() versus search()" msgstr "" -#: howto/regex.rst:1273 +#: howto/regex.rst:1277 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 " @@ -2089,7 +2097,7 @@ msgid "" "report it. ::" msgstr "" -#: howto/regex.rst:1279 +#: howto/regex.rst:1283 msgid "" ">>> print(re.match('super', 'superstition').span())\n" "(0, 5)\n" @@ -2097,13 +2105,13 @@ msgid "" "None" msgstr "" -#: howto/regex.rst:1284 +#: howto/regex.rst:1288 msgid "" "On the other hand, :func:`~re.search` will scan forward through the string, " "reporting the first match it finds. ::" msgstr "" -#: howto/regex.rst:1287 +#: howto/regex.rst:1291 msgid "" ">>> print(re.search('super', 'superstition').span())\n" "(0, 5)\n" @@ -2111,7 +2119,7 @@ msgid "" "(2, 7)" msgstr "" -#: howto/regex.rst:1292 +#: howto/regex.rst:1296 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." @@ -2123,18 +2131,18 @@ msgid "" "starting character, only trying the full match if a ``'C'`` is found." msgstr "" -#: howto/regex.rst:1301 +#: howto/regex.rst:1305 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:1307 +#: howto/regex.rst:1311 msgid "Greedy versus Non-Greedy" msgstr "" -#: howto/regex.rst:1309 +#: howto/regex.rst:1313 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 " @@ -2143,7 +2151,7 @@ msgid "" "HTML tag doesn't work because of the greedy nature of ``.*``. ::" msgstr "" -#: howto/regex.rst:1315 +#: howto/regex.rst:1319 msgid "" ">>> s = 'Title'\n" ">>> len(s)\n" @@ -2154,7 +2162,7 @@ msgid "" "Title" msgstr "" -#: howto/regex.rst:1323 +#: howto/regex.rst:1327 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 ``>`` " @@ -2164,7 +2172,7 @@ msgid "" "``''``, which isn't what you want." msgstr "" -#: howto/regex.rst:1330 +#: howto/regex.rst:1334 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 " @@ -2173,13 +2181,13 @@ msgid "" "retrying the ``'>'`` at every step. This produces just the right result::" msgstr "" -#: howto/regex.rst:1336 +#: howto/regex.rst:1340 msgid "" ">>> print(re.match('<.*?>', s).group())\n" "" msgstr "" -#: howto/regex.rst:1339 +#: howto/regex.rst:1343 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 " @@ -2189,11 +2197,11 @@ msgid "" "such tasks.)" msgstr "" -#: howto/regex.rst:1347 +#: howto/regex.rst:1351 msgid "Using re.VERBOSE" msgstr "" -#: howto/regex.rst:1349 +#: howto/regex.rst:1353 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 " @@ -2201,14 +2209,14 @@ msgid "" "making them difficult to read and understand." msgstr "" -#: howto/regex.rst:1354 +#: howto/regex.rst:1358 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:1358 +#: howto/regex.rst:1362 msgid "" "The ``re.VERBOSE`` flag has several effects. Whitespace in the regular " "expression that *isn't* inside a character class is ignored. This means " @@ -2219,7 +2227,7 @@ msgid "" "quoted strings, this enables REs to be formatted more neatly::" msgstr "" -#: howto/regex.rst:1366 +#: howto/regex.rst:1370 msgid "" "pat = re.compile(r\"\"\"\n" " \\s* # Skip leading whitespace\n" @@ -2231,19 +2239,19 @@ msgid "" "\"\"\", re.VERBOSE)" msgstr "" -#: howto/regex.rst:1375 +#: howto/regex.rst:1379 msgid "This is far more readable than::" msgstr "" -#: howto/regex.rst:1377 +#: howto/regex.rst:1381 msgid "pat = re.compile(r\"\\s*(?P
[^:]+)\\s*:(?P.*?)\\s*$\")" msgstr "" -#: howto/regex.rst:1381 +#: howto/regex.rst:1385 msgid "Feedback" msgstr "" -#: howto/regex.rst:1383 +#: howto/regex.rst:1387 msgid "" "Regular expressions are a complicated topic. Did this document help you " "understand them? Were there parts that were unclear, or Problems you " @@ -2251,7 +2259,7 @@ msgid "" "improvements to the author." msgstr "" -#: howto/regex.rst:1388 +#: howto/regex.rst:1392 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/sockets.po b/howto/sockets.po index bc832879..b8e570c1 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 5d9e1108..d0be4973 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 014086a6..9129e4bf 100644 --- a/howto/timerfd.po +++ b/howto/timerfd.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/howto/unicode.po b/howto/unicode.po index f0259707..9378917f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 0b9f531c..f43802cf 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -380,82 +380,37 @@ msgstr "" #: howto/urllib2.rst:247 msgid "" ":attr:`http.server.BaseHTTPRequestHandler.responses` is a useful dictionary " -"of response codes in that shows all the response codes used by :rfc:`2616`. " -"The dictionary is reproduced here for convenience ::" +"of response codes that shows all the response codes used by :rfc:`2616`. An " +"excerpt from the dictionary is shown below ::" msgstr "" #: howto/urllib2.rst:251 msgid "" -"# Table mapping response codes to messages; entries have the\n" -"# form {code: (shortmessage, longmessage)}.\n" "responses = {\n" -" 100: ('Continue', 'Request received, please continue'),\n" -" 101: ('Switching Protocols',\n" -" 'Switching to new protocol; obey Upgrade header'),\n" -"\n" -" 200: ('OK', 'Request fulfilled, document follows'),\n" -" 201: ('Created', 'Document created, URL follows'),\n" -" 202: ('Accepted',\n" -" 'Request accepted, processing continues off-line'),\n" -" 203: ('Non-Authoritative Information', 'Request fulfilled from cache'),\n" -" 204: ('No Content', 'Request fulfilled, nothing follows'),\n" -" 205: ('Reset Content', 'Clear input form for further input.'),\n" -" 206: ('Partial Content', 'Partial content follows.'),\n" -"\n" -" 300: ('Multiple Choices',\n" -" 'Object has several resources -- see URI list'),\n" -" 301: ('Moved Permanently', 'Object moved permanently -- see URI list'),\n" -" 302: ('Found', 'Object moved temporarily -- see URI list'),\n" -" 303: ('See Other', 'Object moved -- see Method and URL list'),\n" -" 304: ('Not Modified',\n" -" 'Document has not changed since given time'),\n" -" 305: ('Use Proxy',\n" -" 'You must use proxy specified in Location to access this '\n" -" 'resource.'),\n" -" 307: ('Temporary Redirect',\n" -" 'Object moved temporarily -- see URI list'),\n" -"\n" -" 400: ('Bad Request',\n" -" 'Bad request syntax or unsupported method'),\n" -" 401: ('Unauthorized',\n" -" 'No permission -- see authorization schemes'),\n" -" 402: ('Payment Required',\n" -" 'No payment -- see charging schemes'),\n" -" 403: ('Forbidden',\n" -" 'Request forbidden -- authorization will not help'),\n" -" 404: ('Not Found', 'Nothing matches the given URI'),\n" -" 405: ('Method Not Allowed',\n" -" 'Specified method is invalid for this server.'),\n" -" 406: ('Not Acceptable', 'URI not available in preferred format.'),\n" -" 407: ('Proxy Authentication Required', 'You must authenticate with '\n" -" 'this proxy before proceeding.'),\n" -" 408: ('Request Timeout', 'Request timed out; try again later.'),\n" -" 409: ('Conflict', 'Request conflict.'),\n" -" 410: ('Gone',\n" -" 'URI no longer exists and has been permanently removed.'),\n" -" 411: ('Length Required', 'Client must specify Content-Length.'),\n" -" 412: ('Precondition Failed', 'Precondition in headers is false.'),\n" -" 413: ('Request Entity Too Large', 'Entity is too large.'),\n" -" 414: ('Request-URI Too Long', 'URI is too long.'),\n" -" 415: ('Unsupported Media Type', 'Entity body in unsupported format.'),\n" -" 416: ('Requested Range Not Satisfiable',\n" -" 'Cannot satisfy request range.'),\n" -" 417: ('Expectation Failed',\n" -" 'Expect condition could not be satisfied.'),\n" -"\n" -" 500: ('Internal Server Error', 'Server got itself in trouble'),\n" -" 501: ('Not Implemented',\n" -" 'Server does not support this operation'),\n" -" 502: ('Bad Gateway', 'Invalid responses from another server/proxy.'),\n" -" 503: ('Service Unavailable',\n" -" 'The server cannot process the request due to a high load'),\n" -" 504: ('Gateway Timeout',\n" -" 'The gateway server did not receive a timely response'),\n" -" 505: ('HTTP Version Not Supported', 'Cannot fulfill request.'),\n" +" ...\n" +" : ('OK', 'Request fulfilled, document follows'),\n" +" ...\n" +" : ('Forbidden',\n" +" 'Request forbidden -- authorization will " +"'\n" +" 'not help'),\n" +" : ('Not Found',\n" +" 'Nothing matches the given URI'),\n" +" ...\n" +" : (\"I'm a Teapot\",\n" +" 'Server refuses to brew coffee because " +"'\n" +" 'it is a teapot'),\n" +" ...\n" +" : ('Service Unavailable',\n" +" 'The server cannot process the " +"'\n" +" 'request due to a high load'),\n" +" ...\n" " }" msgstr "" -#: howto/urllib2.rst:319 +#: howto/urllib2.rst:271 msgid "" "When an error is raised the server responds by returning an HTTP error code " "*and* an error page. You can use the :exc:`~urllib.error.HTTPError` instance " @@ -464,7 +419,7 @@ msgid "" "``urllib.response`` module::" msgstr "" -#: howto/urllib2.rst:324 +#: howto/urllib2.rst:276 msgid "" ">>> req = urllib.request.Request('http://www.python.org/fish.html')\n" ">>> try:\n" @@ -482,22 +437,22 @@ msgid "" " ..." msgstr "" -#: howto/urllib2.rst:339 +#: howto/urllib2.rst:291 msgid "Wrapping it Up" msgstr "" -#: howto/urllib2.rst:341 +#: howto/urllib2.rst:293 msgid "" "So if you want to be prepared for :exc:`~urllib.error.HTTPError` *or* :exc:" "`~urllib.error.URLError` there are two basic approaches. I prefer the second " "approach." msgstr "" -#: howto/urllib2.rst:345 +#: howto/urllib2.rst:297 msgid "Number 1" msgstr "" -#: howto/urllib2.rst:350 +#: howto/urllib2.rst:302 msgid "" "from urllib.request import Request, urlopen\n" "from urllib.error import URLError, HTTPError\n" @@ -514,17 +469,17 @@ msgid "" " # everything is fine" msgstr "" -#: howto/urllib2.rst:367 +#: howto/urllib2.rst:319 msgid "" "The ``except HTTPError`` *must* come first, otherwise ``except URLError`` " "will *also* catch an :exc:`~urllib.error.HTTPError`." msgstr "" -#: howto/urllib2.rst:371 +#: howto/urllib2.rst:323 msgid "Number 2" msgstr "" -#: howto/urllib2.rst:375 +#: howto/urllib2.rst:327 msgid "" "from urllib.request import Request, urlopen\n" "from urllib.error import URLError\n" @@ -542,18 +497,18 @@ msgid "" " # everything is fine" msgstr "" -#: howto/urllib2.rst:392 +#: howto/urllib2.rst:344 msgid "info and geturl" msgstr "" -#: howto/urllib2.rst:394 +#: howto/urllib2.rst:346 msgid "" "The response returned by urlopen (or the :exc:`~urllib.error.HTTPError` " "instance) has two useful methods :meth:`!info` and :meth:`!geturl` and is " "defined in the module :mod:`urllib.response`." msgstr "" -#: howto/urllib2.rst:398 +#: howto/urllib2.rst:350 msgid "" "**geturl** - this returns the real URL of the page fetched. This is useful " "because ``urlopen`` (or the opener object used) may have followed a " @@ -561,14 +516,14 @@ msgid "" "requested." msgstr "" -#: howto/urllib2.rst:402 +#: howto/urllib2.rst:354 msgid "" "**info** - this returns a dictionary-like object that describes the page " "fetched, particularly the headers sent by the server. It is currently an :" "class:`http.client.HTTPMessage` instance." msgstr "" -#: howto/urllib2.rst:406 +#: howto/urllib2.rst:358 msgid "" "Typical headers include 'Content-length', 'Content-type', and so on. See the " "`Quick Reference to HTTP Headers `_ for a " @@ -576,11 +531,11 @@ msgid "" "use." msgstr "" -#: howto/urllib2.rst:413 +#: howto/urllib2.rst:365 msgid "Openers and Handlers" msgstr "" -#: howto/urllib2.rst:415 +#: howto/urllib2.rst:367 msgid "" "When you fetch a URL you use an opener (an instance of the perhaps " "confusingly named :class:`urllib.request.OpenerDirector`). Normally we have " @@ -591,20 +546,20 @@ msgid "" "HTTP redirections or HTTP cookies." msgstr "" -#: howto/urllib2.rst:423 +#: howto/urllib2.rst:375 msgid "" "You will want to create openers if you want to fetch URLs with specific " "handlers installed, for example to get an opener that handles cookies, or to " "get an opener that does not handle redirections." msgstr "" -#: howto/urllib2.rst:427 +#: howto/urllib2.rst:379 msgid "" "To create an opener, instantiate an ``OpenerDirector``, and then call ``." "add_handler(some_handler_instance)`` repeatedly." msgstr "" -#: howto/urllib2.rst:430 +#: howto/urllib2.rst:382 msgid "" "Alternatively, you can use ``build_opener``, which is a convenience function " "for creating opener objects with a single function call. ``build_opener`` " @@ -612,31 +567,31 @@ msgid "" "or override the default handlers." msgstr "" -#: howto/urllib2.rst:435 +#: howto/urllib2.rst:387 msgid "" "Other sorts of handlers you might want to can handle proxies, " "authentication, and other common but slightly specialised situations." msgstr "" -#: howto/urllib2.rst:438 +#: howto/urllib2.rst:390 msgid "" "``install_opener`` can be used to make an ``opener`` object the (global) " "default opener. This means that calls to ``urlopen`` will use the opener you " "have installed." msgstr "" -#: howto/urllib2.rst:442 +#: howto/urllib2.rst:394 msgid "" "Opener objects have an ``open`` method, which can be called directly to " "fetch urls in the same way as the ``urlopen`` function: there's no need to " "call ``install_opener``, except as a convenience." msgstr "" -#: howto/urllib2.rst:448 +#: howto/urllib2.rst:400 msgid "Basic Authentication" msgstr "" -#: howto/urllib2.rst:450 +#: howto/urllib2.rst:402 msgid "" "To illustrate creating and installing a handler we will use the " "``HTTPBasicAuthHandler``. For a more detailed discussion of this subject -- " @@ -645,7 +600,7 @@ msgid "" "www.voidspace.org.uk/python/articles/authentication.shtml>`__." msgstr "" -#: howto/urllib2.rst:456 +#: howto/urllib2.rst:408 msgid "" "When authentication is required, the server sends a header (as well as the " "401 error code) requesting authentication. This specifies the " @@ -653,15 +608,15 @@ msgid "" "Authenticate: SCHEME realm=\"REALM\"``." msgstr "" -#: howto/urllib2.rst:461 +#: howto/urllib2.rst:413 msgid "e.g." msgstr "" -#: howto/urllib2.rst:463 +#: howto/urllib2.rst:415 msgid "WWW-Authenticate: Basic realm=\"cPanel Users\"" msgstr "" -#: howto/urllib2.rst:468 +#: howto/urllib2.rst:420 msgid "" "The client should then retry the request with the appropriate name and " "password for the realm included as a header in the request. This is 'basic " @@ -669,7 +624,7 @@ msgid "" "of ``HTTPBasicAuthHandler`` and an opener to use this handler." msgstr "" -#: howto/urllib2.rst:473 +#: howto/urllib2.rst:425 msgid "" "The ``HTTPBasicAuthHandler`` uses an object called a password manager to " "handle the mapping of URLs and realms to passwords and usernames. If you " @@ -682,13 +637,13 @@ msgid "" "by providing ``None`` as the realm argument to the ``add_password`` method." msgstr "" -#: howto/urllib2.rst:483 +#: howto/urllib2.rst:435 msgid "" "The top-level URL is the first URL that requires authentication. URLs " "\"deeper\" than the URL you pass to .add_password() will also match. ::" msgstr "" -#: howto/urllib2.rst:486 +#: howto/urllib2.rst:438 msgid "" "# create a password manager\n" "password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()\n" @@ -711,7 +666,7 @@ msgid "" "urllib.request.install_opener(opener)" msgstr "" -#: howto/urllib2.rst:508 +#: howto/urllib2.rst:460 msgid "" "In the above example we only supplied our ``HTTPBasicAuthHandler`` to " "``build_opener``. By default openers have the handlers for normal situations " @@ -721,7 +676,7 @@ msgid "" "``FileHandler``, ``DataHandler``, ``HTTPErrorProcessor``." msgstr "" -#: howto/urllib2.rst:515 +#: howto/urllib2.rst:467 msgid "" "``top_level_url`` is in fact *either* a full URL (including the 'http:' " "scheme component and the hostname and optionally the port number) e.g. " @@ -732,11 +687,11 @@ msgid "" "example ``\"joe:password@example.com\"`` is not correct." msgstr "" -#: howto/urllib2.rst:525 +#: howto/urllib2.rst:477 msgid "Proxies" msgstr "" -#: howto/urllib2.rst:527 +#: howto/urllib2.rst:479 msgid "" "**urllib** will auto-detect your proxy settings and use those. This is " "through the ``ProxyHandler``, which is part of the normal handler chain when " @@ -746,37 +701,37 @@ msgid "" "similar steps to setting up a `Basic Authentication`_ handler: ::" msgstr "" -#: howto/urllib2.rst:534 +#: howto/urllib2.rst:486 msgid "" ">>> proxy_support = urllib.request.ProxyHandler({})\n" ">>> opener = urllib.request.build_opener(proxy_support)\n" ">>> urllib.request.install_opener(opener)" msgstr "" -#: howto/urllib2.rst:540 +#: howto/urllib2.rst:492 msgid "" "Currently ``urllib.request`` *does not* support fetching of ``https`` " "locations through a proxy. However, this can be enabled by extending urllib." "request as shown in the recipe [#]_." msgstr "" -#: howto/urllib2.rst:546 +#: howto/urllib2.rst:498 msgid "" "``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see " "the documentation on :func:`~urllib.request.getproxies`." msgstr "" -#: howto/urllib2.rst:551 +#: howto/urllib2.rst:503 msgid "Sockets and Layers" msgstr "" -#: howto/urllib2.rst:553 +#: howto/urllib2.rst:505 msgid "" "The Python support for fetching resources from the web is layered. urllib " "uses the :mod:`http.client` library, which in turn uses the socket library." msgstr "" -#: howto/urllib2.rst:556 +#: howto/urllib2.rst:508 msgid "" "As of Python 2.3 you can specify how long a socket should wait for a " "response before timing out. This can be useful in applications which have to " @@ -786,7 +741,7 @@ msgid "" "sockets using ::" msgstr "" -#: howto/urllib2.rst:562 +#: howto/urllib2.rst:514 msgid "" "import socket\n" "import urllib.request\n" @@ -801,38 +756,38 @@ msgid "" "response = urllib.request.urlopen(req)" msgstr "" -#: howto/urllib2.rst:579 +#: howto/urllib2.rst:531 msgid "Footnotes" msgstr "" -#: howto/urllib2.rst:581 +#: howto/urllib2.rst:533 msgid "This document was reviewed and revised by John Lee." msgstr "" -#: howto/urllib2.rst:583 +#: howto/urllib2.rst:535 msgid "Google for example." msgstr "" -#: howto/urllib2.rst:584 +#: howto/urllib2.rst:536 msgid "" "Browser sniffing is a very bad practice for website design - building sites " "using web standards is much more sensible. Unfortunately a lot of sites " "still send different versions to different browsers." msgstr "" -#: howto/urllib2.rst:587 +#: howto/urllib2.rst:539 msgid "" "The user agent for MSIE 6 is *'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT " "5.1; SV1; .NET CLR 1.1.4322)'*" msgstr "" -#: howto/urllib2.rst:589 +#: howto/urllib2.rst:541 msgid "" "For details of more HTTP request headers, see `Quick Reference to HTTP " "Headers`_." msgstr "" -#: howto/urllib2.rst:591 +#: howto/urllib2.rst:543 msgid "" "In my case I have to use a proxy to access the internet at work. If you " "attempt to fetch *localhost* URLs through this proxy it blocks them. IE is " @@ -840,7 +795,7 @@ msgid "" "with a localhost server, I have to prevent urllib from using the proxy." msgstr "" -#: howto/urllib2.rst:596 +#: howto/urllib2.rst:548 msgid "" "urllib opener for SSL proxy (CONNECT method): `ASPN Cookbook Recipe \n" "Language-Team: LANGUAGE \n" diff --git a/library/__future__.po b/library/__future__.po index 4d3970dd..60c84724 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -74,163 +74,127 @@ 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 -msgid "TBD [1]_" +#: library/__future__.rst:83 +msgid "Never [1]_" msgstr "" -#: library/__future__.rst:67 +#: library/__future__.rst:84 msgid ":pep:`563`: *Postponed evaluation of annotations*" msgstr "" -#: library/__future__.rst:77 +#: library/__future__.rst:92 msgid "Each statement in :file:`__future__.py` is of the form::" msgstr "" -#: library/__future__.rst:79 +#: library/__future__.rst:94 msgid "" "FeatureName = _Feature(OptionalRelease, MandatoryRelease,\n" " CompilerFlag)" msgstr "" -#: library/__future__.rst:82 +#: library/__future__.rst:97 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:85 +#: library/__future__.rst:100 msgid "" "(PY_MAJOR_VERSION, # the 2 in 2.1.0a3; an int\n" " PY_MINOR_VERSION, # the 1; an int\n" @@ -241,20 +205,20 @@ msgid "" ")" msgstr "" -#: library/__future__.rst:94 +#: library/__future__.rst:109 msgid "" "*OptionalRelease* records the first release in which the feature was " "accepted." msgstr "" -#: library/__future__.rst:98 +#: library/__future__.rst:113 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:102 +#: library/__future__.rst:117 msgid "" "Else *MandatoryRelease* records when the feature became part of the " "language; in releases at or after that, modules no longer need a future " @@ -262,13 +226,13 @@ msgid "" "imports." msgstr "" -#: library/__future__.rst:106 +#: library/__future__.rst:121 msgid "" "*MandatoryRelease* may also be ``None``, meaning that a planned feature got " "dropped or that it is not yet decided." msgstr "" -#: library/__future__.rst:111 +#: library/__future__.rst:126 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 " @@ -276,7 +240,7 @@ msgid "" "compiler_flag` attribute on :class:`_Feature` instances." msgstr "" -#: library/__future__.rst:117 +#: library/__future__.rst:132 msgid "" "``from __future__ import annotations`` was previously scheduled to become " "mandatory in Python 3.10, but the Python Steering Council twice decided to " @@ -287,18 +251,18 @@ msgid "" "final decision has been made yet. See also :pep:`563` and :pep:`649`." msgstr "" -#: library/__future__.rst:127 +#: library/__future__.rst:142 msgid ":ref:`future`" msgstr "" -#: library/__future__.rst:128 +#: library/__future__.rst:143 msgid "How the compiler treats future imports." msgstr "" -#: library/__future__.rst:130 +#: library/__future__.rst:145 msgid ":pep:`236` - Back to the __future__" msgstr "" -#: library/__future__.rst:131 +#: library/__future__.rst:146 msgid "The original proposal for the __future__ mechanism." msgstr "" diff --git a/library/__main__.po b/library/__main__.po index 70e9f4fb..02163ad5 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ffaf450c..2d113585 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 2ac9db8b..3af7374b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 71e2bcd7..7f594098 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 639a89a0..fc5aca19 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/archiving.po b/library/archiving.po index d7b65f53..88582b78 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1c72a513..830afa5b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -207,7 +207,7 @@ msgstr "" msgid "*exit_on_error* parameter was added." msgstr "" -#: library/argparse.rst:610 +#: library/argparse.rst:616 msgid "The following sections describe how each of these are used." msgstr "" @@ -595,7 +595,7 @@ msgstr "" #: library/argparse.rst:418 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', " @@ -603,19 +603,26 @@ msgid "" "f', 'bar']``." msgstr "" -#: library/argparse.rst:424 +#: library/argparse.rst:426 +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:430 msgid "" ":class:`ArgumentParser` uses :term:`filesystem encoding and error handler` " "to read the file containing arguments." msgstr "" -#: library/argparse.rst:427 +#: library/argparse.rst:433 msgid "" "The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that " "arguments will never be treated as file references." msgstr "" -#: library/argparse.rst:430 +#: library/argparse.rst:436 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" @@ -651,22 +658,22 @@ msgid "" "Namespace()" msgstr "" -#: library/argparse.rst:460 +#: library/argparse.rst:466 msgid "allow_abbrev" msgstr "" -#: library/argparse.rst:462 +#: library/argparse.rst:468 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:466 +#: library/argparse.rst:472 msgid "This feature can be disabled by setting ``allow_abbrev`` to ``False``::" msgstr "" -#: library/argparse.rst:468 +#: library/argparse.rst:474 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', allow_abbrev=False)\n" ">>> parser.add_argument('--foobar', action='store_true')\n" @@ -676,11 +683,11 @@ msgid "" "PROG: error: unrecognized arguments: --foon" msgstr "" -#: library/argparse.rst:479 +#: library/argparse.rst:485 msgid "conflict_handler" msgstr "" -#: library/argparse.rst:481 +#: library/argparse.rst:487 msgid "" ":class:`ArgumentParser` objects do not allow two actions with the same " "option string. By default, :class:`ArgumentParser` objects raise an " @@ -688,7 +695,7 @@ msgid "" "that is already in use::" msgstr "" -#: library/argparse.rst:486 +#: library/argparse.rst:492 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-f', '--foo', help='old foo help')\n" @@ -698,7 +705,7 @@ msgid "" "ArgumentError: argument --foo: conflicting option string(s): --foo" msgstr "" -#: library/argparse.rst:493 +#: library/argparse.rst:499 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 " @@ -706,7 +713,7 @@ msgid "" "of :class:`ArgumentParser`::" msgstr "" -#: library/argparse.rst:498 +#: library/argparse.rst:504 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', " "conflict_handler='resolve')\n" @@ -721,7 +728,7 @@ msgid "" " --foo FOO new foo help" msgstr "" -#: library/argparse.rst:509 +#: library/argparse.rst:515 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/--" @@ -729,25 +736,25 @@ msgid "" "option string was overridden." msgstr "" -#: library/argparse.rst:516 +#: library/argparse.rst:522 msgid "add_help" msgstr "" -#: library/argparse.rst:518 +#: library/argparse.rst:524 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:522 +#: library/argparse.rst:528 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:526 +#: library/argparse.rst:532 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)\n" ">>> parser.add_argument('--foo', help='foo help')\n" @@ -758,7 +765,7 @@ msgid "" " --foo FOO foo help" msgstr "" -#: library/argparse.rst:534 +#: library/argparse.rst:540 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 ``-" @@ -766,7 +773,7 @@ msgid "" "in ``prefix_chars`` is used to prefix the help options::" msgstr "" -#: library/argparse.rst:540 +#: library/argparse.rst:546 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', prefix_chars='+/')\n" ">>> parser.print_help()\n" @@ -776,24 +783,24 @@ msgid "" " +h, ++help show this help message and exit" msgstr "" -#: library/argparse.rst:549 +#: library/argparse.rst:555 msgid "exit_on_error" msgstr "" -#: library/argparse.rst:551 +#: library/argparse.rst:557 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:555 +#: library/argparse.rst:561 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:558 +#: library/argparse.rst:564 msgid "" ">>> parser = argparse.ArgumentParser(exit_on_error=False)\n" ">>> parser.add_argument('--integers', type=int)\n" @@ -808,81 +815,81 @@ msgid "" "Catching an argumentError" msgstr "" -#: library/argparse.rst:572 +#: library/argparse.rst:578 msgid "The add_argument() method" msgstr "" -#: library/argparse.rst:578 +#: library/argparse.rst:584 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:581 +#: library/argparse.rst:587 msgid "" "`name or flags`_ - Either a name or a list of option strings, e.g. ``'foo'`` " "or ``'-f', '--foo'``." msgstr "" -#: library/argparse.rst:584 +#: library/argparse.rst:590 msgid "" "action_ - The basic type of action to be taken when this argument is " "encountered at the command line." msgstr "" -#: library/argparse.rst:587 +#: library/argparse.rst:593 msgid "nargs_ - The number of command-line arguments that should be consumed." msgstr "" -#: library/argparse.rst:589 +#: library/argparse.rst:595 msgid "" "const_ - A constant value required by some action_ and nargs_ selections." msgstr "" -#: library/argparse.rst:591 +#: library/argparse.rst:597 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:594 +#: library/argparse.rst:600 msgid "" "type_ - The type to which the command-line argument should be converted." msgstr "" -#: library/argparse.rst:596 +#: library/argparse.rst:602 msgid "choices_ - A sequence of the allowable values for the argument." msgstr "" -#: library/argparse.rst:598 +#: library/argparse.rst:604 msgid "" "required_ - Whether or not the command-line option may be omitted (optionals " "only)." msgstr "" -#: library/argparse.rst:601 +#: library/argparse.rst:607 msgid "help_ - A brief description of what the argument does." msgstr "" -#: library/argparse.rst:603 +#: library/argparse.rst:609 msgid "metavar_ - A name for the argument in usage messages." msgstr "" -#: library/argparse.rst:605 +#: library/argparse.rst:611 msgid "" "dest_ - The name of the attribute to be added to the object returned by :" "meth:`parse_args`." msgstr "" -#: library/argparse.rst:608 +#: library/argparse.rst:614 msgid "deprecated_ - Whether or not use of the argument is deprecated." msgstr "" -#: library/argparse.rst:616 +#: library/argparse.rst:622 msgid "name or flags" msgstr "" -#: library/argparse.rst:618 +#: library/argparse.rst:624 msgid "" "The :meth:`~ArgumentParser.add_argument` method must know whether an " "optional argument, like ``-f`` or ``--foo``, or a positional argument, like " @@ -891,30 +898,30 @@ msgid "" "or a simple argument name." msgstr "" -#: library/argparse.rst:624 +#: library/argparse.rst:630 msgid "For example, an optional argument could be created like::" msgstr "" -#: library/argparse.rst:626 +#: library/argparse.rst:632 msgid ">>> parser.add_argument('-f', '--foo')" msgstr "" -#: library/argparse.rst:628 +#: library/argparse.rst:634 msgid "while a positional argument could be created like::" msgstr "" -#: library/argparse.rst:630 +#: library/argparse.rst:636 msgid ">>> parser.add_argument('bar')" msgstr "" -#: library/argparse.rst:632 +#: library/argparse.rst:638 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:636 +#: library/argparse.rst:642 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-f', '--foo')\n" @@ -928,11 +935,11 @@ msgid "" "PROG: error: the following arguments are required: bar" msgstr "" -#: library/argparse.rst:651 +#: library/argparse.rst:657 msgid "action" msgstr "" -#: library/argparse.rst:653 +#: library/argparse.rst:659 msgid "" ":class:`ArgumentParser` objects associate command-line arguments with " "actions. These actions can do just about anything with the command-line " @@ -942,13 +949,13 @@ msgid "" "be handled. The supplied actions are:" msgstr "" -#: library/argparse.rst:659 +#: library/argparse.rst:665 msgid "" "``'store'`` - This just stores the argument's value. This is the default " "action." msgstr "" -#: library/argparse.rst:662 +#: library/argparse.rst:668 msgid "" "``'store_const'`` - This stores the value specified by the const_ keyword " "argument; note that the const_ keyword argument defaults to ``None``. The " @@ -956,7 +963,7 @@ msgid "" "specify some sort of flag. For example::" msgstr "" -#: library/argparse.rst:667 +#: library/argparse.rst:673 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', action='store_const', const=42)\n" @@ -964,7 +971,7 @@ msgid "" "Namespace(foo=42)" msgstr "" -#: library/argparse.rst:672 +#: library/argparse.rst:678 msgid "" "``'store_true'`` and ``'store_false'`` - These are special cases of " "``'store_const'`` used for storing the values ``True`` and ``False`` " @@ -972,7 +979,7 @@ msgid "" "``True`` respectively::" msgstr "" -#: library/argparse.rst:677 +#: library/argparse.rst:683 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', action='store_true')\n" @@ -982,24 +989,24 @@ msgid "" "Namespace(foo=True, bar=False, baz=True)" msgstr "" -#: library/argparse.rst:684 +#: library/argparse.rst:690 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:690 +#: library/argparse.rst:696 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:695 +#: library/argparse.rst:701 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 " @@ -1008,7 +1015,7 @@ msgid "" "example::" msgstr "" -#: library/argparse.rst:701 +#: library/argparse.rst:707 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--str', dest='types', action='append_const', " @@ -1019,7 +1026,7 @@ msgid "" "Namespace(types=[, ])" msgstr "" -#: library/argparse.rst:707 +#: library/argparse.rst:713 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 " @@ -1028,7 +1035,7 @@ msgid "" "will be appended to the list. Example usage::" msgstr "" -#: library/argparse.rst:715 +#: library/argparse.rst:721 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument(\"--foo\", action=\"extend\", nargs=\"+\", " @@ -1038,13 +1045,13 @@ msgid "" "Namespace(foo=['f1', 'f2', 'f3', 'f4'])" msgstr "" -#: library/argparse.rst:722 +#: library/argparse.rst:728 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:725 +#: library/argparse.rst:731 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--verbose', '-v', action='count', default=0)\n" @@ -1052,11 +1059,11 @@ msgid "" "Namespace(verbose=3)" msgstr "" -#: library/argparse.rst:730 +#: library/argparse.rst:736 msgid "Note, the *default* will be ``None`` unless explicitly set to *0*." msgstr "" -#: library/argparse.rst:732 +#: library/argparse.rst:738 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 " @@ -1064,14 +1071,14 @@ msgid "" "output is created." msgstr "" -#: library/argparse.rst:737 +#: library/argparse.rst:743 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:741 +#: library/argparse.rst:747 msgid "" ">>> import argparse\n" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" @@ -1081,30 +1088,16 @@ msgid "" "PROG 2.0" msgstr "" -#: library/argparse.rst:747 -msgid "" -"Only actions that consume command-line arguments (e.g. ``'store'``, " -"``'append'`` or ``'extend'``) can be used with positional arguments." -msgstr "" - -#: library/argparse.rst:752 +#: library/argparse.rst:753 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``::" +"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:757 -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:765 +#: library/argparse.rst:759 msgid "" "The recommended way to create a custom action is to extend :class:`Action`, " "overriding the :meth:`!__call__` method and optionally the :meth:`!__init__` " @@ -1113,11 +1106,11 @@ msgid "" "their registered name." msgstr "" -#: library/argparse.rst:770 +#: library/argparse.rst:764 msgid "An example of a custom action::" msgstr "" -#: library/argparse.rst:772 +#: library/argparse.rst:766 msgid "" ">>> class FooAction(argparse.Action):\n" "... def __init__(self, option_strings, dest, nargs=None, **kwargs):\n" @@ -1138,15 +1131,15 @@ msgid "" "Namespace(bar='1', foo='2')" msgstr "" -#: library/argparse.rst:790 +#: library/argparse.rst:784 msgid "For more details, see :class:`Action`." msgstr "" -#: library/argparse.rst:796 +#: library/argparse.rst:790 msgid "nargs" msgstr "" -#: library/argparse.rst:798 +#: library/argparse.rst:792 msgid "" ":class:`ArgumentParser` objects usually associate a single command-line " "argument with a single action to be taken. The ``nargs`` keyword argument " @@ -1155,13 +1148,13 @@ msgid "" "are:" msgstr "" -#: library/argparse.rst:803 +#: library/argparse.rst:797 msgid "" "``N`` (an integer). ``N`` arguments from the command line will be gathered " "together into a list. For example::" msgstr "" -#: library/argparse.rst:806 +#: library/argparse.rst:800 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', nargs=2)\n" @@ -1170,13 +1163,13 @@ msgid "" "Namespace(bar=['c'], foo=['a', 'b'])" msgstr "" -#: library/argparse.rst:812 +#: library/argparse.rst:806 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:817 +#: library/argparse.rst:811 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 " @@ -1186,7 +1179,7 @@ msgid "" "produced. Some examples to illustrate this::" msgstr "" -#: library/argparse.rst:824 +#: library/argparse.rst:818 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', nargs='?', const='c', default='d')\n" @@ -1199,13 +1192,13 @@ msgid "" "Namespace(bar='d', foo='d')" msgstr "" -#: library/argparse.rst:834 +#: library/argparse.rst:828 msgid "" "One of the more common uses of ``nargs='?'`` is to allow optional input and " "output files::" msgstr "" -#: library/argparse.rst:837 +#: library/argparse.rst:831 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('infile', nargs='?', type=argparse.FileType('r'),\n" @@ -1220,7 +1213,7 @@ msgid "" " outfile=<_io.TextIOWrapper name='' encoding='UTF-8'>)" msgstr "" -#: library/argparse.rst:851 +#: library/argparse.rst:845 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 " @@ -1228,7 +1221,7 @@ msgid "" "``nargs='*'`` is possible. For example::" msgstr "" -#: library/argparse.rst:856 +#: library/argparse.rst:850 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', nargs='*')\n" @@ -1238,14 +1231,14 @@ msgid "" "Namespace(bar=['1', '2'], baz=['a', 'b'], foo=['x', 'y'])" msgstr "" -#: library/argparse.rst:865 +#: library/argparse.rst:859 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:869 +#: library/argparse.rst:863 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('foo', nargs='+')\n" @@ -1256,7 +1249,7 @@ msgid "" "PROG: error: the following arguments are required: foo" msgstr "" -#: library/argparse.rst:877 +#: library/argparse.rst:871 msgid "" "If the ``nargs`` keyword argument is not provided, the number of arguments " "consumed is determined by the action_. Generally this means a single " @@ -1265,11 +1258,11 @@ msgid "" "``'store_const'``) set ``nargs=0``." msgstr "" -#: library/argparse.rst:887 +#: library/argparse.rst:881 msgid "const" msgstr "" -#: library/argparse.rst:889 +#: library/argparse.rst:883 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 " @@ -1277,7 +1270,7 @@ msgid "" "common uses of it are:" msgstr "" -#: library/argparse.rst:893 +#: library/argparse.rst:887 msgid "" "When :meth:`~ArgumentParser.add_argument` is called with " "``action='store_const'`` or ``action='append_const'``. These actions add " @@ -1287,27 +1280,27 @@ msgid "" "receive a default value of ``None``." msgstr "" -#: library/argparse.rst:901 +#: library/argparse.rst:895 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:908 +#: library/argparse.rst:902 msgid "" "``const=None`` by default, including when ``action='append_const'`` or " "``action='store_const'``." msgstr "" -#: library/argparse.rst:915 +#: library/argparse.rst:909 msgid "default" msgstr "" -#: library/argparse.rst:917 +#: library/argparse.rst:911 msgid "" "All optional arguments and some positional arguments may be omitted at the " "command line. The ``default`` keyword argument of :meth:`~ArgumentParser." @@ -1317,7 +1310,7 @@ msgid "" "command line::" msgstr "" -#: library/argparse.rst:924 +#: library/argparse.rst:918 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default=42)\n" @@ -1327,13 +1320,13 @@ msgid "" "Namespace(foo=42)" msgstr "" -#: library/argparse.rst:931 +#: library/argparse.rst:925 msgid "" "If the target namespace already has an attribute set, the action *default* " "will not overwrite it::" msgstr "" -#: library/argparse.rst:934 +#: library/argparse.rst:928 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default=42)\n" @@ -1341,7 +1334,7 @@ msgid "" "Namespace(foo=101)" msgstr "" -#: library/argparse.rst:939 +#: library/argparse.rst:933 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_ " @@ -1349,7 +1342,7 @@ msgid "" "`Namespace` return value. Otherwise, the parser uses the value as is::" msgstr "" -#: library/argparse.rst:944 +#: library/argparse.rst:938 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--length', default='10', type=int)\n" @@ -1358,13 +1351,13 @@ msgid "" "Namespace(length=10, width=10.5)" msgstr "" -#: library/argparse.rst:950 +#: library/argparse.rst:944 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:953 +#: library/argparse.rst:947 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('foo', nargs='?', default=42)\n" @@ -1374,20 +1367,20 @@ msgid "" "Namespace(foo=42)" msgstr "" -#: library/argparse.rst:960 +#: library/argparse.rst:954 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:964 +#: library/argparse.rst:958 msgid "" "Providing ``default=argparse.SUPPRESS`` causes no attribute to be added if " "the command-line argument was not present::" msgstr "" -#: library/argparse.rst:967 +#: library/argparse.rst:961 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default=argparse.SUPPRESS)\n" @@ -1397,11 +1390,11 @@ msgid "" "Namespace(foo='1')" msgstr "" -#: library/argparse.rst:978 +#: library/argparse.rst:972 msgid "type" msgstr "" -#: library/argparse.rst:980 +#: library/argparse.rst:974 msgid "" "By default, the parser reads command-line arguments in as simple strings. " "However, quite often the command-line string should instead be interpreted " @@ -1410,13 +1403,13 @@ msgid "" "checking and type conversions to be performed." msgstr "" -#: library/argparse.rst:986 +#: library/argparse.rst:980 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:989 +#: library/argparse.rst:983 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 " @@ -1425,11 +1418,11 @@ msgid "" "is displayed. Other exception types are not handled." msgstr "" -#: library/argparse.rst:995 +#: library/argparse.rst:989 msgid "Common built-in types and functions can be used as type converters:" msgstr "" -#: library/argparse.rst:997 +#: library/argparse.rst:991 msgid "" "import argparse\n" "import pathlib\n" @@ -1444,11 +1437,11 @@ msgid "" "parser.add_argument('datapath', type=pathlib.Path)" msgstr "" -#: library/argparse.rst:1010 +#: library/argparse.rst:1004 msgid "User defined functions can be used as well:" msgstr "" -#: library/argparse.rst:1012 +#: library/argparse.rst:1006 msgid "" ">>> def hyphenated(string):\n" "... return '-'.join([word[:4] for word in string.casefold().split()])\n" @@ -1459,14 +1452,14 @@ msgid "" "Namespace(short_title='\"the-tale-of-two-citi')" msgstr "" -#: library/argparse.rst:1022 +#: library/argparse.rst:1016 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:1026 +#: library/argparse.rst:1020 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 " @@ -1474,7 +1467,7 @@ msgid "" "management should be done downstream after the arguments are parsed." msgstr "" -#: library/argparse.rst:1031 +#: library/argparse.rst:1025 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." @@ -1482,7 +1475,7 @@ msgid "" "exception would not be handled at all." msgstr "" -#: library/argparse.rst:1036 +#: library/argparse.rst:1030 msgid "" "Even :class:`~argparse.FileType` has its limitations for use with the " "``type`` keyword. If one argument uses :class:`~argparse.FileType` and then " @@ -1492,17 +1485,17 @@ msgid "" "files." msgstr "" -#: library/argparse.rst:1043 +#: library/argparse.rst:1037 msgid "" "For type checkers that simply check against a fixed set of values, consider " "using the choices_ keyword instead." msgstr "" -#: library/argparse.rst:1050 +#: library/argparse.rst:1044 msgid "choices" msgstr "" -#: library/argparse.rst:1052 +#: library/argparse.rst:1046 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* " @@ -1511,7 +1504,7 @@ msgid "" "be displayed if the argument was not one of the acceptable values::" msgstr "" -#: library/argparse.rst:1058 +#: library/argparse.rst:1052 msgid "" ">>> parser = argparse.ArgumentParser(prog='game.py')\n" ">>> parser.add_argument('move', choices=['rock', 'paper', 'scissors'])\n" @@ -1523,26 +1516,33 @@ msgid "" "'paper', 'scissors')" msgstr "" -#: library/argparse.rst:1067 -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:1071 +#: library/argparse.rst:1061 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:1074 +#: library/argparse.rst:1064 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:1077 +#: library/argparse.rst:1067 +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:1072 +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:1076 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 " @@ -1550,11 +1550,11 @@ msgid "" "are many choices), just specify an explicit metavar_." msgstr "" -#: library/argparse.rst:1086 +#: library/argparse.rst:1085 msgid "required" msgstr "" -#: library/argparse.rst:1088 +#: library/argparse.rst:1087 msgid "" "In general, the :mod:`!argparse` module assumes that flags like ``-f`` and " "``--bar`` indicate *optional* arguments, which can always be omitted at the " @@ -1562,7 +1562,7 @@ msgid "" "the ``required=`` keyword argument to :meth:`~ArgumentParser.add_argument`::" msgstr "" -#: library/argparse.rst:1093 +#: library/argparse.rst:1092 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', required=True)\n" @@ -1573,24 +1573,24 @@ msgid "" ": error: the following arguments are required: --foo" msgstr "" -#: library/argparse.rst:1101 +#: library/argparse.rst:1100 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:1107 +#: library/argparse.rst:1106 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:1114 +#: library/argparse.rst:1113 msgid "help" msgstr "" -#: library/argparse.rst:1116 +#: library/argparse.rst:1115 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`` " @@ -1598,7 +1598,7 @@ msgid "" "each argument." msgstr "" -#: library/argparse.rst:1121 +#: library/argparse.rst:1120 msgid "" "The ``help`` strings can include various format specifiers to avoid " "repetition of things like the program name or the argument default_. The " @@ -1607,7 +1607,7 @@ msgid "" "``%(type)s``, etc.::" msgstr "" -#: library/argparse.rst:1126 +#: library/argparse.rst:1125 msgid "" ">>> parser = argparse.ArgumentParser(prog='frobble')\n" ">>> parser.add_argument('bar', nargs='?', type=int, default=42,\n" @@ -1622,19 +1622,19 @@ msgid "" " -h, --help show this help message and exit" msgstr "" -#: library/argparse.rst:1138 +#: library/argparse.rst:1137 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:1141 +#: library/argparse.rst:1140 msgid "" ":mod:`!argparse` supports silencing the help entry for certain options, by " "setting the ``help`` value to ``argparse.SUPPRESS``::" msgstr "" -#: library/argparse.rst:1144 +#: library/argparse.rst:1143 msgid "" ">>> parser = argparse.ArgumentParser(prog='frobble')\n" ">>> parser.add_argument('--foo', help=argparse.SUPPRESS)\n" @@ -1645,11 +1645,11 @@ msgid "" " -h, --help show this help message and exit" msgstr "" -#: library/argparse.rst:1156 +#: library/argparse.rst:1155 msgid "metavar" msgstr "" -#: library/argparse.rst:1158 +#: library/argparse.rst:1157 msgid "" "When :class:`ArgumentParser` generates help messages, it needs some way to " "refer to each expected argument. By default, :class:`!ArgumentParser` " @@ -1661,7 +1661,7 @@ msgid "" "command-line argument will be referred to as ``FOO``. An example::" msgstr "" -#: library/argparse.rst:1167 +#: library/argparse.rst:1166 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo')\n" @@ -1679,11 +1679,11 @@ msgid "" " --foo FOO" msgstr "" -#: library/argparse.rst:1182 +#: library/argparse.rst:1181 msgid "An alternative name can be specified with ``metavar``::" msgstr "" -#: library/argparse.rst:1184 +#: library/argparse.rst:1183 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', metavar='YYY')\n" @@ -1701,21 +1701,21 @@ msgid "" " --foo YYY" msgstr "" -#: library/argparse.rst:1199 +#: library/argparse.rst:1198 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:1203 +#: library/argparse.rst:1202 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:1207 +#: library/argparse.rst:1206 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-x', nargs=2)\n" @@ -1729,11 +1729,11 @@ msgid "" " --foo bar baz" msgstr "" -#: library/argparse.rst:1222 +#: library/argparse.rst:1221 msgid "dest" msgstr "" -#: library/argparse.rst:1224 +#: library/argparse.rst:1223 msgid "" "Most :class:`ArgumentParser` actions add some value as an attribute of the " "object returned by :meth:`~ArgumentParser.parse_args`. The name of this " @@ -1743,7 +1743,7 @@ msgid "" "add_argument`::" msgstr "" -#: library/argparse.rst:1231 +#: library/argparse.rst:1230 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('bar')\n" @@ -1751,7 +1751,7 @@ msgid "" "Namespace(bar='XXX')" msgstr "" -#: library/argparse.rst:1236 +#: library/argparse.rst:1235 msgid "" "For optional argument actions, the value of ``dest`` is normally inferred " "from the option strings. :class:`ArgumentParser` generates the value of " @@ -1763,7 +1763,7 @@ msgid "" "below illustrate this behavior::" msgstr "" -#: library/argparse.rst:1245 +#: library/argparse.rst:1244 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('-f', '--foo-bar', '--foo')\n" @@ -1774,11 +1774,11 @@ msgid "" "Namespace(foo_bar='1', x='2')" msgstr "" -#: library/argparse.rst:1253 +#: library/argparse.rst:1252 msgid "``dest`` allows a custom attribute name to be provided::" msgstr "" -#: library/argparse.rst:1255 +#: library/argparse.rst:1254 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', dest='bar')\n" @@ -1786,11 +1786,11 @@ msgid "" "Namespace(bar='XXX')" msgstr "" -#: library/argparse.rst:1264 +#: library/argparse.rst:1263 msgid "deprecated" msgstr "" -#: library/argparse.rst:1266 +#: library/argparse.rst:1265 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 " @@ -1801,7 +1801,7 @@ msgid "" "will be printed to :data:`sys.stderr` when the argument is used::" msgstr "" -#: library/argparse.rst:1276 +#: library/argparse.rst:1275 msgid "" ">>> import argparse\n" ">>> parser = argparse.ArgumentParser(prog='snake.py')\n" @@ -1813,11 +1813,11 @@ msgid "" "Namespace(legs=4)" msgstr "" -#: library/argparse.rst:1289 +#: library/argparse.rst:1288 msgid "Action classes" msgstr "" -#: library/argparse.rst:1291 +#: library/argparse.rst:1290 msgid "" ":class:`!Action` classes implement the Action API, a callable which returns " "a callable which processes arguments from the command-line. Any object which " @@ -1825,7 +1825,7 @@ msgid "" "`~ArgumentParser.add_argument`." msgstr "" -#: library/argparse.rst:1300 +#: library/argparse.rst:1299 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 " @@ -1834,7 +1834,7 @@ msgid "" "`ArgumentParser.add_argument` except for the ``action`` itself." msgstr "" -#: library/argparse.rst:1306 +#: library/argparse.rst:1305 msgid "" "Instances of :class:`!Action` (or return value of any callable to the " "``action`` parameter) should have attributes :attr:`!dest`, :attr:`!" @@ -1843,46 +1843,46 @@ msgid "" "is to call :meth:`!Action.__init__`." msgstr "" -#: library/argparse.rst:1314 +#: library/argparse.rst:1313 msgid "" ":class:`!Action` instances should be callable, so subclasses must override " "the :meth:`!__call__` method, which should accept four parameters:" msgstr "" -#: library/argparse.rst:1317 +#: library/argparse.rst:1316 msgid "" "*parser* - The :class:`ArgumentParser` object which contains this action." msgstr "" -#: library/argparse.rst:1319 +#: library/argparse.rst:1318 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:1323 +#: library/argparse.rst:1322 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:1327 +#: library/argparse.rst:1326 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:1331 +#: library/argparse.rst:1330 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:1336 +#: library/argparse.rst:1335 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 " @@ -1890,47 +1890,64 @@ msgid "" "will be used." msgstr "" -#: library/argparse.rst:1342 -msgid "The parse_args() method" +#: library/argparse.rst:1341 +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:1346 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:1356 +msgid "The parse_args() method" +msgstr "" + +#: library/argparse.rst:1360 +msgid "" "Convert argument strings to objects and assign them as attributes of the " "namespace. Return the populated namespace." msgstr "" -#: library/argparse.rst:1349 +#: library/argparse.rst:1363 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:1353 +#: library/argparse.rst:1367 msgid "" "args_ - List of strings to parse. The default is taken from :data:`sys." "argv`." msgstr "" -#: library/argparse.rst:1356 +#: library/argparse.rst:1370 msgid "" "namespace_ - An object to take the attributes. The default is a new empty :" "class:`Namespace` object." msgstr "" -#: library/argparse.rst:1361 +#: library/argparse.rst:1375 msgid "Option value syntax" msgstr "" -#: library/argparse.rst:1363 +#: library/argparse.rst:1377 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:1367 +#: library/argparse.rst:1381 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-x')\n" @@ -1941,38 +1958,38 @@ msgid "" "Namespace(foo='FOO', x=None)" msgstr "" -#: library/argparse.rst:1375 +#: library/argparse.rst:1389 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:1379 +#: library/argparse.rst:1393 msgid "" ">>> parser.parse_args(['--foo=FOO'])\n" "Namespace(foo='FOO', x=None)" msgstr "" -#: library/argparse.rst:1382 +#: library/argparse.rst:1396 msgid "" "For short options (options only one character long), the option and its " "value can be concatenated::" msgstr "" -#: library/argparse.rst:1385 +#: library/argparse.rst:1399 msgid "" ">>> parser.parse_args(['-xX'])\n" "Namespace(foo=None, x='X')" msgstr "" -#: library/argparse.rst:1388 +#: library/argparse.rst:1402 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:1391 +#: library/argparse.rst:1405 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-x', action='store_true')\n" @@ -1982,11 +1999,11 @@ msgid "" "Namespace(x=True, y=True, z='Z')" msgstr "" -#: library/argparse.rst:1400 +#: library/argparse.rst:1414 msgid "Invalid arguments" msgstr "" -#: library/argparse.rst:1402 +#: library/argparse.rst:1416 msgid "" "While parsing the command line, :meth:`~ArgumentParser.parse_args` checks " "for a variety of errors, including ambiguous options, invalid types, invalid " @@ -1994,7 +2011,7 @@ msgid "" "an error, it exits and prints the error along with a usage message::" msgstr "" -#: library/argparse.rst:1407 +#: library/argparse.rst:1421 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('--foo', type=int)\n" @@ -2016,11 +2033,11 @@ msgid "" "PROG: error: extra arguments found: badger" msgstr "" -#: library/argparse.rst:1428 +#: library/argparse.rst:1442 msgid "Arguments containing ``-``" msgstr "" -#: library/argparse.rst:1430 +#: library/argparse.rst:1444 msgid "" "The :meth:`~ArgumentParser.parse_args` method attempts to give errors " "whenever the user has clearly made a mistake, but some situations are " @@ -2032,7 +2049,7 @@ msgid "" "negative numbers::" msgstr "" -#: library/argparse.rst:1438 +#: library/argparse.rst:1452 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-x')\n" @@ -2065,7 +2082,7 @@ msgid "" "PROG: error: argument -1: expected one argument" msgstr "" -#: library/argparse.rst:1468 +#: library/argparse.rst:1482 msgid "" "If you have positional arguments that must begin with ``-`` and don't look " "like negative numbers, you can insert the pseudo-argument ``'--'`` which " @@ -2073,30 +2090,30 @@ msgid "" "positional argument::" msgstr "" -#: library/argparse.rst:1473 +#: library/argparse.rst:1487 msgid "" ">>> parser.parse_args(['--', '-f'])\n" "Namespace(foo='-f', one=None)" msgstr "" -#: library/argparse.rst:1476 +#: library/argparse.rst:1490 msgid "" "See also :ref:`the argparse howto on ambiguous arguments ` for more details." msgstr "" -#: library/argparse.rst:1482 +#: library/argparse.rst:1496 msgid "Argument abbreviations (prefix matching)" msgstr "" -#: library/argparse.rst:1484 +#: library/argparse.rst:1498 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:1488 +#: library/argparse.rst:1502 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> parser.add_argument('-bacon')\n" @@ -2110,17 +2127,17 @@ msgid "" "PROG: error: ambiguous option: -ba could match -badger, -bacon" msgstr "" -#: library/argparse.rst:1499 +#: library/argparse.rst:1513 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:1505 +#: library/argparse.rst:1519 msgid "Beyond ``sys.argv``" msgstr "" -#: library/argparse.rst:1507 +#: library/argparse.rst:1521 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 " @@ -2128,7 +2145,7 @@ msgid "" "useful for testing at the interactive prompt::" msgstr "" -#: library/argparse.rst:1512 +#: library/argparse.rst:1526 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument(\n" @@ -2143,24 +2160,24 @@ msgid "" "Namespace(accumulate=, integers=[1, 2, 3, 4])" msgstr "" -#: library/argparse.rst:1527 +#: library/argparse.rst:1541 msgid "The Namespace object" msgstr "" -#: library/argparse.rst:1531 +#: library/argparse.rst:1545 msgid "" "Simple class used by default by :meth:`~ArgumentParser.parse_args` to create " "an object holding attributes and return it." msgstr "" -#: library/argparse.rst:1534 +#: library/argparse.rst:1548 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:1538 +#: library/argparse.rst:1552 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo')\n" @@ -2169,14 +2186,14 @@ msgid "" "{'foo': 'BAR'}" msgstr "" -#: library/argparse.rst:1544 +#: library/argparse.rst:1558 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:1548 +#: library/argparse.rst:1562 msgid "" ">>> class C:\n" "... pass\n" @@ -2189,15 +2206,15 @@ msgid "" "'BAR'" msgstr "" -#: library/argparse.rst:1560 +#: library/argparse.rst:1574 msgid "Other utilities" msgstr "" -#: library/argparse.rst:1563 +#: library/argparse.rst:1577 msgid "Sub-commands" msgstr "" -#: library/argparse.rst:1570 +#: library/argparse.rst:1584 msgid "" "Many programs split up their functionality into a number of subcommands, for " "example, the ``svn`` program can invoke subcommands like ``svn checkout``, " @@ -2212,69 +2229,69 @@ msgid "" "returns an :class:`!ArgumentParser` object that can be modified as usual." msgstr "" -#: library/argparse.rst:1582 +#: library/argparse.rst:1596 msgid "Description of parameters:" msgstr "" -#: library/argparse.rst:1584 +#: library/argparse.rst:1598 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:1588 +#: library/argparse.rst:1602 msgid "" "*description* - description for the sub-parser group in help output, by " "default ``None``" msgstr "" -#: library/argparse.rst:1591 +#: library/argparse.rst:1605 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:1595 +#: library/argparse.rst:1609 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:1598 +#: library/argparse.rst:1612 msgid "" "action_ - the basic type of action to be taken when this argument is " "encountered at the command line" msgstr "" -#: library/argparse.rst:1601 +#: library/argparse.rst:1615 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:1604 +#: library/argparse.rst:1618 msgid "" "required_ - Whether or not a subcommand must be provided, by default " "``False`` (added in 3.7)" msgstr "" -#: library/argparse.rst:1607 +#: library/argparse.rst:1621 msgid "help_ - help for sub-parser group in help output, by default ``None``" msgstr "" -#: library/argparse.rst:1609 +#: library/argparse.rst:1623 msgid "" "metavar_ - string presenting available subcommands in help; by default it is " "``None`` and presents subcommands in form {cmd1, cmd2, ..}" msgstr "" -#: library/argparse.rst:1612 +#: library/argparse.rst:1626 msgid "Some example usage::" msgstr "" -#: library/argparse.rst:1614 +#: library/argparse.rst:1628 msgid "" ">>> # create the top-level parser\n" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" @@ -2297,7 +2314,7 @@ msgid "" "Namespace(baz='Z', foo=True)" msgstr "" -#: library/argparse.rst:1633 +#: library/argparse.rst:1647 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 " @@ -2307,7 +2324,7 @@ msgid "" "``baz`` attributes are present." msgstr "" -#: library/argparse.rst:1640 +#: library/argparse.rst:1654 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 " @@ -2316,7 +2333,7 @@ msgid "" "to :meth:`~_SubParsersAction.add_parser` as above.)" msgstr "" -#: library/argparse.rst:1648 +#: library/argparse.rst:1662 msgid "" ">>> parser.parse_args(['--help'])\n" "usage: PROG [-h] [--foo] {a,b} ...\n" @@ -2347,14 +2364,14 @@ msgid "" " --baz {X,Y,Z} baz help" msgstr "" -#: library/argparse.rst:1676 +#: library/argparse.rst:1690 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:1680 +#: library/argparse.rst:1694 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> subparsers = parser.add_subparsers(title='subcommands',\n" @@ -2374,7 +2391,7 @@ msgid "" " {foo,bar} additional help" msgstr "" -#: library/argparse.rst:1697 +#: library/argparse.rst:1711 msgid "" "Furthermore, :meth:`~_SubParsersAction.add_parser` supports an additional " "*aliases* argument, which allows multiple strings to refer to the same " @@ -2382,7 +2399,7 @@ msgid "" "``checkout``::" msgstr "" -#: library/argparse.rst:1702 +#: library/argparse.rst:1716 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> subparsers = parser.add_subparsers()\n" @@ -2392,13 +2409,13 @@ msgid "" "Namespace(foo='bar')" msgstr "" -#: library/argparse.rst:1709 +#: library/argparse.rst:1723 msgid "" ":meth:`~_SubParsersAction.add_parser` supports also an additional " "*deprecated* argument, which allows to deprecate the subparser." msgstr "" -#: library/argparse.rst:1723 +#: library/argparse.rst:1737 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 " @@ -2406,7 +2423,7 @@ msgid "" "example::" msgstr "" -#: library/argparse.rst:1728 +#: library/argparse.rst:1742 msgid "" ">>> # subcommand functions\n" ">>> def foo(args):\n" @@ -2441,7 +2458,7 @@ msgid "" "((XYZYX))" msgstr "" -#: library/argparse.rst:1760 +#: library/argparse.rst:1774 msgid "" "This way, you can let :meth:`parse_args` do the job of calling the " "appropriate function after argument parsing is complete. Associating " @@ -2451,7 +2468,7 @@ msgid "" "argument to the :meth:`add_subparsers` call will work::" msgstr "" -#: library/argparse.rst:1767 +#: library/argparse.rst:1781 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> subparsers = parser.add_subparsers(dest='subparser_name')\n" @@ -2463,15 +2480,15 @@ msgid "" "Namespace(subparser_name='2', y='frobble')" msgstr "" -#: library/argparse.rst:1776 +#: library/argparse.rst:1790 msgid "New *required* keyword-only parameter." msgstr "" -#: library/argparse.rst:1781 +#: library/argparse.rst:1795 msgid "FileType objects" msgstr "" -#: library/argparse.rst:1785 +#: library/argparse.rst:1799 msgid "" "The :class:`FileType` factory creates objects that can be passed to the type " "argument of :meth:`ArgumentParser.add_argument`. Arguments that have :class:" @@ -2480,7 +2497,7 @@ msgid "" "the :func:`open` function for more details)::" msgstr "" -#: library/argparse.rst:1791 +#: library/argparse.rst:1805 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--raw', type=argparse.FileType('wb', 0))\n" @@ -2491,14 +2508,14 @@ msgid "" "raw=<_io.FileIO name='raw.dat' mode='wb'>)" msgstr "" -#: library/argparse.rst:1797 +#: library/argparse.rst:1811 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:1801 +#: library/argparse.rst:1815 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('infile', type=argparse.FileType('r'))\n" @@ -2506,15 +2523,15 @@ msgid "" "Namespace(infile=<_io.TextIOWrapper name='' encoding='UTF-8'>)" msgstr "" -#: library/argparse.rst:1806 +#: library/argparse.rst:1820 msgid "Added the *encodings* and *errors* parameters." msgstr "" -#: library/argparse.rst:1811 +#: library/argparse.rst:1825 msgid "Argument groups" msgstr "" -#: library/argparse.rst:1816 +#: library/argparse.rst:1830 msgid "" "By default, :class:`ArgumentParser` groups command-line arguments into " "\"positional arguments\" and \"options\" when displaying help messages. When " @@ -2523,7 +2540,7 @@ msgid "" "method::" msgstr "" -#: library/argparse.rst:1822 +#: library/argparse.rst:1836 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)\n" ">>> group = parser.add_argument_group('group')\n" @@ -2537,7 +2554,7 @@ msgid "" " --foo FOO foo help" msgstr "" -#: library/argparse.rst:1833 +#: library/argparse.rst:1847 msgid "" "The :meth:`add_argument_group` method returns an argument group object which " "has an :meth:`~ArgumentParser.add_argument` method just like a regular :" @@ -2548,7 +2565,7 @@ msgid "" "this display::" msgstr "" -#: library/argparse.rst:1841 +#: library/argparse.rst:1855 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)\n" ">>> group1 = parser.add_argument_group('group1', 'group1 description')\n" @@ -2569,7 +2586,7 @@ msgid "" " --bar BAR bar help" msgstr "" -#: library/argparse.rst:1859 +#: library/argparse.rst:1873 msgid "" "The optional, keyword-only parameters argument_default_ and " "conflict_handler_ allow for finer-grained control of the behavior of the " @@ -2578,13 +2595,13 @@ msgid "" "rather than the entire parser." msgstr "" -#: library/argparse.rst:1864 +#: library/argparse.rst:1878 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:1867 +#: library/argparse.rst:1881 msgid "" "Calling :meth:`add_argument_group` on an argument group is deprecated. This " "feature was never supported and does not always work correctly. The function " @@ -2592,18 +2609,18 @@ msgid "" "future." msgstr "" -#: library/argparse.rst:1875 +#: library/argparse.rst:1889 msgid "Mutual exclusion" msgstr "" -#: library/argparse.rst:1879 +#: library/argparse.rst:1893 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:1883 +#: library/argparse.rst:1897 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> group = parser.add_mutually_exclusive_group()\n" @@ -2618,14 +2635,14 @@ msgid "" "PROG: error: argument --bar: not allowed with argument --foo" msgstr "" -#: library/argparse.rst:1895 +#: library/argparse.rst:1909 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:1899 +#: library/argparse.rst:1913 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> group = parser.add_mutually_exclusive_group(required=True)\n" @@ -2636,7 +2653,7 @@ msgid "" "PROG: error: one of the arguments --foo --bar is required" msgstr "" -#: library/argparse.rst:1907 +#: library/argparse.rst:1921 msgid "" "Note that currently mutually exclusive argument groups do not support the " "*title* and *description* arguments of :meth:`~ArgumentParser." @@ -2644,7 +2661,7 @@ msgid "" "argument group that has a title and description. For example::" msgstr "" -#: library/argparse.rst:1913 +#: library/argparse.rst:1927 msgid "" ">>> parser = argparse.ArgumentParser(prog='PROG')\n" ">>> group = parser.add_argument_group('Group title', 'Group description')\n" @@ -2664,7 +2681,7 @@ msgid "" " --bar BAR bar help" msgstr "" -#: library/argparse.rst:1930 +#: library/argparse.rst:1944 msgid "" "Calling :meth:`add_argument_group` or :meth:`add_mutually_exclusive_group` " "on a mutually exclusive group is deprecated. These features were never " @@ -2672,11 +2689,11 @@ msgid "" "by accident through inheritance and will be removed in the future." msgstr "" -#: library/argparse.rst:1938 +#: library/argparse.rst:1952 msgid "Parser defaults" msgstr "" -#: library/argparse.rst:1942 +#: library/argparse.rst:1956 msgid "" "Most of the time, the attributes of the object returned by :meth:" "`parse_args` will be fully determined by inspecting the command-line " @@ -2685,7 +2702,7 @@ msgid "" "command line to be added::" msgstr "" -#: library/argparse.rst:1948 +#: library/argparse.rst:1962 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('foo', type=int)\n" @@ -2694,12 +2711,15 @@ msgid "" "Namespace(bar=42, baz='badger', foo=736)" msgstr "" -#: library/argparse.rst:1954 +#: library/argparse.rst:1968 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:1956 +#: library/argparse.rst:1972 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default='bar')\n" @@ -2708,20 +2728,20 @@ msgid "" "Namespace(foo='spam')" msgstr "" -#: library/argparse.rst:1962 +#: library/argparse.rst:1978 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:1968 +#: library/argparse.rst:1984 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:1972 +#: library/argparse.rst:1988 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', default='badger')\n" @@ -2729,65 +2749,70 @@ msgid "" "'badger'" msgstr "" -#: library/argparse.rst:1979 +#: library/argparse.rst:1995 msgid "Printing help" msgstr "" -#: library/argparse.rst:1981 +#: library/argparse.rst:1997 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:1987 +#: library/argparse.rst:2003 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:1993 +#: library/argparse.rst:2009 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:1997 +#: library/argparse.rst:2013 msgid "" "There are also variants of these methods that simply return a string instead " "of printing it:" msgstr "" -#: library/argparse.rst:2002 +#: library/argparse.rst:2018 msgid "" "Return a string containing a brief description of how the :class:" "`ArgumentParser` should be invoked on the command line." msgstr "" -#: library/argparse.rst:2007 +#: library/argparse.rst:2023 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:2012 +#: library/argparse.rst:2028 msgid "Partial parsing" msgstr "" -#: library/argparse.rst:2016 +#: library/argparse.rst:2032 +msgid "" +"Sometimes a script only needs to handle a specific set of command-line " +"arguments, leaving any unrecognized arguments for another script or program. " +"In these cases, the :meth:`~ArgumentParser.parse_known_args` method can be " +"useful." +msgstr "" + +#: library/argparse.rst:2037 msgid "" -"Sometimes a script may only parse a few of the command-line arguments, " -"passing the remaining arguments on to another script or program. In these " -"cases, the :meth:`~ArgumentParser.parse_known_args` method can be useful. " -"It works much like :meth:`~ArgumentParser.parse_args` except that it does " -"not produce an error when extra arguments are present. Instead, it returns " -"a two item tuple containing the populated namespace and the list of " -"remaining argument strings." +"This method works similarly to :meth:`~ArgumentParser.parse_args`, but it " +"does not raise an error for extra, unrecognized arguments. Instead, it " +"parses the known arguments and returns a two item tuple that contains the " +"populated namespace and the list of any unrecognized arguments." msgstr "" -#: library/argparse.rst:2025 +#: library/argparse.rst:2044 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo', action='store_true')\n" @@ -2796,7 +2821,7 @@ msgid "" "(Namespace(bar='BAR', foo=True), ['--badger', 'spam'])" msgstr "" -#: library/argparse.rst:2032 +#: library/argparse.rst:2051 msgid "" ":ref:`Prefix matching ` rules apply to :meth:" "`~ArgumentParser.parse_known_args`. The parser may consume an option even if " @@ -2804,11 +2829,11 @@ msgid "" "remaining arguments list." msgstr "" -#: library/argparse.rst:2039 +#: library/argparse.rst:2058 msgid "Customizing file parsing" msgstr "" -#: library/argparse.rst:2043 +#: library/argparse.rst:2062 msgid "" "Arguments that are read from a file (see the *fromfile_prefix_chars* keyword " "argument to the :class:`ArgumentParser` constructor) are read one argument " @@ -2816,38 +2841,38 @@ msgid "" "reading." msgstr "" -#: library/argparse.rst:2048 +#: library/argparse.rst:2067 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:2052 +#: library/argparse.rst:2071 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:2055 +#: library/argparse.rst:2074 msgid "" "class MyArgumentParser(argparse.ArgumentParser):\n" " def convert_arg_line_to_args(self, arg_line):\n" " return arg_line.split()" msgstr "" -#: library/argparse.rst:2061 +#: library/argparse.rst:2080 msgid "Exiting methods" msgstr "" -#: library/argparse.rst:2065 +#: library/argparse.rst:2084 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:2069 +#: library/argparse.rst:2088 msgid "" "class ErrorCatchingArgumentParser(argparse.ArgumentParser):\n" " def exit(self, status=0, message=None):\n" @@ -2856,17 +2881,17 @@ msgid "" " exit(status)" msgstr "" -#: library/argparse.rst:2077 +#: library/argparse.rst:2096 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:2082 +#: library/argparse.rst:2101 msgid "Intermixed parsing" msgstr "" -#: library/argparse.rst:2087 +#: library/argparse.rst:2106 msgid "" "A number of Unix commands allow the user to intermix optional arguments with " "positional arguments. The :meth:`~ArgumentParser.parse_intermixed_args` " @@ -2874,7 +2899,7 @@ msgid "" "parsing style." msgstr "" -#: library/argparse.rst:2092 +#: library/argparse.rst:2111 msgid "" "These parsers do not support all the :mod:`!argparse` features, and will " "raise exceptions if unsupported features are used. In particular, " @@ -2882,7 +2907,7 @@ msgid "" "positionals are not supported." msgstr "" -#: library/argparse.rst:2097 +#: library/argparse.rst:2116 msgid "" "The following example shows the difference between :meth:`~ArgumentParser." "parse_known_args` and :meth:`~ArgumentParser.parse_intermixed_args`: the " @@ -2890,7 +2915,7 @@ msgid "" "collects all the positionals into ``rest``. ::" msgstr "" -#: library/argparse.rst:2103 +#: library/argparse.rst:2122 msgid "" ">>> parser = argparse.ArgumentParser()\n" ">>> parser.add_argument('--foo')\n" @@ -2902,7 +2927,7 @@ msgid "" "Namespace(cmd='doit', foo='bar', rest=[1, 2, 3])" msgstr "" -#: library/argparse.rst:2112 +#: library/argparse.rst:2131 msgid "" ":meth:`~ArgumentParser.parse_known_intermixed_args` returns a two item tuple " "containing the populated namespace and the list of remaining argument " @@ -2910,11 +2935,11 @@ msgid "" "there are any remaining unparsed argument strings." msgstr "" -#: library/argparse.rst:2121 +#: library/argparse.rst:2140 msgid "Registering custom types or actions" msgstr "" -#: library/argparse.rst:2125 +#: library/argparse.rst:2144 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 " @@ -2922,7 +2947,7 @@ msgid "" "the type by their registered name instead of their callable name." msgstr "" -#: library/argparse.rst:2130 +#: library/argparse.rst:2149 msgid "" "The :meth:`!register` method accepts three arguments - a *registry_name*, " "specifying the internal registry where the object will be stored (e.g., " @@ -2930,12 +2955,12 @@ msgid "" "be registered, and object, the callable to be registered." msgstr "" -#: library/argparse.rst:2135 +#: library/argparse.rst:2154 msgid "" "The following example shows how to register a custom type with a parser::" msgstr "" -#: library/argparse.rst:2137 +#: library/argparse.rst:2156 msgid "" ">>> import argparse\n" ">>> parser = argparse.ArgumentParser()\n" @@ -2951,41 +2976,41 @@ msgid "" "PROG: error: argument --foo: invalid 'hexadecimal integer' value: '1.2'" msgstr "" -#: library/argparse.rst:2149 +#: library/argparse.rst:2168 msgid "Exceptions" msgstr "" -#: library/argparse.rst:2153 +#: library/argparse.rst:2172 msgid "An error from creating or using an argument (optional or positional)." msgstr "" -#: library/argparse.rst:2155 +#: library/argparse.rst:2174 msgid "" "The string value of this exception is the message, augmented with " "information about the argument that caused it." msgstr "" -#: library/argparse.rst:2160 +#: library/argparse.rst:2179 msgid "" "Raised when something goes wrong converting a command line string to a type." msgstr "" -#: library/argparse.rst:2164 +#: library/argparse.rst:2183 msgid "Guides and Tutorials" msgstr "" -#: library/argparse.rst:815 +#: library/argparse.rst:809 msgid "? (question mark)" msgstr "" -#: library/argparse.rst:849 library/argparse.rst:863 +#: library/argparse.rst:843 library/argparse.rst:857 msgid "in argparse module" msgstr "" -#: library/argparse.rst:849 +#: library/argparse.rst:843 msgid "* (asterisk)" msgstr "" -#: library/argparse.rst:863 +#: library/argparse.rst:857 msgid "+ (plus)" msgstr "" diff --git a/library/array.po b/library/array.po index 9024111e..5fa917d0 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 32a6aa3b..a3328ce9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -507,9 +507,9 @@ msgstr "" msgid "" "A constant value. The ``value`` attribute of the ``Constant`` literal " "contains the Python object it represents. The values represented can be " -"simple types such as a number, string or ``None``, but also immutable " -"container types (tuples and frozensets) if all of their elements are " -"constant." +"instances of :class:`str`, :class:`bytes`, :class:`int`, :class:`float`, :" +"class:`complex`, and :class:`bool`, and the constants :data:`None` and :data:" +"`Ellipsis`." msgstr "" #: library/ast.rst:279 @@ -2891,19 +2891,19 @@ msgstr "" #: library/ast.rst:2443 msgid "" -"If *show_empty* is ``False`` (the default), empty lists and fields that are " -"``None`` will be omitted from the output." +"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:2446 +#: library/ast.rst:2447 msgid "Added the *indent* option." msgstr "" -#: library/ast.rst:2449 +#: library/ast.rst:2450 msgid "Added the *show_empty* option." msgstr "" -#: library/ast.rst:2452 +#: library/ast.rst:2453 msgid "" ">>> print(ast.dump(ast.parse(\"\"\"\\\n" "... async def f():\n" @@ -2931,93 +2931,93 @@ msgid "" " type_ignores=[])" msgstr "" -#: library/ast.rst:2483 +#: library/ast.rst:2484 msgid "Compiler Flags" msgstr "" -#: library/ast.rst:2485 +#: library/ast.rst:2486 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:2490 +#: library/ast.rst:2491 msgid "" "Enables support for top-level ``await``, ``async for``, ``async with`` and " "async comprehensions." msgstr "" -#: library/ast.rst:2497 +#: library/ast.rst:2498 msgid "" "Generates and returns an abstract syntax tree instead of returning a " "compiled code object." msgstr "" -#: library/ast.rst:2502 +#: library/ast.rst:2503 msgid "" "The returned AST is optimized according to the *optimize* argument in :func:" "`compile` or :func:`ast.parse`." msgstr "" -#: library/ast.rst:2509 +#: library/ast.rst:2510 msgid "" "Enables support for :pep:`484` and :pep:`526` style type comments (``# type: " "``, ``# type: ignore ``)." msgstr "" -#: library/ast.rst:2518 +#: library/ast.rst:2519 msgid "Command-Line Usage" msgstr "" -#: library/ast.rst:2522 +#: library/ast.rst:2523 msgid "" "The :mod:`ast` module can be executed as a script from the command line. It " "is as simple as:" msgstr "" -#: library/ast.rst:2525 +#: library/ast.rst:2526 msgid "python -m ast [-m ] [-a] [infile]" msgstr "" -#: library/ast.rst:2529 +#: library/ast.rst:2530 msgid "The following options are accepted:" msgstr "" -#: library/ast.rst:2535 +#: library/ast.rst:2536 msgid "Show the help message and exit." msgstr "" -#: library/ast.rst:2540 +#: library/ast.rst:2541 msgid "" "Specify what kind of code must be compiled, like the *mode* argument in :" "func:`parse`." msgstr "" -#: library/ast.rst:2545 +#: library/ast.rst:2546 msgid "Don't parse type comments." msgstr "" -#: library/ast.rst:2549 +#: library/ast.rst:2550 msgid "Include attributes such as line numbers and column offsets." msgstr "" -#: library/ast.rst:2554 +#: library/ast.rst:2555 msgid "Indentation of nodes in AST (number of spaces)." msgstr "" -#: library/ast.rst:2556 +#: library/ast.rst:2557 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:2562 +#: library/ast.rst:2563 msgid "" "`Green Tree Snakes `_, an external " "documentation resource, has good details on working with Python ASTs." msgstr "" -#: library/ast.rst:2565 +#: library/ast.rst:2566 msgid "" "`ASTTokens `_ " "annotates Python ASTs with the positions of tokens and text in the source " @@ -3025,21 +3025,21 @@ msgid "" "transformations." msgstr "" -#: library/ast.rst:2570 +#: library/ast.rst:2571 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:2575 +#: library/ast.rst:2576 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:2580 +#: library/ast.rst:2581 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 6796c9db..936f84e2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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-api-index.po b/library/asyncio-api-index.po index 133aa659..6a89fe1d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 6e8f3504..00009179 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -90,36 +90,29 @@ msgstr "" #: library/asyncio-dev.rst:49 msgid "" -"asyncio checks for :ref:`coroutines that were not awaited ` and logs them; this mitigates the \"forgotten await\" " -"pitfall." -msgstr "" - -#: library/asyncio-dev.rst:53 -msgid "" "Many non-threadsafe asyncio APIs (such as :meth:`loop.call_soon` and :meth:" "`loop.call_at` methods) raise an exception if they are called from a wrong " "thread." msgstr "" -#: library/asyncio-dev.rst:57 +#: library/asyncio-dev.rst:53 msgid "" "The execution time of the I/O selector is logged if it takes too long to " "perform an I/O operation." msgstr "" -#: library/asyncio-dev.rst:60 +#: library/asyncio-dev.rst:56 msgid "" "Callbacks taking longer than 100 milliseconds are logged. The :attr:`loop." "slow_callback_duration` attribute can be used to set the minimum execution " "duration in seconds that is considered \"slow\"." msgstr "" -#: library/asyncio-dev.rst:68 +#: library/asyncio-dev.rst:64 msgid "Concurrency and Multithreading" msgstr "" -#: library/asyncio-dev.rst:70 +#: library/asyncio-dev.rst:66 msgid "" "An event loop runs in a thread (typically the main thread) and executes all " "callbacks and Tasks in its thread. While a Task is running in the event " @@ -128,17 +121,17 @@ msgid "" "executes the next Task." msgstr "" -#: library/asyncio-dev.rst:76 +#: library/asyncio-dev.rst:72 msgid "" "To schedule a :term:`callback` from another OS thread, the :meth:`loop." "call_soon_threadsafe` method should be used. Example::" msgstr "" -#: library/asyncio-dev.rst:79 +#: library/asyncio-dev.rst:75 msgid "loop.call_soon_threadsafe(callback, *args)" msgstr "" -#: library/asyncio-dev.rst:81 +#: library/asyncio-dev.rst:77 msgid "" "Almost all asyncio objects are not thread safe, which is typically not a " "problem unless there is code that works with them from outside of a Task or " @@ -146,18 +139,18 @@ msgid "" "API, the :meth:`loop.call_soon_threadsafe` method should be used, e.g.::" msgstr "" -#: library/asyncio-dev.rst:87 +#: library/asyncio-dev.rst:83 msgid "loop.call_soon_threadsafe(fut.cancel)" msgstr "" -#: library/asyncio-dev.rst:89 +#: library/asyncio-dev.rst:85 msgid "" "To schedule a coroutine object from a different OS thread, the :func:" "`run_coroutine_threadsafe` function should be used. It returns a :class:" "`concurrent.futures.Future` to access the result::" msgstr "" -#: library/asyncio-dev.rst:93 +#: library/asyncio-dev.rst:89 msgid "" "async def coro_func():\n" " return await asyncio.sleep(1, 42)\n" @@ -169,11 +162,11 @@ msgid "" "result = future.result()" msgstr "" -#: library/asyncio-dev.rst:102 +#: library/asyncio-dev.rst:98 msgid "To handle signals the event loop must be run in the main thread." msgstr "" -#: library/asyncio-dev.rst:105 +#: library/asyncio-dev.rst:101 msgid "" "The :meth:`loop.run_in_executor` method can be used with a :class:" "`concurrent.futures.ThreadPoolExecutor` to execute blocking code in a " @@ -181,7 +174,7 @@ msgid "" "in." msgstr "" -#: library/asyncio-dev.rst:110 +#: library/asyncio-dev.rst:106 msgid "" "There is currently no way to schedule coroutines or callbacks directly from " "a different process (such as one started with :mod:`multiprocessing`). The :" @@ -194,63 +187,63 @@ msgid "" "different process." msgstr "" -#: library/asyncio-dev.rst:124 +#: library/asyncio-dev.rst:120 msgid "Running Blocking Code" msgstr "" -#: library/asyncio-dev.rst:126 +#: library/asyncio-dev.rst:122 msgid "" "Blocking (CPU-bound) code should not be called directly. For example, if a " "function performs a CPU-intensive calculation for 1 second, all concurrent " "asyncio Tasks and IO operations would be delayed by 1 second." msgstr "" -#: library/asyncio-dev.rst:131 +#: library/asyncio-dev.rst:127 msgid "" "An executor can be used to run a task in a different thread or even in a " "different process to avoid blocking the OS thread with the event loop. See " "the :meth:`loop.run_in_executor` method for more details." msgstr "" -#: library/asyncio-dev.rst:140 +#: library/asyncio-dev.rst:136 msgid "Logging" msgstr "" -#: library/asyncio-dev.rst:142 +#: library/asyncio-dev.rst:138 msgid "" "asyncio uses the :mod:`logging` module and all logging is performed via the " "``\"asyncio\"`` logger." msgstr "" -#: library/asyncio-dev.rst:145 +#: library/asyncio-dev.rst:141 msgid "" "The default log level is :py:const:`logging.INFO`, which can be easily " "adjusted::" msgstr "" -#: library/asyncio-dev.rst:148 +#: library/asyncio-dev.rst:144 msgid "logging.getLogger(\"asyncio\").setLevel(logging.WARNING)" msgstr "" -#: library/asyncio-dev.rst:151 +#: library/asyncio-dev.rst:147 msgid "" "Network logging can block the event loop. It is recommended to use a " "separate thread for handling logs or use non-blocking IO. For example, see :" "ref:`blocking-handlers`." msgstr "" -#: library/asyncio-dev.rst:159 +#: library/asyncio-dev.rst:155 msgid "Detect never-awaited coroutines" msgstr "" -#: library/asyncio-dev.rst:161 +#: library/asyncio-dev.rst:157 msgid "" "When a coroutine function is called, but not awaited (e.g. ``coro()`` " "instead of ``await coro()``) or the coroutine is not scheduled with :meth:" "`asyncio.create_task`, asyncio will emit a :exc:`RuntimeWarning`::" msgstr "" -#: library/asyncio-dev.rst:166 +#: library/asyncio-dev.rst:162 msgid "" "import asyncio\n" "\n" @@ -263,21 +256,21 @@ msgid "" "asyncio.run(main())" msgstr "" -#: library/asyncio-dev.rst:221 +#: library/asyncio-dev.rst:217 msgid "Output::" msgstr "" -#: library/asyncio-dev.rst:178 +#: library/asyncio-dev.rst:174 msgid "" "test.py:7: RuntimeWarning: coroutine 'test' was never awaited\n" " test()" msgstr "" -#: library/asyncio-dev.rst:237 +#: library/asyncio-dev.rst:233 msgid "Output in debug mode::" msgstr "" -#: library/asyncio-dev.rst:183 +#: library/asyncio-dev.rst:179 msgid "" "test.py:7: RuntimeWarning: coroutine 'test' was never awaited\n" "Coroutine created at (most recent call last)\n" @@ -291,23 +284,23 @@ msgid "" " test()" msgstr "" -#: library/asyncio-dev.rst:194 +#: library/asyncio-dev.rst:190 msgid "" "The usual fix is to either await the coroutine or call the :meth:`asyncio." "create_task` function::" msgstr "" -#: library/asyncio-dev.rst:197 +#: library/asyncio-dev.rst:193 msgid "" "async def main():\n" " await test()" msgstr "" -#: library/asyncio-dev.rst:202 +#: library/asyncio-dev.rst:198 msgid "Detect never-retrieved exceptions" msgstr "" -#: library/asyncio-dev.rst:204 +#: library/asyncio-dev.rst:200 msgid "" "If a :meth:`Future.set_exception` is called but the Future object is never " "awaited on, the exception would never be propagated to the user code. In " @@ -315,11 +308,11 @@ msgid "" "garbage collected." msgstr "" -#: library/asyncio-dev.rst:209 +#: library/asyncio-dev.rst:205 msgid "Example of an unhandled exception::" msgstr "" -#: library/asyncio-dev.rst:211 +#: library/asyncio-dev.rst:207 msgid "" "import asyncio\n" "\n" @@ -332,7 +325,7 @@ msgid "" "asyncio.run(main())" msgstr "" -#: library/asyncio-dev.rst:223 +#: library/asyncio-dev.rst:219 msgid "" "Task exception was never retrieved\n" "future: \n" @@ -344,17 +337,17 @@ msgid "" "Exception: not consumed" msgstr "" -#: library/asyncio-dev.rst:232 +#: library/asyncio-dev.rst:228 msgid "" ":ref:`Enable the debug mode ` to get the traceback where " "the task was created::" msgstr "" -#: library/asyncio-dev.rst:235 +#: library/asyncio-dev.rst:231 msgid "asyncio.run(main(), debug=True)" msgstr "" -#: library/asyncio-dev.rst:239 +#: library/asyncio-dev.rst:235 msgid "" "Task exception was never retrieved\n" "future: \n" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po index 887dc85e..a7e83c9a 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -253,8 +253,8 @@ msgid "" "used." msgstr "" -#: library/asyncio-eventloop.rst:177 library/asyncio-eventloop.rst:1301 -#: library/asyncio-eventloop.rst:1750 +#: library/asyncio-eventloop.rst:177 library/asyncio-eventloop.rst:1338 +#: library/asyncio-eventloop.rst:1793 msgid "Example::" msgstr "" @@ -358,8 +358,8 @@ msgid "" "section of the documentation." msgstr "" -#: library/asyncio-eventloop.rst:251 library/asyncio-eventloop.rst:301 -#: library/asyncio-eventloop.rst:321 +#: library/asyncio-eventloop.rst:251 library/asyncio-eventloop.rst:307 +#: library/asyncio-eventloop.rst:333 msgid "" "The *context* keyword-only parameter was added. See :pep:`567` for more " "details." @@ -400,7 +400,7 @@ msgid "" "(can be either an int or a float)." msgstr "" -#: library/asyncio-eventloop.rst:286 library/asyncio-eventloop.rst:318 +#: library/asyncio-eventloop.rst:286 library/asyncio-eventloop.rst:324 msgid "" "An instance of :class:`asyncio.TimerHandle` is returned which can be used to " "cancel the callback." @@ -426,99 +426,134 @@ msgid "" "context is used when no *context* is provided." msgstr "" -#: library/asyncio-eventloop.rst:305 +#: library/asyncio-eventloop.rst:303 +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:311 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:312 +#: library/asyncio-eventloop.rst:318 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:316 +#: library/asyncio-eventloop.rst:322 msgid "This method's behavior is the same as :meth:`call_later`." msgstr "" -#: library/asyncio-eventloop.rst:325 +#: library/asyncio-eventloop.rst:329 +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:337 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:332 +#: library/asyncio-eventloop.rst:344 msgid "" "Return the current time, as a :class:`float` value, according to the event " "loop's internal monotonic clock." msgstr "" -#: library/asyncio-eventloop.rst:336 +#: library/asyncio-eventloop.rst:348 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:342 +#: library/asyncio-eventloop.rst:354 msgid "The :func:`asyncio.sleep` function." msgstr "" -#: library/asyncio-eventloop.rst:346 +#: library/asyncio-eventloop.rst:358 msgid "Creating Futures and Tasks" msgstr "" -#: library/asyncio-eventloop.rst:350 +#: library/asyncio-eventloop.rst:362 msgid "Create an :class:`asyncio.Future` object attached to the event loop." msgstr "" -#: library/asyncio-eventloop.rst:352 +#: library/asyncio-eventloop.rst:364 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:360 +#: library/asyncio-eventloop.rst:372 msgid "" "Schedule the execution of :ref:`coroutine ` *coro*. Return a :" "class:`Task` object." msgstr "" -#: library/asyncio-eventloop.rst:363 +#: library/asyncio-eventloop.rst:375 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:367 +#: library/asyncio-eventloop.rst:379 +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, except *name*, or *context* if it is " +"``None``." +msgstr "" + +#: library/asyncio-eventloop.rst:384 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:370 +#: library/asyncio-eventloop.rst:387 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:374 +#: library/asyncio-eventloop.rst:391 msgid "Added the *name* parameter." msgstr "" -#: library/asyncio-eventloop.rst:377 +#: library/asyncio-eventloop.rst:394 msgid "Added the *context* parameter." msgstr "" -#: library/asyncio-eventloop.rst:382 +#: library/asyncio-eventloop.rst:397 +msgid "" +"Added ``kwargs`` which passes on arbitrary extra parameters, including " +"``name`` and ``context``." +msgstr "" + +#: library/asyncio-eventloop.rst:400 +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:406 msgid "Set a task factory that will be used by :meth:`loop.create_task`." msgstr "" -#: library/asyncio-eventloop.rst:385 +#: library/asyncio-eventloop.rst:409 msgid "" "If *factory* is ``None`` the default task factory will be set. Otherwise, " "*factory* must be a *callable* with the signature matching ``(loop, coro, " @@ -527,80 +562,90 @@ msgid "" "return a :class:`asyncio.Task`-compatible object." msgstr "" -#: library/asyncio-eventloop.rst:393 +#: library/asyncio-eventloop.rst:415 +msgid "Required that all *kwargs* are passed on to :class:`asyncio.Task`." +msgstr "" + +#: library/asyncio-eventloop.rst:418 +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:424 msgid "Return a task factory or ``None`` if the default one is in use." msgstr "" -#: library/asyncio-eventloop.rst:397 +#: library/asyncio-eventloop.rst:428 msgid "Opening network connections" msgstr "" -#: library/asyncio-eventloop.rst:409 +#: library/asyncio-eventloop.rst:440 msgid "" "Open a streaming transport connection to a given address specified by *host* " "and *port*." msgstr "" -#: library/asyncio-eventloop.rst:412 +#: library/asyncio-eventloop.rst:443 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:416 +#: library/asyncio-eventloop.rst:447 msgid "The socket type will be :py:const:`~socket.SOCK_STREAM`." msgstr "" -#: library/asyncio-eventloop.rst:418 library/asyncio-eventloop.rst:1211 -#: library/asyncio-eventloop.rst:1228 +#: library/asyncio-eventloop.rst:449 library/asyncio-eventloop.rst:1248 +#: library/asyncio-eventloop.rst:1265 msgid "" "*protocol_factory* must be a callable returning an :ref:`asyncio protocol " "` implementation." msgstr "" -#: library/asyncio-eventloop.rst:421 +#: library/asyncio-eventloop.rst:452 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:424 +#: library/asyncio-eventloop.rst:455 msgid "The chronological synopsis of the underlying operation is as follows:" msgstr "" -#: library/asyncio-eventloop.rst:426 +#: library/asyncio-eventloop.rst:457 msgid "" "The connection is established and a :ref:`transport ` is " "created for it." msgstr "" -#: library/asyncio-eventloop.rst:429 +#: library/asyncio-eventloop.rst:460 msgid "" "*protocol_factory* is called without arguments and is expected to return a :" "ref:`protocol ` instance." msgstr "" -#: library/asyncio-eventloop.rst:432 +#: library/asyncio-eventloop.rst:463 msgid "" "The protocol instance is coupled with the transport by calling its :meth:" "`~BaseProtocol.connection_made` method." msgstr "" -#: library/asyncio-eventloop.rst:435 +#: library/asyncio-eventloop.rst:466 msgid "A ``(transport, protocol)`` tuple is returned on success." msgstr "" -#: library/asyncio-eventloop.rst:437 +#: library/asyncio-eventloop.rst:468 msgid "" "The created transport is an implementation-dependent bidirectional stream." msgstr "" -#: library/asyncio-eventloop.rst:440 library/asyncio-eventloop.rst:573 +#: library/asyncio-eventloop.rst:471 library/asyncio-eventloop.rst:604 msgid "Other arguments:" msgstr "" -#: library/asyncio-eventloop.rst:442 +#: library/asyncio-eventloop.rst:473 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` " @@ -609,11 +654,11 @@ msgid "" "is used." msgstr "" -#: library/asyncio-eventloop.rst:448 +#: library/asyncio-eventloop.rst:479 msgid ":ref:`SSL/TLS security considerations `" msgstr "" -#: library/asyncio-eventloop.rst:450 +#: library/asyncio-eventloop.rst:481 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 " @@ -624,7 +669,7 @@ msgid "" "potential man-in-the-middle attacks)." msgstr "" -#: library/asyncio-eventloop.rst:458 +#: library/asyncio-eventloop.rst:489 msgid "" "*family*, *proto*, *flags* are the optional address family, protocol and " "flags to be passed through to getaddrinfo() for *host* resolution. If given, " @@ -632,7 +677,7 @@ msgid "" "constants." msgstr "" -#: library/asyncio-eventloop.rst:463 +#: library/asyncio-eventloop.rst:494 msgid "" "*happy_eyeballs_delay*, if given, enables Happy Eyeballs for this " "connection. It should be a floating-point number representing the amount of " @@ -642,7 +687,7 @@ msgid "" "the RFC is ``0.25`` (250 milliseconds)." msgstr "" -#: library/asyncio-eventloop.rst:471 +#: library/asyncio-eventloop.rst:502 msgid "" "*interleave* controls address reordering when a host name resolves to " "multiple IP addresses. If ``0`` or unspecified, no reordering is done, and " @@ -653,7 +698,7 @@ msgid "" "*happy_eyeballs_delay* is not specified, and ``1`` if it is." msgstr "" -#: library/asyncio-eventloop.rst:480 +#: library/asyncio-eventloop.rst:511 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 " @@ -661,37 +706,37 @@ msgid "" "*interleave* and *local_addr* should be specified." msgstr "" -#: library/asyncio-eventloop.rst:488 library/asyncio-eventloop.rst:604 -#: library/asyncio-eventloop.rst:852 +#: library/asyncio-eventloop.rst:519 library/asyncio-eventloop.rst:641 +#: library/asyncio-eventloop.rst:889 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:492 +#: library/asyncio-eventloop.rst:523 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:496 library/asyncio-eventloop.rst:948 +#: library/asyncio-eventloop.rst:527 library/asyncio-eventloop.rst:985 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:500 library/asyncio-eventloop.rst:759 -#: library/asyncio-eventloop.rst:863 library/asyncio-eventloop.rst:952 +#: library/asyncio-eventloop.rst:531 library/asyncio-eventloop.rst:796 +#: library/asyncio-eventloop.rst:900 library/asyncio-eventloop.rst:989 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:504 +#: library/asyncio-eventloop.rst:535 msgid "" "*all_errors* determines what exceptions are raised when a connection cannot " "be created. By default, only a single ``Exception`` is raised: the first " @@ -701,25 +746,25 @@ msgid "" "(even if there is only one)." msgstr "" -#: library/asyncio-eventloop.rst:514 library/asyncio-eventloop.rst:771 +#: library/asyncio-eventloop.rst:545 library/asyncio-eventloop.rst:808 msgid "Added support for SSL/TLS in :class:`ProactorEventLoop`." msgstr "" -#: library/asyncio-eventloop.rst:518 +#: library/asyncio-eventloop.rst:549 msgid "" "The socket option :ref:`socket.TCP_NODELAY ` is set " "by default for all TCP connections." msgstr "" -#: library/asyncio-eventloop.rst:523 library/asyncio-eventloop.rst:873 +#: library/asyncio-eventloop.rst:554 library/asyncio-eventloop.rst:910 msgid "Added the *ssl_handshake_timeout* parameter." msgstr "" -#: library/asyncio-eventloop.rst:527 +#: library/asyncio-eventloop.rst:558 msgid "Added the *happy_eyeballs_delay* and *interleave* parameters." msgstr "" -#: library/asyncio-eventloop.rst:529 +#: library/asyncio-eventloop.rst:560 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 " @@ -730,68 +775,74 @@ msgid "" "visible delay and provides an algorithm." msgstr "" -#: library/asyncio-eventloop.rst:538 +#: library/asyncio-eventloop.rst:569 msgid "For more information: https://datatracker.ietf.org/doc/html/rfc6555" msgstr "" -#: library/asyncio-eventloop.rst:542 library/asyncio-eventloop.rst:668 -#: library/asyncio-eventloop.rst:785 library/asyncio-eventloop.rst:825 -#: library/asyncio-eventloop.rst:877 library/asyncio-eventloop.rst:960 +#: library/asyncio-eventloop.rst:573 library/asyncio-eventloop.rst:705 +#: library/asyncio-eventloop.rst:822 library/asyncio-eventloop.rst:862 +#: library/asyncio-eventloop.rst:914 library/asyncio-eventloop.rst:997 msgid "Added the *ssl_shutdown_timeout* parameter." msgstr "" -#: library/asyncio-eventloop.rst:544 +#: library/asyncio-eventloop.rst:575 msgid "*all_errors* was added." msgstr "" -#: library/asyncio-eventloop.rst:549 +#: library/asyncio-eventloop.rst:580 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:560 +#: library/asyncio-eventloop.rst:591 msgid "Create a datagram connection." msgstr "" -#: library/asyncio-eventloop.rst:562 +#: library/asyncio-eventloop.rst:593 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:566 +#: library/asyncio-eventloop.rst:597 msgid "The socket type will be :py:const:`~socket.SOCK_DGRAM`." msgstr "" -#: library/asyncio-eventloop.rst:568 library/asyncio-eventloop.rst:695 -#: library/asyncio-eventloop.rst:844 +#: library/asyncio-eventloop.rst:599 library/asyncio-eventloop.rst:732 +#: library/asyncio-eventloop.rst:881 msgid "" "*protocol_factory* must be a callable returning a :ref:`protocol ` implementation." msgstr "" -#: library/asyncio-eventloop.rst:571 library/asyncio-eventloop.rst:650 +#: library/asyncio-eventloop.rst:602 library/asyncio-eventloop.rst:687 msgid "A tuple of ``(transport, protocol)`` is returned on success." msgstr "" -#: library/asyncio-eventloop.rst:575 +#: library/asyncio-eventloop.rst:606 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:579 +#: library/asyncio-eventloop.rst:612 +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:616 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:583 +#: library/asyncio-eventloop.rst:620 msgid "" "*family*, *proto*, *flags* are the optional address family, protocol and " "flags to be passed through to :meth:`getaddrinfo` for *host* resolution. If " @@ -799,7 +850,7 @@ msgid "" "module constants." msgstr "" -#: library/asyncio-eventloop.rst:588 +#: library/asyncio-eventloop.rst:625 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 " @@ -808,13 +859,13 @@ msgid "" "is not defined then this capability is unsupported." msgstr "" -#: library/asyncio-eventloop.rst:594 +#: library/asyncio-eventloop.rst:631 msgid "" "*allow_broadcast* tells the kernel to allow this endpoint to send messages " "to the broadcast address." msgstr "" -#: library/asyncio-eventloop.rst:597 +#: library/asyncio-eventloop.rst:634 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 " @@ -822,37 +873,37 @@ msgid "" "`None`)." msgstr "" -#: library/asyncio-eventloop.rst:608 +#: library/asyncio-eventloop.rst:645 msgid "" "See :ref:`UDP echo client protocol ` and :" "ref:`UDP echo server protocol ` examples." msgstr "" -#: library/asyncio-eventloop.rst:611 +#: library/asyncio-eventloop.rst:648 msgid "" "The *family*, *proto*, *flags*, *reuse_address*, *reuse_port*, " "*allow_broadcast*, and *sock* parameters were added." msgstr "" -#: library/asyncio-eventloop.rst:615 +#: library/asyncio-eventloop.rst:652 msgid "Added support for Windows." msgstr "" -#: library/asyncio-eventloop.rst:618 +#: library/asyncio-eventloop.rst:655 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:624 +#: library/asyncio-eventloop.rst:661 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:628 +#: library/asyncio-eventloop.rst:665 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:789 +#: library/asyncio-eventloop.rst:826 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:801 +#: library/asyncio-eventloop.rst:838 msgid "" "Similar to :meth:`loop.create_server` but works with the :py:const:`~socket." "AF_UNIX` socket family." msgstr "" -#: library/asyncio-eventloop.rst:804 +#: library/asyncio-eventloop.rst:841 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:809 +#: library/asyncio-eventloop.rst:846 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:813 +#: library/asyncio-eventloop.rst:850 msgid "" "See the documentation of the :meth:`loop.create_server` method for " "information about arguments to this method." msgstr "" -#: library/asyncio-eventloop.rst:820 +#: library/asyncio-eventloop.rst:857 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:829 +#: library/asyncio-eventloop.rst:866 msgid "Added the *cleanup_socket* parameter." msgstr "" -#: library/asyncio-eventloop.rst:837 +#: library/asyncio-eventloop.rst:874 msgid "Wrap an already accepted connection into a transport/protocol pair." msgstr "" -#: library/asyncio-eventloop.rst:839 +#: library/asyncio-eventloop.rst:876 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:842 library/asyncio-eventloop.rst:934 +#: library/asyncio-eventloop.rst:879 library/asyncio-eventloop.rst:971 msgid "Parameters:" msgstr "" -#: library/asyncio-eventloop.rst:847 +#: library/asyncio-eventloop.rst:884 msgid "" "*sock* is a preexisting socket object returned from :meth:`socket.accept " "`." msgstr "" -#: library/asyncio-eventloop.rst:856 +#: library/asyncio-eventloop.rst:893 msgid "" "*ssl* can be set to an :class:`~ssl.SSLContext` to enable SSL over the " "accepted connections." msgstr "" -#: library/asyncio-eventloop.rst:859 +#: library/asyncio-eventloop.rst:896 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:867 +#: library/asyncio-eventloop.rst:904 msgid "Returns a ``(transport, protocol)`` pair." msgstr "" -#: library/asyncio-eventloop.rst:881 +#: library/asyncio-eventloop.rst:918 msgid "Transferring files" msgstr "" -#: library/asyncio-eventloop.rst:887 +#: library/asyncio-eventloop.rst:924 msgid "" "Send a *file* over a *transport*. Return the total number of bytes sent." msgstr "" -#: library/asyncio-eventloop.rst:890 +#: library/asyncio-eventloop.rst:927 msgid "The method uses high-performance :meth:`os.sendfile` if available." msgstr "" -#: library/asyncio-eventloop.rst:892 +#: library/asyncio-eventloop.rst:929 msgid "*file* must be a regular file object opened in binary mode." msgstr "" -#: library/asyncio-eventloop.rst:894 library/asyncio-eventloop.rst:1155 +#: library/asyncio-eventloop.rst:931 library/asyncio-eventloop.rst:1192 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 " @@ -1143,35 +1194,35 @@ msgid "" "obtain the actual number of bytes sent." msgstr "" -#: library/asyncio-eventloop.rst:901 +#: library/asyncio-eventloop.rst:938 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:905 +#: library/asyncio-eventloop.rst:942 msgid "" "Raise :exc:`SendfileNotAvailableError` if the system does not support the " "*sendfile* syscall and *fallback* is ``False``." msgstr "" -#: library/asyncio-eventloop.rst:912 +#: library/asyncio-eventloop.rst:949 msgid "TLS Upgrade" msgstr "" -#: library/asyncio-eventloop.rst:920 +#: library/asyncio-eventloop.rst:957 msgid "Upgrade an existing transport-based connection to TLS." msgstr "" -#: library/asyncio-eventloop.rst:922 +#: library/asyncio-eventloop.rst:959 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:926 +#: library/asyncio-eventloop.rst:963 msgid "" "Return the created two-interface instance. After *await*, the *protocol* " "must stop using the original *transport* and communicate with the returned " @@ -1179,85 +1230,85 @@ msgid "" "exchanges extra TLS session packets with *transport*." msgstr "" -#: library/asyncio-eventloop.rst:931 +#: library/asyncio-eventloop.rst:968 msgid "" "In some situations (e.g. when the passed transport is already closing) this " "may return ``None``." msgstr "" -#: library/asyncio-eventloop.rst:936 +#: library/asyncio-eventloop.rst:973 msgid "" "*transport* and *protocol* instances that methods like :meth:`~loop." "create_server` and :meth:`~loop.create_connection` return." msgstr "" -#: library/asyncio-eventloop.rst:940 +#: library/asyncio-eventloop.rst:977 msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." msgstr "" -#: library/asyncio-eventloop.rst:942 +#: library/asyncio-eventloop.rst:979 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:945 +#: library/asyncio-eventloop.rst:982 msgid "" "*server_hostname*: sets or overrides the host name that the target server's " "certificate will be matched against." msgstr "" -#: library/asyncio-eventloop.rst:965 +#: library/asyncio-eventloop.rst:1002 msgid "Watching file descriptors" msgstr "" -#: library/asyncio-eventloop.rst:969 +#: library/asyncio-eventloop.rst:1006 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:973 library/asyncio-eventloop.rst:987 +#: library/asyncio-eventloop.rst:1010 library/asyncio-eventloop.rst:1024 msgid "" "Any preexisting callback registered for *fd* is cancelled and replaced by " "*callback*." msgstr "" -#: library/asyncio-eventloop.rst:978 +#: library/asyncio-eventloop.rst:1015 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:983 +#: library/asyncio-eventloop.rst:1020 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:990 library/asyncio-eventloop.rst:1268 +#: library/asyncio-eventloop.rst:1027 library/asyncio-eventloop.rst:1305 msgid "" "Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *callback*." msgstr "" -#: library/asyncio-eventloop.rst:995 +#: library/asyncio-eventloop.rst:1032 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:998 +#: library/asyncio-eventloop.rst:1035 msgid "" "See also :ref:`Platform Support ` section for some " "limitations of these methods." msgstr "" -#: library/asyncio-eventloop.rst:1003 +#: library/asyncio-eventloop.rst:1040 msgid "Working with socket objects directly" msgstr "" -#: library/asyncio-eventloop.rst:1005 +#: library/asyncio-eventloop.rst:1042 msgid "" "In general, protocol implementations that use transport-based APIs such as :" "meth:`loop.create_connection` and :meth:`loop.create_server` are faster than " @@ -1266,68 +1317,68 @@ msgid "" "socket` objects directly is more convenient." msgstr "" -#: library/asyncio-eventloop.rst:1015 +#: library/asyncio-eventloop.rst:1052 msgid "" "Receive up to *nbytes* from *sock*. Asynchronous version of :meth:`socket." "recv() `." msgstr "" -#: library/asyncio-eventloop.rst:1018 +#: library/asyncio-eventloop.rst:1055 msgid "Return the received data as a bytes object." msgstr "" -#: library/asyncio-eventloop.rst:1020 library/asyncio-eventloop.rst:1035 -#: library/asyncio-eventloop.rst:1047 library/asyncio-eventloop.rst:1060 -#: library/asyncio-eventloop.rst:1076 library/asyncio-eventloop.rst:1092 -#: library/asyncio-eventloop.rst:1103 library/asyncio-eventloop.rst:1130 -#: library/asyncio-eventloop.rst:1169 +#: library/asyncio-eventloop.rst:1057 library/asyncio-eventloop.rst:1072 +#: library/asyncio-eventloop.rst:1084 library/asyncio-eventloop.rst:1097 +#: library/asyncio-eventloop.rst:1113 library/asyncio-eventloop.rst:1129 +#: library/asyncio-eventloop.rst:1140 library/asyncio-eventloop.rst:1167 +#: library/asyncio-eventloop.rst:1206 msgid "*sock* must be a non-blocking socket." msgstr "" -#: library/asyncio-eventloop.rst:1022 +#: library/asyncio-eventloop.rst:1059 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:1030 +#: library/asyncio-eventloop.rst:1067 msgid "" "Receive data from *sock* into the *buf* buffer. Modeled after the blocking :" "meth:`socket.recv_into() ` method." msgstr "" -#: library/asyncio-eventloop.rst:1033 +#: library/asyncio-eventloop.rst:1070 msgid "Return the number of bytes written to the buffer." msgstr "" -#: library/asyncio-eventloop.rst:1042 +#: library/asyncio-eventloop.rst:1079 msgid "" "Receive a datagram of up to *bufsize* from *sock*. Asynchronous version of :" "meth:`socket.recvfrom() `." msgstr "" -#: library/asyncio-eventloop.rst:1045 +#: library/asyncio-eventloop.rst:1082 msgid "Return a tuple of (received data, remote address)." msgstr "" -#: library/asyncio-eventloop.rst:1054 +#: library/asyncio-eventloop.rst:1091 msgid "" "Receive a datagram of up to *nbytes* from *sock* into *buf*. Asynchronous " "version of :meth:`socket.recvfrom_into() `." msgstr "" -#: library/asyncio-eventloop.rst:1058 +#: library/asyncio-eventloop.rst:1095 msgid "Return a tuple of (number of bytes received, remote address)." msgstr "" -#: library/asyncio-eventloop.rst:1067 +#: library/asyncio-eventloop.rst:1104 msgid "" "Send *data* to the *sock* socket. Asynchronous version of :meth:`socket." "sendall() `." msgstr "" -#: library/asyncio-eventloop.rst:1070 +#: library/asyncio-eventloop.rst:1107 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 " @@ -1336,33 +1387,33 @@ msgid "" "the connection." msgstr "" -#: library/asyncio-eventloop.rst:1078 library/asyncio-eventloop.rst:1132 +#: library/asyncio-eventloop.rst:1115 library/asyncio-eventloop.rst:1169 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:1086 +#: library/asyncio-eventloop.rst:1123 msgid "" "Send a datagram from *sock* to *address*. Asynchronous version of :meth:" "`socket.sendto() `." msgstr "" -#: library/asyncio-eventloop.rst:1090 +#: library/asyncio-eventloop.rst:1127 msgid "Return the number of bytes sent." msgstr "" -#: library/asyncio-eventloop.rst:1099 +#: library/asyncio-eventloop.rst:1136 msgid "Connect *sock* to a remote socket at *address*." msgstr "" -#: library/asyncio-eventloop.rst:1101 +#: library/asyncio-eventloop.rst:1138 msgid "" "Asynchronous version of :meth:`socket.connect() `." msgstr "" -#: library/asyncio-eventloop.rst:1105 +#: library/asyncio-eventloop.rst:1142 msgid "" "``address`` no longer needs to be resolved. ``sock_connect`` will try to " "check if the *address* is already resolved by calling :func:`socket." @@ -1370,19 +1421,19 @@ msgid "" "*address*." msgstr "" -#: library/asyncio-eventloop.rst:1114 +#: library/asyncio-eventloop.rst:1151 msgid "" ":meth:`loop.create_connection` and :func:`asyncio.open_connection() " "`." msgstr "" -#: library/asyncio-eventloop.rst:1121 +#: library/asyncio-eventloop.rst:1158 msgid "" "Accept a connection. Modeled after the blocking :meth:`socket.accept() " "` method." msgstr "" -#: library/asyncio-eventloop.rst:1124 +#: library/asyncio-eventloop.rst:1161 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 " @@ -1390,57 +1441,57 @@ msgid "" "the address bound to the socket on the other end of the connection." msgstr "" -#: library/asyncio-eventloop.rst:1139 +#: library/asyncio-eventloop.rst:1176 msgid ":meth:`loop.create_server` and :func:`start_server`." msgstr "" -#: library/asyncio-eventloop.rst:1145 +#: library/asyncio-eventloop.rst:1182 msgid "" "Send a file using high-performance :mod:`os.sendfile` if possible. Return " "the total number of bytes sent." msgstr "" -#: library/asyncio-eventloop.rst:1148 +#: library/asyncio-eventloop.rst:1185 msgid "" "Asynchronous version of :meth:`socket.sendfile() `." msgstr "" -#: library/asyncio-eventloop.rst:1150 +#: library/asyncio-eventloop.rst:1187 msgid "" "*sock* must be a non-blocking :const:`socket.SOCK_STREAM` :class:`~socket." "socket`." msgstr "" -#: library/asyncio-eventloop.rst:1153 +#: library/asyncio-eventloop.rst:1190 msgid "*file* must be a regular file object open in binary mode." msgstr "" -#: library/asyncio-eventloop.rst:1162 +#: library/asyncio-eventloop.rst:1199 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:1166 +#: library/asyncio-eventloop.rst:1203 msgid "" "Raise :exc:`SendfileNotAvailableError` if the system does not support " "*sendfile* syscall and *fallback* is ``False``." msgstr "" -#: library/asyncio-eventloop.rst:1175 +#: library/asyncio-eventloop.rst:1212 msgid "DNS" msgstr "" -#: library/asyncio-eventloop.rst:1181 +#: library/asyncio-eventloop.rst:1218 msgid "Asynchronous version of :meth:`socket.getaddrinfo`." msgstr "" -#: library/asyncio-eventloop.rst:1186 +#: library/asyncio-eventloop.rst:1223 msgid "Asynchronous version of :meth:`socket.getnameinfo`." msgstr "" -#: library/asyncio-eventloop.rst:1189 +#: library/asyncio-eventloop.rst:1226 msgid "" "Both *getaddrinfo* and *getnameinfo* internally utilize their synchronous " "versions through the loop's default thread pool executor. When this executor " @@ -1450,7 +1501,7 @@ msgid "" "executor with a larger number of workers." msgstr "" -#: library/asyncio-eventloop.rst:1196 +#: library/asyncio-eventloop.rst:1233 msgid "" "Both *getaddrinfo* and *getnameinfo* methods were always documented to " "return a coroutine, but prior to Python 3.7 they were, in fact, returning :" @@ -1458,66 +1509,66 @@ msgid "" "coroutines." msgstr "" -#: library/asyncio-eventloop.rst:1204 +#: library/asyncio-eventloop.rst:1241 msgid "Working with pipes" msgstr "" -#: library/asyncio-eventloop.rst:1209 +#: library/asyncio-eventloop.rst:1246 msgid "Register the read end of *pipe* in the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1214 +#: library/asyncio-eventloop.rst:1251 msgid "*pipe* is a :term:`file-like object `." msgstr "" -#: library/asyncio-eventloop.rst:1216 +#: library/asyncio-eventloop.rst:1253 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:1220 library/asyncio-eventloop.rst:1237 +#: library/asyncio-eventloop.rst:1257 library/asyncio-eventloop.rst:1274 msgid "" "With :class:`SelectorEventLoop` event loop, the *pipe* is set to non-" "blocking mode." msgstr "" -#: library/asyncio-eventloop.rst:1226 +#: library/asyncio-eventloop.rst:1263 msgid "Register the write end of *pipe* in the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1231 +#: library/asyncio-eventloop.rst:1268 msgid "*pipe* is :term:`file-like object `." msgstr "" -#: library/asyncio-eventloop.rst:1233 +#: library/asyncio-eventloop.rst:1270 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:1242 +#: library/asyncio-eventloop.rst:1279 msgid "" ":class:`SelectorEventLoop` does not support the above methods on Windows. " "Use :class:`ProactorEventLoop` instead for Windows." msgstr "" -#: library/asyncio-eventloop.rst:1247 +#: library/asyncio-eventloop.rst:1284 msgid "" "The :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` methods." msgstr "" -#: library/asyncio-eventloop.rst:1252 +#: library/asyncio-eventloop.rst:1289 msgid "Unix signals" msgstr "" -#: library/asyncio-eventloop.rst:1258 +#: library/asyncio-eventloop.rst:1295 msgid "Set *callback* as the handler for the *signum* signal." msgstr "" -#: library/asyncio-eventloop.rst:1260 +#: library/asyncio-eventloop.rst:1297 msgid "" "The callback will be invoked by *loop*, along with other queued callbacks " "and runnable coroutines of that event loop. Unlike signal handlers " @@ -1525,40 +1576,40 @@ msgid "" "function is allowed to interact with the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1265 +#: library/asyncio-eventloop.rst:1302 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:1271 +#: library/asyncio-eventloop.rst:1308 msgid "" "Like :func:`signal.signal`, this function must be invoked in the main thread." msgstr "" -#: library/asyncio-eventloop.rst:1276 +#: library/asyncio-eventloop.rst:1313 msgid "Remove the handler for the *sig* signal." msgstr "" -#: library/asyncio-eventloop.rst:1278 +#: library/asyncio-eventloop.rst:1315 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:1285 +#: library/asyncio-eventloop.rst:1322 msgid "The :mod:`signal` module." msgstr "" -#: library/asyncio-eventloop.rst:1289 +#: library/asyncio-eventloop.rst:1326 msgid "Executing code in thread or process pools" msgstr "" -#: library/asyncio-eventloop.rst:1293 +#: library/asyncio-eventloop.rst:1330 msgid "Arrange for *func* to be called in the specified executor." msgstr "" -#: library/asyncio-eventloop.rst:1295 +#: library/asyncio-eventloop.rst:1332 msgid "" "The *executor* argument should be an :class:`concurrent.futures.Executor` " "instance. The default executor is used if *executor* is ``None``. The " @@ -1567,7 +1618,7 @@ msgid "" "and used by :func:`run_in_executor` if needed." msgstr "" -#: library/asyncio-eventloop.rst:1303 +#: library/asyncio-eventloop.rst:1340 msgid "" "import asyncio\n" "import concurrent.futures\n" @@ -1610,7 +1661,7 @@ msgid "" " asyncio.run(main())" msgstr "" -#: library/asyncio-eventloop.rst:1343 +#: library/asyncio-eventloop.rst:1380 msgid "" "Note that the entry point guard (``if __name__ == '__main__'``) is required " "for option 3 due to the peculiarities of :mod:`multiprocessing`, which is " @@ -1618,17 +1669,17 @@ msgid "" "importing of main module `." msgstr "" -#: library/asyncio-eventloop.rst:1348 +#: library/asyncio-eventloop.rst:1385 msgid "This method returns a :class:`asyncio.Future` object." msgstr "" -#: library/asyncio-eventloop.rst:1350 +#: library/asyncio-eventloop.rst:1387 msgid "" "Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *func*." msgstr "" -#: library/asyncio-eventloop.rst:1353 +#: library/asyncio-eventloop.rst:1390 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 " @@ -1636,32 +1687,32 @@ msgid "" "default." msgstr "" -#: library/asyncio-eventloop.rst:1362 +#: library/asyncio-eventloop.rst:1399 msgid "" "Set *executor* as the default executor used by :meth:`run_in_executor`. " "*executor* must be an instance of :class:`~concurrent.futures." "ThreadPoolExecutor`." msgstr "" -#: library/asyncio-eventloop.rst:1366 +#: library/asyncio-eventloop.rst:1403 msgid "" "*executor* must be an instance of :class:`~concurrent.futures." "ThreadPoolExecutor`." msgstr "" -#: library/asyncio-eventloop.rst:1372 +#: library/asyncio-eventloop.rst:1409 msgid "Error Handling API" msgstr "" -#: library/asyncio-eventloop.rst:1374 +#: library/asyncio-eventloop.rst:1411 msgid "Allows customizing how exceptions are handled in the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1378 +#: library/asyncio-eventloop.rst:1415 msgid "Set *handler* as the new event loop exception handler." msgstr "" -#: library/asyncio-eventloop.rst:1380 +#: library/asyncio-eventloop.rst:1417 msgid "" "If *handler* is ``None``, the default exception handler will be set. " "Otherwise, *handler* must be a callable with the signature matching ``(loop, " @@ -1670,190 +1721,190 @@ msgid "" "(see :meth:`call_exception_handler` documentation for details about context)." msgstr "" -#: library/asyncio-eventloop.rst:1388 +#: library/asyncio-eventloop.rst:1425 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:1394 +#: library/asyncio-eventloop.rst:1431 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:1399 +#: library/asyncio-eventloop.rst:1436 msgid "" "Return the current exception handler, or ``None`` if no custom exception " "handler was set." msgstr "" -#: library/asyncio-eventloop.rst:1406 +#: library/asyncio-eventloop.rst:1443 msgid "Default exception handler." msgstr "" -#: library/asyncio-eventloop.rst:1408 +#: library/asyncio-eventloop.rst:1445 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:1412 +#: library/asyncio-eventloop.rst:1449 msgid "" "*context* parameter has the same meaning as in :meth:" "`call_exception_handler`." msgstr "" -#: library/asyncio-eventloop.rst:1417 +#: library/asyncio-eventloop.rst:1454 msgid "Call the current event loop exception handler." msgstr "" -#: library/asyncio-eventloop.rst:1419 +#: library/asyncio-eventloop.rst:1456 msgid "" "*context* is a ``dict`` object containing the following keys (new keys may " "be introduced in future Python versions):" msgstr "" -#: library/asyncio-eventloop.rst:1422 +#: library/asyncio-eventloop.rst:1459 msgid "'message': Error message;" msgstr "" -#: library/asyncio-eventloop.rst:1423 +#: library/asyncio-eventloop.rst:1460 msgid "'exception' (optional): Exception object;" msgstr "" -#: library/asyncio-eventloop.rst:1424 +#: library/asyncio-eventloop.rst:1461 msgid "'future' (optional): :class:`asyncio.Future` instance;" msgstr "" -#: library/asyncio-eventloop.rst:1425 +#: library/asyncio-eventloop.rst:1462 msgid "'task' (optional): :class:`asyncio.Task` instance;" msgstr "" -#: library/asyncio-eventloop.rst:1426 +#: library/asyncio-eventloop.rst:1463 msgid "'handle' (optional): :class:`asyncio.Handle` instance;" msgstr "" -#: library/asyncio-eventloop.rst:1427 +#: library/asyncio-eventloop.rst:1464 msgid "'protocol' (optional): :ref:`Protocol ` instance;" msgstr "" -#: library/asyncio-eventloop.rst:1428 +#: library/asyncio-eventloop.rst:1465 msgid "'transport' (optional): :ref:`Transport ` instance;" msgstr "" -#: library/asyncio-eventloop.rst:1429 +#: library/asyncio-eventloop.rst:1466 msgid "'socket' (optional): :class:`socket.socket` instance;" msgstr "" -#: library/asyncio-eventloop.rst:1430 +#: library/asyncio-eventloop.rst:1467 msgid "'source_traceback' (optional): Traceback of the source;" msgstr "" -#: library/asyncio-eventloop.rst:1431 +#: library/asyncio-eventloop.rst:1468 msgid "'handle_traceback' (optional): Traceback of the handle;" msgstr "" -#: library/asyncio-eventloop.rst:1432 +#: library/asyncio-eventloop.rst:1469 msgid "'asyncgen' (optional): Asynchronous generator that caused" msgstr "" -#: library/asyncio-eventloop.rst:1433 +#: library/asyncio-eventloop.rst:1470 msgid "the exception." msgstr "" -#: library/asyncio-eventloop.rst:1437 +#: library/asyncio-eventloop.rst:1474 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:1442 +#: library/asyncio-eventloop.rst:1479 msgid "Enabling debug mode" msgstr "" -#: library/asyncio-eventloop.rst:1446 +#: library/asyncio-eventloop.rst:1483 msgid "Get the debug mode (:class:`bool`) of the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1448 +#: library/asyncio-eventloop.rst:1485 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:1454 +#: library/asyncio-eventloop.rst:1491 msgid "Set the debug mode of the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1458 +#: library/asyncio-eventloop.rst:1495 msgid "" "The new :ref:`Python Development Mode ` can now also be used to " "enable the debug mode." msgstr "" -#: library/asyncio-eventloop.rst:1463 +#: library/asyncio-eventloop.rst:1500 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:1467 +#: library/asyncio-eventloop.rst:1504 msgid "Default value is 100 milliseconds." msgstr "" -#: library/asyncio-eventloop.rst:1471 +#: library/asyncio-eventloop.rst:1508 msgid "The :ref:`debug mode of asyncio `." msgstr "" -#: library/asyncio-eventloop.rst:1475 +#: library/asyncio-eventloop.rst:1512 msgid "Running Subprocesses" msgstr "" -#: library/asyncio-eventloop.rst:1477 +#: library/asyncio-eventloop.rst:1514 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:1484 +#: library/asyncio-eventloop.rst:1521 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:1496 +#: library/asyncio-eventloop.rst:1533 msgid "" "Create a subprocess from one or more string arguments specified by *args*." msgstr "" -#: library/asyncio-eventloop.rst:1499 +#: library/asyncio-eventloop.rst:1536 msgid "*args* must be a list of strings represented by:" msgstr "" -#: library/asyncio-eventloop.rst:1501 +#: library/asyncio-eventloop.rst:1538 msgid ":class:`str`;" msgstr "" -#: library/asyncio-eventloop.rst:1502 +#: library/asyncio-eventloop.rst:1539 msgid "" "or :class:`bytes`, encoded to the :ref:`filesystem encoding `." msgstr "" -#: library/asyncio-eventloop.rst:1505 +#: library/asyncio-eventloop.rst:1542 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:1509 +#: library/asyncio-eventloop.rst:1546 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 " @@ -1861,81 +1912,81 @@ msgid "" "which is list of strings, *subprocess_exec* takes multiple string arguments." msgstr "" -#: library/asyncio-eventloop.rst:1515 +#: library/asyncio-eventloop.rst:1552 msgid "" "The *protocol_factory* must be a callable returning a subclass of the :class:" "`asyncio.SubprocessProtocol` class." msgstr "" -#: library/asyncio-eventloop.rst:1518 +#: library/asyncio-eventloop.rst:1555 msgid "Other parameters:" msgstr "" -#: library/asyncio-eventloop.rst:1520 +#: library/asyncio-eventloop.rst:1557 msgid "*stdin* can be any of these:" msgstr "" -#: library/asyncio-eventloop.rst:1522 library/asyncio-eventloop.rst:1533 -#: library/asyncio-eventloop.rst:1543 +#: library/asyncio-eventloop.rst:1559 library/asyncio-eventloop.rst:1570 +#: library/asyncio-eventloop.rst:1580 msgid "a file-like object" msgstr "" -#: library/asyncio-eventloop.rst:1523 +#: library/asyncio-eventloop.rst:1560 msgid "" "an existing file descriptor (a positive integer), for example those created " "with :meth:`os.pipe`" msgstr "" -#: library/asyncio-eventloop.rst:1524 library/asyncio-eventloop.rst:1534 -#: library/asyncio-eventloop.rst:1544 +#: library/asyncio-eventloop.rst:1561 library/asyncio-eventloop.rst:1571 +#: library/asyncio-eventloop.rst:1581 msgid "" "the :const:`subprocess.PIPE` constant (default) which will create a new pipe " "and connect it," msgstr "" -#: library/asyncio-eventloop.rst:1526 library/asyncio-eventloop.rst:1536 -#: library/asyncio-eventloop.rst:1546 +#: library/asyncio-eventloop.rst:1563 library/asyncio-eventloop.rst:1573 +#: library/asyncio-eventloop.rst:1583 msgid "" "the value ``None`` which will make the subprocess inherit the file " "descriptor from this process" msgstr "" -#: library/asyncio-eventloop.rst:1528 library/asyncio-eventloop.rst:1538 -#: library/asyncio-eventloop.rst:1548 +#: library/asyncio-eventloop.rst:1565 library/asyncio-eventloop.rst:1575 +#: library/asyncio-eventloop.rst:1585 msgid "" "the :const:`subprocess.DEVNULL` constant which indicates that the special :" "data:`os.devnull` file will be used" msgstr "" -#: library/asyncio-eventloop.rst:1531 +#: library/asyncio-eventloop.rst:1568 msgid "*stdout* can be any of these:" msgstr "" -#: library/asyncio-eventloop.rst:1541 +#: library/asyncio-eventloop.rst:1578 msgid "*stderr* can be any of these:" msgstr "" -#: library/asyncio-eventloop.rst:1550 +#: library/asyncio-eventloop.rst:1587 msgid "" "the :const:`subprocess.STDOUT` constant which will connect the standard " "error stream to the process' standard output stream" msgstr "" -#: library/asyncio-eventloop.rst:1553 +#: library/asyncio-eventloop.rst:1590 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:1558 +#: library/asyncio-eventloop.rst:1595 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:1562 +#: library/asyncio-eventloop.rst:1599 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:" @@ -1943,52 +1994,58 @@ msgid "" "the event loop." msgstr "" -#: library/asyncio-eventloop.rst:1567 +#: library/asyncio-eventloop.rst:1604 msgid "" "See the constructor of the :class:`subprocess.Popen` class for documentation " "on other arguments." msgstr "" -#: library/asyncio-eventloop.rst:1570 +#: library/asyncio-eventloop.rst:1607 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:1579 +#: library/asyncio-eventloop.rst:1611 library/asyncio-eventloop.rst:1637 +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:1619 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:1584 +#: library/asyncio-eventloop.rst:1624 msgid "" "This is similar to the standard library :class:`subprocess.Popen` class " "called with ``shell=True``." msgstr "" -#: library/asyncio-eventloop.rst:1587 +#: library/asyncio-eventloop.rst:1627 msgid "" "The *protocol_factory* must be a callable returning a subclass of the :class:" "`SubprocessProtocol` class." msgstr "" -#: library/asyncio-eventloop.rst:1590 +#: library/asyncio-eventloop.rst:1630 msgid "" "See :meth:`~loop.subprocess_exec` for more details about the remaining " "arguments." msgstr "" -#: library/asyncio-eventloop.rst:1593 +#: library/asyncio-eventloop.rst:1633 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:1598 +#: library/asyncio-eventloop.rst:1641 msgid "" "It is the application's responsibility to ensure that all whitespace and " "special characters are quoted appropriately to avoid `shell injection " @@ -1998,74 +2055,74 @@ msgid "" "used to construct shell commands." msgstr "" -#: library/asyncio-eventloop.rst:1607 +#: library/asyncio-eventloop.rst:1650 msgid "Callback Handles" msgstr "" -#: library/asyncio-eventloop.rst:1611 +#: library/asyncio-eventloop.rst:1654 msgid "" "A callback wrapper object returned by :meth:`loop.call_soon`, :meth:`loop." "call_soon_threadsafe`." msgstr "" -#: library/asyncio-eventloop.rst:1616 +#: library/asyncio-eventloop.rst:1659 msgid "" "Return the :class:`contextvars.Context` object associated with the handle." msgstr "" -#: library/asyncio-eventloop.rst:1623 +#: library/asyncio-eventloop.rst:1666 msgid "" "Cancel the callback. If the callback has already been canceled or executed, " "this method has no effect." msgstr "" -#: library/asyncio-eventloop.rst:1628 +#: library/asyncio-eventloop.rst:1671 msgid "Return ``True`` if the callback was cancelled." msgstr "" -#: library/asyncio-eventloop.rst:1634 +#: library/asyncio-eventloop.rst:1677 msgid "" "A callback wrapper object returned by :meth:`loop.call_later`, and :meth:" "`loop.call_at`." msgstr "" -#: library/asyncio-eventloop.rst:1637 +#: library/asyncio-eventloop.rst:1680 msgid "This class is a subclass of :class:`Handle`." msgstr "" -#: library/asyncio-eventloop.rst:1641 +#: library/asyncio-eventloop.rst:1684 msgid "Return a scheduled callback time as :class:`float` seconds." msgstr "" -#: library/asyncio-eventloop.rst:1643 +#: library/asyncio-eventloop.rst:1686 msgid "" "The time is an absolute timestamp, using the same time reference as :meth:" "`loop.time`." msgstr "" -#: library/asyncio-eventloop.rst:1650 +#: library/asyncio-eventloop.rst:1693 msgid "Server Objects" msgstr "" -#: library/asyncio-eventloop.rst:1652 +#: library/asyncio-eventloop.rst:1695 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:1656 +#: library/asyncio-eventloop.rst:1699 msgid "Do not instantiate the :class:`Server` class directly." msgstr "" -#: library/asyncio-eventloop.rst:1660 +#: library/asyncio-eventloop.rst:1703 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:1665 +#: library/asyncio-eventloop.rst:1708 msgid "" "srv = await loop.create_server(...)\n" "\n" @@ -2075,81 +2132,81 @@ msgid "" "# At this point, srv is closed and no longer accepts new connections." msgstr "" -#: library/asyncio-eventloop.rst:1673 +#: library/asyncio-eventloop.rst:1716 msgid "Server object is an asynchronous context manager since Python 3.7." msgstr "" -#: library/asyncio-eventloop.rst:1676 +#: library/asyncio-eventloop.rst:1719 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:1681 +#: library/asyncio-eventloop.rst:1724 msgid "" "Stop serving: close listening sockets and set the :attr:`sockets` attribute " "to ``None``." msgstr "" -#: library/asyncio-eventloop.rst:1684 +#: library/asyncio-eventloop.rst:1727 msgid "" "The sockets that represent existing incoming client connections are left " "open." msgstr "" -#: library/asyncio-eventloop.rst:1687 +#: library/asyncio-eventloop.rst:1730 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:1693 +#: library/asyncio-eventloop.rst:1736 msgid "Close all existing incoming client connections." msgstr "" -#: library/asyncio-eventloop.rst:1695 +#: library/asyncio-eventloop.rst:1738 msgid "" "Calls :meth:`~asyncio.BaseTransport.close` on all associated transports." msgstr "" -#: library/asyncio-eventloop.rst:1698 +#: library/asyncio-eventloop.rst:1741 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:1705 +#: library/asyncio-eventloop.rst:1748 msgid "" "Close all existing incoming client connections immediately, without waiting " "for pending operations to complete." msgstr "" -#: library/asyncio-eventloop.rst:1708 +#: library/asyncio-eventloop.rst:1751 msgid "" "Calls :meth:`~asyncio.WriteTransport.abort` on all associated transports." msgstr "" -#: library/asyncio-eventloop.rst:1711 +#: library/asyncio-eventloop.rst:1754 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:1718 +#: library/asyncio-eventloop.rst:1761 msgid "Return the event loop associated with the server object." msgstr "" -#: library/asyncio-eventloop.rst:1725 +#: library/asyncio-eventloop.rst:1768 msgid "Start accepting connections." msgstr "" -#: library/asyncio-eventloop.rst:1727 +#: library/asyncio-eventloop.rst:1770 msgid "" "This method is idempotent, so it can be called when the server is already " "serving." msgstr "" -#: library/asyncio-eventloop.rst:1730 +#: library/asyncio-eventloop.rst:1773 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 " @@ -2158,19 +2215,19 @@ msgid "" "accepting connections." msgstr "" -#: library/asyncio-eventloop.rst:1742 +#: library/asyncio-eventloop.rst:1785 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:1746 +#: library/asyncio-eventloop.rst:1789 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:1752 +#: library/asyncio-eventloop.rst:1795 msgid "" "async def client_connected(reader, writer):\n" " # Communicate with the client with\n" @@ -2185,56 +2242,56 @@ msgid "" "asyncio.run(main('127.0.0.1', 0))" msgstr "" -#: library/asyncio-eventloop.rst:1768 +#: library/asyncio-eventloop.rst:1811 msgid "Return ``True`` if the server is accepting new connections." msgstr "" -#: library/asyncio-eventloop.rst:1775 +#: library/asyncio-eventloop.rst:1818 msgid "" "Wait until the :meth:`close` method completes and all active connections " "have finished." msgstr "" -#: library/asyncio-eventloop.rst:1780 +#: library/asyncio-eventloop.rst:1823 msgid "" "List of socket-like objects, ``asyncio.trsock.TransportSocket``, which the " "server is listening on." msgstr "" -#: library/asyncio-eventloop.rst:1783 +#: library/asyncio-eventloop.rst:1826 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:1793 +#: library/asyncio-eventloop.rst:1836 msgid "Event Loop Implementations" msgstr "" -#: library/asyncio-eventloop.rst:1795 +#: library/asyncio-eventloop.rst:1838 msgid "" "asyncio ships with two different event loop implementations: :class:" "`SelectorEventLoop` and :class:`ProactorEventLoop`." msgstr "" -#: library/asyncio-eventloop.rst:1798 +#: library/asyncio-eventloop.rst:1841 msgid "By default asyncio is configured to use :class:`EventLoop`." msgstr "" -#: library/asyncio-eventloop.rst:1803 +#: library/asyncio-eventloop.rst:1846 msgid "" "A subclass of :class:`AbstractEventLoop` based on the :mod:`selectors` " "module." msgstr "" -#: library/asyncio-eventloop.rst:1806 +#: library/asyncio-eventloop.rst:1849 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:1810 +#: library/asyncio-eventloop.rst:1853 msgid "" "import asyncio\n" "import selectors\n" @@ -2247,45 +2304,45 @@ msgid "" "asyncio.set_event_loop_policy(MyPolicy())" msgstr "" -#: library/asyncio-eventloop.rst:1826 +#: library/asyncio-eventloop.rst:1869 msgid "" "A subclass of :class:`AbstractEventLoop` for Windows that uses \"I/O " "Completion Ports\" (IOCP)." msgstr "" -#: library/asyncio-eventloop.rst:1832 +#: library/asyncio-eventloop.rst:1875 msgid "" "`MSDN documentation on I/O Completion Ports `_." msgstr "" -#: library/asyncio-eventloop.rst:1837 +#: library/asyncio-eventloop.rst:1880 msgid "" "An alias to the most efficient available subclass of :class:" "`AbstractEventLoop` for the given platform." msgstr "" -#: library/asyncio-eventloop.rst:1840 +#: library/asyncio-eventloop.rst:1883 msgid "" "It is an alias to :class:`SelectorEventLoop` on Unix and :class:" "`ProactorEventLoop` on Windows." msgstr "" -#: library/asyncio-eventloop.rst:1846 +#: library/asyncio-eventloop.rst:1889 msgid "Abstract base class for asyncio-compliant event loops." msgstr "" -#: library/asyncio-eventloop.rst:1848 +#: library/asyncio-eventloop.rst:1891 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:1854 +#: library/asyncio-eventloop.rst:1897 msgid "Examples" msgstr "" -#: library/asyncio-eventloop.rst:1856 +#: library/asyncio-eventloop.rst:1899 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." @@ -2293,17 +2350,17 @@ msgid "" "consider using the high-level functions like :func:`asyncio.run`." msgstr "" -#: library/asyncio-eventloop.rst:1866 +#: library/asyncio-eventloop.rst:1909 msgid "Hello World with call_soon()" msgstr "" -#: library/asyncio-eventloop.rst:1868 +#: library/asyncio-eventloop.rst:1911 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:1872 +#: library/asyncio-eventloop.rst:1915 msgid "" "import asyncio\n" "\n" @@ -2324,24 +2381,24 @@ msgid "" " loop.close()" msgstr "" -#: library/asyncio-eventloop.rst:1892 +#: library/asyncio-eventloop.rst:1935 msgid "" "A similar :ref:`Hello World ` example created with a coroutine " "and the :func:`run` function." msgstr "" -#: library/asyncio-eventloop.rst:1899 +#: library/asyncio-eventloop.rst:1942 msgid "Display the current date with call_later()" msgstr "" -#: library/asyncio-eventloop.rst:1901 +#: library/asyncio-eventloop.rst:1944 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:1905 +#: library/asyncio-eventloop.rst:1948 msgid "" "import asyncio\n" "import datetime\n" @@ -2366,23 +2423,23 @@ msgid "" " loop.close()" msgstr "" -#: library/asyncio-eventloop.rst:1929 +#: library/asyncio-eventloop.rst:1972 msgid "" "A similar :ref:`current date ` example created with a " "coroutine and the :func:`run` function." msgstr "" -#: library/asyncio-eventloop.rst:1936 +#: library/asyncio-eventloop.rst:1979 msgid "Watch a file descriptor for read events" msgstr "" -#: library/asyncio-eventloop.rst:1938 +#: library/asyncio-eventloop.rst:1981 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:1941 +#: library/asyncio-eventloop.rst:1984 msgid "" "import asyncio\n" "from socket import socketpair\n" @@ -2418,33 +2475,33 @@ msgid "" " loop.close()" msgstr "" -#: library/asyncio-eventloop.rst:1976 +#: library/asyncio-eventloop.rst:2019 msgid "" "A similar :ref:`example ` using " "transports, protocols, and the :meth:`loop.create_connection` method." msgstr "" -#: library/asyncio-eventloop.rst:1980 +#: library/asyncio-eventloop.rst:2023 msgid "" "Another similar :ref:`example ` " "using the high-level :func:`asyncio.open_connection` function and streams." msgstr "" -#: library/asyncio-eventloop.rst:1988 +#: library/asyncio-eventloop.rst:2031 msgid "Set signal handlers for SIGINT and SIGTERM" msgstr "" -#: library/asyncio-eventloop.rst:1990 +#: library/asyncio-eventloop.rst:2033 msgid "(This ``signals`` example only works on Unix.)" msgstr "" -#: library/asyncio-eventloop.rst:1992 +#: library/asyncio-eventloop.rst:2035 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:1995 +#: library/asyncio-eventloop.rst:2038 msgid "" "import asyncio\n" "import functools\n" diff --git a/library/asyncio-exceptions.po b/library/asyncio-exceptions.po index c833d124..10ea59fe 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 d9553135..4e7edc80 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 f90d687e..a41a880e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -114,31 +114,31 @@ msgid "" "*loop* is not specified and there is no running event loop." msgstr "" -#: library/asyncio-future.rst:79 +#: library/asyncio-future.rst:80 msgid "Future Object" msgstr "" -#: library/asyncio-future.rst:83 +#: library/asyncio-future.rst:84 msgid "" "A Future represents an eventual result of an asynchronous operation. Not " "thread-safe." msgstr "" -#: library/asyncio-future.rst:86 +#: library/asyncio-future.rst:87 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:91 +#: library/asyncio-future.rst:92 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:96 +#: library/asyncio-future.rst:97 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." @@ -146,175 +146,175 @@ msgid "" "their own optimized implementations of a Future object." msgstr "" -#: library/asyncio-future.rst:102 +#: library/asyncio-future.rst:103 msgid "Added support for the :mod:`contextvars` module." msgstr "" -#: library/asyncio-future.rst:105 +#: library/asyncio-future.rst:106 msgid "" "Deprecation warning is emitted if *loop* is not specified and there is no " "running event loop." msgstr "" -#: library/asyncio-future.rst:111 +#: library/asyncio-future.rst:112 msgid "Return the result of the Future." msgstr "" -#: library/asyncio-future.rst:113 +#: library/asyncio-future.rst:114 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:116 +#: library/asyncio-future.rst:117 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:207 +#: library/asyncio-future.rst:208 msgid "" "If the Future has been *cancelled*, this method raises a :exc:" "`CancelledError` exception." msgstr "" -#: library/asyncio-future.rst:122 +#: library/asyncio-future.rst:123 msgid "" "If the Future's result isn't yet available, this method raises an :exc:" "`InvalidStateError` exception." msgstr "" -#: library/asyncio-future.rst:127 +#: library/asyncio-future.rst:128 msgid "Mark the Future as *done* and set its result." msgstr "" -#: library/asyncio-future.rst:136 +#: library/asyncio-future.rst:137 msgid "" "Raises an :exc:`InvalidStateError` error if the Future is already *done*." msgstr "" -#: library/asyncio-future.rst:134 +#: library/asyncio-future.rst:135 msgid "Mark the Future as *done* and set an exception." msgstr "" -#: library/asyncio-future.rst:141 +#: library/asyncio-future.rst:142 msgid "Return ``True`` if the Future is *done*." msgstr "" -#: library/asyncio-future.rst:143 +#: library/asyncio-future.rst:144 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:149 +#: library/asyncio-future.rst:150 msgid "Return ``True`` if the Future was *cancelled*." msgstr "" -#: library/asyncio-future.rst:151 +#: library/asyncio-future.rst:152 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:154 +#: library/asyncio-future.rst:155 msgid "" "if not fut.cancelled():\n" " fut.set_result(42)" msgstr "" -#: library/asyncio-future.rst:159 +#: library/asyncio-future.rst:160 msgid "Add a callback to be run when the Future is *done*." msgstr "" -#: library/asyncio-future.rst:161 +#: library/asyncio-future.rst:162 msgid "The *callback* is called with the Future object as its only argument." msgstr "" -#: library/asyncio-future.rst:164 +#: library/asyncio-future.rst:165 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:167 +#: library/asyncio-future.rst:168 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:171 +#: library/asyncio-future.rst:172 msgid "" ":func:`functools.partial` can be used to pass parameters to the callback, e." "g.::" msgstr "" -#: library/asyncio-future.rst:174 +#: library/asyncio-future.rst:175 msgid "" "# Call 'print(\"Future:\", fut)' when \"fut\" is done.\n" "fut.add_done_callback(\n" " functools.partial(print, \"Future:\"))" msgstr "" -#: library/asyncio-future.rst:178 +#: library/asyncio-future.rst:179 msgid "" "The *context* keyword-only parameter was added. See :pep:`567` for more " "details." msgstr "" -#: library/asyncio-future.rst:184 +#: library/asyncio-future.rst:185 msgid "Remove *callback* from the callbacks list." msgstr "" -#: library/asyncio-future.rst:186 +#: library/asyncio-future.rst:187 msgid "" "Returns the number of callbacks removed, which is typically 1, unless a " "callback was added more than once." msgstr "" -#: library/asyncio-future.rst:191 +#: library/asyncio-future.rst:192 msgid "Cancel the Future and schedule callbacks." msgstr "" -#: library/asyncio-future.rst:193 +#: library/asyncio-future.rst:194 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:197 +#: library/asyncio-future.rst:198 msgid "Added the *msg* parameter." msgstr "" -#: library/asyncio-future.rst:202 +#: library/asyncio-future.rst:203 msgid "Return the exception that was set on this Future." msgstr "" -#: library/asyncio-future.rst:204 +#: library/asyncio-future.rst:205 msgid "" "The exception (or ``None`` if no exception was set) is returned only if the " "Future is *done*." msgstr "" -#: library/asyncio-future.rst:210 +#: library/asyncio-future.rst:211 msgid "" "If the Future isn't *done* yet, this method raises an :exc:" "`InvalidStateError` exception." msgstr "" -#: library/asyncio-future.rst:215 +#: library/asyncio-future.rst:216 msgid "Return the event loop the Future object is bound to." msgstr "" -#: library/asyncio-future.rst:222 +#: library/asyncio-future.rst:223 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:226 +#: library/asyncio-future.rst:227 msgid "" "async def set_after(fut, delay, value):\n" " # Sleep for *delay* seconds.\n" @@ -345,43 +345,43 @@ msgid "" "asyncio.run(main())" msgstr "" -#: library/asyncio-future.rst:257 +#: library/asyncio-future.rst:258 msgid "" "The Future object was designed to mimic :class:`concurrent.futures.Future`. " "Key differences include:" msgstr "" -#: library/asyncio-future.rst:260 +#: library/asyncio-future.rst:261 msgid "" "unlike asyncio Futures, :class:`concurrent.futures.Future` instances cannot " "be awaited." msgstr "" -#: library/asyncio-future.rst:263 +#: library/asyncio-future.rst:264 msgid "" ":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` do not " "accept the *timeout* argument." msgstr "" -#: library/asyncio-future.rst:266 +#: library/asyncio-future.rst:267 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:270 +#: library/asyncio-future.rst:271 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:274 +#: library/asyncio-future.rst:275 msgid "" "asyncio Future is not compatible with the :func:`concurrent.futures.wait` " "and :func:`concurrent.futures.as_completed` functions." msgstr "" -#: library/asyncio-future.rst:278 +#: library/asyncio-future.rst:279 msgid "" ":meth:`asyncio.Future.cancel` accepts an optional ``msg`` argument, but :" "meth:`concurrent.futures.Future.cancel` does not." diff --git a/library/asyncio-llapi-index.po b/library/asyncio-llapi-index.po index 777a7e09..e970ea40 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 99792100..1d00085f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 8f0e5217..8f965555 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 381df5ba..671baf6f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 bf0fa81e..07d2271f 100644 --- a/library/asyncio-queue.po +++ b/library/asyncio-queue.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" -"PO-Revision-Date: 2025-05-05 22:16+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" "Language: \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* ορισμένο σε true. Αυτό αποδεσμεύει την ένωση ακόμη και όταν δεν " +"έχει γίνει καμία εργασία στις εργασίες, παραβιάζοντας το συνηθισμένο " +"αμετάβλητο για την ένωση μιας ουράς." + +#: 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 9251be58..33399db7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 72b2822c..5d72bb05 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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:430 +#: library/asyncio-stream.rst:441 msgid "" "import asyncio\n" "\n" @@ -111,12 +111,12 @@ msgstr "" msgid "Added the *happy_eyeballs_delay* and *interleave* parameters." msgstr "" -#: library/asyncio-stream.rst:128 library/asyncio-stream.rst:195 +#: library/asyncio-stream.rst:128 library/asyncio-stream.rst:199 msgid "Removed the *loop* parameter." msgstr "" -#: library/asyncio-stream.rst:131 library/asyncio-stream.rst:198 -#: library/asyncio-stream.rst:397 +#: library/asyncio-stream.rst:131 library/asyncio-stream.rst:202 +#: library/asyncio-stream.rst:408 msgid "Added the *ssl_shutdown_timeout* parameter." msgstr "" @@ -144,7 +144,7 @@ msgid "" "The rest of the arguments are passed directly to :meth:`loop.create_server`." msgstr "" -#: library/asyncio-stream.rst:185 +#: library/asyncio-stream.rst:189 msgid "" "The *sock* argument transfers ownership of the socket to the server created. " "To close the socket, call the server's :meth:`~asyncio.Server.close` method." @@ -175,7 +175,7 @@ msgstr "" msgid "See also the documentation of :meth:`loop.create_unix_connection`." msgstr "" -#: library/asyncio-stream.rst:189 +#: library/asyncio-stream.rst:193 msgid "Availability" msgstr "" @@ -194,104 +194,115 @@ msgid "Similar to :func:`start_server` but works with Unix sockets." msgstr "" #: library/asyncio-stream.rst:181 +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-stream.rst:185 msgid "See also the documentation of :meth:`loop.create_unix_server`." msgstr "" -#: library/asyncio-stream.rst:191 +#: library/asyncio-stream.rst:195 msgid "" "Added the *ssl_handshake_timeout* and *start_serving* parameters. The *path* " "parameter can now be a :term:`path-like object`." msgstr "" -#: library/asyncio-stream.rst:203 +#: library/asyncio-stream.rst:205 +msgid "Added the *cleanup_socket* parameter." +msgstr "" + +#: library/asyncio-stream.rst:210 msgid "StreamReader" msgstr "" -#: library/asyncio-stream.rst:207 +#: library/asyncio-stream.rst:214 msgid "" "Represents a reader object that provides APIs to read data from the IO " "stream. As an :term:`asynchronous iterable`, the object supports the :" "keyword:`async for` statement." msgstr "" -#: library/asyncio-stream.rst:211 +#: library/asyncio-stream.rst:218 msgid "" "It is not recommended to instantiate *StreamReader* objects directly; use :" "func:`open_connection` and :func:`start_server` instead." msgstr "" -#: library/asyncio-stream.rst:217 +#: library/asyncio-stream.rst:224 msgid "Acknowledge the EOF." msgstr "" -#: library/asyncio-stream.rst:222 +#: library/asyncio-stream.rst:229 msgid "Read up to *n* bytes from the stream." msgstr "" -#: library/asyncio-stream.rst:224 +#: library/asyncio-stream.rst:231 msgid "" "If *n* is not provided or set to ``-1``, read until EOF, then return all " "read :class:`bytes`. If EOF was received and the internal buffer is empty, " "return an empty ``bytes`` object." msgstr "" -#: library/asyncio-stream.rst:229 +#: library/asyncio-stream.rst:236 msgid "If *n* is ``0``, return an empty ``bytes`` object immediately." msgstr "" -#: library/asyncio-stream.rst:231 +#: library/asyncio-stream.rst:238 msgid "" "If *n* is positive, return at most *n* available ``bytes`` as soon as at " "least 1 byte is available in the internal buffer. If EOF is received before " "any byte is read, return an empty ``bytes`` object." msgstr "" -#: library/asyncio-stream.rst:239 +#: library/asyncio-stream.rst:246 msgid "" "Read one line, where \"line\" is a sequence of bytes ending with ``\\n``." msgstr "" -#: library/asyncio-stream.rst:242 +#: library/asyncio-stream.rst:249 msgid "" "If EOF is received and ``\\n`` was not found, the method returns partially " "read data." msgstr "" -#: library/asyncio-stream.rst:245 +#: library/asyncio-stream.rst:252 msgid "" "If EOF is received and the internal buffer is empty, return an empty " "``bytes`` object." msgstr "" -#: library/asyncio-stream.rst:251 +#: library/asyncio-stream.rst:258 msgid "Read exactly *n* bytes." msgstr "" -#: library/asyncio-stream.rst:253 +#: library/asyncio-stream.rst:260 msgid "" "Raise an :exc:`IncompleteReadError` if EOF is reached before *n* can be " "read. Use the :attr:`IncompleteReadError.partial` attribute to get the " "partially read data." msgstr "" -#: library/asyncio-stream.rst:260 +#: library/asyncio-stream.rst:267 msgid "Read data from the stream until *separator* is found." msgstr "" -#: library/asyncio-stream.rst:262 +#: library/asyncio-stream.rst:269 msgid "" "On success, the data and separator will be removed from the internal buffer " "(consumed). Returned data will include the separator at the end." msgstr "" -#: library/asyncio-stream.rst:266 +#: library/asyncio-stream.rst:273 msgid "" "If the amount of data read exceeds the configured stream limit, a :exc:" "`LimitOverrunError` exception is raised, and the data is left in the " "internal buffer and can be read again." msgstr "" -#: library/asyncio-stream.rst:270 +#: library/asyncio-stream.rst:277 msgid "" "If EOF is reached before the complete separator is found, an :exc:" "`IncompleteReadError` exception is raised, and the internal buffer is " @@ -299,7 +310,7 @@ msgid "" "portion of the separator." msgstr "" -#: library/asyncio-stream.rst:275 +#: library/asyncio-stream.rst:282 msgid "" "The *separator* may also be a tuple of separators. In this case the return " "value will be the shortest possible that has any separator as the suffix. " @@ -307,107 +318,113 @@ msgid "" "separator is considered to be the one that matched." msgstr "" -#: library/asyncio-stream.rst:285 +#: library/asyncio-stream.rst:292 msgid "The *separator* parameter may now be a :class:`tuple` of separators." msgstr "" -#: library/asyncio-stream.rst:290 +#: library/asyncio-stream.rst:297 msgid "Return ``True`` if the buffer is empty and :meth:`feed_eof` was called." msgstr "" -#: library/asyncio-stream.rst:295 +#: library/asyncio-stream.rst:302 msgid "StreamWriter" msgstr "" -#: library/asyncio-stream.rst:299 +#: library/asyncio-stream.rst:306 msgid "" "Represents a writer object that provides APIs to write data to the IO stream." msgstr "" -#: library/asyncio-stream.rst:302 +#: library/asyncio-stream.rst:309 msgid "" "It is not recommended to instantiate *StreamWriter* objects directly; use :" "func:`open_connection` and :func:`start_server` instead." msgstr "" -#: library/asyncio-stream.rst:308 +#: library/asyncio-stream.rst:315 msgid "" "The method attempts to write the *data* 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:324 +#: 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:314 +#: library/asyncio-stream.rst:324 msgid "" "stream.write(data)\n" "await stream.drain()" msgstr "" -#: library/asyncio-stream.rst:319 +#: 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:326 +#: library/asyncio-stream.rst:337 msgid "" "stream.writelines(lines)\n" "await stream.drain()" msgstr "" -#: library/asyncio-stream.rst:331 +#: library/asyncio-stream.rst:342 msgid "The method closes the stream and the underlying socket." msgstr "" -#: library/asyncio-stream.rst:333 +#: 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:336 +#: library/asyncio-stream.rst:347 msgid "" "stream.close()\n" "await stream.wait_closed()" msgstr "" -#: library/asyncio-stream.rst:341 +#: 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:346 +#: 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:351 +#: library/asyncio-stream.rst:362 msgid "Return the underlying asyncio transport." msgstr "" -#: library/asyncio-stream.rst:355 +#: library/asyncio-stream.rst:366 msgid "" "Access optional transport information; see :meth:`BaseTransport." "get_extra_info` for details." msgstr "" -#: library/asyncio-stream.rst:361 +#: library/asyncio-stream.rst:372 msgid "Wait until it is appropriate to resume writing to the stream. Example::" msgstr "" -#: library/asyncio-stream.rst:364 +#: library/asyncio-stream.rst:375 msgid "" "writer.write(data)\n" "await writer.drain()" msgstr "" -#: library/asyncio-stream.rst:367 +#: 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()* " @@ -416,82 +433,82 @@ msgid "" "`drain` returns immediately." msgstr "" -#: library/asyncio-stream.rst:378 +#: library/asyncio-stream.rst:389 msgid "Upgrade an existing stream-based connection to TLS." msgstr "" -#: library/asyncio-stream.rst:380 +#: library/asyncio-stream.rst:391 msgid "Parameters:" msgstr "" -#: library/asyncio-stream.rst:382 +#: library/asyncio-stream.rst:393 msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." msgstr "" -#: library/asyncio-stream.rst:384 +#: 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:387 +#: 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:391 +#: 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:403 +#: 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:411 +#: library/asyncio-stream.rst:422 msgid "Wait until the stream is closed." msgstr "" -#: library/asyncio-stream.rst:413 +#: 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:421 +#: library/asyncio-stream.rst:432 msgid "Examples" msgstr "" -#: library/asyncio-stream.rst:426 +#: library/asyncio-stream.rst:437 msgid "TCP echo client using streams" msgstr "" -#: library/asyncio-stream.rst:428 +#: library/asyncio-stream.rst:439 msgid "TCP echo client using the :func:`asyncio.open_connection` function::" msgstr "" -#: library/asyncio-stream.rst:452 +#: 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:459 +#: library/asyncio-stream.rst:470 msgid "TCP echo server using streams" msgstr "" -#: library/asyncio-stream.rst:461 +#: library/asyncio-stream.rst:472 msgid "TCP echo server using the :func:`asyncio.start_server` function::" msgstr "" -#: library/asyncio-stream.rst:463 +#: library/asyncio-stream.rst:474 msgid "" "import asyncio\n" "\n" @@ -523,23 +540,23 @@ msgid "" "asyncio.run(main())" msgstr "" -#: library/asyncio-stream.rst:495 +#: 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:500 +#: library/asyncio-stream.rst:511 msgid "Get HTTP headers" msgstr "" -#: library/asyncio-stream.rst:502 +#: library/asyncio-stream.rst:513 msgid "" "Simple example querying HTTP headers of the URL passed on the command line::" msgstr "" -#: library/asyncio-stream.rst:504 +#: library/asyncio-stream.rst:515 msgid "" "import asyncio\n" "import urllib.parse\n" @@ -578,33 +595,33 @@ msgid "" "asyncio.run(print_http_headers(url))" msgstr "" -#: library/asyncio-stream.rst:541 +#: library/asyncio-stream.rst:552 msgid "Usage::" msgstr "" -#: library/asyncio-stream.rst:543 +#: library/asyncio-stream.rst:554 msgid "python example.py http://example.com/path/page.html" msgstr "" -#: library/asyncio-stream.rst:545 +#: library/asyncio-stream.rst:556 msgid "or with HTTPS::" msgstr "" -#: library/asyncio-stream.rst:547 +#: library/asyncio-stream.rst:558 msgid "python example.py https://example.com/path/page.html" msgstr "" -#: library/asyncio-stream.rst:553 +#: library/asyncio-stream.rst:564 msgid "Register an open socket to wait for data using streams" msgstr "" -#: library/asyncio-stream.rst:555 +#: library/asyncio-stream.rst:566 msgid "" "Coroutine waiting until a socket receives data using the :func:" "`open_connection` function::" msgstr "" -#: library/asyncio-stream.rst:558 +#: library/asyncio-stream.rst:569 msgid "" "import asyncio\n" "import socket\n" @@ -637,14 +654,14 @@ msgid "" "asyncio.run(wait_for_data())" msgstr "" -#: library/asyncio-stream.rst:590 +#: 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:594 +#: 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 5ebc2692..fed25522 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,94 +397,94 @@ 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 "" "On UNIX *child watchers* are used for subprocess finish waiting, see :ref:" "`asyncio-watchers` for more info." msgstr "" -#: library/asyncio-subprocess.rst:329 +#: library/asyncio-subprocess.rst:335 msgid "" "UNIX switched to use :class:`ThreadedChildWatcher` for spawning subprocesses " "from different threads without any limitation." msgstr "" -#: library/asyncio-subprocess.rst:332 +#: library/asyncio-subprocess.rst:338 msgid "" "Spawning a subprocess with *inactive* current child watcher raises :exc:" "`RuntimeError`." msgstr "" -#: library/asyncio-subprocess.rst:335 +#: library/asyncio-subprocess.rst:341 msgid "" "Note that alternative event loop implementations might have own limitations; " "please refer to their documentation." msgstr "" -#: library/asyncio-subprocess.rst:340 +#: library/asyncio-subprocess.rst:346 msgid "" "The :ref:`Concurrency and multithreading in asyncio ` section." msgstr "" -#: library/asyncio-subprocess.rst:345 +#: library/asyncio-subprocess.rst:351 msgid "Examples" msgstr "" -#: library/asyncio-subprocess.rst:347 +#: library/asyncio-subprocess.rst:353 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:353 +#: library/asyncio-subprocess.rst:359 msgid "" "The subprocess is created by the :func:`create_subprocess_exec` function::" msgstr "" -#: library/asyncio-subprocess.rst:356 +#: library/asyncio-subprocess.rst:362 msgid "" "import asyncio\n" "import sys\n" @@ -504,7 +510,7 @@ msgid "" "print(f\"Current date: {date}\")" msgstr "" -#: library/asyncio-subprocess.rst:380 +#: library/asyncio-subprocess.rst:386 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 a13bb384..a4a7a5a2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 21771eb5..296ddce7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -399,11 +399,11 @@ msgid "" " task.add_done_callback(background_tasks.discard)" msgstr "" -#: library/asyncio-task.rst:1192 +#: library/asyncio-task.rst:1193 msgid "Added the *name* parameter." msgstr "" -#: library/asyncio-task.rst:1199 +#: library/asyncio-task.rst:1200 msgid "Added the *context* parameter." msgstr "" @@ -1463,17 +1463,17 @@ msgstr "" msgid "Return ``True`` if *obj* is a coroutine object." msgstr "" -#: library/asyncio-task.rst:1140 +#: library/asyncio-task.rst:1141 msgid "Task Object" msgstr "" -#: library/asyncio-task.rst:1144 +#: library/asyncio-task.rst:1145 msgid "" "A :class:`Future-like ` object that runs a Python :ref:`coroutine " "`. Not thread-safe." msgstr "" -#: library/asyncio-task.rst:1147 +#: library/asyncio-task.rst:1148 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 " @@ -1481,21 +1481,21 @@ msgid "" "wrapped coroutine resumes." msgstr "" -#: library/asyncio-task.rst:1153 +#: library/asyncio-task.rst:1154 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:1158 +#: library/asyncio-task.rst:1159 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:1163 +#: library/asyncio-task.rst:1164 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 " @@ -1503,20 +1503,20 @@ msgid "" "cancellation, the Future object will be cancelled." msgstr "" -#: library/asyncio-task.rst:1168 +#: library/asyncio-task.rst:1169 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:1173 +#: library/asyncio-task.rst:1174 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:1177 +#: library/asyncio-task.rst:1178 msgid "" "An optional keyword-only *context* argument allows specifying a custom :" "class:`contextvars.Context` for the *coro* to run in. If no *context* is " @@ -1524,7 +1524,7 @@ msgid "" "in the copied context." msgstr "" -#: library/asyncio-task.rst:1182 +#: library/asyncio-task.rst:1183 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 " @@ -1534,96 +1534,96 @@ msgid "" "eagerly and will skip scheduling to the event loop." msgstr "" -#: library/asyncio-task.rst:1189 +#: library/asyncio-task.rst:1190 msgid "Added support for the :mod:`contextvars` module." msgstr "" -#: library/asyncio-task.rst:1195 +#: library/asyncio-task.rst:1196 msgid "" "Deprecation warning is emitted if *loop* is not specified and there is no " "running event loop." msgstr "" -#: library/asyncio-task.rst:1202 +#: library/asyncio-task.rst:1203 msgid "Added the *eager_start* parameter." msgstr "" -#: library/asyncio-task.rst:1207 +#: library/asyncio-task.rst:1208 msgid "Return ``True`` if the Task is *done*." msgstr "" -#: library/asyncio-task.rst:1209 +#: library/asyncio-task.rst:1210 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:1214 +#: library/asyncio-task.rst:1215 msgid "Return the result of the Task." msgstr "" -#: library/asyncio-task.rst:1216 +#: library/asyncio-task.rst:1217 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:1234 +#: library/asyncio-task.rst:1235 msgid "" "If the Task has been *cancelled*, this method raises a :exc:`CancelledError` " "exception." msgstr "" -#: library/asyncio-task.rst:1223 +#: library/asyncio-task.rst:1224 msgid "" "If the Task's result isn't yet available, this method raises an :exc:" "`InvalidStateError` exception." msgstr "" -#: library/asyncio-task.rst:1228 +#: library/asyncio-task.rst:1229 msgid "Return the exception of the Task." msgstr "" -#: library/asyncio-task.rst:1230 +#: library/asyncio-task.rst:1231 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:1237 +#: library/asyncio-task.rst:1238 msgid "" "If the Task isn't *done* yet, this method raises an :exc:`InvalidStateError` " "exception." msgstr "" -#: library/asyncio-task.rst:1242 +#: library/asyncio-task.rst:1243 msgid "Add a callback to be run when the Task is *done*." msgstr "" -#: library/asyncio-task.rst:1253 +#: library/asyncio-task.rst:1254 msgid "This method should only be used in low-level callback-based code." msgstr "" -#: library/asyncio-task.rst:1246 +#: library/asyncio-task.rst:1247 msgid "" "See the documentation of :meth:`Future.add_done_callback` for more details." msgstr "" -#: library/asyncio-task.rst:1251 +#: library/asyncio-task.rst:1252 msgid "Remove *callback* from the callbacks list." msgstr "" -#: library/asyncio-task.rst:1255 +#: library/asyncio-task.rst:1256 msgid "" "See the documentation of :meth:`Future.remove_done_callback` for more " "details." msgstr "" -#: library/asyncio-task.rst:1260 +#: library/asyncio-task.rst:1261 msgid "Return the list of stack frames for this Task." msgstr "" -#: library/asyncio-task.rst:1262 +#: library/asyncio-task.rst:1263 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, " @@ -1631,15 +1631,15 @@ msgid "" "this returns the list of traceback frames." msgstr "" -#: library/asyncio-task.rst:1268 +#: library/asyncio-task.rst:1269 msgid "The frames are always ordered from oldest to newest." msgstr "" -#: library/asyncio-task.rst:1270 +#: library/asyncio-task.rst:1271 msgid "Only one stack frame is returned for a suspended coroutine." msgstr "" -#: library/asyncio-task.rst:1272 +#: library/asyncio-task.rst:1273 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 " @@ -1648,87 +1648,87 @@ msgid "" "are returned. (This matches the behavior of the traceback module.)" msgstr "" -#: library/asyncio-task.rst:1281 +#: library/asyncio-task.rst:1282 msgid "Print the stack or traceback for this Task." msgstr "" -#: library/asyncio-task.rst:1283 +#: library/asyncio-task.rst:1284 msgid "" "This produces output similar to that of the traceback module for the frames " "retrieved by :meth:`get_stack`." msgstr "" -#: library/asyncio-task.rst:1286 +#: library/asyncio-task.rst:1287 msgid "The *limit* argument is passed to :meth:`get_stack` directly." msgstr "" -#: library/asyncio-task.rst:1288 +#: library/asyncio-task.rst:1289 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:1293 +#: library/asyncio-task.rst:1294 msgid "Return the coroutine object wrapped by the :class:`Task`." msgstr "" -#: library/asyncio-task.rst:1297 +#: library/asyncio-task.rst:1298 msgid "" "This will return ``None`` for Tasks which have already completed eagerly. " "See the :ref:`Eager Task Factory `." msgstr "" -#: library/asyncio-task.rst:1304 +#: library/asyncio-task.rst:1305 msgid "Newly added eager task execution means result may be ``None``." msgstr "" -#: library/asyncio-task.rst:1308 +#: library/asyncio-task.rst:1309 msgid "" "Return the :class:`contextvars.Context` object associated with the task." msgstr "" -#: library/asyncio-task.rst:1315 +#: library/asyncio-task.rst:1316 msgid "Return the name of the Task." msgstr "" -#: library/asyncio-task.rst:1317 +#: library/asyncio-task.rst:1318 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:1325 +#: library/asyncio-task.rst:1326 msgid "Set the name of the Task." msgstr "" -#: library/asyncio-task.rst:1327 +#: library/asyncio-task.rst:1328 msgid "" "The *value* argument can be any object, which is then converted to a string." msgstr "" -#: library/asyncio-task.rst:1330 +#: library/asyncio-task.rst:1331 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:1337 +#: library/asyncio-task.rst:1338 msgid "Request the Task to be cancelled." msgstr "" -#: library/asyncio-task.rst:1339 +#: library/asyncio-task.rst:1340 msgid "" "If the Task is already *done* or *cancelled*, return ``False``, otherwise, " "return ``True``." msgstr "" -#: library/asyncio-task.rst:1342 +#: library/asyncio-task.rst:1343 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:1345 +#: library/asyncio-task.rst:1346 msgid "" "The coroutine then has a chance to clean up or even deny the request by " "suppressing the exception with a :keyword:`try` ... ... ``except " @@ -1740,21 +1740,21 @@ msgid "" "addition to catching the exception." msgstr "" -#: library/asyncio-task.rst:1355 +#: library/asyncio-task.rst:1356 msgid "Added the *msg* parameter." msgstr "" -#: library/asyncio-task.rst:1358 +#: library/asyncio-task.rst:1359 msgid "The ``msg`` parameter is propagated from cancelled task to its awaiter." msgstr "" -#: library/asyncio-task.rst:1363 +#: library/asyncio-task.rst:1364 msgid "" "The following example illustrates how coroutines can intercept the " "cancellation request::" msgstr "" -#: library/asyncio-task.rst:1366 +#: library/asyncio-task.rst:1367 msgid "" "async def cancel_me():\n" " print('cancel_me(): before sleep')\n" @@ -1791,32 +1791,32 @@ msgid "" "# main(): cancel_me is cancelled now" msgstr "" -#: library/asyncio-task.rst:1402 +#: library/asyncio-task.rst:1403 msgid "Return ``True`` if the Task is *cancelled*." msgstr "" -#: library/asyncio-task.rst:1404 +#: library/asyncio-task.rst:1405 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:1410 +#: library/asyncio-task.rst:1411 msgid "Decrement the count of cancellation requests to this Task." msgstr "" -#: library/asyncio-task.rst:1412 +#: library/asyncio-task.rst:1413 msgid "Returns the remaining number of cancellation requests." msgstr "" -#: library/asyncio-task.rst:1414 +#: library/asyncio-task.rst:1415 msgid "" "Note that once execution of a cancelled task completed, further calls to :" "meth:`uncancel` are ineffective." msgstr "" -#: library/asyncio-task.rst:1419 +#: library/asyncio-task.rst:1420 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 " @@ -1825,7 +1825,7 @@ msgid "" "respective structured block. For example::" msgstr "" -#: library/asyncio-task.rst:1426 +#: library/asyncio-task.rst:1427 msgid "" "async def make_request_with_timeout():\n" " try:\n" @@ -1839,7 +1839,7 @@ msgid "" " await unrelated_code()" msgstr "" -#: library/asyncio-task.rst:1437 +#: library/asyncio-task.rst:1438 msgid "" "While the block with ``make_request()`` and ``make_another_request()`` might " "get cancelled due to the timeout, ``unrelated_code()`` should continue " @@ -1848,14 +1848,14 @@ msgid "" "similar fashion." msgstr "" -#: library/asyncio-task.rst:1443 +#: library/asyncio-task.rst:1444 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:1447 +#: library/asyncio-task.rst:1448 msgid "" "When this method decrements the cancellation count to zero, the method " "checks if a previous :meth:`cancel` call had arranged for :exc:" @@ -1864,17 +1864,17 @@ msgid "" "``_must_cancel`` flag)." msgstr "" -#: library/asyncio-task.rst:1453 +#: library/asyncio-task.rst:1454 msgid "Changed to rescind pending cancellation requests upon reaching zero." msgstr "" -#: library/asyncio-task.rst:1458 +#: library/asyncio-task.rst:1459 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:1462 +#: library/asyncio-task.rst:1463 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 " @@ -1883,7 +1883,7 @@ msgid "" "to zero." msgstr "" -#: library/asyncio-task.rst:1468 +#: library/asyncio-task.rst:1469 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 daa74218..b2ad7bf9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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:103 +#: library/asyncio.rst:112 msgid "Low-level APIs" msgstr "" -#: library/asyncio.rst:114 +#: library/asyncio.rst:123 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:123 +#: library/asyncio.rst:132 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 7d8fd7d3..e6e1af0f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 aac11273..e5c239b7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 d2edabe7..72dbff41 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3a9cc1b5..bda7fd6c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 59da10f3..342f0254 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -28,22 +28,14 @@ msgstr "" #: library/base64.rst:16 msgid "" "This module provides functions for encoding binary data to printable ASCII " -"characters and decoding such encodings back to binary data. It provides " -"encoding and decoding functions for the encodings specified in :rfc:`4648`, " -"which defines the Base16, Base32, and Base64 algorithms, and for the de-" -"facto standard Ascii85 and Base85 encodings." +"characters and decoding such encodings back to binary data. This includes " +"the :ref:`encodings specified in ` :rfc:`4648` (Base64, " +"Base32 and Base16) and the non-standard :ref:`Base85 encodings `." msgstr "" #: library/base64.rst:22 msgid "" -"The :rfc:`4648` encodings are suitable for encoding binary data so that it " -"can be safely sent by email, used as parts of URLs, or included as part of " -"an HTTP POST request. The encoding algorithm is not the same as the :" -"program:`uuencode` program." -msgstr "" - -#: library/base64.rst:27 -msgid "" "There are two interfaces provided by this module. The modern interface " "supports encoding :term:`bytes-like objects ` to ASCII :" "class:`bytes`, and decoding :term:`bytes-like objects ` " @@ -51,40 +43,47 @@ msgid "" "defined in :rfc:`4648` (normal, and URL- and filesystem-safe) are supported." msgstr "" -#: library/base64.rst:33 +#: library/base64.rst:28 msgid "" -"The legacy interface does not support decoding from strings, but it does " -"provide functions for encoding and decoding to and from :term:`file objects " -"`. It only supports the Base64 standard alphabet, and it adds " -"newlines every 76 characters as per :rfc:`2045`. Note that if you are " -"looking for :rfc:`2045` support you probably want to be looking at the :mod:" -"`email` package instead." +"The :ref:`legacy interface ` does not support decoding from " +"strings, but it does provide functions for encoding and decoding to and " +"from :term:`file objects `. It only supports the Base64 " +"standard alphabet, and it adds newlines every 76 characters as per :rfc:" +"`2045`. Note that if you are looking for :rfc:`2045` support you probably " +"want to be looking at the :mod:`email` package instead." msgstr "" -#: library/base64.rst:41 +#: library/base64.rst:36 msgid "" "ASCII-only Unicode strings are now accepted by the decoding functions of the " "modern interface." msgstr "" -#: library/base64.rst:45 +#: library/base64.rst:40 msgid "" "Any :term:`bytes-like objects ` are now accepted by all " "encoding and decoding functions in this module. Ascii85/Base85 support " "added." msgstr "" -#: library/base64.rst:49 -msgid "The modern interface provides:" +#: library/base64.rst:48 +msgid "RFC 4648 Encodings" msgstr "" -#: library/base64.rst:53 +#: library/base64.rst:50 +msgid "" +"The :rfc:`4648` encodings are suitable for encoding binary data so that it " +"can be safely sent by email, used as parts of URLs, or included as part of " +"an HTTP POST request." +msgstr "" + +#: library/base64.rst:56 msgid "" "Encode the :term:`bytes-like object` *s* using Base64 and return the " "encoded :class:`bytes`." msgstr "" -#: library/base64.rst:56 +#: library/base64.rst:59 msgid "" "Optional *altchars* must be a :term:`bytes-like object` of length 2 which " "specifies an alternative alphabet for the ``+`` and ``/`` characters. This " @@ -93,32 +92,32 @@ msgid "" "used." msgstr "" -#: library/base64.rst:61 +#: library/base64.rst:64 msgid "" "May assert or raise a :exc:`ValueError` if the length of *altchars* is not " "2. Raises a :exc:`TypeError` if *altchars* is not a :term:`bytes-like " "object`." msgstr "" -#: library/base64.rst:67 +#: library/base64.rst:70 msgid "" "Decode the Base64 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." msgstr "" -#: library/base64.rst:70 +#: library/base64.rst:73 msgid "" "Optional *altchars* must be a :term:`bytes-like object` or ASCII string of " "length 2 which specifies the alternative alphabet used instead of the ``+`` " "and ``/`` characters." msgstr "" -#: library/base64.rst:74 +#: library/base64.rst:77 msgid "" "A :exc:`binascii.Error` exception is raised if *s* is incorrectly padded." msgstr "" -#: library/base64.rst:77 +#: library/base64.rst:80 msgid "" "If *validate* is ``False`` (the default), characters that are neither in the " "normal base-64 alphabet nor the alternative alphabet are discarded prior to " @@ -126,30 +125,30 @@ msgid "" "in the input result in a :exc:`binascii.Error`." msgstr "" -#: library/base64.rst:83 +#: library/base64.rst:86 msgid "" "For more information about the strict base64 check, see :func:`binascii." "a2b_base64`" msgstr "" -#: library/base64.rst:85 +#: library/base64.rst:88 msgid "" "May assert or raise a :exc:`ValueError` if the length of *altchars* is not 2." msgstr "" -#: library/base64.rst:89 +#: library/base64.rst:92 msgid "" "Encode :term:`bytes-like object` *s* using the standard Base64 alphabet and " "return the encoded :class:`bytes`." msgstr "" -#: library/base64.rst:95 +#: library/base64.rst:98 msgid "" "Decode :term:`bytes-like object` or ASCII string *s* using the standard " "Base64 alphabet and return the decoded :class:`bytes`." msgstr "" -#: library/base64.rst:101 +#: library/base64.rst:104 msgid "" "Encode :term:`bytes-like object` *s* using the URL- and filesystem-safe " "alphabet, which substitutes ``-`` instead of ``+`` and ``_`` instead of ``/" @@ -157,7 +156,7 @@ msgid "" "The result can still contain ``=``." msgstr "" -#: library/base64.rst:110 +#: library/base64.rst:113 msgid "" "Decode :term:`bytes-like object` or ASCII string *s* using the URL- and " "filesystem-safe alphabet, which substitutes ``-`` instead of ``+`` and ``_`` " @@ -165,25 +164,25 @@ msgid "" "class:`bytes`." msgstr "" -#: library/base64.rst:119 +#: library/base64.rst:122 msgid "" "Encode the :term:`bytes-like object` *s* using Base32 and return the " "encoded :class:`bytes`." msgstr "" -#: library/base64.rst:125 +#: library/base64.rst:128 msgid "" "Decode the Base32 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." msgstr "" -#: library/base64.rst:176 +#: library/base64.rst:179 msgid "" "Optional *casefold* is a flag specifying whether a lowercase alphabet is " "acceptable as input. For security purposes, the default is ``False``." msgstr "" -#: library/base64.rst:132 +#: library/base64.rst:135 msgid "" ":rfc:`4648` allows for optional mapping of the digit 0 (zero) to the letter " "O (oh), and for optional mapping of the digit 1 (one) to either the letter I " @@ -194,25 +193,25 @@ msgid "" "input." msgstr "" -#: library/base64.rst:180 +#: library/base64.rst:183 msgid "" "A :exc:`binascii.Error` is raised if *s* is incorrectly padded or if there " "are non-alphabet characters present in the input." msgstr "" -#: library/base64.rst:146 +#: library/base64.rst:149 msgid "" "Similar to :func:`b32encode` but uses the Extended Hex Alphabet, as defined " "in :rfc:`4648`." msgstr "" -#: library/base64.rst:154 +#: library/base64.rst:157 msgid "" "Similar to :func:`b32decode` but uses the Extended Hex Alphabet, as defined " "in :rfc:`4648`." msgstr "" -#: library/base64.rst:157 +#: library/base64.rst:160 msgid "" "This version does not allow the digit 0 (zero) to the letter O (oh) and " "digit 1 (one) to either the letter I (eye) or letter L (el) mappings, all " @@ -220,70 +219,114 @@ msgid "" "interchangeable." msgstr "" -#: library/base64.rst:167 +#: library/base64.rst:170 msgid "" "Encode the :term:`bytes-like object` *s* using Base16 and return the " "encoded :class:`bytes`." msgstr "" -#: library/base64.rst:173 +#: library/base64.rst:176 msgid "" "Decode the Base16 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." msgstr "" -#: library/base64.rst:187 +#: library/base64.rst:190 +msgid "Base85 Encodings" +msgstr "" + +#: library/base64.rst:192 +msgid "" +"Base85 encoding is not formally specified but rather a de facto standard, " +"thus different systems perform the encoding differently." +msgstr "" + +#: library/base64.rst:195 +msgid "" +"The :func:`a85encode` and :func:`b85encode` functions in this module are two " +"implementations of the de facto standard. You should call the function with " +"the Base85 implementation used by the software you intend to work with." +msgstr "" + +#: library/base64.rst:199 +msgid "" +"The two functions present in this module differ in how they handle the " +"following:" +msgstr "" + +#: library/base64.rst:201 +msgid "Whether to include enclosing ``<~`` and ``~>`` markers" +msgstr "" + +#: library/base64.rst:202 +msgid "Whether to include newline characters" +msgstr "" + +#: library/base64.rst:203 +msgid "The set of ASCII characters used for encoding" +msgstr "" + +#: library/base64.rst:204 +msgid "Handling of null bytes" +msgstr "" + +#: library/base64.rst:206 +msgid "" +"Refer to the documentation of the individual functions for more information." +msgstr "" + +#: library/base64.rst:210 msgid "" "Encode the :term:`bytes-like object` *b* using Ascii85 and return the " "encoded :class:`bytes`." msgstr "" -#: library/base64.rst:190 +#: library/base64.rst:213 msgid "" "*foldspaces* is an optional flag that uses the special short sequence 'y' " "instead of 4 consecutive spaces (ASCII 0x20) as supported by 'btoa'. This " "feature is not supported by the \"standard\" Ascii85 encoding." msgstr "" -#: library/base64.rst:194 +#: library/base64.rst:217 msgid "" "*wrapcol* controls whether the output should have newline (``b'\\n'``) " "characters added to it. If this is non-zero, each output line will be at " "most this many characters long, excluding the trailing newline." msgstr "" -#: library/base64.rst:198 +#: library/base64.rst:221 msgid "" "*pad* controls whether the input is padded to a multiple of 4 before " "encoding. Note that the ``btoa`` implementation always pads." msgstr "" -#: library/base64.rst:201 +#: library/base64.rst:224 msgid "" "*adobe* controls whether the encoded byte sequence is framed with ``<~`` and " "``~>``, which is used by the Adobe implementation." msgstr "" -#: library/base64.rst:209 +#: library/base64.rst:232 msgid "" "Decode the Ascii85 encoded :term:`bytes-like object` or ASCII string *b* and " "return the decoded :class:`bytes`." msgstr "" -#: library/base64.rst:212 +#: library/base64.rst:235 msgid "" "*foldspaces* is a flag that specifies whether the 'y' short sequence should " "be accepted as shorthand for 4 consecutive spaces (ASCII 0x20). This feature " "is not supported by the \"standard\" Ascii85 encoding." msgstr "" -#: library/base64.rst:216 +#: library/base64.rst:239 msgid "" "*adobe* controls whether the input sequence is in Adobe Ascii85 format (i.e. " "is framed with <~ and ~>)." msgstr "" -#: library/base64.rst:219 +#: library/base64.rst:242 msgid "" "*ignorechars* should be a :term:`bytes-like object` or ASCII string " "containing characters to ignore from the input. This should only contain " @@ -291,44 +334,44 @@ msgid "" "ASCII." msgstr "" -#: library/base64.rst:229 +#: library/base64.rst:252 msgid "" "Encode the :term:`bytes-like object` *b* using base85 (as used in e.g. git-" "style binary diffs) and return the encoded :class:`bytes`." msgstr "" -#: library/base64.rst:232 +#: library/base64.rst:255 msgid "" "If *pad* is true, the input is padded with ``b'\\0'`` so its length is a " "multiple of 4 bytes before encoding." msgstr "" -#: library/base64.rst:240 +#: library/base64.rst:263 msgid "" "Decode the base85-encoded :term:`bytes-like object` or ASCII string *b* and " "return the decoded :class:`bytes`. Padding is implicitly removed, if " "necessary." msgstr "" -#: library/base64.rst:249 +#: library/base64.rst:272 msgid "" "Encode the :term:`bytes-like object` *s* using Z85 (as used in ZeroMQ) and " "return the encoded :class:`bytes`. See `Z85 specification `_ for more information." msgstr "" -#: library/base64.rst:258 +#: library/base64.rst:281 msgid "" "Decode the Z85-encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`. See `Z85 specification `_ for more information." msgstr "" -#: library/base64.rst:265 -msgid "The legacy interface:" +#: library/base64.rst:291 +msgid "Legacy Interface" msgstr "" -#: library/base64.rst:269 +#: library/base64.rst:295 msgid "" "Decode the contents of the binary *input* file and write the resulting " "binary data to the *output* file. *input* and *output* must be :term:`file " @@ -336,13 +379,13 @@ msgid "" "returns an empty bytes object." msgstr "" -#: library/base64.rst:277 +#: library/base64.rst:303 msgid "" "Decode the :term:`bytes-like object` *s*, which must contain one or more " "lines of base64 encoded data, and return the decoded :class:`bytes`." msgstr "" -#: library/base64.rst:285 +#: library/base64.rst:311 msgid "" "Encode the contents of the binary *input* file and write the resulting " "base64 encoded data to the *output* file. *input* and *output* must be :term:" @@ -352,7 +395,7 @@ msgid "" "the output always ends with a newline, as per :rfc:`2045` (MIME)." msgstr "" -#: library/base64.rst:295 +#: library/base64.rst:321 msgid "" "Encode the :term:`bytes-like object` *s*, which can contain arbitrary binary " "data, and return :class:`bytes` containing the base64-encoded data, with " @@ -360,38 +403,38 @@ msgid "" "that there is a trailing newline, as per :rfc:`2045` (MIME)." msgstr "" -#: library/base64.rst:303 +#: library/base64.rst:329 msgid "An example usage of the module:" msgstr "" -#: library/base64.rst:316 +#: library/base64.rst:342 msgid "Security Considerations" msgstr "" -#: library/base64.rst:318 +#: library/base64.rst:344 msgid "" "A new security considerations section was added to :rfc:`4648` (section 12); " "it's recommended to review the security section for any code deployed to " "production." msgstr "" -#: library/base64.rst:323 +#: library/base64.rst:349 msgid "Module :mod:`binascii`" msgstr "" -#: library/base64.rst:324 +#: library/base64.rst:350 msgid "" "Support module containing ASCII-to-binary and binary-to-ASCII conversions." msgstr "" -#: library/base64.rst:326 +#: library/base64.rst:352 msgid "" ":rfc:`1521` - MIME (Multipurpose Internet Mail Extensions) Part One: " "Mechanisms for Specifying and Describing the Format of Internet Message " "Bodies" msgstr "" -#: library/base64.rst:327 +#: library/base64.rst:353 msgid "" "Section 5.2, \"Base64 Content-Transfer-Encoding,\" provides the definition " "of the base64 encoding." diff --git a/library/bdb.po b/library/bdb.po index 0dd22c05..fed24136 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 17eb0dc3..cdc8b4dd 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/binascii.po b/library/binascii.po index 302562d4..0e20bdeb 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 7a0faf3b..cb2a7cbb 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 311c88a5..e91f57c7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 5bbcb4db..5c103e00 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/calendar.po b/library/calendar.po index 19bf9edd..2b0c45b3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 04a81e08..e5071c81 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 32541dd1..ebf17bc5 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 0cd51687..69525dea 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 7717be51..c5fc06ef 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 08bceb54..31eb488e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 467d70fd..fb8514f0 100644 --- a/library/cmdline.po +++ b/library/cmdline.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -70,7 +70,7 @@ msgid ":mod:`!encodings.rot_13`" msgstr "" #: library/cmdline.rst:18 -msgid ":mod:`ensurepip`" +msgid ":ref:`ensurepip `" msgstr "" #: library/cmdline.rst:19 @@ -94,7 +94,7 @@ msgid ":ref:`http.server `" msgstr "" #: library/cmdline.rst:24 -msgid ":mod:`!idlelib`" +msgid ":ref:`idlelib `" msgstr "" #: library/cmdline.rst:25 @@ -110,7 +110,7 @@ msgid ":mod:`mimetypes`" msgstr "" #: library/cmdline.rst:28 -msgid ":mod:`pdb`" +msgid ":ref:`pdb `" msgstr "" #: library/cmdline.rst:29 @@ -214,11 +214,11 @@ msgid ":ref:`uuid `" msgstr "" #: library/cmdline.rst:54 -msgid ":mod:`venv`" +msgid ":ref:`venv `" msgstr "" #: library/cmdline.rst:55 -msgid ":mod:`webbrowser`" +msgid ":ref:`webbrowser `" msgstr "" #: library/cmdline.rst:56 diff --git a/library/cmdlinelibs.po b/library/cmdlinelibs.po index 48456645..e926399e 100644 --- a/library/cmdlinelibs.po +++ b/library/cmdlinelibs.po @@ -8,16 +8,17 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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" #: 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 fda4ece5..c22ec20b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -42,7 +42,15 @@ msgid "" "``'__console__'`` and key ``'__doc__'`` set to ``None``." msgstr "" -#: library/code.rst:28 +#: library/code.rst:25 +msgid "" +"Note that functions and classes objects created under an :class:`!" +"InteractiveInterpreter` instance will belong to the namespace specified by " +"*locals*. They are only pickleable if *locals* is the namespace of an " +"existing module." +msgstr "" + +#: library/code.rst:34 msgid "" "Closely emulate the behavior of the interactive Python interpreter. This " "class builds on :class:`InteractiveInterpreter` and adds prompting using the " @@ -51,11 +59,11 @@ msgid "" "`SystemExit`, but instead return to the calling code." msgstr "" -#: library/code.rst:52 +#: library/code.rst:58 msgid "Added *local_exit* parameter." msgstr "" -#: library/code.rst:39 +#: library/code.rst:45 msgid "" "Convenience function to run a read-eval-print loop. This creates a new " "instance of :class:`InteractiveConsole` and sets *readfunc* to be used as " @@ -68,11 +76,11 @@ msgid "" "provided. The console object is discarded after use." msgstr "" -#: library/code.rst:49 +#: library/code.rst:55 msgid "Added *exitmsg* parameter." msgstr "" -#: library/code.rst:57 +#: library/code.rst:63 msgid "" "This function is useful for programs that want to emulate Python's " "interpreter main loop (a.k.a. the read-eval-print loop). The tricky part is " @@ -82,7 +90,7 @@ msgid "" "real interpreter main loop." msgstr "" -#: library/code.rst:64 +#: library/code.rst:70 msgid "" "*source* is the source string; *filename* is the optional filename from " "which source was read, defaulting to ``''``; and *symbol* is the " @@ -90,7 +98,7 @@ msgid "" "``'eval'`` or ``'exec'``." msgstr "" -#: library/code.rst:69 +#: library/code.rst:75 msgid "" "Returns a code object (the same as ``compile(source, filename, symbol)``) if " "the command is complete and valid; ``None`` if the command is incomplete; " @@ -99,18 +107,18 @@ msgid "" "contains an invalid literal." msgstr "" -#: library/code.rst:79 +#: library/code.rst:85 msgid "Interactive Interpreter Objects" msgstr "" -#: library/code.rst:84 +#: library/code.rst:90 msgid "" "Compile and run some source in the interpreter. Arguments are the same as " "for :func:`compile_command`; the default for *filename* is ``''``, " "and for *symbol* is ``'single'``. One of several things can happen:" msgstr "" -#: library/code.rst:88 +#: library/code.rst:94 msgid "" "The input is incorrect; :func:`compile_command` raised an exception (:exc:" "`SyntaxError` or :exc:`OverflowError`). A syntax traceback will be printed " @@ -118,13 +126,13 @@ msgid "" "``False``." msgstr "" -#: library/code.rst:93 +#: library/code.rst:99 msgid "" "The input is incomplete, and more input is required; :func:`compile_command` " "returned ``None``. :meth:`runsource` returns ``True``." msgstr "" -#: library/code.rst:96 +#: library/code.rst:102 msgid "" "The input is complete; :func:`compile_command` returned a code object. The " "code is executed by calling the :meth:`runcode` (which also handles run-time " @@ -132,27 +140,27 @@ msgid "" "``False``." msgstr "" -#: library/code.rst:100 +#: library/code.rst:106 msgid "" "The return value can be used to decide whether to use ``sys.ps1`` or ``sys." "ps2`` to prompt the next line." msgstr "" -#: library/code.rst:106 +#: library/code.rst:112 msgid "" "Execute a code object. When an exception occurs, :meth:`showtraceback` is " "called to display a traceback. All exceptions are caught except :exc:" "`SystemExit`, which is allowed to propagate." msgstr "" -#: library/code.rst:110 +#: library/code.rst:116 msgid "" "A note about :exc:`KeyboardInterrupt`: this exception may occur elsewhere in " "this code, and may not always be caught. The caller should be prepared to " "deal with it." msgstr "" -#: library/code.rst:117 +#: library/code.rst:123 msgid "" "Display the syntax error that just occurred. This does not display a stack " "trace because there isn't one for syntax errors. If *filename* is given, it " @@ -161,38 +169,38 @@ msgid "" "string. The output is written by the :meth:`write` method." msgstr "" -#: library/code.rst:126 +#: library/code.rst:132 msgid "" "Display the exception that just occurred. We remove the first stack item " "because it is within the interpreter object implementation. The output is " "written by the :meth:`write` method." msgstr "" -#: library/code.rst:130 +#: library/code.rst:136 msgid "" "The full chained traceback is displayed instead of just the primary " "traceback." msgstr "" -#: library/code.rst:136 +#: library/code.rst:142 msgid "" "Write a string to the standard error stream (``sys.stderr``). Derived " "classes should override this to provide the appropriate output handling as " "needed." msgstr "" -#: library/code.rst:143 +#: library/code.rst:149 msgid "Interactive Console Objects" msgstr "" -#: library/code.rst:145 +#: library/code.rst:151 msgid "" "The :class:`InteractiveConsole` class is a subclass of :class:" "`InteractiveInterpreter`, and so offers all the methods of the interpreter " "objects as well as the following additions." msgstr "" -#: library/code.rst:152 +#: library/code.rst:158 msgid "" "Closely emulate the interactive Python console. The optional *banner* " "argument specify the banner to print before the first interaction; by " @@ -202,22 +210,22 @@ msgid "" "close!)." msgstr "" -#: library/code.rst:158 +#: library/code.rst:164 msgid "" "The optional *exitmsg* argument specifies an exit message printed when " "exiting. Pass the empty string to suppress the exit message. If *exitmsg* is " "not given or ``None``, a default message is printed." msgstr "" -#: library/code.rst:162 +#: library/code.rst:168 msgid "To suppress printing any banner, pass an empty string." msgstr "" -#: library/code.rst:165 +#: library/code.rst:171 msgid "Print an exit message when exiting." msgstr "" -#: library/code.rst:171 +#: library/code.rst:177 msgid "" "Push a line of source text to the interpreter. The line should not have a " "trailing newline; it may have internal newlines. The line is appended to a " @@ -230,11 +238,11 @@ msgid "" "same as :meth:`!runsource`)." msgstr "" -#: library/code.rst:183 +#: library/code.rst:189 msgid "Remove any unhandled source text from the input buffer." msgstr "" -#: library/code.rst:188 +#: library/code.rst:194 msgid "" "Write a prompt and read a line. The returned line does not include the " "trailing newline. When the user enters the EOF key sequence, :exc:" diff --git a/library/codecs.po b/library/codecs.po index 18fbaa57..019d92c9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,38 +235,38 @@ 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:214 +#: library/codecs.rst:222 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:218 +#: library/codecs.rst:226 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 " @@ -265,41 +274,41 @@ msgid "" "*file_encoding*, and the result is encoded using *data_encoding*." msgstr "" -#: library/codecs.rst:224 +#: library/codecs.rst:232 msgid "If *file_encoding* is not given, it defaults to *data_encoding*." msgstr "" -#: library/codecs.rst:226 +#: library/codecs.rst:234 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:233 +#: library/codecs.rst:241 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:238 +#: library/codecs.rst:246 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:245 +#: library/codecs.rst:253 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:250 +#: library/codecs.rst:258 msgid "" "This function requires that the codec accept :class:`bytes` objects to " "decode. Therefore it does not support text-to-text encoders such as " @@ -307,13 +316,30 @@ msgid "" "`iterencode`." msgstr "" -#: library/codecs.rst:256 +#: library/codecs.rst:266 +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:270 +msgid "The *errors* argument is ignored." +msgstr "" + +#: library/codecs.rst:272 +msgid "" +">>> codecs.readbuffer_encode(b\"Zito\")\n" +"(b'Zito', 4)" +msgstr "" + +#: library/codecs.rst:278 msgid "" "The module also provides the following constants which are useful for " "reading and writing to platform dependent files:" msgstr "" -#: library/codecs.rst:271 +#: library/codecs.rst:293 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 " @@ -325,18 +351,18 @@ msgid "" "represent the BOM in UTF-8 and UTF-32 encodings." msgstr "" -#: library/codecs.rst:285 +#: library/codecs.rst:307 msgid "Codec Base Classes" msgstr "" -#: library/codecs.rst:287 +#: library/codecs.rst:309 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:291 +#: library/codecs.rst:313 msgid "" "Each codec has to define four interfaces to make it usable as codec in " "Python: stateless encoder, stateless decoder, stream reader and stream " @@ -345,66 +371,66 @@ msgid "" "how the codec will handle encoding and decoding errors." msgstr "" -#: library/codecs.rst:302 +#: library/codecs.rst:324 msgid "Error Handlers" msgstr "" -#: library/codecs.rst:304 +#: library/codecs.rst:326 msgid "" "To simplify and standardize error handling, codecs may implement different " "error handling schemes by accepting the *errors* string argument:" msgstr "" -#: library/codecs.rst:324 +#: library/codecs.rst:346 msgid "" "The following error handlers can be used with all Python :ref:`standard-" "encodings` codecs:" msgstr "" -#: library/codecs.rst:373 library/codecs.rst:393 +#: library/codecs.rst:395 library/codecs.rst:415 msgid "Value" msgstr "" -#: library/codecs.rst:373 library/codecs.rst:1331 library/codecs.rst:1454 +#: library/codecs.rst:395 library/codecs.rst:1365 library/codecs.rst:1522 msgid "Meaning" msgstr "" -#: library/codecs.rst:332 +#: library/codecs.rst:354 msgid "``'strict'``" msgstr "" -#: library/codecs.rst:332 +#: library/codecs.rst:354 msgid "" "Raise :exc:`UnicodeError` (or a subclass), this is the default. Implemented " "in :func:`strict_errors`." msgstr "" -#: library/codecs.rst:336 +#: library/codecs.rst:358 msgid "``'ignore'``" msgstr "" -#: library/codecs.rst:336 +#: library/codecs.rst:358 msgid "" "Ignore the malformed data and continue without further notice. Implemented " "in :func:`ignore_errors`." msgstr "" -#: library/codecs.rst:340 +#: library/codecs.rst:362 msgid "``'replace'``" msgstr "" -#: library/codecs.rst:340 +#: library/codecs.rst:362 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:346 +#: library/codecs.rst:368 msgid "``'backslashreplace'``" msgstr "" -#: library/codecs.rst:346 +#: library/codecs.rst:368 msgid "" "Replace with backslashed escape sequences. On encoding, use hexadecimal form " "of Unicode code point with formats :samp:`\\\\x{hh}` :samp:`\\\\u{xxxx}` :" @@ -412,11 +438,11 @@ msgid "" "format :samp:`\\\\x{hh}`. Implemented in :func:`backslashreplace_errors`." msgstr "" -#: library/codecs.rst:355 +#: library/codecs.rst:377 msgid "``'surrogateescape'``" msgstr "" -#: library/codecs.rst:355 +#: library/codecs.rst:377 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 " @@ -424,92 +450,92 @@ msgid "" "data. (See :pep:`383` for more.)" msgstr "" -#: library/codecs.rst:369 +#: library/codecs.rst:391 msgid "" "The following error handlers are only applicable to encoding (within :term:" "`text encodings `):" msgstr "" -#: library/codecs.rst:375 +#: library/codecs.rst:397 msgid "``'xmlcharrefreplace'``" msgstr "" -#: library/codecs.rst:375 +#: library/codecs.rst:397 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:381 +#: library/codecs.rst:403 msgid "``'namereplace'``" msgstr "" -#: library/codecs.rst:381 +#: library/codecs.rst:403 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:390 +#: library/codecs.rst:412 msgid "" "In addition, the following error handler is specific to the given codecs:" msgstr "" -#: library/codecs.rst:393 +#: library/codecs.rst:415 msgid "Codecs" msgstr "" -#: library/codecs.rst:395 +#: library/codecs.rst:417 msgid "``'surrogatepass'``" msgstr "" -#: library/codecs.rst:395 +#: library/codecs.rst:417 msgid "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" msgstr "" -#: library/codecs.rst:395 +#: library/codecs.rst:417 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:402 +#: library/codecs.rst:424 msgid "The ``'surrogateescape'`` and ``'surrogatepass'`` error handlers." msgstr "" -#: library/codecs.rst:405 +#: library/codecs.rst:427 msgid "" "The ``'surrogatepass'`` error handler now works with utf-16\\* and utf-32\\* " "codecs." msgstr "" -#: library/codecs.rst:409 +#: library/codecs.rst:431 msgid "The ``'namereplace'`` error handler." msgstr "" -#: library/codecs.rst:412 +#: library/codecs.rst:434 msgid "" "The ``'backslashreplace'`` error handler now works with decoding and " "translating." msgstr "" -#: library/codecs.rst:416 +#: library/codecs.rst:438 msgid "" "The set of allowed values can be extended by registering a new named error " "handler:" msgstr "" -#: library/codecs.rst:421 +#: library/codecs.rst:443 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:425 +#: library/codecs.rst:447 msgid "" "For encoding, *error_handler* will be called with a :exc:" "`UnicodeEncodeError` instance, which contains information about the location " @@ -524,66 +550,66 @@ msgid "" "position is out of bound an :exc:`IndexError` will be raised." msgstr "" -#: library/codecs.rst:437 +#: library/codecs.rst:459 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:442 +#: library/codecs.rst:464 msgid "" "Previously registered error handlers (including the standard error handlers) " "can be looked up by name:" msgstr "" -#: library/codecs.rst:447 +#: library/codecs.rst:469 msgid "Return the error handler previously registered under the name *name*." msgstr "" -#: library/codecs.rst:449 +#: library/codecs.rst:471 msgid "Raises a :exc:`LookupError` in case the handler cannot be found." msgstr "" -#: library/codecs.rst:451 +#: library/codecs.rst:473 msgid "" "The following standard error handlers are also made available as module " "level functions:" msgstr "" -#: library/codecs.rst:456 +#: library/codecs.rst:478 msgid "Implements the ``'strict'`` error handling." msgstr "" -#: library/codecs.rst:458 +#: library/codecs.rst:480 msgid "Each encoding or decoding error raises a :exc:`UnicodeError`." msgstr "" -#: library/codecs.rst:463 +#: library/codecs.rst:485 msgid "Implements the ``'ignore'`` error handling." msgstr "" -#: library/codecs.rst:465 +#: library/codecs.rst:487 msgid "" "Malformed data is ignored; encoding or decoding is continued without further " "notice." msgstr "" -#: library/codecs.rst:471 +#: library/codecs.rst:493 msgid "Implements the ``'replace'`` error handling." msgstr "" -#: library/codecs.rst:473 +#: library/codecs.rst:495 msgid "" "Substitutes ``?`` (ASCII character) for encoding errors or ``�`` (U+FFFD, " "the official REPLACEMENT CHARACTER) for decoding errors." msgstr "" -#: library/codecs.rst:479 +#: library/codecs.rst:501 msgid "Implements the ``'backslashreplace'`` error handling." msgstr "" -#: library/codecs.rst:481 +#: library/codecs.rst:503 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}" @@ -591,30 +617,30 @@ msgid "" "hexadecimal form of byte value with format :samp:`\\\\x{hh}`." msgstr "" -#: library/codecs.rst:487 +#: library/codecs.rst:509 msgid "Works with decoding and translating." msgstr "" -#: library/codecs.rst:493 +#: library/codecs.rst:515 msgid "" "Implements the ``'xmlcharrefreplace'`` error handling (for encoding within :" "term:`text encoding` only)." msgstr "" -#: library/codecs.rst:496 +#: library/codecs.rst:518 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:503 +#: library/codecs.rst:525 msgid "" "Implements the ``'namereplace'`` error handling (for encoding within :term:" "`text encoding` only)." msgstr "" -#: library/codecs.rst:506 +#: library/codecs.rst:528 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 " @@ -622,17 +648,17 @@ msgid "" "will be converted to byte sequence ``\\N{LATIN SMALL LETTER SHARP S}`` ." msgstr "" -#: library/codecs.rst:517 +#: library/codecs.rst:539 msgid "Stateless Encoding and Decoding" msgstr "" -#: library/codecs.rst:519 +#: library/codecs.rst:541 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:527 +#: library/codecs.rst:549 msgid "" "Encodes the object *input* and returns a tuple (output object, length " "consumed). For instance, :term:`text encoding` converts a string object to a " @@ -640,26 +666,26 @@ msgid "" "``iso-8859-1``)." msgstr "" -#: library/codecs.rst:554 +#: library/codecs.rst:576 msgid "" "The *errors* argument defines the error handling to apply. It defaults to " "``'strict'`` handling." msgstr "" -#: library/codecs.rst:535 +#: library/codecs.rst:557 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:539 +#: library/codecs.rst:561 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:545 +#: library/codecs.rst:567 msgid "" "Decodes the object *input* and returns a tuple (output object, length " "consumed). For instance, for a :term:`text encoding`, decoding converts a " @@ -667,31 +693,31 @@ msgid "" "object." msgstr "" -#: library/codecs.rst:550 +#: library/codecs.rst:572 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:557 +#: library/codecs.rst:579 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:561 +#: library/codecs.rst:583 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:566 +#: library/codecs.rst:588 msgid "Incremental Encoding and Decoding" msgstr "" -#: library/codecs.rst:568 +#: library/codecs.rst:590 msgid "" "The :class:`IncrementalEncoder` and :class:`IncrementalDecoder` classes " "provide the basic interface for incremental encoding and decoding. Encoding/" @@ -702,7 +728,7 @@ msgid "" "during method calls." msgstr "" -#: library/codecs.rst:576 +#: library/codecs.rst:598 msgid "" "The joined output of calls to the :meth:`~IncrementalEncoder.encode`/:meth:" "`~IncrementalDecoder.decode` method is the same as if all the single inputs " @@ -710,36 +736,36 @@ msgid "" "encoder/decoder." msgstr "" -#: library/codecs.rst:585 +#: library/codecs.rst:607 msgid "IncrementalEncoder Objects" msgstr "" -#: library/codecs.rst:587 +#: library/codecs.rst:609 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:594 +#: library/codecs.rst:616 msgid "Constructor for an :class:`IncrementalEncoder` instance." msgstr "" -#: library/codecs.rst:596 +#: library/codecs.rst:618 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:600 +#: library/codecs.rst:622 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:604 +#: library/codecs.rst:626 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 " @@ -747,21 +773,21 @@ msgid "" "`IncrementalEncoder` object." msgstr "" -#: library/codecs.rst:612 +#: library/codecs.rst:634 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:619 +#: library/codecs.rst:641 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:626 +#: library/codecs.rst:648 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 " @@ -770,42 +796,42 @@ msgid "" "into an integer.)" msgstr "" -#: library/codecs.rst:635 +#: library/codecs.rst:657 msgid "" "Set the state of the encoder to *state*. *state* must be an encoder state " "returned by :meth:`getstate`." msgstr "" -#: library/codecs.rst:642 +#: library/codecs.rst:664 msgid "IncrementalDecoder Objects" msgstr "" -#: library/codecs.rst:644 +#: library/codecs.rst:666 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:651 +#: library/codecs.rst:673 msgid "Constructor for an :class:`IncrementalDecoder` instance." msgstr "" -#: library/codecs.rst:653 +#: library/codecs.rst:675 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:657 +#: library/codecs.rst:679 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:661 +#: library/codecs.rst:683 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 " @@ -813,7 +839,7 @@ msgid "" "`IncrementalDecoder` object." msgstr "" -#: library/codecs.rst:669 +#: library/codecs.rst:691 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:" @@ -824,11 +850,11 @@ msgid "" "(which might raise an exception)." msgstr "" -#: library/codecs.rst:680 +#: library/codecs.rst:702 msgid "Reset the decoder to the initial state." msgstr "" -#: library/codecs.rst:685 +#: library/codecs.rst:707 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. " @@ -843,59 +869,59 @@ msgid "" "bytes of the resulting string into an integer.)" msgstr "" -#: library/codecs.rst:700 +#: library/codecs.rst:722 msgid "" "Set the state of the decoder to *state*. *state* must be a decoder state " "returned by :meth:`getstate`." msgstr "" -#: library/codecs.rst:705 +#: library/codecs.rst:727 msgid "Stream Encoding and Decoding" msgstr "" -#: library/codecs.rst:708 +#: library/codecs.rst:730 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:716 +#: library/codecs.rst:738 msgid "StreamWriter Objects" msgstr "" -#: library/codecs.rst:718 +#: library/codecs.rst:740 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:725 +#: library/codecs.rst:747 msgid "Constructor for a :class:`StreamWriter` instance." msgstr "" -#: library/codecs.rst:727 +#: library/codecs.rst:749 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:731 +#: library/codecs.rst:753 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:734 +#: library/codecs.rst:756 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:738 +#: library/codecs.rst:760 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 " @@ -903,70 +929,70 @@ msgid "" "object." msgstr "" -#: library/codecs.rst:744 +#: library/codecs.rst:766 msgid "Writes the object's contents encoded to the stream." msgstr "" -#: library/codecs.rst:749 +#: library/codecs.rst:771 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:852 +#: library/codecs.rst:874 msgid "Resets the codec buffers used for keeping internal state." msgstr "" -#: library/codecs.rst:759 +#: library/codecs.rst:781 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:764 +#: library/codecs.rst:786 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:771 +#: library/codecs.rst:793 msgid "StreamReader Objects" msgstr "" -#: library/codecs.rst:773 +#: library/codecs.rst:795 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:780 +#: library/codecs.rst:802 msgid "Constructor for a :class:`StreamReader` instance." msgstr "" -#: library/codecs.rst:782 +#: library/codecs.rst:804 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:786 +#: library/codecs.rst:808 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:789 +#: library/codecs.rst:811 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:793 +#: library/codecs.rst:815 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 " @@ -974,24 +1000,24 @@ msgid "" "object." msgstr "" -#: library/codecs.rst:797 +#: library/codecs.rst:819 msgid "" "The set of allowed values for the *errors* argument can be extended with :" "func:`register_error`." msgstr "" -#: library/codecs.rst:803 +#: library/codecs.rst:825 msgid "Decodes data from the stream and returns the resulting object." msgstr "" -#: library/codecs.rst:805 +#: library/codecs.rst:827 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:810 +#: library/codecs.rst:832 msgid "" "The *size* argument indicates the approximate maximum number of encoded " "bytes or code points to read for decoding. The decoder can modify this " @@ -1000,13 +1026,13 @@ msgid "" "huge files in one step." msgstr "" -#: library/codecs.rst:817 +#: library/codecs.rst:839 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:821 +#: library/codecs.rst:843 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 " @@ -1014,68 +1040,68 @@ msgid "" "the stream, these should be read too." msgstr "" -#: library/codecs.rst:829 +#: library/codecs.rst:851 msgid "Read one line from the input stream and return the decoded data." msgstr "" -#: library/codecs.rst:831 +#: library/codecs.rst:853 msgid "" "*size*, if given, is passed as size argument to the stream's :meth:`read` " "method." msgstr "" -#: library/codecs.rst:834 +#: library/codecs.rst:856 msgid "" "If *keepends* is false line-endings will be stripped from the lines returned." msgstr "" -#: library/codecs.rst:840 +#: library/codecs.rst:862 msgid "" "Read all lines available on the input stream and return them as a list of " "lines." msgstr "" -#: library/codecs.rst:843 +#: library/codecs.rst:865 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:846 +#: library/codecs.rst:868 msgid "" "*sizehint*, if given, is passed as the *size* argument to the stream's :meth:" "`read` method." msgstr "" -#: library/codecs.rst:854 +#: library/codecs.rst:876 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:858 +#: library/codecs.rst:880 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:864 +#: library/codecs.rst:886 msgid "StreamReaderWriter Objects" msgstr "" -#: library/codecs.rst:866 +#: library/codecs.rst:888 msgid "" "The :class:`StreamReaderWriter` is a convenience class that allows wrapping " "streams which work in both read and write modes." msgstr "" -#: library/codecs.rst:893 +#: library/codecs.rst:915 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:875 +#: library/codecs.rst:897 msgid "" "Creates a :class:`StreamReaderWriter` instance. *stream* must be a file-like " "object. *Reader* and *Writer* must be factory functions or classes providing " @@ -1084,24 +1110,24 @@ msgid "" "writers." msgstr "" -#: library/codecs.rst:880 +#: library/codecs.rst:902 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:888 +#: library/codecs.rst:910 msgid "StreamRecoder Objects" msgstr "" -#: library/codecs.rst:890 +#: library/codecs.rst:912 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:899 +#: library/codecs.rst:921 msgid "" "Creates a :class:`StreamRecoder` instance which implements a two-way " "conversion: *encode* and *decode* work on the frontend — the data visible to " @@ -1109,17 +1135,17 @@ msgid "" "while *Reader* and *Writer* work on the backend — the data in *stream*." msgstr "" -#: library/codecs.rst:905 +#: library/codecs.rst:927 msgid "" "You can use these objects to do transparent transcodings, e.g., from Latin-1 " "to UTF-8 and back." msgstr "" -#: library/codecs.rst:908 +#: library/codecs.rst:930 msgid "The *stream* argument must be a file-like object." msgstr "" -#: library/codecs.rst:910 +#: library/codecs.rst:932 msgid "" "The *encode* and *decode* arguments must adhere to the :class:`Codec` " "interface. *Reader* and *Writer* must be factory functions or classes " @@ -1127,24 +1153,24 @@ msgid "" "interface respectively." msgstr "" -#: library/codecs.rst:915 +#: library/codecs.rst:937 msgid "" "Error handling is done in the same way as defined for the stream readers and " "writers." msgstr "" -#: library/codecs.rst:919 +#: library/codecs.rst:941 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:927 +#: library/codecs.rst:949 msgid "Encodings and Unicode" msgstr "" -#: library/codecs.rst:929 +#: library/codecs.rst:951 msgid "" "Strings are stored internally as sequences of code points in range " "``U+0000``--``U+10FFFF``. (See :pep:`393` for more details about the " @@ -1156,7 +1182,7 @@ msgid "" "which are collectivity referred to as :term:`text encodings `." msgstr "" -#: library/codecs.rst:939 +#: library/codecs.rst:961 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 " @@ -1167,7 +1193,7 @@ msgid "" "position 3: ordinal not in range(256)``." msgstr "" -#: library/codecs.rst:947 +#: library/codecs.rst:969 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 " @@ -1177,37 +1203,45 @@ msgid "" "that shows you which character is mapped to which byte value." msgstr "" -#: library/codecs.rst:954 +#: library/codecs.rst:976 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:980 +"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:997 +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:1007 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 " @@ -1218,59 +1252,59 @@ msgid "" "which when concatenated give the Unicode character):" msgstr "" -#: library/codecs.rst:989 +#: library/codecs.rst:1016 msgid "Range" msgstr "" -#: library/codecs.rst:989 +#: library/codecs.rst:1016 msgid "Encoding" msgstr "" -#: library/codecs.rst:991 +#: library/codecs.rst:1018 msgid "``U-00000000`` ... ``U-0000007F``" msgstr "" -#: library/codecs.rst:991 +#: library/codecs.rst:1018 msgid "0xxxxxxx" msgstr "" -#: library/codecs.rst:993 +#: library/codecs.rst:1020 msgid "``U-00000080`` ... ``U-000007FF``" msgstr "" -#: library/codecs.rst:993 +#: library/codecs.rst:1020 msgid "110xxxxx 10xxxxxx" msgstr "" -#: library/codecs.rst:995 +#: library/codecs.rst:1022 msgid "``U-00000800`` ... ``U-0000FFFF``" msgstr "" -#: library/codecs.rst:995 +#: library/codecs.rst:1022 msgid "1110xxxx 10xxxxxx 10xxxxxx" msgstr "" -#: library/codecs.rst:997 +#: library/codecs.rst:1024 msgid "``U-00010000`` ... ``U-0010FFFF``" msgstr "" -#: library/codecs.rst:997 +#: library/codecs.rst:1024 msgid "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" msgstr "" -#: library/codecs.rst:1000 +#: library/codecs.rst:1027 msgid "" "The least significant bit of the Unicode character is the rightmost x bit." msgstr "" -#: library/codecs.rst:1002 +#: library/codecs.rst:1029 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:1006 +#: library/codecs.rst:1033 msgid "" "Without external information it's impossible to reliably determine which " "encoding was used for encoding a string. Each charmap encoding can decode " @@ -1296,7 +1330,7 @@ msgstr "" msgid "INVERTED QUESTION MARK" msgstr "" -#: library/codecs.rst:1022 +#: library/codecs.rst:1049 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 " @@ -1308,11 +1342,11 @@ msgid "" "the use of the BOM is discouraged and should generally be avoided." msgstr "" -#: library/codecs.rst:1035 +#: library/codecs.rst:1062 msgid "Standard Encodings" msgstr "" -#: library/codecs.rst:1037 +#: library/codecs.rst:1064 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 " @@ -1320,11 +1354,18 @@ 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:1047 +#: library/codecs.rst:1076 +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:1081 msgid "" "Some common encodings can bypass the codecs lookup machinery to improve " "performance. These optimization opportunities are only recognized by CPython " @@ -1334,11 +1375,11 @@ msgid "" "Using alternative aliases for these encodings may result in slower execution." msgstr "" -#: library/codecs.rst:1055 +#: library/codecs.rst:1089 msgid "Optimization opportunity recognized for us-ascii." msgstr "" -#: library/codecs.rst:1058 +#: library/codecs.rst:1092 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 " @@ -1346,925 +1387,929 @@ msgid "" "languages in particular, the following variants typically exist:" msgstr "" -#: library/codecs.rst:1063 +#: library/codecs.rst:1097 msgid "an ISO 8859 codeset" msgstr "" -#: library/codecs.rst:1065 +#: library/codecs.rst:1099 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:1068 +#: library/codecs.rst:1102 msgid "an IBM EBCDIC code page" msgstr "" -#: library/codecs.rst:1070 +#: library/codecs.rst:1104 msgid "an IBM PC code page, which is ASCII compatible" msgstr "" -#: library/codecs.rst:1331 library/codecs.rst:1454 +#: library/codecs.rst:1365 library/codecs.rst:1522 msgid "Codec" msgstr "" -#: library/codecs.rst:1331 library/codecs.rst:1454 +#: library/codecs.rst:1365 library/codecs.rst:1522 msgid "Aliases" msgstr "" -#: library/codecs.rst:1075 +#: library/codecs.rst:1109 msgid "Languages" msgstr "" -#: library/codecs.rst:1077 +#: library/codecs.rst:1111 msgid "ascii" msgstr "" -#: library/codecs.rst:1077 +#: library/codecs.rst:1111 msgid "646, us-ascii" msgstr "" -#: library/codecs.rst:1083 library/codecs.rst:1091 +#: library/codecs.rst:1117 library/codecs.rst:1125 msgid "English" msgstr "" -#: library/codecs.rst:1079 +#: library/codecs.rst:1113 msgid "big5" msgstr "" -#: library/codecs.rst:1079 +#: library/codecs.rst:1113 msgid "big5-tw, csbig5" msgstr "" -#: library/codecs.rst:1081 library/codecs.rst:1140 +#: library/codecs.rst:1115 library/codecs.rst:1174 msgid "Traditional Chinese" msgstr "" -#: library/codecs.rst:1081 +#: library/codecs.rst:1115 msgid "big5hkscs" msgstr "" -#: library/codecs.rst:1081 +#: library/codecs.rst:1115 msgid "big5-hkscs, hkscs" msgstr "" -#: library/codecs.rst:1083 +#: library/codecs.rst:1117 msgid "cp037" msgstr "" -#: library/codecs.rst:1083 +#: library/codecs.rst:1117 msgid "IBM037, IBM039" msgstr "" -#: library/codecs.rst:1085 +#: library/codecs.rst:1119 msgid "cp273" msgstr "" -#: library/codecs.rst:1085 +#: library/codecs.rst:1119 msgid "273, IBM273, csIBM273" msgstr "" -#: library/codecs.rst:1085 +#: library/codecs.rst:1119 msgid "German" msgstr "" -#: library/codecs.rst:1089 +#: library/codecs.rst:1123 msgid "cp424" msgstr "" -#: library/codecs.rst:1089 +#: library/codecs.rst:1123 msgid "EBCDIC-CP-HE, IBM424" msgstr "" -#: library/codecs.rst:1109 library/codecs.rst:1163 library/codecs.rst:1226 +#: library/codecs.rst:1143 library/codecs.rst:1197 library/codecs.rst:1260 msgid "Hebrew" msgstr "" -#: library/codecs.rst:1091 +#: library/codecs.rst:1125 msgid "cp437" msgstr "" -#: library/codecs.rst:1091 +#: library/codecs.rst:1125 msgid "437, IBM437" msgstr "" -#: library/codecs.rst:1093 +#: library/codecs.rst:1127 msgid "cp500" msgstr "" -#: library/codecs.rst:1093 +#: library/codecs.rst:1127 msgid "EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500" msgstr "" -#: library/codecs.rst:1102 library/codecs.rst:1150 library/codecs.rst:1210 -#: library/codecs.rst:1266 +#: library/codecs.rst:1136 library/codecs.rst:1184 library/codecs.rst:1244 +#: library/codecs.rst:1300 msgid "Western Europe" msgstr "" -#: library/codecs.rst:1096 +#: library/codecs.rst:1130 msgid "cp720" msgstr "" -#: library/codecs.rst:1123 library/codecs.rst:1222 +#: library/codecs.rst:1157 library/codecs.rst:1256 msgid "Arabic" msgstr "" -#: library/codecs.rst:1098 +#: library/codecs.rst:1132 msgid "cp737" msgstr "" -#: library/codecs.rst:1129 library/codecs.rst:1159 library/codecs.rst:1259 +#: library/codecs.rst:1163 library/codecs.rst:1193 library/codecs.rst:1293 msgid "Greek" msgstr "" -#: library/codecs.rst:1100 +#: library/codecs.rst:1134 msgid "cp775" msgstr "" -#: library/codecs.rst:1100 +#: library/codecs.rst:1134 msgid "IBM775" msgstr "" -#: library/codecs.rst:1167 library/codecs.rst:1234 +#: library/codecs.rst:1201 library/codecs.rst:1268 msgid "Baltic languages" msgstr "" -#: library/codecs.rst:1102 +#: library/codecs.rst:1136 msgid "cp850" msgstr "" -#: library/codecs.rst:1102 +#: library/codecs.rst:1136 msgid "850, IBM850" msgstr "" -#: library/codecs.rst:1104 +#: library/codecs.rst:1138 msgid "cp852" msgstr "" -#: library/codecs.rst:1104 +#: library/codecs.rst:1138 msgid "852, IBM852" msgstr "" -#: library/codecs.rst:1152 library/codecs.rst:1263 +#: library/codecs.rst:1186 library/codecs.rst:1297 msgid "Central and Eastern Europe" msgstr "" -#: library/codecs.rst:1106 +#: library/codecs.rst:1140 msgid "cp855" msgstr "" -#: library/codecs.rst:1106 +#: library/codecs.rst:1140 msgid "855, IBM855" msgstr "" -#: library/codecs.rst:1154 library/codecs.rst:1256 +#: library/codecs.rst:1188 library/codecs.rst:1290 msgid "Belarusian, Bulgarian, Macedonian, Russian, Serbian" msgstr "" -#: library/codecs.rst:1109 +#: library/codecs.rst:1143 msgid "cp856" msgstr "" -#: library/codecs.rst:1111 +#: library/codecs.rst:1145 msgid "cp857" msgstr "" -#: library/codecs.rst:1111 +#: library/codecs.rst:1145 msgid "857, IBM857" msgstr "" -#: library/codecs.rst:1144 library/codecs.rst:1228 library/codecs.rst:1268 +#: library/codecs.rst:1178 library/codecs.rst:1262 library/codecs.rst:1302 msgid "Turkish" msgstr "" -#: library/codecs.rst:1113 +#: library/codecs.rst:1147 msgid "cp858" msgstr "" -#: library/codecs.rst:1113 +#: library/codecs.rst:1147 msgid "858, IBM858" msgstr "" -#: library/codecs.rst:1115 +#: library/codecs.rst:1149 msgid "cp860" msgstr "" -#: library/codecs.rst:1115 +#: library/codecs.rst:1149 msgid "860, IBM860" msgstr "" -#: library/codecs.rst:1115 +#: library/codecs.rst:1149 msgid "Portuguese" msgstr "" -#: library/codecs.rst:1117 +#: library/codecs.rst:1151 msgid "cp861" msgstr "" -#: library/codecs.rst:1117 +#: library/codecs.rst:1151 msgid "861, CP-IS, IBM861" msgstr "" -#: library/codecs.rst:1261 +#: library/codecs.rst:1295 msgid "Icelandic" msgstr "" -#: library/codecs.rst:1119 +#: library/codecs.rst:1153 msgid "cp862" msgstr "" -#: library/codecs.rst:1119 +#: library/codecs.rst:1153 msgid "862, IBM862" msgstr "" -#: library/codecs.rst:1121 +#: library/codecs.rst:1155 msgid "cp863" msgstr "" -#: library/codecs.rst:1121 +#: library/codecs.rst:1155 msgid "863, IBM863" msgstr "" -#: library/codecs.rst:1121 +#: library/codecs.rst:1155 msgid "Canadian" msgstr "" -#: library/codecs.rst:1123 +#: library/codecs.rst:1157 msgid "cp864" msgstr "" -#: library/codecs.rst:1123 +#: library/codecs.rst:1157 msgid "IBM864" msgstr "" -#: library/codecs.rst:1125 +#: library/codecs.rst:1159 msgid "cp865" msgstr "" -#: library/codecs.rst:1125 +#: library/codecs.rst:1159 msgid "865, IBM865" msgstr "" -#: library/codecs.rst:1125 +#: library/codecs.rst:1159 msgid "Danish, Norwegian" msgstr "" -#: library/codecs.rst:1127 +#: library/codecs.rst:1161 msgid "cp866" msgstr "" -#: library/codecs.rst:1127 +#: library/codecs.rst:1161 msgid "866, IBM866" msgstr "" -#: library/codecs.rst:1244 +#: library/codecs.rst:1278 msgid "Russian" msgstr "" -#: library/codecs.rst:1129 +#: library/codecs.rst:1163 msgid "cp869" msgstr "" -#: library/codecs.rst:1129 +#: library/codecs.rst:1163 msgid "869, CP-GR, IBM869" msgstr "" -#: library/codecs.rst:1131 +#: library/codecs.rst:1165 msgid "cp874" msgstr "" -#: library/codecs.rst:1131 +#: library/codecs.rst:1165 msgid "Thai" msgstr "" -#: library/codecs.rst:1133 +#: library/codecs.rst:1167 msgid "cp875" msgstr "" -#: library/codecs.rst:1135 +#: library/codecs.rst:1169 msgid "cp932" msgstr "" -#: library/codecs.rst:1135 +#: library/codecs.rst:1169 msgid "932, ms932, mskanji, ms-kanji, windows-31j" msgstr "" -#: library/codecs.rst:1171 library/codecs.rst:1175 library/codecs.rst:1195 -#: library/codecs.rst:1203 library/codecs.rst:1273 library/codecs.rst:1279 +#: library/codecs.rst:1205 library/codecs.rst:1209 library/codecs.rst:1229 +#: library/codecs.rst:1237 library/codecs.rst:1307 library/codecs.rst:1313 msgid "Japanese" msgstr "" -#: library/codecs.rst:1138 +#: library/codecs.rst:1172 msgid "cp949" msgstr "" -#: library/codecs.rst:1138 +#: library/codecs.rst:1172 msgid "949, ms949, uhc" msgstr "" -#: library/codecs.rst:1177 library/codecs.rst:1242 +#: library/codecs.rst:1211 library/codecs.rst:1276 msgid "Korean" msgstr "" -#: library/codecs.rst:1140 +#: library/codecs.rst:1174 msgid "cp950" msgstr "" -#: library/codecs.rst:1140 +#: library/codecs.rst:1174 msgid "950, ms950" msgstr "" -#: library/codecs.rst:1142 +#: library/codecs.rst:1176 msgid "cp1006" msgstr "" -#: library/codecs.rst:1142 +#: library/codecs.rst:1176 msgid "Urdu" msgstr "" -#: library/codecs.rst:1144 +#: library/codecs.rst:1178 msgid "cp1026" msgstr "" -#: library/codecs.rst:1144 +#: library/codecs.rst:1178 msgid "ibm1026" msgstr "" -#: library/codecs.rst:1146 +#: library/codecs.rst:1180 msgid "cp1125" msgstr "" -#: library/codecs.rst:1146 +#: library/codecs.rst:1180 msgid "1125, ibm1125, cp866u, ruscii" msgstr "" -#: library/codecs.rst:1250 +#: library/codecs.rst:1284 msgid "Ukrainian" msgstr "" -#: library/codecs.rst:1150 +#: library/codecs.rst:1184 msgid "cp1140" msgstr "" -#: library/codecs.rst:1150 +#: library/codecs.rst:1184 msgid "ibm1140" msgstr "" -#: library/codecs.rst:1152 +#: library/codecs.rst:1186 msgid "cp1250" msgstr "" -#: library/codecs.rst:1152 +#: library/codecs.rst:1186 msgid "windows-1250" msgstr "" -#: library/codecs.rst:1154 +#: library/codecs.rst:1188 msgid "cp1251" msgstr "" -#: library/codecs.rst:1154 +#: library/codecs.rst:1188 msgid "windows-1251" msgstr "" -#: library/codecs.rst:1157 +#: library/codecs.rst:1191 msgid "cp1252" msgstr "" -#: library/codecs.rst:1157 +#: library/codecs.rst:1191 msgid "windows-1252" msgstr "" -#: library/codecs.rst:1159 +#: library/codecs.rst:1193 msgid "cp1253" msgstr "" -#: library/codecs.rst:1159 +#: library/codecs.rst:1193 msgid "windows-1253" msgstr "" -#: library/codecs.rst:1161 +#: library/codecs.rst:1195 msgid "cp1254" msgstr "" -#: library/codecs.rst:1161 +#: library/codecs.rst:1195 msgid "windows-1254" msgstr "" -#: library/codecs.rst:1163 +#: library/codecs.rst:1197 msgid "cp1255" msgstr "" -#: library/codecs.rst:1163 +#: library/codecs.rst:1197 msgid "windows-1255" msgstr "" -#: library/codecs.rst:1165 +#: library/codecs.rst:1199 msgid "cp1256" msgstr "" -#: library/codecs.rst:1165 +#: library/codecs.rst:1199 msgid "windows-1256" msgstr "" -#: library/codecs.rst:1167 +#: library/codecs.rst:1201 msgid "cp1257" msgstr "" -#: library/codecs.rst:1167 +#: library/codecs.rst:1201 msgid "windows-1257" msgstr "" -#: library/codecs.rst:1169 +#: library/codecs.rst:1203 msgid "cp1258" msgstr "" -#: library/codecs.rst:1169 +#: library/codecs.rst:1203 msgid "windows-1258" msgstr "" -#: library/codecs.rst:1169 +#: library/codecs.rst:1203 msgid "Vietnamese" msgstr "" -#: library/codecs.rst:1171 +#: library/codecs.rst:1205 msgid "euc_jp" msgstr "" -#: library/codecs.rst:1171 +#: library/codecs.rst:1205 msgid "eucjp, ujis, u-jis" msgstr "" -#: library/codecs.rst:1173 +#: library/codecs.rst:1207 msgid "euc_jis_2004" msgstr "" -#: library/codecs.rst:1173 +#: library/codecs.rst:1207 msgid "jisx0213, eucjis2004" msgstr "" -#: library/codecs.rst:1175 +#: library/codecs.rst:1209 msgid "euc_jisx0213" msgstr "" -#: library/codecs.rst:1175 +#: library/codecs.rst:1209 msgid "eucjisx0213" msgstr "" -#: library/codecs.rst:1177 +#: library/codecs.rst:1211 msgid "euc_kr" msgstr "" -#: library/codecs.rst:1177 +#: library/codecs.rst:1211 msgid "euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001" msgstr "" -#: library/codecs.rst:1181 +#: library/codecs.rst:1215 msgid "gb2312" msgstr "" -#: library/codecs.rst:1181 +#: library/codecs.rst:1215 msgid "" "chinese, csiso58gb231280, euc-cn, euccn, eucgb2312-cn, gb2312-1980, " "gb2312-80, iso-ir-58" msgstr "" -#: library/codecs.rst:1190 +#: library/codecs.rst:1224 msgid "Simplified Chinese" msgstr "" -#: library/codecs.rst:1186 +#: library/codecs.rst:1220 msgid "gbk" msgstr "" -#: library/codecs.rst:1186 +#: library/codecs.rst:1220 msgid "936, cp936, ms936" msgstr "" -#: library/codecs.rst:1188 +#: library/codecs.rst:1222 msgid "Unified Chinese" msgstr "" -#: library/codecs.rst:1188 +#: library/codecs.rst:1222 msgid "gb18030" msgstr "" -#: library/codecs.rst:1188 +#: library/codecs.rst:1222 msgid "gb18030-2000" msgstr "" -#: library/codecs.rst:1190 +#: library/codecs.rst:1224 msgid "hz" msgstr "" -#: library/codecs.rst:1190 +#: library/codecs.rst:1224 msgid "hzgb, hz-gb, hz-gb-2312" msgstr "" -#: library/codecs.rst:1192 +#: library/codecs.rst:1226 msgid "iso2022_jp" msgstr "" -#: library/codecs.rst:1192 +#: library/codecs.rst:1226 msgid "csiso2022jp, iso2022jp, iso-2022-jp" msgstr "" -#: library/codecs.rst:1195 +#: library/codecs.rst:1229 msgid "iso2022_jp_1" msgstr "" -#: library/codecs.rst:1195 +#: library/codecs.rst:1229 msgid "iso2022jp-1, iso-2022-jp-1" msgstr "" -#: library/codecs.rst:1197 +#: library/codecs.rst:1231 msgid "iso2022_jp_2" msgstr "" -#: library/codecs.rst:1197 +#: library/codecs.rst:1231 msgid "iso2022jp-2, iso-2022-jp-2" msgstr "" -#: library/codecs.rst:1197 +#: library/codecs.rst:1231 msgid "Japanese, Korean, Simplified Chinese, Western Europe, Greek" msgstr "" -#: library/codecs.rst:1200 +#: library/codecs.rst:1234 msgid "iso2022_jp_2004" msgstr "" -#: library/codecs.rst:1200 +#: library/codecs.rst:1234 msgid "iso2022jp-2004, iso-2022-jp-2004" msgstr "" -#: library/codecs.rst:1203 +#: library/codecs.rst:1237 msgid "iso2022_jp_3" msgstr "" -#: library/codecs.rst:1203 +#: library/codecs.rst:1237 msgid "iso2022jp-3, iso-2022-jp-3" msgstr "" -#: library/codecs.rst:1205 +#: library/codecs.rst:1239 msgid "iso2022_jp_ext" msgstr "" -#: library/codecs.rst:1205 +#: library/codecs.rst:1239 msgid "iso2022jp-ext, iso-2022-jp-ext" msgstr "" -#: library/codecs.rst:1207 +#: library/codecs.rst:1241 msgid "iso2022_kr" msgstr "" -#: library/codecs.rst:1207 +#: library/codecs.rst:1241 msgid "csiso2022kr, iso2022kr, iso-2022-kr" msgstr "" -#: library/codecs.rst:1210 +#: library/codecs.rst:1244 msgid "latin_1" msgstr "" -#: library/codecs.rst:1210 +#: library/codecs.rst:1244 msgid "iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1" msgstr "" -#: library/codecs.rst:1213 +#: library/codecs.rst:1247 msgid "iso8859_2" msgstr "" -#: library/codecs.rst:1213 +#: library/codecs.rst:1247 msgid "iso-8859-2, latin2, L2" msgstr "" -#: library/codecs.rst:1215 +#: library/codecs.rst:1249 msgid "iso8859_3" msgstr "" -#: library/codecs.rst:1215 +#: library/codecs.rst:1249 msgid "iso-8859-3, latin3, L3" msgstr "" -#: library/codecs.rst:1215 +#: library/codecs.rst:1249 msgid "Esperanto, Maltese" msgstr "" -#: library/codecs.rst:1217 +#: library/codecs.rst:1251 msgid "iso8859_4" msgstr "" -#: library/codecs.rst:1217 +#: library/codecs.rst:1251 msgid "iso-8859-4, latin4, L4" msgstr "" -#: library/codecs.rst:1219 +#: library/codecs.rst:1251 +msgid "Northern Europe" +msgstr "" + +#: library/codecs.rst:1253 msgid "iso8859_5" msgstr "" -#: library/codecs.rst:1219 +#: library/codecs.rst:1253 msgid "iso-8859-5, cyrillic" msgstr "" -#: library/codecs.rst:1222 +#: library/codecs.rst:1256 msgid "iso8859_6" msgstr "" -#: library/codecs.rst:1222 +#: library/codecs.rst:1256 msgid "iso-8859-6, arabic" msgstr "" -#: library/codecs.rst:1224 +#: library/codecs.rst:1258 msgid "iso8859_7" msgstr "" -#: library/codecs.rst:1224 +#: library/codecs.rst:1258 msgid "iso-8859-7, greek, greek8" msgstr "" -#: library/codecs.rst:1226 +#: library/codecs.rst:1260 msgid "iso8859_8" msgstr "" -#: library/codecs.rst:1226 +#: library/codecs.rst:1260 msgid "iso-8859-8, hebrew" msgstr "" -#: library/codecs.rst:1228 +#: library/codecs.rst:1262 msgid "iso8859_9" msgstr "" -#: library/codecs.rst:1228 +#: library/codecs.rst:1262 msgid "iso-8859-9, latin5, L5" msgstr "" -#: library/codecs.rst:1230 +#: library/codecs.rst:1264 msgid "iso8859_10" msgstr "" -#: library/codecs.rst:1230 +#: library/codecs.rst:1264 msgid "iso-8859-10, latin6, L6" msgstr "" -#: library/codecs.rst:1230 +#: library/codecs.rst:1264 msgid "Nordic languages" msgstr "" -#: library/codecs.rst:1232 +#: library/codecs.rst:1266 msgid "iso8859_11" msgstr "" -#: library/codecs.rst:1232 +#: library/codecs.rst:1266 msgid "iso-8859-11, thai" msgstr "" -#: library/codecs.rst:1232 +#: library/codecs.rst:1266 msgid "Thai languages" msgstr "" -#: library/codecs.rst:1234 +#: library/codecs.rst:1268 msgid "iso8859_13" msgstr "" -#: library/codecs.rst:1234 +#: library/codecs.rst:1268 msgid "iso-8859-13, latin7, L7" msgstr "" -#: library/codecs.rst:1236 +#: library/codecs.rst:1270 msgid "iso8859_14" msgstr "" -#: library/codecs.rst:1236 +#: library/codecs.rst:1270 msgid "iso-8859-14, latin8, L8" msgstr "" -#: library/codecs.rst:1236 +#: library/codecs.rst:1270 msgid "Celtic languages" msgstr "" -#: library/codecs.rst:1238 +#: library/codecs.rst:1272 msgid "iso8859_15" msgstr "" -#: library/codecs.rst:1238 +#: library/codecs.rst:1272 msgid "iso-8859-15, latin9, L9" msgstr "" -#: library/codecs.rst:1240 +#: library/codecs.rst:1274 msgid "iso8859_16" msgstr "" -#: library/codecs.rst:1240 +#: library/codecs.rst:1274 msgid "iso-8859-16, latin10, L10" msgstr "" -#: library/codecs.rst:1240 +#: library/codecs.rst:1274 msgid "South-Eastern Europe" msgstr "" -#: library/codecs.rst:1242 +#: library/codecs.rst:1276 msgid "johab" msgstr "" -#: library/codecs.rst:1242 +#: library/codecs.rst:1276 msgid "cp1361, ms1361" msgstr "" -#: library/codecs.rst:1244 +#: library/codecs.rst:1278 msgid "koi8_r" msgstr "" -#: library/codecs.rst:1246 +#: library/codecs.rst:1280 msgid "koi8_t" msgstr "" -#: library/codecs.rst:1246 +#: library/codecs.rst:1280 msgid "Tajik" msgstr "" -#: library/codecs.rst:1250 +#: library/codecs.rst:1284 msgid "koi8_u" msgstr "" -#: library/codecs.rst:1252 +#: library/codecs.rst:1286 msgid "kz1048" msgstr "" -#: library/codecs.rst:1252 +#: library/codecs.rst:1286 msgid "kz_1048, strk1048_2002, rk1048" msgstr "" -#: library/codecs.rst:1270 +#: library/codecs.rst:1304 msgid "Kazakh" msgstr "" -#: library/codecs.rst:1256 +#: library/codecs.rst:1290 msgid "mac_cyrillic" msgstr "" -#: library/codecs.rst:1256 +#: library/codecs.rst:1290 msgid "maccyrillic" msgstr "" -#: library/codecs.rst:1259 +#: library/codecs.rst:1293 msgid "mac_greek" msgstr "" -#: library/codecs.rst:1259 +#: library/codecs.rst:1293 msgid "macgreek" msgstr "" -#: library/codecs.rst:1261 +#: library/codecs.rst:1295 msgid "mac_iceland" msgstr "" -#: library/codecs.rst:1261 +#: library/codecs.rst:1295 msgid "maciceland" msgstr "" -#: library/codecs.rst:1263 +#: library/codecs.rst:1297 msgid "mac_latin2" msgstr "" -#: library/codecs.rst:1263 +#: library/codecs.rst:1297 msgid "maclatin2, maccentraleurope, mac_centeuro" msgstr "" -#: library/codecs.rst:1266 +#: library/codecs.rst:1300 msgid "mac_roman" msgstr "" -#: library/codecs.rst:1266 +#: library/codecs.rst:1300 msgid "macroman, macintosh" msgstr "" -#: library/codecs.rst:1268 +#: library/codecs.rst:1302 msgid "mac_turkish" msgstr "" -#: library/codecs.rst:1268 +#: library/codecs.rst:1302 msgid "macturkish" msgstr "" -#: library/codecs.rst:1270 +#: library/codecs.rst:1304 msgid "ptcp154" msgstr "" -#: library/codecs.rst:1270 +#: library/codecs.rst:1304 msgid "csptcp154, pt154, cp154, cyrillic-asian" msgstr "" -#: library/codecs.rst:1273 +#: library/codecs.rst:1307 msgid "shift_jis" msgstr "" -#: library/codecs.rst:1273 +#: library/codecs.rst:1307 msgid "csshiftjis, shiftjis, sjis, s_jis" msgstr "" -#: library/codecs.rst:1276 +#: library/codecs.rst:1310 msgid "shift_jis_2004" msgstr "" -#: library/codecs.rst:1276 +#: library/codecs.rst:1310 msgid "shiftjis2004, sjis_2004, sjis2004" msgstr "" -#: library/codecs.rst:1279 +#: library/codecs.rst:1313 msgid "shift_jisx0213" msgstr "" -#: library/codecs.rst:1279 +#: library/codecs.rst:1313 msgid "shiftjisx0213, sjisx0213, s_jisx0213" msgstr "" -#: library/codecs.rst:1282 +#: library/codecs.rst:1316 msgid "utf_32" msgstr "" -#: library/codecs.rst:1282 +#: library/codecs.rst:1316 msgid "U32, utf32" msgstr "" -#: library/codecs.rst:1284 library/codecs.rst:1288 library/codecs.rst:1292 -#: library/codecs.rst:1296 library/codecs.rst:1298 +#: library/codecs.rst:1318 library/codecs.rst:1322 library/codecs.rst:1326 +#: library/codecs.rst:1330 library/codecs.rst:1332 msgid "all languages" msgstr "" -#: library/codecs.rst:1284 +#: library/codecs.rst:1318 msgid "utf_32_be" msgstr "" -#: library/codecs.rst:1284 +#: library/codecs.rst:1318 msgid "UTF-32BE" msgstr "" -#: library/codecs.rst:1286 +#: library/codecs.rst:1320 msgid "utf_32_le" msgstr "" -#: library/codecs.rst:1286 +#: library/codecs.rst:1320 msgid "UTF-32LE" msgstr "" -#: library/codecs.rst:1288 +#: library/codecs.rst:1322 msgid "utf_16" msgstr "" -#: library/codecs.rst:1288 +#: library/codecs.rst:1322 msgid "U16, utf16" msgstr "" -#: library/codecs.rst:1290 +#: library/codecs.rst:1324 msgid "utf_16_be" msgstr "" -#: library/codecs.rst:1290 +#: library/codecs.rst:1324 msgid "UTF-16BE" msgstr "" -#: library/codecs.rst:1292 +#: library/codecs.rst:1326 msgid "utf_16_le" msgstr "" -#: library/codecs.rst:1292 +#: library/codecs.rst:1326 msgid "UTF-16LE" msgstr "" -#: library/codecs.rst:1294 +#: library/codecs.rst:1328 msgid "utf_7" msgstr "" -#: library/codecs.rst:1294 +#: library/codecs.rst:1328 msgid "U7, unicode-1-1-utf-7" msgstr "" -#: library/codecs.rst:1296 +#: library/codecs.rst:1330 msgid "utf_8" msgstr "" -#: library/codecs.rst:1296 +#: library/codecs.rst:1330 msgid "U8, UTF, utf8, cp65001" msgstr "" -#: library/codecs.rst:1298 +#: library/codecs.rst:1332 msgid "utf_8_sig" msgstr "" -#: library/codecs.rst:1301 +#: library/codecs.rst:1335 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:1307 +#: library/codecs.rst:1341 msgid "``cp65001`` is now an alias to ``utf_8``." msgstr "" -#: library/codecs.rst:1312 +#: library/codecs.rst:1346 msgid "Python Specific Encodings" msgstr "" -#: library/codecs.rst:1314 +#: library/codecs.rst:1348 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 " @@ -2274,268 +2319,369 @@ msgid "" "asymmetric codecs, the stated meaning describes the encoding direction." msgstr "" -#: library/codecs.rst:1322 +#: library/codecs.rst:1356 msgid "Text Encodings" msgstr "" -#: library/codecs.rst:1324 +#: library/codecs.rst:1358 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:1333 +#: library/codecs.rst:1367 msgid "idna" msgstr "" -#: library/codecs.rst:1333 +#: library/codecs.rst:1367 msgid "" "Implement :rfc:`3490`, see also :mod:`encodings.idna`. Only " "``errors='strict'`` is supported." msgstr "" -#: library/codecs.rst:1339 +#: library/codecs.rst:1373 msgid "mbcs" msgstr "" -#: library/codecs.rst:1339 +#: library/codecs.rst:1373 msgid "ansi, dbcs" msgstr "" -#: library/codecs.rst:1339 +#: library/codecs.rst:1373 msgid "" "Windows only: Encode the operand according to the ANSI codepage (CP_ACP)." msgstr "" -#: library/codecs.rst:1343 +#: library/codecs.rst:1377 msgid "oem" msgstr "" -#: library/codecs.rst:1343 +#: library/codecs.rst:1377 msgid "" "Windows only: Encode the operand according to the OEM codepage (CP_OEMCP)." msgstr "" -#: library/codecs.rst:1349 +#: library/codecs.rst:1383 msgid "palmos" msgstr "" -#: library/codecs.rst:1349 +#: library/codecs.rst:1383 msgid "Encoding of PalmOS 3.5." msgstr "" -#: library/codecs.rst:1351 +#: library/codecs.rst:1385 msgid "punycode" msgstr "" -#: library/codecs.rst:1351 +#: library/codecs.rst:1385 msgid "Implement :rfc:`3492`. Stateful codecs are not supported." msgstr "" -#: library/codecs.rst:1355 +#: library/codecs.rst:1389 msgid "raw_unicode_escape" msgstr "" -#: library/codecs.rst:1355 +#: library/codecs.rst:1389 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:1365 +#: library/codecs.rst:1399 msgid "undefined" msgstr "" -#: library/codecs.rst:1365 +#: library/codecs.rst:1399 +msgid "This Codec should only be used for testing purposes." +msgstr "" + +#: library/codecs.rst:1403 msgid "" "Raise an exception for all conversions, even empty strings. The error " "handler is ignored." msgstr "" -#: library/codecs.rst:1370 +#: library/codecs.rst:1408 msgid "unicode_escape" msgstr "" -#: library/codecs.rst:1370 +#: library/codecs.rst:1408 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:1382 +#: library/codecs.rst:1420 msgid "\"unicode_internal\" codec is removed." msgstr "" -#: library/codecs.rst:1389 +#: library/codecs.rst:1427 msgid "Binary Transforms" msgstr "" -#: library/codecs.rst:1391 +#: library/codecs.rst:1429 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:1399 +#: library/codecs.rst:1437 msgid "Encoder / decoder" msgstr "" -#: library/codecs.rst:1401 +#: library/codecs.rst:1439 msgid "base64_codec [#b64]_" msgstr "" -#: library/codecs.rst:1401 +#: library/codecs.rst:1439 msgid "base64, base_64" msgstr "" -#: library/codecs.rst:1401 +#: library/codecs.rst:1439 msgid "" "Convert the operand to multiline MIME base64 (the result always includes a " "trailing ``'\\n'``)." msgstr "" -#: library/codecs.rst:1406 +#: library/codecs.rst:1444 msgid "" "accepts any :term:`bytes-like object` as input for encoding and decoding" msgstr "" -#: library/codecs.rst:1401 +#: library/codecs.rst:1439 msgid ":meth:`base64.encodebytes` / :meth:`base64.decodebytes`" msgstr "" -#: library/codecs.rst:1412 +#: library/codecs.rst:1450 msgid "bz2_codec" msgstr "" -#: library/codecs.rst:1412 +#: library/codecs.rst:1450 msgid "bz2" msgstr "" -#: library/codecs.rst:1412 +#: library/codecs.rst:1450 msgid "Compress the operand using bz2." msgstr "" -#: library/codecs.rst:1412 +#: library/codecs.rst:1450 msgid ":meth:`bz2.compress` / :meth:`bz2.decompress`" msgstr "" -#: library/codecs.rst:1415 +#: library/codecs.rst:1453 msgid "hex_codec" msgstr "" -#: library/codecs.rst:1415 +#: library/codecs.rst:1453 msgid "hex" msgstr "" -#: library/codecs.rst:1415 +#: library/codecs.rst:1453 msgid "" "Convert the operand to hexadecimal representation, with two digits per byte." msgstr "" -#: library/codecs.rst:1415 +#: library/codecs.rst:1453 msgid ":meth:`binascii.b2a_hex` / :meth:`binascii.a2b_hex`" msgstr "" -#: library/codecs.rst:1420 +#: library/codecs.rst:1458 msgid "quopri_codec" msgstr "" -#: library/codecs.rst:1420 +#: library/codecs.rst:1458 msgid "quopri, quotedprintable, quoted_printable" msgstr "" -#: library/codecs.rst:1420 +#: library/codecs.rst:1458 msgid "Convert the operand to MIME quoted printable." msgstr "" -#: library/codecs.rst:1420 +#: library/codecs.rst:1458 msgid ":meth:`quopri.encode` with ``quotetabs=True`` / :meth:`quopri.decode`" msgstr "" -#: library/codecs.rst:1424 +#: library/codecs.rst:1462 msgid "uu_codec" msgstr "" -#: library/codecs.rst:1424 +#: library/codecs.rst:1462 msgid "uu" msgstr "" -#: library/codecs.rst:1424 +#: library/codecs.rst:1462 msgid "Convert the operand using uuencode." msgstr "" -#: library/codecs.rst:1427 +#: library/codecs.rst:1465 msgid "zlib_codec" msgstr "" -#: library/codecs.rst:1427 +#: library/codecs.rst:1465 msgid "zip, zlib" msgstr "" -#: library/codecs.rst:1427 +#: library/codecs.rst:1465 msgid "Compress the operand using gzip." msgstr "" -#: library/codecs.rst:1427 +#: library/codecs.rst:1465 msgid ":meth:`zlib.compress` / :meth:`zlib.decompress`" msgstr "" -#: library/codecs.rst:1431 +#: library/codecs.rst:1469 msgid "" "In addition to :term:`bytes-like objects `, " "``'base64_codec'`` also accepts ASCII-only instances of :class:`str` for " "decoding" msgstr "" -#: library/codecs.rst:1435 +#: library/codecs.rst:1473 msgid "Restoration of the binary transforms." msgstr "" -#: library/codecs.rst:1438 +#: library/codecs.rst:1476 msgid "Restoration of the aliases for the binary transforms." msgstr "" -#: library/codecs.rst:1445 +#: library/codecs.rst:1483 +msgid "Standalone Codec Functions" +msgstr "" + +#: library/codecs.rst:1485 +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:1492 +msgid "" +"Encode *input* using escape sequences. Similar to how :func:`repr` on bytes " +"produces escaped byte values." +msgstr "" + +#: library/codecs.rst:1495 +msgid "*input* must be a :class:`bytes` object." +msgstr "" + +#: library/codecs.rst:1506 +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:1502 +msgid "Decode *input* from escape sequences back to the original bytes." +msgstr "" + +#: library/codecs.rst:1504 +msgid "*input* must be a :term:`bytes-like object`." +msgstr "" + +#: library/codecs.rst:1513 msgid "Text Transforms" msgstr "" -#: library/codecs.rst:1447 +#: library/codecs.rst:1515 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:1456 +#: library/codecs.rst:1524 msgid "rot_13" msgstr "" -#: library/codecs.rst:1456 +#: library/codecs.rst:1524 msgid "rot13" msgstr "" -#: library/codecs.rst:1456 +#: library/codecs.rst:1524 msgid "Return the Caesar-cypher encryption of the operand." msgstr "" -#: library/codecs.rst:1461 +#: library/codecs.rst:1529 msgid "Restoration of the ``rot_13`` text transform." msgstr "" -#: library/codecs.rst:1464 +#: library/codecs.rst:1532 msgid "Restoration of the ``rot13`` alias." msgstr "" -#: library/codecs.rst:1469 +#: library/codecs.rst:1537 +msgid ":mod:`encodings` --- Encodings package" +msgstr "" + +#: library/codecs.rst:1542 +msgid "This module implements the following functions:" +msgstr "" + +#: library/codecs.rst:1546 +msgid "Normalize encoding name *encoding*." +msgstr "" + +#: library/codecs.rst:1548 +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:1553 +msgid "Note that *encoding* should be ASCII only." +msgstr "" + +#: library/codecs.rst:1557 +msgid "" +"The following function should not be used directly, except for testing " +"purposes; :func:`codecs.lookup` should be used instead." +msgstr "" + +#: library/codecs.rst:1563 +msgid "" +"Search for the codec module corresponding to the given encoding name " +"*encoding*." +msgstr "" + +#: library/codecs.rst:1566 +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:1573 +msgid "" +"If the codec module defines a ``getaliases()`` function any returned aliases " +"are registered for future use." +msgstr "" + +#: library/codecs.rst:1577 +msgid "This module implements the following exception:" +msgstr "" + +#: library/codecs.rst:1581 +msgid "Raised when a codec is invalid or incompatible." +msgstr "" + +#: library/codecs.rst:1585 msgid "" ":mod:`encodings.idna` --- Internationalized Domain Names in Applications" msgstr "" -#: library/codecs.rst:1475 +#: library/codecs.rst:1591 msgid "" "This module implements :rfc:`3490` (Internationalized Domain Names in " "Applications) and :rfc:`3492` (Nameprep: A Stringprep Profile for " @@ -2543,13 +2689,13 @@ msgid "" "encoding and :mod:`stringprep`." msgstr "" -#: library/codecs.rst:1480 +#: library/codecs.rst:1596 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:1483 +#: library/codecs.rst:1599 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." @@ -2563,7 +2709,7 @@ msgid "" "presenting them to the user." msgstr "" -#: library/codecs.rst:1494 +#: library/codecs.rst:1610 msgid "" "Python supports this conversion in several ways: the ``idna`` codec " "performs conversion between Unicode and ACE, separating an input string into " @@ -2580,14 +2726,14 @@ msgid "" "sends that field at all)." msgstr "" -#: library/codecs.rst:1507 +#: library/codecs.rst:1623 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:1511 +#: library/codecs.rst:1627 msgid "" "The module :mod:`encodings.idna` also implements the nameprep procedure, " "which performs certain normalizations on host names, to achieve case-" @@ -2595,49 +2741,49 @@ msgid "" "characters. The nameprep functions can be used directly if desired." msgstr "" -#: library/codecs.rst:1519 +#: library/codecs.rst:1635 msgid "" "Return the nameprepped version of *label*. The implementation currently " "assumes query strings, so ``AllowUnassigned`` is true." msgstr "" -#: library/codecs.rst:1525 +#: library/codecs.rst:1641 msgid "" "Convert a label to ASCII, as specified in :rfc:`3490`. ``UseSTD3ASCIIRules`` " "is assumed to be false." msgstr "" -#: library/codecs.rst:1531 +#: library/codecs.rst:1647 msgid "Convert a label to Unicode, as specified in :rfc:`3490`." msgstr "" -#: library/codecs.rst:1535 +#: library/codecs.rst:1651 msgid ":mod:`encodings.mbcs` --- Windows ANSI codepage" msgstr "" -#: library/codecs.rst:1540 +#: library/codecs.rst:1656 msgid "This module implements the ANSI codepage (CP_ACP)." msgstr "" -#: library/codecs.rst:1542 +#: library/codecs.rst:1658 msgid "Availability" msgstr "" -#: library/codecs.rst:1544 +#: library/codecs.rst:1660 msgid "" "Before 3.2, the *errors* argument was ignored; ``'replace'`` was always used " "to encode, and ``'ignore'`` to decode." msgstr "" -#: library/codecs.rst:1548 +#: library/codecs.rst:1664 msgid "Support any error handler." msgstr "" -#: library/codecs.rst:1553 +#: library/codecs.rst:1669 msgid ":mod:`encodings.utf_8_sig` --- UTF-8 codec with BOM signature" msgstr "" -#: library/codecs.rst:1559 +#: library/codecs.rst:1675 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 " @@ -2666,70 +2812,70 @@ msgstr "" msgid "stackable" msgstr "" -#: library/codecs.rst:312 +#: library/codecs.rst:334 msgid "strict" msgstr "" -#: library/codecs.rst:364 library/codecs.rst:387 +#: library/codecs.rst:386 library/codecs.rst:409 msgid "error handler's name" msgstr "" -#: library/codecs.rst:312 +#: library/codecs.rst:334 msgid "ignore" msgstr "" -#: library/codecs.rst:312 +#: library/codecs.rst:334 msgid "replace" msgstr "" -#: library/codecs.rst:312 +#: library/codecs.rst:334 msgid "backslashreplace" msgstr "" -#: library/codecs.rst:312 +#: library/codecs.rst:334 msgid "surrogateescape" msgstr "" -#: library/codecs.rst:312 +#: library/codecs.rst:334 msgid "? (question mark)" msgstr "" -#: library/codecs.rst:312 +#: library/codecs.rst:334 msgid "replacement character" msgstr "" -#: library/codecs.rst:312 +#: library/codecs.rst:334 msgid "\\ (backslash)" msgstr "" -#: library/codecs.rst:364 +#: library/codecs.rst:386 msgid "escape sequence" msgstr "" -#: library/codecs.rst:312 +#: library/codecs.rst:334 msgid "\\x" msgstr "" -#: library/codecs.rst:312 +#: library/codecs.rst:334 msgid "\\u" msgstr "" -#: library/codecs.rst:312 +#: library/codecs.rst:334 msgid "\\U" msgstr "" -#: library/codecs.rst:364 +#: library/codecs.rst:386 msgid "xmlcharrefreplace" msgstr "" -#: library/codecs.rst:364 +#: library/codecs.rst:386 msgid "namereplace" msgstr "" -#: library/codecs.rst:364 +#: library/codecs.rst:386 msgid "\\N" msgstr "" -#: library/codecs.rst:387 +#: library/codecs.rst:409 msgid "surrogatepass" msgstr "" diff --git a/library/codeop.po b/library/codeop.po index 6b6001f2..a2704490 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 14cc7c21..f3d19bb2 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-05-04 22:06+0300\n" -"PO-Revision-Date: 2025-05-02 23:52+0200\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" "Language: \n" @@ -667,15 +667,15 @@ msgstr "" #: 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 θα έχουν γραμμική απόδοση. Ωστόσο, αν η " @@ -683,40 +683,89 @@ msgstr "" "οι mixins θα έχουν τετραγωνική απόδοση και πιθανώς θα χρειαστεί να " "αντικατασταθούν." -#: library/collections.abc.rst:279 -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:283 +#: library/collections.abc.rst:288 msgid "" -"The :class:`ByteString` ABC has been deprecated. For use in typing, prefer a " -"union, like ``bytes | bytearray``, or :class:`collections.abc.Buffer`. For " -"use as an ABC, prefer :class:`Sequence` or :class:`collections.abc.Buffer`." +"The :meth:`~sequence.index` method gained support for the *stop* and *start* " +"arguments." msgstr "" -"Η ABC :class:`ByteString` έχει αποσυρθεί. Για χρήση στην δακτυλογράφηση, " -"προτιμάται ένωση, όπως ``bytes | bytearray``, ή :class:`collections.abc." -"Buffer`. Για χρήση ως ABC, προτιμάται :class:`Sequence` ή :class:" -"`collections.abc.Buffer`." +"Η μέθοδος :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:297 +#: 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:304 +#: library/collections.abc.rst:326 msgid "" "ABCs for mapping, items, keys, and values :term:`views `." msgstr "" "ABCs για αντιστοιχήσεις, στοιχεία, κλειδιά και τιμές :term:`views " "`." -#: library/collections.abc.rst:308 +#: 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." @@ -726,7 +775,7 @@ msgstr "" "εκφράσεις :keyword:`await`. Οι προσαρμοσμένες υλοποιήσεις πρέπει να παρέχουν " "τη μέθοδο :meth:`~object.__await__`." -#: library/collections.abc.rst:312 +#: library/collections.abc.rst:334 msgid "" ":term:`Coroutine ` objects and instances of the :class:" "`~collections.abc.Coroutine` ABC are all instances of this ABC." @@ -734,22 +783,22 @@ msgstr "" "Τα αντικείμενα :term:`Coroutine ` και τα στιγμιότυπα της κλάσης :" "class:`~collections.abc.Coroutine` είναι όλα παραδείγματα αυτής της ABC." -#: library/collections.abc.rst:316 +#: 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 `) είναι " -"*awaitables*, αν και δεν διαθέτουν μέθοδο :meth:`~object.__await__`. Η χρήση " -"της ``isinstance(gencoro, Awaitable)`` γι' αυτές θα επιστρέψει ``False``. " +"που είναι decorated με :deco:`types.coroutine`) είναι *awaitables*, αν και " +"δεν διαθέτουν μέθοδο :meth:`~object.__await__`. Η χρήση της " +"``isinstance(gencoro, Awaitable)`` γι' αυτές θα επιστρέψει ``False``. " "Χρησιμοποιείτε τη συνάρτηση :func:`inspect.isawaitable` για να τις " "εντοπίσετε." -#: library/collections.abc.rst:326 +#: 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:" @@ -764,21 +813,21 @@ msgstr "" "`~object.__await__`. Όλα τα :class:`Coroutine` στιγμιότυπα είναι επίσης " "στιγμιότυπα της κλάσης :class:`Awaitable`." -#: library/collections.abc.rst:334 +#: 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 `) είναι " -"*awaitables*, αν και δεν έχουν τη μέθοδο :meth:`~object.__await__`. Η χρήση " -"της ``isinstance (gencoro, Coroutine)`` γι' αυτές θα επιστρέψει ``False``. " -"Χρησιμοποιείται η συνάρτηση :func:`inspect.isawaitable` για να εντοπιστούν." +"που είναι διακοσμημένες με :deco:`types.coroutine`) είναι *awaitables*, αν " +"και δεν έχουν τη μέθοδο :meth:`~object.__await__`. Η χρήση της ``isinstance " +"(gencoro, Coroutine)`` γι' αυτές θα επιστρέψει ``False``. Χρησιμοποιείται η " +"συνάρτηση :func:`inspect.isawaitable` για να εντοπιστούν." -#: library/collections.abc.rst:340 +#: 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 " @@ -788,7 +837,7 @@ msgstr "" "τη χρήση της :class:`!Coroutine` σε σχολιασμούς τύπου. Η διακύμανση και η " "σειρά των παραμέτρων τύπου αντιστοιχούν σε εκείνες της :class:`Generator`." -#: library/collections.abc.rst:349 +#: library/collections.abc.rst:371 msgid "" "ABC for classes that provide an ``__aiter__`` method. See also the " "definition of :term:`asynchronous iterable`." @@ -796,7 +845,7 @@ msgstr "" "ABC για κλάσεις που παρέχουν μια μέθοδο ``__aiter__``. Δείτε επίσης τον " "ορισμό του :term:`asynchronous iterable`." -#: library/collections.abc.rst:356 +#: library/collections.abc.rst:378 msgid "" "ABC for classes that provide ``__aiter__`` and ``__anext__`` methods. See " "also the definition of :term:`asynchronous iterator`." @@ -804,7 +853,7 @@ msgstr "" "ABC για κλάσεις που παρέχουν τις μεθόδους ``__aiter__`` και ``__anext__``. " "Δείτε επίσης τον ορισμό του :term:`asynchronous iterator`." -#: library/collections.abc.rst:363 +#: library/collections.abc.rst:385 msgid "" "ABC for :term:`asynchronous generator` classes that implement the protocol " "defined in :pep:`525` and :pep:`492`." @@ -812,7 +861,7 @@ msgstr "" "ABC για κλάσεις :term:`asynchronous generator` που υλοποιούν το πρωτόκολλο " "που ορίζεται στο :pep:`525` και :pep:`492`." -#: library/collections.abc.rst:366 +#: library/collections.abc.rst:388 msgid "" "See :ref:`annotating-generators-and-coroutines` for details on using :class:" "`!AsyncGenerator` in type annotations." @@ -820,7 +869,7 @@ msgstr "" "Δείτε :ref:`annotating-generators-and-coroutines` για λεπτομέρειες σχετικά " "με τη χρήση του :class:`!AsyncGenerator` σε σχολιασμούς τύπου." -#: library/collections.abc.rst:373 +#: library/collections.abc.rst:395 msgid "" "ABC for classes that provide the :meth:`~object.__buffer__` method, " "implementing the :ref:`buffer protocol `. See :pep:`688`." @@ -828,11 +877,11 @@ msgstr "" "ABC για κλάσεις που παρέχουν τη μέθοδο :meth:`~object.__buffer__`, " "υλοποιώντας το :ref:`buffer protocol `. Δείτε το :pep:`688`." -#: library/collections.abc.rst:379 +#: library/collections.abc.rst:401 msgid "Examples and Recipes" msgstr "Παραδείγματα και Συνταγές" -#: library/collections.abc.rst:381 +#: library/collections.abc.rst:403 msgid "" "ABCs allow us to ask classes or instances if they provide particular " "functionality, for example::" @@ -840,7 +889,7 @@ msgstr "" "Οι ABCs επιτρέπουν να ρωτήσουμε τις κλάσεις ή τα αντικείμενα αν παρέχουν " "συγκεκριμένη λειτουργικότητα, για παράδειγμα::" -#: library/collections.abc.rst:384 +#: library/collections.abc.rst:406 msgid "" "size = None\n" "if isinstance(myvar, collections.abc.Sized):\n" @@ -850,7 +899,7 @@ msgstr "" "if isinstance(myvar, collections.abc.Sized):\n" " size = len(myvar)" -#: library/collections.abc.rst:388 +#: 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 " @@ -867,7 +916,7 @@ msgstr "" "ABC παρέχει τις υπόλοιπες μεθόδους, όπως :meth:`!__and__` και :meth:" "`~frozenset.isdisjoint`::" -#: library/collections.abc.rst:395 +#: library/collections.abc.rst:417 msgid "" "class ListBasedSet(collections.abc.Set):\n" " ''' Alternate set implementation favoring space over speed\n" @@ -915,12 +964,12 @@ msgstr "" "overlap = s1 & s2 # The __and__() method is supported " "automatically" -#: library/collections.abc.rst:417 +#: 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:420 +#: 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 " @@ -943,7 +992,7 @@ msgstr "" "αντικαταστήσετε την :meth:`!_from_iterable` με μια μέθοδο κλάσης ή κανονική " "μέθοδο που μπορεί να δημιουργήσει νέα αντικείμενα από ένα όρισμα iterable." -#: library/collections.abc.rst:431 +#: 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 " @@ -954,7 +1003,7 @@ msgstr "" "__le__`, και :meth:`~object.__ge__`, και οι άλλες λειτουργίες θα " "ακολουθήσουν αυτόματα." -#: library/collections.abc.rst:437 +#: 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 " @@ -962,14 +1011,14 @@ msgid "" "using mixins, inherit from both :meth:`Set` and :meth:`Hashable`, then " "define ``__hash__ = Set._hash``." msgstr "" -"Το mixin :class:`Set` παρέχει τη μέθοδο meth:`!_hash` για να υπολογίσει μια " +"Το mixin :class:`Set` παρέχει τη μέθοδο :meth:`!_hash` για να υπολογίσει μια " "τιμή κατακερματισμού για το σύνολο. Ωστόσο, η μέθοδος :meth:`~object." "__hash__` δεν είναι ορισμένη, επειδή δεν είναι όλα τα σύνολα :term:" "`hashable` ή αμετάβλητα. Για να προσθέσετε hashability σε ένα σύνολο " "χρησιμοποιώντας mixins, κληρονομήστε τόσο από τις κλάσεις :meth:`Set` όσο " "και :meth:`Hashable`, και στη συνέχεια ορίστε ``__hash__ = Set._hash``." -#: library/collections.abc.rst:445 +#: library/collections.abc.rst:467 msgid "" "`OrderedSet recipe `_ for an " "example built on :class:`MutableSet`." @@ -977,8 +1026,19 @@ msgstr "" "Συνταγή `OrderedSet `_ για ένα " "παράδειγμα που βασίζεται στην κλάση :class:`MutableSet`." -#: library/collections.abc.rst:448 +#: 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 "" +#~ "The :class:`ByteString` ABC has been deprecated. For use in typing, " +#~ "prefer a union, like ``bytes | bytearray``, or :class:`collections.abc." +#~ "Buffer`. For use as an ABC, prefer :class:`Sequence` or :class:" +#~ "`collections.abc.Buffer`." +#~ msgstr "" +#~ "Η ABC :class:`ByteString` έχει αποσυρθεί. Για χρήση στην δακτυλογράφηση, " +#~ "προτιμάται ένωση, όπως ``bytes | bytearray``, ή :class:`collections.abc." +#~ "Buffer`. Για χρήση ως ABC, προτιμάται :class:`Sequence` ή :class:" +#~ "`collections.abc.Buffer`." diff --git a/library/collections.po b/library/collections.po index 54283168..0c3259b9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -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 9804a6c1..d293d982 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/compileall.po b/library/compileall.po index 7219cc51..fcaabe02 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -86,26 +86,40 @@ msgid "" "executed." msgstr "" -#: library/compileall.rst:61 +#: library/compileall.rst:60 msgid "" -"Remove (``-s``) or append (``-p``) the given prefix of paths recorded in the " -"``.pyc`` files. Cannot be combined with ``-d``." +"Remove the given prefix from paths recorded in the ``.pyc`` files. Paths are " +"made relative to the prefix." +msgstr "" + +#: library/compileall.rst:63 +msgid "This option can be used with ``-p`` but not with ``-d``." msgstr "" #: library/compileall.rst:67 msgid "" +"Prepend the given prefix to paths recorded in the ``.pyc`` files. Use ``-p /" +"`` to make the paths absolute." +msgstr "" + +#: library/compileall.rst:70 +msgid "This option can be used with ``-s`` but not with ``-d``." +msgstr "" + +#: library/compileall.rst:74 +msgid "" "regex is used to search the full path to each file considered for " "compilation, and if the regex produces a match, the file is skipped." msgstr "" -#: library/compileall.rst:72 +#: library/compileall.rst:79 msgid "" "Read the file ``list`` and add each line that it contains to the list of " "files and directories to compile. If ``list`` is ``-``, read lines from " "``stdin``." msgstr "" -#: library/compileall.rst:78 +#: library/compileall.rst:85 msgid "" "Write the byte-code files to their legacy locations and names, which may " "overwrite byte-code files created by another version of Python. The default " @@ -113,7 +127,7 @@ msgid "" "byte-code files from multiple versions of Python to coexist." msgstr "" -#: library/compileall.rst:85 +#: library/compileall.rst:92 msgid "" "Control the maximum recursion level for subdirectories. If this is given, " "then ``-l`` option will not be taken into account. :program:`python -m " @@ -121,13 +135,13 @@ msgid "" " -l`." msgstr "" -#: library/compileall.rst:92 +#: library/compileall.rst:99 msgid "" "Use *N* workers to compile the files within the given directory. If ``0`` is " "used, then the result of :func:`os.process_cpu_count` will be used." msgstr "" -#: library/compileall.rst:98 +#: library/compileall.rst:105 msgid "" "Control how the generated byte-code files are invalidated at runtime. The " "``timestamp`` value, means that ``.pyc`` files with the source timestamp and " @@ -140,53 +154,53 @@ msgid "" "the ``SOURCE_DATE_EPOCH`` environment variable is set." msgstr "" -#: library/compileall.rst:111 +#: library/compileall.rst:118 msgid "" "Compile with the given optimization level. May be used multiple times to " "compile for multiple levels at a time (for example, ``compileall -o 1 -o " "2``)." msgstr "" -#: library/compileall.rst:117 +#: library/compileall.rst:124 msgid "Ignore symlinks pointing outside the given directory." msgstr "" -#: library/compileall.rst:121 +#: library/compileall.rst:128 msgid "" "If two ``.pyc`` files with different optimization level have the same " "content, use hard links to consolidate duplicate files." msgstr "" -#: library/compileall.rst:124 +#: library/compileall.rst:131 msgid "Added the ``-i``, ``-b`` and ``-h`` options." msgstr "" -#: library/compileall.rst:127 +#: library/compileall.rst:134 msgid "" "Added the ``-j``, ``-r``, and ``-qq`` options. ``-q`` option was changed " "to a multilevel value. ``-b`` will always produce a byte-code file ending " "in ``.pyc``, never ``.pyo``." msgstr "" -#: library/compileall.rst:132 +#: library/compileall.rst:139 msgid "Added the ``--invalidation-mode`` option." msgstr "" -#: library/compileall.rst:135 +#: library/compileall.rst:142 msgid "" "Added the ``-s``, ``-p``, ``-e`` and ``--hardlink-dupes`` options. Raised " "the default recursion limit from 10 to :py:func:`sys.getrecursionlimit()`. " "Added the possibility to specify the ``-o`` option multiple times." msgstr "" -#: library/compileall.rst:142 +#: library/compileall.rst:149 msgid "" "There is no command-line option to control the optimization level used by " "the :func:`compile` function, because the Python interpreter itself already " "provides the option: :program:`python -O -m compileall`." msgstr "" -#: library/compileall.rst:146 +#: library/compileall.rst:153 msgid "" "Similarly, the :func:`compile` function respects the :data:`sys." "pycache_prefix` setting. The generated bytecode cache will only be useful " @@ -194,24 +208,24 @@ msgid "" "that will be used at runtime." msgstr "" -#: library/compileall.rst:152 +#: library/compileall.rst:159 msgid "Public functions" msgstr "" -#: library/compileall.rst:156 +#: library/compileall.rst:163 msgid "" "Recursively descend the directory tree named by *dir*, compiling all :file:`." "py` files along the way. Return a true value if all the files compiled " "successfully, and a false value otherwise." msgstr "" -#: library/compileall.rst:160 +#: library/compileall.rst:167 msgid "" "The *maxlevels* parameter is used to limit the depth of the recursion; it " "defaults to ``sys.getrecursionlimit()``." msgstr "" -#: library/compileall.rst:163 +#: library/compileall.rst:170 msgid "" "If *ddir* is given, it is prepended to the path to each file being compiled " "for use in compilation time tracebacks, and is also compiled in to the byte-" @@ -220,13 +234,13 @@ msgid "" "executed." msgstr "" -#: library/compileall.rst:169 +#: library/compileall.rst:176 msgid "" "If *force* is true, modules are re-compiled even if the timestamps are up to " "date." msgstr "" -#: library/compileall.rst:172 +#: library/compileall.rst:179 msgid "" "If *rx* is given, its ``search`` method is called on the complete path to " "each file considered for compilation, and if it returns a true value, the " @@ -234,14 +248,14 @@ msgid "" "expression, given as a :ref:`re.Pattern ` object." msgstr "" -#: library/compileall.rst:254 +#: library/compileall.rst:261 msgid "" "If *quiet* is ``False`` or ``0`` (the default), the filenames and other " "information are printed to standard out. Set to ``1``, only errors are " "printed. Set to ``2``, all output is suppressed." msgstr "" -#: library/compileall.rst:258 +#: library/compileall.rst:265 msgid "" "If *legacy* is true, byte-code files are written to their legacy locations " "and names, which may overwrite byte-code files created by another version of " @@ -250,7 +264,7 @@ msgid "" "coexist." msgstr "" -#: library/compileall.rst:264 +#: library/compileall.rst:271 msgid "" "*optimize* specifies the optimization level for the compiler. It is passed " "to the built-in :func:`compile` function. Accepts also a sequence of " @@ -258,7 +272,7 @@ msgid "" "file in one call." msgstr "" -#: library/compileall.rst:191 +#: library/compileall.rst:198 msgid "" "The argument *workers* specifies how many workers are used to compile files " "in parallel. The default is to not use multiple workers. If the platform " @@ -268,76 +282,76 @@ msgid "" "`ValueError` will be raised." msgstr "" -#: library/compileall.rst:268 +#: library/compileall.rst:275 msgid "" "*invalidation_mode* should be a member of the :class:`py_compile." "PycInvalidationMode` enum and controls how the generated pycs are " "invalidated at runtime." msgstr "" -#: library/compileall.rst:272 +#: library/compileall.rst:279 msgid "" "The *stripdir*, *prependdir* and *limit_sl_dest* arguments correspond to the " "``-s``, ``-p`` and ``-e`` options described above. They may be specified as " "``str`` or :py:class:`os.PathLike`." msgstr "" -#: library/compileall.rst:276 +#: library/compileall.rst:283 msgid "" "If *hardlink_dupes* is true and two ``.pyc`` files with different " "optimization level have the same content, use hard links to consolidate " "duplicate files." msgstr "" -#: library/compileall.rst:307 +#: library/compileall.rst:314 msgid "Added the *legacy* and *optimize* parameter." msgstr "" -#: library/compileall.rst:212 +#: library/compileall.rst:219 msgid "Added the *workers* parameter." msgstr "" -#: library/compileall.rst:281 library/compileall.rst:310 +#: library/compileall.rst:288 library/compileall.rst:317 msgid "*quiet* parameter was changed to a multilevel value." msgstr "" -#: library/compileall.rst:284 library/compileall.rst:313 +#: library/compileall.rst:291 library/compileall.rst:320 msgid "" "The *legacy* parameter only writes out ``.pyc`` files, not ``.pyo`` files no " "matter what the value of *optimize* is." msgstr "" -#: library/compileall.rst:222 +#: library/compileall.rst:229 msgid "Accepts a :term:`path-like object`." msgstr "" -#: library/compileall.rst:288 library/compileall.rst:317 +#: library/compileall.rst:295 library/compileall.rst:324 msgid "The *invalidation_mode* parameter was added." msgstr "" -#: library/compileall.rst:291 library/compileall.rst:320 +#: library/compileall.rst:298 library/compileall.rst:327 msgid "" "The *invalidation_mode* parameter's default value is updated to ``None``." msgstr "" -#: library/compileall.rst:231 +#: library/compileall.rst:238 msgid "Setting *workers* to 0 now chooses the optimal number of cores." msgstr "" -#: library/compileall.rst:234 +#: library/compileall.rst:241 msgid "" "Added *stripdir*, *prependdir*, *limit_sl_dest* and *hardlink_dupes* " "arguments. Default value of *maxlevels* was changed from ``10`` to ``sys." "getrecursionlimit()``" msgstr "" -#: library/compileall.rst:240 +#: library/compileall.rst:247 msgid "" "Compile the file with path *fullname*. Return a true value if the file " "compiled successfully, and a false value otherwise." msgstr "" -#: library/compileall.rst:243 +#: library/compileall.rst:250 msgid "" "If *ddir* is given, it is prepended to the path to the file being compiled " "for use in compilation time tracebacks, and is also compiled in to the byte-" @@ -346,7 +360,7 @@ msgid "" "executed." msgstr "" -#: library/compileall.rst:249 +#: library/compileall.rst:256 msgid "" "If *rx* is given, its ``search`` method is passed the full path name to the " "file being compiled, and if it returns a true value, the file is not " @@ -355,20 +369,20 @@ msgid "" "object." msgstr "" -#: library/compileall.rst:294 +#: library/compileall.rst:301 msgid "" "Added *stripdir*, *prependdir*, *limit_sl_dest* and *hardlink_dupes* " "arguments." msgstr "" -#: library/compileall.rst:299 +#: library/compileall.rst:306 msgid "" "Byte-compile all the :file:`.py` files found along ``sys.path``. Return a " "true value if all the files compiled successfully, and a false value " "otherwise." msgstr "" -#: library/compileall.rst:302 +#: library/compileall.rst:309 msgid "" "If *skip_curdir* is true (the default), the current directory is not " "included in the search. All other parameters are passed to the :func:" @@ -376,13 +390,13 @@ msgid "" "``maxlevels`` defaults to ``0``." msgstr "" -#: library/compileall.rst:323 +#: library/compileall.rst:330 msgid "" "To force a recompile of all the :file:`.py` files in the :file:`Lib/` " "subdirectory and all its subdirectories::" msgstr "" -#: library/compileall.rst:326 +#: library/compileall.rst:333 msgid "" "import compileall\n" "\n" @@ -397,10 +411,10 @@ msgid "" "compileall.compile_dir(pathlib.Path('Lib/'), force=True)" msgstr "" -#: library/compileall.rst:340 +#: library/compileall.rst:347 msgid "Module :mod:`py_compile`" msgstr "" -#: library/compileall.rst:341 +#: library/compileall.rst:348 msgid "Byte-compile a single source file." msgstr "" diff --git a/library/concurrency.po b/library/concurrency.po index e3bb46ef..9b522b6b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ed46b940..7e921594 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -153,9 +153,10 @@ msgstr "" #: library/concurrent.futures.rst:95 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:100 @@ -264,7 +265,7 @@ msgid "" "easier debugging." msgstr "" -#: library/concurrent.futures.rst:179 library/concurrent.futures.rst:287 +#: library/concurrent.futures.rst:179 library/concurrent.futures.rst:292 msgid "Added the *initializer* and *initargs* arguments." msgstr "" @@ -350,7 +351,15 @@ msgid "" "submitted to a :class:`ProcessPoolExecutor` will result in deadlock." msgstr "" -#: library/concurrent.futures.rst:248 +#: library/concurrent.futures.rst:246 +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:253 msgid "" "An :class:`Executor` subclass that executes calls asynchronously using a " "pool of at most *max_workers* processes. If *max_workers* is ``None`` or " @@ -365,7 +374,7 @@ msgid "" "`multiprocessing-start-methods`." msgstr "" -#: library/concurrent.futures.rst:262 +#: library/concurrent.futures.rst:267 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 " @@ -374,7 +383,7 @@ msgid "" "well as any attempt to submit more jobs to the pool." msgstr "" -#: library/concurrent.futures.rst:268 +#: library/concurrent.futures.rst:273 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 " @@ -385,7 +394,7 @@ msgid "" "with the \"fork\" start method." msgstr "" -#: library/concurrent.futures.rst:276 +#: library/concurrent.futures.rst:281 msgid "" "When one of the worker processes terminates abruptly, a :exc:`~concurrent." "futures.process.BrokenProcessPool` error is now raised. Previously, " @@ -393,13 +402,13 @@ msgid "" "often freeze or deadlock." msgstr "" -#: library/concurrent.futures.rst:283 +#: library/concurrent.futures.rst:288 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:290 +#: library/concurrent.futures.rst:295 msgid "" "The default :mod:`multiprocessing` start method (see :ref:`multiprocessing-" "start-methods`) will change away from *fork* in Python 3.14. Code that " @@ -408,13 +417,13 @@ msgid "" "get_context(\"fork\")`` parameter." msgstr "" -#: library/concurrent.futures.rst:297 +#: library/concurrent.futures.rst:302 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:301 +#: library/concurrent.futures.rst:306 msgid "" "On POSIX systems, if your application has multiple threads and the :mod:" "`multiprocessing` context uses the ``\"fork\"`` start method: The :func:`os." @@ -423,17 +432,17 @@ msgid "" "start method. See the :func:`os.fork` documentation for further explanation." msgstr "" -#: library/concurrent.futures.rst:309 +#: library/concurrent.futures.rst:314 msgid "" "*max_workers* uses :func:`os.process_cpu_count` by default, instead of :func:" "`os.cpu_count`." msgstr "" -#: library/concurrent.futures.rst:316 +#: library/concurrent.futures.rst:321 msgid "ProcessPoolExecutor Example" msgstr "" -#: library/concurrent.futures.rst:319 +#: library/concurrent.futures.rst:324 msgid "" "import concurrent.futures\n" "import math\n" @@ -469,24 +478,24 @@ msgid "" " main()" msgstr "" -#: library/concurrent.futures.rst:354 +#: library/concurrent.futures.rst:359 msgid "Future Objects" msgstr "" -#: library/concurrent.futures.rst:356 +#: library/concurrent.futures.rst:361 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:361 +#: library/concurrent.futures.rst:366 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:367 +#: library/concurrent.futures.rst:372 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 " @@ -494,22 +503,22 @@ msgid "" "``True``." msgstr "" -#: library/concurrent.futures.rst:374 +#: library/concurrent.futures.rst:379 msgid "Return ``True`` if the call was successfully cancelled." msgstr "" -#: library/concurrent.futures.rst:378 +#: library/concurrent.futures.rst:383 msgid "" "Return ``True`` if the call is currently being executed and cannot be " "cancelled." msgstr "" -#: library/concurrent.futures.rst:383 +#: library/concurrent.futures.rst:388 msgid "" "Return ``True`` if the call was successfully cancelled or finished running." msgstr "" -#: library/concurrent.futures.rst:388 +#: library/concurrent.futures.rst:393 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 " @@ -518,18 +527,18 @@ msgid "" "no limit to the wait time." msgstr "" -#: library/concurrent.futures.rst:395 library/concurrent.futures.rst:409 +#: library/concurrent.futures.rst:400 library/concurrent.futures.rst:414 msgid "" "If the future is cancelled before completing then :exc:`.CancelledError` " "will be raised." msgstr "" -#: library/concurrent.futures.rst:398 +#: library/concurrent.futures.rst:403 msgid "" "If the call raised an exception, this method will raise the same exception." msgstr "" -#: library/concurrent.futures.rst:402 +#: library/concurrent.futures.rst:407 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 " @@ -538,18 +547,18 @@ msgid "" "``None``, there is no limit to the wait time." msgstr "" -#: library/concurrent.futures.rst:412 +#: library/concurrent.futures.rst:417 msgid "If the call completed without raising, ``None`` is returned." msgstr "" -#: library/concurrent.futures.rst:416 +#: library/concurrent.futures.rst:421 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:420 +#: library/concurrent.futures.rst:425 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 " @@ -558,26 +567,26 @@ msgid "" "behavior is undefined." msgstr "" -#: library/concurrent.futures.rst:426 +#: library/concurrent.futures.rst:431 msgid "" "If the future has already completed or been cancelled, *fn* will be called " "immediately." msgstr "" -#: library/concurrent.futures.rst:429 +#: library/concurrent.futures.rst:434 msgid "" "The following :class:`Future` methods are meant for use in unit tests and :" "class:`Executor` implementations." msgstr "" -#: library/concurrent.futures.rst:434 +#: library/concurrent.futures.rst:439 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:438 +#: library/concurrent.futures.rst:443 msgid "" "If the method returns ``False`` then the :class:`Future` was cancelled, i." "e. :meth:`Future.cancel` was called and returned ``True``. Any threads " @@ -585,47 +594,47 @@ msgid "" "or :func:`wait`) will be woken up." msgstr "" -#: library/concurrent.futures.rst:443 +#: library/concurrent.futures.rst:448 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:447 +#: library/concurrent.futures.rst:452 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:453 +#: library/concurrent.futures.rst:458 msgid "" "Sets the result of the work associated with the :class:`Future` to *result*." msgstr "" -#: library/concurrent.futures.rst:456 library/concurrent.futures.rst:469 +#: library/concurrent.futures.rst:461 library/concurrent.futures.rst:474 msgid "" "This method should only be used by :class:`Executor` implementations and " "unit tests." msgstr "" -#: library/concurrent.futures.rst:459 library/concurrent.futures.rst:472 +#: library/concurrent.futures.rst:464 library/concurrent.futures.rst:477 msgid "" "This method raises :exc:`concurrent.futures.InvalidStateError` if the :class:" "`Future` is already done." msgstr "" -#: library/concurrent.futures.rst:466 +#: library/concurrent.futures.rst:471 msgid "" "Sets the result of the work associated with the :class:`Future` to the :" "class:`Exception` *exception*." msgstr "" -#: library/concurrent.futures.rst:478 +#: library/concurrent.futures.rst:483 msgid "Module Functions" msgstr "" -#: library/concurrent.futures.rst:482 +#: library/concurrent.futures.rst:487 msgid "" "Wait for the :class:`Future` instances (possibly created by different :class:" "`Executor` instances) given by *fs* to complete. Duplicate futures given to " @@ -636,43 +645,43 @@ msgid "" "running futures)." msgstr "" -#: library/concurrent.futures.rst:490 +#: library/concurrent.futures.rst:495 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:494 +#: library/concurrent.futures.rst:499 msgid "" "*return_when* indicates when this function should return. It must be one of " "the following constants:" msgstr "" -#: library/concurrent.futures.rst:500 +#: library/concurrent.futures.rst:505 msgid "Constant" msgstr "" -#: library/concurrent.futures.rst:501 +#: library/concurrent.futures.rst:506 msgid "Description" msgstr "" -#: library/concurrent.futures.rst:504 +#: library/concurrent.futures.rst:509 msgid "The function will return when any future finishes or is cancelled." msgstr "" -#: library/concurrent.futures.rst:507 +#: library/concurrent.futures.rst:512 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:512 +#: library/concurrent.futures.rst:517 msgid "The function will return when all futures finish or are cancelled." msgstr "" -#: library/concurrent.futures.rst:516 +#: library/concurrent.futures.rst:521 msgid "" "Returns an iterator over the :class:`Future` instances (possibly created by " "different :class:`Executor` instances) given by *fs* that yields futures as " @@ -685,55 +694,55 @@ msgid "" "*timeout* is not specified or ``None``, there is no limit to the wait time." msgstr "" -#: library/concurrent.futures.rst:529 +#: library/concurrent.futures.rst:534 msgid ":pep:`3148` -- futures - execute computations asynchronously" msgstr "" -#: library/concurrent.futures.rst:530 +#: library/concurrent.futures.rst:535 msgid "" "The proposal which described this feature for inclusion in the Python " "standard library." msgstr "" -#: library/concurrent.futures.rst:535 +#: library/concurrent.futures.rst:540 msgid "Exception classes" msgstr "" -#: library/concurrent.futures.rst:541 +#: library/concurrent.futures.rst:546 msgid "Raised when a future is cancelled." msgstr "" -#: library/concurrent.futures.rst:545 +#: library/concurrent.futures.rst:550 msgid "" "A deprecated alias of :exc:`TimeoutError`, raised when a future operation " "exceeds the given timeout." msgstr "" -#: library/concurrent.futures.rst:550 +#: library/concurrent.futures.rst:555 msgid "This class was made an alias of :exc:`TimeoutError`." msgstr "" -#: library/concurrent.futures.rst:555 +#: library/concurrent.futures.rst:560 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:563 +#: library/concurrent.futures.rst:568 msgid "" "Raised when an operation is performed on a future that is not allowed in the " "current state." msgstr "" -#: library/concurrent.futures.rst:572 +#: library/concurrent.futures.rst:577 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:583 +#: library/concurrent.futures.rst:588 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.po b/library/concurrent.po index 3050434c..43aadafb 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a812ae0d..81be92d7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 2798aed5..840c3b88 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -88,30 +88,30 @@ msgstr "" #: library/constants.rst:65 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:72 +#: library/constants.rst:73 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:78 +#: library/constants.rst:79 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:86 +#: library/constants.rst:87 msgid "Constants added by the :mod:`site` module" msgstr "" -#: library/constants.rst:88 +#: library/constants.rst:89 msgid "" "The :mod:`site` module (which is imported automatically during startup, " "except if the :option:`-S` command-line option is given) adds several " @@ -119,27 +119,28 @@ msgid "" "interpreter shell and should not be used in programs." msgstr "" -#: library/constants.rst:96 +#: library/constants.rst:97 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:103 +#: library/constants.rst:105 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:110 +#: library/constants.rst:113 msgid "" "Objects that when printed or called, print the text of copyright or credits, " "respectively." msgstr "" -#: library/constants.rst:115 +#: library/constants.rst:118 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 8fc25773..08c14ffb 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 5b752848..e5008e55 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1fe89fcc..3d2f01d2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -168,11 +168,11 @@ msgid "" "with values from *changes*." msgstr "" -#: library/copy.rst:128 +#: library/copy.rst:130 msgid "Module :mod:`pickle`" msgstr "" -#: library/copy.rst:129 +#: library/copy.rst:131 msgid "" "Discussion of the special methods used to support object state retrieval and " "restoration." diff --git a/library/copyreg.po b/library/copyreg.po index 53218618..4b56bbb9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a235ce37..91cc7f83 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 6c2501e9..1eb44843 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1565178f..8bb7c2b0 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -90,12 +90,12 @@ msgstr "" #: library/csv.rst:72 msgid "" "Each row read from the csv file is returned as a list of strings. No " -"automatic data type conversion is performed unless the ``QUOTE_NONNUMERIC`` " -"format option is specified (in which case unquoted fields are transformed " -"into floats)." +"automatic data type conversion is performed unless the :data:" +"`QUOTE_NONNUMERIC` format option is specified (in which case unquoted fields " +"are transformed into floats)." msgstr "" -#: library/csv.rst:106 library/csv.rst:219 +#: library/csv.rst:106 library/csv.rst:220 msgid "A short usage example::" msgstr "" @@ -166,24 +166,24 @@ 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." msgstr "" -#: library/csv.rst:148 +#: library/csv.rst:149 msgid "The :mod:`csv` module defines the following classes:" msgstr "" -#: 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 " "optional *fieldnames* parameter." msgstr "" -#: 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 " @@ -193,7 +193,7 @@ msgid "" "preserves their original ordering." 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 " @@ -202,27 +202,27 @@ msgid "" "``None``)." msgstr "" -#: library/csv.rst:170 +#: library/csv.rst:171 msgid "" "All other optional or keyword arguments are passed to the underlying :class:" "`reader` instance." msgstr "" -#: 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`." msgstr "" -#: library/csv.rst:175 +#: library/csv.rst:176 msgid "Returned rows are now of type :class:`OrderedDict`." msgstr "" -#: library/csv.rst:178 +#: library/csv.rst:179 msgid "Returned rows are now of type :class:`dict`." msgstr "" -#: library/csv.rst:183 +#: library/csv.rst:184 msgid "" ">>> import csv\n" ">>> with open('names.csv', newline='') as csvfile:\n" @@ -237,7 +237,7 @@ msgid "" "{'first_name': 'John', 'last_name': 'Cleese'}" msgstr "" -#: 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 " @@ -253,13 +253,13 @@ msgid "" "to the underlying :class:`writer` instance." msgstr "" -#: 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." msgstr "" -#: library/csv.rst:221 +#: library/csv.rst:222 msgid "" "import csv\n" "\n" @@ -273,7 +273,7 @@ msgid "" " writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})" msgstr "" -#: 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 " @@ -282,14 +282,14 @@ msgid "" "`reader` and :class:`writer` instances behave." msgstr "" -#: 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` " "classes through their initializer (``__init__``) functions like this::" msgstr "" -#: library/csv.rst:245 +#: library/csv.rst:246 msgid "" "import csv\n" "\n" @@ -297,42 +297,42 @@ msgid "" " writer = csv.writer(csvfile, dialect='unix')" msgstr "" -#: 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'``." msgstr "" -#: 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 " "``'excel-tab'``." msgstr "" -#: 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 " "quoting all fields. It is registered with the dialect name ``'unix'``." msgstr "" -#: library/csv.rst:274 +#: library/csv.rst:275 msgid "The :class:`Sniffer` class is used to deduce the format of a CSV file." msgstr "" -#: library/csv.rst:276 +#: library/csv.rst:277 msgid "The :class:`Sniffer` class provides two methods:" msgstr "" -#: 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 " "is interpreted as a string containing possible valid delimiter characters." msgstr "" -#: 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 " @@ -340,33 +340,33 @@ msgid "" "sample contains a header:" msgstr "" -#: library/csv.rst:293 +#: library/csv.rst:294 msgid "the second through n-th rows contain numeric values" msgstr "" -#: 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." 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 "" -#: library/csv.rst:302 +#: library/csv.rst:303 msgid "" "This method is a rough heuristic and may produce both false positives and " "negatives." msgstr "" -#: library/csv.rst:305 +#: library/csv.rst:306 msgid "An example for :class:`Sniffer` use::" msgstr "" -#: 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" @@ -375,84 +375,94 @@ msgid "" " # ... process CSV file contents here ..." msgstr "" -#: library/csv.rst:316 +#: library/csv.rst:317 msgid "The :mod:`csv` module defines the following constants:" msgstr "" -#: library/csv.rst:320 +#: library/csv.rst:321 msgid "Instructs :class:`writer` objects to quote all fields." msgstr "" -#: 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 "" -#: library/csv.rst:332 +#: library/csv.rst:333 msgid "Instructs :class:`writer` objects to quote all non-numeric fields." msgstr "" -#: library/csv.rst:334 +#: library/csv.rst:335 +msgid "" +"Instructs :class:`reader` objects to convert all non-quoted fields to type :" +"class:`float`." +msgstr "" + +#: library/csv.rst:338 msgid "" -"Instructs :class:`reader` objects to convert all non-quoted fields to type " -"*float*." +"Some numeric types, such as :class:`bool`, :class:`~fractions.Fraction`, or :" +"class:`~enum.IntEnum`, have a string representation that cannot be converted " +"to :class:`float`. They cannot be read in the :data:`QUOTE_NONNUMERIC` and :" +"data:`QUOTE_STRINGS` modes." msgstr "" -#: library/csv.rst:339 +#: 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 "" -#: library/csv.rst:344 +#: library/csv.rst:354 msgid "" "Instructs :class:`reader` objects to perform no special processing of quote " "characters." msgstr "" -#: library/csv.rst:348 +#: 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 " "value is ``None`` an empty (unquoted) string is written." msgstr "" -#: library/csv.rst:352 +#: 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`." msgstr "" -#: library/csv.rst:359 +#: 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 " "field value is ``None`` an empty (unquoted) string is written." msgstr "" -#: library/csv.rst:363 +#: 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`." msgstr "" -#: library/csv.rst:368 +#: library/csv.rst:378 msgid "The :mod:`csv` module defines the following exception:" msgstr "" -#: library/csv.rst:373 +#: library/csv.rst:383 msgid "Raised by any of the functions when an error is detected." msgstr "" -#: library/csv.rst:378 +#: library/csv.rst:388 msgid "Dialects and Formatting Parameters" msgstr "" -#: library/csv.rst:380 +#: 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 " @@ -465,16 +475,16 @@ msgid "" "attributes defined below for the :class:`Dialect` class." msgstr "" -#: library/csv.rst:390 +#: library/csv.rst:400 msgid "Dialects support the following attributes:" msgstr "" -#: library/csv.rst:395 +#: library/csv.rst:405 msgid "" "A one-character string used to separate fields. It defaults to ``','``." msgstr "" -#: library/csv.rst:400 +#: 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 :" @@ -482,79 +492,101 @@ msgid "" "defaults to :const:`True`." msgstr "" -#: library/csv.rst:405 +#: 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." msgstr "" -#: library/csv.rst:411 +#: library/csv.rst:421 +msgid "" +"A one-character string used by the writer to escape characters that require " +"escaping:" +msgstr "" + +#: library/csv.rst:424 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." +"the *delimiter*, the *quotechar*, ``'\\r'``, ``'\\n'`` and any of the " +"characters in *lineterminator* are escaped if *quoting* is set to :const:" +"`QUOTE_NONE`;" +msgstr "" + +#: library/csv.rst:427 +msgid "the *quotechar* is escaped if *doublequote* is :const:`False`;" msgstr "" -#: library/csv.rst:416 +#: library/csv.rst:428 +msgid "the *escapechar* itself." +msgstr "" + +#: 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 "" + +#: library/csv.rst:433 msgid "An empty *escapechar* is not allowed." msgstr "" -#: library/csv.rst:421 +#: library/csv.rst:438 msgid "" "The string used to terminate lines produced by the :class:`writer`. It " "defaults to ``'\\r\\n'``." msgstr "" -#: library/csv.rst:426 +#: 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 " "the future." msgstr "" -#: library/csv.rst:433 +#: 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 "" -#: library/csv.rst:437 +#: library/csv.rst:457 msgid "An empty *quotechar* is not allowed." msgstr "" -#: library/csv.rst:442 +#: 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 "" -#: library/csv.rst:449 +#: 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 "" -#: library/csv.rst:455 +#: library/csv.rst:477 msgid "" "When ``True``, raise exception :exc:`Error` on bad CSV input. The default is " "``False``." msgstr "" -#: library/csv.rst:461 +#: library/csv.rst:483 msgid "Reader Objects" msgstr "" -#: library/csv.rst:463 +#: library/csv.rst:485 msgid "" "Reader objects (:class:`DictReader` instances and objects returned by the :" "func:`reader` function) have the following public methods:" msgstr "" -#: library/csv.rst:468 +#: 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` " @@ -562,35 +594,35 @@ msgid "" "should call this as ``next(reader)``." msgstr "" -#: library/csv.rst:474 +#: library/csv.rst:496 msgid "Reader objects have the following public attributes:" msgstr "" -#: library/csv.rst:478 +#: library/csv.rst:500 msgid "A read-only description of the dialect in use by the parser." msgstr "" -#: library/csv.rst:483 +#: 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." msgstr "" -#: library/csv.rst:487 +#: library/csv.rst:509 msgid "DictReader objects have the following public attribute:" msgstr "" -#: library/csv.rst:491 +#: 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." msgstr "" -#: library/csv.rst:498 +#: library/csv.rst:520 msgid "Writer Objects" msgstr "" -#: library/csv.rst:500 +#: 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* " @@ -602,58 +634,58 @@ msgid "" "complex numbers at all)." msgstr "" -#: library/csv.rst:511 +#: 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 " "*write* method of the underlying file object." msgstr "" -#: library/csv.rst:515 +#: library/csv.rst:537 msgid "Added support of arbitrary iterables." msgstr "" -#: library/csv.rst:520 +#: 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 " "dialect." msgstr "" -#: library/csv.rst:524 +#: library/csv.rst:546 msgid "Writer objects have the following public attribute:" msgstr "" -#: library/csv.rst:529 +#: library/csv.rst:551 msgid "A read-only description of the dialect in use by the writer." msgstr "" -#: library/csv.rst:532 +#: library/csv.rst:554 msgid "DictWriter objects have the following public method:" msgstr "" -#: library/csv.rst:537 +#: 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 " "return value of the :meth:`csvwriter.writerow` call used internally." msgstr "" -#: library/csv.rst:542 +#: library/csv.rst:564 msgid "" ":meth:`writeheader` now also returns the value returned by the :meth:" "`csvwriter.writerow` method it uses internally." msgstr "" -#: library/csv.rst:550 +#: library/csv.rst:572 msgid "Examples" msgstr "" -#: library/csv.rst:552 +#: library/csv.rst:574 msgid "The simplest example of reading a CSV file::" msgstr "" -#: library/csv.rst:554 +#: library/csv.rst:576 msgid "" "import csv\n" "with open('some.csv', newline='') as f:\n" @@ -662,11 +694,11 @@ msgid "" " print(row)" msgstr "" -#: library/csv.rst:560 +#: library/csv.rst:582 msgid "Reading a file with an alternate format::" msgstr "" -#: library/csv.rst:562 +#: library/csv.rst:584 msgid "" "import csv\n" "with open('passwd', newline='') as f:\n" @@ -675,11 +707,11 @@ msgid "" " print(row)" msgstr "" -#: library/csv.rst:568 +#: library/csv.rst:590 msgid "The corresponding simplest possible writing example is::" msgstr "" -#: library/csv.rst:570 +#: library/csv.rst:592 msgid "" "import csv\n" "with open('some.csv', 'w', newline='') as f:\n" @@ -687,7 +719,7 @@ msgid "" " writer.writerows(someiterable)" msgstr "" -#: library/csv.rst:575 +#: 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:" @@ -695,7 +727,7 @@ msgid "" "``encoding`` argument of open::" msgstr "" -#: library/csv.rst:580 +#: library/csv.rst:602 msgid "" "import csv\n" "with open('some.csv', newline='', encoding='utf-8') as f:\n" @@ -704,17 +736,17 @@ msgid "" " print(row)" msgstr "" -#: library/csv.rst:586 +#: 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." msgstr "" -#: library/csv.rst:589 +#: library/csv.rst:611 msgid "Registering a new dialect::" msgstr "" -#: library/csv.rst:591 +#: library/csv.rst:613 msgid "" "import csv\n" "csv.register_dialect('unixpwd', delimiter=':', quoting=csv.QUOTE_NONE)\n" @@ -722,13 +754,13 @@ msgid "" " reader = csv.reader(f, 'unixpwd')" msgstr "" -#: library/csv.rst:596 +#: library/csv.rst:618 msgid "" "A slightly more advanced use of the reader --- catching and reporting " "errors::" msgstr "" -#: library/csv.rst:598 +#: library/csv.rst:620 msgid "" "import csv, sys\n" "filename = 'some.csv'\n" @@ -738,32 +770,32 @@ msgid "" " for row in reader:\n" " print(row)\n" " except csv.Error as e:\n" -" sys.exit('file {}, line {}: {}'.format(filename, reader.line_num, e))" +" sys.exit(f'file {filename}, line {reader.line_num}: {e}')" msgstr "" -#: library/csv.rst:608 +#: library/csv.rst:630 msgid "" "And while the module doesn't directly support parsing strings, it can easily " "be done::" msgstr "" -#: library/csv.rst:611 +#: library/csv.rst:633 msgid "" "import csv\n" "for row in csv.reader(['one,two,three']):\n" " print(row)" msgstr "" -#: library/csv.rst:617 +#: library/csv.rst:639 msgid "Footnotes" msgstr "" -#: library/csv.rst:618 +#: 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 "" diff --git a/library/ctypes.po b/library/ctypes.po index f991b09f..5064bce3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 "" "learn more about :mod:`ctypes` data types." msgstr "" -#: library/ctypes.rst:2242 +#: library/ctypes.rst:2278 msgid "Fundamental data types" msgstr "" @@ -372,8 +372,9 @@ 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:239 library/ctypes.rst:243 library/ctypes.rst:247 +#: library/ctypes.rst:251 library/ctypes.rst:255 library/ctypes.rst:259 +#: library/ctypes.rst:264 library/ctypes.rst:267 msgid "int" msgstr "" @@ -410,144 +411,208 @@ msgid ":c:expr:`int`" msgstr "" #: library/ctypes.rst:235 -msgid ":class:`c_uint`" +msgid ":class:`c_int8`" msgstr "" #: library/ctypes.rst:235 -msgid ":c:expr:`unsigned int`" +msgid ":c:type:`int8_t`" msgstr "" #: library/ctypes.rst:237 -msgid ":class:`c_long`" +msgid ":class:`c_int16`" msgstr "" #: library/ctypes.rst:237 -msgid ":c:expr:`long`" +msgid ":c:type:`int16_t`" msgstr "" #: library/ctypes.rst:239 -msgid ":class:`c_ulong`" +msgid ":class:`c_int32`" msgstr "" #: library/ctypes.rst:239 -msgid ":c:expr:`unsigned long`" +msgid ":c:type:`int32_t`" msgstr "" #: library/ctypes.rst:241 -msgid ":class:`c_longlong`" +msgid ":class:`c_int64`" msgstr "" #: library/ctypes.rst:241 -msgid ":c:expr:`__int64` or :c:expr:`long long`" +msgid ":c:type:`int64_t`" msgstr "" #: library/ctypes.rst:243 -msgid ":class:`c_ulonglong`" +msgid ":class:`c_uint`" msgstr "" #: library/ctypes.rst:243 +msgid ":c:expr:`unsigned int`" +msgstr "" + +#: library/ctypes.rst:245 +msgid ":class:`c_uint8`" +msgstr "" + +#: library/ctypes.rst:245 +msgid ":c:type:`uint8_t`" +msgstr "" + +#: library/ctypes.rst:247 +msgid ":class:`c_uint16`" +msgstr "" + +#: library/ctypes.rst:247 +msgid ":c:type:`uint16_t`" +msgstr "" + +#: library/ctypes.rst:249 +msgid ":class:`c_uint32`" +msgstr "" + +#: library/ctypes.rst:249 +msgid ":c:type:`uint32_t`" +msgstr "" + +#: library/ctypes.rst:251 +msgid ":class:`c_uint64`" +msgstr "" + +#: library/ctypes.rst:251 +msgid ":c:type:`uint64_t`" +msgstr "" + +#: library/ctypes.rst:253 +msgid ":class:`c_long`" +msgstr "" + +#: library/ctypes.rst:253 +msgid ":c:expr:`long`" +msgstr "" + +#: library/ctypes.rst:255 +msgid ":class:`c_ulong`" +msgstr "" + +#: library/ctypes.rst:255 +msgid ":c:expr:`unsigned long`" +msgstr "" + +#: library/ctypes.rst:257 +msgid ":class:`c_longlong`" +msgstr "" + +#: library/ctypes.rst:257 +msgid ":c:expr:`__int64` or :c:expr:`long long`" +msgstr "" + +#: library/ctypes.rst:259 +msgid ":class:`c_ulonglong`" +msgstr "" + +#: library/ctypes.rst:259 msgid ":c:expr:`unsigned __int64` or :c:expr:`unsigned long long`" msgstr "" -#: library/ctypes.rst:246 +#: library/ctypes.rst:262 msgid ":class:`c_size_t`" msgstr "" -#: library/ctypes.rst:246 +#: library/ctypes.rst:262 msgid ":c:type:`size_t`" msgstr "" -#: library/ctypes.rst:248 +#: library/ctypes.rst:264 msgid ":class:`c_ssize_t`" msgstr "" -#: library/ctypes.rst:248 +#: library/ctypes.rst:264 msgid ":c:type:`ssize_t` or :c:expr:`Py_ssize_t`" msgstr "" -#: library/ctypes.rst:251 +#: library/ctypes.rst:267 msgid ":class:`c_time_t`" msgstr "" -#: library/ctypes.rst:251 +#: library/ctypes.rst:267 msgid ":c:type:`time_t`" msgstr "" -#: library/ctypes.rst:253 +#: library/ctypes.rst:269 msgid ":class:`c_float`" msgstr "" -#: library/ctypes.rst:253 +#: library/ctypes.rst:269 msgid ":c:expr:`float`" msgstr "" -#: library/ctypes.rst:255 library/ctypes.rst:257 +#: library/ctypes.rst:271 library/ctypes.rst:273 msgid "float" msgstr "" -#: library/ctypes.rst:255 +#: library/ctypes.rst:271 msgid ":class:`c_double`" msgstr "" -#: library/ctypes.rst:255 +#: library/ctypes.rst:271 msgid ":c:expr:`double`" msgstr "" -#: library/ctypes.rst:257 +#: library/ctypes.rst:273 msgid ":class:`c_longdouble`" msgstr "" -#: library/ctypes.rst:257 +#: library/ctypes.rst:273 msgid ":c:expr:`long double`" msgstr "" -#: library/ctypes.rst:259 +#: library/ctypes.rst:275 msgid ":class:`c_char_p`" msgstr "" -#: library/ctypes.rst:259 +#: library/ctypes.rst:275 msgid ":c:expr:`char *` (NUL terminated)" msgstr "" -#: library/ctypes.rst:259 +#: library/ctypes.rst:275 msgid "bytes object or ``None``" msgstr "" -#: library/ctypes.rst:261 +#: library/ctypes.rst:277 msgid ":class:`c_wchar_p`" msgstr "" -#: library/ctypes.rst:261 +#: library/ctypes.rst:277 msgid ":c:expr:`wchar_t *` (NUL terminated)" msgstr "" -#: library/ctypes.rst:261 +#: library/ctypes.rst:277 msgid "string or ``None``" msgstr "" -#: library/ctypes.rst:263 +#: library/ctypes.rst:279 msgid ":class:`c_void_p`" msgstr "" -#: library/ctypes.rst:263 +#: library/ctypes.rst:279 msgid ":c:expr:`void *`" msgstr "" -#: library/ctypes.rst:263 +#: library/ctypes.rst:279 msgid "int or ``None``" msgstr "" -#: library/ctypes.rst:267 +#: library/ctypes.rst:283 msgid "The constructor accepts any object with a truth value." msgstr "" -#: library/ctypes.rst:269 +#: library/ctypes.rst:285 msgid "" "All these types can be created by calling them with an optional initializer " "of the correct type and value::" msgstr "" -#: library/ctypes.rst:272 +#: library/ctypes.rst:288 msgid "" ">>> c_int()\n" "c_long(0)\n" @@ -558,12 +623,12 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:280 +#: library/ctypes.rst:296 msgid "" "Since these types are mutable, their value can also be changed afterwards::" msgstr "" -#: library/ctypes.rst:282 +#: library/ctypes.rst:298 msgid "" ">>> i = c_int(42)\n" ">>> print(i)\n" @@ -576,7 +641,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:292 +#: library/ctypes.rst:308 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 " @@ -584,7 +649,7 @@ msgid "" "Python string objects are immutable)::" msgstr "" -#: library/ctypes.rst:297 +#: library/ctypes.rst:313 msgid "" ">>> s = \"Hello, World\"\n" ">>> c_s = c_wchar_p(s)\n" @@ -602,7 +667,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:312 +#: library/ctypes.rst:328 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 :" @@ -612,7 +677,7 @@ msgid "" "``value`` property::" msgstr "" -#: library/ctypes.rst:319 +#: library/ctypes.rst:335 msgid "" ">>> from ctypes import *\n" ">>> p = create_string_buffer(3) # create a 3 byte buffer, " @@ -634,7 +699,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:336 +#: library/ctypes.rst:352 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 " @@ -642,18 +707,18 @@ msgid "" "the :func:`create_unicode_buffer` function." msgstr "" -#: library/ctypes.rst:345 +#: library/ctypes.rst:361 msgid "Calling functions, continued" msgstr "" -#: library/ctypes.rst:347 +#: library/ctypes.rst:363 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:351 +#: library/ctypes.rst:367 msgid "" ">>> printf = libc.printf\n" ">>> printf(b\"Hello, %s\\n\", b\"World!\")\n" @@ -673,14 +738,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:367 +#: library/ctypes.rst:383 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:371 +#: library/ctypes.rst:387 msgid "" ">>> printf(b\"An int %d, a double %f\\n\", 1234, c_double(3.14))\n" "An int 1234, a double 3.140000\n" @@ -688,11 +753,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:379 +#: library/ctypes.rst:395 msgid "Calling variadic functions" msgstr "" -#: library/ctypes.rst:381 +#: library/ctypes.rst:397 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 " @@ -701,27 +766,27 @@ msgid "" "functions." msgstr "" -#: library/ctypes.rst:386 +#: library/ctypes.rst:402 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:389 +#: library/ctypes.rst:405 msgid "libc.printf.argtypes = [ctypes.c_char_p]" msgstr "" -#: library/ctypes.rst:393 +#: library/ctypes.rst:409 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:400 +#: library/ctypes.rst:416 msgid "Calling functions with your own custom data types" msgstr "" -#: library/ctypes.rst:402 +#: library/ctypes.rst:418 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 " @@ -730,7 +795,7 @@ msgid "" "or an object with an :attr:`!_as_parameter_` attribute::" msgstr "" -#: library/ctypes.rst:408 +#: library/ctypes.rst:424 msgid "" ">>> class Bottles:\n" "... def __init__(self, number):\n" @@ -743,24 +808,24 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:418 +#: library/ctypes.rst:434 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:426 +#: library/ctypes.rst:442 msgid "Specifying the required argument types (function prototypes)" msgstr "" -#: library/ctypes.rst:428 +#: library/ctypes.rst:444 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:431 +#: library/ctypes.rst:447 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 " @@ -769,7 +834,7 @@ msgid "" "feature)::" msgstr "" -#: library/ctypes.rst:436 +#: library/ctypes.rst:452 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" @@ -778,14 +843,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:442 +#: library/ctypes.rst:458 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:445 +#: library/ctypes.rst:461 msgid "" ">>> printf(b\"%d %d %d\", 1, 2, 3)\n" "Traceback (most recent call last):\n" @@ -798,7 +863,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:454 +#: library/ctypes.rst:470 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 " @@ -812,55 +877,55 @@ msgid "" "_as_parameter_` attribute." msgstr "" -#: library/ctypes.rst:468 +#: library/ctypes.rst:484 msgid "Return types" msgstr "" -#: library/ctypes.rst:478 +#: library/ctypes.rst:494 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:482 +#: library/ctypes.rst:498 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:486 +#: library/ctypes.rst:502 msgid ">>> libc.time.restype = c_time_t" msgstr "" -#: library/ctypes.rst:488 +#: library/ctypes.rst:504 msgid "The argument types can be specified using :attr:`~_CFuncPtr.argtypes`::" msgstr "" -#: library/ctypes.rst:490 +#: library/ctypes.rst:506 msgid ">>> libc.time.argtypes = (POINTER(c_time_t),)" msgstr "" -#: library/ctypes.rst:492 +#: library/ctypes.rst:508 msgid "" "To call the function with a ``NULL`` pointer as first argument, use " "``None``::" msgstr "" -#: library/ctypes.rst:494 +#: library/ctypes.rst:510 msgid "" ">>> print(libc.time(None))\n" "1150640792" msgstr "" -#: library/ctypes.rst:497 +#: library/ctypes.rst:513 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:500 +#: library/ctypes.rst:516 msgid "" ">>> strchr = libc.strchr\n" ">>> strchr(b\"abcdef\", ord(\"d\"))\n" @@ -873,14 +938,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:510 +#: library/ctypes.rst:526 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:514 +#: library/ctypes.rst:530 msgid "" ">>> strchr.restype = c_char_p\n" ">>> strchr.argtypes = [c_char_p, c_char]\n" @@ -897,7 +962,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:529 +#: library/ctypes.rst:545 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 " @@ -907,7 +972,7 @@ msgid "" "values and automatically raise an exception::" msgstr "" -#: library/ctypes.rst:535 +#: library/ctypes.rst:551 msgid "" ">>> GetModuleHandle = windll.kernel32.GetModuleHandleA\n" ">>> def ValidHandle(value):\n" @@ -927,7 +992,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:552 +#: library/ctypes.rst:568 msgid "" "``WinError`` is a function which will call Windows ``FormatMessage()`` api " "to get the string representation of an error code, and *returns* an " @@ -935,18 +1000,18 @@ msgid "" "used, it calls :func:`GetLastError` to retrieve it." msgstr "" -#: library/ctypes.rst:557 +#: library/ctypes.rst:573 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:565 +#: library/ctypes.rst:581 msgid "Passing pointers (or: passing parameters by reference)" msgstr "" -#: library/ctypes.rst:567 +#: library/ctypes.rst:583 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 " @@ -954,7 +1019,7 @@ msgid "" "reference*." msgstr "" -#: library/ctypes.rst:571 +#: library/ctypes.rst:587 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:" @@ -963,7 +1028,7 @@ msgid "" "you don't need the pointer object in Python itself::" msgstr "" -#: library/ctypes.rst:577 +#: library/ctypes.rst:593 msgid "" ">>> i = c_int()\n" ">>> f = c_float()\n" @@ -978,11 +1043,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:593 +#: library/ctypes.rst:609 msgid "Structures and unions" msgstr "" -#: library/ctypes.rst:595 +#: library/ctypes.rst:611 msgid "" "Structures and unions must derive from the :class:`Structure` and :class:" "`Union` base classes which are defined in the :mod:`ctypes` module. Each " @@ -991,20 +1056,20 @@ msgid "" "*field type*." msgstr "" -#: library/ctypes.rst:600 +#: library/ctypes.rst:616 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:603 +#: library/ctypes.rst:619 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:606 +#: library/ctypes.rst:622 msgid "" ">>> from ctypes import *\n" ">>> class POINT(Structure):\n" @@ -1024,19 +1089,19 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:623 +#: library/ctypes.rst:639 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:626 +#: library/ctypes.rst:642 msgid "" "Here is a RECT structure which contains two POINTs named *upperleft* and " "*lowerright*::" msgstr "" -#: library/ctypes.rst:629 +#: library/ctypes.rst:645 msgid "" ">>> class RECT(Structure):\n" "... _fields_ = [(\"upperleft\", POINT),\n" @@ -1050,25 +1115,25 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:640 +#: library/ctypes.rst:656 msgid "" "Nested structures can also be initialized in the constructor in several " "ways::" msgstr "" -#: library/ctypes.rst:642 +#: library/ctypes.rst:658 msgid "" ">>> r = RECT(POINT(1, 2), POINT(3, 4))\n" ">>> r = RECT((1, 2), (3, 4))" msgstr "" -#: library/ctypes.rst:645 +#: library/ctypes.rst:661 msgid "" "Field :term:`descriptor`\\s can be retrieved from the *class*, they are " "useful for debugging because they can provide useful information::" msgstr "" -#: library/ctypes.rst:648 +#: library/ctypes.rst:664 msgid "" ">>> print(POINT.x)\n" "\n" @@ -1077,7 +1142,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:659 +#: library/ctypes.rst:675 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 " @@ -1085,11 +1150,11 @@ msgid "" "structures with bit-fields should always be passed to functions by pointer." msgstr "" -#: library/ctypes.rst:665 +#: library/ctypes.rst:681 msgid "Structure/union alignment and byte order" msgstr "" -#: library/ctypes.rst:667 +#: library/ctypes.rst:683 msgid "" "By default, Structure and Union fields are aligned in the same way the C " "compiler does it. It is possible to override this behavior by specifying a :" @@ -1102,7 +1167,7 @@ msgid "" "definition." msgstr "" -#: library/ctypes.rst:677 +#: library/ctypes.rst:693 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:" @@ -1111,18 +1176,18 @@ msgid "" "classes cannot contain pointer fields." msgstr "" -#: library/ctypes.rst:687 +#: library/ctypes.rst:703 msgid "Bit fields in structures and unions" msgstr "" -#: library/ctypes.rst:689 +#: library/ctypes.rst:705 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:693 +#: library/ctypes.rst:709 msgid "" ">>> class Int(Structure):\n" "... _fields_ = [(\"first_16\", c_int, 16),\n" @@ -1135,33 +1200,33 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:707 +#: library/ctypes.rst:723 msgid "Arrays" msgstr "" -#: library/ctypes.rst:709 +#: library/ctypes.rst:725 msgid "" "Arrays are sequences, containing a fixed number of instances of the same " "type." msgstr "" -#: library/ctypes.rst:711 +#: library/ctypes.rst:727 msgid "" "The recommended way to create array types is by multiplying a data type with " "a positive integer::" msgstr "" -#: library/ctypes.rst:714 +#: library/ctypes.rst:730 msgid "TenPointsArrayType = POINT * 10" msgstr "" -#: library/ctypes.rst:716 +#: library/ctypes.rst:732 msgid "" "Here is an example of a somewhat artificial data type, a structure " "containing 4 POINTs among other stuff::" msgstr "" -#: library/ctypes.rst:719 +#: library/ctypes.rst:735 msgid "" ">>> from ctypes import *\n" ">>> class POINT(Structure):\n" @@ -1177,28 +1242,28 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:732 +#: library/ctypes.rst:748 msgid "Instances are created in the usual way, by calling the class::" msgstr "" -#: library/ctypes.rst:734 +#: library/ctypes.rst:750 msgid "" "arr = TenPointsArrayType()\n" "for pt in arr:\n" " print(pt.x, pt.y)" msgstr "" -#: library/ctypes.rst:738 +#: library/ctypes.rst:754 msgid "" "The above code print a series of ``0 0`` lines, because the array contents " "is initialized to zeros." msgstr "" -#: library/ctypes.rst:741 +#: library/ctypes.rst:757 msgid "Initializers of the correct type can also be specified::" msgstr "" -#: library/ctypes.rst:743 +#: library/ctypes.rst:759 msgid "" ">>> from ctypes import *\n" ">>> TenIntegers = c_int * 10\n" @@ -1211,17 +1276,17 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:757 +#: library/ctypes.rst:773 msgid "Pointers" msgstr "" -#: library/ctypes.rst:759 +#: library/ctypes.rst:775 msgid "" "Pointer instances are created by calling the :func:`pointer` function on a :" "mod:`ctypes` type::" msgstr "" -#: library/ctypes.rst:762 +#: library/ctypes.rst:778 msgid "" ">>> from ctypes import *\n" ">>> i = c_int(42)\n" @@ -1229,26 +1294,26 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:767 +#: library/ctypes.rst:783 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:770 +#: library/ctypes.rst:786 msgid "" ">>> pi.contents\n" "c_long(42)\n" ">>>" msgstr "" -#: library/ctypes.rst:774 +#: library/ctypes.rst:790 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:777 +#: library/ctypes.rst:793 msgid "" ">>> pi.contents is i\n" "False\n" @@ -1257,14 +1322,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:783 +#: library/ctypes.rst:799 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:786 +#: library/ctypes.rst:802 msgid "" ">>> i = c_int(99)\n" ">>> pi.contents = i\n" @@ -1273,22 +1338,22 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:795 +#: library/ctypes.rst:811 msgid "Pointer instances can also be indexed with integers::" msgstr "" -#: library/ctypes.rst:797 +#: library/ctypes.rst:813 msgid "" ">>> pi[0]\n" "99\n" ">>>" msgstr "" -#: library/ctypes.rst:801 +#: library/ctypes.rst:817 msgid "Assigning to an integer index changes the pointed to value::" msgstr "" -#: library/ctypes.rst:803 +#: library/ctypes.rst:819 msgid "" ">>> print(i)\n" "c_long(99)\n" @@ -1298,7 +1363,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:810 +#: library/ctypes.rst:826 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 " @@ -1307,7 +1372,7 @@ msgid "" "instead of a single item." msgstr "" -#: library/ctypes.rst:816 +#: library/ctypes.rst:832 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 " @@ -1315,7 +1380,7 @@ msgid "" "returns a new type::" msgstr "" -#: library/ctypes.rst:821 +#: library/ctypes.rst:837 msgid "" ">>> PI = POINTER(c_int)\n" ">>> PI\n" @@ -1329,13 +1394,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:832 +#: library/ctypes.rst:848 msgid "" "Calling the pointer type without an argument creates a ``NULL`` pointer. " "``NULL`` pointers have a ``False`` boolean value::" msgstr "" -#: library/ctypes.rst:835 +#: library/ctypes.rst:851 msgid "" ">>> null_ptr = POINTER(c_int)()\n" ">>> print(bool(null_ptr))\n" @@ -1343,13 +1408,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:840 +#: library/ctypes.rst:856 msgid "" ":mod:`ctypes` checks for ``NULL`` when dereferencing pointers (but " "dereferencing invalid non-\\ ``NULL`` pointers would crash Python)::" msgstr "" -#: library/ctypes.rst:843 +#: library/ctypes.rst:859 msgid "" ">>> null_ptr[0]\n" "Traceback (most recent call last):\n" @@ -1364,11 +1429,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:859 +#: library/ctypes.rst:875 msgid "Type conversions" msgstr "" -#: library/ctypes.rst:861 +#: library/ctypes.rst:877 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 " @@ -1379,7 +1444,7 @@ msgid "" "ctypes accepts an array of c_int::" msgstr "" -#: library/ctypes.rst:868 +#: library/ctypes.rst:884 msgid "" ">>> class Bar(Structure):\n" "... _fields_ = [(\"count\", c_int), (\"values\", POINTER(c_int))]\n" @@ -1396,7 +1461,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:882 +#: library/ctypes.rst:898 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 " @@ -1405,17 +1470,17 @@ msgid "" "automatically." msgstr "" -#: library/ctypes.rst:887 +#: library/ctypes.rst:903 msgid "To set a POINTER type field to ``NULL``, you can assign ``None``::" msgstr "" -#: library/ctypes.rst:889 +#: library/ctypes.rst:905 msgid "" ">>> bar.values = None\n" ">>>" msgstr "" -#: library/ctypes.rst:894 +#: library/ctypes.rst:910 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 " @@ -1424,7 +1489,7 @@ msgid "" "``values`` field, but not instances of other types::" msgstr "" -#: library/ctypes.rst:900 +#: library/ctypes.rst:916 msgid "" ">>> bar.values = (c_byte * 4)()\n" "Traceback (most recent call last):\n" @@ -1434,11 +1499,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:906 +#: library/ctypes.rst:922 msgid "For these cases, the :func:`cast` function is handy." msgstr "" -#: library/ctypes.rst:908 +#: library/ctypes.rst:924 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, " @@ -1447,7 +1512,7 @@ msgid "" "references the same memory block as the first argument::" msgstr "" -#: library/ctypes.rst:914 +#: library/ctypes.rst:930 msgid "" ">>> a = (c_byte * 4)()\n" ">>> cast(a, POINTER(c_int))\n" @@ -1455,13 +1520,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:919 +#: library/ctypes.rst:935 msgid "" "So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` " "the structure::" msgstr "" -#: library/ctypes.rst:922 +#: library/ctypes.rst:938 msgid "" ">>> bar = Bar()\n" ">>> bar.values = cast((c_byte * 4)(), POINTER(c_int))\n" @@ -1470,18 +1535,18 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:932 +#: library/ctypes.rst:948 msgid "Incomplete Types" msgstr "" -#: library/ctypes.rst:934 +#: library/ctypes.rst:950 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:938 +#: library/ctypes.rst:954 msgid "" "struct cell; /* forward declaration */\n" "\n" @@ -1491,13 +1556,13 @@ msgid "" "};" msgstr "" -#: library/ctypes.rst:945 +#: library/ctypes.rst:961 msgid "" "The straightforward translation into ctypes code would be this, but it does " "not work::" msgstr "" -#: library/ctypes.rst:948 +#: library/ctypes.rst:964 msgid "" ">>> class cell(Structure):\n" "... _fields_ = [(\"name\", c_char_p),\n" @@ -1510,14 +1575,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:958 +#: library/ctypes.rst:974 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:962 +#: library/ctypes.rst:978 msgid "" ">>> from ctypes import *\n" ">>> class cell(Structure):\n" @@ -1528,13 +1593,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:970 +#: library/ctypes.rst:986 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:973 +#: library/ctypes.rst:989 msgid "" ">>> c1 = cell()\n" ">>> c1.name = b\"foo\"\n" @@ -1551,24 +1616,24 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:991 +#: library/ctypes.rst:1007 msgid "Callback functions" msgstr "" -#: library/ctypes.rst:993 +#: library/ctypes.rst:1009 msgid "" ":mod:`ctypes` allows creating C callable function pointers from Python " "callables. These are sometimes called *callback functions*." msgstr "" -#: library/ctypes.rst:996 +#: library/ctypes.rst:1012 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:1000 +#: library/ctypes.rst:1016 msgid "" "The :func:`CFUNCTYPE` factory function creates types for callback functions " "using the ``cdecl`` calling convention. On Windows, the :func:`WINFUNCTYPE` " @@ -1576,21 +1641,21 @@ msgid "" "calling convention." msgstr "" -#: library/ctypes.rst:1005 +#: library/ctypes.rst:1021 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:1009 +#: library/ctypes.rst:1025 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:1013 +#: library/ctypes.rst:1029 msgid "" ">>> IntArray5 = c_int * 5\n" ">>> ia = IntArray5(5, 1, 7, 33, 99)\n" @@ -1599,7 +1664,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1019 +#: library/ctypes.rst:1035 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 " @@ -1609,25 +1674,25 @@ msgid "" "otherwise." msgstr "" -#: library/ctypes.rst:1025 +#: library/ctypes.rst:1041 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:1028 +#: library/ctypes.rst:1044 msgid "" ">>> CMPFUNC = CFUNCTYPE(c_int, POINTER(c_int), POINTER(c_int))\n" ">>>" msgstr "" -#: library/ctypes.rst:1031 +#: library/ctypes.rst:1047 msgid "" "To get started, here is a simple callback that shows the values it gets " "passed::" msgstr "" -#: library/ctypes.rst:1034 +#: library/ctypes.rst:1050 msgid "" ">>> def py_cmp_func(a, b):\n" "... print(\"py_cmp_func\", a[0], b[0])\n" @@ -1637,11 +1702,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1041 +#: library/ctypes.rst:1057 msgid "The result::" msgstr "" -#: library/ctypes.rst:1043 +#: library/ctypes.rst:1059 msgid "" ">>> qsort(ia, len(ia), sizeof(c_int), cmp_func)\n" "py_cmp_func 5 1\n" @@ -1652,11 +1717,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1051 +#: library/ctypes.rst:1067 msgid "Now we can actually compare the two items and return a useful result::" msgstr "" -#: library/ctypes.rst:1053 +#: library/ctypes.rst:1069 msgid "" ">>> def py_cmp_func(a, b):\n" "... print(\"py_cmp_func\", a[0], b[0])\n" @@ -1672,11 +1737,11 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1066 +#: library/ctypes.rst:1082 msgid "As we can easily check, our array is sorted now::" msgstr "" -#: library/ctypes.rst:1068 +#: library/ctypes.rst:1084 msgid "" ">>> for i in ia: print(i, end=\" \")\n" "...\n" @@ -1684,13 +1749,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1073 +#: library/ctypes.rst:1089 msgid "" "The function factories can be used as decorator factories, so we may as well " "write::" msgstr "" -#: library/ctypes.rst:1076 +#: library/ctypes.rst:1092 msgid "" ">>> @CFUNCTYPE(c_int, POINTER(c_int), POINTER(c_int))\n" "... def py_cmp_func(a, b):\n" @@ -1706,14 +1771,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1091 +#: library/ctypes.rst:1107 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:1095 +#: library/ctypes.rst:1111 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 " @@ -1723,42 +1788,42 @@ msgid "" "even when those calls are made from the same C thread." msgstr "" -#: library/ctypes.rst:1105 +#: library/ctypes.rst:1121 msgid "Accessing values exported from dlls" msgstr "" -#: library/ctypes.rst:1107 +#: library/ctypes.rst:1123 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:1111 +#: library/ctypes.rst:1127 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:1115 +#: library/ctypes.rst:1131 msgid "" ">>> version = ctypes.c_int.in_dll(ctypes.pythonapi, \"Py_Version\")\n" ">>> print(hex(version.value))\n" "0x30c00a0" msgstr "" -#: library/ctypes.rst:1119 +#: library/ctypes.rst:1135 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:1122 +#: library/ctypes.rst:1138 msgid "Quoting the docs for that value:" msgstr "" -#: library/ctypes.rst:1124 +#: library/ctypes.rst:1140 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 " @@ -1767,13 +1832,13 @@ msgid "" "frozen modules." msgstr "" -#: library/ctypes.rst:1129 +#: library/ctypes.rst:1145 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:1132 +#: library/ctypes.rst:1148 msgid "" ">>> from ctypes import *\n" ">>>\n" @@ -1787,20 +1852,20 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1143 +#: library/ctypes.rst:1159 msgid "" "We have defined the :c:struct:`_frozen` data type, so we can get the pointer " "to the table::" msgstr "" -#: library/ctypes.rst:1146 +#: library/ctypes.rst:1162 msgid "" ">>> FrozenTable = POINTER(struct_frozen)\n" ">>> table = FrozenTable.in_dll(pythonapi, \"_PyImport_FrozenBootstrap\")\n" ">>>" msgstr "" -#: library/ctypes.rst:1150 +#: library/ctypes.rst:1166 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 " @@ -1809,7 +1874,7 @@ msgid "" "the loop when we hit the ``NULL`` entry::" msgstr "" -#: library/ctypes.rst:1156 +#: library/ctypes.rst:1172 msgid "" ">>> for item in table:\n" "... if item.name is None:\n" @@ -1822,28 +1887,28 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1166 +#: library/ctypes.rst:1182 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:1174 +#: library/ctypes.rst:1190 msgid "Surprises" msgstr "" -#: library/ctypes.rst:1176 +#: library/ctypes.rst:1192 msgid "" "There are some edges in :mod:`ctypes` where you might expect something other " "than what actually happens." msgstr "" -#: library/ctypes.rst:1179 +#: library/ctypes.rst:1195 msgid "Consider the following example::" msgstr "" -#: library/ctypes.rst:1181 +#: library/ctypes.rst:1197 msgid "" ">>> from ctypes import *\n" ">>> class POINT(Structure):\n" @@ -1864,13 +1929,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1199 +#: library/ctypes.rst:1215 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:1202 +#: library/ctypes.rst:1218 msgid "" ">>> temp0, temp1 = rc.b, rc.a\n" ">>> rc.a = temp0\n" @@ -1878,7 +1943,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1207 +#: library/ctypes.rst:1223 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 " @@ -1887,20 +1952,20 @@ msgid "" "have the expected effect." msgstr "" -#: library/ctypes.rst:1213 +#: library/ctypes.rst:1229 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:1217 +#: library/ctypes.rst:1233 msgid "" "Another example that may behave differently from what one would expect is " "this::" msgstr "" -#: library/ctypes.rst:1219 +#: library/ctypes.rst:1235 msgid "" ">>> s = c_char_p()\n" ">>> s.value = b\"abc def ghi\"\n" @@ -1911,13 +1976,13 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1229 +#: library/ctypes.rst:1245 msgid "" "Objects instantiated from :class:`c_char_p` can only have their value set to " "bytes or integers." msgstr "" -#: library/ctypes.rst:1232 +#: library/ctypes.rst:1248 msgid "" "Why is it printing ``False``? ctypes instances are objects containing a " "memory block plus some :term:`descriptor`\\s accessing the contents of the " @@ -1926,16 +1991,16 @@ msgid "" "the contents again constructs a new Python object each time!" msgstr "" -#: library/ctypes.rst:1242 +#: library/ctypes.rst:1258 msgid "Variable-sized data types" msgstr "" -#: library/ctypes.rst:1244 +#: library/ctypes.rst:1260 msgid "" ":mod:`ctypes` provides some support for variable-sized arrays and structures." msgstr "" -#: library/ctypes.rst:1246 +#: library/ctypes.rst:1262 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, " @@ -1944,7 +2009,7 @@ msgid "" "objects type, a :exc:`ValueError` is raised if this is tried::" msgstr "" -#: library/ctypes.rst:1252 +#: library/ctypes.rst:1268 msgid "" ">>> short_array = (c_short * 4)()\n" ">>> print(sizeof(short_array))\n" @@ -1961,14 +2026,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1266 +#: library/ctypes.rst:1282 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:1270 +#: library/ctypes.rst:1286 msgid "" ">>> short_array[:]\n" "[0, 0, 0, 0]\n" @@ -1979,28 +2044,28 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1278 +#: library/ctypes.rst:1294 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:1286 +#: library/ctypes.rst:1302 msgid "ctypes reference" msgstr "" -#: library/ctypes.rst:1292 +#: library/ctypes.rst:1308 msgid "Finding shared libraries" msgstr "" -#: library/ctypes.rst:1294 +#: library/ctypes.rst:1310 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:1297 +#: library/ctypes.rst:1313 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 " @@ -2009,13 +2074,13 @@ msgid "" "and call the runtime loader directly." msgstr "" -#: library/ctypes.rst:1303 +#: library/ctypes.rst:1319 msgid "" "The :mod:`!ctypes.util` module provides a function which can help to " "determine the library to load." msgstr "" -#: library/ctypes.rst:1311 +#: library/ctypes.rst:1327 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 " @@ -2023,29 +2088,29 @@ msgid "" "If no library can be found, returns ``None``." msgstr "" -#: library/ctypes.rst:2002 +#: library/ctypes.rst:2038 msgid "The exact functionality is system dependent." msgstr "" -#: library/ctypes.rst:1318 +#: library/ctypes.rst:1334 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:1322 +#: library/ctypes.rst:1338 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:1326 +#: library/ctypes.rst:1342 msgid "Here are some examples::" msgstr "" -#: library/ctypes.rst:1328 +#: library/ctypes.rst:1344 msgid "" ">>> from ctypes.util import find_library\n" ">>> find_library(\"m\")\n" @@ -2057,14 +2122,14 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1337 +#: library/ctypes.rst:1353 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:1341 +#: library/ctypes.rst:1357 msgid "" ">>> from ctypes.util import find_library\n" ">>> find_library(\"c\")\n" @@ -2078,7 +2143,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1352 +#: library/ctypes.rst:1368 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 " @@ -2086,7 +2151,7 @@ msgid "" "``None``." msgstr "" -#: library/ctypes.rst:1356 +#: library/ctypes.rst:1372 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 " @@ -2094,24 +2159,24 @@ msgid "" "to locate the library at runtime." msgstr "" -#: library/ctypes.rst:1364 +#: library/ctypes.rst:1380 msgid "Loading shared libraries" msgstr "" -#: library/ctypes.rst:1366 +#: library/ctypes.rst:1382 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:1372 +#: library/ctypes.rst:1388 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:1376 +#: library/ctypes.rst:1392 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:" @@ -2123,17 +2188,17 @@ msgid "" "determine which one is not found using Windows debugging and tracing tools." msgstr "" -#: library/ctypes.rst:1413 library/ctypes.rst:1444 +#: library/ctypes.rst:1429 library/ctypes.rst:1460 msgid "The *name* parameter can now be a :term:`path-like object`." msgstr "" -#: library/ctypes.rst:1392 +#: library/ctypes.rst:1408 msgid "" "`Microsoft DUMPBIN tool `_ -- A tool to find DLL dependents." msgstr "" -#: library/ctypes.rst:1398 +#: library/ctypes.rst:1414 msgid "" "Instances of this class represent loaded shared libraries, functions in " "these libraries use the ``stdcall`` calling convention, and are assumed to " @@ -2143,32 +2208,32 @@ msgid "" "a failure, an :class:`OSError` is automatically raised." msgstr "" -#: library/ctypes.rst:1422 library/ctypes.rst:1574 library/ctypes.rst:1982 -#: library/ctypes.rst:2016 library/ctypes.rst:2034 library/ctypes.rst:2106 -#: library/ctypes.rst:2478 +#: library/ctypes.rst:1438 library/ctypes.rst:1590 library/ctypes.rst:2018 +#: library/ctypes.rst:2052 library/ctypes.rst:2070 library/ctypes.rst:2142 +#: library/ctypes.rst:2514 msgid "Availability" msgstr "" -#: library/ctypes.rst:1407 +#: library/ctypes.rst:1423 msgid "" ":exc:`WindowsError` used to be raised, which is now an alias of :exc:" "`OSError`." msgstr "" -#: library/ctypes.rst:1418 +#: library/ctypes.rst:1434 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:1429 +#: library/ctypes.rst:1445 msgid "" "The Python :term:`global interpreter lock` is released before calling any " "function exported by these libraries, and reacquired afterwards." msgstr "" -#: library/ctypes.rst:1435 +#: library/ctypes.rst:1451 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 " @@ -2176,11 +2241,11 @@ msgid "" "set, a Python exception is raised." msgstr "" -#: library/ctypes.rst:1440 +#: library/ctypes.rst:1456 msgid "Thus, this is only useful to call Python C api functions directly." msgstr "" -#: library/ctypes.rst:1446 +#: library/ctypes.rst:1462 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 " @@ -2190,7 +2255,7 @@ msgid "" "the process, and to get a handle to it." msgstr "" -#: library/ctypes.rst:1453 +#: library/ctypes.rst:1469 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 " @@ -2198,7 +2263,7 @@ msgid "" "configurable." msgstr "" -#: library/ctypes.rst:1458 +#: library/ctypes.rst:1474 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:" @@ -2208,14 +2273,14 @@ msgid "" "private copy, the same happens immediately after the function call." msgstr "" -#: library/ctypes.rst:1465 +#: library/ctypes.rst:1481 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:1469 +#: library/ctypes.rst:1485 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 :" @@ -2224,7 +2289,7 @@ msgid "" "private copy of the windows error code." msgstr "" -#: library/ctypes.rst:1475 +#: library/ctypes.rst:1491 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 " @@ -2234,29 +2299,29 @@ msgid "" "ensure the correct library and dependencies are loaded." msgstr "" -#: library/ctypes.rst:1482 +#: library/ctypes.rst:1498 msgid "Added *winmode* parameter." msgstr "" -#: library/ctypes.rst:1489 +#: library/ctypes.rst:1505 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:1496 +#: library/ctypes.rst:1512 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:1503 +#: library/ctypes.rst:1519 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:1506 +#: library/ctypes.rst:1522 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 " @@ -2265,7 +2330,7 @@ msgid "" "other hand, accessing it through an index returns a new object each time::" msgstr "" -#: library/ctypes.rst:1512 +#: library/ctypes.rst:1528 msgid "" ">>> from ctypes import CDLL\n" ">>> libc = CDLL(\"libc.so.6\") # On Linux\n" @@ -2275,21 +2340,21 @@ msgid "" "False" msgstr "" -#: library/ctypes.rst:1519 +#: library/ctypes.rst:1535 msgid "" "The following public attributes are available, their name starts with an " "underscore to not clash with exported function names:" msgstr "" -#: library/ctypes.rst:1525 +#: library/ctypes.rst:1541 msgid "The system handle used to access the library." msgstr "" -#: library/ctypes.rst:1530 +#: library/ctypes.rst:1546 msgid "The name of the library passed in the constructor." msgstr "" -#: library/ctypes.rst:1532 +#: library/ctypes.rst:1548 msgid "" "Shared libraries can also be loaded by using one of the prefabricated " "objects, which are instances of the :class:`LibraryLoader` class, either by " @@ -2297,13 +2362,13 @@ msgid "" "library as attribute of the loader instance." msgstr "" -#: library/ctypes.rst:1540 +#: library/ctypes.rst:1556 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:1543 +#: library/ctypes.rst:1559 msgid "" ":meth:`!__getattr__` has special behavior: It allows loading a shared " "library by accessing it as attribute of a library loader instance. The " @@ -2311,39 +2376,39 @@ msgid "" "each time." msgstr "" -#: library/ctypes.rst:1549 +#: library/ctypes.rst:1565 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:1553 +#: library/ctypes.rst:1569 msgid "These prefabricated library loaders are available:" msgstr "" -#: library/ctypes.rst:1558 +#: library/ctypes.rst:1574 msgid "Creates :class:`CDLL` instances." msgstr "" -#: library/ctypes.rst:1564 +#: library/ctypes.rst:1580 msgid "Creates :class:`WinDLL` instances." msgstr "" -#: library/ctypes.rst:1572 +#: library/ctypes.rst:1588 msgid "Creates :class:`OleDLL` instances." msgstr "" -#: library/ctypes.rst:1580 +#: library/ctypes.rst:1596 msgid "Creates :class:`PyDLL` instances." msgstr "" -#: library/ctypes.rst:1583 +#: library/ctypes.rst:1599 msgid "" "For accessing the C Python api directly, a ready-to-use Python shared " "library object is available:" msgstr "" -#: library/ctypes.rst:1589 +#: library/ctypes.rst:1605 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:" @@ -2351,32 +2416,32 @@ msgid "" "correct :attr:`!restype` attribute to use these functions." msgstr "" -#: library/ctypes.rst:1596 +#: library/ctypes.rst:1612 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:1602 +#: library/ctypes.rst:1618 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:1608 +#: library/ctypes.rst:1624 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:1615 +#: library/ctypes.rst:1631 msgid "Foreign functions" msgstr "" -#: library/ctypes.rst:1617 +#: library/ctypes.rst:1633 msgid "" "As explained in the previous section, foreign functions can be accessed as " "attributes of loaded shared libraries. The function objects created in this " @@ -2385,13 +2450,13 @@ msgid "" "library loader." msgstr "" -#: library/ctypes.rst:1622 +#: library/ctypes.rst:1638 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:1625 +#: library/ctypes.rst:1641 msgid "" ">>> import ctypes\n" ">>> lib = ctypes.CDLL(None)\n" @@ -2401,29 +2466,29 @@ msgid "" "False" msgstr "" -#: library/ctypes.rst:1636 +#: library/ctypes.rst:1652 msgid "Base class for C callable foreign functions." msgstr "" -#: library/ctypes.rst:1638 +#: library/ctypes.rst:1654 msgid "" "Instances of foreign functions are also C compatible data types; they " "represent C function pointers." msgstr "" -#: library/ctypes.rst:1641 +#: library/ctypes.rst:1657 msgid "" "This behavior can be customized by assigning to special attributes of the " "foreign function object." msgstr "" -#: library/ctypes.rst:1646 +#: library/ctypes.rst:1662 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:1649 +#: library/ctypes.rst:1665 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 " @@ -2433,7 +2498,7 @@ msgid "" "callable to the :attr:`errcheck` attribute." msgstr "" -#: library/ctypes.rst:1658 +#: library/ctypes.rst:1674 msgid "" "Assign a tuple of ctypes types to specify the argument types that the " "function accepts. Functions using the ``stdcall`` calling convention can " @@ -2442,7 +2507,7 @@ msgid "" "unspecified arguments as well." msgstr "" -#: library/ctypes.rst:1664 +#: library/ctypes.rst:1680 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` " @@ -2452,7 +2517,7 @@ msgid "" "object using ctypes conversion rules." msgstr "" -#: library/ctypes.rst:1671 +#: library/ctypes.rst:1687 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 " @@ -2460,44 +2525,44 @@ msgid "" "defining adapters that can adapt custom objects as function parameters." msgstr "" -#: library/ctypes.rst:1678 +#: library/ctypes.rst:1694 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:1685 +#: library/ctypes.rst:1701 msgid "" "*result* is what the foreign function returns, as specified by the :attr:`!" "restype` attribute." msgstr "" -#: library/ctypes.rst:1688 +#: library/ctypes.rst:1704 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:1692 +#: library/ctypes.rst:1708 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:1696 +#: library/ctypes.rst:1712 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:1703 +#: library/ctypes.rst:1719 msgid "" "This exception is raised when a foreign function call cannot convert one of " "the passed arguments." msgstr "" -#: library/ctypes.rst:1709 +#: library/ctypes.rst:1725 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 " @@ -2506,18 +2571,18 @@ msgid "" "hook to replace the exception with its own." msgstr "" -#: library/ctypes.rst:1717 +#: library/ctypes.rst:1733 msgid "" "Some ways to invoke foreign function calls may raise an auditing event " "``ctypes.call_function`` with arguments ``function pointer`` and " "``arguments``." msgstr "" -#: library/ctypes.rst:1723 +#: library/ctypes.rst:1739 msgid "Function prototypes" msgstr "" -#: library/ctypes.rst:1725 +#: library/ctypes.rst:1741 msgid "" "Foreign functions can also be created by instantiating function prototypes. " "Function prototypes are similar to function prototypes in C; they describe a " @@ -2528,7 +2593,7 @@ msgid "" "``@wrapper`` syntax. See :ref:`ctypes-callback-functions` for examples." msgstr "" -#: library/ctypes.rst:1736 +#: library/ctypes.rst:1752 msgid "" "The returned function prototype creates functions that use the standard C " "calling convention. The function will release the GIL during the call. If " @@ -2537,37 +2602,37 @@ msgid "" "after the call; *use_last_error* does the same for the Windows error code." msgstr "" -#: library/ctypes.rst:1746 +#: library/ctypes.rst:1762 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:1756 +#: library/ctypes.rst:1772 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:1759 +#: library/ctypes.rst:1775 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:1766 +#: library/ctypes.rst:1782 msgid "" "Returns a foreign function at the specified address which must be an integer." msgstr "" -#: library/ctypes.rst:1773 +#: library/ctypes.rst:1789 msgid "" "Create a C callable function (a callback function) from a Python *callable*." msgstr "" -#: library/ctypes.rst:1780 +#: library/ctypes.rst:1796 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 " @@ -2575,7 +2640,7 @@ msgid "" "small integer. The second item is the shared library instance." msgstr "" -#: library/ctypes.rst:1790 +#: library/ctypes.rst:1806 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* " @@ -2583,79 +2648,79 @@ msgid "" "identifier which is used in extended error reporting." msgstr "" -#: library/ctypes.rst:1795 +#: library/ctypes.rst:1811 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:1799 +#: library/ctypes.rst:1815 msgid "" "The optional *paramflags* parameter creates foreign function wrappers with " "much more functionality than the features described above." msgstr "" -#: library/ctypes.rst:1802 +#: library/ctypes.rst:1818 msgid "" "*paramflags* must be a tuple of the same length as :attr:`~_CFuncPtr." "argtypes`." msgstr "" -#: library/ctypes.rst:1804 +#: library/ctypes.rst:1820 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:1807 +#: library/ctypes.rst:1823 msgid "" "The first item is an integer containing a combination of direction flags for " "the parameter:" msgstr "" -#: library/ctypes.rst:1810 +#: library/ctypes.rst:1826 msgid "1" msgstr "" -#: library/ctypes.rst:1811 +#: library/ctypes.rst:1827 msgid "Specifies an input parameter to the function." msgstr "" -#: library/ctypes.rst:1813 +#: library/ctypes.rst:1829 msgid "2" msgstr "" -#: library/ctypes.rst:1814 +#: library/ctypes.rst:1830 msgid "Output parameter. The foreign function fills in a value." msgstr "" -#: library/ctypes.rst:1816 +#: library/ctypes.rst:1832 msgid "4" msgstr "" -#: library/ctypes.rst:1817 +#: library/ctypes.rst:1833 msgid "Input parameter which defaults to the integer zero." msgstr "" -#: library/ctypes.rst:1819 +#: library/ctypes.rst:1835 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:1822 +#: library/ctypes.rst:1838 msgid "The optional third item is the default value for this parameter." msgstr "" -#: library/ctypes.rst:1825 +#: library/ctypes.rst:1841 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:1829 +#: library/ctypes.rst:1845 msgid "" "WINUSERAPI int WINAPI\n" "MessageBoxW(\n" @@ -2665,11 +2730,11 @@ msgid "" " UINT uType);" msgstr "" -#: library/ctypes.rst:1859 +#: library/ctypes.rst:1875 msgid "Here is the wrapping with :mod:`ctypes`::" msgstr "" -#: library/ctypes.rst:1838 +#: library/ctypes.rst:1854 msgid "" ">>> from ctypes import c_int, WINFUNCTYPE, windll\n" ">>> from ctypes.wintypes import HWND, LPCWSTR, UINT\n" @@ -2679,18 +2744,18 @@ msgid "" ">>> MessageBox = prototype((\"MessageBoxW\", windll.user32), paramflags)" msgstr "" -#: library/ctypes.rst:1844 +#: library/ctypes.rst:1860 msgid "The ``MessageBox`` foreign function can now be called in these ways::" msgstr "" -#: library/ctypes.rst:1846 +#: library/ctypes.rst:1862 msgid "" ">>> MessageBox()\n" ">>> MessageBox(text=\"Spam, spam, spam\")\n" ">>> MessageBox(flags=2, text=\"foo bar\")" msgstr "" -#: library/ctypes.rst:1850 +#: library/ctypes.rst:1866 msgid "" "A second example demonstrates output parameters. The win32 " "``GetWindowRect`` function retrieves the dimensions of a specified window by " @@ -2698,7 +2763,7 @@ msgid "" "the C declaration::" msgstr "" -#: library/ctypes.rst:1854 +#: library/ctypes.rst:1870 msgid "" "WINUSERAPI BOOL WINAPI\n" "GetWindowRect(\n" @@ -2706,7 +2771,7 @@ msgid "" " LPRECT lpRect);" msgstr "" -#: library/ctypes.rst:1861 +#: library/ctypes.rst:1877 msgid "" ">>> from ctypes import POINTER, WINFUNCTYPE, windll, WinError\n" ">>> from ctypes.wintypes import BOOL, HWND, RECT\n" @@ -2717,7 +2782,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1868 +#: library/ctypes.rst:1884 msgid "" "Functions with output parameters will automatically return the output " "parameter value if there is a single one, or a tuple containing the output " @@ -2725,7 +2790,7 @@ msgid "" "now returns a RECT instance, when called." msgstr "" -#: library/ctypes.rst:1873 +#: library/ctypes.rst:1889 msgid "" "Output parameters can be combined with the :attr:`~_CFuncPtr.errcheck` " "protocol to do further output processing and error checking. The win32 " @@ -2734,7 +2799,7 @@ msgid "" "exception when the api call failed::" msgstr "" -#: library/ctypes.rst:1878 +#: library/ctypes.rst:1894 msgid "" ">>> def errcheck(result, func, args):\n" "... if not result:\n" @@ -2745,7 +2810,7 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1886 +#: library/ctypes.rst:1902 msgid "" "If the :attr:`~_CFuncPtr.errcheck` function returns the argument tuple it " "receives unchanged, :mod:`ctypes` continues the normal processing it does on " @@ -2754,7 +2819,7 @@ msgid "" "and return them instead, the normal processing will no longer take place::" msgstr "" -#: library/ctypes.rst:1892 +#: library/ctypes.rst:1908 msgid "" ">>> def errcheck(result, func, args):\n" "... if not result:\n" @@ -2766,50 +2831,50 @@ msgid "" ">>>" msgstr "" -#: library/ctypes.rst:1905 +#: library/ctypes.rst:1921 msgid "Utility functions" msgstr "" -#: library/ctypes.rst:1909 +#: library/ctypes.rst:1925 msgid "" "Returns the address of the memory buffer as integer. *obj* must be an " "instance of a ctypes type." msgstr "" -#: library/ctypes.rst:1912 +#: library/ctypes.rst:1928 msgid "" "Raises an :ref:`auditing event ` ``ctypes.addressof`` with " "argument ``obj``." msgstr "" -#: library/ctypes.rst:1917 +#: library/ctypes.rst:1933 msgid "" "Returns the alignment requirements of a ctypes type. *obj_or_type* must be a " "ctypes type or instance." msgstr "" -#: library/ctypes.rst:1923 +#: library/ctypes.rst:1939 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:1927 +#: library/ctypes.rst:1943 msgid "``byref(obj, offset)`` corresponds to this C code::" msgstr "" -#: library/ctypes.rst:1929 +#: library/ctypes.rst:1945 msgid "(((char *)&obj) + offset)" msgstr "" -#: library/ctypes.rst:1931 +#: library/ctypes.rst:1947 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:1937 +#: library/ctypes.rst:1953 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* " @@ -2817,75 +2882,101 @@ msgid "" "as a pointer." msgstr "" -#: library/ctypes.rst:1945 +#: library/ctypes.rst:1962 msgid "" "This function creates a mutable character buffer. The returned object is a " "ctypes array of :class:`c_char`." msgstr "" -#: library/ctypes.rst:1948 +#: library/ctypes.rst:1965 msgid "" -"*init_or_size* must be an integer which specifies the size of the array, or " -"a bytes object which will be used to initialize the array items." +"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:1951 +#: library/ctypes.rst:1968 msgid "" -"If a bytes object is specified as first argument, the buffer is made one " -"item larger than its length so that the last element in the array is a NUL " -"termination character. An integer can be passed as second argument which " -"allows specifying the size of the array if the length of the bytes should " -"not be used." +"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:1956 +#: library/ctypes.rst:1972 +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:1975 +msgid "" +"If both arguments are given, *size* must not be less than ``len(init)``." +msgstr "" + +#: library/ctypes.rst:1979 +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:1982 +msgid "For example::" +msgstr "" + +#: library/ctypes.rst:1984 +msgid "" +">>> bytes(create_string_buffer(2))\n" +"b'\\x00\\x00'\n" +">>> bytes(create_string_buffer(b'ab'))\n" +"b'ab\\x00'\n" +">>> bytes(create_string_buffer(b'ab', 2))\n" +"b'ab'\n" +">>> bytes(create_string_buffer(b'ab', 4))\n" +"b'ab\\x00\\x00'\n" +">>> bytes(create_string_buffer(b'abcdef', 2))\n" +"Traceback (most recent call last):\n" +" ...\n" +"ValueError: byte string too long" +msgstr "" + +#: library/ctypes.rst:1997 msgid "" "Raises an :ref:`auditing event ` ``ctypes.create_string_buffer`` " "with arguments ``init``, ``size``." msgstr "" -#: library/ctypes.rst:1961 +#: library/ctypes.rst:2003 msgid "" "This function creates a mutable unicode character buffer. The returned " "object is a ctypes array of :class:`c_wchar`." msgstr "" -#: library/ctypes.rst:1964 -msgid "" -"*init_or_size* must be an integer which specifies the size of the array, or " -"a string which will be used to initialize the array items." -msgstr "" - -#: library/ctypes.rst:1967 +#: library/ctypes.rst:2006 msgid "" -"If a string is specified as first argument, the buffer is made one item " -"larger than the length of the string so that the last element in the array " -"is a NUL termination character. An integer can be passed as second argument " -"which allows specifying the size of the array if the length of the string " -"should not be used." +"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:1973 +#: library/ctypes.rst:2009 msgid "" "Raises an :ref:`auditing event ` ``ctypes.create_unicode_buffer`` " "with arguments ``init``, ``size``." msgstr "" -#: library/ctypes.rst:1978 +#: library/ctypes.rst:2014 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:1987 +#: library/ctypes.rst:2023 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:1997 +#: library/ctypes.rst:2033 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 " @@ -2893,92 +2984,92 @@ msgid "" "If no library can be found, returns ``None``." msgstr "" -#: library/ctypes.rst:2008 +#: library/ctypes.rst:2044 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:2012 +#: library/ctypes.rst:2048 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:2021 +#: library/ctypes.rst:2057 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 " "GetLastError." msgstr "" -#: library/ctypes.rst:2030 +#: library/ctypes.rst:2066 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:2039 +#: library/ctypes.rst:2075 msgid "" "Returns the current value of the ctypes-private copy of the system :data:" "`errno` variable in the calling thread." msgstr "" -#: library/ctypes.rst:2042 +#: library/ctypes.rst:2078 msgid "" "Raises an :ref:`auditing event ` ``ctypes.get_errno`` with no " "arguments." msgstr "" -#: library/ctypes.rst:2046 +#: library/ctypes.rst:2082 msgid "" "Returns the current value of the ctypes-private copy of the system :data:`!" "LastError` variable in the calling thread." msgstr "" -#: library/ctypes.rst:2051 +#: library/ctypes.rst:2087 msgid "" "Raises an :ref:`auditing event ` ``ctypes.get_last_error`` with no " "arguments." msgstr "" -#: library/ctypes.rst:2056 +#: library/ctypes.rst:2092 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:2063 +#: library/ctypes.rst:2099 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:2070 +#: library/ctypes.rst:2106 msgid "" "Create and return a new ctypes pointer type. Pointer types are cached and " "reused internally, so calling this function repeatedly is cheap. *type* must " "be a ctypes type." msgstr "" -#: library/ctypes.rst:2077 +#: library/ctypes.rst:2113 msgid "" "Create a new pointer instance, pointing to *obj*. The returned object is of " "the type ``POINTER(type(obj))``." msgstr "" -#: library/ctypes.rst:2080 +#: library/ctypes.rst:2116 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:2086 +#: library/ctypes.rst:2122 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 " @@ -2986,50 +3077,50 @@ msgid "" "but it is possible to enlarge the buffer." msgstr "" -#: library/ctypes.rst:2094 +#: library/ctypes.rst:2130 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:2097 +#: library/ctypes.rst:2133 msgid "" "Raises an :ref:`auditing event ` ``ctypes.set_errno`` with " "argument ``errno``." msgstr "" -#: library/ctypes.rst:2102 +#: library/ctypes.rst:2138 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:2108 +#: library/ctypes.rst:2144 msgid "" "Raises an :ref:`auditing event ` ``ctypes.set_last_error`` with " "argument ``error``." msgstr "" -#: library/ctypes.rst:2113 +#: library/ctypes.rst:2149 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:2119 +#: library/ctypes.rst:2155 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:2123 +#: library/ctypes.rst:2159 msgid "" "Raises an :ref:`auditing event ` ``ctypes.string_at`` with " "arguments ``ptr``, ``size``." msgstr "" -#: library/ctypes.rst:2128 +#: library/ctypes.rst:2164 msgid "" "This function is probably the worst-named thing in ctypes. It creates an " "instance of :exc:`OSError`. If *code* is not specified, ``GetLastError`` is " @@ -3037,30 +3128,30 @@ msgid "" "`FormatError` is called to get a textual description of the error." msgstr "" -#: library/ctypes.rst:2136 +#: library/ctypes.rst:2172 msgid "" "An instance of :exc:`WindowsError` used to be created, which is now an alias " "of :exc:`OSError`." msgstr "" -#: library/ctypes.rst:2143 +#: library/ctypes.rst:2179 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:2148 +#: library/ctypes.rst:2184 msgid "" "Raises an :ref:`auditing event ` ``ctypes.wstring_at`` with " "arguments ``ptr``, ``size``." msgstr "" -#: library/ctypes.rst:2154 +#: library/ctypes.rst:2190 msgid "Data types" msgstr "" -#: library/ctypes.rst:2159 +#: library/ctypes.rst:2195 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 " @@ -3070,13 +3161,13 @@ msgid "" "alive in case the memory block contains pointers." msgstr "" -#: library/ctypes.rst:2166 +#: library/ctypes.rst:2202 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:2171 +#: library/ctypes.rst:2207 msgid "" "This method returns a ctypes instance that shares the buffer of the *source* " "object. The *source* object must support the writeable buffer interface. " @@ -3085,13 +3176,13 @@ msgid "" "exc:`ValueError` is raised." msgstr "" -#: library/ctypes.rst:2187 +#: library/ctypes.rst:2223 msgid "" "Raises an :ref:`auditing event ` ``ctypes.cdata/buffer`` with " "arguments ``pointer``, ``size``, ``offset``." msgstr "" -#: library/ctypes.rst:2181 +#: library/ctypes.rst:2217 msgid "" "This method creates a ctypes instance, copying the buffer from the *source* " "object buffer which must be readable. The optional *offset* parameter " @@ -3099,19 +3190,19 @@ msgid "" "If the source buffer is not large enough a :exc:`ValueError` is raised." msgstr "" -#: library/ctypes.rst:2191 +#: library/ctypes.rst:2227 msgid "" "This method returns a ctypes type instance using the memory specified by " "*address* which must be an integer." msgstr "" -#: library/ctypes.rst:2196 +#: library/ctypes.rst:2232 msgid "" "This method, and others that indirectly call this method, raises an :ref:" "`auditing event ` ``ctypes.cdata`` with argument ``address``." msgstr "" -#: library/ctypes.rst:2202 +#: library/ctypes.rst:2238 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 " @@ -3119,25 +3210,25 @@ msgid "" "object that can be used as a function call parameter." msgstr "" -#: library/ctypes.rst:2207 +#: library/ctypes.rst:2243 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:2213 +#: library/ctypes.rst:2249 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:2217 +#: library/ctypes.rst:2253 msgid "Common instance variables of ctypes data types:" msgstr "" -#: library/ctypes.rst:2221 +#: library/ctypes.rst:2257 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:" @@ -3145,13 +3236,13 @@ msgid "" "block." msgstr "" -#: library/ctypes.rst:2228 +#: library/ctypes.rst:2264 msgid "" "This read-only variable is true when the ctypes data instance has allocated " "the memory block itself, false otherwise." msgstr "" -#: library/ctypes.rst:2233 +#: library/ctypes.rst:2269 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. " @@ -3159,7 +3250,7 @@ msgid "" "dictionary." msgstr "" -#: library/ctypes.rst:2246 +#: library/ctypes.rst:2282 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 " @@ -3168,11 +3259,11 @@ msgid "" "types that are not and do not contain pointers can now be pickled." msgstr "" -#: library/ctypes.rst:2252 +#: library/ctypes.rst:2288 msgid "Instances have a single attribute:" msgstr "" -#: library/ctypes.rst:2256 +#: library/ctypes.rst:2292 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 " @@ -3180,7 +3271,7 @@ msgid "" "bytes object or string." msgstr "" -#: library/ctypes.rst:2261 +#: library/ctypes.rst:2297 msgid "" "When the ``value`` attribute is retrieved from a ctypes instance, usually a " "new object is returned each time. :mod:`ctypes` does *not* implement " @@ -3188,7 +3279,7 @@ msgid "" "true for all other ctypes object instances." msgstr "" -#: library/ctypes.rst:2267 +#: library/ctypes.rst:2303 msgid "" "Fundamental data types, when returned as foreign function call results, or, " "for example, by retrieving structure field members or array items, are " @@ -3198,7 +3289,7 @@ msgid "" "instance." msgstr "" -#: library/ctypes.rst:2275 +#: library/ctypes.rst:2311 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 " @@ -3206,25 +3297,25 @@ msgid "" "you can get the value of the pointer by accessing the ``value`` attribute." msgstr "" -#: library/ctypes.rst:2280 +#: library/ctypes.rst:2316 msgid "These are the fundamental ctypes data types:" msgstr "" -#: library/ctypes.rst:2284 +#: library/ctypes.rst:2320 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:2291 +#: library/ctypes.rst:2327 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:2298 +#: library/ctypes.rst:2334 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 " @@ -3232,182 +3323,182 @@ msgid "" "integer address, or a bytes object." msgstr "" -#: library/ctypes.rst:2306 +#: library/ctypes.rst:2342 msgid "" "Represents the C :c:expr:`double` datatype. The constructor accepts an " "optional float initializer." msgstr "" -#: library/ctypes.rst:2312 +#: library/ctypes.rst:2348 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:2318 +#: library/ctypes.rst:2354 msgid "" "Represents the C :c:expr:`float` datatype. The constructor accepts an " "optional float initializer." msgstr "" -#: library/ctypes.rst:2324 +#: library/ctypes.rst:2360 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:2331 +#: library/ctypes.rst:2367 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:2337 +#: library/ctypes.rst:2373 msgid "" "Represents the C 16-bit :c:expr:`signed int` datatype. Usually an alias " "for :class:`c_short`." msgstr "" -#: library/ctypes.rst:2343 +#: library/ctypes.rst:2379 msgid "" "Represents the C 32-bit :c:expr:`signed int` datatype. Usually an alias " "for :class:`c_int`." msgstr "" -#: library/ctypes.rst:2349 +#: library/ctypes.rst:2385 msgid "" "Represents the C 64-bit :c:expr:`signed int` datatype. Usually an alias " "for :class:`c_longlong`." msgstr "" -#: library/ctypes.rst:2355 +#: library/ctypes.rst:2391 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:2361 +#: library/ctypes.rst:2397 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:2367 +#: library/ctypes.rst:2403 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:2373 +#: library/ctypes.rst:2409 msgid "Represents the C :c:type:`size_t` datatype." msgstr "" -#: library/ctypes.rst:2378 +#: library/ctypes.rst:2414 msgid "Represents the C :c:type:`ssize_t` datatype." msgstr "" -#: library/ctypes.rst:2385 +#: library/ctypes.rst:2421 msgid "Represents the C :c:type:`time_t` datatype." msgstr "" -#: library/ctypes.rst:2392 +#: library/ctypes.rst:2428 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:2399 +#: library/ctypes.rst:2435 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:2406 +#: library/ctypes.rst:2442 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:2412 +#: library/ctypes.rst:2448 msgid "" "Represents the C 16-bit :c:expr:`unsigned int` datatype. Usually an alias " "for :class:`c_ushort`." msgstr "" -#: library/ctypes.rst:2418 +#: library/ctypes.rst:2454 msgid "" "Represents the C 32-bit :c:expr:`unsigned int` datatype. Usually an alias " "for :class:`c_uint`." msgstr "" -#: library/ctypes.rst:2424 +#: library/ctypes.rst:2460 msgid "" "Represents the C 64-bit :c:expr:`unsigned int` datatype. Usually an alias " "for :class:`c_ulonglong`." msgstr "" -#: library/ctypes.rst:2430 +#: library/ctypes.rst:2466 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:2436 +#: library/ctypes.rst:2472 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:2442 +#: library/ctypes.rst:2478 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:2448 +#: library/ctypes.rst:2484 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:2454 +#: library/ctypes.rst:2490 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:2461 +#: library/ctypes.rst:2497 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:2468 +#: library/ctypes.rst:2504 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:2475 +#: library/ctypes.rst:2511 msgid "" "Represents a :c:type:`!HRESULT` value, which contains success or error " "information for a function or method call." msgstr "" -#: library/ctypes.rst:2483 +#: library/ctypes.rst:2519 msgid "" "Represents the C :c:expr:`PyObject *` datatype. Calling this without an " "argument creates a ``NULL`` :c:expr:`PyObject *` pointer." msgstr "" -#: library/ctypes.rst:2486 +#: library/ctypes.rst:2522 msgid "" "The :mod:`!ctypes.wintypes` module provides quite some other Windows " "specific data types, for example :c:type:`!HWND`, :c:type:`!WPARAM`, or :c:" @@ -3415,41 +3506,41 @@ msgid "" "are also defined." msgstr "" -#: library/ctypes.rst:2494 +#: library/ctypes.rst:2530 msgid "Structured data types" msgstr "" -#: library/ctypes.rst:2499 +#: library/ctypes.rst:2535 msgid "Abstract base class for unions in native byte order." msgstr "" -#: library/ctypes.rst:2504 +#: library/ctypes.rst:2540 msgid "Abstract base class for unions in *big endian* byte order." msgstr "" -#: library/ctypes.rst:2510 +#: library/ctypes.rst:2546 msgid "Abstract base class for unions in *little endian* byte order." msgstr "" -#: library/ctypes.rst:2516 +#: library/ctypes.rst:2552 msgid "Abstract base class for structures in *big endian* byte order." msgstr "" -#: library/ctypes.rst:2521 +#: library/ctypes.rst:2557 msgid "Abstract base class for structures in *little endian* byte order." msgstr "" -#: library/ctypes.rst:2523 +#: library/ctypes.rst:2559 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:2529 +#: library/ctypes.rst:2565 msgid "Abstract base class for structures in *native* byte order." msgstr "" -#: library/ctypes.rst:2531 +#: library/ctypes.rst:2567 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:" @@ -3457,34 +3548,34 @@ msgid "" "the fields by direct attribute accesses. These are the" msgstr "" -#: library/ctypes.rst:2539 +#: library/ctypes.rst:2575 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:2543 +#: library/ctypes.rst:2579 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:2547 +#: library/ctypes.rst:2583 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:2550 +#: library/ctypes.rst:2586 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:2554 +#: library/ctypes.rst:2590 msgid "" "class List(Structure):\n" " pass\n" @@ -3493,7 +3584,7 @@ msgid "" " ]" msgstr "" -#: library/ctypes.rst:2560 +#: library/ctypes.rst:2596 msgid "" "The :attr:`_fields_` class variable must, however, be defined before the " "type is first used (an instance is created, :func:`sizeof` is called on it, " @@ -3501,14 +3592,14 @@ msgid "" "raise an AttributeError." msgstr "" -#: library/ctypes.rst:2565 +#: library/ctypes.rst:2601 msgid "" "It is possible to define sub-subclasses of structure types, they inherit the " "fields of the base class plus the :attr:`_fields_` defined in the sub-" "subclass, if any." msgstr "" -#: library/ctypes.rst:2572 +#: library/ctypes.rst:2608 msgid "" "An optional small integer that allows overriding the alignment of structure " "fields in the instance. :attr:`_pack_` must already be defined when :attr:" @@ -3516,21 +3607,21 @@ msgid "" "attribute to 0 is the same as not setting it at all." msgstr "" -#: library/ctypes.rst:2580 +#: library/ctypes.rst:2616 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." msgstr "" -#: library/ctypes.rst:2588 +#: library/ctypes.rst:2624 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:2592 +#: library/ctypes.rst:2628 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 " @@ -3538,11 +3629,11 @@ msgid "" "structure or union field." msgstr "" -#: library/ctypes.rst:2597 +#: library/ctypes.rst:2633 msgid "Here is an example type (Windows)::" msgstr "" -#: library/ctypes.rst:2599 +#: library/ctypes.rst:2635 msgid "" "class _U(Union):\n" " _fields_ = [(\"lptdesc\", POINTER(TYPEDESC)),\n" @@ -3555,7 +3646,7 @@ msgid "" " (\"vt\", VARTYPE)]" msgstr "" -#: library/ctypes.rst:2610 +#: library/ctypes.rst:2646 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 " @@ -3565,7 +3656,7 @@ msgid "" "temporary union instance::" msgstr "" -#: library/ctypes.rst:2617 +#: library/ctypes.rst:2653 msgid "" "td = TYPEDESC()\n" "td.vt = VT_PTR\n" @@ -3573,7 +3664,7 @@ msgid "" "td.u.lptdesc = POINTER(some_type)" msgstr "" -#: library/ctypes.rst:2622 +#: library/ctypes.rst:2658 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:" @@ -3581,7 +3672,7 @@ msgid "" "of the base class." msgstr "" -#: library/ctypes.rst:2627 +#: library/ctypes.rst:2663 msgid "" "Structure and union constructors accept both positional and keyword " "arguments. Positional arguments are used to initialize member fields in the " @@ -3591,15 +3682,15 @@ msgid "" "names not present in :attr:`_fields_`." msgstr "" -#: library/ctypes.rst:2638 +#: library/ctypes.rst:2674 msgid "Arrays and pointers" msgstr "" -#: library/ctypes.rst:2642 +#: library/ctypes.rst:2678 msgid "Abstract base class for arrays." msgstr "" -#: library/ctypes.rst:2644 +#: library/ctypes.rst:2680 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 " @@ -3609,46 +3700,46 @@ msgid "" "an :class:`Array`." msgstr "" -#: library/ctypes.rst:2654 +#: library/ctypes.rst:2690 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:2661 +#: library/ctypes.rst:2697 msgid "Specifies the type of each element in the array." msgstr "" -#: library/ctypes.rst:2664 +#: library/ctypes.rst:2700 msgid "" "Array subclass constructors accept positional arguments, used to initialize " "the elements in order." msgstr "" -#: library/ctypes.rst:2669 +#: library/ctypes.rst:2705 msgid "" "Create an array. Equivalent to ``type * length``, where *type* is a :mod:" "`ctypes` data type and *length* an integer." msgstr "" -#: library/ctypes.rst:2673 +#: library/ctypes.rst:2709 msgid "" "This function is :term:`soft deprecated` in favor of multiplication. There " "are no plans to remove it." msgstr "" -#: library/ctypes.rst:2679 +#: library/ctypes.rst:2715 msgid "Private, abstract base class for pointers." msgstr "" -#: library/ctypes.rst:2681 +#: library/ctypes.rst:2717 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:2685 +#: library/ctypes.rst:2721 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 :" @@ -3657,11 +3748,11 @@ msgid "" "probably crash with an access violation (if you're lucky)." msgstr "" -#: library/ctypes.rst:2695 +#: library/ctypes.rst:2731 msgid "Specifies the type pointed to." msgstr "" -#: library/ctypes.rst:2699 +#: library/ctypes.rst:2735 msgid "" "Returns the object to which to pointer points. Assigning to this attribute " "changes the pointer to point to the assigned object." diff --git a/library/curses.ascii.po b/library/curses.ascii.po index adda32fc..371ebe38 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 32c13c0c..5aa2800e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 0ab7e5e1..5b56ffa0 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -272,7 +272,7 @@ msgid "" "const:`BUTTON_ALT`." msgstr "" -#: library/curses.rst:1776 +#: library/curses.rst:1777 msgid "" "The ``BUTTON5_*`` constants are now exposed if they are provided by the " "underlying curses library." @@ -775,46 +775,46 @@ msgstr "" msgid "Window Objects" msgstr "" -#: library/curses.rst:706 +#: library/curses.rst:708 msgid "" "Window objects, as returned by :func:`initscr` and :func:`newwin` above, " "have the following methods and attributes:" msgstr "" -#: library/curses.rst:713 +#: library/curses.rst:715 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:719 +#: library/curses.rst:721 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:727 +#: library/curses.rst:729 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:735 +#: library/curses.rst:737 msgid "" "Paint the character string *str* at ``(y, x)`` with attributes *attr*, " "overwriting anything previously on the display." msgstr "" -#: library/curses.rst:740 +#: library/curses.rst:742 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:744 +#: library/curses.rst:746 msgid "" "A `bug in ncurses `_, the backend for " "this Python module, can cause SegFaults when resizing windows. This is fixed " @@ -824,44 +824,44 @@ msgid "" "line." msgstr "" -#: library/curses.rst:754 +#: library/curses.rst:756 msgid "" "Remove attribute *attr* from the \"background\" set applied to all writes to " "the current window." msgstr "" -#: library/curses.rst:760 +#: library/curses.rst:762 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:766 +#: library/curses.rst:768 msgid "" "Set the \"background\" set of attributes to *attr*. This set is initially " "``0`` (no attributes)." msgstr "" -#: library/curses.rst:772 +#: library/curses.rst:774 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:776 +#: library/curses.rst:778 msgid "" "The attribute of every character in the window is changed to the new " "background attribute." msgstr "" -#: library/curses.rst:779 +#: library/curses.rst:781 msgid "" "Wherever the former background character appears, it is changed to the new " "background character." msgstr "" -#: library/curses.rst:785 +#: library/curses.rst:787 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 " @@ -872,128 +872,128 @@ msgid "" "delete line/character operations." msgstr "" -#: library/curses.rst:795 +#: library/curses.rst:797 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:801 +#: library/curses.rst:803 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:806 +#: library/curses.rst:808 msgid "Parameter" msgstr "" -#: library/curses.rst:806 +#: library/curses.rst:808 msgid "Description" msgstr "" -#: library/curses.rst:806 +#: library/curses.rst:808 msgid "Default value" msgstr "" -#: library/curses.rst:808 +#: library/curses.rst:810 msgid "*ls*" msgstr "" -#: library/curses.rst:808 +#: library/curses.rst:810 msgid "Left side" msgstr "" -#: library/curses.rst:810 +#: library/curses.rst:812 msgid ":const:`ACS_VLINE`" msgstr "" -#: library/curses.rst:810 +#: library/curses.rst:812 msgid "*rs*" msgstr "" -#: library/curses.rst:810 +#: library/curses.rst:812 msgid "Right side" msgstr "" -#: library/curses.rst:812 +#: library/curses.rst:814 msgid "*ts*" msgstr "" -#: library/curses.rst:812 +#: library/curses.rst:814 msgid "Top" msgstr "" -#: library/curses.rst:814 +#: library/curses.rst:816 msgid ":const:`ACS_HLINE`" msgstr "" -#: library/curses.rst:814 +#: library/curses.rst:816 msgid "*bs*" msgstr "" -#: library/curses.rst:814 +#: library/curses.rst:816 msgid "Bottom" msgstr "" -#: library/curses.rst:816 +#: library/curses.rst:818 msgid "*tl*" msgstr "" -#: library/curses.rst:816 +#: library/curses.rst:818 msgid "Upper-left corner" msgstr "" -#: library/curses.rst:816 +#: library/curses.rst:818 msgid ":const:`ACS_ULCORNER`" msgstr "" -#: library/curses.rst:818 +#: library/curses.rst:820 msgid "*tr*" msgstr "" -#: library/curses.rst:818 +#: library/curses.rst:820 msgid "Upper-right corner" msgstr "" -#: library/curses.rst:818 +#: library/curses.rst:820 msgid ":const:`ACS_URCORNER`" msgstr "" -#: library/curses.rst:820 +#: library/curses.rst:822 msgid "*bl*" msgstr "" -#: library/curses.rst:820 +#: library/curses.rst:822 msgid "Bottom-left corner" msgstr "" -#: library/curses.rst:820 +#: library/curses.rst:822 msgid ":const:`ACS_LLCORNER`" msgstr "" -#: library/curses.rst:822 +#: library/curses.rst:824 msgid "*br*" msgstr "" -#: library/curses.rst:822 +#: library/curses.rst:824 msgid "Bottom-right corner" msgstr "" -#: library/curses.rst:822 +#: library/curses.rst:824 msgid ":const:`ACS_LRCORNER`" msgstr "" -#: library/curses.rst:828 +#: library/curses.rst:830 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:837 +#: library/curses.rst:839 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 " @@ -1003,45 +1003,45 @@ msgid "" "be redisplayed by the next window refresh." msgstr "" -#: library/curses.rst:847 +#: library/curses.rst:849 msgid "" "Like :meth:`erase`, but also cause the whole window to be repainted upon " "next call to :meth:`refresh`." msgstr "" -#: library/curses.rst:853 +#: library/curses.rst:855 msgid "" "If *flag* is ``True``, the next call to :meth:`refresh` will clear the " "window completely." msgstr "" -#: library/curses.rst:859 +#: library/curses.rst:861 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:865 +#: library/curses.rst:867 msgid "Erase from cursor to the end of the line." msgstr "" -#: library/curses.rst:870 +#: library/curses.rst:872 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:876 +#: library/curses.rst:878 msgid "Delete any character at ``(y, x)``." msgstr "" -#: library/curses.rst:881 +#: library/curses.rst:883 msgid "" "Delete the line under the cursor. All following lines are moved up by one " "line." msgstr "" -#: library/curses.rst:887 +#: library/curses.rst:889 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 " @@ -1049,13 +1049,13 @@ msgid "" "a window object for the derived window." msgstr "" -#: library/curses.rst:895 +#: library/curses.rst:897 msgid "" "Add character *ch* with attribute *attr*, and immediately call :meth:" "`refresh` on the window." msgstr "" -#: library/curses.rst:901 +#: library/curses.rst:903 msgid "" "Test whether the given pair of screen-relative character-cell coordinates " "are enclosed by the given window, returning ``True`` or ``False``. It is " @@ -1063,11 +1063,11 @@ msgid "" "location of a mouse event." msgstr "" -#: library/curses.rst:906 +#: library/curses.rst:908 msgid "Previously it returned ``1`` or ``0`` instead of ``True`` or ``False``." msgstr "" -#: library/curses.rst:912 +#: library/curses.rst:914 msgid "" "Encoding used to encode method arguments (Unicode strings and characters). " "The encoding attribute is inherited from the parent window when a subwindow " @@ -1075,19 +1075,19 @@ msgid "" "locale encoding is used (see :func:`locale.getencoding`)." msgstr "" -#: library/curses.rst:922 +#: library/curses.rst:924 msgid "Clear the window." msgstr "" -#: library/curses.rst:927 +#: library/curses.rst:929 msgid "Return a tuple ``(y, x)`` of coordinates of upper-left corner." msgstr "" -#: library/curses.rst:932 +#: library/curses.rst:934 msgid "Return the given window's current background character/attribute pair." msgstr "" -#: library/curses.rst:937 +#: library/curses.rst:939 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 " @@ -1095,14 +1095,14 @@ msgid "" "otherwise wait until a key is pressed." msgstr "" -#: library/curses.rst:945 +#: library/curses.rst:947 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:954 +#: library/curses.rst:956 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 " @@ -1110,35 +1110,35 @@ msgid "" "there is no input." msgstr "" -#: library/curses.rst:962 +#: library/curses.rst:964 msgid "Return a tuple ``(y, x)`` of the height and width of the window." msgstr "" -#: library/curses.rst:967 +#: library/curses.rst:969 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:977 +#: library/curses.rst:979 msgid "" "Read a bytes object from the user, with primitive line editing capacity." msgstr "" -#: library/curses.rst:982 +#: library/curses.rst:984 msgid "" "Return a tuple ``(y, x)`` of current cursor position relative to the " "window's upper-left corner." msgstr "" -#: library/curses.rst:989 +#: library/curses.rst:991 msgid "" "Display a horizontal line starting at ``(y, x)`` with length *n* consisting " "of the character *ch*." msgstr "" -#: library/curses.rst:995 +#: library/curses.rst:997 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 " @@ -1146,13 +1146,13 @@ msgid "" "initialized, use of character insert/delete is enabled by default." msgstr "" -#: library/curses.rst:1003 +#: library/curses.rst:1005 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:1009 +#: library/curses.rst:1011 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` " @@ -1160,19 +1160,19 @@ msgid "" "calls to wrefresh. This option is disabled by default." msgstr "" -#: library/curses.rst:1017 +#: library/curses.rst:1019 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:1024 +#: library/curses.rst:1026 msgid "" "Paint character *ch* at ``(y, x)`` with attributes *attr*, moving the line " "from position *x* right by one character." msgstr "" -#: library/curses.rst:1030 +#: library/curses.rst:1032 msgid "" "Insert *nlines* lines into the specified window above the current line. The " "*nlines* bottom lines are lost. For negative *nlines*, delete *nlines* " @@ -1181,13 +1181,13 @@ msgid "" "remains the same." msgstr "" -#: library/curses.rst:1039 +#: library/curses.rst:1041 msgid "" "Insert a blank line under the cursor. All following lines are moved down by " "one line." msgstr "" -#: library/curses.rst:1046 +#: library/curses.rst:1048 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 " @@ -1197,7 +1197,7 @@ msgid "" "if specified)." msgstr "" -#: library/curses.rst:1056 +#: library/curses.rst:1058 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 " @@ -1206,7 +1206,7 @@ msgid "" "specified)." msgstr "" -#: library/curses.rst:1065 +#: library/curses.rst:1067 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 " @@ -1214,76 +1214,76 @@ msgid "" "string at most *n* characters long (exclusive of the trailing NUL)." msgstr "" -#: library/curses.rst:1073 +#: library/curses.rst:1075 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:1080 +#: library/curses.rst:1082 msgid "" "Return ``True`` if the specified window was modified since the last call to :" "meth:`refresh`; otherwise return ``False``." msgstr "" -#: library/curses.rst:1086 +#: library/curses.rst:1088 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:1093 +#: library/curses.rst:1095 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:1097 +#: library/curses.rst:1099 msgid "" "If *flag* is ``False``, cursor will always be at \"cursor position\" after " "an update." msgstr "" -#: library/curses.rst:1102 +#: library/curses.rst:1104 msgid "Move cursor to ``(new_y, new_x)``." msgstr "" -#: library/curses.rst:1107 +#: library/curses.rst:1109 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:1114 +#: library/curses.rst:1116 msgid "Move the window so its upper-left corner is at ``(new_y, new_x)``." msgstr "" -#: library/curses.rst:1119 +#: library/curses.rst:1121 msgid "If *flag* is ``True``, :meth:`getch` will be non-blocking." msgstr "" -#: library/curses.rst:1124 +#: library/curses.rst:1126 msgid "If *flag* is ``True``, escape sequences will not be timed out." msgstr "" -#: library/curses.rst:1126 +#: library/curses.rst:1128 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:1132 +#: library/curses.rst:1134 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:1139 +#: library/curses.rst:1141 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, " @@ -1291,7 +1291,7 @@ msgid "" "contents of *destwin*." msgstr "" -#: library/curses.rst:1144 +#: library/curses.rst:1146 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 " @@ -1299,7 +1299,7 @@ msgid "" "in the destination window." msgstr "" -#: library/curses.rst:1152 +#: library/curses.rst:1154 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 " @@ -1307,7 +1307,7 @@ msgid "" "the old contents of *destwin*." msgstr "" -#: library/curses.rst:1157 +#: library/curses.rst:1159 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 " @@ -1315,31 +1315,31 @@ msgid "" "the destination window." msgstr "" -#: library/curses.rst:1165 +#: library/curses.rst:1167 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:1171 +#: library/curses.rst:1173 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:1177 +#: library/curses.rst:1179 msgid "" "Touch the entire window, causing it to be completely redrawn on the next :" "meth:`refresh` call." msgstr "" -#: library/curses.rst:1183 +#: library/curses.rst:1185 msgid "" "Update the display immediately (sync actual screen with previous drawing/" "deleting methods)." msgstr "" -#: library/curses.rst:1186 +#: library/curses.rst:1188 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 " @@ -1354,7 +1354,7 @@ msgid "" "*smincol* are treated as if they were zero." msgstr "" -#: library/curses.rst:1200 +#: library/curses.rst:1202 msgid "" "Reallocate storage for a curses window to adjust its dimensions to the " "specified values. If either dimension is larger than the current values, " @@ -1362,11 +1362,11 @@ msgid "" "rendition (as set by :meth:`bkgdset`) merged into them." msgstr "" -#: library/curses.rst:1208 +#: library/curses.rst:1210 msgid "Scroll the screen or scrolling region upward by *lines* lines." msgstr "" -#: library/curses.rst:1213 +#: library/curses.rst:1215 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 " @@ -1376,54 +1376,54 @@ msgid "" "scrolling effect on the terminal, it is also necessary to call :meth:`idlok`." msgstr "" -#: library/curses.rst:1223 +#: library/curses.rst:1225 msgid "" "Set the scrolling region from line *top* to line *bottom*. All scrolling " "actions will take place in this region." msgstr "" -#: library/curses.rst:1229 +#: library/curses.rst:1231 msgid "" "Turn off the standout attribute. On some terminals this has the side effect " "of turning off all attributes." msgstr "" -#: library/curses.rst:1235 +#: library/curses.rst:1237 msgid "Turn on attribute *A_STANDOUT*." msgstr "" -#: library/curses.rst:1248 +#: library/curses.rst:1250 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:1251 +#: library/curses.rst:1253 msgid "" "By default, the sub-window will extend from the specified position to the " "lower right corner of the window." msgstr "" -#: library/curses.rst:1257 +#: library/curses.rst:1259 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:1264 +#: library/curses.rst:1266 msgid "" "If *flag* is ``True``, then :meth:`syncup` is called automatically whenever " "there is a change in the window." msgstr "" -#: library/curses.rst:1270 +#: library/curses.rst:1272 msgid "" "Touch all locations in ancestors of the window that have been changed in " "the window." msgstr "" -#: library/curses.rst:1276 +#: library/curses.rst:1278 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). " @@ -1433,7 +1433,7 @@ msgid "" "still no input at the end of that time." msgstr "" -#: library/curses.rst:1286 +#: library/curses.rst:1288 msgid "" "Pretend *count* lines have been changed, starting with line *start*. If " "*changed* is supplied, it specifies whether the affected lines are marked as " @@ -1441,49 +1441,49 @@ msgid "" "``=False``)." msgstr "" -#: library/curses.rst:1293 +#: library/curses.rst:1295 msgid "" "Pretend the whole window has been changed, for purposes of drawing " "optimizations." msgstr "" -#: library/curses.rst:1299 +#: library/curses.rst:1301 msgid "" "Mark all lines in the window as unchanged since the last call to :meth:" "`refresh`." msgstr "" -#: library/curses.rst:1306 +#: library/curses.rst:1308 msgid "" "Display a vertical line starting at ``(y, x)`` with length *n* consisting of " "the character *ch* with attributes *attr*." msgstr "" -#: library/curses.rst:1311 +#: library/curses.rst:1313 msgid "Constants" msgstr "" -#: library/curses.rst:1313 +#: library/curses.rst:1315 msgid "The :mod:`curses` module defines the following data members:" msgstr "" -#: library/curses.rst:1318 +#: library/curses.rst:1320 msgid "" "Some curses routines that return an integer, such as :meth:`~window." "getch`, return :const:`ERR` upon failure." msgstr "" -#: library/curses.rst:1324 +#: library/curses.rst:1326 msgid "" "Some curses routines that return an integer, such as :func:`napms`, " "return :const:`OK` upon success." msgstr "" -#: library/curses.rst:1331 +#: library/curses.rst:1332 msgid "A bytes object representing the current version of the module." msgstr "" -#: library/curses.rst:1336 +#: library/curses.rst:1337 msgid "" "A named tuple containing the three components of the ncurses library " "version: *major*, *minor*, and *patch*. All values are integers. The " @@ -1491,535 +1491,535 @@ msgid "" "is equivalent to ``curses.ncurses_version.major`` and so on." msgstr "" -#: library/curses.rst:1341 +#: library/curses.rst:1342 msgid "Availability: if the ncurses library is used." msgstr "" -#: library/curses.rst:1347 +#: library/curses.rst:1348 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:1352 +#: library/curses.rst:1353 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:1357 +#: library/curses.rst:1358 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:1364 +#: library/curses.rst:1365 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:1370 +#: library/curses.rst:1371 msgid "" "Some constants are available to specify character cell attributes. The exact " "constants available are system dependent." msgstr "" -#: library/curses.rst:1374 +#: library/curses.rst:1375 msgid "Attribute" msgstr "" -#: library/curses.rst:1419 library/curses.rst:1757 +#: library/curses.rst:1420 library/curses.rst:1758 msgid "Meaning" msgstr "" -#: library/curses.rst:1376 +#: library/curses.rst:1377 msgid "Alternate character set mode" msgstr "" -#: library/curses.rst:1378 +#: library/curses.rst:1379 msgid "Blink mode" msgstr "" -#: library/curses.rst:1380 +#: library/curses.rst:1381 msgid "Bold mode" msgstr "" -#: library/curses.rst:1382 +#: library/curses.rst:1383 msgid "Dim mode" msgstr "" -#: library/curses.rst:1384 +#: library/curses.rst:1385 msgid "Invisible or blank mode" msgstr "" -#: library/curses.rst:1386 +#: library/curses.rst:1387 msgid "Italic mode" msgstr "" -#: library/curses.rst:1388 +#: library/curses.rst:1389 msgid "Normal attribute" msgstr "" -#: library/curses.rst:1390 +#: library/curses.rst:1391 msgid "Protected mode" msgstr "" -#: library/curses.rst:1392 +#: library/curses.rst:1393 msgid "Reverse background and foreground colors" msgstr "" -#: library/curses.rst:1395 +#: library/curses.rst:1396 msgid "Standout mode" msgstr "" -#: library/curses.rst:1397 +#: library/curses.rst:1398 msgid "Underline mode" msgstr "" -#: library/curses.rst:1399 +#: library/curses.rst:1400 msgid "Horizontal highlight" msgstr "" -#: library/curses.rst:1401 +#: library/curses.rst:1402 msgid "Left highlight" msgstr "" -#: library/curses.rst:1403 +#: library/curses.rst:1404 msgid "Low highlight" msgstr "" -#: library/curses.rst:1405 +#: library/curses.rst:1406 msgid "Right highlight" msgstr "" -#: library/curses.rst:1407 +#: library/curses.rst:1408 msgid "Top highlight" msgstr "" -#: library/curses.rst:1409 +#: library/curses.rst:1410 msgid "Vertical highlight" msgstr "" -#: library/curses.rst:1412 +#: library/curses.rst:1413 msgid "``A_ITALIC`` was added." msgstr "" -#: library/curses.rst:1415 +#: library/curses.rst:1416 msgid "" "Several constants are available to extract corresponding attributes returned " "by some methods." msgstr "" -#: library/curses.rst:1419 +#: library/curses.rst:1420 msgid "Bit-mask" msgstr "" -#: library/curses.rst:1421 +#: library/curses.rst:1422 msgid "Bit-mask to extract attributes" msgstr "" -#: library/curses.rst:1424 +#: library/curses.rst:1425 msgid "Bit-mask to extract a character" msgstr "" -#: library/curses.rst:1427 +#: library/curses.rst:1428 msgid "Bit-mask to extract color-pair field information" msgstr "" -#: library/curses.rst:1431 +#: library/curses.rst:1432 msgid "" "Keys are referred to by integer constants with names starting with " "``KEY_``. The exact keycaps available are system dependent." msgstr "" -#: library/curses.rst:1437 +#: library/curses.rst:1438 msgid "Key constant" msgstr "" -#: library/curses.rst:1437 +#: library/curses.rst:1438 msgid "Key" msgstr "" -#: library/curses.rst:1439 +#: library/curses.rst:1440 msgid "Minimum key value" msgstr "" -#: library/curses.rst:1441 +#: library/curses.rst:1442 msgid "Break key (unreliable)" msgstr "" -#: library/curses.rst:1443 +#: library/curses.rst:1444 msgid "Down-arrow" msgstr "" -#: library/curses.rst:1445 +#: library/curses.rst:1446 msgid "Up-arrow" msgstr "" -#: library/curses.rst:1447 +#: library/curses.rst:1448 msgid "Left-arrow" msgstr "" -#: library/curses.rst:1449 +#: library/curses.rst:1450 msgid "Right-arrow" msgstr "" -#: library/curses.rst:1451 +#: library/curses.rst:1452 msgid "Home key (upward+left arrow)" msgstr "" -#: library/curses.rst:1453 +#: library/curses.rst:1454 msgid "Backspace (unreliable)" msgstr "" -#: library/curses.rst:1455 +#: library/curses.rst:1456 msgid "Function keys. Up to 64 function keys are supported." msgstr "" -#: library/curses.rst:1458 +#: library/curses.rst:1459 msgid "Value of function key *n*" msgstr "" -#: library/curses.rst:1460 +#: library/curses.rst:1461 msgid "Delete line" msgstr "" -#: library/curses.rst:1462 +#: library/curses.rst:1463 msgid "Insert line" msgstr "" -#: library/curses.rst:1464 +#: library/curses.rst:1465 msgid "Delete character" msgstr "" -#: library/curses.rst:1466 +#: library/curses.rst:1467 msgid "Insert char or enter insert mode" msgstr "" -#: library/curses.rst:1468 +#: library/curses.rst:1469 msgid "Exit insert char mode" msgstr "" -#: library/curses.rst:1470 +#: library/curses.rst:1471 msgid "Clear screen" msgstr "" -#: library/curses.rst:1472 +#: library/curses.rst:1473 msgid "Clear to end of screen" msgstr "" -#: library/curses.rst:1474 +#: library/curses.rst:1475 msgid "Clear to end of line" msgstr "" -#: library/curses.rst:1476 +#: library/curses.rst:1477 msgid "Scroll 1 line forward" msgstr "" -#: library/curses.rst:1478 +#: library/curses.rst:1479 msgid "Scroll 1 line backward (reverse)" msgstr "" -#: library/curses.rst:1480 +#: library/curses.rst:1481 msgid "Next page" msgstr "" -#: library/curses.rst:1482 +#: library/curses.rst:1483 msgid "Previous page" msgstr "" -#: library/curses.rst:1484 +#: library/curses.rst:1485 msgid "Set tab" msgstr "" -#: library/curses.rst:1486 +#: library/curses.rst:1487 msgid "Clear tab" msgstr "" -#: library/curses.rst:1488 +#: library/curses.rst:1489 msgid "Clear all tabs" msgstr "" -#: library/curses.rst:1490 +#: library/curses.rst:1491 msgid "Enter or send (unreliable)" msgstr "" -#: library/curses.rst:1492 +#: library/curses.rst:1493 msgid "Soft (partial) reset (unreliable)" msgstr "" -#: library/curses.rst:1494 +#: library/curses.rst:1495 msgid "Reset or hard reset (unreliable)" msgstr "" -#: library/curses.rst:1496 +#: library/curses.rst:1497 msgid "Print" msgstr "" -#: library/curses.rst:1498 +#: library/curses.rst:1499 msgid "Home down or bottom (lower left)" msgstr "" -#: library/curses.rst:1500 +#: library/curses.rst:1501 msgid "Upper left of keypad" msgstr "" -#: library/curses.rst:1502 +#: library/curses.rst:1503 msgid "Upper right of keypad" msgstr "" -#: library/curses.rst:1504 +#: library/curses.rst:1505 msgid "Center of keypad" msgstr "" -#: library/curses.rst:1506 +#: library/curses.rst:1507 msgid "Lower left of keypad" msgstr "" -#: library/curses.rst:1508 +#: library/curses.rst:1509 msgid "Lower right of keypad" msgstr "" -#: library/curses.rst:1510 +#: library/curses.rst:1511 msgid "Back tab" msgstr "" -#: library/curses.rst:1512 +#: library/curses.rst:1513 msgid "Beg (beginning)" msgstr "" -#: library/curses.rst:1514 +#: library/curses.rst:1515 msgid "Cancel" msgstr "" -#: library/curses.rst:1516 +#: library/curses.rst:1517 msgid "Close" msgstr "" -#: library/curses.rst:1518 +#: library/curses.rst:1519 msgid "Cmd (command)" msgstr "" -#: library/curses.rst:1520 +#: library/curses.rst:1521 msgid "Copy" msgstr "" -#: library/curses.rst:1522 +#: library/curses.rst:1523 msgid "Create" msgstr "" -#: library/curses.rst:1524 +#: library/curses.rst:1525 msgid "End" msgstr "" -#: library/curses.rst:1526 +#: library/curses.rst:1527 msgid "Exit" msgstr "" -#: library/curses.rst:1528 +#: library/curses.rst:1529 msgid "Find" msgstr "" -#: library/curses.rst:1530 +#: library/curses.rst:1531 msgid "Help" msgstr "" -#: library/curses.rst:1532 +#: library/curses.rst:1533 msgid "Mark" msgstr "" -#: library/curses.rst:1534 +#: library/curses.rst:1535 msgid "Message" msgstr "" -#: library/curses.rst:1536 +#: library/curses.rst:1537 msgid "Move" msgstr "" -#: library/curses.rst:1538 +#: library/curses.rst:1539 msgid "Next" msgstr "" -#: library/curses.rst:1540 +#: library/curses.rst:1541 msgid "Open" msgstr "" -#: library/curses.rst:1542 +#: library/curses.rst:1543 msgid "Options" msgstr "" -#: library/curses.rst:1544 +#: library/curses.rst:1545 msgid "Prev (previous)" msgstr "" -#: library/curses.rst:1546 +#: library/curses.rst:1547 msgid "Redo" msgstr "" -#: library/curses.rst:1548 +#: library/curses.rst:1549 msgid "Ref (reference)" msgstr "" -#: library/curses.rst:1550 +#: library/curses.rst:1551 msgid "Refresh" msgstr "" -#: library/curses.rst:1552 +#: library/curses.rst:1553 msgid "Replace" msgstr "" -#: library/curses.rst:1554 +#: library/curses.rst:1555 msgid "Restart" msgstr "" -#: library/curses.rst:1556 +#: library/curses.rst:1557 msgid "Resume" msgstr "" -#: library/curses.rst:1558 +#: library/curses.rst:1559 msgid "Save" msgstr "" -#: library/curses.rst:1560 +#: library/curses.rst:1561 msgid "Shifted Beg (beginning)" msgstr "" -#: library/curses.rst:1562 +#: library/curses.rst:1563 msgid "Shifted Cancel" msgstr "" -#: library/curses.rst:1564 +#: library/curses.rst:1565 msgid "Shifted Command" msgstr "" -#: library/curses.rst:1566 +#: library/curses.rst:1567 msgid "Shifted Copy" msgstr "" -#: library/curses.rst:1568 +#: library/curses.rst:1569 msgid "Shifted Create" msgstr "" -#: library/curses.rst:1570 +#: library/curses.rst:1571 msgid "Shifted Delete char" msgstr "" -#: library/curses.rst:1572 +#: library/curses.rst:1573 msgid "Shifted Delete line" msgstr "" -#: library/curses.rst:1574 +#: library/curses.rst:1575 msgid "Select" msgstr "" -#: library/curses.rst:1576 +#: library/curses.rst:1577 msgid "Shifted End" msgstr "" -#: library/curses.rst:1578 +#: library/curses.rst:1579 msgid "Shifted Clear line" msgstr "" -#: library/curses.rst:1580 +#: library/curses.rst:1581 msgid "Shifted Exit" msgstr "" -#: library/curses.rst:1582 +#: library/curses.rst:1583 msgid "Shifted Find" msgstr "" -#: library/curses.rst:1584 +#: library/curses.rst:1585 msgid "Shifted Help" msgstr "" -#: library/curses.rst:1586 +#: library/curses.rst:1587 msgid "Shifted Home" msgstr "" -#: library/curses.rst:1588 +#: library/curses.rst:1589 msgid "Shifted Input" msgstr "" -#: library/curses.rst:1590 +#: library/curses.rst:1591 msgid "Shifted Left arrow" msgstr "" -#: library/curses.rst:1592 +#: library/curses.rst:1593 msgid "Shifted Message" msgstr "" -#: library/curses.rst:1594 +#: library/curses.rst:1595 msgid "Shifted Move" msgstr "" -#: library/curses.rst:1596 +#: library/curses.rst:1597 msgid "Shifted Next" msgstr "" -#: library/curses.rst:1598 +#: library/curses.rst:1599 msgid "Shifted Options" msgstr "" -#: library/curses.rst:1600 +#: library/curses.rst:1601 msgid "Shifted Prev" msgstr "" -#: library/curses.rst:1602 +#: library/curses.rst:1603 msgid "Shifted Print" msgstr "" -#: library/curses.rst:1604 +#: library/curses.rst:1605 msgid "Shifted Redo" msgstr "" -#: library/curses.rst:1606 +#: library/curses.rst:1607 msgid "Shifted Replace" msgstr "" -#: library/curses.rst:1608 +#: library/curses.rst:1609 msgid "Shifted Right arrow" msgstr "" -#: library/curses.rst:1610 +#: library/curses.rst:1611 msgid "Shifted Resume" msgstr "" -#: library/curses.rst:1612 +#: library/curses.rst:1613 msgid "Shifted Save" msgstr "" -#: library/curses.rst:1614 +#: library/curses.rst:1615 msgid "Shifted Suspend" msgstr "" -#: library/curses.rst:1616 +#: library/curses.rst:1617 msgid "Shifted Undo" msgstr "" -#: library/curses.rst:1618 +#: library/curses.rst:1619 msgid "Suspend" msgstr "" -#: library/curses.rst:1620 +#: library/curses.rst:1621 msgid "Undo" msgstr "" -#: library/curses.rst:1622 +#: library/curses.rst:1623 msgid "Mouse event has occurred" msgstr "" -#: library/curses.rst:1624 +#: library/curses.rst:1625 msgid "Terminal resize event" msgstr "" -#: library/curses.rst:1626 +#: library/curses.rst:1627 msgid "Maximum key value" msgstr "" -#: library/curses.rst:1629 +#: library/curses.rst:1630 msgid "" "On VT100s and their software emulations, such as X terminal emulators, there " "are normally at least four function keys (:const:`KEY_F1 `, :const:" @@ -2031,63 +2031,63 @@ msgid "" "keypad mappings are standard:" msgstr "" -#: library/curses.rst:1638 +#: library/curses.rst:1639 msgid "Keycap" msgstr "" -#: library/curses.rst:1783 library/curses.rst:1907 +#: library/curses.rst:1784 library/curses.rst:1908 msgid "Constant" msgstr "" -#: library/curses.rst:1640 +#: library/curses.rst:1641 msgid ":kbd:`Insert`" msgstr "" -#: library/curses.rst:1640 +#: library/curses.rst:1641 msgid "KEY_IC" msgstr "" -#: library/curses.rst:1642 +#: library/curses.rst:1643 msgid ":kbd:`Delete`" msgstr "" -#: library/curses.rst:1642 +#: library/curses.rst:1643 msgid "KEY_DC" msgstr "" -#: library/curses.rst:1644 +#: library/curses.rst:1645 msgid ":kbd:`Home`" msgstr "" -#: library/curses.rst:1644 +#: library/curses.rst:1645 msgid "KEY_HOME" msgstr "" -#: library/curses.rst:1646 +#: library/curses.rst:1647 msgid ":kbd:`End`" msgstr "" -#: library/curses.rst:1646 +#: library/curses.rst:1647 msgid "KEY_END" msgstr "" -#: library/curses.rst:1648 +#: library/curses.rst:1649 msgid ":kbd:`Page Up`" msgstr "" -#: library/curses.rst:1648 +#: library/curses.rst:1649 msgid "KEY_PPAGE" msgstr "" -#: library/curses.rst:1650 +#: library/curses.rst:1651 msgid ":kbd:`Page Down`" msgstr "" -#: library/curses.rst:1650 +#: library/curses.rst:1651 msgid "KEY_NPAGE" msgstr "" -#: library/curses.rst:1655 +#: library/curses.rst:1656 msgid "" "The following table lists characters from the alternate character set. These " "are inherited from the VT100 terminal, and will generally be available on " @@ -2095,268 +2095,268 @@ msgid "" "available, curses falls back on a crude printable ASCII approximation." msgstr "" -#: library/curses.rst:1662 +#: library/curses.rst:1663 msgid "These are available only after :func:`initscr` has been called." msgstr "" -#: library/curses.rst:1665 +#: library/curses.rst:1666 msgid "ACS code" msgstr "" -#: library/curses.rst:1667 +#: library/curses.rst:1668 msgid "alternate name for upper right corner" msgstr "" -#: library/curses.rst:1669 +#: library/curses.rst:1670 msgid "solid square block" msgstr "" -#: library/curses.rst:1671 +#: library/curses.rst:1672 msgid "board of squares" msgstr "" -#: library/curses.rst:1673 +#: library/curses.rst:1674 msgid "alternate name for horizontal line" msgstr "" -#: library/curses.rst:1675 +#: library/curses.rst:1676 msgid "alternate name for upper left corner" msgstr "" -#: library/curses.rst:1677 +#: library/curses.rst:1678 msgid "alternate name for top tee" msgstr "" -#: library/curses.rst:1679 +#: library/curses.rst:1680 msgid "bottom tee" msgstr "" -#: library/curses.rst:1681 +#: library/curses.rst:1682 msgid "bullet" msgstr "" -#: library/curses.rst:1683 +#: library/curses.rst:1684 msgid "checker board (stipple)" msgstr "" -#: library/curses.rst:1685 +#: library/curses.rst:1686 msgid "arrow pointing down" msgstr "" -#: library/curses.rst:1687 +#: library/curses.rst:1688 msgid "degree symbol" msgstr "" -#: library/curses.rst:1689 +#: library/curses.rst:1690 msgid "diamond" msgstr "" -#: library/curses.rst:1691 +#: library/curses.rst:1692 msgid "greater-than-or-equal-to" msgstr "" -#: library/curses.rst:1693 +#: library/curses.rst:1694 msgid "horizontal line" msgstr "" -#: library/curses.rst:1695 +#: library/curses.rst:1696 msgid "lantern symbol" msgstr "" -#: library/curses.rst:1697 +#: library/curses.rst:1698 msgid "left arrow" msgstr "" -#: library/curses.rst:1699 +#: library/curses.rst:1700 msgid "less-than-or-equal-to" msgstr "" -#: library/curses.rst:1701 +#: library/curses.rst:1702 msgid "lower left-hand corner" msgstr "" -#: library/curses.rst:1703 +#: library/curses.rst:1704 msgid "lower right-hand corner" msgstr "" -#: library/curses.rst:1705 +#: library/curses.rst:1706 msgid "left tee" msgstr "" -#: library/curses.rst:1707 +#: library/curses.rst:1708 msgid "not-equal sign" msgstr "" -#: library/curses.rst:1709 +#: library/curses.rst:1710 msgid "letter pi" msgstr "" -#: library/curses.rst:1711 +#: library/curses.rst:1712 msgid "plus-or-minus sign" msgstr "" -#: library/curses.rst:1713 +#: library/curses.rst:1714 msgid "big plus sign" msgstr "" -#: library/curses.rst:1715 +#: library/curses.rst:1716 msgid "right arrow" msgstr "" -#: library/curses.rst:1717 +#: library/curses.rst:1718 msgid "right tee" msgstr "" -#: library/curses.rst:1719 +#: library/curses.rst:1720 msgid "scan line 1" msgstr "" -#: library/curses.rst:1721 +#: library/curses.rst:1722 msgid "scan line 3" msgstr "" -#: library/curses.rst:1723 +#: library/curses.rst:1724 msgid "scan line 7" msgstr "" -#: library/curses.rst:1725 +#: library/curses.rst:1726 msgid "scan line 9" msgstr "" -#: library/curses.rst:1727 +#: library/curses.rst:1728 msgid "alternate name for lower right corner" msgstr "" -#: library/curses.rst:1729 +#: library/curses.rst:1730 msgid "alternate name for vertical line" msgstr "" -#: library/curses.rst:1731 +#: library/curses.rst:1732 msgid "alternate name for right tee" msgstr "" -#: library/curses.rst:1733 +#: library/curses.rst:1734 msgid "alternate name for lower left corner" msgstr "" -#: library/curses.rst:1735 +#: library/curses.rst:1736 msgid "alternate name for bottom tee" msgstr "" -#: library/curses.rst:1737 +#: library/curses.rst:1738 msgid "alternate name for left tee" msgstr "" -#: library/curses.rst:1739 +#: library/curses.rst:1740 msgid "alternate name for crossover or big plus" msgstr "" -#: library/curses.rst:1741 +#: library/curses.rst:1742 msgid "pound sterling" msgstr "" -#: library/curses.rst:1743 +#: library/curses.rst:1744 msgid "top tee" msgstr "" -#: library/curses.rst:1745 +#: library/curses.rst:1746 msgid "up arrow" msgstr "" -#: library/curses.rst:1747 +#: library/curses.rst:1748 msgid "upper left corner" msgstr "" -#: library/curses.rst:1749 +#: library/curses.rst:1750 msgid "upper right corner" msgstr "" -#: library/curses.rst:1751 +#: library/curses.rst:1752 msgid "vertical line" msgstr "" -#: library/curses.rst:1754 +#: library/curses.rst:1755 msgid "" "The following table lists mouse button constants used by :meth:`getmouse`:" msgstr "" -#: library/curses.rst:1757 +#: library/curses.rst:1758 msgid "Mouse button constant" msgstr "" -#: library/curses.rst:1759 +#: library/curses.rst:1760 msgid "Mouse button *n* pressed" msgstr "" -#: library/curses.rst:1761 +#: library/curses.rst:1762 msgid "Mouse button *n* released" msgstr "" -#: library/curses.rst:1763 +#: library/curses.rst:1764 msgid "Mouse button *n* clicked" msgstr "" -#: library/curses.rst:1765 +#: library/curses.rst:1766 msgid "Mouse button *n* double clicked" msgstr "" -#: library/curses.rst:1767 +#: library/curses.rst:1768 msgid "Mouse button *n* triple clicked" msgstr "" -#: library/curses.rst:1769 +#: library/curses.rst:1770 msgid "Shift was down during button state change" msgstr "" -#: library/curses.rst:1773 +#: library/curses.rst:1774 msgid "Control was down during button state change" msgstr "" -#: library/curses.rst:1780 +#: library/curses.rst:1781 msgid "The following table lists the predefined colors:" msgstr "" -#: library/curses.rst:1783 +#: library/curses.rst:1784 msgid "Color" msgstr "" -#: library/curses.rst:1785 +#: library/curses.rst:1786 msgid "Black" msgstr "" -#: library/curses.rst:1787 +#: library/curses.rst:1788 msgid "Blue" msgstr "" -#: library/curses.rst:1789 +#: library/curses.rst:1790 msgid "Cyan (light greenish blue)" msgstr "" -#: library/curses.rst:1791 +#: library/curses.rst:1792 msgid "Green" msgstr "" -#: library/curses.rst:1793 +#: library/curses.rst:1794 msgid "Magenta (purplish red)" msgstr "" -#: library/curses.rst:1795 +#: library/curses.rst:1796 msgid "Red" msgstr "" -#: library/curses.rst:1797 +#: library/curses.rst:1798 msgid "White" msgstr "" -#: library/curses.rst:1799 +#: library/curses.rst:1800 msgid "Yellow" msgstr "" -#: library/curses.rst:1804 +#: library/curses.rst:1805 msgid ":mod:`curses.textpad` --- Text input widget for curses programs" msgstr "" -#: library/curses.rst:1812 +#: library/curses.rst:1813 msgid "" "The :mod:`curses.textpad` module provides a :class:`Textbox` class that " "handles elementary text editing in a curses window, supporting a set of " @@ -2366,11 +2366,11 @@ msgid "" "purposes." msgstr "" -#: library/curses.rst:1818 +#: library/curses.rst:1819 msgid "The module :mod:`curses.textpad` defines the following function:" msgstr "" -#: library/curses.rst:1823 +#: library/curses.rst:1824 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 " @@ -2382,15 +2382,15 @@ msgid "" "will be drawn with ASCII dashes, vertical bars, and plus signs." msgstr "" -#: library/curses.rst:1836 +#: library/curses.rst:1837 msgid "Textbox objects" msgstr "" -#: library/curses.rst:1838 +#: library/curses.rst:1839 msgid "You can instantiate a :class:`Textbox` object as follows:" msgstr "" -#: library/curses.rst:1843 +#: library/curses.rst:1844 msgid "" "Return a textbox widget object. The *win* argument should be a curses :ref:" "`window ` object in which the textbox is to be " @@ -2399,11 +2399,11 @@ msgid "" "instance's :attr:`stripspaces` flag is initially on." msgstr "" -#: library/curses.rst:1849 +#: library/curses.rst:1850 msgid ":class:`Textbox` objects have the following methods:" msgstr "" -#: library/curses.rst:1854 +#: library/curses.rst:1855 msgid "" "This is the entry point you will normally use. It accepts editing " "keystrokes until one of the termination keystrokes is entered. If " @@ -2414,167 +2414,167 @@ msgid "" "`stripspaces` attribute." msgstr "" -#: library/curses.rst:1865 +#: library/curses.rst:1866 msgid "" "Process a single command keystroke. Here are the supported special " "keystrokes:" msgstr "" -#: library/curses.rst:1907 +#: library/curses.rst:1908 msgid "Keystroke" msgstr "" -#: library/curses.rst:1869 +#: library/curses.rst:1870 msgid "Action" msgstr "" -#: library/curses.rst:1871 +#: library/curses.rst:1872 msgid ":kbd:`Control-A`" msgstr "" -#: library/curses.rst:1871 +#: library/curses.rst:1872 msgid "Go to left edge of window." msgstr "" -#: library/curses.rst:1909 +#: library/curses.rst:1910 msgid ":kbd:`Control-B`" msgstr "" -#: library/curses.rst:1873 +#: library/curses.rst:1874 msgid "Cursor left, wrapping to previous line if appropriate." msgstr "" -#: library/curses.rst:1876 +#: library/curses.rst:1877 msgid ":kbd:`Control-D`" msgstr "" -#: library/curses.rst:1876 +#: library/curses.rst:1877 msgid "Delete character under cursor." msgstr "" -#: library/curses.rst:1878 +#: library/curses.rst:1879 msgid ":kbd:`Control-E`" msgstr "" -#: library/curses.rst:1878 +#: library/curses.rst:1879 msgid "Go to right edge (stripspaces off) or end of line (stripspaces on)." msgstr "" -#: library/curses.rst:1911 +#: library/curses.rst:1912 msgid ":kbd:`Control-F`" msgstr "" -#: library/curses.rst:1881 +#: library/curses.rst:1882 msgid "Cursor right, wrapping to next line when appropriate." msgstr "" -#: library/curses.rst:1884 +#: library/curses.rst:1885 msgid ":kbd:`Control-G`" msgstr "" -#: library/curses.rst:1884 +#: library/curses.rst:1885 msgid "Terminate, returning the window contents." msgstr "" -#: library/curses.rst:1886 +#: library/curses.rst:1887 msgid ":kbd:`Control-H`" msgstr "" -#: library/curses.rst:1886 +#: library/curses.rst:1887 msgid "Delete character backward." msgstr "" -#: library/curses.rst:1888 +#: library/curses.rst:1889 msgid ":kbd:`Control-J`" msgstr "" -#: library/curses.rst:1888 +#: library/curses.rst:1889 msgid "Terminate if the window is 1 line, otherwise insert newline." msgstr "" -#: library/curses.rst:1891 +#: library/curses.rst:1892 msgid ":kbd:`Control-K`" msgstr "" -#: library/curses.rst:1891 +#: library/curses.rst:1892 msgid "If line is blank, delete it, otherwise clear to end of line." msgstr "" -#: library/curses.rst:1894 +#: library/curses.rst:1895 msgid ":kbd:`Control-L`" msgstr "" -#: library/curses.rst:1894 +#: library/curses.rst:1895 msgid "Refresh screen." msgstr "" -#: library/curses.rst:1915 +#: library/curses.rst:1916 msgid ":kbd:`Control-N`" msgstr "" -#: library/curses.rst:1896 +#: library/curses.rst:1897 msgid "Cursor down; move down one line." msgstr "" -#: library/curses.rst:1898 +#: library/curses.rst:1899 msgid ":kbd:`Control-O`" msgstr "" -#: library/curses.rst:1898 +#: library/curses.rst:1899 msgid "Insert a blank line at cursor location." msgstr "" -#: library/curses.rst:1913 +#: library/curses.rst:1914 msgid ":kbd:`Control-P`" msgstr "" -#: library/curses.rst:1900 +#: library/curses.rst:1901 msgid "Cursor up; move up one line." msgstr "" -#: library/curses.rst:1903 +#: library/curses.rst:1904 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:1909 +#: library/curses.rst:1910 msgid ":const:`~curses.KEY_LEFT`" msgstr "" -#: library/curses.rst:1911 +#: library/curses.rst:1912 msgid ":const:`~curses.KEY_RIGHT`" msgstr "" -#: library/curses.rst:1913 +#: library/curses.rst:1914 msgid ":const:`~curses.KEY_UP`" msgstr "" -#: library/curses.rst:1915 +#: library/curses.rst:1916 msgid ":const:`~curses.KEY_DOWN`" msgstr "" -#: library/curses.rst:1917 +#: library/curses.rst:1918 msgid ":const:`~curses.KEY_BACKSPACE`" msgstr "" -#: library/curses.rst:1917 +#: library/curses.rst:1918 msgid ":kbd:`Control-h`" msgstr "" -#: library/curses.rst:1920 +#: library/curses.rst:1921 msgid "" "All other keystrokes are treated as a command to insert the given character " "and move right (with line wrapping)." msgstr "" -#: library/curses.rst:1926 +#: library/curses.rst:1927 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:1932 +#: library/curses.rst:1933 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 9da31648..f9289051 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1b9c42fe..ad8055f9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -190,11 +190,13 @@ msgstr "" #: library/dataclasses.rst:124 msgid "" -"*unsafe_hash*: If ``False`` (the default), a :meth:`~object.__hash__` method " -"is generated according to how *eq* and *frozen* are set." +"*unsafe_hash*: If true, force ``dataclasses`` to create a :meth:`~object." +"__hash__` method, even though it may not be safe to do so. Otherwise, " +"generate a :meth:`~object.__hash__` method according to how *eq* and " +"*frozen* are set. The default value is ``False``." msgstr "" -#: library/dataclasses.rst:127 +#: library/dataclasses.rst:130 msgid "" ":meth:`!__hash__` is used by built-in :meth:`hash`, and when objects are " "added to hashed collections such as dictionaries and sets. Having a :meth:`!" @@ -204,7 +206,7 @@ msgid "" "flags in the ``@dataclass`` decorator." msgstr "" -#: library/dataclasses.rst:134 +#: library/dataclasses.rst:137 msgid "" "By default, ``@dataclass`` will not implicitly add a :meth:`~object." "__hash__` method unless it is safe to do so. Neither will it add or change " @@ -213,7 +215,7 @@ msgid "" "in the :meth:`!__hash__` documentation." msgstr "" -#: library/dataclasses.rst:140 +#: library/dataclasses.rst:143 msgid "" "If :meth:`!__hash__` is not explicitly defined, or if it is set to ``None``, " "then ``@dataclass`` *may* add an implicit :meth:`!__hash__` method. Although " @@ -223,7 +225,7 @@ msgid "" "and should be considered carefully." msgstr "" -#: library/dataclasses.rst:147 +#: library/dataclasses.rst:150 msgid "" "Here are the rules governing implicit creation of a :meth:`!__hash__` " "method. Note that you cannot both have an explicit :meth:`!__hash__` method " @@ -231,7 +233,7 @@ msgid "" "`TypeError`." msgstr "" -#: library/dataclasses.rst:152 +#: library/dataclasses.rst:155 msgid "" "If *eq* and *frozen* are both true, by default ``@dataclass`` will generate " "a :meth:`!__hash__` method for you. If *eq* is true and *frozen* is false, :" @@ -242,15 +244,20 @@ msgid "" "id-based hashing)." msgstr "" -#: library/dataclasses.rst:160 +#: 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:165 +#: 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 " @@ -260,7 +267,7 @@ msgid "" "__match_args__` will not be generated." msgstr "" -#: library/dataclasses.rst:174 +#: 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 " @@ -270,11 +277,11 @@ msgid "" "the :const:`KW_ONLY` section." msgstr "" -#: library/dataclasses.rst:182 +#: library/dataclasses.rst:187 msgid "Keyword-only fields are not included in :attr:`!__match_args__`." msgstr "" -#: library/dataclasses.rst:186 +#: 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 " @@ -282,7 +289,7 @@ msgid "" "exc:`TypeError` is raised." msgstr "" -#: library/dataclasses.rst:192 +#: library/dataclasses.rst:197 msgid "" "Calling no-arg :func:`super` in dataclasses using ``slots=True`` will result " "in the following exception being raised: ``TypeError: super(type, obj): obj " @@ -290,7 +297,7 @@ msgid "" "valid workaround. See :gh:`90562` for full details." msgstr "" -#: library/dataclasses.rst:199 +#: library/dataclasses.rst:204 msgid "" "Passing parameters to a base class :meth:`~object.__init_subclass__` when " "using ``slots=True`` will result in a :exc:`TypeError`. Either use " @@ -298,7 +305,7 @@ msgid "" "workaround. See :gh:`91126` for full details." msgstr "" -#: library/dataclasses.rst:207 +#: library/dataclasses.rst:212 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 " @@ -308,7 +315,7 @@ msgid "" "`!__slots__` may be any iterable, but *not* an iterator." msgstr "" -#: library/dataclasses.rst:217 +#: library/dataclasses.rst:222 msgid "" "*weakref_slot*: If true (the default is ``False``), add a slot named " "\"__weakref__\", which is required to make an instance :func:`weakref-able " @@ -316,13 +323,13 @@ msgid "" "specifying ``slots=True``." msgstr "" -#: library/dataclasses.rst:225 +#: library/dataclasses.rst:230 msgid "" "``field``\\s may optionally specify a default value, using normal Python " "syntax::" msgstr "" -#: library/dataclasses.rst:228 +#: library/dataclasses.rst:233 msgid "" "@dataclass\n" "class C:\n" @@ -330,24 +337,24 @@ msgid "" " b: int = 0 # assign a default value for 'b'" msgstr "" -#: library/dataclasses.rst:233 +#: library/dataclasses.rst:238 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:236 +#: library/dataclasses.rst:241 msgid "def __init__(self, a: int, b: int = 0):" msgstr "" -#: library/dataclasses.rst:238 +#: library/dataclasses.rst:243 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:244 +#: library/dataclasses.rst:249 msgid "" "For common and simple use cases, no other functionality is required. There " "are, however, some dataclass features that require additional per-field " @@ -356,7 +363,7 @@ msgid "" "function. For example::" msgstr "" -#: library/dataclasses.rst:250 +#: library/dataclasses.rst:255 msgid "" "@dataclass\n" "class C:\n" @@ -366,7 +373,7 @@ msgid "" "c.mylist += [1, 2, 3]" msgstr "" -#: library/dataclasses.rst:257 +#: library/dataclasses.rst:262 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 " @@ -374,18 +381,18 @@ msgid "" "meaning. No code should directly use the :const:`MISSING` value." msgstr "" -#: library/dataclasses.rst:262 +#: library/dataclasses.rst:267 msgid "The parameters to :func:`!field` are:" msgstr "" -#: library/dataclasses.rst:264 +#: library/dataclasses.rst:269 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:268 +#: library/dataclasses.rst:273 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 " @@ -394,19 +401,19 @@ msgid "" "*default_factory*." msgstr "" -#: library/dataclasses.rst:274 +#: library/dataclasses.rst:279 msgid "" "*init*: If true (the default), this field is included as a parameter to the " "generated :meth:`~object.__init__` method." msgstr "" -#: library/dataclasses.rst:277 +#: library/dataclasses.rst:282 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:280 +#: library/dataclasses.rst:285 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 " @@ -417,7 +424,7 @@ msgid "" "discouraged." msgstr "" -#: library/dataclasses.rst:288 +#: library/dataclasses.rst:293 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 " @@ -426,14 +433,14 @@ msgid "" "used for comparisons." msgstr "" -#: library/dataclasses.rst:294 +#: library/dataclasses.rst:299 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:298 +#: library/dataclasses.rst:303 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 " @@ -443,28 +450,28 @@ msgid "" "namespace in the metadata." msgstr "" -#: library/dataclasses.rst:306 +#: library/dataclasses.rst:311 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:310 +#: library/dataclasses.rst:315 msgid "Keyword-only fields are also not included in :attr:`!__match_args__`." msgstr "" -#: library/dataclasses.rst:314 +#: library/dataclasses.rst:319 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:328 msgid "" "@dataclass\n" "class C:\n" @@ -474,14 +481,14 @@ msgid "" " t: int = 20" msgstr "" -#: library/dataclasses.rst:330 +#: library/dataclasses.rst:335 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:341 msgid "" ":class:`!Field` objects describe each defined field. These objects are " "created internally, and are returned by the :func:`fields` module-level " @@ -489,28 +496,28 @@ msgid "" "directly. Its documented attributes are:" msgstr "" -#: library/dataclasses.rst:341 +#: library/dataclasses.rst:346 msgid ":attr:`!name`: The name of the field." msgstr "" -#: library/dataclasses.rst:342 +#: library/dataclasses.rst:347 msgid ":attr:`!type`: The type of the field." msgstr "" -#: library/dataclasses.rst:343 +#: library/dataclasses.rst:348 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:352 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:357 msgid "" "``InitVar[T]`` type annotations describe variables that are :ref:`init-only " "`. Fields annotated with :class:`!InitVar` " @@ -519,7 +526,7 @@ msgid "" "meth:`~object.__init__` and an optional :meth:`__post_init__`." msgstr "" -#: library/dataclasses.rst:361 +#: library/dataclasses.rst:366 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. " @@ -527,7 +534,7 @@ msgid "" "not return pseudo-fields which are ``ClassVar`` or ``InitVar``." msgstr "" -#: library/dataclasses.rst:368 +#: library/dataclasses.rst:373 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 " @@ -535,11 +542,11 @@ msgid "" "into. Other objects are copied with :func:`copy.deepcopy`." msgstr "" -#: library/dataclasses.rst:374 +#: library/dataclasses.rst:379 msgid "Example of using :func:`!asdict` on nested dataclasses::" msgstr "" -#: library/dataclasses.rst:376 +#: library/dataclasses.rst:381 msgid "" "@dataclass\n" "class Point:\n" @@ -557,20 +564,20 @@ msgid "" "assert asdict(c) == {'mylist': [{'x': 0, 'y': 0}, {'x': 10, 'y': 4}]}" msgstr "" -#: library/dataclasses.rst:411 +#: library/dataclasses.rst:416 msgid "To create a shallow copy, the following workaround may be used::" msgstr "" -#: library/dataclasses.rst:393 +#: library/dataclasses.rst:398 msgid "{field.name: getattr(obj, field.name) for field in fields(obj)}" msgstr "" -#: library/dataclasses.rst:395 +#: library/dataclasses.rst:400 msgid "" ":func:`!asdict` raises :exc:`TypeError` if *obj* is not a dataclass instance." msgstr "" -#: library/dataclasses.rst:400 +#: library/dataclasses.rst:405 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 " @@ -578,27 +585,27 @@ msgid "" "objects are copied with :func:`copy.deepcopy`." msgstr "" -#: library/dataclasses.rst:406 +#: library/dataclasses.rst:411 msgid "Continuing from the previous example::" msgstr "" -#: library/dataclasses.rst:408 +#: library/dataclasses.rst:413 msgid "" "assert astuple(p) == (10, 20)\n" "assert astuple(c) == ([(0, 0), (10, 4)],)" msgstr "" -#: library/dataclasses.rst:413 +#: library/dataclasses.rst:418 msgid "tuple(getattr(obj, field.name) for field in dataclasses.fields(obj))" msgstr "" -#: library/dataclasses.rst:415 +#: library/dataclasses.rst:420 msgid "" ":func:`!astuple` raises :exc:`TypeError` if *obj* is not a dataclass " "instance." msgstr "" -#: library/dataclasses.rst:420 +#: library/dataclasses.rst:425 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 " @@ -606,25 +613,25 @@ 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:435 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:439 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:`!__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:440 +#: library/dataclasses.rst:445 msgid "" "C = make_dataclass('C',\n" " [('x', int),\n" @@ -633,11 +640,11 @@ msgid "" " namespace={'add_one': lambda self: self.x + 1})" msgstr "" -#: library/dataclasses.rst:446 +#: library/dataclasses.rst:451 msgid "Is equivalent to::" msgstr "" -#: library/dataclasses.rst:448 +#: library/dataclasses.rst:453 msgid "" "@dataclass\n" "class C:\n" @@ -649,7 +656,7 @@ msgid "" " return self.x + 1" msgstr "" -#: library/dataclasses.rst:459 +#: library/dataclasses.rst:464 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 " @@ -657,27 +664,27 @@ msgid "" "`TypeError`." msgstr "" -#: library/dataclasses.rst:464 +#: library/dataclasses.rst:469 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:468 +#: library/dataclasses.rst:473 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:472 +#: library/dataclasses.rst:477 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:476 +#: library/dataclasses.rst:481 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 " @@ -688,36 +695,36 @@ msgid "" "instance copying." msgstr "" -#: library/dataclasses.rst:485 +#: library/dataclasses.rst:490 msgid "" "Dataclass instances are also supported by generic function :func:`copy." "replace`." msgstr "" -#: library/dataclasses.rst:489 +#: library/dataclasses.rst:494 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:492 +#: library/dataclasses.rst:497 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:496 +#: library/dataclasses.rst:501 msgid "" "def is_dataclass_instance(obj):\n" " return is_dataclass(obj) and not isinstance(obj, type)" msgstr "" -#: library/dataclasses.rst:501 +#: library/dataclasses.rst:506 msgid "A sentinel value signifying a missing default or default_factory." msgstr "" -#: library/dataclasses.rst:505 +#: library/dataclasses.rst:510 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 " @@ -728,13 +735,13 @@ msgid "" "the class is instantiated." msgstr "" -#: library/dataclasses.rst:514 +#: library/dataclasses.rst:519 msgid "" "In this example, the fields ``y`` and ``z`` will be marked as keyword-only " "fields::" msgstr "" -#: library/dataclasses.rst:516 +#: library/dataclasses.rst:521 msgid "" "@dataclass\n" "class Point:\n" @@ -746,24 +753,24 @@ msgid "" "p = Point(0, y=1.5, z=2.0)" msgstr "" -#: library/dataclasses.rst:525 +#: library/dataclasses.rst:530 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:532 +#: library/dataclasses.rst:537 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:539 +#: library/dataclasses.rst:544 msgid "Post-init processing" msgstr "" -#: library/dataclasses.rst:543 +#: library/dataclasses.rst:548 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 " @@ -773,13 +780,13 @@ msgid "" "automatically be called." msgstr "" -#: library/dataclasses.rst:550 +#: library/dataclasses.rst:555 msgid "" "Among other uses, this allows for initializing field values that depend on " "one or more other fields. For example::" msgstr "" -#: library/dataclasses.rst:553 +#: library/dataclasses.rst:558 msgid "" "@dataclass\n" "class C:\n" @@ -791,15 +798,15 @@ msgid "" " self.c = self.a + self.b" msgstr "" -#: library/dataclasses.rst:562 +#: library/dataclasses.rst:567 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:567 +#: library/dataclasses.rst:572 msgid "" "class Rectangle:\n" " def __init__(self, height, width):\n" @@ -814,59 +821,57 @@ msgid "" " super().__init__(self.side, self.side)" msgstr "" -#: library/dataclasses.rst:579 +#: library/dataclasses.rst:584 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:583 +#: library/dataclasses.rst:588 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:590 +#: library/dataclasses.rst:595 msgid "Class variables" msgstr "" -#: library/dataclasses.rst:592 +#: library/dataclasses.rst:597 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:603 +#: library/dataclasses.rst:608 msgid "Init-only variables" msgstr "" -#: library/dataclasses.rst:605 +#: library/dataclasses.rst:610 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:615 +#: library/dataclasses.rst:620 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:618 +#: library/dataclasses.rst:623 msgid "" "@dataclass\n" "class C:\n" @@ -881,49 +886,49 @@ msgid "" "c = C(10, database=my_database)" msgstr "" -#: library/dataclasses.rst:630 +#: library/dataclasses.rst:635 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:636 +#: library/dataclasses.rst:641 msgid "Frozen instances" msgstr "" -#: library/dataclasses.rst:638 +#: library/dataclasses.rst:643 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:644 +#: library/dataclasses.rst:649 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:653 +#: library/dataclasses.rst:658 msgid "Inheritance" msgstr "" -#: library/dataclasses.rst:655 +#: library/dataclasses.rst:660 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:665 +#: library/dataclasses.rst:670 msgid "" "@dataclass\n" "class Base:\n" @@ -936,28 +941,28 @@ msgid "" " x: int = 15" msgstr "" -#: library/dataclasses.rst:675 +#: library/dataclasses.rst:680 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:678 +#: library/dataclasses.rst:683 msgid "" "The generated :meth:`~object.__init__` method for :class:`!C` will look " "like::" msgstr "" -#: library/dataclasses.rst:680 +#: library/dataclasses.rst:685 msgid "def __init__(self, x: int = 15, y: int = 0, z: int = 10):" msgstr "" -#: library/dataclasses.rst:683 +#: library/dataclasses.rst:688 msgid "Re-ordering of keyword-only parameters in :meth:`!__init__`" msgstr "" -#: library/dataclasses.rst:685 +#: library/dataclasses.rst:690 msgid "" "After the parameters needed for :meth:`~object.__init__` are computed, any " "keyword-only parameters are moved to come after all regular (non-keyword-" @@ -965,14 +970,14 @@ msgid "" "implemented in Python: they must come after non-keyword-only parameters." msgstr "" -#: library/dataclasses.rst:691 +#: library/dataclasses.rst:696 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:694 +#: library/dataclasses.rst:699 msgid "" "@dataclass\n" "class Base:\n" @@ -987,45 +992,45 @@ msgid "" " t: int = field(kw_only=True, default=0)" msgstr "" -#: library/dataclasses.rst:706 +#: library/dataclasses.rst:711 msgid "The generated :meth:`!__init__` method for :class:`!D` will look like::" msgstr "" -#: library/dataclasses.rst:708 +#: library/dataclasses.rst:713 msgid "" "def __init__(self, x: Any = 15.0, z: int = 10, *, y: int = 0, w: int = 1, t: " "int = 0):" msgstr "" -#: library/dataclasses.rst:710 +#: library/dataclasses.rst:715 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:714 +#: library/dataclasses.rst:719 msgid "" "The relative ordering of keyword-only parameters is maintained in the re-" "ordered :meth:`!__init__` parameter list." msgstr "" -#: library/dataclasses.rst:719 +#: library/dataclasses.rst:724 msgid "Default factory functions" msgstr "" -#: library/dataclasses.rst:721 +#: library/dataclasses.rst:726 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:725 +#: library/dataclasses.rst:730 msgid "mylist: list = field(default_factory=list)" msgstr "" -#: library/dataclasses.rst:727 +#: library/dataclasses.rst:732 msgid "" "If a field is excluded from :meth:`~object.__init__` (using ``init=False``) " "and the field also specifies *default_factory*, then the default factory " @@ -1034,17 +1039,17 @@ msgid "" "initial value." msgstr "" -#: library/dataclasses.rst:734 +#: library/dataclasses.rst:739 msgid "Mutable default values" msgstr "" -#: library/dataclasses.rst:736 +#: library/dataclasses.rst:741 msgid "" "Python stores default member variable values in class attributes. Consider " "this example, not using dataclasses::" msgstr "" -#: library/dataclasses.rst:739 +#: library/dataclasses.rst:744 msgid "" "class C:\n" " x = []\n" @@ -1059,17 +1064,17 @@ msgid "" "assert o1.x is o2.x" msgstr "" -#: library/dataclasses.rst:751 +#: library/dataclasses.rst:756 msgid "" "Note that the two instances of class :class:`!C` share the same class " "variable :attr:`!x`, as expected." msgstr "" -#: library/dataclasses.rst:754 +#: library/dataclasses.rst:759 msgid "Using dataclasses, *if* this code was valid::" msgstr "" -#: library/dataclasses.rst:756 +#: library/dataclasses.rst:761 msgid "" "@dataclass\n" "class D:\n" @@ -1078,11 +1083,11 @@ msgid "" " self.x.append(element)" msgstr "" -#: library/dataclasses.rst:762 +#: library/dataclasses.rst:767 msgid "it would generate code similar to::" msgstr "" -#: library/dataclasses.rst:764 +#: library/dataclasses.rst:769 msgid "" "class D:\n" " x = []\n" @@ -1094,26 +1099,26 @@ msgid "" "assert D().x is D().x" msgstr "" -#: library/dataclasses.rst:773 +#: library/dataclasses.rst:778 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:784 +#: library/dataclasses.rst:789 msgid "" "Using default factory functions is a way to create new instances of mutable " "types as default values for fields::" msgstr "" -#: library/dataclasses.rst:787 +#: library/dataclasses.rst:792 msgid "" "@dataclass\n" "class D:\n" @@ -1122,48 +1127,48 @@ msgid "" "assert D().x is not D().x" msgstr "" -#: library/dataclasses.rst:793 +#: library/dataclasses.rst:798 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:800 +#: library/dataclasses.rst:805 msgid "Descriptor-typed fields" msgstr "" -#: library/dataclasses.rst:802 +#: library/dataclasses.rst:807 msgid "" "Fields that are assigned :ref:`descriptor objects ` as their " "default value have the following special behaviors:" msgstr "" -#: library/dataclasses.rst:805 +#: library/dataclasses.rst:810 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:809 +#: library/dataclasses.rst:814 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:813 +#: library/dataclasses.rst:818 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:823 +#: library/dataclasses.rst:828 msgid "" "class IntConversionDescriptor:\n" " def __init__(self, *, default):\n" @@ -1192,7 +1197,7 @@ msgid "" "print(i.quantity_on_hand) # 2" msgstr "" -#: library/dataclasses.rst:848 +#: library/dataclasses.rst:853 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 f9caffa6..fe9b3367 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3be57e66..745cfb4e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -407,53 +407,73 @@ msgid "" "(-1, 86399, 999999)" msgstr "" -#: library/datetime.rst:566 library/datetime.rst:1764 library/datetime.rst:2369 +#: library/datetime.rst:264 +msgid "" +"Since the string representation of :class:`!timedelta` objects can be " +"confusing, use the following recipe to produce a more readable format:" +msgstr "" + +#: library/datetime.rst:267 +msgid "" +">>> def pretty_timedelta(td):\n" +"... if td.days >= 0:\n" +"... return str(td)\n" +"... return f'-({-td!s})'\n" +"...\n" +">>> d = timedelta(hours=-1)\n" +">>> str(d) # not human-friendly\n" +"'-1 day, 23:00:00'\n" +">>> pretty_timedelta(d)\n" +"'-(1:00:00)'" +msgstr "" + +#: library/datetime.rst:582 library/datetime.rst:1780 library/datetime.rst:2385 msgid "Class attributes:" msgstr "" -#: library/datetime.rst:269 +#: library/datetime.rst:285 msgid "The most negative :class:`timedelta` object, ``timedelta(-999999999)``." msgstr "" -#: library/datetime.rst:274 +#: library/datetime.rst:290 msgid "" "The most positive :class:`timedelta` object, ``timedelta(days=999999999, " "hours=23, minutes=59, seconds=59, microseconds=999999)``." msgstr "" -#: library/datetime.rst:280 +#: library/datetime.rst:296 msgid "" "The smallest possible difference between non-equal :class:`timedelta` " "objects, ``timedelta(microseconds=1)``." msgstr "" -#: library/datetime.rst:283 +#: library/datetime.rst:299 msgid "" "Note that, because of normalization, ``timedelta.max`` is greater than ``-" "timedelta.min``. ``-timedelta.max`` is not representable as a :class:" "`timedelta` object." msgstr "" -#: library/datetime.rst:584 library/datetime.rst:1784 +#: library/datetime.rst:600 library/datetime.rst:1800 msgid "Instance attributes (read-only):" msgstr "" -#: library/datetime.rst:291 +#: library/datetime.rst:307 msgid "Between -999,999,999 and 999,999,999 inclusive." msgstr "" -#: library/datetime.rst:296 +#: library/datetime.rst:312 msgid "Between 0 and 86,399 inclusive." msgstr "" -#: library/datetime.rst:300 +#: library/datetime.rst:316 msgid "" "It is a somewhat common bug for code to unintentionally use this attribute " "when it is actually intended to get a :meth:`~timedelta.total_seconds` value " "instead:" msgstr "" -#: library/datetime.rst:304 +#: library/datetime.rst:320 msgid "" ">>> from datetime import timedelta\n" ">>> duration = timedelta(seconds=11235813)\n" @@ -463,190 +483,190 @@ msgid "" "11235813.0" msgstr "" -#: library/datetime.rst:315 +#: library/datetime.rst:331 msgid "Between 0 and 999,999 inclusive." msgstr "" -#: library/datetime.rst:601 library/datetime.rst:1199 +#: library/datetime.rst:617 library/datetime.rst:1215 msgid "Supported operations:" msgstr "" -#: library/datetime.rst:604 library/datetime.rst:1202 +#: library/datetime.rst:620 library/datetime.rst:1218 msgid "Operation" msgstr "" -#: library/datetime.rst:604 library/datetime.rst:1202 +#: library/datetime.rst:620 library/datetime.rst:1218 msgid "Result" msgstr "" -#: library/datetime.rst:325 +#: library/datetime.rst:341 msgid "``t1 = t2 + t3``" msgstr "" -#: library/datetime.rst:325 +#: library/datetime.rst:341 msgid "" "Sum of ``t2`` and ``t3``. Afterwards ``t1 - t2 == t3`` and ``t1 - t3 == t2`` " "are true. (1)" msgstr "" -#: library/datetime.rst:329 +#: library/datetime.rst:345 msgid "``t1 = t2 - t3``" msgstr "" -#: library/datetime.rst:329 +#: library/datetime.rst:345 msgid "" "Difference of ``t2`` and ``t3``. Afterwards ``t1 == t2 - t3`` and ``t2 == " "t1 + t3`` are true. (1)(6)" msgstr "" -#: library/datetime.rst:333 +#: library/datetime.rst:349 msgid "``t1 = t2 * i or t1 = i * t2``" msgstr "" -#: library/datetime.rst:333 +#: library/datetime.rst:349 msgid "" "Delta multiplied by an integer. Afterwards ``t1 // i == t2`` is true, " "provided ``i != 0``." msgstr "" -#: library/datetime.rst:337 +#: library/datetime.rst:353 msgid "In general, ``t1 * i == t1 * (i-1) + t1`` is true. (1)" msgstr "" -#: library/datetime.rst:340 +#: library/datetime.rst:356 msgid "``t1 = t2 * f or t1 = f * t2``" msgstr "" -#: library/datetime.rst:340 +#: library/datetime.rst:356 msgid "" "Delta multiplied by a float. The result is rounded to the nearest multiple " "of timedelta.resolution using round-half-to-even." msgstr "" -#: library/datetime.rst:344 +#: library/datetime.rst:360 msgid "``f = t2 / t3``" msgstr "" -#: library/datetime.rst:344 +#: library/datetime.rst:360 msgid "" "Division (3) of overall duration ``t2`` by interval unit ``t3``. Returns a :" "class:`float` object." msgstr "" -#: library/datetime.rst:348 +#: library/datetime.rst:364 msgid "``t1 = t2 / f or t1 = t2 / i``" msgstr "" -#: library/datetime.rst:348 +#: library/datetime.rst:364 msgid "" "Delta divided by a float or an int. The result is rounded to the nearest " "multiple of timedelta.resolution using round-half-to-even." msgstr "" -#: library/datetime.rst:352 +#: library/datetime.rst:368 msgid "``t1 = t2 // i`` or ``t1 = t2 // t3``" msgstr "" -#: library/datetime.rst:352 +#: library/datetime.rst:368 msgid "" "The floor is computed and the remainder (if any) is thrown away. In the " "second case, an integer is returned. (3)" msgstr "" -#: library/datetime.rst:356 +#: library/datetime.rst:372 msgid "``t1 = t2 % t3``" msgstr "" -#: library/datetime.rst:356 +#: library/datetime.rst:372 msgid "The remainder is computed as a :class:`timedelta` object. (3)" msgstr "" -#: library/datetime.rst:359 +#: library/datetime.rst:375 msgid "``q, r = divmod(t1, t2)``" msgstr "" -#: library/datetime.rst:359 +#: library/datetime.rst:375 msgid "" "Computes the quotient and the remainder: ``q = t1 // t2`` (3) and ``r = t1 % " "t2``. ``q`` is an integer and ``r`` is a :class:`timedelta` object." msgstr "" -#: library/datetime.rst:364 +#: library/datetime.rst:380 msgid "``+t1``" msgstr "" -#: library/datetime.rst:364 +#: library/datetime.rst:380 msgid "Returns a :class:`timedelta` object with the same value. (2)" msgstr "" -#: library/datetime.rst:367 +#: library/datetime.rst:383 msgid "``-t1``" msgstr "" -#: library/datetime.rst:367 +#: library/datetime.rst:383 msgid "" "Equivalent to ``timedelta(-t1.days, -t1.seconds, -t1.microseconds)``, and to " "``t1 * -1``. (1)(4)" msgstr "" -#: library/datetime.rst:371 +#: library/datetime.rst:387 msgid "``abs(t)``" msgstr "" -#: library/datetime.rst:371 +#: library/datetime.rst:387 msgid "" "Equivalent to ``+t`` when ``t.days >= 0``, and to ``-t`` when ``t.days < " "0``. (2)" msgstr "" -#: library/datetime.rst:374 +#: library/datetime.rst:390 msgid "``str(t)``" msgstr "" -#: library/datetime.rst:374 +#: library/datetime.rst:390 msgid "" "Returns a string in the form ``[D day[s], ][H]H:MM:SS[.UUUUUU]``, where D is " "negative for negative ``t``. (5)" msgstr "" -#: library/datetime.rst:378 +#: library/datetime.rst:394 msgid "``repr(t)``" msgstr "" -#: library/datetime.rst:378 +#: library/datetime.rst:394 msgid "" "Returns a string representation of the :class:`timedelta` object as a " "constructor call with canonical attribute values." msgstr "" -#: library/datetime.rst:623 library/datetime.rst:2600 +#: library/datetime.rst:639 library/datetime.rst:2616 msgid "Notes:" msgstr "" -#: library/datetime.rst:387 +#: library/datetime.rst:403 msgid "This is exact but may overflow." msgstr "" -#: library/datetime.rst:390 +#: library/datetime.rst:406 msgid "This is exact and cannot overflow." msgstr "" -#: library/datetime.rst:393 +#: library/datetime.rst:409 msgid "Division by zero raises :exc:`ZeroDivisionError`." msgstr "" -#: library/datetime.rst:396 +#: library/datetime.rst:412 msgid "``-timedelta.max`` is not representable as a :class:`timedelta` object." msgstr "" -#: library/datetime.rst:399 +#: library/datetime.rst:415 msgid "" "String representations of :class:`timedelta` objects are normalized " "similarly to their internal representation. This leads to somewhat unusual " "results for negative timedeltas. For example::" msgstr "" -#: library/datetime.rst:403 +#: library/datetime.rst:419 msgid "" ">>> timedelta(hours=-5)\n" "datetime.timedelta(days=-1, seconds=68400)\n" @@ -654,21 +674,21 @@ msgid "" "-1 day, 19:00:00" msgstr "" -#: library/datetime.rst:409 +#: library/datetime.rst:425 msgid "" "The expression ``t2 - t3`` will always be equal to the expression ``t2 + (-" "t3)`` except when t3 is equal to ``timedelta.max``; in that case the former " "will produce a result while the latter will overflow." msgstr "" -#: library/datetime.rst:413 +#: library/datetime.rst:429 msgid "" "In addition to the operations listed above, :class:`timedelta` objects " "support certain additions and subtractions with :class:`date` and :class:`." "datetime` objects (see below)." msgstr "" -#: library/datetime.rst:417 +#: library/datetime.rst:433 msgid "" "Floor division and true division of a :class:`timedelta` object by another :" "class:`timedelta` object are now supported, as are remainder operations and " @@ -676,42 +696,42 @@ msgid "" "`timedelta` object by a :class:`float` object are now supported." msgstr "" -#: library/datetime.rst:423 +#: library/datetime.rst:439 msgid ":class:`timedelta` objects support equality and order comparisons." msgstr "" -#: library/datetime.rst:425 +#: library/datetime.rst:441 msgid "" "In Boolean contexts, a :class:`timedelta` object is considered to be true if " "and only if it isn't equal to ``timedelta(0)``." msgstr "" -#: library/datetime.rst:665 library/datetime.rst:1891 +#: library/datetime.rst:681 library/datetime.rst:1907 msgid "Instance methods:" msgstr "" -#: library/datetime.rst:432 +#: library/datetime.rst:448 msgid "" "Return the total number of seconds contained in the duration. Equivalent to " "``td / timedelta(seconds=1)``. For interval units other than seconds, use " "the division form directly (e.g. ``td / timedelta(microseconds=1)``)." msgstr "" -#: library/datetime.rst:436 +#: library/datetime.rst:452 msgid "" "Note that for very large time intervals (greater than 270 years on most " "platforms) this method will lose microsecond accuracy." msgstr "" -#: library/datetime.rst:442 +#: library/datetime.rst:458 msgid "Examples of usage: :class:`timedelta`" msgstr "" -#: library/datetime.rst:444 +#: library/datetime.rst:460 msgid "An additional example of normalization::" msgstr "" -#: library/datetime.rst:446 +#: library/datetime.rst:462 msgid "" ">>> # Components of another_year add up to exactly 365 days\n" ">>> from datetime import timedelta\n" @@ -724,11 +744,11 @@ msgid "" "31536000.0" msgstr "" -#: library/datetime.rst:456 +#: library/datetime.rst:472 msgid "Examples of :class:`timedelta` arithmetic::" msgstr "" -#: library/datetime.rst:458 +#: library/datetime.rst:474 msgid "" ">>> from datetime import timedelta\n" ">>> year = timedelta(days=365)\n" @@ -745,65 +765,65 @@ msgid "" "(datetime.timedelta(days=1095), 3)" msgstr "" -#: library/datetime.rst:475 +#: library/datetime.rst:491 msgid ":class:`date` Objects" msgstr "" -#: library/datetime.rst:477 +#: library/datetime.rst:493 msgid "" "A :class:`date` object represents a date (year, month and day) in an " "idealized calendar, the current Gregorian calendar indefinitely extended in " "both directions." msgstr "" -#: library/datetime.rst:481 +#: library/datetime.rst:497 msgid "" "January 1 of year 1 is called day number 1, January 2 of year 1 is called " "day number 2, and so on. [#]_" msgstr "" -#: library/datetime.rst:486 +#: library/datetime.rst:502 msgid "" "All arguments are required. Arguments must be integers, in the following " "ranges:" msgstr "" -#: library/datetime.rst:489 +#: library/datetime.rst:505 msgid "``MINYEAR <= year <= MAXYEAR``" msgstr "" -#: library/datetime.rst:490 +#: library/datetime.rst:506 msgid "``1 <= month <= 12``" msgstr "" -#: library/datetime.rst:491 +#: library/datetime.rst:507 msgid "``1 <= day <= number of days in the given month and year``" msgstr "" -#: library/datetime.rst:883 +#: library/datetime.rst:899 msgid "" "If an argument outside those ranges is given, :exc:`ValueError` is raised." msgstr "" -#: library/datetime.rst:888 +#: library/datetime.rst:904 msgid "Other constructors, all class methods:" msgstr "" -#: library/datetime.rst:500 +#: library/datetime.rst:516 msgid "Return the current local date." msgstr "" -#: library/datetime.rst:502 +#: library/datetime.rst:518 msgid "This is equivalent to ``date.fromtimestamp(time.time())``." msgstr "" -#: library/datetime.rst:506 +#: library/datetime.rst:522 msgid "" "Return the local date corresponding to the POSIX timestamp, such as is " "returned by :func:`time.time`." msgstr "" -#: library/datetime.rst:509 +#: library/datetime.rst:525 msgid "" "This may raise :exc:`OverflowError`, if the timestamp is out of the range of " "values supported by the platform C :c:func:`localtime` function, and :exc:" @@ -813,7 +833,7 @@ msgid "" "ignored by :meth:`fromtimestamp`." msgstr "" -#: library/datetime.rst:516 +#: library/datetime.rst:532 msgid "" "Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " "out of the range of values supported by the platform C :c:func:`localtime` " @@ -821,44 +841,44 @@ msgid "" "`localtime` failure." msgstr "" -#: library/datetime.rst:525 +#: library/datetime.rst:541 msgid "" "Return the date corresponding to the proleptic Gregorian ordinal, where " "January 1 of year 1 has ordinal 1." msgstr "" -#: library/datetime.rst:528 +#: library/datetime.rst:544 msgid "" ":exc:`ValueError` is raised unless ``1 <= ordinal <= date.max.toordinal()``. " "For any date ``d``, ``date.fromordinal(d.toordinal()) == d``." msgstr "" -#: library/datetime.rst:535 +#: library/datetime.rst:551 msgid "" "Return a :class:`date` corresponding to a *date_string* given in any valid " "ISO 8601 format, with the following exceptions:" msgstr "" -#: library/datetime.rst:1048 +#: library/datetime.rst:1064 msgid "" "Reduced precision dates are not currently supported (``YYYY-MM``, ``YYYY``)." msgstr "" -#: library/datetime.rst:1050 +#: library/datetime.rst:1066 msgid "" "Extended date representations are not currently supported (``±YYYYYY-MM-" "DD``)." msgstr "" -#: library/datetime.rst:1052 +#: library/datetime.rst:1068 msgid "Ordinal dates are not currently supported (``YYYY-OOO``)." msgstr "" -#: library/datetime.rst:1054 library/datetime.rst:1520 +#: library/datetime.rst:1070 library/datetime.rst:1536 msgid "Examples::" msgstr "" -#: library/datetime.rst:546 +#: library/datetime.rst:562 msgid "" ">>> from datetime import date\n" ">>> date.fromisoformat('2019-12-04')\n" @@ -869,64 +889,64 @@ msgid "" "datetime.date(2021, 1, 4)" msgstr "" -#: library/datetime.rst:555 +#: library/datetime.rst:571 msgid "Previously, this method only supported the format ``YYYY-MM-DD``." msgstr "" -#: library/datetime.rst:560 +#: library/datetime.rst:576 msgid "" "Return a :class:`date` corresponding to the ISO calendar date specified by " "year, week and day. This is the inverse of the function :meth:`date." "isocalendar`." msgstr "" -#: library/datetime.rst:570 +#: library/datetime.rst:586 msgid "The earliest representable date, ``date(MINYEAR, 1, 1)``." msgstr "" -#: library/datetime.rst:575 +#: library/datetime.rst:591 msgid "The latest representable date, ``date(MAXYEAR, 12, 31)``." msgstr "" -#: library/datetime.rst:580 +#: library/datetime.rst:596 msgid "" "The smallest possible difference between non-equal date objects, " "``timedelta(days=1)``." msgstr "" -#: library/datetime.rst:1150 +#: library/datetime.rst:1166 msgid "Between :const:`MINYEAR` and :const:`MAXYEAR` inclusive." msgstr "" -#: library/datetime.rst:1155 +#: library/datetime.rst:1171 msgid "Between 1 and 12 inclusive." msgstr "" -#: library/datetime.rst:1160 +#: library/datetime.rst:1176 msgid "Between 1 and the number of days in the given month of the given year." msgstr "" -#: library/datetime.rst:606 +#: library/datetime.rst:622 msgid "``date2 = date1 + timedelta``" msgstr "" -#: library/datetime.rst:606 +#: library/datetime.rst:622 msgid "``date2`` will be ``timedelta.days`` days after ``date1``. (1)" msgstr "" -#: library/datetime.rst:609 +#: library/datetime.rst:625 msgid "``date2 = date1 - timedelta``" msgstr "" -#: library/datetime.rst:609 +#: library/datetime.rst:625 msgid "Computes ``date2`` such that ``date2 + timedelta == date1``. (2)" msgstr "" -#: library/datetime.rst:612 +#: library/datetime.rst:628 msgid "``timedelta = date1 - date2``" msgstr "" -#: library/datetime.rst:1208 +#: library/datetime.rst:1224 msgid "\\(3)" msgstr "" @@ -938,7 +958,7 @@ msgstr "" msgid "``date1 != date2``" msgstr "" -#: library/datetime.rst:1210 +#: library/datetime.rst:1226 msgid "Equality comparison. (4)" msgstr "" @@ -958,11 +978,11 @@ msgstr "" msgid "``date1 >= date2``" msgstr "" -#: library/datetime.rst:1213 +#: library/datetime.rst:1229 msgid "Order comparison. (5)" msgstr "" -#: library/datetime.rst:626 +#: library/datetime.rst:642 msgid "" "*date2* is moved forward in time if ``timedelta.days > 0``, or backward if " "``timedelta.days < 0``. Afterward ``date2 - date1 == timedelta.days``. " @@ -971,41 +991,41 @@ msgid "" "`MINYEAR` or larger than :const:`MAXYEAR`." msgstr "" -#: library/datetime.rst:633 +#: library/datetime.rst:649 msgid "``timedelta.seconds`` and ``timedelta.microseconds`` are ignored." msgstr "" -#: library/datetime.rst:636 +#: library/datetime.rst:652 msgid "" "This is exact, and cannot overflow. ``timedelta.seconds`` and ``timedelta." "microseconds`` are 0, and ``date2 + timedelta == date1`` after." msgstr "" -#: library/datetime.rst:640 +#: library/datetime.rst:656 msgid ":class:`date` objects are equal if they represent the same date." msgstr "" -#: library/datetime.rst:642 +#: library/datetime.rst:658 msgid "" ":class:`!date` objects that are not also :class:`.datetime` instances are " "never equal to :class:`!datetime` objects, even if they represent the same " "date." msgstr "" -#: library/datetime.rst:647 +#: library/datetime.rst:663 msgid "" "*date1* is considered less than *date2* when *date1* precedes *date2* in " "time. In other words, ``date1 < date2`` if and only if ``date1.toordinal() < " "date2.toordinal()``." msgstr "" -#: library/datetime.rst:651 +#: library/datetime.rst:667 msgid "" "Order comparison between a :class:`!date` object that is not also a :class:`." "datetime` instance and a :class:`!datetime` object raises :exc:`TypeError`." msgstr "" -#: library/datetime.rst:1281 +#: library/datetime.rst:1297 msgid "" "Comparison between :class:`.datetime` object and an instance of the :class:" "`date` subclass that is not a :class:`!datetime` subclass no longer converts " @@ -1014,22 +1034,22 @@ msgid "" "in subclasses." msgstr "" -#: library/datetime.rst:663 +#: library/datetime.rst:679 msgid "" "In Boolean contexts, all :class:`date` objects are considered to be true." msgstr "" -#: library/datetime.rst:669 +#: library/datetime.rst:685 msgid "" "Return a new :class:`date` object with the same values, but with specified " "parameters updated." msgstr "" -#: library/datetime.rst:1937 +#: library/datetime.rst:1953 msgid "Example::" msgstr "" -#: library/datetime.rst:674 +#: library/datetime.rst:690 msgid "" ">>> from datetime import date\n" ">>> d = date(2002, 12, 31)\n" @@ -1037,70 +1057,70 @@ msgid "" "datetime.date(2002, 12, 26)" msgstr "" -#: library/datetime.rst:679 +#: library/datetime.rst:695 msgid "" "The generic function :func:`copy.replace` also supports :class:`date` " "objects." msgstr "" -#: library/datetime.rst:1405 +#: library/datetime.rst:1421 msgid "" "Return a :class:`time.struct_time` such as returned by :func:`time." "localtime`." msgstr "" -#: library/datetime.rst:687 +#: library/datetime.rst:703 msgid "The hours, minutes and seconds are 0, and the DST flag is -1." msgstr "" -#: library/datetime.rst:1407 +#: library/datetime.rst:1423 msgid "``d.timetuple()`` is equivalent to::" msgstr "" -#: library/datetime.rst:691 +#: library/datetime.rst:707 msgid "" "time.struct_time((d.year, d.month, d.day, 0, 0, 0, d.weekday(), yday, -1))" msgstr "" -#: library/datetime.rst:693 +#: library/datetime.rst:709 msgid "" "where ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the " "day number within the current year starting with 1 for January 1st." msgstr "" -#: library/datetime.rst:699 +#: library/datetime.rst:715 msgid "" "Return the proleptic Gregorian ordinal of the date, where January 1 of year " "1 has ordinal 1. For any :class:`date` object ``d``, ``date.fromordinal(d." "toordinal()) == d``." msgstr "" -#: library/datetime.rst:706 +#: library/datetime.rst:722 msgid "" "Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " "For example, ``date(2002, 12, 4).weekday() == 2``, a Wednesday. See also :" "meth:`isoweekday`." msgstr "" -#: library/datetime.rst:713 +#: library/datetime.rst:729 msgid "" "Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " "For example, ``date(2002, 12, 4).isoweekday() == 3``, a Wednesday. See also :" "meth:`weekday`, :meth:`isocalendar`." msgstr "" -#: library/datetime.rst:720 +#: library/datetime.rst:736 msgid "" "Return a :term:`named tuple` object with three components: ``year``, " "``week`` and ``weekday``." msgstr "" -#: library/datetime.rst:723 +#: library/datetime.rst:739 msgid "" "The ISO calendar is a widely used variant of the Gregorian calendar. [#]_" msgstr "" -#: library/datetime.rst:725 +#: library/datetime.rst:741 msgid "" "The ISO year consists of 52 or 53 full weeks, and where a week starts on a " "Monday and ends on a Sunday. The first week of an ISO year is the first " @@ -1109,13 +1129,13 @@ msgid "" "Gregorian year." msgstr "" -#: library/datetime.rst:730 +#: library/datetime.rst:746 msgid "" "For example, 2004 begins on a Thursday, so the first week of ISO year 2004 " "begins on Monday, 29 Dec 2003 and ends on Sunday, 4 Jan 2004::" msgstr "" -#: library/datetime.rst:733 +#: library/datetime.rst:749 msgid "" ">>> from datetime import date\n" ">>> date(2003, 12, 29).isocalendar()\n" @@ -1124,53 +1144,53 @@ msgid "" "datetime.IsoCalendarDate(year=2004, week=1, weekday=7)" msgstr "" -#: library/datetime.rst:739 +#: library/datetime.rst:755 msgid "Result changed from a tuple to a :term:`named tuple`." msgstr "" -#: library/datetime.rst:744 +#: library/datetime.rst:760 msgid "" "Return a string representing the date in ISO 8601 format, ``YYYY-MM-DD``::" msgstr "" -#: library/datetime.rst:746 +#: library/datetime.rst:762 msgid "" ">>> from datetime import date\n" ">>> date(2002, 12, 4).isoformat()\n" "'2002-12-04'" msgstr "" -#: library/datetime.rst:752 +#: library/datetime.rst:768 msgid "For a date ``d``, ``str(d)`` is equivalent to ``d.isoformat()``." msgstr "" -#: library/datetime.rst:757 +#: library/datetime.rst:773 msgid "Return a string representing the date::" msgstr "" -#: library/datetime.rst:759 +#: library/datetime.rst:775 msgid "" ">>> from datetime import date\n" ">>> date(2002, 12, 4).ctime()\n" "'Wed Dec 4 00:00:00 2002'" msgstr "" -#: library/datetime.rst:1591 +#: library/datetime.rst:1607 msgid "``d.ctime()`` is equivalent to::" msgstr "" -#: library/datetime.rst:1593 +#: library/datetime.rst:1609 msgid "time.ctime(time.mktime(d.timetuple()))" msgstr "" -#: library/datetime.rst:767 +#: library/datetime.rst:783 msgid "" "on platforms where the native C :c:func:`ctime` function (which :func:`time." "ctime` invokes, but which :meth:`date.ctime` does not invoke) conforms to " "the C standard." msgstr "" -#: library/datetime.rst:774 +#: library/datetime.rst:790 msgid "" "Return a string representing the date, controlled by an explicit format " "string. Format codes referring to hours, minutes or seconds will see 0 " @@ -1178,7 +1198,7 @@ msgid "" "isoformat`." msgstr "" -#: library/datetime.rst:781 +#: library/datetime.rst:797 msgid "" "Same as :meth:`.date.strftime`. This makes it possible to specify a format " "string for a :class:`.date` object in :ref:`formatted string literals >> import time\n" ">>> from datetime import date\n" @@ -1214,11 +1234,11 @@ msgid "" "202" msgstr "" -#: library/datetime.rst:808 +#: library/datetime.rst:824 msgid "More examples of working with :class:`date`:" msgstr "" -#: library/datetime.rst:810 +#: library/datetime.rst:826 msgid "" ">>> from datetime import date\n" ">>> d = date.fromordinal(730920) # 730920th day after 1. 1. 0001\n" @@ -1262,17 +1282,17 @@ msgid "" "datetime.date(2005, 3, 11)" msgstr "" -#: library/datetime.rst:857 +#: library/datetime.rst:873 msgid ":class:`.datetime` Objects" msgstr "" -#: library/datetime.rst:859 +#: library/datetime.rst:875 msgid "" "A :class:`.datetime` object is a single object containing all the " "information from a :class:`date` object and a :class:`.time` object." msgstr "" -#: library/datetime.rst:862 +#: library/datetime.rst:878 msgid "" "Like a :class:`date` object, :class:`.datetime` assumes the current " "Gregorian calendar extended in both directions; like a :class:`.time` " @@ -1280,80 +1300,80 @@ msgid "" "every day." msgstr "" -#: library/datetime.rst:866 +#: library/datetime.rst:882 msgid "Constructor:" msgstr "" -#: library/datetime.rst:870 +#: library/datetime.rst:886 msgid "" "The *year*, *month* and *day* arguments are required. *tzinfo* may be " "``None``, or an instance of a :class:`tzinfo` subclass. The remaining " "arguments must be integers in the following ranges:" msgstr "" -#: library/datetime.rst:874 +#: library/datetime.rst:890 msgid "``MINYEAR <= year <= MAXYEAR``," msgstr "" -#: library/datetime.rst:875 +#: library/datetime.rst:891 msgid "``1 <= month <= 12``," msgstr "" -#: library/datetime.rst:876 +#: library/datetime.rst:892 msgid "``1 <= day <= number of days in the given month and year``," msgstr "" -#: library/datetime.rst:1755 +#: library/datetime.rst:1771 msgid "``0 <= hour < 24``," msgstr "" -#: library/datetime.rst:1756 +#: library/datetime.rst:1772 msgid "``0 <= minute < 60``," msgstr "" -#: library/datetime.rst:1757 +#: library/datetime.rst:1773 msgid "``0 <= second < 60``," msgstr "" -#: library/datetime.rst:1758 +#: library/datetime.rst:1774 msgid "``0 <= microsecond < 1000000``," msgstr "" -#: library/datetime.rst:1759 +#: library/datetime.rst:1775 msgid "``fold in [0, 1]``." msgstr "" -#: library/datetime.rst:1326 library/datetime.rst:1904 +#: library/datetime.rst:1342 library/datetime.rst:1920 msgid "Added the *fold* parameter." msgstr "" -#: library/datetime.rst:892 +#: library/datetime.rst:908 msgid "Return the current local date and time, with :attr:`.tzinfo` ``None``." msgstr "" -#: library/datetime.rst:894 +#: library/datetime.rst:910 msgid "Equivalent to::" msgstr "" -#: library/datetime.rst:896 +#: library/datetime.rst:912 msgid "datetime.fromtimestamp(time.time())" msgstr "" -#: library/datetime.rst:898 +#: library/datetime.rst:914 msgid "See also :meth:`now`, :meth:`fromtimestamp`." msgstr "" -#: library/datetime.rst:900 +#: library/datetime.rst:916 msgid "" "This method is functionally equivalent to :meth:`now`, but without a ``tz`` " "parameter." msgstr "" -#: library/datetime.rst:905 +#: library/datetime.rst:921 msgid "Return the current local date and time." msgstr "" -#: library/datetime.rst:907 +#: library/datetime.rst:923 msgid "" "If optional argument *tz* is ``None`` or not specified, this is like :meth:" "`today`, but, if possible, supplies more precision than can be gotten from " @@ -1361,34 +1381,34 @@ msgid "" "possible on platforms supplying the C :c:func:`gettimeofday` function)." msgstr "" -#: library/datetime.rst:913 +#: library/datetime.rst:929 msgid "" "If *tz* is not ``None``, it must be an instance of a :class:`tzinfo` " "subclass, and the current date and time are converted to *tz*’s time zone." msgstr "" -#: library/datetime.rst:916 +#: library/datetime.rst:932 msgid "This function is preferred over :meth:`today` and :meth:`utcnow`." msgstr "" -#: library/datetime.rst:920 +#: library/datetime.rst:936 msgid "" "Subsequent calls to :meth:`!datetime.now` may return the same instant " "depending on the precision of the underlying clock." msgstr "" -#: library/datetime.rst:925 +#: library/datetime.rst:941 msgid "Return the current UTC date and time, with :attr:`.tzinfo` ``None``." msgstr "" -#: library/datetime.rst:927 +#: library/datetime.rst:943 msgid "" "This is like :meth:`now`, but returns the current UTC date and time, as a " "naive :class:`.datetime` object. An aware current UTC datetime can be " "obtained by calling ``datetime.now(timezone.utc)``. See also :meth:`now`." msgstr "" -#: library/datetime.rst:933 +#: library/datetime.rst:949 msgid "" "Because naive ``datetime`` objects are treated by many ``datetime`` methods " "as local times, it is preferred to use aware datetimes to represent times in " @@ -1396,11 +1416,11 @@ msgid "" "current time in UTC is by calling ``datetime.now(timezone.utc)``." msgstr "" -#: library/datetime.rst:940 +#: library/datetime.rst:956 msgid "Use :meth:`datetime.now` with :const:`UTC` instead." msgstr "" -#: library/datetime.rst:945 +#: library/datetime.rst:961 msgid "" "Return the local date and time corresponding to the POSIX timestamp, such as " "is returned by :func:`time.time`. If optional argument *tz* is ``None`` or " @@ -1408,13 +1428,13 @@ msgid "" "time, and the returned :class:`.datetime` object is naive." msgstr "" -#: library/datetime.rst:950 +#: library/datetime.rst:966 msgid "" "If *tz* is not ``None``, it must be an instance of a :class:`tzinfo` " "subclass, and the timestamp is converted to *tz*’s time zone." msgstr "" -#: library/datetime.rst:953 +#: library/datetime.rst:969 msgid "" ":meth:`fromtimestamp` may raise :exc:`OverflowError`, if the timestamp is " "out of the range of values supported by the platform C :c:func:`localtime` " @@ -1427,7 +1447,7 @@ msgid "" "preferred over :meth:`utcfromtimestamp`." msgstr "" -#: library/datetime.rst:964 +#: library/datetime.rst:980 msgid "" "Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " "out of the range of values supported by the platform C :c:func:`localtime` " @@ -1435,17 +1455,17 @@ msgid "" "`ValueError` on :c:func:`localtime` or :c:func:`gmtime` failure." msgstr "" -#: library/datetime.rst:971 +#: library/datetime.rst:987 msgid ":meth:`fromtimestamp` may return instances with :attr:`.fold` set to 1." msgstr "" -#: library/datetime.rst:976 +#: library/datetime.rst:992 msgid "" "Return the UTC :class:`.datetime` corresponding to the POSIX timestamp, " "with :attr:`.tzinfo` ``None``. (The resulting object is naive.)" msgstr "" -#: library/datetime.rst:979 +#: library/datetime.rst:995 msgid "" "This may raise :exc:`OverflowError`, if the timestamp is out of the range of " "values supported by the platform C :c:func:`gmtime` function, and :exc:" @@ -1453,32 +1473,32 @@ msgid "" "to years in 1970 through 2038." msgstr "" -#: library/datetime.rst:984 +#: library/datetime.rst:1000 msgid "To get an aware :class:`.datetime` object, call :meth:`fromtimestamp`::" msgstr "" -#: library/datetime.rst:986 +#: library/datetime.rst:1002 msgid "datetime.fromtimestamp(timestamp, timezone.utc)" msgstr "" -#: library/datetime.rst:988 +#: library/datetime.rst:1004 msgid "" "On the POSIX compliant platforms, it is equivalent to the following " "expression::" msgstr "" -#: library/datetime.rst:991 +#: library/datetime.rst:1007 msgid "" "datetime(1970, 1, 1, tzinfo=timezone.utc) + timedelta(seconds=timestamp)" msgstr "" -#: library/datetime.rst:993 +#: library/datetime.rst:1009 msgid "" "except the latter formula always supports the full years range: between :" "const:`MINYEAR` and :const:`MAXYEAR` inclusive." msgstr "" -#: library/datetime.rst:998 +#: library/datetime.rst:1014 msgid "" "Because naive ``datetime`` objects are treated by many ``datetime`` methods " "as local times, it is preferred to use aware datetimes to represent times in " @@ -1487,7 +1507,7 @@ msgid "" "tz=timezone.utc)``." msgstr "" -#: library/datetime.rst:1004 +#: library/datetime.rst:1020 msgid "" "Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " "out of the range of values supported by the platform C :c:func:`gmtime` " @@ -1495,11 +1515,11 @@ msgid "" "`gmtime` failure." msgstr "" -#: library/datetime.rst:1012 +#: library/datetime.rst:1028 msgid "Use :meth:`datetime.fromtimestamp` with :const:`UTC` instead." msgstr "" -#: library/datetime.rst:1017 +#: library/datetime.rst:1033 msgid "" "Return the :class:`.datetime` corresponding to the proleptic Gregorian " "ordinal, where January 1 of year 1 has ordinal 1. :exc:`ValueError` is " @@ -1508,7 +1528,7 @@ msgid "" "is ``None``." msgstr "" -#: library/datetime.rst:1025 +#: library/datetime.rst:1041 msgid "" "Return a new :class:`.datetime` object whose date components are equal to " "the given :class:`date` object's, and whose time components are equal to the " @@ -1519,35 +1539,35 @@ msgid "" "attr:`.tzinfo` attributes are ignored." msgstr "" -#: library/datetime.rst:1033 +#: library/datetime.rst:1049 msgid "" "For any :class:`.datetime` object ``d``, ``d == datetime.combine(d.date(), d." "time(), d.tzinfo)``." msgstr "" -#: library/datetime.rst:1036 +#: library/datetime.rst:1052 msgid "Added the *tzinfo* argument." msgstr "" -#: library/datetime.rst:1042 +#: library/datetime.rst:1058 msgid "" "Return a :class:`.datetime` corresponding to a *date_string* in any valid " "ISO 8601 format, with the following exceptions:" msgstr "" -#: library/datetime.rst:1855 +#: library/datetime.rst:1871 msgid "Time zone offsets may have fractional seconds." msgstr "" -#: library/datetime.rst:1046 +#: library/datetime.rst:1062 msgid "The ``T`` separator may be replaced by any single unicode character." msgstr "" -#: library/datetime.rst:1860 +#: library/datetime.rst:1876 msgid "Fractional hours and minutes are not supported." msgstr "" -#: library/datetime.rst:1056 +#: library/datetime.rst:1072 msgid "" ">>> from datetime import datetime\n" ">>> datetime.fromisoformat('2011-11-04')\n" @@ -1572,13 +1592,13 @@ msgid "" " tzinfo=datetime.timezone(datetime.timedelta(seconds=14400)))" msgstr "" -#: library/datetime.rst:1078 +#: library/datetime.rst:1094 msgid "" "Previously, this method only supported formats that could be emitted by :" "meth:`date.isoformat` or :meth:`datetime.isoformat`." msgstr "" -#: library/datetime.rst:1085 +#: library/datetime.rst:1101 msgid "" "Return a :class:`.datetime` corresponding to the ISO calendar date specified " "by year, week and day. The non-date components of the datetime are populated " @@ -1586,23 +1606,23 @@ msgid "" "`datetime.isocalendar`." msgstr "" -#: library/datetime.rst:1094 +#: library/datetime.rst:1110 msgid "" "Return a :class:`.datetime` corresponding to *date_string*, parsed according " "to *format*." msgstr "" -#: library/datetime.rst:1097 +#: library/datetime.rst:1113 msgid "" "If *format* does not contain microseconds or time zone information, this is " "equivalent to::" msgstr "" -#: library/datetime.rst:2580 +#: library/datetime.rst:2596 msgid "datetime(*(time.strptime(date_string, format)[0:6]))" msgstr "" -#: library/datetime.rst:1101 +#: library/datetime.rst:1117 msgid "" ":exc:`ValueError` is raised if the date_string and format can't be parsed " "by :func:`time.strptime` or if it returns a value which isn't a time tuple. " @@ -1610,7 +1630,7 @@ msgid "" "fromisoformat`." msgstr "" -#: library/datetime.rst:1108 +#: library/datetime.rst:1124 msgid "" "If *format* specifies a day of month without a year a :exc:" "`DeprecationWarning` is now emitted. This is to avoid a quadrennial leap " @@ -1621,7 +1641,7 @@ msgid "" "not have a year, explicitly add a year that is a leap year before parsing:" msgstr "" -#: library/datetime.rst:1117 +#: library/datetime.rst:1133 msgid "" ">>> from datetime import datetime\n" ">>> date_string = \"02/29\"\n" @@ -1631,43 +1651,43 @@ msgid "" "'February 29'" msgstr "" -#: library/datetime.rst:1130 +#: library/datetime.rst:1146 msgid "" "The earliest representable :class:`.datetime`, ``datetime(MINYEAR, 1, 1, " "tzinfo=None)``." msgstr "" -#: library/datetime.rst:1136 +#: library/datetime.rst:1152 msgid "" "The latest representable :class:`.datetime`, ``datetime(MAXYEAR, 12, 31, 23, " "59, 59, 999999, tzinfo=None)``." msgstr "" -#: library/datetime.rst:1142 +#: library/datetime.rst:1158 msgid "" "The smallest possible difference between non-equal :class:`.datetime` " "objects, ``timedelta(microseconds=1)``." msgstr "" -#: library/datetime.rst:1788 +#: library/datetime.rst:1804 msgid "In ``range(24)``." msgstr "" -#: library/datetime.rst:1175 library/datetime.rst:1798 +#: library/datetime.rst:1191 library/datetime.rst:1814 msgid "In ``range(60)``." msgstr "" -#: library/datetime.rst:1803 +#: library/datetime.rst:1819 msgid "In ``range(1000000)``." msgstr "" -#: library/datetime.rst:1185 +#: library/datetime.rst:1201 msgid "" "The object passed as the *tzinfo* argument to the :class:`.datetime` " "constructor, or ``None`` if none was passed." msgstr "" -#: library/datetime.rst:1814 +#: library/datetime.rst:1830 msgid "" "In ``[0, 1]``. Used to disambiguate wall times during a repeated interval. " "(A repeated interval occurs when clocks are rolled back at the end of " @@ -1677,24 +1697,24 @@ msgid "" "time representation." msgstr "" -#: library/datetime.rst:1204 +#: library/datetime.rst:1220 msgid "``datetime2 = datetime1 + timedelta``" msgstr "" -#: library/datetime.rst:2427 library/datetime.rst:2444 -#: library/datetime.rst:2509 library/datetime.rst:2518 +#: library/datetime.rst:2443 library/datetime.rst:2460 +#: library/datetime.rst:2525 library/datetime.rst:2534 msgid "\\(1)" msgstr "" -#: library/datetime.rst:1206 +#: library/datetime.rst:1222 msgid "``datetime2 = datetime1 - timedelta``" msgstr "" -#: library/datetime.rst:2460 +#: library/datetime.rst:2476 msgid "\\(2)" msgstr "" -#: library/datetime.rst:1208 +#: library/datetime.rst:1224 msgid "``timedelta = datetime1 - datetime2``" msgstr "" @@ -1722,7 +1742,7 @@ msgstr "" msgid "``datetime1 >= datetime2``" msgstr "" -#: library/datetime.rst:1220 +#: library/datetime.rst:1236 msgid "" "``datetime2`` is a duration of ``timedelta`` removed from ``datetime1``, " "moving forward in time if ``timedelta.days > 0``, or backward if ``timedelta." @@ -1733,7 +1753,7 @@ msgid "" "adjustments are done even if the input is an aware object." msgstr "" -#: library/datetime.rst:1229 +#: library/datetime.rst:1245 msgid "" "Computes the ``datetime2`` such that ``datetime2 + timedelta == datetime1``. " "As for addition, the result has the same :attr:`~.datetime.tzinfo` attribute " @@ -1741,14 +1761,14 @@ msgid "" "input is aware." msgstr "" -#: library/datetime.rst:1234 +#: library/datetime.rst:1250 msgid "" "Subtraction of a :class:`.datetime` from a :class:`.datetime` is defined " "only if both operands are naive, or if both are aware. If one is aware and " "the other is naive, :exc:`TypeError` is raised." msgstr "" -#: library/datetime.rst:1238 +#: library/datetime.rst:1254 msgid "" "If both are naive, or both are aware and have the same :attr:`~.datetime." "tzinfo` attribute, the :attr:`~.datetime.tzinfo` attributes are ignored, and " @@ -1756,7 +1776,7 @@ msgid "" "datetime1``. No time zone adjustments are done in this case." msgstr "" -#: library/datetime.rst:1243 +#: library/datetime.rst:1259 msgid "" "If both are aware and have different :attr:`~.datetime.tzinfo` attributes, " "``a-b`` acts as if ``a`` and ``b`` were first converted to naive UTC " @@ -1765,17 +1785,17 @@ msgid "" "overflows." msgstr "" -#: library/datetime.rst:1249 +#: library/datetime.rst:1265 msgid "" ":class:`.datetime` objects are equal if they represent the same date and " "time, taking into account the time zone." msgstr "" -#: library/datetime.rst:1252 +#: library/datetime.rst:1268 msgid "Naive and aware :class:`!datetime` objects are never equal." msgstr "" -#: library/datetime.rst:1254 +#: library/datetime.rst:1270 msgid "" "If both comparands are aware, and have the same :attr:`!tzinfo` attribute, " "the :attr:`!tzinfo` and :attr:`~.datetime.fold` attributes are ignored and " @@ -1786,19 +1806,19 @@ msgid "" "interval are never equal to :class:`!datetime` instances in other time zone." msgstr "" -#: library/datetime.rst:1264 +#: library/datetime.rst:1280 msgid "" "*datetime1* is considered less than *datetime2* when *datetime1* precedes " "*datetime2* in time, taking into account the time zone." msgstr "" -#: library/datetime.rst:1267 +#: library/datetime.rst:1283 msgid "" "Order comparison between naive and aware :class:`.datetime` objects raises :" "exc:`TypeError`." msgstr "" -#: library/datetime.rst:1270 +#: library/datetime.rst:1286 msgid "" "If both comparands are aware, and have the same :attr:`!tzinfo` attribute, " "the :attr:`!tzinfo` and :attr:`~.datetime.fold` attributes are ignored and " @@ -1808,33 +1828,33 @@ msgid "" "implementation never overflows." msgstr "" -#: library/datetime.rst:1277 +#: library/datetime.rst:1293 msgid "" "Equality comparisons between aware and naive :class:`.datetime` instances " "don't raise :exc:`TypeError`." msgstr "" -#: library/datetime.rst:1293 +#: library/datetime.rst:1309 msgid "Return :class:`date` object with same year, month and day." msgstr "" -#: library/datetime.rst:1298 +#: library/datetime.rst:1314 msgid "" "Return :class:`.time` object with same hour, minute, second, microsecond and " "fold. :attr:`.tzinfo` is ``None``. See also method :meth:`timetz`." msgstr "" -#: library/datetime.rst:1310 +#: library/datetime.rst:1326 msgid "The fold value is copied to the returned :class:`.time` object." msgstr "" -#: library/datetime.rst:1307 +#: library/datetime.rst:1323 msgid "" "Return :class:`.time` object with same hour, minute, second, microsecond, " "fold, and tzinfo attributes. See also method :meth:`time`." msgstr "" -#: library/datetime.rst:1318 +#: library/datetime.rst:1334 msgid "" "Return a new :class:`datetime` object with the same attributes, but with " "specified parameters updated. Note that ``tzinfo=None`` can be specified to " @@ -1842,27 +1862,27 @@ msgid "" "and time data." msgstr "" -#: library/datetime.rst:1323 +#: library/datetime.rst:1339 msgid "" ":class:`.datetime` objects are also supported by generic function :func:" "`copy.replace`." msgstr "" -#: library/datetime.rst:1332 +#: library/datetime.rst:1348 msgid "" "Return a :class:`.datetime` object with new :attr:`.tzinfo` attribute *tz*, " "adjusting the date and time data so the result is the same UTC time as " "*self*, but in *tz*'s local time." msgstr "" -#: library/datetime.rst:1336 +#: library/datetime.rst:1352 msgid "" "If provided, *tz* must be an instance of a :class:`tzinfo` subclass, and " "its :meth:`utcoffset` and :meth:`dst` methods must not return ``None``. If " "*self* is naive, it is presumed to represent time in the system time zone." msgstr "" -#: library/datetime.rst:1340 +#: library/datetime.rst:1356 msgid "" "If called without arguments (or with ``tz=None``) the system local time zone " "is assumed for the target time zone. The ``.tzinfo`` attribute of the " @@ -1870,7 +1890,7 @@ msgid "" "with the zone name and offset obtained from the OS." msgstr "" -#: library/datetime.rst:1345 +#: library/datetime.rst:1361 msgid "" "If ``self.tzinfo`` is *tz*, ``self.astimezone(tz)`` is equal to *self*: no " "adjustment of date or time data is performed. Else the result is local time " @@ -1879,7 +1899,7 @@ msgid "" "date and time data as ``dt - dt.utcoffset()``." msgstr "" -#: library/datetime.rst:1351 +#: library/datetime.rst:1367 msgid "" "If you merely want to attach a :class:`timezone` object *tz* to a datetime " "*dt* without adjustment of date and time data, use ``dt." @@ -1888,14 +1908,14 @@ msgid "" "use ``dt.replace(tzinfo=None)``." msgstr "" -#: library/datetime.rst:1356 +#: library/datetime.rst:1372 msgid "" "Note that the default :meth:`tzinfo.fromutc` method can be overridden in a :" "class:`tzinfo` subclass to affect the result returned by :meth:`astimezone`. " "Ignoring error cases, :meth:`astimezone` acts like::" msgstr "" -#: library/datetime.rst:1360 +#: library/datetime.rst:1376 msgid "" "def astimezone(self, tz):\n" " if self.tzinfo is tz:\n" @@ -1906,54 +1926,54 @@ msgid "" " return tz.fromutc(utc)" msgstr "" -#: library/datetime.rst:1368 +#: library/datetime.rst:1384 msgid "*tz* now can be omitted." msgstr "" -#: library/datetime.rst:1371 +#: library/datetime.rst:1387 msgid "" "The :meth:`astimezone` method can now be called on naive instances that are " "presumed to represent system local time." msgstr "" -#: library/datetime.rst:1378 +#: library/datetime.rst:1394 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "utcoffset(self)``, and raises an exception if the latter doesn't return " "``None`` or a :class:`timedelta` object with magnitude less than one day." msgstr "" -#: library/datetime.rst:1977 library/datetime.rst:2329 -#: library/datetime.rst:2653 +#: library/datetime.rst:1993 library/datetime.rst:2345 +#: library/datetime.rst:2669 msgid "The UTC offset is not restricted to a whole number of minutes." msgstr "" -#: library/datetime.rst:1388 +#: library/datetime.rst:1404 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "dst(self)``, and raises an exception if the latter doesn't return ``None`` " "or a :class:`timedelta` object with magnitude less than one day." msgstr "" -#: library/datetime.rst:1987 library/datetime.rst:2138 +#: library/datetime.rst:2003 library/datetime.rst:2154 msgid "The DST offset is not restricted to a whole number of minutes." msgstr "" -#: library/datetime.rst:1398 +#: library/datetime.rst:1414 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "tzname(self)``, raises an exception if the latter doesn't return ``None`` or " "a string object," msgstr "" -#: library/datetime.rst:1409 +#: library/datetime.rst:1425 msgid "" "time.struct_time((d.year, d.month, d.day,\n" " d.hour, d.minute, d.second,\n" " d.weekday(), yday, dst))" msgstr "" -#: library/datetime.rst:1413 +#: library/datetime.rst:1429 msgid "" "where ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the " "day number within the current year starting with 1 for January 1st. The :" @@ -1964,7 +1984,7 @@ msgid "" "to 0." msgstr "" -#: library/datetime.rst:1424 +#: library/datetime.rst:1440 msgid "" "If :class:`.datetime` instance ``d`` is naive, this is the same as ``d." "timetuple()`` except that :attr:`~.time.struct_time.tm_isdst` is forced to 0 " @@ -1972,7 +1992,7 @@ msgid "" "time." msgstr "" -#: library/datetime.rst:1428 +#: library/datetime.rst:1444 msgid "" "If ``d`` is aware, ``d`` is normalized to UTC time, by subtracting ``d." "utcoffset()``, and a :class:`time.struct_time` for the normalized time is " @@ -1981,7 +2001,7 @@ msgid "" "and UTC adjustment spills over a year boundary." msgstr "" -#: library/datetime.rst:1437 +#: library/datetime.rst:1453 msgid "" "Because naive ``datetime`` objects are treated by many ``datetime`` methods " "as local times, it is preferred to use aware datetimes to represent times in " @@ -1991,20 +2011,20 @@ msgid "" "meth:`.datetime.timetuple`." msgstr "" -#: library/datetime.rst:1446 +#: library/datetime.rst:1462 msgid "" "Return the proleptic Gregorian ordinal of the date. The same as ``self." "date().toordinal()``." msgstr "" -#: library/datetime.rst:1451 +#: library/datetime.rst:1467 msgid "" "Return POSIX timestamp corresponding to the :class:`.datetime` instance. The " "return value is a :class:`float` similar to that returned by :func:`time." "time`." msgstr "" -#: library/datetime.rst:1455 +#: library/datetime.rst:1471 msgid "" "Naive :class:`.datetime` instances are assumed to represent local time and " "this method relies on the platform C :c:func:`mktime` function to perform " @@ -2014,22 +2034,22 @@ msgid "" "future." msgstr "" -#: library/datetime.rst:1462 +#: library/datetime.rst:1478 msgid "" "For aware :class:`.datetime` instances, the return value is computed as::" msgstr "" -#: library/datetime.rst:1465 +#: library/datetime.rst:1481 msgid "(dt - datetime(1970, 1, 1, tzinfo=timezone.utc)).total_seconds()" msgstr "" -#: library/datetime.rst:1469 +#: library/datetime.rst:1485 msgid "" "The :meth:`timestamp` method uses the :attr:`.fold` attribute to " "disambiguate the times during a repeated interval." msgstr "" -#: library/datetime.rst:1475 +#: library/datetime.rst:1491 msgid "" "There is no method to obtain the POSIX timestamp directly from a naive :" "class:`.datetime` instance representing UTC time. If your application uses " @@ -2037,67 +2057,67 @@ msgid "" "the POSIX timestamp by supplying ``tzinfo=timezone.utc``::" msgstr "" -#: library/datetime.rst:1481 +#: library/datetime.rst:1497 msgid "timestamp = dt.replace(tzinfo=timezone.utc).timestamp()" msgstr "" -#: library/datetime.rst:1483 +#: library/datetime.rst:1499 msgid "or by calculating the timestamp directly::" msgstr "" -#: library/datetime.rst:1485 +#: library/datetime.rst:1501 msgid "timestamp = (dt - datetime(1970, 1, 1)) / timedelta(seconds=1)" msgstr "" -#: library/datetime.rst:1489 +#: library/datetime.rst:1505 msgid "" "Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " "The same as ``self.date().weekday()``. See also :meth:`isoweekday`." msgstr "" -#: library/datetime.rst:1495 +#: library/datetime.rst:1511 msgid "" "Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " "The same as ``self.date().isoweekday()``. See also :meth:`weekday`, :meth:" "`isocalendar`." msgstr "" -#: library/datetime.rst:1502 +#: library/datetime.rst:1518 msgid "" "Return a :term:`named tuple` with three components: ``year``, ``week`` and " "``weekday``. The same as ``self.date().isocalendar()``." msgstr "" -#: library/datetime.rst:1508 +#: library/datetime.rst:1524 msgid "Return a string representing the date and time in ISO 8601 format:" msgstr "" -#: library/datetime.rst:1510 +#: library/datetime.rst:1526 msgid "``YYYY-MM-DDTHH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" msgstr "" -#: library/datetime.rst:1511 +#: library/datetime.rst:1527 msgid "``YYYY-MM-DDTHH:MM:SS``, if :attr:`microsecond` is 0" msgstr "" -#: library/datetime.rst:1513 +#: library/datetime.rst:1529 msgid "" "If :meth:`utcoffset` does not return ``None``, a string is appended, giving " "the UTC offset:" msgstr "" -#: library/datetime.rst:1516 +#: library/datetime.rst:1532 msgid "" "``YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` " "is not 0" msgstr "" -#: library/datetime.rst:1518 +#: library/datetime.rst:1534 msgid "" "``YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` is 0" msgstr "" -#: library/datetime.rst:1522 +#: library/datetime.rst:1538 msgid "" ">>> from datetime import datetime, timezone\n" ">>> datetime(2019, 5, 18, 15, 17, 8, 132263).isoformat()\n" @@ -2106,13 +2126,13 @@ msgid "" "'2019-05-18T15:17:00+00:00'" msgstr "" -#: library/datetime.rst:1528 +#: library/datetime.rst:1544 msgid "" "The optional argument *sep* (default ``'T'``) is a one-character separator, " "placed between the date and time portions of the result. For example::" msgstr "" -#: library/datetime.rst:1531 +#: library/datetime.rst:1547 msgid "" ">>> from datetime import tzinfo, timedelta, datetime\n" ">>> class TZ(tzinfo):\n" @@ -2126,53 +2146,53 @@ msgid "" "'2009-11-27T00:00:00.000100-06:39'" msgstr "" -#: library/datetime.rst:1917 +#: library/datetime.rst:1933 msgid "" "The optional argument *timespec* specifies the number of additional " "components of the time to include (the default is ``'auto'``). It can be one " "of the following:" msgstr "" -#: library/datetime.rst:1921 +#: library/datetime.rst:1937 msgid "" "``'auto'``: Same as ``'seconds'`` if :attr:`microsecond` is 0, same as " "``'microseconds'`` otherwise." msgstr "" -#: library/datetime.rst:1923 +#: library/datetime.rst:1939 msgid "``'hours'``: Include the :attr:`hour` in the two-digit ``HH`` format." msgstr "" -#: library/datetime.rst:1924 +#: library/datetime.rst:1940 msgid "" "``'minutes'``: Include :attr:`hour` and :attr:`minute` in ``HH:MM`` format." msgstr "" -#: library/datetime.rst:1925 +#: library/datetime.rst:1941 msgid "" "``'seconds'``: Include :attr:`hour`, :attr:`minute`, and :attr:`second` in " "``HH:MM:SS`` format." msgstr "" -#: library/datetime.rst:1927 +#: library/datetime.rst:1943 msgid "" "``'milliseconds'``: Include full time, but truncate fractional second part " "to milliseconds. ``HH:MM:SS.sss`` format." msgstr "" -#: library/datetime.rst:1929 +#: library/datetime.rst:1945 msgid "``'microseconds'``: Include full time in ``HH:MM:SS.ffffff`` format." msgstr "" -#: library/datetime.rst:1933 +#: library/datetime.rst:1949 msgid "Excluded time components are truncated, not rounded." msgstr "" -#: library/datetime.rst:1560 +#: library/datetime.rst:1576 msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument::" msgstr "" -#: library/datetime.rst:1563 +#: library/datetime.rst:1579 msgid "" ">>> from datetime import datetime\n" ">>> datetime.now().isoformat(timespec='minutes')\n" @@ -2182,48 +2202,48 @@ msgid "" "'2015-01-01T12:30:59.000000'" msgstr "" -#: library/datetime.rst:1948 +#: library/datetime.rst:1964 msgid "Added the *timespec* parameter." msgstr "" -#: library/datetime.rst:1576 +#: library/datetime.rst:1592 msgid "" "For a :class:`.datetime` instance ``d``, ``str(d)`` is equivalent to ``d." "isoformat(' ')``." msgstr "" -#: library/datetime.rst:1582 +#: library/datetime.rst:1598 msgid "Return a string representing the date and time::" msgstr "" -#: library/datetime.rst:1584 +#: library/datetime.rst:1600 msgid "" ">>> from datetime import datetime\n" ">>> datetime(2002, 12, 4, 20, 30, 40).ctime()\n" "'Wed Dec 4 20:30:40 2002'" msgstr "" -#: library/datetime.rst:1588 +#: library/datetime.rst:1604 msgid "" "The output string will *not* include time zone information, regardless of " "whether the input is aware or naive." msgstr "" -#: library/datetime.rst:1595 +#: library/datetime.rst:1611 msgid "" "on platforms where the native C :c:func:`ctime` function (which :func:`time." "ctime` invokes, but which :meth:`datetime.ctime` does not invoke) conforms " "to the C standard." msgstr "" -#: library/datetime.rst:1602 +#: library/datetime.rst:1618 msgid "" "Return a string representing the date and time, controlled by an explicit " "format string. See also :ref:`strftime-strptime-behavior` and :meth:" "`datetime.isoformat`." msgstr "" -#: library/datetime.rst:1609 +#: library/datetime.rst:1625 msgid "" "Same as :meth:`.datetime.strftime`. This makes it possible to specify a " "format string for a :class:`.datetime` object in :ref:`formatted string " @@ -2231,15 +2251,15 @@ msgid "" "`strftime-strptime-behavior` and :meth:`datetime.isoformat`." msgstr "" -#: library/datetime.rst:1616 +#: library/datetime.rst:1632 msgid "Examples of Usage: :class:`.datetime`" msgstr "" -#: library/datetime.rst:1618 +#: library/datetime.rst:1634 msgid "Examples of working with :class:`.datetime` objects:" msgstr "" -#: library/datetime.rst:1620 +#: library/datetime.rst:1636 msgid "" ">>> from datetime import datetime, date, time, timezone\n" "\n" @@ -2293,14 +2313,14 @@ msgid "" "'The day is 21, the month is November, the time is 04:30PM.'" msgstr "" -#: library/datetime.rst:1671 +#: library/datetime.rst:1687 msgid "" "The example below defines a :class:`tzinfo` subclass capturing time zone " "information for Kabul, Afghanistan, which used +4 UTC until 1945 and then " "+4:30 UTC thereafter::" msgstr "" -#: library/datetime.rst:1675 +#: library/datetime.rst:1691 msgid "" "from datetime import timedelta, datetime, tzinfo, timezone\n" "\n" @@ -2347,11 +2367,11 @@ msgid "" " return \"+04\"" msgstr "" -#: library/datetime.rst:1718 +#: library/datetime.rst:1734 msgid "Usage of ``KabulTz`` from above::" msgstr "" -#: library/datetime.rst:1720 +#: library/datetime.rst:1736 msgid "" ">>> tz1 = KabulTz()\n" "\n" @@ -2375,63 +2395,63 @@ msgid "" "True" msgstr "" -#: library/datetime.rst:1744 +#: library/datetime.rst:1760 msgid ":class:`.time` Objects" msgstr "" -#: library/datetime.rst:1746 +#: library/datetime.rst:1762 msgid "" "A :class:`.time` object represents a (local) time of day, independent of any " "particular day, and subject to adjustment via a :class:`tzinfo` object." msgstr "" -#: library/datetime.rst:1751 +#: library/datetime.rst:1767 msgid "" "All arguments are optional. *tzinfo* may be ``None``, or an instance of a :" "class:`tzinfo` subclass. The remaining arguments must be integers in the " "following ranges:" msgstr "" -#: library/datetime.rst:1761 +#: library/datetime.rst:1777 msgid "" "If an argument outside those ranges is given, :exc:`ValueError` is raised. " "All default to 0 except *tzinfo*, which defaults to ``None``." msgstr "" -#: library/datetime.rst:1769 +#: library/datetime.rst:1785 msgid "The earliest representable :class:`.time`, ``time(0, 0, 0, 0)``." msgstr "" -#: library/datetime.rst:1774 +#: library/datetime.rst:1790 msgid "The latest representable :class:`.time`, ``time(23, 59, 59, 999999)``." msgstr "" -#: library/datetime.rst:1779 +#: library/datetime.rst:1795 msgid "" "The smallest possible difference between non-equal :class:`.time` objects, " "``timedelta(microseconds=1)``, although note that arithmetic on :class:`." "time` objects is not supported." msgstr "" -#: library/datetime.rst:1808 +#: library/datetime.rst:1824 msgid "" "The object passed as the tzinfo argument to the :class:`.time` constructor, " "or ``None`` if none was passed." msgstr "" -#: library/datetime.rst:1822 +#: library/datetime.rst:1838 msgid "" ":class:`.time` objects support equality and order comparisons, where ``a`` " "is considered less than ``b`` when ``a`` precedes ``b`` in time." msgstr "" -#: library/datetime.rst:1825 +#: library/datetime.rst:1841 msgid "" "Naive and aware :class:`!time` objects are never equal. Order comparison " "between naive and aware :class:`!time` objects raises :exc:`TypeError`." msgstr "" -#: library/datetime.rst:1829 +#: library/datetime.rst:1845 msgid "" "If both comparands are aware, and have the same :attr:`~.time.tzinfo` " "attribute, the :attr:`!tzinfo` and :attr:`!fold` attributes are ignored and " @@ -2440,18 +2460,18 @@ msgid "" "subtracting their UTC offsets (obtained from ``self.utcoffset()``)." msgstr "" -#: library/datetime.rst:1835 +#: library/datetime.rst:1851 msgid "" "Equality comparisons between aware and naive :class:`.time` instances don't " "raise :exc:`TypeError`." msgstr "" -#: library/datetime.rst:1839 +#: library/datetime.rst:1855 msgid "" "In Boolean contexts, a :class:`.time` object is always considered to be true." msgstr "" -#: library/datetime.rst:1841 +#: library/datetime.rst:1857 msgid "" "Before Python 3.5, a :class:`.time` object was considered to be false if it " "represented midnight in UTC. This behavior was considered obscure and error-" @@ -2459,33 +2479,33 @@ msgid "" "details." msgstr "" -#: library/datetime.rst:1848 +#: library/datetime.rst:1864 msgid "Other constructor:" msgstr "" -#: library/datetime.rst:1852 +#: library/datetime.rst:1868 msgid "" "Return a :class:`.time` corresponding to a *time_string* in any valid ISO " "8601 format, with the following exceptions:" msgstr "" -#: library/datetime.rst:1856 +#: library/datetime.rst:1872 msgid "" "The leading ``T``, normally required in cases where there may be ambiguity " "between a date and a time, is not required." msgstr "" -#: library/datetime.rst:1858 +#: library/datetime.rst:1874 msgid "" "Fractional seconds may have any number of digits (anything beyond 6 will be " "truncated)." msgstr "" -#: library/datetime.rst:1862 +#: library/datetime.rst:1878 msgid "Examples:" msgstr "" -#: library/datetime.rst:1864 +#: library/datetime.rst:1880 msgid "" ">>> from datetime import time\n" ">>> time.fromisoformat('04:23:01')\n" @@ -2507,13 +2527,13 @@ msgid "" "datetime.time(4, 23, 1, tzinfo=datetime.timezone.utc)" msgstr "" -#: library/datetime.rst:1886 +#: library/datetime.rst:1902 msgid "" "Previously, this method only supported formats that could be emitted by :" "meth:`time.isoformat`." msgstr "" -#: library/datetime.rst:1896 +#: library/datetime.rst:1912 msgid "" "Return a new :class:`.time` with the same values, but with specified " "parameters updated. Note that ``tzinfo=None`` can be specified to create a " @@ -2521,41 +2541,41 @@ msgid "" "time data." msgstr "" -#: library/datetime.rst:1901 +#: library/datetime.rst:1917 msgid "" ":class:`.time` objects are also supported by generic function :func:`copy." "replace`." msgstr "" -#: library/datetime.rst:1910 +#: library/datetime.rst:1926 msgid "Return a string representing the time in ISO 8601 format, one of:" msgstr "" -#: library/datetime.rst:1912 +#: library/datetime.rst:1928 msgid "``HH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" msgstr "" -#: library/datetime.rst:1913 +#: library/datetime.rst:1929 msgid "``HH:MM:SS``, if :attr:`microsecond` is 0" msgstr "" -#: library/datetime.rst:1914 +#: library/datetime.rst:1930 msgid "" "``HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, if :meth:`utcoffset` does not " "return ``None``" msgstr "" -#: library/datetime.rst:1915 +#: library/datetime.rst:1931 msgid "" "``HH:MM:SS+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` is 0 and :meth:" "`utcoffset` does not return ``None``" msgstr "" -#: library/datetime.rst:1935 +#: library/datetime.rst:1951 msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument." msgstr "" -#: library/datetime.rst:1939 +#: library/datetime.rst:1955 msgid "" ">>> from datetime import time\n" ">>> time(hour=12, minute=34, second=56, microsecond=123456)." @@ -2568,18 +2588,18 @@ msgid "" "'12:34:56'" msgstr "" -#: library/datetime.rst:1954 +#: library/datetime.rst:1970 msgid "For a time ``t``, ``str(t)`` is equivalent to ``t.isoformat()``." msgstr "" -#: library/datetime.rst:1959 +#: library/datetime.rst:1975 msgid "" "Return a string representing the time, controlled by an explicit format " "string. See also :ref:`strftime-strptime-behavior` and :meth:`time." "isoformat`." msgstr "" -#: library/datetime.rst:1965 +#: library/datetime.rst:1981 msgid "" "Same as :meth:`.time.strftime`. This makes it possible to specify a format " "string for a :class:`.time` object in :ref:`formatted string literals >> from datetime import time, tzinfo, timedelta\n" ">>> class TZ1(tzinfo):\n" @@ -2644,18 +2664,18 @@ msgid "" "'The time is 12:10.'" msgstr "" -#: library/datetime.rst:2030 +#: library/datetime.rst:2046 msgid ":class:`tzinfo` Objects" msgstr "" -#: library/datetime.rst:2034 +#: library/datetime.rst:2050 msgid "" "This is an abstract base class, meaning that this class should not be " "instantiated directly. Define a subclass of :class:`tzinfo` to capture " "information about a particular time zone." msgstr "" -#: library/datetime.rst:2038 +#: library/datetime.rst:2054 msgid "" "An instance of (a concrete subclass of) :class:`tzinfo` can be passed to the " "constructors for :class:`.datetime` and :class:`.time` objects. The latter " @@ -2665,7 +2685,7 @@ msgid "" "object passed to them." msgstr "" -#: library/datetime.rst:2044 +#: library/datetime.rst:2060 msgid "" "You need to derive a concrete subclass, and (at least) supply " "implementations of the standard :class:`tzinfo` methods needed by the :class:" @@ -2675,7 +2695,7 @@ msgid "" "American EST and EDT." msgstr "" -#: library/datetime.rst:2051 +#: library/datetime.rst:2067 msgid "" "Special requirement for pickling: A :class:`tzinfo` subclass must have an :" "meth:`~object.__init__` method that can be called with no arguments, " @@ -2683,20 +2703,20 @@ msgid "" "technical requirement that may be relaxed in the future." msgstr "" -#: library/datetime.rst:2057 +#: library/datetime.rst:2073 msgid "" "A concrete subclass of :class:`tzinfo` may need to implement the following " "methods. Exactly which methods are needed depends on the uses made of aware :" "mod:`!datetime` objects. If in doubt, simply implement all of them." msgstr "" -#: library/datetime.rst:2064 +#: library/datetime.rst:2080 msgid "" "Return offset of local time from UTC, as a :class:`timedelta` object that is " "positive east of UTC. If local time is west of UTC, this should be negative." msgstr "" -#: library/datetime.rst:2067 +#: library/datetime.rst:2083 msgid "" "This represents the *total* offset from UTC; for example, if a :class:" "`tzinfo` object represents both time zone and DST adjustments, :meth:" @@ -2707,31 +2727,31 @@ msgid "" "meth:`utcoffset` will probably look like one of these two::" msgstr "" -#: library/datetime.rst:2075 +#: library/datetime.rst:2091 msgid "" "return CONSTANT # fixed-offset class\n" "return CONSTANT + self.dst(dt) # daylight-aware class" msgstr "" -#: library/datetime.rst:2078 +#: library/datetime.rst:2094 msgid "" "If :meth:`utcoffset` does not return ``None``, :meth:`dst` should not return " "``None`` either." msgstr "" -#: library/datetime.rst:2081 +#: library/datetime.rst:2097 msgid "" "The default implementation of :meth:`utcoffset` raises :exc:" "`NotImplementedError`." msgstr "" -#: library/datetime.rst:2090 +#: library/datetime.rst:2106 msgid "" "Return the daylight saving time (DST) adjustment, as a :class:`timedelta` " "object or ``None`` if DST information isn't known." msgstr "" -#: library/datetime.rst:2094 +#: library/datetime.rst:2110 msgid "" "Return ``timedelta(0)`` if DST is not in effect. If DST is in effect, return " "the offset as a :class:`timedelta` object (see :meth:`utcoffset` for " @@ -2744,17 +2764,17 @@ msgid "" "to account for DST changes when crossing time zones." msgstr "" -#: library/datetime.rst:2104 +#: library/datetime.rst:2120 msgid "" "An instance *tz* of a :class:`tzinfo` subclass that models both standard and " "daylight times must be consistent in this sense:" msgstr "" -#: library/datetime.rst:2107 +#: library/datetime.rst:2123 msgid "``tz.utcoffset(dt) - tz.dst(dt)``" msgstr "" -#: library/datetime.rst:2109 +#: library/datetime.rst:2125 msgid "" "must return the same result for every :class:`.datetime` *dt* with ``dt." "tzinfo == tz``. For sane :class:`tzinfo` subclasses, this expression yields " @@ -2767,24 +2787,24 @@ msgid "" "astimezone` regardless." msgstr "" -#: library/datetime.rst:2118 +#: library/datetime.rst:2134 msgid "" "Most implementations of :meth:`dst` will probably look like one of these " "two::" msgstr "" -#: library/datetime.rst:2120 +#: library/datetime.rst:2136 msgid "" "def dst(self, dt):\n" " # a fixed-offset class: doesn't account for DST\n" " return timedelta(0)" msgstr "" -#: library/datetime.rst:2124 +#: library/datetime.rst:2140 msgid "or::" msgstr "" -#: library/datetime.rst:2126 +#: library/datetime.rst:2142 msgid "" "def dst(self, dt):\n" " # Code to set dston and dstoff to the time zone's DST\n" @@ -2797,12 +2817,12 @@ msgid "" " return timedelta(0)" msgstr "" -#: library/datetime.rst:2136 +#: library/datetime.rst:2152 msgid "" "The default implementation of :meth:`dst` raises :exc:`NotImplementedError`." msgstr "" -#: library/datetime.rst:2144 +#: library/datetime.rst:2160 msgid "" "Return the time zone name corresponding to the :class:`.datetime` object " "*dt*, as a string. Nothing about string names is defined by the :mod:`!" @@ -2816,13 +2836,13 @@ msgid "" "accounting for daylight time." msgstr "" -#: library/datetime.rst:2154 +#: library/datetime.rst:2170 msgid "" "The default implementation of :meth:`tzname` raises :exc:" "`NotImplementedError`." msgstr "" -#: library/datetime.rst:2157 +#: library/datetime.rst:2173 msgid "" "These methods are called by a :class:`.datetime` or :class:`.time` object, " "in response to their methods of the same names. A :class:`.datetime` object " @@ -2832,7 +2852,7 @@ msgid "" "datetime`." msgstr "" -#: library/datetime.rst:2163 +#: library/datetime.rst:2179 msgid "" "When ``None`` is passed, it's up to the class designer to decide the best " "response. For example, returning ``None`` is appropriate if the class wishes " @@ -2841,7 +2861,7 @@ msgid "" "offset, as there is no other convention for discovering the standard offset." msgstr "" -#: library/datetime.rst:2169 +#: library/datetime.rst:2185 msgid "" "When a :class:`.datetime` object is passed in response to a :class:`." "datetime` method, ``dt.tzinfo`` is the same object as *self*. :class:" @@ -2851,13 +2871,13 @@ msgid "" "zones." msgstr "" -#: library/datetime.rst:2175 +#: library/datetime.rst:2191 msgid "" "There is one more :class:`tzinfo` method that a subclass may wish to " "override:" msgstr "" -#: library/datetime.rst:2180 +#: library/datetime.rst:2196 msgid "" "This is called from the default :meth:`datetime.astimezone` implementation. " "When called from that, ``dt.tzinfo`` is *self*, and *dt*'s date and time " @@ -2866,7 +2886,7 @@ msgid "" "datetime in *self*'s local time." msgstr "" -#: library/datetime.rst:2186 +#: library/datetime.rst:2202 msgid "" "Most :class:`tzinfo` subclasses should be able to inherit the default :meth:" "`fromutc` implementation without problems. It's strong enough to handle " @@ -2881,13 +2901,13 @@ msgid "" "offset changes." msgstr "" -#: library/datetime.rst:2197 +#: library/datetime.rst:2213 msgid "" "Skipping code for error cases, the default :meth:`fromutc` implementation " "acts like::" msgstr "" -#: library/datetime.rst:2200 +#: library/datetime.rst:2216 msgid "" "def fromutc(self, dt):\n" " # raise ValueError error if dt.tzinfo is not self\n" @@ -2905,13 +2925,13 @@ msgid "" " return dt" msgstr "" -#: library/datetime.rst:2215 +#: library/datetime.rst:2231 msgid "" "In the following :download:`tzinfo_examples.py <../includes/tzinfo_examples." "py>` file there are some examples of :class:`tzinfo` classes:" msgstr "" -#: library/datetime.rst:2219 +#: library/datetime.rst:2235 msgid "" "from datetime import tzinfo, timedelta, datetime\n" "\n" @@ -3091,7 +3111,7 @@ msgid "" "Pacific = USTimeZone(-8, \"Pacific\", \"PST\", \"PDT\")\n" msgstr "" -#: library/datetime.rst:2221 +#: library/datetime.rst:2237 msgid "" "Note that there are unavoidable subtleties twice per year in a :class:" "`tzinfo` subclass accounting for both standard and daylight time, at the DST " @@ -3100,7 +3120,7 @@ msgid "" "ends the minute after 1:59 (EDT) on the first Sunday in November::" msgstr "" -#: library/datetime.rst:2227 +#: library/datetime.rst:2243 msgid "" " UTC 3:MM 4:MM 5:MM 6:MM 7:MM 8:MM\n" " EST 22:MM 23:MM 0:MM 1:MM 2:MM 3:MM\n" @@ -3111,7 +3131,7 @@ msgid "" " end 23:MM 0:MM 1:MM 1:MM 2:MM 3:MM" msgstr "" -#: library/datetime.rst:2235 +#: library/datetime.rst:2251 msgid "" "When DST starts (the \"start\" line), the local wall clock leaps from 1:59 " "to 3:00. A wall time of the form 2:MM doesn't really make sense on that day, " @@ -3120,7 +3140,7 @@ msgid "" "get::" msgstr "" -#: library/datetime.rst:2240 +#: library/datetime.rst:2256 msgid "" ">>> from datetime import datetime, timezone\n" ">>> from tzinfo_examples import HOUR, Eastern\n" @@ -3136,7 +3156,7 @@ msgid "" "08:00:00 UTC = 04:00:00 EDT" msgstr "" -#: library/datetime.rst:2254 +#: library/datetime.rst:2270 msgid "" "When DST ends (the \"end\" line), there's a potentially worse problem: " "there's an hour that can't be spelled unambiguously in local wall time: the " @@ -3151,7 +3171,7 @@ msgid "" "Fall back transition of 2016, we get::" msgstr "" -#: library/datetime.rst:2265 +#: library/datetime.rst:2281 msgid "" ">>> u0 = datetime(2016, 11, 6, 4, tzinfo=timezone.utc)\n" ">>> for i in range(4):\n" @@ -3165,13 +3185,13 @@ msgid "" "07:00:00 UTC = 02:00:00 EST 0" msgstr "" -#: library/datetime.rst:2276 +#: library/datetime.rst:2292 msgid "" "Note that the :class:`.datetime` instances that differ only by the value of " "the :attr:`~.datetime.fold` attribute are considered equal in comparisons." msgstr "" -#: library/datetime.rst:2279 +#: library/datetime.rst:2295 msgid "" "Applications that can't bear wall-time ambiguities should explicitly check " "the value of the :attr:`~.datetime.fold` attribute or avoid using hybrid :" @@ -3181,28 +3201,28 @@ msgid "" "offset -4 hours))." msgstr "" -#: library/datetime.rst:2287 +#: library/datetime.rst:2303 msgid ":mod:`zoneinfo`" msgstr "" -#: library/datetime.rst:2288 +#: library/datetime.rst:2304 msgid "" "The :mod:`!datetime` module has a basic :class:`timezone` class (for " "handling arbitrary fixed offsets from UTC) and its :attr:`timezone.utc` " "attribute (a UTC :class:`!timezone` instance)." msgstr "" -#: library/datetime.rst:2292 +#: library/datetime.rst:2308 msgid "" "``zoneinfo`` brings the *IANA time zone database* (also known as the Olson " "database) to Python, and its usage is recommended." msgstr "" -#: library/datetime.rst:2295 +#: library/datetime.rst:2311 msgid "`IANA time zone database `_" msgstr "" -#: library/datetime.rst:2296 +#: library/datetime.rst:2312 msgid "" "The Time Zone Database (often called tz, tzdata or zoneinfo) contains code " "and data that represent the history of local time for many representative " @@ -3211,24 +3231,24 @@ msgid "" "saving rules." msgstr "" -#: library/datetime.rst:2306 +#: library/datetime.rst:2322 msgid ":class:`timezone` Objects" msgstr "" -#: library/datetime.rst:2308 +#: library/datetime.rst:2324 msgid "" "The :class:`timezone` class is a subclass of :class:`tzinfo`, each instance " "of which represents a time zone defined by a fixed offset from UTC." msgstr "" -#: library/datetime.rst:2312 +#: library/datetime.rst:2328 msgid "" "Objects of this class cannot be used to represent time zone information in " "the locations where different offsets are used in different days of the year " "or where historical changes have been made to civil time." msgstr "" -#: library/datetime.rst:2319 +#: library/datetime.rst:2335 msgid "" "The *offset* argument must be specified as a :class:`timedelta` object " "representing the difference between the local time and UTC. It must be " @@ -3236,25 +3256,25 @@ msgid "" "otherwise :exc:`ValueError` is raised." msgstr "" -#: library/datetime.rst:2324 +#: library/datetime.rst:2340 msgid "" "The *name* argument is optional. If specified it must be a string that will " "be used as the value returned by the :meth:`datetime.tzname` method." msgstr "" -#: library/datetime.rst:2346 +#: library/datetime.rst:2362 msgid "" "Return the fixed value specified when the :class:`timezone` instance is " "constructed." msgstr "" -#: library/datetime.rst:2338 +#: library/datetime.rst:2354 msgid "" "The *dt* argument is ignored. The return value is a :class:`timedelta` " "instance equal to the difference between the local time and UTC." msgstr "" -#: library/datetime.rst:2349 +#: library/datetime.rst:2365 msgid "" "If *name* is not provided in the constructor, the name returned by " "``tzname(dt)`` is generated from the value of the ``offset`` as follows. If " @@ -3263,119 +3283,119 @@ msgid "" "are two digits of ``offset.hours`` and ``offset.minutes`` respectively." msgstr "" -#: library/datetime.rst:2355 +#: library/datetime.rst:2371 msgid "" "Name generated from ``offset=timedelta(0)`` is now plain ``'UTC'``, not " "``'UTC+00:00'``." msgstr "" -#: library/datetime.rst:2362 +#: library/datetime.rst:2378 msgid "Always returns ``None``." msgstr "" -#: library/datetime.rst:2366 +#: library/datetime.rst:2382 msgid "" "Return ``dt + offset``. The *dt* argument must be an aware :class:`." "datetime` instance, with ``tzinfo`` set to ``self``." msgstr "" -#: library/datetime.rst:2373 +#: library/datetime.rst:2389 msgid "The UTC time zone, ``timezone(timedelta(0))``." msgstr "" -#: library/datetime.rst:2382 +#: library/datetime.rst:2398 msgid ":meth:`~.datetime.strftime` and :meth:`~.datetime.strptime` Behavior" msgstr "" -#: library/datetime.rst:2384 +#: library/datetime.rst:2400 msgid "" ":class:`date`, :class:`.datetime`, and :class:`.time` objects all support a " "``strftime(format)`` method, to create a string representing the time under " "the control of an explicit format string." msgstr "" -#: library/datetime.rst:2388 +#: library/datetime.rst:2404 msgid "" "Conversely, the :meth:`datetime.strptime` class method creates a :class:`." "datetime` object from a string representing a date and time and a " "corresponding format string." msgstr "" -#: library/datetime.rst:2392 +#: library/datetime.rst:2408 msgid "" "The table below provides a high-level comparison of :meth:`~.datetime." "strftime` versus :meth:`~.datetime.strptime`:" msgstr "" -#: library/datetime.rst:2396 +#: library/datetime.rst:2412 msgid "``strftime``" msgstr "" -#: library/datetime.rst:2396 +#: library/datetime.rst:2412 msgid "``strptime``" msgstr "" -#: library/datetime.rst:2398 +#: library/datetime.rst:2414 msgid "Usage" msgstr "" -#: library/datetime.rst:2398 +#: library/datetime.rst:2414 msgid "Convert object to a string according to a given format" msgstr "" -#: library/datetime.rst:2398 +#: library/datetime.rst:2414 msgid "" "Parse a string into a :class:`.datetime` object given a corresponding format" msgstr "" -#: library/datetime.rst:2400 +#: library/datetime.rst:2416 msgid "Type of method" msgstr "" -#: library/datetime.rst:2400 +#: library/datetime.rst:2416 msgid "Instance method" msgstr "" -#: library/datetime.rst:2400 +#: library/datetime.rst:2416 msgid "Class method" msgstr "" -#: library/datetime.rst:2402 +#: library/datetime.rst:2418 msgid "Method of" msgstr "" -#: library/datetime.rst:2402 +#: library/datetime.rst:2418 msgid ":class:`date`; :class:`.datetime`; :class:`.time`" msgstr "" -#: library/datetime.rst:2402 +#: library/datetime.rst:2418 msgid ":class:`.datetime`" msgstr "" -#: library/datetime.rst:2404 +#: library/datetime.rst:2420 msgid "Signature" msgstr "" -#: library/datetime.rst:2404 +#: library/datetime.rst:2420 msgid "``strftime(format)``" msgstr "" -#: library/datetime.rst:2404 +#: library/datetime.rst:2420 msgid "``strptime(date_string, format)``" msgstr "" -#: library/datetime.rst:2411 +#: library/datetime.rst:2427 msgid "" ":meth:`~.datetime.strftime` and :meth:`~.datetime.strptime` Format Codes" msgstr "" -#: library/datetime.rst:2413 +#: library/datetime.rst:2429 msgid "" "These methods accept format codes that can be used to parse and format " "dates::" msgstr "" -#: library/datetime.rst:2415 +#: library/datetime.rst:2431 msgid "" ">>> datetime.strptime('31/01/22 23:59:59.999999',\n" "... '%d/%m/%y %H:%M:%S.%f')\n" @@ -3384,33 +3404,33 @@ msgid "" "'Mon 31 Jan 2022, 11:59PM'" msgstr "" -#: library/datetime.rst:2421 +#: library/datetime.rst:2437 msgid "" "The following is a list of all the format codes that the 1989 C standard " "requires, and these work on all platforms with a standard C implementation." msgstr "" -#: library/datetime.rst:2528 +#: library/datetime.rst:2544 msgid "Directive" msgstr "" -#: library/datetime.rst:2528 +#: library/datetime.rst:2544 msgid "Meaning" msgstr "" -#: library/datetime.rst:2528 +#: library/datetime.rst:2544 msgid "Example" msgstr "" -#: library/datetime.rst:2528 +#: library/datetime.rst:2544 msgid "Notes" msgstr "" -#: library/datetime.rst:2427 +#: library/datetime.rst:2443 msgid "``%a``" msgstr "" -#: library/datetime.rst:2427 +#: library/datetime.rst:2443 msgid "Weekday as locale's abbreviated name." msgstr "" @@ -3422,11 +3442,11 @@ msgstr "" msgid "So, Mo, ..., Sa (de_DE)" msgstr "" -#: library/datetime.rst:2432 +#: library/datetime.rst:2448 msgid "``%A``" msgstr "" -#: library/datetime.rst:2432 +#: library/datetime.rst:2448 msgid "Weekday as locale's full name." msgstr "" @@ -3438,40 +3458,40 @@ msgstr "" msgid "Sonntag, Montag, ..., Samstag (de_DE)" msgstr "" -#: library/datetime.rst:2437 +#: library/datetime.rst:2453 msgid "``%w``" msgstr "" -#: library/datetime.rst:2437 +#: library/datetime.rst:2453 msgid "Weekday as a decimal number, where 0 is Sunday and 6 is Saturday." msgstr "" -#: library/datetime.rst:2437 +#: library/datetime.rst:2453 msgid "0, 1, ..., 6" msgstr "" -#: library/datetime.rst:2441 +#: library/datetime.rst:2457 msgid "``%d``" msgstr "" -#: library/datetime.rst:2441 +#: library/datetime.rst:2457 msgid "Day of the month as a zero-padded decimal number." msgstr "" -#: library/datetime.rst:2441 +#: library/datetime.rst:2457 msgid "01, 02, ..., 31" msgstr "" -#: library/datetime.rst:2454 library/datetime.rst:2463 -#: library/datetime.rst:2472 library/datetime.rst:2490 +#: library/datetime.rst:2470 library/datetime.rst:2479 +#: library/datetime.rst:2488 library/datetime.rst:2506 msgid "\\(9)" msgstr "" -#: library/datetime.rst:2444 +#: library/datetime.rst:2460 msgid "``%b``" msgstr "" -#: library/datetime.rst:2444 +#: library/datetime.rst:2460 msgid "Month as locale's abbreviated name." msgstr "" @@ -3483,11 +3503,11 @@ msgstr "" msgid "Jan, Feb, ..., Dez (de_DE)" msgstr "" -#: library/datetime.rst:2449 +#: library/datetime.rst:2465 msgid "``%B``" msgstr "" -#: library/datetime.rst:2449 +#: library/datetime.rst:2465 msgid "Month as locale's full name." msgstr "" @@ -3499,67 +3519,67 @@ msgstr "" msgid "Januar, Februar, ..., Dezember (de_DE)" msgstr "" -#: library/datetime.rst:2454 +#: library/datetime.rst:2470 msgid "``%m``" msgstr "" -#: library/datetime.rst:2454 +#: library/datetime.rst:2470 msgid "Month as a zero-padded decimal number." msgstr "" -#: library/datetime.rst:2466 +#: library/datetime.rst:2482 msgid "01, 02, ..., 12" msgstr "" -#: library/datetime.rst:2457 +#: library/datetime.rst:2473 msgid "``%y``" msgstr "" -#: library/datetime.rst:2457 +#: library/datetime.rst:2473 msgid "Year without century as a zero-padded decimal number." msgstr "" -#: library/datetime.rst:2457 +#: library/datetime.rst:2473 msgid "00, 01, ..., 99" msgstr "" -#: library/datetime.rst:2460 +#: library/datetime.rst:2476 msgid "``%Y``" msgstr "" -#: library/datetime.rst:2460 +#: library/datetime.rst:2476 msgid "Year with century as a decimal number." msgstr "" -#: library/datetime.rst:2530 +#: library/datetime.rst:2546 msgid "0001, 0002, ..., 2013, 2014, ..., 9998, 9999" msgstr "" -#: library/datetime.rst:2463 +#: library/datetime.rst:2479 msgid "``%H``" msgstr "" -#: library/datetime.rst:2463 +#: library/datetime.rst:2479 msgid "Hour (24-hour clock) as a zero-padded decimal number." msgstr "" -#: library/datetime.rst:2463 +#: library/datetime.rst:2479 msgid "00, 01, ..., 23" msgstr "" -#: library/datetime.rst:2466 +#: library/datetime.rst:2482 msgid "``%I``" msgstr "" -#: library/datetime.rst:2466 +#: library/datetime.rst:2482 msgid "Hour (12-hour clock) as a zero-padded decimal number." msgstr "" -#: library/datetime.rst:2469 +#: library/datetime.rst:2485 msgid "``%p``" msgstr "" -#: library/datetime.rst:2469 +#: library/datetime.rst:2485 msgid "Locale's equivalent of either AM or PM." msgstr "" @@ -3571,127 +3591,127 @@ msgstr "" msgid "am, pm (de_DE)" msgstr "" -#: library/datetime.rst:2469 +#: library/datetime.rst:2485 msgid "\\(1), \\(3)" msgstr "" -#: library/datetime.rst:2472 +#: library/datetime.rst:2488 msgid "``%M``" msgstr "" -#: library/datetime.rst:2472 +#: library/datetime.rst:2488 msgid "Minute as a zero-padded decimal number." msgstr "" -#: library/datetime.rst:2475 +#: library/datetime.rst:2491 msgid "00, 01, ..., 59" msgstr "" -#: library/datetime.rst:2475 +#: library/datetime.rst:2491 msgid "``%S``" msgstr "" -#: library/datetime.rst:2475 +#: library/datetime.rst:2491 msgid "Second as a zero-padded decimal number." msgstr "" -#: library/datetime.rst:2475 +#: library/datetime.rst:2491 msgid "\\(4), \\(9)" msgstr "" -#: library/datetime.rst:2478 +#: library/datetime.rst:2494 msgid "``%f``" msgstr "" -#: library/datetime.rst:2478 +#: library/datetime.rst:2494 msgid "Microsecond as a decimal number, zero-padded to 6 digits." msgstr "" -#: library/datetime.rst:2478 +#: library/datetime.rst:2494 msgid "000000, 000001, ..., 999999" msgstr "" -#: library/datetime.rst:2478 +#: library/datetime.rst:2494 msgid "\\(5)" msgstr "" -#: library/datetime.rst:2641 +#: library/datetime.rst:2657 msgid "``%z``" msgstr "" -#: library/datetime.rst:2482 +#: library/datetime.rst:2498 msgid "" "UTC offset in the form ``±HHMM[SS[.ffffff]]`` (empty string if the object is " "naive)." msgstr "" -#: library/datetime.rst:2482 +#: library/datetime.rst:2498 msgid "(empty), +0000, -0400, +1030, +063415, -030712.345216" msgstr "" -#: library/datetime.rst:2487 library/datetime.rst:2544 +#: library/datetime.rst:2503 library/datetime.rst:2560 msgid "\\(6)" msgstr "" -#: library/datetime.rst:2667 +#: library/datetime.rst:2683 msgid "``%Z``" msgstr "" -#: library/datetime.rst:2487 +#: library/datetime.rst:2503 msgid "Time zone name (empty string if the object is naive)." msgstr "" -#: library/datetime.rst:2487 +#: library/datetime.rst:2503 msgid "(empty), UTC, GMT" msgstr "" -#: library/datetime.rst:2490 +#: library/datetime.rst:2506 msgid "``%j``" msgstr "" -#: library/datetime.rst:2490 +#: library/datetime.rst:2506 msgid "Day of the year as a zero-padded decimal number." msgstr "" -#: library/datetime.rst:2490 +#: library/datetime.rst:2506 msgid "001, 002, ..., 366" msgstr "" -#: library/datetime.rst:2493 +#: library/datetime.rst:2509 msgid "``%U``" msgstr "" -#: library/datetime.rst:2493 +#: library/datetime.rst:2509 msgid "" "Week number of the year (Sunday as the first day of the week) as a zero-" "padded decimal number. All days in a new year preceding the first Sunday are " "considered to be in week 0." msgstr "" -#: library/datetime.rst:2501 +#: library/datetime.rst:2517 msgid "00, 01, ..., 53" msgstr "" -#: library/datetime.rst:2501 +#: library/datetime.rst:2517 msgid "\\(7), \\(9)" msgstr "" -#: library/datetime.rst:2501 +#: library/datetime.rst:2517 msgid "``%W``" msgstr "" -#: library/datetime.rst:2501 +#: library/datetime.rst:2517 msgid "" "Week number of the year (Monday as the first day of the week) as a zero-" "padded decimal number. All days in a new year preceding the first Monday are " "considered to be in week 0." msgstr "" -#: library/datetime.rst:2509 +#: library/datetime.rst:2525 msgid "``%c``" msgstr "" -#: library/datetime.rst:2509 +#: library/datetime.rst:2525 msgid "Locale's appropriate date and time representation." msgstr "" @@ -3703,11 +3723,11 @@ msgstr "" msgid "Di 16 Aug 21:30:00 1988 (de_DE)" msgstr "" -#: library/datetime.rst:2514 +#: library/datetime.rst:2530 msgid "``%x``" msgstr "" -#: library/datetime.rst:2514 +#: library/datetime.rst:2530 msgid "Locale's appropriate date representation." msgstr "" @@ -3723,11 +3743,11 @@ msgstr "" msgid "16.08.1988 (de_DE)" msgstr "" -#: library/datetime.rst:2518 +#: library/datetime.rst:2534 msgid "``%X``" msgstr "" -#: library/datetime.rst:2518 +#: library/datetime.rst:2534 msgid "Locale's appropriate time representation." msgstr "" @@ -3739,83 +3759,83 @@ msgstr "" msgid "21:30:00 (de_DE)" msgstr "" -#: library/datetime.rst:2521 +#: library/datetime.rst:2537 msgid "``%%``" msgstr "" -#: library/datetime.rst:2521 +#: library/datetime.rst:2537 msgid "A literal ``'%'`` character." msgstr "" -#: library/datetime.rst:2521 +#: library/datetime.rst:2537 msgid "%" msgstr "" -#: library/datetime.rst:2524 +#: library/datetime.rst:2540 msgid "" "Several additional directives not required by the C89 standard are included " "for convenience. These parameters all correspond to ISO 8601 date values." msgstr "" -#: library/datetime.rst:2530 +#: library/datetime.rst:2546 msgid "``%G``" msgstr "" -#: library/datetime.rst:2530 +#: library/datetime.rst:2546 msgid "" "ISO 8601 year with century representing the year that contains the greater " "part of the ISO week (``%V``)." msgstr "" -#: library/datetime.rst:2530 +#: library/datetime.rst:2546 msgid "\\(8)" msgstr "" -#: library/datetime.rst:2535 +#: library/datetime.rst:2551 msgid "``%u``" msgstr "" -#: library/datetime.rst:2535 +#: library/datetime.rst:2551 msgid "ISO 8601 weekday as a decimal number where 1 is Monday." msgstr "" -#: library/datetime.rst:2535 +#: library/datetime.rst:2551 msgid "1, 2, ..., 7" msgstr "" -#: library/datetime.rst:2538 +#: library/datetime.rst:2554 msgid "``%V``" msgstr "" -#: library/datetime.rst:2538 +#: library/datetime.rst:2554 msgid "" "ISO 8601 week as a decimal number with Monday as the first day of the week. " "Week 01 is the week containing Jan 4." msgstr "" -#: library/datetime.rst:2538 +#: library/datetime.rst:2554 msgid "01, 02, ..., 53" msgstr "" -#: library/datetime.rst:2538 +#: library/datetime.rst:2554 msgid "\\(8), \\(9)" msgstr "" -#: library/datetime.rst:2663 +#: library/datetime.rst:2679 msgid "``%:z``" msgstr "" -#: library/datetime.rst:2544 +#: library/datetime.rst:2560 msgid "" "UTC offset in the form ``±HH:MM[:SS[.ffffff]]`` (empty string if the object " "is naive)." msgstr "" -#: library/datetime.rst:2544 +#: library/datetime.rst:2560 msgid "(empty), +00:00, -04:00, +10:30, +06:34:15, -03:07:12.345216" msgstr "" -#: library/datetime.rst:2550 +#: library/datetime.rst:2566 msgid "" "These may not be available on all platforms when used with the :meth:`~." "datetime.strftime` method. The ISO 8601 year and ISO 8601 week directives " @@ -3824,7 +3844,7 @@ msgid "" "directives will raise a :exc:`ValueError`." msgstr "" -#: library/datetime.rst:2555 +#: library/datetime.rst:2571 msgid "" "The full set of format codes supported varies across platforms, because " "Python calls the platform C library's :c:func:`strftime` function, and " @@ -3834,58 +3854,58 @@ msgid "" "unsupported format specifiers." msgstr "" -#: library/datetime.rst:2561 +#: library/datetime.rst:2577 msgid "``%G``, ``%u`` and ``%V`` were added." msgstr "" -#: library/datetime.rst:2564 +#: library/datetime.rst:2580 msgid "``%:z`` was added." msgstr "" -#: library/datetime.rst:2568 +#: library/datetime.rst:2584 msgid "Technical Detail" msgstr "" -#: library/datetime.rst:2570 +#: library/datetime.rst:2586 msgid "" "Broadly speaking, ``d.strftime(fmt)`` acts like the :mod:`time` module's " "``time.strftime(fmt, d.timetuple())`` although not all objects support a :" "meth:`~date.timetuple` method." msgstr "" -#: library/datetime.rst:2574 +#: library/datetime.rst:2590 msgid "" "For the :meth:`.datetime.strptime` class method, the default value is " "``1900-01-01T00:00:00.000``: any components not specified in the format " "string will be pulled from the default value. [#]_" msgstr "" -#: library/datetime.rst:2578 +#: library/datetime.rst:2594 msgid "Using ``datetime.strptime(date_string, format)`` is equivalent to::" msgstr "" -#: library/datetime.rst:2582 +#: library/datetime.rst:2598 msgid "" "except when the format includes sub-second components or time zone offset " "information, which are supported in ``datetime.strptime`` but are discarded " "by ``time.strptime``." msgstr "" -#: library/datetime.rst:2586 +#: library/datetime.rst:2602 msgid "" "For :class:`.time` objects, the format codes for year, month, and day should " "not be used, as :class:`!time` objects have no such values. If they're used " "anyway, 1900 is substituted for the year, and 1 for the month and day." msgstr "" -#: library/datetime.rst:2590 +#: library/datetime.rst:2606 msgid "" "For :class:`date` objects, the format codes for hours, minutes, seconds, and " "microseconds should not be used, as :class:`date` objects have no such " "values. If they're used anyway, 0 is substituted for them." msgstr "" -#: library/datetime.rst:2594 +#: library/datetime.rst:2610 msgid "" "For the same reason, handling of format strings containing Unicode code " "points that can't be represented in the charset of the current locale is " @@ -3894,7 +3914,7 @@ msgid "" "`UnicodeError` or return an empty string instead." msgstr "" -#: library/datetime.rst:2603 +#: library/datetime.rst:2619 msgid "" "Because the format depends on the current locale, care should be taken when " "making assumptions about the output value. Field orderings will vary (for " @@ -3902,38 +3922,38 @@ msgid "" "contain non-ASCII characters." msgstr "" -#: library/datetime.rst:2609 +#: library/datetime.rst:2625 msgid "" "The :meth:`~.datetime.strptime` method can parse years in the full [1, 9999] " "range, but years < 1000 must be zero-filled to 4-digit width." msgstr "" -#: library/datetime.rst:2612 +#: library/datetime.rst:2628 msgid "" "In previous versions, :meth:`~.datetime.strftime` method was restricted to " "years >= 1900." msgstr "" -#: library/datetime.rst:2616 +#: library/datetime.rst:2632 msgid "" "In version 3.2, :meth:`~.datetime.strftime` method was restricted to years " ">= 1000." msgstr "" -#: library/datetime.rst:2621 +#: library/datetime.rst:2637 msgid "" "When used with the :meth:`~.datetime.strptime` method, the ``%p`` directive " "only affects the output hour field if the ``%I`` directive is used to parse " "the hour." msgstr "" -#: library/datetime.rst:2625 +#: library/datetime.rst:2641 msgid "" "Unlike the :mod:`time` module, the :mod:`!datetime` module does not support " "leap seconds." msgstr "" -#: library/datetime.rst:2629 +#: library/datetime.rst:2645 msgid "" "When used with the :meth:`~.datetime.strptime` method, the ``%f`` directive " "accepts from one to six digits and zero pads on the right. ``%f`` is an " @@ -3941,17 +3961,17 @@ msgid "" "separately in datetime objects, and therefore always available)." msgstr "" -#: library/datetime.rst:2636 +#: library/datetime.rst:2652 msgid "" "For a naive object, the ``%z``, ``%:z`` and ``%Z`` format codes are replaced " "by empty strings." msgstr "" -#: library/datetime.rst:2639 +#: library/datetime.rst:2655 msgid "For an aware object:" msgstr "" -#: library/datetime.rst:2642 +#: library/datetime.rst:2658 msgid "" ":meth:`~.datetime.utcoffset` is transformed into a string of the form " "``±HHMM[SS[.ffffff]]``, where ``HH`` is a 2-digit string giving the number " @@ -3965,7 +3985,7 @@ msgid "" "replaced with the string ``'-0330'``." msgstr "" -#: library/datetime.rst:2656 +#: library/datetime.rst:2672 msgid "" "When the ``%z`` directive is provided to the :meth:`~.datetime.strptime` " "method, the UTC offsets can have a colon as a separator between hours, " @@ -3974,53 +3994,53 @@ msgid "" "``'+00:00'``." msgstr "" -#: library/datetime.rst:2664 +#: library/datetime.rst:2680 msgid "" "Behaves exactly as ``%z``, but has a colon separator added between hours, " "minutes and seconds." msgstr "" -#: library/datetime.rst:2668 +#: library/datetime.rst:2684 msgid "" "In :meth:`~.datetime.strftime`, ``%Z`` is replaced by an empty string if :" "meth:`~.datetime.tzname` returns ``None``; otherwise ``%Z`` is replaced by " "the returned value, which must be a string." msgstr "" -#: library/datetime.rst:2672 +#: library/datetime.rst:2688 msgid ":meth:`~.datetime.strptime` only accepts certain values for ``%Z``:" msgstr "" -#: library/datetime.rst:2674 +#: library/datetime.rst:2690 msgid "any value in ``time.tzname`` for your machine's locale" msgstr "" -#: library/datetime.rst:2675 +#: library/datetime.rst:2691 msgid "the hard-coded values ``UTC`` and ``GMT``" msgstr "" -#: library/datetime.rst:2677 +#: library/datetime.rst:2693 msgid "" "So someone living in Japan may have ``JST``, ``UTC``, and ``GMT`` as valid " "values, but probably not ``EST``. It will raise ``ValueError`` for invalid " "values." msgstr "" -#: library/datetime.rst:2681 +#: library/datetime.rst:2697 msgid "" "When the ``%z`` directive is provided to the :meth:`~.datetime.strptime` " "method, an aware :class:`.datetime` object will be produced. The ``tzinfo`` " "of the result will be set to a :class:`timezone` instance." msgstr "" -#: library/datetime.rst:2687 +#: library/datetime.rst:2703 msgid "" "When used with the :meth:`~.datetime.strptime` method, ``%U`` and ``%W`` are " "only used in calculations when the day of the week and the calendar year " "(``%Y``) are specified." msgstr "" -#: library/datetime.rst:2692 +#: library/datetime.rst:2708 msgid "" "Similar to ``%U`` and ``%W``, ``%V`` is only used in calculations when the " "day of the week and the ISO year (``%G``) are specified in a :meth:`~." @@ -4028,7 +4048,7 @@ msgid "" "interchangeable." msgstr "" -#: library/datetime.rst:2698 +#: library/datetime.rst:2714 msgid "" "When used with the :meth:`~.datetime.strptime` method, the leading zero is " "optional for formats ``%d``, ``%m``, ``%H``, ``%I``, ``%M``, ``%S``, " @@ -4036,7 +4056,7 @@ msgid "" "zero." msgstr "" -#: library/datetime.rst:2703 +#: library/datetime.rst:2719 msgid "" "When parsing a month and day using :meth:`~.datetime.strptime`, always " "include a year in the format. If the value you need to parse lacks a year, " @@ -4045,7 +4065,7 @@ msgid "" "parser is not a leap year. Users run into this bug every four years..." msgstr "" -#: library/datetime.rst:2709 +#: library/datetime.rst:2725 msgid "" ">>> month_day = \"02/29\"\n" ">>> datetime.strptime(f\"{month_day};1984\", \"%m/%d;%Y\") # No leap year " @@ -4053,7 +4073,7 @@ msgid "" "datetime.datetime(1984, 2, 29, 0, 0)" msgstr "" -#: library/datetime.rst:2715 +#: library/datetime.rst:2731 msgid "" ":meth:`~.datetime.strptime` calls using a format string containing a day of " "month without a year now emit a :exc:`DeprecationWarning`. In 3.15 or later " @@ -4061,15 +4081,15 @@ msgid "" "See :gh:`70647`." msgstr "" -#: library/datetime.rst:2722 +#: library/datetime.rst:2738 msgid "Footnotes" msgstr "" -#: library/datetime.rst:2723 +#: library/datetime.rst:2739 msgid "If, that is, we ignore the effects of Relativity" msgstr "" -#: library/datetime.rst:2725 +#: library/datetime.rst:2741 msgid "" "This matches the definition of the \"proleptic Gregorian\" calendar in " "Dershowitz and Reingold's book *Calendrical Calculations*, where it's the " @@ -4078,23 +4098,23 @@ msgid "" "systems." msgstr "" -#: library/datetime.rst:2731 +#: library/datetime.rst:2747 msgid "" "See R. H. van Gent's `guide to the mathematics of the ISO 8601 calendar " "`_ for a good explanation." msgstr "" -#: library/datetime.rst:2735 +#: library/datetime.rst:2751 msgid "" "Passing ``datetime.strptime('Feb 29', '%b %d')`` will fail since 1900 is not " "a leap year." msgstr "" -#: library/datetime.rst:2376 +#: library/datetime.rst:2392 msgid "% (percent)" msgstr "" -#: library/datetime.rst:2376 +#: library/datetime.rst:2392 msgid "datetime format" msgstr "" diff --git a/library/dbm.po b/library/dbm.po index 6ebb4dee..108213ce 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 c9160b3b..c0bb5c2e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/decimal.po b/library/decimal.po index bf08650a..db529f38 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 "" msgstr "" #: library/decimal.rst:125 -msgid "Quick-start Tutorial" +msgid "Quick-start tutorial" msgstr "" #: library/decimal.rst:127 @@ -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 "" @@ -1064,12 +1064,12 @@ msgstr "" msgid "Return the square root of the argument to full precision." msgstr "" -#: library/decimal.rst:1512 +#: library/decimal.rst:1524 msgid "" "Convert to a string, using engineering notation if an exponent is needed." msgstr "" -#: library/decimal.rst:1514 +#: library/decimal.rst:1526 msgid "" "Engineering notation has an exponent which is a multiple of 3. This can " "leave up to 3 digits to the left of the decimal place and may require the " @@ -1336,65 +1336,62 @@ msgid "" "field is not specified or is :const:`None`, all flags are cleared." msgstr "" -#: library/decimal.rst:1074 +#: library/decimal.rst:1076 msgid "" -"*prec* is an integer in the range [``1``, :const:`MAX_PREC`] that sets the " -"precision for arithmetic operations in the context." +"An integer in the range [``1``, :const:`MAX_PREC`] that sets the precision " +"for arithmetic operations in the context." msgstr "" -#: library/decimal.rst:1077 -msgid "" -"The *rounding* option is one of the constants listed in the section " -"`Rounding Modes`_." +#: library/decimal.rst:1081 +msgid "One of the constants listed in the section `Rounding Modes`_." msgstr "" -#: library/decimal.rst:1080 +#: library/decimal.rst:1086 msgid "" -"The *traps* and *flags* fields list any signals to be set. Generally, new " -"contexts should only set traps and leave the flags clear." +"Lists of any signals to be set. Generally, new contexts should only set " +"traps and leave the flags clear." msgstr "" -#: library/decimal.rst:1083 +#: library/decimal.rst:1092 msgid "" -"The *Emin* and *Emax* fields are integers specifying the outer limits " -"allowable for exponents. *Emin* must be in the range [:const:`MIN_EMIN`, " -"``0``], *Emax* in the range [``0``, :const:`MAX_EMAX`]." +"Integers specifying the outer limits allowable for exponents. *Emin* must be " +"in the range [:const:`MIN_EMIN`, ``0``], *Emax* in the range [``0``, :const:" +"`MAX_EMAX`]." msgstr "" -#: library/decimal.rst:1087 +#: library/decimal.rst:1098 msgid "" -"The *capitals* field is either ``0`` or ``1`` (the default). If set to " -"``1``, exponents are printed with a capital ``E``; otherwise, a lowercase " -"``e`` is used: ``Decimal('6.02e+23')``." +"Either ``0`` or ``1`` (the default). If set to ``1``, exponents are printed " +"with a capital ``E``; otherwise, a lowercase ``e`` is used: " +"``Decimal('6.02e+23')``." msgstr "" -#: library/decimal.rst:1091 +#: library/decimal.rst:1104 msgid "" -"The *clamp* field is either ``0`` (the default) or ``1``. If set to ``1``, " -"the exponent ``e`` of a :class:`Decimal` instance representable in this " -"context is strictly limited to the range ``Emin - prec + 1 <= e <= Emax - " -"prec + 1``. If *clamp* is ``0`` then a weaker condition holds: the adjusted " -"exponent of the :class:`Decimal` instance is at most :attr:`~Context.Emax`. " -"When *clamp* is ``1``, a large normal number will, where possible, have its " -"exponent reduced and a corresponding number of zeros added to its " -"coefficient, in order to fit the exponent constraints; this preserves the " -"value of the number but loses information about significant trailing zeros. " -"For example::" +"Either ``0`` (the default) or ``1``. If set to ``1``, the exponent ``e`` of " +"a :class:`Decimal` instance representable in this context is strictly " +"limited to the range ``Emin - prec + 1 <= e <= Emax - prec + 1``. If *clamp* " +"is ``0`` then a weaker condition holds: the adjusted exponent of the :class:" +"`Decimal` instance is at most :attr:`~Context.Emax`. When *clamp* is ``1``, " +"a large normal number will, where possible, have its exponent reduced and a " +"corresponding number of zeros added to its coefficient, in order to fit the " +"exponent constraints; this preserves the value of the number but loses " +"information about significant trailing zeros. For example::" msgstr "" -#: library/decimal.rst:1103 +#: library/decimal.rst:1115 msgid "" ">>> Context(prec=6, Emax=999, clamp=1).create_decimal('1.23e999')\n" "Decimal('1.23000E+999')" msgstr "" -#: library/decimal.rst:1106 +#: library/decimal.rst:1118 msgid "" "A *clamp* value of ``1`` allows compatibility with the fixed-width decimal " "interchange formats specified in IEEE 754." msgstr "" -#: library/decimal.rst:1109 +#: library/decimal.rst:1121 msgid "" "The :class:`Context` class defines several general purpose methods as well " "as a large number of methods for doing arithmetic directly in a given " @@ -1407,30 +1404,30 @@ msgid "" "instance of :class:`int`) anywhere that a Decimal instance is accepted." msgstr "" -#: library/decimal.rst:1122 +#: library/decimal.rst:1134 msgid "Resets all of the flags to ``0``." msgstr "" -#: library/decimal.rst:1126 +#: library/decimal.rst:1138 msgid "Resets all of the traps to ``0``." msgstr "" -#: library/decimal.rst:1132 +#: library/decimal.rst:1144 msgid "Return a duplicate of the context." msgstr "" -#: library/decimal.rst:1136 +#: library/decimal.rst:1148 msgid "Return a copy of the Decimal instance num." msgstr "" -#: library/decimal.rst:1140 +#: library/decimal.rst:1152 msgid "" "Creates a new Decimal instance from *num* but using *self* as context. " "Unlike the :class:`Decimal` constructor, the context precision, rounding " "method, flags, and traps are applied to the conversion." msgstr "" -#: library/decimal.rst:1144 +#: library/decimal.rst:1156 msgid "" "This is useful because constants are often given to a greater precision than " "is needed by the application. Another benefit is that rounding immediately " @@ -1439,7 +1436,7 @@ msgid "" "sum can change the result:" msgstr "" -#: library/decimal.rst:1150 +#: library/decimal.rst:1162 msgid "" ">>> getcontext().prec = 3\n" ">>> Decimal('3.4445') + Decimal('1.0023')\n" @@ -1448,14 +1445,14 @@ msgid "" "Decimal('4.44')" msgstr "" -#: library/decimal.rst:1158 +#: library/decimal.rst:1170 msgid "" "This method implements the to-number operation of the IBM specification. If " "the argument is a string, no leading or trailing whitespace or underscores " "are permitted." msgstr "" -#: library/decimal.rst:1164 +#: library/decimal.rst:1176 msgid "" "Creates a new Decimal instance from a float *f* but rounding using *self* as " "the context. Unlike the :meth:`Decimal.from_float` class method, the " @@ -1463,7 +1460,7 @@ msgid "" "conversion." msgstr "" -#: library/decimal.rst:1169 +#: library/decimal.rst:1181 msgid "" ">>> context = Context(prec=5, rounding=ROUND_DOWN)\n" ">>> context.create_decimal_from_float(math.pi)\n" @@ -1475,18 +1472,18 @@ msgid "" "decimal.Inexact: None" msgstr "" -#: library/decimal.rst:1184 +#: library/decimal.rst:1196 msgid "" "Returns a value equal to ``Emin - prec + 1`` which is the minimum exponent " "value for subnormal results. When underflow occurs, the exponent is set to :" "const:`Etiny`." msgstr "" -#: library/decimal.rst:1190 +#: library/decimal.rst:1202 msgid "Returns a value equal to ``Emax - prec + 1``." msgstr "" -#: library/decimal.rst:1192 +#: library/decimal.rst:1204 msgid "" "The usual approach to working with decimals is to create :class:`Decimal` " "instances and then apply arithmetic operations which take place within the " @@ -1496,189 +1493,189 @@ msgid "" "recounted here." msgstr "" -#: library/decimal.rst:1202 +#: library/decimal.rst:1214 msgid "Returns the absolute value of *x*." msgstr "" -#: library/decimal.rst:1207 +#: library/decimal.rst:1219 msgid "Return the sum of *x* and *y*." msgstr "" -#: library/decimal.rst:1212 +#: library/decimal.rst:1224 msgid "Returns the same Decimal object *x*." msgstr "" -#: library/decimal.rst:1217 +#: library/decimal.rst:1229 msgid "Compares *x* and *y* numerically." msgstr "" -#: library/decimal.rst:1222 +#: library/decimal.rst:1234 msgid "Compares the values of the two operands numerically." msgstr "" -#: library/decimal.rst:1227 +#: library/decimal.rst:1239 msgid "Compares two operands using their abstract representation." msgstr "" -#: library/decimal.rst:1232 +#: library/decimal.rst:1244 msgid "" "Compares two operands using their abstract representation, ignoring sign." msgstr "" -#: library/decimal.rst:1237 +#: library/decimal.rst:1249 msgid "Returns a copy of *x* with the sign set to 0." msgstr "" -#: library/decimal.rst:1242 +#: library/decimal.rst:1254 msgid "Returns a copy of *x* with the sign inverted." msgstr "" -#: library/decimal.rst:1247 +#: library/decimal.rst:1259 msgid "Copies the sign from *y* to *x*." msgstr "" -#: library/decimal.rst:1252 +#: library/decimal.rst:1264 msgid "Return *x* divided by *y*." msgstr "" -#: library/decimal.rst:1257 +#: library/decimal.rst:1269 msgid "Return *x* divided by *y*, truncated to an integer." msgstr "" -#: library/decimal.rst:1262 +#: library/decimal.rst:1274 msgid "Divides two numbers and returns the integer part of the result." msgstr "" -#: library/decimal.rst:1267 +#: library/decimal.rst:1279 msgid "Returns ``e ** x``." msgstr "" -#: library/decimal.rst:1272 +#: library/decimal.rst:1284 msgid "Returns *x* multiplied by *y*, plus *z*." msgstr "" -#: library/decimal.rst:1277 +#: library/decimal.rst:1289 msgid "Returns ``True`` if *x* is canonical; otherwise returns ``False``." msgstr "" -#: library/decimal.rst:1282 +#: library/decimal.rst:1294 msgid "Returns ``True`` if *x* is finite; otherwise returns ``False``." msgstr "" -#: library/decimal.rst:1287 +#: library/decimal.rst:1299 msgid "Returns ``True`` if *x* is infinite; otherwise returns ``False``." msgstr "" -#: library/decimal.rst:1292 +#: library/decimal.rst:1304 msgid "Returns ``True`` if *x* is a qNaN or sNaN; otherwise returns ``False``." msgstr "" -#: library/decimal.rst:1297 +#: library/decimal.rst:1309 msgid "" "Returns ``True`` if *x* is a normal number; otherwise returns ``False``." msgstr "" -#: library/decimal.rst:1302 +#: library/decimal.rst:1314 msgid "Returns ``True`` if *x* is a quiet NaN; otherwise returns ``False``." msgstr "" -#: library/decimal.rst:1307 +#: library/decimal.rst:1319 msgid "Returns ``True`` if *x* is negative; otherwise returns ``False``." msgstr "" -#: library/decimal.rst:1312 +#: library/decimal.rst:1324 msgid "" "Returns ``True`` if *x* is a signaling NaN; otherwise returns ``False``." msgstr "" -#: library/decimal.rst:1317 +#: library/decimal.rst:1329 msgid "Returns ``True`` if *x* is subnormal; otherwise returns ``False``." msgstr "" -#: library/decimal.rst:1322 +#: library/decimal.rst:1334 msgid "Returns ``True`` if *x* is a zero; otherwise returns ``False``." msgstr "" -#: library/decimal.rst:1327 +#: library/decimal.rst:1339 msgid "Returns the natural (base e) logarithm of *x*." msgstr "" -#: library/decimal.rst:1332 +#: library/decimal.rst:1344 msgid "Returns the base 10 logarithm of *x*." msgstr "" -#: library/decimal.rst:1337 +#: library/decimal.rst:1349 msgid "Returns the exponent of the magnitude of the operand's MSD." msgstr "" -#: library/decimal.rst:1342 +#: library/decimal.rst:1354 msgid "Applies the logical operation *and* between each operand's digits." msgstr "" -#: library/decimal.rst:1347 +#: library/decimal.rst:1359 msgid "Invert all the digits in *x*." msgstr "" -#: library/decimal.rst:1352 +#: library/decimal.rst:1364 msgid "Applies the logical operation *or* between each operand's digits." msgstr "" -#: library/decimal.rst:1357 +#: library/decimal.rst:1369 msgid "Applies the logical operation *xor* between each operand's digits." msgstr "" -#: library/decimal.rst:1362 +#: library/decimal.rst:1374 msgid "Compares two values numerically and returns the maximum." msgstr "" -#: library/decimal.rst:1377 +#: library/decimal.rst:1389 msgid "Compares the values numerically with their sign ignored." msgstr "" -#: library/decimal.rst:1372 +#: library/decimal.rst:1384 msgid "Compares two values numerically and returns the minimum." msgstr "" -#: library/decimal.rst:1382 +#: library/decimal.rst:1394 msgid "Minus corresponds to the unary prefix minus operator in Python." msgstr "" -#: library/decimal.rst:1387 +#: library/decimal.rst:1399 msgid "Return the product of *x* and *y*." msgstr "" -#: library/decimal.rst:1392 +#: library/decimal.rst:1404 msgid "Returns the largest representable number smaller than *x*." msgstr "" -#: library/decimal.rst:1397 +#: library/decimal.rst:1409 msgid "Returns the smallest representable number larger than *x*." msgstr "" -#: library/decimal.rst:1402 +#: library/decimal.rst:1414 msgid "Returns the number closest to *x*, in direction towards *y*." msgstr "" -#: library/decimal.rst:1407 +#: library/decimal.rst:1419 msgid "Reduces *x* to its simplest form." msgstr "" -#: library/decimal.rst:1412 +#: library/decimal.rst:1424 msgid "Returns an indication of the class of *x*." msgstr "" -#: library/decimal.rst:1417 +#: library/decimal.rst:1429 msgid "" "Plus corresponds to the unary prefix plus operator in Python. This " "operation applies the context precision and rounding, so it is *not* an " "identity operation." msgstr "" -#: library/decimal.rst:1424 +#: library/decimal.rst:1436 msgid "Return ``x`` to the power of ``y``, reduced modulo ``modulo`` if given." msgstr "" -#: library/decimal.rst:1426 +#: library/decimal.rst:1438 msgid "" "With two arguments, compute ``x**y``. If ``x`` is negative then ``y`` must " "be integral. The result will be inexact unless ``y`` is integral and the " @@ -1687,42 +1684,42 @@ msgid "" "in the Python version." msgstr "" -#: library/decimal.rst:1432 +#: library/decimal.rst:1444 msgid "" "``Decimal(0) ** Decimal(0)`` results in ``InvalidOperation``, and if " "``InvalidOperation`` is not trapped, then results in ``Decimal('NaN')``." msgstr "" -#: library/decimal.rst:1435 +#: library/decimal.rst:1447 msgid "" "The C module computes :meth:`power` in terms of the correctly rounded :meth:" "`exp` and :meth:`ln` functions. The result is well-defined but only \"almost " "always correctly rounded\"." msgstr "" -#: library/decimal.rst:1440 +#: library/decimal.rst:1452 msgid "" "With three arguments, compute ``(x**y) % modulo``. For the three argument " "form, the following restrictions on the arguments hold:" msgstr "" -#: library/decimal.rst:1443 +#: library/decimal.rst:1455 msgid "all three arguments must be integral" msgstr "" -#: library/decimal.rst:1444 +#: library/decimal.rst:1456 msgid "``y`` must be nonnegative" msgstr "" -#: library/decimal.rst:1445 +#: library/decimal.rst:1457 msgid "at least one of ``x`` or ``y`` must be nonzero" msgstr "" -#: library/decimal.rst:1446 +#: library/decimal.rst:1458 msgid "``modulo`` must be nonzero and have at most 'precision' digits" msgstr "" -#: library/decimal.rst:1448 +#: library/decimal.rst:1460 msgid "" "The value resulting from ``Context.power(x, y, modulo)`` is equal to the " "value that would be obtained by computing ``(x**y) % modulo`` with unbounded " @@ -1731,110 +1728,110 @@ msgid "" "result is always exact." msgstr "" -#: library/decimal.rst:1458 +#: library/decimal.rst:1470 msgid "Returns a value equal to *x* (rounded), having the exponent of *y*." msgstr "" -#: library/decimal.rst:1463 +#: library/decimal.rst:1475 msgid "Just returns 10, as this is Decimal, :)" msgstr "" -#: library/decimal.rst:1468 +#: library/decimal.rst:1480 msgid "Returns the remainder from integer division." msgstr "" -#: library/decimal.rst:1470 +#: library/decimal.rst:1482 msgid "" "The sign of the result, if non-zero, is the same as that of the original " "dividend." msgstr "" -#: library/decimal.rst:1476 +#: library/decimal.rst:1488 msgid "" "Returns ``x - y * n``, where *n* is the integer nearest the exact value of " "``x / y`` (if the result is 0 then its sign will be the sign of *x*)." msgstr "" -#: library/decimal.rst:1482 +#: library/decimal.rst:1494 msgid "Returns a rotated copy of *x*, *y* times." msgstr "" -#: library/decimal.rst:1487 +#: library/decimal.rst:1499 msgid "Returns ``True`` if the two operands have the same exponent." msgstr "" -#: library/decimal.rst:1492 +#: library/decimal.rst:1504 msgid "Returns the first operand after adding the second value its exp." msgstr "" -#: library/decimal.rst:1497 +#: library/decimal.rst:1509 msgid "Returns a shifted copy of *x*, *y* times." msgstr "" -#: library/decimal.rst:1502 +#: library/decimal.rst:1514 msgid "Square root of a non-negative number to context precision." msgstr "" -#: library/decimal.rst:1507 +#: library/decimal.rst:1519 msgid "Return the difference between *x* and *y*." msgstr "" -#: library/decimal.rst:1521 +#: library/decimal.rst:1533 msgid "Rounds to an integer." msgstr "" -#: library/decimal.rst:1526 +#: library/decimal.rst:1538 msgid "Converts a number to a string using scientific notation." msgstr "" -#: library/decimal.rst:1533 +#: library/decimal.rst:1545 msgid "Constants" msgstr "" -#: library/decimal.rst:1535 +#: library/decimal.rst:1547 msgid "" "The constants in this section are only relevant for the C module. They are " "also included in the pure Python version for compatibility." msgstr "" -#: library/decimal.rst:1539 +#: library/decimal.rst:1551 msgid "32-bit" msgstr "" -#: library/decimal.rst:1539 +#: library/decimal.rst:1551 msgid "64-bit" msgstr "" -#: library/decimal.rst:1543 +#: library/decimal.rst:1555 msgid "``425000000``" msgstr "" -#: library/decimal.rst:1543 +#: library/decimal.rst:1555 msgid "``999999999999999999``" msgstr "" -#: library/decimal.rst:1545 +#: library/decimal.rst:1557 msgid "``-425000000``" msgstr "" -#: library/decimal.rst:1545 +#: library/decimal.rst:1557 msgid "``-999999999999999999``" msgstr "" -#: library/decimal.rst:1547 +#: library/decimal.rst:1559 msgid "``-849999999``" msgstr "" -#: library/decimal.rst:1547 +#: library/decimal.rst:1559 msgid "``-1999999999999999997``" msgstr "" -#: library/decimal.rst:1553 +#: library/decimal.rst:1565 msgid "" "The value is ``True``. Deprecated, because Python now always has threads." msgstr "" -#: library/decimal.rst:1559 +#: library/decimal.rst:1571 msgid "" "The default value is ``True``. If Python is :option:`configured using the --" "without-decimal-contextvar option <--without-decimal-contextvar>`, the C " @@ -1843,55 +1840,55 @@ msgid "" "scenarios." msgstr "" -#: library/decimal.rst:1568 +#: library/decimal.rst:1580 msgid "Rounding modes" msgstr "" -#: library/decimal.rst:1572 +#: library/decimal.rst:1584 msgid "Round towards ``Infinity``." msgstr "" -#: library/decimal.rst:1576 +#: library/decimal.rst:1588 msgid "Round towards zero." msgstr "" -#: library/decimal.rst:1580 +#: library/decimal.rst:1592 msgid "Round towards ``-Infinity``." msgstr "" -#: library/decimal.rst:1584 +#: library/decimal.rst:1596 msgid "Round to nearest with ties going towards zero." msgstr "" -#: library/decimal.rst:1588 +#: library/decimal.rst:1600 msgid "Round to nearest with ties going to nearest even integer." msgstr "" -#: library/decimal.rst:1592 +#: library/decimal.rst:1604 msgid "Round to nearest with ties going away from zero." msgstr "" -#: library/decimal.rst:1596 +#: library/decimal.rst:1608 msgid "Round away from zero." msgstr "" -#: library/decimal.rst:1600 +#: library/decimal.rst:1612 msgid "" "Round away from zero if last digit after rounding towards zero would have " "been 0 or 5; otherwise round towards zero." msgstr "" -#: library/decimal.rst:1607 +#: library/decimal.rst:1619 msgid "Signals" msgstr "" -#: library/decimal.rst:1609 +#: library/decimal.rst:1621 msgid "" "Signals represent conditions that arise during computation. Each corresponds " "to one context flag and one context trap enabler." msgstr "" -#: library/decimal.rst:1612 +#: library/decimal.rst:1624 msgid "" "The context flag is set whenever the condition is encountered. After the " "computation, flags may be checked for informational purposes (for instance, " @@ -1899,7 +1896,7 @@ msgid "" "sure to clear all flags before starting the next computation." msgstr "" -#: library/decimal.rst:1617 +#: library/decimal.rst:1629 msgid "" "If the context's trap enabler is set for the signal, then the condition " "causes a Python exception to be raised. For example, if the :class:" @@ -1907,54 +1904,54 @@ msgid "" "raised upon encountering the condition." msgstr "" -#: library/decimal.rst:1625 +#: library/decimal.rst:1637 msgid "Altered an exponent to fit representation constraints." msgstr "" -#: library/decimal.rst:1627 +#: library/decimal.rst:1639 msgid "" "Typically, clamping occurs when an exponent falls outside the context's :" "attr:`~Context.Emin` and :attr:`~Context.Emax` limits. If possible, the " "exponent is reduced to fit by adding zeros to the coefficient." msgstr "" -#: library/decimal.rst:1634 +#: library/decimal.rst:1646 msgid "Base class for other signals and a subclass of :exc:`ArithmeticError`." msgstr "" -#: library/decimal.rst:1639 +#: library/decimal.rst:1651 msgid "Signals the division of a non-infinite number by zero." msgstr "" -#: library/decimal.rst:1641 +#: library/decimal.rst:1653 msgid "" "Can occur with division, modulo division, or when raising a number to a " "negative power. If this signal is not trapped, returns ``Infinity`` or ``-" "Infinity`` with the sign determined by the inputs to the calculation." msgstr "" -#: library/decimal.rst:1648 +#: library/decimal.rst:1660 msgid "Indicates that rounding occurred and the result is not exact." msgstr "" -#: library/decimal.rst:1650 +#: library/decimal.rst:1662 msgid "" "Signals when non-zero digits were discarded during rounding. The rounded " "result is returned. The signal flag or trap is used to detect when results " "are inexact." msgstr "" -#: library/decimal.rst:1657 +#: library/decimal.rst:1669 msgid "An invalid operation was performed." msgstr "" -#: library/decimal.rst:1659 +#: library/decimal.rst:1671 msgid "" "Indicates that an operation was requested that does not make sense. If not " "trapped, returns ``NaN``. Possible causes include::" msgstr "" -#: library/decimal.rst:1662 +#: library/decimal.rst:1674 msgid "" "Infinity - Infinity\n" "0 * Infinity\n" @@ -1967,11 +1964,11 @@ msgid "" "x ** Infinity" msgstr "" -#: library/decimal.rst:1675 +#: library/decimal.rst:1687 msgid "Numerical overflow." msgstr "" -#: library/decimal.rst:1677 +#: library/decimal.rst:1689 msgid "" "Indicates the exponent is larger than :attr:`Context.Emax` after rounding " "has occurred. If not trapped, the result depends on the rounding mode, " @@ -1980,42 +1977,42 @@ msgid "" "`Rounded` are also signaled." msgstr "" -#: library/decimal.rst:1686 +#: library/decimal.rst:1698 msgid "Rounding occurred though possibly no information was lost." msgstr "" -#: library/decimal.rst:1688 +#: library/decimal.rst:1700 msgid "" "Signaled whenever rounding discards digits; even if those digits are zero " "(such as rounding ``5.00`` to ``5.0``). If not trapped, returns the result " "unchanged. This signal is used to detect loss of significant digits." msgstr "" -#: library/decimal.rst:1696 +#: library/decimal.rst:1708 msgid "Exponent was lower than :attr:`~Context.Emin` prior to rounding." msgstr "" -#: library/decimal.rst:1698 +#: library/decimal.rst:1710 msgid "" "Occurs when an operation result is subnormal (the exponent is too small). If " "not trapped, returns the result unchanged." msgstr "" -#: library/decimal.rst:1704 +#: library/decimal.rst:1716 msgid "Numerical underflow with result rounded to zero." msgstr "" -#: library/decimal.rst:1706 +#: library/decimal.rst:1718 msgid "" "Occurs when a subnormal result is pushed to zero by rounding. :class:" "`Inexact` and :class:`Subnormal` are also signaled." msgstr "" -#: library/decimal.rst:1712 +#: library/decimal.rst:1724 msgid "Enable stricter semantics for mixing floats and Decimals." msgstr "" -#: library/decimal.rst:1714 +#: library/decimal.rst:1726 msgid "" "If the signal is not trapped (default), mixing floats and Decimals is " "permitted in the :class:`~decimal.Decimal` constructor, :meth:`~decimal." @@ -2026,18 +2023,18 @@ msgid "" "Context.create_decimal_from_float` do not set the flag." msgstr "" -#: library/decimal.rst:1722 +#: library/decimal.rst:1734 msgid "" "Otherwise (the signal is trapped), only equality comparisons and explicit " "conversions are silent. All other mixed operations raise :exc:" "`FloatOperation`." msgstr "" -#: library/decimal.rst:1726 +#: library/decimal.rst:1738 msgid "The following table summarizes the hierarchy of signals::" msgstr "" -#: library/decimal.rst:1728 +#: library/decimal.rst:1740 msgid "" "exceptions.ArithmeticError(exceptions.Exception)\n" " DecimalException\n" @@ -2052,15 +2049,15 @@ msgid "" " FloatOperation(DecimalException, exceptions.TypeError)" msgstr "" -#: library/decimal.rst:1747 -msgid "Floating-Point Notes" +#: library/decimal.rst:1759 +msgid "Floating-point notes" msgstr "" -#: library/decimal.rst:1751 +#: library/decimal.rst:1763 msgid "Mitigating round-off error with increased precision" msgstr "" -#: library/decimal.rst:1753 +#: library/decimal.rst:1765 msgid "" "The use of decimal floating point eliminates decimal representation error " "(making it possible to represent ``0.1`` exactly); however, some operations " @@ -2068,7 +2065,7 @@ msgid "" "precision." msgstr "" -#: library/decimal.rst:1757 +#: library/decimal.rst:1769 msgid "" "The effects of round-off error can be amplified by the addition or " "subtraction of nearly offsetting quantities resulting in loss of " @@ -2077,7 +2074,7 @@ msgid "" "of the associative and distributive properties of addition:" msgstr "" -#: library/decimal.rst:1763 +#: library/decimal.rst:1775 msgid "" "# Examples from Seminumerical Algorithms, Section 4.2.2.\n" ">>> from decimal import Decimal, getcontext\n" @@ -2096,13 +2093,13 @@ msgid "" "Decimal('0.0060000')" msgstr "" -#: library/decimal.rst:1781 +#: library/decimal.rst:1793 msgid "" "The :mod:`decimal` module makes it possible to restore the identities by " "expanding the precision sufficiently to avoid loss of significance:" msgstr "" -#: library/decimal.rst:1784 +#: library/decimal.rst:1796 msgid "" ">>> getcontext().prec = 20\n" ">>> u, v, w = Decimal(11111113), Decimal(-11111111), Decimal('7.51111111')\n" @@ -2118,18 +2115,18 @@ msgid "" "Decimal('0.0060000')" msgstr "" -#: library/decimal.rst:1801 +#: library/decimal.rst:1813 msgid "Special values" msgstr "" -#: library/decimal.rst:1803 +#: library/decimal.rst:1815 msgid "" "The number system for the :mod:`decimal` module provides special values " "including ``NaN``, ``sNaN``, ``-Infinity``, ``Infinity``, and two zeros, " "``+0`` and ``-0``." msgstr "" -#: library/decimal.rst:1807 +#: library/decimal.rst:1819 msgid "" "Infinities can be constructed directly with: ``Decimal('Infinity')``. Also, " "they can arise from dividing by zero when the :exc:`DivisionByZero` signal " @@ -2138,14 +2135,14 @@ msgid "" "representable number." msgstr "" -#: library/decimal.rst:1812 +#: library/decimal.rst:1824 msgid "" "The infinities are signed (affine) and can be used in arithmetic operations " "where they get treated as very large, indeterminate numbers. For instance, " "adding a constant to infinity gives another infinite result." msgstr "" -#: library/decimal.rst:1816 +#: library/decimal.rst:1828 msgid "" "Some operations are indeterminate and return ``NaN``, or if the :exc:" "`InvalidOperation` signal is trapped, raise an exception. For example, " @@ -2156,14 +2153,14 @@ msgid "" "the calculation to proceed while flagging specific results as invalid." msgstr "" -#: library/decimal.rst:1824 +#: library/decimal.rst:1836 msgid "" "A variant is ``sNaN`` which signals rather than remaining quiet after every " "operation. This is a useful return value when an invalid result needs to " "interrupt a calculation for special handling." msgstr "" -#: library/decimal.rst:1828 +#: library/decimal.rst:1840 msgid "" "The behavior of Python's comparison operators can be a little surprising " "where a ``NaN`` is involved. A test for equality where one of the operands " @@ -2180,7 +2177,7 @@ msgid "" "compare_signal` methods instead." msgstr "" -#: library/decimal.rst:1841 +#: library/decimal.rst:1853 msgid "" "The signed zeros can result from calculations that underflow. They keep the " "sign that would have resulted if the calculation had been carried out to " @@ -2188,7 +2185,7 @@ msgid "" "negative zeros are treated as equal and their sign is informational." msgstr "" -#: library/decimal.rst:1846 +#: library/decimal.rst:1858 msgid "" "In addition to the two signed zeros which are distinct yet equal, there are " "various representations of zero with differing precisions yet equivalent in " @@ -2197,11 +2194,11 @@ msgid "" "that the following calculation returns a value equal to zero:" msgstr "" -#: library/decimal.rst:1861 +#: library/decimal.rst:1873 msgid "Working with threads" msgstr "" -#: library/decimal.rst:1863 +#: library/decimal.rst:1875 msgid "" "The :func:`getcontext` function accesses a different :class:`Context` object " "for each thread. Having separate thread contexts means that threads may " @@ -2209,20 +2206,20 @@ msgid "" "other threads." msgstr "" -#: library/decimal.rst:1867 +#: library/decimal.rst:1879 msgid "" "Likewise, the :func:`setcontext` function automatically assigns its target " "to the current thread." msgstr "" -#: library/decimal.rst:1870 +#: library/decimal.rst:1882 msgid "" "If :func:`setcontext` has not been called before :func:`getcontext`, then :" "func:`getcontext` will automatically create a new context for use in the " "current thread." msgstr "" -#: library/decimal.rst:1874 +#: library/decimal.rst:1886 msgid "" "The new context is copied from a prototype context called *DefaultContext*. " "To control the defaults so that each thread will use the same values " @@ -2231,7 +2228,7 @@ msgid "" "a race condition between threads calling :func:`getcontext`. For example::" msgstr "" -#: library/decimal.rst:1880 +#: library/decimal.rst:1892 msgid "" "# Set applicationwide defaults for all threads about to be launched\n" "DefaultContext.prec = 12\n" @@ -2247,17 +2244,17 @@ msgid "" " . . ." msgstr "" -#: library/decimal.rst:1899 +#: library/decimal.rst:1911 msgid "Recipes" msgstr "" -#: library/decimal.rst:1901 +#: library/decimal.rst:1913 msgid "" "Here are a few recipes that serve as utility functions and that demonstrate " "ways to work with the :class:`Decimal` class::" msgstr "" -#: library/decimal.rst:1904 +#: library/decimal.rst:1916 msgid "" "def moneyfmt(value, places=2, curr='', sep=',', dp='.',\n" " pos='', neg='-', trailneg=''):\n" @@ -2406,41 +2403,41 @@ msgid "" " return +s" msgstr "" -#: library/decimal.rst:2056 +#: library/decimal.rst:2068 msgid "Decimal FAQ" msgstr "" -#: library/decimal.rst:2058 +#: library/decimal.rst:2070 msgid "" "Q. It is cumbersome to type ``decimal.Decimal('1234.5')``. Is there a way " "to minimize typing when using the interactive interpreter?" msgstr "" -#: library/decimal.rst:2061 +#: library/decimal.rst:2073 msgid "A. Some users abbreviate the constructor to just a single letter:" msgstr "" -#: library/decimal.rst:2067 +#: library/decimal.rst:2079 msgid "" "Q. In a fixed-point application with two decimal places, some inputs have " "many places and need to be rounded. Others are not supposed to have excess " "digits and need to be validated. What methods should be used?" msgstr "" -#: library/decimal.rst:2071 +#: library/decimal.rst:2083 msgid "" "A. The :meth:`~Decimal.quantize` method rounds to a fixed number of decimal " "places. If the :const:`Inexact` trap is set, it is also useful for " "validation:" msgstr "" -#: library/decimal.rst:2089 +#: library/decimal.rst:2101 msgid "" "Q. Once I have valid two place inputs, how do I maintain that invariant " "throughout an application?" msgstr "" -#: library/decimal.rst:2092 +#: library/decimal.rst:2104 msgid "" "A. Some operations like addition, subtraction, and multiplication by an " "integer will automatically preserve fixed point. Others operations, like " @@ -2448,13 +2445,13 @@ msgid "" "places and need to be followed-up with a :meth:`~Decimal.quantize` step:" msgstr "" -#: library/decimal.rst:2110 +#: library/decimal.rst:2122 msgid "" "In developing fixed-point applications, it is convenient to define functions " "to handle the :meth:`~Decimal.quantize` step:" msgstr "" -#: library/decimal.rst:2124 +#: library/decimal.rst:2136 msgid "" "Q. There are many ways to express the same value. The numbers ``200``, " "``200.000``, ``2E2``, and ``.02E+4`` all have the same value at various " @@ -2462,17 +2459,17 @@ msgid "" "canonical value?" msgstr "" -#: library/decimal.rst:2129 +#: library/decimal.rst:2141 msgid "" "A. The :meth:`~Decimal.normalize` method maps all equivalent values to a " "single representative:" msgstr "" -#: library/decimal.rst:2136 +#: library/decimal.rst:2148 msgid "Q. When does rounding occur in a computation?" msgstr "" -#: library/decimal.rst:2138 +#: library/decimal.rst:2150 msgid "" "A. It occurs *after* the computation. The philosophy of the decimal " "specification is that numbers are considered exact and are created " @@ -2482,7 +2479,7 @@ msgid "" "computation::" msgstr "" -#: library/decimal.rst:2145 +#: library/decimal.rst:2157 msgid "" ">>> getcontext().prec = 5\n" ">>> pi = Decimal('3.1415926535') # More than 5 digits\n" @@ -2496,13 +2493,13 @@ msgid "" "Decimal('3.1416')" msgstr "" -#: library/decimal.rst:2156 +#: library/decimal.rst:2168 msgid "" "Q. Some decimal values always print with exponential notation. Is there a " "way to get a non-exponential representation?" msgstr "" -#: library/decimal.rst:2159 +#: library/decimal.rst:2171 msgid "" "A. For some values, exponential notation is the only way to express the " "number of significant places in the coefficient. For example, expressing " @@ -2510,37 +2507,37 @@ msgid "" "original's two-place significance." msgstr "" -#: library/decimal.rst:2164 +#: library/decimal.rst:2176 msgid "" "If an application does not care about tracking significance, it is easy to " "remove the exponent and trailing zeroes, losing significance, but keeping " "the value unchanged:" msgstr "" -#: library/decimal.rst:2174 +#: library/decimal.rst:2186 msgid "Q. Is there a way to convert a regular float to a :class:`Decimal`?" msgstr "" -#: library/decimal.rst:2176 +#: library/decimal.rst:2188 msgid "" "A. Yes, any binary floating-point number can be exactly expressed as a " "Decimal though an exact conversion may take more precision than intuition " "would suggest:" msgstr "" -#: library/decimal.rst:2180 +#: library/decimal.rst:2192 msgid "" ">>> Decimal(math.pi)\n" "Decimal('3.141592653589793115997963468544185161590576171875')" msgstr "" -#: library/decimal.rst:2185 +#: library/decimal.rst:2197 msgid "" "Q. Within a complex calculation, how can I make sure that I haven't gotten a " "spurious result because of insufficient precision or rounding anomalies." msgstr "" -#: library/decimal.rst:2188 +#: library/decimal.rst:2200 msgid "" "A. The decimal module makes it easy to test results. A best practice is to " "re-run calculations using greater precision and with various rounding modes. " @@ -2548,14 +2545,14 @@ msgid "" "issues, ill-conditioned inputs, or a numerically unstable algorithm." msgstr "" -#: library/decimal.rst:2193 +#: library/decimal.rst:2205 msgid "" "Q. I noticed that context precision is applied to the results of operations " "but not to the inputs. Is there anything to watch out for when mixing " "values of different precisions?" msgstr "" -#: library/decimal.rst:2197 +#: library/decimal.rst:2209 msgid "" "A. Yes. The principle is that all values are considered to be exact and so " "is the arithmetic on those values. Only the results are rounded. The " @@ -2564,7 +2561,7 @@ msgid "" "haven't been rounded:" msgstr "" -#: library/decimal.rst:2202 +#: library/decimal.rst:2214 msgid "" ">>> getcontext().prec = 3\n" ">>> Decimal('3.104') + Decimal('2.104')\n" @@ -2573,30 +2570,30 @@ msgid "" "Decimal('5.20')" msgstr "" -#: library/decimal.rst:2210 +#: library/decimal.rst:2222 msgid "" "The solution is either to increase precision or to force rounding of inputs " "using the unary plus operation:" msgstr "" -#: library/decimal.rst:2213 +#: library/decimal.rst:2225 msgid "" ">>> getcontext().prec = 3\n" ">>> +Decimal('1.23456789') # unary plus triggers rounding\n" "Decimal('1.23')" msgstr "" -#: library/decimal.rst:2219 +#: library/decimal.rst:2231 msgid "" "Alternatively, inputs can be rounded upon creation using the :meth:`Context." "create_decimal` method:" msgstr "" -#: library/decimal.rst:2225 +#: library/decimal.rst:2237 msgid "Q. Is the CPython implementation fast for large numbers?" msgstr "" -#: library/decimal.rst:2227 +#: library/decimal.rst:2239 msgid "" "A. Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of " "the decimal module integrate the high speed `libmpdec >> setcontext(Context(prec=MAX_PREC, Emax=MAX_EMAX, Emin=MIN_EMIN))\n" ">>> x = Decimal(2) ** 256\n" @@ -2631,13 +2628,13 @@ msgid "" "Decimal('904625697166532776746648320380374280103671755200316906558262375061821325312')" msgstr "" -#: library/decimal.rst:2250 +#: library/decimal.rst:2262 msgid "" "For inexact results, :const:`MAX_PREC` is far too large on 64-bit platforms " "and the available memory will be insufficient::" msgstr "" -#: library/decimal.rst:2253 +#: library/decimal.rst:2265 msgid "" ">>> Decimal(1) / 3\n" "Traceback (most recent call last):\n" @@ -2645,7 +2642,7 @@ msgid "" "MemoryError" msgstr "" -#: library/decimal.rst:2258 +#: library/decimal.rst:2270 msgid "" "On systems with overallocation (e.g. Linux), a more sophisticated approach " "is to adjust :attr:`~Context.prec` to the amount of available RAM. Suppose " @@ -2653,7 +2650,7 @@ msgid "" "of 500MB each::" msgstr "" -#: library/decimal.rst:2262 +#: library/decimal.rst:2274 msgid "" ">>> import sys\n" ">>>\n" @@ -2677,14 +2674,14 @@ msgid "" " decimal.Inexact: []" msgstr "" -#: library/decimal.rst:2282 +#: library/decimal.rst:2294 msgid "" "In general (and especially on systems without overallocation), it is " "recommended to estimate even tighter bounds and set the :attr:`Inexact` trap " "if all calculations are expected to be exact." msgstr "" -#: library/decimal.rst:2291 +#: library/decimal.rst:2303 msgid "" "This approach now works for all exact results except for non-integer powers." msgstr "" diff --git a/library/development.po b/library/development.po index 916aa955..3a975e44 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/devmode.po b/library/devmode.po index 7566fbdf..6437cf6a 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 dae8dab4..d55d8540 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b6e3419d..3cf9bc5c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 d2b74454..e396bad1 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/distribution.po b/library/distribution.po index d8e7d378..eb4baf91 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3faf8864..eb2ba66e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 75c626c5..6708e663 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -235,8 +235,8 @@ msgstr "" #: library/doctest.rst:171 msgid "" "You can force verbose mode by passing ``verbose=True`` to :func:`testmod`, " -"or prohibit it by passing ``verbose=False``. In either of those cases, " -"``sys.argv`` is not examined by :func:`testmod` (so passing ``-v`` or not " +"or prohibit it by passing ``verbose=False``. In either of those cases, :" +"data:`sys.argv` is not examined by :func:`testmod` (so passing ``-v`` or not " "has no effect)." msgstr "" @@ -317,7 +317,7 @@ msgid "" "As with :func:`testmod`, :func:`testfile` won't display anything unless an " "example fails. If an example does fail, then the failing example(s) and the " "cause(s) of the failure(s) are printed to stdout, using the same format as :" -"func:`testmod`." +"func:`!testmod`." msgstr "" #: library/doctest.rst:232 @@ -420,7 +420,7 @@ msgid "" "searched. Objects imported into the module are not searched." msgstr "" -#: library/doctest.rst:310 +#: library/doctest.rst:317 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 " @@ -433,11 +433,11 @@ msgid "" "__test__.K``." msgstr "" -#: library/doctest.rst:319 +#: library/doctest.rst:326 msgid "For example, place this block of code at the top of :file:`example.py`:" msgstr "" -#: library/doctest.rst:321 +#: library/doctest.rst:328 msgid "" "__test__ = {\n" " 'numbers': \"\"\"\n" @@ -450,7 +450,7 @@ msgid "" "}" msgstr "" -#: library/doctest.rst:333 +#: library/doctest.rst:340 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 " @@ -459,24 +459,36 @@ msgid "" "scanned for tests." msgstr "" -#: library/doctest.rst:339 +#: library/doctest.rst:346 msgid "" "Any classes found are recursively searched similarly, to test docstrings in " "their contained methods and nested classes." msgstr "" -#: library/doctest.rst:346 +#: library/doctest.rst:351 +msgid "" +"``doctest`` can only automatically discover classes and functions that are " +"defined at the module level or inside other classes." +msgstr "" + +#: library/doctest.rst:354 +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:360 msgid "How are Docstring Examples Recognized?" msgstr "" -#: library/doctest.rst:348 +#: library/doctest.rst:362 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:353 +#: library/doctest.rst:367 msgid "" ">>> # comments are ignored\n" ">>> x = 12\n" @@ -495,18 +507,18 @@ msgid "" ">>>" msgstr "" -#: library/doctest.rst:373 +#: library/doctest.rst:387 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:377 +#: library/doctest.rst:391 msgid "The fine print:" msgstr "" -#: library/doctest.rst:379 +#: library/doctest.rst:393 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 " @@ -514,7 +526,7 @@ msgid "" "line is expected." msgstr "" -#: library/doctest.rst:384 +#: library/doctest.rst:398 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 " @@ -529,20 +541,20 @@ msgid "" "`DocTestParser` class." msgstr "" -#: library/doctest.rst:396 +#: library/doctest.rst:410 msgid "" "Output to stdout is captured, but not output to stderr (exception tracebacks " "are captured via a different means)." msgstr "" -#: library/doctest.rst:399 +#: library/doctest.rst:413 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:403 +#: library/doctest.rst:417 msgid "" ">>> def f(x):\n" "... r'''Backslashes in a raw docstring: m\\n'''\n" @@ -551,7 +563,7 @@ msgid "" "Backslashes in a raw docstring: m\\n" msgstr "" -#: library/doctest.rst:409 +#: library/doctest.rst:423 msgid "" "Otherwise, the backslash will be interpreted as part of the string. For " "example, the ``\\n`` above would be interpreted as a newline character. " @@ -559,7 +571,7 @@ msgid "" "use a raw string)::" msgstr "" -#: library/doctest.rst:413 +#: library/doctest.rst:427 msgid "" ">>> def f(x):\n" "... '''Backslashes in a raw docstring: m\\\\n'''\n" @@ -568,11 +580,11 @@ msgid "" "Backslashes in a raw docstring: m\\n" msgstr "" -#: library/doctest.rst:419 +#: library/doctest.rst:433 msgid "The starting column doesn't matter::" msgstr "" -#: library/doctest.rst:421 +#: library/doctest.rst:435 msgid "" ">>> assert \"Easy!\"\n" " >>> import math\n" @@ -580,17 +592,17 @@ msgid "" " 1" msgstr "" -#: library/doctest.rst:426 +#: library/doctest.rst:440 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:433 +#: library/doctest.rst:447 msgid "What's the Execution Context?" msgstr "" -#: library/doctest.rst:435 +#: library/doctest.rst:449 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 " @@ -601,17 +613,17 @@ msgid "" "defined in other docstrings." msgstr "" -#: library/doctest.rst:443 +#: library/doctest.rst:457 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:450 +#: library/doctest.rst:464 msgid "What About Exceptions?" msgstr "" -#: library/doctest.rst:452 +#: library/doctest.rst:466 msgid "" "No problem, provided that the traceback is the only output produced by the " "example: just paste in the traceback. [#]_ Since tracebacks contain details " @@ -620,11 +632,11 @@ msgid "" "it accepts." msgstr "" -#: library/doctest.rst:458 +#: library/doctest.rst:472 msgid "Simple example::" msgstr "" -#: library/doctest.rst:460 +#: library/doctest.rst:474 msgid "" ">>> [1, 2, 3].remove(42)\n" "Traceback (most recent call last):\n" @@ -632,33 +644,33 @@ msgid "" "ValueError: list.remove(x): x not in list" msgstr "" -#: library/doctest.rst:465 +#: library/doctest.rst:479 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:468 +#: library/doctest.rst:482 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:472 +#: library/doctest.rst:486 msgid "" "Traceback (most recent call last):\n" "Traceback (innermost last):" msgstr "" -#: library/doctest.rst:475 +#: library/doctest.rst:489 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:479 +#: library/doctest.rst:493 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 " @@ -666,7 +678,7 @@ msgid "" "multi-line detail::" msgstr "" -#: library/doctest.rst:484 +#: library/doctest.rst:498 msgid "" ">>> raise ValueError('multi\\n line\\ndetail')\n" "Traceback (most recent call last):\n" @@ -676,20 +688,20 @@ msgid "" "detail" msgstr "" -#: library/doctest.rst:491 +#: library/doctest.rst:505 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:494 +#: library/doctest.rst:508 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:497 +#: library/doctest.rst:511 msgid "" ">>> raise ValueError('multi\\n line\\ndetail')\n" "Traceback (most recent call last):\n" @@ -699,7 +711,7 @@ msgid "" "detail" msgstr "" -#: library/doctest.rst:504 +#: library/doctest.rst:518 msgid "" "Note that tracebacks are treated very specially. In particular, in the " "rewritten example, the use of ``...`` is independent of doctest's :const:" @@ -708,11 +720,11 @@ msgid "" "transcript of a Monty Python skit." msgstr "" -#: library/doctest.rst:510 +#: library/doctest.rst:524 msgid "Some details you should read once, but won't need to remember:" msgstr "" -#: library/doctest.rst:512 +#: library/doctest.rst:526 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 " @@ -722,7 +734,7 @@ msgid "" "create real problems." msgstr "" -#: library/doctest.rst:519 +#: library/doctest.rst:533 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. " @@ -731,29 +743,29 @@ msgid "" "course this does the right thing for genuine tracebacks." msgstr "" -#: library/doctest.rst:525 +#: library/doctest.rst:539 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:529 +#: library/doctest.rst:543 msgid "" "The interactive shell omits the traceback header line for some :exc:" "`SyntaxError`\\ s. But doctest uses the traceback header line to " "distinguish exceptions from non-exceptions. So in the rare case where you " -"need to test a :exc:`SyntaxError` that omits the traceback header, you will " +"need to test a :exc:`!SyntaxError` that omits the traceback header, you will " "need to manually add the traceback header line to your test example." msgstr "" -#: library/doctest.rst:537 +#: library/doctest.rst:551 msgid "" "For some exceptions, Python displays the position of the error using ``^`` " "markers and tildes::" msgstr "" -#: library/doctest.rst:540 +#: library/doctest.rst:554 msgid "" ">>> 1 + None\n" " File \"\", line 1\n" @@ -762,7 +774,7 @@ msgid "" "TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'" msgstr "" -#: library/doctest.rst:546 +#: library/doctest.rst:560 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 " @@ -770,7 +782,7 @@ msgid "" "location::" msgstr "" -#: library/doctest.rst:550 +#: library/doctest.rst:564 msgid "" ">>> 1 + None\n" " File \"\", line 1\n" @@ -779,11 +791,11 @@ msgid "" "TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'" msgstr "" -#: library/doctest.rst:561 +#: library/doctest.rst:575 msgid "Option Flags" msgstr "" -#: library/doctest.rst:563 +#: library/doctest.rst:577 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 :" @@ -793,13 +805,13 @@ msgid "" "option." msgstr "" -#: library/doctest.rst:569 +#: library/doctest.rst:583 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:575 +#: library/doctest.rst:589 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 " @@ -811,7 +823,7 @@ msgid "" "not for several years." msgstr "" -#: library/doctest.rst:587 +#: library/doctest.rst:601 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 " @@ -820,7 +832,7 @@ msgid "" "`DONT_ACCEPT_BLANKLINE` is specified, this substitution is not allowed." msgstr "" -#: library/doctest.rst:596 +#: library/doctest.rst:610 msgid "" "When specified, all sequences of whitespace (blanks and newlines) are " "treated as equal. Any sequence of whitespace within the expected output " @@ -830,7 +842,7 @@ msgid "" "across multiple lines in your source." msgstr "" -#: library/doctest.rst:607 +#: library/doctest.rst:621 msgid "" "When specified, an ellipsis marker (``...``) in the expected output can " "match any substring in the actual output. This includes substrings that " @@ -839,14 +851,14 @@ msgid "" "matched too much!\" surprises that ``.*`` is prone to in regular expressions." msgstr "" -#: library/doctest.rst:616 +#: library/doctest.rst:630 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:620 +#: library/doctest.rst:634 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:" @@ -856,7 +868,7 @@ msgid "" "these variations will work with the flag specified:" msgstr "" -#: library/doctest.rst:628 +#: library/doctest.rst:642 msgid "" ">>> raise Exception('message')\n" "Traceback (most recent call last):\n" @@ -871,20 +883,20 @@ msgid "" "__main__.Exception: message" msgstr "" -#: library/doctest.rst:642 +#: library/doctest.rst:656 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:646 +#: library/doctest.rst:660 msgid "" ":const:`IGNORE_EXCEPTION_DETAIL` now also ignores any information relating " "to the module containing the exception under test." msgstr "" -#: library/doctest.rst:653 +#: library/doctest.rst:667 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, " @@ -893,32 +905,32 @@ msgid "" "might depend on resources which would be unavailable to the test driver." msgstr "" -#: library/doctest.rst:659 +#: library/doctest.rst:673 msgid "" "The SKIP flag can also be used for temporarily \"commenting out\" examples." msgstr "" -#: library/doctest.rst:664 +#: library/doctest.rst:678 msgid "A bitmask or'ing together all the comparison flags above." msgstr "" -#: library/doctest.rst:666 +#: library/doctest.rst:680 msgid "The second group of options controls how test failures are reported:" msgstr "" -#: library/doctest.rst:671 +#: library/doctest.rst:685 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "are displayed using a unified diff." msgstr "" -#: library/doctest.rst:677 +#: library/doctest.rst:691 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "will be displayed using a context diff." msgstr "" -#: library/doctest.rst:683 +#: library/doctest.rst:697 msgid "" "When specified, differences are computed by ``difflib.Differ``, using the " "same algorithm as the popular :file:`ndiff.py` utility. This is the only " @@ -928,7 +940,7 @@ msgid "" "mismatching column positions." msgstr "" -#: library/doctest.rst:692 +#: library/doctest.rst:706 msgid "" "When specified, display the first failing example in each doctest, but " "suppress output for all remaining examples. This will prevent doctest from " @@ -939,7 +951,7 @@ msgid "" "of failures reported; only the output is suppressed." msgstr "" -#: library/doctest.rst:703 +#: library/doctest.rst:717 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 " @@ -947,17 +959,17 @@ msgid "" "first failure won't even produce debugging output." msgstr "" -#: library/doctest.rst:711 +#: library/doctest.rst:725 msgid "A bitmask or'ing together all the reporting flags above." msgstr "" -#: library/doctest.rst:714 +#: library/doctest.rst:728 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:720 +#: library/doctest.rst:734 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 :" @@ -966,46 +978,46 @@ msgid "" "be called using the following idiom::" msgstr "" -#: library/doctest.rst:726 +#: library/doctest.rst:740 msgid "MY_FLAG = register_optionflag('MY_FLAG')" msgstr "" -#: library/doctest.rst:736 +#: library/doctest.rst:750 msgid "Directives" msgstr "" -#: library/doctest.rst:738 +#: library/doctest.rst:752 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:749 +#: library/doctest.rst:763 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:753 +#: library/doctest.rst:767 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:756 +#: library/doctest.rst:770 msgid "For example, this test passes:" msgstr "" -#: library/doctest.rst:758 +#: library/doctest.rst:772 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:765 +#: library/doctest.rst:779 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 " @@ -1013,52 +1025,52 @@ msgid "" "a directive to do so:" msgstr "" -#: library/doctest.rst:770 +#: library/doctest.rst:784 msgid "" ">>> print(list(range(20))) # doctest: +ELLIPSIS\n" "[0, 1, ..., 18, 19]" msgstr "" -#: library/doctest.rst:776 +#: library/doctest.rst:790 msgid "" "Multiple directives can be used on a single physical line, separated by " "commas:" msgstr "" -#: library/doctest.rst:779 +#: library/doctest.rst:793 msgid "" ">>> print(list(range(20))) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE\n" "[0, 1, ..., 18, 19]" msgstr "" -#: library/doctest.rst:785 +#: library/doctest.rst:799 msgid "" "If multiple directive comments are used for a single example, then they are " "combined:" msgstr "" -#: library/doctest.rst:788 +#: library/doctest.rst:802 msgid "" ">>> print(list(range(20))) # doctest: +ELLIPSIS\n" "... # doctest: +NORMALIZE_WHITESPACE\n" "[0, 1, ..., 18, 19]" msgstr "" -#: library/doctest.rst:795 +#: library/doctest.rst:809 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:799 +#: library/doctest.rst:813 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:806 +#: library/doctest.rst:820 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 " @@ -1068,11 +1080,11 @@ msgid "" "be useful." msgstr "" -#: library/doctest.rst:816 +#: library/doctest.rst:830 msgid "Warnings" msgstr "" -#: library/doctest.rst:818 +#: library/doctest.rst:832 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 " @@ -1082,42 +1094,42 @@ msgid "" "test like ::" msgstr "" -#: library/doctest.rst:824 +#: library/doctest.rst:838 msgid "" ">>> foo()\n" "{\"spam\", \"eggs\"}" msgstr "" -#: library/doctest.rst:827 +#: library/doctest.rst:841 msgid "is vulnerable! One workaround is to do ::" msgstr "" -#: library/doctest.rst:829 +#: library/doctest.rst:843 msgid "" ">>> foo() == {\"spam\", \"eggs\"}\n" "True" msgstr "" -#: library/doctest.rst:832 +#: library/doctest.rst:846 msgid "instead. Another is to do ::" msgstr "" -#: library/doctest.rst:834 +#: library/doctest.rst:848 msgid "" ">>> d = sorted(foo())\n" ">>> d\n" "['eggs', 'spam']" msgstr "" -#: library/doctest.rst:838 +#: library/doctest.rst:852 msgid "There are others, but you get the idea." msgstr "" -#: library/doctest.rst:840 +#: library/doctest.rst:854 msgid "Another bad idea is to print things that embed an object address, like" msgstr "" -#: library/doctest.rst:842 +#: library/doctest.rst:856 msgid "" ">>> id(1.0) # certain to fail some of the time\n" "7948648\n" @@ -1126,57 +1138,57 @@ msgid "" "" msgstr "" -#: library/doctest.rst:850 +#: library/doctest.rst:864 msgid "" "The :const:`ELLIPSIS` directive gives a nice approach for the last example:" msgstr "" -#: library/doctest.rst:852 +#: library/doctest.rst:866 msgid "" ">>> C() # doctest: +ELLIPSIS\n" "" msgstr "" -#: library/doctest.rst:858 +#: library/doctest.rst:872 msgid "" "Floating-point numbers are also subject to small output variations across " -"platforms, because Python defers to the platform C library for float " -"formatting, and C libraries vary widely in quality here. ::" +"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:862 +#: library/doctest.rst:876 msgid "" -">>> 1./7 # risky\n" -"0.14285714285714285\n" -">>> print(1./7) # safer\n" -"0.142857142857\n" -">>> print(round(1./7, 6)) # much safer\n" -"0.142857" +">>> 1000**0.1 # risky\n" +"1.9952623149688797\n" +">>> round(1000**0.1, 9) # safer\n" +"1.995262315\n" +">>> print(f'{1000**0.1:.4f}') # much safer\n" +"1.9953" msgstr "" -#: library/doctest.rst:869 +#: library/doctest.rst:883 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:872 +#: library/doctest.rst:886 msgid "" ">>> 3./4 # utterly safe\n" "0.75" msgstr "" -#: library/doctest.rst:875 +#: library/doctest.rst:889 msgid "" "Simple fractions are also easier for people to understand, and that makes " "for better documentation." msgstr "" -#: library/doctest.rst:882 +#: library/doctest.rst:896 msgid "Basic API" msgstr "" -#: library/doctest.rst:884 +#: library/doctest.rst:898 msgid "" "The functions :func:`testmod` and :func:`testfile` provide a simple " "interface to doctest that should be sufficient for most basic uses. For a " @@ -1184,25 +1196,25 @@ msgid "" "simple-testmod` and :ref:`doctest-simple-testfile`." msgstr "" -#: library/doctest.rst:892 +#: library/doctest.rst:906 msgid "" "All arguments except *filename* are optional, and should be specified in " "keyword form." msgstr "" -#: library/doctest.rst:895 +#: library/doctest.rst:909 msgid "" "Test examples in the file named *filename*. Return ``(failure_count, " "test_count)``." msgstr "" -#: library/doctest.rst:898 +#: library/doctest.rst:912 msgid "" "Optional argument *module_relative* specifies how the filename should be " "interpreted:" msgstr "" -#: library/doctest.rst:901 +#: library/doctest.rst:915 msgid "" "If *module_relative* is ``True`` (the default), then *filename* specifies an " "OS-independent module-relative path. By default, this path is relative to " @@ -1212,20 +1224,20 @@ msgid "" "absolute path (i.e., it may not begin with ``/``)." msgstr "" -#: library/doctest.rst:908 +#: library/doctest.rst:922 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:912 +#: library/doctest.rst:926 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:915 +#: library/doctest.rst:929 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-" @@ -1234,7 +1246,7 @@ msgid "" "is an error to specify *package* if *module_relative* is ``False``." msgstr "" -#: library/doctest.rst:921 +#: library/doctest.rst:935 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 " @@ -1242,7 +1254,7 @@ msgid "" "``None``, a new empty dict is used." msgstr "" -#: library/doctest.rst:926 +#: library/doctest.rst:940 msgid "" "Optional argument *extraglobs* gives a dict merged into the globals used to " "execute examples. This works like :meth:`dict.update`: if *globs* and " @@ -1255,27 +1267,27 @@ msgid "" "tested." msgstr "" -#: library/doctest.rst:935 +#: library/doctest.rst:949 msgid "" "Optional argument *verbose* prints lots of stuff if true, and prints only " "failures if false; by default, or if ``None``, it's true if and only if ``'-" -"v'`` is in ``sys.argv``." +"v'`` is in :data:`sys.argv`." msgstr "" -#: library/doctest.rst:939 +#: library/doctest.rst:953 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:943 +#: library/doctest.rst:957 msgid "" -"Optional argument *optionflags* (default value 0) takes the :ref:`bitwise OR " -"` of option flags. See section :ref:`doctest-options`." +"Optional argument *optionflags* (default value ``0``) takes the :ref:" +"`bitwise OR ` of option flags. See section :ref:`doctest-options`." msgstr "" -#: library/doctest.rst:947 +#: library/doctest.rst:961 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. " @@ -1283,33 +1295,33 @@ msgid "" "continue running examples." msgstr "" -#: library/doctest.rst:1094 +#: library/doctest.rst:1109 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:1098 +#: library/doctest.rst:1113 msgid "" "Optional argument *encoding* specifies an encoding that should be used to " "convert the file to unicode." msgstr "" -#: library/doctest.rst:962 +#: library/doctest.rst:976 msgid "" "All arguments are optional, and all except for *m* should be specified in " "keyword form." msgstr "" -#: library/doctest.rst:965 +#: library/doctest.rst:979 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:969 +#: library/doctest.rst:983 msgid "" "Also test examples reachable from dict ``m.__test__``, if it exists. ``m." "__test__`` maps names (strings) to functions, classes and strings; function " @@ -1317,22 +1329,22 @@ msgid "" "directly, as if they were docstrings." msgstr "" -#: library/doctest.rst:974 +#: library/doctest.rst:988 msgid "" "Only docstrings attached to objects belonging to module *m* are searched." msgstr "" -#: library/doctest.rst:976 +#: library/doctest.rst:990 msgid "Return ``(failure_count, test_count)``." msgstr "" -#: library/doctest.rst:978 +#: library/doctest.rst:992 msgid "" "Optional argument *name* gives the name of the module; by default, or if " "``None``, ``m.__name__`` is used." msgstr "" -#: library/doctest.rst:981 +#: library/doctest.rst:995 msgid "" "Optional argument *exclude_empty* defaults to false. If true, objects for " "which no doctests are found are excluded from consideration. The default is " @@ -1343,39 +1355,39 @@ msgid "" "defaults to true." msgstr "" -#: library/doctest.rst:989 +#: library/doctest.rst:1003 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:996 +#: library/doctest.rst:1010 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:999 +#: library/doctest.rst:1013 msgid "" "A shallow copy of dictionary argument *globs* is used for the execution " "context." msgstr "" -#: library/doctest.rst:1001 +#: library/doctest.rst:1015 msgid "" "Optional argument *name* is used in failure messages, and defaults to " "``\"NoName\"``." msgstr "" -#: library/doctest.rst:1004 +#: library/doctest.rst:1018 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:1007 +#: library/doctest.rst:1021 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 " @@ -1383,16 +1395,16 @@ msgid "" "found in *globs*." msgstr "" -#: library/doctest.rst:1011 +#: library/doctest.rst:1025 msgid "" "Optional argument *optionflags* works as for function :func:`testfile` above." msgstr "" -#: library/doctest.rst:1017 +#: library/doctest.rst:1031 msgid "Unittest API" msgstr "" -#: library/doctest.rst:1019 +#: library/doctest.rst:1033 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 " @@ -1402,7 +1414,7 @@ msgid "" "your test module::" msgstr "" -#: library/doctest.rst:1025 +#: library/doctest.rst:1039 msgid "" "import unittest\n" "import doctest\n" @@ -1413,44 +1425,44 @@ msgid "" " return tests" msgstr "" -#: library/doctest.rst:1033 +#: library/doctest.rst:1047 msgid "" "There are two main functions for creating :class:`unittest.TestSuite` " "instances from text files and modules with doctests:" msgstr "" -#: library/doctest.rst:1039 +#: library/doctest.rst:1053 msgid "" "Convert doctest tests from one or more text files to a :class:`unittest." "TestSuite`." msgstr "" -#: library/doctest.rst:1042 +#: library/doctest.rst:1056 msgid "" "The returned :class:`unittest.TestSuite` is to be run by the unittest " "framework and runs the interactive examples in each file. If an example in " -"any file fails, then the synthesized unit test fails, and a :exc:" -"`failureException` exception is raised showing the name of the file " +"any file fails, then the synthesized unit test fails, and a :exc:`~unittest." +"TestCase.failureException` exception is raised showing the name of the file " "containing the test and a (sometimes approximate) line number. If all the " "examples in a file are skipped, then the synthesized unit test is also " "marked as skipped." msgstr "" -#: library/doctest.rst:1049 +#: library/doctest.rst:1063 msgid "Pass one or more paths (as strings) to text files to be examined." msgstr "" -#: library/doctest.rst:1051 +#: library/doctest.rst:1065 msgid "Options may be provided as keyword arguments:" msgstr "" -#: library/doctest.rst:1053 +#: library/doctest.rst:1067 msgid "" "Optional argument *module_relative* specifies how the filenames in *paths* " "should be interpreted:" msgstr "" -#: library/doctest.rst:1056 +#: library/doctest.rst:1070 msgid "" "If *module_relative* is ``True`` (the default), then each filename in " "*paths* specifies an OS-independent module-relative path. By default, this " @@ -1461,14 +1473,14 @@ msgid "" "``)." msgstr "" -#: library/doctest.rst:1064 +#: library/doctest.rst:1078 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:1068 +#: library/doctest.rst:1082 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-" @@ -1478,30 +1490,31 @@ msgid "" "``False``." msgstr "" -#: library/doctest.rst:1075 +#: library/doctest.rst:1089 msgid "" "Optional argument *setUp* specifies a set-up function for the test suite. " "This is called before running the tests in each file. The *setUp* function " -"will be passed a :class:`DocTest` object. The setUp function can access the " -"test globals as the *globs* attribute of the test passed." +"will be passed a :class:`DocTest` object. The *setUp* function can access " +"the test globals as the :attr:`~DocTest.globs` attribute of the test passed." msgstr "" -#: library/doctest.rst:1080 +#: library/doctest.rst:1094 msgid "" "Optional argument *tearDown* specifies a tear-down function for the test " "suite. This is called after running the tests in each file. The *tearDown* " -"function will be passed a :class:`DocTest` object. The setUp function can " -"access the test globals as the *globs* attribute of the test passed." +"function will be passed a :class:`DocTest` object. The *tearDown* function " +"can access the test globals as the :attr:`~DocTest.globs` attribute of the " +"test passed." msgstr "" -#: library/doctest.rst:1120 +#: library/doctest.rst:1100 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:1089 +#: library/doctest.rst:1104 msgid "" "Optional argument *optionflags* specifies the default doctest options for " "the tests, created by or-ing together individual option flags. See section :" @@ -1509,70 +1522,71 @@ msgid "" "for a better way to set reporting options." msgstr "" -#: library/doctest.rst:1101 +#: library/doctest.rst:1116 msgid "" "The global ``__file__`` is added to the globals provided to doctests loaded " "from a text file using :func:`DocFileSuite`." msgstr "" -#: library/doctest.rst:1107 +#: library/doctest.rst:1122 msgid "Convert doctest tests for a module to a :class:`unittest.TestSuite`." msgstr "" -#: library/doctest.rst:1109 +#: library/doctest.rst:1124 msgid "" "The returned :class:`unittest.TestSuite` is to be run by the unittest " -"framework and runs each doctest in the module. If any of the doctests fail, " -"then the synthesized unit test fails, and a :exc:`failureException` " -"exception is raised showing the name of the file containing the test and a " -"(sometimes approximate) line number. If all the examples in a docstring are " -"skipped, then the synthesized unit test is also marked as skipped." +"framework and runs each doctest in the module. Each docstring is run as a " +"separate unit test. If any of the doctests fail, then the synthesized unit " +"test fails, and a :exc:`unittest.TestCase.failureException` exception is " +"raised showing the name of the file containing the test and a (sometimes " +"approximate) line number. If all the examples in a docstring are skipped, " +"then the" msgstr "" -#: library/doctest.rst:1116 +#: library/doctest.rst:1132 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:1124 +#: library/doctest.rst:1136 +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:1140 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:1127 +#: library/doctest.rst:1143 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:1130 +#: library/doctest.rst:1146 msgid "" "Optional arguments *setUp*, *tearDown*, and *optionflags* are the same as " -"for function :func:`DocFileSuite` above." +"for function :func:`DocFileSuite` above, but they are called for each " +"docstring." msgstr "" -#: library/doctest.rst:1133 +#: library/doctest.rst:1149 msgid "This function uses the same search technique as :func:`testmod`." msgstr "" -#: library/doctest.rst:1135 +#: library/doctest.rst:1151 msgid "" ":func:`DocTestSuite` returns an empty :class:`unittest.TestSuite` if " "*module* contains no docstrings instead of raising :exc:`ValueError`." msgstr "" -#: library/doctest.rst:1141 -msgid "" -"When doctests which have been converted to unit tests by :func:" -"`DocFileSuite` or :func:`DocTestSuite` fail, this exception is raised " -"showing the name of the file containing the test and a (sometimes " -"approximate) line number." -msgstr "" - -#: library/doctest.rst:1145 +#: library/doctest.rst:1155 msgid "" "Under the covers, :func:`DocTestSuite` creates a :class:`unittest.TestSuite` " "out of :class:`!doctest.DocTestCase` instances, and :class:`!DocTestCase` is " @@ -1581,67 +1595,67 @@ msgid "" "questions about the exact details of :mod:`unittest` integration." msgstr "" -#: library/doctest.rst:1151 +#: library/doctest.rst:1161 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:1155 +#: library/doctest.rst:1165 msgid "" "So both ways of creating a :class:`unittest.TestSuite` run instances of :" "class:`!DocTestCase`. This is important for a subtle reason: when you run :" -"mod:`doctest` functions yourself, you can control the :mod:`doctest` options " -"in use directly, by passing option flags to :mod:`doctest` functions. " -"However, if you're writing a :mod:`unittest` framework, :mod:`unittest` " -"ultimately controls when and how tests get run. The framework author " -"typically wants to control :mod:`doctest` reporting options (perhaps, e.g., " -"specified by command line options), but there's no way to pass options " -"through :mod:`unittest` to :mod:`doctest` test runners." +"mod:`doctest` functions yourself, you can control the :mod:`!doctest` " +"options in use directly, by passing option flags to :mod:`!doctest` " +"functions. However, if you're writing a :mod:`unittest` framework, :mod:`!" +"unittest` ultimately controls when and how tests get run. The framework " +"author typically wants to control :mod:`!doctest` reporting options " +"(perhaps, e.g., specified by command line options), but there's no way to " +"pass options through :mod:`!unittest` to :mod:`!doctest` test runners." msgstr "" -#: library/doctest.rst:1165 +#: library/doctest.rst:1175 msgid "" -"For this reason, :mod:`doctest` also supports a notion of :mod:`doctest` " +"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:1171 +#: library/doctest.rst:1181 msgid "Set the :mod:`doctest` reporting flags to use." msgstr "" -#: library/doctest.rst:1173 +#: library/doctest.rst:1183 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:1176 +#: library/doctest.rst:1186 msgid "" "This is a module-global setting, and affects all future doctests run by " "module :mod:`unittest`: the :meth:`!runTest` method of :class:`!" "DocTestCase` looks at the option flags specified for the test case when the :" "class:`!DocTestCase` instance was constructed. If no reporting flags were " -"specified (which is the typical and expected case), :mod:`!doctest`'s :mod:" -"`unittest` reporting flags are :ref:`bitwise ORed ` into the option " +"specified (which is the typical and expected case), :mod:`!doctest`'s :mod:`!" +"unittest` reporting flags are :ref:`bitwise ORed ` into the option " "flags, and the option flags so augmented are passed to the :class:" "`DocTestRunner` instance created to run the doctest. If any reporting flags " "were specified when the :class:`!DocTestCase` instance was constructed, :mod:" -"`!doctest`'s :mod:`unittest` reporting flags are ignored." +"`!doctest`'s :mod:`!unittest` reporting flags are ignored." msgstr "" -#: library/doctest.rst:1187 +#: library/doctest.rst:1197 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:1194 +#: library/doctest.rst:1204 msgid "Advanced API" msgstr "" -#: library/doctest.rst:1196 +#: library/doctest.rst:1206 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 " @@ -1649,62 +1663,62 @@ msgid "" "doctest's capabilities, then you should use the advanced API." msgstr "" -#: library/doctest.rst:1201 +#: library/doctest.rst:1211 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:1204 +#: library/doctest.rst:1214 msgid "" ":class:`Example`: A single Python :term:`statement`, paired with its " "expected output." msgstr "" -#: library/doctest.rst:1207 +#: library/doctest.rst:1217 msgid "" ":class:`DocTest`: A collection of :class:`Example`\\ s, typically extracted " "from a single docstring or text file." msgstr "" -#: library/doctest.rst:1210 +#: library/doctest.rst:1220 msgid "" "Additional processing classes are defined to find, parse, and run, and check " "doctest examples:" msgstr "" -#: library/doctest.rst:1213 +#: library/doctest.rst:1223 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:1217 +#: library/doctest.rst:1227 msgid "" ":class:`DocTestParser`: Creates a :class:`DocTest` object from a string " "(such as an object's docstring)." msgstr "" -#: library/doctest.rst:1220 +#: library/doctest.rst:1230 msgid "" ":class:`DocTestRunner`: Executes the examples in a :class:`DocTest`, and " "uses an :class:`OutputChecker` to verify their output." msgstr "" -#: library/doctest.rst:1223 +#: library/doctest.rst:1233 msgid "" ":class:`OutputChecker`: Compares the actual output from a doctest example " "with the expected output, and decides whether they match." msgstr "" -#: library/doctest.rst:1226 +#: library/doctest.rst:1236 msgid "" "The relationships among these processing classes are summarized in the " "following diagram::" msgstr "" -#: library/doctest.rst:1229 +#: library/doctest.rst:1239 msgid "" " list of:\n" "+------+ +---------+\n" @@ -1716,30 +1730,30 @@ msgid "" " +---------+" msgstr "" -#: library/doctest.rst:1242 +#: library/doctest.rst:1252 msgid "DocTest Objects" msgstr "" -#: library/doctest.rst:1247 +#: library/doctest.rst:1257 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:1251 +#: library/doctest.rst:1261 msgid "" ":class:`DocTest` defines the following attributes. They are initialized by " "the constructor, and should not be modified directly." msgstr "" -#: library/doctest.rst:1257 +#: library/doctest.rst:1267 msgid "" "A list of :class:`Example` objects encoding the individual interactive " "Python examples that should be run by this test." msgstr "" -#: library/doctest.rst:1263 +#: library/doctest.rst:1273 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 " @@ -1747,57 +1761,57 @@ msgid "" "`globs` after the test is run." msgstr "" -#: library/doctest.rst:1271 +#: library/doctest.rst:1281 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:1277 +#: library/doctest.rst:1287 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 " +"``None`` if the filename is unknown, or if the :class:`!DocTest` was not " "extracted from a file." msgstr "" -#: library/doctest.rst:1284 +#: library/doctest.rst:1294 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:1291 +#: library/doctest.rst:1301 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:1298 +#: library/doctest.rst:1308 msgid "Example Objects" msgstr "" -#: library/doctest.rst:1303 +#: library/doctest.rst:1313 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:1308 +#: library/doctest.rst:1318 msgid "" ":class:`Example` defines the following attributes. They are initialized by " "the constructor, and should not be modified directly." msgstr "" -#: library/doctest.rst:1314 +#: library/doctest.rst:1324 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:1321 +#: library/doctest.rst:1331 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 " @@ -1805,7 +1819,7 @@ msgid "" "The constructor adds a newline when necessary." msgstr "" -#: library/doctest.rst:1329 +#: library/doctest.rst:1339 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 " @@ -1814,20 +1828,20 @@ msgid "" "unless it's ``None``. The constructor adds a newline if needed." msgstr "" -#: library/doctest.rst:1338 +#: library/doctest.rst:1348 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:1345 +#: library/doctest.rst:1355 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:1351 +#: library/doctest.rst:1361 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 " @@ -1836,11 +1850,11 @@ msgid "" "default, no options are set." msgstr "" -#: library/doctest.rst:1361 +#: library/doctest.rst:1371 msgid "DocTestFinder objects" msgstr "" -#: library/doctest.rst:1366 +#: library/doctest.rst:1376 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 " @@ -1848,48 +1862,48 @@ msgid "" "classes, functions, methods, staticmethods, classmethods, and properties." msgstr "" -#: library/doctest.rst:1371 +#: library/doctest.rst:1381 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:1374 +#: library/doctest.rst:1384 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:1377 +#: library/doctest.rst:1387 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:1380 +#: library/doctest.rst:1390 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:1384 +#: library/doctest.rst:1394 msgid ":class:`DocTestFinder` defines the following method:" msgstr "" -#: library/doctest.rst:1389 +#: library/doctest.rst:1399 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:1392 +#: library/doctest.rst:1402 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:1396 +#: library/doctest.rst:1406 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 " @@ -1897,26 +1911,26 @@ msgid "" "module is used:" msgstr "" -#: library/doctest.rst:1400 +#: library/doctest.rst:1410 msgid "As a default namespace, if *globs* is not specified." msgstr "" -#: library/doctest.rst:1402 +#: library/doctest.rst:1412 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:1406 +#: library/doctest.rst:1416 msgid "To find the name of the file containing the object." msgstr "" -#: library/doctest.rst:1408 +#: library/doctest.rst:1418 msgid "To help find the line number of the object within its file." msgstr "" -#: library/doctest.rst:1410 +#: library/doctest.rst:1420 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 " @@ -1925,44 +1939,44 @@ msgid "" "contained objects will (recursively) be searched for doctests." msgstr "" -#: library/doctest.rst:1416 +#: library/doctest.rst:1426 msgid "" "The globals for each :class:`DocTest` is formed by combining *globs* and " "*extraglobs* (bindings in *extraglobs* override bindings in *globs*). A new " -"shallow copy of the globals dictionary is created for each :class:`DocTest`. " -"If *globs* is not specified, then it defaults to the module's *__dict__*, if " -"specified, or ``{}`` otherwise. If *extraglobs* is not specified, then it " -"defaults to ``{}``." +"shallow copy of the globals dictionary is created for each :class:`!" +"DocTest`. If *globs* is not specified, then it defaults to the module's :" +"attr:`~module.__dict__`, if specified, or ``{}`` otherwise. If *extraglobs* " +"is not specified, then it defaults to ``{}``." msgstr "" -#: library/doctest.rst:1427 +#: library/doctest.rst:1437 msgid "DocTestParser objects" msgstr "" -#: library/doctest.rst:1432 +#: library/doctest.rst:1442 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:1436 +#: library/doctest.rst:1446 msgid ":class:`DocTestParser` defines the following methods:" msgstr "" -#: library/doctest.rst:1441 +#: library/doctest.rst:1451 msgid "" "Extract all doctest examples from the given string, and collect them into a :" "class:`DocTest` object." msgstr "" -#: library/doctest.rst:1444 +#: library/doctest.rst:1454 msgid "" "*globs*, *name*, *filename*, and *lineno* are attributes for the new :class:" -"`DocTest` object. See the documentation for :class:`DocTest` for more " +"`!DocTest` object. See the documentation for :class:`DocTest` for more " "information." msgstr "" -#: library/doctest.rst:1451 +#: library/doctest.rst:1461 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 " @@ -1970,51 +1984,51 @@ msgid "" "error messages." msgstr "" -#: library/doctest.rst:1458 +#: library/doctest.rst:1468 msgid "" "Divide the given string into examples and intervening text, and return them " "as a list of alternating :class:`Example`\\ s and strings. Line numbers for " -"the :class:`Example`\\ s are 0-based. The optional argument *name* is a " +"the :class:`!Example`\\ s are 0-based. The optional argument *name* is a " "name identifying this string, and is only used for error messages." msgstr "" -#: library/doctest.rst:1465 +#: library/doctest.rst:1475 msgid "TestResults objects" msgstr "" -#: library/doctest.rst:1472 +#: library/doctest.rst:1482 msgid "Number of failed tests." msgstr "" -#: library/doctest.rst:1476 +#: library/doctest.rst:1486 msgid "Number of attempted tests." msgstr "" -#: library/doctest.rst:1480 +#: library/doctest.rst:1490 msgid "Number of skipped tests." msgstr "" -#: library/doctest.rst:1488 +#: library/doctest.rst:1498 msgid "DocTestRunner objects" msgstr "" -#: library/doctest.rst:1493 +#: library/doctest.rst:1503 msgid "" "A processing class used to execute and verify the interactive examples in a :" "class:`DocTest`." msgstr "" -#: library/doctest.rst:1496 +#: library/doctest.rst:1506 msgid "" "The comparison between expected outputs and actual outputs is done by an :" "class:`OutputChecker`. This comparison may be customized with a number of " "option flags; see section :ref:`doctest-options` for more information. If " "the option flags are insufficient, then the comparison may also be " -"customized by passing a subclass of :class:`OutputChecker` to the " +"customized by passing a subclass of :class:`!OutputChecker` to the " "constructor." msgstr "" -#: library/doctest.rst:1502 +#: library/doctest.rst:1512 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 " @@ -2025,14 +2039,14 @@ msgid "" "`report_unexpected_exception`, and :meth:`report_failure`." msgstr "" -#: library/doctest.rst:1510 +#: library/doctest.rst:1520 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:1514 +#: library/doctest.rst:1524 msgid "" "The optional keyword argument *verbose* controls the :class:" "`DocTestRunner`'s verbosity. If *verbose* is ``True``, then information is " @@ -2041,14 +2055,14 @@ msgid "" "verbose output is used iff the command-line switch ``-v`` is used." msgstr "" -#: library/doctest.rst:1520 +#: library/doctest.rst:1530 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:1524 +#: library/doctest.rst:1534 msgid "" "The test runner accumulates statistics. The aggregated number of attempted, " "failed and skipped examples is also available via the :attr:`tries`, :attr:" @@ -2056,53 +2070,53 @@ msgid "" "`summarize` methods return a :class:`TestResults` instance." msgstr "" -#: library/doctest.rst:1529 +#: library/doctest.rst:1539 msgid ":class:`DocTestRunner` defines the following methods:" msgstr "" -#: library/doctest.rst:1534 +#: library/doctest.rst:1544 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:1538 +#: library/doctest.rst:1548 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:" +"containing *example*. *out* is the output function that was passed to :meth:" "`DocTestRunner.run`." msgstr "" -#: library/doctest.rst:1545 +#: library/doctest.rst:1555 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:1560 +#: library/doctest.rst:1570 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:1556 +#: library/doctest.rst:1566 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:1567 +#: library/doctest.rst:1577 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:1571 +#: library/doctest.rst:1581 msgid "" "*example* is the example about to be processed. *exc_info* is a tuple " "containing information about the unexpected exception (as returned by :func:" @@ -2110,14 +2124,14 @@ msgid "" "output function that was passed to :meth:`DocTestRunner.run`." msgstr "" -#: library/doctest.rst:1579 +#: library/doctest.rst:1589 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:1583 +#: library/doctest.rst:1593 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, " @@ -2125,54 +2139,54 @@ msgid "" "after the test completes, then use *clear_globs=False*." msgstr "" -#: library/doctest.rst:1588 +#: library/doctest.rst:1598 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:1592 +#: library/doctest.rst:1602 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:1599 +#: library/doctest.rst:1609 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:1602 +#: library/doctest.rst:1612 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:1606 +#: library/doctest.rst:1616 msgid ":class:`DocTestParser` has the following attributes:" msgstr "" -#: library/doctest.rst:1610 +#: library/doctest.rst:1620 msgid "Number of attempted examples." msgstr "" -#: library/doctest.rst:1614 +#: library/doctest.rst:1624 msgid "Number of failed examples." msgstr "" -#: library/doctest.rst:1618 +#: library/doctest.rst:1628 msgid "Number of skipped examples." msgstr "" -#: library/doctest.rst:1626 +#: library/doctest.rst:1636 msgid "OutputChecker objects" msgstr "" -#: library/doctest.rst:1631 +#: library/doctest.rst:1641 msgid "" "A class used to check the whether the actual output from a doctest example " "matches the expected output. :class:`OutputChecker` defines two methods: :" @@ -2181,11 +2195,11 @@ msgid "" "string describing the differences between two outputs." msgstr "" -#: library/doctest.rst:1638 +#: library/doctest.rst:1648 msgid ":class:`OutputChecker` defines the following methods:" msgstr "" -#: library/doctest.rst:1642 +#: library/doctest.rst:1652 msgid "" "Return ``True`` iff the actual output from an example (*got*) matches the " "expected output (*want*). These strings are always considered to match if " @@ -2194,28 +2208,28 @@ msgid "" "`doctest-options` for more information about option flags." msgstr "" -#: library/doctest.rst:1651 +#: library/doctest.rst:1661 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:1659 +#: library/doctest.rst:1669 msgid "Debugging" msgstr "" -#: library/doctest.rst:1661 +#: library/doctest.rst:1671 msgid "Doctest provides several mechanisms for debugging doctest examples:" msgstr "" -#: library/doctest.rst:1663 +#: library/doctest.rst:1673 msgid "" "Several functions convert doctests to executable Python programs, which can " "be run under the Python debugger, :mod:`pdb`." msgstr "" -#: library/doctest.rst:1666 +#: library/doctest.rst:1676 msgid "" "The :class:`DebugRunner` class is a subclass of :class:`DocTestRunner` that " "raises an exception for the first failing example, containing information " @@ -2223,13 +2237,13 @@ msgid "" "debugging on the example." msgstr "" -#: library/doctest.rst:1671 +#: library/doctest.rst:1681 msgid "" "The :mod:`unittest` cases generated by :func:`DocTestSuite` support the :" "meth:`debug` method defined by :class:`unittest.TestCase`." msgstr "" -#: library/doctest.rst:1674 +#: library/doctest.rst:1684 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 " @@ -2237,7 +2251,7 @@ msgid "" "`a.py` contains just this module docstring::" msgstr "" -#: library/doctest.rst:1679 +#: library/doctest.rst:1689 msgid "" "\"\"\"\n" ">>> def f(x):\n" @@ -2250,11 +2264,11 @@ msgid "" "\"\"\"" msgstr "" -#: library/doctest.rst:1689 +#: library/doctest.rst:1699 msgid "Then an interactive Python session may look like this::" msgstr "" -#: library/doctest.rst:1691 +#: library/doctest.rst:1701 msgid "" ">>> import a, doctest\n" ">>> doctest.testmod(a)\n" @@ -2287,17 +2301,17 @@ msgid "" ">>>" msgstr "" -#: library/doctest.rst:1722 +#: library/doctest.rst:1732 msgid "" "Functions that convert doctests to Python code, and possibly run the " "synthesized code under the debugger:" msgstr "" -#: library/doctest.rst:1728 +#: library/doctest.rst:1738 msgid "Convert text with examples to a script." msgstr "" -#: library/doctest.rst:1730 +#: library/doctest.rst:1740 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 " @@ -2305,7 +2319,7 @@ msgid "" "generated script is returned as a string. For example, ::" msgstr "" -#: library/doctest.rst:1735 +#: library/doctest.rst:1745 msgid "" "import doctest\n" "print(doctest.script_from_examples(r\"\"\"\n" @@ -2318,11 +2332,11 @@ msgid "" "\"\"\"))" msgstr "" -#: library/doctest.rst:1745 +#: library/doctest.rst:1755 msgid "displays::" msgstr "" -#: library/doctest.rst:1747 +#: library/doctest.rst:1757 msgid "" "# Set x and y to 1 and 2.\n" "x, y = 1, 2\n" @@ -2333,18 +2347,18 @@ msgid "" "## 3" msgstr "" -#: library/doctest.rst:1755 +#: library/doctest.rst:1765 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:1762 +#: library/doctest.rst:1772 msgid "Convert the doctest for an object to a script." msgstr "" -#: library/doctest.rst:1764 +#: library/doctest.rst:1774 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 " @@ -2354,23 +2368,23 @@ msgid "" "module :file:`a.py` contains a top-level function :func:`!f`, then ::" msgstr "" -#: library/doctest.rst:1771 +#: library/doctest.rst:1781 msgid "" "import a, doctest\n" "print(doctest.testsource(a, \"a.f\"))" msgstr "" -#: library/doctest.rst:1774 +#: library/doctest.rst:1784 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:1780 +#: library/doctest.rst:1790 msgid "Debug the doctests for an object." msgstr "" -#: library/doctest.rst:1782 +#: library/doctest.rst:1792 msgid "" "The *module* and *name* arguments are the same as for function :func:" "`testsource` above. The synthesized Python script for the named object's " @@ -2378,13 +2392,13 @@ msgid "" "the control of the Python debugger, :mod:`pdb`." msgstr "" -#: library/doctest.rst:1787 +#: library/doctest.rst:1797 msgid "" "A shallow copy of ``module.__dict__`` is used for both local and global " "execution context." msgstr "" -#: library/doctest.rst:1790 +#: library/doctest.rst:1800 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 " @@ -2396,30 +2410,30 @@ msgid "" "to :func:`pdb.run`." msgstr "" -#: library/doctest.rst:1801 +#: library/doctest.rst:1811 msgid "Debug the doctests in a string." msgstr "" -#: library/doctest.rst:1803 +#: library/doctest.rst:1813 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:1806 +#: library/doctest.rst:1816 msgid "" "Optional argument *pm* has the same meaning as in function :func:`debug` " "above." msgstr "" -#: library/doctest.rst:1808 +#: library/doctest.rst:1818 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:1813 +#: library/doctest.rst:1823 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 " @@ -2427,7 +2441,7 @@ msgid "" "(which is a doctest!) for more details:" msgstr "" -#: library/doctest.rst:1821 +#: library/doctest.rst:1831 msgid "" "A subclass of :class:`DocTestRunner` that raises an exception as soon as a " "failure is encountered. If an unexpected exception occurs, an :exc:" @@ -2437,89 +2451,89 @@ msgid "" "the actual output." msgstr "" -#: library/doctest.rst:1828 +#: library/doctest.rst:1838 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:1831 +#: library/doctest.rst:1841 msgid "" "There are two exceptions that may be raised by :class:`DebugRunner` " "instances:" msgstr "" -#: library/doctest.rst:1836 +#: library/doctest.rst:1846 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:1840 +#: library/doctest.rst:1850 msgid ":exc:`DocTestFailure` defines the following attributes:" msgstr "" -#: library/doctest.rst:1869 +#: library/doctest.rst:1879 msgid "The :class:`DocTest` object that was being run when the example failed." msgstr "" -#: library/doctest.rst:1874 +#: library/doctest.rst:1884 msgid "The :class:`Example` that failed." msgstr "" -#: library/doctest.rst:1855 +#: library/doctest.rst:1865 msgid "The example's actual output." msgstr "" -#: library/doctest.rst:1860 +#: library/doctest.rst:1870 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:1864 +#: library/doctest.rst:1874 msgid ":exc:`UnexpectedException` defines the following attributes:" msgstr "" -#: library/doctest.rst:1879 +#: library/doctest.rst:1889 msgid "" "A tuple containing information about the unexpected exception, as returned " "by :func:`sys.exc_info`." msgstr "" -#: library/doctest.rst:1886 +#: library/doctest.rst:1896 msgid "Soapbox" msgstr "" -#: library/doctest.rst:1888 +#: library/doctest.rst:1898 msgid "" "As mentioned in the introduction, :mod:`doctest` has grown to have three " "primary uses:" msgstr "" -#: library/doctest.rst:1891 +#: library/doctest.rst:1901 msgid "Checking examples in docstrings." msgstr "" -#: library/doctest.rst:1893 +#: library/doctest.rst:1903 msgid "Regression testing." msgstr "" -#: library/doctest.rst:1895 +#: library/doctest.rst:1905 msgid "Executable documentation / literate testing." msgstr "" -#: library/doctest.rst:1897 +#: library/doctest.rst:1907 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:1901 +#: library/doctest.rst:1911 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. " @@ -2531,7 +2545,7 @@ msgid "" "\"harmless\" change." msgstr "" -#: library/doctest.rst:1909 +#: library/doctest.rst:1919 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 " @@ -2552,13 +2566,13 @@ msgid "" "different results, blurring the distinction between testing and explaining." msgstr "" -#: library/doctest.rst:1927 +#: library/doctest.rst:1937 msgid "" "Regression testing is best confined to dedicated objects or files. There " "are several options for organizing tests:" msgstr "" -#: library/doctest.rst:1930 +#: library/doctest.rst:1940 msgid "" "Write text files containing test cases as interactive examples, and test the " "files using :func:`testfile` or :func:`DocFileSuite`. This is recommended, " @@ -2566,7 +2580,7 @@ msgid "" "doctest." msgstr "" -#: library/doctest.rst:1935 +#: library/doctest.rst:1945 msgid "" "Define functions named ``_regrtest_topic`` that consist of single " "docstrings, containing test cases for the named topics. These functions can " @@ -2574,13 +2588,13 @@ msgid "" "test file." msgstr "" -#: library/doctest.rst:1939 +#: library/doctest.rst:1949 msgid "" -"Define a ``__test__`` dictionary mapping from regression test topics to " -"docstrings containing test cases." +"Define a :attr:`~module.__test__` dictionary mapping from regression test " +"topics to docstrings containing test cases." msgstr "" -#: library/doctest.rst:1942 +#: library/doctest.rst:1952 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-" @@ -2588,7 +2602,7 @@ msgid "" "example of such a test runner::" msgstr "" -#: library/doctest.rst:1947 +#: library/doctest.rst:1957 msgid "" "if __name__ == '__main__':\n" " import doctest\n" @@ -2606,53 +2620,53 @@ msgid "" " print(f\"{fail} failures out of {total} tests\")" msgstr "" -#: library/doctest.rst:1964 +#: library/doctest.rst:1974 msgid "Footnotes" msgstr "" -#: library/doctest.rst:1965 +#: library/doctest.rst:1975 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:369 +#: library/doctest.rst:383 msgid ">>>" msgstr "" -#: library/doctest.rst:369 +#: library/doctest.rst:383 msgid "interpreter prompt" msgstr "" -#: library/doctest.rst:604 +#: library/doctest.rst:618 msgid "..." msgstr "" -#: library/doctest.rst:535 +#: library/doctest.rst:549 msgid "^ (caret)" msgstr "" -#: library/doctest.rst:535 +#: library/doctest.rst:549 msgid "marker" msgstr "" -#: library/doctest.rst:584 +#: library/doctest.rst:598 msgid "" msgstr "" -#: library/doctest.rst:729 +#: library/doctest.rst:743 msgid "in doctests" msgstr "" -#: library/doctest.rst:729 +#: library/doctest.rst:743 msgid "# (hash)" msgstr "" -#: library/doctest.rst:729 +#: library/doctest.rst:743 msgid "+ (plus)" msgstr "" -#: library/doctest.rst:729 +#: library/doctest.rst:743 msgid "- (minus)" msgstr "" diff --git a/library/email.charset.po b/library/email.charset.po index d720ad31..c401d720 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ee2738c7..bc9ff879 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 bc378a30..84661a7d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 4fe5e55e..ce3d3722 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 f95411bd..55b66ef0 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 61cf5a69..04ef60eb 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 888fbeca..7f8ef949 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 0e9afcf4..34dcfacc 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -266,40 +266,68 @@ msgid "" msgstr "" #: library/email.header.rst:181 +msgid "For historical reasons, this function may return either:" +msgstr "" + +#: library/email.header.rst:183 msgid "" -"This function returns a list of ``(decoded_string, charset)`` pairs " -"containing each of the decoded parts of the header. *charset* is ``None`` " -"for non-encoded parts of the header, otherwise a lower case string " -"containing the name of the character set specified in the encoded string." +"A list of pairs containing each of the decoded parts of the header, " +"``(decoded_bytes, charset)``, where *decoded_bytes* is always an instance " +"of :class:`bytes`, and *charset* is either:" +msgstr "" + +#: library/email.header.rst:187 +msgid "A lower case string containing the name of the character set specified." msgstr "" -#: library/email.header.rst:186 -msgid "Here's an example::" +#: library/email.header.rst:189 +msgid "``None`` for non-encoded parts of the header." msgstr "" -#: library/email.header.rst:188 +#: library/email.header.rst:191 msgid "" -">>> from email.header import decode_header\n" -">>> decode_header('=?iso-8859-1?q?p=F6stal?=')\n" -"[(b'p\\xf6stal', 'iso-8859-1')]" +"A list of length 1 containing a pair ``(string, None)``, where *string* is " +"always an instance of :class:`str`." msgstr "" -#: library/email.header.rst:195 +#: library/email.header.rst:194 +msgid "" +"An :exc:`email.errors.HeaderParseError` may be raised when certain decoding " +"errors occur (e.g. a base64 decoding exception)." +msgstr "" + +#: library/email.header.rst:197 +msgid "Here are examples:" +msgstr "" + +#: library/email.header.rst:209 +msgid "" +"This function exists for backwards compatibility only. For new code, we " +"recommend using :class:`email.headerregistry.HeaderRegistry`." +msgstr "" + +#: library/email.header.rst:215 msgid "" "Create a :class:`Header` instance from a sequence of pairs as returned by :" "func:`decode_header`." msgstr "" -#: library/email.header.rst:198 +#: library/email.header.rst:218 msgid "" ":func:`decode_header` takes a header value string and returns a sequence of " "pairs of the format ``(decoded_string, charset)`` where *charset* is the " "name of the character set." msgstr "" -#: library/email.header.rst:202 +#: library/email.header.rst:222 msgid "" "This function takes one of those sequence of pairs and returns a :class:" "`Header` instance. Optional *maxlinelen*, *header_name*, and " "*continuation_ws* are as in the :class:`Header` constructor." msgstr "" + +#: library/email.header.rst:228 +msgid "" +"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 61d15d78..49c653ba 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 c9a1f603..73c933a8 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a95670fc..f5faffb5 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 f461d2a0..445817f5 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 667fd9fe..a5e0bfd2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 e6895021..63083565 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b36024be..4f34837f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a7970468..da5f8b64 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 7c964fed..c10f3994 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -75,24 +75,24 @@ msgid "" "availability>` or :ref:`WebAssembly platforms `." msgstr "" -#: library/ensurepip.rst:44 -msgid "Command line interface" +#: library/ensurepip.rst:46 +msgid "Command-line interface" msgstr "" -#: library/ensurepip.rst:48 +#: library/ensurepip.rst:50 msgid "" "The command line interface is invoked using the interpreter's ``-m`` switch." msgstr "" -#: library/ensurepip.rst:50 +#: library/ensurepip.rst:52 msgid "The simplest possible invocation is::" msgstr "" -#: library/ensurepip.rst:52 +#: library/ensurepip.rst:54 msgid "python -m ensurepip" msgstr "" -#: library/ensurepip.rst:54 +#: library/ensurepip.rst:56 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 +100,11 @@ msgid "" "upgrade`` option::" msgstr "" -#: library/ensurepip.rst:59 +#: library/ensurepip.rst:61 msgid "python -m ensurepip --upgrade" msgstr "" -#: library/ensurepip.rst:61 +#: library/ensurepip.rst:63 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 +112,122 @@ msgid "" "two additional command line options:" msgstr "" -#: library/ensurepip.rst:68 +#: library/ensurepip.rst:70 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:76 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:80 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:87 msgid "" "If an alternate installation is requested, the ``pipX`` script will *not* be " "installed." msgstr "" -#: library/ensurepip.rst:90 +#: library/ensurepip.rst:92 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:95 msgid "" "Providing both of the script selection options will trigger an exception." msgstr "" -#: library/ensurepip.rst:96 +#: library/ensurepip.rst:98 msgid "Module API" msgstr "" -#: library/ensurepip.rst:98 +#: library/ensurepip.rst:100 msgid ":mod:`ensurepip` exposes two functions for programmatic use:" msgstr "" -#: library/ensurepip.rst:102 +#: library/ensurepip.rst:104 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:111 msgid "Bootstraps ``pip`` into the current or designated environment." msgstr "" -#: library/ensurepip.rst:111 +#: library/ensurepip.rst:113 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:117 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:120 msgid "" "*user* indicates whether to use the user scheme rather than installing " "globally." msgstr "" -#: library/ensurepip.rst:121 +#: library/ensurepip.rst:123 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:126 msgid "If *altinstall* is set, then ``pipX`` will *not* be installed." msgstr "" -#: library/ensurepip.rst:126 +#: library/ensurepip.rst:128 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:131 msgid "" "Setting both *altinstall* and *default_pip* will trigger :exc:`ValueError`." msgstr "" -#: library/ensurepip.rst:132 +#: library/ensurepip.rst:134 msgid "" "*verbosity* controls the level of output to :data:`sys.stdout` from the " "bootstrapping operation." msgstr "" -#: library/ensurepip.rst:135 +#: library/ensurepip.rst:137 msgid "" "Raises an :ref:`auditing event ` ``ensurepip.bootstrap`` with " "argument ``root``." msgstr "" -#: library/ensurepip.rst:139 +#: library/ensurepip.rst:141 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:147 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 ed055f85..efd05b91 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,110 +973,110 @@ 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: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" @@ -1064,13 +1090,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" @@ -1083,13 +1109,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" @@ -1105,24 +1131,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" @@ -1138,13 +1164,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" @@ -1156,19 +1182,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" @@ -1180,7 +1206,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 " @@ -1190,7 +1216,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 " @@ -1198,116 +1224,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 " @@ -1318,54 +1344,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, " @@ -1373,14 +1399,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" @@ -1395,22 +1421,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 " @@ -1418,52 +1444,52 @@ msgid "" "namespace (see :class:`re.RegexFlag` for an example)." msgstr "" -#: library/enum.rst:998 +#: library/enum.rst:1032 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 94d04945..f41c75d0 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 917e1eea..5b6bd076 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,43 +487,43 @@ 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 ":func:`os.fork`." msgstr "" -#: library/exceptions.rst:433 +#: library/exceptions.rst:441 msgid "See also the :func:`sys.is_finalizing` function." msgstr "" -#: library/exceptions.rst:445 +#: library/exceptions.rst:453 msgid "Previously, a plain :exc:`RuntimeError` was raised." msgstr "" -#: library/exceptions.rst:441 +#: library/exceptions.rst:449 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:451 +#: library/exceptions.rst:459 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 " @@ -524,66 +531,66 @@ msgid "" "references, see the :mod:`weakref` module." msgstr "" -#: library/exceptions.rst:459 +#: library/exceptions.rst:467 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:466 +#: library/exceptions.rst:474 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:472 +#: library/exceptions.rst:480 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:476 +#: library/exceptions.rst:484 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:481 +#: library/exceptions.rst:489 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:485 +#: library/exceptions.rst:493 msgid "" "Added ``value`` attribute and the ability for generator functions to use it " "to return a value." msgstr "" -#: library/exceptions.rst:489 +#: library/exceptions.rst:497 msgid "" "Introduced the RuntimeError transformation via ``from __future__ import " "generator_stop``, see :pep:`479`." msgstr "" -#: library/exceptions.rst:493 +#: library/exceptions.rst:501 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:499 +#: library/exceptions.rst:507 msgid "" "Must be raised by :meth:`~object.__anext__` method of an :term:`asynchronous " "iterator` object to stop the iteration." msgstr "" -#: library/exceptions.rst:506 +#: library/exceptions.rst:514 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:" @@ -591,45 +598,45 @@ msgid "" "or standard input (also interactively)." msgstr "" -#: library/exceptions.rst:512 +#: library/exceptions.rst:520 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:517 +#: library/exceptions.rst:525 msgid "The name of the file the syntax error occurred in." msgstr "" -#: library/exceptions.rst:521 +#: library/exceptions.rst:529 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:526 +#: library/exceptions.rst:534 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:531 +#: library/exceptions.rst:539 msgid "The source code text involved in the error." msgstr "" -#: library/exceptions.rst:535 +#: library/exceptions.rst:543 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:540 +#: library/exceptions.rst:548 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:543 +#: library/exceptions.rst:551 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 " @@ -637,23 +644,23 @@ msgid "" "attribute: ('f-string: ...', ('', 1, 2, '(a b)\\n', 1, 5))." msgstr "" -#: library/exceptions.rst:548 +#: library/exceptions.rst:556 msgid "Added the :attr:`end_lineno` and :attr:`end_offset` attributes." msgstr "" -#: library/exceptions.rst:553 +#: library/exceptions.rst:561 msgid "" "Base class for syntax errors related to incorrect indentation. This is a " "subclass of :exc:`SyntaxError`." msgstr "" -#: library/exceptions.rst:559 +#: library/exceptions.rst:567 msgid "" "Raised when indentation contains an inconsistent use of tabs and spaces. " "This is a subclass of :exc:`IndentationError`." msgstr "" -#: library/exceptions.rst:565 +#: library/exceptions.rst:573 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 " @@ -662,7 +669,7 @@ msgid "" "returning a ``NULL`` value without an exception set." msgstr "" -#: library/exceptions.rst:571 +#: library/exceptions.rst:579 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 " @@ -673,7 +680,7 @@ msgid "" "the error." msgstr "" -#: library/exceptions.rst:582 +#: library/exceptions.rst:590 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 " @@ -682,12 +689,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:593 +#: library/exceptions.rst:601 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 " @@ -697,20 +704,20 @@ msgid "" "child process after a call to :func:`os.fork`)." msgstr "" -#: library/exceptions.rst:602 +#: library/exceptions.rst:610 msgid "" "The exit status or error message that is passed to the constructor. " "(Defaults to ``None``.)" msgstr "" -#: library/exceptions.rst:608 +#: library/exceptions.rst:616 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:611 +#: library/exceptions.rst:619 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 " @@ -718,7 +725,7 @@ msgid "" "implementation, :exc:`NotImplementedError` is the proper exception to raise." msgstr "" -#: library/exceptions.rst:616 +#: library/exceptions.rst:624 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 " @@ -726,99 +733,99 @@ msgid "" "should result in a :exc:`ValueError`." msgstr "" -#: library/exceptions.rst:623 +#: library/exceptions.rst:631 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:630 +#: library/exceptions.rst:638 msgid "" "Raised when a Unicode-related encoding or decoding error occurs. It is a " "subclass of :exc:`ValueError`." msgstr "" -#: library/exceptions.rst:633 +#: library/exceptions.rst:641 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:639 +#: library/exceptions.rst:647 msgid "The name of the encoding that raised the error." msgstr "" -#: library/exceptions.rst:643 +#: library/exceptions.rst:651 msgid "A string describing the specific codec error." msgstr "" -#: library/exceptions.rst:647 +#: library/exceptions.rst:655 msgid "The object the codec was attempting to encode or decode." msgstr "" -#: library/exceptions.rst:651 +#: library/exceptions.rst:659 msgid "The first index of invalid data in :attr:`object`." msgstr "" -#: library/exceptions.rst:655 +#: library/exceptions.rst:663 msgid "The index after the last invalid data in :attr:`object`." msgstr "" -#: library/exceptions.rst:660 +#: library/exceptions.rst:668 msgid "" "Raised when a Unicode-related error occurs during encoding. It is a " "subclass of :exc:`UnicodeError`." msgstr "" -#: library/exceptions.rst:666 +#: library/exceptions.rst:674 msgid "" "Raised when a Unicode-related error occurs during decoding. It is a " "subclass of :exc:`UnicodeError`." msgstr "" -#: library/exceptions.rst:672 +#: library/exceptions.rst:680 msgid "" "Raised when a Unicode-related error occurs during translating. It is a " "subclass of :exc:`UnicodeError`." msgstr "" -#: library/exceptions.rst:678 +#: library/exceptions.rst:686 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:685 +#: library/exceptions.rst:693 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:690 +#: library/exceptions.rst:698 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:699 +#: library/exceptions.rst:707 msgid "Only available on Windows." msgstr "" -#: library/exceptions.rst:703 +#: library/exceptions.rst:711 msgid "OS exceptions" msgstr "" -#: library/exceptions.rst:705 +#: library/exceptions.rst:713 msgid "" "The following exceptions are subclasses of :exc:`OSError`, they get raised " "depending on the system error code." msgstr "" -#: library/exceptions.rst:710 +#: library/exceptions.rst:718 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." @@ -826,36 +833,36 @@ msgid "" "const:`~errno.EINPROGRESS`." msgstr "" -#: library/exceptions.rst:715 +#: library/exceptions.rst:723 msgid "" "In addition to those of :exc:`OSError`, :exc:`BlockingIOError` can have one " "more attribute:" msgstr "" -#: library/exceptions.rst:720 +#: library/exceptions.rst:728 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:726 +#: library/exceptions.rst:734 msgid "" "Raised when an operation on a child process failed. Corresponds to :c:data:" "`errno` :py:const:`~errno.ECHILD`." msgstr "" -#: library/exceptions.rst:731 +#: library/exceptions.rst:739 msgid "A base class for connection-related issues." msgstr "" -#: library/exceptions.rst:733 +#: library/exceptions.rst:741 msgid "" "Subclasses are :exc:`BrokenPipeError`, :exc:`ConnectionAbortedError`, :exc:" "`ConnectionRefusedError` and :exc:`ConnectionResetError`." msgstr "" -#: library/exceptions.rst:738 +#: library/exceptions.rst:746 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 " @@ -863,58 +870,58 @@ msgid "" "`~errno.EPIPE` and :py:const:`~errno.ESHUTDOWN`." msgstr "" -#: library/exceptions.rst:745 +#: library/exceptions.rst:753 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:751 +#: library/exceptions.rst:759 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:757 +#: library/exceptions.rst:765 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:763 +#: library/exceptions.rst:771 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:768 +#: library/exceptions.rst:776 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:773 +#: library/exceptions.rst:781 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:776 +#: library/exceptions.rst:784 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:783 +#: library/exceptions.rst:791 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:789 +#: library/exceptions.rst:797 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 " @@ -923,7 +930,7 @@ msgid "" "ENOTDIR`." msgstr "" -#: library/exceptions.rst:797 +#: library/exceptions.rst:805 msgid "" "Raised when trying to run an operation without the adequate access rights - " "for example filesystem permissions. Corresponds to :c:data:`errno` :py:const:" @@ -931,130 +938,136 @@ msgid "" "ENOTCAPABLE`." msgstr "" -#: library/exceptions.rst:802 +#: library/exceptions.rst:810 msgid "" "WASI's :py:const:`~errno.ENOTCAPABLE` is now mapped to :exc:" "`PermissionError`." msgstr "" -#: library/exceptions.rst:808 +#: library/exceptions.rst:816 msgid "" "Raised when a given process doesn't exist. Corresponds to :c:data:`errno` :" "py:const:`~errno.ESRCH`." msgstr "" -#: library/exceptions.rst:813 +#: library/exceptions.rst:821 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:816 +#: library/exceptions.rst:824 msgid "All the above :exc:`OSError` subclasses were added." msgstr "" -#: library/exceptions.rst:822 +#: library/exceptions.rst:830 msgid ":pep:`3151` - Reworking the OS and IO exception hierarchy" msgstr "" -#: library/exceptions.rst:828 +#: library/exceptions.rst:836 msgid "Warnings" msgstr "" -#: library/exceptions.rst:830 +#: library/exceptions.rst:838 msgid "" "The following exceptions are used as warning categories; see the :ref:" "`warning-categories` documentation for more details." msgstr "" -#: library/exceptions.rst:835 +#: library/exceptions.rst:843 msgid "Base class for warning categories." msgstr "" -#: library/exceptions.rst:840 +#: library/exceptions.rst:848 msgid "Base class for warnings generated by user code." msgstr "" -#: library/exceptions.rst:845 +#: library/exceptions.rst:853 msgid "" "Base class for warnings about deprecated features when those warnings are " "intended for other Python developers." msgstr "" -#: library/exceptions.rst:848 +#: library/exceptions.rst:856 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:868 +#: library/exceptions.rst:876 msgid "The deprecation policy is described in :pep:`387`." msgstr "" -#: library/exceptions.rst:857 +#: library/exceptions.rst:865 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:861 +#: library/exceptions.rst:869 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:891 library/exceptions.rst:918 +#: library/exceptions.rst:902 library/exceptions.rst:929 msgid "" "Ignored by the default warning filters. Enabling the :ref:`Python " "Development Mode ` shows this warning." msgstr "" -#: library/exceptions.rst:873 +#: library/exceptions.rst:881 msgid "Base class for warnings about dubious syntax." msgstr "" -#: library/exceptions.rst:878 +#: library/exceptions.rst:883 +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:889 msgid "Base class for warnings about dubious runtime behavior." msgstr "" -#: library/exceptions.rst:883 +#: library/exceptions.rst:894 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:889 +#: library/exceptions.rst:900 msgid "Base class for warnings about probable mistakes in module imports." msgstr "" -#: library/exceptions.rst:897 +#: library/exceptions.rst:908 msgid "Base class for warnings related to Unicode." msgstr "" -#: library/exceptions.rst:902 +#: library/exceptions.rst:913 msgid "Base class for warnings related to encodings." msgstr "" -#: library/exceptions.rst:904 +#: library/exceptions.rst:915 msgid "See :ref:`io-encoding-warning` for details." msgstr "" -#: library/exceptions.rst:911 +#: library/exceptions.rst:922 msgid "" "Base class for warnings related to :class:`bytes` and :class:`bytearray`." msgstr "" -#: library/exceptions.rst:916 +#: library/exceptions.rst:927 msgid "Base class for warnings related to resource usage." msgstr "" -#: library/exceptions.rst:927 +#: library/exceptions.rst:938 msgid "Exception groups" msgstr "" -#: library/exceptions.rst:929 +#: library/exceptions.rst:940 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 " @@ -1063,7 +1076,7 @@ msgid "" "based on the types of the contained exceptions." msgstr "" -#: library/exceptions.rst:938 +#: library/exceptions.rst:949 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 " @@ -1074,7 +1087,7 @@ msgid "" "exc:`BaseExceptionGroup`." msgstr "" -#: library/exceptions.rst:946 +#: library/exceptions.rst:957 msgid "" "The :exc:`BaseExceptionGroup` constructor returns an :exc:`ExceptionGroup` " "rather than a :exc:`BaseExceptionGroup` if all contained exceptions are :exc:" @@ -1083,23 +1096,23 @@ msgid "" "`TypeError` if any contained exception is not an :exc:`Exception` subclass." msgstr "" -#: library/exceptions.rst:955 +#: library/exceptions.rst:966 msgid "The ``msg`` argument to the constructor. This is a read-only attribute." msgstr "" -#: library/exceptions.rst:959 +#: library/exceptions.rst:970 msgid "" "A tuple of the exceptions in the ``excs`` sequence given to the constructor. " "This is a read-only attribute." msgstr "" -#: library/exceptions.rst:964 +#: library/exceptions.rst:975 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:967 +#: library/exceptions.rst:978 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 " @@ -1108,7 +1121,7 @@ msgid "" "true for the exceptions that should be in the subgroup." msgstr "" -#: library/exceptions.rst:973 +#: library/exceptions.rst:984 msgid "" "The nesting structure of the current exception is preserved in the result, " "as are the values of its :attr:`message`, :attr:`~BaseException." @@ -1117,31 +1130,31 @@ msgid "" "groups are omitted from the result." msgstr "" -#: library/exceptions.rst:980 +#: library/exceptions.rst:991 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:984 +#: library/exceptions.rst:995 msgid "``condition`` can be any callable which is not a type object." msgstr "" -#: library/exceptions.rst:989 +#: library/exceptions.rst:1000 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:995 +#: library/exceptions.rst:1006 msgid "" "Returns an exception group with the same :attr:`message`, but which wraps " "the exceptions in ``excs``." msgstr "" -#: library/exceptions.rst:998 +#: library/exceptions.rst:1009 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 " @@ -1149,7 +1162,7 @@ msgid "" "instances of the subclass rather than :exc:`ExceptionGroup`." msgstr "" -#: library/exceptions.rst:1004 +#: library/exceptions.rst:1015 msgid "" ":meth:`subgroup` and :meth:`split` copy the :attr:`~BaseException." "__traceback__`, :attr:`~BaseException.__cause__`, :attr:`~BaseException." @@ -1158,7 +1171,7 @@ msgid "" "not need to be updated by :meth:`derive`." msgstr "" -#: library/exceptions.rst:1011 +#: library/exceptions.rst:1022 msgid "" ">>> class MyGroup(ExceptionGroup):\n" "... def derive(self, excs):\n" @@ -1187,16 +1200,16 @@ msgid "" "True" msgstr "" -#: library/exceptions.rst:1037 +#: library/exceptions.rst:1048 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:1043 +#: library/exceptions.rst:1054 msgid "" "class Errors(ExceptionGroup):\n" " def __new__(cls, errors, exit_code):\n" @@ -1208,22 +1221,22 @@ msgid "" " return Errors(excs, self.exit_code)" msgstr "" -#: library/exceptions.rst:1052 +#: library/exceptions.rst:1063 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:1060 +#: library/exceptions.rst:1071 msgid "Exception hierarchy" msgstr "" -#: library/exceptions.rst:1062 +#: library/exceptions.rst:1073 msgid "The class hierarchy for built-in exceptions is:" msgstr "" -#: library/exceptions.rst:1064 +#: library/exceptions.rst:1075 msgid "" "BaseException\n" " ├── BaseExceptionGroup\n" @@ -1335,10 +1348,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 98154171..e2df9b77 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/fcntl.po b/library/fcntl.po index fc41fd7b..3d217f25 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 bc8f25c6..25c8aea3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1b14bfd0..79a84f27 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 83c84205..063fe87e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 e125f709..0ac92c7e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 2ba85492..e0927a57 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/fractions.po b/library/fractions.po index a6d56236..a33e8091 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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`. The second version requires that " +"with a value equal to ``numerator/denominator``. If *denominator* is zero, " +"it raises a :exc:`ZeroDivisionError`. The second version requires that " "*other_fraction* is an instance of :class:`numbers.Rational` and returns a :" "class:`Fraction` instance with the same value. The next two versions accept " "either a :class:`float` or a :class:`decimal.Decimal` instance, and return " @@ -154,68 +154,68 @@ msgid "Numerator of the Fraction in lowest term." msgstr "" #: library/fractions.rst:119 -msgid "Denominator of the Fraction in lowest term." +msgid "Denominator of the Fraction in lowest terms. Guaranteed to be positive." msgstr "" -#: library/fractions.rst:124 +#: library/fractions.rst:125 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:132 +#: library/fractions.rst:133 msgid "Return ``True`` if the Fraction is an integer." msgstr "" -#: library/fractions.rst:138 +#: library/fractions.rst:139 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:144 +#: library/fractions.rst:145 msgid "" "From Python 3.2 onwards, you can also construct a :class:`Fraction` instance " "directly from a :class:`float`." msgstr "" -#: library/fractions.rst:150 +#: library/fractions.rst:151 msgid "" "Alternative constructor which only accepts instances of :class:`decimal." "Decimal` or :class:`numbers.Integral`." msgstr "" -#: library/fractions.rst:155 +#: library/fractions.rst:156 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:162 +#: library/fractions.rst:163 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:170 +#: library/fractions.rst:171 msgid "or for recovering a rational number that's represented as a float:" msgstr "" -#: library/fractions.rst:183 +#: library/fractions.rst:184 msgid "" "Returns the greatest :class:`int` ``<= self``. This method can also be " "accessed through the :func:`math.floor` function:" msgstr "" -#: library/fractions.rst:193 +#: library/fractions.rst:194 msgid "" "Returns the least :class:`int` ``>= self``. This method can also be " "accessed through the :func:`math.ceil` function." msgstr "" -#: library/fractions.rst:200 +#: library/fractions.rst:201 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 " @@ -224,14 +224,14 @@ msgid "" "func:`round` function." msgstr "" -#: library/fractions.rst:208 +#: library/fractions.rst:209 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:212 +#: library/fractions.rst:213 msgid "" "If the ``format_spec`` format specification string does not end with one of " "the presentation types ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, ``'G'`` " @@ -243,7 +243,7 @@ msgid "" "exact integer. The zero-fill flag ``'0'`` is not supported." msgstr "" -#: library/fractions.rst:222 +#: library/fractions.rst:223 msgid "" "If the ``format_spec`` format specification string ends with one of the " "presentation types ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, ``'G'`` or " @@ -251,11 +251,11 @@ msgid "" "type in the :ref:`formatspec` section." msgstr "" -#: library/fractions.rst:227 +#: library/fractions.rst:228 msgid "Here are some examples::" msgstr "" -#: library/fractions.rst:229 +#: library/fractions.rst:230 msgid "" ">>> from fractions import Fraction\n" ">>> format(Fraction(103993, 33102), '_')\n" @@ -277,10 +277,10 @@ msgid "" "'34.67% price increase'" msgstr "" -#: library/fractions.rst:251 +#: library/fractions.rst:252 msgid "Module :mod:`numbers`" msgstr "" -#: library/fractions.rst:252 +#: library/fractions.rst:253 msgid "The abstract base classes making up the numeric tower." msgstr "" diff --git a/library/frameworks.po b/library/frameworks.po index da7bd6ad..b6d1fb7b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 166eface..c20bd2f2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ecf72673..095cbb2f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a0ae609c..74faa177 100644 --- a/library/functions.po +++ b/library/functions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" -"PO-Revision-Date: 2024-05-05 22:38+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -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:942 library/functions.rst:1323 +#: library/functions.rst:940 library/functions.rst:1321 msgid "See also :func:`format` for more information." msgstr "Δείτε επίσης τη :func:`format` για περισσότερες πληροφορίες." @@ -539,15 +540,15 @@ msgid "" "`typesnumeric`). It cannot be subclassed further. Its only instances are " "``False`` and ``True`` (see :ref:`typebool`)." msgstr "" -"Επιστρέφετε μια δυαδική τιμή, π.χ. μία από τις τιμές ``True`` ή ``False``. " +"Επιστρέφετε μια δυαδική τιμή, π.χ. μία από τις τιμές ``True`` ή ``False``. " "Το όρισμα μετατρέπεται χρησιμοποιώντας την τυπική :ref:`truth testing " "procedure `. Εάν το όρισμα είναι ψευδές ή παραλειφθεί, αυτό " -"επιστρέφει ``False``∙ διαφορετικά, επιστρέφει ``True``. Η κλάση :class:" +"επιστρέφει ``False`` ∙ διαφορετικά, επιστρέφει ``True``. Η κλάση :class:" "`bool` είναι μια υποκλάση της :class:`int` (βλ. :ref:`typesnumeric`). Δεν " "μπορεί να γίνει περαιτέρω υποκλάση. Οι μόνες περιπτώσεις είναι ``False`` " "και ``True`` (βλ. :ref:`typebool`)." -#: library/functions.rst:807 +#: library/functions.rst:805 msgid "The parameter is now positional-only." msgstr "Η παράμετρος είναι πλέον μόνο παράμετρος θέσης." @@ -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,15 +659,15 @@ 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 :" @@ -678,24 +679,24 @@ 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`." -#: 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 " @@ -710,7 +711,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 +719,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 +752,7 @@ msgstr "" "instance μέθοδος λαμβάνει το instance. Για να δηλώσετε μια μέθοδο κλάσης, " "χρησιμοποιήστε αυτό το ιδίωμα::" -#: library/functions.rst:265 +#: library/functions.rst:263 msgid "" "class C:\n" " @classmethod\n" @@ -762,7 +762,7 @@ 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." @@ -770,7 +770,7 @@ msgstr "" "Η φόρμα ``@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 +782,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,7 +792,7 @@ 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`." @@ -800,7 +800,7 @@ 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__`, :" @@ -812,7 +812,7 @@ msgstr "" "__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 +820,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 " @@ -833,7 +833,7 @@ msgstr "" "συμβολοσειρά 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 +843,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,7 +858,7 @@ msgstr "" "θα εκτυπωθούν δηλώσεις έκφρασης που αξιολογούνται σε κάτι διαφορετικό από " "``None``)." -#: library/functions.rst:314 +#: library/functions.rst:312 msgid "" "The optional arguments *flags* and *dont_inherit* control which :ref:" "`compiler options ` should be activated and which :ref:" @@ -883,7 +883,7 @@ msgstr "" "ακέραιος, τότε το όρισμα *flags* είναι αυτό -- οι σημαίες (μελλοντικές " "δυνατότητες και επιλογές μεταγλωττιστή) στον περιβάλλοντα κώδικα αγνοούνται." -#: library/functions.rst:325 +#: 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 " @@ -900,7 +900,7 @@ msgstr "" "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 +915,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,7 +924,7 @@ 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`." @@ -932,7 +932,7 @@ 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,7 +942,7 @@ 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 " @@ -955,7 +955,7 @@ msgstr "" "εντοπισμός μη ολοκληρωμένων και ολοκληρωμένων δηλώσεων στο 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 +965,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 +974,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 +982,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 +991,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 +999,11 @@ msgstr "" "Μετατρέπει μια συμβολοσειρά ή έναν αριθμό σε έναν μιγαδικό αριθμό ή " "δημιουργεί έναν μιγαδικό αριθμός από πραγματικά και φανταστικά μέρη." -#: library/functions.rst:752 library/functions.rst:998 +#: library/functions.rst:750 library/functions.rst:996 msgid "Examples:" msgstr "Παραδείγματα:" -#: library/functions.rst:386 +#: library/functions.rst:384 msgid "" ">>> complex('+1.23')\n" "(1.23+0j)\n" @@ -1039,7 +1039,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 " @@ -1067,7 +1067,7 @@ 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``, " @@ -1083,7 +1083,7 @@ msgstr "" "`~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 " @@ -1102,20 +1102,20 @@ msgstr "" "imag`` και ``real.imag+imag.real``. Αν ένα από τα ορίσματα είναι πραγματικός " "αριθμός, χρησιμοποιείται μόνο το πραγματικό στοιχείο στις παραπάνω εκφράσεις." -#: library/functions.rst:443 +#: library/functions.rst:441 msgid "If all arguments are omitted, returns ``0j``." msgstr "Εάν παραληφθούν όλα τα ορίσματα, επιστρέφει ``0j``" -#: library/functions.rst:445 +#: library/functions.rst:443 msgid "The complex type is described in :ref:`typesnumeric`." msgstr "Ο μιγαδικός τύπος περιγράφεται στο :ref:`typesnumeric`." -#: library/functions.rst:804 library/functions.rst:1047 +#: library/functions.rst:802 library/functions.rst:1045 msgid "Grouping digits with underscores as in code literals is allowed." msgstr "" "Επιτρέπεται η ομαδοποίηση ψηφίων με κάτω παύλες όπως στα literals του κώδικα." -#: library/functions.rst:450 +#: library/functions.rst:448 msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__complex__` and :" "meth:`~object.__float__` are not defined." @@ -1123,7 +1123,7 @@ msgstr "" "Επιστρέφει πίσω στη :meth:`~object.__index__` εάν η :meth:`~object." "__complex__` και η :meth:`~object.__float__` δεν ορίζονται." -#: library/functions.rst:457 +#: library/functions.rst:455 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 " @@ -1139,7 +1139,7 @@ msgstr "" "foobar``. Το *name* δεν χρειάζεται να είναι αναγνωριστικό της Python (δείτε :" "func:`setattr`)." -#: library/functions.rst:470 +#: library/functions.rst:468 msgid "" "Create a new dictionary. The :class:`dict` object is the dictionary class. " "See :class:`dict` and :ref:`typesmapping` for documentation about this class." @@ -1148,7 +1148,7 @@ msgstr "" "λεξικού. Δείτε το :class:`dict` και το :ref:`typesmapping` για τεκμηρίωση " "σχετικά με αυτή την κατηγορία." -#: library/functions.rst:473 +#: library/functions.rst:471 msgid "" "For other containers see the built-in :class:`list`, :class:`set`, and :" "class:`tuple` classes, as well as the :mod:`collections` module." @@ -1156,7 +1156,7 @@ msgstr "" "Για άλλα containers, δείτε τις ενσωματωμένες κλάσεις :class:`list`, :class:" "`set`, και :class:`tuple`, καθώς και το module :mod:`collections`." -#: library/functions.rst:480 +#: library/functions.rst:478 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 " @@ -1166,7 +1166,7 @@ msgstr "" "ένα όρισμα, προσπαθεί να επιστρέψει μια λίστα έγκυρων χαρακτηριστικών για " "αυτό το αντικείμενο." -#: library/functions.rst:483 +#: library/functions.rst:481 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 " @@ -1180,7 +1180,7 @@ msgstr "" "func:`~object.__getattr__` or :func:`~object.__getattribute__` για την " "προσαρμογή του τρόπου με τον οποίο η :func:`dir` αναφέρει τα χαρακτηριστικά." -#: library/functions.rst:490 +#: library/functions.rst:488 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__` " @@ -1195,7 +1195,7 @@ msgstr "" "και μπορεί να είναι ανακριβής όταν το αντικείμενο έχει εξατομικευμένη :func:" "`~object.__getattr__`." -#: library/functions.rst:496 +#: library/functions.rst:494 msgid "" "The default :func:`dir` mechanism behaves differently with different types " "of objects, as it attempts to produce the most relevant, rather than " @@ -1205,7 +1205,7 @@ msgstr "" "διαφορετικούς τύπους αντικειμένων, καθώς προσπαθεί να παράγει τις πιο " "σχετικές και όχι τις πιο ολοκληρωμένες πληροφορίες:" -#: library/functions.rst:500 +#: library/functions.rst:498 msgid "" "If the object is a module object, the list contains the names of the " "module's attributes." @@ -1213,7 +1213,7 @@ msgstr "" "Εάν το αντικείμενο είναι module τύπου αντικειμένου, η λίστα περιέχει τα " "ονόματα των χαρακτηριστικών του module." -#: library/functions.rst:503 +#: library/functions.rst:501 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." @@ -1222,7 +1222,7 @@ msgstr "" "τα ονόματα των χαρακτηριστικών του, και αναδρομικά τα χαρακτηριστικά της " "βάσεώς του." -#: library/functions.rst:506 +#: library/functions.rst:504 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 " @@ -1232,11 +1232,11 @@ msgstr "" "αντικειμένου, τα ονόματα των χαρακτηριστικών της κλάσης, και αναδρομικά τα " "χαρακτηριστικά της κλάσης βάσεως της κλάσης." -#: library/functions.rst:510 +#: library/functions.rst:508 msgid "The resulting list is sorted alphabetically. For example:" msgstr "Η παραγόμενη λίστα είναι ταξινομημένη αλφαβητικά. Για παράδειγμα:" -#: library/functions.rst:530 +#: library/functions.rst:528 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 " @@ -1252,7 +1252,7 @@ msgstr "" "μετακλάσης δεν βρίσκονται στη λίστα αποτελεσμάτων όταν το όρισμα είναι μια " "κλάση." -#: library/functions.rst:540 +#: library/functions.rst:538 msgid "" "Take two (non-complex) numbers as arguments and return a pair of numbers " "consisting of their quotient and remainder when using integer division. " @@ -1274,7 +1274,7 @@ msgstr "" "b`` δεν είναι μηδενικό, έχει το ίδιο πρόσημο όπως το *b*, και ``0 <= abs(a % " "b) < abs(b)``." -#: library/functions.rst:552 +#: library/functions.rst:550 msgid "" "Return an enumerate object. *iterable* must be a sequence, an :term:" "`iterator`, or some other object which supports iteration. The :meth:" @@ -1289,11 +1289,11 @@ msgstr "" "περιέχει μια καταμέτρηση (από το *start* που είναι με προεπιλογή στο 0) και " "τις τιμές που λαμβάνονται από την επανάληψη πάνω στο *iterable*." -#: library/functions.rst:564 +#: library/functions.rst:562 msgid "Equivalent to::" msgstr "Ισοδύναμο με::" -#: library/functions.rst:566 +#: library/functions.rst:564 msgid "" "def enumerate(iterable, start=0):\n" " n = start\n" @@ -1311,15 +1311,15 @@ msgstr "" msgid "Parameters" msgstr "Παράμετροι" -#: library/functions.rst:576 +#: library/functions.rst:574 msgid "A Python expression." msgstr "Μια έκφραση Python." -#: library/functions.rst:580 +#: library/functions.rst:578 msgid "The global namespace (default: ``None``)." msgstr "Το καθολικό namespace (προεπιλογή: ``None``)." -#: library/functions.rst:584 +#: library/functions.rst:582 msgid "The local namespace (default: ``None``)." msgstr "Το τοπικό namespace (προεπιλογή: ``None``)." @@ -1327,7 +1327,7 @@ msgstr "Το τοπικό namespace (προεπιλογή: ``None``)." msgid "Returns" msgstr "Επιστρέφει" -#: library/functions.rst:588 +#: library/functions.rst:586 msgid "The result of the evaluated expression." msgstr "Το αποτέλεσμα της αξιολογούμενης έκφρασης" @@ -1335,11 +1335,11 @@ msgstr "Το αποτέλεσμα της αξιολογούμενης έκφρα msgid "raises" msgstr "κάνει raise" -#: library/functions.rst:589 +#: library/functions.rst:587 msgid "Syntax errors are reported as exceptions." msgstr "Τα συντακτικά σφάλματα αναφέρονται ως εξαιρέσεις" -#: library/functions.rst:654 +#: library/functions.rst:652 msgid "" "This function executes arbitrary code. Calling it with user-supplied input " "may lead to security vulnerabilities." @@ -1347,7 +1347,7 @@ msgstr "" "Αυτή η συνάρτηση εκτελεί αυθαίρετο κώδικα. Η κλήση της με είσοδο που " "παρέχεται από το χρήστη μπορεί να οδηγήσει σε ευπάθειες ασφαλείας." -#: library/functions.rst:596 +#: library/functions.rst:594 msgid "" "The *expression* argument is parsed and evaluated as a Python expression " "(technically speaking, a condition list) using the *globals* and *locals* " @@ -1382,11 +1382,11 @@ msgstr "" "χώρο ονομάτων που καλεί τη :func:`eval` (π.χ. μέσω μιας δήλωσης :keyword:" "`nonlocal`)." -#: library/functions.rst:612 +#: library/functions.rst:610 msgid "Example:" msgstr "Παράδειγμα:" -#: library/functions.rst:618 +#: library/functions.rst:616 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 " @@ -1400,7 +1400,7 @@ msgstr "" "ως το όρισμα *mode*, η επιστρεφόμενη τιμή του :func:`eval`\\'s θα είναι " "``None``." -#: library/functions.rst:623 +#: library/functions.rst:621 msgid "" "Hints: dynamic execution of statements is supported by the :func:`exec` " "function. The :func:`globals` and :func:`locals` functions return the " @@ -1412,7 +1412,7 @@ msgstr "" "τρέχον global και local λεξικό, αντίστοιχα, το οποίο μπορεί να είναι χρήσιμο " "για μεταβίβαση γύρω από τη χρήση από τις :func:`eval` ή :func:`exec`." -#: library/functions.rst:628 +#: library/functions.rst:626 msgid "" "If the given source is a string, then leading and trailing spaces and tabs " "are stripped." @@ -1420,7 +1420,7 @@ msgstr "" "Εάν η δεδομένη πηγή είναι μια συμβολοσειρά, τότε αφαιρούνται τα κενά και τα " "tabs που προηγούνται ή έπονται." -#: library/functions.rst:631 +#: library/functions.rst:629 msgid "" "See :func:`ast.literal_eval` for a function that can safely evaluate strings " "with expressions containing only literals." @@ -1428,7 +1428,7 @@ msgstr "" "Βλ. τη :func:`ast.literal_eval` για μια συνάρτηση που μπορεί με ασφάλεια να " "αξιολογήσει τις συμβολοσειρές με εκφράσεις που περιέχουν μόνο literals." -#: library/functions.rst:636 library/functions.rst:698 +#: library/functions.rst:634 library/functions.rst:696 msgid "" "Raises an :ref:`auditing event ` ``exec`` with the code object as " "the argument. Code compilation events may also be raised." @@ -1436,13 +1436,13 @@ msgstr "" "Κάνει raise ένα :ref:`auditing event ` ``exec`` με το αντικείμενο " "κώδικα ως όρισμα. Μπορεί επίσης να εμφανιστούν συμβάντα μεταγλώττισης κώδικα." -#: library/functions.rst:718 +#: library/functions.rst:716 msgid "The *globals* and *locals* arguments can now be passed as keywords." msgstr "" "Τα ορίσματα *globals* και *locals* υποστηρίζονται πλέον και ως ορίσματα " "λέξεων-κλειδιών." -#: library/functions.rst:722 +#: library/functions.rst:720 msgid "" "The semantics of the default *locals* namespace have been adjusted as " "described for the :func:`locals` builtin." @@ -1450,7 +1450,7 @@ msgstr "" "Η σημασιολογία του προεπιλεγμένου ονόματος χώρου *locals* έχει τροποποιηθεί, " "όπως περιγράφεται για την ενσωματωμένη συνάρτηση :func:`locals`." -#: library/functions.rst:657 +#: library/functions.rst:655 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 " @@ -1474,7 +1474,7 @@ msgstr "" "συναρτήσεων, ακόμη και στο πλαίσιο του κώδικα που διαβιβάζεται στη :func:" "`exec`. Η επιστρεφόμενη τιμή είναι ``None``." -#: library/functions.rst:668 +#: library/functions.rst:666 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 " @@ -1491,7 +1491,7 @@ msgstr "" "είναι οποιοδήποτε αντικείμενο αντιστοίχισης. Να θυμάστε ότι σε επίπεδο " "module, τα globals και locals είναι το ίδιο λεξικό." -#: library/functions.rst:678 +#: library/functions.rst:676 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 " @@ -1506,7 +1506,7 @@ msgstr "" "επίπεδο (καθώς αυτές οι \"ανωτέρου επιπέδου\" μεταβλητές θεωρούνται ως " "μεταβλητές κλάσης, όπως συμβαίνει μέσα σε έναν ορισμό κλάσης)." -#: library/functions.rst:684 +#: library/functions.rst:682 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:" @@ -1521,7 +1521,7 @@ msgstr "" "το δικό σας ``__builtins__`` λεξικό στο *globals* πριν το διαβάσετε στο :" "func:`exec`." -#: library/functions.rst:690 +#: library/functions.rst:688 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) " @@ -1534,7 +1534,7 @@ msgstr "" "να ταιριάζει ακριβώς με το μήκος το χαρακτηριστικό :attr:`~codeobject." "co_freevars` του αντικειμένου κώδικα." -#: library/functions.rst:703 +#: library/functions.rst:701 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 " @@ -1544,7 +1544,7 @@ msgstr "" "το τρέχον χώρο ονομάτων global και local, αντίστοιχα, που μπορεί να είναι " "χρήσιμο για χρήση ως δεύτερο και τρίτο όρισμα στο :func:`exec`." -#: library/functions.rst:709 +#: library/functions.rst:707 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 " @@ -1555,11 +1555,11 @@ msgstr "" "επιδράσεις του κώδικα *locals* μετά την επιστροφή της συνάρτησης :func:" "`exec`." -#: library/functions.rst:713 +#: library/functions.rst:711 msgid "Added the *closure* parameter." msgstr "Προστέθηκε η παράμετρος *closure*." -#: library/functions.rst:728 +#: library/functions.rst:726 msgid "" "Construct an iterator from those elements of *iterable* for which *function* " "is true. *iterable* may be either a sequence, a container which supports " @@ -1572,7 +1572,7 @@ msgstr "" "*function* είναι ``None``, η συνάρτηση ταυτότητας υποτίθεται, δηλαδή, όλα τα " "στοιχεία του *iterable* που είναι ψευδή αφαιρούνται." -#: library/functions.rst:734 +#: library/functions.rst:732 msgid "" "Note that ``filter(function, iterable)`` is equivalent to the generator " "expression ``(item for item in iterable if function(item))`` if function is " @@ -1584,7 +1584,7 @@ msgstr "" "η συνάρτηση δεν είναι ``None`` και ``(item for item in iterable if item)`` " "εάν η συνάρτηση είναι ``None``." -#: library/functions.rst:739 +#: library/functions.rst:737 msgid "" "See :func:`itertools.filterfalse` for the complementary function that " "returns elements of *iterable* for which *function* is false." @@ -1592,13 +1592,13 @@ msgstr "" "Βλ. :func:`itertools.filterfalse` για τη συμπληρωματική συνάρτηση που " "επιστρέφει στοιχεία του *iterable* για τα οποία η *function* είναι ψευδής." -#: library/functions.rst:750 +#: library/functions.rst:748 msgid "Return a floating-point number constructed from a number or a string." msgstr "" "Επιστέφει έναν αριθμό κινητής υποδιαστολής που κατασκευάστηκε από έναν " "αριθμό ή μια συμβολοσειρά." -#: library/functions.rst:754 +#: library/functions.rst:752 msgid "" ">>> float('+1.23')\n" "1.23\n" @@ -1622,7 +1622,7 @@ msgstr "" ">>> float('-Infinity')\n" "-inf" -#: library/functions.rst:767 +#: library/functions.rst:765 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 " @@ -1635,14 +1635,14 @@ msgstr "" "Εάν το όρισμα είναι συμβολοσειρά (string), θα πρέπει να περιέχει έναν " "δεκαδικό αριθμό, προαιρετικά πριν από ένα σύμβολο και προαιρετικά " "ενσωματωμένο σε κενό διάστημα. Το προαιρετικό πρόσημο μπορεί να είναι " -"``'+'`` ή ``'-'``∙ ένα σύμβολο ``'+'`` δεν έχει καμία επίδραση στην τιμή που " -"παράγεται. Το όρισμα μπορεί επίσης να είναι μια συμβολοσειρά που " +"``'+'`` ή ``'-'`` ∙ ένα σύμβολο ``'+'`` δεν έχει καμία επίδραση στην τιμή " +"που παράγεται. Το όρισμα μπορεί επίσης να είναι μια συμβολοσειρά που " "αντιπροσωπεύει ένα NaN (not-a-number), ή θετικό η αρνητικό άπειρο. Πιο " "συγκεκριμένα, η είσοδος πρέπει να συμμορφώνεται με τον κανόνα παραγωγής :" "token:`~float:floatvalue` στην ακόλουθη γραμματική, αφού αφαιρεθούν οι " "χαρακτήρες κενού διαστήματος που έπονται και προηγούνται:" -#: library/functions.rst:788 +#: library/functions.rst:786 msgid "" "Case is not significant, so, for example, \"inf\", \"Inf\", \"INFINITY\", " "and \"iNfINity\" are all acceptable spellings for positive infinity." @@ -1651,7 +1651,7 @@ msgstr "" "\"Inf\", \"INFINITY\", και \"iNfINity\" είναι όλες αποδεκτές ορθογραφίες για " "το θετικό άπειρο." -#: library/functions.rst:791 +#: library/functions.rst:789 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 " @@ -1663,7 +1663,7 @@ msgstr "" "ακρίβειας κινητής υποδιαστολής της Python). Εάν το όρισμα βρίσκεται εκτός " "του εύρους ενός float της Python θα γίνει raise ένα :exc:`OverflowError`." -#: library/functions.rst:796 +#: library/functions.rst:794 msgid "" "For a general Python object ``x``, ``float(x)`` delegates to ``x." "__float__()``. If :meth:`~object.__float__` is not defined then it falls " @@ -1673,15 +1673,15 @@ msgstr "" "__float__()``. Εάν το :meth:`~object.__float__` δεν έχει οριστεί, τότε " "επιστρέφει στο :meth:`~object.__index__`." -#: library/functions.rst:800 +#: library/functions.rst:798 msgid "If no argument is given, ``0.0`` is returned." msgstr "Εάν δεν δοθεί όρισμα, επιστρέφεται το ``0.0``." -#: library/functions.rst:802 +#: library/functions.rst:800 msgid "The float type is described in :ref:`typesnumeric`." msgstr "Ο τύπος float περιγράφεται στο :ref:`typesnumeric`." -#: library/functions.rst:810 +#: library/functions.rst:808 msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__float__` is not " "defined." @@ -1689,7 +1689,7 @@ msgstr "" "Επιστρέφει στο :meth:`~object.__index__` εάν το :meth:`~object.__float__` " "δεν έχει οριστεί." -#: library/functions.rst:820 +#: library/functions.rst:818 msgid "" "Convert a *value* to a \"formatted\" representation, as controlled by " "*format_spec*. The interpretation of *format_spec* will depend on the type " @@ -1702,7 +1702,7 @@ msgstr "" "χρησιμοποιείται από τους περισσότερους ενσωματωμένους τύπους: :ref:" "`formatspec`." -#: library/functions.rst:825 +#: library/functions.rst:823 msgid "" "The default *format_spec* is an empty string which usually gives the same " "effect as calling :func:`str(value) `." @@ -1710,7 +1710,7 @@ msgstr "" "Η προεπιλεγμένη *format_spec* είναι μια κενή συμβολοσειρά που συνήθως δίνει " "το ίδιο αποτέλεσμα με την κλήση του :func:`str(value) `." -#: library/functions.rst:828 +#: library/functions.rst:826 msgid "" "A call to ``format(value, format_spec)`` is translated to ``type(value)." "__format__(value, format_spec)`` which bypasses the instance dictionary when " @@ -1726,7 +1726,7 @@ msgstr "" "φτάσει στο :mod:`object` και το *format_spec* δεν είναι κενό ή εάν είτε το " "*format_spec* είτε η τιμή επιστροφής δεν είναι συμβολοσειρές." -#: library/functions.rst:835 +#: library/functions.rst:833 msgid "" "``object().__format__(format_spec)`` raises :exc:`TypeError` if " "*format_spec* is not an empty string." @@ -1734,7 +1734,7 @@ msgstr "" "Το ``object().__format__(format_spec)`` κάνει raise το :exc:`TypeError` εάν " "το *format_spec* δεν είναι κενή συμβολοσειρά." -#: library/functions.rst:844 +#: library/functions.rst:842 msgid "" "Return a new :class:`frozenset` object, optionally with elements taken from " "*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and :" @@ -1745,7 +1745,7 @@ msgstr "" "κλάση. Δείτε το :class:`frozenset` και το :ref:`types-set` για τεκμηρίωση " "αυτής της κλάσης." -#: library/functions.rst:848 +#: library/functions.rst:846 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." @@ -1754,7 +1754,7 @@ msgstr "" "class:`list`, :class:`tuple`, και :class:`dict`, καθώς και το module :mod:" "`collections`." -#: library/functions.rst:856 +#: library/functions.rst:854 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 " @@ -1772,7 +1772,7 @@ msgstr "" "`AttributeError`. Το *name* δεν χρειάζεται να είναι αναγνωριστικό Python " "(δείτε :func:`setattr`)." -#: library/functions.rst:865 +#: library/functions.rst:863 msgid "" "Since :ref:`private name mangling ` happens at " "compilation time, one must manually mangle a private attribute's (attributes " @@ -1784,7 +1784,7 @@ msgstr "" "χειροκίνητα το όνομα ενός ιδιωτικού χαρακτηριστικού (χαρακτηριστικά με δύο " "κορυφαίες υπογραμμίσεις) για να ανακτήσει με :func:`getattr`." -#: library/functions.rst:873 +#: library/functions.rst:871 msgid "" "Return the dictionary implementing the current module namespace. For code " "within functions, this is set when the function is defined and remains the " @@ -1794,7 +1794,7 @@ msgstr "" "κώδικα εντός συναρτήσεων, αυτό ορίζεται όταν ορίζεται η συνάρτηση και " "παραμένει το ίδιο ανεξάρτητη από το που καλείται η συνάρτηση." -#: library/functions.rst:880 +#: library/functions.rst:878 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. " @@ -1807,7 +1807,7 @@ msgstr "" "καλώντας το ``getattr(object, name)`` και να δούμε αν γίνεται raise ένα :exc:" "`AttributeError` ή όχι.)" -#: library/functions.rst:888 +#: library/functions.rst:886 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 " @@ -1820,7 +1820,7 @@ msgstr "" "αριθμητικές τιμές που συγκρίνονται ίσες έχουν την ίδια τιμή κατακερματισμού " "(ακόμα και αν είναι διαφορετικοί τύποι, όπως συμβαίνει για τα 1 και 1.0)." -#: library/functions.rst:895 +#: library/functions.rst:893 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." @@ -1829,7 +1829,7 @@ msgstr "" "σημειώστε ότι το :func:`hash` περικόπτει την τιμή επιστροφής με βάση το " "πλάτος bit του υπολογιστή." -#: library/functions.rst:902 +#: library/functions.rst:900 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 " @@ -1847,7 +1847,7 @@ msgstr "" "είναι οποιοδήποτε άλλο είδος αντικειμένου, δημιουργείται μια σελίδα βοήθειας " "στο αντικείμενο." -#: library/functions.rst:909 +#: library/functions.rst:907 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 " @@ -1859,14 +1859,14 @@ msgstr "" "την κάθετο είναι μόνο θέσης. Για περισσότερες πληροφορίες, βλέπε :ref:`the " "FAQ entry on positional-only parameters `." -#: library/functions.rst:914 +#: library/functions.rst:912 msgid "" "This function is added to the built-in namespace by the :mod:`site` module." msgstr "" "Αυτή η συνάρτηση προστίθεται στον ενσωματωμένο χώρο ονομάτων από το module :" "mod:`site`." -#: library/functions.rst:916 +#: library/functions.rst:914 msgid "" "Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures " "for callables are now more comprehensive and consistent." @@ -1874,18 +1874,18 @@ msgstr "" "Οι αλλαγές σε :mod:`pydoc` και :mod:`inspect` σημαίνουν ότι οι αναφερόμενες " "υπογραφές για callables είναι πλέον πιο ολοκληρωμένες και συνεπείς." -#: library/functions.rst:923 +#: library/functions.rst:921 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* δεν είναι ένα αντικείμενο :class:`int` " +"της Python, πρέπει να ορίσει μια μέθοδο :meth:`~object.__index__` που " +"επιστρέφει έναν ακέραιο. Μερικά παραδείγματα:" -#: library/functions.rst:932 +#: library/functions.rst:930 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 " @@ -1895,7 +1895,7 @@ msgstr "" "δεκαεξαδική συμβολοσειρά (string) με πρόθεμα ή όχι, μπορείτε να " "χρησιμοποιήσετε έναν από τους παρακάτω τρόπους:" -#: library/functions.rst:944 +#: library/functions.rst:942 msgid "" "See also :func:`int` for converting a hexadecimal string to an integer using " "a base of 16." @@ -1903,7 +1903,7 @@ msgstr "" "Δείτε επίσης τη :func:`int` για τη μετατροπή μιας δεκαεξαδικής συμβολοσειράς " "σε ακέραιο χρησιμοποιώντας μια βάση του 16." -#: library/functions.rst:949 +#: library/functions.rst:947 msgid "" "To obtain a hexadecimal string representation for a float, use the :meth:" "`float.hex` method." @@ -1911,7 +1911,7 @@ msgstr "" "Για να αποκτήσετε μια αναπαράσταση δεκαεξαδικής συμβολοσειράς για ένα float, " "χρησιμοποιήστε τη μέθοδο :meth:`float.hex`." -#: library/functions.rst:955 +#: library/functions.rst:953 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. " @@ -1923,11 +1923,11 @@ msgstr "" "αντικείμενο κατά τη διάρκεια της ζωής του. Δύο αντικείμενα με μη " "επικαλυπτόμενες διάρκειες ζωής μπορεί να έχουν την ίδια τιμή :func:`id`." -#: library/functions.rst:960 +#: library/functions.rst:958 msgid "This is the address of the object in memory." msgstr "Αυτό είναι η διεύθυνση του αντικειμένου στην μνήμη." -#: library/functions.rst:962 +#: library/functions.rst:960 msgid "" "Raises an :ref:`auditing event ` ``builtins.id`` with argument " "``id``." @@ -1935,7 +1935,7 @@ msgstr "" "Εγείρει ένα :ref:`auditing event ` ``builtins.id`` με όρισμα " "``id``." -#: library/functions.rst:968 +#: library/functions.rst:966 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, " @@ -1948,7 +1948,7 @@ msgstr "" "γραμμής) και την επιστρέφει. Όταν διαβάζεται το EOF, γίνεται raise η :exc:" "`EOFError`. Παράδειγμα::" -#: library/functions.rst:973 +#: library/functions.rst:971 msgid "" ">>> s = input('--> ')\n" "--> Monty Python's Flying Circus\n" @@ -1960,7 +1960,7 @@ msgstr "" ">>> s\n" "\"Monty Python's Flying Circus\"" -#: library/functions.rst:978 +#: library/functions.rst:976 msgid "" "If the :mod:`readline` module was loaded, then :func:`input` will use it to " "provide elaborate line editing and history features." @@ -1969,7 +1969,7 @@ msgstr "" "χρησιμοποιήσει για να παρέχει περίπλοκες λειτουργίες επεξεργασίας γραμμής " "και ιστορικού." -#: library/functions.rst:983 +#: library/functions.rst:981 msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt`` before reading input" @@ -1977,7 +1977,7 @@ msgstr "" "Κάνει raise ένα :ref:`auditing event ` ``builtins.input`` με " "όρισμα ``prompt`` προτού διαβάσει την είσοδο" -#: library/functions.rst:988 +#: library/functions.rst:986 msgid "" "Raises an :ref:`auditing event ` ``builtins.input/result`` with " "the result after successfully reading input." @@ -1985,7 +1985,7 @@ msgstr "" "Κάνει raise ένα :ref:`auditing event ` ``builtins.input/result`` " "με το αποτέλεσμα μετά την επιτυχή ανάγνωση των δεδομένων." -#: library/functions.rst:995 +#: library/functions.rst:993 msgid "" "Return an integer object constructed from a number or a string, or return " "``0`` if no arguments are given." @@ -1993,7 +1993,7 @@ msgstr "" "Επιστέφει έναν αριθμό κινητής υποδιαστολής που κατασκευάστηκε από έναν " "αριθμό ή μια συμβολοσειρά, ή επιστρέφει ``0`` εάν δεν δίνεται κάποιο όρισμα." -#: library/functions.rst:1000 +#: library/functions.rst:998 msgid "" ">>> int(123.45)\n" "123\n" @@ -2021,7 +2021,7 @@ msgstr "" ">>> int('01110011', base=2)\n" "115" -#: library/functions.rst:1015 +#: library/functions.rst:1013 msgid "" "If the argument defines :meth:`~object.__int__`, ``int(x)`` returns ``x." "__int__()``. If the argument defines :meth:`~object.__index__`, it returns " @@ -2035,7 +2035,7 @@ msgstr "" "επιστρέφει ``x.__trunc__()``. Για αριθμούς κινητής υποδιαστολής, αυτό " "περικόπτεται προς το μηδέν." -#: library/functions.rst:1021 +#: library/functions.rst:1019 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 " @@ -2050,7 +2050,7 @@ msgstr "" "μηδενικά, να περιβάλλεται από κενό διάστημα και να έχει μονές υπογραμμίσεις " "διάσπαρτες μεταξύ των ψηφίων." -#: library/functions.rst:1027 +#: library/functions.rst:1025 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 " @@ -2076,11 +2076,11 @@ msgstr "" "βάση 0 δεν επιτρέπει επίσης τα μηδενικά στην αρχή : ``int('010', 0)`` δεν " "είναι εφικτό, ενώ το ``int('010')`` και ``int('010', 8)`` είναι." -#: library/functions.rst:1038 +#: library/functions.rst:1036 msgid "The integer type is described in :ref:`typesnumeric`." msgstr "Ο ακέραιος τύπος περιγράφεται στο :ref:`typesnumeric`." -#: library/functions.rst:1040 +#: library/functions.rst:1038 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 " @@ -2093,11 +2093,11 @@ msgstr "" "εκδόσεις χρησιμοποιούσαν την :meth:`base.__int__ ` αντί της :" "meth:`base.__index__ `." -#: library/functions.rst:1050 +#: library/functions.rst:1048 msgid "The first parameter is now positional-only." msgstr "Η πρώτη παράμετρος είναι πλέον μόνο θέσεως." -#: library/functions.rst:1053 +#: library/functions.rst:1051 msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__int__` is not " "defined." @@ -2105,11 +2105,11 @@ msgstr "" "Επιστρέφει πίσω στη :meth:`~object.__index__` αν η :meth:`~object.__int__` " "δεν έχει οριστεί." -#: library/functions.rst:1056 +#: library/functions.rst:1054 msgid "The delegation to :meth:`~object.__trunc__` is deprecated." msgstr "Η ανάθεση στη :meth:`~object.__trunc__` έχει καταργηθεί." -#: library/functions.rst:1059 +#: library/functions.rst:1057 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 " @@ -2125,7 +2125,7 @@ msgstr "" "class:`int` σε μια συμβολοσειρά θα υπερβεί το όριο. Δείτε την τεκμηρίωση :" "ref:`integer string conversion length limitation `." -#: library/functions.rst:1069 +#: library/functions.rst:1068 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 " @@ -2170,40 +2170,40 @@ msgstr "" "καταχώρισης στο *classinfo*. Σε οποιαδήποτε άλλη περίπτωση, γίνεται raise " "μια εξαίρεση :exc:`TypeError`." -#: library/functions.rst:1101 +#: library/functions.rst:1100 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 " -"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:1115 +"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`. Το πρώτο όρισμα ερμηνεύεται " +"πολύ διαφορετικά ανάλογα με την παρουσία του δεύτερου ορίσματος. Χωρίς το " +"δεύτερο όρισμα, το μόνο όρισμα πρέπει να είναι ένα αντικείμενο συλλογής που " +"υποστηρίζει το πρωτόκολλο :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:1114 msgid "See also :ref:`typeiter`." msgstr "Δείτε επίσης :ref:`typeiter`." -#: library/functions.rst:1117 +#: library/functions.rst:1116 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 " @@ -2213,7 +2213,7 @@ msgstr "" "ενός block-reader. Για παράδειγμα, η ανάγνωση μπλοκ σταθερού πλάτους από ένα " "δυαδικό αρχείο βάσης δεδομένων μέχρι να φτάσει στο τέλος του αρχείου::" -#: library/functions.rst:1121 +#: library/functions.rst:1120 msgid "" "from functools import partial\n" "with open('mydata.db', 'rb') as f:\n" @@ -2225,7 +2225,7 @@ msgstr "" " for block in iter(partial(f.read, 64), b''):\n" " process_block(block)" -#: library/functions.rst:1129 +#: library/functions.rst:1128 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 " @@ -2236,7 +2236,7 @@ msgstr "" "πλειάδα, λίστα, ή εύρος) ή μια συλλογή (όπως ένα λεξικό, ένα σετ, ή ένα " "παγωμένο σετ)." -#: library/functions.rst:1135 +#: library/functions.rst:1134 msgid "" "``len`` raises :exc:`OverflowError` on lengths larger than :data:`sys." "maxsize`, such as :class:`range(2 ** 100) `." @@ -2244,7 +2244,7 @@ msgstr "" "Το ``len`` κάνει raise μια :exc:`OverflowError` σε μήκη τα οποία είναι " "μεγαλύτερα από :data:`sys.maxsize`, όπως :class:`range(2 ** 100) `." -#: library/functions.rst:1144 +#: library/functions.rst:1142 msgid "" "Rather than being a function, :class:`list` is actually a mutable sequence " "type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." @@ -2253,7 +2253,7 @@ msgstr "" "μεταβλητός τύπος ακολουθίας, όπως τεκμηριώνεται στα :ref:`typesseq-list` " "και :ref:`typesseq`." -#: library/functions.rst:1150 +#: library/functions.rst:1148 msgid "" "Return a mapping object representing the current local symbol table, with " "variable names as the keys, and their currently bound references as the " @@ -2263,7 +2263,7 @@ msgstr "" "πίνακα συμβόλων, με τα ονόματα μεταβλητών ως κλειδιά και τις αντίστοιχες " "τιμές στις οποίες είναι δεσμευμένες ως τιμές." -#: library/functions.rst:1154 +#: library/functions.rst:1152 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:" @@ -2273,7 +2273,7 @@ msgstr "" "`eval` με έναν μόνο χώρο ονομάτων, αυτή η συνάρτηση επιστρέφει τον ίδιο χώρο " "ονομάτων με τη :func:`globals`." -#: library/functions.rst:1158 +#: library/functions.rst:1156 msgid "" "At class scope, it returns the namespace that will be passed to the " "metaclass constructor." @@ -2281,7 +2281,7 @@ msgstr "" "Στο πεδίο ορισμού κλάσης, επιστρέφει τον χώρο ονομάτων που θα περαστεί στον " "κατασκευαστή της μετακλάσης." -#: library/functions.rst:1161 +#: library/functions.rst:1159 msgid "" "When using ``exec()`` or ``eval()`` with separate local and global " "arguments, it returns the local namespace passed in to the function call." @@ -2290,7 +2290,7 @@ msgstr "" "global ορίσματα, επιστρέφει στον τοπικό χώρο ονομάτων που περάστηκε στην " "κλήση της συνάρτησης." -#: library/functions.rst:1164 +#: library/functions.rst:1162 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 " @@ -2307,7 +2307,7 @@ msgstr "" "επανακαθορισμός ή διαγραφή τοπικών μεταβλητών θα επηρεάζει άμεσα τα " "περιεχόμενα του επιστρεφόμενου αντικειμένου αντιστοίχισης." -#: library/functions.rst:1171 +#: library/functions.rst:1169 msgid "" "In an :term:`optimized scope` (including functions, generators, and " "coroutines), each call to ``locals()`` instead returns a fresh dictionary " @@ -2328,7 +2328,7 @@ msgstr "" "τοπικών ή μη τοπικών μεταβλητών *δεν* επηρεάζει το περιεχόμενο των λεξικών " "που είχαν επιστραφεί προηγουμένως." -#: library/functions.rst:1180 +#: library/functions.rst:1178 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 " @@ -2343,7 +2343,7 @@ msgstr "" "στο αποτέλεσμα. Σε άλλα πεδία ορατότητας, η συμπεριφορά είναι σαν η σύμπτυξη " "να εκτελείται ως μια εμφωλευμένη συνάρτηση." -#: library/functions.rst:1186 +#: library/functions.rst:1184 msgid "" "Calling ``locals()`` as part of a generator expression is equivalent to " "calling it in a nested generator function." @@ -2351,7 +2351,7 @@ msgstr "" "Καλώντας την ``locals()`` ως μέρος μιας έκφρασης γεννήτριας είναι ισοδύναμη " "με την κλήση της μέσα σε μια εμφωλευμένη συνάρτηση γεννήτριας." -#: library/functions.rst:1189 +#: library/functions.rst:1187 msgid "" "The behaviour of ``locals()`` in a comprehension has been updated as " "described in :pep:`709`." @@ -2359,7 +2359,7 @@ msgstr "" "Η συμπεριφορά της ``locals()`` μέσα σε μια έκφραση σύμπτυξης έχει ενημερωθεί " "όπως περιγράφεται στην :pep:`709`." -#: library/functions.rst:1193 +#: library/functions.rst:1191 msgid "" "As part of :pep:`667`, the semantics of mutating the mapping objects " "returned from this function are now defined. The behavior in :term:" @@ -2374,7 +2374,7 @@ msgstr "" "ορισμένη, η συμπεριφορά σε άλλα πεδία παραμένει αμετάβλητη σε σχέση με " "προηγούμενες εκδόσεις." -#: library/functions.rst:1203 +#: library/functions.rst:1201 msgid "" "Return an iterator that applies *function* to every item of *iterable*, " "yielding the results. If additional *iterables* arguments are passed, " @@ -2391,7 +2391,7 @@ msgstr "" "όπου οι είσοδοι συνάρτησης είναι ήδη διατεταγμένες σε πλειάδες ορισμάτων, " "βλέπε :func:`itertools.starmap`\\." -#: library/functions.rst:1215 +#: library/functions.rst:1213 msgid "" "Return the largest item in an iterable or the largest of two or more " "arguments." @@ -2399,7 +2399,7 @@ msgstr "" "Επιστρέφει το μεγαλύτερο στοιχείο σε ένα iterable ή το μεγαλύτερο από δύο ή " "περισσότερα ορίσματα." -#: library/functions.rst:1218 +#: library/functions.rst:1216 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 " @@ -2409,7 +2409,7 @@ msgstr "" "Επιστρέφεται το μεγαλύτερο στοιχείο στο iterable. Εάν παρέχονται δύο ή " "περισσότερα ορίσματα θέσης, επιστρέφεται το μεγαλύτερο από τα ορίσματα θέσης." -#: library/functions.rst:1261 +#: library/functions.rst:1259 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 " @@ -2424,7 +2424,7 @@ msgstr "" "είναι κενό και το *default* δεν παρέχεται, γίνεται raise μια :exc:" "`ValueError`." -#: library/functions.rst:1229 +#: library/functions.rst:1227 msgid "" "If multiple items are maximal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " @@ -2436,15 +2436,15 @@ msgstr "" "ταξινόμησης όπως ``sorted(iterable, key=keyfunc, reverse=True)[0]`` και " "``heapq.nlargest(1, iterable, key=keyfunc)``." -#: library/functions.rst:1272 +#: library/functions.rst:1270 msgid "Added the *default* keyword-only parameter." msgstr "Προστέθηκε η παράμετρος μόνο λέξης-κλειδί *default*." -#: library/functions.rst:1275 +#: library/functions.rst:1273 msgid "The *key* can be ``None``." msgstr "Το *key* μπορεί να είναι ``None``." -#: library/functions.rst:1245 +#: library/functions.rst:1243 msgid "" "Return a \"memory view\" object created from the given argument. See :ref:" "`typememoryview` for more information." @@ -2453,7 +2453,7 @@ msgstr "" "συγκεκριμένο όρισμα. Βλέπε :ref:`typememoryview` για περισσότερες " "λεπτομέρειες." -#: library/functions.rst:1253 +#: library/functions.rst:1251 msgid "" "Return the smallest item in an iterable or the smallest of two or more " "arguments." @@ -2461,7 +2461,7 @@ msgstr "" "Επιστρέφει το μικρότερο στοιχείο σε έναν iterable ή το μικρότερο από δύο ή " "περισσότερα ορίσματα." -#: library/functions.rst:1256 +#: library/functions.rst:1254 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 " @@ -2471,7 +2471,7 @@ msgstr "" "Επιστρέφει το μικρότερο στοιχείο στον iterable. Εάν παρέχονται δύο ή " "περισσότερα ορίσματα θέσης, επιστρέφεται το μικρότερο από τα ορίσματα θέσης." -#: library/functions.rst:1267 +#: library/functions.rst:1265 msgid "" "If multiple items are minimal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " @@ -2483,7 +2483,7 @@ msgstr "" "ταξινόμησης, όπως ``sorted(iterable, key=keyfunc)[0]`` και ``heapq." "nsmallest(1, iterable, key=keyfunc)``." -#: library/functions.rst:1282 +#: library/functions.rst:1280 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 " @@ -2493,7 +2493,7 @@ msgstr "" "meth:`~iterator.__next__`. Εάν δοθεί *default*, επιστρέφεται εάν ο iterator " "έχει εξαντληθεί, διαφορετικά γίνεται raise μια :exc:`StopIteration`." -#: library/functions.rst:1289 +#: library/functions.rst:1287 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 " @@ -2505,7 +2505,7 @@ msgstr "" "κατασκευαστής, επιστρέφει ένα νέο αντικείμενο χωρίς χαρακτηριστικά. Ο " "κατασκευαστής δεν δέχεται ορίσματα." -#: library/functions.rst:1296 +#: library/functions.rst:1294 msgid "" ":class:`object` instances do *not* have :attr:`~object.__dict__` attributes, " "so you can't assign arbitrary attributes to an instance of :class:`object`." @@ -2514,19 +2514,19 @@ msgstr "" "__dict__`, επομένως δεν μπορείτε να εκχωρήσετε αυθαίρετα χαρακτηριστικά σε " "ένα στιγμιότυπο του :class:`object`." -#: library/functions.rst:1303 +#: library/functions.rst:1301 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* δεν " +"είναι ένα αντικείμενο :class:`int` της Python, πρέπει να ορίζει μια μέθοδο :" +"meth:`~object.__index__` που επιστρέφει έναν ακέραιο." -#: library/functions.rst:1313 +#: library/functions.rst:1311 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." @@ -2535,7 +2535,7 @@ msgstr "" "με το πρόθεμα \"0o\" είτε όχι, μπορείτε να χρησιμοποιήσετε έναν από τους " "παρακάτω τρόπους." -#: library/functions.rst:1330 +#: library/functions.rst:1328 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 " @@ -2545,7 +2545,7 @@ msgstr "" "αρχείο δεν μπορεί να ανοίξει, γίνεται raise μια :exc:`OSError`. Δείτε το :" "ref:`tut-files` για περισσότερα παραδείγματα χρήσης αυτής της συνάρτησης." -#: library/functions.rst:1334 +#: library/functions.rst:1332 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 " @@ -2560,7 +2560,7 @@ msgstr "" "επιστρεφόμενο αντικείμενο I/O είναι κλειστό εκτός εάν *closefd* έχει οριστεί " "ως ``False``.)" -#: library/functions.rst:1340 +#: library/functions.rst:1338 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. " @@ -2587,72 +2587,72 @@ msgstr "" "λειτουργία και αφήνουν το *encoding* απροσδιόριστο.) Οι διαθέσιμες " "λειτουργίες είναι:" -#: library/functions.rst:1357 +#: library/functions.rst:1355 msgid "Character" msgstr "Χαρακτήρας" -#: library/functions.rst:1357 +#: library/functions.rst:1355 msgid "Meaning" msgstr "Έννοια" -#: library/functions.rst:1359 +#: library/functions.rst:1357 msgid "``'r'``" msgstr "``'r'``" -#: library/functions.rst:1359 +#: library/functions.rst:1357 msgid "open for reading (default)" msgstr "άνοιγμα για ανάγνωση (default)" -#: library/functions.rst:1360 +#: library/functions.rst:1358 msgid "``'w'``" msgstr "``'w'``" -#: library/functions.rst:1360 +#: library/functions.rst:1358 msgid "open for writing, truncating the file first" msgstr "άνοιγμα για εγγραφή, περικόπτοντας πρώτα το αρχείο" -#: library/functions.rst:1361 +#: library/functions.rst:1359 msgid "``'x'``" msgstr "``'x'``" -#: library/functions.rst:1361 +#: library/functions.rst:1359 msgid "open for exclusive creation, failing if the file already exists" msgstr "" "άνοιγμα για αποκλειστική δημιουργία, αποτυγχάνοντας εάν το αρχείο υπάρχει ήδη" -#: library/functions.rst:1362 +#: library/functions.rst:1360 msgid "``'a'``" msgstr "``'a'``" -#: library/functions.rst:1362 +#: library/functions.rst:1360 msgid "open for writing, appending to the end of file if it exists" msgstr "άνοιγμα για εγγραφή, προσαρτάται στο τέλος του αρχείου εάν υπάρχει" -#: library/functions.rst:1363 +#: library/functions.rst:1361 msgid "``'b'``" msgstr "``'b'``" -#: library/functions.rst:1507 +#: library/functions.rst:1505 msgid "binary mode" msgstr "δυαδική (binary) λειτουργία" -#: library/functions.rst:1364 +#: library/functions.rst:1362 msgid "``'t'``" msgstr "``'t'``" -#: library/functions.rst:1364 +#: library/functions.rst:1362 msgid "text mode (default)" msgstr "λειτουργία κειμένου (default)" -#: library/functions.rst:1365 +#: library/functions.rst:1363 msgid "``'+'``" msgstr "``'+'``" -#: library/functions.rst:1365 +#: library/functions.rst:1363 msgid "open for updating (reading and writing)" msgstr "άνοιγμα για ενημέρωση (ανάγνωση και εγγραφή)" -#: library/functions.rst:1368 +#: library/functions.rst:1366 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 " @@ -2663,7 +2663,7 @@ msgstr "" "περικόβει το αρχείο. Οι λειτουργίες ``'r+'`` and ``'r+b'`` ανοίγουν το " "αρχείο χωρίς περικοπή." -#: library/functions.rst:1372 +#: library/functions.rst:1370 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* " @@ -2682,7 +2682,7 @@ msgstr "" "bytes έχουν πρώτα αποκωδικοποιηθεί χρησιμοποιώντας μια εξαρτώμενη από " "πλατφόρμα κωδικοποίηση ή χρήση της καθορισμένης *κωδικοποίησης* εάν δίνεται." -#: library/functions.rst:1382 +#: library/functions.rst:1380 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 " @@ -2692,7 +2692,7 @@ msgstr "" "λειτουργικού συστήματος∙ όλη η επεξεργασία γίνεται από την ίδια την Python " "και επομένως είναι ανεξάρτητη από την πλατφόρμα." -#: library/functions.rst:1386 +#: library/functions.rst:1384 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 " @@ -2719,7 +2719,7 @@ msgstr "" "δίνεται όρισμα *buffering*, η προεπιλεγμένη πολιτική προσωρινής αποθήκευσης " "λειτουργεί ως εξής:" -#: library/functions.rst:1396 +#: library/functions.rst:1394 msgid "" "Binary files are buffered in fixed-size chunks; the size of the buffer is " "chosen using a heuristic trying to determine the underlying device's \"block " @@ -2732,7 +2732,7 @@ msgstr "" "και επανέρχεται σε :const:`io.DEFAULT_BUFFER_SIZE`. Σε πολλά συστήματα, η " "προσωρινή μνήμη θα έχει συνήθως μήκος 4096 ή 8192 bytes." -#: library/functions.rst:1401 +#: library/functions.rst:1399 msgid "" "\"Interactive\" text files (files for which :meth:`~io.IOBase.isatty` " "returns ``True``) use line buffering. Other text files use the policy " @@ -2743,7 +2743,7 @@ msgstr "" "κειμένου χρησιμοποιούν την πολιτική που περιγράφεται παραπάνω για δυαδικά " "αρχεία." -#: library/functions.rst:1405 +#: library/functions.rst:1403 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 " @@ -2758,7 +2758,7 @@ msgstr "" "οποιοδήποτε :term:`text encoding` που υποστηρίζεται από την Python. Δείτε το " "module :mod:`codecs` για τη λίστα των υποστηριζόμενων κωδικοποιήσεων." -#: library/functions.rst:1411 +#: library/functions.rst:1409 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 " @@ -2774,7 +2774,7 @@ msgstr "" "το :func:`codecs.register_error` είναι επίσης έγκυρο. Τα τυπικά ονόματα " "περιλαμβάνουν:" -#: library/functions.rst:1419 +#: library/functions.rst:1417 msgid "" "``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " "error. The default value of ``None`` has the same effect." @@ -2783,7 +2783,7 @@ msgstr "" "σφάλμα κωδικοποίησης. Η προεπιλεγμένη τιμή του ``None`` έχει το ίδιο " "αποτέλεσμα." -#: library/functions.rst:1423 +#: library/functions.rst:1421 msgid "" "``'ignore'`` ignores errors. Note that ignoring encoding errors can lead to " "data loss." @@ -2791,7 +2791,7 @@ msgstr "" "Το ``'ignore'`` αγνοεί τα σφάλματα. Σημειώστε ότι η παράβλεψη σφαλμάτων " "κωδικοποίησης μπορεί να οδηγήσει σε απώλεια δεδομένων." -#: library/functions.rst:1426 +#: library/functions.rst:1424 msgid "" "``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " "where there is malformed data." @@ -2799,7 +2799,7 @@ msgstr "" "Το ``'replace'`` προκαλεί την εισαγωγή ενός δείκτη αντικατάστασης (όπως " "``'?'``) όταν υπάρχουν δεδομένα με λανθασμένη μορφή." -#: library/functions.rst:1429 +#: library/functions.rst:1427 msgid "" "``'surrogateescape'`` will represent any incorrect bytes as low surrogate " "code units ranging from U+DC80 to U+DCFF. These surrogate code units will " @@ -2814,7 +2814,7 @@ msgstr "" "εγγραφή δεδομένων. Αυτό είναι χρήσιμο για την επεξεργασία αρχείων σε " "άγνωστη κωδικοποίηση." -#: library/functions.rst:1436 +#: library/functions.rst:1434 msgid "" "``'xmlcharrefreplace'`` is only supported when writing to a file. Characters " "not supported by the encoding are replaced with the appropriate XML " @@ -2824,7 +2824,7 @@ msgstr "" "χαρακτήρες που δεν υποστηρίζονται από την κωδικοποίηση αντικαθίστανται με " "την κατάλληλη αναφορά χαρακτήρων XML :samp:`&#{nnn};`." -#: library/functions.rst:1440 +#: library/functions.rst:1438 msgid "" "``'backslashreplace'`` replaces malformed data by Python's backslashed " "escape sequences." @@ -2832,7 +2832,7 @@ msgstr "" "Το ``'backslashreplace'`` αντικαθιστά δεδομένα με λανθασμένη μορφή από τις " "ακολουθίες διαφυγής με ανάστροφης καθέτου Python." -#: library/functions.rst:1443 +#: library/functions.rst:1441 msgid "" "``'namereplace'`` (also only supported when writing) replaces unsupported " "characters with ``\\N{...}`` escape sequences." @@ -2840,7 +2840,7 @@ msgstr "" "Το ``'namereplace'`` (υποστηρίζεται επίσης μόνο κατά τη σύνταξη) αντικαθιστά " "τους μη υποστηριζόμενους χαρακτήρες με ακολουθίες διαφυγής ``\\N{...}``." -#: library/functions.rst:1451 +#: library/functions.rst:1449 msgid "" "*newline* determines how to parse newline characters from the stream. It can " "be ``None``, ``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as " @@ -2850,7 +2850,7 @@ msgstr "" "ροή. Μπορεί να είναι και ``None``, ``''``, ``'\\n'``, ``'\\r'``, και " "``'\\r\\n'``. Λειτουργεί ως εξής:" -#: library/functions.rst:1455 +#: library/functions.rst:1453 msgid "" "When reading input from the stream, if *newline* is ``None``, universal " "newlines mode is enabled. Lines in the input can end in ``'\\n'``, " @@ -2870,7 +2870,7 @@ msgstr "" "δεδομένη συμβολοσειρά και η κατάληξη γραμμής επιστρέφεται στον καλούντα " "αμετάφραστη." -#: library/functions.rst:1463 +#: library/functions.rst:1461 msgid "" "When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " "characters written are translated to the system default line separator, :" @@ -2885,7 +2885,7 @@ msgstr "" "από τις άλλες νόμιμες τιμές, γράφονται οποιοιδήποτε χαρακτήρες ``'\\n'`` " "μεταφράζονται στη δεδομένη συμβολοσειρά." -#: library/functions.rst:1469 +#: library/functions.rst:1467 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 " @@ -2898,7 +2898,7 @@ msgstr "" "*closefd* πρέπει να είναι ``True`` (η προεπιλογή)∙ διαφορετικά, θα προκύψει " "ένα σφάλμα." -#: library/functions.rst:1474 +#: library/functions.rst:1472 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 " @@ -2913,12 +2913,12 @@ msgstr "" "αρχείου (περνώντας :mod:`os.open` ως *opener* έχει ως αποτέλεσμα " "λειτουργικότητας παρόμοια με το να περάσουμε το ``None``)." -#: library/functions.rst:1480 +#: library/functions.rst:1478 msgid "The newly created file is :ref:`non-inheritable `." msgstr "" "Το νέο δημιουργημένο αρχείο είναι :ref:`non-inheritable `." -#: library/functions.rst:1482 +#: library/functions.rst:1480 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::" @@ -2927,7 +2927,7 @@ msgstr "" "συνάρτησης :func:`os.open` για να ανοίξει ένα αρχείο σε σχέση με έναν " "δεδομένο κατάλογο::" -#: library/functions.rst:1485 +#: library/functions.rst:1483 msgid "" ">>> import os\n" ">>> dir_fd = os.open('somedir', os.O_RDONLY)\n" @@ -2949,7 +2949,7 @@ msgstr "" "...\n" ">>> os.close(dir_fd) # don't leak a file descriptor" -#: library/functions.rst:1495 +#: library/functions.rst:1493 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 " @@ -2977,7 +2977,7 @@ msgstr "" "προσωρινή αποθήκευση είναι απενεργοποιημένη, επιστρέφεται, η ακατέργαστη " "ροή , μια υποκλάση :class:`io.RawIOBase`, :class:`io.FileIO`." -#: library/functions.rst:1516 +#: library/functions.rst:1514 msgid "" "See also the file handling modules, such as :mod:`fileinput`, :mod:`io` " "(where :func:`open` is declared), :mod:`os`, :mod:`os.path`, :mod:" @@ -2987,7 +2987,7 @@ msgstr "" "`io` (όπου ορίζεται η :func:`open`), :mod:`os`, :mod:`os.path`, :mod:" "`tempfile`, και :mod:`shutil`." -#: library/functions.rst:1520 +#: library/functions.rst:1518 msgid "" "Raises an :ref:`auditing event ` ``open`` with arguments ``path``, " "``mode``, ``flags``." @@ -2995,7 +2995,7 @@ msgstr "" "Κάνει raise ένα :ref:`auditing event ` ``open`` με ορίσματα " "``path``, ``mode``, ``flags``." -#: library/functions.rst:1522 +#: library/functions.rst:1520 msgid "" "The ``mode`` and ``flags`` arguments may have been modified or inferred from " "the original call." @@ -3003,21 +3003,21 @@ msgstr "" "Τα ορίσματα ``mode`` και ``flags`` μπορεί να έχουν τροποποιηθεί ή να έχουν " "συναχθεί από την αρχική κλήση." -#: library/functions.rst:1527 +#: library/functions.rst:1525 msgid "The *opener* parameter was added." msgstr "Προστέθηκε η παράμετρος *opener*." -#: library/functions.rst:1528 +#: library/functions.rst:1526 msgid "The ``'x'`` mode was added." msgstr "Προστέθηκε η λειτουργία ``'x'``." -#: library/functions.rst:1529 +#: library/functions.rst:1527 msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." msgstr "" "Το :exc:`IOError` γινόταν raise παλιά, τώρα είναι ψευδώνυμο του :exc:" "`OSError`." -#: library/functions.rst:1530 +#: library/functions.rst:1528 msgid "" ":exc:`FileExistsError` is now raised if the file opened in exclusive " "creation mode (``'x'``) already exists." @@ -3025,11 +3025,11 @@ msgstr "" "Το :exc:`FileExistsError` γίνεται raise τώρα εάν το αρχείο που ανοίγει σε " "λειτουργία αποκλειστικής δημιουργίας (``'x'``) υπάρχει ήδη." -#: library/functions.rst:1535 +#: library/functions.rst:1533 msgid "The file is now non-inheritable." msgstr "Το αρχείο είναι πλέον μη κληρονομικό." -#: library/functions.rst:1539 +#: library/functions.rst:1537 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 :" @@ -3040,17 +3040,17 @@ msgstr "" "raise μια εξαίρεση :exc:`InterruptedError` (δείτε το :pep:`475` για το " "σκεπτικό)." -#: library/functions.rst:1542 +#: library/functions.rst:1540 msgid "The ``'namereplace'`` error handler was added." msgstr "Προστέθηκε το πρόγραμμα χειρισμού σφαλμάτων ``'namereplace'``." -#: library/functions.rst:1546 +#: library/functions.rst:1544 msgid "Support added to accept objects implementing :class:`os.PathLike`." msgstr "" "Προστέθηκε υποστήριξη για την αποδοχή αντικειμένων που υλοποιούν :class:`os." "PathLike`." -#: library/functions.rst:1547 +#: library/functions.rst:1545 msgid "" "On Windows, opening a console buffer may return a subclass of :class:`io." "RawIOBase` other than :class:`io.FileIO`." @@ -3058,24 +3058,37 @@ msgstr "" "Στα Windows, το άνοιγμα μιας προσωρινής μνήμης κονσόλας μπορεί να επιστρέψει " "μια υποκλάση του :class:`io.RawIOBase` εκτός από το :class:`io.FileIO`." -#: library/functions.rst:1550 +#: library/functions.rst:1548 msgid "The ``'U'`` mode has been removed." msgstr "Η λειτουργία ``'U'`` έχει αφαιρεθεί." +#: library/functions.rst:1553 +msgid "Return the ordinal value of a character." +msgstr "Επιστρέφει την αριθμητική τιμή ενός χαρακτήρα." + #: library/functions.rst:1555 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 αυτού του χαρακτήρα. Για παράδειγμα, το ``ord('a')`` " +"επιστρέφει τον ακέραιο ``97`` και το ``ord('€')`` (σήμα ευρώ) επιστρέφει το " +"``8364``. Αυτό είναι το αντίστροφο του :func:`chr`." + +#: library/functions.rst:1560 +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 "" -"Δεδομένου μιας συμβολοσειράς που αντιπροσωπεύει έναν χαρακτήρα Unicode, " -"επιστρέφει έναν ακέραιο που αντιπροσωπεύει το σημείο κωδικού Unicode αυτού " -"του χαρακτήρα. Για παράδειγμα, το ``ord('a')`` επιστρέφει τον ακέραιο " -"αριθμό ``97`` και ``ord('€')`` (σύμβολο του ευρώ) επιστρέφει ``8364``. Αυτό " -"είναι το αντίστροφο του :func:`chr`." +"Εάν το όρισμα είναι ένα αντικείμενο :class:`bytes` ή :class:`bytearray` " +"μήκους 1, επιστρέφει την τιμή του μεμονωμένου byte. Για παράδειγμα, το " +"``ord(b'a')`` επιστρέφει τον ακέραιο ``97``." -#: library/functions.rst:1563 +#: library/functions.rst:1567 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) % " @@ -3087,9 +3100,9 @@ msgstr "" "``pow(base, exp) % mod``). Η φόρμα δύο ορισμάτων ``pow(base, exp)`` " "ισοδυναμεί με τη χρήση του τελεστή δύναμης: ``base**exp``." -#: library/functions.rst:1568 +#: library/functions.rst:1572 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 " @@ -3101,12 +3114,12 @@ msgid "" "`float` with an integral exponent, a float result is delivered. For example, " "``pow(-9, 2.0)`` returns ``81.0``." msgstr "" -"Τα ορίσματα πρέπει να έχουνε αριθμητικούς τύπους. Με μεικτούς τύπους " -"τελεστών, ισχύουν οι κανόνες εξαναγκασμού για δυαδικούς τελεστές " -"αριθμητικής. Για του τελεστές :class:`int`, το αποτέλεσμα έχει τον ίδιο " -"τύπο με τους τελεστές (μετά τον εξαναγκασμό), εκτός εάν το δεύτερο όρισμα " -"είναι αρνητικό∙ σε αυτή την περίπτωση, όλα τα ορίσματα μετατρέπονται σε " -"float και επιστρέφεται ένα αποτέλεσμα τύπους float. Για παράδειγμα, " +"Όταν τα ορίσματα είναι ενσωματωμένοι αριθμητικοί τύποι με μικτούς τύπους " +"τελεστών, εφαρμόζονται οι κανόνες εξαναγκασμού για τους δυαδικούς " +"αριθμητικούς τελεστές. Για του τελεστές :class:`int`, το αποτέλεσμα έχει τον " +"ίδιο τύπο με τους τελεστές (μετά τον εξαναγκασμό), εκτός εάν το δεύτερο " +"όρισμα είναι αρνητικό∙ σε αυτή την περίπτωση, όλα τα ορίσματα μετατρέπονται " +"σε float και επιστρέφεται ένα αποτέλεσμα τύπους float. Για παράδειγμα, " "``pow(10, 2)`` επιστρέφει ``100``, αλλά το ``pow(10, -2)`` επιστρέφει " "``0.01``. Για μια αρνητική βάση τύπου :class:`int` ή :class:`float` και " "έναν μη αναπόσπαστο εκθέτη, παραδίδεται ένα μιγαδικό αποτέλεσμα. Για " @@ -3115,7 +3128,7 @@ msgstr "" "παραδίδεται ένα αποτέλεσμα float. Για παράδειγμα, το ``pow(-9, 2.0)`` " "επιστρέφει το ``81.0``." -#: library/functions.rst:1580 +#: library/functions.rst:1584 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 " @@ -3130,13 +3143,13 @@ msgstr "" "``pow(inv_base, -exp, mod)``, όπου το *inv_base* είναι αντίστροφο του *base* " "modulo *mod*." -#: library/functions.rst:1586 +#: library/functions.rst:1590 msgid "Here's an example of computing an inverse for ``38`` modulo ``97``::" msgstr "" "Ακολουθεί ένα παράδειγμα υπολογισμού ενός αντίστροφου για το ``38`` modulo " "``97``::" -#: library/functions.rst:1588 +#: library/functions.rst:1592 msgid "" ">>> pow(38, -1, mod=97)\n" "23\n" @@ -3148,7 +3161,7 @@ msgstr "" ">>> 23 * 38 % 97 == 1\n" "True" -#: library/functions.rst:1593 +#: library/functions.rst:1597 msgid "" "For :class:`int` operands, the three-argument form of ``pow`` now allows the " "second argument to be negative, permitting computation of modular inverses." @@ -3157,14 +3170,14 @@ msgstr "" "τώρα το δεύτερο όρισμα να είναι αρνητικό, επιτρέποντας τον υπολογισμό των " "αρθρωτών αντίστροφων." -#: library/functions.rst:1598 +#: library/functions.rst:1602 msgid "" "Allow keyword arguments. Formerly, only positional arguments were supported." msgstr "" "Επιτρέπονται ορίσματα keyword. Παλαιότερα, υποστηρίζονταν μόνο ορίσματα " "θέσης." -#: library/functions.rst:1605 +#: library/functions.rst:1609 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 " @@ -3174,7 +3187,7 @@ msgstr "" "ακολουθούμενα από *end*. Τα *sep*, *end*, *file*, και *flush*, εάν υπάρχουν, " "πρέπει να δίνονται ως ορίσματα keyword." -#: library/functions.rst:1609 +#: library/functions.rst:1613 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* " @@ -3189,21 +3202,21 @@ msgstr "" "προεπιλεγμένες τιμές. Εάν δεν δίνονται *αντικείμενα*, η :func:`print` θα " "γράψει απλά *end*." -#: library/functions.rst:1615 +#: library/functions.rst:1619 msgid "" "The *file* argument must be an object with a ``write(string)`` method; if it " "is not present or ``None``, :data:`sys.stdout` will be used. Since printed " "arguments are converted to text strings, :func:`print` cannot be used with " "binary mode file objects. For these, use ``file.write(...)`` instead." msgstr "" -"Το όρισμα *file* πρέπει να είναι αντικείμενο με μια μέθοδο " -"``write(string)``∙ εάν δεν υπάρχει ή είναι ``None``, θα χρησιμοποιηθεί το :" -"data:`sys.stdout`. Επειδή τα τυπωμένα ορίσματα μετατρέπονται σε " -"συμβολοσειρές κειμένου, η :func:`print` δεν μπορεί να χρησιμοποιηθεί με " -"αντικείμενα αρχείου δυαδικής λειτουργίας. Για αυτά, χρησιμοποιούμε το " -"``file.write(...)``." +"Το όρισμα *file* πρέπει να είναι αντικείμενο με μια μέθοδο ``write(string)`` " +"∙ εάν δεν υπάρχει ή είναι ``None``, θα χρησιμοποιηθεί το :data:`sys." +"stdout`. Επειδή τα τυπωμένα ορίσματα μετατρέπονται σε συμβολοσειρές " +"κειμένου, η :func:`print` δεν μπορεί να χρησιμοποιηθεί με αντικείμενα " +"αρχείου δυαδικής λειτουργίας. Για αυτά, χρησιμοποιούμε το ``file." +"write(...)``." -#: library/functions.rst:1620 +#: library/functions.rst:1624 msgid "" "Output buffering is usually determined by *file*. However, if *flush* is " "true, the stream is forcibly flushed." @@ -3211,15 +3224,15 @@ msgstr "" "Η προσωρινή αποθήκευση εξόδου καθορίζεται συνήθως από το *αρχείο*. Ωστόσο, " "εάν το *flush* είναι αληθές, η ροή ξεπλένεται αναγκαστικά." -#: library/functions.rst:1624 +#: library/functions.rst:1628 msgid "Added the *flush* keyword argument." msgstr "Προστέθηκε το όρισμα keyword *flush*." -#: library/functions.rst:1630 +#: library/functions.rst:1634 msgid "Return a property attribute." msgstr "Επιστρέφει ένα χαρακτηριστικό ιδιότητας." -#: library/functions.rst:1632 +#: library/functions.rst:1636 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 " @@ -3230,12 +3243,12 @@ msgstr "" "*fdel* είναι μια συνάρτηση για τη διαγραφή μιας τιμής χαρακτηριστικού. Και " "το *doc* δημιουργεί μια συμβολοσειρά εγγράφων για το χαρακτηριστικό." -#: library/functions.rst:1636 +#: library/functions.rst:1640 msgid "A typical use is to define a managed attribute ``x``::" msgstr "" "Μια τυπική χρήση είναι ο ορισμός ενός διαχειριζόμενου χαρακτηριστικού ``x``::" -#: library/functions.rst:1638 +#: library/functions.rst:1642 msgid "" "class C:\n" " def __init__(self):\n" @@ -3267,15 +3280,15 @@ msgstr "" "\n" " x = property(getx, setx, delx, \"I'm the 'x' property.\")" -#: library/functions.rst:1653 +#: library/functions.rst:1657 msgid "" "If *c* is an instance of *C*, ``c.x`` will invoke the getter, ``c.x = " "value`` will invoke the setter, and ``del c.x`` the deleter." msgstr "" "Εάν το *c* είναι ένα instance του *C*, το ``c.x`` θα καλέσει τον λήπτη, το " -"``c.x = value` θα καλέσει τον ρυθμιστή, και το ``del c.x`` τον διαγραφέα." +"``c.x = value`` θα καλέσει τον ρυθμιστή, και το ``del c.x`` τον διαγραφέα." -#: library/functions.rst:1656 +#: library/functions.rst:1660 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 " @@ -3287,7 +3300,7 @@ msgstr "" "υπάρχει). Αυτό καθιστά δυνατή τη δημιουργία ιδιοτήτων μόνο για ανάγνωση, " "εύκολα χρησιμοποιώντας τη :func:`property` ως :term:`decorator`::" -#: library/functions.rst:1660 +#: library/functions.rst:1664 msgid "" "class Parrot:\n" " def __init__(self):\n" @@ -3307,7 +3320,7 @@ msgstr "" " \"\"\"Get the current voltage.\"\"\"\n" " return self._voltage" -#: library/functions.rst:1669 +#: library/functions.rst:1673 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 " @@ -3317,7 +3330,7 @@ msgstr "" "\"getter\" για ένα χαρακτηριστικό μόνο για ανάγνωση με το ίδιο όνομα, και " "ορίζει τη συμβολοσειρά εγγράφων για *voltage* σε \"Get the current voltage.\"" -#: library/functions.rst:1677 +#: library/functions.rst:1681 msgid "" "A property object has ``getter``, ``setter``, and ``deleter`` methods usable " "as decorators that create a copy of the property with the corresponding " @@ -3329,7 +3342,7 @@ msgstr "" "ένα αντίγραφο της ιδιότητας με την αντίστοιχη συνάρτηση accessor που έχει " "οριστεί στον decorator. Αυτό εξηγείται καλύτερα με ένα παράδειγμα:" -#: library/functions.rst:1682 +#: library/functions.rst:1686 msgid "" "class C:\n" " def __init__(self):\n" @@ -3365,7 +3378,7 @@ msgstr "" " def x(self):\n" " del self._x" -#: library/functions.rst:1701 +#: library/functions.rst:1705 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 " @@ -3375,7 +3388,7 @@ msgstr "" "να δώσετε στις πρόσθετες συναρτήσεις το ίδιο όνομα με την αρχική ιδιότητα " "(``x`` σε αυτήν την περίπτωση.)" -#: library/functions.rst:1705 +#: library/functions.rst:1709 msgid "" "The returned property object also has the attributes ``fget``, ``fset``, and " "``fdel`` corresponding to the constructor arguments." @@ -3384,11 +3397,11 @@ msgstr "" "``fget``, ``fset``, και ``fdel`` που αντιστοιχούν στα ορίσματα του " "κατασκευαστή." -#: library/functions.rst:1708 +#: library/functions.rst:1712 msgid "The docstrings of property objects are now writeable." msgstr "Τα *docstrings* των αντικειμένων ιδιότητας είναι πλέον εγγράψιμες." -#: library/functions.rst:1713 +#: library/functions.rst:1717 msgid "" "Attribute holding the name of the property. The name of the property can be " "changed at runtime." @@ -3396,7 +3409,7 @@ msgstr "" "Χαρακτηριστικό που περιέχει το όνομα της ιδιότητας. Το όνομα της ιδιότητας " "μπορεί να αλλάξει κατά την εκτέλεση." -#: library/functions.rst:1724 +#: library/functions.rst:1728 msgid "" "Rather than being a function, :class:`range` is actually an immutable " "sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." @@ -3405,7 +3418,7 @@ msgstr "" "αμετάβλητος τύπος ακολουθίας, όπως τεκμηριώνεται στα :ref:`typesseq-range` " "και :ref:`typesseq`." -#: library/functions.rst:1730 +#: library/functions.rst:1734 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 " @@ -3428,12 +3441,12 @@ msgstr "" "`~object.__repr__`. Εάν η :func:`sys.displayhook` δεν είναι προσβάσιμη, αυτή " "η συνάρτηση θα κάνει raise το :exc:`RuntimeError`." -#: library/functions.rst:1741 +#: library/functions.rst:1745 msgid "This class has a custom representation that can be evaluated::" msgstr "" "Αυτή η κλάση έχει μια προσαρμοσμένη αναπαράσταση που μπορεί να αξιολογηθεί::" -#: library/functions.rst:1743 +#: library/functions.rst:1747 msgid "" "class Person:\n" " def __init__(self, name, age):\n" @@ -3451,19 +3464,19 @@ msgstr "" " def __repr__(self):\n" " return f\"Person('{self.name}', {self.age})\"" -#: library/functions.rst:1754 +#: library/functions.rst:1758 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* πρέπει να είναι ένα " +"Επιστρέφει ένα αντίστροφο :term:`iterator`. Το όρισμα πρέπει να είναι ένα " "αντικείμενο που έχει μια μέθοδο :meth:`~object.__reversed__` ή υποστηρίζει " -"το πρωτόκολλο ακολουθίας (η μέθοδος :meth:`~object.__len__` και η μέθοδος :" -"meth:`~object.__getitem__` με ακέραια ορίσματα που ξεκινούν από ``0``)." +"το πρωτόκολλο ακολουθίας (τη μέθοδο :meth:`~object.__len__` και τη μέθοδο :" +"meth:`~object.__getitem__` με ακέραια ορίσματα που ξεκινούν από το ``0``)." -#: library/functions.rst:1762 +#: library/functions.rst:1766 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 " @@ -3473,7 +3486,7 @@ msgstr "" "υποδιαστολή. Εάν το *ndigits* παραληφθεί ή είναι ``None``, επιστρέφει τον " "πλησιέστερο ακέραιο αριθμό στην είσοδό του." -#: library/functions.rst:1766 +#: library/functions.rst:1770 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 " @@ -3492,7 +3505,7 @@ msgstr "" "επιστρεφόμενη τιμή είναι ακέραιος εάν το *ndigits* παραλειφθεί ή είναι " "``None``. Διαφορετικά, η τιμή επιστροφής έχει τον ίδιο τύπο με το *number*." -#: library/functions.rst:1775 +#: library/functions.rst:1779 msgid "" "For a general Python object ``number``, ``round`` delegates to ``number." "__round__``." @@ -3500,7 +3513,7 @@ msgstr "" "Για ένα γενικό αντικείμενο Python ``number``, ``round`` εκχωρεί στο ``number." "__round__``." -#: library/functions.rst:1780 +#: library/functions.rst:1784 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 " @@ -3514,7 +3527,7 @@ msgstr "" "περισσότερα δεκαδικά κλάσματα δεν μπορούν να αναπαρασταθούν ακριβώς ως " "float. Δείτε το :ref:`tut-fp-issues` για περισσότερες πληροφορίες." -#: library/functions.rst:1792 +#: library/functions.rst:1795 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-" @@ -3524,7 +3537,7 @@ msgstr "" "λαμβάνονται από το *iterable*. Το ``set`` είναι μια ενσωματωμένη κλάση. " "Δείτε :class:`set` και :ref:`types-set` για τεκμηρίωση αυτής της κλάσης." -#: library/functions.rst:1796 +#: library/functions.rst:1799 msgid "" "For other containers see the built-in :class:`frozenset`, :class:`list`, :" "class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections` " @@ -3534,7 +3547,7 @@ msgstr "" "class:`list`, :class:`tuple`, και :class:`dict`, καθώς και το module :mod:" "`collections`." -#: library/functions.rst:1803 +#: library/functions.rst:1806 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 " @@ -3549,7 +3562,7 @@ msgstr "" "επιτρέπει. Για παράδειγμα ``setattr(x, 'foobar', 123)`` ισοδυναμεί με το " "``x.foobar = 123``." -#: library/functions.rst:1809 +#: library/functions.rst:1812 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:" @@ -3564,7 +3577,7 @@ msgstr "" "αναγνωριστικό δεν θα είναι προσβάσιμο χρησιμοποιώντας τη σημειογραφία, αλλά " "είναι προσβάσιμο μέσω του :func:`getattr` κ.λπ.." -#: library/functions.rst:1817 +#: library/functions.rst:1820 msgid "" "Since :ref:`private name mangling ` happens at " "compilation time, one must manually mangle a private attribute's (attributes " @@ -3575,7 +3588,7 @@ msgstr "" "μη αυτόματο τρόπο το όνομα ενός ιδιωτικού χαρακτηριστικού (χαρακτηριστικά με " "δύο προπορευόμενες κάτω παύλες) για να το ορίσει με :func:`setattr`." -#: library/functions.rst:1826 +#: library/functions.rst:1829 msgid "" "Return a :term:`slice` object representing the set of indices specified by " "``range(start, stop, step)``. The *start* and *step* arguments default to " @@ -3585,7 +3598,7 @@ msgstr "" "δεικτών που καθορίζονται από το ``range(start, stop, step)``. Τα ορίσματα " "*start* και *step* είναι από προεπιλογή ``None``." -#: library/functions.rst:1834 +#: library/functions.rst:1833 msgid "" "Slice objects have read-only data attributes :attr:`!start`, :attr:`!stop`, " "and :attr:`!step` which merely return the argument values (or their " @@ -3598,7 +3611,7 @@ msgstr "" "λειτουργικότητα∙ ωστόσο, χρησιμοποιούνται από το NumPy και άλλα πακέτα " "τρίτων." -#: library/functions.rst:1839 +#: library/functions.rst:1842 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:" @@ -3609,7 +3622,7 @@ msgstr "" "stop, i]``. Δείτε τη :func:`itertools.islice` για μια εναλλακτική έκδοση " "που επιστρέφει ένα :term:`iterator`." -#: library/functions.rst:1844 +#: library/functions.rst:1847 msgid "" "Slice objects are now :term:`hashable` (provided :attr:`~slice.start`, :attr:" "`~slice.stop`, and :attr:`~slice.step` are hashable)." @@ -3618,18 +3631,18 @@ msgstr "" "`~slice.start`, :attr:`~slice.stop`, και :attr:`~slice.step` μπορούν να " "κατακερματιστούν)." -#: library/functions.rst:1850 +#: library/functions.rst:1853 msgid "Return a new sorted list from the items in *iterable*." msgstr "Επιστρέφει μια νέα ταξινομημένη λίστα από τα στοιχεία στο *iterable*." -#: library/functions.rst:1852 +#: library/functions.rst:1855 msgid "" "Has two optional arguments which must be specified as keyword arguments." msgstr "" "Έχει δύο προαιρετικά ορίσματα που πρέπει να καθοριστούν ως ορίσματα λέξεων-" "κλειδιών." -#: library/functions.rst:1854 +#: library/functions.rst:1857 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." @@ -3640,7 +3653,7 @@ msgstr "" "παράδειγμα, ``key=str.lower``). Η προεπιλεγμένη τιμή είναι ``None`` " "(συγκρίνει τα στοιχεία απευθείας)." -#: library/functions.rst:1858 +#: library/functions.rst:1861 msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." @@ -3648,7 +3661,7 @@ msgstr "" "Το *reverse* είναι μια δυαδική τιμή. Εάν οριστεί σε ``True``, τότε τα " "στοιχεία της λίστας ταξινομούνται σαν να είχε αντιστραφεί κάθε σύγκριση." -#: library/functions.rst:1861 +#: library/functions.rst:1864 msgid "" "Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a " "*key* function." @@ -3656,7 +3669,7 @@ msgstr "" "Χρησιμοποιήστε το :func:`functools.cmp_to_key` για να μετατρέψετε μια " "συνάρτηση *cmp* παλιού τύπου σε συνάρτηση *key*." -#: library/functions.rst:1864 +#: library/functions.rst:1867 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 " @@ -3669,7 +3682,7 @@ msgstr "" "πολλαπλά περάσματα (για παράδειγμα, ταξινόμηση ανά τμήμα, μετά ανά " "μισθολογικό βαθμό)." -#: library/functions.rst:1869 +#: library/functions.rst:1872 msgid "" "The sort algorithm uses only ``<`` comparisons between items. While " "defining an :meth:`~object.__lt__` method will suffice for sorting, :PEP:`8` " @@ -3677,30 +3690,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__`." +"Ο αλγόριθμος ταξινόμησης χρησιμοποιεί μόνο συγκρίσεις ``<`` μεταξύ των " +"αντικειμένων. Ενώ ο ορισμός μιας μεθόδου :meth:`~object.__lt__` θα αρκούσε " +"για την ταξινόμηση, το :PEP:`8` συνιστά να υλοποιηθούν και οι έξι :ref:`rich " +"comparisons `. Αυτό θα βοηθήσει στην αποφυγή σφαλμάτων όταν " +"χρησιμοποιούνται τα ίδια δεδομένα με άλλα εργαλεία ταξινόμησης όπως η :func:" +"`max` που βασίζονται σε μια διαφορετική υποκείμενη μέθοδο. Η υλοποίηση και " +"των έξι συγκρίσεων βοηθά επίσης στην αποφυγή σύγχυσης για συγκρίσεις μικτών " +"τύπων που μπορούν να καλέσουν την αντανακλαστική μέθοδο :meth:`~object." +"__gt__`." -#: library/functions.rst:1878 +#: library/functions.rst:1881 msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" "Για παραδείγματα ταξινόμησης και ένα σύντομο σεμινάριο ταξινόμησης, " "ανατρέξτε στο :ref:`sortinghowto`." -#: library/functions.rst:1882 +#: library/functions.rst:1885 msgid "Transform a method into a static method." msgstr "Μετατροπή μιας μεθόδου σε στατική μέθοδο." -#: library/functions.rst:1884 +#: library/functions.rst:1887 msgid "" "A static method does not receive an implicit first argument. To declare a " "static method, use this idiom::" @@ -3708,7 +3722,7 @@ msgstr "" "Μια στατική μέθοδος δεν λαμβάνει ένα σιωπηρό πρώτο όρισμα. Για να δηλώσετε " "μια στατική μέθοδο, χρησιμοποιήστε αυτό το ιδίωμα::" -#: library/functions.rst:1887 +#: library/functions.rst:1890 msgid "" "class C:\n" " @staticmethod\n" @@ -3718,7 +3732,7 @@ msgstr "" " @staticmethod\n" " def f(arg1, arg2, argN): ..." -#: library/functions.rst:1891 +#: library/functions.rst:1894 msgid "" "The ``@staticmethod`` form is a function :term:`decorator` -- see :ref:" "`function` for details." @@ -3726,7 +3740,7 @@ msgstr "" "Η φόρμα ``@staticmethod`` είναι μια συνάρτηση :term:`decorator` -- δείτε :" "ref:`function` για λεπτομέρειες." -#: library/functions.rst:1894 +#: library/functions.rst:1897 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:" @@ -3738,7 +3752,7 @@ msgstr "" "`descriptor` μπορεί επίσης να κληθεί, επομένως μπορεί να χρησιμοποιηθεί στον " "ορισμός της κλάσης (όπως ``f()``)." -#: library/functions.rst:1899 +#: library/functions.rst:1902 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 " @@ -3748,7 +3762,7 @@ msgstr "" "Java ή στη C++. Επίσης, ανατρέξτε στη :func:`classmethod` για μια παραλλαγή " "που είναι χρήσιμη για τη δημιουργία εναλλακτικών κατασκευαστών κλάσεων." -#: library/functions.rst:1903 +#: library/functions.rst:1906 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 " @@ -3763,7 +3777,7 @@ msgstr "" "αυτόματη μετατροπή σε instance μέθοδο. Για αυτές τις περιπτώσεις, " "χρησιμοποιήστε αυτό το ιδίωμα::" -#: library/functions.rst:1909 +#: library/functions.rst:1912 msgid "" "def regular_function():\n" " ...\n" @@ -3777,13 +3791,13 @@ msgstr "" "class C:\n" " method = staticmethod(regular_function)" -#: library/functions.rst:1915 +#: library/functions.rst:1918 msgid "For more information on static methods, see :ref:`types`." msgstr "" "Για περισσότερες πληροφορίες σχετικά με τις στατικές μεθόδους, δείτε το :ref:" "`types`." -#: library/functions.rst:1917 +#: library/functions.rst:1920 msgid "" "Static methods now inherit the method attributes (:attr:`~function." "__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :" @@ -3796,14 +3810,14 @@ msgstr "" "__annotations__`),, έχουν ένα νέο χαρακτηριστικό ``__wrapped__``, και " "μπορούν πλέον να καλούνται ως κανονικές λειτουργίες." -#: library/functions.rst:1933 +#: library/functions.rst:1938 msgid "" "Return a :class:`str` version of *object*. See :func:`str` for details." msgstr "" "Επιστρέφει μια έκδοση :class:`str` του *object*. Δείτε :func:`str` για " "λεπτομέρειες." -#: library/functions.rst:1935 +#: library/functions.rst:1940 msgid "" "``str`` is the built-in string :term:`class`. For general information about " "strings, see :ref:`textseq`." @@ -3811,7 +3825,7 @@ msgstr "" "Το ``str`` είναι η ενσωματωμένη συμβολοσειρά :term:`class`. Για γενικές " "πληροφορίες σχετικά με τις συμβολοσειρές, ανατρέξτε :ref:`textseq`." -#: library/functions.rst:1941 +#: library/functions.rst:1946 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 " @@ -3821,7 +3835,7 @@ msgstr "" "και επιστρέφει το σύνολο. Τα στοιχεία του *iterable* είναι συνήθως αριθμοί " "και η τιμή έναρξης δεν επιτρέπεται να είναι συμβολοσειρά." -#: library/functions.rst:1945 +#: library/functions.rst:1950 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 ``''." @@ -3836,11 +3850,11 @@ msgstr "" "να συνδυάσετε μια σειρά iterable, σκεφτείτε να χρησιμοποιήσετε το :func:" "`itertools.chain`." -#: library/functions.rst:1951 +#: library/functions.rst:1956 msgid "The *start* parameter can be specified as a keyword argument." msgstr "Η παράμετρος *start* μπορεί να καθοριστεί ως όρισμα keyword." -#: library/functions.rst:1954 +#: library/functions.rst:1959 msgid "" "Summation of floats switched to an algorithm that gives higher accuracy and " "better commutativity on most builds." @@ -3848,7 +3862,7 @@ msgstr "" "Η άθροιση των floats άλλαξε σε έναν αλγόριθμο που δίνει μεγαλύτερη ακρίβεια " "και καλύτερη αντιμεταθετικότητα στις περισσότερες κατασκευές." -#: library/functions.rst:1961 +#: library/functions.rst:1966 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 " @@ -3858,7 +3872,7 @@ msgstr "" "μεθόδου σε μια γονική ή αδερφή κλάση *type*. Αυτό είναι χρήσιμο για την " "πρόσβαση σε μεταβιβασμένες μεθόδους που έχουν παρακαμφθεί σε μια κλάση." -#: library/functions.rst:1965 +#: library/functions.rst:1970 msgid "" "The *object_or_type* determines the :term:`method resolution order` to be " "searched. The search starts from the class right after the *type*." @@ -3866,7 +3880,7 @@ msgstr "" "Το *object_or_type* καθορίζει το :term:`method resolution order` που θα " "αναζητηθεί. Η αναζήτηση ξεκινά από την κλάση αμέσως μετά τον *type*." -#: library/functions.rst:1969 +#: library/functions.rst:1974 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` " @@ -3876,7 +3890,7 @@ msgstr "" "B -> C -> A -> object`` και η τιμή του *type* είναι ``B``, τότε η :func:" "`super` αναζητά ``C -> A -> object``." -#: library/functions.rst:1973 +#: library/functions.rst:1978 msgid "" "The :attr:`~type.__mro__` attribute of the class corresponding to " "*object_or_type* lists the method resolution search order used by both :func:" @@ -3889,7 +3903,7 @@ msgstr "" "χαρακτηριστικό είναι δυναμικό και μπορεί να αλλάξει κάθε φορά που " "ενημερώνεται η ιεραρχία κληρονομικότητας." -#: library/functions.rst:1978 +#: library/functions.rst:1983 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. " @@ -3902,7 +3916,7 @@ msgstr "" "είναι ένας τύπος, το ``issubclass(type2, type)`` πρέπει να είναι αληθές " "(αυτό είναι χρήσιμο για μεθόδους κλάσης)." -#: library/functions.rst:1983 +#: library/functions.rst:1988 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 " @@ -3919,7 +3933,7 @@ msgstr "" "αναμένεται μέσα σε φωλιασμένες συναρτήσεις, συμπεριλαμβανομένων και των " "γεννητριών εκφράσεων, οι οποίες δημιουργούν έμμεσα φωλιασμένες συναρτήσεις.)" -#: library/functions.rst:1990 +#: library/functions.rst:1995 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 " @@ -3932,7 +3946,7 @@ msgstr "" "έτσι τον κώδικα πιο διατηρήσιμο. Αυτή η χρήση είναι πολύ παράλληλη με τη " "χρήση του *super* σε άλλες γλώσσες προγραμματισμού." -#: library/functions.rst:1995 +#: library/functions.rst:2000 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 " @@ -3956,13 +3970,13 @@ msgstr "" "διάταξη μπορεί να περιλαμβάνει αδερφικές κλάσεις πριν από τον χρόνο " "εκτέλεσης)." -#: library/functions.rst:2005 +#: library/functions.rst:2010 msgid "For both use cases, a typical superclass call looks like this::" msgstr "" "Και για τις δύο περιπτώσεις χρήσης, μια τυπική κλήση υπερκλάσης μοιάζει με " "αυτό::" -#: library/functions.rst:2007 +#: library/functions.rst:2012 msgid "" "class C(B):\n" " def method(self, arg):\n" @@ -3974,7 +3988,7 @@ msgstr "" " super().method(arg) # This does the same thing as:\n" " # super(C, self).method(arg)" -#: library/functions.rst:2012 +#: library/functions.rst:2017 msgid "" "In addition to method lookups, :func:`super` also works for attribute " "lookups. One possible use case for this is calling :term:`descriptors " @@ -3984,7 +3998,7 @@ msgstr "" "αναζητήσεις χαρακτηριστικών. Μια πιθανή περίπτωση χρήσης για αυτό είναι η " "κλήση :term:`descriptors ` σε μια κλάση γονέα ή αδελφού." -#: library/functions.rst:2016 +#: library/functions.rst:2021 msgid "" "Note that :func:`super` is implemented as part of the binding process for " "explicit dotted attribute lookups such as ``super().__getitem__(name)``. It " @@ -4001,7 +4015,7 @@ msgstr "" "οριστεί για σιωπηρές αναζητήσεις που χρησιμοποιούν δηλώσεις ή τελεστές όπως " "``super()[name]``." -#: library/functions.rst:2024 +#: library/functions.rst:2029 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 " @@ -4018,7 +4032,7 @@ msgstr "" "ανάκτηση της κλάσης που ορίζεται, καθώς και για την πρόσβαση στην τρέχουσα " "παρουσία για συνηθισμένες μεθόδους." -#: library/functions.rst:2031 +#: library/functions.rst:2036 msgid "" "For practical suggestions on how to design cooperative classes using :func:" "`super`, see `guide to using super() `_." -#: library/functions.rst:2041 +#: library/functions.rst:2045 msgid "" "Rather than being a function, :class:`tuple` is actually an immutable " "sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." @@ -4037,7 +4051,7 @@ msgstr "" "αμετάβλητος τύπος ακολουθίας, όπως τεκμηριώνεται στα :ref:`typesseq-tuple` " "και :ref:`typesseq`." -#: library/functions.rst:2050 +#: library/functions.rst:2054 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." @@ -4047,7 +4061,7 @@ msgstr "" "είναι ένα αντικείμενο τύπου και γενικά το ίδιο αντικείμενο με αυτό που " "επιστρέφεται από το :attr:`object.__class__`." -#: library/functions.rst:2054 +#: library/functions.rst:2058 msgid "" "The :func:`isinstance` built-in function is recommended for testing the type " "of an object, because it takes subclasses into account." @@ -4055,7 +4069,7 @@ msgstr "" "Η ενσωματωμένη συνάρτηση :func:`isinstance` συνίσταται για τη δοκιμή του " "τύπου ενός αντικειμένου, επειδή λαμβάνει υπόψη τις υποκλάσεις." -#: library/functions.rst:2057 +#: library/functions.rst:2061 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 " @@ -4078,11 +4092,11 @@ msgstr "" "__dict__`. Οι ακόλουθες δύο προτάσεις δημιουργούν πανομοιότυπα αντικείμενα :" "class:`!type`" -#: library/functions.rst:2072 +#: library/functions.rst:2076 msgid "See also:" msgstr "Δείτε επίσης:" -#: library/functions.rst:2074 +#: library/functions.rst:2078 msgid "" ":ref:`Documentation on attributes and methods on classes `." @@ -4090,11 +4104,11 @@ msgstr "" ":ref:`Τεκμηρίωση για χαρακτηριστικά και μεθόδους σε κλάσεις `." -#: library/functions.rst:2075 +#: library/functions.rst:2079 msgid ":ref:`bltin-type-objects`" msgstr ":ref:`bltin-type-objects`" -#: library/functions.rst:2077 +#: library/functions.rst:2081 msgid "" "Keyword arguments provided to the three argument form are passed to the " "appropriate metaclass machinery (usually :meth:`~object.__init_subclass__`) " @@ -4106,11 +4120,11 @@ msgstr "" "__init_subclass__`) με τον ίδιο τρόπο που θα έκαναν οι λέξεις-κλειδιά στον " "ορισμό μιας κλάσης (εκτός από το *metaclass*)." -#: library/functions.rst:2082 +#: library/functions.rst:2086 msgid "See also :ref:`class-customization`." msgstr "Δείτε επίσης :ref:`class-customization`." -#: library/functions.rst:2084 +#: library/functions.rst:2088 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." @@ -4119,7 +4133,7 @@ msgstr "" "δεν μπορούν πλέον να χρησιμοποιούν τη φόρμα ενός επιχειρήματος για να λάβουν " "τον τύπο ενός αντικειμένου." -#: library/functions.rst:2091 +#: library/functions.rst:2095 msgid "" "Return the :attr:`~object.__dict__` attribute for a module, class, instance, " "or any other object with a :attr:`!__dict__` attribute." @@ -4128,7 +4142,7 @@ msgstr "" "στιγμιότυπο, ή οποιοδήποτε άλλο αντικείμενο με ένα χαρακτηριστικό :attr:`!" "__dict__`." -#: library/functions.rst:2094 +#: library/functions.rst:2098 msgid "" "Objects such as modules and instances have an updateable :attr:`~object." "__dict__` attribute; however, other objects may have write restrictions on " @@ -4141,11 +4155,11 @@ msgstr "" "(για παράδειγμα, οι κλάσεις χρησιμοποιούν ένα :class:`types." "MappingProxyType` για την αποτροπή άμεσων ενημερώσεων λεξικού)." -#: library/functions.rst:2099 +#: library/functions.rst:2103 msgid "Without an argument, :func:`vars` acts like :func:`locals`." msgstr "Χωρίς ένα όρισμα, :func:`vars` συμπεριφέρεται όπως :func:`locals`." -#: library/functions.rst:2101 +#: library/functions.rst:2105 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 " @@ -4156,7 +4170,7 @@ msgstr "" "παράδειγμα, εάν η κλάση του ορίζει το :attr:`~object.__slots__` " "χαρακτηριστικό)." -#: library/functions.rst:2107 +#: library/functions.rst:2111 msgid "" "The result of calling this function without an argument has been updated as " "described for the :func:`locals` builtin." @@ -4164,7 +4178,7 @@ msgstr "" "Το αποτέλεσμα της κλήσης αυτής της συνάρτησης χωρίς ένα όρισμα έχει " "ενημερωθεί, όπως περιγράφεται για τη ενσωματωμένη :func:`locals`." -#: library/functions.rst:2113 +#: library/functions.rst:2117 msgid "" "Iterate over several iterables in parallel, producing tuples with an item " "from each one." @@ -4172,11 +4186,11 @@ msgstr "" "Επανάληψη σε πολλούς iterables παράλληλα, δημιουργώντας πλειάδες με ένα " "αντικείμενο από το καθένα." -#: library/functions.rst:2116 +#: library/functions.rst:2120 msgid "Example::" msgstr "Παράδειγμα::" -#: library/functions.rst:2118 +#: library/functions.rst:2122 msgid "" ">>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):\n" "... print(item)\n" @@ -4192,7 +4206,7 @@ msgstr "" "(2, 'spice')\n" "(3, 'everything nice')" -#: library/functions.rst:2125 +#: library/functions.rst:2129 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." @@ -4201,7 +4215,7 @@ msgstr "" "πλειάδα περιέχει το *i*-ο στοιχείο από κάθε ένα από τους επαναλήψιμους " "ορισμάτων." -#: library/functions.rst:2128 +#: library/functions.rst:2132 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 `_." -#: library/functions.rst:2132 +#: library/functions.rst:2136 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:" @@ -4221,7 +4235,7 @@ msgstr "" "μέχρι να επαναληφθεί ο iterable, π.χ. με έναν βρόχο :keyword:`!for` ή με " "αναδίπλωση σε μια :class:`list`." -#: library/functions.rst:2136 +#: library/functions.rst:2140 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 " @@ -4234,7 +4248,7 @@ msgstr "" "κώδικα που προετοίμασε αυτά τα iterables. Η Python προσφέρει τρεις " "διαφορετικές προσεγγίσεις για την αντιμετώπιση αυτού του ζητήματος::" -#: library/functions.rst:2141 +#: library/functions.rst:2145 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 " @@ -4244,7 +4258,7 @@ msgstr "" "Αυτό θα αγνοήσει τα υπόλοιπα στοιχεία στους μεγαλύτερους iterables, κόβοντας " "το αποτέλεσμα στο μήκος του συντομότερου iterable::" -#: library/functions.rst:2145 +#: library/functions.rst:2149 msgid "" ">>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))\n" "[(0, 'fee'), (1, 'fi'), (2, 'fo')]" @@ -4252,7 +4266,7 @@ msgstr "" ">>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))\n" "[(0, 'fee'), (1, 'fi'), (2, 'fo')]" -#: library/functions.rst:2148 +#: library/functions.rst:2152 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`` " @@ -4263,7 +4277,7 @@ msgstr "" "της επιλογής ``strict=True``. Η έξοδος είναι ίδια με την κανονική :func:" "`zip`::" -#: library/functions.rst:2152 +#: library/functions.rst:2156 msgid "" ">>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))\n" "[('a', 1), ('b', 2), ('c', 3)]" @@ -4271,7 +4285,7 @@ msgstr "" ">>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))\n" "[('a', 1), ('b', 2), ('c', 3)]" -#: library/functions.rst:2155 +#: library/functions.rst:2159 msgid "" "Unlike the default behavior, it raises a :exc:`ValueError` if one iterable " "is exhausted before the others:" @@ -4279,7 +4293,7 @@ msgstr "" "Σε αντίθεση με την προεπιλεγμένη συμπεριφορά, γίνεται raise ένα :exc:" "`ValueError` εάν ένα iterable εξαντληθεί πριν από τα άλλα:" -#: library/functions.rst:2173 +#: library/functions.rst:2177 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 " @@ -4289,7 +4303,7 @@ msgstr "" "μήκη διαφορετικού μήκους θα τεθεί σε σίγαση, πιθανώς να εμφανίζεται ως " "δυσεύρετο σφάλμα σε άλλο μέρος του προγράμματος." -#: library/functions.rst:2177 +#: library/functions.rst:2181 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." @@ -4299,7 +4313,7 @@ msgstr "" "τα iterables να έχουνε το ίδιο μήκος. Αυτό γίνεται από το :func:`itertools." "zip_longest`." -#: library/functions.rst:2181 +#: library/functions.rst:2185 msgid "" "Edge cases: With a single iterable argument, :func:`zip` returns an iterator " "of 1-tuples. With no arguments, it returns an empty iterator." @@ -4307,11 +4321,11 @@ msgstr "" "Περιπτώσεις άκρων: Με ένα μόνο επαναληπτικό όρισμα, η :func:`zip` επιστρέφει " "έναν iterator 1-πλειάδων. Χωρίς ορίσματα, επιστρέφει έναν κενό iterator." -#: library/functions.rst:2184 +#: library/functions.rst:2188 msgid "Tips and tricks:" msgstr "Συμβουλές και κόλπα:" -#: library/functions.rst:2186 +#: library/functions.rst:2190 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 " @@ -4327,7 +4341,7 @@ msgstr "" "επαναλήπτη. Αυτό έχει ως αποτέλεσμα τη διαίρεση της εισόδου σε κομμάτια " "μήκους." -#: library/functions.rst:2192 +#: library/functions.rst:2196 msgid "" ":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " "list::" @@ -4335,7 +4349,7 @@ msgstr "" "Η :func:`zip` σε συνδυασμό με τον τελεστή ``*`` μπορεί να χρησιμοποιηθεί για " "την αποσυμπίεση μιας λίστας::" -#: library/functions.rst:2195 +#: library/functions.rst:2199 msgid "" ">>> x = [1, 2, 3]\n" ">>> y = [4, 5, 6]\n" @@ -4353,11 +4367,11 @@ msgstr "" ">>> x == list(x2) and y == list(y2)\n" "True" -#: library/functions.rst:2203 +#: library/functions.rst:2207 msgid "Added the ``strict`` argument." msgstr "Προστέθηκε το όρισμα ``strict``." -#: library/functions.rst:2215 +#: library/functions.rst:2219 msgid "" "This is an advanced function that is not needed in everyday Python " "programming, unlike :func:`importlib.import_module`." @@ -4365,7 +4379,7 @@ msgstr "" "Αυτή είναι μια προηγμένη συνάρτηση που δεν χρειάζεται στον καθημερινό " "προγραμματισμό της Python, σε αντίθεση με το :func:`importlib.import_module`." -#: library/functions.rst:2218 +#: library/functions.rst:2222 msgid "" "This function is invoked by the :keyword:`import` statement. It can be " "replaced (by importing the :mod:`builtins` module and assigning to " @@ -4386,7 +4400,7 @@ msgstr "" "χρήση του :func:`__import__` επίσης αποθαρρύνεται υπέρ του :func:`importlib." "import_module`." -#: library/functions.rst:2227 +#: library/functions.rst:2231 msgid "" "The function imports the module *name*, potentially using the given " "*globals* and *locals* to determine how to interpret the name in a package " @@ -4403,7 +4417,7 @@ msgstr "" "χρησιμοποιεί τα *globals* της μόνο για να προσδιορίσει το πλαίσιο του " "πακέτου της δήλωσης :keyword:`import`." -#: library/functions.rst:2234 +#: library/functions.rst:2238 msgid "" "*level* specifies whether to use absolute or relative imports. ``0`` (the " "default) means only perform absolute imports. Positive values for *level* " @@ -4417,7 +4431,7 @@ msgstr "" "σε σχέση με τον κατάλογο του module που καλεί την :func:`__import__` (δείτε " "το :pep:`328` για λεπτομέρειες)." -#: library/functions.rst:2240 +#: library/functions.rst:2244 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 " @@ -4429,7 +4443,7 @@ msgstr "" "κουκκίδα), *όχι* το module που ονομάζεται *name*. Ωστόσο, όταν δίνεται ένα " "μη κενό όρισμα *fromlist*, επιστρέφεται το module με το όνομα *name*." -#: library/functions.rst:2245 +#: library/functions.rst:2249 msgid "" "For example, the statement ``import spam`` results in bytecode resembling " "the following code::" @@ -4437,19 +4451,19 @@ msgstr "" "Για παράδειγμα, η δήλωση ``import spam`` καταλήγει σε bytecode που μοιάζει " "με τον ακόλουθο κώδικα::" -#: library/functions.rst:2248 +#: library/functions.rst:2252 msgid "spam = __import__('spam', globals(), locals(), [], 0)" msgstr "spam = __import__('spam', globals(), locals(), [], 0)" -#: library/functions.rst:2250 +#: library/functions.rst:2254 msgid "The statement ``import spam.ham`` results in this call::" msgstr "Η δήλωση ``import spam.ham`` καταλήγει σε αυτήν την κλήση::" -#: library/functions.rst:2252 +#: library/functions.rst:2256 msgid "spam = __import__('spam.ham', globals(), locals(), [], 0)" msgstr "spam = __import__('spam.ham', globals(), locals(), [], 0)" -#: library/functions.rst:2254 +#: library/functions.rst:2258 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." @@ -4458,7 +4472,7 @@ msgstr "" "εδώ, επειδή αυτό είναι το αντικείμενο που συνδέεται με ένα όνομα με τη " "δήλωση :keyword:`import`." -#: library/functions.rst:2257 +#: library/functions.rst:2261 msgid "" "On the other hand, the statement ``from spam.ham import eggs, sausage as " "saus`` results in ::" @@ -4466,7 +4480,7 @@ msgstr "" "Από την άλλη πλευρά, η δήλωση ``from spam.ham import eggs, sausage as saus`` " "καταλήγει σε ::" -#: library/functions.rst:2260 +#: library/functions.rst:2264 msgid "" "_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)\n" "eggs = _temp.eggs\n" @@ -4476,7 +4490,7 @@ msgstr "" "eggs = _temp.eggs\n" "saus = _temp.sausage" -#: library/functions.rst:2264 +#: library/functions.rst:2268 msgid "" "Here, the ``spam.ham`` module is returned from :func:`__import__`. From " "this object, the names to import are retrieved and assigned to their " @@ -4486,7 +4500,7 @@ msgstr "" "αυτό το αντικείμενο, τα ονόματα προς εισαγωγή ανακτώνται και εκχωρούνται στα " "αντίστοιχα ονόματά τους." -#: library/functions.rst:2268 +#: library/functions.rst:2272 msgid "" "If you simply want to import a module (potentially within a package) by " "name, use :func:`importlib.import_module`." @@ -4494,7 +4508,7 @@ msgstr "" "Εάν θέλετε απλώς να εισάγετε ένα module (ενδεχομένως μέσα σε ένα πακέτο) με " "το όνομα, χρησιμοποιήστε το :func:`importlib.import_module`." -#: library/functions.rst:2271 +#: library/functions.rst:2275 msgid "" "Negative values for *level* are no longer supported (which also changes the " "default value to 0)." @@ -4502,7 +4516,7 @@ msgstr "" "Αρνητικές τιμές για το *level* δεν υποστηρίζονται πλέον (το οποίο επίσης " "αλλάζει την προεπιλεγμένη τιμή σε 0)." -#: library/functions.rst:2275 +#: library/functions.rst:2279 msgid "" "When the command line options :option:`-E` or :option:`-I` are being used, " "the environment variable :envvar:`PYTHONCASEOK` is now ignored." @@ -4511,11 +4525,11 @@ msgstr "" "I`, τότε η μεταβλητή περιβάλλοντος :envvar:`PYTHONCASEOK` δεν λαμβάνεται " "υπόψιν." -#: library/functions.rst:2280 +#: library/functions.rst:2284 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: library/functions.rst:2281 +#: library/functions.rst:2285 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 " @@ -4530,107 +4544,107 @@ msgstr "" msgid "Boolean" msgstr "Boolean" -#: library/functions.rst:2048 +#: library/functions.rst:2052 msgid "type" msgstr "τύπος" -#: library/functions.rst:648 +#: library/functions.rst:646 msgid "built-in function" msgstr "ενσωματωμένη συνάρτηση" -#: library/functions.rst:648 +#: library/functions.rst:646 msgid "exec" msgstr "exec" -#: library/functions.rst:746 +#: library/functions.rst:744 msgid "NaN" msgstr "NaN" -#: library/functions.rst:746 +#: library/functions.rst:744 msgid "Infinity" msgstr "Άπειρο" -#: library/functions.rst:814 +#: library/functions.rst:812 msgid "__format__" msgstr "__format__" -#: library/functions.rst:1925 +#: library/functions.rst:1928 msgid "string" msgstr "string" -#: library/functions.rst:814 +#: library/functions.rst:812 msgid "format() (built-in function)" msgstr "format() (ενσωματωμένη συνάρτηση)" -#: library/functions.rst:1325 +#: library/functions.rst:1323 msgid "file object" msgstr "αντικείμενο αρχείου" -#: library/functions.rst:1446 +#: library/functions.rst:1444 msgid "open() built-in function" msgstr "open() ενσωματωμένη συνάρτηση" -#: library/functions.rst:1353 +#: library/functions.rst:1351 msgid "file" msgstr "αρχείο" -#: library/functions.rst:1353 +#: library/functions.rst:1351 msgid "modes" msgstr "λειτουργίες" -#: library/functions.rst:1446 +#: library/functions.rst:1444 msgid "universal newlines" msgstr "καθολικές νέες γραμμές" -#: library/functions.rst:1507 +#: library/functions.rst:1505 msgid "line-buffered I/O" msgstr "γραμμική προσωρινή μνήμη I/O" -#: library/functions.rst:1507 +#: library/functions.rst:1505 msgid "unbuffered I/O" msgstr "unbuffered I/O" -#: library/functions.rst:1507 +#: library/functions.rst:1505 msgid "buffer size, I/O" msgstr "μέγεθος bugger, I/O" -#: library/functions.rst:1507 +#: library/functions.rst:1505 msgid "I/O control" msgstr "Έλεγχος I/O" -#: library/functions.rst:1507 +#: library/functions.rst:1505 msgid "buffering" msgstr "buffering" -#: library/functions.rst:1507 +#: library/functions.rst:1505 msgid "text mode" msgstr "λειτουργία κειμένου" -#: library/functions.rst:2209 +#: library/functions.rst:2213 msgid "module" msgstr "module" -#: library/functions.rst:1507 +#: library/functions.rst:1505 msgid "sys" msgstr "sys" -#: library/functions.rst:1925 +#: library/functions.rst:1928 msgid "str() (built-in function)" msgstr "str() (ενσωματωμένη συνάρτηση)" -#: library/functions.rst:2048 +#: library/functions.rst:2052 msgid "object" msgstr "αντικείμενο" -#: library/functions.rst:2209 +#: library/functions.rst:2213 msgid "statement" msgstr "δήλωση" -#: library/functions.rst:2209 +#: library/functions.rst:2213 msgid "import" msgstr "import" -#: library/functions.rst:2209 +#: library/functions.rst:2213 msgid "builtins" msgstr "builtins" diff --git a/library/functools.po b/library/functools.po index bea8e52b..ae594ca0 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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:383 +#: library/functools.rst:142 library/functools.rst:389 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,13 +430,13 @@ 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 "" "Return a new :ref:`partial object` which when called will " "behave like *func* called with the positional arguments *args* and keyword " @@ -447,7 +445,7 @@ msgid "" "extend and override *keywords*. Roughly equivalent to::" msgstr "" -#: library/functools.rst:340 +#: library/functools.rst:346 msgid "" "def partial(func, /, *args, **keywords):\n" " def newfunc(*fargs, **fkeywords):\n" @@ -459,7 +457,7 @@ msgid "" " return newfunc" msgstr "" -#: library/functools.rst:349 +#: library/functools.rst:355 msgid "" "The :func:`partial` is used for partial function application which " "\"freezes\" some portion of a function's arguments and/or keywords resulting " @@ -468,29 +466,29 @@ msgid "" "where the *base* argument defaults to two:" msgstr "" -#: library/functools.rst:364 +#: library/functools.rst:370 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:368 +#: library/functools.rst:374 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:371 +#: library/functools.rst:377 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:377 +#: library/functools.rst:383 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 " @@ -499,7 +497,7 @@ msgid "" "`partialmethod` constructor." msgstr "" -#: library/functools.rst:385 +#: library/functools.rst:391 msgid "" ">>> class Cell:\n" "... def __init__(self):\n" @@ -520,7 +518,7 @@ msgid "" "True" msgstr "" -#: library/functools.rst:408 +#: library/functools.rst:414 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 " @@ -533,11 +531,11 @@ msgid "" "is returned." msgstr "" -#: library/functools.rst:417 +#: library/functools.rst:423 msgid "Roughly equivalent to::" msgstr "" -#: library/functools.rst:419 +#: library/functools.rst:425 msgid "" "initial_missing = object()\n" "\n" @@ -552,26 +550,26 @@ msgid "" " return value" msgstr "" -#: library/functools.rst:431 +#: library/functools.rst:437 msgid "" "See :func:`itertools.accumulate` for an iterator that yields all " "intermediate values." msgstr "" -#: library/functools.rst:436 +#: library/functools.rst:442 msgid "" "Transform a function into a :term:`single-dispatch ` :term:" "`generic function`." msgstr "" -#: library/functools.rst:439 +#: library/functools.rst:445 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:443 +#: library/functools.rst:449 msgid "" ">>> from functools import singledispatch\n" ">>> @singledispatch\n" @@ -581,15 +579,15 @@ msgid "" "... print(arg)" msgstr "" -#: library/functools.rst:450 +#: library/functools.rst:459 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:455 +#: library/functools.rst:464 msgid "" ">>> @fun.register\n" "... def _(arg: int, verbose=False):\n" @@ -605,11 +603,11 @@ msgid "" "... print(i, elem)" msgstr "" -#: library/functools.rst:468 +#: library/functools.rst:477 msgid ":data:`types.UnionType` and :data:`typing.Union` can also be used::" msgstr "" -#: library/functools.rst:470 +#: library/functools.rst:479 msgid "" ">>> @fun.register\n" "... def _(arg: int | float, verbose=False):\n" @@ -627,13 +625,13 @@ msgid "" "..." msgstr "" -#: library/functools.rst:485 +#: library/functools.rst:494 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:488 +#: library/functools.rst:497 msgid "" ">>> @fun.register(complex)\n" "... def _(arg, verbose=False):\n" @@ -643,7 +641,7 @@ msgid "" "..." msgstr "" -#: library/functools.rst:495 +#: library/functools.rst:504 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 " @@ -651,7 +649,7 @@ msgid "" "going into the function definition::" msgstr "" -#: library/functools.rst:500 +#: library/functools.rst:509 msgid "" ">>> @fun.register(list)\n" "... def _(arg: list[int], verbose=False):\n" @@ -661,7 +659,7 @@ msgid "" "... print(i, elem)" msgstr "" -#: library/functools.rst:509 +#: library/functools.rst:518 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 " @@ -669,13 +667,14 @@ msgid "" "example is for static type checkers only and has no runtime impact." msgstr "" -#: library/functools.rst:515 +#: library/functools.rst:524 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:518 +#: library/functools.rst:527 msgid "" ">>> def nothing(arg, verbose=False):\n" "... print(\"Nothing.\")\n" @@ -683,14 +682,14 @@ msgid "" ">>> fun.register(type(None), nothing)" msgstr "" -#: library/functools.rst:523 +#: library/functools.rst:532 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:527 +#: library/functools.rst:536 msgid "" ">>> @fun.register(float)\n" "... @fun.register(Decimal)\n" @@ -703,13 +702,13 @@ msgid "" "False" msgstr "" -#: library/functools.rst:537 +#: library/functools.rst:546 msgid "" "When called, the generic function dispatches on the type of the first " "argument::" msgstr "" -#: library/functools.rst:540 +#: library/functools.rst:549 msgid "" ">>> fun(\"Hello, world.\")\n" "Hello, world.\n" @@ -729,7 +728,7 @@ msgid "" "0.615" msgstr "" -#: library/functools.rst:557 +#: library/functools.rst:566 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 " @@ -738,14 +737,14 @@ msgid "" "found." msgstr "" -#: library/functools.rst:563 +#: library/functools.rst:572 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:567 +#: library/functools.rst:576 msgid "" ">>> from collections.abc import Mapping\n" ">>> @fun.register\n" @@ -759,13 +758,13 @@ msgid "" "a => b" msgstr "" -#: library/functools.rst:578 +#: library/functools.rst:587 msgid "" "To check which implementation the generic function will choose for a given " "type, use the ``dispatch()`` attribute::" msgstr "" -#: library/functools.rst:581 +#: library/functools.rst:590 msgid "" ">>> fun.dispatch(float)\n" "\n" @@ -773,13 +772,13 @@ msgid "" "" msgstr "" -#: library/functools.rst:586 +#: library/functools.rst:595 msgid "" "To access all registered implementations, use the read-only ``registry`` " "attribute::" msgstr "" -#: library/functools.rst:589 +#: library/functools.rst:598 msgid "" ">>> fun.registry.keys()\n" "dict_keys([, , ,\n" @@ -791,31 +790,33 @@ msgid "" "" msgstr "" -#: library/functools.rst:600 -msgid "The :func:`register` attribute now supports using type annotations." +#: library/functools.rst:609 +msgid "" +"The :func:`~singledispatch.register` attribute now supports using type " +"annotations." msgstr "" -#: library/functools.rst:603 +#: library/functools.rst:612 msgid "" -"The :func:`register` attribute now supports :data:`types.UnionType` and :" -"data:`typing.Union` as type annotations." +"The :func:`~singledispatch.register` attribute now supports :data:`types." +"UnionType` and :data:`typing.Union` as type annotations." msgstr "" -#: library/functools.rst:610 +#: library/functools.rst:619 msgid "" "Transform a method into a :term:`single-dispatch ` :term:" "`generic function`." msgstr "" -#: library/functools.rst:613 +#: library/functools.rst:622 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:618 +#: library/functools.rst:627 msgid "" "class Negator:\n" " @singledispatchmethod\n" @@ -831,16 +832,16 @@ msgid "" " return not arg" msgstr "" -#: library/functools.rst:631 +#: library/functools.rst:640 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:637 +#: library/functools.rst:646 msgid "" "class Negator:\n" " @singledispatchmethod\n" @@ -859,14 +860,13 @@ msgid "" " return not arg" msgstr "" -#: library/functools.rst:653 +#: library/functools.rst:662 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:662 +#: library/functools.rst:670 msgid "" "Update a *wrapper* function to look like the *wrapped* function. The " "optional arguments are tuples to specify which attributes of the original " @@ -882,7 +882,7 @@ msgid "" "dictionary)." msgstr "" -#: library/functools.rst:674 +#: library/functools.rst:682 msgid "" "To allow access to the original function for introspection and other " "purposes (e.g. bypassing a caching decorator such as :func:`lru_cache`), " @@ -890,7 +890,7 @@ msgid "" "that refers to the function being wrapped." msgstr "" -#: library/functools.rst:679 +#: library/functools.rst:687 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 " @@ -899,7 +899,7 @@ msgid "" "is typically less than helpful." msgstr "" -#: library/functools.rst:685 +#: library/functools.rst:693 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 " @@ -908,26 +908,26 @@ msgid "" "wrapper function itself is missing any attributes named in *updated*." msgstr "" -#: library/functools.rst:691 +#: library/functools.rst:699 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:696 +#: library/functools.rst:704 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:701 +#: library/functools.rst:709 msgid "" "The :attr:`~function.__type_params__` attribute is now copied by default." msgstr "" -#: library/functools.rst:707 +#: library/functools.rst:715 msgid "" "This is a convenience function for invoking :func:`update_wrapper` as a " "function decorator when defining a wrapper function. It is equivalent to " @@ -935,7 +935,7 @@ msgid "" "updated=updated)``. For example::" msgstr "" -#: library/functools.rst:712 +#: library/functools.rst:720 msgid "" ">>> from functools import wraps\n" ">>> def my_decorator(f):\n" @@ -959,42 +959,42 @@ msgid "" "'Docstring'" msgstr "" -#: library/functools.rst:733 +#: library/functools.rst:741 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:741 +#: library/functools.rst:749 msgid ":class:`partial` Objects" msgstr "" -#: library/functools.rst:743 +#: library/functools.rst:751 msgid "" ":class:`partial` objects are callable objects created by :func:`partial`. " "They have three read-only attributes:" msgstr "" -#: library/functools.rst:749 +#: library/functools.rst:757 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:755 +#: library/functools.rst:763 msgid "" "The leftmost positional arguments that will be prepended to the positional " "arguments provided to a :class:`partial` object call." msgstr "" -#: library/functools.rst:761 +#: library/functools.rst:769 msgid "" "The keyword arguments that will be supplied when the :class:`partial` object " "is called." msgstr "" -#: library/functools.rst:764 +#: library/functools.rst:772 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 37b4b3eb..948b867c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -145,8 +145,9 @@ msgid "" "examined. If generation ``0`` has been examined more than *threshold1* " "times since generation ``1`` has been examined, then generation ``1`` is " "examined as well. With the third generation, things are a bit more " -"complicated, see `Collecting the oldest generation `_ for more " +"complicated, see `Collecting the oldest generation `_ for more " "information." msgstr "" diff --git a/library/getopt.po b/library/getopt.po index f3575752..dc55ba20 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 fb1c81bf..21164de9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/gettext.po b/library/gettext.po index a9913c9c..2d24fbea 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 8414263a..ec9607e9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b582c430..84281e62 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a294c2ca..cd3e98be 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 c4404836..a7147570 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-05-04 22:06+0300\n" -"PO-Revision-Date: 2025-05-06 13:54+0200\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" "Language: \n" @@ -220,7 +220,7 @@ msgstr "" "Σημειώστε ότι το αρχείο ανοίγει πάντα σε δυαδική λειτουργία. Για να ανοίξετε " "ένα συμπιεσμένο αρχείο σε λειτουργία κειμένου, χρησιμοποιήστε τη συνάρτηση :" "func:`.open` (ή κάντε wrap το :class:`GzipFile` με ένα :class:`io." -"TextIOWrapper`). " +"TextIOWrapper`)." #: library/gzip.rst:98 msgid "" @@ -530,7 +530,7 @@ msgstr "" "συμβατό API." #: library/gzip.rst:266 -msgid "Command Line Interface" +msgid "Command-line interface" msgstr "Διεπαφή Γραμμής Εντολών" #: library/gzip.rst:268 @@ -555,7 +555,7 @@ msgstr "" "όταν εκτελείτε την CLI, το προεπιλεγμένο επίπεδο συμπίεσης είναι 6." #: library/gzip.rst:279 -msgid "Command line options" +msgid "Command-line options" msgstr "Επιλογές γραμμής εντολών" #: library/gzip.rst:283 diff --git a/library/hashlib.po b/library/hashlib.po index 801a60ee..f5a4e937 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 68e5629c..e3da5feb 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -76,27 +76,27 @@ msgid "The following functions are provided:" msgstr "" #: library/heapq.rst:47 -msgid "Push the value *item* onto the *heap*, maintaining the heap invariant." +msgid "Transform list *x* into a heap, in-place, in linear time." msgstr "" #: library/heapq.rst:52 +msgid "Push the value *item* onto the *heap*, maintaining the heap invariant." +msgstr "" + +#: library/heapq.rst:57 msgid "" "Pop and return the smallest item from the *heap*, maintaining the heap " "invariant. If the heap is empty, :exc:`IndexError` is raised. To access " "the smallest item without popping it, use ``heap[0]``." msgstr "" -#: library/heapq.rst:59 +#: library/heapq.rst:64 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:66 -msgid "Transform list *x* into a heap, in-place, in linear time." -msgstr "" - #: library/heapq.rst:71 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 e2d6ab70..871e1507 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 da36c4fe..204ed1c3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1fe798e8..08512f65 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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::" +"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:64 +#: library/html.parser.rst:73 msgid "The output will then be:" msgstr "" -#: library/html.parser.rst:66 +#: 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:83 +#: library/html.parser.rst:92 msgid ":class:`.HTMLParser` Methods" msgstr "" -#: library/html.parser.rst:85 +#: library/html.parser.rst:94 msgid ":class:`HTMLParser` instances have the following methods:" msgstr "" -#: library/html.parser.rst:90 +#: 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:97 +#: 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:105 +#: 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:111 +#: library/html.parser.rst:120 msgid "Return current line number and offset." msgstr "" -#: library/html.parser.rst:116 +#: 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:122 +#: 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:129 +#: 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:131 +#: 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:137 +#: 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:140 +#: library/html.parser.rst:149 msgid "" "All entity references from :mod:`html.entities` are replaced in the " "attribute values." msgstr "" -#: library/html.parser.rst:146 +#: 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:148 +#: library/html.parser.rst:157 msgid "The *tag* argument is the name of the tag converted to lower case." msgstr "" -#: library/html.parser.rst:153 +#: 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:161 +#: 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:167 +#: 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:175 +#: 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:184 +#: 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:189 +#: library/html.parser.rst:198 msgid "" "The content of Internet Explorer conditional comments (condcoms) will also " "be sent to this method, so, for ``'\n" +">>> parser.feed(''\n" "... '')\n" -"Comment : a comment\n" +"Comment : a comment\n" "Comment : [if IE 9]>IE-specific content'``)::" +"correct char (note: these 3 references are all equivalent to ``'>'``):" msgstr "" -#: library/html.parser.rst:313 +#: library/html.parser.rst:332 msgid "" +">>> parser = MyHTMLParser()\n" +">>> parser.feed('>>>')\n" +"Data : >>>\n" +"\n" +">>> parser = MyHTMLParser(convert_charrefs=False)\n" ">>> parser.feed('>>>')\n" "Named ent: >\n" "Num ent : >\n" "Num ent : >" msgstr "" -#: library/html.parser.rst:318 +#: 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:322 +#: library/html.parser.rst:348 msgid "" -">>> for chunk in ['buff', 'ered ', 'text']:\n" +">>> for chunk in ['buff', 'ered', ' text']:\n" "... parser.feed(chunk)\n" "...\n" "Start tag: span\n" "Data : buff\n" "Data : ered\n" -"Data : text\n" +"Data : text\n" "End tag : span" msgstr "" -#: library/html.parser.rst:331 -msgid "Parsing invalid HTML (e.g. unquoted attributes) also works::" +#: library/html.parser.rst:359 +msgid "Parsing invalid HTML (e.g. unquoted attributes) also works:" msgstr "" -#: library/html.parser.rst:333 +#: 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 53b26f55..c293ecec 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 4d4bd641..bc550928 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ff90bac7..2ab5e58e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 c7b41fde..bc25bd9d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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:207 library/http.cookies.rst:215 +#: library/http.cookies.rst:210 library/http.cookies.rst:218 msgid "The meaning for *attrs* is the same as in :meth:`output`." msgstr "" @@ -184,52 +184,55 @@ msgstr "" #: library/http.cookies.rst:150 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:154 +#: library/http.cookies.rst:157 msgid "The keys are case-insensitive and their default value is ``''``." msgstr "" -#: library/http.cookies.rst:156 +#: library/http.cookies.rst:159 msgid "" ":meth:`!__eq__` now takes :attr:`~Morsel.key` and :attr:`~Morsel.value` into " "account." msgstr "" -#: library/http.cookies.rst:160 +#: library/http.cookies.rst:163 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:165 +#: library/http.cookies.rst:168 msgid "Added support for the :attr:`samesite` attribute." msgstr "" -#: library/http.cookies.rst:171 +#: library/http.cookies.rst:174 msgid "The value of the cookie." msgstr "" -#: library/http.cookies.rst:176 +#: library/http.cookies.rst:179 msgid "The encoded value of the cookie --- this is what should be sent." msgstr "" -#: library/http.cookies.rst:181 +#: library/http.cookies.rst:184 msgid "The name of the cookie." msgstr "" -#: library/http.cookies.rst:186 +#: library/http.cookies.rst:189 msgid "Set the *key*, *value* and *coded_value* attributes." msgstr "" -#: library/http.cookies.rst:191 +#: library/http.cookies.rst:194 msgid "Whether *K* is a member of the set of keys of a :class:`Morsel`." msgstr "" -#: library/http.cookies.rst:196 +#: library/http.cookies.rst:199 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 " @@ -237,53 +240,53 @@ msgid "" "by default ``\"Set-Cookie:\"``." msgstr "" -#: library/http.cookies.rst:204 +#: library/http.cookies.rst:207 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:212 +#: library/http.cookies.rst:215 msgid "" "Return a string representing the Morsel, without any surrounding HTTP or " "JavaScript." msgstr "" -#: library/http.cookies.rst:220 +#: library/http.cookies.rst:223 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:224 +#: library/http.cookies.rst:227 msgid "an error is raised for invalid keys." msgstr "" -#: library/http.cookies.rst:230 +#: library/http.cookies.rst:233 msgid "Return a shallow copy of the Morsel object." msgstr "" -#: library/http.cookies.rst:232 +#: library/http.cookies.rst:235 msgid "return a Morsel object instead of a dict." msgstr "" -#: library/http.cookies.rst:238 +#: library/http.cookies.rst:241 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:245 +#: library/http.cookies.rst:248 msgid "Example" msgstr "" -#: library/http.cookies.rst:247 +#: library/http.cookies.rst:250 msgid "" "The following example demonstrates how to use the :mod:`http.cookies` module." msgstr "" -#: library/http.cookies.rst:249 +#: library/http.cookies.rst:252 msgid "" ">>> from http import cookies\n" ">>> C = cookies.SimpleCookie()\n" diff --git a/library/http.po b/library/http.po index 209328f1..b29ef6cd 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 7e67d901..436546a8 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -153,7 +153,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:121 @@ -483,28 +483,27 @@ msgstr "" #: library/http.server.rst:391 msgid "" "Then follows a blank line signifying the end of the headers, and then the " -"contents of the file are output. If the file's MIME type starts with ``text/" -"`` the file is opened in text mode; otherwise binary mode is used." +"contents of the file are output." msgstr "" -#: library/http.server.rst:395 +#: library/http.server.rst:394 msgid "" "For example usage, see the implementation of the ``test`` function in :" "source:`Lib/http/server.py`." msgstr "" -#: library/http.server.rst:398 +#: library/http.server.rst:397 msgid "Support of the ``'If-Modified-Since'`` header." msgstr "" -#: library/http.server.rst:401 +#: library/http.server.rst:400 msgid "" "The :class:`SimpleHTTPRequestHandler` class can be used in the following " "manner in order to create a very basic webserver serving files relative to " "the current directory::" msgstr "" -#: library/http.server.rst:405 +#: library/http.server.rst:404 msgid "" "import http.server\n" "import socketserver\n" @@ -518,28 +517,28 @@ msgid "" " httpd.serve_forever()" msgstr "" -#: library/http.server.rst:417 +#: library/http.server.rst:416 msgid "" ":class:`SimpleHTTPRequestHandler` can also be subclassed to enhance " "behavior, such as using different index file names by overriding the class " "attribute :attr:`index_pages`." msgstr "" -#: library/http.server.rst:424 +#: library/http.server.rst:423 msgid "" "This class is used to serve either files or output of CGI scripts from the " "current directory and below. Note that mapping HTTP hierarchic structure to " "local directory structure is exactly as in :class:`SimpleHTTPRequestHandler`." msgstr "" -#: library/http.server.rst:430 +#: library/http.server.rst:429 msgid "" "CGI scripts run by the :class:`CGIHTTPRequestHandler` class cannot execute " "redirects (HTTP code 302), because code 200 (script output follows) is sent " "prior to execution of the CGI script. This pre-empts the status code." msgstr "" -#: library/http.server.rst:435 +#: library/http.server.rst:434 msgid "" "The class will however, run the CGI script, instead of serving it as a file, " "if it guesses it to be a CGI script. Only directory-based CGI are used --- " @@ -547,41 +546,41 @@ msgid "" "denoting CGI scripts." msgstr "" -#: library/http.server.rst:440 +#: library/http.server.rst:439 msgid "" "The :func:`do_GET` and :func:`do_HEAD` functions are modified to run CGI " "scripts and serve the output, instead of serving files, if the request leads " "to somewhere below the ``cgi_directories`` path." msgstr "" -#: library/http.server.rst:444 +#: library/http.server.rst:443 msgid "The :class:`CGIHTTPRequestHandler` defines the following data member:" msgstr "" -#: library/http.server.rst:448 +#: library/http.server.rst:447 msgid "" "This defaults to ``['/cgi-bin', '/htbin']`` and describes directories to " "treat as containing CGI scripts." msgstr "" -#: library/http.server.rst:451 +#: library/http.server.rst:450 msgid "The :class:`CGIHTTPRequestHandler` defines the following method:" msgstr "" -#: library/http.server.rst:455 +#: library/http.server.rst:454 msgid "" "This method serves the ``'POST'`` request type, only allowed for CGI " "scripts. Error 501, \"Can only POST to CGI scripts\", is output when trying " "to POST to a non-CGI url." msgstr "" -#: library/http.server.rst:459 +#: library/http.server.rst:458 msgid "" "Note that CGI scripts will be run with UID of user nobody, for security " "reasons. Problems with the CGI script will be translated to error 403." msgstr "" -#: library/http.server.rst:464 +#: library/http.server.rst:463 msgid "" ":class:`CGIHTTPRequestHandler` is being removed in 3.15. CGI has not been " "considered a good way to do things for well over a decade. This code has " @@ -590,36 +589,36 @@ msgid "" "server-security>`." msgstr "" -#: library/http.server.rst:474 +#: library/http.server.rst:473 msgid "Command-line interface" msgstr "" -#: library/http.server.rst:476 +#: library/http.server.rst:475 msgid "" ":mod:`http.server` can also be invoked directly using the :option:`-m` " "switch of the interpreter. The following example illustrates how to serve " "files relative to the current directory::" msgstr "" -#: library/http.server.rst:480 +#: library/http.server.rst:479 msgid "python -m http.server [OPTIONS] [port]" msgstr "" -#: library/http.server.rst:482 +#: library/http.server.rst:481 msgid "The following options are accepted:" msgstr "" -#: library/http.server.rst:488 +#: library/http.server.rst:487 msgid "" "The server listens to port 8000 by default. The default can be overridden by " "passing the desired port number as an argument::" msgstr "" -#: library/http.server.rst:491 +#: library/http.server.rst:490 msgid "python -m http.server 9000" msgstr "" -#: library/http.server.rst:495 +#: library/http.server.rst:494 msgid "" "Specifies a specific address to which it should bind. Both IPv4 and IPv6 " "addresses are supported. By default, the server binds itself to all " @@ -627,71 +626,71 @@ msgid "" "localhost only::" msgstr "" -#: library/http.server.rst:500 +#: library/http.server.rst:499 msgid "python -m http.server --bind 127.0.0.1" msgstr "" -#: library/http.server.rst:504 +#: library/http.server.rst:503 msgid "Support IPv6 in the ``--bind`` option." msgstr "" -#: library/http.server.rst:509 +#: library/http.server.rst:508 msgid "" "Specifies a directory to which it should serve the files. By default, the " "server uses the current directory. For example, the following command uses a " "specific directory::" msgstr "" -#: library/http.server.rst:513 +#: library/http.server.rst:512 msgid "python -m http.server --directory /tmp/" msgstr "" -#: library/http.server.rst:519 +#: library/http.server.rst:518 msgid "" "Specifies the HTTP version to which the server is conformant. By default, " "the server is conformant to HTTP/1.0. For example, the following command " "runs an HTTP/1.1 conformant server::" msgstr "" -#: library/http.server.rst:523 +#: library/http.server.rst:522 msgid "python -m http.server --protocol HTTP/1.1" msgstr "" -#: library/http.server.rst:529 +#: library/http.server.rst:528 msgid "" ":class:`CGIHTTPRequestHandler` can be enabled in the command line by passing " "the ``--cgi`` option::" msgstr "" -#: library/http.server.rst:532 +#: library/http.server.rst:531 msgid "python -m http.server --cgi" msgstr "" -#: library/http.server.rst:536 +#: library/http.server.rst:535 msgid "" ":mod:`http.server` command line ``--cgi`` support is being removed because :" "class:`CGIHTTPRequestHandler` is being removed." msgstr "" -#: library/http.server.rst:541 +#: library/http.server.rst:540 msgid "" ":class:`CGIHTTPRequestHandler` and the ``--cgi`` command-line option are not " "intended for use by untrusted clients and may be vulnerable to exploitation. " "Always use within a secure environment." msgstr "" -#: library/http.server.rst:549 +#: library/http.server.rst:548 msgid "Security considerations" msgstr "" -#: library/http.server.rst:553 +#: library/http.server.rst:552 msgid "" ":class:`SimpleHTTPRequestHandler` will follow symbolic links when handling " "requests, this makes it possible for files outside of the specified " "directory to be served." msgstr "" -#: library/http.server.rst:557 +#: library/http.server.rst:556 msgid "" "Earlier versions of Python did not scrub control characters from the log " "messages emitted to stderr from ``python -m http.server`` or the default :" @@ -700,7 +699,7 @@ msgid "" "codes to your terminal." msgstr "" -#: library/http.server.rst:563 +#: library/http.server.rst:562 msgid "Control characters are scrubbed in stderr logs." msgstr "" @@ -728,10 +727,10 @@ msgstr "" msgid "httpd" msgstr "" -#: library/http.server.rst:551 +#: library/http.server.rst:550 msgid "http.server" msgstr "" -#: library/http.server.rst:551 +#: library/http.server.rst:550 msgid "security" msgstr "" diff --git a/library/i18n.po b/library/i18n.po index 9c0a0139..cd8cea56 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 caccf970..4b9339f5 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -166,7 +166,7 @@ msgstr "" #: library/idle.rst:90 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.)" @@ -442,13 +442,13 @@ msgid "" msgstr "" #: library/idle.rst:207 -msgid "Strip Trailing Chitespace" +msgid "Strip Trailing Whitespace" msgstr "" #: library/idle.rst:208 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 "" @@ -1157,72 +1157,72 @@ msgid "" "importing functions to be used from IDLE's Python shell." msgstr "" -#: library/idle.rst:661 -msgid "Command line usage" +#: library/idle.rst:663 +msgid "Command-line usage" msgstr "" -#: library/idle.rst:665 +#: library/idle.rst:667 msgid "" "IDLE can be invoked from the command line with various options. The general " "syntax is:" msgstr "" -#: library/idle.rst:667 +#: library/idle.rst:669 msgid "python -m idlelib [options] [file ...]" msgstr "" -#: library/idle.rst:671 +#: library/idle.rst:673 msgid "The following options are available:" msgstr "" -#: library/idle.rst:675 +#: library/idle.rst:677 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:683 msgid "Enable the debugger and open the shell window." msgstr "" -#: library/idle.rst:685 +#: library/idle.rst:687 msgid "Open an editor window." msgstr "" -#: library/idle.rst:689 +#: library/idle.rst:691 msgid "Print a help message with legal combinations of options and exit." msgstr "" -#: library/idle.rst:693 +#: library/idle.rst:695 msgid "Open a shell window." msgstr "" -#: library/idle.rst:697 +#: library/idle.rst:699 msgid "Run the specified file in the shell window." msgstr "" -#: library/idle.rst:701 +#: library/idle.rst:703 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:707 msgid "Set the title of the shell window." msgstr "" -#: library/idle.rst:709 +#: library/idle.rst:711 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:713 msgid "If arguments are provided:" msgstr "" -#: library/idle.rst:713 +#: library/idle.rst:715 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 +1230,17 @@ msgid "" "the *Options* dialog." msgstr "" -#: library/idle.rst:716 +#: library/idle.rst:718 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:722 msgid "Startup failure" msgstr "" -#: library/idle.rst:722 +#: library/idle.rst:724 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 +1250,7 @@ msgid "" "directs the user here. It then exits." msgstr "" -#: library/idle.rst:729 +#: library/idle.rst:731 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 +1260,7 @@ msgid "" "``tcplisten `` in another." msgstr "" -#: library/idle.rst:737 +#: library/idle.rst:739 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 +1269,7 @@ msgid "" "file." msgstr "" -#: library/idle.rst:743 +#: library/idle.rst:745 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 +1279,7 @@ msgid "" "connections." msgstr "" -#: library/idle.rst:750 +#: library/idle.rst:752 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 +1287,7 @@ msgid "" "completely remove Python and start over." msgstr "" -#: library/idle.rst:755 +#: library/idle.rst:757 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 +1296,7 @@ msgid "" "may fix a temporary problem." msgstr "" -#: library/idle.rst:761 +#: library/idle.rst:763 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 +1307,14 @@ msgid "" "with the settings dialog." msgstr "" -#: library/idle.rst:769 +#: library/idle.rst:771 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:775 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 +1323,11 @@ msgid "" "upgrade tcl/tk, then re-configure IDLE to use a font that works better." msgstr "" -#: library/idle.rst:781 +#: library/idle.rst:783 msgid "Running user code" msgstr "" -#: library/idle.rst:783 +#: library/idle.rst:785 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 +1337,7 @@ msgid "" "``threading.active_count()`` returns 2 instead of 1." msgstr "" -#: library/idle.rst:790 +#: library/idle.rst:792 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 +1347,7 @@ msgid "" "__stderr__`` are not touched, but may be ``None``." msgstr "" -#: library/idle.rst:797 +#: library/idle.rst:799 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 +1359,7 @@ msgid "" "fields and lines." msgstr "" -#: library/idle.rst:806 +#: library/idle.rst:808 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 +1370,14 @@ msgid "" "attached to that window for input and output." msgstr "" -#: library/idle.rst:815 +#: library/idle.rst:817 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:821 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 +1385,7 @@ msgid "" "determine whether a key has been pressed and if so, which." msgstr "" -#: library/idle.rst:824 +#: library/idle.rst:826 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 +1393,17 @@ msgid "" "frames." msgstr "" -#: library/idle.rst:829 +#: library/idle.rst:831 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:835 msgid "User output in Shell" msgstr "" -#: library/idle.rst:835 +#: library/idle.rst:837 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 +1413,7 @@ msgid "" "rather than production runs." msgstr "" -#: library/idle.rst:842 +#: library/idle.rst:844 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 +1422,7 @@ msgid "" "lines, with 300 the default." msgstr "" -#: library/idle.rst:848 +#: library/idle.rst:850 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 +1436,7 @@ msgid "" "spacing behavior.) ::" msgstr "" -#: library/idle.rst:858 +#: library/idle.rst:860 msgid "" ">>> s = 'a\\tb\\a<\\x02><\\r>\\bc\\nd' # Enter 22 chars.\n" ">>> len(s)\n" @@ -1447,7 +1447,7 @@ msgid "" "# Result varies by OS and font. Try it." msgstr "" -#: library/idle.rst:866 +#: library/idle.rst:868 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 +1456,13 @@ msgid "" "regardless of how they are displayed." msgstr "" -#: library/idle.rst:872 +#: library/idle.rst:874 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:877 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 +1471,7 @@ msgid "" "opened if necessary." msgstr "" -#: library/idle.rst:881 +#: library/idle.rst:883 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 +1480,18 @@ msgid "" "on the output. This can be useful lines long enough to slow down scrolling." msgstr "" -#: library/idle.rst:889 +#: library/idle.rst:891 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:896 msgid "Developing tkinter applications" msgstr "" -#: library/idle.rst:896 +#: library/idle.rst:898 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 +1503,7 @@ msgid "" "changes in standard Python until one enters ``root.update()``." msgstr "" -#: library/idle.rst:905 +#: library/idle.rst:907 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 +1511,7 @@ msgid "" "``mainloop()`` returns, at which time there is nothing left to interact with." msgstr "" -#: library/idle.rst:911 +#: library/idle.rst:913 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 +1519,11 @@ msgid "" "mainloop call when running in standard Python." msgstr "" -#: library/idle.rst:917 +#: library/idle.rst:919 msgid "Running without a subprocess" msgstr "" -#: library/idle.rst:919 +#: library/idle.rst:921 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 +1531,7 @@ msgid "" "firewall software complains anyway, you can ignore it." msgstr "" -#: library/idle.rst:924 +#: library/idle.rst:926 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 +1540,7 @@ msgid "" "command line switch." msgstr "" -#: library/idle.rst:930 +#: library/idle.rst:932 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 +1554,15 @@ msgid "" "at all possible." msgstr "" -#: library/idle.rst:945 +#: library/idle.rst:947 msgid "Help and Preferences" msgstr "" -#: library/idle.rst:950 +#: library/idle.rst:952 msgid "Help sources" msgstr "" -#: library/idle.rst:952 +#: library/idle.rst:954 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 +1572,7 @@ msgid "" "the opened box." msgstr "" -#: library/idle.rst:960 +#: library/idle.rst:962 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 +1581,17 @@ msgid "" "instead." msgstr "" -#: library/idle.rst:966 +#: library/idle.rst:968 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:974 msgid "Setting preferences" msgstr "" -#: library/idle.rst:974 +#: library/idle.rst:976 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 +1600,7 @@ msgid "" "or more of the files in ``.idlerc``." msgstr "" -#: library/idle.rst:980 +#: library/idle.rst:982 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 +1609,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:989 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 +1617,22 @@ msgid "" "IDLEs." msgstr "" -#: library/idle.rst:993 +#: library/idle.rst:995 msgid "IDLE on macOS" msgstr "" -#: library/idle.rst:995 +#: library/idle.rst:997 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:1002 msgid "Extensions" msgstr "" -#: library/idle.rst:1002 +#: library/idle.rst:1004 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 +1641,21 @@ msgid "" "testing." msgstr "" -#: library/idle.rst:1010 +#: library/idle.rst:1012 msgid "idlelib --- implementation of IDLE application" msgstr "" -#: library/idle.rst:1015 +#: library/idle.rst:1017 msgid "**Source code:** :source:`Lib/idlelib`" msgstr "" -#: library/idle.rst:1019 +#: library/idle.rst:1021 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:1024 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 " diff --git a/library/imaplib.po b/library/imaplib.po index 27fa4af5..b34a26a4 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -388,34 +388,38 @@ msgid "" "includes the phrase ``AUTH=CRAM-MD5``." msgstr "" -#: library/imaplib.rst:331 +#: library/imaplib.rst:328 +msgid "An :exc:`IMAP4.error` is raised if MD5 support is not available." +msgstr "" + +#: library/imaplib.rst:334 msgid "Shutdown connection to server. Returns server ``BYE`` response." msgstr "" -#: library/imaplib.rst:333 +#: library/imaplib.rst:336 msgid "The method no longer ignores silently arbitrary exceptions." msgstr "" -#: library/imaplib.rst:339 +#: library/imaplib.rst:342 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:346 +#: library/imaplib.rst:349 msgid "Show my ACLs for a mailbox (i.e. the rights that I have on mailbox)." msgstr "" -#: library/imaplib.rst:351 +#: library/imaplib.rst:354 msgid "Returns IMAP namespaces as defined in :rfc:`2342`." msgstr "" -#: library/imaplib.rst:356 +#: library/imaplib.rst:359 msgid "Send ``NOOP`` to server." msgstr "" -#: library/imaplib.rst:361 +#: library/imaplib.rst:364 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 " @@ -428,54 +432,54 @@ msgid "" "You may override this method." msgstr "" -#: library/imaplib.rst:371 +#: library/imaplib.rst:374 msgid "" "Raises an :ref:`auditing event ` ``imaplib.open`` with arguments " "``self``, ``host``, ``port``." msgstr "" -#: library/imaplib.rst:373 +#: library/imaplib.rst:376 msgid "The *timeout* parameter was added." msgstr "" -#: library/imaplib.rst:378 +#: library/imaplib.rst:381 msgid "" "Fetch truncated part of a message. Returned data is a tuple of message part " "envelope and data." msgstr "" -#: library/imaplib.rst:384 +#: library/imaplib.rst:387 msgid "" "Assume authentication as *user*. Allows an authorised administrator to proxy " "into any user's mailbox." msgstr "" -#: library/imaplib.rst:390 +#: library/imaplib.rst:393 msgid "" "Reads *size* bytes from the remote server. You may override this method." msgstr "" -#: library/imaplib.rst:395 +#: library/imaplib.rst:398 msgid "Reads one line from the remote server. You may override this method." msgstr "" -#: library/imaplib.rst:400 +#: library/imaplib.rst:403 msgid "" "Prompt server for an update. Returned data is ``None`` if no new messages, " "else value of ``RECENT`` response." msgstr "" -#: library/imaplib.rst:406 +#: library/imaplib.rst:409 msgid "Rename mailbox named *oldmailbox* to *newmailbox*." msgstr "" -#: library/imaplib.rst:411 +#: library/imaplib.rst:414 msgid "" "Return data for response *code* if received, or ``None``. Returns the given " "code, instead of the usual type." msgstr "" -#: library/imaplib.rst:417 +#: library/imaplib.rst:420 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 " @@ -485,11 +489,11 @@ msgid "" "`enable` command." msgstr "" -#: library/imaplib.rst:424 +#: library/imaplib.rst:427 msgid "Example::" msgstr "" -#: library/imaplib.rst:426 +#: library/imaplib.rst:429 msgid "" "# M is a connected IMAP4 instance...\n" "typ, msgnums = M.search(None, 'FROM', '\"LDJ\"')\n" @@ -498,59 +502,59 @@ msgid "" "typ, msgnums = M.search(None, '(FROM \"LDJ\")')" msgstr "" -#: library/imaplib.rst:435 +#: library/imaplib.rst:438 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:442 +#: library/imaplib.rst:445 msgid "Sends ``data`` to the remote server. You may override this method." msgstr "" -#: library/imaplib.rst:444 +#: library/imaplib.rst:447 msgid "" "Raises an :ref:`auditing event ` ``imaplib.send`` with arguments " "``self``, ``data``." msgstr "" -#: library/imaplib.rst:449 +#: library/imaplib.rst:452 msgid "" "Set an ``ACL`` for *mailbox*. The method is non-standard, but is supported " "by the ``Cyrus`` server." msgstr "" -#: library/imaplib.rst:455 +#: library/imaplib.rst:458 msgid "" "Set ``ANNOTATION``\\ s for *mailbox*. The method is non-standard, but is " "supported by the ``Cyrus`` server." msgstr "" -#: library/imaplib.rst:461 +#: library/imaplib.rst:464 msgid "" "Set the ``quota`` *root*'s resource *limits*. This method is part of the " "IMAP4 QUOTA extension defined in rfc2087." msgstr "" -#: library/imaplib.rst:467 +#: library/imaplib.rst:470 msgid "" "Close connection established in ``open``. This method is implicitly called " "by :meth:`IMAP4.logout`. You may override this method." msgstr "" -#: library/imaplib.rst:473 +#: library/imaplib.rst:476 msgid "Returns socket instance used to connect to server." msgstr "" -#: library/imaplib.rst:478 +#: library/imaplib.rst:481 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:482 +#: library/imaplib.rst:485 msgid "" "Sort has two arguments before the *search_criterion* argument(s); a " "parenthesized list of *sort_criteria*, and the searching *charset*. Note " @@ -562,39 +566,39 @@ msgid "" "searching criteria. It then returns the numbers of matching messages." msgstr "" -#: library/imaplib.rst:562 +#: library/imaplib.rst:565 msgid "This is an ``IMAP4rev1`` extension command." msgstr "" -#: library/imaplib.rst:496 +#: library/imaplib.rst:499 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:503 +#: library/imaplib.rst:506 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:511 +#: library/imaplib.rst:514 msgid "Request named status conditions for *mailbox*." msgstr "" -#: library/imaplib.rst:516 +#: library/imaplib.rst:519 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:520 +#: library/imaplib.rst:523 msgid "For example, to set the delete flag on all messages::" msgstr "" -#: library/imaplib.rst:522 +#: library/imaplib.rst:525 msgid "" "typ, data = M.search(None, 'ALL')\n" "for num in data[0].split():\n" @@ -602,7 +606,7 @@ msgid "" "M.expunge()" msgstr "" -#: library/imaplib.rst:529 +#: library/imaplib.rst:532 msgid "" "Creating flags containing ']' (for example: \"[test]\") violates :rfc:`3501` " "(the IMAP protocol). However, imaplib has historically allowed creation of " @@ -614,24 +618,24 @@ msgid "" "are sent from the server, since this improves real-world compatibility." msgstr "" -#: library/imaplib.rst:541 +#: library/imaplib.rst:544 msgid "Subscribe to new mailbox." msgstr "" -#: library/imaplib.rst:546 +#: library/imaplib.rst:549 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:549 +#: library/imaplib.rst:552 msgid "" "Thread members consist of zero or more messages numbers, delimited by " "spaces, indicating successive parent and child." msgstr "" -#: library/imaplib.rst:552 +#: library/imaplib.rst:555 msgid "" "Thread has two arguments before the *search_criterion* argument(s); a " "*threading_algorithm*, and the searching *charset*. Note that unlike " @@ -644,7 +648,7 @@ msgid "" "specified threading algorithm." msgstr "" -#: library/imaplib.rst:567 +#: library/imaplib.rst:570 msgid "" "Execute command args with messages identified by UID, rather than message " "number. Returns response appropriate to command. At least one argument " @@ -652,11 +656,11 @@ msgid "" "an exception will be raised." msgstr "" -#: library/imaplib.rst:575 +#: library/imaplib.rst:578 msgid "Unsubscribe from old mailbox." msgstr "" -#: library/imaplib.rst:579 +#: library/imaplib.rst:582 msgid "" ":meth:`imaplib.IMAP4.unselect` frees server's resources associated with the " "selected mailbox and returns the server to the authenticated state. This " @@ -664,46 +668,46 @@ msgid "" "that no messages are permanently removed from the currently selected mailbox." msgstr "" -#: library/imaplib.rst:589 +#: library/imaplib.rst:592 msgid "" "Allow simple extension commands notified by server in ``CAPABILITY`` " "response." msgstr "" -#: library/imaplib.rst:592 +#: library/imaplib.rst:595 msgid "The following attributes are defined on instances of :class:`IMAP4`:" msgstr "" -#: library/imaplib.rst:596 +#: library/imaplib.rst:599 msgid "" "The most recent supported protocol in the ``CAPABILITY`` response from the " "server." msgstr "" -#: library/imaplib.rst:602 +#: library/imaplib.rst:605 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:608 +#: library/imaplib.rst:611 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:618 +#: library/imaplib.rst:621 msgid "IMAP4 Example" msgstr "" -#: library/imaplib.rst:620 +#: library/imaplib.rst:623 msgid "" "Here is a minimal example (without error checking) that opens a mailbox and " "retrieves and prints all messages::" msgstr "" -#: library/imaplib.rst:623 +#: library/imaplib.rst:626 msgid "" "import getpass, imaplib\n" "\n" diff --git a/library/imghdr.po b/library/imghdr.po index 7d93d793..980b029f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 58b450dc..85566679 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 d2addfbd..2e3cb968 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 900c74a9..cb57bccd 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,23 @@ msgid "" "implemented." msgstr "" -#: library/importlib.rst:636 +#: library/importlib.rst:640 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`." msgstr "" -#: library/importlib.rst:396 +#: library/importlib.rst:400 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 +590,34 @@ msgid "" "__file__` attribute or an item from a package's :attr:`~module.__path__`." msgstr "" -#: library/importlib.rst:405 +#: library/importlib.rst:409 msgid "Raises :exc:`OSError` instead of :exc:`NotImplementedError`." msgstr "" -#: library/importlib.rst:411 +#: library/importlib.rst:415 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:420 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:426 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:432 msgid "No longer abstract and a concrete implementation is provided." msgstr "" -#: library/importlib.rst:434 +#: library/importlib.rst:438 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 +626,22 @@ msgid "" "cannot find the module specified." msgstr "" -#: library/importlib.rst:449 library/importlib.rst:500 +#: library/importlib.rst:453 library/importlib.rst:504 msgid "Raises :exc:`ImportError` instead of :exc:`NotImplementedError`." msgstr "" -#: library/importlib.rst:445 +#: library/importlib.rst:449 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:458 msgid "Create a code object from Python source." msgstr "" -#: library/importlib.rst:456 +#: library/importlib.rst:460 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 +649,107 @@ msgid "" "in a zip file)." msgstr "" -#: library/importlib.rst:461 +#: library/importlib.rst:465 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:470 msgid "Made the method static." msgstr "" -#: library/importlib.rst:471 +#: library/importlib.rst:475 msgid "Implementation of :meth:`Loader.exec_module`." msgstr "" -#: library/importlib.rst:477 +#: library/importlib.rst:481 msgid "Implementation of :meth:`Loader.load_module`." msgstr "" -#: library/importlib.rst:479 +#: library/importlib.rst:483 msgid "use :meth:`exec_module` instead." msgstr "" -#: library/importlib.rst:485 +#: library/importlib.rst:489 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:496 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:500 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:510 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:514 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:521 msgid "The name of the module the loader can handle." msgstr "" -#: library/importlib.rst:521 +#: library/importlib.rst:525 msgid "Path to the file of the module." msgstr "" -#: library/importlib.rst:525 +#: library/importlib.rst:529 msgid "Calls super's ``load_module()``." msgstr "" -#: library/importlib.rst:527 +#: library/importlib.rst:531 msgid "Use :meth:`Loader.exec_module` instead." msgstr "" -#: library/importlib.rst:1140 +#: library/importlib.rst:1144 msgid "Returns :attr:`path`." msgstr "" -#: library/importlib.rst:538 +#: library/importlib.rst:542 msgid "Reads *path* as a binary file and returns the bytes from it." msgstr "" -#: library/importlib.rst:543 +#: library/importlib.rst:547 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:551 msgid ":meth:`ResourceLoader.get_data`" msgstr "" -#: library/importlib.rst:548 +#: library/importlib.rst:552 msgid ":meth:`ExecutionLoader.get_filename`" msgstr "" -#: library/importlib.rst:549 +#: library/importlib.rst:553 msgid "" "Should only return the path to the source file; sourceless loading is not " "supported." msgstr "" -#: library/importlib.rst:552 +#: library/importlib.rst:556 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 +761,83 @@ msgid "" "bytecode-specific API is exposed." msgstr "" -#: library/importlib.rst:563 +#: library/importlib.rst:567 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:570 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:572 msgid "``'size'`` (optional): the size in bytes of the source code." msgstr "" -#: library/importlib.rst:570 +#: library/importlib.rst:574 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:592 msgid "Raise :exc:`OSError` instead of :exc:`NotImplementedError`." msgstr "" -#: library/importlib.rst:580 +#: library/importlib.rst:584 msgid "" "Optional abstract method which returns the modification time for the " "specified path." msgstr "" -#: library/importlib.rst:583 +#: library/importlib.rst:587 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:597 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:601 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:605 msgid "No longer raises :exc:`NotImplementedError` when called." msgstr "" -#: library/importlib.rst:606 +#: library/importlib.rst:610 msgid "Concrete implementation of :meth:`InspectLoader.get_code`." msgstr "" -#: library/importlib.rst:610 +#: library/importlib.rst:614 msgid "Concrete implementation of :meth:`Loader.exec_module`." msgstr "" -#: library/importlib.rst:616 +#: library/importlib.rst:620 msgid "Concrete implementation of :meth:`Loader.load_module`." msgstr "" -#: library/importlib.rst:618 +#: library/importlib.rst:622 msgid "Use :meth:`exec_module` instead." msgstr "" -#: library/importlib.rst:623 +#: library/importlib.rst:627 msgid "Concrete implementation of :meth:`InspectLoader.get_source`." msgstr "" -#: library/importlib.rst:627 +#: library/importlib.rst:631 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 +846,12 @@ msgid "" "``__init__``." msgstr "" -#: library/importlib.rst:638 +#: library/importlib.rst:642 msgid "" "An :term:`abstract base class` to provide the ability to read *resources*." msgstr "" -#: library/importlib.rst:641 +#: library/importlib.rst:645 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 +861,7 @@ msgid "" "file versus on the file system." msgstr "" -#: library/importlib.rst:649 +#: library/importlib.rst:653 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 +873,7 @@ msgid "" "potentially representing multiple packages or a module)." msgstr "" -#: library/importlib.rst:660 +#: library/importlib.rst:664 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 +882,37 @@ msgid "" "with this ABC should only be returned when the specified module is a package." msgstr "" -#: library/importlib.rst:789 +#: library/importlib.rst:793 msgid "Use :class:`importlib.resources.abc.TraversableResources` instead." msgstr "" -#: library/importlib.rst:675 +#: library/importlib.rst:679 msgid "" "Returns an opened, :term:`file-like object` for binary reading of the " "*resource*." msgstr "" -#: library/importlib.rst:678 +#: library/importlib.rst:682 msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised." msgstr "" -#: library/importlib.rst:684 +#: library/importlib.rst:688 msgid "Returns the file system path to the *resource*." msgstr "" -#: library/importlib.rst:686 +#: library/importlib.rst:690 msgid "" "If the resource does not concretely exist on the file system, raise :exc:" "`FileNotFoundError`." msgstr "" -#: library/importlib.rst:692 +#: library/importlib.rst:696 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:702 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 +920,7 @@ msgid "" "`is_resource` would be false." msgstr "" -#: library/importlib.rst:704 +#: library/importlib.rst:708 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 +929,71 @@ msgid "" "stored on the file system then those subdirectory names can be used directly." msgstr "" -#: library/importlib.rst:712 +#: library/importlib.rst:716 msgid "The abstract method returns an iterable of no items." msgstr "" -#: library/importlib.rst:717 +#: library/importlib.rst:721 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:724 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:729 msgid "Use :class:`importlib.resources.abc.Traversable` instead." msgstr "" -#: library/importlib.rst:730 +#: library/importlib.rst:734 msgid "Abstract. The base name of this object without any parent references." msgstr "" -#: library/importlib.rst:735 +#: library/importlib.rst:739 msgid "Yield ``Traversable`` objects in ``self``." msgstr "" -#: library/importlib.rst:740 +#: library/importlib.rst:744 msgid "Return ``True`` if ``self`` is a directory." msgstr "" -#: library/importlib.rst:745 +#: library/importlib.rst:749 msgid "Return ``True`` if ``self`` is a file." msgstr "" -#: library/importlib.rst:750 +#: library/importlib.rst:754 msgid "Return Traversable child in ``self``." msgstr "" -#: library/importlib.rst:755 +#: library/importlib.rst:759 msgid "Return ``Traversable`` child in ``self``." msgstr "" -#: library/importlib.rst:760 +#: library/importlib.rst:764 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:767 msgid "" "When opening as text, accepts encoding parameters such as those accepted by :" "class:`io.TextIOWrapper`." msgstr "" -#: library/importlib.rst:768 +#: library/importlib.rst:772 msgid "Read contents of ``self`` as bytes." msgstr "" -#: library/importlib.rst:772 +#: library/importlib.rst:776 msgid "Read contents of ``self`` as text." msgstr "" -#: library/importlib.rst:777 +#: library/importlib.rst:781 msgid "" "An abstract base class for resource readers capable of serving the :meth:" "`importlib.resources.files` interface. Subclasses :class:`importlib." @@ -996,71 +1003,71 @@ msgid "" "also supplies ResourceReader." msgstr "" -#: library/importlib.rst:784 +#: library/importlib.rst:788 msgid "" "Loaders that wish to support resource reading are expected to implement this " "interface." msgstr "" -#: library/importlib.rst:795 +#: library/importlib.rst:799 msgid "" "Returns a :class:`importlib.resources.abc.Traversable` object for the loaded " "package." msgstr "" -#: library/importlib.rst:801 +#: library/importlib.rst:805 msgid ":mod:`importlib.machinery` -- Importers and path hooks" msgstr "" -#: library/importlib.rst:806 +#: library/importlib.rst:810 msgid "**Source code:** :source:`Lib/importlib/machinery.py`" msgstr "" -#: library/importlib.rst:810 +#: library/importlib.rst:814 msgid "" "This module contains the various objects that help :keyword:`import` find " "and load modules." msgstr "" -#: library/importlib.rst:815 +#: library/importlib.rst:819 msgid "" "A list of strings representing the recognized file suffixes for source " "modules." msgstr "" -#: library/importlib.rst:822 +#: library/importlib.rst:826 msgid "" "A list of strings representing the file suffixes for non-optimized bytecode " "modules." msgstr "" -#: library/importlib.rst:837 +#: library/importlib.rst:841 msgid "Use :const:`BYTECODE_SUFFIXES` instead." msgstr "" -#: library/importlib.rst:832 +#: library/importlib.rst:836 msgid "" "A list of strings representing the file suffixes for optimized bytecode " "modules." msgstr "" -#: library/importlib.rst:842 +#: library/importlib.rst:846 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:851 msgid "The value is no longer dependent on ``__debug__``." msgstr "" -#: library/importlib.rst:852 +#: library/importlib.rst:856 msgid "" "A list of strings representing the recognized file suffixes for extension " "modules." msgstr "" -#: library/importlib.rst:859 +#: library/importlib.rst:863 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 +1076,56 @@ msgid "" "`inspect.getmodulename`)." msgstr "" -#: library/importlib.rst:870 +#: library/importlib.rst:874 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:893 library/importlib.rst:921 msgid "" "Only class methods are defined by this class to alleviate the need for " "instantiation." msgstr "" -#: library/importlib.rst:878 +#: library/importlib.rst:882 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:889 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:896 msgid "" "Gained :meth:`~Loader.create_module` and :meth:`~Loader.exec_module` methods." msgstr "" -#: library/importlib.rst:899 +#: library/importlib.rst:903 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:911 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:918 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:926 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 +1139,43 @@ msgid "" "cache and returned." msgstr "" -#: library/importlib.rst:936 +#: library/importlib.rst:940 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:947 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:952 msgid "Entries of ``None`` in :data:`sys.path_importer_cache` are deleted." msgstr "" -#: library/importlib.rst:951 +#: library/importlib.rst:955 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:962 msgid "" "A concrete implementation of :class:`importlib.abc.PathEntryFinder` which " "caches results from the file system." msgstr "" -#: library/importlib.rst:961 +#: library/importlib.rst:965 msgid "" "The *path* argument is the directory for which the finder is in charge of " "searching." msgstr "" -#: library/importlib.rst:964 +#: library/importlib.rst:968 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 +1183,7 @@ msgid "" "module's name and the path to the file found." msgstr "" -#: library/importlib.rst:969 +#: library/importlib.rst:973 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 +1196,166 @@ msgid "" "to call :func:`importlib.invalidate_caches`." msgstr "" -#: library/importlib.rst:983 +#: library/importlib.rst:987 msgid "The path the finder will search in." msgstr "" -#: library/importlib.rst:987 +#: library/importlib.rst:991 msgid "Attempt to find the spec to handle *fullname* within :attr:`path`." msgstr "" -#: library/importlib.rst:993 +#: library/importlib.rst:997 msgid "Clear out the internal cache." msgstr "" -#: library/importlib.rst:997 +#: library/importlib.rst:1001 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:1006 msgid "" "If the argument to the closure is not an existing directory, :exc:" "`ImportError` is raised." msgstr "" -#: library/importlib.rst:1008 +#: library/importlib.rst:1012 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:1020 msgid "The name of the module that this loader will handle." msgstr "" -#: library/importlib.rst:1020 +#: library/importlib.rst:1024 msgid "The path to the source file." msgstr "" -#: library/importlib.rst:1024 +#: library/importlib.rst:1028 msgid "Return ``True`` if :attr:`path` appears to be for a package." msgstr "" -#: library/importlib.rst:1028 +#: library/importlib.rst:1032 msgid "" "Concrete implementation of :meth:`importlib.abc.SourceLoader.path_stats`." msgstr "" -#: library/importlib.rst:1032 +#: library/importlib.rst:1036 msgid "Concrete implementation of :meth:`importlib.abc.SourceLoader.set_data`." msgstr "" -#: library/importlib.rst:1079 +#: library/importlib.rst:1083 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:1088 msgid "Use :meth:`importlib.abc.Loader.exec_module` instead." msgstr "" -#: library/importlib.rst:1046 +#: library/importlib.rst:1050 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:1053 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:1062 msgid "The name of the module the loader will handle." msgstr "" -#: library/importlib.rst:1062 +#: library/importlib.rst:1066 msgid "The path to the bytecode file." msgstr "" -#: library/importlib.rst:1066 +#: library/importlib.rst:1070 msgid "Determines if the module is a package based on :attr:`path`." msgstr "" -#: library/importlib.rst:1070 +#: library/importlib.rst:1074 msgid "Returns the code object for :attr:`name` created from :attr:`path`." msgstr "" -#: library/importlib.rst:1074 +#: library/importlib.rst:1078 msgid "" "Returns ``None`` as bytecode files have no source when this loader is used." msgstr "" -#: library/importlib.rst:1089 +#: library/importlib.rst:1093 msgid "" "A concrete implementation of :class:`importlib.abc.ExecutionLoader` for " "extension modules." msgstr "" -#: library/importlib.rst:1092 +#: library/importlib.rst:1096 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:1099 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:1105 msgid "Multi-phase init is now required for use in subinterpreters." msgstr "" -#: library/importlib.rst:1292 +#: library/importlib.rst:1296 msgid "Name of the module the loader supports." msgstr "" -#: library/importlib.rst:1110 +#: library/importlib.rst:1114 msgid "Path to the extension module." msgstr "" -#: library/importlib.rst:1114 +#: library/importlib.rst:1118 msgid "" "Creates the module object from the given specification in accordance with :" "pep:`489`." msgstr "" -#: library/importlib.rst:1121 +#: library/importlib.rst:1125 msgid "Initializes the given module object in accordance with :pep:`489`." msgstr "" -#: library/importlib.rst:1127 +#: library/importlib.rst:1131 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:1136 msgid "Returns ``None`` as extension modules lack a code object." msgstr "" -#: library/importlib.rst:1136 +#: library/importlib.rst:1140 msgid "Returns ``None`` as extension modules do not have source code." msgstr "" -#: library/importlib.rst:1147 +#: library/importlib.rst:1151 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:1156 msgid "" ">>> from importlib.machinery import NamespaceLoader\n" ">>> import my_namespace\n" @@ -1359,7 +1366,7 @@ msgid "" "True" msgstr "" -#: library/importlib.rst:1165 +#: library/importlib.rst:1169 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 +1379,19 @@ msgid "" "origin>`, and vice versa." msgstr "" -#: library/importlib.rst:1179 +#: library/importlib.rst:1183 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:1188 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:1193 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 +1400,14 @@ msgid "" "there is not one (like for namespace packages), it should be set to ``None``." msgstr "" -#: library/importlib.rst:1198 +#: library/importlib.rst:1202 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:1207 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 +1415,41 @@ msgid "" "later to a special object for namespace packages." msgstr "" -#: library/importlib.rst:1211 +#: library/importlib.rst:1215 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:1221 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:1228 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:1235 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:1242 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:1245 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 +1458,13 @@ msgid "" "material outside the Frameworks folder." msgstr "" -#: library/importlib.rst:1247 +#: library/importlib.rst:1251 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 +1472,7 @@ msgid "" "fwork`` file, relative to the app bundle." msgstr "" -#: library/importlib.rst:1258 +#: library/importlib.rst:1262 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 +1488,7 @@ msgid "" "_whiz.origin``, containing the path to the ``.fwork`` file." msgstr "" -#: library/importlib.rst:1272 +#: library/importlib.rst:1276 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 +1497,7 @@ msgid "" "in the ``.framework`` folder." msgstr "" -#: library/importlib.rst:1278 +#: library/importlib.rst:1282 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 +1508,35 @@ msgid "" "details on how to construct this build step." msgstr "" -#: library/importlib.rst:1288 +#: library/importlib.rst:1292 msgid "Availability" msgstr "" -#: library/importlib.rst:1296 +#: library/importlib.rst:1300 msgid "Path to the ``.fwork`` file for the extension module." msgstr "" -#: library/importlib.rst:1300 +#: library/importlib.rst:1304 msgid ":mod:`importlib.util` -- Utility code for importers" msgstr "" -#: library/importlib.rst:1306 +#: library/importlib.rst:1310 msgid "**Source code:** :source:`Lib/importlib/util.py`" msgstr "" -#: library/importlib.rst:1310 +#: library/importlib.rst:1314 msgid "" "This module contains the various objects that help in the construction of " "an :term:`importer`." msgstr "" -#: library/importlib.rst:1315 +#: library/importlib.rst:1319 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:1326 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 +1546,7 @@ msgid "" "`NotImplementedError` will be raised)." msgstr "" -#: library/importlib.rst:1329 +#: library/importlib.rst:1333 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 +1559,7 @@ msgid "" "be alphanumeric, else :exc:`ValueError` is raised." msgstr "" -#: library/importlib.rst:1339 +#: library/importlib.rst:1343 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 +1568,17 @@ msgid "" "are not ``None`` then :exc:`TypeError` is raised." msgstr "" -#: library/importlib.rst:1347 +#: library/importlib.rst:1351 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:1371 library/importlib.rst:1460 msgid "Accepts a :term:`path-like object`." msgstr "" -#: library/importlib.rst:1357 +#: library/importlib.rst:1361 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 +1588,25 @@ msgid "" "cache_tag` is not defined, :exc:`NotImplementedError` is raised." msgstr "" -#: library/importlib.rst:1372 +#: library/importlib.rst:1376 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:1384 msgid "Resolve a relative module name to an absolute one." msgstr "" -#: library/importlib.rst:1382 +#: library/importlib.rst:1386 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:1391 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 +1614,13 @@ msgid "" "package (e.g. requesting ``..bacon`` from within the ``spam`` package)." msgstr "" -#: library/importlib.rst:1395 +#: library/importlib.rst:1399 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:1406 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 +1630,30 @@ msgid "" "if no spec is found." msgstr "" -#: library/importlib.rst:1409 +#: library/importlib.rst:1413 msgid "" "If **name** is for a submodule (contains a dot), the parent module is " "automatically imported." msgstr "" -#: library/importlib.rst:1412 +#: library/importlib.rst:1416 msgid "**name** and **package** work the same as for :func:`import_module`." msgstr "" -#: library/importlib.rst:1416 +#: library/importlib.rst:1420 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:1427 msgid "" "Create a new module based on **spec** and :meth:`spec.loader.create_module " "`." msgstr "" -#: library/importlib.rst:1426 +#: library/importlib.rst:1430 msgid "" "If :meth:`spec.loader.create_module ` " "does not return ``None``, then any pre-existing attributes will not be " @@ -1654,14 +1661,14 @@ msgid "" "accessing **spec** or setting an attribute on the module." msgstr "" -#: library/importlib.rst:1431 +#: library/importlib.rst:1435 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:1443 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 +1677,7 @@ msgid "" "spec." msgstr "" -#: library/importlib.rst:1449 +#: library/importlib.rst:1453 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 +1685,14 @@ msgid "" "module will be file-based." msgstr "" -#: library/importlib.rst:1461 +#: library/importlib.rst:1465 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:1473 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 +1701,33 @@ msgid "" "interpreter GIL, when imported in an interpreter with its own GIL." msgstr "" -#: library/importlib.rst:1476 +#: library/importlib.rst:1480 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:1484 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:1489 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:1497 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:1500 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 +1740,7 @@ msgid "" "raised if such a substitution is detected." msgstr "" -#: library/importlib.rst:1507 +#: library/importlib.rst:1511 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 +1749,21 @@ msgid "" "postponed and thus occurring out of context." msgstr "" -#: library/importlib.rst:1515 +#: library/importlib.rst:1519 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:1526 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:1531 msgid "" "suffixes = importlib.machinery.SOURCE_SUFFIXES\n" "loader = importlib.machinery.SourceFileLoader\n" @@ -1764,43 +1771,43 @@ msgid "" "finder = importlib.machinery.FileFinder(path, (lazy_loader, suffixes))" msgstr "" -#: library/importlib.rst:1535 +#: library/importlib.rst:1539 msgid "Examples" msgstr "" -#: library/importlib.rst:1538 +#: library/importlib.rst:1542 msgid "Importing programmatically" msgstr "" -#: library/importlib.rst:1540 +#: library/importlib.rst:1544 msgid "" "To programmatically import a module, use :func:`importlib.import_module`. ::" msgstr "" -#: library/importlib.rst:1543 +#: library/importlib.rst:1547 msgid "" "import importlib\n" "\n" "itertools = importlib.import_module('itertools')" msgstr "" -#: library/importlib.rst:1549 +#: library/importlib.rst:1553 msgid "Checking if a module can be imported" msgstr "" -#: library/importlib.rst:1551 +#: library/importlib.rst:1555 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:1558 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:1562 msgid "" "import importlib.util\n" "import sys\n" @@ -1820,11 +1827,11 @@ msgid "" " print(f\"can't find the {name!r} module\")" msgstr "" -#: library/importlib.rst:1577 +#: library/importlib.rst:1581 msgid "Importing a source file directly" msgstr "" -#: library/importlib.rst:1579 +#: library/importlib.rst:1583 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 +1841,13 @@ msgid "" "file is appropriate." msgstr "" -#: library/importlib.rst:1586 +#: library/importlib.rst:1590 msgid "" "To import a Python source file directly from a path, use the following " "recipe::" msgstr "" -#: library/importlib.rst:1588 +#: library/importlib.rst:1592 msgid "" "import importlib.util\n" "import sys\n" @@ -1863,15 +1870,15 @@ msgid "" "json = import_from_path(module_name, file_path)" msgstr "" -#: library/importlib.rst:1610 +#: library/importlib.rst:1614 msgid "Implementing lazy imports" msgstr "" -#: library/importlib.rst:1612 +#: library/importlib.rst:1616 msgid "The example below shows how to implement lazy imports::" msgstr "" -#: library/importlib.rst:1614 +#: library/importlib.rst:1618 msgid "" ">>> import importlib.util\n" ">>> import sys\n" @@ -1891,11 +1898,11 @@ msgid "" "False" msgstr "" -#: library/importlib.rst:1633 +#: library/importlib.rst:1637 msgid "Setting up an importer" msgstr "" -#: library/importlib.rst:1635 +#: library/importlib.rst:1639 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 +1916,7 @@ msgid "" "for the appropriate classes defined within this package)::" msgstr "" -#: library/importlib.rst:1646 +#: library/importlib.rst:1650 msgid "" "import importlib.machinery\n" "import sys\n" @@ -1933,11 +1940,11 @@ msgid "" "sys.path_hooks.append(SpamPathEntryFinder.path_hook(loader_details))" msgstr "" -#: library/importlib.rst:1667 +#: library/importlib.rst:1671 msgid "Approximating :func:`importlib.import_module`" msgstr "" -#: library/importlib.rst:1669 +#: library/importlib.rst:1673 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 +1952,7 @@ msgid "" "approximate implementation of :func:`importlib.import_module`::" msgstr "" -#: library/importlib.rst:1675 +#: library/importlib.rst:1679 msgid "" "import importlib.util\n" "import sys\n" @@ -1978,10 +1985,10 @@ msgid "" " return module" msgstr "" -#: library/importlib.rst:425 +#: library/importlib.rst:429 msgid "universal newlines" msgstr "" -#: library/importlib.rst:425 +#: library/importlib.rst:429 msgid "importlib.abc.InspectLoader.get_source method" msgstr "" diff --git a/library/importlib.resources.abc.po b/library/importlib.resources.abc.po index b7543f57..96b7888f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 7a052c1f..6e5d6d3c 100644 --- a/library/importlib.resources.po +++ b/library/importlib.resources.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" -"PO-Revision-Date: 2025-05-06 12:58+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" "Language: \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) και τα artifacts " +"εγκατάστασης (όπως τα :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 dd0f5132..8fd4d3ab 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 42f0b4ad..ab867b4b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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:261 +#: library/inspect.rst:63 library/inspect.rst:264 msgid "__doc__" msgstr "" -#: library/inspect.rst:63 library/inspect.rst:261 +#: library/inspect.rst:63 library/inspect.rst:264 msgid "documentation string" msgstr "" -#: library/inspect.rst:65 library/inspect.rst:217 library/inspect.rst:244 -#: library/inspect.rst:263 +#: library/inspect.rst:65 library/inspect.rst:217 library/inspect.rst:247 +#: library/inspect.rst:266 msgid "__name__" msgstr "" @@ -89,13 +89,13 @@ msgstr "" msgid "name with which this class was defined" msgstr "" -#: library/inspect.rst:68 library/inspect.rst:219 library/inspect.rst:246 -#: library/inspect.rst:266 +#: library/inspect.rst:68 library/inspect.rst:219 library/inspect.rst:249 +#: library/inspect.rst:269 msgid "__qualname__" msgstr "" -#: library/inspect.rst:68 library/inspect.rst:219 library/inspect.rst:246 -#: library/inspect.rst:266 +#: library/inspect.rst:68 library/inspect.rst:219 library/inspect.rst:249 +#: library/inspect.rst:269 msgid "qualified name" msgstr "" @@ -133,7 +133,7 @@ msgstr "" msgid "function object containing implementation of method" msgstr "" -#: library/inspect.rst:268 +#: library/inspect.rst:271 msgid "__self__" msgstr "" @@ -249,7 +249,7 @@ msgstr "" msgid "next inner traceback object (called by this level)" msgstr "" -#: library/inspect.rst:221 library/inspect.rst:251 +#: library/inspect.rst:221 library/inspect.rst:254 msgid "frame" msgstr "" @@ -309,7 +309,7 @@ msgstr "" msgid "tracing function for this frame, or ``None``" msgstr "" -#: library/inspect.rst:225 library/inspect.rst:255 +#: library/inspect.rst:228 library/inspect.rst:258 msgid "code" msgstr "" @@ -456,7 +456,7 @@ msgstr "" msgid "generator" msgstr "" -#: library/inspect.rst:231 library/inspect.rst:244 +#: library/inspect.rst:234 library/inspect.rst:247 msgid "name" msgstr "" @@ -468,109 +468,117 @@ msgstr "" msgid "gi_running" msgstr "" -#: library/inspect.rst:240 +#: library/inspect.rst:243 msgid "is the generator running?" msgstr "" #: library/inspect.rst:225 +msgid "gi_suspended" +msgstr "" + +#: library/inspect.rst:225 +msgid "is the generator suspended?" +msgstr "" + +#: library/inspect.rst:228 msgid "gi_code" msgstr "" -#: library/inspect.rst:227 +#: library/inspect.rst:230 msgid "gi_yieldfrom" msgstr "" -#: library/inspect.rst:227 +#: library/inspect.rst:230 msgid "object being iterated by ``yield from``, or ``None``" msgstr "" -#: library/inspect.rst:231 +#: library/inspect.rst:234 msgid "async generator" msgstr "" -#: library/inspect.rst:235 +#: library/inspect.rst:238 msgid "ag_await" msgstr "" -#: library/inspect.rst:248 +#: library/inspect.rst:251 msgid "object being awaited on, or ``None``" msgstr "" -#: library/inspect.rst:238 +#: library/inspect.rst:241 msgid "ag_frame" msgstr "" -#: library/inspect.rst:240 +#: library/inspect.rst:243 msgid "ag_running" msgstr "" -#: library/inspect.rst:242 +#: library/inspect.rst:245 msgid "ag_code" msgstr "" -#: library/inspect.rst:244 +#: library/inspect.rst:247 msgid "coroutine" msgstr "" -#: library/inspect.rst:248 +#: library/inspect.rst:251 msgid "cr_await" msgstr "" -#: library/inspect.rst:251 +#: library/inspect.rst:254 msgid "cr_frame" msgstr "" -#: library/inspect.rst:253 +#: library/inspect.rst:256 msgid "cr_running" msgstr "" -#: library/inspect.rst:253 +#: library/inspect.rst:256 msgid "is the coroutine running?" msgstr "" -#: library/inspect.rst:255 +#: library/inspect.rst:258 msgid "cr_code" msgstr "" -#: library/inspect.rst:257 +#: library/inspect.rst:260 msgid "cr_origin" msgstr "" -#: library/inspect.rst:257 +#: library/inspect.rst:260 msgid "where coroutine was created, or ``None``. See |coroutine-origin-link|" msgstr "" -#: library/inspect.rst:261 +#: library/inspect.rst:264 msgid "builtin" msgstr "" -#: library/inspect.rst:263 +#: library/inspect.rst:266 msgid "original name of this function or method" msgstr "" -#: library/inspect.rst:268 +#: library/inspect.rst:271 msgid "instance to which a method is bound, or ``None``" msgstr "" -#: library/inspect.rst:275 +#: library/inspect.rst:278 msgid "Add ``__qualname__`` and ``gi_yieldfrom`` attributes to generators." msgstr "" -#: library/inspect.rst:277 +#: library/inspect.rst:280 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:282 +#: library/inspect.rst:285 msgid "Add ``cr_origin`` attribute to coroutines." msgstr "" -#: library/inspect.rst:286 +#: library/inspect.rst:289 msgid "Add ``__builtins__`` attribute to functions." msgstr "" -#: library/inspect.rst:290 +#: library/inspect.rst:293 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 " @@ -578,14 +586,14 @@ msgid "" "the predicate returns a true value are included." msgstr "" -#: library/inspect.rst:297 +#: library/inspect.rst:300 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:304 +#: library/inspect.rst:307 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 " @@ -593,7 +601,7 @@ msgid "" "that satisfy a given predicate." msgstr "" -#: library/inspect.rst:311 +#: library/inspect.rst:314 msgid "" ":func:`getmembers_static` may not be able to retrieve all members that " "getmembers can fetch (like dynamically created attributes) and may find " @@ -602,7 +610,7 @@ msgid "" "cases." msgstr "" -#: library/inspect.rst:322 +#: library/inspect.rst:325 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 " @@ -611,58 +619,58 @@ msgid "" "``None`` is returned." msgstr "" -#: library/inspect.rst:328 +#: library/inspect.rst:331 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:332 +#: library/inspect.rst:335 msgid "The function is based directly on :mod:`importlib`." msgstr "" -#: library/inspect.rst:338 +#: library/inspect.rst:341 msgid "Return ``True`` if the object is a module." msgstr "" -#: library/inspect.rst:343 +#: library/inspect.rst:346 msgid "" "Return ``True`` if the object is a class, whether built-in or created in " "Python code." msgstr "" -#: library/inspect.rst:349 +#: library/inspect.rst:352 msgid "Return ``True`` if the object is a bound method written in Python." msgstr "" -#: library/inspect.rst:354 +#: library/inspect.rst:357 msgid "" "Return ``True`` if the object is a Python function, which includes functions " "created by a :term:`lambda` expression." msgstr "" -#: library/inspect.rst:360 +#: library/inspect.rst:363 msgid "Return ``True`` if the object is a Python generator function." msgstr "" -#: library/inspect.rst:362 +#: library/inspect.rst:365 msgid "" "Functions wrapped in :func:`functools.partial` now return ``True`` if the " "wrapped function is a Python generator function." msgstr "" -#: library/inspect.rst:366 +#: library/inspect.rst:369 msgid "" "Functions wrapped in :func:`functools.partialmethod` now return ``True`` if " "the wrapped function is a Python generator function." msgstr "" -#: library/inspect.rst:372 +#: library/inspect.rst:375 msgid "Return ``True`` if the object is a generator." msgstr "" -#: library/inspect.rst:377 +#: library/inspect.rst:380 msgid "" "Return ``True`` if the object is a :term:`coroutine function` (a function " "defined with an :keyword:`async def` syntax), a :func:`functools.partial` " @@ -670,60 +678,60 @@ msgid "" "`markcoroutinefunction`." msgstr "" -#: library/inspect.rst:384 +#: library/inspect.rst:387 msgid "" "Functions wrapped in :func:`functools.partial` now return ``True`` if the " "wrapped function is a :term:`coroutine function`." msgstr "" -#: library/inspect.rst:388 +#: library/inspect.rst:391 msgid "" "Sync functions marked with :func:`markcoroutinefunction` now return ``True``." msgstr "" -#: library/inspect.rst:462 +#: library/inspect.rst:465 msgid "" "Functions wrapped in :func:`functools.partialmethod` now return ``True`` if " "the wrapped function is a :term:`coroutine function`." msgstr "" -#: library/inspect.rst:399 +#: library/inspect.rst:402 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:402 +#: library/inspect.rst:405 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:405 +#: library/inspect.rst:408 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:414 +#: library/inspect.rst:417 msgid "" "Return ``True`` if the object is a :term:`coroutine` created by an :keyword:" "`async def` function." msgstr "" -#: library/inspect.rst:422 +#: library/inspect.rst:425 msgid "" "Return ``True`` if the object can be used in :keyword:`await` expression." msgstr "" -#: library/inspect.rst:424 +#: library/inspect.rst:427 msgid "" "Can also be used to distinguish generator-based coroutines from regular " "generators:" msgstr "" -#: library/inspect.rst:427 +#: library/inspect.rst:430 msgid "" "import types\n" "\n" @@ -737,13 +745,13 @@ msgid "" "assert isawaitable(gen_coro())" msgstr "" -#: library/inspect.rst:445 +#: library/inspect.rst:448 msgid "" "Return ``True`` if the object is an :term:`asynchronous generator` function, " "for example:" msgstr "" -#: library/inspect.rst:448 +#: library/inspect.rst:451 msgid "" ">>> async def agen():\n" "... yield 1\n" @@ -752,65 +760,65 @@ msgid "" "True" msgstr "" -#: library/inspect.rst:458 +#: library/inspect.rst:461 msgid "" "Functions wrapped in :func:`functools.partial` now return ``True`` if the " "wrapped function is an :term:`asynchronous generator` function." msgstr "" -#: library/inspect.rst:468 +#: library/inspect.rst:471 msgid "" "Return ``True`` if the object is an :term:`asynchronous generator iterator` " "created by an :term:`asynchronous generator` function." msgstr "" -#: library/inspect.rst:475 +#: library/inspect.rst:478 msgid "Return ``True`` if the object is a traceback." msgstr "" -#: library/inspect.rst:480 +#: library/inspect.rst:483 msgid "Return ``True`` if the object is a frame." msgstr "" -#: library/inspect.rst:485 +#: library/inspect.rst:488 msgid "Return ``True`` if the object is a code." msgstr "" -#: library/inspect.rst:490 +#: library/inspect.rst:493 msgid "" "Return ``True`` if the object is a built-in function or a bound built-in " "method." msgstr "" -#: library/inspect.rst:495 +#: library/inspect.rst:498 msgid "" "Return ``True`` if the type of object is a :class:`~types.MethodWrapperType`." msgstr "" -#: library/inspect.rst:497 +#: library/inspect.rst:500 msgid "" "These are instances of :class:`~types.MethodWrapperType`, such as :meth:" "`~object.__str__`, :meth:`~object.__eq__` and :meth:`~object.__repr__`." msgstr "" -#: library/inspect.rst:505 +#: library/inspect.rst:508 msgid "" "Return ``True`` if the object is a user-defined or built-in function or " "method." msgstr "" -#: library/inspect.rst:510 +#: library/inspect.rst:513 msgid "Return ``True`` if the object is an abstract base class." msgstr "" -#: library/inspect.rst:515 +#: library/inspect.rst:518 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:519 +#: library/inspect.rst:522 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__` " @@ -819,7 +827,7 @@ msgid "" "sensible, and :attr:`~definition.__doc__` often is." msgstr "" -#: library/inspect.rst:525 +#: library/inspect.rst:528 msgid "" "Methods implemented via descriptors that also pass one of the other tests " "return ``False`` from the :func:`ismethoddescriptor` test, simply because " @@ -827,7 +835,7 @@ msgid "" "`~method.__func__` attribute (etc) when an object passes :func:`ismethod`." msgstr "" -#: library/inspect.rst:531 +#: library/inspect.rst:534 msgid "" "This function no longer incorrectly reports objects with :meth:`~object." "__get__` and :meth:`~object.__delete__`, but not :meth:`~object.__set__`, as " @@ -835,11 +843,11 @@ msgid "" "descriptors)." msgstr "" -#: library/inspect.rst:539 +#: library/inspect.rst:542 msgid "Return ``True`` if the object is a data descriptor." msgstr "" -#: library/inspect.rst:541 +#: library/inspect.rst:544 msgid "" "Data descriptors have a :attr:`~object.__set__` or a :attr:`~object." "__delete__` method. Examples are properties (defined in Python), getsets, " @@ -850,33 +858,33 @@ msgid "" "and members have both of these attributes), but this is not guaranteed." msgstr "" -#: library/inspect.rst:552 +#: library/inspect.rst:555 msgid "Return ``True`` if the object is a getset descriptor." msgstr "" -#: library/inspect.rst:556 +#: library/inspect.rst:559 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:563 +#: library/inspect.rst:566 msgid "Return ``True`` if the object is a member descriptor." msgstr "" -#: library/inspect.rst:567 +#: library/inspect.rst:570 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:575 +#: library/inspect.rst:578 msgid "Retrieving source code" msgstr "" -#: library/inspect.rst:579 +#: library/inspect.rst:582 msgid "" "Get the documentation string for an object, cleaned up with :func:" "`cleandoc`. If the documentation string for an object is not provided and " @@ -885,11 +893,11 @@ msgid "" "documentation string is invalid or missing." msgstr "" -#: library/inspect.rst:585 +#: library/inspect.rst:588 msgid "Documentation strings are now inherited if not overridden." msgstr "" -#: library/inspect.rst:591 +#: library/inspect.rst:594 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 " @@ -898,27 +906,27 @@ msgid "" "been defined in C or the interactive shell." msgstr "" -#: library/inspect.rst:600 +#: library/inspect.rst:603 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:607 +#: library/inspect.rst:610 msgid "" "Try to guess which module an object was defined in. Return ``None`` if the " "module cannot be determined." msgstr "" -#: library/inspect.rst:613 +#: library/inspect.rst:616 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:621 +#: library/inspect.rst:624 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 " @@ -929,13 +937,13 @@ msgid "" "built-in module, class, or function." msgstr "" -#: library/inspect.rst:644 +#: library/inspect.rst:647 msgid "" ":exc:`OSError` is raised instead of :exc:`IOError`, now an alias of the " "former." msgstr "" -#: library/inspect.rst:637 +#: library/inspect.rst:640 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 " @@ -944,13 +952,13 @@ msgid "" "object is a built-in module, class, or function." msgstr "" -#: library/inspect.rst:651 +#: library/inspect.rst:654 msgid "" "Clean up indentation from docstrings that are indented to line up with " "blocks of code." msgstr "" -#: library/inspect.rst:654 +#: library/inspect.rst:657 msgid "" "All leading whitespace is removed from the first line. Any leading " "whitespace that can be uniformly removed from the second line onwards is " @@ -958,22 +966,22 @@ msgid "" "Also, all tabs are expanded to spaces." msgstr "" -#: library/inspect.rst:663 +#: library/inspect.rst:666 msgid "Introspecting callables with the Signature object" msgstr "" -#: library/inspect.rst:667 +#: library/inspect.rst:670 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:674 +#: library/inspect.rst:677 msgid "Return a :class:`Signature` object for the given *callable*:" msgstr "" -#: library/inspect.rst:676 +#: library/inspect.rst:679 msgid "" ">>> from inspect import signature\n" ">>> def foo(a, *, b:int, **kwargs):\n" @@ -991,13 +999,13 @@ msgid "" "" msgstr "" -#: library/inspect.rst:693 +#: library/inspect.rst:696 msgid "" "Accepts a wide range of Python callables, from plain functions and classes " "to :func:`functools.partial` objects." msgstr "" -#: library/inspect.rst:696 +#: library/inspect.rst:699 msgid "" "For objects defined in modules using stringized annotations (``from " "__future__ import annotations``), :func:`signature` will attempt to " @@ -1007,7 +1015,7 @@ msgid "" "func:`get_annotations` for instructions on how to use these parameters." msgstr "" -#: library/inspect.rst:705 +#: library/inspect.rst:708 msgid "" "Raises :exc:`ValueError` if no signature can be provided, and :exc:" "`TypeError` if that type of object is not supported. Also, if the " @@ -1016,32 +1024,32 @@ msgid "" "potentially raise any kind of exception." msgstr "" -#: library/inspect.rst:711 +#: library/inspect.rst:714 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:715 +#: library/inspect.rst:718 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:845 +#: library/inspect.rst:848 msgid "The *globals*, *locals*, and *eval_str* parameters were added." msgstr "" -#: library/inspect.rst:726 +#: library/inspect.rst:729 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:732 +#: library/inspect.rst:735 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 " @@ -1049,14 +1057,14 @@ msgid "" "semantics." msgstr "" -#: library/inspect.rst:740 +#: library/inspect.rst:743 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:745 +#: library/inspect.rst:748 msgid "" "The optional *parameters* argument is a sequence of :class:`Parameter` " "objects, which is validated to check that there are no parameters with " @@ -1065,54 +1073,54 @@ msgid "" "defaults follow parameters without defaults." msgstr "" -#: library/inspect.rst:751 +#: library/inspect.rst:754 msgid "" "The optional *return_annotation* argument can be an arbitrary Python object. " "It represents the \"return\" annotation of the callable." msgstr "" -#: library/inspect.rst:754 +#: library/inspect.rst:757 msgid "" ":class:`!Signature` objects are *immutable*. Use :meth:`Signature.replace` " "or :func:`copy.replace` to make a modified copy." msgstr "" -#: library/inspect.rst:757 +#: library/inspect.rst:760 msgid ":class:`!Signature` objects are now picklable and :term:`hashable`." msgstr "" -#: library/inspect.rst:762 +#: library/inspect.rst:765 msgid "A special class-level marker to specify absence of a return annotation." msgstr "" -#: library/inspect.rst:766 +#: library/inspect.rst:769 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:1125 +#: library/inspect.rst:1128 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:777 +#: library/inspect.rst:780 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:782 +#: library/inspect.rst:785 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:788 +#: library/inspect.rst:791 msgid "" "Works the same way as :meth:`Signature.bind`, but allows the omission of " "some required arguments (mimics :func:`functools.partial` behavior.) " @@ -1120,7 +1128,7 @@ msgid "" "arguments do not match the signature." msgstr "" -#: library/inspect.rst:795 +#: library/inspect.rst:798 msgid "" "Create a new :class:`Signature` instance based on the instance :meth:" "`replace` was invoked on. It is possible to pass different *parameters* and/" @@ -1129,7 +1137,7 @@ msgid "" "Signature`, pass in :attr:`Signature.empty`." msgstr "" -#: library/inspect.rst:803 +#: library/inspect.rst:806 msgid "" ">>> def test(a, b):\n" "... pass\n" @@ -1140,34 +1148,34 @@ msgid "" "\"(a, b) -> 'new return anno'\"" msgstr "" -#: library/inspect.rst:813 +#: library/inspect.rst:816 msgid "" ":class:`Signature` objects are also supported by the generic function :func:" "`copy.replace`." msgstr "" -#: library/inspect.rst:818 +#: library/inspect.rst:821 msgid "Create a string representation of the :class:`Signature` object." msgstr "" -#: library/inspect.rst:820 +#: library/inspect.rst:823 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:829 +#: library/inspect.rst:832 msgid "" "Return a :class:`Signature` (or its subclass) object for a given callable " "*obj*." msgstr "" -#: library/inspect.rst:832 +#: library/inspect.rst:835 msgid "This method simplifies subclassing of :class:`Signature`:" msgstr "" -#: library/inspect.rst:834 +#: library/inspect.rst:837 msgid "" "class MySignature(Signature):\n" " pass\n" @@ -1175,129 +1183,129 @@ msgid "" "assert isinstance(sig, MySignature)" msgstr "" -#: library/inspect.rst:841 +#: library/inspect.rst:844 msgid "Its behavior is otherwise identical to that of :func:`signature`." msgstr "" -#: library/inspect.rst:851 +#: library/inspect.rst:854 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:855 +#: library/inspect.rst:858 msgid "Parameter objects are now picklable and :term:`hashable`." msgstr "" -#: library/inspect.rst:860 +#: library/inspect.rst:863 msgid "" "A special class-level marker to specify absence of default values and " "annotations." msgstr "" -#: library/inspect.rst:865 +#: library/inspect.rst:868 msgid "" "The name of the parameter as a string. The name must be a valid Python " "identifier." msgstr "" -#: library/inspect.rst:870 +#: library/inspect.rst:873 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:874 +#: library/inspect.rst:877 msgid "" "These parameter names are now exposed by this module as names like " "``implicit0``." msgstr "" -#: library/inspect.rst:880 +#: library/inspect.rst:883 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:885 +#: library/inspect.rst:888 msgid "" "The annotation for the parameter. If the parameter has no annotation, this " "attribute is set to :attr:`Parameter.empty`." msgstr "" -#: library/inspect.rst:890 +#: library/inspect.rst:893 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:897 +#: library/inspect.rst:900 msgid "Name" msgstr "" -#: library/inspect.rst:897 +#: library/inspect.rst:900 msgid "Meaning" msgstr "" -#: library/inspect.rst:899 +#: library/inspect.rst:902 msgid "*POSITIONAL_ONLY*" msgstr "" -#: library/inspect.rst:899 +#: library/inspect.rst:902 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:904 +#: library/inspect.rst:907 msgid "*POSITIONAL_OR_KEYWORD*" msgstr "" -#: library/inspect.rst:904 +#: library/inspect.rst:907 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:909 +#: library/inspect.rst:912 msgid "*VAR_POSITIONAL*" msgstr "" -#: library/inspect.rst:909 +#: library/inspect.rst:912 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:914 +#: library/inspect.rst:917 msgid "*KEYWORD_ONLY*" msgstr "" -#: library/inspect.rst:914 +#: library/inspect.rst:917 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:919 +#: library/inspect.rst:922 msgid "*VAR_KEYWORD*" msgstr "" -#: library/inspect.rst:919 +#: library/inspect.rst:922 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:925 +#: library/inspect.rst:928 msgid "Example: print all keyword-only arguments without default values:" msgstr "" -#: library/inspect.rst:927 +#: library/inspect.rst:930 msgid "" ">>> def foo(a, b, *, c, d=10):\n" "... pass\n" @@ -1310,15 +1318,15 @@ msgid "" "Parameter: c" msgstr "" -#: library/inspect.rst:941 +#: library/inspect.rst:944 msgid "Describes an enum value of :attr:`Parameter.kind`." msgstr "" -#: library/inspect.rst:945 +#: library/inspect.rst:948 msgid "Example: print all descriptions of arguments:" msgstr "" -#: library/inspect.rst:947 +#: library/inspect.rst:950 msgid "" ">>> def foo(a, b, *, c, d=10):\n" "... pass\n" @@ -1332,7 +1340,7 @@ msgid "" "keyword-only" msgstr "" -#: library/inspect.rst:962 +#: library/inspect.rst:965 msgid "" "Create a new :class:`Parameter` instance based on the instance replaced was " "invoked on. To override a :class:`!Parameter` attribute, pass the " @@ -1340,7 +1348,7 @@ msgid "" "a :class:`!Parameter`, pass :attr:`Parameter.empty`." msgstr "" -#: library/inspect.rst:967 +#: library/inspect.rst:970 msgid "" ">>> from inspect import Parameter\n" ">>> param = Parameter('foo', Parameter.KEYWORD_ONLY, default=42)\n" @@ -1354,83 +1362,83 @@ msgid "" "\"foo: 'spam'\"" msgstr "" -#: library/inspect.rst:980 +#: library/inspect.rst:983 msgid "" ":class:`Parameter` objects are also supported by the generic function :func:" "`copy.replace`." msgstr "" -#: library/inspect.rst:983 +#: library/inspect.rst:986 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:990 +#: library/inspect.rst:993 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:995 +#: library/inspect.rst:998 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:999 +#: library/inspect.rst:1002 msgid "" "Should be used in conjunction with :attr:`Signature.parameters` for any " "argument processing purposes." msgstr "" -#: library/inspect.rst:1004 +#: library/inspect.rst:1007 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:1009 +#: library/inspect.rst:1012 msgid "" ":attr:`arguments` is now of type :class:`dict`. Formerly, it was of type :" "class:`collections.OrderedDict`." msgstr "" -#: library/inspect.rst:1015 +#: library/inspect.rst:1018 msgid "" "A tuple of positional arguments values. Dynamically computed from the :attr:" "`arguments` attribute." msgstr "" -#: library/inspect.rst:1020 +#: library/inspect.rst:1023 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:1026 +#: library/inspect.rst:1029 msgid "A reference to the parent :class:`Signature` object." msgstr "" -#: library/inspect.rst:1030 +#: library/inspect.rst:1033 msgid "Set default values for missing arguments." msgstr "" -#: library/inspect.rst:1032 +#: library/inspect.rst:1035 msgid "" "For variable-positional arguments (``*args``) the default is an empty tuple." msgstr "" -#: library/inspect.rst:1035 +#: library/inspect.rst:1038 msgid "" "For variable-keyword arguments (``**kwargs``) the default is an empty dict." msgstr "" -#: library/inspect.rst:1038 +#: library/inspect.rst:1041 msgid "" ">>> def foo(a, b='ham', *args): pass\n" ">>> ba = inspect.signature(foo).bind('spam')\n" @@ -1439,13 +1447,13 @@ msgid "" "{'a': 'spam', 'b': 'ham', 'args': ()}" msgstr "" -#: library/inspect.rst:1048 +#: library/inspect.rst:1051 msgid "" "The :attr:`args` and :attr:`kwargs` properties can be used to invoke " "functions:" msgstr "" -#: library/inspect.rst:1051 +#: library/inspect.rst:1054 msgid "" "def test(a, *, b):\n" " ...\n" @@ -1455,19 +1463,19 @@ msgid "" "test(*ba.args, **ba.kwargs)" msgstr "" -#: library/inspect.rst:1063 +#: library/inspect.rst:1066 msgid ":pep:`362` - Function Signature Object." msgstr "" -#: library/inspect.rst:1064 +#: library/inspect.rst:1067 msgid "The detailed specification, implementation details and examples." msgstr "" -#: library/inspect.rst:1070 +#: library/inspect.rst:1073 msgid "Classes and functions" msgstr "" -#: library/inspect.rst:1074 +#: library/inspect.rst:1077 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 " @@ -1478,19 +1486,19 @@ msgid "" "will appear multiple times." msgstr "" -#: library/inspect.rst:1085 +#: library/inspect.rst:1088 msgid "" "Get the names and default values of a Python function's parameters. A :term:" "`named tuple` is returned:" msgstr "" -#: library/inspect.rst:1088 +#: library/inspect.rst:1091 msgid "" "``FullArgSpec(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, " "annotations)``" msgstr "" -#: library/inspect.rst:1091 +#: library/inspect.rst:1094 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 " @@ -1505,7 +1513,7 @@ msgid "" "report the function return value annotation (if any)." msgstr "" -#: library/inspect.rst:1106 +#: library/inspect.rst:1109 msgid "" "Note that :func:`signature` and :ref:`Signature Object ` provide the recommended API for callable introspection, and support " @@ -1515,14 +1523,14 @@ msgid "" "``inspect`` module API." msgstr "" -#: library/inspect.rst:1113 +#: library/inspect.rst:1116 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:1118 +#: library/inspect.rst:1121 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 " @@ -1530,7 +1538,7 @@ msgid "" "code migrating away from the legacy :func:`getargspec` API." msgstr "" -#: library/inspect.rst:1133 +#: library/inspect.rst:1136 msgid "" "Get information about arguments passed into a particular frame. A :term:" "`named tuple` ``ArgInfo(args, varargs, keywords, locals)`` is returned. " @@ -1539,18 +1547,18 @@ msgid "" "dictionary of the given frame." msgstr "" -#: library/inspect.rst:1150 +#: library/inspect.rst:1153 msgid "This function was inadvertently marked as deprecated in Python 3.5." msgstr "" -#: library/inspect.rst:1145 +#: library/inspect.rst:1148 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:1155 +#: library/inspect.rst:1158 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 " @@ -1558,7 +1566,7 @@ msgid "" "user-defined metatype is in use, cls will be the first element of the tuple." msgstr "" -#: library/inspect.rst:1163 +#: library/inspect.rst:1166 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 " @@ -1571,7 +1579,7 @@ msgid "" "example:" msgstr "" -#: library/inspect.rst:1172 +#: library/inspect.rst:1175 msgid "" ">>> from inspect import getcallargs\n" ">>> def f(a, b=1, *pos, **named):\n" @@ -1588,11 +1596,11 @@ msgid "" "TypeError: f() missing 1 required positional argument: 'a'" msgstr "" -#: library/inspect.rst:1189 +#: library/inspect.rst:1192 msgid "Use :meth:`Signature.bind` and :meth:`Signature.bind_partial` instead." msgstr "" -#: library/inspect.rst:1195 +#: library/inspect.rst:1198 msgid "" "Get the mapping of external name references in a Python function or method " "*func* to their current values. A :term:`named tuple` " @@ -1604,18 +1612,18 @@ msgid "" "builtins." msgstr "" -#: library/inspect.rst:1204 +#: library/inspect.rst:1207 msgid "" ":exc:`TypeError` is raised if *func* is not a Python function or method." msgstr "" -#: library/inspect.rst:1211 +#: library/inspect.rst:1214 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:1214 +#: library/inspect.rst:1217 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 " @@ -1625,80 +1633,80 @@ msgid "" "``__signature__`` attribute defined." msgstr "" -#: library/inspect.rst:1221 +#: library/inspect.rst:1224 msgid ":exc:`ValueError` is raised if a cycle is encountered." msgstr "" -#: library/inspect.rst:1228 +#: library/inspect.rst:1231 msgid "Compute the annotations dict for an object." msgstr "" -#: library/inspect.rst:1230 +#: library/inspect.rst:1233 msgid "" "``obj`` may be a callable, class, or module. Passing in an object of any " "other type raises :exc:`TypeError`." msgstr "" -#: library/inspect.rst:1233 +#: library/inspect.rst:1236 msgid "" "Returns a dict. ``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/inspect.rst:1237 +#: library/inspect.rst:1240 msgid "This function handles several details for you:" msgstr "" -#: library/inspect.rst:1239 +#: library/inspect.rst:1242 msgid "" "If ``eval_str`` is true, values of type ``str`` will be un-stringized using :" "func:`eval`. This is intended for use with stringized annotations (``from " "__future__ import annotations``)." msgstr "" -#: library/inspect.rst:1243 +#: library/inspect.rst:1246 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/inspect.rst:1247 +#: library/inspect.rst:1250 msgid "" "Ignores inherited annotations on classes. If a class doesn't have its own " "annotations dict, returns an empty dict." msgstr "" -#: library/inspect.rst:1249 +#: library/inspect.rst:1252 msgid "" "All accesses to object members and dict values are done using ``getattr()`` " "and ``dict.get()`` for safety." msgstr "" -#: library/inspect.rst:1251 +#: library/inspect.rst:1254 msgid "Always, always, always returns a freshly created dict." msgstr "" -#: library/inspect.rst:1253 +#: library/inspect.rst:1256 msgid "" "``eval_str`` controls whether or not values of type ``str`` are replaced " "with the result of calling :func:`eval` on those values:" msgstr "" -#: library/inspect.rst:1256 +#: library/inspect.rst:1259 msgid "" "If eval_str is true, :func:`eval` is called on values of type ``str``. (Note " "that ``get_annotations`` doesn't catch exceptions; if :func:`eval` raises an " "exception, it will unwind the stack past the ``get_annotations`` call.)" msgstr "" -#: library/inspect.rst:1260 +#: library/inspect.rst:1263 msgid "" "If eval_str is false (the default), values of type ``str`` are unchanged." msgstr "" -#: library/inspect.rst:1262 +#: library/inspect.rst:1265 msgid "" "``globals`` and ``locals`` are passed in to :func:`eval`; see the " "documentation for :func:`eval` for more information. If ``globals`` or " @@ -1706,35 +1714,35 @@ msgid "" "specific default, contingent on ``type(obj)``:" msgstr "" -#: library/inspect.rst:1267 +#: library/inspect.rst:1270 msgid "If ``obj`` is a module, ``globals`` defaults to ``obj.__dict__``." msgstr "" -#: library/inspect.rst:1268 +#: library/inspect.rst:1271 msgid "" "If ``obj`` is a class, ``globals`` defaults to ``sys.modules[obj.__module__]." "__dict__`` and ``locals`` defaults to the ``obj`` class namespace." msgstr "" -#: library/inspect.rst:1271 +#: library/inspect.rst:1274 msgid "" "If ``obj`` is a callable, ``globals`` defaults to :attr:`obj.__globals__ " "`, although if ``obj`` is a wrapped function (using :" "func:`functools.update_wrapper`) it is first unwrapped." msgstr "" -#: library/inspect.rst:1276 +#: library/inspect.rst:1279 msgid "" "Calling ``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/inspect.rst:1286 +#: library/inspect.rst:1289 msgid "The interpreter stack" msgstr "" -#: library/inspect.rst:1288 +#: library/inspect.rst:1291 msgid "" "Some of the following functions return :class:`FrameInfo` objects. For " "backwards compatibility these objects allow tuple-like operations on all " @@ -1742,95 +1750,95 @@ msgid "" "may be removed in the future." msgstr "" -#: library/inspect.rst:1297 +#: library/inspect.rst:1300 msgid "The :ref:`frame object ` that the record corresponds to." msgstr "" -#: library/inspect.rst:1301 +#: library/inspect.rst:1304 msgid "" "The file name associated with the code being executed by the frame this " "record corresponds to." msgstr "" -#: library/inspect.rst:1306 +#: library/inspect.rst:1309 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:1311 +#: library/inspect.rst:1314 msgid "" "The function name that is being executed by the frame this record " "corresponds to." msgstr "" -#: library/inspect.rst:1315 +#: library/inspect.rst:1318 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:1359 +#: library/inspect.rst:1362 msgid "" "The index of the current line being executed in the :attr:`code_context` " "list." msgstr "" -#: library/inspect.rst:1324 +#: library/inspect.rst:1327 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:1328 +#: library/inspect.rst:1331 msgid "Return a :term:`named tuple` instead of a :class:`tuple`." msgstr "" -#: library/inspect.rst:1331 +#: library/inspect.rst:1334 msgid "" ":class:`!FrameInfo` is now a class instance (that is backwards compatible " "with the previous :term:`named tuple`)." msgstr "" -#: library/inspect.rst:1340 +#: library/inspect.rst:1343 msgid "" "The file name associated with the code being executed by the frame this " "traceback corresponds to." msgstr "" -#: library/inspect.rst:1345 +#: library/inspect.rst:1348 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:1350 +#: library/inspect.rst:1353 msgid "" "The function name that is being executed by the frame this traceback " "corresponds to." msgstr "" -#: library/inspect.rst:1354 +#: library/inspect.rst:1357 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:1363 +#: library/inspect.rst:1366 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:1368 +#: library/inspect.rst:1371 msgid "" ":class:`!Traceback` is now a class instance (that is backwards compatible " "with the previous :term:`named tuple`)." msgstr "" -#: library/inspect.rst:1375 +#: library/inspect.rst:1378 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 " @@ -1842,7 +1850,7 @@ msgid "" "consumption which occurs." msgstr "" -#: library/inspect.rst:1383 +#: library/inspect.rst:1386 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 :" @@ -1850,7 +1858,7 @@ msgid "" "disabled when Python was compiled or using :func:`gc.disable`. For example::" msgstr "" -#: library/inspect.rst:1388 +#: library/inspect.rst:1391 msgid "" "def handle_stackframe_without_leak():\n" " frame = inspect.currentframe()\n" @@ -1860,31 +1868,31 @@ msgid "" " del frame" msgstr "" -#: library/inspect.rst:1395 +#: library/inspect.rst:1398 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:1399 +#: library/inspect.rst:1402 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:1406 +#: library/inspect.rst:1409 msgid "" "Get information about a frame or traceback object. A :class:`Traceback` " "object is returned." msgstr "" -#: library/inspect.rst:1409 +#: library/inspect.rst:1412 msgid "A :class:`Traceback` object is returned instead of a named tuple." msgstr "" -#: library/inspect.rst:1414 +#: library/inspect.rst:1417 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 " @@ -1892,17 +1900,17 @@ msgid "" "represents the outermost call on *frame*'s stack." msgstr "" -#: library/inspect.rst:1434 library/inspect.rst:1475 +#: library/inspect.rst:1437 library/inspect.rst:1478 msgid "" "A list of :term:`named tuples ` ``FrameInfo(frame, filename, " "lineno, function, code_context, index)`` is returned." msgstr "" -#: library/inspect.rst:1439 library/inspect.rst:1480 +#: library/inspect.rst:1442 library/inspect.rst:1483 msgid "A list of :class:`FrameInfo` objects is returned." msgstr "" -#: library/inspect.rst:1429 +#: library/inspect.rst:1432 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 " @@ -1910,11 +1918,11 @@ msgid "" "represents where the exception was raised." msgstr "" -#: library/inspect.rst:1444 +#: library/inspect.rst:1447 msgid "Return the frame object for the caller's stack frame." msgstr "" -#: library/inspect.rst:1448 +#: library/inspect.rst:1451 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 " @@ -1922,14 +1930,14 @@ msgid "" "``None``." msgstr "" -#: library/inspect.rst:1456 +#: library/inspect.rst:1459 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:1470 +#: library/inspect.rst:1473 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 " @@ -1937,11 +1945,11 @@ msgid "" "entry represents where the exception was raised." msgstr "" -#: library/inspect.rst:1484 +#: library/inspect.rst:1487 msgid "Fetching attributes statically" msgstr "" -#: library/inspect.rst:1486 +#: library/inspect.rst:1489 msgid "" "Both :func:`getattr` and :func:`hasattr` can trigger code execution when " "fetching or checking for the existence of attributes. Descriptors, like " @@ -1949,20 +1957,20 @@ msgid "" "`~object.__getattribute__` may be called." msgstr "" -#: library/inspect.rst:1492 +#: library/inspect.rst:1495 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:1498 +#: library/inspect.rst:1501 msgid "" "Retrieve attributes without triggering dynamic lookup via the descriptor " "protocol, :meth:`~object.__getattr__` or :meth:`~object.__getattribute__`." msgstr "" -#: library/inspect.rst:1502 +#: library/inspect.rst:1505 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 " @@ -1970,27 +1978,27 @@ msgid "" "return descriptors objects instead of instance members." msgstr "" -#: library/inspect.rst:1508 +#: library/inspect.rst:1511 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:1514 +#: library/inspect.rst:1517 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:1518 +#: library/inspect.rst:1521 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:1522 +#: library/inspect.rst:1525 msgid "" "# example code for resolving the builtin descriptor types\n" "class _foo:\n" @@ -2013,11 +2021,11 @@ msgid "" " pass" msgstr "" -#: library/inspect.rst:1544 +#: library/inspect.rst:1547 msgid "Current State of Generators, Coroutines, and Asynchronous Generators" msgstr "" -#: library/inspect.rst:1546 +#: library/inspect.rst:1549 msgid "" "When implementing coroutine schedulers and for other advanced uses of " "generators, it is useful to determine whether a generator is currently " @@ -2026,31 +2034,31 @@ msgid "" "generator to be determined easily." msgstr "" -#: library/inspect.rst:1554 +#: library/inspect.rst:1557 msgid "Get current state of a generator-iterator." msgstr "" -#: library/inspect.rst:1572 library/inspect.rst:1589 +#: library/inspect.rst:1575 library/inspect.rst:1592 msgid "Possible states are:" msgstr "" -#: library/inspect.rst:1558 +#: library/inspect.rst:1561 msgid "GEN_CREATED: Waiting to start execution." msgstr "" -#: library/inspect.rst:1559 +#: library/inspect.rst:1562 msgid "GEN_RUNNING: Currently being executed by the interpreter." msgstr "" -#: library/inspect.rst:1560 +#: library/inspect.rst:1563 msgid "GEN_SUSPENDED: Currently suspended at a yield expression." msgstr "" -#: library/inspect.rst:1561 +#: library/inspect.rst:1564 msgid "GEN_CLOSED: Execution has completed." msgstr "" -#: library/inspect.rst:1567 +#: library/inspect.rst:1570 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 " @@ -2058,23 +2066,23 @@ msgid "" "``cr_frame`` attributes." msgstr "" -#: library/inspect.rst:1574 +#: library/inspect.rst:1577 msgid "CORO_CREATED: Waiting to start execution." msgstr "" -#: library/inspect.rst:1575 +#: library/inspect.rst:1578 msgid "CORO_RUNNING: Currently being executed by the interpreter." msgstr "" -#: library/inspect.rst:1576 +#: library/inspect.rst:1579 msgid "CORO_SUSPENDED: Currently suspended at an await expression." msgstr "" -#: library/inspect.rst:1577 +#: library/inspect.rst:1580 msgid "CORO_CLOSED: Execution has completed." msgstr "" -#: library/inspect.rst:1583 +#: library/inspect.rst:1586 msgid "" "Get current state of an asynchronous generator object. The function is " "intended to be used with asynchronous iterator objects created by :keyword:" @@ -2083,30 +2091,30 @@ msgid "" "``ag_frame`` attributes." msgstr "" -#: library/inspect.rst:1591 +#: library/inspect.rst:1594 msgid "AGEN_CREATED: Waiting to start execution." msgstr "" -#: library/inspect.rst:1592 +#: library/inspect.rst:1595 msgid "AGEN_RUNNING: Currently being executed by the interpreter." msgstr "" -#: library/inspect.rst:1593 +#: library/inspect.rst:1596 msgid "AGEN_SUSPENDED: Currently suspended at a yield expression." msgstr "" -#: library/inspect.rst:1594 +#: library/inspect.rst:1597 msgid "AGEN_CLOSED: Execution has completed." msgstr "" -#: library/inspect.rst:1598 +#: library/inspect.rst:1601 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:1604 +#: library/inspect.rst:1607 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. " @@ -2114,14 +2122,14 @@ msgid "" "generator, and all the same caveats apply." msgstr "" -#: library/inspect.rst:1609 +#: library/inspect.rst:1612 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:1615 +#: library/inspect.rst:1618 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 " @@ -2129,79 +2137,79 @@ msgid "" "dictionary." msgstr "" -#: library/inspect.rst:1624 +#: library/inspect.rst:1627 msgid "" "This function is analogous to :func:`~inspect.getgeneratorlocals`, but works " "for coroutine objects created by :keyword:`async def` functions." msgstr "" -#: library/inspect.rst:1631 +#: library/inspect.rst:1634 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:1641 +#: library/inspect.rst:1644 msgid "Code Objects Bit Flags" msgstr "" -#: library/inspect.rst:1643 +#: library/inspect.rst:1646 msgid "" "Python code objects have a :attr:`~codeobject.co_flags` attribute, which is " "a bitmap of the following flags:" msgstr "" -#: library/inspect.rst:1648 +#: library/inspect.rst:1651 msgid "The code object is optimized, using fast locals." msgstr "" -#: library/inspect.rst:1652 +#: library/inspect.rst:1655 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:1657 +#: library/inspect.rst:1660 msgid "The code object has a variable positional parameter (``*args``-like)." msgstr "" -#: library/inspect.rst:1661 +#: library/inspect.rst:1664 msgid "The code object has a variable keyword parameter (``**kwargs``-like)." msgstr "" -#: library/inspect.rst:1665 +#: library/inspect.rst:1668 msgid "The flag is set when the code object is a nested function." msgstr "" -#: library/inspect.rst:1669 +#: library/inspect.rst:1672 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:1674 +#: library/inspect.rst:1677 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:1682 +#: library/inspect.rst:1685 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:1691 +#: library/inspect.rst:1694 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:1698 +#: library/inspect.rst:1701 msgid "" "The flags are specific to CPython, and may not be defined in other Python " "implementations. Furthermore, the flags are an implementation detail, and " @@ -2209,39 +2217,39 @@ msgid "" "use public APIs from the :mod:`inspect` module for any introspection needs." msgstr "" -#: library/inspect.rst:1706 +#: library/inspect.rst:1709 msgid "Buffer flags" msgstr "" -#: library/inspect.rst:1710 +#: library/inspect.rst:1713 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:1714 +#: library/inspect.rst:1717 msgid "The meaning of the flags is explained at :ref:`buffer-request-types`." msgstr "" -#: library/inspect.rst:1741 -msgid "Command Line Interface" +#: library/inspect.rst:1744 +msgid "Command-line interface" msgstr "" -#: library/inspect.rst:1743 +#: library/inspect.rst:1746 msgid "" "The :mod:`inspect` module also provides a basic introspection capability " "from the command line." msgstr "" -#: library/inspect.rst:1748 +#: library/inspect.rst:1751 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:1754 +#: library/inspect.rst:1757 msgid "" "Print information about the specified object rather than the source code" msgstr "" diff --git a/library/internet.po b/library/internet.po index a30bccd2..af14ae8b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 dfe55386..86b43e80 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 4a678178..f77b1520 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -62,7 +62,7 @@ msgid "" "since :exc:`IOError` is now an alias of :exc:`OSError`." msgstr "" -#: library/io.rst:855 library/io.rst:1150 +#: library/io.rst:862 library/io.rst:1158 msgid "Text I/O" msgstr "" @@ -99,7 +99,7 @@ msgid "" "`TextIOBase`." msgstr "" -#: library/io.rst:1138 +#: library/io.rst:1146 msgid "Binary I/O" msgstr "" @@ -643,7 +643,7 @@ msgid "" "negative" msgstr "" -#: library/io.rst:930 +#: library/io.rst:938 msgid "The :data:`!SEEK_*` constants." msgstr "" @@ -769,109 +769,117 @@ msgstr "" msgid "" "The main difference with :class:`RawIOBase` is that methods :meth:`read`, :" "meth:`readinto` and :meth:`write` will try (respectively) to read as much " -"input as requested or to consume all given output, at the expense of making " -"perhaps more than one system call." +"input as requested or to emit all provided data." msgstr "" -#: library/io.rst:529 +#: library/io.rst:528 msgid "" -"In addition, those methods can raise :exc:`BlockingIOError` if the " -"underlying raw stream is in non-blocking mode and cannot take or give enough " -"data; unlike their :class:`RawIOBase` counterparts, they will never return " -"``None``." +"In addition, if the underlying raw stream is in non-blocking mode, when the " +"system returns would block :meth:`write` will raise :exc:`BlockingIOError` " +"with :attr:`BlockingIOError.characters_written` and :meth:`read` will return " +"data read so far or ``None`` if no data is available." msgstr "" -#: library/io.rst:534 +#: library/io.rst:533 msgid "" "Besides, the :meth:`read` method does not have a default implementation that " "defers to :meth:`readinto`." msgstr "" -#: library/io.rst:537 +#: library/io.rst:536 msgid "" "A typical :class:`BufferedIOBase` implementation should not inherit from a :" "class:`RawIOBase` implementation, but wrap one, like :class:`BufferedWriter` " "and :class:`BufferedReader` do." msgstr "" -#: library/io.rst:541 +#: library/io.rst:540 msgid "" ":class:`BufferedIOBase` provides or overrides these data attributes and " "methods in addition to those from :class:`IOBase`:" msgstr "" -#: library/io.rst:546 +#: library/io.rst:545 msgid "" "The underlying raw stream (a :class:`RawIOBase` instance) that :class:" "`BufferedIOBase` deals with. This is not part of the :class:" "`BufferedIOBase` API and may not exist on some implementations." msgstr "" -#: library/io.rst:552 +#: library/io.rst:551 msgid "Separate the underlying raw stream from the buffer and return it." msgstr "" -#: library/io.rst:554 +#: library/io.rst:553 msgid "" "After the raw stream has been detached, the buffer is in an unusable state." msgstr "" -#: library/io.rst:557 +#: library/io.rst:556 msgid "" "Some buffers, like :class:`BytesIO`, do not have the concept of a single raw " "stream to return from this method. They raise :exc:`UnsupportedOperation`." msgstr "" -#: library/io.rst:565 +#: library/io.rst:564 msgid "" -"Read and return up to *size* bytes. If the argument is omitted, ``None``, " -"or negative, data is read and returned until EOF is reached. An empty :" -"class:`bytes` object is returned if the stream is already at EOF." +"Read and return up to *size* bytes. If the argument is omitted, ``None``, or " +"negative read as much as possible." msgstr "" -#: library/io.rst:569 +#: library/io.rst:567 msgid "" -"If the argument is positive, and the underlying raw stream is not " -"interactive, multiple raw reads may be issued to satisfy the byte count " -"(unless EOF is reached first). But for interactive raw streams, at most one " -"raw read will be issued, and a short result does not imply that EOF is " -"imminent." +"Fewer bytes may be returned than requested. An empty :class:`bytes` object " +"is returned if the stream is already at EOF. More than one read may be made " +"and calls may be retried if specific errors are encountered, see :meth:`os." +"read` and :pep:`475` for more details. Less than size bytes being returned " +"does not imply that EOF is imminent." msgstr "" -#: library/io.rst:598 library/io.rst:608 +#: library/io.rst:573 msgid "" -"A :exc:`BlockingIOError` is raised if the underlying raw stream is in non " -"blocking-mode, and has no data available at the moment." +"When reading as much as possible the default implementation will use ``raw." +"readall`` if available (which should implement :meth:`RawIOBase.readall`), " +"otherwise will read in a loop until read returns ``None``, an empty :class:" +"`bytes`, or a non-retryable error. For most streams this is to EOF, but for " +"non-blocking streams more data may become available." msgstr "" -#: library/io.rst:580 +#: library/io.rst:595 msgid "" -"Read and return up to *size* bytes, with at most one call to the underlying " -"raw stream's :meth:`~RawIOBase.read` (or :meth:`~RawIOBase.readinto`) " -"method. This can be useful if you are implementing your own buffering on " -"top of a :class:`BufferedIOBase` object." +"When the underlying raw stream is non-blocking, implementations may either " +"raise :exc:`BlockingIOError` or return ``None`` if no data is available. :" +"mod:`io` implementations return ``None``." msgstr "" -#: library/io.rst:586 +#: library/io.rst:588 msgid "" -"If *size* is ``-1`` (the default), an arbitrary number of bytes are returned " -"(more than zero unless EOF is reached)." +"Read and return up to *size* bytes, calling :meth:`~RawIOBase.readinto` " +"which may retry if :py:const:`~errno.EINTR` is encountered per :pep:`475`. " +"If *size* is ``-1`` or not provided, the implementation will choose an " +"arbitrary value for *size*." msgstr "" -#: library/io.rst:591 +#: library/io.rst:601 msgid "" "Read bytes into a pre-allocated, writable :term:`bytes-like object` *b* and " "return the number of bytes read. For example, *b* might be a :class:" "`bytearray`." msgstr "" -#: library/io.rst:595 +#: library/io.rst:605 msgid "" "Like :meth:`read`, multiple reads may be issued to the underlying raw " "stream, unless the latter is interactive." msgstr "" -#: library/io.rst:603 +#: library/io.rst:618 +msgid "" +"A :exc:`BlockingIOError` is raised if the underlying raw stream is in non " +"blocking-mode, and has no data available at the moment." +msgstr "" + +#: library/io.rst:613 msgid "" "Read bytes into a pre-allocated, writable :term:`bytes-like object` *b*, " "using at most one call to the underlying raw stream's :meth:`~RawIOBase." @@ -879,7 +887,7 @@ msgid "" "read." msgstr "" -#: library/io.rst:615 +#: library/io.rst:625 msgid "" "Write the given :term:`bytes-like object`, *b*, and return the number of " "bytes written (always equal to the length of *b* in bytes, since if the " @@ -888,41 +896,41 @@ msgid "" "or held in a buffer for performance and latency reasons." msgstr "" -#: library/io.rst:622 +#: library/io.rst:632 msgid "" "When in non-blocking mode, a :exc:`BlockingIOError` is raised if the data " "needed to be written to the raw stream but it couldn't accept all the data " "without blocking." msgstr "" -#: library/io.rst:626 +#: library/io.rst:636 msgid "" "The caller may release or mutate *b* after this method returns, so the " "implementation should only access *b* during the method call." msgstr "" -#: library/io.rst:631 +#: library/io.rst:641 msgid "Raw File I/O" msgstr "" -#: library/io.rst:635 +#: library/io.rst:645 msgid "" "A raw binary stream representing an OS-level file containing bytes data. It " "inherits from :class:`RawIOBase`." msgstr "" -#: library/io.rst:638 +#: library/io.rst:648 msgid "The *name* can be one of two things:" msgstr "" -#: library/io.rst:640 +#: library/io.rst:650 msgid "" "a character string or :class:`bytes` object representing the path to the " "file which will be opened. In this case closefd must be ``True`` (the " "default) otherwise an error will be raised." msgstr "" -#: library/io.rst:643 +#: library/io.rst:653 msgid "" "an integer representing the number of an existing OS-level file descriptor " "to which the resulting :class:`FileIO` object will give access. When the " @@ -930,7 +938,7 @@ msgid "" "set to ``False``." msgstr "" -#: library/io.rst:648 +#: library/io.rst:658 msgid "" "The *mode* can be ``'r'``, ``'w'``, ``'x'`` or ``'a'`` for reading " "(default), writing, exclusive creation or appending. The file will be " @@ -941,14 +949,14 @@ msgid "" "``'+'`` to the mode to allow simultaneous reading and writing." msgstr "" -#: library/io.rst:656 +#: library/io.rst:666 msgid "" "The :meth:`~RawIOBase.read` (when called with a positive argument), :meth:" "`~RawIOBase.readinto` and :meth:`~RawIOBase.write` methods on this class " "will only make one system call." msgstr "" -#: library/io.rst:660 +#: library/io.rst:670 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 " @@ -957,77 +965,77 @@ msgid "" "similar to passing ``None``)." msgstr "" -#: library/io.rst:666 +#: library/io.rst:676 msgid "The newly created file is :ref:`non-inheritable `." msgstr "" -#: library/io.rst:668 +#: library/io.rst:678 msgid "" "See the :func:`open` built-in function for examples on using the *opener* " "parameter." msgstr "" -#: library/io.rst:671 +#: library/io.rst:681 msgid "The *opener* parameter was added. The ``'x'`` mode was added." msgstr "" -#: library/io.rst:675 +#: library/io.rst:685 msgid "The file is now non-inheritable." msgstr "" -#: library/io.rst:678 +#: library/io.rst:688 msgid "" ":class:`FileIO` provides these data attributes in addition to those from :" "class:`RawIOBase` and :class:`IOBase`:" msgstr "" -#: library/io.rst:683 +#: library/io.rst:693 msgid "The mode as given in the constructor." msgstr "" -#: library/io.rst:687 +#: library/io.rst:697 msgid "" "The file name. This is the file descriptor of the file when no name is " "given in the constructor." msgstr "" -#: library/io.rst:692 +#: library/io.rst:702 msgid "Buffered Streams" msgstr "" -#: library/io.rst:694 +#: library/io.rst:704 msgid "" "Buffered I/O streams provide a higher-level interface to an I/O device than " "raw I/O does." msgstr "" -#: library/io.rst:699 +#: library/io.rst:709 msgid "" "A binary stream using an in-memory bytes buffer. It inherits from :class:" "`BufferedIOBase`. The buffer is discarded when the :meth:`~IOBase.close` " "method is called." msgstr "" -#: library/io.rst:703 +#: library/io.rst:713 msgid "" "The optional argument *initial_bytes* is a :term:`bytes-like object` that " "contains initial data." msgstr "" -#: library/io.rst:706 +#: library/io.rst:716 msgid "" ":class:`BytesIO` provides or overrides these methods in addition to those " "from :class:`BufferedIOBase` and :class:`IOBase`:" msgstr "" -#: library/io.rst:711 +#: library/io.rst:721 msgid "" "Return a readable and writable view over the contents of the buffer without " "copying them. Also, mutating the view will transparently update the " "contents of the buffer::" msgstr "" -#: library/io.rst:715 +#: library/io.rst:725 msgid "" ">>> b = io.BytesIO(b\"abcdef\")\n" ">>> view = b.getbuffer()\n" @@ -1036,303 +1044,302 @@ msgid "" "b'ab56ef'" msgstr "" -#: library/io.rst:722 +#: library/io.rst:732 msgid "" "As long as the view exists, the :class:`BytesIO` object cannot be resized or " "closed." msgstr "" -#: library/io.rst:729 +#: library/io.rst:739 msgid "Return :class:`bytes` containing the entire contents of the buffer." msgstr "" -#: library/io.rst:734 +#: library/io.rst:744 msgid "In :class:`BytesIO`, this is the same as :meth:`~BufferedIOBase.read`." msgstr "" -#: library/io.rst:779 +#: library/io.rst:786 msgid "The *size* argument is now optional." msgstr "" -#: library/io.rst:741 +#: library/io.rst:751 msgid "" "In :class:`BytesIO`, this is the same as :meth:`~BufferedIOBase.readinto`." msgstr "" -#: library/io.rst:747 +#: library/io.rst:757 msgid "" "A buffered binary stream providing higher-level access to a readable, non " "seekable :class:`RawIOBase` raw binary stream. It inherits from :class:" "`BufferedIOBase`." msgstr "" -#: library/io.rst:751 +#: library/io.rst:761 msgid "" "When reading data from this object, a larger amount of data may be requested " "from the underlying raw stream, and kept in an internal buffer. The buffered " "data can then be returned directly on subsequent reads." msgstr "" -#: library/io.rst:755 +#: library/io.rst:765 msgid "" "The constructor creates a :class:`BufferedReader` for the given readable " "*raw* stream and *buffer_size*. If *buffer_size* is omitted, :data:" "`DEFAULT_BUFFER_SIZE` is used." msgstr "" -#: library/io.rst:759 +#: library/io.rst:769 msgid "" ":class:`BufferedReader` provides or overrides these methods in addition to " "those from :class:`BufferedIOBase` and :class:`IOBase`:" msgstr "" -#: library/io.rst:764 +#: library/io.rst:774 msgid "" -"Return bytes from the stream without advancing the position. At most one " -"single read on the raw stream is done to satisfy the call. The number of " -"bytes returned may be less or more than requested." +"Return bytes from the stream without advancing the position. The number of " +"bytes returned may be less or more than requested. If the underlying raw " +"stream is non-blocking and the operation would block, returns empty bytes." msgstr "" -#: library/io.rst:770 +#: library/io.rst:780 msgid "" -"Read and return *size* bytes, or if *size* is not given or negative, until " -"EOF or if the read call would block in non-blocking mode." +"In :class:`BufferedReader` this is the same as :meth:`io.BufferedIOBase.read`" msgstr "" -#: library/io.rst:775 +#: library/io.rst:784 msgid "" -"Read and return up to *size* bytes with only one call on the raw stream. If " -"at least one byte is buffered, only buffered bytes are returned. Otherwise, " -"one raw stream read call is made." +"In :class:`BufferedReader` this is the same as :meth:`io.BufferedIOBase." +"read1`" msgstr "" -#: library/io.rst:785 +#: library/io.rst:792 msgid "" "A buffered binary stream providing higher-level access to a writeable, non " "seekable :class:`RawIOBase` raw binary stream. It inherits from :class:" "`BufferedIOBase`." msgstr "" -#: library/io.rst:789 +#: library/io.rst:796 msgid "" "When writing to this object, data is normally placed into an internal " "buffer. The buffer will be written out to the underlying :class:`RawIOBase` " "object under various conditions, including:" msgstr "" -#: library/io.rst:793 +#: library/io.rst:800 msgid "when the buffer gets too small for all pending data;" msgstr "" -#: library/io.rst:794 +#: library/io.rst:801 msgid "when :meth:`flush` is called;" msgstr "" -#: library/io.rst:795 +#: library/io.rst:802 msgid "" "when a :meth:`~IOBase.seek` is requested (for :class:`BufferedRandom` " "objects);" msgstr "" -#: library/io.rst:796 +#: library/io.rst:803 msgid "when the :class:`BufferedWriter` object is closed or destroyed." msgstr "" -#: library/io.rst:798 +#: library/io.rst:805 msgid "" "The constructor creates a :class:`BufferedWriter` for the given writeable " "*raw* stream. If the *buffer_size* is not given, it defaults to :data:" "`DEFAULT_BUFFER_SIZE`." msgstr "" -#: library/io.rst:802 +#: library/io.rst:809 msgid "" ":class:`BufferedWriter` provides or overrides these methods in addition to " "those from :class:`BufferedIOBase` and :class:`IOBase`:" msgstr "" -#: library/io.rst:807 +#: library/io.rst:814 msgid "" "Force bytes held in the buffer into the raw stream. A :exc:" "`BlockingIOError` should be raised if the raw stream blocks." msgstr "" -#: library/io.rst:812 +#: library/io.rst:819 msgid "" "Write the :term:`bytes-like object`, *b*, and return the number of bytes " -"written. When in non-blocking mode, a :exc:`BlockingIOError` is raised if " -"the buffer needs to be written out but the raw stream blocks." +"written. When in non-blocking mode, a :exc:`BlockingIOError` with :attr:" +"`BlockingIOError.characters_written` set is raised if the buffer needs to be " +"written out but the raw stream blocks." msgstr "" -#: library/io.rst:820 +#: library/io.rst:827 msgid "" "A buffered binary stream providing higher-level access to a seekable :class:" "`RawIOBase` raw binary stream. It inherits from :class:`BufferedReader` " "and :class:`BufferedWriter`." msgstr "" -#: library/io.rst:824 +#: library/io.rst:831 msgid "" "The constructor creates a reader and writer for a seekable raw stream, given " "in the first argument. If the *buffer_size* is omitted it defaults to :data:" "`DEFAULT_BUFFER_SIZE`." msgstr "" -#: library/io.rst:828 +#: library/io.rst:835 msgid "" ":class:`BufferedRandom` is capable of anything :class:`BufferedReader` or :" "class:`BufferedWriter` can do. In addition, :meth:`~IOBase.seek` and :meth:" "`~IOBase.tell` are guaranteed to be implemented." msgstr "" -#: library/io.rst:835 +#: library/io.rst:842 msgid "" "A buffered binary stream providing higher-level access to two non seekable :" "class:`RawIOBase` raw binary streams---one readable, the other writeable. It " "inherits from :class:`BufferedIOBase`." msgstr "" -#: library/io.rst:839 +#: library/io.rst:846 msgid "" "*reader* and *writer* are :class:`RawIOBase` objects that are readable and " "writeable respectively. If the *buffer_size* is omitted it defaults to :" "data:`DEFAULT_BUFFER_SIZE`." msgstr "" -#: library/io.rst:843 +#: library/io.rst:850 msgid "" ":class:`BufferedRWPair` implements all of :class:`BufferedIOBase`\\'s " "methods except for :meth:`~BufferedIOBase.detach`, which raises :exc:" "`UnsupportedOperation`." msgstr "" -#: library/io.rst:849 +#: library/io.rst:856 msgid "" ":class:`BufferedRWPair` does not attempt to synchronize accesses to its " "underlying raw streams. You should not pass it the same object as reader " "and writer; use :class:`BufferedRandom` instead." msgstr "" -#: library/io.rst:859 +#: library/io.rst:866 msgid "" "Base class for text streams. This class provides a character and line based " "interface to stream I/O. It inherits from :class:`IOBase`." msgstr "" -#: library/io.rst:862 +#: library/io.rst:869 msgid "" ":class:`TextIOBase` provides or overrides these data attributes and methods " "in addition to those from :class:`IOBase`:" msgstr "" -#: library/io.rst:867 +#: library/io.rst:874 msgid "" "The name of the encoding used to decode the stream's bytes into strings, and " "to encode strings into bytes." msgstr "" -#: library/io.rst:872 +#: library/io.rst:879 msgid "The error setting of the decoder or encoder." msgstr "" -#: library/io.rst:876 +#: library/io.rst:883 msgid "" "A string, a tuple of strings, or ``None``, indicating the newlines " "translated so far. Depending on the implementation and the initial " "constructor flags, this may not be available." msgstr "" -#: library/io.rst:882 +#: library/io.rst:889 msgid "" -"The underlying binary buffer (a :class:`BufferedIOBase` instance) that :" -"class:`TextIOBase` deals with. This is not part of the :class:`TextIOBase` " -"API and may not exist in some implementations." +"The underlying binary buffer (a :class:`BufferedIOBase` or :class:" +"`RawIOBase` instance) that :class:`TextIOBase` deals with. This is not part " +"of the :class:`TextIOBase` API and may not exist in some implementations." msgstr "" -#: library/io.rst:888 +#: library/io.rst:896 msgid "" "Separate the underlying binary buffer from the :class:`TextIOBase` and " "return it." msgstr "" -#: library/io.rst:891 +#: library/io.rst:899 msgid "" "After the underlying buffer has been detached, the :class:`TextIOBase` is in " "an unusable state." msgstr "" -#: library/io.rst:894 +#: library/io.rst:902 msgid "" "Some :class:`TextIOBase` implementations, like :class:`StringIO`, may not " "have the concept of an underlying buffer and calling this method will raise :" "exc:`UnsupportedOperation`." msgstr "" -#: library/io.rst:902 +#: library/io.rst:910 msgid "" "Read and return at most *size* characters from the stream as a single :class:" "`str`. If *size* is negative or ``None``, reads until EOF." msgstr "" -#: library/io.rst:907 +#: library/io.rst:915 msgid "" "Read until newline or EOF and return a single :class:`str`. If the stream " "is already at EOF, an empty string is returned." msgstr "" -#: library/io.rst:910 +#: library/io.rst:918 msgid "If *size* is specified, at most *size* characters will be read." msgstr "" -#: library/io.rst:914 +#: library/io.rst:922 msgid "" "Change the stream position to the given *offset*. Behaviour depends on the " "*whence* parameter. The default value for *whence* is :data:`!SEEK_SET`." msgstr "" -#: library/io.rst:918 +#: library/io.rst:926 msgid "" ":data:`!SEEK_SET` or ``0``: seek from the start of the stream (the default); " "*offset* must either be a number returned by :meth:`TextIOBase.tell`, or " "zero. Any other *offset* value produces undefined behaviour." msgstr "" -#: library/io.rst:922 +#: library/io.rst:930 msgid "" ":data:`!SEEK_CUR` or ``1``: \"seek\" to the current position; *offset* must " "be zero, which is a no-operation (all other values are unsupported)." msgstr "" -#: library/io.rst:925 +#: library/io.rst:933 msgid "" ":data:`!SEEK_END` or ``2``: seek to the end of the stream; *offset* must be " "zero (all other values are unsupported)." msgstr "" -#: library/io.rst:928 +#: library/io.rst:936 msgid "Return the new absolute position as an opaque number." msgstr "" -#: library/io.rst:935 +#: library/io.rst:943 msgid "" "Return the current stream position as an opaque number. The number does not " "usually represent a number of bytes in the underlying binary storage." msgstr "" -#: library/io.rst:941 +#: library/io.rst:949 msgid "" "Write the string *s* to the stream and return the number of characters " "written." msgstr "" -#: library/io.rst:948 +#: library/io.rst:956 msgid "" "A buffered text stream providing higher-level access to a :class:" "`BufferedIOBase` buffered binary stream. It inherits from :class:" "`TextIOBase`." msgstr "" -#: library/io.rst:952 +#: library/io.rst:960 msgid "" "*encoding* gives the name of the encoding that the stream will be decoded or " "encoded with. In :ref:`UTF-8 Mode `, this defaults to UTF-8. " @@ -1341,7 +1348,7 @@ msgid "" "explicitly. See :ref:`io-text-encoding` for more information." msgstr "" -#: library/io.rst:958 +#: library/io.rst:966 msgid "" "*errors* is an optional string that specifies how encoding and decoding " "errors are to be handled. Pass ``'strict'`` to raise a :exc:`ValueError` " @@ -1356,13 +1363,13 @@ msgid "" "that has been registered with :func:`codecs.register_error` is also valid." msgstr "" -#: library/io.rst:974 +#: library/io.rst:982 msgid "" "*newline* controls how line endings are handled. It can be ``None``, " "``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as follows:" msgstr "" -#: library/io.rst:977 +#: library/io.rst:985 msgid "" "When reading input from the stream, if *newline* is ``None``, :term:" "`universal newlines` mode is enabled. Lines in the input can end in " @@ -1374,7 +1381,7 @@ msgid "" "returned to the caller untranslated." msgstr "" -#: library/io.rst:986 +#: library/io.rst:994 msgid "" "When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " "characters written are translated to the system default line separator, :" @@ -1383,13 +1390,13 @@ msgid "" "characters written are translated to the given string." msgstr "" -#: library/io.rst:992 +#: library/io.rst:1000 msgid "" "If *line_buffering* is ``True``, :meth:`~IOBase.flush` is implied when a " "call to write contains a newline character or a carriage return." msgstr "" -#: library/io.rst:995 +#: library/io.rst:1003 msgid "" "If *write_through* is ``True``, calls to :meth:`~BufferedIOBase.write` are " "guaranteed not to be buffered: any data written on the :class:" @@ -1397,11 +1404,11 @@ msgid "" "*buffer*." msgstr "" -#: library/io.rst:999 +#: library/io.rst:1007 msgid "The *write_through* argument has been added." msgstr "" -#: library/io.rst:1002 +#: library/io.rst:1010 msgid "" "The default *encoding* is now ``locale.getpreferredencoding(False)`` instead " "of ``locale.getpreferredencoding()``. Don't change temporary the locale " @@ -1409,108 +1416,108 @@ msgid "" "instead of the user preferred encoding." msgstr "" -#: library/io.rst:1008 +#: library/io.rst:1016 msgid "" "The *encoding* argument now supports the ``\"locale\"`` dummy encoding name." msgstr "" -#: library/io.rst:1011 +#: library/io.rst:1019 msgid "" ":class:`TextIOWrapper` provides these data attributes and methods in " "addition to those from :class:`TextIOBase` and :class:`IOBase`:" msgstr "" -#: library/io.rst:1016 +#: library/io.rst:1024 msgid "Whether line buffering is enabled." msgstr "" -#: library/io.rst:1020 +#: library/io.rst:1028 msgid "Whether writes are passed immediately to the underlying binary buffer." msgstr "" -#: library/io.rst:1028 +#: library/io.rst:1036 msgid "" "Reconfigure this text stream using new settings for *encoding*, *errors*, " "*newline*, *line_buffering* and *write_through*." msgstr "" -#: library/io.rst:1031 +#: library/io.rst:1039 msgid "" "Parameters not specified keep current settings, except ``errors='strict'`` " "is used when *encoding* is specified but *errors* is not specified." msgstr "" -#: library/io.rst:1035 +#: library/io.rst:1043 msgid "" "It is not possible to change the encoding or newline if some data has " "already been read from the stream. On the other hand, changing encoding " "after write is possible." msgstr "" -#: library/io.rst:1039 +#: library/io.rst:1047 msgid "" "This method does an implicit stream flush before setting the new parameters." msgstr "" -#: library/io.rst:1044 +#: library/io.rst:1052 msgid "The method supports ``encoding=\"locale\"`` option." msgstr "" -#: library/io.rst:1049 +#: library/io.rst:1057 msgid "" "Set the stream position. Return the new stream position as an :class:`int`." msgstr "" -#: library/io.rst:1052 +#: library/io.rst:1060 msgid "" "Four operations are supported, given by the following argument combinations:" msgstr "" -#: library/io.rst:1055 +#: library/io.rst:1063 msgid "``seek(0, SEEK_SET)``: Rewind to the start of the stream." msgstr "" -#: library/io.rst:1056 +#: library/io.rst:1064 msgid "" "``seek(cookie, SEEK_SET)``: Restore a previous position; *cookie* **must " "be** a number returned by :meth:`tell`." msgstr "" -#: library/io.rst:1058 +#: library/io.rst:1066 msgid "``seek(0, SEEK_END)``: Fast-forward to the end of the stream." msgstr "" -#: library/io.rst:1059 +#: library/io.rst:1067 msgid "``seek(0, SEEK_CUR)``: Leave the current stream position unchanged." msgstr "" -#: library/io.rst:1061 +#: library/io.rst:1069 msgid "Any other argument combinations are invalid, and may raise exceptions." msgstr "" -#: library/io.rst:1066 +#: library/io.rst:1074 msgid ":data:`os.SEEK_SET`, :data:`os.SEEK_CUR`, and :data:`os.SEEK_END`." msgstr "" -#: library/io.rst:1070 +#: library/io.rst:1078 msgid "" "Return the stream position as an opaque number. The return value of :meth:`!" "tell` can be given as input to :meth:`seek`, to restore a previous stream " "position." msgstr "" -#: library/io.rst:1077 +#: library/io.rst:1085 msgid "" "A text stream using an in-memory text buffer. It inherits from :class:" "`TextIOBase`." msgstr "" -#: library/io.rst:1080 +#: library/io.rst:1088 msgid "" "The text buffer is discarded when the :meth:`~IOBase.close` method is called." msgstr "" -#: library/io.rst:1083 +#: library/io.rst:1091 msgid "" "The initial value of the buffer can be set by providing *initial_value*. If " "newline translation is enabled, newlines will be encoded as if by :meth:" @@ -1522,31 +1529,31 @@ msgid "" "at the end of the buffer." msgstr "" -#: library/io.rst:1092 +#: library/io.rst:1100 msgid "" "The *newline* argument works like that of :class:`TextIOWrapper`, except " "that when writing output to the stream, if *newline* is ``None``, newlines " "are written as ``\\n`` on all platforms." msgstr "" -#: library/io.rst:1096 +#: library/io.rst:1104 msgid "" ":class:`StringIO` provides this method in addition to those from :class:" "`TextIOBase` and :class:`IOBase`:" msgstr "" -#: library/io.rst:1101 +#: library/io.rst:1109 msgid "" "Return a :class:`str` containing the entire contents of the buffer. Newlines " "are decoded as if by :meth:`~TextIOBase.read`, although the stream position " "is not changed." msgstr "" -#: library/io.rst:1105 +#: library/io.rst:1113 msgid "Example usage::" msgstr "" -#: library/io.rst:1107 +#: library/io.rst:1115 msgid "" "import io\n" "\n" @@ -1563,23 +1570,23 @@ msgid "" "output.close()" msgstr "" -#: library/io.rst:1127 +#: library/io.rst:1135 msgid "" "A helper codec that decodes newlines for :term:`universal newlines` mode. It " "inherits from :class:`codecs.IncrementalDecoder`." msgstr "" -#: library/io.rst:1132 +#: library/io.rst:1140 msgid "Performance" msgstr "" -#: library/io.rst:1134 +#: library/io.rst:1142 msgid "" "This section discusses the performance of the provided concrete I/O " "implementations." msgstr "" -#: library/io.rst:1140 +#: library/io.rst:1148 msgid "" "By reading and writing only large chunks of data even when the user asks for " "a single byte, buffered I/O hides any inefficiency in calling and executing " @@ -1592,7 +1599,7 @@ msgid "" "data." msgstr "" -#: library/io.rst:1152 +#: library/io.rst:1160 msgid "" "Text I/O over a binary storage (such as a file) is significantly slower than " "binary I/O over the same storage, because it requires conversions between " @@ -1602,24 +1609,24 @@ msgid "" "the reconstruction algorithm used." msgstr "" -#: library/io.rst:1159 +#: library/io.rst:1167 msgid "" ":class:`StringIO`, however, is a native in-memory unicode container and will " "exhibit similar speed to :class:`BytesIO`." msgstr "" -#: library/io.rst:1163 +#: library/io.rst:1171 msgid "Multi-threading" msgstr "" -#: library/io.rst:1165 +#: library/io.rst:1173 msgid "" ":class:`FileIO` objects are thread-safe to the extent that the operating " "system calls (such as :manpage:`read(2)` under Unix) they wrap are thread-" "safe too." msgstr "" -#: library/io.rst:1168 +#: library/io.rst:1176 msgid "" "Binary buffered objects (instances of :class:`BufferedReader`, :class:" "`BufferedWriter`, :class:`BufferedRandom` and :class:`BufferedRWPair`) " @@ -1627,15 +1634,15 @@ msgid "" "them from multiple threads at once." msgstr "" -#: library/io.rst:1173 +#: library/io.rst:1181 msgid ":class:`TextIOWrapper` objects are not thread-safe." msgstr "" -#: library/io.rst:1176 +#: library/io.rst:1184 msgid "Reentrancy" msgstr "" -#: library/io.rst:1178 +#: library/io.rst:1186 msgid "" "Binary buffered objects (instances of :class:`BufferedReader`, :class:" "`BufferedWriter`, :class:`BufferedRandom` and :class:`BufferedRWPair`) are " @@ -1646,7 +1653,7 @@ msgid "" "from entering the buffered object." msgstr "" -#: library/io.rst:1186 +#: library/io.rst:1194 msgid "" "The above implicitly extends to text files, since the :func:`open` function " "will wrap a buffered object inside a :class:`TextIOWrapper`. This includes " @@ -1662,14 +1669,14 @@ msgstr "" msgid "io module" msgstr "" -#: library/io.rst:1122 +#: library/io.rst:1130 msgid "universal newlines" msgstr "" -#: library/io.rst:971 +#: library/io.rst:979 msgid "io.TextIOWrapper class" msgstr "" -#: library/io.rst:1122 +#: library/io.rst:1130 msgid "io.IncrementalNewlineDecoder class" msgstr "" diff --git a/library/ipaddress.po b/library/ipaddress.po index 427cf232..7beae0cf 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -300,27 +300,44 @@ msgid "" msgstr "" #: library/ipaddress.rst:235 -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:240 +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:239 +#: library/ipaddress.rst:243 +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:248 msgid "" "``True`` if this is a loopback address. See :RFC:`3330` (for IPv4) or :RFC:" "`2373` (for IPv6)." msgstr "" -#: library/ipaddress.rst:244 +#: library/ipaddress.rst:253 msgid "" "``True`` if the address is reserved for link-local usage. See :RFC:`3927`." msgstr "" -#: library/ipaddress.rst:249 +#: library/ipaddress.rst:258 msgid "" ":class:`IPv4Address` object representing the IPv4-mapped IPv6 address. See :" "RFC:`4291`." msgstr "" -#: library/ipaddress.rst:259 +#: library/ipaddress.rst:269 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 " @@ -332,17 +349,17 @@ msgid "" "used by ``format``, ``str.format`` and f-strings." msgstr "" -#: library/ipaddress.rst:286 +#: library/ipaddress.rst:296 msgid "" "Construct an IPv6 address. An :exc:`AddressValueError` is raised if " "*address* is not a valid IPv6 address." msgstr "" -#: library/ipaddress.rst:289 +#: library/ipaddress.rst:299 msgid "The following constitutes a valid IPv6 address:" msgstr "" -#: library/ipaddress.rst:291 +#: library/ipaddress.rst:301 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 " @@ -352,7 +369,7 @@ msgid "" "to ``\"::abc:7:def\"``." msgstr "" -#: library/ipaddress.rst:299 +#: library/ipaddress.rst:309 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 " @@ -361,39 +378,39 @@ msgid "" "the node." msgstr "" -#: library/ipaddress.rst:304 +#: library/ipaddress.rst:314 msgid "An integer that fits into 128 bits." msgstr "" -#: library/ipaddress.rst:305 +#: library/ipaddress.rst:315 msgid "" "An integer packed into a :class:`bytes` object of length 16, big-endian." msgstr "" -#: library/ipaddress.rst:315 +#: library/ipaddress.rst:325 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:319 +#: library/ipaddress.rst:329 msgid "This is also the value returned by ``str(addr)`` for IPv6 addresses." msgstr "" -#: library/ipaddress.rst:323 +#: library/ipaddress.rst:333 msgid "" "The long form of the address representation, with all leading zeroes and " "groups consisting entirely of zeroes included." msgstr "" -#: library/ipaddress.rst:327 +#: library/ipaddress.rst:337 msgid "" "For the following attributes and methods, see the corresponding " "documentation of the :class:`IPv4Address` class:" msgstr "" -#: library/ipaddress.rst:347 +#: library/ipaddress.rst:357 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:" @@ -401,21 +418,21 @@ msgid "" "local addresses as defined by :RFC:`4193`." msgstr "" -#: library/ipaddress.rst:354 +#: library/ipaddress.rst:364 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:360 +#: library/ipaddress.rst:370 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:366 +#: library/ipaddress.rst:376 msgid "" "For addresses that appear to be 6to4 addresses (starting with " "``2002::/16``) as defined by :RFC:`3056`, this property will report the " @@ -423,7 +440,7 @@ msgid "" "``None``." msgstr "" -#: library/ipaddress.rst:373 +#: library/ipaddress.rst:383 msgid "" "For addresses that appear to be Teredo addresses (starting with " "``2001::/32``) as defined by :RFC:`4380`, this property will report the " @@ -431,23 +448,23 @@ msgid "" "property will be ``None``." msgstr "" -#: library/ipaddress.rst:380 +#: library/ipaddress.rst:390 msgid "" "Refer to the corresponding method documentation in :class:`IPv4Address`." msgstr "" -#: library/ipaddress.rst:386 +#: library/ipaddress.rst:396 msgid "Conversion to Strings and Integers" msgstr "" -#: library/ipaddress.rst:388 +#: library/ipaddress.rst:398 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:392 +#: library/ipaddress.rst:402 msgid "" ">>> str(ipaddress.IPv4Address('192.168.0.1'))\n" "'192.168.0.1'\n" @@ -459,35 +476,35 @@ msgid "" "1" msgstr "" -#: library/ipaddress.rst:401 +#: library/ipaddress.rst:411 msgid "" "Note that IPv6 scoped addresses are converted to integers without scope zone " "ID." msgstr "" -#: library/ipaddress.rst:789 library/ipaddress.rst:925 +#: library/ipaddress.rst:799 library/ipaddress.rst:935 msgid "Operators" msgstr "" -#: library/ipaddress.rst:407 +#: library/ipaddress.rst:417 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:413 +#: library/ipaddress.rst:423 msgid "Comparison operators" msgstr "" -#: library/ipaddress.rst:415 +#: library/ipaddress.rst:425 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:419 +#: library/ipaddress.rst:429 msgid "" ">>> IPv4Address('127.0.0.2') > IPv4Address('127.0.0.1')\n" "True\n" @@ -501,16 +518,16 @@ msgid "" "True" msgstr "" -#: library/ipaddress.rst:432 +#: library/ipaddress.rst:442 msgid "Arithmetic operators" msgstr "" -#: library/ipaddress.rst:434 +#: library/ipaddress.rst:444 msgid "" "Integers can be added to or subtracted from address objects. Some examples::" msgstr "" -#: library/ipaddress.rst:436 +#: library/ipaddress.rst:446 msgid "" ">>> IPv4Address('127.0.0.2') + 3\n" "IPv4Address('127.0.0.5')\n" @@ -523,11 +540,11 @@ msgid "" "IPv4 address" msgstr "" -#: library/ipaddress.rst:447 +#: library/ipaddress.rst:457 msgid "IP Network definitions" msgstr "" -#: library/ipaddress.rst:449 +#: library/ipaddress.rst:459 msgid "" "The :class:`IPv4Network` and :class:`IPv6Network` objects provide a " "mechanism for defining and inspecting IP network definitions. A network " @@ -538,11 +555,11 @@ msgid "" "addresses in the inclusive range ``192.168.1.0`` to ``192.168.1.255``." msgstr "" -#: library/ipaddress.rst:459 +#: library/ipaddress.rst:469 msgid "Prefix, net mask and host mask" msgstr "" -#: library/ipaddress.rst:461 +#: library/ipaddress.rst:471 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 " @@ -554,11 +571,11 @@ msgid "" "mask equivalent to ``/24`` in IPv4 is ``0.0.0.255``." msgstr "" -#: library/ipaddress.rst:472 +#: library/ipaddress.rst:482 msgid "Network objects" msgstr "" -#: library/ipaddress.rst:474 +#: library/ipaddress.rst:484 msgid "" "All attributes implemented by address objects are implemented by network " "objects as well. In addition, network objects implement additional " @@ -568,12 +585,12 @@ msgid "" "keys in dictionaries." msgstr "" -#: library/ipaddress.rst:483 +#: library/ipaddress.rst:493 msgid "" "Construct an IPv4 network definition. *address* can be one of the following:" msgstr "" -#: library/ipaddress.rst:485 +#: library/ipaddress.rst:495 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 " @@ -585,26 +602,26 @@ msgid "" "it's considered to be ``/32``." msgstr "" -#: library/ipaddress.rst:494 +#: library/ipaddress.rst:504 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:498 +#: library/ipaddress.rst:508 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:502 +#: library/ipaddress.rst:512 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:505 +#: library/ipaddress.rst:515 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, " @@ -613,92 +630,92 @@ msgid "" "prefix mask (e.g. ``255.255.255.0``)." msgstr "" -#: library/ipaddress.rst:511 +#: library/ipaddress.rst:521 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:735 +#: library/ipaddress.rst:745 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:519 +#: library/ipaddress.rst:529 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:741 +#: library/ipaddress.rst:751 msgid "Added the two-tuple form for the *address* constructor parameter." msgstr "" -#: library/ipaddress.rst:530 +#: library/ipaddress.rst:540 msgid "" "Refer to the corresponding attribute documentation in :class:`IPv4Address`." msgstr "" -#: library/ipaddress.rst:540 +#: library/ipaddress.rst:550 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:545 +#: library/ipaddress.rst:555 msgid "" "The network address for the network. The network address and the prefix " "length together uniquely define a network." msgstr "" -#: library/ipaddress.rst:550 +#: library/ipaddress.rst:560 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:555 +#: library/ipaddress.rst:565 msgid "The host mask, as an :class:`IPv4Address` object." msgstr "" -#: library/ipaddress.rst:559 +#: library/ipaddress.rst:569 msgid "The net mask, as an :class:`IPv4Address` object." msgstr "" -#: library/ipaddress.rst:565 +#: library/ipaddress.rst:575 msgid "" "A string representation of the network, with the mask in prefix notation." msgstr "" -#: library/ipaddress.rst:568 +#: library/ipaddress.rst:578 msgid "" "``with_prefixlen`` and ``compressed`` are always the same as " "``str(network)``. ``exploded`` uses the exploded form the network address." msgstr "" -#: library/ipaddress.rst:574 +#: library/ipaddress.rst:584 msgid "" "A string representation of the network, with the mask in net mask notation." msgstr "" -#: library/ipaddress.rst:579 +#: library/ipaddress.rst:589 msgid "" "A string representation of the network, with the mask in host mask notation." msgstr "" -#: library/ipaddress.rst:584 +#: library/ipaddress.rst:594 msgid "The total number of addresses in the network." msgstr "" -#: library/ipaddress.rst:588 +#: library/ipaddress.rst:598 msgid "Length of the network prefix, in bits." msgstr "" -#: library/ipaddress.rst:592 +#: library/ipaddress.rst:602 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 " @@ -708,20 +725,20 @@ msgid "" "containing the single host address." msgstr "" -#: library/ipaddress.rst:610 +#: library/ipaddress.rst:620 msgid "" "``True`` if this network is partly or wholly contained in *other* or *other* " "is wholly contained in this network." msgstr "" -#: library/ipaddress.rst:615 +#: library/ipaddress.rst:625 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:628 +#: library/ipaddress.rst:638 msgid "" "The subnets that join to make the current network definition, depending on " "the argument values. *prefixlen_diff* is the amount our prefix length " @@ -731,7 +748,7 @@ msgid "" "network objects." msgstr "" -#: library/ipaddress.rst:653 +#: library/ipaddress.rst:663 msgid "" "The supernet containing this network definition, depending on the argument " "values. *prefixlen_diff* is the amount our prefix length should be " @@ -740,33 +757,33 @@ msgid "" "*new_prefix* must be set. Returns a single network object." msgstr "" -#: library/ipaddress.rst:669 +#: library/ipaddress.rst:679 msgid "Return ``True`` if this network is a subnet of *other*." msgstr "" -#: library/ipaddress.rst:680 +#: library/ipaddress.rst:690 msgid "Return ``True`` if this network is a supernet of *other*." msgstr "" -#: library/ipaddress.rst:691 +#: library/ipaddress.rst:701 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:702 +#: library/ipaddress.rst:712 msgid "" "It uses the same ordering and comparison algorithm as \"<\", \"==\", and " "\">\"" msgstr "" -#: library/ipaddress.rst:708 +#: library/ipaddress.rst:718 msgid "" "Construct an IPv6 network definition. *address* can be one of the following:" msgstr "" -#: library/ipaddress.rst:710 +#: library/ipaddress.rst:720 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 " @@ -774,26 +791,26 @@ msgid "" "length is provided, it's considered to be ``/128``." msgstr "" -#: library/ipaddress.rst:715 +#: library/ipaddress.rst:725 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:719 +#: library/ipaddress.rst:729 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:723 +#: library/ipaddress.rst:733 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:726 +#: library/ipaddress.rst:736 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 " @@ -801,14 +818,14 @@ msgid "" "representing the prefix length." msgstr "" -#: library/ipaddress.rst:731 +#: library/ipaddress.rst:741 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:764 +#: library/ipaddress.rst:774 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-" @@ -817,46 +834,46 @@ msgid "" "of 128 will return a list containing the single host address." msgstr "" -#: library/ipaddress.rst:779 +#: library/ipaddress.rst:789 msgid "" "Refer to the corresponding attribute documentation in :class:`IPv4Network`." msgstr "" -#: library/ipaddress.rst:784 +#: library/ipaddress.rst:794 msgid "" "These attribute is true for the network as a whole if it is true for both " "the network address and the broadcast address." msgstr "" -#: library/ipaddress.rst:791 +#: library/ipaddress.rst:801 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:933 +#: library/ipaddress.rst:943 msgid "Logical operators" msgstr "" -#: library/ipaddress.rst:799 +#: library/ipaddress.rst:809 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:804 +#: library/ipaddress.rst:814 msgid "Iteration" msgstr "" -#: library/ipaddress.rst:806 +#: library/ipaddress.rst:816 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:811 +#: library/ipaddress.rst:821 msgid "" ">>> for addr in IPv4Network('192.0.2.0/28'):\n" "... addr\n" @@ -879,15 +896,15 @@ msgid "" "IPv4Address('192.0.2.15')" msgstr "" -#: library/ipaddress.rst:833 +#: library/ipaddress.rst:843 msgid "Networks as containers of addresses" msgstr "" -#: library/ipaddress.rst:835 +#: library/ipaddress.rst:845 msgid "Network objects can act as containers of addresses. Some examples::" msgstr "" -#: library/ipaddress.rst:837 +#: library/ipaddress.rst:847 msgid "" ">>> IPv4Network('192.0.2.0/28')[0]\n" "IPv4Address('192.0.2.0')\n" @@ -899,92 +916,92 @@ msgid "" "False" msgstr "" -#: library/ipaddress.rst:848 +#: library/ipaddress.rst:858 msgid "Interface objects" msgstr "" -#: library/ipaddress.rst:850 +#: library/ipaddress.rst:860 msgid "" "Interface objects are :term:`hashable`, so they can be used as keys in " "dictionaries." msgstr "" -#: library/ipaddress.rst:855 +#: library/ipaddress.rst:865 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:859 +#: library/ipaddress.rst:869 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:865 +#: library/ipaddress.rst:875 msgid "The address (:class:`IPv4Address`) without network information." msgstr "" -#: library/ipaddress.rst:873 +#: library/ipaddress.rst:883 msgid "The network (:class:`IPv4Network`) this interface belongs to." msgstr "" -#: library/ipaddress.rst:881 +#: library/ipaddress.rst:891 msgid "" "A string representation of the interface with the mask in prefix notation." msgstr "" -#: library/ipaddress.rst:889 +#: library/ipaddress.rst:899 msgid "" "A string representation of the interface with the network as a net mask." msgstr "" -#: library/ipaddress.rst:897 +#: library/ipaddress.rst:907 msgid "" "A string representation of the interface with the network as a host mask." msgstr "" -#: library/ipaddress.rst:906 +#: library/ipaddress.rst:916 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:910 +#: library/ipaddress.rst:920 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:920 +#: library/ipaddress.rst:930 msgid "" "Refer to the corresponding attribute documentation in :class:`IPv4Interface`." msgstr "" -#: library/ipaddress.rst:927 +#: library/ipaddress.rst:937 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:935 +#: library/ipaddress.rst:945 msgid "" "Interface objects can be compared with the usual set of logical operators." msgstr "" -#: library/ipaddress.rst:937 +#: library/ipaddress.rst:947 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:941 +#: library/ipaddress.rst:951 msgid "" "For ordering (``<``, ``>``, etc) the rules are different. Interface and " "address objects with the same IP version can be compared, and the address " @@ -993,15 +1010,15 @@ msgid "" "then by their IP addresses." msgstr "" -#: library/ipaddress.rst:949 +#: library/ipaddress.rst:959 msgid "Other Module Level Functions" msgstr "" -#: library/ipaddress.rst:951 +#: library/ipaddress.rst:961 msgid "The module also provides the following module level functions:" msgstr "" -#: library/ipaddress.rst:955 +#: library/ipaddress.rst:965 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:" @@ -1009,7 +1026,7 @@ msgid "" "IP address." msgstr "" -#: library/ipaddress.rst:968 +#: library/ipaddress.rst:978 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:" @@ -1017,7 +1034,7 @@ msgid "" "IP address." msgstr "" -#: library/ipaddress.rst:976 +#: library/ipaddress.rst:986 msgid "" "Return an iterator of the summarized network range given the first and last " "IP addresses. *first* is the first :class:`IPv4Address` or :class:" @@ -1028,7 +1045,7 @@ msgid "" "address version is not 4 or 6." msgstr "" -#: library/ipaddress.rst:992 +#: library/ipaddress.rst:1002 msgid "" "Return an iterator of the collapsed :class:`IPv4Network` or :class:" "`IPv6Network` objects. *addresses* is an :term:`iterable` of :class:" @@ -1036,42 +1053,42 @@ msgid "" "if *addresses* contains mixed version objects." msgstr "" -#: library/ipaddress.rst:1005 +#: library/ipaddress.rst:1015 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:1009 +#: library/ipaddress.rst:1019 msgid "IPv4Address('192.0.2.0') <= IPv4Network('192.0.2.0/24')" msgstr "" -#: library/ipaddress.rst:1011 +#: library/ipaddress.rst:1021 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:1015 +#: library/ipaddress.rst:1025 msgid "*obj* is either a network or address object." msgstr "" -#: library/ipaddress.rst:1019 +#: library/ipaddress.rst:1029 msgid "Custom Exceptions" msgstr "" -#: library/ipaddress.rst:1021 +#: library/ipaddress.rst:1031 msgid "" "To support more specific error reporting from class constructors, the module " "defines the following exceptions:" msgstr "" -#: library/ipaddress.rst:1026 +#: library/ipaddress.rst:1036 msgid "Any value error related to the address." msgstr "" -#: library/ipaddress.rst:1031 +#: library/ipaddress.rst:1041 msgid "Any value error related to the net mask." msgstr "" diff --git a/library/ipc.po b/library/ipc.po index 5a6d639a..ca7b51a5 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 7afa15aa..87d53e5d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 @@ -525,7 +525,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 e1a14245..3e022d9e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -37,22 +37,29 @@ msgstr "" #: library/json.rst:22 msgid "" +"The term \"object\" in the context of JSON processing in Python can be " +"ambiguous. All values in Python are objects. In JSON, an object refers to " +"any data wrapped in curly braces, similar to a Python dictionary." +msgstr "" + +#: library/json.rst:27 +msgid "" "Be cautious when parsing JSON data from untrusted sources. A malicious JSON " "string may cause the decoder to consume considerable CPU and memory " "resources. Limiting the size of data to be parsed is recommended." msgstr "" -#: library/json.rst:26 +#: library/json.rst:31 msgid "" -":mod:`json` exposes an API familiar to users of the standard library :mod:" +"This module exposes an API familiar to users of the standard library :mod:" "`marshal` and :mod:`pickle` modules." msgstr "" -#: library/json.rst:29 +#: library/json.rst:34 msgid "Encoding basic Python object hierarchies::" msgstr "" -#: library/json.rst:31 +#: library/json.rst:36 msgid "" ">>> import json\n" ">>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])\n" @@ -72,22 +79,22 @@ msgid "" "'[\"streaming API\"]'" msgstr "" -#: library/json.rst:48 +#: library/json.rst:53 msgid "Compact encoding::" msgstr "" -#: library/json.rst:50 +#: library/json.rst:55 msgid "" ">>> import json\n" ">>> json.dumps([1, 2, 3, {'4': 5, '6': 7}], separators=(',', ':'))\n" "'[1,2,3,{\"4\":5,\"6\":7}]'" msgstr "" -#: library/json.rst:54 +#: library/json.rst:59 msgid "Pretty printing::" msgstr "" -#: library/json.rst:56 +#: library/json.rst:61 msgid "" ">>> import json\n" ">>> print(json.dumps({'6': 7, '4': 5}, sort_keys=True, indent=4))\n" @@ -97,11 +104,11 @@ msgid "" "}" msgstr "" -#: library/json.rst:63 -msgid "Specializing JSON object encoding::" +#: library/json.rst:68 +msgid "Customizing JSON object encoding::" msgstr "" -#: library/json.rst:65 +#: library/json.rst:70 msgid "" ">>> import json\n" ">>> def custom_json(obj):\n" @@ -114,11 +121,11 @@ msgid "" "'{\"__complex__\": true, \"real\": 1.0, \"imag\": 2.0}'" msgstr "" -#: library/json.rst:74 +#: library/json.rst:79 msgid "Decoding JSON::" msgstr "" -#: library/json.rst:76 +#: library/json.rst:81 msgid "" ">>> import json\n" ">>> json.loads('[\"foo\", {\"bar\":[\"baz\", null, 1.0, 2]}]')\n" @@ -131,11 +138,11 @@ msgid "" "['streaming API']" msgstr "" -#: library/json.rst:86 -msgid "Specializing JSON object decoding::" +#: library/json.rst:91 +msgid "Customizing JSON object decoding::" msgstr "" -#: library/json.rst:88 +#: library/json.rst:93 msgid "" ">>> import json\n" ">>> def as_complex(dct):\n" @@ -151,11 +158,11 @@ msgid "" "Decimal('1.1')" msgstr "" -#: library/json.rst:101 +#: library/json.rst:106 msgid "Extending :class:`JSONEncoder`::" msgstr "" -#: library/json.rst:103 +#: library/json.rst:108 msgid "" ">>> import json\n" ">>> class ComplexEncoder(json.JSONEncoder):\n" @@ -173,11 +180,11 @@ msgid "" "['[2.0', ', 1.0', ']']" msgstr "" -#: library/json.rst:119 +#: library/json.rst:124 msgid "Using :mod:`json.tool` from the shell to validate and pretty-print:" msgstr "" -#: library/json.rst:121 +#: library/json.rst:126 msgid "" "$ echo '{\"json\":\"obj\"}' | python -m json.tool\n" "{\n" @@ -187,11 +194,11 @@ msgid "" "Expecting property name enclosed in double quotes: line 1 column 2 (char 1)" msgstr "" -#: library/json.rst:130 +#: library/json.rst:135 msgid "See :ref:`json-commandline` for detailed documentation." msgstr "" -#: library/json.rst:134 +#: library/json.rst:139 msgid "" "JSON is a subset of `YAML `_ 1.2. The JSON produced by " "this module's default settings (in particular, the default *separators* " @@ -199,24 +206,24 @@ msgid "" "used as a YAML serializer." msgstr "" -#: library/json.rst:141 +#: library/json.rst:146 msgid "" "This module's encoders and decoders preserve input and output order by " "default. Order is only lost if the underlying containers are unordered." msgstr "" -#: library/json.rst:146 +#: library/json.rst:151 msgid "Basic Usage" msgstr "" -#: library/json.rst:153 +#: library/json.rst:158 msgid "" "Serialize *obj* as a JSON formatted stream to *fp* (a ``.write()``-" "supporting :term:`file-like object`) using this :ref:`Python-to-JSON " "conversion table `." msgstr "" -#: library/json.rst:159 +#: library/json.rst:164 msgid "" "Unlike :mod:`pickle` and :mod:`marshal`, JSON is not a framed protocol, so " "trying to serialize multiple objects with repeated calls to :func:`dump` " @@ -227,39 +234,41 @@ msgstr "" msgid "Parameters" msgstr "" -#: library/json.rst:163 +#: library/json.rst:168 msgid "The Python object to be serialized." msgstr "" -#: library/json.rst:166 +#: library/json.rst:171 msgid "" "The file-like object *obj* will be serialized to. The :mod:`!json` module " "always produces :class:`str` objects, not :class:`bytes` objects, therefore " "``fp.write()`` must support :class:`str` input." msgstr "" -#: library/json.rst:173 +#: library/json.rst:178 msgid "" "If ``True``, keys that are not of a basic type (:class:`str`, :class:`int`, :" "class:`float`, :class:`bool`, ``None``) will be skipped instead of raising " "a :exc:`TypeError`. Default ``False``." msgstr "" -#: library/json.rst:179 +#: 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:184 +#: 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:189 +#: 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 " @@ -267,14 +276,14 @@ msgid "" "equivalents (``NaN``, ``Infinity``, ``-Infinity``) are used." msgstr "" -#: library/json.rst:196 +#: 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:203 +#: 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 " @@ -283,7 +292,7 @@ msgid "" "inserted. If ``None`` (the default), the most compact representation is used." msgstr "" -#: library/json.rst:213 +#: library/json.rst:220 msgid "" "A two-tuple: ``(item_separator, key_separator)``. If ``None`` (the default), " "*separators* defaults to ``(', ', ': ')`` if *indent* is ``None``, and " @@ -291,39 +300,39 @@ msgid "" "to eliminate whitespace." msgstr "" -#: library/json.rst:222 +#: 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:229 +#: library/json.rst:236 msgid "" "If ``True``, dictionaries will be outputted sorted by key. Default ``False``." msgstr "" -#: library/json.rst:518 +#: library/json.rst:527 msgid "Allow strings for *indent* in addition to integers." msgstr "" -#: library/json.rst:526 +#: library/json.rst:535 msgid "Use ``(',', ': ')`` as default if *indent* is not ``None``." msgstr "" -#: library/json.rst:338 +#: library/json.rst:345 msgid "" "All optional parameters are now :ref:`keyword-only `." msgstr "" -#: library/json.rst:248 +#: 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:254 +#: 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 " @@ -332,44 +341,44 @@ msgid "" "original one. That is, ``loads(dumps(x)) != x`` if x has non-string keys." msgstr "" -#: library/json.rst:265 +#: library/json.rst:272 msgid "" "Deserialize *fp* to a Python object using the :ref:`JSON-to-Python " "conversion table `." msgstr "" -#: library/json.rst:268 +#: 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:273 +#: 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:280 +#: library/json.rst:287 msgid "" -"If set, a function that is called with the result of any object literal " +"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 " "instead of the :class:`dict`. This feature can be used to implement custom " "decoders, for example `JSON-RPC `_ class hinting. " "Default ``None``." msgstr "" -#: library/json.rst:290 +#: library/json.rst:297 msgid "" -"If set, a function that is called with the result of any object literal " +"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 " "will be used instead of the :class:`dict`. This feature can be used to " "implement custom decoders. If *object_hook* is also set, *object_pairs_hook* " "takes priority. Default ``None``." msgstr "" -#: library/json.rst:300 +#: 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)``. " @@ -377,7 +386,7 @@ msgid "" "class:`decimal.Decimal`." msgstr "" -#: library/json.rst:308 +#: 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)``. " @@ -385,7 +394,7 @@ msgid "" "class:`float`." msgstr "" -#: library/json.rst:316 +#: 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 " @@ -396,38 +405,38 @@ msgstr "" msgid "Raises" msgstr "" -#: library/json.rst:324 +#: library/json.rst:331 msgid "When the data being deserialized is not a valid JSON document." msgstr "" -#: library/json.rst:327 +#: 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:333 +#: library/json.rst:340 msgid "Added the optional *object_pairs_hook* parameter." msgstr "" -#: library/json.rst:334 +#: library/json.rst:341 msgid "*parse_constant* doesn't get called on 'null', 'true', 'false' anymore." msgstr "" -#: library/json.rst:339 +#: 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:342 +#: 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:350 +#: 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 " @@ -435,107 +444,107 @@ msgid "" "table `." msgstr "" -#: library/json.rst:355 +#: 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:359 +#: library/json.rst:366 msgid "The keyword argument *encoding* has been removed." msgstr "" -#: library/json.rst:364 +#: library/json.rst:371 msgid "Encoders and Decoders" msgstr "" -#: library/json.rst:368 +#: library/json.rst:375 msgid "Simple JSON decoder." msgstr "" -#: library/json.rst:370 +#: library/json.rst:377 msgid "Performs the following translations in decoding by default:" msgstr "" -#: library/json.rst:463 +#: library/json.rst:470 msgid "JSON" msgstr "" -#: library/json.rst:463 +#: library/json.rst:470 msgid "Python" msgstr "" -#: library/json.rst:465 +#: library/json.rst:472 msgid "object" msgstr "" -#: library/json.rst:465 +#: library/json.rst:472 msgid "dict" msgstr "" -#: library/json.rst:467 +#: library/json.rst:474 msgid "array" msgstr "" -#: library/json.rst:379 +#: library/json.rst:386 msgid "list" msgstr "" -#: library/json.rst:469 +#: library/json.rst:476 msgid "string" msgstr "" -#: library/json.rst:469 +#: library/json.rst:476 msgid "str" msgstr "" -#: library/json.rst:383 +#: library/json.rst:390 msgid "number (int)" msgstr "" -#: library/json.rst:383 +#: library/json.rst:390 msgid "int" msgstr "" -#: library/json.rst:385 +#: library/json.rst:392 msgid "number (real)" msgstr "" -#: library/json.rst:385 +#: library/json.rst:392 msgid "float" msgstr "" -#: library/json.rst:473 +#: library/json.rst:480 msgid "true" msgstr "" -#: library/json.rst:473 +#: library/json.rst:480 msgid "True" msgstr "" -#: library/json.rst:475 +#: library/json.rst:482 msgid "false" msgstr "" -#: library/json.rst:475 +#: library/json.rst:482 msgid "False" msgstr "" -#: library/json.rst:477 +#: library/json.rst:484 msgid "null" msgstr "" -#: library/json.rst:477 +#: library/json.rst:484 msgid "None" msgstr "" -#: library/json.rst:394 +#: 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:397 +#: 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 " @@ -543,7 +552,7 @@ msgid "" "g. to support `JSON-RPC `_ class hinting)." msgstr "" -#: library/json.rst:402 +#: 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 " @@ -552,11 +561,11 @@ msgid "" "*object_hook* is also defined, the *object_pairs_hook* takes priority." msgstr "" -#: library/json.rst:408 +#: library/json.rst:415 msgid "Added support for *object_pairs_hook*." msgstr "" -#: library/json.rst:411 +#: 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 " @@ -564,7 +573,7 @@ msgid "" "JSON floats (e.g. :class:`decimal.Decimal`)." msgstr "" -#: library/json.rst:416 +#: 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 " @@ -572,14 +581,14 @@ msgid "" "JSON integers (e.g. :class:`float`)." msgstr "" -#: library/json.rst:421 +#: 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:425 +#: 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 " @@ -587,66 +596,66 @@ msgid "" "``'\\n'``, ``'\\r'`` and ``'\\0'``." msgstr "" -#: library/json.rst:430 +#: 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:534 +#: library/json.rst:543 msgid "All parameters are now :ref:`keyword-only `." msgstr "" -#: library/json.rst:438 +#: library/json.rst:445 msgid "" "Return the Python representation of *s* (a :class:`str` instance containing " "a JSON document)." msgstr "" -#: library/json.rst:441 +#: library/json.rst:448 msgid "" ":exc:`JSONDecodeError` will be raised if the given JSON document is not " "valid." msgstr "" -#: library/json.rst:446 +#: 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:450 +#: 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:456 +#: library/json.rst:463 msgid "Extensible JSON encoder for Python data structures." msgstr "" -#: library/json.rst:458 +#: library/json.rst:465 msgid "Supports the following objects and types by default:" msgstr "" -#: library/json.rst:467 +#: library/json.rst:474 msgid "list, tuple" msgstr "" -#: library/json.rst:471 +#: library/json.rst:478 msgid "int, float, int- & float-derived Enums" msgstr "" -#: library/json.rst:471 +#: library/json.rst:478 msgid "number" msgstr "" -#: library/json.rst:480 +#: library/json.rst:487 msgid "Added support for int- and float-derived Enum classes." msgstr "" -#: library/json.rst:483 +#: 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 " @@ -654,7 +663,7 @@ msgid "" "superclass implementation (to raise :exc:`TypeError`)." msgstr "" -#: library/json.rst:488 +#: 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:" @@ -662,14 +671,16 @@ msgid "" "simply skipped." msgstr "" -#: library/json.rst:492 +#: 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:496 +#: 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 " @@ -677,7 +688,7 @@ msgid "" "Otherwise, no such check takes place." msgstr "" -#: library/json.rst:501 +#: 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 " @@ -685,14 +696,14 @@ msgid "" "decoders. Otherwise, it will be a :exc:`ValueError` to encode such floats." msgstr "" -#: library/json.rst:507 +#: 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:511 +#: 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 " @@ -702,7 +713,7 @@ msgid "" "``\"\\t\"``), that string is used to indent each level." msgstr "" -#: library/json.rst:521 +#: library/json.rst:530 msgid "" "If specified, *separators* should be an ``(item_separator, key_separator)`` " "tuple. The default is ``(', ', ': ')`` if *indent* is ``None`` and ``(',', " @@ -710,7 +721,7 @@ msgid "" "specify ``(',', ':')`` to eliminate whitespace." msgstr "" -#: library/json.rst:529 +#: 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 " @@ -718,20 +729,20 @@ msgid "" "`TypeError` is raised." msgstr "" -#: library/json.rst:540 +#: 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:544 +#: library/json.rst:553 msgid "" "For example, to support arbitrary iterators, you could implement :meth:" "`~JSONEncoder.default` like this::" msgstr "" -#: library/json.rst:547 +#: library/json.rst:556 msgid "" "def default(self, o):\n" " try:\n" @@ -744,63 +755,63 @@ msgid "" " return super().default(o)" msgstr "" -#: library/json.rst:560 +#: library/json.rst:569 msgid "" "Return a JSON string representation of a Python data structure, *o*. For " "example::" msgstr "" -#: library/json.rst:563 +#: library/json.rst:572 msgid "" ">>> json.JSONEncoder().encode({\"foo\": [\"bar\", \"baz\"]})\n" "'{\"foo\": [\"bar\", \"baz\"]}'" msgstr "" -#: library/json.rst:569 +#: library/json.rst:578 msgid "" "Encode the given object, *o*, and yield each string representation as " "available. For example::" msgstr "" -#: library/json.rst:572 +#: library/json.rst:581 msgid "" "for chunk in json.JSONEncoder().iterencode(bigobject):\n" " mysocket.write(chunk)" msgstr "" -#: library/json.rst:577 +#: library/json.rst:586 msgid "Exceptions" msgstr "" -#: library/json.rst:581 +#: library/json.rst:590 msgid "Subclass of :exc:`ValueError` with the following additional attributes:" msgstr "" -#: library/json.rst:585 +#: library/json.rst:594 msgid "The unformatted error message." msgstr "" -#: library/json.rst:589 +#: library/json.rst:598 msgid "The JSON document being parsed." msgstr "" -#: library/json.rst:593 +#: library/json.rst:602 msgid "The start index of *doc* where parsing failed." msgstr "" -#: library/json.rst:597 +#: library/json.rst:606 msgid "The line corresponding to *pos*." msgstr "" -#: library/json.rst:601 +#: library/json.rst:610 msgid "The column corresponding to *pos*." msgstr "" -#: library/json.rst:607 +#: library/json.rst:616 msgid "Standard Compliance and Interoperability" msgstr "" -#: library/json.rst:609 +#: library/json.rst:618 msgid "" "The JSON format is specified by :rfc:`7159` and by `ECMA-404 `_. This " @@ -809,48 +820,48 @@ msgid "" "parameters other than those explicitly mentioned, are not considered." msgstr "" -#: library/json.rst:615 +#: 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:618 +#: library/json.rst:627 msgid "Infinite and NaN number values are accepted and output;" msgstr "" -#: library/json.rst:619 +#: 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:622 +#: 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:627 +#: library/json.rst:636 msgid "Character Encodings" msgstr "" -#: library/json.rst:629 +#: 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:632 +#: 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:636 +#: 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 " @@ -858,7 +869,7 @@ msgid "" "encodings." msgstr "" -#: library/json.rst:641 +#: 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 " @@ -867,7 +878,7 @@ msgid "" "an initial BOM is present." msgstr "" -#: library/json.rst:647 +#: 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 " @@ -876,18 +887,18 @@ msgid "" "class:`str`) code points for such sequences." msgstr "" -#: library/json.rst:655 +#: library/json.rst:664 msgid "Infinite and NaN Number Values" msgstr "" -#: library/json.rst:657 +#: 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:661 +#: library/json.rst:670 msgid "" ">>> # Neither of these calls raises an exception, but the results are not " "valid JSON\n" @@ -902,18 +913,18 @@ msgid "" "nan" msgstr "" -#: library/json.rst:672 +#: 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:678 +#: library/json.rst:687 msgid "Repeated Names Within an Object" msgstr "" -#: library/json.rst:680 +#: 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 " @@ -921,22 +932,22 @@ msgid "" "but the last name-value pair for a given name::" msgstr "" -#: library/json.rst:685 +#: 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:689 +#: library/json.rst:698 msgid "The *object_pairs_hook* parameter can be used to alter this behavior." msgstr "" -#: library/json.rst:693 +#: library/json.rst:702 msgid "Top-level Non-Object, Non-Array Values" msgstr "" -#: library/json.rst:695 +#: 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 " @@ -946,43 +957,43 @@ msgid "" "its serializer or its deserializer." msgstr "" -#: library/json.rst:702 +#: library/json.rst:711 msgid "" "Regardless, for maximum interoperability, you may wish to voluntarily adhere " "to the restriction yourself." msgstr "" -#: library/json.rst:707 +#: library/json.rst:716 msgid "Implementation Limitations" msgstr "" -#: library/json.rst:709 +#: library/json.rst:718 msgid "Some JSON deserializer implementations may set limits on:" msgstr "" -#: library/json.rst:711 +#: library/json.rst:720 msgid "the size of accepted JSON texts" msgstr "" -#: library/json.rst:712 +#: library/json.rst:721 msgid "the maximum level of nesting of JSON objects and arrays" msgstr "" -#: library/json.rst:713 +#: library/json.rst:722 msgid "the range and precision of JSON numbers" msgstr "" -#: library/json.rst:714 +#: library/json.rst:723 msgid "the content and maximum length of JSON strings" msgstr "" -#: library/json.rst:716 +#: 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:719 +#: 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 " @@ -993,27 +1004,27 @@ msgid "" "as :class:`decimal.Decimal`." msgstr "" -#: library/json.rst:732 +#: library/json.rst:741 msgid "Command Line Interface" msgstr "" -#: library/json.rst:737 +#: library/json.rst:746 msgid "**Source code:** :source:`Lib/json/tool.py`" msgstr "" -#: library/json.rst:741 +#: library/json.rst:750 msgid "" "The :mod:`json.tool` module provides a simple command line interface to " "validate and pretty-print JSON objects." msgstr "" -#: library/json.rst:744 +#: library/json.rst:753 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:747 +#: library/json.rst:756 msgid "" "$ echo '{\"json\": \"obj\"}' | python -m json.tool\n" "{\n" @@ -1023,21 +1034,21 @@ msgid "" "Expecting property name enclosed in double quotes: line 1 column 2 (char 1)" msgstr "" -#: library/json.rst:756 +#: library/json.rst:765 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:763 +#: library/json.rst:772 msgid "Command line options" msgstr "" -#: library/json.rst:767 +#: library/json.rst:776 msgid "The JSON file to be validated or pretty-printed:" msgstr "" -#: library/json.rst:769 +#: library/json.rst:778 msgid "" "$ python -m json.tool mp_films.json\n" "[\n" @@ -1052,43 +1063,43 @@ msgid "" "]" msgstr "" -#: library/json.rst:783 +#: library/json.rst:792 msgid "If *infile* is not specified, read from :data:`sys.stdin`." msgstr "" -#: library/json.rst:787 +#: library/json.rst:796 msgid "" "Write the output of the *infile* to the given *outfile*. Otherwise, write it " "to :data:`sys.stdout`." msgstr "" -#: library/json.rst:792 +#: library/json.rst:801 msgid "Sort the output of dictionaries alphabetically by key." msgstr "" -#: library/json.rst:798 +#: library/json.rst:807 msgid "" "Disable escaping of non-ascii characters, see :func:`json.dumps` for more " "information." msgstr "" -#: library/json.rst:804 +#: library/json.rst:813 msgid "Parse every input line as separate JSON object." msgstr "" -#: library/json.rst:810 +#: library/json.rst:819 msgid "Mutually exclusive options for whitespace control." msgstr "" -#: library/json.rst:816 +#: library/json.rst:825 msgid "Show the help message." msgstr "" -#: library/json.rst:820 +#: library/json.rst:829 msgid "Footnotes" msgstr "" -#: library/json.rst:821 +#: library/json.rst:830 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 40da9e9a..869876cf 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 129e13e5..82312a4a 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 fa65a0ae..3ffe4397 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 22530048..c9dcedf9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,38 +457,38 @@ 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:323 +#: library/locale.rst:328 msgid "" "Tries to determine the default locale settings and returns them as a tuple " "of the form ``(language code, encoding)``." msgstr "" -#: library/locale.rst:326 +#: library/locale.rst:331 msgid "" "According to POSIX, a program which has not called ``setlocale(LC_ALL, '')`` " "runs using the portable ``'C'`` locale. Calling ``setlocale(LC_ALL, '')`` " @@ -491,7 +497,7 @@ msgid "" "emulate the behavior in the way described above." msgstr "" -#: library/locale.rst:332 +#: library/locale.rst:337 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 " @@ -501,21 +507,23 @@ msgid "" "``'LC_CTYPE'``, ``'LANG'`` and ``'LANGUAGE'``, in that order." msgstr "" -#: library/locale.rst:352 +#: library/locale.rst:359 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:348 +#: library/locale.rst:355 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:359 +#: library/locale.rst:368 msgid "" "Return the :term:`locale encoding` used for text data, according to user " "preferences. User preferences are expressed differently on different " @@ -523,72 +531,72 @@ msgid "" "this function only returns a guess." msgstr "" -#: library/locale.rst:364 +#: library/locale.rst:373 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:368 +#: library/locale.rst:377 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:390 +#: library/locale.rst:399 msgid "" "The :ref:`Python preinitialization ` configures the LC_CTYPE " "locale. See also the :term:`filesystem encoding and error handler`." msgstr "" -#: library/locale.rst:375 +#: library/locale.rst:384 msgid "" "The function now always returns ``\"utf-8\"`` on Android or if the :ref:" "`Python UTF-8 Mode ` is enabled." msgstr "" -#: library/locale.rst:382 +#: library/locale.rst:391 msgid "Get the current :term:`locale encoding`:" msgstr "" -#: library/locale.rst:384 +#: library/locale.rst:393 msgid "On Android and VxWorks, return ``\"utf-8\"``." msgstr "" -#: library/locale.rst:385 +#: library/locale.rst:394 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:388 +#: library/locale.rst:397 msgid "On Windows, return the ANSI code page." msgstr "" -#: library/locale.rst:393 +#: library/locale.rst:402 msgid "" "This function is similar to :func:`getpreferredencoding(False) " "` except this function ignores the :ref:`Python UTF-8 " "Mode `." msgstr "" -#: library/locale.rst:402 +#: library/locale.rst:411 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:406 +#: library/locale.rst:415 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:412 +#: library/locale.rst:421 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 " @@ -596,7 +604,7 @@ msgid "" "is equal to it." msgstr "" -#: library/locale.rst:420 +#: library/locale.rst:429 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, " @@ -604,7 +612,7 @@ msgid "" "repeatedly, e.g. when collating a sequence of strings." msgstr "" -#: library/locale.rst:429 +#: library/locale.rst:438 msgid "" "Formats a number *val* according to the current :const:`LC_NUMERIC` setting. " "The format follows the conventions of the ``%`` operator. For floating-" @@ -612,29 +620,29 @@ msgid "" "is ``True``, also takes the grouping into account." msgstr "" -#: library/locale.rst:434 +#: library/locale.rst:443 msgid "" "If *monetary* is true, the conversion uses monetary thousands separator and " "grouping strings." msgstr "" -#: library/locale.rst:437 +#: library/locale.rst:446 msgid "" "Processes formatting specifiers as in ``format % val``, but takes the " "current locale settings into account." msgstr "" -#: library/locale.rst:440 +#: library/locale.rst:449 msgid "The *monetary* keyword parameter was added." msgstr "" -#: library/locale.rst:446 +#: library/locale.rst:455 msgid "" "Formats a number *val* according to the current :const:`LC_MONETARY` " "settings." msgstr "" -#: library/locale.rst:448 +#: library/locale.rst:457 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), " @@ -642,43 +650,43 @@ msgid "" "not the default), the international currency symbol is used." msgstr "" -#: library/locale.rst:455 +#: library/locale.rst:464 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:461 +#: library/locale.rst:470 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:467 +#: library/locale.rst:476 msgid "" "Converts a string into a normalized number string, following the :const:" "`LC_NUMERIC` settings." msgstr "" -#: library/locale.rst:475 +#: library/locale.rst:484 msgid "" "Converts a normalized number string into a formatted string following the :" "const:`LC_NUMERIC` settings." msgstr "" -#: library/locale.rst:483 +#: library/locale.rst:492 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:489 +#: library/locale.rst:498 msgid "" "Converts a string to an integer, following the :const:`LC_NUMERIC` " "conventions." msgstr "" -#: library/locale.rst:494 +#: library/locale.rst:503 msgid "" "Locale category for the character type functions. Most importantly, this " "category defines the text encoding, i.e. how bytes are interpreted as " @@ -688,32 +696,32 @@ msgid "" "SSH connections." msgstr "" -#: library/locale.rst:501 +#: library/locale.rst:510 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:508 +#: library/locale.rst:517 msgid "" "Locale category for sorting strings. The functions :func:`strcoll` and :" "func:`strxfrm` of the :mod:`locale` module are affected." msgstr "" -#: library/locale.rst:514 +#: library/locale.rst:523 msgid "" "Locale category for the formatting of time. The function :func:`time." "strftime` follows these conventions." msgstr "" -#: library/locale.rst:520 +#: library/locale.rst:529 msgid "" "Locale category for formatting of monetary values. The available options " "are available from the :func:`localeconv` function." msgstr "" -#: library/locale.rst:526 +#: library/locale.rst:535 msgid "" "Locale category for message display. Python currently does not support " "application specific locale-aware messages. Messages displayed by the " @@ -721,13 +729,13 @@ msgid "" "affected by this category." msgstr "" -#: library/locale.rst:531 +#: library/locale.rst:540 msgid "" "This value may not be available on operating systems not conforming to the " "POSIX standard, most notably Windows." msgstr "" -#: library/locale.rst:537 +#: library/locale.rst:546 msgid "" "Locale category for formatting numbers. The functions :func:" "`format_string`, :func:`atoi`, :func:`atof` and :func:`.str` of the :mod:" @@ -735,7 +743,7 @@ msgid "" "operations are not affected." msgstr "" -#: library/locale.rst:545 +#: library/locale.rst:554 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 " @@ -745,17 +753,17 @@ msgid "" "settings." msgstr "" -#: library/locale.rst:554 +#: library/locale.rst:563 msgid "" "This is a symbolic constant used for different values returned by :func:" "`localeconv`." msgstr "" -#: library/locale.rst:558 +#: library/locale.rst:567 msgid "Example::" msgstr "" -#: library/locale.rst:560 +#: library/locale.rst:569 msgid "" ">>> import locale\n" ">>> loc = locale.getlocale() # get current locale\n" @@ -768,11 +776,11 @@ msgid "" ">>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale" msgstr "" -#: library/locale.rst:571 +#: library/locale.rst:580 msgid "Background, details, hints, tips and caveats" msgstr "" -#: library/locale.rst:573 +#: library/locale.rst:582 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 " @@ -780,7 +788,7 @@ msgid "" "This makes the locale somewhat painful to use correctly." msgstr "" -#: library/locale.rst:578 +#: library/locale.rst:587 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 :" @@ -790,7 +798,7 @@ msgid "" "categories by calling ``setlocale(LC_ALL, '')``." msgstr "" -#: library/locale.rst:585 +#: library/locale.rst:594 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 " @@ -798,7 +806,7 @@ msgid "" "that happen to run before the settings have been restored." msgstr "" -#: library/locale.rst:590 +#: library/locale.rst:599 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 " @@ -809,14 +817,14 @@ msgid "" "settings." msgstr "" -#: library/locale.rst:597 +#: library/locale.rst:606 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:601 +#: library/locale.rst:610 msgid "" "There is no way to perform case conversions and character classifications " "according to the locale. For (Unicode) text strings these are done " @@ -827,11 +835,85 @@ msgid "" "whitespace." msgstr "" -#: library/locale.rst:612 +#: library/locale.rst:621 +msgid "Locale names" +msgstr "" + +#: library/locale.rst:623 +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:626 +msgid "On Posix platforms, it usually has the format [1]_:" +msgstr "" + +#: library/locale.rst:631 +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:637 +msgid "" +"On Windows, several formats are supported. [2]_ [3]_ A subset of `IETF BCP " +"47`_ tags:" +msgstr "" + +#: library/locale.rst:644 +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:651 +msgid "Windows also supports locale names in the format:" +msgstr "" + +#: library/locale.rst:656 +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:661 +msgid "The \"C\" locale is supported on all platforms." +msgstr "" + +#: library/locale.rst:668 +msgid "" +"`IEEE Std 1003.1-2024; 8.2 Internationalization Variables `_" +msgstr "" + +#: library/locale.rst:669 +msgid "" +"`UCRT Locale names, Languages, and Country/Region strings `_" +msgstr "" + +#: library/locale.rst:670 +msgid "" +"`Locale Names `_" +msgstr "" + +#: library/locale.rst:676 msgid "For extension writers and programs that embed Python" msgstr "" -#: library/locale.rst:614 +#: library/locale.rst:678 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 " @@ -839,7 +921,7 @@ msgid "" "whether or not the locale is ``C``)." msgstr "" -#: library/locale.rst:619 +#: library/locale.rst:683 msgid "" "When Python code uses the :mod:`locale` module to change the locale, this " "also affects the embedding application. If the embedding application " @@ -849,11 +931,11 @@ msgid "" "accessible as a shared library." msgstr "" -#: library/locale.rst:630 +#: library/locale.rst:694 msgid "Access to message catalogs" msgstr "" -#: library/locale.rst:639 +#: library/locale.rst:703 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:" @@ -864,7 +946,7 @@ msgid "" "locating message catalogs." msgstr "" -#: library/locale.rst:646 +#: library/locale.rst:710 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 513ef0f5..d75a2b37 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -765,10 +765,10 @@ msgstr "" #: library/logging.config.rst:551 msgid "" -"You can also specify a special key ``'.'`` whose value is a dictionary is a " -"mapping of attribute names to values. If found, the specified attributes " -"will be set on the user-defined object before it is returned. Thus, with the " -"following configuration::" +"You can also specify a special key ``'.'`` whose value is a mapping of " +"attribute names to values. If found, the specified attributes will be set on " +"the user-defined object before it is returned. Thus, with the following " +"configuration::" msgstr "" #: library/logging.config.rst:556 @@ -813,7 +813,7 @@ msgid "" "handler has been configured) it points to the configured handler instance. " "Thus, ``cfg://handlers.foo`` could resolve to either a dictionary or a " "handler instance. In general, it is wise to name handlers in a way such that " -"dependent handlers are configured _after_ any handlers they depend on; that " +"dependent handlers are configured *after* any handlers they depend on; that " "allows something like ``cfg://handlers.foo`` to be used in configuring a " "handler that depends on handler ``foo``. If that dependent handler were " "named ``bar``, problems would result, because the configuration of ``bar`` " diff --git a/library/logging.handlers.po b/library/logging.handlers.po index 251775ab..a0a648ee 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -145,14 +145,14 @@ msgid "" msgstr "" #: library/logging.handlers.rst:105 library/logging.handlers.rst:190 -#: library/logging.handlers.rst:338 library/logging.handlers.rst:444 +#: library/logging.handlers.rst:338 library/logging.handlers.rst:448 msgid "" "As well as string values, :class:`~pathlib.Path` objects are also accepted " "for the *filename* argument." msgstr "" #: library/logging.handlers.rst:109 library/logging.handlers.rst:194 -#: library/logging.handlers.rst:342 library/logging.handlers.rst:448 +#: library/logging.handlers.rst:342 library/logging.handlers.rst:452 msgid "The *errors* parameter was added." msgstr "" @@ -413,7 +413,7 @@ msgid "" "they are renamed to :file:`app.log.2`, :file:`app.log.3` etc. respectively." msgstr "" -#: library/logging.handlers.rst:347 library/logging.handlers.rst:453 +#: library/logging.handlers.rst:347 library/logging.handlers.rst:457 msgid "Does a rollover, as described above." msgstr "" @@ -423,18 +423,24 @@ msgid "" "previously." msgstr "" -#: library/logging.handlers.rst:358 +#: library/logging.handlers.rst:357 +msgid "" +"See if the supplied record would cause the file to exceed the configured " +"size limit." +msgstr "" + +#: library/logging.handlers.rst:362 msgid "TimedRotatingFileHandler" msgstr "" -#: library/logging.handlers.rst:360 +#: library/logging.handlers.rst:364 msgid "" "The :class:`TimedRotatingFileHandler` class, located in the :mod:`logging." "handlers` module, supports rotation of disk log files at certain timed " "intervals." msgstr "" -#: library/logging.handlers.rst:367 +#: library/logging.handlers.rst:371 msgid "" "Returns a new instance of the :class:`TimedRotatingFileHandler` class. The " "specified file is opened and used as the stream for logging. On rotating it " @@ -442,89 +448,89 @@ msgid "" "*when* and *interval*." msgstr "" -#: library/logging.handlers.rst:372 +#: library/logging.handlers.rst:376 msgid "" "You can use the *when* to specify the type of *interval*. The list of " "possible values is below. Note that they are not case sensitive." msgstr "" -#: library/logging.handlers.rst:376 +#: library/logging.handlers.rst:380 msgid "Value" msgstr "" -#: library/logging.handlers.rst:376 +#: library/logging.handlers.rst:380 msgid "Type of interval" msgstr "" -#: library/logging.handlers.rst:376 +#: library/logging.handlers.rst:380 msgid "If/how *atTime* is used" msgstr "" -#: library/logging.handlers.rst:378 +#: library/logging.handlers.rst:382 msgid "``'S'``" msgstr "" -#: library/logging.handlers.rst:378 +#: library/logging.handlers.rst:382 msgid "Seconds" msgstr "" -#: library/logging.handlers.rst:378 library/logging.handlers.rst:380 #: library/logging.handlers.rst:382 library/logging.handlers.rst:384 +#: library/logging.handlers.rst:386 library/logging.handlers.rst:388 msgid "Ignored" msgstr "" -#: library/logging.handlers.rst:380 +#: library/logging.handlers.rst:384 msgid "``'M'``" msgstr "" -#: library/logging.handlers.rst:380 +#: library/logging.handlers.rst:384 msgid "Minutes" msgstr "" -#: library/logging.handlers.rst:382 +#: library/logging.handlers.rst:386 msgid "``'H'``" msgstr "" -#: library/logging.handlers.rst:382 +#: library/logging.handlers.rst:386 msgid "Hours" msgstr "" -#: library/logging.handlers.rst:384 +#: library/logging.handlers.rst:388 msgid "``'D'``" msgstr "" -#: library/logging.handlers.rst:384 +#: library/logging.handlers.rst:388 msgid "Days" msgstr "" -#: library/logging.handlers.rst:386 +#: library/logging.handlers.rst:390 msgid "``'W0'-'W6'``" msgstr "" -#: library/logging.handlers.rst:386 +#: library/logging.handlers.rst:390 msgid "Weekday (0=Monday)" msgstr "" -#: library/logging.handlers.rst:386 library/logging.handlers.rst:389 +#: library/logging.handlers.rst:390 library/logging.handlers.rst:393 msgid "Used to compute initial rollover time" msgstr "" -#: library/logging.handlers.rst:389 +#: library/logging.handlers.rst:393 msgid "``'midnight'``" msgstr "" -#: library/logging.handlers.rst:389 +#: library/logging.handlers.rst:393 msgid "Roll over at midnight, if *atTime* not specified, else at time *atTime*" msgstr "" -#: library/logging.handlers.rst:394 +#: library/logging.handlers.rst:398 msgid "" "When using weekday-based rotation, specify 'W0' for Monday, 'W1' for " "Tuesday, and so on up to 'W6' for Sunday. In this case, the value passed for " "*interval* isn't used." msgstr "" -#: library/logging.handlers.rst:398 +#: library/logging.handlers.rst:402 msgid "" "The system will save old log files by appending extensions to the filename. " "The extensions are date-and-time based, using the strftime format ``%Y-%m-" @@ -532,20 +538,20 @@ msgid "" "interval." msgstr "" -#: library/logging.handlers.rst:403 +#: library/logging.handlers.rst:407 msgid "" "When computing the next rollover time for the first time (when the handler " "is created), the last modification time of an existing log file, or else the " "current time, is used to compute when the next rotation will occur." msgstr "" -#: library/logging.handlers.rst:407 +#: library/logging.handlers.rst:411 msgid "" "If the *utc* argument is true, times in UTC will be used; otherwise local " "time is used." msgstr "" -#: library/logging.handlers.rst:410 +#: library/logging.handlers.rst:414 msgid "" "If *backupCount* is nonzero, at most *backupCount* files will be kept, and " "if more would be created when rollover occurs, the oldest one is deleted. " @@ -553,13 +559,13 @@ msgid "" "changing the interval may leave old files lying around." msgstr "" -#: library/logging.handlers.rst:415 +#: library/logging.handlers.rst:419 msgid "" "If *delay* is true, then file opening is deferred until the first call to :" "meth:`emit`." msgstr "" -#: library/logging.handlers.rst:418 +#: library/logging.handlers.rst:422 msgid "" "If *atTime* is not ``None``, it must be a ``datetime.time`` instance which " "specifies the time of day when rollover occurs, for the cases where rollover " @@ -569,13 +575,13 @@ msgid "" "normal interval calculation." msgstr "" -#: library/logging.handlers.rst:425 +#: library/logging.handlers.rst:429 msgid "" "If *errors* is specified, it's used to determine how encoding errors are " "handled." msgstr "" -#: library/logging.handlers.rst:428 +#: library/logging.handlers.rst:432 msgid "" "Calculation of the initial rollover time is done when the handler is " "initialised. Calculation of subsequent rollover times is done only when " @@ -590,51 +596,57 @@ msgid "" "to the minutes where no output (and hence no rollover) occurred." msgstr "" -#: library/logging.handlers.rst:441 +#: library/logging.handlers.rst:445 msgid "*atTime* parameter was added." msgstr "" -#: library/logging.handlers.rst:457 +#: library/logging.handlers.rst:461 msgid "" "Outputs the record to the file, catering for rollover as described above." msgstr "" -#: library/logging.handlers.rst:461 +#: library/logging.handlers.rst:465 msgid "" "Returns a list of filenames which should be deleted as part of rollover. " "These are the absolute paths of the oldest backup log files written by the " "handler." msgstr "" -#: library/logging.handlers.rst:467 +#: 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:476 msgid "SocketHandler" msgstr "" -#: library/logging.handlers.rst:469 +#: 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:475 +#: 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:478 +#: 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:484 +#: library/logging.handlers.rst:493 msgid "Closes the socket." msgstr "" -#: library/logging.handlers.rst:489 +#: 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 " @@ -643,35 +655,35 @@ msgid "" "`~logging.LogRecord`, use the :func:`~logging.makeLogRecord` function." msgstr "" -#: library/logging.handlers.rst:499 +#: 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:506 +#: 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:513 +#: 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:517 +#: 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:521 +#: 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 " @@ -680,20 +692,20 @@ msgid "" "objects on the receiving end." msgstr "" -#: library/logging.handlers.rst:530 +#: 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:534 +#: 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:540 +#: 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 " @@ -704,23 +716,23 @@ msgid "" "each time up to a maximum of 30 seconds." msgstr "" -#: library/logging.handlers.rst:548 +#: library/logging.handlers.rst:557 msgid "This behaviour is controlled by the following handler attributes:" msgstr "" -#: library/logging.handlers.rst:550 +#: library/logging.handlers.rst:559 msgid "``retryStart`` (initial delay, defaulting to 1.0 seconds)." msgstr "" -#: library/logging.handlers.rst:551 +#: library/logging.handlers.rst:560 msgid "``retryFactor`` (multiplier, defaulting to 2.0)." msgstr "" -#: library/logging.handlers.rst:552 +#: library/logging.handlers.rst:561 msgid "``retryMax`` (maximum delay, defaulting to 30.0 seconds)." msgstr "" -#: library/logging.handlers.rst:554 +#: 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 " @@ -728,25 +740,25 @@ msgid "" "during the delay period)." msgstr "" -#: library/logging.handlers.rst:563 +#: library/logging.handlers.rst:572 msgid "DatagramHandler" msgstr "" -#: library/logging.handlers.rst:565 +#: 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:572 +#: 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:575 +#: 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 " @@ -756,13 +768,13 @@ msgid "" "looked-up IP address rather than the hostname." msgstr "" -#: library/logging.handlers.rst:582 +#: 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:588 +#: 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 " @@ -770,29 +782,29 @@ msgid "" "LogRecord`, use the :func:`~logging.makeLogRecord` function." msgstr "" -#: library/logging.handlers.rst:597 +#: 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:603 +#: 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:610 +#: library/logging.handlers.rst:619 msgid "SysLogHandler" msgstr "" -#: library/logging.handlers.rst:612 +#: 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:618 +#: 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* " @@ -807,7 +819,7 @@ msgid "" "rsyslog), specify a value of :const:`socket.SOCK_STREAM`." msgstr "" -#: library/logging.handlers.rst:630 +#: library/logging.handlers.rst:639 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 " @@ -818,26 +830,26 @@ msgid "" "platforms). On Windows, you pretty much have to use the UDP option." msgstr "" -#: library/logging.handlers.rst:639 +#: library/logging.handlers.rst:648 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:643 +#: library/logging.handlers.rst:652 msgid "See :gh:`91070` for more information." msgstr "" -#: library/logging.handlers.rst:645 +#: library/logging.handlers.rst:654 msgid "*socktype* was added." msgstr "" -#: library/logging.handlers.rst:651 +#: library/logging.handlers.rst:660 msgid "Closes the socket to the remote host." msgstr "" -#: library/logging.handlers.rst:655 +#: library/logging.handlers.rst:664 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 " @@ -846,13 +858,13 @@ msgid "" "socket at that point." msgstr "" -#: library/logging.handlers.rst:665 +#: library/logging.handlers.rst:674 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:668 +#: library/logging.handlers.rst:677 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 " @@ -863,7 +875,7 @@ msgid "" "byte on as part of the message." msgstr "" -#: library/logging.handlers.rst:677 +#: library/logging.handlers.rst:686 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 " @@ -873,7 +885,7 @@ msgid "" "*not* append the NUL terminator." msgstr "" -#: library/logging.handlers.rst:684 +#: library/logging.handlers.rst:693 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 " @@ -884,260 +896,260 @@ msgid "" "bytes, and is prepended to the message exactly as is." msgstr "" -#: library/logging.handlers.rst:695 +#: library/logging.handlers.rst:704 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:699 +#: library/logging.handlers.rst:708 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:702 +#: library/logging.handlers.rst:711 msgid "**Priorities**" msgstr "" -#: library/logging.handlers.rst:705 library/logging.handlers.rst:727 +#: library/logging.handlers.rst:714 library/logging.handlers.rst:736 msgid "Name (string)" msgstr "" -#: library/logging.handlers.rst:705 library/logging.handlers.rst:727 +#: library/logging.handlers.rst:714 library/logging.handlers.rst:736 msgid "Symbolic value" msgstr "" -#: library/logging.handlers.rst:707 +#: library/logging.handlers.rst:716 msgid "``alert``" msgstr "" -#: library/logging.handlers.rst:707 +#: library/logging.handlers.rst:716 msgid "LOG_ALERT" msgstr "" -#: library/logging.handlers.rst:709 +#: library/logging.handlers.rst:718 msgid "``crit`` or ``critical``" msgstr "" -#: library/logging.handlers.rst:709 +#: library/logging.handlers.rst:718 msgid "LOG_CRIT" msgstr "" -#: library/logging.handlers.rst:711 +#: library/logging.handlers.rst:720 msgid "``debug``" msgstr "" -#: library/logging.handlers.rst:711 +#: library/logging.handlers.rst:720 msgid "LOG_DEBUG" msgstr "" -#: library/logging.handlers.rst:713 +#: library/logging.handlers.rst:722 msgid "``emerg`` or ``panic``" msgstr "" -#: library/logging.handlers.rst:713 +#: library/logging.handlers.rst:722 msgid "LOG_EMERG" msgstr "" -#: library/logging.handlers.rst:715 +#: library/logging.handlers.rst:724 msgid "``err`` or ``error``" msgstr "" -#: library/logging.handlers.rst:715 +#: library/logging.handlers.rst:724 msgid "LOG_ERR" msgstr "" -#: library/logging.handlers.rst:717 +#: library/logging.handlers.rst:726 msgid "``info``" msgstr "" -#: library/logging.handlers.rst:717 +#: library/logging.handlers.rst:726 msgid "LOG_INFO" msgstr "" -#: library/logging.handlers.rst:719 +#: library/logging.handlers.rst:728 msgid "``notice``" msgstr "" -#: library/logging.handlers.rst:719 +#: library/logging.handlers.rst:728 msgid "LOG_NOTICE" msgstr "" -#: library/logging.handlers.rst:721 +#: library/logging.handlers.rst:730 msgid "``warn`` or ``warning``" msgstr "" -#: library/logging.handlers.rst:721 +#: library/logging.handlers.rst:730 msgid "LOG_WARNING" msgstr "" -#: library/logging.handlers.rst:724 +#: library/logging.handlers.rst:733 msgid "**Facilities**" msgstr "" -#: library/logging.handlers.rst:729 +#: library/logging.handlers.rst:738 msgid "``auth``" msgstr "" -#: library/logging.handlers.rst:729 +#: library/logging.handlers.rst:738 msgid "LOG_AUTH" msgstr "" -#: library/logging.handlers.rst:731 +#: library/logging.handlers.rst:740 msgid "``authpriv``" msgstr "" -#: library/logging.handlers.rst:731 +#: library/logging.handlers.rst:740 msgid "LOG_AUTHPRIV" msgstr "" -#: library/logging.handlers.rst:733 +#: library/logging.handlers.rst:742 msgid "``cron``" msgstr "" -#: library/logging.handlers.rst:733 +#: library/logging.handlers.rst:742 msgid "LOG_CRON" msgstr "" -#: library/logging.handlers.rst:735 +#: library/logging.handlers.rst:744 msgid "``daemon``" msgstr "" -#: library/logging.handlers.rst:735 +#: library/logging.handlers.rst:744 msgid "LOG_DAEMON" msgstr "" -#: library/logging.handlers.rst:737 +#: library/logging.handlers.rst:746 msgid "``ftp``" msgstr "" -#: library/logging.handlers.rst:737 +#: library/logging.handlers.rst:746 msgid "LOG_FTP" msgstr "" -#: library/logging.handlers.rst:739 +#: library/logging.handlers.rst:748 msgid "``kern``" msgstr "" -#: library/logging.handlers.rst:739 +#: library/logging.handlers.rst:748 msgid "LOG_KERN" msgstr "" -#: library/logging.handlers.rst:741 +#: library/logging.handlers.rst:750 msgid "``lpr``" msgstr "" -#: library/logging.handlers.rst:741 +#: library/logging.handlers.rst:750 msgid "LOG_LPR" msgstr "" -#: library/logging.handlers.rst:743 +#: library/logging.handlers.rst:752 msgid "``mail``" msgstr "" -#: library/logging.handlers.rst:743 +#: library/logging.handlers.rst:752 msgid "LOG_MAIL" msgstr "" -#: library/logging.handlers.rst:745 +#: library/logging.handlers.rst:754 msgid "``news``" msgstr "" -#: library/logging.handlers.rst:745 +#: library/logging.handlers.rst:754 msgid "LOG_NEWS" msgstr "" -#: library/logging.handlers.rst:747 +#: library/logging.handlers.rst:756 msgid "``syslog``" msgstr "" -#: library/logging.handlers.rst:747 +#: library/logging.handlers.rst:756 msgid "LOG_SYSLOG" msgstr "" -#: library/logging.handlers.rst:749 +#: library/logging.handlers.rst:758 msgid "``user``" msgstr "" -#: library/logging.handlers.rst:749 +#: library/logging.handlers.rst:758 msgid "LOG_USER" msgstr "" -#: library/logging.handlers.rst:751 +#: library/logging.handlers.rst:760 msgid "``uucp``" msgstr "" -#: library/logging.handlers.rst:751 +#: library/logging.handlers.rst:760 msgid "LOG_UUCP" msgstr "" -#: library/logging.handlers.rst:753 +#: library/logging.handlers.rst:762 msgid "``local0``" msgstr "" -#: library/logging.handlers.rst:753 +#: library/logging.handlers.rst:762 msgid "LOG_LOCAL0" msgstr "" -#: library/logging.handlers.rst:755 +#: library/logging.handlers.rst:764 msgid "``local1``" msgstr "" -#: library/logging.handlers.rst:755 +#: library/logging.handlers.rst:764 msgid "LOG_LOCAL1" msgstr "" -#: library/logging.handlers.rst:757 +#: library/logging.handlers.rst:766 msgid "``local2``" msgstr "" -#: library/logging.handlers.rst:757 +#: library/logging.handlers.rst:766 msgid "LOG_LOCAL2" msgstr "" -#: library/logging.handlers.rst:759 +#: library/logging.handlers.rst:768 msgid "``local3``" msgstr "" -#: library/logging.handlers.rst:759 +#: library/logging.handlers.rst:768 msgid "LOG_LOCAL3" msgstr "" -#: library/logging.handlers.rst:761 +#: library/logging.handlers.rst:770 msgid "``local4``" msgstr "" -#: library/logging.handlers.rst:761 +#: library/logging.handlers.rst:770 msgid "LOG_LOCAL4" msgstr "" -#: library/logging.handlers.rst:763 +#: library/logging.handlers.rst:772 msgid "``local5``" msgstr "" -#: library/logging.handlers.rst:763 +#: library/logging.handlers.rst:772 msgid "LOG_LOCAL5" msgstr "" -#: library/logging.handlers.rst:765 +#: library/logging.handlers.rst:774 msgid "``local6``" msgstr "" -#: library/logging.handlers.rst:765 +#: library/logging.handlers.rst:774 msgid "LOG_LOCAL6" msgstr "" -#: library/logging.handlers.rst:767 +#: library/logging.handlers.rst:776 msgid "``local7``" msgstr "" -#: library/logging.handlers.rst:767 +#: library/logging.handlers.rst:776 msgid "LOG_LOCAL7" msgstr "" -#: library/logging.handlers.rst:772 +#: library/logging.handlers.rst:781 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 " @@ -1146,11 +1158,11 @@ msgid "" "all other level names to 'warning'." msgstr "" -#: library/logging.handlers.rst:782 +#: library/logging.handlers.rst:791 msgid "NTEventLogHandler" msgstr "" -#: library/logging.handlers.rst:784 +#: library/logging.handlers.rst:793 msgid "" "The :class:`NTEventLogHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to a local Windows NT, Windows " @@ -1158,7 +1170,7 @@ msgid "" "Win32 extensions for Python installed." msgstr "" -#: library/logging.handlers.rst:792 +#: library/logging.handlers.rst:801 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 " @@ -1174,7 +1186,7 @@ msgid "" "or ``'Security'``, and defaults to ``'Application'``." msgstr "" -#: library/logging.handlers.rst:808 +#: library/logging.handlers.rst:817 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 " @@ -1183,19 +1195,19 @@ msgid "" "not do this." msgstr "" -#: library/logging.handlers.rst:817 +#: library/logging.handlers.rst:826 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:823 +#: library/logging.handlers.rst:832 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:829 +#: library/logging.handlers.rst:838 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 " @@ -1206,7 +1218,7 @@ msgid "" "the handler's *typemap* attribute." msgstr "" -#: library/logging.handlers.rst:840 +#: library/logging.handlers.rst:849 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 " @@ -1215,17 +1227,17 @@ msgid "" "message ID in :file:`win32service.pyd`." msgstr "" -#: library/logging.handlers.rst:849 +#: library/logging.handlers.rst:858 msgid "SMTPHandler" msgstr "" -#: library/logging.handlers.rst:851 +#: library/logging.handlers.rst:860 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:857 +#: library/logging.handlers.rst:866 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. " @@ -1236,7 +1248,7 @@ msgid "" "*credentials* argument." msgstr "" -#: library/logging.handlers.rst:864 +#: library/logging.handlers.rst:873 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 " @@ -1246,31 +1258,31 @@ msgid "" "SMTP.starttls` method.)" msgstr "" -#: library/logging.handlers.rst:871 +#: library/logging.handlers.rst:880 msgid "" "A timeout can be specified for communication with the SMTP server using the " "*timeout* argument." msgstr "" -#: library/logging.handlers.rst:874 +#: library/logging.handlers.rst:883 msgid "Added the *timeout* parameter." msgstr "" -#: library/logging.handlers.rst:879 +#: library/logging.handlers.rst:888 msgid "Formats the record and sends it to the specified addressees." msgstr "" -#: library/logging.handlers.rst:884 +#: library/logging.handlers.rst:893 msgid "" "If you want to specify a subject line which is record-dependent, override " "this method." msgstr "" -#: library/logging.handlers.rst:890 +#: library/logging.handlers.rst:899 msgid "MemoryHandler" msgstr "" -#: library/logging.handlers.rst:892 +#: library/logging.handlers.rst:901 msgid "" "The :class:`MemoryHandler` class, located in the :mod:`logging.handlers` " "module, supports buffering of logging records in memory, periodically " @@ -1278,7 +1290,7 @@ msgid "" "buffer is full, or when an event of a certain severity or greater is seen." msgstr "" -#: library/logging.handlers.rst:897 +#: library/logging.handlers.rst:906 msgid "" ":class:`MemoryHandler` is a subclass of the more general :class:" "`BufferingHandler`, which is an abstract class. This buffers logging records " @@ -1287,32 +1299,32 @@ msgid "" "should, then :meth:`flush` is expected to do the flushing." msgstr "" -#: library/logging.handlers.rst:906 +#: library/logging.handlers.rst:915 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:912 +#: library/logging.handlers.rst:921 msgid "" "Append the record to the buffer. If :meth:`shouldFlush` returns true, call :" "meth:`flush` to process the buffer." msgstr "" -#: library/logging.handlers.rst:918 +#: library/logging.handlers.rst:927 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:925 +#: library/logging.handlers.rst:934 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:931 +#: library/logging.handlers.rst:940 msgid "" "Returns a new instance of the :class:`MemoryHandler` class. The instance is " "initialized with a buffer size of *capacity* (number of records buffered). " @@ -1324,15 +1336,15 @@ msgid "" "the buffer will occur when the handler is closed." msgstr "" -#: library/logging.handlers.rst:940 +#: library/logging.handlers.rst:949 msgid "The *flushOnClose* parameter was added." msgstr "" -#: library/logging.handlers.rst:946 +#: library/logging.handlers.rst:955 msgid "Calls :meth:`flush`, sets the target to ``None`` and clears the buffer." msgstr "" -#: library/logging.handlers.rst:952 +#: library/logging.handlers.rst:961 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 " @@ -1340,26 +1352,26 @@ msgid "" "behavior." msgstr "" -#: library/logging.handlers.rst:959 +#: library/logging.handlers.rst:968 msgid "Sets the target handler for this handler." msgstr "" -#: library/logging.handlers.rst:964 +#: library/logging.handlers.rst:973 msgid "Checks for buffer full or a record at the *flushLevel* or higher." msgstr "" -#: library/logging.handlers.rst:970 +#: library/logging.handlers.rst:979 msgid "HTTPHandler" msgstr "" -#: library/logging.handlers.rst:972 +#: library/logging.handlers.rst:981 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:979 +#: library/logging.handlers.rst:988 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. " @@ -1373,11 +1385,11 @@ msgid "" "cleartext across the wire." msgstr "" -#: library/logging.handlers.rst:990 +#: library/logging.handlers.rst:999 msgid "The *context* parameter was added." msgstr "" -#: library/logging.handlers.rst:995 +#: library/logging.handlers.rst:1004 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." @@ -1386,14 +1398,14 @@ msgid "" "customization of what's sent to the server is required." msgstr "" -#: library/logging.handlers.rst:1003 +#: library/logging.handlers.rst:1012 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:1007 +#: library/logging.handlers.rst:1016 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 " @@ -1403,18 +1415,18 @@ msgid "" "the dictionary in a form suitable for sending to a web server." msgstr "" -#: library/logging.handlers.rst:1020 +#: library/logging.handlers.rst:1029 msgid "QueueHandler" msgstr "" -#: library/logging.handlers.rst:1024 +#: library/logging.handlers.rst:1033 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:1028 +#: library/logging.handlers.rst:1037 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 " @@ -1424,7 +1436,7 @@ msgid "" "an email via :class:`SMTPHandler`) are done on a separate thread." msgstr "" -#: library/logging.handlers.rst:1037 +#: library/logging.handlers.rst:1046 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-" @@ -1434,13 +1446,23 @@ msgid "" "instances for *queue*." msgstr "" -#: library/logging.handlers.rst:1044 library/logging.handlers.rst:1133 +#: library/logging.handlers.rst:1053 library/logging.handlers.rst:1151 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:1049 +#: library/logging.handlers.rst:1058 +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:1067 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." @@ -1450,13 +1472,13 @@ msgid "" "raiseExceptions` is ``True``)." msgstr "" -#: library/logging.handlers.rst:1058 +#: library/logging.handlers.rst:1076 msgid "" "Prepares a record for queuing. The object returned by this method is " "enqueued." msgstr "" -#: library/logging.handlers.rst:1061 +#: library/logging.handlers.rst:1079 msgid "" "The base implementation formats the record to merge the message, arguments, " "exception and stack information, if present. It also removes unpickleable " @@ -1466,14 +1488,14 @@ msgid "" "attr:`exc_info` and :attr:`exc_text` attributes to ``None``." msgstr "" -#: library/logging.handlers.rst:1069 +#: library/logging.handlers.rst:1087 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:1073 +#: library/logging.handlers.rst:1091 msgid "" "The base implementation formats the message with arguments, sets the " "``message`` and ``msg`` attributes to the formatted message and sets the " @@ -1489,25 +1511,25 @@ msgid "" "libraries that you use.)" msgstr "" -#: library/logging.handlers.rst:1089 +#: library/logging.handlers.rst:1107 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:1095 +#: library/logging.handlers.rst:1113 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:1104 +#: library/logging.handlers.rst:1122 msgid "QueueListener" msgstr "" -#: library/logging.handlers.rst:1108 +#: library/logging.handlers.rst:1126 msgid "" "The :class:`QueueListener` class, located in the :mod:`logging.handlers` " "module, supports receiving logging messages from a queue, such as those " @@ -1518,7 +1540,7 @@ msgid "" "works hand-in-hand with :class:`QueueHandler`." msgstr "" -#: library/logging.handlers.rst:1116 +#: library/logging.handlers.rst:1134 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 " @@ -1528,7 +1550,7 @@ msgid "" "an email via :class:`SMTPHandler`) are done on a separate thread." msgstr "" -#: library/logging.handlers.rst:1125 +#: library/logging.handlers.rst:1143 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 " @@ -1539,7 +1561,7 @@ msgid "" "class:`~queue.SimpleQueue` instances for *queue*." msgstr "" -#: library/logging.handlers.rst:1136 +#: library/logging.handlers.rst:1154 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 " @@ -1547,87 +1569,87 @@ msgid "" "versions - to always pass each message to each handler." msgstr "" -#: library/logging.handlers.rst:1141 +#: library/logging.handlers.rst:1159 msgid "The ``respect_handler_level`` argument was added." msgstr "" -#: library/logging.handlers.rst:1146 +#: library/logging.handlers.rst:1164 msgid "Dequeues a record and return it, optionally blocking." msgstr "" -#: library/logging.handlers.rst:1148 +#: library/logging.handlers.rst:1166 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:1154 +#: library/logging.handlers.rst:1172 msgid "Prepare a record for handling." msgstr "" -#: library/logging.handlers.rst:1156 +#: library/logging.handlers.rst:1174 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:1162 +#: library/logging.handlers.rst:1180 msgid "Handle a record." msgstr "" -#: library/logging.handlers.rst:1164 +#: library/logging.handlers.rst:1182 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:1170 +#: library/logging.handlers.rst:1188 msgid "Starts the listener." msgstr "" -#: library/logging.handlers.rst:1172 +#: library/logging.handlers.rst:1190 msgid "" "This starts up a background thread to monitor the queue for LogRecords to " "process." msgstr "" -#: library/logging.handlers.rst:1175 +#: library/logging.handlers.rst:1193 msgid "" "Raises :exc:`RuntimeError` if called and the listener is already running." msgstr "" -#: library/logging.handlers.rst:1181 +#: library/logging.handlers.rst:1199 msgid "Stops the listener." msgstr "" -#: library/logging.handlers.rst:1183 +#: library/logging.handlers.rst:1201 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:1189 +#: library/logging.handlers.rst:1207 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:1199 +#: library/logging.handlers.rst:1217 msgid "Module :mod:`logging`" msgstr "" -#: library/logging.handlers.rst:1200 +#: library/logging.handlers.rst:1218 msgid "API reference for the logging module." msgstr "" -#: library/logging.handlers.rst:1202 +#: library/logging.handlers.rst:1220 msgid "Module :mod:`logging.config`" msgstr "" -#: library/logging.handlers.rst:1203 +#: library/logging.handlers.rst:1221 msgid "Configuration API for the logging module." msgstr "" diff --git a/library/logging.po b/library/logging.po index 5cd86af7..c3bf0a88 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 beginnning 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 86a82bb1..100153c9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/mailbox.po b/library/mailbox.po index 43f3b78a..b30cf82d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b04e1522..d3e7142d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 64b4905f..00463aaa 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 e6d91d5e..04ae2e0b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 6316ef0b..28a20fb5 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -23,8 +23,8 @@ msgstr "" #: library/math.rst:13 msgid "" -"This module provides access to the mathematical functions defined by the C " -"standard." +"This module provides access to common mathematical functions and constants, " +"including those defined by the C standard." msgstr "" #: library/math.rst:16 @@ -613,23 +613,21 @@ msgid "" "coefficient of k-th term in polynomial expansion of ``(1 + x)ⁿ``." msgstr "" -#: library/math.rst:205 +#: library/math.rst:204 msgid "" "Raises :exc:`TypeError` if either of the arguments are not integers. Raises :" "exc:`ValueError` if either of the arguments are negative." msgstr "" #: library/math.rst:147 -msgid "" -"Return *n* factorial as an integer. Raises :exc:`ValueError` if *n* is not " -"integral or is negative." +msgid "Return factorial of the nonnegative integer *n*." msgstr "" -#: library/math.rst:150 +#: library/math.rst:149 msgid "Floats with integral values (like ``5.0``) are no longer accepted." msgstr "" -#: library/math.rst:156 +#: library/math.rst:155 msgid "" "Return the greatest common divisor of the specified integer arguments. If " "any of the arguments is nonzero, then the returned value is the largest " @@ -638,20 +636,20 @@ msgid "" "``0``." msgstr "" -#: library/math.rst:164 +#: library/math.rst:163 msgid "" "Added support for an arbitrary number of arguments. Formerly, only two " "arguments were supported." msgstr "" -#: library/math.rst:171 +#: library/math.rst:170 msgid "" "Return the integer square root of the nonnegative integer *n*. This is the " "floor of the exact square root of *n*, or equivalently the greatest integer " "*a* such that *a*\\ ² |nbsp| ≤ |nbsp| *n*." msgstr "" -#: library/math.rst:175 +#: library/math.rst:174 msgid "" "For some applications, it may be more convenient to have the least integer " "*a* such that *n* |nbsp| ≤ |nbsp| *a*\\ ², or in other words the ceiling of " @@ -659,7 +657,7 @@ msgid "" "``a = 1 + isqrt(n - 1)``." msgstr "" -#: library/math.rst:185 +#: library/math.rst:184 msgid "" "Return the least common multiple of the specified integer arguments. If all " "arguments are nonzero, then the returned value is the smallest positive " @@ -668,47 +666,47 @@ msgid "" "``1``." msgstr "" -#: library/math.rst:196 +#: library/math.rst:195 msgid "" "Return the number of ways to choose *k* items from *n* items without " "repetition and with order." msgstr "" -#: library/math.rst:199 +#: library/math.rst:198 msgid "" "Evaluates to ``n! / (n - k)!`` when ``k <= n`` and evaluates to zero when " "``k > n``." msgstr "" -#: library/math.rst:202 +#: library/math.rst:201 msgid "" "If *k* is not specified or is ``None``, then *k* defaults to *n* and the " "function returns ``n!``." msgstr "" -#: library/math.rst:212 +#: library/math.rst:211 msgid "Floating point arithmetic" msgstr "" -#: library/math.rst:216 +#: library/math.rst:215 msgid "" "Return the ceiling of *x*, the smallest integer greater than or equal to " "*x*. If *x* is not a float, delegates to :meth:`x.__ceil__ `, which should return an :class:`~numbers.Integral` value." msgstr "" -#: library/math.rst:223 +#: library/math.rst:222 msgid "Return the absolute value of *x*." msgstr "" -#: library/math.rst:228 +#: library/math.rst:227 msgid "" "Return the floor of *x*, the largest integer less than or equal to *x*. If " "*x* is not a float, delegates to :meth:`x.__floor__ `, " "which should return an :class:`~numbers.Integral` value." msgstr "" -#: library/math.rst:235 +#: library/math.rst:234 msgid "" "Fused multiply-add operation. Return ``(x * y) + z``, computed as though " "with infinite precision and range followed by a single round to the " @@ -716,7 +714,7 @@ msgid "" "direct expression ``(x * y) + z``." msgstr "" -#: library/math.rst:240 +#: library/math.rst:239 msgid "" "This function follows the specification of the fusedMultiplyAdd operation " "described in the IEEE 754 standard. The standard leaves one case " @@ -725,7 +723,7 @@ msgid "" "not raise any exception." msgstr "" -#: library/math.rst:251 +#: library/math.rst:250 msgid "" "Return the floating-point remainder of ``x / y``, as defined by the platform " "C library function ``fmod(x, y)``. Note that the Python expression ``x % y`` " @@ -741,13 +739,13 @@ msgid "" "floats, while Python's ``x % y`` is preferred when working with integers." msgstr "" -#: library/math.rst:267 +#: library/math.rst:266 msgid "" "Return the fractional and integer parts of *x*. Both results carry the sign " "of *x* and are floats." msgstr "" -#: library/math.rst:270 +#: library/math.rst:269 msgid "" "Note that :func:`modf` has a different call/return pattern than its C " "equivalents: it takes a single argument and return a pair of values, rather " @@ -755,7 +753,7 @@ msgid "" "is no such thing in Python)." msgstr "" -#: library/math.rst:278 +#: library/math.rst:277 msgid "" "Return the IEEE 754-style remainder of *x* with respect to *y*. For finite " "*x* and finite nonzero *y*, this is the difference ``x - n*y``, where ``n`` " @@ -765,7 +763,7 @@ msgid "" "thus always satisfies ``abs(r) <= 0.5 * abs(y)``." msgstr "" -#: library/math.rst:285 +#: library/math.rst:284 msgid "" "Special cases follow IEEE 754: in particular, ``remainder(x, math.inf)`` is " "*x* for any finite *x*, and ``remainder(x, 0)`` and ``remainder(math.inf, " @@ -773,13 +771,13 @@ msgid "" "remainder operation is zero, that zero will have the same sign as *x*." msgstr "" -#: library/math.rst:291 +#: library/math.rst:290 msgid "" "On platforms using IEEE 754 binary floating point, the result of this " "operation is always exactly representable: no rounding error is introduced." msgstr "" -#: library/math.rst:299 +#: library/math.rst:298 msgid "" "Return *x* with the fractional part removed, leaving the integer part. This " "rounds toward 0: ``trunc()`` is equivalent to :func:`floor` for positive " @@ -788,7 +786,7 @@ msgid "" "class:`~numbers.Integral` value." msgstr "" -#: library/math.rst:306 +#: library/math.rst:305 msgid "" "For the :func:`ceil`, :func:`floor`, and :func:`modf` functions, note that " "*all* floating-point numbers of sufficiently large magnitude are exact " @@ -797,18 +795,18 @@ msgid "" "``abs(x) >= 2**52`` necessarily has no fractional bits." msgstr "" -#: library/math.rst:314 +#: library/math.rst:313 msgid "Floating point manipulation functions" msgstr "" -#: library/math.rst:318 +#: library/math.rst:317 msgid "" "Return a float with the magnitude (absolute value) of *x* but the sign of " "*y*. On platforms that support signed zeros, ``copysign(1.0, -0.0)`` " "returns *-1.0*." msgstr "" -#: library/math.rst:325 +#: library/math.rst:324 msgid "" "Return the mantissa and exponent of *x* as the pair ``(m, e)``. *m* is a " "float and *e* is an integer such that ``x == m * 2**e`` exactly. If *x* is " @@ -816,7 +814,7 @@ msgid "" "to \"pick apart\" the internal representation of a float in a portable way." msgstr "" -#: library/math.rst:330 +#: library/math.rst:329 msgid "" "Note that :func:`frexp` has a different call/return pattern than its C " "equivalents: it takes a single argument and return a pair of values, rather " @@ -824,20 +822,20 @@ msgid "" "is no such thing in Python)." msgstr "" -#: library/math.rst:337 +#: library/math.rst:336 msgid "" "Return ``True`` if the values *a* and *b* are close to each other and " "``False`` otherwise." msgstr "" -#: library/math.rst:340 +#: library/math.rst:339 msgid "" "Whether or not two values are considered close is determined according to " "given absolute and relative tolerances. If no errors occur, the result will " "be: ``abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)``." msgstr "" -#: library/math.rst:344 +#: library/math.rst:343 msgid "" "*rel_tol* is the relative tolerance -- it is the maximum allowed difference " "between *a* and *b*, relative to the larger absolute value of *a* or *b*. " @@ -847,7 +845,7 @@ msgid "" "``1.0``." msgstr "" -#: library/math.rst:351 +#: library/math.rst:350 msgid "" "*abs_tol* is the absolute tolerance; it defaults to ``0.0`` and it must be " "nonnegative. When comparing ``x`` to ``0.0``, ``isclose(x, 0)`` is computed " @@ -856,7 +854,7 @@ msgid "" "argument to the call." msgstr "" -#: library/math.rst:357 +#: library/math.rst:356 msgid "" "The IEEE 754 special values of ``NaN``, ``inf``, and ``-inf`` will be " "handled according to IEEE rules. Specifically, ``NaN`` is not considered " @@ -864,136 +862,136 @@ msgid "" "considered close to themselves." msgstr "" -#: library/math.rst:366 +#: library/math.rst:365 msgid ":pep:`485` -- A function for testing approximate equality" msgstr "" -#: library/math.rst:371 +#: library/math.rst:370 msgid "" "Return ``True`` if *x* is neither an infinity nor a NaN, and ``False`` " "otherwise. (Note that ``0.0`` *is* considered finite.)" msgstr "" -#: library/math.rst:379 +#: library/math.rst:378 msgid "" "Return ``True`` if *x* is a positive or negative infinity, and ``False`` " "otherwise." msgstr "" -#: library/math.rst:385 +#: library/math.rst:384 msgid "" "Return ``True`` if *x* is a NaN (not a number), and ``False`` otherwise." msgstr "" -#: library/math.rst:390 +#: library/math.rst:389 msgid "" "Return ``x * (2**i)``. This is essentially the inverse of function :func:" "`frexp`." msgstr "" -#: library/math.rst:396 +#: library/math.rst:395 msgid "Return the floating-point value *steps* steps after *x* towards *y*." msgstr "" -#: library/math.rst:398 +#: library/math.rst:397 msgid "If *x* is equal to *y*, return *y*, unless *steps* is zero." msgstr "" -#: library/math.rst:400 +#: library/math.rst:399 msgid "Examples:" msgstr "" -#: library/math.rst:402 +#: library/math.rst:401 msgid "``math.nextafter(x, math.inf)`` goes up: towards positive infinity." msgstr "" -#: library/math.rst:403 +#: library/math.rst:402 msgid "``math.nextafter(x, -math.inf)`` goes down: towards minus infinity." msgstr "" -#: library/math.rst:404 +#: library/math.rst:403 msgid "``math.nextafter(x, 0.0)`` goes towards zero." msgstr "" -#: library/math.rst:405 +#: library/math.rst:404 msgid "``math.nextafter(x, math.copysign(math.inf, x))`` goes away from zero." msgstr "" -#: library/math.rst:407 +#: library/math.rst:406 msgid "See also :func:`math.ulp`." msgstr "" -#: library/math.rst:411 +#: library/math.rst:410 msgid "Added the *steps* argument." msgstr "" -#: library/math.rst:417 +#: library/math.rst:416 msgid "Return the value of the least significant bit of the float *x*:" msgstr "" -#: library/math.rst:419 +#: library/math.rst:418 msgid "If *x* is a NaN (not a number), return *x*." msgstr "" -#: library/math.rst:420 +#: library/math.rst:419 msgid "If *x* is negative, return ``ulp(-x)``." msgstr "" -#: library/math.rst:421 +#: library/math.rst:420 msgid "If *x* is a positive infinity, return *x*." msgstr "" -#: library/math.rst:422 +#: library/math.rst:421 msgid "" "If *x* is equal to zero, return the smallest positive *denormalized* " "representable float (smaller than the minimum positive *normalized* float, :" "data:`sys.float_info.min `)." msgstr "" -#: library/math.rst:425 +#: library/math.rst:424 msgid "" "If *x* is equal to the largest positive representable float, return the " "value of the least significant bit of *x*, such that the first float smaller " "than *x* is ``x - ulp(x)``." msgstr "" -#: library/math.rst:428 +#: library/math.rst:427 msgid "" "Otherwise (*x* is a positive finite number), return the value of the least " "significant bit of *x*, such that the first float bigger than *x* is ``x + " "ulp(x)``." msgstr "" -#: library/math.rst:432 +#: library/math.rst:431 msgid "ULP stands for \"Unit in the Last Place\"." msgstr "" -#: library/math.rst:434 +#: library/math.rst:433 msgid "" "See also :func:`math.nextafter` and :data:`sys.float_info.epsilon `." msgstr "" -#: library/math.rst:441 +#: library/math.rst:440 msgid "Power, exponential and logarithmic functions" msgstr "" -#: library/math.rst:445 +#: library/math.rst:444 msgid "Return the cube root of *x*." msgstr "" -#: library/math.rst:452 +#: library/math.rst:451 msgid "" "Return *e* raised to the power *x*, where *e* = 2.718281... is the base of " "natural logarithms. This is usually more accurate than ``math.e ** x`` or " "``pow(math.e, x)``." msgstr "" -#: library/math.rst:459 +#: library/math.rst:458 msgid "Return *2* raised to the power *x*." msgstr "" -#: library/math.rst:466 +#: library/math.rst:465 msgid "" "Return *e* raised to the power *x*, minus 1. Here *e* is the base of " "natural logarithms. For small floats *x*, the subtraction in ``exp(x) - 1`` " @@ -1002,41 +1000,41 @@ msgid "" "compute this quantity to full precision:" msgstr "" -#: library/math.rst:483 +#: library/math.rst:482 msgid "With one argument, return the natural logarithm of *x* (to base *e*)." msgstr "" -#: library/math.rst:485 +#: library/math.rst:484 msgid "" "With two arguments, return the logarithm of *x* to the given *base*, " "calculated as ``log(x)/log(base)``." msgstr "" -#: library/math.rst:491 +#: library/math.rst:490 msgid "" "Return the natural logarithm of *1+x* (base *e*). The result is calculated " "in a way which is accurate for *x* near zero." msgstr "" -#: library/math.rst:497 +#: library/math.rst:496 msgid "" "Return the base-2 logarithm of *x*. This is usually more accurate than " "``log(x, 2)``." msgstr "" -#: library/math.rst:504 +#: library/math.rst:503 msgid "" ":meth:`int.bit_length` returns the number of bits necessary to represent an " "integer in binary, excluding the sign and leading zeros." msgstr "" -#: library/math.rst:510 +#: library/math.rst:509 msgid "" "Return the base-10 logarithm of *x*. This is usually more accurate than " "``log(x, 10)``." msgstr "" -#: library/math.rst:516 +#: library/math.rst:515 msgid "" "Return *x* raised to the power *y*. Exceptional cases follow the IEEE 754 " "standard as far as possible. In particular, ``pow(1.0, x)`` and ``pow(x, " @@ -1045,50 +1043,50 @@ msgid "" "y)`` is undefined, and raises :exc:`ValueError`." msgstr "" -#: library/math.rst:523 +#: library/math.rst:522 msgid "" "Unlike the built-in ``**`` operator, :func:`math.pow` converts both its " "arguments to type :class:`float`. Use ``**`` or the built-in :func:`pow` " "function for computing exact integer powers." msgstr "" -#: library/math.rst:527 +#: library/math.rst:526 msgid "" "The special cases ``pow(0.0, -inf)`` and ``pow(-0.0, -inf)`` were changed to " "return ``inf`` instead of raising :exc:`ValueError`, for consistency with " "IEEE 754." msgstr "" -#: library/math.rst:535 +#: library/math.rst:534 msgid "Return the square root of *x*." msgstr "" -#: library/math.rst:539 +#: library/math.rst:538 msgid "Summation and product functions" msgstr "" -#: library/math.rst:543 +#: library/math.rst:542 msgid "" "Return the Euclidean distance between two points *p* and *q*, each given as " "a sequence (or iterable) of coordinates. The two points must have the same " "dimension." msgstr "" -#: library/math.rst:608 +#: library/math.rst:607 msgid "Roughly equivalent to::" msgstr "" -#: library/math.rst:549 +#: library/math.rst:548 msgid "sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))" msgstr "" -#: library/math.rst:556 +#: library/math.rst:555 msgid "" "Return an accurate floating-point sum of values in the iterable. Avoids " "loss of precision by tracking multiple intermediate partial sums." msgstr "" -#: library/math.rst:559 +#: library/math.rst:558 msgid "" "The algorithm's accuracy depends on IEEE-754 arithmetic guarantees and the " "typical case where the rounding mode is half-even. On some non-Windows " @@ -1097,7 +1095,7 @@ msgid "" "least significant bit." msgstr "" -#: library/math.rst:565 +#: library/math.rst:564 msgid "" "For further discussion and two alternative approaches, see the `ASPN " "cookbook recipes for accurate floating-point summation `_\\." msgstr "" -#: library/math.rst:572 +#: library/math.rst:571 msgid "" "Return the Euclidean norm, ``sqrt(sum(x**2 for x in coordinates))``. This is " "the length of the vector from the origin to the point given by the " "coordinates." msgstr "" -#: library/math.rst:576 +#: library/math.rst:575 msgid "" "For a two dimensional point ``(x, y)``, this is equivalent to computing the " "hypotenuse of a right triangle using the Pythagorean theorem, ``sqrt(x*x + " "y*y)``." msgstr "" -#: library/math.rst:580 +#: library/math.rst:579 msgid "" "Added support for n-dimensional points. Formerly, only the two dimensional " "case was supported." msgstr "" -#: library/math.rst:584 +#: library/math.rst:583 msgid "" "Improved the algorithm's accuracy so that the maximum error is under 1 ulp " "(unit in the last place). More typically, the result is almost always " "correctly rounded to within 1/2 ulp." msgstr "" -#: library/math.rst:592 +#: library/math.rst:591 msgid "" "Calculate the product of all the elements in the input *iterable*. The " "default *start* value for the product is ``1``." msgstr "" -#: library/math.rst:595 +#: library/math.rst:594 msgid "" "When the iterable is empty, return the start value. This function is " "intended specifically for use with numeric values and may reject non-numeric " "types." msgstr "" -#: library/math.rst:604 +#: library/math.rst:603 msgid "Return the sum of products of values from two iterables *p* and *q*." msgstr "" -#: library/math.rst:606 +#: library/math.rst:605 msgid "Raises :exc:`ValueError` if the inputs do not have the same length." msgstr "" -#: library/math.rst:610 +#: library/math.rst:609 msgid "sum(itertools.starmap(operator.mul, zip(p, q, strict=True)))" msgstr "" -#: library/math.rst:612 +#: library/math.rst:611 msgid "" "For float and mixed int/float inputs, the intermediate products and sums are " "computed with extended precision." msgstr "" -#: library/math.rst:619 +#: library/math.rst:618 msgid "Angular conversion" msgstr "" -#: library/math.rst:623 +#: library/math.rst:622 msgid "Convert angle *x* from radians to degrees." msgstr "" -#: library/math.rst:628 +#: library/math.rst:627 msgid "Convert angle *x* from degrees to radians." msgstr "" -#: library/math.rst:632 +#: library/math.rst:631 msgid "Trigonometric functions" msgstr "" -#: library/math.rst:636 +#: library/math.rst:635 msgid "" "Return the arc cosine of *x*, in radians. The result is between ``0`` and " "``pi``." msgstr "" -#: library/math.rst:642 +#: library/math.rst:641 msgid "" "Return the arc sine of *x*, in radians. The result is between ``-pi/2`` and " "``pi/2``." msgstr "" -#: library/math.rst:648 +#: library/math.rst:647 msgid "" "Return the arc tangent of *x*, in radians. The result is between ``-pi/2`` " "and ``pi/2``." msgstr "" -#: library/math.rst:654 +#: library/math.rst:653 msgid "" "Return ``atan(y / x)``, in radians. The result is between ``-pi`` and " "``pi``. The vector in the plane from the origin to point ``(x, y)`` makes " @@ -1207,78 +1205,78 @@ msgid "" "``pi/4``, but ``atan2(-1, -1)`` is ``-3*pi/4``." msgstr "" -#: library/math.rst:664 +#: library/math.rst:663 msgid "Return the cosine of *x* radians." msgstr "" -#: library/math.rst:669 +#: library/math.rst:668 msgid "Return the sine of *x* radians." msgstr "" -#: library/math.rst:674 +#: library/math.rst:673 msgid "Return the tangent of *x* radians." msgstr "" -#: library/math.rst:678 +#: library/math.rst:677 msgid "Hyperbolic functions" msgstr "" -#: library/math.rst:680 +#: library/math.rst:679 msgid "" "`Hyperbolic functions `_ " "are analogs of trigonometric functions that are based on hyperbolas instead " "of circles." msgstr "" -#: library/math.rst:686 +#: library/math.rst:685 msgid "Return the inverse hyperbolic cosine of *x*." msgstr "" -#: library/math.rst:691 +#: library/math.rst:690 msgid "Return the inverse hyperbolic sine of *x*." msgstr "" -#: library/math.rst:696 +#: library/math.rst:695 msgid "Return the inverse hyperbolic tangent of *x*." msgstr "" -#: library/math.rst:701 +#: library/math.rst:700 msgid "Return the hyperbolic cosine of *x*." msgstr "" -#: library/math.rst:706 +#: library/math.rst:705 msgid "Return the hyperbolic sine of *x*." msgstr "" -#: library/math.rst:711 +#: library/math.rst:710 msgid "Return the hyperbolic tangent of *x*." msgstr "" -#: library/math.rst:715 +#: library/math.rst:714 msgid "Special functions" msgstr "" -#: library/math.rst:719 +#: library/math.rst:718 msgid "" "Return the `error function `_ " "at *x*." msgstr "" -#: library/math.rst:722 +#: library/math.rst:721 msgid "" "The :func:`erf` function can be used to compute traditional statistical " "functions such as the `cumulative standard normal distribution `_::" msgstr "" -#: library/math.rst:726 +#: library/math.rst:725 msgid "" "def phi(x):\n" " 'Cumulative distribution function for the standard normal distribution'\n" " return (1.0 + erf(x / sqrt(2.0))) / 2.0" msgstr "" -#: library/math.rst:735 +#: library/math.rst:734 msgid "" "Return the complementary error function at *x*. The `complementary error " "function `_ is defined as " @@ -1287,46 +1285,46 @@ msgid "" "Loss_of_significance>`_\\." msgstr "" -#: library/math.rst:746 +#: library/math.rst:745 msgid "" "Return the `Gamma function `_ " "at *x*." msgstr "" -#: library/math.rst:754 +#: library/math.rst:753 msgid "" "Return the natural logarithm of the absolute value of the Gamma function at " "*x*." msgstr "" -#: library/math.rst:761 +#: library/math.rst:760 msgid "Constants" msgstr "" -#: library/math.rst:765 +#: library/math.rst:764 msgid "The mathematical constant *π* = 3.141592..., to available precision." msgstr "" -#: library/math.rst:770 +#: library/math.rst:769 msgid "The mathematical constant *e* = 2.718281..., to available precision." msgstr "" -#: library/math.rst:775 +#: library/math.rst:774 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:786 +#: library/math.rst:785 msgid "" "A floating-point positive infinity. (For negative infinity, use ``-math." "inf``.) Equivalent to the output of ``float('inf')``." msgstr "" -#: library/math.rst:794 +#: library/math.rst:793 msgid "" "A floating-point \"not a number\" (NaN) value. Equivalent to the output of " "``float('nan')``. Due to the requirements of the `IEEE-754 standard \n" "Language-Team: LANGUAGE \n" diff --git a/library/mm.po b/library/mm.po index 07bf63a7..7af7a372 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1624a875..d9805071 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 4de41580..d9727579 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b34f775c..e8f3b7b3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 48f50d94..3b2075f9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 178d00c3..54cf1e06 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 9c131053..adba6e8c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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:110 +#: library/multiprocessing.rst:119 msgid "*spawn*" msgstr "" -#: library/multiprocessing.rst:111 +#: 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:118 +#: library/multiprocessing.rst:127 msgid "" "Available on POSIX and Windows platforms. The default on Windows and macOS." msgstr "" -#: library/multiprocessing.rst:120 +#: library/multiprocessing.rst:131 msgid "*fork*" msgstr "" -#: library/multiprocessing.rst:121 +#: 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,19 +207,19 @@ msgid "" "Note that safely forking a multithreaded process is problematic." msgstr "" -#: library/multiprocessing.rst:127 +#: library/multiprocessing.rst:138 msgid "" "Available on POSIX systems. Currently the default on POSIX except macOS." msgstr "" -#: library/multiprocessing.rst:130 +#: library/multiprocessing.rst:141 msgid "" "The default start method will change away from *fork* in Python 3.14. Code " "that requires *fork* should explicitly specify that via :func:`get_context` " "or :func:`set_start_method`." msgstr "" -#: library/multiprocessing.rst:134 +#: 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 " @@ -212,11 +227,11 @@ msgid "" "fork` documentation for further explanation." msgstr "" -#: library/multiprocessing.rst:140 +#: library/multiprocessing.rst:153 msgid "*forkserver*" msgstr "" -#: library/multiprocessing.rst:141 +#: 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 " @@ -226,27 +241,27 @@ msgid "" "for it to use :func:`os.fork`. No unnecessary resources are inherited." msgstr "" -#: library/multiprocessing.rst:149 +#: library/multiprocessing.rst:162 msgid "" "Available on POSIX platforms which support passing file descriptors over " "Unix pipes such as Linux." msgstr "" -#: library/multiprocessing.rst:153 +#: library/multiprocessing.rst:166 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:161 +#: library/multiprocessing.rst:174 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:165 +#: library/multiprocessing.rst:178 msgid "" "On POSIX using the *spawn* or *forkserver* start methods will also start a " "*resource tracker* process which tracks the unlinked named system resources " @@ -261,13 +276,13 @@ msgid "" "space in the main memory.)" msgstr "" -#: library/multiprocessing.rst:178 +#: library/multiprocessing.rst:191 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:182 +#: library/multiprocessing.rst:195 msgid "" "import multiprocessing as mp\n" "\n" @@ -283,19 +298,19 @@ msgid "" " p.join()" msgstr "" -#: library/multiprocessing.rst:195 +#: library/multiprocessing.rst:208 msgid "" ":func:`set_start_method` should not be used more than once in the program." msgstr "" -#: library/multiprocessing.rst:198 +#: library/multiprocessing.rst:211 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:203 +#: library/multiprocessing.rst:216 msgid "" "import multiprocessing as mp\n" "\n" @@ -311,7 +326,7 @@ msgid "" " p.join()" msgstr "" -#: library/multiprocessing.rst:216 +#: library/multiprocessing.rst:229 msgid "" "Note that objects related to one context may not be compatible with " "processes for a different context. In particular, locks created using the " @@ -319,13 +334,17 @@ msgid "" "*forkserver* start methods." msgstr "" -#: library/multiprocessing.rst:221 +#: library/multiprocessing.rst:234 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:227 +#: library/multiprocessing.rst:243 msgid "" "The ``'spawn'`` and ``'forkserver'`` start methods generally cannot be used " "with \"frozen\" executables (i.e., binaries produced by packages like " @@ -333,27 +352,27 @@ msgid "" "method may work if code does not use threads." msgstr "" -#: library/multiprocessing.rst:234 +#: library/multiprocessing.rst:250 msgid "Exchanging objects between processes" msgstr "" -#: library/multiprocessing.rst:236 +#: library/multiprocessing.rst:252 msgid "" ":mod:`multiprocessing` supports two types of communication channel between " "processes:" msgstr "" -#: library/multiprocessing.rst:239 +#: library/multiprocessing.rst:255 msgid "**Queues**" msgstr "" -#: library/multiprocessing.rst:241 +#: library/multiprocessing.rst:257 msgid "" "The :class:`Queue` class is a near clone of :class:`queue.Queue`. For " "example::" msgstr "" -#: library/multiprocessing.rst:244 +#: library/multiprocessing.rst:260 msgid "" "from multiprocessing import Process, Queue\n" "\n" @@ -368,23 +387,23 @@ msgid "" " p.join()" msgstr "" -#: library/multiprocessing.rst:256 +#: library/multiprocessing.rst:272 msgid "" "Queues are thread and process safe. Any object put into a :mod:" "`~multiprocessing` queue will be serialized." msgstr "" -#: library/multiprocessing.rst:259 +#: library/multiprocessing.rst:275 msgid "**Pipes**" msgstr "" -#: library/multiprocessing.rst:261 +#: library/multiprocessing.rst:277 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:264 +#: library/multiprocessing.rst:280 msgid "" "from multiprocessing import Process, Pipe\n" "\n" @@ -400,7 +419,7 @@ msgid "" " p.join()" msgstr "" -#: library/multiprocessing.rst:277 +#: library/multiprocessing.rst:293 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:" @@ -410,24 +429,24 @@ msgid "" "corruption from processes using different ends of the pipe at the same time." msgstr "" -#: library/multiprocessing.rst:285 +#: library/multiprocessing.rst:301 msgid "" "The :meth:`~Connection.send` method serializes the object and :meth:" "`~Connection.recv` re-creates the object." msgstr "" -#: library/multiprocessing.rst:289 +#: library/multiprocessing.rst:305 msgid "Synchronization between processes" msgstr "" -#: library/multiprocessing.rst:291 +#: library/multiprocessing.rst:307 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:295 +#: library/multiprocessing.rst:311 msgid "" "from multiprocessing import Process, Lock\n" "\n" @@ -445,40 +464,40 @@ msgid "" " Process(target=f, args=(lock, num)).start()" msgstr "" -#: library/multiprocessing.rst:310 +#: library/multiprocessing.rst:326 msgid "" "Without using the lock output from the different processes is liable to get " "all mixed up." msgstr "" -#: library/multiprocessing.rst:315 +#: library/multiprocessing.rst:331 msgid "Sharing state between processes" msgstr "" -#: library/multiprocessing.rst:317 +#: library/multiprocessing.rst:333 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:321 +#: library/multiprocessing.rst:337 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:324 +#: library/multiprocessing.rst:340 msgid "**Shared memory**" msgstr "" -#: library/multiprocessing.rst:326 +#: library/multiprocessing.rst:342 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:329 +#: library/multiprocessing.rst:345 msgid "" "from multiprocessing import Process, Value, Array\n" "\n" @@ -499,17 +518,17 @@ msgid "" " print(arr[:])" msgstr "" -#: library/multiprocessing.rst:347 library/multiprocessing.rst:393 +#: library/multiprocessing.rst:363 library/multiprocessing.rst:409 msgid "will print ::" msgstr "" -#: library/multiprocessing.rst:349 +#: library/multiprocessing.rst:365 msgid "" "3.1415927\n" "[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]" msgstr "" -#: library/multiprocessing.rst:352 +#: library/multiprocessing.rst:368 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 " @@ -517,25 +536,25 @@ msgid "" "objects will be process and thread-safe." msgstr "" -#: library/multiprocessing.rst:357 +#: library/multiprocessing.rst:373 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:361 +#: library/multiprocessing.rst:377 msgid "**Server process**" msgstr "" -#: library/multiprocessing.rst:363 +#: library/multiprocessing.rst:379 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:367 +#: library/multiprocessing.rst:383 msgid "" "A manager returned by :func:`Manager` will support types :class:`list`, :" "class:`dict`, :class:`~managers.Namespace`, :class:`Lock`, :class:`RLock`, :" @@ -544,7 +563,7 @@ msgid "" "`Array`. For example, ::" msgstr "" -#: library/multiprocessing.rst:373 +#: library/multiprocessing.rst:389 msgid "" "from multiprocessing import Process, Manager\n" "\n" @@ -567,13 +586,13 @@ msgid "" " print(l)" msgstr "" -#: library/multiprocessing.rst:395 +#: library/multiprocessing.rst:411 msgid "" "{0.25: None, 1: '1', '2': 2}\n" "[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]" msgstr "" -#: library/multiprocessing.rst:398 +#: library/multiprocessing.rst:414 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 " @@ -581,22 +600,22 @@ msgid "" "They are, however, slower than using shared memory." msgstr "" -#: library/multiprocessing.rst:405 +#: library/multiprocessing.rst:421 msgid "Using a pool of workers" msgstr "" -#: library/multiprocessing.rst:407 +#: library/multiprocessing.rst:423 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:411 +#: library/multiprocessing.rst:427 msgid "For example::" msgstr "" -#: library/multiprocessing.rst:413 +#: library/multiprocessing.rst:429 msgid "" "from multiprocessing import Pool, TimeoutError\n" "import time\n" @@ -645,13 +664,13 @@ msgid "" " print(\"Now the pool is closed and no longer available\")" msgstr "" -#: library/multiprocessing.rst:455 +#: library/multiprocessing.rst:471 msgid "" "Note that the methods of a pool should only ever be used by the process " "which created it." msgstr "" -#: library/multiprocessing.rst:460 +#: library/multiprocessing.rst:476 msgid "" "Functionality within this package requires that the ``__main__`` module be " "importable by the children. This is covered in :ref:`multiprocessing-" @@ -660,7 +679,7 @@ msgid "" "work in the interactive interpreter. For example::" msgstr "" -#: library/multiprocessing.rst:466 +#: library/multiprocessing.rst:482 msgid "" ">>> from multiprocessing import Pool\n" ">>> p = Pool(5)\n" @@ -683,35 +702,35 @@ msgid "" "'_frozen_importlib.BuiltinImporter'>)>" msgstr "" -#: library/multiprocessing.rst:483 +#: library/multiprocessing.rst:499 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:489 +#: library/multiprocessing.rst:505 msgid "Reference" msgstr "" -#: library/multiprocessing.rst:491 +#: library/multiprocessing.rst:507 msgid "" "The :mod:`multiprocessing` package mostly replicates the API of the :mod:" "`threading` module." msgstr "" -#: library/multiprocessing.rst:496 +#: library/multiprocessing.rst:512 msgid ":class:`Process` and exceptions" msgstr "" -#: library/multiprocessing.rst:501 +#: library/multiprocessing.rst:517 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:505 +#: library/multiprocessing.rst:521 msgid "" "The constructor should always be called with keyword arguments. *group* " "should always be ``None``; it exists solely for compatibility with :class:" @@ -725,29 +744,74 @@ msgid "" "creating process." msgstr "" -#: library/multiprocessing.rst:516 +#: library/multiprocessing.rst:532 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:520 +#: library/multiprocessing.rst:536 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:524 +#: library/multiprocessing.rst:542 +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:547 +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:552 +msgid "Example of this uncatchable error from the child::" +msgstr "" + +#: library/multiprocessing.rst:554 +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:567 +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:573 msgid "Added the *daemon* parameter." msgstr "" -#: library/multiprocessing.rst:529 +#: library/multiprocessing.rst:578 msgid "Method representing the process's activity." msgstr "" -#: library/multiprocessing.rst:531 +#: library/multiprocessing.rst:580 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 " @@ -755,17 +819,17 @@ msgid "" "*args* and *kwargs* arguments, respectively." msgstr "" -#: library/multiprocessing.rst:536 +#: library/multiprocessing.rst:585 msgid "" "Using a list or tuple as the *args* argument passed to :class:`Process` " "achieves the same effect." msgstr "" -#: library/multiprocessing.rst:539 +#: library/multiprocessing.rst:588 msgid "Example::" msgstr "" -#: library/multiprocessing.rst:541 +#: library/multiprocessing.rst:590 msgid "" ">>> from multiprocessing import Process\n" ">>> p = Process(target=print, args=[1])\n" @@ -776,17 +840,17 @@ msgid "" "1" msgstr "" -#: library/multiprocessing.rst:551 +#: library/multiprocessing.rst:600 msgid "Start the process's activity." msgstr "" -#: library/multiprocessing.rst:553 +#: library/multiprocessing.rst:602 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:558 +#: library/multiprocessing.rst:607 msgid "" "If the optional argument *timeout* is ``None`` (the default), the method " "blocks until the process whose :meth:`join` method is called terminates. If " @@ -796,23 +860,23 @@ msgid "" "terminated." msgstr "" -#: library/multiprocessing.rst:565 +#: library/multiprocessing.rst:614 msgid "A process can be joined many times." msgstr "" -#: library/multiprocessing.rst:567 +#: library/multiprocessing.rst:616 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:572 +#: library/multiprocessing.rst:621 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:576 +#: library/multiprocessing.rst:625 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:" @@ -820,33 +884,33 @@ msgid "" "child of its parent." msgstr "" -#: library/multiprocessing.rst:583 +#: library/multiprocessing.rst:632 msgid "Return whether the process is alive." msgstr "" -#: library/multiprocessing.rst:585 +#: library/multiprocessing.rst:634 msgid "" "Roughly, a process object is alive from the moment the :meth:`start` method " "returns until the child process terminates." msgstr "" -#: library/multiprocessing.rst:590 +#: library/multiprocessing.rst:639 msgid "" "The process's daemon flag, a Boolean value. This must be set before :meth:" "`start` is called." msgstr "" -#: library/multiprocessing.rst:593 +#: library/multiprocessing.rst:642 msgid "The initial value is inherited from the creating process." msgstr "" -#: library/multiprocessing.rst:595 +#: library/multiprocessing.rst:644 msgid "" "When a process exits, it attempts to terminate all of its daemonic child " "processes." msgstr "" -#: library/multiprocessing.rst:598 +#: library/multiprocessing.rst:647 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 " @@ -855,92 +919,92 @@ msgid "" "(and not joined) if non-daemonic processes have exited." msgstr "" -#: library/multiprocessing.rst:604 +#: library/multiprocessing.rst:653 msgid "" "In addition to the :class:`threading.Thread` API, :class:`Process` objects " "also support the following attributes and methods:" msgstr "" -#: library/multiprocessing.rst:609 +#: library/multiprocessing.rst:658 msgid "" "Return the process ID. Before the process is spawned, this will be ``None``." msgstr "" -#: library/multiprocessing.rst:614 +#: library/multiprocessing.rst:663 msgid "" "The child's exit code. This will be ``None`` if the process has not yet " "terminated." msgstr "" -#: library/multiprocessing.rst:617 +#: library/multiprocessing.rst:666 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:621 +#: library/multiprocessing.rst:670 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:627 +#: library/multiprocessing.rst:676 msgid "The process's authentication key (a byte string)." msgstr "" -#: library/multiprocessing.rst:629 +#: library/multiprocessing.rst:678 msgid "" "When :mod:`multiprocessing` is initialized the main process is assigned a " "random string using :func:`os.urandom`." msgstr "" -#: library/multiprocessing.rst:632 +#: library/multiprocessing.rst:681 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:636 +#: library/multiprocessing.rst:685 msgid "See :ref:`multiprocessing-auth-keys`." msgstr "" -#: library/multiprocessing.rst:640 +#: library/multiprocessing.rst:689 msgid "" "A numeric handle of a system object which will become \"ready\" when the " "process ends." msgstr "" -#: library/multiprocessing.rst:643 +#: library/multiprocessing.rst:692 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:647 +#: library/multiprocessing.rst:696 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:655 +#: library/multiprocessing.rst:704 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:659 +#: library/multiprocessing.rst:708 msgid "" "Note that descendant processes of the process will *not* be terminated -- " "they will simply become orphaned." msgstr "" -#: library/multiprocessing.rst:664 +#: library/multiprocessing.rst:713 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 " @@ -949,11 +1013,11 @@ msgid "" "deadlock." msgstr "" -#: library/multiprocessing.rst:672 +#: library/multiprocessing.rst:721 msgid "Same as :meth:`terminate` but using the ``SIGKILL`` signal on POSIX." msgstr "" -#: library/multiprocessing.rst:678 +#: library/multiprocessing.rst:727 msgid "" "Close the :class:`Process` object, releasing all resources associated with " "it. :exc:`ValueError` is raised if the underlying process is still " @@ -961,18 +1025,18 @@ msgid "" "attributes of the :class:`Process` object will raise :exc:`ValueError`." msgstr "" -#: library/multiprocessing.rst:686 +#: library/multiprocessing.rst:735 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:690 +#: library/multiprocessing.rst:739 msgid "Example usage of some of the methods of :class:`Process`:" msgstr "" -#: library/multiprocessing.rst:692 +#: library/multiprocessing.rst:741 msgid "" ">>> import multiprocessing, time, signal\n" ">>> mp_context = multiprocessing.get_context('spawn')\n" @@ -990,48 +1054,48 @@ msgid "" "True" msgstr "" -#: library/multiprocessing.rst:711 +#: library/multiprocessing.rst:760 msgid "The base class of all :mod:`multiprocessing` exceptions." msgstr "" -#: library/multiprocessing.rst:715 +#: library/multiprocessing.rst:764 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:718 +#: library/multiprocessing.rst:767 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:723 +#: library/multiprocessing.rst:772 msgid "Raised when there is an authentication error." msgstr "" -#: library/multiprocessing.rst:727 +#: library/multiprocessing.rst:776 msgid "Raised by methods with a timeout when the timeout expires." msgstr "" -#: library/multiprocessing.rst:730 +#: library/multiprocessing.rst:779 msgid "Pipes and Queues" msgstr "" -#: library/multiprocessing.rst:732 +#: library/multiprocessing.rst:781 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:736 +#: library/multiprocessing.rst:785 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:739 +#: library/multiprocessing.rst:788 msgid "" "The :class:`Queue`, :class:`SimpleQueue` and :class:`JoinableQueue` types " "are multi-producer, multi-consumer :abbr:`FIFO (first-in, first-out)` queues " @@ -1041,7 +1105,7 @@ msgid "" "Queue` class." msgstr "" -#: library/multiprocessing.rst:746 +#: library/multiprocessing.rst:795 msgid "" "If you use :class:`JoinableQueue` then you **must** call :meth:" "`JoinableQueue.task_done` for each task removed from the queue or else the " @@ -1049,7 +1113,7 @@ msgid "" "overflow, raising an exception." msgstr "" -#: library/multiprocessing.rst:751 +#: library/multiprocessing.rst:800 msgid "" "One difference from other Python queue implementations, is that :mod:" "`multiprocessing` queues serializes all objects that are put into them " @@ -1057,20 +1121,20 @@ msgid "" "object that does not share memory with the original object." msgstr "" -#: library/multiprocessing.rst:756 +#: library/multiprocessing.rst:805 msgid "" "Note that one can also create a shared queue by using a manager object -- " "see :ref:`multiprocessing-managers`." msgstr "" -#: library/multiprocessing.rst:761 +#: library/multiprocessing.rst:810 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:768 +#: library/multiprocessing.rst:817 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 " @@ -1079,14 +1143,14 @@ msgid "" "a queue created with a :ref:`manager `." msgstr "" -#: library/multiprocessing.rst:775 +#: library/multiprocessing.rst:824 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:780 +#: library/multiprocessing.rst:829 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 " @@ -1094,7 +1158,7 @@ msgid "" "other." msgstr "" -#: library/multiprocessing.rst:787 +#: library/multiprocessing.rst:836 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 " @@ -1102,7 +1166,7 @@ msgid "" "exception when it tries to use the queue later on." msgstr "" -#: library/multiprocessing.rst:794 +#: library/multiprocessing.rst:843 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:1030 +#: library/multiprocessing.rst:1084 msgid "" "Return the :class:`Process` object corresponding to the current process." msgstr "" -#: library/multiprocessing.rst:1032 +#: library/multiprocessing.rst:1086 msgid "An analogue of :func:`threading.current_thread`." msgstr "" -#: library/multiprocessing.rst:1036 +#: library/multiprocessing.rst:1090 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:1044 +#: library/multiprocessing.rst:1098 msgid "" "Add support for when a program which uses :mod:`multiprocessing` has been " -"frozen to produce a Windows executable. (Has been tested with **py2exe**, " +"frozen to produce an executable. (Has been tested with **py2exe**, " "**PyInstaller** and **cx_Freeze**.)" msgstr "" -#: library/multiprocessing.rst:1048 +#: library/multiprocessing.rst:1102 msgid "" "One needs to call this function straight after the ``if __name__ == " "'__main__'`` line of the main module. For example::" msgstr "" -#: library/multiprocessing.rst:1051 +#: library/multiprocessing.rst:1105 msgid "" "from multiprocessing import Process, freeze_support\n" "\n" @@ -1449,21 +1518,21 @@ msgid "" " Process(target=f).start()" msgstr "" -#: library/multiprocessing.rst:1060 +#: library/multiprocessing.rst:1114 msgid "" "If the ``freeze_support()`` line is omitted then trying to run the frozen " "executable will raise :exc:`RuntimeError`." msgstr "" -#: library/multiprocessing.rst:1063 +#: library/multiprocessing.rst:1117 msgid "" -"Calling ``freeze_support()`` has no effect when invoked on any operating " -"system other than Windows. In addition, if the module is being run normally " -"by the Python interpreter on Windows (the program has not been frozen), then " -"``freeze_support()`` has no effect." +"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 " +"interpreter (the program has not been frozen), then ``freeze_support()`` has " +"no effect." msgstr "" -#: library/multiprocessing.rst:1070 +#: library/multiprocessing.rst:1124 msgid "" "Returns a list of the supported start methods, the first of which is the " "default. The possible start methods are ``'fork'``, ``'spawn'`` and " @@ -1471,68 +1540,70 @@ msgid "" "`multiprocessing-start-methods`." msgstr "" -#: library/multiprocessing.rst:1079 +#: library/multiprocessing.rst:1133 msgid "" "Return a context object which has the same attributes as the :mod:" "`multiprocessing` module." msgstr "" -#: library/multiprocessing.rst:1082 +#: library/multiprocessing.rst:1136 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:1091 +#: library/multiprocessing.rst:1147 msgid "Return the name of start method used for starting processes." msgstr "" -#: library/multiprocessing.rst:1093 +#: library/multiprocessing.rst:1149 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:1098 +#: library/multiprocessing.rst:1154 msgid "" "The return value can be ``'fork'``, ``'spawn'``, ``'forkserver'`` or " "``None``. See :ref:`multiprocessing-start-methods`." msgstr "" -#: library/multiprocessing.rst:1105 +#: library/multiprocessing.rst:1161 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:1111 +#: library/multiprocessing.rst:1167 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:1115 +#: library/multiprocessing.rst:1171 msgid "set_executable(os.path.join(sys.exec_prefix, 'pythonw.exe'))" msgstr "" -#: library/multiprocessing.rst:1117 +#: library/multiprocessing.rst:1173 msgid "before they can create child processes." msgstr "" -#: library/multiprocessing.rst:1119 +#: library/multiprocessing.rst:1175 msgid "Now supported on POSIX when the ``'spawn'`` start method is used." msgstr "" -#: library/multiprocessing.rst:1122 +#: library/multiprocessing.rst:1178 msgid "Accepts a :term:`path-like object`." msgstr "" -#: library/multiprocessing.rst:1127 +#: library/multiprocessing.rst:1183 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 " @@ -1541,19 +1612,19 @@ msgid "" "process." msgstr "" -#: library/multiprocessing.rst:1133 +#: library/multiprocessing.rst:1189 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:1136 +#: library/multiprocessing.rst:1192 msgid "" "Only meaningful when using the ``'forkserver'`` start method. See :ref:" "`multiprocessing-start-methods`." msgstr "" -#: library/multiprocessing.rst:1143 +#: library/multiprocessing.rst:1199 msgid "" "Set the method which should be used to start child processes. The *method* " "argument can be ``'fork'``, ``'spawn'`` or ``'forkserver'``. Raises :exc:" @@ -1563,17 +1634,17 @@ msgid "" "then the context is set to the default context." msgstr "" -#: library/multiprocessing.rst:1150 +#: library/multiprocessing.rst:1206 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:1154 +#: library/multiprocessing.rst:1210 msgid "See :ref:`multiprocessing-start-methods`." msgstr "" -#: library/multiprocessing.rst:1160 +#: library/multiprocessing.rst:1216 msgid "" ":mod:`multiprocessing` contains no analogues of :func:`threading." "active_count`, :func:`threading.enumerate`, :func:`threading.settrace`, :" @@ -1581,75 +1652,75 @@ msgid "" "local`." msgstr "" -#: library/multiprocessing.rst:1167 +#: library/multiprocessing.rst:1223 msgid "Connection Objects" msgstr "" -#: library/multiprocessing.rst:1171 +#: library/multiprocessing.rst:1227 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:1174 +#: library/multiprocessing.rst:1230 msgid "" "Connection objects are usually created using :func:`Pipe ` -- see also :ref:`multiprocessing-listeners-clients`." msgstr "" -#: library/multiprocessing.rst:1182 +#: library/multiprocessing.rst:1238 msgid "" "Send an object to the other end of the connection which should be read " "using :meth:`recv`." msgstr "" -#: library/multiprocessing.rst:1185 +#: library/multiprocessing.rst:1241 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:1190 +#: library/multiprocessing.rst:1246 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:1197 +#: library/multiprocessing.rst:1253 msgid "Return the file descriptor or handle used by the connection." msgstr "" -#: library/multiprocessing.rst:1201 +#: library/multiprocessing.rst:1257 msgid "Close the connection." msgstr "" -#: library/multiprocessing.rst:1203 +#: library/multiprocessing.rst:1259 msgid "This is called automatically when the connection is garbage collected." msgstr "" -#: library/multiprocessing.rst:1207 +#: library/multiprocessing.rst:1263 msgid "Return whether there is any data available to be read." msgstr "" -#: library/multiprocessing.rst:1209 +#: library/multiprocessing.rst:1265 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:1213 +#: library/multiprocessing.rst:1269 msgid "" "Note that multiple connection objects may be polled at once by using :func:" "`multiprocessing.connection.wait`." msgstr "" -#: library/multiprocessing.rst:1218 +#: library/multiprocessing.rst:1274 msgid "Send byte data from a :term:`bytes-like object` as a complete message." msgstr "" -#: library/multiprocessing.rst:1220 +#: library/multiprocessing.rst:1276 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 " @@ -1657,7 +1728,7 @@ msgid "" "exc:`ValueError` exception" msgstr "" -#: library/multiprocessing.rst:1227 +#: library/multiprocessing.rst:1283 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 :" @@ -1665,19 +1736,19 @@ msgid "" "closed." msgstr "" -#: library/multiprocessing.rst:1232 +#: library/multiprocessing.rst:1288 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:1236 +#: library/multiprocessing.rst:1292 msgid "" "This function used to raise :exc:`IOError`, which is now an alias of :exc:" "`OSError`." msgstr "" -#: library/multiprocessing.rst:1243 +#: library/multiprocessing.rst:1299 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 " @@ -1685,38 +1756,38 @@ msgid "" "nothing left to receive and the other end was closed." msgstr "" -#: library/multiprocessing.rst:1249 +#: library/multiprocessing.rst:1305 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:1254 +#: library/multiprocessing.rst:1310 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:1258 +#: library/multiprocessing.rst:1314 msgid "" "Connection objects themselves can now be transferred between processes " "using :meth:`Connection.send` and :meth:`Connection.recv`." msgstr "" -#: library/multiprocessing.rst:1262 +#: library/multiprocessing.rst:1318 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:1266 +#: library/multiprocessing.rst:1322 msgid "For example:" msgstr "" -#: library/multiprocessing.rst:1268 +#: library/multiprocessing.rst:1324 msgid "" ">>> from multiprocessing import Pipe\n" ">>> a, b = Pipe()\n" @@ -1736,14 +1807,14 @@ msgid "" "array('i', [0, 1, 2, 3, 4, 0, 0, 0, 0, 0])" msgstr "" -#: library/multiprocessing.rst:1291 +#: library/multiprocessing.rst:1347 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:1295 +#: library/multiprocessing.rst:1351 msgid "" "Therefore, unless the connection object was produced using :func:`Pipe` you " "should only use the :meth:`~Connection.recv` and :meth:`~Connection.send` " @@ -1751,71 +1822,71 @@ msgid "" "`multiprocessing-auth-keys`." msgstr "" -#: library/multiprocessing.rst:1302 +#: library/multiprocessing.rst:1358 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:1308 +#: library/multiprocessing.rst:1364 msgid "Synchronization primitives" msgstr "" -#: library/multiprocessing.rst:1312 +#: library/multiprocessing.rst:1368 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:1316 +#: library/multiprocessing.rst:1372 msgid "" "Note that one can also create synchronization primitives by using a manager " "object -- see :ref:`multiprocessing-managers`." msgstr "" -#: library/multiprocessing.rst:1321 +#: library/multiprocessing.rst:1377 msgid "A barrier object: a clone of :class:`threading.Barrier`." msgstr "" -#: library/multiprocessing.rst:1327 +#: library/multiprocessing.rst:1383 msgid "" "A bounded semaphore object: a close analog of :class:`threading." "BoundedSemaphore`." msgstr "" -#: library/multiprocessing.rst:1330 library/multiprocessing.rst:1468 +#: library/multiprocessing.rst:1386 library/multiprocessing.rst:1524 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:1334 +#: library/multiprocessing.rst:1390 msgid "" "On macOS, this is indistinguishable from :class:`Semaphore` because " "``sem_getvalue()`` is not implemented on that platform." msgstr "" -#: library/multiprocessing.rst:1339 +#: library/multiprocessing.rst:1395 msgid "A condition variable: an alias for :class:`threading.Condition`." msgstr "" -#: library/multiprocessing.rst:1341 +#: library/multiprocessing.rst:1397 msgid "" "If *lock* is specified then it should be a :class:`Lock` or :class:`RLock` " "object from :mod:`multiprocessing`." msgstr "" -#: library/multiprocessing.rst:1344 library/multiprocessing.rst:1882 +#: library/multiprocessing.rst:1400 library/multiprocessing.rst:1938 msgid "The :meth:`~threading.Condition.wait_for` method was added." msgstr "" -#: library/multiprocessing.rst:1349 +#: library/multiprocessing.rst:1405 msgid "A clone of :class:`threading.Event`." msgstr "" -#: library/multiprocessing.rst:1354 +#: library/multiprocessing.rst:1410 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 " @@ -1826,24 +1897,24 @@ msgid "" "as noted." msgstr "" -#: library/multiprocessing.rst:1362 +#: library/multiprocessing.rst:1418 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:1366 +#: library/multiprocessing.rst:1422 msgid "" ":class:`Lock` supports the :term:`context manager` protocol and thus may be " "used in :keyword:`with` statements." msgstr "" -#: library/multiprocessing.rst:1371 library/multiprocessing.rst:1422 +#: library/multiprocessing.rst:1427 library/multiprocessing.rst:1478 msgid "Acquire a lock, blocking or non-blocking." msgstr "" -#: library/multiprocessing.rst:1373 +#: library/multiprocessing.rst:1429 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 " @@ -1851,14 +1922,14 @@ msgid "" "that in :meth:`threading.Lock.acquire`." msgstr "" -#: library/multiprocessing.rst:1378 +#: library/multiprocessing.rst:1434 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:1382 +#: library/multiprocessing.rst:1438 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 " @@ -1872,19 +1943,19 @@ msgid "" "acquired or ``False`` if the timeout period has elapsed." msgstr "" -#: library/multiprocessing.rst:1397 +#: library/multiprocessing.rst:1453 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:1400 +#: library/multiprocessing.rst:1456 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:1406 +#: library/multiprocessing.rst:1462 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. " @@ -1893,20 +1964,20 @@ msgid "" "release it once for each time it has been acquired." msgstr "" -#: library/multiprocessing.rst:1412 +#: library/multiprocessing.rst:1468 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:1416 +#: library/multiprocessing.rst:1472 msgid "" ":class:`RLock` supports the :term:`context manager` protocol and thus may be " "used in :keyword:`with` statements." msgstr "" -#: library/multiprocessing.rst:1424 +#: library/multiprocessing.rst:1480 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 " @@ -1919,7 +1990,7 @@ msgid "" "itself." msgstr "" -#: library/multiprocessing.rst:1434 +#: library/multiprocessing.rst:1490 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 " @@ -1930,14 +2001,14 @@ msgid "" "a return value of ``True``." msgstr "" -#: library/multiprocessing.rst:1442 +#: library/multiprocessing.rst:1498 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:1449 +#: library/multiprocessing.rst:1505 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 " @@ -1947,7 +2018,7 @@ msgid "" "locked and owned by the calling process or thread." msgstr "" -#: library/multiprocessing.rst:1457 +#: library/multiprocessing.rst:1513 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 " @@ -1956,17 +2027,17 @@ msgid "" "from the implemented behavior in :meth:`threading.RLock.release`." msgstr "" -#: library/multiprocessing.rst:1466 +#: library/multiprocessing.rst:1522 msgid "A semaphore object: a close analog of :class:`threading.Semaphore`." msgstr "" -#: library/multiprocessing.rst:1473 +#: library/multiprocessing.rst:1529 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:1478 +#: library/multiprocessing.rst:1534 msgid "" "Some of this package's functionality requires a functioning shared semaphore " "implementation on the host operating system. Without one, the :mod:" @@ -1975,31 +2046,31 @@ msgid "" "additional information." msgstr "" -#: library/multiprocessing.rst:1486 +#: library/multiprocessing.rst:1542 msgid "Shared :mod:`ctypes` Objects" msgstr "" -#: library/multiprocessing.rst:1488 +#: library/multiprocessing.rst:1544 msgid "" "It is possible to create shared objects using shared memory which can be " "inherited by child processes." msgstr "" -#: library/multiprocessing.rst:1493 +#: library/multiprocessing.rst:1549 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:1497 library/multiprocessing.rst:1584 +#: library/multiprocessing.rst:1553 library/multiprocessing.rst:1640 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:1501 +#: library/multiprocessing.rst:1557 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` " @@ -2009,41 +2080,41 @@ msgid "" "\"process-safe\"." msgstr "" -#: library/multiprocessing.rst:1508 +#: library/multiprocessing.rst:1564 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:1512 +#: library/multiprocessing.rst:1568 msgid "counter.value += 1" msgstr "" -#: library/multiprocessing.rst:1514 +#: library/multiprocessing.rst:1570 msgid "" "Assuming the associated lock is recursive (which it is by default) you can " "instead do ::" msgstr "" -#: library/multiprocessing.rst:1517 +#: library/multiprocessing.rst:1573 msgid "" "with counter.get_lock():\n" " counter.value += 1" msgstr "" -#: library/multiprocessing.rst:1520 library/multiprocessing.rst:1610 -#: library/multiprocessing.rst:1625 +#: library/multiprocessing.rst:1576 library/multiprocessing.rst:1666 +#: library/multiprocessing.rst:1681 msgid "Note that *lock* is a keyword-only argument." msgstr "" -#: library/multiprocessing.rst:1524 +#: library/multiprocessing.rst:1580 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:1527 +#: library/multiprocessing.rst:1583 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 " @@ -2053,7 +2124,7 @@ msgid "" "initialize the array and whose length determines the length of the array." msgstr "" -#: library/multiprocessing.rst:1534 +#: library/multiprocessing.rst:1590 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:" @@ -2063,28 +2134,28 @@ msgid "" "safe\"." msgstr "" -#: library/multiprocessing.rst:1541 +#: library/multiprocessing.rst:1597 msgid "Note that *lock* is a keyword only argument." msgstr "" -#: library/multiprocessing.rst:1543 +#: library/multiprocessing.rst:1599 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:1548 +#: library/multiprocessing.rst:1604 msgid "The :mod:`multiprocessing.sharedctypes` module" msgstr "" -#: library/multiprocessing.rst:1553 +#: library/multiprocessing.rst:1609 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:1559 +#: library/multiprocessing.rst:1615 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. " @@ -2093,11 +2164,11 @@ msgid "" "may cause a crash." msgstr "" -#: library/multiprocessing.rst:1567 +#: library/multiprocessing.rst:1623 msgid "Return a ctypes array allocated from shared memory." msgstr "" -#: library/multiprocessing.rst:1569 +#: library/multiprocessing.rst:1625 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 " @@ -2107,39 +2178,39 @@ msgid "" "initialize the array and whose length determines the length of the array." msgstr "" -#: library/multiprocessing.rst:1576 +#: library/multiprocessing.rst:1632 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:1582 +#: library/multiprocessing.rst:1638 msgid "Return a ctypes object allocated from shared memory." msgstr "" -#: library/multiprocessing.rst:1588 +#: library/multiprocessing.rst:1644 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:1592 +#: library/multiprocessing.rst:1648 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:1598 +#: library/multiprocessing.rst:1654 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:1602 library/multiprocessing.rst:1618 +#: library/multiprocessing.rst:1658 library/multiprocessing.rst:1674 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." @@ -2149,113 +2220,113 @@ msgid "" "not necessarily be \"process-safe\"." msgstr "" -#: library/multiprocessing.rst:1614 +#: library/multiprocessing.rst:1670 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:1629 +#: library/multiprocessing.rst:1685 msgid "" "Return a ctypes object allocated from shared memory which is a copy of the " "ctypes object *obj*." msgstr "" -#: library/multiprocessing.rst:1634 +#: library/multiprocessing.rst:1690 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:1638 +#: library/multiprocessing.rst:1694 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:1642 +#: library/multiprocessing.rst:1698 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:1645 +#: library/multiprocessing.rst:1701 msgid "Synchronized objects support the :term:`context manager` protocol." msgstr "" -#: library/multiprocessing.rst:1649 +#: library/multiprocessing.rst:1705 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:1654 +#: library/multiprocessing.rst:1710 msgid "ctypes" msgstr "" -#: library/multiprocessing.rst:1654 +#: library/multiprocessing.rst:1710 msgid "sharedctypes using type" msgstr "" -#: library/multiprocessing.rst:1654 +#: library/multiprocessing.rst:1710 msgid "sharedctypes using typecode" msgstr "" -#: library/multiprocessing.rst:1656 +#: library/multiprocessing.rst:1712 msgid "c_double(2.4)" msgstr "" -#: library/multiprocessing.rst:1656 +#: library/multiprocessing.rst:1712 msgid "RawValue(c_double, 2.4)" msgstr "" -#: library/multiprocessing.rst:1656 +#: library/multiprocessing.rst:1712 msgid "RawValue('d', 2.4)" msgstr "" -#: library/multiprocessing.rst:1657 +#: library/multiprocessing.rst:1713 msgid "MyStruct(4, 6)" msgstr "" -#: library/multiprocessing.rst:1657 +#: library/multiprocessing.rst:1713 msgid "RawValue(MyStruct, 4, 6)" msgstr "" -#: library/multiprocessing.rst:1658 +#: library/multiprocessing.rst:1714 msgid "(c_short * 7)()" msgstr "" -#: library/multiprocessing.rst:1658 +#: library/multiprocessing.rst:1714 msgid "RawArray(c_short, 7)" msgstr "" -#: library/multiprocessing.rst:1658 +#: library/multiprocessing.rst:1714 msgid "RawArray('h', 7)" msgstr "" -#: library/multiprocessing.rst:1659 +#: library/multiprocessing.rst:1715 msgid "(c_int * 3)(9, 2, 8)" msgstr "" -#: library/multiprocessing.rst:1659 +#: library/multiprocessing.rst:1715 msgid "RawArray(c_int, (9, 2, 8))" msgstr "" -#: library/multiprocessing.rst:1659 +#: library/multiprocessing.rst:1715 msgid "RawArray('i', (9, 2, 8))" msgstr "" -#: library/multiprocessing.rst:1663 +#: library/multiprocessing.rst:1719 msgid "" "Below is an example where a number of ctypes objects are modified by a child " "process::" msgstr "" -#: library/multiprocessing.rst:1666 +#: library/multiprocessing.rst:1722 msgid "" "from multiprocessing import Process, Lock\n" "from multiprocessing.sharedctypes import Value, Array\n" @@ -2290,11 +2361,11 @@ msgid "" " print([(a.x, a.y) for a in A])" msgstr "" -#: library/multiprocessing.rst:1701 +#: library/multiprocessing.rst:1757 msgid "The results printed are ::" msgstr "" -#: library/multiprocessing.rst:1703 +#: library/multiprocessing.rst:1759 msgid "" "49\n" "0.1111111111111111\n" @@ -2302,11 +2373,11 @@ msgid "" "[(3.515625, 39.0625), (33.0625, 4.0), (5.640625, 90.25)]" msgstr "" -#: library/multiprocessing.rst:1714 +#: library/multiprocessing.rst:1770 msgid "Managers" msgstr "" -#: library/multiprocessing.rst:1716 +#: library/multiprocessing.rst:1772 msgid "" "Managers provide a way to create data which can be shared between different " "processes, including sharing over a network between processes running on " @@ -2315,7 +2386,7 @@ msgid "" "proxies." msgstr "" -#: library/multiprocessing.rst:1725 +#: library/multiprocessing.rst:1781 msgid "" "Returns a started :class:`~multiprocessing.managers.SyncManager` object " "which can be used for sharing objects between processes. The returned " @@ -2323,31 +2394,31 @@ msgid "" "will create shared objects and return corresponding proxies." msgstr "" -#: library/multiprocessing.rst:1733 +#: library/multiprocessing.rst:1789 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:1739 +#: library/multiprocessing.rst:1795 msgid "Create a BaseManager object." msgstr "" -#: library/multiprocessing.rst:1741 +#: library/multiprocessing.rst:1797 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:1744 +#: library/multiprocessing.rst:1800 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:1747 +#: library/multiprocessing.rst:1803 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`` " @@ -2355,19 +2426,19 @@ msgid "" "it must be a byte string." msgstr "" -#: library/multiprocessing.rst:1752 +#: library/multiprocessing.rst:1808 msgid "" "*serializer* must be ``'pickle'`` (use :mod:`pickle` serialization) or " "``'xmlrpclib'`` (use :mod:`xmlrpc.client` serialization)." msgstr "" -#: library/multiprocessing.rst:1755 +#: library/multiprocessing.rst:1811 msgid "" "*ctx* is a context object, or ``None`` (use the current context). See the :" "func:`get_context` function." msgstr "" -#: library/multiprocessing.rst:1758 +#: library/multiprocessing.rst:1814 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 " @@ -2375,24 +2446,24 @@ msgid "" "also times out, the process is killed." msgstr "" -#: library/multiprocessing.rst:1763 +#: library/multiprocessing.rst:1819 msgid "Added the *shutdown_timeout* parameter." msgstr "" -#: library/multiprocessing.rst:1768 +#: library/multiprocessing.rst:1824 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:1773 +#: library/multiprocessing.rst:1829 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:1777 +#: library/multiprocessing.rst:1833 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> manager = BaseManager(address=('', 50000), authkey=b'abc')\n" @@ -2400,44 +2471,44 @@ msgid "" ">>> server.serve_forever()" msgstr "" -#: library/multiprocessing.rst:1782 +#: library/multiprocessing.rst:1838 msgid ":class:`Server` additionally has an :attr:`address` attribute." msgstr "" -#: library/multiprocessing.rst:1786 +#: library/multiprocessing.rst:1842 msgid "Connect a local manager object to a remote manager process::" msgstr "" -#: library/multiprocessing.rst:1788 +#: library/multiprocessing.rst:1844 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:1794 +#: library/multiprocessing.rst:1850 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:1797 +#: library/multiprocessing.rst:1853 msgid "This can be called multiple times." msgstr "" -#: library/multiprocessing.rst:1801 +#: library/multiprocessing.rst:1857 msgid "" "A classmethod which can be used for registering a type or callable with the " "manager class." msgstr "" -#: library/multiprocessing.rst:1804 +#: library/multiprocessing.rst:1860 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:1807 +#: library/multiprocessing.rst:1863 msgid "" "*callable* is a callable used for creating objects for this type " "identifier. If a manager instance will be connected to the server using " @@ -2445,14 +2516,14 @@ msgid "" "then this can be left as ``None``." msgstr "" -#: library/multiprocessing.rst:1813 +#: library/multiprocessing.rst:1869 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:1817 +#: library/multiprocessing.rst:1873 msgid "" "*exposed* is used to specify a sequence of method names which proxies for " "this typeid should be allowed to access using :meth:`BaseProxy." @@ -2463,7 +2534,7 @@ msgid "" "method and whose name does not begin with ``'_'``.)" msgstr "" -#: library/multiprocessing.rst:1826 +#: library/multiprocessing.rst:1882 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 " @@ -2473,22 +2544,22 @@ msgid "" "returned by the method will be copied by value." msgstr "" -#: library/multiprocessing.rst:1833 +#: library/multiprocessing.rst:1889 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:1837 +#: library/multiprocessing.rst:1893 msgid ":class:`BaseManager` instances also have one read-only property:" msgstr "" -#: library/multiprocessing.rst:1841 +#: library/multiprocessing.rst:1897 msgid "The address used by the manager." msgstr "" -#: library/multiprocessing.rst:1843 +#: library/multiprocessing.rst:1899 msgid "" "Manager objects support the context management protocol -- see :ref:" "`typecontextmanager`. :meth:`~contextmanager.__enter__` starts the server " @@ -2496,121 +2567,121 @@ msgid "" "object. :meth:`~contextmanager.__exit__` calls :meth:`shutdown`." msgstr "" -#: library/multiprocessing.rst:1849 +#: library/multiprocessing.rst:1905 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:1854 +#: library/multiprocessing.rst:1910 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:1858 +#: library/multiprocessing.rst:1914 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:1864 +#: library/multiprocessing.rst:1920 msgid "" "Create a shared :class:`threading.Barrier` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1871 +#: library/multiprocessing.rst:1927 msgid "" "Create a shared :class:`threading.BoundedSemaphore` object and return a " "proxy for it." msgstr "" -#: library/multiprocessing.rst:1876 +#: library/multiprocessing.rst:1932 msgid "" "Create a shared :class:`threading.Condition` object and return a proxy for " "it." msgstr "" -#: library/multiprocessing.rst:1879 +#: library/multiprocessing.rst:1935 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:1887 +#: library/multiprocessing.rst:1943 msgid "" "Create a shared :class:`threading.Event` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1891 +#: library/multiprocessing.rst:1947 msgid "" "Create a shared :class:`threading.Lock` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1895 +#: library/multiprocessing.rst:1951 msgid "Create a shared :class:`Namespace` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1899 +#: library/multiprocessing.rst:1955 msgid "Create a shared :class:`queue.Queue` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1903 +#: library/multiprocessing.rst:1959 msgid "" "Create a shared :class:`threading.RLock` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1907 +#: library/multiprocessing.rst:1963 msgid "" "Create a shared :class:`threading.Semaphore` object and return a proxy for " "it." msgstr "" -#: library/multiprocessing.rst:1912 +#: library/multiprocessing.rst:1968 msgid "Create an array and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1916 +#: library/multiprocessing.rst:1972 msgid "" "Create an object with a writable ``value`` attribute and return a proxy for " "it." msgstr "" -#: library/multiprocessing.rst:1923 +#: library/multiprocessing.rst:1979 msgid "Create a shared :class:`dict` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1928 +#: library/multiprocessing.rst:1984 msgid "Create a shared :class:`list` object and return a proxy for it." msgstr "" -#: library/multiprocessing.rst:1930 +#: library/multiprocessing.rst:1986 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:1937 +#: library/multiprocessing.rst:1993 msgid "A type that can register with :class:`SyncManager`." msgstr "" -#: library/multiprocessing.rst:1939 +#: library/multiprocessing.rst:1995 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:1942 +#: library/multiprocessing.rst:1998 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:1946 +#: library/multiprocessing.rst:2002 msgid "" ">>> mp_context = multiprocessing.get_context('spawn')\n" ">>> manager = mp_context.Manager()\n" @@ -2622,18 +2693,18 @@ msgid "" "Namespace(x=10, y='hello')" msgstr "" -#: library/multiprocessing.rst:1959 +#: library/multiprocessing.rst:2015 msgid "Customized managers" msgstr "" -#: library/multiprocessing.rst:1961 +#: library/multiprocessing.rst:2017 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:1965 +#: library/multiprocessing.rst:2021 msgid "" "from multiprocessing.managers import BaseManager\n" "\n" @@ -2655,23 +2726,23 @@ msgid "" " print(maths.mul(7, 8)) # prints 56" msgstr "" -#: library/multiprocessing.rst:1986 +#: library/multiprocessing.rst:2042 msgid "Using a remote manager" msgstr "" -#: library/multiprocessing.rst:1988 +#: library/multiprocessing.rst:2044 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:1991 +#: library/multiprocessing.rst:2047 msgid "" "Running the following commands creates a server for a single shared queue " "which remote clients can access::" msgstr "" -#: library/multiprocessing.rst:1994 +#: library/multiprocessing.rst:2050 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> from queue import Queue\n" @@ -2683,11 +2754,11 @@ msgid "" ">>> s.serve_forever()" msgstr "" -#: library/multiprocessing.rst:2003 +#: library/multiprocessing.rst:2059 msgid "One client can access the server as follows::" msgstr "" -#: library/multiprocessing.rst:2005 +#: library/multiprocessing.rst:2061 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> class QueueManager(BaseManager): pass\n" @@ -2699,11 +2770,11 @@ msgid "" ">>> queue.put('hello')" msgstr "" -#: library/multiprocessing.rst:2013 +#: library/multiprocessing.rst:2069 msgid "Another client can also use it::" msgstr "" -#: library/multiprocessing.rst:2015 +#: library/multiprocessing.rst:2071 msgid "" ">>> from multiprocessing.managers import BaseManager\n" ">>> class QueueManager(BaseManager): pass\n" @@ -2716,13 +2787,13 @@ msgid "" "'hello'" msgstr "" -#: library/multiprocessing.rst:2024 +#: library/multiprocessing.rst:2080 msgid "" "Local processes can also access that queue, using the code from above on the " "client to access it remotely::" msgstr "" -#: library/multiprocessing.rst:2027 +#: library/multiprocessing.rst:2083 msgid "" ">>> from multiprocessing import Process, Queue\n" ">>> from multiprocessing.managers import BaseManager\n" @@ -2744,18 +2815,18 @@ msgid "" ">>> s.serve_forever()" msgstr "" -#: library/multiprocessing.rst:2049 +#: library/multiprocessing.rst:2105 msgid "Proxy Objects" msgstr "" -#: library/multiprocessing.rst:2051 +#: library/multiprocessing.rst:2107 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:2055 +#: library/multiprocessing.rst:2111 msgid "" "A proxy object has methods which invoke corresponding methods of its " "referent (although not every method of the referent will necessarily be " @@ -2763,7 +2834,7 @@ msgid "" "its referent can:" msgstr "" -#: library/multiprocessing.rst:2059 +#: library/multiprocessing.rst:2115 msgid "" ">>> mp_context = multiprocessing.get_context('spawn')\n" ">>> manager = mp_context.Manager()\n" @@ -2778,14 +2849,14 @@ msgid "" "[4, 9, 16]" msgstr "" -#: library/multiprocessing.rst:2073 +#: library/multiprocessing.rst:2129 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:2077 +#: library/multiprocessing.rst:2133 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:" @@ -2793,7 +2864,7 @@ msgid "" "lists, dicts, and other :ref:`multiprocessing-proxy_objects`:" msgstr "" -#: library/multiprocessing.rst:2082 +#: library/multiprocessing.rst:2138 msgid "" ">>> a = manager.list()\n" ">>> b = manager.list()\n" @@ -2805,11 +2876,11 @@ msgid "" "['hello'] ['hello']" msgstr "" -#: library/multiprocessing.rst:2093 +#: library/multiprocessing.rst:2149 msgid "Similarly, dict and list proxies may be nested inside one another::" msgstr "" -#: library/multiprocessing.rst:2095 +#: library/multiprocessing.rst:2151 msgid "" ">>> l_outer = manager.list([ manager.dict() for i in range(2) ])\n" ">>> d_first_inner = l_outer[0]\n" @@ -2823,7 +2894,7 @@ msgid "" "{'c': 3, 'z': 26}" msgstr "" -#: library/multiprocessing.rst:2106 +#: library/multiprocessing.rst:2162 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 " @@ -2834,7 +2905,7 @@ msgid "" "assign the modified value to the container proxy::" msgstr "" -#: library/multiprocessing.rst:2114 +#: library/multiprocessing.rst:2170 msgid "" "# create a list proxy and append a mutable object (a dictionary)\n" "lproxy = manager.list()\n" @@ -2848,67 +2919,67 @@ msgid "" "lproxy[0] = d" msgstr "" -#: library/multiprocessing.rst:2125 +#: library/multiprocessing.rst:2181 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:2131 +#: library/multiprocessing.rst:2187 msgid "" "The proxy types in :mod:`multiprocessing` do nothing to support comparisons " "by value. So, for instance, we have:" msgstr "" -#: library/multiprocessing.rst:2134 +#: library/multiprocessing.rst:2190 msgid "" ">>> manager.list([1,2,3]) == [1,2,3]\n" "False" msgstr "" -#: library/multiprocessing.rst:2139 +#: library/multiprocessing.rst:2195 msgid "" "One should just use a copy of the referent instead when making comparisons." msgstr "" -#: library/multiprocessing.rst:2143 +#: library/multiprocessing.rst:2199 msgid "Proxy objects are instances of subclasses of :class:`BaseProxy`." msgstr "" -#: library/multiprocessing.rst:2147 +#: library/multiprocessing.rst:2203 msgid "Call and return the result of a method of the proxy's referent." msgstr "" -#: library/multiprocessing.rst:2149 +#: library/multiprocessing.rst:2205 msgid "" "If ``proxy`` is a proxy whose referent is ``obj`` then the expression ::" msgstr "" -#: library/multiprocessing.rst:2151 +#: library/multiprocessing.rst:2207 msgid "proxy._callmethod(methodname, args, kwds)" msgstr "" -#: library/multiprocessing.rst:2153 +#: library/multiprocessing.rst:2209 msgid "will evaluate the expression ::" msgstr "" -#: library/multiprocessing.rst:2155 +#: library/multiprocessing.rst:2211 msgid "getattr(obj, methodname)(*args, **kwds)" msgstr "" -#: library/multiprocessing.rst:2157 +#: library/multiprocessing.rst:2213 msgid "in the manager's process." msgstr "" -#: library/multiprocessing.rst:2159 +#: library/multiprocessing.rst:2215 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:2163 +#: library/multiprocessing.rst:2219 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 " @@ -2916,17 +2987,17 @@ msgid "" "meth:`_callmethod`." msgstr "" -#: library/multiprocessing.rst:2168 +#: library/multiprocessing.rst:2224 msgid "" "Note in particular that an exception will be raised if *methodname* has not " "been *exposed*." msgstr "" -#: library/multiprocessing.rst:2171 +#: library/multiprocessing.rst:2227 msgid "An example of the usage of :meth:`_callmethod`:" msgstr "" -#: library/multiprocessing.rst:2173 +#: library/multiprocessing.rst:2229 msgid "" ">>> l = manager.list(range(10))\n" ">>> l._callmethod('__len__')\n" @@ -2939,68 +3010,68 @@ msgid "" "IndexError: list index out of range" msgstr "" -#: library/multiprocessing.rst:2187 +#: library/multiprocessing.rst:2243 msgid "Return a copy of the referent." msgstr "" -#: library/multiprocessing.rst:2189 +#: library/multiprocessing.rst:2245 msgid "If the referent is unpicklable then this will raise an exception." msgstr "" -#: library/multiprocessing.rst:2193 +#: library/multiprocessing.rst:2249 msgid "Return a representation of the proxy object." msgstr "" -#: library/multiprocessing.rst:2197 +#: library/multiprocessing.rst:2253 msgid "Return the representation of the referent." msgstr "" -#: library/multiprocessing.rst:2201 +#: library/multiprocessing.rst:2257 msgid "Cleanup" msgstr "" -#: library/multiprocessing.rst:2203 +#: library/multiprocessing.rst:2259 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:2206 +#: library/multiprocessing.rst:2262 msgid "" "A shared object gets deleted from the manager process when there are no " "longer any proxies referring to it." msgstr "" -#: library/multiprocessing.rst:2211 +#: library/multiprocessing.rst:2267 msgid "Process Pools" msgstr "" -#: library/multiprocessing.rst:2216 +#: library/multiprocessing.rst:2272 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:2221 +#: library/multiprocessing.rst:2277 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:2225 +#: library/multiprocessing.rst:2281 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:2228 library/multiprocessing.rst:2792 +#: library/multiprocessing.rst:2284 library/multiprocessing.rst:2848 msgid "" "If *initializer* is not ``None`` then each worker process will call " "``initializer(*initargs)`` when it starts." msgstr "" -#: library/multiprocessing.rst:2231 +#: library/multiprocessing.rst:2287 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 " @@ -3008,7 +3079,7 @@ msgid "" "which means worker processes will live as long as the pool." msgstr "" -#: library/multiprocessing.rst:2236 +#: library/multiprocessing.rst:2292 msgid "" "*context* can be used to specify the context used for starting the worker " "processes. Usually a pool is created using the function :func:" @@ -3016,13 +3087,13 @@ msgid "" "both cases *context* is set appropriately." msgstr "" -#: library/multiprocessing.rst:2242 +#: library/multiprocessing.rst:2298 msgid "" "Note that the methods of the pool object should only be called by the " "process which created the pool." msgstr "" -#: library/multiprocessing.rst:2246 +#: library/multiprocessing.rst:2302 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 " @@ -3030,28 +3101,28 @@ msgid "" "to do this can lead to the process hanging on finalization." msgstr "" -#: library/multiprocessing.rst:2251 +#: library/multiprocessing.rst:2307 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:2255 +#: library/multiprocessing.rst:2311 msgid "Added the *maxtasksperchild* parameter." msgstr "" -#: library/multiprocessing.rst:2258 +#: library/multiprocessing.rst:2314 msgid "Added the *context* parameter." msgstr "" -#: library/multiprocessing.rst:2261 +#: library/multiprocessing.rst:2317 msgid "" "*processes* uses :func:`os.process_cpu_count` by default, instead of :func:" "`os.cpu_count`." msgstr "" -#: library/multiprocessing.rst:2267 +#: library/multiprocessing.rst:2323 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 " @@ -3062,7 +3133,7 @@ msgid "" "ability to the end user." msgstr "" -#: library/multiprocessing.rst:2277 +#: library/multiprocessing.rst:2333 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 " @@ -3070,13 +3141,13 @@ msgid "" "executed in one of the workers of the pool." msgstr "" -#: library/multiprocessing.rst:2284 +#: library/multiprocessing.rst:2340 msgid "" "A variant of the :meth:`apply` method which returns a :class:" "`~multiprocessing.pool.AsyncResult` object." msgstr "" -#: library/multiprocessing.rst:2287 library/multiprocessing.rst:2318 +#: library/multiprocessing.rst:2343 library/multiprocessing.rst:2374 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, " @@ -3084,58 +3155,58 @@ msgid "" "applied instead." msgstr "" -#: library/multiprocessing.rst:2292 library/multiprocessing.rst:2323 +#: library/multiprocessing.rst:2348 library/multiprocessing.rst:2379 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:2296 library/multiprocessing.rst:2327 +#: library/multiprocessing.rst:2352 library/multiprocessing.rst:2383 msgid "" "Callbacks should complete immediately since otherwise the thread which " "handles the results will get blocked." msgstr "" -#: library/multiprocessing.rst:2301 +#: library/multiprocessing.rst:2357 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:2305 +#: library/multiprocessing.rst:2361 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:2309 +#: library/multiprocessing.rst:2365 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:2315 +#: library/multiprocessing.rst:2371 msgid "" "A variant of the :meth:`.map` method which returns a :class:" "`~multiprocessing.pool.AsyncResult` object." msgstr "" -#: library/multiprocessing.rst:2332 +#: library/multiprocessing.rst:2388 msgid "A lazier version of :meth:`.map`." msgstr "" -#: library/multiprocessing.rst:2334 +#: library/multiprocessing.rst:2390 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:2339 +#: library/multiprocessing.rst:2395 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: " @@ -3143,65 +3214,65 @@ msgid "" "result cannot be returned within *timeout* seconds." msgstr "" -#: library/multiprocessing.rst:2346 +#: library/multiprocessing.rst:2402 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:2352 +#: library/multiprocessing.rst:2408 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:2356 +#: library/multiprocessing.rst:2412 msgid "" "Hence an *iterable* of ``[(1,2), (3, 4)]`` results in ``[func(1,2), " "func(3,4)]``." msgstr "" -#: library/multiprocessing.rst:2363 +#: library/multiprocessing.rst:2419 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:2371 +#: library/multiprocessing.rst:2427 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:2376 +#: library/multiprocessing.rst:2432 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:2382 +#: library/multiprocessing.rst:2438 msgid "" "Wait for the worker processes to exit. One must call :meth:`close` or :meth:" "`terminate` before using :meth:`join`." msgstr "" -#: library/multiprocessing.rst:2385 +#: library/multiprocessing.rst:2441 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:2393 +#: library/multiprocessing.rst:2449 msgid "" "The class of the result returned by :meth:`Pool.apply_async` and :meth:`Pool." "map_async`." msgstr "" -#: library/multiprocessing.rst:2398 +#: library/multiprocessing.rst:2454 msgid "" "Return the result when it arrives. If *timeout* is not ``None`` and the " "result does not arrive within *timeout* seconds then :exc:`multiprocessing." @@ -3209,31 +3280,31 @@ msgid "" "exception will be reraised by :meth:`get`." msgstr "" -#: library/multiprocessing.rst:2405 +#: library/multiprocessing.rst:2461 msgid "Wait until the result is available or until *timeout* seconds pass." msgstr "" -#: library/multiprocessing.rst:2409 +#: library/multiprocessing.rst:2465 msgid "Return whether the call has completed." msgstr "" -#: library/multiprocessing.rst:2413 +#: library/multiprocessing.rst:2469 msgid "" "Return whether the call completed without raising an exception. Will raise :" "exc:`ValueError` if the result is not ready." msgstr "" -#: library/multiprocessing.rst:2416 +#: library/multiprocessing.rst:2472 msgid "" "If the result is not ready, :exc:`ValueError` is raised instead of :exc:" "`AssertionError`." msgstr "" -#: library/multiprocessing.rst:2420 +#: library/multiprocessing.rst:2476 msgid "The following example demonstrates the use of a pool::" msgstr "" -#: library/multiprocessing.rst:2422 +#: library/multiprocessing.rst:2478 msgid "" "from multiprocessing import Pool\n" "import time\n" @@ -3261,17 +3332,17 @@ msgid "" "TimeoutError" msgstr "" -#: library/multiprocessing.rst:2447 +#: library/multiprocessing.rst:2503 msgid "Listeners and Clients" msgstr "" -#: library/multiprocessing.rst:2452 +#: library/multiprocessing.rst:2508 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:2456 +#: library/multiprocessing.rst:2512 msgid "" "However, the :mod:`multiprocessing.connection` module allows some extra " "flexibility. It basically gives a high level message oriented API for " @@ -3280,45 +3351,45 @@ msgid "" "multiple connections at the same time." msgstr "" -#: library/multiprocessing.rst:2465 +#: library/multiprocessing.rst:2521 msgid "" "Send a randomly generated message to the other end of the connection and " "wait for a reply." msgstr "" -#: library/multiprocessing.rst:2468 +#: library/multiprocessing.rst:2524 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:2474 +#: library/multiprocessing.rst:2530 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:2477 +#: library/multiprocessing.rst:2533 msgid "" "If a welcome message is not received, then :exc:`~multiprocessing." "AuthenticationError` is raised." msgstr "" -#: library/multiprocessing.rst:2482 +#: library/multiprocessing.rst:2538 msgid "" "Attempt to set up a connection to the listener which is using address " "*address*, returning a :class:`~Connection`." msgstr "" -#: library/multiprocessing.rst:2485 +#: library/multiprocessing.rst:2541 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:2489 library/multiprocessing.rst:2524 +#: library/multiprocessing.rst:2545 library/multiprocessing.rst:2580 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 " @@ -3327,26 +3398,26 @@ msgid "" "`multiprocessing-auth-keys`." msgstr "" -#: library/multiprocessing.rst:2497 +#: library/multiprocessing.rst:2553 msgid "" "A wrapper for a bound socket or Windows named pipe which is 'listening' for " "connections." msgstr "" -#: library/multiprocessing.rst:2500 +#: library/multiprocessing.rst:2556 msgid "" "*address* is the address to be used by the bound socket or named pipe of the " "listener object." msgstr "" -#: library/multiprocessing.rst:2505 +#: library/multiprocessing.rst:2561 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:2509 +#: library/multiprocessing.rst:2565 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 " @@ -3360,49 +3431,49 @@ msgid "" "using :func:`tempfile.mkstemp`." msgstr "" -#: library/multiprocessing.rst:2520 +#: library/multiprocessing.rst:2576 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:2532 +#: library/multiprocessing.rst:2588 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:2539 +#: library/multiprocessing.rst:2595 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:2543 +#: library/multiprocessing.rst:2599 msgid "Listener objects have the following read-only properties:" msgstr "" -#: library/multiprocessing.rst:2547 +#: library/multiprocessing.rst:2603 msgid "The address which is being used by the Listener object." msgstr "" -#: library/multiprocessing.rst:2551 +#: library/multiprocessing.rst:2607 msgid "" "The address from which the last accepted connection came. If this is " "unavailable then it is ``None``." msgstr "" -#: library/multiprocessing.rst:2554 +#: library/multiprocessing.rst:2610 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:2561 +#: library/multiprocessing.rst:2617 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 " @@ -3411,32 +3482,32 @@ msgid "" "zero timeout." msgstr "" -#: library/multiprocessing.rst:2567 +#: library/multiprocessing.rst:2623 msgid "" "For both POSIX and Windows, an object can appear in *object_list* if it is" msgstr "" -#: library/multiprocessing.rst:2570 +#: library/multiprocessing.rst:2626 msgid "a readable :class:`~multiprocessing.connection.Connection` object;" msgstr "" -#: library/multiprocessing.rst:2571 +#: library/multiprocessing.rst:2627 msgid "a connected and readable :class:`socket.socket` object; or" msgstr "" -#: library/multiprocessing.rst:2572 +#: library/multiprocessing.rst:2628 msgid "" "the :attr:`~multiprocessing.Process.sentinel` attribute of a :class:" "`~multiprocessing.Process` object." msgstr "" -#: library/multiprocessing.rst:2575 +#: library/multiprocessing.rst:2631 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:2578 +#: library/multiprocessing.rst:2634 msgid "" "**POSIX**: ``wait(object_list, timeout)`` almost equivalent ``select." "select(object_list, [], [], timeout)``. The difference is that, if :func:" @@ -3444,7 +3515,7 @@ msgid "" "an error number of ``EINTR``, whereas :func:`wait` will not." msgstr "" -#: library/multiprocessing.rst:2584 +#: library/multiprocessing.rst:2640 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 " @@ -3454,18 +3525,18 @@ msgid "" "handles.)" msgstr "" -#: library/multiprocessing.rst:2594 +#: library/multiprocessing.rst:2650 msgid "**Examples**" msgstr "" -#: library/multiprocessing.rst:2596 +#: library/multiprocessing.rst:2652 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:2600 +#: library/multiprocessing.rst:2656 msgid "" "from multiprocessing.connection import Listener\n" "from array import array\n" @@ -3483,13 +3554,13 @@ msgid "" " conn.send_bytes(array('i', [42, 1729]))" msgstr "" -#: library/multiprocessing.rst:2615 +#: library/multiprocessing.rst:2671 msgid "" "The following code connects to the server and receives some data from the " "server::" msgstr "" -#: library/multiprocessing.rst:2618 +#: library/multiprocessing.rst:2674 msgid "" "from multiprocessing.connection import Client\n" "from array import array\n" @@ -3506,13 +3577,13 @@ msgid "" " print(arr) # => array('i', [42, 1729, 0, 0, 0])" msgstr "" -#: library/multiprocessing.rst:2632 +#: library/multiprocessing.rst:2688 msgid "" "The following code uses :func:`~multiprocessing.connection.wait` to wait for " "messages from multiple processes at once::" msgstr "" -#: library/multiprocessing.rst:2635 +#: library/multiprocessing.rst:2691 msgid "" "from multiprocessing import Process, Pipe, current_process\n" "from multiprocessing.connection import wait\n" @@ -3546,23 +3617,23 @@ msgid "" " print(msg)" msgstr "" -#: library/multiprocessing.rst:2670 +#: library/multiprocessing.rst:2726 msgid "Address Formats" msgstr "" -#: library/multiprocessing.rst:2672 +#: library/multiprocessing.rst:2728 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:2675 +#: library/multiprocessing.rst:2731 msgid "" "An ``'AF_UNIX'`` address is a string representing a filename on the " "filesystem." msgstr "" -#: library/multiprocessing.rst:2678 +#: library/multiprocessing.rst:2734 msgid "" "An ``'AF_PIPE'`` address is a string of the form :samp:`r'\\\\\\\\\\\\.\\" "\\pipe\\\\\\\\{PipeName}'`. To use :func:`Client` to connect to a named " @@ -3571,17 +3642,17 @@ msgid "" "instead." msgstr "" -#: library/multiprocessing.rst:2683 +#: library/multiprocessing.rst:2739 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:2690 +#: library/multiprocessing.rst:2746 msgid "Authentication keys" msgstr "" -#: library/multiprocessing.rst:2692 +#: library/multiprocessing.rst:2748 msgid "" "When one uses :meth:`Connection.recv `, the data received " "is automatically unpickled. Unfortunately unpickling data from an untrusted " @@ -3589,7 +3660,7 @@ msgid "" "use the :mod:`hmac` module to provide digest authentication." msgstr "" -#: library/multiprocessing.rst:2698 +#: library/multiprocessing.rst:2754 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 " @@ -3597,7 +3668,7 @@ msgid "" "using the same key does **not** involve sending the key over the connection.)" msgstr "" -#: library/multiprocessing.rst:2704 +#: library/multiprocessing.rst:2760 msgid "" "If authentication is requested but no authentication key is specified then " "the return value of ``current_process().authkey`` is used (see :class:" @@ -3608,17 +3679,17 @@ msgid "" "setting up connections between themselves." msgstr "" -#: library/multiprocessing.rst:2712 +#: library/multiprocessing.rst:2768 msgid "" "Suitable authentication keys can also be generated by using :func:`os." "urandom`." msgstr "" -#: library/multiprocessing.rst:2716 +#: library/multiprocessing.rst:2772 msgid "Logging" msgstr "" -#: library/multiprocessing.rst:2718 +#: library/multiprocessing.rst:2774 msgid "" "Some support for logging is available. Note, however, that the :mod:" "`logging` package does not use process shared locks so it is possible " @@ -3626,27 +3697,27 @@ msgid "" "mixed up." msgstr "" -#: library/multiprocessing.rst:2725 +#: library/multiprocessing.rst:2781 msgid "" "Returns the logger used by :mod:`multiprocessing`. If necessary, a new one " "will be created." msgstr "" -#: library/multiprocessing.rst:2728 +#: library/multiprocessing.rst:2784 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:2732 +#: library/multiprocessing.rst:2788 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:2739 +#: library/multiprocessing.rst:2795 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 " @@ -3655,11 +3726,11 @@ msgid "" "``level`` argument." msgstr "" -#: library/multiprocessing.rst:2745 +#: library/multiprocessing.rst:2801 msgid "Below is an example session with logging turned on::" msgstr "" -#: library/multiprocessing.rst:2747 +#: library/multiprocessing.rst:2803 msgid "" ">>> import multiprocessing, logging\n" ">>> logger = multiprocessing.log_to_stderr()\n" @@ -3675,21 +3746,21 @@ msgid "" "[INFO/SyncManager-...] manager exiting with exitcode 0" msgstr "" -#: library/multiprocessing.rst:2760 +#: library/multiprocessing.rst:2816 msgid "For a full table of logging levels, see the :mod:`logging` module." msgstr "" -#: library/multiprocessing.rst:2764 +#: library/multiprocessing.rst:2820 msgid "The :mod:`multiprocessing.dummy` module" msgstr "" -#: library/multiprocessing.rst:2769 +#: library/multiprocessing.rst:2825 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:2774 +#: library/multiprocessing.rst:2830 msgid "" "In particular, the ``Pool`` function provided by :mod:`multiprocessing." "dummy` returns an instance of :class:`ThreadPool`, which is a subclass of :" @@ -3697,7 +3768,7 @@ msgid "" "worker threads rather than worker processes." msgstr "" -#: library/multiprocessing.rst:2782 +#: library/multiprocessing.rst:2838 msgid "" "A thread pool object which controls a pool of worker threads to which jobs " "can be submitted. :class:`ThreadPool` instances are fully interface " @@ -3707,18 +3778,18 @@ msgid "" "pool.Pool.terminate` manually." msgstr "" -#: library/multiprocessing.rst:2789 +#: library/multiprocessing.rst:2845 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:2795 +#: library/multiprocessing.rst:2851 msgid "" "Unlike :class:`Pool`, *maxtasksperchild* and *context* cannot be provided." msgstr "" -#: library/multiprocessing.rst:2799 +#: library/multiprocessing.rst:2855 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 :" @@ -3728,7 +3799,7 @@ msgid "" "is not understood by any other libraries." msgstr "" -#: library/multiprocessing.rst:2806 +#: library/multiprocessing.rst:2862 msgid "" "Users should generally prefer to use :class:`concurrent.futures." "ThreadPoolExecutor`, which has a simpler interface that was designed around " @@ -3737,69 +3808,69 @@ msgid "" "`asyncio`." msgstr "" -#: library/multiprocessing.rst:2816 +#: library/multiprocessing.rst:2872 msgid "Programming guidelines" msgstr "" -#: library/multiprocessing.rst:2818 +#: library/multiprocessing.rst:2874 msgid "" "There are certain guidelines and idioms which should be adhered to when " "using :mod:`multiprocessing`." msgstr "" -#: library/multiprocessing.rst:2823 +#: library/multiprocessing.rst:2879 msgid "All start methods" msgstr "" -#: library/multiprocessing.rst:2825 +#: library/multiprocessing.rst:2881 msgid "The following applies to all start methods." msgstr "" -#: library/multiprocessing.rst:2827 +#: library/multiprocessing.rst:2883 msgid "Avoid shared state" msgstr "" -#: library/multiprocessing.rst:2829 +#: library/multiprocessing.rst:2885 msgid "" "As far as possible one should try to avoid shifting large amounts of data " "between processes." msgstr "" -#: library/multiprocessing.rst:2832 +#: library/multiprocessing.rst:2888 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:2836 +#: library/multiprocessing.rst:2892 msgid "Picklability" msgstr "" -#: library/multiprocessing.rst:2838 +#: library/multiprocessing.rst:2894 msgid "Ensure that the arguments to the methods of proxies are picklable." msgstr "" -#: library/multiprocessing.rst:2840 +#: library/multiprocessing.rst:2896 msgid "Thread safety of proxies" msgstr "" -#: library/multiprocessing.rst:2842 +#: library/multiprocessing.rst:2898 msgid "" "Do not use a proxy object from more than one thread unless you protect it " "with a lock." msgstr "" -#: library/multiprocessing.rst:2845 +#: library/multiprocessing.rst:2901 msgid "" "(There is never a problem with different processes using the *same* proxy.)" msgstr "" -#: library/multiprocessing.rst:2847 +#: library/multiprocessing.rst:2903 msgid "Joining zombie processes" msgstr "" -#: library/multiprocessing.rst:2849 +#: library/multiprocessing.rst:2905 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 " @@ -3810,11 +3881,11 @@ msgid "" "explicitly join all the processes that you start." msgstr "" -#: library/multiprocessing.rst:2857 +#: library/multiprocessing.rst:2913 msgid "Better to inherit than pickle/unpickle" msgstr "" -#: library/multiprocessing.rst:2859 +#: library/multiprocessing.rst:2915 msgid "" "When using the *spawn* or *forkserver* start methods many types from :mod:" "`multiprocessing` need to be picklable so that child processes can use " @@ -3824,11 +3895,11 @@ msgid "" "inherit it from an ancestor process." msgstr "" -#: library/multiprocessing.rst:2867 +#: library/multiprocessing.rst:2923 msgid "Avoid terminating processes" msgstr "" -#: library/multiprocessing.rst:2869 +#: library/multiprocessing.rst:2925 msgid "" "Using the :meth:`Process.terminate ` " "method to stop a process is liable to cause any shared resources (such as " @@ -3836,18 +3907,18 @@ msgid "" "become broken or unavailable to other processes." msgstr "" -#: library/multiprocessing.rst:2875 +#: library/multiprocessing.rst:2931 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:2879 +#: library/multiprocessing.rst:2935 msgid "Joining processes that use queues" msgstr "" -#: library/multiprocessing.rst:2881 +#: library/multiprocessing.rst:2937 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 " @@ -3856,7 +3927,7 @@ msgid "" "queue to avoid this behaviour.)" msgstr "" -#: library/multiprocessing.rst:2887 +#: library/multiprocessing.rst:2943 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 " @@ -3865,11 +3936,11 @@ msgid "" "processes will be joined automatically." msgstr "" -#: library/multiprocessing.rst:2893 +#: library/multiprocessing.rst:2949 msgid "An example which will deadlock is the following::" msgstr "" -#: library/multiprocessing.rst:2895 +#: library/multiprocessing.rst:2951 msgid "" "from multiprocessing import Process, Queue\n" "\n" @@ -3884,17 +3955,17 @@ msgid "" " obj = queue.get()" msgstr "" -#: library/multiprocessing.rst:2907 +#: library/multiprocessing.rst:2963 msgid "" "A fix here would be to swap the last two lines (or simply remove the ``p." "join()`` line)." msgstr "" -#: library/multiprocessing.rst:2910 +#: library/multiprocessing.rst:2966 msgid "Explicitly pass resources to child processes" msgstr "" -#: library/multiprocessing.rst:2912 +#: library/multiprocessing.rst:2968 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. " @@ -3902,7 +3973,7 @@ msgid "" "for the child process." msgstr "" -#: library/multiprocessing.rst:2917 +#: library/multiprocessing.rst:2973 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 " @@ -3911,11 +3982,11 @@ msgid "" "collected in the parent process." msgstr "" -#: library/multiprocessing.rst:2924 +#: library/multiprocessing.rst:2980 msgid "So for instance ::" msgstr "" -#: library/multiprocessing.rst:2926 +#: library/multiprocessing.rst:2982 msgid "" "from multiprocessing import Process, Lock\n" "\n" @@ -3928,11 +3999,11 @@ msgid "" " Process(target=f).start()" msgstr "" -#: library/multiprocessing.rst:2936 +#: library/multiprocessing.rst:2992 msgid "should be rewritten as ::" msgstr "" -#: library/multiprocessing.rst:2938 +#: library/multiprocessing.rst:2994 msgid "" "from multiprocessing import Process, Lock\n" "\n" @@ -3945,31 +4016,31 @@ msgid "" " Process(target=f, args=(lock,)).start()" msgstr "" -#: library/multiprocessing.rst:2948 +#: library/multiprocessing.rst:3004 msgid "Beware of replacing :data:`sys.stdin` with a \"file like object\"" msgstr "" -#: library/multiprocessing.rst:2950 +#: library/multiprocessing.rst:3006 msgid ":mod:`multiprocessing` originally unconditionally called::" msgstr "" -#: library/multiprocessing.rst:2952 +#: library/multiprocessing.rst:3008 msgid "os.close(sys.stdin.fileno())" msgstr "" -#: library/multiprocessing.rst:2954 +#: library/multiprocessing.rst:3010 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:2957 +#: library/multiprocessing.rst:3013 msgid "" "sys.stdin.close()\n" "sys.stdin = open(os.open(os.devnull, os.O_RDONLY), closefd=False)" msgstr "" -#: library/multiprocessing.rst:2960 +#: library/multiprocessing.rst:3016 msgid "" "Which solves the fundamental issue of processes colliding with each other " "resulting in a bad file descriptor error, but introduces a potential danger " @@ -3979,14 +4050,14 @@ msgid "" "data being flushed to the object multiple times, resulting in corruption." msgstr "" -#: library/multiprocessing.rst:2967 +#: library/multiprocessing.rst:3023 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:2971 +#: library/multiprocessing.rst:3027 msgid "" "@property\n" "def cache(self):\n" @@ -3997,38 +4068,38 @@ msgid "" " return self._cache" msgstr "" -#: library/multiprocessing.rst:2979 +#: library/multiprocessing.rst:3035 msgid "" "For more information, see :issue:`5155`, :issue:`5313` and :issue:`5331`" msgstr "" -#: library/multiprocessing.rst:2982 +#: library/multiprocessing.rst:3041 msgid "The *spawn* and *forkserver* start methods" msgstr "" -#: library/multiprocessing.rst:2984 +#: library/multiprocessing.rst:3043 msgid "" "There are a few extra restrictions which don't apply to the *fork* start " "method." msgstr "" -#: library/multiprocessing.rst:2987 +#: library/multiprocessing.rst:3046 msgid "More picklability" msgstr "" -#: library/multiprocessing.rst:2989 +#: library/multiprocessing.rst:3048 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:2994 +#: library/multiprocessing.rst:3053 msgid "Global variables" msgstr "" -#: library/multiprocessing.rst:2996 +#: library/multiprocessing.rst:3055 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 " @@ -4036,30 +4107,30 @@ msgid "" "Process.start>` was called." msgstr "" -#: library/multiprocessing.rst:3001 +#: library/multiprocessing.rst:3060 msgid "" "However, global variables which are just module level constants cause no " "problems." msgstr "" -#: library/multiprocessing.rst:3006 +#: library/multiprocessing.rst:3065 msgid "Safe importing of main module" msgstr "" -#: library/multiprocessing.rst:3008 +#: library/multiprocessing.rst:3067 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:3012 +#: library/multiprocessing.rst:3071 msgid "" "For example, using the *spawn* or *forkserver* start method running the " "following module would fail with a :exc:`RuntimeError`::" msgstr "" -#: library/multiprocessing.rst:3016 +#: library/multiprocessing.rst:3075 msgid "" "from multiprocessing import Process\n" "\n" @@ -4070,13 +4141,13 @@ msgid "" "p.start()" msgstr "" -#: library/multiprocessing.rst:3024 +#: library/multiprocessing.rst:3083 msgid "" "Instead one should protect the \"entry point\" of the program by using ``if " "__name__ == '__main__':`` as follows::" msgstr "" -#: library/multiprocessing.rst:3027 +#: library/multiprocessing.rst:3086 msgid "" "from multiprocessing import Process, freeze_support, set_start_method\n" "\n" @@ -4090,33 +4161,33 @@ msgid "" " p.start()" msgstr "" -#: library/multiprocessing.rst:3038 +#: library/multiprocessing.rst:3097 msgid "" "(The ``freeze_support()`` line can be omitted if the program will be run " "normally instead of frozen.)" msgstr "" -#: library/multiprocessing.rst:3041 +#: library/multiprocessing.rst:3100 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:3044 +#: library/multiprocessing.rst:3103 msgid "" "Similar restrictions apply if a pool or manager is created in the main " "module." msgstr "" -#: library/multiprocessing.rst:3051 +#: library/multiprocessing.rst:3110 msgid "Examples" msgstr "" -#: library/multiprocessing.rst:3053 +#: library/multiprocessing.rst:3112 msgid "Demonstration of how to create and use customized managers and proxies:" msgstr "" -#: library/multiprocessing.rst:3055 +#: library/multiprocessing.rst:3114 msgid "" "from multiprocessing import freeze_support\n" "from multiprocessing.managers import BaseManager, BaseProxy\n" @@ -4210,11 +4281,11 @@ msgid "" " test()\n" msgstr "" -#: library/multiprocessing.rst:3059 +#: library/multiprocessing.rst:3118 msgid "Using :class:`~multiprocessing.pool.Pool`:" msgstr "" -#: library/multiprocessing.rst:3061 +#: library/multiprocessing.rst:3120 msgid "" "import multiprocessing\n" "import time\n" @@ -4374,13 +4445,13 @@ msgid "" " test()\n" msgstr "" -#: library/multiprocessing.rst:3065 +#: library/multiprocessing.rst:3124 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:3068 +#: library/multiprocessing.rst:3127 msgid "" "import time\n" "import random\n" diff --git a/library/multiprocessing.shared_memory.po b/library/multiprocessing.shared_memory.po index 8f02a4ca..0fb024e2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 fdcb2d70..bd19471e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b33012dd..fd8666da 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 d0130762..32236e75 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 5baee752..fb7cb1d7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 fb52c46d..0f11a7d2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 f45a9996..97f1c814 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1b9d90eb..8735ad10 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 2ea6b67f..465a55e3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3e9a4700..c862a615 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -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:443 library/os.path.rst:470 library/os.path.rst:500 -#: library/os.path.rst:589 +#: 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:519 +#: 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:522 +#: library/os.path.rst:546 msgid "" ">>> splitdrive(\"//host/computer/dir\")\n" "(\"//host/computer\", \"/dir\")" msgstr "" -#: library/os.path.rst:531 +#: 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 " @@ -543,7 +583,7 @@ msgid "" "same as *path*." msgstr "" -#: library/os.path.rst:537 +#: 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 " @@ -552,7 +592,7 @@ msgid "" "basedefs/V1_chap04.html#tag_04_13>`_.) For example::" msgstr "" -#: library/os.path.rst:543 +#: library/os.path.rst:567 msgid "" ">>> splitroot('/home/sam')\n" "('', '/', 'home/sam')\n" @@ -562,14 +602,14 @@ msgid "" "('', '/', '//home/sam')" msgstr "" -#: library/os.path.rst:550 +#: 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:554 +#: library/os.path.rst:578 msgid "" ">>> splitroot('C:/Users/Sam')\n" "('C:', '/', 'Users/Sam')\n" @@ -577,30 +617,30 @@ msgid "" "('//Server/Share', '/', 'Users/Sam')" msgstr "" -#: library/os.path.rst:564 +#: 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:568 +#: library/os.path.rst:592 msgid "If the path contains no extension, *ext* will be ``''``::" msgstr "" -#: library/os.path.rst:570 +#: library/os.path.rst:594 msgid "" ">>> splitext('bar')\n" "('bar', '')" msgstr "" -#: library/os.path.rst:573 +#: 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:576 +#: library/os.path.rst:600 msgid "" ">>> splitext('foo.bar.exe')\n" "('foo.bar', '.exe')\n" @@ -608,13 +648,13 @@ msgid "" "('/foo/bar', '.exe')" msgstr "" -#: library/os.path.rst:581 +#: 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:584 +#: library/os.path.rst:608 msgid "" ">>> splitext('.cshrc')\n" "('.cshrc', '')\n" @@ -622,7 +662,7 @@ msgid "" "('/foo/....jpg', '')" msgstr "" -#: library/os.path.rst:595 +#: 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 6975335e..c521f3d2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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:2088 library/os.rst:2182 library/os.rst:2222 #: library/os.rst:2256 library/os.rst:2335 library/os.rst:2379 #: library/os.rst:2537 library/os.rst:2593 library/os.rst:3323 -#: library/os.rst:3480 library/os.rst:3714 library/os.rst:3764 -#: library/os.rst:3827 library/os.rst:3844 library/os.rst:3862 -#: library/os.rst:3997 library/os.rst:4025 library/os.rst:4044 -#: library/os.rst:4064 library/os.rst:4220 library/os.rst:4324 -#: library/os.rst:4339 library/os.rst:4353 library/os.rst:4367 -#: library/os.rst:4382 library/os.rst:4397 library/os.rst:4413 -#: library/os.rst:4429 library/os.rst:4443 library/os.rst:4519 -#: library/os.rst:4558 library/os.rst:4576 library/os.rst:4595 -#: library/os.rst:4735 library/os.rst:4784 library/os.rst:4872 -#: library/os.rst:4895 library/os.rst:4977 library/os.rst:5021 -#: library/os.rst:5096 library/os.rst:5130 library/os.rst:5162 -#: library/os.rst:5185 library/os.rst:5207 library/os.rst:5230 -#: library/os.rst:5281 library/os.rst:5304 library/os.rst:5320 -#: library/os.rst:5338 library/os.rst:5499 library/os.rst:5532 -#: library/os.rst:5568 library/os.rst:5691 +#: library/os.rst:3483 library/os.rst:3717 library/os.rst:3767 +#: library/os.rst:3830 library/os.rst:3847 library/os.rst:3865 +#: library/os.rst:4000 library/os.rst:4028 library/os.rst:4047 +#: library/os.rst:4067 library/os.rst:4223 library/os.rst:4327 +#: library/os.rst:4342 library/os.rst:4356 library/os.rst:4370 +#: library/os.rst:4385 library/os.rst:4400 library/os.rst:4416 +#: library/os.rst:4432 library/os.rst:4446 library/os.rst:4522 +#: library/os.rst:4561 library/os.rst:4579 library/os.rst:4598 +#: library/os.rst:4738 library/os.rst:4787 library/os.rst:4875 +#: library/os.rst:4898 library/os.rst:4980 library/os.rst:5024 +#: library/os.rst:5099 library/os.rst:5133 library/os.rst:5165 +#: library/os.rst:5188 library/os.rst:5210 library/os.rst:5233 +#: library/os.rst:5284 library/os.rst:5307 library/os.rst:5323 +#: library/os.rst:5341 library/os.rst:5502 library/os.rst:5535 +#: library/os.rst:5571 library/os.rst:5694 msgid "Availability" msgstr "" @@ -608,9 +608,9 @@ msgstr "" #: library/os.rst:542 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:555 @@ -847,7 +847,7 @@ msgid "" "on iOS and Android." msgstr "" -#: library/os.rst:5002 +#: library/os.rst:5005 msgid "" "Return type changed from a tuple to a tuple-like object with named " "attributes." @@ -1079,7 +1079,7 @@ msgid "" msgstr "" #: library/os.rst:1030 library/os.rst:1706 library/os.rst:2167 -#: library/os.rst:3459 +#: library/os.rst:3462 msgid "" "The function is limited on WASI, see :ref:`wasm-availability` for more " "information." @@ -1183,7 +1183,7 @@ msgid "" "``fd``, ``length``." msgstr "" -#: library/os.rst:3498 +#: library/os.rst:3501 msgid "Added support for Windows" msgstr "" @@ -1385,11 +1385,11 @@ msgid "" msgstr "" #: library/os.rst:2406 library/os.rst:2517 library/os.rst:2620 -#: library/os.rst:2757 library/os.rst:3514 +#: library/os.rst:2757 library/os.rst:3517 msgid "Added the *dir_fd* parameter." msgstr "" -#: library/os.rst:1631 library/os.rst:5098 +#: library/os.rst:1631 library/os.rst:5101 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 :" @@ -1399,8 +1399,8 @@ msgstr "" #: library/os.rst:2030 library/os.rst:2093 library/os.rst:2184 #: library/os.rst:2242 library/os.rst:2317 library/os.rst:2449 #: library/os.rst:2520 library/os.rst:2583 library/os.rst:2672 -#: library/os.rst:3050 library/os.rst:3501 library/os.rst:3557 -#: library/os.rst:3718 library/os.rst:4295 library/os.rst:4860 +#: library/os.rst:3050 library/os.rst:3504 library/os.rst:3560 +#: library/os.rst:3721 library/os.rst:4298 library/os.rst:4863 msgid "Accepts a :term:`path-like object`." msgstr "" @@ -1965,9 +1965,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:1943 @@ -1989,7 +1988,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``)." @@ -2007,8 +2006,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:1972 @@ -2275,7 +2274,7 @@ msgstr "" msgid ":const:`stat.S_IXOTH`" msgstr "" -#: library/os.rst:2156 library/os.rst:3547 +#: library/os.rst:2156 library/os.rst:3550 msgid "" "This function can support :ref:`specifying a file descriptor `, :" "ref:`paths relative to directory descriptors ` and :ref:`not " @@ -2389,7 +2388,7 @@ msgid "" "``src``, ``dst``, ``src_dir_fd``, ``dst_dir_fd``." msgstr "" -#: library/os.rst:4544 +#: library/os.rst:4547 msgid "Added Windows support." msgstr "" @@ -2397,7 +2396,7 @@ msgstr "" msgid "Added the *src_dir_fd*, *dst_dir_fd*, and *follow_symlinks* parameters." msgstr "" -#: library/os.rst:2704 library/os.rst:3469 +#: library/os.rst:2704 library/os.rst:3472 msgid "Accepts a :term:`path-like object` for *src* and *dst*." msgstr "" @@ -2549,7 +2548,7 @@ msgid "" "`." msgstr "" -#: library/os.rst:2617 library/os.rst:3462 +#: library/os.rst:2617 library/os.rst:3465 msgid "Added support for Windows 6.0 (Vista) symbolic links." msgstr "" @@ -2707,7 +2706,7 @@ msgid "" "included in that mapping, passing an integer for *name* is also accepted." msgstr "" -#: library/os.rst:3321 library/os.rst:3490 +#: library/os.rst:3321 library/os.rst:3493 msgid "" "This function can support :ref:`specifying a file descriptor `." msgstr "" @@ -2763,7 +2762,7 @@ msgid "" "does not exist, a :exc:`FileNotFoundError` is raised." msgstr "" -#: library/os.rst:2752 library/os.rst:3441 +#: library/os.rst:2752 library/os.rst:3444 msgid "" "This function can support :ref:`paths relative to directory descriptors " "`." @@ -2781,7 +2780,7 @@ msgstr "" msgid "This function is semantically identical to :func:`unlink`." msgstr "" -#: library/os.rst:2670 library/os.rst:3512 +#: library/os.rst:2670 library/os.rst:3515 msgid "" "Raises an :ref:`auditing event ` ``os.remove`` with arguments " "``path``, ``dir_fd``." @@ -3225,7 +3224,7 @@ msgid "" "``follow_symlinks=False``, or use :func:`lstat`." msgstr "" -#: library/os.rst:4094 library/os.rst:4126 library/os.rst:4146 +#: library/os.rst:4097 library/os.rst:4129 library/os.rst:4149 msgid "" "This function can support :ref:`specifying a file descriptor ` and :" "ref:`not following symlinks `." @@ -3245,7 +3244,7 @@ msgid "" "junction points, which will raise the usual exceptions." msgstr "" -#: library/os.rst:3801 +#: library/os.rst:3804 msgid "Example::" msgstr "" @@ -3719,6 +3718,12 @@ msgstr "" #: library/os.rst:3435 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:3438 +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 " @@ -3727,7 +3732,7 @@ msgid "" "ignored." msgstr "" -#: library/os.rst:3446 +#: library/os.rst:3449 msgid "" "On newer versions of Windows 10, unprivileged accounts can create symlinks " "if Developer Mode is enabled. When Developer Mode is not available/enabled, " @@ -3735,83 +3740,83 @@ msgid "" "must be run as an administrator." msgstr "" -#: library/os.rst:3452 +#: library/os.rst:3455 msgid "" ":exc:`OSError` is raised when the function is called by an unprivileged user." msgstr "" -#: library/os.rst:3455 +#: library/os.rst:3458 msgid "" "Raises an :ref:`auditing event ` ``os.symlink`` with arguments " "``src``, ``dst``, ``dir_fd``." msgstr "" -#: library/os.rst:3465 +#: library/os.rst:3468 msgid "" "Added the *dir_fd* parameter, and now allow *target_is_directory* on non-" "Windows platforms." msgstr "" -#: library/os.rst:3472 +#: library/os.rst:3475 msgid "Added support for unelevated symlinks on Windows with Developer Mode." msgstr "" -#: library/os.rst:3478 +#: library/os.rst:3481 msgid "Force write of everything to disk." msgstr "" -#: library/os.rst:3487 +#: library/os.rst:3490 msgid "" "Truncate the file corresponding to *path*, so that it is at most *length* " "bytes in size." msgstr "" -#: library/os.rst:3492 +#: library/os.rst:3495 msgid "" "Raises an :ref:`auditing event ` ``os.truncate`` with arguments " "``path``, ``length``." msgstr "" -#: library/os.rst:3507 +#: library/os.rst:3510 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:3523 +#: library/os.rst:3526 msgid "Set the access and modified times of the file specified by *path*." msgstr "" -#: library/os.rst:3525 +#: library/os.rst:3528 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:3528 +#: library/os.rst:3531 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:3531 +#: library/os.rst:3534 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:3534 +#: library/os.rst:3537 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:3538 +#: library/os.rst:3541 msgid "It is an error to specify tuples for both *times* and *ns*." msgstr "" -#: library/os.rst:3540 +#: library/os.rst:3543 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 " @@ -3821,19 +3826,19 @@ msgid "" "func:`utime`." msgstr "" -#: library/os.rst:3551 +#: library/os.rst:3554 msgid "" "Raises an :ref:`auditing event ` ``os.utime`` with arguments " "``path``, ``times``, ``ns``, ``dir_fd``." msgstr "" -#: library/os.rst:3553 +#: library/os.rst:3556 msgid "" "Added support for specifying *path* as an open file descriptor, and the " "*dir_fd*, *follow_symlinks*, and *ns* parameters." msgstr "" -#: library/os.rst:3567 +#: library/os.rst:3570 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* " @@ -3841,7 +3846,7 @@ msgid "" "filenames)``." msgstr "" -#: library/os.rst:3572 +#: library/os.rst:3575 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 " @@ -3855,7 +3860,7 @@ msgid "" "unspecified." msgstr "" -#: library/os.rst:3583 +#: library/os.rst:3586 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 " @@ -3866,7 +3871,7 @@ msgid "" "its subdirectories are generated." msgstr "" -#: library/os.rst:3591 +#: library/os.rst:3594 msgid "" "When *topdown* is ``True``, the caller can modify the *dirnames* list in-" "place (perhaps using :keyword:`del` or slice assignment), and :func:`walk` " @@ -3879,7 +3884,7 @@ msgid "" "itself is generated." msgstr "" -#: library/os.rst:3600 +#: library/os.rst:3603 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 " @@ -3889,35 +3894,35 @@ msgid "" "object." msgstr "" -#: library/os.rst:3606 +#: library/os.rst:3609 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:3612 +#: library/os.rst:3615 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:3618 +#: library/os.rst:3621 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:3684 +#: library/os.rst:3687 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:3626 +#: library/os.rst:3629 msgid "" "import os\n" "from os.path import join, getsize\n" @@ -3929,14 +3934,14 @@ msgid "" " dirs.remove('__pycache__') # don't visit __pycache__ directories" msgstr "" -#: library/os.rst:3635 +#: library/os.rst:3638 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:3639 +#: library/os.rst:3642 msgid "" "# Delete everything reachable from the directory named in \"top\",\n" "# assuming there are no symbolic links.\n" @@ -3951,31 +3956,31 @@ msgid "" "os.rmdir(top)" msgstr "" -#: library/os.rst:3651 +#: library/os.rst:3654 msgid "" "Raises an :ref:`auditing event ` ``os.walk`` with arguments " "``top``, ``topdown``, ``onerror``, ``followlinks``." msgstr "" -#: library/os.rst:3653 +#: library/os.rst:3656 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:3667 +#: library/os.rst:3670 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:3670 +#: library/os.rst:3673 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:3673 +#: library/os.rst:3676 msgid "" "This function always supports :ref:`paths relative to directory descriptors " "` and :ref:`not following symlinks `. Note however " @@ -3983,32 +3988,32 @@ msgid "" "*follow_symlinks* is ``False``." msgstr "" -#: library/os.rst:3680 +#: library/os.rst:3683 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:3688 +#: library/os.rst:3691 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:3697 +#: library/os.rst:3700 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:3701 +#: library/os.rst:3704 msgid "" "# Delete everything reachable from the directory named in \"top\",\n" "# assuming there are no symbolic links.\n" @@ -4022,17 +4027,17 @@ msgid "" " os.rmdir(name, dir_fd=rootfd)" msgstr "" -#: library/os.rst:3712 +#: library/os.rst:3715 msgid "" "Raises an :ref:`auditing event ` ``os.fwalk`` with arguments " "``top``, ``topdown``, ``onerror``, ``follow_symlinks``, ``dir_fd``." msgstr "" -#: library/os.rst:3721 +#: library/os.rst:3724 msgid "Added support for :class:`bytes` paths." msgstr "" -#: library/os.rst:3727 +#: library/os.rst:3730 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 " @@ -4040,7 +4045,7 @@ msgid "" "descriptor is :ref:`non-inheritable `." msgstr "" -#: library/os.rst:3732 +#: library/os.rst:3735 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/" @@ -4050,15 +4055,15 @@ msgid "" "side effects." msgstr "" -#: library/os.rst:3762 +#: library/os.rst:3765 msgid "These flags can be passed to :func:`memfd_create`." msgstr "" -#: library/os.rst:3766 +#: library/os.rst:3769 msgid "The ``MFD_HUGE*`` flags are only available since Linux 4.14." msgstr "" -#: library/os.rst:3773 +#: library/os.rst:3776 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." @@ -4067,7 +4072,7 @@ msgid "" "ref:`non-inheritable `." msgstr "" -#: library/os.rst:3779 +#: library/os.rst:3782 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 " @@ -4075,39 +4080,39 @@ msgid "" "integer with a maximum value of 2\\ :sup:`64`\\ -\\ 2." msgstr "" -#: library/os.rst:3784 +#: library/os.rst:3787 msgid "" "*flags* can be constructed from :const:`EFD_CLOEXEC`, :const:`EFD_NONBLOCK`, " "and :const:`EFD_SEMAPHORE`." msgstr "" -#: library/os.rst:3787 +#: library/os.rst:3790 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:3790 +#: library/os.rst:3793 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:3794 +#: library/os.rst:3797 msgid "" "If the event counter is zero and :const:`EFD_NONBLOCK` is not specified, :" "func:`eventfd_read` blocks." msgstr "" -#: library/os.rst:3797 +#: library/os.rst:3800 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:3803 +#: library/os.rst:3806 msgid "" "import os\n" "\n" @@ -4125,64 +4130,64 @@ msgid "" " os.close(fd)" msgstr "" -#: library/os.rst:3824 +#: library/os.rst:3827 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:3833 +#: library/os.rst:3836 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:3842 +#: library/os.rst:3845 msgid "Set close-on-exec flag for new :func:`eventfd` file descriptor." msgstr "" -#: library/os.rst:3850 +#: library/os.rst:3853 msgid "" "Set :const:`O_NONBLOCK` status flag for new :func:`eventfd` file descriptor." msgstr "" -#: library/os.rst:3859 +#: library/os.rst:3862 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:3870 +#: library/os.rst:3873 msgid "Timer File Descriptors" msgstr "" -#: library/os.rst:3874 +#: library/os.rst:3877 msgid "" "These functions provide support for Linux's *timer file descriptor* API. " "Naturally, they are all only available on Linux." msgstr "" -#: library/os.rst:3879 +#: library/os.rst:3882 msgid "Create and return a timer file descriptor (*timerfd*)." msgstr "" -#: library/os.rst:3881 +#: library/os.rst:3884 msgid "The file descriptor returned by :func:`timerfd_create` supports:" msgstr "" -#: library/os.rst:3883 +#: library/os.rst:3886 msgid ":func:`read`" msgstr "" -#: library/os.rst:3884 +#: library/os.rst:3887 msgid ":func:`~select.select`" msgstr "" -#: library/os.rst:3885 +#: library/os.rst:3888 msgid ":func:`~select.poll`" msgstr "" -#: library/os.rst:3887 +#: library/os.rst:3890 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` " @@ -4191,31 +4196,31 @@ msgid "" "byteorder)``." msgstr "" -#: library/os.rst:3892 +#: library/os.rst:3895 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:3895 +#: library/os.rst:3898 msgid "" "*clockid* must be a valid :ref:`clock ID `, as " "defined in the :py:mod:`time` module:" msgstr "" -#: library/os.rst:3898 +#: library/os.rst:3901 msgid ":const:`time.CLOCK_REALTIME`" msgstr "" -#: library/os.rst:3899 +#: library/os.rst:3902 msgid ":const:`time.CLOCK_MONOTONIC`" msgstr "" -#: library/os.rst:3900 +#: library/os.rst:3903 msgid ":const:`time.CLOCK_BOOTTIME` (Since Linux 3.15 for timerfd_create)" msgstr "" -#: library/os.rst:3902 +#: library/os.rst:3905 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 " @@ -4223,35 +4228,35 @@ msgid "" "`TFD_TIMER_CANCEL_ON_SET`." msgstr "" -#: library/os.rst:3907 +#: library/os.rst:3910 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:3911 +#: library/os.rst:3914 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:3914 +#: library/os.rst:3917 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:3918 +#: library/os.rst:3921 msgid ":const:`TFD_NONBLOCK`" msgstr "" -#: library/os.rst:3919 +#: library/os.rst:3922 msgid ":const:`TFD_CLOEXEC`" msgstr "" -#: library/os.rst:3921 +#: library/os.rst:3924 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 " @@ -4259,46 +4264,46 @@ msgid "" "raises :class:`OSError` with ``errno`` is set to :const:`errno.EAGAIN`." msgstr "" -#: library/os.rst:3927 +#: library/os.rst:3930 msgid ":const:`TFD_CLOEXEC` is always set by Python automatically." msgstr "" -#: library/os.rst:3929 +#: library/os.rst:3932 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:3932 +#: library/os.rst:3935 msgid "The :manpage:`timerfd_create(2)` man page." msgstr "" -#: library/os.rst:3941 +#: library/os.rst:3944 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:3944 +#: library/os.rst:3947 msgid "*fd* must be a valid timer file descriptor." msgstr "" -#: library/os.rst:3946 +#: library/os.rst:3949 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:3950 +#: library/os.rst:3953 msgid ":const:`TFD_TIMER_ABSTIME`" msgstr "" -#: library/os.rst:3951 +#: library/os.rst:3954 msgid ":const:`TFD_TIMER_CANCEL_ON_SET`" msgstr "" -#: library/os.rst:3953 +#: library/os.rst:3956 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 " @@ -4306,20 +4311,20 @@ msgid "" "const:`errno.EINVAL`" msgstr "" -#: library/os.rst:3958 +#: library/os.rst:3961 msgid "" "By default the timer will fire when *initial* seconds have elapsed. (If " "*initial* is zero, timer will fire immediately.)" msgstr "" -#: library/os.rst:3961 +#: library/os.rst:3964 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:3965 +#: library/os.rst:3968 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 " @@ -4329,7 +4334,7 @@ msgid "" "EINVAL`" msgstr "" -#: library/os.rst:3972 +#: library/os.rst:3975 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." @@ -4338,86 +4343,86 @@ msgid "" "ECANCELED." msgstr "" -#: library/os.rst:3978 +#: library/os.rst:3981 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:3982 +#: library/os.rst:3985 msgid "" "Discontinuous system clock change will be caused by the following events:" msgstr "" -#: library/os.rst:3984 +#: library/os.rst:3987 msgid "``settimeofday``" msgstr "" -#: library/os.rst:3985 +#: library/os.rst:3988 msgid "``clock_settime``" msgstr "" -#: library/os.rst:3986 +#: library/os.rst:3989 msgid "set the system date and time by ``date`` command" msgstr "" -#: library/os.rst:3988 +#: library/os.rst:3991 msgid "" "Return a two-item tuple of (``next_expiration``, ``interval``) from the " "previous timer state, before this function executed." msgstr "" -#: library/os.rst:3993 +#: library/os.rst:3996 msgid "" ":manpage:`timerfd_create(2)`, :manpage:`timerfd_settime(2)`, :manpage:" "`settimeofday(2)`, :manpage:`clock_settime(2)`, and :manpage:`date(1)`." msgstr "" -#: library/os.rst:4004 +#: library/os.rst:4007 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:4014 +#: library/os.rst:4017 msgid "Return a two-item tuple of floats (``next_expiration``, ``interval``)." msgstr "" -#: library/os.rst:4016 +#: library/os.rst:4019 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:4019 +#: library/os.rst:4022 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:4023 +#: library/os.rst:4026 msgid ":manpage:`timerfd_gettime(2)`" msgstr "" -#: library/os.rst:4032 +#: library/os.rst:4035 msgid "Similar to :func:`timerfd_gettime`, but return time as nanoseconds." msgstr "" -#: library/os.rst:4040 +#: library/os.rst:4043 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:4050 +#: library/os.rst:4053 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:4060 +#: library/os.rst:4063 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 " @@ -4425,22 +4430,22 @@ msgid "" "Epoch)." msgstr "" -#: library/os.rst:4070 +#: library/os.rst:4073 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:4081 +#: library/os.rst:4084 msgid "Linux extended attributes" msgstr "" -#: library/os.rst:4085 +#: library/os.rst:4088 msgid "These functions are all available on Linux only." msgstr "" -#: library/os.rst:4089 +#: library/os.rst:4092 msgid "" "Return the value of the extended filesystem attribute *attribute* for " "*path*. *attribute* can be bytes or str (directly or indirectly through the :" @@ -4448,17 +4453,17 @@ msgid "" "encoding." msgstr "" -#: library/os.rst:4097 +#: library/os.rst:4100 msgid "" "Raises an :ref:`auditing event ` ``os.getxattr`` with arguments " "``path``, ``attribute``." msgstr "" -#: library/os.rst:4131 library/os.rst:4156 +#: library/os.rst:4134 library/os.rst:4159 msgid "Accepts a :term:`path-like object` for *path* and *attribute*." msgstr "" -#: library/os.rst:4105 +#: library/os.rst:4108 msgid "" "Return a list of the extended filesystem attributes on *path*. The " "attributes in the list are represented as strings decoded with the " @@ -4466,13 +4471,13 @@ msgid "" "the current directory." msgstr "" -#: library/os.rst:4113 +#: library/os.rst:4116 msgid "" "Raises an :ref:`auditing event ` ``os.listxattr`` with argument " "``path``." msgstr "" -#: library/os.rst:4121 +#: library/os.rst:4124 msgid "" "Removes the extended filesystem attribute *attribute* from *path*. " "*attribute* should be bytes or str (directly or indirectly through the :" @@ -4480,13 +4485,13 @@ msgid "" "`filesystem encoding and error handler`." msgstr "" -#: library/os.rst:4129 +#: library/os.rst:4132 msgid "" "Raises an :ref:`auditing event ` ``os.removexattr`` with arguments " "``path``, ``attribute``." msgstr "" -#: library/os.rst:4137 +#: library/os.rst:4140 msgid "" "Set the extended filesystem attribute *attribute* on *path* to *value*. " "*attribute* must be a bytes or str with no embedded NULs (directly or " @@ -4498,45 +4503,45 @@ msgid "" "will not be created and ``EEXISTS`` will be raised." msgstr "" -#: library/os.rst:4151 +#: library/os.rst:4154 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:4154 +#: library/os.rst:4157 msgid "" "Raises an :ref:`auditing event ` ``os.setxattr`` with arguments " "``path``, ``attribute``, ``value``, ``flags``." msgstr "" -#: library/os.rst:4162 +#: library/os.rst:4165 msgid "" "The maximum size the value of an extended attribute can be. Currently, this " "is 64 KiB on Linux." msgstr "" -#: library/os.rst:4168 +#: library/os.rst:4171 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:4174 +#: library/os.rst:4177 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:4181 +#: library/os.rst:4184 msgid "Process Management" msgstr "" -#: library/os.rst:4183 +#: library/os.rst:4186 msgid "These functions may be used to create and manage processes." msgstr "" -#: library/os.rst:4185 +#: library/os.rst:4188 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 " @@ -4547,7 +4552,7 @@ msgid "" "standard output; ``foo`` will seem to be ignored." msgstr "" -#: library/os.rst:4196 +#: library/os.rst:4199 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 " @@ -4556,37 +4561,37 @@ msgid "" "`SIGABRT` with :func:`signal.signal`." msgstr "" -#: library/os.rst:4205 +#: library/os.rst:4208 msgid "Add a path to the DLL search path." msgstr "" -#: library/os.rst:4207 +#: library/os.rst:4210 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:4211 +#: library/os.rst:4214 msgid "" "Remove the directory by calling **close()** on the returned object or using " "it in a :keyword:`with` statement." msgstr "" -#: library/os.rst:4214 +#: library/os.rst:4217 msgid "" "See the `Microsoft documentation `_ for more information about how " "DLLs are loaded." msgstr "" -#: library/os.rst:4218 +#: library/os.rst:4221 msgid "" "Raises an :ref:`auditing event ` ``os.add_dll_directory`` with " "argument ``path``." msgstr "" -#: library/os.rst:4222 +#: library/os.rst:4225 msgid "" "Previous versions of CPython would resolve DLLs using the default behavior " "for the current process. This led to inconsistencies, such as only sometimes " @@ -4594,14 +4599,14 @@ msgid "" "such as ``AddDllDirectory`` having no effect." msgstr "" -#: library/os.rst:4229 +#: library/os.rst:4232 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:4244 +#: library/os.rst:4247 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 " @@ -4609,7 +4614,7 @@ msgid "" "reported as :exc:`OSError` exceptions." msgstr "" -#: library/os.rst:4249 +#: library/os.rst:4252 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 " @@ -4617,7 +4622,7 @@ msgid "" "fsync` before calling an :func:`exec\\* ` function." msgstr "" -#: library/os.rst:4255 +#: library/os.rst:4258 msgid "" "The \"l\" and \"v\" variants of the :func:`exec\\* ` functions differ " "in how command-line arguments are passed. The \"l\" variants are perhaps " @@ -4630,7 +4635,7 @@ msgid "" "is not enforced." msgstr "" -#: library/os.rst:4264 +#: library/os.rst:4267 msgid "" "The variants which include a \"p\" near the end (:func:`execlp`, :func:" "`execlpe`, :func:`execvp`, and :func:`execvpe`) will use the :envvar:`PATH` " @@ -4644,7 +4649,7 @@ msgid "" "even on Windows, as plain names will not be resolved." msgstr "" -#: library/os.rst:4275 +#: library/os.rst:4278 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 " @@ -4654,7 +4659,7 @@ msgid "" "process to inherit the environment of the current process." msgstr "" -#: library/os.rst:4282 +#: library/os.rst:4285 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 " @@ -4663,31 +4668,31 @@ msgid "" "`NotImplementedError`." msgstr "" -#: library/os.rst:4287 +#: library/os.rst:4290 msgid "" "Raises an :ref:`auditing event ` ``os.exec`` with arguments " "``path``, ``args``, ``env``." msgstr "" -#: library/os.rst:4291 +#: library/os.rst:4294 msgid "" "Added support for specifying *path* as an open file descriptor for :func:" "`execve`." msgstr "" -#: library/os.rst:4300 +#: library/os.rst:4303 msgid "" "Exit the process with status *n*, without calling cleanup handlers, flushing " "stdio buffers, etc." msgstr "" -#: library/os.rst:4305 +#: library/os.rst:4308 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:4308 +#: library/os.rst:4311 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 " @@ -4695,139 +4700,139 @@ msgid "" "delivery program." msgstr "" -#: library/os.rst:4314 +#: library/os.rst:4317 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:4321 +#: library/os.rst:4324 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:4329 +#: library/os.rst:4332 msgid "" "Exit code that means the command was used incorrectly, such as when the " "wrong number of arguments are given." msgstr "" -#: library/os.rst:4337 +#: library/os.rst:4340 msgid "Exit code that means the input data was incorrect." msgstr "" -#: library/os.rst:4344 +#: library/os.rst:4347 msgid "Exit code that means an input file did not exist or was not readable." msgstr "" -#: library/os.rst:4351 +#: library/os.rst:4354 msgid "Exit code that means a specified user did not exist." msgstr "" -#: library/os.rst:4358 +#: library/os.rst:4361 msgid "Exit code that means a specified host did not exist." msgstr "" -#: library/os.rst:4365 +#: library/os.rst:4368 msgid "Exit code that means that a required service is unavailable." msgstr "" -#: library/os.rst:4372 +#: library/os.rst:4375 msgid "Exit code that means an internal software error was detected." msgstr "" -#: library/os.rst:4379 +#: library/os.rst:4382 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:4387 +#: library/os.rst:4390 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:4395 +#: library/os.rst:4398 msgid "Exit code that means a user specified output file could not be created." msgstr "" -#: library/os.rst:4402 +#: library/os.rst:4405 msgid "" "Exit code that means that an error occurred while doing I/O on some file." msgstr "" -#: library/os.rst:4409 +#: library/os.rst:4412 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:4418 +#: library/os.rst:4421 msgid "" "Exit code that means that a protocol exchange was illegal, invalid, or not " "understood." msgstr "" -#: library/os.rst:4426 +#: library/os.rst:4429 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:4434 +#: library/os.rst:4437 msgid "Exit code that means that some kind of configuration error occurred." msgstr "" -#: library/os.rst:4441 +#: library/os.rst:4444 msgid "Exit code that means something like \"an entry was not found\"." msgstr "" -#: library/os.rst:4448 +#: library/os.rst:4451 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:4451 +#: library/os.rst:4454 msgid "" "Note that some platforms including FreeBSD <= 6.3 and Cygwin have known " "issues when using ``fork()`` from a thread." msgstr "" -#: library/os.rst:4454 +#: library/os.rst:4457 msgid "" "Raises an :ref:`auditing event ` ``os.fork`` with no arguments." msgstr "" -#: library/os.rst:4458 +#: library/os.rst:4461 msgid "" "If you use TLS sockets in an application calling ``fork()``, see the warning " "in the :mod:`ssl` documentation." msgstr "" -#: library/os.rst:4507 +#: library/os.rst:4510 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:4466 +#: library/os.rst:4469 msgid "" "Calling ``fork()`` in a subinterpreter is no longer supported (:exc:" "`RuntimeError` is raised)." msgstr "" -#: library/os.rst:4470 +#: library/os.rst:4473 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:4474 +#: library/os.rst:4477 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 " @@ -4838,21 +4843,21 @@ msgid "" "``free``)." msgstr "" -#: library/os.rst:4483 +#: library/os.rst:4486 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:4487 +#: library/os.rst:4490 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:4497 +#: library/os.rst:4500 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, " @@ -4861,31 +4866,31 @@ msgid "" "the :mod:`pty` module. If an error occurs :exc:`OSError` is raised." msgstr "" -#: library/os.rst:4503 +#: library/os.rst:4506 msgid "" "Raises an :ref:`auditing event ` ``os.forkpty`` with no arguments." msgstr "" -#: library/os.rst:4510 +#: library/os.rst:4513 msgid "" "Calling ``forkpty()`` in a subinterpreter is no longer supported (:exc:" "`RuntimeError` is raised)." msgstr "" -#: library/os.rst:4514 +#: library/os.rst:4517 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:4528 +#: library/os.rst:4531 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:4531 +#: library/os.rst:4534 msgid "" "Windows: The :const:`signal.CTRL_C_EVENT` and :const:`signal." "CTRL_BREAK_EVENT` signals are special signals which can only be sent to " @@ -4895,43 +4900,43 @@ msgid "" "be set to *sig*." msgstr "" -#: library/os.rst:4538 +#: library/os.rst:4541 msgid "See also :func:`signal.pthread_kill`." msgstr "" -#: library/os.rst:4540 +#: library/os.rst:4543 msgid "" "Raises an :ref:`auditing event ` ``os.kill`` with arguments " "``pid``, ``sig``." msgstr "" -#: library/os.rst:4554 +#: library/os.rst:4557 msgid "Send the signal *sig* to the process group *pgid*." msgstr "" -#: library/os.rst:4556 +#: library/os.rst:4559 msgid "" "Raises an :ref:`auditing event ` ``os.killpg`` with arguments " "``pgid``, ``sig``." msgstr "" -#: library/os.rst:4563 +#: library/os.rst:4566 msgid "" "Add *increment* to the process's \"niceness\". Return the new niceness." msgstr "" -#: library/os.rst:4570 +#: library/os.rst:4573 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:4574 +#: library/os.rst:4577 msgid "See the :manpage:`pidfd_open(2)` man page for more details." msgstr "" -#: library/os.rst:4581 +#: library/os.rst:4584 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 " @@ -4939,13 +4944,13 @@ msgid "" "immediately return the error :const:`~errno.EAGAIN` rather than blocking." msgstr "" -#: library/os.rst:4592 +#: library/os.rst:4595 msgid "" "Lock program segments into memory. The value of *op* (defined in ````) determines which segments are locked." msgstr "" -#: library/os.rst:4600 +#: library/os.rst:4603 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 " @@ -4955,7 +4960,7 @@ msgid "" "rather than bytes." msgstr "" -#: library/os.rst:4608 +#: library/os.rst:4611 msgid "" "The ``close`` method returns :const:`None` if the subprocess exited " "successfully, or the subprocess's return code if there was an error. On " @@ -4967,57 +4972,57 @@ msgid "" "contains the signed integer return code from the child process." msgstr "" -#: library/os.rst:4618 +#: library/os.rst:4621 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:4623 +#: library/os.rst:4626 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:4630 +#: library/os.rst:4633 msgid "" "The :ref:`Python UTF-8 Mode ` affects encodings used for *cmd* " "and pipe contents." msgstr "" -#: library/os.rst:4633 +#: library/os.rst:4636 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:4642 +#: library/os.rst:4645 msgid "Wraps the :c:func:`!posix_spawn` C library API for use from Python." msgstr "" -#: library/os.rst:4644 +#: library/os.rst:4647 msgid "" "Most users should use :func:`subprocess.run` instead of :func:`posix_spawn`." msgstr "" -#: library/os.rst:4646 +#: library/os.rst:4649 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:4650 +#: library/os.rst:4653 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:4654 +#: library/os.rst:4657 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 " @@ -5026,39 +5031,39 @@ msgid "" "describing the remaining tuple elements:" msgstr "" -#: library/os.rst:4662 +#: library/os.rst:4665 msgid "(``os.POSIX_SPAWN_OPEN``, *fd*, *path*, *flags*, *mode*)" msgstr "" -#: library/os.rst:4664 +#: library/os.rst:4667 msgid "Performs ``os.dup2(os.open(path, flags, mode), fd)``." msgstr "" -#: library/os.rst:4668 +#: library/os.rst:4671 msgid "(``os.POSIX_SPAWN_CLOSE``, *fd*)" msgstr "" -#: library/os.rst:4670 +#: library/os.rst:4673 msgid "Performs ``os.close(fd)``." msgstr "" -#: library/os.rst:4674 +#: library/os.rst:4677 msgid "(``os.POSIX_SPAWN_DUP2``, *fd*, *new_fd*)" msgstr "" -#: library/os.rst:4676 +#: library/os.rst:4679 msgid "Performs ``os.dup2(fd, new_fd)``." msgstr "" -#: library/os.rst:4680 +#: library/os.rst:4683 msgid "(``os.POSIX_SPAWN_CLOSEFROM``, *fd*)" msgstr "" -#: library/os.rst:4682 +#: library/os.rst:4685 msgid "Performs ``os.closerange(fd, INF)``." msgstr "" -#: library/os.rst:4684 +#: library/os.rst:4687 msgid "" "These tuples correspond to the C library :c:func:`!" "posix_spawn_file_actions_addopen`, :c:func:`!" @@ -5068,7 +5073,7 @@ msgid "" "c:func:`!posix_spawn` call itself." msgstr "" -#: library/os.rst:4691 +#: library/os.rst:4694 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 " @@ -5077,7 +5082,7 @@ msgid "" "corresponds to the C library :c:macro:`!POSIX_SPAWN_SETPGROUP` flag." msgstr "" -#: library/os.rst:4697 +#: library/os.rst:4700 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 " @@ -5088,7 +5093,7 @@ msgid "" "library :c:macro:`!POSIX_SPAWN_RESETIDS` flag." msgstr "" -#: library/os.rst:4705 +#: library/os.rst:4708 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:" @@ -5096,7 +5101,7 @@ msgid "" "is raised." msgstr "" -#: library/os.rst:4710 +#: library/os.rst:4713 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 " @@ -5104,14 +5109,14 @@ msgid "" "POSIX_SPAWN_SETSIGMASK` flag." msgstr "" -#: library/os.rst:4715 +#: library/os.rst:4718 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:4719 +#: library/os.rst:4722 msgid "" "The *scheduler* argument must be a tuple containing the (optional) scheduler " "policy and an instance of :class:`sched_param` with the scheduler " @@ -5121,85 +5126,85 @@ msgid "" "POSIX_SPAWN_SETSCHEDULER` flags." msgstr "" -#: library/os.rst:4747 +#: library/os.rst:4750 msgid "" "Raises an :ref:`auditing event ` ``os.posix_spawn`` with arguments " "``path``, ``argv``, ``env``." msgstr "" -#: library/os.rst:4730 +#: library/os.rst:4733 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:4741 +#: library/os.rst:4744 msgid "Wraps the :c:func:`!posix_spawnp` C library API for use from Python." msgstr "" -#: library/os.rst:4743 +#: library/os.rst:4746 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:4753 +#: library/os.rst:4756 msgid "See :func:`posix_spawn` documentation." msgstr "" -#: library/os.rst:4759 +#: library/os.rst:4762 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:4764 +#: library/os.rst:4767 msgid "*before* is a function called before forking a child process." msgstr "" -#: library/os.rst:4765 +#: library/os.rst:4768 msgid "" "*after_in_parent* is a function called from the parent process after forking " "a child process." msgstr "" -#: library/os.rst:4767 +#: library/os.rst:4770 msgid "*after_in_child* is a function called from the child process." msgstr "" -#: library/os.rst:4769 +#: library/os.rst:4772 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:4773 +#: library/os.rst:4776 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:4778 +#: library/os.rst:4781 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:4782 +#: library/os.rst:4785 msgid "There is no way to unregister a function." msgstr "" -#: library/os.rst:4798 +#: library/os.rst:4801 msgid "Execute the program *path* in a new process." msgstr "" -#: library/os.rst:4800 +#: library/os.rst:4803 msgid "" "(Note that the :mod:`subprocess` module provides more powerful facilities " "for spawning new processes and retrieving their results; using that module " @@ -5207,7 +5212,7 @@ msgid "" "`subprocess-replacements` section.)" msgstr "" -#: library/os.rst:4805 +#: library/os.rst:4808 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 " @@ -5216,13 +5221,13 @@ msgid "" "handle, so can be used with the :func:`waitpid` function." msgstr "" -#: library/os.rst:4811 +#: library/os.rst:4814 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:4814 +#: library/os.rst:4817 msgid "" "The \"l\" and \"v\" variants of the :func:`spawn\\* ` functions " "differ in how command-line arguments are passed. The \"l\" variants are " @@ -5234,7 +5239,7 @@ msgid "" "to the child process must start with the name of the command being run." msgstr "" -#: library/os.rst:4823 +#: library/os.rst:4826 msgid "" "The variants which include a second \"p\" near the end (:func:`spawnlp`, :" "func:`spawnlpe`, :func:`spawnvp`, and :func:`spawnvpe`) will use the :envvar:" @@ -5247,7 +5252,7 @@ msgid "" "appropriate absolute or relative path." msgstr "" -#: library/os.rst:4833 +#: library/os.rst:4836 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 " @@ -5259,13 +5264,13 @@ msgid "" "values will cause the function to fail, with a return value of ``127``." msgstr "" -#: library/os.rst:4842 +#: library/os.rst:4845 msgid "" "As an example, the following calls to :func:`spawnlp` and :func:`spawnvpe` " "are equivalent::" msgstr "" -#: library/os.rst:4845 +#: library/os.rst:4848 msgid "" "import os\n" "os.spawnlp(os.P_WAIT, 'cp', 'cp', 'index.html', '/dev/null')\n" @@ -5274,13 +5279,13 @@ msgid "" "os.spawnvpe(os.P_WAIT, 'cp', L, os.environ)" msgstr "" -#: library/os.rst:4851 +#: library/os.rst:4854 msgid "" "Raises an :ref:`auditing event ` ``os.spawn`` with arguments " "``mode``, ``path``, ``args``, ``env``." msgstr "" -#: library/os.rst:4855 +#: library/os.rst:4858 msgid "" ":func:`spawnlp`, :func:`spawnlpe`, :func:`spawnvp` and :func:`spawnvpe` are " "not available on Windows. :func:`spawnle` and :func:`spawnve` are not " @@ -5288,7 +5293,7 @@ msgid "" "instead." msgstr "" -#: library/os.rst:4867 +#: library/os.rst:4870 msgid "" "Possible values for the *mode* parameter to the :func:`spawn\\* ` " "family of functions. If either of these values is given, the :func:" @@ -5296,7 +5301,7 @@ msgid "" "been created, with the process id as the return value." msgstr "" -#: library/os.rst:4877 +#: library/os.rst:4880 msgid "" "Possible value for the *mode* parameter to the :func:`spawn\\* ` " "family of functions. If this is given as *mode*, the :func:`spawn\\* " @@ -5305,7 +5310,7 @@ msgid "" "successful, or ``-signal`` if a signal kills the process." msgstr "" -#: library/os.rst:4889 +#: library/os.rst:4892 msgid "" "Possible values for the *mode* parameter to the :func:`spawn\\* ` " "family of functions. These are less portable than those listed above. :" @@ -5315,11 +5320,11 @@ msgid "" "function will not return." msgstr "" -#: library/os.rst:4900 +#: library/os.rst:4903 msgid "Start a file with its associated application." msgstr "" -#: library/os.rst:4902 +#: library/os.rst:4905 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:" @@ -5327,7 +5332,7 @@ msgid "" "whatever application (if any) its extension is associated." msgstr "" -#: library/os.rst:4907 +#: library/os.rst:4910 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 " @@ -5335,28 +5340,28 @@ msgid "" "as well as ``'explore'`` and ``'find'`` (to be used on directories)." msgstr "" -#: library/os.rst:4912 +#: library/os.rst:4915 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:4916 +#: library/os.rst:4919 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:4920 +#: library/os.rst:4923 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:4924 +#: library/os.rst:4927 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 " @@ -5367,32 +5372,32 @@ msgid "" "encoded for Win32." msgstr "" -#: library/os.rst:4932 +#: library/os.rst:4935 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:4936 +#: library/os.rst:4939 msgid "" "Raises an :ref:`auditing event ` ``os.startfile`` with arguments " "``path``, ``operation``." msgstr "" -#: library/os.rst:4938 +#: library/os.rst:4941 msgid "" "Raises an :ref:`auditing event ` ``os.startfile/2`` with arguments " "``path``, ``operation``, ``arguments``, ``cwd``, ``show_cmd``." msgstr "" -#: library/os.rst:4942 +#: library/os.rst:4945 msgid "" "Added the *arguments*, *cwd* and *show_cmd* arguments, and the ``os." "startfile/2`` audit event." msgstr "" -#: library/os.rst:4949 +#: library/os.rst:4952 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 " @@ -5403,13 +5408,13 @@ msgid "" "value of the Python function is system-dependent." msgstr "" -#: library/os.rst:4957 +#: library/os.rst:4960 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:4960 +#: library/os.rst:4963 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 :" @@ -5418,7 +5423,7 @@ msgid "" "shell documentation." msgstr "" -#: library/os.rst:4966 +#: library/os.rst:4969 msgid "" "The :mod:`subprocess` module provides more powerful facilities for spawning " "new processes and retrieving their results; using that module is preferable " @@ -5426,53 +5431,53 @@ msgid "" "the :mod:`subprocess` documentation for some helpful recipes." msgstr "" -#: library/os.rst:4971 +#: library/os.rst:4974 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:4975 +#: library/os.rst:4978 msgid "" "Raises an :ref:`auditing event ` ``os.system`` with argument " "``command``." msgstr "" -#: library/os.rst:4982 +#: library/os.rst:4985 msgid "" "Returns the current global process times. The return value is an object with " "five attributes:" msgstr "" -#: library/os.rst:4985 +#: library/os.rst:4988 msgid ":attr:`!user` - user time" msgstr "" -#: library/os.rst:4986 +#: library/os.rst:4989 msgid ":attr:`!system` - system time" msgstr "" -#: library/os.rst:4987 +#: library/os.rst:4990 msgid ":attr:`!children_user` - user time of all child processes" msgstr "" -#: library/os.rst:4988 +#: library/os.rst:4991 msgid ":attr:`!children_system` - system time of all child processes" msgstr "" -#: library/os.rst:4989 +#: library/os.rst:4992 msgid ":attr:`!elapsed` - elapsed real time since a fixed point in the past" msgstr "" -#: library/os.rst:4991 +#: library/os.rst:4994 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:4995 +#: library/os.rst:4998 msgid "" "See the Unix manual page :manpage:`times(2)` and `times(3) `_ manual page on Unix or `the " @@ -5482,7 +5487,7 @@ msgid "" "attributes are zero." msgstr "" -#: library/os.rst:5009 +#: library/os.rst:5012 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 " @@ -5491,87 +5496,87 @@ msgid "" "if a core file was produced." msgstr "" -#: library/os.rst:5015 +#: library/os.rst:5018 msgid "" "If there are no children that could be waited for, :exc:`ChildProcessError` " "is raised." msgstr "" -#: library/os.rst:5093 +#: library/os.rst:5096 msgid "" ":func:`waitstatus_to_exitcode` can be used to convert the exit status into " "an exit code." msgstr "" -#: library/os.rst:5025 +#: library/os.rst:5028 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:5032 +#: library/os.rst:5035 msgid "Wait for the completion of a child process." msgstr "" -#: library/os.rst:5034 +#: library/os.rst:5037 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:5037 +#: library/os.rst:5040 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:5041 +#: library/os.rst:5044 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:5044 +#: library/os.rst:5047 msgid ":attr:`!si_pid` (process ID)" msgstr "" -#: library/os.rst:5045 +#: library/os.rst:5048 msgid ":attr:`!si_uid` (real user ID of the child)" msgstr "" -#: library/os.rst:5046 +#: library/os.rst:5049 msgid ":attr:`!si_signo` (always :const:`~signal.SIGCHLD`)" msgstr "" -#: library/os.rst:5047 +#: library/os.rst:5050 msgid "" ":attr:`!si_status` (the exit status or signal number, depending on :attr:`!" "si_code`)" msgstr "" -#: library/os.rst:5048 +#: library/os.rst:5051 msgid ":attr:`!si_code` (see :data:`CLD_EXITED` for possible values)" msgstr "" -#: library/os.rst:5050 +#: library/os.rst:5053 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:5059 +#: library/os.rst:5062 msgid "This function is now available on macOS as well." msgstr "" -#: library/os.rst:5065 +#: library/os.rst:5068 msgid "The details of this function differ on Unix and Windows." msgstr "" -#: library/os.rst:5067 +#: library/os.rst:5070 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 " @@ -5580,7 +5585,7 @@ msgid "" "operation." msgstr "" -#: library/os.rst:5072 +#: library/os.rst:5075 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 " @@ -5590,7 +5595,7 @@ msgid "" "group ``-pid`` (the absolute value of *pid*)." msgstr "" -#: library/os.rst:5079 +#: library/os.rst:5082 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 " @@ -5599,7 +5604,7 @@ msgid "" "are :data:`WUNTRACED` and :data:`WCONTINUED`." msgstr "" -#: library/os.rst:5085 +#: library/os.rst:5088 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 " @@ -5611,7 +5616,7 @@ msgid "" "process handles." msgstr "" -#: library/os.rst:5106 +#: library/os.rst:5109 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 " @@ -5620,13 +5625,13 @@ msgid "" "same as that provided to :func:`waitpid` and :func:`wait4`." msgstr "" -#: library/os.rst:5127 +#: library/os.rst:5130 msgid "" ":func:`waitstatus_to_exitcode` can be used to convert the exit status into " "an exitcode." msgstr "" -#: library/os.rst:5121 +#: library/os.rst:5124 msgid "" "Similar to :func:`waitpid`, except a 3-element tuple, containing the child's " "process id, exit status indication, and resource usage information is " @@ -5635,118 +5640,118 @@ msgid "" "to :func:`waitpid`." msgstr "" -#: library/os.rst:5138 +#: library/os.rst:5141 msgid "" "These are the possible values for *idtype* in :func:`waitid`. They affect " "how *id* is interpreted:" msgstr "" -#: library/os.rst:5141 +#: library/os.rst:5144 msgid ":data:`!P_PID` - wait for the child whose PID is *id*." msgstr "" -#: library/os.rst:5142 +#: library/os.rst:5145 msgid ":data:`!P_PGID` - wait for any child whose progress group ID is *id*." msgstr "" -#: library/os.rst:5143 +#: library/os.rst:5146 msgid ":data:`!P_ALL` - wait for any child; *id* is ignored." msgstr "" -#: library/os.rst:5144 +#: library/os.rst:5147 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:5149 +#: library/os.rst:5152 msgid ":data:`!P_PIDFD` is only available on Linux >= 5.4." msgstr "" -#: library/os.rst:5152 +#: library/os.rst:5155 msgid "The :data:`!P_PIDFD` constant." msgstr "" -#: library/os.rst:5158 +#: library/os.rst:5161 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:5167 +#: library/os.rst:5170 msgid "" "This *options* flag for :func:`waitid` causes child processes that have " "terminated to be reported." msgstr "" -#: library/os.rst:5170 +#: library/os.rst:5173 msgid "" "The other ``wait*`` functions always report children that have terminated, " "so this option is not available for them." msgstr "" -#: library/os.rst:5180 +#: library/os.rst:5183 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:5215 +#: library/os.rst:5218 msgid "This option is not available for the other ``wait*`` functions." msgstr "" -#: library/os.rst:5192 +#: library/os.rst:5195 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:5196 +#: library/os.rst:5199 msgid "This option is not available for :func:`waitid`." msgstr "" -#: library/os.rst:5203 +#: library/os.rst:5206 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:5212 +#: library/os.rst:5215 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:5227 +#: library/os.rst:5230 msgid "" "These are the possible values for :attr:`!si_code` in the result returned " "by :func:`waitid`." msgstr "" -#: library/os.rst:5234 +#: library/os.rst:5237 msgid "Added :data:`CLD_KILLED` and :data:`CLD_STOPPED` values." msgstr "" -#: library/os.rst:5240 +#: library/os.rst:5243 msgid "Convert a wait status to an exit code." msgstr "" -#: library/os.rst:5242 +#: library/os.rst:5245 msgid "On Unix:" msgstr "" -#: library/os.rst:5244 +#: library/os.rst:5247 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:5247 +#: library/os.rst:5250 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 " @@ -5754,15 +5759,15 @@ msgid "" "than 0." msgstr "" -#: library/os.rst:5251 +#: library/os.rst:5254 msgid "Otherwise, raise a :exc:`ValueError`." msgstr "" -#: library/os.rst:5253 +#: library/os.rst:5256 msgid "On Windows, return *status* shifted right by 8 bits." msgstr "" -#: library/os.rst:5255 +#: library/os.rst:5258 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 " @@ -5770,226 +5775,226 @@ msgid "" "``WIFSTOPPED(status)`` is true." msgstr "" -#: library/os.rst:5262 +#: library/os.rst:5265 msgid "" ":func:`WIFEXITED`, :func:`WEXITSTATUS`, :func:`WIFSIGNALED`, :func:" "`WTERMSIG`, :func:`WIFSTOPPED`, :func:`WSTOPSIG` functions." msgstr "" -#: library/os.rst:5270 +#: library/os.rst:5273 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:5276 +#: library/os.rst:5279 msgid "" "Return ``True`` if a core dump was generated for the process, otherwise " "return ``False``." msgstr "" -#: library/os.rst:5345 +#: library/os.rst:5348 msgid "This function should be employed only if :func:`WIFSIGNALED` is true." msgstr "" -#: library/os.rst:5286 +#: library/os.rst:5289 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:5290 +#: library/os.rst:5293 msgid "See :data:`WCONTINUED` option." msgstr "" -#: library/os.rst:5297 +#: library/os.rst:5300 msgid "" "Return ``True`` if the process was stopped by delivery of a signal, " "otherwise return ``False``." msgstr "" -#: library/os.rst:5300 +#: library/os.rst:5303 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:5308 +#: library/os.rst:5311 msgid "" "Return ``True`` if the process was terminated by a signal, otherwise return " "``False``." msgstr "" -#: library/os.rst:5316 +#: library/os.rst:5319 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:5325 +#: library/os.rst:5328 msgid "Return the process exit status." msgstr "" -#: library/os.rst:5327 +#: library/os.rst:5330 msgid "This function should be employed only if :func:`WIFEXITED` is true." msgstr "" -#: library/os.rst:5334 +#: library/os.rst:5337 msgid "Return the signal which caused the process to stop." msgstr "" -#: library/os.rst:5336 +#: library/os.rst:5339 msgid "This function should be employed only if :func:`WIFSTOPPED` is true." msgstr "" -#: library/os.rst:5343 +#: library/os.rst:5346 msgid "Return the number of the signal that caused the process to terminate." msgstr "" -#: library/os.rst:5351 +#: library/os.rst:5354 msgid "Interface to the scheduler" msgstr "" -#: library/os.rst:5353 +#: library/os.rst:5356 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:5359 +#: library/os.rst:5362 msgid "" "The following scheduling policies are exposed if they are supported by the " "operating system." msgstr "" -#: library/os.rst:5366 +#: library/os.rst:5369 msgid "The default scheduling policy." msgstr "" -#: library/os.rst:5370 +#: library/os.rst:5373 msgid "" "Scheduling policy for CPU-intensive processes that tries to preserve " "interactivity on the rest of the computer." msgstr "" -#: library/os.rst:5375 +#: library/os.rst:5378 msgid "Scheduling policy for extremely low priority background tasks." msgstr "" -#: library/os.rst:5379 +#: library/os.rst:5382 msgid "Scheduling policy for sporadic server programs." msgstr "" -#: library/os.rst:5383 +#: library/os.rst:5386 msgid "A First In First Out scheduling policy." msgstr "" -#: library/os.rst:5387 +#: library/os.rst:5390 msgid "A round-robin scheduling policy." msgstr "" -#: library/os.rst:5391 +#: library/os.rst:5394 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:5398 +#: library/os.rst:5401 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:5402 +#: library/os.rst:5405 msgid "At the moment, there is only one possible parameter:" msgstr "" -#: library/os.rst:5406 +#: library/os.rst:5409 msgid "The scheduling priority for a scheduling policy." msgstr "" -#: library/os.rst:5411 +#: library/os.rst:5414 msgid "" "Get the minimum priority value for *policy*. *policy* is one of the " "scheduling policy constants above." msgstr "" -#: library/os.rst:5417 +#: library/os.rst:5420 msgid "" "Get the maximum priority value for *policy*. *policy* is one of the " "scheduling policy constants above." msgstr "" -#: library/os.rst:5423 +#: library/os.rst:5426 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:5430 +#: library/os.rst:5433 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:5437 +#: library/os.rst:5440 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:5443 +#: library/os.rst:5446 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:5449 +#: library/os.rst:5452 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:5455 +#: library/os.rst:5458 msgid "" "Voluntarily relinquish the CPU. See :manpage:`sched_yield(2)` for details." msgstr "" -#: library/os.rst:5460 +#: library/os.rst:5463 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:5467 +#: library/os.rst:5470 msgid "Return the set of CPUs the process with PID *pid* is restricted to." msgstr "" -#: library/os.rst:5469 +#: library/os.rst:5472 msgid "" "If *pid* is zero, return the set of CPUs the calling thread of the current " "process is restricted to." msgstr "" -#: library/os.rst:5472 +#: library/os.rst:5475 msgid "See also the :func:`process_cpu_count` function." msgstr "" -#: library/os.rst:5478 +#: library/os.rst:5481 msgid "Miscellaneous System Information" msgstr "" -#: library/os.rst:5483 +#: library/os.rst:5486 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 " @@ -6000,13 +6005,13 @@ msgid "" "included in that mapping, passing an integer for *name* is also accepted." msgstr "" -#: library/os.rst:5491 +#: library/os.rst:5494 msgid "" "If the configuration value specified by *name* isn't defined, ``None`` is " "returned." msgstr "" -#: library/os.rst:5494 +#: library/os.rst:5497 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 " @@ -6014,62 +6019,62 @@ msgid "" "`errno.EINVAL` for the error number." msgstr "" -#: library/os.rst:5504 +#: library/os.rst:5507 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:5513 +#: library/os.rst:5516 msgid "" "Return the number of logical CPUs in the **system**. Returns ``None`` if " "undetermined." msgstr "" -#: library/os.rst:5516 +#: library/os.rst:5519 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:5521 +#: library/os.rst:5524 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:5528 +#: library/os.rst:5531 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:5537 +#: library/os.rst:5540 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:5541 +#: library/os.rst:5544 msgid "" "The :func:`cpu_count` function can be used to get the number of logical CPUs " "in the **system**." msgstr "" -#: library/os.rst:5544 +#: library/os.rst:5547 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:5547 +#: library/os.rst:5550 msgid "See also the :func:`sched_getaffinity` function." msgstr "" -#: library/os.rst:5554 +#: library/os.rst:5557 msgid "" "Return integer-valued system configuration values. If the configuration " "value specified by *name* isn't defined, ``-1`` is returned. The comments " @@ -6078,44 +6083,44 @@ msgid "" "``sysconf_names``." msgstr "" -#: library/os.rst:5564 +#: library/os.rst:5567 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:5570 +#: library/os.rst:5573 msgid "Add ``'SC_MINSIGSTKSZ'`` name." msgstr "" -#: library/os.rst:5573 +#: library/os.rst:5576 msgid "" "The following data values are used to support path manipulation operations. " "These are defined for all platforms." msgstr "" -#: library/os.rst:5576 +#: library/os.rst:5579 msgid "" "Higher-level operations on pathnames are defined in the :mod:`os.path` " "module." msgstr "" -#: library/os.rst:5582 +#: library/os.rst:5585 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:5590 +#: library/os.rst:5593 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:5599 +#: library/os.rst:5602 msgid "" "The character used by the operating system to separate pathname components. " "This is ``'/'`` for POSIX and ``'\\\\'`` for Windows. Note that knowing " @@ -6124,7 +6129,7 @@ msgid "" "useful. Also available via :mod:`os.path`." msgstr "" -#: library/os.rst:5609 +#: library/os.rst:5612 msgid "" "An alternative character used by the operating system to separate pathname " "components, or ``None`` if only one separator character exists. This is set " @@ -6132,27 +6137,27 @@ msgid "" "via :mod:`os.path`." msgstr "" -#: library/os.rst:5618 +#: library/os.rst:5621 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:5626 +#: library/os.rst:5629 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:5633 +#: library/os.rst:5636 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:5640 +#: library/os.rst:5643 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 " @@ -6161,36 +6166,36 @@ msgid "" "default); use a single ``'\\n'`` instead, on all platforms." msgstr "" -#: library/os.rst:5649 +#: library/os.rst:5652 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:5660 +#: library/os.rst:5663 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:5668 +#: library/os.rst:5671 msgid "Random numbers" msgstr "" -#: library/os.rst:5673 +#: library/os.rst:5676 msgid "" "Get up to *size* random bytes. The function can return less bytes than " "requested." msgstr "" -#: library/os.rst:5676 +#: library/os.rst:5679 msgid "" "These bytes can be used to seed user-space random number generators or for " "cryptographic purposes." msgstr "" -#: library/os.rst:5679 +#: library/os.rst:5682 msgid "" "``getrandom()`` relies on entropy gathered from device drivers and other " "sources of environmental noise. Unnecessarily reading large quantities of " @@ -6198,32 +6203,32 @@ msgid "" "``/dev/urandom`` devices." msgstr "" -#: library/os.rst:5684 +#: library/os.rst:5687 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:5688 +#: library/os.rst:5691 msgid "" "See also the `Linux getrandom() manual page `_." msgstr "" -#: library/os.rst:5697 +#: library/os.rst:5700 msgid "" "Return a bytestring of *size* random bytes suitable for cryptographic use." msgstr "" -#: library/os.rst:5699 +#: library/os.rst:5702 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:5703 +#: library/os.rst:5706 msgid "" "On Linux, if the ``getrandom()`` syscall is available, it is used in " "blocking mode: block until the system urandom entropy pool is initialized " @@ -6233,63 +6238,63 @@ msgid "" "to poll until the system urandom entropy pool is initialized." msgstr "" -#: library/os.rst:5710 +#: library/os.rst:5713 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:5714 +#: library/os.rst:5717 msgid "On Windows, it will use ``BCryptGenRandom()``." msgstr "" -#: library/os.rst:5717 +#: library/os.rst:5720 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:5721 +#: library/os.rst:5724 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:5727 +#: library/os.rst:5730 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:5731 +#: library/os.rst:5734 msgid "" "On Linux, ``getrandom()`` is now used in blocking mode to increase the " "security." msgstr "" -#: library/os.rst:5735 +#: library/os.rst:5738 msgid "" "On Windows, ``BCryptGenRandom()`` is used instead of ``CryptGenRandom()`` " "which is deprecated." msgstr "" -#: library/os.rst:5741 +#: library/os.rst:5744 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:5745 +#: library/os.rst:5748 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:5752 +#: library/os.rst:5755 msgid "" "If this bit is set, then random bytes are drawn from the ``/dev/" "random`` pool instead of the ``/dev/urandom`` pool." @@ -6303,7 +6308,7 @@ msgstr "" msgid "effective id" msgstr "" -#: library/os.rst:439 library/os.rst:457 library/os.rst:667 library/os.rst:4550 +#: library/os.rst:439 library/os.rst:457 library/os.rst:667 library/os.rst:4553 msgid "process" msgstr "" @@ -6355,7 +6360,7 @@ msgstr "" msgid "pty" msgstr "" -#: library/os.rst:2458 library/os.rst:3563 library/os.rst:3663 +#: library/os.rst:2458 library/os.rst:3566 library/os.rst:3666 msgid "directory" msgstr "" @@ -6379,54 +6384,54 @@ msgstr "" msgid "stat" msgstr "" -#: library/os.rst:3663 +#: library/os.rst:3666 msgid "walking" msgstr "" -#: library/os.rst:3663 +#: library/os.rst:3666 msgid "traversal" msgstr "" -#: library/os.rst:4550 +#: library/os.rst:4553 msgid "killing" msgstr "" -#: library/os.rst:4550 +#: library/os.rst:4553 msgid "signalling" msgstr "" -#: library/os.rst:5615 +#: library/os.rst:5618 msgid ". (dot)" msgstr "" -#: library/os.rst:5587 library/os.rst:5606 library/os.rst:5615 +#: library/os.rst:5590 library/os.rst:5609 library/os.rst:5618 msgid "in pathnames" msgstr "" -#: library/os.rst:5587 +#: library/os.rst:5590 msgid ".." msgstr "" -#: library/os.rst:5606 +#: library/os.rst:5609 msgid "/ (slash)" msgstr "" -#: library/os.rst:5596 +#: library/os.rst:5599 msgid "\\ (backslash)" msgstr "" -#: library/os.rst:5596 +#: library/os.rst:5599 msgid "in pathnames (Windows)" msgstr "" -#: library/os.rst:5622 +#: library/os.rst:5625 msgid ": (colon)" msgstr "" -#: library/os.rst:5622 +#: library/os.rst:5625 msgid "path separator (POSIX)" msgstr "" -#: library/os.rst:5622 +#: library/os.rst:5625 msgid "; (semicolon)" msgstr "" diff --git a/library/ossaudiodev.po b/library/ossaudiodev.po index c181f8d2..1e4dbf39 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a397d587..953b54fd 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2099,135 +2099,141 @@ msgid "``[seq]``" msgstr "" #: library/pathlib.rst:1664 -msgid "Matches one character in *seq*." +msgid "" +"Matches one character in *seq*, where *seq* is a sequence of characters. " +"Range expressions are supported; for example, ``[a-z]`` matches any " +"lowercase ASCII letter. Multiple ranges can be combined: ``[a-zA-Z0-9_]`` " +"matches any ASCII letter, digit, or underscore." msgstr "" -#: library/pathlib.rst:1665 +#: library/pathlib.rst:1668 msgid "``[!seq]``" msgstr "" -#: library/pathlib.rst:1666 -msgid "Matches one character not in *seq*." +#: library/pathlib.rst:1669 +msgid "" +"Matches one character not in *seq*, where *seq* follows the same rules as " +"above." msgstr "" -#: library/pathlib.rst:1668 +#: library/pathlib.rst:1671 msgid "" "For a literal match, wrap the meta-characters in brackets. For example, " "``\"[?]\"`` matches the character ``\"?\"``." msgstr "" -#: library/pathlib.rst:1671 +#: library/pathlib.rst:1674 msgid "The \"``**``\" wildcard enables recursive globbing. A few examples:" msgstr "" -#: library/pathlib.rst:1674 +#: library/pathlib.rst:1677 msgid "Pattern" msgstr "" -#: library/pathlib.rst:1674 +#: library/pathlib.rst:1677 msgid "Meaning" msgstr "" -#: library/pathlib.rst:1676 +#: library/pathlib.rst:1679 msgid "\"``**/*``\"" msgstr "" -#: library/pathlib.rst:1676 +#: library/pathlib.rst:1679 msgid "Any path with at least one segment." msgstr "" -#: library/pathlib.rst:1677 +#: library/pathlib.rst:1680 msgid "\"``**/*.py``\"" msgstr "" -#: library/pathlib.rst:1677 +#: library/pathlib.rst:1680 msgid "Any path with a final segment ending \"``.py``\"." msgstr "" -#: library/pathlib.rst:1678 +#: library/pathlib.rst:1681 msgid "\"``assets/**``\"" msgstr "" -#: library/pathlib.rst:1678 +#: library/pathlib.rst:1681 msgid "Any path starting with \"``assets/``\"." msgstr "" -#: library/pathlib.rst:1679 +#: library/pathlib.rst:1682 msgid "\"``assets/**/*``\"" msgstr "" -#: library/pathlib.rst:1679 +#: library/pathlib.rst:1682 msgid "" "Any path starting with \"``assets/``\", excluding \"``assets/``\" itself." msgstr "" -#: library/pathlib.rst:1683 +#: library/pathlib.rst:1686 msgid "" "Globbing with the \"``**``\" wildcard visits every directory in the tree. " "Large directory trees may take a long time to search." msgstr "" -#: library/pathlib.rst:1686 +#: library/pathlib.rst:1689 msgid "" "Globbing with a pattern that ends with \"``**``\" returns both files and " "directories. In previous versions, only directories were returned." msgstr "" -#: library/pathlib.rst:1690 +#: library/pathlib.rst:1693 msgid "" "In :meth:`Path.glob` and :meth:`~Path.rglob`, a trailing slash may be added " "to the pattern to match only directories." msgstr "" -#: library/pathlib.rst:1693 +#: library/pathlib.rst:1696 msgid "" "Globbing with a pattern that ends with a pathname components separator (:" "data:`~os.sep` or :data:`~os.altsep`) returns only directories." msgstr "" -#: library/pathlib.rst:1699 +#: library/pathlib.rst:1702 msgid "Comparison to the :mod:`glob` module" msgstr "" -#: library/pathlib.rst:1701 +#: library/pathlib.rst:1704 msgid "" "The patterns accepted and results generated by :meth:`Path.glob` and :meth:" "`Path.rglob` differ slightly from those by the :mod:`glob` module:" msgstr "" -#: library/pathlib.rst:1704 +#: library/pathlib.rst:1707 msgid "" "Files beginning with a dot are not special in pathlib. This is like passing " "``include_hidden=True`` to :func:`glob.glob`." msgstr "" -#: library/pathlib.rst:1706 +#: library/pathlib.rst:1709 msgid "" "\"``**``\" pattern components are always recursive in pathlib. This is like " "passing ``recursive=True`` to :func:`glob.glob`." msgstr "" -#: library/pathlib.rst:1708 +#: library/pathlib.rst:1711 msgid "" "\"``**``\" pattern components do not follow symlinks by default in pathlib. " "This behaviour has no equivalent in :func:`glob.glob`, but you can pass " "``recurse_symlinks=True`` to :meth:`Path.glob` for compatible behaviour." msgstr "" -#: library/pathlib.rst:1711 +#: library/pathlib.rst:1714 msgid "" "Like all :class:`PurePath` and :class:`Path` objects, the values returned " "from :meth:`Path.glob` and :meth:`Path.rglob` don't include trailing slashes." msgstr "" -#: library/pathlib.rst:1714 +#: library/pathlib.rst:1717 msgid "" "The values returned from pathlib's ``path.glob()`` and ``path.rglob()`` " "include the *path* as a prefix, unlike the results of ``glob." "glob(root_dir=path)``." msgstr "" -#: library/pathlib.rst:1717 +#: library/pathlib.rst:1720 msgid "" "The values returned from pathlib's ``path.glob()`` and ``path.rglob()`` may " "include *path* itself, for example when globbing \"``**``\", whereas the " @@ -2235,11 +2241,11 @@ msgid "" "would correspond to *path*." msgstr "" -#: library/pathlib.rst:1724 +#: library/pathlib.rst:1727 msgid "Comparison to the :mod:`os` and :mod:`os.path` modules" msgstr "" -#: library/pathlib.rst:1726 +#: library/pathlib.rst:1729 msgid "" "pathlib implements path operations using :class:`PurePath` and :class:`Path` " "objects, and so it's said to be *object-oriented*. On the other hand, the :" @@ -2248,21 +2254,21 @@ msgid "" "Some users consider the object-oriented style to be more readable." msgstr "" -#: library/pathlib.rst:1732 +#: library/pathlib.rst:1735 msgid "" "Many functions in :mod:`os` and :mod:`os.path` support ``bytes`` paths and :" "ref:`paths relative to directory descriptors `. These features " "aren't available in pathlib." msgstr "" -#: library/pathlib.rst:1736 +#: library/pathlib.rst:1739 msgid "" "Python's ``str`` and ``bytes`` types, and portions of the :mod:`os` and :mod:" "`os.path` modules, are written in C and are very speedy. pathlib is written " "in pure Python and is often slower, but rarely slow enough to matter." msgstr "" -#: library/pathlib.rst:1740 +#: library/pathlib.rst:1743 msgid "" "pathlib's path normalization is slightly more opinionated and consistent " "than :mod:`os.path`. For example, whereas :func:`os.path.abspath` eliminates " @@ -2271,12 +2277,12 @@ msgid "" "safety." msgstr "" -#: library/pathlib.rst:1745 +#: library/pathlib.rst:1748 msgid "" "pathlib's path normalization may render it unsuitable for some applications:" msgstr "" -#: library/pathlib.rst:1747 +#: library/pathlib.rst:1750 msgid "" "pathlib normalizes ``Path(\"my_folder/\")`` to ``Path(\"my_folder\")``, " "which changes a path's meaning when supplied to various operating system " @@ -2285,7 +2291,7 @@ msgid "" "rather than a directory only." msgstr "" -#: library/pathlib.rst:1752 +#: library/pathlib.rst:1755 msgid "" "pathlib normalizes ``Path(\"./my_program\")`` to ``Path(\"my_program\")``, " "which changes a path's meaning when used as an executable search path, such " @@ -2294,283 +2300,283 @@ msgid "" "rather than the current directory." msgstr "" -#: library/pathlib.rst:1758 +#: library/pathlib.rst:1761 msgid "" "As a consequence of these differences, pathlib is not a drop-in replacement " "for :mod:`os.path`." msgstr "" -#: library/pathlib.rst:1763 +#: library/pathlib.rst:1766 msgid "Corresponding tools" msgstr "" -#: library/pathlib.rst:1765 +#: library/pathlib.rst:1768 msgid "" "Below is a table mapping various :mod:`os` functions to their corresponding :" "class:`PurePath`/:class:`Path` equivalent." msgstr "" -#: library/pathlib.rst:1769 +#: library/pathlib.rst:1772 msgid ":mod:`os` and :mod:`os.path`" msgstr "" -#: library/pathlib.rst:1769 +#: library/pathlib.rst:1772 msgid ":mod:`pathlib`" msgstr "" -#: library/pathlib.rst:1771 +#: library/pathlib.rst:1774 msgid ":func:`os.path.dirname`" msgstr "" -#: library/pathlib.rst:1771 +#: library/pathlib.rst:1774 msgid ":attr:`PurePath.parent`" msgstr "" -#: library/pathlib.rst:1772 +#: library/pathlib.rst:1775 msgid ":func:`os.path.basename`" msgstr "" -#: library/pathlib.rst:1772 +#: library/pathlib.rst:1775 msgid ":attr:`PurePath.name`" msgstr "" -#: library/pathlib.rst:1773 +#: library/pathlib.rst:1776 msgid ":func:`os.path.splitext`" msgstr "" -#: library/pathlib.rst:1773 +#: library/pathlib.rst:1776 msgid ":attr:`PurePath.stem`, :attr:`PurePath.suffix`" msgstr "" -#: library/pathlib.rst:1774 +#: library/pathlib.rst:1777 msgid ":func:`os.path.join`" msgstr "" -#: library/pathlib.rst:1774 +#: library/pathlib.rst:1777 msgid ":meth:`PurePath.joinpath`" msgstr "" -#: library/pathlib.rst:1775 +#: library/pathlib.rst:1778 msgid ":func:`os.path.isabs`" msgstr "" -#: library/pathlib.rst:1775 +#: library/pathlib.rst:1778 msgid ":meth:`PurePath.is_absolute`" msgstr "" -#: library/pathlib.rst:1776 +#: library/pathlib.rst:1779 msgid ":func:`os.path.relpath`" msgstr "" -#: library/pathlib.rst:1776 +#: library/pathlib.rst:1779 msgid ":meth:`PurePath.relative_to` [1]_" msgstr "" -#: library/pathlib.rst:1777 +#: library/pathlib.rst:1780 msgid ":func:`os.path.expanduser`" msgstr "" -#: library/pathlib.rst:1777 +#: library/pathlib.rst:1780 msgid ":meth:`Path.expanduser` [2]_" msgstr "" -#: library/pathlib.rst:1778 +#: library/pathlib.rst:1781 msgid ":func:`os.path.realpath`" msgstr "" -#: library/pathlib.rst:1778 +#: library/pathlib.rst:1781 msgid ":meth:`Path.resolve`" msgstr "" -#: library/pathlib.rst:1779 +#: library/pathlib.rst:1782 msgid ":func:`os.path.abspath`" msgstr "" -#: library/pathlib.rst:1779 +#: library/pathlib.rst:1782 msgid ":meth:`Path.absolute` [3]_" msgstr "" -#: library/pathlib.rst:1780 +#: library/pathlib.rst:1783 msgid ":func:`os.path.exists`" msgstr "" -#: library/pathlib.rst:1780 +#: library/pathlib.rst:1783 msgid ":meth:`Path.exists`" msgstr "" -#: library/pathlib.rst:1781 +#: library/pathlib.rst:1784 msgid ":func:`os.path.isfile`" msgstr "" -#: library/pathlib.rst:1781 +#: library/pathlib.rst:1784 msgid ":meth:`Path.is_file`" msgstr "" -#: library/pathlib.rst:1782 +#: library/pathlib.rst:1785 msgid ":func:`os.path.isdir`" msgstr "" -#: library/pathlib.rst:1782 +#: library/pathlib.rst:1785 msgid ":meth:`Path.is_dir`" msgstr "" -#: library/pathlib.rst:1783 +#: library/pathlib.rst:1786 msgid ":func:`os.path.islink`" msgstr "" -#: library/pathlib.rst:1783 +#: library/pathlib.rst:1786 msgid ":meth:`Path.is_symlink`" msgstr "" -#: library/pathlib.rst:1784 +#: library/pathlib.rst:1787 msgid ":func:`os.path.isjunction`" msgstr "" -#: library/pathlib.rst:1784 +#: library/pathlib.rst:1787 msgid ":meth:`Path.is_junction`" msgstr "" -#: library/pathlib.rst:1785 +#: library/pathlib.rst:1788 msgid ":func:`os.path.ismount`" msgstr "" -#: library/pathlib.rst:1785 +#: library/pathlib.rst:1788 msgid ":meth:`Path.is_mount`" msgstr "" -#: library/pathlib.rst:1786 +#: library/pathlib.rst:1789 msgid ":func:`os.path.samefile`" msgstr "" -#: library/pathlib.rst:1786 +#: library/pathlib.rst:1789 msgid ":meth:`Path.samefile`" msgstr "" -#: library/pathlib.rst:1787 +#: library/pathlib.rst:1790 msgid ":func:`os.getcwd`" msgstr "" -#: library/pathlib.rst:1787 +#: library/pathlib.rst:1790 msgid ":meth:`Path.cwd`" msgstr "" -#: library/pathlib.rst:1788 +#: library/pathlib.rst:1791 msgid ":func:`os.stat`" msgstr "" -#: library/pathlib.rst:1788 +#: library/pathlib.rst:1791 msgid ":meth:`Path.stat`" msgstr "" -#: library/pathlib.rst:1789 +#: library/pathlib.rst:1792 msgid ":func:`os.lstat`" msgstr "" -#: library/pathlib.rst:1789 +#: library/pathlib.rst:1792 msgid ":meth:`Path.lstat`" msgstr "" -#: library/pathlib.rst:1790 +#: library/pathlib.rst:1793 msgid ":func:`os.listdir`" msgstr "" -#: library/pathlib.rst:1790 +#: library/pathlib.rst:1793 msgid ":meth:`Path.iterdir`" msgstr "" -#: library/pathlib.rst:1791 +#: library/pathlib.rst:1794 msgid ":func:`os.walk`" msgstr "" -#: library/pathlib.rst:1791 +#: library/pathlib.rst:1794 msgid ":meth:`Path.walk` [4]_" msgstr "" -#: library/pathlib.rst:1792 +#: library/pathlib.rst:1795 msgid ":func:`os.mkdir`, :func:`os.makedirs`" msgstr "" -#: library/pathlib.rst:1792 +#: library/pathlib.rst:1795 msgid ":meth:`Path.mkdir`" msgstr "" -#: library/pathlib.rst:1793 +#: library/pathlib.rst:1796 msgid ":func:`os.link`" msgstr "" -#: library/pathlib.rst:1793 +#: library/pathlib.rst:1796 msgid ":meth:`Path.hardlink_to`" msgstr "" -#: library/pathlib.rst:1794 +#: library/pathlib.rst:1797 msgid ":func:`os.symlink`" msgstr "" -#: library/pathlib.rst:1794 +#: library/pathlib.rst:1797 msgid ":meth:`Path.symlink_to`" msgstr "" -#: library/pathlib.rst:1795 +#: library/pathlib.rst:1798 msgid ":func:`os.readlink`" msgstr "" -#: library/pathlib.rst:1795 +#: library/pathlib.rst:1798 msgid ":meth:`Path.readlink`" msgstr "" -#: library/pathlib.rst:1796 +#: library/pathlib.rst:1799 msgid ":func:`os.rename`" msgstr "" -#: library/pathlib.rst:1796 +#: library/pathlib.rst:1799 msgid ":meth:`Path.rename`" msgstr "" -#: library/pathlib.rst:1797 +#: library/pathlib.rst:1800 msgid ":func:`os.replace`" msgstr "" -#: library/pathlib.rst:1797 +#: library/pathlib.rst:1800 msgid ":meth:`Path.replace`" msgstr "" -#: library/pathlib.rst:1798 +#: library/pathlib.rst:1801 msgid ":func:`os.remove`, :func:`os.unlink`" msgstr "" -#: library/pathlib.rst:1798 +#: library/pathlib.rst:1801 msgid ":meth:`Path.unlink`" msgstr "" -#: library/pathlib.rst:1799 +#: library/pathlib.rst:1802 msgid ":func:`os.rmdir`" msgstr "" -#: library/pathlib.rst:1799 +#: library/pathlib.rst:1802 msgid ":meth:`Path.rmdir`" msgstr "" -#: library/pathlib.rst:1800 +#: library/pathlib.rst:1803 msgid ":func:`os.chmod`" msgstr "" -#: library/pathlib.rst:1800 +#: library/pathlib.rst:1803 msgid ":meth:`Path.chmod`" msgstr "" -#: library/pathlib.rst:1801 +#: library/pathlib.rst:1804 msgid ":func:`os.lchmod`" msgstr "" -#: library/pathlib.rst:1801 +#: library/pathlib.rst:1804 msgid ":meth:`Path.lchmod`" msgstr "" -#: library/pathlib.rst:1805 +#: library/pathlib.rst:1808 msgid "Footnotes" msgstr "" -#: library/pathlib.rst:1806 +#: library/pathlib.rst:1809 msgid "" ":func:`os.path.relpath` calls :func:`~os.path.abspath` to make paths " "absolute and remove \"``..``\" parts, whereas :meth:`PurePath.relative_to` " @@ -2578,21 +2584,21 @@ msgid "" "anchors differ (e.g. if one path is absolute and the other relative.)" msgstr "" -#: library/pathlib.rst:1810 +#: library/pathlib.rst:1813 msgid "" ":func:`os.path.expanduser` returns the path unchanged if the home directory " "can't be resolved, whereas :meth:`Path.expanduser` raises :exc:" "`RuntimeError`." msgstr "" -#: library/pathlib.rst:1813 +#: library/pathlib.rst:1816 msgid "" ":func:`os.path.abspath` removes \"``..``\" components without resolving " "symlinks, which may change the meaning of the path, whereas :meth:`Path." "absolute` leaves any \"``..``\" components in the path." msgstr "" -#: library/pathlib.rst:1816 +#: library/pathlib.rst:1819 msgid "" ":func:`os.walk` always follows symlinks when categorizing paths into " "*dirnames* and *filenames*, whereas :meth:`Path.walk` categorizes all " diff --git a/library/pdb.po b/library/pdb.po index 7db36c19..b863d10f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 | 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,31 +146,31 @@ 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:107 +#: library/pdb.rst:112 msgid "Typical usage to execute a statement under control of the debugger is::" msgstr "" -#: library/pdb.rst:109 +#: library/pdb.rst:114 msgid "" ">>> import pdb\n" ">>> def f(x):\n" @@ -178,11 +182,11 @@ msgid "" ">>>" msgstr "" -#: library/pdb.rst:118 +#: library/pdb.rst:123 msgid "The typical usage to inspect a crashed program is::" msgstr "" -#: library/pdb.rst:120 +#: library/pdb.rst:125 msgid "" ">>> import pdb\n" ">>> def f(x):\n" @@ -200,20 +204,20 @@ msgid "" "(Pdb)" msgstr "" -#: library/pdb.rst:135 +#: library/pdb.rst:140 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:141 +#: library/pdb.rst:146 msgid "" "The module defines the following functions; each enters the debugger in a " "slightly different way:" msgstr "" -#: library/pdb.rst:146 +#: library/pdb.rst:151 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 " @@ -225,14 +229,14 @@ msgid "" "`exec` or :func:`eval` functions.)" msgstr "" -#: library/pdb.rst:158 +#: library/pdb.rst:163 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:165 +#: library/pdb.rst:170 msgid "" "Call the *function* (a function or method object, not a string) with the " "given arguments. When :func:`runcall` returns, it returns whatever the " @@ -240,7 +244,7 @@ msgid "" "is entered." msgstr "" -#: library/pdb.rst:173 +#: library/pdb.rst:178 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 " @@ -248,57 +252,57 @@ msgid "" "is printed to the console just before debugging begins." msgstr "" -#: library/pdb.rst:178 +#: library/pdb.rst:183 msgid "The keyword-only argument *header*." msgstr "" -#: library/pdb.rst:181 +#: library/pdb.rst:186 msgid "" ":func:`set_trace` will enter the debugger immediately, rather than on the " "next line of code to be executed." msgstr "" -#: library/pdb.rst:187 +#: library/pdb.rst:192 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:192 +#: library/pdb.rst:197 msgid "Support for exception objects was added." msgstr "" -#: library/pdb.rst:197 +#: library/pdb.rst:202 msgid "" "Enter post-mortem debugging of the exception found in :data:`sys.last_exc`." msgstr "" -#: library/pdb.rst:201 +#: library/pdb.rst:206 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:208 +#: library/pdb.rst:213 msgid ":class:`Pdb` is the debugger class." msgstr "" -#: library/pdb.rst:210 +#: library/pdb.rst:215 msgid "" "The *completekey*, *stdin* and *stdout* arguments are passed to the " "underlying :class:`cmd.Cmd` class; see the description there." msgstr "" -#: library/pdb.rst:213 +#: library/pdb.rst:218 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:217 +#: library/pdb.rst:222 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:" @@ -307,48 +311,48 @@ msgid "" "set *nosigint* to true." msgstr "" -#: library/pdb.rst:222 +#: library/pdb.rst:227 msgid "" "The *readrc* argument defaults to true and controls whether Pdb will load ." "pdbrc files from the filesystem." msgstr "" -#: library/pdb.rst:225 +#: library/pdb.rst:230 msgid "Example call to enable tracing with *skip*::" msgstr "" -#: library/pdb.rst:227 +#: library/pdb.rst:232 msgid "import pdb; pdb.Pdb(skip=['django.*']).set_trace()" msgstr "" -#: library/pdb.rst:229 +#: library/pdb.rst:234 msgid "" "Raises an :ref:`auditing event ` ``pdb.Pdb`` with no arguments." msgstr "" -#: library/pdb.rst:231 +#: library/pdb.rst:236 msgid "Added the *skip* parameter." msgstr "" -#: library/pdb.rst:234 +#: library/pdb.rst:239 msgid "" "Added the *nosigint* parameter. Previously, a SIGINT handler was never set " "by Pdb." msgstr "" -#: library/pdb.rst:238 +#: library/pdb.rst:243 msgid "The *readrc* argument." msgstr "" -#: library/pdb.rst:246 +#: library/pdb.rst:251 msgid "See the documentation for the functions explained above." msgstr "" -#: library/pdb.rst:252 -msgid "Debugger Commands" +#: library/pdb.rst:257 +msgid "Debugger commands" msgstr "" -#: library/pdb.rst:254 +#: library/pdb.rst:259 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 " @@ -360,13 +364,13 @@ msgid "" "are separated by a vertical bar (``|``)." msgstr "" -#: library/pdb.rst:263 +#: library/pdb.rst:268 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:266 +#: library/pdb.rst:271 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. " @@ -377,20 +381,20 @@ msgid "" "is not changed." msgstr "" -#: library/pdb.rst:274 +#: library/pdb.rst:279 msgid "" "Expressions/Statements whose prefix is a pdb command are now correctly " "identified and executed." msgstr "" -#: library/pdb.rst:278 +#: library/pdb.rst:283 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:282 +#: library/pdb.rst:287 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 " @@ -401,7 +405,7 @@ msgid "" "\"\";\"``." msgstr "" -#: library/pdb.rst:289 +#: library/pdb.rst:294 msgid "" "To set a temporary global variable, use a *convenience variable*. A " "*convenience variable* is a variable whose name starts with ``$``. For " @@ -411,27 +415,27 @@ msgid "" "compared to using normal variables like ``foo = 1``." msgstr "" -#: library/pdb.rst:296 +#: library/pdb.rst:301 msgid "There are three preset *convenience variables*:" msgstr "" -#: library/pdb.rst:298 +#: library/pdb.rst:303 msgid "``$_frame``: the current frame you are debugging" msgstr "" -#: library/pdb.rst:299 +#: library/pdb.rst:304 msgid "``$_retval``: the return value if the frame is returning" msgstr "" -#: library/pdb.rst:300 +#: library/pdb.rst:305 msgid "``$_exception``: the exception if the frame is raising an exception" msgstr "" -#: library/pdb.rst:304 +#: library/pdb.rst:309 msgid "Added the *convenience variable* feature." msgstr "" -#: library/pdb.rst:310 +#: library/pdb.rst:315 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 " @@ -441,20 +445,20 @@ msgid "" "read first and aliases defined there can be overridden by the local file." msgstr "" -#: library/pdb.rst:317 +#: library/pdb.rst:322 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:322 +#: library/pdb.rst:327 msgid "" ":file:`.pdbrc` is now read with ``'utf-8'`` encoding. Previously, it was " "read with the system locale encoding." msgstr "" -#: library/pdb.rst:329 +#: library/pdb.rst:334 msgid "" "Without argument, print the list of available commands. With a *command* as " "argument, print help about that command. ``help pdb`` displays the full " @@ -463,26 +467,26 @@ msgid "" "the ``!`` command." msgstr "" -#: library/pdb.rst:337 +#: library/pdb.rst:342 msgid "" "Print a stack trace, with the most recent frame at the bottom. An arrow " "(``>``) indicates the current frame, which determines the context of most " "commands." msgstr "" -#: library/pdb.rst:342 +#: library/pdb.rst:347 msgid "" "Move the current frame *count* (default one) levels down in the stack trace " "(to a newer frame)." msgstr "" -#: library/pdb.rst:347 +#: library/pdb.rst:352 msgid "" "Move the current frame *count* (default one) levels up in the stack trace " "(to an older frame)." msgstr "" -#: library/pdb.rst:352 +#: library/pdb.rst:357 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 " @@ -492,46 +496,46 @@ msgid "" "module``." msgstr "" -#: library/pdb.rst:359 +#: library/pdb.rst:364 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:363 +#: library/pdb.rst:368 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:366 +#: library/pdb.rst:371 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:370 +#: library/pdb.rst:375 msgid "" "Each breakpoint is assigned a number to which all the other breakpoint " "commands refer." msgstr "" -#: library/pdb.rst:375 +#: library/pdb.rst:380 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:380 +#: library/pdb.rst:385 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:386 +#: library/pdb.rst:391 msgid "" "Disable the breakpoints given as a space separated list of breakpoint " "numbers. Disabling a breakpoint means it cannot cause the program to stop " @@ -539,11 +543,11 @@ msgid "" "breakpoints and can be (re-)enabled." msgstr "" -#: library/pdb.rst:393 +#: library/pdb.rst:398 msgid "Enable the breakpoints specified." msgstr "" -#: library/pdb.rst:397 +#: library/pdb.rst:402 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 " @@ -552,21 +556,21 @@ msgid "" "associated condition evaluates to true." msgstr "" -#: library/pdb.rst:405 +#: library/pdb.rst:410 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:411 +#: library/pdb.rst:416 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:415 +#: library/pdb.rst:420 msgid "" "(Pdb) commands 1\n" "(com) p some_variable\n" @@ -574,25 +578,25 @@ msgid "" "(Pdb)" msgstr "" -#: library/pdb.rst:420 +#: library/pdb.rst:425 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:423 +#: library/pdb.rst:428 msgid "" "With no *bpnumber* argument, ``commands`` refers to the last breakpoint set." msgstr "" -#: library/pdb.rst:425 +#: library/pdb.rst:430 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:429 +#: library/pdb.rst:434 msgid "" "Specifying any command resuming execution (currently :pdbcmd:`continue`, :" "pdbcmd:`step`, :pdbcmd:`next`, :pdbcmd:`return`, :pdbcmd:`jump`, :pdbcmd:" @@ -603,7 +607,7 @@ msgid "" "ambiguities about which list to execute." msgstr "" -#: library/pdb.rst:438 +#: library/pdb.rst:443 msgid "" "If you use the ``silent`` command in the command list, the usual message " "about stopping at a breakpoint is not printed. This may be desirable for " @@ -612,13 +616,13 @@ msgid "" "was reached." msgstr "" -#: library/pdb.rst:445 +#: library/pdb.rst:450 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:450 +#: library/pdb.rst:455 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 " @@ -627,46 +631,46 @@ msgid "" "line in the current function.)" msgstr "" -#: library/pdb.rst:458 +#: library/pdb.rst:463 msgid "" "Without argument, continue execution until the line with a number greater " "than the current one is reached." msgstr "" -#: library/pdb.rst:461 +#: library/pdb.rst:466 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:465 +#: library/pdb.rst:470 msgid "Allow giving an explicit line number." msgstr "" -#: library/pdb.rst:470 +#: library/pdb.rst:475 msgid "Continue execution until the current function returns." msgstr "" -#: library/pdb.rst:474 +#: library/pdb.rst:479 msgid "Continue execution, only stop when a breakpoint is encountered." msgstr "" -#: library/pdb.rst:478 +#: library/pdb.rst:483 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:482 +#: library/pdb.rst:487 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:488 +#: library/pdb.rst:493 msgid "" "List source code for the current file. Without arguments, list 11 lines " "around the current line or continue the previous listing. With ``.`` as " @@ -675,7 +679,7 @@ msgid "" "second argument is less than the first, it is interpreted as a count." msgstr "" -#: library/pdb.rst:494 +#: library/pdb.rst:499 msgid "" "The current line in the current frame is indicated by ``->``. If an " "exception is being debugged, the line where the exception was originally " @@ -683,67 +687,67 @@ msgid "" "line." msgstr "" -#: library/pdb.rst:499 +#: library/pdb.rst:504 msgid "Added the ``>>`` marker." msgstr "" -#: library/pdb.rst:504 +#: library/pdb.rst:509 msgid "" "List all source code for the current function or frame. Interesting lines " "are marked as for :pdbcmd:`list`." msgstr "" -#: library/pdb.rst:511 +#: library/pdb.rst:516 msgid "Print the arguments of the current function and their current values." msgstr "" -#: library/pdb.rst:515 +#: library/pdb.rst:520 msgid "Evaluate *expression* in the current context and print its value." msgstr "" -#: library/pdb.rst:519 +#: library/pdb.rst:524 msgid "" "``print()`` can also be used, but is not a debugger command --- this " "executes the Python :func:`print` function." msgstr "" -#: library/pdb.rst:525 +#: library/pdb.rst:530 msgid "" "Like the :pdbcmd:`p` command, except the value of *expression* is pretty-" "printed using the :mod:`pprint` module." msgstr "" -#: library/pdb.rst:530 +#: library/pdb.rst:535 msgid "Print the type of *expression*." msgstr "" -#: library/pdb.rst:534 +#: library/pdb.rst:539 msgid "Try to get source code of *expression* and display it." msgstr "" -#: library/pdb.rst:540 +#: library/pdb.rst:545 msgid "" "Display the value of *expression* if it changed, each time execution stops " "in the current frame." msgstr "" -#: library/pdb.rst:543 +#: library/pdb.rst:548 msgid "" "Without *expression*, list all display expressions for the current frame." msgstr "" -#: library/pdb.rst:547 +#: library/pdb.rst:552 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:701 +#: library/pdb.rst:706 msgid "Example::" msgstr "" -#: library/pdb.rst:553 +#: library/pdb.rst:558 msgid "" "lst = []\n" "breakpoint()\n" @@ -752,13 +756,13 @@ msgid "" "print(lst)" msgstr "" -#: library/pdb.rst:559 +#: library/pdb.rst:564 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:562 +#: library/pdb.rst:567 msgid "" "> example.py(3)()\n" "-> pass\n" @@ -773,11 +777,11 @@ msgid "" "(Pdb)" msgstr "" -#: library/pdb.rst:574 +#: library/pdb.rst:579 msgid "You can do some tricks with copy mechanism to make it work::" msgstr "" -#: library/pdb.rst:576 +#: library/pdb.rst:581 msgid "" "> example.py(3)()\n" "-> pass\n" @@ -793,13 +797,13 @@ msgid "" "(Pdb)" msgstr "" -#: library/pdb.rst:593 +#: library/pdb.rst:598 msgid "" "Do not display *expression* anymore in the current frame. Without " "*expression*, clear all display expressions for the current frame." msgstr "" -#: library/pdb.rst:600 +#: library/pdb.rst:605 msgid "" "Start an interactive interpreter (using the :mod:`code` module) in a new " "global namespace initialised from the local and global namespaces for the " @@ -807,7 +811,7 @@ msgid "" "return to the debugger." msgstr "" -#: library/pdb.rst:607 +#: library/pdb.rst:612 msgid "" "As ``interact`` creates a new dedicated namespace for code execution, " "assignments to variables will not affect the original namespaces. However, " @@ -815,18 +819,18 @@ msgid "" "original namespaces as usual." msgstr "" -#: library/pdb.rst:614 +#: library/pdb.rst:619 msgid "" "``exit()`` and ``quit()`` can be used to exit the :pdbcmd:`interact` command." msgstr "" -#: library/pdb.rst:618 +#: library/pdb.rst:623 msgid "" ":pdbcmd:`interact` directs its output to the debugger's output channel " "rather than :data:`sys.stderr`." msgstr "" -#: library/pdb.rst:626 +#: library/pdb.rst:631 msgid "" "Create an alias called *name* that executes *command*. The *command* must " "*not* be enclosed in quotes. Replaceable parameters can be indicated by " @@ -835,7 +839,7 @@ msgid "" "If no arguments are given, all aliases are listed." msgstr "" -#: library/pdb.rst:632 +#: library/pdb.rst:637 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 " @@ -844,13 +848,13 @@ msgid "" "other words in the line are left alone." msgstr "" -#: library/pdb.rst:638 +#: library/pdb.rst:643 msgid "" "As an example, here are two useful aliases (especially when placed in the :" "file:`.pdbrc` file)::" msgstr "" -#: library/pdb.rst:641 +#: library/pdb.rst:646 msgid "" "# Print instance variables (usage \"pi classInst\")\n" "alias pi for k in %1.__dict__.keys(): print(f\"%1.{k} = {%1.__dict__[k]}\")\n" @@ -858,36 +862,36 @@ msgid "" "alias ps pi self" msgstr "" -#: library/pdb.rst:648 +#: library/pdb.rst:653 msgid "Delete the specified alias *name*." msgstr "" -#: library/pdb.rst:652 +#: library/pdb.rst:657 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:656 +#: library/pdb.rst:661 msgid "" "(Pdb) ! n=42\n" "(Pdb)" msgstr "" -#: library/pdb.rst:661 +#: library/pdb.rst:666 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:664 +#: library/pdb.rst:669 msgid "" "(Pdb) global list_options; list_options = ['-l']\n" "(Pdb)" msgstr "" -#: library/pdb.rst:672 +#: library/pdb.rst:677 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`. " @@ -895,25 +899,25 @@ msgid "" "`restart` is an alias for :pdbcmd:`run`." msgstr "" -#: library/pdb.rst:679 +#: library/pdb.rst:684 msgid "Quit from the debugger. The program being executed is aborted." msgstr "" -#: library/pdb.rst:683 +#: library/pdb.rst:688 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:689 +#: library/pdb.rst:694 msgid "Print the return value for the last return of the current function." msgstr "" -#: library/pdb.rst:693 +#: library/pdb.rst:698 msgid "List or jump between chained exceptions." msgstr "" -#: library/pdb.rst:695 +#: library/pdb.rst:700 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 " @@ -921,7 +925,7 @@ msgid "" "``exceptions `` to switch to that exception." msgstr "" -#: library/pdb.rst:703 +#: library/pdb.rst:708 msgid "" "def out():\n" " try:\n" @@ -941,11 +945,11 @@ msgid "" " out()" msgstr "" -#: library/pdb.rst:720 +#: library/pdb.rst:725 msgid "calling ``pdb.pm()`` will allow to move between exceptions::" msgstr "" -#: library/pdb.rst:722 +#: library/pdb.rst:727 msgid "" "> example.py(5)out()\n" "-> raise ValueError(\"reraise middle() error\") from e\n" @@ -964,11 +968,11 @@ msgid "" "-> return inner(0)" msgstr "" -#: library/pdb.rst:741 +#: library/pdb.rst:746 msgid "Footnotes" msgstr "" -#: library/pdb.rst:742 +#: library/pdb.rst:747 msgid "" "Whether a frame is considered to originate in a certain module is determined " "by the ``__name__`` in the frame globals." @@ -994,18 +998,18 @@ msgstr "" msgid "cmd" msgstr "" -#: library/pdb.rst:306 +#: library/pdb.rst:311 msgid ".pdbrc" msgstr "" -#: library/pdb.rst:306 +#: library/pdb.rst:311 msgid "file" msgstr "" -#: library/pdb.rst:306 +#: library/pdb.rst:311 msgid "debugger" msgstr "" -#: library/pdb.rst:306 +#: library/pdb.rst:311 msgid "configuration" msgstr "" diff --git a/library/persistence.po b/library/persistence.po index a2690d26..666c9dde 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 7e381be3..b5b323a0 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -978,10 +978,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:725 diff --git a/library/pickletools.po b/library/pickletools.po index 76e71e0f..54df1e6c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 e587272f..4011b111 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 db471e95..49a706ae 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -143,9 +143,10 @@ msgstr "" #: library/pkgutil.rst:112 msgid "" -"If fullname contains a ``'.'``, the finders will be for the package " -"containing fullname, otherwise they will be all registered top level finders " -"(i.e. those on both :data:`sys.meta_path` and :data:`sys.path_hooks`)." +"If *fullname* contains a ``'.'``, the finders will be for the package " +"containing *fullname*, otherwise they will be all registered top level " +"finders (i.e. those on both :data:`sys.meta_path` and :data:`sys." +"path_hooks`)." msgstr "" #: library/pkgutil.rst:116 diff --git a/library/platform.po b/library/platform.po index 764c8684..250057b8 100644 --- a/library/platform.po +++ b/library/platform.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: 2025-05-05 21:41+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" @@ -111,7 +111,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 +128,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 +136,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 +145,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 +157,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 +165,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 +174,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 +189,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 +197,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 +217,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'``." -#: 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 +238,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 +255,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 +263,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 +272,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 " @@ -275,7 +283,7 @@ msgstr "" "λάβετε το όνομα του πυρήνα (``'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 +293,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 +301,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,7 +310,7 @@ 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`, :" @@ -312,41 +320,41 @@ msgstr "" "που περιέχει έξι ιδιότητες: :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`." +"`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 "Java platform" msgstr "Πλατφόρμα Java" -#: library/platform.rst:197 +#: library/platform.rst:199 msgid "Version interface for Jython." msgstr "Διεπαφή έκδοσης για Jython." -#: library/platform.rst:199 +#: library/platform.rst:201 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 +367,7 @@ msgstr "" "μπορούν να προσδιοριστούν ορίζονται στα προεπιλεγμένα που δίνονται ως " "παράμετροι (τα οποία προεπιλεγμένα είναι όλα ``''``)." -#: library/platform.rst:204 +#: library/platform.rst:206 msgid "" "It was largely untested, had a confusing API, and was only useful for Jython " "support." @@ -367,11 +375,11 @@ msgstr "" "Ήταν σε μεγάλο βαθμό ακατάλληλο για δοκιμές, είχε μια μπερδεμένη διεπαφή API " "και ήταν χρήσιμο μόνο για την υποστήριξη του Jython." -#: library/platform.rst:210 +#: library/platform.rst:212 msgid "Windows platform" msgstr "Πλατφόρμα Windows" -#: library/platform.rst:215 +#: library/platform.rst:217 msgid "" "Get additional version information from the Windows Registry and return a " "tuple ``(release, version, csd, ptype)`` referring to OS release, version " @@ -387,7 +395,7 @@ msgstr "" "προεπιλεγμένα που δίνονται ως παράμετροι (όλα προεπιλέγονται σε κενές " "συμβολοσειρές)." -#: library/platform.rst:221 +#: library/platform.rst:223 msgid "" "As a hint: *ptype* is ``'Uniprocessor Free'`` on single processor NT " "machines and ``'Multiprocessor Free'`` on multi processor machines. The " @@ -403,7 +411,7 @@ msgstr "" "χρησιμοποιεί κώδικα αποσφαλμάτωσης, δηλαδή κώδικα που ελέγχει ορίσματα, εύρη " "κ.λπ." -#: library/platform.rst:229 +#: library/platform.rst:231 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,7 +423,7 @@ msgstr "" "αλλά δεν περιορίζονται σε ``'Enterprise'``, ``'IoTUAP'``, " "``'ServerStandard'`` και ``'nanoserver'``." -#: library/platform.rst:237 +#: library/platform.rst:239 msgid "" "Return ``True`` if the Windows edition returned by :func:`win32_edition` is " "recognized as an IoT edition." @@ -423,11 +431,11 @@ msgstr "" "Επιστρέφει ``True`` αν η έκδοση των Windows που επιστρέφεται από την :func:" "`win32_edition` αναγνωρίζεται ως έκδοση IoT." -#: library/platform.rst:244 +#: library/platform.rst:246 msgid "macOS platform" msgstr "Πλατφόρμα macOS" -#: library/platform.rst:248 +#: library/platform.rst:250 msgid "" "Get macOS version information and return it as tuple ``(release, " "versioninfo, machine)`` with *versioninfo* being a tuple ``(version, " @@ -437,7 +445,7 @@ msgstr "" "versioninfo, machine)`` όπου το *versioninfo* είναι μια πλειάδα ``(version, " "dev_stage, non_release_version)``." -#: library/platform.rst:252 +#: library/platform.rst:254 msgid "" "Entries which cannot be determined are set to ``''``. All tuple entries are " "strings." @@ -445,11 +453,11 @@ msgstr "" "Οι τιμές που δεν μπορούν να προσδιοριστούν ορίζονται ως ``''``. Όλα τα " "στοιχεία της πλειάδας είναι συμβολοσειρές." -#: library/platform.rst:256 +#: library/platform.rst:258 msgid "iOS platform" msgstr "Πλατφόρμα iOS" -#: library/platform.rst:260 +#: library/platform.rst:262 msgid "" "Get iOS version information and return it as a :func:`~collections." "namedtuple` with the following attributes:" @@ -457,19 +465,19 @@ msgstr "" "Λάβετε πληροφορίες για την έκδοση του iOS και επιστρέψτε τις ως μια :func:" "`~collections.namedtuple` με τα εξής χαρακτηριστικά:" -#: library/platform.rst:263 +#: library/platform.rst:265 msgid "``system`` is the OS name; either ``'iOS'`` or ``'iPadOS'``." msgstr "" "``system`` είναι το όνομα του λειτουργικού συστήματος; είτε ``'iOS'`` ή " "``'iPadOS'``." -#: library/platform.rst:264 +#: library/platform.rst:266 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:267 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 +486,7 @@ msgstr "" "είναι μια συμβολοσειρά όπως ``'iPhone13,2'`` για μια φυσική συσκευή, ή " "``'iPhone'`` για έναν εξομοιωτή." -#: library/platform.rst:267 +#: library/platform.rst:269 msgid "" "``is_simulator`` is a boolean describing if the app is running on a " "simulator or a physical device." @@ -486,7 +494,7 @@ msgstr "" "Το ``is_simulator`` είναι μια δυαδική τιμή που περιγράφει αν η εφαρμογή " "εκτελείται σε εξομοιωτή ή σε φυσική συσκευή." -#: library/platform.rst:270 +#: library/platform.rst:272 msgid "" "Entries which cannot be determined are set to the defaults given as " "parameters." @@ -494,11 +502,11 @@ msgstr "" "Οι καταχωρήσεις που δεν μπορούν να προσδιοριστούν ορίζονται στις " "προεπιλεγμένες τιμές που δίνονται ως παράμετροι." -#: library/platform.rst:275 +#: library/platform.rst:277 msgid "Unix platforms" msgstr "Πλατφόρμες Unix" -#: library/platform.rst:279 +#: library/platform.rst:281 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 +518,7 @@ msgstr "" "μια πλειάδα συμβολοσειρών ``(lib, version)``, η οποία ορίζεται στις δοθείσες " "παραμέτρους σε περίπτωση αποτυχίας της αναζήτησης." -#: library/platform.rst:283 +#: library/platform.rst:285 msgid "" "Note that this function has intimate knowledge of how different libc " "versions add symbols to the executable is probably only usable for " @@ -521,16 +529,16 @@ msgstr "" "μπορεί να χρησιμοποιηθεί μόνο για εκτελέσιμα που έχουν μεταγλωττιστεί με το :" "program:`gcc`." -#: library/platform.rst:287 +#: library/platform.rst:289 msgid "The file is read and scanned in chunks of *chunksize* bytes." msgstr "" "Το αρχείο διαβάζεται και σαρώνονται τμήματά του μεγέθους *chunksize* bytes." -#: library/platform.rst:291 +#: library/platform.rst:293 msgid "Linux platforms" msgstr "Πλατφόρμες Linux" -#: library/platform.rst:295 +#: library/platform.rst:297 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 +646,7 @@ msgstr "" "``manufacturer`` - `Το όνομα του κατασκευαστή `__." -#: library/platform.rst:347 +#: library/platform.rst:349 msgid "" "``model`` - `Model name `__ – typically the marketing name or model number." @@ -646,7 +654,7 @@ msgstr "" "``model`` - `Το όνομα του μοντέλου `__ – συνήθως το εμπορικό όνομα ή ο αριθμός μοντέλου." -#: library/platform.rst:351 +#: library/platform.rst:353 msgid "" "``device`` - `Device name `__ – typically the model number or a codename." @@ -654,7 +662,7 @@ msgstr "" "``device`` - `Το όνομα της συσκευής `__ – συνήθως ο αριθμός μοντέλου ή ένα κωδικό όνομα." -#: library/platform.rst:355 +#: library/platform.rst:357 msgid "" "``is_emulator`` - ``True`` if the device is an emulator; ``False`` if it's a " "physical device." @@ -662,7 +670,7 @@ msgstr "" "``is_emulator`` - ``True`` αν η συσκευή είναι εξομοιωτής; ``False`` αν είναι " "φυσική συσκευή." -#: library/platform.rst:358 +#: library/platform.rst:360 msgid "" "Google maintains a `list of known model and device names `__." @@ -670,11 +678,11 @@ msgstr "" "Η Google διατηρεί μια `λίστα με γνωστά ονόματα μοντέλων συσκευών `__." -#: library/platform.rst:366 +#: library/platform.rst:368 msgid "Command-line usage" msgstr "Χρήση από γραμμή εντολών" -#: library/platform.rst:368 +#: library/platform.rst:370 msgid "" ":mod:`platform` can also be invoked directly using the :option:`-m` switch " "of the interpreter::" @@ -682,15 +690,15 @@ msgstr "" "Το :mod:`platform` μπορεί επίσης να κληθεί απευθείας χρησιμοποιώντας την " "επιλογή :option:`-m` του διερμηνέα::" -#: library/platform.rst:371 +#: library/platform.rst:373 msgid "python -m platform [--terse] [--nonaliased] [{nonaliased,terse} ...]" msgstr "python -m platform [--terse] [--nonaliased] [{nonaliased,terse} ...]" -#: library/platform.rst:373 +#: library/platform.rst:375 msgid "The following options are accepted:" msgstr "Οι εξής επιλογές γίνονται αποδεκτές:" -#: library/platform.rst:379 +#: library/platform.rst:381 msgid "" "Print terse information about the platform. This is equivalent to calling :" "func:`platform.platform` with the *terse* argument set to ``True``." @@ -699,7 +707,7 @@ msgstr "" "την κλήση :func:`platform.platform` με το όρισμα *terse* ορισμένο σε " "``True``." -#: library/platform.rst:384 +#: library/platform.rst:386 msgid "" "Print platform information without system/OS name aliasing. This is " "equivalent to calling :func:`platform.platform` with the *aliased* argument " @@ -709,7 +717,7 @@ msgstr "" "του συστήματος/ λειτουργικού. Αυτό είναι ισοδύναμο με την κλήση της :func:" "`platform.platform` με το όρισμα *aliased* ορισμένο σε ``True``." -#: library/platform.rst:388 +#: library/platform.rst:390 msgid "" "You can also pass one or more positional arguments (``terse``, " "``nonaliased``) to explicitly control the output format. These behave " diff --git a/library/plistlib.po b/library/plistlib.po index f5f62565..cb99f1b0 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 5b17208b..80823787 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b33a3900..bfea1a0e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 5cef49c5..bf57dbbd 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 853fbe93..0c0f56d3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 35da2c4d..4861e333 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 2503a937..6de230ef 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 d7499da3..5fddec35 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 27fc1d2d..17a30fc2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1c0e91dc..da584469 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 dcc1f25c..95daeee9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,205 +820,205 @@ 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:945 +#: library/pyexpat.rst:1009 msgid "Footnotes" msgstr "" -#: library/pyexpat.rst:946 +#: library/pyexpat.rst:1010 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://" @@ -944,14 +1026,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 4788875e..1dd96b9d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 f471144e..d135e9a8 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 5bdb124c..c15b04a2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 e48fdb8e..a4a97bd7 100644 --- a/library/random.po +++ b/library/random.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -586,7 +586,13 @@ msgid "" "getrandbits` behaviour of :class:`!Random` instances." msgstr "" -#: 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 "" + +#: 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 " @@ -596,11 +602,11 @@ msgid "" "`NotImplementedError` if called." msgstr "" -#: 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 " @@ -608,33 +614,33 @@ msgid "" "running." msgstr "" -#: 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:" msgstr "" -#: library/random.rst:471 +#: library/random.rst:476 msgid "" "If a new seeding method is added, then a backward compatible seeder will be " "offered." 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." msgstr "" -#: 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" @@ -666,11 +672,11 @@ msgid "" "[40, 10, 50, 30]" msgstr "" -#: 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" @@ -696,14 +702,14 @@ msgid "" "0.7958" msgstr "" -#: library/random.rst:535 +#: library/random.rst:540 msgid "" "Example of `statistical bootstrapping `_ using resampling with replacement to estimate " "a confidence interval for the mean of a sample::" msgstr "" -#: 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" @@ -715,7 +721,7 @@ msgid "" " f'interval from {means[5]:.1f} to {means[94]:.1f}')" msgstr "" -#: library/random.rst:548 +#: library/random.rst:553 msgid "" "Example of a `resampling permutation test `_ to determine the statistical " @@ -723,7 +729,7 @@ msgid "" "observed difference between the effects of a drug versus a placebo::" 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" @@ -751,12 +757,12 @@ msgid "" "placebo.')" msgstr "" -#: 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" @@ -785,7 +791,7 @@ msgid "" "print('Quartiles:', [round(q, 1) for q in quantiles(waits)])" msgstr "" -#: 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 " @@ -810,17 +816,17 @@ msgid "" "how to write simulations, and how to perform data analysis using Python." msgstr "" -#: 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:" msgstr "" -#: library/random.rst:630 +#: library/random.rst:635 msgid "" "def random_product(*args, repeat=1):\n" " \"Random selection from itertools.product(*args, **kwds)\"\n" @@ -851,7 +857,7 @@ msgid "" " return tuple(pool[i] for i in indices)" msgstr "" -#: 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 " @@ -860,7 +866,7 @@ msgid "" "integer multiple of 2⁻⁵³." msgstr "" -#: 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 " @@ -869,7 +875,7 @@ msgid "" "often as the next larger exponent." msgstr "" -#: library/random.rst:673 +#: library/random.rst:678 msgid "" "from random import Random\n" "from math import ldexp\n" @@ -886,13 +892,13 @@ msgid "" " return ldexp(mantissa, exponent)" msgstr "" -#: library/random.rst:687 +#: library/random.rst:692 msgid "" "All :ref:`real valued distributions ` in the " "class will use the new method::" msgstr "" -#: library/random.rst:690 +#: library/random.rst:695 msgid "" ">>> fr = FullRandom()\n" ">>> fr.random()\n" @@ -901,7 +907,7 @@ msgid "" "8.87925541791544" msgstr "" -#: 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 " @@ -910,7 +916,7 @@ msgid "" "and is equal to ``math.ulp(0.0)``.)" msgstr "" -#: library/random.rst:705 +#: library/random.rst:710 msgid "" "`Generating Pseudo-random Floating-Point Values `_ a paper by Allen B. Downey describing " @@ -918,67 +924,67 @@ msgid "" "random`." msgstr "" -#: 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 "" -#: library/random.rst:719 +#: library/random.rst:724 msgid "" "python -m random [-h] [-c CHOICE [CHOICE ...] | -i N | -f N] [input ...]" msgstr "" -#: 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 "" -#: library/random.rst:739 +#: library/random.rst:744 msgid "" "Print a random integer between 1 and N inclusive, using :meth:`randint`." msgstr "" -#: library/random.rst:744 +#: library/random.rst:749 msgid "" "Print a random floating-point number between 0 and N inclusive, using :meth:" "`uniform`." msgstr "" -#: 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 "" -#: library/random.rst:750 +#: library/random.rst:755 msgid "Integer: same as :option:`--integer`." msgstr "" -#: library/random.rst:751 +#: library/random.rst:756 msgid "Float: same as :option:`--float`." msgstr "" -#: 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 "" -#: 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 13e57251..51e64d91 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 @@ msgstr "" msgid "The special characters are:" msgstr "" -#: library/re.rst:1658 +#: library/re.rst:1660 msgid "``.``" msgstr "" @@ -1209,7 +1209,7 @@ msgid "" msgstr "" #: library/re.rst:928 library/re.rst:957 library/re.rst:1037 -#: library/re.rst:1111 library/re.rst:1147 +#: library/re.rst:1114 library/re.rst:1149 msgid "" "The expression's behaviour can be modified by specifying a *flags* value. " "Values can be any of the `flags`_ variables, combined using bitwise OR (the " @@ -1327,8 +1327,8 @@ msgstr "" #: library/re.rst:991 msgid "" -"Empty matches for the pattern split the string only when not adjacent to a " -"previous empty match." +"Adjacent empty matches are not possible, but an empty match can occur " +"immediately after a non-empty match." msgstr "" #: library/re.rst:994 @@ -1342,7 +1342,7 @@ msgid "" "'']" msgstr "" -#: library/re.rst:1115 +#: library/re.rst:1118 msgid "Added the optional flags argument." msgstr "" @@ -1437,12 +1437,17 @@ msgstr "" msgid "" "The optional argument *count* is the maximum number of pattern occurrences " "to be replaced; *count* must be a non-negative integer. If omitted or zero, " -"all occurrences will be replaced. Empty matches for the pattern are replaced " -"only when not adjacent to a previous empty match, so ``sub('x*', '-', " -"'abxd')`` returns ``'-a-b--d-'``." +"all occurrences will be replaced." msgstr "" -#: library/re.rst:1101 +#: library/re.rst:1097 +msgid "" +"Adjacent empty matches are not possible, but an empty match can occur " +"immediately after a non-empty match. As a result, ``sub('x*', '-', 'abxd')`` " +"returns ``'-a-b--d-'`` instead of ``'-a-b-d-'``." +msgstr "" + +#: library/re.rst:1104 msgid "" "In string-type *repl* arguments, in addition to the character escapes and " "backreferences described above, ``\\g`` will use the substring matched " @@ -1455,51 +1460,50 @@ msgid "" "RE." msgstr "" -#: library/re.rst:1396 +#: library/re.rst:1398 msgid "Unmatched groups are replaced with an empty string." msgstr "" -#: library/re.rst:1121 +#: library/re.rst:1124 msgid "" "Unknown escapes in *pattern* consisting of ``'\\'`` and an ASCII letter now " "are errors." msgstr "" -#: library/re.rst:1125 +#: library/re.rst:1128 msgid "" "Unknown escapes in *repl* consisting of ``'\\'`` and an ASCII letter now are " -"errors. Empty matches for the pattern are replaced when adjacent to a " -"previous non-empty match." +"errors. An empty match can occur immediately after a non-empty match." msgstr "" -#: library/re.rst:1131 +#: library/re.rst:1133 msgid "" "Group *id* can only contain ASCII digits. In :class:`bytes` replacement " "strings, group *name* can only contain bytes in the ASCII range " "(``b'\\x00'``-``b'\\x7f'``)." msgstr "" -#: library/re.rst:1136 +#: library/re.rst:1138 msgid "" "Passing *count* and *flags* as positional arguments is deprecated. In future " "Python versions they will be :ref:`keyword-only parameters `." msgstr "" -#: library/re.rst:1144 +#: library/re.rst:1146 msgid "" "Perform the same operation as :func:`sub`, but return a tuple ``(new_string, " "number_of_subs_made)``." msgstr "" -#: library/re.rst:1154 +#: library/re.rst:1156 msgid "" "Escape special characters in *pattern*. This is useful if you want to match " "an arbitrary literal string that may have regular expression metacharacters " "in it. For example::" msgstr "" -#: library/re.rst:1158 +#: library/re.rst:1160 msgid "" ">>> print(re.escape('https://www.python.org'))\n" "https://www\\.python\\.org\n" @@ -1514,13 +1518,13 @@ msgid "" "/|\\-|\\+|\\*\\*|\\*" msgstr "" -#: library/re.rst:1169 +#: library/re.rst:1171 msgid "" "This function must not be used for the replacement string in :func:`sub` " "and :func:`subn`, only backslashes should be escaped. For example::" msgstr "" -#: library/re.rst:1172 +#: library/re.rst:1174 msgid "" ">>> digits_re = r'\\d+'\n" ">>> sample = '/usr/sbin/sendmail - 0 errors, 12 warnings'\n" @@ -1528,11 +1532,11 @@ msgid "" "/usr/sbin/sendmail - \\d+ errors, \\d+ warnings" msgstr "" -#: library/re.rst:1177 +#: library/re.rst:1179 msgid "The ``'_'`` character is no longer escaped." msgstr "" -#: library/re.rst:1180 +#: library/re.rst:1182 msgid "" "Only characters that can have special meaning in a regular expression are " "escaped. As a result, ``'!'``, ``'\"'``, ``'%'``, ``\"'\"``, ``','``, " @@ -1540,15 +1544,15 @@ msgid "" "are no longer escaped." msgstr "" -#: library/re.rst:1189 +#: library/re.rst:1191 msgid "Clear the regular expression cache." msgstr "" -#: library/re.rst:1193 +#: library/re.rst:1195 msgid "Exceptions" msgstr "" -#: library/re.rst:1197 +#: library/re.rst:1199 msgid "" "Exception raised when a string passed to one of the functions here is not a " "valid regular expression (for example, it might contain unmatched " @@ -1558,51 +1562,51 @@ msgid "" "attributes:" msgstr "" -#: library/re.rst:1205 +#: library/re.rst:1207 msgid "The unformatted error message." msgstr "" -#: library/re.rst:1209 +#: library/re.rst:1211 msgid "The regular expression pattern." msgstr "" -#: library/re.rst:1213 +#: library/re.rst:1215 msgid "The index in *pattern* where compilation failed (may be ``None``)." msgstr "" -#: library/re.rst:1217 +#: library/re.rst:1219 msgid "The line corresponding to *pos* (may be ``None``)." msgstr "" -#: library/re.rst:1221 +#: library/re.rst:1223 msgid "The column corresponding to *pos* (may be ``None``)." msgstr "" -#: library/re.rst:1223 +#: library/re.rst:1225 msgid "Added additional attributes." msgstr "" -#: library/re.rst:1226 +#: library/re.rst:1228 msgid "" "``PatternError`` was originally named ``error``; the latter is kept as an " "alias for backward compatibility." msgstr "" -#: library/re.rst:1233 +#: library/re.rst:1235 msgid "Regular Expression Objects" msgstr "" -#: library/re.rst:1237 +#: library/re.rst:1239 msgid "Compiled regular expression object returned by :func:`re.compile`." msgstr "" -#: library/re.rst:1239 +#: library/re.rst:1241 msgid "" ":py:class:`re.Pattern` supports ``[]`` to indicate a Unicode (str) or bytes " "pattern. See :ref:`types-genericalias`." msgstr "" -#: library/re.rst:1245 +#: library/re.rst:1247 msgid "" "Scan through *string* looking for the first location where this regular " "expression produces a match, and return a corresponding :class:`~re.Match`. " @@ -1611,7 +1615,7 @@ msgid "" "string." msgstr "" -#: library/re.rst:1250 +#: library/re.rst:1252 msgid "" "The optional second parameter *pos* gives an index in the string where the " "search is to start; it defaults to ``0``. This is not completely equivalent " @@ -1620,7 +1624,7 @@ msgid "" "necessarily at the index where the search is to start." msgstr "" -#: library/re.rst:1256 +#: library/re.rst:1258 msgid "" "The optional parameter *endpos* limits how far the string will be searched; " "it will be as if the string is *endpos* characters long, so only the " @@ -1630,7 +1634,7 @@ msgid "" "equivalent to ``rx.search(string[:50], 0)``. ::" msgstr "" -#: library/re.rst:1263 +#: library/re.rst:1265 msgid "" ">>> pattern = re.compile(\"d\")\n" ">>> pattern.search(\"dog\") # Match at index 0\n" @@ -1638,7 +1642,7 @@ msgid "" ">>> pattern.search(\"dog\", 1) # No match; search doesn't include the \"d\"" msgstr "" -#: library/re.rst:1271 +#: library/re.rst:1273 msgid "" "If zero or more characters at the *beginning* of *string* match this regular " "expression, return a corresponding :class:`~re.Match`. Return ``None`` if " @@ -1646,13 +1650,13 @@ msgid "" "zero-length match." msgstr "" -#: library/re.rst:1294 +#: library/re.rst:1296 msgid "" "The optional *pos* and *endpos* parameters have the same meaning as for the :" "meth:`~Pattern.search` method. ::" msgstr "" -#: library/re.rst:1279 +#: library/re.rst:1281 msgid "" ">>> pattern = re.compile(\"o\")\n" ">>> pattern.match(\"dog\") # No match as \"o\" is not at the start of " @@ -1662,20 +1666,20 @@ msgid "" "" msgstr "" -#: library/re.rst:1284 +#: library/re.rst:1286 msgid "" "If you want to locate a match anywhere in *string*, use :meth:`~Pattern." "search` instead (see also :ref:`search-vs-match`)." msgstr "" -#: library/re.rst:1290 +#: library/re.rst:1292 msgid "" "If the whole *string* matches this regular expression, return a " "corresponding :class:`~re.Match`. Return ``None`` if the string does not " "match the pattern; note that this is different from a zero-length match." msgstr "" -#: library/re.rst:1297 +#: library/re.rst:1299 msgid "" ">>> pattern = re.compile(\"o[gh]\")\n" ">>> pattern.fullmatch(\"dog\") # No match as \"o\" is not at the start " @@ -1686,89 +1690,89 @@ msgid "" "" msgstr "" -#: library/re.rst:1308 +#: library/re.rst:1310 msgid "Identical to the :func:`split` function, using the compiled pattern." msgstr "" -#: library/re.rst:1313 +#: library/re.rst:1315 msgid "" "Similar to the :func:`findall` function, using the compiled pattern, but " "also accepts optional *pos* and *endpos* parameters that limit the search " "region like for :meth:`search`." msgstr "" -#: library/re.rst:1320 +#: library/re.rst:1322 msgid "" "Similar to the :func:`finditer` function, using the compiled pattern, but " "also accepts optional *pos* and *endpos* parameters that limit the search " "region like for :meth:`search`." msgstr "" -#: library/re.rst:1327 +#: library/re.rst:1329 msgid "Identical to the :func:`sub` function, using the compiled pattern." msgstr "" -#: library/re.rst:1332 +#: library/re.rst:1334 msgid "Identical to the :func:`subn` function, using the compiled pattern." msgstr "" -#: library/re.rst:1337 +#: library/re.rst:1339 msgid "" "The regex matching flags. This is a combination of the flags given to :func:" "`.compile`, any ``(?...)`` inline flags in the pattern, and implicit flags " "such as :py:const:`~re.UNICODE` if the pattern is a Unicode string." msgstr "" -#: library/re.rst:1344 +#: library/re.rst:1346 msgid "The number of capturing groups in the pattern." msgstr "" -#: library/re.rst:1349 +#: library/re.rst:1351 msgid "" "A dictionary mapping any symbolic group names defined by ``(?P)`` to " "group numbers. The dictionary is empty if no symbolic groups were used in " "the pattern." msgstr "" -#: library/re.rst:1356 +#: library/re.rst:1358 msgid "The pattern string from which the pattern object was compiled." msgstr "" -#: library/re.rst:1359 +#: library/re.rst:1361 msgid "" "Added support of :func:`copy.copy` and :func:`copy.deepcopy`. Compiled " "regular expression objects are considered atomic." msgstr "" -#: library/re.rst:1367 +#: library/re.rst:1369 msgid "Match Objects" msgstr "" -#: library/re.rst:1369 +#: library/re.rst:1371 msgid "" "Match objects always have a boolean value of ``True``. Since :meth:`~Pattern." "match` and :meth:`~Pattern.search` return ``None`` when there is no match, " "you can test whether there was a match with a simple ``if`` statement::" msgstr "" -#: library/re.rst:1374 +#: library/re.rst:1376 msgid "" "match = re.search(pattern, string)\n" "if match:\n" " process(match)" msgstr "" -#: library/re.rst:1380 +#: library/re.rst:1382 msgid "Match object returned by successful ``match``\\ es and ``search``\\ es." msgstr "" -#: library/re.rst:1382 +#: library/re.rst:1384 msgid "" ":py:class:`re.Match` supports ``[]`` to indicate a Unicode (str) or bytes " "match. See :ref:`types-genericalias`." msgstr "" -#: library/re.rst:1388 +#: library/re.rst:1390 msgid "" "Return the string obtained by doing backslash substitution on the template " "string *template*, as done by the :meth:`~Pattern.sub` method. Escapes such " @@ -1778,7 +1782,7 @@ msgid "" "backreference ``\\g<0>`` will be replaced by the entire match." msgstr "" -#: library/re.rst:1401 +#: library/re.rst:1403 msgid "" "Returns one or more subgroups of the match. If there is a single argument, " "the result is a single string; if there are multiple arguments, the result " @@ -1793,7 +1797,7 @@ msgid "" "the pattern that matched multiple times, the last match is returned. ::" msgstr "" -#: library/re.rst:1413 +#: library/re.rst:1415 msgid "" ">>> m = re.match(r\"(\\w+) (\\w+)\", \"Isaac Newton, physicist\")\n" ">>> m.group(0) # The entire match\n" @@ -1806,7 +1810,7 @@ msgid "" "('Isaac', 'Newton')" msgstr "" -#: library/re.rst:1423 +#: library/re.rst:1425 msgid "" "If the regular expression uses the ``(?P...)`` syntax, the *groupN* " "arguments may also be strings identifying groups by their group name. If a " @@ -1814,11 +1818,11 @@ msgid "" "`IndexError` exception is raised." msgstr "" -#: library/re.rst:1428 +#: library/re.rst:1430 msgid "A moderately complicated example::" msgstr "" -#: library/re.rst:1430 +#: library/re.rst:1432 msgid "" ">>> m = re.match(r\"(?P\\w+) (?P\\w+)\", \"Malcolm " "Reynolds\")\n" @@ -1828,11 +1832,11 @@ msgid "" "'Reynolds'" msgstr "" -#: library/re.rst:1436 +#: library/re.rst:1438 msgid "Named groups can also be referred to by their index::" msgstr "" -#: library/re.rst:1438 +#: library/re.rst:1440 msgid "" ">>> m.group(1)\n" "'Malcolm'\n" @@ -1840,24 +1844,24 @@ msgid "" "'Reynolds'" msgstr "" -#: library/re.rst:1443 +#: library/re.rst:1445 msgid "If a group matches multiple times, only the last match is accessible::" msgstr "" -#: library/re.rst:1445 +#: library/re.rst:1447 msgid "" ">>> m = re.match(r\"(..)+\", \"a1b2c3\") # Matches 3 times.\n" ">>> m.group(1) # Returns only the last match.\n" "'c3'" msgstr "" -#: library/re.rst:1452 +#: library/re.rst:1454 msgid "" "This is identical to ``m.group(g)``. This allows easier access to an " "individual group from a match::" msgstr "" -#: library/re.rst:1455 +#: library/re.rst:1457 msgid "" ">>> m = re.match(r\"(\\w+) (\\w+)\", \"Isaac Newton, physicist\")\n" ">>> m[0] # The entire match\n" @@ -1868,11 +1872,11 @@ msgid "" "'Newton'" msgstr "" -#: library/re.rst:1463 +#: library/re.rst:1465 msgid "Named groups are supported as well::" msgstr "" -#: library/re.rst:1465 +#: library/re.rst:1467 msgid "" ">>> m = re.match(r\"(?P\\w+) (?P\\w+)\", \"Isaac " "Newton\")\n" @@ -1882,32 +1886,32 @@ msgid "" "'Newton'" msgstr "" -#: library/re.rst:1476 +#: library/re.rst:1478 msgid "" "Return a tuple containing all the subgroups of the match, from 1 up to " "however many groups are in the pattern. The *default* argument is used for " "groups that did not participate in the match; it defaults to ``None``." msgstr "" -#: library/re.rst:1705 +#: library/re.rst:1707 msgid "For example::" msgstr "" -#: library/re.rst:1482 +#: library/re.rst:1484 msgid "" ">>> m = re.match(r\"(\\d+)\\.(\\d+)\", \"24.1632\")\n" ">>> m.groups()\n" "('24', '1632')" msgstr "" -#: library/re.rst:1486 +#: library/re.rst:1488 msgid "" "If we make the decimal place and everything after it optional, not all " "groups might participate in the match. These groups will default to " "``None`` unless the *default* argument is given::" msgstr "" -#: library/re.rst:1490 +#: library/re.rst:1492 msgid "" ">>> m = re.match(r\"(\\d+)\\.?(\\d+)?\", \"24\")\n" ">>> m.groups() # Second group defaults to None.\n" @@ -1916,14 +1920,14 @@ msgid "" "('24', '0')" msgstr "" -#: library/re.rst:1499 +#: library/re.rst:1501 msgid "" "Return a dictionary containing all the *named* subgroups of the match, keyed " "by the subgroup name. The *default* argument is used for groups that did " "not participate in the match; it defaults to ``None``. For example::" msgstr "" -#: library/re.rst:1503 +#: library/re.rst:1505 msgid "" ">>> m = re.match(r\"(?P\\w+) (?P\\w+)\", \"Malcolm " "Reynolds\")\n" @@ -1931,7 +1935,7 @@ msgid "" "{'first_name': 'Malcolm', 'last_name': 'Reynolds'}" msgstr "" -#: library/re.rst:1511 +#: library/re.rst:1513 msgid "" "Return the indices of the start and end of the substring matched by *group*; " "*group* defaults to zero (meaning the whole matched substring). Return " @@ -1940,11 +1944,11 @@ msgid "" "matched by group *g* (equivalent to ``m.group(g)``) is ::" msgstr "" -#: library/re.rst:1517 +#: library/re.rst:1519 msgid "m.string[m.start(g):m.end(g)]" msgstr "" -#: library/re.rst:1519 +#: library/re.rst:1521 msgid "" "Note that ``m.start(group)`` will equal ``m.end(group)`` if *group* matched " "a null string. For example, after ``m = re.search('b(c?)', 'cba')``, ``m." @@ -1952,11 +1956,11 @@ msgid "" "2, and ``m.start(2)`` raises an :exc:`IndexError` exception." msgstr "" -#: library/re.rst:1524 +#: library/re.rst:1526 msgid "An example that will remove *remove_this* from email addresses::" msgstr "" -#: library/re.rst:1526 +#: library/re.rst:1528 msgid "" ">>> email = \"tony@tiremove_thisger.net\"\n" ">>> m = re.search(\"remove_this\", email)\n" @@ -1964,28 +1968,28 @@ msgid "" "'tony@tiger.net'" msgstr "" -#: library/re.rst:1534 +#: library/re.rst:1536 msgid "" "For a match *m*, return the 2-tuple ``(m.start(group), m.end(group))``. Note " "that if *group* did not contribute to the match, this is ``(-1, -1)``. " "*group* defaults to zero, the entire match." msgstr "" -#: library/re.rst:1541 +#: library/re.rst:1543 msgid "" "The value of *pos* which was passed to the :meth:`~Pattern.search` or :meth:" "`~Pattern.match` method of a :ref:`regex object `. This is the " "index into the string at which the RE engine started looking for a match." msgstr "" -#: library/re.rst:1548 +#: library/re.rst:1550 msgid "" "The value of *endpos* which was passed to the :meth:`~Pattern.search` or :" "meth:`~Pattern.match` method of a :ref:`regex object `. This is " "the index into the string beyond which the RE engine will not go." msgstr "" -#: library/re.rst:1555 +#: library/re.rst:1557 msgid "" "The integer index of the last matched capturing group, or ``None`` if no " "group was matched at all. For example, the expressions ``(a)b``, ``((a)" @@ -1994,43 +1998,43 @@ msgid "" "applied to the same string." msgstr "" -#: library/re.rst:1564 +#: library/re.rst:1566 msgid "" "The name of the last matched capturing group, or ``None`` if the group " "didn't have a name, or if no group was matched at all." msgstr "" -#: library/re.rst:1570 +#: library/re.rst:1572 msgid "" "The :ref:`regular expression object ` whose :meth:`~Pattern." "match` or :meth:`~Pattern.search` method produced this match instance." msgstr "" -#: library/re.rst:1576 +#: library/re.rst:1578 msgid "The string passed to :meth:`~Pattern.match` or :meth:`~Pattern.search`." msgstr "" -#: library/re.rst:1579 +#: library/re.rst:1581 msgid "" "Added support of :func:`copy.copy` and :func:`copy.deepcopy`. Match objects " "are considered atomic." msgstr "" -#: library/re.rst:1587 +#: library/re.rst:1589 msgid "Regular Expression Examples" msgstr "" -#: library/re.rst:1591 +#: library/re.rst:1593 msgid "Checking for a Pair" msgstr "" -#: library/re.rst:1593 +#: library/re.rst:1595 msgid "" "In this example, we'll use the following helper function to display match " "objects a little more gracefully::" msgstr "" -#: library/re.rst:1596 +#: library/re.rst:1598 msgid "" "def displaymatch(match):\n" " if match is None:\n" @@ -2038,7 +2042,7 @@ msgid "" " return '' % (match.group(), match.groups())" msgstr "" -#: library/re.rst:1601 +#: library/re.rst:1603 msgid "" "Suppose you are writing a poker program where a player's hand is represented " "as a 5-character string with each character representing a card, \"a\" for " @@ -2046,11 +2050,11 @@ msgid "" "\"2\" through \"9\" representing the card with that value." msgstr "" -#: library/re.rst:1606 +#: library/re.rst:1608 msgid "To see if a given string is a valid hand, one could do the following::" msgstr "" -#: library/re.rst:1608 +#: library/re.rst:1610 msgid "" ">>> valid = re.compile(r\"^[a2-9tjqk]{5}$\")\n" ">>> displaymatch(valid.match(\"akt5q\")) # Valid.\n" @@ -2061,14 +2065,14 @@ msgid "" "\"\"" msgstr "" -#: library/re.rst:1616 +#: library/re.rst:1618 msgid "" "That last hand, ``\"727ak\"``, contained a pair, or two of the same valued " "cards. To match this with a regular expression, one could use backreferences " "as such::" msgstr "" -#: library/re.rst:1619 +#: library/re.rst:1621 msgid "" ">>> pair = re.compile(r\".*(.).*\\1\")\n" ">>> displaymatch(pair.match(\"717ak\")) # Pair of 7s.\n" @@ -2078,13 +2082,13 @@ msgid "" "\"\"" msgstr "" -#: library/re.rst:1626 +#: library/re.rst:1628 msgid "" "To find out what card the pair consists of, one could use the :meth:`~Match." "group` method of the match object in the following manner::" msgstr "" -#: library/re.rst:1629 +#: library/re.rst:1631 msgid "" ">>> pair = re.compile(r\".*(.).*\\1\")\n" ">>> pair.match(\"717ak\").group(1)\n" @@ -2102,11 +2106,11 @@ msgid "" "'a'" msgstr "" -#: library/re.rst:1645 +#: library/re.rst:1647 msgid "Simulating scanf()" msgstr "" -#: library/re.rst:1649 +#: library/re.rst:1651 msgid "" "Python does not currently have an equivalent to :c:func:`!scanf`. Regular " "expressions are generally more powerful, though also more verbose, than :c:" @@ -2115,130 +2119,130 @@ msgid "" "expressions." msgstr "" -#: library/re.rst:1656 +#: library/re.rst:1658 msgid ":c:func:`!scanf` Token" msgstr "" -#: library/re.rst:1656 +#: library/re.rst:1658 msgid "Regular Expression" msgstr "" -#: library/re.rst:1658 +#: library/re.rst:1660 msgid "``%c``" msgstr "" -#: library/re.rst:1660 +#: library/re.rst:1662 msgid "``%5c``" msgstr "" -#: library/re.rst:1660 +#: library/re.rst:1662 msgid "``.{5}``" msgstr "" -#: library/re.rst:1662 +#: library/re.rst:1664 msgid "``%d``" msgstr "" -#: library/re.rst:1662 +#: library/re.rst:1664 msgid "``[-+]?\\d+``" msgstr "" -#: library/re.rst:1664 +#: library/re.rst:1666 msgid "``%e``, ``%E``, ``%f``, ``%g``" msgstr "" -#: library/re.rst:1664 +#: library/re.rst:1666 msgid "``[-+]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?``" msgstr "" -#: library/re.rst:1666 +#: library/re.rst:1668 msgid "``%i``" msgstr "" -#: library/re.rst:1666 +#: library/re.rst:1668 msgid "``[-+]?(0[xX][\\dA-Fa-f]+|0[0-7]*|\\d+)``" msgstr "" -#: library/re.rst:1668 +#: library/re.rst:1670 msgid "``%o``" msgstr "" -#: library/re.rst:1668 +#: library/re.rst:1670 msgid "``[-+]?[0-7]+``" msgstr "" -#: library/re.rst:1670 +#: library/re.rst:1672 msgid "``%s``" msgstr "" -#: library/re.rst:1670 +#: library/re.rst:1672 msgid "``\\S+``" msgstr "" -#: library/re.rst:1672 +#: library/re.rst:1674 msgid "``%u``" msgstr "" -#: library/re.rst:1672 +#: library/re.rst:1674 msgid "``\\d+``" msgstr "" -#: library/re.rst:1674 +#: library/re.rst:1676 msgid "``%x``, ``%X``" msgstr "" -#: library/re.rst:1674 +#: library/re.rst:1676 msgid "``[-+]?(0[xX])?[\\dA-Fa-f]+``" msgstr "" -#: library/re.rst:1677 +#: library/re.rst:1679 msgid "To extract the filename and numbers from a string like ::" msgstr "" -#: library/re.rst:1679 +#: library/re.rst:1681 msgid "/usr/sbin/sendmail - 0 errors, 4 warnings" msgstr "" -#: library/re.rst:1681 +#: library/re.rst:1683 msgid "you would use a :c:func:`!scanf` format like ::" msgstr "" -#: library/re.rst:1683 +#: library/re.rst:1685 msgid "%s - %d errors, %d warnings" msgstr "" -#: library/re.rst:1685 +#: library/re.rst:1687 msgid "The equivalent regular expression would be ::" msgstr "" -#: library/re.rst:1687 +#: library/re.rst:1689 msgid "(\\S+) - (\\d+) errors, (\\d+) warnings" msgstr "" -#: library/re.rst:1693 +#: library/re.rst:1695 msgid "search() vs. match()" msgstr "" -#: library/re.rst:1697 +#: library/re.rst:1699 msgid "" "Python offers different primitive operations based on regular expressions:" msgstr "" -#: library/re.rst:1699 +#: library/re.rst:1701 msgid ":func:`re.match` checks for a match only at the beginning of the string" msgstr "" -#: library/re.rst:1700 +#: library/re.rst:1702 msgid "" ":func:`re.search` checks for a match anywhere in the string (this is what " "Perl does by default)" msgstr "" -#: library/re.rst:1702 +#: library/re.rst:1704 msgid ":func:`re.fullmatch` checks for entire string to be a match" msgstr "" -#: library/re.rst:1707 +#: library/re.rst:1709 msgid "" ">>> re.match(\"c\", \"abcdef\") # No match\n" ">>> re.search(\"c\", \"abcdef\") # Match\n" @@ -2248,13 +2252,13 @@ msgid "" ">>> re.fullmatch(\"r.*n\", \"python\") # No match" msgstr "" -#: library/re.rst:1714 +#: library/re.rst:1716 msgid "" "Regular expressions beginning with ``'^'`` can be used with :func:`search` " "to restrict the match at the beginning of the string::" msgstr "" -#: library/re.rst:1717 +#: library/re.rst:1719 msgid "" ">>> re.match(\"c\", \"abcdef\") # No match\n" ">>> re.search(\"^c\", \"abcdef\") # No match\n" @@ -2262,7 +2266,7 @@ msgid "" "" msgstr "" -#: library/re.rst:1722 +#: library/re.rst:1724 msgid "" "Note however that in :const:`MULTILINE` mode :func:`match` only matches at " "the beginning of the string, whereas using :func:`search` with a regular " @@ -2270,18 +2274,18 @@ msgid "" "line. ::" msgstr "" -#: library/re.rst:1726 +#: library/re.rst:1728 msgid "" ">>> re.match(\"X\", \"A\\nB\\nX\", re.MULTILINE) # No match\n" ">>> re.search(\"^X\", \"A\\nB\\nX\", re.MULTILINE) # Match\n" "" msgstr "" -#: library/re.rst:1732 +#: library/re.rst:1734 msgid "Making a Phonebook" msgstr "" -#: library/re.rst:1734 +#: library/re.rst:1736 msgid "" ":func:`split` splits a string into a list delimited by the passed pattern. " "The method is invaluable for converting textual data into data structures " @@ -2289,13 +2293,13 @@ msgid "" "following example that creates a phonebook." msgstr "" -#: library/re.rst:1739 +#: library/re.rst:1741 msgid "" "First, here is the input. Normally it may come from a file, here we are " "using triple-quoted string syntax" msgstr "" -#: library/re.rst:1742 +#: library/re.rst:1744 msgid "" ">>> text = \"\"\"Ross McFluff: 834.345.1254 155 Elm Street\n" "...\n" @@ -2306,13 +2310,13 @@ msgid "" "... Heather Albrecht: 548.326.4584 919 Park Place\"\"\"" msgstr "" -#: library/re.rst:1752 +#: library/re.rst:1754 msgid "" "The entries are separated by one or more newlines. Now we convert the string " "into a list with each nonempty line having its own entry:" msgstr "" -#: library/re.rst:1755 +#: library/re.rst:1757 msgid "" ">>> entries = re.split(\"\\n+\", text)\n" ">>> entries\n" @@ -2322,14 +2326,14 @@ msgid "" "'Heather Albrecht: 548.326.4584 919 Park Place']" msgstr "" -#: library/re.rst:1765 +#: library/re.rst:1767 msgid "" "Finally, split each entry into a list with first name, last name, telephone " "number, and address. We use the ``maxsplit`` parameter of :func:`split` " "because the address has spaces, our splitting pattern, in it:" msgstr "" -#: library/re.rst:1769 +#: library/re.rst:1771 msgid "" ">>> [re.split(\":? \", entry, maxsplit=3) for entry in entries]\n" "[['Ross', 'McFluff', '834.345.1254', '155 Elm Street'],\n" @@ -2338,14 +2342,14 @@ msgid "" "['Heather', 'Albrecht', '548.326.4584', '919 Park Place']]" msgstr "" -#: library/re.rst:1778 +#: library/re.rst:1780 msgid "" "The ``:?`` pattern matches the colon after the last name, so that it does " "not occur in the result list. With a ``maxsplit`` of ``4``, we could " "separate the house number from the street name:" msgstr "" -#: library/re.rst:1782 +#: library/re.rst:1784 msgid "" ">>> [re.split(\":? \", entry, maxsplit=4) for entry in entries]\n" "[['Ross', 'McFluff', '834.345.1254', '155', 'Elm Street'],\n" @@ -2354,11 +2358,11 @@ msgid "" "['Heather', 'Albrecht', '548.326.4584', '919', 'Park Place']]" msgstr "" -#: library/re.rst:1793 +#: library/re.rst:1795 msgid "Text Munging" msgstr "" -#: library/re.rst:1795 +#: library/re.rst:1797 msgid "" ":func:`sub` replaces every occurrence of a pattern with a string or the " "result of a function. This example demonstrates using :func:`sub` with a " @@ -2366,7 +2370,7 @@ msgid "" "each word of a sentence except for the first and last characters::" msgstr "" -#: library/re.rst:1800 +#: library/re.rst:1802 msgid "" ">>> def repl(m):\n" "... inner_word = list(m.group(2))\n" @@ -2380,11 +2384,11 @@ msgid "" "'Pofsroser Aodlambelk, plasee reoprt yuor asnebces potlmrpy.'" msgstr "" -#: library/re.rst:1813 +#: library/re.rst:1815 msgid "Finding all Adverbs" msgstr "" -#: library/re.rst:1815 +#: library/re.rst:1817 msgid "" ":func:`findall` matches *all* occurrences of a pattern, not just the first " "one as :func:`search` does. For example, if a writer wanted to find all of " @@ -2392,18 +2396,18 @@ msgid "" "manner::" msgstr "" -#: library/re.rst:1820 +#: library/re.rst:1822 msgid "" ">>> text = \"He was carefully disguised but captured quickly by police.\"\n" ">>> re.findall(r\"\\w+ly\\b\", text)\n" "['carefully', 'quickly']" msgstr "" -#: library/re.rst:1826 +#: library/re.rst:1828 msgid "Finding all Adverbs and their Positions" msgstr "" -#: library/re.rst:1828 +#: library/re.rst:1830 msgid "" "If one wants more information about all matches of a pattern than the " "matched text, :func:`finditer` is useful as it provides :class:`~re.Match` " @@ -2412,7 +2416,7 @@ msgid "" "they would use :func:`finditer` in the following manner::" msgstr "" -#: library/re.rst:1834 +#: library/re.rst:1836 msgid "" ">>> text = \"He was carefully disguised but captured quickly by police.\"\n" ">>> for m in re.finditer(r\"\\w+ly\\b\", text):\n" @@ -2421,11 +2425,11 @@ msgid "" "40-47: quickly" msgstr "" -#: library/re.rst:1842 +#: library/re.rst:1844 msgid "Raw String Notation" msgstr "" -#: library/re.rst:1844 +#: library/re.rst:1846 msgid "" "Raw string notation (``r\"text\"``) keeps regular expressions sane. Without " "it, every backslash (``'\\'``) in a regular expression would have to be " @@ -2433,7 +2437,7 @@ msgid "" "lines of code are functionally identical::" msgstr "" -#: library/re.rst:1849 +#: library/re.rst:1851 msgid "" ">>> re.match(r\"\\W(.)\\1\\W\", \" ff \")\n" "\n" @@ -2441,7 +2445,7 @@ msgid "" "" msgstr "" -#: library/re.rst:1854 +#: library/re.rst:1856 msgid "" "When one wants to match a literal backslash, it must be escaped in the " "regular expression. With raw string notation, this means ``r\"\\\\\"``. " @@ -2449,7 +2453,7 @@ msgid "" "following lines of code functionally identical::" msgstr "" -#: library/re.rst:1859 +#: library/re.rst:1861 msgid "" ">>> re.match(r\"\\\\\", r\"\\\\\")\n" "\n" @@ -2457,25 +2461,25 @@ msgid "" "" msgstr "" -#: library/re.rst:1866 +#: library/re.rst:1868 msgid "Writing a Tokenizer" msgstr "" -#: library/re.rst:1868 +#: library/re.rst:1870 msgid "" "A `tokenizer or scanner `_ " "analyzes a string to categorize groups of characters. This is a useful " "first step in writing a compiler or interpreter." msgstr "" -#: library/re.rst:1872 +#: library/re.rst:1874 msgid "" "The text categories are specified with regular expressions. The technique " "is to combine those into a single master regular expression and to loop over " "successive matches::" msgstr "" -#: library/re.rst:1876 +#: library/re.rst:1878 msgid "" "from typing import NamedTuple\n" "import re\n" @@ -2531,11 +2535,11 @@ msgid "" " print(token)" msgstr "" -#: library/re.rst:1928 +#: library/re.rst:1930 msgid "The tokenizer produces the following output::" msgstr "" -#: library/re.rst:1930 +#: library/re.rst:1932 msgid "" "Token(type='IF', value='IF', line=2, column=4)\n" "Token(type='ID', value='quantity', line=2, column=7)\n" @@ -2558,7 +2562,7 @@ msgid "" "Token(type='END', value=';', line=5, column=9)" msgstr "" -#: library/re.rst:1951 +#: library/re.rst:1953 msgid "" "Friedl, Jeffrey. Mastering Regular Expressions. 3rd ed., O'Reilly Media, " "2009. The third edition of the book no longer covers Python at all, but the " @@ -2574,7 +2578,7 @@ msgstr "" #: library/re.rst:235 library/re.rst:258 library/re.rst:304 library/re.rst:327 #: library/re.rst:414 library/re.rst:452 library/re.rst:464 library/re.rst:498 #: library/re.rst:531 library/re.rst:548 library/re.rst:590 library/re.rst:614 -#: library/re.rst:636 library/re.rst:667 library/re.rst:863 library/re.rst:1099 +#: library/re.rst:636 library/re.rst:667 library/re.rst:863 library/re.rst:1102 msgid "in regular expressions" msgstr "" @@ -2774,10 +2778,10 @@ msgstr "" msgid "# (hash)" msgstr "" -#: library/re.rst:1099 +#: library/re.rst:1102 msgid "\\g" msgstr "" -#: library/re.rst:1647 +#: library/re.rst:1649 msgid "scanf (C function)" msgstr "" diff --git a/library/readline.po b/library/readline.po index 232a43d8..a8a65fe7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/removed.po b/library/removed.po index ae1aa224..6b1e368c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 6de7cb24..76173069 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 94379b0e..98d19ab5 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3815f376..0365b46a 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1a89c41b..3a7c24c4 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a17abe95..fca35b8e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 c1d1df7c..8e9d68d7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b838f1e2..7a1b1b87 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 c509a76e..f3599ef8 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 e7684856..82da1f6b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 70557b1c..460f8425 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 5641065e..a3dc0856 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 afc74de7..177cb0bf 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -92,7 +92,7 @@ msgid "" "link will be created instead of copying the file *src* points to." msgstr "" -#: library/shutil.rst:177 library/shutil.rst:208 +#: library/shutil.rst:184 library/shutil.rst:215 msgid "" "Raises an :ref:`auditing event ` ``shutil.copyfile`` with " "arguments ``src``, ``dst``." @@ -110,7 +110,7 @@ msgid "" "subclass of the latter, this change is backward compatible." msgstr "" -#: library/shutil.rst:185 library/shutil.rst:287 library/shutil.rst:396 +#: library/shutil.rst:192 library/shutil.rst:294 library/shutil.rst:407 msgid "" "Platform-specific fast-copy syscalls may be used internally in order to copy " "the file more efficiently. See :ref:`shutil-platform-dependent-efficient-" @@ -119,11 +119,17 @@ msgstr "" #: library/shutil.rst:88 msgid "" +"This exception is raised when :func:`copyfile` or :func:`copytree` attempt " +"to copy a named pipe." +msgstr "" + +#: library/shutil.rst:95 +msgid "" "This exception is raised if source and destination in :func:`copyfile` are " "the same file." msgstr "" -#: library/shutil.rst:96 +#: library/shutil.rst:103 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:115 msgid "Added *follow_symlinks* argument." msgstr "" -#: library/shutil.rst:113 +#: library/shutil.rst:120 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 +161,7 @@ msgid "" "object>` or path names given as strings." msgstr "" -#: library/shutil.rst:119 +#: library/shutil.rst:126 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 +169,54 @@ msgid "" "*src* symbolic link, and writing the information to the *dst* symbolic link." msgstr "" -#: library/shutil.rst:128 +#: library/shutil.rst:135 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:139 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:143 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:147 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:152 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:157 msgid "Please see :data:`os.supports_follow_symlinks` for more information." msgstr "" -#: library/shutil.rst:210 +#: library/shutil.rst:217 msgid "" "Raises an :ref:`auditing event ` ``shutil.copystat`` with " "arguments ``src``, ``dst``." msgstr "" -#: library/shutil.rst:155 +#: library/shutil.rst:162 msgid "" "Added *follow_symlinks* argument and support for Linux extended attributes." msgstr "" -#: library/shutil.rst:160 +#: library/shutil.rst:167 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 +225,14 @@ msgid "" "be replaced. Returns the path to the newly created file." msgstr "" -#: library/shutil.rst:166 +#: library/shutil.rst:173 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:178 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 +240,18 @@ msgid "" "original, use :func:`~shutil.copy2` instead." msgstr "" -#: library/shutil.rst:181 +#: library/shutil.rst:188 msgid "" "Added *follow_symlinks* argument. Now returns path to the newly created file." msgstr "" -#: library/shutil.rst:192 +#: library/shutil.rst:199 msgid "" "Identical to :func:`~shutil.copy` except that :func:`copy2` also attempts to " "preserve file metadata." msgstr "" -#: library/shutil.rst:195 +#: library/shutil.rst:202 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 +261,41 @@ msgid "" "`copy2` never raises an exception because it cannot preserve file metadata." msgstr "" -#: library/shutil.rst:204 +#: library/shutil.rst:211 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:219 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:231 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:240 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:244 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:247 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 +303,7 @@ msgid "" "and metadata of the linked files are copied to the new tree." msgstr "" -#: library/shutil.rst:245 +#: library/shutil.rst:252 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 +313,7 @@ msgid "" "support :func:`os.symlink`." msgstr "" -#: library/shutil.rst:252 +#: library/shutil.rst:259 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 +326,12 @@ msgid "" "ignores names based on glob-style patterns." msgstr "" -#: library/shutil.rst:262 +#: library/shutil.rst:269 msgid "" "If exception(s) occur, an :exc:`Error` is raised with a list of reasons." msgstr "" -#: library/shutil.rst:264 +#: library/shutil.rst:271 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 +339,7 @@ msgid "" "that supports the same signature (like :func:`~shutil.copy`) can be used." msgstr "" -#: library/shutil.rst:269 +#: library/shutil.rst:276 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 +348,28 @@ msgid "" "*src* tree." msgstr "" -#: library/shutil.rst:275 +#: library/shutil.rst:282 msgid "" "Raises an :ref:`auditing event ` ``shutil.copytree`` with " "arguments ``src``, ``dst``." msgstr "" -#: library/shutil.rst:277 +#: library/shutil.rst:284 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:290 msgid "Copy metadata when *symlinks* is false. Now returns *dst*." msgstr "" -#: library/shutil.rst:292 +#: library/shutil.rst:299 msgid "Added the *dirs_exist_ok* parameter." msgstr "" -#: library/shutil.rst:299 +#: library/shutil.rst:306 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 +378,13 @@ msgid "" "are omitted, exceptions are propagated to the caller." msgstr "" -#: library/shutil.rst:305 +#: library/shutil.rst:312 msgid "" "This function can support :ref:`paths relative to directory descriptors " "`." msgstr "" -#: library/shutil.rst:310 +#: library/shutil.rst:317 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 +395,13 @@ msgid "" "attribute to determine which case applies." msgstr "" -#: library/shutil.rst:318 +#: library/shutil.rst:325 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:328 msgid "" "The first parameter, *function*, is the function which raised the exception; " "it depends on the platform and implementation. The second parameter, " @@ -404,72 +410,78 @@ msgid "" "will not be caught." msgstr "" -#: library/shutil.rst:327 +#: library/shutil.rst:334 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:330 +#: library/shutil.rst:338 +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:341 msgid "" "Raises an :ref:`auditing event ` ``shutil.rmtree`` with arguments " "``path``, ``dir_fd``." msgstr "" -#: library/shutil.rst:332 +#: library/shutil.rst:343 msgid "" "Added a symlink attack resistant version that is used automatically if " "platform supports fd-based functions." msgstr "" -#: library/shutil.rst:336 +#: library/shutil.rst:347 msgid "" "On Windows, will no longer delete the contents of a directory junction " "before removing the junction." msgstr "" -#: library/shutil.rst:340 +#: library/shutil.rst:351 msgid "Added the *dir_fd* parameter." msgstr "" -#: library/shutil.rst:343 +#: library/shutil.rst:354 msgid "Added the *onexc* parameter, deprecated *onerror*." msgstr "" -#: library/shutil.rst:346 +#: library/shutil.rst:357 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:354 +#: library/shutil.rst:365 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:363 +#: library/shutil.rst:374 msgid "" "Recursively move a file or directory (*src*) to another location and return " "the destination." msgstr "" -#: library/shutil.rst:366 +#: library/shutil.rst:377 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:370 +#: library/shutil.rst:381 msgid "" "If *dst* already exists but is not a directory, it may be overwritten " "depending on :func:`os.rename` semantics." msgstr "" -#: library/shutil.rst:373 +#: library/shutil.rst:384 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* " @@ -477,7 +489,7 @@ msgid "" "of *src* will be created as the destination and *src* will be removed." msgstr "" -#: library/shutil.rst:378 +#: library/shutil.rst:389 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 " @@ -488,85 +500,85 @@ msgid "" "copy the metadata, at the expense of not copying any of the metadata." msgstr "" -#: library/shutil.rst:386 +#: library/shutil.rst:397 msgid "" "Raises an :ref:`auditing event ` ``shutil.move`` with arguments " "``src``, ``dst``." msgstr "" -#: library/shutil.rst:388 +#: library/shutil.rst:399 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:393 +#: library/shutil.rst:404 msgid "Added the *copy_function* keyword argument." msgstr "" -#: library/shutil.rst:401 +#: library/shutil.rst:412 msgid "Accepts a :term:`path-like object` for both *src* and *dst*." msgstr "" -#: library/shutil.rst:406 +#: library/shutil.rst:417 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:413 +#: library/shutil.rst:424 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:419 +#: library/shutil.rst:430 msgid "On Windows, *path* can now be a file or directory." msgstr "" -#: library/shutil.rst:436 +#: library/shutil.rst:447 msgid "Availability" msgstr "" -#: library/shutil.rst:427 +#: library/shutil.rst:438 msgid "Change owner *user* and/or *group* of the given *path*." msgstr "" -#: library/shutil.rst:429 +#: library/shutil.rst:440 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:432 +#: library/shutil.rst:443 msgid "See also :func:`os.chown`, the underlying function." msgstr "" -#: library/shutil.rst:434 +#: library/shutil.rst:445 msgid "" "Raises an :ref:`auditing event ` ``shutil.chown`` with arguments " "``path``, ``user``, ``group``." msgstr "" -#: library/shutil.rst:440 +#: library/shutil.rst:451 msgid "Added *dir_fd* and *follow_symlinks* parameters." msgstr "" -#: library/shutil.rst:446 +#: library/shutil.rst:457 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:449 +#: library/shutil.rst:460 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:452 +#: library/shutil.rst:463 msgid "" "*path* is a \"``PATH`` string\" specifying the directories to look in, " "delimited by :data:`os.pathsep`. When no *path* is specified, the :envvar:" @@ -574,7 +586,14 @@ msgid "" "to :data:`os.defpath` if it is not set." msgstr "" -#: library/shutil.rst:457 +#: library/shutil.rst:468 +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:472 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 " @@ -584,7 +603,7 @@ msgid "" "environment variable ``NoDefaultCurrentDirectoryInExePath``." msgstr "" -#: library/shutil.rst:464 +#: library/shutil.rst:479 msgid "" "Also on Windows, the :envvar:`PATHEXT` environment variable is used to " "resolve commands that may not already include an extension. For example, if " @@ -593,31 +612,31 @@ msgid "" "directories. For example, on Windows::" msgstr "" -#: library/shutil.rst:470 +#: library/shutil.rst:485 msgid "" ">>> shutil.which(\"python\")\n" "'C:\\\\Python33\\\\python.EXE'" msgstr "" -#: library/shutil.rst:473 +#: library/shutil.rst:488 msgid "" "This is also applied when *cmd* is a path that contains a directory " "component::" msgstr "" -#: library/shutil.rst:476 +#: library/shutil.rst:491 msgid "" ">>> shutil.which(\"C:\\\\Python33\\\\python\")\n" "'C:\\\\Python33\\\\python.EXE'" msgstr "" -#: library/shutil.rst:481 +#: library/shutil.rst:496 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:485 +#: library/shutil.rst:500 msgid "" "On Windows, the current directory is no longer prepended to the search path " "if *mode* includes ``os.X_OK`` and WinAPI " @@ -628,18 +647,18 @@ msgid "" "now be found." msgstr "" -#: library/shutil.rst:496 +#: library/shutil.rst:511 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:503 +#: library/shutil.rst:518 msgid "Platform-dependent efficient copy operations" msgstr "" -#: library/shutil.rst:505 +#: library/shutil.rst:520 msgid "" "Starting from Python 3.8, all functions involving a file copy (:func:" "`copyfile`, :func:`~shutil.copy`, :func:`copy2`, :func:`copytree`, and :func:" @@ -649,54 +668,54 @@ msgid "" "buffers in Python as in \"``outfd.write(infd.read())``\"." msgstr "" -#: library/shutil.rst:513 +#: library/shutil.rst:528 msgid "On macOS `fcopyfile`_ is used to copy the file content (not metadata)." msgstr "" -#: library/shutil.rst:515 +#: library/shutil.rst:530 msgid "On Linux :func:`os.sendfile` is used." msgstr "" -#: library/shutil.rst:517 +#: library/shutil.rst:532 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:521 +#: library/shutil.rst:536 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:530 +#: library/shutil.rst:545 msgid "copytree example" msgstr "" -#: library/shutil.rst:532 +#: library/shutil.rst:547 msgid "An example that uses the :func:`ignore_patterns` helper::" msgstr "" -#: library/shutil.rst:534 +#: library/shutil.rst:549 msgid "" "from shutil import copytree, ignore_patterns\n" "\n" "copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*'))" msgstr "" -#: library/shutil.rst:538 +#: library/shutil.rst:553 msgid "" "This will copy everything except ``.pyc`` files and files or directories " "whose name starts with ``tmp``." msgstr "" -#: library/shutil.rst:541 +#: library/shutil.rst:556 msgid "Another example that uses the *ignore* argument to add a logging call::" msgstr "" -#: library/shutil.rst:543 +#: library/shutil.rst:558 msgid "" "from shutil import copytree\n" "import logging\n" @@ -708,11 +727,11 @@ msgid "" "copytree(source, destination, ignore=_logpath)" msgstr "" -#: library/shutil.rst:556 +#: library/shutil.rst:571 msgid "rmtree example" msgstr "" -#: library/shutil.rst:558 +#: library/shutil.rst:573 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 " @@ -720,7 +739,7 @@ msgid "" "propagate. ::" msgstr "" -#: library/shutil.rst:563 +#: library/shutil.rst:578 msgid "" "import os, stat\n" "import shutil\n" @@ -733,31 +752,31 @@ msgid "" "shutil.rmtree(directory, onexc=remove_readonly)" msgstr "" -#: library/shutil.rst:576 +#: library/shutil.rst:591 msgid "Archiving operations" msgstr "" -#: library/shutil.rst:580 +#: library/shutil.rst:595 msgid "Added support for the *xztar* format." msgstr "" -#: library/shutil.rst:584 +#: library/shutil.rst:599 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:589 +#: library/shutil.rst:604 msgid "Create an archive file (such as zip or tar) and return its name." msgstr "" -#: library/shutil.rst:591 +#: library/shutil.rst:606 msgid "" "*base_name* is the name of the file to create, including the path, minus any " "format-specific extension." msgstr "" -#: library/shutil.rst:594 +#: library/shutil.rst:609 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), " @@ -765,14 +784,14 @@ msgid "" "`lzma` module is available)." msgstr "" -#: library/shutil.rst:599 +#: library/shutil.rst:614 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:603 +#: library/shutil.rst:618 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. " @@ -780,39 +799,39 @@ msgid "" "example-with-basedir` for how to use *base_dir* and *root_dir* together." msgstr "" -#: library/shutil.rst:609 +#: library/shutil.rst:624 msgid "*root_dir* and *base_dir* both default to the current directory." msgstr "" -#: library/shutil.rst:611 +#: library/shutil.rst:626 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:614 +#: library/shutil.rst:629 msgid "" "*owner* and *group* are used when creating a tar archive. By default, uses " "the current owner and group." msgstr "" -#: library/shutil.rst:617 +#: library/shutil.rst:632 msgid "" "*logger* must be an object compatible with :pep:`282`, usually an instance " "of :class:`logging.Logger`." msgstr "" -#: library/shutil.rst:620 +#: library/shutil.rst:635 msgid "The *verbose* argument is unused and deprecated." msgstr "" -#: library/shutil.rst:622 +#: library/shutil.rst:637 msgid "" "Raises an :ref:`auditing event ` ``shutil.make_archive`` with " "arguments ``base_name``, ``format``, ``root_dir``, ``base_dir``." msgstr "" -#: library/shutil.rst:626 +#: library/shutil.rst:641 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 " @@ -820,60 +839,60 @@ msgid "" "*root_dir* to perform archiving." msgstr "" -#: library/shutil.rst:632 +#: library/shutil.rst:647 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:636 +#: library/shutil.rst:651 msgid "" "This function is now made thread-safe during creation of standard ``.zip`` " "and tar archives." msgstr "" -#: library/shutil.rst:642 +#: library/shutil.rst:657 msgid "" "Return a list of supported formats for archiving. Each element of the " "returned sequence is a tuple ``(name, description)``." msgstr "" -#: library/shutil.rst:756 +#: library/shutil.rst:771 msgid "By default :mod:`shutil` provides these formats:" msgstr "" -#: library/shutil.rst:647 +#: library/shutil.rst:662 msgid "*zip*: ZIP file (if the :mod:`zlib` module is available)." msgstr "" -#: library/shutil.rst:648 +#: library/shutil.rst:663 msgid "" "*tar*: Uncompressed tar file. Uses POSIX.1-2001 pax format for new archives." msgstr "" -#: library/shutil.rst:761 +#: library/shutil.rst:776 msgid "*gztar*: gzip'ed tar-file (if the :mod:`zlib` module is available)." msgstr "" -#: library/shutil.rst:762 +#: library/shutil.rst:777 msgid "*bztar*: bzip2'ed tar-file (if the :mod:`bz2` module is available)." msgstr "" -#: library/shutil.rst:763 +#: library/shutil.rst:778 msgid "*xztar*: xz'ed tar-file (if the :mod:`lzma` module is available)." msgstr "" -#: library/shutil.rst:653 +#: library/shutil.rst:668 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:659 +#: library/shutil.rst:674 msgid "Register an archiver for the format *name*." msgstr "" -#: library/shutil.rst:661 +#: library/shutil.rst:676 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 " @@ -882,7 +901,7 @@ msgid "" "*dry_run* and *logger* (as passed in :func:`make_archive`)." msgstr "" -#: library/shutil.rst:667 +#: library/shutil.rst:682 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 " @@ -891,37 +910,37 @@ msgid "" "not thread-safe." msgstr "" -#: library/shutil.rst:673 +#: library/shutil.rst:688 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:676 +#: library/shutil.rst:691 msgid "" "*description* is used by :func:`get_archive_formats` which returns the list " "of archivers. Defaults to an empty string." msgstr "" -#: library/shutil.rst:679 +#: library/shutil.rst:694 msgid "Added support for functions supporting the *root_dir* argument." msgstr "" -#: library/shutil.rst:685 +#: library/shutil.rst:700 msgid "Remove the archive format *name* from the list of supported formats." msgstr "" -#: library/shutil.rst:690 +#: library/shutil.rst:705 msgid "Unpack an archive. *filename* is the full path of the archive." msgstr "" -#: library/shutil.rst:692 +#: library/shutil.rst:707 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:695 +#: library/shutil.rst:710 msgid "" "*format* is the archive format: one of \"zip\", \"tar\", \"gztar\", " "\"bztar\", or \"xztar\". Or any other format registered with :func:" @@ -930,7 +949,7 @@ msgid "" "that extension. In case none is found, a :exc:`ValueError` is raised." msgstr "" -#: library/shutil.rst:702 +#: library/shutil.rst:717 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 " @@ -940,13 +959,13 @@ msgid "" "Python 3.14." msgstr "" -#: library/shutil.rst:710 +#: library/shutil.rst:725 msgid "" "Raises an :ref:`auditing event ` ``shutil.unpack_archive`` with " "arguments ``filename``, ``extract_dir``, ``format``." msgstr "" -#: library/shutil.rst:714 +#: library/shutil.rst:729 msgid "" "Never extract archives from untrusted sources without prior inspection. It " "is possible that files are created outside of the path specified in the " @@ -954,91 +973,91 @@ msgid "" "with \"/\" or filenames with two dots \"..\"." msgstr "" -#: library/shutil.rst:719 +#: library/shutil.rst:734 msgid "Accepts a :term:`path-like object` for *filename* and *extract_dir*." msgstr "" -#: library/shutil.rst:722 +#: library/shutil.rst:737 msgid "Added the *filter* argument." msgstr "" -#: library/shutil.rst:727 +#: library/shutil.rst:742 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:731 +#: library/shutil.rst:746 msgid "" "*function* is the callable that will be used to unpack archives. The " "callable will receive:" msgstr "" -#: library/shutil.rst:734 +#: library/shutil.rst:749 msgid "the path of the archive, as a positional argument;" msgstr "" -#: library/shutil.rst:735 +#: library/shutil.rst:750 msgid "" "the directory the archive must be extracted to, as a positional argument;" msgstr "" -#: library/shutil.rst:736 +#: library/shutil.rst:751 msgid "" "possibly a *filter* keyword argument, if it was given to :func:" "`unpack_archive`;" msgstr "" -#: library/shutil.rst:738 +#: library/shutil.rst:753 msgid "" "additional keyword arguments, specified by *extra_args* as a sequence of " "``(name, value)`` tuples." msgstr "" -#: library/shutil.rst:741 +#: library/shutil.rst:756 msgid "" "*description* can be provided to describe the format, and will be returned " "by the :func:`get_unpack_formats` function." msgstr "" -#: library/shutil.rst:747 +#: library/shutil.rst:762 msgid "Unregister an unpack format. *name* is the name of the format." msgstr "" -#: library/shutil.rst:752 +#: library/shutil.rst:767 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:758 +#: library/shutil.rst:773 msgid "" "*zip*: ZIP file (unpacking compressed files works only if the corresponding " "module is available)." msgstr "" -#: library/shutil.rst:760 +#: library/shutil.rst:775 msgid "*tar*: uncompressed tar file." msgstr "" -#: library/shutil.rst:765 +#: library/shutil.rst:780 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:772 +#: library/shutil.rst:787 msgid "Archiving example" msgstr "" -#: library/shutil.rst:774 +#: library/shutil.rst:789 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:777 +#: library/shutil.rst:792 msgid "" ">>> from shutil import make_archive\n" ">>> import os\n" @@ -1048,11 +1067,11 @@ msgid "" "'/Users/tarek/myarchive.tar.gz'" msgstr "" -#: library/shutil.rst:784 +#: library/shutil.rst:799 msgid "The resulting archive contains:" msgstr "" -#: library/shutil.rst:786 +#: library/shutil.rst:801 msgid "" "$ tar -tzvf /Users/tarek/myarchive.tar.gz\n" "drwx------ tarek/staff 0 2010-02-01 16:23:40 ./\n" @@ -1065,18 +1084,18 @@ msgid "" "-rw-r--r-- tarek/staff 37192 2010-02-06 18:23:10 ./known_hosts" msgstr "" -#: library/shutil.rst:802 +#: library/shutil.rst:817 msgid "Archiving example with *base_dir*" msgstr "" -#: library/shutil.rst:804 +#: library/shutil.rst:819 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:808 +#: library/shutil.rst:823 msgid "" "$ tree tmp\n" "tmp\n" @@ -1087,13 +1106,13 @@ msgid "" " └── do_not_add.txt" msgstr "" -#: library/shutil.rst:818 +#: library/shutil.rst:833 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:821 +#: library/shutil.rst:836 msgid "" ">>> from shutil import make_archive\n" ">>> import os\n" @@ -1104,43 +1123,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:832 +#: library/shutil.rst:847 msgid "Listing the files in the resulting archive gives us:" msgstr "" -#: library/shutil.rst:834 +#: library/shutil.rst:849 msgid "" "$ python -m tarfile -l /Users/tarek/myarchive.tar\n" "structure/content/\n" "structure/content/please_add.txt" msgstr "" -#: library/shutil.rst:842 +#: library/shutil.rst:857 msgid "Querying the size of the output terminal" msgstr "" -#: library/shutil.rst:846 +#: library/shutil.rst:861 msgid "Get the size of the terminal window." msgstr "" -#: library/shutil.rst:848 +#: library/shutil.rst:863 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:852 +#: library/shutil.rst:867 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:856 +#: library/shutil.rst:871 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 " @@ -1149,17 +1168,17 @@ msgid "" "emulators." msgstr "" -#: library/shutil.rst:862 +#: library/shutil.rst:877 msgid "The value returned is a named tuple of type :class:`os.terminal_size`." msgstr "" -#: library/shutil.rst:864 +#: library/shutil.rst:879 msgid "" "See also: The Single UNIX Specification, Version 2, `Other Environment " "Variables`_." msgstr "" -#: library/shutil.rst:869 +#: library/shutil.rst:884 msgid "" "The ``fallback`` values are also used if :func:`os.get_terminal_size` " "returns zeroes." @@ -1177,10 +1196,10 @@ msgstr "" msgid "copying files" msgstr "" -#: library/shutil.rst:297 +#: library/shutil.rst:304 msgid "directory" msgstr "" -#: library/shutil.rst:297 +#: library/shutil.rst:304 msgid "deleting" msgstr "" diff --git a/library/signal.po b/library/signal.po index 63865306..7fc5752e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 cf1b536a..edecb97d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -304,7 +304,7 @@ msgid "" msgstr "" #: library/site.rst:266 -msgid "Command Line Interface" +msgid "Command-line interface" msgstr "" #: library/site.rst:270 diff --git a/library/smtpd.po b/library/smtpd.po index 46faa467..0c82b3e2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 cb78b1d3..01868f2b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ea97cdb9..5fb06b5f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 eb76d864..21e12327 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1544,7 +1544,7 @@ msgid "" "`~socket.sendmsg` for the documentation of these parameters." msgstr "" -#: library/socket.rst:1399 +#: library/socket.rst:1385 msgid "" "Unix platforms supporting :meth:`~socket.sendmsg` and :const:`SCM_RIGHTS` " "mechanism." @@ -1557,6 +1557,12 @@ msgid "" "recvmsg` for the documentation of these parameters." msgstr "" +#: library/socket.rst:1399 +msgid "" +"Unix platforms supporting :meth:`~socket.recvmsg` and :const:`SCM_RIGHTS` " +"mechanism." +msgstr "" + #: library/socket.rst:1406 msgid "Any truncated integers at the end of the list of file descriptors." msgstr "" diff --git a/library/socketserver.po b/library/socketserver.po index 0ddb773e..4396d9c2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -618,11 +618,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 6d5b3b81..9e93c564 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 bb2f4015..c050af4c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -825,7 +825,7 @@ msgid "The name of the column where the blob is located." msgstr "" #: library/sqlite3.rst:646 -msgid "The name of the row where the blob is located." +msgid "The row id where the blob is located." msgstr "" #: library/sqlite3.rst:649 @@ -1709,7 +1709,7 @@ msgid "" "`tuple`." msgstr "" -#: library/sqlite3.rst:1723 library/sqlite3.rst:1746 +#: library/sqlite3.rst:1729 library/sqlite3.rst:1752 msgid "See :ref:`sqlite3-howto-row-factory` for more details." msgstr "" @@ -1904,36 +1904,44 @@ msgid "" "the same value from one :meth:`fetchmany` call to the next." msgstr "" -#: library/sqlite3.rst:1635 +#: library/sqlite3.rst:1633 +msgid "Negative *size* values are rejected by raising :exc:`ValueError`." +msgstr "" + +#: library/sqlite3.rst:1638 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:1642 +#: library/sqlite3.rst:1645 msgid "Close the cursor now (rather than whenever ``__del__`` is called)." msgstr "" -#: library/sqlite3.rst:1644 +#: library/sqlite3.rst:1647 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:1653 +#: library/sqlite3.rst:1656 msgid "Required by the DB-API. Does nothing in :mod:`!sqlite3`." msgstr "" -#: library/sqlite3.rst:1657 +#: library/sqlite3.rst:1660 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:1662 +#: library/sqlite3.rst:1663 +msgid "Negative values are rejected by raising :exc:`ValueError`." +msgstr "" + +#: library/sqlite3.rst:1668 msgid "" "Read-only attribute that provides the SQLite database :class:`Connection` " "belonging to the cursor. A :class:`Cursor` object created by calling :meth:" @@ -1941,7 +1949,7 @@ msgid "" "that refers to *con*:" msgstr "" -#: library/sqlite3.rst:1667 +#: library/sqlite3.rst:1673 msgid "" ">>> con = sqlite3.connect(\":memory:\")\n" ">>> cur = con.cursor()\n" @@ -1950,18 +1958,18 @@ msgid "" ">>> con.close()" msgstr "" -#: library/sqlite3.rst:1677 +#: library/sqlite3.rst:1683 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:1681 +#: library/sqlite3.rst:1687 msgid "It is set for ``SELECT`` statements without any matching rows as well." msgstr "" -#: library/sqlite3.rst:1685 +#: library/sqlite3.rst:1691 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 " @@ -1971,15 +1979,15 @@ msgid "" "``None``." msgstr "" -#: library/sqlite3.rst:1693 +#: library/sqlite3.rst:1699 msgid "Inserts into ``WITHOUT ROWID`` tables are not recorded." msgstr "" -#: library/sqlite3.rst:1695 +#: library/sqlite3.rst:1701 msgid "Added support for the ``REPLACE`` statement." msgstr "" -#: library/sqlite3.rst:1700 +#: library/sqlite3.rst:1706 msgid "" "Read-only attribute that provides the number of modified rows for " "``INSERT``, ``UPDATE``, ``DELETE``, and ``REPLACE`` statements; is ``-1`` " @@ -1989,7 +1997,7 @@ msgid "" "resulting rows must be fetched in order for :attr:`!rowcount` to be updated." msgstr "" -#: library/sqlite3.rst:1711 +#: library/sqlite3.rst:1717 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 " @@ -1998,18 +2006,18 @@ msgid "" "and returns a custom object representing an SQLite row." msgstr "" -#: library/sqlite3.rst:1718 +#: library/sqlite3.rst:1724 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:1734 +#: library/sqlite3.rst:1740 msgid "Row objects" msgstr "" -#: library/sqlite3.rst:1738 +#: library/sqlite3.rst:1744 msgid "" "A :class:`!Row` instance serves as a highly optimized :attr:`~Connection." "row_factory` for :class:`Connection` objects. It supports iteration, " @@ -2017,28 +2025,28 @@ msgid "" "index." msgstr "" -#: library/sqlite3.rst:1743 +#: library/sqlite3.rst:1749 msgid "" "Two :class:`!Row` objects compare equal if they have identical column names " "and values." msgstr "" -#: library/sqlite3.rst:1750 +#: library/sqlite3.rst:1756 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:1754 +#: library/sqlite3.rst:1760 msgid "Added support of slicing." msgstr "" -#: library/sqlite3.rst:1761 +#: library/sqlite3.rst:1767 msgid "Blob objects" msgstr "" -#: library/sqlite3.rst:1767 +#: library/sqlite3.rst:1773 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:" @@ -2046,13 +2054,13 @@ msgid "" "and :term:`slices ` for direct access to the blob data." msgstr "" -#: library/sqlite3.rst:1772 +#: library/sqlite3.rst:1778 msgid "" "Use the :class:`Blob` as a :term:`context manager` to ensure that the blob " "handle is closed after use." msgstr "" -#: library/sqlite3.rst:1775 +#: library/sqlite3.rst:1781 msgid "" "con = sqlite3.connect(\":memory:\")\n" "con.execute(\"CREATE TABLE test(blob_col blob)\")\n" @@ -2074,18 +2082,18 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:1803 +#: library/sqlite3.rst:1809 msgid "Close the blob." msgstr "" -#: library/sqlite3.rst:1805 +#: library/sqlite3.rst:1811 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:1811 +#: library/sqlite3.rst:1817 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)` " @@ -2093,18 +2101,18 @@ msgid "" "`~Blob.read` will read until the end of the blob." msgstr "" -#: library/sqlite3.rst:1819 +#: library/sqlite3.rst:1825 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:1825 +#: library/sqlite3.rst:1831 msgid "Return the current access position of the blob." msgstr "" -#: library/sqlite3.rst:1829 +#: library/sqlite3.rst:1835 msgid "" "Set the current access position of the blob to *offset*. The *origin* " "argument defaults to :const:`os.SEEK_SET` (absolute blob positioning). Other " @@ -2112,26 +2120,26 @@ msgid "" "position) and :const:`os.SEEK_END` (seek relative to the blob’s end)." msgstr "" -#: library/sqlite3.rst:1837 +#: library/sqlite3.rst:1843 msgid "PrepareProtocol objects" msgstr "" -#: library/sqlite3.rst:1841 +#: library/sqlite3.rst:1847 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:1849 +#: library/sqlite3.rst:1855 msgid "Exceptions" msgstr "" -#: library/sqlite3.rst:1851 +#: library/sqlite3.rst:1857 msgid "The exception hierarchy is defined by the DB-API 2.0 (:pep:`249`)." msgstr "" -#: library/sqlite3.rst:1855 +#: library/sqlite3.rst:1861 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-" @@ -2139,39 +2147,39 @@ msgid "" "of :exc:`Exception`." msgstr "" -#: library/sqlite3.rst:1862 +#: library/sqlite3.rst:1868 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:1866 +#: library/sqlite3.rst:1872 msgid "" "If the exception originated from within the SQLite library, the following " "two attributes are added to the exception:" msgstr "" -#: library/sqlite3.rst:1871 +#: library/sqlite3.rst:1877 msgid "" "The numeric error code from the `SQLite API `_" msgstr "" -#: library/sqlite3.rst:1878 +#: library/sqlite3.rst:1884 msgid "" "The symbolic name of the numeric error code from the `SQLite API `_" msgstr "" -#: library/sqlite3.rst:1885 +#: library/sqlite3.rst:1891 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:1892 +#: library/sqlite3.rst:1898 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 " @@ -2179,14 +2187,14 @@ msgid "" "subclass of :exc:`Error`." msgstr "" -#: library/sqlite3.rst:1899 +#: library/sqlite3.rst:1905 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:1905 +#: library/sqlite3.rst:1911 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 " @@ -2194,20 +2202,20 @@ msgid "" "``OperationalError`` is a subclass of :exc:`DatabaseError`." msgstr "" -#: library/sqlite3.rst:1913 +#: library/sqlite3.rst:1919 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:1918 +#: library/sqlite3.rst:1924 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:1925 +#: library/sqlite3.rst:1931 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 " @@ -2215,7 +2223,7 @@ msgid "" "`DatabaseError`." msgstr "" -#: library/sqlite3.rst:1932 +#: library/sqlite3.rst:1938 msgid "" "Exception raised in case a method or database API is not supported by the " "underlying SQLite library. For example, setting *deterministic* to ``True`` " @@ -2224,78 +2232,78 @@ msgid "" "subclass of :exc:`DatabaseError`." msgstr "" -#: library/sqlite3.rst:1942 +#: library/sqlite3.rst:1948 msgid "SQLite and Python types" msgstr "" -#: library/sqlite3.rst:1944 +#: library/sqlite3.rst:1950 msgid "" "SQLite natively supports the following types: ``NULL``, ``INTEGER``, " "``REAL``, ``TEXT``, ``BLOB``." msgstr "" -#: library/sqlite3.rst:1947 +#: library/sqlite3.rst:1953 msgid "" "The following Python types can thus be sent to SQLite without any problem:" msgstr "" -#: library/sqlite3.rst:1967 +#: library/sqlite3.rst:1973 msgid "Python type" msgstr "" -#: library/sqlite3.rst:1967 +#: library/sqlite3.rst:1973 msgid "SQLite type" msgstr "" -#: library/sqlite3.rst:1969 +#: library/sqlite3.rst:1975 msgid "``None``" msgstr "" -#: library/sqlite3.rst:1969 +#: library/sqlite3.rst:1975 msgid "``NULL``" msgstr "" -#: library/sqlite3.rst:1971 +#: library/sqlite3.rst:1977 msgid ":class:`int`" msgstr "" -#: library/sqlite3.rst:1971 +#: library/sqlite3.rst:1977 msgid "``INTEGER``" msgstr "" -#: library/sqlite3.rst:1973 +#: library/sqlite3.rst:1979 msgid ":class:`float`" msgstr "" -#: library/sqlite3.rst:1973 +#: library/sqlite3.rst:1979 msgid "``REAL``" msgstr "" -#: library/sqlite3.rst:1958 +#: library/sqlite3.rst:1964 msgid ":class:`str`" msgstr "" -#: library/sqlite3.rst:1975 +#: library/sqlite3.rst:1981 msgid "``TEXT``" msgstr "" -#: library/sqlite3.rst:1978 +#: library/sqlite3.rst:1984 msgid ":class:`bytes`" msgstr "" -#: library/sqlite3.rst:1978 +#: library/sqlite3.rst:1984 msgid "``BLOB``" msgstr "" -#: library/sqlite3.rst:1964 +#: library/sqlite3.rst:1970 msgid "This is how SQLite types are converted to Python types by default:" msgstr "" -#: library/sqlite3.rst:1975 +#: library/sqlite3.rst:1981 msgid "depends on :attr:`~Connection.text_factory`, :class:`str` by default" msgstr "" -#: library/sqlite3.rst:1981 +#: library/sqlite3.rst:1987 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 " @@ -2304,47 +2312,47 @@ msgid "" "converters>`." msgstr "" -#: library/sqlite3.rst:1991 +#: library/sqlite3.rst:1997 msgid "Default adapters and converters (deprecated)" msgstr "" -#: library/sqlite3.rst:1995 +#: library/sqlite3.rst:2001 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:1999 +#: library/sqlite3.rst:2005 msgid "The deprecated default adapters and converters consist of:" msgstr "" -#: library/sqlite3.rst:2001 +#: library/sqlite3.rst:2007 msgid "" "An adapter for :class:`datetime.date` objects to :class:`strings ` in " "`ISO 8601`_ format." msgstr "" -#: library/sqlite3.rst:2003 +#: library/sqlite3.rst:2009 msgid "" "An adapter for :class:`datetime.datetime` objects to strings in ISO 8601 " "format." msgstr "" -#: library/sqlite3.rst:2005 +#: library/sqlite3.rst:2011 msgid "" "A converter for :ref:`declared ` \"date\" types to :" "class:`datetime.date` objects." msgstr "" -#: library/sqlite3.rst:2007 +#: library/sqlite3.rst:2013 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:2013 +#: library/sqlite3.rst:2019 msgid "" "The default \"timestamp\" converter ignores UTC offsets in the database and " "always returns a naive :class:`datetime.datetime` object. To preserve UTC " @@ -2352,42 +2360,42 @@ msgid "" "offset-aware converter with :func:`register_converter`." msgstr "" -#: library/sqlite3.rst:2026 +#: library/sqlite3.rst:2032 msgid "Command-line interface" msgstr "" -#: library/sqlite3.rst:2028 +#: library/sqlite3.rst:2034 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:2033 +#: library/sqlite3.rst:2039 msgid "python -m sqlite3 [-h] [-v] [filename] [sql]" msgstr "" -#: library/sqlite3.rst:2035 +#: library/sqlite3.rst:2041 msgid "Type ``.quit`` or CTRL-D to exit the shell." msgstr "" -#: library/sqlite3.rst:2041 +#: library/sqlite3.rst:2047 msgid "Print CLI help." msgstr "" -#: library/sqlite3.rst:2045 +#: library/sqlite3.rst:2051 msgid "Print underlying SQLite library version." msgstr "" -#: library/sqlite3.rst:2053 +#: library/sqlite3.rst:2059 msgid "How-to guides" msgstr "" -#: library/sqlite3.rst:2058 +#: library/sqlite3.rst:2064 msgid "How to use placeholders to bind values in SQL queries" msgstr "" -#: library/sqlite3.rst:2060 +#: library/sqlite3.rst:2066 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 " @@ -2395,7 +2403,7 @@ msgid "" "close the single quote and inject ``OR TRUE`` to select all rows::" msgstr "" -#: library/sqlite3.rst:2065 +#: library/sqlite3.rst:2071 msgid "" ">>> # Never do this -- insecure!\n" ">>> symbol = input()\n" @@ -2406,7 +2414,7 @@ msgid "" ">>> cur.execute(sql)" msgstr "" -#: library/sqlite3.rst:2073 +#: library/sqlite3.rst:2079 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 " @@ -2414,7 +2422,7 @@ msgid "" "second argument of the cursor's :meth:`~Cursor.execute` method." msgstr "" -#: library/sqlite3.rst:2078 +#: library/sqlite3.rst:2084 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, " @@ -2425,7 +2433,7 @@ msgid "" "ignored. Here's an example of both styles:" msgstr "" -#: library/sqlite3.rst:2089 +#: library/sqlite3.rst:2095 msgid "" "con = sqlite3.connect(\":memory:\")\n" "cur = con.execute(\"CREATE TABLE lang(name, first_appeared)\")\n" @@ -2446,24 +2454,24 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:2116 +#: library/sqlite3.rst:2122 msgid "" ":pep:`249` numeric placeholders are *not* supported. If used, they will be " "interpreted as named placeholders." msgstr "" -#: library/sqlite3.rst:2123 +#: library/sqlite3.rst:2129 msgid "How to adapt custom Python types to SQLite values" msgstr "" -#: library/sqlite3.rst:2125 +#: library/sqlite3.rst:2131 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:2129 +#: library/sqlite3.rst:2135 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 " @@ -2473,11 +2481,11 @@ msgid "" "custom adapter functions." msgstr "" -#: library/sqlite3.rst:2141 +#: library/sqlite3.rst:2147 msgid "How to write adaptable objects" msgstr "" -#: library/sqlite3.rst:2143 +#: library/sqlite3.rst:2149 msgid "" "Suppose we have a :class:`!Point` class that represents a pair of " "coordinates, ``x`` and ``y``, in a Cartesian coordinate system. The " @@ -2487,7 +2495,7 @@ msgid "" "object passed to *protocol* will be of type :class:`PrepareProtocol`." msgstr "" -#: library/sqlite3.rst:2151 +#: library/sqlite3.rst:2157 msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -2505,18 +2513,18 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:2175 +#: library/sqlite3.rst:2181 msgid "How to register adapter callables" msgstr "" -#: library/sqlite3.rst:2177 +#: library/sqlite3.rst:2183 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:2181 +#: library/sqlite3.rst:2187 msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -2535,68 +2543,68 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:2208 +#: library/sqlite3.rst:2214 msgid "How to convert SQLite values to custom Python types" msgstr "" -#: library/sqlite3.rst:2210 +#: library/sqlite3.rst:2216 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:2215 +#: library/sqlite3.rst:2221 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:2218 +#: library/sqlite3.rst:2224 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:2223 +#: library/sqlite3.rst:2229 msgid "" "Converter functions are **always** passed a :class:`bytes` object, no matter " "the underlying SQLite data type." msgstr "" -#: library/sqlite3.rst:2226 +#: library/sqlite3.rst:2232 msgid "" "def convert_point(s):\n" " x, y = map(float, s.split(b\";\"))\n" " return Point(x, y)" msgstr "" -#: library/sqlite3.rst:2232 +#: library/sqlite3.rst:2238 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:2236 +#: library/sqlite3.rst:2242 msgid "Implicit: set *detect_types* to :const:`PARSE_DECLTYPES`" msgstr "" -#: library/sqlite3.rst:2237 +#: library/sqlite3.rst:2243 msgid "Explicit: set *detect_types* to :const:`PARSE_COLNAMES`" msgstr "" -#: library/sqlite3.rst:2238 +#: library/sqlite3.rst:2244 msgid "" "Both: set *detect_types* to ``sqlite3.PARSE_DECLTYPES | sqlite3." "PARSE_COLNAMES``. Column names take precedence over declared types." msgstr "" -#: library/sqlite3.rst:2242 +#: library/sqlite3.rst:2248 msgid "The following example illustrates the implicit and explicit approaches:" msgstr "" -#: library/sqlite3.rst:2244 +#: library/sqlite3.rst:2250 msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -2638,15 +2646,15 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:2295 +#: library/sqlite3.rst:2301 msgid "Adapter and converter recipes" msgstr "" -#: library/sqlite3.rst:2297 +#: library/sqlite3.rst:2303 msgid "This section shows recipes for common adapters and converters." msgstr "" -#: library/sqlite3.rst:2299 +#: library/sqlite3.rst:2305 msgid "" "import datetime\n" "import sqlite3\n" @@ -2657,7 +2665,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" @@ -2684,11 +2692,11 @@ msgid "" "sqlite3.register_converter(\"timestamp\", convert_timestamp)" msgstr "" -#: library/sqlite3.rst:2359 +#: library/sqlite3.rst:2365 msgid "How to use connection shortcut methods" msgstr "" -#: library/sqlite3.rst:2361 +#: library/sqlite3.rst:2367 msgid "" "Using the :meth:`~Connection.execute`, :meth:`~Connection.executemany`, and :" "meth:`~Connection.executescript` methods of the :class:`Connection` class, " @@ -2700,7 +2708,7 @@ msgid "" "object." msgstr "" -#: library/sqlite3.rst:2370 +#: library/sqlite3.rst:2376 msgid "" "# Create and fill the table.\n" "con = sqlite3.connect(\":memory:\")\n" @@ -2724,11 +2732,11 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:2402 +#: library/sqlite3.rst:2408 msgid "How to use the connection context manager" msgstr "" -#: library/sqlite3.rst:2404 +#: library/sqlite3.rst:2410 msgid "" "A :class:`Connection` object can be used as a context manager that " "automatically commits or rolls back open transactions when leaving the body " @@ -2740,21 +2748,21 @@ msgid "" "rolling back." msgstr "" -#: library/sqlite3.rst:2415 +#: library/sqlite3.rst:2421 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:2420 +#: library/sqlite3.rst:2426 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:2424 +#: library/sqlite3.rst:2430 msgid "" "con = sqlite3.connect(\":memory:\")\n" "con.execute(\"CREATE TABLE lang(id INTEGER PRIMARY KEY, name VARCHAR " @@ -2778,19 +2786,19 @@ msgid "" "con.close()" msgstr "" -#: library/sqlite3.rst:2454 +#: library/sqlite3.rst:2460 msgid "How to work with SQLite URIs" msgstr "" -#: library/sqlite3.rst:2456 +#: library/sqlite3.rst:2462 msgid "Some useful URI tricks include:" msgstr "" -#: library/sqlite3.rst:2458 +#: library/sqlite3.rst:2464 msgid "Open a database in read-only mode:" msgstr "" -#: library/sqlite3.rst:2460 +#: library/sqlite3.rst:2466 msgid "" ">>> con = sqlite3.connect(\"file:tutorial.db?mode=ro\", uri=True)\n" ">>> con.execute(\"CREATE TABLE readonly(data)\")\n" @@ -2799,24 +2807,24 @@ msgid "" ">>> con.close()" msgstr "" -#: library/sqlite3.rst:2468 +#: library/sqlite3.rst:2474 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:2471 +#: library/sqlite3.rst:2477 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:2478 +#: library/sqlite3.rst:2484 msgid "Create a shared named in-memory database:" msgstr "" -#: library/sqlite3.rst:2480 +#: library/sqlite3.rst:2486 msgid "" "db = \"file:mem1?mode=memory&cache=shared\"\n" "con1 = sqlite3.connect(db, uri=True)\n" @@ -2831,24 +2839,24 @@ msgid "" "con2.close()" msgstr "" -#: library/sqlite3.rst:2494 +#: library/sqlite3.rst:2500 msgid "" "More information about this feature, including a list of parameters, can be " "found in the `SQLite URI documentation`_." msgstr "" -#: library/sqlite3.rst:2503 +#: library/sqlite3.rst:2509 msgid "How to create and use row factories" msgstr "" -#: library/sqlite3.rst:2505 +#: library/sqlite3.rst:2511 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:2510 +#: library/sqlite3.rst:2516 msgid "" "While :attr:`!row_factory` exists as an attribute both on the :class:" "`Cursor` and the :class:`Connection`, it is recommended to set :class:" @@ -2856,7 +2864,7 @@ msgid "" "use the same row factory." msgstr "" -#: library/sqlite3.rst:2515 +#: library/sqlite3.rst:2521 msgid "" ":class:`!Row` provides indexed and case-insensitive named access to columns, " "with minimal memory overhead and performance impact over a :class:`!tuple`. " @@ -2864,17 +2872,17 @@ msgid "" "attribute:" msgstr "" -#: library/sqlite3.rst:2520 +#: library/sqlite3.rst:2526 msgid "" ">>> con = sqlite3.connect(\":memory:\")\n" ">>> con.row_factory = sqlite3.Row" msgstr "" -#: library/sqlite3.rst:2525 +#: library/sqlite3.rst:2531 msgid "Queries now return :class:`!Row` objects:" msgstr "" -#: library/sqlite3.rst:2527 +#: library/sqlite3.rst:2533 msgid "" ">>> res = con.execute(\"SELECT 'Earth' AS name, 6378 AS radius\")\n" ">>> row = res.fetchone()\n" @@ -2889,7 +2897,7 @@ msgid "" ">>> con.close()" msgstr "" -#: library/sqlite3.rst:2543 +#: library/sqlite3.rst:2549 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 " @@ -2897,25 +2905,25 @@ msgid "" "alias``." msgstr "" -#: library/sqlite3.rst:2548 +#: library/sqlite3.rst:2554 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:2551 +#: library/sqlite3.rst:2557 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:2557 +#: library/sqlite3.rst:2563 msgid "" "Using it, queries now return a :class:`!dict` instead of a :class:`!tuple`:" msgstr "" -#: library/sqlite3.rst:2559 +#: library/sqlite3.rst:2565 msgid "" ">>> con = sqlite3.connect(\":memory:\")\n" ">>> con.row_factory = dict_factory\n" @@ -2925,11 +2933,11 @@ msgid "" ">>> con.close()" msgstr "" -#: library/sqlite3.rst:2568 +#: library/sqlite3.rst:2574 msgid "The following row factory returns a :term:`named tuple`:" msgstr "" -#: library/sqlite3.rst:2570 +#: library/sqlite3.rst:2576 msgid "" "from collections import namedtuple\n" "\n" @@ -2939,11 +2947,11 @@ msgid "" " return cls._make(row)" msgstr "" -#: library/sqlite3.rst:2579 +#: library/sqlite3.rst:2585 msgid ":func:`!namedtuple_factory` can be used as follows:" msgstr "" -#: library/sqlite3.rst:2581 +#: library/sqlite3.rst:2587 msgid "" ">>> con = sqlite3.connect(\":memory:\")\n" ">>> con.row_factory = namedtuple_factory\n" @@ -2958,18 +2966,18 @@ msgid "" ">>> con.close()" msgstr "" -#: library/sqlite3.rst:2595 +#: library/sqlite3.rst:2601 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:2603 +#: library/sqlite3.rst:2609 msgid "How to handle non-UTF-8 text encodings" msgstr "" -#: library/sqlite3.rst:2605 +#: library/sqlite3.rst:2611 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 " @@ -2977,7 +2985,7 @@ msgid "" "`~Connection.text_factory` to handle such cases." msgstr "" -#: library/sqlite3.rst:2611 +#: library/sqlite3.rst:2617 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 " @@ -2988,39 +2996,39 @@ msgid "" "text using this :attr:`~Connection.text_factory`:" msgstr "" -#: library/sqlite3.rst:2620 +#: library/sqlite3.rst:2626 msgid "con.text_factory = lambda data: str(data, encoding=\"latin2\")" msgstr "" -#: library/sqlite3.rst:2624 +#: library/sqlite3.rst:2630 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:2627 +#: library/sqlite3.rst:2633 msgid "con.text_factory = lambda data: str(data, errors=\"surrogateescape\")" msgstr "" -#: library/sqlite3.rst:2633 +#: library/sqlite3.rst:2639 msgid "" "The :mod:`!sqlite3` module API does not support strings containing " "surrogates." msgstr "" -#: library/sqlite3.rst:2638 +#: library/sqlite3.rst:2644 msgid ":ref:`unicode-howto`" msgstr "" -#: library/sqlite3.rst:2644 +#: library/sqlite3.rst:2650 msgid "Explanation" msgstr "" -#: library/sqlite3.rst:2650 +#: library/sqlite3.rst:2656 msgid "Transaction control" msgstr "" -#: library/sqlite3.rst:2652 +#: library/sqlite3.rst:2658 msgid "" ":mod:`!sqlite3` offers multiple methods of controlling whether, when and how " "database transactions are opened and closed. :ref:`sqlite3-transaction-" @@ -3028,24 +3036,24 @@ msgid "" "isolation-level` retains the pre-Python 3.12 behaviour." msgstr "" -#: library/sqlite3.rst:2661 +#: library/sqlite3.rst:2667 msgid "Transaction control via the ``autocommit`` attribute" msgstr "" -#: library/sqlite3.rst:2663 +#: library/sqlite3.rst:2669 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:2668 +#: library/sqlite3.rst:2674 msgid "" "It is suggested to set *autocommit* to ``False``, which implies :pep:`249`-" "compliant transaction control. This means:" msgstr "" -#: library/sqlite3.rst:2672 +#: library/sqlite3.rst:2678 msgid "" ":mod:`!sqlite3` ensures that a transaction is always open, so :func:" "`connect`, :meth:`Connection.commit`, and :meth:`Connection.rollback` will " @@ -3054,21 +3062,21 @@ msgid "" "when opening transactions." msgstr "" -#: library/sqlite3.rst:2677 +#: library/sqlite3.rst:2683 msgid "Transactions should be committed explicitly using :meth:`!commit`." msgstr "" -#: library/sqlite3.rst:2678 +#: library/sqlite3.rst:2684 msgid "Transactions should be rolled back explicitly using :meth:`!rollback`." msgstr "" -#: library/sqlite3.rst:2679 +#: library/sqlite3.rst:2685 msgid "" "An implicit rollback is performed if the database is :meth:`~Connection." "close`-ed with pending changes." msgstr "" -#: library/sqlite3.rst:2682 +#: library/sqlite3.rst:2688 msgid "" "Set *autocommit* to ``True`` to enable SQLite's `autocommit mode`_. In this " "mode, :meth:`Connection.commit` and :meth:`Connection.rollback` have no " @@ -3077,25 +3085,25 @@ msgid "" "in_transaction` to query the low-level SQLite autocommit mode." msgstr "" -#: library/sqlite3.rst:2690 +#: library/sqlite3.rst:2696 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:2699 +#: library/sqlite3.rst:2705 msgid "Transaction control via the ``isolation_level`` attribute" msgstr "" -#: library/sqlite3.rst:2703 +#: library/sqlite3.rst:2709 msgid "" "The recommended way of controlling transactions is via the :attr:" "`~Connection.autocommit` attribute. See :ref:`sqlite3-transaction-control-" "autocommit`." msgstr "" -#: library/sqlite3.rst:2707 +#: library/sqlite3.rst:2713 msgid "" "If :attr:`Connection.autocommit` is set to :data:" "`LEGACY_TRANSACTION_CONTROL` (the default), transaction behaviour is " @@ -3103,7 +3111,7 @@ msgid "" "Otherwise, :attr:`!isolation_level` has no effect." msgstr "" -#: library/sqlite3.rst:2713 +#: library/sqlite3.rst:2719 msgid "" "If the connection attribute :attr:`~Connection.isolation_level` is not " "``None``, new transactions are implicitly opened before :meth:`~Cursor." @@ -3117,7 +3125,7 @@ msgid "" "attribute." msgstr "" -#: library/sqlite3.rst:2726 +#: library/sqlite3.rst:2732 msgid "" "If :attr:`~Connection.isolation_level` is set to ``None``, no transactions " "are implicitly opened at all. This leaves the underlying SQLite library in " @@ -3127,20 +3135,20 @@ msgid "" "in_transaction` attribute." msgstr "" -#: library/sqlite3.rst:2734 +#: library/sqlite3.rst:2740 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:2738 +#: library/sqlite3.rst:2744 msgid "" ":mod:`!sqlite3` used to implicitly commit an open transaction before DDL " "statements. This is no longer the case." msgstr "" -#: library/sqlite3.rst:2742 +#: library/sqlite3.rst:2748 msgid "" "The recommended way of controlling transactions is now via the :attr:" "`~Connection.autocommit` attribute." diff --git a/library/ssl.po b/library/ssl.po index f60c6380..786a6b0c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -50,7 +50,7 @@ msgid "" "are not necessarily appropriate for your application." msgstr "" -#: library/ssl.rst:469 includes/wasm-notavail.rst:3 +#: library/ssl.rst:470 includes/wasm-notavail.rst:3 msgid "Availability" msgstr "" @@ -182,7 +182,7 @@ msgid "" "purposes." msgstr "" -#: library/ssl.rst:130 +#: library/ssl.rst:131 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 +190,7 @@ msgid "" "constructor directly." msgstr "" -#: library/ssl.rst:135 +#: library/ssl.rst:136 msgid "" "*cafile*, *capath*, *cadata* represent optional CA certificates to trust for " "certificate verification, as in :meth:`SSLContext.load_verify_locations`. " @@ -198,7 +198,7 @@ msgid "" "system's default CA certificates instead." msgstr "" -#: library/ssl.rst:141 +#: library/ssl.rst:142 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 +210,14 @@ msgid "" "certificates." msgstr "" -#: library/ssl.rst:150 +#: library/ssl.rst:151 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:155 msgid "" "The default settings for this context include :data:" "`VERIFY_X509_PARTIAL_CHAIN` and :data:`VERIFY_X509_STRICT`. These make the " @@ -226,20 +226,20 @@ msgid "" "incompatibility with older X.509 certificates." msgstr "" -#: library/ssl.rst:161 +#: library/ssl.rst:162 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:166 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:170 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 +250,13 @@ msgid "" "still allow SSL 3.0 connections you can re-enable them using::" msgstr "" -#: library/ssl.rst:178 +#: library/ssl.rst:179 msgid "" "ctx = ssl.create_default_context(Purpose.CLIENT_AUTH)\n" "ctx.options &= ~ssl.OP_NO_SSLv3" msgstr "" -#: library/ssl.rst:182 +#: library/ssl.rst:183 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 +264,45 @@ msgid "" "recommended, you can do so using::" msgstr "" -#: library/ssl.rst:187 +#: library/ssl.rst:188 msgid "" "ctx = ssl.create_default_context()\n" "ctx.verify_flags &= ~ssl.VERIFY_X509_STRICT" msgstr "" -#: library/ssl.rst:194 +#: library/ssl.rst:195 msgid "RC4 was dropped from the default cipher string." msgstr "" -#: library/ssl.rst:198 +#: library/ssl.rst:199 msgid "ChaCha20/Poly1305 was added to the default cipher string." msgstr "" -#: library/ssl.rst:200 +#: library/ssl.rst:201 msgid "3DES was dropped from the default cipher string." msgstr "" -#: library/ssl.rst:204 +#: library/ssl.rst:205 msgid "Support for key logging to :envvar:`SSLKEYLOGFILE` was added." msgstr "" -#: library/ssl.rst:208 +#: library/ssl.rst:209 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:215 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:220 msgid "Exceptions" msgstr "" -#: library/ssl.rst:223 +#: library/ssl.rst:224 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 +312,85 @@ msgid "" "OpenSSL library." msgstr "" -#: library/ssl.rst:230 +#: library/ssl.rst:231 msgid ":exc:`SSLError` used to be a subtype of :exc:`socket.error`." msgstr "" -#: library/ssl.rst:235 +#: library/ssl.rst:236 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:244 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:252 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:260 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:269 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:278 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:286 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:294 msgid "" "A subclass of :exc:`SSLError` raised when certificate validation has failed." msgstr "" -#: library/ssl.rst:300 +#: library/ssl.rst:301 msgid "A numeric error number that denotes the verification error." msgstr "" -#: library/ssl.rst:304 +#: library/ssl.rst:305 msgid "A human readable string of the verification error." msgstr "" -#: library/ssl.rst:308 +#: library/ssl.rst:309 msgid "An alias for :exc:`SSLCertVerificationError`." msgstr "" -#: library/ssl.rst:310 +#: library/ssl.rst:311 msgid "The exception is now an alias for :exc:`SSLCertVerificationError`." msgstr "" -#: library/ssl.rst:315 +#: library/ssl.rst:316 msgid "Random generation" msgstr "" -#: library/ssl.rst:319 +#: library/ssl.rst:320 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 +399,11 @@ msgid "" "to seed the PRNG." msgstr "" -#: library/ssl.rst:325 +#: library/ssl.rst:326 msgid "For almost all applications :func:`os.urandom` is preferable." msgstr "" -#: library/ssl.rst:327 +#: library/ssl.rst:328 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 +457,18 @@ msgid "" "2018-01-05 09:34:43" msgstr "" -#: library/ssl.rst:377 +#: library/ssl.rst:378 msgid "\"notBefore\" or \"notAfter\" dates must use GMT (:rfc:`5280`)." msgstr "" -#: library/ssl.rst:379 +#: library/ssl.rst:380 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:389 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 +482,79 @@ msgid "" "parameter." msgstr "" -#: library/ssl.rst:399 +#: library/ssl.rst:400 msgid "This function is now IPv6-compatible." msgstr "" -#: library/ssl.rst:402 +#: library/ssl.rst:403 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:407 msgid "The *timeout* parameter was added." msgstr "" -#: library/ssl.rst:411 +#: library/ssl.rst:412 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:417 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:422 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:427 msgid "" ":attr:`cafile` - resolved path to cafile or ``None`` if the file doesn't " "exist," msgstr "" -#: library/ssl.rst:427 +#: library/ssl.rst:428 msgid "" ":attr:`capath` - resolved path to capath or ``None`` if the directory " "doesn't exist," msgstr "" -#: library/ssl.rst:428 +#: library/ssl.rst:429 msgid "" ":attr:`openssl_cafile_env` - OpenSSL's environment key that points to a " "cafile," msgstr "" -#: library/ssl.rst:429 +#: library/ssl.rst:430 msgid ":attr:`openssl_cafile` - hard coded path to a cafile," msgstr "" -#: library/ssl.rst:430 +#: library/ssl.rst:431 msgid "" ":attr:`openssl_capath_env` - OpenSSL's environment key that points to a " "capath," msgstr "" -#: library/ssl.rst:431 +#: library/ssl.rst:432 msgid ":attr:`openssl_capath` - hard coded path to a capath directory" msgstr "" -#: library/ssl.rst:437 +#: library/ssl.rst:438 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:442 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 +563,41 @@ msgid "" "exactly ``True`` if the certificate is trustworthy for all purposes." msgstr "" -#: library/ssl.rst:1599 library/ssl.rst:1898 +#: library/ssl.rst:1603 library/ssl.rst:1903 msgid "Example::" msgstr "" -#: library/ssl.rst:450 +#: library/ssl.rst:451 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:461 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:465 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:476 msgid "Constants" msgstr "" -#: library/ssl.rst:477 +#: library/ssl.rst:478 msgid "" "All constants are now :class:`enum.IntEnum` or :class:`enum.IntFlag` " "collections." msgstr "" -#: library/ssl.rst:483 +#: library/ssl.rst:484 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 +605,24 @@ msgid "" "expired cert, are ignored and do not abort the TLS/SSL handshake." msgstr "" -#: library/ssl.rst:489 +#: library/ssl.rst:490 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:2400 +#: library/ssl.rst:2405 msgid "See the discussion of :ref:`ssl-security` below." msgstr "" -#: library/ssl.rst:496 +#: library/ssl.rst:497 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:502 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 +631,13 @@ msgid "" "TLS handshake." msgstr "" -#: library/ssl.rst:526 +#: library/ssl.rst:527 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:513 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 +649,25 @@ msgid "" "attr:`~SSLContext.check_hostname` by default." msgstr "" -#: library/ssl.rst:522 +#: library/ssl.rst:523 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:532 msgid ":class:`enum.IntEnum` collection of CERT_* constants." msgstr "" -#: library/ssl.rst:537 +#: library/ssl.rst:538 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:546 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 +676,32 @@ msgid "" "load_verify_locations`, validation will fail." msgstr "" -#: library/ssl.rst:555 +#: library/ssl.rst:556 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:563 msgid "" "Possible value for :attr:`SSLContext.verify_flags` to disable workarounds " "for broken X.509 certificates." msgstr "" -#: library/ssl.rst:569 +#: library/ssl.rst:570 msgid "" "Possible value for :attr:`SSLContext.verify_flags` to enables proxy " "certificate verification." msgstr "" -#: library/ssl.rst:576 +#: library/ssl.rst:577 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:585 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 +710,25 @@ msgid "" "to trust its ancestor root CA." msgstr "" -#: library/ssl.rst:595 +#: library/ssl.rst:596 msgid ":class:`enum.IntFlag` collection of VERIFY_* constants." msgstr "" -#: library/ssl.rst:601 +#: library/ssl.rst:602 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:609 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:615 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 +736,35 @@ msgid "" "default." msgstr "" -#: library/ssl.rst:623 +#: library/ssl.rst:624 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:631 msgid "Alias for :data:`PROTOCOL_TLS`." msgstr "" -#: library/ssl.rst:634 +#: library/ssl.rst:635 msgid "Use :data:`PROTOCOL_TLS` instead." msgstr "" -#: library/ssl.rst:638 +#: library/ssl.rst:639 msgid "Selects SSL version 3 as the channel encryption protocol." msgstr "" -#: library/ssl.rst:640 +#: library/ssl.rst:641 msgid "" "This protocol is not available if OpenSSL is compiled with the ``no-ssl3`` " "option." msgstr "" -#: library/ssl.rst:645 +#: library/ssl.rst:646 msgid "SSL version 3 is insecure. Its use is highly discouraged." msgstr "" -#: library/ssl.rst:649 +#: library/ssl.rst:650 msgid "" "OpenSSL has deprecated all version specific protocols. Use the default " "protocol :data:`PROTOCOL_TLS_SERVER` or :data:`PROTOCOL_TLS_CLIENT` with :" @@ -772,87 +772,87 @@ msgid "" "instead." msgstr "" -#: library/ssl.rst:657 +#: library/ssl.rst:658 msgid "Selects TLS version 1.0 as the channel encryption protocol." msgstr "" -#: library/ssl.rst:672 library/ssl.rst:683 +#: library/ssl.rst:673 library/ssl.rst:684 msgid "OpenSSL has deprecated all version specific protocols." msgstr "" -#: library/ssl.rst:665 +#: library/ssl.rst:666 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:677 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:688 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:696 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:704 msgid "SSLv2 is deprecated" msgstr "" -#: library/ssl.rst:707 +#: library/ssl.rst:708 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:716 msgid "SSLv3 is deprecated" msgstr "" -#: library/ssl.rst:719 +#: library/ssl.rst:720 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:726 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:733 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:750 msgid "The option is deprecated since OpenSSL 1.1.0." msgstr "" -#: library/ssl.rst:743 +#: library/ssl.rst:744 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:755 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 +861,75 @@ msgid "" "defaults to *0*." msgstr "" -#: library/ssl.rst:762 +#: library/ssl.rst:763 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:769 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:772 msgid "This option is only available with OpenSSL 1.1.0h and later." msgstr "" -#: library/ssl.rst:777 +#: library/ssl.rst:778 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:785 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:793 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:801 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:804 msgid "This option is only available with OpenSSL 1.1.1 and later." msgstr "" -#: library/ssl.rst:809 +#: library/ssl.rst:810 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:817 msgid ":class:`enum.IntFlag` collection of OP_* constants." msgstr "" -#: library/ssl.rst:820 +#: library/ssl.rst:821 msgid "Prevent client side from requesting a session ticket." msgstr "" -#: library/ssl.rst:826 +#: library/ssl.rst:827 msgid "Ignore unexpected shutdown of TLS connections." msgstr "" -#: library/ssl.rst:844 +#: library/ssl.rst:845 msgid "This option is only available with OpenSSL 3.0.0 and later." msgstr "" -#: library/ssl.rst:834 +#: library/ssl.rst:835 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 +937,7 @@ msgid "" "platform and kernel version)." msgstr "" -#: library/ssl.rst:839 +#: library/ssl.rst:840 msgid "" "Note that with enabled kernel TLS some cryptographic operations are " "performed by the kernel directly and not via any available OpenSSL " @@ -945,38 +945,38 @@ msgid "" "requires all cryptographic operations to be performed by the FIPS provider." msgstr "" -#: library/ssl.rst:850 +#: library/ssl.rst:851 msgid "" "Allow legacy insecure renegotiation between OpenSSL and unpatched servers " "only." msgstr "" -#: library/ssl.rst:857 +#: library/ssl.rst:858 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:865 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:873 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:881 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:888 msgid "" "Whether the OpenSSL library has built-in support for the *Next Protocol " "Negotiation* as described in the `Application Layer Protocol Negotiation " @@ -985,73 +985,73 @@ msgid "" "advertise which protocols you want to support." msgstr "" -#: library/ssl.rst:897 +#: library/ssl.rst:898 msgid "" "Whether the OpenSSL library has built-in support for the SSL 2.0 protocol." msgstr "" -#: library/ssl.rst:903 +#: library/ssl.rst:904 msgid "" "Whether the OpenSSL library has built-in support for the SSL 3.0 protocol." msgstr "" -#: library/ssl.rst:909 +#: library/ssl.rst:910 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.0 protocol." msgstr "" -#: library/ssl.rst:915 +#: library/ssl.rst:916 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.1 protocol." msgstr "" -#: library/ssl.rst:921 +#: library/ssl.rst:922 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.2 protocol." msgstr "" -#: library/ssl.rst:927 +#: library/ssl.rst:928 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.3 protocol." msgstr "" -#: library/ssl.rst:933 +#: library/ssl.rst:934 msgid "Whether the OpenSSL library has built-in support for TLS-PSK." msgstr "" -#: library/ssl.rst:939 +#: library/ssl.rst:940 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:946 +#: library/ssl.rst:947 msgid "The version string of the OpenSSL library loaded by the interpreter::" msgstr "" -#: library/ssl.rst:948 +#: library/ssl.rst:949 msgid "" ">>> ssl.OPENSSL_VERSION\n" "'OpenSSL 1.0.2k 26 Jan 2017'" msgstr "" -#: library/ssl.rst:955 +#: library/ssl.rst:956 msgid "" "A tuple of five integers representing version information about the OpenSSL " "library::" msgstr "" -#: library/ssl.rst:958 +#: library/ssl.rst:959 msgid "" ">>> ssl.OPENSSL_VERSION_INFO\n" "(1, 0, 2, 11, 15)" msgstr "" -#: library/ssl.rst:965 +#: library/ssl.rst:966 msgid "The raw version number of the OpenSSL library, as a single integer::" msgstr "" -#: library/ssl.rst:967 +#: library/ssl.rst:968 msgid "" ">>> ssl.OPENSSL_VERSION_NUMBER\n" "268443839\n" @@ -1059,7 +1059,7 @@ msgid "" "'0x100020bf'" msgstr "" -#: library/ssl.rst:978 +#: library/ssl.rst:979 msgid "" "Alert Descriptions from :rfc:`5246` and others. The `IANA TLS Alert Registry " "`." msgstr "" -#: library/ssl.rst:1077 +#: library/ssl.rst:1078 msgid "" "Instances of :class:`SSLSocket` must be created using the :meth:`SSLContext." "wrap_socket` method." msgstr "" -#: library/ssl.rst:1080 +#: library/ssl.rst:1081 msgid "The :meth:`sendfile` method was added." msgstr "" -#: library/ssl.rst:1083 +#: library/ssl.rst:1084 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:1088 +#: library/ssl.rst:1089 msgid "" "It is deprecated to create a :class:`SSLSocket` instance directly, use :meth:" "`SSLContext.wrap_socket` to wrap a socket." msgstr "" -#: library/ssl.rst:1092 +#: library/ssl.rst:1093 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:1098 +#: library/ssl.rst:1099 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:1103 +#: library/ssl.rst:1104 msgid "SSL sockets also have the following additional methods and attributes:" msgstr "" -#: library/ssl.rst:1107 +#: library/ssl.rst:1108 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:1111 +#: library/ssl.rst:1112 msgid "" "Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket is :" "ref:`non-blocking ` and the read would block." msgstr "" -#: library/ssl.rst:1114 +#: library/ssl.rst:1115 msgid "" "As at any time a re-negotiation is possible, a call to :meth:`read` can also " "cause write operations." msgstr "" -#: library/ssl.rst:1117 +#: library/ssl.rst:1118 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:1122 +#: library/ssl.rst:1123 msgid "Use :meth:`~SSLSocket.recv` instead of :meth:`~SSLSocket.read`." msgstr "" -#: library/ssl.rst:1127 +#: library/ssl.rst:1128 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:1130 +#: library/ssl.rst:1131 msgid "" "Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket is :" "ref:`non-blocking ` and the write would block." msgstr "" -#: library/ssl.rst:1133 +#: library/ssl.rst:1134 msgid "" "As at any time a re-negotiation is possible, a call to :meth:`write` can " "also cause read operations." msgstr "" -#: library/ssl.rst:1136 +#: library/ssl.rst:1137 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:1140 +#: library/ssl.rst:1141 msgid "Use :meth:`~SSLSocket.send` instead of :meth:`~SSLSocket.write`." msgstr "" -#: library/ssl.rst:1145 +#: library/ssl.rst:1146 msgid "" "The :meth:`~SSLSocket.read` and :meth:`~SSLSocket.write` methods are the low-" "level methods that read and write unencrypted, application-level data and " @@ -1312,45 +1312,52 @@ msgid "" "unwrap` was not called." msgstr "" -#: library/ssl.rst:1151 +#: library/ssl.rst:1152 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:1157 +#: library/ssl.rst:1158 msgid "Perform the SSL setup handshake." msgstr "" -#: library/ssl.rst:1159 +#: library/ssl.rst:1160 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:1163 +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:1164 +#: library/ssl.rst:1168 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:1168 +#: library/ssl.rst:1172 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:1176 +#: library/ssl.rst:1180 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:1180 +#: library/ssl.rst:1184 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 " @@ -1362,7 +1369,7 @@ msgid "" "also be a ``subjectAltName`` key in the dictionary." msgstr "" -#: library/ssl.rst:1189 +#: library/ssl.rst:1193 msgid "" "The ``subject`` and ``issuer`` fields are tuples containing the sequence of " "relative distinguished names (RDNs) given in the certificate's data " @@ -1370,7 +1377,7 @@ msgid "" "value pairs. Here is a real-world example::" msgstr "" -#: library/ssl.rst:1194 +#: library/ssl.rst:1198 msgid "" "{'issuer': ((('countryName', 'IL'),),\n" " (('organizationName', 'StartCom Ltd.'),),\n" @@ -1393,7 +1400,7 @@ msgid "" " 'version': 3}" msgstr "" -#: library/ssl.rst:1213 +#: library/ssl.rst:1217 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 " @@ -1402,13 +1409,13 @@ msgid "" "socket's role:" msgstr "" -#: library/ssl.rst:1219 +#: library/ssl.rst:1223 msgid "" "for a client SSL socket, the server will always provide a certificate, " "regardless of whether validation was required;" msgstr "" -#: library/ssl.rst:1222 +#: library/ssl.rst:1226 msgid "" "for a server SSL socket, the client will only provide a certificate when " "requested by the server; therefore :meth:`getpeercert` will return :const:" @@ -1416,41 +1423,41 @@ msgid "" "or :const:`CERT_REQUIRED`)." msgstr "" -#: library/ssl.rst:1227 +#: library/ssl.rst:1231 msgid "See also :attr:`SSLContext.check_hostname`." msgstr "" -#: library/ssl.rst:1229 +#: library/ssl.rst:1233 msgid "" "The returned dictionary includes additional items such as ``issuer`` and " "``notBefore``." msgstr "" -#: library/ssl.rst:1233 +#: library/ssl.rst:1237 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:1238 +#: library/ssl.rst:1242 msgid "IPv6 address strings no longer have a trailing new line." msgstr "" -#: library/ssl.rst:1243 +#: library/ssl.rst:1247 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:1252 +#: library/ssl.rst:1256 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:1259 +#: library/ssl.rst:1263 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 " @@ -1458,7 +1465,7 @@ msgid "" "``None``." msgstr "" -#: library/ssl.rst:1265 +#: library/ssl.rst:1269 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 " @@ -1468,25 +1475,25 @@ msgid "" "socket." msgstr "" -#: library/ssl.rst:1276 +#: library/ssl.rst:1280 msgid "" "Return the compression algorithm being used as a string, or ``None`` if the " "connection isn't compressed." msgstr "" -#: library/ssl.rst:1279 +#: library/ssl.rst:1283 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:1286 +#: library/ssl.rst:1290 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:1289 +#: library/ssl.rst:1293 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` " @@ -1495,7 +1502,7 @@ msgid "" "channel binding type is requested." msgstr "" -#: library/ssl.rst:1299 +#: library/ssl.rst:1303 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 " @@ -1503,7 +1510,7 @@ msgid "" "protocols, or if the handshake has not happened yet, ``None`` is returned." msgstr "" -#: library/ssl.rst:1309 +#: library/ssl.rst:1313 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 " @@ -1511,11 +1518,11 @@ msgid "" "this will return ``None``." msgstr "" -#: library/ssl.rst:1687 +#: library/ssl.rst:1691 msgid "NPN has been superseded by ALPN" msgstr "" -#: library/ssl.rst:1322 +#: library/ssl.rst:1326 msgid "" "Performs the SSL shutdown handshake, which removes the TLS layer from the " "underlying socket, and returns the underlying socket object. This can be " @@ -1524,7 +1531,7 @@ msgid "" "other side of the connection, rather than the original socket." msgstr "" -#: library/ssl.rst:1330 +#: library/ssl.rst:1334 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 " @@ -1532,26 +1539,26 @@ msgid "" "`SSLContext.post_handshake_auth`." msgstr "" -#: library/ssl.rst:1335 +#: library/ssl.rst:1339 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:1339 +#: library/ssl.rst:1343 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:1343 +#: library/ssl.rst:1347 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:1350 +#: library/ssl.rst:1354 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 " @@ -1560,29 +1567,29 @@ msgid "" "may define more return values." msgstr "" -#: library/ssl.rst:1360 +#: library/ssl.rst:1364 msgid "" "Returns the number of already decrypted bytes available for read, pending on " "the connection." msgstr "" -#: library/ssl.rst:1365 +#: library/ssl.rst:1369 msgid "The :class:`SSLContext` object this SSL socket is tied to." msgstr "" -#: library/ssl.rst:1371 +#: library/ssl.rst:1375 msgid "" "A boolean which is ``True`` for server-side sockets and ``False`` for client-" "side sockets." msgstr "" -#: library/ssl.rst:1378 +#: library/ssl.rst:1382 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:1383 +#: library/ssl.rst:1387 msgid "" "The attribute is now always ASCII text. When ``server_hostname`` is an " "internationalized domain name (IDN), this attribute now stores the A-label " @@ -1590,7 +1597,7 @@ msgid "" "org\"``)." msgstr "" -#: library/ssl.rst:1391 +#: library/ssl.rst:1395 msgid "" "The :class:`SSLSession` for this SSL connection. The session is available " "for client and server side sockets after the TLS handshake has been " @@ -1598,11 +1605,11 @@ msgid "" "`~SSLSocket.do_handshake` has been called to reuse a session." msgstr "" -#: library/ssl.rst:1404 +#: library/ssl.rst:1408 msgid "SSL Contexts" msgstr "" -#: library/ssl.rst:1408 +#: library/ssl.rst:1412 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 " @@ -1610,7 +1617,7 @@ msgid "" "speed up repeated connections from the same clients." msgstr "" -#: library/ssl.rst:1415 +#: library/ssl.rst:1419 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 " @@ -1621,105 +1628,105 @@ msgid "" "provides the most compatibility with other versions." msgstr "" -#: library/ssl.rst:1424 +#: library/ssl.rst:1428 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:1430 +#: library/ssl.rst:1434 msgid "*client* / **server**" msgstr "" -#: library/ssl.rst:1430 +#: library/ssl.rst:1434 msgid "**SSLv2**" msgstr "" -#: library/ssl.rst:1430 +#: library/ssl.rst:1434 msgid "**SSLv3**" msgstr "" -#: library/ssl.rst:1430 +#: library/ssl.rst:1434 msgid "**TLS** [3]_" msgstr "" -#: library/ssl.rst:1430 +#: library/ssl.rst:1434 msgid "**TLSv1**" msgstr "" -#: library/ssl.rst:1430 +#: library/ssl.rst:1434 msgid "**TLSv1.1**" msgstr "" -#: library/ssl.rst:1430 +#: library/ssl.rst:1434 msgid "**TLSv1.2**" msgstr "" -#: library/ssl.rst:1432 +#: library/ssl.rst:1436 msgid "*SSLv2*" msgstr "" -#: library/ssl.rst:1433 library/ssl.rst:1435 library/ssl.rst:1437 +#: library/ssl.rst:1437 library/ssl.rst:1439 library/ssl.rst:1441 msgid "yes" msgstr "" -#: library/ssl.rst:1433 library/ssl.rst:1436 library/ssl.rst:1437 +#: library/ssl.rst:1437 library/ssl.rst:1440 library/ssl.rst:1441 msgid "no" msgstr "" -#: library/ssl.rst:1434 +#: library/ssl.rst:1438 msgid "no [1]_" msgstr "" -#: library/ssl.rst:1433 +#: library/ssl.rst:1437 msgid "*SSLv3*" msgstr "" -#: library/ssl.rst:1434 +#: library/ssl.rst:1438 msgid "no [2]_" msgstr "" -#: library/ssl.rst:1434 +#: library/ssl.rst:1438 msgid "*TLS* (*SSLv23*) [3]_" msgstr "" -#: library/ssl.rst:1435 +#: library/ssl.rst:1439 msgid "*TLSv1*" msgstr "" -#: library/ssl.rst:1436 +#: library/ssl.rst:1440 msgid "*TLSv1.1*" msgstr "" -#: library/ssl.rst:1437 +#: library/ssl.rst:1441 msgid "*TLSv1.2*" msgstr "" -#: library/ssl.rst:1440 +#: library/ssl.rst:1444 msgid "Footnotes" msgstr "" -#: library/ssl.rst:1441 +#: library/ssl.rst:1445 msgid ":class:`SSLContext` disables SSLv2 with :data:`OP_NO_SSLv2` by default." msgstr "" -#: library/ssl.rst:1442 +#: library/ssl.rst:1446 msgid ":class:`SSLContext` disables SSLv3 with :data:`OP_NO_SSLv3` by default." msgstr "" -#: library/ssl.rst:1443 +#: library/ssl.rst:1447 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:1448 +#: library/ssl.rst:1452 msgid "" ":func:`create_default_context` lets the :mod:`ssl` module choose security " "settings for a given purpose." msgstr "" -#: library/ssl.rst:1453 +#: library/ssl.rst:1457 msgid "" "The context is created with secure default values. The options :data:" "`OP_NO_COMPRESSION`, :data:`OP_CIPHER_SERVER_PREFERENCE`, :data:" @@ -1729,14 +1736,14 @@ msgid "" "ciphers and no ``MD5`` ciphers." msgstr "" -#: library/ssl.rst:1463 +#: library/ssl.rst:1467 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:1469 +#: library/ssl.rst:1473 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 " @@ -1745,7 +1752,7 @@ msgid "" "use TLS 1.2 as minimum TLS version." msgstr "" -#: library/ssl.rst:1477 +#: library/ssl.rst:1481 msgid "" ":class:`SSLContext` only supports limited mutation once it has been used by " "a connection. Adding new certificates to the internal trust store is " @@ -1753,35 +1760,35 @@ msgid "" "may result in surprising behavior." msgstr "" -#: library/ssl.rst:1484 +#: library/ssl.rst:1488 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:1489 +#: library/ssl.rst:1493 msgid ":class:`SSLContext` objects have the following methods and attributes:" msgstr "" -#: library/ssl.rst:1493 +#: library/ssl.rst:1497 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:1497 +#: library/ssl.rst:1501 msgid "Example for a context with one CA cert and one other cert::" msgstr "" -#: library/ssl.rst:1499 +#: library/ssl.rst:1503 msgid "" ">>> context.cert_store_stats()\n" "{'crl': 0, 'x509_ca': 1, 'x509': 2}" msgstr "" -#: library/ssl.rst:1507 +#: library/ssl.rst:1511 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 " @@ -1792,7 +1799,7 @@ msgid "" "more information on how the certificate is stored in the *certfile*." msgstr "" -#: library/ssl.rst:1516 +#: library/ssl.rst:1520 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 " @@ -1804,24 +1811,24 @@ msgid "" "encrypted and no password is needed." msgstr "" -#: library/ssl.rst:1525 +#: library/ssl.rst:1529 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:1529 +#: library/ssl.rst:1533 msgid "" "An :class:`SSLError` is raised if the private key doesn't match with the " "certificate." msgstr "" -#: library/ssl.rst:1532 +#: library/ssl.rst:1536 msgid "New optional argument *password*." msgstr "" -#: library/ssl.rst:1537 +#: library/ssl.rst:1541 msgid "" "Load a set of default \"certification authority\" (CA) certificates from " "default locations. On Windows it loads CA certs from the ``CA`` and ``ROOT`` " @@ -1830,7 +1837,7 @@ msgid "" "from other locations, too." msgstr "" -#: library/ssl.rst:1543 +#: library/ssl.rst:1547 msgid "" "The *purpose* flag specifies what kind of CA certificates are loaded. The " "default settings :const:`Purpose.SERVER_AUTH` loads certificates, that are " @@ -1839,35 +1846,35 @@ msgid "" "certificate verification on the server side." msgstr "" -#: library/ssl.rst:1553 +#: library/ssl.rst:1557 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:1557 +#: library/ssl.rst:1561 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:1561 +#: library/ssl.rst:1565 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:1566 +#: library/ssl.rst:1570 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:1571 +#: library/ssl.rst:1575 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 " @@ -1875,11 +1882,11 @@ msgid "" "are ignored but at least one certificate must be present." msgstr "" -#: library/ssl.rst:1576 +#: library/ssl.rst:1580 msgid "New optional argument *cadata*" msgstr "" -#: library/ssl.rst:1581 +#: library/ssl.rst:1585 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 " @@ -1889,19 +1896,19 @@ msgid "" "a SSL connection." msgstr "" -#: library/ssl.rst:1589 +#: library/ssl.rst:1593 msgid "" "Certificates in a capath directory aren't loaded unless they have been used " "at least once." msgstr "" -#: library/ssl.rst:1596 +#: library/ssl.rst:1600 msgid "" "Get a list of enabled ciphers. The list is in order of cipher priority. See :" "meth:`SSLContext.set_ciphers`." msgstr "" -#: library/ssl.rst:1601 +#: library/ssl.rst:1605 msgid "" ">>> ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23)\n" ">>> ctx.set_ciphers('ECDHE+AESGCM:!ECDSA')\n" @@ -1932,7 +1939,7 @@ msgid "" " 'symmetric': 'aes-128-gcm'}]" msgstr "" -#: library/ssl.rst:1633 +#: library/ssl.rst:1637 msgid "" "Load a set of default \"certification authority\" (CA) certificates from a " "filesystem path defined when building the OpenSSL library. Unfortunately, " @@ -1942,7 +1949,7 @@ msgid "" "configured properly." msgstr "" -#: library/ssl.rst:1642 +#: library/ssl.rst:1646 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:1781 +#: library/ssl.rst:1785 msgid "Vincent Bernat." msgstr "" -#: library/ssl.rst:1787 +#: library/ssl.rst:1791 msgid "" "Wrap an existing Python socket *sock* and return an instance of :attr:" "`SSLContext.sslsocket_class` (default :class:`SSLSocket`). The returned SSL " @@ -2132,13 +2139,13 @@ msgid "" "a :const:`~socket.SOCK_STREAM` socket; other socket types are unsupported." msgstr "" -#: library/ssl.rst:1793 +#: library/ssl.rst:1797 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:1796 +#: library/ssl.rst:1800 msgid "" "For client-side sockets, the context construction is lazy; if the underlying " "socket isn't connected yet, the context construction will be performed " @@ -2149,7 +2156,7 @@ msgid "" "exc:`SSLError`." msgstr "" -#: library/ssl.rst:1804 +#: library/ssl.rst:1808 msgid "" "On client connections, the optional parameter *server_hostname* specifies " "the hostname of the service which we are connecting to. This allows a " @@ -2158,7 +2165,7 @@ msgid "" "*server_hostname* will raise a :exc:`ValueError` if *server_side* is true." msgstr "" -#: library/ssl.rst:1810 +#: library/ssl.rst:1814 msgid "" "The parameter ``do_handshake_on_connect`` specifies whether to do the SSL " "handshake automatically after doing a :meth:`socket.connect`, or whether the " @@ -2168,7 +2175,7 @@ msgid "" "socket I/O involved in the handshake." msgstr "" -#: library/ssl.rst:1817 +#: library/ssl.rst:1821 msgid "" "The parameter ``suppress_ragged_eofs`` specifies how the :meth:`SSLSocket." "recv` method should signal unexpected EOF from the other end of the " @@ -2178,40 +2185,40 @@ msgid "" "exceptions back to the caller." msgstr "" -#: library/ssl.rst:1824 +#: library/ssl.rst:1828 msgid "*session*, see :attr:`~SSLSocket.session`." msgstr "" -#: library/ssl.rst:1826 +#: library/ssl.rst:1830 msgid "" "To wrap an :class:`SSLSocket` in another :class:`SSLSocket`, use :meth:" "`SSLContext.wrap_bio`." msgstr "" -#: library/ssl.rst:1829 +#: library/ssl.rst:1833 msgid "" "Always allow a server_hostname to be passed, even if OpenSSL does not have " "SNI." msgstr "" -#: library/ssl.rst:1859 +#: library/ssl.rst:1864 msgid "*session* argument was added." msgstr "" -#: library/ssl.rst:1836 +#: library/ssl.rst:1840 msgid "" "The method returns an instance of :attr:`SSLContext.sslsocket_class` instead " "of hard-coded :class:`SSLSocket`." msgstr "" -#: library/ssl.rst:1842 +#: library/ssl.rst:1846 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:1851 +#: library/ssl.rst:1856 msgid "" "Wrap the BIO objects *incoming* and *outgoing* and return an instance of :" "attr:`SSLContext.sslobject_class` (default :class:`SSLObject`). The SSL " @@ -2219,26 +2226,26 @@ msgid "" "outgoing BIO." msgstr "" -#: library/ssl.rst:1856 +#: library/ssl.rst:1861 msgid "" "The *server_side*, *server_hostname* and *session* parameters have the same " "meaning as in :meth:`SSLContext.wrap_socket`." msgstr "" -#: library/ssl.rst:1862 +#: library/ssl.rst:1867 msgid "" "The method returns an instance of :attr:`SSLContext.sslobject_class` instead " "of hard-coded :class:`SSLObject`." msgstr "" -#: library/ssl.rst:1868 +#: library/ssl.rst:1873 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:1876 +#: library/ssl.rst:1881 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 " @@ -2247,14 +2254,14 @@ msgid "" "the session cache since the context was created::" msgstr "" -#: library/ssl.rst:1881 +#: library/ssl.rst:1886 msgid "" ">>> stats = context.session_stats()\n" ">>> stats['hits'], stats['misses']\n" "(0, 0)" msgstr "" -#: library/ssl.rst:1887 +#: library/ssl.rst:1892 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:" @@ -2267,7 +2274,7 @@ msgid "" "With other protocols, hostname checking must be enabled explicitly." msgstr "" -#: library/ssl.rst:1900 +#: library/ssl.rst:1905 msgid "" "import socket, ssl\n" "\n" @@ -2281,7 +2288,7 @@ msgid "" "ssl_sock.connect(('www.verisign.com', 443))" msgstr "" -#: library/ssl.rst:1915 +#: library/ssl.rst:1920 msgid "" ":attr:`~SSLContext.verify_mode` is now automatically changed to :data:" "`CERT_REQUIRED` when hostname checking is enabled and :attr:`~SSLContext." @@ -2289,7 +2296,7 @@ msgid "" "failed with a :exc:`ValueError`." msgstr "" -#: library/ssl.rst:1922 +#: library/ssl.rst:1927 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 " @@ -2298,7 +2305,7 @@ msgid "" "synchronized between threads, but not between processes." msgstr "" -#: library/ssl.rst:1932 +#: library/ssl.rst:1937 msgid "" "A :class:`TLSVersion` enum member representing the highest supported TLS " "version. The value defaults to :attr:`TLSVersion.MAXIMUM_SUPPORTED`. The " @@ -2306,7 +2313,7 @@ msgid "" "const:`PROTOCOL_TLS_CLIENT`, and :const:`PROTOCOL_TLS_SERVER`." msgstr "" -#: library/ssl.rst:1937 +#: library/ssl.rst:1942 msgid "" "The attributes :attr:`~SSLContext.maximum_version`, :attr:`~SSLContext." "minimum_version` and :attr:`SSLContext.options` all affect the supported SSL " @@ -2316,38 +2323,38 @@ msgid "" "`TLSVersion.TLSv1_2` will not be able to establish a TLS 1.2 connection." msgstr "" -#: library/ssl.rst:1950 +#: library/ssl.rst:1955 msgid "" "Like :attr:`SSLContext.maximum_version` except it is the lowest supported " "version or :attr:`TLSVersion.MINIMUM_SUPPORTED`." msgstr "" -#: library/ssl.rst:1957 +#: library/ssl.rst:1962 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:1965 +#: library/ssl.rst:1970 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:1969 +#: library/ssl.rst:1974 msgid ":attr:`SSLContext.options` returns :class:`Options` flags:" msgstr "" -#: library/ssl.rst:1977 +#: library/ssl.rst:1982 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:1983 +#: library/ssl.rst:1988 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 " @@ -2355,13 +2362,13 @@ msgid "" "client certificate at any time after the handshake." msgstr "" -#: library/ssl.rst:1988 +#: library/ssl.rst:1993 msgid "" "When enabled on client-side sockets, the client signals the server that it " "supports post-handshake authentication." msgstr "" -#: library/ssl.rst:1991 +#: library/ssl.rst:1996 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 " @@ -2369,66 +2376,66 @@ msgid "" "verify_client_post_handshake` is called and some I/O is performed." msgstr "" -#: library/ssl.rst:2001 +#: library/ssl.rst:2006 msgid "" "The protocol version chosen when constructing the context. This attribute " "is read-only." msgstr "" -#: library/ssl.rst:2006 +#: library/ssl.rst:2011 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:2014 +#: library/ssl.rst:2019 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:2019 +#: library/ssl.rst:2024 msgid "" "An integer representing the `security level `_ for the context. This attribute is read-" "only." msgstr "" -#: library/ssl.rst:2027 +#: library/ssl.rst:2032 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:2033 +#: library/ssl.rst:2038 msgid ":attr:`SSLContext.verify_flags` returns :class:`VerifyFlags` flags:" msgstr "" -#: library/ssl.rst:2041 +#: library/ssl.rst:2046 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:2045 +#: library/ssl.rst:2050 msgid ":attr:`SSLContext.verify_mode` returns :class:`VerifyMode` enum:" msgstr "" -#: library/ssl.rst:2053 +#: library/ssl.rst:2058 msgid "" "Enables TLS-PSK (pre-shared key) authentication on a client-side connection." msgstr "" -#: library/ssl.rst:2104 +#: library/ssl.rst:2109 msgid "" "In general, certificate based authentication should be preferred over this " "method." msgstr "" -#: library/ssl.rst:2057 +#: library/ssl.rst:2062 msgid "" "The parameter ``callback`` is a callable object with the signature: ``def " "callback(hint: str | None) -> tuple[str | None, bytes]``. The ``hint`` " @@ -2440,27 +2447,27 @@ msgid "" "shared key. Return a zero length PSK to reject the connection." msgstr "" -#: library/ssl.rst:2113 +#: library/ssl.rst:2118 msgid "Setting ``callback`` to :const:`None` removes any existing callback." msgstr "" -#: library/ssl.rst:2070 +#: library/ssl.rst:2075 msgid "When using TLS 1.3:" msgstr "" -#: library/ssl.rst:2072 +#: library/ssl.rst:2077 msgid "the ``hint`` parameter is always :const:`None`." msgstr "" -#: library/ssl.rst:2073 +#: library/ssl.rst:2078 msgid "client-identity must be a non-empty string." msgstr "" -#: library/ssl.rst:2122 +#: library/ssl.rst:2127 msgid "Example usage::" msgstr "" -#: library/ssl.rst:2077 +#: library/ssl.rst:2082 msgid "" "context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n" "context.check_hostname = False\n" @@ -2481,18 +2488,18 @@ msgid "" "context.set_psk_client_callback(callback)" msgstr "" -#: library/ssl.rst:2140 +#: library/ssl.rst:2145 msgid "" "This method will raise :exc:`NotImplementedError` if :data:`HAS_PSK` is " "``False``." msgstr "" -#: library/ssl.rst:2102 +#: library/ssl.rst:2107 msgid "" "Enables TLS-PSK (pre-shared key) authentication on a server-side connection." msgstr "" -#: library/ssl.rst:2106 +#: library/ssl.rst:2111 msgid "" "The parameter ``callback`` is a callable object with the signature: ``def " "callback(identity: str | None) -> bytes``. The ``identity`` parameter is an " @@ -2502,19 +2509,19 @@ msgid "" "connection." msgstr "" -#: library/ssl.rst:2115 +#: library/ssl.rst:2120 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:2120 +#: library/ssl.rst:2125 msgid "" "When using TLS 1.3 the ``identity_hint`` parameter is not sent to the client." msgstr "" -#: library/ssl.rst:2124 +#: library/ssl.rst:2129 msgid "" "context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)\n" "context.maximum_version = ssl.TLSVersion.TLSv1_2\n" @@ -2533,11 +2540,11 @@ msgid "" "context.set_psk_server_callback(callback, 'ServerId_1')" msgstr "" -#: library/ssl.rst:2152 +#: library/ssl.rst:2157 msgid "Certificates" msgstr "" -#: library/ssl.rst:2154 +#: library/ssl.rst:2159 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 " @@ -2548,7 +2555,7 @@ msgid "" "other part, and **only** with the other part." msgstr "" -#: library/ssl.rst:2162 +#: library/ssl.rst:2167 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 " @@ -2562,7 +2569,7 @@ msgid "" "as two fields, called \"notBefore\" and \"notAfter\"." msgstr "" -#: library/ssl.rst:2172 +#: library/ssl.rst:2177 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 " @@ -2575,25 +2582,25 @@ msgid "" "take place." msgstr "" -#: library/ssl.rst:2182 +#: library/ssl.rst:2187 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:2186 +#: library/ssl.rst:2191 msgid "" "-----BEGIN CERTIFICATE-----\n" "... (certificate in base64 PEM encoding) ...\n" "-----END CERTIFICATE-----" msgstr "" -#: library/ssl.rst:2191 +#: library/ssl.rst:2196 msgid "Certificate chains" msgstr "" -#: library/ssl.rst:2193 +#: library/ssl.rst:2198 msgid "" "The Python files which contain certificates can contain a sequence of " "certificates, sometimes called a *certificate chain*. This chain should " @@ -2609,7 +2616,7 @@ msgid "" "agency which issued the certification authority's certificate::" msgstr "" -#: library/ssl.rst:2206 +#: library/ssl.rst:2211 msgid "" "-----BEGIN CERTIFICATE-----\n" "... (certificate for your server)...\n" @@ -2622,11 +2629,11 @@ msgid "" "-----END CERTIFICATE-----" msgstr "" -#: library/ssl.rst:2217 +#: library/ssl.rst:2222 msgid "CA certificates" msgstr "" -#: library/ssl.rst:2219 +#: library/ssl.rst:2224 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 " @@ -2638,11 +2645,11 @@ msgid "" "create_default_context`." msgstr "" -#: library/ssl.rst:2228 +#: library/ssl.rst:2233 msgid "Combined key and certificate" msgstr "" -#: library/ssl.rst:2230 +#: library/ssl.rst:2235 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` " @@ -2650,7 +2657,7 @@ msgid "" "should come before the first certificate in the certificate chain::" msgstr "" -#: library/ssl.rst:2236 +#: library/ssl.rst:2241 msgid "" "-----BEGIN RSA PRIVATE KEY-----\n" "... (private key in base64 encoding) ...\n" @@ -2660,11 +2667,11 @@ msgid "" "-----END CERTIFICATE-----" msgstr "" -#: library/ssl.rst:2244 +#: library/ssl.rst:2249 msgid "Self-signed certificates" msgstr "" -#: library/ssl.rst:2246 +#: library/ssl.rst:2251 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 " @@ -2674,7 +2681,7 @@ msgid "" "package, using something like the following::" msgstr "" -#: library/ssl.rst:2253 +#: library/ssl.rst:2258 msgid "" "% openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout cert.pem\n" "Generating a 1024 bit RSA private key\n" @@ -2700,28 +2707,28 @@ msgid "" "%" msgstr "" -#: library/ssl.rst:2275 +#: library/ssl.rst:2280 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:2281 +#: library/ssl.rst:2286 msgid "Examples" msgstr "" -#: library/ssl.rst:2284 +#: library/ssl.rst:2289 msgid "Testing for SSL support" msgstr "" -#: library/ssl.rst:2286 +#: library/ssl.rst:2291 msgid "" "To test for the presence of SSL support in a Python installation, user code " "should use the following idiom::" msgstr "" -#: library/ssl.rst:2289 +#: library/ssl.rst:2294 msgid "" "try:\n" " import ssl\n" @@ -2731,40 +2738,40 @@ msgid "" " ... # do something that requires SSL support" msgstr "" -#: library/ssl.rst:2297 +#: library/ssl.rst:2302 msgid "Client-side operation" msgstr "" -#: library/ssl.rst:2299 +#: library/ssl.rst:2304 msgid "" "This example creates a SSL context with the recommended security settings " "for client sockets, including automatic certificate verification::" msgstr "" -#: library/ssl.rst:2302 +#: library/ssl.rst:2307 msgid ">>> context = ssl.create_default_context()" msgstr "" -#: library/ssl.rst:2304 +#: library/ssl.rst:2309 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:2308 +#: library/ssl.rst:2313 msgid "" ">>> context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n" ">>> context.load_verify_locations(\"/etc/ssl/certs/ca-bundle.crt\")" msgstr "" -#: library/ssl.rst:2311 +#: library/ssl.rst:2316 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:2315 +#: library/ssl.rst:2320 msgid "" "The :data:`PROTOCOL_TLS_CLIENT` protocol configures the context for cert " "validation and hostname verification. :attr:`~SSLContext.verify_mode` is set " @@ -2772,7 +2779,7 @@ msgid "" "``True``. All other protocols create SSL contexts with insecure defaults." msgstr "" -#: library/ssl.rst:2320 +#: library/ssl.rst:2325 msgid "" "When you use the context to connect to a server, :const:`CERT_REQUIRED` and :" "attr:`~SSLContext.check_hostname` validate the server certificate: it " @@ -2781,28 +2788,28 @@ msgid "" "properties like validity and identity of the hostname::" msgstr "" -#: library/ssl.rst:2326 +#: library/ssl.rst:2331 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:2330 +#: library/ssl.rst:2335 msgid "You may then fetch the certificate::" msgstr "" -#: library/ssl.rst:2332 +#: library/ssl.rst:2337 msgid ">>> cert = conn.getpeercert()" msgstr "" -#: library/ssl.rst:2334 +#: library/ssl.rst:2339 msgid "" "Visual inspection shows that the certificate does identify the desired " "service (that is, the HTTPS host ``www.python.org``)::" msgstr "" -#: library/ssl.rst:2337 +#: library/ssl.rst:2342 msgid "" ">>> pprint.pprint(cert)\n" "{'OCSP': ('http://ocsp.digicert.com',),\n" @@ -2849,13 +2856,13 @@ msgid "" " 'version': 3}" msgstr "" -#: library/ssl.rst:2377 +#: library/ssl.rst:2382 msgid "" "Now the SSL channel is established and the certificate verified, you can " "proceed to talk with the server::" msgstr "" -#: library/ssl.rst:2380 +#: library/ssl.rst:2385 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" @@ -2878,11 +2885,11 @@ msgid "" " b'']" msgstr "" -#: library/ssl.rst:2404 +#: library/ssl.rst:2409 msgid "Server-side operation" msgstr "" -#: library/ssl.rst:2406 +#: library/ssl.rst:2411 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 " @@ -2891,7 +2898,7 @@ msgid "" "start waiting for clients to connect::" msgstr "" -#: library/ssl.rst:2412 +#: library/ssl.rst:2417 msgid "" "import socket, ssl\n" "\n" @@ -2903,14 +2910,14 @@ msgid "" "bindsocket.listen(5)" msgstr "" -#: library/ssl.rst:2421 +#: library/ssl.rst:2426 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:2425 +#: library/ssl.rst:2430 msgid "" "while True:\n" " newsocket, fromaddr = bindsocket.accept()\n" @@ -2922,13 +2929,13 @@ msgid "" " connstream.close()" msgstr "" -#: library/ssl.rst:2434 +#: library/ssl.rst:2439 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:2437 +#: library/ssl.rst:2442 msgid "" "def deal_with_client(connstream):\n" " data = connstream.recv(1024)\n" @@ -2942,7 +2949,7 @@ msgid "" " # finished with client" msgstr "" -#: library/ssl.rst:2448 +#: library/ssl.rst:2453 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 " @@ -2950,18 +2957,18 @@ msgid "" "event loop)." msgstr "" -#: library/ssl.rst:2456 +#: library/ssl.rst:2461 msgid "Notes on non-blocking sockets" msgstr "" -#: library/ssl.rst:2458 +#: library/ssl.rst:2463 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:2462 +#: library/ssl.rst:2467 msgid "" "Most :class:`SSLSocket` methods will raise either :exc:`SSLWantWriteError` " "or :exc:`SSLWantReadError` instead of :exc:`BlockingIOError` if an I/O " @@ -2973,13 +2980,13 @@ msgid "" "require a prior *write* to the underlying socket." msgstr "" -#: library/ssl.rst:2474 +#: library/ssl.rst:2479 msgid "" "In earlier Python versions, the :meth:`!SSLSocket.send` method returned zero " "instead of raising :exc:`SSLWantWriteError` or :exc:`SSLWantReadError`." msgstr "" -#: library/ssl.rst:2478 +#: library/ssl.rst:2483 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 " @@ -2989,7 +2996,7 @@ msgid "" "`~select.select`." msgstr "" -#: library/ssl.rst:2485 +#: library/ssl.rst:2490 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 " @@ -2998,13 +3005,13 @@ msgid "" "call if still necessary." msgstr "" -#: library/ssl.rst:2491 +#: library/ssl.rst:2496 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:2494 +#: library/ssl.rst:2499 msgid "" "The SSL handshake itself will be non-blocking: the :meth:`SSLSocket." "do_handshake` method has to be retried until it returns successfully. Here " @@ -3012,7 +3019,7 @@ msgid "" "readiness::" msgstr "" -#: library/ssl.rst:2499 +#: library/ssl.rst:2504 msgid "" "while True:\n" " try:\n" @@ -3024,7 +3031,7 @@ msgid "" " select.select([], [sock], [])" msgstr "" -#: library/ssl.rst:2510 +#: library/ssl.rst:2515 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:2613 +#: library/ssl.rst:2618 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:2619 +#: library/ssl.rst:2624 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:2625 +#: library/ssl.rst:2630 msgid "" "A memory buffer that can be used to pass data between Python and an SSL " "protocol instance." msgstr "" -#: library/ssl.rst:2630 +#: library/ssl.rst:2635 msgid "Return the number of bytes currently in the memory buffer." msgstr "" -#: library/ssl.rst:2634 +#: library/ssl.rst:2639 msgid "" "A boolean indicating whether the memory BIO is current at the end-of-file " "position." msgstr "" -#: library/ssl.rst:2639 +#: library/ssl.rst:2644 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:2644 +#: library/ssl.rst:2649 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:2647 +#: library/ssl.rst:2652 msgid "" "The return value is the number of bytes written, which is always equal to " "the length of *buf*." msgstr "" -#: library/ssl.rst:2652 +#: library/ssl.rst:2657 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:2658 +#: library/ssl.rst:2663 msgid "SSL session" msgstr "" -#: library/ssl.rst:2664 +#: library/ssl.rst:2669 msgid "Session object used by :attr:`~SSLSocket.session`." msgstr "" -#: library/ssl.rst:2676 +#: library/ssl.rst:2681 msgid "Security considerations" msgstr "" -#: library/ssl.rst:2679 +#: library/ssl.rst:2684 msgid "Best defaults" msgstr "" -#: library/ssl.rst:2681 +#: library/ssl.rst:2686 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:" @@ -3316,13 +3323,13 @@ msgid "" "settings." msgstr "" -#: library/ssl.rst:2688 +#: library/ssl.rst:2693 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:2691 +#: library/ssl.rst:2696 msgid "" ">>> import ssl, smtplib\n" ">>> smtp = smtplib.SMTP(\"mail.python.org\", port=587)\n" @@ -3331,13 +3338,13 @@ msgid "" "(220, b'2.0.0 Ready to start TLS')" msgstr "" -#: library/ssl.rst:2697 +#: library/ssl.rst:2702 msgid "" "If a client certificate is needed for the connection, it can be added with :" "meth:`SSLContext.load_cert_chain`." msgstr "" -#: library/ssl.rst:2700 +#: library/ssl.rst:2705 msgid "" "By contrast, if you create the SSL context by calling the :class:" "`SSLContext` constructor yourself, it will not have certificate validation " @@ -3345,15 +3352,15 @@ msgid "" "paragraphs below to achieve a good security level." msgstr "" -#: library/ssl.rst:2706 +#: library/ssl.rst:2711 msgid "Manual settings" msgstr "" -#: library/ssl.rst:2709 +#: library/ssl.rst:2714 msgid "Verifying certificates" msgstr "" -#: library/ssl.rst:2711 +#: library/ssl.rst:2716 msgid "" "When calling the :class:`SSLContext` constructor directly, :const:" "`CERT_NONE` is the default. Since it does not authenticate the other peer, " @@ -3368,13 +3375,13 @@ msgid "" "enabled." msgstr "" -#: library/ssl.rst:2723 +#: library/ssl.rst:2728 msgid "" "Hostname matchings is now performed by OpenSSL. Python no longer uses :func:" -"`match_hostname`." +"`!match_hostname`." msgstr "" -#: library/ssl.rst:2727 +#: library/ssl.rst:2732 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 " @@ -3382,11 +3389,11 @@ msgid "" "certificate." msgstr "" -#: library/ssl.rst:2733 +#: library/ssl.rst:2738 msgid "Protocol versions" msgstr "" -#: library/ssl.rst:2735 +#: library/ssl.rst:2740 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 " @@ -3395,14 +3402,14 @@ msgid "" "by default." msgstr "" -#: library/ssl.rst:2743 +#: library/ssl.rst:2748 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:2748 +#: library/ssl.rst:2753 msgid "" "The SSL context created above will only allow TLSv1.3 and later (if " "supported by your system) connections to a server. :const:" @@ -3410,11 +3417,11 @@ msgid "" "default. You have to load certificates into the context." msgstr "" -#: library/ssl.rst:2755 +#: library/ssl.rst:2760 msgid "Cipher selection" msgstr "" -#: library/ssl.rst:2757 +#: library/ssl.rst:2762 msgid "" "If you have advanced security requirements, fine-tuning of the ciphers " "enabled when negotiating a SSL session is possible through the :meth:" @@ -3427,11 +3434,11 @@ msgid "" "command on your system." msgstr "" -#: library/ssl.rst:2768 +#: library/ssl.rst:2773 msgid "Multi-processing" msgstr "" -#: library/ssl.rst:2770 +#: library/ssl.rst:2775 msgid "" "If using this module as part of a multi-processed application (using, for " "example the :mod:`multiprocessing` or :mod:`concurrent.futures` modules), be " @@ -3442,17 +3449,17 @@ msgid "" "sufficient." msgstr "" -#: library/ssl.rst:2782 +#: library/ssl.rst:2787 msgid "TLS 1.3" msgstr "" -#: library/ssl.rst:2786 +#: library/ssl.rst:2791 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:2789 +#: library/ssl.rst:2794 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." @@ -3460,14 +3467,14 @@ msgid "" "`SSLContext.get_ciphers` returns them." msgstr "" -#: library/ssl.rst:2793 +#: library/ssl.rst:2798 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:2796 +#: library/ssl.rst:2801 msgid "" "Client-side certificates are also no longer verified during the initial " "handshake. A server can request a certificate at any time. Clients process " @@ -3475,103 +3482,103 @@ msgid "" "server." msgstr "" -#: library/ssl.rst:2800 +#: library/ssl.rst:2805 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:2806 +#: library/ssl.rst:2811 msgid "Class :class:`socket.socket`" msgstr "" -#: library/ssl.rst:2807 +#: library/ssl.rst:2812 msgid "Documentation of underlying :mod:`socket` class" msgstr "" -#: library/ssl.rst:2809 +#: library/ssl.rst:2814 msgid "" "`SSL/TLS Strong Encryption: An Introduction `_" msgstr "" -#: library/ssl.rst:2810 +#: library/ssl.rst:2815 msgid "Intro from the Apache HTTP Server documentation" msgstr "" -#: library/ssl.rst:2812 +#: library/ssl.rst:2817 msgid "" ":rfc:`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: " "Certificate-Based Key Management <1422>`" msgstr "" -#: library/ssl.rst:2813 +#: library/ssl.rst:2818 msgid "Steve Kent" msgstr "" -#: library/ssl.rst:2815 +#: library/ssl.rst:2820 msgid ":rfc:`RFC 4086: Randomness Requirements for Security <4086>`" msgstr "" -#: library/ssl.rst:2816 +#: library/ssl.rst:2821 msgid "Donald E., Jeffrey I. Schiller" msgstr "" -#: library/ssl.rst:2818 +#: library/ssl.rst:2823 msgid "" ":rfc:`RFC 5280: Internet X.509 Public Key Infrastructure Certificate and " "Certificate Revocation List (CRL) Profile <5280>`" msgstr "" -#: library/ssl.rst:2819 +#: library/ssl.rst:2824 msgid "D. Cooper" msgstr "" -#: library/ssl.rst:2821 +#: library/ssl.rst:2826 msgid "" ":rfc:`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 " "<5246>`" msgstr "" -#: library/ssl.rst:2822 +#: library/ssl.rst:2827 msgid "T. Dierks et. al." msgstr "" -#: library/ssl.rst:2824 +#: library/ssl.rst:2829 msgid ":rfc:`RFC 6066: Transport Layer Security (TLS) Extensions <6066>`" msgstr "" -#: library/ssl.rst:2825 +#: library/ssl.rst:2830 msgid "D. Eastlake" msgstr "" -#: library/ssl.rst:2827 +#: library/ssl.rst:2832 msgid "" "`IANA TLS: Transport Layer Security (TLS) Parameters `_" msgstr "" -#: library/ssl.rst:2828 +#: library/ssl.rst:2833 msgid "IANA" msgstr "" -#: library/ssl.rst:2830 +#: library/ssl.rst:2835 msgid "" ":rfc:`RFC 7525: Recommendations for Secure Use of Transport Layer Security " "(TLS) and Datagram Transport Layer Security (DTLS) <7525>`" msgstr "" -#: library/ssl.rst:2831 +#: library/ssl.rst:2836 msgid "IETF" msgstr "" -#: library/ssl.rst:2833 +#: library/ssl.rst:2838 msgid "" "`Mozilla's Server Side TLS recommendations `_" msgstr "" -#: library/ssl.rst:2834 +#: library/ssl.rst:2839 msgid "Mozilla" msgstr "" @@ -3599,10 +3606,10 @@ msgstr "" msgid "Secure Sockets Layer" msgstr "" -#: library/ssl.rst:2145 +#: library/ssl.rst:2150 msgid "certificates" msgstr "" -#: library/ssl.rst:2147 +#: library/ssl.rst:2152 msgid "X509 certificate" msgstr "" diff --git a/library/stat.po b/library/stat.po index d185fc52..1475a5a2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 956a46bc..aefd15a3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 7407a184..f1559535 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-05-04 22:06+0300\n" -"PO-Revision-Date: 2025-05-03 00:13+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-28 22:51+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" @@ -134,17 +134,17 @@ msgid "These are the Boolean operations, ordered by ascending priority:" msgstr "" "Αυτές είναι οι λογικές (Boolean) πράξεις, ταξινομημένες βάσει προτεραιότητας:" -#: library/stdtypes.rst:144 library/stdtypes.rst:366 library/stdtypes.rst:965 -#: library/stdtypes.rst:1170 +#: library/stdtypes.rst:144 library/stdtypes.rst:366 library/stdtypes.rst:963 +#: library/stdtypes.rst:1182 msgid "Operation" msgstr "Πράξη" -#: library/stdtypes.rst:276 library/stdtypes.rst:416 library/stdtypes.rst:1170 +#: library/stdtypes.rst:276 library/stdtypes.rst:416 library/stdtypes.rst:1182 msgid "Result" msgstr "Αποτέλεσμα" -#: library/stdtypes.rst:276 library/stdtypes.rst:965 library/stdtypes.rst:2578 -#: library/stdtypes.rst:3797 +#: library/stdtypes.rst:276 library/stdtypes.rst:963 library/stdtypes.rst:2764 +#: library/stdtypes.rst:3984 msgid "Notes" msgstr "Σημειώσεις" @@ -156,7 +156,7 @@ msgstr "``x or y``" msgid "if *x* is true, then *x*, else *y*" msgstr "αν το *x* είναι true, τότε *x*, αλλιώς *y*" -#: library/stdtypes.rst:967 library/stdtypes.rst:1181 library/stdtypes.rst:3803 +#: library/stdtypes.rst:965 library/stdtypes.rst:1197 library/stdtypes.rst:3990 msgid "\\(1)" msgstr "\\(1)" @@ -168,8 +168,8 @@ msgstr "``x and y``" msgid "if *x* is false, then *x*, else *y*" msgstr "αν το *x* είναι false, τότε *x*, αλλιώς *y*" -#: library/stdtypes.rst:289 library/stdtypes.rst:1209 library/stdtypes.rst:2590 -#: library/stdtypes.rst:3809 +#: library/stdtypes.rst:289 library/stdtypes.rst:1208 library/stdtypes.rst:2776 +#: library/stdtypes.rst:3996 msgid "\\(2)" msgstr "\\(2)" @@ -181,14 +181,14 @@ msgstr "``not x``" msgid "if *x* is false, then ``True``, else ``False``" msgstr "if *x* είναι false, τότε ``True``, αλλιώς ``False``" -#: library/stdtypes.rst:979 library/stdtypes.rst:2592 library/stdtypes.rst:2596 -#: library/stdtypes.rst:3811 library/stdtypes.rst:3815 -#: library/stdtypes.rst:3817 +#: library/stdtypes.rst:2778 library/stdtypes.rst:2782 +#: library/stdtypes.rst:3998 library/stdtypes.rst:4002 +#: library/stdtypes.rst:4004 msgid "\\(3)" msgstr "\\(3)" -#: library/stdtypes.rst:320 library/stdtypes.rst:1016 library/stdtypes.rst:2624 -#: library/stdtypes.rst:3847 +#: library/stdtypes.rst:320 library/stdtypes.rst:1007 library/stdtypes.rst:2810 +#: library/stdtypes.rst:4034 msgid "Notes:" msgstr "Σημειώσεις:" @@ -240,8 +240,8 @@ msgstr "" msgid "This table summarizes the comparison operations:" msgstr "Αυτός ο πίνακας συνοψίζει τις πράξεις σύγκρισης:" -#: library/stdtypes.rst:2410 library/stdtypes.rst:2578 -#: library/stdtypes.rst:3797 +#: library/stdtypes.rst:2596 library/stdtypes.rst:2764 +#: library/stdtypes.rst:3984 msgid "Meaning" msgstr "Έννοια" @@ -583,7 +583,7 @@ msgstr "" "ένας μιγαδικός αριθμός με πραγματικό μέρος *re*, φανταστικό μέρος *im*. Το " "*im* μετατρέπεται αυτόματα σε μηδέν." -#: library/stdtypes.rst:1202 library/stdtypes.rst:3834 +#: library/stdtypes.rst:2772 library/stdtypes.rst:4021 msgid "\\(6)" msgstr "\\(6)" @@ -619,8 +619,8 @@ msgstr "``pow(x, y)``" msgid "*x* to the power *y*" msgstr "*x* σε δύναμη του *y*" -#: library/stdtypes.rst:313 library/stdtypes.rst:1194 library/stdtypes.rst:2614 -#: library/stdtypes.rst:3830 library/stdtypes.rst:3837 +#: library/stdtypes.rst:313 library/stdtypes.rst:2800 library/stdtypes.rst:4017 +#: library/stdtypes.rst:4024 msgid "\\(5)" msgstr "\\(5)" @@ -795,8 +795,8 @@ msgstr "``x | y``" msgid "bitwise :dfn:`or` of *x* and *y*" msgstr "bitwise :dfn:`or` των *x* και *y*" -#: library/stdtypes.rst:421 library/stdtypes.rst:1216 library/stdtypes.rst:2604 -#: library/stdtypes.rst:3823 +#: library/stdtypes.rst:421 library/stdtypes.rst:2786 library/stdtypes.rst:4006 +#: library/stdtypes.rst:4010 msgid "\\(4)" msgstr "\\(4)" @@ -1539,7 +1539,7 @@ msgstr "" #: library/stdtypes.rst:812 msgid "Boolean Type - :class:`bool`" -msgstr "Τύπος Boolean - :class`bool`" +msgstr "Τύπος Boolean - :class:`bool`" #: library/stdtypes.rst:814 msgid "" @@ -1776,127 +1776,107 @@ msgstr "" "πράξεις σύγκρισης. Οι πράξεις ``+`` (συνένωση) και ``*`` (επανάληψη) έχουν " "την ίδια προτεραιότητα με τις αντίστοιχες αριθμητικές πράξεις. [3]_" -#: library/stdtypes.rst:967 +#: library/stdtypes.rst:965 msgid "``x in s``" msgstr "``x in s``" -#: library/stdtypes.rst:967 +#: library/stdtypes.rst:965 msgid "``True`` if an item of *s* is equal to *x*, else ``False``" msgstr "``True`` αν ένα στοιχείο του *s* είναι ίσο με το *x*, αλλιώς ``False``" -#: library/stdtypes.rst:970 +#: library/stdtypes.rst:968 msgid "``x not in s``" msgstr "``x not in s``" -#: library/stdtypes.rst:970 +#: library/stdtypes.rst:968 msgid "``False`` if an item of *s* is equal to *x*, else ``True``" msgstr "``False`` αν ένα στοιχείο του *s* είναι ίσο με το *x*, αλλιώς ``True``" -#: library/stdtypes.rst:973 +#: library/stdtypes.rst:971 msgid "``s + t``" msgstr "``s + t``" -#: library/stdtypes.rst:973 +#: library/stdtypes.rst:971 msgid "the concatenation of *s* and *t*" msgstr "η συνένωση του *s* και *t*" -#: library/stdtypes.rst:973 +#: library/stdtypes.rst:971 msgid "(6)(7)" msgstr "(6)(7)" -#: library/stdtypes.rst:976 +#: library/stdtypes.rst:974 msgid "``s * n`` or ``n * s``" msgstr "``s * n`` ή ``n * s``" -#: library/stdtypes.rst:976 +#: library/stdtypes.rst:974 msgid "equivalent to adding *s* to itself *n* times" msgstr "ίσο με την πρόσθεση του *s* στον εαυτό του *n* φορές" -#: library/stdtypes.rst:976 +#: library/stdtypes.rst:974 msgid "(2)(7)" msgstr "(2)(7)" -#: library/stdtypes.rst:979 +#: library/stdtypes.rst:977 msgid "``s[i]``" msgstr "``s[i]``" -#: library/stdtypes.rst:979 +#: library/stdtypes.rst:977 msgid "*i*\\ th item of *s*, origin 0" msgstr "*i*\\ ο στοιχείο του *s*, αρχή το 0" -#: library/stdtypes.rst:981 +#: library/stdtypes.rst:977 +msgid "(3)(8)" +msgstr "(3)(8)" + +#: library/stdtypes.rst:979 msgid "``s[i:j]``" msgstr "``s[i:j]``" -#: library/stdtypes.rst:981 +#: library/stdtypes.rst:979 msgid "slice of *s* from *i* to *j*" msgstr "slice (υποσύνολο) του *s* από το *i* μέχρι το *j*" -#: library/stdtypes.rst:981 +#: library/stdtypes.rst:979 msgid "(3)(4)" msgstr "(3)(4)" -#: library/stdtypes.rst:983 +#: library/stdtypes.rst:981 msgid "``s[i:j:k]``" msgstr "``s[i:j:k]``" -#: library/stdtypes.rst:983 +#: library/stdtypes.rst:981 msgid "slice of *s* from *i* to *j* with step *k*" msgstr "slice (υποσύνολο) του *s* από το *i* μέχρι το *j* με βήμα *k*" -#: library/stdtypes.rst:983 +#: library/stdtypes.rst:981 msgid "(3)(5)" msgstr "(3)(5)" -#: library/stdtypes.rst:986 +#: library/stdtypes.rst:984 msgid "``len(s)``" msgstr "``len(s)``" -#: library/stdtypes.rst:986 +#: library/stdtypes.rst:984 msgid "length of *s*" msgstr "μήκος του *s*" -#: library/stdtypes.rst:988 +#: library/stdtypes.rst:986 msgid "``min(s)``" msgstr "``min(s)``" -#: library/stdtypes.rst:988 +#: library/stdtypes.rst:986 msgid "smallest item of *s*" msgstr "μικρότερο αντικείμενο του *s*" -#: library/stdtypes.rst:990 +#: library/stdtypes.rst:988 msgid "``max(s)``" msgstr "``max(s)``" -#: library/stdtypes.rst:990 +#: library/stdtypes.rst:988 msgid "largest item of *s*" msgstr "μεγαλύτερο αντικείμενο του *s*" -#: library/stdtypes.rst:992 -msgid "``s.index(x[, i[, j]])``" -msgstr "``s.index(x[, i[, j]])``" - -#: library/stdtypes.rst:992 -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:3805 -msgid "\\(8)" -msgstr "\\(8)" - -#: library/stdtypes.rst:996 -msgid "``s.count(x)``" -msgstr "``s.count(x)``" - -#: library/stdtypes.rst:996 -msgid "total number of occurrences of *x* in *s*" -msgstr "συνολικές εμφανίσεις του *x* στο *s*" - -#: library/stdtypes.rst:1000 +#: library/stdtypes.rst:991 msgid "" "Sequences of the same type also support comparisons. In particular, tuples " "and lists are compared lexicographically by comparing corresponding " @@ -1911,7 +1891,7 @@ msgstr "" "ακολουθίες πρέπει να είναι του ίδιου τύπου και να έχουν το ίδιο μήκος. (Για " "πλήρεις λεπτομέρειες δείτε την αναφορά :ref:`comparisons`.)" -#: library/stdtypes.rst:1010 +#: library/stdtypes.rst:1001 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 " @@ -1926,7 +1906,7 @@ msgstr "" "`IndexError` ή ένα :exc:`StopIteration` γίνει raise (ή όταν ο δείκτης πέσει " "κάτω από το μηδέν)." -#: library/stdtypes.rst:1019 +#: library/stdtypes.rst:1010 msgid "" "While the ``in`` and ``not in`` operations are used only for simple " "containment testing in the general case, some specialised sequences (such " @@ -1939,7 +1919,7 @@ msgstr "" "class:`bytearray`) τις χρησιμοποιούν επίσης για subsequence testing (έλεγχο " "υποακολουθίας)::" -#: library/stdtypes.rst:1024 +#: library/stdtypes.rst:1015 msgid "" ">>> \"gg\" in \"eggs\"\n" "True" @@ -1947,7 +1927,7 @@ msgstr "" ">>> \"gg\" in \"eggs\"\n" "True" -#: library/stdtypes.rst:1028 +#: library/stdtypes.rst:1019 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 " @@ -1959,7 +1939,7 @@ msgstr "" "ακολουθίας *s* δεν αντιγράφονται· αναφέρονται πολλές φορές. Αυτό συχνά " "στοιχειώνει τα άτομα που ξεκινούν με Python- σκεφτείτε::" -#: library/stdtypes.rst:1033 +#: library/stdtypes.rst:1024 msgid "" ">>> lists = [[]] * 3\n" ">>> lists\n" @@ -1975,7 +1955,7 @@ msgstr "" ">>> lists\n" "[[3], [3], [3]]" -#: library/stdtypes.rst:1040 +#: library/stdtypes.rst:1031 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 " @@ -1988,7 +1968,7 @@ msgstr "" "στοιχεία της ``lists`` τροποποιεί αυτή τη μοναδική λίστα. Μπορείτε να " "δημιουργήσετε μια λίστα από διαφορετικές λίστες με αυτόν τον τρόπο::" -#: library/stdtypes.rst:1045 +#: library/stdtypes.rst:1036 msgid "" ">>> lists = [[] for i in range(3)]\n" ">>> lists[0].append(3)\n" @@ -2004,7 +1984,7 @@ msgstr "" ">>> lists\n" "[[3], [5], [7]]" -#: library/stdtypes.rst:1052 +#: library/stdtypes.rst:1043 msgid "" "Further explanation is available in the FAQ entry :ref:`faq-multidimensional-" "list`." @@ -2012,7 +1992,7 @@ msgstr "" "Περαιτέρω επεξήγηση είναι διαθέσιμη στο λήμμα FAQ :ref:`faq-multidimensional-" "list`." -#: library/stdtypes.rst:1056 +#: library/stdtypes.rst:1047 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 " @@ -2022,7 +2002,7 @@ msgstr "" "ακολουθίας *s*: το ``len(s) + i`` ή το ``len(s) + j`` αντικαθίσταται. " "Σημειώστε όμως ότι το ``-0`` εξακολουθεί να είναι ``0``." -#: library/stdtypes.rst:1061 +#: library/stdtypes.rst:1052 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 " @@ -2037,7 +2017,7 @@ msgstr "" "ή είναι ``μηδέν``, χρησιμοποιήστε το ``len(s)``. Εάν το *i* είναι " "μεγαλύτερο από ή ίσο με το *j*, το υποσύνολο (slice) είναι κενό." -#: library/stdtypes.rst:1068 +#: library/stdtypes.rst:1059 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 " @@ -2060,7 +2040,7 @@ msgstr "" "από το πρόσημο του *k*). Σημειώστε ότι το *k* δεν μπορεί να είναι μηδέν. " "Εάν το *k* είναι ``None``, αντιμετωπίζεται όπως το ``1``." -#: library/stdtypes.rst:1079 +#: library/stdtypes.rst:1070 msgid "" "Concatenating immutable sequences always results in a new object. This " "means that building up a sequence by repeated concatenation will have a " @@ -2074,7 +2054,7 @@ msgstr "" "γραμμικό κόστος χρόνου εκτέλεσης (runtime cost), πρέπει να μεταβείτε σε μία " "από τις παρακάτω εναλλακτικές λύσεις::" -#: library/stdtypes.rst:1084 +#: library/stdtypes.rst:1075 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 " @@ -2085,7 +2065,7 @@ msgstr "" "ένα :class:`io.StringIO` instance και ανακτήσετε την τιμή της όταν " "ολοκληρωθεί" -#: library/stdtypes.rst:1088 +#: library/stdtypes.rst:1079 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 :" @@ -2098,17 +2078,17 @@ msgstr "" "αντικείμενο. Τα αντικείμενα :class:`bytearray` είναι μεταβλητά και έχουν " "έναν αποτελεσματικό μηχανισμό συνολικής κατανομής (overallocation)" -#: library/stdtypes.rst:1093 +#: library/stdtypes.rst:1084 msgid "if concatenating :class:`tuple` objects, extend a :class:`list` instead" msgstr "" "αν συνενώνεται αντικείμενα :class:`tuple`, επεκτείνετε μια :class:`list` " "αντ' αυτού" -#: library/stdtypes.rst:1095 +#: library/stdtypes.rst:1086 msgid "for other types, investigate the relevant class documentation" msgstr "για άλλους τύπους, ερευνήστε τη σχετική τεκμηρίωση των κλάσεων" -#: library/stdtypes.rst:1099 +#: library/stdtypes.rst:1090 msgid "" "Some sequence types (such as :class:`range`) only support item sequences " "that follow specific patterns, and hence don't support sequence " @@ -2118,28 +2098,57 @@ msgstr "" "ακολουθίες στοιχείων που ακολουθούν συγκεκριμένα μοτίβα, και ως εκ τούτου " "δεν υποστηρίζουν ακολουθία συνένωση ή επανάληψη." -#: library/stdtypes.rst:1104 +#: library/stdtypes.rst:1095 +msgid "An :exc:`IndexError` is raised if *i* is outside the sequence range." +msgstr "" +"Μια :exc:`IndexError` γίνεται raise εάν το *i* είναι εκτός του εύρους της " +"ακολουθίας." + +#: library/stdtypes.rst:1098 +msgid "Sequence Methods" +msgstr "Μέθοδοι Ακολουθίας" + +#: library/stdtypes.rst:1099 +msgid "Sequence types also support the following methods:" +msgstr "Οι τύποι ακολουθίας υποστηρίζουμε επίσης τις παρακάτω μεθόδους:" + +#: library/stdtypes.rst:1109 +msgid "Return the total number of occurrences of *value* in *sequence*." +msgstr "Επιστρέφει τον συνολικό αριθμό εμφανίσεων του *value* στο *sequence*." + +#: library/stdtypes.rst:1119 +msgid "Return the index of the first occurrence of *value* in *sequence*." +msgstr "Επιστρέφει τον δείκτη της πρώτης εμφάνισης του *value* στο *sequence*." + +#: library/stdtypes.rst:1305 +msgid "Raises :exc:`ValueError` if *value* is not found in *sequence*." +msgstr "" +"Κάνει raise μια :exc:`ValueError` εάν το *value* δεν βρεθεί στο *sequence*." + +#: library/stdtypes.rst:1123 +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:1129 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." +"Not all sequence types support passing the *start* and *stop* arguments." msgstr "" -"Το ``index`` κάνει raise :exc:`ValueError` όταν το *x* δεν βρίσκεται στο " -"*s*. Όχι όλες οι υλοποιήσεις υποστηρίζουν τη διαβίβαση των πρόσθετων ορίων " -"*i* και *j*. Αυτές οι παράμετροι επιτρέπουν την αποτελεσματική αναζήτηση " -"υποτμημάτων της ακολουθίας. Η διαβίβαση των πρόσθετων ορίων είναι περίπου " -"ισοδύναμη με τη χρήση του ``s[i:j].index(x)``, μόνο χωρίς να αντιγράφονται " -"δεδομένα και με τον επιστρεφόμενο δείκτη να είναι σχετικός με την αρχή της " -"ακολουθίας και όχι στην αρχή του υποσυνόλου (slice)." +"Δεν υποστηρίζουν όλοι οι τύποι ακολουθίας τη μετάδοση των *start* και *stop* " +"ορισμάτων." -#: library/stdtypes.rst:1115 +#: library/stdtypes.rst:1135 msgid "Immutable Sequence Types" msgstr "Τύποι Αμετάβλητων Ακολουθιών (Sequences)" -#: library/stdtypes.rst:1122 +#: library/stdtypes.rst:1142 msgid "" "The only operation that immutable sequence types generally implement that is " "not also implemented by mutable sequence types is support for the :func:" @@ -2149,7 +2158,7 @@ msgstr "" "δεν είναι υλοποιημένοι από μεταβλητούς τύπους ακολουθίας, είναι η υποστήριξη " "της :func:`hash` built-in." -#: library/stdtypes.rst:1126 +#: library/stdtypes.rst:1146 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:" @@ -2159,7 +2168,7 @@ msgstr "" "class:`tuple`, να χρησιμοποιούνται ως κλειδιά :class:`dict` και να " "αποθηκεύονται σε :class:`set` και :class:`frozenset` instances." -#: library/stdtypes.rst:1130 +#: library/stdtypes.rst:1150 msgid "" "Attempting to hash an immutable sequence that contains unhashable values " "will result in :exc:`TypeError`." @@ -2167,11 +2176,11 @@ msgstr "" "Η προσπάθεια κατακερματισμού μιας αμετάβλητης ακολουθίας που περιέχει μη " "κατακερματιστέες (unhashable) τιμές θα οδηγήσει σε :exc:`TypeError`." -#: library/stdtypes.rst:1137 +#: library/stdtypes.rst:1157 msgid "Mutable Sequence Types" msgstr "Τύποι Μεταβλητών Ακολουθιών (Sequences)" -#: library/stdtypes.rst:1144 +#: library/stdtypes.rst:1164 msgid "" "The operations in the following table are defined on mutable sequence types. " "The :class:`collections.abc.MutableSequence` ABC is provided to make it " @@ -2182,7 +2191,7 @@ msgstr "" "κάνει ευκολότερη την σωστή υλοποίηση αυτών των λειτουργιών σε " "προσαρμοσμένους τύπους ακολουθιών." -#: library/stdtypes.rst:1148 +#: library/stdtypes.rst:1168 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 " @@ -2195,80 +2204,65 @@ msgstr "" "επιβάλλονται από το *s* (για παράδειγμα, το :class:`bytearray` δέχεται μόνο " "ακέραιους που πληρούν τον περιορισμό ``0 <= x <= 255``)." -#: library/stdtypes.rst:1172 +#: library/stdtypes.rst:1184 msgid "``s[i] = x``" msgstr "``s[i] = x``" -#: library/stdtypes.rst:1172 +#: library/stdtypes.rst:1184 msgid "item *i* of *s* is replaced by *x*" msgstr "το στοιχείο *i* του *s* αντικαθίσταται από το *x*" -#: library/stdtypes.rst:1175 +#: library/stdtypes.rst:1187 +msgid "``del s[i]``" +msgstr "``del s[i]``" + +#: library/stdtypes.rst:1187 +msgid "removes item *i* of *s*" +msgstr "αφαιρεί το αντικείμενο *i* από το *s*" + +#: library/stdtypes.rst:1189 msgid "``s[i:j] = t``" msgstr "``s[i:j] = t``" -#: library/stdtypes.rst:1175 +#: library/stdtypes.rst:1189 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:1179 +#: library/stdtypes.rst:1193 msgid "``del s[i:j]``" msgstr "``del s[i:j]``" -#: library/stdtypes.rst:1179 -msgid "same as ``s[i:j] = []``" -msgstr "ίδιο με το ``s[i:j] = []``" +#: library/stdtypes.rst:1193 +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:1181 +#: library/stdtypes.rst:1197 msgid "``s[i:j:k] = t``" msgstr "``s[i:j:k] = t``" -#: library/stdtypes.rst:1181 +#: library/stdtypes.rst:1197 msgid "the elements of ``s[i:j:k]`` are replaced by those of *t*" msgstr "τα στοιχεία του ``s[i:j:k]`` αντικαθίστανται από εκείνα του *t*" -#: library/stdtypes.rst:1184 +#: library/stdtypes.rst:1200 msgid "``del s[i:j:k]``" msgstr "``del s[i:j:k]``" -#: library/stdtypes.rst:1184 +#: library/stdtypes.rst:1200 msgid "removes the elements of ``s[i:j:k]`` from the list" msgstr "αφαιρεί τα στοιχεία του ``s[i:j:k]`` από τη λίστα" -#: library/stdtypes.rst:1187 -msgid "``s.append(x)``" -msgstr "``s.append(x)``" - -#: library/stdtypes.rst:1187 -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:1191 -msgid "``s.clear()``" -msgstr "``s.clear()``" +#: library/stdtypes.rst:1203 +msgid "``s += t``" +msgstr "``s += t``" -#: library/stdtypes.rst:1191 -msgid "removes all items from *s* (same as ``del s[:]``)" -msgstr "αφαιρεί όλα τα στοιχεία από το *s* (ίδιο με το ``del s[:]``)" - -#: library/stdtypes.rst:1194 -msgid "``s.copy()``" -msgstr "``s.copy()``" - -#: library/stdtypes.rst:1194 -msgid "creates a shallow copy of *s* (same as ``s[:]``)" -msgstr "δημιουργεί ένα shallow αντίγραφο του *s* (ίδιο με το ``s[:]``)" - -#: library/stdtypes.rst:1197 -msgid "``s.extend(t)`` or ``s += t``" -msgstr "``s.extend(t)`` ή ``s += t``" - -#: library/stdtypes.rst:1197 +#: library/stdtypes.rst:1203 msgid "" "extends *s* with the contents of *t* (for the most part the same as " "``s[len(s):len(s)] = t``)" @@ -2276,118 +2270,125 @@ msgstr "" "επεκτείνει το *s* με τα περιεχόμενα του *t* (ως επί το πλείστον το ίδιο με " "το ``s[len(s):len(s)] = t``)" -#: library/stdtypes.rst:1202 +#: library/stdtypes.rst:1208 msgid "``s *= n``" msgstr "``s *= n``" -#: library/stdtypes.rst:1202 +#: library/stdtypes.rst:1208 msgid "updates *s* with its contents repeated *n* times" msgstr "ενημερώνει το *s* με το περιεχόμενό του επαναλαμβανόμενο *n* φορές" -#: library/stdtypes.rst:1205 -msgid "``s.insert(i, x)``" -msgstr "``s.insert(i, x)``" - -#: library/stdtypes.rst:1205 +#: library/stdtypes.rst:1215 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:1209 -msgid "``s.pop()`` or ``s.pop(i)``" -msgstr "``s.pop()`` ή ``s.pop(i)``" +"Αν το *k* δεν είναι ίσο με ``1``, το *t* πρέπει να έχει το ίδιο μήκος με το " +"τμήμα που αντικαθιστά." -#: library/stdtypes.rst:1209 -msgid "retrieves the item at *i* and also removes it from *s*" -msgstr "ανακτά το στοιχείο στο *i* και το αφαιρεί επίσης από το *s*" +#: library/stdtypes.rst:1218 +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:1212 -msgid "``s.remove(x)``" -msgstr "``s.remove(x)``" +#: library/stdtypes.rst:1224 +msgid "Mutable Sequence Methods" +msgstr "Μέθοδοι Μεταβλητών Ακολουθιών (Sequences)" -#: library/stdtypes.rst:1212 -msgid "removes the first item from *s* where ``s[i]`` is equal to *x*" -msgstr "αφαιρεί το πρώτο στοιχείο από το *s* όπου ``s[i]`` είναι ίσο με *x*" +#: library/stdtypes.rst:1225 +msgid "Mutable sequence types also support the following methods:" +msgstr "" +"Οι τύποι μεταβλητών ακολουθιών υποστηρίζουν επίσης τις παρακάτω μεθόδους:" -#: library/stdtypes.rst:1216 -msgid "``s.reverse()``" -msgstr "``s.reverse()``" +#: library/stdtypes.rst:1234 +msgid "" +"Append *value* to the end of the sequence This is equivalent to writing " +"``seq[len(seq):len(seq)] = [value]``." +msgstr "" +"Προσθέτει το *value* στο τέλος της ακολουθίας Αυτό είναι παρόμοιο με το να " +"γράψουμε ``seq[len(seq):len(seq)] = [value]``." -#: library/stdtypes.rst:1216 -msgid "reverses the items of *s* in place" -msgstr "αντιστρέφει τα στοιχεία του *s*" +#: library/stdtypes.rst:1246 +msgid "" +"Remove all items from *sequence*. This is equivalent to writing ``del " +"sequence[:]``." +msgstr "" +"Αφαιρεί όλα τα αντικείμενα από το *sequence*. Αυτό είναι ισοδύναμο με το να " +"γράψουμε ``del sequence[:]``." -#: library/stdtypes.rst:1224 +#: library/stdtypes.rst:1258 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:1227 +#: library/stdtypes.rst:1261 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:1231 -msgid ":meth:`remove` raises :exc:`ValueError` when *x* is not found in *s*." +#: library/stdtypes.rst:1272 +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:1234 +#: library/stdtypes.rst:1283 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:1239 +#: library/stdtypes.rst:1293 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:1245 -msgid ":meth:`clear` and :meth:`!copy` methods." -msgstr "μέθοδοι :meth:`clear` και :meth:`!copy`." +#: library/stdtypes.rst:1303 +msgid "Remove the first item from *sequence* where ``sequence[i] == value``." +msgstr "" +"Αφαιρεί το πρώτο στοιχείο από το *sequence* όπου ``sequence[i]`` είναι ίσο " +"με *value*." -#: library/stdtypes.rst:1249 +#: library/stdtypes.rst:1314 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:1258 +#: library/stdtypes.rst:1322 msgid "Lists" msgstr "Λίστες" -#: library/stdtypes.rst:1262 +#: library/stdtypes.rst:1326 msgid "" "Lists are mutable sequences, typically used to store collections of " "homogeneous items (where the precise degree of similarity will vary by " @@ -2397,33 +2398,33 @@ msgstr "" "αποθήκευση συλλογών ομοιογενών στοιχείων (όπου ο ακριβής βαθμός ομοιότητας " "ποικίλλει ανάλογα με εφαρμογή)." -#: library/stdtypes.rst:1268 +#: library/stdtypes.rst:1332 msgid "Lists may be constructed in several ways:" msgstr "Οι λίστες μπορούν να κατασκευαστούν με διάφορους τρόπους:" -#: library/stdtypes.rst:1270 +#: library/stdtypes.rst:1334 msgid "Using a pair of square brackets to denote the empty list: ``[]``" msgstr "" "Χρησιμοποιείστε ένα ζεύγος αγκυλών για να δηλώσετε την κενή λίστα: ``[]``" -#: library/stdtypes.rst:1271 +#: library/stdtypes.rst:1335 msgid "" "Using square brackets, separating items with commas: ``[a]``, ``[a, b, c]``" msgstr "" "Χρησιμοποιώντας αγκύλες, διαχωρίζοντας τα στοιχεία με κόμματα: ``[a]``, " "``[a, b, c]``" -#: library/stdtypes.rst:1272 +#: library/stdtypes.rst:1336 msgid "Using a list comprehension: ``[x for x in iterable]``" msgstr "Χρήση ενός list comprehension: ``[x for x in iterable]``" -#: library/stdtypes.rst:1273 +#: library/stdtypes.rst:1337 msgid "Using the type constructor: ``list()`` or ``list(iterable)``" msgstr "" "Χρήση του κατασκευαστή τύπου (type constructor): ``list()`` ή " "``list(iterable)``" -#: library/stdtypes.rst:1275 +#: library/stdtypes.rst:1339 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 " @@ -2442,7 +2443,7 @@ msgstr "" "'b', 'c']`` και η ``list( (1, 2, 3) )`` επιστρέφει ``[1, 2, 3]``. Αν δεν " "δοθεί κανένα όρισμα, ο κατασκευαστής δημιουργεί μία νέα κενή λίστα, ``[]``." -#: library/stdtypes.rst:1284 +#: library/stdtypes.rst:1348 msgid "" "Many other operations also produce lists, including the :func:`sorted` built-" "in." @@ -2450,7 +2451,7 @@ msgstr "" "Πολλές άλλες λειτουργίες παράγουν επίσης λίστες, συμπεριλαμβανομένης της " "built-in :func:`sorted`." -#: library/stdtypes.rst:1287 +#: library/stdtypes.rst:1351 msgid "" "Lists implement all of the :ref:`common ` and :ref:`mutable " "` sequence operations. Lists also provide the following " @@ -2460,7 +2461,7 @@ msgstr "" "`mutable ` λειτουργίες ακολουθίας. Οι λίστες παρέχουν " "επίσης την ακόλουθη πρόσθετη μέθοδο:" -#: library/stdtypes.rst:1293 +#: library/stdtypes.rst:1357 msgid "" "This method sorts the list in place, using only ``<`` comparisons between " "items. Exceptions are not suppressed - if any comparison operations fail, " @@ -2472,7 +2473,7 @@ msgstr "" "πράξη σύγκρισης, ολόκληρη η λειτουργία ταξινόμησης θα αποτύχει (και η λίστα " "θα παραμείνει πιθανότατα σε μια μερικώς τροποποιημένη κατάσταση)." -#: library/stdtypes.rst:1298 +#: library/stdtypes.rst:1362 msgid "" ":meth:`sort` accepts two arguments that can only be passed by keyword (:ref:" "`keyword-only arguments `):" @@ -2480,7 +2481,7 @@ msgstr "" "η :meth:`sort` δέχεται δύο ορίσματα που μπορούν να περάσουν μόνο με τη λέξη-" "κλειδί (:ref:`keyword-only arguments `):" -#: library/stdtypes.rst:1301 +#: library/stdtypes.rst:1365 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 " @@ -2496,7 +2497,7 @@ msgstr "" "(default) ``None`` σημαίνει ότι τα στοιχεία της λίστας ταξινομούνται " "απευθείας χωρίς να υπολογίζεται ξεχωριστή τιμή κλειδιού." -#: library/stdtypes.rst:1308 +#: library/stdtypes.rst:1372 msgid "" "The :func:`functools.cmp_to_key` utility is available to convert a 2.x style " "*cmp* function to a *key* function." @@ -2504,7 +2505,7 @@ msgstr "" "Το utility :func:`functools.cmp_to_key` είναι διαθέσιμο για τη μετατροπή μια " "συνάρτηση *cmp* στυλ 2.x σε συνάρτηση *key*." -#: library/stdtypes.rst:1311 +#: library/stdtypes.rst:1375 msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." @@ -2512,7 +2513,7 @@ msgstr "" "η *reverse* είναι μια λογική (boolean) τιμή. Αν τεθεί σε ``True``, τότε τα " "στοιχεία της λίστας ταξινομούνται σαν να ήταν αντίστροφη κάθε σύγκριση." -#: library/stdtypes.rst:1314 +#: library/stdtypes.rst:1378 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 " @@ -2525,7 +2526,7 @@ msgstr "" "(χρησιμοποιήστε την :func:`sorted` για να ζητήσετε μια νέα περίπτωση " "ταξινομημένης λίστας)." -#: library/stdtypes.rst:1319 +#: library/stdtypes.rst:1383 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 " @@ -2538,14 +2539,14 @@ msgstr "" "περάσματα (για παράδειγμα, ταξινόμηση κατά τμήμα, στη συνέχεια με βάση το " "μισθολογικό κλιμάκιο κτλ)." -#: library/stdtypes.rst:1324 +#: library/stdtypes.rst:1388 msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" "Για παραδείγματα ταξινόμησης και ένα σύντομο tutorial, δείτε :ref:" "`sortinghowto`." -#: library/stdtypes.rst:1328 +#: library/stdtypes.rst:1392 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 " @@ -2558,11 +2559,11 @@ msgstr "" "κάνει raise :exc:`ValueError` αν ανιχνεύσει ότι η λίστα έχει μεταλλαχθεί " "κατά τη διάρκεια μιας ταξινόμησης." -#: library/stdtypes.rst:1337 +#: library/stdtypes.rst:1401 msgid "Tuples" msgstr "Πλειάδες (Tuples)" -#: library/stdtypes.rst:1341 +#: library/stdtypes.rst:1405 msgid "" "Tuples are immutable sequences, typically used to store collections of " "heterogeneous data (such as the 2-tuples produced by the :func:`enumerate` " @@ -2577,31 +2578,31 @@ msgstr "" "ομοιογενών δεδομένων (όπως για παράδειγμα για να επιτρέπεται η αποθήκευση σε " "ένα :class:`set` ή σε ένα :class:`dict` instance)." -#: library/stdtypes.rst:1349 +#: library/stdtypes.rst:1413 msgid "Tuples may be constructed in a number of ways:" msgstr "Οι πλειάδες (tuples) μπορούν να κατασκευαστούν με διάφορους τρόπους:" -#: library/stdtypes.rst:1351 +#: library/stdtypes.rst:1415 msgid "Using a pair of parentheses to denote the empty tuple: ``()``" msgstr "" "Χρήση ενός ζεύγους παρενθέσεων για να δηλωθεί το κενό tuple (πλειάδα): ``()``" -#: library/stdtypes.rst:1352 +#: library/stdtypes.rst:1416 msgid "Using a trailing comma for a singleton tuple: ``a,`` or ``(a,)``" msgstr "" "Χρήση ενός κόμματος στο τέλος για ένα μοναδικό tuple (πλειάδα): ``a,`` ή " "``(a,)``" -#: library/stdtypes.rst:1353 +#: library/stdtypes.rst:1417 msgid "Separating items with commas: ``a, b, c`` or ``(a, b, c)``" msgstr "Διαχωρισμός στοιχείων με κόμμα: ``a, b, c`` ή ``(a, b, c)``" -#: library/stdtypes.rst:1354 +#: library/stdtypes.rst:1418 msgid "Using the :func:`tuple` built-in: ``tuple()`` or ``tuple(iterable)``" msgstr "" "Χρήση του ενσωματωμένου :func:`tuple`: ``tuple()`` ή ``tuple(iterable)``" -#: library/stdtypes.rst:1356 +#: library/stdtypes.rst:1420 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 " @@ -2620,7 +2621,7 @@ msgstr "" "3] )`` επιστρέφει ``(1, 2, 3)``. Αν δεν δοθεί κανένα όρισμα, ο κατασκευαστής " "δημιουργεί μια ένα κενό tuple, ``()``." -#: library/stdtypes.rst:1364 +#: library/stdtypes.rst:1428 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 " @@ -2635,7 +2636,7 @@ msgstr "" "τρία ορίσματα, ενώ η ``f((a, b, c))`` είναι μια συνάρτηση κλήση συνάρτησης " "με ένα 3-tuple ως μοναδικό όρισμα." -#: library/stdtypes.rst:1370 +#: library/stdtypes.rst:1434 msgid "" "Tuples implement all of the :ref:`common ` sequence " "operations." @@ -2643,7 +2644,7 @@ msgstr "" "Τα Tuples υλοποιούν όλες τις πράξεις ακολουθιών :ref:`common `." -#: library/stdtypes.rst:1373 +#: library/stdtypes.rst:1437 msgid "" "For heterogeneous collections of data where access by name is clearer than " "access by index, :func:`collections.namedtuple` may be a more appropriate " @@ -2654,11 +2655,11 @@ msgstr "" "namedtuple` μπορεί να είναι μια πιο κατάλληλη επιλογή από ένα απλό " "αντικείμενο tuple (πλειάδα)." -#: library/stdtypes.rst:1381 +#: library/stdtypes.rst:1445 msgid "Ranges" msgstr "Εύρη (Ranges)" -#: library/stdtypes.rst:1385 +#: library/stdtypes.rst:1449 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." @@ -2667,7 +2668,7 @@ msgstr "" "συνήθως χρησιμοποιείται για την επανάληψη ενός συγκεκριμένου αριθμού " "επαναλήψεων σε βρόχους :keyword:`for`." -#: library/stdtypes.rst:1392 +#: library/stdtypes.rst:1456 msgid "" "The arguments to the range constructor must be integers (either built-in :" "class:`int` or any object that implements the :meth:`~object.__index__` " @@ -2682,7 +2683,7 @@ msgstr "" "*start* παραλείπεται, το προεπιλογή (default) είναι ``0``. Εάν το *step* " "είναι μηδέν, γίνεται raise ένα :exc:`ValueError`." -#: library/stdtypes.rst:1398 +#: library/stdtypes.rst:1462 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``." @@ -2690,7 +2691,7 @@ msgstr "" "Για ένα θετικό *βήμα*, τα περιεχόμενα του range (εύρους) ``r`` καθορίζονται " "από τον τύπο ``r[i] = start + step*i`` όπου ``i >= 0`` και ``r[i] < stop``." -#: library/stdtypes.rst:1402 +#: library/stdtypes.rst:1466 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 " @@ -2700,7 +2701,7 @@ msgstr "" "καθορίζονται από τον τύπο ``r[i] = start + step*i``, αλλά οι περιορισμοί " "είναι ``i >= 0`` και ``r[i] > stop``." -#: library/stdtypes.rst:1406 +#: library/stdtypes.rst:1470 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 " @@ -2711,7 +2712,7 @@ msgstr "" "ερμηνεύονται ως δείκτες από το τέλος της ακολουθίας που καθορίζεται από τους " "θετικούς δείκτες." -#: library/stdtypes.rst:1411 +#: library/stdtypes.rst:1475 msgid "" "Ranges containing absolute values larger than :data:`sys.maxsize` are " "permitted but some features (such as :func:`len`) may raise :exc:" @@ -2721,11 +2722,11 @@ msgstr "" "είναι επιτρεπτά, αλλά ορισμένα χαρακτηριστικά (όπως :func:`len`) μπορεί να " "κάνουν raise :exc:`OverflowError`." -#: library/stdtypes.rst:1415 +#: library/stdtypes.rst:1479 msgid "Range examples::" msgstr "Παραδείγματα Range::" -#: library/stdtypes.rst:1417 +#: library/stdtypes.rst:1481 msgid "" ">>> list(range(10))\n" "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n" @@ -2757,7 +2758,7 @@ msgstr "" ">>> list(range(1, 0))\n" "[]" -#: library/stdtypes.rst:1432 +#: library/stdtypes.rst:1496 msgid "" "Ranges implement all of the :ref:`common ` sequence " "operations except concatenation and repetition (due to the fact that range " @@ -2770,23 +2771,23 @@ msgstr "" "αυστηρό μοτίβο και η επανάληψη και η συνένωση συνήθως παραβιάζουν αυτό το " "πρότυπο)." -#: library/stdtypes.rst:1439 +#: library/stdtypes.rst:1503 msgid "" "The value of the *start* parameter (or ``0`` if the parameter was not " "supplied)" msgstr "Η τιμή της παραμέτρου *start* (ή ``0`` αν η παράμετρος δεν παρέχεται)" -#: library/stdtypes.rst:1444 +#: library/stdtypes.rst:1508 msgid "The value of the *stop* parameter" msgstr "Η τιμή της παραμέτρου *stop*" -#: library/stdtypes.rst:1448 +#: library/stdtypes.rst:1512 msgid "" "The value of the *step* parameter (or ``1`` if the parameter was not " "supplied)" msgstr "Η τιμή της παραμέτρου *step* (ή ``1`` αν η παράμετρος δεν παρέχεται)" -#: library/stdtypes.rst:1451 +#: library/stdtypes.rst:1515 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 " @@ -2801,7 +2802,7 @@ msgstr "" "``step``, υπολογίζοντας τα μεμονωμένα στοιχεία και τις υποπεριοχές όπως " "απαιτείται)." -#: library/stdtypes.rst:1457 +#: library/stdtypes.rst:1521 msgid "" "Range objects implement the :class:`collections.abc.Sequence` ABC, and " "provide features such as containment tests, element index lookup, slicing " @@ -2811,7 +2812,7 @@ msgstr "" "και παρέχουν χαρακτηριστικά όπως δοκιμές περιορισμού, αναζήτηση δείκτη " "στοιχείου, τεμαχισμό και υποστήριξη αρνητικών δεικτών (βλ. :ref:`typesseq`):" -#: library/stdtypes.rst:1477 +#: library/stdtypes.rst:1541 msgid "" "Testing range objects for equality with ``==`` and ``!=`` compares them as " "sequences. That is, two range objects are considered equal if they " @@ -2828,7 +2829,7 @@ msgstr "" "παράδειγμα ``range(0) == range(2, 1, 3)`` ή ``range(0, 3, 2) == range(0, 4, " "2)``.)" -#: library/stdtypes.rst:1484 +#: library/stdtypes.rst:1548 msgid "" "Implement the Sequence ABC. Support slicing and negative indices. Test :" "class:`int` objects for membership in constant time instead of iterating " @@ -2838,7 +2839,7 @@ msgstr "" "αρνητικούς δείκτες. Δοκιμάστε τα :class:`int` αντικείμενα για συμμετοχή σε " "σταθερό χρόνο αντί της επανάληψης σε όλα τα αντικείμενα." -#: library/stdtypes.rst:1490 +#: library/stdtypes.rst:1554 msgid "" "Define '==' and '!=' to compare range objects based on the sequence of " "values they define (instead of comparing based on object identity)." @@ -2847,7 +2848,7 @@ msgstr "" "ακολουθία των τιμών που ορίζουν (αντί να συγκρίνουν με βάση την ταυτότητα " "του αντικειμένου)." -#: library/stdtypes.rst:1495 +#: library/stdtypes.rst:1559 msgid "" "Added the :attr:`~range.start`, :attr:`~range.stop` and :attr:`~range.step` " "attributes." @@ -2855,7 +2856,7 @@ msgstr "" "Προστέθηκαν τα :attr:`~range.start`, :attr:`~range.stop` και :attr:`~range." "step` attributes." -#: library/stdtypes.rst:1500 +#: library/stdtypes.rst:1564 msgid "" "The `linspace recipe `_ shows how to implement a lazy version of range " @@ -2865,11 +2866,11 @@ msgstr "" "spaced-numbers-linspace/>`_ δείχνει πώς να υλοποιήσετε μια lazy έκδοση του " "range κατάλληλη για εφαρμογές κινητής υποδιαστολής." -#: library/stdtypes.rst:1512 +#: library/stdtypes.rst:1576 msgid "Text Sequence Type --- :class:`str`" msgstr "Τύπος Ακολουθίας (Sequence) Κειμένου --- :class:`str`" -#: library/stdtypes.rst:1514 +#: library/stdtypes.rst:1578 msgid "" "Textual data in Python is handled with :class:`str` objects, or :dfn:" "`strings`. Strings are immutable :ref:`sequences ` of Unicode code " @@ -2880,15 +2881,15 @@ msgstr "" "`sequences ` των Unicode points. Τα αλφαριθμητικά γράφονται με " "διάφορους τρόπους:" -#: library/stdtypes.rst:1519 +#: library/stdtypes.rst:1583 msgid "Single quotes: ``'allows embedded \"double\" quotes'``" msgstr "Απλά εισαγωγικά: ``'allows embedded \"double\" quotes'``" -#: library/stdtypes.rst:1520 +#: library/stdtypes.rst:1584 msgid "Double quotes: ``\"allows embedded 'single' quotes\"``" msgstr "Διπλά εισαγωγικά: ``'allows embedded \"double\" quotes'``" -#: library/stdtypes.rst:1521 +#: library/stdtypes.rst:1585 msgid "" "Triple quoted: ``'''Three single quotes'''``, ``\"\"\"Three double " "quotes\"\"\"``" @@ -2896,7 +2897,7 @@ msgstr "" "Τριπλά εισαγωγικά: ``'''Three single quotes'''``, ``\"\"\"Three double " "quotes\"\"\"``" -#: library/stdtypes.rst:1523 +#: library/stdtypes.rst:1587 msgid "" "Triple quoted strings may span multiple lines - all associated whitespace " "will be included in the string literal." @@ -2904,7 +2905,7 @@ msgstr "" "Τα αλφαριθμητικά σε τριπλά εισαγωγικά μπορούν να καλύπτουν πολλές γραμμές - " "όλα τα σχετικά κενά θα συμπεριληφθούν στο αλφαριθμητικό." -#: library/stdtypes.rst:1526 +#: library/stdtypes.rst:1590 msgid "" "String literals that are part of a single expression and have only " "whitespace between them will be implicitly converted to a single string " @@ -2914,7 +2915,7 @@ msgstr "" "έχουν μόνο κενά μεταξύ τους, θα μετατραπούν σιωπηρά σε ένα ενιαίο " "αλφαριθμητικό literal. Δηλαδή, ``(\"spam \" \"eggs\") == \"spam eggs\"``." -#: library/stdtypes.rst:1530 +#: library/stdtypes.rst:1594 msgid "" "See :ref:`strings` for more about the various forms of string literal, " "including supported :ref:`escape sequences `, and the " @@ -2926,7 +2927,7 @@ msgstr "" "(\"raw\") πρόθεμα που απενεργοποιεί την επεξεργασία των περισσότερων " "ακολουθιών διαφυγής." -#: library/stdtypes.rst:1534 +#: library/stdtypes.rst:1598 msgid "" "Strings may also be created from other objects using the :class:`str` " "constructor." @@ -2934,7 +2935,7 @@ msgstr "" "Τα αλφαριθμητικά (strings) μπορούν επίσης να δημιουργηθούν από άλλα " "αντικείμενα χρησιμοποιώντας τον constructor :class:`str`." -#: library/stdtypes.rst:1537 +#: library/stdtypes.rst:1601 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]``." @@ -2943,7 +2944,7 @@ msgstr "" "συμβολοσειράς (string) παράγει συμβολοσειρές μήκους 1. Δηλαδή, για μια μη " "κενή συμβολοσειρά *s*, ``s[0] == s[0:1]``." -#: library/stdtypes.rst:1543 +#: library/stdtypes.rst:1607 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 " @@ -2953,7 +2954,7 @@ msgstr "" "`str.join` ή το :class:`io.StringIO` μπορεί να χρησιμοποιηθεί για την " "αποτελεσματική κατασκευή συμβολοσειρών από πολλαπλά μέρη." -#: library/stdtypes.rst:1547 +#: library/stdtypes.rst:1611 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 " @@ -2964,7 +2965,7 @@ msgstr "" "επίδραση στη σημασία των αλφαριθμητικών και δεν μπορεί να συνδυαστεί με το " "πρόθεμα ``r``." -#: library/stdtypes.rst:1559 +#: library/stdtypes.rst:1625 msgid "" "Return a :ref:`string ` version of *object*. If *object* is not " "provided, returns the empty string. Otherwise, the behavior of ``str()`` " @@ -2974,7 +2975,7 @@ msgstr "" "δεν παρέχεται, επιστρέφει κενό αλφαριθμητικό. Διαφορετικά, η συμπεριφορά " "της ``str()`` εξαρτάται από το αν δίνεται *encoding* ή *errors*, ως εξής." -#: library/stdtypes.rst:1563 +#: library/stdtypes.rst:1629 msgid "" "If neither *encoding* nor *errors* is given, ``str(object)`` returns :meth:" "`type(object).__str__(object) `, which is the \"informal\" " @@ -2990,7 +2991,7 @@ msgstr "" "Εάν το *object* δεν έχει την :meth:`~object.__str__`, τότε η :func:`str` " "επιστρέφει τη μέθοδο :func:`repr(object) `." -#: library/stdtypes.rst:1575 +#: library/stdtypes.rst:1641 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 " @@ -3011,7 +3012,7 @@ msgstr "" "`binaryseq` και :ref:`bufferobjects` για πληροφορίες σχετικά με τα " "αντικείμενα buffer." -#: library/stdtypes.rst:1584 +#: library/stdtypes.rst:1650 msgid "" "Passing a :class:`bytes` object to :func:`str` without the *encoding* or " "*errors* arguments falls under the first case of returning the informal " @@ -3023,7 +3024,7 @@ msgstr "" "αναπαράστασης συμβολοσειράς (string) (δείτε επίσης την επιλογή :option:`-b` " "της γραμμής εντολών για Python). Για παράδειγμα::" -#: library/stdtypes.rst:1589 +#: library/stdtypes.rst:1655 msgid "" ">>> str(b'Zoot!')\n" "\"b'Zoot!'\"" @@ -3031,7 +3032,7 @@ msgstr "" ">>> str(b'Zoot!')\n" "\"b'Zoot!'\"" -#: library/stdtypes.rst:1592 +#: library/stdtypes.rst:1658 msgid "" "For more information on the ``str`` class and its methods, see :ref:" "`textseq` and the :ref:`string-methods` section below. To output formatted " @@ -3044,11 +3045,11 @@ msgstr "" "ενότητες :ref:`f-strings` και :ref:`formatstrings`. Επιπλέον, δείτε την " "ενότητα :ref:`stringservices`." -#: library/stdtypes.rst:1604 +#: library/stdtypes.rst:1670 msgid "String Methods" msgstr "Μέθοδοι Συμβολοσειράς (String)" -#: library/stdtypes.rst:1609 +#: library/stdtypes.rst:1675 msgid "" "Strings implement all of the :ref:`common ` sequence " "operations, along with the additional methods described below." @@ -3057,7 +3058,7 @@ msgstr "" "` ακολουθιών, μαζί με τις πρόσθετες μεθόδους που " "περιγράφονται παρακάτω." -#: library/stdtypes.rst:1612 +#: library/stdtypes.rst:1678 msgid "" "Strings also support two styles of string formatting, one providing a large " "degree of flexibility and customization (see :meth:`str.format`, :ref:" @@ -3074,7 +3075,7 @@ msgstr "" "χρησιμοποιηθεί σωστά, αλλά είναι συχνά ταχύτερο για τις περιπτώσεις που " "μπορεί να χειριστεί (:ref:`old-string-formatting`)." -#: library/stdtypes.rst:1619 +#: library/stdtypes.rst:1685 msgid "" "The :ref:`textservices` section of the standard library covers a number of " "other modules that provide various text related utilities (including regular " @@ -3085,7 +3086,7 @@ msgstr "" "σχετίζονται με το κείμενο (συμπεριλαμβανομένης της υποστήριξης των κανονικών " "εκφράσεων στην ενότητα :mod:`re`)." -#: library/stdtypes.rst:1625 +#: library/stdtypes.rst:1691 msgid "" "Return a copy of the string with its first character capitalized and the " "rest lowercased." @@ -3093,7 +3094,7 @@ msgstr "" "Επιστρέφει ένα αντίγραφο της συμβολοσειράς (string) με τον πρώτο χαρακτήρα " "κεφαλαίο και τα υπόλοιπα με πεζά γράμματα." -#: library/stdtypes.rst:1628 +#: library/stdtypes.rst:1694 msgid "" "The first character is now put into titlecase rather than uppercase. This " "means that characters like digraphs will only have their first letter " @@ -3103,7 +3104,7 @@ msgstr "" "σημαίνει ότι χαρακτήρες όπως οι διγράφοι (digraphs) θα έχουν μόνο το πρώτο " "γράμμα τους με κεφαλαίο, αντί για όλους τους χαρακτήρες." -#: library/stdtypes.rst:1635 +#: library/stdtypes.rst:1701 msgid "" "Return a casefolded copy of the string. Casefolded strings may be used for " "caseless matching." @@ -3111,7 +3112,7 @@ msgstr "" "Επιστρέφει ένα αντίγραφο της συμβολοσειράς (string) σε casefolded μορφή. Οι " "casefolded συμβολοσειρές μπορούν να χρησιμοποιηθούν για caseless matching." -#: library/stdtypes.rst:1638 +#: library/stdtypes.rst:1704 msgid "" "Casefolding is similar to lowercasing but more aggressive because it is " "intended to remove all case distinctions in a string. For example, the " @@ -3125,28 +3126,44 @@ msgstr "" "ισοδυναμεί με ``\"ss\"``. Αφού είναι ήδη πεζό, η :meth:`lower` δεν θα έκανε " "τίποτα στο ``'ß'``· η :meth:`casefold` το μετατρέπει σε ``\"ss\"``." -#: library/stdtypes.rst:1644 +#: library/stdtypes.rst:1710 msgid "" "The casefolding algorithm is `described in section 3.13 'Default Case " "Folding' of the Unicode Standard `__." msgstr "" -"Ο αλγόριθμος casefolding περιγράφεται στην ενότητα 3.13 'Default Case " +"Ο αλγόριθμος casefolding `περιγράφεται στην ενότητα 3.13 'Default Case " "Folding' του προτύπου Unicode `__." -#: library/stdtypes.rst:1653 +#: library/stdtypes.rst:1719 msgid "" "Return centered in a string of length *width*. Padding is done using the " "specified *fillchar* (default is an ASCII space). The original string is " -"returned if *width* is less than or equal to ``len(s)``." +"returned if *width* is less than or equal to ``len(s)``. For example::" msgstr "" "Επιστρέφει ένα κεντραρισμένο σε μια συμβολοσειρά (string) μήκους *πλάτος*. " "Το padding γίνεται με τη χρήση του καθορισμένου *fillchar* (το default είναι " "ένα κενό ASCII). Η αρχική συμβολοσειρά επιστρέφεται εάν το *width* είναι " -"μικρότερο ή ίσο με το ``len(s)``." +"μικρότερο ή ίσο με το ``len(s)``. Για παράδειγμα::" + +#: library/stdtypes.rst:1723 +msgid "" +">>> 'Python'.center(10)\n" +"' Python '\n" +">>> 'Python'.center(10, '-')\n" +"'--Python--'\n" +">>> 'Python'.center(4)\n" +"'Python'" +msgstr "" +">>> 'Python'.center(10)\n" +"' Python '\n" +">>> 'Python'.center(10, '-')\n" +"'--Python--'\n" +">>> 'Python'.center(4)\n" +"'Python'" -#: library/stdtypes.rst:1661 +#: library/stdtypes.rst:1733 msgid "" "Return the number of non-overlapping occurrences of substring *sub* in the " "range [*start*, *end*]. Optional arguments *start* and *end* are " @@ -3156,19 +3173,44 @@ msgstr "" "της υποομάδας *sub* στο εύρος [*start*, *end*]. Τα προαιρετικά ορίσματα " "*start* και *end* ερμηνεύονται όπως στο slice notation." -#: library/stdtypes.rst:1665 +#: library/stdtypes.rst:1737 msgid "" "If *sub* is empty, returns the number of empty strings between characters " -"which is the length of the string plus one." +"which is the length of the string plus one. For example::" msgstr "" "Αν το *sub* είναι κενό, επιστρέφει τον αριθμό των κενών συμβολοσειρών " -"(strings) μεταξύ των χαρακτήρων που είναι το μήκος της συμβολοσειράς συν ένα." +"(strings) μεταξύ των χαρακτήρων που είναι το μήκος της συμβολοσειράς συν " +"ένα. Για παράδειγμα::" + +#: library/stdtypes.rst:1740 +msgid "" +">>> 'spam, spam, spam'.count('spam')\n" +"3\n" +">>> 'spam, spam, spam'.count('spam', 5)\n" +"2\n" +">>> 'spam, spam, spam'.count('spam', 5, 10)\n" +"1\n" +">>> 'spam, spam, spam'.count('eggs')\n" +"0\n" +">>> 'spam, spam, spam'.count('')\n" +"17" +msgstr "" +">>> 'spam, spam, spam'.count('spam')\n" +"3\n" +">>> 'spam, spam, spam'.count('spam', 5)\n" +"2\n" +">>> 'spam, spam, spam'.count('spam', 5, 10)\n" +"1\n" +">>> 'spam, spam, spam'.count('eggs')\n" +"0\n" +">>> 'spam, spam, spam'.count('')\n" +"17" -#: library/stdtypes.rst:1671 +#: library/stdtypes.rst:1753 msgid "Return the string encoded to :class:`bytes`." msgstr "Επιστρέφει την συμβολοσειρά (string) κωδικοποιημένη σε :class:`bytes`." -#: library/stdtypes.rst:2970 +#: library/stdtypes.rst:3160 msgid "" "*encoding* defaults to ``'utf-8'``; see :ref:`standard-encodings` for " "possible values." @@ -3176,7 +3218,7 @@ msgstr "" "το *encoding* έχει default σε ``'utf-8'``- δείτε :ref:`standard-encodings` " "για πιθανές τιμές." -#: library/stdtypes.rst:1676 +#: library/stdtypes.rst:1758 msgid "" "*errors* controls how encoding errors are handled. If ``'strict'`` (the " "default), a :exc:`UnicodeError` exception is raised. Other possible values " @@ -3191,22 +3233,36 @@ msgstr "" "που έχει καταχωρηθεί μέσω του :func:`codecs.register_error`. Δείτε το :ref:" "`error-handlers` για λεπτομέρειες." -#: library/stdtypes.rst:1683 +#: library/stdtypes.rst:1765 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." +"ref:`debug build ` is used. For example::" msgstr "" "Για λόγους απόδοσης, η τιμή των *errors* δεν ελέγχεται ως προς την " "εγκυρότητα εκτός αν όντως προκύψει σφάλμα κωδικοποίησης, αν το :ref:" "`devmode` είναι ενεργοποιημένο ή αν ένα :ref:`debug build ` " -"χρησιμοποιείται." +"χρησιμοποιείται. Για παράδειγμα::" + +#: library/stdtypes.rst:1771 +msgid "" +">>> encoded_str_to_bytes = 'Python'.encode()\n" +">>> type(encoded_str_to_bytes)\n" +"\n" +">>> encoded_str_to_bytes\n" +"b'Python'" +msgstr "" +">>> encoded_str_to_bytes = 'Python'.encode()\n" +">>> type(encoded_str_to_bytes)\n" +"\n" +">>> encoded_str_to_bytes\n" +"b'Python'" -#: library/stdtypes.rst:2989 +#: library/stdtypes.rst:3179 msgid "Added support for keyword arguments." msgstr "Επιπρόσθετη υποστήριξη για keyword ορίσματα." -#: library/stdtypes.rst:2992 +#: library/stdtypes.rst:3182 msgid "" "The value of the *errors* argument is now checked in :ref:`devmode` and in :" "ref:`debug mode `." @@ -3214,20 +3270,45 @@ msgstr "" "Η τιμή του όρου *errors* ελέγχεται τώρα στο :ref:`devmode` και στο :ref:" "`debug mode `." -#: library/stdtypes.rst:1698 +#: library/stdtypes.rst:1788 msgid "" "Return ``True`` if the string ends with the specified *suffix*, otherwise " "return ``False``. *suffix* can also be a tuple of suffixes to look for. " "With optional *start*, test beginning at that position. With optional " -"*end*, stop comparing at that position." +"*end*, stop comparing at that position. Using *start* and *end* is " +"equivalent to ``str[start:end].endswith(suffix)``. For example::" msgstr "" "Επιστρέφει ``True`` αν η συμβολοσειρά (string) τελειώνει με το καθορισμένο " "*suffix*, αλλιώς επιστρέφει ``False``. Το *suffix* μπορεί επίσης να είναι " "ένα tuple (πλειάδα) από επιθέματα που πρέπει να αναζητηθούν. Με το " "προαιρετικό *start*, το τεστ αρχίζει από αυτή τη θέση. Με το προαιρετικό " -"*end*, η σύγκριση σταματά σε αυτή τη θέση." +"*end*, η σύγκριση σταματά σε αυτή τη θέση. Για παράδειγμα::" + +#: library/stdtypes.rst:1794 +msgid "" +">>> 'Python'.endswith('on')\n" +"True\n" +">>> 'a tuple of suffixes'.endswith(('at', 'in'))\n" +"False\n" +">>> 'a tuple of suffixes'.endswith(('at', 'es'))\n" +"True\n" +">>> 'Python is amazing'.endswith('is', 0, 9)\n" +"True" +msgstr "" +">>> 'Python'.endswith('on')\n" +"True\n" +">>> 'a tuple of suffixes'.endswith(('at', 'in'))\n" +"False\n" +">>> 'a tuple of suffixes'.endswith(('at', 'es'))\n" +"True\n" +">>> 'Python is amazing'.endswith('is', 0, 9)\n" +"True" + +#: library/stdtypes.rst:1803 +msgid "See also :meth:`startswith` and :meth:`removesuffix`." +msgstr "Δείτε επίσης τις :meth:`startswith` και :meth:`removesuffix`." -#: library/stdtypes.rst:1706 +#: library/stdtypes.rst:1808 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 " @@ -3240,7 +3321,7 @@ msgid "" "(``\\n``) or return (``\\r``), it is copied and the current column is reset " "to zero. Any other character is copied unchanged and the current column is " "incremented by one regardless of how the character is represented when " -"printed." +"printed. For example::" msgstr "" "Επιστρέφει ένα αντίγραφο της συμβολοσειράς (string) όπου όλοι οι χαρακτήρες " "tab αντικαθίστανται από έναν ή περισσότερα κενά, ανάλογα με την τρέχουσα " @@ -3254,20 +3335,55 @@ msgstr "" "γραμμή (``\\n``) ή return (``\\r``), αντιγράφεται και η τρέχουσα στήλη " "επαναφέρεται στο μηδέν. Οποιοσδήποτε άλλος χαρακτήρας αντιγράφεται " "αμετάβλητος και η τρέχουσα στήλη αυξάνεται κατά ένα, ανεξάρτητα από τον " -"τρόπο αναπαράστασης του χαρακτήρα όταν τυπώνεται." +"τρόπο αναπαράστασης του χαρακτήρα όταν τυπώνεται. Για παράδειγμα::" + +#: library/stdtypes.rst:1821 +msgid "" +">>> '01\\t012\\t0123\\t01234'.expandtabs()\n" +"'01 012 0123 01234'\n" +">>> '01\\t012\\t0123\\t01234'.expandtabs(4)\n" +"'01 012 0123 01234'\n" +">>> print('01\\t012\\n0123\\t01234'.expandtabs(4))\n" +"01 012\n" +"0123 01234" +msgstr "" +">>> '01\\t012\\t0123\\t01234'.expandtabs()\n" +"'01 012 0123 01234'\n" +">>> '01\\t012\\t0123\\t01234'.expandtabs(4)\n" +"'01 012 0123 01234'\n" +">>> print('01\\t012\\n0123\\t01234'.expandtabs(4))\n" +"01 012\n" +"0123 01234" -#: library/stdtypes.rst:1727 +#: library/stdtypes.rst:1832 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:1733 +#: library/stdtypes.rst:1837 +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:1842 +msgid "See also :meth:`rfind` and :meth:`index`." +msgstr "Δείτε επίσης τις :meth:`rfind` και :meth:`index`." + +#: library/stdtypes.rst:1846 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 :" @@ -3277,7 +3393,7 @@ msgstr "" "γνωρίζετε τη θέση του *sub*. Για να ελέγξετε αν το *sub* είναι υποσύνολο ή " "όχι, χρησιμοποιήστε τον τελεστή :keyword:`in`::" -#: library/stdtypes.rst:1737 +#: library/stdtypes.rst:1850 msgid "" ">>> 'Py' in 'Python'\n" "True" @@ -3285,14 +3401,14 @@ msgstr "" ">>> 'Py' in 'Python'\n" "True" -#: library/stdtypes.rst:1743 +#: library/stdtypes.rst:1856 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). Η " "συμβολοσειρά στην οποία αυτή η μέθοδος καλείται μπορεί να περιέχει " @@ -3300,9 +3416,25 @@ msgstr "" "``{}``. Κάθε πεδίο αντικατάστασης περιέχει είτε τον αριθμητικό δείκτη ενός " "ορίσματος θέσης, είτε το όνομα ενός keyword ορίσματος. Επιστρέφει ένα " "αντίγραφο της συμβολοσειράς όπου κάθε πεδίο αντικατάστασης αντικαθίσταται με " -"την τιμή της συμβολοσειράς του αντίστοιχου ορίσματος." +"την τιμή της συμβολοσειράς του αντίστοιχου ορίσματος. Για παράδειγμα:" -#: library/stdtypes.rst:1753 +#: library/stdtypes.rst:1863 +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:1872 msgid "" "See :ref:`formatstrings` for a description of the various formatting options " "that can be specified in format strings." @@ -3311,7 +3443,7 @@ msgstr "" "μορφοποίησης που μπορούν να καθοριστούν στην μορφοποίηση συμβολοσειρών " "(format strings)." -#: library/stdtypes.rst:1757 +#: library/stdtypes.rst:1876 msgid "" "When formatting a number (:class:`int`, :class:`float`, :class:`complex`, :" "class:`decimal.Decimal` and subclasses) with the ``n`` type (ex: ``'{:n}'." @@ -3330,7 +3462,7 @@ msgstr "" "διαφορετικό από το locale ``LC_CTYPE``. Αυτή η προσωρινή αλλαγή επηρεάζει " "και άλλα νήματα (threads)." -#: library/stdtypes.rst:1766 +#: library/stdtypes.rst:1885 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." @@ -3339,7 +3471,7 @@ msgstr "" "προσωρινά το locale ``LC_CTYPE`` στο locale ``LC_NUMERIC`` σε κάποιες " "περιπτώσεις." -#: library/stdtypes.rst:1774 +#: library/stdtypes.rst:1893 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 " @@ -3349,7 +3481,7 @@ msgstr "" "το ``mapping`` απευθείας και δεν αντιγράφεται σε μια :class:`dict`. Αυτό " "είναι χρήσιμο αν για παράδειγμα το ``mapping`` είναι μια υποκλάση του dict:" -#: library/stdtypes.rst:1790 +#: library/stdtypes.rst:1909 msgid "" "Like :meth:`~str.find`, but raise :exc:`ValueError` when the substring is " "not found." @@ -3357,7 +3489,7 @@ msgstr "" "Όπως η :meth:`~str.find`, αλλά κάνει raise :exc:`ValueError` όταν η υπό-" "συμβολοσειρά (substring) δεν έχει βρεθεί." -#: library/stdtypes.rst:1796 +#: library/stdtypes.rst:1915 msgid "" "Return ``True`` if all characters in the string are alphanumeric and there " "is at least one character, ``False`` otherwise. A character ``c`` is " @@ -3370,7 +3502,7 @@ msgstr "" "ακόλουθα επιστρέφει ``True``: ``c.isalpha()``, ``c.isdecimal()``, ``c." "isdigit()``, ή ``c.isnumeric()``." -#: library/stdtypes.rst:1804 +#: library/stdtypes.rst:1923 msgid "" "Return ``True`` if all characters in the string are alphabetic and there is " "at least one character, ``False`` otherwise. Alphabetic characters are " @@ -3379,7 +3511,7 @@ msgid "" "\"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 `_." +"pdf>`_. For example:" msgstr "" "Επιστρέφει ``True`` αν όλοι οι χαρακτήρες στη συμβολοσειρά (string) είναι " "αλφαβητικοί και υπάρχει τουλάχιστον ένας χαρακτήρας, διαφορετικά ``False``. " @@ -3388,34 +3520,84 @@ msgstr "" "ιδιότητα μία από τα \"Lm\", \"Lt\", \"Lu\", \"Ll\", ή \"Lo\". Σημειώστε ότι " "αυτό είναι διαφορετικό από το `Αλφαβητικό που ορίζεται στην ενότητα 4.10 " "'Letters, Alphabetic, and Ideographic' του προτύπου Unicode `_." +"unicode.org/versions/Unicode15.1.0/ch04.pdf>`_. Για παράδειγμα:" + +#: library/stdtypes.rst:1932 +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:1941 +msgid "See :ref:`unicode-properties`." +msgstr "Δείτε :ref:`unicode-properties`." -#: library/stdtypes.rst:1815 +#: library/stdtypes.rst:1946 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:1950 +msgid "" +">>> 'ASCII characters'.isascii()\n" +"True\n" +">>> 'µ'.isascii()\n" +"False" +msgstr "" +">>> 'ASCII characters'.isascii()\n" +"True\n" +">>> 'µ'.isascii()\n" +"False" -#: library/stdtypes.rst:1824 +#: library/stdtypes.rst:1962 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:1969 +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:1834 +#: library/stdtypes.rst:1981 msgid "" "Return ``True`` if all characters in the string are digits and there is at " "least one character, ``False`` otherwise. Digits include decimal characters " @@ -3432,7 +3614,7 @@ msgstr "" "όπως οι αριθμοί Kharosthi. Τυπικά, ένα ψηφίο είναι ένας χαρακτήρας που έχει " "την τιμή της ιδιότητας Numeric_Type=Digit ή Numeric_Type=Decimal." -#: library/stdtypes.rst:1844 +#: library/stdtypes.rst:1991 msgid "" "Return ``True`` if the string is a valid identifier according to the " "language definition, section :ref:`identifiers`." @@ -3440,7 +3622,7 @@ msgstr "" "Επιστρέφει ``True`` αν η συμβολοσειρά είναι έγκυρο αναγνωριστικό σύμφωνα με " "το ορισμό της γλώσσας, ενότητα :ref:`identifiers`." -#: library/stdtypes.rst:1847 +#: library/stdtypes.rst:1994 msgid "" ":func:`keyword.iskeyword` can be used to test whether string ``s`` is a " "reserved identifier, such as :keyword:`def` and :keyword:`class`." @@ -3449,11 +3631,11 @@ msgstr "" "συμβολοσειρά ``s`` είναι ένα δεσμευμένο αναγνωριστικό, όπως τα :keyword:" "`def` και :keyword:`class`." -#: library/stdtypes.rst:1850 +#: library/stdtypes.rst:1997 msgid "Example: ::" msgstr "Παράδειγμα ::" -#: library/stdtypes.rst:1853 +#: library/stdtypes.rst:2000 msgid "" ">>> from keyword import iskeyword\n" "\n" @@ -3469,7 +3651,7 @@ msgstr "" ">>> 'def'.isidentifier(), iskeyword('def')\n" "(True, True)" -#: library/stdtypes.rst:1863 +#: library/stdtypes.rst:2010 msgid "" "Return ``True`` if all cased characters [4]_ in the string are lowercase and " "there is at least one cased character, ``False`` otherwise." @@ -3477,7 +3659,7 @@ msgstr "" "Επιστρέφει ``True`` αν όλοι οι χαρακτήρες [4]_ στο αλφαριθμητικό (string) " "είναι πεζοί και υπάρχει τουλάχιστον ένας cased χαρακτήρας, αλλιώς ``False``." -#: library/stdtypes.rst:1869 +#: library/stdtypes.rst:2016 msgid "" "Return ``True`` if all characters in the string are numeric characters, and " "there is at least one character, ``False`` otherwise. Numeric characters " @@ -3494,15 +3676,15 @@ msgstr "" "τιμή της ιδιότητας Numeric_Type=Digit, Numeric_Type=Decimal ή " "Numeric_Type=Numeric." -#: library/stdtypes.rst:1879 +#: library/stdtypes.rst:2026 msgid "" -"Return true if all characters in the string are printable, false if it " -"contains at least one non-printable character." +"Return ``True`` if all characters in the string are printable, ``False`` if " +"it contains at least one non-printable character." msgstr "" -"Επιστρέφει true αν όλοι οι χαρακτήρες στη συμβολοσειρά μπορεί να εκτυπωθεί, " -"false εάν περιέχει τουλάχιστον έναν μη εκτυπώσιμο χαρακτήρα." +"Επιστρέφει ``True`` αν όλοι οι χαρακτήρες στη συμβολοσειρά (string) είναι " +"εκτυπώσιμοι, ``False`` αν περιέχει τουλάχιστον έναν μη εκτυπώσιμο χαρακτήρα." -#: library/stdtypes.rst:1882 +#: library/stdtypes.rst:2029 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 " @@ -3515,7 +3697,7 @@ msgstr "" "εξαγωνικά από τον χαρακτήρα. Δεν έχει καμία σχέση με τον χειρισμό " "συμβολοσειρών που γράφονται σε :data:`sys.stdout` ή :data:`sys.stderr`." -#: library/stdtypes.rst:1887 +#: library/stdtypes.rst:2034 msgid "" "The printable characters are those which in the Unicode character database " "(see :mod:`unicodedata`) have a general category in group Letter, Mark, " @@ -3529,7 +3711,7 @@ msgstr "" "διάστημα ASCII 0x20. Οι μη εκτυπώσιμοι χαρακτήρες είναι αυτοί που βρίσκονται " "στο χώρο Διαχωρισμού ομάδας ή Άλλο (Z ή CII)." -#: library/stdtypes.rst:1896 +#: library/stdtypes.rst:2043 msgid "" "Return ``True`` if there are only whitespace characters in the string and " "there is at least one character, ``False`` otherwise." @@ -3538,7 +3720,7 @@ msgstr "" "αλφαριθμητικό (string) και υπάρχει τουλάχιστον ένας χαρακτήρας, διαφορετικά " "``False``." -#: library/stdtypes.rst:1899 +#: library/stdtypes.rst:2046 msgid "" "A character is *whitespace* if in the Unicode character database (see :mod:" "`unicodedata`), either its general category is ``Zs`` (\"Separator, " @@ -3549,7 +3731,7 @@ msgstr "" "(\"Separator, space\"), είτε η αμφίδρομη κατηγορία του είναι μία από τις " "κατηγορίες ``WS``, ``B``, ή ``S``." -#: library/stdtypes.rst:1907 +#: library/stdtypes.rst:2054 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 " @@ -3562,29 +3744,69 @@ msgstr "" "οι πεζοί χαρακτήρες μόνο cased χαρακτήρες. Διαφορετικά, επιστρέφει " "``False``." -#: library/stdtypes.rst:1914 -msgid "" -"Return ``True`` if all cased characters [4]_ in the string are uppercase and " -"there is at least one cased character, ``False`` otherwise." -msgstr "" -"Επιστρέφει ``True`` αν όλοι οι χαρακτήρες [4]_ στο αλφαριθμητικό είναι " -"κεφαλαίοι και υπάρχει τουλάχιστον ένας cased χαρακτήρας, διαφορετικά " -"``False``." +#: library/stdtypes.rst:2603 +msgid "For example:" +msgstr "Για παράδειγμα:" -#: library/stdtypes.rst:1932 +#: library/stdtypes.rst:2060 msgid "" -"Return a string which is the concatenation of the strings in *iterable*. A :" +">>> '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:2069 +msgid "See also :meth:`title`." +msgstr "Δείτε επίσης :meth:`title`." + +#: library/stdtypes.rst:2074 +msgid "" +"Return ``True`` if all cased characters [4]_ in the string are uppercase and " +"there is at least one cased character, ``False`` otherwise." +msgstr "" +"Επιστρέφει ``True`` αν όλοι οι χαρακτήρες [4]_ στο αλφαριθμητικό είναι " +"κεφαλαίοι και υπάρχει τουλάχιστον ένας cased χαρακτήρας, διαφορετικά " +"``False``." + +#: library/stdtypes.rst:2092 +msgid "" +"Return a string which is the concatenation of the strings in *iterable*. A :" "exc:`TypeError` will be raised if there are any non-string values in " "*iterable*, including :class:`bytes` objects. The separator between " -"elements is the string providing this method." +"elements is the string providing this method. For example:" msgstr "" "Επιστρέφει μια συμβολοσειρά (string) που είναι η συνένωση των συμβολοσειρών " "στο *iterable*. Ένα :exc:`TypeError` θα γίνει raise αν υπάρχουν τιμές μη " "συμβολοσειράς (non-string) στο *iterable*, συμπεριλαμβανομένων των " "αντικειμένων :class:`bytes`. Το διαχωριστικό μεταξύ των στοιχείων είναι η " -"συμβολοσειρά που παρέχει αυτή η μέθοδος." +"συμβολοσειρά που παρέχει αυτή η μέθοδος. Για παράδειγμα:" + +#: library/stdtypes.rst:2097 +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:1940 +#: library/stdtypes.rst:2104 +msgid "See also :meth:`split`." +msgstr "Δείτε επίσης :meth:`split`." + +#: library/stdtypes.rst:2109 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 " @@ -3595,7 +3817,7 @@ msgstr "" "*fillchar* (το default είναι ένα κενό ASCII). Η αρχική συμβολοσειρά " "επιστρέφεται εάν το *width* είναι μικρότερο ή ίσο με το ``len(s)``." -#: library/stdtypes.rst:1947 +#: library/stdtypes.rst:2116 msgid "" "Return a copy of the string with all the cased characters [4]_ converted to " "lowercase." @@ -3603,17 +3825,17 @@ msgstr "" "Επιστρέφει ένα αντίγραφο της συμβολοσειράς (string) με όλους τους cased " "χαρακτήρες [4]_ να έχουν μετατραπεί σε πεζούς." -#: library/stdtypes.rst:1950 +#: library/stdtypes.rst:2119 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 `__." -#: library/stdtypes.rst:1957 +#: library/stdtypes.rst:2126 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 " @@ -3628,7 +3850,7 @@ msgstr "" "χαρακτήρων. Το όρισμα *chars* δεν είναι ένα πρόθεμα· οπότε, όλοι οι " "συνδυασμοί των τιμών του αφαιρούνται::" -#: library/stdtypes.rst:1962 +#: library/stdtypes.rst:2131 msgid "" ">>> ' spacious '.lstrip()\n" "'spacious '\n" @@ -3640,7 +3862,7 @@ msgstr "" ">>> 'www.example.com'.lstrip('cmowz.')\n" "'example.com'" -#: library/stdtypes.rst:1967 +#: library/stdtypes.rst:2136 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::" @@ -3649,7 +3871,7 @@ msgstr "" "πρόθεμα συμβολοσειράς (string) αντί για όλο το σύνολο των χαρακτήρων. Για " "παράδειγμα::" -#: library/stdtypes.rst:1970 +#: library/stdtypes.rst:2139 msgid "" ">>> 'Arthur: three!'.lstrip('Arthur: ')\n" "'ee!'\n" @@ -3661,7 +3883,7 @@ msgstr "" ">>> 'Arthur: three!'.removeprefix('Arthur: ')\n" "'three!'" -#: library/stdtypes.rst:1978 +#: library/stdtypes.rst:2148 msgid "" "This static method returns a translation table usable for :meth:`str." "translate`." @@ -3669,7 +3891,7 @@ msgstr "" "Αυτή η στατική μέθοδος επιστρέφει έναν πίνακα μεταφράσεων που μπορεί να " "χρησιμοποιηθεί για το :meth:`str.translate`." -#: library/stdtypes.rst:1980 +#: library/stdtypes.rst:2150 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, " @@ -3681,20 +3903,20 @@ msgstr "" "μήκους 1) σε ordinals Unicode, συμβολοσειρές (αυθαίρετου μήκους) ή " "``None``. Τα κλειδιά χαρακτήρων τότε θα μετατραπούν σε κανονικούς αριθμούς." -#: library/stdtypes.rst:1985 +#: library/stdtypes.rst:2155 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:1993 +#: library/stdtypes.rst:2163 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 " @@ -3707,7 +3929,7 @@ msgstr "" "δεν βρεθεί, επιστρέφει ένα 3-σύνολο που περιέχει την ίδια τη συμβολοσειρά, " "ακολουθούμενη από δύο κενές συμβολοσειρές." -#: library/stdtypes.rst:2001 +#: library/stdtypes.rst:2171 msgid "" "If the string starts with the *prefix* string, return " "``string[len(prefix):]``. Otherwise, return a copy of the original string::" @@ -3716,7 +3938,7 @@ msgstr "" "``string[len(prefix):]``. Διαφορετικά, επιστρέφει ένα αντίγραφο της αρχικής " "συμβολοσειράς::" -#: library/stdtypes.rst:2005 +#: library/stdtypes.rst:2175 msgid "" ">>> 'TestHook'.removeprefix('Test')\n" "'Hook'\n" @@ -3728,7 +3950,7 @@ msgstr "" ">>> 'BaseTestCase'.removeprefix('Test')\n" "'BaseTestCase'" -#: library/stdtypes.rst:2015 +#: library/stdtypes.rst:2185 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 " @@ -3738,7 +3960,7 @@ msgstr "" "επιστρέφει ``string[:-len(suffix)]``. Διαφορετικά, επιστρέφει ένα αντίγραφο " "της αρχικής συμβολοσειράς::" -#: library/stdtypes.rst:2019 +#: library/stdtypes.rst:2189 msgid "" ">>> 'MiscTests'.removesuffix('Tests')\n" "'Misc'\n" @@ -3750,7 +3972,7 @@ msgstr "" ">>> 'TmpDirMixin'.removesuffix('Tests')\n" "'TmpDirMixin'" -#: library/stdtypes.rst:2029 +#: library/stdtypes.rst:2199 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 " @@ -3762,11 +3984,11 @@ msgstr "" "παράμετρος *count*, μόνο οι πρώτες *count* εμφανίσεις. Αν δεν έχει οριστεί ή " "είναι -1, τότε αντικαθίστανται όλες οι εμφανίσεις." -#: library/stdtypes.rst:2033 +#: library/stdtypes.rst:2203 msgid "*count* is now supported as a keyword argument." msgstr "Το *count* υποστηρίζεται πλέον ως όρισμα λέξης-κλειδιού." -#: library/stdtypes.rst:2039 +#: library/stdtypes.rst:2209 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* " @@ -3777,7 +3999,7 @@ msgstr "" "προαιρετικά ορίσματα *start* και *end* ερμηνεύονται ως slice notation. " "Επιστρέφει ``-1`` σε περίπτωση αποτυχίας." -#: library/stdtypes.rst:2046 +#: library/stdtypes.rst:2216 msgid "" "Like :meth:`rfind` but raises :exc:`ValueError` when the substring *sub* is " "not found." @@ -3785,7 +4007,7 @@ msgstr "" "Όπως η :meth:`rfind`, αλλά κάνει raise :exc:`ValueError` όταν η υπό-" "συμβολοσειρά (sub-string) *sub* δεν βρέθηκε." -#: library/stdtypes.rst:2052 +#: library/stdtypes.rst:2222 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 " @@ -3796,7 +4018,7 @@ msgstr "" "καθορισμένο *fillchar* (η προεπιλογή είναι ένα διάστημα ASCII). Η αρχική " "συμβολοσειρά επιστρέφεται εάν το *width* είναι μικρότερο ή ίσο με ``len(s)``." -#: library/stdtypes.rst:2059 +#: library/stdtypes.rst:2229 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 " @@ -3809,7 +4031,7 @@ msgstr "" "δεν βρεθεί, επιστρέφει ένα 3-tuple που περιέχει δύο κενές συμβολοσειρές, " "ακολουθούμενες από την ίδια τη συμβολοσειρά." -#: library/stdtypes.rst:2067 +#: library/stdtypes.rst:2237 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 " @@ -3824,7 +4046,7 @@ msgstr "" "Εκτός από το διαχωρισμό από τα δεξιά, η :meth:`rsplit` συμπεριφέρεται όπως " "η :meth:`split` που περιγράφεται λεπτομερώς παρακάτω." -#: library/stdtypes.rst:2076 +#: library/stdtypes.rst:2246 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 " @@ -3839,7 +4061,7 @@ msgstr "" "διαστημάτων. Το όρισμα *chars* δεν είναι suffix, αλλά όλοι οι συνδυασμοί " "των τιμών του αφαιρούνται::" -#: library/stdtypes.rst:2081 +#: library/stdtypes.rst:2251 msgid "" ">>> ' spacious '.rstrip()\n" "' spacious'\n" @@ -3851,7 +4073,7 @@ msgstr "" ">>> 'mississippi'.rstrip('ipz')\n" "'mississ'" -#: library/stdtypes.rst:2086 +#: library/stdtypes.rst:2256 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::" @@ -3859,7 +4081,7 @@ msgstr "" "Δείτε τη :meth:`str.removesuffix` για μια μέθοδο που θα αφαιρέσει ένα απλό " "suffix αντί για όλο το σύνολο των χαρακτήρων. Για παράδειγμα::" -#: library/stdtypes.rst:2089 +#: library/stdtypes.rst:2259 msgid "" ">>> 'Monty Python'.rstrip(' Python')\n" "'M'\n" @@ -3871,7 +4093,7 @@ msgstr "" ">>> 'Monty Python'.removesuffix(' Python')\n" "'Monty'" -#: library/stdtypes.rst:2096 +#: library/stdtypes.rst:2266 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, " @@ -3886,7 +4108,7 @@ msgstr "" "υπάρχει όριο στον αριθμό των διαχωρισμών (γίνονται όλες οι πιθανές " "διασπάσεις)." -#: library/stdtypes.rst:2102 +#: library/stdtypes.rst:2272 msgid "" "If *sep* is given, consecutive delimiters are not grouped together and are " "deemed to delimit empty strings (for example, ``'1,,2'.split(',')`` returns " @@ -3903,15 +4125,15 @@ msgstr "" "διαχωρισμός μιας κενής συμβολοσειράς με ένα καθορισμένο διαχωριστικό " "επιστρέφει το ``['']``." -#: library/stdtypes.rst:2127 library/stdtypes.rst:2247 -#: library/stdtypes.rst:3307 library/stdtypes.rst:3416 -#: library/stdtypes.rst:3457 library/stdtypes.rst:3499 -#: library/stdtypes.rst:3531 library/stdtypes.rst:3581 -#: library/stdtypes.rst:3650 library/stdtypes.rst:3674 +#: library/stdtypes.rst:2297 library/stdtypes.rst:2363 +#: library/stdtypes.rst:2501 library/stdtypes.rst:3513 +#: library/stdtypes.rst:3619 library/stdtypes.rst:3658 +#: library/stdtypes.rst:3700 library/stdtypes.rst:3745 +#: library/stdtypes.rst:3795 library/stdtypes.rst:3861 msgid "For example::" msgstr "Για παράδειγμα::" -#: library/stdtypes.rst:2111 +#: library/stdtypes.rst:2281 msgid "" ">>> '1,2,3'.split(',')\n" "['1', '2', '3']\n" @@ -3931,7 +4153,7 @@ msgstr "" ">>> '1<>2<>3<4'.split('<>')\n" "['1', '2', '3<4']" -#: library/stdtypes.rst:2120 +#: library/stdtypes.rst:2290 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, " @@ -3948,7 +4170,7 @@ msgstr "" "συμβολοσειράς που αποτελείται μόνο από κενά διαστήματα με ένα ``None`` ως " "διαχωριστικό επιστρέφει ``[]``." -#: library/stdtypes.rst:2129 +#: library/stdtypes.rst:2299 msgid "" ">>> '1 2 3'.split()\n" "['1', '2', '3']\n" @@ -3964,7 +4186,35 @@ msgstr "" ">>> ' 1 2 3 '.split()\n" "['1', '2', '3']" -#: library/stdtypes.rst:2142 +#: library/stdtypes.rst:2306 +msgid "" +"If *sep* is not specified or is ``None`` and *maxsplit* is ``0``, only " +"leading runs of consecutive whitespace are considered." +msgstr "" +"Εάν το *sep* δεν καθοριστεί ή είναι ``None`` και το *maxsplit* είναι ``0``, " +"μόνο οι αρχικές εμφανίσεις διαδοχικών κενών θεωρούνται." + +#: library/stdtypes.rst:2311 +msgid "" +">>> \"\".split(None, 0)\n" +"[]\n" +">>> \" \".split(None, 0)\n" +"[]\n" +">>> \" foo \".split(maxsplit=0)\n" +"['foo ']" +msgstr "" +">>> \"\".split(None, 0)\n" +"[]\n" +">>> \" \".split(None, 0)\n" +"[]\n" +">>> \" foo \".split(maxsplit=0)\n" +"['foo ']" + +#: library/stdtypes.rst:2318 +msgid "See also :meth:`join`." +msgstr "Δείτε επίσης τη :meth:`join`." + +#: library/stdtypes.rst:2326 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 " @@ -3974,7 +4224,7 @@ msgstr "" "διαχωρίζοντας στα όρια των γραμμών. Τα διαχωριστικά των γραμμών δεν " "περιλαμβάνονται στην νέα λίστα, εκτός αν δοθεί το *keepends* και είναι true." -#: library/stdtypes.rst:2146 +#: library/stdtypes.rst:2330 msgid "" "This method splits on the following line boundaries. In particular, the " "boundaries are a superset of :term:`universal newlines`." @@ -3982,107 +4232,107 @@ msgstr "" "Αυτή η μέθοδος διαχωρίζει στα ακόλουθα όρια γραμμών. Πιο συγκεκριμένα, τα " "όρια είναι ένα υπερσύνολο του :term:`universal newlines`." -#: library/stdtypes.rst:2150 +#: library/stdtypes.rst:2334 msgid "Representation" msgstr "Αναπαράσταση" -#: library/stdtypes.rst:2150 +#: library/stdtypes.rst:2334 msgid "Description" msgstr "Περιγραφή" -#: library/stdtypes.rst:2152 +#: library/stdtypes.rst:2336 msgid "``\\n``" msgstr "``\\n``" -#: library/stdtypes.rst:2152 +#: library/stdtypes.rst:2336 msgid "Line Feed" msgstr "Line Feed" -#: library/stdtypes.rst:2154 +#: library/stdtypes.rst:2338 msgid "``\\r``" msgstr "``\\r``" -#: library/stdtypes.rst:2154 +#: library/stdtypes.rst:2338 msgid "Carriage Return" msgstr "Carriage Return" -#: library/stdtypes.rst:2156 +#: library/stdtypes.rst:2340 msgid "``\\r\\n``" msgstr "``\\r\\n``" -#: library/stdtypes.rst:2156 +#: library/stdtypes.rst:2340 msgid "Carriage Return + Line Feed" msgstr "Carriage Return + Line Feed" -#: library/stdtypes.rst:2158 +#: library/stdtypes.rst:2342 msgid "``\\v`` or ``\\x0b``" msgstr "``\\v`` or ``\\x0b``" -#: library/stdtypes.rst:2158 +#: library/stdtypes.rst:2342 msgid "Line Tabulation" msgstr "Line Tabulation" -#: library/stdtypes.rst:2160 +#: library/stdtypes.rst:2344 msgid "``\\f`` or ``\\x0c``" msgstr "``\\f`` or ``\\x0c``" -#: library/stdtypes.rst:2160 +#: library/stdtypes.rst:2344 msgid "Form Feed" msgstr "Form Feed" -#: library/stdtypes.rst:2162 +#: library/stdtypes.rst:2346 msgid "``\\x1c``" msgstr "``\\x1c``" -#: library/stdtypes.rst:2162 +#: library/stdtypes.rst:2346 msgid "File Separator" msgstr "Διαχωριστής Αρχείου" -#: library/stdtypes.rst:2164 +#: library/stdtypes.rst:2348 msgid "``\\x1d``" msgstr "``\\x1d``" -#: library/stdtypes.rst:2164 +#: library/stdtypes.rst:2348 msgid "Group Separator" msgstr "Διαχωριστής Group" -#: library/stdtypes.rst:2166 +#: library/stdtypes.rst:2350 msgid "``\\x1e``" msgstr "``\\x1e``" -#: library/stdtypes.rst:2166 +#: library/stdtypes.rst:2350 msgid "Record Separator" msgstr "Διαχωριστής Εγγραφών" -#: library/stdtypes.rst:2168 +#: library/stdtypes.rst:2352 msgid "``\\x85``" msgstr "``\\x85``" -#: library/stdtypes.rst:2168 +#: library/stdtypes.rst:2352 msgid "Next Line (C1 Control Code)" msgstr "Επόμενη Γραμμή (C1 Control Code)" -#: library/stdtypes.rst:2170 +#: library/stdtypes.rst:2354 msgid "``\\u2028``" msgstr "``\\u2028``" -#: library/stdtypes.rst:2170 +#: library/stdtypes.rst:2354 msgid "Line Separator" msgstr "Διαχωριστής Γραμμής" -#: library/stdtypes.rst:2172 +#: library/stdtypes.rst:2356 msgid "``\\u2029``" msgstr "``\\u2029``" -#: library/stdtypes.rst:2172 +#: library/stdtypes.rst:2356 msgid "Paragraph Separator" msgstr "Διαχωριστής Παραγράφου" -#: library/stdtypes.rst:2177 +#: library/stdtypes.rst:2361 msgid "``\\v`` and ``\\f`` added to list of line boundaries." msgstr "Τα ``\\v`` και ``\\f`` προστίθενται στην λίστα ορίων των γραμμών." -#: library/stdtypes.rst:2181 +#: library/stdtypes.rst:2365 msgid "" ">>> 'ab c\\n\\nde fg\\rkl\\r\\n'.splitlines()\n" "['ab c', '', 'de fg', 'kl']\n" @@ -4094,7 +4344,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:2186 +#: library/stdtypes.rst:2370 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 " @@ -4105,7 +4355,7 @@ msgstr "" "αλφαριθμητικό, και μια τερματικό break γραμμής δεν οδηγεί σε μια επιπλέον " "γραμμή::" -#: library/stdtypes.rst:2190 +#: library/stdtypes.rst:2374 msgid "" ">>> \"\".splitlines()\n" "[]\n" @@ -4117,11 +4367,11 @@ msgstr "" ">>> \"One line\\n\".splitlines()\n" "['One line']" -#: library/stdtypes.rst:2195 +#: library/stdtypes.rst:2379 msgid "For comparison, ``split('\\n')`` gives::" msgstr "Συγκριτικά, η ``split('\\n')`` δίνει::" -#: library/stdtypes.rst:2197 +#: library/stdtypes.rst:2381 msgid "" ">>> ''.split('\\n')\n" "['']\n" @@ -4133,7 +4383,7 @@ msgstr "" ">>> 'Two lines\\n'.split('\\n')\n" "['Two lines', '']" -#: library/stdtypes.rst:2205 +#: library/stdtypes.rst:2389 msgid "" "Return ``True`` if string starts with the *prefix*, otherwise return " "``False``. *prefix* can also be a tuple of prefixes to look for. With " @@ -4146,7 +4396,7 @@ msgstr "" "αλφαριθμητικό που αρχίζει από τη συγκεκριμένη θέση. Με το προαιρετικό " "*end*, σταματά η σύγκριση της συμβολοσειράς σε αυτή τη θέση." -#: library/stdtypes.rst:2213 +#: library/stdtypes.rst:2397 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 " @@ -4161,7 +4411,7 @@ msgstr "" "default την αφαίρεση των κενών διαστημάτων. Το όρισμα *chars* δεν είναι " "prefix ή suffix· μάλλον, όλοι οι συνδυασμοί των τιμών του αφαιρούνται::" -#: library/stdtypes.rst:2219 +#: library/stdtypes.rst:2403 msgid "" ">>> ' spacious '.strip()\n" "'spacious'\n" @@ -4173,7 +4423,7 @@ msgstr "" ">>> 'www.example.com'.strip('cmowz.')\n" "'example'" -#: library/stdtypes.rst:2224 +#: library/stdtypes.rst:2408 msgid "" "The outermost leading and trailing *chars* argument values are stripped from " "the string. Characters are removed from the leading end until reaching a " @@ -4186,7 +4436,7 @@ msgstr "" "στο σύνολο χαρακτήρων του *chars*. Μια παρόμοια ενέργεια λαμβάνει χώρα στο " "τέλος της ουράς. Για παράδειγμα:" -#: library/stdtypes.rst:2230 +#: library/stdtypes.rst:2414 msgid "" ">>> comment_string = '#....... Section 3.2.1 Issue #32 .......'\n" ">>> comment_string.strip('.#! ')\n" @@ -4196,7 +4446,7 @@ msgstr "" ">>> comment_string.strip('.#! ')\n" "'Section 3.2.1 Issue #32'" -#: library/stdtypes.rst:2237 +#: library/stdtypes.rst:2421 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()." @@ -4206,7 +4456,7 @@ msgstr "" "που έχουν μετατραπεί σε πεζούς και αντίστροφα. Σημειώστε ότι δεν είναι " "απαραίτητα αληθές ότι ``s.swapcase().swapcase() == s``." -#: library/stdtypes.rst:2244 +#: library/stdtypes.rst:2428 msgid "" "Return a titlecased version of the string where words start with an " "uppercase character and the remaining characters are lowercase." @@ -4214,7 +4464,7 @@ msgstr "" "Επιστρέφει μια titlecased έκδοση της συμβολοσειράς, όπου οι λέξεις ξεκινούν " "με ένα κεφαλαίο χαρακτήρα και οι υπόλοιποι χαρακτήρες είναι πεζοί." -#: library/stdtypes.rst:2249 +#: library/stdtypes.rst:2433 msgid "" ">>> 'Hello world'.title()\n" "'Hello World'" @@ -4222,7 +4472,7 @@ msgstr "" ">>> 'Hello world'.title()\n" "'Hello World'" -#: library/stdtypes.rst:3618 +#: library/stdtypes.rst:3805 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 " @@ -4234,7 +4484,7 @@ msgstr "" "contexts, αλλά σημαίνει ότι οι απόστροφοι σε συναιρέσεις και κτητικές λέξεις " "αποτελούν όρια λέξεων, που μπορεί να μην είναι το επιθυμητό αποτέλεσμα::" -#: library/stdtypes.rst:2257 +#: library/stdtypes.rst:2441 msgid "" ">>> \"they're bill's friends from the UK\".title()\n" "\"They'Re Bill'S Friends From The Uk\"" @@ -4242,7 +4492,7 @@ msgstr "" ">>> \"they're bill's friends from the UK\".title()\n" "\"They'Re Bill'S Friends From The Uk\"" -#: library/stdtypes.rst:2260 +#: library/stdtypes.rst:2444 msgid "" "The :func:`string.capwords` function does not have this problem, as it " "splits words on spaces only." @@ -4250,7 +4500,7 @@ msgstr "" "Η συνάρτηση :func:`string.capwords` δεν έχει αυτό το πρόβλημα, καθώς χωρίζει " "τις λέξεις μόνο σε κενά." -#: library/stdtypes.rst:2263 +#: library/stdtypes.rst:2447 msgid "" "Alternatively, a workaround for apostrophes can be constructed using regular " "expressions::" @@ -4258,7 +4508,7 @@ msgstr "" "Εναλλακτικά, μπορεί να κατασκευαστεί μια λύση για τις αποστρόφους " "χρησιμοποιώντας κανονικές εκφράσεις::" -#: library/stdtypes.rst:2266 +#: library/stdtypes.rst:2450 msgid "" ">>> import re\n" ">>> def titlecase(s):\n" @@ -4278,7 +4528,11 @@ msgstr "" ">>> titlecase(\"they're bill's friends.\")\n" "\"They're Bill's Friends.\"" -#: library/stdtypes.rst:2278 +#: library/stdtypes.rst:2459 +msgid "See also :meth:`istitle`." +msgstr "Δείτε επίσης τη :meth:`istitle`." + +#: library/stdtypes.rst:2464 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 " @@ -4301,7 +4555,7 @@ msgstr "" "επιστρέφεται· ή να κάνει raise ένα :exc:`LookupError`, για να αντιστοιχίσει " "τον χαρακτήρα στον εαυτό του." -#: library/stdtypes.rst:2287 +#: library/stdtypes.rst:2473 msgid "" "You can use :meth:`str.maketrans` to create a translation map from character-" "to-character mappings in different formats." @@ -4310,7 +4564,7 @@ msgstr "" "ένα χάρτη μετάφρασης αντιστοίχισης από χαρακτήρα-σε-χαρακτήρα σε " "διαφορετικές μορφές." -#: library/stdtypes.rst:2290 +#: library/stdtypes.rst:2476 msgid "" "See also the :mod:`codecs` module for a more flexible approach to custom " "character mappings." @@ -4318,7 +4572,7 @@ msgstr "" "Δείτε επίσης την ενότητα :mod:`codecs` για μια πιο ευέλικτη προσέγγιση σε " "προσαρμοσμένα mappings χαρακτήρων." -#: library/stdtypes.rst:2296 +#: library/stdtypes.rst:2482 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`` " @@ -4332,7 +4586,7 @@ msgstr "" "πεζά γράμματα ή αν η κατηγορία Unicode του προκύπτοντος χαρακτήρα(ων) δεν " "είναι \"Lu\" (Γράμμα, κεφαλαίο), αλλά π.χ. \"Lt\" (Γράμμα, titlecase)." -#: library/stdtypes.rst:2302 +#: library/stdtypes.rst:2488 msgid "" "The uppercasing algorithm used is `described in section 3.13 'Default Case " "Folding' of the Unicode Standard `__." -#: library/stdtypes.rst:2309 +#: library/stdtypes.rst:2495 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 " @@ -4355,7 +4609,7 @@ msgstr "" "συμπλήρωση *μετά* τον χαρακτήρα sign αντί για πριν. Η αρχική συμβολοσειρά " "επιστρέφεται εάν το *width* είναι μικρότερο ή ίσο με ``len(s)``." -#: library/stdtypes.rst:2317 +#: library/stdtypes.rst:2503 msgid "" ">>> \"42\".zfill(5)\n" "'00042'\n" @@ -4367,11 +4621,11 @@ msgstr "" ">>> \"-42\".zfill(5)\n" "'-0042'" -#: library/stdtypes.rst:2338 +#: library/stdtypes.rst:2524 msgid "Formatted String Literals (f-strings)" msgstr "Διαμορφωμένες Κυριολεκτικές Συμβολοσειρές (f-strings)" -#: library/stdtypes.rst:2341 +#: library/stdtypes.rst:2527 msgid "" "The :keyword:`await` and :keyword:`async for` can be used in expressions " "within f-strings." @@ -4379,11 +4633,11 @@ msgstr "" "Τα :keyword:`await` και :keyword:`async for` μπορούν να χρησιμοποιηθούν σε " "εκφράσεις μέσα σε f-strings." -#: library/stdtypes.rst:2344 +#: library/stdtypes.rst:2530 msgid "Added the debugging operator (``=``)" msgstr "Προστέθηκε ο τελεστής αποσφαλμάτωσης (``=``)" -#: library/stdtypes.rst:2346 +#: library/stdtypes.rst:2532 msgid "" "Many restrictions on expressions within f-strings have been removed. " "Notably, nested strings, comments, and backslashes are now permitted." @@ -4392,7 +4646,7 @@ msgstr "" "Ιδιαίτερα, πλέον επιτρέπονται οι εμφωλευμένες συμβολοσειρές, τα σχόλια και " "οι κάθετοι." -#: library/stdtypes.rst:2350 +#: library/stdtypes.rst:2536 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 " @@ -4409,7 +4663,7 @@ msgstr "" "τρόπο όπως η μέθοδος :meth:`str.format`, και μετατρέπονται σε κανονικά " "αντικείμενα τύπου :class:`str`. Για παράδειγμα:" -#: library/stdtypes.rst:2358 +#: library/stdtypes.rst:2544 msgid "" ">>> who = 'nobody'\n" ">>> nationality = 'Spanish'\n" @@ -4421,11 +4675,11 @@ msgstr "" ">>> f'{who.title()} expects the {nationality} Inquisition!'\n" "'Nobody expects the Spanish Inquisition!'" -#: library/stdtypes.rst:2365 +#: library/stdtypes.rst:2551 msgid "It is also possible to use a multi line f-string:" msgstr "Είναι επίσης δυνατό να χρησιμοποιηθεί μια f-string πολλών γραμμών:" -#: library/stdtypes.rst:2367 +#: library/stdtypes.rst:2553 msgid "" ">>> f'''This is a string\n" "... on two lines'''\n" @@ -4435,7 +4689,7 @@ msgstr "" "... on two lines'''\n" "'This is a string\\non two lines'" -#: library/stdtypes.rst:2373 +#: library/stdtypes.rst:2559 msgid "" "A single opening curly bracket, ``'{'``, marks a *replacement field* that " "can contain any Python expression:" @@ -4443,7 +4697,7 @@ msgstr "" "Ένα μόνο άνοιγμα αγκύλης, ``'{'``, δηλώνει ένα *πεδίο αντικατάστασης* που " "μπορεί να περιέχει οποιαδήποτε έκφραση Python:" -#: library/stdtypes.rst:2376 +#: library/stdtypes.rst:2562 msgid "" ">>> nationality = 'Spanish'\n" ">>> f'The {nationality} Inquisition!'\n" @@ -4453,13 +4707,13 @@ msgstr "" ">>> f'The {nationality} Inquisition!'\n" "'The Spanish Inquisition!'" -#: library/stdtypes.rst:2382 +#: library/stdtypes.rst:2568 msgid "To include a literal ``{`` or ``}``, use a double bracket:" msgstr "" "Για να συμπεριλάβετε μια κυριολεξία ``{`` ή ``}``, χρησιμοποιήστε διπλή " "αγκύλη:" -#: library/stdtypes.rst:2384 +#: library/stdtypes.rst:2570 msgid "" ">>> x = 42\n" ">>> f'{{x}} is {x}'\n" @@ -4469,14 +4723,14 @@ msgstr "" ">>> f'{{x}} is {x}'\n" "'{x} is 42'" -#: library/stdtypes.rst:2390 +#: library/stdtypes.rst:2576 msgid "" "Functions can also be used, and :ref:`format specifiers `:" msgstr "" "Μπορούν επίσης να χρησιμοποιηθούν συναρτήσεις καθώς και :ref:`format " "specifiers `:" -#: library/stdtypes.rst:2392 +#: library/stdtypes.rst:2578 msgid "" ">>> from math import sqrt\n" ">>> f'√2 \\N{ALMOST EQUAL TO} {sqrt(2):.5f}'\n" @@ -4486,13 +4740,13 @@ msgstr "" ">>> f'√2 \\N{ALMOST EQUAL TO} {sqrt(2):.5f}'\n" "'√2 ≈ 1.41421'" -#: library/stdtypes.rst:2398 +#: library/stdtypes.rst:2584 msgid "Any non-string expression is converted using :func:`str`, by default:" msgstr "" "Κάθε έκφραση μη-συμβολοσειράς μετατρέπεται χρησιμοποιώντας τη :func:`str`, " "από προεπιλογή:" -#: library/stdtypes.rst:2400 +#: library/stdtypes.rst:2586 msgid "" ">>> from fractions import Fraction\n" ">>> f'{Fraction(1, 3)}'\n" @@ -4502,7 +4756,7 @@ msgstr "" ">>> f'{Fraction(1, 3)}'\n" "'1/3'" -#: library/stdtypes.rst:2406 +#: library/stdtypes.rst:2592 msgid "" "To use an explicit conversion, use the ``!`` (exclamation mark) operator, " "followed by any of the valid formats, which are:" @@ -4511,39 +4765,35 @@ msgstr "" "(θαυμαστικό), ακολουθούμενο από οποιεσδήποτε από τις έγκυρες μορφές, τα " "οποία είναι:" -#: library/stdtypes.rst:2578 library/stdtypes.rst:3797 +#: library/stdtypes.rst:2764 library/stdtypes.rst:3984 msgid "Conversion" msgstr "Μετατροπή" -#: library/stdtypes.rst:2412 +#: library/stdtypes.rst:2598 msgid "``!a``" msgstr "``!a``" -#: library/stdtypes.rst:2412 +#: library/stdtypes.rst:2598 msgid ":func:`ascii`" msgstr ":func:`ascii`" -#: library/stdtypes.rst:2413 +#: library/stdtypes.rst:2599 msgid "``!r``" msgstr "``!r``" -#: library/stdtypes.rst:2413 +#: library/stdtypes.rst:2599 msgid ":func:`repr`" msgstr ":func:`repr`" -#: library/stdtypes.rst:2414 +#: library/stdtypes.rst:2600 msgid "``!s``" msgstr "``!s``" -#: library/stdtypes.rst:2414 +#: library/stdtypes.rst:2600 msgid ":func:`str`" msgstr ":func:`str`" -#: library/stdtypes.rst:2417 -msgid "For example:" -msgstr "Για παράδειγμα:" - -#: library/stdtypes.rst:2419 +#: library/stdtypes.rst:2605 msgid "" ">>> from fractions import Fraction\n" ">>> f'{Fraction(1, 3)!s}'\n" @@ -4563,7 +4813,7 @@ msgstr "" ">>> print(f'{question!a}')\n" "'\\xbfD\\xf3nde est\\xe1 el Presidente?'" -#: library/stdtypes.rst:2430 +#: library/stdtypes.rst:2616 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 " @@ -4577,7 +4827,7 @@ msgstr "" "αποσφαλμάτωσης χρησιμοποιεί τη μετατροπή :func:`repr` (``!r``). Για " "παράδειγμα:" -#: library/stdtypes.rst:2436 +#: library/stdtypes.rst:2622 msgid "" ">>> from fractions import Fraction\n" ">>> calculation = Fraction(1, 3)\n" @@ -4597,7 +4847,7 @@ msgstr "" ">>> f'{calculation = !s}'\n" "'calculation = 1/3'" -#: library/stdtypes.rst:2447 +#: library/stdtypes.rst:2633 msgid "" "Once the output has been evaluated, it can be formatted using a :ref:`format " "specifier ` following a colon (``':'``). After the expression " @@ -4614,7 +4864,7 @@ msgstr "" "καθοριστής μορφοποίησης. Το μορφοποιημένο αποτέλεσμα χρησιμοποιείται στη " "συνέχεια ως η τελική τιμή για το πεδίο αντικατάστασης. Για παράδειγμα:" -#: library/stdtypes.rst:2455 +#: library/stdtypes.rst:2641 msgid "" ">>> from fractions import Fraction\n" ">>> f'{Fraction(1, 7):.6f}'\n" @@ -4628,11 +4878,11 @@ msgstr "" ">>> f'{Fraction(1, 7):_^+10}'\n" "'___+1/7___'" -#: library/stdtypes.rst:2467 +#: library/stdtypes.rst:2653 msgid "``printf``-style String Formatting" msgstr "``printf``-style String Formatting" -#: library/stdtypes.rst:2480 +#: library/stdtypes.rst:2666 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 " @@ -4651,7 +4901,7 @@ msgstr "" "τους δικούς τις συμβιβασμούς και τα οφέλη της απλότητας, ευελιξίας και/ή " "επεκτασιμότητας." -#: library/stdtypes.rst:2488 +#: library/stdtypes.rst:2674 msgid "" "String objects have one unique built-in operation: the ``%`` operator " "(modulo). This is also known as the string *formatting* or *interpolation* " @@ -4668,7 +4918,7 @@ msgstr "" "είναι παρόμοιο με τη χρήση του :c:func:`sprintf` στη γλώσσα C. Για " "παράδειγμα:" -#: library/stdtypes.rst:2495 +#: library/stdtypes.rst:2681 msgid "" ">>> print('%s has %d quote types.' % ('Python', 2))\n" "Python has 2 quote types." @@ -4676,7 +4926,7 @@ msgstr "" ">>> print('%s has %d quote types.' % ('Python', 2))\n" "Python has 2 quote types." -#: library/stdtypes.rst:2500 +#: library/stdtypes.rst:2686 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 " @@ -4689,7 +4939,7 @@ msgstr "" "από το format string ή ένα μεμονωμένο αντικείμενο αντιστοίχισης (για " "παράδειγμα, ένα λεξικό)." -#: library/stdtypes.rst:3729 +#: library/stdtypes.rst:3916 msgid "" "A conversion specifier contains two or more characters and has the following " "components, which must occur in this order:" @@ -4697,11 +4947,11 @@ msgstr "" "Ένας προσδιοριστής μετατροπής περιέχει δύο ή περισσότερους χαρακτήρες και " "έχει τους εξής components, οι οποίοι πρέπει να εμφανίζονται με αυτή τη σειρά:" -#: library/stdtypes.rst:3732 +#: library/stdtypes.rst:3919 msgid "The ``'%'`` character, which marks the start of the specifier." msgstr "Ο χαρακτήρας ```%''``, που σηματοδοτεί την αρχή του προσδιοριστή." -#: library/stdtypes.rst:3734 +#: library/stdtypes.rst:3921 msgid "" "Mapping key (optional), consisting of a parenthesised sequence of characters " "(for example, ``(somename)``)." @@ -4709,7 +4959,7 @@ msgstr "" "Κλειδί mapping (προαιρετικό), που αποτελείται από μια ακολουθία χαρακτήρων " "σε παρένθεση (για παράδειγμα, ``(somename)``)." -#: library/stdtypes.rst:3737 +#: library/stdtypes.rst:3924 msgid "" "Conversion flags (optional), which affect the result of some conversion " "types." @@ -4717,7 +4967,7 @@ msgstr "" "Δείκτες μετατροπής (προαιρετικό), που επηρεάζουν το αποτέλεσμα κάποιων τύπων " "μετατροπής." -#: library/stdtypes.rst:3740 +#: library/stdtypes.rst:3927 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 " @@ -4728,7 +4978,7 @@ msgstr "" "*values*, και το αντικείμενο προς μετατροπή έρχεται μετά από το ελάχιστο " "πλάτος πεδίου και το προαιρετικό precision." -#: library/stdtypes.rst:3744 +#: library/stdtypes.rst:3931 msgid "" "Precision (optional), given as a ``'.'`` (dot) followed by the precision. " "If specified as ``'*'`` (an asterisk), the actual precision is read from the " @@ -4740,15 +4990,15 @@ msgstr "" "διαβάζεται από το επόμενο στοιχείο του tuple στα *values*, και η τιμή προς " "μετατροπή έρχεται μετά το precision." -#: library/stdtypes.rst:3749 +#: library/stdtypes.rst:3936 msgid "Length modifier (optional)." msgstr "Μετατροπέας του length (προαιρετικό)." -#: library/stdtypes.rst:3751 +#: library/stdtypes.rst:3938 msgid "Conversion type." msgstr "Τύπος conversion." -#: library/stdtypes.rst:2534 +#: library/stdtypes.rst:2720 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 " @@ -4761,7 +5011,7 @@ msgstr "" "``'%'``. Το κλειδί αντιστοίχισης επιλέγει την τιμή που θα μορφοποιηθεί από " "την αντιστοίχιση. Για παράδειγμα:" -#: library/stdtypes.rst:3762 +#: library/stdtypes.rst:3949 msgid "" "In this case no ``*`` specifiers may occur in a format (since they require a " "sequential parameter list)." @@ -4769,38 +5019,38 @@ msgstr "" "Σε αυτήν την περίπτωση δεν μπορεί να υπάρχουν προσδιοριστές ``*`` σε μια " "μορφή (καθώς απαιτούν μια διαδοχική λίστα παραμέτρων)." -#: library/stdtypes.rst:3765 +#: library/stdtypes.rst:3952 msgid "The conversion flag characters are:" msgstr "Οι δείκτες μετατροπής είναι:" -#: library/stdtypes.rst:3774 +#: library/stdtypes.rst:3961 msgid "Flag" msgstr "Flag" -#: library/stdtypes.rst:3776 +#: library/stdtypes.rst:3963 msgid "``'#'``" msgstr "``'#'``" -#: library/stdtypes.rst:3776 +#: library/stdtypes.rst:3963 msgid "" "The value conversion will use the \"alternate form\" (where defined below)." msgstr "" "Οι μετατροπή τιμής θα χρησιμοποιήσει την \"εναλλακτική φόρμα\" (όπου " "ορίζεται παρακάτω)." -#: library/stdtypes.rst:3779 +#: library/stdtypes.rst:3966 msgid "``'0'``" msgstr "``'0'``" -#: library/stdtypes.rst:3779 +#: library/stdtypes.rst:3966 msgid "The conversion will be zero padded for numeric values." msgstr "Η μετατροπή θα έχει μηδενική συμπλήρωση για αριθμητικές τιμές." -#: library/stdtypes.rst:3781 +#: library/stdtypes.rst:3968 msgid "``'-'``" msgstr "``'-'``" -#: library/stdtypes.rst:3781 +#: library/stdtypes.rst:3968 msgid "" "The converted value is left adjusted (overrides the ``'0'`` conversion if " "both are given)." @@ -4808,11 +5058,11 @@ msgstr "" "Η τιμή μετατροπής αφήνεται προσαρμοσμένη (παρακάμπτει τη μετατροπή ``'0'`` " "εάν δίνονται και τα δύο)." -#: library/stdtypes.rst:3784 +#: library/stdtypes.rst:3971 msgid "``' '``" msgstr "``' '``" -#: library/stdtypes.rst:3784 +#: library/stdtypes.rst:3971 msgid "" "(a space) A blank should be left before a positive number (or empty string) " "produced by a signed conversion." @@ -4820,11 +5070,11 @@ msgstr "" "(ένα κενό) Πρέπει να προστεθεί ένα κενό πριν από έναν θετικό αριθμό (ή κενή " "συμβολοσειρά) που παράγεται από μια υπογεγραμμένη μετατροπή." -#: library/stdtypes.rst:3787 +#: library/stdtypes.rst:3974 msgid "``'+'``" msgstr "``'+'``" -#: library/stdtypes.rst:3787 +#: library/stdtypes.rst:3974 msgid "" "A sign character (``'+'`` or ``'-'``) will precede the conversion (overrides " "a \"space\" flag)." @@ -4832,7 +5082,7 @@ msgstr "" "Ένα χαρακτήρας προσήμου (``'+'`` ή ``'-'``) θα προηγείται της μετατροπής " "(παρακάμπτει ένα \"κενό\" δείκτη)." -#: library/stdtypes.rst:3791 +#: library/stdtypes.rst:3978 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``." @@ -4841,87 +5091,87 @@ msgstr "" "αγνοείται καθώς δεν είναι απαραίτητος για την Python -- οπότε π.χ. ``%ld`` " "είναι πανομοιότυπο σε ``%d``." -#: library/stdtypes.rst:3794 +#: library/stdtypes.rst:3981 msgid "The conversion types are:" msgstr "Οι τύποι μετατροπής είναι:" -#: library/stdtypes.rst:3799 +#: library/stdtypes.rst:3986 msgid "``'d'``" msgstr "``'d'``" -#: library/stdtypes.rst:2582 library/stdtypes.rst:3801 +#: library/stdtypes.rst:2768 library/stdtypes.rst:3988 msgid "Signed integer decimal." msgstr "Υπογεγραμμένος δεκαδικός ακέραιος." -#: library/stdtypes.rst:3801 +#: library/stdtypes.rst:3988 msgid "``'i'``" msgstr "``'i'``" -#: library/stdtypes.rst:3803 +#: library/stdtypes.rst:3990 msgid "``'o'``" msgstr "``'o'``" -#: library/stdtypes.rst:3803 +#: library/stdtypes.rst:3990 msgid "Signed octal value." msgstr "Υπογεγραμμένη οκταδική τιμή." -#: library/stdtypes.rst:3805 +#: library/stdtypes.rst:3992 msgid "``'u'``" msgstr "``'u'``" -#: library/stdtypes.rst:3805 +#: library/stdtypes.rst:3992 msgid "Obsolete type -- it is identical to ``'d'``." msgstr "Απαρχαιωμένος τύπος -- είναι πανομοιότυπος με το ``'d'``." -#: library/stdtypes.rst:3807 +#: library/stdtypes.rst:3994 msgid "``'x'``" msgstr "``'x'``" -#: library/stdtypes.rst:3807 +#: library/stdtypes.rst:3994 msgid "Signed hexadecimal (lowercase)." msgstr "Υπογεγραμμένο δεκαεξαδικό (πεζά)." -#: library/stdtypes.rst:3809 +#: library/stdtypes.rst:3996 msgid "``'X'``" msgstr "``'X'``" -#: library/stdtypes.rst:3809 +#: library/stdtypes.rst:3996 msgid "Signed hexadecimal (uppercase)." msgstr "Υπογεγραμμένο δεκαεξαδικό (κεφαλαίο)." -#: library/stdtypes.rst:3811 +#: library/stdtypes.rst:3998 msgid "``'e'``" msgstr "``'e'``" -#: library/stdtypes.rst:3811 +#: library/stdtypes.rst:3998 msgid "Floating-point exponential format (lowercase)." msgstr "Εκθετική μορφή κινητής υποδιαστολής (πεζά)" -#: library/stdtypes.rst:3813 +#: library/stdtypes.rst:4000 msgid "``'E'``" msgstr "``'E'``" -#: library/stdtypes.rst:3813 +#: library/stdtypes.rst:4000 msgid "Floating-point exponential format (uppercase)." msgstr "Εκθετική μορφή κινητής υποδιαστολής (κεφαλαία)" -#: library/stdtypes.rst:3815 +#: library/stdtypes.rst:4002 msgid "``'f'``" msgstr "``'f'``" -#: library/stdtypes.rst:2598 library/stdtypes.rst:3817 +#: library/stdtypes.rst:2784 library/stdtypes.rst:4004 msgid "Floating-point decimal format." msgstr "Δεκαδική μορφή κινητής υποδιαστολής." -#: library/stdtypes.rst:3817 +#: library/stdtypes.rst:4004 msgid "``'F'``" msgstr "``'F'``" -#: library/stdtypes.rst:3819 +#: library/stdtypes.rst:4006 msgid "``'g'``" msgstr "``'g'``" -#: library/stdtypes.rst:3819 +#: library/stdtypes.rst:4006 msgid "" "Floating-point format. Uses lowercase exponential format if exponent is less " "than -4 or not less than precision, decimal format otherwise." @@ -4930,11 +5180,11 @@ msgstr "" "είναι μικρότερος από -4 ή όχι μικρότερος από την ακρίβεια, διαφορετικά " "χρησιμοποιεί δεκαδική μορφή." -#: library/stdtypes.rst:3823 +#: library/stdtypes.rst:4010 msgid "``'G'``" msgstr "``'G'``" -#: library/stdtypes.rst:3823 +#: library/stdtypes.rst:4010 msgid "" "Floating-point format. Uses uppercase exponential format if exponent is less " "than -4 or not less than precision, decimal format otherwise." @@ -4943,56 +5193,56 @@ msgstr "" "εκθέτης είναι μικρότερος από -4 ή όχι μικρότερος από την ακρίβεια, " "διαφορετικά χρησιμοποιεί δεκαδική μορφή." -#: library/stdtypes.rst:3827 +#: library/stdtypes.rst:4014 msgid "``'c'``" msgstr "``'c'``" -#: library/stdtypes.rst:2608 +#: library/stdtypes.rst:2794 msgid "Single character (accepts integer or single character string)." msgstr "" "Μεμονωμένος χαρακτήρας (δέχεται ακέραιο ή μονό χαρακτήρα συμβολοσειράς)." -#: library/stdtypes.rst:3840 +#: library/stdtypes.rst:4027 msgid "``'r'``" msgstr "``'r'``" -#: library/stdtypes.rst:2611 +#: library/stdtypes.rst:2797 msgid "String (converts any Python object using :func:`repr`)." msgstr "" "Συμβολοσειρά (μετατρέπει οποιοδήποτε αντικείμενο Python χρησιμοποιώντας :" "func:`repr`)." -#: library/stdtypes.rst:3834 +#: library/stdtypes.rst:4021 msgid "``'s'``" msgstr "``'s'``" -#: library/stdtypes.rst:2614 +#: library/stdtypes.rst:2800 msgid "String (converts any Python object using :func:`str`)." msgstr "" "Συμβολοσειρά (μετατρέπει οποιοδήποτε αντικείμενο Python χρησιμοποιώντας :" "func:`str`)." -#: library/stdtypes.rst:3837 +#: library/stdtypes.rst:4024 msgid "``'a'``" msgstr "``'a'``" -#: library/stdtypes.rst:2617 +#: library/stdtypes.rst:2803 msgid "String (converts any Python object using :func:`ascii`)." msgstr "" "Συμβολοσειρά (μετατρέπει οποιοδήποτε αντικείμενο Python χρησιμοποιώντας :" "func:`ascii`)." -#: library/stdtypes.rst:3843 +#: library/stdtypes.rst:4030 msgid "``'%'``" msgstr "``'%'``" -#: library/stdtypes.rst:3843 +#: library/stdtypes.rst:4030 msgid "No argument is converted, results in a ``'%'`` character in the result." msgstr "" "Κανένα όρισμα δεν μετατρέπεται, έχει ως αποτέλεσμα έναν χαρακτήρα ``'%'`` το " "αποτέλεσμα." -#: library/stdtypes.rst:3850 +#: library/stdtypes.rst:4037 msgid "" "The alternate form causes a leading octal specifier (``'0o'``) to be " "inserted before the first digit." @@ -5000,7 +5250,7 @@ msgstr "" "Η εναλλακτική μορφή προκαλεί την εισαγωγή ενός πρώτου οκταδικού προσδιοριστή " "(``'0o'``) πριν από το πρώτο ψηφίο." -#: library/stdtypes.rst:3854 +#: library/stdtypes.rst:4041 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 " @@ -5010,7 +5260,7 @@ msgstr "" "(ανάλογα με το εάν χρησιμοποιήθηκε η μορφή ``'x'`` ή ``'X'``) πριν το πρώτο " "ψηφίο." -#: library/stdtypes.rst:3858 +#: library/stdtypes.rst:4045 msgid "" "The alternate form causes the result to always contain a decimal point, even " "if no digits follow it." @@ -5018,7 +5268,7 @@ msgstr "" "Η εναλλακτική μορφή κάνει το αποτέλεσμα να περιέχει πάντα μια υποδιαστολή, " "ακόμα κι αν δεν ακολουθούν ψηφία." -#: library/stdtypes.rst:3861 +#: library/stdtypes.rst:4048 msgid "" "The precision determines the number of digits after the decimal point and " "defaults to 6." @@ -5026,7 +5276,7 @@ msgstr "" "Η ακρίβεια καθορίζει τον αριθμό των ψηφίων μετά την υποδιαστολή και ορίζεται " "από προεπιλογή ως 6." -#: library/stdtypes.rst:3865 +#: library/stdtypes.rst:4052 msgid "" "The alternate form causes the result to always contain a decimal point, and " "trailing zeroes are not removed as they would otherwise be." @@ -5034,7 +5284,7 @@ msgstr "" "Η εναλλακτική μορφή κάνει το αποτέλεσμα να περιέχει πάντα μια υποδιαστολή " "και τα μηδενικά στο τέλος δεν αφαιρούνται όπως θα ήταν διαφορετικά." -#: library/stdtypes.rst:3868 +#: library/stdtypes.rst:4055 msgid "" "The precision determines the number of significant digits before and after " "the decimal point and defaults to 6." @@ -5042,15 +5292,15 @@ msgstr "" "Η ακρίβεια καθορίζει τον αριθμό των σημαντικών ψηφίων πριν και μετά την " "υποδιαστολή και ορίζει το 6." -#: library/stdtypes.rst:3872 +#: library/stdtypes.rst:4059 msgid "If precision is ``N``, the output is truncated to ``N`` characters." -msgstr "Εάν η ακρίβεια είναι``N``, η έξοδος περικόπτεται σε ``N`` χαρακτήρες." +msgstr "Εάν η ακρίβεια είναι ``N``, η έξοδος περικόπτεται σε ``N`` χαρακτήρες." -#: library/stdtypes.rst:3881 +#: library/stdtypes.rst:4068 msgid "See :pep:`237`." msgstr "Βλέπε :pep:`237`." -#: library/stdtypes.rst:2654 +#: library/stdtypes.rst:2840 msgid "" "Since Python strings have an explicit length, ``%s`` conversions do not " "assume that ``'\\0'`` is the end of the string." @@ -5058,7 +5308,7 @@ msgstr "" "Δεδομένου ότι οι συμβολοσειρές Python έχουν ρητό μήκος, οι ``%s`` μετατροπές " "δεν υποθέτουν ότι το ``'\\0'`` είναι το τέλος της συμβολοσειράς." -#: library/stdtypes.rst:2659 +#: library/stdtypes.rst:2845 msgid "" "``%f`` conversions for numbers whose absolute value is over 1e50 are no " "longer replaced by ``%g`` conversions." @@ -5066,7 +5316,7 @@ msgstr "" "Οι μετατροπείς ``%f`` για αριθμούς των οποίων η απόλυτη τιμή είναι " "μεγαλύτερη από 1e50 δεν αντικαθίστανται πλέον από μετατροπές ``%g``." -#: library/stdtypes.rst:2670 +#: library/stdtypes.rst:2856 msgid "" "Binary Sequence Types --- :class:`bytes`, :class:`bytearray`, :class:" "`memoryview`" @@ -5074,7 +5324,7 @@ msgstr "" "Τύποι δυαδικής ακολουθίας --- :class:`bytes`, :class:`bytearray`, :class:" "`memoryview`" -#: library/stdtypes.rst:2678 +#: library/stdtypes.rst:2864 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 :" @@ -5087,7 +5337,7 @@ msgstr "" "` για την πρόσβαση στη μνήμη άλλων δυαδικών αντικειμένων " "χωρίς να χρειάζεται η δημιουργία αντιγράφου." -#: library/stdtypes.rst:2683 +#: library/stdtypes.rst:2869 msgid "" "The :mod:`array` module supports efficient storage of basic data types like " "32-bit integers and IEEE754 double-precision floating values." @@ -5096,11 +5346,11 @@ msgstr "" "δεδομένων όπως 32-bit ακέραιους και IEEE754 διπλής ακρίβειας κινητής " "υποδιαστολής τιμές." -#: library/stdtypes.rst:2689 +#: library/stdtypes.rst:2875 msgid "Bytes Objects" msgstr "Αντικείμενα Bytes" -#: library/stdtypes.rst:2693 +#: library/stdtypes.rst:2879 msgid "" "Bytes objects are immutable sequences of single bytes. Since many major " "binary protocols are based on the ASCII text encoding, bytes objects offer " @@ -5113,7 +5363,7 @@ msgstr "" "ισχύουν μόνο όταν εργάζονται με δεδομένα συμβατά με ASCII και σχετίζονται " "στενά με αντικείμενα συμβολοσειρών σε μια ποικιλία διαφόρων τρόπων." -#: library/stdtypes.rst:2700 +#: library/stdtypes.rst:2887 msgid "" "Firstly, the syntax for bytes literals is largely the same as that for " "string literals, except that a ``b`` prefix is added:" @@ -5122,25 +5372,25 @@ msgstr "" "για τα literals συμβολοσειρών, με τη διαφορά ότι προστίθεται ένα πρόθεμα " "``b``::" -#: library/stdtypes.rst:2703 +#: library/stdtypes.rst:2890 msgid "Single quotes: ``b'still allows embedded \"double\" quotes'``" msgstr "" "Μονά εισαγωγικά: ``b'ακόμα επιτρέπει ενσωματωμένα \"διπλά\" εισαγωγικά'``" -#: library/stdtypes.rst:2704 +#: library/stdtypes.rst:2891 msgid "Double quotes: ``b\"still allows embedded 'single' quotes\"``" msgstr "" "Διπλά εισαγωγικά: ``b\"εξακολουθεί να επιτρέπει ενσωματωμένα 'μονά' " "εισαγωγικά\"``" -#: library/stdtypes.rst:2705 +#: library/stdtypes.rst:2892 msgid "" "Triple quoted: ``b'''3 single quotes'''``, ``b\"\"\"3 double quotes\"\"\"``" msgstr "" "Τριπλά εισαγωγικά: ``b'''3 μονά εισαγωγικά'''``, ``b\"\"\"3 διπλά " "εισαγωγικά\"\"\"``" -#: library/stdtypes.rst:2707 +#: library/stdtypes.rst:2894 msgid "" "Only ASCII characters are permitted in bytes literals (regardless of the " "declared source code encoding). Any binary values over 127 must be entered " @@ -5151,7 +5401,7 @@ msgstr "" "127, πρέπει να εισαχθούν σε bytes literals χρησιμοποιώντας την κατάλληλη " "ακολουθία διαφυγής χαρακτήρων." -#: library/stdtypes.rst:2711 +#: library/stdtypes.rst:2898 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 " @@ -5163,7 +5413,7 @@ msgstr "" "πληροφορίες σχετικά με τις διάφορες μορφές bytes literal, " "συμπεριλαμβανομένων των υποστηριζόμενων ακολουθιών διαφυγής χαρακτήρων." -#: library/stdtypes.rst:2715 +#: library/stdtypes.rst:2902 msgid "" "While bytes literals and representations are based on ASCII text, bytes " "objects actually behave like immutable sequences of integers, with each " @@ -5186,7 +5436,7 @@ msgstr "" "εφαρμογή αλγορίθμων επεξεργασίας κειμένου σε δυαδικές μορφές δεδομένων που " "δεν είναι συμβατές με ASCII συνήθως οδηγεί σε καταστροφή δεδομένων)." -#: library/stdtypes.rst:2725 +#: library/stdtypes.rst:2912 msgid "" "In addition to the literal forms, bytes objects can be created in a number " "of other ways:" @@ -5194,25 +5444,25 @@ msgstr "" "Εκτός από τις literal μορφές, τα αντικείμενα bytes μπορούν να δημιουργηθούν " "με πολλούς άλλους τρόπους:" -#: library/stdtypes.rst:2728 +#: library/stdtypes.rst:2915 msgid "A zero-filled bytes object of a specified length: ``bytes(10)``" msgstr "Ένα μηδενικό αντικείμενο bytes με καθορισμένο μήκος: ``bytes(10)``" -#: library/stdtypes.rst:2729 +#: library/stdtypes.rst:2916 msgid "From an iterable of integers: ``bytes(range(20))``" msgstr "Από ένα iterable ακεραίων αριθμών: ``bytes(range(20))``" -#: library/stdtypes.rst:2730 +#: library/stdtypes.rst:2917 msgid "Copying existing binary data via the buffer protocol: ``bytes(obj)``" msgstr "" "Αντιγραφή υπαρχόντων δυαδικών δεδομένων μέσω του πρωτοκόλλου buffer: " "``bytes(obj)``" -#: library/stdtypes.rst:2732 +#: library/stdtypes.rst:2919 msgid "Also see the :ref:`bytes ` built-in." msgstr "Δείτε επίσης το ενσωματωμένο :ref:`bytes `." -#: library/stdtypes.rst:2734 +#: library/stdtypes.rst:2921 msgid "" "Since 2 hexadecimal digits correspond precisely to a single byte, " "hexadecimal numbers are a commonly used format for describing binary data. " @@ -5224,7 +5474,7 @@ msgstr "" "περιγραφή δυαδικών δεδομένων. Συνεπώς, ο τύπος bytes έχει μια πρόσθετη " "μέθοδο κλάσης για την ανάγνωση δεδομένων σε αυτήν την μορφή:" -#: library/stdtypes.rst:2740 +#: library/stdtypes.rst:2927 msgid "" "This :class:`bytes` class method returns a bytes object, decoding the given " "string object. The string must contain two hexadecimal digits per byte, " @@ -5235,7 +5485,7 @@ msgstr "" "πρέπει να περιέχει δύο δεκαεξαδικά ψηφία ανά byte, με το κενό διάστημα ASCII " "να αγνοείται." -#: library/stdtypes.rst:2747 +#: library/stdtypes.rst:2934 msgid "" ":meth:`bytes.fromhex` now skips all ASCII whitespace in the string, not just " "spaces." @@ -5243,7 +5493,7 @@ msgstr "" "Το :meth:`bytes.fromhex` παρακάμπτει πλέον όλα τα κενά ASCII στη " "συμβολοσειρά, όχι μόνο τα κενά." -#: library/stdtypes.rst:2751 +#: library/stdtypes.rst:2938 msgid "" "A reverse conversion function exists to transform a bytes object into its " "hexadecimal representation." @@ -5251,7 +5501,7 @@ msgstr "" "Υπάρχει μια συνάρτηση αντίστροφης μετατροπής για τη μετατροπή ενός " "αντικειμένου bytes στην δεκαεξαδική του αναπαράσταση." -#: library/stdtypes.rst:2841 +#: library/stdtypes.rst:3031 msgid "" "Return a string object containing two hexadecimal digits for each byte in " "the instance." @@ -5259,7 +5509,7 @@ msgstr "" "Επιστρέφετε ένα αντικείμενο συμβολοσειράς που περιέχει δύο δεκαεξαδικά ψηφία " "για κάθε byte στο στιγμιότυπο." -#: library/stdtypes.rst:2762 +#: library/stdtypes.rst:2950 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, " @@ -5274,7 +5524,7 @@ msgstr "" "*bytes_per_sep* ελέγχει τα διαστήματα. Οι θετικές τιμές υπολογίζουν τη θέση " "του διαχωριστή από τα δεξιά, οι αρνητικές τιμές από τα αριστερά." -#: library/stdtypes.rst:2779 +#: library/stdtypes.rst:2967 msgid "" ":meth:`bytes.hex` now supports optional *sep* and *bytes_per_sep* parameters " "to insert separators between bytes in the hex output." @@ -5283,7 +5533,7 @@ msgstr "" "*bytes_per_sep* για την εισαγωγή διαχωριστικών μεταξύ των byte στην έξοδο " "δεκαεξαδικού." -#: library/stdtypes.rst:2783 +#: library/stdtypes.rst:2971 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 " @@ -5297,7 +5547,7 @@ msgstr "" "η λειτουργία πρόσβασης ως ευρετήριο όσο και η λειτουργία τμηματοποίησης θα " "παράγουν μια συμβολοσειρά μήκους 1)" -#: library/stdtypes.rst:2788 +#: library/stdtypes.rst:2976 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 " @@ -5308,11 +5558,11 @@ msgstr "" "46])``. Μπορείτε πάντα να μετατρέψετε ένα αντικείμενο bytes σε μια λίστα " "ακέραιων αριθμών που χρησιμοποιούν ``list(b)``." -#: library/stdtypes.rst:2796 +#: library/stdtypes.rst:2984 msgid "Bytearray Objects" msgstr "Αντικείμενα Bytearray" -#: library/stdtypes.rst:2800 +#: library/stdtypes.rst:2988 msgid "" ":class:`bytearray` objects are a mutable counterpart to :class:`bytes` " "objects." @@ -5320,7 +5570,7 @@ msgstr "" "Τα αντικείμενα :class:`bytearray` είναι ένα μεταβλητό, αντίστοιχο, των " "αντικειμένων :class:`bytes`." -#: library/stdtypes.rst:2805 +#: library/stdtypes.rst:2994 msgid "" "There is no dedicated literal syntax for bytearray objects, instead they are " "always created by calling the constructor:" @@ -5328,26 +5578,26 @@ msgstr "" "Δεν υπάρχει αποκλειστική literal σύνταξη για αντικείμενα bytearray, αντίθετα " "δημιουργούνται πάντα καλώντας τον constructor:" -#: library/stdtypes.rst:2808 +#: library/stdtypes.rst:2997 msgid "Creating an empty instance: ``bytearray()``" msgstr "Δημιουργία ενός κενού στιγμιοτύπου: ``bytearray()``" -#: library/stdtypes.rst:2809 +#: library/stdtypes.rst:2998 msgid "Creating a zero-filled instance with a given length: ``bytearray(10)``" msgstr "Δημιουργία μηδενικού στιγμιοτύπου με δεδομένο μήκος: ``bytearray(10)``" -#: library/stdtypes.rst:2810 +#: library/stdtypes.rst:2999 msgid "From an iterable of integers: ``bytearray(range(20))``" msgstr "Από έναν iterable αριθμό ακεραίων: ``bytearray(range(20))``" -#: library/stdtypes.rst:2811 +#: library/stdtypes.rst:3000 msgid "" "Copying existing binary data via the buffer protocol: ``bytearray(b'Hi!')``" msgstr "" "Αντιγραφή υπαρχόντων δυαδικών δεδομένων μέσω του πρωτοκόλλου buffer: " "``bytearray(b'Hi!')``" -#: library/stdtypes.rst:2813 +#: library/stdtypes.rst:3002 msgid "" "As bytearray objects are mutable, they support the :ref:`mutable ` sequence operations in addition to the common bytes and bytearray " @@ -5358,11 +5608,11 @@ msgstr "" "κοινών λειτουργιών bytes και bytearray που περιγράφονται στο :ref:`bytes-" "methods`." -#: library/stdtypes.rst:2817 +#: library/stdtypes.rst:3006 msgid "Also see the :ref:`bytearray ` built-in." msgstr "Δείτε επίσης το ενσωματωμένο :ref:`bytearray `." -#: library/stdtypes.rst:2819 +#: library/stdtypes.rst:3008 msgid "" "Since 2 hexadecimal digits correspond precisely to a single byte, " "hexadecimal numbers are a commonly used format for describing binary data. " @@ -5374,7 +5624,7 @@ msgstr "" "δυαδικών δεδομένων. Συνεπώς, ο τύπος bytearray έχει μια πρόσθετη μέθοδο " "κλάσης για την ανάγνωση δεδομένων σε αυτήν την μορφή:" -#: library/stdtypes.rst:2825 +#: library/stdtypes.rst:3014 msgid "" "This :class:`bytearray` class method returns bytearray object, decoding the " "given string object. The string must contain two hexadecimal digits per " @@ -5385,7 +5635,7 @@ msgstr "" "πρέπει να περιέχει δύο δεκαεξαδικά ψηφία ανά byte, με το κενό διάστημα ASCII " "να αγνοείται." -#: library/stdtypes.rst:2832 +#: library/stdtypes.rst:3021 msgid "" ":meth:`bytearray.fromhex` now skips all ASCII whitespace in the string, not " "just spaces." @@ -5393,7 +5643,7 @@ msgstr "" "Το :meth:`bytearray.fromhex` παρακάμπτει τώρα όλα τα κενά ASCII στη " "συμβολοσειρά, όχι μόνο τα κενά." -#: library/stdtypes.rst:2836 +#: library/stdtypes.rst:3025 msgid "" "A reverse conversion function exists to transform a bytearray object into " "its hexadecimal representation." @@ -5401,7 +5651,7 @@ msgstr "" "Υπάρχει μια συνάρτηση αντίστροφης μετατροπής για να μετατρέψει ένα " "αντικείμενο bytearray στη δεκαεξαδική αναπαράσταση του." -#: library/stdtypes.rst:2849 +#: library/stdtypes.rst:3039 msgid "" "Similar to :meth:`bytes.hex`, :meth:`bytearray.hex` now supports optional " "*sep* and *bytes_per_sep* parameters to insert separators between bytes in " @@ -5411,7 +5661,7 @@ msgstr "" "προαιρετικές παραμέτρους *sep* και *bytes_per_sep* για την εισαγωγή " "διαχωριστικών μεταξύ των byte στην δεκαεξαδική έξοδο." -#: library/stdtypes.rst:2854 +#: library/stdtypes.rst:3044 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 " @@ -5425,7 +5675,7 @@ msgstr "" "κειμένου, όπου τόσο το indexing και το slicing θα παράγουν μια συμβολοσειρά " "μήκους 1)" -#: library/stdtypes.rst:2859 +#: library/stdtypes.rst:3049 msgid "" "The representation of bytearray objects uses the bytes literal format " "(``bytearray(b'...')``) since it is often more useful than e.g. " @@ -5437,11 +5687,11 @@ msgstr "" "``bytearray([46, 46, 46])``. Μπορείτε πάντα να μετατρέψετε ένα αντικείμενο " "bytearray σε λίστα ακεραίων χρησιμοποιώντας το ``list(b)``." -#: library/stdtypes.rst:2868 +#: library/stdtypes.rst:3058 msgid "Bytes and Bytearray Operations" msgstr "Λειτουργίες Bytes και Bytearray" -#: library/stdtypes.rst:2873 +#: library/stdtypes.rst:3063 msgid "" "Both bytes and bytearray objects support the :ref:`common ` " "sequence operations. They interoperate not just with operands of the same " @@ -5456,7 +5706,7 @@ msgstr "" "ελεύθερα σε λειτουργίες χωρίς να προκαλούνται σφάλματα. Ωστόσο, ο τύπος " "επιστροφής του αποτελέσματος μπορεί να εξαρτάται από τη σειρά των τελεστών." -#: library/stdtypes.rst:2881 +#: library/stdtypes.rst:3071 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 " @@ -5466,7 +5716,7 @@ msgstr "" "ως ορίσματά τους, όπως και οι μέθοδοι σε συμβολοσειρές δεν δέχονται bytes ως " "ορίσματα. Για παράδειγμα, πρέπει να γράψετε::" -#: library/stdtypes.rst:2885 +#: library/stdtypes.rst:3075 msgid "" "a = \"abc\"\n" "b = a.replace(\"a\", \"f\")" @@ -5474,11 +5724,11 @@ msgstr "" "a = \"abc\"\n" "b = a.replace(\"a\", \"f\")" -#: library/stdtypes.rst:2888 +#: library/stdtypes.rst:3078 msgid "and::" msgstr "και::" -#: library/stdtypes.rst:2890 +#: library/stdtypes.rst:3080 msgid "" "a = b\"abc\"\n" "b = a.replace(b\"a\", b\"f\")" @@ -5486,7 +5736,7 @@ msgstr "" "a = b\"abc\"\n" "b = a.replace(b\"a\", b\"f\")" -#: library/stdtypes.rst:2893 +#: library/stdtypes.rst:3083 msgid "" "Some bytes and bytearray operations assume the use of ASCII compatible " "binary formats, and hence should be avoided when working with arbitrary " @@ -5497,7 +5747,7 @@ msgstr "" "εργάζεστε με αυθαίρετα δυαδικά δεδομένα. Αυτοί οι περιορισμοί καλύπτονται " "παρακάτω." -#: library/stdtypes.rst:2898 +#: library/stdtypes.rst:3088 msgid "" "Using these ASCII based operations to manipulate binary data that is not " "stored in an ASCII based format may lead to data corruption." @@ -5506,7 +5756,7 @@ msgstr "" "δεδομένων που δεν είναι αποθηκευμένα σε μορφή που βασίζεται σε ASCII μπορεί " "να οδηγήσει σε καταστροφή δεδομένων." -#: library/stdtypes.rst:2901 +#: library/stdtypes.rst:3091 msgid "" "The following methods on bytes and bytearray objects can be used with " "arbitrary binary data." @@ -5514,7 +5764,7 @@ msgstr "" "Οι ακόλουθες μέθοδοι σε byte και αντικείμενα bytearray μπορούν να " "χρησιμοποιηθούν με αυθαίρετα δυαδικά δεδομένα." -#: library/stdtypes.rst:2907 +#: library/stdtypes.rst:3097 msgid "" "Return the number of non-overlapping occurrences of subsequence *sub* in the " "range [*start*, *end*]. Optional arguments *start* and *end* are " @@ -5524,8 +5774,8 @@ msgstr "" "ακολουθίας *sub* στο εύρος [*start*, *end*]. Τα προαιρετικά ορίσματα *start* " "και *end* ερμηνεύονται όπως στη σημειογραφία τμηματοποίησης." -#: library/stdtypes.rst:3016 library/stdtypes.rst:3104 -#: library/stdtypes.rst:3117 +#: library/stdtypes.rst:3206 library/stdtypes.rst:3294 +#: library/stdtypes.rst:3307 msgid "" "The subsequence to search for may be any :term:`bytes-like object` or an " "integer in the range 0 to 255." @@ -5533,7 +5783,7 @@ msgstr "" "Η υποακολουθία για αναζήτηση μπορεί να είναι οποιοδήποτε :term:`bytes-like " "object` ή ένας ακέραιος αριθμός στην περιοχή από 0 έως 255." -#: library/stdtypes.rst:2914 +#: library/stdtypes.rst:3104 msgid "" "If *sub* is empty, returns the number of empty slices between characters " "which is the length of the bytes object plus one." @@ -5541,13 +5791,13 @@ msgstr "" "Εάν το *sub* είναι κενό, επιστρέφει τον αριθμό των κενών τμημάτων μεταξύ των " "χαρακτήρων που είναι το μήκος του αντικειμένου bytes συν ένα." -#: library/stdtypes.rst:3028 library/stdtypes.rst:3107 -#: library/stdtypes.rst:3120 +#: library/stdtypes.rst:3218 library/stdtypes.rst:3297 +#: library/stdtypes.rst:3310 msgid "Also accept an integer in the range 0 to 255 as the subsequence." msgstr "" "Επίσης αποδέχεται έναν ακέραιο αριθμό στο εύρος 0 έως 255 ως υποακολουθία." -#: library/stdtypes.rst:2924 +#: library/stdtypes.rst:3114 msgid "" "If the binary data starts with the *prefix* string, return " "``bytes[len(prefix):]``. Otherwise, return a copy of the original binary " @@ -5557,7 +5807,7 @@ msgstr "" "``bytes[len(prefix):]``. Διαφορετικά επιστρέψτε ένα αντίγραφο των αρχικών " "δυαδικών δεδομένων::" -#: library/stdtypes.rst:2928 +#: library/stdtypes.rst:3118 msgid "" ">>> b'TestHook'.removeprefix(b'Test')\n" "b'Hook'\n" @@ -5569,15 +5819,15 @@ msgstr "" ">>> b'BaseTestCase'.removeprefix(b'Test')\n" "b'BaseTestCase'" -#: library/stdtypes.rst:2933 +#: library/stdtypes.rst:3123 msgid "The *prefix* may be any :term:`bytes-like object`." msgstr "Το *prefix* μπορεί να είναι οποιοδήποτε :term:`bytes-like object`." -#: library/stdtypes.rst:2959 library/stdtypes.rst:3185 -#: library/stdtypes.rst:3230 library/stdtypes.rst:3286 -#: library/stdtypes.rst:3375 library/stdtypes.rst:3542 -#: library/stdtypes.rst:3640 library/stdtypes.rst:3683 -#: library/stdtypes.rst:3885 +#: library/stdtypes.rst:3149 library/stdtypes.rst:3375 +#: library/stdtypes.rst:3419 library/stdtypes.rst:3474 +#: library/stdtypes.rst:3562 library/stdtypes.rst:3729 +#: library/stdtypes.rst:3827 library/stdtypes.rst:3870 +#: library/stdtypes.rst:4072 msgid "" "The bytearray version of this method does *not* operate in place - it always " "produces a new object, even if no changes were made." @@ -5585,7 +5835,7 @@ msgstr "" "Η έκδοση bytearray αυτής της μεθόδου *δεν* λειτουργεί στη θέση της - παράγει " "πάντα ένα νέο αντικείμενο, ακόμα και αν δεν έγιναν αλλαγές." -#: library/stdtypes.rst:2946 +#: library/stdtypes.rst:3136 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 " @@ -5595,7 +5845,7 @@ msgstr "" "*suffix* δεν είναι κενό, επιστρέφει ``bytes[:-len(suffix)]``. Διαφορετικά, " "επιστρέφει ένα αντίγραφο των αρχικών δυαδικών δεδομένων::" -#: library/stdtypes.rst:2950 +#: library/stdtypes.rst:3140 msgid "" ">>> b'MiscTests'.removesuffix(b'Tests')\n" "b'Misc'\n" @@ -5607,15 +5857,15 @@ msgstr "" ">>> b'TmpDirMixin'.removesuffix(b'Tests')\n" "b'TmpDirMixin'" -#: library/stdtypes.rst:2955 +#: library/stdtypes.rst:3145 msgid "The *suffix* may be any :term:`bytes-like object`." msgstr "Το *suffix* μπορεί να είναι οποιοδήποτε :term:`bytes-like object`." -#: library/stdtypes.rst:2968 +#: library/stdtypes.rst:3158 msgid "Return the bytes decoded to a :class:`str`." msgstr "Επιστρέφει τα bytes που έχουν αποκωδικοποιηθεί σε μια :class:`str`." -#: library/stdtypes.rst:2973 +#: library/stdtypes.rst:3163 msgid "" "*errors* controls how decoding errors are handled. If ``'strict'`` (the " "default), a :exc:`UnicodeError` exception is raised. Other possible values " @@ -5628,7 +5878,7 @@ msgstr "" "άλλο όνομα που έχει καταχωρηθεί από την :func:`codecs.register_error`. " "Βλέπε :ref:`error-handlers` για λεπτομέρειες." -#: library/stdtypes.rst:2979 +#: library/stdtypes.rst:3169 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:" @@ -5639,7 +5889,7 @@ msgstr "" "ενεργοποιημένο το :ref:`devmode` ή χρησιμοποιείται ένα :ref:`debug build " "`." -#: library/stdtypes.rst:2985 +#: library/stdtypes.rst:3175 msgid "" "Passing the *encoding* argument to :class:`str` allows decoding any :term:" "`bytes-like object` directly, without needing to make a temporary :class:`!" @@ -5650,7 +5900,7 @@ msgstr "" "χρειάζεται να δημιουργήσετε ένα προσωρινό αντικείμενο :class:`!bytes` ή :" "class:`!bytearray`." -#: library/stdtypes.rst:3000 +#: library/stdtypes.rst:3190 msgid "" "Return ``True`` if the binary data ends with the specified *suffix*, " "otherwise return ``False``. *suffix* can also be a tuple of suffixes to " @@ -5663,13 +5913,13 @@ msgstr "" "προαιρετικό *start*, η δοκιμή ξεκινά από αυτή τη θέση. Με το προαιρετικό " "*end*, σταματήστε να συγκρίνετε σε αυτή τη θέση." -#: library/stdtypes.rst:3005 +#: library/stdtypes.rst:3195 msgid "The suffix(es) to search for may be any :term:`bytes-like object`." msgstr "" "Το(α) επίθεμα(τα) για αναζήτηση μπορεί να είναι οποιοδήποτε :term:`bytes-" "like object`." -#: library/stdtypes.rst:3011 +#: library/stdtypes.rst:3201 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 " @@ -5681,7 +5931,7 @@ msgstr "" "προαιρετικά ορίσματα *start* και *end* ερμηνεύονται ως συμβολισμό " "τμηματοποίησης. Επιστρέφει ``-1`` εάν το *sub* δεν βρεθεί." -#: library/stdtypes.rst:3021 +#: library/stdtypes.rst:3211 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 :" @@ -5691,7 +5941,7 @@ msgstr "" "χρειάζεται να γνωρίζετε τη θέση του *sub*. Για να ελέγξετε εάν το *sub* " "είναι υποσυμβολοσειρά ή όχι, χρησιμοποιήστε τον τελεστή :keyword:`in`::" -#: library/stdtypes.rst:3025 +#: library/stdtypes.rst:3215 msgid "" ">>> b'Py' in b'Python'\n" "True" @@ -5699,7 +5949,7 @@ msgstr "" ">>> b'Py' in b'Python'\n" "True" -#: library/stdtypes.rst:3035 +#: library/stdtypes.rst:3225 msgid "" "Like :meth:`~bytes.find`, but raise :exc:`ValueError` when the subsequence " "is not found." @@ -5707,7 +5957,7 @@ msgstr "" "Όπως η :meth:`~bytes.find`, αλλά κάνει raise μια :exc:`ValueError` όταν δεν " "βρεθεί η δευτερεύουσα ακολουθία." -#: library/stdtypes.rst:3048 +#: library/stdtypes.rst:3238 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 " @@ -5723,7 +5973,7 @@ msgstr "" "`str`. Το διαχωριστικό μεταξύ των στοιχειών είναι τα περιεχόμενα των byte ή " "του αντικειμένου bytearray που παρέχει αυτή τη μέθοδο." -#: library/stdtypes.rst:3059 +#: library/stdtypes.rst:3249 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 " @@ -5736,7 +5986,7 @@ msgstr "" "*to* πρέπει να είναι και τα δύο :term:`bytes-like objects ` και να έχουν το ίδιο μήκος." -#: library/stdtypes.rst:3070 +#: library/stdtypes.rst:3260 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 " @@ -5750,13 +6000,13 @@ msgstr "" "διαχωριστικό, επιστρέφει μια 3-πλειάδα που περιέχει ένα αντίγραφο της " "αρχικής ακολουθίας, ακολουθούμενη από δύο κενά byte ή αντικείμενα bytearray." -#: library/stdtypes.rst:3134 +#: library/stdtypes.rst:3324 msgid "The separator to search for may be any :term:`bytes-like object`." msgstr "" "Το διαχωριστικό για αναζήτηση μπορεί να είναι οποιοδήποτε :term:`bytes-like " "object`." -#: library/stdtypes.rst:3083 +#: library/stdtypes.rst:3273 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 " @@ -5767,7 +6017,7 @@ msgstr "" "προαιρετικό όρισμα *count*, αντικαθίστανται μόνο οι πρώτες εμφανίσεις " "*count*." -#: library/stdtypes.rst:3087 +#: library/stdtypes.rst:3277 msgid "" "The subsequence to search for and its replacement may be any :term:`bytes-" "like object`." @@ -5775,7 +6025,7 @@ msgstr "" "Η ακολουθία για αναζήτηση και αντικατάσταση της μπορεί να είναι οποιοδήποτε :" "term:`bytes-like object`." -#: library/stdtypes.rst:3099 +#: library/stdtypes.rst:3289 msgid "" "Return the highest index in the sequence where the subsequence *sub* is " "found, such that *sub* is contained within ``s[start:end]``. Optional " @@ -5787,7 +6037,7 @@ msgstr "" "προαιρετικά ορίσματα *start* και *end* ερμηνεύονται με συμβολισμό " "τμηματοποίησης. Επιστρέφει ``-1`` σε περίπτωση αποτυχίας." -#: library/stdtypes.rst:3114 +#: library/stdtypes.rst:3304 msgid "" "Like :meth:`~bytes.rfind` but raises :exc:`ValueError` when the subsequence " "*sub* is not found." @@ -5795,7 +6045,7 @@ msgstr "" "Όπως η :meth:`~bytes.rfind` αλλά κάνει raise μια :exc:`ValueError` όταν δεν " "βρεθεί η υποακολουθία *sub*." -#: library/stdtypes.rst:3127 +#: library/stdtypes.rst:3317 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 " @@ -5810,7 +6060,7 @@ msgstr "" "κενά byte ή αντικείμενα bytearray, ακολουθούμενα από ένα αντίγραφο της " "αρχικής ακολουθίας." -#: library/stdtypes.rst:3140 +#: library/stdtypes.rst:3330 msgid "" "Return ``True`` if the binary data starts with the specified *prefix*, " "otherwise return ``False``. *prefix* can also be a tuple of prefixes to " @@ -5823,13 +6073,13 @@ msgstr "" "η δοκιμή ξεκινά από αυτή τη θέση. Με το προαιρετικό *end*, σταματάει να " "συγκρίνει σε αυτή τη θέση." -#: library/stdtypes.rst:3145 +#: library/stdtypes.rst:3335 msgid "The prefix(es) to search for may be any :term:`bytes-like object`." msgstr "" "Το(α) πρόθεμα(τα) για αναζήτηση μπορεί να είναι οποιοδήποτε :term:`bytes-" "like object`." -#: library/stdtypes.rst:3151 +#: library/stdtypes.rst:3341 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 " @@ -5841,14 +6091,14 @@ msgstr "" "τα υπόλοιπα byte έχουν αντιστοιχιστεί μέσω του δεδομένου πίνακα μετάφρασης, " "ο οποίος πρέπει να είναι ένα αντικείμενο bytes μήκους 256." -#: library/stdtypes.rst:3156 +#: library/stdtypes.rst:3346 msgid "" "You can use the :func:`bytes.maketrans` method to create a translation table." msgstr "" "Μπορείτε να χρησιμοποιήσετε τη μέθοδο :func:`bytes.maketrans` για να " "δημιουργήσετε έναν πίνακα μετάφρασης." -#: library/stdtypes.rst:3159 +#: library/stdtypes.rst:3349 msgid "" "Set the *table* argument to ``None`` for translations that only delete " "characters::" @@ -5856,7 +6106,7 @@ msgstr "" "Ορίζει το όρισμα *table* σε ``None`` για μεταφράσεις που διαγράφουν μόνο " "χαρακτήρες::" -#: library/stdtypes.rst:3162 +#: library/stdtypes.rst:3352 msgid "" ">>> b'read this short text'.translate(None, b'aeiou')\n" "b'rd ths shrt txt'" @@ -5864,11 +6114,11 @@ msgstr "" ">>> b'read this short text'.translate(None, b'aeiou')\n" "b'rd ths shrt txt'" -#: library/stdtypes.rst:3165 +#: library/stdtypes.rst:3355 msgid "*delete* is now supported as a keyword argument." msgstr "Το *delete* υποστηρίζεται πλέον ως όρισμα λέξης-κλειδιού." -#: library/stdtypes.rst:3169 +#: library/stdtypes.rst:3359 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 " @@ -5882,7 +6132,7 @@ msgstr "" "κατάλληλα ορίσματα. Σημειώστε ότι όλες οι μέθοδοι bytearray σε αυτήν την " "ενότητα *δεν* λειτουργούν στη θέση τους και όμως παράγουν νέα αντικείμενα." -#: library/stdtypes.rst:3178 +#: library/stdtypes.rst:3368 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). " @@ -5895,7 +6145,7 @@ msgstr "" "`bytes, η αρχική ακολουθία επιστρέφεται εάν το *width* είναι μικρότερο ή ίσο " "με ``len(s)``." -#: library/stdtypes.rst:3192 +#: library/stdtypes.rst:3382 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). " @@ -5908,24 +6158,22 @@ msgstr "" "αντικείμενα :class:`bytes, η αρχική ακολουθία επιστρέφεται εάν το *width* " "είναι μικρότερο ή ίσο με ``len(s)``." -#: library/stdtypes.rst:3206 +#: library/stdtypes.rst:3396 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:3213 +#: library/stdtypes.rst:3402 msgid "" ">>> b' spacious '.lstrip()\n" "b'spacious '\n" @@ -5937,7 +6185,7 @@ msgstr "" ">>> b'www.example.com'.lstrip(b'cmowz.')\n" "b'example.com'" -#: library/stdtypes.rst:3218 +#: library/stdtypes.rst:3407 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 " @@ -5948,7 +6196,7 @@ msgstr "" "που θα αφαιρέσει μια μεμονωμένη συμβολοσειρά προθέματος αντί όλο το σύνολο " "χαρακτήρων. Για παράδειγμα::" -#: library/stdtypes.rst:3223 +#: library/stdtypes.rst:3412 msgid "" ">>> b'Arthur: three!'.lstrip(b'Arthur: ')\n" "b'ee!'\n" @@ -5960,7 +6208,7 @@ msgstr "" ">>> b'Arthur: three!'.removeprefix(b'Arthur: ')\n" "b'three!'" -#: library/stdtypes.rst:3237 +#: library/stdtypes.rst:3426 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). " @@ -5973,7 +6221,7 @@ msgstr "" "είναι ένα διάστημα ASCII). Για αντικείμενα :class:`bytes`, η αρχική " "ακολουθία επιστρέφεται εάν το *width* είναι μικρότερο ή ίσο με ``len(s)``." -#: library/stdtypes.rst:3251 +#: library/stdtypes.rst:3440 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 " @@ -5990,24 +6238,22 @@ msgstr "" "διαχωρισμό από τα δεξιά, η :meth:`rsplit` συμπεριφέρεται όπως :meth:`split` " "που περιγράφεται λεπτομερώς παρακάτω." -#: library/stdtypes.rst:3262 +#: library/stdtypes.rst:3451 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* είναι μια δυαδική ακολουθία που " +"καθορίζει το σύνολο των τιμών byte που πρέπει να αφαιρεθούν. Εάν παραληφθεί " +"ή είναι ``None``, το όρισμα *chars* έχει ως προεπιλογή την αφαίρεση του " +"κενού διαστήματος ASCII. Το όρισμα *bytes* δεν είναι επίθημα, αλλά " +"αφαιρούνται όλοι οι συνδυασμοί των τιμών του::" -#: library/stdtypes.rst:3269 +#: library/stdtypes.rst:3457 msgid "" ">>> b' spacious '.rstrip()\n" "b' spacious'\n" @@ -6019,7 +6265,7 @@ msgstr "" ">>> b'mississippi'.rstrip(b'ipz')\n" "b'mississ'" -#: library/stdtypes.rst:3274 +#: library/stdtypes.rst:3462 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 " @@ -6030,7 +6276,7 @@ msgstr "" "μέθοδο που θα αφαιρέσει μια συμβολοσειρά επιθέματος και όχι όλο το σύνολο " "χαρακτήρων. Για παράδειγμα:" -#: library/stdtypes.rst:3279 +#: library/stdtypes.rst:3467 msgid "" ">>> b'Monty Python'.rstrip(b' Python')\n" "b'M'\n" @@ -6042,7 +6288,7 @@ msgstr "" ">>> b'Monty Python'.removesuffix(b' Python')\n" "b'Monty'" -#: library/stdtypes.rst:3293 +#: library/stdtypes.rst:3481 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 " @@ -6057,7 +6303,7 @@ msgstr "" "ή είναι ``-1``, τότε δεν υπάρχει όριο στον αριθμό των διαχωρισμών (όλες οι " "πιθανές διασπάσεις γίνονται)." -#: library/stdtypes.rst:3299 +#: library/stdtypes.rst:3487 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',')`` " @@ -6075,7 +6321,7 @@ msgstr "" "το ``[bytearray(b'')]`` ανάλογα με τον τύπο του αντικειμένου που χωρίζεται. " "Το όρισμα *sep* μπορεί να είναι οποιοδήποτε :term:`bytes-like object`." -#: library/stdtypes.rst:3309 +#: library/stdtypes.rst:3497 msgid "" ">>> b'1,2,3'.split(b',')\n" "[b'1', b'2', b'3']\n" @@ -6095,7 +6341,7 @@ msgstr "" ">>> b'1<>2<>3<4'.split(b'<>')\n" "[b'1', b'2', b'3<4']" -#: library/stdtypes.rst:3318 +#: library/stdtypes.rst:3506 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 " @@ -6112,7 +6358,7 @@ msgstr "" "ακολουθίας ή μιας ακολουθίας που αποτελείται αποκλειστικά από κενό διάστημα " "ASCII χωρίς καθορισμένο διαχωριστικό επιστρέφει το ``[]``." -#: library/stdtypes.rst:3328 +#: library/stdtypes.rst:3516 msgid "" ">>> b'1 2 3'.split()\n" "[b'1', b'2', b'3']\n" @@ -6128,24 +6374,22 @@ msgstr "" ">>> b' 1 2 3 '.split()\n" "[b'1', b'2', b'3']" -#: library/stdtypes.rst:3339 +#: library/stdtypes.rst:3527 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:3347 +#: library/stdtypes.rst:3534 msgid "" ">>> b' spacious '.strip()\n" "b'spacious'\n" @@ -6157,7 +6401,7 @@ msgstr "" ">>> b'www.example.com'.strip(b'cmowz.')\n" "b'example'" -#: library/stdtypes.rst:3352 +#: library/stdtypes.rst:3539 msgid "" "The binary sequence of byte values to remove may be any :term:`bytes-like " "object`." @@ -6165,7 +6409,7 @@ msgstr "" "Η δυαδική ακολουθία τιμών byte προς αφαίρεση μπορεί να είναι οποιοδήποτε :" "term:`bytes-like object`." -#: library/stdtypes.rst:3361 +#: library/stdtypes.rst:3548 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 " @@ -6178,7 +6422,7 @@ msgstr "" "την ενότητα *δεν* λειτουργούν στη θέση τους και αντ' αυτού παράγουν νέα " "αντικείμενα." -#: library/stdtypes.rst:3369 +#: library/stdtypes.rst:3556 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 " @@ -6188,7 +6432,7 @@ msgstr "" "χαρακτήρας ASCII, και το πρώτο byte γραμμένο με κεφαλαία και το υπόλοιπο με " "πεζά. Οι τιμές των byte που δεν είναι ASCII μεταβιβάζονται αμετάβλητες." -#: library/stdtypes.rst:3382 +#: library/stdtypes.rst:3569 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 " @@ -6217,7 +6461,7 @@ msgstr "" "αντιγράφεται αμετάβλητη και η τρέχουσα στήλη προσαυξάνεται κατά ένα, " "ανεξάρτητα από το πώς αναπαρίσταται η τιμή byte όταν εκτυπώνεται::" -#: library/stdtypes.rst:3396 +#: library/stdtypes.rst:3583 msgid "" ">>> b'01\\t012\\t0123\\t01234'.expandtabs()\n" "b'01 012 0123 01234'\n" @@ -6229,7 +6473,7 @@ msgstr "" ">>> b'01\\t012\\t0123\\t01234'.expandtabs(4)\n" "b'01 012 0123 01234'" -#: library/stdtypes.rst:3410 +#: library/stdtypes.rst:3597 msgid "" "Return ``True`` if all bytes in the sequence are alphabetical ASCII " "characters or ASCII decimal digits and the sequence is not empty, ``False`` " @@ -6244,7 +6488,7 @@ msgstr "" "``b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'``. Τα δεκαδικά " "ψηφία ASCII είναι αυτές οι τιμές byte στην ακολουθία ``b'0123456789'``." -#: library/stdtypes.rst:3418 +#: library/stdtypes.rst:3605 msgid "" ">>> b'ABCabc1'.isalnum()\n" "True\n" @@ -6256,7 +6500,7 @@ msgstr "" ">>> b'ABC abc1'.isalnum()\n" "False" -#: library/stdtypes.rst:3427 +#: library/stdtypes.rst:3614 msgid "" "Return ``True`` if all bytes in the sequence are alphabetic ASCII characters " "and the sequence is not empty, ``False`` otherwise. Alphabetic ASCII " @@ -6268,7 +6512,7 @@ msgstr "" "αλφαβητικοί χαρακτήρες ASCII είναι εκείνες οι τιμές bytes στην ακολουθία " "``b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'``." -#: library/stdtypes.rst:3434 +#: library/stdtypes.rst:3621 msgid "" ">>> b'ABCabc'.isalpha()\n" "True\n" @@ -6280,7 +6524,7 @@ msgstr "" ">>> b'ABCabc1'.isalpha()\n" "False" -#: library/stdtypes.rst:3443 +#: library/stdtypes.rst:3630 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." @@ -6289,7 +6533,7 @@ msgstr "" "είναι ASCII, ``False`` διαφορετικά. Τα bytes ASCII βρίσκονται στο εύρος " "0-0x7F." -#: library/stdtypes.rst:3453 +#: library/stdtypes.rst:3640 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 " @@ -6299,7 +6543,7 @@ msgstr "" "ASCII και η ακολουθία δεν είναι κενή, ``False`` διαφορετικά. Τα δεκαδικά " "ψηφία ASCII είναι αυτές οι τιμές byte στην ακολουθία ``b'0123456789'``." -#: library/stdtypes.rst:3459 +#: library/stdtypes.rst:3646 msgid "" ">>> b'1234'.isdigit()\n" "True\n" @@ -6311,7 +6555,7 @@ msgstr "" ">>> b'1.23'.isdigit()\n" "False" -#: library/stdtypes.rst:3468 +#: library/stdtypes.rst:3655 msgid "" "Return ``True`` if there is at least one lowercase ASCII character in the " "sequence and no uppercase ASCII characters, ``False`` otherwise." @@ -6319,7 +6563,7 @@ msgstr "" "Επιστρέφει ``True`` εάν υπάρχει τουλάχιστον ένας πεζός χαρακτήρας ASCII στην " "ακολουθία και κανένας κεφαλαίος χαρακτήρας ASCII, ``False`` διαφορετικά." -#: library/stdtypes.rst:3473 +#: library/stdtypes.rst:3660 msgid "" ">>> b'hello world'.islower()\n" "True\n" @@ -6331,8 +6575,8 @@ msgstr "" ">>> b'Hello world'.islower()\n" "False" -#: library/stdtypes.rst:3520 library/stdtypes.rst:3586 -#: library/stdtypes.rst:3655 +#: library/stdtypes.rst:3707 library/stdtypes.rst:3773 +#: library/stdtypes.rst:3842 msgid "" "Lowercase ASCII characters are those byte values in the sequence " "``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters are those byte " @@ -6342,7 +6586,7 @@ msgstr "" "``b'abcdefghijklmnopqrstuvwxyz'``. Οι κεφαλαίοι χαρακτήρες ASCII είναι αυτές " "οι τιμές byte στην ακολουθία ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``." -#: library/stdtypes.rst:3486 +#: library/stdtypes.rst:3673 msgid "" "Return ``True`` if all bytes in the sequence are ASCII whitespace and the " "sequence is not empty, ``False`` otherwise. ASCII whitespace characters are " @@ -6355,7 +6599,7 @@ msgstr "" "\\t\\n\\r\\x0b\\f'`` (κενό, tab, νέα γραμμή, επιστροφή μεταφοράς, κάθετο " "tab, μορφή ροής)." -#: library/stdtypes.rst:3495 +#: library/stdtypes.rst:3682 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 " @@ -6366,7 +6610,7 @@ msgstr "" "``False`` διαφορετικά. Δείτε :meth:`bytes.title` για περισσότερες " "λεπτομέρειες σχετικά με τον ορισμό του \"titlecase\"." -#: library/stdtypes.rst:3501 +#: library/stdtypes.rst:3688 msgid "" ">>> b'Hello World'.istitle()\n" "True\n" @@ -6378,7 +6622,7 @@ msgstr "" ">>> b'Hello world'.istitle()\n" "False" -#: library/stdtypes.rst:3510 +#: library/stdtypes.rst:3697 msgid "" "Return ``True`` if there is at least one uppercase alphabetic ASCII " "character in the sequence and no lowercase ASCII characters, ``False`` " @@ -6388,7 +6632,7 @@ msgstr "" "χαρακτήρας ASCII στην ακολουθία και κανένας πεζός χαρακτήρας ASCII, " "διαφορετικά ``False``." -#: library/stdtypes.rst:3515 +#: library/stdtypes.rst:3702 msgid "" ">>> b'HELLO WORLD'.isupper()\n" "True\n" @@ -6400,7 +6644,7 @@ msgstr "" ">>> b'Hello world'.isupper()\n" "False" -#: library/stdtypes.rst:3528 +#: library/stdtypes.rst:3715 msgid "" "Return a copy of the sequence with all the uppercase ASCII characters " "converted to their corresponding lowercase counterpart." @@ -6408,7 +6652,7 @@ msgstr "" "Επιστρέφει ένα αντίγραφο της ακολουθίας με όλους τους κεφαλαίους χαρακτήρες " "ASCII να έχουν μετατραπεί στα ισοδύναμα πεζά." -#: library/stdtypes.rst:3533 +#: library/stdtypes.rst:3720 msgid "" ">>> b'Hello World'.lower()\n" "b'hello world'" @@ -6416,7 +6660,7 @@ msgstr "" ">>> b'Hello World'.lower()\n" "b'hello world'" -#: library/stdtypes.rst:3553 +#: library/stdtypes.rst:3740 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 " @@ -6429,7 +6673,7 @@ msgstr "" "περιλαμβάνονται στη λίστα που προκύπτει εκτός εάν δοθεί *keepends* και είναι " "αληθής." -#: library/stdtypes.rst:3560 +#: library/stdtypes.rst:3747 msgid "" ">>> b'ab c\\n\\nde fg\\rkl\\r\\n'.splitlines()\n" "[b'ab c', b'', b'de fg', b'kl']\n" @@ -6441,7 +6685,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:3565 +#: library/stdtypes.rst:3752 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 " @@ -6452,7 +6696,7 @@ msgstr "" "συμβολοσειρά και μια αλλαγή γραμμής τερματικού δεν οδηγεί σε μια επιπλέον " "γραμμή::" -#: library/stdtypes.rst:3569 +#: library/stdtypes.rst:3756 msgid "" ">>> b\"\".split(b'\\n'), b\"Two lines\\n\".split(b'\\n')\n" "([b''], [b'Two lines', b''])\n" @@ -6464,7 +6708,7 @@ msgstr "" ">>> b\"\".splitlines(), b\"One line\\n\".splitlines()\n" "([], [b'One line'])" -#: library/stdtypes.rst:3578 +#: library/stdtypes.rst:3765 msgid "" "Return a copy of the sequence with all the lowercase ASCII characters " "converted to their corresponding uppercase counterpart and vice-versa." @@ -6472,7 +6716,7 @@ msgstr "" "Επιστρέφει ένα αντίγραφο της ακολουθίας με όλους τους πεζούς χαρακτήρες " "ASCII να έχουν μετατραπεί στο αντίστοιχο ισοδύναμο κεφαλαίο και αντίστροφα." -#: library/stdtypes.rst:3583 +#: library/stdtypes.rst:3770 msgid "" ">>> b'Hello World'.swapcase()\n" "b'hELLO wORLD'" @@ -6480,7 +6724,7 @@ msgstr "" ">>> b'Hello World'.swapcase()\n" "b'hELLO wORLD'" -#: library/stdtypes.rst:3590 +#: library/stdtypes.rst:3777 msgid "" "Unlike :func:`str.swapcase`, it is always the case that ``bin.swapcase()." "swapcase() == bin`` for the binary versions. Case conversions are " @@ -6492,7 +6736,7 @@ msgstr "" "συμμετρικές στο ASCII, παρόλο που αυτό δεν ισχύει γενικά για αυθαίρετα " "σημεία Unicode κώδικα." -#: library/stdtypes.rst:3604 +#: library/stdtypes.rst:3791 msgid "" "Return a titlecased version of the binary sequence where words start with an " "uppercase ASCII character and the remaining characters are lowercase. " @@ -6503,7 +6747,7 @@ msgstr "" "χαρακτήρα ASCII και οι υπόλοιποι χαρακτήρες είναι πεζοί. Οι τιμές byte χωρίς " "κεφαλαία γράμματα παραμένουν χωρίς τροποποίηση." -#: library/stdtypes.rst:3610 +#: library/stdtypes.rst:3797 msgid "" ">>> b'Hello world'.title()\n" "b'Hello World'" @@ -6511,7 +6755,7 @@ msgstr "" ">>> b'Hello world'.title()\n" "b'Hello World'" -#: library/stdtypes.rst:3613 +#: library/stdtypes.rst:3800 msgid "" "Lowercase ASCII characters are those byte values in the sequence " "``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters are those byte " @@ -6523,7 +6767,7 @@ msgstr "" "εκείνες οι τιμές byte στην ακολουθία ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. Όλες " "οι άλλες τιμές byte είναι χωρίς κεφαλαία." -#: library/stdtypes.rst:3623 +#: library/stdtypes.rst:3810 msgid "" ">>> b\"they're bill's friends from the UK\".title()\n" "b\"They'Re Bill'S Friends From The Uk\"" @@ -6531,14 +6775,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:3626 +#: library/stdtypes.rst:3813 msgid "" "A workaround for apostrophes can be constructed using regular expressions::" msgstr "" "Μια λύση για αποστρόφους μπορεί να δημιουργηθεί χρησιμοποιώντας κανονικές " "εκφράσεις::" -#: library/stdtypes.rst:3628 +#: library/stdtypes.rst:3815 msgid "" ">>> import re\n" ">>> def titlecase(s):\n" @@ -6560,7 +6804,7 @@ msgstr "" ">>> titlecase(b\"they're bill's friends.\")\n" "b\"They're Bill's Friends.\"" -#: library/stdtypes.rst:3647 +#: library/stdtypes.rst:3834 msgid "" "Return a copy of the sequence with all the lowercase ASCII characters " "converted to their corresponding uppercase counterpart." @@ -6568,7 +6812,7 @@ msgstr "" "Επιστρέφει ένα αντίγραφο της ακολουθίας με όλους τους πεζούς χαρακτήρες " "ASCII να έχουν μετατραπεί στο αντίστοιχο ισοδύναμο κεφαλαίο." -#: library/stdtypes.rst:3652 +#: library/stdtypes.rst:3839 msgid "" ">>> b'Hello World'.upper()\n" "b'HELLO WORLD'" @@ -6576,7 +6820,7 @@ msgstr "" ">>> b'Hello World'.upper()\n" "b'HELLO WORLD'" -#: library/stdtypes.rst:3668 +#: library/stdtypes.rst:3855 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 " @@ -6591,7 +6835,7 @@ msgstr "" "αντικείμενα :class:`bytes`, η αρχική ακολουθία επιστρέφεται εάν το *width* " "είναι μικρότερο ή ίσο με ``len(seq)``." -#: library/stdtypes.rst:3676 +#: library/stdtypes.rst:3863 msgid "" ">>> b\"42\".zfill(5)\n" "b'00042'\n" @@ -6603,11 +6847,11 @@ msgstr "" ">>> b\"-42\".zfill(5)\n" "b'-0042'" -#: library/stdtypes.rst:3690 +#: library/stdtypes.rst:3877 msgid "``printf``-style Bytes Formatting" msgstr "Μορφοποίηση Bytes τύπου ``printf``" -#: library/stdtypes.rst:3707 +#: library/stdtypes.rst:3894 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 " @@ -6619,7 +6863,7 @@ msgstr "" "εμφάνισης των πλειάδων και των λεξικών σωστά). Εάν η τιμή που εκτυπώνεται " "μπορεί να είναι πλειάδα ή λεξικό, κάντε το wrap σε μια πλειάδα." -#: library/stdtypes.rst:3712 +#: library/stdtypes.rst:3899 msgid "" "Bytes objects (``bytes``/``bytearray``) have one unique built-in operation: " "the ``%`` operator (modulo). This is also known as the bytes *formatting* or " @@ -6636,7 +6880,7 @@ msgstr "" "στοιχεία *values*. Το αποτέλεσμα είναι παρόμοιο με τη χρήση του :c:func:" "`sprintf` στη γλώσσας C." -#: library/stdtypes.rst:3719 +#: library/stdtypes.rst:3906 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 " @@ -6649,7 +6893,7 @@ msgstr "" "αντικείμενο μορφής bytes ή μεμονωμένο mapping αντικείμενο (για παράδειγμα, " "ένα λεξικό)." -#: library/stdtypes.rst:3753 +#: library/stdtypes.rst:3940 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 " @@ -6662,15 +6906,19 @@ msgstr "" "τον χαρακτήρα ``'%'``. Το κλειδί αντιστοίχισης επιλέγει την τιμή που θα " "μορφοποιηθεί από την αντιστοίχιση. Για παράδειγμα:" -#: library/stdtypes.rst:3827 +#: library/stdtypes.rst:3992 +msgid "\\(8)" +msgstr "\\(8)" + +#: library/stdtypes.rst:4014 msgid "Single byte (accepts integer or single byte objects)." msgstr "Μονό byte (δέχεται ακέραια ή μεμονωμένα byte αντικείμενα)." -#: library/stdtypes.rst:3830 +#: library/stdtypes.rst:4017 msgid "``'b'``" msgstr "``'b'``" -#: library/stdtypes.rst:3830 +#: library/stdtypes.rst:4017 msgid "" "Bytes (any object that follows the :ref:`buffer protocol ` or " "has :meth:`~object.__bytes__`)." @@ -6678,7 +6926,7 @@ msgstr "" "Bytes (κάθε αντικείμενο που ακολουθεί το :ref:`buffer protocol " "` ή έχει :meth:`~object.__bytes__`)." -#: library/stdtypes.rst:3834 +#: library/stdtypes.rst:4021 msgid "" "``'s'`` is an alias for ``'b'`` and should only be used for Python2/3 code " "bases." @@ -6686,7 +6934,7 @@ msgstr "" "Το ``'s'`` είναι ένα ψευδώνυμο για το ``'b'`` και θα πρέπει να " "χρησιμοποιείται μόνο για κώδικα βάσει Python2/3." -#: library/stdtypes.rst:3837 +#: library/stdtypes.rst:4024 msgid "" "Bytes (converts any Python object using ``repr(obj).encode('ascii', " "'backslashreplace')``)." @@ -6694,7 +6942,7 @@ msgstr "" "Bytes (μετατρέπει οποιοδήποτε αντικείμενο Python χρησιμοποιώντας ``repr(obj)." "encode('ascii', 'backslashreplace')``)." -#: library/stdtypes.rst:3840 +#: library/stdtypes.rst:4027 msgid "" "``'r'`` is an alias for ``'a'`` and should only be used for Python2/3 code " "bases." @@ -6702,31 +6950,31 @@ msgstr "" "Το ``'r'`` είναι ένα ψευδώνυμο για ``'a'`` και θα πρέπει να χρησιμοποιείται " "μόνο για βάσεις κώδικα Python2/3." -#: library/stdtypes.rst:3840 +#: library/stdtypes.rst:4027 msgid "\\(7)" msgstr "\\(7)" -#: library/stdtypes.rst:3875 +#: library/stdtypes.rst:4062 msgid "``b'%s'`` is deprecated, but will not be removed during the 3.x series." msgstr "" "Το ``b'%s'`` έχει καταργηθεί, αλλά δεν θα αφαιρεθεί κατά τη διάρκεια της " "σειράς 3.x." -#: library/stdtypes.rst:3878 +#: library/stdtypes.rst:4065 msgid "``b'%r'`` is deprecated, but will not be removed during the 3.x series." msgstr "" "Το ``b'%r'`` έχει καταργηθεί, αλλά δεν θα αφαιρεθεί κατά τη διάρκεια της " "σειράς 3.x." -#: library/stdtypes.rst:3890 +#: library/stdtypes.rst:4077 msgid ":pep:`461` - Adding % formatting to bytes and bytearray" msgstr ":pep:`461` - Προσθήκη % για μορφοποίηση σε bytes και bytearray" -#: library/stdtypes.rst:3897 +#: library/stdtypes.rst:4084 msgid "Memory Views" msgstr "Όψεις Μνήμης" -#: library/stdtypes.rst:3899 +#: library/stdtypes.rst:4086 msgid "" ":class:`memoryview` objects allow Python code to access the internal data of " "an object that supports the :ref:`buffer protocol ` without " @@ -6736,7 +6984,7 @@ msgstr "" "πρόσβαση στα εσωτερικά δεδομένα ενός αντικειμένου που υποστηρίζει το " "πρωτόκολλο :ref:`buffer protocol ` χωρίς αντιγραφή." -#: library/stdtypes.rst:3905 +#: library/stdtypes.rst:4092 msgid "" "Create a :class:`memoryview` that references *object*. *object* must " "support the buffer protocol. Built-in objects that support the buffer " @@ -6747,7 +6995,7 @@ msgstr "" "υποστηρίζουν το πρωτόκολλο buffer περιλαμβάνουν :class:`bytes` και :class:" "`bytearray`." -#: library/stdtypes.rst:3909 +#: library/stdtypes.rst:4096 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 " @@ -6760,7 +7008,7 @@ msgstr "" "ένα μεμονωμένο byte, αλλά άλλοι τύποι όπως :class:`array.array` μπορεί να " "έχουν μεγαλύτερα στοιχεία." -#: library/stdtypes.rst:3914 +#: library/stdtypes.rst:4101 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 " @@ -6770,7 +7018,7 @@ msgstr "" "οποίο είναι η ένθετη αναπαράσταση κατά την προβολή της λίστας. Εάν ``view." "ndim = 1``, αυτό ισούται με τον αριθμό των στοιχείων για την προβολή." -#: library/stdtypes.rst:3918 +#: library/stdtypes.rst:4105 msgid "" "If ``view.ndim == 0``, ``len(view)`` now raises :exc:`TypeError` instead of " "returning 1." @@ -6778,7 +7026,7 @@ msgstr "" "Εάν ``view.ndim == 0``, το ``len(view)`` τώρα κάνει raise μια :exc:" "`TypeError` αντί να επιστρέψει 1." -#: library/stdtypes.rst:3921 +#: library/stdtypes.rst:4108 msgid "" "The :class:`~memoryview.itemsize` attribute will give you the number of " "bytes in a single element." @@ -6786,7 +7034,7 @@ msgstr "" "Το χαρακτηριστικό :class:`~memoryview.itemsize` θα σας δώσει τον αριθμό των " "byte σε ένα μόνο στοιχείο." -#: library/stdtypes.rst:3924 +#: library/stdtypes.rst:4111 msgid "" "A :class:`memoryview` supports slicing and indexing to expose its data. One-" "dimensional slicing will result in a subview::" @@ -6795,7 +7043,7 @@ msgstr "" "μέσω ευρετηρίου στα δεδομένα του. Μια μονοδιάστατη τμηματοποίηση θα έχει ως " "αποτέλεσμα μια δευτερεύουσα προβολή::" -#: library/stdtypes.rst:3927 +#: library/stdtypes.rst:4114 msgid "" ">>> v = memoryview(b'abcefg')\n" ">>> v[1]\n" @@ -6817,7 +7065,7 @@ msgstr "" ">>> bytes(v[1:4])\n" "b'bce'" -#: library/stdtypes.rst:3937 +#: library/stdtypes.rst:4124 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 " @@ -6837,11 +7085,11 @@ msgstr "" "διαστάσεων. Τα μηδενικών διαστάσεων memoryviews μπορούν να γίνουν indexed " "με την κενή πλειάδα (tuple)." -#: library/stdtypes.rst:3946 +#: library/stdtypes.rst:4133 msgid "Here is an example with a non-byte format::" msgstr "Ακολουθεί ένα παράδειγμα με μη-byte μορφή::" -#: library/stdtypes.rst:3948 +#: library/stdtypes.rst:4135 msgid "" ">>> import array\n" ">>> a = array.array('l', [-11111111, 22222222, -33333333, 44444444])\n" @@ -6863,7 +7111,7 @@ msgstr "" ">>> m[::2].tolist()\n" "[-11111111, -33333333]" -#: library/stdtypes.rst:3958 +#: library/stdtypes.rst:4145 msgid "" "If the underlying object is writable, the memoryview supports one-" "dimensional slice assignment. Resizing is not allowed::" @@ -6871,7 +7119,7 @@ msgstr "" "Εάν το βασικό αντικείμενο είναι εγγράψιμο, το memoryview υποστηρίζει " "μονοδιάστατη εκχώρηση τμηματοποίησης. Δεν επιτρέπεται η αλλαγή μεγέθους::" -#: library/stdtypes.rst:3961 +#: library/stdtypes.rst:4148 msgid "" ">>> data = bytearray(b'abcefg')\n" ">>> v = memoryview(data)\n" @@ -6911,7 +7159,7 @@ msgstr "" ">>> data\n" "bytearray(b'z1spam')" -#: library/stdtypes.rst:3979 +#: library/stdtypes.rst:4166 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) " @@ -6921,7 +7169,7 @@ msgstr "" "με μορφές 'B', 'b' ή 'c' μπορούν επίσης να κατακερματιστούν. Ο " "κατακερματισμός ορίζεται ως ``hash(m) == hash(m.tobytes())``::" -#: library/stdtypes.rst:3983 +#: library/stdtypes.rst:4170 msgid "" ">>> v = memoryview(b'abcefg')\n" ">>> hash(v) == hash(b'abcefg')\n" @@ -6939,7 +7187,7 @@ msgstr "" ">>> hash(v[::-2]) == hash(b'abcefg'[::-2])\n" "True" -#: library/stdtypes.rst:3991 +#: library/stdtypes.rst:4178 msgid "" "One-dimensional memoryviews can now be sliced. One-dimensional memoryviews " "with formats 'B', 'b' or 'c' are now :term:`hashable`." @@ -6948,24 +7196,24 @@ msgstr "" "μονοδιάστατα memoryviews με μορφές 'B', 'b' ή 'c' είναι πλέον :term:" "`hashable`." -#: library/stdtypes.rst:3995 +#: library/stdtypes.rst:4182 msgid "" "memoryview is now registered automatically with :class:`collections.abc." "Sequence`" msgstr "" "το memoryview εγγράφεται πλέον αυτόματα με :class:`collections.abc.Sequence`" -#: library/stdtypes.rst:3999 +#: library/stdtypes.rst:4186 msgid "memoryviews can now be indexed with tuple of integers." msgstr "" "τα memoryviews μπορούν τώρα να γίνουν ευρετηριοποίηση με πλειάδα (tuple) " "ακεραίων." -#: library/stdtypes.rst:4002 +#: library/stdtypes.rst:4189 msgid ":class:`memoryview` has several methods:" msgstr "το :class:`memoryview` έχει διάφορες μεθόδους:" -#: library/stdtypes.rst:4006 +#: library/stdtypes.rst:4193 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' " @@ -6976,7 +7224,7 @@ msgstr "" "αντίστοιχοι κωδικοί μορφής των τελεστών ερμηνεύονται χρησιμοποιώντας τη " "σύνταξη :mod:`struct`." -#: library/stdtypes.rst:4010 +#: library/stdtypes.rst:4197 msgid "" "For the subset of :mod:`struct` format strings currently supported by :meth:" "`tolist`, ``v`` and ``w`` are equal if ``v.tolist() == w.tolist()``::" @@ -6985,7 +7233,7 @@ msgstr "" "υποστηρίζονται αυτή τη στιγμή από το :meth:`tolist`, ``v`` και ``w`` είναι " "ίσες εάν ``v.tolist() == w.tolist()``::" -#: library/stdtypes.rst:4013 +#: library/stdtypes.rst:4200 msgid "" ">>> import array\n" ">>> a = array.array('I', [1, 2, 3, 4, 5])\n" @@ -7019,7 +7267,7 @@ msgstr "" ">>> z.tolist() == c.tolist()\n" "True" -#: library/stdtypes.rst:4029 +#: library/stdtypes.rst:4216 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 " @@ -7030,7 +7278,7 @@ msgstr "" "συμβολοσειρές μορφοποίησης και τα περιεχόμενα της προσωρινής μνήμης είναι " "πανομοιότυπα)::" -#: library/stdtypes.rst:4033 +#: library/stdtypes.rst:4220 msgid "" ">>> from ctypes import BigEndianStructure, c_long\n" ">>> class BEPoint(BigEndianStructure):\n" @@ -7056,7 +7304,7 @@ msgstr "" ">>> a == b\n" "False" -#: library/stdtypes.rst:4045 +#: library/stdtypes.rst:4232 msgid "" "Note that, as with floating-point numbers, ``v is w`` does *not* imply ``v " "== w`` for memoryview objects." @@ -7064,7 +7312,7 @@ msgstr "" "Λάβετε υπόψη ότι, όπως και με τους αριθμούς κινητής υποδιαστολής, ``v is w`` " "*δεν* σημαίνει ``v == w`` για αντικείμενα memoryview." -#: library/stdtypes.rst:4048 +#: library/stdtypes.rst:4235 msgid "" "Previous versions compared the raw memory disregarding the item format and " "the logical array structure." @@ -7072,7 +7320,7 @@ msgstr "" "Οι προηγούμενες εκδόσεις συνέκριναν την ακατέργαστη μνήμη αγνοώντας τη μορφή " "του στοιχείου και τη δομή του λογικού πίνακα." -#: library/stdtypes.rst:4054 +#: library/stdtypes.rst:4241 msgid "" "Return the data in the buffer as a bytestring. This is equivalent to " "calling the :class:`bytes` constructor on the memoryview. ::" @@ -7080,7 +7328,7 @@ msgstr "" "Επιστρέφει τα δεδομένα στο buffer ως ένα bytestring. Αυτό ισοδυναμεί με την " "κλήση του κατασκευαστή :class:`bytes` στο memoryview. ::" -#: library/stdtypes.rst:4057 +#: library/stdtypes.rst:4244 msgid "" ">>> m = memoryview(b\"abc\")\n" ">>> m.tobytes()\n" @@ -7094,7 +7342,7 @@ msgstr "" ">>> bytes(m)\n" "b'abc'" -#: library/stdtypes.rst:4063 +#: library/stdtypes.rst:4250 msgid "" "For non-contiguous arrays the result is equal to the flattened list " "representation with all elements converted to bytes. :meth:`tobytes` " @@ -7106,7 +7354,7 @@ msgstr "" "`tobytes` υποστηρίζει όλες τις συμβολοσειρές μορφής, συμπεριλαμβανομένων " "εκείνων που δεν είναι στη σύνταξη του module :mod:`struct`." -#: library/stdtypes.rst:4068 +#: library/stdtypes.rst:4255 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' " @@ -7121,7 +7369,7 @@ msgstr "" "συνεχόμενες προβολές, τα δεδομένα μετατρέπονται πρώτα σε C. Το *order=None* " "είναι το ίδιο με το *order='C'*." -#: library/stdtypes.rst:4077 +#: library/stdtypes.rst:4265 msgid "" "Return a string object containing two hexadecimal digits for each byte in " "the buffer. ::" @@ -7129,7 +7377,7 @@ msgstr "" "Επιστρέφει ένα αντικείμενο συμβολοσειράς που περιέχει δύο δεκαεξαδικά ψηφία " "για κάθε byte στο buffer. ::" -#: library/stdtypes.rst:4080 +#: library/stdtypes.rst:4268 msgid "" ">>> m = memoryview(b\"abc\")\n" ">>> m.hex()\n" @@ -7139,7 +7387,7 @@ msgstr "" ">>> m.hex()\n" "'616263'" -#: library/stdtypes.rst:4086 +#: library/stdtypes.rst:4274 msgid "" "Similar to :meth:`bytes.hex`, :meth:`memoryview.hex` now supports optional " "*sep* and *bytes_per_sep* parameters to insert separators between bytes in " @@ -7149,11 +7397,11 @@ msgstr "" "προαιρετικές παραμέτρους *sep* και *bytes_per_sep* για να εισάγετε " "διαχωριστικά μεταξύ των byte στην εξαγωγή δεκαεξαδικού." -#: library/stdtypes.rst:4093 +#: library/stdtypes.rst:4281 msgid "Return the data in the buffer as a list of elements. ::" msgstr "Επιστρέψτε τα δεδομένα στο buffer ως λίστα στοιχείων. ::" -#: library/stdtypes.rst:4095 +#: library/stdtypes.rst:4283 msgid "" ">>> memoryview(b'abc').tolist()\n" "[97, 98, 99]\n" @@ -7171,7 +7419,7 @@ msgstr "" ">>> m.tolist()\n" "[1.1, 2.2, 3.3]" -#: library/stdtypes.rst:4103 +#: library/stdtypes.rst:4291 msgid "" ":meth:`tolist` now supports all single character native formats in :mod:" "`struct` module syntax as well as multi-dimensional representations." @@ -7180,7 +7428,7 @@ msgstr "" "χαρακτήρων στη σύνταξη του :mod:`struct`, καθώς και πολυδιάστατες " "αναπαραστάσεις." -#: library/stdtypes.rst:4110 +#: library/stdtypes.rst:4298 msgid "" "Return a readonly version of the memoryview object. The original memoryview " "object is unchanged. ::" @@ -7188,7 +7436,7 @@ msgstr "" "Επιστρέφει μια έκδοση μόνο για ανάγνωση του αντικειμένου memoryview. Το " "αρχικό αντικείμενο memoryview είναι αμετάβλητο. ::" -#: library/stdtypes.rst:4113 +#: library/stdtypes.rst:4301 msgid "" ">>> m = memoryview(bytearray(b'abc'))\n" ">>> mm = m.toreadonly()\n" @@ -7214,7 +7462,7 @@ msgstr "" ">>> mm.tolist()\n" "[43, 98, 99]" -#: library/stdtypes.rst:4129 +#: library/stdtypes.rst:4317 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 :" @@ -7229,7 +7477,7 @@ msgstr "" "είναι βολική για την κατάργηση αυτών των περιορισμών (και απελευθερώνει " "οποιουσδήποτε αιωρούμενους πόρους) το συντομότερο δυνατό." -#: library/stdtypes.rst:4135 +#: library/stdtypes.rst:4323 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 " @@ -7239,7 +7487,7 @@ msgstr "" "προβολή δημιουργεί μια :class:`ValueError` (εκτός από την ίδια την :meth:" "`release` που μπορεί να κληθεί πολλές φορές)::" -#: library/stdtypes.rst:4139 +#: library/stdtypes.rst:4327 msgid "" ">>> m = memoryview(b'abc')\n" ">>> m.release()\n" @@ -7255,7 +7503,7 @@ msgstr "" " File \"\", line 1, in \n" "ValueError: operation forbidden on released memoryview object" -#: library/stdtypes.rst:4146 +#: library/stdtypes.rst:4334 msgid "" "The context management protocol can be used for a similar effect, using the " "``with`` statement::" @@ -7263,7 +7511,7 @@ msgstr "" "Το πρωτόκολλο διαχείρισης περιεχομένου μπορεί να χρησιμοποιηθεί για παρόμοιο " "αποτέλεσμα, χρησιμοποιώντας τη δήλωση ``with``::" -#: library/stdtypes.rst:4149 +#: library/stdtypes.rst:4337 msgid "" ">>> with memoryview(b'abc') as m:\n" "... m[0]\n" @@ -7283,7 +7531,7 @@ msgstr "" " File \"\", line 1, in \n" "ValueError: operation forbidden on released memoryview object" -#: library/stdtypes.rst:4162 +#: library/stdtypes.rst:4351 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 " @@ -7297,7 +7545,7 @@ msgstr "" "memoryview, αλλά το ίδιο το buffer δεν αντιγράφεται. Οι υποστηριζόμενες " "μετατροπές είναι 1D -> C-:term:`contiguous` και C-contiguous -> 1D." -#: library/stdtypes.rst:4168 +#: library/stdtypes.rst:4357 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 " @@ -7310,11 +7558,11 @@ msgstr "" "το αρχικό μήκος. Σημειώστε ότι όλα τα μήκη byte μπορεί να εξαρτώνται από το " "λειτουργικό σύστημα." -#: library/stdtypes.rst:4174 +#: library/stdtypes.rst:4363 msgid "Cast 1D/long to 1D/unsigned bytes::" msgstr "Μορφοποίηση από 1D/long σε 1D/unsigned bytes::" -#: library/stdtypes.rst:4176 +#: library/stdtypes.rst:4365 msgid "" ">>> import array\n" ">>> a = array.array('l', [1,2,3])\n" @@ -7358,11 +7606,11 @@ msgstr "" ">>> y.nbytes\n" "24" -#: library/stdtypes.rst:4197 +#: library/stdtypes.rst:4386 msgid "Cast 1D/unsigned bytes to 1D/char::" msgstr "Μορφοποίηση από 1D/unsigned bytes σε 1D/char::" -#: library/stdtypes.rst:4199 +#: library/stdtypes.rst:4388 msgid "" ">>> b = bytearray(b'zyz')\n" ">>> x = memoryview(b)\n" @@ -7386,11 +7634,11 @@ msgstr "" ">>> b\n" "bytearray(b'ayz')" -#: library/stdtypes.rst:4210 +#: library/stdtypes.rst:4399 msgid "Cast 1D/bytes to 3D/ints to 1D/signed char::" msgstr "Μορφοποίηση από 1D/bytes σε 3D/ints σε 1D/signed char::" -#: library/stdtypes.rst:4212 +#: library/stdtypes.rst:4401 msgid "" ">>> import struct\n" ">>> buf = struct.pack(\"i\"*12, *list(range(12)))\n" @@ -7440,11 +7688,11 @@ msgstr "" ">>> z.nbytes\n" "48" -#: library/stdtypes.rst:4236 +#: library/stdtypes.rst:4425 msgid "Cast 1D/unsigned long to 2D/unsigned long::" msgstr "Μορφοποίηση από 1D/unsigned long σε 2D/unsigned long::" -#: library/stdtypes.rst:4238 +#: library/stdtypes.rst:4427 msgid "" ">>> buf = struct.pack(\"L\"*6, *list(range(6)))\n" ">>> x = memoryview(buf)\n" @@ -7466,21 +7714,21 @@ msgstr "" ">>> y.tolist()\n" "[[0, 1, 2], [3, 4, 5]]" -#: library/stdtypes.rst:4250 +#: library/stdtypes.rst:4439 msgid "The source format is no longer restricted when casting to a byte view." msgstr "" "Η πηγαία μορφή δεν είναι πλέον περιορισμένη κατά τη μορφοποίηση σε μια όψη " "byte." -#: library/stdtypes.rst:4253 +#: library/stdtypes.rst:4442 msgid "There are also several readonly attributes available:" msgstr "Υπάρχουν επίσης αρκετά διαθέσιμα χαρακτηριστικά μόνο για ανάγνωση:" -#: library/stdtypes.rst:4257 +#: library/stdtypes.rst:4446 msgid "The underlying object of the memoryview::" msgstr "Το βασικό αντικείμενο του memoryview::" -#: library/stdtypes.rst:4259 +#: library/stdtypes.rst:4448 msgid "" ">>> b = bytearray(b'xyz')\n" ">>> m = memoryview(b)\n" @@ -7492,7 +7740,7 @@ msgstr "" ">>> m.obj is b\n" "True" -#: library/stdtypes.rst:4268 +#: library/stdtypes.rst:4457 msgid "" "``nbytes == product(shape) * itemsize == len(m.tobytes())``. This is the " "amount of space in bytes that the array would use in a contiguous " @@ -7502,7 +7750,7 @@ msgstr "" "ποσότητα χώρου σε byte που θα χρησιμοποιούσε ο πίνακας σε μια συνεχόμενη " "αναπαράσταση. Δεν ισούται απαραίτητα με ``len(m)``::" -#: library/stdtypes.rst:4272 +#: library/stdtypes.rst:4461 msgid "" ">>> import array\n" ">>> a = array.array('i', [1,2,3,4,5])\n" @@ -7534,11 +7782,11 @@ msgstr "" ">>> len(y.tobytes())\n" "12" -#: library/stdtypes.rst:4287 +#: library/stdtypes.rst:4476 msgid "Multi-dimensional arrays::" msgstr "Πολυδιάστατοι πίνακες::" -#: library/stdtypes.rst:4289 +#: library/stdtypes.rst:4478 msgid "" ">>> import struct\n" ">>> buf = struct.pack(\"d\"*12, *[1.5*x for x in range(12)])\n" @@ -7562,11 +7810,11 @@ msgstr "" ">>> y.nbytes\n" "96" -#: library/stdtypes.rst:4304 +#: library/stdtypes.rst:4493 msgid "A bool indicating whether the memory is read only." msgstr "Ένα bool που υποδεικνύει εάν η μνήμη είναι μόνο για ανάγνωση." -#: library/stdtypes.rst:4308 +#: library/stdtypes.rst:4497 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 " @@ -7578,7 +7826,7 @@ msgstr "" "εξαγωγείς με συμβολοσειρές αυθαίρετης μορφής, αλλά ορισμένες μέθοδοι (π.χ. :" "meth:`tolist`) είναι περιορισμένες σε εγγενείς μορφές ενός στοιχείου." -#: library/stdtypes.rst:4313 +#: library/stdtypes.rst:4502 msgid "" "format ``'B'`` is now handled according to the struct module syntax. This " "means that ``memoryview(b'abc')[0] == b'abc'[0] == 97``." @@ -7586,11 +7834,11 @@ msgstr "" "η μορφή ``'B'`` αντιμετωπίζεται πλέον σύμφωνα με τη σύνταξη ενός struct " "module. Αυτό σημαίνει ότι ``memoryview(b'abc')[0] == b'abc'[0] == 97``." -#: library/stdtypes.rst:4319 +#: library/stdtypes.rst:4508 msgid "The size in bytes of each element of the memoryview::" msgstr "Το μέγεθος σε bytes κάθε στοιχείου στο memoryview::" -#: library/stdtypes.rst:4321 +#: library/stdtypes.rst:4510 msgid "" ">>> import array, struct\n" ">>> m = memoryview(array.array('H', [32000, 32001, 32002]))\n" @@ -7610,7 +7858,7 @@ msgstr "" ">>> struct.calcsize('H') == m.itemsize\n" "True" -#: library/stdtypes.rst:4332 +#: library/stdtypes.rst:4521 msgid "" "An integer indicating how many dimensions of a multi-dimensional array the " "memory represents." @@ -7618,7 +7866,7 @@ msgstr "" "Ένα ακέραιος αριθμός που δείχνει πόσες διαστάσεις ενός πολυδιάστατου πίνακα " "αντιπροσωπεύει η μνήμη." -#: library/stdtypes.rst:4337 +#: library/stdtypes.rst:4526 msgid "" "A tuple of integers the length of :attr:`ndim` giving the shape of the " "memory as an N-dimensional array." @@ -7626,11 +7874,11 @@ msgstr "" "Μια πλειάδα (tuple) ακεραίων με μήκος :attr:`ndim` δίνοντας το σχήμα της " "μνήμης ως πίνακα N-διαστάσεων." -#: library/stdtypes.rst:4348 +#: library/stdtypes.rst:4537 msgid "An empty tuple instead of ``None`` when ndim = 0." msgstr "Μια κενή πλειάδα (tuple) αντί για ``None`` όταν ndim = 0." -#: library/stdtypes.rst:4345 +#: library/stdtypes.rst:4534 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." @@ -7638,29 +7886,29 @@ msgstr "" "Μια πλειάδα ακεραίων με μήκος :attr:`ndim` που δίνει το μέγεθος σε bytes για " "την πρόσβαση σε κάθε στοιχείο για κάθε διάσταση του πίνακα." -#: library/stdtypes.rst:4353 +#: library/stdtypes.rst:4542 msgid "Used internally for PIL-style arrays. The value is informational only." msgstr "" "Χρησιμοποιείται εσωτερικά για συστοιχίες τύπου PIL. Η τιμή είναι μόνο " "ενημερωτική." -#: library/stdtypes.rst:4357 +#: library/stdtypes.rst:4546 msgid "A bool indicating whether the memory is C-:term:`contiguous`." msgstr "Ένα bool που υποδεικνύει εάν η μνήμη είναι C-:term:`contiguous`." -#: library/stdtypes.rst:4363 +#: library/stdtypes.rst:4552 msgid "A bool indicating whether the memory is Fortran :term:`contiguous`." msgstr "Ένα bool που υποδεικνύει εάν η μνήμη είναι Fortran :term:`contiguous`." -#: library/stdtypes.rst:4369 +#: library/stdtypes.rst:4558 msgid "A bool indicating whether the memory is :term:`contiguous`." msgstr "Ένα bool που υποδεικνύει εάν η μνήμη είναι :term:`contiguous`." -#: library/stdtypes.rst:4377 +#: library/stdtypes.rst:4566 msgid "Set Types --- :class:`set`, :class:`frozenset`" msgstr "Τύποι Συνόλου (Set) --- :class:`set`, :class:`frozenset`" -#: library/stdtypes.rst:4381 +#: library/stdtypes.rst:4570 msgid "" "A :dfn:`set` object is an unordered collection of distinct :term:`hashable` " "objects. Common uses include membership testing, removing duplicates from a " @@ -7676,7 +7924,7 @@ msgstr "" "διαφορά. (Για άλλα containers, δείτε τις ενσωματωμένες κλάσεις :class:" "`dict`, :class:`list`, και :class:`tuple` και το module :mod:`collections`)." -#: library/stdtypes.rst:4388 +#: library/stdtypes.rst:4577 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 " @@ -7689,7 +7937,7 @@ msgstr "" "τα σύνολα (sets) δεν υποστηρίζουν λειτουργίες ευρετηριοποίησης, " "τμηματοποίησης ή άλλη συμπεριφορά ακολουθίας." -#: library/stdtypes.rst:4393 +#: library/stdtypes.rst:4582 msgid "" "There are currently two built-in set types, :class:`set` and :class:" "`frozenset`. The :class:`set` type is mutable --- the contents can be " @@ -7710,7 +7958,7 @@ msgstr "" "δεν μπορεί να αλλάξει μετά τη δημιουργία του· μπορεί επομένως να " "χρησιμοποιηθεί ως κλειδί λεξικού ή ως στοιχείο άλλου συνόλου (set)." -#: library/stdtypes.rst:4401 +#: library/stdtypes.rst:4590 msgid "" "Non-empty sets (not frozensets) can be created by placing a comma-separated " "list of elements within braces, for example: ``{'jack', 'sjoerd'}``, in " @@ -7721,11 +7969,11 @@ msgstr "" "παράδειγμα: ``{'jack', 'sjoerd'}``, επιπλέον με τη χρήση του constructor " "του :class:`set`." -#: library/stdtypes.rst:4405 +#: library/stdtypes.rst:4594 msgid "The constructors for both classes work the same:" msgstr "Οι constructors και για τις δύο κλάσεις λειτουργούν το ίδιο:" -#: library/stdtypes.rst:4410 +#: library/stdtypes.rst:4599 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 " @@ -7738,25 +7986,25 @@ msgstr "" "εσωτερικά σύνολα πρέπει να είναι :class:`frozenset` αντικείμενα. Εάν δεν " "έχει καθοριστεί το *iterable*, επιστρέφεται ένα νέο κενό σύνολο." -#: library/stdtypes.rst:4416 +#: library/stdtypes.rst:4605 msgid "Sets can be created by several means:" msgstr "Τα σύνολα μπορούν να δημιουργηθούν με διάφορους τρόπους:" -#: library/stdtypes.rst:4418 +#: library/stdtypes.rst:4607 msgid "" "Use a comma-separated list of elements within braces: ``{'jack', 'sjoerd'}``" msgstr "" "Χρησιμοποιώντας μια λίστα στοιχείων διαχωρισμένη με κόμματα: ``{'jack', " "'sjoerd'}``" -#: library/stdtypes.rst:4419 +#: library/stdtypes.rst:4608 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:4420 +#: library/stdtypes.rst:4609 msgid "" "Use the type constructor: ``set()``, ``set('foobar')``, ``set(['a', 'b', " "'foo'])``" @@ -7764,7 +8012,7 @@ msgstr "" "Χρησιμοποιώντας τον τύπο constructor: ``set()``, ``set('foobar')``, " "``set(['a', 'b', 'foo'])``" -#: library/stdtypes.rst:4422 +#: library/stdtypes.rst:4611 msgid "" "Instances of :class:`set` and :class:`frozenset` provide the following " "operations:" @@ -7772,20 +8020,20 @@ msgstr "" "Τα στιγμιότυπα των :class:`set` και :class:`frozenset` παρέχουν τις " "ακόλουθες λειτουργίες:" -#: library/stdtypes.rst:4427 +#: library/stdtypes.rst:4616 msgid "Return the number of elements in set *s* (cardinality of *s*)." msgstr "" "Επιστρέφει τον αριθμό των στοιχείων στο σύνολο *s* (πληθικότητα του *s*)." -#: library/stdtypes.rst:4431 +#: library/stdtypes.rst:4620 msgid "Test *x* for membership in *s*." msgstr "Ελέγχει αν το *x* είναι μέρος στο *s*." -#: library/stdtypes.rst:4435 +#: library/stdtypes.rst:4624 msgid "Test *x* for non-membership in *s*." msgstr "Ελέγχει αν το *x* δεν είναι μέρος στο *s*." -#: library/stdtypes.rst:4439 +#: library/stdtypes.rst:4628 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." @@ -7793,11 +8041,11 @@ msgstr "" "Επιστρέφει ``True`` εάν το σύνολο δεν έχει κοινά στοιχεία με το *other*. Τα " "σύνολα είναι ασύνδετα εάν και μόνο εάν η τομή τους είναι το κενό σύνολο." -#: library/stdtypes.rst:4445 +#: library/stdtypes.rst:4634 msgid "Test whether every element in the set is in *other*." msgstr "Ελέγχει εάν κάθε στοιχείο στο σύνολο βρίσκεται στο *other*." -#: library/stdtypes.rst:4449 +#: library/stdtypes.rst:4638 msgid "" "Test whether the set is a proper subset of *other*, that is, ``set <= other " "and set != other``." @@ -7805,11 +8053,11 @@ msgstr "" "Ελέγχει εάν το σύνολο είναι σωστό υποσύνολο του *other*, δηλαδή, ``set <= " "other and set != other``." -#: library/stdtypes.rst:4455 +#: library/stdtypes.rst:4644 msgid "Test whether every element in *other* is in the set." msgstr "Ελέγχει αν κάθε στοιχείο του *other* είναι στο σύνολο." -#: library/stdtypes.rst:4459 +#: library/stdtypes.rst:4648 msgid "" "Test whether the set is a proper superset of *other*, that is, ``set >= " "other and set != other``." @@ -7817,32 +8065,32 @@ msgstr "" "Ελέγχει αν το σύνολο είναι σωστό υπερσύνολο του *other*, δηλαδή, ``set >= " "other and set != other``." -#: library/stdtypes.rst:4465 +#: library/stdtypes.rst:4654 msgid "Return a new set with elements from the set and all others." msgstr "Επιστρέφει ένα νέο σύνολο με στοιχεία από το σύνολο και όλα τα άλλα." -#: library/stdtypes.rst:4470 +#: library/stdtypes.rst:4659 msgid "Return a new set with elements common to the set and all others." msgstr "" "Επιστρέφει ένα νέο σύνολο με στοιχεία κοινά στο σύνολο και σε όλα τα άλλα." -#: library/stdtypes.rst:4475 +#: library/stdtypes.rst:4664 msgid "Return a new set with elements in the set that are not in the others." msgstr "" "Επιστρέφει ένα νέο σύνολο με στοιχεία στο σύνολο που δεν υπάρχουν στα άλλα." -#: library/stdtypes.rst:4480 +#: library/stdtypes.rst:4669 msgid "" "Return a new set with elements in either the set or *other* but not both." msgstr "" "Επιστρέφει ένα νέο σύνολο με στοιχεία είτε στο σύνολο είτε στο *other* αλλά " "όχι και στα δύο." -#: library/stdtypes.rst:4484 +#: library/stdtypes.rst:4673 msgid "Return a shallow copy of the set." msgstr "Επιστρέφει ένα ρηχό αντίγραφο του συνόλου." -#: library/stdtypes.rst:4487 +#: library/stdtypes.rst:4676 msgid "" "Note, the non-operator versions of :meth:`union`, :meth:`intersection`, :" "meth:`difference`, :meth:`symmetric_difference`, :meth:`issubset`, and :meth:" @@ -7859,7 +8107,7 @@ msgstr "" "σφάλματα όπως ``set('abc') & 'cbs'`` υπέρ του πιο ευανάγνωστου ``set('abc')." "intersection('cbs')``." -#: library/stdtypes.rst:4494 +#: library/stdtypes.rst:4683 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 " @@ -7877,7 +8125,7 @@ msgstr "" "είναι σωστό υπερσύνολο του δεύτερου συνόλου (είναι υπερσύνολο αλλά δεν είναι " "ίσο)." -#: library/stdtypes.rst:4501 +#: library/stdtypes.rst:4690 msgid "" "Instances of :class:`set` are compared to instances of :class:`frozenset` " "based on their members. For example, ``set('abc') == frozenset('abc')`` " @@ -7888,7 +8136,7 @@ msgstr "" "frozenset('abc')`` επιστρέφει ``True`` και το ίδιο συμβαίνει και με το " "``set('abc') in set([frozenset('abc')])``." -#: library/stdtypes.rst:4505 +#: library/stdtypes.rst:4694 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 " @@ -7900,7 +8148,7 @@ msgstr "" "δεν είναι ίσα και δεν είναι υποσύνολα το ένα του άλλου, επομένως *όλα* τα " "ακόλουθα επιστρέφουν ``False``: ``ab``." -#: library/stdtypes.rst:4510 +#: library/stdtypes.rst:4699 msgid "" "Since sets only define partial ordering (subset relationships), the output " "of the :meth:`list.sort` method is undefined for lists of sets." @@ -7908,13 +8156,13 @@ msgstr "" "Δεδομένου ότι τα σύνολα ορίζουν μόνο μερική σειρά (σχέσεις υποσυνόλων), η " "έξοδος της μεθόδου :meth:`list.sort` δεν έχει οριστεί για λίστες συνόλων." -#: library/stdtypes.rst:4513 +#: library/stdtypes.rst:4702 msgid "Set elements, like dictionary keys, must be :term:`hashable`." msgstr "" "Τα στοιχεία συνόλου, όπως τα κλειδιά λεξικού, πρέπει να είναι :term:" "`hashable`." -#: library/stdtypes.rst:4515 +#: library/stdtypes.rst:4704 msgid "" "Binary operations that mix :class:`set` instances with :class:`frozenset` " "return the type of the first operand. For example: ``frozenset('ab') | " @@ -7925,7 +8173,7 @@ msgstr "" "``frozenset('ab') | set('bc')`` επιστρέφει ένα στιγμιότυπο του :class:" "`frozenset`." -#: library/stdtypes.rst:4519 +#: library/stdtypes.rst:4708 msgid "" "The following table lists operations available for :class:`set` that do not " "apply to immutable instances of :class:`frozenset`:" @@ -7933,32 +8181,32 @@ msgstr "" "Ο παρακάτω πίνακας παραθέτει λειτουργίες που είναι διαθέσιμες για :class:" "`set` που δεν ισχύουν για αμετάβλητα στιγμιότυπα της :class:`frozenset`:" -#: library/stdtypes.rst:4525 +#: library/stdtypes.rst:4714 msgid "Update the set, adding elements from all others." msgstr "Ενημερώνει το σύνολο (set), προσθέτοντας στοιχεία από όλα τα άλλα." -#: library/stdtypes.rst:4530 +#: library/stdtypes.rst:4719 msgid "Update the set, keeping only elements found in it and all others." msgstr "" "Ενημερώνει το σύνολο, διατηρώντας μόνο τα στοιχεία που βρίσκονται σε αυτό " "και όλα τα άλλα." -#: library/stdtypes.rst:4535 +#: library/stdtypes.rst:4724 msgid "Update the set, removing elements found in others." msgstr "Ενημερώνει το σύνολο, αφαιρώντας στοιχεία που βρίσκονται σε άλλα." -#: library/stdtypes.rst:4540 +#: library/stdtypes.rst:4729 msgid "" "Update the set, keeping only elements found in either set, but not in both." msgstr "" "Ενημερώνει το σύνολο, διατηρώντας μόνο τα στοιχεία που βρίσκονται σε κάθε " "σύνολο, αλλά όχι και στα δύο." -#: library/stdtypes.rst:4544 +#: library/stdtypes.rst:4733 msgid "Add element *elem* to the set." msgstr "Προσθέτει το στοιχείο *elem* στο σύνολο." -#: library/stdtypes.rst:4548 +#: library/stdtypes.rst:4737 msgid "" "Remove element *elem* from the set. Raises :exc:`KeyError` if *elem* is not " "contained in the set." @@ -7966,11 +8214,11 @@ msgstr "" "Αφαιρεί το στοιχείο *elem* από το σύνολο. Κάνει raise τη :exc:`KeyError` " "εάν το *elem* δεν περιέχεται στο σύνολο." -#: library/stdtypes.rst:4553 +#: library/stdtypes.rst:4742 msgid "Remove element *elem* from the set if it is present." msgstr "Αφαιρεί το στοιχείο *elem* από το σύνολο εάν υπάρχει." -#: library/stdtypes.rst:4557 +#: library/stdtypes.rst:4746 msgid "" "Remove and return an arbitrary element from the set. Raises :exc:`KeyError` " "if the set is empty." @@ -7978,11 +8226,11 @@ msgstr "" "Αφαιρεί και επιστρέφει ένα αυθαίρετο στοιχείο από το σύνολο. Κάνει raise " "μια :exc:`KeyError` εάν το σύνολο είναι κενό." -#: library/stdtypes.rst:4562 +#: library/stdtypes.rst:4751 msgid "Remove all elements from the set." msgstr "Αφαιρεί όλα τα στοιχεία από το σύνολο (set)." -#: library/stdtypes.rst:4565 +#: library/stdtypes.rst:4754 msgid "" "Note, the non-operator versions of the :meth:`update`, :meth:" "`intersection_update`, :meth:`difference_update`, and :meth:" @@ -7994,7 +8242,7 @@ msgstr "" "`symmetric_difference_update` θα δέχονται οποιοδήποτε επαναλαμβανόμενο " "στοιχείο ως όρισμα." -#: library/stdtypes.rst:4570 +#: library/stdtypes.rst:4759 msgid "" "Note, the *elem* argument to the :meth:`~object.__contains__`, :meth:" "`remove`, and :meth:`discard` methods may be a set. To support searching " @@ -8005,11 +8253,11 @@ msgstr "" "υποστήριξη της αναζήτησης για ένα ισοδύναμο παγωμένο σύνολο (frozenset), ένα " "προσωρινό δημιουργείται από το *elem*." -#: library/stdtypes.rst:4579 +#: library/stdtypes.rst:4768 msgid "Mapping Types --- :class:`dict`" msgstr "Τύποι αντιστοίχισης --- :class:`dict`" -#: library/stdtypes.rst:4589 +#: library/stdtypes.rst:4778 msgid "" "A :term:`mapping` object maps :term:`hashable` values to arbitrary objects. " "Mappings are mutable objects. There is currently only one standard mapping " @@ -8024,7 +8272,7 @@ msgstr "" "class:`list`, :class:`set`, και :class:`tuple` κλάσεις, και το module :mod:" "`collections`.)" -#: library/stdtypes.rst:4595 +#: library/stdtypes.rst:4784 msgid "" "A dictionary's keys are *almost* arbitrary values. Values that are not :" "term:`hashable`, that is, values containing lists, dictionaries or other " @@ -8039,7 +8287,7 @@ msgstr "" "συγκρίνονται ίσες (όπως ``1``, ``1.0``, και ``True``) μπορούν να " "χρησιμοποιηθούν εναλλακτικά για το index της ίδιας καταχώρισης λεξικού." -#: library/stdtypes.rst:4606 +#: library/stdtypes.rst:4795 msgid "" "Return a new dictionary initialized from an optional positional argument and " "a possibly empty set of keyword arguments." @@ -8047,11 +8295,11 @@ msgstr "" "Επιστρέφει ένα νέο λεξικό που έχει αρχικοποιηθεί από ένα προαιρετικό όρισμα " "θέσης και ένα πιθανό κενό σύνολο ορισμάτων λέξεων-κλειδιών." -#: library/stdtypes.rst:4609 +#: library/stdtypes.rst:4798 msgid "Dictionaries can be created by several means:" msgstr "Τα λεξικά μπορούν να δημιουργηθούν με διάφορους τρόπους:" -#: library/stdtypes.rst:4611 +#: library/stdtypes.rst:4800 msgid "" "Use a comma-separated list of ``key: value`` pairs within braces: ``{'jack': " "4098, 'sjoerd': 4127}`` or ``{4098: 'jack', 4127: 'sjoerd'}``" @@ -8060,13 +8308,13 @@ msgstr "" "σε αγκύλες: ``{'jack': 4098, 'sjoerd': 4127}`` or ``{4098: 'jack', 4127: " "'sjoerd'}``" -#: library/stdtypes.rst:4613 +#: library/stdtypes.rst:4802 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:4614 +#: library/stdtypes.rst:4803 msgid "" "Use the type constructor: ``dict()``, ``dict([('foo', 100), ('bar', " "200)])``, ``dict(foo=100, bar=200)``" @@ -8074,7 +8322,7 @@ msgstr "" "Χρησιμοποιήστε τον κατασκευαστή τύπου: ``dict()``, ``dict([('foo', 100), " "('bar', 200)])``, ``dict(foo=100, bar=200)``" -#: library/stdtypes.rst:4617 +#: library/stdtypes.rst:4806 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 " @@ -8096,7 +8344,7 @@ msgstr "" "τιμή. Εάν ένα κλειδί εμφανίζεται περισσότερες από μία φορές, η τελευταία " "τιμή για αυτό το κλειδί γίνεται η αντίστοιχη τιμή στο νέο λεξικό." -#: library/stdtypes.rst:4627 +#: library/stdtypes.rst:4816 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 " @@ -8108,15 +8356,30 @@ msgstr "" "Εάν υπάρχει ήδη ένα κλειδί που προστίθεται, η τιμή από το όρισμα λέξης-" "κλειδιού αντικαθιστά την τιμή από το όρισμα θέσης." -#: library/stdtypes.rst:4632 +#: library/stdtypes.rst:4839 +msgid "" +"Providing keyword arguments as in the first example only works for keys that " +"are valid Python identifiers. Otherwise, any valid keys can be used." +msgstr "" +"Η παροχή ορισμάτων λέξεων-κλειδιών όπως στο πρώτο παράδειγμα λειτουργεί μόνο " +"για κλειδιά που είναι έγκυρα αναγνωριστικά Python. Διαφορετικά, μπορούν να " +"χρησιμοποιηθούν οποιαδήποτε έγκυρα κλειδιά." + +#: library/stdtypes.rst:4824 msgid "" -"To illustrate, the following examples all return a dictionary equal to " +"Dictionaries compare equal if and only if they have the same ``(key, " +"value)`` pairs (regardless of ordering). Order comparisons ('<', '<=', '>=', " +"'>') raise :exc:`TypeError`. To illustrate dictionary creation and " +"equality, the following examples all return a dictionary equal to " "``{\"one\": 1, \"two\": 2, \"three\": 3}``::" msgstr "" -"Για επεξήγηση, τα ακόλουθα παραδείγματα επιστρέφουν όλα ένα λεξικό ίσο με " +"Τα λεξικά συγκρίνονται ως ίσα εάν και μόνο εάν έχουν τα ίδια ζεύγη ``(key, " +"value)`` (ανεξάρτητα από τη σειρά). Οι συγκρίσεις διάταξης ('<', '<=', '>=', " +"'>') κάνουν raise την :exc:`TypeError`. Για να απεικονιστεί η δημιουργία και " +"η ισότητα, τα ακόλουθα παραδείγματα επιστρέφουν όλα ένα λεξικό ίσο με " "``{\"one\": 1, \"two\": 2, \"three\": 3}``::" -#: library/stdtypes.rst:4635 +#: library/stdtypes.rst:4830 msgid "" ">>> a = dict(one=1, two=2, three=3)\n" ">>> b = {'one': 1, 'two': 2, 'three': 3}\n" @@ -8136,41 +8399,81 @@ msgstr "" ">>> a == b == c == d == e == f\n" "True" -#: library/stdtypes.rst:4644 -msgid "" -"Providing keyword arguments as in the first example only works for keys that " -"are valid Python identifiers. Otherwise, any valid keys can be used." -msgstr "" -"Η παροχή ορισμάτων λέξεων-κλειδιών όπως στο πρώτο παράδειγμα λειτουργεί μόνο " -"για κλειδιά που είναι έγκυρα αναγνωριστικά Python. Διαφορετικά, μπορούν να " -"χρησιμοποιηθούν οποιαδήποτε έγκυρα κλειδιά." - -#: library/stdtypes.rst:4648 +#: library/stdtypes.rst:4842 msgid "" -"These are the operations that dictionaries support (and therefore, custom " -"mapping types should support too):" -msgstr "" -"Αυτές είναι οι λειτουργίες που υποστηρίζουν τα λεξικά (και επομένως, θα " -"πρέπει να υποστηρίζουν και προσαρμοσμένους τύπους αντιστοίχισης επίσης):" - -#: library/stdtypes.rst:4653 -msgid "Return a list of all the keys used in the dictionary *d*." +"Dictionaries preserve insertion order. Note that updating a key does not " +"affect the order. Keys added after deletion are inserted at the end. ::" msgstr "" -"Επιστρέφει μια λίστα με όλα τα κλειδιά που χρησιμοποιούνται στο λεξικό *d*." - -#: library/stdtypes.rst:4657 -msgid "Return the number of items in the dictionary *d*." -msgstr "Επιστρέφει τον αριθμό των στοιχείων στο λεξικό *d*." +"Τα λεξικά διατηρούν τη σειρά εισαγωγής. Σημειώστε ότι η ενημέρωση ενός " +"κλειδιού δεν επηρεάζει τη σειρά. Τα κλειδιά που προστέθηκαν μετά τη " +"διαγραφή εισάγονται στο τέλος. ::" -#: library/stdtypes.rst:4661 +#: library/stdtypes.rst:4845 msgid "" -"Return the item of *d* with key *key*. Raises a :exc:`KeyError` if *key* is " -"not in the map." +">>> d = {\"one\": 1, \"two\": 2, \"three\": 3, \"four\": 4}\n" +">>> d\n" +"{'one': 1, 'two': 2, 'three': 3, 'four': 4}\n" +">>> list(d)\n" +"['one', 'two', 'three', 'four']\n" +">>> list(d.values())\n" +"[1, 2, 3, 4]\n" +">>> d[\"one\"] = 42\n" +">>> d\n" +"{'one': 42, 'two': 2, 'three': 3, 'four': 4}\n" +">>> del d[\"two\"]\n" +">>> d[\"two\"] = None\n" +">>> d\n" +"{'one': 42, 'three': 3, 'four': 4, 'two': None}" msgstr "" -"Επιστρέφει το στοιχείο του *d* με το κλειδί *key*. Κάνει raise μια :exc:" +">>> d = {\"one\": 1, \"two\": 2, \"three\": 3, \"four\": 4}\n" +">>> d\n" +"{'one': 1, 'two': 2, 'three': 3, 'four': 4}\n" +">>> list(d)\n" +"['one', 'two', 'three', 'four']\n" +">>> list(d.values())\n" +"[1, 2, 3, 4]\n" +">>> d[\"one\"] = 42\n" +">>> d\n" +"{'one': 42, 'two': 2, 'three': 3, 'four': 4}\n" +">>> del d[\"two\"]\n" +">>> d[\"two\"] = None\n" +">>> d\n" +"{'one': 42, 'three': 3, 'four': 4, 'two': None}" + +#: library/stdtypes.rst:4860 +msgid "" +"Dictionary order is guaranteed to be insertion order. This behavior was an " +"implementation detail of CPython from 3.6." +msgstr "" +"Η σειρά λεξικού είναι εγγυημένη ότι είναι η σειρά εισαγωγής. Αυτή η " +"συμπεριφορά ήταν μια λεπτομέρεια υλοποίηση της CPython από την έκδοση 3.6." + +#: library/stdtypes.rst:4864 +msgid "" +"These are the operations that dictionaries support (and therefore, custom " +"mapping types should support too):" +msgstr "" +"Αυτές είναι οι λειτουργίες που υποστηρίζουν τα λεξικά (και επομένως, θα " +"πρέπει να υποστηρίζουν και προσαρμοσμένους τύπους αντιστοίχισης επίσης):" + +#: library/stdtypes.rst:4869 +msgid "Return a list of all the keys used in the dictionary *d*." +msgstr "" +"Επιστρέφει μια λίστα με όλα τα κλειδιά που χρησιμοποιούνται στο λεξικό *d*." + +#: library/stdtypes.rst:4873 +msgid "Return the number of items in the dictionary *d*." +msgstr "Επιστρέφει τον αριθμό των στοιχείων στο λεξικό *d*." + +#: library/stdtypes.rst:4877 +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* δεν υπάρχει για να αντιστοιχηθεί." -#: library/stdtypes.rst:4666 +#: library/stdtypes.rst:4882 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 " @@ -8189,7 +8492,7 @@ msgstr "" "exc:`KeyError`. To :meth:`__missing__` πρέπει να είναι μέθοδος∙ δεν μπορεί " "να είναι ένα στιγμιότυπο μεταβλητής::" -#: library/stdtypes.rst:4674 +#: library/stdtypes.rst:4890 msgid "" ">>> class Counter(dict):\n" "... def __missing__(self, key):\n" @@ -8213,7 +8516,7 @@ msgstr "" ">>> c['red']\n" "1" -#: library/stdtypes.rst:4685 +#: library/stdtypes.rst:4901 msgid "" "The example above shows part of the implementation of :class:`collections." "Counter`. A different ``__missing__`` method is used by :class:`collections." @@ -8223,11 +8526,11 @@ msgstr "" "Counter`. Μια διαφορετική μέθοδος ``__missing__`` χρησιμοποιείται από την :" "class:`collections.defaultdict`." -#: library/stdtypes.rst:4691 +#: library/stdtypes.rst:4907 msgid "Set ``d[key]`` to *value*." msgstr "Ορίζει το ``d[key]`` στο *value*." -#: library/stdtypes.rst:4695 +#: library/stdtypes.rst:4911 msgid "" "Remove ``d[key]`` from *d*. Raises a :exc:`KeyError` if *key* is not in the " "map." @@ -8235,16 +8538,16 @@ msgstr "" "Αφαιρεί το ``d[key]`` από το *d*. Κάνει raise ένα :exc:`KeyError` εάν το " "*key* δεν υπάρχει για αντιστοίχιση." -#: library/stdtypes.rst:4700 +#: library/stdtypes.rst:4916 msgid "Return ``True`` if *d* has a key *key*, else ``False``." msgstr "" "Επιστρέφει ``True`` εάν το *d* έχει ένα κλειδί *key*, διαφορετικά ``False``." -#: library/stdtypes.rst:4704 +#: library/stdtypes.rst:4920 msgid "Equivalent to ``not key in d``." msgstr "Ισοδυναμεί με ``not key in d``." -#: library/stdtypes.rst:4708 +#: library/stdtypes.rst:4924 msgid "" "Return an iterator over the keys of the dictionary. This is a shortcut for " "``iter(d.keys())``." @@ -8252,21 +8555,21 @@ msgstr "" "Επιστρέφει έναν iterator πάνω από τα κλειδιά του λεξικού. Αυτή είναι μια " "συντόμευση για ``iter(d.keys())``." -#: library/stdtypes.rst:4713 +#: library/stdtypes.rst:4929 msgid "Remove all items from the dictionary." msgstr "Αφαιρεί όλα τα στοιχεία από το λεξικό." -#: library/stdtypes.rst:4717 +#: library/stdtypes.rst:4933 msgid "Return a shallow copy of the dictionary." msgstr "Επιστρέφει ένα ρηχό αντίγραφο του λεξικού." -#: library/stdtypes.rst:4721 +#: library/stdtypes.rst:4937 msgid "" "Create a new dictionary with keys from *iterable* and values set to *value*." msgstr "" "Δημιουργεί ένα νέο λεξικό με κλειδιά από το *iterable* και τιμές ως *value*." -#: library/stdtypes.rst:4723 +#: library/stdtypes.rst:4939 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 " @@ -8281,7 +8584,7 @@ msgstr "" "διαφορετικές τιμές, χρησιμοποιήστε αντ' αυτού ένα :ref:`dict comprehension " "`." -#: library/stdtypes.rst:4731 +#: library/stdtypes.rst:4947 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 " @@ -8291,7 +8594,7 @@ msgstr "" "*default*. Εάν το *default* δεν δίνεται, ορίζεται από προεπιλογή σε " "``None``, έτσι ώστε αυτή η μέθοδος να μην κάνει raise μια :exc:`KeyError`." -#: library/stdtypes.rst:4737 +#: library/stdtypes.rst:4953 msgid "" "Return a new view of the dictionary's items (``(key, value)`` pairs). See " "the :ref:`documentation of view objects `." @@ -8299,7 +8602,7 @@ msgstr "" "Επιστρέφει μια νέα όψη των στοιχείων του λεξικού (``(key, value)`` ζεύγη). " "Δείτε την :ref:`documentation of view objects `." -#: library/stdtypes.rst:4742 +#: library/stdtypes.rst:4958 msgid "" "Return a new view of the dictionary's keys. See the :ref:`documentation of " "view objects `." @@ -8307,7 +8610,7 @@ msgstr "" "Επιστρέφει μια νέα όψη των κλειδιών του λεξικού. Δείτε το :ref:" "`documentation of view objects `." -#: library/stdtypes.rst:4747 +#: library/stdtypes.rst:4964 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 :" @@ -8317,7 +8620,7 @@ msgstr "" "διαφορετικά επιστρέφει *default*. Εάν *default* δεν δίνεται και το *key* " "δεν είναι στο λεξικό, γίνεται raise ένα :exc:`KeyError`." -#: library/stdtypes.rst:4753 +#: library/stdtypes.rst:4970 msgid "" "Remove and return a ``(key, value)`` pair from the dictionary. Pairs are " "returned in :abbr:`LIFO (last-in, first-out)` order." @@ -8325,7 +8628,7 @@ msgstr "" "Αφαιρεί και επιστρέφει ένα ζεύγος ``(key, value)`` από το λεξικό. Τα ζεύγη " "επιστρέφονται με τη σειρά :abbr:`LIFO (last-in, first-out)`." -#: library/stdtypes.rst:4756 +#: library/stdtypes.rst:4973 msgid "" ":meth:`popitem` is useful to destructively iterate over a dictionary, as " "often used in set algorithms. If the dictionary is empty, calling :meth:" @@ -8335,7 +8638,7 @@ msgstr "" "λεξικό, όπως χρησιμοποιείται συχνά σε αλγόριθμους συνόλου. Εάν το λεξικό " "είναι κενό, η κλήση της :meth:`popitem` κάνει raise ένα :exc:`KeyError`." -#: library/stdtypes.rst:4760 +#: library/stdtypes.rst:4977 msgid "" "LIFO order is now guaranteed. In prior versions, :meth:`popitem` would " "return an arbitrary key/value pair." @@ -8343,7 +8646,7 @@ msgstr "" "Η σειρά LIFO είναι πλέον εγγυημένη. Σε προηγούμενες εκδόσεις, η :meth:" "`popitem` επιστρέφει ένα αυθαίρετο ζεύγος κλειδιού/τιμής." -#: library/stdtypes.rst:4766 +#: library/stdtypes.rst:4983 msgid "" "Return a reverse iterator over the keys of the dictionary. This is a " "shortcut for ``reversed(d.keys())``." @@ -8351,7 +8654,7 @@ msgstr "" "Επιστρέφει έναν αντίστροφο iterator πάνω από τα κλειδιά του λεξικού. Αυτή " "είναι μια συντόμευση για ``reversed(d.keys())``." -#: library/stdtypes.rst:4773 +#: library/stdtypes.rst:4990 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``." @@ -8360,15 +8663,16 @@ msgstr "" "εισάγετε το *key* με τιμή *default* και επιστρέφει *default*. Το *default* " "από προεπιλογή είναι ``None``." -#: library/stdtypes.rst:4779 +#: library/stdtypes.rst:4998 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:4782 +#: library/stdtypes.rst:5001 msgid "" ":meth:`update` accepts either another object with a ``keys()`` method (in " "which case :meth:`~object.__getitem__` is called with every key returned " @@ -8383,7 +8687,7 @@ msgstr "" "κλειδιών, το λεξικό ενημερώνεται στη συνέχεια με αυτά τα ζεύγη κλειδιών/" "τιμών: ``d.update(red=1, blue=2)``." -#: library/stdtypes.rst:4790 +#: library/stdtypes.rst:5009 msgid "" "Return a new view of the dictionary's values. See the :ref:`documentation " "of view objects `." @@ -8391,7 +8695,7 @@ msgstr "" "Επιστρέφει μια νέα όψη των τιμών του λεξικού. Δείτε την :ref:`documentation " "of view objects `." -#: library/stdtypes.rst:4793 +#: library/stdtypes.rst:5012 msgid "" "An equality comparison between one ``dict.values()`` view and another will " "always return ``False``. This also applies when comparing ``dict.values()`` " @@ -8401,7 +8705,7 @@ msgstr "" "επιστρέφει πάντα ``False``. Αυτό ισχύει επίσης όταν συγκρίνετε το ``dict." "values()`` με τον εαυτό της::" -#: library/stdtypes.rst:4797 +#: library/stdtypes.rst:5016 msgid "" ">>> d = {'a': 1}\n" ">>> d.values() == d.values()\n" @@ -8411,7 +8715,7 @@ msgstr "" ">>> d.values() == d.values()\n" "False" -#: library/stdtypes.rst:4803 +#: library/stdtypes.rst:5022 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 " @@ -8421,7 +8725,7 @@ msgstr "" "και *other*, τα οποία πρέπει να είναι και τα δύο λεξικά. Οι τιμές του " "*other* έχουν προτεραιότητα όταν τα κλειδιά των *d* και *other* είναι κοινά." -#: library/stdtypes.rst:4811 +#: library/stdtypes.rst:5030 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 " @@ -8432,70 +8736,11 @@ msgstr "" "τιμές του *other* έχουν προτεραιότητα όταν τα κλειδιά των το *d* και *other* " "είναι κοινά." -#: library/stdtypes.rst:4817 -msgid "" -"Dictionaries compare equal if and only if they have the same ``(key, " -"value)`` pairs (regardless of ordering). Order comparisons ('<', '<=', '>=', " -"'>') raise :exc:`TypeError`." -msgstr "" -"Τα λεξικά συγκρίνονται ως ίσα εάν και μόνο εάν έχουν τα ίδια ζεύγη ``(key, " -"value)`` (ανεξάρτητα από τη σειρά). Οι συγκρίσεις διάταξης ('<', '<=', '>=', " -"'>') κάνουν raise την :exc:`TypeError`." - -#: library/stdtypes.rst:4821 -msgid "" -"Dictionaries preserve insertion order. Note that updating a key does not " -"affect the order. Keys added after deletion are inserted at the end. ::" -msgstr "" -"Τα λεξικά διατηρούν τη σειρά εισαγωγής. Σημειώστε ότι η ενημέρωση ενός " -"κλειδιού δεν επηρεάζει τη σειρά. Τα κλειδιά που προστέθηκαν μετά τη " -"διαγραφή εισάγονται στο τέλος. ::" - -#: library/stdtypes.rst:4824 -msgid "" -">>> d = {\"one\": 1, \"two\": 2, \"three\": 3, \"four\": 4}\n" -">>> d\n" -"{'one': 1, 'two': 2, 'three': 3, 'four': 4}\n" -">>> list(d)\n" -"['one', 'two', 'three', 'four']\n" -">>> list(d.values())\n" -"[1, 2, 3, 4]\n" -">>> d[\"one\"] = 42\n" -">>> d\n" -"{'one': 42, 'two': 2, 'three': 3, 'four': 4}\n" -">>> del d[\"two\"]\n" -">>> d[\"two\"] = None\n" -">>> d\n" -"{'one': 42, 'three': 3, 'four': 4, 'two': None}" -msgstr "" -">>> d = {\"one\": 1, \"two\": 2, \"three\": 3, \"four\": 4}\n" -">>> d\n" -"{'one': 1, 'two': 2, 'three': 3, 'four': 4}\n" -">>> list(d)\n" -"['one', 'two', 'three', 'four']\n" -">>> list(d.values())\n" -"[1, 2, 3, 4]\n" -">>> d[\"one\"] = 42\n" -">>> d\n" -"{'one': 42, 'two': 2, 'three': 3, 'four': 4}\n" -">>> del d[\"two\"]\n" -">>> d[\"two\"] = None\n" -">>> d\n" -"{'one': 42, 'three': 3, 'four': 4, 'two': None}" - -#: library/stdtypes.rst:4839 -msgid "" -"Dictionary order is guaranteed to be insertion order. This behavior was an " -"implementation detail of CPython from 3.6." -msgstr "" -"Η σειρά λεξικού είναι εγγυημένη ότι είναι η σειρά εισαγωγής. Αυτή η " -"συμπεριφορά ήταν μια λεπτομέρεια υλοποίηση της CPython από την έκδοση 3.6." - -#: library/stdtypes.rst:4843 +#: library/stdtypes.rst:5036 msgid "Dictionaries and dictionary views are reversible. ::" msgstr "Τα λεξικά και οι όψεις λεξικών είναι αναστρέψιμες. ::" -#: library/stdtypes.rst:4845 +#: library/stdtypes.rst:5038 msgid "" ">>> d = {\"one\": 1, \"two\": 2, \"three\": 3, \"four\": 4}\n" ">>> d\n" @@ -8517,11 +8762,11 @@ msgstr "" ">>> list(reversed(d.items()))\n" "[('four', 4), ('three', 3), ('two', 2), ('one', 1)]" -#: library/stdtypes.rst:4855 +#: library/stdtypes.rst:5048 msgid "Dictionaries are now reversible." msgstr "Τα λεξικά είναι πλέον αναστρέψιμα." -#: library/stdtypes.rst:4860 +#: library/stdtypes.rst:5053 msgid "" ":class:`types.MappingProxyType` can be used to create a read-only view of a :" "class:`dict`." @@ -8529,11 +8774,11 @@ msgstr "" "Η :class:`types.MappingProxyType` μπορεί να χρησιμοποιηθεί για τη δημιουργία " "μιας όψης μόνο για ανάγνωση μιας :class:`dict`." -#: library/stdtypes.rst:4867 +#: library/stdtypes.rst:5060 msgid "Dictionary view objects" msgstr "Αντικείμενα όψης λεξικού" -#: library/stdtypes.rst:4869 +#: library/stdtypes.rst:5062 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 " @@ -8545,7 +8790,7 @@ msgstr "" "Παρέχουν μια δυναμική όψη στις εγγραφές του λεξικού, που σημαίνει ότι όταν " "αλλάζει το λεξικό, η όψη αντικατοπτρίζει αυτές τις αλλαγές." -#: library/stdtypes.rst:4874 +#: library/stdtypes.rst:5067 msgid "" "Dictionary views can be iterated over to yield their respective data, and " "support membership tests:" @@ -8553,11 +8798,11 @@ msgstr "" "Οι όψεις λεξικού μπορούν να γίνουν iterate για την απόδοση των αντίστοιχων " "δεδομένων τους και την υποστήριξη ελέγχων για το αν είναι μέρος του:" -#: library/stdtypes.rst:4879 +#: library/stdtypes.rst:5072 msgid "Return the number of entries in the dictionary." msgstr "Επιστρέφει τον αριθμό των καταχωρήσεων στο λεξικό." -#: library/stdtypes.rst:4883 +#: library/stdtypes.rst:5076 msgid "" "Return an iterator over the keys, values or items (represented as tuples of " "``(key, value)``) in the dictionary." @@ -8565,7 +8810,7 @@ msgstr "" "Επιστρέφει έναν iterator πάνω στα κλειδιά, τις τιμές ή τα στοιχεία (που " "αντιπροσωπεύονται ως πλειάδες (tuples) του ``(key, value)`` στο λεξικό." -#: library/stdtypes.rst:4886 +#: library/stdtypes.rst:5079 msgid "" "Keys and values are iterated over in insertion order. This allows the " "creation of ``(value, key)`` pairs using :func:`zip`: ``pairs = zip(d." @@ -8578,7 +8823,7 @@ msgstr "" "δημιουργήσετε την ίδια λίστα είναι ``pairs = [(v, k) for (k, v) in d." "items()]``." -#: library/stdtypes.rst:4891 +#: library/stdtypes.rst:5084 msgid "" "Iterating views while adding or deleting entries in the dictionary may raise " "a :exc:`RuntimeError` or fail to iterate over all entries." @@ -8587,11 +8832,11 @@ msgstr "" "μπορεί να κάνει raise μια :exc:`RuntimeError` ή να αποτύχει το iterate σε " "όλες τις καταχωρήσεις." -#: library/stdtypes.rst:4894 +#: library/stdtypes.rst:5087 msgid "Dictionary order is guaranteed to be insertion order." msgstr "Η σειρά λεξικού είναι εγγυημένη σειρά εισαγωγής." -#: library/stdtypes.rst:4899 +#: library/stdtypes.rst:5092 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)." @@ -8600,7 +8845,7 @@ msgstr "" "ή τα στοιχεία του υποκείμενου λεξικού (στην τελευταία περίπτωση, το *x* θα " "πρέπει να είναι μια ``(key, value)`` πλειάδα (tuple))." -#: library/stdtypes.rst:4904 +#: library/stdtypes.rst:5097 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." @@ -8609,11 +8854,11 @@ msgstr "" "στοιχεία του λεξικού. Η όψη θα γίνει iterate με την αντίστροφη σειρά από την " "εισαγωγή." -#: library/stdtypes.rst:4907 +#: library/stdtypes.rst:5100 msgid "Dictionary views are now reversible." msgstr "Οι όψεις λεξικού είναι πλέον αναστρέψιμες." -#: library/stdtypes.rst:4912 +#: library/stdtypes.rst:5105 msgid "" "Return a :class:`types.MappingProxyType` that wraps the original dictionary " "to which the view refers." @@ -8621,7 +8866,7 @@ msgstr "" "Επιστρέφει μια :class:`types.MappingProxyType` που αναδιπλώνει το αρχικό " "λεξικό στο οποίο αναφέρεται η όψη." -#: library/stdtypes.rst:4917 +#: library/stdtypes.rst:5110 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 " @@ -8642,16 +8887,16 @@ msgstr "" "διαλειτουργήσει με άλλα σύνολα. (Οι όψεις τιμών δεν αντιμετωπίζονται ως " "σύνολο, καθώς οι καταχωρίσεις δεν είναι γενικά μοναδικές.) Για όψεις που " "μοιάζουν με σύνολο, όλες οι λειτουργίες που ορίζονται για την αφηρημένη " -"βασική κλάση :class:`collections.abc.Set` είναι διαθέσιμες (για " -"παράδειγμα, )``==``, ``<``, or ``^``). Κατά τη χρήση τελεστών συνόλου, οι " -"όψεις που μοιάζουν με σύνολο δέχονται οποιοδήποτε iterable ως άλλο τελεστή, " -"σε αντίθεση με τα σύνολα που δέχονται μόνο σύνολα ως είσοδο." +"βασική κλάση :class:`collections.abc.Set` είναι διαθέσιμες (για παράδειγμα, " +"``==``, ``<``, ή ``^``). Κατά τη χρήση τελεστών συνόλου, οι όψεις που " +"μοιάζουν με σύνολο δέχονται οποιοδήποτε iterable ως άλλο τελεστή, σε " +"αντίθεση με τα σύνολα που δέχονται μόνο σύνολα ως είσοδο." -#: library/stdtypes.rst:4929 +#: library/stdtypes.rst:5122 msgid "An example of dictionary view usage::" msgstr "Ένα παράδειγμα χρήσης όψης λεξικού::" -#: library/stdtypes.rst:4931 +#: library/stdtypes.rst:5124 msgid "" ">>> dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500}\n" ">>> keys = dishes.keys()\n" @@ -8729,11 +8974,11 @@ msgstr "" ">>> values.mapping['spam']\n" "500" -#: library/stdtypes.rst:4973 +#: library/stdtypes.rst:5166 msgid "Context Manager Types" msgstr "Τύποι Διαχείρισης Περιεχομένου" -#: library/stdtypes.rst:4980 +#: library/stdtypes.rst:5173 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 " @@ -8747,7 +8992,7 @@ msgstr "" "εισάγεται πριν από την εκτέλεση του σώματος της δήλωσης και να κάνει έξοδο " "όταν τερματιστεί η δήλωση:" -#: library/stdtypes.rst:4988 +#: library/stdtypes.rst:5181 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 " @@ -8759,7 +9004,7 @@ msgstr "" "επιστρέφεται από αυτήν την μέθοδο είναι δεσμευμένη στο αναγνωριστικό στην " "πρόταση :keyword:`!as` των δηλώσεων :keyword:`with` διαχείρισης περιεχομένου." -#: library/stdtypes.rst:4993 +#: library/stdtypes.rst:5186 msgid "" "An example of a context manager that returns itself is a :term:`file " "object`. File objects return themselves from __enter__() to allow :func:" @@ -8770,7 +9015,7 @@ msgstr "" "__enter__() για να επιτρέψουν στο :func:`open` να χρησιμοποιηθεί ως έκφραση " "περιεχομένου σε μια δήλωση :keyword:`with`." -#: library/stdtypes.rst:4997 +#: library/stdtypes.rst:5190 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 " @@ -8787,7 +9032,7 @@ msgstr "" "πλαίσιο στο σώμα της δήλωσης :keyword:`with`, χωρίς να επηρεάζεται ο κώδικας " "εκτός της δήλωσης :keyword:`!with`." -#: library/stdtypes.rst:5007 +#: library/stdtypes.rst:5200 msgid "" "Exit the runtime context and return a Boolean flag indicating if any " "exception that occurred should be suppressed. If an exception occurred while " @@ -8802,7 +9047,7 @@ msgstr "" "και τις πληροφορίες ανίχνευσης. Διαφορετικά, και τα τρία ορίσματα είναι " "``None``." -#: library/stdtypes.rst:5012 +#: library/stdtypes.rst:5205 msgid "" "Returning a true value from this method will cause the :keyword:`with` " "statement to suppress the exception and continue execution with the " @@ -8820,7 +9065,7 @@ msgstr "" "μεθόδου θα αντικαταστήσουν κάθε εξαίρεση που προέκυψε στο σώμα της δήλωσης :" "keyword:`!with`." -#: library/stdtypes.rst:5019 +#: library/stdtypes.rst:5212 msgid "" "The exception passed in should never be reraised explicitly - instead, this " "method should return a false value to indicate that the method completed " @@ -8835,7 +9080,7 @@ msgstr "" "περιεχομένου να εντοπίζει εύκολα εάν μια μέθοδος :meth:`~object.__exit__` " "έχει πράγματι αποτύχει." -#: library/stdtypes.rst:5025 +#: library/stdtypes.rst:5218 msgid "" "Python defines several context managers to support easy thread " "synchronisation, prompt closure of files or other objects, and simpler " @@ -8850,7 +9095,7 @@ msgstr "" "τους πρωτοκόλλου διαχείρισης περιεχομένου. Δείτε το module :mod:`contextlib` " "για μερικά παραδείγματα." -#: library/stdtypes.rst:5031 +#: library/stdtypes.rst:5224 msgid "" "Python's :term:`generator`\\s and the :class:`contextlib.contextmanager` " "decorator provide a convenient way to implement these protocols. If a " @@ -8867,7 +9112,7 @@ msgstr "" "__enter__` και :meth:`~contextmanager.__exit__`, αντί του iterator που " "παράγεται από μια undecorated συνάρτηση γεννήτριας." -#: library/stdtypes.rst:5038 +#: library/stdtypes.rst:5231 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 " @@ -8882,7 +9127,7 @@ msgstr "" "της ρύθμισης στο πλαίσιο του χρόνου εκτέλεσης, η επιβάρυνση μιας απλής " "αναζήτησης κλάσης λεξικού είναι αμελητέα." -#: library/stdtypes.rst:5046 +#: library/stdtypes.rst:5239 msgid "" "Type Annotation Types --- :ref:`Generic Alias `, :ref:" "`Union `" @@ -8890,7 +9135,7 @@ msgstr "" "Τύποι Annotation τύπου --- :ref:`Generic Alias `, :ref:" "`Union `" -#: library/stdtypes.rst:5051 +#: library/stdtypes.rst:5244 msgid "" "The core built-in types for :term:`type annotations ` are :ref:" "`Generic Alias ` and :ref:`Union `." @@ -8899,11 +9144,11 @@ msgstr "" "είναι :ref:`Generic Alias ` και :ref:`Union `." -#: library/stdtypes.rst:5058 +#: library/stdtypes.rst:5251 msgid "Generic Alias Type" msgstr "Τύπος Generic Alias" -#: library/stdtypes.rst:5064 +#: library/stdtypes.rst:5257 msgid "" "``GenericAlias`` objects are generally created by :ref:`subscripting " "` a class. They are most often used with :ref:`container " @@ -8920,7 +9165,7 @@ msgstr "" "Τα αντικείμενα ``GenericAlias`` προορίζονται κυρίως για χρήση με :term:`type " "annotations `." -#: library/stdtypes.rst:5074 +#: library/stdtypes.rst:5267 msgid "" "It is generally only possible to subscript a class if the class implements " "the special method :meth:`~object.__class_getitem__`." @@ -8928,7 +9173,7 @@ msgstr "" "Γενικά είναι δυνατή η εγγραφή μιας κλάσης μόνο εάν η κλάση εφαρμόζει την " "ειδική μέθοδο :meth:`~object.__class_getitem__`." -#: library/stdtypes.rst:5077 +#: library/stdtypes.rst:5270 msgid "" "A ``GenericAlias`` object acts as a proxy for a :term:`generic type`, " "implementing *parameterized generics*." @@ -8936,7 +9181,7 @@ msgstr "" "Ένα αντικείμενο ``GenericAlias`` λειτουργεί ως διακομιστής μεσολάβησης " "(proxy) για έναν :term:`generic type`, υλοποιώντας *parameterized generics*." -#: library/stdtypes.rst:5080 +#: library/stdtypes.rst:5273 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 " @@ -8951,7 +9196,7 @@ msgstr "" "υποδηλώσει ένα :class:`set` στο οποίο όλα τα στοιχεία είναι τύπου :class:" "`bytes`." -#: library/stdtypes.rst:5086 +#: library/stdtypes.rst:5279 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 " @@ -8966,7 +9211,7 @@ msgstr "" "expressions ` μπορούν να χρησιμοποιηθούν τόσο στον τύπο δεδομένων :class:" "`str` όσο και στον τύπο δεδομένων :class:`bytes`:" -#: library/stdtypes.rst:5092 +#: library/stdtypes.rst:5285 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 " @@ -8979,7 +9224,7 @@ msgstr "" "αναπαραστήσουμε αυτό το είδος αντικειμένου σε σχολιασμούς τύπου με το " "``GenericAlias`` ``re.Match[str]``." -#: library/stdtypes.rst:5098 +#: library/stdtypes.rst:5291 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." @@ -8994,7 +9239,7 @@ msgstr "" "ποικιλία αντικειμένων :ref:`re.Match ` με το ``re." "Match[bytes]``." -#: library/stdtypes.rst:5104 +#: library/stdtypes.rst:5297 msgid "" "``GenericAlias`` objects are instances of the class :class:`types." "GenericAlias`, which can also be used to create ``GenericAlias`` objects " @@ -9004,7 +9249,7 @@ msgstr "" "GenericAlias`, τα οποία μπορούν επίσης να χρησιμοποιηθούν για την δημιουργία " "αντικειμένων ``GenericAlias`` απευθείας." -#: library/stdtypes.rst:5110 +#: library/stdtypes.rst:5303 msgid "" "Creates a ``GenericAlias`` representing a type ``T`` parameterized by types " "*X*, *Y*, and more depending on the ``T`` used. For example, a function " @@ -9015,7 +9260,7 @@ msgstr "" "χρησιμοποιείται. Για παράδειγμα, μια συνάρτηση που αναμένει μια :class:" "`list` που περιέχει στοιχεία της :class:`float`::" -#: library/stdtypes.rst:5115 +#: library/stdtypes.rst:5308 msgid "" "def average(values: list[float]) -> float:\n" " return sum(values) / len(values)" @@ -9023,7 +9268,7 @@ msgstr "" "def average(values: list[float]) -> float:\n" " return sum(values) / len(values)" -#: library/stdtypes.rst:5118 +#: library/stdtypes.rst:5311 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 " @@ -9036,7 +9281,7 @@ msgstr "" "παράδειγμα, η συνάρτηση αναμένει ένα ``dict`` με κλειδιά τύπου :class:`str` " "και τιμές τύπου :class:`int`::" -#: library/stdtypes.rst:5123 +#: library/stdtypes.rst:5316 msgid "" "def send_post_request(url: str, body: dict[str, int]) -> None:\n" " ..." @@ -9044,7 +9289,7 @@ msgstr "" "def send_post_request(url: str, body: dict[str, int]) -> None:\n" " ..." -#: library/stdtypes.rst:5126 +#: library/stdtypes.rst:5319 msgid "" "The builtin functions :func:`isinstance` and :func:`issubclass` do not " "accept ``GenericAlias`` types for their second argument::" @@ -9053,7 +9298,7 @@ msgstr "" "`issubclass` δεν δέχονται τους τύπους ``GenericAlias`` για το δεύτερο όρισμά " "τους::" -#: library/stdtypes.rst:5129 +#: library/stdtypes.rst:5322 msgid "" ">>> isinstance([1, 2], list[str])\n" "Traceback (most recent call last):\n" @@ -9065,7 +9310,7 @@ msgstr "" " File \"\", line 1, in \n" "TypeError: isinstance() argument 2 cannot be a parameterized generic" -#: library/stdtypes.rst:5134 +#: library/stdtypes.rst:5327 msgid "" "The Python runtime does not enforce :term:`type annotations `. " "This extends to generic types and their type parameters. When creating a " @@ -9080,7 +9325,7 @@ msgstr "" "τους. Για παράδειγμα, ο ακόλουθος κώδικας αποθαρρύνεται, αλλά θα εκτελεστεί " "χωρίς σφάλματα::" -#: library/stdtypes.rst:5140 +#: library/stdtypes.rst:5333 msgid "" ">>> t = list[str]\n" ">>> t([1, 2, 3])\n" @@ -9090,7 +9335,7 @@ msgstr "" ">>> t([1, 2, 3])\n" "[1, 2, 3]" -#: library/stdtypes.rst:5144 +#: library/stdtypes.rst:5337 msgid "" "Furthermore, parameterized generics erase type parameters during object " "creation::" @@ -9098,7 +9343,7 @@ msgstr "" "Επιπλέον, τα παραμετροποιημένα generics διαγράφουν τις παραμέτρους τύπου " "κατά τη δημιουργία αντικειμένου::" -#: library/stdtypes.rst:5147 +#: library/stdtypes.rst:5340 msgid "" ">>> t = list[str]\n" ">>> type(t)\n" @@ -9116,7 +9361,7 @@ msgstr "" ">>> type(l)\n" "" -#: library/stdtypes.rst:5155 +#: library/stdtypes.rst:5348 msgid "" "Calling :func:`repr` or :func:`str` on a generic shows the parameterized " "type::" @@ -9124,7 +9369,7 @@ msgstr "" "Η κλήση :func:`repr` ή :func:`str` σε ένα generic δείχνει τον " "παραμετροποιημένο τύπο::" -#: library/stdtypes.rst:5157 +#: library/stdtypes.rst:5350 msgid "" ">>> repr(list[int])\n" "'list[int]'\n" @@ -9138,7 +9383,7 @@ msgstr "" ">>> str(list[int])\n" "'list[int]'" -#: library/stdtypes.rst:5163 +#: library/stdtypes.rst:5356 msgid "" "The :meth:`~object.__getitem__` method of generic containers will raise an " "exception to disallow mistakes like ``dict[str][str]``::" @@ -9146,7 +9391,7 @@ msgstr "" "Η μέθοδος :meth:`~object.__getitem__` των generic containers θα κάνει raise " "μια εξαίρεση για την απαγόρευση λαθών όπως ``dict[str][str]``::" -#: library/stdtypes.rst:5166 +#: library/stdtypes.rst:5359 msgid "" ">>> dict[str][str]\n" "Traceback (most recent call last):\n" @@ -9158,7 +9403,7 @@ msgstr "" " ...\n" "TypeError: dict[str] is not a generic class" -#: library/stdtypes.rst:5171 +#: library/stdtypes.rst:5364 msgid "" "However, such expressions are valid when :ref:`type variables ` " "are used. The index must have as many elements as there are type variable " @@ -9169,7 +9414,7 @@ msgstr "" "στοιχεία όσα και τα στοιχεία μεταβλητής τύπου στο αντικείμενο " "``GenericAlias`` :attr:`~genericalias.__args__`. ::" -#: library/stdtypes.rst:5175 +#: library/stdtypes.rst:5368 msgid "" ">>> from typing import TypeVar\n" ">>> Y = TypeVar('Y')\n" @@ -9181,11 +9426,11 @@ msgstr "" ">>> dict[str, Y][int]\n" "dict[str, int]" -#: library/stdtypes.rst:5182 +#: library/stdtypes.rst:5375 msgid "Standard Generic Classes" msgstr "Τυπικές Γενικές Κλάσεις" -#: library/stdtypes.rst:5184 +#: library/stdtypes.rst:5377 msgid "" "The following standard library classes support parameterized generics. This " "list is non-exhaustive." @@ -9193,245 +9438,245 @@ msgstr "" "Οι ακόλουθες τυπικές κλάσεις βιβλιοθήκης υποστηρίζουν γενικά " "παραμετροποιημένα. Αυτή η λίστα δεν είναι εξαντλητική." -#: library/stdtypes.rst:5187 +#: library/stdtypes.rst:5380 msgid ":class:`tuple`" msgstr ":class:`tuple`" -#: library/stdtypes.rst:5188 +#: library/stdtypes.rst:5381 msgid ":class:`list`" msgstr ":class:`list`" -#: library/stdtypes.rst:5189 +#: library/stdtypes.rst:5382 msgid ":class:`dict`" msgstr ":class:`dict`" -#: library/stdtypes.rst:5190 +#: library/stdtypes.rst:5383 msgid ":class:`set`" msgstr ":class:`set`" -#: library/stdtypes.rst:5191 +#: library/stdtypes.rst:5384 msgid ":class:`frozenset`" msgstr ":class:`frozenset`" -#: library/stdtypes.rst:5192 +#: library/stdtypes.rst:5385 msgid ":class:`type`" msgstr ":class:`type`" -#: library/stdtypes.rst:5193 +#: library/stdtypes.rst:5386 msgid ":class:`asyncio.Future`" msgstr ":class:`asyncio.Future`" -#: library/stdtypes.rst:5194 +#: library/stdtypes.rst:5387 msgid ":class:`asyncio.Task`" msgstr ":class:`asyncio.Task`" -#: library/stdtypes.rst:5195 +#: library/stdtypes.rst:5388 msgid ":class:`collections.deque`" msgstr ":class:`collections.deque`" -#: library/stdtypes.rst:5196 +#: library/stdtypes.rst:5389 msgid ":class:`collections.defaultdict`" msgstr ":class:`collections.defaultdict`" -#: library/stdtypes.rst:5197 +#: library/stdtypes.rst:5390 msgid ":class:`collections.OrderedDict`" msgstr ":class:`collections.OrderedDict`" -#: library/stdtypes.rst:5198 +#: library/stdtypes.rst:5391 msgid ":class:`collections.Counter`" msgstr ":class:`collections.Counter`" -#: library/stdtypes.rst:5199 +#: library/stdtypes.rst:5392 msgid ":class:`collections.ChainMap`" msgstr ":class:`collections.ChainMap`" -#: library/stdtypes.rst:5200 +#: library/stdtypes.rst:5393 msgid ":class:`collections.abc.Awaitable`" msgstr ":class:`collections.abc.Awaitable`" -#: library/stdtypes.rst:5201 +#: library/stdtypes.rst:5394 msgid ":class:`collections.abc.Coroutine`" msgstr ":class:`collections.abc.Coroutine`" -#: library/stdtypes.rst:5202 +#: library/stdtypes.rst:5395 msgid ":class:`collections.abc.AsyncIterable`" msgstr ":class:`collections.abc.AsyncIterable`" -#: library/stdtypes.rst:5203 +#: library/stdtypes.rst:5396 msgid ":class:`collections.abc.AsyncIterator`" msgstr ":class:`collections.abc.AsyncIterator`" -#: library/stdtypes.rst:5204 +#: library/stdtypes.rst:5397 msgid ":class:`collections.abc.AsyncGenerator`" msgstr ":class:`collections.abc.AsyncGenerator`" -#: library/stdtypes.rst:5205 +#: library/stdtypes.rst:5398 msgid ":class:`collections.abc.Iterable`" msgstr ":class:`collections.abc.Iterable`" -#: library/stdtypes.rst:5206 +#: library/stdtypes.rst:5399 msgid ":class:`collections.abc.Iterator`" msgstr ":class:`collections.abc.Iterator`" -#: library/stdtypes.rst:5207 +#: library/stdtypes.rst:5400 msgid ":class:`collections.abc.Generator`" msgstr ":class:`collections.abc.Generator`" -#: library/stdtypes.rst:5208 +#: library/stdtypes.rst:5401 msgid ":class:`collections.abc.Reversible`" msgstr ":class:`collections.abc.Reversible`" -#: library/stdtypes.rst:5209 +#: library/stdtypes.rst:5402 msgid ":class:`collections.abc.Container`" msgstr ":class:`collections.abc.Container`" -#: library/stdtypes.rst:5210 +#: library/stdtypes.rst:5403 msgid ":class:`collections.abc.Collection`" msgstr ":class:`collections.abc.Collection`" -#: library/stdtypes.rst:5211 +#: library/stdtypes.rst:5404 msgid ":class:`collections.abc.Callable`" msgstr ":class:`collections.abc.Callable`" -#: library/stdtypes.rst:5212 +#: library/stdtypes.rst:5405 msgid ":class:`collections.abc.Set`" msgstr ":class:`collections.abc.Set`" -#: library/stdtypes.rst:5213 +#: library/stdtypes.rst:5406 msgid ":class:`collections.abc.MutableSet`" msgstr ":class:`collections.abc.MutableSet`" -#: library/stdtypes.rst:5214 +#: library/stdtypes.rst:5407 msgid ":class:`collections.abc.Mapping`" msgstr ":class:`collections.abc.Mapping`" -#: library/stdtypes.rst:5215 +#: library/stdtypes.rst:5408 msgid ":class:`collections.abc.MutableMapping`" msgstr ":class:`collections.abc.MutableMapping`" -#: library/stdtypes.rst:5216 +#: library/stdtypes.rst:5409 msgid ":class:`collections.abc.Sequence`" msgstr ":class:`collections.abc.Sequence`" -#: library/stdtypes.rst:5217 +#: library/stdtypes.rst:5410 msgid ":class:`collections.abc.MutableSequence`" msgstr ":class:`collections.abc.MutableSequence`" -#: library/stdtypes.rst:5218 +#: library/stdtypes.rst:5411 msgid ":class:`collections.abc.ByteString`" msgstr ":class:`collections.abc.ByteString`" -#: library/stdtypes.rst:5219 +#: library/stdtypes.rst:5412 msgid ":class:`collections.abc.MappingView`" msgstr ":class:`collections.abc.MappingView`" -#: library/stdtypes.rst:5220 +#: library/stdtypes.rst:5413 msgid ":class:`collections.abc.KeysView`" msgstr ":class:`collections.abc.KeysView`" -#: library/stdtypes.rst:5221 +#: library/stdtypes.rst:5414 msgid ":class:`collections.abc.ItemsView`" msgstr ":class:`collections.abc.ItemsView`" -#: library/stdtypes.rst:5222 +#: library/stdtypes.rst:5415 msgid ":class:`collections.abc.ValuesView`" msgstr ":class:`collections.abc.ValuesView`" -#: library/stdtypes.rst:5223 +#: library/stdtypes.rst:5416 msgid ":class:`contextlib.AbstractContextManager`" msgstr ":class:`contextlib.AbstractContextManager`" -#: library/stdtypes.rst:5224 +#: library/stdtypes.rst:5417 msgid ":class:`contextlib.AbstractAsyncContextManager`" msgstr ":class:`contextlib.AbstractAsyncContextManager`" -#: library/stdtypes.rst:5225 +#: library/stdtypes.rst:5418 msgid ":class:`dataclasses.Field`" msgstr ":class:`dataclasses.Field`" -#: library/stdtypes.rst:5226 +#: library/stdtypes.rst:5419 msgid ":class:`functools.cached_property`" msgstr ":class:`functools.cached_property`" -#: library/stdtypes.rst:5227 +#: library/stdtypes.rst:5420 msgid ":class:`functools.partialmethod`" msgstr ":class:`functools.partialmethod`" -#: library/stdtypes.rst:5228 +#: library/stdtypes.rst:5421 msgid ":class:`os.PathLike`" msgstr ":class:`os.PathLike`" -#: library/stdtypes.rst:5229 +#: library/stdtypes.rst:5422 msgid ":class:`queue.LifoQueue`" msgstr ":class:`queue.LifoQueue`" -#: library/stdtypes.rst:5230 +#: library/stdtypes.rst:5423 msgid ":class:`queue.Queue`" msgstr ":class:`queue.Queue`" -#: library/stdtypes.rst:5231 +#: library/stdtypes.rst:5424 msgid ":class:`queue.PriorityQueue`" msgstr ":class:`queue.PriorityQueue`" -#: library/stdtypes.rst:5232 +#: library/stdtypes.rst:5425 msgid ":class:`queue.SimpleQueue`" msgstr ":class:`queue.SimpleQueue`" -#: library/stdtypes.rst:5233 +#: library/stdtypes.rst:5426 msgid ":ref:`re.Pattern `" msgstr ":ref:`re.Pattern `" -#: library/stdtypes.rst:5234 +#: library/stdtypes.rst:5427 msgid ":ref:`re.Match `" msgstr ":ref:`re.Match `" -#: library/stdtypes.rst:5235 +#: library/stdtypes.rst:5428 msgid ":class:`shelve.BsdDbShelf`" msgstr ":class:`shelve.BsdDbShelf`" -#: library/stdtypes.rst:5236 +#: library/stdtypes.rst:5429 msgid ":class:`shelve.DbfilenameShelf`" msgstr ":class:`shelve.DbfilenameShelf`" -#: library/stdtypes.rst:5237 +#: library/stdtypes.rst:5430 msgid ":class:`shelve.Shelf`" msgstr ":class:`shelve.Shelf`" -#: library/stdtypes.rst:5238 +#: library/stdtypes.rst:5431 msgid ":class:`types.MappingProxyType`" msgstr ":class:`types.MappingProxyType`" -#: library/stdtypes.rst:5239 +#: library/stdtypes.rst:5432 msgid ":class:`weakref.WeakKeyDictionary`" msgstr ":class:`weakref.WeakKeyDictionary`" -#: library/stdtypes.rst:5240 +#: library/stdtypes.rst:5433 msgid ":class:`weakref.WeakMethod`" msgstr ":class:`weakref.WeakMethod`" -#: library/stdtypes.rst:5241 +#: library/stdtypes.rst:5434 msgid ":class:`weakref.WeakSet`" msgstr ":class:`weakref.WeakSet`" -#: library/stdtypes.rst:5242 +#: library/stdtypes.rst:5435 msgid ":class:`weakref.WeakValueDictionary`" msgstr ":class:`weakref.WeakValueDictionary`" -#: library/stdtypes.rst:5247 +#: library/stdtypes.rst:5440 msgid "Special Attributes of ``GenericAlias`` objects" msgstr "Ειδικά Χαρακτηριστικά αντικειμένων ``GenericAlias``" -#: library/stdtypes.rst:5249 +#: library/stdtypes.rst:5442 msgid "All parameterized generics implement special read-only attributes." msgstr "" "Όλα τα παραμετροποιημένα generics εφαρμόζουν ειδικά χαρακτηριστικά μόνο για " "ανάγνωση." -#: library/stdtypes.rst:5253 +#: library/stdtypes.rst:5446 msgid "This attribute points at the non-parameterized generic class::" msgstr "Αυτό το χαρακτηριστικό δείχνει στη μη παραμετροποιημένη γενική κλάση::" -#: library/stdtypes.rst:5255 +#: library/stdtypes.rst:5448 msgid "" ">>> list[int].__origin__\n" "" @@ -9439,7 +9684,7 @@ msgstr "" ">>> list[int].__origin__\n" "" -#: library/stdtypes.rst:5261 +#: library/stdtypes.rst:5454 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 " @@ -9449,7 +9694,7 @@ msgstr "" "τύπων που μεταβιβάστηκαν στο αρχικό :meth:`~object.__class_getitem__` της " "generic κλάσης::" -#: library/stdtypes.rst:5265 +#: library/stdtypes.rst:5458 msgid "" ">>> dict[str, list[int]].__args__\n" "(, list[int])" @@ -9457,7 +9702,7 @@ msgstr "" ">>> dict[str, list[int]].__args__\n" "(, list[int])" -#: library/stdtypes.rst:5271 +#: library/stdtypes.rst:5464 msgid "" "This attribute is a lazily computed tuple (possibly empty) of unique type " "variables found in ``__args__``::" @@ -9465,7 +9710,7 @@ msgstr "" "Αυτό το χαρακτηριστικό είναι μία νωχελικά υπολογισμένη πλειάδα (tuple) " "(πιθανώς κενή) μεταβλητών μοναδικού τύπου που βρίσκονται στο ``__args__``::" -#: library/stdtypes.rst:5274 +#: library/stdtypes.rst:5467 msgid "" ">>> from typing import TypeVar\n" "\n" @@ -9479,7 +9724,7 @@ msgstr "" ">>> list[T].__parameters__\n" "(~T,)" -#: library/stdtypes.rst:5282 +#: library/stdtypes.rst:5475 msgid "" "A ``GenericAlias`` object with :class:`typing.ParamSpec` parameters may not " "have correct ``__parameters__`` after substitution because :class:`typing." @@ -9490,7 +9735,7 @@ msgstr "" "επειδή το :class:`typing.ParamSpec` προορίζεται κυρίως για έλεγχο στατικού " "τύπου." -#: library/stdtypes.rst:5289 +#: library/stdtypes.rst:5482 msgid "" "A boolean that is true if the alias has been unpacked using the ``*`` " "operator (see :data:`~typing.TypeVarTuple`)." @@ -9498,19 +9743,19 @@ msgstr "" "Ένα boolean που ισχύει αν το alias έχει αποσυμπιεστεί χρησιμοποιώντας τον " "τελεστή ``*`` (δείτε το :data:`~typing.TypeVarTuple`)." -#: library/stdtypes.rst:5297 +#: library/stdtypes.rst:5490 msgid ":pep:`484` - Type Hints" msgstr ":pep:`484` - Type Hints" -#: library/stdtypes.rst:5298 +#: library/stdtypes.rst:5491 msgid "Introducing Python's framework for type annotations." msgstr "Παρουσιάζοντας το framework της Python για τύπους annotations." -#: library/stdtypes.rst:5300 +#: library/stdtypes.rst:5493 msgid ":pep:`585` - Type Hinting Generics In Standard Collections" msgstr ":pep:`585` - Τύπος Generics Συμβουλών στις Τυπικές Συλλογές" -#: library/stdtypes.rst:5301 +#: library/stdtypes.rst:5494 msgid "" "Introducing the ability to natively parameterize standard-library classes, " "provided they implement the special class method :meth:`~object." @@ -9520,7 +9765,7 @@ msgstr "" "βιβλιοθήκης, υπό την προϋπόθεση ότι εφαρμόζουν τη μέθοδο ειδικής κλάσης :" "meth:`~object.__class_getitem__`." -#: library/stdtypes.rst:5305 +#: library/stdtypes.rst:5498 msgid "" ":ref:`Generics`, :ref:`user-defined generics ` and :" "class:`typing.Generic`" @@ -9528,7 +9773,7 @@ msgstr "" "Τα :ref:`Generics`, :ref:`user-defined generics ` " "και :class:`typing.Generic`" -#: library/stdtypes.rst:5306 +#: library/stdtypes.rst:5499 msgid "" "Documentation on how to implement generic classes that can be parameterized " "at runtime and understood by static type-checkers." @@ -9537,11 +9782,11 @@ msgstr "" "παραμετροποιηθούν κατά το χρόνο εκτέλεσης και να κατανοηθούν από στατικούς " "ελεγκτές τύπων." -#: library/stdtypes.rst:5315 +#: library/stdtypes.rst:5508 msgid "Union Type" msgstr "Τύπος Ένωσης" -#: library/stdtypes.rst:5321 +#: library/stdtypes.rst:5514 msgid "" "A union object holds the value of the ``|`` (bitwise or) operation on " "multiple :ref:`type objects `. These types are intended " @@ -9555,7 +9800,7 @@ msgstr "" "έκφραση τύπου ένωσης επιτρέπει την καθαρότερη σύνταξη υπόδειξης σε σύγκριση " "με το :data:`typing.Union`." -#: library/stdtypes.rst:5328 +#: library/stdtypes.rst:5521 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 " @@ -9567,7 +9812,7 @@ msgstr "" "``typing.Union[X, Y]``. Για παράδειγμα, η ακόλουθη συνάρτηση αναμένει ένα " "όρισμα τύπου :class:`int` or :class:`float`::" -#: library/stdtypes.rst:5333 +#: library/stdtypes.rst:5526 msgid "" "def square(number: int | float) -> int | float:\n" " return number ** 2" @@ -9575,7 +9820,7 @@ msgstr "" "def square(number: int | float) -> int | float:\n" " return number ** 2" -#: library/stdtypes.rst:5338 +#: library/stdtypes.rst:5531 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 " @@ -9590,54 +9835,54 @@ msgstr "" "εκτέλεσης. Για ενώσεις που περιλαμβάνουν μπροστινές αναφορές, παρουσιάζει " "ολόκληρη την έκφραση ως συμβολοσειρά, π.χ. ``\"int | Foo\"``." -#: library/stdtypes.rst:5346 +#: library/stdtypes.rst:5539 msgid "" "Union objects can be tested for equality with other union objects. Details:" msgstr "" "Τα αντικείμενα ένωσης μπορούν να ελεγχθούν για ισότητα με άλλα αντικείμενα " "ένωσης. Λεπτομέρειες:" -#: library/stdtypes.rst:5348 +#: library/stdtypes.rst:5541 msgid "Unions of unions are flattened::" msgstr "Οι ενώσεις των ενώσεων ισοπεδώνονται::" -#: library/stdtypes.rst:5350 +#: library/stdtypes.rst:5543 msgid "(int | str) | float == int | str | float" msgstr "(int | str) | float == int | str | float" -#: library/stdtypes.rst:5352 +#: library/stdtypes.rst:5545 msgid "Redundant types are removed::" msgstr "Οι περιττοί τύποι καταργούνται::" -#: library/stdtypes.rst:5354 +#: library/stdtypes.rst:5547 msgid "int | str | int == int | str" msgstr "int | str | int == int | str" -#: library/stdtypes.rst:5356 +#: library/stdtypes.rst:5549 msgid "When comparing unions, the order is ignored::" msgstr "Κατά τη σύγκριση των ενώσεων, η σειρά αγνοείται::" -#: library/stdtypes.rst:5358 +#: library/stdtypes.rst:5551 msgid "int | str == str | int" msgstr "int | str == str | int" -#: library/stdtypes.rst:5360 +#: library/stdtypes.rst:5553 msgid "It is compatible with :data:`typing.Union`::" msgstr "Είναι συμβατό με το :data:`typing.Union`::" -#: library/stdtypes.rst:5362 +#: library/stdtypes.rst:5555 msgid "int | str == typing.Union[int, str]" msgstr "int | str == typing.Union[int, str]" -#: library/stdtypes.rst:5364 +#: library/stdtypes.rst:5557 msgid "Optional types can be spelled as a union with ``None``::" msgstr "Οι προαιρετικοί τύποι μπορούν να γραφτούν ως ένωση με ``None``::" -#: library/stdtypes.rst:5366 +#: library/stdtypes.rst:5559 msgid "str | None == typing.Optional[str]" msgstr "str | None == typing.Optional[str]" -#: library/stdtypes.rst:5371 +#: library/stdtypes.rst:5564 msgid "" "Calls to :func:`isinstance` and :func:`issubclass` are also supported with a " "union object::" @@ -9645,7 +9890,7 @@ msgstr "" "Οι κλήσεις σε :func:`isinstance` και :func:`issubclass` υποστηρίζονται " "επίσης με ένα αντικείμενο ένωσης::" -#: library/stdtypes.rst:5374 +#: library/stdtypes.rst:5567 msgid "" ">>> isinstance(\"\", int | str)\n" "True" @@ -9653,7 +9898,7 @@ msgstr "" ">>> isinstance(\"\", int | str)\n" "True" -#: library/stdtypes.rst:5377 +#: library/stdtypes.rst:5570 msgid "" "However, :ref:`parameterized generics ` in union objects " "cannot be checked::" @@ -9661,7 +9906,7 @@ msgstr "" "Ωστόσο, το :ref:`parameterized generics ` σε αντικείμενα " "ένωσης δεν μπορούν να ελεγχθούν::" -#: library/stdtypes.rst:5380 +#: library/stdtypes.rst:5573 msgid "" ">>> isinstance(1, int | list[int]) # short-circuit evaluation\n" "True\n" @@ -9677,7 +9922,7 @@ msgstr "" " ...\n" "TypeError: isinstance() argument 2 cannot be a parameterized generic" -#: library/stdtypes.rst:5387 +#: library/stdtypes.rst:5580 msgid "" "The user-exposed type for the union object can be accessed from :data:`types." "UnionType` and used for :func:`isinstance` checks. An object cannot be " @@ -9688,7 +9933,7 @@ msgstr "" "ελέγχους :func:`isinstance`. Δεν είναι δυνατή η δημιουργία ενός " "αντικειμένου από τον τύπο::" -#: library/stdtypes.rst:5391 +#: library/stdtypes.rst:5584 msgid "" ">>> import types\n" ">>> isinstance(int | str, types.UnionType)\n" @@ -9706,7 +9951,7 @@ msgstr "" " File \"\", line 1, in \n" "TypeError: cannot create 'types.UnionType' instances" -#: library/stdtypes.rst:5400 +#: library/stdtypes.rst:5593 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 " @@ -9716,7 +9961,7 @@ msgstr "" "υποστηρίξει τη σύνταξη ``X | Y``. Εάν μια μετακλάση υλοποιεί :meth:`!" "__or__`, η Ένωση μπορεί να την παρακάμψει:" -#: library/stdtypes.rst:5404 +#: library/stdtypes.rst:5597 msgid "" ">>> class M(type):\n" "... def __or__(self, other):\n" @@ -9742,16 +9987,16 @@ msgstr "" ">>> int | C\n" "int | C" -#: library/stdtypes.rst:5420 +#: library/stdtypes.rst:5613 msgid ":pep:`604` -- PEP proposing the ``X | Y`` syntax and the Union type." msgstr "" ":pep:`604` -- Το PEP προτείνει τη σύνταξη ``X | Y`` και τον τύπο Ένωση." -#: library/stdtypes.rst:5428 +#: library/stdtypes.rst:5621 msgid "Other Built-in Types" msgstr "Άλλοι Ενσωματωμένοι (built-in) Τύποι" -#: library/stdtypes.rst:5430 +#: library/stdtypes.rst:5623 msgid "" "The interpreter supports several other kinds of objects. Most of these " "support only one or two operations." @@ -9759,11 +10004,11 @@ msgstr "" "Ο διερμηνέας υποστηρίζει πολλά άλλα είδη αντικειμένων. Τα περισσότερα από " "αυτά υποστηρίζουν μόνο μία ή δύο λειτουργίες." -#: library/stdtypes.rst:5437 +#: library/stdtypes.rst:5630 msgid "Modules" msgstr "Modules" -#: library/stdtypes.rst:5439 +#: library/stdtypes.rst:5632 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 " @@ -9781,7 +10026,7 @@ msgstr "" "δεν απαιτεί να υπάρχει ένα αντικείμενο module με το όνομα *foo* αλλά απαιτεί " "έναν (εξωτερικό) *definition* για ένα module που ονομάζεται *foo* κάπου.)" -#: library/stdtypes.rst:5446 +#: library/stdtypes.rst:5639 msgid "" "A special attribute of every module is :attr:`~object.__dict__`. This is the " "dictionary containing the module's symbol table. Modifying this dictionary " @@ -9800,7 +10045,7 @@ msgstr "" "= {}``). Δεν συνίσταται η απευθείας τροποποίηση του :attr:`~object." "__dict__`." -#: library/stdtypes.rst:5454 +#: library/stdtypes.rst:5647 msgid "" "Modules built into the interpreter are written like this: ````. If loaded from a file, they are written as ````. Εάν φορτωθούν από ένα αρχείο, γράφονται ως " "````." -#: library/stdtypes.rst:5462 +#: library/stdtypes.rst:5655 msgid "Classes and Class Instances" msgstr "Κλάσεις και Στιγμιότυπα Κλάσης" -#: library/stdtypes.rst:5464 +#: library/stdtypes.rst:5657 msgid "See :ref:`objects` and :ref:`class` for these." msgstr "Δείτε :ref:`objects` και :ref:`class` για αυτά." -#: library/stdtypes.rst:5470 +#: library/stdtypes.rst:5663 msgid "Functions" msgstr "Συναρτήσεις" -#: library/stdtypes.rst:5472 +#: library/stdtypes.rst:5665 msgid "" "Function objects are created by function definitions. The only operation on " "a function object is to call it: ``func(argument-list)``." @@ -9831,7 +10076,7 @@ msgstr "" "λειτουργία σε ένα αντικείμενο συνάρτησης είναι να το ονομάσουμε: " "``func(argument-list)``." -#: library/stdtypes.rst:5475 +#: library/stdtypes.rst:5668 msgid "" "There are really two flavors of function objects: built-in functions and " "user-defined functions. Both support the same operation (to call the " @@ -9843,28 +10088,28 @@ msgstr "" "υποστηρίζουν την ίδια λειτουργία (για να καλέσετε τη συνάρτηση), αλλά η " "υλοποίηση είναι διαφορετική, εξ ου και οι διαφορετικοί τύποι αντικειμένων." -#: library/stdtypes.rst:5479 +#: library/stdtypes.rst:5672 msgid "See :ref:`function` for more information." msgstr "Δείτε το :ref:`function` για περισσότερες πληροφορίες." -#: library/stdtypes.rst:5485 +#: library/stdtypes.rst:5678 msgid "Methods" msgstr "Μέθοδοι" -#: library/stdtypes.rst:5489 +#: library/stdtypes.rst:5682 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." +"`~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:5494 +#: library/stdtypes.rst:5688 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:" @@ -9887,7 +10132,7 @@ msgstr "" "arg-2, ..., arg-n)`` είναι απολύτως ισοδύναμη με την κλήση του ``m." "__func__(m.__self__, arg-1, arg-2, ..., arg-n)``." -#: library/stdtypes.rst:5505 +#: library/stdtypes.rst:5699 msgid "" "Like :ref:`function objects `, bound method objects " "support getting arbitrary attributes. However, since method attributes are " @@ -9907,7 +10152,7 @@ msgstr "" "χαρακτηριστικό μεθόδου πρέπει να το ορίσετε ρητά στο υποκείμενο αντικείμενο " "συνάρτησης:" -#: library/stdtypes.rst:5513 +#: library/stdtypes.rst:5707 msgid "" ">>> class C:\n" "... def method(self):\n" @@ -9935,15 +10180,15 @@ msgstr "" ">>> c.method.whoami\n" "'my name is method'" -#: library/stdtypes.rst:5528 +#: library/stdtypes.rst:5722 msgid "See :ref:`instance-methods` for more information." msgstr "Δείτε το :ref:`instance-methods` για περισσότερες πληροφορίες." -#: library/stdtypes.rst:5536 +#: library/stdtypes.rst:5730 msgid "Code Objects" msgstr "Αντικείμενα Κώδικα" -#: library/stdtypes.rst:5542 +#: library/stdtypes.rst:5736 msgid "" "Code objects are used by the implementation to represent \"pseudo-compiled\" " "executable Python code such as a function body. They differ from function " @@ -9961,7 +10206,7 @@ msgstr "" "χαρακτηριστικού τους :attr:`~function.__code__`. Δείτε επίσης το module :mod:" "`code`." -#: library/stdtypes.rst:5549 +#: library/stdtypes.rst:5743 msgid "" "Accessing :attr:`~function.__code__` raises an :ref:`auditing event " "` ``object.__getattr__`` with arguments ``obj`` and " @@ -9971,7 +10216,7 @@ msgstr "" "event ` ``object.__getattr__`` με ορίσματα ``obj`` και " "``\"__code__\"``." -#: library/stdtypes.rst:5556 +#: library/stdtypes.rst:5750 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." @@ -9980,15 +10225,15 @@ msgstr "" "(αντί για πηγαία συμβολοσειρά) στις ενσωματωμένες συναρτήσεις :func:`exec` " "ή :func:`eval`." -#: library/stdtypes.rst:5559 +#: library/stdtypes.rst:5753 msgid "See :ref:`types` for more information." msgstr "Δείτε :ref:`types` για περισσότερες πληροφορίες." -#: library/stdtypes.rst:5565 +#: library/stdtypes.rst:5759 msgid "Type Objects" msgstr "Τύποι Αντικειμένων" -#: library/stdtypes.rst:5571 +#: library/stdtypes.rst:5765 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 " @@ -10001,15 +10246,15 @@ msgstr "" "(standard) module :mod:`types` ορίζει ονόματα για όλους τους τυπικούς " "ενσωματωμένους τύπους." -#: library/stdtypes.rst:5576 +#: library/stdtypes.rst:5770 msgid "Types are written like this: ````." msgstr "Οι τύποι γράφονται ως εξής: ````." -#: library/stdtypes.rst:5582 +#: library/stdtypes.rst:5776 msgid "The Null Object" msgstr "Το Αντικείμενο Null" -#: library/stdtypes.rst:5584 +#: library/stdtypes.rst:5778 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 " @@ -10020,36 +10265,99 @@ msgstr "" "μηδενικό αντικείμενο, που ονομάζεται ``None`` (ένα ενσωματωμένο όνομα). Το " "``type(None)()`` παράγει το ίδιο singleton." -#: library/stdtypes.rst:5588 +#: library/stdtypes.rst:5782 msgid "It is written as ``None``." msgstr "Γράφεται ως ``None``." -#: library/stdtypes.rst:5595 +#: library/stdtypes.rst:5789 msgid "The Ellipsis Object" msgstr "Το αντικείμενο Ellipsis" -#: library/stdtypes.rst:5597 +#: library/stdtypes.rst:5791 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)()`` παράγει το singleton :const:`Ellipsis`." -#: library/stdtypes.rst:5602 +#: library/stdtypes.rst:5796 msgid "It is written as ``Ellipsis`` or ``...``." msgstr "Γράφεται ως ``Ellipsis`` ή ``...``." -#: library/stdtypes.rst:5608 +#: library/stdtypes.rst:5798 +msgid "" +"In typical use, ``...`` as the ``Ellipsis`` object appears in a few " +"different places, for instance:" +msgstr "" +"Στην τυπική χρήση, το ``...`` ως αντικείμενο ``Ellipsis`` εμφανίζεται σε " +"μερικά διαφορετικά μέρη, για παράδειγμα:" + +#: library/stdtypes.rst:5801 +msgid "" +"In type annotations, such as :ref:`callable arguments ` or :ref:`tuple elements `." +msgstr "" +"Στους τύπους annotations, όπως :ref:`callable arguments ` ή :ref:`tuple elements `." + +#: library/stdtypes.rst:5804 +msgid "" +"As the body of a function instead of a :ref:`pass statement `." +msgstr "" +"Ως το σώμα μιας συνάρτησης αντί για μια :ref:`pass statement `." + +#: library/stdtypes.rst:5806 +msgid "" +"In third-party libraries, such as `Numpy's slicing and striding `_." +msgstr "" +"Σε βιβλιοθήκες τρίτων, όπως `Numpy's slicing and striding `_." + +#: library/stdtypes.rst:5809 +msgid "" +"Python also uses three dots in ways that are not ``Ellipsis`` objects, for " +"instance:" +msgstr "" +"Η Python επίσης χρησιμοποιεί τρεις τελείες με τρόπους που δεν είναι " +"αντικείμενα ``Ellipsis``, για παράδειγμα:" + +#: library/stdtypes.rst:5811 +msgid "" +"Doctest's :const:`ELLIPSIS `, as a pattern for missing " +"content." +msgstr "" +"Το :const:`ELLIPSIS ` του Doctest, ως πρότυπο για ελλείπον " +"περιεχόμενο." + +#: library/stdtypes.rst:5813 +msgid "" +"The default Python prompt of the :term:`interactive` shell when partial " +"input is incomplete." +msgstr "" +"Η προεπιλεγμένη εντολή της Python του :term:`interactive` shell όταν η " +"μερική είσοδος είναι ελλιπής." + +#: library/stdtypes.rst:5815 +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:5823 msgid "The NotImplemented Object" msgstr "Το NotImplemented Αντικείμενο" -#: library/stdtypes.rst:5610 +#: library/stdtypes.rst:5825 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 " @@ -10062,15 +10370,15 @@ msgstr "" "αντικείμενο :data:`NotImplemented`. Το :code:`type(NotImplemented)()` " "παράγει το στιγμιότυπο singleton." -#: library/stdtypes.rst:5615 +#: library/stdtypes.rst:5830 msgid "It is written as :code:`NotImplemented`." msgstr "Είναι γραμμένο ως :code:`NotImplemented`." -#: library/stdtypes.rst:5621 +#: library/stdtypes.rst:5836 msgid "Internal Objects" msgstr "Εσωτερικά Αντικείμενα" -#: library/stdtypes.rst:5623 +#: library/stdtypes.rst:5838 msgid "" "See :ref:`types` for this information. It describes :ref:`stack frame " "objects `, :ref:`traceback objects `, and " @@ -10080,11 +10388,11 @@ msgstr "" "objects `, :ref:`traceback objects `, και " "αντικείμενα τμηματοποίησης." -#: library/stdtypes.rst:5631 +#: library/stdtypes.rst:5846 msgid "Special Attributes" msgstr "Ειδικά Χαρακτηριστικά" -#: library/stdtypes.rst:5633 +#: library/stdtypes.rst:5848 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:" @@ -10094,14 +10402,14 @@ msgstr "" "διάφορους τύπους αντικειμένων, όπου είναι σχετικά. Ορισμένα από αυτά δεν " "αναφέρονται από την ενσωματωμένη συνάρτηση :func:`dir`." -#: library/stdtypes.rst:5640 +#: library/stdtypes.rst:5855 msgid "" "The name of the class, function, method, descriptor, or generator instance." msgstr "" "Το όνομα της κλάσης, της συνάρτησης, της μεθόδου, του descriptor ή του " "στιγμιοτύπου generator." -#: library/stdtypes.rst:5646 +#: library/stdtypes.rst:5861 msgid "" "The :term:`qualified name` of the class, function, method, descriptor, or " "generator instance." @@ -10109,18 +10417,18 @@ msgstr "" "Το :term:`qualified name` της κλάσης, της συνάρτησης, της μεθόδου, του " "descriptor, ή του στιγμιοτύπου generator." -#: library/stdtypes.rst:5654 +#: library/stdtypes.rst:5869 msgid "The name of the module in which a class or function was defined." msgstr "Το όνομα του module στο οποίο ορίστηκε μια κλάση ή μια συνάρτηση." -#: library/stdtypes.rst:5659 +#: library/stdtypes.rst:5874 msgid "" "The documentation string of a class or function, or ``None`` if undefined." msgstr "" "Η συμβολοσειρά τεκμηρίωσης μιας κλάσης ή συνάρτησης ή ``None`` εάν δεν έχει " "οριστεί." -#: library/stdtypes.rst:5664 +#: library/stdtypes.rst:5879 msgid "" "The :ref:`type parameters ` of generic classes, functions, and :" "ref:`type aliases `. For classes and functions that are not " @@ -10130,11 +10438,11 @@ msgstr "" "συναρτήσεων και :ref:`type aliases `. Για κλάσεις και " "συναρτήσεις που δεν είναι γενικές, αυτή θα είναι μια κενή πλειάδα." -#: library/stdtypes.rst:5674 +#: library/stdtypes.rst:5889 msgid "Integer string conversion length limitation" msgstr "Περιορισμός μήκους μετατροπής συμβολοσειράς ακέραιου αριθμού" -#: library/stdtypes.rst:5676 +#: library/stdtypes.rst:5891 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 " @@ -10147,7 +10455,7 @@ msgstr "" "του δύο. Οι δεξαεξαδικές, οκταδικές, και δυαδικές μετατροπές είναι " "απεριόριστες. Το όριο μπορεί να διαμορφωθεί." -#: library/stdtypes.rst:5681 +#: library/stdtypes.rst:5896 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 " @@ -10165,14 +10473,14 @@ msgstr "" "``int('1' * 500_000)`` μπορεί να διαρκέσει περισσότερο από ένα δευτερόλεπτο " "σε μια γρήγορη CPU." -#: library/stdtypes.rst:5688 +#: library/stdtypes.rst:5903 msgid "" "Limiting conversion size offers a practical way to avoid :cve:`2020-10735`." msgstr "" "Ο περιορισμός του μεγέθους μετατροπής προσφέρει έναν πρακτικό τρόπο αποφυγής " "του :cve:`2020-10735`." -#: library/stdtypes.rst:5690 +#: library/stdtypes.rst:5905 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. " @@ -10182,13 +10490,13 @@ msgstr "" "εισόδου ή εξόδου όταν εμπλέκεται ένας μη γραμμικός αλγόριθμος μετατροπής. " "Τα underscores και το πρόσημο δεν υπολογίζονται στο όριο." -#: library/stdtypes.rst:5694 +#: library/stdtypes.rst:5909 msgid "" "When an operation would exceed the limit, a :exc:`ValueError` is raised:" msgstr "" "Όταν μια λειτουργία υπερβαίνει το όριο, γίνεται raise μια :exc:`ValueError`:" -#: library/stdtypes.rst:5696 +#: library/stdtypes.rst:5911 msgid "" ">>> import sys\n" ">>> sys.set_int_max_str_digits(4300) # Illustrative, this is the default.\n" @@ -10232,7 +10540,7 @@ msgstr "" "7144\n" ">>> assert int(hex(i_squared), base=16) == i*i # Hexadecimal is unlimited." -#: library/stdtypes.rst:5716 +#: library/stdtypes.rst:5931 msgid "" "The default limit is 4300 digits as provided in :data:`sys.int_info." "default_max_str_digits `. The lowest limit that can be " @@ -10244,11 +10552,11 @@ msgstr "" "να διαμορφωθεί είναι 640 ψηφία όπως προβλέπεται στο :data:`sys.int_info." "str_digits_check_threshold `." -#: library/stdtypes.rst:5721 +#: library/stdtypes.rst:5936 msgid "Verification:" msgstr "Επαλήθευση:" -#: library/stdtypes.rst:5723 +#: library/stdtypes.rst:5938 msgid "" ">>> import sys\n" ">>> assert sys.int_info.default_max_str_digits == 4300, sys.int_info\n" @@ -10266,11 +10574,11 @@ msgstr "" "... '571186405732').to_bytes(53, 'big')\n" "..." -#: library/stdtypes.rst:5736 +#: library/stdtypes.rst:5951 msgid "Affected APIs" msgstr "Επηρεασμένα APIs" -#: library/stdtypes.rst:5738 +#: library/stdtypes.rst:5953 msgid "" "The limitation only applies to potentially slow conversions between :class:" "`int` and :class:`str` or :class:`bytes`:" @@ -10278,23 +10586,23 @@ msgstr "" "Ο περιορισμός ισχύει μόνο για δυνητικά αργές μετατροπές μεταξύ :class:`int` " "και :class:`str` ή :class:`bytes`:" -#: library/stdtypes.rst:5741 +#: library/stdtypes.rst:5956 msgid "``int(string)`` with default base 10." msgstr "``int(string)`` με default βάση το 10." -#: library/stdtypes.rst:5742 +#: library/stdtypes.rst:5957 msgid "``int(string, base)`` for all bases that are not a power of 2." msgstr "``int(string, base)`` για όλες τις βάσεις που δεν είναι δύναμη του 2." -#: library/stdtypes.rst:5743 +#: library/stdtypes.rst:5958 msgid "``str(integer)``." msgstr "``str(integer)``." -#: library/stdtypes.rst:5744 +#: library/stdtypes.rst:5959 msgid "``repr(integer)``." msgstr "``repr(integer)``." -#: library/stdtypes.rst:5745 +#: library/stdtypes.rst:5960 msgid "" "any other string conversion to base 10, for example ``f\"{integer}\"``, " "``\"{}\".format(integer)``, or ``b\"%d\" % integer``." @@ -10302,40 +10610,40 @@ msgstr "" "οποιαδήποτε άλλη μετατροπή συμβολοσειράς στη βάση 10, για παράδειγμα " "``f\"{integer}\"``, ``\"{}\".format(integer)``, ή ``b\"%d\" % integer``." -#: library/stdtypes.rst:5748 +#: library/stdtypes.rst:5963 msgid "The limitations do not apply to functions with a linear algorithm:" msgstr "Οι περιορισμοί δεν ισχύουν για συναρτήσεις με γραμμικό αλγόριθμο:" -#: library/stdtypes.rst:5750 +#: library/stdtypes.rst:5965 msgid "``int(string, base)`` with base 2, 4, 8, 16, or 32." msgstr "``int(string, base)`` με βάση 2, 4, 8, 16, ή 32." -#: library/stdtypes.rst:5751 +#: library/stdtypes.rst:5966 msgid ":func:`int.from_bytes` and :func:`int.to_bytes`." msgstr ":func:`int.from_bytes` και :func:`int.to_bytes`." -#: library/stdtypes.rst:5752 +#: library/stdtypes.rst:5967 msgid ":func:`hex`, :func:`oct`, :func:`bin`." msgstr ":func:`hex`, :func:`oct`, :func:`bin`." -#: library/stdtypes.rst:5753 +#: library/stdtypes.rst:5968 msgid ":ref:`formatspec` for hex, octal, and binary numbers." msgstr "" ":ref:`formatspec` για δεκαεξαδικούς, οκταδικούς και δυαδικούς αριθμούς." -#: library/stdtypes.rst:5754 +#: library/stdtypes.rst:5969 msgid ":class:`str` to :class:`float`." msgstr ":class:`str` σε :class:`float`." -#: library/stdtypes.rst:5755 +#: library/stdtypes.rst:5970 msgid ":class:`str` to :class:`decimal.Decimal`." msgstr ":class:`str` σε :class:`decimal.Decimal`." -#: library/stdtypes.rst:5758 +#: library/stdtypes.rst:5973 msgid "Configuring the limit" msgstr "Διαμόρφωση ορίου" -#: library/stdtypes.rst:5760 +#: library/stdtypes.rst:5975 msgid "" "Before Python starts up you can use an environment variable or an " "interpreter command line flag to configure the limit:" @@ -10344,7 +10652,7 @@ msgstr "" "περιβάλλοντος ή ένα δείκτη γραμμής εντολών διερμηνέα για να διαμορφώσετε το " "όριο:" -#: library/stdtypes.rst:5763 +#: library/stdtypes.rst:5978 msgid "" ":envvar:`PYTHONINTMAXSTRDIGITS`, e.g. ``PYTHONINTMAXSTRDIGITS=640 python3`` " "to set the limit to 640 or ``PYTHONINTMAXSTRDIGITS=0 python3`` to disable " @@ -10354,7 +10662,7 @@ msgstr "" "για να ορίσετε το όριο σε 640 ή ``PYTHONINTMAXSTRDIGITS=0 python3`` για να " "απενεργοποιήσετε τον περιορισμό." -#: library/stdtypes.rst:5766 +#: library/stdtypes.rst:5981 msgid "" ":option:`-X int_max_str_digits <-X>`, e.g. ``python3 -X " "int_max_str_digits=640``" @@ -10362,7 +10670,7 @@ msgstr "" ":option:`-X int_max_str_digits <-X>`, π.χ. ``python3 -X " "int_max_str_digits=640``" -#: library/stdtypes.rst:5768 +#: library/stdtypes.rst:5983 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 " @@ -10377,7 +10685,7 @@ msgstr "" "επομένως χρησιμοποιήθηκε μια τιμή :data:`sys.int_info." "default_max_str_digits` κατά την προετοιμασία." -#: library/stdtypes.rst:5774 +#: library/stdtypes.rst:5989 msgid "" "From code, you can inspect the current limit and set a new one using these :" "mod:`sys` APIs:" @@ -10385,7 +10693,7 @@ msgstr "" "Από τον κώδικα, μπορείτε να επιθεωρήσετε το τρέχον όριο και να ορίσετε ένα " "νέο χρησιμοποιώντας αυτά τα :mod:`sys` APIs:" -#: library/stdtypes.rst:5777 +#: library/stdtypes.rst:5992 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 " @@ -10395,7 +10703,7 @@ msgstr "" "είναι ένας getter και setter για το όριο σε όλο τον διερμηνέα. Οι " "δευτερεύοντες διερμηνείς έχουν το δικό τους όριο." -#: library/stdtypes.rst:5781 +#: library/stdtypes.rst:5996 msgid "" "Information about the default and minimum can be found in :data:`sys." "int_info`:" @@ -10403,7 +10711,7 @@ msgstr "" "Πληροφορίες σχετικά με την προεπιλογή και το ελάχιστο μπορούν να βρεθούν " "στο :data:`sys.int_info`:" -#: library/stdtypes.rst:5783 +#: library/stdtypes.rst:5998 msgid "" ":data:`sys.int_info.default_max_str_digits ` is the compiled-" "in default limit." @@ -10411,7 +10719,7 @@ msgstr "" "Το :data:`sys.int_info.default_max_str_digits ` είναι το " "μεταγλωττισμένο προεπιλεγμένο όριο." -#: library/stdtypes.rst:5785 +#: library/stdtypes.rst:6000 msgid "" ":data:`sys.int_info.str_digits_check_threshold ` is the lowest " "accepted value for the limit (other than 0 which disables it)." @@ -10419,7 +10727,7 @@ msgstr "" "Το :data:`sys.int_info.str_digits_check_threshold ` είναι η " "χαμηλότερη αποδεκτή τιμή για το όριο (εκτός από το 0 που το απενεργοποιεί)." -#: library/stdtypes.rst:5792 +#: library/stdtypes.rst:6007 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 " @@ -10440,7 +10748,7 @@ msgstr "" "τον κώδικα. Μια λύση για τον πηγαίο που περιέχει τόσο μεγάλες σταθερές είναι " "να τις μετατρέψετε σε δεκαεξαδική μορφή ``0x`` καθώς δεν έχει όριο." -#: library/stdtypes.rst:5801 +#: library/stdtypes.rst:6016 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 " @@ -10454,11 +10762,11 @@ msgstr "" "καλέσει την Python για να μεταγλωττίσει εκ των προτέρων το ``.py`` πηγαίο σε " "αρχεία ``.pyc``." -#: library/stdtypes.rst:5807 +#: library/stdtypes.rst:6022 msgid "Recommended configuration" msgstr "Προτεινόμενη διαμόρφωση" -#: library/stdtypes.rst:5809 +#: library/stdtypes.rst:6024 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 " @@ -10471,11 +10779,11 @@ msgstr "" "τον συμβατό με τον κώδικα της έκδοσης Python, καθώς αυτά τα API προστέθηκαν " "στην ενημερωμένη έκδοση κώδικα ασφαλείας σε εκδόσεις πριν από την 3.12." -#: library/stdtypes.rst:5814 +#: library/stdtypes.rst:6029 msgid "Example::" msgstr "Παράδειγμα::" -#: library/stdtypes.rst:5816 +#: library/stdtypes.rst:6031 msgid "" ">>> import sys\n" ">>> if hasattr(sys, \"set_int_max_str_digits\"):\n" @@ -10497,15 +10805,15 @@ msgstr "" "... elif current_limit < lower_bound:\n" "... sys.set_int_max_str_digits(lower_bound)" -#: library/stdtypes.rst:5826 +#: library/stdtypes.rst:6041 msgid "If you need to disable it entirely, set it to ``0``." msgstr "Εάν πρέπει να το απενεργοποιήσετε εντελώς, ορίστε το σε ``0``." -#: library/stdtypes.rst:5830 +#: library/stdtypes.rst:6045 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: library/stdtypes.rst:5831 +#: library/stdtypes.rst:6046 msgid "" "Additional information on these special methods may be found in the Python " "Reference Manual (:ref:`customization`)." @@ -10513,7 +10821,7 @@ msgstr "" "Πρόσθετε πληροφορίες σχετικά με αυτές τις ειδικές μεθόδους μπορείτε να " "βρείτε στο Εγχειρίδιο Αναφοράς Python (:ref:`customization`)." -#: library/stdtypes.rst:5834 +#: library/stdtypes.rst:6049 msgid "" "As a consequence, the list ``[1, 2]`` is considered equal to ``[1.0, 2.0]``, " "and similarly for tuples." @@ -10521,12 +10829,12 @@ msgstr "" "Σαν συνέπεια, η λίστα ``[1, 2]`` θεωρείται ίση με ``[1.0, 2.0]``, και ομοίως " "για πλειάδες (tuples)." -#: library/stdtypes.rst:5837 +#: library/stdtypes.rst:6052 msgid "They must have since the parser can't tell the type of the operands." msgstr "" "Πρέπει να έχουν, αφού ο parser δεν μπορεί να ξεχωρίσει τον τύπο των τελεστών." -#: library/stdtypes.rst:5839 +#: library/stdtypes.rst:6054 msgid "" "Cased characters are those with general category property being one of " "\"Lu\" (Letter, uppercase), \"Ll\" (Letter, lowercase), or \"Lt\" (Letter, " @@ -10536,7 +10844,7 @@ msgstr "" "είναι ένας από τους \"Lu\" (Γράμμα, κεφαλαίο), \"Ll\" (Γράμμα, πεζά), ή " "\"Lt\" (Γράμμα, κεφαλαία)." -#: library/stdtypes.rst:5842 +#: library/stdtypes.rst:6057 msgid "" "To format only a tuple you should therefore provide a singleton tuple whose " "only element is the tuple to be formatted." @@ -10549,12 +10857,12 @@ msgstr "" msgid "built-in" msgstr "ενσωματωμένοι (built-in) τύποι" -#: library/stdtypes.rst:316 library/stdtypes.rst:950 library/stdtypes.rst:1139 -#: library/stdtypes.rst:4581 library/stdtypes.rst:5567 +#: library/stdtypes.rst:316 library/stdtypes.rst:950 library/stdtypes.rst:1159 +#: library/stdtypes.rst:4770 library/stdtypes.rst:5761 msgid "types" msgstr "τύποι" -#: library/stdtypes.rst:1154 library/stdtypes.rst:4581 +#: library/stdtypes.rst:1174 library/stdtypes.rst:4770 msgid "statement" msgstr "statement" @@ -10667,11 +10975,11 @@ msgstr "is" msgid "is not" msgstr "is not" -#: library/stdtypes.rst:208 library/stdtypes.rst:1117 library/stdtypes.rst:1260 -#: library/stdtypes.rst:1383 library/stdtypes.rst:1540 -#: library/stdtypes.rst:2691 library/stdtypes.rst:4379 -#: library/stdtypes.rst:5060 library/stdtypes.rst:5487 -#: library/stdtypes.rst:5531 +#: library/stdtypes.rst:208 library/stdtypes.rst:1137 library/stdtypes.rst:1324 +#: library/stdtypes.rst:1447 library/stdtypes.rst:1604 +#: library/stdtypes.rst:2877 library/stdtypes.rst:4568 +#: library/stdtypes.rst:5253 library/stdtypes.rst:5680 +#: library/stdtypes.rst:5725 msgid "object" msgstr "αντικείμενο" @@ -10759,8 +11067,8 @@ msgstr "δυαδικό" msgid "arithmetic" msgstr "αριθμητικό" -#: library/stdtypes.rst:950 library/stdtypes.rst:4581 library/stdtypes.rst:5552 -#: library/stdtypes.rst:5567 +#: library/stdtypes.rst:950 library/stdtypes.rst:4770 library/stdtypes.rst:5746 +#: library/stdtypes.rst:5761 msgid "built-in function" msgstr "ενσωματωμένες (built-in) συναρτήσεις" @@ -10776,7 +11084,7 @@ msgstr "float" msgid "complex" msgstr "complex" -#: library/stdtypes.rst:2548 library/stdtypes.rst:3767 +#: library/stdtypes.rst:2734 library/stdtypes.rst:3954 msgid "+ (plus)" msgstr "+ (συν)" @@ -10788,11 +11096,11 @@ msgstr "τελεστής unary" msgid "binary operator" msgstr "δυαδικός τελεστής" -#: library/stdtypes.rst:2548 library/stdtypes.rst:3767 +#: library/stdtypes.rst:2734 library/stdtypes.rst:3954 msgid "- (minus)" msgstr "- (πλην)" -#: library/stdtypes.rst:2505 library/stdtypes.rst:3724 +#: library/stdtypes.rst:2691 library/stdtypes.rst:3911 msgid "* (asterisk)" msgstr "* (αστερίσκος)" @@ -10804,7 +11112,7 @@ msgstr "/ (κάθετος)" msgid "//" msgstr "//" -#: library/stdtypes.rst:2469 library/stdtypes.rst:3692 +#: library/stdtypes.rst:2655 library/stdtypes.rst:3879 msgid "% (percent)" msgstr "% (τοις εκατό)" @@ -10812,7 +11120,7 @@ msgstr "% (τοις εκατό)" msgid "**" msgstr "**" -#: library/stdtypes.rst:393 library/stdtypes.rst:1154 library/stdtypes.rst:4581 +#: library/stdtypes.rst:393 library/stdtypes.rst:1174 library/stdtypes.rst:4770 msgid "operations on" msgstr "λειτουργίες on" @@ -10820,7 +11128,7 @@ msgstr "λειτουργίες on" msgid "conjugate() (complex number method)" msgstr "conjugate() (μέθοδος μιγαδικών αριθμών)" -#: library/stdtypes.rst:1606 library/stdtypes.rst:5567 +#: library/stdtypes.rst:1672 library/stdtypes.rst:5761 msgid "module" msgstr "module" @@ -10888,7 +11196,7 @@ msgstr "τιμές" msgid "iterator protocol" msgstr "πρωτόκολλο iterator" -#: library/stdtypes.rst:4975 +#: library/stdtypes.rst:5168 msgid "protocol" msgstr "πρωτόκολλο" @@ -10896,7 +11204,7 @@ msgstr "πρωτόκολλο" msgid "iterator" msgstr "iterator" -#: library/stdtypes.rst:934 library/stdtypes.rst:1117 library/stdtypes.rst:1154 +#: library/stdtypes.rst:934 library/stdtypes.rst:1137 library/stdtypes.rst:1174 msgid "sequence" msgstr "sequence" @@ -10912,7 +11220,7 @@ msgstr "container" msgid "iteration over" msgstr "iteration over" -#: library/stdtypes.rst:4581 +#: library/stdtypes.rst:4770 msgid "len" msgstr "len" @@ -10936,385 +11244,466 @@ msgstr "λειτουργία" msgid "repetition" msgstr "επανάληψη" -#: library/stdtypes.rst:1154 +#: library/stdtypes.rst:1174 msgid "subscript" msgstr "subscript" -#: library/stdtypes.rst:1154 +#: library/stdtypes.rst:1174 msgid "slice" msgstr "slice" -#: library/stdtypes.rst:950 -msgid "count() (sequence method)" -msgstr "count() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:950 -msgid "index() (sequence method)" -msgstr "index() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1006 +#: library/stdtypes.rst:997 msgid "loop" msgstr "loop" -#: library/stdtypes.rst:1006 +#: library/stdtypes.rst:997 msgid "over mutable sequence" msgstr "πάνω από μεταβλητή ακολουθίας" -#: library/stdtypes.rst:1006 +#: library/stdtypes.rst:997 msgid "mutable sequence" msgstr "μεταβλητή ακολουθίας" -#: library/stdtypes.rst:1006 +#: library/stdtypes.rst:997 msgid "loop over" msgstr "loop over" -#: library/stdtypes.rst:1117 +#: library/stdtypes.rst:1137 msgid "immutable" msgstr "αμετάβλητο" -#: library/stdtypes.rst:1339 +#: library/stdtypes.rst:1403 msgid "tuple" msgstr "πλειάδα (tuple)" -#: library/stdtypes.rst:1117 +#: library/stdtypes.rst:1137 msgid "hash" msgstr "hash" -#: library/stdtypes.rst:1139 +#: library/stdtypes.rst:1159 msgid "mutable" msgstr "ευμετάβλητο" -#: library/stdtypes.rst:1154 library/stdtypes.rst:1260 +#: library/stdtypes.rst:1174 library/stdtypes.rst:1324 msgid "list" msgstr "λίστα" -#: library/stdtypes.rst:2672 library/stdtypes.rst:2870 -#: library/stdtypes.rst:3692 +#: library/stdtypes.rst:2858 library/stdtypes.rst:3060 +#: library/stdtypes.rst:3879 msgid "bytearray" msgstr "bytearray" -#: library/stdtypes.rst:4581 library/stdtypes.rst:5567 +#: library/stdtypes.rst:4770 library/stdtypes.rst:5761 msgid "type" msgstr "τύπος" -#: library/stdtypes.rst:1154 +#: library/stdtypes.rst:1174 msgid "assignment" msgstr "εκχώρηση" -#: library/stdtypes.rst:4581 +#: library/stdtypes.rst:4770 msgid "del" msgstr "del" -#: library/stdtypes.rst:1154 -msgid "append() (sequence method)" -msgstr "append() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1154 -msgid "clear() (sequence method)" -msgstr "clear() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1154 -msgid "copy() (sequence method)" -msgstr "copy() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1154 -msgid "extend() (sequence method)" -msgstr "extend() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1154 -msgid "insert() (sequence method)" -msgstr "insert() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1154 -msgid "pop() (sequence method)" -msgstr "pop() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1154 -msgid "remove() (sequence method)" -msgstr "remove() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1154 -msgid "reverse() (sequence method)" -msgstr "reverse() (μέθοδος ακολουθίας)" - -#: library/stdtypes.rst:1383 +#: library/stdtypes.rst:1447 msgid "range" msgstr "range" -#: library/stdtypes.rst:1553 library/stdtypes.rst:2323 -#: library/stdtypes.rst:2469 +#: library/stdtypes.rst:1617 library/stdtypes.rst:2509 +#: library/stdtypes.rst:2655 msgid "string" msgstr "string" -#: library/stdtypes.rst:1504 +#: library/stdtypes.rst:1568 msgid "text sequence type" msgstr "τύπος ακολουθίας κειμένου" -#: library/stdtypes.rst:1553 library/stdtypes.rst:1571 +#: library/stdtypes.rst:1617 library/stdtypes.rst:1637 msgid "str (built-in class)" msgstr "str (ενσωματωμένη (built-in) κλάση)" -#: library/stdtypes.rst:1504 +#: library/stdtypes.rst:1568 msgid "(see also string)" msgstr "(βλ. επίσης string)" -#: library/stdtypes.rst:1540 +#: library/stdtypes.rst:1604 msgid "io.StringIO" msgstr "io.StringIO" -#: library/stdtypes.rst:2664 +#: library/stdtypes.rst:2850 msgid "buffer protocol" msgstr "πρωτόκολλο buffer" -#: library/stdtypes.rst:2672 library/stdtypes.rst:2870 -#: library/stdtypes.rst:3692 +#: library/stdtypes.rst:2858 library/stdtypes.rst:3060 +#: library/stdtypes.rst:3879 msgid "bytes" msgstr "bytes" -#: library/stdtypes.rst:2870 +#: library/stdtypes.rst:3060 msgid "methods" msgstr "μέθοδοι" -#: library/stdtypes.rst:1606 +#: library/stdtypes.rst:1672 msgid "re" msgstr "re" -#: library/stdtypes.rst:3546 +#: library/stdtypes.rst:3733 msgid "universal newlines" msgstr "καθολικές νέες γραμμές" -#: library/stdtypes.rst:2137 +#: library/stdtypes.rst:2321 msgid "str.splitlines method" msgstr "μέθοδος str.splitlines" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid "! formatted string literal" msgstr "! μορφοποιημένη συμβολοσειρά κυριολεκτικής μορφής" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid "formatted string literals" msgstr "μορφοποιημένες συμβολοσειρές κυριολεξίας" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid "! f-string" msgstr "! f-string" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid "f-strings" msgstr "string" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid "fstring" msgstr "fstring" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid "interpolated string literal" msgstr "συμβολοσειρά κυριολεξίας με παρεμβολή" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid "formatted literal" msgstr "μορφοποιημένη κυριολεξία" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid "interpolated literal" msgstr "κυριολεκτικό με παρεμβολή" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid "{} (curly brackets)" msgstr "{} (αγκύλες)" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid "in formatted string literal" msgstr "μέσα σε μορφοποιημένη συμβολοσειρά" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid "! (exclamation mark)" msgstr "! (Θαυμαστικό)" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid ": (colon)" msgstr ": (άνω κάτω τελεία)" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid "= (equals)" msgstr "= (ίσο)" -#: library/stdtypes.rst:2323 +#: library/stdtypes.rst:2509 msgid "for help in debugging using string literals" msgstr "για βοήθεια στην αποσφαλμάτωση μέσω κυριολεκτικών συμβολοσειρών" -#: library/stdtypes.rst:2469 +#: library/stdtypes.rst:2655 msgid "formatting, string (%)" msgstr "μορφοποίηση, string (%)" -#: library/stdtypes.rst:2469 +#: library/stdtypes.rst:2655 msgid "interpolation, string (%)" msgstr "παρεμβολή, string (%)" -#: library/stdtypes.rst:2469 +#: library/stdtypes.rst:2655 msgid "formatting, printf" msgstr "μορφοποίηση, printf" -#: library/stdtypes.rst:2469 +#: library/stdtypes.rst:2655 msgid "interpolation, printf" msgstr "παρεμβολή, printf" -#: library/stdtypes.rst:3692 +#: library/stdtypes.rst:3879 msgid "printf-style formatting" msgstr "μορφοποίηση σε στυλ printf" -#: library/stdtypes.rst:3692 +#: library/stdtypes.rst:3879 msgid "sprintf-style formatting" msgstr "μορφοποίηση σε στυλ sprintf" -#: library/stdtypes.rst:3724 +#: library/stdtypes.rst:3911 msgid "() (parentheses)" msgstr "() (παρενθέσεις)" -#: library/stdtypes.rst:2548 library/stdtypes.rst:3767 +#: library/stdtypes.rst:2734 library/stdtypes.rst:3954 msgid "in printf-style formatting" msgstr "σε μορφοποίηση σε στυλ printf" -#: library/stdtypes.rst:3724 +#: library/stdtypes.rst:3911 msgid ". (dot)" msgstr ". (τελεία)" -#: library/stdtypes.rst:3767 +#: library/stdtypes.rst:3954 msgid "# (hash)" msgstr "# (δίεση)" -#: library/stdtypes.rst:3767 +#: library/stdtypes.rst:3954 msgid "space" msgstr "διάστημα" -#: library/stdtypes.rst:2664 +#: library/stdtypes.rst:2850 msgid "binary sequence types" msgstr "τύπος δυαδικών ακολουθιών" -#: library/stdtypes.rst:2672 +#: library/stdtypes.rst:2858 msgid "memoryview" msgstr "memoryview" -#: library/stdtypes.rst:2672 +#: library/stdtypes.rst:2858 msgid "array" msgstr "πίνακας" -#: library/stdtypes.rst:3546 +#: library/stdtypes.rst:3733 msgid "bytes.splitlines method" msgstr "bytes.splitlines μέθοδος" -#: library/stdtypes.rst:3546 +#: library/stdtypes.rst:3733 msgid "bytearray.splitlines method" msgstr "bytearray.splitlines μέθοδος" -#: library/stdtypes.rst:3692 +#: library/stdtypes.rst:3879 msgid "formatting" msgstr "μορφοποίηση" -#: library/stdtypes.rst:3692 +#: library/stdtypes.rst:3879 msgid "bytes (%)" msgstr "bytes (%)" -#: library/stdtypes.rst:3692 +#: library/stdtypes.rst:3879 msgid "bytearray (%)" msgstr "bytearray (%)" -#: library/stdtypes.rst:3692 +#: library/stdtypes.rst:3879 msgid "interpolation" msgstr "μεταβολή" -#: library/stdtypes.rst:4379 +#: library/stdtypes.rst:4568 msgid "set" msgstr "set" -#: library/stdtypes.rst:4581 +#: library/stdtypes.rst:4770 msgid "mapping" msgstr "αντιστοίχιση" -#: library/stdtypes.rst:4581 +#: library/stdtypes.rst:4770 msgid "dictionary" msgstr "λεξικό" -#: library/stdtypes.rst:4664 +#: library/stdtypes.rst:4880 msgid "__missing__()" msgstr "__missing__()" -#: library/stdtypes.rst:4975 +#: library/stdtypes.rst:5168 msgid "context manager" msgstr "διαχειριστής περιεχομένου" -#: library/stdtypes.rst:4975 +#: library/stdtypes.rst:5168 msgid "context management protocol" msgstr "πρωτόκολλο διαχειριστή περιεχομένου" -#: library/stdtypes.rst:4975 +#: library/stdtypes.rst:5168 msgid "context management" msgstr "διαχείριση περιεχομένου" -#: library/stdtypes.rst:5048 +#: library/stdtypes.rst:5241 msgid "annotation" msgstr "annotation" -#: library/stdtypes.rst:5048 +#: library/stdtypes.rst:5241 msgid "type annotation; type hint" msgstr "type annotation; type hint" -#: library/stdtypes.rst:5060 +#: library/stdtypes.rst:5253 msgid "GenericAlias" msgstr "GenericAlias" -#: library/stdtypes.rst:5060 +#: library/stdtypes.rst:5253 msgid "Generic" msgstr "Generic" -#: library/stdtypes.rst:5060 +#: library/stdtypes.rst:5253 msgid "Alias" msgstr "Alias" -#: library/stdtypes.rst:5317 +#: library/stdtypes.rst:5510 msgid "Union" msgstr "Ένωση" -#: library/stdtypes.rst:5317 +#: library/stdtypes.rst:5510 msgid "union" msgstr "ένωση" -#: library/stdtypes.rst:5487 +#: library/stdtypes.rst:5680 msgid "method" msgstr "μέθοδος" -#: library/stdtypes.rst:5531 +#: library/stdtypes.rst:5725 msgid "code" msgstr "κώδικας" -#: library/stdtypes.rst:5531 +#: library/stdtypes.rst:5725 msgid "code object" msgstr "αντικείμενο κώδικα" -#: library/stdtypes.rst:5538 +#: library/stdtypes.rst:5732 msgid "compile" msgstr "compile" -#: library/stdtypes.rst:5538 +#: library/stdtypes.rst:5732 msgid "__code__ (function object attribute)" msgstr "__code__ (χαρακτηριστικό αντικείμενου συνάρτησης)" -#: library/stdtypes.rst:5552 +#: library/stdtypes.rst:5746 msgid "exec" msgstr "exec" -#: library/stdtypes.rst:5552 +#: library/stdtypes.rst:5746 msgid "eval" msgstr "eval" -#: library/stdtypes.rst:5591 +#: library/stdtypes.rst:5785 msgid "..." msgstr "..." -#: library/stdtypes.rst:5591 +#: library/stdtypes.rst:5785 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:`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 "" +#~ "To illustrate, the following examples all return a dictionary equal to " +#~ "``{\"one\": 1, \"two\": 2, \"three\": 3}``::" +#~ msgstr "" +#~ "Για επεξήγηση, τα ακόλουθα παραδείγματα επιστρέφουν όλα ένα λεξικό ίσο με " +#~ "``{\"one\": 1, \"two\": 2, \"three\": 3}``::" + +#~ 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 "" #~ "Return ``True`` if all characters in the string are printable or the " #~ "string is empty, ``False`` otherwise. Nonprintable characters are those " diff --git a/library/string.po b/library/string.po index 672f6b3a..c5d21eb6 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1196,8 +1196,8 @@ msgstr "" #: library/string.rst:848 msgid "" -"Returns false if the template has invalid placeholders that will cause :meth:" -"`substitute` to raise :exc:`ValueError`." +"Returns ``False`` if the template has invalid placeholders that will cause :" +"meth:`substitute` to raise :exc:`ValueError`." msgstr "" #: library/string.rst:856 diff --git a/library/stringprep.po b/library/stringprep.po index 8cc17863..47615ce9 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 dc9c40ed..e5f0b258 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: 2025-05-05 20:53+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" @@ -63,7 +63,7 @@ msgstr "" "αποσυσκευασία. Αντίθετα, κατά την επικοινωνία δεδομένων με εξωτερικές πηγές, " "ο προγραμματιστής είναι υπεύθυνος για τον καθορισμό της σειράς byte και του " "συμπληρώματος μεταξύ των στοιχείων. Δείτε :ref:`struct-alignment` για " -"λεπτομέρειες. " +"λεπτομέρειες." #: library/struct.rst:39 msgid "" @@ -232,7 +232,7 @@ msgid "" msgstr "" "Εναλλακτικά, ο πρώτος χαρακτήρας της συμβολοσειράς μορφοποίησης μπορεί να " "χρησιμοποιηθεί για να υποδείξει τη σειρά byte, το μέγεθος και την " -"ευθυγράμμιση των συσκευασμένων δεδομένων, σύμφωνα με το παρακάτω πίνακα: " +"ευθυγράμμιση των συσκευασμένων δεδομένων, σύμφωνα με το παρακάτω πίνακα:" #: library/struct.rst:148 msgid "Character" @@ -355,7 +355,7 @@ msgid "" msgstr "" "Σημειώστε τη διαφορά μεταξύ του ``'@'`` και ``'='``: και τα δύο " "χρησιμοποιούν τη native σειρά byte, αλλά το μέγεθος και η στοίχιση του " -"τελευταίου είναι τυποποιημένα. " +"τελευταίου είναι τυποποιημένα." #: library/struct.rst:192 msgid "" @@ -384,7 +384,7 @@ msgid "" msgstr "" "Το συμπλήρωμα (padding) προστίθεται αυτόματα μόνο μεταξύ διαδοχικών μελών " "της δομής. Δεν προστίθεται συμπλήρωμα στην αρχή ή στο τέλος της " -"κωδικοποιημένης δομής. " +"κωδικοποιημένης δομής." #: library/struct.rst:203 msgid "" @@ -779,7 +779,7 @@ msgstr "" "τους μεταγλωττιστές της C: σε μια τυπική μηχανή, ένας μη προσημασμένος short " "μπορεί να χρησιμοποιηθεί για αποθήκευση, αλλά όχι για αριθμητικές πράξεις. " "Δείτε τη σελίδα της Wikipedia για τη `half-precision floating-point format " -"`_ για περισσότερες πληροφορίες. " +"`_ για περισσότερες πληροφορίες." #: library/struct.rst:324 msgid "When packing, ``'x'`` inserts one NUL byte." @@ -809,7 +809,7 @@ msgstr "" "τόσα byte όσα καθορίζει ο μετρητής. Σημειώστε ότι για τη :func:`unpack`, ο " "χαρακτήρας μορφοποίησης ``'p'`` καταναλώνει ``count`` byte, αλλά η " "συμβολοσειρά που επιστρέφεται δεν μπορεί ποτέ να περιέχει περισσότερα από " -"255 byte. " +"255 byte." #: library/struct.rst:339 msgid "" @@ -827,7 +827,7 @@ msgid "" msgstr "" "Για το χαρακτήρα μορφοποίησης ``'s'``, αριθμός (count) ερμηνεύεται ως το " "μήκος των byte, και όχι ως ένας αριθμός επαναλήψεων, όπως συμβαίνει με " -"άλλους χαρακτήρες μορφοποίησης. Για παράδειγμα, ``'10s'``σημαίνει μια " +"άλλους χαρακτήρες μορφοποίησης. Για παράδειγμα, ``'10s'`` σημαίνει μια " "μοναδική συμβολοσειρά 10 byte που αντιστοιχεί ή προέρχεται από ένα ενιαίο " "byte string της Python, ενώ ``'10c'`` σημαίνει 10 ξεχωριστούς χαρακτήρες του " "ενός byte στοιχεία (π.χ. ``cccccccccc``) που αντιστοιχούν σε ή από δέκα " @@ -838,7 +838,7 @@ msgstr "" "καθορισμένο μήκος. Κατά την αποσυσκευασία (unpacking), το αποτέλεσμα είναι " "πάντα ένα αντικείμενο bytes με ακριβώς το καθορισμένο μήκος. Ως ειδική " "περίπτωση, το ``'0s'`` σημαίνει μια μοναδική, κενή συμβολοσειρά (ενώ το " -"``'0c'`` σημαίνει 0 χαρακτήρες). " +"``'0c'`` σημαίνει 0 χαρακτήρες)." #: library/struct.rst:352 msgid "" diff --git a/library/subprocess.po b/library/subprocess.po index 5d7d73d7..53e0fb75 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -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 @@ -1900,10 +1900,9 @@ msgstr "" #: library/subprocess.rst:1542 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:1547 @@ -1960,41 +1959,68 @@ msgid "Notes" msgstr "" #: library/subprocess.rst:1597 -msgid "Converting an argument sequence to a string on Windows" +msgid "Timeout Behavior" msgstr "" #: library/subprocess.rst:1599 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:1603 +msgid "" +"**Process Creation Delay**: The initial process creation itself cannot be " +"interrupted on many platform APIs. This means that even when specifying a " +"timeout, you are not guaranteed to see a timeout exception until at least " +"after however long process creation takes." +msgstr "" + +#: library/subprocess.rst:1608 +msgid "" +"**Extremely Small Timeout Values**: Setting very small timeout values (such " +"as a few milliseconds) may result in almost immediate :exc:`TimeoutExpired` " +"exceptions because process creation and system scheduling inherently require " +"time." +msgstr "" + +#: library/subprocess.rst:1615 +msgid "Converting an argument sequence to a string on Windows" +msgstr "" + +#: library/subprocess.rst:1617 +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:1603 +#: library/subprocess.rst:1621 msgid "" "Arguments are delimited by white space, which is either a space or a tab." msgstr "" -#: library/subprocess.rst:1606 +#: library/subprocess.rst:1624 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:1611 +#: library/subprocess.rst:1629 msgid "" "A double quotation mark preceded by a backslash is interpreted as a literal " "double quotation mark." msgstr "" -#: library/subprocess.rst:1614 +#: library/subprocess.rst:1632 msgid "" "Backslashes are interpreted literally, unless they immediately precede a " "double quotation mark." msgstr "" -#: library/subprocess.rst:1617 +#: library/subprocess.rst:1635 msgid "" "If backslashes immediately precede a double quotation mark, every pair of " "backslashes is interpreted as a literal backslash. If the number of " @@ -2002,37 +2028,37 @@ msgid "" "mark as described in rule 3." msgstr "" -#: library/subprocess.rst:1626 +#: library/subprocess.rst:1644 msgid ":mod:`shlex`" msgstr "" -#: library/subprocess.rst:1627 +#: library/subprocess.rst:1645 msgid "Module which provides function to parse and escape command lines." msgstr "" -#: library/subprocess.rst:1634 +#: library/subprocess.rst:1652 msgid "Disabling use of ``vfork()`` or ``posix_spawn()``" msgstr "" -#: library/subprocess.rst:1636 +#: library/subprocess.rst:1654 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:1640 +#: library/subprocess.rst:1658 msgid "" "If you ever encounter a presumed highly unusual situation where you need to " "prevent ``vfork()`` from being used by Python, you can set the :const:" "`subprocess._USE_VFORK` attribute to a false value." msgstr "" -#: library/subprocess.rst:1646 +#: library/subprocess.rst:1664 msgid "subprocess._USE_VFORK = False # See CPython issue gh-NNNNNN." msgstr "" -#: library/subprocess.rst:1648 +#: library/subprocess.rst:1666 msgid "" "Setting this has no impact on use of ``posix_spawn()`` which could use " "``vfork()`` internally within its libc implementation. There is a similar :" @@ -2040,11 +2066,11 @@ msgid "" "that." msgstr "" -#: library/subprocess.rst:1655 +#: library/subprocess.rst:1673 msgid "subprocess._USE_POSIX_SPAWN = False # See CPython issue gh-NNNNNN." msgstr "" -#: library/subprocess.rst:1657 +#: library/subprocess.rst:1675 msgid "" "It is safe to set these to false on any Python version. They will have no " "effect on older versions when unsupported. Do not assume the attributes are " @@ -2052,18 +2078,18 @@ msgid "" "the corresponding function will be used, only that it may be." msgstr "" -#: library/subprocess.rst:1662 +#: library/subprocess.rst:1680 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:1666 +#: library/subprocess.rst:1684 msgid "``_USE_POSIX_SPAWN``" msgstr "" -#: library/subprocess.rst:1667 +#: library/subprocess.rst:1685 msgid "``_USE_VFORK``" msgstr "" diff --git a/library/sunau.po b/library/sunau.po index 4acc168c..6d6156b6 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 387a37ae..acee8bef 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 e1f6f8c2..6fedc2e6 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 68a0a7b8..69bee6ba 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -318,41 +318,41 @@ msgid "" "corresponding :monitoring-event:`CALL` event is being monitored." msgstr "" -#: library/sys.monitoring.rst:205 +#: library/sys.monitoring.rst:208 msgid "Other events" msgstr "" -#: library/sys.monitoring.rst:207 +#: library/sys.monitoring.rst:210 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:210 +#: library/sys.monitoring.rst:213 msgid "The other events that can be monitored are:" msgstr "" -#: library/sys.monitoring.rst:212 +#: library/sys.monitoring.rst:215 msgid ":monitoring-event:`PY_THROW`" msgstr "" -#: library/sys.monitoring.rst:213 +#: library/sys.monitoring.rst:216 msgid ":monitoring-event:`PY_UNWIND`" msgstr "" -#: library/sys.monitoring.rst:214 +#: library/sys.monitoring.rst:217 msgid ":monitoring-event:`RAISE`" msgstr "" -#: library/sys.monitoring.rst:215 +#: library/sys.monitoring.rst:218 msgid ":monitoring-event:`EXCEPTION_HANDLED`" msgstr "" -#: library/sys.monitoring.rst:219 +#: library/sys.monitoring.rst:222 msgid "The STOP_ITERATION event" msgstr "" -#: library/sys.monitoring.rst:221 +#: library/sys.monitoring.rst:224 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 " @@ -361,7 +361,7 @@ msgid "" "an exception unless it would be visible to other code." msgstr "" -#: library/sys.monitoring.rst:227 +#: library/sys.monitoring.rst:230 msgid "" "To allow tools to monitor for real exceptions without slowing down " "generators and coroutines, the :monitoring-event:`STOP_ITERATION` event is " @@ -369,46 +369,46 @@ msgid "" "unlike :monitoring-event:`RAISE`." msgstr "" -#: library/sys.monitoring.rst:233 +#: library/sys.monitoring.rst:236 msgid "Turning events on and off" msgstr "" -#: library/sys.monitoring.rst:235 +#: library/sys.monitoring.rst:238 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." msgstr "" -#: library/sys.monitoring.rst:242 +#: library/sys.monitoring.rst:245 msgid "Setting events globally" msgstr "" -#: library/sys.monitoring.rst:244 +#: library/sys.monitoring.rst:247 msgid "" "Events can be controlled globally by modifying the set of events being " "monitored." msgstr "" -#: library/sys.monitoring.rst:248 +#: library/sys.monitoring.rst:251 msgid "Returns the ``int`` representing all the active events." msgstr "" -#: library/sys.monitoring.rst:252 +#: library/sys.monitoring.rst:255 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:255 +#: library/sys.monitoring.rst:258 msgid "No events are active by default." msgstr "" -#: library/sys.monitoring.rst:258 +#: library/sys.monitoring.rst:261 msgid "Per code object events" msgstr "" -#: library/sys.monitoring.rst:260 +#: library/sys.monitoring.rst:263 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 " @@ -416,40 +416,42 @@ msgid "" "(see :ref:`c-api-monitoring`)." msgstr "" -#: library/sys.monitoring.rst:267 -msgid "Returns all the local events for *code*" +#: library/sys.monitoring.rst:270 +msgid "Returns all the :ref:`local events ` for *code*" msgstr "" -#: library/sys.monitoring.rst:271 +#: library/sys.monitoring.rst:274 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." +"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:274 +#: library/sys.monitoring.rst:278 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." msgstr "" -#: library/sys.monitoring.rst:280 +#: library/sys.monitoring.rst:284 msgid "Disabling events" msgstr "" -#: library/sys.monitoring.rst:284 +#: library/sys.monitoring.rst:288 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:287 +#: library/sys.monitoring.rst:291 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:291 +#: library/sys.monitoring.rst:296 msgid "" "Disabling events for specific locations is very important for high " "performance monitoring. For example, a program can be run under a debugger " @@ -457,137 +459,145 @@ msgid "" "breakpoints." msgstr "" -#: library/sys.monitoring.rst:298 +#: library/sys.monitoring.rst:301 +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:308 msgid "" "Enable all the events that were disabled by :data:`sys.monitoring.DISABLE` " "for all tools." msgstr "" -#: library/sys.monitoring.rst:305 +#: library/sys.monitoring.rst:315 msgid "Registering callback functions" msgstr "" -#: library/sys.monitoring.rst:307 +#: library/sys.monitoring.rst:317 msgid "To register a callable for events call" msgstr "" -#: library/sys.monitoring.rst:311 +#: library/sys.monitoring.rst:321 msgid "Registers the callable *func* for the *event* with the given *tool_id*" msgstr "" -#: library/sys.monitoring.rst:313 +#: library/sys.monitoring.rst:323 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:318 +#: library/sys.monitoring.rst:327 +msgid "" +"Raises an :ref:`auditing event ` ``sys.monitoring." +"register_callback`` with argument ``func``." +msgstr "" + +#: library/sys.monitoring.rst:329 msgid "" "Functions can be unregistered by calling ``sys.monitoring." "register_callback(tool_id, event, None)``." msgstr "" -#: library/sys.monitoring.rst:321 +#: library/sys.monitoring.rst:332 msgid "Callback functions can be registered and unregistered at any time." msgstr "" -#: library/sys.monitoring.rst:323 -msgid "" -"Registering or unregistering a callback function will generate a :func:`sys." -"audit` event." -msgstr "" - -#: library/sys.monitoring.rst:327 +#: library/sys.monitoring.rst:336 msgid "Callback function arguments" msgstr "" -#: library/sys.monitoring.rst:331 +#: library/sys.monitoring.rst:340 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:334 +#: library/sys.monitoring.rst:343 msgid "" "When an active event occurs, the registered callback function is called. " "Different events will provide the callback function with different " "arguments, as follows:" msgstr "" -#: library/sys.monitoring.rst:337 +#: library/sys.monitoring.rst:346 msgid ":monitoring-event:`PY_START` and :monitoring-event:`PY_RESUME`::" msgstr "" -#: library/sys.monitoring.rst:370 +#: library/sys.monitoring.rst:379 msgid "func(code: CodeType, instruction_offset: int) -> DISABLE | Any" msgstr "" -#: library/sys.monitoring.rst:341 +#: library/sys.monitoring.rst:350 msgid ":monitoring-event:`PY_RETURN` and :monitoring-event:`PY_YIELD`::" msgstr "" -#: library/sys.monitoring.rst:343 +#: library/sys.monitoring.rst:352 msgid "" "func(code: CodeType, instruction_offset: int, retval: object) -> DISABLE | " "Any" msgstr "" -#: library/sys.monitoring.rst:345 +#: library/sys.monitoring.rst:354 msgid "" ":monitoring-event:`CALL`, :monitoring-event:`C_RAISE` and :monitoring-event:" "`C_RETURN`::" msgstr "" -#: library/sys.monitoring.rst:347 +#: library/sys.monitoring.rst:356 msgid "" "func(code: CodeType, instruction_offset: int, callable: object, arg0: object " "| MISSING) -> DISABLE | Any" msgstr "" -#: library/sys.monitoring.rst:349 +#: library/sys.monitoring.rst:358 msgid "" "If there are no arguments, *arg0* is set to :data:`sys.monitoring.MISSING`." msgstr "" -#: library/sys.monitoring.rst:351 +#: library/sys.monitoring.rst:360 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:354 +#: library/sys.monitoring.rst:363 msgid "" "func(code: CodeType, instruction_offset: int, exception: BaseException) -> " "DISABLE | Any" msgstr "" -#: library/sys.monitoring.rst:356 +#: library/sys.monitoring.rst:365 msgid ":monitoring-event:`LINE`::" msgstr "" -#: library/sys.monitoring.rst:358 +#: library/sys.monitoring.rst:367 msgid "func(code: CodeType, line_number: int) -> DISABLE | Any" msgstr "" -#: library/sys.monitoring.rst:360 +#: library/sys.monitoring.rst:369 msgid ":monitoring-event:`BRANCH` and :monitoring-event:`JUMP`::" msgstr "" -#: library/sys.monitoring.rst:362 +#: library/sys.monitoring.rst:371 msgid "" "func(code: CodeType, instruction_offset: int, destination_offset: int) -> " "DISABLE | Any" msgstr "" -#: library/sys.monitoring.rst:364 +#: library/sys.monitoring.rst:373 msgid "" "Note that the *destination_offset* is where the code will next execute. For " "an untaken branch this will be the offset of the instruction following the " "branch." msgstr "" -#: library/sys.monitoring.rst:368 +#: library/sys.monitoring.rst:377 msgid ":monitoring-event:`INSTRUCTION`::" msgstr "" diff --git a/library/sys.po b/library/sys.po index df406d57..93112864 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,8 +41,8 @@ msgid "" "removed)." msgstr "" -#: library/sys.rst:299 library/sys.rst:760 library/sys.rst:1020 -#: library/sys.rst:1763 library/sys.rst:1786 library/sys.rst:2046 +#: library/sys.rst:299 library/sys.rst:760 library/sys.rst:1022 +#: library/sys.rst:1769 library/sys.rst:1792 library/sys.rst:2052 msgid "Availability" msgstr "" @@ -1151,20 +1151,20 @@ msgid "" "argument ``depth``." msgstr "" -#: library/sys.rst:925 +#: library/sys.rst:927 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:929 +#: library/sys.rst:931 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:933 +#: library/sys.rst:935 msgid "" "Objects from the list are not safe to use. Specifically, the result will " "include objects from all interpreters that share their object allocator " @@ -1174,25 +1174,25 @@ msgid "" "different interpreters may lead to crashes or other unexpected behavior." msgstr "" -#: library/sys.rst:944 +#: library/sys.rst:946 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:949 +#: library/sys.rst:951 msgid "The result may include objects from other interpreters." msgstr "" -#: library/sys.rst:958 +#: library/sys.rst:960 msgid "Get the profiler function as set by :func:`setprofile`." msgstr "" -#: library/sys.rst:967 +#: library/sys.rst:969 msgid "Get the trace function as set by :func:`settrace`." msgstr "" -#: library/sys.rst:971 +#: library/sys.rst:973 msgid "" "The :func:`gettrace` function is intended only for implementing debuggers, " "profilers, coverage tools and the like. Its behavior is part of the " @@ -1200,7 +1200,7 @@ msgid "" "thus may not be available in all Python implementations." msgstr "" -#: library/sys.rst:979 +#: library/sys.rst:981 msgid "" "Return a named tuple describing the Windows version currently running. The " "named elements are *major*, *minor*, *build*, *platform*, *service_pack*, " @@ -1212,54 +1212,54 @@ msgid "" "first 5 elements are retrievable by indexing." msgstr "" -#: library/sys.rst:990 +#: library/sys.rst:992 msgid "*platform* will be ``2`` (VER_PLATFORM_WIN32_NT)." msgstr "" -#: library/sys.rst:992 +#: library/sys.rst:994 msgid "*product_type* may be one of the following values:" msgstr "" -#: library/sys.rst:995 +#: library/sys.rst:997 msgid "Constant" msgstr "" -#: library/sys.rst:995 +#: library/sys.rst:997 msgid "Meaning" msgstr "" -#: library/sys.rst:997 +#: library/sys.rst:999 msgid "``1`` (VER_NT_WORKSTATION)" msgstr "" -#: library/sys.rst:997 +#: library/sys.rst:999 msgid "The system is a workstation." msgstr "" -#: library/sys.rst:999 +#: library/sys.rst:1001 msgid "``2`` (VER_NT_DOMAIN_CONTROLLER)" msgstr "" -#: library/sys.rst:999 +#: library/sys.rst:1001 msgid "The system is a domain controller." msgstr "" -#: library/sys.rst:1002 +#: library/sys.rst:1004 msgid "``3`` (VER_NT_SERVER)" msgstr "" -#: library/sys.rst:1002 +#: library/sys.rst:1004 msgid "The system is a server, but not a domain controller." msgstr "" -#: library/sys.rst:1006 +#: library/sys.rst:1008 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:1010 +#: library/sys.rst:1012 msgid "" "*platform_version* returns the major version, minor version and build number " "of the current operating system, rather than the version that is being " @@ -1267,24 +1267,24 @@ msgid "" "feature detection." msgstr "" -#: library/sys.rst:1016 +#: library/sys.rst:1018 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:1022 +#: library/sys.rst:1024 msgid "" "Changed to a named tuple and added *service_pack_minor*, " "*service_pack_major*, *suite_mask*, and *product_type*." msgstr "" -#: library/sys.rst:1026 +#: library/sys.rst:1028 msgid "Added *platform_version*" msgstr "" -#: library/sys.rst:1032 +#: library/sys.rst:1034 msgid "" "Returns an *asyncgen_hooks* object, which is similar to a :class:" "`~collections.namedtuple` of the form ``(firstiter, finalizer)``, where " @@ -1294,71 +1294,75 @@ msgid "" "loop." msgstr "" -#: library/sys.rst:1039 +#: library/sys.rst:1041 msgid "See :pep:`525` for more details." msgstr "" -#: library/sys.rst:1734 +#: library/sys.rst:1740 msgid "" "This function has been added on a provisional basis (see :pep:`411` for " "details.)" msgstr "" -#: library/sys.rst:1049 +#: library/sys.rst:1051 msgid "" "Get the current coroutine origin tracking depth, as set by :func:" "`set_coroutine_origin_tracking_depth`." msgstr "" -#: library/sys.rst:1755 +#: library/sys.rst:1761 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:1061 +#: library/sys.rst:1063 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:1067 +#: library/sys.rst:1069 msgid "The width in bits used for hash values" msgstr "" -#: library/sys.rst:1071 +#: library/sys.rst:1073 msgid "The prime modulus P used for numeric hash scheme" msgstr "" -#: library/sys.rst:1075 +#: library/sys.rst:1077 msgid "The hash value returned for a positive infinity" msgstr "" -#: library/sys.rst:1079 +#: library/sys.rst:1081 msgid "(This attribute is no longer used)" msgstr "" -#: library/sys.rst:1083 +#: library/sys.rst:1085 msgid "The multiplier used for the imaginary part of a complex number" msgstr "" -#: library/sys.rst:1087 +#: library/sys.rst:1089 msgid "The name of the algorithm for hashing of str, bytes, and memoryview" msgstr "" -#: library/sys.rst:1091 +#: library/sys.rst:1093 msgid "The internal output size of the hash algorithm" msgstr "" -#: library/sys.rst:1095 +#: library/sys.rst:1097 msgid "The size of the seed key of the hash algorithm" msgstr "" -#: library/sys.rst:1099 -msgid "Added *algorithm*, *hash_bits* and *seed_bits*" +#: library/sys.rst:1101 +msgid "Cutoff for small string DJBX33A optimization in range ``[1, cutoff)``." msgstr "" #: library/sys.rst:1105 +msgid "Added *algorithm*, *hash_bits*, *seed_bits*, and *cutoff*." +msgstr "" + +#: library/sys.rst:1111 msgid "" "The version number encoded as a single integer. This is guaranteed to " "increase with each version, including proper support for non-production " @@ -1366,7 +1370,7 @@ msgid "" "version 1.5.2, use::" msgstr "" -#: library/sys.rst:1109 +#: library/sys.rst:1115 msgid "" "if sys.hexversion >= 0x010502F0:\n" " # use some advanced feature\n" @@ -1376,7 +1380,7 @@ msgid "" " ..." msgstr "" -#: library/sys.rst:1116 +#: library/sys.rst:1122 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. " @@ -1384,25 +1388,25 @@ msgid "" "human-friendly encoding of the same information." msgstr "" -#: library/sys.rst:1121 +#: library/sys.rst:1127 msgid "More details of ``hexversion`` can be found at :ref:`apiabiversion`." msgstr "" -#: library/sys.rst:1126 +#: library/sys.rst:1132 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:1130 +#: library/sys.rst:1136 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:1134 +#: library/sys.rst:1140 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 " @@ -1414,13 +1418,13 @@ msgid "" "the same value, since it is the reference implementation." msgstr "" -#: library/sys.rst:1144 +#: library/sys.rst:1150 msgid "" "*hexversion* is the implementation version in hexadecimal format, like :data:" "`sys.hexversion`." msgstr "" -#: library/sys.rst:1147 +#: library/sys.rst:1153 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 " @@ -1429,7 +1433,7 @@ msgid "" "set to ``None``, it indicates that module caching should be disabled." msgstr "" -#: library/sys.rst:1154 +#: library/sys.rst:1160 msgid "" ":data:`sys.implementation` may contain additional attributes specific to the " "Python implementation. These non-standard attributes must start with an " @@ -1439,47 +1443,47 @@ msgid "" "versions, however.) See :pep:`421` for more information." msgstr "" -#: library/sys.rst:1165 +#: library/sys.rst:1171 msgid "" "The addition of new required attributes must go through the normal PEP " "process. See :pep:`421` for more information." msgstr "" -#: library/sys.rst:1170 +#: library/sys.rst:1176 msgid "" "A :term:`named tuple` that holds information about Python's internal " "representation of integers. The attributes are read only." msgstr "" -#: library/sys.rst:1175 +#: library/sys.rst:1181 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:1180 +#: library/sys.rst:1186 msgid "The size in bytes of the C type used to represent a digit." msgstr "" -#: library/sys.rst:1184 +#: library/sys.rst:1190 msgid "" "The default value for :func:`sys.get_int_max_str_digits` when it is not " "otherwise explicitly configured." msgstr "" -#: library/sys.rst:1189 +#: library/sys.rst:1195 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:1196 +#: library/sys.rst:1202 msgid "" "Added :attr:`~int_info.default_max_str_digits` and :attr:`~int_info." "str_digits_check_threshold`." msgstr "" -#: library/sys.rst:1202 +#: library/sys.rst:1208 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:1210 +#: library/sys.rst:1216 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:1219 +#: library/sys.rst:1225 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 " @@ -1506,33 +1510,33 @@ msgid "" "attributes have interned keys." msgstr "" -#: library/sys.rst:1227 +#: library/sys.rst:1233 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:1233 +#: library/sys.rst:1239 msgid "" "Return :const:`True` if the :term:`GIL` is enabled and :const:`False` if it " "is disabled." msgstr "" -#: library/sys.rst:1272 +#: library/sys.rst:1278 msgid "It is not guaranteed to exist in all implementations of Python." msgstr "" -#: library/sys.rst:1244 +#: library/sys.rst:1250 msgid "" "Return :const:`True` if the main Python interpreter is :term:`shutting down " "`. Return :const:`False` otherwise." msgstr "" -#: library/sys.rst:1247 +#: library/sys.rst:1253 msgid "See also the :exc:`PythonFinalizationError` exception." msgstr "" -#: library/sys.rst:1253 +#: library/sys.rst:1259 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 " @@ -1543,40 +1547,40 @@ msgid "" "more information.)" msgstr "" -#: library/sys.rst:1265 +#: library/sys.rst:1271 msgid "" "Return :const:`True` if the given string is \"interned\", :const:`False` " "otherwise." msgstr "" -#: library/sys.rst:1279 +#: library/sys.rst:1285 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:1285 +#: library/sys.rst:1291 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:1292 +#: library/sys.rst:1298 msgid "" "An integer giving the value of the largest Unicode code point, i.e. " "``1114111`` (``0x10FFFF`` in hexadecimal)." msgstr "" -#: library/sys.rst:1295 +#: library/sys.rst:1301 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:1303 +#: library/sys.rst:1309 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 " @@ -1589,40 +1593,40 @@ msgid "" "``None`` if the module cannot be found." msgstr "" -#: library/sys.rst:1316 +#: library/sys.rst:1322 msgid ":class:`importlib.abc.MetaPathFinder`" msgstr "" -#: library/sys.rst:1317 +#: library/sys.rst:1323 msgid "" "The abstract base class defining the interface of finder objects on :data:" "`meta_path`." msgstr "" -#: library/sys.rst:1319 +#: library/sys.rst:1325 msgid ":class:`importlib.machinery.ModuleSpec`" msgstr "" -#: library/sys.rst:1320 +#: library/sys.rst:1326 msgid "" "The concrete class which :meth:`~importlib.abc.MetaPathFinder.find_spec` " "should return instances of." msgstr "" -#: library/sys.rst:1326 +#: library/sys.rst:1332 msgid "" ":term:`Module specs ` were introduced in Python 3.4, by :pep:" "`451`." msgstr "" -#: library/sys.rst:1331 +#: library/sys.rst:1337 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:1337 +#: library/sys.rst:1343 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 " @@ -1634,13 +1638,13 @@ msgid "" "other threads." msgstr "" -#: library/sys.rst:1349 +#: library/sys.rst:1355 msgid "" "The list of the original command line arguments passed to the Python " "executable." msgstr "" -#: library/sys.rst:1352 +#: library/sys.rst:1358 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 " @@ -1648,68 +1652,68 @@ msgid "" "in :data:`sys.orig_argv` and missing from :data:`sys.argv`." msgstr "" -#: library/sys.rst:1364 +#: library/sys.rst:1370 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:1368 +#: library/sys.rst:1374 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:1372 +#: library/sys.rst:1378 msgid "" "``python -m module`` command line: prepend the current working directory." msgstr "" -#: library/sys.rst:1374 +#: library/sys.rst:1380 msgid "" "``python script.py`` command line: prepend the script's directory. If it's a " "symbolic link, resolve symbolic links." msgstr "" -#: library/sys.rst:1376 +#: library/sys.rst:1382 msgid "" "``python -c code`` and ``python`` (REPL) command lines: prepend an empty " "string, which means the current working directory." msgstr "" -#: library/sys.rst:1379 +#: library/sys.rst:1385 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:1382 +#: library/sys.rst:1388 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:1388 +#: library/sys.rst:1394 msgid "" "Module :mod:`site` This describes how to use .pth files to extend :data:`sys." "path`." msgstr "" -#: library/sys.rst:1393 +#: library/sys.rst:1399 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:1408 +#: library/sys.rst:1414 msgid "Originally specified in :pep:`302`." msgstr "" -#: library/sys.rst:1402 +#: library/sys.rst:1408 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 " @@ -1717,91 +1721,91 @@ msgid "" "is found on :data:`sys.path_hooks` then ``None`` is stored." msgstr "" -#: library/sys.rst:1413 +#: library/sys.rst:1419 msgid "A string containing a platform identifier. Known values are:" msgstr "" -#: library/sys.rst:1416 +#: library/sys.rst:1422 msgid "System" msgstr "" -#: library/sys.rst:1416 +#: library/sys.rst:1422 msgid "``platform`` value" msgstr "" -#: library/sys.rst:1418 +#: library/sys.rst:1424 msgid "AIX" msgstr "" -#: library/sys.rst:1418 +#: library/sys.rst:1424 msgid "``'aix'``" msgstr "" -#: library/sys.rst:1419 +#: library/sys.rst:1425 msgid "Android" msgstr "" -#: library/sys.rst:1419 +#: library/sys.rst:1425 msgid "``'android'``" msgstr "" -#: library/sys.rst:1420 +#: library/sys.rst:1426 msgid "Emscripten" msgstr "" -#: library/sys.rst:1420 +#: library/sys.rst:1426 msgid "``'emscripten'``" msgstr "" -#: library/sys.rst:1421 +#: library/sys.rst:1427 msgid "iOS" msgstr "" -#: library/sys.rst:1421 +#: library/sys.rst:1427 msgid "``'ios'``" msgstr "" -#: library/sys.rst:1422 +#: library/sys.rst:1428 msgid "Linux" msgstr "" -#: library/sys.rst:1422 +#: library/sys.rst:1428 msgid "``'linux'``" msgstr "" -#: library/sys.rst:1423 +#: library/sys.rst:1429 msgid "macOS" msgstr "" -#: library/sys.rst:1423 +#: library/sys.rst:1429 msgid "``'darwin'``" msgstr "" -#: library/sys.rst:1424 +#: library/sys.rst:1430 msgid "Windows" msgstr "" -#: library/sys.rst:1424 +#: library/sys.rst:1430 msgid "``'win32'``" msgstr "" -#: library/sys.rst:1425 +#: library/sys.rst:1431 msgid "Windows/Cygwin" msgstr "" -#: library/sys.rst:1425 +#: library/sys.rst:1431 msgid "``'cygwin'``" msgstr "" -#: library/sys.rst:1426 +#: library/sys.rst:1432 msgid "WASI" msgstr "" -#: library/sys.rst:1426 +#: library/sys.rst:1432 msgid "``'wasi'``" msgstr "" -#: library/sys.rst:1429 +#: library/sys.rst:1435 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 " @@ -1810,81 +1814,81 @@ msgid "" "version, it is therefore recommended to use the following idiom::" msgstr "" -#: library/sys.rst:1435 +#: library/sys.rst:1441 msgid "" "if sys.platform.startswith('freebsd'):\n" " # FreeBSD-specific code here..." msgstr "" -#: library/sys.rst:1438 +#: library/sys.rst:1444 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:1442 +#: library/sys.rst:1448 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:1446 +#: library/sys.rst:1452 msgid "" "On Android, :data:`sys.platform` now returns ``'android'`` rather than " "``'linux'``." msgstr "" -#: library/sys.rst:1452 +#: library/sys.rst:1458 msgid "" ":data:`os.name` has a coarser granularity. :func:`os.uname` gives system-" "dependent version information." msgstr "" -#: library/sys.rst:1455 +#: library/sys.rst:1461 msgid "" "The :mod:`platform` module provides detailed checks for the system's " "identity." msgstr "" -#: library/sys.rst:1461 +#: library/sys.rst:1467 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:1464 +#: library/sys.rst:1470 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:1468 +#: library/sys.rst:1474 msgid "" "``/usr/lib64/pythonX.Y/``: Standard library (like ``os.py`` of the :mod:`os` " "module)" msgstr "" -#: library/sys.rst:1470 +#: library/sys.rst:1476 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:1473 +#: library/sys.rst:1479 msgid "" "``/usr/lib/pythonX.Y/site-packages/`` (always use ``lib``, not :data:`sys." "platlibdir`): Third-party modules" msgstr "" -#: library/sys.rst:1475 +#: library/sys.rst:1481 msgid "" "``/usr/lib64/pythonX.Y/site-packages/``: C extension modules of third-party " "packages" msgstr "" -#: library/sys.rst:1483 +#: library/sys.rst:1489 msgid "" "A string giving the site-specific directory prefix where the platform " "independent Python files are installed; on Unix, the default is :file:`/usr/" @@ -1893,14 +1897,14 @@ msgid "" "derived paths." msgstr "" -#: library/sys.rst:1489 +#: library/sys.rst:1495 msgid "" "If a :ref:`virtual environment ` is in effect, this value will be " "changed in ``site.py`` to point to the virtual environment. The value for " "the Python installation will still be available, via :data:`base_prefix`." msgstr "" -#: library/sys.rst:1504 +#: library/sys.rst:1510 msgid "" "Strings specifying the primary and secondary prompt of the interpreter. " "These are only defined if the interpreter is in interactive mode. Their " @@ -1910,7 +1914,7 @@ msgid "" "used to implement a dynamic prompt." msgstr "" -#: library/sys.rst:1514 +#: library/sys.rst:1520 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 " @@ -1921,14 +1925,14 @@ msgid "" "g. :const:`os.RTLD_LAZY`)." msgstr "" -#: library/sys.rst:1526 +#: library/sys.rst:1532 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:1538 +#: library/sys.rst:1544 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 " @@ -1943,14 +1947,14 @@ msgid "" "in the profile function will cause itself unset." msgstr "" -#: library/sys.rst:1550 +#: library/sys.rst:1556 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:1554 +#: library/sys.rst:1560 msgid "" "Profile functions should have three arguments: *frame*, *event*, and *arg*. " "*frame* is the current stack frame. *event* is a string: ``'call'``, " @@ -1958,71 +1962,71 @@ msgid "" "depends on the event type." msgstr "" -#: library/sys.rst:1646 +#: library/sys.rst:1652 msgid "The events have the following meaning:" msgstr "" -#: library/sys.rst:1648 +#: library/sys.rst:1654 msgid "``'call'``" msgstr "" -#: library/sys.rst:1562 +#: library/sys.rst:1568 msgid "" "A function is called (or some other code block entered). The profile " "function is called; *arg* is ``None``." msgstr "" -#: library/sys.rst:1663 +#: library/sys.rst:1669 msgid "``'return'``" msgstr "" -#: library/sys.rst:1566 +#: library/sys.rst:1572 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:1570 +#: library/sys.rst:1576 msgid "``'c_call'``" msgstr "" -#: library/sys.rst:1571 +#: library/sys.rst:1577 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:1574 +#: library/sys.rst:1580 msgid "``'c_return'``" msgstr "" -#: library/sys.rst:1575 +#: library/sys.rst:1581 msgid "A C function has returned. *arg* is the C function object." msgstr "" -#: library/sys.rst:1577 +#: library/sys.rst:1583 msgid "``'c_exception'``" msgstr "" -#: library/sys.rst:1578 +#: library/sys.rst:1584 msgid "A C function has raised an exception. *arg* is the C function object." msgstr "" -#: library/sys.rst:1580 +#: library/sys.rst:1586 msgid "" "Raises an :ref:`auditing event ` ``sys.setprofile`` with no " "arguments." msgstr "" -#: library/sys.rst:1585 +#: library/sys.rst:1591 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:1589 +#: library/sys.rst:1595 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 " @@ -2030,19 +2034,19 @@ msgid "" "because a too-high limit can lead to a crash." msgstr "" -#: library/sys.rst:1594 +#: library/sys.rst:1600 msgid "" "If the new limit is too low at the current recursion depth, a :exc:" "`RecursionError` exception is raised." msgstr "" -#: library/sys.rst:1597 +#: library/sys.rst:1603 msgid "" "A :exc:`RecursionError` exception is now raised if the new limit is too low " "at the current recursion depth." msgstr "" -#: library/sys.rst:1604 +#: library/sys.rst:1610 msgid "" "Set the interpreter's thread switch interval (in seconds). This floating-" "point value determines the ideal duration of the \"timeslices\" allocated to " @@ -2053,7 +2057,7 @@ msgid "" "scheduler." msgstr "" -#: library/sys.rst:1621 +#: library/sys.rst:1627 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 " @@ -2062,15 +2066,15 @@ msgid "" "`threading.settrace`." msgstr "" -#: library/sys.rst:1626 +#: library/sys.rst:1632 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:1631 +#: library/sys.rst:1637 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 " @@ -2078,36 +2082,36 @@ msgid "" "traced." msgstr "" -#: library/sys.rst:1636 +#: library/sys.rst:1642 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:1639 +#: library/sys.rst:1645 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:1643 +#: library/sys.rst:1649 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:1649 +#: library/sys.rst:1655 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:1653 +#: library/sys.rst:1659 msgid "``'line'``" msgstr "" -#: library/sys.rst:1654 +#: library/sys.rst:1660 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``; " @@ -2117,7 +2121,7 @@ msgid "" "to :const:`False` on that :ref:`frame `." msgstr "" -#: library/sys.rst:1664 +#: library/sys.rst:1670 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 " @@ -2125,22 +2129,22 @@ msgid "" "return value is ignored." msgstr "" -#: library/sys.rst:1669 +#: library/sys.rst:1675 msgid "``'exception'``" msgstr "" -#: library/sys.rst:1670 +#: library/sys.rst:1676 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:1674 +#: library/sys.rst:1680 msgid "``'opcode'``" msgstr "" -#: library/sys.rst:1675 +#: library/sys.rst:1681 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 " @@ -2150,13 +2154,13 @@ msgid "" "objects>`." msgstr "" -#: library/sys.rst:1682 +#: library/sys.rst:1688 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:1685 +#: library/sys.rst:1691 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 " @@ -2170,17 +2174,17 @@ msgid "" "on each frame)." msgstr "" -#: library/sys.rst:1696 +#: library/sys.rst:1702 msgid "For more information on code and frame objects, refer to :ref:`types`." msgstr "" -#: library/sys.rst:1698 +#: library/sys.rst:1704 msgid "" "Raises an :ref:`auditing event ` ``sys.settrace`` with no " "arguments." msgstr "" -#: library/sys.rst:1702 +#: library/sys.rst:1708 msgid "" "The :func:`settrace` function is intended only for implementing debuggers, " "profilers, coverage tools and the like. Its behavior is part of the " @@ -2188,13 +2192,13 @@ msgid "" "thus may not be available in all Python implementations." msgstr "" -#: library/sys.rst:1709 +#: library/sys.rst:1715 msgid "" "``'opcode'`` event type added; :attr:`~frame.f_trace_lines` and :attr:" "`~frame.f_trace_opcodes` attributes added to frames" msgstr "" -#: library/sys.rst:1714 +#: library/sys.rst:1720 msgid "" "Accepts two optional keyword arguments which are callables that accept an :" "term:`asynchronous generator iterator` as an argument. The *firstiter* " @@ -2203,32 +2207,32 @@ msgid "" "about to be garbage collected." msgstr "" -#: library/sys.rst:1720 +#: library/sys.rst:1726 msgid "" "Raises an :ref:`auditing event ` ``sys." "set_asyncgen_hooks_firstiter`` with no arguments." msgstr "" -#: library/sys.rst:1722 +#: library/sys.rst:1728 msgid "" "Raises an :ref:`auditing event ` ``sys." "set_asyncgen_hooks_finalizer`` with no arguments." msgstr "" -#: library/sys.rst:1724 +#: library/sys.rst:1730 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:1727 +#: library/sys.rst:1733 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:1739 +#: library/sys.rst:1745 msgid "" "Allows enabling or disabling coroutine origin tracking. When enabled, the " "``cr_origin`` attribute on coroutine objects will contain a tuple of " @@ -2237,111 +2241,111 @@ msgid "" "disabled, ``cr_origin`` will be ``None``." msgstr "" -#: library/sys.rst:1746 +#: library/sys.rst:1752 msgid "" "To enable, pass a *depth* value greater than zero; this sets the number of " "frames whose information will be captured. To disable, pass set *depth* to " "zero." msgstr "" -#: library/sys.rst:1750 +#: library/sys.rst:1756 msgid "This setting is thread-specific." msgstr "" -#: library/sys.rst:1760 +#: library/sys.rst:1766 msgid "" "Activate the stack profiler trampoline *backend*. The only supported backend " "is ``\"perf\"``." msgstr "" -#: library/sys.rst:1769 +#: library/sys.rst:1775 msgid ":ref:`perf_profiling`" msgstr "" -#: library/sys.rst:1770 +#: library/sys.rst:1776 msgid "https://perf.wiki.kernel.org" msgstr "" -#: library/sys.rst:1774 +#: library/sys.rst:1780 msgid "Deactivate the current stack profiler trampoline backend." msgstr "" -#: library/sys.rst:1776 +#: library/sys.rst:1782 msgid "If no stack profiler is activated, this function has no effect." msgstr "" -#: library/sys.rst:1784 +#: library/sys.rst:1790 msgid "Return ``True`` if a stack profiler trampoline is active." msgstr "" -#: library/sys.rst:1792 +#: library/sys.rst:1798 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:1796 +#: library/sys.rst:1802 msgid "" "This is equivalent to defining the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " "environment variable before launching Python." msgstr "" -#: library/sys.rst:1799 +#: library/sys.rst:1805 msgid "" "See also :func:`sys.getfilesystemencoding` and :func:`sys." "getfilesystemencodeerrors`." msgstr "" -#: library/sys.rst:1805 +#: library/sys.rst:1811 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:1809 +#: library/sys.rst:1815 msgid "See :pep:`529` for more details." msgstr "" -#: library/sys.rst:1812 +#: library/sys.rst:1818 msgid "Use :envvar:`PYTHONLEGACYWINDOWSFSENCODING` instead." msgstr "" -#: library/sys.rst:1819 +#: library/sys.rst:1825 msgid "" ":term:`File objects ` used by the interpreter for standard " "input, output and errors:" msgstr "" -#: library/sys.rst:1822 +#: library/sys.rst:1828 msgid "" "``stdin`` is used for all interactive input (including calls to :func:" "`input`);" msgstr "" -#: library/sys.rst:1824 +#: library/sys.rst:1830 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:1826 +#: library/sys.rst:1832 msgid "The interpreter's own prompts and its error messages go to ``stderr``." msgstr "" -#: library/sys.rst:1828 +#: library/sys.rst:1834 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:1832 +#: library/sys.rst:1838 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:1835 +#: library/sys.rst:1841 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 " @@ -2352,14 +2356,14 @@ msgid "" "initially attached to a console." msgstr "" -#: library/sys.rst:1844 +#: library/sys.rst:1850 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:1849 +#: library/sys.rst:1855 msgid "" "Under all platforms, you can override the character encoding by setting the :" "envvar:`PYTHONIOENCODING` environment variable before starting Python or by " @@ -2368,7 +2372,7 @@ msgid "" "only applies when :envvar:`PYTHONLEGACYWINDOWSSTDIO` is also set." msgstr "" -#: library/sys.rst:1856 +#: library/sys.rst:1862 msgid "" "When interactive, the ``stdout`` stream is line-buffered. Otherwise, it is " "block-buffered like regular text files. The ``stderr`` stream is line-" @@ -2377,19 +2381,19 @@ msgid "" "`PYTHONUNBUFFERED` environment variable." msgstr "" -#: library/sys.rst:1862 +#: library/sys.rst:1868 msgid "" "Non-interactive ``stderr`` is now line-buffered instead of fully buffered." msgstr "" -#: library/sys.rst:1868 +#: library/sys.rst:1874 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:1872 +#: library/sys.rst:1878 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 " @@ -2397,7 +2401,7 @@ msgid "" "support the :attr:`!buffer` attribute." msgstr "" -#: library/sys.rst:1882 +#: library/sys.rst:1888 msgid "" "These objects contain the original values of ``stdin``, ``stderr`` and " "``stdout`` at the start of the program. They are used during finalization, " @@ -2405,7 +2409,7 @@ msgid "" "``sys.std*`` object has been redirected." msgstr "" -#: library/sys.rst:1887 +#: library/sys.rst:1893 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, " @@ -2413,7 +2417,7 @@ msgid "" "before replacing it, and restore the saved object." msgstr "" -#: library/sys.rst:1893 +#: library/sys.rst:1899 msgid "" "Under some conditions ``stdin``, ``stdout`` and ``stderr`` as well as the " "original values ``__stdin__``, ``__stdout__`` and ``__stderr__`` can be " @@ -2421,12 +2425,12 @@ msgid "" "to a console and Python apps started with :program:`pythonw`." msgstr "" -#: library/sys.rst:1901 +#: library/sys.rst:1907 msgid "" "A frozenset of strings containing the names of standard library modules." msgstr "" -#: library/sys.rst:1903 +#: library/sys.rst:1909 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 " @@ -2434,7 +2438,7 @@ msgid "" "modules are excluded." msgstr "" -#: library/sys.rst:1908 +#: library/sys.rst:1914 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 " @@ -2442,60 +2446,60 @@ msgid "" "listed." msgstr "" -#: library/sys.rst:1913 +#: library/sys.rst:1919 msgid "See also the :data:`sys.builtin_module_names` list." msgstr "" -#: library/sys.rst:1920 +#: library/sys.rst:1926 msgid "" "A :term:`named tuple` holding information about the thread implementation." msgstr "" -#: library/sys.rst:1925 +#: library/sys.rst:1931 msgid "The name of the thread implementation:" msgstr "" -#: library/sys.rst:1927 +#: library/sys.rst:1933 msgid "``\"nt\"``: Windows threads" msgstr "" -#: library/sys.rst:1928 +#: library/sys.rst:1934 msgid "``\"pthread\"``: POSIX threads" msgstr "" -#: library/sys.rst:1929 +#: library/sys.rst:1935 msgid "" "``\"pthread-stubs\"``: stub POSIX threads (on WebAssembly platforms without " "threading support)" msgstr "" -#: library/sys.rst:1931 +#: library/sys.rst:1937 msgid "``\"solaris\"``: Solaris threads" msgstr "" -#: library/sys.rst:1935 +#: library/sys.rst:1941 msgid "The name of the lock implementation:" msgstr "" -#: library/sys.rst:1937 +#: library/sys.rst:1943 msgid "``\"semaphore\"``: a lock uses a semaphore" msgstr "" -#: library/sys.rst:1938 +#: library/sys.rst:1944 msgid "``\"mutex+cond\"``: a lock uses a mutex and a condition variable" msgstr "" -#: library/sys.rst:1939 +#: library/sys.rst:1945 msgid "``None`` if this information is unknown" msgstr "" -#: library/sys.rst:1943 +#: library/sys.rst:1949 msgid "" "The name and version of the thread library. It is a string, or ``None`` if " "this information is unknown." msgstr "" -#: library/sys.rst:1951 +#: library/sys.rst:1957 msgid "" "When this variable is set to an integer value, it determines the maximum " "number of levels of traceback information printed when an unhandled " @@ -2504,73 +2508,73 @@ msgid "" "are printed." msgstr "" -#: library/sys.rst:1959 +#: library/sys.rst:1965 msgid "Handle an unraisable exception." msgstr "" -#: library/sys.rst:1961 +#: library/sys.rst:1967 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:1965 +#: library/sys.rst:1971 msgid "The *unraisable* argument has the following attributes:" msgstr "" -#: library/sys.rst:1967 +#: library/sys.rst:1973 msgid ":attr:`!exc_type`: Exception type." msgstr "" -#: library/sys.rst:1968 +#: library/sys.rst:1974 msgid ":attr:`!exc_value`: Exception value, can be ``None``." msgstr "" -#: library/sys.rst:1969 +#: library/sys.rst:1975 msgid ":attr:`!exc_traceback`: Exception traceback, can be ``None``." msgstr "" -#: library/sys.rst:1970 +#: library/sys.rst:1976 msgid ":attr:`!err_msg`: Error message, can be ``None``." msgstr "" -#: library/sys.rst:1971 +#: library/sys.rst:1977 msgid ":attr:`!object`: Object causing the exception, can be ``None``." msgstr "" -#: library/sys.rst:1973 +#: library/sys.rst:1979 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:1977 +#: library/sys.rst:1983 msgid "" ":func:`sys.unraisablehook` can be overridden to control how unraisable " "exceptions are handled." msgstr "" -#: library/sys.rst:1982 +#: library/sys.rst:1988 msgid ":func:`excepthook` which handles uncaught exceptions." msgstr "" -#: library/sys.rst:1986 +#: library/sys.rst:1992 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:1990 +#: library/sys.rst:1996 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:1996 +#: library/sys.rst:2002 msgid "" "Raise an auditing event ``sys.unraisablehook`` with arguments *hook*, " "*unraisable* when an exception that cannot be handled occurs. The " @@ -2578,7 +2582,7 @@ msgid "" "hook has been set, *hook* may be ``None``." msgstr "" -#: library/sys.rst:2005 +#: library/sys.rst:2011 msgid "" "A string containing the version number of the Python interpreter plus " "additional information on the build number and compiler used. This string " @@ -2587,13 +2591,13 @@ msgid "" "functions provided by the :mod:`platform` module." msgstr "" -#: library/sys.rst:2014 +#: library/sys.rst:2020 msgid "" "The C API version for this interpreter. Programmers may find this useful " "when debugging version conflicts between Python and extension modules." msgstr "" -#: library/sys.rst:2020 +#: library/sys.rst:2026 msgid "" "A tuple containing the five components of the version number: *major*, " "*minor*, *micro*, *releaselevel*, and *serial*. All values except " @@ -2604,18 +2608,18 @@ msgid "" "version_info.major`` and so on." msgstr "" -#: library/sys.rst:2028 +#: library/sys.rst:2034 msgid "Added named component attributes." msgstr "" -#: library/sys.rst:2033 +#: library/sys.rst:2039 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:2040 +#: library/sys.rst:2046 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 " @@ -2624,20 +2628,20 @@ msgid "" "has no effect on the registry keys used by Python." msgstr "" -#: library/sys.rst:2052 +#: library/sys.rst:2058 msgid "" "Namespace containing functions and constants for register callbacks and " "controlling monitoring events. See :mod:`sys.monitoring` for details." msgstr "" -#: library/sys.rst:2058 +#: library/sys.rst:2064 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:2062 +#: library/sys.rst:2068 msgid "" "$ ./python -Xa=b -Xc\n" "Python 3.2a3+ (py3k, Oct 16 2010, 20:14:50)\n" @@ -2649,18 +2653,18 @@ msgid "" "{'a': 'b', 'c': True}" msgstr "" -#: library/sys.rst:2074 +#: library/sys.rst:2080 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:2082 +#: library/sys.rst:2088 msgid "Citations" msgstr "" -#: library/sys.rst:2083 +#: library/sys.rst:2089 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/" @@ -2679,50 +2683,50 @@ msgstr "" msgid "traceback" msgstr "" -#: library/sys.rst:1534 +#: library/sys.rst:1540 msgid "profile function" msgstr "" -#: library/sys.rst:1534 +#: library/sys.rst:1540 msgid "profiler" msgstr "" -#: library/sys.rst:1617 +#: library/sys.rst:1623 msgid "trace function" msgstr "" -#: library/sys.rst:1617 +#: library/sys.rst:1623 msgid "debugger" msgstr "" -#: library/sys.rst:1362 +#: library/sys.rst:1368 msgid "module" msgstr "" -#: library/sys.rst:1362 +#: library/sys.rst:1368 msgid "search" msgstr "" -#: library/sys.rst:1362 +#: library/sys.rst:1368 msgid "path" msgstr "" -#: library/sys.rst:1498 +#: library/sys.rst:1504 msgid "interpreter prompts" msgstr "" -#: library/sys.rst:1498 +#: library/sys.rst:1504 msgid "prompts, interpreter" msgstr "" -#: library/sys.rst:1498 +#: library/sys.rst:1504 msgid ">>>" msgstr "" -#: library/sys.rst:1498 +#: library/sys.rst:1504 msgid "interpreter prompt" msgstr "" -#: library/sys.rst:1498 +#: library/sys.rst:1504 msgid "..." msgstr "" diff --git a/library/sys_path_init.po b/library/sys_path_init.po index 4bcdacc5..bc933fbd 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 df5f1f13..71cd1055 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 5f47200a..3f4848bf 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3e0c3b48..f7675c54 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 61b619b8..5932fc73 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 "action" msgstr "" #: library/tarfile.rst:59 -msgid "``'r' or 'r:*'``" +msgid "``'r'`` or ``'r:*'``" msgstr "" #: library/tarfile.rst:59 @@ -180,7 +180,7 @@ msgid "" msgstr "" #: library/tarfile.rst:88 -msgid "``'a' or 'a:'``" +msgid "``'a'`` or ``'a:'``" msgstr "" #: library/tarfile.rst:88 @@ -190,38 +190,38 @@ msgid "" msgstr "" #: library/tarfile.rst:91 -msgid "``'w' or 'w:'``" +msgid "``'w'`` or ``'w:'``" msgstr "" #: library/tarfile.rst:91 msgid "Open for uncompressed writing." msgstr "" -#: library/tarfile.rst:93 +#: library/tarfile.rst:94 msgid "``'w:gz'``" msgstr "" -#: library/tarfile.rst:93 +#: library/tarfile.rst:94 msgid "Open for gzip compressed writing." msgstr "" -#: library/tarfile.rst:95 +#: library/tarfile.rst:96 msgid "``'w:bz2'``" msgstr "" -#: library/tarfile.rst:95 +#: library/tarfile.rst:96 msgid "Open for bzip2 compressed writing." msgstr "" -#: library/tarfile.rst:97 +#: library/tarfile.rst:98 msgid "``'w:xz'``" msgstr "" -#: library/tarfile.rst:97 +#: library/tarfile.rst:98 msgid "Open for lzma compressed writing." msgstr "" -#: library/tarfile.rst:100 +#: library/tarfile.rst:101 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:" @@ -229,26 +229,26 @@ msgid "" "method is not supported, :exc:`CompressionError` is raised." msgstr "" -#: library/tarfile.rst:105 +#: library/tarfile.rst:106 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:108 +#: library/tarfile.rst:109 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:112 +#: library/tarfile.rst:113 msgid "" "For modes ``'w:xz'`` and ``'x:xz'``, :func:`tarfile.open` accepts the " "keyword argument *preset* to specify the compression level of the file." msgstr "" -#: library/tarfile.rst:115 +#: library/tarfile.rst:116 msgid "" "For special purposes, there is a second format for *mode*: ``'filemode|" "[compression]'``. :func:`tarfile.open` will return a :class:`TarFile` " @@ -262,302 +262,310 @@ msgid "" "random access, see :ref:`tar-examples`. The currently possible modes:" msgstr "" -#: library/tarfile.rst:129 +#: library/tarfile.rst:130 msgid "Mode" msgstr "" -#: library/tarfile.rst:129 +#: library/tarfile.rst:130 msgid "Action" msgstr "" -#: library/tarfile.rst:131 +#: library/tarfile.rst:132 msgid "``'r|*'``" msgstr "" -#: library/tarfile.rst:131 +#: library/tarfile.rst:132 msgid "Open a *stream* of tar blocks for reading with transparent compression." msgstr "" -#: library/tarfile.rst:134 +#: library/tarfile.rst:135 msgid "``'r|'``" msgstr "" -#: library/tarfile.rst:134 +#: library/tarfile.rst:135 msgid "Open a *stream* of uncompressed tar blocks for reading." msgstr "" -#: library/tarfile.rst:137 +#: library/tarfile.rst:138 msgid "``'r|gz'``" msgstr "" -#: library/tarfile.rst:137 +#: library/tarfile.rst:138 msgid "Open a gzip compressed *stream* for reading." msgstr "" -#: library/tarfile.rst:140 +#: library/tarfile.rst:141 msgid "``'r|bz2'``" msgstr "" -#: library/tarfile.rst:140 +#: library/tarfile.rst:141 msgid "Open a bzip2 compressed *stream* for reading." msgstr "" -#: library/tarfile.rst:143 +#: library/tarfile.rst:144 msgid "``'r|xz'``" msgstr "" -#: library/tarfile.rst:143 +#: library/tarfile.rst:144 msgid "Open an lzma compressed *stream* for reading." msgstr "" -#: library/tarfile.rst:146 +#: library/tarfile.rst:147 msgid "``'w|'``" msgstr "" -#: library/tarfile.rst:146 +#: library/tarfile.rst:147 msgid "Open an uncompressed *stream* for writing." msgstr "" -#: library/tarfile.rst:148 +#: library/tarfile.rst:149 msgid "``'w|gz'``" msgstr "" -#: library/tarfile.rst:148 +#: library/tarfile.rst:149 msgid "Open a gzip compressed *stream* for writing." msgstr "" -#: library/tarfile.rst:151 +#: library/tarfile.rst:152 msgid "``'w|bz2'``" msgstr "" -#: library/tarfile.rst:151 +#: library/tarfile.rst:152 msgid "Open a bzip2 compressed *stream* for writing." msgstr "" -#: library/tarfile.rst:154 +#: library/tarfile.rst:155 msgid "``'w|xz'``" msgstr "" -#: library/tarfile.rst:154 +#: library/tarfile.rst:155 msgid "Open an lzma compressed *stream* for writing." msgstr "" -#: library/tarfile.rst:425 +#: library/tarfile.rst:435 msgid "The ``'x'`` (exclusive creation) mode was added." msgstr "" -#: library/tarfile.rst:428 library/tarfile.rst:673 +#: library/tarfile.rst:438 library/tarfile.rst:683 msgid "The *name* parameter accepts a :term:`path-like object`." msgstr "" -#: library/tarfile.rst:164 +#: library/tarfile.rst:165 msgid "The *compresslevel* keyword argument also works for streams." msgstr "" -#: library/tarfile.rst:171 +#: library/tarfile.rst:172 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:177 +#: library/tarfile.rst:178 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:180 +#: library/tarfile.rst:181 msgid "Support for file and file-like objects." msgstr "" -#: library/tarfile.rst:184 +#: library/tarfile.rst:185 msgid "The :mod:`tarfile` module defines the following exceptions:" msgstr "" -#: library/tarfile.rst:189 +#: library/tarfile.rst:190 msgid "Base class for all :mod:`tarfile` exceptions." msgstr "" -#: library/tarfile.rst:194 +#: library/tarfile.rst:195 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:200 +#: library/tarfile.rst:201 msgid "" "Is raised when a compression method is not supported or when the data cannot " "be decoded properly." msgstr "" -#: library/tarfile.rst:206 +#: library/tarfile.rst:207 msgid "" "Is raised for the limitations that are typical for stream-like :class:" "`TarFile` objects." msgstr "" -#: library/tarfile.rst:212 +#: library/tarfile.rst:213 msgid "" "Is raised for *non-fatal* errors when using :meth:`TarFile.extract`, but " "only if :attr:`TarFile.errorlevel`\\ ``== 2``." msgstr "" -#: library/tarfile.rst:218 +#: library/tarfile.rst:219 msgid "Is raised by :meth:`TarInfo.frombuf` if the buffer it gets is invalid." msgstr "" -#: library/tarfile.rst:223 +#: library/tarfile.rst:224 msgid "" "Base class for members :ref:`refused ` by filters." msgstr "" -#: library/tarfile.rst:228 +#: library/tarfile.rst:229 msgid "" "Information about the member that the filter refused to extract, as :ref:" "`TarInfo `." msgstr "" -#: library/tarfile.rst:233 +#: library/tarfile.rst:234 msgid "Raised to refuse extracting a member with an absolute path." msgstr "" -#: library/tarfile.rst:237 +#: library/tarfile.rst:238 msgid "Raised to refuse extracting a member outside the destination directory." msgstr "" -#: library/tarfile.rst:241 +#: library/tarfile.rst:242 msgid "Raised to refuse extracting a special file (e.g. a device or pipe)." msgstr "" -#: library/tarfile.rst:245 +#: library/tarfile.rst:246 msgid "Raised to refuse extracting a symbolic link with an absolute path." msgstr "" -#: library/tarfile.rst:249 +#: library/tarfile.rst:250 msgid "" "Raised to refuse extracting a symbolic link pointing outside the destination " "directory." msgstr "" -#: library/tarfile.rst:253 +#: library/tarfile.rst:255 +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. " +"The exception that was raised to reject the replacement member is available " +"as :attr:`!BaseException.__context__`." +msgstr "" + +#: library/tarfile.rst:263 msgid "The following constants are available at the module level:" msgstr "" -#: library/tarfile.rst:257 +#: library/tarfile.rst:267 msgid "" "The default character encoding: ``'utf-8'`` on Windows, the value returned " "by :func:`sys.getfilesystemencoding` otherwise." msgstr "" -#: library/tarfile.rst:263 +#: library/tarfile.rst:273 msgid "A regular file :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:267 +#: library/tarfile.rst:277 msgid "A link (inside tarfile) :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:271 +#: library/tarfile.rst:281 msgid "A symbolic link :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:275 +#: library/tarfile.rst:285 msgid "A character special device :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:279 +#: library/tarfile.rst:289 msgid "A block special device :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:283 +#: library/tarfile.rst:293 msgid "A directory :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:287 +#: library/tarfile.rst:297 msgid "A FIFO special device :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:291 +#: library/tarfile.rst:301 msgid "A contiguous file :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:295 +#: library/tarfile.rst:305 msgid "A GNU tar longname :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:299 +#: library/tarfile.rst:309 msgid "A GNU tar longlink :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:303 +#: library/tarfile.rst:313 msgid "A GNU tar sparse file :attr:`~TarInfo.type`." msgstr "" -#: library/tarfile.rst:306 +#: library/tarfile.rst:316 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:313 +#: library/tarfile.rst:323 msgid "POSIX.1-1988 (ustar) format." msgstr "" -#: library/tarfile.rst:318 +#: library/tarfile.rst:328 msgid "GNU tar format." msgstr "" -#: library/tarfile.rst:323 +#: library/tarfile.rst:333 msgid "POSIX.1-2001 (pax) format." msgstr "" -#: library/tarfile.rst:328 +#: library/tarfile.rst:338 msgid "" "The default format for creating archives. This is currently :const:" "`PAX_FORMAT`." msgstr "" -#: library/tarfile.rst:330 +#: library/tarfile.rst:340 msgid "" "The default format for new archives was changed to :const:`PAX_FORMAT` from :" "const:`GNU_FORMAT`." msgstr "" -#: library/tarfile.rst:337 +#: library/tarfile.rst:347 msgid "Module :mod:`zipfile`" msgstr "" -#: library/tarfile.rst:338 +#: library/tarfile.rst:348 msgid "Documentation of the :mod:`zipfile` standard module." msgstr "" -#: library/tarfile.rst:340 +#: library/tarfile.rst:350 msgid ":ref:`archiving-operations`" msgstr "" -#: library/tarfile.rst:341 +#: library/tarfile.rst:351 msgid "" "Documentation of the higher-level archiving facilities provided by the " "standard :mod:`shutil` module." msgstr "" -#: library/tarfile.rst:344 +#: library/tarfile.rst:354 msgid "" "`GNU tar manual, Basic Tar Format `_" msgstr "" -#: library/tarfile.rst:345 +#: library/tarfile.rst:355 msgid "Documentation for tar archive files, including GNU tar extensions." msgstr "" -#: library/tarfile.rst:351 +#: library/tarfile.rst:361 msgid "TarFile Objects" msgstr "" -#: library/tarfile.rst:353 +#: library/tarfile.rst:363 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 " @@ -566,7 +574,7 @@ msgid "" "class:`TarInfo` object, see :ref:`tarinfo-objects` for details." msgstr "" -#: library/tarfile.rst:359 +#: library/tarfile.rst:369 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 " @@ -575,24 +583,24 @@ msgid "" "be closed. See the :ref:`tar-examples` section for a use case." msgstr "" -#: library/tarfile.rst:365 +#: library/tarfile.rst:375 msgid "Added support for the context management protocol." msgstr "" -#: library/tarfile.rst:370 +#: library/tarfile.rst:380 msgid "" "All following arguments are optional and can be accessed as instance " "attributes as well." msgstr "" -#: library/tarfile.rst:373 +#: library/tarfile.rst:383 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:377 +#: library/tarfile.rst:387 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 " @@ -600,18 +608,18 @@ msgid "" "exist." msgstr "" -#: library/tarfile.rst:381 +#: library/tarfile.rst:391 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:387 +#: library/tarfile.rst:397 msgid "*fileobj* is not closed, when :class:`TarFile` is closed." msgstr "" -#: library/tarfile.rst:389 +#: library/tarfile.rst:399 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` " @@ -619,20 +627,20 @@ msgid "" "detected, even if different formats are present in a single archive." msgstr "" -#: library/tarfile.rst:394 +#: library/tarfile.rst:404 msgid "" "The *tarinfo* argument can be used to replace the default :class:`TarInfo` " "class with a different one." msgstr "" -#: library/tarfile.rst:397 +#: library/tarfile.rst:407 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:401 +#: library/tarfile.rst:411 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 " @@ -640,19 +648,19 @@ msgid "" "concatenated or damaged archives." msgstr "" -#: library/tarfile.rst:405 +#: library/tarfile.rst:415 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:408 +#: library/tarfile.rst:418 msgid "" "*errorlevel* controls how extraction errors are handled, see :attr:`the " "corresponding attribute `." msgstr "" -#: library/tarfile.rst:411 +#: library/tarfile.rst:421 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 " @@ -660,57 +668,57 @@ msgid "" "ref:`tar-unicode` for in-depth information." msgstr "" -#: library/tarfile.rst:416 +#: library/tarfile.rst:426 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:419 +#: library/tarfile.rst:429 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:742 +#: library/tarfile.rst:752 msgid "Use ``'surrogateescape'`` as the default for the *errors* argument." msgstr "" -#: library/tarfile.rst:431 +#: library/tarfile.rst:441 msgid "Add the *stream* parameter." msgstr "" -#: library/tarfile.rst:436 +#: library/tarfile.rst:446 msgid "" "Alternative constructor. The :func:`tarfile.open` function is actually a " "shortcut to this classmethod." msgstr "" -#: library/tarfile.rst:442 +#: library/tarfile.rst:452 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:447 +#: library/tarfile.rst:457 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:453 +#: library/tarfile.rst:463 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:459 +#: library/tarfile.rst:469 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:465 +#: library/tarfile.rst:475 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 " @@ -718,18 +726,18 @@ msgid "" "given, it must be a subset of the list returned by :meth:`getmembers`." msgstr "" -#: library/tarfile.rst:470 +#: library/tarfile.rst:480 msgid "Added the *members* parameter." msgstr "" -#: library/tarfile.rst:476 +#: library/tarfile.rst:486 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:483 +#: library/tarfile.rst:493 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 " @@ -741,14 +749,14 @@ msgid "" "fail." msgstr "" -#: library/tarfile.rst:491 +#: library/tarfile.rst:501 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:495 +#: library/tarfile.rst:505 msgid "" "The *filter* argument specifies how ``members`` are modified or rejected " "before extraction. See :ref:`tarfile-extraction-filter` for details. It is " @@ -756,7 +764,7 @@ msgid "" "need to support." msgstr "" -#: library/tarfile.rst:503 +#: library/tarfile.rst:513 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 " @@ -764,25 +772,25 @@ msgid "" "\"``." msgstr "" -#: library/tarfile.rst:541 +#: library/tarfile.rst:551 msgid "" "Set ``filter='data'`` to prevent the most dangerous security issues, and " "read the :ref:`tarfile-extraction-filter` section for details." msgstr "" -#: library/tarfile.rst:547 +#: library/tarfile.rst:557 msgid "Added the *numeric_owner* parameter." msgstr "" -#: library/tarfile.rst:550 +#: library/tarfile.rst:560 msgid "The *path* parameter accepts a :term:`path-like object`." msgstr "" -#: library/tarfile.rst:553 library/tarfile.rst:635 +#: library/tarfile.rst:563 library/tarfile.rst:645 msgid "Added the *filter* parameter." msgstr "" -#: library/tarfile.rst:523 +#: library/tarfile.rst:533 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. " @@ -791,27 +799,27 @@ msgid "" "File attributes (owner, mtime, mode) are set unless *set_attrs* is false." msgstr "" -#: library/tarfile.rst:529 +#: library/tarfile.rst:539 msgid "" "The *numeric_owner* and *filter* arguments are the same as for :meth:" "`extractall`." msgstr "" -#: library/tarfile.rst:534 +#: library/tarfile.rst:544 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:539 +#: library/tarfile.rst:549 msgid "See the warning for :meth:`extractall`." msgstr "" -#: library/tarfile.rst:544 +#: library/tarfile.rst:554 msgid "Added the *set_attrs* parameter." msgstr "" -#: library/tarfile.rst:559 +#: library/tarfile.rst:569 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 " @@ -820,17 +828,17 @@ msgid "" "the archive, :exc:`KeyError` is raised." msgstr "" -#: library/tarfile.rst:565 +#: library/tarfile.rst:575 msgid "Return an :class:`io.BufferedReader` object." msgstr "" -#: library/tarfile.rst:568 +#: library/tarfile.rst:578 msgid "" "The returned :class:`io.BufferedReader` object has the :attr:`!mode` " "attribute which is always equal to ``'rb'``." msgstr "" -#: library/tarfile.rst:575 +#: library/tarfile.rst:585 msgid "" "If *errorlevel* is ``0``, errors are ignored when using :meth:`TarFile." "extract` and :meth:`TarFile.extractall`. Nevertheless, they appear as error " @@ -840,39 +848,39 @@ msgid "" "exc:`TarError` exceptions as well." msgstr "" -#: library/tarfile.rst:583 +#: library/tarfile.rst:593 msgid "" "Some exceptions, e.g. ones caused by wrong argument types or data " "corruption, are always raised." msgstr "" -#: library/tarfile.rst:586 +#: library/tarfile.rst:596 msgid "" "Custom :ref:`extraction filters ` should raise :" "exc:`FilterError` for *fatal* errors and :exc:`ExtractError` for *non-fatal* " "ones." msgstr "" -#: library/tarfile.rst:590 +#: library/tarfile.rst:600 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:597 +#: library/tarfile.rst:607 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:601 +#: library/tarfile.rst:611 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:605 +#: library/tarfile.rst:615 msgid "" "If ``extraction_filter`` is ``None`` (the default), calling an extraction " "method without a *filter* argument will raise a ``DeprecationWarning``, and " @@ -880,13 +888,13 @@ msgid "" "dangerous behavior matches previous versions of Python." msgstr "" -#: library/tarfile.rst:611 +#: library/tarfile.rst:621 msgid "" "In Python 3.14+, leaving ``extraction_filter=None`` will cause extraction " "methods to use the :func:`data ` filter by default." msgstr "" -#: library/tarfile.rst:614 +#: library/tarfile.rst:624 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 " @@ -896,7 +904,7 @@ msgid "" "wrapped in :func:`staticmethod` to prevent injection of a ``self`` argument." msgstr "" -#: library/tarfile.rst:624 +#: library/tarfile.rst:634 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 " @@ -909,11 +917,11 @@ msgid "" "ref:`tar-examples` for an example." msgstr "" -#: library/tarfile.rst:638 +#: library/tarfile.rst:648 msgid "Recursion adds entries in sorted order." msgstr "" -#: library/tarfile.rst:644 +#: library/tarfile.rst:654 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 :" @@ -922,11 +930,11 @@ msgid "" "meth:`gettarinfo`." msgstr "" -#: library/tarfile.rst:651 +#: library/tarfile.rst:661 msgid "*fileobj* must be given for non-zero-sized regular files." msgstr "" -#: library/tarfile.rst:656 +#: library/tarfile.rst:666 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 " @@ -937,7 +945,7 @@ msgid "" "The name should be a text string." msgstr "" -#: library/tarfile.rst:665 +#: library/tarfile.rst:675 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 " @@ -947,21 +955,21 @@ msgid "" "case *arcname* could be a dummy string." msgstr "" -#: library/tarfile.rst:679 +#: library/tarfile.rst:689 msgid "" "Close the :class:`TarFile`. In write mode, two finishing zero blocks are " "appended to the archive." msgstr "" -#: library/tarfile.rst:686 +#: library/tarfile.rst:696 msgid "A dictionary containing key-value pairs of pax global headers." msgstr "" -#: library/tarfile.rst:693 +#: library/tarfile.rst:703 msgid "TarInfo Objects" msgstr "" -#: library/tarfile.rst:695 +#: library/tarfile.rst:705 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, " @@ -969,14 +977,14 @@ msgid "" "type. It does *not* contain the file's data itself." msgstr "" -#: library/tarfile.rst:700 +#: library/tarfile.rst:710 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:704 +#: library/tarfile.rst:714 msgid "" "Modifying the objects returned by :meth:`~TarFile.getmember` or :meth:" "`~TarFile.getmembers` will affect all subsequent operations on the archive. " @@ -985,80 +993,80 @@ msgid "" "step." msgstr "" -#: library/tarfile.rst:710 +#: library/tarfile.rst:720 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:714 +#: library/tarfile.rst:724 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:716 +#: library/tarfile.rst:726 msgid ":meth:`~TarFile.addfile` will fail." msgstr "" -#: library/tarfile.rst:717 +#: library/tarfile.rst:727 msgid ":meth:`~TarFile.list` will print a placeholder string." msgstr "" -#: library/tarfile.rst:721 +#: library/tarfile.rst:731 msgid "Create a :class:`TarInfo` object." msgstr "" -#: library/tarfile.rst:726 +#: library/tarfile.rst:736 msgid "Create and return a :class:`TarInfo` object from string buffer *buf*." msgstr "" -#: library/tarfile.rst:728 +#: library/tarfile.rst:738 msgid "Raises :exc:`HeaderError` if the buffer is invalid." msgstr "" -#: library/tarfile.rst:733 +#: library/tarfile.rst:743 msgid "" "Read the next member from the :class:`TarFile` object *tarfile* and return " "it as a :class:`TarInfo` object." msgstr "" -#: library/tarfile.rst:739 +#: library/tarfile.rst:749 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:746 +#: library/tarfile.rst:756 msgid "A ``TarInfo`` object has the following public data attributes:" msgstr "" -#: library/tarfile.rst:752 +#: library/tarfile.rst:762 msgid "Name of the archive member." msgstr "" -#: library/tarfile.rst:758 +#: library/tarfile.rst:768 msgid "Size in bytes." msgstr "" -#: library/tarfile.rst:764 +#: library/tarfile.rst:774 msgid "" "Time of last modification in seconds since the :ref:`epoch `, as in :" "attr:`os.stat_result.st_mtime`." msgstr "" -#: library/tarfile.rst:780 library/tarfile.rst:823 library/tarfile.rst:845 +#: library/tarfile.rst:790 library/tarfile.rst:833 library/tarfile.rst:855 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:776 +#: library/tarfile.rst:786 msgid "Permission bits, as for :func:`os.chmod`." msgstr "" -#: library/tarfile.rst:786 +#: library/tarfile.rst:796 msgid "" "File type. *type* is usually one of these constants: :const:`REGTYPE`, :" "const:`AREGTYPE`, :const:`LNKTYPE`, :const:`SYMTYPE`, :const:`DIRTYPE`, :" @@ -1067,128 +1075,128 @@ msgid "" "more conveniently, use the ``is*()`` methods below." msgstr "" -#: library/tarfile.rst:796 +#: library/tarfile.rst:806 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:799 +#: library/tarfile.rst:809 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:808 +#: library/tarfile.rst:818 msgid "User ID of the user who originally stored this member." msgstr "" -#: library/tarfile.rst:819 +#: library/tarfile.rst:829 msgid "Group ID of the user who originally stored this member." msgstr "" -#: library/tarfile.rst:830 +#: library/tarfile.rst:840 msgid "User name." msgstr "" -#: library/tarfile.rst:841 +#: library/tarfile.rst:851 msgid "Group name." msgstr "" -#: library/tarfile.rst:852 +#: library/tarfile.rst:862 msgid "Header checksum." msgstr "" -#: library/tarfile.rst:858 +#: library/tarfile.rst:868 msgid "Device major number." msgstr "" -#: library/tarfile.rst:864 +#: library/tarfile.rst:874 msgid "Device minor number." msgstr "" -#: library/tarfile.rst:870 +#: library/tarfile.rst:880 msgid "The tar header starts here." msgstr "" -#: library/tarfile.rst:876 +#: library/tarfile.rst:886 msgid "The file's data starts here." msgstr "" -#: library/tarfile.rst:881 +#: library/tarfile.rst:891 msgid "Sparse member information." msgstr "" -#: library/tarfile.rst:887 +#: library/tarfile.rst:897 msgid "" "A dictionary containing key-value pairs of an associated pax extended header." msgstr "" -#: library/tarfile.rst:895 +#: library/tarfile.rst:905 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:899 +#: library/tarfile.rst:909 msgid "new_tarinfo = old_tarinfo.replace(gname='staff')" msgstr "" -#: library/tarfile.rst:901 +#: library/tarfile.rst:911 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:905 +#: library/tarfile.rst:915 msgid "A :class:`TarInfo` object also provides some convenient query methods:" msgstr "" -#: library/tarfile.rst:910 +#: library/tarfile.rst:920 msgid "Return :const:`True` if the :class:`TarInfo` object is a regular file." msgstr "" -#: library/tarfile.rst:915 +#: library/tarfile.rst:925 msgid "Same as :meth:`isfile`." msgstr "" -#: library/tarfile.rst:920 +#: library/tarfile.rst:930 msgid "Return :const:`True` if it is a directory." msgstr "" -#: library/tarfile.rst:925 +#: library/tarfile.rst:935 msgid "Return :const:`True` if it is a symbolic link." msgstr "" -#: library/tarfile.rst:930 +#: library/tarfile.rst:940 msgid "Return :const:`True` if it is a hard link." msgstr "" -#: library/tarfile.rst:935 +#: library/tarfile.rst:945 msgid "Return :const:`True` if it is a character device." msgstr "" -#: library/tarfile.rst:940 +#: library/tarfile.rst:950 msgid "Return :const:`True` if it is a block device." msgstr "" -#: library/tarfile.rst:945 +#: library/tarfile.rst:955 msgid "Return :const:`True` if it is a FIFO." msgstr "" -#: library/tarfile.rst:950 +#: library/tarfile.rst:960 msgid "" "Return :const:`True` if it is one of character device, block device or FIFO." msgstr "" -#: library/tarfile.rst:956 +#: library/tarfile.rst:966 msgid "Extraction filters" msgstr "" -#: library/tarfile.rst:960 +#: library/tarfile.rst:970 msgid "" "The *tar* format is designed to capture all details of a UNIX-like " "filesystem, which makes it very powerful. Unfortunately, the features make " @@ -1198,66 +1206,66 @@ msgid "" "components, or symlinks that affect later members)." msgstr "" -#: library/tarfile.rst:968 +#: library/tarfile.rst:978 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:974 +#: library/tarfile.rst:984 msgid ":pep:`706`" msgstr "" -#: library/tarfile.rst:975 +#: library/tarfile.rst:985 msgid "Contains further motivation and rationale behind the design." msgstr "" -#: library/tarfile.rst:977 +#: library/tarfile.rst:987 msgid "" "The *filter* argument to :meth:`TarFile.extract` or :meth:`~TarFile." "extractall` can be:" msgstr "" -#: library/tarfile.rst:980 +#: library/tarfile.rst:990 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:985 +#: library/tarfile.rst:995 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:989 +#: library/tarfile.rst:999 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:993 +#: library/tarfile.rst:1003 msgid "``None`` (default): Use :attr:`TarFile.extraction_filter`." msgstr "" -#: library/tarfile.rst:995 +#: library/tarfile.rst:1005 msgid "" "If that is also ``None`` (the default), raise a ``DeprecationWarning``, and " "fall back to the ``'fully_trusted'`` filter, whose dangerous behavior " "matches previous versions of Python." msgstr "" -#: library/tarfile.rst:999 +#: library/tarfile.rst:1009 msgid "" "In Python 3.14, the ``'data'`` filter will become the default instead. It's " "possible to switch earlier; see :attr:`TarFile.extraction_filter`." msgstr "" -#: library/tarfile.rst:1002 +#: library/tarfile.rst:1012 msgid "" "A callable which will be called for each extracted member with a :ref:" "`TarInfo ` describing the member and the destination path " @@ -1265,27 +1273,27 @@ msgid "" "members)::" msgstr "" -#: library/tarfile.rst:1007 +#: library/tarfile.rst:1017 msgid "filter(member: TarInfo, path: str, /) -> TarInfo | None" msgstr "" -#: library/tarfile.rst:1009 +#: library/tarfile.rst:1019 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:1013 +#: library/tarfile.rst:1023 msgid "" "return a :class:`TarInfo` object which will be used instead of the metadata " "in the archive, or" msgstr "" -#: library/tarfile.rst:1015 +#: library/tarfile.rst:1025 msgid "return ``None``, in which case the member will be skipped, or" msgstr "" -#: library/tarfile.rst:1016 +#: library/tarfile.rst:1026 msgid "" "raise an exception to abort the operation or skip the member, depending on :" "attr:`~TarFile.errorlevel`. Note that when extraction is aborted, :meth:" @@ -1293,118 +1301,130 @@ msgid "" "attempt to clean up." msgstr "" -#: library/tarfile.rst:1022 +#: library/tarfile.rst:1032 msgid "Default named filters" msgstr "" -#: library/tarfile.rst:1024 +#: library/tarfile.rst:1034 msgid "" "The pre-defined, named filters are available as functions, so they can be " "reused in custom filters:" msgstr "" -#: library/tarfile.rst:1029 +#: library/tarfile.rst:1039 msgid "Return *member* unchanged." msgstr "" -#: library/tarfile.rst:1031 +#: library/tarfile.rst:1041 msgid "This implements the ``'fully_trusted'`` filter." msgstr "" -#: library/tarfile.rst:1035 +#: library/tarfile.rst:1045 msgid "Implements the ``'tar'`` filter." msgstr "" -#: library/tarfile.rst:1037 +#: library/tarfile.rst:1047 msgid "Strip leading slashes (``/`` and :data:`os.sep`) from filenames." msgstr "" -#: library/tarfile.rst:1038 +#: library/tarfile.rst:1048 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:1042 +#: library/tarfile.rst:1052 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:1045 +#: library/tarfile.rst:1055 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:1081 +#: library/tarfile.rst:1097 msgid "Return the modified ``TarInfo`` member." msgstr "" -#: library/tarfile.rst:1052 +#: library/tarfile.rst:1062 msgid "" "Implements the ``'data'`` filter. In addition to what ``tar_filter`` does:" msgstr "" -#: library/tarfile.rst:1055 +#: library/tarfile.rst:1065 +msgid "" +"Normalize link targets (:attr:`TarInfo.linkname`) using :func:`os.path." +"normpath`. Note that this removes internal ``..`` components, which may " +"change the meaning of the link if the path in :attr:`!TarInfo.linkname` " +"traverses symbolic links." +msgstr "" + +#: library/tarfile.rst:1071 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:1058 +#: library/tarfile.rst:1074 msgid "" "This raises :class:`~tarfile.AbsoluteLinkError` or :class:`~tarfile." "LinkOutsideDestinationError`." msgstr "" -#: library/tarfile.rst:1061 +#: library/tarfile.rst:1077 msgid "" "Note that such files are refused even on platforms that do not support " "symbolic links." msgstr "" -#: library/tarfile.rst:1064 +#: library/tarfile.rst:1080 msgid "" ":ref:`Refuse ` to extract device files (including " "pipes). This raises :class:`~tarfile.SpecialFileError`." msgstr "" -#: library/tarfile.rst:1068 +#: library/tarfile.rst:1084 msgid "For regular files, including hard links:" msgstr "" -#: library/tarfile.rst:1070 +#: library/tarfile.rst:1086 msgid "" "Set the owner read and write permissions (:const:`~stat.S_IRUSR` | :const:" "`~stat.S_IWUSR`)." msgstr "" -#: library/tarfile.rst:1072 +#: library/tarfile.rst:1088 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:1076 +#: library/tarfile.rst:1092 msgid "" "For other files (directories), set ``mode`` to ``None``, so that extraction " "methods skip applying permission bits." msgstr "" -#: library/tarfile.rst:1078 +#: library/tarfile.rst:1094 msgid "" "Set user and group info (``uid``, ``gid``, ``uname``, ``gname``) to " "``None``, so that extraction methods skip setting it." msgstr "" -#: library/tarfile.rst:1087 +#: library/tarfile.rst:1101 +msgid "Link targets are now normalized." +msgstr "" + +#: library/tarfile.rst:1107 msgid "Filter errors" msgstr "" -#: library/tarfile.rst:1089 +#: library/tarfile.rst:1109 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 " @@ -1413,11 +1433,11 @@ msgid "" "continue." msgstr "" -#: library/tarfile.rst:1097 +#: library/tarfile.rst:1117 msgid "Hints for further verification" msgstr "" -#: library/tarfile.rst:1099 +#: library/tarfile.rst:1119 msgid "" "Even with ``filter='data'``, *tarfile* is not suited for extracting " "untrusted files without prior inspection. Among other issues, the pre-" @@ -1425,69 +1445,73 @@ msgid "" "additional checks." msgstr "" -#: library/tarfile.rst:1104 +#: library/tarfile.rst:1124 msgid "Here is an incomplete list of things to consider:" msgstr "" -#: library/tarfile.rst:1106 +#: library/tarfile.rst:1126 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:1109 +#: library/tarfile.rst:1129 +msgid "Disallow symbolic links if you do not need the functionality." +msgstr "" + +#: library/tarfile.rst:1130 msgid "" "When working with untrusted data, use external (e.g. OS-level) limits on " "disk, memory and CPU usage." msgstr "" -#: library/tarfile.rst:1111 +#: library/tarfile.rst:1132 msgid "" "Check filenames against an allow-list of characters (to filter out control " "characters, confusables, foreign path separators, etc.)." msgstr "" -#: library/tarfile.rst:1114 +#: library/tarfile.rst:1135 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:1116 +#: library/tarfile.rst:1137 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:1118 +#: library/tarfile.rst:1139 msgid "Check for files that would be shadowed on case-insensitive filesystems." msgstr "" -#: library/tarfile.rst:1120 +#: library/tarfile.rst:1141 msgid "Also note that:" msgstr "" -#: library/tarfile.rst:1122 +#: library/tarfile.rst:1143 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:1126 +#: library/tarfile.rst:1147 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:1132 +#: library/tarfile.rst:1153 msgid "Supporting older Python versions" msgstr "" -#: library/tarfile.rst:1134 +#: library/tarfile.rst:1155 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 " @@ -1495,59 +1519,59 @@ msgid "" "version." msgstr "" -#: library/tarfile.rst:1139 +#: library/tarfile.rst:1160 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:1143 +#: library/tarfile.rst:1164 msgid "Fully trusted archive::" msgstr "" -#: library/tarfile.rst:1145 +#: library/tarfile.rst:1166 msgid "" "my_tarfile.extraction_filter = (lambda member, path: member)\n" "my_tarfile.extractall()" msgstr "" -#: library/tarfile.rst:1148 +#: library/tarfile.rst:1169 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:1151 +#: library/tarfile.rst:1172 msgid "" "my_tarfile.extraction_filter = getattr(tarfile, 'data_filter',\n" " (lambda member, path: member))\n" "my_tarfile.extractall()" msgstr "" -#: library/tarfile.rst:1155 +#: library/tarfile.rst:1176 msgid "Use the ``'data'`` filter; *fail* if it is not available::" msgstr "" -#: library/tarfile.rst:1157 +#: library/tarfile.rst:1178 msgid "my_tarfile.extractall(filter=tarfile.data_filter)" msgstr "" -#: library/tarfile.rst:1159 +#: library/tarfile.rst:1180 msgid "or::" msgstr "" -#: library/tarfile.rst:1161 +#: library/tarfile.rst:1182 msgid "" "my_tarfile.extraction_filter = tarfile.data_filter\n" "my_tarfile.extractall()" msgstr "" -#: library/tarfile.rst:1164 +#: library/tarfile.rst:1185 msgid "Use the ``'data'`` filter; *warn* if it is not available::" msgstr "" -#: library/tarfile.rst:1166 +#: library/tarfile.rst:1187 msgid "" "if hasattr(tarfile, 'data_filter'):\n" " my_tarfile.extractall(filter='data')\n" @@ -1557,28 +1581,28 @@ msgid "" " my_tarfile.extractall()" msgstr "" -#: library/tarfile.rst:1175 +#: library/tarfile.rst:1196 msgid "Stateful extraction filter example" msgstr "" -#: library/tarfile.rst:1177 +#: library/tarfile.rst:1198 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:1181 +#: library/tarfile.rst:1202 msgid "" "with StatefulFilter() as filter_func:\n" " tar.extractall(path, filter=filter_func)" msgstr "" -#: library/tarfile.rst:1184 +#: library/tarfile.rst:1205 msgid "Such a filter can be written as, for example::" msgstr "" -#: library/tarfile.rst:1186 +#: library/tarfile.rst:1207 msgid "" "class StatefulFilter:\n" " def __init__(self):\n" @@ -1595,103 +1619,107 @@ msgid "" " print(f'{self.file_count} files extracted')" msgstr "" -#: library/tarfile.rst:1206 +#: library/tarfile.rst:1227 msgid "Command-Line Interface" msgstr "" -#: library/tarfile.rst:1210 +#: library/tarfile.rst:1231 msgid "" "The :mod:`tarfile` module provides a simple command-line interface to " "interact with tar archives." msgstr "" -#: library/tarfile.rst:1213 +#: library/tarfile.rst:1234 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:1216 +#: library/tarfile.rst:1237 msgid "$ python -m tarfile -c monty.tar spam.txt eggs.txt" msgstr "" -#: library/tarfile.rst:1220 +#: library/tarfile.rst:1241 msgid "Passing a directory is also acceptable:" msgstr "" -#: library/tarfile.rst:1222 +#: library/tarfile.rst:1243 msgid "$ python -m tarfile -c monty.tar life-of-brian_1979/" msgstr "" -#: library/tarfile.rst:1226 +#: library/tarfile.rst:1247 msgid "" "If you want to extract a tar archive into the current directory, use the :" "option:`-e` option:" msgstr "" -#: library/tarfile.rst:1229 +#: library/tarfile.rst:1250 msgid "$ python -m tarfile -e monty.tar" msgstr "" -#: library/tarfile.rst:1233 +#: library/tarfile.rst:1254 msgid "" "You can also extract a tar archive into a different directory by passing the " "directory's name:" msgstr "" -#: library/tarfile.rst:1236 +#: library/tarfile.rst:1257 msgid "$ python -m tarfile -e monty.tar other-dir/" msgstr "" -#: library/tarfile.rst:1240 +#: library/tarfile.rst:1261 msgid "For a list of the files in a tar archive, use the :option:`-l` option:" msgstr "" -#: library/tarfile.rst:1242 +#: library/tarfile.rst:1263 msgid "$ python -m tarfile -l monty.tar" msgstr "" -#: library/tarfile.rst:1248 +#: library/tarfile.rst:1269 msgid "Command-line options" msgstr "" -#: library/tarfile.rst:1253 +#: library/tarfile.rst:1274 msgid "List files in a tarfile." msgstr "" -#: library/tarfile.rst:1258 +#: library/tarfile.rst:1279 msgid "Create tarfile from source files." msgstr "" -#: library/tarfile.rst:1263 +#: library/tarfile.rst:1284 msgid "" "Extract tarfile into the current directory if *output_dir* is not specified." msgstr "" -#: library/tarfile.rst:1268 +#: library/tarfile.rst:1289 msgid "Test whether the tarfile is valid or not." msgstr "" -#: library/tarfile.rst:1272 +#: library/tarfile.rst:1293 msgid "Verbose output." msgstr "" -#: library/tarfile.rst:1276 +#: library/tarfile.rst:1297 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:1284 +#: library/tarfile.rst:1305 msgid "Examples" msgstr "" -#: library/tarfile.rst:1286 +#: library/tarfile.rst:1308 +msgid "Reading examples" +msgstr "" + +#: library/tarfile.rst:1310 msgid "How to extract an entire tar archive to the current working directory::" msgstr "" -#: library/tarfile.rst:1288 +#: library/tarfile.rst:1312 msgid "" "import tarfile\n" "tar = tarfile.open(\"sample.tar.gz\")\n" @@ -1699,13 +1727,13 @@ msgid "" "tar.close()" msgstr "" -#: library/tarfile.rst:1293 +#: library/tarfile.rst:1317 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:1296 +#: library/tarfile.rst:1320 msgid "" "import os\n" "import tarfile\n" @@ -1720,11 +1748,37 @@ msgid "" "tar.close()" msgstr "" -#: library/tarfile.rst:1308 +#: library/tarfile.rst:1332 +msgid "" +"How to read a gzip compressed tar archive and display some member " +"information::" +msgstr "" + +#: library/tarfile.rst:1334 +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:1347 +msgid "Writing examples" +msgstr "" + +#: library/tarfile.rst:1349 msgid "How to create an uncompressed tar archive from a list of filenames::" msgstr "" -#: library/tarfile.rst:1310 +#: library/tarfile.rst:1351 msgid "" "import tarfile\n" "tar = tarfile.open(\"sample.tar\", \"w\")\n" @@ -1733,11 +1787,11 @@ msgid "" "tar.close()" msgstr "" -#: library/tarfile.rst:1316 +#: library/tarfile.rst:1357 msgid "The same example using the :keyword:`with` statement::" msgstr "" -#: library/tarfile.rst:1318 +#: library/tarfile.rst:1359 msgid "" "import tarfile\n" "with tarfile.open(\"sample.tar\", \"w\") as tar:\n" @@ -1745,35 +1799,29 @@ msgid "" " tar.add(name)" msgstr "" -#: library/tarfile.rst:1323 +#: library/tarfile.rst:1364 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:1325 +#: library/tarfile.rst:1368 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:1337 +#: library/tarfile.rst:1374 msgid "" "How to create an archive and reset the user information using the *filter* " "parameter in :meth:`TarFile.add`::" msgstr "" -#: library/tarfile.rst:1340 +#: library/tarfile.rst:1377 msgid "" "import tarfile\n" "def reset(tarinfo):\n" @@ -1785,17 +1833,17 @@ msgid "" "tar.close()" msgstr "" -#: library/tarfile.rst:1353 +#: library/tarfile.rst:1390 msgid "Supported tar formats" msgstr "" -#: library/tarfile.rst:1355 +#: library/tarfile.rst:1392 msgid "" "There are three tar formats that can be created with the :mod:`tarfile` " "module:" msgstr "" -#: library/tarfile.rst:1357 +#: library/tarfile.rst:1394 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. " @@ -1803,7 +1851,7 @@ msgid "" "supported format." msgstr "" -#: library/tarfile.rst:1362 +#: library/tarfile.rst:1399 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 " @@ -1811,7 +1859,7 @@ msgid "" "extensions for long names, sparse file support is read-only." msgstr "" -#: library/tarfile.rst:1367 +#: library/tarfile.rst:1404 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, " @@ -1822,7 +1870,7 @@ msgid "" "*ustar* format. It is the current default format for new archives." msgstr "" -#: library/tarfile.rst:1375 +#: library/tarfile.rst:1412 msgid "" "It extends the existing *ustar* format with extra headers for information " "that cannot be stored otherwise. There are two flavours of pax headers: " @@ -1831,13 +1879,13 @@ msgid "" "in a pax header is encoded in *UTF-8* for portability reasons." msgstr "" -#: library/tarfile.rst:1381 +#: library/tarfile.rst:1418 msgid "" "There are some more variants of the tar format which can be read, but not " "created:" msgstr "" -#: library/tarfile.rst:1384 +#: library/tarfile.rst:1421 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 " @@ -1846,17 +1894,17 @@ msgid "" "ASCII characters." msgstr "" -#: library/tarfile.rst:1389 +#: library/tarfile.rst:1426 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:1395 +#: library/tarfile.rst:1432 msgid "Unicode issues" msgstr "" -#: library/tarfile.rst:1397 +#: library/tarfile.rst:1434 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 " @@ -1871,13 +1919,13 @@ msgid "" "It stores non-ASCII metadata using the universal character encoding *UTF-8*." msgstr "" -#: library/tarfile.rst:1409 +#: library/tarfile.rst:1446 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:1412 +#: library/tarfile.rst:1449 msgid "" "*encoding* defines the character encoding to use for the metadata in the " "archive. The default value is :func:`sys.getfilesystemencoding` or " @@ -1886,7 +1934,7 @@ msgid "" "not set appropriately, this conversion may fail." msgstr "" -#: library/tarfile.rst:1418 +#: library/tarfile.rst:1455 msgid "" "The *errors* argument defines how characters are treated that cannot be " "converted. Possible values are listed in section :ref:`error-handlers`. The " @@ -1894,7 +1942,7 @@ msgid "" "system calls, see :ref:`os-filenames`." msgstr "" -#: library/tarfile.rst:1423 +#: library/tarfile.rst:1460 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 7b3592cb..289483f2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1c202e95..e9d06687 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3b4694a4..c046fba8 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 caf551c2..18708ab6 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/text.po b/library/text.po index 45c6e235..53472d38 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 2f49579d..83ef8a6f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/threading.po b/library/threading.po index 91a7f0cb..676704cd 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -31,38 +31,103 @@ msgid "" "level :mod:`_thread` module." msgstr "" -#: library/threading.rst:14 -msgid "This module used to be optional, it is now always available." +#: library/threading.rst:293 includes/wasm-notavail.rst:3 +msgid "Availability" +msgstr "" + +#: includes/wasm-notavail.rst:5 +msgid "" +"This module does not work or is not available on WebAssembly. See :ref:`wasm-" +"availability` for more information." +msgstr "" + +#: library/threading.rst:17 +msgid "Introduction" msgstr "" #: library/threading.rst:19 msgid "" +"The :mod:`!threading` module provides a way to run multiple `threads " +"`_ (smaller units of a " +"process) concurrently within a single process. It allows for the creation " +"and management of threads, making it possible to execute tasks in parallel, " +"sharing memory space. Threads are particularly useful when tasks are I/O " +"bound, such as file operations or making network requests, where much of the " +"time is spent waiting for external resources." +msgstr "" + +#: library/threading.rst:27 +msgid "" +"A typical use case for :mod:`!threading` includes managing a pool of worker " +"threads that can process multiple tasks concurrently. Here's a basic " +"example of creating and starting threads using :class:`~threading.Thread`::" +msgstr "" + +#: library/threading.rst:31 +msgid "" +"import threading\n" +"import time\n" +"\n" +"def crawl(link, delay=3):\n" +" print(f\"crawl started for {link}\")\n" +" time.sleep(delay) # Blocking I/O (simulating a network request)\n" +" print(f\"crawl ended for {link}\")\n" +"\n" +"links = [\n" +" \"https://python.org\",\n" +" \"https://docs.python.org\",\n" +" \"https://peps.python.org\",\n" +"]\n" +"\n" +"# Start threads for each link\n" +"threads = []\n" +"for link in links:\n" +" # Using `args` to pass positional arguments and `kwargs` for keyword " +"arguments\n" +" t = threading.Thread(target=crawl, args=(link,), kwargs={\"delay\": 2})\n" +" threads.append(t)\n" +"\n" +"# Start each thread\n" +"for t in threads:\n" +" t.start()\n" +"\n" +"# Wait for all threads to finish\n" +"for t in threads:\n" +" t.join()" +msgstr "" + +#: library/threading.rst:60 +msgid "This module used to be optional, it is now always available." +msgstr "" + +#: library/threading.rst:65 +msgid "" ":class:`concurrent.futures.ThreadPoolExecutor` offers a higher level " "interface to push tasks to a background thread without blocking execution of " "the calling thread, while still being able to retrieve their results when " "needed." msgstr "" -#: library/threading.rst:23 +#: library/threading.rst:69 msgid "" ":mod:`queue` provides a thread-safe interface for exchanging data between " "running threads." msgstr "" -#: library/threading.rst:26 +#: library/threading.rst:72 msgid "" ":mod:`asyncio` offers an alternative approach to achieving task level " "concurrency without requiring the use of multiple operating system threads." msgstr "" -#: library/threading.rst:31 +#: library/threading.rst:77 msgid "" "In the Python 2.x series, this module contained ``camelCase`` names for some " "methods and functions. These are deprecated as of Python 3.10, but they are " "still supported for compatibility with Python 2.5 and lower." msgstr "" -#: library/threading.rst:38 +#: library/threading.rst:84 msgid "" "In CPython, due to the :term:`Global Interpreter Lock `, only one thread can execute Python code at once (even though certain " @@ -73,110 +138,126 @@ msgid "" "appropriate model if you want to run multiple I/O-bound tasks simultaneously." msgstr "" -#: library/threading.rst:229 includes/wasm-notavail.rst:3 -msgid "Availability" +#: library/threading.rst:95 +msgid "GIL and performance considerations" msgstr "" -#: includes/wasm-notavail.rst:5 +#: library/threading.rst:97 msgid "" -"This module does not work or is not available on WebAssembly. See :ref:`wasm-" -"availability` for more information." +"Unlike the :mod:`multiprocessing` module, which uses separate processes to " +"bypass the :term:`global interpreter lock` (GIL), the threading module " +"operates within a single process, meaning that all threads share the same " +"memory space. However, the GIL limits the performance gains of threading " +"when it comes to CPU-bound tasks, as only one thread can execute Python " +"bytecode at a time. Despite this, threads remain a useful tool for achieving " +"concurrency in many scenarios." msgstr "" -#: library/threading.rst:50 +#: library/threading.rst:105 +msgid "" +"As of Python 3.13, experimental :term:`free-threaded ` " +"builds can disable the GIL, enabling true parallel execution of threads, but " +"this feature is not available by default (see :pep:`703`)." +msgstr "" + +#: library/threading.rst:112 +msgid "Reference" +msgstr "" + +#: library/threading.rst:114 msgid "This module defines the following functions:" msgstr "" -#: library/threading.rst:55 +#: library/threading.rst:119 msgid "" "Return the number of :class:`Thread` objects currently alive. The returned " "count is equal to the length of the list returned by :func:`.enumerate`." msgstr "" -#: library/threading.rst:58 +#: library/threading.rst:122 msgid "The function ``activeCount`` is a deprecated alias for this function." msgstr "" -#: library/threading.rst:63 +#: library/threading.rst:127 msgid "" "Return the current :class:`Thread` object, corresponding to the caller's " "thread of control. If the caller's thread of control was not created " -"through the :mod:`threading` module, a dummy thread object with limited " +"through the :mod:`!threading` module, a dummy thread object with limited " "functionality is returned." msgstr "" -#: library/threading.rst:68 +#: library/threading.rst:132 msgid "The function ``currentThread`` is a deprecated alias for this function." msgstr "" -#: library/threading.rst:73 +#: library/threading.rst:137 msgid "Handle uncaught exception raised by :func:`Thread.run`." msgstr "" -#: library/threading.rst:75 +#: library/threading.rst:139 msgid "The *args* argument has the following attributes:" msgstr "" -#: library/threading.rst:77 +#: library/threading.rst:141 msgid "*exc_type*: Exception type." msgstr "" -#: library/threading.rst:78 +#: library/threading.rst:142 msgid "*exc_value*: Exception value, can be ``None``." msgstr "" -#: library/threading.rst:79 +#: library/threading.rst:143 msgid "*exc_traceback*: Exception traceback, can be ``None``." msgstr "" -#: library/threading.rst:80 +#: library/threading.rst:144 msgid "*thread*: Thread which raised the exception, can be ``None``." msgstr "" -#: library/threading.rst:82 +#: library/threading.rst:146 msgid "" "If *exc_type* is :exc:`SystemExit`, the exception is silently ignored. " "Otherwise, the exception is printed out on :data:`sys.stderr`." msgstr "" -#: library/threading.rst:85 +#: library/threading.rst:149 msgid "" "If this function raises an exception, :func:`sys.excepthook` is called to " "handle it." msgstr "" -#: library/threading.rst:88 +#: library/threading.rst:152 msgid "" ":func:`threading.excepthook` can be overridden to control how uncaught " "exceptions raised by :func:`Thread.run` are handled." msgstr "" -#: library/threading.rst:91 +#: library/threading.rst:155 msgid "" "Storing *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/threading.rst:95 +#: library/threading.rst:159 msgid "" "Storing *thread* using a custom hook can resurrect it if it is set to an " "object which is being finalized. Avoid storing *thread* after the custom " "hook completes to avoid resurrecting objects." msgstr "" -#: library/threading.rst:100 +#: library/threading.rst:164 msgid ":func:`sys.excepthook` handles uncaught exceptions." msgstr "" -#: library/threading.rst:106 +#: library/threading.rst:170 msgid "" "Holds the original value of :func:`threading.excepthook`. It is saved so " "that the original value can be restored in case they happen to get replaced " "with broken or alternative objects." msgstr "" -#: library/threading.rst:114 +#: library/threading.rst:178 msgid "" "Return the 'thread identifier' of the current thread. This is a nonzero " "integer. Its value has no direct meaning; it is intended as a magic cookie " @@ -185,7 +266,7 @@ msgid "" "created." msgstr "" -#: library/threading.rst:125 +#: library/threading.rst:189 msgid "" "Return the native integral Thread ID of the current thread assigned by the " "kernel. This is a non-negative integer. Its value may be used to uniquely " @@ -193,11 +274,11 @@ msgid "" "after which the value may be recycled by the OS)." msgstr "" -#: library/threading.rst:134 +#: library/threading.rst:198 msgid "Added support for GNU/kFreeBSD." msgstr "" -#: library/threading.rst:140 +#: library/threading.rst:204 msgid "" "Return a list of all :class:`Thread` objects currently active. The list " "includes daemonic threads and dummy thread objects created by :func:" @@ -206,59 +287,59 @@ msgid "" "even when terminated." msgstr "" -#: library/threading.rst:149 +#: library/threading.rst:213 msgid "" "Return the main :class:`Thread` object. In normal conditions, the main " "thread is the thread from which the Python interpreter was started." msgstr "" -#: library/threading.rst:160 +#: library/threading.rst:224 msgid "" -"Set a trace function for all threads started from the :mod:`threading` " +"Set a trace function for all threads started from the :mod:`!threading` " "module. The *func* will be passed to :func:`sys.settrace` for each thread, " "before its :meth:`~Thread.run` method is called." msgstr "" -#: library/threading.rst:166 +#: library/threading.rst:230 msgid "" -"Set a trace function for all threads started from the :mod:`threading` " +"Set a trace function for all threads started from the :mod:`!threading` " "module and all Python threads that are currently executing." msgstr "" -#: library/threading.rst:169 +#: library/threading.rst:233 msgid "" "The *func* will be passed to :func:`sys.settrace` for each thread, before " "its :meth:`~Thread.run` method is called." msgstr "" -#: library/threading.rst:180 +#: library/threading.rst:244 msgid "Get the trace function as set by :func:`settrace`." msgstr "" -#: library/threading.rst:189 +#: library/threading.rst:253 msgid "" -"Set a profile function for all threads started from the :mod:`threading` " +"Set a profile function for all threads started from the :mod:`!threading` " "module. The *func* will be passed to :func:`sys.setprofile` for each " "thread, before its :meth:`~Thread.run` method is called." msgstr "" -#: library/threading.rst:195 +#: library/threading.rst:259 msgid "" -"Set a profile function for all threads started from the :mod:`threading` " +"Set a profile function for all threads started from the :mod:`!threading` " "module and all Python threads that are currently executing." msgstr "" -#: library/threading.rst:198 +#: library/threading.rst:262 msgid "" "The *func* will be passed to :func:`sys.setprofile` for each thread, before " "its :meth:`~Thread.run` method is called." msgstr "" -#: library/threading.rst:207 +#: library/threading.rst:271 msgid "Get the profiler function as set by :func:`setprofile`." msgstr "" -#: library/threading.rst:214 +#: library/threading.rst:278 msgid "" "Return the thread stack size used when creating new threads. The optional " "*size* argument specifies the stack size to be used for subsequently created " @@ -277,15 +358,15 @@ msgid "" "information)." msgstr "" -#: library/threading.rst:231 +#: library/threading.rst:295 msgid "Unix platforms with POSIX threads support." msgstr "" -#: library/threading.rst:234 +#: library/threading.rst:298 msgid "This module also defines the following constant:" msgstr "" -#: library/threading.rst:238 +#: library/threading.rst:302 msgid "" "The maximum value allowed for the *timeout* parameter of blocking functions " "(:meth:`Lock.acquire`, :meth:`RLock.acquire`, :meth:`Condition.wait`, etc.). " @@ -293,13 +374,13 @@ msgid "" "`OverflowError`." msgstr "" -#: library/threading.rst:246 +#: library/threading.rst:310 msgid "" "This module defines a number of classes, which are detailed in the sections " "below." msgstr "" -#: library/threading.rst:249 +#: library/threading.rst:313 msgid "" "The design of this module is loosely based on Java's threading model. " "However, where Java makes locks and condition variables basic behavior of " @@ -310,46 +391,222 @@ msgid "" "Thread class, when implemented, are mapped to module-level functions." msgstr "" -#: library/threading.rst:257 +#: library/threading.rst:321 msgid "All of the methods described below are executed atomically." msgstr "" -#: library/threading.rst:261 -msgid "Thread-Local Data" +#: library/threading.rst:325 +msgid "Thread-local data" msgstr "" -#: library/threading.rst:263 +#: library/threading.rst:327 msgid "" -"Thread-local data is data whose values are thread specific. To manage " -"thread-local data, just create an instance of :class:`local` (or a subclass) " -"and store attributes on it::" +"Thread-local data is data whose values are thread specific. If you have data " +"that you want to be local to a thread, create a :class:`local` object and " +"use its attributes::" msgstr "" -#: library/threading.rst:267 +#: library/threading.rst:331 msgid "" -"mydata = threading.local()\n" -"mydata.x = 1" +">>> mydata = local()\n" +">>> mydata.number = 42\n" +">>> mydata.number\n" +"42" msgstr "" -#: library/threading.rst:270 -msgid "The instance's values will be different for separate threads." +#: library/threading.rst:336 +msgid "You can also access the :class:`local`-object's dictionary::" msgstr "" -#: library/threading.rst:275 -msgid "A class that represents thread-local data." +#: library/threading.rst:338 +msgid "" +">>> mydata.__dict__\n" +"{'number': 42}\n" +">>> mydata.__dict__.setdefault('widgets', [])\n" +"[]\n" +">>> mydata.widgets\n" +"[]" +msgstr "" + +#: library/threading.rst:345 +msgid "If we access the data in a different thread::" +msgstr "" + +#: library/threading.rst:347 +msgid "" +">>> log = []\n" +">>> def f():\n" +"... items = sorted(mydata.__dict__.items())\n" +"... log.append(items)\n" +"... mydata.number = 11\n" +"... log.append(mydata.number)\n" +"\n" +">>> import threading\n" +">>> thread = threading.Thread(target=f)\n" +">>> thread.start()\n" +">>> thread.join()\n" +">>> log\n" +"[[], 11]" +msgstr "" + +#: library/threading.rst:361 +msgid "" +"we get different data. Furthermore, changes made in the other thread don't " +"affect data seen in this thread::" +msgstr "" + +#: library/threading.rst:364 +msgid "" +">>> mydata.number\n" +"42" +msgstr "" + +#: library/threading.rst:367 +msgid "" +"Of course, values you get from a :class:`local` object, including their :" +"attr:`~object.__dict__` attribute, are for whatever thread was current at " +"the time the attribute was read. For that reason, you generally don't want " +"to save these values across threads, as they apply only to the thread they " +"came from." +msgstr "" + +#: library/threading.rst:373 +msgid "" +"You can create custom :class:`local` objects by subclassing the :class:" +"`local` class::" +msgstr "" + +#: library/threading.rst:376 +msgid "" +">>> class MyLocal(local):\n" +"... number = 2\n" +"... def __init__(self, /, **kw):\n" +"... self.__dict__.update(kw)\n" +"... def squared(self):\n" +"... return self.number ** 2" +msgstr "" + +#: library/threading.rst:383 +msgid "" +"This can be useful to support default values, methods and initialization. " +"Note that if you define an :py:meth:`~object.__init__` method, it will be " +"called each time the :class:`local` object is used in a separate thread. " +"This is necessary to initialize each thread's dictionary." +msgstr "" + +#: library/threading.rst:389 +msgid "Now if we create a :class:`local` object::" +msgstr "" + +#: library/threading.rst:391 +msgid ">>> mydata = MyLocal(color='red')" +msgstr "" + +#: library/threading.rst:393 +msgid "we have a default number::" +msgstr "" + +#: library/threading.rst:395 +msgid "" +">>> mydata.number\n" +"2" +msgstr "" + +#: library/threading.rst:398 +msgid "an initial color::" +msgstr "" + +#: library/threading.rst:400 +msgid "" +">>> mydata.color\n" +"'red'\n" +">>> del mydata.color" +msgstr "" + +#: library/threading.rst:404 +msgid "And a method that operates on the data::" +msgstr "" + +#: library/threading.rst:406 +msgid "" +">>> mydata.squared()\n" +"4" +msgstr "" + +#: library/threading.rst:409 +msgid "As before, we can access the data in a separate thread::" +msgstr "" + +#: library/threading.rst:411 +msgid "" +">>> log = []\n" +">>> thread = threading.Thread(target=f)\n" +">>> thread.start()\n" +">>> thread.join()\n" +">>> log\n" +"[[('color', 'red')], 11]" +msgstr "" + +#: library/threading.rst:418 +msgid "without affecting this thread's data::" +msgstr "" + +#: library/threading.rst:420 +msgid "" +">>> mydata.number\n" +"2\n" +">>> mydata.color\n" +"Traceback (most recent call last):\n" +"...\n" +"AttributeError: 'MyLocal' object has no attribute 'color'" msgstr "" -#: library/threading.rst:277 +#: library/threading.rst:427 msgid "" -"For more details and extensive examples, see the documentation string of " -"the :mod:`!_threading_local` module: :source:`Lib/_threading_local.py`." +"Note that subclasses can define :term:`__slots__`, but they are not thread " +"local. They are shared across threads::" msgstr "" -#: library/threading.rst:284 -msgid "Thread Objects" +#: library/threading.rst:430 +msgid "" +">>> class MyLocal(local):\n" +"... __slots__ = 'number'\n" +"\n" +">>> mydata = MyLocal()\n" +">>> mydata.number = 42\n" +">>> mydata.color = 'red'" +msgstr "" + +#: library/threading.rst:437 +msgid "So, the separate thread::" msgstr "" -#: library/threading.rst:286 +#: library/threading.rst:439 +msgid "" +">>> thread = threading.Thread(target=f)\n" +">>> thread.start()\n" +">>> thread.join()" +msgstr "" + +#: library/threading.rst:443 +msgid "affects what we see::" +msgstr "" + +#: library/threading.rst:445 +msgid "" +">>> mydata.number\n" +"11" +msgstr "" + +#: library/threading.rst:451 +msgid "A class that represents thread-local data." +msgstr "" + +#: library/threading.rst:457 +msgid "Thread objects" +msgstr "" + +#: library/threading.rst:459 msgid "" "The :class:`Thread` class represents an activity that is run in a separate " "thread of control. There are two ways to specify the activity: by passing a " @@ -359,14 +616,14 @@ msgid "" "``__init__()`` and :meth:`~Thread.run` methods of this class." msgstr "" -#: library/threading.rst:293 +#: library/threading.rst:466 msgid "" "Once a thread object is created, its activity must be started by calling the " "thread's :meth:`~Thread.start` method. This invokes the :meth:`~Thread.run` " "method in a separate thread of control." msgstr "" -#: library/threading.rst:297 +#: library/threading.rst:470 msgid "" "Once the thread's activity is started, the thread is considered 'alive'. It " "stops being alive when its :meth:`~Thread.run` method terminates -- either " @@ -374,27 +631,27 @@ msgid "" "is_alive` method tests whether the thread is alive." msgstr "" -#: library/threading.rst:302 +#: library/threading.rst:475 msgid "" "Other threads can call a thread's :meth:`~Thread.join` method. This blocks " "the calling thread until the thread whose :meth:`~Thread.join` method is " "called is terminated." msgstr "" -#: library/threading.rst:306 +#: library/threading.rst:479 msgid "" "A thread has a name. The name can be passed to the constructor, and read or " "changed through the :attr:`~Thread.name` attribute." msgstr "" -#: library/threading.rst:309 +#: library/threading.rst:482 msgid "" "If the :meth:`~Thread.run` method raises an exception, :func:`threading." "excepthook` is called to handle it. By default, :func:`threading.excepthook` " "ignores silently :exc:`SystemExit`." msgstr "" -#: library/threading.rst:313 +#: library/threading.rst:486 msgid "" "A thread can be flagged as a \"daemon thread\". The significance of this " "flag is that the entire Python program exits when only daemon threads are " @@ -403,7 +660,7 @@ msgid "" "constructor argument." msgstr "" -#: library/threading.rst:320 +#: library/threading.rst:493 msgid "" "Daemon threads are abruptly stopped at shutdown. Their resources (such as " "open files, database transactions, etc.) may not be released properly. If " @@ -411,13 +668,13 @@ msgid "" "suitable signalling mechanism such as an :class:`Event`." msgstr "" -#: library/threading.rst:325 +#: library/threading.rst:498 msgid "" "There is a \"main thread\" object; this corresponds to the initial thread of " "control in the Python program. It is not a daemon thread." msgstr "" -#: library/threading.rst:328 +#: library/threading.rst:501 msgid "" "There is the possibility that \"dummy thread objects\" are created. These " "are thread objects corresponding to \"alien threads\", which are threads of " @@ -428,25 +685,25 @@ msgid "" "threads." msgstr "" -#: library/threading.rst:339 +#: library/threading.rst:512 msgid "" "This constructor should always be called with keyword arguments. Arguments " "are:" msgstr "" -#: library/threading.rst:342 +#: library/threading.rst:515 msgid "" "*group* should be ``None``; reserved for future extension when a :class:`!" "ThreadGroup` class is implemented." msgstr "" -#: library/threading.rst:345 +#: library/threading.rst:518 msgid "" "*target* is the callable object to be invoked by the :meth:`run` method. " "Defaults to ``None``, meaning nothing is called." msgstr "" -#: library/threading.rst:348 +#: library/threading.rst:521 msgid "" "*name* is the thread name. By default, a unique name is constructed of the " "form \"Thread-*N*\" where *N* is a small decimal number, or \"Thread-*N* " @@ -454,62 +711,62 @@ msgid "" "is specified." msgstr "" -#: library/threading.rst:353 +#: library/threading.rst:526 msgid "" "*args* is a list or tuple of arguments for the target invocation. Defaults " "to ``()``." msgstr "" -#: library/threading.rst:355 +#: library/threading.rst:528 msgid "" "*kwargs* is a dictionary of keyword arguments for the target invocation. " "Defaults to ``{}``." msgstr "" -#: library/threading.rst:358 +#: library/threading.rst:531 msgid "" "If not ``None``, *daemon* explicitly sets whether the thread is daemonic. If " "``None`` (the default), the daemonic property is inherited from the current " "thread." msgstr "" -#: library/threading.rst:362 +#: library/threading.rst:535 msgid "" "If the subclass overrides the constructor, it must make sure to invoke the " "base class constructor (``Thread.__init__()``) before doing anything else to " "the thread." msgstr "" -#: library/threading.rst:366 +#: library/threading.rst:539 msgid "Added the *daemon* parameter." msgstr "" -#: library/threading.rst:369 +#: library/threading.rst:542 msgid "Use the *target* name if *name* argument is omitted." msgstr "" -#: library/threading.rst:374 +#: library/threading.rst:547 msgid "Start the thread's activity." msgstr "" -#: library/threading.rst:376 +#: library/threading.rst:549 msgid "" "It must be called at most once per thread object. It arranges for the " "object's :meth:`~Thread.run` method to be invoked in a separate thread of " "control." msgstr "" -#: library/threading.rst:380 +#: library/threading.rst:553 msgid "" "This method will raise a :exc:`RuntimeError` if called more than once on the " "same thread object." msgstr "" -#: library/threading.rst:385 +#: library/threading.rst:558 msgid "Method representing the thread's activity." msgstr "" -#: library/threading.rst:387 +#: library/threading.rst:560 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 " @@ -517,17 +774,17 @@ msgid "" "the *args* and *kwargs* arguments, respectively." msgstr "" -#: library/threading.rst:392 +#: library/threading.rst:565 msgid "" "Using list or tuple as the *args* argument which passed to the :class:" "`Thread` could achieve the same effect." msgstr "" -#: library/threading.rst:395 +#: library/threading.rst:568 msgid "Example::" msgstr "" -#: library/threading.rst:397 +#: library/threading.rst:570 msgid "" ">>> from threading import Thread\n" ">>> t = Thread(target=print, args=[1])\n" @@ -538,7 +795,7 @@ msgid "" "1" msgstr "" -#: library/threading.rst:409 +#: library/threading.rst:582 msgid "" "Wait until the thread terminates. This blocks the calling thread until the " "thread whose :meth:`~Thread.join` method is called terminates -- either " @@ -546,7 +803,7 @@ msgid "" "occurs." msgstr "" -#: library/threading.rst:414 +#: library/threading.rst:587 msgid "" "When the *timeout* argument is present and not ``None``, it should be a " "floating-point number specifying a timeout for the operation in seconds (or " @@ -556,17 +813,17 @@ msgid "" "`~Thread.join` call timed out." msgstr "" -#: library/threading.rst:421 +#: library/threading.rst:594 msgid "" "When the *timeout* argument is not present or ``None``, the operation will " "block until the thread terminates." msgstr "" -#: library/threading.rst:424 +#: library/threading.rst:597 msgid "A thread can be joined many times." msgstr "" -#: library/threading.rst:426 +#: library/threading.rst:599 msgid "" ":meth:`~Thread.join` raises a :exc:`RuntimeError` if an attempt is made to " "join the current thread as that would cause a deadlock. It is also an error " @@ -574,20 +831,20 @@ msgid "" "do so raise the same exception." msgstr "" -#: library/threading.rst:433 +#: library/threading.rst:606 msgid "" "A string used for identification purposes only. It has no semantics. " "Multiple threads may be given the same name. The initial name is set by the " "constructor." msgstr "" -#: library/threading.rst:440 +#: library/threading.rst:613 msgid "" "Deprecated getter/setter API for :attr:`~Thread.name`; use it directly as a " "property instead." msgstr "" -#: library/threading.rst:447 +#: library/threading.rst:620 msgid "" "The 'thread identifier' of this thread or ``None`` if the thread has not " "been started. This is a nonzero integer. See the :func:`get_ident` " @@ -596,7 +853,7 @@ msgid "" "thread has exited." msgstr "" -#: library/threading.rst:455 +#: library/threading.rst:628 msgid "" "The Thread ID (``TID``) of this thread, as assigned by the OS (kernel). This " "is a non-negative integer, or ``None`` if the thread has not been started. " @@ -605,25 +862,25 @@ msgid "" "after which the value may be recycled by the OS)." msgstr "" -#: library/threading.rst:464 +#: library/threading.rst:637 msgid "" "Similar to Process IDs, Thread IDs are only valid (guaranteed unique system-" "wide) from the time the thread is created until the thread has been " "terminated." msgstr "" -#: library/threading.rst:474 +#: library/threading.rst:647 msgid "Return whether the thread is alive." msgstr "" -#: library/threading.rst:476 +#: library/threading.rst:649 msgid "" "This method returns ``True`` just before the :meth:`~Thread.run` method " "starts until just after the :meth:`~Thread.run` method terminates. The " "module function :func:`.enumerate` returns a list of all alive threads." msgstr "" -#: library/threading.rst:482 +#: library/threading.rst:655 msgid "" "A boolean value indicating whether this thread is a daemon thread (``True``) " "or not (``False``). This must be set before :meth:`~Thread.start` is " @@ -633,22 +890,22 @@ msgid "" "`~Thread.daemon` = ``False``." msgstr "" -#: library/threading.rst:489 +#: library/threading.rst:662 msgid "" "The entire Python program exits when no alive non-daemon threads are left." msgstr "" -#: library/threading.rst:494 +#: library/threading.rst:667 msgid "" "Deprecated getter/setter API for :attr:`~Thread.daemon`; use it directly as " "a property instead." msgstr "" -#: library/threading.rst:503 -msgid "Lock Objects" +#: library/threading.rst:676 +msgid "Lock objects" msgstr "" -#: library/threading.rst:505 +#: library/threading.rst:678 msgid "" "A primitive lock is a synchronization primitive that is not owned by a " "particular thread when locked. In Python, it is currently the lowest level " @@ -656,7 +913,7 @@ msgid "" "`_thread` extension module." msgstr "" -#: library/threading.rst:510 +#: library/threading.rst:683 msgid "" "A primitive lock is in one of two states, \"locked\" or \"unlocked\". It is " "created in the unlocked state. It has two basic methods, :meth:`~Lock." @@ -670,11 +927,11 @@ msgid "" "an unlocked lock, a :exc:`RuntimeError` will be raised." msgstr "" -#: library/threading.rst:521 +#: library/threading.rst:694 msgid "Locks also support the :ref:`context management protocol `." msgstr "" -#: library/threading.rst:523 +#: library/threading.rst:696 msgid "" "When more than one thread is blocked in :meth:`~Lock.acquire` waiting for " "the state to turn to unlocked, only one thread proceeds when a :meth:`~Lock." @@ -682,41 +939,41 @@ msgid "" "proceeds is not defined, and may vary across implementations." msgstr "" -#: library/threading.rst:528 +#: library/threading.rst:701 msgid "All methods are executed atomically." msgstr "" -#: library/threading.rst:533 +#: library/threading.rst:706 msgid "" "The class implementing primitive lock objects. Once a thread has acquired a " "lock, subsequent attempts to acquire it block, until it is released; any " "thread may release it." msgstr "" -#: library/threading.rst:537 +#: library/threading.rst:710 msgid "" "``Lock`` is now a class. In earlier Pythons, ``Lock`` was a factory function " "which returned an instance of the underlying private lock type." msgstr "" -#: library/threading.rst:636 +#: library/threading.rst:809 msgid "Acquire a lock, blocking or non-blocking." msgstr "" -#: library/threading.rst:547 +#: library/threading.rst:720 msgid "" "When invoked with the *blocking* argument set to ``True`` (the default), " "block until the lock is unlocked, then set it to locked and return ``True``." msgstr "" -#: library/threading.rst:550 +#: library/threading.rst:723 msgid "" "When invoked with the *blocking* argument set to ``False``, do not block. If " "a call with *blocking* set to ``True`` would block, return ``False`` " "immediately; otherwise, set the lock to locked and return ``True``." msgstr "" -#: library/threading.rst:554 +#: library/threading.rst:727 msgid "" "When invoked with the floating-point *timeout* argument set to a positive " "value, block for at most the number of seconds specified by *timeout* and as " @@ -725,52 +982,52 @@ msgid "" "*blocking* is ``False``." msgstr "" -#: library/threading.rst:560 +#: library/threading.rst:733 msgid "" "The return value is ``True`` if the lock is acquired successfully, ``False`` " "if not (for example if the *timeout* expired)." msgstr "" -#: library/threading.rst:674 library/threading.rst:921 +#: library/threading.rst:847 library/threading.rst:1094 msgid "The *timeout* parameter is new." msgstr "" -#: library/threading.rst:566 +#: library/threading.rst:739 msgid "" "Lock acquisition can now be interrupted by signals on POSIX if the " "underlying threading implementation supports it." msgstr "" -#: library/threading.rst:573 +#: library/threading.rst:746 msgid "" "Release a lock. This can be called from any thread, not only the thread " "which has acquired the lock." msgstr "" -#: library/threading.rst:576 +#: library/threading.rst:749 msgid "" "When the lock is locked, reset it to unlocked, and return. If any other " "threads are blocked waiting for the lock to become unlocked, allow exactly " "one of them to proceed." msgstr "" -#: library/threading.rst:580 +#: library/threading.rst:753 msgid "When invoked on an unlocked lock, a :exc:`RuntimeError` is raised." msgstr "" -#: library/threading.rst:690 +#: library/threading.rst:863 msgid "There is no return value." msgstr "" -#: library/threading.rst:586 +#: library/threading.rst:759 msgid "Return ``True`` if the lock is acquired." msgstr "" -#: library/threading.rst:593 -msgid "RLock Objects" +#: library/threading.rst:766 +msgid "RLock objects" msgstr "" -#: library/threading.rst:595 +#: library/threading.rst:768 msgid "" "A reentrant lock is a synchronization primitive that may be acquired " "multiple times by the same thread. Internally, it uses the concepts of " @@ -779,13 +1036,13 @@ msgid "" "lock; in the unlocked state, no thread owns it." msgstr "" -#: library/threading.rst:601 +#: library/threading.rst:774 msgid "" "Threads call a lock's :meth:`~RLock.acquire` method to lock it, and its :" "meth:`~Lock.release` method to unlock it." msgstr "" -#: library/threading.rst:606 +#: library/threading.rst:779 msgid "" "Reentrant locks support the :ref:`context management protocol `, " "so it is recommended to use :keyword:`with` instead of manually calling :" @@ -793,7 +1050,7 @@ msgid "" "releasing the lock for a block of code." msgstr "" -#: library/threading.rst:611 +#: library/threading.rst:784 msgid "" "RLock's :meth:`~RLock.acquire`/:meth:`~RLock.release` call pairs may be " "nested, unlike Lock's :meth:`~Lock.acquire`/:meth:`~Lock.release`. Only the " @@ -802,7 +1059,7 @@ msgid "" "in :meth:`~RLock.acquire` to proceed." msgstr "" -#: library/threading.rst:617 +#: library/threading.rst:790 msgid "" ":meth:`~RLock.acquire`/:meth:`~RLock.release` must be used in pairs: each " "acquire must have a release in the thread that has acquired the lock. " @@ -810,7 +1067,7 @@ msgid "" "deadlock." msgstr "" -#: library/threading.rst:624 +#: library/threading.rst:797 msgid "" "This class implements reentrant lock objects. A reentrant lock must be " "released by the thread that acquired it. Once a thread has acquired a " @@ -818,39 +1075,39 @@ msgid "" "thread must release it once for each time it has acquired it." msgstr "" -#: library/threading.rst:629 +#: library/threading.rst:802 msgid "" "Note that ``RLock`` is actually a factory function which returns an instance " "of the most efficient version of the concrete RLock class that is supported " "by the platform." msgstr "" -#: library/threading.rst:640 +#: library/threading.rst:813 msgid ":ref:`Using RLock as a context manager `" msgstr "" -#: library/threading.rst:641 +#: library/threading.rst:814 msgid "" "Recommended over manual :meth:`!acquire` and :meth:`release` calls whenever " "practical." msgstr "" -#: library/threading.rst:645 +#: library/threading.rst:818 msgid "" "When invoked with the *blocking* argument set to ``True`` (the default):" msgstr "" -#: library/threading.rst:659 +#: library/threading.rst:832 msgid "If no thread owns the lock, acquire the lock and return immediately." msgstr "" -#: library/threading.rst:649 +#: library/threading.rst:822 msgid "" "If another thread owns the lock, block until we are able to acquire lock, or " "*timeout*, if set to a positive float value." msgstr "" -#: library/threading.rst:652 +#: library/threading.rst:825 msgid "" "If the same thread owns the lock, acquire the lock again, and return " "immediately. This is the difference between :class:`Lock` and :class:`!" @@ -858,35 +1115,35 @@ msgid "" "until the lock can be acquired." msgstr "" -#: library/threading.rst:657 +#: library/threading.rst:830 msgid "When invoked with the *blocking* argument set to ``False``:" msgstr "" -#: library/threading.rst:661 +#: library/threading.rst:834 msgid "If another thread owns the lock, return immediately." msgstr "" -#: library/threading.rst:663 +#: library/threading.rst:836 msgid "" "If the same thread owns the lock, acquire the lock again and return " "immediately." msgstr "" -#: library/threading.rst:666 +#: library/threading.rst:839 msgid "" "In all cases, if the thread was able to acquire the lock, return ``True``. " "If the thread was unable to acquire the lock (i.e. if not blocking or the " "timeout was reached) return ``False``." msgstr "" -#: library/threading.rst:670 +#: library/threading.rst:843 msgid "" "If called multiple times, failing to call :meth:`~RLock.release` as many " "times may lead to deadlock. Consider using :class:`!RLock` as a context " "manager rather than calling acquire/release directly." msgstr "" -#: library/threading.rst:680 +#: library/threading.rst:853 msgid "" "Release a lock, decrementing the recursion level. If after the decrement it " "is zero, reset the lock to unlocked (not owned by any thread), and if any " @@ -895,18 +1152,18 @@ msgid "" "is still nonzero, the lock remains locked and owned by the calling thread." msgstr "" -#: library/threading.rst:686 +#: library/threading.rst:859 msgid "" "Only call this method when the calling thread owns the lock. A :exc:" "`RuntimeError` is raised if this method is called when the lock is not " "acquired." msgstr "" -#: library/threading.rst:696 -msgid "Condition Objects" +#: library/threading.rst:869 +msgid "Condition objects" msgstr "" -#: library/threading.rst:698 +#: library/threading.rst:871 msgid "" "A condition variable is always associated with some kind of lock; this can " "be passed in or one will be created by default. Passing one in is useful " @@ -914,7 +1171,7 @@ msgid "" "of the condition object: you don't have to track it separately." msgstr "" -#: library/threading.rst:703 +#: library/threading.rst:876 msgid "" "A condition variable obeys the :ref:`context management protocol `: using the ``with`` statement acquires the associated lock for the " @@ -923,7 +1180,7 @@ msgid "" "associated lock." msgstr "" -#: library/threading.rst:709 +#: library/threading.rst:882 msgid "" "Other methods must be called with the associated lock held. The :meth:" "`~Condition.wait` method releases the lock, and then blocks until another " @@ -932,14 +1189,14 @@ msgid "" "and returns. It is also possible to specify a timeout." msgstr "" -#: library/threading.rst:715 +#: library/threading.rst:888 msgid "" "The :meth:`~Condition.notify` method wakes up one of the threads waiting for " "the condition variable, if any are waiting. The :meth:`~Condition." "notify_all` method wakes up all threads waiting for the condition variable." msgstr "" -#: library/threading.rst:719 +#: library/threading.rst:892 msgid "" "Note: the :meth:`~Condition.notify` and :meth:`~Condition.notify_all` " "methods don't release the lock; this means that the thread or threads " @@ -948,7 +1205,7 @@ msgid "" "or :meth:`~Condition.notify_all` finally relinquishes ownership of the lock." msgstr "" -#: library/threading.rst:725 +#: library/threading.rst:898 msgid "" "The typical programming style using condition variables uses the lock to " "synchronize access to some shared state; threads that are interested in a " @@ -960,7 +1217,7 @@ msgid "" "situation with unlimited buffer capacity::" msgstr "" -#: library/threading.rst:734 +#: library/threading.rst:907 msgid "" "# Consume one item\n" "with cv:\n" @@ -974,7 +1231,7 @@ msgid "" " cv.notify()" msgstr "" -#: library/threading.rst:745 +#: library/threading.rst:918 msgid "" "The ``while`` loop checking for the application's condition is necessary " "because :meth:`~Condition.wait` can return after an arbitrary long time, and " @@ -984,7 +1241,7 @@ msgid "" "checking, and eases the computation of timeouts::" msgstr "" -#: library/threading.rst:752 +#: library/threading.rst:925 msgid "" "# Consume an item\n" "with cv:\n" @@ -992,7 +1249,7 @@ msgid "" " get_an_available_item()" msgstr "" -#: library/threading.rst:757 +#: library/threading.rst:930 msgid "" "To choose between :meth:`~Condition.notify` and :meth:`~Condition." "notify_all`, consider whether one state change can be interesting for only " @@ -1001,44 +1258,44 @@ msgid "" "thread." msgstr "" -#: library/threading.rst:765 +#: library/threading.rst:938 msgid "" "This class implements condition variable objects. A condition variable " "allows one or more threads to wait until they are notified by another thread." msgstr "" -#: library/threading.rst:768 +#: library/threading.rst:941 msgid "" "If the *lock* argument is given and not ``None``, it must be a :class:`Lock` " "or :class:`RLock` object, and it is used as the underlying lock. Otherwise, " "a new :class:`RLock` object is created and used as the underlying lock." msgstr "" -#: library/threading.rst:896 library/threading.rst:994 -#: library/threading.rst:1062 +#: library/threading.rst:1069 library/threading.rst:1167 +#: library/threading.rst:1235 msgid "changed from a factory function to a class." msgstr "" -#: library/threading.rst:777 +#: library/threading.rst:950 msgid "" "Acquire the underlying lock. This method calls the corresponding method on " "the underlying lock; the return value is whatever that method returns." msgstr "" -#: library/threading.rst:782 +#: library/threading.rst:955 msgid "" "Release the underlying lock. This method calls the corresponding method on " "the underlying lock; there is no return value." msgstr "" -#: library/threading.rst:787 +#: library/threading.rst:960 msgid "" "Wait until notified or until a timeout occurs. If the calling thread has not " "acquired the lock when this method is called, a :exc:`RuntimeError` is " "raised." msgstr "" -#: library/threading.rst:791 +#: library/threading.rst:964 msgid "" "This method releases the underlying lock, and then blocks until it is " "awakened by a :meth:`notify` or :meth:`notify_all` call for the same " @@ -1046,14 +1303,14 @@ msgid "" "Once awakened or timed out, it re-acquires the lock and returns." msgstr "" -#: library/threading.rst:796 +#: library/threading.rst:969 msgid "" "When the *timeout* argument is present and not ``None``, it should be a " "floating-point number specifying a timeout for the operation in seconds (or " "fractions thereof)." msgstr "" -#: library/threading.rst:800 +#: library/threading.rst:973 msgid "" "When the underlying lock is an :class:`RLock`, it is not released using its :" "meth:`release` method, since this may not actually unlock the lock when it " @@ -1063,24 +1320,24 @@ msgid "" "used to restore the recursion level when the lock is reacquired." msgstr "" -#: library/threading.rst:808 +#: library/threading.rst:981 msgid "" "The return value is ``True`` unless a given *timeout* expired, in which case " "it is ``False``." msgstr "" -#: library/threading.rst:1027 +#: library/threading.rst:1200 msgid "Previously, the method always returned ``None``." msgstr "" -#: library/threading.rst:816 +#: library/threading.rst:989 msgid "" "Wait until a condition evaluates to true. *predicate* should be a callable " "which result will be interpreted as a boolean value. A *timeout* may be " "provided giving the maximum time to wait." msgstr "" -#: library/threading.rst:820 +#: library/threading.rst:993 msgid "" "This utility method may call :meth:`wait` repeatedly until the predicate is " "satisfied, or until a timeout occurs. The return value is the last return " @@ -1088,39 +1345,39 @@ msgid "" "out." msgstr "" -#: library/threading.rst:825 +#: library/threading.rst:998 msgid "" "Ignoring the timeout feature, calling this method is roughly equivalent to " "writing::" msgstr "" -#: library/threading.rst:828 +#: library/threading.rst:1001 msgid "" "while not predicate():\n" " cv.wait()" msgstr "" -#: library/threading.rst:831 +#: library/threading.rst:1004 msgid "" "Therefore, the same rules apply as with :meth:`wait`: The lock must be held " "when called and is re-acquired on return. The predicate is evaluated with " "the lock held." msgstr "" -#: library/threading.rst:839 +#: library/threading.rst:1012 msgid "" "By default, wake up one thread waiting on this condition, if any. If the " "calling thread has not acquired the lock when this method is called, a :exc:" "`RuntimeError` is raised." msgstr "" -#: library/threading.rst:843 +#: library/threading.rst:1016 msgid "" "This method wakes up at most *n* of the threads waiting for the condition " "variable; it is a no-op if no threads are waiting." msgstr "" -#: library/threading.rst:846 +#: library/threading.rst:1019 msgid "" "The current implementation wakes up exactly *n* threads, if at least *n* " "threads are waiting. However, it's not safe to rely on this behavior. A " @@ -1128,14 +1385,14 @@ msgid "" "threads." msgstr "" -#: library/threading.rst:851 +#: library/threading.rst:1024 msgid "" "Note: an awakened thread does not actually return from its :meth:`wait` call " "until it can reacquire the lock. Since :meth:`notify` does not release the " "lock, its caller should." msgstr "" -#: library/threading.rst:857 +#: library/threading.rst:1030 msgid "" "Wake up all threads waiting on this condition. This method acts like :meth:" "`notify`, but wakes up all waiting threads instead of one. If the calling " @@ -1143,15 +1400,15 @@ msgid "" "`RuntimeError` is raised." msgstr "" -#: library/threading.rst:862 +#: library/threading.rst:1035 msgid "The method ``notifyAll`` is a deprecated alias for this method." msgstr "" -#: library/threading.rst:868 -msgid "Semaphore Objects" +#: library/threading.rst:1041 +msgid "Semaphore objects" msgstr "" -#: library/threading.rst:870 +#: library/threading.rst:1043 msgid "" "This is one of the oldest synchronization primitives in the history of " "computer science, invented by the early Dutch computer scientist Edsger W. " @@ -1159,7 +1416,7 @@ msgid "" "acquire` and :meth:`~Semaphore.release`)." msgstr "" -#: library/threading.rst:875 +#: library/threading.rst:1048 msgid "" "A semaphore manages an internal counter which is decremented by each :meth:" "`~Semaphore.acquire` call and incremented by each :meth:`~Semaphore.release` " @@ -1168,12 +1425,12 @@ msgid "" "meth:`~Semaphore.release`." msgstr "" -#: library/threading.rst:881 +#: library/threading.rst:1054 msgid "" "Semaphores also support the :ref:`context management protocol `." msgstr "" -#: library/threading.rst:886 +#: library/threading.rst:1059 msgid "" "This class implements semaphore objects. A semaphore manages an atomic " "counter representing the number of :meth:`release` calls minus the number " @@ -1182,28 +1439,28 @@ msgid "" "If not given, *value* defaults to 1." msgstr "" -#: library/threading.rst:892 +#: library/threading.rst:1065 msgid "" "The optional argument gives the initial *value* for the internal counter; it " "defaults to ``1``. If the *value* given is less than 0, :exc:`ValueError` is " "raised." msgstr "" -#: library/threading.rst:901 +#: library/threading.rst:1074 msgid "Acquire a semaphore." msgstr "" -#: library/threading.rst:903 +#: library/threading.rst:1076 msgid "When invoked without arguments:" msgstr "" -#: library/threading.rst:905 +#: library/threading.rst:1078 msgid "" "If the internal counter is larger than zero on entry, decrement it by one " "and return ``True`` immediately." msgstr "" -#: library/threading.rst:907 +#: library/threading.rst:1080 msgid "" "If the internal counter is zero on entry, block until awoken by a call to :" "meth:`~Semaphore.release`. Once awoken (and the counter is greater than 0), " @@ -1212,32 +1469,32 @@ msgid "" "threads are awoken should not be relied on." msgstr "" -#: library/threading.rst:913 +#: library/threading.rst:1086 msgid "" "When invoked with *blocking* set to ``False``, do not block. If a call " "without an argument would block, return ``False`` immediately; otherwise, do " "the same thing as when called without arguments, and return ``True``." msgstr "" -#: library/threading.rst:917 +#: library/threading.rst:1090 msgid "" "When invoked with a *timeout* other than ``None``, it will block for at most " "*timeout* seconds. If acquire does not complete successfully in that " "interval, return ``False``. Return ``True`` otherwise." msgstr "" -#: library/threading.rst:926 +#: library/threading.rst:1099 msgid "" "Release a semaphore, incrementing the internal counter by *n*. When it was " "zero on entry and other threads are waiting for it to become larger than " "zero again, wake up *n* of those threads." msgstr "" -#: library/threading.rst:930 +#: library/threading.rst:1103 msgid "Added the *n* parameter to release multiple waiting threads at once." msgstr "" -#: library/threading.rst:936 +#: library/threading.rst:1109 msgid "" "Class implementing bounded semaphore objects. A bounded semaphore checks to " "make sure its current value doesn't exceed its initial value. If it does, :" @@ -1246,11 +1503,11 @@ msgid "" "times it's a sign of a bug. If not given, *value* defaults to 1." msgstr "" -#: library/threading.rst:949 -msgid ":class:`Semaphore` Example" +#: library/threading.rst:1122 +msgid ":class:`Semaphore` example" msgstr "" -#: library/threading.rst:951 +#: library/threading.rst:1124 msgid "" "Semaphores are often used to guard resources with limited capacity, for " "example, a database server. In any situation where the size of the resource " @@ -1258,20 +1515,20 @@ msgid "" "threads, your main thread would initialize the semaphore::" msgstr "" -#: library/threading.rst:956 +#: library/threading.rst:1129 msgid "" "maxconnections = 5\n" "# ...\n" "pool_sema = BoundedSemaphore(value=maxconnections)" msgstr "" -#: library/threading.rst:960 +#: library/threading.rst:1133 msgid "" "Once spawned, worker threads call the semaphore's acquire and release " "methods when they need to connect to the server::" msgstr "" -#: library/threading.rst:963 +#: library/threading.rst:1136 msgid "" "with pool_sema:\n" " conn = connectdb()\n" @@ -1281,31 +1538,31 @@ msgid "" " conn.close()" msgstr "" -#: library/threading.rst:970 +#: library/threading.rst:1143 msgid "" "The use of a bounded semaphore reduces the chance that a programming error " "which causes the semaphore to be released more than it's acquired will go " "undetected." msgstr "" -#: library/threading.rst:977 -msgid "Event Objects" +#: library/threading.rst:1150 +msgid "Event objects" msgstr "" -#: library/threading.rst:979 +#: library/threading.rst:1152 msgid "" "This is one of the simplest mechanisms for communication between threads: " "one thread signals an event and other threads wait for it." msgstr "" -#: library/threading.rst:982 +#: library/threading.rst:1155 msgid "" "An event object manages an internal flag that can be set to true with the :" "meth:`~Event.set` method and reset to false with the :meth:`~Event.clear` " "method. The :meth:`~Event.wait` method blocks until the flag is true." msgstr "" -#: library/threading.rst:989 +#: library/threading.rst:1162 msgid "" "Class implementing event objects. An event manages a flag that can be set " "to true with the :meth:`~Event.set` method and reset to false with the :meth:" @@ -1313,29 +1570,29 @@ msgid "" "flag is initially false." msgstr "" -#: library/threading.rst:999 +#: library/threading.rst:1172 msgid "Return ``True`` if and only if the internal flag is true." msgstr "" -#: library/threading.rst:1001 +#: library/threading.rst:1174 msgid "The method ``isSet`` is a deprecated alias for this method." msgstr "" -#: library/threading.rst:1005 +#: library/threading.rst:1178 msgid "" "Set the internal flag to true. All threads waiting for it to become true are " "awakened. Threads that call :meth:`wait` once the flag is true will not " "block at all." msgstr "" -#: library/threading.rst:1011 +#: library/threading.rst:1184 msgid "" "Reset the internal flag to false. Subsequently, threads calling :meth:`wait` " "will block until :meth:`.set` is called to set the internal flag to true " "again." msgstr "" -#: library/threading.rst:1017 +#: library/threading.rst:1190 msgid "" "Block as long as the internal flag is false and the timeout, if given, has " "not expired. The return value represents the reason that this blocking " @@ -1344,18 +1601,18 @@ msgid "" "become true within the given wait time." msgstr "" -#: library/threading.rst:1023 +#: library/threading.rst:1196 msgid "" "When the timeout argument is present and not ``None``, it should be a " "floating-point number specifying a timeout for the operation in seconds, or " "fractions thereof." msgstr "" -#: library/threading.rst:1034 -msgid "Timer Objects" +#: library/threading.rst:1207 +msgid "Timer objects" msgstr "" -#: library/threading.rst:1036 +#: library/threading.rst:1209 msgid "" "This class represents an action that should be run only after a certain " "amount of time has passed --- a timer. :class:`Timer` is a subclass of :" @@ -1363,7 +1620,7 @@ msgid "" "threads." msgstr "" -#: library/threading.rst:1040 +#: library/threading.rst:1213 msgid "" "Timers are started, as with threads, by calling their :meth:`Timer.start " "` method. The timer can be stopped (before its action has " @@ -1372,11 +1629,11 @@ msgid "" "interval specified by the user." msgstr "" -#: library/threading.rst:1046 +#: library/threading.rst:1219 msgid "For example::" msgstr "" -#: library/threading.rst:1048 +#: library/threading.rst:1221 msgid "" "def hello():\n" " print(\"hello, world\")\n" @@ -1385,7 +1642,7 @@ msgid "" "t.start() # after 30 seconds, \"hello, world\" will be printed" msgstr "" -#: library/threading.rst:1057 +#: library/threading.rst:1230 msgid "" "Create a timer that will run *function* with arguments *args* and keyword " "arguments *kwargs*, after *interval* seconds have passed. If *args* is " @@ -1393,17 +1650,17 @@ msgid "" "``None`` (the default) then an empty dict will be used." msgstr "" -#: library/threading.rst:1067 +#: library/threading.rst:1240 msgid "" "Stop the timer, and cancel the execution of the timer's action. This will " "only work if the timer is still in its waiting stage." msgstr "" -#: library/threading.rst:1072 -msgid "Barrier Objects" +#: library/threading.rst:1245 +msgid "Barrier objects" msgstr "" -#: library/threading.rst:1076 +#: library/threading.rst:1249 msgid "" "This class provides a simple synchronization primitive for use by a fixed " "number of threads that need to wait for each other. Each of the threads " @@ -1412,18 +1669,18 @@ msgid "" "calls. At this point, the threads are released simultaneously." msgstr "" -#: library/threading.rst:1082 +#: library/threading.rst:1255 msgid "" "The barrier can be reused any number of times for the same number of threads." msgstr "" -#: library/threading.rst:1084 +#: library/threading.rst:1257 msgid "" "As an example, here is a simple way to synchronize a client and server " "thread::" msgstr "" -#: library/threading.rst:1086 +#: library/threading.rst:1259 msgid "" "b = Barrier(2, timeout=5)\n" "\n" @@ -1441,7 +1698,7 @@ msgid "" " process_client_connection(connection)" msgstr "" -#: library/threading.rst:1104 +#: library/threading.rst:1277 msgid "" "Create a barrier object for *parties* number of threads. An *action*, when " "provided, is a callable to be called by one of the threads when they are " @@ -1449,7 +1706,7 @@ msgid "" "the :meth:`wait` method." msgstr "" -#: library/threading.rst:1111 +#: library/threading.rst:1284 msgid "" "Pass the barrier. When all the threads party to the barrier have called " "this function, they are all released simultaneously. If a *timeout* is " @@ -1457,14 +1714,14 @@ msgid "" "constructor." msgstr "" -#: library/threading.rst:1116 +#: library/threading.rst:1289 msgid "" "The return value is an integer in the range 0 to *parties* -- 1, different " "for each thread. This can be used to select a thread to do some special " "housekeeping, e.g.::" msgstr "" -#: library/threading.rst:1120 +#: library/threading.rst:1293 msgid "" "i = barrier.wait()\n" "if i == 0:\n" @@ -1472,37 +1729,37 @@ msgid "" " print(\"passed the barrier\")" msgstr "" -#: library/threading.rst:1125 +#: library/threading.rst:1298 msgid "" "If an *action* was provided to the constructor, one of the threads will have " "called it prior to being released. Should this call raise an error, the " "barrier is put into the broken state." msgstr "" -#: library/threading.rst:1129 +#: library/threading.rst:1302 msgid "If the call times out, the barrier is put into the broken state." msgstr "" -#: library/threading.rst:1131 +#: library/threading.rst:1304 msgid "" "This method may raise a :class:`BrokenBarrierError` exception if the barrier " "is broken or reset while a thread is waiting." msgstr "" -#: library/threading.rst:1136 +#: library/threading.rst:1309 msgid "" "Return the barrier to the default, empty state. Any threads waiting on it " "will receive the :class:`BrokenBarrierError` exception." msgstr "" -#: library/threading.rst:1139 +#: library/threading.rst:1312 msgid "" "Note that using this function may require some external synchronization if " "there are other threads whose state is unknown. If a barrier is broken it " "may be better to just leave it and create a new one." msgstr "" -#: library/threading.rst:1145 +#: library/threading.rst:1318 msgid "" "Put the barrier into a broken state. This causes any active or future calls " "to :meth:`wait` to fail with the :class:`BrokenBarrierError`. Use this for " @@ -1510,36 +1767,36 @@ msgid "" "application." msgstr "" -#: library/threading.rst:1150 +#: library/threading.rst:1323 msgid "" "It may be preferable to simply create the barrier with a sensible *timeout* " "value to automatically guard against one of the threads going awry." msgstr "" -#: library/threading.rst:1156 +#: library/threading.rst:1329 msgid "The number of threads required to pass the barrier." msgstr "" -#: library/threading.rst:1160 +#: library/threading.rst:1333 msgid "The number of threads currently waiting in the barrier." msgstr "" -#: library/threading.rst:1164 +#: library/threading.rst:1337 msgid "A boolean that is ``True`` if the barrier is in the broken state." msgstr "" -#: library/threading.rst:1169 +#: library/threading.rst:1342 msgid "" "This exception, a subclass of :exc:`RuntimeError`, is raised when the :class:" "`Barrier` object is reset or broken." msgstr "" -#: library/threading.rst:1176 +#: library/threading.rst:1349 msgid "" "Using locks, conditions, and semaphores in the :keyword:`!with` statement" msgstr "" -#: library/threading.rst:1178 +#: library/threading.rst:1351 msgid "" "All of the objects provided by this module that have ``acquire`` and " "``release`` methods can be used as context managers for a :keyword:`with` " @@ -1548,17 +1805,17 @@ msgid "" "following snippet::" msgstr "" -#: library/threading.rst:1184 +#: library/threading.rst:1357 msgid "" "with some_lock:\n" " # do something..." msgstr "" -#: library/threading.rst:1187 +#: library/threading.rst:1360 msgid "is equivalent to::" msgstr "" -#: library/threading.rst:1189 +#: library/threading.rst:1362 msgid "" "some_lock.acquire()\n" "try:\n" @@ -1567,21 +1824,21 @@ msgid "" " some_lock.release()" msgstr "" -#: library/threading.rst:1195 +#: library/threading.rst:1368 msgid "" "Currently, :class:`Lock`, :class:`RLock`, :class:`Condition`, :class:" "`Semaphore`, and :class:`BoundedSemaphore` objects may be used as :keyword:" "`with` statement context managers." msgstr "" -#: library/threading.rst:176 +#: library/threading.rst:240 msgid "trace function" msgstr "" -#: library/threading.rst:176 +#: library/threading.rst:240 msgid "debugger" msgstr "" -#: library/threading.rst:205 +#: library/threading.rst:269 msgid "profile function" msgstr "" diff --git a/library/time.po b/library/time.po index 0c78f155..0e450c75 100644 --- a/library/time.po +++ b/library/time.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -216,9 +216,9 @@ msgid "" 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 "" @@ -314,8 +314,8 @@ 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 "" #: library/time.rst:243 @@ -380,7 +380,7 @@ msgid "" "only the difference between the results of two calls is valid." msgstr "" -#: library/time.rst:713 +#: library/time.rst:715 msgid "Clock:" msgstr "" @@ -413,51 +413,53 @@ msgid "" msgstr "" #: 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." +#: library/time.rst:312 +msgid "On macOS, the clock is now the same for all processes." msgstr "" -#: library/time.rst:317 +#: library/time.rst:318 msgid "Similar to :func:`monotonic`, but return time as nanoseconds." msgstr "" -#: 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." msgstr "" -#: 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." msgstr "" -#: library/time.rst:342 -msgid "On Windows, the function is now system-wide." +#: library/time.rst:344 +msgid "On Windows, the clock is now the same for all processes." msgstr "" -#: library/time.rst:345 +#: library/time.rst:347 msgid "Use the same clock as :func:`time.monotonic`." msgstr "" -#: library/time.rst:351 +#: library/time.rst:353 msgid "Similar to :func:`perf_counter`, but return time as nanoseconds." msgstr "" -#: 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 " @@ -466,101 +468,101 @@ msgid "" "of two calls is valid." 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." msgstr "" -#: library/time.rst:376 +#: library/time.rst:378 msgid "Similar to :func:`process_time` but return time as nanoseconds." msgstr "" -#: 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 " "time." 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." 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." msgstr "" -#: library/time.rst:393 +#: library/time.rst:395 msgid "Windows implementation" msgstr "" -#: 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 "" -#: library/time.rst:403 +#: library/time.rst:405 msgid "Unix implementation" msgstr "" -#: library/time.rst:404 +#: library/time.rst:406 msgid "Use ``clock_nanosleep()`` if available (resolution: 1 nanosecond);" msgstr "" -#: library/time.rst:405 +#: library/time.rst:407 msgid "Or use ``nanosleep()`` if available (resolution: 1 nanosecond);" msgstr "" -#: library/time.rst:406 +#: library/time.rst:408 msgid "Or use ``select()`` (resolution: 1 microsecond)." msgstr "" -#: library/time.rst:410 +#: library/time.rst:412 msgid "" "To emulate a \"no-op\", use :keyword:`pass` instead of ``time.sleep(0)``." msgstr "" -#: 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." msgstr "" -#: library/time.rst:415 +#: library/time.rst:417 msgid "" "Raises an :ref:`auditing event ` ``time.sleep`` with argument " "``secs``." msgstr "" -#: 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` " "for the rationale)." msgstr "" -#: 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." msgstr "" -#: library/time.rst:426 +#: library/time.rst:428 msgid "Raises an auditing event." msgstr "" -#: 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* " @@ -569,287 +571,287 @@ msgid "" "raised if any field in *t* is outside of the allowed range." msgstr "" -#: 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." msgstr "" -#: 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 " "replaced by the indicated characters in the :func:`strftime` result:" msgstr "" -#: 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 "" -#: 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 "" -#: 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 "" -#: 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 "" -#: 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 "" -#: 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 "" -#: library/time.rst:463 +#: library/time.rst:465 msgid "Day of the month as a decimal number [01,31]." msgstr "" -#: library/time.rst:466 +#: library/time.rst:468 msgid "``%f``" msgstr "" -#: 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 "" -#: library/time.rst:466 +#: library/time.rst:468 msgid "\\(1)" msgstr "" -#: library/time.rst:470 +#: library/time.rst:472 msgid "``%H``" msgstr "" -#: library/time.rst:470 +#: library/time.rst:472 msgid "Hour (24-hour clock) as a decimal number [00,23]." msgstr "" -#: library/time.rst:473 +#: library/time.rst:475 msgid "``%I``" msgstr "" -#: library/time.rst:473 +#: library/time.rst:475 msgid "Hour (12-hour clock) as a decimal number [01,12]." msgstr "" -#: library/time.rst:476 +#: library/time.rst:478 msgid "``%j``" msgstr "" -#: library/time.rst:476 +#: library/time.rst:478 msgid "Day of the year as a decimal number [001,366]." msgstr "" -#: library/time.rst:479 +#: library/time.rst:481 msgid "``%m``" msgstr "" -#: library/time.rst:479 +#: library/time.rst:481 msgid "Month as a decimal number [01,12]." msgstr "" -#: library/time.rst:482 +#: library/time.rst:484 msgid "``%M``" msgstr "" -#: library/time.rst:482 +#: library/time.rst:484 msgid "Minute as a decimal number [00,59]." msgstr "" -#: library/time.rst:485 +#: library/time.rst:487 msgid "``%p``" msgstr "" -#: library/time.rst:485 +#: library/time.rst:487 msgid "Locale's equivalent of either AM or PM." msgstr "" -#: library/time.rst:485 +#: library/time.rst:487 msgid "\\(2)" msgstr "" -#: library/time.rst:488 +#: library/time.rst:490 msgid "``%S``" msgstr "" -#: library/time.rst:488 +#: library/time.rst:490 msgid "Second as a decimal number [00,61]." msgstr "" -#: library/time.rst:488 +#: library/time.rst:490 msgid "\\(3)" msgstr "" -#: library/time.rst:491 +#: library/time.rst:493 msgid "``%U``" msgstr "" -#: 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 " "considered to be in week 0." msgstr "" -#: library/time.rst:505 +#: library/time.rst:507 msgid "\\(4)" msgstr "" -#: library/time.rst:499 +#: library/time.rst:501 msgid "``%u``" msgstr "" -#: 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 "" -#: library/time.rst:502 +#: library/time.rst:504 msgid "``%w``" msgstr "" -#: library/time.rst:502 +#: library/time.rst:504 msgid "Weekday as a decimal number [0(Sunday),6]." msgstr "" -#: library/time.rst:505 +#: library/time.rst:507 msgid "``%W``" msgstr "" -#: 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 " "considered to be in week 0." msgstr "" -#: library/time.rst:513 +#: library/time.rst:515 msgid "``%x``" msgstr "" -#: 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 "" -#: 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 "" -#: library/time.rst:519 +#: library/time.rst:521 msgid "Year without century as a decimal number [00,99]." msgstr "" -#: library/time.rst:522 +#: library/time.rst:524 msgid "``%Y``" msgstr "" -#: 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 "" -#: 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 " "represents decimal minute digits [-23:59, +23:59]. [1]_" msgstr "" -#: library/time.rst:531 +#: library/time.rst:533 msgid "``%Z``" msgstr "" -#: library/time.rst:531 +#: library/time.rst:533 msgid "Time zone name (no characters if no time zone exists). Deprecated. [1]_" msgstr "" -#: library/time.rst:534 +#: library/time.rst:536 msgid "``%G``" msgstr "" -#: 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 " "Thursday of the calendar year." msgstr "" -#: library/time.rst:539 +#: library/time.rst:541 msgid "``%V``" msgstr "" -#: 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 " "Monday." 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:" @@ -857,40 +859,40 @@ msgid "" "to microseconds `." msgstr "" -#: 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 " "hour." msgstr "" -#: 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 " "reasons." msgstr "" -#: 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." 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 "" -#: 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" "'Thu, 28 Jun 2001 14:17:15 +0000'" msgstr "" -#: 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 " @@ -898,7 +900,7 @@ msgid "" "`strftime(3)` documentation." msgstr "" -#: 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 " @@ -906,13 +908,13 @@ msgid "" "``%j`` where it is 3." msgstr "" -#: 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`." msgstr "" -#: 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 " @@ -923,11 +925,11 @@ msgid "" "Both *string* and *format* must be strings." msgstr "" -#: 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 " @@ -935,7 +937,7 @@ msgid "" "(and are considered to be non-daylight savings timezones)." msgstr "" -#: 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 " @@ -944,7 +946,7 @@ msgid "" "are not documented as supported." 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 " @@ -952,109 +954,109 @@ msgid "" "The following values are present:" msgstr "" -#: 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 "" -#: library/time.rst:639 +#: library/time.rst:641 msgid "(for example, 1993)" msgstr "" -#: library/time.rst:641 +#: library/time.rst:643 msgid "1" msgstr "" -#: library/time.rst:643 +#: library/time.rst:645 msgid "range [1, 12]" msgstr "" -#: library/time.rst:645 +#: library/time.rst:647 msgid "2" msgstr "" -#: library/time.rst:647 +#: library/time.rst:649 msgid "range [1, 31]" msgstr "" -#: library/time.rst:649 +#: library/time.rst:651 msgid "3" msgstr "" -#: library/time.rst:651 +#: library/time.rst:653 msgid "range [0, 23]" msgstr "" -#: library/time.rst:653 +#: library/time.rst:655 msgid "4" msgstr "" -#: library/time.rst:655 +#: library/time.rst:657 msgid "range [0, 59]" msgstr "" -#: library/time.rst:657 +#: library/time.rst:659 msgid "5" msgstr "" -#: library/time.rst:659 +#: library/time.rst:661 msgid "range [0, 61]; see :ref:`Note (2) ` in :func:`strftime`" msgstr "" -#: library/time.rst:661 +#: library/time.rst:663 msgid "6" msgstr "" -#: library/time.rst:663 +#: library/time.rst:665 msgid "range [0, 6]; Monday is 0" msgstr "" -#: library/time.rst:665 +#: library/time.rst:667 msgid "7" msgstr "" -#: library/time.rst:667 +#: library/time.rst:669 msgid "range [1, 366]" msgstr "" -#: library/time.rst:669 +#: library/time.rst:671 msgid "8" msgstr "" -#: library/time.rst:671 +#: library/time.rst:673 msgid "0, 1 or -1; see below" msgstr "" -#: library/time.rst:677 +#: library/time.rst:679 msgid "N/A" msgstr "" -#: 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 "" -#: 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]." msgstr "" -#: 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 " @@ -1062,14 +1064,14 @@ msgid "" "filled in." 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:" "`TypeError` is raised." msgstr "" -#: 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 " @@ -1078,7 +1080,7 @@ msgid "" "org/wiki/Unix_time>`_." msgstr "" -#: 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. " @@ -1087,7 +1089,7 @@ msgid "" "between the two calls." 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 :" @@ -1097,31 +1099,37 @@ msgid "" "attributes." msgstr "" -#: library/time.rst:715 -msgid "On Windows, call ``GetSystemTimeAsFileTime()``." +#: library/time.rst:717 +msgid "On Windows, call ``GetSystemTimePreciseAsFileTime()``." msgstr "" -#: library/time.rst:716 +#: library/time.rst:718 msgid "Call ``clock_gettime(CLOCK_REALTIME)`` if available." msgstr "" -#: library/time.rst:717 +#: library/time.rst:719 msgid "Otherwise, call ``gettimeofday()``." msgstr "" -#: library/time.rst:719 +#: library/time.rst:721 msgid "" "Use :func:`time_ns` to avoid the precision loss caused by the :class:`float` " "type." msgstr "" -#: library/time.rst:725 +#: library/time.rst:726 +msgid "" +"On Windows, calls ``GetSystemTimePreciseAsFileTime()`` instead of " +"``GetSystemTimeAsFileTime()``." +msgstr "" + +#: library/time.rst:732 msgid "" "Similar to :func:`~time.time` but returns time as an integer number of " "nanoseconds since the epoch_." msgstr "" -#: 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 " @@ -1130,21 +1138,21 @@ msgid "" "of two calls in the same thread is valid." 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." msgstr "" -#: library/time.rst:749 +#: library/time.rst:756 msgid "Unix systems supporting ``CLOCK_THREAD_CPUTIME_ID``." msgstr "" -#: library/time.rst:756 +#: library/time.rst:763 msgid "Similar to :func:`thread_time` but return time as nanoseconds." msgstr "" -#: 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 " @@ -1155,46 +1163,46 @@ msgid "" "when daylight saving time applies)." 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:" "`tzset`, this behavior should not be relied on." msgstr "" -#: library/time.rst:779 +#: library/time.rst:786 msgid "The :envvar:`TZ` environment variable should contain no whitespace." msgstr "" -#: library/time.rst:781 +#: library/time.rst:788 msgid "" "The standard format of the :envvar:`TZ` environment variable is (whitespace " "added for clarity)::" msgstr "" -#: library/time.rst:784 +#: library/time.rst:791 msgid "std offset [dst [offset [,start[/time], end[/time]]]]" msgstr "" -#: 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 "" -#: library/time.rst:789 +#: library/time.rst:796 msgid "" "Three or more alphanumerics giving the timezone abbreviations. These will be " "propagated into time.tzname" msgstr "" -#: library/time.rst:792 +#: library/time.rst:799 msgid "``offset``" msgstr "" -#: 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 " @@ -1202,41 +1210,41 @@ msgid "" "summer time is assumed to be one hour ahead of standard time." msgstr "" -#: library/time.rst:798 +#: library/time.rst:805 msgid "``start[/time], end[/time]``" msgstr "" -#: 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:" msgstr "" -#: library/time.rst:802 +#: library/time.rst:809 msgid ":samp:`J{n}`" msgstr "" -#: 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." msgstr "" -#: library/time.rst:806 +#: library/time.rst:813 msgid ":samp:`{n}`" msgstr "" -#: 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." msgstr "" -#: library/time.rst:810 +#: library/time.rst:817 msgid ":samp:`M{m}.{n}.{d}`" msgstr "" -#: 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 " @@ -1244,13 +1252,13 @@ msgid "" "first week in which the *d*'th day occurs. Day zero is a Sunday." msgstr "" -#: 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." msgstr "" -#: library/time.rst:822 +#: library/time.rst:829 msgid "" ">>> os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'\n" ">>> time.tzset()\n" @@ -1262,7 +1270,7 @@ msgid "" "'16:08:12 05/08/03 AEST'" msgstr "" -#: 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)`) " @@ -1273,7 +1281,7 @@ msgid "" "``'Australia/Melbourne'``, ``'Egypt'`` or ``'Europe/Amsterdam'``. ::" msgstr "" -#: library/time.rst:839 +#: library/time.rst:846 msgid "" ">>> os.environ['TZ'] = 'US/Eastern'\n" ">>> time.tzset()\n" @@ -1285,23 +1293,23 @@ msgid "" "('EET', 'EEST')" msgstr "" -#: 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`." msgstr "" -#: 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." msgstr "" -#: 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 " @@ -1309,87 +1317,87 @@ msgid "" "similar." msgstr "" -#: 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. " "``CLOCK_HIGHRES`` is the nonadjustable, high-resolution clock." msgstr "" -#: library/time.rst:885 +#: library/time.rst:892 msgid "" "Clock that cannot be set and represents monotonic time since some " "unspecified starting point." 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." msgstr "" -#: 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." msgstr "" -#: library/time.rst:923 +#: library/time.rst:930 msgid "High-resolution per-process timer from the CPU." msgstr "" -#: library/time.rst:931 +#: library/time.rst:938 msgid "" "`International Atomic Time `_" +"division/how-utcnist-related-coordinated-universal-time-utc-international>`_" msgstr "" -#: 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." msgstr "" -#: library/time.rst:942 +#: library/time.rst:949 msgid "Thread-specific CPU-time clock." msgstr "" -#: 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." 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 " "the system is asleep." 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." msgstr "" -#: library/time.rst:979 +#: library/time.rst:986 msgid "" "The following constant is the only parameter that can be sent to :func:" "`clock_settime`." msgstr "" -#: 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 " @@ -1397,25 +1405,25 @@ msgid "" "nonzero. See note below." msgstr "" -#: library/time.rst:1006 +#: library/time.rst:1013 msgid "Nonzero if a DST timezone is defined. See note below." msgstr "" -#: 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 " "below." 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 " "defined, the second string should not be used. See note below." msgstr "" -#: 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 " @@ -1425,40 +1433,40 @@ msgid "" "func:`localtime` to obtain timezone information." msgstr "" -#: library/time.rst:1030 +#: library/time.rst:1037 msgid "Module :mod:`datetime`" msgstr "" -#: 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 "" -#: 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:" "`strptime`." msgstr "" -#: library/time.rst:1037 +#: library/time.rst:1044 msgid "Module :mod:`calendar`" msgstr "" -#: 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." msgstr "" -#: 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. " @@ -1466,7 +1474,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 "" #: library/time.rst:22 @@ -1497,22 +1505,22 @@ 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 "" -#: 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 "" diff --git a/library/timeit.po b/library/timeit.po index afe34550..d242505c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a3cb7762..88b50f5a 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 61c9153a..4eff509d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ac11cb2b..ce22014c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1900f37c..740dbb77 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3492e83e..1b789930 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ee2bd398..9e83942a 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -182,7 +182,7 @@ msgid "" "difference (see `Threading model`_ for details)." msgstr "" -#: library/tkinter.rst:907 +#: library/tkinter.rst:906 msgid "Tk" msgstr "" @@ -716,8 +716,8 @@ 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 @@ -1257,7 +1257,7 @@ msgid "" "no further intervention on your part." msgstr "" -#: library/tkinter.rst:894 +#: library/tkinter.rst:893 msgid "For example::" msgstr "" @@ -1457,96 +1457,96 @@ msgstr "" #: library/tkinter.rst:842 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:844 msgid "region" msgstr "" -#: library/tkinter.rst:846 +#: library/tkinter.rst:845 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:849 msgid "relief" msgstr "" -#: library/tkinter.rst:851 +#: library/tkinter.rst:850 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:853 msgid "scrollcommand" msgstr "" -#: library/tkinter.rst:855 +#: library/tkinter.rst:854 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:857 msgid "wrap" msgstr "" -#: library/tkinter.rst:859 +#: library/tkinter.rst:858 msgid "Must be one of: ``\"none\"``, ``\"char\"``, or ``\"word\"``." msgstr "" -#: library/tkinter.rst:864 +#: library/tkinter.rst:863 msgid "Bindings and Events" msgstr "" -#: library/tkinter.rst:870 +#: library/tkinter.rst:869 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:873 msgid "def bind(self, sequence, func, add=''):" msgstr "" -#: library/tkinter.rst:876 +#: library/tkinter.rst:875 msgid "where:" msgstr "" -#: library/tkinter.rst:878 +#: library/tkinter.rst:877 msgid "sequence" msgstr "" -#: library/tkinter.rst:879 +#: library/tkinter.rst:878 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:882 msgid "func" msgstr "" -#: library/tkinter.rst:884 +#: library/tkinter.rst:883 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:887 msgid "add" msgstr "" -#: library/tkinter.rst:889 +#: library/tkinter.rst:888 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 +1554,7 @@ msgid "" "of functions bound to this event type." msgstr "" -#: library/tkinter.rst:896 +#: library/tkinter.rst:895 msgid "" "def turn_red(self, event):\n" " event.widget[\"activeforeground\"] = \"red\"\n" @@ -1562,7 +1562,7 @@ msgid "" "self.button.bind(\"\", self.turn_red)" msgstr "" -#: library/tkinter.rst:901 +#: library/tkinter.rst:900 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 +1571,209 @@ msgid "" "pages." msgstr "" -#: library/tkinter.rst:907 +#: library/tkinter.rst:906 msgid "Tkinter Event Field" msgstr "" -#: library/tkinter.rst:909 +#: library/tkinter.rst:908 msgid "%f" msgstr "" -#: library/tkinter.rst:909 +#: library/tkinter.rst:908 msgid "focus" msgstr "" -#: library/tkinter.rst:909 +#: library/tkinter.rst:908 msgid "%A" msgstr "" -#: library/tkinter.rst:909 +#: library/tkinter.rst:908 msgid "char" msgstr "" -#: library/tkinter.rst:911 +#: library/tkinter.rst:910 msgid "%h" msgstr "" -#: library/tkinter.rst:911 +#: library/tkinter.rst:910 msgid "height" msgstr "" -#: library/tkinter.rst:911 +#: library/tkinter.rst:910 msgid "%E" msgstr "" -#: library/tkinter.rst:911 +#: library/tkinter.rst:910 msgid "send_event" msgstr "" -#: library/tkinter.rst:913 +#: library/tkinter.rst:912 msgid "%k" msgstr "" -#: library/tkinter.rst:913 +#: library/tkinter.rst:912 msgid "keycode" msgstr "" -#: library/tkinter.rst:913 +#: library/tkinter.rst:912 msgid "%K" msgstr "" -#: library/tkinter.rst:913 +#: library/tkinter.rst:912 msgid "keysym" msgstr "" -#: library/tkinter.rst:915 +#: library/tkinter.rst:914 msgid "%s" msgstr "" -#: library/tkinter.rst:915 +#: library/tkinter.rst:914 msgid "state" msgstr "" -#: library/tkinter.rst:915 +#: library/tkinter.rst:914 msgid "%N" msgstr "" -#: library/tkinter.rst:915 +#: library/tkinter.rst:914 msgid "keysym_num" msgstr "" -#: library/tkinter.rst:917 +#: library/tkinter.rst:916 msgid "%t" msgstr "" -#: library/tkinter.rst:917 +#: library/tkinter.rst:916 msgid "time" msgstr "" -#: library/tkinter.rst:917 +#: library/tkinter.rst:916 msgid "%T" msgstr "" -#: library/tkinter.rst:917 +#: library/tkinter.rst:916 msgid "type" msgstr "" -#: library/tkinter.rst:919 +#: library/tkinter.rst:918 msgid "%w" msgstr "" -#: library/tkinter.rst:919 +#: library/tkinter.rst:918 msgid "width" msgstr "" -#: library/tkinter.rst:919 +#: library/tkinter.rst:918 msgid "%W" msgstr "" -#: library/tkinter.rst:919 +#: library/tkinter.rst:918 msgid "widget" msgstr "" -#: library/tkinter.rst:921 +#: library/tkinter.rst:920 msgid "%x" msgstr "" -#: library/tkinter.rst:921 +#: library/tkinter.rst:920 msgid "x" msgstr "" -#: library/tkinter.rst:921 +#: library/tkinter.rst:920 msgid "%X" msgstr "" -#: library/tkinter.rst:921 +#: library/tkinter.rst:920 msgid "x_root" msgstr "" -#: library/tkinter.rst:923 +#: library/tkinter.rst:922 msgid "%y" msgstr "" -#: library/tkinter.rst:923 +#: library/tkinter.rst:922 msgid "y" msgstr "" -#: library/tkinter.rst:923 +#: library/tkinter.rst:922 msgid "%Y" msgstr "" -#: library/tkinter.rst:923 +#: library/tkinter.rst:922 msgid "y_root" msgstr "" -#: library/tkinter.rst:928 +#: library/tkinter.rst:927 msgid "The index Parameter" msgstr "" -#: library/tkinter.rst:930 +#: library/tkinter.rst:929 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:933 msgid "Entry widget indexes (index, view index, etc.)" msgstr "" -#: library/tkinter.rst:935 +#: library/tkinter.rst:934 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:938 msgid "Text widget indexes" msgstr "" -#: library/tkinter.rst:940 +#: library/tkinter.rst:939 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:942 msgid "Menu indexes (menu.invoke(), menu.entryconfig(), etc.)" msgstr "" -#: library/tkinter.rst:944 +#: library/tkinter.rst:943 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:946 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:949 msgid "" "the string ``\"active\"``, which refers to the menu position that is " "currently under the cursor;" msgstr "" -#: library/tkinter.rst:953 +#: library/tkinter.rst:952 msgid "the string ``\"last\"`` which refers to the last menu item;" msgstr "" -#: library/tkinter.rst:955 +#: library/tkinter.rst:954 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:957 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:960 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 +1782,33 @@ msgid "" "above literals, instead." msgstr "" -#: library/tkinter.rst:969 +#: library/tkinter.rst:968 msgid "Images" msgstr "" -#: library/tkinter.rst:971 +#: library/tkinter.rst:970 msgid "" "Images of different formats can be created through the corresponding " "subclass of :class:`tkinter.Image`:" msgstr "" -#: library/tkinter.rst:974 +#: library/tkinter.rst:973 msgid ":class:`BitmapImage` for images in XBM format." msgstr "" -#: library/tkinter.rst:976 +#: library/tkinter.rst:975 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:978 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:981 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 +1817,7 @@ msgid "" "*subsample* parameters to :class:`!PhotoImage` method :meth:`!copy`." msgstr "" -#: library/tkinter.rst:991 +#: library/tkinter.rst:990 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 +1826,24 @@ msgid "" "empty box wherever the image was used." msgstr "" -#: library/tkinter.rst:999 +#: library/tkinter.rst:998 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:1004 msgid "File Handlers" msgstr "" -#: library/tkinter.rst:1007 +#: library/tkinter.rst:1006 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:1010 msgid "" "import tkinter\n" "widget = tkinter.Tk()\n" @@ -1853,11 +1853,11 @@ msgid "" "widget.tk.deletefilehandler(file)" msgstr "" -#: library/tkinter.rst:1018 +#: library/tkinter.rst:1017 msgid "This feature is not available on Windows." msgstr "" -#: library/tkinter.rst:1020 +#: library/tkinter.rst:1019 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 +1868,7 @@ msgid "" "maxbytecount)``." msgstr "" -#: library/tkinter.rst:1031 +#: library/tkinter.rst:1030 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,15 +1877,15 @@ msgid "" "as follows::" msgstr "" -#: library/tkinter.rst:1037 +#: library/tkinter.rst:1036 msgid "callback(file, mask)" msgstr "" -#: library/tkinter.rst:1042 +#: library/tkinter.rst:1041 msgid "Unregisters a file handler." msgstr "" -#: library/tkinter.rst:1049 +#: library/tkinter.rst:1048 msgid "Constants used in the *mask* arguments." msgstr "" @@ -1897,10 +1897,10 @@ msgstr "" msgid "window manager (widgets)" msgstr "" -#: library/tkinter.rst:866 +#: library/tkinter.rst:865 msgid "bind (widgets)" msgstr "" -#: library/tkinter.rst:866 +#: library/tkinter.rst:865 msgid "events (widgets)" msgstr "" diff --git a/library/tkinter.scrolledtext.po b/library/tkinter.scrolledtext.po index abcf01fc..5b4f54f1 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3c28fc23..cdd6ce57 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3b29b3b0..48504a13 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -73,7 +73,7 @@ msgstr "" #: library/token.rst:53 msgid "" "Token value that indicates an :ref:`identifier `. Note that " -"keywords are also initially tokenized an ``NAME`` tokens." +"keywords are also initially tokenized as ``NAME`` tokens." msgstr "" #: library/token.rst:58 diff --git a/library/tokenize.po b/library/tokenize.po index 3f0f76d0..e800eb72 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 bd55d585..d2a0608d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 21ed4586..b778a688 100644 --- a/library/trace.po +++ b/library/trace.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/traceback.po b/library/traceback.po index abaeacca..c711c301 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 e190b35e..1995d92d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 2849cfc0..3abe4288 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 9db9a49a..6e3046ab 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -149,7 +149,7 @@ msgid "" "Experiment with those commands, and also with ``backward()`` and ``right()``." msgstr "" -#: library/turtle.rst:334 library/turtle.rst:1024 +#: library/turtle.rst:334 library/turtle.rst:1028 msgid "Pen control" msgstr "" @@ -504,7 +504,7 @@ msgstr "" msgid ":func:`home`" msgstr "" -#: library/turtle.rst:2709 +#: library/turtle.rst:2739 msgid ":func:`circle`" msgstr "" @@ -512,7 +512,7 @@ msgstr "" msgid ":func:`dot`" msgstr "" -#: library/turtle.rst:2687 +#: library/turtle.rst:2717 msgid ":func:`stamp`" msgstr "" @@ -532,7 +532,7 @@ msgstr "" msgid ":func:`speed`" msgstr "" -#: library/turtle.rst:873 +#: library/turtle.rst:877 msgid "Tell Turtle's state" msgstr "" @@ -572,7 +572,7 @@ msgstr "" msgid ":func:`radians`" msgstr "" -#: library/turtle.rst:1027 +#: library/turtle.rst:1031 msgid "Drawing state" msgstr "" @@ -596,7 +596,7 @@ msgstr "" msgid ":func:`isdown`" msgstr "" -#: library/turtle.rst:1119 +#: library/turtle.rst:1123 msgid "Color control" msgstr "" @@ -612,7 +612,7 @@ msgstr "" msgid ":func:`fillcolor`" msgstr "" -#: library/turtle.rst:1251 +#: library/turtle.rst:1262 msgid "Filling" msgstr "" @@ -628,7 +628,7 @@ msgstr "" msgid ":func:`end_fill`" msgstr "" -#: library/turtle.rst:1298 +#: library/turtle.rst:1309 msgid "More drawing control" msgstr "" @@ -644,11 +644,11 @@ msgstr "" msgid ":func:`write`" msgstr "" -#: library/turtle.rst:1344 +#: library/turtle.rst:1355 msgid "Turtle state" msgstr "" -#: library/turtle.rst:1347 +#: library/turtle.rst:1358 msgid "Visibility" msgstr "" @@ -664,7 +664,7 @@ msgstr "" msgid ":func:`isvisible`" msgstr "" -#: library/turtle.rst:1386 +#: library/turtle.rst:1397 msgid "Appearance" msgstr "" @@ -700,11 +700,11 @@ msgstr "" msgid ":func:`get_shapepoly`" msgstr "" -#: library/turtle.rst:1569 +#: library/turtle.rst:1580 msgid "Using events" msgstr "" -#: library/turtle.rst:2681 +#: library/turtle.rst:2711 msgid ":func:`onclick`" msgstr "" @@ -712,11 +712,11 @@ msgstr "" msgid ":func:`onrelease`" msgstr "" -#: library/turtle.rst:2664 +#: library/turtle.rst:2694 msgid ":func:`ondrag`" msgstr "" -#: library/turtle.rst:1643 +#: library/turtle.rst:1654 msgid "Special Turtle methods" msgstr "" @@ -732,7 +732,7 @@ msgstr "" msgid ":func:`get_poly`" msgstr "" -#: library/turtle.rst:2703 +#: library/turtle.rst:2733 msgid ":func:`clone`" msgstr "" @@ -756,7 +756,7 @@ msgstr "" msgid "Methods of TurtleScreen/Screen" msgstr "" -#: library/turtle.rst:1797 +#: library/turtle.rst:1808 msgid "Window control" msgstr "" @@ -784,7 +784,7 @@ msgstr "" msgid ":func:`setworldcoordinates`" msgstr "" -#: library/turtle.rst:1920 +#: library/turtle.rst:1950 msgid "Animation control" msgstr "" @@ -800,7 +800,7 @@ msgstr "" msgid ":func:`update`" msgstr "" -#: library/turtle.rst:1973 +#: library/turtle.rst:2003 msgid "Using screen events" msgstr "" @@ -828,7 +828,7 @@ msgstr "" msgid ":func:`mainloop` | :func:`done`" msgstr "" -#: library/turtle.rst:2118 +#: library/turtle.rst:2148 msgid "Settings and special methods" msgstr "" @@ -864,7 +864,7 @@ msgstr "" msgid ":func:`window_width`" msgstr "" -#: library/turtle.rst:2082 +#: library/turtle.rst:2112 msgid "Input methods" msgstr "" @@ -932,7 +932,7 @@ msgid "" "(-50.00,0.00)" msgstr "" -#: library/turtle.rst:710 library/turtle.rst:1485 +#: library/turtle.rst:710 library/turtle.rst:1496 msgid "a number" msgstr "" @@ -1153,7 +1153,7 @@ msgstr "" msgid "a number (or ``None``)" msgstr "" -#: library/turtle.rst:805 +#: library/turtle.rst:809 msgid "an integer (or ``None``)" msgstr "" @@ -1194,21 +1194,21 @@ msgid "" "180.0" msgstr "" -#: library/turtle.rst:748 +#: library/turtle.rst:752 msgid "an integer >= 1 (if given)" msgstr "" -#: library/turtle.rst:749 +#: library/turtle.rst:753 msgid "a colorstring or a numeric color tuple" msgstr "" -#: library/turtle.rst:751 +#: library/turtle.rst:755 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:755 +#: library/turtle.rst:759 msgid "" ">>> turtle.home()\n" ">>> turtle.dot()\n" @@ -1219,29 +1219,29 @@ msgid "" "0.0" msgstr "" -#: library/turtle.rst:769 +#: library/turtle.rst:773 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:773 +#: library/turtle.rst:777 msgid "" ">>> turtle.color(\"blue\")\n" ">>> stamp_id = turtle.stamp()\n" ">>> turtle.fd(50)" msgstr "" -#: library/turtle.rst:783 +#: library/turtle.rst:787 msgid "an integer, must be return value of previous :func:`stamp` call" msgstr "" -#: library/turtle.rst:786 +#: library/turtle.rst:790 msgid "Delete stamp with given *stampid*." msgstr "" -#: library/turtle.rst:788 +#: library/turtle.rst:792 msgid "" ">>> turtle.position()\n" "(150.00,-0.00)\n" @@ -1255,14 +1255,14 @@ msgid "" "(200.00,-0.00)" msgstr "" -#: library/turtle.rst:807 +#: library/turtle.rst:811 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:811 +#: library/turtle.rst:815 msgid "" ">>> for i in range(8):\n" "... unused_stamp_id = turtle.stamp()\n" @@ -1272,13 +1272,13 @@ msgid "" ">>> turtle.clearstamps()" msgstr "" -#: library/turtle.rst:823 +#: library/turtle.rst:827 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:826 +#: library/turtle.rst:830 msgid "" ">>> for i in range(4):\n" "... turtle.fd(50); turtle.lt(80)\n" @@ -1287,55 +1287,55 @@ msgid "" "... turtle.undo()" msgstr "" -#: library/turtle.rst:838 +#: library/turtle.rst:842 msgid "an integer in the range 0..10 or a speedstring (see below)" msgstr "" -#: library/turtle.rst:840 +#: library/turtle.rst:844 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:843 +#: library/turtle.rst:847 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:846 +#: library/turtle.rst:850 msgid "\"fastest\": 0" msgstr "" -#: library/turtle.rst:847 +#: library/turtle.rst:851 msgid "\"fast\": 10" msgstr "" -#: library/turtle.rst:848 +#: library/turtle.rst:852 msgid "\"normal\": 6" msgstr "" -#: library/turtle.rst:849 +#: library/turtle.rst:853 msgid "\"slow\": 3" msgstr "" -#: library/turtle.rst:850 +#: library/turtle.rst:854 msgid "\"slowest\": 1" msgstr "" -#: library/turtle.rst:852 +#: library/turtle.rst:856 msgid "" "Speeds from 1 to 10 enforce increasingly faster animation of line drawing " "and turtle turning." msgstr "" -#: library/turtle.rst:855 +#: library/turtle.rst:859 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:859 +#: library/turtle.rst:863 msgid "" ">>> turtle.speed()\n" "3\n" @@ -1347,26 +1347,26 @@ msgid "" "9" msgstr "" -#: library/turtle.rst:878 +#: library/turtle.rst:882 msgid "" "Return the turtle's current location (x,y) (as a :class:`Vec2D` vector)." msgstr "" -#: library/turtle.rst:880 +#: library/turtle.rst:884 msgid "" ">>> turtle.pos()\n" "(440.00,-0.00)" msgstr "" -#: library/turtle.rst:952 +#: library/turtle.rst:956 msgid "a number or a pair/vector of numbers or a turtle instance" msgstr "" -#: library/turtle.rst:953 +#: library/turtle.rst:957 msgid "a number if *x* is a number, else ``None``" msgstr "" -#: library/turtle.rst:892 +#: library/turtle.rst:896 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 " @@ -1374,18 +1374,18 @@ msgid "" "\"logo\"." msgstr "" -#: library/turtle.rst:896 +#: library/turtle.rst:900 msgid "" ">>> turtle.goto(10, 10)\n" ">>> turtle.towards(0,0)\n" "225.0" msgstr "" -#: library/turtle.rst:906 +#: library/turtle.rst:910 msgid "Return the turtle's x coordinate." msgstr "" -#: library/turtle.rst:908 +#: library/turtle.rst:912 msgid "" ">>> turtle.home()\n" ">>> turtle.left(50)\n" @@ -1396,11 +1396,11 @@ msgid "" "64.27876" msgstr "" -#: library/turtle.rst:922 +#: library/turtle.rst:926 msgid "Return the turtle's y coordinate." msgstr "" -#: library/turtle.rst:924 +#: library/turtle.rst:928 msgid "" ">>> turtle.home()\n" ">>> turtle.left(60)\n" @@ -1411,13 +1411,13 @@ msgid "" "86.60254" msgstr "" -#: library/turtle.rst:938 +#: library/turtle.rst:942 msgid "" "Return the turtle's current heading (value depends on the turtle mode, see :" "func:`mode`)." msgstr "" -#: library/turtle.rst:941 +#: library/turtle.rst:945 msgid "" ">>> turtle.home()\n" ">>> turtle.left(67)\n" @@ -1425,13 +1425,13 @@ msgid "" "67.0" msgstr "" -#: library/turtle.rst:955 +#: library/turtle.rst:959 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:958 +#: library/turtle.rst:962 msgid "" ">>> turtle.home()\n" ">>> turtle.distance(30,40)\n" @@ -1444,17 +1444,17 @@ msgid "" "77.0" msgstr "" -#: library/turtle.rst:973 +#: library/turtle.rst:977 msgid "Settings for measurement" msgstr "" -#: library/turtle.rst:979 +#: library/turtle.rst:983 msgid "" "Set angle measurement units, i.e. set number of \"degrees\" for a full " "circle. Default value is 360 degrees." msgstr "" -#: library/turtle.rst:982 +#: library/turtle.rst:986 msgid "" ">>> turtle.home()\n" ">>> turtle.left(90)\n" @@ -1471,13 +1471,13 @@ msgid "" "90.0" msgstr "" -#: library/turtle.rst:1002 +#: library/turtle.rst:1006 msgid "" "Set the angle measurement units to radians. Equivalent to ``degrees(2*math." "pi)``." msgstr "" -#: library/turtle.rst:1005 +#: library/turtle.rst:1009 msgid "" ">>> turtle.home()\n" ">>> turtle.left(90)\n" @@ -1488,87 +1488,87 @@ msgid "" "1.5707963267948966" msgstr "" -#: library/turtle.rst:1033 +#: library/turtle.rst:1037 msgid "Pull the pen down -- drawing when moving." msgstr "" -#: library/turtle.rst:1040 +#: library/turtle.rst:1044 msgid "Pull the pen up -- no drawing when moving." msgstr "" -#: library/turtle.rst:1046 +#: library/turtle.rst:1050 msgid "a positive number" msgstr "" -#: library/turtle.rst:1048 +#: library/turtle.rst:1052 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:1052 +#: library/turtle.rst:1056 msgid "" ">>> turtle.pensize()\n" "1\n" ">>> turtle.pensize(10) # from here on lines of width 10 are drawn" msgstr "" -#: library/turtle.rst:1062 +#: library/turtle.rst:1066 msgid "a dictionary with some or all of the below listed keys" msgstr "" -#: library/turtle.rst:1063 +#: library/turtle.rst:1067 msgid "one or more keyword-arguments with the below listed keys as keywords" msgstr "" -#: library/turtle.rst:1065 +#: library/turtle.rst:1069 msgid "" "Return or set the pen's attributes in a \"pen-dictionary\" with the " "following key/value pairs:" msgstr "" -#: library/turtle.rst:1068 +#: library/turtle.rst:1072 msgid "\"shown\": True/False" msgstr "" -#: library/turtle.rst:1069 +#: library/turtle.rst:1073 msgid "\"pendown\": True/False" msgstr "" -#: library/turtle.rst:1070 +#: library/turtle.rst:1074 msgid "\"pencolor\": color-string or color-tuple" msgstr "" -#: library/turtle.rst:1071 +#: library/turtle.rst:1075 msgid "\"fillcolor\": color-string or color-tuple" msgstr "" -#: library/turtle.rst:1072 +#: library/turtle.rst:1076 msgid "\"pensize\": positive number" msgstr "" -#: library/turtle.rst:1073 +#: library/turtle.rst:1077 msgid "\"speed\": number in range 0..10" msgstr "" -#: library/turtle.rst:1074 +#: library/turtle.rst:1078 msgid "\"resizemode\": \"auto\" or \"user\" or \"noresize\"" msgstr "" -#: library/turtle.rst:1075 +#: library/turtle.rst:1079 msgid "\"stretchfactor\": (positive number, positive number)" msgstr "" -#: library/turtle.rst:1076 +#: library/turtle.rst:1080 msgid "\"outline\": positive number" msgstr "" -#: library/turtle.rst:1077 +#: library/turtle.rst:1081 msgid "\"tilt\": number" msgstr "" -#: library/turtle.rst:1079 +#: library/turtle.rst:1083 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 " @@ -1576,7 +1576,7 @@ msgid "" "attributes in one statement." msgstr "" -#: library/turtle.rst:1084 +#: library/turtle.rst:1088 msgid "" ">>> turtle.pen(fillcolor=\"black\", pencolor=\"red\", pensize=10)\n" ">>> sorted(turtle.pen().items())\n" @@ -1594,11 +1594,11 @@ msgid "" "[('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')]" msgstr "" -#: library/turtle.rst:1105 +#: library/turtle.rst:1109 msgid "Return ``True`` if pen is down, ``False`` if it's up." msgstr "" -#: library/turtle.rst:1107 +#: library/turtle.rst:1111 msgid "" ">>> turtle.penup()\n" ">>> turtle.isdown()\n" @@ -1608,62 +1608,63 @@ msgid "" "True" msgstr "" -#: library/turtle.rst:1123 +#: library/turtle.rst:1129 msgid "Return or set the pencolor." msgstr "" -#: library/turtle.rst:1174 +#: library/turtle.rst:1182 library/turtle.rst:1816 msgid "Four input formats are allowed:" msgstr "" -#: library/turtle.rst:1127 +#: library/turtle.rst:1133 msgid "``pencolor()``" msgstr "" -#: library/turtle.rst:1128 +#: library/turtle.rst:1134 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:1132 +#: library/turtle.rst:1138 msgid "``pencolor(colorstring)``" msgstr "" -#: library/turtle.rst:1133 +#: library/turtle.rst:1139 msgid "" "Set pencolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" -#: library/turtle.rst:1136 +#: library/turtle.rst:1142 msgid "``pencolor((r, g, b))``" msgstr "" -#: library/turtle.rst:1137 +#: library/turtle.rst:1143 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:1141 +#: library/turtle.rst:1147 msgid "``pencolor(r, g, b)``" msgstr "" -#: library/turtle.rst:1142 +#: library/turtle.rst:1148 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:1145 +#: library/turtle.rst:1151 msgid "" "If turtleshape is a polygon, the outline of that polygon is drawn with the " "newly set pencolor." msgstr "" -#: library/turtle.rst:1148 +#: library/turtle.rst:1154 msgid "" ">>> colormode()\n" "1.0\n" @@ -1684,59 +1685,59 @@ msgid "" "(50.0, 193.0, 143.0)" msgstr "" -#: library/turtle.rst:1172 +#: library/turtle.rst:1180 msgid "Return or set the fillcolor." msgstr "" -#: library/turtle.rst:1176 +#: library/turtle.rst:1184 msgid "``fillcolor()``" msgstr "" -#: library/turtle.rst:1177 +#: library/turtle.rst:1185 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:1181 +#: library/turtle.rst:1189 msgid "``fillcolor(colorstring)``" msgstr "" -#: library/turtle.rst:1182 +#: library/turtle.rst:1190 msgid "" "Set fillcolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" -#: library/turtle.rst:1185 +#: library/turtle.rst:1193 msgid "``fillcolor((r, g, b))``" msgstr "" -#: library/turtle.rst:1186 +#: library/turtle.rst:1194 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:1190 +#: library/turtle.rst:1198 msgid "``fillcolor(r, g, b)``" msgstr "" -#: library/turtle.rst:1191 +#: library/turtle.rst:1199 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:1194 +#: library/turtle.rst:1202 msgid "" "If turtleshape is a polygon, the interior of that polygon is drawn with the " "newly set fillcolor." msgstr "" -#: library/turtle.rst:1197 +#: library/turtle.rst:1205 msgid "" ">>> turtle.fillcolor(\"violet\")\n" ">>> turtle.fillcolor()\n" @@ -1751,54 +1752,54 @@ msgid "" "(255.0, 255.0, 255.0)" msgstr "" -#: library/turtle.rst:1215 +#: library/turtle.rst:1226 msgid "Return or set pencolor and fillcolor." msgstr "" -#: library/turtle.rst:1217 +#: library/turtle.rst:1228 msgid "" "Several input formats are allowed. They use 0 to 3 arguments as follows:" msgstr "" -#: library/turtle.rst:1220 +#: library/turtle.rst:1231 msgid "``color()``" msgstr "" -#: library/turtle.rst:1221 +#: library/turtle.rst:1232 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:1225 +#: library/turtle.rst:1236 msgid "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" msgstr "" -#: library/turtle.rst:1226 +#: library/turtle.rst:1237 msgid "" "Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the " "given value." msgstr "" -#: library/turtle.rst:1229 +#: library/turtle.rst:1240 msgid "" "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" msgstr "" -#: library/turtle.rst:1230 +#: library/turtle.rst:1241 msgid "" "Equivalent to ``pencolor(colorstring1)`` and ``fillcolor(colorstring2)`` and " "analogously if the other input format is used." msgstr "" -#: library/turtle.rst:1233 +#: library/turtle.rst:1244 msgid "" "If turtleshape is a polygon, outline and interior of that polygon is drawn " "with the newly set colors." msgstr "" -#: library/turtle.rst:1236 +#: library/turtle.rst:1247 msgid "" ">>> turtle.color(\"red\", \"green\")\n" ">>> turtle.color()\n" @@ -1808,15 +1809,15 @@ msgid "" "((40.0, 80.0, 120.0), (160.0, 200.0, 240.0))" msgstr "" -#: library/turtle.rst:1247 +#: library/turtle.rst:1258 msgid "See also: Screen method :func:`colormode`." msgstr "" -#: library/turtle.rst:1261 +#: library/turtle.rst:1272 msgid "Return fillstate (``True`` if filling, ``False`` else)." msgstr "" -#: library/turtle.rst:1263 +#: library/turtle.rst:1274 msgid "" ">>> turtle.begin_fill()\n" ">>> if turtle.filling():\n" @@ -1825,15 +1826,15 @@ msgid "" "... turtle.pensize(3)" msgstr "" -#: library/turtle.rst:1276 +#: library/turtle.rst:1287 msgid "To be called just before drawing a shape to be filled." msgstr "" -#: library/turtle.rst:1281 +#: library/turtle.rst:1292 msgid "Fill the shape drawn after the last call to :func:`begin_fill`." msgstr "" -#: library/turtle.rst:1283 +#: library/turtle.rst:1294 msgid "" "Whether or not overlap regions for self-intersecting polygons or multiple " "shapes are filled depends on the operating system graphics, type of overlap, " @@ -1841,7 +1842,7 @@ msgid "" "all yellow or have some white regions." msgstr "" -#: library/turtle.rst:1288 +#: library/turtle.rst:1299 msgid "" ">>> turtle.color(\"black\", \"red\")\n" ">>> turtle.begin_fill()\n" @@ -1849,13 +1850,13 @@ msgid "" ">>> turtle.end_fill()" msgstr "" -#: library/turtle.rst:1302 +#: library/turtle.rst:1313 msgid "" "Delete the turtle's drawings from the screen, re-center the turtle and set " "variables to the default values." msgstr "" -#: library/turtle.rst:1305 +#: library/turtle.rst:1316 msgid "" ">>> turtle.goto(0,-22)\n" ">>> turtle.left(100)\n" @@ -1870,30 +1871,30 @@ msgid "" "0.0" msgstr "" -#: library/turtle.rst:1323 +#: library/turtle.rst:1334 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:1329 +#: library/turtle.rst:1340 msgid "object to be written to the TurtleScreen" msgstr "" -#: library/turtle.rst:1330 +#: library/turtle.rst:1341 msgid "True/False" msgstr "" -#: library/turtle.rst:1331 +#: library/turtle.rst:1342 msgid "one of the strings \"left\", \"center\" or right\"" msgstr "" -#: library/turtle.rst:1332 +#: library/turtle.rst:1343 msgid "a triple (fontname, fontsize, fonttype)" msgstr "" -#: library/turtle.rst:1334 +#: library/turtle.rst:1345 msgid "" "Write text - the string representation of *arg* - at the current turtle " "position according to *align* (\"left\", \"center\" or \"right\") and with " @@ -1901,34 +1902,34 @@ msgid "" "corner of the text. By default, *move* is ``False``." msgstr "" -#: library/turtle.rst:1352 +#: library/turtle.rst:1363 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:1356 +#: library/turtle.rst:1367 msgid ">>> turtle.hideturtle()" msgstr "" -#: library/turtle.rst:1365 +#: library/turtle.rst:1376 msgid "Make the turtle visible." msgstr "" -#: library/turtle.rst:1367 +#: library/turtle.rst:1378 msgid ">>> turtle.showturtle()" msgstr "" -#: library/turtle.rst:1375 +#: library/turtle.rst:1386 msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." msgstr "" -#: library/turtle.rst:1390 +#: library/turtle.rst:1401 msgid "a string which is a valid shapename" msgstr "" -#: library/turtle.rst:1392 +#: library/turtle.rst:1403 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 " @@ -1938,7 +1939,7 @@ msgid "" "`register_shape`." msgstr "" -#: library/turtle.rst:1398 +#: library/turtle.rst:1409 msgid "" ">>> turtle.shape()\n" "'classic'\n" @@ -1947,40 +1948,40 @@ msgid "" "'turtle'" msgstr "" -#: library/turtle.rst:1410 +#: library/turtle.rst:1421 msgid "one of the strings \"auto\", \"user\", \"noresize\"" msgstr "" -#: library/turtle.rst:1412 +#: library/turtle.rst:1423 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:1416 +#: library/turtle.rst:1427 msgid "" "\"auto\": adapts the appearance of the turtle corresponding to the value of " "pensize." msgstr "" -#: library/turtle.rst:1417 +#: library/turtle.rst:1428 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:1420 +#: library/turtle.rst:1431 msgid "\"noresize\": no adaption of the turtle's appearance takes place." msgstr "" -#: library/turtle.rst:1422 +#: library/turtle.rst:1433 msgid "" "``resizemode(\"user\")`` is called by :func:`shapesize` when used with " "arguments." msgstr "" -#: library/turtle.rst:1424 +#: library/turtle.rst:1435 msgid "" ">>> turtle.resizemode()\n" "'noresize'\n" @@ -1989,11 +1990,11 @@ msgid "" "'auto'" msgstr "" -#: library/turtle.rst:1438 library/turtle.rst:1439 +#: library/turtle.rst:1449 library/turtle.rst:1450 msgid "positive number" msgstr "" -#: library/turtle.rst:1441 +#: library/turtle.rst:1452 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 " @@ -2003,7 +2004,7 @@ msgid "" "determines the width of the shape's outline." msgstr "" -#: library/turtle.rst:1448 +#: library/turtle.rst:1459 msgid "" ">>> turtle.shapesize()\n" "(1.0, 1.0, 1)\n" @@ -2016,11 +2017,11 @@ msgid "" "(5, 5, 8)" msgstr "" -#: library/turtle.rst:2101 library/turtle.rst:2103 +#: library/turtle.rst:2131 library/turtle.rst:2133 msgid "number (optional)" msgstr "" -#: library/turtle.rst:1466 +#: library/turtle.rst:1477 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 " @@ -2029,7 +2030,7 @@ msgid "" "by which lines parallel to the heading of the turtle are sheared." msgstr "" -#: library/turtle.rst:1473 +#: library/turtle.rst:1484 msgid "" ">>> turtle.shape(\"circle\")\n" ">>> turtle.shapesize(5,2)\n" @@ -2038,13 +2039,13 @@ msgid "" "0.5" msgstr "" -#: library/turtle.rst:1487 +#: library/turtle.rst:1498 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:1490 +#: library/turtle.rst:1501 msgid "" ">>> turtle.reset()\n" ">>> turtle.shape(\"circle\")\n" @@ -2055,11 +2056,11 @@ msgid "" ">>> turtle.fd(50)" msgstr "" -#: library/turtle.rst:1527 library/turtle.rst:1529 library/turtle.rst:1530 +#: library/turtle.rst:1538 library/turtle.rst:1540 library/turtle.rst:1541 msgid "a number (optional)" msgstr "" -#: library/turtle.rst:1506 +#: library/turtle.rst:1517 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 " @@ -2069,7 +2070,7 @@ msgid "" "turtle (its direction of movement)." msgstr "" -#: library/turtle.rst:1514 +#: library/turtle.rst:1525 msgid "" ">>> turtle.reset()\n" ">>> turtle.shape(\"circle\")\n" @@ -2079,11 +2080,11 @@ msgid "" "45.0" msgstr "" -#: library/turtle.rst:1532 +#: library/turtle.rst:1543 msgid "Set or return the current transformation matrix of the turtle shape." msgstr "" -#: library/turtle.rst:1534 +#: library/turtle.rst:1545 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 " @@ -2093,7 +2094,7 @@ msgid "" "tiltangle according to the given matrix." msgstr "" -#: library/turtle.rst:1543 +#: library/turtle.rst:1554 msgid "" ">>> turtle = Turtle()\n" ">>> turtle.shape(\"square\")\n" @@ -2103,13 +2104,13 @@ msgid "" "(4.0, -1.0, -0.0, 2.0)" msgstr "" -#: library/turtle.rst:1556 +#: library/turtle.rst:1567 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:1559 +#: library/turtle.rst:1570 msgid "" ">>> turtle.shape(\"square\")\n" ">>> turtle.shapetransform(4, -1, 0, 2)\n" @@ -2117,30 +2118,30 @@ msgid "" "((50, -20), (30, 20), (-50, 20), (-30, -20))" msgstr "" -#: library/turtle.rst:1596 library/turtle.rst:2025 +#: library/turtle.rst:1607 library/turtle.rst:2055 msgid "" "a function with two arguments which will be called with the coordinates of " "the clicked point on the canvas" msgstr "" -#: library/turtle.rst:1598 library/turtle.rst:2027 +#: library/turtle.rst:1609 library/turtle.rst:2057 msgid "number of the mouse-button, defaults to 1 (left mouse button)" msgstr "" -#: library/turtle.rst:1599 library/turtle.rst:2028 +#: library/turtle.rst:1610 library/turtle.rst:2058 msgid "" "``True`` or ``False`` -- if ``True``, a new binding will be added, otherwise " "it will replace a former binding" msgstr "" -#: library/turtle.rst:1580 +#: library/turtle.rst:1591 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:1584 +#: library/turtle.rst:1595 msgid "" ">>> def turn(x, y):\n" "... left(180)\n" @@ -2149,13 +2150,13 @@ msgid "" ">>> onclick(None) # event-binding will be removed" msgstr "" -#: library/turtle.rst:1602 +#: library/turtle.rst:1613 msgid "" "Bind *fun* to mouse-button-release events on this turtle. If *fun* is " "``None``, existing bindings are removed." msgstr "" -#: library/turtle.rst:1605 +#: library/turtle.rst:1616 msgid "" ">>> class MyTurtle(Turtle):\n" "... def glow(self,x,y):\n" @@ -2169,45 +2170,45 @@ msgid "" ">>> turtle.onrelease(turtle.unglow) # releasing turns it to transparent." msgstr "" -#: library/turtle.rst:1627 +#: library/turtle.rst:1638 msgid "" "Bind *fun* to mouse-move events on this turtle. If *fun* is ``None``, " "existing bindings are removed." msgstr "" -#: library/turtle.rst:1630 +#: library/turtle.rst:1641 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:1633 +#: library/turtle.rst:1644 msgid ">>> turtle.ondrag(turtle.goto)" msgstr "" -#: library/turtle.rst:1638 +#: library/turtle.rst:1649 msgid "" "Subsequently, clicking and dragging the Turtle will move it across the " "screen thereby producing handdrawings (if pen is down)." msgstr "" -#: library/turtle.rst:1647 +#: library/turtle.rst:1658 msgid "" "Start recording the vertices of a polygon. Current turtle position is first " "vertex of polygon." msgstr "" -#: library/turtle.rst:1653 +#: library/turtle.rst:1664 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:1659 +#: library/turtle.rst:1670 msgid "Return the last recorded polygon." msgstr "" -#: library/turtle.rst:1661 +#: library/turtle.rst:1672 msgid "" ">>> turtle.home()\n" ">>> turtle.begin_poly()\n" @@ -2221,25 +2222,25 @@ msgid "" ">>> register_shape(\"myFavouriteShape\", p)" msgstr "" -#: library/turtle.rst:1678 +#: library/turtle.rst:1689 msgid "" "Create and return a clone of the turtle with same position, heading and " "turtle properties." msgstr "" -#: library/turtle.rst:1681 +#: library/turtle.rst:1692 msgid "" ">>> mick = Turtle()\n" ">>> joe = mick.clone()" msgstr "" -#: library/turtle.rst:1691 +#: library/turtle.rst:1702 msgid "" "Return the Turtle object itself. Only reasonable use: as a function to " "return the \"anonymous turtle\":" msgstr "" -#: library/turtle.rst:1694 +#: library/turtle.rst:1705 msgid "" ">>> pet = getturtle()\n" ">>> pet.fd(50)\n" @@ -2247,13 +2248,13 @@ msgid "" "" msgstr "" -#: library/turtle.rst:1705 +#: library/turtle.rst:1716 msgid "" "Return the :class:`TurtleScreen` object the turtle is drawing on. " "TurtleScreen methods can then be called for that object." msgstr "" -#: library/turtle.rst:1708 +#: library/turtle.rst:1719 msgid "" ">>> ts = turtle.getscreen()\n" ">>> ts\n" @@ -2261,11 +2262,11 @@ msgid "" ">>> ts.bgcolor(\"pink\")" msgstr "" -#: library/turtle.rst:1719 +#: library/turtle.rst:1730 msgid "an integer or ``None``" msgstr "" -#: library/turtle.rst:1721 +#: library/turtle.rst:1732 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 " @@ -2273,46 +2274,46 @@ msgid "" "``None``, the undobuffer is disabled." msgstr "" -#: library/turtle.rst:1726 +#: library/turtle.rst:1737 msgid ">>> turtle.setundobuffer(42)" msgstr "" -#: library/turtle.rst:1734 +#: library/turtle.rst:1745 msgid "Return number of entries in the undobuffer." msgstr "" -#: library/turtle.rst:1736 +#: library/turtle.rst:1747 msgid "" ">>> while undobufferentries():\n" "... undo()" msgstr "" -#: library/turtle.rst:1747 +#: library/turtle.rst:1758 msgid "Compound shapes" msgstr "" -#: library/turtle.rst:1749 +#: library/turtle.rst:1760 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:1753 +#: library/turtle.rst:1764 msgid "Create an empty Shape object of type \"compound\"." msgstr "" -#: library/turtle.rst:1754 +#: library/turtle.rst:1765 msgid "" "Add as many components to this object as desired, using the :meth:`~Shape." "addcomponent` method." msgstr "" -#: library/turtle.rst:1757 +#: library/turtle.rst:1768 msgid "For example:" msgstr "" -#: library/turtle.rst:1759 +#: library/turtle.rst:1770 msgid "" ">>> s = Shape(\"compound\")\n" ">>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))\n" @@ -2321,44 +2322,80 @@ msgid "" ">>> s.addcomponent(poly2, \"blue\", \"red\")" msgstr "" -#: library/turtle.rst:1768 +#: library/turtle.rst:1779 msgid "Now add the Shape to the Screen's shapelist and use it:" msgstr "" -#: library/turtle.rst:1770 +#: library/turtle.rst:1781 msgid "" ">>> register_shape(\"myshape\", s)\n" ">>> shape(\"myshape\")" msgstr "" -#: library/turtle.rst:1779 +#: library/turtle.rst:1790 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:1785 +#: library/turtle.rst:1796 msgid "Methods of TurtleScreen/Screen and corresponding functions" msgstr "" -#: library/turtle.rst:1787 +#: library/turtle.rst:1798 msgid "" "Most of the examples in this section refer to a TurtleScreen instance called " "``screen``." msgstr "" -#: library/turtle.rst:1801 +#: library/turtle.rst:1814 +msgid "Return or set the background color of the TurtleScreen." +msgstr "" + +#: library/turtle.rst:1818 +msgid "``bgcolor()``" +msgstr "" + +#: library/turtle.rst:1819 +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:1823 +msgid "``bgcolor(colorstring)``" +msgstr "" + +#: library/turtle.rst:1824 +msgid "" +"Set the background color to *colorstring*, which is a Tk color specification " +"string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." +msgstr "" + +#: library/turtle.rst:1827 +msgid "``bgcolor((r, g, b))``" +msgstr "" + +#: library/turtle.rst:1828 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:1805 -msgid "Set or return background color of the TurtleScreen." +#: library/turtle.rst:1833 +msgid "``bgcolor(r, g, b)``" msgstr "" -#: library/turtle.rst:1807 +#: library/turtle.rst:1834 +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:1837 msgid "" ">>> screen.bgcolor(\"orange\")\n" ">>> screen.bgcolor()\n" @@ -2368,11 +2405,11 @@ msgid "" "(128.0, 0.0, 128.0)" msgstr "" -#: library/turtle.rst:1820 +#: library/turtle.rst:1850 msgid "a string, name of a gif-file or ``\"nopic\"``, or ``None``" msgstr "" -#: library/turtle.rst:1822 +#: library/turtle.rst:1852 msgid "" "Set background image or return name of current backgroundimage. If " "*picname* is a filename, set the corresponding image as background. If " @@ -2380,7 +2417,7 @@ msgid "" "*picname* is ``None``, return the filename of the current backgroundimage. ::" msgstr "" -#: library/turtle.rst:1827 +#: library/turtle.rst:1857 msgid "" ">>> screen.bgpic()\n" "'nopic'\n" @@ -2389,44 +2426,44 @@ msgid "" "\"landscape.gif\"" msgstr "" -#: library/turtle.rst:1838 +#: library/turtle.rst:1868 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:1845 +#: library/turtle.rst:1875 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:1854 +#: library/turtle.rst:1884 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:1861 +#: library/turtle.rst:1891 msgid "Reset all Turtles on the Screen to their initial state." msgstr "" -#: library/turtle.rst:1866 +#: library/turtle.rst:1896 msgid "positive integer, new width of canvas in pixels" msgstr "" -#: library/turtle.rst:1867 +#: library/turtle.rst:1897 msgid "positive integer, new height of canvas in pixels" msgstr "" -#: library/turtle.rst:1868 +#: library/turtle.rst:1898 msgid "colorstring or color-tuple, new background color" msgstr "" -#: library/turtle.rst:1870 +#: library/turtle.rst:1900 msgid "" "If no arguments are given, return current (canvaswidth, canvasheight). Else " "resize the canvas the turtles are drawing on. Do not alter the drawing " @@ -2435,40 +2472,40 @@ msgid "" "outside the canvas before." msgstr "" -#: library/turtle.rst:1882 +#: library/turtle.rst:1912 msgid "e.g. to search for an erroneously escaped turtle ;-)" msgstr "" -#: library/turtle.rst:1887 +#: library/turtle.rst:1917 msgid "a number, x-coordinate of lower left corner of canvas" msgstr "" -#: library/turtle.rst:1888 +#: library/turtle.rst:1918 msgid "a number, y-coordinate of lower left corner of canvas" msgstr "" -#: library/turtle.rst:1889 +#: library/turtle.rst:1919 msgid "a number, x-coordinate of upper right corner of canvas" msgstr "" -#: library/turtle.rst:1890 +#: library/turtle.rst:1920 msgid "a number, y-coordinate of upper right corner of canvas" msgstr "" -#: library/turtle.rst:1892 +#: library/turtle.rst:1922 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:1896 +#: library/turtle.rst:1926 msgid "" "**ATTENTION**: in user-defined coordinate systems angles may appear " "distorted." msgstr "" -#: library/turtle.rst:1899 +#: library/turtle.rst:1929 msgid "" ">>> screen.reset()\n" ">>> screen.setworldcoordinates(-50,-7.5,50,7.5)\n" @@ -2479,22 +2516,22 @@ msgid "" "... left(45); fd(2) # a regular octagon" msgstr "" -#: library/turtle.rst:1924 +#: library/turtle.rst:1954 msgid "positive integer" msgstr "" -#: library/turtle.rst:1926 +#: library/turtle.rst:1956 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:1930 +#: library/turtle.rst:1960 msgid "Optional argument:" msgstr "" -#: library/turtle.rst:1932 +#: library/turtle.rst:1962 msgid "" ">>> screen.delay()\n" "10\n" @@ -2503,11 +2540,11 @@ msgid "" "5" msgstr "" -#: library/turtle.rst:1945 +#: library/turtle.rst:1975 msgid "nonnegative integer" msgstr "" -#: library/turtle.rst:1947 +#: library/turtle.rst:1977 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 " @@ -2516,7 +2553,7 @@ msgid "" "delay value (see :func:`delay`)." msgstr "" -#: library/turtle.rst:1954 +#: library/turtle.rst:1984 msgid "" ">>> screen.tracer(8, 25)\n" ">>> dist = 2\n" @@ -2526,37 +2563,37 @@ msgid "" "... dist += 2" msgstr "" -#: library/turtle.rst:1967 +#: library/turtle.rst:1997 msgid "Perform a TurtleScreen update. To be used when tracer is turned off." msgstr "" -#: library/turtle.rst:1969 +#: library/turtle.rst:1999 msgid "See also the RawTurtle/Turtle method :func:`speed`." msgstr "" -#: library/turtle.rst:1977 +#: library/turtle.rst:2007 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:2004 +#: library/turtle.rst:2034 msgid "a function with no arguments or ``None``" msgstr "" -#: library/turtle.rst:2005 +#: library/turtle.rst:2035 msgid "a string: key (e.g. \"a\") or key-symbol (e.g. \"space\")" msgstr "" -#: library/turtle.rst:1987 +#: library/turtle.rst:2017 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:1991 +#: library/turtle.rst:2021 msgid "" ">>> def f():\n" "... fd(50)\n" @@ -2566,14 +2603,14 @@ msgid "" ">>> screen.listen()" msgstr "" -#: library/turtle.rst:2007 +#: library/turtle.rst:2037 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:2012 +#: library/turtle.rst:2042 msgid "" ">>> def f():\n" "... fd(50)\n" @@ -2582,19 +2619,19 @@ msgid "" ">>> screen.listen()" msgstr "" -#: library/turtle.rst:2031 +#: library/turtle.rst:2061 msgid "" "Bind *fun* to mouse-click events on this screen. If *fun* is ``None``, " "existing bindings are removed." msgstr "" -#: library/turtle.rst:2034 +#: library/turtle.rst:2064 msgid "" "Example for a TurtleScreen instance named ``screen`` and a Turtle instance " "named ``turtle``:" msgstr "" -#: library/turtle.rst:2037 +#: library/turtle.rst:2067 msgid "" ">>> screen.onclick(turtle.goto) # Subsequently clicking into the " "TurtleScreen will\n" @@ -2603,26 +2640,26 @@ msgid "" ">>> screen.onclick(None) # remove event binding again" msgstr "" -#: library/turtle.rst:2045 +#: library/turtle.rst:2075 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:2052 +#: library/turtle.rst:2082 msgid "a function with no arguments" msgstr "" -#: library/turtle.rst:2053 +#: library/turtle.rst:2083 msgid "a number >= 0" msgstr "" -#: library/turtle.rst:2055 +#: library/turtle.rst:2085 msgid "Install a timer that calls *fun* after *t* milliseconds." msgstr "" -#: library/turtle.rst:2057 +#: library/turtle.rst:2087 msgid "" ">>> running = True\n" ">>> def f():\n" @@ -2634,7 +2671,7 @@ msgid "" ">>> running = False" msgstr "" -#: library/turtle.rst:2073 +#: library/turtle.rst:2103 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 " @@ -2642,15 +2679,15 @@ msgid "" "turtle graphics. ::" msgstr "" -#: library/turtle.rst:2078 +#: library/turtle.rst:2108 msgid ">>> screen.mainloop()" msgstr "" -#: library/turtle.rst:2087 library/turtle.rst:2100 +#: library/turtle.rst:2117 library/turtle.rst:2130 msgid "string" msgstr "" -#: library/turtle.rst:2089 +#: library/turtle.rst:2119 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 " @@ -2658,11 +2695,11 @@ msgid "" "``None``. ::" msgstr "" -#: library/turtle.rst:2094 +#: library/turtle.rst:2124 msgid ">>> screen.textinput(\"NIM\", \"Name of first player:\")" msgstr "" -#: library/turtle.rst:2105 +#: library/turtle.rst:2135 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 " @@ -2673,23 +2710,23 @@ msgid "" "return ``None``. ::" msgstr "" -#: library/turtle.rst:2114 +#: library/turtle.rst:2144 msgid "" ">>> screen.numinput(\"Poker\", \"Your stakes:\", 1000, minval=10, " "maxval=10000)" msgstr "" -#: library/turtle.rst:2122 +#: library/turtle.rst:2152 msgid "one of the strings \"standard\", \"logo\" or \"world\"" msgstr "" -#: library/turtle.rst:2124 +#: library/turtle.rst:2154 msgid "" "Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If " "mode is not given, current mode is returned." msgstr "" -#: library/turtle.rst:2127 +#: library/turtle.rst:2157 msgid "" "Mode \"standard\" is compatible with old :mod:`turtle`. Mode \"logo\" is " "compatible with most Logo turtle graphics. Mode \"world\" uses user-defined " @@ -2697,60 +2734,60 @@ msgid "" "if ``x/y`` unit-ratio doesn't equal 1." msgstr "" -#: library/turtle.rst:2133 +#: library/turtle.rst:2163 msgid "Mode" msgstr "" -#: library/turtle.rst:2133 +#: library/turtle.rst:2163 msgid "Initial turtle heading" msgstr "" -#: library/turtle.rst:2133 +#: library/turtle.rst:2163 msgid "positive angles" msgstr "" -#: library/turtle.rst:2135 +#: library/turtle.rst:2165 msgid "\"standard\"" msgstr "" -#: library/turtle.rst:2135 +#: library/turtle.rst:2165 msgid "to the right (east)" msgstr "" -#: library/turtle.rst:2135 +#: library/turtle.rst:2165 msgid "counterclockwise" msgstr "" -#: library/turtle.rst:2136 +#: library/turtle.rst:2166 msgid "\"logo\"" msgstr "" -#: library/turtle.rst:2136 +#: library/turtle.rst:2166 msgid "upward (north)" msgstr "" -#: library/turtle.rst:2136 +#: library/turtle.rst:2166 msgid "clockwise" msgstr "" -#: library/turtle.rst:2139 +#: library/turtle.rst:2169 msgid "" ">>> mode(\"logo\") # resets turtle heading to north\n" ">>> mode()\n" "'logo'" msgstr "" -#: library/turtle.rst:2149 +#: library/turtle.rst:2179 msgid "one of the values 1.0 or 255" msgstr "" -#: library/turtle.rst:2151 +#: library/turtle.rst:2181 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:2154 +#: library/turtle.rst:2184 msgid "" ">>> screen.colormode(1)\n" ">>> turtle.pencolor(240, 160, 80)\n" @@ -2765,114 +2802,114 @@ msgid "" ">>> turtle.pencolor(240,160,80)" msgstr "" -#: library/turtle.rst:2172 +#: library/turtle.rst:2202 msgid "" "Return the Canvas of this TurtleScreen. Useful for insiders who know what " "to do with a Tkinter Canvas." msgstr "" -#: library/turtle.rst:2175 +#: library/turtle.rst:2205 msgid "" ">>> cv = screen.getcanvas()\n" ">>> cv\n" "" msgstr "" -#: library/turtle.rst:2185 +#: library/turtle.rst:2215 msgid "Return a list of names of all currently available turtle shapes." msgstr "" -#: library/turtle.rst:2187 +#: library/turtle.rst:2217 msgid "" ">>> screen.getshapes()\n" "['arrow', 'blank', 'circle', ..., 'turtle']" msgstr "" -#: library/turtle.rst:2197 +#: library/turtle.rst:2227 msgid "There are three different ways to call this function:" msgstr "" -#: library/turtle.rst:2199 +#: library/turtle.rst:2229 msgid "" "*name* is the name of a gif-file and *shape* is ``None``: Install the " "corresponding image shape. ::" msgstr "" -#: library/turtle.rst:2202 +#: library/turtle.rst:2232 msgid ">>> screen.register_shape(\"turtle.gif\")" msgstr "" -#: library/turtle.rst:2205 +#: library/turtle.rst:2235 msgid "" "Image shapes *do not* rotate when turning the turtle, so they do not display " "the heading of the turtle!" msgstr "" -#: library/turtle.rst:2208 +#: library/turtle.rst:2238 msgid "" "*name* is an arbitrary string and *shape* is a tuple of pairs of " "coordinates: Install the corresponding polygon shape." msgstr "" -#: library/turtle.rst:2211 +#: library/turtle.rst:2241 msgid ">>> screen.register_shape(\"triangle\", ((5,-3), (0,5), (-5,-3)))" msgstr "" -#: library/turtle.rst:2216 +#: library/turtle.rst:2246 msgid "" "*name* is an arbitrary string and *shape* is a (compound) :class:`Shape` " "object: Install the corresponding compound shape." msgstr "" -#: library/turtle.rst:2219 +#: library/turtle.rst:2249 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:2225 +#: library/turtle.rst:2255 msgid "Return the list of turtles on the screen." msgstr "" -#: library/turtle.rst:2227 +#: library/turtle.rst:2257 msgid "" ">>> for turtle in screen.turtles():\n" "... turtle.color(\"red\")" msgstr "" -#: library/turtle.rst:2236 +#: library/turtle.rst:2266 msgid "Return the height of the turtle window. ::" msgstr "" -#: library/turtle.rst:2238 +#: library/turtle.rst:2268 msgid "" ">>> screen.window_height()\n" "480" msgstr "" -#: library/turtle.rst:2244 +#: library/turtle.rst:2274 msgid "Return the width of the turtle window. ::" msgstr "" -#: library/turtle.rst:2246 +#: library/turtle.rst:2276 msgid "" ">>> screen.window_width()\n" "640" msgstr "" -#: library/turtle.rst:2253 +#: library/turtle.rst:2283 msgid "Methods specific to Screen, not inherited from TurtleScreen" msgstr "" -#: library/turtle.rst:2257 +#: library/turtle.rst:2287 msgid "Shut the turtlegraphics window." msgstr "" -#: library/turtle.rst:2262 +#: library/turtle.rst:2292 msgid "Bind ``bye()`` method to mouse clicks on the Screen." msgstr "" -#: library/turtle.rst:2265 +#: library/turtle.rst:2295 msgid "" "If the value \"using_IDLE\" in the configuration dictionary is ``False`` " "(default value), also enter mainloop. Remark: If IDLE with the ``-n`` " @@ -2881,38 +2918,38 @@ msgid "" "client script." msgstr "" -#: library/turtle.rst:2274 +#: library/turtle.rst:2304 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:2278 +#: library/turtle.rst:2308 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:2280 +#: library/turtle.rst:2310 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:2282 +#: library/turtle.rst:2312 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:2285 +#: library/turtle.rst:2315 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:2289 +#: library/turtle.rst:2319 msgid "" ">>> screen.setup (width=200, height=200, startx=0, starty=0)\n" ">>> # sets window to 200x200 pixels, in upper left of screen\n" @@ -2920,128 +2957,128 @@ msgid "" ">>> # sets window to 75% of screen by 50% of screen and centers" msgstr "" -#: library/turtle.rst:2300 +#: library/turtle.rst:2330 msgid "a string that is shown in the titlebar of the turtle graphics window" msgstr "" -#: library/turtle.rst:2303 +#: library/turtle.rst:2333 msgid "Set title of turtle window to *titlestring*." msgstr "" -#: library/turtle.rst:2305 +#: library/turtle.rst:2335 msgid ">>> screen.title(\"Welcome to the turtle zoo!\")" msgstr "" -#: library/turtle.rst:2312 +#: library/turtle.rst:2342 msgid "Public classes" msgstr "" -#: library/turtle.rst:2318 +#: library/turtle.rst:2348 msgid "" "a :class:`!tkinter.Canvas`, a :class:`ScrolledCanvas` or a :class:" "`TurtleScreen`" msgstr "" -#: library/turtle.rst:2321 +#: library/turtle.rst:2351 msgid "" "Create a turtle. The turtle has all methods described above as \"methods of " "Turtle/RawTurtle\"." msgstr "" -#: library/turtle.rst:2327 +#: library/turtle.rst:2357 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:2333 +#: library/turtle.rst:2363 msgid "a :class:`!tkinter.Canvas`" msgstr "" -#: library/turtle.rst:2335 +#: library/turtle.rst:2365 msgid "" "Provides screen oriented methods like :func:`bgcolor` etc. that are " "described above." msgstr "" -#: library/turtle.rst:2340 +#: library/turtle.rst:2370 msgid "" "Subclass of TurtleScreen, with :ref:`four methods added `." msgstr "" -#: library/turtle.rst:2345 +#: library/turtle.rst:2375 msgid "" "some Tkinter widget to contain the ScrolledCanvas, i.e. a Tkinter-canvas " "with scrollbars added" msgstr "" -#: library/turtle.rst:2348 +#: library/turtle.rst:2378 msgid "" "Used by class Screen, which thus automatically provides a ScrolledCanvas as " "playground for the turtles." msgstr "" -#: library/turtle.rst:2353 +#: library/turtle.rst:2383 msgid "one of the strings \"polygon\", \"image\", \"compound\"" msgstr "" -#: library/turtle.rst:2355 +#: library/turtle.rst:2385 msgid "" "Data structure modeling shapes. The pair ``(type_, data)`` must follow this " "specification:" msgstr "" -#: library/turtle.rst:2360 +#: library/turtle.rst:2390 msgid "*type_*" msgstr "" -#: library/turtle.rst:2360 +#: library/turtle.rst:2390 msgid "*data*" msgstr "" -#: library/turtle.rst:2362 +#: library/turtle.rst:2392 msgid "\"polygon\"" msgstr "" -#: library/turtle.rst:2362 +#: library/turtle.rst:2392 msgid "a polygon-tuple, i.e. a tuple of pairs of coordinates" msgstr "" -#: library/turtle.rst:2363 +#: library/turtle.rst:2393 msgid "\"image\"" msgstr "" -#: library/turtle.rst:2363 +#: library/turtle.rst:2393 msgid "an image (in this form only used internally!)" msgstr "" -#: library/turtle.rst:2364 +#: library/turtle.rst:2394 msgid "\"compound\"" msgstr "" -#: library/turtle.rst:2364 +#: library/turtle.rst:2394 msgid "" "``None`` (a compound shape has to be constructed using the :meth:" "`addcomponent` method)" msgstr "" -#: library/turtle.rst:2370 +#: library/turtle.rst:2400 msgid "a polygon, i.e. a tuple of pairs of numbers" msgstr "" -#: library/turtle.rst:2371 +#: library/turtle.rst:2401 msgid "a color the *poly* will be filled with" msgstr "" -#: library/turtle.rst:2372 +#: library/turtle.rst:2402 msgid "a color for the poly's outline (if given)" msgstr "" -#: library/turtle.rst:2374 +#: library/turtle.rst:2404 msgid "Example:" msgstr "" -#: library/turtle.rst:2376 +#: library/turtle.rst:2406 msgid "" ">>> poly = ((0,0),(10,-5),(0,10),(-10,-5))\n" ">>> s = Shape(\"compound\")\n" @@ -3049,63 +3086,63 @@ msgid "" ">>> # ... add more components and then use register_shape()" msgstr "" -#: library/turtle.rst:2384 +#: library/turtle.rst:2414 msgid "See :ref:`compoundshapes`." msgstr "" -#: library/turtle.rst:2389 +#: library/turtle.rst:2419 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:2393 +#: library/turtle.rst:2423 msgid "Provides (for *a*, *b* vectors, *k* number):" msgstr "" -#: library/turtle.rst:2395 +#: library/turtle.rst:2425 msgid "``a + b`` vector addition" msgstr "" -#: library/turtle.rst:2396 +#: library/turtle.rst:2426 msgid "``a - b`` vector subtraction" msgstr "" -#: library/turtle.rst:2397 +#: library/turtle.rst:2427 msgid "``a * b`` inner product" msgstr "" -#: library/turtle.rst:2398 +#: library/turtle.rst:2428 msgid "``k * a`` and ``a * k`` multiplication with scalar" msgstr "" -#: library/turtle.rst:2399 +#: library/turtle.rst:2429 msgid "``abs(a)`` absolute value of a" msgstr "" -#: library/turtle.rst:2400 +#: library/turtle.rst:2430 msgid "``a.rotate(angle)`` rotation" msgstr "" -#: library/turtle.rst:2406 +#: library/turtle.rst:2436 msgid "Explanation" msgstr "" -#: library/turtle.rst:2408 +#: library/turtle.rst:2438 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:2412 +#: library/turtle.rst:2442 msgid "" "A :class:`Turtle` instance will automatically create a :class:`Screen` " "instance if one is not already present." msgstr "" -#: library/turtle.rst:2415 +#: library/turtle.rst:2445 msgid "" "``Turtle`` is a subclass of :class:`RawTurtle`, which *doesn't* " "automatically create a drawing surface - a *canvas* will need to be provided " @@ -3113,7 +3150,7 @@ msgid "" "`ScrolledCanvas` or :class:`TurtleScreen`." msgstr "" -#: library/turtle.rst:2421 +#: library/turtle.rst:2451 msgid "" ":class:`TurtleScreen` is the basic drawing surface for a turtle. :class:" "`Screen` is a subclass of ``TurtleScreen``, and includes :ref:`some " @@ -3122,7 +3159,7 @@ msgid "" "`!tkinter.Canvas` or a :class:`ScrolledCanvas` as an argument." msgstr "" -#: library/turtle.rst:2428 +#: library/turtle.rst:2458 msgid "" "The functional interface for turtle graphics uses the various methods of " "``Turtle`` and ``TurtleScreen``/``Screen``. Behind the scenes, a screen " @@ -3131,38 +3168,38 @@ msgid "" "created whenever any of the functions derived from a Turtle method is called." msgstr "" -#: library/turtle.rst:2434 +#: library/turtle.rst:2464 msgid "" "To use multiple turtles on a screen, the object-oriented interface must be " "used." msgstr "" -#: library/turtle.rst:2439 +#: library/turtle.rst:2469 msgid "Help and configuration" msgstr "" -#: library/turtle.rst:2442 +#: library/turtle.rst:2472 msgid "How to use help" msgstr "" -#: library/turtle.rst:2444 +#: library/turtle.rst:2474 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:2448 +#: library/turtle.rst:2478 msgid "" "When using IDLE, tooltips show the signatures and first lines of the " "docstrings of typed in function-/method calls." msgstr "" -#: library/turtle.rst:2451 +#: library/turtle.rst:2481 msgid "Calling :func:`help` on methods or functions displays the docstrings::" msgstr "" -#: library/turtle.rst:2453 +#: library/turtle.rst:2483 msgid "" ">>> help(Screen.bgcolor)\n" "Help on method bgcolor in module turtle:\n" @@ -3194,13 +3231,13 @@ msgid "" " >>> turtle.penup()" msgstr "" -#: library/turtle.rst:2482 +#: library/turtle.rst:2512 msgid "" "The docstrings of the functions which are derived from methods have a " "modified form::" msgstr "" -#: library/turtle.rst:2485 +#: library/turtle.rst:2515 msgid "" ">>> help(bgcolor)\n" "Help on function bgcolor in module turtle:\n" @@ -3234,28 +3271,28 @@ msgid "" " >>> penup()" msgstr "" -#: library/turtle.rst:2516 +#: library/turtle.rst:2546 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:2521 +#: library/turtle.rst:2551 msgid "Translation of docstrings into different languages" msgstr "" -#: library/turtle.rst:2523 +#: library/turtle.rst:2553 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:2529 +#: library/turtle.rst:2559 msgid "a string, used as filename" msgstr "" -#: library/turtle.rst:2531 +#: library/turtle.rst:2561 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 " @@ -3264,37 +3301,37 @@ msgid "" "for translation of the docstrings into different languages." msgstr "" -#: library/turtle.rst:2537 +#: library/turtle.rst:2567 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:2541 +#: library/turtle.rst:2571 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:2544 +#: library/turtle.rst:2574 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:2550 +#: library/turtle.rst:2580 msgid "How to configure Screen and Turtles" msgstr "" -#: library/turtle.rst:2552 +#: library/turtle.rst:2582 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:2555 +#: library/turtle.rst:2585 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 " @@ -3303,12 +3340,12 @@ msgid "" "settings." msgstr "" -#: library/turtle.rst:2560 +#: library/turtle.rst:2590 msgid "" "The built in configuration would correspond to the following ``turtle.cfg``:" msgstr "" -#: library/turtle.rst:2562 +#: library/turtle.rst:2592 msgid "" "width = 0.5\n" "height = 0.75\n" @@ -3332,49 +3369,49 @@ msgid "" "using_IDLE = False" msgstr "" -#: library/turtle.rst:2585 +#: library/turtle.rst:2615 msgid "Short explanation of selected entries:" msgstr "" -#: library/turtle.rst:2587 +#: library/turtle.rst:2617 msgid "" "The first four lines correspond to the arguments of the :func:`Screen.setup " "` method." msgstr "" -#: library/turtle.rst:2589 +#: library/turtle.rst:2619 msgid "" "Line 5 and 6 correspond to the arguments of the method :func:`Screen." "screensize `." msgstr "" -#: library/turtle.rst:2591 +#: library/turtle.rst:2621 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:2593 +#: library/turtle.rst:2623 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:2596 +#: library/turtle.rst:2626 msgid "" "If you want to reflect the turtle its state, you have to use ``resizemode = " "auto``." msgstr "" -#: library/turtle.rst:2598 +#: library/turtle.rst:2628 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:2601 +#: library/turtle.rst:2631 msgid "" "The entries *exampleturtle* and *examplescreen* define the names of these " "objects as they occur in the docstrings. The transformation of method-" @@ -3382,309 +3419,311 @@ msgid "" "docstrings." msgstr "" -#: library/turtle.rst:2605 +#: library/turtle.rst:2635 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:2609 +#: library/turtle.rst:2639 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:2613 +#: library/turtle.rst:2643 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:2619 +#: library/turtle.rst:2649 msgid ":mod:`turtledemo` --- Demo scripts" msgstr "" -#: library/turtle.rst:2624 +#: library/turtle.rst:2654 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:2627 +#: library/turtle.rst:2657 msgid "python -m turtledemo" msgstr "" -#: library/turtle.rst:2629 +#: library/turtle.rst:2659 msgid "" "Alternatively, you can run the demo scripts individually. For example, ::" msgstr "" -#: library/turtle.rst:2631 +#: library/turtle.rst:2661 msgid "python -m turtledemo.bytedesign" msgstr "" -#: library/turtle.rst:2633 +#: library/turtle.rst:2663 msgid "The :mod:`turtledemo` package directory contains:" msgstr "" -#: library/turtle.rst:2635 +#: library/turtle.rst:2665 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:2637 +#: library/turtle.rst:2667 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:2640 +#: library/turtle.rst:2670 msgid "" "A :file:`turtle.cfg` file which serves as an example of how to write and use " "such files." msgstr "" -#: library/turtle.rst:2643 +#: library/turtle.rst:2673 msgid "The demo scripts are:" msgstr "" -#: library/turtle.rst:2650 +#: library/turtle.rst:2680 msgid "Name" msgstr "" -#: library/turtle.rst:2650 +#: library/turtle.rst:2680 msgid "Description" msgstr "" -#: library/turtle.rst:2650 +#: library/turtle.rst:2680 msgid "Features" msgstr "" -#: library/turtle.rst:2652 -msgid "bytedesign" +#: library/turtle.rst:2682 +msgid "``bytedesign``" msgstr "" -#: library/turtle.rst:2652 +#: library/turtle.rst:2682 msgid "complex classical turtle graphics pattern" msgstr "" -#: library/turtle.rst:2652 -msgid ":func:`tracer`, delay, :func:`update`" +#: library/turtle.rst:2682 +msgid ":func:`tracer`, :func:`delay`, :func:`update`" msgstr "" -#: library/turtle.rst:2655 -msgid "chaos" +#: library/turtle.rst:2685 +msgid "``chaos``" msgstr "" -#: library/turtle.rst:2655 +#: library/turtle.rst:2685 msgid "" "graphs Verhulst dynamics, shows that computer's computations can generate " "results sometimes against the common sense expectations" msgstr "" -#: library/turtle.rst:2655 +#: library/turtle.rst:2685 msgid "world coordinates" msgstr "" -#: library/turtle.rst:2661 -msgid "clock" +#: library/turtle.rst:2691 +msgid "``clock``" msgstr "" -#: library/turtle.rst:2661 +#: library/turtle.rst:2691 msgid "analog clock showing time of your computer" msgstr "" -#: library/turtle.rst:2661 -msgid "turtles as clock's hands, ontimer" +#: library/turtle.rst:2691 +msgid "turtles as clock's hands, :func:`ontimer`" msgstr "" -#: library/turtle.rst:2664 -msgid "colormixer" +#: library/turtle.rst:2694 +msgid "``colormixer``" msgstr "" -#: library/turtle.rst:2664 +#: library/turtle.rst:2694 msgid "experiment with r, g, b" msgstr "" -#: library/turtle.rst:2666 -msgid "forest" +#: library/turtle.rst:2696 +msgid "``forest``" msgstr "" -#: library/turtle.rst:2666 +#: library/turtle.rst:2696 msgid "3 breadth-first trees" msgstr "" -#: library/turtle.rst:2666 +#: library/turtle.rst:2696 msgid "randomization" msgstr "" -#: library/turtle.rst:2668 -msgid "fractalcurves" +#: library/turtle.rst:2698 +msgid "``fractalcurves``" msgstr "" -#: library/turtle.rst:2668 +#: library/turtle.rst:2698 msgid "Hilbert & Koch curves" msgstr "" -#: library/turtle.rst:2668 +#: library/turtle.rst:2698 msgid "recursion" msgstr "" -#: library/turtle.rst:2670 -msgid "lindenmayer" +#: library/turtle.rst:2700 +msgid "``lindenmayer``" msgstr "" -#: library/turtle.rst:2670 +#: library/turtle.rst:2700 msgid "ethnomathematics (indian kolams)" msgstr "" -#: library/turtle.rst:2670 +#: library/turtle.rst:2700 msgid "L-System" msgstr "" -#: library/turtle.rst:2673 -msgid "minimal_hanoi" +#: library/turtle.rst:2703 +msgid "``minimal_hanoi``" msgstr "" -#: library/turtle.rst:2673 +#: library/turtle.rst:2703 msgid "Towers of Hanoi" msgstr "" -#: library/turtle.rst:2673 -msgid "Rectangular Turtles as Hanoi discs (shape, shapesize)" +#: library/turtle.rst:2703 +msgid "Rectangular Turtles as Hanoi discs (:func:`shape`, :func:`shapesize`)" msgstr "" -#: library/turtle.rst:2677 -msgid "nim" +#: library/turtle.rst:2707 +msgid "``nim``" msgstr "" -#: library/turtle.rst:2677 +#: library/turtle.rst:2707 msgid "" "play the classical nim game with three heaps of sticks against the computer." msgstr "" -#: library/turtle.rst:2677 +#: library/turtle.rst:2707 msgid "turtles as nimsticks, event driven (mouse, keyboard)" msgstr "" -#: library/turtle.rst:2681 -msgid "paint" +#: library/turtle.rst:2711 +msgid "``paint``" msgstr "" -#: library/turtle.rst:2681 +#: library/turtle.rst:2711 msgid "super minimalistic drawing program" msgstr "" -#: library/turtle.rst:2684 -msgid "peace" +#: library/turtle.rst:2714 +msgid "``peace``" msgstr "" -#: library/turtle.rst:2684 +#: library/turtle.rst:2714 msgid "elementary" msgstr "" -#: library/turtle.rst:2684 +#: library/turtle.rst:2714 msgid "turtle: appearance and animation" msgstr "" -#: library/turtle.rst:2687 -msgid "penrose" +#: library/turtle.rst:2717 +msgid "``penrose``" msgstr "" -#: library/turtle.rst:2687 +#: library/turtle.rst:2717 msgid "aperiodic tiling with kites and darts" msgstr "" -#: library/turtle.rst:2690 -msgid "planet_and_moon" +#: library/turtle.rst:2720 +msgid "``planet_and_moon``" msgstr "" -#: library/turtle.rst:2690 +#: library/turtle.rst:2720 msgid "simulation of gravitational system" msgstr "" -#: library/turtle.rst:2690 +#: library/turtle.rst:2720 msgid "compound shapes, :class:`Vec2D`" msgstr "" -#: library/turtle.rst:2693 -msgid "rosette" +#: library/turtle.rst:2723 +msgid "``rosette``" msgstr "" -#: library/turtle.rst:2693 +#: library/turtle.rst:2723 msgid "a pattern from the wikipedia article on turtle graphics" msgstr "" -#: library/turtle.rst:2693 +#: library/turtle.rst:2723 msgid ":func:`clone`, :func:`undo`" msgstr "" -#: library/turtle.rst:2696 -msgid "round_dance" +#: library/turtle.rst:2726 +msgid "``round_dance``" msgstr "" -#: library/turtle.rst:2696 +#: library/turtle.rst:2726 msgid "dancing turtles rotating pairwise in opposite direction" msgstr "" -#: library/turtle.rst:2696 -msgid "compound shapes, clone shapesize, tilt, get_shapepoly, update" +#: library/turtle.rst:2726 +msgid "" +"compound shapes, :func:`clone` :func:`shapesize`, :func:`tilt`, :func:" +"`get_shapepoly`, :func:`update`" msgstr "" -#: library/turtle.rst:2700 -msgid "sorting_animate" +#: library/turtle.rst:2730 +msgid "``sorting_animate``" msgstr "" -#: library/turtle.rst:2700 +#: library/turtle.rst:2730 msgid "visual demonstration of different sorting methods" msgstr "" -#: library/turtle.rst:2700 +#: library/turtle.rst:2730 msgid "simple alignment, randomization" msgstr "" -#: library/turtle.rst:2703 -msgid "tree" +#: library/turtle.rst:2733 +msgid "``tree``" msgstr "" -#: library/turtle.rst:2703 +#: library/turtle.rst:2733 msgid "a (graphical) breadth first tree (using generators)" msgstr "" -#: library/turtle.rst:2706 -msgid "two_canvases" +#: library/turtle.rst:2736 +msgid "``two_canvases``" msgstr "" -#: library/turtle.rst:2706 +#: library/turtle.rst:2736 msgid "simple design" msgstr "" -#: library/turtle.rst:2706 +#: library/turtle.rst:2736 msgid "turtles on two canvases" msgstr "" -#: library/turtle.rst:2709 -msgid "yinyang" +#: library/turtle.rst:2739 +msgid "``yinyang``" msgstr "" -#: library/turtle.rst:2709 +#: library/turtle.rst:2739 msgid "another elementary example" msgstr "" -#: library/turtle.rst:2712 +#: library/turtle.rst:2742 msgid "Have fun!" msgstr "" -#: library/turtle.rst:2716 +#: library/turtle.rst:2746 msgid "Changes since Python 2.6" msgstr "" -#: library/turtle.rst:2718 +#: library/turtle.rst:2748 msgid "" "The methods :func:`Turtle.tracer `, :func:`Turtle.window_width " "` and :func:`Turtle.window_height ` have been " @@ -3695,14 +3734,14 @@ msgid "" "methods.)" msgstr "" -#: library/turtle.rst:2726 +#: library/turtle.rst:2756 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:2731 +#: library/turtle.rst:2761 msgid "" "A method :func:`Turtle.filling ` has been added. It returns a " "boolean value: ``True`` if a filling process is under way, ``False`` " @@ -3710,11 +3749,11 @@ msgid "" "in Python 2.6." msgstr "" -#: library/turtle.rst:2737 +#: library/turtle.rst:2767 msgid "Changes since Python 3.0" msgstr "" -#: library/turtle.rst:2739 +#: library/turtle.rst:2769 msgid "" "The :class:`Turtle` methods :func:`shearfactor`, :func:`shapetransform` and :" "func:`get_shapepoly` have been added. Thus the full range of regular linear " @@ -3723,28 +3762,28 @@ msgid "" "set the tilt angle." msgstr "" -#: library/turtle.rst:2745 +#: library/turtle.rst:2775 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:2749 +#: library/turtle.rst:2779 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:2753 +#: library/turtle.rst:2783 msgid "" "Two input methods have been added: :func:`Screen.textinput ` and :" "func:`Screen.numinput `. These pop up input dialogs and return " "strings and numbers respectively." msgstr "" -#: library/turtle.rst:2757 +#: library/turtle.rst:2787 msgid "" "Two example scripts :file:`tdemo_nim.py` and :file:`tdemo_round_dance.py` " "have been added to the :file:`Lib/turtledemo` directory." diff --git a/library/types.po b/library/types.po index 796e3110..099644f1 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/typing.po b/library/typing.po index db0ba122..6b2a8a8c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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:3121 library/typing.rst:3301 +#: library/typing.rst:3168 library/typing.rst:3349 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:3791 +#: library/typing.rst:3853 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:1209 library/typing.rst:1312 -#: library/typing.rst:1574 library/typing.rst:3286 +#: library/typing.rst:991 library/typing.rst:1222 library/typing.rst:1351 +#: library/typing.rst:1621 library/typing.rst:3334 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:2145 +#: library/typing.rst:2192 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,87 +1547,99 @@ 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:1109 +msgid "" +"type A = Union[int, str]\n" +"Union[A, float] != Union[int, str, float]" +msgstr "" + +#: library/typing.rst:1112 msgid "Unions of a single argument vanish, e.g.::" msgstr "" -#: library/typing.rst:1103 +#: library/typing.rst:1114 msgid "Union[int] == int # The constructor actually returns int" msgstr "" -#: library/typing.rst:1105 +#: library/typing.rst:1252 msgid "Redundant arguments are skipped, e.g.::" msgstr "" -#: library/typing.rst:1107 +#: library/typing.rst:1118 msgid "Union[int, str, int] == Union[int, str] == int | str" msgstr "" -#: library/typing.rst:1109 +#: library/typing.rst:1120 msgid "When comparing unions, the argument order is ignored, e.g.::" msgstr "" -#: library/typing.rst:1111 +#: library/typing.rst:1122 msgid "Union[int, str] == Union[str, int]" msgstr "" -#: library/typing.rst:1113 +#: library/typing.rst:1124 msgid "You cannot subclass or instantiate a ``Union``." msgstr "" -#: library/typing.rst:1115 +#: library/typing.rst:1126 msgid "You cannot write ``Union[X][Y]``." msgstr "" -#: library/typing.rst:1117 +#: library/typing.rst:1128 msgid "Don't remove explicit subclasses from unions at runtime." msgstr "" -#: library/typing.rst:1120 +#: library/typing.rst:1131 msgid "" "Unions can now be written as ``X | Y``. See :ref:`union type " "expressions`." msgstr "" -#: library/typing.rst:1126 +#: library/typing.rst:1137 msgid "``Optional[X]`` is equivalent to ``X | None`` (or ``Union[X, None]``)." msgstr "" -#: library/typing.rst:1128 +#: library/typing.rst:1139 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 " @@ -1635,36 +1647,36 @@ msgid "" "optional. For example::" msgstr "" -#: library/typing.rst:1133 +#: library/typing.rst:1144 msgid "" "def foo(arg: int = 0) -> None:\n" " ..." msgstr "" -#: library/typing.rst:1136 +#: library/typing.rst:1147 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:1140 +#: library/typing.rst:1151 msgid "" "def foo(arg: Optional[int] = None) -> None:\n" " ..." msgstr "" -#: library/typing.rst:1143 +#: library/typing.rst:1154 msgid "" "Optional can now be written as ``X | None``. See :ref:`union type " "expressions`." msgstr "" -#: library/typing.rst:1149 +#: library/typing.rst:1160 msgid "Special form for annotating higher-order functions." msgstr "" -#: library/typing.rst:1151 +#: library/typing.rst:1164 msgid "" "``Concatenate`` can be used in conjunction with :ref:`Callable ` and :class:`ParamSpec` to annotate a higher-order callable which " @@ -1675,7 +1687,7 @@ msgid "" "``Concatenate`` must be a :class:`ParamSpec` or ellipsis (``...``)." msgstr "" -#: library/typing.rst:1160 +#: library/typing.rst:1173 msgid "" "For example, to annotate a decorator ``with_lock`` which provides a :class:" "`threading.Lock` to the decorated function, ``Concatenate`` can be used to " @@ -1686,7 +1698,7 @@ msgid "" "passed in::" msgstr "" -#: library/typing.rst:1168 +#: library/typing.rst:1181 msgid "" "from collections.abc import Callable\n" "from threading import Lock\n" @@ -1714,31 +1726,31 @@ msgid "" "sum_threadsafe([1.1, 2.2, 3.3])" msgstr "" -#: library/typing.rst:2113 +#: library/typing.rst:2160 msgid "" ":pep:`612` -- Parameter Specification Variables (the PEP which introduced " "``ParamSpec`` and ``Concatenate``)" msgstr "" -#: library/typing.rst:1198 +#: library/typing.rst:1211 msgid ":class:`ParamSpec`" msgstr "" -#: library/typing.rst:2116 +#: library/typing.rst:2163 msgid ":ref:`annotating-callables`" msgstr "" -#: library/typing.rst:1203 +#: library/typing.rst:1216 msgid "Special typing form to define \"literal types\"." msgstr "" -#: library/typing.rst:1205 +#: library/typing.rst:1218 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:1211 +#: library/typing.rst:1224 msgid "" "def validate_simple(data: Any) -> Literal[True]: # always returns True\n" " ...\n" @@ -1751,14 +1763,62 @@ msgid "" "open_helper('/other/path', 'typo') # Error in type checker" msgstr "" -#: library/typing.rst:1221 +#: library/typing.rst:1234 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:1227 +#: library/typing.rst:1238 +msgid "Additional details:" +msgstr "" + +#: library/typing.rst:1240 +msgid "The arguments must be literal values and there must be at least one." +msgstr "" + +#: library/typing.rst:1242 +msgid "Nested ``Literal`` types are flattened, e.g.::" +msgstr "" + +#: library/typing.rst:1244 +msgid "assert Literal[Literal[1, 2], 3] == Literal[1, 2, 3]" +msgstr "" + +#: library/typing.rst:1246 +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:1249 +msgid "" +"type A = Literal[1, 2]\n" +"assert Literal[A, 3] != Literal[1, 2, 3]" +msgstr "" + +#: library/typing.rst:1254 +msgid "assert Literal[1, 2, 1] == Literal[1, 2]" +msgstr "" + +#: library/typing.rst:1256 +msgid "When comparing literals, the argument order is ignored, e.g.::" +msgstr "" + +#: library/typing.rst:1258 +msgid "assert Literal[1, 2] == Literal[2, 1]" +msgstr "" + +#: library/typing.rst:1260 +msgid "You cannot subclass or instantiate a ``Literal``." +msgstr "" + +#: library/typing.rst:1262 +msgid "You cannot write ``Literal[X][Y]``." +msgstr "" + +#: library/typing.rst:1266 msgid "" "``Literal`` now de-duplicates parameters. Equality comparisons of " "``Literal`` objects are no longer order dependent. ``Literal`` objects will " @@ -1766,29 +1826,29 @@ msgid "" "their parameters are not :term:`hashable`." msgstr "" -#: library/typing.rst:1235 +#: library/typing.rst:1274 msgid "Special type construct to mark class variables." msgstr "" -#: library/typing.rst:1237 +#: library/typing.rst:1276 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:1241 +#: library/typing.rst:1280 msgid "" "class Starship:\n" " stats: ClassVar[dict[str, int]] = {} # class variable\n" " damage: int = 10 # instance variable" msgstr "" -#: library/typing.rst:1245 +#: library/typing.rst:1284 msgid ":data:`ClassVar` accepts only types and cannot be further subscribed." msgstr "" -#: library/typing.rst:1247 +#: library/typing.rst:1286 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 " @@ -1796,28 +1856,28 @@ msgid "" "example, a type checker might flag the following code as an error::" msgstr "" -#: library/typing.rst:1253 +#: library/typing.rst:1292 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:1261 +#: library/typing.rst:1300 msgid ":data:`ClassVar` can now be nested in :data:`Final` and vice versa." msgstr "" -#: library/typing.rst:1265 +#: library/typing.rst:1304 msgid "Special typing construct to indicate final names to type checkers." msgstr "" -#: library/typing.rst:1267 +#: library/typing.rst:1306 msgid "" "Final names cannot be reassigned in any scope. Final names declared in class " "scopes cannot be overridden in subclasses." msgstr "" -#: library/typing.rst:1272 +#: library/typing.rst:1311 msgid "" "MAX_SIZE: Final = 9000\n" "MAX_SIZE += 1 # Error reported by type checker\n" @@ -1829,43 +1889,43 @@ msgid "" " TIMEOUT = 1 # Error reported by type checker" msgstr "" -#: library/typing.rst:3074 +#: library/typing.rst:3121 msgid "" "There is no runtime checking of these properties. See :pep:`591` for more " "details." msgstr "" -#: library/typing.rst:1288 +#: library/typing.rst:1327 msgid ":data:`Final` can now be nested in :data:`ClassVar` and vice versa." msgstr "" -#: library/typing.rst:1292 +#: library/typing.rst:1331 msgid "Special typing construct to mark a :class:`TypedDict` key as required." msgstr "" -#: library/typing.rst:1294 +#: library/typing.rst:1333 msgid "" "This is mainly useful for ``total=False`` TypedDicts. See :class:`TypedDict` " "and :pep:`655` for more details." msgstr "" -#: library/typing.rst:1301 +#: library/typing.rst:1340 msgid "" "Special typing construct to mark a :class:`TypedDict` key as potentially " "missing." msgstr "" -#: library/typing.rst:1304 +#: library/typing.rst:1343 msgid "See :class:`TypedDict` and :pep:`655` for more details." msgstr "" -#: library/typing.rst:1310 +#: library/typing.rst:1349 msgid "" "A special typing construct to mark an item of a :class:`TypedDict` as read-" "only." msgstr "" -#: library/typing.rst:1314 +#: library/typing.rst:1353 msgid "" "class Movie(TypedDict):\n" " title: ReadOnly[str]\n" @@ -1876,19 +1936,19 @@ msgid "" " m[\"title\"] = \"The Matrix\" # typechecker error" msgstr "" -#: library/typing.rst:1322 +#: library/typing.rst:1361 msgid "There is no runtime checking for this property." msgstr "" -#: library/typing.rst:1324 +#: library/typing.rst:1363 msgid "See :class:`TypedDict` and :pep:`705` for more details." msgstr "" -#: library/typing.rst:1330 +#: library/typing.rst:1369 msgid "Special typing form to add context-specific metadata to an annotation." msgstr "" -#: library/typing.rst:1332 +#: library/typing.rst:1371 msgid "" "Add metadata ``x`` to a given type ``T`` by using the annotation " "``Annotated[T, x]``. Metadata added using ``Annotated`` can be used by " @@ -1896,7 +1956,7 @@ msgid "" "a :attr:`!__metadata__` attribute." msgstr "" -#: library/typing.rst:1337 +#: library/typing.rst:1376 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 " @@ -1905,17 +1965,17 @@ msgid "" "system." msgstr "" -#: library/typing.rst:1343 +#: library/typing.rst:1382 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:1350 +#: library/typing.rst:1389 msgid "" "The responsibility of how to interpret the metadata lies with the tool or " "library encountering an ``Annotated`` annotation. A tool or library " @@ -1923,13 +1983,13 @@ msgid "" "determine if they are of interest (e.g., using :func:`isinstance`)." msgstr "" -#: library/typing.rst:1358 +#: library/typing.rst:1397 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:1361 +#: library/typing.rst:1400 msgid "" "@dataclass\n" "class ValueRange:\n" @@ -1940,14 +2000,14 @@ msgid "" "T2 = Annotated[T1, ValueRange(-20, 3)]" msgstr "" -#: library/typing.rst:1371 +#: library/typing.rst:1410 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:1375 +#: library/typing.rst:1414 msgid "" "@dataclass\n" "class ctype:\n" @@ -1959,20 +2019,20 @@ msgid "" "assert a1 != a2 # Order matters" msgstr "" -#: library/typing.rst:1384 +#: library/typing.rst:1423 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:1388 +#: library/typing.rst:1427 msgid "" "Nested ``Annotated`` types are flattened. The order of the metadata elements " "starts with the innermost annotation::" msgstr "" -#: library/typing.rst:1391 +#: library/typing.rst:1430 msgid "" "assert Annotated[Annotated[int, ValueRange(3, 10)], ctype(\"char\")] == " "Annotated[\n" @@ -1980,22 +2040,37 @@ msgid "" "]" msgstr "" -#: library/typing.rst:1395 +#: library/typing.rst:1434 +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:1437 +msgid "" +"type From3To10[T] = Annotated[T, ValueRange(3, 10)]\n" +"assert Annotated[From3To10[int], ctype(\"char\")] != Annotated[\n" +" int, ValueRange(3, 10), ctype(\"char\")\n" +"]" +msgstr "" + +#: library/typing.rst:1442 msgid "Duplicated metadata elements are not removed::" msgstr "" -#: library/typing.rst:1397 +#: library/typing.rst:1444 msgid "" "assert Annotated[int, ValueRange(3, 10)] != Annotated[\n" " int, ValueRange(3, 10), ValueRange(3, 10)\n" "]" msgstr "" -#: library/typing.rst:1401 +#: library/typing.rst:1448 msgid "``Annotated`` can be used with nested and generic aliases:" msgstr "" -#: library/typing.rst:1403 +#: library/typing.rst:1450 msgid "" "@dataclass\n" "class MaxLen:\n" @@ -2009,29 +2084,29 @@ msgid "" "type V = Vec[int]" msgstr "" -#: library/typing.rst:1415 +#: library/typing.rst:1462 msgid "``Annotated`` cannot be used with an unpacked :class:`TypeVarTuple`::" msgstr "" -#: library/typing.rst:1417 +#: library/typing.rst:1464 msgid "" "type Variadic[*Ts] = Annotated[*Ts, Ann1] = Annotated[T1, T2, T3, ..., " "Ann1] # NOT valid" msgstr "" -#: library/typing.rst:1419 +#: library/typing.rst:1466 msgid "" "where ``T1``, ``T2``, ... are :class:`TypeVars `. This is invalid " "as only one type should be passed to Annotated." msgstr "" -#: library/typing.rst:1422 +#: library/typing.rst:1469 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:1425 +#: library/typing.rst:1472 msgid "" ">>> from typing import Annotated, get_type_hints\n" ">>> def func(x: Annotated[int, \"metadata\"]) -> None: pass\n" @@ -2042,13 +2117,13 @@ msgid "" "{'x': typing.Annotated[int, 'metadata'], 'return': }" msgstr "" -#: library/typing.rst:1435 +#: library/typing.rst:1482 msgid "" "At runtime, the metadata associated with an ``Annotated`` type can be " "retrieved via the :attr:`!__metadata__` attribute:" msgstr "" -#: library/typing.rst:1438 +#: library/typing.rst:1485 msgid "" ">>> from typing import Annotated\n" ">>> X = Annotated[int, \"very\", \"important\", \"metadata\"]\n" @@ -2058,13 +2133,13 @@ msgid "" "('very', 'important', 'metadata')" msgstr "" -#: library/typing.rst:1447 +#: library/typing.rst:1494 msgid "" "If you want to retrieve the original type wrapped by ``Annotated``, use the :" "attr:`!__origin__` attribute:" msgstr "" -#: library/typing.rst:1450 +#: library/typing.rst:1497 msgid "" ">>> from typing import Annotated, get_origin\n" ">>> Password = Annotated[str, \"secret\"]\n" @@ -2072,30 +2147,30 @@ msgid "" "" msgstr "" -#: library/typing.rst:1457 +#: library/typing.rst:1504 msgid "Note that using :func:`get_origin` will return ``Annotated`` itself:" msgstr "" -#: library/typing.rst:1459 +#: library/typing.rst:1506 msgid "" ">>> get_origin(Password)\n" "typing.Annotated" msgstr "" -#: library/typing.rst:1466 +#: library/typing.rst:1513 msgid ":pep:`593` - Flexible function and variable annotations" msgstr "" -#: library/typing.rst:1467 +#: library/typing.rst:1514 msgid "The PEP introducing ``Annotated`` to the standard library." msgstr "" -#: library/typing.rst:1558 +#: library/typing.rst:1605 msgid "" "Special typing construct for marking user-defined type predicate functions." msgstr "" -#: library/typing.rst:1476 +#: library/typing.rst:1523 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 " @@ -2103,7 +2178,7 @@ msgid "" "one positional argument." msgstr "" -#: library/typing.rst:1481 +#: library/typing.rst:1528 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 " @@ -2113,7 +2188,7 @@ msgid "" "predicate\"::" msgstr "" -#: library/typing.rst:1487 +#: library/typing.rst:1534 msgid "" "def is_str(val: str | float):\n" " # \"isinstance\" type predicate\n" @@ -2125,7 +2200,7 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:1496 +#: library/typing.rst:1543 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:" @@ -2136,29 +2211,29 @@ msgid "" "does not return ``True`` for all instances of the narrowed type." msgstr "" -#: library/typing.rst:1504 +#: library/typing.rst:1551 msgid "" "Using ``-> TypeIs[NarrowedType]`` tells the static type checker that for a " "given function:" msgstr "" -#: library/typing.rst:1568 +#: library/typing.rst:1615 msgid "The return value is a boolean." msgstr "" -#: library/typing.rst:1508 +#: library/typing.rst:1555 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:1510 +#: library/typing.rst:1557 msgid "" "If the return value is ``False``, the type of its argument is narrowed to " "exclude ``NarrowedType``." msgstr "" -#: library/typing.rst:1515 +#: library/typing.rst:1562 msgid "" "from typing import assert_type, final, TypeIs\n" "\n" @@ -2182,7 +2257,7 @@ msgid "" " assert_type(arg, Unrelated)" msgstr "" -#: library/typing.rst:1536 +#: library/typing.rst:1583 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 " @@ -2191,27 +2266,27 @@ msgid "" "functions in a type-safe manner." msgstr "" -#: library/typing.rst:1542 +#: library/typing.rst:1589 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:1546 +#: library/typing.rst:1593 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:1550 +#: library/typing.rst:1597 msgid "" "``TypeIs`` also works with type variables. For more information, see :pep:" "`742` (Narrowing types with ``TypeIs``)." msgstr "" -#: library/typing.rst:1560 +#: library/typing.rst:1607 msgid "" "Type predicate functions are user-defined functions that return whether " "their argument is an instance of a particular type. ``TypeGuard`` works " @@ -2219,25 +2294,25 @@ msgid "" "checking behavior (see below)." msgstr "" -#: library/typing.rst:1565 +#: library/typing.rst:1612 msgid "" "Using ``-> TypeGuard`` tells the static type checker that for a given " "function:" msgstr "" -#: library/typing.rst:1569 +#: library/typing.rst:1616 msgid "" "If the return value is ``True``, the type of its argument is the type inside " "``TypeGuard``." msgstr "" -#: library/typing.rst:1572 +#: library/typing.rst:1619 msgid "" "``TypeGuard`` also works with type variables. See :pep:`647` for more " "details." msgstr "" -#: library/typing.rst:1576 +#: library/typing.rst:1623 msgid "" "def is_str_list(val: list[object]) -> TypeGuard[list[str]]:\n" " '''Determines whether all objects in the list are strings'''\n" @@ -2252,11 +2327,11 @@ msgid "" " print(\"Not a list of strings!\")" msgstr "" -#: library/typing.rst:1588 +#: library/typing.rst:1635 msgid "``TypeIs`` and ``TypeGuard`` differ in the following ways:" msgstr "" -#: library/typing.rst:1590 +#: library/typing.rst:1637 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 " @@ -2264,7 +2339,7 @@ msgid "" "subtype of the former, since ``list`` is invariant." msgstr "" -#: library/typing.rst:1594 +#: library/typing.rst:1641 msgid "" "When a ``TypeGuard`` function returns ``True``, type checkers narrow the " "type of the variable to exactly the ``TypeGuard`` type. When a ``TypeIs`` " @@ -2273,7 +2348,7 @@ msgid "" "type. (Technically, this is known as an intersection type.)" msgstr "" -#: library/typing.rst:1598 +#: library/typing.rst:1645 msgid "" "When a ``TypeGuard`` function returns ``False``, type checkers cannot narrow " "the type of the variable at all. When a ``TypeIs`` function returns " @@ -2281,18 +2356,18 @@ msgid "" "``TypeIs`` type." msgstr "" -#: library/typing.rst:1607 +#: library/typing.rst:1654 msgid "Typing operator to conceptually mark an object as having been unpacked." msgstr "" -#: library/typing.rst:1609 +#: library/typing.rst:1656 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:1613 +#: library/typing.rst:1660 msgid "" "Ts = TypeVarTuple('Ts')\n" "tup: tuple[*Ts]\n" @@ -2300,7 +2375,7 @@ msgid "" "tup: tuple[Unpack[Ts]]" msgstr "" -#: library/typing.rst:1618 +#: library/typing.rst:1665 msgid "" "In fact, ``Unpack`` can be used interchangeably with ``*`` in the context " "of :class:`typing.TypeVarTuple ` and :class:`builtins.tuple " @@ -2308,7 +2383,7 @@ msgid "" "versions of Python, where ``*`` couldn't be used in certain places::" msgstr "" -#: library/typing.rst:1624 +#: library/typing.rst:1671 msgid "" "# In older versions of Python, TypeVarTuple and Unpack\n" "# are located in the `typing_extensions` backports package.\n" @@ -2319,13 +2394,13 @@ msgid "" "tup: tuple[Unpack[Ts]] # Semantically equivalent, and backwards-compatible" msgstr "" -#: library/typing.rst:1632 +#: library/typing.rst:1679 msgid "" "``Unpack`` can also be used along with :class:`typing.TypedDict` for typing " "``**kwargs`` in a function signature::" msgstr "" -#: library/typing.rst:1635 +#: library/typing.rst:1682 msgid "" "from typing import TypedDict, Unpack\n" "\n" @@ -2338,23 +2413,23 @@ msgid "" "def foo(**kwargs: Unpack[Movie]): ..." msgstr "" -#: library/typing.rst:1645 +#: library/typing.rst:1692 msgid "" "See :pep:`692` for more details on using ``Unpack`` for ``**kwargs`` typing." msgstr "" -#: library/typing.rst:1650 +#: library/typing.rst:1697 msgid "Building generic types and type aliases" msgstr "" -#: library/typing.rst:1652 +#: library/typing.rst:1699 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:1656 +#: library/typing.rst:1703 msgid "" "These objects can be created through special syntax (:ref:`type parameter " "lists ` and the :keyword:`type` statement). For compatibility " @@ -2362,17 +2437,17 @@ msgid "" "syntax, as documented below." msgstr "" -#: library/typing.rst:1663 +#: library/typing.rst:1710 msgid "Abstract base class for generic types." msgstr "" -#: library/typing.rst:1665 +#: library/typing.rst:1712 msgid "" "A generic type is typically declared by adding a list of type parameters " "after the class name::" msgstr "" -#: library/typing.rst:1668 +#: library/typing.rst:1715 msgid "" "class Mapping[KT, VT]:\n" " def __getitem__(self, key: KT) -> VT:\n" @@ -2380,17 +2455,17 @@ msgid "" " # Etc." msgstr "" -#: library/typing.rst:1673 +#: library/typing.rst:1720 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:1677 +#: library/typing.rst:1724 msgid "This class can then be used as follows::" msgstr "" -#: library/typing.rst:1679 +#: library/typing.rst:1726 msgid "" "def lookup_name[X, Y](mapping: Mapping[X, Y], key: X, default: Y) -> Y:\n" " try:\n" @@ -2399,20 +2474,20 @@ msgid "" " return default" msgstr "" -#: library/typing.rst:1685 +#: library/typing.rst:1732 msgid "" "Here the brackets after the function name indicate a :ref:`generic function " "`." msgstr "" -#: library/typing.rst:1688 +#: library/typing.rst:1735 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:1693 +#: library/typing.rst:1740 msgid "" "KT = TypeVar('KT')\n" "VT = TypeVar('VT')\n" @@ -2423,30 +2498,30 @@ msgid "" " # Etc." msgstr "" -#: library/typing.rst:1705 +#: library/typing.rst:1752 msgid "Type variable." msgstr "" -#: library/typing.rst:1707 +#: library/typing.rst:1754 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:1712 +#: library/typing.rst:1759 msgid "" "class Sequence[T]: # T is a TypeVar\n" " ..." msgstr "" -#: library/typing.rst:1715 +#: library/typing.rst:1762 msgid "" "This syntax can also be used to create bounded and constrained type " "variables::" msgstr "" -#: library/typing.rst:1718 +#: library/typing.rst:1765 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" @@ -2457,20 +2532,20 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:1725 +#: library/typing.rst:1772 msgid "" "However, if desired, reusable type variables can also be constructed " "manually, like so::" msgstr "" -#: library/typing.rst:1727 +#: library/typing.rst:1774 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:1731 +#: library/typing.rst:1778 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 " @@ -2478,7 +2553,7 @@ msgid "" "information on generic types. Generic functions work as follows::" msgstr "" -#: library/typing.rst:1737 +#: library/typing.rst:1784 msgid "" "def repeat[T](x: T, n: int) -> Sequence[T]:\n" " \"\"\"Return a list containing n references to x.\"\"\"\n" @@ -2496,13 +2571,13 @@ msgid "" " return x + y" msgstr "" -#: library/typing.rst:1752 +#: library/typing.rst:1799 msgid "" "Note that type variables can be *bounded*, *constrained*, or neither, but " "cannot be both bounded *and* constrained." msgstr "" -#: library/typing.rst:1755 +#: library/typing.rst:1802 msgid "" "The variance of type variables is inferred by type checkers when they are " "created through the :ref:`type parameter syntax ` or when " @@ -2512,14 +2587,14 @@ msgid "" "invariant. See :pep:`484` and :pep:`695` for more details." msgstr "" -#: library/typing.rst:1763 +#: library/typing.rst:1810 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:1767 +#: library/typing.rst:1814 msgid "" "x = print_capitalized('a string')\n" "reveal_type(x) # revealed type is str\n" @@ -2533,13 +2608,13 @@ msgid "" "z = print_capitalized(45) # error: int is not a subtype of str" msgstr "" -#: library/typing.rst:1778 +#: library/typing.rst:1825 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:1781 +#: library/typing.rst:1828 msgid "" "# Can be anything with an __abs__ method\n" "def print_abs[T: SupportsAbs](arg: T) -> None:\n" @@ -2550,13 +2625,13 @@ msgid "" "V = TypeVar('V', bound=SupportsAbs) # Can be anything with an __abs__ method" msgstr "" -#: library/typing.rst:1790 +#: library/typing.rst:1837 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:1793 +#: library/typing.rst:1840 msgid "" "a = concatenate('one', 'two')\n" "reveal_type(a) # revealed type is str\n" @@ -2569,56 +2644,56 @@ msgid "" "or bytes in a function call, but not both" msgstr "" -#: library/typing.rst:1801 +#: library/typing.rst:1848 msgid "At runtime, ``isinstance(x, T)`` will raise :exc:`TypeError`." msgstr "" -#: library/typing.rst:1805 +#: library/typing.rst:1852 msgid "The name of the type variable." msgstr "" -#: library/typing.rst:1809 +#: library/typing.rst:1856 msgid "Whether the type var has been explicitly marked as covariant." msgstr "" -#: library/typing.rst:1813 +#: library/typing.rst:1860 msgid "Whether the type var has been explicitly marked as contravariant." msgstr "" -#: library/typing.rst:1817 +#: library/typing.rst:1864 msgid "" "Whether the type variable's variance should be inferred by type checkers." msgstr "" -#: library/typing.rst:1823 +#: library/typing.rst:1870 msgid "The upper bound of the type variable, if any." msgstr "" -#: library/typing.rst:1827 +#: library/typing.rst:1874 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:1833 +#: library/typing.rst:1880 msgid "A tuple containing the constraints of the type variable, if any." msgstr "" -#: library/typing.rst:1837 +#: library/typing.rst:1884 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:1843 +#: library/typing.rst:1890 msgid "" "The default value of the type variable, or :data:`typing.NoDefault` if it " "has no default." msgstr "" -#: library/typing.rst:1850 +#: library/typing.rst:1897 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." @@ -2626,41 +2701,41 @@ msgid "" "`lazily evaluated ` default value." msgstr "" -#: library/typing.rst:1859 +#: library/typing.rst:1906 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:2004 library/typing.rst:2106 +#: library/typing.rst:2051 library/typing.rst:2153 msgid "Support for default values was added." msgstr "" -#: library/typing.rst:1871 +#: library/typing.rst:1918 msgid "" "Type variable tuple. A specialized form of :ref:`type variable ` " "that enables *variadic* generics." msgstr "" -#: library/typing.rst:1874 +#: library/typing.rst:1921 msgid "" "Type variable tuples can be declared in :ref:`type parameter lists ` using a single asterisk (``*``) before the name::" msgstr "" -#: library/typing.rst:1877 +#: library/typing.rst:1924 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:1880 +#: library/typing.rst:1927 msgid "Or by explicitly invoking the ``TypeVarTuple`` constructor::" msgstr "" -#: library/typing.rst:1882 +#: library/typing.rst:1929 msgid "" "T = TypeVar(\"T\")\n" "Ts = TypeVarTuple(\"Ts\")\n" @@ -2669,7 +2744,7 @@ msgid "" " return (*tup[1:], tup[0])" msgstr "" -#: library/typing.rst:1888 +#: library/typing.rst:1935 msgid "" "A normal type variable enables parameterization with a single type. A type " "variable tuple, in contrast, allows parameterization with an *arbitrary* " @@ -2677,7 +2752,7 @@ msgid "" "wrapped in a tuple. For example::" msgstr "" -#: library/typing.rst:1893 +#: library/typing.rst:1940 msgid "" "# T is bound to int, Ts is bound to ()\n" "# Return value is (1,), which has type tuple[int]\n" @@ -2697,7 +2772,7 @@ msgid "" "move_first_element_to_last(tup=())" msgstr "" -#: library/typing.rst:1910 +#: library/typing.rst:1957 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, " @@ -2707,26 +2782,26 @@ msgid "" "` instead, as ``Unpack[Ts]``.)" msgstr "" -#: library/typing.rst:1918 +#: library/typing.rst:1965 msgid "" "Type variable tuples must *always* be unpacked. This helps distinguish type " "variable tuples from normal type variables::" msgstr "" -#: library/typing.rst:1921 +#: library/typing.rst:1968 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:1925 +#: library/typing.rst:1972 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:1928 +#: library/typing.rst:1975 msgid "" "class Array[*Shape]:\n" " def __getitem__(self, key: tuple[*Shape]) -> float: ...\n" @@ -2734,12 +2809,12 @@ msgid "" " def get_shape(self) -> tuple[*Shape]: ..." msgstr "" -#: library/typing.rst:1933 +#: library/typing.rst:1980 msgid "" "Type variable tuples can be happily combined with normal type variables:" msgstr "" -#: library/typing.rst:1935 +#: library/typing.rst:1982 msgid "" "class Array[DType, *Shape]: # This is fine\n" " pass\n" @@ -2754,26 +2829,26 @@ msgid "" "int_array_2d: Array[int, Height, Width] = Array() # Yup, fine too" msgstr "" -#: library/typing.rst:1949 +#: library/typing.rst:1996 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:1952 +#: library/typing.rst:1999 msgid "" "x: tuple[*Ts, *Ts] # Not valid\n" "class Array[*Shape, *Shape]: # Not valid\n" " pass" msgstr "" -#: library/typing.rst:1956 +#: library/typing.rst:2003 msgid "" "Finally, an unpacked type variable tuple can be used as the type annotation " "of ``*args``::" msgstr "" -#: library/typing.rst:1959 +#: library/typing.rst:2006 msgid "" "def call_soon[*Ts](\n" " callback: Callable[[*Ts], None],\n" @@ -2783,7 +2858,7 @@ msgid "" " callback(*args)" msgstr "" -#: library/typing.rst:1966 +#: library/typing.rst:2013 msgid "" "In contrast to non-unpacked annotations of ``*args`` - e.g. ``*args: int``, " "which would specify that *all* arguments are ``int`` - ``*args: *Ts`` " @@ -2792,21 +2867,21 @@ msgid "" "``call_soon`` match the types of the (positional) arguments of ``callback``." msgstr "" -#: library/typing.rst:1973 +#: library/typing.rst:2020 msgid "See :pep:`646` for more details on type variable tuples." msgstr "" -#: library/typing.rst:1977 +#: library/typing.rst:2024 msgid "The name of the type variable tuple." msgstr "" -#: library/typing.rst:1981 +#: library/typing.rst:2028 msgid "" "The default value of the type variable tuple, or :data:`typing.NoDefault` if " "it has no default." msgstr "" -#: library/typing.rst:1988 +#: library/typing.rst:2035 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." @@ -2814,39 +2889,39 @@ msgid "" "`lazily evaluated ` default value." msgstr "" -#: library/typing.rst:1999 +#: library/typing.rst:2046 msgid "" "Type variable tuples can now be declared using the :ref:`type parameter " "` syntax introduced by :pep:`695`." msgstr "" -#: library/typing.rst:2008 +#: library/typing.rst:2055 msgid "" "Parameter specification variable. A specialized version of :ref:`type " "variables `." msgstr "" -#: library/typing.rst:2011 +#: library/typing.rst:2058 msgid "" "In :ref:`type parameter lists `, parameter specifications can " "be declared with two asterisks (``**``)::" msgstr "" -#: library/typing.rst:2014 +#: library/typing.rst:2061 msgid "type IntFunc[**P] = Callable[P, int]" msgstr "" -#: library/typing.rst:2016 +#: library/typing.rst:2063 msgid "" "For compatibility with Python 3.11 and earlier, ``ParamSpec`` objects can " "also be created as follows::" msgstr "" -#: library/typing.rst:2019 +#: library/typing.rst:2066 msgid "P = ParamSpec('P')" msgstr "" -#: library/typing.rst:2021 +#: library/typing.rst:2068 msgid "" "Parameter specification variables exist primarily for the benefit of static " "type checkers. They are used to forward the parameter types of one callable " @@ -2856,7 +2931,7 @@ msgid "" "See :class:`Generic` for more information on generic types." msgstr "" -#: library/typing.rst:2028 +#: library/typing.rst:2075 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 " @@ -2864,7 +2939,7 @@ msgid "" "new callable returned by it have inter-dependent type parameters::" msgstr "" -#: library/typing.rst:2033 +#: library/typing.rst:2080 msgid "" "from collections.abc import Callable\n" "import logging\n" @@ -2882,27 +2957,27 @@ msgid "" " return x + y" msgstr "" -#: library/typing.rst:2048 +#: library/typing.rst:2095 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:2052 +#: library/typing.rst:2099 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:2054 +#: library/typing.rst:2101 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:2061 +#: library/typing.rst:2108 msgid "" "Since ``ParamSpec`` captures both positional and keyword parameters, ``P." "args`` and ``P.kwargs`` can be used to split a ``ParamSpec`` into its " @@ -2915,17 +2990,17 @@ msgid "" "`ParamSpecKwargs`." msgstr "" -#: library/typing.rst:2073 +#: library/typing.rst:2120 msgid "The name of the parameter specification." msgstr "" -#: library/typing.rst:2077 +#: library/typing.rst:2124 msgid "" "The default value of the parameter specification, or :data:`typing." "NoDefault` if it has no default." msgstr "" -#: library/typing.rst:2084 +#: library/typing.rst:2131 msgid "" "Return whether or not the parameter specification has a default value. This " "is equivalent to checking whether :attr:`__default__` is not the :data:" @@ -2933,7 +3008,7 @@ msgid "" "the :ref:`lazily evaluated ` default value." msgstr "" -#: library/typing.rst:2091 +#: library/typing.rst:2138 msgid "" "Parameter specification variables created with ``covariant=True`` or " "``contravariant=True`` can be used to declare covariant or contravariant " @@ -2942,23 +3017,23 @@ msgid "" "decided." msgstr "" -#: library/typing.rst:2101 +#: library/typing.rst:2148 msgid "" "Parameter specifications can now be declared using the :ref:`type parameter " "` syntax introduced by :pep:`695`." msgstr "" -#: library/typing.rst:2109 +#: library/typing.rst:2156 msgid "" "Only parameter specification variables defined in global scope can be " "pickled." msgstr "" -#: library/typing.rst:2115 +#: library/typing.rst:2162 msgid ":data:`Concatenate`" msgstr "" -#: library/typing.rst:2121 +#: library/typing.rst:2168 msgid "" "Arguments and keyword arguments attributes of a :class:`ParamSpec`. The ``P." "args`` attribute of a ``ParamSpec`` is an instance of ``ParamSpecArgs``, and " @@ -2966,13 +3041,13 @@ msgid "" "runtime introspection and have no special meaning to static type checkers." msgstr "" -#: library/typing.rst:2126 +#: library/typing.rst:2173 msgid "" "Calling :func:`get_origin` on either of these objects will return the " "original ``ParamSpec``:" msgstr "" -#: library/typing.rst:2129 +#: library/typing.rst:2176 msgid "" ">>> from typing import ParamSpec, get_origin\n" ">>> P = ParamSpec(\"P\")\n" @@ -2982,46 +3057,46 @@ msgid "" "True" msgstr "" -#: library/typing.rst:2143 +#: library/typing.rst:2190 msgid "The type of type aliases created through the :keyword:`type` statement." msgstr "" -#: library/typing.rst:2147 +#: library/typing.rst:2194 msgid "" ">>> type Alias = int\n" ">>> type(Alias)\n" "" msgstr "" -#: library/typing.rst:2157 +#: library/typing.rst:2204 msgid "The name of the type alias:" msgstr "" -#: library/typing.rst:2159 +#: library/typing.rst:2206 msgid "" ">>> type Alias = int\n" ">>> Alias.__name__\n" "'Alias'" msgstr "" -#: library/typing.rst:2167 -msgid "The module in which the type alias was defined::" +#: library/typing.rst:2214 +msgid "The name of the module in which the type alias was defined::" msgstr "" -#: library/typing.rst:2169 +#: library/typing.rst:2216 msgid "" ">>> type Alias = int\n" ">>> Alias.__module__\n" "'__main__'" msgstr "" -#: library/typing.rst:2175 +#: library/typing.rst:2222 msgid "" "The type parameters of the type alias, or an empty tuple if the alias is not " "generic:" msgstr "" -#: library/typing.rst:2178 +#: library/typing.rst:2225 msgid "" ">>> type ListOrSet[T] = list[T] | set[T]\n" ">>> ListOrSet.__type_params__\n" @@ -3031,14 +3106,14 @@ msgid "" "()" msgstr "" -#: library/typing.rst:2189 +#: library/typing.rst:2236 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:2193 +#: library/typing.rst:2240 msgid "" ">>> type Mutually = Recursive\n" ">>> type Recursive = Mutually\n" @@ -3052,46 +3127,46 @@ msgid "" "Mutually" msgstr "" -#: library/typing.rst:2207 +#: library/typing.rst:2254 msgid "Other special directives" msgstr "" -#: library/typing.rst:2209 +#: library/typing.rst:2256 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:2215 +#: library/typing.rst:2262 msgid "Typed version of :func:`collections.namedtuple`." msgstr "" -#: library/typing.rst:2309 library/typing.rst:3357 +#: library/typing.rst:2356 library/typing.rst:3405 msgid "Usage::" msgstr "" -#: library/typing.rst:2219 +#: library/typing.rst:2266 msgid "" "class Employee(NamedTuple):\n" " name: str\n" " id: int" msgstr "" -#: library/typing.rst:2223 +#: library/typing.rst:2270 msgid "This is equivalent to::" msgstr "" -#: library/typing.rst:2225 +#: library/typing.rst:2272 msgid "Employee = collections.namedtuple('Employee', ['name', 'id'])" msgstr "" -#: library/typing.rst:2227 +#: library/typing.rst:2274 msgid "" "To give a field a default value, you can assign to it in the class body::" msgstr "" -#: library/typing.rst:2229 +#: library/typing.rst:2276 msgid "" "class Employee(NamedTuple):\n" " name: str\n" @@ -3101,12 +3176,12 @@ msgid "" "assert employee.id == 3" msgstr "" -#: library/typing.rst:2236 +#: library/typing.rst:2283 msgid "" "Fields with a default value must come after any fields without a default." msgstr "" -#: library/typing.rst:2238 +#: library/typing.rst:2285 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 " @@ -3115,11 +3190,11 @@ msgid "" "API.)" msgstr "" -#: library/typing.rst:2244 +#: library/typing.rst:2291 msgid "``NamedTuple`` subclasses can also have docstrings and methods::" msgstr "" -#: library/typing.rst:2246 +#: library/typing.rst:2293 msgid "" "class Employee(NamedTuple):\n" " \"\"\"Represents an employee.\"\"\"\n" @@ -3130,22 +3205,22 @@ msgid "" " return f''" msgstr "" -#: library/typing.rst:2254 +#: library/typing.rst:2301 msgid "``NamedTuple`` subclasses can be generic::" msgstr "" -#: library/typing.rst:2256 +#: library/typing.rst:2303 msgid "" "class Group[T](NamedTuple):\n" " key: T\n" " group: list[T]" msgstr "" -#: library/typing.rst:2260 +#: library/typing.rst:2307 msgid "Backward-compatible usage::" msgstr "" -#: library/typing.rst:2262 +#: library/typing.rst:2309 msgid "" "# For creating a generic NamedTuple on Python 3.11\n" "T = TypeVar(\"T\")\n" @@ -3158,38 +3233,38 @@ msgid "" "Employee = NamedTuple('Employee', [('name', str), ('id', int)])" msgstr "" -#: library/typing.rst:2272 +#: library/typing.rst:2319 msgid "Added support for :pep:`526` variable annotation syntax." msgstr "" -#: library/typing.rst:2275 +#: library/typing.rst:2322 msgid "Added support for default values, methods, and docstrings." msgstr "" -#: library/typing.rst:2278 +#: library/typing.rst:2325 msgid "" "The ``_field_types`` and ``__annotations__`` attributes are now regular " "dictionaries instead of instances of ``OrderedDict``." msgstr "" -#: library/typing.rst:2282 +#: library/typing.rst:2329 msgid "" "Removed the ``_field_types`` attribute in favor of the more standard " "``__annotations__`` attribute which has the same information." msgstr "" -#: library/typing.rst:2286 +#: library/typing.rst:2333 msgid "Added support for generic namedtuples." msgstr "" -#: library/typing.rst:2289 +#: library/typing.rst:2336 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:2294 +#: library/typing.rst:2341 msgid "" "When using the functional syntax to create a NamedTuple class, failing to " "pass a value to the 'fields' parameter (``NT = NamedTuple(\"NT\")``) is " @@ -3199,61 +3274,61 @@ msgid "" "NT(NamedTuple): pass`` or ``NT = NamedTuple(\"NT\", [])``." msgstr "" -#: library/typing.rst:2304 +#: library/typing.rst:2351 msgid "Helper class to create low-overhead :ref:`distinct types `." msgstr "" -#: library/typing.rst:2306 +#: library/typing.rst:2353 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:2311 +#: library/typing.rst:2358 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:2316 -msgid "The module in which the new type is defined." +#: library/typing.rst:2363 +msgid "The name of the module in which the new type is defined." msgstr "" -#: library/typing.rst:2320 +#: library/typing.rst:2367 msgid "The name of the new type." msgstr "" -#: library/typing.rst:2324 +#: library/typing.rst:2371 msgid "The type that the new type is based on." msgstr "" -#: library/typing.rst:2328 +#: library/typing.rst:2375 msgid "``NewType`` is now a class rather than a function." msgstr "" -#: library/typing.rst:2333 +#: library/typing.rst:2380 msgid "Base class for protocol classes." msgstr "" -#: library/typing.rst:2335 +#: library/typing.rst:2382 msgid "Protocol classes are defined like this::" msgstr "" -#: library/typing.rst:2337 +#: library/typing.rst:2384 msgid "" "class Proto(Protocol):\n" " def meth(self) -> int:\n" " ..." msgstr "" -#: library/typing.rst:2341 +#: library/typing.rst:2388 msgid "" "Such classes are primarily used with static type checkers that recognize " "structural subtyping (static duck-typing), for example::" msgstr "" -#: library/typing.rst:2344 +#: library/typing.rst:2391 msgid "" "class C:\n" " def meth(self) -> int:\n" @@ -3265,7 +3340,7 @@ msgid "" "func(C()) # Passes static type check" msgstr "" -#: library/typing.rst:2353 +#: library/typing.rst:2400 msgid "" "See :pep:`544` for more details. Protocol classes decorated with :func:" "`runtime_checkable` (described later) act as simple-minded runtime protocols " @@ -3274,24 +3349,24 @@ msgid "" "second argument to :func:`isinstance` or :func:`issubclass`." msgstr "" -#: library/typing.rst:2359 +#: library/typing.rst:2406 msgid "Protocol classes can be generic, for example::" msgstr "" -#: library/typing.rst:2361 +#: library/typing.rst:2408 msgid "" "class GenProto[T](Protocol):\n" " def meth(self) -> T:\n" " ..." msgstr "" -#: library/typing.rst:2365 +#: library/typing.rst:2412 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:2368 +#: library/typing.rst:2415 msgid "" "T = TypeVar(\"T\")\n" "\n" @@ -3300,11 +3375,11 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:2378 +#: library/typing.rst:2425 msgid "Mark a protocol class as a runtime protocol." msgstr "" -#: library/typing.rst:2380 +#: library/typing.rst:2427 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 " @@ -3312,7 +3387,7 @@ msgid "" "Iterable`. For example::" msgstr "" -#: library/typing.rst:2384 +#: library/typing.rst:2431 msgid "" "@runtime_checkable\n" "class Closable(Protocol):\n" @@ -3328,12 +3403,12 @@ msgid "" "assert isinstance(threading.Thread(name='Bob'), Named)" msgstr "" -#: library/typing.rst:2397 +#: library/typing.rst:2444 msgid "" "This decorator raises :exc:`TypeError` when applied to a non-protocol class." msgstr "" -#: library/typing.rst:2401 +#: library/typing.rst:2448 msgid "" ":func:`!runtime_checkable` will check only the presence of the required " "methods or attributes, not their type signatures or types. For example, :" @@ -3344,7 +3419,7 @@ msgid "" "(instantiate) :class:`ssl.SSLObject`." msgstr "" -#: library/typing.rst:2412 +#: library/typing.rst:2459 msgid "" "An :func:`isinstance` check against a runtime-checkable protocol can be " "surprisingly slow compared to an ``isinstance()`` check against a non-" @@ -3352,7 +3427,7 @@ msgid "" "calls for structural checks in performance-sensitive code." msgstr "" -#: library/typing.rst:2420 +#: library/typing.rst:2467 msgid "" "The internal implementation of :func:`isinstance` checks against runtime-" "checkable protocols now uses :func:`inspect.getattr_static` to look up " @@ -3362,22 +3437,22 @@ msgid "" "versa. Most users are unlikely to be affected by this change." msgstr "" -#: library/typing.rst:2429 +#: library/typing.rst:2476 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:2440 +#: library/typing.rst:2487 msgid "" "Special construct to add type hints to a dictionary. At runtime it is a " "plain :class:`dict`." msgstr "" -#: library/typing.rst:2443 +#: library/typing.rst:2490 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 " @@ -3385,7 +3460,7 @@ msgid "" "enforced by type checkers. Usage::" msgstr "" -#: library/typing.rst:2449 +#: library/typing.rst:2496 msgid "" "class Point2D(TypedDict):\n" " x: int\n" @@ -3398,17 +3473,17 @@ msgid "" "assert Point2D(x=1, y=2, label='first') == dict(x=1, y=2, label='first')" msgstr "" -#: library/typing.rst:2459 +#: library/typing.rst:2506 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:2462 +#: library/typing.rst:2509 msgid "Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str})" msgstr "" -#: library/typing.rst:2464 +#: library/typing.rst:2511 msgid "" "This functional syntax allows defining keys which are not valid :ref:" "`identifiers `, for example because they are keywords or " @@ -3416,7 +3491,7 @@ msgid "" "mangling>` like regular private names::" msgstr "" -#: library/typing.rst:2469 +#: library/typing.rst:2516 msgid "" "# raises SyntaxError\n" "class Point2D(TypedDict):\n" @@ -3431,13 +3506,13 @@ msgid "" "Definition = TypedDict('Definition', {'__schema': str}) # not mangled" msgstr "" -#: library/typing.rst:2481 +#: library/typing.rst:2528 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:2484 +#: library/typing.rst:2531 msgid "" "class Point2D(TypedDict):\n" " x: int\n" @@ -3449,19 +3524,19 @@ msgid "" "NotRequired[str]})" msgstr "" -#: library/typing.rst:2492 +#: library/typing.rst:2539 msgid "" "This means that a ``Point2D`` ``TypedDict`` can have the ``label`` key " "omitted." msgstr "" -#: library/typing.rst:2495 +#: library/typing.rst:2542 msgid "" "It is also possible to mark all keys as non-required by default by " "specifying a totality of ``False``::" msgstr "" -#: library/typing.rst:2498 +#: library/typing.rst:2545 msgid "" "class Point2D(TypedDict, total=False):\n" " x: int\n" @@ -3471,7 +3546,7 @@ msgid "" "Point2D = TypedDict('Point2D', {'x': int, 'y': int}, total=False)" msgstr "" -#: library/typing.rst:2505 +#: library/typing.rst:2552 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 " @@ -3479,13 +3554,13 @@ msgid "" "and makes all items defined in the class body required." msgstr "" -#: library/typing.rst:2510 +#: library/typing.rst:2557 msgid "" "Individual keys of a ``total=False`` ``TypedDict`` can be marked as required " "using :data:`Required`::" msgstr "" -#: library/typing.rst:2513 +#: library/typing.rst:2560 msgid "" "class Point2D(TypedDict, total=False):\n" " x: Required[int]\n" @@ -3500,25 +3575,25 @@ msgid "" "}, total=False)" msgstr "" -#: library/typing.rst:2525 +#: library/typing.rst:2572 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:2529 +#: library/typing.rst:2576 msgid "" "class Point3D(Point2D):\n" " z: int" msgstr "" -#: library/typing.rst:2532 +#: library/typing.rst:2579 msgid "" "``Point3D`` has three items: ``x``, ``y`` and ``z``. It is equivalent to " "this definition::" msgstr "" -#: library/typing.rst:2535 +#: library/typing.rst:2582 msgid "" "class Point3D(TypedDict):\n" " x: int\n" @@ -3526,13 +3601,13 @@ msgid "" " z: int" msgstr "" -#: library/typing.rst:2540 +#: library/typing.rst:2587 msgid "" "A ``TypedDict`` cannot inherit from a non-\\ ``TypedDict`` class, except " "for :class:`Generic`. For example::" msgstr "" -#: library/typing.rst:2543 +#: library/typing.rst:2590 msgid "" "class X(TypedDict):\n" " x: int\n" @@ -3547,24 +3622,24 @@ msgid "" "class XZ(X, Z): pass # raises TypeError" msgstr "" -#: library/typing.rst:2555 +#: library/typing.rst:2602 msgid "A ``TypedDict`` can be generic::" msgstr "" -#: library/typing.rst:2557 +#: library/typing.rst:2604 msgid "" "class Group[T](TypedDict):\n" " key: T\n" " group: list[T]" msgstr "" -#: library/typing.rst:2561 +#: library/typing.rst:2608 msgid "" "To create a generic ``TypedDict`` that is compatible with Python 3.11 or " "lower, inherit from :class:`Generic` explicitly:" msgstr "" -#: library/typing.rst:2564 +#: library/typing.rst:2611 msgid "" "T = TypeVar(\"T\")\n" "\n" @@ -3573,19 +3648,19 @@ msgid "" " group: list[T]" msgstr "" -#: library/typing.rst:2572 +#: library/typing.rst:2619 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:2578 +#: library/typing.rst:2625 msgid "" "``Point2D.__total__`` gives the value of the ``total`` argument. Example:" msgstr "" -#: library/typing.rst:2581 +#: library/typing.rst:2628 msgid "" ">>> from typing import TypedDict\n" ">>> class Point2D(TypedDict): pass\n" @@ -3599,7 +3674,7 @@ msgid "" "True" msgstr "" -#: library/typing.rst:2594 +#: library/typing.rst:2641 msgid "" "This attribute reflects *only* the value of the ``total`` argument to the " "current ``TypedDict`` class, not whether the class is semantically total. " @@ -3610,21 +3685,21 @@ msgid "" "introspection." msgstr "" -#: library/typing.rst:2607 +#: library/typing.rst:2654 msgid "" "``Point2D.__required_keys__`` and ``Point2D.__optional_keys__`` return :" "class:`frozenset` objects containing required and non-required keys, " "respectively." msgstr "" -#: library/typing.rst:2610 +#: library/typing.rst:2657 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:2613 +#: library/typing.rst:2660 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 " @@ -3633,7 +3708,7 @@ msgid "" "``TypedDict`` with a different value for ``total``:" msgstr "" -#: library/typing.rst:2620 +#: library/typing.rst:2667 msgid "" ">>> class Point2D(TypedDict, total=False):\n" "... x: int\n" @@ -3648,7 +3723,7 @@ msgid "" "True" msgstr "" -#: library/typing.rst:2638 +#: library/typing.rst:2685 msgid "" "If ``from __future__ import annotations`` is used or if annotations are " "given as strings, annotations are not evaluated when the ``TypedDict`` is " @@ -3657,48 +3732,48 @@ msgid "" "attributes may be incorrect." msgstr "" -#: library/typing.rst:2644 +#: library/typing.rst:2691 msgid "Support for :data:`ReadOnly` is reflected in the following attributes:" msgstr "" -#: library/typing.rst:2648 +#: library/typing.rst:2695 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:2655 +#: library/typing.rst:2702 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:2660 +#: library/typing.rst:2707 msgid "" "See :pep:`589` for more examples and detailed rules of using ``TypedDict``." msgstr "" -#: library/typing.rst:2664 +#: library/typing.rst:2711 msgid "" "Added support for marking individual keys as :data:`Required` or :data:" "`NotRequired`. See :pep:`655`." msgstr "" -#: library/typing.rst:2668 +#: library/typing.rst:2715 msgid "Added support for generic ``TypedDict``\\ s." msgstr "" -#: library/typing.rst:2671 +#: library/typing.rst:2718 msgid "" "Removed support for the keyword-argument method of creating ``TypedDict``\\ " "s." msgstr "" -#: library/typing.rst:2674 +#: library/typing.rst:2721 msgid "Support for the :data:`ReadOnly` qualifier was added." msgstr "" -#: library/typing.rst:2677 +#: library/typing.rst:2724 msgid "" "When using the functional syntax to create a TypedDict class, failing to " "pass a value to the 'fields' parameter (``TD = TypedDict(\"TD\")``) is " @@ -3708,106 +3783,106 @@ msgid "" "TD(TypedDict): pass`` or ``TD = TypedDict(\"TD\", {})``." msgstr "" -#: library/typing.rst:2686 +#: library/typing.rst:2733 msgid "Protocols" msgstr "" -#: library/typing.rst:2688 +#: library/typing.rst:2735 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:2693 +#: library/typing.rst:2740 msgid "" "An ABC with one abstract method ``__abs__`` that is covariant in its return " "type." msgstr "" -#: library/typing.rst:2698 +#: library/typing.rst:2745 msgid "An ABC with one abstract method ``__bytes__``." msgstr "" -#: library/typing.rst:2702 +#: library/typing.rst:2749 msgid "An ABC with one abstract method ``__complex__``." msgstr "" -#: library/typing.rst:2706 +#: library/typing.rst:2753 msgid "An ABC with one abstract method ``__float__``." msgstr "" -#: library/typing.rst:2710 +#: library/typing.rst:2757 msgid "An ABC with one abstract method ``__index__``." msgstr "" -#: library/typing.rst:2716 +#: library/typing.rst:2763 msgid "An ABC with one abstract method ``__int__``." msgstr "" -#: library/typing.rst:2720 +#: library/typing.rst:2767 msgid "" "An ABC with one abstract method ``__round__`` that is covariant in its " "return type." msgstr "" -#: library/typing.rst:2724 +#: library/typing.rst:2771 msgid "ABCs for working with IO" msgstr "" -#: library/typing.rst:2730 +#: library/typing.rst:2777 msgid "" "Generic type ``IO[AnyStr]`` and its subclasses ``TextIO(IO[str])`` and " "``BinaryIO(IO[bytes])`` represent the types of I/O streams such as returned " "by :func:`open`." msgstr "" -#: library/typing.rst:2736 +#: library/typing.rst:2783 msgid "Functions and decorators" msgstr "" -#: library/typing.rst:2740 +#: library/typing.rst:2787 msgid "Cast a value to a type." msgstr "" -#: library/typing.rst:2742 +#: library/typing.rst:2789 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:2749 +#: library/typing.rst:2796 msgid "" "Ask a static type checker to confirm that *val* has an inferred type of " "*typ*." msgstr "" -#: library/typing.rst:2751 +#: library/typing.rst:2798 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:2754 +#: library/typing.rst:2801 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:2757 +#: library/typing.rst:2804 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:2761 +#: library/typing.rst:2808 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:2764 +#: library/typing.rst:2811 msgid "" "def complex_function(arg: object):\n" " # Do some complex type-narrowing logic,\n" @@ -3817,16 +3892,16 @@ msgid "" " assert_type(arg, int)" msgstr "" -#: library/typing.rst:2775 +#: library/typing.rst:2822 msgid "" "Ask a static type checker to confirm that a line of code is unreachable." msgstr "" -#: library/typing.rst:2777 +#: library/typing.rst:2824 msgid "Example::" msgstr "" -#: library/typing.rst:2779 +#: library/typing.rst:2826 msgid "" "def int_or_str(arg: int | str) -> None:\n" " match arg:\n" @@ -3838,14 +3913,14 @@ msgid "" " assert_never(unreachable)" msgstr "" -#: library/typing.rst:2788 +#: library/typing.rst:2835 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:2793 +#: library/typing.rst:2840 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 " @@ -3855,59 +3930,59 @@ msgid "" "passed in must be the bottom type, :data:`Never`, and nothing else." msgstr "" -#: library/typing.rst:2801 +#: library/typing.rst:2848 msgid "At runtime, this throws an exception when called." msgstr "" -#: library/typing.rst:2804 +#: library/typing.rst:2851 msgid "" "`Unreachable Code and Exhaustiveness Checking `__ has more information about exhaustiveness " "checking with static typing." msgstr "" -#: library/typing.rst:2812 +#: library/typing.rst:2859 msgid "Ask a static type checker to reveal the inferred type of an expression." msgstr "" -#: library/typing.rst:2814 +#: library/typing.rst:2861 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:2817 +#: library/typing.rst:2864 msgid "" "x: int = 1\n" "reveal_type(x) # Revealed type is \"builtins.int\"" msgstr "" -#: library/typing.rst:2820 +#: library/typing.rst:2867 msgid "" "This can be useful when you want to debug how your type checker handles a " "particular piece of code." msgstr "" -#: library/typing.rst:2823 +#: library/typing.rst:2870 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:2827 +#: library/typing.rst:2874 msgid "" "x = reveal_type(1) # prints \"Runtime type is int\"\n" "print(x) # prints \"1\"" msgstr "" -#: library/typing.rst:2830 +#: library/typing.rst:2877 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:2833 +#: library/typing.rst:2880 msgid "" "Most type checkers support ``reveal_type()`` anywhere, even if the name is " "not imported from ``typing``. Importing the name from ``typing``, however, " @@ -3915,26 +3990,26 @@ msgid "" "clearly." msgstr "" -#: library/typing.rst:2844 +#: library/typing.rst:2891 msgid "" "Decorator to mark an object as providing :func:`dataclass `-like behavior." msgstr "" -#: library/typing.rst:2847 +#: library/typing.rst:2894 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:2854 +#: library/typing.rst:2901 msgid "Example usage with a decorator function:" msgstr "" -#: library/typing.rst:2856 +#: library/typing.rst:2903 msgid "" "@dataclass_transform()\n" "def create_model[T](cls: type[T]) -> type[T]:\n" @@ -3947,11 +4022,11 @@ msgid "" " name: str" msgstr "" -#: library/typing.rst:2868 +#: library/typing.rst:2915 msgid "On a base class::" msgstr "" -#: library/typing.rst:2870 +#: library/typing.rst:2917 msgid "" "@dataclass_transform()\n" "class ModelBase: ...\n" @@ -3961,11 +4036,11 @@ msgid "" " name: str" msgstr "" -#: library/typing.rst:2877 +#: library/typing.rst:2924 msgid "On a metaclass::" msgstr "" -#: library/typing.rst:2879 +#: library/typing.rst:2926 msgid "" "@dataclass_transform()\n" "class ModelMeta(type): ...\n" @@ -3977,25 +4052,25 @@ msgid "" " name: str" msgstr "" -#: library/typing.rst:2888 +#: library/typing.rst:2935 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:2894 +#: library/typing.rst:2941 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:2902 +#: library/typing.rst:2949 msgid "" "The arguments to the ``dataclass_transform`` decorator can be used to " "customize the default behaviors of the decorated class, metaclass, or " @@ -4006,90 +4081,90 @@ msgstr "" msgid "Parameters" msgstr "" -#: library/typing.rst:2906 +#: library/typing.rst:2953 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:2911 +#: library/typing.rst:2958 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:2916 +#: library/typing.rst:2963 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:2921 +#: library/typing.rst:2968 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:2922 +#: library/typing.rst:2969 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:2928 +#: library/typing.rst:2975 msgid "" "Specifies a static list of supported classes or functions that describe " "fields, similar to :func:`dataclasses.field`. Defaults to ``()``." msgstr "" -#: library/typing.rst:2934 +#: library/typing.rst:2981 msgid "" "Arbitrary other keyword arguments are accepted in order to allow for " "possible future extensions." msgstr "" -#: library/typing.rst:2938 +#: library/typing.rst:2985 msgid "" "Type checkers recognize the following optional parameters on field " "specifiers:" msgstr "" -#: library/typing.rst:2941 +#: library/typing.rst:2988 msgid "**Recognised parameters for field specifiers**" msgstr "" -#: library/typing.rst:2945 +#: library/typing.rst:2992 msgid "Parameter name" msgstr "" -#: library/typing.rst:2946 +#: library/typing.rst:2993 msgid "Description" msgstr "" -#: library/typing.rst:2947 +#: library/typing.rst:2994 msgid "``init``" msgstr "" -#: library/typing.rst:2948 +#: library/typing.rst:2995 msgid "" "Indicates whether the field should be included in the synthesized " "``__init__`` method. If unspecified, ``init`` defaults to ``True``." msgstr "" -#: library/typing.rst:2951 +#: library/typing.rst:2998 msgid "``default``" msgstr "" -#: library/typing.rst:2952 +#: library/typing.rst:2999 msgid "Provides the default value for the field." msgstr "" -#: library/typing.rst:2953 +#: library/typing.rst:3000 msgid "``default_factory``" msgstr "" -#: library/typing.rst:2954 +#: library/typing.rst:3001 msgid "" "Provides a runtime callback that returns the default value for the field. If " "neither ``default`` nor ``default_factory`` are specified, the field is " @@ -4097,19 +4172,19 @@ msgid "" "is instantiated." msgstr "" -#: library/typing.rst:2959 +#: library/typing.rst:3006 msgid "``factory``" msgstr "" -#: library/typing.rst:2960 +#: library/typing.rst:3007 msgid "An alias for the ``default_factory`` parameter on field specifiers." msgstr "" -#: library/typing.rst:2961 +#: library/typing.rst:3008 msgid "``kw_only``" msgstr "" -#: library/typing.rst:2962 +#: library/typing.rst:3009 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. " @@ -4119,32 +4194,32 @@ msgid "" "will be used." msgstr "" -#: library/typing.rst:2968 +#: library/typing.rst:3015 msgid "``alias``" msgstr "" -#: library/typing.rst:2969 +#: library/typing.rst:3016 msgid "" "Provides an alternative name for the field. This alternative name is used in " "the synthesized ``__init__`` method." msgstr "" -#: library/typing.rst:2972 +#: library/typing.rst:3019 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:2976 +#: library/typing.rst:3023 msgid "See :pep:`681` for more details." msgstr "" -#: library/typing.rst:2984 +#: library/typing.rst:3031 msgid "Decorator for creating overloaded functions and methods." msgstr "" -#: library/typing.rst:2986 +#: library/typing.rst:3033 msgid "" "The ``@overload`` decorator allows describing functions and methods that " "support multiple different combinations of argument types. A series of " @@ -4152,7 +4227,7 @@ msgid "" "``@overload``-decorated definition (for the same function/method)." msgstr "" -#: library/typing.rst:2991 +#: library/typing.rst:3038 msgid "" "``@overload``-decorated definitions are for the benefit of the type checker " "only, since they will be overwritten by the non-``@overload``-decorated " @@ -4162,13 +4237,13 @@ msgid "" "`NotImplementedError`." msgstr "" -#: library/typing.rst:2999 +#: library/typing.rst:3046 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:3002 +#: library/typing.rst:3049 msgid "" "@overload\n" "def process(response: None) -> None:\n" @@ -4183,59 +4258,57 @@ msgid "" " ... # actual implementation goes here" msgstr "" -#: library/typing.rst:3016 +#: library/typing.rst:3063 msgid "" "See :pep:`484` for more details and comparison with other typing semantics." msgstr "" -#: library/typing.rst:3018 +#: library/typing.rst:3065 msgid "" "Overloaded functions can now be introspected at runtime using :func:" "`get_overloads`." msgstr "" -#: library/typing.rst:3025 -msgid "" -"Return a sequence of :func:`@overload `-decorated definitions for " -"*func*." +#: library/typing.rst:3072 +msgid "Return a sequence of :deco:`overload`-decorated definitions for *func*." msgstr "" -#: library/typing.rst:3028 +#: library/typing.rst:3075 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:3035 +#: library/typing.rst:3082 msgid "" "``get_overloads()`` can be used for introspecting an overloaded function at " "runtime." msgstr "" -#: library/typing.rst:3043 +#: library/typing.rst:3090 msgid "Clear all registered overloads in the internal registry." msgstr "" -#: library/typing.rst:3045 +#: library/typing.rst:3092 msgid "This can be used to reclaim the memory used by the registry." msgstr "" -#: library/typing.rst:3052 +#: library/typing.rst:3099 msgid "Decorator to indicate final methods and final classes." msgstr "" -#: library/typing.rst:3054 +#: library/typing.rst:3101 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:3060 +#: library/typing.rst:3107 msgid "" "class Base:\n" " @final\n" @@ -4252,7 +4325,7 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:3079 +#: library/typing.rst:3126 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__\", " @@ -4262,11 +4335,11 @@ msgid "" "exception." msgstr "" -#: library/typing.rst:3090 +#: library/typing.rst:3137 msgid "Decorator to indicate that annotations are not type hints." msgstr "" -#: library/typing.rst:3092 +#: library/typing.rst:3139 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 " @@ -4274,40 +4347,40 @@ msgid "" "will ignore all annotations in a function or class with this decorator." msgstr "" -#: library/typing.rst:3098 +#: library/typing.rst:3145 msgid "``@no_type_check`` mutates the decorated object in place." msgstr "" -#: library/typing.rst:3102 +#: library/typing.rst:3149 msgid "Decorator to give another decorator the :func:`no_type_check` effect." msgstr "" -#: library/typing.rst:3104 +#: library/typing.rst:3151 msgid "" "This wraps the decorator with something that wraps the decorated function " "in :func:`no_type_check`." msgstr "" -#: library/typing.rst:3107 +#: library/typing.rst:3154 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:3113 +#: library/typing.rst:3160 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:3116 +#: library/typing.rst:3163 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:3123 +#: library/typing.rst:3170 msgid "" "class Base:\n" " def log_status(self) -> None:\n" @@ -4323,11 +4396,11 @@ msgid "" " ..." msgstr "" -#: library/typing.rst:3138 +#: library/typing.rst:3185 msgid "There is no runtime checking of this property." msgstr "" -#: library/typing.rst:3140 +#: library/typing.rst:3187 msgid "" "The decorator will attempt to set an ``__override__`` attribute to ``True`` " "on the decorated object. Thus, a check like ``if getattr(obj, " @@ -4337,22 +4410,22 @@ msgid "" "without raising an exception." msgstr "" -#: library/typing.rst:3147 +#: library/typing.rst:3194 msgid "See :pep:`698` for more details." msgstr "" -#: library/typing.rst:3154 +#: library/typing.rst:3201 msgid "Decorator to mark a class or function as unavailable at runtime." msgstr "" -#: library/typing.rst:3156 +#: library/typing.rst:3203 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:3160 +#: library/typing.rst:3207 msgid "" "@type_check_only\n" "class Response: # private or not available at runtime\n" @@ -4362,29 +4435,29 @@ msgid "" "def fetch_response() -> Response: ..." msgstr "" -#: library/typing.rst:3167 +#: library/typing.rst:3214 msgid "" "Note that returning instances of private classes is not recommended. It is " "usually preferable to make such classes public." msgstr "" -#: library/typing.rst:3171 +#: library/typing.rst:3218 msgid "Introspection helpers" msgstr "" -#: library/typing.rst:3175 +#: library/typing.rst:3222 msgid "" "Return a dictionary containing type hints for a function, method, module or " "class object." msgstr "" -#: library/typing.rst:3178 +#: library/typing.rst:3225 msgid "" "This is often the same as ``obj.__annotations__``, but this function makes " "the following changes to the annotations dictionary:" msgstr "" -#: library/typing.rst:3181 +#: library/typing.rst:3228 msgid "" "Forward references encoded as string literals or :class:`ForwardRef` objects " "are handled by evaluating them in *globalns*, *localns*, and (where " @@ -4393,17 +4466,17 @@ msgid "" "inferred from *obj*." msgstr "" -#: library/typing.rst:3186 +#: library/typing.rst:3233 msgid "``None`` is replaced with :class:`types.NoneType`." msgstr "" -#: library/typing.rst:3187 +#: library/typing.rst:3234 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:3189 +#: library/typing.rst:3236 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 " @@ -4413,20 +4486,21 @@ msgid "" "annotations on classes appearing later in the method resolution order." msgstr "" -#: library/typing.rst:3196 +#: library/typing.rst:3243 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:3200 +#: library/typing.rst:3248 msgid "" "See also :func:`inspect.get_annotations`, a lower-level function that " "returns annotations more directly." msgstr "" -#: library/typing.rst:3205 +#: library/typing.rst:3253 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 :" @@ -4435,26 +4509,26 @@ msgid "" "imported under :data:`if TYPE_CHECKING `." msgstr "" -#: library/typing.rst:3211 +#: library/typing.rst:3259 msgid "" "Added ``include_extras`` parameter as part of :pep:`593`. See the " "documentation on :data:`Annotated` for more information." msgstr "" -#: library/typing.rst:3215 +#: library/typing.rst:3263 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:3222 +#: library/typing.rst:3270 msgid "" "Get the unsubscripted version of a type: for a typing object of the form " "``X[Y, Z, ...]`` return ``X``." msgstr "" -#: library/typing.rst:3225 +#: library/typing.rst:3273 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 :" @@ -4462,11 +4536,11 @@ msgid "" "class:`ParamSpec`. Return ``None`` for unsupported objects." msgstr "" -#: library/typing.rst:3255 +#: library/typing.rst:3303 msgid "Examples:" msgstr "" -#: library/typing.rst:3233 +#: library/typing.rst:3281 msgid "" "assert get_origin(str) is None\n" "assert get_origin(Dict[str, int]) is dict\n" @@ -4477,13 +4551,13 @@ msgid "" "assert get_origin(P.kwargs) is P" msgstr "" -#: library/typing.rst:3247 +#: library/typing.rst:3295 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:3250 +#: library/typing.rst:3298 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 " @@ -4491,18 +4565,18 @@ msgid "" "objects." msgstr "" -#: library/typing.rst:3257 +#: library/typing.rst:3305 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:3267 +#: library/typing.rst:3315 msgid "Return the set of members defined in a :class:`Protocol`." msgstr "" -#: library/typing.rst:3269 +#: library/typing.rst:3317 msgid "" ">>> from typing import Protocol, get_protocol_members\n" ">>> class P(Protocol):\n" @@ -4512,15 +4586,15 @@ msgid "" "True" msgstr "" -#: library/typing.rst:3278 +#: library/typing.rst:3326 msgid "Raise :exc:`TypeError` for arguments that are not Protocols." msgstr "" -#: library/typing.rst:3284 +#: library/typing.rst:3332 msgid "Determine if a type is a :class:`Protocol`." msgstr "" -#: library/typing.rst:3288 +#: library/typing.rst:3336 msgid "" "class P(Protocol):\n" " def a(self) -> str: ...\n" @@ -4530,11 +4604,11 @@ msgid "" "is_protocol(int) # => False" msgstr "" -#: library/typing.rst:3299 +#: library/typing.rst:3347 msgid "Check if a type is a :class:`TypedDict`." msgstr "" -#: library/typing.rst:3303 +#: library/typing.rst:3351 msgid "" "class Film(TypedDict):\n" " title: str\n" @@ -4548,32 +4622,32 @@ msgid "" "assert not is_typeddict(TypedDict)" msgstr "" -#: library/typing.rst:3320 +#: library/typing.rst:3368 msgid "" "Class used for internal typing representation of string forward references." msgstr "" -#: library/typing.rst:3322 +#: library/typing.rst:3370 msgid "" "For example, ``List[\"SomeClass\"]`` is implicitly transformed into " "``List[ForwardRef(\"SomeClass\")]``. ``ForwardRef`` should not be " "instantiated by a user, but may be used by introspection tools." msgstr "" -#: library/typing.rst:3327 +#: library/typing.rst:3375 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:3335 +#: library/typing.rst:3383 msgid "" "A sentinel object used to indicate that a type parameter has no default " "value. For example:" msgstr "" -#: library/typing.rst:3338 +#: library/typing.rst:3386 msgid "" ">>> T = TypeVar(\"T\")\n" ">>> T.__default__ is typing.NoDefault\n" @@ -4583,17 +4657,17 @@ msgid "" "True" msgstr "" -#: library/typing.rst:3350 +#: library/typing.rst:3398 msgid "Constant" msgstr "" -#: library/typing.rst:3354 +#: library/typing.rst:3402 msgid "" "A special constant that is assumed to be ``True`` by 3rd party static type " "checkers. It is ``False`` at runtime." msgstr "" -#: library/typing.rst:3359 +#: library/typing.rst:3407 msgid "" "if TYPE_CHECKING:\n" " import expensive_mod\n" @@ -4602,7 +4676,7 @@ msgid "" " local_var: expensive_mod.AnotherType = other_fun()" msgstr "" -#: library/typing.rst:3365 +#: library/typing.rst:3413 msgid "" "The first type annotation must be enclosed in quotes, making it a \"forward " "reference\", to hide the ``expensive_mod`` reference from the interpreter " @@ -4610,7 +4684,7 @@ msgid "" "second annotation does not need to be enclosed in quotes." msgstr "" -#: library/typing.rst:3372 +#: library/typing.rst:3420 msgid "" "If ``from __future__ import annotations`` is used, annotations are not " "evaluated at function definition time. Instead, they are stored as strings " @@ -4618,11 +4692,11 @@ msgid "" "annotation (see :pep:`563`)." msgstr "" -#: library/typing.rst:3384 +#: library/typing.rst:3432 msgid "Deprecated aliases" msgstr "" -#: library/typing.rst:3386 +#: library/typing.rst:3434 msgid "" "This module defines several deprecated aliases to pre-existing standard " "library classes. These were originally included in the :mod:`!typing` module " @@ -4631,7 +4705,7 @@ msgid "" "pre-existing classes were enhanced to support ``[]`` (see :pep:`585`)." msgstr "" -#: library/typing.rst:3393 +#: library/typing.rst:3441 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 " @@ -4639,7 +4713,7 @@ msgid "" "the interpreter for these aliases." msgstr "" -#: library/typing.rst:3398 +#: library/typing.rst:3446 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 " @@ -4647,38 +4721,38 @@ msgid "" "`!typing` module without deprecation warnings until at least Python 3.14." msgstr "" -#: library/typing.rst:3403 +#: library/typing.rst:3451 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:3409 +#: library/typing.rst:3457 msgid "Aliases to built-in types" msgstr "" -#: library/typing.rst:3413 +#: library/typing.rst:3461 msgid "Deprecated alias to :class:`dict`." msgstr "" -#: library/typing.rst:3415 +#: library/typing.rst:3463 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:3419 +#: library/typing.rst:3467 msgid "" ":class:`builtins.dict ` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3425 +#: library/typing.rst:3473 msgid "Deprecated alias to :class:`list`." msgstr "" -#: library/typing.rst:3427 +#: library/typing.rst:3475 msgid "" "Note that to annotate arguments, it is preferred to use an abstract " "collection type such as :class:`~collections.abc.Sequence` or :class:" @@ -4686,136 +4760,136 @@ msgid "" "typing.List`." msgstr "" -#: library/typing.rst:3432 +#: library/typing.rst:3480 msgid "" ":class:`builtins.list ` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3438 +#: library/typing.rst:3486 msgid "Deprecated alias to :class:`builtins.set `." msgstr "" -#: library/typing.rst:3440 +#: library/typing.rst:3488 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:3444 +#: library/typing.rst:3492 msgid "" ":class:`builtins.set ` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3450 +#: library/typing.rst:3498 msgid "Deprecated alias to :class:`builtins.frozenset `." msgstr "" -#: library/typing.rst:3452 +#: library/typing.rst:3500 msgid "" ":class:`builtins.frozenset ` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3459 +#: library/typing.rst:3507 msgid "Deprecated alias for :class:`tuple`." msgstr "" -#: library/typing.rst:3461 +#: library/typing.rst:3509 msgid "" ":class:`tuple` and ``Tuple`` are special-cased in the type system; see :ref:" "`annotating-tuples` for more details." msgstr "" -#: library/typing.rst:3464 +#: library/typing.rst:3512 msgid "" ":class:`builtins.tuple ` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3470 +#: library/typing.rst:3518 msgid "Deprecated alias to :class:`type`." msgstr "" -#: library/typing.rst:3472 +#: library/typing.rst:3520 msgid "" "See :ref:`type-of-class-objects` for details on using :class:`type` or " "``typing.Type`` in type annotations." msgstr "" -#: library/typing.rst:3477 +#: library/typing.rst:3525 msgid "" ":class:`builtins.type ` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3484 +#: library/typing.rst:3532 msgid "Aliases to types in :mod:`collections`" msgstr "" -#: library/typing.rst:3488 +#: library/typing.rst:3536 msgid "Deprecated alias to :class:`collections.defaultdict`." msgstr "" -#: library/typing.rst:3492 +#: library/typing.rst:3540 msgid "" ":class:`collections.defaultdict` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3498 +#: library/typing.rst:3546 msgid "Deprecated alias to :class:`collections.OrderedDict`." msgstr "" -#: library/typing.rst:3502 +#: library/typing.rst:3550 msgid "" ":class:`collections.OrderedDict` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3508 +#: library/typing.rst:3556 msgid "Deprecated alias to :class:`collections.ChainMap`." msgstr "" -#: library/typing.rst:3512 +#: library/typing.rst:3560 msgid "" ":class:`collections.ChainMap` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3518 +#: library/typing.rst:3566 msgid "Deprecated alias to :class:`collections.Counter`." msgstr "" -#: library/typing.rst:3522 +#: library/typing.rst:3570 msgid "" ":class:`collections.Counter` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3528 +#: library/typing.rst:3576 msgid "Deprecated alias to :class:`collections.deque`." msgstr "" -#: library/typing.rst:3532 +#: library/typing.rst:3580 msgid "" ":class:`collections.deque` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3539 +#: library/typing.rst:3587 msgid "Aliases to other concrete types" msgstr "" -#: library/typing.rst:3544 +#: library/typing.rst:3592 msgid "" "Deprecated aliases corresponding to the return types from :func:`re.compile` " "and :func:`re.match`." msgstr "" -#: library/typing.rst:3547 +#: library/typing.rst:3595 msgid "" "These types (and the corresponding functions) are generic over :data:" "`AnyStr`. ``Pattern`` can be specialised as ``Pattern[str]`` or " @@ -4823,343 +4897,359 @@ msgid "" "``Match[bytes]``." msgstr "" -#: library/typing.rst:3552 +#: library/typing.rst:3600 msgid "" "Classes ``Pattern`` and ``Match`` from :mod:`re` now support ``[]``. See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3558 +#: library/typing.rst:3606 msgid "Deprecated alias for :class:`str`." msgstr "" -#: library/typing.rst:3560 +#: library/typing.rst:3608 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:3564 +#: library/typing.rst:3612 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:3567 +#: library/typing.rst:3615 msgid "" "def add_unicode_checkmark(text: Text) -> Text:\n" " return text + u' \\u2713'" msgstr "" -#: library/typing.rst:3572 +#: library/typing.rst:3620 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:3582 +#: library/typing.rst:3630 msgid "Aliases to container ABCs in :mod:`collections.abc`" msgstr "" -#: library/typing.rst:3586 +#: library/typing.rst:3634 msgid "Deprecated alias to :class:`collections.abc.Set`." msgstr "" -#: library/typing.rst:3588 +#: library/typing.rst:3636 msgid "" ":class:`collections.abc.Set` now supports subscripting (``[]``). See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3594 +#: library/typing.rst:3642 +msgid "Deprecated alias to :class:`collections.abc.ByteString`." +msgstr "" + +#: library/typing.rst:3644 msgid "" -"This type represents the types :class:`bytes`, :class:`bytearray`, and :" -"class:`memoryview` of byte sequences." +"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:3597 +#: library/typing.rst:3650 msgid "" -"Prefer :class:`collections.abc.Buffer`, or a union like ``bytes | bytearray " -"| memoryview``." +":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:3658 +msgid "See :pep:`PEP 688 <688#current-options>` for more details." msgstr "" -#: library/typing.rst:3602 +#: library/typing.rst:3664 msgid "Deprecated alias to :class:`collections.abc.Collection`." msgstr "" -#: library/typing.rst:3606 +#: library/typing.rst:3668 msgid "" ":class:`collections.abc.Collection` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3612 +#: library/typing.rst:3674 msgid "Deprecated alias to :class:`collections.abc.Container`." msgstr "" -#: library/typing.rst:3614 +#: library/typing.rst:3676 msgid "" ":class:`collections.abc.Container` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3620 +#: library/typing.rst:3682 msgid "Deprecated alias to :class:`collections.abc.ItemsView`." msgstr "" -#: library/typing.rst:3622 +#: library/typing.rst:3684 msgid "" ":class:`collections.abc.ItemsView` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3628 +#: library/typing.rst:3690 msgid "Deprecated alias to :class:`collections.abc.KeysView`." msgstr "" -#: library/typing.rst:3630 +#: library/typing.rst:3692 msgid "" ":class:`collections.abc.KeysView` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3636 +#: library/typing.rst:3698 msgid "Deprecated alias to :class:`collections.abc.Mapping`." msgstr "" -#: library/typing.rst:3638 +#: library/typing.rst:3700 msgid "" ":class:`collections.abc.Mapping` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3644 +#: library/typing.rst:3706 msgid "Deprecated alias to :class:`collections.abc.MappingView`." msgstr "" -#: library/typing.rst:3646 +#: library/typing.rst:3708 msgid "" ":class:`collections.abc.MappingView` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3652 +#: library/typing.rst:3714 msgid "Deprecated alias to :class:`collections.abc.MutableMapping`." msgstr "" -#: library/typing.rst:3654 +#: library/typing.rst:3716 msgid "" ":class:`collections.abc.MutableMapping` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3661 +#: library/typing.rst:3723 msgid "Deprecated alias to :class:`collections.abc.MutableSequence`." msgstr "" -#: library/typing.rst:3663 +#: library/typing.rst:3725 msgid "" ":class:`collections.abc.MutableSequence` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3670 +#: library/typing.rst:3732 msgid "Deprecated alias to :class:`collections.abc.MutableSet`." msgstr "" -#: library/typing.rst:3672 +#: library/typing.rst:3734 msgid "" ":class:`collections.abc.MutableSet` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3678 +#: library/typing.rst:3740 msgid "Deprecated alias to :class:`collections.abc.Sequence`." msgstr "" -#: library/typing.rst:3680 +#: library/typing.rst:3742 msgid "" ":class:`collections.abc.Sequence` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3686 +#: library/typing.rst:3748 msgid "Deprecated alias to :class:`collections.abc.ValuesView`." msgstr "" -#: library/typing.rst:3688 +#: library/typing.rst:3750 msgid "" ":class:`collections.abc.ValuesView` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3695 +#: library/typing.rst:3757 msgid "Aliases to asynchronous ABCs in :mod:`collections.abc`" msgstr "" -#: library/typing.rst:3699 +#: library/typing.rst:3761 msgid "Deprecated alias to :class:`collections.abc.Coroutine`." msgstr "" -#: library/typing.rst:3701 +#: library/typing.rst:3763 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:3707 +#: library/typing.rst:3769 msgid "" ":class:`collections.abc.Coroutine` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3713 +#: library/typing.rst:3775 msgid "Deprecated alias to :class:`collections.abc.AsyncGenerator`." msgstr "" -#: library/typing.rst:3715 +#: library/typing.rst:3777 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:3721 +#: library/typing.rst:3783 msgid "" ":class:`collections.abc.AsyncGenerator` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3726 +#: library/typing.rst:3788 msgid "The ``SendType`` parameter now has a default." msgstr "" -#: library/typing.rst:3731 +#: library/typing.rst:3793 msgid "Deprecated alias to :class:`collections.abc.AsyncIterable`." msgstr "" -#: library/typing.rst:3735 +#: library/typing.rst:3797 msgid "" ":class:`collections.abc.AsyncIterable` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3741 +#: library/typing.rst:3803 msgid "Deprecated alias to :class:`collections.abc.AsyncIterator`." msgstr "" -#: library/typing.rst:3745 +#: library/typing.rst:3807 msgid "" ":class:`collections.abc.AsyncIterator` now supports subscripting (``[]``). " "See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3751 +#: library/typing.rst:3813 msgid "Deprecated alias to :class:`collections.abc.Awaitable`." msgstr "" -#: library/typing.rst:3755 +#: library/typing.rst:3817 msgid "" ":class:`collections.abc.Awaitable` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3762 +#: library/typing.rst:3824 msgid "Aliases to other ABCs in :mod:`collections.abc`" msgstr "" -#: library/typing.rst:3766 +#: library/typing.rst:3828 msgid "Deprecated alias to :class:`collections.abc.Iterable`." msgstr "" -#: library/typing.rst:3768 +#: library/typing.rst:3830 msgid "" ":class:`collections.abc.Iterable` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3774 +#: library/typing.rst:3836 msgid "Deprecated alias to :class:`collections.abc.Iterator`." msgstr "" -#: library/typing.rst:3776 +#: library/typing.rst:3838 msgid "" ":class:`collections.abc.Iterator` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3782 +#: library/typing.rst:3844 msgid "Deprecated alias to :class:`collections.abc.Callable`." msgstr "" -#: library/typing.rst:3784 +#: library/typing.rst:3846 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:3787 +#: library/typing.rst:3849 msgid "" ":class:`collections.abc.Callable` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3797 +#: library/typing.rst:3859 msgid "Deprecated alias to :class:`collections.abc.Generator`." msgstr "" -#: library/typing.rst:3799 +#: library/typing.rst:3861 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:3803 +#: library/typing.rst:3865 msgid "" ":class:`collections.abc.Generator` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3807 +#: library/typing.rst:3869 msgid "Default values for the send and return types were added." msgstr "" -#: library/typing.rst:3812 +#: library/typing.rst:3874 msgid "Deprecated alias to :class:`collections.abc.Hashable`." msgstr "" -#: library/typing.rst:3814 +#: library/typing.rst:3876 msgid "Use :class:`collections.abc.Hashable` directly instead." msgstr "" -#: library/typing.rst:3819 +#: library/typing.rst:3881 msgid "Deprecated alias to :class:`collections.abc.Reversible`." msgstr "" -#: library/typing.rst:3821 +#: library/typing.rst:3883 msgid "" ":class:`collections.abc.Reversible` now supports subscripting (``[]``). See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3827 +#: library/typing.rst:3889 msgid "Deprecated alias to :class:`collections.abc.Sized`." msgstr "" -#: library/typing.rst:3829 +#: library/typing.rst:3891 msgid "Use :class:`collections.abc.Sized` directly instead." msgstr "" -#: library/typing.rst:3835 +#: library/typing.rst:3897 msgid "Aliases to :mod:`contextlib` ABCs" msgstr "" -#: library/typing.rst:3839 +#: library/typing.rst:3901 msgid "Deprecated alias to :class:`contextlib.AbstractContextManager`." msgstr "" -#: library/typing.rst:3841 +#: library/typing.rst:3903 msgid "" "The first type parameter, ``T_co``, represents the type returned by the :" "meth:`~object.__enter__` method. The optional second type parameter, " @@ -5167,21 +5257,21 @@ msgid "" "returned by the :meth:`~object.__exit__` method." msgstr "" -#: library/typing.rst:3848 +#: library/typing.rst:3910 msgid "" ":class:`contextlib.AbstractContextManager` now supports subscripting " "(``[]``). See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3853 +#: library/typing.rst:3915 msgid "Added the optional second type parameter, ``ExitT_co``." msgstr "" -#: library/typing.rst:3858 +#: library/typing.rst:3920 msgid "Deprecated alias to :class:`contextlib.AbstractAsyncContextManager`." msgstr "" -#: library/typing.rst:3860 +#: library/typing.rst:3922 msgid "" "The first type parameter, ``T_co``, represents the type returned by the :" "meth:`~object.__aenter__` method. The optional second type parameter, " @@ -5189,21 +5279,21 @@ msgid "" "returned by the :meth:`~object.__aexit__` method." msgstr "" -#: library/typing.rst:3867 +#: library/typing.rst:3929 msgid "" ":class:`contextlib.AbstractAsyncContextManager` now supports subscripting " "(``[]``). See :pep:`585` and :ref:`types-genericalias`." msgstr "" -#: library/typing.rst:3872 +#: library/typing.rst:3934 msgid "Added the optional second type parameter, ``AExitT_co``." msgstr "" -#: library/typing.rst:3876 +#: library/typing.rst:3938 msgid "Deprecation Timeline of Major Features" msgstr "" -#: library/typing.rst:3878 +#: library/typing.rst:3940 msgid "" "Certain features in ``typing`` are deprecated and may be removed in a future " "version of Python. The following table summarizes major deprecations for " @@ -5211,110 +5301,118 @@ msgid "" "listed." msgstr "" -#: library/typing.rst:3885 +#: library/typing.rst:3947 msgid "Feature" msgstr "" -#: library/typing.rst:3886 +#: library/typing.rst:3948 msgid "Deprecated in" msgstr "" -#: library/typing.rst:3887 +#: library/typing.rst:3949 msgid "Projected removal" msgstr "" -#: library/typing.rst:3888 +#: library/typing.rst:3950 msgid "PEP/issue" msgstr "" -#: library/typing.rst:3889 +#: library/typing.rst:3951 msgid "``typing`` versions of standard collections" msgstr "" -#: library/typing.rst:3894 +#: library/typing.rst:3956 msgid "3.9" msgstr "" -#: library/typing.rst:3891 +#: library/typing.rst:3953 msgid "Undecided (see :ref:`deprecated-aliases` for more information)" msgstr "" -#: library/typing.rst:3892 +#: library/typing.rst:3954 msgid ":pep:`585`" msgstr "" -#: library/typing.rst:3893 +#: library/typing.rst:3955 msgid ":class:`typing.ByteString`" msgstr "" -#: library/typing.rst:3895 -msgid "3.14" +#: library/typing.rst:3957 +msgid "3.17" msgstr "" -#: library/typing.rst:3896 +#: library/typing.rst:3958 msgid ":gh:`91896`" msgstr "" -#: library/typing.rst:3897 +#: library/typing.rst:3959 msgid ":data:`typing.Text`" msgstr "" -#: library/typing.rst:3898 +#: library/typing.rst:3960 msgid "3.11" msgstr "" -#: library/typing.rst:3903 library/typing.rst:3907 +#: library/typing.rst:3965 library/typing.rst:3969 msgid "Undecided" msgstr "" -#: library/typing.rst:3900 +#: library/typing.rst:3962 msgid ":gh:`92332`" msgstr "" -#: library/typing.rst:3901 +#: library/typing.rst:3963 msgid ":class:`typing.Hashable` and :class:`typing.Sized`" msgstr "" -#: library/typing.rst:3906 +#: library/typing.rst:3968 msgid "3.12" msgstr "" -#: library/typing.rst:3904 +#: library/typing.rst:3966 msgid ":gh:`94309`" msgstr "" -#: library/typing.rst:3905 +#: library/typing.rst:3967 msgid ":data:`typing.TypeAlias`" msgstr "" -#: library/typing.rst:3908 +#: library/typing.rst:3970 msgid ":pep:`695`" msgstr "" -#: library/typing.rst:3909 +#: library/typing.rst:3971 msgid ":func:`@typing.no_type_check_decorator `" msgstr "" -#: library/typing.rst:3914 +#: library/typing.rst:3976 msgid "3.13" msgstr "" -#: library/typing.rst:3911 +#: library/typing.rst:3973 msgid "3.15" msgstr "" -#: library/typing.rst:3912 +#: library/typing.rst:3974 msgid ":gh:`106309`" msgstr "" -#: library/typing.rst:3913 +#: library/typing.rst:3975 msgid ":data:`typing.AnyStr`" msgstr "" -#: library/typing.rst:3915 +#: library/typing.rst:3977 msgid "3.18" msgstr "" -#: library/typing.rst:3916 +#: library/typing.rst:3978 msgid ":gh:`105578`" msgstr "" + +#: library/typing.rst:380 library/typing.rst:1162 +msgid "..." +msgstr "" + +#: library/typing.rst:380 library/typing.rst:1162 +msgid "ellipsis literal" +msgstr "" diff --git a/library/unicodedata.po b/library/unicodedata.po index 6a2eaec8..77f33541 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/15.1.0/ucd/NameAliases.txt" msgstr "" -#: library/unicodedata.rst:180 +#: library/unicodedata.rst:216 msgid "https://www.unicode.org/Public/15.1.0/ucd/NamedSequences.txt" msgstr "" diff --git a/library/unittest.mock-examples.po b/library/unittest.mock-examples.po index d59d15d2..83d0f512 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 d0081c1b..226de7ff 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 @@ -2767,9 +2767,9 @@ msgstr "" #: library/unittest.mock.rst:2654 msgid "" -">>> mock.has_data()\n" +">>> mock.header_items()\n" "\n" -">>> mock.has_data.assret_called_with() # Intentional typo!" +">>> mock.header_items.assret_called_with() # Intentional typo!" msgstr "" #: library/unittest.mock.rst:2660 diff --git a/library/unittest.po b/library/unittest.po index 4feca7de..f83a1e2c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -197,7 +197,7 @@ msgstr "" #: library/unittest.rst:113 msgid "" -"A testcase is created by subclassing :class:`unittest.TestCase`. The three " +"A test case is created by subclassing :class:`unittest.TestCase`. The three " "individual tests are defined with methods whose names start with the letters " "``test``. This naming convention informs the test runner about which " "methods represent tests." @@ -678,7 +678,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 "" @@ -807,9 +807,9 @@ msgstr "" #: library/unittest.rst:525 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:534 @@ -1508,8 +1508,8 @@ msgstr "" #: library/unittest.rst:1015 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 "" @@ -1527,7 +1527,7 @@ msgid "Added the ability to use :meth:`assertRaises` as a context manager." msgstr "" #: library/unittest.rst:1028 -msgid "Added the :attr:`exception` attribute." +msgid "Added the :attr:`!exception` attribute." msgstr "" #: library/unittest.rst:1057 library/unittest.rst:1121 @@ -1596,10 +1596,10 @@ msgstr "" #: library/unittest.rst:1081 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:1087 @@ -1985,7 +1985,7 @@ msgstr "" #: library/unittest.rst:1377 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 "" @@ -2196,17 +2196,17 @@ msgstr "" #: library/unittest.rst:1585 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:1594 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 " @@ -2232,9 +2232,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:1629 @@ -2372,7 +2372,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:1748 @@ -2386,13 +2386,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:1758 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:1763 @@ -2427,15 +2428,15 @@ msgstr "" #: library/unittest.rst:1792 msgid "" "Return a suite of all test cases contained in the :class:`TestCase`\\ -" -"derived :class:`testCaseClass`." +"derived :class:`!testCaseClass`." msgstr "" #: library/unittest.rst:1795 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 "" @@ -2493,15 +2494,15 @@ msgstr "" #: library/unittest.rst:1845 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:1855 @@ -2685,8 +2686,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:2000 @@ -2777,8 +2778,8 @@ msgstr "" #: library/unittest.rst:2082 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 "" @@ -2786,7 +2787,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 "" @@ -3208,9 +3209,9 @@ msgstr "" #: library/unittest.rst:2408 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:2413 @@ -3302,11 +3303,11 @@ msgstr "" msgid "setUpModule and tearDownModule" msgstr "" -#: library/unittest.rst:2472 +#: library/unittest.rst:2476 msgid "These should be implemented as functions::" msgstr "" -#: library/unittest.rst:2474 +#: library/unittest.rst:2478 msgid "" "def setUpModule():\n" " createConnection()\n" @@ -3315,7 +3316,7 @@ msgid "" " closeConnection()" msgstr "" -#: library/unittest.rst:2480 +#: library/unittest.rst:2484 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 " @@ -3323,13 +3324,13 @@ msgid "" "having been skipped instead of as an error." msgstr "" -#: library/unittest.rst:2485 +#: library/unittest.rst:2489 msgid "" "To add cleanup code that must be run even in the case of an exception, use " "``addModuleCleanup``:" msgstr "" -#: library/unittest.rst:2491 +#: library/unittest.rst:2495 msgid "" "Add a function to be called after :func:`tearDownModule` to cleanup " "resources used during the test class. Functions will be called in reverse " @@ -3338,13 +3339,13 @@ msgid "" "`addModuleCleanup` when they are added." msgstr "" -#: library/unittest.rst:2497 +#: library/unittest.rst:2501 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:2505 +#: library/unittest.rst:2509 msgid "" "Enter the supplied :term:`context manager`. If successful, also add its :" "meth:`~object.__exit__` method as a cleanup function by :func:" @@ -3352,30 +3353,30 @@ msgid "" "method." msgstr "" -#: library/unittest.rst:2515 +#: library/unittest.rst:2519 msgid "" "This function is called unconditionally after :func:`tearDownModule`, or " "after :func:`setUpModule` if :func:`setUpModule` raises an exception." msgstr "" -#: library/unittest.rst:2518 +#: library/unittest.rst:2522 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:2523 +#: library/unittest.rst:2527 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:2530 +#: library/unittest.rst:2534 msgid "Signal Handling" msgstr "" -#: library/unittest.rst:2534 +#: library/unittest.rst:2538 msgid "" "The :option:`-c/--catch ` command-line option to unittest, " "along with the ``catchbreak`` parameter to :func:`unittest.main`, provide " @@ -3385,7 +3386,7 @@ msgid "" "A second control-c will raise a :exc:`KeyboardInterrupt` in the usual way." msgstr "" -#: library/unittest.rst:2541 +#: library/unittest.rst:2545 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 " @@ -3397,48 +3398,48 @@ msgid "" "disabled the :func:`removeHandler` decorator can be used." msgstr "" -#: library/unittest.rst:2550 +#: library/unittest.rst:2554 msgid "" "There are a few utility functions for framework authors to enable control-c " "handling functionality within test frameworks." msgstr "" -#: library/unittest.rst:2555 +#: library/unittest.rst:2559 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:2562 +#: library/unittest.rst:2566 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:2566 +#: library/unittest.rst:2570 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:2573 +#: library/unittest.rst:2577 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:2580 +#: library/unittest.rst:2584 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:2584 +#: library/unittest.rst:2588 msgid "" "@unittest.removeHandler\n" "def test_signal_handling(self):\n" diff --git a/library/unix.po b/library/unix.po index ad8d2f97..6b1f90d5 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 4311cd9e..85a68677 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ba6c2d4d..c6775150 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ab0be4ab..f72d3984 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 6a401f66..20e668c7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -566,7 +566,7 @@ msgstr "" msgid "A catch-all class to handle unknown URLs." msgstr "" -#: library/urllib.request.rst:1174 +#: library/urllib.request.rst:1177 msgid "Process HTTP error responses." msgstr "" @@ -951,55 +951,72 @@ msgstr "" #: library/urllib.request.rst:787 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:789 +msgid "a :class:`Request` object," +msgstr "" + +#: library/urllib.request.rst:790 +msgid "a file-like object with the HTTP error body," +msgstr "" + +#: library/urllib.request.rst:791 +msgid "the three-digit code of the error, as a string," msgstr "" #: library/urllib.request.rst:792 +msgid "the user-visible explanation of the code, as a string, and" +msgstr "" + +#: library/urllib.request.rst:793 +msgid "the headers of the error, as a mapping object." +msgstr "" + +#: library/urllib.request.rst:795 msgid "" "Return values and exceptions raised should be the same as those of :func:" "`urlopen`." msgstr "" -#: library/urllib.request.rst:799 +#: library/urllib.request.rst:802 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:803 +#: library/urllib.request.rst:806 msgid "Subclasses should override this method to handle specific HTTP errors." msgstr "" -#: library/urllib.request.rst:805 +#: library/urllib.request.rst:808 msgid "" "Arguments, return values and exceptions raised should be the same as for :" "meth:`~BaseHandler.http_error_default`." msgstr "" -#: library/urllib.request.rst:813 +#: library/urllib.request.rst:816 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:816 +#: library/urllib.request.rst:819 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:825 +#: library/urllib.request.rst:828 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:828 +#: library/urllib.request.rst:831 msgid "" "This method, if defined, will be called by the parent :class:" "`OpenerDirector`. *req* will be a :class:`Request` object. *response* will " @@ -1008,25 +1025,25 @@ msgid "" "return value of :func:`urlopen`." msgstr "" -#: library/urllib.request.rst:838 +#: library/urllib.request.rst:841 msgid "HTTPRedirectHandler Objects" msgstr "" -#: library/urllib.request.rst:842 +#: library/urllib.request.rst:845 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:846 +#: library/urllib.request.rst:849 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:853 +#: library/urllib.request.rst:856 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\\*` " @@ -1037,7 +1054,7 @@ msgid "" "URL, or return ``None`` if you can't but another handler might." msgstr "" -#: library/urllib.request.rst:863 +#: library/urllib.request.rst:866 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 " @@ -1046,54 +1063,54 @@ msgid "" "POST to a ``GET``, and the default implementation reproduces this behavior." msgstr "" -#: library/urllib.request.rst:872 +#: library/urllib.request.rst:875 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:878 +#: library/urllib.request.rst:881 msgid "" "The same as :meth:`http_error_301`, but called for the 'found' response." msgstr "" -#: library/urllib.request.rst:883 +#: library/urllib.request.rst:886 msgid "" "The same as :meth:`http_error_301`, but called for the 'see other' response." msgstr "" -#: library/urllib.request.rst:888 +#: library/urllib.request.rst:891 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:895 +#: library/urllib.request.rst:898 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:905 +#: library/urllib.request.rst:908 msgid "HTTPCookieProcessor Objects" msgstr "" -#: library/urllib.request.rst:907 +#: library/urllib.request.rst:910 msgid ":class:`HTTPCookieProcessor` instances have one attribute:" msgstr "" -#: library/urllib.request.rst:911 +#: library/urllib.request.rst:914 msgid "The :class:`http.cookiejar.CookieJar` in which cookies are stored." msgstr "" -#: library/urllib.request.rst:917 +#: library/urllib.request.rst:920 msgid "ProxyHandler Objects" msgstr "" -#: library/urllib.request.rst:923 +#: library/urllib.request.rst:926 msgid "" "The :class:`ProxyHandler` will have a method :meth:`!_open` for " "every *protocol* which has a proxy in the *proxies* dictionary given in the " @@ -1102,17 +1119,17 @@ msgid "" "actually execute the protocol." msgstr "" -#: library/urllib.request.rst:933 +#: library/urllib.request.rst:936 msgid "HTTPPasswordMgr Objects" msgstr "" -#: library/urllib.request.rst:935 +#: library/urllib.request.rst:938 msgid "" "These methods are available on :class:`HTTPPasswordMgr` and :class:" "`HTTPPasswordMgrWithDefaultRealm` objects." msgstr "" -#: library/urllib.request.rst:941 +#: library/urllib.request.rst:944 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 " @@ -1120,30 +1137,30 @@ msgid "" "of the given URIs is given." msgstr "" -#: library/urllib.request.rst:949 +#: library/urllib.request.rst:952 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:952 +#: library/urllib.request.rst:955 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:959 +#: library/urllib.request.rst:962 msgid "HTTPPasswordMgrWithPriorAuth Objects" msgstr "" -#: library/urllib.request.rst:961 +#: library/urllib.request.rst:964 msgid "" "This password manager extends :class:`HTTPPasswordMgrWithDefaultRealm` to " "support tracking URIs for which authentication credentials should always be " "sent." msgstr "" -#: library/urllib.request.rst:968 +#: library/urllib.request.rst:971 msgid "" "*realm*, *uri*, *user*, *passwd* are as for :meth:`HTTPPasswordMgr." "add_password`. *is_authenticated* sets the initial value of the " @@ -1151,25 +1168,25 @@ msgid "" "*is_authenticated* is specified as ``True``, *realm* is ignored." msgstr "" -#: library/urllib.request.rst:976 +#: library/urllib.request.rst:979 msgid "Same as for :class:`HTTPPasswordMgrWithDefaultRealm` objects" msgstr "" -#: library/urllib.request.rst:982 +#: library/urllib.request.rst:985 msgid "" "Update the ``is_authenticated`` flag for the given *uri* or list of URIs." msgstr "" -#: library/urllib.request.rst:988 +#: library/urllib.request.rst:991 msgid "" "Returns the current state of the ``is_authenticated`` flag for the given URI." msgstr "" -#: library/urllib.request.rst:995 +#: library/urllib.request.rst:998 msgid "AbstractBasicAuthHandler Objects" msgstr "" -#: library/urllib.request.rst:1000 +#: library/urllib.request.rst:1003 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 " @@ -1178,7 +1195,7 @@ msgid "" "`Request` object, and *headers* should be the error headers." msgstr "" -#: library/urllib.request.rst:1006 +#: library/urllib.request.rst:1009 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, " @@ -1186,24 +1203,24 @@ msgid "" "and ``\"python.org:80\"`` are fine, ``\"joe:password@python.org\"`` is not)." msgstr "" -#: library/urllib.request.rst:1015 +#: library/urllib.request.rst:1018 msgid "HTTPBasicAuthHandler Objects" msgstr "" -#: library/urllib.request.rst:1020 library/urllib.request.rst:1031 -#: library/urllib.request.rst:1056 library/urllib.request.rst:1067 +#: library/urllib.request.rst:1023 library/urllib.request.rst:1034 +#: library/urllib.request.rst:1059 library/urllib.request.rst:1070 msgid "Retry the request with authentication information, if available." msgstr "" -#: library/urllib.request.rst:1026 +#: library/urllib.request.rst:1029 msgid "ProxyBasicAuthHandler Objects" msgstr "" -#: library/urllib.request.rst:1037 +#: library/urllib.request.rst:1040 msgid "AbstractDigestAuthHandler Objects" msgstr "" -#: library/urllib.request.rst:1042 +#: library/urllib.request.rst:1045 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 " @@ -1211,55 +1228,55 @@ msgid "" "should be the error headers." msgstr "" -#: library/urllib.request.rst:1051 +#: library/urllib.request.rst:1054 msgid "HTTPDigestAuthHandler Objects" msgstr "" -#: library/urllib.request.rst:1062 +#: library/urllib.request.rst:1065 msgid "ProxyDigestAuthHandler Objects" msgstr "" -#: library/urllib.request.rst:1073 +#: library/urllib.request.rst:1076 msgid "HTTPHandler Objects" msgstr "" -#: library/urllib.request.rst:1078 +#: library/urllib.request.rst:1081 msgid "" "Send an HTTP request, which can be either GET or POST, depending on ``req." -"has_data()``." +"data``." msgstr "" -#: library/urllib.request.rst:1085 +#: library/urllib.request.rst:1088 msgid "HTTPSHandler Objects" msgstr "" -#: library/urllib.request.rst:1090 +#: library/urllib.request.rst:1093 msgid "" "Send an HTTPS request, which can be either GET or POST, depending on ``req." -"has_data()``." +"data``." msgstr "" -#: library/urllib.request.rst:1097 +#: library/urllib.request.rst:1100 msgid "FileHandler Objects" msgstr "" -#: library/urllib.request.rst:1102 +#: library/urllib.request.rst:1105 msgid "" "Open the file locally, if there is no host name, or the host name is " "``'localhost'``." msgstr "" -#: library/urllib.request.rst:1105 +#: library/urllib.request.rst:1108 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:1113 +#: library/urllib.request.rst:1116 msgid "DataHandler Objects" msgstr "" -#: library/urllib.request.rst:1117 +#: library/urllib.request.rst:1120 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 " @@ -1269,51 +1286,51 @@ msgid "" "implementation will raise a :exc:`ValueError` in that case." msgstr "" -#: library/urllib.request.rst:1128 +#: library/urllib.request.rst:1131 msgid "FTPHandler Objects" msgstr "" -#: library/urllib.request.rst:1133 +#: library/urllib.request.rst:1136 msgid "" "Open the FTP file indicated by *req*. The login is always done with empty " "username and password." msgstr "" -#: library/urllib.request.rst:1140 +#: library/urllib.request.rst:1143 msgid "CacheFTPHandler Objects" msgstr "" -#: library/urllib.request.rst:1142 +#: library/urllib.request.rst:1145 msgid "" ":class:`CacheFTPHandler` objects are :class:`FTPHandler` objects with the " "following additional methods:" msgstr "" -#: library/urllib.request.rst:1148 +#: library/urllib.request.rst:1151 msgid "Set timeout of connections to *t* seconds." msgstr "" -#: library/urllib.request.rst:1153 +#: library/urllib.request.rst:1156 msgid "Set maximum number of cached connections to *m*." msgstr "" -#: library/urllib.request.rst:1159 +#: library/urllib.request.rst:1162 msgid "UnknownHandler Objects" msgstr "" -#: library/urllib.request.rst:1164 +#: library/urllib.request.rst:1167 msgid "Raise a :exc:`~urllib.error.URLError` exception." msgstr "" -#: library/urllib.request.rst:1170 +#: library/urllib.request.rst:1173 msgid "HTTPErrorProcessor Objects" msgstr "" -#: library/urllib.request.rst:1176 +#: library/urllib.request.rst:1179 msgid "For 200 error codes, the response object is returned immediately." msgstr "" -#: library/urllib.request.rst:1178 +#: library/urllib.request.rst:1181 msgid "" "For non-200 error codes, this simply passes the job on to the :meth:`!" "http_error_\\` handler methods, via :meth:`OpenerDirector.error`. " @@ -1321,31 +1338,31 @@ msgid "" "error.HTTPError` if no other handler handles the error." msgstr "" -#: library/urllib.request.rst:1186 +#: library/urllib.request.rst:1189 msgid "Process HTTPS error responses." msgstr "" -#: library/urllib.request.rst:1188 +#: library/urllib.request.rst:1191 msgid "The behavior is same as :meth:`http_response`." msgstr "" -#: library/urllib.request.rst:1194 +#: library/urllib.request.rst:1197 msgid "Examples" msgstr "" -#: library/urllib.request.rst:1196 +#: library/urllib.request.rst:1199 msgid "" "In addition to the examples below, more examples are given in :ref:`urllib-" "howto`." msgstr "" -#: library/urllib.request.rst:1199 +#: library/urllib.request.rst:1202 msgid "" "This example gets the python.org main page and displays the first 300 bytes " "of it::" msgstr "" -#: library/urllib.request.rst:1202 +#: library/urllib.request.rst:1205 msgid "" ">>> import urllib.request\n" ">>> with urllib.request.urlopen('http://www.python.org/') as f:\n" @@ -1357,7 +1374,7 @@ msgid "" "class=\"no-js ie8 lt-ie9\">" msgstr "" -#: library/urllib.request.rst:1208 +#: library/urllib.request.rst:1211 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 " @@ -1366,26 +1383,26 @@ msgid "" "appropriate encoding." msgstr "" -#: library/urllib.request.rst:1214 +#: library/urllib.request.rst:1217 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:1218 +#: library/urllib.request.rst:1221 msgid "" "For additional information, see the W3C document: https://www.w3.org/" "International/questions/qa-html-encoding-declarations." msgstr "" -#: library/urllib.request.rst:1220 +#: library/urllib.request.rst:1223 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:1223 +#: library/urllib.request.rst:1226 msgid "" ">>> with urllib.request.urlopen('http://www.python.org/') as f:\n" "... print(f.read(100).decode('utf-8'))\n" @@ -1396,13 +1413,13 @@ msgid "" ">> import urllib.request\n" ">>> f = urllib.request.urlopen('http://www.python.org/')\n" @@ -1417,14 +1434,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 f4bc21e9..62717617 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a0706a11..feeed985 100644 --- a/library/xml.sax.handler.po +++ b/library/xml.sax.handler.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -356,63 +356,62 @@ msgstr "" #: library/xml.sax.handler.rst:249 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 "" -#: library/xml.sax.handler.rst:261 +#: library/xml.sax.handler.rst:260 msgid "Signals the end of an element in non-namespace mode." msgstr "" -#: library/xml.sax.handler.rst:263 +#: library/xml.sax.handler.rst:262 msgid "" "The *name* parameter contains the name of the element type, just as with " "the :meth:`startElement` event." msgstr "" -#: library/xml.sax.handler.rst:269 +#: library/xml.sax.handler.rst:268 msgid "Signals the start of an element in namespace mode." msgstr "" -#: library/xml.sax.handler.rst:271 +#: library/xml.sax.handler.rst:270 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 "" -#: library/xml.sax.handler.rst:282 +#: library/xml.sax.handler.rst:280 msgid "" "Parsers may set the *qname* parameter to ``None``, unless the " "``feature_namespace_prefixes`` feature is activated." msgstr "" -#: library/xml.sax.handler.rst:288 +#: library/xml.sax.handler.rst:286 msgid "Signals the end of an element in namespace mode." msgstr "" -#: library/xml.sax.handler.rst:290 +#: library/xml.sax.handler.rst:288 msgid "" "The *name* parameter contains the name of the element type, just as with " "the :meth:`startElementNS` method, likewise the *qname* parameter." msgstr "" -#: library/xml.sax.handler.rst:296 +#: library/xml.sax.handler.rst:294 msgid "Receive notification of character data." msgstr "" -#: library/xml.sax.handler.rst:298 +#: library/xml.sax.handler.rst:296 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 " @@ -421,13 +420,13 @@ msgid "" "provides useful information." msgstr "" -#: library/xml.sax.handler.rst:304 +#: library/xml.sax.handler.rst:302 msgid "" "*content* may be a string or bytes instance; the ``expat`` reader module " "always produces strings." msgstr "" -#: library/xml.sax.handler.rst:309 +#: library/xml.sax.handler.rst:307 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 " @@ -437,11 +436,11 @@ msgid "" "and *length* parameters." msgstr "" -#: library/xml.sax.handler.rst:318 +#: library/xml.sax.handler.rst:316 msgid "Receive notification of ignorable whitespace in element content." msgstr "" -#: library/xml.sax.handler.rst:320 +#: library/xml.sax.handler.rst:318 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-" @@ -449,7 +448,7 @@ msgid "" "and using content models." msgstr "" -#: library/xml.sax.handler.rst:325 +#: library/xml.sax.handler.rst:323 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 " @@ -457,28 +456,28 @@ msgid "" "provides useful information." msgstr "" -#: library/xml.sax.handler.rst:333 +#: library/xml.sax.handler.rst:331 msgid "Receive notification of a processing instruction." msgstr "" -#: library/xml.sax.handler.rst:335 +#: library/xml.sax.handler.rst:333 msgid "" "The Parser will invoke this method once for each processing instruction " "found: note that processing instructions may occur before or after the main " "document element." msgstr "" -#: library/xml.sax.handler.rst:339 +#: library/xml.sax.handler.rst:337 msgid "" "A SAX parser should never report an XML declaration (XML 1.0, section 2.8) " "or a text declaration (XML 1.0, section 4.3.1) using this method." msgstr "" -#: library/xml.sax.handler.rst:345 +#: library/xml.sax.handler.rst:343 msgid "Receive notification of a skipped entity." msgstr "" -#: library/xml.sax.handler.rst:347 +#: library/xml.sax.handler.rst:345 msgid "" "The Parser will invoke this method once for each entity skipped. Non-" "validating processors may skip entities if they have not seen the " @@ -488,38 +487,38 @@ msgid "" "properties." msgstr "" -#: library/xml.sax.handler.rst:357 +#: library/xml.sax.handler.rst:355 msgid "DTDHandler Objects" msgstr "" -#: library/xml.sax.handler.rst:359 +#: library/xml.sax.handler.rst:357 msgid ":class:`DTDHandler` instances provide the following methods:" msgstr "" -#: library/xml.sax.handler.rst:364 +#: library/xml.sax.handler.rst:362 msgid "Handle a notation declaration event." msgstr "" -#: library/xml.sax.handler.rst:369 +#: library/xml.sax.handler.rst:367 msgid "Handle an unparsed entity declaration event." msgstr "" -#: library/xml.sax.handler.rst:375 +#: library/xml.sax.handler.rst:373 msgid "EntityResolver Objects" msgstr "" -#: library/xml.sax.handler.rst:380 +#: library/xml.sax.handler.rst:378 msgid "" "Resolve the system identifier of an entity and return either the system " "identifier to read from as a string, or an InputSource to read from. The " "default implementation returns *systemId*." msgstr "" -#: library/xml.sax.handler.rst:388 +#: library/xml.sax.handler.rst:386 msgid "ErrorHandler Objects" msgstr "" -#: library/xml.sax.handler.rst:390 +#: library/xml.sax.handler.rst:388 msgid "" "Objects with this interface are used to receive error and warning " "information from the :class:`~xml.sax.xmlreader.XMLReader`. If you create " @@ -532,7 +531,7 @@ msgid "" "the passed-in exception object." msgstr "" -#: library/xml.sax.handler.rst:403 +#: library/xml.sax.handler.rst:401 msgid "" "Called when the parser encounters a recoverable error. If this method does " "not raise an exception, parsing may continue, but further document " @@ -541,13 +540,13 @@ msgid "" "document." msgstr "" -#: library/xml.sax.handler.rst:411 +#: library/xml.sax.handler.rst:409 msgid "" "Called when the parser encounters an error it cannot recover from; parsing " "is expected to terminate when this method returns." msgstr "" -#: library/xml.sax.handler.rst:417 +#: library/xml.sax.handler.rst:415 msgid "" "Called when the parser presents minor warning information to the " "application. Parsing is expected to continue when this method returns, and " @@ -555,15 +554,15 @@ msgid "" "an exception in this method will cause parsing to end." msgstr "" -#: library/xml.sax.handler.rst:426 +#: library/xml.sax.handler.rst:424 msgid "LexicalHandler Objects" msgstr "" -#: library/xml.sax.handler.rst:427 +#: library/xml.sax.handler.rst:425 msgid "Optional SAX2 handler for lexical events." msgstr "" -#: library/xml.sax.handler.rst:429 +#: library/xml.sax.handler.rst:427 msgid "" "This handler is used to obtain lexical information about an XML document. " "Lexical information includes information describing the document encoding " @@ -572,38 +571,38 @@ msgid "" "used in the same manner as content handlers." msgstr "" -#: library/xml.sax.handler.rst:435 +#: library/xml.sax.handler.rst:433 msgid "" "Set the LexicalHandler of an XMLReader by using the setProperty method with " "the property identifier ``'http://xml.org/sax/properties/lexical-handler'``." msgstr "" -#: library/xml.sax.handler.rst:442 +#: library/xml.sax.handler.rst:440 msgid "" "Reports a comment anywhere in the document (including the DTD and outside " "the document element)." msgstr "" -#: library/xml.sax.handler.rst:447 +#: library/xml.sax.handler.rst:445 msgid "" "Reports the start of the DTD declarations if the document has an associated " "DTD." msgstr "" -#: library/xml.sax.handler.rst:452 +#: library/xml.sax.handler.rst:450 msgid "Reports the end of DTD declaration." msgstr "" -#: library/xml.sax.handler.rst:456 +#: library/xml.sax.handler.rst:454 msgid "Reports the start of a CDATA marked section." msgstr "" -#: library/xml.sax.handler.rst:458 +#: library/xml.sax.handler.rst:456 msgid "" "The contents of the CDATA marked section will be reported through the " "characters handler." msgstr "" -#: library/xml.sax.handler.rst:463 +#: library/xml.sax.handler.rst:461 msgid "Reports the end of a CDATA marked section." msgstr "" diff --git a/library/xml.sax.po b/library/xml.sax.po index 072a628c..bbb5e922 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1c3e1bf7..d3951138 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 8240385b..f0247d39 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 37a397bf..e25da42a 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 18b4e954..12954363 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 aa8f954b..41fcd242 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3d49b02c..49a89ff1 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-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/zipfile.po b/library/zipfile.po index f5cabcdc..ace3e677 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -947,229 +947,247 @@ msgstr "" #: library/zipfile.rst:801 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:805 +msgid "The tuple contains:" +msgstr "" + +#: library/zipfile.rst:808 msgid "Index" msgstr "" -#: library/zipfile.rst:805 +#: library/zipfile.rst:808 msgid "Value" msgstr "" -#: library/zipfile.rst:807 +#: library/zipfile.rst:810 msgid "``0``" msgstr "" -#: library/zipfile.rst:807 +#: library/zipfile.rst:810 msgid "Year (>= 1980)" msgstr "" -#: library/zipfile.rst:809 +#: library/zipfile.rst:812 msgid "``1``" msgstr "" -#: library/zipfile.rst:809 +#: library/zipfile.rst:812 msgid "Month (one-based)" msgstr "" -#: library/zipfile.rst:811 +#: library/zipfile.rst:814 msgid "``2``" msgstr "" -#: library/zipfile.rst:811 +#: library/zipfile.rst:814 msgid "Day of month (one-based)" msgstr "" -#: library/zipfile.rst:813 +#: library/zipfile.rst:816 msgid "``3``" msgstr "" -#: library/zipfile.rst:813 +#: library/zipfile.rst:816 msgid "Hours (zero-based)" msgstr "" -#: library/zipfile.rst:815 +#: library/zipfile.rst:818 msgid "``4``" msgstr "" -#: library/zipfile.rst:815 +#: library/zipfile.rst:818 msgid "Minutes (zero-based)" msgstr "" -#: library/zipfile.rst:817 +#: library/zipfile.rst:820 msgid "``5``" msgstr "" -#: library/zipfile.rst:817 +#: library/zipfile.rst:820 msgid "Seconds (zero-based)" msgstr "" -#: library/zipfile.rst:822 -msgid "The ZIP file format does not support timestamps before 1980." +#: library/zipfile.rst:825 +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:832 +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:827 +#: library/zipfile.rst:838 msgid "Type of compression for the archive member." msgstr "" -#: library/zipfile.rst:832 +#: library/zipfile.rst:843 msgid "Comment for the individual archive member as a :class:`bytes` object." msgstr "" -#: library/zipfile.rst:837 +#: library/zipfile.rst:848 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:844 +#: library/zipfile.rst:855 msgid "System which created ZIP archive." msgstr "" -#: library/zipfile.rst:849 +#: library/zipfile.rst:860 msgid "PKZIP version which created ZIP archive." msgstr "" -#: library/zipfile.rst:854 +#: library/zipfile.rst:865 msgid "PKZIP version needed to extract archive." msgstr "" -#: library/zipfile.rst:859 +#: library/zipfile.rst:870 msgid "Must be zero." msgstr "" -#: library/zipfile.rst:864 +#: library/zipfile.rst:875 msgid "ZIP flag bits." msgstr "" -#: library/zipfile.rst:869 +#: library/zipfile.rst:880 msgid "Volume number of file header." msgstr "" -#: library/zipfile.rst:874 +#: library/zipfile.rst:885 msgid "Internal attributes." msgstr "" -#: library/zipfile.rst:879 +#: library/zipfile.rst:890 msgid "External file attributes." msgstr "" -#: library/zipfile.rst:884 +#: library/zipfile.rst:895 msgid "Byte offset to the file header." msgstr "" -#: library/zipfile.rst:889 +#: library/zipfile.rst:900 msgid "CRC-32 of the uncompressed file." msgstr "" -#: library/zipfile.rst:894 +#: library/zipfile.rst:905 msgid "Size of the compressed data." msgstr "" -#: library/zipfile.rst:899 +#: library/zipfile.rst:910 msgid "Size of the uncompressed file." msgstr "" -#: library/zipfile.rst:906 +#: library/zipfile.rst:917 msgid "Command-Line Interface" msgstr "" -#: library/zipfile.rst:908 +#: library/zipfile.rst:919 msgid "" "The :mod:`zipfile` module provides a simple command-line interface to " "interact with ZIP archives." msgstr "" -#: library/zipfile.rst:911 +#: library/zipfile.rst:922 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:914 +#: library/zipfile.rst:925 msgid "$ python -m zipfile -c monty.zip spam.txt eggs.txt" msgstr "" -#: library/zipfile.rst:918 +#: library/zipfile.rst:929 msgid "Passing a directory is also acceptable:" msgstr "" -#: library/zipfile.rst:920 +#: library/zipfile.rst:931 msgid "$ python -m zipfile -c monty.zip life-of-brian_1979/" msgstr "" -#: library/zipfile.rst:924 +#: library/zipfile.rst:935 msgid "" "If you want to extract a ZIP archive into the specified directory, use the :" "option:`-e` option:" msgstr "" -#: library/zipfile.rst:927 +#: library/zipfile.rst:938 msgid "$ python -m zipfile -e monty.zip target-dir/" msgstr "" -#: library/zipfile.rst:931 +#: library/zipfile.rst:942 msgid "For a list of the files in a ZIP archive, use the :option:`-l` option:" msgstr "" -#: library/zipfile.rst:933 +#: library/zipfile.rst:944 msgid "$ python -m zipfile -l monty.zip" msgstr "" -#: library/zipfile.rst:939 +#: library/zipfile.rst:950 msgid "Command-line options" msgstr "" -#: library/zipfile.rst:944 +#: library/zipfile.rst:955 msgid "List files in a zipfile." msgstr "" -#: library/zipfile.rst:949 +#: library/zipfile.rst:960 msgid "Create zipfile from source files." msgstr "" -#: library/zipfile.rst:954 +#: library/zipfile.rst:965 msgid "Extract zipfile into target directory." msgstr "" -#: library/zipfile.rst:959 +#: library/zipfile.rst:970 msgid "Test whether the zipfile is valid or not." msgstr "" -#: library/zipfile.rst:963 +#: library/zipfile.rst:974 msgid "" "Specify encoding of member names for :option:`-l`, :option:`-e` and :option:" "`-t`." msgstr "" -#: library/zipfile.rst:970 +#: library/zipfile.rst:981 msgid "Decompression pitfalls" msgstr "" -#: library/zipfile.rst:972 +#: library/zipfile.rst:983 msgid "" "The extraction in zipfile module might fail due to some pitfalls listed " "below." msgstr "" -#: library/zipfile.rst:975 +#: library/zipfile.rst:986 msgid "From file itself" msgstr "" -#: library/zipfile.rst:977 +#: library/zipfile.rst:988 msgid "" "Decompression may fail due to incorrect password / CRC checksum / ZIP format " "or unsupported compression method / decryption." msgstr "" -#: library/zipfile.rst:981 +#: library/zipfile.rst:992 msgid "File System limitations" msgstr "" -#: library/zipfile.rst:983 +#: library/zipfile.rst:994 msgid "" "Exceeding limitations on different file systems can cause decompression " "failed. Such as allowable characters in the directory entries, length of the " @@ -1177,33 +1195,33 @@ msgid "" "files, etc." msgstr "" -#: library/zipfile.rst:990 +#: library/zipfile.rst:1001 msgid "Resources limitations" msgstr "" -#: library/zipfile.rst:992 +#: library/zipfile.rst:1003 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:997 +#: library/zipfile.rst:1008 msgid "Interruption" msgstr "" -#: library/zipfile.rst:999 +#: library/zipfile.rst:1010 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:1003 +#: library/zipfile.rst:1014 msgid "Default behaviors of extraction" msgstr "" -#: library/zipfile.rst:1005 +#: library/zipfile.rst:1016 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 a186f44a..260c2157 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 e04ac2e5..7a6c0579 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,8 +35,8 @@ msgstr "" 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 @@ -64,7 +64,7 @@ msgid "" "suitable for use as a general hash algorithm." msgstr "" -#: library/zlib.rst:136 +#: library/zlib.rst:133 msgid "The result is always unsigned." msgstr "" @@ -72,23 +72,21 @@ msgstr "" 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:57 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:62 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 +94,75 @@ msgid "" "specific header and trailer." msgstr "" -#: library/zlib.rst:68 +#: library/zlib.rst:67 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:71 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:75 msgid "Raises the :exc:`error` exception if any error occurs." msgstr "" -#: library/zlib.rst:78 +#: library/zlib.rst:77 msgid "*level* can now be used as a keyword parameter." msgstr "" -#: library/zlib.rst:81 +#: library/zlib.rst:80 msgid "" "The *wbits* parameter is now available to set window bits and compression " "type." msgstr "" -#: library/zlib.rst:87 +#: library/zlib.rst:86 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:89 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:94 msgid "" "*method* is the compression algorithm. Currently, the only supported value " "is :const:`DEFLATED`." msgstr "" -#: library/zlib.rst:100 +#: library/zlib.rst:97 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:101 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:105 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:109 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 +170,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:114 msgid "Added the *zdict* parameter and keyword argument support." msgstr "" -#: library/zlib.rst:127 +#: library/zlib.rst:124 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 +186,7 @@ msgid "" "suitable for use as a general hash algorithm." msgstr "" -#: library/zlib.rst:141 +#: library/zlib.rst:138 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 +195,44 @@ msgid "" "error occurs." msgstr "" -#: library/zlib.rst:149 +#: library/zlib.rst:146 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:151 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:154 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:157 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:160 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:164 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:168 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 +241,7 @@ msgid "" "included." msgstr "" -#: library/zlib.rst:177 +#: library/zlib.rst:174 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 +249,46 @@ msgid "" "few calls to :c:func:`malloc`." msgstr "" -#: library/zlib.rst:182 +#: library/zlib.rst:179 msgid "*wbits* and *bufsize* can be used as keyword arguments." msgstr "" -#: library/zlib.rst:187 +#: library/zlib.rst:184 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:187 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:191 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:197 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:201 msgid "Added the *zdict* parameter." msgstr "" -#: library/zlib.rst:208 +#: library/zlib.rst:205 msgid "Compression objects support the following methods:" msgstr "" -#: library/zlib.rst:213 +#: library/zlib.rst:210 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 +296,36 @@ msgid "" "input may be kept in internal buffers for later processing." msgstr "" -#: library/zlib.rst:221 +#: library/zlib.rst:218 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:231 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:235 msgid "" "Added :func:`copy.copy` and :func:`copy.deepcopy` support to compression " "objects." msgstr "" -#: library/zlib.rst:243 +#: library/zlib.rst:240 msgid "Decompression objects support the following methods and attributes:" msgstr "" -#: library/zlib.rst:248 +#: library/zlib.rst:245 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 +333,7 @@ msgid "" "contain compressed data, this is ``b\"\"``, an empty bytes object." msgstr "" -#: library/zlib.rst:256 +#: library/zlib.rst:253 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 +342,19 @@ msgid "" "subsequent :meth:`decompress` method call in order to get correct output." msgstr "" -#: library/zlib.rst:265 +#: library/zlib.rst:262 msgid "" "A boolean indicating whether the end of the compressed data stream has been " "reached." msgstr "" -#: library/zlib.rst:268 +#: library/zlib.rst:265 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:273 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 +363,7 @@ msgid "" "buffers for later processing." msgstr "" -#: library/zlib.rst:282 +#: library/zlib.rst:279 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 +374,11 @@ msgid "" "`unconsumed_tail` is empty." msgstr "" -#: library/zlib.rst:289 +#: library/zlib.rst:286 msgid "*max_length* can be used as a keyword argument." msgstr "" -#: library/zlib.rst:295 +#: library/zlib.rst:292 msgid "" "All pending input is processed, and a bytes object containing the remaining " "uncompressed output is returned. After calling :meth:`flush`, the :meth:" @@ -392,78 +386,194 @@ msgid "" "delete the object." msgstr "" -#: library/zlib.rst:300 +#: library/zlib.rst:297 msgid "" "The optional parameter *length* sets the initial size of the output buffer." msgstr "" -#: library/zlib.rst:305 +#: library/zlib.rst:302 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:307 msgid "" "Added :func:`copy.copy` and :func:`copy.deepcopy` support to decompression " "objects." msgstr "" -#: library/zlib.rst:315 +#: library/zlib.rst:312 +msgid "" +"The following constants are available to configure compression and " +"decompression behavior:" +msgstr "" + +#: library/zlib.rst:317 +msgid "The deflate compression method." +msgstr "" + +#: library/zlib.rst:322 +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:329 +msgid "The default memory level for compression objects." +msgstr "" + +#: library/zlib.rst:334 +msgid "The default buffer size for decompression operations." +msgstr "" + +#: library/zlib.rst:339 +msgid "Compression level ``0``; no compression." +msgstr "" + +#: library/zlib.rst:346 +msgid "Compression level ``1``; fastest and produces the least compression." +msgstr "" + +#: library/zlib.rst:351 +msgid "Compression level ``9``; slowest and produces the most compression." +msgstr "" + +#: library/zlib.rst:356 +msgid "" +"Default compression level (``-1``); a compromise between speed and " +"compression. Currently equivalent to compression level ``6``." +msgstr "" + +#: library/zlib.rst:362 +msgid "Default compression strategy, for normal data." +msgstr "" + +#: library/zlib.rst:367 +msgid "Compression strategy for data produced by a filter (or predictor)." +msgstr "" + +#: library/zlib.rst:372 +msgid "Compression strategy that forces Huffman coding only." +msgstr "" + +#: library/zlib.rst:377 +msgid "" +"Compression strategy that limits match distances to one (run-length " +"encoding)." +msgstr "" + +#: library/zlib.rst:379 +msgid "" +"This constant is only available if Python was compiled with zlib 1.2.0.1 or " +"greater." +msgstr "" + +#: library/zlib.rst:387 +msgid "Compression strategy that prevents the use of dynamic Huffman codes." +msgstr "" + +#: library/zlib.rst:426 +msgid "" +"This constant is only available if Python was compiled with zlib 1.2.2.2 or " +"greater." +msgstr "" + +#: library/zlib.rst:397 +msgid "Flush mode ``0``. No special flushing behavior." +msgstr "" + +#: library/zlib.rst:404 +msgid "Flush mode ``1``. Flush as much output as possible." +msgstr "" + +#: library/zlib.rst:409 +msgid "" +"Flush mode ``2``. All output is flushed and the output is aligned to a byte " +"boundary." +msgstr "" + +#: library/zlib.rst:414 +msgid "" +"Flush mode ``3``. All output is flushed and the compression state is reset." +msgstr "" + +#: library/zlib.rst:419 +msgid "" +"Flush mode ``4``. All pending input is processed, no more input is expected." +msgstr "" + +#: library/zlib.rst:424 +msgid "Flush mode ``5``. A deflate block is completed and emitted." +msgstr "" + +#: library/zlib.rst:434 +msgid "" +"Flush mode ``6``, for inflate operations. Instructs inflate to return when " +"it gets to the next deflate block boundary." +msgstr "" + +#: library/zlib.rst:437 +msgid "" +"This constant is only available if Python was compiled with zlib 1.2.3.4 or " +"greater." +msgstr "" + +#: library/zlib.rst:443 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:449 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:456 msgid "" "The version string of the zlib library actually loaded by the interpreter." msgstr "" -#: library/zlib.rst:335 +#: library/zlib.rst:463 msgid "Module :mod:`gzip`" msgstr "" -#: library/zlib.rst:336 +#: library/zlib.rst:464 msgid "Reading and writing :program:`gzip`\\ -format files." msgstr "" -#: library/zlib.rst:338 -msgid "http://www.zlib.net" +#: library/zlib.rst:466 +msgid "https://www.zlib.net" msgstr "" -#: library/zlib.rst:339 +#: library/zlib.rst:467 msgid "The zlib library home page." msgstr "" -#: library/zlib.rst:341 -msgid "http://www.zlib.net/manual.html" +#: library/zlib.rst:469 +msgid "https://www.zlib.net/manual.html" msgstr "" -#: library/zlib.rst:342 +#: library/zlib.rst:470 msgid "" "The zlib manual explains the semantics and usage of the library's many " "functions." msgstr "" -#: library/zlib.rst:345 +#: library/zlib.rst:473 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:120 msgid "Cyclic Redundancy Check" msgstr "" -#: library/zlib.rst:123 +#: library/zlib.rst:120 msgid "checksum" msgstr "" diff --git a/library/zoneinfo.po b/library/zoneinfo.po index aa5f9b0c..087df8c3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 19321f79..7aaaf26e 100644 --- a/license.po +++ b/license.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" -"PO-Revision-Date: 2024-04-24 22:38+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -289,7 +289,6 @@ msgid "PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2" msgstr "PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2" #: license.rst:98 -#, fuzzy msgid "" "1. This LICENSE AGREEMENT is between the Python Software Foundation " "(\"PSF\"), and\n" @@ -367,7 +366,7 @@ msgstr "" " distribute, and otherwise use Python alone or in any derivative\n" " version, provided, however, that PSF's License Agreement and PSF's notice " "of\n" -" copyright, i.e., \"Copyright © 2001-2023 Python Software Foundation; All " +" copyright, i.e., \"Copyright © 2001-2024 Python Software Foundation; All " "Rights\n" " Reserved\" are retained in Python alone or in any derivative version\n" " prepared by Licensee.\n" @@ -1207,9 +1206,8 @@ msgid "UUencode and UUdecode functions" msgstr "Συναρτήσεις UUencode και UUdecode" #: license.rst:482 -#, fuzzy msgid "The ``uu`` codec contains the following notice::" -msgstr "Η ενότητα :mod:`uu` περιέχει την παρακάτω ειδοποίηση::" +msgstr "Η κωδικοποίηση ``uu`` περιέχει την παρακάτω ειδοποίηση::" #: license.rst:484 msgid "" @@ -1571,7 +1569,6 @@ msgid "OpenSSL" msgstr "OpenSSL" #: license.rst:661 -#, fuzzy msgid "" "The modules :mod:`hashlib`, :mod:`posix` and :mod:`ssl` use the OpenSSL " "library for added performance if made available by the operating system. " @@ -1580,13 +1577,13 @@ msgid "" "For the OpenSSL 3.0 release, and later releases derived from that, the " "Apache License v2 applies::" msgstr "" -"Οι μονάδες :mod:`hashlib`, :mod:`posix`, :mod:`ssl`, :mod:`crypt` " -"χρησιμοποιούν την βιβλιοθήκη OpenSSL για επιπλέον απόδοση, εάν διατίθενται " -"από το λειτουργικό σύστημα. Επιπλέον, τα προγράμματα εγκατάστασης για την " -"Python για Windows και macOS, ενδέχεται να περιλαμβάνουν ένα αντίγραφο των " -"βιβλιοθηκών OpenSSL, επομένως συμπεριλαμβάνουμε ένα αντίγραφο της άδειας " -"OpenSSL εδώ. Για την έκδοση OpenSSL 3.0 και για νεότερες εκδόσεις που " -"προέρχονται από αυτή, ισχύει η άδεια Apache v2::" +"Τα modules :mod:`hashlib`, :mod:`posix` και :mod:`ssl` χρησιμοποιούν την " +"βιβλιοθήκη OpenSSL για επιπλέον απόδοση, εάν διατίθενται από το λειτουργικό " +"σύστημα. Επιπλέον, τα προγράμματα εγκατάστασης για την Python για Windows " +"και macOS, ενδέχεται να περιλαμβάνουν ένα αντίγραφο των βιβλιοθηκών OpenSSL, " +"επομένως συμπεριλαμβάνουμε ένα αντίγραφο της άδειας OpenSSL εδώ. Για την " +"έκδοση OpenSSL 3.0 και για νεότερες εκδόσεις που προέρχονται από αυτή, " +"ισχύει η άδεια Apache v2::" #: license.rst:669 msgid "" @@ -2349,14 +2346,13 @@ msgstr "" #: license.rst:1051 msgid "mimalloc" -msgstr "" +msgstr "mimalloc" #: license.rst:1053 msgid "MIT License::" -msgstr "" +msgstr "Άδεια MIT::" #: license.rst:1055 -#, fuzzy msgid "" "Copyright (c) 2018-2021 Microsoft Corporation, Daan Leijen\n" "\n" @@ -2385,26 +2381,32 @@ msgid "" "THE\n" "SOFTWARE." msgstr "" -"Copyright (c) 2001-2006 Twisted Matrix Laboratories.\n" +"Copyright (c) 2018-2021 Microsoft Corporation, Daan Leijen\n" "\n" -"Permission is hereby granted, free of charge, to any person obtaining\n" -"a copy of this software and associated documentation files (the\n" -"\"Software\"), to deal in the Software without restriction, including\n" -"without limitation the rights to use, copy, modify, merge, publish,\n" -"distribute, sublicense, and/or sell copies of the Software, and to\n" -"permit persons to whom the Software is furnished to do so, subject to\n" -"the following conditions:\n" +"Permission is hereby granted, free of charge, to any person obtaining a " +"copy\n" +"of this software and associated documentation files (the \"Software\"), to " +"deal\n" +"in the Software without restriction, including without limitation the " +"rights\n" +"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" +"copies of the Software, and to permit persons to whom the Software is\n" +"furnished to do so, subject to the following conditions:\n" "\n" -"The above copyright notice and this permission notice shall be\n" -"included in all copies or substantial portions of the Software.\n" +"The above copyright notice and this permission notice shall be included in " +"all\n" +"copies or substantial portions of the Software.\n" "\n" -"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n" -"EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n" -"MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n" -"NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n" -"LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n" -"OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n" -"WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE." +"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS " +"OR\n" +"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" +"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" +"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" +"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING " +"FROM,\n" +"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN " +"THE\n" +"SOFTWARE." #: license.rst:1077 msgid "asyncio" @@ -2466,7 +2468,7 @@ msgstr "" #: license.rst:1106 msgid "Global Unbounded Sequences (GUS)" -msgstr "" +msgstr "Παγκόσμιες Απεριόριστες Ακολουθίες (GUS)" #: license.rst:1108 msgid "" @@ -2475,9 +2477,12 @@ msgid "" "com/freebsd/freebsd-src/blob/main/sys/kern/subr_smr.c>`_. The file is " "distributed under the 2-Clause BSD License::" msgstr "" +"Το αρχείο :file:`Python/qsbr.c` είναι προσαρμοσμένο από το σύστημα ασφαλούς " +"αποκατάστασης μνήμης \"Global Unbounded Sequences\" στο FreeBSD στο " +"`subr_smr.c `_. Το αρχείο διανέμεται υπό την άδεια 2-Clause BSD::" #: license.rst:1113 -#, fuzzy msgid "" "Copyright (c) 2019,2020 Jeffrey Roberson \n" "\n" @@ -2502,30 +2507,28 @@ msgid "" "(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n" "THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." msgstr "" -"Copyright (c) 2008-2020 Stefan Krah. All rights reserved.\n" +"Copyright (c) 2019,2020 Jeffrey Roberson \n" "\n" "Redistribution and use in source and binary forms, with or without\n" "modification, are permitted provided that the following conditions\n" "are met:\n" -"\n" "1. Redistributions of source code must retain the above copyright\n" -" notice, this list of conditions and the following disclaimer.\n" -"\n" +" notice unmodified, this list of conditions, and the following\n" +" disclaimer.\n" "2. Redistributions in binary form must reproduce the above copyright\n" " notice, this list of conditions and the following disclaimer in the\n" " documentation and/or other materials provided with the distribution.\n" "\n" -"THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS \"AS IS\" AND\n" -"ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n" -"IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n" -"ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n" -"FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n" -"DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n" -"OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n" -"HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n" -"LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n" -"OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n" -"SUCH DAMAGE." +"THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR\n" +"IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n" +"OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n" +"IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n" +"INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n" +"NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n" +"DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n" +"THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n" +"(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n" +"THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." #~ msgid "Audioop" #~ msgstr "Audioop" diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index f2b74b6f..63d3b881 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -331,19 +331,40 @@ msgstr "" #: reference/compound_stmts.rst:335 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:345 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:355 +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:359 +msgid "" ">>> try:\n" "... raise ExceptionGroup(\"eg\",\n" "... [ValueError(1), TypeError(2), OSError(3), OSError(4)])\n" @@ -355,29 +376,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:363 +#: reference/compound_stmts.rst:378 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:369 -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:373 +#: reference/compound_stmts.rst:383 msgid "" ">>> try:\n" "... raise BlockingIOError\n" @@ -387,25 +404,17 @@ msgid "" "ExceptionGroup('', (BlockingIOError()))" msgstr "" -#: reference/compound_stmts.rst:380 -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:384 +#: reference/compound_stmts.rst:390 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:399 +#: reference/compound_stmts.rst:403 msgid ":keyword:`!else` clause" msgstr "" -#: reference/compound_stmts.rst:401 +#: reference/compound_stmts.rst:405 msgid "" "The optional :keyword:`!else` clause is executed if the control flow leaves " "the :keyword:`try` suite, no exception was raised, and no :keyword:" @@ -414,25 +423,25 @@ msgid "" "keyword:`except` clauses." msgstr "" -#: reference/compound_stmts.rst:413 +#: reference/compound_stmts.rst:417 msgid ":keyword:`!finally` clause" msgstr "" -#: reference/compound_stmts.rst:415 +#: reference/compound_stmts.rst:419 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::" +"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::" msgstr "" -#: reference/compound_stmts.rst:425 +#: reference/compound_stmts.rst:431 msgid "" ">>> def f():\n" "... try:\n" @@ -444,13 +453,13 @@ msgid "" "42" msgstr "" -#: reference/compound_stmts.rst:434 +#: reference/compound_stmts.rst:440 msgid "" "The exception information is not available to the program during execution " "of the :keyword:`!finally` clause." msgstr "" -#: reference/compound_stmts.rst:442 +#: reference/compound_stmts.rst:448 msgid "" "When a :keyword:`return`, :keyword:`break` or :keyword:`continue` statement " "is executed in the :keyword:`try` suite of a :keyword:`!try`...\\ :keyword:`!" @@ -458,7 +467,7 @@ msgid "" "way out.'" msgstr "" -#: reference/compound_stmts.rst:446 +#: reference/compound_stmts.rst:452 msgid "" "The return value of a function is determined by the last :keyword:`return` " "statement executed. Since the :keyword:`!finally` clause always executes, " @@ -466,7 +475,7 @@ msgid "" "will always be the last one executed::" msgstr "" -#: reference/compound_stmts.rst:451 +#: reference/compound_stmts.rst:457 msgid "" ">>> def foo():\n" "... try:\n" @@ -478,17 +487,17 @@ msgid "" "'finally'" msgstr "" -#: reference/compound_stmts.rst:460 +#: reference/compound_stmts.rst:466 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:469 +#: reference/compound_stmts.rst:475 msgid "The :keyword:`!with` statement" msgstr "" -#: reference/compound_stmts.rst:478 +#: reference/compound_stmts.rst:484 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`). " @@ -496,38 +505,38 @@ msgid "" "`finally` usage patterns to be encapsulated for convenient reuse." msgstr "" -#: reference/compound_stmts.rst:488 +#: reference/compound_stmts.rst:494 msgid "" "The execution of the :keyword:`with` statement with one \"item\" proceeds as " "follows:" msgstr "" -#: reference/compound_stmts.rst:490 +#: reference/compound_stmts.rst:496 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:493 +#: reference/compound_stmts.rst:499 msgid "" "The context manager's :meth:`~object.__enter__` is loaded for later use." msgstr "" -#: reference/compound_stmts.rst:495 +#: reference/compound_stmts.rst:501 msgid "The context manager's :meth:`~object.__exit__` is loaded for later use." msgstr "" -#: reference/compound_stmts.rst:497 +#: reference/compound_stmts.rst:503 msgid "The context manager's :meth:`~object.__enter__` method is invoked." msgstr "" -#: reference/compound_stmts.rst:499 +#: reference/compound_stmts.rst:505 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:504 +#: reference/compound_stmts.rst:510 msgid "" "The :keyword:`with` statement guarantees that if the :meth:`~object." "__enter__` method returns without an error, then :meth:`~object.__exit__` " @@ -536,11 +545,11 @@ msgid "" "suite would be. See step 7 below." msgstr "" -#: reference/compound_stmts.rst:510 +#: reference/compound_stmts.rst:516 msgid "The suite is executed." msgstr "" -#: reference/compound_stmts.rst:512 +#: reference/compound_stmts.rst:518 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 " @@ -548,7 +557,7 @@ msgid "" "`None` arguments are supplied." msgstr "" -#: reference/compound_stmts.rst:517 +#: reference/compound_stmts.rst:523 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 " @@ -556,30 +565,30 @@ msgid "" "with the statement following the :keyword:`with` statement." msgstr "" -#: reference/compound_stmts.rst:522 +#: reference/compound_stmts.rst:528 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:526 reference/compound_stmts.rst:1549 -#: reference/compound_stmts.rst:1590 +#: reference/compound_stmts.rst:532 reference/compound_stmts.rst:1556 +#: reference/compound_stmts.rst:1597 msgid "The following code::" msgstr "" -#: reference/compound_stmts.rst:528 +#: reference/compound_stmts.rst:534 msgid "" "with EXPRESSION as TARGET:\n" " SUITE" msgstr "" -#: reference/compound_stmts.rst:531 reference/compound_stmts.rst:556 -#: reference/compound_stmts.rst:1595 +#: reference/compound_stmts.rst:537 reference/compound_stmts.rst:562 +#: reference/compound_stmts.rst:1602 msgid "is semantically equivalent to::" msgstr "" -#: reference/compound_stmts.rst:533 +#: reference/compound_stmts.rst:539 msgid "" "manager = (EXPRESSION)\n" "enter = type(manager).__enter__\n" @@ -599,32 +608,32 @@ msgid "" " exit(manager, None, None, None)" msgstr "" -#: reference/compound_stmts.rst:550 +#: reference/compound_stmts.rst:556 msgid "" "With more than one item, the context managers are processed as if multiple :" "keyword:`with` statements were nested::" msgstr "" -#: reference/compound_stmts.rst:553 +#: reference/compound_stmts.rst:559 msgid "" "with A() as a, B() as b:\n" " SUITE" msgstr "" -#: reference/compound_stmts.rst:558 +#: reference/compound_stmts.rst:564 msgid "" "with A() as a:\n" " with B() as b:\n" " SUITE" msgstr "" -#: reference/compound_stmts.rst:562 +#: reference/compound_stmts.rst:568 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:565 +#: reference/compound_stmts.rst:571 msgid "" "with (\n" " A() as a,\n" @@ -633,86 +642,86 @@ msgid "" " SUITE" msgstr "" -#: reference/compound_stmts.rst:571 +#: reference/compound_stmts.rst:577 msgid "Support for multiple context expressions." msgstr "" -#: reference/compound_stmts.rst:574 +#: reference/compound_stmts.rst:580 msgid "" "Support for using grouping parentheses to break the statement in multiple " "lines." msgstr "" -#: reference/compound_stmts.rst:579 +#: reference/compound_stmts.rst:585 msgid ":pep:`343` - The \"with\" statement" msgstr "" -#: reference/compound_stmts.rst:580 +#: reference/compound_stmts.rst:586 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." msgstr "" -#: reference/compound_stmts.rst:586 +#: reference/compound_stmts.rst:593 msgid "The :keyword:`!match` statement" msgstr "" -#: reference/compound_stmts.rst:600 +#: reference/compound_stmts.rst:607 msgid "The match statement is used for pattern matching. Syntax:" msgstr "" -#: reference/compound_stmts.rst:609 +#: reference/compound_stmts.rst:616 msgid "" "This section uses single quotes to denote :ref:`soft keywords `." msgstr "" -#: reference/compound_stmts.rst:612 +#: reference/compound_stmts.rst:619 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:616 +#: reference/compound_stmts.rst:623 msgid "A match success or failure (also termed a pattern success or failure)." msgstr "" -#: reference/compound_stmts.rst:618 +#: reference/compound_stmts.rst:625 msgid "" "Possible binding of matched values to a name. The prerequisites for this " "are further discussed below." msgstr "" -#: reference/compound_stmts.rst:621 +#: reference/compound_stmts.rst:628 msgid "" "The ``match`` and ``case`` keywords are :ref:`soft keywords `." msgstr "" -#: reference/compound_stmts.rst:625 reference/compound_stmts.rst:1182 +#: reference/compound_stmts.rst:632 reference/compound_stmts.rst:1189 msgid ":pep:`634` -- Structural Pattern Matching: Specification" msgstr "" -#: reference/compound_stmts.rst:626 reference/compound_stmts.rst:1183 +#: reference/compound_stmts.rst:633 reference/compound_stmts.rst:1190 msgid ":pep:`636` -- Structural Pattern Matching: Tutorial" msgstr "" -#: reference/compound_stmts.rst:630 +#: reference/compound_stmts.rst:637 msgid "Overview" msgstr "" -#: reference/compound_stmts.rst:632 +#: reference/compound_stmts.rst:639 msgid "Here's an overview of the logical flow of a match statement:" msgstr "" -#: reference/compound_stmts.rst:635 +#: reference/compound_stmts.rst:642 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:639 +#: reference/compound_stmts.rst:646 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 " @@ -722,7 +731,7 @@ msgid "" "outlive the executed block and can be used after the match statement**." msgstr "" -#: reference/compound_stmts.rst:648 +#: reference/compound_stmts.rst:655 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 " @@ -731,38 +740,38 @@ msgid "" "made to allow different implementations to add optimizations." msgstr "" -#: reference/compound_stmts.rst:655 +#: reference/compound_stmts.rst:662 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:658 +#: reference/compound_stmts.rst:665 msgid "" "If the guard evaluates as true or is missing, the ``block`` inside " "``case_block`` is executed." msgstr "" -#: reference/compound_stmts.rst:661 +#: reference/compound_stmts.rst:668 msgid "Otherwise, the next ``case_block`` is attempted as described above." msgstr "" -#: reference/compound_stmts.rst:663 +#: reference/compound_stmts.rst:670 msgid "If there are no further case blocks, the match statement is completed." msgstr "" -#: reference/compound_stmts.rst:667 +#: reference/compound_stmts.rst:674 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:671 +#: reference/compound_stmts.rst:678 msgid "A sample match statement::" msgstr "" -#: reference/compound_stmts.rst:673 +#: reference/compound_stmts.rst:680 msgid "" ">>> flag = False\n" ">>> match (100, 200):\n" @@ -778,56 +787,56 @@ msgid "" "Case 3, y: 200" msgstr "" -#: reference/compound_stmts.rst:687 +#: reference/compound_stmts.rst:694 msgid "" "In this case, ``if flag`` is a guard. Read more about that in the next " "section." msgstr "" -#: reference/compound_stmts.rst:690 +#: reference/compound_stmts.rst:697 msgid "Guards" msgstr "" -#: reference/compound_stmts.rst:697 +#: reference/compound_stmts.rst:704 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:702 +#: reference/compound_stmts.rst:709 msgid "The logical flow of a ``case`` block with a ``guard`` follows:" msgstr "" -#: reference/compound_stmts.rst:704 +#: reference/compound_stmts.rst:711 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:708 +#: reference/compound_stmts.rst:715 msgid "If the pattern succeeded, evaluate the ``guard``." msgstr "" -#: reference/compound_stmts.rst:710 +#: reference/compound_stmts.rst:717 msgid "" "If the ``guard`` condition evaluates as true, the case block is selected." msgstr "" -#: reference/compound_stmts.rst:713 +#: reference/compound_stmts.rst:720 msgid "" "If the ``guard`` condition evaluates as false, the case block is not " "selected." msgstr "" -#: reference/compound_stmts.rst:716 +#: reference/compound_stmts.rst:723 msgid "" "If the ``guard`` raises an exception during evaluation, the exception " "bubbles up." msgstr "" -#: reference/compound_stmts.rst:719 +#: reference/compound_stmts.rst:726 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 " @@ -836,17 +845,17 @@ msgid "" "block is selected." msgstr "" -#: reference/compound_stmts.rst:729 +#: reference/compound_stmts.rst:736 msgid "Irrefutable Case Blocks" msgstr "" -#: reference/compound_stmts.rst:733 +#: reference/compound_stmts.rst:740 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:736 +#: reference/compound_stmts.rst:743 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 " @@ -854,47 +863,47 @@ msgid "" "irrefutable:" msgstr "" -#: reference/compound_stmts.rst:741 +#: reference/compound_stmts.rst:748 msgid ":ref:`as-patterns` whose left-hand side is irrefutable" msgstr "" -#: reference/compound_stmts.rst:743 +#: reference/compound_stmts.rst:750 msgid ":ref:`or-patterns` containing at least one irrefutable pattern" msgstr "" -#: reference/compound_stmts.rst:745 +#: reference/compound_stmts.rst:752 msgid ":ref:`capture-patterns`" msgstr "" -#: reference/compound_stmts.rst:747 +#: reference/compound_stmts.rst:754 msgid ":ref:`wildcard-patterns`" msgstr "" -#: reference/compound_stmts.rst:749 +#: reference/compound_stmts.rst:756 msgid "parenthesized irrefutable patterns" msgstr "" -#: reference/compound_stmts.rst:753 +#: reference/compound_stmts.rst:760 msgid "Patterns" msgstr "" -#: reference/compound_stmts.rst:760 +#: reference/compound_stmts.rst:767 msgid "This section uses grammar notations beyond standard EBNF:" msgstr "" -#: reference/compound_stmts.rst:762 +#: reference/compound_stmts.rst:769 msgid "the notation ``SEP.RULE+`` is shorthand for ``RULE (SEP RULE)*``" msgstr "" -#: reference/compound_stmts.rst:764 +#: reference/compound_stmts.rst:771 msgid "the notation ``!RULE`` is shorthand for a negative lookahead assertion" msgstr "" -#: reference/compound_stmts.rst:767 +#: reference/compound_stmts.rst:774 msgid "The top-level syntax for ``patterns`` is:" msgstr "" -#: reference/compound_stmts.rst:781 +#: reference/compound_stmts.rst:788 msgid "" "The descriptions below will include a description \"in simple terms\" of " "what a pattern does for illustration purposes (credits to Raymond Hettinger " @@ -904,70 +913,70 @@ msgid "" "forms." msgstr "" -#: reference/compound_stmts.rst:791 +#: reference/compound_stmts.rst:798 msgid "OR Patterns" msgstr "" -#: reference/compound_stmts.rst:793 +#: reference/compound_stmts.rst:800 msgid "" "An OR pattern is two or more patterns separated by vertical bars ``|``. " "Syntax:" msgstr "" -#: reference/compound_stmts.rst:799 +#: reference/compound_stmts.rst:806 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:802 +#: reference/compound_stmts.rst:809 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:806 +#: reference/compound_stmts.rst:813 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:812 +#: reference/compound_stmts.rst:819 msgid "AS Patterns" msgstr "" -#: reference/compound_stmts.rst:814 +#: reference/compound_stmts.rst:821 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:820 +#: reference/compound_stmts.rst:827 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:824 +#: reference/compound_stmts.rst:831 msgid "" "In simple terms ``P as NAME`` will match with ``P``, and on success it will " "set ``NAME = ``." msgstr "" -#: reference/compound_stmts.rst:831 +#: reference/compound_stmts.rst:838 msgid "Literal Patterns" msgstr "" -#: reference/compound_stmts.rst:833 +#: reference/compound_stmts.rst:840 msgid "" "A literal pattern corresponds to most :ref:`literals ` in Python. " "Syntax:" msgstr "" -#: reference/compound_stmts.rst:846 +#: reference/compound_stmts.rst:853 msgid "" "The rule ``strings`` and the token ``NUMBER`` are defined in the :doc:" "`standard Python grammar <./grammar>`. Triple-quoted strings are " @@ -975,42 +984,42 @@ msgid "" "are not supported." msgstr "" -#: reference/compound_stmts.rst:851 +#: reference/compound_stmts.rst:858 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:855 +#: reference/compound_stmts.rst:862 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:861 +#: reference/compound_stmts.rst:868 msgid "Capture Patterns" msgstr "" -#: reference/compound_stmts.rst:863 +#: reference/compound_stmts.rst:870 msgid "A capture pattern binds the subject value to a name. Syntax:" msgstr "" -#: reference/compound_stmts.rst:869 +#: reference/compound_stmts.rst:876 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:873 +#: reference/compound_stmts.rst:880 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:876 +#: reference/compound_stmts.rst:883 msgid "" "Capture patterns always succeed. The binding follows scoping rules " "established by the assignment expression operator in :pep:`572`; the name " @@ -1018,55 +1027,55 @@ msgid "" "there's an applicable :keyword:`global` or :keyword:`nonlocal` statement." msgstr "" -#: reference/compound_stmts.rst:881 +#: reference/compound_stmts.rst:888 msgid "" "In simple terms ``NAME`` will always succeed and it will set ``NAME = " "``." msgstr "" -#: reference/compound_stmts.rst:886 +#: reference/compound_stmts.rst:893 msgid "Wildcard Patterns" msgstr "" -#: reference/compound_stmts.rst:888 +#: reference/compound_stmts.rst:895 msgid "" "A wildcard pattern always succeeds (matches anything) and binds no name. " "Syntax:" msgstr "" -#: reference/compound_stmts.rst:894 +#: reference/compound_stmts.rst:901 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:898 +#: reference/compound_stmts.rst:905 msgid "In simple terms, ``_`` will always succeed." msgstr "" -#: reference/compound_stmts.rst:903 +#: reference/compound_stmts.rst:910 msgid "Value Patterns" msgstr "" -#: reference/compound_stmts.rst:905 +#: reference/compound_stmts.rst:912 msgid "A value pattern represents a named value in Python. Syntax:" msgstr "" -#: reference/compound_stmts.rst:913 +#: reference/compound_stmts.rst:920 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:918 +#: reference/compound_stmts.rst:925 msgid "" "In simple terms ``NAME1.NAME2`` will succeed only if `` == NAME1." "NAME2``" msgstr "" -#: reference/compound_stmts.rst:922 +#: reference/compound_stmts.rst:929 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 " @@ -1074,44 +1083,44 @@ msgid "" "given match statement." msgstr "" -#: reference/compound_stmts.rst:930 +#: reference/compound_stmts.rst:937 msgid "Group Patterns" msgstr "" -#: reference/compound_stmts.rst:932 +#: reference/compound_stmts.rst:939 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:939 +#: reference/compound_stmts.rst:946 msgid "In simple terms ``(P)`` has the same effect as ``P``." msgstr "" -#: reference/compound_stmts.rst:944 +#: reference/compound_stmts.rst:951 msgid "Sequence Patterns" msgstr "" -#: reference/compound_stmts.rst:946 +#: reference/compound_stmts.rst:953 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:957 +#: reference/compound_stmts.rst:964 msgid "" "There is no difference if parentheses or square brackets are used for " "sequence patterns (i.e. ``(...)`` vs ``[...]`` )." msgstr "" -#: reference/compound_stmts.rst:961 +#: reference/compound_stmts.rst:968 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:966 +#: reference/compound_stmts.rst:973 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 " @@ -1119,40 +1128,40 @@ msgid "" "variable-length sequence pattern." msgstr "" -#: reference/compound_stmts.rst:971 +#: reference/compound_stmts.rst:978 msgid "" "The following is the logical flow for matching a sequence pattern against a " "subject value:" msgstr "" -#: reference/compound_stmts.rst:974 +#: reference/compound_stmts.rst:981 msgid "" "If the subject value is not a sequence [#]_, the sequence pattern fails." msgstr "" -#: reference/compound_stmts.rst:977 +#: reference/compound_stmts.rst:984 msgid "" "If the subject value is an instance of ``str``, ``bytes`` or ``bytearray`` " "the sequence pattern fails." msgstr "" -#: reference/compound_stmts.rst:980 +#: reference/compound_stmts.rst:987 msgid "" "The subsequent steps depend on whether the sequence pattern is fixed or " "variable-length." msgstr "" -#: reference/compound_stmts.rst:983 +#: reference/compound_stmts.rst:990 msgid "If the sequence pattern is fixed-length:" msgstr "" -#: reference/compound_stmts.rst:985 +#: reference/compound_stmts.rst:992 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:988 +#: reference/compound_stmts.rst:995 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 " @@ -1160,118 +1169,118 @@ msgid "" "corresponding item, the sequence pattern succeeds." msgstr "" -#: reference/compound_stmts.rst:993 +#: reference/compound_stmts.rst:1000 msgid "Otherwise, if the sequence pattern is variable-length:" msgstr "" -#: reference/compound_stmts.rst:995 +#: reference/compound_stmts.rst:1002 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:998 +#: reference/compound_stmts.rst:1005 msgid "" "The leading non-star subpatterns are matched to their corresponding items as " "for fixed-length sequences." msgstr "" -#: reference/compound_stmts.rst:1001 +#: reference/compound_stmts.rst:1008 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:1005 +#: reference/compound_stmts.rst:1012 msgid "" "Remaining non-star subpatterns are matched to their corresponding subject " "items, as for a fixed-length sequence." msgstr "" -#: reference/compound_stmts.rst:1008 +#: reference/compound_stmts.rst:1015 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 `." msgstr "" -#: reference/compound_stmts.rst:1014 +#: reference/compound_stmts.rst:1021 msgid "" "In simple terms ``[P1, P2, P3,`` ... ``, P]`` matches only if all the " "following happens:" msgstr "" -#: reference/compound_stmts.rst:1017 +#: reference/compound_stmts.rst:1024 msgid "check ```` is a sequence" msgstr "" -#: reference/compound_stmts.rst:1018 +#: reference/compound_stmts.rst:1025 msgid "``len(subject) == ``" msgstr "" -#: reference/compound_stmts.rst:1019 +#: reference/compound_stmts.rst:1026 msgid "" "``P1`` matches ``[0]`` (note that this match can also bind names)" msgstr "" -#: reference/compound_stmts.rst:1020 +#: reference/compound_stmts.rst:1027 msgid "" "``P2`` matches ``[1]`` (note that this match can also bind names)" msgstr "" -#: reference/compound_stmts.rst:1021 +#: reference/compound_stmts.rst:1028 msgid "... and so on for the corresponding pattern/element." msgstr "" -#: reference/compound_stmts.rst:1026 +#: reference/compound_stmts.rst:1033 msgid "Mapping Patterns" msgstr "" -#: reference/compound_stmts.rst:1028 +#: reference/compound_stmts.rst:1035 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:1039 +#: reference/compound_stmts.rst:1046 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:1042 +#: reference/compound_stmts.rst:1049 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:1046 +#: reference/compound_stmts.rst:1053 msgid "" "The following is the logical flow for matching a mapping pattern against a " "subject value:" msgstr "" -#: reference/compound_stmts.rst:1049 +#: reference/compound_stmts.rst:1056 msgid "If the subject value is not a mapping [#]_,the mapping pattern fails." msgstr "" -#: reference/compound_stmts.rst:1051 +#: reference/compound_stmts.rst:1058 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:1055 +#: reference/compound_stmts.rst:1062 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:1059 +#: reference/compound_stmts.rst:1066 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 " @@ -1279,254 +1288,254 @@ msgid "" "`~object.__getitem__`." msgstr "" -#: reference/compound_stmts.rst:1064 +#: reference/compound_stmts.rst:1071 msgid "" "In simple terms ``{KEY1: P1, KEY2: P2, ... }`` matches only if all the " "following happens:" msgstr "" -#: reference/compound_stmts.rst:1067 +#: reference/compound_stmts.rst:1074 msgid "check ```` is a mapping" msgstr "" -#: reference/compound_stmts.rst:1068 +#: reference/compound_stmts.rst:1075 msgid "``KEY1 in ``" msgstr "" -#: reference/compound_stmts.rst:1069 +#: reference/compound_stmts.rst:1076 msgid "``P1`` matches ``[KEY1]``" msgstr "" -#: reference/compound_stmts.rst:1070 +#: reference/compound_stmts.rst:1077 msgid "... and so on for the corresponding KEY/pattern pair." msgstr "" -#: reference/compound_stmts.rst:1076 +#: reference/compound_stmts.rst:1083 msgid "Class Patterns" msgstr "" -#: reference/compound_stmts.rst:1078 +#: reference/compound_stmts.rst:1085 msgid "" "A class pattern represents a class and its positional and keyword arguments " "(if any). Syntax:" msgstr "" -#: reference/compound_stmts.rst:1089 +#: reference/compound_stmts.rst:1096 msgid "The same keyword should not be repeated in class patterns." msgstr "" -#: reference/compound_stmts.rst:1091 +#: reference/compound_stmts.rst:1098 msgid "" "The following is the logical flow for matching a class pattern against a " "subject value:" msgstr "" -#: reference/compound_stmts.rst:1094 +#: reference/compound_stmts.rst:1101 msgid "" "If ``name_or_attr`` is not an instance of the builtin :class:`type` , raise :" "exc:`TypeError`." msgstr "" -#: reference/compound_stmts.rst:1097 +#: reference/compound_stmts.rst:1104 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:1100 +#: reference/compound_stmts.rst:1107 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:1104 +#: reference/compound_stmts.rst:1111 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:1108 +#: reference/compound_stmts.rst:1115 msgid "" "If only keyword patterns are present, they are processed as follows, one by " "one:" msgstr "" -#: reference/compound_stmts.rst:1111 +#: reference/compound_stmts.rst:1118 msgid "I. The keyword is looked up as an attribute on the subject." msgstr "" -#: reference/compound_stmts.rst:1113 +#: reference/compound_stmts.rst:1120 msgid "" "If this raises an exception other than :exc:`AttributeError`, the exception " "bubbles up." msgstr "" -#: reference/compound_stmts.rst:1116 +#: reference/compound_stmts.rst:1123 msgid "If this raises :exc:`AttributeError`, the class pattern has failed." msgstr "" -#: reference/compound_stmts.rst:1118 +#: reference/compound_stmts.rst:1125 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:1123 +#: reference/compound_stmts.rst:1130 msgid "II. If all keyword patterns succeed, the class pattern succeeds." msgstr "" -#: reference/compound_stmts.rst:1125 +#: reference/compound_stmts.rst:1132 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:1129 +#: reference/compound_stmts.rst:1136 msgid "" "I. The equivalent of ``getattr(cls, \"__match_args__\", ())`` is called." msgstr "" -#: reference/compound_stmts.rst:1131 +#: reference/compound_stmts.rst:1138 msgid "If this raises an exception, the exception bubbles up." msgstr "" -#: reference/compound_stmts.rst:1133 +#: reference/compound_stmts.rst:1140 msgid "" "If the returned value is not a tuple, the conversion fails and :exc:" "`TypeError` is raised." msgstr "" -#: reference/compound_stmts.rst:1136 +#: reference/compound_stmts.rst:1143 msgid "" "If there are more positional patterns than ``len(cls.__match_args__)``, :exc:" "`TypeError` is raised." msgstr "" -#: reference/compound_stmts.rst:1139 +#: reference/compound_stmts.rst:1146 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:1143 +#: reference/compound_stmts.rst:1150 msgid "If there are duplicate keywords, :exc:`TypeError` is raised." msgstr "" -#: reference/compound_stmts.rst:1145 +#: reference/compound_stmts.rst:1152 msgid ":ref:`class-pattern-matching`" msgstr "" -#: reference/compound_stmts.rst:1147 +#: reference/compound_stmts.rst:1154 msgid "" "II. Once all positional patterns have been converted to keyword patterns," msgstr "" -#: reference/compound_stmts.rst:1148 +#: reference/compound_stmts.rst:1155 msgid "the match proceeds as if there were only keyword patterns." msgstr "" -#: reference/compound_stmts.rst:1150 +#: reference/compound_stmts.rst:1157 msgid "" "For the following built-in types the handling of positional subpatterns is " "different:" msgstr "" -#: reference/compound_stmts.rst:1153 +#: reference/compound_stmts.rst:1160 msgid ":class:`bool`" msgstr "" -#: reference/compound_stmts.rst:1154 +#: reference/compound_stmts.rst:1161 msgid ":class:`bytearray`" msgstr "" -#: reference/compound_stmts.rst:1155 +#: reference/compound_stmts.rst:1162 msgid ":class:`bytes`" msgstr "" -#: reference/compound_stmts.rst:1156 +#: reference/compound_stmts.rst:1163 msgid ":class:`dict`" msgstr "" -#: reference/compound_stmts.rst:1157 +#: reference/compound_stmts.rst:1164 msgid ":class:`float`" msgstr "" -#: reference/compound_stmts.rst:1158 +#: reference/compound_stmts.rst:1165 msgid ":class:`frozenset`" msgstr "" -#: reference/compound_stmts.rst:1159 +#: reference/compound_stmts.rst:1166 msgid ":class:`int`" msgstr "" -#: reference/compound_stmts.rst:1160 reference/compound_stmts.rst:1880 +#: reference/compound_stmts.rst:1167 reference/compound_stmts.rst:1887 msgid ":class:`list`" msgstr "" -#: reference/compound_stmts.rst:1161 +#: reference/compound_stmts.rst:1168 msgid ":class:`set`" msgstr "" -#: reference/compound_stmts.rst:1162 +#: reference/compound_stmts.rst:1169 msgid ":class:`str`" msgstr "" -#: reference/compound_stmts.rst:1163 reference/compound_stmts.rst:1883 +#: reference/compound_stmts.rst:1170 reference/compound_stmts.rst:1890 msgid ":class:`tuple`" msgstr "" -#: reference/compound_stmts.rst:1165 +#: reference/compound_stmts.rst:1172 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:1169 +#: reference/compound_stmts.rst:1176 msgid "" "In simple terms ``CLS(P1, attr=P2)`` matches only if the following happens:" msgstr "" -#: reference/compound_stmts.rst:1171 +#: reference/compound_stmts.rst:1178 msgid "``isinstance(, CLS)``" msgstr "" -#: reference/compound_stmts.rst:1172 +#: reference/compound_stmts.rst:1179 msgid "convert ``P1`` to a keyword pattern using ``CLS.__match_args__``" msgstr "" -#: reference/compound_stmts.rst:1173 +#: reference/compound_stmts.rst:1180 msgid "For each keyword argument ``attr=P2``:" msgstr "" -#: reference/compound_stmts.rst:1175 +#: reference/compound_stmts.rst:1182 msgid "``hasattr(, \"attr\")``" msgstr "" -#: reference/compound_stmts.rst:1176 +#: reference/compound_stmts.rst:1183 msgid "``P2`` matches ``.attr``" msgstr "" -#: reference/compound_stmts.rst:1178 +#: reference/compound_stmts.rst:1185 msgid "... and so on for the corresponding keyword argument/pattern pair." msgstr "" -#: reference/compound_stmts.rst:1193 +#: reference/compound_stmts.rst:1200 msgid "Function definitions" msgstr "" -#: reference/compound_stmts.rst:1208 +#: reference/compound_stmts.rst:1215 msgid "" "A function definition defines a user-defined function object (see section :" "ref:`types`):" msgstr "" -#: reference/compound_stmts.rst:1230 +#: reference/compound_stmts.rst:1237 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 " @@ -1535,13 +1544,13 @@ msgid "" "used when the function is called." msgstr "" -#: reference/compound_stmts.rst:1236 +#: reference/compound_stmts.rst:1243 msgid "" "The function definition does not execute the function body; this gets " "executed only when the function is called. [#]_" msgstr "" -#: reference/compound_stmts.rst:1242 +#: reference/compound_stmts.rst:1249 msgid "" "A function definition may be wrapped by one or more :term:`decorator` " "expressions. Decorator expressions are evaluated when the function is " @@ -1552,37 +1561,37 @@ msgid "" "example, the following code ::" msgstr "" -#: reference/compound_stmts.rst:1249 +#: reference/compound_stmts.rst:1256 msgid "" "@f1(arg)\n" "@f2\n" "def func(): pass" msgstr "" -#: reference/compound_stmts.rst:1253 reference/compound_stmts.rst:1448 +#: reference/compound_stmts.rst:1260 reference/compound_stmts.rst:1455 msgid "is roughly equivalent to ::" msgstr "" -#: reference/compound_stmts.rst:1255 +#: reference/compound_stmts.rst:1262 msgid "" "def func(): pass\n" "func = f1(arg)(f2(func))" msgstr "" -#: reference/compound_stmts.rst:1258 +#: reference/compound_stmts.rst:1265 msgid "" "except that the original function is not temporarily bound to the name " "``func``." msgstr "" -#: reference/compound_stmts.rst:1260 +#: reference/compound_stmts.rst:1267 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:1265 +#: reference/compound_stmts.rst:1272 msgid "" "A list of :ref:`type parameters ` may be given in square " "brackets between the function's name and the opening parenthesis for its " @@ -1592,11 +1601,11 @@ msgid "" "functions` for more." msgstr "" -#: reference/compound_stmts.rst:1272 reference/compound_stmts.rst:1467 +#: reference/compound_stmts.rst:1279 reference/compound_stmts.rst:1474 msgid "Type parameter lists are new in Python 3.12." msgstr "" -#: reference/compound_stmts.rst:1280 +#: reference/compound_stmts.rst:1287 msgid "" "When one or more :term:`parameters ` have the form *parameter* " "``=`` *expression*, the function is said to have \"default parameter values." @@ -1607,7 +1616,7 @@ msgid "" "syntactic restriction that is not expressed by the grammar." msgstr "" -#: reference/compound_stmts.rst:1288 +#: reference/compound_stmts.rst:1295 msgid "" "**Default parameter values are evaluated from left to right when the " "function definition is executed.** This means that the expression is " @@ -1620,7 +1629,7 @@ msgid "" "the default, and explicitly test for it in the body of the function, e.g.::" msgstr "" -#: reference/compound_stmts.rst:1298 +#: reference/compound_stmts.rst:1305 msgid "" "def whats_on_the_telly(penguin=None):\n" " if penguin is None:\n" @@ -1629,7 +1638,7 @@ msgid "" " return penguin" msgstr "" -#: reference/compound_stmts.rst:1309 +#: reference/compound_stmts.rst:1316 msgid "" "Function call semantics are described in more detail in section :ref:" "`calls`. A function call always assigns values to all parameters mentioned " @@ -1645,13 +1654,13 @@ msgid "" "positional arguments." msgstr "" -#: reference/compound_stmts.rst:1321 +#: reference/compound_stmts.rst:1328 msgid "" "The ``/`` function parameter syntax may be used to indicate positional-only " "parameters. See :pep:`570` for details." msgstr "" -#: reference/compound_stmts.rst:1330 +#: reference/compound_stmts.rst:1337 msgid "" "Parameters may have an :term:`annotation ` of the form " "\"``: expression``\" following the parameter name. Any parameter may have " @@ -1670,13 +1679,13 @@ msgid "" "in the source code." msgstr "" -#: reference/compound_stmts.rst:1344 +#: reference/compound_stmts.rst:1351 msgid "" "Parameters of the form \"``*identifier``\" may have an annotation \"``: " "*expression``\". See :pep:`646`." msgstr "" -#: reference/compound_stmts.rst:1350 +#: reference/compound_stmts.rst:1357 msgid "" "It is also possible to create anonymous functions (functions not bound to a " "name), for immediate use in expressions. This uses lambda expressions, " @@ -1688,7 +1697,7 @@ msgid "" "execution of multiple statements and annotations." msgstr "" -#: reference/compound_stmts.rst:1358 +#: reference/compound_stmts.rst:1365 msgid "" "**Programmer's note:** Functions are first-class objects. A \"``def``\" " "statement executed inside a function definition defines a local function " @@ -1697,61 +1706,61 @@ msgid "" "See section :ref:`naming` for details." msgstr "" -#: reference/compound_stmts.rst:1366 +#: reference/compound_stmts.rst:1373 msgid ":pep:`3107` - Function Annotations" msgstr "" -#: reference/compound_stmts.rst:1367 +#: reference/compound_stmts.rst:1374 msgid "The original specification for function annotations." msgstr "" -#: reference/compound_stmts.rst:1369 +#: reference/compound_stmts.rst:1376 msgid ":pep:`484` - Type Hints" msgstr "" -#: reference/compound_stmts.rst:1370 +#: reference/compound_stmts.rst:1377 msgid "Definition of a standard meaning for annotations: type hints." msgstr "" -#: reference/compound_stmts.rst:1372 +#: reference/compound_stmts.rst:1379 msgid ":pep:`526` - Syntax for Variable Annotations" msgstr "" -#: reference/compound_stmts.rst:1373 +#: reference/compound_stmts.rst:1380 msgid "" "Ability to type hint variable declarations, including class variables and " "instance variables." msgstr "" -#: reference/compound_stmts.rst:1376 +#: reference/compound_stmts.rst:1383 msgid ":pep:`563` - Postponed Evaluation of Annotations" msgstr "" -#: reference/compound_stmts.rst:1377 +#: reference/compound_stmts.rst:1384 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:1380 +#: reference/compound_stmts.rst:1387 msgid ":pep:`318` - Decorators for Functions and Methods" msgstr "" -#: reference/compound_stmts.rst:1381 +#: reference/compound_stmts.rst:1388 msgid "" "Function and method decorators were introduced. Class decorators were " "introduced in :pep:`3129`." msgstr "" -#: reference/compound_stmts.rst:1387 +#: reference/compound_stmts.rst:1394 msgid "Class definitions" msgstr "" -#: reference/compound_stmts.rst:1402 +#: reference/compound_stmts.rst:1409 msgid "A class definition defines a class object (see section :ref:`types`):" msgstr "" -#: reference/compound_stmts.rst:1409 +#: reference/compound_stmts.rst:1416 msgid "" "A class definition is an executable statement. The inheritance list usually " "gives a list of base classes (see :ref:`metaclasses` for more advanced " @@ -1760,23 +1769,23 @@ msgid "" "default, from the base class :class:`object`; hence, ::" msgstr "" -#: reference/compound_stmts.rst:1415 +#: reference/compound_stmts.rst:1422 msgid "" "class Foo:\n" " pass" msgstr "" -#: reference/compound_stmts.rst:1418 +#: reference/compound_stmts.rst:1425 msgid "is equivalent to ::" msgstr "" -#: reference/compound_stmts.rst:1420 +#: reference/compound_stmts.rst:1427 msgid "" "class Foo(object):\n" " pass" msgstr "" -#: reference/compound_stmts.rst:1423 +#: reference/compound_stmts.rst:1430 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 " @@ -1788,7 +1797,7 @@ msgid "" "original local namespace." msgstr "" -#: reference/compound_stmts.rst:1432 +#: reference/compound_stmts.rst:1439 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 " @@ -1796,43 +1805,43 @@ msgid "" "using the definition syntax." msgstr "" -#: reference/compound_stmts.rst:1437 +#: reference/compound_stmts.rst:1444 msgid "" "Class creation can be customized heavily using :ref:`metaclasses " "`." msgstr "" -#: reference/compound_stmts.rst:1442 +#: reference/compound_stmts.rst:1449 msgid "Classes can also be decorated: just like when decorating functions, ::" msgstr "" -#: reference/compound_stmts.rst:1444 +#: reference/compound_stmts.rst:1451 msgid "" "@f1(arg)\n" "@f2\n" "class Foo: pass" msgstr "" -#: reference/compound_stmts.rst:1450 +#: reference/compound_stmts.rst:1457 msgid "" "class Foo: pass\n" "Foo = f1(arg)(f2(Foo))" msgstr "" -#: reference/compound_stmts.rst:1453 +#: reference/compound_stmts.rst:1460 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:1456 +#: reference/compound_stmts.rst:1463 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:1461 +#: reference/compound_stmts.rst:1468 msgid "" "A list of :ref:`type parameters ` may be given in square " "brackets immediately after the class's name. This indicates to static type " @@ -1841,7 +1850,7 @@ msgid "" "`generic-classes` for more." msgstr "" -#: reference/compound_stmts.rst:1470 +#: reference/compound_stmts.rst:1477 msgid "" "**Programmer's note:** Variables defined in the class definition are class " "attributes; they are shared by instances. Instance attributes can be set in " @@ -1854,35 +1863,35 @@ msgid "" "implementation details." msgstr "" -#: reference/compound_stmts.rst:1482 +#: reference/compound_stmts.rst:1489 msgid ":pep:`3115` - Metaclasses in Python 3000" msgstr "" -#: reference/compound_stmts.rst:1483 +#: reference/compound_stmts.rst:1490 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:1487 +#: reference/compound_stmts.rst:1494 msgid ":pep:`3129` - Class Decorators" msgstr "" -#: reference/compound_stmts.rst:1488 +#: reference/compound_stmts.rst:1495 msgid "" "The proposal that added class decorators. Function and method decorators " "were introduced in :pep:`318`." msgstr "" -#: reference/compound_stmts.rst:1495 +#: reference/compound_stmts.rst:1502 msgid "Coroutines" msgstr "" -#: reference/compound_stmts.rst:1503 +#: reference/compound_stmts.rst:1510 msgid "Coroutine function definition" msgstr "" -#: reference/compound_stmts.rst:1513 +#: reference/compound_stmts.rst:1520 msgid "" "Execution of Python coroutines can be suspended and resumed at many points " "(see :term:`coroutine`). :keyword:`await` expressions, :keyword:`async for` " @@ -1890,53 +1899,53 @@ msgid "" "function." msgstr "" -#: reference/compound_stmts.rst:1517 +#: reference/compound_stmts.rst:1524 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:1520 +#: reference/compound_stmts.rst:1527 msgid "" "It is a :exc:`SyntaxError` to use a ``yield from`` expression inside the " "body of a coroutine function." msgstr "" -#: reference/compound_stmts.rst:1523 +#: reference/compound_stmts.rst:1530 msgid "An example of a coroutine function::" msgstr "" -#: reference/compound_stmts.rst:1525 +#: reference/compound_stmts.rst:1532 msgid "" "async def func(param1, param2):\n" " do_stuff()\n" " await some_coroutine()" msgstr "" -#: reference/compound_stmts.rst:1529 +#: reference/compound_stmts.rst:1536 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:1537 +#: reference/compound_stmts.rst:1544 msgid "The :keyword:`!async for` statement" msgstr "" -#: reference/compound_stmts.rst:1542 +#: reference/compound_stmts.rst:1549 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:1546 +#: reference/compound_stmts.rst:1553 msgid "" "The ``async for`` statement allows convenient iteration over asynchronous " "iterables." msgstr "" -#: reference/compound_stmts.rst:1551 +#: reference/compound_stmts.rst:1558 msgid "" "async for TARGET in ITER:\n" " SUITE\n" @@ -1944,11 +1953,11 @@ msgid "" " SUITE2" msgstr "" -#: reference/compound_stmts.rst:1556 +#: reference/compound_stmts.rst:1563 msgid "Is semantically equivalent to::" msgstr "" -#: reference/compound_stmts.rst:1558 +#: reference/compound_stmts.rst:1565 msgid "" "iter = (ITER)\n" "iter = type(iter).__aiter__(iter)\n" @@ -1965,34 +1974,34 @@ msgid "" " SUITE2" msgstr "" -#: reference/compound_stmts.rst:1572 +#: reference/compound_stmts.rst:1579 msgid "" "See also :meth:`~object.__aiter__` and :meth:`~object.__anext__` for details." msgstr "" -#: reference/compound_stmts.rst:1574 +#: reference/compound_stmts.rst:1581 msgid "" "It is a :exc:`SyntaxError` to use an ``async for`` statement outside the " "body of a coroutine function." msgstr "" -#: reference/compound_stmts.rst:1582 +#: reference/compound_stmts.rst:1589 msgid "The :keyword:`!async with` statement" msgstr "" -#: reference/compound_stmts.rst:1587 +#: reference/compound_stmts.rst:1594 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:1592 +#: reference/compound_stmts.rst:1599 msgid "" "async with EXPRESSION as TARGET:\n" " SUITE" msgstr "" -#: reference/compound_stmts.rst:1597 +#: reference/compound_stmts.rst:1604 msgid "" "manager = (EXPRESSION)\n" "aenter = type(manager).__aenter__\n" @@ -2012,44 +2021,44 @@ msgid "" " await aexit(manager, None, None, None)" msgstr "" -#: reference/compound_stmts.rst:1614 +#: reference/compound_stmts.rst:1621 msgid "" "See also :meth:`~object.__aenter__` and :meth:`~object.__aexit__` for " "details." msgstr "" -#: reference/compound_stmts.rst:1616 +#: reference/compound_stmts.rst:1623 msgid "" "It is a :exc:`SyntaxError` to use an ``async with`` statement outside the " "body of a coroutine function." msgstr "" -#: reference/compound_stmts.rst:1621 +#: reference/compound_stmts.rst:1628 msgid ":pep:`492` - Coroutines with async and await syntax" msgstr "" -#: reference/compound_stmts.rst:1622 +#: reference/compound_stmts.rst:1629 msgid "" "The proposal that made coroutines a proper standalone concept in Python, and " "added supporting syntax." msgstr "" -#: reference/compound_stmts.rst:1628 +#: reference/compound_stmts.rst:1635 msgid "Type parameter lists" msgstr "" -#: reference/compound_stmts.rst:1632 +#: reference/compound_stmts.rst:1639 msgid "Support for default values was added (see :pep:`696`)." msgstr "" -#: reference/compound_stmts.rst:1645 +#: reference/compound_stmts.rst:1652 msgid "" ":ref:`Functions ` (including :ref:`coroutines `), :ref:" "`classes ` and :ref:`type aliases ` may contain a type " "parameter list::" msgstr "" -#: reference/compound_stmts.rst:1649 +#: reference/compound_stmts.rst:1656 msgid "" "def max[T](args: list[T]) -> T:\n" " ...\n" @@ -2067,7 +2076,7 @@ msgid "" "type ListOrSet[T] = list[T] | set[T]" msgstr "" -#: reference/compound_stmts.rst:1664 +#: reference/compound_stmts.rst:1671 msgid "" "Semantically, this indicates that the function, class, or type alias is " "generic over a type variable. This information is primarily used by static " @@ -2075,7 +2084,7 @@ msgid "" "generic counterparts." msgstr "" -#: reference/compound_stmts.rst:1669 +#: reference/compound_stmts.rst:1676 msgid "" "Type parameters are declared in square brackets (``[]``) immediately after " "the name of the function, class, or type alias. The type parameters are " @@ -2087,36 +2096,36 @@ msgid "" "wraps the creation of the generic object." msgstr "" -#: reference/compound_stmts.rst:1678 +#: reference/compound_stmts.rst:1685 msgid "" "Generic functions, classes, and type aliases have a :attr:`~definition." "__type_params__` attribute listing their type parameters." msgstr "" -#: reference/compound_stmts.rst:1681 +#: reference/compound_stmts.rst:1688 msgid "Type parameters come in three kinds:" msgstr "" -#: reference/compound_stmts.rst:1683 +#: reference/compound_stmts.rst:1690 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:1685 +#: reference/compound_stmts.rst:1692 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:1688 +#: reference/compound_stmts.rst:1695 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:1691 +#: reference/compound_stmts.rst:1698 msgid "" ":data:`typing.TypeVar` declarations can define *bounds* and *constraints* " "with a colon (``:``) followed by an expression. A single expression after " @@ -2128,7 +2137,7 @@ msgid "" "variables can only take on one of the types in the list of constraints." msgstr "" -#: reference/compound_stmts.rst:1700 +#: reference/compound_stmts.rst:1707 msgid "" "For :data:`!typing.TypeVar`\\ s declared using the type parameter list " "syntax, the bound and constraints are not evaluated when the generic object " @@ -2138,13 +2147,13 @@ msgid "" "`." msgstr "" -#: reference/compound_stmts.rst:1706 +#: reference/compound_stmts.rst:1713 msgid "" ":data:`typing.TypeVarTuple`\\ s and :data:`typing.ParamSpec`\\ s cannot have " "bounds or constraints." msgstr "" -#: reference/compound_stmts.rst:1709 +#: reference/compound_stmts.rst:1716 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 " @@ -2157,13 +2166,13 @@ msgid "" "attribute is set to the special sentinel object :data:`typing.NoDefault`." msgstr "" -#: reference/compound_stmts.rst:1719 +#: reference/compound_stmts.rst:1726 msgid "" "The following example indicates the full set of allowed type parameter " "declarations::" msgstr "" -#: reference/compound_stmts.rst:1721 +#: reference/compound_stmts.rst:1728 msgid "" "def overly_generic[\n" " SimpleTypeVar,\n" @@ -2181,23 +2190,23 @@ msgid "" "): ..." msgstr "" -#: reference/compound_stmts.rst:1739 +#: reference/compound_stmts.rst:1746 msgid "Generic functions" msgstr "" -#: reference/compound_stmts.rst:1741 +#: reference/compound_stmts.rst:1748 msgid "Generic functions are declared as follows::" msgstr "" -#: reference/compound_stmts.rst:1743 +#: reference/compound_stmts.rst:1750 msgid "def func[T](arg: T): ..." msgstr "" -#: reference/compound_stmts.rst:1745 reference/compound_stmts.rst:1805 +#: reference/compound_stmts.rst:1752 reference/compound_stmts.rst:1812 msgid "This syntax is equivalent to::" msgstr "" -#: reference/compound_stmts.rst:1747 +#: reference/compound_stmts.rst:1754 msgid "" "annotation-def TYPE_PARAMS_OF_func():\n" " T = typing.TypeVar(\"T\")\n" @@ -2207,7 +2216,7 @@ msgid "" "func = TYPE_PARAMS_OF_func()" msgstr "" -#: reference/compound_stmts.rst:1754 +#: reference/compound_stmts.rst:1761 msgid "" "Here ``annotation-def`` indicates an :ref:`annotation scope `, which is not actually bound to any name at runtime. (One other " @@ -2216,33 +2225,33 @@ msgid "" "data:`typing.TypeVar` directly.)" msgstr "" -#: reference/compound_stmts.rst:1760 +#: reference/compound_stmts.rst:1767 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:1764 +#: reference/compound_stmts.rst:1771 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:1767 +#: reference/compound_stmts.rst:1774 msgid "" "@decorator\n" "def func[T: int, *Ts, **P](*args: *Ts, arg: Callable[P, T] = some_default):\n" " ..." msgstr "" -#: reference/compound_stmts.rst:1771 +#: reference/compound_stmts.rst:1778 msgid "" "Except for the :ref:`lazy evaluation ` of the :class:" "`~typing.TypeVar` bound, this is equivalent to::" msgstr "" -#: reference/compound_stmts.rst:1774 +#: reference/compound_stmts.rst:1781 msgid "" "DEFAULT_OF_arg = some_default\n" "\n" @@ -2264,25 +2273,25 @@ msgid "" "func = decorator(TYPE_PARAMS_OF_func())" msgstr "" -#: reference/compound_stmts.rst:1793 +#: reference/compound_stmts.rst:1800 msgid "" "The capitalized names like ``DEFAULT_OF_arg`` are not actually bound at " "runtime." msgstr "" -#: reference/compound_stmts.rst:1799 +#: reference/compound_stmts.rst:1806 msgid "Generic classes" msgstr "" -#: reference/compound_stmts.rst:1801 +#: reference/compound_stmts.rst:1808 msgid "Generic classes are declared as follows::" msgstr "" -#: reference/compound_stmts.rst:1803 +#: reference/compound_stmts.rst:1810 msgid "class Bag[T]: ..." msgstr "" -#: reference/compound_stmts.rst:1807 +#: reference/compound_stmts.rst:1814 msgid "" "annotation-def TYPE_PARAMS_OF_Bag():\n" " T = typing.TypeVar(\"T\")\n" @@ -2293,14 +2302,14 @@ msgid "" "Bag = TYPE_PARAMS_OF_Bag()" msgstr "" -#: reference/compound_stmts.rst:1815 +#: reference/compound_stmts.rst:1822 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:1819 +#: reference/compound_stmts.rst:1826 msgid "" "Generic classes implicitly inherit from :data:`typing.Generic`. The base " "classes and keyword arguments of generic classes are evaluated within the " @@ -2308,17 +2317,17 @@ msgid "" "that scope. This is illustrated by this example::" msgstr "" -#: reference/compound_stmts.rst:1825 +#: reference/compound_stmts.rst:1832 msgid "" "@decorator\n" "class Bag(Base[T], arg=T): ..." msgstr "" -#: reference/compound_stmts.rst:1828 +#: reference/compound_stmts.rst:1835 msgid "This is equivalent to::" msgstr "" -#: reference/compound_stmts.rst:1830 +#: reference/compound_stmts.rst:1837 msgid "" "annotation-def TYPE_PARAMS_OF_Bag():\n" " T = typing.TypeVar(\"T\")\n" @@ -2329,27 +2338,27 @@ msgid "" "Bag = decorator(TYPE_PARAMS_OF_Bag())" msgstr "" -#: reference/compound_stmts.rst:1841 +#: reference/compound_stmts.rst:1848 msgid "Generic type aliases" msgstr "" -#: reference/compound_stmts.rst:1843 +#: reference/compound_stmts.rst:1850 msgid "" "The :keyword:`type` statement can also be used to create a generic type " "alias::" msgstr "" -#: reference/compound_stmts.rst:1845 +#: reference/compound_stmts.rst:1852 msgid "type ListOrSet[T] = list[T] | set[T]" msgstr "" -#: reference/compound_stmts.rst:1847 +#: reference/compound_stmts.rst:1854 msgid "" "Except for the :ref:`lazy evaluation ` of the value, this " "is equivalent to::" msgstr "" -#: reference/compound_stmts.rst:1850 +#: reference/compound_stmts.rst:1857 msgid "" "annotation-def TYPE_PARAMS_OF_ListOrSet():\n" " T = typing.TypeVar(\"T\")\n" @@ -2362,104 +2371,104 @@ msgid "" "ListOrSet = TYPE_PARAMS_OF_ListOrSet()" msgstr "" -#: reference/compound_stmts.rst:1859 +#: reference/compound_stmts.rst:1866 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:1864 +#: reference/compound_stmts.rst:1871 msgid "Footnotes" msgstr "" -#: reference/compound_stmts.rst:1865 +#: reference/compound_stmts.rst:1872 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:1869 +#: reference/compound_stmts.rst:1876 msgid "In pattern matching, a sequence is defined as one of the following:" msgstr "" -#: reference/compound_stmts.rst:1871 +#: reference/compound_stmts.rst:1878 msgid "a class that inherits from :class:`collections.abc.Sequence`" msgstr "" -#: reference/compound_stmts.rst:1872 +#: reference/compound_stmts.rst:1879 msgid "" "a Python class that has been registered as :class:`collections.abc.Sequence`" msgstr "" -#: reference/compound_stmts.rst:1873 +#: reference/compound_stmts.rst:1880 msgid "" "a builtin class that has its (CPython) :c:macro:`Py_TPFLAGS_SEQUENCE` bit set" msgstr "" -#: reference/compound_stmts.rst:1874 reference/compound_stmts.rst:1893 +#: reference/compound_stmts.rst:1881 reference/compound_stmts.rst:1900 msgid "a class that inherits from any of the above" msgstr "" -#: reference/compound_stmts.rst:1876 +#: reference/compound_stmts.rst:1883 msgid "The following standard library classes are sequences:" msgstr "" -#: reference/compound_stmts.rst:1878 +#: reference/compound_stmts.rst:1885 msgid ":class:`array.array`" msgstr "" -#: reference/compound_stmts.rst:1879 +#: reference/compound_stmts.rst:1886 msgid ":class:`collections.deque`" msgstr "" -#: reference/compound_stmts.rst:1881 +#: reference/compound_stmts.rst:1888 msgid ":class:`memoryview`" msgstr "" -#: reference/compound_stmts.rst:1882 +#: reference/compound_stmts.rst:1889 msgid ":class:`range`" msgstr "" -#: reference/compound_stmts.rst:1885 +#: reference/compound_stmts.rst:1892 msgid "" "Subject values of type ``str``, ``bytes``, and ``bytearray`` do not match " "sequence patterns." msgstr "" -#: reference/compound_stmts.rst:1888 +#: reference/compound_stmts.rst:1895 msgid "In pattern matching, a mapping is defined as one of the following:" msgstr "" -#: reference/compound_stmts.rst:1890 +#: reference/compound_stmts.rst:1897 msgid "a class that inherits from :class:`collections.abc.Mapping`" msgstr "" -#: reference/compound_stmts.rst:1891 +#: reference/compound_stmts.rst:1898 msgid "" "a Python class that has been registered as :class:`collections.abc.Mapping`" msgstr "" -#: reference/compound_stmts.rst:1892 +#: reference/compound_stmts.rst:1899 msgid "" "a builtin class that has its (CPython) :c:macro:`Py_TPFLAGS_MAPPING` bit set" msgstr "" -#: reference/compound_stmts.rst:1895 +#: reference/compound_stmts.rst:1902 msgid "" "The standard library classes :class:`dict` and :class:`types." "MappingProxyType` are mappings." msgstr "" -#: reference/compound_stmts.rst:1898 +#: reference/compound_stmts.rst:1905 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:1902 +#: reference/compound_stmts.rst:1909 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 " @@ -2473,11 +2482,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:390 reference/compound_stmts.rst:437 -#: reference/compound_stmts.rst:471 reference/compound_stmts.rst:588 -#: reference/compound_stmts.rst:1195 reference/compound_stmts.rst:1389 -#: reference/compound_stmts.rst:1499 reference/compound_stmts.rst:1533 -#: reference/compound_stmts.rst:1578 +#: reference/compound_stmts.rst:394 reference/compound_stmts.rst:443 +#: reference/compound_stmts.rst:477 reference/compound_stmts.rst:595 +#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1396 +#: reference/compound_stmts.rst:1506 reference/compound_stmts.rst:1540 +#: reference/compound_stmts.rst:1585 msgid "statement" msgstr "" @@ -2507,19 +2516,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:390 +#: reference/compound_stmts.rst:207 reference/compound_stmts.rst:394 msgid "else" msgstr "" -#: reference/compound_stmts.rst:86 reference/compound_stmts.rst:588 +#: reference/compound_stmts.rst:86 reference/compound_stmts.rst:595 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:327 reference/compound_stmts.rst:390 -#: reference/compound_stmts.rst:408 reference/compound_stmts.rst:471 -#: reference/compound_stmts.rst:588 reference/compound_stmts.rst:1509 +#: reference/compound_stmts.rst:327 reference/compound_stmts.rst:394 +#: reference/compound_stmts.rst:412 reference/compound_stmts.rst:477 +#: reference/compound_stmts.rst:595 reference/compound_stmts.rst:1516 msgid "keyword" msgstr "" @@ -2529,16 +2538,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:471 reference/compound_stmts.rst:588 -#: reference/compound_stmts.rst:1195 reference/compound_stmts.rst:1325 -#: reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:477 reference/compound_stmts.rst:595 +#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1332 +#: reference/compound_stmts.rst:1396 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:471 reference/compound_stmts.rst:588 -#: reference/compound_stmts.rst:1195 reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:477 reference/compound_stmts.rst:595 +#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1396 msgid "compound statement" msgstr "" @@ -2551,12 +2560,12 @@ msgid "loop" msgstr "" #: reference/compound_stmts.rst:129 reference/compound_stmts.rst:169 -#: reference/compound_stmts.rst:390 reference/compound_stmts.rst:437 +#: reference/compound_stmts.rst:394 reference/compound_stmts.rst:443 msgid "break" msgstr "" #: reference/compound_stmts.rst:129 reference/compound_stmts.rst:169 -#: reference/compound_stmts.rst:390 reference/compound_stmts.rst:437 +#: reference/compound_stmts.rst:394 reference/compound_stmts.rst:443 msgid "continue" msgstr "" @@ -2577,7 +2586,7 @@ msgid "list" msgstr "" #: reference/compound_stmts.rst:144 reference/compound_stmts.rst:298 -#: reference/compound_stmts.rst:1195 reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1396 msgid "object" msgstr "" @@ -2601,12 +2610,12 @@ msgstr "" msgid "except" msgstr "" -#: reference/compound_stmts.rst:207 reference/compound_stmts.rst:408 +#: reference/compound_stmts.rst:207 reference/compound_stmts.rst:412 msgid "finally" msgstr "" #: reference/compound_stmts.rst:207 reference/compound_stmts.rst:265 -#: reference/compound_stmts.rst:471 reference/compound_stmts.rst:588 +#: reference/compound_stmts.rst:477 reference/compound_stmts.rst:595 msgid "as" msgstr "" @@ -2630,201 +2639,201 @@ msgstr "" msgid "except_star" msgstr "" -#: reference/compound_stmts.rst:390 reference/compound_stmts.rst:437 +#: reference/compound_stmts.rst:394 reference/compound_stmts.rst:443 msgid "return" msgstr "" -#: reference/compound_stmts.rst:471 +#: reference/compound_stmts.rst:477 msgid "with" msgstr "" -#: reference/compound_stmts.rst:471 +#: reference/compound_stmts.rst:477 msgid "with statement" msgstr "" -#: reference/compound_stmts.rst:471 reference/compound_stmts.rst:1195 -#: reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:477 reference/compound_stmts.rst:1202 +#: reference/compound_stmts.rst:1396 msgid ", (comma)" msgstr "" -#: reference/compound_stmts.rst:588 +#: reference/compound_stmts.rst:595 msgid "match" msgstr "" -#: reference/compound_stmts.rst:588 +#: reference/compound_stmts.rst:595 msgid "case" msgstr "" -#: reference/compound_stmts.rst:588 +#: reference/compound_stmts.rst:595 msgid "pattern matching" msgstr "" -#: reference/compound_stmts.rst:588 +#: reference/compound_stmts.rst:595 msgid "match statement" msgstr "" -#: reference/compound_stmts.rst:692 +#: reference/compound_stmts.rst:699 msgid "guard" msgstr "" -#: reference/compound_stmts.rst:731 +#: reference/compound_stmts.rst:738 msgid "irrefutable case block" msgstr "" -#: reference/compound_stmts.rst:731 +#: reference/compound_stmts.rst:738 msgid "case block" msgstr "" -#: reference/compound_stmts.rst:755 +#: reference/compound_stmts.rst:762 msgid "! patterns" msgstr "" -#: reference/compound_stmts.rst:755 +#: reference/compound_stmts.rst:762 msgid "AS pattern, OR pattern, capture pattern, wildcard pattern" msgstr "" -#: reference/compound_stmts.rst:1186 reference/compound_stmts.rst:1275 +#: reference/compound_stmts.rst:1193 reference/compound_stmts.rst:1282 msgid "parameter" msgstr "" -#: reference/compound_stmts.rst:1186 reference/compound_stmts.rst:1195 -#: reference/compound_stmts.rst:1239 reference/compound_stmts.rst:1275 -#: reference/compound_stmts.rst:1304 +#: 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 msgid "function definition" msgstr "" -#: reference/compound_stmts.rst:1195 +#: reference/compound_stmts.rst:1202 msgid "def" msgstr "" -#: reference/compound_stmts.rst:1195 reference/compound_stmts.rst:1325 +#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1332 msgid "function" msgstr "" -#: reference/compound_stmts.rst:1195 reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1396 msgid "definition" msgstr "" -#: reference/compound_stmts.rst:1195 reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1396 msgid "name" msgstr "" -#: reference/compound_stmts.rst:1195 reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1396 msgid "binding" msgstr "" -#: reference/compound_stmts.rst:1195 +#: reference/compound_stmts.rst:1202 msgid "user-defined function" msgstr "" -#: reference/compound_stmts.rst:1195 reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:1202 reference/compound_stmts.rst:1396 msgid "() (parentheses)" msgstr "" -#: reference/compound_stmts.rst:1195 +#: reference/compound_stmts.rst:1202 msgid "parameter list" msgstr "" -#: reference/compound_stmts.rst:1239 reference/compound_stmts.rst:1439 +#: reference/compound_stmts.rst:1246 reference/compound_stmts.rst:1446 msgid "@ (at)" msgstr "" -#: reference/compound_stmts.rst:1275 +#: reference/compound_stmts.rst:1282 msgid "default" msgstr "" -#: reference/compound_stmts.rst:1275 +#: reference/compound_stmts.rst:1282 msgid "value" msgstr "" -#: reference/compound_stmts.rst:1275 +#: reference/compound_stmts.rst:1282 msgid "argument" msgstr "" -#: reference/compound_stmts.rst:1275 +#: reference/compound_stmts.rst:1282 msgid "= (equals)" msgstr "" -#: reference/compound_stmts.rst:1304 +#: reference/compound_stmts.rst:1311 msgid "/ (slash)" msgstr "" -#: reference/compound_stmts.rst:1304 +#: reference/compound_stmts.rst:1311 msgid "* (asterisk)" msgstr "" -#: reference/compound_stmts.rst:1304 +#: reference/compound_stmts.rst:1311 msgid "**" msgstr "" -#: reference/compound_stmts.rst:1325 +#: reference/compound_stmts.rst:1332 msgid "annotations" msgstr "" -#: reference/compound_stmts.rst:1325 +#: reference/compound_stmts.rst:1332 msgid "->" msgstr "" -#: reference/compound_stmts.rst:1325 +#: reference/compound_stmts.rst:1332 msgid "function annotations" msgstr "" -#: reference/compound_stmts.rst:1348 +#: reference/compound_stmts.rst:1355 msgid "lambda" msgstr "" -#: reference/compound_stmts.rst:1348 +#: reference/compound_stmts.rst:1355 msgid "expression" msgstr "" -#: reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:1396 msgid "class" msgstr "" -#: reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:1396 msgid "execution" msgstr "" -#: reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:1396 msgid "frame" msgstr "" -#: reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:1396 msgid "inheritance" msgstr "" -#: reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:1396 msgid "docstring" msgstr "" -#: reference/compound_stmts.rst:1389 reference/compound_stmts.rst:1439 +#: reference/compound_stmts.rst:1396 reference/compound_stmts.rst:1446 msgid "class definition" msgstr "" -#: reference/compound_stmts.rst:1389 +#: reference/compound_stmts.rst:1396 msgid "expression list" msgstr "" -#: reference/compound_stmts.rst:1499 +#: reference/compound_stmts.rst:1506 msgid "async def" msgstr "" -#: reference/compound_stmts.rst:1509 +#: reference/compound_stmts.rst:1516 msgid "async" msgstr "" -#: reference/compound_stmts.rst:1509 +#: reference/compound_stmts.rst:1516 msgid "await" msgstr "" -#: reference/compound_stmts.rst:1533 +#: reference/compound_stmts.rst:1540 msgid "async for" msgstr "" -#: reference/compound_stmts.rst:1578 +#: reference/compound_stmts.rst:1585 msgid "async with" msgstr "" -#: reference/compound_stmts.rst:1635 +#: reference/compound_stmts.rst:1642 msgid "type parameters" msgstr "" diff --git a/reference/datamodel.po b/reference/datamodel.po index d82770c3..ea352f02 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-05-04 22:06+0300\n" -"PO-Revision-Date: 2025-11-21 09:13+0200\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+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,13 +288,13 @@ 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 is deprecated. While " "it currently evaluates as true, it will emit a :exc:`DeprecationWarning`. It " @@ -307,11 +305,11 @@ msgstr "" "exc:`DeprecationWarning`. Ενώ αυτή τη στιγμή αξιολογείται ως αληθές, θα " "κάνει ένα :exc:`TypeError` σε μια μελλοντική έκδοση της Python." -#: reference/datamodel.rst:184 +#: reference/datamodel.rst:180 msgid "Ellipsis" msgstr "Ellipsis" -#: reference/datamodel.rst:188 +#: reference/datamodel.rst:184 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 " @@ -322,11 +320,11 @@ msgstr "" "``...`` ή του ενσωματωμένου ονόματος ``Ellipsis``. Η τιμή αλήθειας του " "είναι αληθής." -#: reference/datamodel.rst:194 +#: reference/datamodel.rst:190 msgid ":class:`numbers.Number`" msgstr ":class:`numbers.Number`" -#: reference/datamodel.rst:198 +#: reference/datamodel.rst:194 msgid "" "These are created by numeric literals and returned as results by arithmetic " "operators and arithmetic built-in functions. Numeric objects are immutable; " @@ -341,7 +339,7 @@ msgstr "" "σχετίζονται στενά με τους μαθηματικούς αριθμούς, αλλά υπόκεινται στους " "περιορισμούς της αριθμητικής αναπαράστασης στους υπολογιστές." -#: reference/datamodel.rst:204 +#: reference/datamodel.rst:200 msgid "" "The string representations of the numeric classes, computed by :meth:" "`~object.__repr__` and :meth:`~object.__str__`, have the following " @@ -351,7 +349,7 @@ msgstr "" "από την :meth:`~object.__repr__` και από τη :meth:`~object.__str__`, έχουν " "τις ακόλουθες ιδιότητες:" -#: reference/datamodel.rst:208 +#: reference/datamodel.rst:204 msgid "" "They are valid numeric literals which, when passed to their class " "constructor, produce an object having the value of the original numeric." @@ -360,11 +358,11 @@ msgstr "" "της κλάσης τους, παράγουν ένα αντικείμενο που έχει την τιμή του αρχικού " "αριθμητικού." -#: reference/datamodel.rst:212 +#: reference/datamodel.rst:208 msgid "The representation is in base 10, when possible." msgstr "Η αναπαράσταση είναι στη βάση του 10, όταν αυτό είναι εφικτό." -#: reference/datamodel.rst:214 +#: reference/datamodel.rst:210 msgid "" "Leading zeros, possibly excepting a single zero before a decimal point, are " "not shown." @@ -372,7 +370,7 @@ msgstr "" "Τα προηγούμενα μηδενικά, ενδεχομένως με εξαίρεση ένα μόνο μηδέν πριν από μια " "υποδιαστολή, δεν εμφανίζονται." -#: reference/datamodel.rst:217 +#: reference/datamodel.rst:213 msgid "" "Trailing zeros, possibly excepting a single zero after a decimal point, are " "not shown." @@ -380,11 +378,11 @@ msgstr "" "Τα μηδενικά που ακολουθούν, ενδεχομένως με εξαίρεση ένα μεμονωμένο μηδέν " "μετά από μια υποδιαστολή, δεν εμφανίζονται." -#: reference/datamodel.rst:220 +#: reference/datamodel.rst:216 msgid "A sign is shown only when the number is negative." msgstr "Ένα πρόσημο εμφανίζεται μόνο όταν ο αριθμός είναι αρνητικός." -#: reference/datamodel.rst:222 +#: reference/datamodel.rst:218 msgid "" "Python distinguishes between integers, floating-point numbers, and complex " "numbers:" @@ -392,11 +390,11 @@ msgstr "" "Η Python κάνει διάκριση μεταξύ ακεραίων, αριθμών κινητής υποδιαστολής και " "μιγαδικών αριθμών:" -#: reference/datamodel.rst:227 +#: reference/datamodel.rst:223 msgid ":class:`numbers.Integral`" msgstr ":class:`numbers.Integral`" -#: reference/datamodel.rst:231 +#: reference/datamodel.rst:227 msgid "" "These represent elements from the mathematical set of integers (positive and " "negative)." @@ -404,7 +402,7 @@ msgstr "" "Αυτά αντιπροσωπεύουν στοιχεία από το μαθηματικό σύνολο ακεραίων (θετικών και " "αρνητικών)." -#: reference/datamodel.rst:237 +#: reference/datamodel.rst:233 msgid "" "The rules for integer representation are intended to give the most " "meaningful interpretation of shift and mask operations involving negative " @@ -414,15 +412,15 @@ msgstr "" "ουσιαστική ερμηνεία των πράξεων μετατόπισης και κάλυψης που περιλαμβάνουν " "αρνητικούς ακέραιους αριθμούς." -#: reference/datamodel.rst:240 +#: reference/datamodel.rst:236 msgid "There are two types of integers:" msgstr "Υπάρχουν δύο τύποι ακεραίων:" -#: reference/datamodel.rst:242 +#: reference/datamodel.rst:238 msgid "Integers (:class:`int`)" msgstr "Ακέραιοι (:class:`int`)" -#: reference/datamodel.rst:243 +#: reference/datamodel.rst:239 msgid "" "These represent numbers in an unlimited range, subject to available " "(virtual) memory only. For the purpose of shift and mask operations, a " @@ -437,11 +435,11 @@ msgstr "" "ψευδαίσθηση μιας άπειρης συμβολοσειράς bits από bits προσήμου που " "εκτείνονται προς τα αριστερά." -#: reference/datamodel.rst:249 +#: reference/datamodel.rst:245 msgid "Booleans (:class:`bool`)" msgstr "Booleans (:class:`bool`)" -#: reference/datamodel.rst:255 +#: reference/datamodel.rst:251 msgid "" "These represent the truth values False and True. The two objects " "representing the values ``False`` and ``True`` are the only Boolean objects. " @@ -457,11 +455,11 @@ msgstr "" "όλα τα περιβάλλοντα, οι εξαιρέσεις που μετατρέπονται σε string είναι " "``\"False\"`` ή ``\"True\"`` επιστρέφονται, αντίστοιχα." -#: reference/datamodel.rst:263 +#: reference/datamodel.rst:259 msgid ":class:`numbers.Real` (:class:`float`)" msgstr ":class:`numbers.Real` (:class:`float`)" -#: reference/datamodel.rst:271 +#: reference/datamodel.rst:267 msgid "" "These represent machine-level double precision floating-point numbers. You " "are at the mercy of the underlying machine architecture (and C or Java " @@ -480,11 +478,11 @@ msgstr "" "αντικειμένων στην Python, επομένως δεν υπάρχει λόγος να περιπλέκουμε τη " "γλώσσα με δύο είδη αριθμών κινητής υποδιαστολής." -#: reference/datamodel.rst:281 +#: reference/datamodel.rst:277 msgid ":class:`numbers.Complex` (:class:`complex`)" msgstr ":class:`numbers.Complex` (:class:`complex`)" -#: reference/datamodel.rst:287 +#: reference/datamodel.rst:283 msgid "" "These represent complex numbers as a pair of machine-level double precision " "floating-point numbers. The same caveats apply as for floating-point " @@ -498,11 +496,11 @@ msgstr "" "ανακτηθούν μέσω των χαρακτηριστικών ``z.real`` και ``z.imag`` μόνο για " "ανάγνωση." -#: reference/datamodel.rst:294 +#: reference/datamodel.rst:290 msgid "Sequences" msgstr "Ακολουθίες" -#: reference/datamodel.rst:303 +#: reference/datamodel.rst:299 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. " @@ -522,7 +520,7 @@ msgstr "" "ισούται με ``a[n-2]``, το δεύτερο έως το τελευταίο στοιχείο της ακολουθίας a " "με μήκος ``n``." -#: reference/datamodel.rst:313 +#: reference/datamodel.rst:309 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 " @@ -535,7 +533,7 @@ msgstr "" "Το παραπάνω σχόλιο σχετικά με τους αρνητικούς δείκτες ισχύει και για " "αρνητικές θέσεις." -#: reference/datamodel.rst:318 +#: reference/datamodel.rst:314 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 = " @@ -546,15 +544,15 @@ msgstr "" "*a* με ευρετήριο *x* όπου ``x = i + n*k``, *n* ``>=`` ``0`` και *i* ``<=`` " "*x* ``<`` *j*." -#: reference/datamodel.rst:322 +#: reference/datamodel.rst:318 msgid "Sequences are distinguished according to their mutability:" msgstr "Οι ακολουθίες διακρίνονται ανάλογα με τη μεταβλητότητά τους:" -#: reference/datamodel.rst:326 +#: reference/datamodel.rst:322 msgid "Immutable sequences" msgstr "Αμετάβλητες ακολουθίες" -#: reference/datamodel.rst:332 +#: reference/datamodel.rst:328 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 " @@ -567,15 +565,15 @@ msgstr "" "να αλλάξουν∙ ωστόσο, η συλλογή αντικειμένων που αναφέρονται απευθείας από " "ένα αμετάβλητο αντικείμενο δεν μπορεί να αλλάξει.)" -#: reference/datamodel.rst:337 +#: reference/datamodel.rst:333 msgid "The following types are immutable sequences:" msgstr "Οι ακόλουθοι τύποι είναι αμετάβλητες ακολουθίες:" -#: reference/datamodel.rst:342 +#: reference/datamodel.rst:338 msgid "Strings" msgstr "Συμβολοσειρές" -#: reference/datamodel.rst:350 +#: reference/datamodel.rst:346 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 " @@ -601,11 +599,11 @@ msgstr "" "και η :meth:`bytes.decode` μπορεί να χρησιμοποιηθεί για να επιτευχθεί το " "αντίθετο." -#: reference/datamodel.rst:362 +#: reference/datamodel.rst:358 msgid "Tuples" msgstr "Πλειάδες (Tuples)" -#: reference/datamodel.rst:368 +#: reference/datamodel.rst:364 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 " @@ -622,11 +620,11 @@ msgstr "" "χρησιμοποιηθούν για ομαδοποίηση εκφράσεων). Μια κενή πλειάδα μπορεί να " "σχηματιστεί από ένα κενό ζευγάρι παρενθέσεων." -#: reference/datamodel.rst:375 +#: reference/datamodel.rst:371 msgid "Bytes" msgstr "Bytes" -#: reference/datamodel.rst:378 +#: reference/datamodel.rst:374 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 " @@ -637,15 +635,15 @@ msgstr "" "Ένα αντικείμενο bytes είναι ένας αμετάβλητος πίνακας. Τα στοιχεία είναι " "bytes των 8-bit, που αντιπροσωπεύονται από ακέραιους αριθμούς στο εύρος 0 <= " "x < 256. Τα bytes literals (όπως ``b'abc'``) και ο ενσωματωμένος " -"κατασκευαστής :func:`bytes()` μπορεί να χρησιμοποιηθεί για τη δημιουργία " +"κατασκευαστής :func:`bytes` μπορεί να χρησιμοποιηθεί για τη δημιουργία " "αντικειμένων bytes. Επίσης, τα αντικείμενα bytes μπορούν να " "αποκωδικοποιηθούν σε συμβολοσειρές μέσω της μεθόδου :meth:`~bytes.decode`." -#: reference/datamodel.rst:386 +#: reference/datamodel.rst:382 msgid "Mutable sequences" msgstr "Μεταβλητές ακολουθίες" -#: reference/datamodel.rst:395 +#: reference/datamodel.rst:391 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:" @@ -655,7 +653,7 @@ msgstr "" "σημειώσεις εγγραφής και τμηματοποίησης μπορούν να χρησιμοποιηθούν ως στόχος " "εκχώρησης και δηλώσεων :keyword:`del` (delete)." -#: reference/datamodel.rst:403 +#: reference/datamodel.rst:399 msgid "" "The :mod:`collections` and :mod:`array` module provide additional examples " "of mutable sequence types." @@ -663,15 +661,15 @@ msgstr "" "Τα modules :mod:`collections` και :mod:`array` παρέχουν πρόσθετα " "παραδείγματα μεταβλητών τύπων ακολουθιών." -#: reference/datamodel.rst:406 +#: reference/datamodel.rst:402 msgid "There are currently two intrinsic mutable sequence types:" msgstr "Υπάρχει επί του παρόντος δύο εγγενείς τύποι μεταβλητών ακολουθιών:" -#: reference/datamodel.rst:408 +#: reference/datamodel.rst:404 msgid "Lists" msgstr "Λίστες" -#: reference/datamodel.rst:411 +#: reference/datamodel.rst:407 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 " @@ -682,11 +680,11 @@ msgstr "" "αγκύλες. (Σημειώστε ότι δεν χρειάζονται ειδικές περιπτώσεις για να " "σχηματιστούν λίστες μήκους 0 ή 1.)" -#: reference/datamodel.rst:415 +#: reference/datamodel.rst:411 msgid "Byte Arrays" msgstr "Πίνακες Byte" -#: reference/datamodel.rst:418 +#: reference/datamodel.rst:414 msgid "" "A bytearray object is a mutable array. They are created by the built-in :" "func:`bytearray` constructor. Aside from being mutable (and hence " @@ -699,11 +697,11 @@ msgstr "" "παρέχουν την ίδια διεπαφή και λειτουργικότητα με τα αμετάβλητα αντικείμενα :" "class:`bytes`." -#: reference/datamodel.rst:425 +#: reference/datamodel.rst:421 msgid "Set types" msgstr "Σύνολο τύπων" -#: reference/datamodel.rst:431 +#: reference/datamodel.rst:427 msgid "" "These represent unordered, finite sets of unique, immutable objects. As " "such, they cannot be indexed by any subscript. However, they can be iterated " @@ -720,7 +718,7 @@ msgstr "" "διπλότυπων από μια αλληλουχία, μη συνδυαστική λειτουργία, και συμμετρική " "διαφορά." -#: reference/datamodel.rst:438 +#: reference/datamodel.rst:434 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 " @@ -733,15 +731,15 @@ msgstr "" "ίσοι (π.χ. ``1`` και ``1.0``), μόνο ένας από αυτούς μπορεί να περιέχεται σε " "ένα σύνολο." -#: reference/datamodel.rst:443 +#: reference/datamodel.rst:439 msgid "There are currently two intrinsic set types:" msgstr "Υπάρχουν επί του παρόντος δύο εγγενείς τύποι συνόλων:" -#: reference/datamodel.rst:446 +#: reference/datamodel.rst:442 msgid "Sets" msgstr "Σύνολα" -#: reference/datamodel.rst:449 +#: reference/datamodel.rst:445 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:" @@ -751,11 +749,11 @@ msgstr "" "ενσωματωμένο κατασκευαστή :func:`set` και μπορούν να τροποποιηθούν στη " "συνέχεια με διάφορες μεθόδους, όπως :meth:`~set.add`." -#: reference/datamodel.rst:454 +#: reference/datamodel.rst:450 msgid "Frozen sets" msgstr "Frozen σύνολα" -#: reference/datamodel.rst:457 +#: reference/datamodel.rst:453 msgid "" "These represent an immutable set. They are created by the built-in :func:" "`frozenset` constructor. As a frozenset is immutable and :term:`hashable`, " @@ -766,11 +764,11 @@ msgstr "" "αμετάβλητο και το :term:`hashable`, μπορεί να χρησιμοποιηθεί ξανά ως " "στοιχείο ενός άλλου συνόλου ή ως κλειδί λεξικού." -#: reference/datamodel.rst:464 +#: reference/datamodel.rst:460 msgid "Mappings" msgstr "Αντιστοιχίσεις" -#: reference/datamodel.rst:471 +#: reference/datamodel.rst:467 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 " @@ -785,15 +783,15 @@ msgstr "" "keyword:`del`. Η ενσωματωμένη συνάρτηση :func:`len` επιστρέφει τον αριθμό " "των στοιχείων σε μια αντιστοίχιση." -#: reference/datamodel.rst:477 +#: reference/datamodel.rst:473 msgid "There is currently a single intrinsic mapping type:" msgstr "Υπάρχει επί του παρόντος ένας ενιαίος εγγενής τύπος αντιστοίχισης:" -#: reference/datamodel.rst:481 +#: reference/datamodel.rst:477 msgid "Dictionaries" msgstr "Λεξικά" -#: reference/datamodel.rst:485 +#: reference/datamodel.rst:481 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 " @@ -815,7 +813,7 @@ msgstr "" "``1.0``), τότε μπορούν να χρησιμοποιηθούν εναλλακτικά για την ευρετηρίαση " "της ίδιας καταχώρησης λεξικού." -#: reference/datamodel.rst:494 +#: reference/datamodel.rst:490 msgid "" "Dictionaries preserve insertion order, meaning that keys will be produced in " "the same order they were added sequentially over the dictionary. Replacing " @@ -828,7 +826,7 @@ msgstr "" "αφαίρεση ενός κλειδιού και η επανεισαγωγή του θα προσθέσει στο τέλος αντί να " "διατηρήσει την παλιά του θέση." -#: reference/datamodel.rst:499 +#: reference/datamodel.rst:495 msgid "" "Dictionaries are mutable; they can be created by the ``{}`` notation (see " "section :ref:`dict`)." @@ -836,7 +834,7 @@ msgstr "" "Τα λεξικά είναι μεταβλητά· μπορούν να δημιουργηθούν με τη σημείωση ``{...}`` " "(βλ. ενότητα :ref:`dict`)." -#: reference/datamodel.rst:506 +#: reference/datamodel.rst:502 msgid "" "The extension modules :mod:`dbm.ndbm` and :mod:`dbm.gnu` provide additional " "examples of mapping types, as does the :mod:`collections` module." @@ -844,7 +842,7 @@ msgstr "" "Τα modules επέκτασης :mod:`dbm.ndbm` και :mod:`dbm.gnu` παρέχουν πρόσθετα " "παραδείγματα τύπων αντιστοίχισης, όπως και το module :mod:`collections`." -#: reference/datamodel.rst:510 +#: reference/datamodel.rst:506 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 " @@ -854,11 +852,11 @@ msgstr "" "την 3.6. Στη CPython 3.6, η σειρά εισαγωγής διατηρήθηκε, αλλά θεωρήθηκε ως " "λεπτομέρεια υλοποίησης εκείνη τη στιγμή και όχι ως εγγύηση γλώσσας." -#: reference/datamodel.rst:517 +#: reference/datamodel.rst:513 msgid "Callable types" msgstr "Τύποι με δυνατότητα κλήσης" -#: reference/datamodel.rst:525 +#: reference/datamodel.rst:521 msgid "" "These are the types to which the function call operation (see section :ref:" "`calls`) can be applied:" @@ -866,11 +864,11 @@ msgstr "" "Αυτοί είναι οι τύποι στους οποίους μπορεί να εφαρμοστεί η λειτουργία κλήσης " "συνάρτησης (βλ. ενότητα :ref:`calls`) :" -#: reference/datamodel.rst:532 +#: reference/datamodel.rst:528 msgid "User-defined functions" msgstr "Συναρτήσεις που καθορίζονται από το χρήστη" -#: reference/datamodel.rst:539 +#: reference/datamodel.rst:535 msgid "" "A user-defined function object is created by a function definition (see " "section :ref:`function`). It should be called with an argument list " @@ -881,19 +879,19 @@ msgstr "" "με μια λίστα ορισμών που περιέχει τον ίδιο αριθμό στοιχείων με την επίσημη " "λίστα παραμέτρων της συνάρτησης." -#: reference/datamodel.rst:1395 reference/datamodel.rst:1594 +#: reference/datamodel.rst:1399 reference/datamodel.rst:1598 msgid "Special read-only attributes" msgstr "Ειδικά χαρακτηριστικά μόνο για ανάγνωση" -#: reference/datamodel.rst:590 reference/datamodel.rst:1170 +#: reference/datamodel.rst:586 reference/datamodel.rst:1167 msgid "Attribute" msgstr "Χαρακτηριστικό" -#: reference/datamodel.rst:591 reference/datamodel.rst:1171 +#: reference/datamodel.rst:587 reference/datamodel.rst:1168 msgid "Meaning" msgstr "Έννοια" -#: reference/datamodel.rst:559 +#: reference/datamodel.rst:555 msgid "" "A reference to the :class:`dictionary ` that holds the function's :ref:" "`global variables ` -- the global namespace of the module in which " @@ -903,7 +901,7 @@ msgstr "" "variables ` -- τον καθολικό χώρο ονομάτων του module στην οποία " "ορίστηκε η συνάρτηση." -#: reference/datamodel.rst:564 +#: reference/datamodel.rst:560 msgid "" "``None`` or a :class:`tuple` of cells that contain bindings for the names " "specified in the :attr:`~codeobject.co_freevars` attribute of the " @@ -913,7 +911,7 @@ msgstr "" "ονόματα που καθορίζονται στο χαρακτηριστικό :attr:`~codeobject.co_freevars` " "της :attr:`code object ` της συνάρτησης." -#: reference/datamodel.rst:568 +#: reference/datamodel.rst:564 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." @@ -922,22 +920,22 @@ msgstr "" "να χρησιμοποιηθεί για να ληφθεί η τιμή του κελιού, καθώς και να οριστεί η " "τιμή." -#: reference/datamodel.rst:1636 +#: reference/datamodel.rst:1640 msgid "Special writable attributes" msgstr "Ειδικά εγγράψιμα χαρακτηριστικά" -#: reference/datamodel.rst:585 +#: reference/datamodel.rst:581 msgid "Most of these attributes check the type of the assigned value:" msgstr "" "Τα περισσότερα από αυτά τα χαρακτηριστικά ελέγχουν τον τύπο της εκχωρημένης " "τιμής:" -#: reference/datamodel.rst:594 +#: reference/datamodel.rst:590 msgid "The function's documentation string, or ``None`` if unavailable." msgstr "" "Η συμβολοσειρά τεκμηρίωσης της συνάρτηση ή ``None`` εάν δεν είναι διαθέσιμη." -#: reference/datamodel.rst:597 +#: reference/datamodel.rst:593 msgid "" "The function's name. See also: :attr:`__name__ attributes `." @@ -945,7 +943,7 @@ msgstr "" "Το όνομα της συνάρτησης. Δείτε επίσης :attr:`__name__ attributes `." -#: reference/datamodel.rst:601 +#: reference/datamodel.rst:597 msgid "" "The function's :term:`qualified name`. See also: :attr:`__qualname__ " "attributes `." @@ -953,7 +951,7 @@ msgstr "" "Η συνάρτηση είναι :term:`qualified name`. Δείτε επίσης :attr:`__qualname__ " "attributes `." -#: reference/datamodel.rst:607 +#: reference/datamodel.rst:603 msgid "" "The name of the module the function was defined in, or ``None`` if " "unavailable." @@ -961,7 +959,7 @@ msgstr "" "Το όνομα του module στην οποία ορίστηκε η συνάρτηση ή ``None`` εάν δεν είναι " "διαθέσιμη." -#: reference/datamodel.rst:611 +#: reference/datamodel.rst:607 msgid "" "A :class:`tuple` containing default :term:`parameter` values for those " "parameters that have defaults, or ``None`` if no parameters have a default " @@ -971,7 +969,7 @@ msgstr "" "εκείνες τις παραμέτρους που έχουν προεπιλογές ή ``None`` εάν καμία " "παράμετρος δεν έχει προεπιλεγμένη τιμή." -#: reference/datamodel.rst:616 +#: reference/datamodel.rst:612 msgid "" "The :ref:`code object ` representing the compiled function " "body." @@ -979,7 +977,7 @@ msgstr "" "Το αντικείμενο :ref:`code object ` που αντιπροσωπεύει το " "μεταγλωττισμένο σώμα συνάρτησης." -#: reference/datamodel.rst:620 +#: reference/datamodel.rst:616 msgid "" "The namespace supporting arbitrary function attributes. See also: :attr:" "`__dict__ attributes `." @@ -987,7 +985,7 @@ msgstr "" "Ο χώρος ονομάτων που υποστηρίζει αυθαίρετα χαρακτηριστικά συνάρτησης. Δείτε " "επίσης :attr:`__dict__ attributes `." -#: reference/datamodel.rst:624 +#: reference/datamodel.rst:620 msgid "" "A :class:`dictionary ` containing annotations of :term:`parameters " "`. The keys of the dictionary are the parameter names, and " @@ -999,7 +997,7 @@ msgstr "" "παραμέτρων και ``'return'``, για το annotation επιστροφής, εάν παρέχεται. " "Δείτε επίσης: :ref:`annotations-howto`." -#: reference/datamodel.rst:631 +#: reference/datamodel.rst:627 msgid "" "A :class:`dictionary ` containing defaults for keyword-only :term:" "`parameters `." @@ -1007,7 +1005,7 @@ msgstr "" "Μια :class:`dictionary ` που περιέχει προεπιλογές για λέξεις-κλειδιά " "μόνο :term:`parameters `." -#: reference/datamodel.rst:635 +#: reference/datamodel.rst:631 msgid "" "A :class:`tuple` containing the :ref:`type parameters ` of a :" "ref:`generic function `." @@ -1015,7 +1013,7 @@ msgstr "" "Μια :class:`tuple` που περιέχει τις παραμέτρους :ref:`type parameters ` μιας :ref:`generic function `." -#: reference/datamodel.rst:640 +#: reference/datamodel.rst:636 msgid "" "Function objects also support getting and setting arbitrary attributes, " "which can be used, for example, to attach metadata to functions. Regular " @@ -1027,7 +1025,7 @@ msgstr "" "σημειογραφία σημείων χαρακτηριστικών χρησιμοποιείται για τη λήψη και τον " "ορισμό τέτοιων χαρακτηριστικών." -#: reference/datamodel.rst:646 +#: reference/datamodel.rst:642 msgid "" "CPython's current implementation only supports function attributes on user-" "defined functions. Function attributes on :ref:`built-in functions ` ενδέχεται να " "υποστηρίζονται στο μέλλον." -#: reference/datamodel.rst:651 +#: reference/datamodel.rst:647 msgid "" "Additional information about a function's definition can be retrieved from " "its :ref:`code object ` (accessible via the :attr:`~function." @@ -1048,11 +1046,11 @@ msgstr "" "συνάρτησης από το αντικείμενο :ref:`code object ` (προσβάσιμο " "μέσω του χαρακτηριστικού :attr:`~function.__code__`)." -#: reference/datamodel.rst:659 +#: reference/datamodel.rst:655 msgid "Instance methods" msgstr "Μέθοδοι Στιγμιοτύπου" -#: reference/datamodel.rst:666 +#: reference/datamodel.rst:662 msgid "" "An instance method object combines a class, a class instance and any " "callable object (normally a user-defined function)." @@ -1061,11 +1059,11 @@ msgstr "" "κλάσης και οποιοδήποτε αντικείμενο που μπορεί να κληθεί (συνήθως μια " "συνάρτηση που ορίζεται από τον χρήστη.)" -#: reference/datamodel.rst:1732 +#: reference/datamodel.rst:1736 msgid "Special read-only attributes:" msgstr "Ειδικά χαρακτηριστικά μόνο για ανάγνωση:" -#: reference/datamodel.rst:681 +#: reference/datamodel.rst:677 msgid "" "Refers to the class instance object to which the method is :ref:`bound " "`" @@ -1073,11 +1071,11 @@ msgstr "" "Αναφέρεται στο αντικείμενο στιγμιοτύπου κλάσης στο οποίο βρίσκεται η " "μέθοδος :ref:`bound `" -#: reference/datamodel.rst:685 +#: reference/datamodel.rst:681 msgid "Refers to the original :ref:`function object `" msgstr "Αναφέρεται στο αρχικό :ref:`function object `" -#: reference/datamodel.rst:688 +#: reference/datamodel.rst:684 msgid "" "The method's documentation (same as :attr:`method.__func__.__doc__ `). A :class:`string ` if the original function had a " @@ -1087,7 +1085,7 @@ msgstr "" "`). Μια :class:`string ` εάν η αρχική συνάρτηση είχε " "docstring, αλλιώς ``None``." -#: reference/datamodel.rst:694 +#: reference/datamodel.rst:690 msgid "" "The name of the method (same as :attr:`method.__func__.__name__ `)" @@ -1095,14 +1093,14 @@ msgstr "" "Το όνομα της μεθόδου (ίδιο με το :attr:`method.__func__.__name__ `)" -#: reference/datamodel.rst:698 +#: reference/datamodel.rst:694 msgid "" "The name of the module the method was defined in, or ``None`` if unavailable." msgstr "" "Το όνομα του module στην οποία ορίστηκε η μέθοδος, ή ``None`` εάν δεν είναι " "διαθέσιμη." -#: reference/datamodel.rst:701 +#: reference/datamodel.rst:697 msgid "" "Methods also support accessing (but not setting) the arbitrary function " "attributes on the underlying :ref:`function object `." @@ -1111,7 +1109,7 @@ msgstr "" "αυθαίρετων χαρακτηριστικών συνάρτησης στο υποκείμενο αντικείμενο :ref:" "`function object `." -#: reference/datamodel.rst:704 +#: reference/datamodel.rst:700 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-" @@ -1124,7 +1122,7 @@ msgstr "" "`function object ` ή ένα αντικείμενο :class:" "`classmethod`." -#: reference/datamodel.rst:711 +#: reference/datamodel.rst:707 msgid "" "When an instance method object is created by retrieving a user-defined :ref:" "`function object ` from a class via one of its " @@ -1139,7 +1137,7 @@ msgstr "" "Το χαρακτηριστικό :attr:`~method.__func__` της νέας μεθόδου είναι το αρχικό " "αντικείμενο συνάρτησης." -#: reference/datamodel.rst:717 +#: reference/datamodel.rst:713 msgid "" "When an instance method object is created by retrieving a :class:" "`classmethod` object from a class or instance, its :attr:`~method.__self__` " @@ -1152,7 +1150,7 @@ msgstr "" "χαρακτηριστικό :attr:`~method.__func__` είναι το αντικείμενο συνάρτησης που " "βρίσκεται κάτω από τη μέθοδο κλάσης." -#: reference/datamodel.rst:722 +#: reference/datamodel.rst:718 msgid "" "When an instance method object is called, the underlying function (:attr:" "`~method.__func__`) is called, inserting the class instance (:attr:`~method." @@ -1168,7 +1166,7 @@ msgstr "" "συνάρτηση :meth:`!f`, και το ``x`` είναι ένα στιγμιότυπο της :class:`!C`, η " "κλήση του ``x.f(1)`` ισοδυναμεί με την κλήση του ``C.f(x, 1)``." -#: reference/datamodel.rst:729 +#: reference/datamodel.rst:725 msgid "" "When an instance method object is derived from a :class:`classmethod` " "object, the \"class instance\" stored in :attr:`~method.__self__` will " @@ -1179,10 +1177,10 @@ msgstr "" "Όταν ένα αντικείμενο μεθόδου στιγμιοτύπου προέρχεται από ένα αντικείμενο :" "class:`classmethod`, το \"στιγμιότυπο κλάσης\" που είναι αποθηκευμένο στη :" "attr:`~method.__self__` θα είναι στη πραγματικότητα η ίδια η κλάση, έτσι " -"ώστε η κλήση είτε του ``x.f(1)` ή του ``C.f(1)`` ισοδυναμεί με την κλήση του " -"``f(C,1)`` όπου το ``f`` είναι η υποκείμενη συνάρτηση." +"ώστε η κλήση είτε του ``x.f(1)`` ή του ``C.f(1)`` ισοδυναμεί με την κλήση " +"του ``f(C,1)`` όπου το ``f`` είναι η υποκείμενη συνάρτηση." -#: reference/datamodel.rst:734 +#: reference/datamodel.rst:730 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 " @@ -1193,11 +1191,11 @@ msgstr "" "δεσμευμένες μεθόδους∙ Αυτό συμβαίνει *μόνο* όταν η συνάρτηση είναι " "χαρακτηριστικό της κλάσης." -#: reference/datamodel.rst:741 +#: reference/datamodel.rst:737 msgid "Generator functions" msgstr "Generator Συναρτήσεις" -#: reference/datamodel.rst:747 +#: reference/datamodel.rst:743 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 " @@ -1219,11 +1217,11 @@ msgstr "" "πέσει στο τέλος, γίνεται raise μια εξαίρεση :exc:`StopIteration` και ο " "iterator θα έχει φτάσει στο τέλος του συνόλου τιμών που θα επιστραφεί." -#: reference/datamodel.rst:759 +#: reference/datamodel.rst:755 msgid "Coroutine functions" msgstr "Coroutine συναρτήσεις" -#: reference/datamodel.rst:764 +#: reference/datamodel.rst:760 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:" @@ -1237,11 +1235,11 @@ msgstr "" "εκφράσεις :keyword:`await`, καθώς και :keyword:`async with` και :keyword:" "`async for`. Δείτε επίσης την ενότητα :ref:`coroutine-objects`." -#: reference/datamodel.rst:772 +#: reference/datamodel.rst:768 msgid "Asynchronous generator functions" msgstr "Asynchronous generator συναρτήσεις" -#: reference/datamodel.rst:778 +#: reference/datamodel.rst:774 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 " @@ -1256,7 +1254,7 @@ msgstr "" "χρησιμοποιηθεί σε μια δήλωση :keyword:`async for` για την εκτέλεση του " "σώματος της συνάρτησης." -#: reference/datamodel.rst:784 +#: reference/datamodel.rst:780 msgid "" "Calling the asynchronous iterator's :meth:`aiterator.__anext__ ` method will return an :term:`awaitable` which when awaited will " @@ -1274,11 +1272,11 @@ msgstr "" "`StopAsyncIteration` και ο ασύγχρονος iterator θα έχει φτάσει στο τέλος του " "συνόλου τιμών που θα αποδοθούν." -#: reference/datamodel.rst:797 +#: reference/datamodel.rst:793 msgid "Built-in functions" msgstr "Ενσωματωμένες συναρτήσεις" -#: reference/datamodel.rst:804 +#: reference/datamodel.rst:800 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 " @@ -1291,7 +1289,7 @@ msgstr "" "και ο τύπος των ορισμάτων καθορίζονται από τη συνάρτηση C. Ειδικά " "χαρακτηριστικά μόνο για ανάγνωση:" -#: reference/datamodel.rst:809 +#: reference/datamodel.rst:805 msgid "" ":attr:`!__doc__` is the function's documentation string, or ``None`` if " "unavailable. See :attr:`function.__doc__`." @@ -1299,20 +1297,20 @@ msgstr "" "Η :attr:`!__doc__` είναι η συμβολοσειρά τεκμηρίωσης της συνάρτησης, ή " "``None`` εάν δεν είναι διαθέσιμη . Δείτε :attr:`function.__doc__`." -#: reference/datamodel.rst:811 +#: reference/datamodel.rst:807 msgid "" ":attr:`!__name__` is the function's name. See :attr:`function.__name__`." msgstr "" "Η :attr:`!__name__` είναι το όνομα της συνάρτησης. Δείτε :attr:`function." "__name__`." -#: reference/datamodel.rst:812 +#: reference/datamodel.rst:808 msgid ":attr:`!__self__` is set to ``None`` (but see the next item)." msgstr "" "Η :attr:`!__self__` έχει οριστεί σε ``None`` (αλλά δείτε το επόμενο " "στοιχείο)." -#: reference/datamodel.rst:813 +#: reference/datamodel.rst:809 msgid "" ":attr:`!__module__` is the name of the module the function was defined in or " "``None`` if unavailable. See :attr:`function.__module__`." @@ -1321,11 +1319,11 @@ msgstr "" "συνάρτηση ή ``None`` εάν δεν είναι διαθέσιμη. Δείτε :attr:`function." "__module__`." -#: reference/datamodel.rst:821 +#: reference/datamodel.rst:817 msgid "Built-in methods" msgstr "Ενσωματωμένες μεθόδους" -#: reference/datamodel.rst:828 +#: reference/datamodel.rst:824 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 " @@ -1344,11 +1342,11 @@ msgstr "" "*alist*. (Το χαρακτηριστικό έχει την ίδια σημασιολογία με το :attr:`other " "instance methods `.)" -#: reference/datamodel.rst:838 +#: reference/datamodel.rst:834 msgid "Classes" msgstr "Κλάσεις" -#: reference/datamodel.rst:840 +#: reference/datamodel.rst:836 msgid "" "Classes are callable. These objects normally act as factories for new " "instances of themselves, but variations are possible for class types that " @@ -1363,11 +1361,11 @@ msgstr "" "στην τυπική περίπτωση, στη :meth:`~object.__init__` για να αρχικοποιηθεί το " "νέο στιγμιότυπο." -#: reference/datamodel.rst:848 +#: reference/datamodel.rst:844 msgid "Class Instances" msgstr "Στιγμιότυπα Κλάσης" -#: reference/datamodel.rst:850 +#: reference/datamodel.rst:846 msgid "" "Instances of arbitrary classes can be made callable by defining a :meth:" "`~object.__call__` method in their class." @@ -1375,11 +1373,11 @@ msgstr "" "Τα στιγμιότυπα αυθαίρετων κλάσεων μπορούν να έχουν την δυνατότητα κλήσης " "ορίζοντας μια μέθοδο :meth:`~object.__call__` στην κλάση τους." -#: reference/datamodel.rst:857 +#: reference/datamodel.rst:853 msgid "Modules" msgstr "Modules" -#: reference/datamodel.rst:863 +#: reference/datamodel.rst:859 msgid "" "Modules are a basic organizational unit of Python code, and are created by " "the :ref:`import system ` as invoked either by the :keyword:" @@ -1406,7 +1404,7 @@ msgstr "" "για την προετοιμασία του module (καθώς δεν χρειάζεται μόλις ολοκληρωθεί η " "προετοιμασία)." -#: reference/datamodel.rst:876 +#: reference/datamodel.rst:872 msgid "" "Attribute assignment updates the module's namespace dictionary, e.g., ``m.x " "= 1`` is equivalent to ``m.__dict__[\"x\"] = 1``." @@ -1414,11 +1412,11 @@ msgstr "" "Η εκχώρηση χαρακτηριστικών ενημερώνει το λεξικό χώρου ονομάτων του module, π." "χ., ``m.x = 1`` ισοδυναμεί με ``m.__dict__[\"x\"] = 1``." -#: reference/datamodel.rst:894 +#: reference/datamodel.rst:890 msgid "Import-related attributes on module objects" msgstr "Χαρακτηριστικά που σχετίζονται με εισαγωγή σε αντικείμενα modules" -#: reference/datamodel.rst:896 +#: reference/datamodel.rst:892 msgid "" "Module objects have the following attributes that relate to the :ref:`import " "system `. When a module is created using the machinery " @@ -1432,7 +1430,7 @@ msgstr "" "χαρακτηριστικά συμπληρώνονται με βάση το :term:`spec ` του " "module, προτού το :term:`loader` εκτελέσει και φορτώσει το module." -#: reference/datamodel.rst:902 +#: reference/datamodel.rst:898 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 " @@ -1451,7 +1449,7 @@ msgstr "" "χαρακτηριστικά πρέπει να οριστούν χειροκίνητα στο αντικείμενο του module " "αφού δημιουργηθεί κατά τη χρήση αυτής της προσέγγισης." -#: reference/datamodel.rst:912 +#: reference/datamodel.rst:908 msgid "" "With the exception of :attr:`~module.__name__`, it is **strongly** " "recommended that you rely on :attr:`~module.__spec__` and its attributes " @@ -1465,7 +1463,7 @@ msgstr "" "την υποενότητα. Σημειώστε ότι η ενημέρωση ενός χαρακτηριστικού στο :attr:`!" "__spec__` δεν θα ενημερώσει το αντίστοιχο χαρακτηριστικό στο ίδιο το module:" -#: reference/datamodel.rst:918 +#: reference/datamodel.rst:914 msgid "" ">>> import typing\n" ">>> typing.__name__, typing.__spec__.name\n" @@ -1487,7 +1485,7 @@ msgstr "" ">>> typing.__name__, typing.__spec__.name\n" "('keyboard_smashing', 'spelling')" -#: reference/datamodel.rst:932 +#: reference/datamodel.rst:928 msgid "" "The name used to uniquely identify the module in the import system. For a " "directly executed module, this will be set to ``\"__main__\"``." @@ -1496,7 +1494,7 @@ msgstr "" "σύστημα εισαγωγής. Για ένα άμεσο εκτελούμενο module, αυτό θα οριστεί σε " "``\"__main__\"``." -#: reference/datamodel.rst:935 +#: reference/datamodel.rst:931 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:941 +#: reference/datamodel.rst:937 msgid "A record of the module's import-system-related state." msgstr "" "Μια εγγραφή της κατάστασης του module που σχετίζεται με το σύστημα εισαγωγής." -#: reference/datamodel.rst:943 +#: reference/datamodel.rst:939 msgid "" "Set to the :class:`module spec ` that was " "used when importing the module. See :ref:`module-specs` for more details." @@ -1520,11 +1518,11 @@ msgstr "" "που χρησιμοποιήθηκε κατά την εισαγωγή της ενότητας. Δείτε το :ref:`module-" "specs` για περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:950 +#: reference/datamodel.rst:946 msgid "The :term:`package` a module belongs to." msgstr "Το :term:`package` στο οποίο ανήκει μια ενότητα." -#: reference/datamodel.rst:952 +#: reference/datamodel.rst:948 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 " @@ -1539,7 +1537,7 @@ msgstr "" "__name__` εάν η ίδια η ενότητα είναι πακέτο). Δείτε :pep:`366` για " "περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:958 +#: reference/datamodel.rst:954 msgid "" "This attribute is used instead of :attr:`~module.__name__` to calculate " "explicit relative imports for main modules. It defaults to ``None`` for " @@ -1554,7 +1552,7 @@ msgstr "" "το :func:`importlib.util.module_from_spec` για να βεβαιωθείτε ότι το " "χαρακτηριστικό έχει οριστεί σε :class:`str`." -#: reference/datamodel.rst:964 +#: reference/datamodel.rst:960 msgid "" "It is **strongly** recommended that you use :attr:`module.__spec__.parent " "` instead of :attr:`!module." @@ -1567,7 +1565,7 @@ msgstr "" "ως εφεδρική εντολή εάν η εντολή :attr:`!__spec__.parent` δεν έχει οριστεί " "και αυτή η εφεδρική διαδρομή έχει καταργηθεί." -#: reference/datamodel.rst:1011 +#: reference/datamodel.rst:1007 msgid "" "This attribute now defaults to ``None`` for modules created dynamically " "using the :class:`types.ModuleType` constructor. Previously the attribute " @@ -1577,7 +1575,7 @@ msgstr "" "modules που δημιουργούνται δυναμικά χρησιμοποιώντας τον κατασκευαστή :class:" "`types.ModuleType`. Προηγουμένως, το χαρακτηριστικό ήταν προαιρετικό." -#: reference/datamodel.rst:975 +#: reference/datamodel.rst:971 msgid "" "The value of :attr:`!__package__` is expected to be the same as :attr:" "`__spec__.parent `. :attr:" @@ -1589,7 +1587,7 @@ msgstr "" "`__package__` χρησιμοποιείται πλέον μόνο ως εφεδρική τιμή κατά την ανάλυση " "εισαγωγής εάν δεν έχει οριστεί το :attr:`!__spec__.parent`." -#: reference/datamodel.rst:981 +#: reference/datamodel.rst:977 msgid "" ":exc:`ImportWarning` is raised if an import resolution falls back to :attr:`!" "__package__` instead of :attr:`__spec__.parent `." -#: reference/datamodel.rst:986 +#: reference/datamodel.rst:982 msgid "" "Raise :exc:`DeprecationWarning` instead of :exc:`ImportWarning` when falling " "back to :attr:`!__package__` during import resolution." @@ -1607,7 +1605,7 @@ msgstr "" "Γίνεται :exc:`DeprecationWarning` αντί για :exc:`ImportWarning` κατά την " "επιστροφή στο :attr:`!__package__` κατά την επίλυση της εισαγωγής." -#: reference/datamodel.rst:990 +#: reference/datamodel.rst:986 msgid "" ":attr:`!__package__` will cease to be set or taken into consideration by the " "import system or standard library." @@ -1615,14 +1613,14 @@ msgstr "" "To :attr:`!__package__` θα πάψει να ορίζεται ή να λαμβάνεται υπόψη από το " "σύστημα εισαγωγής ή την τυπική βιβλιοθήκη." -#: reference/datamodel.rst:996 +#: reference/datamodel.rst:992 msgid "" "The :term:`loader` object that the import machinery used to load the module." msgstr "" "Το αντικείμενο :term:`loader` που χρησιμοποίησε ο μηχανισμός εισαγωγής για " "τη φόρτωση του module." -#: reference/datamodel.rst:998 +#: reference/datamodel.rst:994 msgid "" "This attribute is mostly useful for introspection, but can be used for " "additional loader-specific functionality, for example getting data " @@ -1632,7 +1630,7 @@ msgstr "" "χρησιμοποιηθεί για πρόσθετη λειτουργικότητα ειδικά για τον loader, για " "παράδειγμα για τη λήψη δεδομένων που σχετίζονται με έναν loader." -#: reference/datamodel.rst:1002 +#: reference/datamodel.rst:998 msgid "" ":attr:`!__loader__` defaults to ``None`` for modules created dynamically " "using the :class:`types.ModuleType` constructor; use :func:`importlib.util." @@ -1645,7 +1643,7 @@ msgstr "" "να βεβαιωθείτε ότι το χαρακτηριστικό έχει οριστεί σε ένα αντικείμενο :term:" "`loader`." -#: reference/datamodel.rst:1007 +#: reference/datamodel.rst:1003 msgid "" "It is **strongly** recommended that you use :attr:`module.__spec__.loader " "` instead of :attr:`!module." @@ -1655,7 +1653,7 @@ msgstr "" "loader ` αντί για την εντολή :attr:`!" "module.__loader__`." -#: reference/datamodel.rst:1016 +#: reference/datamodel.rst:1012 msgid "" "Setting :attr:`!__loader__` on a module while failing to set :attr:`!" "__spec__.loader` is deprecated. In Python 3.16, :attr:`!__loader__` will " @@ -1667,7 +1665,7 @@ msgstr "" "attr:`!__loader__` θα πάψει να ορίζεται η να λαμβάνεται υπόψη από το σύστημα " "εισαγωγής ή την τυπική βιβλιοθήκη." -#: reference/datamodel.rst:1024 +#: reference/datamodel.rst:1020 msgid "" "A (possibly empty) :term:`sequence` of strings enumerating the locations " "where the package's submodules will be found. Non-package modules should not " @@ -1679,7 +1677,7 @@ msgstr "" "είναι πακέτα δεν θα πρέπει να έχουν το χαρακτηριστικό :attr:`!__path__`. " "Δείτε το :ref:`package-path-rules` για περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:1029 +#: reference/datamodel.rst:1025 msgid "" "It is **strongly** recommended that you use :attr:`module.__spec__." "submodule_search_locations ` αντί για το :attr:`!module.__path__`." -#: reference/datamodel.rst:1036 +#: reference/datamodel.rst:1032 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 " @@ -1699,7 +1697,7 @@ msgstr "" "χαρακτηριστικά, τα οποία ενδέχεται να μην έχουν οριστεί. Όταν είναι " "διαθέσιμα, και τα δύο θα πρέπει να είναι αντικείμενα τύπου μιας :class:`str`." -#: reference/datamodel.rst:1040 +#: reference/datamodel.rst:1036 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 " @@ -1718,7 +1716,7 @@ msgstr "" "δεν έχει σημασιολογική αξία (π.χ. ένα module που φορτώνεται από μια βάση " "δεδομένων)." -#: reference/datamodel.rst:1048 +#: reference/datamodel.rst:1044 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 " @@ -1733,7 +1731,7 @@ msgstr "" "χαρακτηριστικό. Η διαδρομή μπορεί απλά να επισημάνει το πού *θα* υπήρχε το " "αρχείο που έχει καταρτιστεί (βλ. :pep:`3147`)." -#: reference/datamodel.rst:1054 +#: reference/datamodel.rst:1050 msgid "" "Note that :attr:`!__cached__` may be set even if :attr:`!__file__` is not " "set. However, that scenario is quite atypical. Ultimately, the :term:" @@ -1750,7 +1748,7 @@ msgstr "" "φορτωθεί από ένα προσωρινό module, αλλά διαφορετικά δεν φορτώνεται από ένα " "αρχείο, αυτό το άτυπο σενάριο μπορεί να είναι κατάλληλο." -#: reference/datamodel.rst:1061 +#: reference/datamodel.rst:1057 msgid "" "It is **strongly** recommended that you use :attr:`module.__spec__.cached " "` instead of :attr:`!module." @@ -1760,7 +1758,7 @@ msgstr "" "` αντί για το :attr:`!module." "__cached__`." -#: reference/datamodel.rst:1065 +#: reference/datamodel.rst:1061 msgid "" "Setting :attr:`!__cached__` on a module while failing to set :attr:`!" "__spec__.cached` is deprecated. In Python 3.15, :attr:`!__cached__` will " @@ -1772,11 +1770,11 @@ msgstr "" "attr:`!__cached__` θα πάψει να ορίζεται η να λαμβάνεται υπόψη από το σύστημα " "εισαγωγής ή την τυπική βιβλιοθήκη." -#: reference/datamodel.rst:1072 +#: reference/datamodel.rst:1068 msgid "Other writable attributes on module objects" msgstr "Άλλα εγγράφως χαρακτηριστικά σε αντικείμενα μονάδων" -#: reference/datamodel.rst:1074 +#: reference/datamodel.rst:1070 msgid "" "As well as the import-related attributes listed above, module objects also " "have the following writable attributes:" @@ -1785,7 +1783,7 @@ msgstr "" "παραπάνω, τα αντικείμενα της μονάδας έχουν επίσης τα ακόλουθα δικαιολογημένα " "χαρακτηριστικά:" -#: reference/datamodel.rst:1079 +#: reference/datamodel.rst:1075 msgid "" "The module's documentation string, or ``None`` if unavailable. See also: :" "attr:`__doc__ attributes `." @@ -1793,7 +1791,7 @@ msgstr "" "Η συμβολοσειρά τεκμηρίωσης του module, ή ``None`` αν δεν είναι διαθέσιμη. " "Δείτε επίσης: :attr:`__doc__ attributes `." -#: reference/datamodel.rst:1084 +#: reference/datamodel.rst:1080 msgid "" "A dictionary containing :term:`variable annotations ` " "collected during module body execution. For best practices on working with :" @@ -1804,17 +1802,17 @@ msgstr "" "βέλτιστες πρακτικές για την εργασία με :attr:`__annotations__`, παρακαλούμε " "δείτε :ref:`annotations-howto`." -#: reference/datamodel.rst:1090 +#: reference/datamodel.rst:1086 msgid "Module dictionaries" msgstr "Λεξικά Modules" -#: reference/datamodel.rst:1092 +#: reference/datamodel.rst:1088 msgid "Module objects also have the following special read-only attribute:" msgstr "" "Τα αντικείμενα module έχουν επίσης την ακόλουθη ειδική ιδιότητα μόνο για " "ανάγνωση:" -#: reference/datamodel.rst:1097 +#: reference/datamodel.rst:1093 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 " @@ -1825,7 +1823,7 @@ msgstr "" "προσπελαστεί ως καθολική μεταβλητή από μέσα σε ένα module∙ μπορεί να " "προσπελαστεί μόνο ως χαρακτηριστικό σε αντικείμενα module." -#: reference/datamodel.rst:1103 +#: reference/datamodel.rst:1099 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 " @@ -1838,11 +1836,11 @@ msgstr "" "αποφύγετε αυτό, αντιγράψτε το λεξικό ή κρατήστε το module ενώ " "χρησιμοποιείται απευθείας το λεξικό της." -#: reference/datamodel.rst:1112 +#: reference/datamodel.rst:1108 msgid "Custom classes" msgstr "Προσαρμοσμένες κλάσεις" -#: reference/datamodel.rst:1114 +#: reference/datamodel.rst:1110 msgid "" "Custom class types are typically created by class definitions (see section :" "ref:`class`). A class has a namespace implemented by a dictionary object. " @@ -1870,7 +1868,7 @@ msgstr "" "λεπτομέρειες για το C3 MRO που χρησιμοποιείται από την Python μπορείτε να " "βρείτε στην διεύθυνση :ref:`python_2.3_mro`." -#: reference/datamodel.rst:1135 +#: reference/datamodel.rst:1131 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 :" @@ -1890,7 +1888,7 @@ msgstr "" "να διαφέρουν από αυτά που πραγματικά περιέχονται στο :attr:`~object." "__dict__` της." -#: reference/datamodel.rst:1146 +#: reference/datamodel.rst:1142 msgid "" "Class attribute assignments update the class's dictionary, never the " "dictionary of a base class." @@ -1898,7 +1896,7 @@ msgstr "" "Οι αναθέσεις χαρακτηριστικών κλάσης ενημερώνουν το λεξικό της κλάσης, ποτέ " "το λεξικό μιας βασικής κλάσης." -#: reference/datamodel.rst:1151 +#: reference/datamodel.rst:1147 msgid "" "A class object can be called (see above) to yield a class instance (see " "below)." @@ -1906,11 +1904,11 @@ msgstr "" "Ένα αντικείμενο κλάσης μπορεί να κληθεί (δείτε παραπάνω) για να δώσει ένα " "στιγμιότυπο κλάσης (δείτε παρακάτω)." -#: reference/datamodel.rst:1301 +#: reference/datamodel.rst:1305 msgid "Special attributes" msgstr "Ειδικά χαρακτηριστικά" -#: reference/datamodel.rst:1174 +#: reference/datamodel.rst:1171 msgid "" "The class's name. See also: :attr:`__name__ attributes `." @@ -1918,7 +1916,7 @@ msgstr "" "Το όνομα της κλάσης, Δείτε επίσης: :attr:`__name__ attributes `." -#: reference/datamodel.rst:1178 +#: reference/datamodel.rst:1175 msgid "" "The class's :term:`qualified name`. See also: :attr:`__qualname__ attributes " "`." @@ -1926,11 +1924,11 @@ msgstr "" "Το :term:`qualified name` της κλάσης. Δείτε επίσης: :attr:`__qualname__ " "attributes `." -#: reference/datamodel.rst:1182 +#: reference/datamodel.rst:1179 msgid "The name of the module in which the class was defined." msgstr "Το όνομα του module στην οποία ορίστηκε η κλάση." -#: reference/datamodel.rst:1185 +#: reference/datamodel.rst:1182 msgid "" "A :class:`mapping proxy ` providing a read-only view " "of the class's namespace. See also: :attr:`__dict__ attributes `." -#: reference/datamodel.rst:1190 +#: reference/datamodel.rst:1187 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 " @@ -1950,7 +1948,17 @@ msgstr "" "περιπτώσεις, για μια κλάση που ορίζεται ως ``class X(A, B, C)``, το ``X." "__bases__`` θα είναι ακριβώς ίσο με ``(A, B, C)``." -#: reference/datamodel.rst:1195 +#: reference/datamodel.rst:1194 +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:1199 msgid "" "The class's documentation string, or ``None`` if undefined. Not inherited by " "subclasses." @@ -1958,7 +1966,7 @@ msgstr "" "Η συμβολοσειρά τεκμηρίωσης της κλάσης ή ``None`` εάν δεν έχει οριστεί. Δεν " "κληρονομείται από υποκλάσεις." -#: reference/datamodel.rst:1199 +#: reference/datamodel.rst:1203 msgid "" "A dictionary containing :term:`variable annotations ` " "collected during class body execution. For best practices on working with :" @@ -1969,7 +1977,7 @@ msgstr "" "πρακτικές σχετικά με την εργασία με :attr:`!__annotations__`, ανατρέξτε στο :" "ref:`annotations-howto`." -#: reference/datamodel.rst:1206 +#: reference/datamodel.rst:1210 msgid "" "Accessing the :attr:`!__annotations__` attribute of a class object directly " "may yield incorrect results in the presence of metaclasses. In addition, the " @@ -1982,7 +1990,7 @@ msgstr "" "ορισμένες κλάσεις. Χρησιμοποιήστε τη :func:`inspect.get_annotations` για να " "ανακτήσετε με ασφάλεια annotations κλάσης." -#: reference/datamodel.rst:1213 +#: reference/datamodel.rst:1217 msgid "" "A :class:`tuple` containing the :ref:`type parameters ` of a :" "ref:`generic class `." @@ -1990,7 +1998,7 @@ msgstr "" "Μια :class:`tuple` που περιέχει τις :ref:`type parameters ` " "μιας :ref:`generic class `." -#: reference/datamodel.rst:1219 +#: reference/datamodel.rst:1223 msgid "" "A :class:`tuple` containing names of attributes of this class which are " "assigned through ``self.X`` from any function in its body." @@ -1998,7 +2006,7 @@ msgstr "" "Μια :class:`tuple` που περιέχει ονόματα χαρακτηριστικών αυτής της κλάσης που " "ανατίθενται μέσω του ``self.X`` από οποιαδήποτε συνάρτηση στο σώμα της." -#: reference/datamodel.rst:1225 +#: reference/datamodel.rst:1229 msgid "" "The line number of the first line of the class definition, including " "decorators. Setting the :attr:`__module__` attribute removes the :attr:`!" @@ -2008,7 +2016,7 @@ msgstr "" "συμπεριλαμβανομένων των διακοσμητών. Ο ορισμός του χαρακτηριστικού :attr:" "`__module__` αφαιρεί το :attr:`!__firstlineno__` από το λεξικό του τύπου." -#: reference/datamodel.rst:1233 +#: reference/datamodel.rst:1237 msgid "" "The :class:`tuple` of classes that are considered when looking for base " "classes during method resolution." @@ -2016,11 +2024,11 @@ msgstr "" "Η :class:`tuple` των κλάσεων που λαμβάνονται υπόψη κατά την αναζήτηση " "βασικών κλάσεων κατά την ανάλυση της μεθόδου." -#: reference/datamodel.rst:1238 +#: reference/datamodel.rst:1242 msgid "Special methods" msgstr "Ειδικές μέθοδοι" -#: reference/datamodel.rst:1240 +#: reference/datamodel.rst:1244 msgid "" "In addition to the special attributes described above, all Python classes " "also have the following two methods available:" @@ -2028,7 +2036,7 @@ msgstr "" "Εκτός από τα ειδικά χαρακτηριστικά που περιγράφονται παραπάνω, όλες οι " "κλάσεις Python έχουν επίσης διαθέσιμες τις ακόλουθες δύο μεθόδους:" -#: reference/datamodel.rst:1245 +#: reference/datamodel.rst:1249 msgid "" "This method can be overridden by a metaclass to customize the method " "resolution order for its instances. It is called at class instantiation, " @@ -2039,7 +2047,7 @@ msgstr "" "έναρξη της κλάσης και το αποτέλεσμα της αποθηκεύεται στο :attr:`~type." "__mro__`." -#: reference/datamodel.rst:1251 +#: reference/datamodel.rst:1255 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 " @@ -2049,7 +2057,7 @@ msgstr "" "της. Αυτή η μέθοδος επιστρέφει μια λίστα με όλες αυτές τις αναφορές που " "εξακολουθούν να είναι ενεργές. Η λίστα είναι με σειρά ορισμού. Παράδειγμα:" -#: reference/datamodel.rst:1255 +#: reference/datamodel.rst:1259 msgid "" ">>> class A: pass\n" ">>> class B(A): pass\n" @@ -2061,11 +2069,11 @@ msgstr "" ">>> A.__subclasses__()\n" "[]" -#: reference/datamodel.rst:1263 +#: reference/datamodel.rst:1267 msgid "Class instances" msgstr "Στιγμιότυπα κλάσης" -#: reference/datamodel.rst:1271 +#: reference/datamodel.rst:1275 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 " @@ -2099,7 +2107,7 @@ msgstr "" "αντικειμένου έχει μια μέθοδο :meth:`~object.__getattr__`, αυτή καλείται να " "ικανοποιήσει την αναζήτηση." -#: reference/datamodel.rst:1287 +#: reference/datamodel.rst:1291 msgid "" "Attribute assignments and deletions update the instance's dictionary, never " "a class's dictionary. If the class has a :meth:`~object.__setattr__` or :" @@ -2111,7 +2119,7 @@ msgstr "" "ή :meth:`~object.__delattr__`, καλείται αντί να ενημερώνεται απευθείας το " "λεξικό του στιγμιοτύπου." -#: reference/datamodel.rst:1297 +#: reference/datamodel.rst:1301 msgid "" "Class instances can pretend to be numbers, sequences, or mappings if they " "have methods with certain special names. See section :ref:`specialnames`." @@ -2120,11 +2128,11 @@ msgstr "" "ή αντιστοιχίσεις εάν έχουν μεθόδους με συγκεκριμένα ειδικά ονόματα. Δείτε " "την ενότητα :ref:`specialnames`." -#: reference/datamodel.rst:1309 +#: reference/datamodel.rst:1313 msgid "The class to which a class instance belongs." msgstr "Η κλάση στην οποία ανήκει ένα στιγμιότυπο κλάσης." -#: reference/datamodel.rst:1313 +#: reference/datamodel.rst:1317 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 " @@ -2135,11 +2143,11 @@ msgstr "" "τα στιγμιότυπα ένα χαρακτηριστικό :attr:`!__dict__` ∙ δείτε την ενότητα για " "τα :ref:`slots` για περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:1319 +#: reference/datamodel.rst:1323 msgid "I/O objects (also known as file objects)" msgstr "Αντικείμενα εισόδου/εξόδου (γνωστά και ως αντικείμενα αρχείου)" -#: reference/datamodel.rst:1334 +#: reference/datamodel.rst:1338 msgid "" "A :term:`file object` represents an open file. Various shortcuts are " "available to create file objects: the :func:`open` built-in function, and " @@ -2154,7 +2162,7 @@ msgstr "" "αντικειμένων socket (και ίσως από άλλες συναρτήσεις ή μεθόδους που " "παρέχονται από modules επέκτασης)." -#: reference/datamodel.rst:1340 +#: reference/datamodel.rst:1344 msgid "" "The objects ``sys.stdin``, ``sys.stdout`` and ``sys.stderr`` are initialized " "to file objects corresponding to the interpreter's standard input, output " @@ -2167,11 +2175,11 @@ msgstr "" "σε λειτουργία κειμένου και επομένως ακολουθούν τη διεπαφή που ορίζεται από " "την αφηρημένη κλάση :class:`io.TextIOBase`." -#: reference/datamodel.rst:1348 +#: reference/datamodel.rst:1352 msgid "Internal types" msgstr "Εσωτερικοί τύποι" -#: reference/datamodel.rst:1354 +#: reference/datamodel.rst:1358 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 " @@ -2181,11 +2189,11 @@ msgstr "" "στο χρήστη. Οι ορισμοί τους μπορεί να αλλάξουν με μελλοντικές εκδόσεις του " "διερμηνέα, αλλά αναφέρονται εδώ για πληρότητα." -#: reference/datamodel.rst:1362 +#: reference/datamodel.rst:1366 msgid "Code objects" msgstr "Αντικείμενα κώδικα" -#: reference/datamodel.rst:1366 +#: reference/datamodel.rst:1370 msgid "" "Code objects represent *byte-compiled* executable Python code, or :term:" "`bytecode`. The difference between a code object and a function object is " @@ -2207,15 +2215,15 @@ msgstr "" "κώδικα είναι αμετάβλητα και δεν περιέχουν αναφορές (άμεσα ή έμμεσα) σε " "μεταβλητά αντικείμενα." -#: reference/datamodel.rst:1400 +#: reference/datamodel.rst:1404 msgid "The function name" msgstr "Το όνομα της συνάρτησης" -#: reference/datamodel.rst:1403 +#: reference/datamodel.rst:1407 msgid "The fully qualified function name" msgstr "Το πλήρως αναγνωρισμένο όνομα συνάρτησης" -#: reference/datamodel.rst:1408 +#: reference/datamodel.rst:1412 msgid "" "The total number of positional :term:`parameters ` (including " "positional-only parameters and parameters with default values) that the " @@ -2225,7 +2233,7 @@ msgstr "" "(συμπεριλαμβανομένων των παραμέτρων μόνο θέσης και παραμέτρων με " "προεπιλεγμένες τιμές) που έχει η συνάρτηση" -#: reference/datamodel.rst:1413 +#: reference/datamodel.rst:1417 msgid "" "The number of positional-only :term:`parameters ` (including " "arguments with default values) that the function has" @@ -2233,7 +2241,7 @@ msgstr "" "Ο αριθμός των :term:`parameters ` θέσεως (συμπεριλαμβανομένων " "ορισμάτων με προεπιλεγμένες τιμές) που έχει η συνάρτηση" -#: reference/datamodel.rst:1417 +#: reference/datamodel.rst:1421 msgid "" "The number of keyword-only :term:`parameters ` (including " "arguments with default values) that the function has" @@ -2241,7 +2249,7 @@ msgstr "" "Ο αριθμός των :term:`parameters ` λέξεων κλειδιών " "(συμπεριλαμβανομένων ορισμάτων με προεπιλεγμένες τιμές) που έχει η συνάρτηση" -#: reference/datamodel.rst:1421 +#: reference/datamodel.rst:1425 msgid "" "The number of :ref:`local variables ` used by the function " "(including parameters)" @@ -2249,7 +2257,7 @@ msgstr "" "Ο αριθμός των :ref:`local variables ` που χρησιμοποιούνται από τη " "συνάρτηση (συμπεριλαμβανομένων των παραμέτρων)" -#: reference/datamodel.rst:1425 +#: reference/datamodel.rst:1429 msgid "" "A :class:`tuple` containing the names of the local variables in the function " "(starting with the parameter names)" @@ -2257,7 +2265,7 @@ msgstr "" "Μια :class:`tuple` που περιέχει τα ονόματα των τοπικών μεταβλητών στη " "συνάρτηση (ξεκινώντας με τα ονόματα των παραμέτρων)" -#: reference/datamodel.rst:1429 +#: reference/datamodel.rst:1433 msgid "" "A :class:`tuple` containing the names of :ref:`local variables ` " "that are referenced from at least one :term:`nested scope` inside the " @@ -2267,7 +2275,7 @@ msgstr "" "` που αναφέρονται από τουλάχιστον ένα :term:`nested scope` μέσα στη " "συνάρτηση" -#: reference/datamodel.rst:1433 +#: reference/datamodel.rst:1437 msgid "" "A :class:`tuple` containing the names of :term:`free (closure) variables " "` that a :term:`nested scope` references in an outer " @@ -2277,13 +2285,13 @@ msgstr "" "variables ` που αναφέρεται ένα :term:`nested scope` σε " "έναν εξωτερικό χώρο. Δείτε επίσης :attr:`function.__closure__`." -#: reference/datamodel.rst:1437 +#: reference/datamodel.rst:1441 msgid "Note: references to global and builtin names are *not* included." msgstr "" "Σημείωση: οι αναφορές σε καθολικά και ενσωματωμένα ονόματα *δεν* " "περιλαμβάνονται." -#: reference/datamodel.rst:1440 +#: reference/datamodel.rst:1444 msgid "" "A string representing the sequence of :term:`bytecode` instructions in the " "function" @@ -2291,7 +2299,7 @@ msgstr "" "Μια συμβολοσειρά που αντιπροσωπεύει την ακολουθία εντολών :term:`bytecode` " "στη συνάρτηση" -#: reference/datamodel.rst:1444 +#: reference/datamodel.rst:1448 msgid "" "A :class:`tuple` containing the literals used by the :term:`bytecode` in the " "function" @@ -2299,7 +2307,7 @@ msgstr "" "Μια :class:`tuple` που περιέχει τα literals που χρησιμοποιούνται από το :" "term:`bytecode` στη συνάρτηση" -#: reference/datamodel.rst:1448 +#: reference/datamodel.rst:1452 msgid "" "A :class:`tuple` containing the names used by the :term:`bytecode` in the " "function" @@ -2307,15 +2315,15 @@ msgstr "" "Μια :class:`tuple` που περιέχει τα ονόματα που χρησιμοποιούνται από τον :" "term:`bytecode` στην συνάρτηση" -#: reference/datamodel.rst:1452 +#: reference/datamodel.rst:1456 msgid "The name of the file from which the code was compiled" msgstr "Το όνομα του αρχείου από το οποίο συντάχθηκε ο κώδικας" -#: reference/datamodel.rst:1455 +#: reference/datamodel.rst:1459 msgid "The line number of the first line of the function" msgstr "Ο αριθμός γραμμής της πρώτης γραμμής της συνάρτησης" -#: reference/datamodel.rst:1458 +#: reference/datamodel.rst:1462 msgid "" "A string encoding the mapping from :term:`bytecode` offsets to line numbers. " "For details, see the source code of the interpreter." @@ -2324,7 +2332,7 @@ msgstr "" "μετατοπίζεται σε αριθμούς γραμμών. Για λεπτομέρειες, ανατρέξτε στον πηγαίο " "κώδικα του διερμηνέα." -#: reference/datamodel.rst:1461 +#: reference/datamodel.rst:1465 msgid "" "This attribute of code objects is deprecated, and may be removed in Python " "3.15." @@ -2332,18 +2340,18 @@ msgstr "" "Αυτό το χαρακτηριστικό των αντικειμένων κώδικα έχει καταργηθεί, και μπορεί " "να αφαιρεθεί στην Python 3.15." -#: reference/datamodel.rst:1466 +#: reference/datamodel.rst:1470 msgid "The required stack size of the code object" msgstr "Το απαιτούμενο μέγεθος στοίβας του αντικειμένου κώδικα" -#: reference/datamodel.rst:1469 +#: reference/datamodel.rst:1473 msgid "" "An :class:`integer ` encoding a number of flags for the interpreter." msgstr "" "Μια :class:`integer ` που κωδικοποιεί έναν αριθμό flags για τον " "διερμηνέα." -#: reference/datamodel.rst:1474 +#: reference/datamodel.rst:1478 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 " @@ -2361,7 +2369,7 @@ msgstr "" "είναι γεννήτρια. Δείτε το :ref:`inspect-module-co-flags` για λεπτομέρειες " "σχετικά με τη σημασιολογία κάθε σημαίας που μπορεί να υπάρχει." -#: reference/datamodel.rst:1482 +#: reference/datamodel.rst:1486 msgid "" "Future feature declarations (for example, ``from __future__ import " "division``) also use bits in :attr:`~codeobject.co_flags` to indicate " @@ -2374,14 +2382,14 @@ msgstr "" "συγκεκριμένη λειτουργία ενεργοποιημένη. Δείτε :attr:`~__future__._Feature." "compiler_flag`." -#: reference/datamodel.rst:1486 +#: reference/datamodel.rst:1490 msgid "" "Other bits in :attr:`~codeobject.co_flags` are reserved for internal use." msgstr "" "Άλλα bits στο :attr:`~codeobject.co_flags` είναι δεσμευμένα για εσωτερική " "χρήση." -#: reference/datamodel.rst:1490 +#: reference/datamodel.rst:1494 msgid "" "If a code object represents a function, the first item in :attr:`~codeobject." "co_consts` is the documentation string of the function, or ``None`` if " @@ -2391,11 +2399,11 @@ msgstr "" "στο :attr:`~codeobject.co_consts` είναι η συμβολοσειρά τεκμηρίωσης της " "συνάρτησης ή ``None`` εάν δεν έχει οριστεί." -#: reference/datamodel.rst:1495 +#: reference/datamodel.rst:1499 msgid "Methods on code objects" msgstr "Μέθοδοι σε αντικείμενα κώδικα" -#: reference/datamodel.rst:1499 +#: reference/datamodel.rst:1503 msgid "" "Returns an iterable over the source code positions of each :term:`bytecode` " "instruction in the code object." @@ -2403,7 +2411,7 @@ msgstr "" "Επιστρέφει έναν iterable πάνω από τις θέσεις του πηγαίου κώδικα κάθε " "εντολής :term:`bytecode` στο αντικείμενο κώδικα." -#: reference/datamodel.rst:1502 +#: reference/datamodel.rst:1506 msgid "" "The iterator returns :class:`tuple`\\s containing the ``(start_line, " "end_line, start_column, end_column)``. The *i-th* tuple corresponds to the " @@ -2416,7 +2424,7 @@ msgstr "" "στηλών είναι μετατοπίσεις utf-8 byte με ευρετήριο 0 στη δεδομένη γραμμή " "πηγής." -#: reference/datamodel.rst:1508 +#: reference/datamodel.rst:1512 msgid "" "This positional information can be missing. A non-exhaustive lists of cases " "where this may happen:" @@ -2424,22 +2432,22 @@ msgstr "" "Αυτές οι πληροφορίες θέσης μπορεί να λείπουν. Μια μη εξαντλητική λίστα " "περιπτώσεων όπου αυτό μπορεί να συμβεί:" -#: reference/datamodel.rst:1511 +#: reference/datamodel.rst:1515 msgid "Running the interpreter with :option:`-X` ``no_debug_ranges``." msgstr "Εκτέλεση του διερμηνέα με :option:`-X` ``no_debug_ranges``." -#: reference/datamodel.rst:1512 +#: reference/datamodel.rst:1516 msgid "" "Loading a pyc file compiled while using :option:`-X` ``no_debug_ranges``." msgstr "" "Φόρτωση ενός αρχείου pyc που έχει μεταγλωττιστεί κατά τη χρήση του :option:`-" "X` ``no_debug_ranges``." -#: reference/datamodel.rst:1513 +#: reference/datamodel.rst:1517 msgid "Position tuples corresponding to artificial instructions." msgstr "Τοποθετεί τις πλειάδες που αντιστοιχούν σε τεχνικές οδηγίες." -#: reference/datamodel.rst:1514 +#: reference/datamodel.rst:1518 msgid "" "Line and column numbers that can't be represented due to implementation " "specific limitations." @@ -2447,14 +2455,14 @@ msgstr "" "Αριθμοί γραμμών και στηλών που δεν μπορούν να αναπαρασταθούν λόγω " "περιορισμών για την υλοποίηση." -#: reference/datamodel.rst:1517 +#: reference/datamodel.rst:1521 msgid "" "When this occurs, some or all of the tuple elements can be :const:`None`." msgstr "" "Όταν συμβαίνει αυτό, ορισμένα η όλα τα πολλαπλά στοιχεία μπορεί να είναι :" "const:`None`." -#: reference/datamodel.rst:1523 +#: reference/datamodel.rst:1527 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 " @@ -2471,7 +2479,7 @@ msgstr "" "(flag) γραμμής εντολών :option:`-X` ``no_debug_ranges`` ή η μεταβλητή " "περιβάλλοντος :envvar:`PYTHONNODEBUGRANGES`." -#: reference/datamodel.rst:1532 +#: reference/datamodel.rst:1536 msgid "" "Returns an iterator that yields information about successive ranges of :term:" "`bytecode`\\s. Each item yielded is a ``(start, end, lineno)`` :class:" @@ -2481,7 +2489,7 @@ msgstr "" "term:`bytecode`\\s. Κάθε στοιχείο που αποδίδεται είναι μια ``(start, end, " "lineno)`` :class:`tuple`:" -#: reference/datamodel.rst:1536 +#: reference/datamodel.rst:1540 msgid "" "``start`` (an :class:`int`) represents the offset (inclusive) of the start " "of the :term:`bytecode` range" @@ -2489,7 +2497,7 @@ msgstr "" "Το ``start`` (ένα :class:`int`) αναπαριστά τη μετατόπιση " "(συμπεριλαμβανομένης) της έναρξης του εύρους :term:`bytecode`" -#: reference/datamodel.rst:1538 +#: reference/datamodel.rst:1542 msgid "" "``end`` (an :class:`int`) represents the offset (exclusive) of the end of " "the :term:`bytecode` range" @@ -2497,7 +2505,7 @@ msgstr "" "Το ``end`` (ένα :class:`int`) αναπαριστά τη μετατόπιση (αποκλειστική) του " "τέλους του εύρους :term:`bytecode`" -#: reference/datamodel.rst:1540 +#: reference/datamodel.rst:1544 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 " @@ -2507,15 +2515,15 @@ msgstr "" "εύρους :term:`bytecode` ή ``None`` εάν τα bytecodes στη δεδομένη περιοχή δεν " "έχουν αριθμό γραμμής" -#: reference/datamodel.rst:1544 +#: reference/datamodel.rst:1548 msgid "The items yielded will have the following properties:" msgstr "Τα στοιχεία που θα προκύψουν θα έχουν τις ακόλουθες ιδιότητες:" -#: reference/datamodel.rst:1546 +#: reference/datamodel.rst:1550 msgid "The first range yielded will have a ``start`` of 0." msgstr "Το πρώτο εύρος που θα προκύψει θα έχει ένα ``start`` 0." -#: reference/datamodel.rst:1547 +#: reference/datamodel.rst:1551 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 " @@ -2525,13 +2533,13 @@ msgstr "" "οποιοδήποτε ζεύγος :class:`tuple`\\s, το ``start`` του δεύτερου θα είναι ίσο " "με το το ``end`` του πρώτου." -#: reference/datamodel.rst:1550 +#: reference/datamodel.rst:1554 msgid "No range will be backwards: ``end >= start`` for all triples." msgstr "" "Κανένα εύρος δεν θα είναι προς τα πίσω: ``end >= start`` για όλες τις " "τριάδες." -#: reference/datamodel.rst:1551 +#: reference/datamodel.rst:1555 msgid "" "The last :class:`tuple` yielded will have ``end`` equal to the size of the :" "term:`bytecode`." @@ -2539,7 +2547,7 @@ msgstr "" "Το τελευταίο :class:`tuple` που θα αποφέρει θα έχει ``end`` ίσο με το " "μέγεθος του :term:`bytecode`." -#: reference/datamodel.rst:1554 +#: reference/datamodel.rst:1558 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 " @@ -2549,35 +2557,35 @@ msgstr "" "μηδενικού πλάτους χρησιμοποιούνται για γραμμές που υπάρχουν στον πηγαίο " "κώδικα, αλλά έχουν εξαλειφθεί από τον μεταγλωττιστή :term:`bytecode`." -#: reference/datamodel.rst:1562 +#: reference/datamodel.rst:1566 msgid ":pep:`626` - Precise line numbers for debugging and other tools." msgstr "" ":pep:`626` - Ακριβείς αριθμοί γραμμών για εντοπισμό σφαλμάτων και άλλα " "εργαλεία." -#: reference/datamodel.rst:1563 +#: reference/datamodel.rst:1567 msgid "The PEP that introduced the :meth:`!co_lines` method." msgstr "Το PEP που εισήγαγε τη μέθοδο :meth:`!co_lines`." -#: reference/datamodel.rst:1567 +#: reference/datamodel.rst:1571 msgid "" "Return a copy of the code object with new values for the specified fields." msgstr "" "Επιστρέφει ένα αντίγραφο του αντικειμένου κώδικα με νέες τιμές για τα " "καθορισμένα πεδία." -#: reference/datamodel.rst:1569 +#: reference/datamodel.rst:1573 msgid "" "Code objects are also supported by the generic function :func:`copy.replace`." msgstr "" "Τα αντικείμενα κώδικα υποστηρίζονται επίσης από τη γενική συνάρτηση :func:" "`copy.replace`." -#: reference/datamodel.rst:1577 +#: reference/datamodel.rst:1581 msgid "Frame objects" msgstr "Πλαίσιο αντικειμένων" -#: reference/datamodel.rst:1581 +#: reference/datamodel.rst:1585 msgid "" "Frame objects represent execution frames. They may occur in :ref:`traceback " "objects `, and are also passed to registered trace " @@ -2587,7 +2595,7 @@ msgstr "" "εμφανίζονται σε :ref:`traceback objects `, και επίσης " "μεταβιβάζονται σε καταχωρημένες συναρτήσεις ανίχνευσης." -#: reference/datamodel.rst:1599 +#: reference/datamodel.rst:1603 msgid "" "Points to the previous stack frame (towards the caller), or ``None`` if this " "is the bottom stack frame" @@ -2595,7 +2603,7 @@ msgstr "" "Δείχνει το προηγούμενο πλαίσιο στοίβας (προς από εκεί που καλείται), ή " "``None`` αν αυτό είναι το πλαίσιο της κάτω στοίβας" -#: reference/datamodel.rst:1603 +#: reference/datamodel.rst:1607 msgid "" "The :ref:`code object ` being executed in this frame. " "Accessing this attribute raises an :ref:`auditing event ` ``object." @@ -2606,7 +2614,7 @@ msgstr "" "`auditing event ` ``object.__getattr__`` με ορίσματα ``obj`` και " "``\"f_code\"``." -#: reference/datamodel.rst:1608 +#: reference/datamodel.rst:1612 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-" @@ -2617,18 +2625,18 @@ msgstr "" "`optimized scope`, αυτό μπορεί να επιστρέψει ένα αντικείμενο proxy εγγραφής-" "μέσω." -#: reference/datamodel.rst:1613 +#: reference/datamodel.rst:1617 msgid "Return a proxy for optimized scopes." msgstr "Επιστρέφει ένα proxy για βελτιστοποιημένους χώρους." -#: reference/datamodel.rst:1617 +#: reference/datamodel.rst:1621 msgid "" "The dictionary used by the frame to look up :ref:`global variables `" msgstr "" "Το λεξικό που χρησιμοποιείται από το πλαίσιο για την αναζήτηση :ref:`global " "variables `" -#: reference/datamodel.rst:1621 +#: reference/datamodel.rst:1625 msgid "" "The dictionary used by the frame to look up :ref:`built-in (intrinsic) names " "`" @@ -2636,7 +2644,7 @@ msgstr "" "Το λεξικό που χρησιμοποιείται από το πλαίσιο για την αναζήτηση :ref:`built-" "in (intrinsic) names `" -#: reference/datamodel.rst:1625 +#: reference/datamodel.rst:1629 msgid "" "The \"precise instruction\" of the frame object (this is an index into the :" "term:`bytecode` string of the :ref:`code object `)" @@ -2645,7 +2653,7 @@ msgstr "" "συμβολοσειρά :term:`bytecode` του αντικειμένου :ref:`code object `)" -#: reference/datamodel.rst:1641 +#: reference/datamodel.rst:1645 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 " @@ -2656,7 +2664,7 @@ msgstr "" "σφαλμάτων). Κανονικά ένα συμβάν ενεργοποιείται για κάθε νέα γραμμή πηγαίου " "κώδικα (δείτε :attr:`~frame.f_trace_lines`)." -#: reference/datamodel.rst:1646 +#: reference/datamodel.rst:1650 msgid "" "Set this attribute to :const:`False` to disable triggering a tracing event " "for each source line." @@ -2664,7 +2672,7 @@ msgstr "" "Ορίστε αυτό το χαρακτηριστικό σε :const:`False` για να απενεργοποιήσετε την " "ενεργοποίηση ενός συμβάντος ανίχνευσης για κάθε γραμμή πηγαίου κώδικα." -#: reference/datamodel.rst:1650 +#: reference/datamodel.rst:1654 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 " @@ -2675,7 +2683,7 @@ msgstr "" "συμπεριφορά διερμηνέα εάν οι εξαιρέσεις που προκύπτουν από τη συνάρτηση " "ανίχνευσης διαφεύγουν στη συνάρτηση που παρακολουθείται." -#: reference/datamodel.rst:1656 +#: reference/datamodel.rst:1660 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 " @@ -2688,15 +2696,15 @@ msgstr "" "Μετάβασης (γνωστή και ως Ορισμός Επόμενης Δήλωσης) γράφοντας σε αυτό το " "χαρακτηριστικό." -#: reference/datamodel.rst:1662 +#: reference/datamodel.rst:1666 msgid "Frame object methods" msgstr "Μέθοδοι αντικειμένων πλαισίου" -#: reference/datamodel.rst:1664 +#: reference/datamodel.rst:1668 msgid "Frame objects support one method:" msgstr "Τα αντικείμενα πλαισίου υποστηρίζουν μια μέθοδο:" -#: reference/datamodel.rst:1668 +#: reference/datamodel.rst:1672 msgid "" "This method clears all references to :ref:`local variables ` held by " "the frame. Also, if the frame belonged to a :term:`generator`, the " @@ -2711,7 +2719,7 @@ msgstr "" "παράδειγμα, όταν γίνεται catch μια :ref:`exception ` και " "αποθηκεύετε το :ref:`traceback ` για μετέπειτα χρήση)." -#: reference/datamodel.rst:1674 +#: reference/datamodel.rst:1678 msgid "" ":exc:`RuntimeError` is raised if the frame is currently executing or " "suspended." @@ -2719,7 +2727,7 @@ msgstr "" "Μια :exc:`RuntimeError` γίνεται raise εάν το πλαίσιο εκτελείται ή " "αναστέλλεται." -#: reference/datamodel.rst:1679 +#: reference/datamodel.rst:1683 msgid "" "Attempting to clear a suspended frame raises :exc:`RuntimeError` (as has " "always been the case for executing frames)." @@ -2727,11 +2735,11 @@ msgstr "" "Η προσπάθεια εκκαθάρισης ενός ανασταλμένου πλαισίου κάνει raise :exc:" "`RuntimeError` (όπως έχει πάντα συμβεί για τα εκτελούμενα πλαίσια)." -#: reference/datamodel.rst:1687 +#: reference/datamodel.rst:1691 msgid "Traceback objects" msgstr "Αντικείμενα ανίχνευσης" -#: reference/datamodel.rst:1700 +#: reference/datamodel.rst:1704 msgid "" "Traceback objects represent the stack trace of an :ref:`exception `. A traceback object is implicitly created when an exception occurs, " @@ -2742,13 +2750,13 @@ msgstr "" "όταν εμφανίζεται μια εξαίρεση και μπορεί επίσης να δημιουργηθεί ρητά " "καλώντας το :class:`types.TracebackType`." -#: reference/datamodel.rst:1705 +#: reference/datamodel.rst:1709 msgid "Traceback objects can now be explicitly instantiated from Python code." msgstr "" "Τα αντικείμενα Traceback μπορούν τώρα να δημιουργηθούν ρητά από τον κώδικα " "Python." -#: reference/datamodel.rst:1708 +#: reference/datamodel.rst:1712 msgid "" "For implicitly created tracebacks, when the search for an exception handler " "unwinds the execution stack, at each unwound level a traceback object is " @@ -2767,7 +2775,7 @@ msgstr "" "ως το χαρακτηριστικό :attr:`~BaseException.__traceback__` της εξαίρεσης που " "έχει εντοπιστεί." -#: reference/datamodel.rst:1717 +#: reference/datamodel.rst:1721 msgid "" "When the program contains no suitable handler, the stack trace is written " "(nicely formatted) to the standard error stream; if the interpreter is " @@ -2779,7 +2787,7 @@ msgstr "" "είναι διαδραστικός, διατίθεται επίσης στον χρήστη ως :data:`sys." "last_traceback`." -#: reference/datamodel.rst:1722 +#: reference/datamodel.rst:1726 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 " @@ -2789,13 +2797,13 @@ msgstr "" "να καθορίσει πως θα πρέπει να συνδεθούν, τα χαρακτηριστικά :attr:`~traceback." "tb_next` για να σχηματίσουν ένα ίχνος πλήρους στοίβας." -#: reference/datamodel.rst:1737 +#: reference/datamodel.rst:1741 msgid "" "Points to the execution :ref:`frame ` of the current level." msgstr "" "Δείχνει την εκτέλεση :ref:`frame ` του τρέχοντος επιπέδου." -#: reference/datamodel.rst:1740 +#: reference/datamodel.rst:1744 msgid "" "Accessing this attribute raises an :ref:`auditing event ` ``object." "__getattr__`` with arguments ``obj`` and ``\"tb_frame\"``." @@ -2803,15 +2811,15 @@ msgstr "" "Η πρόσβαση σε αυτό το χαρακτηριστικό κάνει raise ένα :ref:`auditing event " "` ``object.__getattr__`` με ορίσματα ``obj`` και ``\"tb_frame\"``." -#: reference/datamodel.rst:1745 +#: reference/datamodel.rst:1749 msgid "Gives the line number where the exception occurred" msgstr "Δίνει τον αριθμό γραμμής όπου προέκυψε η εξαίρεση" -#: reference/datamodel.rst:1748 +#: reference/datamodel.rst:1752 msgid "Indicates the \"precise instruction\"." msgstr "Δηλώνει την \"ακριβή οδηγία\"." -#: reference/datamodel.rst:1750 +#: reference/datamodel.rst:1754 msgid "" "The line number and last instruction in the traceback may differ from the " "line number of its :ref:`frame object ` if the exception " @@ -2823,7 +2831,7 @@ msgstr "" "εάν η εξαίρεση εμφανίστηκε σε μια πρόταση :keyword:`try` χωρίς αντιστοίχιση " "εκτός από τον όρο ή με έναν όρο :keyword:`finally`." -#: reference/datamodel.rst:1761 +#: reference/datamodel.rst:1765 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 " @@ -2833,15 +2841,15 @@ msgstr "" "στο ίχνος στοίβας (προς το πλαίσιο όπου σημειώθηκε η εξαίρεση), ή ``None`` " "εάν δεν υπάρχει επόμενο επίπεδο." -#: reference/datamodel.rst:1765 +#: reference/datamodel.rst:1769 msgid "This attribute is now writable" msgstr "Αυτό το χαρακτηριστικό είναι τώρα εγγράψιμο" -#: reference/datamodel.rst:1770 +#: reference/datamodel.rst:1774 msgid "Slice objects" msgstr "Αντικείμενα τμηματοποίησης" -#: reference/datamodel.rst:1774 +#: reference/datamodel.rst:1778 msgid "" "Slice objects are used to represent slices for :meth:`~object.__getitem__` " "methods. They are also created by the built-in :func:`slice` function." @@ -2850,7 +2858,7 @@ msgstr "" "για μεθόδους :meth:`~object.__getitem__`. Δημιουργούνται επίσης από την " "ενσωματωμένη συνάρτηση :func:`slice`." -#: reference/datamodel.rst:1783 +#: reference/datamodel.rst:1787 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; " @@ -2861,11 +2869,11 @@ msgstr "" "step` είναι το βήμα∙ κάθε ένα είναι ``None`` αν παραλειφθεί. Τα " "χαρακτηριστικά μπορούν να έχουν οποιονδήποτε τύπο." -#: reference/datamodel.rst:1787 +#: reference/datamodel.rst:1791 msgid "Slice objects support one method:" msgstr "Τα αντικείμενα slice υποστηρίζουν μια μέθοδο:" -#: reference/datamodel.rst:1791 +#: reference/datamodel.rst:1795 msgid "" "This method takes a single integer argument *length* and computes " "information about the slice that the slice object would describe if applied " @@ -2882,11 +2890,11 @@ msgstr "" "είναι εκτός ορίων αντιμετωπίζονται με τρόπο που συνάδει με τα κανονικά " "slices." -#: reference/datamodel.rst:1800 +#: reference/datamodel.rst:1804 msgid "Static method objects" msgstr "Αντικείμενα στατικών μεθόδων" -#: reference/datamodel.rst:1802 +#: reference/datamodel.rst:1806 msgid "" "Static method objects provide a way of defeating the transformation of " "function objects to method objects described above. A static method object " @@ -2907,11 +2915,11 @@ msgstr "" "μπορούν επίσης να κληθούν. Τα αντικείμενα στατικής μεθόδου δημιουργούνται " "από τον ενσωματωμένο κατασκευαστή :func:`staticmethod`." -#: reference/datamodel.rst:1812 +#: reference/datamodel.rst:1816 msgid "Class method objects" msgstr "Αντικείμενα μεθόδων κλάσεων" -#: reference/datamodel.rst:1814 +#: reference/datamodel.rst:1818 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 " @@ -2928,11 +2936,11 @@ msgstr "" "methods>`. Τα αντικείμενα της μεθόδου κλάσης δημιουργούνται από τον " "ενσωματωμένο κατασκευαστή :func:`classmethod`." -#: reference/datamodel.rst:1824 +#: reference/datamodel.rst:1828 msgid "Special method names" msgstr "Ειδικά ονόματα μεθόδων" -#: reference/datamodel.rst:1830 +#: reference/datamodel.rst:1834 msgid "" "A class can implement certain operations that are invoked by special syntax " "(such as arithmetic operations or subscripting and slicing) by defining " @@ -2957,7 +2965,7 @@ msgstr "" "ορίζεται κατάλληλη μέθοδος (συνήθως :exc:`AttributeError` ή :exc:" "`TypeError`)." -#: reference/datamodel.rst:1841 +#: reference/datamodel.rst:1845 msgid "" "Setting a special method to ``None`` indicates that the corresponding " "operation is not available. For example, if a class sets :meth:`~object." @@ -2971,7 +2979,7 @@ msgstr "" "κλήση :func:`iter` στα στιγμιότυπα της θα κάνει raise μια :exc:`TypeError` " "(χωρίς να επιστρέψουμε στο :meth:`~object.__getitem__`). [#]_" -#: reference/datamodel.rst:1847 +#: reference/datamodel.rst:1851 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 " @@ -2988,11 +2996,11 @@ msgstr "" "αυτού είναι η διεπαφή :class:`~xml.dom.NodeList` στο Μοντέλο Αντικειμένου " "Εγγράφου του W3C.)" -#: reference/datamodel.rst:1858 +#: reference/datamodel.rst:1862 msgid "Basic customization" msgstr "Βασική προσαρμογή" -#: reference/datamodel.rst:1864 +#: reference/datamodel.rst:1868 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 " @@ -3009,7 +3017,7 @@ msgstr "" "κλάση). Η επιστρεφόμενη τιμή του :meth:`__new__` θα πρέπει να είναι το νέο " "στιγμιότυπο αντικειμένου (συνήθως ένα στιγμιότυπο του *cls*)." -#: reference/datamodel.rst:1871 +#: reference/datamodel.rst:1875 msgid "" "Typical implementations create a new instance of the class by invoking the " "superclass's :meth:`__new__` method using ``super().__new__(cls[, ...])`` " @@ -3021,7 +3029,7 @@ msgstr "" "__new__(cls[, ...])`` με κατάλληλα ορίσματα και στη συνέχεια τροποποιώντας " "τη νεο-δημιουργηθείσα παρουσία όπως απαιτείται πριν την επιστρέψει." -#: reference/datamodel.rst:1876 +#: reference/datamodel.rst:1880 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 " @@ -3035,7 +3043,7 @@ msgstr "" "είναι το νέο στιγμιότυπο και τα υπόλοιπα ορίσματα είναι τα ίδια με αυτά που " "διαβιβάστηκαν στον κατασκευαστή του αντικειμένου." -#: reference/datamodel.rst:1881 +#: reference/datamodel.rst:1885 msgid "" "If :meth:`__new__` does not return an instance of *cls*, then the new " "instance's :meth:`__init__` method will not be invoked." @@ -3043,7 +3051,7 @@ msgstr "" "Εάν το :meth:`__new__` δεν επιστρέφει ένα στιγμιότυπο του *cls*, τότε η " "μέθοδος :meth:`__init__` του νέου στιγμιοτύπου δεν θα κληθεί." -#: reference/datamodel.rst:1884 +#: reference/datamodel.rst:1888 msgid "" ":meth:`__new__` is intended mainly to allow subclasses of immutable types " "(like int, str, or tuple) to customize instance creation. It is also " @@ -3055,7 +3063,7 @@ msgstr "" "στιγμιοτύπων. Επίσης συνήθως παρακάμπτεται σε προσαρμοσμένες μετακλάσεις " "προκειμένου να προσαρμόσουν τη δημιουργία κλάσεων." -#: reference/datamodel.rst:1893 +#: reference/datamodel.rst:1897 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 " @@ -3072,7 +3080,7 @@ msgstr "" "προετοιμασία του τμήματος της βασικής κλάσης του στιγμιοτύπου∙ για " "παράδειγμα: ``super().__init__([args...])``." -#: reference/datamodel.rst:1900 +#: reference/datamodel.rst:1904 msgid "" "Because :meth:`__new__` and :meth:`__init__` work together in constructing " "objects (:meth:`__new__` to create it, and :meth:`__init__` to customize " @@ -3085,7 +3093,7 @@ msgstr "" "μη-``None`` από το :meth:`__init__` ∙ αν το κάνετε αυτό, θα εμφανιστεί ένα :" "exc:`TypeError` κατά το χρόνο εκτέλεσης." -#: reference/datamodel.rst:1913 +#: reference/datamodel.rst:1917 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:" @@ -3099,7 +3107,7 @@ msgstr "" "πρέπει να την καλέσει ρητά για να διασφαλιστεί η σωστή διαγραφή του τμήματος " "της βασικής κλάσης του στιγμιοτύπου." -#: reference/datamodel.rst:1919 +#: reference/datamodel.rst:1923 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. " @@ -3115,7 +3123,7 @@ msgstr "" "αντικείμενο πρόκειται να καταστραφεί εξαρτάται από την υλοποίηση∙ η τρέχουσα " "υλοποίηση του :term:`CPython` την καλεί μόνο μία φορά." -#: reference/datamodel.rst:1926 +#: reference/datamodel.rst:1930 msgid "" "It is not guaranteed that :meth:`__del__` methods are called for objects " "that still exist when the interpreter exits. :class:`weakref.finalize` " @@ -3127,7 +3135,7 @@ msgstr "" "finalize` παρέχει έναν απλό τρόπο για την καταχώριση μιας συνάρτησης " "καθαρισμού που θα καλείται όταν ένα αντικείμενο συλλέγεται από τα σκουπίδια." -#: reference/datamodel.rst:1933 +#: reference/datamodel.rst:1937 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 " @@ -3137,7 +3145,7 @@ msgstr "" "πλήθος αναφοράς για το ``x`` κατά ένα και το δεύτερο καλείται μόνο όταν το " "πλήθος αναφοράς του ``x`` φτάσει στο μηδέν." -#: reference/datamodel.rst:1938 +#: reference/datamodel.rst:1942 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 " @@ -3155,11 +3163,11 @@ msgstr "" "εξαίρεση, η οποία αναφέρεται στο δικό του traceback, το οποίο αναφέρεται " "στους τοπικούς αριθμούς όλων των καρέ που έχουν εντοπιστεί στο traceback." -#: reference/datamodel.rst:1948 +#: reference/datamodel.rst:1952 msgid "Documentation for the :mod:`gc` module." msgstr "Τεκμηρίωση για το module :mod:`gc`." -#: reference/datamodel.rst:1952 +#: reference/datamodel.rst:1956 msgid "" "Due to the precarious circumstances under which :meth:`__del__` methods are " "invoked, exceptions that occur during their execution are ignored, and a " @@ -3169,7 +3177,7 @@ msgstr "" "`__del__`, οι εξαιρέσεις που προκύπτουν κατά την εκτέλεση τους αγνοούνται " "και αντ' αυτού εκτυπώνεται μια προειδοποίηση στο ``sys.stderr``. Ειδικότερα:" -#: reference/datamodel.rst:1956 +#: reference/datamodel.rst:1960 msgid "" ":meth:`__del__` can be invoked when arbitrary code is being executed, " "including from any arbitrary thread. If :meth:`__del__` needs to take a " @@ -3183,7 +3191,7 @@ msgstr "" "μπορεί να είναι αδιέξοδο καθώς ο πόρος μπορεί να έχει ήδη ληφθεί από τον " "κώδικα που διακόπτεται για να εκτελεστεί :meth:`__del__`." -#: reference/datamodel.rst:1962 +#: reference/datamodel.rst:1966 msgid "" ":meth:`__del__` can be executed during interpreter shutdown. As a " "consequence, the global variables it needs to access (including other " @@ -3203,7 +3211,7 @@ msgstr "" "εισαγόμενα modules εξακολουθούν να είναι διαθέσιμες τη στιγμή που καλείται η " "μέθοδος :meth:`__del__`." -#: reference/datamodel.rst:1977 +#: reference/datamodel.rst:1981 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 " @@ -3225,7 +3233,7 @@ msgstr "" "`__str__`, τότε η :meth:`__repr__` χρησιμοποιείται επίσης όταν απαιτείται " "μια \"ανεπίσημη\" αναπαράσταση συμβολοσειράς στιγμιοτύπων αυτής της κλάσης." -#: reference/datamodel.rst:1986 +#: reference/datamodel.rst:1990 msgid "" "This is typically used for debugging, so it is important that the " "representation is information-rich and unambiguous. A default implementation " @@ -3235,7 +3243,7 @@ msgstr "" "σημαντικό η αναπαράσταση να είναι πλούσια σε πληροφορίες και ξεκάθαρη. Μια " "προεπιλεγμένη υλοποίηση παρέχεται από την ίδια την κλάση :class:`object`." -#: reference/datamodel.rst:1998 +#: reference/datamodel.rst:2002 msgid "" "Called by :func:`str(object) `, the default :meth:`__format__` " "implementation, and the built-in function :func:`print`, to compute the " @@ -3247,7 +3255,7 @@ msgstr "" "ωραίας εκτύπωσης συμβολοσειράς ενός αντικειμένου. Η τιμή που επιστρέφεται " "πρέπει να είναι ένα αντικείμενο :ref:`string `." -#: reference/datamodel.rst:2003 +#: reference/datamodel.rst:2007 msgid "" "This method differs from :meth:`object.__repr__` in that there is no " "expectation that :meth:`__str__` return a valid Python expression: a more " @@ -3257,7 +3265,7 @@ msgstr "" "καμία προσδοκία ότι η :meth:`__str__` θα επιστρέψει μια έγκυρη έκφραση " "Python: μπορεί να χρησιμοποιηθεί μια πιο βολική ή συνοπτική αναπαράσταση." -#: reference/datamodel.rst:2007 +#: reference/datamodel.rst:2011 msgid "" "The default implementation defined by the built-in type :class:`object` " "calls :meth:`object.__repr__`." @@ -3265,7 +3273,7 @@ msgstr "" "Η προεπιλεγμένη υλοποίηση που ορίζεται από τον ενσωματωμένο τύπο :class:" "`object` καλεί την :meth:`object.__repr__`." -#: reference/datamodel.rst:2017 +#: reference/datamodel.rst:2021 msgid "" "Called by :ref:`bytes ` to compute a byte-string representation " "of an object. This should return a :class:`bytes` object. The :class:" @@ -3276,7 +3284,7 @@ msgstr "" "class:`bytes` αντικείμενο. Η ίδια κλάση :class:`object` δεν παρέχει αυτήν τη " "μέθοδο." -#: reference/datamodel.rst:2029 +#: reference/datamodel.rst:2033 msgid "" "Called by the :func:`format` built-in function, and by extension, evaluation " "of :ref:`formatted string literals ` and the :meth:`str.format` " @@ -3297,18 +3305,18 @@ msgstr "" "αναθέσουν τη μορφοποίηση σε έναν από τους ενσωματωμένους τύπους είτε θα " "χρησιμοποιήσουν παρόμοια σύνταξη επιλογής μορφοποίησης." -#: reference/datamodel.rst:2039 +#: reference/datamodel.rst:2043 msgid "" "See :ref:`formatspec` for a description of the standard formatting syntax." msgstr "" "Δείτε το :ref:`formatspec` για μια περιγραφή της τυπικής σύνταξης " "μορφοποίησης." -#: reference/datamodel.rst:2041 +#: reference/datamodel.rst:2045 msgid "The return value must be a string object." msgstr "Η τιμή επιστροφής πρέπει να είναι αντικείμενο συμβολοσειράς." -#: reference/datamodel.rst:2043 +#: reference/datamodel.rst:2047 msgid "" "The default implementation by the :class:`object` class should be given an " "empty *format_spec* string. It delegates to :meth:`__str__`." @@ -3316,7 +3324,7 @@ msgstr "" "Η προεπιλεγμένη υλοποίηση από την κλάση :class:`object` θα πρέπει να λάβει " "μια κενή συμβολοσειρά *format_spec*. Αναθέτει την εντολή σε :meth:`__str__`." -#: reference/datamodel.rst:2046 +#: reference/datamodel.rst:2050 msgid "" "The __format__ method of ``object`` itself raises a :exc:`TypeError` if " "passed any non-empty string." @@ -3324,7 +3332,7 @@ msgstr "" "Η ίδια μέθοδος __format__ του ``object`` κάνει raise μια :exc:`TypeError` " "εάν περάσει οποιαδήποτε μη κενή συμβολοσειρά." -#: reference/datamodel.rst:2050 +#: reference/datamodel.rst:2054 msgid "" "``object.__format__(x, '')`` is now equivalent to ``str(x)`` rather than " "``format(str(x), '')``." @@ -3332,7 +3340,7 @@ msgstr "" "Το ``object.__format__(x, '')`` είναι πλέον ισοδύναμο με το ``str(x)`` αντί " "για το ``format(str(x), '')``." -#: reference/datamodel.rst:2066 +#: reference/datamodel.rst:2070 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:2072 +#: reference/datamodel.rst:2076 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 " @@ -3365,7 +3373,7 @@ msgstr "" "``if``), η Python θα καλέσει τη συνάρτηση :func:`bool` στην τιμή για να " "προσδιορίσει εάν το αποτέλεσμα είναι αληθές ή ψευδές." -#: reference/datamodel.rst:2079 +#: reference/datamodel.rst:2083 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 " @@ -3386,7 +3394,7 @@ msgstr "" "δημιουργήσετε αυτόματα λειτουργίες ταξινόμησης από μία μόνο ριζική " "λειτουργία, ανατρέξτε στο :func:`functools.total_ordering`." -#: reference/datamodel.rst:2088 +#: reference/datamodel.rst:2092 msgid "" "By default, the :class:`object` class provides implementations consistent " "with :ref:`expressions-value-comparisons`: equality compares according to " @@ -3401,7 +3409,7 @@ msgstr "" "αποτελέσματα απευθείας, αλλά μπορεί επίσης να επιστρέψει την τιμή :data:" "`NotImplemented`." -#: reference/datamodel.rst:2094 +#: reference/datamodel.rst:2098 msgid "" "See the paragraph on :meth:`__hash__` for some important notes on creating :" "term:`hashable` objects which support custom comparison operations and are " @@ -3412,7 +3420,7 @@ msgstr "" "υποστηρίζουν προσαρμοσμένες λειτουργίες σύγκρισης και μπορούν να " "χρησιμοποιηθούν ως κλειδιά λεξικού." -#: reference/datamodel.rst:2098 +#: reference/datamodel.rst:2102 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); " @@ -3435,7 +3443,7 @@ msgstr "" "έχει προτεραιότητα, διαφορετικά η μέθοδος του αριστερού τελεστέου έχει " "προτεραιότητα. Η εικονική υποκλάση δεν λαμβάνεται υπόψη." -#: reference/datamodel.rst:2109 +#: reference/datamodel.rst:2113 msgid "" "When no appropriate method returns any value other than :data:" "`NotImplemented`, the ``==`` and ``!=`` operators will fall back to ``is`` " @@ -3445,7 +3453,7 @@ msgstr "" "`NotImplemented`, οι τελεστές ``==`` και ``!=`` θα επιστρέψουν στις τιμές " "``is`` και ``is not``, αντίστοιχα." -#: reference/datamodel.rst:2118 +#: reference/datamodel.rst:2122 msgid "" "Called by built-in function :func:`hash` and for operations on members of " "hashed collections including :class:`set`, :class:`frozenset`, and :class:" @@ -3465,7 +3473,7 @@ msgstr "" "συσκευάζοντας τα σε μια πλειάδα και κατακερματίζοντας την πλειάδα. " "Παράδειγμα::" -#: reference/datamodel.rst:2126 +#: reference/datamodel.rst:2130 msgid "" "def __hash__(self):\n" " return hash((self.name, self.nick, self.color))" @@ -3473,7 +3481,7 @@ msgstr "" "def __hash__(self):\n" " return hash((self.name, self.nick, self.color))" -#: reference/datamodel.rst:2131 +#: reference/datamodel.rst:2135 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 " @@ -3490,7 +3498,7 @@ msgstr "" "υποστηριζόμενες εκδόσεις. Ένας εύκολος τρόπος για να το κάνετε αυτό είναι " "με την ``python -c \"import sys; print(sys.hash_info.width)\"``." -#: reference/datamodel.rst:2139 +#: reference/datamodel.rst:2143 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:" @@ -3511,7 +3519,7 @@ msgstr "" "αμετάβλητη (εάν η τιμή hash του αντικειμένου αλλάξει, θα βρίσκεται σε λάθος " "κάδο hash)." -#: reference/datamodel.rst:2148 +#: reference/datamodel.rst:2152 msgid "" "User-defined classes have :meth:`__eq__` and :meth:`__hash__` methods by " "default (inherited from the :class:`object` class); with them, all objects " @@ -3526,7 +3534,7 @@ msgstr "" "τιμή έτσι ώστε το ``x == y`` να υπονοεί ότι το ``x is y`` και ``hash(x) == " "hash(y)``." -#: reference/datamodel.rst:2153 +#: reference/datamodel.rst:2157 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:" @@ -3543,7 +3551,7 @@ msgstr "" "επίσης σωστά ως μη κατακερματιζόμενες κατά τον έλεγχο του ``isinstance(obj, " "collections.abc.Hashable)``." -#: reference/datamodel.rst:2160 +#: reference/datamodel.rst:2164 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 " @@ -3554,7 +3562,7 @@ msgstr "" "να ενημερωθεί ρητά για αυτό ορίζονται την ``__hash__ = ." "__hash__``." -#: reference/datamodel.rst:2164 +#: reference/datamodel.rst:2168 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 " @@ -3569,7 +3577,7 @@ msgstr "" "μια κλάση που μπορεί να κατακερματιστεί από μια κλήση ``isinstance(obj, " "collections.abc.Hashable)``." -#: reference/datamodel.rst:2173 +#: reference/datamodel.rst:2177 msgid "" "By default, the :meth:`__hash__` values of str and bytes objects are " "\"salted\" with an unpredictable random value. Although they remain " @@ -3581,7 +3589,7 @@ msgstr "" "σταθερές μέσα σε μια μεμονωμένη διεργασία Python, δεν είναι προβλέψιμες " "μεταξύ επαναλαμβανόμενων κλήσεων της Python." -#: reference/datamodel.rst:2178 +#: reference/datamodel.rst:2182 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 " @@ -3594,7 +3602,7 @@ msgstr "" "`2`). Δείτε http://ocert.org/advisories/ocert-2011-003.html για " "λεπτομέρειες." -#: reference/datamodel.rst:2183 +#: reference/datamodel.rst:2187 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 " @@ -3604,15 +3612,15 @@ msgstr "" "συνόλων. Η Python δεν έχει δώσει ποτέ εγγυήσεις σχετικά με αυτήν τη σειρά " "(και συνήθως ποικίλει μεταξύ εκδόσεων 32-bit και 64-bit)." -#: reference/datamodel.rst:2187 +#: reference/datamodel.rst:2191 msgid "See also :envvar:`PYTHONHASHSEED`." msgstr "Δείτε επίσης :envvar:`PYTHONHASHSEED`." -#: reference/datamodel.rst:2189 +#: reference/datamodel.rst:2193 msgid "Hash randomization is enabled by default." msgstr "Η τυχαιοποίηση κατακερματισμού είναι ενεργοποιημένη από προεπιλογή." -#: reference/datamodel.rst:2197 +#: reference/datamodel.rst:2201 msgid "" "Called to implement truth value testing and the built-in operation " "``bool()``; should return ``False`` or ``True``. When this method is not " @@ -3629,11 +3637,11 @@ msgstr "" "meth:`!__bool__`, (κάτι που ισχύει για την ίδια την κλάση :class:`object`), " "όλα τα στιγμιότυπα της θεωρούνται αληθείς." -#: reference/datamodel.rst:2208 +#: reference/datamodel.rst:2212 msgid "Customizing attribute access" msgstr "Προσαρμογή πρόσβασης χαρακτηριστικών" -#: reference/datamodel.rst:2210 +#: reference/datamodel.rst:2214 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 " @@ -3643,7 +3651,7 @@ msgstr "" "πρόσβασης χαρακτηριστικών (χρήση, ανάθεση ή διαγραφή του ``x.name``) για " "στιγμιότυπα κλάσης." -#: reference/datamodel.rst:2218 +#: reference/datamodel.rst:2222 msgid "" "Called when the default attribute access fails with an :exc:`AttributeError` " "(either :meth:`__getattribute__` raises an :exc:`AttributeError` because " @@ -3662,7 +3670,7 @@ msgstr "" "να κάνει raise μια εξαίρεση :exc:`AttributeError`. Η ίδια η κλάση :class:" "`object` δεν παρέχει αυτήν τη μέθοδο." -#: reference/datamodel.rst:2226 +#: reference/datamodel.rst:2230 msgid "" "Note that if the attribute is found through the normal mechanism, :meth:" "`__getattr__` is not called. (This is an intentional asymmetry between :" @@ -3685,7 +3693,7 @@ msgstr "" "την παρακάτω μέθοδο :meth:`__getattribute__` για έναν τρόπο να έχετε " "πραγματικά πλήρη έλεγχο της πρόσβασης χαρακτηριστικών." -#: reference/datamodel.rst:2239 +#: reference/datamodel.rst:2243 msgid "" "Called unconditionally to implement attribute accesses for instances of the " "class. If the class also defines :meth:`__getattr__`, the latter will not be " @@ -3707,7 +3715,7 @@ msgstr "" "οποιαδήποτε ιδιότητα χρειάζεται, για παράδειγμα ``object." "__getattribute__(self, name)``." -#: reference/datamodel.rst:2250 +#: reference/datamodel.rst:2254 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 " @@ -3717,7 +3725,7 @@ msgstr "" "μεθόδων ως αποτέλεσμα σιωπηρής επίκλησης μέσω σύνταξης γλώσσας ή :ref:`built-" "in functions `. Βλ. :ref:`special-lookup`." -#: reference/datamodel.rst:2257 +#: reference/datamodel.rst:2261 msgid "" "For certain sensitive attribute accesses, raises an :ref:`auditing event " "` ``object.__getattr__`` with arguments ``obj`` and ``name``." @@ -3726,7 +3734,7 @@ msgstr "" "`auditing event ` ``object.__getattr__`` με ορίσματα ``obj`` και " "``name``." -#: reference/datamodel.rst:2264 +#: reference/datamodel.rst:2268 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). " @@ -3737,7 +3745,7 @@ msgstr "" "στιγμιοτύπου). Το *name* είναι το όνομα του χαρακτηριστικού, *value* είναι η " "τιμή που θα του εκχωρηθεί." -#: reference/datamodel.rst:2268 +#: reference/datamodel.rst:2272 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." @@ -3747,7 +3755,7 @@ msgstr "" "στιγμιοτύπου, θα πρέπει να καλέσει τη μέθοδο της βασικής κλάσης με το ίδιο " "όνομα, για παράδειγμα, ``object.__setattr__(self, name, value)``." -#: reference/datamodel.rst:2274 +#: reference/datamodel.rst:2278 msgid "" "For certain sensitive attribute assignments, raises an :ref:`auditing event " "` ``object.__setattr__`` with arguments ``obj``, ``name``, " @@ -3757,7 +3765,7 @@ msgstr "" "`auditing event ` ``object.__setattr__`` με ορίσματα ``obj``, " "``name``, ``value``." -#: reference/datamodel.rst:2281 +#: reference/datamodel.rst:2285 msgid "" "Like :meth:`__setattr__` but for attribute deletion instead of assignment. " "This should only be implemented if ``del obj.name`` is meaningful for the " @@ -3767,7 +3775,7 @@ msgstr "" "ανάθεση. Αυτό θα πρέπει να εφαρμοστεί μόνο εάν το ``del obj.name`` έχει " "νόημα για το αντικείμενο." -#: reference/datamodel.rst:2286 +#: reference/datamodel.rst:2290 msgid "" "For certain sensitive attribute deletions, raises an :ref:`auditing event " "` ``object.__delattr__`` with arguments ``obj`` and ``name``." @@ -3776,7 +3784,7 @@ msgstr "" "`auditing event ` ``object.__delattr__`` με ορίσματα ``obj`` και " "``name``." -#: reference/datamodel.rst:2293 +#: reference/datamodel.rst:2297 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." @@ -3785,11 +3793,11 @@ msgstr "" "ένα iterable. Η :func:`dir` μετατρέπει το iterable που επιστρέφεται σε λίστα " "και τον ταξινομεί." -#: reference/datamodel.rst:2298 +#: reference/datamodel.rst:2302 msgid "Customizing module attribute access" msgstr "Προσαρμογή πρόσβασης χαρακτηριστικών module" -#: reference/datamodel.rst:2305 +#: reference/datamodel.rst:2312 msgid "" "Special names ``__getattr__`` and ``__dir__`` can be also used to customize " "access to module attributes. The ``__getattr__`` function at the module " @@ -3811,7 +3819,7 @@ msgstr "" "module πριν γίνει raise η εξαίρεση :exc:`AttributeError`. Αν βρεθεί, " "καλείται με το όνομα της ιδιότητας και το αποτέλεσμα επιστρέφεται." -#: reference/datamodel.rst:2314 +#: reference/datamodel.rst:2321 msgid "" "The ``__dir__`` function should accept no arguments, and return an iterable " "of strings that represents the names accessible on module. If present, this " @@ -3822,7 +3830,7 @@ msgstr "" "προσβάσιμα στο module. Εάν υπάρχει, αυτή η συνάρτηση παρακάμπτει την τυπική " "αναζήτηση :func:`dir` σε ένα module." -#: reference/datamodel.rst:2318 +#: reference/datamodel.rst:2327 msgid "" "For a more fine grained customization of the module behavior (setting " "attributes, properties, etc.), one can set the ``__class__`` attribute of a " @@ -3833,7 +3841,7 @@ msgstr "" "``__class__`` ενός αντικειμένου module σε μια υποκλάση :class:`types." "ModuleType`. Για παράδειγμα::" -#: reference/datamodel.rst:2322 +#: reference/datamodel.rst:2331 msgid "" "import sys\n" "from types import ModuleType\n" @@ -3861,7 +3869,7 @@ msgstr "" "\n" "sys.modules[__name__].__class__ = VerboseModule" -#: reference/datamodel.rst:2336 +#: reference/datamodel.rst:2345 msgid "" "Defining module ``__getattr__`` and setting module ``__class__`` only affect " "lookups made using the attribute access syntax -- directly accessing the " @@ -3874,27 +3882,27 @@ msgstr "" "του module (είτε μέσω κώδικας εντός του module, είτε μέσω αναφοράς στο " "λεξικό καθολικών του module) δεν επηρεάζεται." -#: reference/datamodel.rst:2341 +#: reference/datamodel.rst:2350 msgid "``__class__`` module attribute is now writable." msgstr "Το χαρακτηριστικό ``__class__`` του module είναι πλέον εγγράψιμο." -#: reference/datamodel.rst:2344 +#: reference/datamodel.rst:2353 msgid "``__getattr__`` and ``__dir__`` module attributes." msgstr "Τα χαρακτηριστικά ``__getattr__`` και ``__dir__`` του module." -#: reference/datamodel.rst:2349 +#: reference/datamodel.rst:2358 msgid ":pep:`562` - Module __getattr__ and __dir__" msgstr ":pep:`562` - Module __getattr__ και __dir__" -#: reference/datamodel.rst:2350 +#: reference/datamodel.rst:2359 msgid "Describes the ``__getattr__`` and ``__dir__`` functions on modules." msgstr "Περιγράφει τις συναρτήσεις ``__getattr__`` και ``__dir__`` σε modules." -#: reference/datamodel.rst:2356 +#: reference/datamodel.rst:2365 msgid "Implementing Descriptors" msgstr "Υλοποίηση Περιγραφέων" -#: reference/datamodel.rst:2358 +#: reference/datamodel.rst:2367 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 " @@ -3913,7 +3921,7 @@ msgstr "" "`~object.__dict__` της ιδιοκτήτριας κλάσης. Η ίδια η κλάση :class:`object` " "δεν υλοποιεί κανένα από αυτά τα πρωτόκολλα." -#: reference/datamodel.rst:2368 +#: reference/datamodel.rst:2377 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 " @@ -3928,7 +3936,7 @@ msgstr "" "έγινε πρόσβαση στο χαρακτηριστικό, ή ``None`` όταν η πρόσβαση στο " "χαρακτηριστικό έγινε μέσω της *owner*." -#: reference/datamodel.rst:2374 +#: reference/datamodel.rst:2383 msgid "" "This method should return the computed attribute value or raise an :exc:" "`AttributeError` exception." @@ -3936,7 +3944,7 @@ msgstr "" "Αυτή η μέθοδος πρέπει να επιστρέφει την υπολογισμένη τιμή του " "χαρακτηριστικού ή να κάνει raise μια :exc:`AttributeError` εξαίρεση." -#: reference/datamodel.rst:2377 +#: reference/datamodel.rst:2386 msgid "" ":PEP:`252` specifies that :meth:`__get__` is callable with one or two " "arguments. Python's own built-in descriptors support this specification; " @@ -3952,7 +3960,7 @@ msgstr "" "Python για τη μέθοδο :meth:`__getattribute__` περνάει πάντα και τα δύο " "ορίσματα, είτε είναι απαραίτητα είτε όχι." -#: reference/datamodel.rst:2386 +#: reference/datamodel.rst:2395 msgid "" "Called to set the attribute on an instance *instance* of the owner class to " "a new value, *value*." @@ -3960,7 +3968,7 @@ msgstr "" "Καλείται για να οριστεί το χαρακτηριστικό σε ένα στιγμιότυπο *instance* της " "ιδιοκτήτρια κλάσης σε μια νέα τιμή, *value*." -#: reference/datamodel.rst:2389 +#: reference/datamodel.rst:2398 msgid "" "Note, adding :meth:`__set__` or :meth:`__delete__` changes the kind of " "descriptor to a \"data descriptor\". See :ref:`descriptor-invocation` for " @@ -3970,14 +3978,14 @@ msgstr "" "είδος του περιγραφέα σε έναν \"περιγραφέα δεδομένων\". Δείτε το :ref:" "`descriptor-invocation` για περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:2395 +#: reference/datamodel.rst:2404 msgid "" "Called to delete the attribute on an instance *instance* of the owner class." msgstr "" "Καλείται για να διαγραφεί το χαρακτηριστικό σε ένα στιγμιότυπο *instance* " "της ιδιοκτήτρια κλάσης." -#: reference/datamodel.rst:2397 +#: reference/datamodel.rst:2406 msgid "" "Instances of descriptors may also have the :attr:`!__objclass__` attribute " "present:" @@ -3985,7 +3993,7 @@ msgstr "" "Τα στιγμιότυπα περιγραφέων μπορείς επίσης να έχουν διαθέσιμο το " "χαρακτηριστικό :attr:`!__objclass__`:" -#: reference/datamodel.rst:2402 +#: reference/datamodel.rst:2411 msgid "" "The attribute :attr:`!__objclass__` is interpreted by the :mod:`inspect` " "module as specifying the class where this object was defined (setting this " @@ -4004,11 +4012,11 @@ msgstr "" "παράδειγμα, η CPython θέτει αυτήν την ιδιότητα για μη δεσμευμένες μεθόδους " "που έχουν υλοποιηθεί σε C)." -#: reference/datamodel.rst:2413 +#: reference/datamodel.rst:2422 msgid "Invoking Descriptors" msgstr "Κλήση Descriptors" -#: reference/datamodel.rst:2415 +#: reference/datamodel.rst:2424 msgid "" "In general, a descriptor is an object attribute with \"binding behavior\", " "one whose attribute access has been overridden by methods in the descriptor " @@ -4023,7 +4031,7 @@ msgstr "" "οποιαδήποτε από αυτές τις μεθόδους έχει οριστεί για ένα αντικείμενο, τότε το " "αντικείμενο αυτό θεωρείται descriptor." -#: reference/datamodel.rst:2421 +#: reference/datamodel.rst:2430 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 " @@ -4037,7 +4045,7 @@ msgstr "" "συνεχίζει στις βασικές κατηγορίες του ``type(a)`` εξαιρουμένων των " "μετακλάσεων." -#: reference/datamodel.rst:2426 +#: reference/datamodel.rst:2435 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 " @@ -4050,7 +4058,7 @@ msgstr "" "στην αλυσίδα προτεραιότητας εξαρτάται από το ποιες μέθοδοι περιγραφής " "ορίστηκαν και πώς ονομάστηκαν." -#: reference/datamodel.rst:2431 +#: reference/datamodel.rst:2440 msgid "" "The starting point for descriptor invocation is a binding, ``a.x``. How the " "arguments are assembled depends on ``a``:" @@ -4058,11 +4066,11 @@ msgstr "" "Το σημείο εκκίνηση για την επίκληση του περιγραφέα είναι ένα δεσμευτικό, ``a." "x``. Ο τρόπος συναρμολόγησης των ορισμάτων εξαρτάται από το ``a``:" -#: reference/datamodel.rst:2434 +#: reference/datamodel.rst:2443 msgid "Direct Call" msgstr "Απευθείας Κλήση" -#: reference/datamodel.rst:2435 +#: reference/datamodel.rst:2444 msgid "" "The simplest and least common call is when user code directly invokes a " "descriptor method: ``x.__get__(a)``." @@ -4070,11 +4078,11 @@ msgstr "" "Η απλούστερη και λιγότερο συνηθισμένη κλήση είναι όταν ο κωδικός χρήστη " "καλεί απευθείας μια μέθοδο περιγραφής: ``x.__get__(a)``." -#: reference/datamodel.rst:2438 +#: reference/datamodel.rst:2447 msgid "Instance Binding" msgstr "Δέσμευση Στιγμιοτύπου" -#: reference/datamodel.rst:2439 +#: reference/datamodel.rst:2448 msgid "" "If binding to an object instance, ``a.x`` is transformed into the call: " "``type(a).__dict__['x'].__get__(a, type(a))``." @@ -4082,11 +4090,11 @@ msgstr "" "Εάν δεσμεύεται σε ένα στιγμιότυπο αντικειμένου, το ``a.x`` μετατρέπεται στην " "κλήση: ``type(a).__dict__['x'].__get__(a, type(a))``." -#: reference/datamodel.rst:2442 +#: reference/datamodel.rst:2451 msgid "Class Binding" msgstr "Δέσμευση Κλάσης" -#: reference/datamodel.rst:2443 +#: reference/datamodel.rst:2452 msgid "" "If binding to a class, ``A.x`` is transformed into the call: ``A." "__dict__['x'].__get__(None, A)``." @@ -4094,11 +4102,11 @@ msgstr "" "Εάν δεσμεύεται σε μια κλάση, το ``A.x`` μετατρέπεται στην κλήση: ``A." "__dict__['x'].__get__(None, A)``." -#: reference/datamodel.rst:2446 +#: reference/datamodel.rst:2455 msgid "Super Binding" msgstr "Υπερ-Δέσμευση" -#: reference/datamodel.rst:2447 +#: reference/datamodel.rst:2456 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']." @@ -4109,7 +4117,7 @@ msgstr "" "επιστρέφει το ``B.__dict__['x'].__get__(a, A)``. Εάν δεν είναι περιγραφέας, " "το ``x`` επιστρέφεται αμετάβλητο." -#: reference/datamodel.rst:2484 +#: reference/datamodel.rst:2493 msgid "" "For instance bindings, the precedence of descriptor invocation depends on " "which descriptor methods are defined. A descriptor can define any " @@ -4142,22 +4150,21 @@ msgstr "" "στιγμιοτύπου. Αντίθετα, οι μη περιγραφείς δεδομένων μπορούν να παρακαμφθούν " "από στιγμιότυπα." -#: reference/datamodel.rst:2499 +#: reference/datamodel.rst:2508 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:2505 +#: reference/datamodel.rst:2514 msgid "" "The :func:`property` function is implemented as a data descriptor. " "Accordingly, instances cannot override the behavior of a property." @@ -4165,11 +4172,11 @@ msgstr "" "Η συνάρτηση :func:`property` υλοποιείται ως περιγραφέας δεδομένων. Συνεπώς, " "οι περιπτώσεις δεν μπορούν να παρακάμψουν τη συμπεριφορά μιας ιδιότητας." -#: reference/datamodel.rst:2512 +#: reference/datamodel.rst:2521 msgid "__slots__" msgstr "__slots__" -#: reference/datamodel.rst:2514 +#: reference/datamodel.rst:2523 msgid "" "*__slots__* allow us to explicitly declare data members (like properties) " "and deny the creation of :attr:`~object.__dict__` and *__weakref__* (unless " @@ -4180,7 +4187,7 @@ msgstr "" "*__weakref__* (εκτός εάν δηλώνεται ρητά στο *__slots__* ή είναι διαθέσιμο σε " "έναν γονέα.)" -#: reference/datamodel.rst:2518 +#: reference/datamodel.rst:2527 msgid "" "The space saved over using :attr:`~object.__dict__` can be significant. " "Attribute lookup speed can be significantly improved as well." @@ -4189,7 +4196,7 @@ msgstr "" "να είναι σημαντικός. Η ταχύτητα αναζήτησης χαρακτηριστικών μπορεί επίσης να " "βελτιωθεί σημαντικά." -#: reference/datamodel.rst:2523 +#: reference/datamodel.rst:2532 msgid "" "This class variable can be assigned a string, iterable, or sequence of " "strings with variable names used by instances. *__slots__* reserves space " @@ -4202,11 +4209,11 @@ msgstr "" "αποτρέπει την αυτόματη δημιουργία των :attr:`~object.__dict__` και " "*__weakref__* για κάθε περίπτωση." -#: reference/datamodel.rst:2532 +#: reference/datamodel.rst:2541 msgid "Notes on using *__slots__*:" msgstr "Σημειώσεις σχετικά με τη χρήση *__slots__*:" -#: reference/datamodel.rst:2534 +#: reference/datamodel.rst:2543 msgid "" "When inheriting from a class without *__slots__*, the :attr:`~object." "__dict__` and *__weakref__* attribute of the instances will always be " @@ -4216,7 +4223,7 @@ msgstr "" "attr:`~object.__dict__` και *__weakref__* των στιγμιοτύπων θα είναι πάντα " "προσβάσιμο." -#: reference/datamodel.rst:2538 +#: reference/datamodel.rst:2547 msgid "" "Without a :attr:`~object.__dict__` variable, instances cannot be assigned " "new variables not listed in the *__slots__* definition. Attempts to assign " @@ -4231,7 +4238,7 @@ msgstr "" "αντιστοίχιση νέων μεταβλητών, τότε προσθέστε το ``'__dict__'`` στην " "ακολουθία συμβολοσειρών στη δήλωση *__slots__*." -#: reference/datamodel.rst:2545 +#: reference/datamodel.rst:2554 msgid "" "Without a *__weakref__* variable for each instance, classes defining " "*__slots__* do not support :mod:`weak references ` to its " @@ -4244,7 +4251,7 @@ msgstr "" "τότε προσθέστε το ``'__weakref__'`` στην ακολουθία των συμβολοσειρών στη " "δήλωση των *__slots__*." -#: reference/datamodel.rst:2551 +#: reference/datamodel.rst:2560 msgid "" "*__slots__* are implemented at the class level by creating :ref:`descriptors " "` for each variable name. As a result, class attributes cannot " @@ -4258,7 +4265,7 @@ msgstr "" "*__slots__* ∙ διαφορετικά, το χαρακτηριστικό της κλάσης θα αντικαθιστούσε " "την ανάθεση του descriptor." -#: reference/datamodel.rst:2557 +#: reference/datamodel.rst:2566 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. " @@ -4273,7 +4280,7 @@ msgstr "" "ίδιες *__slots__* (τα οποία θα πρέπει να περιέχουν μόνο τα *επιπλέον* " "ονόματα slots)." -#: reference/datamodel.rst:2563 +#: reference/datamodel.rst:2572 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 " @@ -4287,7 +4294,7 @@ msgstr "" "κλάση). Αυτό καθιστά το νόημα του προγράμματος ασαφές. Στο μέλλον, μπορεί " "να προστεθεί έλεγχος που να αποτρέπει κάτι τέτοιο." -#: reference/datamodel.rst:2568 +#: reference/datamodel.rst:2577 msgid "" ":exc:`TypeError` will be raised if nonempty *__slots__* are defined for a " "class derived from a :c:member:`\"variable-length\" built-in type " @@ -4299,13 +4306,13 @@ msgstr "" "`, όπως οι :class:`int`, :class:`bytes`, και :" "class:`tuple`." -#: reference/datamodel.rst:2573 +#: reference/datamodel.rst:2582 msgid "Any non-string :term:`iterable` may be assigned to *__slots__*." msgstr "" "Οποιαδήποτε μη συμβολοσειρά :term:`iterable` μπορεί να εκχωρηθεί σε " "*__slots__*." -#: reference/datamodel.rst:2575 +#: reference/datamodel.rst:2584 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 " @@ -4319,7 +4326,7 @@ msgstr "" "συνάρτηση :func:`inspect.getdoc` και θα εμφανίζεται στην έξοδο της :func:" "`help`." -#: reference/datamodel.rst:2580 +#: reference/datamodel.rst:2589 msgid "" ":attr:`~object.__class__` assignment works only if both classes have the " "same *__slots__*." @@ -4327,7 +4334,7 @@ msgstr "" "Η ανάθεση στη :attr:`~instance.__class__` λειτουργεί μόνο αν και οι δύο " "κλάσεις έχουν τα ίδια *__slots__*." -#: reference/datamodel.rst:2583 +#: reference/datamodel.rst:2592 msgid "" ":ref:`Multiple inheritance ` with multiple slotted parent " "classes can be used, but only one parent is allowed to have attributes " @@ -4340,7 +4347,7 @@ msgstr "" "κλάσεις πρέπει να έχουν κενή διάταξη slots) - παραβιάσεις αυτού κάνουν " "raise :exc:`TypeError`." -#: reference/datamodel.rst:2589 +#: reference/datamodel.rst:2598 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__* " @@ -4350,11 +4357,11 @@ msgstr "" "ένας :term:`descriptor` για κάθε μία από τις τιμές του iterator. Ωστόσο, το " "χαρακτηριστικό *__slots__* θα είναι ένας κενός iterator." -#: reference/datamodel.rst:2597 +#: reference/datamodel.rst:2606 msgid "Customizing class creation" msgstr "Προσαρμογή δημιουργίας κλάσης" -#: reference/datamodel.rst:2599 +#: reference/datamodel.rst:2608 msgid "" "Whenever a class inherits from another class, :meth:`~object." "__init_subclass__` is called on the parent class. This way, it is possible " @@ -4371,7 +4378,7 @@ msgstr "" "``__init_subclass__`` ισχύει αποκλειστικά για μελλοντικές υποκλάσεις της " "κλάσης που ορίζουν τη μέθοδο." -#: reference/datamodel.rst:2608 +#: reference/datamodel.rst:2617 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 " @@ -4381,7 +4388,7 @@ msgstr "" "είναι τότε η νέα υποκλάση. Εάν οριστεί ως μια κανονική μέθοδος στιγμιοτύπου, " "αυτή η μέθοδος μετατρέπεται σιωπηρά σε μέθοδο κλάσης." -#: reference/datamodel.rst:2612 +#: reference/datamodel.rst:2621 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 " @@ -4393,7 +4400,7 @@ msgstr "" "``__init_subclass__``, θα πρέπει να αφαιρεθούν τα απαραίτητα ορίσματα λέξεων-" "κλειδιών και να περάσουν τα άλλα στη βασική κλάση, όπως στο::" -#: reference/datamodel.rst:2618 +#: reference/datamodel.rst:2627 msgid "" "class Philosopher:\n" " def __init_subclass__(cls, /, default_name, **kwargs):\n" @@ -4411,7 +4418,7 @@ msgstr "" "class AustralianPhilosopher(Philosopher, default_name=\"Bruce\"):\n" " pass" -#: reference/datamodel.rst:2626 +#: reference/datamodel.rst:2635 msgid "" "The default implementation ``object.__init_subclass__`` does nothing, but " "raises an error if it is called with any arguments." @@ -4419,7 +4426,7 @@ msgstr "" "Η προεπιλεγμένη υλοποίηση ``object.__init_subclass__`` δεν κάνει τίποτα, " "αλλά δημιουργεί ένα σφάλμα εάν καλείται με οποιαδήποτε ορίσματα." -#: reference/datamodel.rst:2631 +#: reference/datamodel.rst:2640 msgid "" "The metaclass hint ``metaclass`` is consumed by the rest of the type " "machinery, and is never passed to ``__init_subclass__`` implementations. The " @@ -4431,7 +4438,7 @@ msgstr "" "πραγματική μετακλάση (και όχι η ρητή υπόδειξη) μπορεί να προσπελαστεί ως " "``type(cls)``." -#: reference/datamodel.rst:2639 +#: reference/datamodel.rst:2648 msgid "" "When a class is created, :meth:`type.__new__` scans the class variables and " "makes callbacks to those with a :meth:`~object.__set_name__` hook." @@ -4440,7 +4447,7 @@ msgstr "" "κλάσης και πραγματοποιεί επανάκληση σε εκείνες με ένα :meth:`~object." "__set_name__` hook." -#: reference/datamodel.rst:2644 +#: reference/datamodel.rst:2653 msgid "" "Automatically called at the time the owning class *owner* is created. The " "object has been assigned to *name* in that class::" @@ -4448,7 +4455,7 @@ msgstr "" "Καλείται αυτόματα τη στιγμή που δημιουργείται η ιδιοκτήτρια κλάση *owner*. " "Το αντικείμενο έχει εκχωρηθεί στο *name* σε αυτήν την κλάση::" -#: reference/datamodel.rst:2647 +#: reference/datamodel.rst:2656 msgid "" "class A:\n" " x = C() # Automatically calls: x.__set_name__(A, 'x')" @@ -4456,7 +4463,7 @@ msgstr "" "class A:\n" " x = C() # Automatically calls: x.__set_name__(A, 'x')" -#: reference/datamodel.rst:2650 +#: reference/datamodel.rst:2659 msgid "" "If the class variable is assigned after the class is created, :meth:" "`__set_name__` will not be called automatically. If needed, :meth:" @@ -4466,7 +4473,7 @@ msgstr "" "`__set_name__` δεν θα κληθεί αυτόματα. Εάν χρειάζεται, η :meth:" "`__set_name__` μπορεί να κληθεί απευθείας::" -#: reference/datamodel.rst:2654 +#: reference/datamodel.rst:2663 msgid "" "class A:\n" " pass\n" @@ -4482,15 +4489,15 @@ msgstr "" "A.x = c # The hook is not called\n" "c.__set_name__(A, 'x') # Manually invoke the hook" -#: reference/datamodel.rst:2661 +#: reference/datamodel.rst:2670 msgid "See :ref:`class-object-creation` for more details." msgstr "Δείτε το :ref:`class-object-creation` για περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:2669 +#: reference/datamodel.rst:2678 msgid "Metaclasses" msgstr "Μετα-κλάσεις" -#: reference/datamodel.rst:2676 +#: reference/datamodel.rst:2685 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 " @@ -4500,7 +4507,7 @@ msgstr "" "σώμα κλάσης εκτελείται σε νέο χώρο ονομάτων και το όνομα της κλάσης " "συνδέεται τοπικά με το αποτέλεσμα του ``type(name, bases, namespace)``." -#: reference/datamodel.rst:2680 +#: reference/datamodel.rst:2689 msgid "" "The class creation process can be customized by passing the ``metaclass`` " "keyword argument in the class definition line, or by inheriting from an " @@ -4513,7 +4520,7 @@ msgstr "" "παρακάτω παράδειγμα, τόσο το ``MyClass`` και ``MySubclass`` είναι " "περιπτώσεις του ``Meta``::" -#: reference/datamodel.rst:2685 +#: reference/datamodel.rst:2694 msgid "" "class Meta(type):\n" " pass\n" @@ -4533,7 +4540,7 @@ msgstr "" "class MySubclass(MyClass):\n" " pass" -#: reference/datamodel.rst:2694 +#: reference/datamodel.rst:2703 msgid "" "Any other keyword arguments that are specified in the class definition are " "passed through to all metaclass operations described below." @@ -4541,35 +4548,35 @@ msgstr "" "Οποιαδήποτε άλλα ορίσματα λέξης-κλειδιού που καθορίζονται στον ορισμό κλάσης " "μεταβιβάζονται σε όλες τις λειτουργίες μετακλάσης που περιγράφονται παρακάτω." -#: reference/datamodel.rst:2697 +#: reference/datamodel.rst:2706 msgid "When a class definition is executed, the following steps occur:" msgstr "Όταν εκτελείται ένας ορισμός κλάσης, εμφανίζονται τα ακόλουθα βήματα:" -#: reference/datamodel.rst:2699 +#: reference/datamodel.rst:2708 msgid "MRO entries are resolved;" msgstr "Οι εγγραφές MRO επιλύονται∙" -#: reference/datamodel.rst:2700 +#: reference/datamodel.rst:2709 msgid "the appropriate metaclass is determined;" msgstr "καθορίζεται η κατάλληλη μετακλάση∙" -#: reference/datamodel.rst:2701 +#: reference/datamodel.rst:2710 msgid "the class namespace is prepared;" msgstr "προετοιμάζεται ο χώρος ονομάτων της κλάσης∙" -#: reference/datamodel.rst:2702 +#: reference/datamodel.rst:2711 msgid "the class body is executed;" msgstr "εκτελείται το σώμα της κλάσης∙" -#: reference/datamodel.rst:2703 +#: reference/datamodel.rst:2712 msgid "the class object is created." msgstr "δημιουργείται το αντικείμενο της κλάσης." -#: reference/datamodel.rst:2707 +#: reference/datamodel.rst:2716 msgid "Resolving MRO entries" msgstr "Επίλυση εγγραφών MRO" -#: reference/datamodel.rst:2711 +#: reference/datamodel.rst:2720 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 " @@ -4590,19 +4597,19 @@ msgstr "" "πλειάδα που επιστράφηκε μπορεί να είναι κενή: σε αυτές τις περιπτώσεις, η " "αρχική βάση αγνοείται." -#: reference/datamodel.rst:2722 +#: reference/datamodel.rst:2731 msgid ":func:`types.resolve_bases`" msgstr ":func:`types.resolve_bases`" -#: reference/datamodel.rst:2723 +#: reference/datamodel.rst:2732 msgid "Dynamically resolve bases that are not instances of :class:`type`." msgstr "Επιλύστε δυναμικά βάσεις που δεν είναι στιγμιότυπα του :class:`type`." -#: reference/datamodel.rst:2725 +#: reference/datamodel.rst:2734 msgid ":func:`types.get_original_bases`" msgstr ":func:`types.get_original_bases`" -#: reference/datamodel.rst:2726 +#: reference/datamodel.rst:2735 msgid "" "Retrieve a class's \"original bases\" prior to modifications by :meth:" "`~object.__mro_entries__`." @@ -4610,31 +4617,31 @@ msgstr "" "Ανακτήσετε τις \"αρχικές βάσεις\" μιας κλάσης πριν από τις τροποποιήσεις " "από :meth:`~object.__mro_entries__`." -#: reference/datamodel.rst:2729 +#: reference/datamodel.rst:2738 msgid ":pep:`560`" msgstr ":pep:`560`" -#: reference/datamodel.rst:2730 +#: reference/datamodel.rst:2739 msgid "Core support for typing module and generic types." msgstr "Βασική υποστήριξη για modules τύπων και γενικούς τύπους." -#: reference/datamodel.rst:2734 +#: reference/datamodel.rst:2743 msgid "Determining the appropriate metaclass" msgstr "Προσδιορισμός της κατάλληλης μετακλάσης" -#: reference/datamodel.rst:2738 +#: reference/datamodel.rst:2747 msgid "" "The appropriate metaclass for a class definition is determined as follows:" -msgstr "Η κατάλληλη μετακλάση για έναν ορισμό κλάσης καθορίζεται ως εξής: " +msgstr "Η κατάλληλη μετακλάση για έναν ορισμό κλάσης καθορίζεται ως εξής:" -#: reference/datamodel.rst:2740 +#: reference/datamodel.rst:2749 msgid "" "if no bases and no explicit metaclass are given, then :func:`type` is used;" msgstr "" "εάν δεν δίνονται βάσεις και καμία ρητή μετακλάση, τότε χρησιμοποιείται η :" "func:`type` ∙" -#: reference/datamodel.rst:2741 +#: reference/datamodel.rst:2750 msgid "" "if an explicit metaclass is given and it is *not* an instance of :func:" "`type`, then it is used directly as the metaclass;" @@ -4642,7 +4649,7 @@ msgstr "" "εάν δοθεί μια ρητή μετακλάση και *δεν* είναι ένα στιγμιότυπο της :func:" "`type`, τότε χρησιμοποιείται απευθείας ως μετακλάση∙" -#: reference/datamodel.rst:2743 +#: reference/datamodel.rst:2752 msgid "" "if an instance of :func:`type` is given as the explicit metaclass, or bases " "are defined, then the most derived metaclass is used." @@ -4650,7 +4657,7 @@ msgstr "" "εάν ένα στιγμιότυπο της :func:`type` δίνεται ως ρητή μετακλάση ή ορίζονται " "βάσεις, τότε χρησιμοποιείται η πιο παραγόμενη μετακλάση." -#: reference/datamodel.rst:2746 +#: reference/datamodel.rst:2755 msgid "" "The most derived metaclass is selected from the explicitly specified " "metaclass (if any) and the metaclasses (i.e. ``type(cls)``) of all specified " @@ -4665,11 +4672,11 @@ msgstr "" "μετακλάσεις δεν πληροί αυτό το κριτήριο, τότε ο ορισμός της κλάσης θα " "αποτύχει με ``TypeError``." -#: reference/datamodel.rst:2756 +#: reference/datamodel.rst:2765 msgid "Preparing the class namespace" msgstr "Προετοιμασία του χώρου ονομάτων της κλάσης" -#: reference/datamodel.rst:2761 +#: reference/datamodel.rst:2770 msgid "" "Once the appropriate metaclass has been identified, then the class namespace " "is prepared. If the metaclass has a ``__prepare__`` attribute, it is called " @@ -4690,7 +4697,7 @@ msgstr "" "δημιουργείται το τελικό αντικείμενο κλάσης, ο χώρος ονομάτων αντιγράφεται σε " "ένα νέο ``dict``." -#: reference/datamodel.rst:2770 +#: reference/datamodel.rst:2779 msgid "" "If the metaclass has no ``__prepare__`` attribute, then the class namespace " "is initialised as an empty ordered mapping." @@ -4698,19 +4705,19 @@ msgstr "" "Εάν η μετακλάση δεν έχει χαρακτηριστικό ``__prepare__``, τότε ο χώρος " "ονομάτων κλάσης αρχικοποιείται ως κενή ταξινομημένη αντιστοίχιση." -#: reference/datamodel.rst:2775 +#: reference/datamodel.rst:2784 msgid ":pep:`3115` - Metaclasses in Python 3000" msgstr ":pep:`3115` - Μετακλάσεις στην Python 3000" -#: reference/datamodel.rst:2776 +#: reference/datamodel.rst:2785 msgid "Introduced the ``__prepare__`` namespace hook" msgstr "Παρουσιάστηκε το άγκιστρο χώρου ονομάτων ``__prepare__``" -#: reference/datamodel.rst:2780 +#: reference/datamodel.rst:2789 msgid "Executing the class body" msgstr "Εκτέλεση του σώματος της κλάσης" -#: reference/datamodel.rst:2785 +#: reference/datamodel.rst:2794 msgid "" "The class body is executed (approximately) as ``exec(body, globals(), " "namespace)``. The key difference from a normal call to :func:`exec` is that " @@ -4725,7 +4732,7 @@ msgstr "" "τρέχον και το εξωτερικό πεδίο εφαρμογής όταν ο ορισμός κλάσης εμφανίζεται " "μέσα σε μια συνάρτηση." -#: reference/datamodel.rst:2791 +#: reference/datamodel.rst:2800 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. " @@ -4740,11 +4747,11 @@ msgstr "" "κλάσης ή μέσω της σιωπηρής αναφοράς ``__class__`` με λεξικό που περιγράφεται " "στην επόμενη ενότητα." -#: reference/datamodel.rst:2800 +#: reference/datamodel.rst:2809 msgid "Creating the class object" msgstr "Δημιουργία αντικειμένου κλάσης" -#: reference/datamodel.rst:2807 +#: reference/datamodel.rst:2816 msgid "" "Once the class namespace has been populated by executing the class body, the " "class object is created by calling ``metaclass(name, bases, namespace, " @@ -4756,7 +4763,7 @@ msgstr "" "bases, namespace, **kwds)`` (οι πρόσθετε λέξεις-κλειδιά που μεταβιβάζονται " "εδώ είναι οι ίδιες με αυτές που διαβιβάζονται στο ``__prepare__``)." -#: reference/datamodel.rst:2812 +#: reference/datamodel.rst:2821 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 " @@ -4776,7 +4783,7 @@ msgstr "" "τρέχουσας κλήσης προσδιορίζεται με βάση το πρώτο όρισμα που μεταβιβάστηκε " "στη μέθοδο." -#: reference/datamodel.rst:2822 +#: reference/datamodel.rst:2831 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 " @@ -4791,7 +4798,7 @@ msgstr "" "γίνει σωστά. Αν δεν το κάνετε αυτό θα έχει ως αποτέλεσμα μια :exc:" "`RuntimeError` στην Python 3.8." -#: reference/datamodel.rst:2828 +#: reference/datamodel.rst:2837 msgid "" "When using the default metaclass :class:`type`, or any metaclass that " "ultimately calls ``type.__new__``, the following additional customization " @@ -4801,7 +4808,7 @@ msgstr "" "μετακλάσης που τελικά καλεί ``type.__new__``, τα ακόλουθα πρόσθετα βήματα " "προσαρμογής καλούνται μετά τη δημιουργία του αντικείμενου κλάσης:" -#: reference/datamodel.rst:2832 +#: reference/datamodel.rst:2841 msgid "" "The ``type.__new__`` method collects all of the attributes in the class " "namespace that define a :meth:`~object.__set_name__` method;" @@ -4809,7 +4816,7 @@ msgstr "" "Η μέθοδος ``type.__new__`` συλλέγει όλα τα χαρακτηριστικά στον χώρο ονομάτων " "της κλάσης που ορίζουν μια μέθοδο :meth:`~object.__set_name__` ∙" -#: reference/datamodel.rst:2834 +#: reference/datamodel.rst:2843 msgid "" "Those ``__set_name__`` methods are called with the class being defined and " "the assigned name of that particular attribute;" @@ -4817,7 +4824,7 @@ msgstr "" "Αυτές οι μέθοδοι ``__set_name__`` καλούνται με την κλάση που ορίζεται και το " "εκχωρημένο όνομα του συγκεκριμένου χαρακτηριστικού∙" -#: reference/datamodel.rst:2836 +#: reference/datamodel.rst:2845 msgid "" "The :meth:`~object.__init_subclass__` hook is called on the immediate parent " "of the new class in its method resolution order." @@ -4825,7 +4832,7 @@ msgstr "" "Το άγκιστρο :meth:`~object.__init_subclass__` καλείται στον άμεσο γονέα της " "νέας κλάσης στη σειρά ανάλυσης της μεθόδου." -#: reference/datamodel.rst:2839 +#: reference/datamodel.rst:2848 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 " @@ -4836,7 +4843,7 @@ msgstr "" "αντικείμενο που προκύπτει δεσμεύεται στον τοπικό χώρο ονομάτων ως η " "καθορισμένη κλάση." -#: reference/datamodel.rst:2843 +#: reference/datamodel.rst:2852 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 " @@ -4850,19 +4857,19 @@ msgstr "" "οποίος γίνεται το χαρακτηριστικό :attr:`~object.__dict__` του αντικειμένου " "κλάσης." -#: reference/datamodel.rst:2850 +#: reference/datamodel.rst:2859 msgid ":pep:`3135` - New super" msgstr ":pep:`3135` - Νέο super" -#: reference/datamodel.rst:2851 +#: reference/datamodel.rst:2860 msgid "Describes the implicit ``__class__`` closure reference" msgstr "Περιγράφει την σιωπηρή αναφορά κλεισίματος ``__class__``" -#: reference/datamodel.rst:2855 +#: reference/datamodel.rst:2864 msgid "Uses for metaclasses" msgstr "Χρήσεις για μετακλάσεις" -#: reference/datamodel.rst:2857 +#: reference/datamodel.rst:2866 msgid "" "The potential uses for metaclasses are boundless. Some ideas that have been " "explored include enum, logging, interface checking, automatic delegation, " @@ -4874,11 +4881,11 @@ msgstr "" "την αυτόματα ανάθεση την αυτόματη δημιουργία ιδιοτήτων, τους διακομιστές " "μεσολάβησης, τα πλαίσια και το αυτόματο κλείδωμα/συγχρονισμό πόρων." -#: reference/datamodel.rst:2864 +#: reference/datamodel.rst:2873 msgid "Customizing instance and subclass checks" msgstr "Προσαρμογή ελέγχων παρουσίας και υποκλάσης" -#: reference/datamodel.rst:2866 +#: reference/datamodel.rst:2875 msgid "" "The following methods are used to override the default behavior of the :func:" "`isinstance` and :func:`issubclass` built-in functions." @@ -4887,7 +4894,7 @@ msgstr "" "συμπεριφοράς των ενσωματωμένων συναρτήσεων :func:`isinstance` και :func:" "`issubclass`." -#: reference/datamodel.rst:2869 +#: reference/datamodel.rst:2878 msgid "" "In particular, the metaclass :class:`abc.ABCMeta` implements these methods " "in order to allow the addition of Abstract Base Classes (ABCs) as \"virtual " @@ -4900,7 +4907,7 @@ msgstr "" "(συμπεριλαμβανομένων των ενσωματωμένων τύπων), συμπεριλαμβανομένων άλλων " "ABCs." -#: reference/datamodel.rst:2876 +#: reference/datamodel.rst:2885 msgid "" "Return true if *instance* should be considered a (direct or indirect) " "instance of *class*. If defined, called to implement ``isinstance(instance, " @@ -4910,7 +4917,7 @@ msgstr "" "έμμεσο) στιγμιότυπο της *class*. Εάν ορίζεται, καλείται να υλοποιήσει " "``isinstance(instance, class)``." -#: reference/datamodel.rst:2883 +#: reference/datamodel.rst:2892 msgid "" "Return true if *subclass* should be considered a (direct or indirect) " "subclass of *class*. If defined, called to implement ``issubclass(subclass, " @@ -4920,7 +4927,7 @@ msgstr "" "υποκλάση της *class*. Εάν ορίζεται, καλείται να υλοποιήσει " "``issubclass(subclass, class)``." -#: reference/datamodel.rst:2888 +#: reference/datamodel.rst:2897 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 " @@ -4932,11 +4939,11 @@ msgstr "" "Αυτό είναι σύμφωνο με την αναζήτηση ειδικών μεθόδων που καλούνται σε " "στιγμιότυπα, μόνο σε αυτήν την περίπτωση το ίδιο στιγμιότυπο είναι μια κλάση." -#: reference/datamodel.rst:2895 +#: reference/datamodel.rst:2904 msgid ":pep:`3119` - Introducing Abstract Base Classes" msgstr ":pep:`3119` - Εισάγοντας τις Αφηρημένες Βασικές Κλάσεις" -#: reference/datamodel.rst:2896 +#: reference/datamodel.rst:2905 msgid "" "Includes the specification for customizing :func:`isinstance` and :func:" "`issubclass` behavior through :meth:`~type.__instancecheck__` and :meth:" @@ -4950,11 +4957,11 @@ msgstr "" "αυτήν τη λειτουργικότητα στο πλαίσιο της προσθήκης Αφηρημένης Βασικής Κλάσης " "(δείτε το module :mod:`abc`) στη γλώσσα." -#: reference/datamodel.rst:2904 +#: reference/datamodel.rst:2913 msgid "Emulating generic types" msgstr "Εξομοίωση γενικών τύπων" -#: reference/datamodel.rst:2906 +#: reference/datamodel.rst:2915 msgid "" "When using :term:`type annotations`, it is often useful to " "*parameterize* a :term:`generic type` using Python's square-brackets " @@ -4967,25 +4974,25 @@ msgstr "" "``list[int]`` μπορεί να χρησιμοποιηθεί για να υποδηλώσει μια :class:`list` " "στην οποία όλα τα στοιχεία της κλάσης είναι τύπου :class:`int`." -#: reference/datamodel.rst:2913 +#: reference/datamodel.rst:2922 msgid ":pep:`484` - Type Hints" msgstr ":pep:`484` - Τύπος Hints" -#: reference/datamodel.rst:2914 +#: reference/datamodel.rst:2923 msgid "Introducing Python's framework for type annotations" msgstr "Εισάγοντας το πλαίσιο της Python για τύπους annotations" -#: reference/datamodel.rst:2916 +#: reference/datamodel.rst:2925 msgid ":ref:`Generic Alias Types`" msgstr ":ref:`Generic Alias Types`" -#: reference/datamodel.rst:2917 +#: reference/datamodel.rst:2926 msgid "Documentation for objects representing parameterized generic classes" msgstr "" "Τεκμηρίωση για αντικείμενα που αντιπροσωπεύουν παραμετροποιημένες γενικές " "κλάσεις" -#: reference/datamodel.rst:2919 +#: reference/datamodel.rst:2928 msgid "" ":ref:`Generics`, :ref:`user-defined generics` and :" "class:`typing.Generic`" @@ -4993,7 +5000,7 @@ msgstr "" ":ref:`Generics`, :ref:`user-defined generics` και :" "class:`typing.Generic`" -#: reference/datamodel.rst:2920 +#: reference/datamodel.rst:2929 msgid "" "Documentation on how to implement generic classes that can be parameterized " "at runtime and understood by static type-checkers." @@ -5002,7 +5009,7 @@ msgstr "" "παραμετροποιηθούν κατά το χρόνο εκτέλεσης και να κατανοηθούν από στατικούς " "ελεγκτές τύπων." -#: reference/datamodel.rst:2923 +#: reference/datamodel.rst:2932 msgid "" "A class can *generally* only be parameterized if it defines the special " "class method ``__class_getitem__()``." @@ -5010,7 +5017,7 @@ msgstr "" "Μια κλάση *γενικά* μπορεί να παραμετροποιηθεί μόνο εάν ορίζει την ειδική " "μέθοδο κλάσης ``__class_getitem__()``." -#: reference/datamodel.rst:2928 +#: reference/datamodel.rst:2937 msgid "" "Return an object representing the specialization of a generic class by type " "arguments found in *key*." @@ -5018,21 +5025,21 @@ msgstr "" "Επιστρέφετε ένα αντικείμενο που αντιπροσωπεύει την εξειδίκευση μιας γενικής " "κλάσης κατά ορίσματα τύπου που βρίσκονται στο *key*." -#: reference/datamodel.rst:2931 +#: reference/datamodel.rst:2940 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:2937 +#: reference/datamodel.rst:2946 msgid "The purpose of *__class_getitem__*" msgstr "Ο σκοπός του *__class_getitem__*" -#: reference/datamodel.rst:2939 +#: reference/datamodel.rst:2948 msgid "" "The purpose of :meth:`~object.__class_getitem__` is to allow runtime " "parameterization of standard-library generic classes in order to more easily " @@ -5043,7 +5050,7 @@ msgstr "" "προκειμένου να εφαρμοστούν πιο εύκολα :term:`type hints` σε αυτές " "τις κλάσεις." -#: reference/datamodel.rst:2943 +#: reference/datamodel.rst:2952 msgid "" "To implement custom generic classes that can be parameterized at runtime and " "understood by static type-checkers, users should either inherit from a " @@ -5058,7 +5065,7 @@ msgstr "" "είτε να κληρονομήσουν από την :class:`typing.Generic`, η οποία έχει τη δική " "της υλοποίηση του ``__class_getitem__()``." -#: reference/datamodel.rst:2949 +#: reference/datamodel.rst:2958 msgid "" "Custom implementations of :meth:`~object.__class_getitem__` on classes " "defined outside of the standard library may not be understood by third-party " @@ -5071,11 +5078,11 @@ msgstr "" "``__class_getitem__()`` σε οποιαδήποτε κλάση για άλλους σκοπούς εκτός από " "την υπόδειξη τύπων δεν ενθαρρύνεται." -#: reference/datamodel.rst:2959 +#: reference/datamodel.rst:2968 msgid "*__class_getitem__* versus *__getitem__*" msgstr "*__class_getitem__* έναντι *__getitem__*" -#: reference/datamodel.rst:2961 +#: reference/datamodel.rst:2970 msgid "" "Usually, the :ref:`subscription` of an object using square " "brackets will call the :meth:`~object.__getitem__` instance method defined " @@ -5092,7 +5099,7 @@ msgstr "" "``__class_getitem__()`` θα πρέπει να επιστρέψει ένα αντικείμενο :ref:" "`GenericAlias`, εάν έχει οριστεί σωστά." -#: reference/datamodel.rst:2968 +#: reference/datamodel.rst:2977 msgid "" "Presented with the :term:`expression` ``obj[x]``, the Python interpreter " "follows something like the following process to decide whether :meth:" @@ -5102,7 +5109,7 @@ msgstr "" "ακολουθεί κάτι σαν την ακόλουθη διαδικασία για να αποφασίσει εάν θα πρέπει " "να κληθεί :meth:`~object.__getitem__` ή :meth:`~object.__class_getitem__`::" -#: reference/datamodel.rst:2973 +#: reference/datamodel.rst:2982 msgid "" "from inspect import isclass\n" "\n" @@ -5150,7 +5157,7 @@ msgstr "" " f\"'{class_of_obj.__name__}' object is not subscriptable\"\n" " )" -#: reference/datamodel.rst:2996 +#: reference/datamodel.rst:3005 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 " @@ -5166,7 +5173,7 @@ msgstr "" "εκφράσεις όπως ``list[int]``, ``dict[str, float]`` και ``tuple[str, bytes]`` " "έχουν ως αποτέλεσμα την κλήση της :meth:`~object.__class_getitem__`::" -#: reference/datamodel.rst:3003 +#: reference/datamodel.rst:3012 msgid "" ">>> # list has class \"type\" as its metaclass, like most classes:\n" ">>> type(list)\n" @@ -5192,7 +5199,7 @@ msgstr "" ">>> type(list[int])\n" "" -#: reference/datamodel.rst:3015 +#: reference/datamodel.rst:3024 msgid "" "However, if a class has a custom metaclass that defines :meth:`~object." "__getitem__`, subscribing the class may result in different behaviour. An " @@ -5203,7 +5210,7 @@ msgstr "" "διαφορετική συμπεριφορά. Ένα παράδειγμα αυτού μπορεί να βρεθεί στο module :" "meth:`~object.__getitem__`::" -#: reference/datamodel.rst:3019 +#: reference/datamodel.rst:3028 msgid "" ">>> from enum import Enum\n" ">>> class Menu(Enum):\n" @@ -5239,12 +5246,12 @@ msgstr "" ">>> type(Menu['SPAM'])\n" "" -#: reference/datamodel.rst:3038 +#: reference/datamodel.rst:3047 msgid ":pep:`560` - Core Support for typing module and generic types" msgstr "" ":pep:`560` - Βασική υποστήριξη για module πληκτρολόγησης και γενικούς τύπους" -#: reference/datamodel.rst:3039 +#: reference/datamodel.rst:3048 msgid "" "Introducing :meth:`~object.__class_getitem__`, and outlining when a :ref:" "`subscription` results in ``__class_getitem__()`` being " @@ -5254,11 +5261,11 @@ msgstr "" "ένα :ref:`subscription` έχει ως αποτέλεσμα την κλήση " "``__class_getitem__()`` αντί για :meth:`~object.__getitem__`" -#: reference/datamodel.rst:3047 +#: reference/datamodel.rst:3056 msgid "Emulating callable objects" msgstr "Εξομοίωση αντικειμένων με δυνατότητα κλήσης" -#: reference/datamodel.rst:3054 +#: reference/datamodel.rst:3063 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, " @@ -5269,11 +5276,11 @@ msgstr "" "__call__(x, arg1, ...)``. Η ίδια η κλάση :class:`object` δεν παρέχει αυτήν " "τη μέθοδο." -#: reference/datamodel.rst:3062 +#: reference/datamodel.rst:3071 msgid "Emulating container types" msgstr "Εξομοίωση τύπων κοντέινερ" -#: reference/datamodel.rst:3064 +#: reference/datamodel.rst:3073 msgid "" "The following methods can be defined to implement container objects. None of " "them are provided by the :class:`object` class itself. Containers usually " @@ -5292,9 +5299,10 @@ msgid "" "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` " +"sequences should provide methods :meth:`~sequence.append`, :meth:`~sequence." +"count`, :meth:`~sequence.index`, :meth:`~sequence.extend`, :meth:`~sequence." +"insert`, :meth:`~sequence.pop`, :meth:`~sequence.remove`, :meth:`~sequence." +"reverse` and :meth:`~sequence.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." @@ -5328,18 +5336,19 @@ msgstr "" "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:`~sequence." +"append`, :meth:`~sequence.count`, :meth:`~sequence.index`, :meth:`~sequence." +"extend`, :meth:`~sequence.insert`, :meth:`~sequence.pop`, :meth:`~sequence." +"remove`, :meth:`~sequence.reverse` και :meth:`~sequence.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__` για να επιτρέπεται η αποτελεσματική " @@ -5347,7 +5356,7 @@ msgstr "" "πρέπει να επαναλαμβάνεται μέσω των κλειδιών του αντικειμένου∙ για " "ακολουθίες, θα πρέπει να επαναλαμβάνεται μέσω των τιμών." -#: reference/datamodel.rst:3106 +#: reference/datamodel.rst:3116 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 " @@ -5360,7 +5369,7 @@ msgstr "" "__bool__` και του οποίου η μέθοδος :meth:`!__len__` επιστρέφει μηδέν, " "θεωρείται ψευδές σε ένα Boolean περιβάλλον." -#: reference/datamodel.rst:3113 +#: reference/datamodel.rst:3123 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:" @@ -5375,7 +5384,7 @@ msgstr "" "αλήθειας, ένα αντικείμενο πρέπει να ορίσει μια μέθοδο :meth:`~object." "__bool__`." -#: reference/datamodel.rst:3122 +#: reference/datamodel.rst:3132 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). " @@ -5392,32 +5401,32 @@ msgstr "" "υπήρχε καθόλου η μέθοδος ``__length_hint__``. Αυτή η μέθοδος είναι καθαρά " "βελτιστοποίηση και δεν απαιτείται ποτέ για ορθότητα." -#: reference/datamodel.rst:3136 +#: reference/datamodel.rst:3146 msgid "" "Slicing is done exclusively with the following three methods. A call like ::" msgstr "" "Η διαδικασία τμηματοποίησης γίνεται αποκλειστικά με τις ακόλουθες τρεις " "μεθόδους. Μια κλήση όπως ::" -#: reference/datamodel.rst:3138 +#: reference/datamodel.rst:3148 msgid "a[1:2] = b" msgstr "a[1:2] = b" -#: reference/datamodel.rst:3140 +#: reference/datamodel.rst:3150 msgid "is translated to ::" msgstr "μεταφράζεται σε ::" -#: reference/datamodel.rst:3142 +#: reference/datamodel.rst:3152 msgid "a[slice(1, 2, None)] = b" msgstr "a[slice(1, 2, None)] = b" -#: reference/datamodel.rst:3144 +#: reference/datamodel.rst:3154 msgid "and so forth. Missing slice items are always filled in with ``None``." msgstr "" "και ούτω καθεξής. Τα στοιχεία τμήματος που λείπουν συμπληρώνονται πάντα με " "``None``." -#: reference/datamodel.rst:3149 +#: reference/datamodel.rst:3159 msgid "" "Called to implement evaluation of ``self[key]``. For :term:`sequence` types, " "the accepted keys should be integers. Optionally, they may support :class:" @@ -5438,7 +5447,7 @@ msgstr "" "να γίνει raise. Για τύπους :term:`mapping`, εάν λείπει το *key* (όχι στο " "κοντέινερ), το :exc:`KeyError` θα πρέπει να γίνει raise." -#: reference/datamodel.rst:3161 +#: reference/datamodel.rst:3171 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." @@ -5447,7 +5456,7 @@ msgstr "" "για παράνομα ευρετήρια για να επιτρέπεται ο σωστός εντοπισμός του τέλους της " "ακολουθίας." -#: reference/datamodel.rst:3166 +#: reference/datamodel.rst:3176 msgid "" "When :ref:`subscripting` a *class*, the special class method :" "meth:`~object.__class_getitem__` may be called instead of ``__getitem__()``. " @@ -5458,7 +5467,7 @@ msgstr "" "``__getitem__()``. Δείτε το :ref:`classgetitem-versus-getitem` για " "περισσότερες λεπτομέρειες." -#: reference/datamodel.rst:3174 +#: reference/datamodel.rst:3184 msgid "" "Called to implement assignment to ``self[key]``. Same note as for :meth:" "`__getitem__`. This should only be implemented for mappings if the objects " @@ -5473,7 +5482,7 @@ msgstr "" "στοιχεία. Θα πρέπει να δημιουργηθούν οι ίδιες εξαιρέσεις για ακατάλληλες " "τιμές *key* όπως και για τη μέθοδο :meth:`__getitem__`." -#: reference/datamodel.rst:3183 +#: reference/datamodel.rst:3193 msgid "" "Called to implement deletion of ``self[key]``. Same note as for :meth:" "`__getitem__`. This should only be implemented for mappings if the objects " @@ -5488,7 +5497,7 @@ msgstr "" "να δημιουργηθούν οι ίδιες εξαιρέσεις για ακατάλληλες τιμές *key* όπως και " "για τη μέθοδο :meth:`__getitem__`." -#: reference/datamodel.rst:3192 +#: reference/datamodel.rst:3202 msgid "" "Called by :class:`dict`\\ .\\ :meth:`__getitem__` to implement ``self[key]`` " "for dict subclasses when key is not in the dictionary." @@ -5496,7 +5505,7 @@ msgstr "" "Κλήθηκε από :class:`dict`\\ .\\ :meth:`__getitem__` για την υλοποίηση του " "``self[key]`` για υποκλάσεις dict όταν το κλειδί δεν υπάρχει στο λεξικό." -#: reference/datamodel.rst:3198 +#: reference/datamodel.rst:3208 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 " @@ -5509,7 +5518,7 @@ msgstr "" "αντιστοιχίσεις, θα πρέπει να επαναλαμβάνεται πάνω από τα κλειδιά του " "κοντέινερ." -#: reference/datamodel.rst:3206 +#: reference/datamodel.rst:3216 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 " @@ -5520,7 +5529,7 @@ msgstr "" "iterator αντικείμενο που επαναλαμβάνεται πάνω από όλα τα αντικείμενα στο " "κοντέινερ με αντίστροφη σειρά." -#: reference/datamodel.rst:3210 +#: reference/datamodel.rst:3220 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 :" @@ -5535,7 +5544,7 @@ msgstr "" "παρέχουν μια υλοποίηση που είναι πιο αποτελεσματική από αυτή που παρέχεται " "από τη :func:`reversed`." -#: reference/datamodel.rst:3217 +#: reference/datamodel.rst:3227 msgid "" "The membership test operators (:keyword:`in` and :keyword:`not in`) are " "normally implemented as an iteration through a container. However, container " @@ -5548,7 +5557,7 @@ msgstr "" "αποτελεσματική υλοποίηση, η οποία επίσης δεν απαιτεί το αντικείμενο να είναι " "επαναλαμβανόμενο." -#: reference/datamodel.rst:3224 +#: reference/datamodel.rst:3234 msgid "" "Called to implement membership test operators. Should return true if *item* " "is in *self*, false otherwise. For mapping objects, this should consider " @@ -5559,7 +5568,7 @@ msgstr "" "αντιστοίχιση αντικειμένων, αυτό θα πρέπει να λαμβάνει υπόψη τα κλειδιά της " "αντιστοίχισης αντί για τις τιμές ή τα ζεύγη κλειδιών-στοιχείων." -#: reference/datamodel.rst:3228 +#: reference/datamodel.rst:3238 msgid "" "For objects that don't define :meth:`__contains__`, the membership test " "first tries iteration via :meth:`__iter__`, then the old sequence iteration " @@ -5571,11 +5580,11 @@ msgstr "" "πρωτόκολλο επανάληψης ακολουθίας μέσω :meth:`__getitem__`, δείτε :ref:`this " "section in the language reference `." -#: reference/datamodel.rst:3237 +#: reference/datamodel.rst:3247 msgid "Emulating numeric types" msgstr "Εξομοίωση αριθμητικών τύπων" -#: reference/datamodel.rst:3239 +#: reference/datamodel.rst:3249 msgid "" "The following methods can be defined to emulate numeric objects. Methods " "corresponding to operations that are not supported by the particular kind of " @@ -5587,7 +5596,7 @@ msgstr "" "από το συγκεκριμένο είδος αριθμού που υλοποιείται (π.χ. λειτουργίες bitwise " "για μη ακέραιους αριθμούς) θα πρέπει να παραμείνουν απροσδιόριστες." -#: reference/datamodel.rst:3265 +#: reference/datamodel.rst:3275 msgid "" "These methods are called to implement the binary arithmetic operations " "(``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:" @@ -5611,7 +5620,7 @@ msgstr "" "να αποδεχτεί ένα προαιρετικό τρίτο όρισμα εάν πρόκειται να υποστηριχθεί η " "τριμερής έκδοση της ενσωματωμένης συνάρτησης :func:`pow`." -#: reference/datamodel.rst:3276 +#: reference/datamodel.rst:3286 msgid "" "If one of those methods does not support the operation with the supplied " "arguments, it should return :data:`NotImplemented`." @@ -5619,7 +5628,7 @@ msgstr "" "Εάν μία από αυτές τις μεθόδους δεν υποστηρίζει τη λειτουργία με τα " "παρεχόμενα ορίσματα, θα πρέπει να επιστρέψει :data:`NotImplemented`." -#: reference/datamodel.rst:3299 +#: reference/datamodel.rst:3309 msgid "" "These methods are called to implement the binary arithmetic operations " "(``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:" @@ -5641,7 +5650,7 @@ msgstr "" "μια μέθοδο :meth:`__rsub__`, καλείται το ``type(y).__rsub__(y, x)`` εάν το " "``type(x).__sub__(x, y)`` επιστρέφει :data:`NotImplemented`." -#: reference/datamodel.rst:3311 +#: reference/datamodel.rst:3321 msgid "" "Note that ternary :func:`pow` will not try calling :meth:`__rpow__` (the " "coercion rules would become too complicated)." @@ -5649,7 +5658,7 @@ msgstr "" "Λάβετε υπόψη ότι το τριαδικό :func:`pow` δεν θα προσπαθήσει να καλέσει το :" "meth:`__rpow__` (οι κανόνες εξαναγκασμού θα γίνουν πολύ περίπλοκοι)." -#: reference/datamodel.rst:3316 +#: reference/datamodel.rst:3326 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 " @@ -5663,7 +5672,7 @@ msgstr "" "μη ανακλώμενη μέθοδο του αριστερού τελεστή. Αυτή η συμπεριφορά επιτρέπει " "στις υποκλάσεις να παρακάμπτουν τις πράξεις των προγόνων τους." -#: reference/datamodel.rst:3337 +#: reference/datamodel.rst:3347 msgid "" "These methods are called to implement the augmented arithmetic assignments " "(``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, ``**=``, ``<<=``, " @@ -5697,7 +5706,7 @@ msgstr "" "αλλά αυτή η συμπεριφορά είναι στην πραγματικότητα μέρος του μοντέλου " "δεδομένων." -#: reference/datamodel.rst:3360 +#: reference/datamodel.rst:3370 msgid "" "Called to implement the unary arithmetic operations (``-``, ``+``, :func:" "`abs` and ``~``)." @@ -5705,7 +5714,7 @@ msgstr "" "Καλείται για την υλοποίηση μονομερών αριθμητικών πράξεων (``-``, ``+``, :" "func:`abs` και ``~``)." -#: reference/datamodel.rst:3373 +#: reference/datamodel.rst:3383 msgid "" "Called to implement the built-in functions :func:`complex`, :func:`int` and :" "func:`float`. Should return a value of the appropriate type." @@ -5714,7 +5723,7 @@ msgstr "" "func:`int` και :func:`float`. Θα πρέπει να επιστρέψει μια τιμή του " "κατάλληλου τύπου." -#: reference/datamodel.rst:3380 +#: reference/datamodel.rst:3390 msgid "" "Called to implement :func:`operator.index`, and whenever Python needs to " "losslessly convert the numeric object to an integer object (such as in " @@ -5729,7 +5738,7 @@ msgstr "" "μεθόδου υποδεικνύει ότι το αριθμητικό αντικείμενο είναι ακέραιου τύπου. " "Πρέπει να επιστρέψει έναν ακέραιο αριθμό." -#: reference/datamodel.rst:3386 +#: reference/datamodel.rst:3396 msgid "" "If :meth:`__int__`, :meth:`__float__` and :meth:`__complex__` are not " "defined then corresponding built-in functions :func:`int`, :func:`float` " @@ -5739,7 +5748,7 @@ msgstr "" "ορίζονται, τότε οι αντίστοιχες ενσωματωμένες συναρτήσεις :func:`int`, :func:" "`float` και :func:`complex` επιστρέφουν στο :meth:`__index__`." -#: reference/datamodel.rst:3398 +#: reference/datamodel.rst:3408 msgid "" "Called to implement the built-in function :func:`round` and :mod:`math` " "functions :func:`~math.trunc`, :func:`~math.floor` and :func:`~math.ceil`. " @@ -5753,7 +5762,7 @@ msgstr "" "όλες αυτές οι μέθοδοι θα πρέπει να επιστρέψουν την τιμή του αντικειμένου που " "περικόπτεται σε μια :class:`~numbers.Integral` (συνήθως ένα :class:`int`)." -#: reference/datamodel.rst:3404 +#: reference/datamodel.rst:3414 msgid "" "The built-in function :func:`int` falls back to :meth:`__trunc__` if " "neither :meth:`__int__` nor :meth:`__index__` is defined." @@ -5761,15 +5770,15 @@ msgstr "" "Η ενσωματωμένη συνάρτηση :func:`int` επιστρέφει σε :meth:`__trunc__` εάν δεν " "έχει οριστεί ούτε :meth:`__int__` ούτε :meth:`__index__`." -#: reference/datamodel.rst:3407 +#: reference/datamodel.rst:3417 msgid "The delegation of :func:`int` to :meth:`__trunc__` is deprecated." msgstr "Η εκχώρηση του :func:`int` στο :meth:`__trunc__` έχει καταργηθεί." -#: reference/datamodel.rst:3414 +#: reference/datamodel.rst:3424 msgid "With Statement Context Managers" msgstr "Με τους Διαχειριστές Περιβάλλοντος Δήλωσης" -#: reference/datamodel.rst:3416 +#: reference/datamodel.rst:3426 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 " @@ -5786,7 +5795,7 @@ msgstr "" "keyword:`!with` (που περιγράφεται στην ενότητα :ref:`with`), αλλά μπορούν " "επίσης να χρησιμοποιηθούν με απευθείας επίκληση των μεθόδων τους." -#: reference/datamodel.rst:3427 +#: reference/datamodel.rst:3437 msgid "" "Typical uses of context managers include saving and restoring various kinds " "of global state, locking and unlocking resources, closing opened files, etc." @@ -5795,7 +5804,7 @@ msgstr "" "αποθήκευση και την επαναφορά διαφόρων ειδών καθολικών καταστάσεων, το " "κλείδωμα και το ξεκλείδωμα πόρων, το κλείσιμο των ανοιχτών αρχείων κ.λπ." -#: reference/datamodel.rst:3430 +#: reference/datamodel.rst:3440 msgid "" "For more information on context managers, see :ref:`typecontextmanager`. " "The :class:`object` class itself does not provide the context manager " @@ -5805,7 +5814,7 @@ msgstr "" "ανατρέξτε στο :ref:`typecontextmanager`. Η ίδια η κλάση :class:`object` δεν " "παρέχει τις μεθόδους διαχειριστή περιβάλλοντος." -#: reference/datamodel.rst:3436 +#: reference/datamodel.rst:3446 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 " @@ -5816,7 +5825,7 @@ msgstr "" "αυτής της μεθόδου με τους στόχους που καθορίζονται στον όρο :keyword:`!as` " "της πρότασης, εάν υπάρχει." -#: reference/datamodel.rst:3443 +#: reference/datamodel.rst:3453 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 " @@ -5827,7 +5836,7 @@ msgstr "" "από το περιβάλλον. Εάν το περιβάλλον είχε βγει χωρίς εξαίρεση, και τα τρία " "ορίσματα θα είναι :const:`None`." -#: reference/datamodel.rst:3447 +#: reference/datamodel.rst:3457 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. " @@ -5839,7 +5848,7 @@ msgstr "" "πραγματική τιμή. Διαφορετικά, η εξαίρεση θα διεκπεραιωθεί κανονικά κατά την " "έξοδο από αυτήν τη μέθοδο." -#: reference/datamodel.rst:3451 +#: reference/datamodel.rst:3461 msgid "" "Note that :meth:`~object.__exit__` methods should not reraise the passed-in " "exception; this is the caller's responsibility." @@ -5847,11 +5856,11 @@ msgstr "" "Λάβετε υπόψη ότι οι μέθοδοι :meth:`~object.__exit__` δεν θα πρέπει να " "επαναφέρουν την εξαίρεση που μεταβιβάστηκε∙ αυτή είναι ευθύνη του καλούντος." -#: reference/datamodel.rst:3457 +#: reference/datamodel.rst:3467 msgid ":pep:`343` - The \"with\" statement" msgstr ":pep:`343` - Η πρόταση \"with\"" -#: reference/datamodel.rst:3458 +#: reference/datamodel.rst:3468 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." @@ -5859,11 +5868,11 @@ msgstr "" "Οι προδιαγραφές, το υπόβαθρο και τα παραδείγματα για τη δήλωση Python :" "keyword:`with`." -#: reference/datamodel.rst:3465 +#: reference/datamodel.rst:3475 msgid "Customizing positional arguments in class pattern matching" msgstr "Προσαρμογή ορισμάτων θέσης στην αντιστοίχιση προτύπων κλάσης" -#: reference/datamodel.rst:3467 +#: reference/datamodel.rst:3477 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 " @@ -5876,7 +5885,7 @@ msgstr "" "μπορέσει να χρησιμοποιήσει αυτό το είδος μοτίβου, η κλάση πρέπει να ορίσει " "ένα χαρακτηριστικό *__match_args__*." -#: reference/datamodel.rst:3474 +#: reference/datamodel.rst:3484 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 " @@ -5890,7 +5899,7 @@ msgstr "" "την αντίστοιχη τιμή στο *__match_args__* ως λέξη-κλειδί. Η απουσία αυτού του " "χαρακτηριστικού ισοδυναμεί με τη ρύθμιση του σε ``()``." -#: reference/datamodel.rst:3480 +#: reference/datamodel.rst:3490 msgid "" "For example, if ``MyClass.__match_args__`` is ``(\"left\", \"center\", " "\"right\")`` that means that ``case MyClass(x, y)`` is equivalent to ``case " @@ -5901,24 +5910,24 @@ msgid "" msgstr "" "Για παράδειγμα, εάν το ``MyClass.__match_args__`` είναι ``(\"left\", " "\"center\", \"right\")`` αυτό σημαίνει ότι το ``case MyClass(x, y)`` " -"ισοδυναμεί με MyClass(left=x, center=y)``. Σημειώστε ότι ο αριθμός των " -"ορισμάτων στο μοτίβο πρέπει να είναι μικρότερος ή ίσος με τον αριθμό των " +"ισοδυναμεί με ``case MyClass(left=x, center=y)``. Σημειώστε ότι ο αριθμός " +"των ορισμάτων στο μοτίβο πρέπει να είναι μικρότερος ή ίσος με τον αριθμό των " "στοιχείων στο *__match_args__* ∙ αν είναι μεγαλύτερο, η προσπάθεια " "αντιστοίχισης μοτίβου θα κάνει raise μια :exc:`TypeError`." -#: reference/datamodel.rst:3490 +#: reference/datamodel.rst:3500 msgid ":pep:`634` - Structural Pattern Matching" msgstr ":pep:`634` - Αντιστοίχιση δομικών προτύπων" -#: reference/datamodel.rst:3491 +#: reference/datamodel.rst:3501 msgid "The specification for the Python ``match`` statement." msgstr "Η προδιαγραφή για τη δήλωση Python ``match``." -#: reference/datamodel.rst:3497 +#: reference/datamodel.rst:3507 msgid "Emulating buffer types" msgstr "Εξομοίωση τύπων buffer" -#: reference/datamodel.rst:3499 +#: reference/datamodel.rst:3509 msgid "" "The :ref:`buffer protocol ` provides a way for Python objects " "to expose efficient access to a low-level memory array. This protocol is " @@ -5931,7 +5940,7 @@ msgstr "" "τύπους όπως :class:`bytes` και :class:`memoryview`, και οι βιβλιοθήκες " "τρίτων μπορούν να ορίσουν πρόσθετους τύπους buffer." -#: reference/datamodel.rst:3504 +#: reference/datamodel.rst:3514 msgid "" "While buffer types are usually implemented in C, it is also possible to " "implement the protocol in Python." @@ -5939,7 +5948,7 @@ msgstr "" "Ενώ οι τύπου buffer συνήθως υλοποιούνται σε C, είναι επίσης δυνατή η " "υλοποίηση του πρωτοκόλλου στην Python." -#: reference/datamodel.rst:3509 +#: reference/datamodel.rst:3519 msgid "" "Called when a buffer is requested from *self* (for example, by the :class:" "`memoryview` constructor). The *flags* argument is an integer representing " @@ -5956,7 +5965,7 @@ msgstr "" "έναν βολικό τρόπο ερμηνείας των flags. Η μέθοδος πρέπει να επιστρέψει ένα " "αντικείμενο :class:`memoryview`." -#: reference/datamodel.rst:3518 +#: reference/datamodel.rst:3528 msgid "" "Called when a buffer is no longer needed. The *buffer* argument is a :class:" "`memoryview` object that was previously returned by :meth:`~object." @@ -5971,29 +5980,29 @@ msgstr "" "``None``. Τα αντικείμενα buffer που δεν χρειάζονται εκκαθάριση δεν " "απαιτούνται για την εφαρμογή αυτής της μεθόδου." -#: reference/datamodel.rst:3529 +#: reference/datamodel.rst:3539 msgid ":pep:`688` - Making the buffer protocol accessible in Python" msgstr ":pep:`688` - Κάνοντας το πρωτόκολλο buffer προσβάσιμο στην Python" -#: reference/datamodel.rst:3530 +#: reference/datamodel.rst:3540 msgid "" "Introduces the Python ``__buffer__`` and ``__release_buffer__`` methods." msgstr "" "Παρουσιάζει τις μεθόδους Python ``__buffer__`` και ``__release_buffer__``." -#: reference/datamodel.rst:3532 +#: reference/datamodel.rst:3542 msgid ":class:`collections.abc.Buffer`" msgstr ":class:`collections.abc.Buffer`" -#: reference/datamodel.rst:3533 +#: reference/datamodel.rst:3543 msgid "ABC for buffer types." msgstr "ABC για τύπους buffer." -#: reference/datamodel.rst:3538 +#: reference/datamodel.rst:3548 msgid "Special method lookup" msgstr "Αναζήτηση ειδικής μεθόδου" -#: reference/datamodel.rst:3540 +#: reference/datamodel.rst:3550 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 " @@ -6006,7 +6015,7 @@ msgstr "" "συμπεριφορά είναι ο λόγος για τον οποίο ο ακόλουθος κώδικας κάνει raise μια " "εξαίρεση::" -#: reference/datamodel.rst:3545 +#: reference/datamodel.rst:3555 msgid "" ">>> class C:\n" "... pass\n" @@ -6028,7 +6037,7 @@ msgstr "" " File \"\", line 1, in \n" "TypeError: object of type 'C' has no len()" -#: reference/datamodel.rst:3555 +#: reference/datamodel.rst:3565 msgid "" "The rationale behind this behaviour lies with a number of special methods " "such as :meth:`~object.__hash__` and :meth:`~object.__repr__` that are " @@ -6042,7 +6051,7 @@ msgstr "" "σιωπηρή αναζήτηση αυτών των μεθόδων χρησιμοποιούσε τη συμβατική διαδικασία " "αναζήτησης, θα αποτύγχανε όταν καλούνταν στο ίδιο το αντικείμενο τύπου::" -#: reference/datamodel.rst:3562 +#: reference/datamodel.rst:3572 msgid "" ">>> 1 .__hash__() == hash(1)\n" "True\n" @@ -6058,7 +6067,7 @@ msgstr "" " File \"\", line 1, in \n" "TypeError: descriptor '__hash__' of 'int' object needs an argument" -#: reference/datamodel.rst:3569 +#: reference/datamodel.rst:3579 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 " @@ -6068,7 +6077,7 @@ msgstr "" "αυτόν τον τρόπο αναφέρεται μερικές φορές ως 'σύγχυση μετακλάσης', και " "αποφεύγεται με παράκαμψη της παρουσίας κατά την αναζήτηση ειδικών μεθόδων::" -#: reference/datamodel.rst:3573 +#: reference/datamodel.rst:3583 msgid "" ">>> type(1).__hash__(1) == hash(1)\n" "True\n" @@ -6080,7 +6089,7 @@ msgstr "" ">>> type(int).__hash__(int) == hash(int)\n" "True" -#: reference/datamodel.rst:3578 +#: reference/datamodel.rst:3588 msgid "" "In addition to bypassing any instance attributes in the interest of " "correctness, implicit special method lookup generally also bypasses the :" @@ -6091,7 +6100,7 @@ msgstr "" "μέθοδο :meth:`~object.__getattribute__` ακόμη και της μετακλάσης του " "αντικειμένου::" -#: reference/datamodel.rst:3582 +#: reference/datamodel.rst:3592 msgid "" ">>> class Meta(type):\n" "... def __getattribute__(*args):\n" @@ -6137,7 +6146,7 @@ msgstr "" ">>> len(c) # Implicit lookup\n" "10" -#: reference/datamodel.rst:3604 +#: reference/datamodel.rst:3614 msgid "" "Bypassing the :meth:`~object.__getattribute__` machinery in this fashion " "provides significant scope for speed optimisations within the interpreter, " @@ -6151,15 +6160,15 @@ msgstr "" "ειδική μέθοδος *πρέπει* να οριστεί στο ίδιο το αντικείμενο κλάσης για να " "καλείται με συνέπεια από τον διερμηνέα)." -#: reference/datamodel.rst:3615 +#: reference/datamodel.rst:3625 msgid "Coroutines" msgstr "Coroutines" -#: reference/datamodel.rst:3619 +#: reference/datamodel.rst:3629 msgid "Awaitable Objects" msgstr "Awaitable Αντικείμενα" -#: reference/datamodel.rst:3621 +#: reference/datamodel.rst:3631 msgid "" "An :term:`awaitable` object generally implements an :meth:`~object." "__await__` method. :term:`Coroutine objects ` returned from :" @@ -6169,7 +6178,7 @@ msgstr "" "__await__`. Τα :term:`Coroutine objects ` που επιστρέφονται από " "τις :keyword:`async def` συναρτήσεις είναι awaitable." -#: reference/datamodel.rst:3627 +#: reference/datamodel.rst:3637 msgid "" "The :term:`generator iterator` objects returned from generators decorated " "with :func:`types.coroutine` are also awaitable, but they do not implement :" @@ -6179,7 +6188,7 @@ msgstr "" "διακοσμημένες με :func:`types.coroutine` είναι επίσης awaitable, αλλά δεν " "εφαρμόζουν το :meth:`~object.__await__`." -#: reference/datamodel.rst:3633 +#: reference/datamodel.rst:3643 msgid "" "Must return an :term:`iterator`. Should be used to implement :term:" "`awaitable` objects. For instance, :class:`asyncio.Future` implements this " @@ -6192,7 +6201,7 @@ msgstr "" "έκφραση :keyword:`await`. Η ίδια η κλάση :class:`object` δεν είναι αναμονή " "και δεν παρέχει αυτήν τη μέθοδο." -#: reference/datamodel.rst:3641 +#: reference/datamodel.rst:3651 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 " @@ -6204,16 +6213,16 @@ msgstr "" "αυτό αφορά συγκεκριμένα την υλοποίηση του πλαισίου ασύγχρονης εκτέλεσης (π." "χ. :mod:`asyncio`) που θα διαχειρίζεται το :term:`awaitable` αντικείμενο." -#: reference/datamodel.rst:3649 +#: reference/datamodel.rst:3659 msgid ":pep:`492` for additional information about awaitable objects." msgstr "" "Το :pep:`492` για πρόσθετες πληροφορίες σχετικά με τα awaitable αντικείμενα." -#: reference/datamodel.rst:3655 +#: reference/datamodel.rst:3665 msgid "Coroutine Objects" msgstr "Coroutine Αντικείμενα" -#: reference/datamodel.rst:3657 +#: reference/datamodel.rst:3667 msgid "" ":term:`Coroutine objects ` are :term:`awaitable` objects. A " "coroutine's execution can be controlled by calling :meth:`~object.__await__` " @@ -6232,7 +6241,7 @@ msgstr "" "εξαίρεση, αυτή διαδίδεται από τον iterator. Οι coroutines δεν πρέπει να " "κάνουν raise ανεξέλεγκτες εξαιρέσεις :exc:`StopIteration`." -#: reference/datamodel.rst:3665 +#: reference/datamodel.rst:3675 msgid "" "Coroutines also have the methods listed below, which are analogous to those " "of generators (see :ref:`generator-methods`). However, unlike generators, " @@ -6243,13 +6252,13 @@ msgstr "" "Ωστόσο, σε αντίθεση με τις γεννήτριες, οι coroutines δεν υποστηρίζουν άμεσα " "την επανάληψη." -#: reference/datamodel.rst:3669 +#: reference/datamodel.rst:3679 msgid "It is a :exc:`RuntimeError` to await on a coroutine more than once." msgstr "" "Είναι ένα :exc:`RuntimeError` να περιμένει κανείς σε μια coroutine " "περισσότερες από μία φορές." -#: reference/datamodel.rst:3675 +#: reference/datamodel.rst:3685 msgid "" "Starts or resumes execution of the coroutine. If *value* is ``None``, this " "is equivalent to advancing the iterator returned by :meth:`~object." @@ -6267,7 +6276,7 @@ msgstr "" "εξαίρεση) είναι το ίδιο όπως όταν γίνεται επανάληψη πάνω από την τιμή " "επιστροφής :meth:`!__await__` , που περιγράφεται παραπάνω." -#: reference/datamodel.rst:3686 +#: reference/datamodel.rst:3696 msgid "" "Raises the specified exception in the coroutine. This method delegates to " "the :meth:`~generator.throw` method of the iterator that caused the " @@ -6286,7 +6295,7 @@ msgstr "" "παραπάνω. Εάν η εξαίρεση δεν περιλαμβάνεται στην coroutine, διαδίδεται πίσω " "από εκεί που καλέστηκε." -#: reference/datamodel.rst:3697 +#: reference/datamodel.rst:3707 msgid "" "The second signature \\(type\\[, value\\[, traceback\\]\\]\\) is deprecated " "and may be removed in a future version of Python." @@ -6294,7 +6303,7 @@ msgstr "" "Η δεύτερη υπογραφή \\(type\\[, value\\[, traceback\\]\\]\\) έχει καταργηθεί " "και μπορεί να αφαιρεθεί σε μια μελλοντική έκδοση της Python." -#: reference/datamodel.rst:3702 +#: reference/datamodel.rst:3712 msgid "" "Causes the coroutine to clean itself up and exit. If the coroutine is " "suspended, this method first delegates to the :meth:`~generator.close` " @@ -6311,7 +6320,7 @@ msgstr "" "coroutine επισημαίνεται ότι έχει τελειώσει την εκτέλεση, ακόμα κι αν δεν " "ξεκίνησε ποτέ." -#: reference/datamodel.rst:3710 +#: reference/datamodel.rst:3720 msgid "" "Coroutine objects are automatically closed using the above process when they " "are about to be destroyed." @@ -6319,11 +6328,11 @@ msgstr "" "Τα αντικείμενα coroutine κλείνουν αυτόματα χρησιμοποιώντας την παραπάνω " "διαδικασία όταν πρόκειται να καταστραφούν." -#: reference/datamodel.rst:3716 +#: reference/datamodel.rst:3726 msgid "Asynchronous Iterators" msgstr "Ασύγχρονοι Iterators" -#: reference/datamodel.rst:3718 +#: reference/datamodel.rst:3728 msgid "" "An *asynchronous iterator* can call asynchronous code in its ``__anext__`` " "method." @@ -6331,22 +6340,22 @@ msgstr "" "Ένας *ασύγχρονος iterator* μπορεί να καλέσει ασύγχρονο κώδικα με τη μέθοδο " "``__anext__``." -#: reference/datamodel.rst:3721 +#: reference/datamodel.rst:3731 msgid "" "Asynchronous iterators can be used in an :keyword:`async for` statement." msgstr "" "Οι ασύγχρονοι iterators μπορούν να χρησιμοποιηθούν σε μια δήλωση :keyword:" "`async for`." -#: reference/datamodel.rst:3772 +#: reference/datamodel.rst:3782 msgid "The :class:`object` class itself does not provide these methods." msgstr "Η ίδια η κλάση :class:`object` δεν παρέχει αυτές τις μεθόδους." -#: reference/datamodel.rst:3728 +#: reference/datamodel.rst:3738 msgid "Must return an *asynchronous iterator* object." msgstr "Πρέπει να επιστρέψει ένα αντικείμενο *ασύγχρονου iterator*." -#: reference/datamodel.rst:3732 +#: reference/datamodel.rst:3742 msgid "" "Must return an *awaitable* resulting in a next value of the iterator. " "Should raise a :exc:`StopAsyncIteration` error when the iteration is over." @@ -6355,11 +6364,11 @@ msgstr "" "τιμή iterator. Θα πρέπει να κάνει raise ένα σφάλμα :exc:" "`StopAsyncIteration` όταν τελειώσει η επανάληψη." -#: reference/datamodel.rst:3735 +#: reference/datamodel.rst:3745 msgid "An example of an asynchronous iterable object::" msgstr "Παράδειγμα σύγχρονου iterator αντικειμένου::" -#: reference/datamodel.rst:3737 +#: reference/datamodel.rst:3747 msgid "" "class Reader:\n" " async def readline(self):\n" @@ -6387,7 +6396,7 @@ msgstr "" " raise StopAsyncIteration\n" " return val" -#: reference/datamodel.rst:3752 +#: reference/datamodel.rst:3762 msgid "" "Prior to Python 3.7, :meth:`~object.__aiter__` could return an *awaitable* " "that would resolve to an :term:`asynchronous iterator `." -#: reference/datamodel.rst:3757 +#: reference/datamodel.rst:3767 msgid "" "Starting with Python 3.7, :meth:`~object.__aiter__` must return an " "asynchronous iterator object. Returning anything else will result in a :exc:" @@ -6407,11 +6416,11 @@ msgstr "" "επιστρέψει ένα ασύγχρονο αντικείμενο iterator. Εάν επιστρέφει οτιδήποτε " "άλλο θα έχει ως αποτέλεσμα ένα σφάλμα :exc:`TypeError`." -#: reference/datamodel.rst:3765 +#: reference/datamodel.rst:3775 msgid "Asynchronous Context Managers" msgstr "Ασύγχρονοι Διαχειριστές Περιβάλλοντος" -#: reference/datamodel.rst:3767 +#: reference/datamodel.rst:3777 msgid "" "An *asynchronous context manager* is a *context manager* that is able to " "suspend execution in its ``__aenter__`` and ``__aexit__`` methods." @@ -6420,7 +6429,7 @@ msgstr "" "περιβάλλοντος* που μπορεί να αναστείλει την εκτέλεση στις μεθόδους " "``__aenter__`` και ``__aexit__``." -#: reference/datamodel.rst:3770 +#: reference/datamodel.rst:3780 msgid "" "Asynchronous context managers can be used in an :keyword:`async with` " "statement." @@ -6428,7 +6437,7 @@ msgstr "" "Οι ασύγχρονοι διαχειριστές περιβάλλοντος μπορούν να χρησιμοποιηθούν σε μια " "δήλωση :keyword:`async with`." -#: reference/datamodel.rst:3776 +#: reference/datamodel.rst:3786 msgid "" "Semantically similar to :meth:`~object.__enter__`, the only difference being " "that it must return an *awaitable*." @@ -6436,7 +6445,7 @@ msgstr "" "Σημασιολογικά παρόμοια με :meth:`~object.__enter__`, η μόνη διαφορά είναι " "ότι πρέπει να επιστρέψει ένα *awaitable*." -#: reference/datamodel.rst:3781 +#: reference/datamodel.rst:3791 msgid "" "Semantically similar to :meth:`~object.__exit__`, the only difference being " "that it must return an *awaitable*." @@ -6444,11 +6453,11 @@ msgstr "" "Σημασιολογικά παρόμοια με :meth:`~object.__exit__`, η μόνη διαφορά είναι ότι " "πρέπει να επιστρέψει ένα *awaitable*." -#: reference/datamodel.rst:3784 +#: reference/datamodel.rst:3794 msgid "An example of an asynchronous context manager class::" msgstr "Ένα παράδειγμα κλάσης ασύγχρονης διαχείρισης περιβάλλοντος::" -#: reference/datamodel.rst:3786 +#: reference/datamodel.rst:3796 msgid "" "class AsyncContextManager:\n" " async def __aenter__(self):\n" @@ -6464,11 +6473,11 @@ msgstr "" " async def __aexit__(self, exc_type, exc, tb):\n" " await log('exiting context')" -#: reference/datamodel.rst:3797 +#: reference/datamodel.rst:3807 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: reference/datamodel.rst:3798 +#: reference/datamodel.rst:3808 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 " @@ -6479,7 +6488,7 @@ msgstr "" "όμως, καθώς μπορεί να οδηγήσει σε κάποια πολύ περίεργη συμπεριφορά εάν γίνει " "λάθος χειρισμός." -#: reference/datamodel.rst:3802 +#: reference/datamodel.rst:3812 msgid "" "The :meth:`~object.__hash__`, :meth:`~object.__iter__`, :meth:`~object." "__reversed__`, :meth:`~object.__contains__`, :meth:`~object." @@ -6494,7 +6503,7 @@ msgstr "" "μπορεί να το κάνουν βασιζόμενες στη συμπεριφορά ότι το ``None`` δεν είναι " "καλούμενο." -#: reference/datamodel.rst:3809 +#: reference/datamodel.rst:3819 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 " @@ -6507,7 +6516,7 @@ msgstr "" "δεξιού τελεστή-αυτό θα έχει το αντίθετο αποτέλεσμα του ρητού " "*μπλοκαρίσματος* αυτού του εναλλακτικού." -#: reference/datamodel.rst:3815 +#: reference/datamodel.rst:3825 msgid "" "For operands of the same type, it is assumed that if the non-reflected " "method -- such as :meth:`~object.__add__` -- fails then the overall " @@ -6517,951 +6526,955 @@ msgstr "" "όπως :meth:`~object.__add__` -- αποτύχει, τότε η συνολική πράξη δεν " "υποστηρίζεται, γι' αυτό δεν καλείται η ανακλώμενη μέθοδος." -#: reference/datamodel.rst:152 reference/datamodel.rst:184 -#: reference/datamodel.rst:229 reference/datamodel.rst:265 -#: reference/datamodel.rst:296 reference/datamodel.rst:363 -#: reference/datamodel.rst:409 reference/datamodel.rst:447 -#: reference/datamodel.rst:466 reference/datamodel.rst:519 -#: reference/datamodel.rst:661 reference/datamodel.rst:823 -#: reference/datamodel.rst:1126 reference/datamodel.rst:1292 -#: reference/datamodel.rst:1472 reference/datamodel.rst:1689 -#: reference/datamodel.rst:3132 +#: reference/datamodel.rst:148 reference/datamodel.rst:180 +#: reference/datamodel.rst:225 reference/datamodel.rst:261 +#: reference/datamodel.rst:292 reference/datamodel.rst:359 +#: reference/datamodel.rst:405 reference/datamodel.rst:443 +#: reference/datamodel.rst:462 reference/datamodel.rst:515 +#: reference/datamodel.rst:657 reference/datamodel.rst:819 +#: reference/datamodel.rst:1122 reference/datamodel.rst:1296 +#: reference/datamodel.rst:1476 reference/datamodel.rst:1693 +#: reference/datamodel.rst:3142 msgid "object" msgstr "αντικείμενο" -#: reference/datamodel.rst:126 +#: reference/datamodel.rst:122 msgid "data" msgstr "δεδομένα" -#: reference/datamodel.rst:296 reference/datamodel.rst:427 -#: reference/datamodel.rst:799 reference/datamodel.rst:1772 -#: reference/datamodel.rst:2021 reference/datamodel.rst:2671 -#: reference/datamodel.rst:3260 reference/datamodel.rst:3309 -#: reference/datamodel.rst:3368 reference/datamodel.rst:3396 +#: reference/datamodel.rst:292 reference/datamodel.rst:423 +#: reference/datamodel.rst:795 reference/datamodel.rst:1776 +#: reference/datamodel.rst:2025 reference/datamodel.rst:2680 +#: reference/datamodel.rst:3270 reference/datamodel.rst:3319 +#: reference/datamodel.rst:3378 reference/datamodel.rst:3406 msgid "built-in function" msgstr "ενσωματωμένη συνάρτηση" -#: reference/datamodel.rst:23 +#: reference/datamodel.rst:22 msgid "id" msgstr "αναγνωριστικό" -#: reference/datamodel.rst:126 reference/datamodel.rst:2671 +#: reference/datamodel.rst:122 reference/datamodel.rst:2680 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:1126 +#: reference/datamodel.rst:1122 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:400 reference/datamodel.rst:502 -#: reference/datamodel.rst:879 reference/datamodel.rst:1321 +#: reference/datamodel.rst:396 reference/datamodel.rst:498 +#: reference/datamodel.rst:875 reference/datamodel.rst:1325 msgid "module" msgstr "module" -#: reference/datamodel.rst:265 reference/datamodel.rst:799 +#: reference/datamodel.rst:261 reference/datamodel.rst:795 msgid "C" msgstr "C" -#: reference/datamodel.rst:265 reference/datamodel.rst:799 +#: reference/datamodel.rst:261 reference/datamodel.rst:795 msgid "language" msgstr "γλώσσα" -#: reference/datamodel.rst:1126 reference/datamodel.rst:1265 -#: reference/datamodel.rst:1285 +#: reference/datamodel.rst:1122 reference/datamodel.rst:1269 +#: reference/datamodel.rst:1289 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:184 +#: reference/datamodel.rst:180 msgid "..." msgstr "..." -#: reference/datamodel.rst:184 +#: reference/datamodel.rst:180 msgid "ellipsis literal" msgstr "ellipsis literal" -#: reference/datamodel.rst:1292 +#: reference/datamodel.rst:1296 msgid "numeric" msgstr "αριθμητικό" -#: reference/datamodel.rst:235 reference/datamodel.rst:343 +#: reference/datamodel.rst:231 reference/datamodel.rst:339 msgid "integer" msgstr "ακέραιος" -#: reference/datamodel.rst:235 +#: reference/datamodel.rst:231 msgid "representation" msgstr "αναπαράσταση" -#: reference/datamodel.rst:250 +#: reference/datamodel.rst:246 msgid "Boolean" msgstr "Boolean" -#: reference/datamodel.rst:250 +#: reference/datamodel.rst:246 msgid "False" msgstr "False" -#: reference/datamodel.rst:250 +#: reference/datamodel.rst:246 msgid "True" msgstr "True" -#: reference/datamodel.rst:265 +#: reference/datamodel.rst:261 msgid "floating-point" msgstr "κινητής υποδιαστολής" -#: reference/datamodel.rst:283 +#: reference/datamodel.rst:279 msgid "number" msgstr "αριθμός" -#: reference/datamodel.rst:265 +#: reference/datamodel.rst:261 msgid "Java" msgstr "Java" -#: reference/datamodel.rst:3368 +#: reference/datamodel.rst:3378 msgid "complex" msgstr "complex" -#: reference/datamodel.rst:427 reference/datamodel.rst:3102 +#: reference/datamodel.rst:423 reference/datamodel.rst:3112 msgid "len" msgstr "len" -#: reference/datamodel.rst:1292 +#: reference/datamodel.rst:1296 msgid "sequence" msgstr "ακολουθία" -#: reference/datamodel.rst:296 +#: reference/datamodel.rst:292 msgid "index operation" msgstr "λειτουργία ευρετηρίου" -#: reference/datamodel.rst:296 +#: reference/datamodel.rst:292 msgid "item selection" msgstr "επιλογή αντικειμένου" -#: reference/datamodel.rst:388 reference/datamodel.rst:466 +#: reference/datamodel.rst:384 reference/datamodel.rst:462 msgid "subscription" msgstr "εγγραφή" -#: reference/datamodel.rst:388 +#: reference/datamodel.rst:384 msgid "slicing" msgstr "τμηματοποίηση" -#: reference/datamodel.rst:328 +#: reference/datamodel.rst:324 msgid "immutable sequence" msgstr "αμετάβλητη ακολουθία" -#: reference/datamodel.rst:328 +#: reference/datamodel.rst:324 msgid "immutable" msgstr "αμετάβλητο" -#: reference/datamodel.rst:1990 reference/datamodel.rst:2021 +#: reference/datamodel.rst:1994 reference/datamodel.rst:2025 msgid "string" msgstr "συμβολοσειρά" -#: reference/datamodel.rst:339 +#: reference/datamodel.rst:335 msgid "immutable sequences" msgstr "αμετάβλητες ακολουθίες" -#: reference/datamodel.rst:343 +#: reference/datamodel.rst:339 msgid "chr" msgstr "chr" -#: reference/datamodel.rst:343 +#: reference/datamodel.rst:339 msgid "ord" msgstr "ord" -#: reference/datamodel.rst:343 +#: reference/datamodel.rst:339 msgid "character" msgstr "χαρακτήρας" -#: reference/datamodel.rst:343 +#: reference/datamodel.rst:339 msgid "Unicode" msgstr "Unicode" -#: reference/datamodel.rst:363 +#: reference/datamodel.rst:359 msgid "tuple" msgstr "πλειάδα" -#: reference/datamodel.rst:363 +#: reference/datamodel.rst:359 msgid "singleton" msgstr "singleton" -#: reference/datamodel.rst:363 +#: reference/datamodel.rst:359 msgid "empty" msgstr "empty" -#: reference/datamodel.rst:2015 +#: reference/datamodel.rst:2019 msgid "bytes" msgstr "bytes" -#: reference/datamodel.rst:376 +#: reference/datamodel.rst:372 msgid "byte" msgstr "byte" -#: reference/datamodel.rst:388 +#: reference/datamodel.rst:384 msgid "mutable sequence" msgstr "ευμετάβλητη ακολουθία" -#: reference/datamodel.rst:388 +#: reference/datamodel.rst:384 msgid "mutable" msgstr "ευμετάβλητο" -#: reference/datamodel.rst:1144 reference/datamodel.rst:1285 +#: reference/datamodel.rst:1140 reference/datamodel.rst:1289 msgid "assignment" msgstr "εκχώρηση" -#: reference/datamodel.rst:859 reference/datamodel.rst:1908 -#: reference/datamodel.rst:3423 +#: reference/datamodel.rst:855 reference/datamodel.rst:1912 +#: reference/datamodel.rst:3433 msgid "statement" msgstr "δήλωση" -#: reference/datamodel.rst:400 +#: reference/datamodel.rst:396 msgid "array" msgstr "πίνακας" -#: reference/datamodel.rst:401 +#: reference/datamodel.rst:397 msgid "collections" msgstr "συλλογές" -#: reference/datamodel.rst:409 +#: reference/datamodel.rst:405 msgid "list" msgstr "λίστα" -#: reference/datamodel.rst:416 +#: reference/datamodel.rst:412 msgid "bytearray" msgstr "πίνακας byte" -#: reference/datamodel.rst:427 +#: reference/datamodel.rst:423 msgid "set type" msgstr "τύπος συνόλου" -#: reference/datamodel.rst:447 +#: reference/datamodel.rst:443 msgid "set" msgstr "σύνολο" -#: reference/datamodel.rst:455 +#: reference/datamodel.rst:451 msgid "frozenset" msgstr "αμετάβλητο σύνολο" -#: reference/datamodel.rst:1292 +#: reference/datamodel.rst:1296 msgid "mapping" msgstr "αντιστοίχιση" -#: reference/datamodel.rst:1126 reference/datamodel.rst:2114 +#: reference/datamodel.rst:1122 reference/datamodel.rst:2118 msgid "dictionary" msgstr "λεξικό" -#: reference/datamodel.rst:502 +#: reference/datamodel.rst:498 msgid "dbm.ndbm" msgstr "dbm.ndbm" -#: reference/datamodel.rst:502 +#: reference/datamodel.rst:498 msgid "dbm.gnu" msgstr "dbm.gnu" -#: reference/datamodel.rst:519 +#: reference/datamodel.rst:515 msgid "callable" msgstr "με δυνατότητα κλήσης" -#: reference/datamodel.rst:534 reference/datamodel.rst:761 -#: reference/datamodel.rst:799 +#: reference/datamodel.rst:530 reference/datamodel.rst:757 +#: reference/datamodel.rst:795 msgid "function" msgstr "συνάρτηση" -#: reference/datamodel.rst:1126 reference/datamodel.rst:3052 +#: reference/datamodel.rst:1122 reference/datamodel.rst:3061 msgid "call" msgstr "κλήση" -#: reference/datamodel.rst:519 +#: reference/datamodel.rst:515 msgid "invocation" msgstr "εκτέλεση" -#: reference/datamodel.rst:519 +#: reference/datamodel.rst:515 msgid "argument" msgstr "παράμετρος" -#: reference/datamodel.rst:661 +#: reference/datamodel.rst:657 msgid "user-defined" msgstr "ορισμένο από τον χρήστη" -#: reference/datamodel.rst:534 +#: reference/datamodel.rst:530 msgid "user-defined function" msgstr "συνάρτηση ορισμένη από τον χρήστη" -#: reference/datamodel.rst:547 +#: reference/datamodel.rst:543 msgid "__closure__ (function attribute)" msgstr "__closure__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:547 +#: reference/datamodel.rst:543 msgid "__globals__ (function attribute)" msgstr "__globals__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:547 +#: reference/datamodel.rst:543 msgid "global" msgstr "global" -#: reference/datamodel.rst:879 +#: reference/datamodel.rst:875 msgid "namespace" msgstr "πεδίο ονομάτων" -#: reference/datamodel.rst:574 +#: reference/datamodel.rst:570 msgid "__doc__ (function attribute)" msgstr "__doc__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:574 +#: reference/datamodel.rst:570 msgid "__name__ (function attribute)" msgstr "__name__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:574 +#: reference/datamodel.rst:570 msgid "__module__ (function attribute)" msgstr "__module__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:574 +#: reference/datamodel.rst:570 msgid "__dict__ (function attribute)" msgstr "__dict__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:574 +#: reference/datamodel.rst:570 msgid "__defaults__ (function attribute)" msgstr "__defaults__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:574 +#: reference/datamodel.rst:570 msgid "__code__ (function attribute)" msgstr "__code__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:574 +#: reference/datamodel.rst:570 msgid "__annotations__ (function attribute)" msgstr "__annotations__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:574 +#: reference/datamodel.rst:570 msgid "__kwdefaults__ (function attribute)" msgstr "__kwdefaults__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:574 +#: reference/datamodel.rst:570 msgid "__type_params__ (function attribute)" msgstr "__type_params__ (χαρακτηριστικό συνάρτησης)" -#: reference/datamodel.rst:823 +#: reference/datamodel.rst:819 msgid "method" msgstr "μέθοδος" -#: reference/datamodel.rst:661 +#: reference/datamodel.rst:657 msgid "user-defined method" msgstr "μέθοδος ορισμένη από τον χρήστη" -#: reference/datamodel.rst:669 +#: reference/datamodel.rst:665 msgid "__func__ (method attribute)" msgstr "__func__ (χαρακτηριστικό μεθόδου)" -#: reference/datamodel.rst:669 +#: reference/datamodel.rst:665 msgid "__self__ (method attribute)" msgstr "__self__ (χαρακτηριστικό μεθόδου)" -#: reference/datamodel.rst:669 +#: reference/datamodel.rst:665 msgid "__doc__ (method attribute)" msgstr "__doc__ (χαρακτηριστικό μεθόδου)" -#: reference/datamodel.rst:669 +#: reference/datamodel.rst:665 msgid "__name__ (method attribute)" msgstr "__name__ (χαρακτηριστικό μεθόδου)" -#: reference/datamodel.rst:669 +#: reference/datamodel.rst:665 msgid "__module__ (method attribute)" msgstr "__module__ (χαρακτηριστικό μεθόδου)" -#: reference/datamodel.rst:1472 +#: reference/datamodel.rst:1476 msgid "generator" msgstr "γεννήτρια" -#: reference/datamodel.rst:743 +#: reference/datamodel.rst:739 msgid "iterator" msgstr "iterator" -#: reference/datamodel.rst:3611 +#: reference/datamodel.rst:3621 msgid "coroutine" msgstr "coroutine" -#: reference/datamodel.rst:774 +#: reference/datamodel.rst:770 msgid "asynchronous generator" msgstr "ασύγχρονη γεννήτρια" -#: reference/datamodel.rst:774 +#: reference/datamodel.rst:770 msgid "asynchronous iterator" msgstr "ασύγχρονος iterator" -#: reference/datamodel.rst:823 +#: reference/datamodel.rst:819 msgid "built-in method" msgstr "ενσωματωμένη μέθοδος" -#: reference/datamodel.rst:823 +#: reference/datamodel.rst:819 msgid "built-in" msgstr "built-in" -#: reference/datamodel.rst:859 +#: reference/datamodel.rst:855 msgid "import" msgstr "import" -#: reference/datamodel.rst:879 +#: reference/datamodel.rst:875 msgid "__name__ (module attribute)" msgstr "__name__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:879 +#: reference/datamodel.rst:875 msgid "__spec__ (module attribute)" msgstr "__spec__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:879 +#: reference/datamodel.rst:875 msgid "__package__ (module attribute)" msgstr "__package__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:879 +#: reference/datamodel.rst:875 msgid "__loader__ (module attribute)" msgstr "__loader__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:879 +#: reference/datamodel.rst:875 msgid "__path__ (module attribute)" msgstr "__path__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:879 +#: reference/datamodel.rst:875 msgid "__file__ (module attribute)" msgstr "__file__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:879 +#: reference/datamodel.rst:875 msgid "__cached__ (module attribute)" msgstr "__cached__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:879 +#: reference/datamodel.rst:875 msgid "__doc__ (module attribute)" msgstr "__doc__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:879 +#: reference/datamodel.rst:875 msgid "__annotations__ (module attribute)" msgstr "__annotations__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:1094 +#: reference/datamodel.rst:1090 msgid "__dict__ (module attribute)" msgstr "__dict__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:1144 reference/datamodel.rst:1891 -#: reference/datamodel.rst:2782 +#: reference/datamodel.rst:1140 reference/datamodel.rst:1895 +#: reference/datamodel.rst:2791 msgid "class" msgstr "κλάση" -#: reference/datamodel.rst:1265 reference/datamodel.rst:1285 +#: reference/datamodel.rst:1269 reference/datamodel.rst:1289 msgid "class instance" msgstr "στιγμιότυπο κλάσης" -#: reference/datamodel.rst:1265 reference/datamodel.rst:3052 +#: reference/datamodel.rst:1269 reference/datamodel.rst:3061 msgid "instance" msgstr "στιγμιότυπο" -#: reference/datamodel.rst:1149 +#: reference/datamodel.rst:1145 msgid "class object" msgstr "αντικείμενα κλάσης" -#: reference/datamodel.rst:1156 +#: reference/datamodel.rst:1152 msgid "__name__ (class attribute)" msgstr "__name__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1156 +#: reference/datamodel.rst:1152 msgid "__module__ (class attribute)" msgstr "__module__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1156 +#: reference/datamodel.rst:1152 msgid "__dict__ (class attribute)" msgstr "__dict__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1156 +#: reference/datamodel.rst:1152 msgid "__bases__ (class attribute)" msgstr "__bases__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1156 +#: reference/datamodel.rst:1152 +msgid "__base__ (class attribute)" +msgstr "__base__ (χαρακτηριστικό κλάσης)" + +#: reference/datamodel.rst:1152 msgid "__doc__ (class attribute)" msgstr "__doc__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1156 +#: reference/datamodel.rst:1152 msgid "__annotations__ (class attribute)" msgstr "__annotations__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1156 +#: reference/datamodel.rst:1152 msgid "__type_params__ (class attribute)" msgstr "__type_params__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1156 +#: reference/datamodel.rst:1152 msgid "__static_attributes__ (class attribute)" msgstr "__static_attributes__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1156 +#: reference/datamodel.rst:1152 msgid "__firstlineno__ (class attribute)" msgstr "__firstlineno__ (χαρακτηριστικό κλάσης)" -#: reference/datamodel.rst:1303 +#: reference/datamodel.rst:1307 msgid "__dict__ (instance attribute)" msgstr "__dict__ (χαρακτηριστικό στιγμιοτύπου)" -#: reference/datamodel.rst:1303 +#: reference/datamodel.rst:1307 msgid "__class__ (instance attribute)" msgstr "__class__ (χαρακτηριστικό στιγμιοτύπου)" -#: reference/datamodel.rst:1321 +#: reference/datamodel.rst:1325 msgid "open" msgstr "open" -#: reference/datamodel.rst:1321 +#: reference/datamodel.rst:1325 msgid "io" msgstr "io" -#: reference/datamodel.rst:1321 +#: reference/datamodel.rst:1325 msgid "popen() (in module os)" msgstr "popen() (στο module os)" -#: reference/datamodel.rst:1321 +#: reference/datamodel.rst:1325 msgid "makefile() (socket method)" msgstr "makefile() (μέθοδος socket)" -#: reference/datamodel.rst:1321 +#: reference/datamodel.rst:1325 msgid "sys.stdin" msgstr "sys.stdin" -#: reference/datamodel.rst:1321 +#: reference/datamodel.rst:1325 msgid "sys.stdout" msgstr "sys.stdout" -#: reference/datamodel.rst:1321 +#: reference/datamodel.rst:1325 msgid "sys.stderr" msgstr "sys.stderr" -#: reference/datamodel.rst:1321 +#: reference/datamodel.rst:1325 msgid "stdio" msgstr "stdio" -#: reference/datamodel.rst:1321 +#: reference/datamodel.rst:1325 msgid "stdin (in module sys)" msgstr "stdin (στο module sys)" -#: reference/datamodel.rst:1321 +#: reference/datamodel.rst:1325 msgid "stdout (in module sys)" msgstr "stdout (στο module sys)" -#: reference/datamodel.rst:1321 +#: reference/datamodel.rst:1325 msgid "stderr (in module sys)" msgstr "stderr (στο module sys)" -#: reference/datamodel.rst:1350 +#: reference/datamodel.rst:1354 msgid "internal type" msgstr "εσωτερικός τύπος" -#: reference/datamodel.rst:1350 +#: reference/datamodel.rst:1354 msgid "types, internal" msgstr "τύποι, εσωτερικό" -#: reference/datamodel.rst:1364 +#: reference/datamodel.rst:1368 msgid "bytecode" msgstr "bytecode" -#: reference/datamodel.rst:1364 +#: reference/datamodel.rst:1368 msgid "code" msgstr "code" -#: reference/datamodel.rst:1364 +#: reference/datamodel.rst:1368 msgid "code object" msgstr "code object" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_argcount (code object attribute)" msgstr "co_argcount (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_posonlyargcount (code object attribute)" msgstr "co_posonlyargcount (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_kwonlyargcount (code object attribute)" msgstr "co_kwonlyargcount (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_code (code object attribute)" msgstr "co_code (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_consts (code object attribute)" msgstr "co_consts (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_filename (code object attribute)" msgstr "co_filename (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_firstlineno (code object attribute)" msgstr "co_firstlineno (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_flags (code object attribute)" msgstr "co_flags (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_lnotab (code object attribute)" msgstr "co_lnotab (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_name (code object attribute)" msgstr "co_name (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_names (code object attribute)" msgstr "co_names (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_nlocals (code object attribute)" msgstr "co_nlocals (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_stacksize (code object attribute)" msgstr "co_stacksize (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_varnames (code object attribute)" msgstr "co_varnames (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_cellvars (code object attribute)" msgstr "co_cellvars (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_freevars (code object attribute)" msgstr "co_freevars (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1375 +#: reference/datamodel.rst:1379 msgid "co_qualname (code object attribute)" msgstr "co_qualname (χαρακτηριστικό code object)" -#: reference/datamodel.rst:1488 +#: reference/datamodel.rst:1492 msgid "documentation string" msgstr "κείμενο τεκμηρίωσης" -#: reference/datamodel.rst:1579 +#: reference/datamodel.rst:1583 msgid "frame" msgstr "frame" -#: reference/datamodel.rst:1585 +#: reference/datamodel.rst:1589 msgid "f_back (frame attribute)" msgstr "f_back (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1585 +#: reference/datamodel.rst:1589 msgid "f_code (frame attribute)" msgstr "f_code (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1585 +#: reference/datamodel.rst:1589 msgid "f_globals (frame attribute)" msgstr "f_globals (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1585 +#: reference/datamodel.rst:1589 msgid "f_locals (frame attribute)" msgstr "f_locals (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1585 +#: reference/datamodel.rst:1589 msgid "f_lasti (frame attribute)" msgstr "f_lasti (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1585 +#: reference/datamodel.rst:1589 msgid "f_builtins (frame attribute)" msgstr "f_builtins (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1629 +#: reference/datamodel.rst:1633 msgid "f_trace (frame attribute)" msgstr "f_trace (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1629 +#: reference/datamodel.rst:1633 msgid "f_trace_lines (frame attribute)" msgstr "f_trace_lines (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1629 +#: reference/datamodel.rst:1633 msgid "f_trace_opcodes (frame attribute)" msgstr "f_trace_opcodes (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1629 +#: reference/datamodel.rst:1633 msgid "f_lineno (frame attribute)" msgstr "f_lineno (χαρακτηριστικό frame)" -#: reference/datamodel.rst:1689 +#: reference/datamodel.rst:1693 msgid "traceback" msgstr "traceback" -#: reference/datamodel.rst:1689 +#: reference/datamodel.rst:1693 msgid "stack" msgstr "stack" -#: reference/datamodel.rst:1689 +#: reference/datamodel.rst:1693 msgid "trace" msgstr "trace" -#: reference/datamodel.rst:1689 +#: reference/datamodel.rst:1693 msgid "exception" msgstr "exception" -#: reference/datamodel.rst:1689 +#: reference/datamodel.rst:1693 msgid "handler" msgstr "χειριστής" -#: reference/datamodel.rst:1689 +#: reference/datamodel.rst:1693 msgid "execution" msgstr "execution" -#: reference/datamodel.rst:1689 +#: reference/datamodel.rst:1693 msgid "exc_info (in module sys)" msgstr "exc_info (στο module sys)" -#: reference/datamodel.rst:1689 +#: reference/datamodel.rst:1693 msgid "last_traceback (in module sys)" msgstr "last_traceback (στο module sys)" -#: reference/datamodel.rst:1689 +#: reference/datamodel.rst:1693 msgid "sys.exc_info" msgstr "sys.exc_info" -#: reference/datamodel.rst:1689 +#: reference/datamodel.rst:1693 msgid "sys.exception" msgstr "sys.exception" -#: reference/datamodel.rst:1689 +#: reference/datamodel.rst:1693 msgid "sys.last_traceback" msgstr "sys.last_traceback" -#: reference/datamodel.rst:1726 +#: reference/datamodel.rst:1730 msgid "tb_frame (traceback attribute)" msgstr "tb_frame (χαρακτηριστικό traceback)" -#: reference/datamodel.rst:1726 +#: reference/datamodel.rst:1730 msgid "tb_lineno (traceback attribute)" msgstr "tb_lineno (χαρακτηριστικό traceback)" -#: reference/datamodel.rst:1726 +#: reference/datamodel.rst:1730 msgid "tb_lasti (traceback attribute)" msgstr "tb_lasti (χαρακτηριστικό traceback)" -#: reference/datamodel.rst:1726 +#: reference/datamodel.rst:1730 msgid "try" msgstr "try" -#: reference/datamodel.rst:1756 +#: reference/datamodel.rst:1760 msgid "tb_next (traceback attribute)" msgstr "tb_next (χαρακτηριστικό traceback)" -#: reference/datamodel.rst:3132 +#: reference/datamodel.rst:3142 msgid "slice" msgstr "slice" -#: reference/datamodel.rst:1778 +#: reference/datamodel.rst:1782 msgid "start (slice object attribute)" msgstr "start (χαρακτηριστικό αντικειμένου slice)" -#: reference/datamodel.rst:1778 +#: reference/datamodel.rst:1782 msgid "stop (slice object attribute)" msgstr "stop (χαρακτηριστικό αντικειμένου slice)" -#: reference/datamodel.rst:1778 +#: reference/datamodel.rst:1782 msgid "step (slice object attribute)" msgstr "step (χαρακτηριστικό αντικειμένου slice)" -#: reference/datamodel.rst:1826 +#: reference/datamodel.rst:1830 msgid "operator" msgstr "τελεστής" -#: reference/datamodel.rst:1826 +#: reference/datamodel.rst:1830 msgid "overloading" msgstr "υπερφόρτωση" -#: reference/datamodel.rst:1826 +#: reference/datamodel.rst:1830 msgid "__getitem__() (mapping object method)" msgstr "__getitem__() (μέθοδος αντικειμένου αντιστοίχισης)" -#: reference/datamodel.rst:1862 +#: reference/datamodel.rst:1866 msgid "subclassing" msgstr "δημιουργία υποκλάσης" -#: reference/datamodel.rst:1862 +#: reference/datamodel.rst:1866 msgid "immutable types" msgstr "αμετάβλητοι τύποι" -#: reference/datamodel.rst:1891 +#: reference/datamodel.rst:1895 msgid "constructor" msgstr "constructor" -#: reference/datamodel.rst:1908 +#: reference/datamodel.rst:1912 msgid "destructor" msgstr "destructor" -#: reference/datamodel.rst:1908 +#: reference/datamodel.rst:1912 msgid "finalizer" msgstr "διαχειριστής καταστροφής" -#: reference/datamodel.rst:1908 +#: reference/datamodel.rst:1912 msgid "del" msgstr "del" -#: reference/datamodel.rst:1972 +#: reference/datamodel.rst:1976 msgid "repr() (built-in function)" msgstr "repr() (ενσωματωμένη συνάρτηση)" -#: reference/datamodel.rst:1972 +#: reference/datamodel.rst:1976 msgid "__repr__() (object method)" msgstr "__repr__() (μέθοδος αντικειμένου)" -#: reference/datamodel.rst:1990 +#: reference/datamodel.rst:1994 msgid "__str__() (object method)" msgstr "__str__() (μέθοδος αντικειμένου)" -#: reference/datamodel.rst:1990 +#: reference/datamodel.rst:1994 msgid "format() (built-in function)" msgstr "format() (ενσωματωμένη συνάρτηση)" -#: reference/datamodel.rst:1990 +#: reference/datamodel.rst:1994 msgid "print() (built-in function)" msgstr "print() (ενσωματωμένη συνάρτηση)" -#: reference/datamodel.rst:2021 +#: reference/datamodel.rst:2025 msgid "__format__() (object method)" msgstr "__format__() (μέθοδος αντικειμένου)" -#: reference/datamodel.rst:2021 +#: reference/datamodel.rst:2025 msgid "conversion" msgstr "μετατροπή" -#: reference/datamodel.rst:2021 +#: reference/datamodel.rst:2025 msgid "print" msgstr "print" -#: reference/datamodel.rst:2063 +#: reference/datamodel.rst:2067 msgid "comparisons" msgstr "συγκρίσεις" -#: reference/datamodel.rst:2114 +#: reference/datamodel.rst:2118 msgid "hash" msgstr "hash" -#: reference/datamodel.rst:2195 +#: reference/datamodel.rst:2199 msgid "__len__() (mapping object method)" msgstr "__len__() (μέθοδος αντιστοίχισης αντικειμένου)" -#: reference/datamodel.rst:2300 +#: reference/datamodel.rst:2304 msgid "__getattr__ (module attribute)" msgstr "__getattr__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:2300 +#: reference/datamodel.rst:2304 msgid "__dir__ (module attribute)" msgstr "__dir__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:2300 +#: reference/datamodel.rst:2304 msgid "__class__ (module attribute)" msgstr "__class__ (χαρακτηριστικό module)" -#: reference/datamodel.rst:2671 +#: reference/datamodel.rst:2680 msgid "metaclass" msgstr "μετακλάση" -#: reference/datamodel.rst:2671 +#: reference/datamodel.rst:2680 msgid "= (equals)" msgstr "= (ισοδυναμεί)" -#: reference/datamodel.rst:2671 +#: reference/datamodel.rst:2680 msgid "class definition" msgstr "ορισμός κλάσης" -#: reference/datamodel.rst:2735 +#: reference/datamodel.rst:2744 msgid "metaclass hint" msgstr "υπόδειξη μετακλάσης" -#: reference/datamodel.rst:2758 +#: reference/datamodel.rst:2767 msgid "__prepare__ (metaclass method)" msgstr "__prepare__ (μέθοδος μετακλάσης)" -#: reference/datamodel.rst:2782 +#: reference/datamodel.rst:2791 msgid "body" msgstr "σώμα" -#: reference/datamodel.rst:2802 +#: reference/datamodel.rst:2811 msgid "__class__ (method cell)" msgstr "__class__ (κελί που περιέχει μέθοδο)" -#: reference/datamodel.rst:2802 +#: reference/datamodel.rst:2811 msgid "__classcell__ (class namespace entry)" msgstr "__classcell__ (καταχώρηση στο namespace της κλάσης)" -#: reference/datamodel.rst:3102 +#: reference/datamodel.rst:3112 msgid "__bool__() (object method)" msgstr "__bool__() (μέθοδος αντικειμένου)" -#: reference/datamodel.rst:3295 +#: reference/datamodel.rst:3305 msgid "divmod" msgstr "divmod" -#: reference/datamodel.rst:3295 reference/datamodel.rst:3309 +#: reference/datamodel.rst:3305 reference/datamodel.rst:3319 msgid "pow" msgstr "pow" -#: reference/datamodel.rst:3358 +#: reference/datamodel.rst:3368 msgid "abs" msgstr "abs" -#: reference/datamodel.rst:3368 +#: reference/datamodel.rst:3378 msgid "int" msgstr "int" -#: reference/datamodel.rst:3368 +#: reference/datamodel.rst:3378 msgid "float" msgstr "float" -#: reference/datamodel.rst:3396 +#: reference/datamodel.rst:3406 msgid "round" msgstr "round" -#: reference/datamodel.rst:3423 +#: reference/datamodel.rst:3433 msgid "with" msgstr "with" -#: reference/datamodel.rst:3423 +#: reference/datamodel.rst:3433 msgid "context manager" msgstr "διαχειριστής περιβάλλοντος" diff --git a/reference/executionmodel.po b/reference/executionmodel.po index c3f178dd..5ca3609f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: 2025-05-04 22:27+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" diff --git a/reference/expressions.po b/reference/expressions.po index 0ca7a91e..ca78c563 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 @@ msgstr "" msgid "Asynchronous comprehensions were introduced." msgstr "" -#: reference/expressions.rst:439 +#: reference/expressions.rst:440 msgid "``yield`` and ``yield from`` prohibited in the implicitly nested scope." msgstr "" @@ -448,29 +448,30 @@ msgid "" "Variables used in the generator expression are evaluated lazily when the :" "meth:`~generator.__next__` method is called for the generator object (in the " "same fashion as normal generators). However, the iterable expression in the " -"leftmost :keyword:`!for` clause is immediately evaluated, so that an error " -"produced by it will be emitted at the point where the generator expression " -"is defined, rather than at the point where the first value is retrieved. " -"Subsequent :keyword:`!for` clauses and any filter condition in the leftmost :" -"keyword:`!for` clause cannot be evaluated in the enclosing scope as they may " -"depend on the values obtained from the leftmost iterable. For example: " -"``(x*y for x in range(10) for y in range(x, x+10))``." +"leftmost :keyword:`!for` clause is immediately evaluated, and the :term:" +"`iterator` is immediately created for that iterable, so that an error " +"produced while creating the iterator will be emitted at the point where the " +"generator expression is defined, rather than at the point where the first " +"value is retrieved. Subsequent :keyword:`!for` clauses and any filter " +"condition in the leftmost :keyword:`!for` clause cannot be evaluated in the " +"enclosing scope as they may depend on the values obtained from the leftmost " +"iterable. For example: ``(x*y for x in range(10) for y in range(x, x+10))``." msgstr "" -#: reference/expressions.rst:418 +#: reference/expressions.rst:419 msgid "" "The parentheses can be omitted on calls with only one argument. See " "section :ref:`calls` for details." msgstr "" -#: reference/expressions.rst:421 +#: reference/expressions.rst:422 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:425 +#: reference/expressions.rst:426 msgid "" "If a generator expression contains either :keyword:`!async for` clauses or :" "keyword:`await` expressions it is called an :dfn:`asynchronous generator " @@ -479,22 +480,22 @@ msgid "" "`async-iterators`)." msgstr "" -#: reference/expressions.rst:431 +#: reference/expressions.rst:432 msgid "Asynchronous generator expressions were introduced." msgstr "" -#: reference/expressions.rst:434 +#: reference/expressions.rst:435 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:446 +#: reference/expressions.rst:447 msgid "Yield expressions" msgstr "" -#: reference/expressions.rst:459 +#: reference/expressions.rst:460 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 +505,7 @@ msgid "" "asynchronous generator function. For example::" msgstr "" -#: reference/expressions.rst:466 +#: reference/expressions.rst:467 msgid "" "def gen(): # defines a generator function\n" " yield 123\n" @@ -513,27 +514,27 @@ msgid "" " yield 123" msgstr "" -#: reference/expressions.rst:472 +#: reference/expressions.rst:473 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:476 +#: reference/expressions.rst:477 msgid "" "Yield expressions prohibited in the implicitly nested scopes used to " "implement comprehensions and generator expressions." msgstr "" -#: reference/expressions.rst:480 +#: reference/expressions.rst:481 msgid "" "Generator functions are described below, while asynchronous generator " "functions are described separately in section :ref:`asynchronous-generator-" "functions`." msgstr "" -#: reference/expressions.rst:484 +#: reference/expressions.rst:485 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 +555,7 @@ msgid "" "be the value passed in to that method." msgstr "" -#: reference/expressions.rst:504 +#: reference/expressions.rst:505 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 +564,7 @@ msgid "" "the control is always transferred to the generator's caller." msgstr "" -#: reference/expressions.rst:510 +#: reference/expressions.rst:511 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 +573,7 @@ msgid "" "`finally` clauses to execute." msgstr "" -#: reference/expressions.rst:519 +#: reference/expressions.rst:520 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 +585,7 @@ msgid "" "will just raise the passed in exception immediately." msgstr "" -#: reference/expressions.rst:528 +#: reference/expressions.rst:529 msgid "" "When the underlying iterator is complete, the :attr:`~StopIteration.value` " "attribute of the raised :exc:`StopIteration` instance becomes the value of " @@ -593,73 +594,73 @@ msgid "" "returning a value from the subgenerator)." msgstr "" -#: reference/expressions.rst:534 +#: reference/expressions.rst:535 msgid "Added ``yield from `` to delegate control flow to a subiterator." msgstr "" -#: reference/expressions.rst:537 +#: reference/expressions.rst:538 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:542 +#: reference/expressions.rst:543 msgid ":pep:`255` - Simple Generators" msgstr "" -#: reference/expressions.rst:543 +#: reference/expressions.rst:544 msgid "" "The proposal for adding generators and the :keyword:`yield` statement to " "Python." msgstr "" -#: reference/expressions.rst:545 +#: reference/expressions.rst:546 msgid ":pep:`342` - Coroutines via Enhanced Generators" msgstr "" -#: reference/expressions.rst:546 +#: reference/expressions.rst:547 msgid "" "The proposal to enhance the API and syntax of generators, making them usable " "as simple coroutines." msgstr "" -#: reference/expressions.rst:549 +#: reference/expressions.rst:550 msgid ":pep:`380` - Syntax for Delegating to a Subgenerator" msgstr "" -#: reference/expressions.rst:550 +#: reference/expressions.rst:551 msgid "" "The proposal to introduce the :token:`~python-grammar:yield_from` syntax, " "making delegation to subgenerators easy." msgstr "" -#: reference/expressions.rst:553 +#: reference/expressions.rst:554 msgid ":pep:`525` - Asynchronous Generators" msgstr "" -#: reference/expressions.rst:554 +#: reference/expressions.rst:555 msgid "" "The proposal that expanded on :pep:`492` by adding generator capabilities to " "coroutine functions." msgstr "" -#: reference/expressions.rst:561 +#: reference/expressions.rst:562 msgid "Generator-iterator methods" msgstr "" -#: reference/expressions.rst:563 +#: reference/expressions.rst:564 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:566 +#: reference/expressions.rst:567 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:574 +#: reference/expressions.rst:575 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 +672,13 @@ msgid "" "`StopIteration` exception is raised." msgstr "" -#: reference/expressions.rst:583 +#: reference/expressions.rst:584 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:589 +#: reference/expressions.rst:590 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 +689,7 @@ msgid "" "expression that could receive the value." msgstr "" -#: reference/expressions.rst:601 +#: reference/expressions.rst:602 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 +698,13 @@ msgid "" "a different exception, then that exception propagates to the caller." msgstr "" -#: reference/expressions.rst:607 +#: reference/expressions.rst:608 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:610 +#: reference/expressions.rst:611 msgid "" "For backwards compatibility, however, the second signature is supported, " "following a convention from older versions of Python. The *type* argument " @@ -714,42 +715,44 @@ msgid "" "*value* may be cleared." msgstr "" -#: reference/expressions.rst:805 +#: reference/expressions.rst:808 msgid "" "The second signature \\(type\\[, value\\[, traceback\\]\\]\\) is deprecated " "and may be removed in a future version of Python." msgstr "" -#: reference/expressions.rst:629 +#: reference/expressions.rst:630 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:641 +#: reference/expressions.rst:644 msgid "" "If a generator returns a value upon being closed, the value is returned by :" "meth:`close`." msgstr "" -#: reference/expressions.rst:647 +#: reference/expressions.rst:650 msgid "Examples" msgstr "" -#: reference/expressions.rst:649 +#: reference/expressions.rst:652 msgid "" "Here is a simple example that demonstrates the behavior of generators and " "generator functions::" msgstr "" -#: reference/expressions.rst:652 +#: reference/expressions.rst:655 msgid "" ">>> def echo(value=None):\n" "... print(\"Execution starts when 'next()' is called for the first time." @@ -777,24 +780,24 @@ msgid "" "Don't forget to clean up when 'close()' is called." msgstr "" -#: reference/expressions.rst:676 +#: reference/expressions.rst:679 msgid "" "For examples using ``yield from``, see :ref:`pep-380` in \"What's New in " "Python.\"" msgstr "" -#: reference/expressions.rst:682 +#: reference/expressions.rst:685 msgid "Asynchronous generator functions" msgstr "" -#: reference/expressions.rst:684 +#: reference/expressions.rst:687 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:688 +#: reference/expressions.rst:691 msgid "" "When an asynchronous generator function is called, it returns an " "asynchronous iterator known as an asynchronous generator object. That object " @@ -804,7 +807,7 @@ msgid "" "keyword:`for` statement." msgstr "" -#: reference/expressions.rst:695 +#: reference/expressions.rst:698 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 +825,7 @@ msgid "" "then the result will be the value passed in to that method." msgstr "" -#: reference/expressions.rst:710 +#: reference/expressions.rst:713 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 +837,7 @@ msgid "" "generator and ultimately detach it from the event loop." msgstr "" -#: reference/expressions.rst:720 +#: reference/expressions.rst:723 msgid "" "In an asynchronous generator function, yield expressions are allowed " "anywhere in a :keyword:`try` construct. However, if an asynchronous " @@ -848,7 +851,7 @@ msgid "" "finally` clauses to execute." msgstr "" -#: reference/expressions.rst:731 +#: reference/expressions.rst:734 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 +864,23 @@ msgid "" "asyncio/base_events.py`." msgstr "" -#: reference/expressions.rst:740 +#: reference/expressions.rst:743 msgid "" "The expression ``yield from `` is a syntax error when used in an " "asynchronous generator function." msgstr "" -#: reference/expressions.rst:747 +#: reference/expressions.rst:750 msgid "Asynchronous generator-iterator methods" msgstr "" -#: reference/expressions.rst:749 +#: reference/expressions.rst:752 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:758 +#: reference/expressions.rst:761 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 +895,12 @@ msgid "" "has completed." msgstr "" -#: reference/expressions.rst:770 +#: reference/expressions.rst:773 msgid "" "This method is normally called implicitly by a :keyword:`async for` loop." msgstr "" -#: reference/expressions.rst:776 +#: reference/expressions.rst:779 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 +915,7 @@ msgid "" "receive the value." msgstr "" -#: reference/expressions.rst:793 +#: reference/expressions.rst:796 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 +927,7 @@ msgid "" "that exception propagates to the caller of the awaitable." msgstr "" -#: reference/expressions.rst:814 +#: reference/expressions.rst:817 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 +943,25 @@ msgid "" "will return an awaitable that does nothing." msgstr "" -#: reference/expressions.rst:830 +#: reference/expressions.rst:833 msgid "Primaries" msgstr "" -#: reference/expressions.rst:834 +#: reference/expressions.rst:837 msgid "" "Primaries represent the most tightly bound operations of the language. Their " "syntax is:" msgstr "" -#: reference/expressions.rst:844 +#: reference/expressions.rst:847 msgid "Attribute references" msgstr "" -#: reference/expressions.rst:850 +#: reference/expressions.rst:853 msgid "An attribute reference is a primary followed by a period and a name:" msgstr "" -#: reference/expressions.rst:860 +#: reference/expressions.rst:863 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 +970,7 @@ msgid "" "reference may yield different objects." msgstr "" -#: reference/expressions.rst:866 +#: reference/expressions.rst:869 msgid "" "This production can be customized by overriding the :meth:`~object." "__getattribute__` method or the :meth:`~object.__getattr__` method. The :" @@ -975,17 +978,17 @@ msgid "" "or raises :exc:`AttributeError` if the attribute is not available." msgstr "" -#: reference/expressions.rst:872 +#: reference/expressions.rst:875 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:878 +#: reference/expressions.rst:881 msgid "Subscriptions" msgstr "" -#: reference/expressions.rst:893 +#: reference/expressions.rst:896 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 +996,13 @@ msgid "" "`GenericAlias ` object." msgstr "" -#: reference/expressions.rst:901 +#: reference/expressions.rst:904 msgid "" "When an object is subscripted, the interpreter will evaluate the primary and " "the expression list." msgstr "" -#: reference/expressions.rst:904 +#: reference/expressions.rst:907 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 +1012,7 @@ msgid "" "called instead of ``__getitem__``, see :ref:`classgetitem-versus-getitem`." msgstr "" -#: reference/expressions.rst:911 +#: reference/expressions.rst:914 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 +1020,17 @@ msgid "" "expression list will evaluate to the value of the list's sole member." msgstr "" -#: reference/expressions.rst:916 +#: reference/expressions.rst:919 msgid "Expressions in an expression list may be starred. See :pep:`646`." msgstr "" -#: reference/expressions.rst:919 +#: reference/expressions.rst:922 msgid "" "For built-in objects, there are two types of objects that support " "subscription via :meth:`~object.__getitem__`:" msgstr "" -#: reference/expressions.rst:922 +#: reference/expressions.rst:925 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 +1038,7 @@ msgid "" "An example of a builtin mapping class is the :class:`dict` class." msgstr "" -#: reference/expressions.rst:926 +#: reference/expressions.rst:929 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 +1046,7 @@ msgid "" "`str`, :class:`list` and :class:`tuple` classes." msgstr "" -#: reference/expressions.rst:931 +#: reference/expressions.rst:934 msgid "" "The formal syntax makes no special provision for negative indices in :term:" "`sequences `. However, built-in sequences all provide a :meth:" @@ -1057,25 +1060,25 @@ msgid "" "explicitly add that support." msgstr "" -#: reference/expressions.rst:945 +#: reference/expressions.rst:948 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:953 +#: reference/expressions.rst:956 msgid "Slicings" msgstr "" -#: reference/expressions.rst:967 +#: reference/expressions.rst:970 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:980 +#: reference/expressions.rst:983 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 +1088,7 @@ msgid "" "the case if the slice list contains no proper slice)." msgstr "" -#: reference/expressions.rst:992 +#: reference/expressions.rst:995 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 +1103,23 @@ msgid "" "missing expressions." msgstr "" -#: reference/expressions.rst:1016 +#: reference/expressions.rst:1019 msgid "Calls" msgstr "" -#: reference/expressions.rst:1018 +#: reference/expressions.rst:1021 msgid "" "A call calls a callable object (e.g., a :term:`function`) with a possibly " "empty series of :term:`arguments `:" msgstr "" -#: reference/expressions.rst:1035 +#: reference/expressions.rst:1038 msgid "" "An optional trailing comma may be present after the positional and keyword " "arguments but does not affect the semantics." msgstr "" -#: reference/expressions.rst:1041 +#: reference/expressions.rst:1044 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 +1129,7 @@ msgid "" "formal :term:`parameter` lists." msgstr "" -#: reference/expressions.rst:1049 +#: reference/expressions.rst:1052 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 +1150,7 @@ msgid "" "filled slots is used as the argument list for the call." msgstr "" -#: reference/expressions.rst:1069 +#: reference/expressions.rst:1072 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 +1159,7 @@ msgid "" "`PyArg_ParseTuple` to parse their arguments." msgstr "" -#: reference/expressions.rst:1075 +#: reference/expressions.rst:1078 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 +1168,7 @@ msgid "" "empty tuple if there were no excess positional arguments)." msgstr "" -#: reference/expressions.rst:1081 +#: reference/expressions.rst:1084 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 +1178,7 @@ msgid "" "(new) empty dictionary if there were no excess keyword arguments." msgstr "" -#: reference/expressions.rst:1092 +#: reference/expressions.rst:1095 msgid "" "If the syntax ``*expression`` appears in the function call, ``expression`` " "must evaluate to an :term:`iterable`. Elements from these iterables are " @@ -1185,14 +1188,14 @@ msgid "" "*y1*, ..., *yM*, *x3*, *x4*." msgstr "" -#: reference/expressions.rst:1099 +#: reference/expressions.rst:1102 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:1103 +#: reference/expressions.rst:1106 msgid "" ">>> def f(a, b):\n" "... print(a, b)\n" @@ -1207,13 +1210,13 @@ msgid "" "1 2" msgstr "" -#: reference/expressions.rst:1115 +#: reference/expressions.rst:1118 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:1121 +#: reference/expressions.rst:1124 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 +1225,7 @@ msgid "" "a :exc:`TypeError` exception is raised." msgstr "" -#: reference/expressions.rst:1127 +#: reference/expressions.rst:1130 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 +1237,35 @@ msgid "" "is raised." msgstr "" -#: reference/expressions.rst:1137 +#: reference/expressions.rst:1140 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:1140 +#: reference/expressions.rst:1143 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:1146 +#: reference/expressions.rst:1149 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:1150 +#: reference/expressions.rst:1153 msgid "If it is---" msgstr "" -#: reference/expressions.rst:1152 +#: reference/expressions.rst:1155 msgid "a user-defined function:" msgstr "" -#: reference/expressions.rst:1159 +#: reference/expressions.rst:1162 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 +1276,73 @@ msgid "" "``None``." msgstr "" -#: reference/expressions.rst:1166 +#: reference/expressions.rst:1169 msgid "a built-in function or method:" msgstr "" -#: reference/expressions.rst:1177 +#: reference/expressions.rst:1180 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:1180 +#: reference/expressions.rst:1183 msgid "a class object:" msgstr "" -#: reference/expressions.rst:1185 +#: reference/expressions.rst:1188 msgid "A new instance of that class is returned." msgstr "" -#: reference/expressions.rst:1187 +#: reference/expressions.rst:1190 msgid "a class instance method:" msgstr "" -#: reference/expressions.rst:1193 +#: reference/expressions.rst:1196 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:1197 +#: reference/expressions.rst:1200 msgid "a class instance:" msgstr "" -#: reference/expressions.rst:1202 +#: reference/expressions.rst:1205 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:2011 +#: reference/expressions.rst:2015 msgid "Await expression" msgstr "" -#: reference/expressions.rst:1212 +#: reference/expressions.rst:1215 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:1224 +#: reference/expressions.rst:1227 msgid "The power operator" msgstr "" -#: reference/expressions.rst:1230 +#: reference/expressions.rst:1233 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:1236 +#: reference/expressions.rst:1239 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:1240 +#: reference/expressions.rst:1243 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 +1350,7 @@ msgid "" "converted to a common type, and the result is of that type." msgstr "" -#: reference/expressions.rst:1245 +#: reference/expressions.rst:1248 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 +1358,41 @@ msgid "" "``100``, but ``10**-2`` returns ``0.01``." msgstr "" -#: reference/expressions.rst:1250 +#: reference/expressions.rst:1253 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:1254 +#: reference/expressions.rst:1257 msgid "" "This operation can be customized using the special :meth:`~object.__pow__` " "and :meth:`~object.__rpow__` methods." msgstr "" -#: reference/expressions.rst:1260 +#: reference/expressions.rst:1263 msgid "Unary arithmetic and bitwise operations" msgstr "" -#: reference/expressions.rst:1266 +#: reference/expressions.rst:1269 msgid "All unary arithmetic and bitwise operations have the same priority:" msgstr "" -#: reference/expressions.rst:1277 +#: reference/expressions.rst:1280 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:1285 +#: reference/expressions.rst:1288 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:1292 +#: reference/expressions.rst:1295 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 +1400,17 @@ msgid "" "meth:`~object.__invert__` special method." msgstr "" -#: reference/expressions.rst:1301 +#: reference/expressions.rst:1304 msgid "" "In all three cases, if the argument does not have the proper type, a :exc:" "`TypeError` exception is raised." msgstr "" -#: reference/expressions.rst:1308 +#: reference/expressions.rst:1311 msgid "Binary arithmetic operations" msgstr "" -#: reference/expressions.rst:1312 +#: reference/expressions.rst:1315 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 +1418,7 @@ msgid "" "multiplicative operators and one for additive operators:" msgstr "" -#: reference/expressions.rst:1327 +#: reference/expressions.rst:1330 msgid "" "The ``*`` (multiplication) operator yields the product of its arguments. " "The arguments must either both be numbers, or one argument must be an " @@ -1425,25 +1428,25 @@ msgid "" "an empty sequence." msgstr "" -#: reference/expressions.rst:1333 +#: reference/expressions.rst:1336 msgid "" "This operation can be customized using the special :meth:`~object.__mul__` " "and :meth:`~object.__rmul__` methods." msgstr "" -#: reference/expressions.rst:1340 +#: reference/expressions.rst:1343 msgid "" "The ``@`` (at) operator is intended to be used for matrix multiplication. " "No builtin Python types implement this operator." msgstr "" -#: reference/expressions.rst:1343 +#: reference/expressions.rst:1346 msgid "" "This operation can be customized using the special :meth:`~object." "__matmul__` and :meth:`~object.__rmatmul__` methods." msgstr "" -#: reference/expressions.rst:1354 +#: reference/expressions.rst:1357 msgid "" "The ``/`` (division) and ``//`` (floor division) operators yield the " "quotient of their arguments. The numeric arguments are first converted to a " @@ -1453,7 +1456,7 @@ msgid "" "the :exc:`ZeroDivisionError` exception." msgstr "" -#: reference/expressions.rst:1361 +#: reference/expressions.rst:1364 msgid "" "The division operation can be customized using the special :meth:`~object." "__truediv__` and :meth:`~object.__rtruediv__` methods. The floor division " @@ -1461,7 +1464,7 @@ msgid "" "and :meth:`~object.__rfloordiv__` methods." msgstr "" -#: reference/expressions.rst:1370 +#: reference/expressions.rst:1373 msgid "" "The ``%`` (modulo) operator yields the remainder from the division of the " "first argument by the second. The numeric arguments are first converted to " @@ -1473,7 +1476,7 @@ msgid "" "absolute value of the second operand [#]_." msgstr "" -#: reference/expressions.rst:1379 +#: reference/expressions.rst:1382 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 " @@ -1481,7 +1484,7 @@ msgid "" "y, x%y)``. [#]_." msgstr "" -#: reference/expressions.rst:1384 +#: reference/expressions.rst:1387 msgid "" "In addition to performing the modulo operation on numbers, the ``%`` " "operator is also overloaded by string objects to perform old-style string " @@ -1490,20 +1493,20 @@ msgid "" "formatting`." msgstr "" -#: reference/expressions.rst:1389 +#: reference/expressions.rst:1392 msgid "" "The *modulo* operation can be customized using the special :meth:`~object." "__mod__` and :meth:`~object.__rmod__` methods." msgstr "" -#: reference/expressions.rst:1392 +#: reference/expressions.rst:1395 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:1401 +#: reference/expressions.rst:1404 msgid "" "The ``+`` (addition) operator yields the sum of its arguments. The " "arguments must either both be numbers or both be sequences of the same " @@ -1511,40 +1514,40 @@ msgid "" "then added together. In the latter case, the sequences are concatenated." msgstr "" -#: reference/expressions.rst:1406 +#: reference/expressions.rst:1409 msgid "" "This operation can be customized using the special :meth:`~object.__add__` " "and :meth:`~object.__radd__` methods." msgstr "" -#: reference/expressions.rst:1414 +#: reference/expressions.rst:1417 msgid "" "The ``-`` (subtraction) operator yields the difference of its arguments. " "The numeric arguments are first converted to a common type." msgstr "" -#: reference/expressions.rst:1417 +#: reference/expressions.rst:1420 msgid "" "This operation can be customized using the special :meth:`~object.__sub__` " "and :meth:`~object.__rsub__` methods." msgstr "" -#: reference/expressions.rst:1424 +#: reference/expressions.rst:1427 msgid "Shifting operations" msgstr "" -#: reference/expressions.rst:1431 +#: reference/expressions.rst:1434 msgid "" "The shifting operations have lower priority than the arithmetic operations:" msgstr "" -#: reference/expressions.rst:1436 +#: reference/expressions.rst:1439 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:1439 +#: reference/expressions.rst:1442 msgid "" "The left shift operation can be customized using the special :meth:`~object." "__lshift__` and :meth:`~object.__rlshift__` methods. The right shift " @@ -1552,46 +1555,46 @@ msgid "" "and :meth:`~object.__rrshift__` methods." msgstr "" -#: reference/expressions.rst:1446 +#: reference/expressions.rst:1449 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:1453 +#: reference/expressions.rst:1456 msgid "Binary bitwise operations" msgstr "" -#: reference/expressions.rst:1457 +#: reference/expressions.rst:1460 msgid "Each of the three bitwise operations has a different priority level:" msgstr "" -#: reference/expressions.rst:1468 +#: reference/expressions.rst:1471 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:1477 +#: reference/expressions.rst:1480 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:1486 +#: reference/expressions.rst:1489 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:1494 +#: reference/expressions.rst:1497 msgid "Comparisons" msgstr "" -#: reference/expressions.rst:1506 +#: reference/expressions.rst:1509 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 " @@ -1599,14 +1602,14 @@ msgid "" "conventional in mathematics:" msgstr "" -#: reference/expressions.rst:1516 +#: reference/expressions.rst:1519 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:1522 +#: reference/expressions.rst:1525 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 " @@ -1614,7 +1617,7 @@ msgid "" "false)." msgstr "" -#: reference/expressions.rst:1526 +#: reference/expressions.rst:1529 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 " @@ -1622,24 +1625,24 @@ msgid "" "each expression is evaluated at most once." msgstr "" -#: reference/expressions.rst:1531 +#: reference/expressions.rst:1534 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:1538 +#: reference/expressions.rst:1541 msgid "Value comparisons" msgstr "" -#: reference/expressions.rst:1540 +#: reference/expressions.rst:1543 msgid "" "The operators ``<``, ``>``, ``==``, ``>=``, ``<=``, and ``!=`` compare the " "values of two objects. The objects do not need to have the same type." msgstr "" -#: reference/expressions.rst:1543 +#: reference/expressions.rst:1546 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 " @@ -1651,7 +1654,7 @@ msgid "" "indirectly, by means of their comparison implementation." msgstr "" -#: reference/expressions.rst:1552 +#: reference/expressions.rst:1555 msgid "" "Because all types are (direct or indirect) subtypes of :class:`object`, they " "inherit the default comparison behavior from :class:`object`. Types can " @@ -1659,7 +1662,7 @@ msgid "" "methods` like :meth:`~object.__lt__`, described in :ref:`customization`." msgstr "" -#: reference/expressions.rst:1558 +#: reference/expressions.rst:1561 msgid "" "The default behavior for equality comparison (``==`` and ``!=``) is based on " "the identity of the objects. Hence, equality comparison of instances with " @@ -1669,14 +1672,14 @@ msgid "" "``x is y`` implies ``x == y``)." msgstr "" -#: reference/expressions.rst:1565 +#: reference/expressions.rst:1568 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:1569 +#: reference/expressions.rst:1572 msgid "" "The behavior of the default equality comparison, that instances with " "different identities are always unequal, may be in contrast to what types " @@ -1685,13 +1688,13 @@ msgid "" "in fact, a number of built-in types have done that." msgstr "" -#: reference/expressions.rst:1575 +#: reference/expressions.rst:1578 msgid "" "The following list describes the comparison behavior of the most important " "built-in types." msgstr "" -#: reference/expressions.rst:1578 +#: reference/expressions.rst:1581 msgid "" "Numbers of built-in numeric types (:ref:`typesnumeric`) and of the standard " "library types :class:`fractions.Fraction` and :class:`decimal.Decimal` can " @@ -1701,7 +1704,7 @@ msgid "" "of precision." msgstr "" -#: reference/expressions.rst:1585 +#: reference/expressions.rst:1588 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 " @@ -1711,32 +1714,32 @@ msgid "" "is compliant with IEEE 754." msgstr "" -#: reference/expressions.rst:1592 +#: reference/expressions.rst:1595 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:1596 +#: reference/expressions.rst:1599 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:1600 +#: reference/expressions.rst:1603 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:1604 +#: reference/expressions.rst:1607 msgid "Strings and binary sequences cannot be directly compared." msgstr "" -#: reference/expressions.rst:1606 +#: reference/expressions.rst:1609 msgid "" "Sequences (instances of :class:`tuple`, :class:`list`, or :class:`range`) " "can be compared only within each of their types, with the restriction that " @@ -1745,7 +1748,7 @@ msgid "" "raises :exc:`TypeError`." msgstr "" -#: reference/expressions.rst:1612 +#: reference/expressions.rst:1615 msgid "" "Sequences compare lexicographically using comparison of corresponding " "elements. The built-in containers typically assume identical objects are " @@ -1753,19 +1756,19 @@ msgid "" "objects to improve performance and to maintain their internal invariants." msgstr "" -#: reference/expressions.rst:1617 +#: reference/expressions.rst:1620 msgid "" "Lexicographical comparison between built-in collections works as follows:" msgstr "" -#: reference/expressions.rst:1619 +#: reference/expressions.rst:1622 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:1624 +#: reference/expressions.rst:1627 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 " @@ -1774,25 +1777,25 @@ msgid "" "true)." msgstr "" -#: reference/expressions.rst:1630 +#: reference/expressions.rst:1633 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:1634 +#: reference/expressions.rst:1637 msgid "" "Order comparisons (``<``, ``>``, ``<=``, and ``>=``) raise :exc:`TypeError`." msgstr "" -#: reference/expressions.rst:1636 +#: reference/expressions.rst:1639 msgid "" "Sets (instances of :class:`set` or :class:`frozenset`) can be compared " "within and across their types." msgstr "" -#: reference/expressions.rst:1639 +#: reference/expressions.rst:1642 msgid "" "They define order comparison operators to mean subset and superset tests. " "Those relations do not define total orderings (for example, the two sets " @@ -1803,110 +1806,110 @@ msgid "" "sets as inputs)." msgstr "" -#: reference/expressions.rst:1647 +#: reference/expressions.rst:1650 msgid "Comparison of sets enforces reflexivity of its elements." msgstr "" -#: reference/expressions.rst:1649 +#: reference/expressions.rst:1652 msgid "" "Most other built-in types have no comparison methods implemented, so they " "inherit the default comparison behavior." msgstr "" -#: reference/expressions.rst:1652 +#: reference/expressions.rst:1655 msgid "" "User-defined classes that customize their comparison behavior should follow " "some consistency rules, if possible:" msgstr "" -#: reference/expressions.rst:1655 +#: reference/expressions.rst:1658 msgid "" "Equality comparison should be reflexive. In other words, identical objects " "should compare equal:" msgstr "" -#: reference/expressions.rst:1658 +#: reference/expressions.rst:1661 msgid "``x is y`` implies ``x == y``" msgstr "" -#: reference/expressions.rst:1660 +#: reference/expressions.rst:1663 msgid "" "Comparison should be symmetric. In other words, the following expressions " "should have the same result:" msgstr "" -#: reference/expressions.rst:1663 +#: reference/expressions.rst:1666 msgid "``x == y`` and ``y == x``" msgstr "" -#: reference/expressions.rst:1665 +#: reference/expressions.rst:1668 msgid "``x != y`` and ``y != x``" msgstr "" -#: reference/expressions.rst:1667 +#: reference/expressions.rst:1670 msgid "``x < y`` and ``y > x``" msgstr "" -#: reference/expressions.rst:1669 +#: reference/expressions.rst:1672 msgid "``x <= y`` and ``y >= x``" msgstr "" -#: reference/expressions.rst:1671 +#: reference/expressions.rst:1674 msgid "" "Comparison should be transitive. The following (non-exhaustive) examples " "illustrate that:" msgstr "" -#: reference/expressions.rst:1674 +#: reference/expressions.rst:1677 msgid "``x > y and y > z`` implies ``x > z``" msgstr "" -#: reference/expressions.rst:1676 +#: reference/expressions.rst:1679 msgid "``x < y and y <= z`` implies ``x < z``" msgstr "" -#: reference/expressions.rst:1678 +#: reference/expressions.rst:1681 msgid "" "Inverse comparison should result in the boolean negation. In other words, " "the following expressions should have the same result:" msgstr "" -#: reference/expressions.rst:1681 +#: reference/expressions.rst:1684 msgid "``x == y`` and ``not x != y``" msgstr "" -#: reference/expressions.rst:1683 +#: reference/expressions.rst:1686 msgid "``x < y`` and ``not x >= y`` (for total ordering)" msgstr "" -#: reference/expressions.rst:1685 +#: reference/expressions.rst:1688 msgid "``x > y`` and ``not x <= y`` (for total ordering)" msgstr "" -#: reference/expressions.rst:1687 +#: reference/expressions.rst:1690 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:1691 +#: reference/expressions.rst:1694 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:1695 +#: reference/expressions.rst:1698 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:1704 +#: reference/expressions.rst:1707 msgid "Membership test operations" msgstr "" -#: reference/expressions.rst:1706 +#: reference/expressions.rst:1709 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`` " @@ -1917,7 +1920,7 @@ msgid "" "expression ``x in y`` is equivalent to ``any(x is e or x == e for e in y)``." msgstr "" -#: reference/expressions.rst:1714 +#: reference/expressions.rst:1717 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 " @@ -1925,14 +1928,14 @@ msgid "" "``\"\" in \"abc\"`` will return ``True``." msgstr "" -#: reference/expressions.rst:1719 +#: reference/expressions.rst:1722 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:1723 +#: reference/expressions.rst:1726 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 " @@ -1941,7 +1944,7 @@ msgid "" "it is as if :keyword:`in` raised that exception." msgstr "" -#: reference/expressions.rst:1729 +#: reference/expressions.rst:1732 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-" @@ -1950,17 +1953,17 @@ msgid "" "exception is raised, it is as if :keyword:`in` raised that exception)." msgstr "" -#: reference/expressions.rst:1741 +#: reference/expressions.rst:1744 msgid "" "The operator :keyword:`not in` is defined to have the inverse truth value " "of :keyword:`in`." msgstr "" -#: reference/expressions.rst:1754 +#: reference/expressions.rst:1757 msgid "Identity comparisons" msgstr "" -#: reference/expressions.rst:1756 +#: reference/expressions.rst:1759 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 " @@ -1968,11 +1971,11 @@ msgid "" "``x is not y`` yields the inverse truth value. [#]_" msgstr "" -#: reference/expressions.rst:1768 +#: reference/expressions.rst:1771 msgid "Boolean operations" msgstr "" -#: reference/expressions.rst:1779 +#: reference/expressions.rst:1782 msgid "" "In the context of Boolean operations, and also when expressions are used by " "control flow statements, the following values are interpreted as false: " @@ -1983,25 +1986,25 @@ msgid "" "__bool__` method." msgstr "" -#: reference/expressions.rst:1788 +#: reference/expressions.rst:1791 msgid "" "The operator :keyword:`not` yields ``True`` if its argument is false, " "``False`` otherwise." msgstr "" -#: reference/expressions.rst:1793 +#: reference/expressions.rst:1796 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:1798 +#: reference/expressions.rst:1801 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:1801 +#: reference/expressions.rst:1804 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 " @@ -2012,11 +2015,11 @@ msgid "" "argument (for example, ``not 'foo'`` produces ``False`` rather than ``''``.)" msgstr "" -#: reference/expressions.rst:1820 +#: reference/expressions.rst:1823 msgid "Assignment expressions" msgstr "" -#: reference/expressions.rst:1825 +#: reference/expressions.rst:1828 msgid "" "An assignment expression (sometimes also called a \"named expression\" or " "\"walrus\") assigns an :token:`~python-grammar:expression` to an :token:" @@ -2024,27 +2027,27 @@ msgid "" "`~python-grammar:expression`." msgstr "" -#: reference/expressions.rst:1830 +#: reference/expressions.rst:1833 msgid "One common use case is when handling matched regular expressions:" msgstr "" -#: reference/expressions.rst:1832 +#: reference/expressions.rst:1835 msgid "" "if matching := pattern.search(data):\n" " do_something(matching)" msgstr "" -#: reference/expressions.rst:1837 +#: reference/expressions.rst:1840 msgid "Or, when processing a file stream in chunks:" msgstr "" -#: reference/expressions.rst:1839 +#: reference/expressions.rst:1842 msgid "" "while chunk := file.read(9000):\n" " process(chunk)" msgstr "" -#: reference/expressions.rst:1844 +#: reference/expressions.rst:1847 msgid "" "Assignment expressions must be surrounded by parentheses when used as " "expression statements and when used as sub-expressions in slicing, " @@ -2054,36 +2057,37 @@ msgid "" "and ``while`` statements." msgstr "" -#: reference/expressions.rst:1852 +#: reference/expressions.rst:1855 msgid "See :pep:`572` for more details about assignment expressions." msgstr "" -#: reference/expressions.rst:1859 +#: reference/expressions.rst:1862 msgid "Conditional expressions" msgstr "" -#: reference/expressions.rst:1871 +#: reference/expressions.rst:1874 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:1874 +#: reference/expressions.rst:1878 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:1878 +#: reference/expressions.rst:1882 msgid "See :pep:`308` for more details about conditional expressions." msgstr "" -#: reference/expressions.rst:1885 +#: reference/expressions.rst:1889 msgid "Lambdas" msgstr "" -#: reference/expressions.rst:1896 +#: reference/expressions.rst:1900 msgid "" "Lambda expressions (sometimes called lambda forms) are used to create " "anonymous functions. The expression ``lambda parameters: expression`` yields " @@ -2091,31 +2095,31 @@ msgid "" "defined with:" msgstr "" -#: reference/expressions.rst:1900 +#: reference/expressions.rst:1904 msgid "" "def (parameters):\n" " return expression" msgstr "" -#: reference/expressions.rst:1905 +#: reference/expressions.rst:1909 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:1913 +#: reference/expressions.rst:1917 msgid "Expression lists" msgstr "" -#: reference/expressions.rst:1929 +#: reference/expressions.rst:1933 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:1938 +#: reference/expressions.rst:1942 msgid "" "An asterisk ``*`` denotes :dfn:`iterable unpacking`. Its operand must be " "an :term:`iterable`. The iterable is expanded into a sequence of items, " @@ -2123,16 +2127,16 @@ msgid "" "unpacking." msgstr "" -#: reference/expressions.rst:1943 +#: reference/expressions.rst:1947 msgid "" "Iterable unpacking in expression lists, originally proposed by :pep:`448`." msgstr "" -#: reference/expressions.rst:1946 +#: reference/expressions.rst:1950 msgid "Any item in an expression list may be starred. See :pep:`646`." msgstr "" -#: reference/expressions.rst:1951 +#: reference/expressions.rst:1955 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 " @@ -2141,24 +2145,24 @@ msgid "" "``()``.)" msgstr "" -#: reference/expressions.rst:1962 +#: reference/expressions.rst:1966 msgid "Evaluation order" msgstr "" -#: reference/expressions.rst:1966 +#: reference/expressions.rst:1970 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:1969 +#: reference/expressions.rst:1973 msgid "" "In the following lines, expressions will be evaluated in the arithmetic " "order of their suffixes::" msgstr "" -#: reference/expressions.rst:1972 +#: reference/expressions.rst:1976 msgid "" "expr1, expr2, expr3, expr4\n" "(expr1, expr2, expr3, expr4)\n" @@ -2168,11 +2172,11 @@ msgid "" "expr3, expr4 = expr1, expr2" msgstr "" -#: reference/expressions.rst:1983 +#: reference/expressions.rst:1987 msgid "Operator precedence" msgstr "" -#: reference/expressions.rst:1988 +#: reference/expressions.rst:1992 msgid "" "The following table summarizes the operator precedence in Python, from " "highest precedence (most binding) to lowest precedence (least binding). " @@ -2182,176 +2186,176 @@ msgid "" "group from right to left)." msgstr "" -#: reference/expressions.rst:1994 +#: reference/expressions.rst:1998 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:2000 +#: reference/expressions.rst:2004 msgid "Operator" msgstr "" -#: reference/expressions.rst:2000 +#: reference/expressions.rst:2004 msgid "Description" msgstr "" -#: reference/expressions.rst:2002 +#: reference/expressions.rst:2006 msgid "``(expressions...)``," msgstr "" -#: reference/expressions.rst:2004 +#: reference/expressions.rst:2008 msgid "``[expressions...]``, ``{key: value...}``, ``{expressions...}``" msgstr "" -#: reference/expressions.rst:2002 +#: reference/expressions.rst:2006 msgid "" "Binding or parenthesized expression, list display, dictionary display, set " "display" msgstr "" -#: reference/expressions.rst:2008 +#: reference/expressions.rst:2012 msgid "``x[index]``, ``x[index:index]``, ``x(arguments...)``, ``x.attribute``" msgstr "" -#: reference/expressions.rst:2008 +#: reference/expressions.rst:2012 msgid "Subscription, slicing, call, attribute reference" msgstr "" -#: reference/expressions.rst:2011 +#: reference/expressions.rst:2015 msgid ":keyword:`await x `" msgstr "" -#: reference/expressions.rst:2013 +#: reference/expressions.rst:2017 msgid "``**``" msgstr "" -#: reference/expressions.rst:2013 +#: reference/expressions.rst:2017 msgid "Exponentiation [#]_" msgstr "" -#: reference/expressions.rst:2015 +#: reference/expressions.rst:2019 msgid "``+x``, ``-x``, ``~x``" msgstr "" -#: reference/expressions.rst:2015 +#: reference/expressions.rst:2019 msgid "Positive, negative, bitwise NOT" msgstr "" -#: reference/expressions.rst:2017 +#: reference/expressions.rst:2021 msgid "``*``, ``@``, ``/``, ``//``, ``%``" msgstr "" -#: reference/expressions.rst:2017 +#: reference/expressions.rst:2021 msgid "" "Multiplication, matrix multiplication, division, floor division, remainder " "[#]_" msgstr "" -#: reference/expressions.rst:2021 +#: reference/expressions.rst:2025 msgid "``+``, ``-``" msgstr "" -#: reference/expressions.rst:2021 +#: reference/expressions.rst:2025 msgid "Addition and subtraction" msgstr "" -#: reference/expressions.rst:2023 +#: reference/expressions.rst:2027 msgid "``<<``, ``>>``" msgstr "" -#: reference/expressions.rst:2023 +#: reference/expressions.rst:2027 msgid "Shifts" msgstr "" -#: reference/expressions.rst:2025 +#: reference/expressions.rst:2029 msgid "``&``" msgstr "" -#: reference/expressions.rst:2025 +#: reference/expressions.rst:2029 msgid "Bitwise AND" msgstr "" -#: reference/expressions.rst:2027 +#: reference/expressions.rst:2031 msgid "``^``" msgstr "" -#: reference/expressions.rst:2027 +#: reference/expressions.rst:2031 msgid "Bitwise XOR" msgstr "" -#: reference/expressions.rst:2029 +#: reference/expressions.rst:2033 msgid "``|``" msgstr "" -#: reference/expressions.rst:2029 +#: reference/expressions.rst:2033 msgid "Bitwise OR" msgstr "" -#: reference/expressions.rst:2031 +#: reference/expressions.rst:2035 msgid "" ":keyword:`in`, :keyword:`not in`, :keyword:`is`, :keyword:`is not`, ``<``, " "``<=``, ``>``, ``>=``, ``!=``, ``==``" msgstr "" -#: reference/expressions.rst:2031 +#: reference/expressions.rst:2035 msgid "Comparisons, including membership tests and identity tests" msgstr "" -#: reference/expressions.rst:2035 +#: reference/expressions.rst:2039 msgid ":keyword:`not x `" msgstr "" -#: reference/expressions.rst:2035 +#: reference/expressions.rst:2039 msgid "Boolean NOT" msgstr "" -#: reference/expressions.rst:2037 +#: reference/expressions.rst:2041 msgid ":keyword:`and`" msgstr "" -#: reference/expressions.rst:2037 +#: reference/expressions.rst:2041 msgid "Boolean AND" msgstr "" -#: reference/expressions.rst:2039 +#: reference/expressions.rst:2043 msgid ":keyword:`or`" msgstr "" -#: reference/expressions.rst:2039 +#: reference/expressions.rst:2043 msgid "Boolean OR" msgstr "" -#: reference/expressions.rst:2041 +#: reference/expressions.rst:2045 msgid ":keyword:`if ` -- :keyword:`!else`" msgstr "" -#: reference/expressions.rst:2041 +#: reference/expressions.rst:2045 msgid "Conditional expression" msgstr "" -#: reference/expressions.rst:2043 +#: reference/expressions.rst:2047 msgid ":keyword:`lambda`" msgstr "" -#: reference/expressions.rst:2043 +#: reference/expressions.rst:2047 msgid "Lambda expression" msgstr "" -#: reference/expressions.rst:2045 +#: reference/expressions.rst:2049 msgid "``:=``" msgstr "" -#: reference/expressions.rst:2045 +#: reference/expressions.rst:2049 msgid "Assignment expression" msgstr "" -#: reference/expressions.rst:2050 +#: reference/expressions.rst:2054 msgid "Footnotes" msgstr "" -#: reference/expressions.rst:2051 +#: reference/expressions.rst:2055 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 " @@ -2363,7 +2367,7 @@ msgid "" "approach is more appropriate depends on the application." msgstr "" -#: reference/expressions.rst:2060 +#: reference/expressions.rst:2064 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, " @@ -2371,7 +2375,7 @@ msgid "" "* y + x % y`` be very close to ``x``." msgstr "" -#: reference/expressions.rst:2065 +#: reference/expressions.rst:2069 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 " @@ -2385,7 +2389,7 @@ msgid "" "(COMBINING CEDILLA)." msgstr "" -#: reference/expressions.rst:2076 +#: reference/expressions.rst:2080 msgid "" "The comparison operators on strings compare at the level of Unicode code " "points. This may be counter-intuitive to humans. For example, ``\"\\u00C7\" " @@ -2393,13 +2397,13 @@ msgid "" "same abstract character \"LATIN CAPITAL LETTER C WITH CEDILLA\"." msgstr "" -#: reference/expressions.rst:2081 +#: reference/expressions.rst:2085 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:2084 +#: reference/expressions.rst:2088 msgid "" "Due to automatic garbage-collection, free lists, and the dynamic nature of " "descriptors, you may notice seemingly unusual behaviour in certain uses of " @@ -2407,20 +2411,20 @@ msgid "" "instance methods, or constants. Check their documentation for more info." msgstr "" -#: reference/expressions.rst:2089 +#: reference/expressions.rst:2093 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:2092 +#: reference/expressions.rst:2096 msgid "" "The ``%`` operator is also used for string formatting; the same precedence " "applies." msgstr "" -#: reference/expressions.rst:393 reference/expressions.rst:1770 -#: reference/expressions.rst:1861 reference/expressions.rst:1915 +#: reference/expressions.rst:393 reference/expressions.rst:1773 +#: reference/expressions.rst:1864 reference/expressions.rst:1919 msgid "expression" msgstr "" @@ -2428,7 +2432,7 @@ msgstr "" msgid "BNF" msgstr "" -#: reference/expressions.rst:1262 reference/expressions.rst:1310 +#: reference/expressions.rst:1265 reference/expressions.rst:1313 msgid "arithmetic" msgstr "" @@ -2448,9 +2452,9 @@ msgstr "" msgid "identifier" msgstr "" -#: reference/expressions.rst:569 reference/expressions.rst:753 -#: reference/expressions.rst:855 reference/expressions.rst:1348 -#: reference/expressions.rst:1444 +#: reference/expressions.rst:570 reference/expressions.rst:756 +#: reference/expressions.rst:858 reference/expressions.rst:1351 +#: reference/expressions.rst:1447 msgid "exception" msgstr "" @@ -2487,10 +2491,10 @@ msgid "type" msgstr "" #: reference/expressions.rst:275 reference/expressions.rst:329 -#: reference/expressions.rst:393 reference/expressions.rst:743 -#: reference/expressions.rst:884 reference/expressions.rst:1005 -#: reference/expressions.rst:1167 reference/expressions.rst:1188 -#: reference/expressions.rst:1927 +#: reference/expressions.rst:393 reference/expressions.rst:746 +#: reference/expressions.rst:887 reference/expressions.rst:1008 +#: reference/expressions.rst:1170 reference/expressions.rst:1191 +#: reference/expressions.rst:1931 msgid "object" msgstr "" @@ -2498,7 +2502,7 @@ msgstr "" msgid "parenthesized form" msgstr "" -#: reference/expressions.rst:393 reference/expressions.rst:1005 +#: reference/expressions.rst:393 reference/expressions.rst:1008 msgid "() (parentheses)" msgstr "" @@ -2510,16 +2514,16 @@ msgstr "" msgid "empty" msgstr "" -#: reference/expressions.rst:884 reference/expressions.rst:1927 +#: reference/expressions.rst:887 reference/expressions.rst:1931 msgid "tuple" msgstr "" -#: reference/expressions.rst:1949 +#: reference/expressions.rst:1953 msgid "comma" msgstr "" #: reference/expressions.rst:275 reference/expressions.rst:329 -#: reference/expressions.rst:1005 reference/expressions.rst:1915 +#: reference/expressions.rst:1008 reference/expressions.rst:1919 msgid ", (comma)" msgstr "" @@ -2535,7 +2539,7 @@ msgstr "" msgid "in comprehensions" msgstr "" -#: reference/expressions.rst:1861 +#: reference/expressions.rst:1864 msgid "if" msgstr "" @@ -2543,12 +2547,12 @@ msgstr "" msgid "async for" msgstr "" -#: reference/expressions.rst:1206 +#: reference/expressions.rst:1209 msgid "await" msgstr "" -#: reference/expressions.rst:855 reference/expressions.rst:961 -#: reference/expressions.rst:1915 +#: reference/expressions.rst:858 reference/expressions.rst:964 +#: reference/expressions.rst:1919 msgid "list" msgstr "" @@ -2556,7 +2560,7 @@ msgstr "" msgid "display" msgstr "" -#: reference/expressions.rst:880 +#: reference/expressions.rst:883 msgid "[] (square brackets)" msgstr "" @@ -2564,7 +2568,7 @@ msgstr "" msgid "list expression" msgstr "" -#: reference/expressions.rst:301 reference/expressions.rst:1915 +#: reference/expressions.rst:301 reference/expressions.rst:1919 msgid "expression list" msgstr "" @@ -2580,7 +2584,7 @@ msgstr "" msgid "set expression" msgstr "" -#: reference/expressions.rst:355 reference/expressions.rst:884 +#: reference/expressions.rst:355 reference/expressions.rst:887 msgid "dictionary" msgstr "" @@ -2600,7 +2604,7 @@ msgstr "" msgid "dictionary expression" msgstr "" -#: reference/expressions.rst:955 reference/expressions.rst:1887 +#: reference/expressions.rst:958 reference/expressions.rst:1891 msgid ": (colon)" msgstr "" @@ -2612,11 +2616,11 @@ msgstr "" msgid "in dictionary displays" msgstr "" -#: reference/expressions.rst:1088 reference/expressions.rst:1934 +#: reference/expressions.rst:1091 reference/expressions.rst:1938 msgid "unpacking" msgstr "" -#: reference/expressions.rst:1118 reference/expressions.rst:1226 +#: reference/expressions.rst:1121 reference/expressions.rst:1229 msgid "**" msgstr "" @@ -2624,7 +2628,7 @@ msgstr "" msgid "hashable" msgstr "" -#: reference/expressions.rst:448 reference/expressions.rst:557 +#: reference/expressions.rst:449 reference/expressions.rst:558 msgid "generator" msgstr "" @@ -2632,518 +2636,518 @@ msgstr "" msgid "generator expression" msgstr "" -#: reference/expressions.rst:1206 +#: reference/expressions.rst:1209 msgid "keyword" msgstr "" -#: reference/expressions.rst:644 +#: reference/expressions.rst:647 msgid "yield" msgstr "" -#: reference/expressions.rst:516 +#: reference/expressions.rst:517 msgid "from" msgstr "" -#: reference/expressions.rst:1153 reference/expressions.rst:1887 +#: reference/expressions.rst:1156 reference/expressions.rst:1891 msgid "function" msgstr "" -#: reference/expressions.rst:502 +#: reference/expressions.rst:503 msgid "coroutine" msgstr "" -#: reference/expressions.rst:516 +#: reference/expressions.rst:517 msgid "yield from expression" msgstr "" -#: reference/expressions.rst:569 +#: reference/expressions.rst:570 msgid "StopIteration" msgstr "" -#: reference/expressions.rst:808 +#: reference/expressions.rst:811 msgid "GeneratorExit" msgstr "" -#: reference/expressions.rst:644 +#: reference/expressions.rst:647 msgid "examples" msgstr "" -#: reference/expressions.rst:743 +#: reference/expressions.rst:746 msgid "asynchronous-generator" msgstr "" -#: reference/expressions.rst:753 +#: reference/expressions.rst:756 msgid "StopAsyncIteration" msgstr "" -#: reference/expressions.rst:832 +#: reference/expressions.rst:835 msgid "primary" msgstr "" -#: reference/expressions.rst:846 +#: reference/expressions.rst:849 msgid "attribute" msgstr "" -#: reference/expressions.rst:846 +#: reference/expressions.rst:849 msgid "reference" msgstr "" -#: reference/expressions.rst:846 +#: reference/expressions.rst:849 msgid ". (dot)" msgstr "" -#: reference/expressions.rst:846 +#: reference/expressions.rst:849 msgid "attribute reference" msgstr "" -#: reference/expressions.rst:855 +#: reference/expressions.rst:858 msgid "AttributeError" msgstr "" -#: reference/expressions.rst:855 +#: reference/expressions.rst:858 msgid "module" msgstr "" -#: reference/expressions.rst:880 +#: reference/expressions.rst:883 msgid "subscription" msgstr "" -#: reference/expressions.rst:961 reference/expressions.rst:1735 +#: reference/expressions.rst:964 reference/expressions.rst:1738 msgid "sequence" msgstr "" -#: reference/expressions.rst:884 +#: reference/expressions.rst:887 msgid "mapping" msgstr "" -#: reference/expressions.rst:941 reference/expressions.rst:961 +#: reference/expressions.rst:944 reference/expressions.rst:964 msgid "string" msgstr "" -#: reference/expressions.rst:941 +#: reference/expressions.rst:944 msgid "item" msgstr "" -#: reference/expressions.rst:941 +#: reference/expressions.rst:944 msgid "character" msgstr "" -#: reference/expressions.rst:955 +#: reference/expressions.rst:958 msgid "slicing" msgstr "" -#: reference/expressions.rst:955 +#: reference/expressions.rst:958 msgid "slice" msgstr "" -#: reference/expressions.rst:987 +#: reference/expressions.rst:990 msgid "start (slice object attribute)" msgstr "" -#: reference/expressions.rst:987 +#: reference/expressions.rst:990 msgid "stop (slice object attribute)" msgstr "" -#: reference/expressions.rst:987 +#: reference/expressions.rst:990 msgid "step (slice object attribute)" msgstr "" -#: reference/expressions.rst:1005 +#: reference/expressions.rst:1008 msgid "callable" msgstr "" -#: reference/expressions.rst:1153 reference/expressions.rst:1181 -#: reference/expressions.rst:1198 +#: reference/expressions.rst:1156 reference/expressions.rst:1184 +#: reference/expressions.rst:1201 msgid "call" msgstr "" -#: reference/expressions.rst:1005 +#: reference/expressions.rst:1008 msgid "argument" msgstr "" -#: reference/expressions.rst:1038 +#: reference/expressions.rst:1041 msgid "call semantics" msgstr "" -#: reference/expressions.rst:1005 +#: reference/expressions.rst:1008 msgid "argument list" msgstr "" -#: reference/expressions.rst:1005 +#: reference/expressions.rst:1008 msgid "= (equals)" msgstr "" -#: reference/expressions.rst:1088 reference/expressions.rst:1118 +#: reference/expressions.rst:1091 reference/expressions.rst:1121 msgid "in function calls" msgstr "" -#: reference/expressions.rst:1038 +#: reference/expressions.rst:1041 msgid "parameter" msgstr "" -#: reference/expressions.rst:1323 reference/expressions.rst:1934 +#: reference/expressions.rst:1326 reference/expressions.rst:1938 msgid "* (asterisk)" msgstr "" -#: reference/expressions.rst:1153 +#: reference/expressions.rst:1156 msgid "user-defined" msgstr "" -#: reference/expressions.rst:1153 +#: reference/expressions.rst:1156 msgid "user-defined function" msgstr "" -#: reference/expressions.rst:1167 +#: reference/expressions.rst:1170 msgid "built-in function" msgstr "" -#: reference/expressions.rst:1167 +#: reference/expressions.rst:1170 msgid "method" msgstr "" -#: reference/expressions.rst:1167 +#: reference/expressions.rst:1170 msgid "built-in method" msgstr "" -#: reference/expressions.rst:1181 +#: reference/expressions.rst:1184 msgid "class" msgstr "" -#: reference/expressions.rst:1181 +#: reference/expressions.rst:1184 msgid "class object" msgstr "" -#: reference/expressions.rst:1188 +#: reference/expressions.rst:1191 msgid "class instance" msgstr "" -#: reference/expressions.rst:1198 +#: reference/expressions.rst:1201 msgid "instance" msgstr "" -#: reference/expressions.rst:1198 +#: reference/expressions.rst:1201 msgid "__call__() (object method)" msgstr "" -#: reference/expressions.rst:1226 +#: reference/expressions.rst:1229 msgid "power" msgstr "" -#: reference/expressions.rst:1262 reference/expressions.rst:1426 -#: reference/expressions.rst:1770 +#: reference/expressions.rst:1265 reference/expressions.rst:1429 +#: reference/expressions.rst:1773 msgid "operation" msgstr "" -#: reference/expressions.rst:1271 reference/expressions.rst:1288 -#: reference/expressions.rst:1336 reference/expressions.rst:1366 -#: reference/expressions.rst:1409 reference/expressions.rst:1464 -#: reference/expressions.rst:1481 reference/expressions.rst:1735 -#: reference/expressions.rst:1786 reference/expressions.rst:1796 -#: reference/expressions.rst:1985 +#: reference/expressions.rst:1274 reference/expressions.rst:1291 +#: reference/expressions.rst:1339 reference/expressions.rst:1369 +#: reference/expressions.rst:1412 reference/expressions.rst:1467 +#: reference/expressions.rst:1484 reference/expressions.rst:1738 +#: reference/expressions.rst:1789 reference/expressions.rst:1799 +#: reference/expressions.rst:1989 msgid "operator" msgstr "" -#: reference/expressions.rst:1262 +#: reference/expressions.rst:1265 msgid "unary" msgstr "" -#: reference/expressions.rst:1455 reference/expressions.rst:1472 -#: reference/expressions.rst:1481 +#: reference/expressions.rst:1458 reference/expressions.rst:1475 +#: reference/expressions.rst:1484 msgid "bitwise" msgstr "" -#: reference/expressions.rst:1271 +#: reference/expressions.rst:1274 msgid "negation" msgstr "" -#: reference/expressions.rst:1271 +#: reference/expressions.rst:1274 msgid "minus" msgstr "" -#: reference/expressions.rst:1409 +#: reference/expressions.rst:1412 msgid "- (minus)" msgstr "" -#: reference/expressions.rst:1280 +#: reference/expressions.rst:1283 msgid "unary operator" msgstr "" -#: reference/expressions.rst:1280 +#: reference/expressions.rst:1283 msgid "plus" msgstr "" -#: reference/expressions.rst:1396 +#: reference/expressions.rst:1399 msgid "+ (plus)" msgstr "" -#: reference/expressions.rst:1288 +#: reference/expressions.rst:1291 msgid "inversion" msgstr "" -#: reference/expressions.rst:1288 +#: reference/expressions.rst:1291 msgid "~ (tilde)" msgstr "" -#: reference/expressions.rst:1299 +#: reference/expressions.rst:1302 msgid "TypeError" msgstr "" -#: reference/expressions.rst:1455 +#: reference/expressions.rst:1458 msgid "binary" msgstr "" -#: reference/expressions.rst:1323 +#: reference/expressions.rst:1326 msgid "multiplication" msgstr "" -#: reference/expressions.rst:1336 +#: reference/expressions.rst:1339 msgid "matrix multiplication" msgstr "" -#: reference/expressions.rst:1336 +#: reference/expressions.rst:1339 msgid "@ (at)" msgstr "" -#: reference/expressions.rst:1348 +#: reference/expressions.rst:1351 msgid "ZeroDivisionError" msgstr "" -#: reference/expressions.rst:1348 +#: reference/expressions.rst:1351 msgid "division" msgstr "" -#: reference/expressions.rst:1348 +#: reference/expressions.rst:1351 msgid "/ (slash)" msgstr "" -#: reference/expressions.rst:1348 +#: reference/expressions.rst:1351 msgid "//" msgstr "" -#: reference/expressions.rst:1366 +#: reference/expressions.rst:1369 msgid "modulo" msgstr "" -#: reference/expressions.rst:1366 +#: reference/expressions.rst:1369 msgid "% (percent)" msgstr "" -#: reference/expressions.rst:1396 +#: reference/expressions.rst:1399 msgid "addition" msgstr "" -#: reference/expressions.rst:1409 +#: reference/expressions.rst:1412 msgid "binary operator" msgstr "" -#: reference/expressions.rst:1409 +#: reference/expressions.rst:1412 msgid "subtraction" msgstr "" -#: reference/expressions.rst:1426 +#: reference/expressions.rst:1429 msgid "shifting" msgstr "" -#: reference/expressions.rst:1426 +#: reference/expressions.rst:1429 msgid "<<" msgstr "" -#: reference/expressions.rst:1426 +#: reference/expressions.rst:1429 msgid ">>" msgstr "" -#: reference/expressions.rst:1444 +#: reference/expressions.rst:1447 msgid "ValueError" msgstr "" -#: reference/expressions.rst:1791 +#: reference/expressions.rst:1794 msgid "and" msgstr "" -#: reference/expressions.rst:1464 +#: reference/expressions.rst:1467 msgid "& (ampersand)" msgstr "" -#: reference/expressions.rst:1472 +#: reference/expressions.rst:1475 msgid "xor" msgstr "" -#: reference/expressions.rst:1472 +#: reference/expressions.rst:1475 msgid "exclusive" msgstr "" -#: reference/expressions.rst:1481 reference/expressions.rst:1796 +#: reference/expressions.rst:1484 reference/expressions.rst:1799 msgid "or" msgstr "" -#: reference/expressions.rst:1472 +#: reference/expressions.rst:1475 msgid "^ (caret)" msgstr "" -#: reference/expressions.rst:1481 +#: reference/expressions.rst:1484 msgid "inclusive" msgstr "" -#: reference/expressions.rst:1481 +#: reference/expressions.rst:1484 msgid "| (vertical bar)" msgstr "" -#: reference/expressions.rst:1496 +#: reference/expressions.rst:1499 msgid "comparison" msgstr "" -#: reference/expressions.rst:1496 +#: reference/expressions.rst:1499 msgid "C" msgstr "" -#: reference/expressions.rst:1496 +#: reference/expressions.rst:1499 msgid "language" msgstr "" -#: reference/expressions.rst:1496 +#: reference/expressions.rst:1499 msgid "< (less)" msgstr "" -#: reference/expressions.rst:1496 +#: reference/expressions.rst:1499 msgid "> (greater)" msgstr "" -#: reference/expressions.rst:1496 +#: reference/expressions.rst:1499 msgid "<=" msgstr "" -#: reference/expressions.rst:1496 +#: reference/expressions.rst:1499 msgid ">=" msgstr "" -#: reference/expressions.rst:1496 +#: reference/expressions.rst:1499 msgid "==" msgstr "" -#: reference/expressions.rst:1496 +#: reference/expressions.rst:1499 msgid "!=" msgstr "" -#: reference/expressions.rst:1520 +#: reference/expressions.rst:1523 msgid "chaining" msgstr "" -#: reference/expressions.rst:1520 +#: reference/expressions.rst:1523 msgid "comparisons" msgstr "" -#: reference/expressions.rst:1735 +#: reference/expressions.rst:1738 msgid "in" msgstr "" -#: reference/expressions.rst:1735 +#: reference/expressions.rst:1738 msgid "not in" msgstr "" -#: reference/expressions.rst:1735 +#: reference/expressions.rst:1738 msgid "membership" msgstr "" -#: reference/expressions.rst:1744 +#: reference/expressions.rst:1747 msgid "test" msgstr "" -#: reference/expressions.rst:1744 +#: reference/expressions.rst:1747 msgid "is" msgstr "" -#: reference/expressions.rst:1744 +#: reference/expressions.rst:1747 msgid "is not" msgstr "" -#: reference/expressions.rst:1744 +#: reference/expressions.rst:1747 msgid "identity" msgstr "" -#: reference/expressions.rst:1770 +#: reference/expressions.rst:1773 msgid "Conditional" msgstr "" -#: reference/expressions.rst:1770 +#: reference/expressions.rst:1773 msgid "Boolean" msgstr "" -#: reference/expressions.rst:1786 +#: reference/expressions.rst:1789 msgid "not" msgstr "" -#: reference/expressions.rst:1810 +#: reference/expressions.rst:1813 msgid ":= (colon equals)" msgstr "" -#: reference/expressions.rst:1810 +#: reference/expressions.rst:1813 msgid "assignment expression" msgstr "" -#: reference/expressions.rst:1810 +#: reference/expressions.rst:1813 msgid "walrus operator" msgstr "" -#: reference/expressions.rst:1810 +#: reference/expressions.rst:1813 msgid "named expression" msgstr "" -#: reference/expressions.rst:1810 +#: reference/expressions.rst:1813 msgid "assignment" msgstr "" -#: reference/expressions.rst:1861 +#: reference/expressions.rst:1864 msgid "conditional" msgstr "" -#: reference/expressions.rst:1861 +#: reference/expressions.rst:1864 msgid "ternary" msgstr "" -#: reference/expressions.rst:1861 +#: reference/expressions.rst:1864 msgid "conditional expression" msgstr "" -#: reference/expressions.rst:1861 +#: reference/expressions.rst:1864 msgid "else" msgstr "" -#: reference/expressions.rst:1887 +#: reference/expressions.rst:1891 msgid "lambda" msgstr "" -#: reference/expressions.rst:1887 +#: reference/expressions.rst:1891 msgid "form" msgstr "" -#: reference/expressions.rst:1887 +#: reference/expressions.rst:1891 msgid "anonymous" msgstr "" -#: reference/expressions.rst:1887 +#: reference/expressions.rst:1891 msgid "lambda expression" msgstr "" -#: reference/expressions.rst:1934 +#: reference/expressions.rst:1938 msgid "iterable" msgstr "" -#: reference/expressions.rst:1934 +#: reference/expressions.rst:1938 msgid "in expression lists" msgstr "" -#: reference/expressions.rst:1949 +#: reference/expressions.rst:1953 msgid "trailing" msgstr "" -#: reference/expressions.rst:1964 +#: reference/expressions.rst:1968 msgid "evaluation" msgstr "" -#: reference/expressions.rst:1964 +#: reference/expressions.rst:1968 msgid "order" msgstr "" -#: reference/expressions.rst:1985 +#: reference/expressions.rst:1989 msgid "precedence" msgstr "" diff --git a/reference/grammar.po b/reference/grammar.po index 3a9efa9e..cc556e83 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-05-04 22:06+0300\n" -"PO-Revision-Date: 2025-05-04 22:25+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Marios Giannopoulos \n" "Language-Team: PyGreece \n" "Language: \n" @@ -146,7 +146,7 @@ msgid "" "# ~\n" "# Commit to the current alternative, even if it fails to parse.\n" "# &&e\n" -"# Eager parse e. The parser will not backtrack and will immediately \n" +"# Eager parse e. The parser will not backtrack and will immediately\n" "# fail with SyntaxError if e cannot be parsed.\n" "#\n" "\n" @@ -792,7 +792,7 @@ msgid "" "# Type parameter declaration\n" "# --------------------------\n" "\n" -"type_params[asdl_type_param_seq*]: \n" +"type_params[asdl_type_param_seq*]:\n" " | invalid_type_params\n" " | '[' t=type_param_seq ']' {\n" " CHECK_VERSION(asdl_type_param_seq *, 12, \"Type parameter lists " @@ -1619,7 +1619,7 @@ msgid "" " | a='import' ','.dotted_name+ 'from' dotted_name {\n" " RAISE_SYNTAX_ERROR_STARTING_FROM(a, \"Did you mean to use 'from ... " "import ...' instead?\") }\n" -" | 'import' token=NEWLINE { \n" +" | 'import' token=NEWLINE {\n" " RAISE_SYNTAX_ERROR_STARTING_FROM(token, \"Expected one or more names " "after 'import'\") }\n" "\n" @@ -1627,7 +1627,7 @@ msgid "" " | import_from_as_names ',' NEWLINE {\n" " RAISE_SYNTAX_ERROR(\"trailing comma not allowed without surrounding " "parentheses\") }\n" -" | token=NEWLINE { \n" +" | token=NEWLINE {\n" " RAISE_SYNTAX_ERROR_STARTING_FROM(token, \"Expected one or more names " "after 'import'\") }\n" "\n" @@ -1817,7 +1817,7 @@ msgid "" "invalid_type_params:\n" " | '[' token=']' {\n" " RAISE_SYNTAX_ERROR_STARTING_FROM(\n" -" token, \n" +" token,\n" " \"Type parameter list cannot be empty\")}\n" msgstr "" "# PEG grammar for Python\n" @@ -1910,7 +1910,7 @@ msgstr "" "# ~\n" "# Commit to the current alternative, even if it fails to parse.\n" "# &&e\n" -"# Eager parse e. The parser will not backtrack and will immediately \n" +"# Eager parse e. The parser will not backtrack and will immediately\n" "# fail with SyntaxError if e cannot be parsed.\n" "#\n" "\n" @@ -2556,7 +2556,7 @@ msgstr "" "# Type parameter declaration\n" "# --------------------------\n" "\n" -"type_params[asdl_type_param_seq*]: \n" +"type_params[asdl_type_param_seq*]:\n" " | invalid_type_params\n" " | '[' t=type_param_seq ']' {\n" " CHECK_VERSION(asdl_type_param_seq *, 12, \"Type parameter lists " @@ -3383,7 +3383,7 @@ msgstr "" " | a='import' ','.dotted_name+ 'from' dotted_name {\n" " RAISE_SYNTAX_ERROR_STARTING_FROM(a, \"Did you mean to use 'from ... " "import ...' instead?\") }\n" -" | 'import' token=NEWLINE { \n" +" | 'import' token=NEWLINE {\n" " RAISE_SYNTAX_ERROR_STARTING_FROM(token, \"Expected one or more names " "after 'import'\") }\n" "\n" @@ -3391,7 +3391,7 @@ msgstr "" " | import_from_as_names ',' NEWLINE {\n" " RAISE_SYNTAX_ERROR(\"trailing comma not allowed without surrounding " "parentheses\") }\n" -" | token=NEWLINE { \n" +" | token=NEWLINE {\n" " RAISE_SYNTAX_ERROR_STARTING_FROM(token, \"Expected one or more names " "after 'import'\") }\n" "\n" @@ -3581,5 +3581,5 @@ msgstr "" "invalid_type_params:\n" " | '[' token=']' {\n" " RAISE_SYNTAX_ERROR_STARTING_FROM(\n" -" token, \n" +" token,\n" " \"Type parameter list cannot be empty\")}\n" diff --git a/reference/import.po b/reference/import.po index 49c727c6..2510d292 100644 --- a/reference/import.po +++ b/reference/import.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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/index.po b/reference/index.po index df5ecc0d..bdb51a2a 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 6b37b7f2..7b55b4f7 100644 --- a/reference/introduction.po +++ b/reference/introduction.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: 2024-11-25 12:27+0200\n" "Last-Translator: Stelios Rotas \n" "Language-Team: PyGreece \n" diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 92d58402..7d24507e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -126,7 +126,8 @@ msgstr "" 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-" -"order mark (b'\\xef\\xbb\\xbf') is ignored rather than being a syntax error." +"order mark (``b'\\xef\\xbb\\xbf'``) is ignored rather than being a syntax " +"error." msgstr "" #: reference/lexical_analysis.rst:104 diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index aea5472c..33638f9a 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -496,8 +496,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:471 @@ -920,7 +920,7 @@ msgid "" "the :keyword:`import` statement occurs." msgstr "" -#: reference/simple_stmts.rst:832 +#: reference/simple_stmts.rst:835 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 " @@ -933,14 +933,14 @@ msgid "" "API (such as library modules which were imported and used within the module)." msgstr "" -#: reference/simple_stmts.rst:842 +#: reference/simple_stmts.rst:845 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:849 +#: reference/simple_stmts.rst:852 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 " @@ -957,31 +957,31 @@ msgid "" "the :ref:`relativeimports` section." msgstr "" -#: reference/simple_stmts.rst:863 +#: reference/simple_stmts.rst:866 msgid "" ":func:`importlib.import_module` is provided to support applications that " "determine dynamically the modules to be loaded." msgstr "" -#: reference/simple_stmts.rst:866 +#: reference/simple_stmts.rst:869 msgid "" "Raises an :ref:`auditing event ` ``import`` with arguments " "``module``, ``filename``, ``sys.path``, ``sys.meta_path``, ``sys." "path_hooks``." msgstr "" -#: reference/simple_stmts.rst:871 +#: reference/simple_stmts.rst:874 msgid "Future statements" msgstr "" -#: reference/simple_stmts.rst:877 +#: reference/simple_stmts.rst:880 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:881 +#: reference/simple_stmts.rst:884 msgid "" "The future statement is intended to ease migration to future versions of " "Python that introduce incompatible changes to the language. It allows use " @@ -989,35 +989,35 @@ msgid "" "feature becomes standard." msgstr "" -#: reference/simple_stmts.rst:893 +#: reference/simple_stmts.rst:896 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:896 +#: reference/simple_stmts.rst:899 msgid "the module docstring (if any)," msgstr "" -#: reference/simple_stmts.rst:897 +#: reference/simple_stmts.rst:900 msgid "comments," msgstr "" -#: reference/simple_stmts.rst:898 +#: reference/simple_stmts.rst:901 msgid "blank lines, and" msgstr "" -#: reference/simple_stmts.rst:899 +#: reference/simple_stmts.rst:902 msgid "other future statements." msgstr "" -#: reference/simple_stmts.rst:901 +#: reference/simple_stmts.rst:904 msgid "" "The only feature that requires using the future statement is ``annotations`` " "(see :pep:`563`)." msgstr "" -#: reference/simple_stmts.rst:904 +#: reference/simple_stmts.rst:907 msgid "" "All historical features enabled by the future statement are still recognized " "by Python 3. The list includes ``absolute_import``, ``division``, " @@ -1027,7 +1027,7 @@ msgid "" "compatibility." msgstr "" -#: reference/simple_stmts.rst:911 +#: reference/simple_stmts.rst:914 msgid "" "A future statement is recognized and treated specially at compile time: " "Changes to the semantics of core constructs are often implemented by " @@ -1037,41 +1037,41 @@ msgid "" "cannot be pushed off until runtime." msgstr "" -#: reference/simple_stmts.rst:918 +#: reference/simple_stmts.rst:921 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:922 +#: reference/simple_stmts.rst:925 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:926 +#: reference/simple_stmts.rst:929 msgid "" "The interesting runtime semantics depend on the specific feature enabled by " "the future statement." msgstr "" -#: reference/simple_stmts.rst:929 +#: reference/simple_stmts.rst:932 msgid "Note that there is nothing special about the statement::" msgstr "" -#: reference/simple_stmts.rst:931 +#: reference/simple_stmts.rst:934 msgid "import __future__ [as name]" msgstr "" -#: reference/simple_stmts.rst:933 +#: reference/simple_stmts.rst:936 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:936 +#: reference/simple_stmts.rst:939 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 " @@ -1080,7 +1080,7 @@ msgid "" "--- see the documentation of that function for details." msgstr "" -#: reference/simple_stmts.rst:942 +#: reference/simple_stmts.rst:945 msgid "" "A future statement typed at an interactive interpreter prompt will take " "effect for the rest of the interpreter session. If an interpreter is " @@ -1089,19 +1089,19 @@ msgid "" "interactive session started after the script is executed." msgstr "" -#: reference/simple_stmts.rst:950 +#: reference/simple_stmts.rst:953 msgid ":pep:`236` - Back to the __future__" msgstr "" -#: reference/simple_stmts.rst:951 +#: reference/simple_stmts.rst:954 msgid "The original proposal for the __future__ mechanism." msgstr "" -#: reference/simple_stmts.rst:957 +#: reference/simple_stmts.rst:960 msgid "The :keyword:`!global` statement" msgstr "" -#: reference/simple_stmts.rst:967 +#: reference/simple_stmts.rst:970 msgid "" "The :keyword:`global` statement causes the listed identifiers to be " "interpreted as globals. It would be impossible to assign to a global " @@ -1109,14 +1109,23 @@ msgid "" "globals without being declared global." msgstr "" -#: reference/simple_stmts.rst:972 +#: reference/simple_stmts.rst:975 +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:980 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:981 +#: reference/simple_stmts.rst:991 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` " @@ -1128,11 +1137,11 @@ msgid "" "func:`compile` functions." msgstr "" -#: reference/simple_stmts.rst:993 +#: reference/simple_stmts.rst:1003 msgid "The :keyword:`!nonlocal` statement" msgstr "" -#: reference/simple_stmts.rst:1001 +#: reference/simple_stmts.rst:1011 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 " @@ -1144,64 +1153,64 @@ msgid "" "`SyntaxError` is raised." msgstr "" -#: reference/simple_stmts.rst:1010 +#: reference/simple_stmts.rst:1020 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:1016 +#: reference/simple_stmts.rst:1026 msgid ":pep:`3104` - Access to Names in Outer Scopes" msgstr "" -#: reference/simple_stmts.rst:1017 +#: reference/simple_stmts.rst:1027 msgid "The specification for the :keyword:`nonlocal` statement." msgstr "" -#: reference/simple_stmts.rst:1019 +#: reference/simple_stmts.rst:1029 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:1027 +#: reference/simple_stmts.rst:1037 msgid "The :keyword:`!type` statement" msgstr "" -#: reference/simple_stmts.rst:1034 +#: reference/simple_stmts.rst:1044 msgid "" "The :keyword:`!type` statement declares a type alias, which is an instance " "of :class:`typing.TypeAliasType`." msgstr "" -#: reference/simple_stmts.rst:1037 +#: reference/simple_stmts.rst:1047 msgid "For example, the following statement creates a type alias::" msgstr "" -#: reference/simple_stmts.rst:1039 +#: reference/simple_stmts.rst:1049 msgid "type Point = tuple[float, float]" msgstr "" -#: reference/simple_stmts.rst:1041 +#: reference/simple_stmts.rst:1051 msgid "This code is roughly equivalent to::" msgstr "" -#: reference/simple_stmts.rst:1043 +#: reference/simple_stmts.rst:1053 msgid "" "annotation-def VALUE_OF_Point():\n" " return tuple[float, float]\n" "Point = typing.TypeAliasType(\"Point\", VALUE_OF_Point())" msgstr "" -#: reference/simple_stmts.rst:1047 +#: reference/simple_stmts.rst:1057 msgid "" "``annotation-def`` indicates an :ref:`annotation scope `, " "which behaves mostly like a function, but with several small differences." msgstr "" -#: reference/simple_stmts.rst:1050 +#: reference/simple_stmts.rst:1060 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 " @@ -1210,21 +1219,21 @@ msgid "" "not yet defined." msgstr "" -#: reference/simple_stmts.rst:1056 +#: reference/simple_stmts.rst:1066 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:1059 +#: reference/simple_stmts.rst:1069 msgid ":keyword:`!type` is a :ref:`soft keyword `." msgstr "" -#: reference/simple_stmts.rst:1065 +#: reference/simple_stmts.rst:1075 msgid ":pep:`695` - Type Parameter Syntax" msgstr "" -#: reference/simple_stmts.rst:1066 +#: reference/simple_stmts.rst:1076 msgid "" "Introduced the :keyword:`!type` statement and syntax for generic classes and " "functions." @@ -1237,8 +1246,8 @@ msgstr "" #: reference/simple_stmts.rst:39 reference/simple_stmts.rst:263 #: reference/simple_stmts.rst:382 reference/simple_stmts.rst:447 #: reference/simple_stmts.rst:486 reference/simple_stmts.rst:559 -#: reference/simple_stmts.rst:718 reference/simple_stmts.rst:873 -#: reference/simple_stmts.rst:995 reference/simple_stmts.rst:1029 +#: reference/simple_stmts.rst:718 reference/simple_stmts.rst:876 +#: reference/simple_stmts.rst:1005 reference/simple_stmts.rst:1039 msgid "statement" msgstr "" @@ -1251,7 +1260,7 @@ msgstr "" msgid "list" msgstr "" -#: reference/simple_stmts.rst:976 +#: reference/simple_stmts.rst:986 msgid "built-in function" msgstr "" @@ -1313,12 +1322,12 @@ msgstr "" msgid "assignment" msgstr "" -#: reference/simple_stmts.rst:743 reference/simple_stmts.rst:959 +#: reference/simple_stmts.rst:743 reference/simple_stmts.rst:962 msgid "binding" msgstr "" #: reference/simple_stmts.rst:460 reference/simple_stmts.rst:798 -#: reference/simple_stmts.rst:959 +#: reference/simple_stmts.rst:962 msgid "name" msgstr "" @@ -1338,8 +1347,8 @@ msgstr "" msgid "target" msgstr "" -#: reference/simple_stmts.rst:382 reference/simple_stmts.rst:959 -#: reference/simple_stmts.rst:995 +#: reference/simple_stmts.rst:382 reference/simple_stmts.rst:962 +#: reference/simple_stmts.rst:1005 msgid ", (comma)" msgstr "" @@ -1512,7 +1521,7 @@ msgstr "" msgid "deletion" msgstr "" -#: reference/simple_stmts.rst:959 +#: reference/simple_stmts.rst:962 msgid "global" msgstr "" @@ -1617,7 +1626,7 @@ msgstr "" msgid "continue" msgstr "" -#: reference/simple_stmts.rst:846 +#: reference/simple_stmts.rst:849 msgid "import" msgstr "" @@ -1649,42 +1658,42 @@ msgstr "" msgid "__all__ (optional module attribute)" msgstr "" -#: reference/simple_stmts.rst:846 +#: reference/simple_stmts.rst:849 msgid "relative" msgstr "" -#: reference/simple_stmts.rst:873 +#: reference/simple_stmts.rst:876 msgid "future" msgstr "" -#: reference/simple_stmts.rst:873 +#: reference/simple_stmts.rst:876 msgid "__future__" msgstr "" -#: reference/simple_stmts.rst:873 +#: reference/simple_stmts.rst:876 msgid "future statement" msgstr "" -#: reference/simple_stmts.rst:995 +#: reference/simple_stmts.rst:1005 msgid "identifier list" msgstr "" -#: reference/simple_stmts.rst:976 +#: reference/simple_stmts.rst:986 msgid "exec" msgstr "" -#: reference/simple_stmts.rst:976 +#: reference/simple_stmts.rst:986 msgid "eval" msgstr "" -#: reference/simple_stmts.rst:976 +#: reference/simple_stmts.rst:986 msgid "compile" msgstr "" -#: reference/simple_stmts.rst:995 +#: reference/simple_stmts.rst:1005 msgid "nonlocal" msgstr "" -#: reference/simple_stmts.rst:1029 +#: reference/simple_stmts.rst:1039 msgid "type" msgstr "" diff --git a/reference/toplevel_components.po b/reference/toplevel_components.po index ac65b7df..22b9533d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 17bad871..a0ff9828 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-05-04 22:06+0300\n" -"PO-Revision-Date: 2024-05-08 09:17+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -27,23 +27,23 @@ msgid "In development" msgstr "Υπό ανάπτυξη" #: tools/templates/customsourcelink.html:3 -msgid "This Page" +msgid "This page" msgstr "Αυτή η Σελίδα" #: tools/templates/customsourcelink.html:5 -msgid "Report a Bug" +msgid "Report a bug" msgstr "Ανέφερε ένα Bug" #: tools/templates/customsourcelink.html:8 -msgid "Show Source" -msgstr "Εμφάνιση Πηγής" +msgid "Show source" +msgstr "Εμφάνιση πηγαίου" #: tools/templates/download.html:2 tools/templates/indexsidebar.html:1 msgid "Download" msgstr "Κατεβάστε" #: tools/templates/download.html:30 -msgid "Download Python %(dl_version)s Documentation" +msgid "Download Python %(dl_version)s documentation" msgstr "Κατεβάστε την τεκμηρίωση της Python %(dl_version)s" #: tools/templates/download.html:32 @@ -52,167 +52,135 @@ 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 updates to the pre-built PDFs of the documentation.\n" +"The previously-built archives are still available and may be of use:\n" +"PDF (.zip " +"archive);\n" +"PDF (.tar." +"bz2 archive).\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" +"Τα προηγουμένως κατασκευασμένα αρχεία είναι ακόμα διαθέσιμα και μπορεί να " +"είναι χρήσιμα:\n" +"PDF (.zip " +"archive);\n" +"PDF (.tar." +"bz2 archive).\n" +"Για να δημιουργήσετε ένα αρχείο PDF, ακολουθήστε τις οδηγίες στο\n" +"Developer's Guide\n" +"και εκτελέστε make dist-pdf στον κατάλογο Doc/ " +"μιας αντιγραφής του αποθετηρίου CPython.\n" + +#: tools/templates/download.html:74 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:78 msgid "Problems" msgstr "Προβλήματα" -#: tools/templates/download.html:87 +#: tools/templates/download.html:80 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 +243,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" @@ -467,7 +433,7 @@ msgid "Reporting issues" msgstr "Αναφορά ζητημάτων" #: tools/templates/indexcontent.html:75 -msgid "Contributing to Docs" +msgid "Contributing to docs" msgstr "Συμβολή στην Τεκμηρίωση" #: tools/templates/indexcontent.html:76 @@ -503,23 +469,23 @@ msgid "Other resources" msgstr "Άλλες πηγές" #: tools/templates/indexsidebar.html:12 -msgid "PEP Index" +msgid "PEP index" msgstr "Ευρετήριο PEP" #: tools/templates/indexsidebar.html:13 -msgid "Beginner's Guide" +msgid "Beginner's guide" msgstr "Οδηγός για αρχάριους" #: tools/templates/indexsidebar.html:14 -msgid "Book List" +msgid "Book list" msgstr "Λίστα Βιβλίων" #: tools/templates/indexsidebar.html:15 -msgid "Audio/Visual Talks" +msgid "Audio/visual talks" msgstr "Οπτικοακουστικές Ομιλίες" #: tools/templates/indexsidebar.html:16 -msgid "Python Developer’s Guide" +msgid "Python developer’s guide" msgstr "Οδηγός Προγραμματιστή Python" #: tools/templates/layout.html:6 @@ -549,6 +515,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 78c0a9ae..d0a1f8d9 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" -"PO-Revision-Date: 2024-05-03 22:21+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -39,26 +39,27 @@ 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` για να επιστρέψετε στην κανονική προτροπή." +"χρησιμοποιείται από προεπιλογή ένα νέο διαδραστικό shell από την 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 e84996ef..c141c314 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b5bf4cb5..53211fdd 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: 2025-02-20 00:47+0200\n" "Last-Translator: Anastasios Louka \n" "Language-Team: PyGreece \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`` είναι ένα αντικείμενο μεθόδου και μπορεί να αποθηκευτεί " "και να κληθεί αργότερα. Για παράδειγμα::" @@ -1368,8 +1368,8 @@ msgstr "" "να θέλει να επεκτείνει αντί να αντικαταστήσει απλώς τη μέθοδο βασικής κλάσης " "με το ίδιο όνομα. Υπάρχει ένας απλός τρόπος για να καλέσετε τη μέθοδο " "βασικής κλάσης απευθείας: απλώς καλέστε το ``BaseClassName.methodname(self, " -"arguments)`. Αυτό είναι περιστασιακά χρήσιμο στους χρήστες (Λάβετε υπόψη ότι " -"αυτό λειτουργεί μόνο εάν η βασική κλάση είναι προσβάσιμη ως " +"arguments)``. Αυτό είναι περιστασιακά χρήσιμο στους χρήστες (Λάβετε υπόψη " +"ότι αυτό λειτουργεί μόνο εάν η βασική κλάση είναι προσβάσιμη ως " "``BaseClassName`` στην καθολική εμβέλεια.)" #: tutorial/classes.rst:612 @@ -1397,7 +1397,7 @@ msgid "" "subclass of :class:`int`." msgstr "" "Χρησιμοποιήστε το :func:`issubclass` για να ελέγξετε την κληρονομικότητα " -"κλάσης: Το ``issubclass(bool, int)`` είναι `` True`` αφού το :class:`bool` " +"κλάσης: Το ``issubclass(bool, int)`` είναι ``True`` αφού το :class:`bool` " "είναι υποκλάση του :class:`int`. Ωστόσο, το ``issubclass(float, int)`` είναι " "``False`` αφού το :class:`float` δεν είναι υποκλάση του :class:`int`." diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 1af51fda..b0423e5a 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-05-04 22:06+0300\n" -"PO-Revision-Date: 2024-09-30 23:13+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -83,7 +83,7 @@ msgstr "" "Μπορεί να υπάρχουν μηδέν ή περισσότερα μέρη :keyword:`elif` και το τμήμα :" "keyword:`else` είναι προαιρετικό. To keyword ':keyword:`!elif`' είναι " "συντομογραφία του 'else if', και είναι χρήσιμη για να αποφύγετε την " -"υπερβολική εσοχή. Μια ακολουθία keyword:`!if` ... :keyword:`!elif` ... :" +"υπερβολική εσοχή. Μια ακολουθία :keyword:`!if` ... :keyword:`!elif` ... :" "keyword:`!elif` ... είναι υποκατάστατο των δηλώσεων ``switch`` ή ``case`` " "που υπάρχουν σε άλλες γλώσσες." @@ -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 " @@ -630,13 +645,13 @@ msgstr "" "πρώτο μοτίβο που ταιριάζει και μπορεί επίσης να εξαγάγει στοιχεία (στοιχεία " "ακολουθίας ή ιδιότητες αντικειμένου) από την τιμή σε μεταβλητές." -#: tutorial/controlflow.rst:294 +#: tutorial/controlflow.rst:301 msgid "" "The simplest form compares a subject value against one or more literals::" msgstr "" "Η απλούστερη φόρμα συγκρίνει μια τιμή θέματος με ένα ή περισσότερα literals::" -#: tutorial/controlflow.rst:296 +#: tutorial/controlflow.rst:303 msgid "" "def http_error(status):\n" " match status:\n" @@ -660,7 +675,7 @@ msgstr "" " case _:\n" " return \"Something's wrong with the internet\"" -#: tutorial/controlflow.rst:307 +#: tutorial/controlflow.rst:314 msgid "" "Note the last block: the \"variable name\" ``_`` acts as a *wildcard* and " "never fails to match. If no case matches, none of the branches is executed." @@ -669,14 +684,14 @@ msgstr "" "*μπαλαντέρ* και δεν αποτυγχάνει ποτέ να ταιριάζει. Εάν δεν ταιριάζει κανένα " "case, κανένας από τους κλάδους δεν εκτελείται." -#: tutorial/controlflow.rst:310 +#: tutorial/controlflow.rst:317 msgid "" "You can combine several literals in a single pattern using ``|`` (\"or\")::" msgstr "" "Μπορείτε να συνδυάσετε πολλά γράμματα σε ένα μόνο μοτίβο χρησιμοποιώντας το " "``|`` (\"ή\")::" -#: tutorial/controlflow.rst:312 +#: tutorial/controlflow.rst:319 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:315 +#: tutorial/controlflow.rst:322 msgid "" "Patterns can look like unpacking assignments, and can be used to bind " "variables::" @@ -692,7 +707,7 @@ msgstr "" "Τα μοτίβα μπορεί να μοιάζουν με αναθέσεις unpacking, και μπορούν να " "χρησιμοποιηθούν για τη σύνδεση μεταβλητών::" -#: tutorial/controlflow.rst:318 +#: tutorial/controlflow.rst:325 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:331 +#: tutorial/controlflow.rst:338 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:338 +#: tutorial/controlflow.rst:345 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:342 +#: tutorial/controlflow.rst:349 msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -785,7 +800,7 @@ msgstr "" " case _:\n" " print(\"Not a point\")" -#: tutorial/controlflow.rst:360 +#: tutorial/controlflow.rst:367 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:366 +#: tutorial/controlflow.rst:373 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:371 +#: tutorial/controlflow.rst:378 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:378 +#: tutorial/controlflow.rst:385 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:381 +#: tutorial/controlflow.rst:388 msgid "" "class Point:\n" " __match_args__ = ('x', 'y')\n" @@ -879,7 +894,7 @@ msgstr "" " case _:\n" " print(\"Something else\")" -#: tutorial/controlflow.rst:399 +#: tutorial/controlflow.rst:406 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:403 +#: tutorial/controlflow.rst:410 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:409 +#: tutorial/controlflow.rst:416 msgid "Several other key features of this statement:" msgstr "Πολλά άλλα βασικά χαρακτηριστικά αυτής της δήλωσης:" -#: tutorial/controlflow.rst:411 +#: tutorial/controlflow.rst:418 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:415 +#: tutorial/controlflow.rst:422 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:420 +#: tutorial/controlflow.rst:427 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:425 +#: tutorial/controlflow.rst:432 msgid "Subpatterns may be captured using the ``as`` keyword::" msgstr "" "Τα δευτερεύοντα μοτίβα μπορούν να αποτυπωθούν χρησιμοποιώντας το keyword " "``as``::" -#: tutorial/controlflow.rst:427 +#: tutorial/controlflow.rst:434 msgid "case (Point(x1, y1), Point(x2, y2) as p2): ..." msgstr "case (Point(x1, y1), Point(x2, y2) as p2): ..." -#: tutorial/controlflow.rst:429 +#: tutorial/controlflow.rst:436 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:432 +#: tutorial/controlflow.rst:439 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:435 +#: tutorial/controlflow.rst:442 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:438 +#: tutorial/controlflow.rst:445 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:454 +#: tutorial/controlflow.rst:461 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:460 +#: tutorial/controlflow.rst:467 msgid "Defining Functions" msgstr "Καθορισμός Συναρτήσεων" -#: tutorial/controlflow.rst:462 +#: tutorial/controlflow.rst:469 msgid "" "We can create a function that writes the Fibonacci series to an arbitrary " "boundary::" @@ -1033,7 +1048,7 @@ msgstr "" "Μπορούμε να δημιουργήσουμε μια συνάρτηση που γράφει τη σειρά Fibonacci σε " "ένα αυθαίρετο όριο::" -#: tutorial/controlflow.rst:465 +#: tutorial/controlflow.rst:472 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:482 +#: tutorial/controlflow.rst:489 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:487 +#: tutorial/controlflow.rst:494 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:494 +#: tutorial/controlflow.rst:501 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:505 +#: tutorial/controlflow.rst:512 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:512 +#: tutorial/controlflow.rst:519 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:517 +#: tutorial/controlflow.rst:524 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:523 +#: tutorial/controlflow.rst:530 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:530 +#: tutorial/controlflow.rst:537 msgid "" ">>> fib(0)\n" ">>> print(fib(0))\n" @@ -1188,7 +1203,7 @@ msgstr "" ">>> print(fib(0))\n" "None" -#: tutorial/controlflow.rst:534 +#: tutorial/controlflow.rst:541 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:537 +#: tutorial/controlflow.rst:544 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:550 +#: tutorial/controlflow.rst:557 msgid "This example, as usual, demonstrates some new Python features:" msgstr "" "Αυτό το παράδειγμα, ως συνήθως, δείχνει μερικά νέα χαρακτηριστικά Python:" -#: tutorial/controlflow.rst:552 +#: tutorial/controlflow.rst:559 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:556 +#: tutorial/controlflow.rst:563 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:571 +#: tutorial/controlflow.rst:578 msgid "More on Defining Functions" msgstr "Περισσότερο για τον Καθορισμό Συναρτήσεων" -#: tutorial/controlflow.rst:573 +#: tutorial/controlflow.rst:580 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:580 +#: tutorial/controlflow.rst:587 msgid "Default Argument Values" msgstr "Προεπιλεγμένες Τιμές Ορίσματος" -#: tutorial/controlflow.rst:582 +#: tutorial/controlflow.rst:589 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:586 +#: tutorial/controlflow.rst:593 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:598 +#: tutorial/controlflow.rst:605 msgid "This function can be called in several ways:" msgstr "Αυτή η συνάρτηση μπορεί να κληθεί με διάφορους τρόπους:" -#: tutorial/controlflow.rst:600 +#: tutorial/controlflow.rst:607 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:602 +#: tutorial/controlflow.rst:609 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:604 +#: tutorial/controlflow.rst:611 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:607 +#: tutorial/controlflow.rst:614 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:610 +#: tutorial/controlflow.rst:617 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:613 +#: tutorial/controlflow.rst:620 msgid "" "i = 5\n" "\n" @@ -1379,11 +1394,11 @@ msgstr "" "i = 6\n" "f()" -#: tutorial/controlflow.rst:621 +#: tutorial/controlflow.rst:628 msgid "will print ``5``." msgstr "θα εκτυπώσει ``5``." -#: tutorial/controlflow.rst:623 +#: tutorial/controlflow.rst:630 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:628 +#: tutorial/controlflow.rst:635 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:636 +#: tutorial/controlflow.rst:643 msgid "This will print ::" msgstr "Αυτό θα εκτυπώσει ::" -#: tutorial/controlflow.rst:638 +#: tutorial/controlflow.rst:645 msgid "" "[1]\n" "[1, 2]\n" @@ -1428,7 +1443,7 @@ msgstr "" "[1, 2]\n" "[1, 2, 3]" -#: tutorial/controlflow.rst:642 +#: tutorial/controlflow.rst:649 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:645 +#: tutorial/controlflow.rst:652 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:655 +#: tutorial/controlflow.rst:662 msgid "Keyword Arguments" msgstr "Ορίσματα Keyword" -#: tutorial/controlflow.rst:657 +#: tutorial/controlflow.rst:664 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:660 +#: tutorial/controlflow.rst:667 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:666 +#: tutorial/controlflow.rst:673 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:670 +#: tutorial/controlflow.rst:677 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:677 +#: tutorial/controlflow.rst:684 msgid "but all the following calls would be invalid::" msgstr "αλλά όλες οι ακόλουθες κλήσεις θα ήταν άκυρες::" -#: tutorial/controlflow.rst:679 +#: tutorial/controlflow.rst:686 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:684 +#: tutorial/controlflow.rst:691 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:692 +#: tutorial/controlflow.rst:699 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:700 +#: tutorial/controlflow.rst:707 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:708 +#: tutorial/controlflow.rst:715 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:717 +#: tutorial/controlflow.rst:724 msgid "It could be called like this::" msgstr "Μπορεί να καλεστεί κάπως έτσι::" -#: tutorial/controlflow.rst:719 +#: tutorial/controlflow.rst:726 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:725 +#: tutorial/controlflow.rst:732 msgid "and of course it would print:" msgstr "και φυσικά θα εκτυπώσει:" -#: tutorial/controlflow.rst:727 +#: tutorial/controlflow.rst:734 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:738 +#: tutorial/controlflow.rst:745 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:742 +#: tutorial/controlflow.rst:749 msgid "Special parameters" msgstr "Ειδικές παράμετροι" -#: tutorial/controlflow.rst:744 +#: tutorial/controlflow.rst:751 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:750 +#: tutorial/controlflow.rst:757 msgid "A function definition may look like:" msgstr "Ένας ορισμός συνάρτησης μπορεί να μοιάζει με αυτό:" -#: tutorial/controlflow.rst:752 +#: tutorial/controlflow.rst:759 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:761 +#: tutorial/controlflow.rst:768 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:768 +#: tutorial/controlflow.rst:775 msgid "Positional-or-Keyword Arguments" msgstr "Παράμετροι Θέσης ή Keyword" -#: tutorial/controlflow.rst:770 +#: tutorial/controlflow.rst:777 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:775 +#: tutorial/controlflow.rst:782 msgid "Positional-Only Parameters" msgstr "Παράμετροι Μόνο-Θέσης" -#: tutorial/controlflow.rst:777 +#: tutorial/controlflow.rst:784 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 " @@ -1737,11 +1752,11 @@ msgstr "" "επισημάνετε ορισμένες παραμέτρους ως *μόνο θέσης*.Εάν *μόνο θέσης*, η σειρά " "των παραμέτρων έχει σημασία και οι παράμετροι δεν μπορούν να μεταβιβαστούν " "με keyword. Οι παράμετροι μόνο θέσης τοποθετούνται πριν από ένα ``/`` (προς " -"τα εμπρός-κάθετος). Το ``/``χρησιμοποιείται για να διαχωρίσει λογικά τις " -"παραμέτρους μόνο θέσης από τις υπόλοιπες παραμέτρους. Εάν δεν υπάερχει το ``/" +"τα εμπρός-κάθετος). Το ``/`` χρησιμοποιείται για να διαχωρίσει λογικά τις " +"παραμέτρους μόνο θέσης από τις υπόλοιπες παραμέτρους. Εάν δεν υπάρχει το ``/" "`` στον ορισμό της συνάρτησης, δεν υπάρχουν παράμετροι μόνο θέσης." -#: tutorial/controlflow.rst:785 +#: tutorial/controlflow.rst:792 msgid "" "Parameters following the ``/`` may be *positional-or-keyword* or *keyword-" "only*." @@ -1749,11 +1764,11 @@ msgstr "" "Οι παράμετροι που ακολουθούν το ``/`` μπορεί να είναι *θέσης ή keyword* ή " "*μόνο keyword*." -#: tutorial/controlflow.rst:789 +#: tutorial/controlflow.rst:796 msgid "Keyword-Only Arguments" msgstr "Ορίσματα μόνο Keyword" -#: tutorial/controlflow.rst:791 +#: tutorial/controlflow.rst:798 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:797 +#: tutorial/controlflow.rst:804 msgid "Function Examples" msgstr "Παραδείγματα Συναρτήσεων" -#: tutorial/controlflow.rst:799 +#: tutorial/controlflow.rst:806 msgid "" "Consider the following example function definitions paying close attention " "to the markers ``/`` and ``*``::" @@ -1775,7 +1790,7 @@ msgstr "" "Σκεφτείτε τα ακόλουθα παραδείγματα ορισμών συναρτήσεων δίνοντας ιδιαίτερη " "προσοχή στους δείκτες ``/`` και ``*``::" -#: tutorial/controlflow.rst:802 +#: tutorial/controlflow.rst:809 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:815 +#: tutorial/controlflow.rst:822 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:819 +#: tutorial/controlflow.rst:826 msgid "" ">>> standard_arg(2)\n" "2\n" @@ -1825,7 +1840,7 @@ msgstr "" ">>> standard_arg(arg=2)\n" "2" -#: tutorial/controlflow.rst:825 +#: tutorial/controlflow.rst:832 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:828 +#: tutorial/controlflow.rst:835 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:836 +#: tutorial/controlflow.rst:843 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:839 +#: tutorial/controlflow.rst:846 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:847 +#: tutorial/controlflow.rst:854 msgid "" "And the last uses all three calling conventions in the same function " "definition::" @@ -1887,7 +1902,7 @@ msgstr "" "Και το τελευταίο χρησιμοποιεί και τις τρεις συμβάσεις κλήσης στον ίδιο " "ορισμό συνάρτησης::" -#: tutorial/controlflow.rst:850 +#: tutorial/controlflow.rst:857 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:867 +#: tutorial/controlflow.rst:874 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:869 +#: tutorial/controlflow.rst:876 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:872 +#: tutorial/controlflow.rst:879 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:875 +#: tutorial/controlflow.rst:882 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:881 +#: tutorial/controlflow.rst:888 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:883 +#: tutorial/controlflow.rst:890 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:889 +#: tutorial/controlflow.rst:896 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:894 +#: tutorial/controlflow.rst:901 msgid "Recap" msgstr "Ανακεφαλαίωση" -#: tutorial/controlflow.rst:896 +#: tutorial/controlflow.rst:903 msgid "" "The use case will determine which parameters to use in the function " "definition::" @@ -2008,15 +2023,15 @@ msgstr "" "Η περίπτωση χρήσης θα καθορίσει ποιες παραμέτρους θα χρησιμοποιηθούν στον " "ορισμό της συνάρτησης::" -#: tutorial/controlflow.rst:898 +#: tutorial/controlflow.rst:905 msgid "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" msgstr "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" -#: tutorial/controlflow.rst:900 +#: tutorial/controlflow.rst:907 msgid "As guidance:" msgstr "Ως καθοδήγηση:" -#: tutorial/controlflow.rst:902 +#: tutorial/controlflow.rst:909 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:907 +#: tutorial/controlflow.rst:914 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:910 +#: tutorial/controlflow.rst:917 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:916 +#: tutorial/controlflow.rst:923 msgid "Arbitrary Argument Lists" msgstr "Λίστες Αυθαίρετων Ορισμάτων" -#: tutorial/controlflow.rst:921 +#: tutorial/controlflow.rst:928 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:926 +#: tutorial/controlflow.rst:933 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:930 +#: tutorial/controlflow.rst:937 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:936 +#: tutorial/controlflow.rst:943 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:947 +#: tutorial/controlflow.rst:954 msgid "Unpacking Argument Lists" msgstr "Unpacking Λίστες Ορισμάτων" -#: tutorial/controlflow.rst:949 +#: tutorial/controlflow.rst:956 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:956 +#: tutorial/controlflow.rst:963 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:965 +#: tutorial/controlflow.rst:972 msgid "" "In the same fashion, dictionaries can deliver keyword arguments with the " "``**``\\ -operator::" @@ -2152,7 +2167,7 @@ msgstr "" "Με τον ίδιο τρόπο, τα λεξικά μπορούν να παραδίδουν keyword ορίσματα με τον " "``**``\\ -τελεστή::" -#: tutorial/controlflow.rst:968 +#: tutorial/controlflow.rst:975 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:981 +#: tutorial/controlflow.rst:988 msgid "Lambda Expressions" msgstr "Εκφράσεις Lambda" -#: tutorial/controlflow.rst:983 +#: tutorial/controlflow.rst:990 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:991 +#: tutorial/controlflow.rst:998 msgid "" ">>> def make_incrementor(n):\n" "... return lambda x: x + n\n" @@ -2218,16 +2233,18 @@ msgstr "" ">>> f(1)\n" "43" -#: tutorial/controlflow.rst:1000 +#: tutorial/controlflow.rst:1007 msgid "" "The above example uses a lambda expression to return a function. Another " -"use is to pass a small function as an argument::" +"use is to pass a small function as an argument. For instance, :meth:`list." +"sort` takes a sorting key function *key* which can be a lambda function::" msgstr "" "Το παραπάνω παράδειγμα χρησιμοποιεί μια έκφραση lambda για να επιστρέψει μια " "συνάρτηση. Μια άλλη χρήση είναι η μετάδοση μιας μικρής συνάρτησης ως " -"όρισμα::" +"όρισμα. Για παράδειγμα, η μέθοδος :meth:`~list.sort` παίρνει μια συνάρτηση " +"κλειδιού ταξινόμησης *key* η οποία μπορεί να είναι μια συνάρτηση lambda::" -#: tutorial/controlflow.rst:1003 +#: tutorial/controlflow.rst:1011 msgid "" ">>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]\n" ">>> pairs.sort(key=lambda pair: pair[1])\n" @@ -2239,11 +2256,11 @@ msgstr "" ">>> pairs\n" "[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]" -#: tutorial/controlflow.rst:1012 +#: tutorial/controlflow.rst:1020 msgid "Documentation Strings" msgstr "Συμβολοσειρές Τεκμηρίωσης" -#: tutorial/controlflow.rst:1019 +#: tutorial/controlflow.rst:1027 msgid "" "Here are some conventions about the content and formatting of documentation " "strings." @@ -2251,7 +2268,7 @@ msgstr "" "Ακολουθούν ορισμένες συμβάσεις σχετικά με το περιεχόμενο και τη μορφοποίηση " "των συμβολοσειρών τεκμηρίωσης." -#: tutorial/controlflow.rst:1022 +#: tutorial/controlflow.rst:1030 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 " @@ -2265,7 +2282,7 @@ msgstr "" "εάν το όνομα είναι ρήμα που περιγράφει τη λειτουργία της συνάρτησης). Αυτή " "η γραμμή πρέπει να ξεκινά με κεφαλαίο γράμμα και να τελειώνει με τελεία." -#: tutorial/controlflow.rst:1028 +#: tutorial/controlflow.rst:1036 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. " @@ -2278,7 +2295,7 @@ msgstr "" "παράγραφοι που περιγράφουν τις συμβάσεις κλήσης του αντικειμένου, τις " "παρενέργειές του κ.λπ.." -#: tutorial/controlflow.rst:1033 +#: tutorial/controlflow.rst:1041 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 " @@ -2306,11 +2323,11 @@ msgstr "" "αρχικό κενό τους. Η ισοδυναμία των κενών διαστημάτων θα πρέπει να ελέγχεται " "μετά την επέκταση των καρτελών (σε 8 κενά, κανονικά)." -#: tutorial/controlflow.rst:1045 +#: tutorial/controlflow.rst:1053 msgid "Here is an example of a multi-line docstring::" msgstr "Ακολουθεί ένα παράδειγμα ενός πολλαπλών γραμμών docstring::" -#: tutorial/controlflow.rst:1047 +#: tutorial/controlflow.rst:1055 msgid "" ">>> def my_function():\n" "... \"\"\"Do nothing, but document it.\n" @@ -2322,7 +2339,7 @@ msgid "" ">>> print(my_function.__doc__)\n" "Do nothing, but document it.\n" "\n" -" No, really, it doesn't do anything." +"No, really, it doesn't do anything." msgstr "" ">>> def my_function():\n" "... \"\"\"Do nothing, but document it.\n" @@ -2334,13 +2351,13 @@ msgstr "" ">>> print(my_function.__doc__)\n" "Do nothing, but document it.\n" "\n" -" No, really, it doesn't do anything." +"No, really, it doesn't do anything." -#: tutorial/controlflow.rst:1063 +#: tutorial/controlflow.rst:1071 msgid "Function Annotations" msgstr "Annotations Συναρτήσεων" -#: tutorial/controlflow.rst:1071 +#: tutorial/controlflow.rst:1079 msgid "" ":ref:`Function annotations ` are completely optional metadata " "information about the types used by user-defined functions (see :pep:`3107` " @@ -2351,7 +2368,7 @@ msgstr "" "συναρτήσεις που καθορίζονται από το χρήστη (δείτε :pep:`3107` και :pep:`484` " "για περισσότερες πληροφορίες)." -#: tutorial/controlflow.rst:1075 +#: tutorial/controlflow.rst:1083 msgid "" ":term:`Annotations ` are stored in the :attr:`!" "__annotations__` attribute of the function as a dictionary and have no " @@ -2373,7 +2390,7 @@ msgstr "" "ένα απαιτούμενο όρισμα, ένα προαιρετικό όρισμα και την επιστρεφόμενη τιμή σε " "annotations::" -#: tutorial/controlflow.rst:1084 +#: tutorial/controlflow.rst:1092 msgid "" ">>> def f(ham: str, eggs: str = 'eggs') -> str:\n" "... print(\"Annotations:\", f.__annotations__)\n" @@ -2397,11 +2414,11 @@ msgstr "" "Arguments: spam eggs\n" "'spam and eggs'" -#: tutorial/controlflow.rst:1097 +#: tutorial/controlflow.rst:1105 msgid "Intermezzo: Coding Style" msgstr "Intermezzo: Στυλ Κώδικα" -#: tutorial/controlflow.rst:1102 +#: tutorial/controlflow.rst:1110 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 " @@ -2417,7 +2434,7 @@ msgstr "" "πάντα μια καλή ιδέα και η υιοθέτηση ενός ωραίου στυλ κώδικα βοηθάει πάρα " "πολύ σε αυτό." -#: tutorial/controlflow.rst:1108 +#: tutorial/controlflow.rst:1116 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 " @@ -2429,11 +2446,11 @@ msgstr "" "κώδικα. Κάθε προγραμματιστής Python θα πρέπει να το διαβάσει κάποια στιγμή· " "εδώ είναι τα πιο σημαντικό σημεία που εξάγονται για εσάς:" -#: tutorial/controlflow.rst:1113 +#: tutorial/controlflow.rst:1121 msgid "Use 4-space indentation, and no tabs." msgstr "Χρησιμοποιήστε εσοχή 4 διαστημάτων και όχι tabs." -#: tutorial/controlflow.rst:1115 +#: tutorial/controlflow.rst:1123 msgid "" "4 spaces are a good compromise between small indentation (allows greater " "nesting depth) and large indentation (easier to read). Tabs introduce " @@ -2444,11 +2461,11 @@ msgstr "" "ανάγνωση). Τα tabs δημιουργούν σύγχυση, και είναι καλύτερο να παραμείνουν " "απέξω." -#: tutorial/controlflow.rst:1119 +#: tutorial/controlflow.rst:1127 msgid "Wrap lines so that they don't exceed 79 characters." msgstr "Τυλίξτε τις γραμμές έτσι ώστε να μην υπερβαίνουν τους 79 χαρακτήρες." -#: tutorial/controlflow.rst:1121 +#: tutorial/controlflow.rst:1129 msgid "" "This helps users with small displays and makes it possible to have several " "code files side-by-side on larger displays." @@ -2456,7 +2473,7 @@ msgstr "" "Αυτό βοηθά του χρήστες με μικρές οθόνες και καθιστά δυνατή την ύπαρξη πολλών " "αρχείων κώδικα δίπλα-δίπλα σε μεγαλύτερες οθόνες." -#: tutorial/controlflow.rst:1124 +#: tutorial/controlflow.rst:1132 msgid "" "Use blank lines to separate functions and classes, and larger blocks of code " "inside functions." @@ -2464,15 +2481,15 @@ msgstr "" "Χρησιμοποιείστε κενές γραμμές για να διαχωρίσετε συναρτήσεις και κλάσεις και " "μεγαλύτερα μπλοκ κώδικα μέσα συναρτήσεις." -#: tutorial/controlflow.rst:1127 +#: tutorial/controlflow.rst:1135 msgid "When possible, put comments on a line of their own." msgstr "Όταν είναι δυνατόν, βάλτε σχόλια σε μια δική τους γραμμή." -#: tutorial/controlflow.rst:1129 +#: tutorial/controlflow.rst:1137 msgid "Use docstrings." msgstr "Χρησιμοποιήστε docstrings." -#: tutorial/controlflow.rst:1131 +#: tutorial/controlflow.rst:1139 msgid "" "Use spaces around operators and after commas, but not directly inside " "bracketing constructs: ``a = f(1, 2) + g(3, 4)``." @@ -2480,7 +2497,7 @@ msgstr "" "Χρησιμοποιήστε κενά γύρω από τελεστές και μετά από κόμματα, αλλά όχι " "απευθείας μέσα δε δομές αγκύλων: ``a = f(1, 2) + g(3, 4)``." -#: tutorial/controlflow.rst:1134 +#: tutorial/controlflow.rst:1142 msgid "" "Name your classes and functions consistently; the convention is to use " "``UpperCamelCase`` for classes and ``lowercase_with_underscores`` for " @@ -2494,7 +2511,7 @@ msgstr "" "(δείτε :ref:`tut-firstclasses` για περισσότερα σχετικά με τις κλάσεις και " "τις μεθόδους)." -#: tutorial/controlflow.rst:1139 +#: tutorial/controlflow.rst:1147 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 " @@ -2504,7 +2521,7 @@ msgstr "" "να χρησιμοποιηθεί σε διεθνή περιβάλλοντα. Η προεπιλογή της Python, UTF-8, ή " "ακόμα και το απλό ASCII λειτουργούν καλύτερα σε κάθε περίπτωση." -#: tutorial/controlflow.rst:1143 +#: tutorial/controlflow.rst:1151 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 " @@ -2514,11 +2531,11 @@ msgstr "" "εάν υπάρχει μόνο η παραμικρή πιθανότητα οι άνθρωποι που μιλούν διαφορετική " "γλώσσα να διαβάσουν ή να διατηρήσουν τον κώδικα." -#: tutorial/controlflow.rst:1149 +#: tutorial/controlflow.rst:1157 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: tutorial/controlflow.rst:1150 +#: tutorial/controlflow.rst:1158 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 " @@ -2537,55 +2554,63 @@ msgstr "statement" msgid "for" msgstr "for" -#: tutorial/controlflow.rst:1014 +#: tutorial/controlflow.rst:254 +msgid "..." +msgstr "..." + +#: tutorial/controlflow.rst:254 +msgid "ellipsis literal" +msgstr "ellipsis literal" + +#: tutorial/controlflow.rst:1022 msgid "documentation strings" msgstr "documentation strings" -#: tutorial/controlflow.rst:1014 +#: tutorial/controlflow.rst:1022 msgid "docstrings" msgstr "docstrings" -#: tutorial/controlflow.rst:1014 +#: tutorial/controlflow.rst:1022 msgid "strings, documentation" msgstr "strings, documentation" -#: tutorial/controlflow.rst:918 +#: tutorial/controlflow.rst:925 msgid "* (asterisk)" msgstr "* (αστερίσκος)" -#: tutorial/controlflow.rst:962 +#: tutorial/controlflow.rst:969 msgid "in function calls" msgstr "in function calls" -#: tutorial/controlflow.rst:962 +#: tutorial/controlflow.rst:969 msgid "**" msgstr "**" -#: tutorial/controlflow.rst:1066 +#: tutorial/controlflow.rst:1074 msgid "function" msgstr "function" -#: tutorial/controlflow.rst:1066 +#: tutorial/controlflow.rst:1074 msgid "annotations" msgstr "annotations" -#: tutorial/controlflow.rst:1066 +#: tutorial/controlflow.rst:1074 msgid "->" msgstr "->" -#: tutorial/controlflow.rst:1066 +#: tutorial/controlflow.rst:1074 msgid "function annotations" msgstr "function annotations" -#: tutorial/controlflow.rst:1066 +#: tutorial/controlflow.rst:1074 msgid ": (colon)" msgstr ": (colon)" -#: tutorial/controlflow.rst:1100 +#: tutorial/controlflow.rst:1108 msgid "coding" msgstr "coding" -#: tutorial/controlflow.rst:1100 +#: tutorial/controlflow.rst:1108 msgid "style" msgstr "style" diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index 678485c7..5406a9ac 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-05-04 22:06+0300\n" -"PO-Revision-Date: 2024-09-18 17:32+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+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. Για παράδειγμα::" +"στην κορυφή της στοίβας (stack), χρησιμοποιήστε τη :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,29 @@ 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 +1063,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 +1075,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 +1100,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 +1119,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 +1127,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 +1135,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 +1143,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 +1151,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 +1159,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 +1167,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 +1179,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 +1195,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 +1204,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 +1220,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 +1228,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 +1248,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 +1256,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 +1276,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 +1285,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 +1309,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 +1321,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 +1341,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 +1349,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 +1371,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 +1383,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 +1397,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 +1406,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 +1423,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 +1440,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 +1448,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 +1460,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 +1539,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 203c4905..d86550d1 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a8829192..ee6f6b4c 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1bfc9732..6c0ad2f3 100644 --- a/tutorial/index.po +++ b/tutorial/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: 2024-12-10 22:14+0300\n" "Last-Translator: Dimitrios Papadopoulos\n" "Language-Team: PyGreece \n" @@ -23,6 +23,14 @@ msgstr "Το Python Tutorial" #: 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 "" +"Αυτό το tutorial είναι σχεδιασμένο για *προγραμματιστές* που είναι νέοι στη " +"γλώσσα Python, **όχι** για *αρχάριους* που είναι νέοι στον προγραμματισμό." + +#: tutorial/index.rst:11 +msgid "" "Python is an easy to learn, powerful programming language. It has efficient " "high-level data structures and a simple but effective approach to object-" "oriented programming. Python's elegant syntax and dynamic typing, together " @@ -36,22 +44,22 @@ msgstr "" "διερμηνευμένη φύση της, την καθιστούν ιδανική γλώσσα για scripting και " "ταχεία ανάπτυξη εφαρμογών σε πολλούς τομείς στις περισσότερες πλατφόρμες." -#: tutorial/index.rst:13 +#: tutorial/index.rst:17 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 "" "Ο διερμηνέας της Python και η εκτεταμένη τυπική (standard) βιβλιοθήκη " "διατίθενται ελεύθερα σε πηγαία ή δυαδική μορφή για όλες τις κύριες " -"πλατφόρμες από την ιστοσελίδα της Python, https://www.python.org/ και " +"πλατφόρμες από την ιστοσελίδα της Python, https://www.python.org/, και " "μπορούν να διανεμηθούν ελεύθερα. Ο ίδιος ιστότοπος περιέχει επίσης διανομές " "και δείκτες σε πολλά δωρεάν modules τρίτων, προγράμματα και εργαλεία Python, " "καθώς και πρόσθετη τεκμηρίωση." -#: tutorial/index.rst:19 +#: tutorial/index.rst:23 msgid "" "The Python interpreter is easily extended with new functions and data types " "implemented in C or C++ (or other languages callable from C). Python is also " @@ -62,19 +70,22 @@ msgstr "" "κληθούν από τη C). Η Python είναι επίσης κατάλληλη ως γλώσσα επέκτασης για " "προσαρμόσιμες εφαρμογές." -#: tutorial/index.rst:23 +#: tutorial/index.rst:27 msgid "" "This tutorial introduces the reader informally to the basic concepts and " -"features of the Python language and system. It helps to have a Python " -"interpreter handy for hands-on experience, but all examples are self-" +"features of the Python language and system. Be aware that it expects you to " +"have a basic understanding of programming in general. It helps to have a " +"Python interpreter handy for hands-on experience, but all examples are self-" "contained, so the tutorial can be read off-line as well." msgstr "" "Αυτό το tutorial εισάγει τον αναγνώστη ανεπίσημα στις βασικές έννοιες και " -"δυνατότητες της γλώσσας και του συστήματος Python. Βοηθάει να έχετε πρόχειρο " -"έναν διερμηνέα Python για πρακτική εμπειρία, αλλά όλα τα παραδείγματα είναι " -"αυτοτελή, οπότε το tutorial μπορεί να διαβαστεί και εκτός σύνδεσης." +"χαρακτηριστικά της γλώσσας και του συστήματος Python. Να είστε ενήμεροι ότι " +"απαιτεί από εσάς να έχετε μια βασική κατανόηση του προγραμματισμού γενικά. " +"Βοηθάει να έχετε έναν διερμηνέα Python διαθέσιμο για πρακτική εμπειρία, αλλά " +"όλα τα παραδείγματα είναι αυτόνομα, οπότε το tutorial μπορεί να διαβαστεί " +"και εκτός σύνδεσης." -#: tutorial/index.rst:28 +#: tutorial/index.rst:33 msgid "" "For a description of standard objects and modules, see :ref:`library-" "index`. :ref:`reference-index` gives a more formal definition of the " @@ -87,7 +98,7 @@ msgstr "" "index` και το :ref:`c-api-index`. Υπάρχουν επίσης αρκετά βιβλία που " "καλύπτουν την Python σε βάθος." -#: tutorial/index.rst:33 +#: tutorial/index.rst:38 msgid "" "This tutorial does not attempt to be comprehensive and cover every single " "feature, or even every commonly used feature. Instead, it introduces many of " @@ -105,6 +116,6 @@ msgstr "" "για τα διάφoρα modules βιβλιοθηκών Python που περιγράφονται στο :ref:" "`library-index`." -#: tutorial/index.rst:40 +#: tutorial/index.rst:45 msgid "The :ref:`glossary` is also worth going through." msgstr "Αξίζει επίσης να διαβάσετε το :ref:`glossary`." diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index bc7f67b8..a7775f10 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: 2024-09-20 11:10+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" diff --git a/tutorial/interactive.po b/tutorial/interactive.po index 4d81b27b..8bada792 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 69bbf1f5..233a0a88 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: 2025-05-04 22:16+0000\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: LANGUAGE \n" @@ -186,7 +186,7 @@ msgstr "" "``sys.argv[0]`` είναι μια κενή συμβολοσειρά. Όταν το όνομα του script " "δίνεται ως ``'-'`` (που σημαίνει standard είσοδος), το ``sys.argv[0]`` " "ορίζεται ως ``'-'``. Όταν χρησιμοποιείται η *εντολή* :option:`-c`, το ``sys." -"argv[0]``ορίζεται σε ``'-c'``. Όταν χρησιμοποιείται η *εντολή* :option:`-" +"argv[0]`` ορίζεται σε ``'-c'``. Όταν χρησιμοποιείται η *εντολή* :option:`-" "m` , το ``sys.argv[0]`` ορίζεται ως το πλήρες όνομα του module που " "βρίσκεται. Οι επιλογές που βρέθηκαν μετά την *εντολή* :option:`-c` ή το :" "option:`-m` *module* δεν καταναλώνονται από τον επεξεργαστή επιλογών του " diff --git a/tutorial/introduction.po b/tutorial/introduction.po index 45d1985b..6f7c7bcc 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: 2025-02-13 17:17+0001\n" "Last-Translator: Lysandros Nikolaou \n" "Language-Team: PyGreece \n" @@ -40,17 +40,16 @@ msgstr "" #: tutorial/introduction.rst:16 msgid "" -"You can toggle the display of prompts and output by clicking on ``>>>`` in " -"the upper-right corner of an example box. If you hide the prompts and " -"output for an example, then you can easily copy and paste the input lines " -"into your interpreter." +"You can use the \"Copy\" button (it appears in the upper-right corner when " +"hovering over or tapping a code example), which strips prompts and omits " +"output, to copy and paste the input lines into your interpreter." msgstr "" -"Μπορείτε να αλλάξετε την εμφάνιση των prompts και της εξόδου κάνοντας κλικ " -"στο ``>>>>`` στην επάνω δεξιά γωνία ενός πλαισίου παραδείγματος. Εάν " -"αποκρύψετε τα prompts και την έξοδο για ένα παράδειγμα, τότε μπορείτε εύκολα " -"να αντιγράψετε και να επικολλήσετε τις γραμμές εισαγωγής στον διερμηνέα σας." +"Μπορείτε να χρησιμοποιήσετε το κουμπί \"Copy\" (εμφανίζεται στην επάνω δεξιά " +"γωνία όταν περνάτε το ποντίκι πάνω από ή πατάτε ένα παράδειγμα κώδικα), το " +"οποίο αφαιρεί τα prompts και παραλείπει την έξοδο, για να αντιγράψετε και να " +"επικολλήσετε τις γραμμές εισαγωγής στον διερμηνέα σας." -#: tutorial/introduction.rst:23 +#: tutorial/introduction.rst:22 msgid "" "Many of the examples in this manual, even those entered at the interactive " "prompt, include comments. Comments in Python start with the hash character, " @@ -70,11 +69,11 @@ msgstr "" "ερμηνεύονται από την Python, μπορούν να παραλείπονται κατά την πληκτρολόγηση " "παραδειγμάτων." -#: tutorial/introduction.rst:31 +#: tutorial/introduction.rst:30 msgid "Some examples::" msgstr "Μερικά παραδείγματα::" -#: tutorial/introduction.rst:33 +#: tutorial/introduction.rst:32 msgid "" "# this is the first comment\n" "spam = 1 # and this is the second comment\n" @@ -86,11 +85,11 @@ msgstr "" " # ... and now a third!\n" "text = \"# This is not a comment because it's inside quotes.\"" -#: tutorial/introduction.rst:42 +#: tutorial/introduction.rst:41 msgid "Using Python as a Calculator" msgstr "Χρησιμοποιώντας την Python ως Αριθμομηχανή" -#: tutorial/introduction.rst:44 +#: tutorial/introduction.rst:43 msgid "" "Let's try some simple Python commands. Start the interpreter and wait for " "the primary prompt, ``>>>``. (It shouldn't take long.)" @@ -98,11 +97,11 @@ msgstr "" "Ας δοκιμάσουμε μερικές απλές εντολές της Python. Ξεκινήστε τον διερμηνέα και " "περιμένετε το πρώτο prompt, ```>>>```. (Δεν θα πάρει πολύ χρόνο.)" -#: tutorial/introduction.rst:51 +#: tutorial/introduction.rst:50 msgid "Numbers" msgstr "Αριθμοί" -#: tutorial/introduction.rst:53 +#: tutorial/introduction.rst:52 msgid "" "The interpreter acts as a simple calculator: you can type an expression at " "it and it will write the value. Expression syntax is straightforward: the " @@ -115,7 +114,7 @@ msgstr "" "να χρησιμοποιηθούν για την εκτέλεση αριθμητικών πράξεων∙ οι παρενθέσεις " "(``()``) μπορούν να χρησιμοποιηθούν για ομαδοποίηση. Για παράδειγμα::" -#: tutorial/introduction.rst:59 +#: tutorial/introduction.rst:58 msgid "" ">>> 2 + 2\n" "4\n" @@ -135,7 +134,7 @@ msgstr "" ">>> 8 / 5 # division always returns a floating-point number\n" "1.6" -#: tutorial/introduction.rst:68 +#: tutorial/introduction.rst:67 msgid "" "The integer numbers (e.g. ``2``, ``4``, ``20``) have type :class:`int`, the " "ones with a fractional part (e.g. ``5.0``, ``1.6``) have type :class:" @@ -146,7 +145,7 @@ msgstr "" "`float`. Θα δούμε περισσότερα για τους αριθμητικούς τύπους αργότερα σε " "αυτόν τον οδηγό." -#: tutorial/introduction.rst:72 +#: tutorial/introduction.rst:71 msgid "" "Division (``/``) always returns a float. To do :term:`floor division` and " "get an integer result you can use the ``//`` operator; to calculate the " @@ -154,10 +153,10 @@ msgid "" msgstr "" "Η διαίρεση (``/``) πάντα επιστρέφει ένα float. Για να κάνετε :term:`floor " "division` (ακέραια διαίρεση) και να πάρετε ένα ακέραιο αποτέλεσμα, μπορείτε " -"να χρησιμοποιήσετε τον τελεστή ``//``∙ για να υπολογίσετε το το υπόλοιπο " +"να χρησιμοποιήσετε τον τελεστή ``//`` ∙ για να υπολογίσετε το το υπόλοιπο " "μίας διαίρεσης, χρησιμοποιήστε τον τελεστή ``%``::" -#: tutorial/introduction.rst:76 +#: tutorial/introduction.rst:75 msgid "" ">>> 17 / 3 # classic division returns a float\n" "5.666666666666667\n" @@ -179,7 +178,7 @@ msgstr "" ">>> 5 * 3 + 2 # floored quotient * divisor + remainder\n" "17" -#: tutorial/introduction.rst:86 +#: tutorial/introduction.rst:85 msgid "" "With Python, it is possible to use the ``**`` operator to calculate powers " "[#]_::" @@ -187,7 +186,7 @@ msgstr "" "Στην Python, είναι εφικτό να χρησιμοποιήσετε τον τελεστή ``**`` για να " "υπολογίσετε δυνάμεις [#]_::" -#: tutorial/introduction.rst:88 +#: tutorial/introduction.rst:87 msgid "" ">>> 5 ** 2 # 5 squared\n" "25\n" @@ -199,7 +198,7 @@ msgstr "" ">>> 2 ** 7 # 2 to the power of 7\n" "128" -#: tutorial/introduction.rst:93 +#: tutorial/introduction.rst:92 msgid "" "The equal sign (``=``) is used to assign a value to a variable. Afterwards, " "no result is displayed before the next interactive prompt::" @@ -208,7 +207,7 @@ msgstr "" "σε μια μεταβλητή. Στη συνέχεια, δεν εμφανίζεται αποτέλεσμα πριν από το " "επόμενο διαδραστικό prompt::" -#: tutorial/introduction.rst:96 +#: tutorial/introduction.rst:95 msgid "" ">>> width = 20\n" ">>> height = 5 * 9\n" @@ -220,7 +219,7 @@ msgstr "" ">>> width * height\n" "900" -#: tutorial/introduction.rst:101 +#: tutorial/introduction.rst:100 msgid "" "If a variable is not \"defined\" (assigned a value), trying to use it will " "give you an error::" @@ -228,7 +227,7 @@ msgstr "" "Αν μία μεταβλητή δεν έχει «οριστεί» (δεν της έχει αποδοθεί κάποια τιμή), η " "προσπάθεια χρήσης της θα σας δώσει ένα σφάλμα::" -#: tutorial/introduction.rst:104 +#: tutorial/introduction.rst:103 msgid "" ">>> n # try to access an undefined variable\n" "Traceback (most recent call last):\n" @@ -240,7 +239,7 @@ msgstr "" " File \"\", line 1, in \n" "NameError: name 'n' is not defined" -#: tutorial/introduction.rst:109 +#: tutorial/introduction.rst:108 msgid "" "There is full support for floating point; operators with mixed type operands " "convert the integer operand to floating point::" @@ -248,7 +247,7 @@ msgstr "" "Υπάρχει πλήρης υποστήριξη για δεκαδικά ψηφία∙ τελεστές με τελεστέους μικτού " "τύπου μετατρέπουν τον ακέραιο τελεστέο σε δεκαδικό::" -#: tutorial/introduction.rst:112 +#: tutorial/introduction.rst:111 msgid "" ">>> 4 * 3.75 - 1\n" "14.0" @@ -256,7 +255,7 @@ msgstr "" ">>> 4 * 3.75 - 1\n" "14.0" -#: tutorial/introduction.rst:115 +#: tutorial/introduction.rst:114 msgid "" "In interactive mode, the last printed expression is assigned to the variable " "``_``. This means that when you are using Python as a desk calculator, it " @@ -267,7 +266,7 @@ msgstr "" "αριθμομηχανή γραφείου, είναι κάπως πιο εύκολο να συνεχίσετε προηγούμενους " "υπολογισμούς, για παράδειγμα:" -#: tutorial/introduction.rst:119 +#: tutorial/introduction.rst:118 msgid "" ">>> tax = 12.5 / 100\n" ">>> price = 100.50\n" @@ -287,7 +286,7 @@ msgstr "" ">>> round(_, 2)\n" "113.06" -#: tutorial/introduction.rst:128 +#: tutorial/introduction.rst:127 msgid "" "This variable should be treated as read-only by the user. Don't explicitly " "assign a value to it --- you would create an independent local variable with " @@ -298,7 +297,7 @@ msgstr "" "ανεξάρτητη τοπική μεταβλητή με το ίδιο όνομα αποκρύπτοντας την ενσωματωμένη " "μεταβλητή με τη μαγική της συμπεριφορά." -#: tutorial/introduction.rst:132 +#: tutorial/introduction.rst:131 msgid "" "In addition to :class:`int` and :class:`float`, Python supports other types " "of numbers, such as :class:`~decimal.Decimal` and :class:`~fractions." @@ -312,11 +311,11 @@ msgstr "" "numbers ` (μιγαδικούς αριθμούς), και χρησιμοποιεί την κατάληξη " "``j`` ή ``J`` για να δηλώσει το φανταστικό μέρος (π.χ. ``3+5j``)." -#: tutorial/introduction.rst:142 +#: tutorial/introduction.rst:141 msgid "Text" msgstr "Κείμενο" -#: tutorial/introduction.rst:144 +#: tutorial/introduction.rst:143 msgid "" "Python can manipulate text (represented by type :class:`str`, so-called " "\"strings\") as well as numbers. This includes characters \"``!``\", words " @@ -331,7 +330,23 @@ msgstr "" "περικλείονται σε μονά εισαγωγικά (``'...'``) ή διπλά εισαγωγικά (``\"..." "\"``) με το ίδιο αποτέλεσμα [#]_." -#: tutorial/introduction.rst:157 +#: tutorial/introduction.rst:149 +msgid "" +">>> 'spam eggs' # single quotes\n" +"'spam eggs'\n" +">>> \"Paris rabbit got your back :)! Yay!\" # double quotes\n" +"'Paris rabbit got your back :)! Yay!'\n" +">>> '1975' # digits and numerals enclosed in quotes are also strings\n" +"'1975'" +msgstr "" +">>> 'spam eggs' # single quotes\n" +"'spam eggs'\n" +">>> \"Paris rabbit got your back :)! Yay!\" # double quotes\n" +"'Paris rabbit got your back :)! Yay!'\n" +">>> '1975' # digits and numerals enclosed in quotes are also strings\n" +"'1975'" + +#: tutorial/introduction.rst:158 msgid "" "To quote a quote, we need to \"escape\" it, by preceding it with ``\\``. " "Alternatively, we can use the other type of quotation marks::" @@ -340,7 +355,7 @@ msgstr "" "προτάσσοντάς του μία ``\\``. Εναλλακτικά, μπορούμε να χρησιμοποιήσουμε τον " "άλλο τύπο εισαγωγικών::" -#: tutorial/introduction.rst:160 +#: tutorial/introduction.rst:161 msgid "" ">>> 'doesn\\'t' # use \\' to escape the single quote...\n" "\"doesn't\"\n" @@ -364,7 +379,7 @@ msgstr "" ">>> '\"Isn\\'t,\" they said.'\n" "'\"Isn\\'t,\" they said.'" -#: tutorial/introduction.rst:171 +#: tutorial/introduction.rst:172 msgid "" "In the Python shell, the string definition and output string can look " "different. The :func:`print` function produces a more readable output, by " @@ -376,7 +391,7 @@ msgstr "" "ευανάγνωστη έξοδο, παραλείποντας τα εισαγωγικά που περικλείουν την " "συμβολοσειρά και εκτυπώνοντας escaped και ειδικούς χαρακτήρες::" -#: tutorial/introduction.rst:175 +#: tutorial/introduction.rst:176 msgid "" ">>> s = 'First line.\\nSecond line.' # \\n means newline\n" ">>> s # without print(), special characters are included in the string\n" @@ -394,7 +409,7 @@ msgstr "" "First line.\n" "Second line." -#: tutorial/introduction.rst:182 +#: tutorial/introduction.rst:183 msgid "" "If you don't want characters prefaced by ``\\`` to be interpreted as special " "characters, you can use *raw strings* by adding an ``r`` before the first " @@ -404,7 +419,7 @@ msgstr "" "ως ειδικοί χαρακτήρες, μπορείτε να χρησιμοποιήσετε *ακατέργαστες " "συμβολοσειρές* προσθέτοντας ένα ``r`` πριν από το πρώτο εισαγωγικό::" -#: tutorial/introduction.rst:186 +#: tutorial/introduction.rst:187 msgid "" ">>> print('C:\\some\\name') # here \\n means newline!\n" "C:\\some\n" @@ -418,7 +433,7 @@ msgstr "" ">>> print(r'C:\\some\\name') # note the r before the quote\n" "C:\\some\\name" -#: tutorial/introduction.rst:192 +#: tutorial/introduction.rst:193 msgid "" "There is one subtle aspect to raw strings: a raw string may not end in an " "odd number of ``\\`` characters; see :ref:`the FAQ entry ` για περισσότερες πληροφορίες και λύσεις." -#: tutorial/introduction.rst:197 +#: tutorial/introduction.rst:198 msgid "" "String literals can span multiple lines. One way is using triple-quotes: " "``\"\"\"...\"\"\"`` or ``'''...'''``. End-of-line characters are " @@ -444,7 +459,7 @@ msgstr "" "προσθέτοντας μία ``\\`` στο τέλος της γραμμής. Στο ακόλουθο παράδειγμα, η " "αρχική νέα γραμμή δεν περιλαμβάνεται::" -#: tutorial/introduction.rst:203 +#: tutorial/introduction.rst:204 msgid "" ">>> print(\"\"\"\\\n" "... Usage: thingy [OPTIONS]\n" @@ -468,7 +483,7 @@ msgstr "" "\n" ">>>" -#: tutorial/introduction.rst:214 +#: tutorial/introduction.rst:215 msgid "" "Strings can be concatenated (glued together) with the ``+`` operator, and " "repeated with ``*``::" @@ -476,7 +491,7 @@ msgstr "" "Οι συμβολοσειρές μπορούν να συνδεθούν (κολληθούν η μία στην άλλη) με τον " "τελεστή ``+``, και να επαναληφθούν με τον τελεστή ``*``::" -#: tutorial/introduction.rst:217 +#: tutorial/introduction.rst:218 msgid "" ">>> # 3 times 'un', followed by 'ium'\n" ">>> 3 * 'un' + 'ium'\n" @@ -486,7 +501,7 @@ msgstr "" ">>> 3 * 'un' + 'ium'\n" "'unununium'" -#: tutorial/introduction.rst:221 +#: tutorial/introduction.rst:222 msgid "" "Two or more *string literals* (i.e. the ones enclosed between quotes) next " "to each other are automatically concatenated. ::" @@ -494,7 +509,7 @@ msgstr "" "Δύο ή παραπάνω *συμβολοσειρές* (που περικλείονται σε εισαγωγικά) η μία δίπλα " "στην άλλη συνδέονται αυτόματα. ::" -#: tutorial/introduction.rst:224 +#: tutorial/introduction.rst:225 msgid "" ">>> 'Py' 'thon'\n" "'Python'" @@ -502,14 +517,14 @@ msgstr "" ">>> 'Py' 'thon'\n" "'Python'" -#: tutorial/introduction.rst:227 +#: tutorial/introduction.rst:228 msgid "" "This feature is particularly useful when you want to break long strings::" msgstr "" "Αυτή η λειτουργία είναι ιδιαίτερα χρήσιμη όταν θέλετε να σπάσετε μεγάλες " "συμβολοσειρές::" -#: tutorial/introduction.rst:229 +#: tutorial/introduction.rst:230 msgid "" ">>> text = ('Put several strings within parentheses '\n" "... 'to have them joined together.')\n" @@ -521,14 +536,14 @@ msgstr "" ">>> text\n" "'Put several strings within parentheses to have them joined together.'" -#: tutorial/introduction.rst:234 +#: tutorial/introduction.rst:235 msgid "" "This only works with two literals though, not with variables or expressions::" msgstr "" "Ωστόσο, αυτό λειτουργεί μόνο με κυριολεκτικές συμβολοσειρές, όχι με " "μεταβλητές ή εκφράσεις::" -#: tutorial/introduction.rst:236 +#: tutorial/introduction.rst:237 msgid "" ">>> prefix = 'Py'\n" ">>> prefix 'thon' # can't concatenate a variable and a string literal\n" @@ -554,14 +569,14 @@ msgstr "" " ^^^^^\n" "SyntaxError: invalid syntax" -#: tutorial/introduction.rst:248 +#: tutorial/introduction.rst:249 msgid "" "If you want to concatenate variables or a variable and a literal, use ``+``::" msgstr "" "Αν θέλετε να συνδέσετε μεταβλητές ή μία μεταβλητή και μία κυριολεκτική " "συμβολοσειρά, χρησιμοποιήστε το ``+``::" -#: tutorial/introduction.rst:250 +#: tutorial/introduction.rst:251 msgid "" ">>> prefix + 'thon'\n" "'Python'" @@ -569,7 +584,7 @@ msgstr "" ">>> prefix + 'thon'\n" "'Python'" -#: tutorial/introduction.rst:253 +#: tutorial/introduction.rst:254 msgid "" "Strings can be *indexed* (subscripted), with the first character having " "index 0. There is no separate character type; a character is simply a string " @@ -579,7 +594,7 @@ msgstr "" "πρώτο χαρακτήρα να έχει τον δείκτη 0. Δεν υπάρχει ξεχωριστός τύπος για " "χαρακτήρες∙ ένας χαρακτήρας είναι απλώς μία συμβολοσειρά με μέγεθος ένα::" -#: tutorial/introduction.rst:257 +#: tutorial/introduction.rst:258 msgid "" ">>> word = 'Python'\n" ">>> word[0] # character in position 0\n" @@ -593,14 +608,14 @@ msgstr "" ">>> word[5] # character in position 5\n" "'n'" -#: tutorial/introduction.rst:263 +#: tutorial/introduction.rst:264 msgid "" "Indices may also be negative numbers, to start counting from the right::" msgstr "" "Οι δείκτες μπορούν να είναι και αρνητικοί αριθμοί, για να ξεκινήσετε την " "αρίθμηση από τα δεξιά::" -#: tutorial/introduction.rst:265 +#: tutorial/introduction.rst:266 msgid "" ">>> word[-1] # last character\n" "'n'\n" @@ -616,13 +631,13 @@ msgstr "" ">>> word[-6]\n" "'P'" -#: tutorial/introduction.rst:272 +#: tutorial/introduction.rst:273 msgid "Note that since -0 is the same as 0, negative indices start from -1." msgstr "" "Σημειώστε ότι αφού το -0 είναι το ίδιο με το 0, οι αρνητικοί δείκτες " "ξεκινούν από το -1." -#: tutorial/introduction.rst:274 +#: tutorial/introduction.rst:275 msgid "" "In addition to indexing, *slicing* is also supported. While indexing is " "used to obtain individual characters, *slicing* allows you to obtain a " @@ -632,7 +647,7 @@ msgstr "" "ευρετηρίαση χρησιμοποιείται για την απόκτηση μεμονομένων χαρακτήρων, ο " "*τεμαχισμός* σας επιτρέπει να αποκτήσετε ένας μέρος της συμβολοσειράς::" -#: tutorial/introduction.rst:277 +#: tutorial/introduction.rst:278 msgid "" ">>> word[0:2] # characters from position 0 (included) to 2 (excluded)\n" "'Py'\n" @@ -644,7 +659,7 @@ msgstr "" ">>> word[2:5] # characters from position 2 (included) to 5 (excluded)\n" "'tho'" -#: tutorial/introduction.rst:282 +#: tutorial/introduction.rst:283 msgid "" "Slice indices have useful defaults; an omitted first index defaults to zero, " "an omitted second index defaults to the size of the string being sliced. ::" @@ -653,7 +668,7 @@ msgstr "" "πρώτου δείκτη έχει ως προεπιλογή το μηδέν, η παράλειψη του δεύτερου δείκτη " "έχει ως προεπιλογή το μέγεθος της συμβολοσειράς που τεμαχίζεται. ::" -#: tutorial/introduction.rst:285 +#: tutorial/introduction.rst:286 msgid "" ">>> word[:2] # character from the beginning to position 2 (excluded)\n" "'Py'\n" @@ -669,7 +684,7 @@ msgstr "" ">>> word[-2:] # characters from the second-last (included) to the end\n" "'on'" -#: tutorial/introduction.rst:292 +#: tutorial/introduction.rst:293 msgid "" "Note how the start is always included, and the end always excluded. This " "makes sure that ``s[:i] + s[i:]`` is always equal to ``s``::" @@ -677,7 +692,7 @@ msgstr "" "Προσέξτε πώς η αρχή περιλαμβάνεται πάντα, ενώ το τέλος πάντα εξαιρείται. " "Αυτό εξασφαλίζει ότι το ``s[:i] + s[i:]`` είναι πάντα ίσο με ``s``::" -#: tutorial/introduction.rst:295 +#: tutorial/introduction.rst:296 msgid "" ">>> word[:2] + word[2:]\n" "'Python'\n" @@ -689,7 +704,7 @@ msgstr "" ">>> word[:4] + word[4:]\n" "'Python'" -#: tutorial/introduction.rst:300 +#: tutorial/introduction.rst:301 msgid "" "One way to remember how slices work is to think of the indices as pointing " "*between* characters, with the left edge of the first character numbered 0. " @@ -701,7 +716,7 @@ msgstr "" "χαρακτήρα να αριθμείται με 0. Τότε το δεξιό άκρο του τελευταίου χαρακτήρα " "μιας συμβολοσειράς *ν* χαρακτήρων έχει δείκτη *ν*, για παράδειγμα::" -#: tutorial/introduction.rst:305 +#: tutorial/introduction.rst:306 msgid "" " +---+---+---+---+---+---+\n" " | P | y | t | h | o | n |\n" @@ -715,7 +730,7 @@ msgstr "" " 0 1 2 3 4 5 6\n" "-6 -5 -4 -3 -2 -1" -#: tutorial/introduction.rst:311 +#: tutorial/introduction.rst:312 msgid "" "The first row of numbers gives the position of the indices 0...6 in the " "string; the second row gives the corresponding negative indices. The slice " @@ -727,7 +742,7 @@ msgstr "" "*i* έως *j* αποτελείται από όλους τους χαρακτήρες μεταξύ των άκρων με " "ετικέτες *i* και *j*, αντίστοιχα." -#: tutorial/introduction.rst:316 +#: tutorial/introduction.rst:317 msgid "" "For non-negative indices, the length of a slice is the difference of the " "indices, if both are within bounds. For example, the length of " @@ -737,11 +752,11 @@ msgstr "" "δεικτών, εάν και οι δύο είναι εντός των ορίων. Για παράδειγμα, το μήκος του " "``word[1:3]`` είναι 2." -#: tutorial/introduction.rst:320 +#: tutorial/introduction.rst:321 msgid "Attempting to use an index that is too large will result in an error::" msgstr "Η απόπειρα χρήσης ενός πολύ μεγάλου δείκτη θα οδηγήσει σε σφάλμα::" -#: tutorial/introduction.rst:322 +#: tutorial/introduction.rst:323 msgid "" ">>> word[42] # the word only has 6 characters\n" "Traceback (most recent call last):\n" @@ -753,7 +768,7 @@ msgstr "" " File \"\", line 1, in \n" "IndexError: string index out of range" -#: tutorial/introduction.rst:327 +#: tutorial/introduction.rst:328 msgid "" "However, out of range slice indexes are handled gracefully when used for " "slicing::" @@ -761,7 +776,7 @@ msgstr "" "Ωστόσο, οι δείκτες εκτός εύρους αντιμετωπίζονται χωρίς σφάλμα όταν " "χρησιμοποιούνται για τεμαχισμούς::" -#: tutorial/introduction.rst:330 +#: tutorial/introduction.rst:331 msgid "" ">>> word[4:42]\n" "'on'\n" @@ -773,7 +788,7 @@ msgstr "" ">>> word[42:]\n" "''" -#: tutorial/introduction.rst:335 +#: tutorial/introduction.rst:336 msgid "" "Python strings cannot be changed --- they are :term:`immutable`. Therefore, " "assigning to an indexed position in the string results in an error::" @@ -782,7 +797,7 @@ msgstr "" "`immutable`. Επομένως, η ανάθεση σε μια συγκεκριμένη θέση στη συμβολοσειρά " "οδηγεί σε σφάλμα::" -#: tutorial/introduction.rst:338 +#: tutorial/introduction.rst:339 msgid "" ">>> word[0] = 'J'\n" "Traceback (most recent call last):\n" @@ -802,13 +817,13 @@ msgstr "" " File \"\", line 1, in \n" "TypeError: 'str' object does not support item assignment" -#: tutorial/introduction.rst:347 +#: tutorial/introduction.rst:348 msgid "If you need a different string, you should create a new one::" msgstr "" "Εάν χρειάζεστε μια διαφορετική συμβολοσειρά, θα πρέπει να δημιουργήσετε μια " "νέα::" -#: tutorial/introduction.rst:349 +#: tutorial/introduction.rst:350 msgid "" ">>> 'J' + word[1:]\n" "'Jython'\n" @@ -820,12 +835,12 @@ msgstr "" ">>> word[:2] + 'py'\n" "'Pypy'" -#: tutorial/introduction.rst:354 +#: tutorial/introduction.rst:355 msgid "The built-in function :func:`len` returns the length of a string::" msgstr "" "Η ενσωματωμένη συνάρτηση :func:`len` επιστρέφει το μήκος μιας συμβολοσειράς::" -#: tutorial/introduction.rst:356 +#: tutorial/introduction.rst:357 msgid "" ">>> s = 'supercalifragilisticexpialidocious'\n" ">>> len(s)\n" @@ -835,11 +850,11 @@ msgstr "" ">>> len(s)\n" "34" -#: tutorial/introduction.rst:363 +#: tutorial/introduction.rst:364 msgid ":ref:`textseq`" msgstr ":ref:`textseq`" -#: tutorial/introduction.rst:364 +#: tutorial/introduction.rst:365 msgid "" "Strings are examples of *sequence types*, and support the common operations " "supported by such types." @@ -847,11 +862,11 @@ msgstr "" "Οι συμβολοσειρές είναι παραδείγματα *τύπων ακολουθίας* και υποστηρίζουν τις " "κοινές πράξεις που υποστηρίζονται από τέτοιους τύπους." -#: tutorial/introduction.rst:367 +#: tutorial/introduction.rst:368 msgid ":ref:`string-methods`" msgstr ":ref:`string-methods`" -#: tutorial/introduction.rst:368 +#: tutorial/introduction.rst:369 msgid "" "Strings support a large number of methods for basic transformations and " "searching." @@ -859,29 +874,29 @@ msgstr "" "Οι συμβολοσειρές υποστηρίζουν έναν μεγάλο αριθμό μεθόδων για βασικούς " "μετασχηματισμούς και αναζήτηση." -#: tutorial/introduction.rst:371 +#: tutorial/introduction.rst:372 msgid ":ref:`f-strings`" msgstr ":ref:`f-strings`" -#: tutorial/introduction.rst:372 +#: tutorial/introduction.rst:373 msgid "String literals that have embedded expressions." msgstr "Κυριολεκτικές συμβολοσειρές που έχουν ενσωματωμένες εκφράσεις." -#: tutorial/introduction.rst:374 +#: tutorial/introduction.rst:375 msgid ":ref:`formatstrings`" msgstr ":ref:`formatstrings`" -#: tutorial/introduction.rst:375 +#: tutorial/introduction.rst:376 msgid "Information about string formatting with :meth:`str.format`." msgstr "" "Πληροφορίες σχετικά με τη μορφοποίηση συμβολοσειρών με τη μέθοδο :meth:`str." "format`." -#: tutorial/introduction.rst:377 +#: tutorial/introduction.rst:378 msgid ":ref:`old-string-formatting`" msgstr ":ref:`old-string-formatting`" -#: tutorial/introduction.rst:378 +#: tutorial/introduction.rst:379 msgid "" "The old formatting operations invoked when strings are the left operand of " "the ``%`` operator are described in more detail here." @@ -889,11 +904,11 @@ msgstr "" "Οι παλιές λειτουργίες μορφοποίησης που καλούνται όταν οι συμβολοσειρές είναι " "ο αριστερός τελεστέος του τελεστή ``%`` περιγράφονται λεπτομερέστερα εδώ." -#: tutorial/introduction.rst:385 +#: tutorial/introduction.rst:386 msgid "Lists" msgstr "Λίστες" -#: tutorial/introduction.rst:387 +#: tutorial/introduction.rst:388 msgid "" "Python knows a number of *compound* data types, used to group together other " "values. The most versatile is the *list*, which can be written as a list of " @@ -907,7 +922,7 @@ msgstr "" "περιέχουν στοιχεία διαφορετικών τύπων, αλλά συνήθως όλα τα στοιχεία έχουν " "τον ίδιο τύπο. ::" -#: tutorial/introduction.rst:392 +#: tutorial/introduction.rst:393 msgid "" ">>> squares = [1, 4, 9, 16, 25]\n" ">>> squares\n" @@ -917,7 +932,7 @@ msgstr "" ">>> squares\n" "[1, 4, 9, 16, 25]" -#: tutorial/introduction.rst:396 +#: tutorial/introduction.rst:397 msgid "" "Like strings (and all other built-in :term:`sequence` types), lists can be " "indexed and sliced::" @@ -925,7 +940,7 @@ msgstr "" "Όπως οι συμβολοσειρές (και όλοι οι άλλοι ενσωματωμένοι τύποι :term:" "`sequence`), οι λίστες μπορούν να δεικτοδοτηθούν και να τεμαχιστούν::" -#: tutorial/introduction.rst:399 +#: tutorial/introduction.rst:400 msgid "" ">>> squares[0] # indexing returns the item\n" "1\n" @@ -941,11 +956,11 @@ msgstr "" ">>> squares[-3:] # slicing returns a new list\n" "[9, 16, 25]" -#: tutorial/introduction.rst:406 +#: tutorial/introduction.rst:407 msgid "Lists also support operations like concatenation::" msgstr "Οι λίστες υποστηρίζουν επίσης λειτουργίες όπως σύνδεση::" -#: tutorial/introduction.rst:408 +#: tutorial/introduction.rst:409 msgid "" ">>> squares + [36, 49, 64, 81, 100]\n" "[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]" @@ -953,7 +968,7 @@ msgstr "" ">>> squares + [36, 49, 64, 81, 100]\n" "[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]" -#: tutorial/introduction.rst:411 +#: tutorial/introduction.rst:412 msgid "" "Unlike strings, which are :term:`immutable`, lists are a :term:`mutable` " "type, i.e. it is possible to change their content::" @@ -962,7 +977,7 @@ msgstr "" "λίστες είναι :term:`mutable` τύπος, δηλαδή είναι δυνατόν να αλλάξετε το " "περιεχόμενό τους::" -#: tutorial/introduction.rst:414 +#: tutorial/introduction.rst:415 msgid "" ">>> cubes = [1, 8, 27, 65, 125] # something's wrong here\n" ">>> 4 ** 3 # the cube of 4 is 64, not 65!\n" @@ -978,16 +993,16 @@ msgstr "" ">>> cubes\n" "[1, 8, 27, 64, 125]" -#: tutorial/introduction.rst:421 +#: 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:424 +#: tutorial/introduction.rst:425 msgid "" ">>> cubes.append(216) # add the cube of 6\n" ">>> cubes.append(7 ** 3) # and the cube of 7\n" @@ -999,7 +1014,7 @@ msgstr "" ">>> cubes\n" "[1, 8, 27, 64, 125, 216, 343]" -#: tutorial/introduction.rst:429 +#: tutorial/introduction.rst:430 msgid "" "Simple assignment in Python never copies data. When you assign a list to a " "variable, the variable refers to the *existing list*. Any changes you make " @@ -1011,7 +1026,7 @@ msgstr "" "Οποιεσδήποτε αλλαγές κάνετε στη λίστα μέσω μιας μεταβλητής θα γίνουν " "αντιληπτές από όλες τις άλλες μεταβλητές που αναφέρονται σε αυτήν::" -#: tutorial/introduction.rst:434 +#: tutorial/introduction.rst:435 msgid "" ">>> rgb = [\"Red\", \"Green\", \"Blue\"]\n" ">>> rgba = rgb\n" @@ -1029,7 +1044,7 @@ msgstr "" ">>> rgb\n" "[\"Red\", \"Green\", \"Blue\", \"Alph\"]" -#: tutorial/introduction.rst:442 +#: tutorial/introduction.rst:443 msgid "" "All slice operations return a new list containing the requested elements. " "This means that the following slice returns a :ref:`shallow copy " @@ -1039,7 +1054,7 @@ msgstr "" "στοιχεία. Αυτό σημαίνει ότι ο ακόλουθος τεμαχισμός επιστρέφει ένα :ref:" "`shallow copy ` (ρηχό αντίγραφο) της λίστας::" -#: tutorial/introduction.rst:446 +#: tutorial/introduction.rst:447 msgid "" ">>> correct_rgba = rgba[:]\n" ">>> correct_rgba[-1] = \"Alpha\"\n" @@ -1055,7 +1070,7 @@ msgstr "" ">>> rgba\n" "[\"Red\", \"Green\", \"Blue\", \"Alph\"]" -#: tutorial/introduction.rst:453 +#: tutorial/introduction.rst:454 msgid "" "Assignment to slices is also possible, and this can even change the size of " "the list or clear it entirely::" @@ -1063,7 +1078,7 @@ msgstr "" "Η ανάθεση σε τεμαχισμούς είναι επίσης δυνατή, και αυτό μπορεί ακόμη και να " "αλλάξει το μέγεθος της λίστας ή να τη διαγράψει εντελώς::" -#: tutorial/introduction.rst:456 +#: tutorial/introduction.rst:457 msgid "" ">>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" ">>> letters\n" @@ -1097,11 +1112,11 @@ msgstr "" ">>> letters\n" "[]" -#: tutorial/introduction.rst:472 +#: tutorial/introduction.rst:473 msgid "The built-in function :func:`len` also applies to lists::" msgstr "Η ενσωματωμένη συνάρτηση :func:`len` εφαρμόζεται επίσης στις λίστες::" -#: tutorial/introduction.rst:474 +#: tutorial/introduction.rst:475 msgid "" ">>> letters = ['a', 'b', 'c', 'd']\n" ">>> len(letters)\n" @@ -1111,7 +1126,7 @@ msgstr "" ">>> len(letters)\n" "4" -#: tutorial/introduction.rst:478 +#: tutorial/introduction.rst:479 msgid "" "It is possible to nest lists (create lists containing other lists), for " "example::" @@ -1119,7 +1134,7 @@ msgstr "" "Είναι δυνατό να εμφωλεύσετε λίστες (να δημιουργήσετε λίστες που περιέχουν " "άλλες λίστες), για παράδειγμα::" -#: tutorial/introduction.rst:481 +#: tutorial/introduction.rst:482 msgid "" ">>> a = ['a', 'b', 'c']\n" ">>> n = [1, 2, 3]\n" @@ -1141,11 +1156,11 @@ msgstr "" ">>> x[0][1]\n" "'b'" -#: tutorial/introduction.rst:494 +#: tutorial/introduction.rst:495 msgid "First Steps Towards Programming" msgstr "Πρώτα Βήματα Προς Τον Προγραμματισμό" -#: tutorial/introduction.rst:496 +#: tutorial/introduction.rst:497 msgid "" "Of course, we can use Python for more complicated tasks than adding two and " "two together. For instance, we can write an initial sub-sequence of the " @@ -1157,7 +1172,7 @@ msgstr "" "αρχική υπο-σειρά της `Σειράς Fibonacci `_ ως ακολουθεί::" -#: tutorial/introduction.rst:501 +#: tutorial/introduction.rst:502 msgid "" ">>> # Fibonacci series:\n" ">>> # the sum of two elements defines the next\n" @@ -1189,11 +1204,11 @@ msgstr "" "5\n" "8" -#: tutorial/introduction.rst:516 +#: tutorial/introduction.rst:517 msgid "This example introduces several new features." msgstr "Αυτό το παράδειγμα εισάγει διάφορα νέα χαρακτηριστικά." -#: tutorial/introduction.rst:518 +#: tutorial/introduction.rst:519 msgid "" "The first line contains a *multiple assignment*: the variables ``a`` and " "``b`` simultaneously get the new values 0 and 1. On the last line this is " @@ -1207,7 +1222,7 @@ msgstr "" "αξιολογούνται όλες πρώτα πριν γίνει οποιαδήποτε ανάθεση. Οι εκφράσεις στην " "δεξιά πλευρά αξιολογούνται από αριστερά προς τα δεξιά." -#: tutorial/introduction.rst:524 +#: tutorial/introduction.rst:525 msgid "" "The :keyword:`while` loop executes as long as the condition (here: ``a < " "10``) remains true. In Python, like in C, any non-zero integer value is " @@ -1228,7 +1243,7 @@ msgstr "" "(μικρότερο από), ``>`` (μεγαλύτερο από), ``==`` (ίσο με), ``<=`` (μικρότερο " "ή ίσο με), ``>=`` (μεγαλύτερο ή ίσο με) και ``!=`` (μη ίσο με)." -#: tutorial/introduction.rst:533 +#: tutorial/introduction.rst:534 msgid "" "The *body* of the loop is *indented*: indentation is Python's way of " "grouping statements. At the interactive prompt, you have to type a tab or " @@ -1250,7 +1265,7 @@ msgstr "" "τελευταία γραμμή). Σημείωση ότι κάθε γραμμή μέσα σε ένα βασικό μπλοκ πρέπει " "να έχει την ίδια εσοχή." -#: tutorial/introduction.rst:542 +#: tutorial/introduction.rst:543 msgid "" "The :func:`print` function writes the value of the argument(s) it is given. " "It differs from just writing the expression you want to write (as we did " @@ -1267,7 +1282,7 @@ msgstr "" "παρεμβάλλεται μεταξύ των στοιχείων, ώστε να μπορείτε να μορφοποιήσετε τα " "πράγματα όμορφα, όπως εδώ::" -#: tutorial/introduction.rst:549 +#: tutorial/introduction.rst:550 msgid "" ">>> i = 256*256\n" ">>> print('The value of i is', i)\n" @@ -1277,7 +1292,7 @@ msgstr "" ">>> print('The value of i is', i)\n" "The value of i is 65536" -#: tutorial/introduction.rst:553 +#: tutorial/introduction.rst:554 msgid "" "The keyword argument *end* can be used to avoid the newline after the " "output, or end the output with a different string::" @@ -1286,7 +1301,7 @@ msgstr "" "γραμμής μετά την έξοδο, ή για να τελειώσετε την έξοδο με μια διαφορετική " "συμβολοσειρά::" -#: tutorial/introduction.rst:556 +#: tutorial/introduction.rst:557 msgid "" ">>> a, b = 0, 1\n" ">>> while a < 1000:\n" @@ -1302,11 +1317,11 @@ msgstr "" "...\n" "0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987," -#: tutorial/introduction.rst:565 +#: tutorial/introduction.rst:566 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: tutorial/introduction.rst:566 +#: tutorial/introduction.rst:567 msgid "" "Since ``**`` has higher precedence than ``-``, ``-3**2`` will be interpreted " "as ``-(3**2)`` and thus result in ``-9``. To avoid this and get ``9``, you " @@ -1317,7 +1332,7 @@ msgstr "" "το αποφύγετε αυτό και να πάρετε ``9``, μπορείτε να χρησιμοποιήσετε " "``(-3)**2``." -#: tutorial/introduction.rst:570 +#: tutorial/introduction.rst:571 msgid "" "Unlike other languages, special characters such as ``\\n`` have the same " "meaning with both single (``'...'``) and double (``\"...\"``) quotes. The " @@ -1330,11 +1345,11 @@ msgstr "" "δεν χρειάζεται να αποφύγετε το ``\"`` (αλλά πρέπει να αποφύγετε το ``\\'``) " "και το αντίστροφο." -#: tutorial/introduction.rst:21 +#: tutorial/introduction.rst:20 msgid "# (hash)" msgstr "# (hash)" -#: tutorial/introduction.rst:21 +#: tutorial/introduction.rst:20 msgid "comment" msgstr "σχόλιο" diff --git a/tutorial/modules.po b/tutorial/modules.po index de664463..f399d20e 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" -"PO-Revision-Date: 2025-05-03 17:11+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -79,14 +79,16 @@ msgstr "" msgid "" "# Fibonacci numbers module\n" "\n" -"def fib(n): # write Fibonacci series up to n\n" +"def fib(n):\n" +" \"\"\"Write Fibonacci series up to n.\"\"\"\n" " a, b = 0, 1\n" " while a < n:\n" " print(a, end=' ')\n" " a, b = b, a+b\n" " print()\n" "\n" -"def fib2(n): # return Fibonacci series up to n\n" +"def fib2(n):\n" +" \"\"\"Return Fibonacci series up to n.\"\"\"\n" " result = []\n" " a, b = 0, 1\n" " while a < n:\n" @@ -96,14 +98,16 @@ msgid "" msgstr "" "# Fibonacci numbers module\n" "\n" -"def fib(n): # write Fibonacci series up to n\n" +"def fib(n):\n" +" \"\"\"Write Fibonacci series up to n.\"\"\"\n" " a, b = 0, 1\n" " while a < n:\n" " print(a, end=' ')\n" " a, b = b, a+b\n" " print()\n" "\n" -"def fib2(n): # return Fibonacci series up to n\n" +"def fib2(n):\n" +" \"\"\"Return Fibonacci series up to n.\"\"\"\n" " result = []\n" " a, b = 0, 1\n" " while a < n:\n" @@ -111,7 +115,7 @@ msgstr "" " a, b = b, a+b\n" " return result" -#: tutorial/modules.rst:45 +#: tutorial/modules.rst:47 msgid "" "Now enter the Python interpreter and import this module with the following " "command::" @@ -119,11 +123,11 @@ msgstr "" "Τώρα εισάγετε τον Python interpreter και εισάγετε αυτό το module με την " "ακόλουθη εντολή::" -#: tutorial/modules.rst:48 +#: tutorial/modules.rst:50 msgid ">>> import fibo" msgstr ">>> import fibo" -#: tutorial/modules.rst:50 +#: tutorial/modules.rst:52 msgid "" "This does not add the names of the functions defined in ``fibo`` directly " "to the current :term:`namespace` (see :ref:`tut-scopes` for more details); " @@ -136,7 +140,7 @@ msgstr "" "εκεί. Χρησιμοποιώντας το όνομα του module μπορείτε να αποκτήσετε πρόσβαση " "στις λειτουργίες::" -#: tutorial/modules.rst:55 +#: tutorial/modules.rst:57 msgid "" ">>> fibo.fib(1000)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987\n" @@ -152,14 +156,14 @@ msgstr "" ">>> fibo.__name__\n" "'fibo'" -#: tutorial/modules.rst:62 +#: tutorial/modules.rst:64 msgid "" "If you intend to use a function often you can assign it to a local name::" msgstr "" "Εάν σκοπεύετε να χρησιμοποιείτε συχνά μια συνάρτηση, μπορείτε να την " "αντιστοιχίσετε σε ένα τοπικό όνομα::" -#: tutorial/modules.rst:64 +#: tutorial/modules.rst:66 msgid "" ">>> fib = fibo.fib\n" ">>> fib(500)\n" @@ -169,11 +173,11 @@ msgstr "" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" -#: tutorial/modules.rst:72 +#: tutorial/modules.rst:74 msgid "More on Modules" msgstr "Περισσότερα για τα Modules" -#: tutorial/modules.rst:74 +#: tutorial/modules.rst:76 msgid "" "A module can contain executable statements as well as function definitions. " "These statements are intended to initialize the module. They are executed " @@ -186,7 +190,7 @@ msgstr "" "δήλωση εισαγωγής. [#]_ (Εκτελούνται επίσης εάν το αρχείο εκτελείται ως " "script.)" -#: tutorial/modules.rst:79 +#: tutorial/modules.rst:81 msgid "" "Each module has its own private namespace, which is used as the global " "namespace by all functions defined in the module. Thus, the author of a " @@ -203,7 +207,7 @@ msgstr "" "global μεταβλητές ενός module με το ίδιο notation που χρησιμοποιείται για να " "αναφέρεται στις συναρτήσεις, ``modname.itemname``." -#: tutorial/modules.rst:86 +#: tutorial/modules.rst:88 msgid "" "Modules can import other modules. It is customary but not required to place " "all :keyword:`import` statements at the beginning of a module (or script, " @@ -218,7 +222,7 @@ msgstr "" "οποιωνδήποτε συναρτήσεων ή κλάσεων), προστίθενται στον global namespace του " "module." -#: tutorial/modules.rst:91 +#: tutorial/modules.rst:93 msgid "" "There is a variant of the :keyword:`import` statement that imports names " "from a module directly into the importing module's namespace. For example::" @@ -227,7 +231,7 @@ msgstr "" "ένα module απευθείας στον χώρο στα importing module's namespace. Για " "παράδειγμα::" -#: tutorial/modules.rst:94 +#: tutorial/modules.rst:96 msgid "" ">>> from fibo import fib, fib2\n" ">>> fib(500)\n" @@ -237,7 +241,7 @@ msgstr "" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" -#: tutorial/modules.rst:98 +#: tutorial/modules.rst:100 msgid "" "This does not introduce the module name from which the imports are taken in " "the local namespace (so in the example, ``fibo`` is not defined)." @@ -245,13 +249,13 @@ msgstr "" "Αυτό δεν εισάγει το όνομα ενός module από το οποίο λαμβάνονται οι εισαγωγές " "στο τοπικό namespace (αρά στο παράδειγμα, το ``fibo`` δεν ορίζεται)." -#: tutorial/modules.rst:101 +#: tutorial/modules.rst:103 msgid "There is even a variant to import all names that a module defines::" msgstr "" "Υπάρχει ακόμη και μια παραλλαγή για την εισαγωγή όλων των ονομάτων που " "ορίζει μια ενότητα::" -#: tutorial/modules.rst:103 +#: tutorial/modules.rst:105 msgid "" ">>> from fibo import *\n" ">>> fib(500)\n" @@ -261,7 +265,7 @@ msgstr "" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" -#: tutorial/modules.rst:107 +#: tutorial/modules.rst:109 msgid "" "This imports all names except those beginning with an underscore (``_``). In " "most cases Python programmers do not use this facility since it introduces " @@ -274,7 +278,7 @@ msgstr "" "ονομάτων στον interpreter, κρύβοντας πιθανώς κάποια πράγματα που έχετε ήδη " "ορίσει." -#: tutorial/modules.rst:112 +#: tutorial/modules.rst:114 msgid "" "Note that in general the practice of importing ``*`` from a module or " "package is frowned upon, since it often causes poorly readable code. " @@ -285,7 +289,7 @@ msgstr "" "είναι εντάξει να τον χρησιμοποιήσετε για να αποθηκεύσετε την πληκτρολόγηση " "σε διαδραστικές περιόδους σύνδεσης." -#: tutorial/modules.rst:116 +#: tutorial/modules.rst:118 msgid "" "If the module name is followed by :keyword:`!as`, then the name following :" "keyword:`!as` is bound directly to the imported module." @@ -293,7 +297,7 @@ msgstr "" "Εάν το όνομα του module ακολουθείται από :keyword:`!as`, τότε το όνομα που " "ακολουθεί :keyword:`!as` συνδέεται απευθείας με το εισαγόμενο module." -#: tutorial/modules.rst:121 +#: tutorial/modules.rst:123 msgid "" ">>> import fibo as fib\n" ">>> fib.fib(500)\n" @@ -303,7 +307,7 @@ msgstr "" ">>> fib.fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" -#: tutorial/modules.rst:125 +#: tutorial/modules.rst:127 msgid "" "This is effectively importing the module in the same way that ``import " "fibo`` will do, with the only difference of it being available as ``fib``." @@ -311,14 +315,14 @@ msgstr "" "Αυτό ουσιαστικά εισάγει το module με τον ίδιο τρόπο που θα κάνει το ``import " "fibo`` , με τη μόνη διαφορά ότι είναι διαθέσιμο ως ``fib``." -#: tutorial/modules.rst:128 +#: tutorial/modules.rst:130 msgid "" "It can also be used when utilising :keyword:`from` with similar effects::" msgstr "" "Μπορεί επίσης να χρησιμοποιηθεί όταν χρησιμοποιείτε :keyword:`from` με " "παρόμοια εφέ::" -#: tutorial/modules.rst:130 +#: tutorial/modules.rst:132 msgid "" ">>> from fibo import fib as fibonacci\n" ">>> fibonacci(500)\n" @@ -328,7 +332,7 @@ msgstr "" ">>> fibonacci(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" -#: tutorial/modules.rst:137 +#: tutorial/modules.rst:139 msgid "" "For efficiency reasons, each module is only imported once per interpreter " "session. Therefore, if you change your modules, you must restart the " @@ -342,19 +346,19 @@ msgstr "" "θέλετε να δοκιμάσετε διαδραστικά, χρησιμοποιήστε το :func:`importlib." "reload`, π.χ. ``import importlib; importlib.reload(modulename)``." -#: tutorial/modules.rst:147 +#: tutorial/modules.rst:149 msgid "Executing modules as scripts" msgstr "Εκτέλεση modules ως scripts" -#: tutorial/modules.rst:149 +#: tutorial/modules.rst:151 msgid "When you run a Python module with ::" msgstr "Όταν εκτελείτε ένα Python module με::" -#: tutorial/modules.rst:151 +#: tutorial/modules.rst:153 msgid "python fibo.py " msgstr "python fibo.py " -#: tutorial/modules.rst:153 +#: tutorial/modules.rst:155 msgid "" "the code in the module will be executed, just as if you imported it, but " "with the ``__name__`` set to ``\"__main__\"``. That means that by adding " @@ -364,7 +368,7 @@ msgstr "" "το ``name`` να έχει οριστεί σε ``\"__main__\"``. Αυτό σημαίνει ότι " "προσθέτοντας αυτόν τον κώδικα στο τέλος του module σας::" -#: tutorial/modules.rst:157 +#: tutorial/modules.rst:159 msgid "" "if __name__ == \"__main__\":\n" " import sys\n" @@ -374,7 +378,7 @@ msgstr "" " import sys\n" " fib(int(sys.argv[1]))" -#: tutorial/modules.rst:161 +#: tutorial/modules.rst:163 msgid "" "you can make the file usable as a script as well as an importable module, " "because the code that parses the command line only runs if the module is " @@ -384,7 +388,7 @@ msgstr "" "που μπορεί να εισαχθεί, επειδή ο κώδικας που αναλύει την γραμμή εντολών " "εκτελείται μόνο εάν το module εκτελείται ως το \"main\" αρχείο:" -#: tutorial/modules.rst:165 +#: tutorial/modules.rst:167 msgid "" "$ python fibo.py 50\n" "0 1 1 2 3 5 8 13 21 34" @@ -392,11 +396,11 @@ msgstr "" "$ python fibo.py 50\n" "0 1 1 2 3 5 8 13 21 34" -#: tutorial/modules.rst:170 +#: tutorial/modules.rst:172 msgid "If the module is imported, the code is not run::" msgstr "Εάν το module έχει εισαχθεί, ο κώδικας δεν εκτελείται::" -#: tutorial/modules.rst:172 +#: tutorial/modules.rst:174 msgid "" ">>> import fibo\n" ">>>" @@ -404,7 +408,7 @@ msgstr "" ">>> import fibo\n" ">>>" -#: tutorial/modules.rst:175 +#: tutorial/modules.rst:177 msgid "" "This is often used either to provide a convenient user interface to a " "module, or for testing purposes (running the module as a script executes a " @@ -414,11 +418,11 @@ msgstr "" "σε ένα module, είτε για σκοπούς δοκιμής (η εκτέλεση του module ως script " "εκτελεί μια δοκιμαστική σουίτα)." -#: tutorial/modules.rst:182 +#: tutorial/modules.rst:184 msgid "The Module Search Path" msgstr "Το Search Path του Module" -#: tutorial/modules.rst:186 +#: tutorial/modules.rst:188 msgid "" "When a module named :mod:`!spam` is imported, the interpreter first searches " "for a built-in module with that name. These module names are listed in :data:" @@ -433,7 +437,7 @@ msgstr "" "δίνονται από τη μεταβλητή :data:`sys.path`. Το :data:`sys.path` " "αρχικοποιείται από αυτές τις θέσεις:" -#: tutorial/modules.rst:192 +#: tutorial/modules.rst:194 msgid "" "The directory containing the input script (or the current directory when no " "file is specified)." @@ -441,7 +445,7 @@ msgstr "" "Ο κατάλογος που περιέχει το input script (ή τον τρέχοντα κατάλογο όταν δεν " "έχει καθοριστεί αρχείο)." -#: tutorial/modules.rst:194 +#: tutorial/modules.rst:196 msgid "" ":envvar:`PYTHONPATH` (a list of directory names, with the same syntax as the " "shell variable :envvar:`PATH`)." @@ -449,7 +453,7 @@ msgstr "" ":envvar:`PYTHONPATH` (μια λίστα ονομάτων καταλόγου, με την ίδια σύνταξη με " "τη μεταβλητή του shell :envvar:`PATH`)." -#: tutorial/modules.rst:196 +#: tutorial/modules.rst:198 msgid "" "The installation-dependent default (by convention including a ``site-" "packages`` directory, handled by the :mod:`site` module)." @@ -458,11 +462,11 @@ msgstr "" "συμπεριλαμβανομένου ενός καταλόγου ``site-packages``, που χειρίζεται το " "module :mod:`site`." -#: tutorial/modules.rst:199 +#: tutorial/modules.rst:201 msgid "More details are at :ref:`sys-path-init`." msgstr "Περισσότερες λεπτομέρειες βρίσκονται στο :ref:`sys-path-init`." -#: tutorial/modules.rst:202 +#: tutorial/modules.rst:204 msgid "" "On file systems which support symlinks, the directory containing the input " "script is calculated after the symlink is followed. In other words the " @@ -473,7 +477,7 @@ msgstr "" "κατάλογος που περιέχει το symlink **δεν** προστίθεται στη διαδρομή " "αναζήτησης του module." -#: tutorial/modules.rst:206 +#: tutorial/modules.rst:208 msgid "" "After initialization, Python programs can modify :data:`sys.path`. The " "directory containing the script being run is placed at the beginning of the " @@ -490,11 +494,11 @@ msgstr "" "βιβλιοθήκης. Αυτό είναι ένα σφάλμα, εκτός εάν προορίζεται η αντικατάσταση. " "Βλ. την ενότητα :ref:`tut-standardmodules` για περισσότερες πληροφορίες." -#: tutorial/modules.rst:219 +#: tutorial/modules.rst:221 msgid "\"Compiled\" Python files" msgstr "\"Compiled\" Python αρχεία" -#: tutorial/modules.rst:221 +#: tutorial/modules.rst:223 msgid "" "To speed up loading modules, Python caches the compiled version of each " "module in the ``__pycache__`` directory under the name :file:`module." @@ -513,7 +517,7 @@ msgstr "" "compiled modules από διαφορετικές εκδόσεις και διαφορετικές εκδόσεις της " "Python να συνυπάρχουν." -#: tutorial/modules.rst:229 +#: tutorial/modules.rst:231 msgid "" "Python checks the modification date of the source against the compiled " "version to see if it's out of date and needs to be recompiled. This is a " @@ -527,7 +531,7 @@ msgstr "" "modules είναι ανεξάρτητες από πλατφόρμα, επομένως η ίδια βιβλιοθήκη μπορεί " "να κοινοποιηθεί ανάμεσα σε συστήματα με διαφορετικές αρχιτεκτονικές." -#: tutorial/modules.rst:234 +#: tutorial/modules.rst:236 msgid "" "Python does not check the cache in two circumstances. First, it always " "recompiles and does not store the result for the module that's loaded " @@ -543,11 +547,11 @@ msgstr "" "(compiled μόνο), το compiled module πρέπει να βρίσκεται στον source κατάλογο " "και δεν πρέπει να υπάρχει source module." -#: tutorial/modules.rst:241 +#: tutorial/modules.rst:243 msgid "Some tips for experts:" msgstr "Μερικές συμβουλές για ειδικούς:" -#: tutorial/modules.rst:243 +#: tutorial/modules.rst:245 msgid "" "You can use the :option:`-O` or :option:`-OO` switches on the Python command " "to reduce the size of a compiled module. The ``-O`` switch removes assert " @@ -567,18 +571,18 @@ msgstr "" "Οι μελλοντικές εκδόσεις μπορεί να αλλάξουν τα αποτελέσματα της " "βελτιστοποίησης." -#: tutorial/modules.rst:251 +#: tutorial/modules.rst:253 msgid "" "A program doesn't run any faster when it is read from a ``.pyc`` file than " "when it is read from a ``.py`` file; the only thing that's faster about ``." "pyc`` files is the speed with which they are loaded." msgstr "" "Ένα πρόγραμμα δεν εκτελείται πιο γρήγορα όταν διαβάζεται από ένα αρχείο ``." -"pyc`` από ό,τι όταν διαβάζεται από ένα αρχείο ``.py``∙ το μόνο πράγμα που " +"pyc`` από ό,τι όταν διαβάζεται από ένα αρχείο ``.py`` ∙ το μόνο πράγμα που " "είναι πιο γρήγορο από τα αρχεία ``.pyc`` είναι η ταχύτητα με την οποία " "φορτώνονται." -#: tutorial/modules.rst:255 +#: tutorial/modules.rst:257 msgid "" "The module :mod:`compileall` can create .pyc files for all modules in a " "directory." @@ -586,7 +590,7 @@ msgstr "" "Το module :mod:`compileall` μπορεί να δημιουργήσει αρχεία .pyc για όλα τα " "modules σε ένα κατάλογο." -#: tutorial/modules.rst:258 +#: tutorial/modules.rst:260 msgid "" "There is more detail on this process, including a flow chart of the " "decisions, in :pep:`3147`." @@ -594,11 +598,11 @@ msgstr "" "Υπάρχουν περισσότερες λεπτομέρειες σχετικά με αυτή τη διαδικασία, " "συμπεριλαμβανομένου ενός διαγράμματος ροής των αποφάσεων, στο :pep:`3147`." -#: tutorial/modules.rst:265 +#: tutorial/modules.rst:267 msgid "Standard Modules" msgstr "Standard Modules" -#: tutorial/modules.rst:269 +#: tutorial/modules.rst:271 msgid "" "Python comes with a library of standard modules, described in a separate " "document, the Python Library Reference (\"Library Reference\" hereafter). " @@ -626,7 +630,7 @@ msgstr "" "της Python. Οι μεταβλητές ``sys.ps1`` και ``sys.ps2`` ορίζουν τις " "συμβολοσειρές που χρησιμοποιούνται ως κύρια και δευτερεύοντα prompts::" -#: tutorial/modules.rst:281 +#: tutorial/modules.rst:283 msgid "" ">>> import sys\n" ">>> sys.ps1\n" @@ -648,7 +652,7 @@ msgstr "" "Yuck!\n" "C>" -#: tutorial/modules.rst:292 +#: tutorial/modules.rst:294 msgid "" "These two variables are only defined if the interpreter is in interactive " "mode." @@ -656,7 +660,7 @@ msgstr "" "Αυτές οι δύο μεταβλητές ορίζονται μόνο εάν ο interpreter βρίσκεται σε " "διαδραστική λειτουργία." -#: tutorial/modules.rst:294 +#: tutorial/modules.rst:296 msgid "" "The variable ``sys.path`` is a list of strings that determines the " "interpreter's search path for modules. It is initialized to a default path " @@ -671,7 +675,7 @@ msgstr "" "δεν έχει οριστεί. Μπορείτε να το τροποποιήσετε χρησιμοποιώντας τυπικές " "λειτουργίες λίστας::" -#: tutorial/modules.rst:300 +#: tutorial/modules.rst:302 msgid "" ">>> import sys\n" ">>> sys.path.append('/ufs/guido/lib/python')" @@ -679,11 +683,11 @@ msgstr "" ">>> import sys\n" ">>> sys.path.append('/ufs/guido/lib/python')" -#: tutorial/modules.rst:307 +#: tutorial/modules.rst:309 msgid "The :func:`dir` Function" msgstr "Η συνάρτηση :func:`dir`" -#: tutorial/modules.rst:309 +#: tutorial/modules.rst:311 msgid "" "The built-in function :func:`dir` is used to find out which names a module " "defines. It returns a sorted list of strings::" @@ -691,7 +695,7 @@ msgstr "" "Η ενσωματωμένη συνάρτηση :func:`dir` χρησιμοποιείται για να ανακαλύψει ποια " "ονόματα ορίζει ένα module. Επιστρέφει μια ταξινομημένη λίστα συμβολοσειρών::" -#: tutorial/modules.rst:312 +#: tutorial/modules.rst:314 msgid "" ">>> import fibo, sys\n" ">>> dir(fibo)\n" @@ -759,14 +763,14 @@ msgstr "" "'version_info',\n" " 'warnoptions']" -#: tutorial/modules.rst:338 +#: tutorial/modules.rst:340 msgid "" "Without arguments, :func:`dir` lists the names you have defined currently::" msgstr "" "Χωρίς ορίσματα, η :func:`dir` παραθέτει τα ονόματα που έχετε ορίσει αυτήν τη " "στιγμή::" -#: tutorial/modules.rst:340 +#: tutorial/modules.rst:342 msgid "" ">>> a = [1, 2, 3, 4, 5]\n" ">>> import fibo\n" @@ -780,14 +784,14 @@ msgstr "" ">>> dir()\n" "['__builtins__', '__name__', 'a', 'fib', 'fibo', 'sys']" -#: tutorial/modules.rst:346 +#: tutorial/modules.rst:348 msgid "" "Note that it lists all types of names: variables, modules, functions, etc." msgstr "" "Λάβετε υπόψη ότι παραθέτει όλους τους τύπους ονομάτων: μεταβλητές, modules, " "συναρτήσεις, κ.λπ." -#: tutorial/modules.rst:350 +#: tutorial/modules.rst:352 msgid "" ":func:`dir` does not list the names of built-in functions and variables. If " "you want a list of those, they are defined in the standard module :mod:" @@ -797,7 +801,7 @@ msgstr "" "μεταβλητών. Εάν θέλετε μια λίστα από αυτές, ορίζονται στην τυπική ενότητα :" "mod:`builtins`::" -#: tutorial/modules.rst:354 +#: tutorial/modules.rst:356 msgid "" ">>> import builtins\n" ">>> dir(builtins)\n" @@ -865,11 +869,11 @@ msgstr "" " 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars',\n" " 'zip']" -#: tutorial/modules.rst:389 +#: tutorial/modules.rst:391 msgid "Packages" msgstr "Πακέτα" -#: tutorial/modules.rst:391 +#: tutorial/modules.rst:393 msgid "" "Packages are a way of structuring Python's module namespace by using " "\"dotted module names\". For example, the module name :mod:`!A.B` " @@ -888,7 +892,7 @@ msgstr "" "το NumbPY ή το Pillow από το να χρειάζεται να ανησυχούν ο ένας για τα module " "ονόματα του άλλου." -#: tutorial/modules.rst:399 +#: tutorial/modules.rst:401 msgid "" "Suppose you want to design a collection of modules (a \"package\") for the " "uniform handling of sound files and sound data. There are many different " @@ -915,7 +919,7 @@ msgstr "" "αυτές τις λειτουργίες. Ακολουθεί μια πιθανή δομή για το πακέτο σας (που " "εκφράζεται ως ιεραρχικό σύστημα αρχείων):" -#: tutorial/modules.rst:410 +#: tutorial/modules.rst:412 msgid "" "sound/ Top-level package\n" " __init__.py Initialize the sound package\n" @@ -965,7 +969,7 @@ msgstr "" " karaoke.py\n" " ..." -#: tutorial/modules.rst:436 +#: tutorial/modules.rst:438 msgid "" "When importing the package, Python searches through the directories on ``sys." "path`` looking for the package subdirectory." @@ -973,7 +977,7 @@ msgstr "" "Κατά την εισαγωγή του πακέτου, η Python πραγματοποιεί αναζήτηση στους " "καταλόγους στο ``sys.path`` αναζητώντας τον υποκατάλογο του πακέτου." -#: tutorial/modules.rst:439 +#: tutorial/modules.rst:441 msgid "" "The :file:`__init__.py` files are required to make Python treat directories " "containing the file as packages (unless using a :term:`namespace package`, a " @@ -993,7 +997,7 @@ msgstr "" "εκτελέσει initialization κώδικα για το πακέτο ή να ορίσει την μεταβλητή " "``__all__``, που περιγράφεται αργότερα." -#: tutorial/modules.rst:447 +#: tutorial/modules.rst:449 msgid "" "Users of the package can import individual modules from the package, for " "example::" @@ -1001,11 +1005,11 @@ msgstr "" "Οι χρήστες του πακέτου μπορούν να εισάγουν μεμονωμένα module από το πακέτο, " "για παράδειγμα::" -#: tutorial/modules.rst:450 +#: tutorial/modules.rst:452 msgid "import sound.effects.echo" msgstr "import sound.effects.echo" -#: tutorial/modules.rst:452 +#: tutorial/modules.rst:454 msgid "" "This loads the submodule :mod:`!sound.effects.echo`. It must be referenced " "with its full name. ::" @@ -1013,19 +1017,19 @@ msgstr "" "Αυτό φορτώνει το submodule :mod:`!sound.effects.echo`. Πρέπει να αναφέρεται " "με το πλήρες όνομά του. ::" -#: tutorial/modules.rst:455 +#: tutorial/modules.rst:457 msgid "sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)" msgstr "sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)" -#: tutorial/modules.rst:457 +#: tutorial/modules.rst:459 msgid "An alternative way of importing the submodule is::" msgstr "Ένα εναλλακτικός τρόπος για την εισαγωγή του submodule είναι::" -#: tutorial/modules.rst:459 +#: tutorial/modules.rst:461 msgid "from sound.effects import echo" msgstr "from sound.effects import echo" -#: tutorial/modules.rst:461 +#: tutorial/modules.rst:463 msgid "" "This also loads the submodule :mod:`!echo`, and makes it available without " "its package prefix, so it can be used as follows::" @@ -1033,11 +1037,11 @@ msgstr "" "Αυτό φορτώνει επίσης το submodule :mod:`!echo`, και την καθιστά διαθέσιμη " "χωρίς το πρόθεμα πακέτου, ώστε να μπορεί να χρησιμοποιηθεί ως εξής::" -#: tutorial/modules.rst:464 +#: tutorial/modules.rst:466 msgid "echo.echofilter(input, output, delay=0.7, atten=4)" msgstr "echo.echofilter(input, output, delay=0.7, atten=4)" -#: tutorial/modules.rst:466 +#: tutorial/modules.rst:468 msgid "" "Yet another variation is to import the desired function or variable " "directly::" @@ -1045,11 +1049,11 @@ msgstr "" "Μια άλλη παραλλαγή είναι η απευθείας εισαγωγή της επιθυμητής συνάρτησης ή " "μεταβλητής::" -#: tutorial/modules.rst:468 +#: tutorial/modules.rst:470 msgid "from sound.effects.echo import echofilter" msgstr "from sound.effects.echo import echofilter" -#: tutorial/modules.rst:470 +#: tutorial/modules.rst:472 msgid "" "Again, this loads the submodule :mod:`!echo`, but this makes its function :" "func:`!echofilter` directly available::" @@ -1057,11 +1061,11 @@ msgstr "" "Και πάλι, αυτό φορτώνει το submodule :mod:`!echo`, αλλά αυτό κάνει τη " "συνάρτηση της :func:`!echofilter` άμεσα διαθέσιμη::" -#: tutorial/modules.rst:473 +#: tutorial/modules.rst:475 msgid "echofilter(input, output, delay=0.7, atten=4)" msgstr "echofilter(input, output, delay=0.7, atten=4)" -#: tutorial/modules.rst:475 +#: tutorial/modules.rst:477 msgid "" "Note that when using ``from package import item``, the item can be either a " "submodule (or subpackage) of the package, or some other name defined in the " @@ -1077,7 +1081,7 @@ msgstr "" "όχι, υποθέτει ότι είναι ένα module και επιχειρεί να το φορτώσει , αν δεν το " "βρει δημιουργεί η εξαίρεση :exc:`ImportError`." -#: tutorial/modules.rst:482 +#: tutorial/modules.rst:484 msgid "" "Contrarily, when using syntax like ``import item.subitem.subsubitem``, each " "item except for the last must be a package; the last item can be a module or " @@ -1090,11 +1094,11 @@ msgstr "" "δεν μπορεί να είναι μια κλάση ή συνάρτηση ή μεταβλητή που ορίζεται από " "προηγούμενο στοιχείο." -#: tutorial/modules.rst:491 +#: tutorial/modules.rst:493 msgid "Importing \\* From a Package" msgstr "Εισάγοντας \\* από ένα Πακέτο" -#: tutorial/modules.rst:495 +#: tutorial/modules.rst:497 msgid "" "Now what happens when the user writes ``from sound.effects import *``? " "Ideally, one would hope that this somehow goes out to the filesystem, finds " @@ -1109,7 +1113,7 @@ msgstr "" "μπορεί να έχει ανεπιθύμητες παρενέργειες που θα έπρεπε να συμβούν όταν το " "submodule εισάγεται ρητά." -#: tutorial/modules.rst:501 +#: tutorial/modules.rst:503 msgid "" "The only solution is for the package author to provide an explicit index of " "the package. The :keyword:`import` statement uses the following convention: " @@ -1133,11 +1137,11 @@ msgstr "" "παράδειγμα το αρχείο :file:`sound/effects/__init__.py` θα μπορούσε να " "περιέχει τον ακόλουθο κώδικα::" -#: tutorial/modules.rst:511 +#: tutorial/modules.rst:513 msgid "__all__ = [\"echo\", \"surround\", \"reverse\"]" msgstr "__all__ = [\"echo\", \"surround\", \"reverse\"]" -#: tutorial/modules.rst:513 +#: tutorial/modules.rst:515 msgid "" "This would mean that ``from sound.effects import *`` would import the three " "named submodules of the :mod:`!sound.effects` package." @@ -1145,7 +1149,7 @@ msgstr "" "Αυτό θα σήμαινε ότι ``from sound.effects import *`` θα εισαγάγει τα τρία " "submodules με το όνομα του πακέτου :mod:`!sound.effects`." -#: tutorial/modules.rst:516 +#: tutorial/modules.rst:518 msgid "" "Be aware that submodules might become shadowed by locally defined names. For " "example, if you added a ``reverse`` function to the :file:`sound/effects/" @@ -1161,7 +1165,7 @@ msgstr "" "``surround``, αλλά *όχι* το submodule ``reverse``, επειδή επισκιάζεται από " "την τοπικά καθορισμένη συνάρτηση ``reverse``::" -#: tutorial/modules.rst:523 +#: tutorial/modules.rst:525 msgid "" "__all__ = [\n" " \"echo\", # refers to the 'echo.py' file\n" @@ -1181,7 +1185,7 @@ msgstr "" "def reverse(msg: str): # <-- this name shadows the 'reverse.py' submodule\n" " return msg[::-1] # in the case of a 'from sound.effects import *'" -#: tutorial/modules.rst:532 +#: tutorial/modules.rst:534 msgid "" "If ``__all__`` is not defined, the statement ``from sound.effects import *`` " "does *not* import all submodules from the package :mod:`!sound.effects` into " @@ -1203,7 +1207,7 @@ msgstr "" "Περιλαμβάνει επίσης τυχόν submodules του πακέτου που φορτώθηκαν ρητά από " "προηγούμενες δηλώσεις :keyword:`import`. Σκεφτείτε αυτόν τον κώδικα::" -#: tutorial/modules.rst:541 +#: tutorial/modules.rst:543 msgid "" "import sound.effects.echo\n" "import sound.effects.surround\n" @@ -1213,7 +1217,7 @@ msgstr "" "import sound.effects.surround\n" "from sound.effects import *" -#: tutorial/modules.rst:545 +#: tutorial/modules.rst:547 msgid "" "In this example, the :mod:`!echo` and :mod:`!surround` modules are imported " "in the current namespace because they are defined in the :mod:`!sound." @@ -1222,10 +1226,10 @@ msgid "" msgstr "" "Σε αυτό το παράδειγμα, τα modules :mod:`!echo` και :mod:`!surround` " "εισάγονται στο τρέχον namespace επειδή ορίζονται στο πακέτο :mod:`!sound." -"effects`όταν η δήλωση ``from...import`` εκτελείται. (Αυτό λειτουργεί επίσης " -"όταν ορίζεται το ``__all__``)." +"effects` όταν η δήλωση ``from...import`` εκτελείται. (Αυτό λειτουργεί " +"επίσης όταν ορίζεται το ``__all__``)." -#: tutorial/modules.rst:550 +#: tutorial/modules.rst:552 msgid "" "Although certain modules are designed to export only names that follow " "certain patterns when you use ``import *``, it is still considered bad " @@ -1235,7 +1239,7 @@ msgstr "" "ακολουθούν ορισμένα μοτίβα όταν χρησιμοποιείτε το ``import *``, εξακολουθεί " "να θεωρείται κακή πρακτική στον κώδικα παραγωγής." -#: tutorial/modules.rst:554 +#: tutorial/modules.rst:556 msgid "" "Remember, there is nothing wrong with using ``from package import " "specific_submodule``! In fact, this is the recommended notation unless the " @@ -1247,11 +1251,11 @@ msgstr "" "σημείωση, εκτός εάν το module εισαγωγής χρειάζεται να χρησιμοποιήσει " "submodules με το ίδιο όνομα από διαφορετικά πακέτα." -#: tutorial/modules.rst:563 +#: tutorial/modules.rst:565 msgid "Intra-package References" msgstr "Intra-package αναφορές" -#: tutorial/modules.rst:565 +#: tutorial/modules.rst:567 msgid "" "When packages are structured into subpackages (as with the :mod:`!sound` " "package in the example), you can use absolute imports to refer to submodules " @@ -1266,7 +1270,7 @@ msgstr "" "στο πακέτο :mod:`!sound.effects` , μπορεί να χρησιμοποιήσει το ``from sound." "effects import echo``." -#: tutorial/modules.rst:571 +#: tutorial/modules.rst:573 msgid "" "You can also write relative imports, with the ``from module import name`` " "form of import statement. These imports use leading dots to indicate the " @@ -1279,7 +1283,7 @@ msgstr "" "στη σχετική εισαγωγή. Από το :mod:`!surround` module για παράδειγμα, μπορεί " "να χρησιμοποιήσετε::" -#: tutorial/modules.rst:576 +#: tutorial/modules.rst:578 msgid "" "from . import echo\n" "from .. import formats\n" @@ -1289,23 +1293,23 @@ msgstr "" "from .. import formats\n" "from ..filters import equalizer" -#: tutorial/modules.rst:580 +#: 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:586 +#: tutorial/modules.rst:588 msgid "Packages in Multiple Directories" msgstr "Πακέτα σε Πολλαπλούς Καταλόγους" -#: tutorial/modules.rst:588 +#: tutorial/modules.rst:590 msgid "" "Packages support one more special attribute, :attr:`~module.__path__`. This " "is initialized to be a :term:`sequence` of strings containing the name of " @@ -1320,7 +1324,7 @@ msgstr "" "μεταβλητή μπορεί να τροποποιηθεί, αυτό επηρεάζει τις μελλοντικές αναζητήσεις " "για modules και υποπακέτα που περιέχονται στο πακέτο." -#: tutorial/modules.rst:595 +#: tutorial/modules.rst:597 msgid "" "While this feature is not often needed, it can be used to extend the set of " "modules found in a package." @@ -1328,11 +1332,11 @@ msgstr "" "Ενώ αυτή η δυνατότητα δεν χρειάζεται συχνά, μπορεί να χρησιμοποιηθεί για την " "επέκταση του συνόλου των modules που βρίσκονται σε ένα πακέτο." -#: tutorial/modules.rst:600 +#: tutorial/modules.rst:602 msgid "Footnotes" msgstr "Υποσημειώσεις" -#: tutorial/modules.rst:601 +#: tutorial/modules.rst:603 msgid "" "In fact function definitions are also 'statements' that are 'executed'; the " "execution of a module-level function definition adds the function name to " @@ -1342,26 +1346,26 @@ msgstr "" "'εκτελούνται'∙ η εκτέλεση ενός ορισμού συνάρτησης σε επίπεδο module " "προσθέτει το όνομα της συνάρτησης στον καθολικό namespace του module." -#: tutorial/modules.rst:267 tutorial/modules.rst:348 +#: tutorial/modules.rst:269 tutorial/modules.rst:350 msgid "module" msgstr "module" -#: tutorial/modules.rst:184 +#: tutorial/modules.rst:186 msgid "search" msgstr "αναζήτηση" -#: tutorial/modules.rst:184 +#: tutorial/modules.rst:186 msgid "path" msgstr "path" -#: tutorial/modules.rst:267 +#: tutorial/modules.rst:269 msgid "sys" msgstr "sys" -#: tutorial/modules.rst:348 +#: tutorial/modules.rst:350 msgid "builtins" msgstr "builtins" -#: tutorial/modules.rst:493 +#: tutorial/modules.rst:495 msgid "__all__" msgstr "__all__" diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index c9a2cbd5..41a18a79 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: 2025-05-04 22:10+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \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 506d1809..c6a98211 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: 2025-05-04 22:11+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" diff --git a/tutorial/venv.po b/tutorial/venv.po index d7a38ca2..7215fe6f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 e2398f19..a438076b 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-05-04 22:06+0300\n" -"PO-Revision-Date: 2024-06-12 09:07+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -88,11 +88,11 @@ 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. Περιέχει κώδικα, " -"τεκμηρίωση, και δείκτες που σχετίζονται με την Python στο web." +"τεκμηρίωση, και δείκτες που σχετίζονται με την Python σε όλο τον ιστό." #: tutorial/whatnow.rst:36 msgid "https://docs.python.org: Fast access to Python's documentation." diff --git a/using/android.po b/using/android.po index 74668930..b87db93b 100644 --- a/using/android.po +++ b/using/android.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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" @@ -141,3 +142,16 @@ msgid "" "testbed/app/src/main/c/main_activity.c>`. This will need to be C code called " "via JNI." msgstr "" + +#: using/android.rst:68 +msgid "Building a Python package for Android" +msgstr "" + +#: using/android.rst:70 +msgid "" +"Python packages can be built for Android as wheels and released on PyPI. The " +"recommended tool for doing this is `cibuildwheel `__, which automates all the details of " +"setting up a cross-compilation environment, building the wheel, and testing " +"it on an emulator." +msgstr "" diff --git a/using/cmdline.po b/using/cmdline.po index d0626d7d..ae1aea3d 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -508,8 +508,8 @@ msgstr "" #: using/cmdline.rst:368 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:372 @@ -1522,29 +1522,36 @@ msgid "" "precedence over this variable, and :ref:`whatsnew313-free-threaded-cpython`." msgstr "" -#: using/cmdline.rst:1233 +#: using/cmdline.rst:1234 +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:1241 msgid "Debug-mode variables" msgstr "" -#: using/cmdline.rst:1237 +#: using/cmdline.rst:1245 msgid "" "If set, Python will dump objects and reference counts still alive after " "shutting down the interpreter." msgstr "" -#: using/cmdline.rst:1248 +#: using/cmdline.rst:1256 msgid "" "Needs Python configured with the :option:`--with-trace-refs` build option." msgstr "" -#: using/cmdline.rst:1244 +#: using/cmdline.rst:1252 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:1254 +#: using/cmdline.rst:1262 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 " @@ -1552,22 +1559,22 @@ msgid "" "is not treated as :mod:`__main__`." msgstr "" -#: using/cmdline.rst:1259 +#: using/cmdline.rst:1267 msgid "This can be used to execute code early during Python initialization." msgstr "" -#: using/cmdline.rst:1261 +#: using/cmdline.rst:1269 msgid "" "To import a submodule, use ``package.module`` as the value, like in an " "import statement." msgstr "" -#: using/cmdline.rst:1264 +#: using/cmdline.rst:1272 msgid "" "See also the :option:`-X presite <-X>` command-line option, which takes " "precedence over this variable." msgstr "" -#: using/cmdline.rst:1267 +#: using/cmdline.rst:1275 msgid "Needs Python configured with the :option:`--with-pydebug` build option." msgstr "" diff --git a/using/configure.po b/using/configure.po index 1f6dbaa1..e4f1eb61 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -53,7 +53,7 @@ msgstr "" #: using/configure.rst:25 msgid "" -"OpenSSL 1.1.1 is the minimum version and OpenSSL 3.0.9 is the recommended " +"OpenSSL 1.1.1 is the minimum version and OpenSSL 3.0.18 is the recommended " "minimum version for the :mod:`ssl` and :mod:`hashlib` extension modules." msgstr "" @@ -67,62 +67,68 @@ msgstr "" #: using/configure.rst:32 msgid "" +"`libmpdec `_ 2.5.0 for " +"the :mod:`decimal` module." +msgstr "" + +#: using/configure.rst:35 +msgid "" "Autoconf 2.71 and aclocal 1.16.5 are required to regenerate the :file:" "`configure` script." msgstr "" -#: using/configure.rst:35 +#: using/configure.rst:38 msgid "Tcl/Tk version 8.3.1 is now required." msgstr "" -#: using/configure.rst:38 +#: using/configure.rst:41 msgid "" "On Windows, Visual Studio 2015 or later is now required. Tcl/Tk version 8.4 " "is now required." msgstr "" -#: using/configure.rst:42 +#: using/configure.rst:45 msgid "" "Selected C99 features are now required, like ```` and ``static " "inline`` functions." msgstr "" -#: using/configure.rst:46 +#: using/configure.rst:49 msgid "Thread support and OpenSSL 1.0.2 are now required." msgstr "" -#: using/configure.rst:49 +#: using/configure.rst:52 msgid "OpenSSL 1.1.1 is now required. Require SQLite 3.7.15." msgstr "" -#: using/configure.rst:53 +#: using/configure.rst:56 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." msgstr "" -#: using/configure.rst:58 +#: using/configure.rst:61 msgid "Autoconf 2.71, aclocal 1.16.5 and SQLite 3.15.2 are now required." msgstr "" -#: using/configure.rst:61 +#: using/configure.rst:64 msgid "" "See also :pep:`7` \"Style Guide for C Code\" and :pep:`11` \"CPython " "platform support\"." msgstr "" -#: using/configure.rst:66 +#: using/configure.rst:69 msgid "Generated files" msgstr "" -#: using/configure.rst:68 +#: using/configure.rst:71 msgid "" "To reduce build dependencies, Python source code contains multiple generated " "files. Commands to regenerate all generated files::" msgstr "" -#: using/configure.rst:71 +#: using/configure.rst:74 msgid "" "make regen-all\n" "make regen-stdlib-module-names\n" @@ -130,17 +136,17 @@ msgid "" "make regen-configure" msgstr "" -#: using/configure.rst:76 +#: using/configure.rst:79 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:80 +#: using/configure.rst:83 msgid "configure script" msgstr "" -#: using/configure.rst:82 +#: using/configure.rst:85 msgid "" "The ``make regen-configure`` command regenerates the ``aclocal.m4`` file and " "the ``configure`` script using the ``Tools/build/regen-configure.sh`` shell " @@ -148,81 +154,81 @@ msgid "" "have a reproducible output." msgstr "" -#: using/configure.rst:87 +#: using/configure.rst:90 msgid "The container is optional, the following command can be run locally::" msgstr "" -#: using/configure.rst:89 +#: using/configure.rst:92 msgid "autoreconf -ivf -Werror" msgstr "" -#: using/configure.rst:91 +#: using/configure.rst:94 msgid "" "The generated files can change depending on the exact ``autoconf-archive``, " "``aclocal`` and ``pkg-config`` versions." msgstr "" -#: using/configure.rst:98 +#: using/configure.rst:101 msgid "Configure Options" msgstr "" -#: using/configure.rst:100 +#: using/configure.rst:103 msgid "List all :file:`configure` script options using::" msgstr "" -#: using/configure.rst:102 +#: using/configure.rst:105 msgid "./configure --help" msgstr "" -#: using/configure.rst:104 +#: using/configure.rst:107 msgid "" "See also the :file:`Misc/SpecialBuilds.txt` in the Python source " "distribution." msgstr "" -#: using/configure.rst:107 +#: using/configure.rst:110 msgid "General Options" msgstr "" -#: using/configure.rst:111 +#: using/configure.rst:114 msgid "" "Support loadable extensions in the :mod:`!_sqlite` extension module (default " "is no) of the :mod:`sqlite3` module." msgstr "" -#: using/configure.rst:114 +#: using/configure.rst:117 msgid "" "See the :meth:`sqlite3.Connection.enable_load_extension` method of the :mod:" "`sqlite3` module." msgstr "" -#: using/configure.rst:121 +#: using/configure.rst:124 msgid "" "Disable IPv6 support (enabled by default if supported), see the :mod:" "`socket` module." msgstr "" -#: using/configure.rst:126 +#: using/configure.rst:129 msgid "Define the size in bits of Python :class:`int` digits: 15 or 30 bits." msgstr "" -#: using/configure.rst:128 +#: using/configure.rst:131 msgid "By default, the digit size is 30." msgstr "" -#: using/configure.rst:130 +#: using/configure.rst:133 msgid "Define the ``PYLONG_BITS_IN_DIGIT`` to ``15`` or ``30``." msgstr "" -#: using/configure.rst:132 +#: using/configure.rst:135 msgid "See :data:`sys.int_info.bits_per_digit `." msgstr "" -#: using/configure.rst:136 +#: using/configure.rst:139 msgid "Set the Python executable suffix to *SUFFIX*." msgstr "" -#: using/configure.rst:138 +#: using/configure.rst:141 msgid "" "The default suffix is ``.exe`` on Windows and macOS (``python.exe`` " "executable), ``.js`` on Emscripten node, ``.html`` on Emscripten browser, ``." @@ -230,95 +236,95 @@ msgid "" "executable)." msgstr "" -#: using/configure.rst:143 +#: using/configure.rst:146 msgid "" "The default suffix on WASM platform is one of ``.js``, ``.html`` or ``." "wasm``." msgstr "" -#: using/configure.rst:149 +#: using/configure.rst:152 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:153 +#: using/configure.rst:156 msgid "" "Default: ``/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/" "etc/zoneinfo``." msgstr "" -#: using/configure.rst:155 +#: using/configure.rst:158 msgid "See :data:`os.pathsep` path separator." msgstr "" -#: using/configure.rst:161 +#: using/configure.rst:164 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:164 +#: using/configure.rst:167 msgid "See :const:`decimal.HAVE_CONTEXTVAR` and the :mod:`contextvars` module." msgstr "" -#: using/configure.rst:170 +#: using/configure.rst:173 msgid "Override order to check db backends for the :mod:`dbm` module" msgstr "" -#: using/configure.rst:172 +#: using/configure.rst:175 msgid "" "A valid value is a colon (``:``) separated string with the backend names:" msgstr "" -#: using/configure.rst:174 +#: using/configure.rst:177 msgid "``ndbm``;" msgstr "" -#: using/configure.rst:175 +#: using/configure.rst:178 msgid "``gdbm``;" msgstr "" -#: using/configure.rst:176 +#: using/configure.rst:179 msgid "``bdb``." msgstr "" -#: using/configure.rst:180 +#: using/configure.rst:183 msgid "Disable C locale coercion to a UTF-8 based locale (enabled by default)." msgstr "" -#: using/configure.rst:182 +#: using/configure.rst:185 msgid "Don't define the ``PY_COERCE_C_LOCALE`` macro." msgstr "" -#: using/configure.rst:184 +#: using/configure.rst:187 msgid "See :envvar:`PYTHONCOERCECLOCALE` and the :pep:`538`." msgstr "" -#: using/configure.rst:188 +#: using/configure.rst:191 msgid "Disable all freelists except the empty tuple singleton." msgstr "" -#: using/configure.rst:194 +#: using/configure.rst:197 msgid "Python library directory name (default is ``lib``)." msgstr "" -#: using/configure.rst:196 +#: using/configure.rst:199 msgid "Fedora and SuSE use ``lib64`` on 64-bit platforms." msgstr "" -#: using/configure.rst:198 +#: using/configure.rst:201 msgid "See :data:`sys.platlibdir`." msgstr "" -#: using/configure.rst:204 +#: using/configure.rst:207 msgid "" "Directory of wheel packages used by the :mod:`ensurepip` module (none by " "default)." msgstr "" -#: using/configure.rst:207 +#: using/configure.rst:210 msgid "" "Some Linux distribution packaging policies recommend against bundling " "dependencies. For example, Fedora installs wheel packages in the ``/usr/" @@ -326,500 +332,500 @@ msgid "" "_bundled` package." msgstr "" -#: using/configure.rst:216 +#: using/configure.rst:219 msgid "" "Whether configure should use :program:`pkg-config` to detect build " "dependencies." msgstr "" -#: using/configure.rst:219 +#: using/configure.rst:222 msgid "``check`` (default): :program:`pkg-config` is optional" msgstr "" -#: using/configure.rst:220 +#: using/configure.rst:223 msgid "``yes``: :program:`pkg-config` is mandatory" msgstr "" -#: using/configure.rst:221 +#: using/configure.rst:224 msgid "``no``: configure does not use :program:`pkg-config` even when present" msgstr "" -#: using/configure.rst:227 +#: using/configure.rst:230 msgid "Turn on internal Python performance statistics gathering." msgstr "" -#: using/configure.rst:229 +#: using/configure.rst:232 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:233 +#: using/configure.rst:236 msgid "" "At Python exit, dump statistics if statistics gathering was on and not " "cleared." msgstr "" -#: using/configure.rst:725 +#: using/configure.rst:728 msgid "Effects:" msgstr "" -#: using/configure.rst:238 +#: using/configure.rst:241 msgid "Add :option:`-X pystats <-X>` command line option." msgstr "" -#: using/configure.rst:239 +#: using/configure.rst:242 msgid "Add :envvar:`!PYTHONSTATS` environment variable." msgstr "" -#: using/configure.rst:240 +#: using/configure.rst:243 msgid "Define the ``Py_STATS`` macro." msgstr "" -#: using/configure.rst:241 +#: using/configure.rst:244 msgid "Add functions to the :mod:`sys` module:" msgstr "" -#: using/configure.rst:243 +#: using/configure.rst:246 msgid ":func:`!sys._stats_on`: Turns on statistics gathering." msgstr "" -#: using/configure.rst:244 +#: using/configure.rst:247 msgid ":func:`!sys._stats_off`: Turns off statistics gathering." msgstr "" -#: using/configure.rst:245 +#: using/configure.rst:248 msgid ":func:`!sys._stats_clear`: Clears the statistics." msgstr "" -#: using/configure.rst:246 +#: using/configure.rst:249 msgid "" ":func:`!sys._stats_dump`: Dump statistics to file, and clears the statistics." msgstr "" -#: using/configure.rst:248 +#: using/configure.rst:251 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:252 +#: using/configure.rst:255 msgid "Use ``Tools/scripts/summarize_stats.py`` to read the stats." msgstr "" -#: using/configure.rst:254 +#: using/configure.rst:257 msgid "Statistics:" msgstr "" -#: using/configure.rst:256 +#: using/configure.rst:259 msgid "Opcode:" msgstr "" -#: using/configure.rst:258 +#: using/configure.rst:261 msgid "Specialization: success, failure, hit, deferred, miss, deopt, failures;" msgstr "" -#: using/configure.rst:259 +#: using/configure.rst:262 msgid "Execution count;" msgstr "" -#: using/configure.rst:260 +#: using/configure.rst:263 msgid "Pair count." msgstr "" -#: using/configure.rst:262 +#: using/configure.rst:265 msgid "Call:" msgstr "" -#: using/configure.rst:264 +#: using/configure.rst:267 msgid "Inlined Python calls;" msgstr "" -#: using/configure.rst:265 +#: using/configure.rst:268 msgid "PyEval calls;" msgstr "" -#: using/configure.rst:266 +#: using/configure.rst:269 msgid "Frames pushed;" msgstr "" -#: using/configure.rst:267 +#: using/configure.rst:270 msgid "Frame object created;" msgstr "" -#: using/configure.rst:268 +#: using/configure.rst:271 msgid "" "Eval calls: vector, generator, legacy, function VECTORCALL, build class, " "slot, function \"ex\", API, method." msgstr "" -#: using/configure.rst:271 +#: using/configure.rst:274 msgid "Object:" msgstr "" -#: using/configure.rst:273 +#: using/configure.rst:276 msgid "incref and decref;" msgstr "" -#: using/configure.rst:274 +#: using/configure.rst:277 msgid "interpreter incref and decref;" msgstr "" -#: using/configure.rst:275 +#: using/configure.rst:278 msgid "allocations: all, 512 bytes, 4 kiB, big;" msgstr "" -#: using/configure.rst:276 +#: using/configure.rst:279 msgid "free;" msgstr "" -#: using/configure.rst:277 +#: using/configure.rst:280 msgid "to/from free lists;" msgstr "" -#: using/configure.rst:278 +#: using/configure.rst:281 msgid "dictionary materialized/dematerialized;" msgstr "" -#: using/configure.rst:279 +#: using/configure.rst:282 msgid "type cache;" msgstr "" -#: using/configure.rst:280 +#: using/configure.rst:283 msgid "optimization attempts;" msgstr "" -#: using/configure.rst:281 +#: using/configure.rst:284 msgid "optimization traces created/executed;" msgstr "" -#: using/configure.rst:282 +#: using/configure.rst:285 msgid "uops executed." msgstr "" -#: using/configure.rst:284 +#: using/configure.rst:287 msgid "Garbage collector:" msgstr "" -#: using/configure.rst:286 +#: using/configure.rst:289 msgid "Garbage collections;" msgstr "" -#: using/configure.rst:287 +#: using/configure.rst:290 msgid "Objects visited;" msgstr "" -#: using/configure.rst:288 +#: using/configure.rst:291 msgid "Objects collected." msgstr "" -#: using/configure.rst:296 +#: using/configure.rst:299 msgid "" "Enables **experimental** support for running Python without the :term:" "`global interpreter lock` (GIL): free threading build." msgstr "" -#: using/configure.rst:299 +#: using/configure.rst:302 msgid "" "Defines the ``Py_GIL_DISABLED`` macro and adds ``\"t\"`` to :data:`sys." "abiflags`." msgstr "" -#: using/configure.rst:302 +#: using/configure.rst:305 msgid "See :ref:`whatsnew313-free-threaded-cpython` for more detail." msgstr "" -#: using/configure.rst:308 +#: using/configure.rst:311 msgid "" "Indicate how to integrate the :ref:`JIT compiler `." msgstr "" -#: using/configure.rst:310 +#: using/configure.rst:313 msgid "``no`` - build the interpreter without the JIT." msgstr "" -#: using/configure.rst:311 +#: using/configure.rst:314 msgid "``yes`` - build the interpreter with the JIT." msgstr "" -#: using/configure.rst:312 +#: using/configure.rst:315 msgid "" "``yes-off`` - build the interpreter with the JIT but disable it by default." msgstr "" -#: using/configure.rst:313 +#: using/configure.rst:316 msgid "" "``interpreter`` - build the interpreter without the JIT, but with the tier 2 " "enabled interpreter." msgstr "" -#: using/configure.rst:315 +#: using/configure.rst:318 msgid "" "By convention, ``--enable-experimental-jit`` is a shorthand for ``--enable-" "experimental-jit=yes``." msgstr "" -#: using/configure.rst:319 +#: using/configure.rst:322 msgid "" "When building CPython with JIT enabled, ensure that your system has Python " "3.11 or later installed." msgstr "" -#: using/configure.rst:325 +#: using/configure.rst:328 msgid "Path to ``pkg-config`` utility." msgstr "" -#: using/configure.rst:330 +#: using/configure.rst:333 msgid "``pkg-config`` options." msgstr "" -#: using/configure.rst:334 +#: using/configure.rst:337 msgid "C compiler options" msgstr "" -#: using/configure.rst:1251 +#: using/configure.rst:1257 msgid "C compiler command." msgstr "" -#: using/configure.rst:1263 +#: using/configure.rst:1269 msgid "C compiler flags." msgstr "" -#: using/configure.rst:346 +#: using/configure.rst:349 msgid "C preprocessor command." msgstr "" -#: using/configure.rst:350 +#: using/configure.rst:353 msgid "C preprocessor flags, e.g. :samp:`-I{include_dir}`." msgstr "" -#: using/configure.rst:796 +#: using/configure.rst:802 msgid "Linker options" msgstr "" -#: using/configure.rst:358 +#: using/configure.rst:361 msgid "Linker flags, e.g. :samp:`-L{library_directory}`." msgstr "" -#: using/configure.rst:362 +#: using/configure.rst:365 msgid "Libraries to pass to the linker, e.g. :samp:`-l{library}`." msgstr "" -#: using/configure.rst:366 +#: using/configure.rst:369 msgid "Name for machine-dependent library files." msgstr "" -#: using/configure.rst:370 +#: using/configure.rst:373 msgid "Options for third-party dependencies" msgstr "" -#: using/configure.rst:377 +#: using/configure.rst:380 msgid "" "C compiler and linker flags to link Python to ``libbz2``, used by :mod:`bz2` " "module, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:383 +#: using/configure.rst:386 msgid "" "C compiler and linker flags for ``libncurses`` or ``libncursesw``, used by :" "mod:`curses` module, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:389 +#: using/configure.rst:392 msgid "C compiler and linker flags for ``gdbm``." msgstr "" -#: using/configure.rst:394 +#: using/configure.rst:397 msgid "" "C compiler and linker flags for ``libb2`` (:ref:`BLAKE2 `), " "used by :mod:`hashlib` module, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:400 +#: using/configure.rst:403 msgid "" "C compiler and linker flags for ``libedit``, used by :mod:`readline` module, " "overriding ``pkg-config``." msgstr "" -#: using/configure.rst:406 +#: using/configure.rst:409 msgid "" "C compiler and linker flags for ``libffi``, used by :mod:`ctypes` module, " "overriding ``pkg-config``." msgstr "" -#: using/configure.rst:412 +#: using/configure.rst:415 msgid "" "C compiler and linker flags for ``libmpdec``, used by :mod:`decimal` module, " "overriding ``pkg-config``." msgstr "" -#: using/configure.rst:417 +#: using/configure.rst:420 msgid "" "These environment variables have no effect unless :option:`--with-system-" "libmpdec` is specified." msgstr "" -#: using/configure.rst:423 +#: using/configure.rst:426 msgid "" "C compiler and linker flags for ``liblzma``, used by :mod:`lzma` module, " "overriding ``pkg-config``." msgstr "" -#: using/configure.rst:429 +#: using/configure.rst:432 msgid "" "C compiler and linker flags for ``libreadline``, used by :mod:`readline` " "module, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:435 +#: using/configure.rst:438 msgid "" "C compiler and linker flags for ``libsqlite3``, used by :mod:`sqlite3` " "module, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:441 +#: using/configure.rst:444 msgid "" "C compiler and linker flags for ``libuuid``, used by :mod:`uuid` module, " "overriding ``pkg-config``." msgstr "" -#: using/configure.rst:447 +#: using/configure.rst:450 msgid "C compiler and linker flags for PANEL, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:449 +#: using/configure.rst:452 msgid "" "C compiler and linker flags for ``libpanel`` or ``libpanelw``, used by :mod:" "`curses.panel` module, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:455 +#: using/configure.rst:458 msgid "C compiler and linker flags for TCLTK, overriding ``pkg-config``." msgstr "" -#: using/configure.rst:460 +#: using/configure.rst:463 msgid "" "C compiler and linker flags for ``libzlib``, used by :mod:`gzip` module, " "overriding ``pkg-config``." msgstr "" -#: using/configure.rst:465 +#: using/configure.rst:468 msgid "WebAssembly Options" msgstr "" -#: using/configure.rst:469 +#: using/configure.rst:472 msgid "Set build flavor for ``wasm32-emscripten``." msgstr "" -#: using/configure.rst:471 +#: using/configure.rst:474 msgid "``browser`` (default): preload minimal stdlib, default MEMFS." msgstr "" -#: using/configure.rst:472 +#: using/configure.rst:475 msgid "``node``: NODERAWFS and pthread support." msgstr "" -#: using/configure.rst:478 +#: using/configure.rst:481 msgid "Turn on dynamic linking support for WASM." msgstr "" -#: using/configure.rst:480 +#: using/configure.rst:483 msgid "" "Dynamic linking enables ``dlopen``. File size of the executable increases " "due to limited dead code elimination and additional features." msgstr "" -#: using/configure.rst:487 +#: using/configure.rst:490 msgid "Turn on pthreads support for WASM." msgstr "" -#: using/configure.rst:493 +#: using/configure.rst:496 msgid "Install Options" msgstr "" -#: using/configure.rst:497 +#: using/configure.rst:500 msgid "" "Install architecture-independent files in PREFIX. On Unix, it defaults to :" "file:`/usr/local`." msgstr "" -#: using/configure.rst:500 +#: using/configure.rst:503 msgid "This value can be retrieved at runtime using :data:`sys.prefix`." msgstr "" -#: using/configure.rst:502 +#: using/configure.rst:505 msgid "" "As an example, one can use ``--prefix=\"$HOME/.local/\"`` to install a " "Python in its home directory." msgstr "" -#: using/configure.rst:507 +#: using/configure.rst:510 msgid "" "Install architecture-dependent files in EPREFIX, defaults to :option:`--" "prefix`." msgstr "" -#: using/configure.rst:509 +#: using/configure.rst:512 msgid "This value can be retrieved at runtime using :data:`sys.exec_prefix`." msgstr "" -#: using/configure.rst:513 +#: using/configure.rst:516 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:520 +#: using/configure.rst:523 msgid "Select the :mod:`ensurepip` command run on Python installation:" msgstr "" -#: using/configure.rst:522 +#: using/configure.rst:525 msgid "" "``upgrade`` (default): run ``python -m ensurepip --altinstall --upgrade`` " "command." msgstr "" -#: using/configure.rst:524 +#: using/configure.rst:527 msgid "``install``: run ``python -m ensurepip --altinstall`` command;" msgstr "" -#: using/configure.rst:525 +#: using/configure.rst:528 msgid "``no``: don't run ensurepip;" msgstr "" -#: using/configure.rst:531 +#: using/configure.rst:534 msgid "Performance options" msgstr "" -#: using/configure.rst:533 +#: using/configure.rst:536 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:539 +#: using/configure.rst:542 msgid "" "Enable Profile Guided Optimization (PGO) using :envvar:`PROFILE_TASK` " "(disabled by default)." msgstr "" -#: using/configure.rst:542 +#: using/configure.rst:545 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:545 +#: using/configure.rst:548 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:551 +#: using/configure.rst:554 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 " @@ -828,58 +834,58 @@ msgid "" "profile-instr-unprofiled`` to :envvar:`CFLAGS`." msgstr "" -#: using/configure.rst:560 +#: using/configure.rst:563 msgid "Use ``-fno-semantic-interposition`` on GCC." msgstr "" -#: using/configure.rst:565 +#: using/configure.rst:568 msgid "" "Environment variable used in the Makefile: Python command line arguments for " "the PGO generation task." msgstr "" -#: using/configure.rst:568 +#: using/configure.rst:571 msgid "Default: ``-m test --pgo --timeout=$(TESTTIMEOUT)``." msgstr "" -#: using/configure.rst:572 +#: using/configure.rst:575 msgid "Task failure is no longer ignored silently." msgstr "" -#: using/configure.rst:577 +#: using/configure.rst:580 msgid "Enable Link Time Optimization (LTO) in any build (disabled by default)." msgstr "" -#: using/configure.rst:579 +#: using/configure.rst:582 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:584 +#: using/configure.rst:587 msgid "To use ThinLTO feature, use ``--with-lto=thin`` on Clang." msgstr "" -#: using/configure.rst:587 +#: using/configure.rst:590 msgid "" "Use ThinLTO as the default optimization policy on Clang if the compiler " "accepts the flag." msgstr "" -#: using/configure.rst:592 +#: using/configure.rst:595 msgid "" "Enable usage of the `BOLT post-link binary optimizer `_ (disabled by default)." msgstr "" -#: using/configure.rst:596 +#: using/configure.rst:599 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:600 +#: using/configure.rst:603 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 " @@ -890,7 +896,7 @@ msgid "" "encouraged." msgstr "" -#: using/configure.rst:608 +#: using/configure.rst:611 msgid "" "The :envvar:`!BOLT_INSTRUMENT_FLAGS` and :envvar:`!BOLT_APPLY_FLAGS` :" "program:`configure` variables can be defined to override the default set of " @@ -898,116 +904,116 @@ msgid "" "binaries, respectively." msgstr "" -#: using/configure.rst:617 +#: using/configure.rst:620 msgid "" "Arguments to ``llvm-bolt`` when creating a `BOLT optimized binary `_." msgstr "" -#: using/configure.rst:624 +#: using/configure.rst:627 msgid "Arguments to ``llvm-bolt`` when instrumenting binaries." msgstr "" -#: using/configure.rst:630 +#: using/configure.rst:633 msgid "" "Enable computed gotos in evaluation loop (enabled by default on supported " "compilers)." msgstr "" -#: using/configure.rst:635 +#: using/configure.rst:638 msgid "" "Disable the fast :ref:`mimalloc ` allocator (enabled by default)." msgstr "" -#: using/configure.rst:645 +#: using/configure.rst:648 msgid "See also :envvar:`PYTHONMALLOC` environment variable." msgstr "" -#: using/configure.rst:642 +#: using/configure.rst:645 msgid "" "Disable the specialized Python memory allocator :ref:`pymalloc ` " "(enabled by default)." msgstr "" -#: using/configure.rst:649 +#: using/configure.rst:652 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:652 +#: using/configure.rst:655 msgid "Don't define the ``WITH_DOC_STRINGS`` macro." msgstr "" -#: using/configure.rst:654 +#: using/configure.rst:657 msgid "See the ``PyDoc_STRVAR()`` macro." msgstr "" -#: using/configure.rst:658 +#: using/configure.rst:661 msgid "Enable C-level code profiling with ``gprof`` (disabled by default)." msgstr "" -#: using/configure.rst:662 +#: using/configure.rst:665 msgid "" "Add ``-fstrict-overflow`` to the C compiler flags (by default we add ``-fno-" "strict-overflow`` instead)." msgstr "" -#: using/configure.rst:669 +#: using/configure.rst:672 msgid "Python Debug Build" msgstr "" -#: using/configure.rst:671 +#: using/configure.rst:674 msgid "" "A debug build is Python built with the :option:`--with-pydebug` configure " "option." msgstr "" -#: using/configure.rst:674 +#: using/configure.rst:677 msgid "Effects of a debug build:" msgstr "" -#: using/configure.rst:676 +#: using/configure.rst:679 msgid "" "Display all warnings by default: the list of default warning filters is " "empty in the :mod:`warnings` module." msgstr "" -#: using/configure.rst:678 +#: using/configure.rst:681 msgid "Add ``d`` to :data:`sys.abiflags`." msgstr "" -#: using/configure.rst:679 +#: using/configure.rst:682 msgid "Add :func:`!sys.gettotalrefcount` function." msgstr "" -#: using/configure.rst:680 +#: using/configure.rst:683 msgid "Add :option:`-X showrefcount <-X>` command line option." msgstr "" -#: using/configure.rst:681 +#: using/configure.rst:684 msgid "" "Add :option:`-d` command line option and :envvar:`PYTHONDEBUG` environment " "variable to debug the parser." msgstr "" -#: using/configure.rst:683 +#: using/configure.rst:686 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:685 +#: using/configure.rst:688 msgid "" "Install :ref:`debug hooks on memory allocators ` " "to detect buffer overflow and other memory errors." msgstr "" -#: using/configure.rst:687 +#: using/configure.rst:690 msgid "Define ``Py_DEBUG`` and ``Py_REF_DEBUG`` macros." msgstr "" -#: using/configure.rst:688 +#: using/configure.rst:691 msgid "" "Add runtime checks: code surrounded by ``#ifdef Py_DEBUG`` and ``#endif``. " "Enable ``assert(...)`` and ``_PyObject_ASSERT(...)`` assertions: don't set " @@ -1015,379 +1021,382 @@ msgid "" "option). Main runtime checks:" msgstr "" -#: using/configure.rst:693 +#: using/configure.rst:696 msgid "Add sanity checks on the function arguments." msgstr "" -#: using/configure.rst:694 +#: using/configure.rst:697 msgid "" "Unicode and int objects are created with their memory filled with a pattern " "to detect usage of uninitialized objects." msgstr "" -#: using/configure.rst:696 +#: using/configure.rst:699 msgid "" "Ensure that functions which can clear or replace the current exception are " "not called with an exception raised." msgstr "" -#: using/configure.rst:698 +#: using/configure.rst:701 msgid "Check that deallocator functions don't change the current exception." msgstr "" -#: using/configure.rst:699 +#: using/configure.rst:702 msgid "" "The garbage collector (:func:`gc.collect` function) runs some basic checks " "on objects consistency." msgstr "" -#: using/configure.rst:701 +#: using/configure.rst:704 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:704 +#: using/configure.rst:707 msgid "" "See also the :ref:`Python Development Mode ` and the :option:`--" "with-trace-refs` configure option." msgstr "" -#: using/configure.rst:707 +#: using/configure.rst:710 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:714 +#: using/configure.rst:717 msgid "Debug options" msgstr "" -#: using/configure.rst:718 +#: using/configure.rst:721 msgid "" ":ref:`Build Python in debug mode `: define the ``Py_DEBUG`` " "macro (disabled by default)." msgstr "" -#: using/configure.rst:723 +#: using/configure.rst:726 msgid "Enable tracing references for debugging purpose (disabled by default)." msgstr "" -#: using/configure.rst:727 +#: using/configure.rst:730 msgid "Define the ``Py_TRACE_REFS`` macro." msgstr "" -#: using/configure.rst:728 +#: using/configure.rst:731 msgid "Add :func:`sys.getobjects` function." msgstr "" -#: using/configure.rst:729 +#: using/configure.rst:732 msgid "Add :envvar:`PYTHONDUMPREFS` environment variable." msgstr "" -#: using/configure.rst:731 +#: using/configure.rst:734 msgid "" "The :envvar:`PYTHONDUMPREFS` environment variable can be used to dump " "objects and reference counts still alive at Python exit." msgstr "" -#: using/configure.rst:734 +#: using/configure.rst:737 msgid ":ref:`Statically allocated objects ` are not traced." msgstr "" -#: using/configure.rst:738 +#: using/configure.rst:741 msgid "" "This build is now ABI compatible with release build and :ref:`debug build " "`." msgstr "" -#: using/configure.rst:744 +#: using/configure.rst:747 msgid "" "Build with C assertions enabled (default is no): ``assert(...);`` and " "``_PyObject_ASSERT(...);``." msgstr "" -#: using/configure.rst:747 +#: using/configure.rst:750 msgid "" "If set, the ``NDEBUG`` macro is not defined in the :envvar:`OPT` compiler " "variable." msgstr "" -#: using/configure.rst:750 +#: using/configure.rst:753 msgid "" "See also the :option:`--with-pydebug` option (:ref:`debug build `) which also enables assertions." msgstr "" -#: using/configure.rst:757 +#: using/configure.rst:760 msgid "Enable Valgrind support (default is no)." msgstr "" -#: using/configure.rst:761 +#: using/configure.rst:764 msgid "Enable DTrace support (default is no)." msgstr "" -#: using/configure.rst:763 +#: using/configure.rst:766 msgid "" "See :ref:`Instrumenting CPython with DTrace and SystemTap `." msgstr "" -#: using/configure.rst:770 +#: using/configure.rst:773 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:776 +#: using/configure.rst:782 msgid "" "Enable MemorySanitizer allocation error detector, ``msan`` (default is no)." msgstr "" -#: using/configure.rst:782 +#: using/configure.rst:788 msgid "" "Enable UndefinedBehaviorSanitizer undefined behaviour detector, ``ubsan`` " "(default is no)." msgstr "" -#: using/configure.rst:789 +#: using/configure.rst:795 msgid "Enable ThreadSanitizer data race detector, ``tsan`` (default is no)." msgstr "" -#: using/configure.rst:800 +#: using/configure.rst:806 msgid "Enable building a shared Python library: ``libpython`` (default is no)." msgstr "" -#: using/configure.rst:804 +#: using/configure.rst:810 msgid "" "Do not build ``libpythonMAJOR.MINOR.a`` and do not install ``python.o`` " "(built and enabled by default)." msgstr "" -#: using/configure.rst:811 +#: using/configure.rst:817 msgid "Libraries options" msgstr "" -#: using/configure.rst:815 +#: using/configure.rst:821 msgid "Link against additional libraries (default is no)." msgstr "" -#: using/configure.rst:819 +#: using/configure.rst:825 msgid "" "Build the :mod:`!pyexpat` module using an installed ``expat`` library " "(default is no)." msgstr "" -#: using/configure.rst:824 +#: using/configure.rst:830 msgid "" "Build the ``_decimal`` extension module using an installed ``mpdecimal`` " "library, see the :mod:`decimal` module (default is yes)." msgstr "" -#: using/configure.rst:829 +#: using/configure.rst:835 msgid "Default to using the installed ``mpdecimal`` library." msgstr "" -#: using/configure.rst:832 +#: using/configure.rst:838 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:836 +#: using/configure.rst:842 msgid ":option:`LIBMPDEC_CFLAGS` and :option:`LIBMPDEC_LIBS`." msgstr "" -#: using/configure.rst:840 +#: using/configure.rst:846 msgid "Designate a backend library for the :mod:`readline` module." msgstr "" -#: using/configure.rst:842 +#: using/configure.rst:848 msgid "readline: Use readline as the backend." msgstr "" -#: using/configure.rst:843 +#: using/configure.rst:849 msgid "editline: Use editline as the backend." msgstr "" -#: using/configure.rst:849 +#: using/configure.rst:855 msgid "Don't build the :mod:`readline` module (built by default)." msgstr "" -#: using/configure.rst:851 +#: using/configure.rst:857 msgid "Don't define the ``HAVE_LIBREADLINE`` macro." msgstr "" -#: using/configure.rst:857 +#: using/configure.rst:863 msgid "" "Override ``libm`` math library to *STRING* (default is system-dependent)." msgstr "" -#: using/configure.rst:861 +#: using/configure.rst:867 msgid "Override ``libc`` C library to *STRING* (default is system-dependent)." msgstr "" -#: using/configure.rst:865 +#: using/configure.rst:871 msgid "Root of the OpenSSL directory." msgstr "" -#: using/configure.rst:871 +#: using/configure.rst:877 msgid "Set runtime library directory (rpath) for OpenSSL libraries:" msgstr "" -#: using/configure.rst:873 +#: using/configure.rst:879 msgid "``no`` (default): don't set rpath;" msgstr "" -#: using/configure.rst:874 +#: using/configure.rst:880 msgid "" "``auto``: auto-detect rpath from :option:`--with-openssl` and ``pkg-config``;" msgstr "" -#: using/configure.rst:876 +#: using/configure.rst:882 msgid "*DIR*: set an explicit rpath." msgstr "" -#: using/configure.rst:882 +#: using/configure.rst:888 msgid "Security Options" msgstr "" -#: using/configure.rst:886 +#: using/configure.rst:892 msgid "Select hash algorithm for use in ``Python/pyhash.c``:" msgstr "" -#: using/configure.rst:888 +#: using/configure.rst:894 msgid "``siphash13`` (default);" msgstr "" -#: using/configure.rst:889 +#: using/configure.rst:895 msgid "``siphash24``;" msgstr "" -#: using/configure.rst:890 +#: using/configure.rst:896 msgid "``fnv``." msgstr "" -#: using/configure.rst:894 +#: using/configure.rst:900 msgid "``siphash13`` is added and it is the new default." msgstr "" -#: using/configure.rst:899 +#: using/configure.rst:905 msgid "Built-in hash modules:" msgstr "" -#: using/configure.rst:901 +#: using/configure.rst:907 msgid "``md5``;" msgstr "" -#: using/configure.rst:902 +#: using/configure.rst:908 msgid "``sha1``;" msgstr "" -#: using/configure.rst:903 +#: using/configure.rst:909 msgid "``sha256``;" msgstr "" -#: using/configure.rst:904 +#: using/configure.rst:910 msgid "``sha512``;" msgstr "" -#: using/configure.rst:905 +#: using/configure.rst:911 msgid "``sha3`` (with shake);" msgstr "" -#: using/configure.rst:906 +#: using/configure.rst:912 msgid "``blake2``." msgstr "" -#: using/configure.rst:912 +#: using/configure.rst:918 msgid "Override the OpenSSL default cipher suites string:" msgstr "" -#: using/configure.rst:914 +#: using/configure.rst:920 msgid "``python`` (default): use Python's preferred selection;" msgstr "" -#: using/configure.rst:915 +#: using/configure.rst:921 msgid "``openssl``: leave OpenSSL's defaults untouched;" msgstr "" -#: using/configure.rst:916 +#: using/configure.rst:922 msgid "*STRING*: use a custom string" msgstr "" -#: using/configure.rst:918 +#: using/configure.rst:924 msgid "See the :mod:`ssl` module." msgstr "" -#: using/configure.rst:924 +#: using/configure.rst:930 msgid "" "The settings ``python`` and *STRING* also set TLS 1.2 as minimum protocol " "version." msgstr "" -#: using/configure.rst:928 +#: using/configure.rst:934 msgid "macOS Options" msgstr "" -#: using/configure.rst:930 +#: using/configure.rst:936 msgid "See :source:`Mac/README.rst`." msgstr "" -#: using/configure.rst:935 +#: using/configure.rst:941 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:941 +#: using/configure.rst:947 msgid "" "Create a Python.framework rather than a traditional Unix install. Optional " "*INSTALLDIR* specifies the installation path (default is no)." msgstr "" -#: using/configure.rst:946 +#: using/configure.rst:952 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:949 +#: using/configure.rst:955 msgid "Options:" msgstr "" -#: using/configure.rst:951 +#: using/configure.rst:957 msgid "``universal2`` (x86-64 and arm64);" msgstr "" -#: using/configure.rst:952 +#: using/configure.rst:958 msgid "``32-bit`` (PPC and i386);" msgstr "" -#: using/configure.rst:953 +#: using/configure.rst:959 msgid "``64-bit`` (PPC64 and x86-64);" msgstr "" -#: using/configure.rst:954 +#: using/configure.rst:960 msgid "``3-way`` (i386, PPC and x86-64);" msgstr "" -#: using/configure.rst:955 +#: using/configure.rst:961 msgid "``intel`` (i386 and x86-64);" msgstr "" -#: using/configure.rst:956 +#: using/configure.rst:962 msgid "``intel-32`` (i386);" msgstr "" -#: using/configure.rst:957 +#: using/configure.rst:963 msgid "``intel-64`` (x86-64);" msgstr "" -#: using/configure.rst:958 +#: using/configure.rst:964 msgid "``all`` (PPC, i386, PPC64 and x86-64)." msgstr "" -#: using/configure.rst:960 +#: using/configure.rst:966 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 " @@ -1396,13 +1405,13 @@ msgid "" "platform-compatibility-tags/#macos>`_" msgstr "" -#: using/configure.rst:968 +#: using/configure.rst:974 msgid "" "Specify the name for the python framework on macOS only valid when :option:" "`--enable-framework` is set (default: ``Python``)." msgstr "" -#: using/configure.rst:974 +#: using/configure.rst:980 msgid "" "The Python standard library contains strings that are known to trigger " "automated inspection tool errors when submitted for distribution by the " @@ -1411,29 +1420,29 @@ msgid "" "can also be specified. This option is disabled by default." msgstr "" -#: using/configure.rst:983 +#: using/configure.rst:989 msgid "iOS Options" msgstr "" -#: using/configure.rst:985 +#: using/configure.rst:991 msgid "See :source:`iOS/README.rst`." msgstr "" -#: using/configure.rst:989 +#: using/configure.rst:995 msgid "" "Create a Python.framework. Unlike macOS, the *INSTALLDIR* argument " "specifying the installation path is mandatory." msgstr "" -#: using/configure.rst:994 +#: using/configure.rst:1000 msgid "Specify the name for the framework (default: ``Python``)." msgstr "" -#: using/configure.rst:998 +#: using/configure.rst:1004 msgid "Cross Compiling Options" msgstr "" -#: using/configure.rst:1000 +#: using/configure.rst:1006 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 " @@ -1441,28 +1450,28 @@ msgid "" "match the version of the cross compiled host Python." msgstr "" -#: using/configure.rst:1007 +#: using/configure.rst:1013 msgid "" "configure for building on BUILD, usually guessed by :program:`config.guess`." msgstr "" -#: using/configure.rst:1011 +#: using/configure.rst:1017 msgid "cross-compile to build programs to run on HOST (target platform)" msgstr "" -#: using/configure.rst:1015 +#: using/configure.rst:1021 msgid "path to build ``python`` binary for cross compiling" msgstr "" -#: using/configure.rst:1021 +#: using/configure.rst:1027 msgid "An environment variable that points to a file with configure overrides." msgstr "" -#: using/configure.rst:1023 +#: using/configure.rst:1029 msgid "Example *config.site* file:" msgstr "" -#: using/configure.rst:1025 +#: using/configure.rst:1031 msgid "" "# config.site-aarch64\n" "ac_cv_buggy_getaddrinfo=no\n" @@ -1470,15 +1479,15 @@ msgid "" "ac_cv_file__dev_ptc=no" msgstr "" -#: using/configure.rst:1034 +#: using/configure.rst:1040 msgid "Program to run CPython for the host platform for cross-compilation." msgstr "" -#: using/configure.rst:1039 +#: using/configure.rst:1045 msgid "Cross compiling example::" msgstr "" -#: using/configure.rst:1041 +#: using/configure.rst:1047 msgid "" "CONFIG_SITE=config.site-aarch64 ../configure \\\n" " --build=x86_64-pc-linux-gnu \\\n" @@ -1486,64 +1495,64 @@ msgid "" " --with-build-python=../x86_64/python" msgstr "" -#: using/configure.rst:1048 +#: using/configure.rst:1054 msgid "Python Build System" msgstr "" -#: using/configure.rst:1051 +#: using/configure.rst:1057 msgid "Main files of the build system" msgstr "" -#: using/configure.rst:1053 +#: using/configure.rst:1059 msgid ":file:`configure.ac` => :file:`configure`;" msgstr "" -#: using/configure.rst:1054 +#: using/configure.rst:1060 msgid "" ":file:`Makefile.pre.in` => :file:`Makefile` (created by :file:`configure`);" msgstr "" -#: using/configure.rst:1055 +#: using/configure.rst:1061 msgid ":file:`pyconfig.h` (created by :file:`configure`);" msgstr "" -#: using/configure.rst:1056 +#: using/configure.rst:1062 msgid "" ":file:`Modules/Setup`: C extensions built by the Makefile using :file:" "`Module/makesetup` shell script;" msgstr "" -#: using/configure.rst:1060 +#: using/configure.rst:1066 msgid "Main build steps" msgstr "" -#: using/configure.rst:1062 +#: using/configure.rst:1068 msgid "C files (``.c``) are built as object files (``.o``)." msgstr "" -#: using/configure.rst:1063 +#: using/configure.rst:1069 msgid "A static ``libpython`` library (``.a``) is created from objects files." msgstr "" -#: using/configure.rst:1064 +#: using/configure.rst:1070 msgid "" "``python.o`` and the static ``libpython`` library are linked into the final " "``python`` program." msgstr "" -#: using/configure.rst:1066 +#: using/configure.rst:1072 msgid "C extensions are built by the Makefile (see :file:`Modules/Setup`)." msgstr "" -#: using/configure.rst:1069 +#: using/configure.rst:1075 msgid "Main Makefile targets" msgstr "" -#: using/configure.rst:1072 +#: using/configure.rst:1078 msgid "make" msgstr "" -#: using/configure.rst:1074 +#: using/configure.rst:1080 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 " @@ -1554,20 +1563,20 @@ msgid "" "all`` will build. The three choices are:" msgstr "" -#: using/configure.rst:1083 +#: using/configure.rst:1089 msgid "``profile-opt`` (configured with ``--enable-optimizations``)" msgstr "" -#: using/configure.rst:1084 +#: using/configure.rst:1090 msgid "``build_wasm`` (configured with ``--with-emscripten-target``)" msgstr "" -#: using/configure.rst:1085 +#: using/configure.rst:1091 msgid "" "``build_all`` (configured without explicitly using either of the others)" msgstr "" -#: using/configure.rst:1087 +#: using/configure.rst:1093 msgid "" "Depending on the most recent source file changes, Make will rebuild any " "targets (object files and executables) deemed out-of-date, including running " @@ -1580,11 +1589,11 @@ msgid "" "problems, at the expense of longer build times." msgstr "" -#: using/configure.rst:1100 +#: using/configure.rst:1106 msgid "make platform" msgstr "" -#: using/configure.rst:1102 +#: using/configure.rst:1108 msgid "" "Build the ``python`` program, but don't build the standard library extension " "modules. This generates a file named ``platform`` which contains a single " @@ -1592,81 +1601,81 @@ msgid "" "arm64-3.12`` or ``linux-x86_64-3.13``." msgstr "" -#: using/configure.rst:1109 +#: using/configure.rst:1115 msgid "make profile-opt" msgstr "" -#: using/configure.rst:1111 +#: using/configure.rst:1117 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:1119 +#: using/configure.rst:1125 msgid "make clean" msgstr "" -#: using/configure.rst:1121 +#: using/configure.rst:1127 msgid "Remove built files." msgstr "" -#: using/configure.rst:1125 +#: using/configure.rst:1131 msgid "make distclean" msgstr "" -#: using/configure.rst:1127 +#: using/configure.rst:1133 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:1133 +#: using/configure.rst:1139 msgid "make install" msgstr "" -#: using/configure.rst:1135 +#: using/configure.rst:1141 msgid "Build the ``all`` target and install Python." msgstr "" -#: using/configure.rst:1139 +#: using/configure.rst:1145 msgid "make test" msgstr "" -#: using/configure.rst:1141 +#: using/configure.rst:1147 msgid "" "Build the ``all`` target and run the Python test suite with the ``--fast-" "ci`` option. Variables:" msgstr "" -#: using/configure.rst:1144 +#: using/configure.rst:1150 msgid "``TESTOPTS``: additional regrtest command-line options." msgstr "" -#: using/configure.rst:1145 +#: using/configure.rst:1151 msgid "``TESTPYTHONOPTS``: additional Python command-line options." msgstr "" -#: using/configure.rst:1146 +#: using/configure.rst:1152 msgid "``TESTTIMEOUT``: timeout in seconds (default: 10 minutes)." msgstr "" -#: using/configure.rst:1150 +#: using/configure.rst:1156 msgid "make buildbottest" msgstr "" -#: using/configure.rst:1152 +#: using/configure.rst:1158 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:1157 +#: using/configure.rst:1163 msgid "make regen-all" msgstr "" -#: using/configure.rst:1159 +#: using/configure.rst:1165 msgid "" "Regenerate (almost) all generated files. These include (but are not limited " "to) bytecode cases, and parser generator file. ``make regen-stdlib-module-" @@ -1674,18 +1683,18 @@ msgid "" "files <#generated-files>`_." msgstr "" -#: using/configure.rst:1166 +#: using/configure.rst:1172 msgid "C extensions" msgstr "" -#: using/configure.rst:1168 +#: using/configure.rst:1174 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:1172 +#: using/configure.rst:1178 msgid "" ">>> import sys\n" ">>> sys\n" @@ -1696,14 +1705,14 @@ msgid "" "AttributeError: module 'sys' has no attribute '__file__'" msgstr "" -#: using/configure.rst:1182 +#: using/configure.rst:1188 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:1186 +#: using/configure.rst:1192 msgid "" ">>> import _asyncio\n" ">>> _asyncio\n" @@ -1713,7 +1722,7 @@ msgid "" "'/usr/lib64/python3.9/lib-dynload/_asyncio.cpython-39-x86_64-linux-gnu.so'" msgstr "" -#: using/configure.rst:1194 +#: using/configure.rst:1200 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-" @@ -1721,304 +1730,304 @@ msgid "" "dynamic libraries." msgstr "" -#: using/configure.rst:1198 +#: using/configure.rst:1204 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:1202 +#: using/configure.rst:1208 msgid "Use ``Py_EXPORTED_SYMBOL`` if the ``Py_BUILD_CORE_MODULE`` is defined" msgstr "" -#: using/configure.rst:1203 +#: using/configure.rst:1209 msgid "Use ``Py_IMPORTED_SYMBOL`` otherwise." msgstr "" -#: using/configure.rst:1205 +#: using/configure.rst:1211 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:1211 +#: using/configure.rst:1217 msgid "Compiler and linker flags" msgstr "" -#: using/configure.rst:1213 +#: using/configure.rst:1219 msgid "" "Options set by the ``./configure`` script and environment variables and used " "by ``Makefile``." msgstr "" -#: using/configure.rst:1217 +#: using/configure.rst:1223 msgid "Preprocessor flags" msgstr "" -#: using/configure.rst:1221 +#: using/configure.rst:1227 msgid "" "Value of :envvar:`CPPFLAGS` variable passed to the ``./configure`` script." msgstr "" -#: using/configure.rst:1227 +#: using/configure.rst:1233 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:1420 +#: using/configure.rst:1426 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:1240 +#: using/configure.rst:1246 msgid "" "Extra preprocessor flags added for building the interpreter object files." msgstr "" -#: using/configure.rst:1242 +#: using/configure.rst:1248 msgid "" "Default: ``$(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) " "$(CPPFLAGS)``." msgstr "" -#: using/configure.rst:1247 +#: using/configure.rst:1253 msgid "Compiler flags" msgstr "" -#: using/configure.rst:1253 +#: using/configure.rst:1259 msgid "Example: ``gcc -pthread``." msgstr "" -#: using/configure.rst:1257 +#: using/configure.rst:1263 msgid "C++ compiler command." msgstr "" -#: using/configure.rst:1259 +#: using/configure.rst:1265 msgid "Example: ``g++ -pthread``." msgstr "" -#: using/configure.rst:1267 +#: using/configure.rst:1273 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:1271 +#: using/configure.rst:1277 msgid "In particular, :envvar:`CFLAGS` should not contain:" msgstr "" -#: using/configure.rst:1273 +#: using/configure.rst:1279 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:1278 +#: using/configure.rst:1284 msgid "" "hardening flags such as ``-Werror`` because distributions cannot control " "whether packages installed by users conform to such heightened standards." msgstr "" -#: using/configure.rst:1286 +#: using/configure.rst:1292 msgid "" "Options passed to the :mod:`compileall` command line when building PYC files " "in ``make install``. Default: ``-j0``." msgstr "" -#: using/configure.rst:1293 +#: using/configure.rst:1299 msgid "Extra C compiler flags." msgstr "" -#: using/configure.rst:1297 +#: using/configure.rst:1303 msgid "" "Value of :envvar:`CFLAGS` variable passed to the ``./configure`` script." msgstr "" -#: using/configure.rst:1304 +#: using/configure.rst:1310 msgid "" "Value of :envvar:`CFLAGS_NODIST` variable passed to the ``./configure`` " "script." msgstr "" -#: using/configure.rst:1311 +#: using/configure.rst:1317 msgid "Base compiler flags." msgstr "" -#: using/configure.rst:1315 +#: using/configure.rst:1321 msgid "Optimization flags." msgstr "" -#: using/configure.rst:1319 +#: using/configure.rst:1325 msgid "Strict or non-strict aliasing flags used to compile ``Python/dtoa.c``." msgstr "" -#: using/configure.rst:1325 +#: using/configure.rst:1331 msgid "Compiler flags used to build a shared library." msgstr "" -#: using/configure.rst:1327 +#: using/configure.rst:1333 msgid "For example, ``-fPIC`` is used on Linux and on BSD." msgstr "" -#: using/configure.rst:1331 +#: using/configure.rst:1337 msgid "Extra C flags added for building the interpreter object files." msgstr "" -#: using/configure.rst:1333 +#: using/configure.rst:1339 msgid "" "Default: ``$(CCSHARED)`` when :option:`--enable-shared` is used, or an empty " "string otherwise." msgstr "" -#: using/configure.rst:1338 +#: using/configure.rst:1344 msgid "" "Default: ``$(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) " "$(EXTRA_CFLAGS)``." msgstr "" -#: using/configure.rst:1342 +#: using/configure.rst:1348 msgid "" "Default: ``$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include/" "internal``." msgstr "" -#: using/configure.rst:1348 +#: using/configure.rst:1354 msgid "C flags used for building the interpreter object files." msgstr "" -#: using/configure.rst:1350 +#: using/configure.rst:1356 msgid "" "Default: ``$(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) " "$(CFLAGSFORSHARED)``." msgstr "" -#: using/configure.rst:1356 +#: using/configure.rst:1362 msgid "Default: ``$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE``." msgstr "" -#: using/configure.rst:1362 +#: using/configure.rst:1368 msgid "" "Compiler flags to build a standard library extension module as a built-in " "module, like the :mod:`posix` module." msgstr "" -#: using/configure.rst:1365 +#: using/configure.rst:1371 msgid "Default: ``$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN``." msgstr "" -#: using/configure.rst:1371 +#: using/configure.rst:1377 msgid "Purify command. Purify is a memory debugger program." msgstr "" -#: using/configure.rst:1373 +#: using/configure.rst:1379 msgid "Default: empty string (not used)." msgstr "" -#: using/configure.rst:1377 +#: using/configure.rst:1383 msgid "Linker flags" msgstr "" -#: using/configure.rst:1381 +#: using/configure.rst:1387 msgid "" "Linker command used to build programs like ``python`` and ``_testembed``." msgstr "" -#: using/configure.rst:1383 +#: using/configure.rst:1389 msgid "Default: ``$(PURIFY) $(CC)``." msgstr "" -#: using/configure.rst:1387 +#: using/configure.rst:1393 msgid "" "Value of :envvar:`LDFLAGS` variable passed to the ``./configure`` script." msgstr "" -#: using/configure.rst:1389 +#: using/configure.rst:1395 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:1397 +#: using/configure.rst:1403 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:1401 +#: using/configure.rst:1407 msgid "In particular, :envvar:`LDFLAGS` should not contain:" msgstr "" -#: using/configure.rst:1403 +#: using/configure.rst:1409 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:1410 +#: using/configure.rst:1416 msgid "" "Value of :envvar:`LDFLAGS_NODIST` variable passed to the ``./configure`` " "script." msgstr "" -#: using/configure.rst:1417 +#: using/configure.rst:1423 msgid "" "Linker flags, e.g. :samp:`-L{lib_dir}` if you have libraries in a " "nonstandard directory *lib_dir*." msgstr "" -#: using/configure.rst:1426 +#: using/configure.rst:1432 msgid "" "Linker flags to pass libraries to the linker when linking the Python " "executable." msgstr "" -#: using/configure.rst:1429 +#: using/configure.rst:1435 msgid "Example: ``-lrt``." msgstr "" -#: using/configure.rst:1433 +#: using/configure.rst:1439 msgid "Command to build a shared library." msgstr "" -#: using/configure.rst:1435 +#: using/configure.rst:1441 msgid "Default: ``@LDSHARED@ $(PY_LDFLAGS)``." msgstr "" -#: using/configure.rst:1439 +#: using/configure.rst:1445 msgid "Command to build ``libpython`` shared library." msgstr "" -#: using/configure.rst:1441 +#: using/configure.rst:1447 msgid "Default: ``@BLDSHARED@ $(PY_CORE_LDFLAGS)``." msgstr "" -#: using/configure.rst:1445 +#: using/configure.rst:1451 msgid "Default: ``$(CONFIGURE_LDFLAGS) $(LDFLAGS)``." msgstr "" -#: using/configure.rst:1449 +#: using/configure.rst:1455 msgid "Default: ``$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)``." msgstr "" -#: using/configure.rst:1455 +#: using/configure.rst:1461 msgid "Linker flags used for building the interpreter object files." msgstr "" -#: using/configure.rst:1461 +#: using/configure.rst:1467 msgid "Footnotes" msgstr "" -#: using/configure.rst:1462 +#: using/configure.rst:1468 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 756d6256..b4cdde6f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 b07abcda..0d8348de 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3e228838..29b14c4a 100644 --- a/using/ios.po +++ b/using/ios.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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" @@ -478,12 +479,12 @@ msgstr "" #: using/ios.rst:299 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:301 -msgid "The ``PYTHONPATH`` for the interpreter includes:" +msgid "The :envvar:`PYTHONPATH` for the interpreter includes:" msgstr "" #: using/ios.rst:303 @@ -531,14 +532,23 @@ msgstr "" #: using/ios.rst:324 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." +"folder is included as part of the :envvar:`PYTHONPATH` configuration in step " +"10." msgstr "" -#: using/ios.rst:328 +#: using/ios.rst:327 +msgid "" +"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:333 msgid "Testing a Python package" msgstr "" -#: using/ios.rst:330 +#: using/ios.rst:335 msgid "" "The CPython source tree contains :source:`a testbed project ` " "that is used to run the CPython test suite on the iOS simulator. This " @@ -546,19 +556,19 @@ msgid "" "library's test suite on iOS." msgstr "" -#: using/ios.rst:334 +#: using/ios.rst:339 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:" msgstr "" -#: using/ios.rst:337 +#: using/ios.rst:342 msgid "" "$ python iOS/testbed clone --framework --app " " --app app-testbed" msgstr "" -#: using/ios.rst:341 +#: using/ios.rst:346 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 ``--" @@ -570,41 +580,58 @@ msgid "" "testbed/iOSTestbed/app_packages`` or similar)." msgstr "" -#: using/ios.rst:350 +#: using/ios.rst:355 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:354 +#: using/ios.rst:359 msgid "$ python app-testbed run -- module1.tests" msgstr "" -#: using/ios.rst:358 +#: using/ios.rst:363 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:362 +#: using/ios.rst:367 msgid "You can also open the testbed project in Xcode by running:" msgstr "" -#: using/ios.rst:364 +#: using/ios.rst:369 msgid "$ open app-testbed/iOSTestbed.xcodeproj" msgstr "" -#: using/ios.rst:368 +#: using/ios.rst:373 msgid "This will allow you to use the full Xcode suite of tools for debugging." msgstr "" -#: using/ios.rst:371 +#: using/ios.rst:375 +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:381 +msgid "" +"The test plan also disables parallel testing, and specifies the use of the " +"``iOSTestbed.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:387 msgid "App Store Compliance" msgstr "" -#: using/ios.rst:373 +#: using/ios.rst:389 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 " @@ -613,7 +640,7 @@ msgid "" "problematic code." msgstr "" -#: using/ios.rst:378 +#: using/ios.rst:394 msgid "" "The Python standard library contains some code that is known to violate " "these automated rules. While these violations appear to be false positives, " @@ -621,7 +648,7 @@ msgid "" "Python standard library for an app to pass App Store review." msgstr "" -#: using/ios.rst:383 +#: using/ios.rst:399 msgid "" "The Python source tree contains :source:`a patch file ` that will remove all code that is known to cause " diff --git a/using/mac.po b/using/mac.po index 7e187b18..dd8f2a2b 100644 --- a/using/mac.po +++ b/using/mac.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,15 +39,15 @@ msgid "" "some other options." msgstr "" -#: using/mac.rst:34 +#: using/mac.rst:27 msgid "Using Python for macOS from ``python.org``" msgstr "" -#: using/mac.rst:37 +#: using/mac.rst:30 msgid "Installation steps" msgstr "" -#: using/mac.rst:39 +#: using/mac.rst:32 msgid "" "For `current Python versions `_ (other " "than those in ``security`` status), the release team produces a **Python for " @@ -60,7 +60,7 @@ msgid "" "versions, currently typically from at least **macOS 10.13 High Sierra** on." msgstr "" -#: using/mac.rst:51 +#: using/mac.rst:44 msgid "" "The downloaded file is a standard macOS installer package file (``.pkg``). " "File integrity information (checksum, size, sigstore signature, etc) for " @@ -70,24 +70,24 @@ msgid "" "`_." msgstr "" -#: using/mac.rst:57 +#: using/mac.rst:50 msgid "" "For a default installation, double-click on the downloaded installer package " "file. This should launch the standard macOS Installer app and display the " "first of several installer windows steps." msgstr "" -#: using/mac.rst:63 +#: using/mac.rst:56 msgid "" "Clicking on the **Continue** button brings up the **Read Me** for this " "installer. Besides other important information, the **Read Me** documents " "which Python version is going to be installed and on what versions of macOS " "it is supported. You may need to scroll through to read the whole file. By " "default, this **Read Me** will also be installed in |" -"usemac_applications_folder_version| and available to read anytime." +"applications_python_version_literal| and available to read anytime." msgstr "" -#: using/mac.rst:71 +#: using/mac.rst:64 msgid "" "Clicking on **Continue** proceeds to display the license for Python and for " "other included software. You will then need to **Agree** to the license " @@ -95,14 +95,14 @@ msgid "" "installed and available to be read later." msgstr "" -#: using/mac.rst:78 +#: using/mac.rst:71 msgid "" "After the license terms are accepted, the next step is the **Installation " "Type** display. For most uses, the standard set of installation operations " "is appropriate." msgstr "" -#: using/mac.rst:83 +#: using/mac.rst:76 msgid "" "By pressing the **Customize** button, you can choose to omit or select " "certain package components of the installer. Click on each package name to " @@ -111,7 +111,7 @@ msgid "" "macos`." msgstr "" -#: using/mac.rst:91 +#: using/mac.rst:84 msgid "" "In either case, clicking **Install** will begin the install process by " "asking permission to install new software. A macOS user name with " @@ -119,43 +119,44 @@ msgid "" "available to all users of the Mac." msgstr "" -#: using/mac.rst:95 +#: using/mac.rst:88 msgid "When the installation is complete, the **Summary** window will appear." msgstr "" -#: using/mac.rst:99 +#: using/mac.rst:92 msgid "" "Double-click on the :command:`Install Certificates.command` icon or file in " -"the |usemac_applications_folder_version| window to complete the installation." +"the |applications_python_version_literal| window to complete the " +"installation." msgstr "" -#: using/mac.rst:105 +#: using/mac.rst:98 msgid "" "This will open a temporary :program:`Terminal` shell window that will use " "the new Python to download and install SSL root certificates for its use." msgstr "" -#: using/mac.rst:111 +#: using/mac.rst:104 msgid "" "If ``Successfully installed certifi`` and ``update complete`` appears in the " "terminal window, the installation is complete. Close this terminal window " "and the installer window." msgstr "" -#: using/mac.rst:115 +#: using/mac.rst:108 msgid "A default install will include:" msgstr "" -#: using/mac.rst:117 +#: using/mac.rst:110 msgid "" -"A |usemac_applications_folder_name| folder in your :file:`Applications` " -"folder. In here you find :program:`IDLE`, the development environment that " -"is a standard part of official Python distributions; and :program:`Python " +"A |python_version_literal| folder in your :file:`Applications` folder. In " +"here you find :program:`IDLE`, the development environment that is a " +"standard part of official Python distributions; and :program:`Python " "Launcher`, which handles double-clicking Python scripts from the macOS " "`Finder `_." msgstr "" -#: using/mac.rst:122 +#: using/mac.rst:115 msgid "" "A framework :file:`/Library/Frameworks/Python.framework`, which includes the " "Python executable and libraries. The installer adds this location to your " @@ -163,7 +164,7 @@ msgid "" "to the Python executable are placed in :file:`/usr/local/bin/`." msgstr "" -#: using/mac.rst:129 +#: using/mac.rst:122 msgid "" "Recent versions of macOS include a :command:`python3` command in :file:`/usr/" "bin/python3` that links to a usually older and incomplete version of Python " @@ -177,21 +178,21 @@ msgid "" "used instead of the system :command:`python3`." msgstr "" -#: using/mac.rst:140 +#: using/mac.rst:133 msgid "How to run a Python script" msgstr "" -#: using/mac.rst:142 +#: using/mac.rst:135 msgid "" "There are two ways to invoke the Python interpreter. If you are familiar " "with using a Unix shell in a terminal window, you can invoke |" -"usemac_python_x_dot_y_literal| or ``python3`` optionally followed by one or " -"more command line options (described in :ref:`using-on-general`). The Python " +"python_x_dot_y_literal| or ``python3`` optionally followed by one or more " +"command line options (described in :ref:`using-on-general`). The Python " "tutorial also has a useful section on :ref:`using Python interactively from " "a shell `." msgstr "" -#: using/mac.rst:149 +#: using/mac.rst:142 msgid "" "You can also invoke the interpreter through an integrated development " "environment. :ref:`idle` is a basic editor and interpreter environment which " @@ -201,31 +202,31 @@ msgid "" "document." msgstr "" -#: using/mac.rst:157 +#: using/mac.rst:150 msgid "" "There are many other editors and IDEs available, see :ref:`editors` for more " "information." msgstr "" -#: using/mac.rst:160 +#: using/mac.rst:153 msgid "" "To run a Python script file from the terminal window, you can invoke the " "interpreter with the name of the script file:" msgstr "" -#: using/mac.rst:163 -msgid "|usemac_python_x_dot_y_literal| ``myscript.py``" +#: using/mac.rst:156 +msgid "|python_x_dot_y_literal| ``myscript.py``" msgstr "" -#: using/mac.rst:165 +#: using/mac.rst:158 msgid "To run your script from the Finder, you can either:" msgstr "" -#: using/mac.rst:167 +#: using/mac.rst:160 msgid "Drag it to :program:`Python Launcher`." msgstr "" -#: using/mac.rst:169 +#: using/mac.rst:162 msgid "" "Select :program:`Python Launcher` as the default application to open your " "script (or any ``.py`` script) through the Finder Info window and double-" @@ -234,7 +235,7 @@ msgid "" "invocation, or use its ``Preferences`` menu to change things globally." msgstr "" -#: using/mac.rst:175 +#: using/mac.rst:168 msgid "" "Be aware that running the script directly from the macOS Finder might " "produce different results than when running from a terminal window as the " @@ -243,156 +244,155 @@ msgid "" "program, be certain of what you are about to run." msgstr "" -#: using/mac.rst:185 +#: using/mac.rst:178 msgid "Alternative Distributions" msgstr "" -#: using/mac.rst:187 +#: using/mac.rst:180 msgid "" "Besides the standard ``python.org`` for macOS installer, there are third-" "party distributions for macOS that may include additional functionality. " "Some popular distributions and their key features:" msgstr "" -#: using/mac.rst:191 +#: using/mac.rst:184 msgid "`ActivePython `_" msgstr "" -#: using/mac.rst:192 +#: using/mac.rst:185 msgid "Installer with multi-platform compatibility, documentation" msgstr "" -#: using/mac.rst:194 +#: using/mac.rst:187 msgid "`Anaconda `_" msgstr "" -#: using/mac.rst:195 +#: using/mac.rst:188 msgid "" "Popular scientific modules (such as numpy, scipy, and pandas) and the " "``conda`` package manager." msgstr "" -#: using/mac.rst:198 +#: using/mac.rst:191 msgid "`Homebrew `_" msgstr "" -#: using/mac.rst:199 +#: using/mac.rst:192 msgid "" "Package manager for macOS including multiple versions of Python and many " "third-party Python-based packages (including numpy, scipy, and pandas)." msgstr "" -#: using/mac.rst:202 +#: using/mac.rst:195 msgid "`MacPorts `_" msgstr "" -#: using/mac.rst:203 +#: using/mac.rst:196 msgid "" "Another package manager for macOS including multiple versions of Python and " "many third-party Python-based packages. May include pre-built versions of " "Python and many packages for older versions of macOS." msgstr "" -#: using/mac.rst:207 +#: using/mac.rst:200 msgid "" "Note that distributions might not include the latest versions of Python or " "other libraries, and are not maintained or supported by the core Python team." msgstr "" -#: using/mac.rst:213 +#: using/mac.rst:206 msgid "Installing Additional Python Packages" msgstr "" -#: using/mac.rst:215 +#: using/mac.rst:208 msgid "Refer to the `Python Packaging User Guide`_ for more information." msgstr "" -#: using/mac.rst:225 +#: using/mac.rst:218 msgid "GUI Programming" msgstr "" -#: using/mac.rst:227 +#: using/mac.rst:220 msgid "" "There are several options for building GUI applications on the Mac with " "Python." msgstr "" -#: using/mac.rst:229 +#: using/mac.rst:222 msgid "" "The standard Python GUI toolkit is :mod:`tkinter`, based on the cross-" "platform Tk toolkit (https://www.tcl.tk). A macOS-native version of Tk is " "included with the installer." msgstr "" -#: using/mac.rst:233 +#: using/mac.rst:226 msgid "" "*PyObjC* is a Python binding to Apple's Objective-C/Cocoa framework. " "Information on PyObjC is available from :pypi:`pyobjc`." msgstr "" -#: using/mac.rst:236 +#: using/mac.rst:229 msgid "A number of alternative macOS GUI toolkits are available including:" msgstr "" -#: using/mac.rst:238 +#: using/mac.rst:231 msgid "" "`PySide `_: Official Python bindings to the " "`Qt GUI toolkit `_." msgstr "" -#: using/mac.rst:241 +#: using/mac.rst:234 msgid "" "`PyQt `_: Alternative Python " "bindings to Qt." msgstr "" -#: using/mac.rst:244 +#: using/mac.rst:237 msgid "" "`Kivy `_: A cross-platform GUI toolkit that supports " "desktop and mobile platforms." msgstr "" -#: using/mac.rst:247 +#: using/mac.rst:240 msgid "" "`Toga `_: Part of the `BeeWare Project `_; supports desktop, mobile, web and console apps." msgstr "" -#: using/mac.rst:250 +#: using/mac.rst:243 msgid "" "`wxPython `_: A cross-platform toolkit that supports " "desktop operating systems." msgstr "" -#: using/mac.rst:255 +#: using/mac.rst:248 msgid "Advanced Topics" msgstr "" -#: using/mac.rst:260 +#: using/mac.rst:253 msgid "Installing Free-threaded Binaries" msgstr "" -#: using/mac.rst:262 +#: using/mac.rst:255 msgid "(Experimental)" msgstr "" -#: using/mac.rst:266 +#: using/mac.rst:259 msgid "" "Everything described in this section is considered experimental, and should " "be expected to change in future releases." msgstr "" -#: using/mac.rst:269 +#: using/mac.rst:262 msgid "" "The ``python.org`` :ref:`Python for macOS ` installer package can optionally install an additional build of " -"Python |usemac_x_dot_y| that supports :pep:`703`, the experimental free-" -"threading feature (running with the :term:`global interpreter lock` " -"disabled). Check the release page on ``python.org`` for possible updated " -"information." +"Python |version| that supports :pep:`703`, the experimental free-threading " +"feature (running with the :term:`global interpreter lock` disabled). Check " +"the release page on ``python.org`` for possible updated information." msgstr "" -#: using/mac.rst:275 +#: using/mac.rst:268 msgid "" "Because this feature is still considered experimental, the support for it is " "not installed by default. It is packaged as a separate install option, " @@ -400,58 +400,57 @@ msgid "" "step of the installer as described above." msgstr "" -#: using/mac.rst:282 +#: using/mac.rst:275 msgid "" "If the box next to the **Free-threaded Python** package name is checked, a " "separate :file:`PythonT.framework` will also be installed alongside the " "normal :file:`Python.framework` in :file:`/Library/Frameworks`. This " -"configuration allows a free-threaded Python |usemac_x_dot_y| build to co-" -"exist on your system with a traditional (GIL only) Python |usemac_x_dot_y| " -"build with minimal risk while installing or testing. This installation " -"layout is itself experimental and is subject to change in future releases." +"configuration allows a free-threaded Python |version| build to co-exist on " +"your system with a traditional (GIL only) Python |version| build with " +"minimal risk while installing or testing. This installation layout is itself " +"experimental and is subject to change in future releases." msgstr "" -#: using/mac.rst:290 +#: using/mac.rst:283 msgid "Known cautions and limitations:" msgstr "" -#: using/mac.rst:292 +#: using/mac.rst:285 msgid "" "The **UNIX command-line tools** package, which is selected by default, will " -"install links in :file:`/usr/local/bin` for |" -"usemac_python_x_dot_y_t_literal|, the free-threaded interpreter, and |" -"usemac_python_x_dot_y_t_literal_config|, a configuration utility which may " -"be useful for package builders. Since :file:`/usr/local/bin` is typically " -"included in your shell ``PATH``, in most cases no changes to your ``PATH`` " -"environment variables should be needed to use |" -"usemac_python_x_dot_y_t_literal|." +"install links in :file:`/usr/local/bin` for |python_x_dot_y_t_literal|, the " +"free-threaded interpreter, and |python_x_dot_y_t_literal_config|, a " +"configuration utility which may be useful for package builders. Since :file:" +"`/usr/local/bin` is typically included in your shell ``PATH``, in most cases " +"no changes to your ``PATH`` environment variables should be needed to use |" +"python_x_dot_y_t_literal|." msgstr "" -#: using/mac.rst:300 +#: using/mac.rst:293 msgid "" "For this release, the **Shell profile updater** package and the :file:" -"`Update Shell Profile.command` in |usemac_applications_folder_version| do " +"`Update Shell Profile.command` in |applications_python_version_literal| do " "not support the free-threaded package." msgstr "" -#: using/mac.rst:304 +#: using/mac.rst:297 msgid "" "The free-threaded build and the traditional build have separate search paths " "and separate :file:`site-packages` directories so, by default, if you need a " "package available in both builds, it may need to be installed in both. The " "free-threaded package will install a separate instance of :program:`pip` for " -"use with |usemac_python_x_dot_y_t_literal|." +"use with |python_x_dot_y_t_literal|." msgstr "" -#: using/mac.rst:310 +#: using/mac.rst:303 msgid "To install a package using :command:`pip` without a :command:`venv`:" msgstr "" -#: using/mac.rst:312 -msgid "|usemac_python_x_dot_y_t_literal| ``-m pip install ``" +#: using/mac.rst:307 +msgid "python\\ |version|\\ t -m pip install " msgstr "" -#: using/mac.rst:314 +#: using/mac.rst:309 msgid "" "When working with multiple Python environments, it is usually safest and " "easiest to :ref:`create and use virtual environments `. This can " @@ -459,23 +458,23 @@ msgid "" "use:" msgstr "" -#: using/mac.rst:318 -msgid "|usemac_python_x_dot_y_t_literal| ``-m venv ``" +#: using/mac.rst:315 +msgid "python\\ |version|\\ t -m venv " msgstr "" -#: using/mac.rst:320 +#: using/mac.rst:318 msgid "then :command:`activate`." msgstr "" -#: using/mac.rst:322 +#: using/mac.rst:320 msgid "To run a free-threaded version of IDLE:" msgstr "" #: using/mac.rst:324 -msgid "|usemac_python_x_dot_y_t_literal| ``-m idlelib``" +msgid "python\\ |version|\\ t -m idlelib" msgstr "" -#: using/mac.rst:326 +#: using/mac.rst:327 msgid "" "The interpreters in both builds respond to the same :ref:`PYTHON environment " "variables ` which may have unexpected results, for " @@ -484,7 +483,7 @@ msgid "" "E`` to ignore these environment variables." msgstr "" -#: using/mac.rst:333 +#: using/mac.rst:334 msgid "" "The free-threaded build links to the third-party shared libraries, such as " "``OpenSSL`` and ``Tk``, installed in the traditional framework. This means " @@ -493,46 +492,46 @@ msgid "" "run once." msgstr "" -#: using/mac.rst:339 +#: using/mac.rst:340 msgid "" "If you cannot depend on the link in ``/usr/local/bin`` pointing to the " -"``python.org`` free-threaded |usemac_python_x_dot_y_t_literal| (for example, " -"if you want to install your own version there or some other distribution " -"does), you can explicitly set your shell ``PATH`` environment variable to " -"include the ``PythonT`` framework ``bin`` directory:" +"``python.org`` free-threaded |python_x_dot_y_t_literal| (for example, if you " +"want to install your own version there or some other distribution does), you " +"can explicitly set your shell ``PATH`` environment variable to include the " +"``PythonT`` framework ``bin`` directory:" msgstr "" -#: using/mac.rst:345 +#: using/mac.rst:348 msgid "" -"export PATH=\"/Library/Frameworks/PythonT.framework/Versions/3.13/bin\":" -"\"$PATH\"" +"export PATH=\"/Library/Frameworks/PythonT.framework/Versions/\\ |version|\\ /" +"bin\":\"$PATH\"" msgstr "" -#: using/mac.rst:349 +#: using/mac.rst:350 msgid "" "The traditional framework installation by default does something similar, " "except for :file:`Python.framework`. Be aware that having both framework " "``bin`` directories in ``PATH`` can lead to confusion if there are duplicate " -"names like ``python3.13`` in both; which one is actually used depends on the " -"order they appear in ``PATH``. The ``which python3.x`` or ``which python3." -"xt`` commands can show which path is being used. Using virtual environments " -"can help avoid such ambiguities. Another option might be to create a shell :" -"command:`alias` to the desired interpreter, like:" +"names like |python_x_dot_y_literal| in both; which one is actually used " +"depends on the order they appear in ``PATH``. The ``which python3.x`` or " +"``which python3.xt`` commands can show which path is being used. Using " +"virtual environments can help avoid such ambiguities. Another option might " +"be to create a shell :command:`alias` to the desired interpreter, like:" msgstr "" -#: using/mac.rst:358 +#: using/mac.rst:361 msgid "" -"alias py3.13=\"/Library/Frameworks/Python.framework/Versions/3.13/bin/" -"python3.13\"\n" -"alias py3.13t=\"/Library/Frameworks/PythonT.framework/Versions/3.13/bin/" -"python3.13t\"" +"alias py\\ |version|\\ =\"/Library/Frameworks/Python.framework/Versions/\\ |" +"version|\\ /bin/python\\ |version|\\ \"\n" +"alias py\\ |version|\\ t=\"/Library/Frameworks/PythonT.framework/Versions/\\ " +"|version|\\ /bin/python\\ |version|\\ t\"" msgstr "" -#: using/mac.rst:364 +#: using/mac.rst:365 msgid "Installing using the command line" msgstr "" -#: using/mac.rst:366 +#: using/mac.rst:367 msgid "" "If you want to use automation to install the ``python.org`` installer " "package (rather than by using the familiar macOS :program:`Installer` GUI " @@ -540,23 +539,23 @@ msgid "" "non-default options, too. If you are not familiar with :command:`installer`, " "it can be somewhat cryptic (see :command:`man installer` for more " "information). As an example, the following shell snippet shows one way to do " -"it, using the ``3.13.0b2`` release and selecting the free-threaded " +"it, using the |x_dot_y_b2_literal| release and selecting the free-threaded " "interpreter option:" msgstr "" -#: using/mac.rst:375 +#: using/mac.rst:378 msgid "" -"RELEASE=\"python-3.13.0b2-macos11.pkg\"\n" +"RELEASE=\"python-\\ |version|\\ 0b2-macos11.pkg\"\n" "\n" "# download installer pkg\n" -"curl -O https://www.python.org/ftp/python/3.13.0/${RELEASE}\n" +"curl -O \\https://www.python.org/ftp/python/\\ |version|\\ .0/${RELEASE}\n" "\n" "# create installer choicechanges to customize the install:\n" -"# enable the PythonTFramework-3.13 package\n" +"# enable the PythonTFramework-\\ |version|\\ package\n" "# while accepting the other defaults (install all other packages)\n" "cat > ./choicechanges.plist <\n" -"\n" "\n" "\n" @@ -566,7 +565,8 @@ msgid "" " choiceAttribute\n" " selected\n" " choiceIdentifier\n" -" org.python.Python.PythonTFramework-3.13\n" +" org.python.Python.PythonTFramework-\\ |version|\\ \n" " \n" "\n" "\n" @@ -576,34 +576,36 @@ msgid "" "plist -target /" msgstr "" -#: using/mac.rst:405 +#: using/mac.rst:406 msgid "" "You can then test that both installer builds are now available with " "something like:" msgstr "" -#: using/mac.rst:407 +#: using/mac.rst:410 msgid "" "$ # test that the free-threaded interpreter was installed if the Unix " "Command Tools package was enabled\n" -"$ /usr/local/bin/python3.13t -VV\n" -"Python 3.13.0b2 experimental free-threading build (v3.13.0b2:3a83b172af, " -"Jun 5 2024, 12:57:31) [Clang 15.0.0 (clang-1500.3.9.4)]\n" -"$ # and the traditional interpreter\n" -"$ /usr/local/bin/python3.13 -VV\n" -"Python 3.13.0b2 (v3.13.0b2:3a83b172af, Jun 5 2024, 12:50:24) [Clang 15.0.0 " +"$ /usr/local/bin/python\\ |version|\\ t -VV\n" +"Python \\ |version|\\ .0b2 experimental free-threading build (v\\ |version|" +"\\ .0b2:3a83b172af, Jun 5 2024, 12:57:31) [Clang 15.0.0 " "(clang-1500.3.9.4)]\n" +"$ # and the traditional interpreter\n" +"$ /usr/local/bin/python\\ |version|\\ -VV\n" +"Python \\ |version|\\ .0b2 (v\\ |version|\\ .0b2:3a83b172af, Jun 5 2024, " +"12:50:24) [Clang 15.0.0 (clang-1500.3.9.4)]\n" "$ # test that they are also available without the prefix if /usr/local/bin " "is on $PATH\n" -"$ python3.13t -VV\n" -"Python 3.13.0b2 experimental free-threading build (v3.13.0b2:3a83b172af, " -"Jun 5 2024, 12:57:31) [Clang 15.0.0 (clang-1500.3.9.4)]\n" -"$ python3.13 -VV\n" -"Python 3.13.0b2 (v3.13.0b2:3a83b172af, Jun 5 2024, 12:50:24) [Clang 15.0.0 " -"(clang-1500.3.9.4)]" +"$ python\\ |version|\\ t -VV\n" +"Python \\ |version|\\ .0b2 experimental free-threading build (v\\ |version|" +"\\ .0b2:3a83b172af, Jun 5 2024, 12:57:31) [Clang 15.0.0 " +"(clang-1500.3.9.4)]\n" +"$ python\\ |version|\\ -VV\n" +"Python \\ |version|\\ .0b2 (v\\ |version|\\ .0b2:3a83b172af, Jun 5 2024, " +"12:50:24) [Clang 15.0.0 (clang-1500.3.9.4)]" msgstr "" -#: using/mac.rst:423 +#: using/mac.rst:424 msgid "" "Current ``python.org`` installers only install to fixed locations like :file:" "`/Library/Frameworks/`, :file:`/Applications`, and :file:`/usr/local/bin`. " @@ -611,23 +613,23 @@ msgid "" "other locations." msgstr "" -#: using/mac.rst:431 +#: using/mac.rst:432 msgid "Distributing Python Applications" msgstr "" -#: using/mac.rst:433 +#: using/mac.rst:434 msgid "" "A range of tools exist for converting your Python code into a standalone " "distributable application:" msgstr "" -#: using/mac.rst:436 +#: using/mac.rst:437 msgid "" ":pypi:`py2app`: Supports creating macOS ``.app`` bundles from a Python " "project." msgstr "" -#: using/mac.rst:439 +#: using/mac.rst:440 msgid "" "`Briefcase `_: Part of the `BeeWare " "Project `_; a cross-platform packaging tool that " @@ -635,17 +637,17 @@ msgid "" "and notarization." msgstr "" -#: using/mac.rst:444 +#: using/mac.rst:445 msgid "" "`PyInstaller `_: A cross-platform packaging tool " "that creates a single file or folder as a distributable artifact." msgstr "" -#: using/mac.rst:448 +#: using/mac.rst:449 msgid "App Store Compliance" msgstr "" -#: using/mac.rst:450 +#: using/mac.rst:451 msgid "" "Apps submitted for distribution through the macOS App Store must pass " "Apple's app review process. This process includes a set of automated " @@ -653,7 +655,7 @@ msgid "" "problematic code." msgstr "" -#: using/mac.rst:454 +#: using/mac.rst:455 msgid "" "The Python standard library contains some code that is known to violate " "these automated rules. While these violations appear to be false positives, " @@ -661,7 +663,7 @@ msgid "" "modify the Python standard library for an app to pass App Store review." msgstr "" -#: using/mac.rst:459 +#: using/mac.rst:460 msgid "" "The Python source tree contains :source:`a patch file ` that will remove all code that is known to cause " @@ -670,7 +672,7 @@ msgid "" "compliance` option." msgstr "" -#: using/mac.rst:465 +#: using/mac.rst:466 msgid "" "This patch is not normally required to use CPython on a Mac; nor is it " "required if you are distributing an app *outside* the macOS App Store. It is " @@ -678,11 +680,11 @@ msgid "" "channel." msgstr "" -#: using/mac.rst:470 +#: using/mac.rst:471 msgid "Other Resources" msgstr "" -#: using/mac.rst:472 +#: using/mac.rst:473 msgid "" "The `python.org Help page `_ has links " "to many useful resources. The `Pythonmac-SIG mailing list \n" "Language-Team: PyGreece \n" @@ -190,7 +190,7 @@ msgid "" "contribute patches, you will need a clone.)" msgstr "" "Αν θέλετε να κάνετε compile το CPython μόνοι σας, το πρώτο πράγμα που πρέπει " -"να κάνετε είναι να πάρετε τον πηγαίο κώδικα `_. Μπορείτε να κατεβάσετε είτε τον πηγαίο κώδικα της " "τελευταίας έκδοσης είτε απλά να πάρετε έναν καινούργιο `clone `_. (Αν θέλετε να " @@ -228,8 +228,8 @@ msgid "" msgstr "" "Το ``make install`` μπορεί να αντικαταστήσει ή να μεταμφιέσει το :file:" "`python3` σε δυαδικό. Επομένως προτείνεται το ``make altinstall`` σε σχέση " -"με το ``make install`` που μπορεί να εγκαταστήσει μόνο το :" -"file`{exec_prefix}/bin/python{version}`." +"με το ``make install`` που μπορεί να εγκαταστήσει μόνο το :file:" +"`{exec_prefix}/bin/python{version}`." #: using/unix.rst:111 msgid "Python-related paths and files" diff --git a/using/windows.po b/using/windows.po index 08ea1329..30155820 100644 --- a/using/windows.po +++ b/using/windows.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" -"PO-Revision-Date: 2025-11-21 08:56+0200\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" +"PO-Revision-Date: 2025-11-27 09:00+0200\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" @@ -1048,18 +1048,18 @@ msgstr "" #: using/windows.rst:409 msgid "" "At runtime, Python will use a private copy of well-known Windows folders and " -"the registry. For example, if the environment variable :envvar:`%APPDATA%` " +"the registry. For example, if the environment variable :envvar:`!%APPDATA%` " "is :file:`c:\\\\Users\\\\\\\\AppData\\\\`, then when writing to :file:" "`C:\\\\Users\\\\\\\\AppData\\\\Local` will write to :file:`C:\\" "\\Users\\\\\\\\AppData\\\\Local\\\\Packages\\" "\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\\\\LocalCache\\\\Local\\" "\\`." msgstr "" -"Κατά την εκτέλεση, η Python θα χρησιμοποιήσει ένα ιδιωτικό αντίγραφο γνωστών " -"φακέλων των Windows και του μητρώου. Για παράδειγμα, εάν η μεταβλητή " -"περιβάλλοντος :envvar:`%APPDATA%` είναι :file:`c:\\\\Users\\\\\\" -"\\AppData\\\\`, τότε όταν γράφεται σε :file:`C:\\\\Users\\\\\\" -"\\AppData\\\\Local` θα γραφεί σε :file:`C:\\\\Users\\\\\\\\AppData\\" +"Κατά το χρόνο εκτέλεσης, η Python θα χρησιμοποιεί ένα ιδιωτικό αντίγραφο " +"γνωστών φακέλων των Windows και του μητρώου. Για παράδειγμα, εάν η μεταβλητή " +"περιβάλλοντος :envvar:`!%APPDATA%` είναι :file:`c:\\\\Users\\\\\\" +"\\AppData\\\\`, τότε κατά την εγγραφή στο :file:`C:\\\\Users\\\\\\" +"\\AppData\\\\Local` θα γράψει στο :file:`C:\\\\Users\\\\\\\\AppData\\" "\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\\" "\\LocalCache\\\\Local\\\\`." @@ -1522,7 +1522,7 @@ msgid "" "of-life-transition-to-the-Enthought-Deployment-Manager-EDM-and-Visual-Studio-" "Code>`_." msgstr "" -"Προηγουμένως, η Enthought παρείχε το Canopy, αλλά έφτασε στο τέλος της ζωής " +"Προηγουμένως, η Enthought παρείχε το Canopy, αλλά `έφτασε στο τέλος της ζωής " "του το 2016 `_." @@ -1811,7 +1811,7 @@ msgid "" "recommended to set the environment variable temporarily or use the ``-X " "utf8`` command line option." msgstr "" -"Λάβετε υπόψη ότι η προσθήκη ``PYTHONUTF8=1``στις προεπιλεγμένες μεταβλητές " +"Λάβετε υπόψη ότι η προσθήκη ``PYTHONUTF8=1`` στις προεπιλεγμένες μεταβλητές " "περιβάλλοντος θα επηρεάσει όλες τις εφαρμογές Python 3.7+ στο σύστημα σας. " "Εάν έχετε οποιεσδήποτε εφαρμογές Python 3.7+ που βασίζονται στην " "κωδικοποίηση του συστήματος παλαιού τύπου, συνιστάται να ορίσετε το " @@ -2284,9 +2284,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, αυτή η φόρμα " @@ -2296,8 +2296,8 @@ msgstr "" "μια αναζήτηση :envvar:`PATH`. Εάν δεν μπορεί να βρεθεί ένα εκτελέσιμο αρχείο " "που ταιριάζει με το πρώτο όρισμα μετά την εντολή ``env``, αλλά το όρισμα " "ξεκινά με ``python``, ο χειρισμός του θα γίνει όπως περιγράφεται για τις " -"άλλες εικονικές εντολές. Η μεταβλητή περιβάλλοντος :envvar:" -"`PYLAUNCHER_NO_SEARCH_PATH` μπορεί να οριστεί (σε οποιαδήποτε τιμή) για να " +"άλλες εικονικές εντολές. Η μεταβλητή περιβάλλοντος :envvar:`!" +"PYLAUNCHER_NO_SEARCH_PATH` μπορεί να οριστεί (σε οποιαδήποτε τιμή) για να " "παραλείψει αυτήν την αναζήτηση για :envvar:`PATH`." #: using/windows.rst:973 @@ -2435,14 +2435,14 @@ msgstr "" #: using/windows.rst:1036 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 " @@ -2603,21 +2603,22 @@ msgstr "Διαγνωστικά" #: using/windows.rst:1110 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 (δηλαδή στην κονσόλα). Ενώ αυτές οι πληροφορίες " -"καταφέρνουν να είναι ταυτόχρονα αναλυτικές *και*, θα πρέπει να επιτρέπουν " -"για να δείτε ποιες εκδόσεις της Python εντοπίστηκαν, γιατί επιλέχθηκε μια " -"συγκεκριμένη έκδοση και η ακριβής γραμμή εντολών που χρησιμοποιήθηκε για την " -"εκτέλεση του στόχου Python. Προορίζεται κυρίως για δοκιμή και εντοπισμό " -"σφαλμάτων." +"καταφέρνουν να είναι ταυτόχρονα αναλυτικές *και* περιεκτικές, θα πρέπει να " +"επιτρέπουν για να δείτε ποιες εκδόσεις της Python εντοπίστηκαν, γιατί " +"επιλέχθηκε μια συγκεκριμένη έκδοση και η ακριβής γραμμή εντολών που " +"χρησιμοποιήθηκε για την εκτέλεση του στόχου Python. Προορίζεται κυρίως για " +"δοκιμή και εντοπισμό σφαλμάτων." #: using/windows.rst:1118 msgid "Dry Run" @@ -2625,15 +2626,15 @@ msgstr "Dry Run" #: using/windows.rst:1120 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. Σημειώστε ότι η " @@ -2646,13 +2647,13 @@ msgstr "Εγκατάσταση κατ' απαίτηση" #: using/windows.rst:1130 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, το πρόγραμμα " "εκκίνησης θα επιχειρήσει να την εγκαταστήσει. Αυτό μπορεί να απαιτεί την " @@ -2661,15 +2662,15 @@ msgstr "" #: using/windows.rst:1135 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` αναγκάζει το " +"Μια πρόσθετη μεταβλητή :envvar:`!PYLAUNCHER_ALWAYS_INSTALL` αναγκάζει το " "πρόγραμμα εκκίνησης να προσπαθεί πάντα να εγκαταστήσει την Python, ακόμα κι " "αν εντοπιστεί. Αυτό προορίζεται κυρίως για δοκιμή (και θα πρέπει να " -"χρησιμοποιείται με το :envvar:`PYLAUNCHER_DRYRUN`)." +"χρησιμοποιείται με το :envvar:`!PYLAUNCHER_DRYRUN`)." #: using/windows.rst:1140 msgid "Return codes" @@ -3141,7 +3142,7 @@ msgid "" "have done this, you can distribute your application without requiring your " "users to install Python." msgstr "" -"Το cx_Freeze `_ αναδιπλώνει " +"Το `cx_Freeze `_ αναδιπλώνει " "Python scripts σε εκτελέσιμα προγράμματα των Windows (:file:`{*}.exe` " "αρχεία). Όταν το κάνετε αυτό, μπορείτε να διανείμετε την εφαρμογή σας χωρίς " "να απαιτείται από τους χρήστες σας να εγκαταστήσουν την Python." diff --git a/whatsnew/2.0.po b/whatsnew/2.0.po index 61aa3730..c0800239 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 6fc344b9..7ae3597f 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 c1b77838..9a10d855 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 523a94fb..50e0b0d2 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3651b44d..be99d264 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 3d7ee2fc..f9b74435 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 23e23ece..3434d8d3 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 a7dcbdd0..3102c563 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 da5ec3af..31f38638 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 9eec8646..51530705 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 0dee9b70..c05e731d 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -123,7 +123,7 @@ msgstr "" msgid ":pep:`597`, Add optional EncodingWarning" msgstr "" -#: whatsnew/3.10.rst:2053 +#: whatsnew/3.10.rst:2054 msgid "New Features" msgstr "" @@ -785,14 +785,15 @@ msgstr "" msgid "" "If you are using classes to structure your data, you can use as a pattern " "the class name followed by an argument list resembling a constructor. This " -"pattern has the ability to capture class attributes into variables::" +"pattern has the ability to capture instance attributes into variables::" msgstr "" #: whatsnew/3.10.rst:556 msgid "" "class Point:\n" -" x: int\n" -" y: int\n" +" def __init__(self, x, y):\n" +" self.x = x\n" +" self.y = y\n" "\n" "def location(point):\n" " match point:\n" @@ -808,11 +809,11 @@ msgid "" " print(\"Not a point\")" msgstr "" -#: whatsnew/3.10.rst:574 +#: whatsnew/3.10.rst:575 msgid "Patterns with positional parameters" msgstr "" -#: whatsnew/3.10.rst:576 +#: whatsnew/3.10.rst:577 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 " @@ -822,7 +823,7 @@ msgid "" "attribute to the ``var`` variable)::" msgstr "" -#: whatsnew/3.10.rst:582 +#: whatsnew/3.10.rst:583 msgid "" "Point(1, var)\n" "Point(1, y=var)\n" @@ -830,17 +831,17 @@ msgid "" "Point(y=var, x=1)" msgstr "" -#: whatsnew/3.10.rst:588 +#: whatsnew/3.10.rst:589 msgid "Nested patterns" msgstr "" -#: whatsnew/3.10.rst:590 +#: whatsnew/3.10.rst:591 msgid "" "Patterns can be arbitrarily nested. For example, if our data is a short " "list of points, it could be matched like this::" msgstr "" -#: whatsnew/3.10.rst:593 +#: whatsnew/3.10.rst:594 msgid "" "match points:\n" " case []:\n" @@ -855,18 +856,18 @@ msgid "" " print(\"Something else is found in the list.\")" msgstr "" -#: whatsnew/3.10.rst:606 +#: whatsnew/3.10.rst:607 msgid "Complex patterns and the wildcard" msgstr "" -#: whatsnew/3.10.rst:608 +#: whatsnew/3.10.rst:609 msgid "" "To this point, the examples have used ``_`` alone in the last case " "statement. A wildcard can be used in more complex patterns, such as " "``('error', code, _)``. For example::" msgstr "" -#: whatsnew/3.10.rst:612 +#: whatsnew/3.10.rst:613 msgid "" "match test_variable:\n" " case ('warning', code, 40):\n" @@ -875,24 +876,24 @@ msgid "" " print(f\"An error {code} occurred.\")" msgstr "" -#: whatsnew/3.10.rst:618 +#: whatsnew/3.10.rst:619 msgid "" "In the above case, ``test_variable`` will match for ('error', code, 100) and " "('error', code, 800)." msgstr "" -#: whatsnew/3.10.rst:622 +#: whatsnew/3.10.rst:623 msgid "Guard" msgstr "" -#: whatsnew/3.10.rst:624 +#: whatsnew/3.10.rst:625 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 " "value capture happens before the guard is evaluated::" msgstr "" -#: whatsnew/3.10.rst:628 +#: whatsnew/3.10.rst:629 msgid "" "match point:\n" " case Point(x, y) if x == y:\n" @@ -901,15 +902,15 @@ msgid "" " print(f\"Point is not on the diagonal.\")" msgstr "" -#: whatsnew/3.10.rst:635 +#: whatsnew/3.10.rst:636 msgid "Other Key Features" msgstr "" -#: whatsnew/3.10.rst:637 +#: whatsnew/3.10.rst:638 msgid "Several other key features:" msgstr "" -#: whatsnew/3.10.rst:639 +#: whatsnew/3.10.rst:640 msgid "" "Like unpacking assignments, tuple and list patterns have exactly the same " "meaning and actually match arbitrary sequences. Technically, the subject " @@ -918,7 +919,7 @@ msgid "" "match strings." msgstr "" -#: whatsnew/3.10.rst:645 +#: whatsnew/3.10.rst:646 msgid "" "Sequence patterns support wildcards: ``[x, y, *rest]`` and ``(x, y, *rest)`` " "work similar to wildcards in unpacking assignments. The name after ``*`` " @@ -926,7 +927,7 @@ msgid "" "items without binding the remaining items." msgstr "" -#: whatsnew/3.10.rst:650 +#: whatsnew/3.10.rst:651 msgid "" "Mapping patterns: ``{\"bandwidth\": b, \"latency\": l}`` captures the " "``\"bandwidth\"`` and ``\"latency\"`` values from a dict. Unlike sequence " @@ -934,34 +935,34 @@ msgid "" "(But ``**_`` would be redundant, so is not allowed.)" msgstr "" -#: whatsnew/3.10.rst:655 +#: whatsnew/3.10.rst:656 msgid "Subpatterns may be captured using the ``as`` keyword::" msgstr "" -#: whatsnew/3.10.rst:657 +#: whatsnew/3.10.rst:658 msgid "case (Point(x1, y1), Point(x2, y2) as p2): ..." msgstr "" -#: whatsnew/3.10.rst:659 +#: whatsnew/3.10.rst:660 msgid "" "This binds x1, y1, x2, y2 like you would expect without the ``as`` clause, " "and p2 to the entire second item of the subject." msgstr "" -#: whatsnew/3.10.rst:662 +#: whatsnew/3.10.rst:663 msgid "" "Most literals are compared by equality. However, the singletons ``True``, " "``False`` and ``None`` are compared by identity." msgstr "" -#: whatsnew/3.10.rst:665 +#: whatsnew/3.10.rst:666 msgid "" "Named constants may be used in patterns. These named constants must be " "dotted names to prevent the constant from being interpreted as a capture " "variable::" msgstr "" -#: whatsnew/3.10.rst:669 +#: whatsnew/3.10.rst:670 msgid "" "from enum import Enum\n" "class Color(Enum):\n" @@ -979,17 +980,17 @@ msgid "" " print(\"I'm feeling the blues :(\")" msgstr "" -#: whatsnew/3.10.rst:684 +#: whatsnew/3.10.rst:685 msgid "" "For the full specification see :pep:`634`. Motivation and rationale are in :" "pep:`635`, and a longer tutorial is in :pep:`636`." msgstr "" -#: whatsnew/3.10.rst:691 +#: whatsnew/3.10.rst:692 msgid "Optional ``EncodingWarning`` and ``encoding=\"locale\"`` option" msgstr "" -#: whatsnew/3.10.rst:693 +#: whatsnew/3.10.rst:694 msgid "" "The default encoding of :class:`~io.TextIOWrapper` and :func:`open` is " "platform and locale dependent. Since UTF-8 is used on most Unix platforms, " @@ -997,106 +998,106 @@ msgid "" "TOML, Markdown) is a very common bug. For example::" msgstr "" -#: whatsnew/3.10.rst:698 +#: whatsnew/3.10.rst:699 msgid "" "# BUG: \"rb\" mode or encoding=\"utf-8\" should be used.\n" "with open(\"data.json\") as f:\n" " data = json.load(f)" msgstr "" -#: whatsnew/3.10.rst:702 +#: whatsnew/3.10.rst:703 msgid "" "To find this type of bug, an optional ``EncodingWarning`` is added. It is " "emitted when :data:`sys.flags.warn_default_encoding ` is true and " "locale-specific default encoding is used." msgstr "" -#: whatsnew/3.10.rst:706 +#: whatsnew/3.10.rst:707 msgid "" "``-X warn_default_encoding`` option and :envvar:`PYTHONWARNDEFAULTENCODING` " "are added to enable the warning." msgstr "" -#: whatsnew/3.10.rst:709 +#: whatsnew/3.10.rst:710 msgid "See :ref:`io-text-encoding` for more information." msgstr "" -#: whatsnew/3.10.rst:714 +#: whatsnew/3.10.rst:715 msgid "New Features Related to Type Hints" msgstr "" -#: whatsnew/3.10.rst:716 +#: whatsnew/3.10.rst:717 msgid "" "This section covers major changes affecting :pep:`484` type hints and the :" "mod:`typing` module." msgstr "" -#: whatsnew/3.10.rst:721 +#: whatsnew/3.10.rst:722 msgid "PEP 604: New Type Union Operator" msgstr "" -#: whatsnew/3.10.rst:723 +#: whatsnew/3.10.rst:724 msgid "" "A new type union operator was introduced which enables the syntax ``X | Y``. " "This provides a cleaner way of expressing 'either type X or type Y' instead " "of using :data:`typing.Union`, especially in type hints." msgstr "" -#: whatsnew/3.10.rst:727 +#: whatsnew/3.10.rst:728 msgid "" "In previous versions of Python, to apply a type hint for functions accepting " "arguments of multiple types, :data:`typing.Union` was used::" msgstr "" -#: whatsnew/3.10.rst:730 +#: whatsnew/3.10.rst:731 msgid "" "def square(number: Union[int, float]) -> Union[int, float]:\n" " return number ** 2" msgstr "" -#: whatsnew/3.10.rst:734 +#: whatsnew/3.10.rst:735 msgid "Type hints can now be written in a more succinct manner::" msgstr "" -#: whatsnew/3.10.rst:736 +#: whatsnew/3.10.rst:737 msgid "" "def square(number: int | float) -> int | float:\n" " return number ** 2" msgstr "" -#: whatsnew/3.10.rst:740 +#: whatsnew/3.10.rst:741 msgid "" "This new syntax is also accepted as the second argument to :func:" "`isinstance` and :func:`issubclass`::" msgstr "" -#: whatsnew/3.10.rst:743 +#: whatsnew/3.10.rst:744 msgid "" ">>> isinstance(1, int | str)\n" "True" msgstr "" -#: whatsnew/3.10.rst:746 +#: whatsnew/3.10.rst:747 msgid "See :ref:`types-union` and :pep:`604` for more details." msgstr "" -#: whatsnew/3.10.rst:748 +#: whatsnew/3.10.rst:749 msgid "" "(Contributed by Maggie Moss and Philippe Prados in :issue:`41428`, with " "additions by Yurii Karabas and Serhiy Storchaka in :issue:`44490`.)" msgstr "" -#: whatsnew/3.10.rst:753 +#: whatsnew/3.10.rst:754 msgid "PEP 612: Parameter Specification Variables" msgstr "" -#: whatsnew/3.10.rst:755 +#: whatsnew/3.10.rst:756 msgid "" "Two new options to improve the information provided to static type checkers " "for :pep:`484`\\ 's ``Callable`` have been added to the :mod:`typing` module." msgstr "" -#: whatsnew/3.10.rst:758 +#: whatsnew/3.10.rst:759 msgid "" "The first is the parameter specification variable. They are used to forward " "the parameter types of one callable to another callable -- a pattern " @@ -1105,7 +1106,7 @@ msgid "" "to type annotate dependency of parameter types in such a precise manner." msgstr "" -#: whatsnew/3.10.rst:764 +#: whatsnew/3.10.rst:765 msgid "" "The second option is the new ``Concatenate`` operator. It's used in " "conjunction with parameter specification variables to type annotate a higher " @@ -1113,24 +1114,24 @@ msgid "" "Examples of usage can be found in :class:`typing.Concatenate`." msgstr "" -#: whatsnew/3.10.rst:769 +#: whatsnew/3.10.rst:770 msgid "" "See :class:`typing.Callable`, :class:`typing.ParamSpec`, :class:`typing." "Concatenate`, :class:`typing.ParamSpecArgs`, :class:`typing." "ParamSpecKwargs`, and :pep:`612` for more details." msgstr "" -#: whatsnew/3.10.rst:773 +#: whatsnew/3.10.rst:774 msgid "" "(Contributed by Ken Jin in :issue:`41559`, with minor enhancements by Jelle " "Zijlstra in :issue:`43783`. PEP written by Mark Mendoza.)" msgstr "" -#: whatsnew/3.10.rst:778 +#: whatsnew/3.10.rst:779 msgid "PEP 613: TypeAlias" msgstr "" -#: whatsnew/3.10.rst:780 +#: whatsnew/3.10.rst:781 msgid "" ":pep:`484` introduced the concept of type aliases, only requiring them to be " "top-level unannotated assignments. This simplicity sometimes made it " @@ -1139,37 +1140,37 @@ msgid "" "involved. Compare::" msgstr "" -#: whatsnew/3.10.rst:785 +#: whatsnew/3.10.rst:786 msgid "" "StrCache = 'Cache[str]' # a type alias\n" "LOG_PREFIX = 'LOG[DEBUG]' # a module constant" msgstr "" -#: whatsnew/3.10.rst:788 +#: whatsnew/3.10.rst:789 msgid "" "Now the :mod:`typing` module has a special value :data:`~typing.TypeAlias` " "which lets you declare type aliases more explicitly::" msgstr "" -#: whatsnew/3.10.rst:791 +#: whatsnew/3.10.rst:792 msgid "" "StrCache: TypeAlias = 'Cache[str]' # a type alias\n" "LOG_PREFIX = 'LOG[DEBUG]' # a module constant" msgstr "" -#: whatsnew/3.10.rst:794 +#: whatsnew/3.10.rst:795 msgid "See :pep:`613` for more details." msgstr "" -#: whatsnew/3.10.rst:796 +#: whatsnew/3.10.rst:797 msgid "(Contributed by Mikhail Golubev in :issue:`41923`.)" msgstr "" -#: whatsnew/3.10.rst:799 +#: whatsnew/3.10.rst:800 msgid "PEP 647: User-Defined Type Guards" msgstr "" -#: whatsnew/3.10.rst:801 +#: whatsnew/3.10.rst:802 msgid "" ":data:`~typing.TypeGuard` has been added to the :mod:`typing` module to " "annotate type guard functions and improve information provided to static " @@ -1177,24 +1178,24 @@ msgid "" "`~typing.TypeGuard`\\ 's documentation, and :pep:`647`." msgstr "" -#: whatsnew/3.10.rst:806 +#: whatsnew/3.10.rst:807 msgid "" "(Contributed by Ken Jin and Guido van Rossum in :issue:`43766`. PEP written " "by Eric Traut.)" msgstr "" -#: whatsnew/3.10.rst:810 +#: whatsnew/3.10.rst:811 msgid "Other Language Changes" msgstr "" -#: whatsnew/3.10.rst:812 +#: whatsnew/3.10.rst:813 msgid "" "The :class:`int` type has a new method :meth:`int.bit_count`, returning the " "number of ones in the binary expansion of a given integer, also known as the " "population count. (Contributed by Niklas Fiekas in :issue:`29882`.)" msgstr "" -#: whatsnew/3.10.rst:816 +#: whatsnew/3.10.rst:817 msgid "" "The views returned by :meth:`dict.keys`, :meth:`dict.values` and :meth:`dict." "items` now all have a ``mapping`` attribute that gives a :class:`types." @@ -1202,13 +1203,13 @@ msgid "" "Dennis Sweeney in :issue:`40890`.)" msgstr "" -#: whatsnew/3.10.rst:821 +#: whatsnew/3.10.rst:822 msgid "" ":pep:`618`: The :func:`zip` function now has an optional ``strict`` flag, " "used to require that all the iterables have an equal length." msgstr "" -#: whatsnew/3.10.rst:824 +#: whatsnew/3.10.rst:825 msgid "" "Builtin and extension functions that take integer arguments no longer " "accept :class:`~decimal.Decimal`\\ s, :class:`~fractions.Fraction`\\ s and " @@ -1217,20 +1218,20 @@ msgid "" "__index__` method). (Contributed by Serhiy Storchaka in :issue:`37999`.)" msgstr "" -#: whatsnew/3.10.rst:831 +#: whatsnew/3.10.rst:832 msgid "" "If :func:`object.__ipow__` returns :data:`NotImplemented`, the operator will " "correctly fall back to :func:`object.__pow__` and :func:`object.__rpow__` as " "expected. (Contributed by Alex Shkop in :issue:`38302`.)" msgstr "" -#: whatsnew/3.10.rst:835 +#: whatsnew/3.10.rst:836 msgid "" "Assignment expressions can now be used unparenthesized within set literals " "and set comprehensions, as well as in sequence indexes (but not slices)." msgstr "" -#: whatsnew/3.10.rst:838 +#: whatsnew/3.10.rst:839 msgid "" "Functions have a new ``__builtins__`` attribute which is used to look for " "builtin symbols when a function is executed, instead of looking into " @@ -1239,7 +1240,7 @@ msgid "" "builtins. (Contributed by Mark Shannon in :issue:`42990`.)" msgstr "" -#: whatsnew/3.10.rst:844 +#: whatsnew/3.10.rst:845 msgid "" "Two new builtin functions -- :func:`aiter` and :func:`anext` have been added " "to provide asynchronous counterparts to :func:`iter` and :func:`next`, " @@ -1247,17 +1248,16 @@ msgid "" "in :issue:`31861`.)" msgstr "" -#: whatsnew/3.10.rst:849 +#: 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:856 +#: whatsnew/3.10.rst:857 msgid "" "Annotations for complex targets (everything beside ``simple name`` targets " "defined by :pep:`526`) no longer cause any runtime effects with ``from " @@ -1265,7 +1265,7 @@ msgid "" "`42737`.)" msgstr "" -#: whatsnew/3.10.rst:860 +#: whatsnew/3.10.rst:861 msgid "" "Class and module objects now lazy-create empty annotations dicts on demand. " "The annotations dicts are stored in the object’s ``__dict__`` for backwards " @@ -1274,7 +1274,7 @@ msgid "" "howto`. (Contributed by Larry Hastings in :issue:`43901`.)" msgstr "" -#: whatsnew/3.10.rst:867 +#: whatsnew/3.10.rst:868 msgid "" "Annotations consist of ``yield``, ``yield from``, ``await`` or named " "expressions are now forbidden under ``from __future__ import annotations`` " @@ -1282,7 +1282,7 @@ msgid "" "`42725`.)" msgstr "" -#: whatsnew/3.10.rst:872 +#: whatsnew/3.10.rst:873 msgid "" "Usage of unbound variables, ``super()`` and other expressions that might " "alter the processing of symbol table as annotations are now rendered " @@ -1290,7 +1290,7 @@ msgid "" "Batuhan Taskaya in :issue:`42725`.)" msgstr "" -#: whatsnew/3.10.rst:877 +#: whatsnew/3.10.rst:878 msgid "" "Hashes of NaN values of both :class:`float` type and :class:`decimal." "Decimal` type now depend on object identity. Formerly, they always hashed to " @@ -1300,121 +1300,120 @@ msgid "" "Raymond Hettinger in :issue:`43475`.)" msgstr "" -#: whatsnew/3.10.rst:884 +#: whatsnew/3.10.rst:885 msgid "" "A :exc:`SyntaxError` (instead of a :exc:`NameError`) will be raised when " "deleting the :const:`__debug__` constant. (Contributed by Donghee Na in :" "issue:`45000`.)" msgstr "" -#: whatsnew/3.10.rst:887 +#: whatsnew/3.10.rst:888 msgid "" ":exc:`SyntaxError` exceptions now have ``end_lineno`` and ``end_offset`` " "attributes. They will be ``None`` if not determined. (Contributed by Pablo " "Galindo in :issue:`43914`.)" msgstr "" -#: whatsnew/3.10.rst:892 +#: whatsnew/3.10.rst:893 msgid "New Modules" msgstr "" -#: whatsnew/3.10.rst:894 +#: whatsnew/3.10.rst:895 msgid "None." msgstr "" -#: whatsnew/3.10.rst:898 +#: whatsnew/3.10.rst:899 msgid "Improved Modules" msgstr "" -#: whatsnew/3.10.rst:901 +#: whatsnew/3.10.rst:902 msgid "asyncio" msgstr "" -#: whatsnew/3.10.rst:903 +#: 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:908 +#: whatsnew/3.10.rst:909 msgid "argparse" msgstr "" -#: whatsnew/3.10.rst:910 +#: whatsnew/3.10.rst:911 msgid "" "Misleading phrase \"optional arguments\" was replaced with \"options\" in " "argparse help. Some tests might require adaptation if they rely on exact " "output match. (Contributed by Raymond Hettinger in :issue:`9694`.)" msgstr "" -#: whatsnew/3.10.rst:914 +#: whatsnew/3.10.rst:915 msgid "array" msgstr "" -#: whatsnew/3.10.rst:916 +#: whatsnew/3.10.rst:917 msgid "" "The :meth:`~array.array.index` method of :class:`array.array` now has " "optional *start* and *stop* parameters. (Contributed by Anders Lorentsen and " "Zackery Spytz in :issue:`31956`.)" msgstr "" -#: whatsnew/3.10.rst:921 +#: whatsnew/3.10.rst:922 msgid "asynchat, asyncore, smtpd" msgstr "" -#: whatsnew/3.10.rst:922 +#: whatsnew/3.10.rst:923 msgid "" "These modules have been marked as deprecated in their module documentation " "since Python 3.6. An import-time :class:`DeprecationWarning` has now been " "added to all three of these modules." msgstr "" -#: whatsnew/3.10.rst:927 +#: whatsnew/3.10.rst:928 msgid "base64" msgstr "" -#: whatsnew/3.10.rst:929 +#: whatsnew/3.10.rst:930 msgid "" "Add :func:`base64.b32hexencode` and :func:`base64.b32hexdecode` to support " "the Base32 Encoding with Extended Hex Alphabet." msgstr "" -#: whatsnew/3.10.rst:933 +#: whatsnew/3.10.rst:934 msgid "bdb" msgstr "" -#: whatsnew/3.10.rst:935 +#: 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:939 +#: whatsnew/3.10.rst:940 msgid "bisect" msgstr "" -#: whatsnew/3.10.rst:941 +#: whatsnew/3.10.rst:942 msgid "" "Added the possibility of providing a *key* function to the APIs in the :mod:" "`bisect` module. (Contributed by Raymond Hettinger in :issue:`4356`.)" msgstr "" -#: whatsnew/3.10.rst:945 +#: whatsnew/3.10.rst:946 msgid "codecs" msgstr "" -#: whatsnew/3.10.rst:947 +#: whatsnew/3.10.rst:948 msgid "" "Add a :func:`codecs.unregister` function to unregister a codec search " "function. (Contributed by Hai Shi in :issue:`41842`.)" msgstr "" -#: whatsnew/3.10.rst:951 +#: whatsnew/3.10.rst:952 msgid "collections.abc" msgstr "" -#: whatsnew/3.10.rst:953 +#: whatsnew/3.10.rst:954 msgid "" "The ``__args__`` of the :ref:`parameterized generic ` " "for :class:`collections.abc.Callable` are now consistent with :data:`typing." @@ -1430,34 +1429,34 @@ msgid "" "`42195`.)" msgstr "" -#: whatsnew/3.10.rst:966 +#: whatsnew/3.10.rst:967 msgid "contextlib" msgstr "" -#: whatsnew/3.10.rst:968 +#: whatsnew/3.10.rst:969 msgid "" "Add a :func:`contextlib.aclosing` context manager to safely close async " "generators and objects representing asynchronously released resources. " "(Contributed by Joongi Kim and John Belmonte in :issue:`41229`.)" msgstr "" -#: whatsnew/3.10.rst:972 +#: whatsnew/3.10.rst:973 msgid "" "Add asynchronous context manager support to :func:`contextlib.nullcontext`. " "(Contributed by Tom Gringauz in :issue:`41543`.)" msgstr "" -#: whatsnew/3.10.rst:975 +#: whatsnew/3.10.rst:976 msgid "" "Add :class:`~contextlib.AsyncContextDecorator`, for supporting usage of " "async context managers as decorators." msgstr "" -#: whatsnew/3.10.rst:979 +#: whatsnew/3.10.rst:980 msgid "curses" msgstr "" -#: whatsnew/3.10.rst:981 +#: whatsnew/3.10.rst:982 msgid "" "The extended color functions added in ncurses 6.1 will be used transparently " "by :func:`curses.color_content`, :func:`curses.init_color`, :func:`curses." @@ -1467,43 +1466,43 @@ msgid "" "Kintscher and Hans Petter Jansson in :issue:`36982`.)" msgstr "" -#: whatsnew/3.10.rst:988 +#: whatsnew/3.10.rst:989 msgid "" "The ``BUTTON5_*`` constants are now exposed in the :mod:`curses` module if " "they are provided by the underlying curses library. (Contributed by Zackery " "Spytz in :issue:`39273`.)" msgstr "" -#: whatsnew/3.10.rst:993 +#: whatsnew/3.10.rst:994 msgid "dataclasses" msgstr "" -#: whatsnew/3.10.rst:996 +#: whatsnew/3.10.rst:997 msgid "__slots__" msgstr "" -#: whatsnew/3.10.rst:998 +#: whatsnew/3.10.rst:999 msgid "" "Added ``slots`` parameter in :func:`dataclasses.dataclass` decorator. " "(Contributed by Yurii Karabas in :issue:`42269`)" msgstr "" -#: whatsnew/3.10.rst:1002 +#: whatsnew/3.10.rst:1003 msgid "Keyword-only fields" msgstr "" -#: whatsnew/3.10.rst:1004 +#: whatsnew/3.10.rst:1005 msgid "" "dataclasses now supports fields that are keyword-only in the generated " "__init__ method. There are a number of ways of specifying keyword-only " "fields." msgstr "" -#: whatsnew/3.10.rst:1008 +#: whatsnew/3.10.rst:1009 msgid "You can say that every field is keyword-only:" msgstr "" -#: whatsnew/3.10.rst:1010 +#: whatsnew/3.10.rst:1011 msgid "" "from dataclasses import dataclass\n" "\n" @@ -1513,17 +1512,17 @@ msgid "" " birthday: datetime.date" msgstr "" -#: whatsnew/3.10.rst:1019 +#: whatsnew/3.10.rst:1020 msgid "" "Both ``name`` and ``birthday`` are keyword-only parameters to the generated " "__init__ method." msgstr "" -#: whatsnew/3.10.rst:1022 +#: whatsnew/3.10.rst:1023 msgid "You can specify keyword-only on a per-field basis:" msgstr "" -#: whatsnew/3.10.rst:1024 +#: whatsnew/3.10.rst:1025 msgid "" "from dataclasses import dataclass, field\n" "\n" @@ -1533,7 +1532,7 @@ msgid "" " birthday: datetime.date = field(kw_only=True)" msgstr "" -#: whatsnew/3.10.rst:1033 +#: whatsnew/3.10.rst:1034 msgid "" "Here only ``birthday`` is keyword-only. If you set ``kw_only`` on " "individual fields, be aware that there are rules about re-ordering fields " @@ -1541,13 +1540,13 @@ msgid "" "the full dataclasses documentation for details." msgstr "" -#: whatsnew/3.10.rst:1038 +#: whatsnew/3.10.rst:1039 msgid "" "You can also specify that all fields following a KW_ONLY marker are keyword-" "only. This will probably be the most common usage:" msgstr "" -#: whatsnew/3.10.rst:1041 +#: whatsnew/3.10.rst:1042 msgid "" "from dataclasses import dataclass, KW_ONLY\n" "\n" @@ -1560,17 +1559,17 @@ msgid "" " t: float = 0.0" msgstr "" -#: whatsnew/3.10.rst:1053 +#: whatsnew/3.10.rst:1054 msgid "" "Here, ``z`` and ``t`` are keyword-only parameters, while ``x`` and ``y`` are " "not. (Contributed by Eric V. Smith in :issue:`43532`.)" msgstr "" -#: whatsnew/3.10.rst:1060 +#: whatsnew/3.10.rst:1061 msgid "distutils" msgstr "" -#: whatsnew/3.10.rst:1062 +#: whatsnew/3.10.rst:1063 msgid "" "The entire ``distutils`` package is deprecated, to be removed in Python " "3.12. Its functionality for specifying package builds has already been " @@ -1583,38 +1582,38 @@ msgid "" "`632` for discussion." msgstr "" -#: whatsnew/3.10.rst:1072 +#: whatsnew/3.10.rst:1073 msgid "" "The ``bdist_wininst`` command deprecated in Python 3.8 has been removed. The " "``bdist_wheel`` command is now recommended to distribute binary packages on " "Windows. (Contributed by Victor Stinner in :issue:`42802`.)" msgstr "" -#: whatsnew/3.10.rst:1078 +#: whatsnew/3.10.rst:1079 msgid "doctest" msgstr "" -#: whatsnew/3.10.rst:1215 whatsnew/3.10.rst:1341 +#: whatsnew/3.10.rst:1216 whatsnew/3.10.rst:1342 msgid "" "When a module does not define ``__loader__``, fall back to ``__spec__." "loader``. (Contributed by Brett Cannon in :issue:`42133`.)" msgstr "" -#: whatsnew/3.10.rst:1084 +#: whatsnew/3.10.rst:1085 msgid "encodings" msgstr "" -#: whatsnew/3.10.rst:1086 +#: whatsnew/3.10.rst:1087 msgid "" ":func:`encodings.normalize_encoding` now ignores non-ASCII characters. " "(Contributed by Hai Shi in :issue:`39337`.)" msgstr "" -#: whatsnew/3.10.rst:1090 +#: whatsnew/3.10.rst:1091 msgid "enum" msgstr "" -#: whatsnew/3.10.rst:1092 +#: whatsnew/3.10.rst:1093 msgid "" ":class:`~enum.Enum` :func:`~object.__repr__` now returns ``enum_name." "member_name`` and :func:`~object.__str__` now returns ``member_name``. " @@ -1622,106 +1621,106 @@ msgid "" "``module_name.member_name``. (Contributed by Ethan Furman in :issue:`40066`.)" msgstr "" -#: whatsnew/3.10.rst:1097 +#: whatsnew/3.10.rst:1098 msgid "" "Add :class:`enum.StrEnum` for enums where all members are strings. " "(Contributed by Ethan Furman in :issue:`41816`.)" msgstr "" -#: whatsnew/3.10.rst:1101 +#: whatsnew/3.10.rst:1102 msgid "fileinput" msgstr "" -#: whatsnew/3.10.rst:1103 +#: whatsnew/3.10.rst:1104 msgid "" "Add *encoding* and *errors* parameters in :func:`fileinput.input` and :class:" "`fileinput.FileInput`. (Contributed by Inada Naoki in :issue:`43712`.)" msgstr "" -#: whatsnew/3.10.rst:1107 +#: whatsnew/3.10.rst:1108 msgid "" ":func:`fileinput.hook_compressed` now returns :class:`~io.TextIOWrapper` " "object when *mode* is \"r\" and file is compressed, like uncompressed files. " "(Contributed by Inada Naoki in :issue:`5758`.)" msgstr "" -#: whatsnew/3.10.rst:1112 +#: whatsnew/3.10.rst:1113 msgid "faulthandler" msgstr "" -#: whatsnew/3.10.rst:1114 +#: whatsnew/3.10.rst:1115 msgid "" "The :mod:`faulthandler` module now detects if a fatal error occurs during a " "garbage collector collection. (Contributed by Victor Stinner in :issue:" "`44466`.)" msgstr "" -#: whatsnew/3.10.rst:1119 +#: whatsnew/3.10.rst:1120 msgid "gc" msgstr "" -#: whatsnew/3.10.rst:1121 +#: whatsnew/3.10.rst:1122 msgid "" "Add audit hooks for :func:`gc.get_objects`, :func:`gc.get_referrers` and :" "func:`gc.get_referents`. (Contributed by Pablo Galindo in :issue:`43439`.)" msgstr "" -#: whatsnew/3.10.rst:1125 +#: whatsnew/3.10.rst:1126 msgid "glob" msgstr "" -#: whatsnew/3.10.rst:1127 +#: whatsnew/3.10.rst:1128 msgid "" "Add the *root_dir* and *dir_fd* parameters in :func:`~glob.glob` and :func:" "`~glob.iglob` which allow to specify the root directory for searching. " "(Contributed by Serhiy Storchaka in :issue:`38144`.)" msgstr "" -#: whatsnew/3.10.rst:1132 +#: whatsnew/3.10.rst:1133 msgid "hashlib" msgstr "" -#: whatsnew/3.10.rst:1134 +#: whatsnew/3.10.rst:1135 msgid "" "The hashlib module requires OpenSSL 1.1.1 or newer. (Contributed by " "Christian Heimes in :pep:`644` and :issue:`43669`.)" msgstr "" -#: whatsnew/3.10.rst:1137 +#: whatsnew/3.10.rst:1138 msgid "" "The hashlib module has preliminary support for OpenSSL 3.0.0. (Contributed " "by Christian Heimes in :issue:`38820` and other issues.)" msgstr "" -#: whatsnew/3.10.rst:1140 +#: whatsnew/3.10.rst:1141 msgid "" "The pure-Python fallback of :func:`~hashlib.pbkdf2_hmac` is deprecated. In " "the future PBKDF2-HMAC will only be available when Python has been built " "with OpenSSL support. (Contributed by Christian Heimes in :issue:`43880`.)" msgstr "" -#: whatsnew/3.10.rst:1146 +#: whatsnew/3.10.rst:1147 msgid "hmac" msgstr "" -#: whatsnew/3.10.rst:1148 +#: whatsnew/3.10.rst:1149 msgid "" "The hmac module now uses OpenSSL's HMAC implementation internally. " "(Contributed by Christian Heimes in :issue:`40645`.)" msgstr "" -#: whatsnew/3.10.rst:1152 +#: whatsnew/3.10.rst:1153 msgid "IDLE and idlelib" msgstr "" -#: whatsnew/3.10.rst:1154 +#: whatsnew/3.10.rst:1155 msgid "" "Make IDLE invoke :func:`sys.excepthook` (when started without '-n'). User " "hooks were previously ignored. (Contributed by Ken Hilton in :issue:" "`43008`.)" msgstr "" -#: whatsnew/3.10.rst:1158 +#: whatsnew/3.10.rst:1159 msgid "" "Rearrange the settings dialog. Split the General tab into Windows and Shell/" "Ed tabs. Move help sources, which extend the Help menu, to the Extensions " @@ -1732,11 +1731,11 @@ msgid "" "`33962`.)" msgstr "" -#: whatsnew/3.10.rst:1166 +#: whatsnew/3.10.rst:1167 msgid "The changes above were backported to a 3.9 maintenance release." msgstr "" -#: whatsnew/3.10.rst:1168 +#: whatsnew/3.10.rst:1169 msgid "" "Add a Shell sidebar. Move the primary prompt ('>>>') to the sidebar. Add " "secondary prompts ('...') to the sidebar. Left click and optional drag " @@ -1747,7 +1746,7 @@ msgid "" "text. (Contributed by Tal Einat in :issue:`37903`.)" msgstr "" -#: whatsnew/3.10.rst:1177 +#: whatsnew/3.10.rst:1178 msgid "" "Use spaces instead of tabs to indent interactive code. This makes " "interactive code entries 'look right'. Making this feasible was a major " @@ -1755,7 +1754,7 @@ msgid "" "in :issue:`37892`.)" msgstr "" -#: whatsnew/3.10.rst:1182 +#: whatsnew/3.10.rst:1183 msgid "" "Highlight the new :ref:`soft keywords ` :keyword:`match`, :" "keyword:`case `, and :keyword:`_ ` in pattern-" @@ -1764,33 +1763,33 @@ msgid "" "(Contributed by Tal Einat in :issue:`44010`.)" msgstr "" -#: whatsnew/3.10.rst:1188 +#: whatsnew/3.10.rst:1189 msgid "New in 3.10 maintenance releases." msgstr "" -#: whatsnew/3.10.rst:1190 +#: whatsnew/3.10.rst:1191 msgid "" "Apply syntax highlighting to ``.pyi`` files. (Contributed by Alex Waygood " "and Terry Jan Reedy in :issue:`45447`.)" msgstr "" -#: whatsnew/3.10.rst:1193 +#: whatsnew/3.10.rst:1194 msgid "" "Include prompts when saving Shell with inputs and outputs. (Contributed by " "Terry Jan Reedy in :gh:`95191`.)" msgstr "" -#: whatsnew/3.10.rst:1197 +#: whatsnew/3.10.rst:1198 msgid "importlib.metadata" msgstr "" -#: whatsnew/3.10.rst:1199 +#: whatsnew/3.10.rst:1200 msgid "" "Feature parity with ``importlib_metadata`` 4.6 (`history `_)." msgstr "" -#: whatsnew/3.10.rst:1202 +#: whatsnew/3.10.rst:1203 msgid "" ":ref:`importlib.metadata entry points ` now provide a nicer " "experience for selecting entry points by group and name through a new :ref:" @@ -1798,18 +1797,18 @@ msgid "" "Note in the docs for more info on the deprecation and usage." msgstr "" -#: whatsnew/3.10.rst:1208 +#: whatsnew/3.10.rst:1209 msgid "" "Added :ref:`importlib.metadata.packages_distributions() ` for resolving top-level Python modules and packages to " "their :ref:`importlib.metadata.Distribution `." msgstr "" -#: whatsnew/3.10.rst:1213 +#: whatsnew/3.10.rst:1214 msgid "inspect" msgstr "" -#: whatsnew/3.10.rst:1218 +#: whatsnew/3.10.rst:1219 msgid "" "Add :func:`inspect.get_annotations`, which safely computes the annotations " "defined on an object. It works around the quirks of accessing the " @@ -1827,38 +1826,38 @@ msgid "" "`43817`.)" msgstr "" -#: whatsnew/3.10.rst:1234 +#: whatsnew/3.10.rst:1235 msgid "itertools" msgstr "" -#: whatsnew/3.10.rst:1236 +#: whatsnew/3.10.rst:1237 msgid "" "Add :func:`itertools.pairwise`. (Contributed by Raymond Hettinger in :issue:" "`38200`.)" msgstr "" -#: whatsnew/3.10.rst:1240 +#: whatsnew/3.10.rst:1241 msgid "linecache" msgstr "" -#: whatsnew/3.10.rst:1246 +#: whatsnew/3.10.rst:1247 msgid "os" msgstr "" -#: whatsnew/3.10.rst:1248 +#: whatsnew/3.10.rst:1249 msgid "" "Add :func:`os.cpu_count` support for VxWorks RTOS. (Contributed by Peixing " "Xin in :issue:`41440`.)" msgstr "" -#: whatsnew/3.10.rst:1251 +#: whatsnew/3.10.rst:1252 msgid "" "Add a new function :func:`os.eventfd` and related helpers to wrap the " "``eventfd2`` syscall on Linux. (Contributed by Christian Heimes in :issue:" "`41001`.)" msgstr "" -#: whatsnew/3.10.rst:1255 +#: whatsnew/3.10.rst:1256 msgid "" "Add :func:`os.splice` that allows to move data between two file descriptors " "without copying between kernel address space and user address space, where " @@ -1866,41 +1865,41 @@ msgid "" "Galindo in :issue:`41625`.)" msgstr "" -#: whatsnew/3.10.rst:1260 +#: whatsnew/3.10.rst:1261 msgid "" "Add :const:`~os.O_EVTONLY`, :const:`~os.O_FSYNC`, :const:`~os.O_SYMLINK` " "and :const:`~os.O_NOFOLLOW_ANY` for macOS. (Contributed by Donghee Na in :" "issue:`43106`.)" msgstr "" -#: whatsnew/3.10.rst:1265 +#: whatsnew/3.10.rst:1266 msgid "os.path" msgstr "" -#: whatsnew/3.10.rst:1267 +#: whatsnew/3.10.rst:1268 msgid "" ":func:`os.path.realpath` now accepts a *strict* keyword-only argument. When " "set to ``True``, :exc:`OSError` is raised if a path doesn't exist or a " "symlink loop is encountered. (Contributed by Barney Gale in :issue:`43757`.)" msgstr "" -#: whatsnew/3.10.rst:1273 +#: whatsnew/3.10.rst:1274 msgid "pathlib" msgstr "" -#: whatsnew/3.10.rst:1275 +#: whatsnew/3.10.rst:1276 msgid "" "Add slice support to :attr:`PurePath.parents `. " "(Contributed by Joshua Cannon in :issue:`35498`.)" msgstr "" -#: whatsnew/3.10.rst:1278 +#: whatsnew/3.10.rst:1279 msgid "" "Add negative indexing support to :attr:`PurePath.parents `. (Contributed by Yaroslav Pankovych in :issue:`21041`.)" msgstr "" -#: whatsnew/3.10.rst:1282 +#: whatsnew/3.10.rst:1283 msgid "" "Add :meth:`Path.hardlink_to ` method that " "supersedes :meth:`!link_to`. The new method has the same argument order as :" @@ -1908,7 +1907,7 @@ msgid "" "`39950`.)" msgstr "" -#: whatsnew/3.10.rst:1287 +#: whatsnew/3.10.rst:1288 msgid "" ":meth:`pathlib.Path.stat` and :meth:`~pathlib.Path.chmod` now accept a " "*follow_symlinks* keyword-only argument for consistency with corresponding " @@ -1916,11 +1915,11 @@ msgid "" "`39906`.)" msgstr "" -#: whatsnew/3.10.rst:1293 +#: whatsnew/3.10.rst:1294 msgid "platform" msgstr "" -#: whatsnew/3.10.rst:1295 +#: whatsnew/3.10.rst:1296 msgid "" "Add :func:`platform.freedesktop_os_release` to retrieve operation system " "identification from `freedesktop.org os-release >> from typing import Literal\n" ">>> Literal[{0}]\n" @@ -2208,18 +2207,18 @@ msgid "" "TypeError: unhashable type: 'set'" msgstr "" -#: whatsnew/3.10.rst:1479 +#: whatsnew/3.10.rst:1480 msgid "(Contributed by Yurii Karabas in :issue:`42345`.)" msgstr "" -#: whatsnew/3.10.rst:1481 +#: whatsnew/3.10.rst:1482 msgid "" "Add new function :func:`typing.is_typeddict` to introspect if an annotation " "is a :class:`typing.TypedDict`. (Contributed by Patrick Reader in :issue:" "`41792`.)" msgstr "" -#: whatsnew/3.10.rst:1485 +#: whatsnew/3.10.rst:1486 msgid "" "Subclasses of ``typing.Protocol`` which only have data variables declared " "will now raise a ``TypeError`` when checked with ``isinstance`` unless they " @@ -2229,7 +2228,7 @@ msgid "" "(Contributed by Yurii Karabas in :issue:`38908`.)" msgstr "" -#: whatsnew/3.10.rst:1493 +#: whatsnew/3.10.rst:1494 msgid "" "Importing from the ``typing.io`` and ``typing.re`` submodules will now emit :" "exc:`DeprecationWarning`. These submodules have been deprecated since " @@ -2238,22 +2237,22 @@ msgid "" "instead. (Contributed by Sebastian Rittau in :issue:`38291`.)" msgstr "" -#: whatsnew/3.10.rst:1501 +#: whatsnew/3.10.rst:1502 msgid "unittest" msgstr "" -#: whatsnew/3.10.rst:1503 +#: whatsnew/3.10.rst:1504 msgid "" "Add new method :meth:`~unittest.TestCase.assertNoLogs` to complement the " "existing :meth:`~unittest.TestCase.assertLogs`. (Contributed by Kit Yan Choi " "in :issue:`39385`.)" msgstr "" -#: whatsnew/3.10.rst:1508 +#: whatsnew/3.10.rst:1509 msgid "urllib.parse" msgstr "" -#: whatsnew/3.10.rst:1510 +#: whatsnew/3.10.rst:1511 msgid "" "Python versions earlier than Python 3.10 allowed using both ``;`` and ``&`` " "as query parameter separators in :func:`urllib.parse.parse_qs` and :func:" @@ -2266,7 +2265,7 @@ msgid "" "in :issue:`42967`.)" msgstr "" -#: whatsnew/3.10.rst:1520 +#: whatsnew/3.10.rst:1521 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:" @@ -2276,22 +2275,22 @@ msgid "" "variable ``urllib.parse._UNSAFE_URL_BYTES_TO_REMOVE``. (See :gh:`88048`)" msgstr "" -#: whatsnew/3.10.rst:1528 +#: whatsnew/3.10.rst:1529 msgid "xml" msgstr "" -#: whatsnew/3.10.rst:1530 +#: whatsnew/3.10.rst:1531 msgid "" "Add a :class:`~xml.sax.handler.LexicalHandler` class to the :mod:`xml.sax." "handler` module. (Contributed by Jonathan Gossage and Zackery Spytz in :" "issue:`35018`.)" msgstr "" -#: whatsnew/3.10.rst:1535 +#: whatsnew/3.10.rst:1536 msgid "zipimport" msgstr "" -#: whatsnew/3.10.rst:1536 +#: whatsnew/3.10.rst:1537 msgid "" "Add methods related to :pep:`451`: :meth:`~zipimport.zipimporter." "find_spec`, :meth:`zipimport.zipimporter.create_module`, and :meth:" @@ -2299,24 +2298,24 @@ msgid "" "`42131`.)" msgstr "" -#: whatsnew/3.10.rst:1541 +#: whatsnew/3.10.rst:1542 msgid "" "Add :meth:`~zipimport.zipimporter.invalidate_caches` method. (Contributed by " "Desmond Cheong in :issue:`14678`.)" msgstr "" -#: whatsnew/3.10.rst:1546 +#: whatsnew/3.10.rst:1547 msgid "Optimizations" msgstr "" -#: whatsnew/3.10.rst:1548 +#: whatsnew/3.10.rst:1549 msgid "" "Constructors :func:`str`, :func:`bytes` and :func:`bytearray` are now faster " "(around 30--40% for small objects). (Contributed by Serhiy Storchaka in :" "issue:`41334`.)" msgstr "" -#: whatsnew/3.10.rst:1552 +#: whatsnew/3.10.rst:1553 msgid "" "The :mod:`runpy` module now imports fewer modules. The ``python3 -m module-" "name`` command startup time is 1.4x faster in average. On Linux, ``python3 -" @@ -2325,7 +2324,7 @@ msgid "" "`41006` and :issue:`41718`.)" msgstr "" -#: whatsnew/3.10.rst:1558 +#: whatsnew/3.10.rst:1559 msgid "" "The ``LOAD_ATTR`` instruction now uses new \"per opcode cache\" mechanism. " "It is about 36% faster now for regular attributes and 44% faster for slots. " @@ -2334,7 +2333,7 @@ msgid "" "and MicroPython.)" msgstr "" -#: whatsnew/3.10.rst:1564 +#: whatsnew/3.10.rst:1565 msgid "" "When building Python with :option:`--enable-optimizations` now ``-fno-" "semantic-interposition`` is added to both the compile and link line. This " @@ -2345,7 +2344,7 @@ msgid "" "and Pablo Galindo in :issue:`38980`.)" msgstr "" -#: whatsnew/3.10.rst:1572 +#: whatsnew/3.10.rst:1573 msgid "" "Use a new output buffer management code for :mod:`bz2` / :mod:`lzma` / :mod:" "`zlib` modules, and add ``.readall()`` function to ``_compression." @@ -2355,7 +2354,7 @@ msgid "" "`41486`)" msgstr "" -#: whatsnew/3.10.rst:1578 +#: whatsnew/3.10.rst:1579 msgid "" "When using stringized annotations, annotations dicts for functions are no " "longer created when the function is created. Instead, they are stored as a " @@ -2365,7 +2364,7 @@ msgid "" "Inada Naoki in :issue:`42202`.)" msgstr "" -#: whatsnew/3.10.rst:1585 +#: whatsnew/3.10.rst:1586 msgid "" "Substring search functions such as ``str1 in str2`` and ``str2.find(str1)`` " "now sometimes use Crochemore & Perrin's \"Two-Way\" string searching " @@ -2373,7 +2372,7 @@ msgid "" "Dennis Sweeney in :issue:`41972`)" msgstr "" -#: whatsnew/3.10.rst:1590 +#: whatsnew/3.10.rst:1591 msgid "" "Add micro-optimizations to ``_PyType_Lookup()`` to improve type attribute " "cache lookup performance in the common case of cache hits. This makes the " @@ -2381,7 +2380,7 @@ msgid "" "issue:`43452`.)" msgstr "" -#: whatsnew/3.10.rst:1594 +#: whatsnew/3.10.rst:1595 msgid "" "The following built-in functions now support the faster :pep:`590` " "vectorcall calling convention: :func:`map`, :func:`filter`, :func:" @@ -2390,7 +2389,7 @@ msgid "" "`41873` and :issue:`41870`.)" msgstr "" -#: whatsnew/3.10.rst:1598 +#: whatsnew/3.10.rst:1599 msgid "" ":class:`~bz2.BZ2File` performance is improved by removing internal " "``RLock``. This makes :class:`!BZ2File` thread unsafe in the face of " @@ -2399,11 +2398,11 @@ msgid "" "Naoki in :issue:`43785`.)" msgstr "" -#: whatsnew/3.10.rst:2212 +#: whatsnew/3.10.rst:2213 msgid "Deprecated" msgstr "" -#: whatsnew/3.10.rst:1608 +#: whatsnew/3.10.rst:1609 msgid "" "Currently Python accepts numeric literals immediately followed by keywords, " "for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " @@ -2416,7 +2415,7 @@ msgid "" "by Serhiy Storchaka in :issue:`43833`.)" msgstr "" -#: whatsnew/3.10.rst:1619 +#: whatsnew/3.10.rst:1620 msgid "" "Starting in this release, there will be a concerted effort to begin cleaning " "up old import semantics that were kept for Python 2.7 compatibility. " @@ -2433,21 +2432,21 @@ msgid "" "transition." msgstr "" -#: whatsnew/3.10.rst:1636 +#: whatsnew/3.10.rst:1637 msgid "" "The entire ``distutils`` namespace is deprecated, to be removed in Python " "3.12. Refer to the :ref:`module changes ` section for " "more information." msgstr "" -#: whatsnew/3.10.rst:1640 +#: whatsnew/3.10.rst:1641 msgid "" "Non-integer arguments to :func:`random.randrange` are deprecated. The :exc:" "`ValueError` is deprecated in favor of a :exc:`TypeError`. (Contributed by " "Serhiy Storchaka and Raymond Hettinger in :issue:`37319`.)" msgstr "" -#: whatsnew/3.10.rst:1644 +#: whatsnew/3.10.rst:1645 msgid "" "The various ``load_module()`` methods of :mod:`importlib` have been " "documented as deprecated since Python 3.6, but will now also trigger a :exc:" @@ -2455,21 +2454,21 @@ msgid "" "(Contributed by Brett Cannon in :issue:`26131`.)" msgstr "" -#: whatsnew/3.10.rst:1650 +#: whatsnew/3.10.rst:1651 msgid "" ":meth:`!zimport.zipimporter.load_module` has been deprecated in preference " "for :meth:`~zipimport.zipimporter.exec_module`. (Contributed by Brett Cannon " "in :issue:`26131`.)" msgstr "" -#: whatsnew/3.10.rst:1654 +#: whatsnew/3.10.rst:1655 msgid "" "The use of :meth:`~importlib.abc.Loader.load_module` by the import system " "now triggers an :exc:`ImportWarning` as :meth:`~importlib.abc.Loader." "exec_module` is preferred. (Contributed by Brett Cannon in :issue:`26131`.)" msgstr "" -#: whatsnew/3.10.rst:1659 +#: whatsnew/3.10.rst:1660 msgid "" "The use of :meth:`!importlib.abc.MetaPathFinder.find_module` and :meth:`!" "importlib.abc.PathEntryFinder.find_module` by the import system now trigger " @@ -2479,7 +2478,7 @@ msgid "" "porting. (Contributed by Brett Cannon in :issue:`42134`.)" msgstr "" -#: whatsnew/3.10.rst:1668 +#: whatsnew/3.10.rst:1669 msgid "" "The use of :meth:`!importlib.abc.PathEntryFinder.find_loader` by the import " "system now triggers an :exc:`ImportWarning` as :meth:`importlib.abc." @@ -2488,7 +2487,7 @@ msgid "" "`43672`.)" msgstr "" -#: whatsnew/3.10.rst:1674 +#: whatsnew/3.10.rst:1675 msgid "" "The various implementations of :meth:`!importlib.abc.MetaPathFinder." "find_module` ( :meth:`!importlib.machinery.BuiltinImporter.find_module`, :" @@ -2503,7 +2502,7 @@ msgid "" "Python 3.4). (Contributed by Brett Cannon in :issue:`42135`.)" msgstr "" -#: whatsnew/3.10.rst:1689 +#: whatsnew/3.10.rst:1690 msgid "" ":class:`!importlib.abc.Finder` is deprecated (including its sole method, :" "meth:`!find_module`). Both :class:`importlib.abc.MetaPathFinder` and :class:" @@ -2512,7 +2511,7 @@ msgid "" "(Contributed by Brett Cannon in :issue:`42135`.)" msgstr "" -#: whatsnew/3.10.rst:1696 +#: whatsnew/3.10.rst:1697 msgid "" "The deprecations of :mod:`!imp`, :func:`!importlib.find_loader`, :func:`!" "importlib.util.set_package_wrapper`, :func:`!importlib.util." @@ -2523,7 +2522,7 @@ msgid "" "Brett Cannon in :issue:`43720`.)" msgstr "" -#: whatsnew/3.10.rst:1706 +#: whatsnew/3.10.rst:1707 msgid "" "The import system now uses the ``__spec__`` attribute on modules before " "falling back on :meth:`!module_repr` for a module's ``__repr__()`` method. " @@ -2531,7 +2530,7 @@ msgid "" "(Contributed by Brett Cannon in :issue:`42137`.)" msgstr "" -#: whatsnew/3.10.rst:1712 +#: whatsnew/3.10.rst:1713 msgid "" ":meth:`!importlib.abc.Loader.module_repr`, :meth:`!importlib.machinery." "FrozenLoader.module_repr`, and :meth:`!importlib.machinery.BuiltinLoader." @@ -2539,7 +2538,7 @@ msgid "" "(Contributed by Brett Cannon in :issue:`42136`.)" msgstr "" -#: whatsnew/3.10.rst:1718 +#: whatsnew/3.10.rst:1719 msgid "" "``sqlite3.OptimizedUnicode`` has been undocumented and obsolete since Python " "3.3, when it was made an alias to :class:`str`. It is now deprecated, " @@ -2547,7 +2546,7 @@ msgid "" "issue:`42264`.)" msgstr "" -#: whatsnew/3.10.rst:1723 +#: whatsnew/3.10.rst:1724 msgid "" "The undocumented built-in function ``sqlite3.enable_shared_cache`` is now " "deprecated, scheduled for removal in Python 3.12. Its use is strongly " @@ -2557,67 +2556,67 @@ msgid "" "query parameter. (Contributed by Erlend E. Aasland in :issue:`24464`.)" msgstr "" -#: whatsnew/3.10.rst:1731 +#: whatsnew/3.10.rst:1732 msgid "The following ``threading`` methods are now deprecated:" msgstr "" -#: whatsnew/3.10.rst:1733 +#: whatsnew/3.10.rst:1734 msgid "``threading.currentThread`` => :func:`threading.current_thread`" msgstr "" -#: whatsnew/3.10.rst:1735 +#: whatsnew/3.10.rst:1736 msgid "``threading.activeCount`` => :func:`threading.active_count`" msgstr "" -#: whatsnew/3.10.rst:1737 +#: whatsnew/3.10.rst:1738 msgid "" "``threading.Condition.notifyAll`` => :meth:`threading.Condition.notify_all`" msgstr "" -#: whatsnew/3.10.rst:1740 +#: whatsnew/3.10.rst:1741 msgid "``threading.Event.isSet`` => :meth:`threading.Event.is_set`" msgstr "" -#: whatsnew/3.10.rst:1742 +#: whatsnew/3.10.rst:1743 msgid "``threading.Thread.setName`` => :attr:`threading.Thread.name`" msgstr "" -#: whatsnew/3.10.rst:1744 +#: whatsnew/3.10.rst:1745 msgid "``threading.thread.getName`` => :attr:`threading.Thread.name`" msgstr "" -#: whatsnew/3.10.rst:1746 +#: whatsnew/3.10.rst:1747 msgid "``threading.Thread.isDaemon`` => :attr:`threading.Thread.daemon`" msgstr "" -#: whatsnew/3.10.rst:1748 +#: whatsnew/3.10.rst:1749 msgid "``threading.Thread.setDaemon`` => :attr:`threading.Thread.daemon`" msgstr "" -#: whatsnew/3.10.rst:1750 +#: whatsnew/3.10.rst:1751 msgid "(Contributed by Jelle Zijlstra in :gh:`87889`.)" msgstr "" -#: whatsnew/3.10.rst:1752 +#: whatsnew/3.10.rst:1753 msgid "" ":meth:`!pathlib.Path.link_to` is deprecated and slated for removal in Python " "3.12. Use :meth:`pathlib.Path.hardlink_to` instead. (Contributed by Barney " "Gale in :issue:`39950`.)" msgstr "" -#: whatsnew/3.10.rst:1756 +#: whatsnew/3.10.rst:1757 msgid "" "``cgi.log()`` is deprecated and slated for removal in Python 3.12. " "(Contributed by Inada Naoki in :issue:`41139`.)" msgstr "" -#: whatsnew/3.10.rst:1759 +#: whatsnew/3.10.rst:1760 msgid "" "The following :mod:`ssl` features have been deprecated since Python 3.6, " "Python 3.7, or OpenSSL 1.1.0 and will be removed in 3.11:" msgstr "" -#: whatsnew/3.10.rst:1762 +#: whatsnew/3.10.rst:1763 msgid "" ":data:`!OP_NO_SSLv2`, :data:`!OP_NO_SSLv3`, :data:`!OP_NO_TLSv1`, :data:`!" "OP_NO_TLSv1_1`, :data:`!OP_NO_TLSv1_2`, and :data:`!OP_NO_TLSv1_3` are " @@ -2625,7 +2624,7 @@ msgid "" "SSLContext.maximum_version`." msgstr "" -#: whatsnew/3.10.rst:1768 +#: whatsnew/3.10.rst:1769 msgid "" ":data:`!PROTOCOL_SSLv2`, :data:`!PROTOCOL_SSLv3`, :data:`!PROTOCOL_SSLv23`, :" "data:`!PROTOCOL_TLSv1`, :data:`!PROTOCOL_TLSv1_1`, :data:`!" @@ -2633,25 +2632,25 @@ msgid "" "const:`~ssl.PROTOCOL_TLS_CLIENT` and :const:`~ssl.PROTOCOL_TLS_SERVER`" msgstr "" -#: whatsnew/3.10.rst:1774 +#: whatsnew/3.10.rst:1775 msgid ":func:`!wrap_socket` is replaced by :meth:`ssl.SSLContext.wrap_socket`" msgstr "" -#: whatsnew/3.10.rst:1776 +#: whatsnew/3.10.rst:1777 msgid ":func:`!match_hostname`" msgstr "" -#: whatsnew/3.10.rst:1778 +#: whatsnew/3.10.rst:1779 msgid ":func:`!RAND_pseudo_bytes`, :func:`!RAND_egd`" msgstr "" -#: whatsnew/3.10.rst:1780 +#: whatsnew/3.10.rst:1781 msgid "" "NPN features like :meth:`ssl.SSLSocket.selected_npn_protocol` and :meth:`ssl." "SSLContext.set_npn_protocols` are replaced by ALPN." msgstr "" -#: whatsnew/3.10.rst:1783 +#: whatsnew/3.10.rst:1784 msgid "" "The threading debug (:envvar:`!PYTHONTHREADDEBUG` environment variable) is " "deprecated in Python 3.10 and will be removed in Python 3.12. This feature " @@ -2659,7 +2658,7 @@ msgid "" "Victor Stinner in :issue:`44584`.)" msgstr "" -#: whatsnew/3.10.rst:1788 +#: whatsnew/3.10.rst:1789 msgid "" "Importing from the ``typing.io`` and ``typing.re`` submodules will now emit :" "exc:`DeprecationWarning`. These submodules will be removed in a future " @@ -2668,11 +2667,11 @@ msgid "" "Rittau in :issue:`38291`.)" msgstr "" -#: whatsnew/3.10.rst:2220 +#: whatsnew/3.10.rst:2221 msgid "Removed" msgstr "" -#: whatsnew/3.10.rst:1799 +#: whatsnew/3.10.rst:1800 msgid "" "Removed special methods ``__int__``, ``__float__``, ``__floordiv__``, " "``__mod__``, ``__divmod__``, ``__rfloordiv__``, ``__rmod__`` and " @@ -2680,7 +2679,7 @@ msgid "" "`TypeError`. (Contributed by Serhiy Storchaka in :issue:`41974`.)" msgstr "" -#: whatsnew/3.10.rst:1805 +#: whatsnew/3.10.rst:1806 msgid "" "The ``ParserBase.error()`` method from the private and undocumented " "``_markupbase`` module has been removed. :class:`html.parser.HTMLParser` is " @@ -2689,7 +2688,7 @@ msgid "" "`31844`.)" msgstr "" -#: whatsnew/3.10.rst:1811 +#: whatsnew/3.10.rst:1812 msgid "" "Removed the ``unicodedata.ucnhash_CAPI`` attribute which was an internal " "PyCapsule object. The related private ``_PyUnicode_Name_CAPI`` structure was " @@ -2697,7 +2696,7 @@ msgid "" "`42157`.)" msgstr "" -#: whatsnew/3.10.rst:1816 +#: whatsnew/3.10.rst:1817 msgid "" "Removed the ``parser`` module, which was deprecated in 3.9 due to the switch " "to the new PEG parser, as well as all the C source and header files that " @@ -2705,7 +2704,7 @@ msgid "" "``graminit.h`` and ``grammar.h``." msgstr "" -#: whatsnew/3.10.rst:1821 +#: whatsnew/3.10.rst:1822 msgid "" "Removed the Public C API functions ``PyParser_SimpleParseStringFlags``, " "``PyParser_SimpleParseStringFlagsFilename``, " @@ -2713,7 +2712,7 @@ msgid "" "deprecated in 3.9 due to the switch to the new PEG parser." msgstr "" -#: whatsnew/3.10.rst:1826 +#: whatsnew/3.10.rst:1827 msgid "" "Removed the ``formatter`` module, which was deprecated in Python 3.4. It is " "somewhat obsolete, little used, and not tested. It was originally scheduled " @@ -2722,71 +2721,71 @@ msgid "" "their code. (Contributed by Donghee Na and Terry J. Reedy in :issue:`42299`.)" msgstr "" -#: whatsnew/3.10.rst:1833 +#: whatsnew/3.10.rst:1834 msgid "" "Removed the :c:func:`!PyModule_GetWarningsModule` function that was useless " "now due to the :mod:`!_warnings` module was converted to a builtin module in " "2.6. (Contributed by Hai Shi in :issue:`42599`.)" msgstr "" -#: whatsnew/3.10.rst:1837 +#: whatsnew/3.10.rst:1838 msgid "" "Remove deprecated aliases to :ref:`collections-abstract-base-classes` from " "the :mod:`collections` module. (Contributed by Victor Stinner in :issue:" "`37324`.)" msgstr "" -#: whatsnew/3.10.rst:1841 +#: whatsnew/3.10.rst:1842 msgid "" "The ``loop`` parameter has been removed from most of :mod:`asyncio`\\ 's :" "doc:`high-level API <../library/asyncio-api-index>` following deprecation in " "Python 3.8. The motivation behind this change is multifold:" msgstr "" -#: whatsnew/3.10.rst:1845 +#: whatsnew/3.10.rst:1846 msgid "This simplifies the high-level API." msgstr "" -#: whatsnew/3.10.rst:1846 +#: whatsnew/3.10.rst:1847 msgid "" "The functions in the high-level API have been implicitly getting the current " "thread's running event loop since Python 3.7. There isn't a need to pass " "the event loop to the API in most normal use cases." msgstr "" -#: whatsnew/3.10.rst:1849 +#: whatsnew/3.10.rst:1850 msgid "" "Event loop passing is error-prone especially when dealing with loops running " "in different threads." msgstr "" -#: whatsnew/3.10.rst:1852 +#: whatsnew/3.10.rst:1853 msgid "" "Note that the low-level API will still accept ``loop``. See :ref:`changes-" "python-api` for examples of how to replace existing code." msgstr "" -#: whatsnew/3.10.rst:1927 +#: whatsnew/3.10.rst:1928 msgid "" "(Contributed by Yurii Karabas, Andrew Svetlov, Yury Selivanov and Kyle " "Stanley in :issue:`42392`.)" msgstr "" -#: whatsnew/3.10.rst:2147 +#: whatsnew/3.10.rst:2148 msgid "Porting to Python 3.10" msgstr "" -#: whatsnew/3.10.rst:1862 +#: whatsnew/3.10.rst:1863 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: whatsnew/3.10.rst:1867 +#: whatsnew/3.10.rst:1868 msgid "Changes in the Python syntax" msgstr "" -#: whatsnew/3.10.rst:1869 +#: whatsnew/3.10.rst:1870 msgid "" "Deprecation warning is now emitted when compiling previously valid syntax if " "the numeric literal is immediately followed by a keyword (like in ``0in " @@ -2796,11 +2795,11 @@ msgid "" "following keyword. (Contributed by Serhiy Storchaka in :issue:`43833`.)" msgstr "" -#: whatsnew/3.10.rst:1880 +#: whatsnew/3.10.rst:1881 msgid "Changes in the Python API" msgstr "" -#: whatsnew/3.10.rst:1882 +#: whatsnew/3.10.rst:1883 msgid "" "The *etype* parameters of the :func:`~traceback.format_exception`, :func:" "`~traceback.format_exception_only`, and :func:`~traceback.print_exception` " @@ -2808,7 +2807,7 @@ msgid "" "(Contributed by Zackery Spytz and Matthias Bussonnier in :issue:`26389`.)" msgstr "" -#: whatsnew/3.10.rst:1888 +#: whatsnew/3.10.rst:1889 msgid "" ":mod:`atexit`: At Python exit, if a callback registered with :func:`atexit." "register` fails, its exception is now logged. Previously, only some " @@ -2816,7 +2815,7 @@ msgid "" "(Contributed by Victor Stinner in :issue:`42639`.)" msgstr "" -#: whatsnew/3.10.rst:1894 +#: whatsnew/3.10.rst:1895 msgid "" ":class:`collections.abc.Callable` generic now flattens type parameters, " "similar to what :data:`typing.Callable` currently does. This means that " @@ -2829,7 +2828,7 @@ msgid "" "`42195`.)" msgstr "" -#: whatsnew/3.10.rst:1904 +#: whatsnew/3.10.rst:1905 msgid "" ":meth:`socket.htons` and :meth:`socket.ntohs` now raise :exc:`OverflowError` " "instead of :exc:`DeprecationWarning` if the given parameter will not fit in " @@ -2837,41 +2836,41 @@ msgid "" "`42393`.)" msgstr "" -#: whatsnew/3.10.rst:1909 +#: whatsnew/3.10.rst:1910 msgid "" "The ``loop`` parameter has been removed from most of :mod:`asyncio`\\ 's :" "doc:`high-level API <../library/asyncio-api-index>` following deprecation in " "Python 3.8." msgstr "" -#: whatsnew/3.10.rst:1913 +#: whatsnew/3.10.rst:1914 msgid "A coroutine that currently looks like this::" msgstr "" -#: whatsnew/3.10.rst:1915 +#: whatsnew/3.10.rst:1916 msgid "" "async def foo(loop):\n" " await asyncio.sleep(1, loop=loop)" msgstr "" -#: whatsnew/3.10.rst:1918 +#: whatsnew/3.10.rst:1919 msgid "Should be replaced with this::" msgstr "" -#: whatsnew/3.10.rst:1920 +#: whatsnew/3.10.rst:1921 msgid "" "async def foo():\n" " await asyncio.sleep(1)" msgstr "" -#: whatsnew/3.10.rst:1923 +#: whatsnew/3.10.rst:1924 msgid "" "If ``foo()`` was specifically designed *not* to run in the current thread's " "running event loop (e.g. running in another thread's event loop), consider " "using :func:`asyncio.run_coroutine_threadsafe` instead." msgstr "" -#: whatsnew/3.10.rst:1930 +#: whatsnew/3.10.rst:1931 msgid "" "The :data:`types.FunctionType` constructor now inherits the current builtins " "if the *globals* dictionary has no ``\"__builtins__\"`` key, rather than " @@ -2882,11 +2881,11 @@ msgid "" "`42990`.)" msgstr "" -#: whatsnew/3.10.rst:1939 +#: whatsnew/3.10.rst:1940 msgid "Changes in the C API" msgstr "" -#: whatsnew/3.10.rst:1941 +#: whatsnew/3.10.rst:1942 msgid "" "The C API functions ``PyParser_SimpleParseStringFlags``, " "``PyParser_SimpleParseStringFlagsFilename``, " @@ -2895,31 +2894,31 @@ msgid "" "PEG parser." msgstr "" -#: whatsnew/3.10.rst:1947 +#: whatsnew/3.10.rst:1948 msgid "" "Source should be now be compiled directly to a code object using, for " "example, :c:func:`Py_CompileString`. The resulting code object can then be " "evaluated using, for example, :c:func:`PyEval_EvalCode`." msgstr "" -#: whatsnew/3.10.rst:1951 +#: whatsnew/3.10.rst:1952 msgid "Specifically:" msgstr "" -#: whatsnew/3.10.rst:1953 +#: whatsnew/3.10.rst:1954 msgid "" "A call to ``PyParser_SimpleParseStringFlags`` followed by ``PyNode_Compile`` " "can be replaced by calling :c:func:`Py_CompileString`." msgstr "" -#: whatsnew/3.10.rst:1956 +#: whatsnew/3.10.rst:1957 msgid "" "There is no direct replacement for ``PyParser_SimpleParseFileFlags``. To " "compile code from a ``FILE *`` argument, you will need to read the file in C " "and pass the resulting buffer to :c:func:`Py_CompileString`." msgstr "" -#: whatsnew/3.10.rst:1960 +#: whatsnew/3.10.rst:1961 msgid "" "To compile a file given a ``char *`` filename, explicitly open the file, " "read it and compile the result. One way to do this is using the :py:mod:`io` " @@ -2928,7 +2927,7 @@ msgid "" "(Declarations and error handling are omitted.) ::" msgstr "" -#: whatsnew/3.10.rst:1966 +#: whatsnew/3.10.rst:1967 msgid "" "io_module = Import_ImportModule(\"io\");\n" "fileobject = PyObject_CallMethod(io_module, \"open\", \"ss\", filename, " @@ -2939,7 +2938,7 @@ msgid "" "code = Py_CompileString(source_buf, filename, Py_file_input);" msgstr "" -#: whatsnew/3.10.rst:1973 +#: whatsnew/3.10.rst:1974 msgid "" "For ``FrameObject`` objects, the :attr:`~frame.f_lasti` member now " "represents a wordcode offset instead of a simple offset into the bytecode " @@ -2950,53 +2949,53 @@ msgid "" "`PyFrame_GetLineNumber` instead." msgstr "" -#: whatsnew/3.10.rst:1981 +#: whatsnew/3.10.rst:1982 msgid "CPython bytecode changes" msgstr "" -#: whatsnew/3.10.rst:1983 +#: whatsnew/3.10.rst:1984 msgid "" "The ``MAKE_FUNCTION`` instruction now accepts either a dict or a tuple of " "strings as the function's annotations. (Contributed by Yurii Karabas and " "Inada Naoki in :issue:`42202`.)" msgstr "" -#: whatsnew/3.10.rst:1988 +#: whatsnew/3.10.rst:1989 msgid "Build Changes" msgstr "" -#: whatsnew/3.10.rst:1990 +#: whatsnew/3.10.rst:1991 msgid "" ":pep:`644`: Python now requires OpenSSL 1.1.1 or newer. OpenSSL 1.0.2 is no " "longer supported. (Contributed by Christian Heimes in :issue:`43669`.)" msgstr "" -#: whatsnew/3.10.rst:1994 +#: whatsnew/3.10.rst:1995 msgid "" "The C99 functions :c:func:`snprintf` and :c:func:`vsnprintf` are now " "required to build Python. (Contributed by Victor Stinner in :issue:`36020`.)" msgstr "" -#: whatsnew/3.10.rst:1998 +#: whatsnew/3.10.rst:1999 msgid "" ":mod:`sqlite3` requires SQLite 3.7.15 or higher. (Contributed by Sergey " "Fedoseev and Erlend E. Aasland in :issue:`40744` and :issue:`40810`.)" msgstr "" -#: whatsnew/3.10.rst:2001 +#: whatsnew/3.10.rst:2002 msgid "" "The :mod:`atexit` module must now always be built as a built-in module. " "(Contributed by Victor Stinner in :issue:`42639`.)" msgstr "" -#: whatsnew/3.10.rst:2004 +#: whatsnew/3.10.rst:2005 msgid "" "Add :option:`--disable-test-modules` option to the ``configure`` script: " "don't build nor install test modules. (Contributed by Xavier de Gaye, Thomas " "Petazzoni and Peixing Xin in :issue:`27640`.)" msgstr "" -#: whatsnew/3.10.rst:2008 +#: whatsnew/3.10.rst:2009 msgid "" "Add :option:`--with-wheel-pkg-dir=PATH option <--with-wheel-pkg-dir>` to the " "``./configure`` script. If specified, the :mod:`ensurepip` module looks for " @@ -3005,7 +3004,7 @@ msgid "" "packages." msgstr "" -#: whatsnew/3.10.rst:2014 +#: whatsnew/3.10.rst:2015 msgid "" "Some Linux distribution packaging policies recommend against bundling " "dependencies. For example, Fedora installs wheel packages in the ``/usr/" @@ -3013,22 +3012,22 @@ msgid "" "_bundled`` package." msgstr "" -#: whatsnew/3.10.rst:2019 +#: whatsnew/3.10.rst:2020 msgid "(Contributed by Victor Stinner in :issue:`42856`.)" msgstr "" -#: whatsnew/3.10.rst:2021 +#: whatsnew/3.10.rst:2022 msgid "" "Add a new :option:`configure --without-static-libpython option <--without-" "static-libpython>` to not build the ``libpythonMAJOR.MINOR.a`` static " "library and not install the ``python.o`` object file." msgstr "" -#: whatsnew/3.10.rst:2025 +#: whatsnew/3.10.rst:2026 msgid "(Contributed by Victor Stinner in :issue:`43103`.)" msgstr "" -#: whatsnew/3.10.rst:2027 +#: whatsnew/3.10.rst:2028 msgid "" "The ``configure`` script now uses the ``pkg-config`` utility, if available, " "to detect the location of Tcl/Tk headers and libraries. As before, those " @@ -3037,7 +3036,7 @@ msgid "" "Stamatogiannakis in :issue:`42603`.)" msgstr "" -#: whatsnew/3.10.rst:2033 +#: whatsnew/3.10.rst:2034 msgid "" "Add :option:`--with-openssl-rpath` option to ``configure`` script. The " "option simplifies building Python with a custom OpenSSL installation, e.g. " @@ -3045,15 +3044,15 @@ msgid "" "(Contributed by Christian Heimes in :issue:`43466`.)" msgstr "" -#: whatsnew/3.10.rst:2040 +#: whatsnew/3.10.rst:2041 msgid "C API Changes" msgstr "" -#: whatsnew/3.10.rst:2043 +#: whatsnew/3.10.rst:2044 msgid "PEP 652: Maintaining the Stable ABI" msgstr "" -#: whatsnew/3.10.rst:2045 +#: whatsnew/3.10.rst:2046 msgid "" "The Stable ABI (Application Binary Interface) for extension modules or " "embedding Python is now explicitly defined. :ref:`stable` describes C API " @@ -3061,25 +3060,25 @@ msgid "" "ABI." msgstr "" -#: whatsnew/3.10.rst:2050 +#: whatsnew/3.10.rst:2051 msgid "(Contributed by Petr Viktorin in :pep:`652` and :issue:`43795`.)" msgstr "" -#: whatsnew/3.10.rst:2055 +#: whatsnew/3.10.rst:2056 msgid "" "The result of :c:func:`PyNumber_Index` now always has exact type :class:" "`int`. Previously, the result could have been an instance of a subclass of " "``int``. (Contributed by Serhiy Storchaka in :issue:`40792`.)" msgstr "" -#: whatsnew/3.10.rst:2059 +#: whatsnew/3.10.rst:2060 msgid "" "Add a new :c:member:`~PyConfig.orig_argv` member to the :c:type:`PyConfig` " "structure: the list of the original command line arguments passed to the " "Python executable. (Contributed by Victor Stinner in :issue:`23427`.)" msgstr "" -#: whatsnew/3.10.rst:2064 +#: whatsnew/3.10.rst:2065 msgid "" "The :c:func:`PyDateTime_DATE_GET_TZINFO` and :c:func:" "`PyDateTime_TIME_GET_TZINFO` macros have been added for accessing the " @@ -3087,72 +3086,72 @@ msgid "" "time` objects. (Contributed by Zackery Spytz in :issue:`30155`.)" msgstr "" -#: whatsnew/3.10.rst:2070 +#: whatsnew/3.10.rst:2071 msgid "" "Add a :c:func:`PyCodec_Unregister` function to unregister a codec search " "function. (Contributed by Hai Shi in :issue:`41842`.)" msgstr "" -#: whatsnew/3.10.rst:2074 +#: whatsnew/3.10.rst:2075 msgid "" "The :c:func:`PyIter_Send` function was added to allow sending value into " "iterator without raising ``StopIteration`` exception. (Contributed by " "Vladimir Matveev in :issue:`41756`.)" msgstr "" -#: whatsnew/3.10.rst:2078 +#: whatsnew/3.10.rst:2079 msgid "" "Add :c:func:`PyUnicode_AsUTF8AndSize` to the limited C API. (Contributed by " "Alex Gaynor in :issue:`41784`.)" msgstr "" -#: whatsnew/3.10.rst:2081 +#: whatsnew/3.10.rst:2082 msgid "" "Add :c:func:`PyModule_AddObjectRef` function: similar to :c:func:" "`PyModule_AddObject` but don't steal a reference to the value on success. " "(Contributed by Victor Stinner in :issue:`1635741`.)" msgstr "" -#: whatsnew/3.10.rst:2086 +#: whatsnew/3.10.rst:2087 msgid "" "Add :c:func:`Py_NewRef` and :c:func:`Py_XNewRef` functions to increment the " "reference count of an object and return the object. (Contributed by Victor " "Stinner in :issue:`42262`.)" msgstr "" -#: whatsnew/3.10.rst:2090 +#: whatsnew/3.10.rst:2091 msgid "" "The :c:func:`PyType_FromSpecWithBases` and :c:func:" "`PyType_FromModuleAndSpec` functions now accept a single class as the " "*bases* argument. (Contributed by Serhiy Storchaka in :issue:`42423`.)" msgstr "" -#: whatsnew/3.10.rst:2094 +#: whatsnew/3.10.rst:2095 msgid "" "The :c:func:`PyType_FromModuleAndSpec` function now accepts NULL ``tp_doc`` " "slot. (Contributed by Hai Shi in :issue:`41832`.)" msgstr "" -#: whatsnew/3.10.rst:2098 +#: whatsnew/3.10.rst:2099 msgid "" "The :c:func:`PyType_GetSlot` function can accept :ref:`static types `. (Contributed by Hai Shi and Petr Viktorin in :issue:`41073`.)" msgstr "" -#: whatsnew/3.10.rst:2102 +#: whatsnew/3.10.rst:2103 msgid "" "Add a new :c:func:`PySet_CheckExact` function to the C-API to check if an " "object is an instance of :class:`set` but not an instance of a subtype. " "(Contributed by Pablo Galindo in :issue:`43277`.)" msgstr "" -#: whatsnew/3.10.rst:2106 +#: whatsnew/3.10.rst:2107 msgid "" "Add :c:func:`PyErr_SetInterruptEx` which allows passing a signal number to " "simulate. (Contributed by Antoine Pitrou in :issue:`43356`.)" msgstr "" -#: whatsnew/3.10.rst:2110 +#: whatsnew/3.10.rst:2111 msgid "" "The limited C API is now supported if :ref:`Python is built in debug mode " "` (if the ``Py_DEBUG`` macro is defined). In the limited C API, " @@ -3165,14 +3164,14 @@ msgid "" "`36465`)." msgstr "" -#: whatsnew/3.10.rst:2120 +#: whatsnew/3.10.rst:2121 msgid "" "The limited C API is still not supported in the :option:`--with-trace-refs` " "special build (``Py_TRACE_REFS`` macro). (Contributed by Victor Stinner in :" "issue:`43688`.)" msgstr "" -#: whatsnew/3.10.rst:2124 +#: whatsnew/3.10.rst:2125 msgid "" "Add the :c:func:`Py_Is(x, y) ` function to test if the *x* object is " "the *y* object, the same as ``x is y`` in Python. Add also the :c:func:" @@ -3182,7 +3181,7 @@ msgid "" "`43753`.)" msgstr "" -#: whatsnew/3.10.rst:2131 +#: whatsnew/3.10.rst:2132 msgid "" "Add new functions to control the garbage collector from C code: :c:func:" "`PyGC_Enable()`, :c:func:`PyGC_Disable()`, :c:func:`PyGC_IsEnabled()`. These " @@ -3190,20 +3189,20 @@ msgid "" "collector from C code without having to import the :mod:`gc` module." msgstr "" -#: whatsnew/3.10.rst:2138 +#: whatsnew/3.10.rst:2139 msgid "" "Add a new :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` type flag to disallow " "creating type instances. (Contributed by Victor Stinner in :issue:`43916`.)" msgstr "" -#: whatsnew/3.10.rst:2142 +#: whatsnew/3.10.rst:2143 msgid "" "Add a new :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` type flag for creating " "immutable type objects: type attributes cannot be set nor deleted. " "(Contributed by Victor Stinner and Erlend E. Aasland in :issue:`43908`.)" msgstr "" -#: whatsnew/3.10.rst:2149 +#: whatsnew/3.10.rst:2150 msgid "" "The ``PY_SSIZE_T_CLEAN`` macro must now be defined to use :c:func:" "`PyArg_ParseTuple` and :c:func:`Py_BuildValue` formats which use ``#``: " @@ -3212,7 +3211,7 @@ msgid "" "`40943`.)" msgstr "" -#: whatsnew/3.10.rst:2155 +#: whatsnew/3.10.rst:2156 msgid "" "Since :c:func:`Py_REFCNT()` is changed to the inline static function, " "``Py_REFCNT(obj) = new_refcnt`` must be replaced with ``Py_SET_REFCNT(obj, " @@ -3220,25 +3219,25 @@ msgid "" "For backward compatibility, this macro can be used::" msgstr "" -#: whatsnew/3.10.rst:2160 +#: whatsnew/3.10.rst:2161 msgid "" "#if PY_VERSION_HEX < 0x030900A4\n" "# define Py_SET_REFCNT(obj, refcnt) ((Py_REFCNT(obj) = (refcnt)), (void)0)\n" "#endif" msgstr "" -#: whatsnew/3.10.rst:2164 +#: whatsnew/3.10.rst:2165 msgid "(Contributed by Victor Stinner in :issue:`39573`.)" msgstr "" -#: whatsnew/3.10.rst:2166 +#: whatsnew/3.10.rst:2167 msgid "" "Calling :c:func:`PyDict_GetItem` without :term:`GIL` held had been allowed " "for historical reason. It is no longer allowed. (Contributed by Victor " "Stinner in :issue:`40839`.)" msgstr "" -#: whatsnew/3.10.rst:2170 +#: whatsnew/3.10.rst:2171 msgid "" "``PyUnicode_FromUnicode(NULL, size)`` and " "``PyUnicode_FromStringAndSize(NULL, size)`` raise ``DeprecationWarning`` " @@ -3246,14 +3245,14 @@ msgid "" "data. (Contributed by Inada Naoki in :issue:`36346`.)" msgstr "" -#: whatsnew/3.10.rst:2175 +#: whatsnew/3.10.rst:2176 msgid "" "The private ``_PyUnicode_Name_CAPI`` structure of the PyCapsule API " "``unicodedata.ucnhash_CAPI`` has been moved to the internal C API. " "(Contributed by Victor Stinner in :issue:`42157`.)" msgstr "" -#: whatsnew/3.10.rst:2179 +#: whatsnew/3.10.rst:2180 msgid "" ":c:func:`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, :c:" "func:`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome` and :c:func:" @@ -3263,7 +3262,7 @@ msgid "" "Stinner in :issue:`42260`.)" msgstr "" -#: whatsnew/3.10.rst:2186 +#: whatsnew/3.10.rst:2187 msgid "" ":c:func:`PyList_SET_ITEM`, :c:func:`PyTuple_SET_ITEM` and :c:func:" "`PyCell_SET` macros can no longer be used as l-value or r-value. For " @@ -3273,7 +3272,7 @@ msgid "" "and Victor Stinner in :issue:`30459`.)" msgstr "" -#: whatsnew/3.10.rst:2193 +#: whatsnew/3.10.rst:2194 msgid "" "The non-limited API files ``odictobject.h``, ``parser_interface.h``, " "``picklebufobject.h``, ``pyarena.h``, ``pyctype.h``, ``pydebug.h``, ``pyfpe." @@ -3284,7 +3283,7 @@ msgid "" "issue:`35134`.)" msgstr "" -#: whatsnew/3.10.rst:2201 +#: whatsnew/3.10.rst:2202 msgid "" "Use the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` type flag to create immutable " "type objects. Do not rely on :c:macro:`Py_TPFLAGS_HEAPTYPE` to decide if a " @@ -3293,85 +3292,85 @@ msgid "" "issue:`43908`.)" msgstr "" -#: whatsnew/3.10.rst:2207 +#: whatsnew/3.10.rst:2208 msgid "" "The undocumented function ``Py_FrozenMain`` has been removed from the " "limited API. The function is mainly useful for custom builds of Python. " "(Contributed by Petr Viktorin in :issue:`26241`.)" msgstr "" -#: whatsnew/3.10.rst:2214 +#: whatsnew/3.10.rst:2215 msgid "" "The ``PyUnicode_InternImmortal()`` function is now deprecated and will be " "removed in Python 3.12: use :c:func:`PyUnicode_InternInPlace` instead. " "(Contributed by Victor Stinner in :issue:`41692`.)" msgstr "" -#: whatsnew/3.10.rst:2222 +#: whatsnew/3.10.rst:2223 msgid "" "Removed ``Py_UNICODE_str*`` functions manipulating ``Py_UNICODE*`` strings. " "(Contributed by Inada Naoki in :issue:`41123`.)" msgstr "" -#: whatsnew/3.10.rst:2225 +#: whatsnew/3.10.rst:2226 msgid "" "``Py_UNICODE_strlen``: use :c:func:`PyUnicode_GetLength` or :c:macro:" "`PyUnicode_GET_LENGTH`" msgstr "" -#: whatsnew/3.10.rst:2227 +#: whatsnew/3.10.rst:2228 msgid "" "``Py_UNICODE_strcat``: use :c:func:`PyUnicode_CopyCharacters` or :c:func:" "`PyUnicode_FromFormat`" msgstr "" -#: whatsnew/3.10.rst:2229 +#: whatsnew/3.10.rst:2230 msgid "" "``Py_UNICODE_strcpy``, ``Py_UNICODE_strncpy``: use :c:func:" "`PyUnicode_CopyCharacters` or :c:func:`PyUnicode_Substring`" msgstr "" -#: whatsnew/3.10.rst:2231 +#: whatsnew/3.10.rst:2232 msgid "``Py_UNICODE_strcmp``: use :c:func:`PyUnicode_Compare`" msgstr "" -#: whatsnew/3.10.rst:2232 +#: whatsnew/3.10.rst:2233 msgid "``Py_UNICODE_strncmp``: use :c:func:`PyUnicode_Tailmatch`" msgstr "" -#: whatsnew/3.10.rst:2233 +#: whatsnew/3.10.rst:2234 msgid "" "``Py_UNICODE_strchr``, ``Py_UNICODE_strrchr``: use :c:func:" "`PyUnicode_FindChar`" msgstr "" -#: whatsnew/3.10.rst:2236 +#: whatsnew/3.10.rst:2237 msgid "" "Removed ``PyUnicode_GetMax()``. Please migrate to new (:pep:`393`) APIs. " "(Contributed by Inada Naoki in :issue:`41103`.)" msgstr "" -#: whatsnew/3.10.rst:2239 +#: whatsnew/3.10.rst:2240 msgid "" "Removed ``PyLong_FromUnicode()``. Please migrate to :c:func:" "`PyLong_FromUnicodeObject`. (Contributed by Inada Naoki in :issue:`41103`.)" msgstr "" -#: whatsnew/3.10.rst:2242 +#: whatsnew/3.10.rst:2243 msgid "" "Removed ``PyUnicode_AsUnicodeCopy()``. Please use :c:func:" "`PyUnicode_AsUCS4Copy` or :c:func:`PyUnicode_AsWideCharString` (Contributed " "by Inada Naoki in :issue:`41103`.)" msgstr "" -#: whatsnew/3.10.rst:2246 +#: whatsnew/3.10.rst:2247 msgid "" "Removed ``_Py_CheckRecursionLimit`` variable: it has been replaced by " "``ceval.recursion_limit`` of the :c:type:`PyInterpreterState` structure. " "(Contributed by Victor Stinner in :issue:`41834`.)" msgstr "" -#: whatsnew/3.10.rst:2250 +#: whatsnew/3.10.rst:2251 msgid "" "Removed undocumented macros ``Py_ALLOW_RECURSION`` and " "``Py_END_ALLOW_RECURSION`` and the ``recursion_critical`` field of the :c:" @@ -3379,14 +3378,14 @@ msgid "" "issue:`41936`.)" msgstr "" -#: whatsnew/3.10.rst:2255 +#: whatsnew/3.10.rst:2256 msgid "" "Removed the undocumented ``PyOS_InitInterrupts()`` function. Initializing " "Python already implicitly installs signal handlers: see :c:member:`PyConfig." "install_signal_handlers`. (Contributed by Victor Stinner in :issue:`41713`.)" msgstr "" -#: whatsnew/3.10.rst:2260 +#: whatsnew/3.10.rst:2261 msgid "" "Remove the ``PyAST_Validate()`` function. It is no longer possible to build " "a AST object (``mod_ty`` type) with the public C API. The function was " @@ -3394,48 +3393,48 @@ msgid "" "Stinner in :issue:`43244`.)" msgstr "" -#: whatsnew/3.10.rst:2265 +#: whatsnew/3.10.rst:2266 msgid "Remove the ``symtable.h`` header file and the undocumented functions:" msgstr "" -#: whatsnew/3.10.rst:2267 +#: whatsnew/3.10.rst:2268 msgid "``PyST_GetScope()``" msgstr "" -#: whatsnew/3.10.rst:2268 +#: whatsnew/3.10.rst:2269 msgid "``PySymtable_Build()``" msgstr "" -#: whatsnew/3.10.rst:2269 +#: whatsnew/3.10.rst:2270 msgid "``PySymtable_BuildObject()``" msgstr "" -#: whatsnew/3.10.rst:2270 +#: whatsnew/3.10.rst:2271 msgid "``PySymtable_Free()``" msgstr "" -#: whatsnew/3.10.rst:2271 +#: whatsnew/3.10.rst:2272 msgid "``Py_SymtableString()``" msgstr "" -#: whatsnew/3.10.rst:2272 +#: whatsnew/3.10.rst:2273 msgid "``Py_SymtableStringObject()``" msgstr "" -#: whatsnew/3.10.rst:2274 +#: whatsnew/3.10.rst:2275 msgid "" "The ``Py_SymtableString()`` function was part the stable ABI by mistake but " "it could not be used, because the ``symtable.h`` header file was excluded " "from the limited C API." msgstr "" -#: whatsnew/3.10.rst:2278 +#: whatsnew/3.10.rst:2279 msgid "" "Use Python :mod:`symtable` module instead. (Contributed by Victor Stinner " "in :issue:`43244`.)" msgstr "" -#: whatsnew/3.10.rst:2281 +#: whatsnew/3.10.rst:2282 msgid "" "Remove :c:func:`PyOS_ReadlineFunctionPointer` from the limited C API headers " "and from ``python3.dll``, the library that provides the stable ABI on " @@ -3443,7 +3442,7 @@ msgid "" "cannot be guaranteed. (Contributed by Petr Viktorin in :issue:`43868`.)" msgstr "" -#: whatsnew/3.10.rst:2287 +#: whatsnew/3.10.rst:2288 msgid "" "Remove ``ast.h``, ``asdl.h``, and ``Python-ast.h`` header files. These " "functions were undocumented and excluded from the limited C API. Most names " @@ -3454,96 +3453,96 @@ msgid "" "(Contributed by Victor Stinner in :issue:`43244`.)" msgstr "" -#: whatsnew/3.10.rst:2295 +#: whatsnew/3.10.rst:2296 msgid "" "Remove the compiler and parser functions using ``struct _mod`` type, because " "the public AST C API was removed:" msgstr "" -#: whatsnew/3.10.rst:2298 +#: whatsnew/3.10.rst:2299 msgid "``PyAST_Compile()``" msgstr "" -#: whatsnew/3.10.rst:2299 +#: whatsnew/3.10.rst:2300 msgid "``PyAST_CompileEx()``" msgstr "" -#: whatsnew/3.10.rst:2300 +#: whatsnew/3.10.rst:2301 msgid "``PyAST_CompileObject()``" msgstr "" -#: whatsnew/3.10.rst:2301 +#: whatsnew/3.10.rst:2302 msgid "``PyFuture_FromAST()``" msgstr "" -#: whatsnew/3.10.rst:2302 +#: whatsnew/3.10.rst:2303 msgid "``PyFuture_FromASTObject()``" msgstr "" -#: whatsnew/3.10.rst:2303 +#: whatsnew/3.10.rst:2304 msgid "``PyParser_ASTFromFile()``" msgstr "" -#: whatsnew/3.10.rst:2304 +#: whatsnew/3.10.rst:2305 msgid "``PyParser_ASTFromFileObject()``" msgstr "" -#: whatsnew/3.10.rst:2305 +#: whatsnew/3.10.rst:2306 msgid "``PyParser_ASTFromFilename()``" msgstr "" -#: whatsnew/3.10.rst:2306 +#: whatsnew/3.10.rst:2307 msgid "``PyParser_ASTFromString()``" msgstr "" -#: whatsnew/3.10.rst:2307 +#: whatsnew/3.10.rst:2308 msgid "``PyParser_ASTFromStringObject()``" msgstr "" -#: whatsnew/3.10.rst:2309 +#: whatsnew/3.10.rst:2310 msgid "" "These functions were undocumented and excluded from the limited C API. " "(Contributed by Victor Stinner in :issue:`43244`.)" msgstr "" -#: whatsnew/3.10.rst:2312 +#: whatsnew/3.10.rst:2313 msgid "Remove the ``pyarena.h`` header file with functions:" msgstr "" -#: whatsnew/3.10.rst:2314 +#: whatsnew/3.10.rst:2315 msgid "``PyArena_New()``" msgstr "" -#: whatsnew/3.10.rst:2315 +#: whatsnew/3.10.rst:2316 msgid "``PyArena_Free()``" msgstr "" -#: whatsnew/3.10.rst:2316 +#: whatsnew/3.10.rst:2317 msgid "``PyArena_Malloc()``" msgstr "" -#: whatsnew/3.10.rst:2317 +#: whatsnew/3.10.rst:2318 msgid "``PyArena_AddPyObject()``" msgstr "" -#: whatsnew/3.10.rst:2319 +#: whatsnew/3.10.rst:2320 msgid "" "These functions were undocumented, excluded from the limited C API, and were " "only used internally by the compiler. (Contributed by Victor Stinner in :" "issue:`43244`.)" msgstr "" -#: whatsnew/3.10.rst:2323 +#: whatsnew/3.10.rst:2324 msgid "" "The ``PyThreadState.use_tracing`` member has been removed to optimize " "Python. (Contributed by Mark Shannon in :issue:`43760`.)" msgstr "" -#: whatsnew/3.10.rst:2328 +#: whatsnew/3.10.rst:2329 msgid "Notable security feature in 3.10.7" msgstr "" -#: whatsnew/3.10.rst:2330 +#: whatsnew/3.10.rst:2331 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) " @@ -3556,11 +3555,11 @@ msgid "" "digits in string form." msgstr "" -#: whatsnew/3.10.rst:2341 +#: whatsnew/3.10.rst:2342 msgid "Notable security feature in 3.10.8" msgstr "" -#: whatsnew/3.10.rst:2343 +#: whatsnew/3.10.rst:2344 msgid "" "The deprecated :mod:`!mailcap` module now refuses to inject unsafe text " "(filenames, MIME types, parameters) into shell commands. Instead of using " @@ -3569,15 +3568,15 @@ msgid "" "`98966`.)" msgstr "" -#: whatsnew/3.10.rst:2350 +#: whatsnew/3.10.rst:2351 msgid "Notable changes in 3.10.12" msgstr "" -#: whatsnew/3.10.rst:2353 +#: whatsnew/3.10.rst:2354 msgid "tarfile" msgstr "" -#: whatsnew/3.10.rst:2355 +#: whatsnew/3.10.rst:2356 msgid "" "The extraction methods in :mod:`tarfile`, and :func:`shutil.unpack_archive`, " "have a new a *filter* argument that allows limiting tar features than may be " diff --git a/whatsnew/3.11.po b/whatsnew/3.11.po index 74a5ccc3..58e00637 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 1cce8f31..90cc98a7 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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:1840 +#: 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:1544 +#: whatsnew/3.12.rst:1560 msgid "sqlite3" msgstr "" @@ -1295,7 +1295,7 @@ msgid "" "Katriel in :gh:`102778`.)" msgstr "" -#: whatsnew/3.12.rst:1739 +#: 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:1584 +#: 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:2142 +#: 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:39 +#: whatsnew/3.12.rst:1190 deprecations/pending-removal-in-future.rst:38 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:50 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:51 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:52 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:54 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:56 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:57 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:59 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:89 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,39 +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 +#: 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:" "`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`. " @@ -1931,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:" @@ -1940,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" @@ -2166,23 +2153,22 @@ 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`.)" +":mod:`builtins`: ``bool(NotImplemented)`` now emits a :exc:" +"`DeprecationWarning` and will raise a :exc:`TypeError` in Python 3.14. " +"(Contributed by Jelle Zijlstra in :gh:`118767`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:47 +#: deprecations/pending-removal-in-3.14.rst:45 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:48 msgid ":mod:`importlib.abc` deprecated classes:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:63 +#: deprecations/pending-removal-in-3.14.rst:61 msgid "" ":mod:`itertools` had undocumented, inefficient, historically buggy, and " "inconsistent support for copy, deepcopy, and pickle operations. This will be " @@ -2190,7 +2176,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:67 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 " @@ -2201,49 +2187,43 @@ msgid "" "``'fork'``. See :ref:`multiprocessing-start-methods`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:77 +#: deprecations/pending-removal-in-3.14.rst:75 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:79 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:84 msgid ":mod:`pty`:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:88 +#: deprecations/pending-removal-in-3.14.rst:86 msgid "``master_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:89 +#: deprecations/pending-removal-in-3.14.rst:87 msgid "``slave_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:93 +#: deprecations/pending-removal-in-3.14.rst:91 msgid ":data:`~sqlite3.version` and :data:`~sqlite3.version_info`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:95 +#: deprecations/pending-removal-in-3.14.rst:93 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:97 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:" @@ -2304,7 +2284,7 @@ msgid "" msgstr "" #: deprecations/pending-removal-in-3.15.rst:32 -#: deprecations/pending-removal-in-future.rst:56 +#: deprecations/pending-removal-in-future.rst:55 msgid ":mod:`importlib`:" msgstr "" @@ -2390,22 +2370,32 @@ msgstr "" #: deprecations/pending-removal-in-3.15.rst:88 msgid "" +"When using the functional syntax of :class:`~typing.TypedDict`\\s, failing " +"to pass a value to the *fields* parameter (``TD = TypedDict(\"TD\")``) or " +"passing ``None`` (``TD = TypedDict(\"TD\", None)``) has been deprecated " +"since Python 3.13. Use ``class TD(TypedDict): pass`` or ``TD = " +"TypedDict(\"TD\", {})`` to create a TypedDict with zero field." +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:95 +msgid "" "The :func:`typing.no_type_check_decorator` decorator function has been " "deprecated since Python 3.13. After eight years in the :mod:`typing` module, " "it has yet to be supported by any major type checker." msgstr "" -#: deprecations/pending-removal-in-3.15.rst:93 +#: deprecations/pending-removal-in-3.15.rst:100 msgid ":mod:`wave`:" msgstr "" -#: deprecations/pending-removal-in-3.15.rst:95 +#: deprecations/pending-removal-in-3.15.rst:102 msgid "" "The :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, and :meth:`~wave." "Wave_read.getmarkers` methods of the :class:`~wave.Wave_read` and :class:" "`~wave.Wave_write` classes have been deprecated since Python 3.13." 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 "" @@ -2492,6 +2482,35 @@ msgid "" "deprecated since Python 3.13." msgstr "" +#: deprecations/pending-removal-in-3.17.rst:2 +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 " +"removal scheduled for Python 3.17. Users should use documented introspection " +"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 "" + #: deprecations/c-api-pending-removal-in-future.rst:2 #: deprecations/pending-removal-in-future.rst:2 msgid "Pending Removal in Future Versions" @@ -2510,17 +2529,13 @@ msgid "" msgstr "" #: deprecations/pending-removal-in-future.rst:12 -msgid "``bool(NotImplemented)``." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:13 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:16 +#: deprecations/pending-removal-in-future.rst:15 msgid "" "Currently Python accepts numeric literals immediately followed by keywords, " "for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " @@ -2532,32 +2547,32 @@ msgid "" "syntax error. (:gh:`87999`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:24 +#: deprecations/pending-removal-in-future.rst:23 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:27 +#: deprecations/pending-removal-in-future.rst:26 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:30 +#: deprecations/pending-removal-in-future.rst:29 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:33 +#: deprecations/pending-removal-in-future.rst:32 msgid "Delegation of ``int()`` to ``__trunc__()`` method." msgstr "" -#: deprecations/pending-removal-in-future.rst:34 +#: deprecations/pending-removal-in-future.rst:33 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 " @@ -2565,74 +2580,74 @@ msgid "" "`109218`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:44 +#: deprecations/pending-removal-in-future.rst:43 msgid "" ":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:47 +#: deprecations/pending-removal-in-future.rst:46 msgid ":mod:`datetime`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:49 +#: deprecations/pending-removal-in-future.rst:48 msgid "" ":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." "UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:51 +#: deprecations/pending-removal-in-future.rst:50 msgid "" ":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." "fromtimestamp(timestamp, tz=datetime.UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:54 +#: deprecations/pending-removal-in-future.rst:53 msgid ":mod:`gettext`: Plural value must be an integer." msgstr "" -#: deprecations/pending-removal-in-future.rst:58 +#: deprecations/pending-removal-in-future.rst:57 msgid "" ":func:`~importlib.util.cache_from_source` *debug_override* parameter is " "deprecated: use the *optimization* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:61 +#: deprecations/pending-removal-in-future.rst:60 msgid ":mod:`importlib.metadata`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:63 +#: deprecations/pending-removal-in-future.rst:62 msgid "``EntryPoints`` tuple interface." msgstr "" -#: deprecations/pending-removal-in-future.rst:64 +#: deprecations/pending-removal-in-future.rst:63 msgid "Implicit ``None`` on return values." msgstr "" -#: deprecations/pending-removal-in-future.rst:66 +#: deprecations/pending-removal-in-future.rst:65 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:69 +#: deprecations/pending-removal-in-future.rst:68 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:72 +#: deprecations/pending-removal-in-future.rst:71 msgid "" ":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." msgstr "" -#: deprecations/pending-removal-in-future.rst:74 +#: deprecations/pending-removal-in-future.rst:73 msgid "" ":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " "deprecated, use an exception instance." msgstr "" -#: deprecations/pending-removal-in-future.rst:77 +#: deprecations/pending-removal-in-future.rst:76 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 " @@ -2641,179 +2656,179 @@ msgid "" "underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:84 +#: deprecations/pending-removal-in-future.rst:83 msgid "" ":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." msgstr "" -#: deprecations/pending-removal-in-future.rst:86 +#: deprecations/pending-removal-in-future.rst:85 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:89 +#: deprecations/pending-removal-in-future.rst:88 msgid ":mod:`ssl` options and protocols:" msgstr "" -#: deprecations/pending-removal-in-future.rst:91 +#: deprecations/pending-removal-in-future.rst:90 msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." msgstr "" -#: deprecations/pending-removal-in-future.rst:92 +#: deprecations/pending-removal-in-future.rst:91 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:95 +#: deprecations/pending-removal-in-future.rst:94 msgid "``ssl.OP_NO_SSL*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:96 +#: deprecations/pending-removal-in-future.rst:95 msgid "``ssl.OP_NO_TLS*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:97 +#: deprecations/pending-removal-in-future.rst:96 msgid "``ssl.PROTOCOL_SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:98 +#: deprecations/pending-removal-in-future.rst:97 msgid "``ssl.PROTOCOL_TLS``" msgstr "" -#: deprecations/pending-removal-in-future.rst:99 +#: deprecations/pending-removal-in-future.rst:98 msgid "``ssl.PROTOCOL_TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:100 +#: deprecations/pending-removal-in-future.rst:99 msgid "``ssl.PROTOCOL_TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:101 +#: deprecations/pending-removal-in-future.rst:100 msgid "``ssl.PROTOCOL_TLSv1_2``" msgstr "" -#: deprecations/pending-removal-in-future.rst:102 +#: deprecations/pending-removal-in-future.rst:101 msgid "``ssl.TLSVersion.SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:103 +#: deprecations/pending-removal-in-future.rst:102 msgid "``ssl.TLSVersion.TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:104 +#: deprecations/pending-removal-in-future.rst:103 msgid "``ssl.TLSVersion.TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:106 +#: deprecations/pending-removal-in-future.rst:105 msgid ":mod:`threading` methods:" msgstr "" -#: deprecations/pending-removal-in-future.rst:108 +#: deprecations/pending-removal-in-future.rst:107 msgid "" ":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." "notify_all`." msgstr "" -#: deprecations/pending-removal-in-future.rst:109 +#: deprecations/pending-removal-in-future.rst:108 msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." msgstr "" -#: deprecations/pending-removal-in-future.rst:110 +#: deprecations/pending-removal-in-future.rst:109 msgid "" ":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :" "attr:`threading.Thread.daemon` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:112 +#: deprecations/pending-removal-in-future.rst:111 msgid "" ":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :" "attr:`threading.Thread.name` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:114 +#: deprecations/pending-removal-in-future.rst:113 msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." msgstr "" -#: deprecations/pending-removal-in-future.rst:115 +#: deprecations/pending-removal-in-future.rst:114 msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." msgstr "" -#: deprecations/pending-removal-in-future.rst:117 +#: deprecations/pending-removal-in-future.rst:116 msgid ":class:`typing.Text` (:gh:`92332`)." msgstr "" -#: deprecations/pending-removal-in-future.rst:119 +#: deprecations/pending-removal-in-future.rst:118 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:122 +#: deprecations/pending-removal-in-future.rst:121 msgid "" ":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " "instead" msgstr "" -#: deprecations/pending-removal-in-future.rst:124 +#: deprecations/pending-removal-in-future.rst:123 msgid "``splitattr()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:125 +#: deprecations/pending-removal-in-future.rst:124 msgid "``splithost()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:126 +#: deprecations/pending-removal-in-future.rst:125 msgid "``splitnport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:127 +#: deprecations/pending-removal-in-future.rst:126 msgid "``splitpasswd()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:128 +#: deprecations/pending-removal-in-future.rst:127 msgid "``splitport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:129 +#: deprecations/pending-removal-in-future.rst:128 msgid "``splitquery()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:130 +#: deprecations/pending-removal-in-future.rst:129 msgid "``splittag()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:131 +#: deprecations/pending-removal-in-future.rst:130 msgid "``splittype()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:132 +#: deprecations/pending-removal-in-future.rst:131 msgid "``splituser()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:133 +#: deprecations/pending-removal-in-future.rst:132 msgid "``splitvalue()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:134 +#: deprecations/pending-removal-in-future.rst:133 msgid "``to_bytes()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:136 +#: deprecations/pending-removal-in-future.rst:135 msgid "" ":mod:`urllib.request`: :class:`~urllib.request.URLopener` and :class:" "`~urllib.request.FancyURLopener` style of invoking requests is deprecated. " "Use newer :func:`~urllib.request.urlopen` functions and methods." msgstr "" -#: deprecations/pending-removal-in-future.rst:140 +#: deprecations/pending-removal-in-future.rst:139 msgid "" ":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " "writes." msgstr "" -#: deprecations/pending-removal-in-future.rst:143 +#: deprecations/pending-removal-in-future.rst:142 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 " @@ -2821,60 +2836,60 @@ msgid "" "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:148 +#: deprecations/pending-removal-in-future.rst:147 msgid "" ":meth:`zipimport.zipimporter.load_module` is deprecated: use :meth:" "`~zipimport.zipimporter.exec_module` instead." msgstr "" -#: whatsnew/3.12.rst:2237 +#: whatsnew/3.12.rst:2255 msgid "Removed" msgstr "" -#: whatsnew/3.12.rst:1358 +#: whatsnew/3.12.rst:1374 msgid "asynchat and asyncore" msgstr "" -#: whatsnew/3.12.rst:1360 +#: 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:1367 +#: whatsnew/3.12.rst:1383 msgid "configparser" msgstr "" -#: whatsnew/3.12.rst:1369 +#: 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:1372 +#: 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:1374 +#: 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:1376 +#: 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:1382 +#: whatsnew/3.12.rst:1398 msgid "distutils" msgstr "" -#: whatsnew/3.12.rst:1384 +#: 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 " @@ -2883,17 +2898,17 @@ msgid "" "Victor Stinner in :gh:`92584`.)" msgstr "" -#: whatsnew/3.12.rst:1391 +#: whatsnew/3.12.rst:1407 msgid "ensurepip" msgstr "" -#: whatsnew/3.12.rst:1393 +#: 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:1396 +#: 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 " @@ -2901,7 +2916,7 @@ msgid "" "the build environment it uses for building a package." msgstr "" -#: whatsnew/3.12.rst:1402 +#: 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 " @@ -2911,35 +2926,35 @@ msgid "" "(typically, using pip)." msgstr "" -#: whatsnew/3.12.rst:1409 +#: whatsnew/3.12.rst:1425 msgid "(Contributed by Pradyun Gedam in :gh:`95299`.)" msgstr "" -#: whatsnew/3.12.rst:1412 +#: whatsnew/3.12.rst:1428 msgid "enum" msgstr "" -#: whatsnew/3.12.rst:1414 +#: 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:1419 +#: whatsnew/3.12.rst:1435 msgid "ftplib" msgstr "" -#: whatsnew/3.12.rst:1421 +#: 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:1426 +#: whatsnew/3.12.rst:1442 msgid "gzip" msgstr "" -#: whatsnew/3.12.rst:1428 +#: 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 " @@ -2948,11 +2963,11 @@ msgid "" "`94196`.)" msgstr "" -#: whatsnew/3.12.rst:1435 +#: whatsnew/3.12.rst:1451 msgid "hashlib" msgstr "" -#: whatsnew/3.12.rst:1437 +#: 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 " @@ -2961,150 +2976,150 @@ msgid "" "Stinner in :gh:`94199`.)" msgstr "" -#: whatsnew/3.12.rst:1473 +#: whatsnew/3.12.rst:1489 msgid "importlib" msgstr "" -#: whatsnew/3.12.rst:1446 +#: whatsnew/3.12.rst:1462 msgid "" "Many previously deprecated cleanups in :mod:`importlib` have now been " "completed:" msgstr "" -#: whatsnew/3.12.rst:1449 +#: 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:1452 +#: 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:1456 +#: 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:1459 +#: 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:1473 +#: whatsnew/3.12.rst:1489 msgid "imp" msgstr "" -#: whatsnew/3.12.rst:1467 +#: 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:1470 +#: whatsnew/3.12.rst:1486 msgid "To migrate, consult the following correspondence table:" msgstr "" -#: whatsnew/3.12.rst:1475 +#: whatsnew/3.12.rst:1491 msgid "``imp.NullImporter``" msgstr "" -#: whatsnew/3.12.rst:1475 +#: whatsnew/3.12.rst:1491 msgid "Insert ``None`` into ``sys.path_importer_cache``" msgstr "" -#: whatsnew/3.12.rst:1476 +#: whatsnew/3.12.rst:1492 msgid "``imp.cache_from_source()``" msgstr "" -#: whatsnew/3.12.rst:1476 +#: whatsnew/3.12.rst:1492 msgid ":func:`importlib.util.cache_from_source`" msgstr "" -#: whatsnew/3.12.rst:1477 +#: whatsnew/3.12.rst:1493 msgid "``imp.find_module()``" msgstr "" -#: whatsnew/3.12.rst:1477 +#: whatsnew/3.12.rst:1493 msgid ":func:`importlib.util.find_spec`" msgstr "" -#: whatsnew/3.12.rst:1478 +#: whatsnew/3.12.rst:1494 msgid "``imp.get_magic()``" msgstr "" -#: whatsnew/3.12.rst:1478 +#: whatsnew/3.12.rst:1494 msgid ":const:`importlib.util.MAGIC_NUMBER`" msgstr "" -#: whatsnew/3.12.rst:1479 +#: whatsnew/3.12.rst:1495 msgid "``imp.get_suffixes()``" msgstr "" -#: whatsnew/3.12.rst:1479 +#: 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:1480 +#: whatsnew/3.12.rst:1496 msgid "``imp.get_tag()``" msgstr "" -#: whatsnew/3.12.rst:1480 +#: whatsnew/3.12.rst:1496 msgid ":attr:`sys.implementation.cache_tag `" msgstr "" -#: whatsnew/3.12.rst:1481 +#: whatsnew/3.12.rst:1497 msgid "``imp.load_module()``" msgstr "" -#: whatsnew/3.12.rst:1481 +#: whatsnew/3.12.rst:1497 msgid ":func:`importlib.import_module`" msgstr "" -#: whatsnew/3.12.rst:1482 +#: whatsnew/3.12.rst:1498 msgid "``imp.new_module(name)``" msgstr "" -#: whatsnew/3.12.rst:1482 +#: whatsnew/3.12.rst:1498 msgid "``types.ModuleType(name)``" msgstr "" -#: whatsnew/3.12.rst:1483 +#: whatsnew/3.12.rst:1499 msgid "``imp.reload()``" msgstr "" -#: whatsnew/3.12.rst:1483 +#: whatsnew/3.12.rst:1499 msgid ":func:`importlib.reload`" msgstr "" -#: whatsnew/3.12.rst:1484 +#: whatsnew/3.12.rst:1500 msgid "``imp.source_from_cache()``" msgstr "" -#: whatsnew/3.12.rst:1484 +#: whatsnew/3.12.rst:1500 msgid ":func:`importlib.util.source_from_cache`" msgstr "" -#: whatsnew/3.12.rst:1485 +#: whatsnew/3.12.rst:1501 msgid "``imp.load_source()``" msgstr "" -#: whatsnew/3.12.rst:1485 +#: whatsnew/3.12.rst:1501 msgid "*See below*" msgstr "" -#: whatsnew/3.12.rst:1488 +#: whatsnew/3.12.rst:1504 msgid "Replace ``imp.load_source()`` with::" msgstr "" -#: whatsnew/3.12.rst:1490 +#: whatsnew/3.12.rst:1506 msgid "" "import importlib.util\n" "import importlib.machinery\n" @@ -3121,48 +3136,48 @@ msgid "" " return module" msgstr "" -#: whatsnew/3.12.rst:1503 +#: whatsnew/3.12.rst:1519 msgid "Remove :mod:`!imp` functions and attributes with no replacements:" msgstr "" -#: whatsnew/3.12.rst:1505 +#: whatsnew/3.12.rst:1521 msgid "Undocumented functions:" msgstr "" -#: whatsnew/3.12.rst:1507 +#: whatsnew/3.12.rst:1523 msgid "``imp.init_builtin()``" msgstr "" -#: whatsnew/3.12.rst:1508 +#: whatsnew/3.12.rst:1524 msgid "``imp.load_compiled()``" msgstr "" -#: whatsnew/3.12.rst:1509 +#: whatsnew/3.12.rst:1525 msgid "``imp.load_dynamic()``" msgstr "" -#: whatsnew/3.12.rst:1510 +#: whatsnew/3.12.rst:1526 msgid "``imp.load_package()``" msgstr "" -#: whatsnew/3.12.rst:1512 +#: 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:1514 +#: 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:1519 +#: whatsnew/3.12.rst:1535 msgid "io" msgstr "" -#: whatsnew/3.12.rst:1521 +#: 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." @@ -3171,22 +3186,22 @@ msgid "" "`94169`.)" msgstr "" -#: whatsnew/3.12.rst:1528 +#: whatsnew/3.12.rst:1544 msgid "locale" msgstr "" -#: whatsnew/3.12.rst:1530 +#: 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:1535 +#: whatsnew/3.12.rst:1551 msgid "smtpd" msgstr "" -#: whatsnew/3.12.rst:1537 +#: 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:" @@ -3194,27 +3209,27 @@ msgid "" "(Contributed by Oleg Iarygin in :gh:`93243`.)" msgstr "" -#: whatsnew/3.12.rst:1546 +#: 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:1549 +#: whatsnew/3.12.rst:1565 msgid "``sqlite3.enable_shared_cache()``" msgstr "" -#: whatsnew/3.12.rst:1550 +#: whatsnew/3.12.rst:1566 msgid "``sqlite3.OptimizedUnicode``" msgstr "" -#: whatsnew/3.12.rst:1552 +#: 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:1555 +#: 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 " @@ -3222,22 +3237,22 @@ msgid "" "default value which is also ``str``." msgstr "" -#: whatsnew/3.12.rst:1560 +#: whatsnew/3.12.rst:1576 msgid "(Contributed by Erlend E. Aasland in :gh:`92548`.)" msgstr "" -#: whatsnew/3.12.rst:1563 +#: whatsnew/3.12.rst:1579 msgid "ssl" msgstr "" -#: whatsnew/3.12.rst:1565 +#: 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:1569 +#: 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 " @@ -3245,7 +3260,7 @@ msgid "" "Stinner in :gh:`94199`.)" msgstr "" -#: whatsnew/3.12.rst:1575 +#: 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." @@ -3256,185 +3271,185 @@ msgid "" "`94199`.)" msgstr "" -#: whatsnew/3.12.rst:1586 +#: whatsnew/3.12.rst:1602 msgid "Remove many long-deprecated :mod:`unittest` features:" msgstr "" -#: whatsnew/3.12.rst:1590 +#: whatsnew/3.12.rst:1606 msgid "A number of :class:`~unittest.TestCase` method aliases:" msgstr "" -#: whatsnew/3.12.rst:1593 +#: whatsnew/3.12.rst:1609 msgid "Deprecated alias" msgstr "" -#: whatsnew/3.12.rst:1593 +#: whatsnew/3.12.rst:1609 msgid "Method Name" msgstr "" -#: whatsnew/3.12.rst:1593 +#: whatsnew/3.12.rst:1609 msgid "Deprecated in" msgstr "" -#: whatsnew/3.12.rst:1595 +#: whatsnew/3.12.rst:1611 msgid "``failUnless``" msgstr "" -#: whatsnew/3.12.rst:1602 +#: whatsnew/3.12.rst:1618 msgid ":meth:`.assertTrue`" msgstr "" -#: whatsnew/3.12.rst:1596 whatsnew/3.12.rst:1598 whatsnew/3.12.rst:1600 -#: whatsnew/3.12.rst:1601 +#: 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:1596 +#: whatsnew/3.12.rst:1612 msgid "``failIf``" msgstr "" -#: whatsnew/3.12.rst:1596 +#: whatsnew/3.12.rst:1612 msgid ":meth:`.assertFalse`" msgstr "" -#: whatsnew/3.12.rst:1597 +#: whatsnew/3.12.rst:1613 msgid "``failUnlessEqual``" msgstr "" -#: whatsnew/3.12.rst:1603 +#: whatsnew/3.12.rst:1619 msgid ":meth:`.assertEqual`" msgstr "" -#: whatsnew/3.12.rst:1598 +#: whatsnew/3.12.rst:1614 msgid "``failIfEqual``" msgstr "" -#: whatsnew/3.12.rst:1604 +#: whatsnew/3.12.rst:1620 msgid ":meth:`.assertNotEqual`" msgstr "" -#: whatsnew/3.12.rst:1599 +#: whatsnew/3.12.rst:1615 msgid "``failUnlessAlmostEqual``" msgstr "" -#: whatsnew/3.12.rst:1605 +#: whatsnew/3.12.rst:1621 msgid ":meth:`.assertAlmostEqual`" msgstr "" -#: whatsnew/3.12.rst:1600 +#: whatsnew/3.12.rst:1616 msgid "``failIfAlmostEqual``" msgstr "" -#: whatsnew/3.12.rst:1606 +#: whatsnew/3.12.rst:1622 msgid ":meth:`.assertNotAlmostEqual`" msgstr "" -#: whatsnew/3.12.rst:1601 +#: whatsnew/3.12.rst:1617 msgid "``failUnlessRaises``" msgstr "" -#: whatsnew/3.12.rst:1601 +#: whatsnew/3.12.rst:1617 msgid ":meth:`.assertRaises`" msgstr "" -#: whatsnew/3.12.rst:1602 +#: whatsnew/3.12.rst:1618 msgid "``assert_``" msgstr "" -#: whatsnew/3.12.rst:1603 whatsnew/3.12.rst:1605 whatsnew/3.12.rst:1607 -#: whatsnew/3.12.rst:1608 +#: 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:1603 +#: whatsnew/3.12.rst:1619 msgid "``assertEquals``" msgstr "" -#: whatsnew/3.12.rst:1604 +#: whatsnew/3.12.rst:1620 msgid "``assertNotEquals``" msgstr "" -#: whatsnew/3.12.rst:1605 +#: whatsnew/3.12.rst:1621 msgid "``assertAlmostEquals``" msgstr "" -#: whatsnew/3.12.rst:1606 +#: whatsnew/3.12.rst:1622 msgid "``assertNotAlmostEquals``" msgstr "" -#: whatsnew/3.12.rst:1607 +#: whatsnew/3.12.rst:1623 msgid "``assertRegexpMatches``" msgstr "" -#: whatsnew/3.12.rst:1607 +#: whatsnew/3.12.rst:1623 msgid ":meth:`.assertRegex`" msgstr "" -#: whatsnew/3.12.rst:1608 +#: whatsnew/3.12.rst:1624 msgid "``assertRaisesRegexp``" msgstr "" -#: whatsnew/3.12.rst:1608 +#: whatsnew/3.12.rst:1624 msgid ":meth:`.assertRaisesRegex`" msgstr "" -#: whatsnew/3.12.rst:1609 +#: whatsnew/3.12.rst:1625 msgid "``assertNotRegexpMatches``" msgstr "" -#: whatsnew/3.12.rst:1609 +#: whatsnew/3.12.rst:1625 msgid ":meth:`.assertNotRegex`" msgstr "" -#: whatsnew/3.12.rst:1609 +#: whatsnew/3.12.rst:1625 msgid "3.5" msgstr "" -#: whatsnew/3.12.rst:1612 +#: 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:1615 +#: whatsnew/3.12.rst:1631 msgid "" "Undocumented and broken :class:`~unittest.TestCase` method " "``assertDictContainsSubset`` (deprecated in Python 3.2)." msgstr "" -#: whatsnew/3.12.rst:1618 +#: 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:1622 +#: 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:1625 +#: whatsnew/3.12.rst:1641 msgid "(Contributed by Serhiy Storchaka in :gh:`89325`.)" msgstr "" -#: whatsnew/3.12.rst:1628 +#: whatsnew/3.12.rst:1644 msgid "webbrowser" msgstr "" -#: whatsnew/3.12.rst:1630 +#: 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:1635 +#: whatsnew/3.12.rst:1651 msgid "xml.etree.ElementTree" msgstr "" -#: whatsnew/3.12.rst:1637 +#: 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` " @@ -3443,22 +3458,22 @@ msgid "" "Stinner in :gh:`94383`.)" msgstr "" -#: whatsnew/3.12.rst:1644 +#: whatsnew/3.12.rst:1660 msgid "zipimport" msgstr "" -#: whatsnew/3.12.rst:1646 +#: 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:1652 +#: whatsnew/3.12.rst:1668 msgid "Others" msgstr "" -#: whatsnew/3.12.rst:1654 +#: 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 " @@ -3745,84 +3760,84 @@ msgid "" "contents are marked by the ``PyUnstable_`` prefix in names." msgstr "" -#: whatsnew/3.12.rst:1850 +#: whatsnew/3.12.rst:1866 msgid "Code object constructors:" msgstr "" -#: whatsnew/3.12.rst:1852 +#: whatsnew/3.12.rst:1868 msgid "``PyUnstable_Code_New()`` (renamed from ``PyCode_New``)" msgstr "" -#: whatsnew/3.12.rst:1853 +#: whatsnew/3.12.rst:1869 msgid "" "``PyUnstable_Code_NewWithPosOnlyArgs()`` (renamed from " "``PyCode_NewWithPosOnlyArgs``)" msgstr "" -#: whatsnew/3.12.rst:1855 +#: whatsnew/3.12.rst:1871 msgid "Extra storage for code objects (:pep:`523`):" msgstr "" -#: whatsnew/3.12.rst:1857 +#: whatsnew/3.12.rst:1873 msgid "" "``PyUnstable_Eval_RequestCodeExtraIndex()`` (renamed from " "``_PyEval_RequestCodeExtraIndex``)" msgstr "" -#: whatsnew/3.12.rst:1858 +#: whatsnew/3.12.rst:1874 msgid "``PyUnstable_Code_GetExtra()`` (renamed from ``_PyCode_GetExtra``)" msgstr "" -#: whatsnew/3.12.rst:1859 +#: whatsnew/3.12.rst:1875 msgid "``PyUnstable_Code_SetExtra()`` (renamed from ``_PyCode_SetExtra``)" msgstr "" -#: whatsnew/3.12.rst:1861 +#: whatsnew/3.12.rst:1877 msgid "" "The original names will continue to be available until the respective API " "changes." msgstr "" -#: whatsnew/3.12.rst:1864 +#: whatsnew/3.12.rst:1880 msgid "(Contributed by Petr Viktorin in :gh:`101101`.)" msgstr "" -#: whatsnew/3.12.rst:1866 +#: 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:1869 +#: 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:1871 +#: 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:1873 +#: 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:1876 +#: 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:1879 +#: whatsnew/3.12.rst:1895 msgid "(Contributed by Petr Viktorin in :gh:`103509`.)" msgstr "" -#: whatsnew/3.12.rst:1881 +#: whatsnew/3.12.rst:1897 msgid "" "Add the new :ref:`limited C API ` function :c:func:" "`PyType_FromMetaclass`, which generalizes the existing :c:func:" @@ -3830,29 +3845,29 @@ msgid "" "(Contributed by Wenzel Jakob in :gh:`93012`.)" msgstr "" -#: whatsnew/3.12.rst:1886 +#: 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:1890 +#: whatsnew/3.12.rst:1906 msgid ":c:macro:`Py_TPFLAGS_HAVE_VECTORCALL`" msgstr "" -#: whatsnew/3.12.rst:1891 +#: whatsnew/3.12.rst:1907 msgid ":c:func:`PyVectorcall_NARGS`" msgstr "" -#: whatsnew/3.12.rst:1892 +#: whatsnew/3.12.rst:1908 msgid ":c:func:`PyVectorcall_Call`" msgstr "" -#: whatsnew/3.12.rst:1893 +#: whatsnew/3.12.rst:1909 msgid ":c:type:`vectorcallfunc`" msgstr "" -#: whatsnew/3.12.rst:1895 +#: 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 " @@ -3863,7 +3878,7 @@ msgid "" "`93274`.)" msgstr "" -#: whatsnew/3.12.rst:1903 +#: 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 " @@ -3871,32 +3886,32 @@ msgid "" "bookkeeping, using less memory and with faster access." msgstr "" -#: whatsnew/3.12.rst:1908 +#: 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:1912 +#: whatsnew/3.12.rst:1928 msgid ":c:func:`PyObject_Vectorcall`" msgstr "" -#: whatsnew/3.12.rst:1913 +#: whatsnew/3.12.rst:1929 msgid ":c:func:`PyObject_VectorcallMethod`" msgstr "" -#: whatsnew/3.12.rst:1914 +#: whatsnew/3.12.rst:1930 msgid ":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`" msgstr "" -#: whatsnew/3.12.rst:1916 +#: 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:1920 +#: 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 " @@ -3904,14 +3919,14 @@ msgid "" "(Contributed by Pablo Galindo in :gh:`93503`.)" msgstr "" -#: whatsnew/3.12.rst:1926 +#: 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:1930 +#: 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 " @@ -3920,28 +3935,28 @@ msgid "" "`91052`.)" msgstr "" -#: whatsnew/3.12.rst:1936 +#: 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:1940 +#: 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:1945 +#: 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:1949 +#: whatsnew/3.12.rst:1965 msgid "" "Add :c:func:`PyErr_GetRaisedException` and :c:func:" "`PyErr_SetRaisedException` for saving and restoring the current exception. " @@ -3951,14 +3966,14 @@ msgid "" "(Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" -#: whatsnew/3.12.rst:1957 +#: 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:1961 +#: 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." @@ -3966,71 +3981,71 @@ msgid "" "in :gh:`101578`.)" msgstr "" -#: whatsnew/3.12.rst:1966 +#: 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:1972 +#: 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:1975 +#: whatsnew/3.12.rst:1991 msgid "``_Py_IMMORTAL_REFCNT``: The reference count that defines an object" msgstr "" -#: whatsnew/3.12.rst:1976 +#: whatsnew/3.12.rst:1992 msgid "as immortal." msgstr "" -#: whatsnew/3.12.rst:1977 +#: whatsnew/3.12.rst:1993 msgid "" "``_Py_IsImmortal`` Checks if an object has the immortal reference count." msgstr "" -#: whatsnew/3.12.rst:1978 +#: whatsnew/3.12.rst:1994 msgid "``PyObject_HEAD_INIT`` This will now initialize reference count to" msgstr "" -#: whatsnew/3.12.rst:1979 +#: whatsnew/3.12.rst:1995 msgid "``_Py_IMMORTAL_REFCNT`` when used with ``Py_BUILD_CORE``." msgstr "" -#: whatsnew/3.12.rst:1980 +#: whatsnew/3.12.rst:1996 msgid "``SSTATE_INTERNED_IMMORTAL`` An identifier for interned unicode objects" msgstr "" -#: whatsnew/3.12.rst:1981 +#: whatsnew/3.12.rst:1997 msgid "that are immortal." msgstr "" -#: whatsnew/3.12.rst:1982 +#: whatsnew/3.12.rst:1998 msgid "``SSTATE_INTERNED_IMMORTAL_STATIC`` An identifier for interned unicode" msgstr "" -#: whatsnew/3.12.rst:1983 +#: whatsnew/3.12.rst:1999 msgid "objects that are immortal and static" msgstr "" -#: whatsnew/3.12.rst:1984 +#: whatsnew/3.12.rst:2000 msgid "``sys.getunicodeinternedsize`` This returns the total number of unicode" msgstr "" -#: whatsnew/3.12.rst:1985 +#: 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:1988 +#: whatsnew/3.12.rst:2004 msgid "(Contributed by Eddie Elizondo in :gh:`84436`.)" msgstr "" -#: whatsnew/3.12.rst:1990 +#: 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 " @@ -4038,27 +4053,27 @@ msgid "" "(Contributed by Eric Snow in :gh:`104110`.)" msgstr "" -#: whatsnew/3.12.rst:1996 +#: 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:2004 +#: 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:2007 +#: 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:2011 +#: 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 " @@ -4067,7 +4082,7 @@ msgid "" "necessary, the (internal-only) ``_PyObject_GET_WEAKREFS_LISTPTR()`` macro." msgstr "" -#: whatsnew/3.12.rst:2018 +#: 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 " @@ -4075,13 +4090,13 @@ msgid "" "only field directly." msgstr "" -#: whatsnew/3.12.rst:2023 +#: 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:2027 +#: 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 " @@ -4090,7 +4105,7 @@ msgid "" "`98836`.)" msgstr "" -#: whatsnew/3.12.rst:2033 +#: 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 " @@ -4099,13 +4114,13 @@ msgid "" "Storchaka in :gh:`95781`.)" msgstr "" -#: whatsnew/3.12.rst:2039 +#: 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:2043 +#: 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:" @@ -4119,7 +4134,7 @@ msgid "" "func:`PyObject_ClearWeakRefs`, as before." msgstr "" -#: whatsnew/3.12.rst:2055 +#: 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 " @@ -4127,7 +4142,7 @@ msgid "" "Victor Stinner in :gh:`98393`.)" msgstr "" -#: whatsnew/3.12.rst:2060 +#: 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 " @@ -4135,7 +4150,7 @@ msgid "" "Stinner in :gh:`98724`.)" msgstr "" -#: whatsnew/3.12.rst:2065 +#: 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 " @@ -4143,7 +4158,7 @@ msgid "" "(Contributed by Mark Shannon in :gh:`101578`.)" msgstr "" -#: whatsnew/3.12.rst:2070 +#: 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 " @@ -4151,25 +4166,25 @@ msgid "" "``_Py_GetGlobalRefTotal()``." msgstr "" -#: whatsnew/3.12.rst:2075 +#: whatsnew/3.12.rst:2091 msgid "" "The following functions now select an appropriate metaclass for the newly " "created type:" msgstr "" -#: whatsnew/3.12.rst:2078 +#: whatsnew/3.12.rst:2094 msgid ":c:func:`PyType_FromSpec`" msgstr "" -#: whatsnew/3.12.rst:2079 +#: whatsnew/3.12.rst:2095 msgid ":c:func:`PyType_FromSpecWithBases`" msgstr "" -#: whatsnew/3.12.rst:2080 +#: whatsnew/3.12.rst:2096 msgid ":c:func:`PyType_FromModuleAndSpec`" msgstr "" -#: whatsnew/3.12.rst:2082 +#: 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 " @@ -4177,14 +4192,14 @@ msgid "" "initialization." msgstr "" -#: whatsnew/3.12.rst:2087 +#: 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:2091 +#: 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 " @@ -4193,17 +4208,17 @@ msgid "" "general workaround. One of the following may work for you:" msgstr "" -#: whatsnew/3.12.rst:2098 +#: whatsnew/3.12.rst:2114 msgid "If you control the metaclass, avoid using ``tp_new`` in it:" msgstr "" -#: whatsnew/3.12.rst:2100 +#: 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:2102 +#: 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:" @@ -4211,20 +4226,20 @@ msgid "" "``PyType_From*`` functions." msgstr "" -#: whatsnew/3.12.rst:2107 +#: 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:2111 +#: 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:2114 +#: whatsnew/3.12.rst:2130 msgid "" ":c:var:`PyOS_InputHook` and :c:var:`PyOS_ReadlineFunctionPointer` are no " "longer called in :ref:`subinterpreters `. This is " @@ -4232,14 +4247,14 @@ msgid "" "callbacks have no way of recovering extension module state)." msgstr "" -#: whatsnew/3.12.rst:2119 +#: 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:2123 +#: 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, " @@ -4250,15 +4265,15 @@ msgid "" "a single machine word:" msgstr "" -#: whatsnew/3.12.rst:2131 +#: whatsnew/3.12.rst:2147 msgid ":c:func:`PyUnstable_Long_IsCompact`" msgstr "" -#: whatsnew/3.12.rst:2132 +#: whatsnew/3.12.rst:2148 msgid ":c:func:`PyUnstable_Long_CompactValue`" msgstr "" -#: whatsnew/3.12.rst:2134 +#: 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 " @@ -4267,7 +4282,7 @@ msgid "" "create a new GitHub issue and CC ``@ericsnowcurrently``." msgstr "" -#: whatsnew/3.12.rst:2144 +#: 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 " @@ -4276,215 +4291,215 @@ msgid "" "PEP by Ken Jin.)" msgstr "" -#: whatsnew/3.12.rst:2149 +#: whatsnew/3.12.rst:2165 msgid "Deprecate global configuration variable:" msgstr "" -#: whatsnew/3.12.rst:2151 +#: whatsnew/3.12.rst:2167 msgid ":c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug`" msgstr "" -#: whatsnew/3.12.rst:2152 +#: whatsnew/3.12.rst:2168 msgid ":c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose`" msgstr "" -#: whatsnew/3.12.rst:2153 +#: whatsnew/3.12.rst:2169 msgid ":c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet`" msgstr "" -#: whatsnew/3.12.rst:2154 +#: whatsnew/3.12.rst:2170 msgid ":c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive`" msgstr "" -#: whatsnew/3.12.rst:2155 +#: whatsnew/3.12.rst:2171 msgid ":c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect`" msgstr "" -#: whatsnew/3.12.rst:2156 +#: whatsnew/3.12.rst:2172 msgid ":c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level`" msgstr "" -#: whatsnew/3.12.rst:2157 +#: whatsnew/3.12.rst:2173 msgid ":c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import`" msgstr "" -#: whatsnew/3.12.rst:2158 +#: whatsnew/3.12.rst:2174 msgid ":c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning`" msgstr "" -#: whatsnew/3.12.rst:2159 +#: whatsnew/3.12.rst:2175 msgid ":c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings`" msgstr "" -#: whatsnew/3.12.rst:2160 +#: whatsnew/3.12.rst:2176 msgid "" ":c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment`" msgstr "" -#: whatsnew/3.12.rst:2161 +#: whatsnew/3.12.rst:2177 msgid "" ":c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode`" msgstr "" -#: whatsnew/3.12.rst:2162 +#: whatsnew/3.12.rst:2178 msgid "" ":c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory`" msgstr "" -#: whatsnew/3.12.rst:2163 +#: whatsnew/3.12.rst:2179 msgid "" ":c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio`" msgstr "" -#: whatsnew/3.12.rst:2164 +#: 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:2166 +#: whatsnew/3.12.rst:2182 msgid ":c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated`" msgstr "" -#: whatsnew/3.12.rst:2167 +#: whatsnew/3.12.rst:2183 msgid "" ":c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig." "legacy_windows_fs_encoding`" msgstr "" -#: whatsnew/3.12.rst:2168 +#: whatsnew/3.12.rst:2184 msgid "" ":c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig." "legacy_windows_stdio`" msgstr "" -#: whatsnew/3.12.rst:2169 +#: whatsnew/3.12.rst:2185 msgid "" ":c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig." "filesystem_encoding`" msgstr "" -#: whatsnew/3.12.rst:2170 +#: whatsnew/3.12.rst:2186 msgid "" ":c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig." "filesystem_encoding`" msgstr "" -#: whatsnew/3.12.rst:2171 +#: whatsnew/3.12.rst:2187 msgid "" ":c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig." "filesystem_errors`" msgstr "" -#: whatsnew/3.12.rst:2172 +#: 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:2174 +#: 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:2178 +#: 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:2181 +#: 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:2184 +#: 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:2187 +#: whatsnew/3.12.rst:2203 msgid "" ":c:struct:`PyMemberDef`, :c:func:`PyMember_GetOne` and :c:func:" "`PyMember_SetOne`" msgstr "" -#: whatsnew/3.12.rst:2189 +#: 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:2191 +#: 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:2194 +#: whatsnew/3.12.rst:2210 msgid "Several items are not exposed from :file:`Python.h`:" msgstr "" -#: whatsnew/3.12.rst:2196 +#: whatsnew/3.12.rst:2212 msgid ":c:macro:`T_OBJECT` (use :c:macro:`Py_T_OBJECT_EX`)" msgstr "" -#: whatsnew/3.12.rst:2197 +#: whatsnew/3.12.rst:2213 msgid ":c:macro:`T_NONE` (previously undocumented, and pretty quirky)" msgstr "" -#: whatsnew/3.12.rst:2198 +#: whatsnew/3.12.rst:2214 msgid "The macro ``WRITE_RESTRICTED`` which does nothing." msgstr "" -#: whatsnew/3.12.rst:2199 +#: whatsnew/3.12.rst:2215 msgid "" "The macros ``RESTRICTED`` and ``READ_RESTRICTED``, equivalents of :c:macro:" "`Py_AUDIT_READ`." msgstr "" -#: whatsnew/3.12.rst:2201 +#: 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:2204 +#: 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:2209 +#: 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:2212 +#: 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:2217 +#: 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:2220 +#: 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:2223 +#: 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 :" @@ -4649,67 +4664,67 @@ 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." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:9 +#: deprecations/c-api-pending-removal-in-3.15.rst:8 msgid "" ":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: Use :c:" "type:`wchar_t` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:11 +#: deprecations/c-api-pending-removal-in-3.15.rst:10 msgid "Python initialization functions:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:13 +#: deprecations/c-api-pending-removal-in-3.15.rst:12 msgid "" ":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" "warnings.filters` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:15 +#: deprecations/c-api-pending-removal-in-3.15.rst:14 msgid "" ":c:func:`Py_GetExecPrefix`: Get :data:`sys.base_exec_prefix` and :data:`sys." "exec_prefix` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:17 +#: deprecations/c-api-pending-removal-in-3.15.rst:16 msgid ":c:func:`Py_GetPath`: Get :data:`sys.path` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:19 +#: deprecations/c-api-pending-removal-in-3.15.rst:18 msgid "" ":c:func:`Py_GetPrefix`: Get :data:`sys.base_prefix` and :data:`sys.prefix` " "instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:21 +#: deprecations/c-api-pending-removal-in-3.15.rst:20 msgid ":c:func:`Py_GetProgramFullPath`: Get :data:`sys.executable` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:23 +#: deprecations/c-api-pending-removal-in-3.15.rst:22 msgid ":c:func:`Py_GetProgramName`: Get :data:`sys.executable` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:25 +#: deprecations/c-api-pending-removal-in-3.15.rst:24 msgid "" ":c:func:`Py_GetPythonHome`: Get :c:member:`PyConfig.home` or the :envvar:" "`PYTHONHOME` environment variable instead." 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 " @@ -4828,54 +4843,54 @@ msgstr "" msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." msgstr "" -#: whatsnew/3.12.rst:2239 +#: 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:2244 +#: whatsnew/3.12.rst:2262 msgid "Legacy Unicode APIs have been removed. See :pep:`623` for detail." msgstr "" -#: whatsnew/3.12.rst:2246 +#: whatsnew/3.12.rst:2264 msgid ":c:macro:`!PyUnicode_WCHAR_KIND`" msgstr "" -#: whatsnew/3.12.rst:2247 +#: whatsnew/3.12.rst:2265 msgid ":c:func:`!PyUnicode_AS_UNICODE`" msgstr "" -#: whatsnew/3.12.rst:2248 +#: whatsnew/3.12.rst:2266 msgid ":c:func:`!PyUnicode_AsUnicode`" msgstr "" -#: whatsnew/3.12.rst:2249 +#: whatsnew/3.12.rst:2267 msgid ":c:func:`!PyUnicode_AsUnicodeAndSize`" msgstr "" -#: whatsnew/3.12.rst:2250 +#: whatsnew/3.12.rst:2268 msgid ":c:func:`!PyUnicode_AS_DATA`" msgstr "" -#: whatsnew/3.12.rst:2251 +#: whatsnew/3.12.rst:2269 msgid ":c:func:`!PyUnicode_FromUnicode`" msgstr "" -#: whatsnew/3.12.rst:2252 +#: whatsnew/3.12.rst:2270 msgid ":c:func:`!PyUnicode_GET_SIZE`" msgstr "" -#: whatsnew/3.12.rst:2253 +#: whatsnew/3.12.rst:2271 msgid ":c:func:`!PyUnicode_GetSize`" msgstr "" -#: whatsnew/3.12.rst:2254 +#: whatsnew/3.12.rst:2272 msgid ":c:func:`!PyUnicode_GET_DATA_SIZE`" msgstr "" -#: whatsnew/3.12.rst:2256 +#: 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 fddb47c5..4f2e592c 100644 --- a/whatsnew/3.13.po +++ b/whatsnew/3.13.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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" @@ -338,7 +339,7 @@ msgid "" "years of security fixes." msgstr "" -#: whatsnew/3.13.rst:2037 +#: whatsnew/3.13.rst:2053 msgid "New Features" msgstr "" @@ -584,19 +585,20 @@ msgstr "" #: whatsnew/3.13.rst:392 msgid "" "``yes``: Enable the JIT. To disable the JIT at runtime, pass the environment " -"variable ``PYTHON_JIT=0``." +"variable :envvar:`PYTHON_JIT=0 `." msgstr "" #: whatsnew/3.13.rst:394 msgid "" "``yes-off``: Build the JIT but disable it by default. To enable the JIT at " -"runtime, pass the environment variable ``PYTHON_JIT=1``." +"runtime, pass the environment variable :envvar:`PYTHON_JIT=1 `." msgstr "" #: whatsnew/3.13.rst:396 msgid "" "``interpreter``: Enable the Tier 2 interpreter but disable the JIT. The " -"interpreter can be disabled by running with ``PYTHON_JIT=0``." +"interpreter can be disabled by running with :envvar:`PYTHON_JIT=0 " +"`." msgstr "" #: whatsnew/3.13.rst:399 @@ -1109,37 +1111,56 @@ msgid "" "(Contributed by Arthur Tacca and Jason Zhang in :gh:`115957`.)" msgstr "" -#: whatsnew/3.13.rst:744 +#: whatsnew/3.13.rst:742 +msgid "" +"The function and methods named ``create_task`` have received a new " +"``**kwargs`` argument that is passed through to the task constructor. This " +"change was accidentally added in 3.13.3, and broke the API contract for " +"custom task factories. Several third-party task factories implemented " +"workarounds for this. In 3.13.4 and later releases the old factory contract " +"is honored once again (until 3.14). To keep the workarounds working, the " +"extra ``**kwargs`` argument still allows passing additional keyword " +"arguments to :class:`~asyncio.Task` and to custom task factories." +msgstr "" + +#: whatsnew/3.13.rst:753 +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`.)" +msgstr "" + +#: whatsnew/3.13.rst:760 msgid "base64" msgstr "" -#: whatsnew/3.13.rst:746 +#: whatsnew/3.13.rst:762 msgid "" "Add :func:`~base64.z85encode` and :func:`~base64.z85decode` functions for " "encoding :class:`bytes` as `Z85 data`_ and decoding Z85-encoded data to :" "class:`!bytes`. (Contributed by Matan Perelman in :gh:`75299`.)" msgstr "" -#: whatsnew/3.13.rst:755 +#: whatsnew/3.13.rst:771 msgid "compileall" msgstr "" -#: whatsnew/3.13.rst:765 whatsnew/3.13.rst:1024 +#: whatsnew/3.13.rst:781 whatsnew/3.13.rst:1040 msgid "" "The default number of worker threads and processes is now selected using :" "func:`os.process_cpu_count` instead of :func:`os.cpu_count`. (Contributed by " "Victor Stinner in :gh:`109649`.)" msgstr "" -#: whatsnew/3.13.rst:763 +#: whatsnew/3.13.rst:779 msgid "concurrent.futures" msgstr "" -#: whatsnew/3.13.rst:1673 +#: whatsnew/3.13.rst:1687 msgid "configparser" msgstr "" -#: whatsnew/3.13.rst:773 +#: whatsnew/3.13.rst:789 msgid "" ":class:`~configparser.ConfigParser` now has support for unnamed sections, " "which allows for top-level key-value pairs. This can be enabled with the new " @@ -1147,11 +1168,11 @@ msgid "" "gh:`66449`.)" msgstr "" -#: whatsnew/3.13.rst:780 +#: whatsnew/3.13.rst:796 msgid "copy" msgstr "" -#: whatsnew/3.13.rst:782 +#: whatsnew/3.13.rst:798 msgid "" "The new :func:`~copy.replace` function and the :meth:`replace protocol " "` make creating modified copies of objects much simpler. " @@ -1160,43 +1181,43 @@ msgid "" "protocol:" msgstr "" -#: whatsnew/3.13.rst:788 +#: whatsnew/3.13.rst:804 msgid ":func:`collections.namedtuple`" msgstr "" -#: whatsnew/3.13.rst:789 +#: whatsnew/3.13.rst:805 msgid ":class:`dataclasses.dataclass`" msgstr "" -#: whatsnew/3.13.rst:790 +#: whatsnew/3.13.rst:806 msgid "" ":class:`datetime.datetime`, :class:`datetime.date`, :class:`datetime.time`" msgstr "" -#: whatsnew/3.13.rst:791 +#: whatsnew/3.13.rst:807 msgid ":class:`inspect.Signature`, :class:`inspect.Parameter`" msgstr "" -#: whatsnew/3.13.rst:792 +#: whatsnew/3.13.rst:808 msgid ":class:`types.SimpleNamespace`" msgstr "" -#: whatsnew/3.13.rst:793 +#: whatsnew/3.13.rst:809 msgid ":ref:`code objects `" msgstr "" -#: whatsnew/3.13.rst:795 +#: whatsnew/3.13.rst:811 msgid "" "Any user-defined class can also support :func:`copy.replace` by defining " "the :meth:`~object.__replace__` method. (Contributed by Serhiy Storchaka in :" "gh:`108751`.)" msgstr "" -#: whatsnew/3.13.rst:801 +#: whatsnew/3.13.rst:817 msgid "ctypes" msgstr "" -#: whatsnew/3.13.rst:803 +#: whatsnew/3.13.rst:819 msgid "" "As a consequence of necessary internal refactoring, initialization of " "internal metaclasses now happens in ``__init__`` rather than in ``__new__``. " @@ -1204,25 +1225,25 @@ msgid "" "custom initialization. Generally:" msgstr "" -#: whatsnew/3.13.rst:809 +#: whatsnew/3.13.rst:825 msgid "" "Custom logic that was done in ``__new__`` after calling ``super().__new__`` " "should be moved to ``__init__``." msgstr "" -#: whatsnew/3.13.rst:811 +#: whatsnew/3.13.rst:827 msgid "" "To create a class, call the metaclass, not only the metaclass's ``__new__`` " "method." msgstr "" -#: whatsnew/3.13.rst:814 +#: whatsnew/3.13.rst:830 msgid "" "See :gh:`124520` for discussion and links to changes in some affected " "projects." msgstr "" -#: whatsnew/3.13.rst:817 +#: whatsnew/3.13.rst:833 msgid "" ":class:`ctypes.Structure` objects have a new :attr:`~ctypes.Structure." "_align_` attribute which allows the alignment of the structure being packed " @@ -1230,29 +1251,29 @@ msgid "" "in :gh:`112433`)" msgstr "" -#: whatsnew/3.13.rst:823 +#: whatsnew/3.13.rst:839 msgid "dbm" msgstr "" -#: whatsnew/3.13.rst:825 +#: whatsnew/3.13.rst:841 msgid "" "Add :mod:`dbm.sqlite3`, a new module which implements an SQLite backend, and " "make it the default :mod:`!dbm` backend. (Contributed by Raymond Hettinger " "and Erlend E. Aasland in :gh:`100414`.)" msgstr "" -#: whatsnew/3.13.rst:829 +#: whatsnew/3.13.rst:845 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:835 +#: whatsnew/3.13.rst:851 msgid "dis" msgstr "" -#: whatsnew/3.13.rst:837 +#: whatsnew/3.13.rst:853 msgid "" "Change the output of :mod:`dis` module functions to show logical labels for " "jump targets and exception handlers, rather than offsets. The offsets can be " @@ -1260,7 +1281,7 @@ msgid "" "the *show_offsets* argument. (Contributed by Irit Katriel in :gh:`112137`.)" msgstr "" -#: whatsnew/3.13.rst:844 +#: whatsnew/3.13.rst:860 msgid "" ":meth:`~dis.get_instructions` no longer represents cache entries as separate " "instructions. Instead, it returns them as part of the :class:`~dis." @@ -1269,11 +1290,11 @@ msgid "" "(Contributed by Irit Katriel in :gh:`112962`.)" msgstr "" -#: whatsnew/3.13.rst:856 +#: whatsnew/3.13.rst:872 msgid "doctest" msgstr "" -#: whatsnew/3.13.rst:858 +#: whatsnew/3.13.rst:874 msgid "" ":mod:`doctest` output is now colored by default. This can be controlled via " "the new :envvar:`PYTHON_COLORS` environment variable as well as the " @@ -1282,18 +1303,18 @@ msgid "" "`117225`.)" msgstr "" -#: whatsnew/3.13.rst:865 +#: whatsnew/3.13.rst:881 msgid "" "The :meth:`.DocTestRunner.run` method now counts the number of skipped " "tests. Add the :attr:`.DocTestRunner.skips` and :attr:`.TestResults.skipped` " "attributes. (Contributed by Victor Stinner in :gh:`108794`.)" msgstr "" -#: whatsnew/3.13.rst:871 +#: whatsnew/3.13.rst:887 msgid "email" msgstr "" -#: whatsnew/3.13.rst:873 +#: whatsnew/3.13.rst:889 msgid "" "Headers with embedded newlines are now quoted on output. The :mod:`~email." "generator` will now refuse to serialize (write) headers that are improperly " @@ -1303,7 +1324,7 @@ msgid "" "Bloemsaat and Petr Viktorin in :gh:`121650`.)" msgstr "" -#: whatsnew/3.13.rst:881 +#: whatsnew/3.13.rst:897 msgid "" ":func:`~email.utils.getaddresses` and :func:`~email.utils.parseaddr` now " "return ``('', '')`` pairs in more situations where invalid email addresses " @@ -1315,21 +1336,21 @@ msgid "" "Stinner for :gh:`102988` to improve the :cve:`2023-27043` fix.)" msgstr "" -#: whatsnew/3.13.rst:893 +#: whatsnew/3.13.rst:909 msgid "enum" msgstr "" -#: whatsnew/3.13.rst:895 +#: whatsnew/3.13.rst:911 msgid "" ":class:`~enum.EnumDict` has been made public to better support subclassing :" "class:`~enum.EnumType`." msgstr "" -#: whatsnew/3.13.rst:900 +#: whatsnew/3.13.rst:916 msgid "fractions" msgstr "" -#: whatsnew/3.13.rst:902 +#: whatsnew/3.13.rst:918 msgid "" ":class:`~fractions.Fraction` objects now support the standard :ref:`format " "specification mini-language ` rules for fill, alignment, sign " @@ -1337,22 +1358,22 @@ msgid "" "`111320`.)" msgstr "" -#: whatsnew/3.13.rst:909 +#: whatsnew/3.13.rst:925 msgid "glob" msgstr "" -#: whatsnew/3.13.rst:911 +#: whatsnew/3.13.rst:927 msgid "" "Add :func:`~glob.translate`, a function to convert a path specification with " "shell-style wildcards to a regular expression. (Contributed by Barney Gale " "in :gh:`72904`.)" msgstr "" -#: whatsnew/3.13.rst:917 +#: whatsnew/3.13.rst:933 msgid "importlib" msgstr "" -#: whatsnew/3.13.rst:919 +#: whatsnew/3.13.rst:935 msgid "" "The following functions in :mod:`importlib.resources` now allow accessing a " "directory (or tree) of resources, using multiple positional arguments (the " @@ -1360,37 +1381,37 @@ msgid "" "keyword-only):" msgstr "" -#: whatsnew/3.13.rst:924 +#: whatsnew/3.13.rst:940 msgid ":func:`~importlib.resources.is_resource`" msgstr "" -#: whatsnew/3.13.rst:925 +#: whatsnew/3.13.rst:941 msgid ":func:`~importlib.resources.open_binary`" msgstr "" -#: whatsnew/3.13.rst:926 +#: whatsnew/3.13.rst:942 msgid ":func:`~importlib.resources.open_text`" msgstr "" -#: whatsnew/3.13.rst:927 +#: whatsnew/3.13.rst:943 msgid ":func:`~importlib.resources.path`" msgstr "" -#: whatsnew/3.13.rst:928 +#: whatsnew/3.13.rst:944 msgid ":func:`~importlib.resources.read_binary`" msgstr "" -#: whatsnew/3.13.rst:929 +#: whatsnew/3.13.rst:945 msgid ":func:`~importlib.resources.read_text`" msgstr "" -#: whatsnew/3.13.rst:931 +#: whatsnew/3.13.rst:947 msgid "" "These functions are no longer deprecated and are not scheduled for removal. " "(Contributed by Petr Viktorin in :gh:`116608`.)" msgstr "" -#: whatsnew/3.13.rst:934 +#: whatsnew/3.13.rst:950 msgid "" ":func:`~importlib.resources.contents` remains deprecated in favor of the " "fully-featured :class:`~importlib.resources.abc.Traversable` API. However, " @@ -1398,11 +1419,11 @@ msgid "" "`116608`.)" msgstr "" -#: whatsnew/3.13.rst:941 +#: whatsnew/3.13.rst:957 msgid "io" msgstr "" -#: whatsnew/3.13.rst:943 +#: whatsnew/3.13.rst:959 msgid "" "The :class:`~io.IOBase` finalizer now logs any errors raised by the :meth:" "`~io.IOBase.close` method with :data:`sys.unraisablehook`. Previously, " @@ -1411,17 +1432,17 @@ msgid "" "build>`. (Contributed by Victor Stinner in :gh:`62948`.)" msgstr "" -#: whatsnew/3.13.rst:952 +#: whatsnew/3.13.rst:968 msgid "ipaddress" msgstr "" -#: whatsnew/3.13.rst:954 +#: whatsnew/3.13.rst:970 msgid "" "Add the :attr:`.IPv4Address.ipv6_mapped` property, which returns the IPv4-" "mapped IPv6 address. (Contributed by Charles Machalow in :gh:`109466`.)" msgstr "" -#: whatsnew/3.13.rst:958 +#: whatsnew/3.13.rst:974 msgid "" "Fix ``is_global`` and ``is_private`` behavior in :class:`~ipaddress." "IPv4Address`, :class:`~ipaddress.IPv6Address`, :class:`~ipaddress." @@ -1429,22 +1450,22 @@ msgid "" "Stasiak in :gh:`113171`.)" msgstr "" -#: whatsnew/3.13.rst:965 +#: whatsnew/3.13.rst:981 msgid "itertools" msgstr "" -#: whatsnew/3.13.rst:967 +#: whatsnew/3.13.rst:983 msgid "" ":func:`~itertools.batched` has a new *strict* parameter, which raises a :exc:" "`ValueError` if the final batch is shorter than the specified batch size. " "(Contributed by Raymond Hettinger in :gh:`113202`.)" msgstr "" -#: whatsnew/3.13.rst:974 +#: whatsnew/3.13.rst:990 msgid "marshal" msgstr "" -#: whatsnew/3.13.rst:976 +#: whatsnew/3.13.rst:992 msgid "" "Add the *allow_code* parameter in module functions. Passing " "``allow_code=False`` prevents serialization and de-serialization of code " @@ -1452,11 +1473,11 @@ msgid "" "Serhiy Storchaka in :gh:`113626`.)" msgstr "" -#: whatsnew/3.13.rst:983 +#: whatsnew/3.13.rst:999 msgid "math" msgstr "" -#: whatsnew/3.13.rst:985 +#: whatsnew/3.13.rst:1001 msgid "" "The new function :func:`~math.fma` performs fused multiply-add operations. " "This computes ``x * y + z`` with only a single round, and so avoids any " @@ -1466,11 +1487,11 @@ msgid "" "Stinner in :gh:`73468`.)" msgstr "" -#: whatsnew/3.13.rst:995 +#: whatsnew/3.13.rst:1011 msgid "mimetypes" msgstr "" -#: whatsnew/3.13.rst:997 +#: whatsnew/3.13.rst:1013 msgid "" "Add the :func:`~mimetypes.guess_file_type` function to guess a MIME type " "from a filesystem path. Using paths with :func:`~mimetypes.guess_type` is " @@ -1478,18 +1499,18 @@ msgid "" "`66543`.)" msgstr "" -#: whatsnew/3.13.rst:1004 +#: whatsnew/3.13.rst:1020 msgid "mmap" msgstr "" -#: whatsnew/3.13.rst:1006 +#: whatsnew/3.13.rst:1022 msgid "" ":class:`~mmap.mmap` is now protected from crashing on Windows when the " "mapped memory is inaccessible due to file system errors or access " "violations. (Contributed by Jannis Weigend in :gh:`118209`.)" msgstr "" -#: whatsnew/3.13.rst:1010 +#: whatsnew/3.13.rst:1026 msgid "" ":class:`~mmap.mmap` has a new :meth:`~mmap.mmap.seekable` method that can be " "used when a seekable file-like object is required. The :meth:`~mmap.mmap." @@ -1497,7 +1518,7 @@ msgid "" "Na and Sylvie Liberman in :gh:`111835`.)" msgstr "" -#: whatsnew/3.13.rst:1015 +#: whatsnew/3.13.rst:1031 msgid "" "The new UNIX-only *trackfd* parameter for :class:`~mmap.mmap` controls file " "descriptor duplication; if false, the file descriptor specified by *fileno* " @@ -1505,22 +1526,22 @@ msgid "" "gh:`78502`.)" msgstr "" -#: whatsnew/3.13.rst:1022 +#: whatsnew/3.13.rst:1038 msgid "multiprocessing" msgstr "" -#: whatsnew/3.13.rst:1030 +#: whatsnew/3.13.rst:1046 msgid "os" msgstr "" -#: whatsnew/3.13.rst:1032 +#: whatsnew/3.13.rst:1048 msgid "" "Add :func:`~os.process_cpu_count` function to get the number of logical CPU " "cores usable by the calling thread of the current process. (Contributed by " "Victor Stinner in :gh:`109649`.)" msgstr "" -#: whatsnew/3.13.rst:1036 +#: whatsnew/3.13.rst:1052 msgid "" ":func:`~os.cpu_count` and :func:`~os.process_cpu_count` can be overridden " "through the new environment variable :envvar:`PYTHON_CPU_COUNT` or the new " @@ -1530,7 +1551,7 @@ msgid "" "Na in :gh:`109595`.)" msgstr "" -#: whatsnew/3.13.rst:1044 +#: whatsnew/3.13.rst:1060 msgid "" "Add a :ref:`low level interface ` to Linux's :manpage:`timer " "file descriptors ` via :func:`~os.timerfd_create`, :func:" @@ -1541,7 +1562,7 @@ msgid "" "in :gh:`108277`.)" msgstr "" -#: whatsnew/3.13.rst:1053 +#: whatsnew/3.13.rst:1069 msgid "" ":func:`~os.lchmod` and the *follow_symlinks* argument of :func:`~os.chmod` " "are both now available on Windows. Note that the default value of " @@ -1549,14 +1570,14 @@ msgid "" "by Serhiy Storchaka in :gh:`59616`.)" msgstr "" -#: whatsnew/3.13.rst:1059 +#: whatsnew/3.13.rst:1075 msgid "" ":func:`~os.fchmod` and support for file descriptors in :func:`~os.chmod` are " "both now available on Windows. (Contributed by Serhiy Storchaka in :gh:" "`113191`.)" msgstr "" -#: whatsnew/3.13.rst:1063 +#: whatsnew/3.13.rst:1079 msgid "" "On Windows, :func:`~os.mkdir` and :func:`~os.makedirs` now support passing a " "*mode* value of ``0o700`` to apply access control to the new directory. This " @@ -1565,14 +1586,14 @@ msgid "" "Steve Dower in :gh:`118486`.)" msgstr "" -#: whatsnew/3.13.rst:1070 +#: whatsnew/3.13.rst:1086 msgid "" ":func:`~os.posix_spawn` now accepts ``None`` for the *env* argument, which " "makes the newly spawned process use the current process environment. " "(Contributed by Jakub Kulik in :gh:`113119`.)" msgstr "" -#: whatsnew/3.13.rst:1074 +#: whatsnew/3.13.rst:1090 msgid "" ":func:`~os.posix_spawn` can now use the :const:`~os.POSIX_SPAWN_CLOSEFROM` " "attribute in the *file_actions* parameter on platforms that support :c:func:" @@ -1580,76 +1601,76 @@ msgid "" "gh:`113117`.)" msgstr "" -#: whatsnew/3.13.rst:1081 +#: whatsnew/3.13.rst:2839 msgid "os.path" msgstr "" -#: whatsnew/3.13.rst:1083 +#: whatsnew/3.13.rst:1099 msgid "" "Add :func:`~os.path.isreserved` to check if a path is reserved on the " "current system. This function is only available on Windows. (Contributed by " "Barney Gale in :gh:`88569`.)" msgstr "" -#: whatsnew/3.13.rst:1088 +#: whatsnew/3.13.rst:1104 msgid "" "On Windows, :func:`~os.path.isabs` no longer considers paths starting with " "exactly one slash (``\\`` or ``/``) to be absolute. (Contributed by Barney " "Gale and Jon Foster in :gh:`44626`.)" msgstr "" -#: whatsnew/3.13.rst:1092 +#: whatsnew/3.13.rst:1108 msgid "" ":func:`~os.path.realpath` now resolves MS-DOS style file names even if the " "file is not accessible. (Contributed by Moonsik Park in :gh:`82367`.)" msgstr "" -#: whatsnew/3.13.rst:1729 +#: whatsnew/3.13.rst:1743 msgid "pathlib" msgstr "" -#: whatsnew/3.13.rst:1100 +#: whatsnew/3.13.rst:1116 msgid "" "Add :exc:`~pathlib.UnsupportedOperation`, which is raised instead of :exc:" "`NotImplementedError` when a path operation isn't supported. (Contributed by " "Barney Gale in :gh:`89812`.)" msgstr "" -#: whatsnew/3.13.rst:1104 +#: whatsnew/3.13.rst:1120 msgid "" "Add a new constructor for creating :class:`~pathlib.Path` objects from " "'file' URIs (``file:///``), :meth:`.Path.from_uri`. (Contributed by Barney " "Gale in :gh:`107465`.)" msgstr "" -#: whatsnew/3.13.rst:1108 +#: whatsnew/3.13.rst:1124 msgid "" "Add :meth:`.PurePath.full_match` for matching paths with shell-style " "wildcards, including the recursive wildcard \"``**``\". (Contributed by " "Barney Gale in :gh:`73435`.)" msgstr "" -#: whatsnew/3.13.rst:1112 +#: whatsnew/3.13.rst:1128 msgid "" "Add the :attr:`.PurePath.parser` class attribute to store the implementation " "of :mod:`os.path` used for low-level path parsing and joining. This will be " "either :mod:`!posixpath` or :mod:`!ntpath`." msgstr "" -#: whatsnew/3.13.rst:1117 +#: whatsnew/3.13.rst:1133 msgid "" "Add *recurse_symlinks* keyword-only argument to :meth:`.Path.glob` and :meth:" "`~pathlib.Path.rglob`. (Contributed by Barney Gale in :gh:`77609`.)" msgstr "" -#: whatsnew/3.13.rst:1121 +#: whatsnew/3.13.rst:1137 msgid "" ":meth:`.Path.glob` and :meth:`~pathlib.Path.rglob` now return files and " "directories when given a pattern that ends with \"``**``\". Previously, only " "directories were returned. (Contributed by Barney Gale in :gh:`70303`.)" msgstr "" -#: whatsnew/3.13.rst:1126 +#: whatsnew/3.13.rst:1142 msgid "" "Add the *follow_symlinks* keyword-only argument to :meth:`Path.is_file " "`, :meth:`Path.is_dir `, :meth:`." @@ -1657,11 +1678,11 @@ msgid "" "`105793` and Kamil Turek in :gh:`107962`.)" msgstr "" -#: whatsnew/3.13.rst:1134 +#: whatsnew/3.13.rst:1150 msgid "pdb" msgstr "" -#: whatsnew/3.13.rst:1136 +#: whatsnew/3.13.rst:1152 msgid "" ":func:`breakpoint` and :func:`~pdb.set_trace` now enter the debugger " "immediately rather than on the next line of code to be executed. This change " @@ -1670,20 +1691,20 @@ msgid "" "Gao in :gh:`118579`.)" msgstr "" -#: whatsnew/3.13.rst:1142 +#: whatsnew/3.13.rst:1158 msgid "" "``sys.path[0]`` is no longer replaced by the directory of the script being " "debugged when :attr:`sys.flags.safe_path` is set. (Contributed by Tian Gao " "and Christian Walther in :gh:`111762`.)" msgstr "" -#: whatsnew/3.13.rst:1146 +#: whatsnew/3.13.rst:1162 msgid "" ":mod:`zipapp` is now supported as a debugging target. (Contributed by Tian " "Gao in :gh:`118501`.)" msgstr "" -#: whatsnew/3.13.rst:1149 +#: whatsnew/3.13.rst:1165 msgid "" "Add ability to move between chained exceptions during post-mortem debugging " "in :func:`~pdb.pm` using the new :pdbcmd:`exceptions [exc_number] " @@ -1691,101 +1712,101 @@ msgid "" "`106676`.)" msgstr "" -#: whatsnew/3.13.rst:1154 +#: whatsnew/3.13.rst:1170 msgid "" "Expressions and statements whose prefix is a pdb command are now correctly " "identified and executed. (Contributed by Tian Gao in :gh:`108464`.)" msgstr "" -#: whatsnew/3.13.rst:1160 +#: whatsnew/3.13.rst:1176 msgid "queue" msgstr "" -#: whatsnew/3.13.rst:1162 +#: whatsnew/3.13.rst:1178 msgid "" "Add :meth:`Queue.shutdown ` and :exc:`~queue.ShutDown` " "to manage queue termination. (Contributed by Laurie Opperman and Yves Duprat " "in :gh:`104750`.)" msgstr "" -#: whatsnew/3.13.rst:1168 +#: whatsnew/3.13.rst:1184 msgid "random" msgstr "" -#: whatsnew/3.13.rst:1170 +#: whatsnew/3.13.rst:1186 msgid "" "Add a :ref:`command-line interface `. (Contributed by Hugo van " "Kemenade in :gh:`118131`.)" msgstr "" -#: whatsnew/3.13.rst:1737 +#: whatsnew/3.13.rst:1751 msgid "re" msgstr "" -#: whatsnew/3.13.rst:1177 +#: whatsnew/3.13.rst:1193 msgid "" "Rename :exc:`!re.error` to :exc:`~re.PatternError` for improved clarity. :" "exc:`!re.error` is kept for backward compatibility." msgstr "" -#: whatsnew/3.13.rst:1182 +#: whatsnew/3.13.rst:1198 msgid "shutil" msgstr "" -#: whatsnew/3.13.rst:1184 +#: whatsnew/3.13.rst:1200 msgid "" "Support the *dir_fd* and *follow_symlinks* keyword arguments in :func:" "`~shutil.chown`. (Contributed by Berker Peksag and Tahia K in :gh:`62308`)" msgstr "" -#: whatsnew/3.13.rst:1190 +#: whatsnew/3.13.rst:1206 msgid "site" msgstr "" -#: whatsnew/3.13.rst:1192 +#: whatsnew/3.13.rst:1208 msgid "" ":file:`.pth` files are now decoded using UTF-8 first, and then with the :" "term:`locale encoding` if UTF-8 decoding fails. (Contributed by Inada Naoki " "in :gh:`117802`.)" msgstr "" -#: whatsnew/3.13.rst:1198 +#: whatsnew/3.13.rst:1214 msgid "sqlite3" msgstr "" -#: whatsnew/3.13.rst:1200 +#: whatsnew/3.13.rst:1216 msgid "" "A :exc:`ResourceWarning` is now emitted if a :class:`~sqlite3.Connection` " "object is not :meth:`closed ` explicitly. " "(Contributed by Erlend E. Aasland in :gh:`105539`.)" msgstr "" -#: whatsnew/3.13.rst:1204 +#: whatsnew/3.13.rst:1220 msgid "" "Add the *filter* keyword-only parameter to :meth:`.Connection.iterdump` for " "filtering database objects to dump. (Contributed by Mariusz Felisiak in :gh:" "`91602`.)" msgstr "" -#: whatsnew/3.13.rst:1210 +#: whatsnew/3.13.rst:1226 msgid "ssl" msgstr "" -#: whatsnew/3.13.rst:1212 +#: whatsnew/3.13.rst:1228 msgid "" "The :func:`~ssl.create_default_context` API now includes :data:`~ssl." "VERIFY_X509_PARTIAL_CHAIN` and :data:`~ssl.VERIFY_X509_STRICT` in its " "default flags." msgstr "" -#: whatsnew/3.13.rst:1218 +#: whatsnew/3.13.rst:1234 msgid "" ":data:`~ssl.VERIFY_X509_STRICT` may reject pre-:rfc:`5280` or malformed " "certificates that the underlying OpenSSL implementation might otherwise " "accept. Whilst disabling this is not recommended, you can do so using:" msgstr "" -#: whatsnew/3.13.rst:1223 +#: whatsnew/3.13.rst:1239 msgid "" "import ssl\n" "\n" @@ -1793,15 +1814,15 @@ msgid "" "ctx.verify_flags &= ~ssl.VERIFY_X509_STRICT" msgstr "" -#: whatsnew/3.13.rst:1230 +#: whatsnew/3.13.rst:1246 msgid "(Contributed by William Woodruff in :gh:`112389`.)" msgstr "" -#: whatsnew/3.13.rst:1234 +#: whatsnew/3.13.rst:1250 msgid "statistics" msgstr "" -#: whatsnew/3.13.rst:1236 +#: whatsnew/3.13.rst:1252 msgid "" "Add :func:`~statistics.kde` for kernel density estimation. This makes it " "possible to estimate a continuous probability density function from a fixed " @@ -1809,24 +1830,24 @@ msgid "" "`115863`.)" msgstr "" -#: whatsnew/3.13.rst:1241 +#: whatsnew/3.13.rst:1257 msgid "" "Add :func:`~statistics.kde_random` for sampling from an estimated " "probability density function created by :func:`~statistics.kde`. " "(Contributed by Raymond Hettinger in :gh:`115863`.)" msgstr "" -#: whatsnew/3.13.rst:1249 +#: whatsnew/3.13.rst:1265 msgid "subprocess" msgstr "" -#: whatsnew/3.13.rst:1251 +#: whatsnew/3.13.rst:1267 msgid "" "The :mod:`subprocess` module now uses the :func:`~os.posix_spawn` function " "in more situations." msgstr "" -#: whatsnew/3.13.rst:1254 +#: whatsnew/3.13.rst:1270 msgid "" "Notably, when *close_fds* is ``True`` (the default), :func:`~os.posix_spawn` " "will be used when the C library provides :c:func:`!" @@ -1835,7 +1856,7 @@ msgid "" "existing Linux :c:func:`!vfork` based code." msgstr "" -#: whatsnew/3.13.rst:1261 +#: whatsnew/3.13.rst:1277 msgid "" "A private control knob :attr:`!subprocess._USE_POSIX_SPAWN` can be set to " "``False`` if you need to force :mod:`subprocess` to never use :func:`~os." @@ -1845,22 +1866,22 @@ msgid "" "`113117`.)" msgstr "" -#: whatsnew/3.13.rst:2811 +#: whatsnew/3.13.rst:2829 msgid "sys" msgstr "" -#: whatsnew/3.13.rst:1273 +#: whatsnew/3.13.rst:1289 msgid "" "Add the :func:`~sys._is_interned` function to test if a string was interned. " "This function is not guaranteed to exist in all implementations of Python. " "(Contributed by Serhiy Storchaka in :gh:`78573`.)" msgstr "" -#: whatsnew/3.13.rst:1279 +#: whatsnew/3.13.rst:1295 msgid "tempfile" msgstr "" -#: whatsnew/3.13.rst:1281 +#: whatsnew/3.13.rst:1297 msgid "" "On Windows, the default mode ``0o700`` used by :func:`tempfile.mkdtemp` now " "limits access to the new directory due to changes to :func:`os.mkdir`. This " @@ -1868,11 +1889,11 @@ msgid "" "`118486`.)" msgstr "" -#: whatsnew/3.13.rst:1288 +#: whatsnew/3.13.rst:1304 msgid "time" msgstr "" -#: whatsnew/3.13.rst:1290 +#: whatsnew/3.13.rst:1306 msgid "" "On Windows, :func:`~time.monotonic` now uses the " "``QueryPerformanceCounter()`` clock for a resolution of 1 microsecond, " @@ -1880,7 +1901,7 @@ msgid "" "milliseconds. (Contributed by Victor Stinner in :gh:`88494`.)" msgstr "" -#: whatsnew/3.13.rst:1296 +#: whatsnew/3.13.rst:1312 msgid "" "On Windows, :func:`~time.time` now uses the " "``GetSystemTimePreciseAsFileTime()`` clock for a resolution of 1 " @@ -1889,11 +1910,11 @@ msgid "" "`63207`.)" msgstr "" -#: whatsnew/3.13.rst:1304 +#: whatsnew/3.13.rst:1320 msgid "tkinter" msgstr "" -#: whatsnew/3.13.rst:1306 +#: whatsnew/3.13.rst:1322 msgid "" "Add :mod:`tkinter` widget methods: :meth:`!tk_busy_hold`, :meth:`!" "tk_busy_configure`, :meth:`!tk_busy_cget`, :meth:`!tk_busy_forget`, :meth:`!" @@ -1901,7 +1922,7 @@ msgid "" "klappnase and Serhiy Storchaka in :gh:`72684`.)" msgstr "" -#: whatsnew/3.13.rst:1312 +#: whatsnew/3.13.rst:1328 msgid "" "The :mod:`tkinter` widget method :meth:`!wm_attributes` now accepts the " "attribute name without the minus prefix to get window attributes, for " @@ -1910,14 +1931,14 @@ msgid "" "wm_attributes(alpha=0.5)``. (Contributed by Serhiy Storchaka in :gh:`43457`.)" msgstr "" -#: whatsnew/3.13.rst:1319 +#: whatsnew/3.13.rst:1335 msgid "" ":meth:`!wm_attributes` can now return attributes as a :class:`dict`, by " "using the new optional keyword-only parameter *return_python_dict*. " "(Contributed by Serhiy Storchaka in :gh:`43457`.)" msgstr "" -#: whatsnew/3.13.rst:1323 +#: whatsnew/3.13.rst:1339 msgid "" ":meth:`!Text.count` can now return a simple :class:`int` when the new " "optional keyword-only parameter *return_ints* is used. Otherwise, the single " @@ -1925,27 +1946,27 @@ msgid "" "in :gh:`97928`.)" msgstr "" -#: whatsnew/3.13.rst:1328 +#: whatsnew/3.13.rst:1344 msgid "" "Support the \"vsapi\" element type in the :meth:`~tkinter.ttk.Style." "element_create` method of :class:`tkinter.ttk.Style`. (Contributed by Serhiy " "Storchaka in :gh:`68166`.)" msgstr "" -#: whatsnew/3.13.rst:1333 +#: whatsnew/3.13.rst:1349 msgid "" "Add the :meth:`!after_info` method for Tkinter widgets. (Contributed by " "Cheryl Sabella in :gh:`77020`.)" msgstr "" -#: whatsnew/3.13.rst:1336 +#: whatsnew/3.13.rst:1352 msgid "" "Add a new :meth:`!copy_replace` method to :class:`!PhotoImage` to copy a " "region from one image to another, possibly with pixel zooming, subsampling, " "or both. (Contributed by Serhiy Storchaka in :gh:`118225`.)" msgstr "" -#: whatsnew/3.13.rst:1341 +#: whatsnew/3.13.rst:1357 msgid "" "Add *from_coords* parameter to the :class:`!PhotoImage` methods :meth:`!" "copy`, :meth:`!zoom` and :meth:`!subsample`. Add *zoom* and *subsample* " @@ -1953,7 +1974,7 @@ msgid "" "Serhiy Storchaka in :gh:`118225`.)" msgstr "" -#: whatsnew/3.13.rst:1347 +#: whatsnew/3.13.rst:1363 msgid "" "Add the :class:`!PhotoImage` methods :meth:`!read` to read an image from a " "file and :meth:`!data` to get the image data. Add *background* and " @@ -1961,11 +1982,11 @@ msgid "" "Storchaka in :gh:`118271`.)" msgstr "" -#: whatsnew/3.13.rst:1355 +#: whatsnew/3.13.rst:1371 msgid "traceback" msgstr "" -#: whatsnew/3.13.rst:1357 +#: whatsnew/3.13.rst:1373 msgid "" "Add the :attr:`~traceback.TracebackException.exc_type_str` attribute to :" "class:`~traceback.TracebackException`, which holds a string display of the " @@ -1975,7 +1996,7 @@ msgid "" "(Contributed by Irit Katriel in :gh:`112332`.)" msgstr "" -#: whatsnew/3.13.rst:1366 +#: whatsnew/3.13.rst:1382 msgid "" "Add a new *show_group* keyword-only parameter to :meth:`.TracebackException." "format_exception_only` to (recursively) format the nested exceptions of a :" @@ -1983,11 +2004,11 @@ msgid "" "`105292`.)" msgstr "" -#: whatsnew/3.13.rst:1373 +#: whatsnew/3.13.rst:1389 msgid "types" msgstr "" -#: whatsnew/3.13.rst:1375 +#: whatsnew/3.13.rst:1391 msgid "" ":class:`~types.SimpleNamespace` can now take a single positional argument to " "initialise the namespace's arguments. This argument must either be a mapping " @@ -1995,63 +2016,63 @@ msgid "" "`108191`.)" msgstr "" -#: whatsnew/3.13.rst:1762 +#: whatsnew/3.13.rst:1776 msgid "typing" msgstr "" -#: whatsnew/3.13.rst:1384 +#: whatsnew/3.13.rst:1400 msgid "" ":pep:`705`: Add :data:`~typing.ReadOnly`, a special typing construct to mark " "a :class:`~typing.TypedDict` item as read-only for type checkers." msgstr "" -#: whatsnew/3.13.rst:1387 +#: whatsnew/3.13.rst:1403 msgid "" ":pep:`742`: Add :data:`~typing.TypeIs`, a typing construct that can be used " "to instruct a type checker how to narrow a type." msgstr "" -#: whatsnew/3.13.rst:1390 +#: whatsnew/3.13.rst:1406 msgid "" "Add :data:`~typing.NoDefault`, a sentinel object used to represent the " "defaults of some parameters in the :mod:`typing` module. (Contributed by " "Jelle Zijlstra in :gh:`116126`.)" msgstr "" -#: whatsnew/3.13.rst:1394 +#: whatsnew/3.13.rst:1410 msgid "" "Add :func:`~typing.get_protocol_members` to return the set of members " "defining a :class:`typing.Protocol`. (Contributed by Jelle Zijlstra in :gh:" "`104873`.)" msgstr "" -#: whatsnew/3.13.rst:1398 +#: whatsnew/3.13.rst:1414 msgid "" "Add :func:`~typing.is_protocol` to check whether a class is a :class:" "`~typing.Protocol`. (Contributed by Jelle Zijlstra in :gh:`104873`.)" msgstr "" -#: whatsnew/3.13.rst:1402 +#: whatsnew/3.13.rst:1418 msgid "" ":data:`~typing.ClassVar` can now be nested in :data:`~typing.Final`, and " "vice versa. (Contributed by Mehdi Drissi in :gh:`89547`.)" msgstr "" -#: whatsnew/3.13.rst:1408 +#: whatsnew/3.13.rst:1424 msgid "unicodedata" msgstr "" -#: whatsnew/3.13.rst:1410 +#: whatsnew/3.13.rst:1426 msgid "" "Update the Unicode database to `version 15.1.0`__. (Contributed by James " "Gerity in :gh:`109559`.)" msgstr "" -#: whatsnew/3.13.rst:1417 +#: whatsnew/3.13.rst:1433 msgid "venv" msgstr "" -#: whatsnew/3.13.rst:1419 +#: whatsnew/3.13.rst:1435 msgid "" "Add support for creating source control management (SCM) ignore files in a " "virtual environment's directory. By default, Git is supported. This is " @@ -2061,11 +2082,11 @@ msgid "" "Cannon in :gh:`108125`.)" msgstr "" -#: whatsnew/3.13.rst:1430 +#: whatsnew/3.13.rst:1446 msgid "warnings" msgstr "" -#: whatsnew/3.13.rst:1432 +#: whatsnew/3.13.rst:1448 msgid "" ":pep:`702`: The new :func:`warnings.deprecated` decorator provides a way to " "communicate deprecations to a :term:`static type checker` and to warn on " @@ -2074,62 +2095,62 @@ msgid "" "(Contributed by Jelle Zijlstra in :gh:`104003`.)" msgstr "" -#: whatsnew/3.13.rst:1441 +#: whatsnew/3.13.rst:1457 msgid "xml" msgstr "" -#: whatsnew/3.13.rst:1443 +#: whatsnew/3.13.rst:1459 msgid "" "Allow controlling Expat >=2.6.0 reparse deferral (:cve:`2023-52425`) by " "adding five new methods:" msgstr "" -#: whatsnew/3.13.rst:1446 +#: whatsnew/3.13.rst:1462 msgid ":meth:`xml.etree.ElementTree.XMLParser.flush`" msgstr "" -#: whatsnew/3.13.rst:1447 +#: whatsnew/3.13.rst:1463 msgid ":meth:`xml.etree.ElementTree.XMLPullParser.flush`" msgstr "" -#: whatsnew/3.13.rst:1448 +#: whatsnew/3.13.rst:1464 msgid ":meth:`xml.parsers.expat.xmlparser.GetReparseDeferralEnabled`" msgstr "" -#: whatsnew/3.13.rst:1449 +#: whatsnew/3.13.rst:1465 msgid ":meth:`xml.parsers.expat.xmlparser.SetReparseDeferralEnabled`" msgstr "" -#: whatsnew/3.13.rst:1450 +#: whatsnew/3.13.rst:1466 msgid ":meth:`!xml.sax.expatreader.ExpatParser.flush`" msgstr "" -#: whatsnew/3.13.rst:1452 +#: whatsnew/3.13.rst:1468 msgid "(Contributed by Sebastian Pipping in :gh:`115623`.)" msgstr "" -#: whatsnew/3.13.rst:1454 +#: whatsnew/3.13.rst:1470 msgid "" "Add the :meth:`!close` method for the iterator returned by :func:`~xml.etree." "ElementTree.iterparse` for explicit cleanup. (Contributed by Serhiy " "Storchaka in :gh:`69893`.)" msgstr "" -#: whatsnew/3.13.rst:1460 +#: whatsnew/3.13.rst:1476 msgid "zipimport" msgstr "" -#: whatsnew/3.13.rst:1462 +#: whatsnew/3.13.rst:1478 msgid "" "Add support for ZIP64_ format files. Everybody loves huge data, right? " "(Contributed by Tim Hatch in :gh:`94146`.)" msgstr "" -#: whatsnew/3.13.rst:1470 +#: whatsnew/3.13.rst:1486 msgid "Optimizations" msgstr "" -#: whatsnew/3.13.rst:1472 +#: whatsnew/3.13.rst:1488 msgid "" "Several standard library modules have had their import times significantly " "improved. For example, the import time of the :mod:`typing` module has been " @@ -2140,13 +2161,13 @@ msgid "" "Turner, Daniel Hollas, and others in :gh:`109653`.)" msgstr "" -#: whatsnew/3.13.rst:1483 +#: whatsnew/3.13.rst:1499 msgid "" ":func:`textwrap.indent` is now around 30% faster than before for large " "input. (Contributed by Inada Naoki in :gh:`107369`.)" msgstr "" -#: whatsnew/3.13.rst:1486 +#: whatsnew/3.13.rst:1502 msgid "" "The :mod:`subprocess` module now uses the :func:`~os.posix_spawn` function " "in more situations, including when *close_fds* is ``True`` (the default) on " @@ -2156,15 +2177,15 @@ msgid "" "Kulik in :gh:`113117`.)" msgstr "" -#: whatsnew/3.13.rst:1496 +#: whatsnew/3.13.rst:1512 msgid "Removed Modules And APIs" msgstr "" -#: whatsnew/3.13.rst:1502 +#: whatsnew/3.13.rst:1518 msgid "PEP 594: Remove \"dead batteries\" from the standard library" msgstr "" -#: whatsnew/3.13.rst:1504 +#: whatsnew/3.13.rst:1520 msgid "" ":pep:`594` proposed removing 19 modules from the standard library, " "colloquially referred to as 'dead batteries' due to their historic, " @@ -2172,38 +2193,38 @@ msgid "" "in Python 3.11, and are now removed:" msgstr "" -#: whatsnew/3.13.rst:1510 +#: whatsnew/3.13.rst:1526 msgid ":mod:`!aifc`" msgstr "" -#: whatsnew/3.13.rst:1512 +#: whatsnew/3.13.rst:1528 msgid "" ":pypi:`standard-aifc`: Use the redistribution of ``aifc`` library from PyPI." msgstr "" -#: whatsnew/3.13.rst:1515 +#: whatsnew/3.13.rst:1531 msgid ":mod:`!audioop`" msgstr "" -#: whatsnew/3.13.rst:1517 +#: whatsnew/3.13.rst:1533 msgid ":pypi:`audioop-lts`: Use ``audioop-lts`` library from PyPI." msgstr "" -#: whatsnew/3.13.rst:1520 +#: whatsnew/3.13.rst:1536 msgid ":mod:`!chunk`" msgstr "" -#: whatsnew/3.13.rst:1522 +#: whatsnew/3.13.rst:1538 msgid "" ":pypi:`standard-chunk`: Use the redistribution of ``chunk`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1525 +#: whatsnew/3.13.rst:1541 msgid ":mod:`!cgi` and :mod:`!cgitb`" msgstr "" -#: whatsnew/3.13.rst:1527 +#: whatsnew/3.13.rst:1543 msgid "" ":class:`!cgi.FieldStorage` can typically be replaced with :func:`urllib." "parse.parse_qsl` for ``GET`` and ``HEAD`` requests, and the :mod:`email." @@ -2211,7 +2232,7 @@ msgid "" "requests." msgstr "" -#: whatsnew/3.13.rst:1532 +#: whatsnew/3.13.rst:1548 msgid "" ":func:`!cgi.parse` can be replaced by calling :func:`urllib.parse.parse_qs` " "directly on the desired query string, unless the input is ``multipart/form-" @@ -2219,14 +2240,14 @@ msgid "" "parse_multipart`." msgstr "" -#: whatsnew/3.13.rst:1537 +#: whatsnew/3.13.rst:1553 msgid "" ":func:`!cgi.parse_header` can be replaced with the functionality in the :mod:" "`email` package, which implements the same MIME RFCs. For example, with :" "class:`email.message.EmailMessage`:" msgstr "" -#: whatsnew/3.13.rst:1541 +#: whatsnew/3.13.rst:1557 msgid "" "from email.message import EmailMessage\n" "\n" @@ -2235,7 +2256,7 @@ msgid "" "main, params = msg.get_content_type(), msg['content-type'].params" msgstr "" -#: whatsnew/3.13.rst:1549 +#: whatsnew/3.13.rst:1565 msgid "" ":func:`!cgi.parse_multipart` can be replaced with the functionality in the :" "mod:`email` package, which implements the same MIME RFCs, or with the :pypi:" @@ -2243,54 +2264,48 @@ msgid "" "and :class:`email.message.Message` classes." msgstr "" -#: whatsnew/3.13.rst:1555 +#: whatsnew/3.13.rst:1571 msgid "" ":pypi:`standard-cgi`: and :pypi:`standard-cgitb`: Use the redistribution of " "``cgi`` and ``cgitb`` library from PyPI." msgstr "" -#: whatsnew/3.13.rst:1558 +#: whatsnew/3.13.rst:1574 msgid "" ":mod:`!crypt` and the private :mod:`!_crypt` extension. The :mod:`hashlib` " "module may be an appropriate replacement when simply hashing a value is " "required. Otherwise, various third-party libraries on PyPI are available:" msgstr "" -#: whatsnew/3.13.rst:1563 +#: whatsnew/3.13.rst:1579 msgid "" ":pypi:`bcrypt`: Modern password hashing for your software and your servers." msgstr "" -#: whatsnew/3.13.rst:1565 -msgid "" -":pypi:`passlib`: Comprehensive password hashing framework supporting over 30 " -"schemes." -msgstr "" - -#: whatsnew/3.13.rst:1567 +#: whatsnew/3.13.rst:1581 msgid ":pypi:`argon2-cffi`: The secure Argon2 password hashing algorithm." msgstr "" -#: whatsnew/3.13.rst:1569 +#: whatsnew/3.13.rst:1583 msgid "" ":pypi:`legacycrypt`: :mod:`ctypes` wrapper to the POSIX crypt library call " "and associated functionality." msgstr "" -#: whatsnew/3.13.rst:1572 +#: whatsnew/3.13.rst:1586 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:1576 +#: whatsnew/3.13.rst:1590 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:1579 +#: whatsnew/3.13.rst:1593 msgid "" ":mod:`!imghdr`: The :pypi:`filetype`, :pypi:`puremagic`, or :pypi:`python-" "magic` libraries should be used as replacements. For example, the :func:`!" @@ -2298,138 +2313,138 @@ msgid "" "function for all file formats that were supported by :mod:`!imghdr`." msgstr "" -#: whatsnew/3.13.rst:1586 +#: whatsnew/3.13.rst:1600 msgid "" ":pypi:`standard-imghdr`: Use the redistribution of ``imghdr`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1589 +#: whatsnew/3.13.rst:1603 msgid ":mod:`!mailcap`: Use the :mod:`mimetypes` module instead." msgstr "" -#: whatsnew/3.13.rst:1592 +#: whatsnew/3.13.rst:1606 msgid "" ":pypi:`standard-mailcap`: Use the redistribution of ``mailcap`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1595 +#: whatsnew/3.13.rst:1609 msgid ":mod:`!msilib`" msgstr "" -#: whatsnew/3.13.rst:1596 +#: whatsnew/3.13.rst:1610 msgid ":mod:`!nis`" msgstr "" -#: whatsnew/3.13.rst:1597 +#: whatsnew/3.13.rst:1611 msgid ":mod:`!nntplib`: Use the :pypi:`pynntp` library from PyPI instead." msgstr "" -#: whatsnew/3.13.rst:1600 +#: whatsnew/3.13.rst:1614 msgid "" ":pypi:`standard-nntplib`: Use the redistribution of ``nntplib`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1603 +#: whatsnew/3.13.rst:1617 msgid "" ":mod:`!ossaudiodev`: For audio playback, use the :pypi:`pygame` library from " "PyPI instead." msgstr "" -#: whatsnew/3.13.rst:1605 +#: whatsnew/3.13.rst:1619 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:1610 +#: whatsnew/3.13.rst:1624 msgid "" ":pypi:`standard-pipes`: Use the redistribution of ``pipes`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1613 +#: whatsnew/3.13.rst:1627 msgid "" ":mod:`!sndhdr`: The :pypi:`filetype`, :pypi:`puremagic`, or :pypi:`python-" "magic` libraries should be used as replacements." msgstr "" -#: whatsnew/3.13.rst:1617 +#: whatsnew/3.13.rst:1631 msgid "" ":pypi:`standard-sndhdr`: Use the redistribution of ``sndhdr`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1620 +#: whatsnew/3.13.rst:1634 msgid ":mod:`!spwd`: Use the :pypi:`python-pam` library from PyPI instead." msgstr "" -#: whatsnew/3.13.rst:1622 +#: whatsnew/3.13.rst:1636 msgid ":mod:`!sunau`" msgstr "" -#: whatsnew/3.13.rst:1624 +#: whatsnew/3.13.rst:1638 msgid "" ":pypi:`standard-sunau`: Use the redistribution of ``sunau`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1627 +#: whatsnew/3.13.rst:1641 msgid "" ":mod:`!telnetlib`, Use the :pypi:`telnetlib3` or :pypi:`Exscript` libraries " "from PyPI instead." msgstr "" -#: whatsnew/3.13.rst:1630 +#: whatsnew/3.13.rst:1644 msgid "" ":pypi:`standard-telnetlib`: Use the redistribution of ``telnetlib`` library " "from PyPI." msgstr "" -#: whatsnew/3.13.rst:1633 +#: whatsnew/3.13.rst:1647 msgid "" ":mod:`!uu`: Use the :mod:`base64` module instead, as a modern alternative." msgstr "" -#: whatsnew/3.13.rst:1636 +#: whatsnew/3.13.rst:1650 msgid "" ":pypi:`standard-uu`: Use the redistribution of ``uu`` library from PyPI." msgstr "" -#: whatsnew/3.13.rst:1639 +#: whatsnew/3.13.rst:1653 msgid ":mod:`!xdrlib`" msgstr "" -#: whatsnew/3.13.rst:1641 +#: whatsnew/3.13.rst:1655 msgid "" ":pypi:`standard-xdrlib`: Use the redistribution of ``xdrlib`` library from " "PyPI." msgstr "" -#: whatsnew/3.13.rst:1644 +#: whatsnew/3.13.rst:1658 msgid "" "(Contributed by Victor Stinner and Zachary Ware in :gh:`104773` and :gh:" "`104780`.)" msgstr "" -#: whatsnew/3.13.rst:1648 +#: whatsnew/3.13.rst:1662 msgid "2to3" msgstr "" -#: whatsnew/3.13.rst:1650 +#: whatsnew/3.13.rst:1664 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:1656 +#: whatsnew/3.13.rst:1670 msgid "builtins" msgstr "" -#: whatsnew/3.13.rst:1658 +#: whatsnew/3.13.rst:1672 msgid "" "Remove support for chained :class:`classmethod` descriptors (introduced in :" "gh:`63272`). These can no longer be used to wrap other descriptors, such as :" @@ -2439,47 +2454,47 @@ msgid "" "(Contributed by Raymond Hettinger in :gh:`89519`.)" msgstr "" -#: whatsnew/3.13.rst:1667 +#: whatsnew/3.13.rst:1681 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:1675 +#: whatsnew/3.13.rst:1689 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:1682 +#: whatsnew/3.13.rst:1696 msgid "importlib.metadata" msgstr "" -#: whatsnew/3.13.rst:1684 +#: whatsnew/3.13.rst:1698 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:1690 +#: whatsnew/3.13.rst:1704 msgid "locale" msgstr "" -#: whatsnew/3.13.rst:1692 +#: whatsnew/3.13.rst:1706 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:1698 +#: whatsnew/3.13.rst:1712 msgid "opcode" msgstr "" -#: whatsnew/3.13.rst:1700 +#: whatsnew/3.13.rst:1714 msgid "" "Move :attr:`!opcode.ENABLE_SPECIALIZATION` to :attr:`!_opcode." "ENABLE_SPECIALIZATION`. This field was added in 3.12, it was never " @@ -2487,7 +2502,7 @@ msgid "" "Katriel in :gh:`105481`.)" msgstr "" -#: whatsnew/3.13.rst:1705 +#: whatsnew/3.13.rst:1719 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 " @@ -2495,11 +2510,11 @@ msgid "" "be used externally. (Contributed by Irit Katriel in :gh:`105481`.)" msgstr "" -#: whatsnew/3.13.rst:1713 +#: whatsnew/3.13.rst:1727 msgid "optparse" msgstr "" -#: whatsnew/3.13.rst:1715 +#: whatsnew/3.13.rst:1729 msgid "" "This module is no longer considered :term:`soft deprecated`. While :mod:" "`argparse` remains preferred for new projects that aren't using a third " @@ -2512,43 +2527,43 @@ msgid "" "(Contributed by Alyssa Coghlan and Serhiy Storchaka in :gh:`126180`.)" msgstr "" -#: whatsnew/3.13.rst:1731 +#: whatsnew/3.13.rst:1745 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:1739 +#: whatsnew/3.13.rst:1753 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:1745 +#: whatsnew/3.13.rst:1759 msgid "tkinter.tix" msgstr "" -#: whatsnew/3.13.rst:1747 +#: whatsnew/3.13.rst:1761 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:1753 +#: whatsnew/3.13.rst:1767 msgid "turtle" msgstr "" -#: whatsnew/3.13.rst:1755 +#: whatsnew/3.13.rst:1769 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:1764 +#: whatsnew/3.13.rst:1778 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 " @@ -2556,66 +2571,66 @@ msgid "" "`92871`.)" msgstr "" -#: whatsnew/3.13.rst:1770 +#: whatsnew/3.13.rst:1784 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:1776 +#: whatsnew/3.13.rst:1790 msgid "unittest" msgstr "" -#: whatsnew/3.13.rst:1778 +#: whatsnew/3.13.rst:1792 msgid "" "Remove the following :mod:`unittest` functions, deprecated in Python 3.11:" msgstr "" -#: whatsnew/3.13.rst:1780 +#: whatsnew/3.13.rst:1794 msgid ":func:`!unittest.findTestCases`" msgstr "" -#: whatsnew/3.13.rst:1781 +#: whatsnew/3.13.rst:1795 msgid ":func:`!unittest.makeSuite`" msgstr "" -#: whatsnew/3.13.rst:1782 +#: whatsnew/3.13.rst:1796 msgid ":func:`!unittest.getTestCaseNames`" msgstr "" -#: whatsnew/3.13.rst:1784 +#: whatsnew/3.13.rst:1798 msgid "Use :class:`~unittest.TestLoader` methods instead:" msgstr "" -#: whatsnew/3.13.rst:1786 +#: whatsnew/3.13.rst:1800 msgid ":meth:`~unittest.TestLoader.loadTestsFromModule`" msgstr "" -#: whatsnew/3.13.rst:1787 +#: whatsnew/3.13.rst:1801 msgid ":meth:`~unittest.TestLoader.loadTestsFromTestCase`" msgstr "" -#: whatsnew/3.13.rst:1788 +#: whatsnew/3.13.rst:1802 msgid ":meth:`~unittest.TestLoader.getTestCaseNames`" msgstr "" -#: whatsnew/3.13.rst:1790 +#: whatsnew/3.13.rst:1804 msgid "(Contributed by Hugo van Kemenade in :gh:`104835`.)" msgstr "" -#: whatsnew/3.13.rst:1792 +#: whatsnew/3.13.rst:1806 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:1798 +#: whatsnew/3.13.rst:1812 msgid "urllib" msgstr "" -#: whatsnew/3.13.rst:1800 +#: whatsnew/3.13.rst:1814 msgid "" "Remove the *cafile*, *capath*, and *cadefault* parameters of the :func:" "`urllib.request.urlopen` function, deprecated in Python 3.6. Use the " @@ -2626,33 +2641,33 @@ msgid "" "Victor Stinner in :gh:`105382`.)" msgstr "" -#: whatsnew/3.13.rst:1811 +#: whatsnew/3.13.rst:1825 msgid "webbrowser" msgstr "" -#: whatsnew/3.13.rst:1813 +#: whatsnew/3.13.rst:1827 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:1818 +#: whatsnew/3.13.rst:1832 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:1825 +#: whatsnew/3.13.rst:1839 msgid "New Deprecations" msgstr "" -#: whatsnew/3.13.rst:1827 +#: whatsnew/3.13.rst:1841 msgid ":ref:`User-defined functions `:" msgstr "" -#: whatsnew/3.13.rst:1829 +#: whatsnew/3.13.rst:1843 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 " @@ -2660,11 +2675,11 @@ msgid "" "coroutine. (Contributed by Irit Katriel in :gh:`81137`.)" msgstr "" -#: whatsnew/3.13.rst:1835 deprecations/pending-removal-in-3.16.rst:11 +#: whatsnew/3.13.rst:1849 deprecations/pending-removal-in-3.16.rst:11 msgid ":mod:`array`:" msgstr "" -#: whatsnew/3.13.rst:1837 +#: whatsnew/3.13.rst:1851 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 " @@ -2673,60 +2688,60 @@ msgid "" "`80480`.)" msgstr "" -#: whatsnew/3.13.rst:1844 deprecations/pending-removal-in-3.15.rst:16 +#: whatsnew/3.13.rst:1858 deprecations/pending-removal-in-3.15.rst:16 msgid ":mod:`ctypes`:" msgstr "" -#: whatsnew/3.13.rst:1846 +#: whatsnew/3.13.rst:1860 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:1850 +#: whatsnew/3.13.rst:1864 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:1854 +#: whatsnew/3.13.rst:1868 msgid ":mod:`decimal`:" msgstr "" -#: whatsnew/3.13.rst:1856 +#: whatsnew/3.13.rst:1870 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:1861 +#: whatsnew/3.13.rst:1875 msgid ":mod:`dis`:" msgstr "" -#: whatsnew/3.13.rst:1863 +#: whatsnew/3.13.rst:1877 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:1867 +#: whatsnew/3.13.rst:1881 msgid ":mod:`gettext`:" msgstr "" -#: whatsnew/3.13.rst:1869 +#: whatsnew/3.13.rst:1883 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:1874 +#: whatsnew/3.13.rst:1888 msgid ":mod:`glob`:" msgstr "" -#: whatsnew/3.13.rst:1876 +#: whatsnew/3.13.rst:1890 msgid "" "Deprecate the undocumented :func:`!glob0` and :func:`!glob1` functions. Use :" "func:`~glob.glob` and pass a :term:`path-like object` specifying the root " @@ -2734,11 +2749,11 @@ msgid "" "in :gh:`117337`.)" msgstr "" -#: whatsnew/3.13.rst:1881 deprecations/pending-removal-in-3.15.rst:21 +#: whatsnew/3.13.rst:1895 deprecations/pending-removal-in-3.15.rst:21 msgid ":mod:`http.server`:" msgstr "" -#: whatsnew/3.13.rst:1883 +#: whatsnew/3.13.rst:1897 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 " @@ -2747,29 +2762,29 @@ msgid "" "by Gregory P. Smith in :gh:`109096`.)" msgstr "" -#: whatsnew/3.13.rst:1890 +#: whatsnew/3.13.rst:1904 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:1895 +#: whatsnew/3.13.rst:1909 msgid ":mod:`mimetypes`:" msgstr "" -#: whatsnew/3.13.rst:1897 +#: whatsnew/3.13.rst:1911 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:1902 +#: whatsnew/3.13.rst:1916 msgid ":mod:`re`:" msgstr "" -#: whatsnew/3.13.rst:1904 +#: whatsnew/3.13.rst:1918 msgid "" "Deprecate passing the optional *maxsplit*, *count*, or *flags* arguments as " "positional arguments to the module-level :func:`~re.split`, :func:`~re.sub`, " @@ -2778,43 +2793,43 @@ msgid "" "by Serhiy Storchaka in :gh:`56166`.)" msgstr "" -#: whatsnew/3.13.rst:1911 deprecations/pending-removal-in-3.15.rst:46 +#: whatsnew/3.13.rst:1925 deprecations/pending-removal-in-3.15.rst:46 msgid ":mod:`pathlib`:" msgstr "" -#: whatsnew/3.13.rst:1913 +#: whatsnew/3.13.rst:1927 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:1918 deprecations/pending-removal-in-3.15.rst:52 +#: whatsnew/3.13.rst:1932 deprecations/pending-removal-in-3.15.rst:52 msgid ":mod:`platform`:" msgstr "" -#: whatsnew/3.13.rst:1920 +#: whatsnew/3.13.rst:1934 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:1926 +#: whatsnew/3.13.rst:1940 msgid ":mod:`pydoc`:" msgstr "" -#: whatsnew/3.13.rst:1928 +#: whatsnew/3.13.rst:1942 msgid "" "Deprecate the undocumented :func:`!ispackage` function. (Contributed by " "Zackery Spytz in :gh:`64020`.)" msgstr "" -#: whatsnew/3.13.rst:1931 deprecations/pending-removal-in-3.14.rst:91 +#: whatsnew/3.13.rst:1945 deprecations/pending-removal-in-3.14.rst:89 msgid ":mod:`sqlite3`:" msgstr "" -#: whatsnew/3.13.rst:1933 +#: whatsnew/3.13.rst:1947 msgid "" "Deprecate passing more than one positional argument to the :func:`~sqlite3." "connect` function and the :class:`~sqlite3.Connection` constructor. The " @@ -2822,7 +2837,7 @@ msgid "" "by Erlend E. Aasland in :gh:`107948`.)" msgstr "" -#: whatsnew/3.13.rst:1939 +#: whatsnew/3.13.rst:1953 msgid "" "Deprecate passing name, number of arguments, and the callable as keyword " "arguments for :meth:`.Connection.create_function` and :meth:`.Connection." @@ -2830,7 +2845,7 @@ msgid "" "3.15. (Contributed by Erlend E. Aasland in :gh:`108278`.)" msgstr "" -#: whatsnew/3.13.rst:1945 +#: whatsnew/3.13.rst:1959 msgid "" "Deprecate passing the callback callable by keyword for the :meth:`~sqlite3." "Connection.set_authorizer`, :meth:`~sqlite3.Connection." @@ -2840,43 +2855,44 @@ msgid "" "`108278`.)" msgstr "" -#: whatsnew/3.13.rst:1953 deprecations/pending-removal-in-3.16.rst:47 +#: whatsnew/3.13.rst:1967 deprecations/pending-removal-in-3.16.rst:47 msgid ":mod:`sys`:" msgstr "" -#: whatsnew/3.13.rst:1955 +#: whatsnew/3.13.rst:1969 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:1960 deprecations/pending-removal-in-3.16.rst:53 +#: whatsnew/3.13.rst:1974 deprecations/pending-removal-in-3.16.rst:53 msgid ":mod:`tarfile`:" msgstr "" -#: whatsnew/3.13.rst:1962 +#: whatsnew/3.13.rst:1976 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:1966 +#: whatsnew/3.13.rst:1980 msgid ":mod:`traceback`:" msgstr "" -#: whatsnew/3.13.rst:1968 +#: whatsnew/3.13.rst:1982 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:1972 deprecations/pending-removal-in-3.15.rst:80 +#: whatsnew/3.13.rst:1986 deprecations/pending-removal-in-3.15.rst:80 +#: deprecations/pending-removal-in-3.17.rst:26 msgid ":mod:`typing`:" msgstr "" -#: whatsnew/3.13.rst:1974 +#: whatsnew/3.13.rst:1988 msgid "" "Deprecate the undocumented keyword argument syntax for creating :class:" "`~typing.NamedTuple` classes (e.g. ``Point = NamedTuple(\"Point\", x=int, " @@ -2884,7 +2900,7 @@ msgid "" "functional syntax instead. (Contributed by Alex Waygood in :gh:`105566`.)" msgstr "" -#: whatsnew/3.13.rst:1981 +#: whatsnew/3.13.rst:1995 msgid "" "Deprecate omitting the *fields* parameter when creating a :class:`~typing." "NamedTuple` or :class:`typing.TypedDict` class, and deprecate passing " @@ -2896,15 +2912,15 @@ msgid "" "Alex Waygood in :gh:`105566` and :gh:`105570`.)" msgstr "" -#: whatsnew/3.13.rst:1991 +#: whatsnew/3.13.rst:2005 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:1997 +#: whatsnew/3.13.rst:2011 msgid "" "Deprecate :data:`typing.AnyStr`. In Python 3.16, it will be removed from " "``typing.__all__``, and a :exc:`DeprecationWarning` will be emitted at " @@ -2913,11 +2929,11 @@ msgid "" "(Contributed by Michael The in :gh:`107116`.)" msgstr "" -#: whatsnew/3.13.rst:2005 deprecations/pending-removal-in-3.15.rst:93 +#: whatsnew/3.13.rst:2019 deprecations/pending-removal-in-3.15.rst:100 msgid ":mod:`wave`:" msgstr "" -#: whatsnew/3.13.rst:2007 +#: whatsnew/3.13.rst:2021 msgid "" "Deprecate the :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, and :meth:" "`~wave.Wave_read.getmarkers` methods of the :class:`~wave.Wave_read` and :" @@ -3001,51 +3017,50 @@ 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`.)" +":mod:`builtins`: ``bool(NotImplemented)`` now emits a :exc:" +"`DeprecationWarning` and will raise a :exc:`TypeError` in Python 3.14. " +"(Contributed by Jelle Zijlstra in :gh:`118767`.)" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:47 +#: deprecations/pending-removal-in-3.14.rst:45 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:48 msgid ":mod:`importlib.abc` deprecated classes:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:52 +#: deprecations/pending-removal-in-3.14.rst:50 msgid ":class:`!importlib.abc.ResourceReader`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:53 +#: deprecations/pending-removal-in-3.14.rst:51 msgid ":class:`!importlib.abc.Traversable`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:54 +#: deprecations/pending-removal-in-3.14.rst:52 msgid ":class:`!importlib.abc.TraversableResources`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:56 +#: deprecations/pending-removal-in-3.14.rst:54 msgid "Use :mod:`importlib.resources.abc` classes instead:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:58 +#: deprecations/pending-removal-in-3.14.rst:56 msgid ":class:`importlib.resources.abc.Traversable`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:59 +#: deprecations/pending-removal-in-3.14.rst:57 msgid ":class:`importlib.resources.abc.TraversableResources`" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:61 +#: deprecations/pending-removal-in-3.14.rst:59 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:61 msgid "" ":mod:`itertools` had undocumented, inefficient, historically buggy, and " "inconsistent support for copy, deepcopy, and pickle operations. This will be " @@ -3053,7 +3068,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:67 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 " @@ -3064,49 +3079,43 @@ msgid "" "``'fork'``. See :ref:`multiprocessing-start-methods`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:77 +#: deprecations/pending-removal-in-3.14.rst:75 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:79 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:84 msgid ":mod:`pty`:" msgstr "" -#: deprecations/pending-removal-in-3.14.rst:88 +#: deprecations/pending-removal-in-3.14.rst:86 msgid "``master_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:89 +#: deprecations/pending-removal-in-3.14.rst:87 msgid "``slave_open()``: use :func:`pty.openpty`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:93 +#: deprecations/pending-removal-in-3.14.rst:91 msgid ":data:`~sqlite3.version` and :data:`~sqlite3.version_info`." msgstr "" -#: deprecations/pending-removal-in-3.14.rst:95 +#: deprecations/pending-removal-in-3.14.rst:93 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:97 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:" @@ -3159,7 +3168,7 @@ msgid "" msgstr "" #: deprecations/pending-removal-in-3.15.rst:32 -#: deprecations/pending-removal-in-future.rst:56 +#: deprecations/pending-removal-in-future.rst:55 msgid ":mod:`importlib`:" msgstr "" @@ -3237,18 +3246,28 @@ msgstr "" #: deprecations/pending-removal-in-3.15.rst:88 msgid "" +"When using the functional syntax of :class:`~typing.TypedDict`\\s, failing " +"to pass a value to the *fields* parameter (``TD = TypedDict(\"TD\")``) or " +"passing ``None`` (``TD = TypedDict(\"TD\", None)``) has been deprecated " +"since Python 3.13. Use ``class TD(TypedDict): pass`` or ``TD = " +"TypedDict(\"TD\", {})`` to create a TypedDict with zero field." +msgstr "" + +#: deprecations/pending-removal-in-3.15.rst:95 +msgid "" "The :func:`typing.no_type_check_decorator` decorator function has been " "deprecated since Python 3.13. After eight years in the :mod:`typing` module, " "it has yet to be supported by any major type checker." msgstr "" -#: deprecations/pending-removal-in-3.15.rst:95 +#: deprecations/pending-removal-in-3.15.rst:102 msgid "" "The :meth:`~wave.Wave_read.getmark`, :meth:`!setmark`, and :meth:`~wave." "Wave_read.getmarkers` methods of the :class:`~wave.Wave_read` and :class:" "`~wave.Wave_write` classes have been deprecated since Python 3.13." 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 "" @@ -3323,6 +3342,64 @@ msgid "" "deprecated since Python 3.13." msgstr "" +#: deprecations/pending-removal-in-3.17.rst:2 +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 " +"removal scheduled for Python 3.17. Users should use documented introspection " +"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 "" + #: deprecations/c-api-pending-removal-in-future.rst:2 #: deprecations/pending-removal-in-future.rst:2 msgid "Pending Removal in Future Versions" @@ -3341,17 +3418,13 @@ msgid "" msgstr "" #: deprecations/pending-removal-in-future.rst:12 -msgid "``bool(NotImplemented)``." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:13 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:16 +#: deprecations/pending-removal-in-future.rst:15 msgid "" "Currently Python accepts numeric literals immediately followed by keywords, " "for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " @@ -3363,32 +3436,32 @@ msgid "" "syntax error. (:gh:`87999`)" msgstr "" -#: deprecations/pending-removal-in-future.rst:24 +#: deprecations/pending-removal-in-future.rst:23 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:27 +#: deprecations/pending-removal-in-future.rst:26 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:30 +#: deprecations/pending-removal-in-future.rst:29 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:33 +#: deprecations/pending-removal-in-future.rst:32 msgid "Delegation of ``int()`` to ``__trunc__()`` method." msgstr "" -#: deprecations/pending-removal-in-future.rst:34 +#: deprecations/pending-removal-in-future.rst:33 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 " @@ -3396,81 +3469,81 @@ msgid "" "`109218`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:39 +#: deprecations/pending-removal-in-future.rst:38 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:44 +#: deprecations/pending-removal-in-future.rst:43 msgid "" ":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:47 +#: deprecations/pending-removal-in-future.rst:46 msgid ":mod:`datetime`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:49 +#: deprecations/pending-removal-in-future.rst:48 msgid "" ":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." "UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:51 +#: deprecations/pending-removal-in-future.rst:50 msgid "" ":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." "fromtimestamp(timestamp, tz=datetime.UTC)``." msgstr "" -#: deprecations/pending-removal-in-future.rst:54 +#: deprecations/pending-removal-in-future.rst:53 msgid ":mod:`gettext`: Plural value must be an integer." msgstr "" -#: deprecations/pending-removal-in-future.rst:58 +#: deprecations/pending-removal-in-future.rst:57 msgid "" ":func:`~importlib.util.cache_from_source` *debug_override* parameter is " "deprecated: use the *optimization* parameter instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:61 +#: deprecations/pending-removal-in-future.rst:60 msgid ":mod:`importlib.metadata`:" msgstr "" -#: deprecations/pending-removal-in-future.rst:63 +#: deprecations/pending-removal-in-future.rst:62 msgid "``EntryPoints`` tuple interface." msgstr "" -#: deprecations/pending-removal-in-future.rst:64 +#: deprecations/pending-removal-in-future.rst:63 msgid "Implicit ``None`` on return values." msgstr "" -#: deprecations/pending-removal-in-future.rst:66 +#: deprecations/pending-removal-in-future.rst:65 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:69 +#: deprecations/pending-removal-in-future.rst:68 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:72 +#: deprecations/pending-removal-in-future.rst:71 msgid "" ":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." msgstr "" -#: deprecations/pending-removal-in-future.rst:74 +#: deprecations/pending-removal-in-future.rst:73 msgid "" ":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " "deprecated, use an exception instance." msgstr "" -#: deprecations/pending-removal-in-future.rst:77 +#: deprecations/pending-removal-in-future.rst:76 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 " @@ -3479,179 +3552,179 @@ msgid "" "underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" -#: deprecations/pending-removal-in-future.rst:84 +#: deprecations/pending-removal-in-future.rst:83 msgid "" ":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." msgstr "" -#: deprecations/pending-removal-in-future.rst:86 +#: deprecations/pending-removal-in-future.rst:85 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:89 +#: deprecations/pending-removal-in-future.rst:88 msgid ":mod:`ssl` options and protocols:" msgstr "" -#: deprecations/pending-removal-in-future.rst:91 +#: deprecations/pending-removal-in-future.rst:90 msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." msgstr "" -#: deprecations/pending-removal-in-future.rst:92 +#: deprecations/pending-removal-in-future.rst:91 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:95 +#: deprecations/pending-removal-in-future.rst:94 msgid "``ssl.OP_NO_SSL*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:96 +#: deprecations/pending-removal-in-future.rst:95 msgid "``ssl.OP_NO_TLS*`` options" msgstr "" -#: deprecations/pending-removal-in-future.rst:97 +#: deprecations/pending-removal-in-future.rst:96 msgid "``ssl.PROTOCOL_SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:98 +#: deprecations/pending-removal-in-future.rst:97 msgid "``ssl.PROTOCOL_TLS``" msgstr "" -#: deprecations/pending-removal-in-future.rst:99 +#: deprecations/pending-removal-in-future.rst:98 msgid "``ssl.PROTOCOL_TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:100 +#: deprecations/pending-removal-in-future.rst:99 msgid "``ssl.PROTOCOL_TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:101 +#: deprecations/pending-removal-in-future.rst:100 msgid "``ssl.PROTOCOL_TLSv1_2``" msgstr "" -#: deprecations/pending-removal-in-future.rst:102 +#: deprecations/pending-removal-in-future.rst:101 msgid "``ssl.TLSVersion.SSLv3``" msgstr "" -#: deprecations/pending-removal-in-future.rst:103 +#: deprecations/pending-removal-in-future.rst:102 msgid "``ssl.TLSVersion.TLSv1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:104 +#: deprecations/pending-removal-in-future.rst:103 msgid "``ssl.TLSVersion.TLSv1_1``" msgstr "" -#: deprecations/pending-removal-in-future.rst:106 +#: deprecations/pending-removal-in-future.rst:105 msgid ":mod:`threading` methods:" msgstr "" -#: deprecations/pending-removal-in-future.rst:108 +#: deprecations/pending-removal-in-future.rst:107 msgid "" ":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." "notify_all`." msgstr "" -#: deprecations/pending-removal-in-future.rst:109 +#: deprecations/pending-removal-in-future.rst:108 msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." msgstr "" -#: deprecations/pending-removal-in-future.rst:110 +#: deprecations/pending-removal-in-future.rst:109 msgid "" ":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :" "attr:`threading.Thread.daemon` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:112 +#: deprecations/pending-removal-in-future.rst:111 msgid "" ":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :" "attr:`threading.Thread.name` attribute." msgstr "" -#: deprecations/pending-removal-in-future.rst:114 +#: deprecations/pending-removal-in-future.rst:113 msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." msgstr "" -#: deprecations/pending-removal-in-future.rst:115 +#: deprecations/pending-removal-in-future.rst:114 msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." msgstr "" -#: deprecations/pending-removal-in-future.rst:117 +#: deprecations/pending-removal-in-future.rst:116 msgid ":class:`typing.Text` (:gh:`92332`)." msgstr "" -#: deprecations/pending-removal-in-future.rst:119 +#: deprecations/pending-removal-in-future.rst:118 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:122 +#: deprecations/pending-removal-in-future.rst:121 msgid "" ":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " "instead" msgstr "" -#: deprecations/pending-removal-in-future.rst:124 +#: deprecations/pending-removal-in-future.rst:123 msgid "``splitattr()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:125 +#: deprecations/pending-removal-in-future.rst:124 msgid "``splithost()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:126 +#: deprecations/pending-removal-in-future.rst:125 msgid "``splitnport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:127 +#: deprecations/pending-removal-in-future.rst:126 msgid "``splitpasswd()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:128 +#: deprecations/pending-removal-in-future.rst:127 msgid "``splitport()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:129 +#: deprecations/pending-removal-in-future.rst:128 msgid "``splitquery()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:130 +#: deprecations/pending-removal-in-future.rst:129 msgid "``splittag()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:131 +#: deprecations/pending-removal-in-future.rst:130 msgid "``splittype()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:132 +#: deprecations/pending-removal-in-future.rst:131 msgid "``splituser()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:133 +#: deprecations/pending-removal-in-future.rst:132 msgid "``splitvalue()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:134 +#: deprecations/pending-removal-in-future.rst:133 msgid "``to_bytes()``" msgstr "" -#: deprecations/pending-removal-in-future.rst:136 +#: deprecations/pending-removal-in-future.rst:135 msgid "" ":mod:`urllib.request`: :class:`~urllib.request.URLopener` and :class:" "`~urllib.request.FancyURLopener` style of invoking requests is deprecated. " "Use newer :func:`~urllib.request.urlopen` functions and methods." msgstr "" -#: deprecations/pending-removal-in-future.rst:140 +#: deprecations/pending-removal-in-future.rst:139 msgid "" ":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " "writes." msgstr "" -#: deprecations/pending-removal-in-future.rst:143 +#: deprecations/pending-removal-in-future.rst:142 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 " @@ -3659,17 +3732,17 @@ msgid "" "instead." msgstr "" -#: deprecations/pending-removal-in-future.rst:148 +#: deprecations/pending-removal-in-future.rst:147 msgid "" ":meth:`zipimport.zipimporter.load_module` is deprecated: use :meth:" "`~zipimport.zipimporter.exec_module` instead." msgstr "" -#: whatsnew/3.13.rst:2024 +#: whatsnew/3.13.rst:2040 msgid "CPython Bytecode Changes" msgstr "" -#: whatsnew/3.13.rst:2026 +#: whatsnew/3.13.rst:2042 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 " @@ -3678,97 +3751,97 @@ msgid "" "`111354`.)" msgstr "" -#: whatsnew/3.13.rst:2034 +#: whatsnew/3.13.rst:2050 msgid "C API Changes" msgstr "" -#: whatsnew/3.13.rst:2039 +#: whatsnew/3.13.rst:2055 msgid "" "Add the :ref:`PyMonitoring C API ` for generating :pep:" "`669` monitoring events:" msgstr "" -#: whatsnew/3.13.rst:2042 +#: whatsnew/3.13.rst:2058 msgid ":c:type:`PyMonitoringState`" msgstr "" -#: whatsnew/3.13.rst:2043 +#: whatsnew/3.13.rst:2059 msgid ":c:func:`PyMonitoring_FirePyStartEvent`" msgstr "" -#: whatsnew/3.13.rst:2044 +#: whatsnew/3.13.rst:2060 msgid ":c:func:`PyMonitoring_FirePyResumeEvent`" msgstr "" -#: whatsnew/3.13.rst:2045 +#: whatsnew/3.13.rst:2061 msgid ":c:func:`PyMonitoring_FirePyReturnEvent`" msgstr "" -#: whatsnew/3.13.rst:2046 +#: whatsnew/3.13.rst:2062 msgid ":c:func:`PyMonitoring_FirePyYieldEvent`" msgstr "" -#: whatsnew/3.13.rst:2047 +#: whatsnew/3.13.rst:2063 msgid ":c:func:`PyMonitoring_FireCallEvent`" msgstr "" -#: whatsnew/3.13.rst:2048 +#: whatsnew/3.13.rst:2064 msgid ":c:func:`PyMonitoring_FireLineEvent`" msgstr "" -#: whatsnew/3.13.rst:2049 +#: whatsnew/3.13.rst:2065 msgid ":c:func:`PyMonitoring_FireJumpEvent`" msgstr "" -#: whatsnew/3.13.rst:2050 +#: whatsnew/3.13.rst:2066 msgid ":c:func:`PyMonitoring_FireBranchEvent`" msgstr "" -#: whatsnew/3.13.rst:2051 +#: whatsnew/3.13.rst:2067 msgid ":c:func:`PyMonitoring_FireCReturnEvent`" msgstr "" -#: whatsnew/3.13.rst:2052 +#: whatsnew/3.13.rst:2068 msgid ":c:func:`PyMonitoring_FirePyThrowEvent`" msgstr "" -#: whatsnew/3.13.rst:2053 +#: whatsnew/3.13.rst:2069 msgid ":c:func:`PyMonitoring_FireRaiseEvent`" msgstr "" -#: whatsnew/3.13.rst:2054 +#: whatsnew/3.13.rst:2070 msgid ":c:func:`PyMonitoring_FireCRaiseEvent`" msgstr "" -#: whatsnew/3.13.rst:2055 +#: whatsnew/3.13.rst:2071 msgid ":c:func:`PyMonitoring_FireReraiseEvent`" msgstr "" -#: whatsnew/3.13.rst:2056 +#: whatsnew/3.13.rst:2072 msgid ":c:func:`PyMonitoring_FireExceptionHandledEvent`" msgstr "" -#: whatsnew/3.13.rst:2057 +#: whatsnew/3.13.rst:2073 msgid ":c:func:`PyMonitoring_FirePyUnwindEvent`" msgstr "" -#: whatsnew/3.13.rst:2058 +#: whatsnew/3.13.rst:2074 msgid ":c:func:`PyMonitoring_FireStopIterationEvent`" msgstr "" -#: whatsnew/3.13.rst:2059 +#: whatsnew/3.13.rst:2075 msgid ":c:func:`PyMonitoring_EnterScope`" msgstr "" -#: whatsnew/3.13.rst:2060 +#: whatsnew/3.13.rst:2076 msgid ":c:func:`PyMonitoring_ExitScope`" msgstr "" -#: whatsnew/3.13.rst:2062 +#: whatsnew/3.13.rst:2078 msgid "(Contributed by Irit Katriel in :gh:`111997`)." msgstr "" -#: whatsnew/3.13.rst:2064 +#: whatsnew/3.13.rst:2080 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:" @@ -3776,52 +3849,52 @@ msgid "" "operation needs to block. (Contributed by Sam Gross in :gh:`108724`.)" msgstr "" -#: whatsnew/3.13.rst:2070 +#: whatsnew/3.13.rst:2086 msgid "" "Add the :ref:`PyTime C API ` to provide access to system clocks:" msgstr "" -#: whatsnew/3.13.rst:2072 +#: whatsnew/3.13.rst:2088 msgid ":c:type:`PyTime_t`." msgstr "" -#: whatsnew/3.13.rst:2073 +#: whatsnew/3.13.rst:2089 msgid ":c:var:`PyTime_MIN` and :c:var:`PyTime_MAX`." msgstr "" -#: whatsnew/3.13.rst:2074 +#: whatsnew/3.13.rst:2090 msgid ":c:func:`PyTime_AsSecondsDouble`." msgstr "" -#: whatsnew/3.13.rst:2075 +#: whatsnew/3.13.rst:2091 msgid ":c:func:`PyTime_Monotonic`." msgstr "" -#: whatsnew/3.13.rst:2076 +#: whatsnew/3.13.rst:2092 msgid ":c:func:`PyTime_MonotonicRaw`." msgstr "" -#: whatsnew/3.13.rst:2077 +#: whatsnew/3.13.rst:2093 msgid ":c:func:`PyTime_PerfCounter`." msgstr "" -#: whatsnew/3.13.rst:2078 +#: whatsnew/3.13.rst:2094 msgid ":c:func:`PyTime_PerfCounterRaw`." msgstr "" -#: whatsnew/3.13.rst:2079 +#: whatsnew/3.13.rst:2095 msgid ":c:func:`PyTime_Time`." msgstr "" -#: whatsnew/3.13.rst:2080 +#: whatsnew/3.13.rst:2096 msgid ":c:func:`PyTime_TimeRaw`." msgstr "" -#: whatsnew/3.13.rst:2082 +#: whatsnew/3.13.rst:2098 msgid "(Contributed by Victor Stinner and Petr Viktorin in :gh:`110850`.)" msgstr "" -#: whatsnew/3.13.rst:2084 +#: whatsnew/3.13.rst:2100 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*` " @@ -3829,7 +3902,7 @@ msgid "" "by Victor Stinner in :gh:`108314`.)" msgstr "" -#: whatsnew/3.13.rst:2090 +#: whatsnew/3.13.rst:2106 msgid "" "Add the :c:func:`PyDict_GetItemRef` and :c:func:`PyDict_GetItemStringRef` " "functions, which behave similarly to :c:func:`PyDict_GetItemWithError`, but " @@ -3839,7 +3912,7 @@ msgid "" "`106004`.)" msgstr "" -#: whatsnew/3.13.rst:2098 +#: whatsnew/3.13.rst:2114 msgid "" "Add the :c:func:`PyDict_SetDefaultRef` function, which behaves similarly to :" "c:func:`PyDict_SetDefault`, but returns a :term:`strong reference` instead " @@ -3848,7 +3921,7 @@ msgid "" "dictionary. (Contributed by Sam Gross in :gh:`112066`.)" msgstr "" -#: whatsnew/3.13.rst:2106 +#: whatsnew/3.13.rst:2122 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 " @@ -3857,7 +3930,7 @@ msgid "" "Victor Stinner in :gh:`111262`.)" msgstr "" -#: whatsnew/3.13.rst:2113 +#: whatsnew/3.13.rst:2129 msgid "" "Add the :c:func:`PyMapping_GetOptionalItem` and :c:func:" "`PyMapping_GetOptionalItemString` functions as alternatives to :c:func:" @@ -3868,7 +3941,7 @@ msgid "" "gh:`106307`.)" msgstr "" -#: whatsnew/3.13.rst:2123 +#: whatsnew/3.13.rst:2139 msgid "" "Add the :c:func:`PyObject_GetOptionalAttr` and :c:func:" "`PyObject_GetOptionalAttrString` functions as alternatives to :c:func:" @@ -3879,37 +3952,37 @@ msgid "" "Serhiy Storchaka in :gh:`106521`.)" msgstr "" -#: whatsnew/3.13.rst:2133 +#: whatsnew/3.13.rst:2149 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:2138 +#: whatsnew/3.13.rst:2154 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:2142 +#: whatsnew/3.13.rst:2158 msgid ":c:func:`PyEval_GetFrameBuiltins` replaces :c:func:`PyEval_GetBuiltins`" msgstr "" -#: whatsnew/3.13.rst:2143 +#: whatsnew/3.13.rst:2159 msgid ":c:func:`PyEval_GetFrameGlobals` replaces :c:func:`PyEval_GetGlobals`" msgstr "" -#: whatsnew/3.13.rst:2144 +#: whatsnew/3.13.rst:2160 msgid ":c:func:`PyEval_GetFrameLocals` replaces :c:func:`PyEval_GetLocals`" msgstr "" -#: whatsnew/3.13.rst:2146 +#: whatsnew/3.13.rst:2162 msgid "(Contributed by Mark Shannon and Tian Gao in :gh:`74929`.)" msgstr "" -#: whatsnew/3.13.rst:2148 +#: whatsnew/3.13.rst:2164 msgid "" "Add the :c:func:`Py_GetConstant` and :c:func:`Py_GetConstantBorrowed` " "functions to get :term:`strong ` or :term:`borrowed " @@ -3918,7 +3991,7 @@ msgid "" "constant zero. (Contributed by Victor Stinner in :gh:`115754`.)" msgstr "" -#: whatsnew/3.13.rst:2155 +#: whatsnew/3.13.rst:2171 msgid "" "Add the :c:func:`PyImport_AddModuleRef` function as a replacement for :c:" "func:`PyImport_AddModule` that returns a :term:`strong reference` instead of " @@ -3926,35 +3999,35 @@ msgid "" "`105922`.)" msgstr "" -#: whatsnew/3.13.rst:2160 +#: whatsnew/3.13.rst:2176 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:2165 +#: whatsnew/3.13.rst:2181 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:2170 +#: whatsnew/3.13.rst:2186 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:2174 +#: whatsnew/3.13.rst:2190 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:2179 +#: whatsnew/3.13.rst:2195 msgid "" "Add the :c:func:`PyLong_AsNativeBytes`, :c:func:`PyLong_FromNativeBytes`, " "and :c:func:`PyLong_FromUnsignedNativeBytes` functions to simplify " @@ -3962,27 +4035,27 @@ msgid "" "(Contributed by Steve Dower in :gh:`111140`.)" msgstr "" -#: whatsnew/3.13.rst:2185 +#: whatsnew/3.13.rst:2201 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:2190 +#: whatsnew/3.13.rst:2206 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:2194 +#: whatsnew/3.13.rst:2210 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:2197 +#: whatsnew/3.13.rst:2213 msgid "" "Add the :c:func:`PyObject_VisitManagedDict` and :c:func:" "`PyObject_ClearManagedDict` functions. which must be called by the traverse " @@ -3991,7 +4064,7 @@ msgid "" "with Python 3.11 and 3.12. (Contributed by Victor Stinner in :gh:`107073`.)" msgstr "" -#: whatsnew/3.13.rst:2205 +#: whatsnew/3.13.rst:2221 msgid "" "Add the :c:func:`PyRefTracer_SetTracer` and :c:func:`PyRefTracer_GetTracer` " "functions, which enable tracking object creation and destruction in the same " @@ -3999,14 +4072,14 @@ msgid "" "in :gh:`93502`.)" msgstr "" -#: whatsnew/3.13.rst:2211 +#: whatsnew/3.13.rst:2227 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:2216 +#: whatsnew/3.13.rst:2232 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 " @@ -4014,7 +4087,7 @@ msgid "" "result is ``NULL``. (Contributed by Victor Stinner in :gh:`108867`.)" msgstr "" -#: whatsnew/3.13.rst:2222 +#: whatsnew/3.13.rst:2238 msgid "" "Add the :c:func:`PyType_GetFullyQualifiedName` function to get the type's " "fully qualified name. The module name is prepended if :attr:`type." @@ -4022,14 +4095,14 @@ msgid "" "``'__main__'``. (Contributed by Victor Stinner in :gh:`111696`.)" msgstr "" -#: whatsnew/3.13.rst:2228 +#: whatsnew/3.13.rst:2244 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:2233 +#: whatsnew/3.13.rst:2249 msgid "" "Add the :c:func:`PyUnicode_EqualToUTF8AndSize` and :c:func:" "`PyUnicode_EqualToUTF8` functions to compare a Unicode object with a :c:expr:" @@ -4038,7 +4111,7 @@ msgid "" "Storchaka in :gh:`110289`.)" msgstr "" -#: whatsnew/3.13.rst:2240 +#: whatsnew/3.13.rst:2256 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 " @@ -4046,47 +4119,47 @@ msgid "" "`105927`.)" msgstr "" -#: whatsnew/3.13.rst:2246 +#: whatsnew/3.13.rst:2262 msgid "Add fixed variants of functions which silently ignore errors:" msgstr "" -#: whatsnew/3.13.rst:2248 +#: whatsnew/3.13.rst:2264 msgid "" ":c:func:`PyObject_HasAttrWithError` replaces :c:func:`PyObject_HasAttr`." msgstr "" -#: whatsnew/3.13.rst:2249 +#: whatsnew/3.13.rst:2265 msgid "" ":c:func:`PyObject_HasAttrStringWithError` replaces :c:func:" "`PyObject_HasAttrString`." msgstr "" -#: whatsnew/3.13.rst:2251 +#: whatsnew/3.13.rst:2267 msgid "" ":c:func:`PyMapping_HasKeyWithError` replaces :c:func:`PyMapping_HasKey`." msgstr "" -#: whatsnew/3.13.rst:2252 +#: whatsnew/3.13.rst:2268 msgid "" ":c:func:`PyMapping_HasKeyStringWithError` replaces :c:func:" "`PyMapping_HasKeyString`." msgstr "" -#: whatsnew/3.13.rst:2255 +#: whatsnew/3.13.rst:2271 msgid "" "The new functions return ``-1`` for errors and the standard ``1`` for true " "and ``0`` for false." msgstr "" -#: whatsnew/3.13.rst:2258 +#: whatsnew/3.13.rst:2274 msgid "(Contributed by Serhiy Storchaka in :gh:`108511`.)" msgstr "" -#: whatsnew/3.13.rst:2262 +#: whatsnew/3.13.rst:2278 msgid "Changed C APIs" msgstr "" -#: whatsnew/3.13.rst:2264 +#: whatsnew/3.13.rst:2280 msgid "" "The *keywords* parameter of :c:func:`PyArg_ParseTupleAndKeywords` and :c:" "func:`PyArg_VaParseTupleAndKeywords` now has type :c:expr:`char * const *` " @@ -4099,20 +4172,20 @@ msgid "" "`65210`.)" msgstr "" -#: whatsnew/3.13.rst:2276 +#: whatsnew/3.13.rst:2292 msgid "" ":c:func:`PyArg_ParseTupleAndKeywords` now supports non-ASCII keyword " "parameter names. (Contributed by Serhiy Storchaka in :gh:`110815`.)" msgstr "" -#: whatsnew/3.13.rst:2280 +#: whatsnew/3.13.rst:2296 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:2284 +#: whatsnew/3.13.rst:2300 msgid "" "The :c:func:`PyDict_GetItem`, :c:func:`PyDict_GetItemString`, :c:func:" "`PyMapping_HasKey`, :c:func:`PyMapping_HasKeyString`, :c:func:" @@ -4123,35 +4196,35 @@ msgid "" "documentation. (Contributed by Serhiy Storchaka in :gh:`106672`.)" msgstr "" -#: whatsnew/3.13.rst:2293 +#: whatsnew/3.13.rst:2309 msgid "" "Add support for the ``%T``, ``%#T``, ``%N`` and ``%#N`` formats to :c:func:" "`PyUnicode_FromFormat`:" msgstr "" -#: whatsnew/3.13.rst:2296 +#: whatsnew/3.13.rst:2312 msgid "``%T``: Get the fully qualified name of an object type" msgstr "" -#: whatsnew/3.13.rst:2297 +#: whatsnew/3.13.rst:2313 msgid "``%#T``: As above, but use a colon as the separator" msgstr "" -#: whatsnew/3.13.rst:2298 +#: whatsnew/3.13.rst:2314 msgid "``%N``: Get the fully qualified name of a type" msgstr "" -#: whatsnew/3.13.rst:2299 +#: whatsnew/3.13.rst:2315 msgid "``%#N``: As above, but use a colon as the separator" msgstr "" -#: whatsnew/3.13.rst:2301 +#: whatsnew/3.13.rst:2317 msgid "" "See :pep:`737` for more information. (Contributed by Victor Stinner in :gh:" "`111696`.)" msgstr "" -#: whatsnew/3.13.rst:2304 +#: whatsnew/3.13.rst:2320 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 " @@ -4160,7 +4233,7 @@ msgid "" "`104922`.)" msgstr "" -#: whatsnew/3.13.rst:2310 +#: whatsnew/3.13.rst:2326 msgid "" "If Python is built in :ref:`debug mode ` or :option:`with " "assertions <--with-assertions>`, :c:func:`PyTuple_SET_ITEM` and :c:func:" @@ -4168,60 +4241,60 @@ msgid "" "(Contributed by Victor Stinner in :gh:`106168`.)" msgstr "" -#: whatsnew/3.13.rst:2318 +#: whatsnew/3.13.rst:2334 msgid "Limited C API Changes" msgstr "" -#: whatsnew/3.13.rst:2320 +#: whatsnew/3.13.rst:2336 msgid "The following functions are now included in the Limited C API:" msgstr "" -#: whatsnew/3.13.rst:2322 +#: whatsnew/3.13.rst:2338 msgid ":c:func:`PyMem_RawMalloc`" msgstr "" -#: whatsnew/3.13.rst:2323 +#: whatsnew/3.13.rst:2339 msgid ":c:func:`PyMem_RawCalloc`" msgstr "" -#: whatsnew/3.13.rst:2324 +#: whatsnew/3.13.rst:2340 msgid ":c:func:`PyMem_RawRealloc`" msgstr "" -#: whatsnew/3.13.rst:2325 +#: whatsnew/3.13.rst:2341 msgid ":c:func:`PyMem_RawFree`" msgstr "" -#: whatsnew/3.13.rst:2326 +#: whatsnew/3.13.rst:2342 msgid ":c:func:`PySys_Audit`" msgstr "" -#: whatsnew/3.13.rst:2327 +#: whatsnew/3.13.rst:2343 msgid ":c:func:`PySys_AuditTuple`" msgstr "" -#: whatsnew/3.13.rst:2328 +#: whatsnew/3.13.rst:2344 msgid ":c:func:`PyType_GetModuleByDef`" msgstr "" -#: whatsnew/3.13.rst:2330 +#: whatsnew/3.13.rst:2346 msgid "" "(Contributed by Victor Stinner in :gh:`85283`, :gh:`85283`, and :gh:" "`116936`.)" msgstr "" -#: whatsnew/3.13.rst:2332 +#: whatsnew/3.13.rst:2348 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:2338 +#: whatsnew/3.13.rst:2354 msgid "Removed C APIs" msgstr "" -#: whatsnew/3.13.rst:2340 +#: whatsnew/3.13.rst:2356 msgid "" "Remove several functions, macros, variables, etc with names prefixed by " "``_Py`` or ``_PY`` (which are considered private). If your project is " @@ -4231,13 +4304,13 @@ msgid "" "Victor Stinner. (Contributed by Victor Stinner in :gh:`106320`.)" msgstr "" -#: whatsnew/3.13.rst:2348 +#: whatsnew/3.13.rst:2364 msgid "" "Remove old buffer protocols deprecated in Python 3.0. Use :ref:" "`bufferobjects` instead." msgstr "" -#: whatsnew/3.13.rst:2351 +#: whatsnew/3.13.rst:2367 msgid "" ":c:func:`!PyObject_CheckReadBuffer`: Use :c:func:`PyObject_CheckBuffer` to " "test whether the object supports the buffer protocol. Note that :c:func:" @@ -4246,13 +4319,13 @@ msgid "" "example of :c:func:`PyObject_GetBuffer`." msgstr "" -#: whatsnew/3.13.rst:2359 +#: whatsnew/3.13.rst:2375 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:2362 +#: whatsnew/3.13.rst:2378 msgid "" "Py_buffer view;\n" "if (PyObject_GetBuffer(obj, &view, PyBUF_SIMPLE) < 0) {\n" @@ -4263,13 +4336,13 @@ msgid "" "PyBuffer_Release(&view);" msgstr "" -#: whatsnew/3.13.rst:2372 +#: whatsnew/3.13.rst:2388 msgid "" ":c:func:`!PyObject_AsWriteBuffer`: Use :c:func:`PyObject_GetBuffer` and :c:" "func:`PyBuffer_Release` instead:" msgstr "" -#: whatsnew/3.13.rst:2375 +#: whatsnew/3.13.rst:2391 msgid "" "Py_buffer view;\n" "if (PyObject_GetBuffer(obj, &view, PyBUF_WRITABLE) < 0) {\n" @@ -4279,21 +4352,21 @@ msgid "" "PyBuffer_Release(&view);" msgstr "" -#: whatsnew/3.13.rst:2384 +#: whatsnew/3.13.rst:2400 msgid "(Contributed by Inada Naoki in :gh:`85275`.)" msgstr "" -#: whatsnew/3.13.rst:2386 +#: whatsnew/3.13.rst:2402 msgid "Remove various functions deprecated in Python 3.9:" msgstr "" -#: whatsnew/3.13.rst:2388 +#: whatsnew/3.13.rst:2404 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:2393 +#: whatsnew/3.13.rst:2409 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 " @@ -4304,106 +4377,106 @@ msgid "" "`PyTuple_New(0) `." msgstr "" -#: whatsnew/3.13.rst:2403 +#: whatsnew/3.13.rst:2419 msgid "" ":c:func:`!PyEval_CallFunction`: Use :c:func:`PyObject_CallFunction` instead." msgstr "" -#: whatsnew/3.13.rst:2405 +#: whatsnew/3.13.rst:2421 msgid "" ":c:func:`!PyEval_CallMethod`: Use :c:func:`PyObject_CallMethod` instead." msgstr "" -#: whatsnew/3.13.rst:2407 +#: whatsnew/3.13.rst:2423 msgid ":c:func:`!PyCFunction_Call`: Use :c:func:`PyObject_Call` instead." msgstr "" -#: whatsnew/3.13.rst:2410 +#: whatsnew/3.13.rst:2426 msgid "(Contributed by Victor Stinner in :gh:`105107`.)" msgstr "" -#: whatsnew/3.13.rst:2412 +#: whatsnew/3.13.rst:2428 msgid "" "Remove the following old functions to configure the Python initialization, " "deprecated in Python 3.11:" msgstr "" -#: whatsnew/3.13.rst:2415 +#: whatsnew/3.13.rst:2431 msgid "" ":c:func:`!PySys_AddWarnOptionUnicode`: Use :c:member:`PyConfig.warnoptions` " "instead." msgstr "" -#: whatsnew/3.13.rst:2417 +#: whatsnew/3.13.rst:2433 msgid "" ":c:func:`!PySys_AddWarnOption`: Use :c:member:`PyConfig.warnoptions` instead." msgstr "" -#: whatsnew/3.13.rst:2419 +#: whatsnew/3.13.rst:2435 msgid ":c:func:`!PySys_AddXOption`: Use :c:member:`PyConfig.xoptions` instead." msgstr "" -#: whatsnew/3.13.rst:2421 +#: whatsnew/3.13.rst:2437 msgid "" ":c:func:`!PySys_HasWarnOptions`: Use :c:member:`PyConfig.xoptions` instead." msgstr "" -#: whatsnew/3.13.rst:2423 +#: whatsnew/3.13.rst:2439 msgid "" ":c:func:`!PySys_SetPath`: Set :c:member:`PyConfig.module_search_paths` " "instead." msgstr "" -#: whatsnew/3.13.rst:2425 +#: whatsnew/3.13.rst:2441 msgid "" ":c:func:`!Py_SetPath`: Set :c:member:`PyConfig.module_search_paths` instead." msgstr "" -#: whatsnew/3.13.rst:2427 +#: whatsnew/3.13.rst:2443 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:2430 +#: whatsnew/3.13.rst:2446 msgid "" ":c:func:`!_Py_SetProgramFullPath`: Set :c:member:`PyConfig.executable` " "instead." msgstr "" -#: whatsnew/3.13.rst:2433 +#: whatsnew/3.13.rst:2449 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:2437 +#: whatsnew/3.13.rst:2453 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:2442 +#: whatsnew/3.13.rst:2458 msgid ":c:func:`PyEval_SaveThread` and :c:func:`PyEval_RestoreThread`;" msgstr "" -#: whatsnew/3.13.rst:2443 +#: whatsnew/3.13.rst:2459 msgid "" "low-level :c:func:`PyEval_AcquireThread` and :c:func:`PyEval_RestoreThread`;" msgstr "" -#: whatsnew/3.13.rst:2444 +#: whatsnew/3.13.rst:2460 msgid "or :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release`." msgstr "" -#: whatsnew/3.13.rst:2446 +#: whatsnew/3.13.rst:2462 msgid "(Contributed by Victor Stinner in :gh:`105182`.)" msgstr "" -#: whatsnew/3.13.rst:2448 +#: whatsnew/3.13.rst:2464 msgid "" "Remove the :c:func:`!PyEval_ThreadsInitialized` function, deprecated in " "Python 3.9. Since Python 3.7, :c:func:`!Py_Initialize` always creates the " @@ -4412,7 +4485,7 @@ msgid "" "Stinner in :gh:`105182`.)" msgstr "" -#: whatsnew/3.13.rst:2455 +#: whatsnew/3.13.rst:2471 msgid "" "Remove the :c:func:`!_PyInterpreterState_Get` alias to :c:func:" "`PyInterpreterState_Get()` which was kept for backward compatibility with " @@ -4421,26 +4494,26 @@ msgid "" "Stinner in :gh:`106320`.)" msgstr "" -#: whatsnew/3.13.rst:2462 +#: whatsnew/3.13.rst:2478 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:2467 +#: whatsnew/3.13.rst:2483 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:2471 +#: whatsnew/3.13.rst:2487 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:2474 +#: whatsnew/3.13.rst:2490 msgid "" "Remove the old trashcan macros ``Py_TRASHCAN_SAFE_BEGIN`` and " "``Py_TRASHCAN_SAFE_END``. Replace both with the new macros " @@ -4448,72 +4521,72 @@ msgid "" "in :gh:`105111`.)" msgstr "" -#: whatsnew/3.13.rst:2481 +#: whatsnew/3.13.rst:2497 msgid "Deprecated C APIs" msgstr "" -#: whatsnew/3.13.rst:2483 +#: whatsnew/3.13.rst:2499 msgid "Deprecate old Python initialization functions:" msgstr "" -#: whatsnew/3.13.rst:2485 deprecations/c-api-pending-removal-in-3.15.rst:13 +#: whatsnew/3.13.rst:2501 deprecations/c-api-pending-removal-in-3.15.rst:12 msgid "" ":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" "warnings.filters` instead." msgstr "" -#: whatsnew/3.13.rst:2487 +#: whatsnew/3.13.rst:2503 msgid ":c:func:`Py_GetExecPrefix`: Get :data:`sys.exec_prefix` instead." msgstr "" -#: whatsnew/3.13.rst:2489 deprecations/c-api-pending-removal-in-3.15.rst:17 +#: whatsnew/3.13.rst:2505 deprecations/c-api-pending-removal-in-3.15.rst:16 msgid ":c:func:`Py_GetPath`: Get :data:`sys.path` instead." msgstr "" -#: whatsnew/3.13.rst:2491 +#: whatsnew/3.13.rst:2507 msgid ":c:func:`Py_GetPrefix`: Get :data:`sys.prefix` instead." msgstr "" -#: whatsnew/3.13.rst:2493 deprecations/c-api-pending-removal-in-3.15.rst:21 +#: whatsnew/3.13.rst:2509 deprecations/c-api-pending-removal-in-3.15.rst:20 msgid ":c:func:`Py_GetProgramFullPath`: Get :data:`sys.executable` instead." msgstr "" -#: whatsnew/3.13.rst:2495 deprecations/c-api-pending-removal-in-3.15.rst:23 +#: whatsnew/3.13.rst:2511 deprecations/c-api-pending-removal-in-3.15.rst:22 msgid ":c:func:`Py_GetProgramName`: Get :data:`sys.executable` instead." msgstr "" -#: whatsnew/3.13.rst:2497 deprecations/c-api-pending-removal-in-3.15.rst:25 +#: whatsnew/3.13.rst:2513 deprecations/c-api-pending-removal-in-3.15.rst:24 msgid "" ":c:func:`Py_GetPythonHome`: Get :c:member:`PyConfig.home` or the :envvar:" "`PYTHONHOME` environment variable instead." msgstr "" -#: whatsnew/3.13.rst:2501 +#: whatsnew/3.13.rst:2517 msgid "(Contributed by Victor Stinner in :gh:`105145`.)" msgstr "" -#: whatsnew/3.13.rst:2503 +#: whatsnew/3.13.rst:2519 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:2509 +#: whatsnew/3.13.rst:2525 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:2513 +#: whatsnew/3.13.rst:2529 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:2519 +#: whatsnew/3.13.rst:2535 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 " @@ -4522,7 +4595,7 @@ msgid "" "`105156`.)" msgstr "" -#: whatsnew/3.13.rst:2526 +#: whatsnew/3.13.rst:2542 msgid "" "Deprecate the :c:func:`PyWeakref_GetObject` and :c:func:" "`PyWeakref_GET_OBJECT` functions, which return a :term:`borrowed reference`. " @@ -4690,43 +4763,43 @@ 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." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:9 +#: deprecations/c-api-pending-removal-in-3.15.rst:8 msgid "" ":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: Use :c:" "type:`wchar_t` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:11 +#: deprecations/c-api-pending-removal-in-3.15.rst:10 msgid "Python initialization functions:" msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:15 +#: deprecations/c-api-pending-removal-in-3.15.rst:14 msgid "" ":c:func:`Py_GetExecPrefix`: Get :data:`sys.base_exec_prefix` and :data:`sys." "exec_prefix` instead." msgstr "" -#: deprecations/c-api-pending-removal-in-3.15.rst:19 +#: deprecations/c-api-pending-removal-in-3.15.rst:18 msgid "" ":c:func:`Py_GetPrefix`: Get :data:`sys.base_prefix` and :data:`sys.prefix` " "instead." 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 " @@ -4845,56 +4918,56 @@ msgstr "" msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." msgstr "" -#: whatsnew/3.13.rst:2546 +#: whatsnew/3.13.rst:2564 msgid "Build Changes" msgstr "" -#: whatsnew/3.13.rst:2548 +#: whatsnew/3.13.rst:2566 msgid "" "``arm64-apple-ios`` and ``arm64-apple-ios-simulator`` are both now :pep:`11` " "tier 3 platforms. (:ref:`PEP 730 ` written and " "implementation contributed by Russell Keith-Magee in :gh:`114099`.)" msgstr "" -#: whatsnew/3.13.rst:2553 +#: whatsnew/3.13.rst:2571 msgid "" "``aarch64-linux-android`` and ``x86_64-linux-android`` are both now :pep:" "`11` tier 3 platforms. (:ref:`PEP 738 ` " "written and implementation contributed by Malcolm Smith in :gh:`116622`.)" msgstr "" -#: whatsnew/3.13.rst:2558 +#: whatsnew/3.13.rst:2576 msgid "" "``wasm32-wasi`` is now a :pep:`11` tier 2 platform. (Contributed by Brett " "Cannon in :gh:`115192`.)" msgstr "" -#: whatsnew/3.13.rst:2561 +#: whatsnew/3.13.rst:2579 msgid "" "``wasm32-emscripten`` is no longer a :pep:`11` supported platform. " "(Contributed by Brett Cannon in :gh:`115192`.)" msgstr "" -#: whatsnew/3.13.rst:2564 +#: whatsnew/3.13.rst:2582 msgid "" "Building CPython now requires a compiler with support for the C11 atomic " "library, GCC built-in atomic functions, or MSVC interlocked intrinsics." msgstr "" -#: whatsnew/3.13.rst:2567 +#: whatsnew/3.13.rst:2585 msgid "" "Autoconf 2.71 and aclocal 1.16.5 are now required to regenerate the :file:" "`configure` script. (Contributed by Christian Heimes in :gh:`89886` and by " "Victor Stinner in :gh:`112090`.)" msgstr "" -#: whatsnew/3.13.rst:2571 +#: whatsnew/3.13.rst:2589 msgid "" "SQLite 3.15.2 or newer is required to build the :mod:`sqlite3` extension " "module. (Contributed by Erlend Aasland in :gh:`105875`.)" msgstr "" -#: whatsnew/3.13.rst:2575 +#: whatsnew/3.13.rst:2593 msgid "" "CPython now bundles the `mimalloc library`_ by default. It is licensed under " "the MIT license; see :ref:`mimalloc license `. The bundled " @@ -4902,28 +4975,27 @@ msgid "" "Dino Viehland in :gh:`109914`.)" msgstr "" -#: whatsnew/3.13.rst:2583 +#: whatsnew/3.13.rst:2601 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:2587 +#: whatsnew/3.13.rst:2605 msgid "" "Python built with :file:`configure` :option:`--with-trace-refs` (tracing " "references) is now ABI compatible with the Python release build and :ref:" "`debug build `. (Contributed by Victor Stinner in :gh:`108634`.)" msgstr "" -#: whatsnew/3.13.rst:2592 +#: whatsnew/3.13.rst:2610 msgid "" "On POSIX systems, the pkg-config (``.pc``) filenames now include the ABI " "flags. For example, the free-threaded build generates ``python-3.13t.pc`` " "and the debug build generates ``python-3.13d.pc``." msgstr "" -#: whatsnew/3.13.rst:2596 +#: whatsnew/3.13.rst:2614 msgid "" "The ``errno``, ``fcntl``, ``grp``, ``md5``, ``pwd``, ``resource``, " "``termios``, ``winsound``, ``_ctypes_test``, ``_multiprocessing." @@ -4933,27 +5005,27 @@ msgid "" "`85283`.)" msgstr "" -#: whatsnew/3.13.rst:2605 +#: whatsnew/3.13.rst:2623 msgid "Porting to Python 3.13" msgstr "" -#: whatsnew/3.13.rst:2607 +#: whatsnew/3.13.rst:2625 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" -#: whatsnew/3.13.rst:2611 +#: whatsnew/3.13.rst:2629 msgid "Changes in the Python API" msgstr "" -#: whatsnew/3.13.rst:2615 +#: whatsnew/3.13.rst:2633 msgid "" ":ref:`PEP 667 ` introduces several changes to " "the semantics of :func:`locals` and :attr:`f_locals `:" msgstr "" -#: whatsnew/3.13.rst:2618 +#: whatsnew/3.13.rst:2636 msgid "" "Calling :func:`locals` in an :term:`optimized scope` now produces an " "independent snapshot on each call, and hence no longer implicitly updates " @@ -4965,7 +5037,7 @@ msgid "" "scope. (Changed as part of :pep:`667`.)" msgstr "" -#: whatsnew/3.13.rst:2627 +#: whatsnew/3.13.rst:2645 msgid "" "Calling :func:`locals` from a comprehension at module or class scope " "(including via ``exec`` or ``eval``) once more behaves as if the " @@ -4975,7 +5047,7 @@ msgid "" "implementing :pep:`709`. (Changed as part of :pep:`667`.)" msgstr "" -#: whatsnew/3.13.rst:2634 +#: whatsnew/3.13.rst:2652 msgid "" "Accessing :attr:`FrameType.f_locals ` in an :term:`optimized " "scope` now returns a write-through proxy rather than a snapshot that gets " @@ -4984,7 +5056,7 @@ msgid "" "of :pep:`667`.)" msgstr "" -#: whatsnew/3.13.rst:2640 +#: whatsnew/3.13.rst:2658 msgid "" ":class:`functools.partial` now emits a :exc:`FutureWarning` when used as a " "method. The behavior will change in future Python versions. Wrap it in :func:" @@ -4992,14 +5064,14 @@ msgid "" "Serhiy Storchaka in :gh:`121027`.)" msgstr "" -#: whatsnew/3.13.rst:2646 +#: whatsnew/3.13.rst:2664 msgid "" "An :exc:`OSError` is now raised by :func:`getpass.getuser` for any failure " "to retrieve a username, instead of :exc:`ImportError` on non-Unix platforms " "or :exc:`KeyError` on Unix platforms where the password database is empty." msgstr "" -#: whatsnew/3.13.rst:2651 +#: whatsnew/3.13.rst:2669 msgid "" "The value of the :attr:`!mode` attribute of :class:`gzip.GzipFile` is now a " "string (``'rb'`` or ``'wb'``) instead of an integer (``1`` or ``2``). The " @@ -5008,13 +5080,13 @@ msgid "" "(Contributed by Serhiy Storchaka in :gh:`115961`.)" msgstr "" -#: whatsnew/3.13.rst:2657 +#: whatsnew/3.13.rst:2675 msgid "" ":class:`mailbox.Maildir` now ignores files with a leading dot (``.``). " "(Contributed by Zackery Spytz in :gh:`65559`.)" msgstr "" -#: whatsnew/3.13.rst:2660 +#: whatsnew/3.13.rst:2678 msgid "" ":meth:`pathlib.Path.glob` and :meth:`~pathlib.Path.rglob` now return both " "files and directories if a pattern that ends with \"``**``\" is given, " @@ -5022,25 +5094,25 @@ msgid "" "behavior and only match directories." msgstr "" -#: whatsnew/3.13.rst:2665 +#: whatsnew/3.13.rst:2683 msgid "" "The :mod:`threading` module now expects the :mod:`!_thread` module to have " "an :func:`!_is_main_interpreter` function. This function takes no arguments " "and returns ``True`` if the current interpreter is the main interpreter." msgstr "" -#: whatsnew/3.13.rst:2670 +#: whatsnew/3.13.rst:2688 msgid "" "Any library or application that provides a custom :mod:`!_thread` module " "must provide :func:`!_is_main_interpreter`, just like the module's other " "\"private\" attributes. (:gh:`112826`.)" msgstr "" -#: whatsnew/3.13.rst:2677 +#: whatsnew/3.13.rst:2695 msgid "Changes in the C API" msgstr "" -#: whatsnew/3.13.rst:2679 +#: whatsnew/3.13.rst:2697 msgid "" "``Python.h`` no longer includes the ```` standard header. It was " "included for the :c:func:`!finite` function which is now provided by the " @@ -5049,7 +5121,7 @@ msgid "" "`108765`.)" msgstr "" -#: whatsnew/3.13.rst:2685 +#: whatsnew/3.13.rst:2703 msgid "" "``Python.h`` no longer includes these standard header files: ````, " "```` and ````. If needed, they should now be " @@ -5060,7 +5132,7 @@ msgid "" "Victor Stinner in :gh:`108765`.)" msgstr "" -#: whatsnew/3.13.rst:2693 +#: whatsnew/3.13.rst:2711 msgid "" "On Windows, ``Python.h`` no longer includes the ```` standard " "header file. If needed, it should now be included explicitly. For example, " @@ -5070,7 +5142,7 @@ msgid "" "(Contributed by Victor Stinner in :gh:`108765`.)" msgstr "" -#: whatsnew/3.13.rst:2700 +#: whatsnew/3.13.rst:2718 msgid "" "If the :c:macro:`Py_LIMITED_API` macro is defined, :c:macro:`!" "Py_BUILD_CORE`, :c:macro:`!Py_BUILD_CORE_BUILTIN` and :c:macro:`!" @@ -5078,18 +5150,18 @@ msgid "" "(Contributed by Victor Stinner in :gh:`85283`.)" msgstr "" -#: whatsnew/3.13.rst:2705 +#: whatsnew/3.13.rst:2723 msgid "" "The old trashcan macros ``Py_TRASHCAN_SAFE_BEGIN`` and " "``Py_TRASHCAN_SAFE_END`` were removed. They should be replaced by the new " "macros ``Py_TRASHCAN_BEGIN`` and ``Py_TRASHCAN_END``." msgstr "" -#: whatsnew/3.13.rst:2709 +#: whatsnew/3.13.rst:2727 msgid "A ``tp_dealloc`` function that has the old macros, such as::" msgstr "" -#: whatsnew/3.13.rst:2711 +#: whatsnew/3.13.rst:2729 msgid "" "static void\n" "mytype_dealloc(mytype *p)\n" @@ -5101,11 +5173,11 @@ msgid "" "}" msgstr "" -#: whatsnew/3.13.rst:2720 +#: whatsnew/3.13.rst:2738 msgid "should migrate to the new macros as follows::" msgstr "" -#: whatsnew/3.13.rst:2722 +#: whatsnew/3.13.rst:2740 msgid "" "static void\n" "mytype_dealloc(mytype *p)\n" @@ -5117,7 +5189,7 @@ msgid "" "}" msgstr "" -#: whatsnew/3.13.rst:2731 +#: whatsnew/3.13.rst:2749 msgid "" "Note that ``Py_TRASHCAN_BEGIN`` has a second argument which should be the " "deallocation function it is in. The new macros were added in Python 3.8 and " @@ -5125,13 +5197,13 @@ msgid "" "in :gh:`105111`.)" msgstr "" -#: whatsnew/3.13.rst:2738 +#: whatsnew/3.13.rst:2756 msgid "" ":ref:`PEP 667 ` introduces several changes to " "frame-related functions:" msgstr "" -#: whatsnew/3.13.rst:2741 +#: whatsnew/3.13.rst:2759 msgid "" "The effects of mutating the dictionary returned from :c:func:" "`PyEval_GetLocals` in an :term:`optimized scope` have changed. New dict " @@ -5145,7 +5217,7 @@ msgid "" "being used, so refer to the deprecation notice on the function for details." msgstr "" -#: whatsnew/3.13.rst:2754 +#: whatsnew/3.13.rst:2772 msgid "" "Calling :c:func:`PyFrame_GetLocals` in an :term:`optimized scope` now " "returns a write-through proxy rather than a snapshot that gets updated at " @@ -5154,126 +5226,126 @@ msgid "" "`PyEval_GetFrameLocals` API." msgstr "" -#: whatsnew/3.13.rst:2761 +#: whatsnew/3.13.rst:2779 msgid "" ":c:func:`!PyFrame_FastToLocals` and :c:func:`!PyFrame_FastToLocalsWithError` " "no longer have any effect. Calling these functions has been redundant since " "Python 3.11, when :c:func:`PyFrame_GetLocals` was first introduced." msgstr "" -#: whatsnew/3.13.rst:2766 +#: whatsnew/3.13.rst:2784 msgid "" ":c:func:`!PyFrame_LocalsToFast` no longer has any effect. Calling this " "function is redundant now that :c:func:`PyFrame_GetLocals` returns a write-" "through proxy for :term:`optimized scopes `." msgstr "" -#: whatsnew/3.13.rst:2770 +#: whatsnew/3.13.rst:2788 msgid "" "Python 3.13 removed many private functions. Some of them can be replaced " "using these alternatives:" msgstr "" -#: whatsnew/3.13.rst:2773 +#: whatsnew/3.13.rst:2791 msgid "``_PyDict_Pop()``: :c:func:`PyDict_Pop` or :c:func:`PyDict_PopString`;" msgstr "" -#: whatsnew/3.13.rst:2774 +#: whatsnew/3.13.rst:2792 msgid "``_PyDict_GetItemWithError()``: :c:func:`PyDict_GetItemRef`;" msgstr "" -#: whatsnew/3.13.rst:2775 +#: whatsnew/3.13.rst:2793 msgid "``_PyErr_WriteUnraisableMsg()``: :c:func:`PyErr_FormatUnraisable`;" msgstr "" -#: whatsnew/3.13.rst:2776 +#: whatsnew/3.13.rst:2794 msgid "" "``_PyEval_SetTrace()``: :c:func:`PyEval_SetTrace` or :c:func:" "`PyEval_SetTraceAllThreads`;" msgstr "" -#: whatsnew/3.13.rst:2777 +#: whatsnew/3.13.rst:2795 msgid "``_PyList_Extend()``: :c:func:`PyList_Extend`;" msgstr "" -#: whatsnew/3.13.rst:2778 +#: whatsnew/3.13.rst:2796 msgid "``_PyLong_AsInt()``: :c:func:`PyLong_AsInt`;" msgstr "" -#: whatsnew/3.13.rst:2779 +#: whatsnew/3.13.rst:2797 msgid "``_PyMem_RawStrdup()``: ``strdup()``;" msgstr "" -#: whatsnew/3.13.rst:2780 +#: whatsnew/3.13.rst:2798 msgid "``_PyMem_Strdup()``: ``strdup()``;" msgstr "" -#: whatsnew/3.13.rst:2781 +#: whatsnew/3.13.rst:2799 msgid "``_PyObject_ClearManagedDict()``: :c:func:`PyObject_ClearManagedDict`;" msgstr "" -#: whatsnew/3.13.rst:2782 +#: whatsnew/3.13.rst:2800 msgid "``_PyObject_VisitManagedDict()``: :c:func:`PyObject_VisitManagedDict`;" msgstr "" -#: whatsnew/3.13.rst:2783 +#: whatsnew/3.13.rst:2801 msgid "" "``_PyThreadState_UncheckedGet()``: :c:func:`PyThreadState_GetUnchecked()`;" msgstr "" -#: whatsnew/3.13.rst:2784 +#: whatsnew/3.13.rst:2802 msgid "``_PyTime_AsSecondsDouble()``: :c:func:`PyTime_AsSecondsDouble`;" msgstr "" -#: whatsnew/3.13.rst:2785 +#: whatsnew/3.13.rst:2803 msgid "" "``_PyTime_GetMonotonicClock()``: :c:func:`PyTime_Monotonic` or :c:func:" "`PyTime_MonotonicRaw`;" msgstr "" -#: whatsnew/3.13.rst:2786 +#: whatsnew/3.13.rst:2804 msgid "" "``_PyTime_GetPerfCounter()``: :c:func:`PyTime_PerfCounter` or :c:func:" "`PyTime_PerfCounterRaw`;" msgstr "" -#: whatsnew/3.13.rst:2787 +#: whatsnew/3.13.rst:2805 msgid "" "``_PyTime_GetSystemClock()``: :c:func:`PyTime_Time` or :c:func:" "`PyTime_TimeRaw`;" msgstr "" -#: whatsnew/3.13.rst:2788 +#: whatsnew/3.13.rst:2806 msgid "``_PyTime_MAX``: :c:var:`PyTime_MAX`;" msgstr "" -#: whatsnew/3.13.rst:2789 +#: whatsnew/3.13.rst:2807 msgid "``_PyTime_MIN``: :c:var:`PyTime_MIN`;" msgstr "" -#: whatsnew/3.13.rst:2790 +#: whatsnew/3.13.rst:2808 msgid "``_PyTime_t``: :c:type:`PyTime_t`;" msgstr "" -#: whatsnew/3.13.rst:2791 +#: whatsnew/3.13.rst:2809 msgid "``_Py_HashPointer()``: :c:func:`Py_HashPointer`;" msgstr "" -#: whatsnew/3.13.rst:2792 +#: whatsnew/3.13.rst:2810 msgid "``_Py_IsFinalizing()``: :c:func:`Py_IsFinalizing`." msgstr "" -#: whatsnew/3.13.rst:2794 +#: whatsnew/3.13.rst:2812 msgid "" "The `pythoncapi-compat project`_ can be used to get most of these new " "functions on Python 3.12 and older." msgstr "" -#: whatsnew/3.13.rst:2798 +#: whatsnew/3.13.rst:2816 msgid "Regression Test Changes" msgstr "" -#: whatsnew/3.13.rst:2800 +#: whatsnew/3.13.rst:2818 msgid "" "Python built with :file:`configure` :option:`--with-pydebug` now supports a :" "option:`-X presite=package.module <-X>` command-line option. If used, it " @@ -5282,13 +5354,62 @@ msgid "" "in :gh:`110769`.)" msgstr "" -#: whatsnew/3.13.rst:2808 +#: whatsnew/3.13.rst:2826 msgid "Notable changes in 3.13.1" msgstr "" -#: whatsnew/3.13.rst:2813 +#: whatsnew/3.13.rst:2831 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." msgstr "" + +#: whatsnew/3.13.rst:2836 +msgid "Notable changes in 3.13.4" +msgstr "" + +#: whatsnew/3.13.rst:2841 +msgid "" +"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.13.rst:2848 +msgid "tarfile" +msgstr "" + +#: whatsnew/3.13.rst:2850 +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.13.rst:2853 +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.13.rst:2856 +msgid "" +":func:`~tarfile.TarFile.extract` and :func:`~tarfile.TarFile.extractall` now " +"(re-)apply the extraction filter when substituting a link (hard or symbolic) " +"with a copy of another archive member, and when fixing up directory " +"attributes. The former raises a new exception, :exc:`~tarfile." +"LinkFallbackError`. (Contributed by Petr Viktorin for :cve:`2025-4330` and :" +"cve:`2024-12718`.)" +msgstr "" + +#: whatsnew/3.13.rst:2862 +msgid "" +":func:`~tarfile.TarFile.extract` and :func:`~tarfile.TarFile.extractall` no " +"longer extract rejected members when :func:`~tarfile.TarFile.errorlevel` is " +"zero. (Contributed by Matt Prodani and Petr Viktorin in :gh:`112887` and :" +"cve:`2025-4435`.)" +msgstr "" diff --git a/whatsnew/3.2.po b/whatsnew/3.2.po index 44628a4c..cc02e2ca 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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.3.po b/whatsnew/3.3.po index bd041f9d..8fbde5eb 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 c75cde91..0d805b1b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,7 +1497,7 @@ 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 " @@ -1508,18 +1510,18 @@ msgid "" "(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 ea22f8e0..cbcabecf 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,69 +567,69 @@ 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 " +"While these annotations are available at runtime through the usual :attr:`!" +"__annotations__` attribute, *no automatic type checking happens at " "runtime*. Instead, it is assumed that a separate off-line type checker (e." "g. `mypy `_) will be used for on-demand source code " "analysis." msgstr "" -#: 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 "" @@ -3386,9 +3384,9 @@ 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 9bc77312..9471da8e 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 @@ -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 2afcf530..940fb1b6 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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,23 @@ 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`.)" 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 +3553,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 +3572,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 +3596,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 +3604,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 +3612,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 +3626,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 +3641,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 +3655,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 +3669,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 +3685,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 +3698,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 +3708,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 e99ff6df..4e8de480 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 720f0ba1..75e92b9b 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-05-04 22:06+0300\n" +"POT-Creation-Date: 2025-11-27 09:00+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 ``