# 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: # Alireza Shabani (Revisto) , 2025 # Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-07-11 14:21+0000\n" "PO-Revision-Date: 2021-06-28 00:49+0000\n" "Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" "fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../c-api/module.rst:6 msgid "Module Objects" 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``." msgstr "" #: ../../c-api/module.rst:21 msgid "" "Return true if *p* is a module object, or a subtype of a module object. This " "function always succeeds." msgstr "" #: ../../c-api/module.rst:27 msgid "" "Return true if *p* is a module object, but not a subtype of :c:data:" "`PyModule_Type`. This function always succeeds." msgstr "" #: ../../c-api/module.rst:40 msgid "" "Return a new module object with :attr:`module.__name__` set to *name*. The " "module's :attr:`!__name__`, :attr:`~module.__doc__`, :attr:`~module." "__package__` and :attr:`~module.__loader__` attributes are filled in (all " "but :attr:`!__name__` are set to ``None``). The caller is responsible for " "setting a :attr:`~module.__file__` attribute." msgstr "" #: ../../c-api/module.rst:46 ../../c-api/module.rst:416 #: ../../c-api/module.rst:443 msgid "Return ``NULL`` with an exception set on error." msgstr "" #: ../../c-api/module.rst:50 msgid "" ":attr:`~module.__package__` and :attr:`~module.__loader__` are now set to " "``None``." msgstr "" #: ../../c-api/module.rst:57 msgid "" "Similar to :c:func:`PyModule_NewObject`, but the name is a UTF-8 encoded " "string instead of a Unicode object." msgstr "" #: ../../c-api/module.rst:65 msgid "" "Return the dictionary object that implements *module*'s namespace; this " "object is the same as the :attr:`~object.__dict__` attribute of the module " "object. If *module* is not a module object (or a subtype of a module " "object), :exc:`SystemError` is raised and ``NULL`` is returned." msgstr "" #: ../../c-api/module.rst:70 msgid "" "It is recommended extensions use other ``PyModule_*`` and ``PyObject_*`` " "functions rather than directly manipulate a module's :attr:`~object." "__dict__`." msgstr "" #: ../../c-api/module.rst:81 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 msgid "" "Similar to :c:func:`PyModule_GetNameObject` but return the name encoded to " "``'utf-8'``." msgstr "" #: ../../c-api/module.rst:95 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 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." msgstr "" #: ../../c-api/module.rst:112 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 msgid "" "Similar to :c:func:`PyModule_GetFilenameObject` but return the filename " "encoded to 'utf-8'." msgstr "" #: ../../c-api/module.rst:125 msgid "" ":c:func:`PyModule_GetFilename` raises :exc:`UnicodeEncodeError` on " "unencodable filenames, use :c:func:`PyModule_GetFilenameObject` instead." msgstr "" #: ../../c-api/module.rst:133 msgid "Module definitions" msgstr "" #: ../../c-api/module.rst:135 msgid "" "The functions in the previous section work on any module object, including " "modules imported from Python code." msgstr "" #: ../../c-api/module.rst:138 msgid "" "Modules defined using the C API typically use a *module definition*, :c:type:" "`PyModuleDef` -- a statically allocated, constant “description\" of how a " "module should be created." msgstr "" #: ../../c-api/module.rst:142 msgid "" "The definition is usually used to define an extension's “main” module object " "(see :ref:`extension-modules` for details). It is also used to :ref:`create " "extension modules dynamically `." msgstr "" #: ../../c-api/module.rst:147 msgid "" "Unlike :c:func:`PyModule_New`, the definition allows management of *module " "state* -- a piece of memory that is allocated and cleared together with the " "module object. Unlike the module's Python attributes, Python code cannot " "replace or delete data stored in module state." msgstr "" #: ../../c-api/module.rst:155 msgid "" "The module definition struct, which holds all information needed to create a " "module object. This structure must be statically allocated (or be otherwise " "guaranteed to be valid while any modules created from it exist). Usually, " "there is only one variable of this type for each extension module." msgstr "" #: ../../c-api/module.rst:163 msgid "Always initialize this member to :c:macro:`PyModuleDef_HEAD_INIT`." msgstr "" #: ../../c-api/module.rst:167 msgid "Name for the new module." msgstr "" #: ../../c-api/module.rst:171 msgid "" "Docstring for the module; usually a docstring variable created with :c:macro:" "`PyDoc_STRVAR` is used." msgstr "" #: ../../c-api/module.rst:176 msgid "" "Module state may be kept in a per-module memory area that can be retrieved " "with :c:func:`PyModule_GetState`, rather than in static globals. This makes " "modules safe for use in multiple sub-interpreters." msgstr "" #: ../../c-api/module.rst:180 msgid "" "This memory area is allocated based on *m_size* on module creation, and " "freed when the module object is deallocated, after the :c:member:" "`~PyModuleDef.m_free` function has been called, if present." msgstr "" #: ../../c-api/module.rst:184 msgid "" "Setting it to a non-negative value means that the module can be re-" "initialized and specifies the additional amount of memory it requires for " "its state." msgstr "" #: ../../c-api/module.rst:188 msgid "" "Setting ``m_size`` to ``-1`` means that the module does not support sub-" "interpreters, because it has global state. Negative ``m_size`` is only " "allowed when using :ref:`legacy single-phase initialization ` or when :ref:`creating modules dynamically `." msgstr "" #: ../../c-api/module.rst:194 msgid "See :PEP:`3121` for more details." msgstr "" #: ../../c-api/module.rst:198 msgid "" "A pointer to a table of module-level functions, described by :c:type:" "`PyMethodDef` values. Can be ``NULL`` if no functions are present." msgstr "" #: ../../c-api/module.rst:203 msgid "" "An array of slot definitions for multi-phase initialization, terminated by a " "``{0, NULL}`` entry. When using legacy single-phase initialization, " "*m_slots* must be ``NULL``." msgstr "" #: ../../c-api/module.rst:209 msgid "" "Prior to version 3.5, this member was always set to ``NULL``, and was " "defined as:" msgstr "" #: ../../c-api/module.rst:216 msgid "" "A traversal function to call during GC traversal of the module object, or " "``NULL`` if not needed." msgstr "" #: ../../c-api/module.rst:219 ../../c-api/module.rst:234 #: ../../c-api/module.rst:255 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 " "before the module is executed (:c:data:`Py_mod_exec` function). More " "precisely, this function is not called if :c:member:`~PyModuleDef.m_size` is " "greater than 0 and the module state (as returned by :c:func:" "`PyModule_GetState`) is ``NULL``." msgstr "" #: ../../c-api/module.rst:226 ../../c-api/module.rst:247 #: ../../c-api/module.rst:262 msgid "No longer called before the module state is allocated." msgstr "" #: ../../c-api/module.rst:231 msgid "" "A clear function to call during GC clearing of the module object, or " "``NULL`` if not needed." msgstr "" #: ../../c-api/module.rst:241 msgid "" "Like :c:member:`PyTypeObject.tp_clear`, this function is not *always* called " "before a module is deallocated. For example, when reference counting is " "enough to determine that an object is no longer used, the cyclic garbage " "collector is not involved and :c:member:`~PyModuleDef.m_free` is called " "directly." msgstr "" #: ../../c-api/module.rst:252 msgid "" "A function to call during deallocation of the module object, or ``NULL`` if " "not needed." msgstr "" #: ../../c-api/module.rst:267 msgid "Module slots" msgstr "" #: ../../c-api/module.rst:273 msgid "A slot ID, chosen from the available values explained below." msgstr "" #: ../../c-api/module.rst:277 msgid "Value of the slot, whose meaning depends on the slot ID." msgstr "" #: ../../c-api/module.rst:281 msgid "The available slot types are:" msgstr "" #: ../../c-api/module.rst:285 msgid "" "Specifies a function that is called to create the module object itself. The " "*value* pointer of this slot must point to a function of the signature:" msgstr "" #: ../../c-api/module.rst:292 msgid "" "The function receives a :py:class:`~importlib.machinery.ModuleSpec` " "instance, as defined in :PEP:`451`, and the module definition. It should " "return a new module object, or set an error and return ``NULL``." msgstr "" #: ../../c-api/module.rst:297 msgid "" "This function should be kept minimal. In particular, it should not call " "arbitrary Python code, as trying to import the same module again may result " "in an infinite loop." msgstr "" #: ../../c-api/module.rst:301 msgid "" "Multiple ``Py_mod_create`` slots may not be specified in one module " "definition." msgstr "" #: ../../c-api/module.rst:304 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 " "*spec*, not the definition, to allow extension modules to dynamically adjust " "to their place in the module hierarchy and be imported under different names " "through symlinks, all while sharing a single module definition." msgstr "" #: ../../c-api/module.rst:310 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 " "getting import-related attributes. However, only ``PyModule_Type`` instances " "may be returned if the ``PyModuleDef`` has non-``NULL`` ``m_traverse``, " "``m_clear``, ``m_free``; non-zero ``m_size``; or slots other than " "``Py_mod_create``." msgstr "" #: ../../c-api/module.rst:319 msgid "" "Specifies a function that is called to *execute* the module. This is " "equivalent to executing the code of a Python module: typically, this " "function adds classes and constants to the module. The signature of the " "function is:" msgstr "" #: ../../c-api/module.rst:328 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:333 ../../c-api/module.rst:366 msgid "Specifies one of the following values:" msgstr "" #: ../../c-api/module.rst:339 msgid "The module does not support being imported in subinterpreters." msgstr "" #: ../../c-api/module.rst:343 msgid "" "The module supports being imported in subinterpreters, but only when they " "share the main interpreter's GIL. (See :ref:`isolating-extensions-howto`.)" msgstr "" #: ../../c-api/module.rst:349 msgid "" "The module supports being imported in subinterpreters, even when they have " "their own GIL. (See :ref:`isolating-extensions-howto`.)" msgstr "" #: ../../c-api/module.rst:353 msgid "" "This slot determines whether or not importing this module in a " "subinterpreter will fail." msgstr "" #: ../../c-api/module.rst:356 msgid "" "Multiple ``Py_mod_multiple_interpreters`` slots may not be specified in one " "module definition." msgstr "" #: ../../c-api/module.rst:359 msgid "" "If ``Py_mod_multiple_interpreters`` is not specified, the import machinery " "defaults to ``Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED``." msgstr "" #: ../../c-api/module.rst:372 msgid "" "The module depends on the presence of the global interpreter lock (GIL), and " "may access global state without synchronization." msgstr "" #: ../../c-api/module.rst:377 msgid "The module is safe to run without an active GIL." msgstr "" #: ../../c-api/module.rst:379 msgid "" "This slot is ignored by Python builds not configured with :option:`--disable-" "gil`. Otherwise, it determines whether or not importing this module will " "cause the GIL to be automatically enabled. See :ref:`whatsnew313-free-" "threaded-cpython` for more detail." msgstr "" #: ../../c-api/module.rst:384 msgid "" "Multiple ``Py_mod_gil`` slots may not be specified in one module definition." msgstr "" #: ../../c-api/module.rst:386 msgid "" "If ``Py_mod_gil`` is not specified, the import machinery defaults to " "``Py_MOD_GIL_USED``." msgstr "" #: ../../c-api/module.rst:395 msgid "Creating extension modules dynamically" msgstr "" #: ../../c-api/module.rst:397 msgid "" "The following functions may be used to create a module outside of an " "extension's :ref:`initialization function `. They are " "also used in :ref:`single-phase initialization `." msgstr "" #: ../../c-api/module.rst:404 msgid "" "Create a new module object, given the definition in *def*. This is a macro " "that calls :c:func:`PyModule_Create2` with *module_api_version* set to :c:" "macro:`PYTHON_API_VERSION`, or to :c:macro:`PYTHON_ABI_VERSION` if using " "the :ref:`limited API `." msgstr "" #: ../../c-api/module.rst:412 msgid "" "Create a new module object, given the definition in *def*, assuming the API " "version *module_api_version*. If that version does not match the version of " "the running interpreter, a :exc:`RuntimeWarning` is emitted." msgstr "" #: ../../c-api/module.rst:418 msgid "" "This function does not support slots. The :c:member:`~PyModuleDef.m_slots` " "member of *def* must be ``NULL``." msgstr "" #: ../../c-api/module.rst:424 msgid "" "Most uses of this function should be using :c:func:`PyModule_Create` " "instead; only use this if you are sure you need it." msgstr "" #: ../../c-api/module.rst:429 msgid "" "This macro calls :c:func:`PyModule_FromDefAndSpec2` with " "*module_api_version* set to :c:macro:`PYTHON_API_VERSION`, or to :c:macro:" "`PYTHON_ABI_VERSION` if using the :ref:`limited API `." msgstr "" #: ../../c-api/module.rst:438 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 " "not match the version of the running interpreter, a :exc:`RuntimeWarning` is " "emitted." msgstr "" #: ../../c-api/module.rst:445 msgid "" "Note that this does not process execution slots (:c:data:`Py_mod_exec`). " "Both ``PyModule_FromDefAndSpec`` and ``PyModule_ExecDef`` must be called to " "fully initialize a module." msgstr "" #: ../../c-api/module.rst:451 msgid "" "Most uses of this function should be using :c:func:`PyModule_FromDefAndSpec` " "instead; only use this if you are sure you need it." msgstr "" #: ../../c-api/module.rst:458 msgid "Process any execution slots (:c:data:`Py_mod_exec`) given in *def*." msgstr "" #: ../../c-api/module.rst:464 msgid "The C API version. Defined for backwards compatibility." msgstr "" #: ../../c-api/module.rst:466 ../../c-api/module.rst:473 msgid "" "Currently, this constant is not updated in new Python versions, and is not " "useful for versioning. This may change in the future." msgstr "" #: ../../c-api/module.rst:471 msgid "Defined as ``3`` for backwards compatibility." msgstr "" #: ../../c-api/module.rst:478 msgid "Support functions" msgstr "" #: ../../c-api/module.rst:480 msgid "" "The following functions are provided to help initialize a module state. They " "are intended for a module's execution slots (:c:data:`Py_mod_exec`), the " "initialization function for legacy :ref:`single-phase initialization `, or code that creates modules dynamically." msgstr "" #: ../../c-api/module.rst:488 msgid "" "Add an object to *module* as *name*. This is a convenience function which " "can be used from the module's initialization function." msgstr "" #: ../../c-api/module.rst:491 msgid "" "On success, return ``0``. On error, raise an exception and return ``-1``." msgstr "" #: ../../c-api/module.rst:493 ../../c-api/module.rst:544 #: ../../c-api/module.rst:571 msgid "Example usage::" msgstr "" #: ../../c-api/module.rst:495 msgid "" "static int\n" "add_spam(PyObject *module, int value)\n" "{\n" " PyObject *obj = PyLong_FromLong(value);\n" " if (obj == NULL) {\n" " return -1;\n" " }\n" " int res = PyModule_AddObjectRef(module, \"spam\", obj);\n" " Py_DECREF(obj);\n" " return res;\n" " }" msgstr "" #: ../../c-api/module.rst:507 msgid "" "To be convenient, the function accepts ``NULL`` *value* with an exception " "set. In this case, return ``-1`` and just leave the raised exception " "unchanged." msgstr "" #: ../../c-api/module.rst:511 msgid "" "The example can also be written without checking explicitly if *obj* is " "``NULL``::" msgstr "" #: ../../c-api/module.rst:514 msgid "" "static int\n" "add_spam(PyObject *module, int value)\n" "{\n" " PyObject *obj = PyLong_FromLong(value);\n" " int res = PyModule_AddObjectRef(module, \"spam\", obj);\n" " Py_XDECREF(obj);\n" " return res;\n" " }" msgstr "" #: ../../c-api/module.rst:523 msgid "" "Note that ``Py_XDECREF()`` should be used instead of ``Py_DECREF()`` in this " "case, since *obj* can be ``NULL``." msgstr "" #: ../../c-api/module.rst:526 msgid "" "The number of different *name* strings passed to this function should be " "kept small, usually by only using statically allocated strings as *name*. " "For names that aren't known at compile time, prefer calling :c:func:" "`PyUnicode_FromString` and :c:func:`PyObject_SetAttr` directly. For more " "details, see :c:func:`PyUnicode_InternFromString`, which may be used " "internally to create a key object." msgstr "" #: ../../c-api/module.rst:539 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 " "reference without bothering to check its result or even saving it to a " "variable." msgstr "" #: ../../c-api/module.rst:546 msgid "" "if (PyModule_Add(module, \"spam\", PyBytes_FromString(value)) < 0) {\n" " goto error;\n" "}" msgstr "" #: ../../c-api/module.rst:555 msgid "" "Similar to :c:func:`PyModule_AddObjectRef`, but steals a reference to " "*value* on success (if it returns ``0``)." msgstr "" #: ../../c-api/module.rst:558 msgid "" "The new :c:func:`PyModule_Add` or :c:func:`PyModule_AddObjectRef` functions " "are recommended, since it is easy to introduce reference leaks by misusing " "the :c:func:`PyModule_AddObject` function." msgstr "" #: ../../c-api/module.rst:565 msgid "" "Unlike other functions that steal references, ``PyModule_AddObject()`` only " "releases the reference to *value* **on success**." msgstr "" #: ../../c-api/module.rst:568 msgid "" "This means that its return value must be checked, and calling code must :c:" "func:`Py_XDECREF` *value* manually on error." msgstr "" #: ../../c-api/module.rst:573 msgid "" "PyObject *obj = PyBytes_FromString(value);\n" "if (PyModule_AddObject(module, \"spam\", obj) < 0) {\n" " // If 'obj' is not NULL and PyModule_AddObject() failed,\n" " // 'obj' strong reference must be deleted with Py_XDECREF().\n" " // If 'obj' is NULL, Py_XDECREF() does nothing.\n" " Py_XDECREF(obj);\n" " goto error;\n" "}\n" "// PyModule_AddObject() stole a reference to obj:\n" "// Py_XDECREF(obj) is not needed here." msgstr "" #: ../../c-api/module.rst:586 msgid ":c:func:`PyModule_AddObject` is :term:`soft deprecated`." msgstr "" #: ../../c-api/module.rst:591 msgid "" "Add an integer constant to *module* as *name*. This convenience function " "can be used from the module's initialization function. Return ``-1`` with an " "exception set on error, ``0`` on success." msgstr "" #: ../../c-api/module.rst:595 msgid "" "This is a convenience function that calls :c:func:`PyLong_FromLong` and :c:" "func:`PyModule_AddObjectRef`; see their documentation for details." msgstr "" #: ../../c-api/module.rst:601 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 " "be ``NULL``-terminated. Return ``-1`` with an exception set on error, ``0`` " "on success." msgstr "" #: ../../c-api/module.rst:606 msgid "" "This is a convenience function that calls :c:func:" "`PyUnicode_InternFromString` and :c:func:`PyModule_AddObjectRef`; see their " "documentation for details." msgstr "" #: ../../c-api/module.rst:613 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 " "constant *AF_INET* with the value of *AF_INET* to *module*. Return ``-1`` " "with an exception set on error, ``0`` on success." msgstr "" #: ../../c-api/module.rst:621 msgid "Add a string constant to *module*." msgstr "" #: ../../c-api/module.rst:625 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 " "the last component of :c:member:`~PyTypeObject.tp_name` after dot. Return " "``-1`` with an exception set on error, ``0`` on success." msgstr "" #: ../../c-api/module.rst:635 msgid "" "Add the functions from the ``NULL`` terminated *functions* array to " "*module*. Refer to the :c:type:`PyMethodDef` documentation for details on " "individual entries (due to the lack of a shared module namespace, module " "level \"functions\" implemented in C typically receive the module as their " "first parameter, making them similar to instance methods on Python classes)." msgstr "" #: ../../c-api/module.rst:641 msgid "" "This function is called automatically when creating a module from " "``PyModuleDef`` (such as when using :ref:`multi-phase-initialization`, " "``PyModule_Create``, or ``PyModule_FromDefAndSpec``). Some module authors " "may prefer defining functions in multiple :c:type:`PyMethodDef` arrays; in " "that case they should call this function directly." msgstr "" #: ../../c-api/module.rst:652 msgid "" "Set the docstring for *module* to *docstring*. This function is called " "automatically when creating a module from ``PyModuleDef`` (such as when " "using :ref:`multi-phase-initialization`, ``PyModule_Create``, or " "``PyModule_FromDefAndSpec``)." msgstr "" #: ../../c-api/module.rst:661 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`. " "It must be called during *module*'s initialization function when using :ref:" "`single-phase-initialization`. If this function is not called during module " "initialization, the import machinery assumes the module does not support " "running without the GIL. This function is only available in Python builds " "configured with :option:`--disable-gil`. Return ``-1`` with an exception set " "on error, ``0`` on success." msgstr "" #: ../../c-api/module.rst:675 msgid "Module lookup (single-phase initialization)" msgstr "" #: ../../c-api/module.rst:677 msgid "" "The legacy :ref:`single-phase initialization ` " "initialization scheme 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:682 msgid "" "These functions will not work on modules created using multi-phase " "initialization, since multiple such modules can be created from a single " "definition." msgstr "" #: ../../c-api/module.rst:687 msgid "" "Returns the module object that was created from *def* for the current " "interpreter. This method requires that the module object has been attached " "to the interpreter state with :c:func:`PyState_AddModule` beforehand. In " "case the corresponding module object is not found or has not been attached " "to the interpreter state yet, it returns ``NULL``." msgstr "" #: ../../c-api/module.rst:694 msgid "" "Attaches the module object passed to the function to the interpreter state. " "This allows the module object to be accessible via :c:func:" "`PyState_FindModule`." msgstr "" #: ../../c-api/module.rst:697 msgid "Only effective on modules created using single-phase initialization." msgstr "" #: ../../c-api/module.rst:699 msgid "" "Python calls ``PyState_AddModule`` automatically after importing a module " "that uses :ref:`single-phase initialization `, " "so it is unnecessary (but harmless) to call it from module initialization " "code. An explicit call is needed only if the module's own init code " "subsequently calls ``PyState_FindModule``. The function is mainly intended " "for implementing alternative import mechanisms (either by calling it " "directly, or by referring to its implementation for details of the required " "state updates)." msgstr "" #: ../../c-api/module.rst:708 msgid "" "If a module was attached previously using the same *def*, it is replaced by " "the new *module*." msgstr "" #: ../../c-api/module.rst:711 ../../c-api/module.rst:722 msgid "The caller must have an :term:`attached thread state`." msgstr "" #: ../../c-api/module.rst:713 msgid "Return ``-1`` with an exception set on error, ``0`` on success." msgstr "" #: ../../c-api/module.rst:719 msgid "" "Removes the module object created from *def* from the interpreter state. " "Return ``-1`` with an exception set on error, ``0`` on success." msgstr "" #: ../../c-api/module.rst:8 msgid "object" msgstr "" #: ../../c-api/module.rst:8 msgid "module" msgstr "" #: ../../c-api/module.rst:13 msgid "ModuleType (in module types)" msgstr "" #: ../../c-api/module.rst:33 ../../c-api/module.rst:77 msgid "__name__ (module attribute)" msgstr "" #: ../../c-api/module.rst:33 msgid "__doc__ (module attribute)" msgstr "" #: ../../c-api/module.rst:33 ../../c-api/module.rst:108 msgid "__file__ (module attribute)" msgstr "" #: ../../c-api/module.rst:33 msgid "__package__ (module attribute)" msgstr "" #: ../../c-api/module.rst:33 msgid "__loader__ (module attribute)" msgstr "" #: ../../c-api/module.rst:63 msgid "__dict__ (module attribute)" msgstr "" #: ../../c-api/module.rst:77 ../../c-api/module.rst:108 msgid "SystemError (built-in exception)" msgstr ""