# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: # Tria Nur Aisyah Amini , 2021 # William Ang Kisjanto Surya , 2021 # oon arfiandwi , 2024 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-05-09 14:19+0000\n" "PO-Revision-Date: 2021-06-28 00:47+0000\n" "Last-Translator: oon arfiandwi , 2024\n" "Language-Team: Indonesian (https://app.transifex.com/python-doc/teams/5390/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../../c-api/arg.rst:6 msgid "Parsing arguments and building values" msgstr "Mengurai argumen dan membangun nilai" #: ../../c-api/arg.rst:8 msgid "" "These functions are useful when creating your own extension functions and " "methods. Additional information and examples are available in " ":ref:`extending-index`." msgstr "" #: ../../c-api/arg.rst:12 msgid "" "The first three of these functions described, :c:func:`PyArg_ParseTuple`, " ":c:func:`PyArg_ParseTupleAndKeywords`, and :c:func:`PyArg_Parse`, all use " "*format strings* which are used to tell the function about the expected " "arguments. The format strings use the same syntax for each of these " "functions." msgstr "" "Tiga fungsi pertama dijelaskan yaitu, :c:func:`PyArg_ParseTuple`, " ":c:func:`PyArg_ParseTupleAndKeywords`, dan :c:func:`PyArg_Parse`, semuanya " "menggunakan *format string* yang digunakan untuk memberitahu fungsi tentang " "expected argumen . Format string menggunakan sintaks yang sama untuk setiap " "fungsi tersebut." #: ../../c-api/arg.rst:19 msgid "Parsing arguments" msgstr "Mengurai argumen" #: ../../c-api/arg.rst:21 msgid "" "A format string consists of zero or more \"format units.\" A format unit " "describes one Python object; it is usually a single character or a " "parenthesized sequence of format units. With a few exceptions, a format " "unit that is not a parenthesized sequence normally corresponds to a single " "address argument to these functions. In the following description, the " "quoted form is the format unit; the entry in (round) parentheses is the " "Python object type that matches the format unit; and the entry in [square] " "brackets is the type of the C variable(s) whose address should be passed." msgstr "" "format string terdiri dari nol atau lebih \"unit format.\" Sebuah unit " "format menjelaskan satu obyek Python; Seringkali adalah sebuah karaketer " "atau sebuah urutan unit format yang di dalam kurung. Dengan beberapa " "pengecualian, format unit yang bukan sebuah urutan yang di dalam kurung " "biasanya berhubungan dengan sebuah argumen yang memanggil fungsi-fungsi ini." " Dalam penjelasan berikut ini, bentuk yang dikutip adalah unit format. Entri" " yang di dalam kurung (bulat) adalah tipe obyek Python yang cocok dengan " "unit format, dan entri yang di dalam kurung [kotak] adalah tipe variabel C " "yang perlu dipanggil." #: ../../c-api/arg.rst:33 msgid "Strings and buffers" msgstr "String dan penyangga, *buffers*" #: ../../c-api/arg.rst:37 msgid "" "On Python 3.12 and older, the macro :c:macro:`!PY_SSIZE_T_CLEAN` must be " "defined before including :file:`Python.h` to use all ``#`` variants of " "formats (``s#``, ``y#``, etc.) explained below. This is not necessary on " "Python 3.13 and later." msgstr "" #: ../../c-api/arg.rst:42 msgid "" "These formats allow accessing an object as a contiguous chunk of memory. You" " don't have to provide raw storage for the returned unicode or bytes area." msgstr "" #: ../../c-api/arg.rst:46 msgid "Unless otherwise stated, buffers are not NUL-terminated." msgstr "Kecuali dinyatakan lain, buffer tidak akhiri oleh NUL." #: ../../c-api/arg.rst:48 msgid "There are three ways strings and buffers can be converted to C:" msgstr "" #: ../../c-api/arg.rst:50 msgid "" "Formats such as ``y*`` and ``s*`` fill a :c:type:`Py_buffer` structure. This" " locks the underlying buffer so that the caller can subsequently use the " "buffer even inside a :c:type:`Py_BEGIN_ALLOW_THREADS` block without the risk" " of mutable data being resized or destroyed. As a result, **you have to " "call** :c:func:`PyBuffer_Release` after you have finished processing the " "data (or in any early abort case)." msgstr "" #: ../../c-api/arg.rst:57 msgid "" "The ``es``, ``es#``, ``et`` and ``et#`` formats allocate the result buffer. " "**You have to call** :c:func:`PyMem_Free` after you have finished processing" " the data (or in any early abort case)." msgstr "" #: ../../c-api/arg.rst:63 msgid "" "Other formats take a :class:`str` or a read-only :term:`bytes-like object`, " "such as :class:`bytes`, and provide a ``const char *`` pointer to its " "buffer. In this case the buffer is \"borrowed\": it is managed by the " "corresponding Python object, and shares the lifetime of this object. You " "won't have to release any memory yourself." msgstr "" #: ../../c-api/arg.rst:70 msgid "" "To ensure that the underlying buffer may be safely borrowed, the object's " ":c:member:`PyBufferProcs.bf_releasebuffer` field must be ``NULL``. This " "disallows common mutable objects such as :class:`bytearray`, but also some " "read-only objects such as :class:`memoryview` of :class:`bytes`." msgstr "" #: ../../c-api/arg.rst:76 msgid "" "Besides this ``bf_releasebuffer`` requirement, there is no check to verify " "whether the input object is immutable (e.g. whether it would honor a request" " for a writable buffer, or whether another thread can mutate the data)." msgstr "" #: ../../c-api/arg.rst:80 msgid "``s`` (:class:`str`) [const char \\*]" msgstr "``s`` (:class:`str`) [const char \\*]" #: ../../c-api/arg.rst:81 msgid "" "Convert a Unicode object to a C pointer to a character string. A pointer to " "an existing string is stored in the character pointer variable whose address" " you pass. The C string is NUL-terminated. The Python string must not " "contain embedded null code points; if it does, a :exc:`ValueError` exception" " is raised. Unicode objects are converted to C strings using ``'utf-8'`` " "encoding. If this conversion fails, a :exc:`UnicodeError` is raised." msgstr "" #: ../../c-api/arg.rst:90 msgid "" "This format does not accept :term:`bytes-like objects `." " If you want to accept filesystem paths and convert them to C character " "strings, it is preferable to use the ``O&`` format with " ":c:func:`PyUnicode_FSConverter` as *converter*." msgstr "" #: ../../c-api/arg.rst:96 msgid "" "Previously, :exc:`TypeError` was raised when embedded null code points were " "encountered in the Python string." msgstr "" #: ../../c-api/arg.rst:100 msgid "``s*`` (:class:`str` or :term:`bytes-like object`) [Py_buffer]" msgstr "``s*`` (:class:`str` atau :term:`bytes-like object`) [Py_buffer]" #: ../../c-api/arg.rst:101 msgid "" "This format accepts Unicode objects as well as bytes-like objects. It fills " "a :c:type:`Py_buffer` structure provided by the caller. In this case the " "resulting C string may contain embedded NUL bytes. Unicode objects are " "converted to C strings using ``'utf-8'`` encoding." msgstr "" #: ../../c-api/arg.rst:106 msgid "" "``s#`` (:class:`str`, read-only :term:`bytes-like object`) [const char \\*, " ":c:type:`Py_ssize_t`]" msgstr "" #: ../../c-api/arg.rst:107 msgid "" "Like ``s*``, except that it provides a :ref:`borrowed buffer `. The result is stored into two C variables, the first one " "a pointer to a C string, the second one its length. The string may contain " "embedded null bytes. Unicode objects are converted to C strings using " "``'utf-8'`` encoding." msgstr "" #: ../../c-api/arg.rst:113 ../../c-api/arg.rst:629 msgid "``z`` (:class:`str` or ``None``) [const char \\*]" msgstr "``z`` (:class:`str` atau ``None``) [const char \\*]" #: ../../c-api/arg.rst:114 msgid "" "Like ``s``, but the Python object may also be ``None``, in which case the C " "pointer is set to ``NULL``. It is the same as ``s?`` with the C pointer was " "initialized to ``NULL``." msgstr "" #: ../../c-api/arg.rst:118 msgid "" "``z*`` (:class:`str`, :term:`bytes-like object` or ``None``) [Py_buffer]" msgstr "" "``z*`` (:class:`str`, :term:`bytes-like object` atau ``None``) [Py_buffer]" #: ../../c-api/arg.rst:119 msgid "" "Like ``s*``, but the Python object may also be ``None``, in which case the " "``buf`` member of the :c:type:`Py_buffer` structure is set to ``NULL``. It " "is the same as ``s*?`` with the ``buf`` member of the :c:type:`Py_buffer` " "structure was initialized to ``NULL``." msgstr "" #: ../../c-api/arg.rst:124 msgid "" "``z#`` (:class:`str`, read-only :term:`bytes-like object` or ``None``) " "[const char \\*, :c:type:`Py_ssize_t`]" msgstr "" #: ../../c-api/arg.rst:125 msgid "" "Like ``s#``, but the Python object may also be ``None``, in which case the C" " pointer is set to ``NULL``. It is the same as ``s#?`` with the C pointer " "was initialized to ``NULL``." msgstr "" #: ../../c-api/arg.rst:129 msgid "``y`` (read-only :term:`bytes-like object`) [const char \\*]" msgstr "``y`` (baca-saja :term:`bytes-like object`) [const char \\*]" #: ../../c-api/arg.rst:130 msgid "" "This format converts a bytes-like object to a C pointer to a :ref:`borrowed " "` character string; it does not accept Unicode " "objects. The bytes buffer must not contain embedded null bytes; if it does," " a :exc:`ValueError` exception is raised." msgstr "" #: ../../c-api/arg.rst:136 msgid "" "Previously, :exc:`TypeError` was raised when embedded null bytes were " "encountered in the bytes buffer." msgstr "" #: ../../c-api/arg.rst:140 msgid "``y*`` (:term:`bytes-like object`) [Py_buffer]" msgstr "``y*`` (:term:`bytes-like object`) [Py_buffer]" #: ../../c-api/arg.rst:141 msgid "" "This variant on ``s*`` doesn't accept Unicode objects, only bytes-like " "objects. **This is the recommended way to accept binary data.**" msgstr "" #: ../../c-api/arg.rst:145 msgid "" "``y#`` (read-only :term:`bytes-like object`) [const char \\*, " ":c:type:`Py_ssize_t`]" msgstr "" #: ../../c-api/arg.rst:146 msgid "" "This variant on ``s#`` doesn't accept Unicode objects, only bytes-like " "objects." msgstr "" "Varian pada ``s#`` ini tidak menerima objek Unicode, hanya objek yang " "seperti byte." #: ../../c-api/arg.rst:149 msgid "``S`` (:class:`bytes`) [PyBytesObject \\*]" msgstr "``S`` (:class:`bytes`) [PyBytesObject \\*]" #: ../../c-api/arg.rst:150 msgid "" "Requires that the Python object is a :class:`bytes` object, without " "attempting any conversion. Raises :exc:`TypeError` if the object is not a " "bytes object. The C variable may also be declared as :c:expr:`PyObject*`." msgstr "" #: ../../c-api/arg.rst:154 msgid "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" msgstr "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" #: ../../c-api/arg.rst:155 msgid "" "Requires that the Python object is a :class:`bytearray` object, without " "attempting any conversion. Raises :exc:`TypeError` if the object is not a " ":class:`bytearray` object. The C variable may also be declared as " ":c:expr:`PyObject*`." msgstr "" #: ../../c-api/arg.rst:159 msgid "``U`` (:class:`str`) [PyObject \\*]" msgstr "``U`` (:class:`str`) [PyObject \\*]" #: ../../c-api/arg.rst:160 msgid "" "Requires that the Python object is a Unicode object, without attempting any " "conversion. Raises :exc:`TypeError` if the object is not a Unicode object." " The C variable may also be declared as :c:expr:`PyObject*`." msgstr "" #: ../../c-api/arg.rst:164 msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" msgstr "``w*`` (baca-tulis :term:`bytes-like object`) [Py_buffer]" #: ../../c-api/arg.rst:165 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:`PyBuffer_Release` when it is done with the buffer." msgstr "" #: ../../c-api/arg.rst:170 msgid "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]" msgstr "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]" #: ../../c-api/arg.rst:171 msgid "" "This variant on ``s`` is used for encoding Unicode into a character buffer. " "It only works for encoded data without embedded NUL bytes." msgstr "" #: ../../c-api/arg.rst:174 msgid "" "This format requires two arguments. The first is only used as input, and " "must be a :c:expr:`const char*` which points to the name of an encoding as a" " NUL-terminated string, or ``NULL``, in which case ``'utf-8'`` encoding is " "used. An exception is raised if the named encoding is not known to Python. " "The second argument must be a :c:expr:`char**`; the value of the pointer it " "references will be set to a buffer with the contents of the argument text. " "The text will be encoded in the encoding specified by the first argument." msgstr "" #: ../../c-api/arg.rst:182 msgid "" ":c:func:`PyArg_ParseTuple` will allocate a buffer of the needed size, copy " "the encoded data into this buffer and adjust *\\*buffer* to reference the " "newly allocated storage. The caller is responsible for calling " ":c:func:`PyMem_Free` to free the allocated buffer after use." msgstr "" #: ../../c-api/arg.rst:187 msgid "" "``et`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " "\\*encoding, char \\*\\*buffer]" msgstr "" "``et`` (:class:`str`, :class:`bytes` atau :class:`bytearray`) [const char " "\\*encoding, char \\*\\*buffer]" #: ../../c-api/arg.rst:188 msgid "" "Same as ``es`` except that byte string objects are passed through without " "recoding them. Instead, the implementation assumes that the byte string " "object uses the encoding passed in as parameter." msgstr "" #: ../../c-api/arg.rst:192 msgid "" "``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, " ":c:type:`Py_ssize_t` \\*buffer_length]" msgstr "" #: ../../c-api/arg.rst:193 msgid "" "This variant on ``s#`` is used for encoding Unicode into a character buffer." " Unlike the ``es`` format, this variant allows input data which contains NUL" " characters." msgstr "" #: ../../c-api/arg.rst:197 msgid "" "It requires three arguments. The first is only used as input, and must be a" " :c:expr:`const char*` which points to the name of an encoding as a NUL-" "terminated string, or ``NULL``, in which case ``'utf-8'`` encoding is used. " "An exception is raised if the named encoding is not known to Python. The " "second argument must be a :c:expr:`char**`; the value of the pointer it " "references will be set to a buffer with the contents of the argument text. " "The text will be encoded in the encoding specified by the first argument. " "The third argument must be a pointer to an integer; the referenced integer " "will be set to the number of bytes in the output buffer." msgstr "" #: ../../c-api/arg.rst:207 msgid "There are two modes of operation:" msgstr "Ada dua mode operasi:" #: ../../c-api/arg.rst:209 msgid "" "If *\\*buffer* points a ``NULL`` pointer, the function will allocate a " "buffer of the needed size, copy the encoded data into this buffer and set " "*\\*buffer* to reference the newly allocated storage. The caller is " "responsible for calling :c:func:`PyMem_Free` to free the allocated buffer " "after usage." msgstr "" #: ../../c-api/arg.rst:214 msgid "" "If *\\*buffer* points to a non-``NULL`` pointer (an already allocated " "buffer), :c:func:`PyArg_ParseTuple` will use this location as the buffer and" " interpret the initial value of *\\*buffer_length* as the buffer size. It " "will then copy the encoded data into the buffer and NUL-terminate it. If " "the buffer is not large enough, a :exc:`ValueError` will be set." msgstr "" #: ../../c-api/arg.rst:220 msgid "" "In both cases, *\\*buffer_length* is set to the length of the encoded data " "without the trailing NUL byte." msgstr "" #: ../../c-api/arg.rst:223 msgid "" "``et#`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " "\\*encoding, char \\*\\*buffer, :c:type:`Py_ssize_t` \\*buffer_length]" msgstr "" #: ../../c-api/arg.rst:224 msgid "" "Same as ``es#`` except that byte string objects are passed through without " "recoding them. Instead, the implementation assumes that the byte string " "object uses the encoding passed in as parameter." msgstr "" #: ../../c-api/arg.rst:228 msgid "" "``u``, ``u#``, ``Z``, and ``Z#`` are removed because they used a legacy " "``Py_UNICODE*`` representation." msgstr "" #: ../../c-api/arg.rst:234 msgid "Numbers" msgstr "Angka" #: ../../c-api/arg.rst:236 msgid "" "These formats allow representing Python numbers or single characters as C " "numbers. Formats that require :class:`int`, :class:`float` or " ":class:`complex` can also use the corresponding special methods " ":meth:`~object.__index__`, :meth:`~object.__float__` or " ":meth:`~object.__complex__` to convert the Python object to the required " "type." msgstr "" #: ../../c-api/arg.rst:242 msgid "" "For signed integer formats, :exc:`OverflowError` is raised if the value is " "out of range for the C type. For unsigned integer formats, no range checking" " is done --- the most significant bits are silently truncated when the " "receiving field is too small to receive the value." msgstr "" #: ../../c-api/arg.rst:248 msgid "``b`` (:class:`int`) [unsigned char]" msgstr "``b`` (:class:`int`) [unsigned char]" #: ../../c-api/arg.rst:249 msgid "" "Convert a nonnegative Python integer to an unsigned tiny integer, stored in " "a C :c:expr:`unsigned char`." msgstr "" #: ../../c-api/arg.rst:252 ../../c-api/arg.rst:663 msgid "``B`` (:class:`int`) [unsigned char]" msgstr "``B`` (:class:`int`) [unsigned char]" #: ../../c-api/arg.rst:253 msgid "" "Convert a Python integer to a tiny integer without overflow checking, stored" " in a C :c:expr:`unsigned char`." msgstr "" #: ../../c-api/arg.rst:256 ../../c-api/arg.rst:657 msgid "``h`` (:class:`int`) [short int]" msgstr "``h`` (:class:`int`) [short int]" #: ../../c-api/arg.rst:257 msgid "Convert a Python integer to a C :c:expr:`short int`." msgstr "" #: ../../c-api/arg.rst:259 ../../c-api/arg.rst:666 msgid "``H`` (:class:`int`) [unsigned short int]" msgstr "``H`` (:class:`int`) [unsigned short int]" #: ../../c-api/arg.rst:260 msgid "" "Convert a Python integer to a C :c:expr:`unsigned short int`, without " "overflow checking." msgstr "" #: ../../c-api/arg.rst:263 ../../c-api/arg.rst:651 msgid "``i`` (:class:`int`) [int]" msgstr "``i`` (:class:`int`) [int]" #: ../../c-api/arg.rst:264 msgid "Convert a Python integer to a plain C :c:expr:`int`." msgstr "" #: ../../c-api/arg.rst:266 ../../c-api/arg.rst:669 msgid "``I`` (:class:`int`) [unsigned int]" msgstr "``I`` (:class:`int`) [unsigned int]" #: ../../c-api/arg.rst:267 msgid "" "Convert a Python integer to a C :c:expr:`unsigned int`, without overflow " "checking." msgstr "" #: ../../c-api/arg.rst:270 ../../c-api/arg.rst:660 msgid "``l`` (:class:`int`) [long int]" msgstr "``l`` (:class:`int`) [long int]" #: ../../c-api/arg.rst:271 msgid "Convert a Python integer to a C :c:expr:`long int`." msgstr "" #: ../../c-api/arg.rst:273 ../../c-api/arg.rst:672 msgid "``k`` (:class:`int`) [unsigned long]" msgstr "``k`` (:class:`int`) [unsigned long]" #: ../../c-api/arg.rst:274 msgid "" "Convert a Python integer to a C :c:expr:`unsigned long` without overflow " "checking." msgstr "" #: ../../c-api/arg.rst:277 ../../c-api/arg.rst:287 msgid "Use :meth:`~object.__index__` if available." msgstr "" #: ../../c-api/arg.rst:280 ../../c-api/arg.rst:675 msgid "``L`` (:class:`int`) [long long]" msgstr "``L`` (:class:`int`) [long long]" #: ../../c-api/arg.rst:281 msgid "Convert a Python integer to a C :c:expr:`long long`." msgstr "" #: ../../c-api/arg.rst:283 ../../c-api/arg.rst:680 msgid "``K`` (:class:`int`) [unsigned long long]" msgstr "``K`` (:class:`int`) [unsigned long long]" #: ../../c-api/arg.rst:284 msgid "" "Convert a Python integer to a C :c:expr:`unsigned long long` without " "overflow checking." msgstr "" #: ../../c-api/arg.rst:290 ../../c-api/arg.rst:683 msgid "``n`` (:class:`int`) [:c:type:`Py_ssize_t`]" msgstr "" #: ../../c-api/arg.rst:291 msgid "Convert a Python integer to a C :c:type:`Py_ssize_t`." msgstr "" #: ../../c-api/arg.rst:293 msgid "``c`` (:class:`bytes` or :class:`bytearray` of length 1) [char]" msgstr "" "``c`` (:class:`bytes` atau :class:`bytearray` dengan panjang 1) [char]" #: ../../c-api/arg.rst:294 msgid "" "Convert a Python byte, represented as a :class:`bytes` or :class:`bytearray`" " object of length 1, to a C :c:expr:`char`." msgstr "" #: ../../c-api/arg.rst:297 msgid "Allow :class:`bytearray` objects." msgstr "Izinkan objek :class:`bytearray`." #: ../../c-api/arg.rst:300 ../../c-api/arg.rst:694 msgid "``C`` (:class:`str` of length 1) [int]" msgstr "``C`` (:class:`str` dengan panjang 1) [int]" #: ../../c-api/arg.rst:301 msgid "" "Convert a Python character, represented as a :class:`str` object of length " "1, to a C :c:expr:`int`." msgstr "" #: ../../c-api/arg.rst:304 ../../c-api/arg.rst:701 msgid "``f`` (:class:`float`) [float]" msgstr "``f`` (:class:`float`) [float]" #: ../../c-api/arg.rst:305 msgid "Convert a Python floating-point number to a C :c:expr:`float`." msgstr "" #: ../../c-api/arg.rst:307 ../../c-api/arg.rst:698 msgid "``d`` (:class:`float`) [double]" msgstr "``d`` (:class:`float`) [double]" #: ../../c-api/arg.rst:308 msgid "Convert a Python floating-point number to a C :c:expr:`double`." msgstr "" #: ../../c-api/arg.rst:310 msgid "``D`` (:class:`complex`) [Py_complex]" msgstr "``D`` (:class:`complex`) [Py_complex]" #: ../../c-api/arg.rst:311 msgid "Convert a Python complex number to a C :c:type:`Py_complex` structure." msgstr "" #: ../../c-api/arg.rst:314 msgid "Other objects" msgstr "Objek lain" #: ../../c-api/arg.rst:316 ../../c-api/arg.rst:707 msgid "``O`` (object) [PyObject \\*]" msgstr "``O`` (object) [PyObject \\*]" #: ../../c-api/arg.rst:317 msgid "" "Store a Python object (without any conversion) in a C object pointer. The C" " program thus receives the actual object that was passed. A new " ":term:`strong reference` to the object is not created (i.e. its reference " "count is not increased). The pointer stored is not ``NULL``." msgstr "" #: ../../c-api/arg.rst:323 msgid "``O!`` (object) [*typeobject*, PyObject \\*]" msgstr "``O!`` (object) [*typeobject*, PyObject \\*]" #: ../../c-api/arg.rst:324 msgid "" "Store a Python object in a C object pointer. This is similar to ``O``, but " "takes two C arguments: the first is the address of a Python type object, the" " second is the address of the C variable (of type :c:expr:`PyObject*`) into " "which the object pointer is stored. If the Python object does not have the " "required type, :exc:`TypeError` is raised." msgstr "" #: ../../c-api/arg.rst:332 msgid "``O&`` (object) [*converter*, *address*]" msgstr "" #: ../../c-api/arg.rst:333 msgid "" "Convert a Python object to a C variable through a *converter* function. " "This takes two arguments: the first is a function, the second is the address" " of a C variable (of arbitrary type), converted to :c:expr:`void *`. The " "*converter* function in turn is called as follows::" msgstr "" #: ../../c-api/arg.rst:338 msgid "status = converter(object, address);" msgstr "" #: ../../c-api/arg.rst:340 msgid "" "where *object* is the Python object to be converted and *address* is the " ":c:expr:`void*` argument that was passed to the ``PyArg_Parse*`` function. " "The returned *status* should be ``1`` for a successful conversion and ``0`` " "if the conversion has failed. When the conversion fails, the *converter* " "function should raise an exception and leave the content of *address* " "unmodified." msgstr "" #: ../../c-api/arg.rst:349 msgid "" "If the *converter* returns :c:macro:`!Py_CLEANUP_SUPPORTED`, it may get " "called a second time if the argument parsing eventually fails, giving the " "converter a chance to release any memory that it had already allocated. In " "this second call, the *object* parameter will be ``NULL``; *address* will " "have the same value as in the original call." msgstr "" #: ../../c-api/arg.rst:355 msgid "" "Examples of converters: :c:func:`PyUnicode_FSConverter` and " ":c:func:`PyUnicode_FSDecoder`." msgstr "" #: ../../c-api/arg.rst:358 msgid ":c:macro:`!Py_CLEANUP_SUPPORTED` was added." msgstr "" #: ../../c-api/arg.rst:361 ../../c-api/arg.rst:686 msgid "``p`` (:class:`bool`) [int]" msgstr "``p`` (:class:`bool`) [int]" #: ../../c-api/arg.rst:362 msgid "" "Tests the value passed in for truth (a boolean **p**\\ redicate) and " "converts the result to its equivalent C true/false integer value. Sets the " "int to ``1`` if the expression was true and ``0`` if it was false. This " "accepts any valid Python value. See :ref:`truth` for more information about" " how Python tests values for truth." msgstr "" #: ../../c-api/arg.rst:370 msgid "``(items)`` (sequence) [*matching-items*]" msgstr "" #: ../../c-api/arg.rst:371 msgid "" "The object must be a Python sequence (except :class:`str`, :class:`bytes` or" " :class:`bytearray`) whose length is the number of format units in *items*." " The C arguments must correspond to the individual format units in *items*." " Format units for sequences may be nested." msgstr "" #: ../../c-api/arg.rst:376 msgid "" "If *items* contains format units which store a :ref:`borrowed buffer ` (``s``, ``s#``, ``z``, ``z#``, ``y``, or ``y#``) or a " ":term:`borrowed reference` (``S``, ``Y``, ``U``, ``O``, or ``O!``), the " "object must be a Python tuple. The *converter* for the ``O&`` format unit in" " *items* must not store a borrowed buffer or a borrowed reference." msgstr "" #: ../../c-api/arg.rst:383 msgid "" ":class:`str` and :class:`bytearray` objects no longer accepted as a " "sequence." msgstr "" #: ../../c-api/arg.rst:386 msgid "" "Non-tuple sequences are deprecated if *items* contains format units which " "store a borrowed buffer or a borrowed reference." msgstr "" #: ../../c-api/arg.rst:390 msgid "``unit?`` (anything or ``None``) [*matching-variable(s)*]" msgstr "" #: ../../c-api/arg.rst:391 msgid "" "``?`` modifies the behavior of the preceding format unit. The C variable(s) " "corresponding to that parameter should be initialized to their default value" " --- when the argument is ``None``, :c:func:`PyArg_ParseTuple` does not " "touch the contents of the corresponding C variable(s). If the argument is " "not ``None``, it is parsed according to the specified format unit." msgstr "" #: ../../c-api/arg.rst:401 msgid "" "A few other characters have a meaning in a format string. These may not " "occur inside nested parentheses. They are:" msgstr "" #: ../../c-api/arg.rst:404 msgid "``|``" msgstr "``|``" #: ../../c-api/arg.rst:405 msgid "" "Indicates that the remaining arguments in the Python argument list are " "optional. The C variables corresponding to optional arguments should be " "initialized to their default value --- when an optional argument is not " "specified, :c:func:`PyArg_ParseTuple` does not touch the contents of the " "corresponding C variable(s)." msgstr "" #: ../../c-api/arg.rst:411 msgid "``$``" msgstr "``$``" #: ../../c-api/arg.rst:412 msgid "" ":c:func:`PyArg_ParseTupleAndKeywords` only: Indicates that the remaining " "arguments in the Python argument list are keyword-only. Currently, all " "keyword-only arguments must also be optional arguments, so ``|`` must always" " be specified before ``$`` in the format string." msgstr "" #: ../../c-api/arg.rst:420 msgid "``:``" msgstr "``:``" #: ../../c-api/arg.rst:421 msgid "" "The list of format units ends here; the string after the colon is used as " "the function name in error messages (the \"associated value\" of the " "exception that :c:func:`PyArg_ParseTuple` raises)." msgstr "" #: ../../c-api/arg.rst:425 msgid "``;``" msgstr "``;``" #: ../../c-api/arg.rst:426 msgid "" "The list of format units ends here; the string after the semicolon is used " "as the error message *instead* of the default error message. ``:`` and " "``;`` mutually exclude each other." msgstr "" #: ../../c-api/arg.rst:430 msgid "" "Note that any Python object references which are provided to the caller are " "*borrowed* references; do not release them (i.e. do not decrement their " "reference count)!" msgstr "" #: ../../c-api/arg.rst:434 msgid "" "Additional arguments passed to these functions must be addresses of " "variables whose type is determined by the format string; these are used to " "store values from the input tuple. There are a few cases, as described in " "the list of format units above, where these parameters are used as input " "values; they should match what is specified for the corresponding format " "unit in that case." msgstr "" #: ../../c-api/arg.rst:440 msgid "" "For the conversion to succeed, the *arg* object must match the format and " "the format must be exhausted. On success, the ``PyArg_Parse*`` functions " "return true, otherwise they return false and raise an appropriate exception." " When the ``PyArg_Parse*`` functions fail due to conversion failure in one " "of the format units, the variables at the addresses corresponding to that " "and the following format units are left untouched." msgstr "" #: ../../c-api/arg.rst:449 msgid "API Functions" msgstr "Fungsi-fungsi API" #: ../../c-api/arg.rst:453 msgid "" "Parse the parameters of a function that takes only positional parameters " "into local variables. Returns true on success; on failure, it returns false" " and raises the appropriate exception." msgstr "" #: ../../c-api/arg.rst:460 msgid "" "Identical to :c:func:`PyArg_ParseTuple`, except that it accepts a va_list " "rather than a variable number of arguments." msgstr "" #: ../../c-api/arg.rst:466 msgid "" "Parse the parameters of a function that takes both positional and keyword " "parameters into local variables. The *keywords* argument is a " "``NULL``-terminated array of keyword parameter names specified as null-" "terminated ASCII or UTF-8 encoded C strings. Empty names denote " ":ref:`positional-only parameters `. Returns true " "on success; on failure, it returns false and raises the appropriate " "exception." msgstr "" #: ../../c-api/arg.rst:477 msgid "" "The *keywords* parameter declaration is :c:expr:`char * const *` in C and " ":c:expr:`const char * const *` in C++. This can be overridden with the " ":c:macro:`PY_CXX_CONST` macro." msgstr "" #: ../../c-api/arg.rst:481 msgid "" "Added support for :ref:`positional-only parameters `." msgstr "" #: ../../c-api/arg.rst:485 msgid "" "The *keywords* parameter has now type :c:expr:`char * const *` in C and " ":c:expr:`const char * const *` in C++, instead of :c:expr:`char **`. Added " "support for non-ASCII keyword parameter names." msgstr "" #: ../../c-api/arg.rst:494 msgid "" "Identical to :c:func:`PyArg_ParseTupleAndKeywords`, except that it accepts a" " va_list rather than a variable number of arguments." msgstr "" #: ../../c-api/arg.rst:500 msgid "" "Ensure that the keys in the keywords argument dictionary are strings. This " "is only needed if :c:func:`PyArg_ParseTupleAndKeywords` is not used, since " "the latter already does this check." msgstr "" #: ../../c-api/arg.rst:509 msgid "" "Parse the parameter of a function that takes a single positional parameter " "into a local variable. Returns true on success; on failure, it returns " "false and raises the appropriate exception." msgstr "" #: ../../c-api/arg.rst:513 msgid "Example::" msgstr "Contoh::" #: ../../c-api/arg.rst:515 msgid "" "// Function using METH_O calling convention\n" "static PyObject*\n" "my_function(PyObject *module, PyObject *arg)\n" "{\n" " int value;\n" " if (!PyArg_Parse(arg, \"i:my_function\", &value)) {\n" " return NULL;\n" " }\n" " // ... use value ...\n" "}" msgstr "" #: ../../c-api/arg.rst:529 msgid "" "A simpler form of parameter retrieval which does not use a format string to " "specify the types of the arguments. Functions which use this method to " "retrieve their parameters should be declared as :c:macro:`METH_VARARGS` in " "function or method tables. The tuple containing the actual parameters " "should be passed as *args*; it must actually be a tuple. The length of the " "tuple must be at least *min* and no more than *max*; *min* and *max* may be " "equal. Additional arguments must be passed to the function, each of which " "should be a pointer to a :c:expr:`PyObject*` variable; these will be filled " "in with the values from *args*; they will contain :term:`borrowed references" " `. The variables which correspond to optional " "parameters not given by *args* will not be filled in; these should be " "initialized by the caller. This function returns true on success and false " "if *args* is not a tuple or contains the wrong number of elements; an " "exception will be set if there was a failure." msgstr "" #: ../../c-api/arg.rst:544 msgid "" "This is an example of the use of this function, taken from the sources for " "the :mod:`!_weakref` helper module for weak references::" msgstr "" #: ../../c-api/arg.rst:547 msgid "" "static PyObject *\n" "weakref_ref(PyObject *self, PyObject *args)\n" "{\n" " PyObject *object;\n" " PyObject *callback = NULL;\n" " PyObject *result = NULL;\n" "\n" " if (PyArg_UnpackTuple(args, \"ref\", 1, 2, &object, &callback)) {\n" " result = PyWeakref_NewRef(object, callback);\n" " }\n" " return result;\n" "}" msgstr "" #: ../../c-api/arg.rst:560 msgid "" "The call to :c:func:`PyArg_UnpackTuple` in this example is entirely " "equivalent to this call to :c:func:`PyArg_ParseTuple`::" msgstr "" #: ../../c-api/arg.rst:563 msgid "PyArg_ParseTuple(args, \"O|O:ref\", &object, &callback)" msgstr "" #: ../../c-api/arg.rst:567 msgid "" "The value to be inserted, if any, before :c:expr:`char * const *` in the " "*keywords* parameter declaration of :c:func:`PyArg_ParseTupleAndKeywords` " "and :c:func:`PyArg_VaParseTupleAndKeywords`. Default empty for C and " "``const`` for C++ (:c:expr:`const char * const *`). To override, define it " "to the desired value before including :file:`Python.h`." msgstr "" #: ../../c-api/arg.rst:581 msgid "Building values" msgstr "Membangun nilai" #: ../../c-api/arg.rst:585 msgid "" "Create a new value based on a format string similar to those accepted by the" " ``PyArg_Parse*`` family of functions and a sequence of values. Returns the" " value or ``NULL`` in the case of an error; an exception will be raised if " "``NULL`` is returned." msgstr "" #: ../../c-api/arg.rst:590 msgid "" ":c:func:`Py_BuildValue` does not always build a tuple. It builds a tuple " "only if its format string contains two or more format units. If the format " "string is empty, it returns ``None``; if it contains exactly one format " "unit, it returns whatever object is described by that format unit. To force" " it to return a tuple of size 0 or one, parenthesize the format string." msgstr "" #: ../../c-api/arg.rst:596 msgid "" "When memory buffers are passed as parameters to supply data to build " "objects, as for the ``s`` and ``s#`` formats, the required data is copied. " "Buffers provided by the caller are never referenced by the objects created " "by :c:func:`Py_BuildValue`. In other words, if your code invokes " ":c:func:`malloc` and passes the allocated memory to :c:func:`Py_BuildValue`," " your code is responsible for calling :c:func:`free` for that memory once " ":c:func:`Py_BuildValue` returns." msgstr "" #: ../../c-api/arg.rst:604 msgid "" "In the following description, the quoted form is the format unit; the entry " "in (round) parentheses is the Python object type that the format unit will " "return; and the entry in [square] brackets is the type of the C value(s) to " "be passed." msgstr "" #: ../../c-api/arg.rst:608 msgid "" "The characters space, tab, colon and comma are ignored in format strings " "(but not within format units such as ``s#``). This can be used to make long" " format strings a tad more readable." msgstr "" #: ../../c-api/arg.rst:612 msgid "``s`` (:class:`str` or ``None``) [const char \\*]" msgstr "``s`` (:class:`str` atau ``None``) [const char \\*]" #: ../../c-api/arg.rst:613 msgid "" "Convert a null-terminated C string to a Python :class:`str` object using " "``'utf-8'`` encoding. If the C string pointer is ``NULL``, ``None`` is used." msgstr "" #: ../../c-api/arg.rst:616 msgid "``s#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" #: ../../c-api/arg.rst:617 msgid "" "Convert a C string and its length to a Python :class:`str` object using " "``'utf-8'`` encoding. If the C string pointer is ``NULL``, the length is " "ignored and ``None`` is returned." msgstr "" #: ../../c-api/arg.rst:621 msgid "``y`` (:class:`bytes`) [const char \\*]" msgstr "``y`` (:class:`bytes`) [const char \\*]" #: ../../c-api/arg.rst:622 msgid "" "This converts a C string to a Python :class:`bytes` object. If the C string" " pointer is ``NULL``, ``None`` is returned." msgstr "" #: ../../c-api/arg.rst:625 msgid "``y#`` (:class:`bytes`) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" #: ../../c-api/arg.rst:626 msgid "" "This converts a C string and its lengths to a Python object. If the C " "string pointer is ``NULL``, ``None`` is returned." msgstr "" #: ../../c-api/arg.rst:630 ../../c-api/arg.rst:646 msgid "Same as ``s``." msgstr "Sama seperti ``s``." #: ../../c-api/arg.rst:632 msgid "``z#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" #: ../../c-api/arg.rst:633 ../../c-api/arg.rst:649 msgid "Same as ``s#``." msgstr "Sama seperti ``s#``." #: ../../c-api/arg.rst:635 msgid "``u`` (:class:`str`) [const wchar_t \\*]" msgstr "``u`` (:class:`str`) [const wchar_t \\*]" #: ../../c-api/arg.rst:636 msgid "" "Convert a null-terminated :c:type:`wchar_t` buffer of Unicode (UTF-16 or " "UCS-4) data to a Python Unicode object. If the Unicode buffer pointer is " "``NULL``, ``None`` is returned." msgstr "" #: ../../c-api/arg.rst:640 msgid "``u#`` (:class:`str`) [const wchar_t \\*, :c:type:`Py_ssize_t`]" msgstr "" #: ../../c-api/arg.rst:641 msgid "" "Convert a Unicode (UTF-16 or UCS-4) data buffer and its length to a Python " "Unicode object. If the Unicode buffer pointer is ``NULL``, the length is " "ignored and ``None`` is returned." msgstr "" #: ../../c-api/arg.rst:645 msgid "``U`` (:class:`str` or ``None``) [const char \\*]" msgstr "``U`` (:class:`str` atau ``None``) [const char \\*]" #: ../../c-api/arg.rst:648 msgid "``U#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" #: ../../c-api/arg.rst:652 msgid "Convert a plain C :c:expr:`int` to a Python integer object." msgstr "" #: ../../c-api/arg.rst:654 msgid "``b`` (:class:`int`) [char]" msgstr "``b`` (:class:`int`) [char]" #: ../../c-api/arg.rst:655 msgid "Convert a plain C :c:expr:`char` to a Python integer object." msgstr "" #: ../../c-api/arg.rst:658 msgid "Convert a plain C :c:expr:`short int` to a Python integer object." msgstr "" #: ../../c-api/arg.rst:661 msgid "Convert a C :c:expr:`long int` to a Python integer object." msgstr "" #: ../../c-api/arg.rst:664 msgid "Convert a C :c:expr:`unsigned char` to a Python integer object." msgstr "" #: ../../c-api/arg.rst:667 msgid "Convert a C :c:expr:`unsigned short int` to a Python integer object." msgstr "" #: ../../c-api/arg.rst:670 msgid "Convert a C :c:expr:`unsigned int` to a Python integer object." msgstr "" #: ../../c-api/arg.rst:673 msgid "Convert a C :c:expr:`unsigned long` to a Python integer object." msgstr "" #: ../../c-api/arg.rst:676 msgid "Convert a C :c:expr:`long long` to a Python integer object." msgstr "" #: ../../c-api/arg.rst:681 msgid "Convert a C :c:expr:`unsigned long long` to a Python integer object." msgstr "" #: ../../c-api/arg.rst:684 msgid "Convert a C :c:type:`Py_ssize_t` to a Python integer." msgstr "" #: ../../c-api/arg.rst:687 msgid "" "Convert a C :c:expr:`int` to a Python :class:`bool` object. .. " "versionadded:: 3.14" msgstr "" #: ../../c-api/arg.rst:690 msgid "``c`` (:class:`bytes` of length 1) [char]" msgstr "``c`` (:class:`bytes` dengan panjang 1) [char]" #: ../../c-api/arg.rst:691 msgid "" "Convert a C :c:expr:`int` representing a byte to a Python :class:`bytes` " "object of length 1." msgstr "" #: ../../c-api/arg.rst:695 msgid "" "Convert a C :c:expr:`int` representing a character to Python :class:`str` " "object of length 1." msgstr "" #: ../../c-api/arg.rst:699 msgid "Convert a C :c:expr:`double` to a Python floating-point number." msgstr "" #: ../../c-api/arg.rst:702 msgid "Convert a C :c:expr:`float` to a Python floating-point number." msgstr "" #: ../../c-api/arg.rst:704 msgid "``D`` (:class:`complex`) [Py_complex \\*]" msgstr "``D`` (:class:`complex`) [Py_complex \\*]" #: ../../c-api/arg.rst:705 msgid "Convert a C :c:type:`Py_complex` structure to a Python complex number." msgstr "" #: ../../c-api/arg.rst:708 msgid "" "Pass a Python object untouched but create a new :term:`strong reference` to " "it (i.e. its reference count is incremented by one). If the object passed in" " is a ``NULL`` pointer, it is assumed that this was caused because the call " "producing the argument found an error and set an exception. Therefore, " ":c:func:`Py_BuildValue` will return ``NULL`` but won't raise an exception. " "If no exception has been raised yet, :exc:`SystemError` is set." msgstr "" #: ../../c-api/arg.rst:717 msgid "``S`` (object) [PyObject \\*]" msgstr "``S`` (object) [PyObject \\*]" #: ../../c-api/arg.rst:718 msgid "Same as ``O``." msgstr "Sama seperti ``O``." #: ../../c-api/arg.rst:720 msgid "``N`` (object) [PyObject \\*]" msgstr "``N`` (object) [PyObject \\*]" #: ../../c-api/arg.rst:721 msgid "" "Same as ``O``, except it doesn't create a new :term:`strong reference`. " "Useful when the object is created by a call to an object constructor in the " "argument list." msgstr "" #: ../../c-api/arg.rst:725 msgid "``O&`` (object) [*converter*, *anything*]" msgstr "``O&`` (object) [*converter*, *anything*]" #: ../../c-api/arg.rst:726 msgid "" "Convert *anything* to a Python object through a *converter* function. The " "function is called with *anything* (which should be compatible with " ":c:expr:`void*`) as its argument and should return a \"new\" Python object, " "or ``NULL`` if an error occurred." msgstr "" #: ../../c-api/arg.rst:731 msgid "``(items)`` (:class:`tuple`) [*matching-items*]" msgstr "``(items)`` (:class:`tuple`) [*matching-items*]" #: ../../c-api/arg.rst:732 msgid "" "Convert a sequence of C values to a Python tuple with the same number of " "items." msgstr "" #: ../../c-api/arg.rst:734 msgid "``[items]`` (:class:`list`) [*matching-items*]" msgstr "" #: ../../c-api/arg.rst:735 msgid "" "Convert a sequence of C values to a Python list with the same number of " "items." msgstr "" #: ../../c-api/arg.rst:737 msgid "``{items}`` (:class:`dict`) [*matching-items*]" msgstr "``{items}`` (:class:`dict`) [*matching-items*]" #: ../../c-api/arg.rst:738 msgid "" "Convert a sequence of C values to a Python dictionary. Each pair of " "consecutive C values adds one item to the dictionary, serving as key and " "value, respectively." msgstr "" #: ../../c-api/arg.rst:742 msgid "" "If there is an error in the format string, the :exc:`SystemError` exception " "is set and ``NULL`` returned." msgstr "" #: ../../c-api/arg.rst:747 msgid "" "Identical to :c:func:`Py_BuildValue`, except that it accepts a va_list " "rather than a variable number of arguments." msgstr ""