Skip to content

Traddución de library/importlib #3364

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: 3.13
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
492 changes: 366 additions & 126 deletions library/importlib.po
Original file line number Diff line number Diff line change
@@ -11,15 +11,16 @@ msgstr ""
"Project-Id-Version: Python 3.8\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-21 16:38-0300\n"
"PO-Revision-Date: 2022-11-25 00:29+0800\n"
"Last-Translator: Rodrigo Tobar <rtobarc@gmail.com>\n"
"Language: es\n"
"PO-Revision-Date: 2025-01-29 10:47-0300\n"
"Last-Translator: Alfonso Areiza <alfareiza@gmail.com>\n"
"Language-Team: python-doc-es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.5\n"

#: ../Doc/library/importlib.rst:2
msgid ":mod:`!importlib` --- The implementation of :keyword:`!import`"
@@ -35,7 +36,7 @@ msgstr "Introducción"

#: ../Doc/library/importlib.rst:20
msgid "The purpose of the :mod:`importlib` package is three-fold."
msgstr "El propósito del paquete :mod:`importlib` es triple:"
msgstr "El propósito del paquete :mod:`importlib` es triple."

#: ../Doc/library/importlib.rst:22
msgid ""
@@ -409,6 +410,10 @@ msgid ""
"except NameError:\n"
" cache = {}"
msgstr ""
"try:\n"
"cache\n"
"except NameError:\n"
"cache = {}"

#: ../Doc/library/importlib.rst:187
msgid ""
@@ -495,15 +500,23 @@ msgid ""
" +-- FileLoader\n"
" +-- SourceLoader"
msgstr ""
"object\n"
"+-- MetaPathFinder\n"
"+-- PathEntryFinder\n"
"+-- Loader\n"
"+-- ResourceLoader --------+\n"
"+-- InspectLoader |\n"
"+-- ExecutionLoader --+\n"
"+-- FileLoader\n"
"+-- SourceLoader"

#: ../Doc/library/importlib.rst:240
msgid "An abstract base class representing a :term:`meta path finder`."
msgstr "Una clase base abstracta que representa :term:`meta path finder`."

#: ../Doc/library/importlib.rst:244 ../Doc/library/importlib.rst:280
#, fuzzy
msgid "No longer a subclass of :class:`!Finder`."
msgstr "Ya no hereda de :class:`Finder`."
msgstr "Ya no hereda de :class:`!Finder`."

#: ../Doc/library/importlib.rst:249
msgid ""
@@ -538,9 +551,8 @@ msgstr ""
"`sys.meta_path`."

#: ../Doc/library/importlib.rst:267
#, fuzzy
msgid "Returns ``None`` when called instead of :data:`NotImplemented`."
msgstr "Retorna ``None`` cuando se llama en lugar de ``NotImplemented``."
msgstr "Retorna ``None`` cuando se llama en lugar de :data:`NotImplemented`."

#: ../Doc/library/importlib.rst:273
msgid ""
@@ -645,7 +657,6 @@ msgstr ""
"se lanza :exc:`ImportError`; de lo contrario, se retorna el módulo cargado."

#: ../Doc/library/importlib.rst:345
#, fuzzy
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 "
@@ -660,9 +671,8 @@ msgstr ""
"e insertarlo en :data:`sys.modules` antes de que comience la carga, para "
"evitar la recursividad de la importación. Si el cargador insertó un módulo y "
"la carga falla, el cargador debe eliminarlo de :data:`sys.modules`; los "
"módulos que ya están en :data:`sys.modules` antes de que el cargador "
"comenzara a ejecutarse deben dejarse en paz (ver :func:`importlib.util."
"module_for_loader`)."
"módulos que ya estaban en :data:`sys.modules` antes de que el cargador "
"comenzara a ejecutarse deben dejarse intactos."

#: ../Doc/library/importlib.rst:354
msgid ""
@@ -715,7 +725,6 @@ msgid ":attr:`__path__`"
msgstr ":attr:`__path__`"

#: ../Doc/library/importlib.rst:372
#, fuzzy
msgid ""
"The list of locations where the package's submodules will be found. Most of "
"the time this is a single directory. The import system passes this attribute "
@@ -726,7 +735,7 @@ msgstr ""
"La lista de ubicaciones donde los sub-módulos del paquete pueden ser "
"encontrados. La mayoría de las veces es un solo directorio. El sistema de "
"importación pasa este atributo a ``__import__()`` y a buscadores de la misma "
"forma que :attr:`sys.path` pero sólo para el paquete. No está establecido en "
"forma que :data:`sys.path` pero sólo para el paquete. No está establecido en "
"módulos que no son paquetes, por lo que puede ser usado como un indicador si "
"el módulo es un paquete."

@@ -863,10 +872,10 @@ msgid ""
msgstr ""
"Un método abstracto para retornar la fuente de un módulo. Se retorna como "
"una cadena de caracteres de texto usando :term:`universal newlines`, "
"traduciendo todos los separadores de línea reconocidos en caracteres ``'\n"
"'``. Retorna ``None`` si no hay una fuente disponible (por ejemplo, un "
"módulo integrado). Lanza :exc:`ImportError` si el cargador no puede "
"encontrar el módulo especificado."
"traduciendo todos los separadores de línea reconocidos en caracteres "
"``’\\n’``. Retorna ``None`` si no hay una fuente disponible (por ejemplo, un "
"módulo integrado). Lanza la excepción :exc:`ImportError` si el cargador no "
"puede encontrar el módulo especificado."

#: ../Doc/library/importlib.rst:457 ../Doc/library/importlib.rst:466
#: ../Doc/library/importlib.rst:516
@@ -991,7 +1000,7 @@ msgstr "Retorna :attr:`path`."

#: ../Doc/library/importlib.rst:552
msgid "Reads *path* as a binary file and returns the bytes from it."
msgstr "Lee *path* como un archivo binario y devuelve los bytes de él."
msgstr "Lee *path* como un archivo binario y retorna los bytes de él."

#: ../Doc/library/importlib.rst:557
msgid ""
@@ -1045,7 +1054,7 @@ msgid ""
"Optional abstract method which returns a :class:`dict` containing metadata "
"about the specified path. Supported dictionary keys are:"
msgstr ""
"Método abstracto opcional que devuelve un :class:`dict` que contiene "
"Método abstracto opcional que retorna un :class:`dict` que contiene "
"metadatos sobre la ruta especificada. Las claves de diccionario admitidas "
"son:"

@@ -1102,13 +1111,12 @@ msgstr ""
"automáticamente."

#: ../Doc/library/importlib.rst:611
#, fuzzy
msgid ""
"When writing to the path fails because the path is read-only (:const:`errno."
"EACCES`/:exc:`PermissionError`), do not propagate the exception."
msgstr ""
"Cuando la escritura en la ruta falla porque la ruta es de solo lectura (:"
"attr:`errno.EACCES`/:exc:`PermissionError`), no propague la excepción."
"const:`errno.EACCES`/:exc:`PermissionError`), no propague la excepción."

#: ../Doc/library/importlib.rst:615
msgid "No longer raises :exc:`NotImplementedError` when called."
@@ -1150,12 +1158,14 @@ msgstr ""

#: ../Doc/library/importlib.rst:650
msgid "*Superseded by TraversableResources*"
msgstr ""
msgstr "*Reemplazado por TraversableResources*"

#: ../Doc/library/importlib.rst:652
msgid ""
"An :term:`abstract base class` to provide the ability to read *resources*."
msgstr ""
"Una :term:`clase base abstracta` para proporcionar la capacidad de leer "
"*recursos*."

#: ../Doc/library/importlib.rst:655
msgid ""
@@ -1166,6 +1176,12 @@ msgid ""
"does not matter if the package and its data file(s) are stored e.g. in a zip "
"file versus on the file system."
msgstr ""
"Desde la perspectiva de este ABC, un *recurso* es un artefacto binario que "
"se envía dentro de un paquete. Normalmente, es algo así como un archivo de "
"datos que se encuentra junto al archivo ``__init__.py`` del paquete. El "
"propósito de esta clase es ayudar a abstraer el acceso a dichos archivos de "
"datos de modo que no importe si el paquete y sus archivos de datos se "
"almacenan, por ejemplo, en un archivo zip o en el sistema de archivos."

#: ../Doc/library/importlib.rst:663
msgid ""
@@ -1178,6 +1194,16 @@ msgid ""
"class are expected to directly correlate to a specific package (instead of "
"potentially representing multiple packages or a module)."
msgstr ""
"Para cualquiera de los métodos de esta clase, se espera que un argumento "
"*recurso* sea un :term:`path-like object` que conceptualmente, representa "
"solo un nombre de archivo. Esto significa que no se deben incluir rutas de "
"subdirectorio en el argumento *recurso*. Esto se debe a que la ubicación del "
"paquete al que se dirige el lector actúa como el “directorio”. Por lo tanto, "
"la metáfora para los directorios y los nombres de archivo es paquetes y "
"recursos, respectivamente. Esta es también la razón por la que se espera que "
"las instancias de esta clase se correlacionen directamente con un paquete "
"específico (en lugar de representar potencialmente varios paquetes o un "
"módulo)."

#: ../Doc/library/importlib.rst:674
msgid ""
@@ -1187,38 +1213,51 @@ msgid ""
"not a package, this method should return :const:`None`. An object compatible "
"with this ABC should only be returned when the specified module is a package."
msgstr ""
"Se espera que los cargadores que deseen admitir la lectura de recursos "
"proporcionen un método llamado ``get_resource_reader(fullname)`` que retorna "
"un objeto que implemente la interfaz de este ABC. Si el módulo especificado "
"por fullname no es un paquete, este método debe retornar un :const:`None`. "
"Un objeto compatible con este ABC solo debe devolverse cuando el módulo "
"especificado sea un paquete."

#: ../Doc/library/importlib.rst:683 ../Doc/library/importlib.rst:793
#, fuzzy
msgid "Use :class:`importlib.resources.abc.TraversableResources` instead."
msgstr "Utilice :meth:`importlib.abc.Loader.exec_module` en su lugar."
msgstr ""
"Utilice :class:`importlib.resources.abc.TraversableResources` en su lugar."

#: ../Doc/library/importlib.rst:688
msgid ""
"Returns an opened, :term:`file-like object` for binary reading of the "
"*resource*."
msgstr ""
"Retorna un objeto abierto, :term:`file-like object`, para la lectura binaria "
"del *recurso*."

#: ../Doc/library/importlib.rst:691
msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised."
msgstr ""
"Si no se puede encontrar el recurso, se lanza una excepción :exc:"
"`FileNotFoundError`."

#: ../Doc/library/importlib.rst:696
#, fuzzy
msgid "Returns the file system path to the *resource*."
msgstr "La ruta al archivo de origen."
msgstr "Retorna la ruta del sistema de archivos al *recurso*."

#: ../Doc/library/importlib.rst:698
msgid ""
"If the resource does not concretely exist on the file system, raise :exc:"
"`FileNotFoundError`."
msgstr ""
"Si el recurso no existe concretamente en el sistema de archivos, lanza una "
"excepción :exc:`FileNotFoundError`."

#: ../Doc/library/importlib.rst:703
msgid ""
"Returns ``True`` if the named *name* is considered a resource. :exc:"
"`FileNotFoundError` is raised if *name* does not exist."
msgstr ""
"Retorna ``True`` si el nombre *name* se considera un recurso. La excepción :"
"exc:`FileNotFoundError` se lanza si *name* no existe."

#: ../Doc/library/importlib.rst:708
msgid ""
@@ -1227,6 +1266,10 @@ msgid ""
"actual resources, e.g. it is acceptable to return names for which :meth:"
"`is_resource` would be false."
msgstr ""
"Retorna un :term:`iterable` de cadenas de caracteres sobre el contenido del "
"paquete. Tenga en cuenta que no es necesario que todos los nombres devueltos "
"por el iterador sean recursos reales, por ejemplo, es aceptable devolver "
"nombres para los cuales :meth:`is_resource` sería falso."

#: ../Doc/library/importlib.rst:714
msgid ""
@@ -1236,71 +1279,85 @@ msgid ""
"is allowed so that when it is known that the package and resources are "
"stored on the file system then those subdirectory names can be used directly."
msgstr ""
"Permitir que se retornen nombres que no sean recursos es permitir "
"situaciones en las que se conoce a priori cómo se almacenan un paquete y sus "
"recursos y los nombres que no son recursos serían útiles. Por ejemplo, se "
"permite retornar nombres de subdirectorios para que, cuando se sepa que el "
"paquete y los recursos están almacenados en el sistema de archivos, esos "
"nombres de subdirectorios se puedan usar directamente."

#: ../Doc/library/importlib.rst:722
msgid "The abstract method returns an iterable of no items."
msgstr ""
msgstr "El método abstracto retorna un iterable sin elementos."

#: ../Doc/library/importlib.rst:727
msgid ""
"An object with a subset of :class:`pathlib.Path` methods suitable for "
"traversing directories and opening files."
msgstr ""
"Un objeto con un subconjunto de métodos de :class:`pathlib.Path` adecuados "
"para recorrer directorios y abrir archivos."

#: ../Doc/library/importlib.rst:730
msgid ""
"For a representation of the object on the file-system, use :meth:`importlib."
"resources.as_file`."
msgstr ""
"Para obtener una representación del objeto en el sistema de archivos, "
"utilice :meth:`importlib.resources.as_file`."

#: ../Doc/library/importlib.rst:735
#, fuzzy
msgid "Use :class:`importlib.resources.abc.Traversable` instead."
msgstr "Utilice :meth:`importlib.abc.Loader.exec_module` en su lugar."
msgstr "Utilice :class:`importlib.resources.abc.Traversable` en su lugar."

#: ../Doc/library/importlib.rst:740
msgid "Abstract. The base name of this object without any parent references."
msgstr ""
"Abstracto. El nombre base de este objeto sin ninguna referencia principal."

#: ../Doc/library/importlib.rst:744
msgid "Yield ``Traversable`` objects in ``self``."
msgstr ""
msgstr "Produce objetos ``Traversable`` en ``self``."

#: ../Doc/library/importlib.rst:748
msgid "Return ``True`` if ``self`` is a directory."
msgstr ""
msgstr "Retorna ``True`` si ``self`` es un directorio."

#: ../Doc/library/importlib.rst:752
msgid "Return ``True`` if ``self`` is a file."
msgstr ""
msgstr "Retorna ``True`` si ``self`` es un archivo."

#: ../Doc/library/importlib.rst:756
msgid "Return Traversable child in ``self``."
msgstr ""
msgstr "Retorna un Traversable secundario en ``self``."

#: ../Doc/library/importlib.rst:760
msgid "Return ``Traversable`` child in ``self``."
msgstr ""
msgstr "Retorna un ``Traversable`` secundario en ``self``."

#: ../Doc/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 ""
"*mode* puede ser ‘r’ o ‘rb’ para abrir como texto o binario. Retorna un "
"identificador adecuado para su lectura (igual que :attr:`pathlib.Path.open`)."

#: ../Doc/library/importlib.rst:767
msgid ""
"When opening as text, accepts encoding parameters such as those accepted by :"
"attr:`io.TextIOWrapper`."
msgstr ""
"Al abrir como texto, acepta parámetros de codificación como los aceptados "
"por :attr:`io.TextIOWrapper`."

#: ../Doc/library/importlib.rst:772
msgid "Read contents of ``self`` as bytes."
msgstr ""
msgstr "Lee el contenido de ``self`` como bytes."

#: ../Doc/library/importlib.rst:776
msgid "Read contents of ``self`` as text."
msgstr ""
msgstr "Lee el contenido de ``self`` como texto."

#: ../Doc/library/importlib.rst:781
msgid ""
@@ -1311,18 +1368,28 @@ msgid ""
"Therefore, any loader supplying :class:`importlib.abc.TraversableResources` "
"also supplies ResourceReader."
msgstr ""
"Una clase base abstracta para lectores de recursos capaces de servir a la "
"interfaz :meth:`importlib.resources.files`. Subclases :class:`importlib."
"resources.abc.ResourceReader` y proporciona implementaciones concretas de "
"los métodos abstractos de :class:`importlib.resources.abc.ResourceReader`. "
"Por lo tanto, cualquier cargador que proporcione :class:`importlib.abc."
"TraversableResources` también proporciona ResourceReader."

#: ../Doc/library/importlib.rst:788
msgid ""
"Loaders that wish to support resource reading are expected to implement this "
"interface."
msgstr ""
"Se espera que los cargadores que deseen admitir la lectura de recursos "
"implementen esta interfaz."

#: ../Doc/library/importlib.rst:798
msgid ""
"Returns a :class:`importlib.resources.abc.Traversable` object for the loaded "
"package."
msgstr ""
"Retorna un objeto :class:`importlib.resources.abc.Traversable` para el "
"paquete cargado."

#: ../Doc/library/importlib.rst:804
msgid ":mod:`importlib.machinery` -- Importers and path hooks"
@@ -1598,16 +1665,15 @@ msgid "Clear out the internal cache."
msgstr "Borrar el caché interno."

#: ../Doc/library/importlib.rst:1000
#, fuzzy
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 ""
"Un método de clase que devuelve un cierre para su uso en :attr:`sys."
"path_hooks`. Una instancia de :class:`FileFinder` es retornada por el cierre "
"usando el argumento de ruta dado al cierre directamente y *loader_details* "
"indirectamente."
"Un método de clase que retorna un cierre para su uso en :data:`sys."
"path_hooks`. El cierre retorna una instancia de :class:`FileFinder` "
"utilizando el argumento de ruta proporcionado al cierre directamente y "
"*loader_details* indirectamente."

#: ../Doc/library/importlib.rst:1005
msgid ""
@@ -1637,7 +1703,7 @@ msgstr "La ruta al archivo de origen."

#: ../Doc/library/importlib.rst:1027
msgid "Return ``True`` if :attr:`path` appears to be for a package."
msgstr "Devuelve ``True`` si :attr:`path` parece ser para un paquete."
msgstr "Retorna ``True`` si :attr:`path` parece ser para un paquete."

#: ../Doc/library/importlib.rst:1031
msgid ""
@@ -1704,7 +1770,7 @@ msgstr ""
msgid ""
"Returns ``None`` as bytecode files have no source when this loader is used."
msgstr ""
"Devuelve ``None`` ya que los archivos de código de bytes no tienen fuente "
"Retorna ``None`` ya que los archivos de código de bytes no tienen fuente "
"cuando se usa este cargador."

#: ../Doc/library/importlib.rst:1092
@@ -1729,10 +1795,15 @@ msgid ""
"subinterpreters if it doesn't implement multi-phase init (see :pep:`489`), "
"even if it would otherwise import successfully."
msgstr ""
"Tenga en cuenta que, de manera predeterminada, la importación de un módulo "
"de extensión fallará en los subintérpretes si no implementa la "
"inicialización multifase (ver :pep:`489`), incluso si de lo contrario se "
"importaría correctamente."

#: ../Doc/library/importlib.rst:1104
msgid "Multi-phase init is now required for use in subinterpreters."
msgstr ""
"Ahora se requiere inicialización multifase para el uso en subintérpretes."

#: ../Doc/library/importlib.rst:1109 ../Doc/library/importlib.rst:1293
msgid "Name of the module the loader supports."
@@ -1794,9 +1865,15 @@ msgid ""
">>> isinstance(my_namespace.__loader__, importlib.abc.Loader)\n"
"True"
msgstr ""
">>> from importlib.machinery import NamespaceLoader\n"
">>> import my_namespace\n"
">>> isinstance(my_namespace.__loader__, NamespaceLoader)\n"
"True\n"
">>> import importlib.abc\n"
">>> isinstance(my_namespace.__loader__, importlib.abc.Loader)\n"
"True"

#: ../Doc/library/importlib.rst:1168
#, fuzzy
msgid ""
"A specification for a module's import-system-related state. This is "
"typically exposed as the module's :attr:`__spec__` attribute. Many of these "
@@ -1809,37 +1886,35 @@ msgid ""
"versa."
msgstr ""
"Una especificación para el estado relacionado con el sistema de importación "
"de un módulo. Esto generalmente se expone como el atributo :attr:`__spec__`` "
"del módulo. En las descripciones siguientes, los nombres entre paréntesis "
"dan el atributo correspondiente disponible directamente en el objeto del "
"módulo, por ejemplo, ``module.__spec__.origin == module.__file__``. Sin "
"embargo, tenga en cuenta que, si bien los *valores* suelen ser equivalentes, "
"pueden diferir ya que no hay sincronización entre los dos objetos. Por "
"ejemplo, es posible actualizar el :attr:`__path__` del módulo en tiempo de "
"ejecución, y esto no se reflejará automáticamente en el :attr:`__spec__."
"origin` del módulo, y viceversa."
"de un módulo. Esto se expone típicamente como el atributo :attr:`__spec__` "
"del módulo. Muchos de estos atributos también están disponibles directamente "
"en un módulo: por ejemplo, ``module.__spec__.origin == module.__file__``. "
"Sin embargo, tenga en cuenta que si bien los *values* suelen ser "
"equivalentes, pueden diferir ya que no hay sincronización entre los dos "
"objetos. Por ejemplo, es posible actualizar el :attr:`__file__` del módulo "
"en tiempo de ejecución y esto no se reflejará automáticamente en el :attr:"
"`__spec__.origin` del módulo, y viceversa."

#: ../Doc/library/importlib.rst:1181
#, fuzzy
msgid ""
"The module's fully qualified name (see :attr:`__name__` attributes on "
"modules). The :term:`finder` should always set this attribute to a non-empty "
"string."
msgstr ""
"El nombre completo del módulo. El :term:`buscador <finder>` debe siempre "
"establecer este atributo a una cadena de caracteres no vacía."
"El nombre completo del módulo (consulte los atributos :attr:`__name__` en "
"los módulos). El :term:`finder` siempre debe establecer este atributo en una "
"cadena de caracteres que no esté vacía."

#: ../Doc/library/importlib.rst:1187
#, fuzzy
msgid ""
"The :term:`loader` used to load the module (see :attr:`__loader__` "
"attributes on modules). The :term:`finder` should always set this attribute."
msgstr ""
"El :term:`Cargador <loader>` que debe usarse para cargar el módulo. El :term:"
"`Buscador <finder>` siempre debe establecer este atributo."
"El :term:`loader` utilizado para cargar el módulo (ver atributos :attr:"
"`__loader__` en módulos). El :term:`finder` siempre debe establecer este "
"atributo."

#: ../Doc/library/importlib.rst:1193
#, fuzzy
msgid ""
"The location the :term:`loader` should use to load the module (see :attr:"
"`__file__` attributes on modules). For example, for modules loaded from a ."
@@ -1848,15 +1923,15 @@ msgid ""
"uncommon case that there is not one (like for namespace packages), it should "
"be set to ``None``."
msgstr ""
"La ubicación que el :term:`cargador <loader>` debe usar para cargar el "
"módulo. Por ejemplo, para módulos cargados de archivos .py éste es el nombre "
"del archivo. El :term:`buscador <finder>` debe siempre establecer este "
"atributo a un valor significativo para que el :term:`cargador <loader>` lo "
"use. El en caso poco común de que no hay uno (como para paquetes de nombre "
"de espacio), debe estar establecido en ``None``."
"La ubicación que el :term:`loader` debe usar para cargar el módulo (vea los "
"atributos :attr:`__file__` en los módulos). Por ejemplo, para los módulos "
"cargados desde un archivo .py, este es el nombre del archivo. El :term:"
"`finder` siempre debe establecer este atributo en un valor significativo "
"para que lo use el :term:`loader`. En el caso poco común de que no haya uno "
"(como para los paquetes de espacios de nombres), se debe establecer en "
"``None``."

#: ../Doc/library/importlib.rst:1202
#, fuzzy
msgid ""
"The list of locations where the package's submodules will be found (see :"
"attr:`__path__` attributes on modules). Most of the time this is a single "
@@ -1865,12 +1940,13 @@ msgid ""
"It should be set to ``None`` for non-package modules. It is set "
"automatically later to a special object for namespace packages."
msgstr ""
"La lista de ubicaciones donde los sub-módulos del paquete serán encontrados. "
"La mayoría de las veces es un solo directorio. El :term:`buscador <finder>` "
"debe establecer este atributo a una lista, incluso una vacía, para indicar "
"al sistema de importación que el módulo es un paquete. Debe ser establecido "
"en ``None`` para módulos que no son paquetes. Es establecido automáticamente "
"más tarde a un objeto especial para paquetes de espacio de nombres."
"La lista de ubicaciones donde se encontrarán los submódulos del paquete "
"(consulte los atributos :attr:`__path__` en los módulos). La mayoría de las "
"veces, se trata de un solo directorio. El :term:`finder` debe establecer "
"este atributo en una lista, incluso una vacía, para indicar al sistema de "
"importación que el módulo es un paquete. Debe establecerse en ``None`` para "
"módulos que no sean paquetes. Se establece automáticamente más tarde en un "
"objeto especial para paquetes de espacio de nombres."

#: ../Doc/library/importlib.rst:1212
msgid ""
@@ -1883,46 +1959,46 @@ msgstr ""
"carga el módulo.. De lo contrario, debe establecerse en ``None``."

#: ../Doc/library/importlib.rst:1218
#, fuzzy
msgid ""
"The filename of a compiled version of the module's code (see :attr:"
"`__cached__` attributes on modules). The :term:`finder` should always set "
"this attribute but it may be ``None`` for modules that do not need compiled "
"code stored."
msgstr ""
"El nombre de archivo de una versión compilada del código de el módulo. El :"
"term:`buscador <finder>` siempre debe establecer este atributo pero puede "
"ser ``None`` para módulos que no necesitan guardar código compilado."
"El nombre de archivo de una versión compilada del código del módulo "
"(consulte los atributos :attr:`__cached__` en los módulos). El :term:"
"`finder` siempre debe establecer este atributo, pero puede ser ``None`` para "
"los módulos que no necesitan almacenar el código compilado."

#: ../Doc/library/importlib.rst:1225
#, fuzzy
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:`__package__` attributes on "
"modules. If the module is a package then this is the same as :attr:`name`."
msgstr ""
"(Solo lectura) El nombre completo del paquete bajo el cual está este módulo "
"(o la cadena de caracteres vacía para los módulos de nivel superior). Si el "
"módulo es un paquete es lo mismo que :attr:`__name__`."
"(Solo lectura) El nombre completo del paquete en el que se encuentra el "
"módulo (o la cadena de caracteres vacía para un módulo de nivel superior). "
"Consulte los atributos :attr:`__package__` en los módulos. Si el módulo es "
"un paquete, esto es lo mismo que :attr:`name`."

#: ../Doc/library/importlib.rst:1232
#, fuzzy
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:`__file__` is populated."
msgstr ""
"``False`` en caso contrario. Este valor impacta en cómo :attr:`origin` es "
"interpretado y cómo el atributo :attr:`__file__` del módulo es poblado."
"``True`` si el :attr:`origin` de la especificación hace referencia a una "
"ubicación cargable, ``Falso`` en caso contrario. Este valor afecta la forma "
"en que se interpreta el :attr:`origin` y cómo se completa el :attr:"
"`__file__` del módulo."

#: ../Doc/library/importlib.rst:1239
#, fuzzy
msgid ""
"A specialization of :class:`importlib.machinery.ExtensionFileLoader` that is "
"able to load extension modules in Framework format."
msgstr ""
"Una implementación concreta de :class:`importlib.abc.ExecutionLoader` para "
"módulos de extensión."
"Una especialización de :class:`importlib.machinery.ExtensionFileLoader` que "
"puede cargar módulos de extensión en formato Framework."

#: ../Doc/library/importlib.rst:1242
msgid ""
@@ -1932,6 +2008,12 @@ msgid ""
"be only a single binary per framework, and there can be no executable binary "
"material outside the Frameworks folder."
msgstr ""
"Para que sea compatible con la App Store de iOS, *todos* los módulos "
"binarios de una aplicación de iOS deben ser bibliotecas dinámicas, "
"contenidas en un marco con metadatos apropiados, almacenados en la carpeta "
"``Frameworks`` de la aplicación empaquetada. Solo puede haber un único "
"binario por marco y no puede haber material binario ejecutable fuera de la "
"carpeta Frameworks."

#: ../Doc/library/importlib.rst:1248
msgid ""
@@ -1946,6 +2028,18 @@ msgid ""
"expected to contain a ``.origin`` file that contains the location of the ``."
"fwork`` file, relative to the app bundle."
msgstr ""
"Para cumplir con este requisito, cuando se ejecuta en iOS, los binarios del "
"módulo de extensión *no* se empaquetan como archivos ``.so`` en ``sys."
"path``, sino como marcos independientes individuales. Para descubrir esos "
"marcos, este cargador se debe registrar con la extensión de archivo ``."
"fwork``, con un archivo ``.fwork`` que actúa como marcador de posición en la "
"ubicación original del binario en ``sys.path``. El archivo ``.fwork`` "
"contiene la ruta del binario real en la carpeta ``Frameworks``, en relación "
"con el paquete de la aplicación. Para permitir la resolución de un binario "
"empaquetado en el marco de trabajo en la ubicación original, se espera que "
"el marco de trabajo contenga un archivo ``.origin`` que contenga la "
"ubicación del archivo ``.fwork``, en relación con el paquete de la "
"aplicación."

#: ../Doc/library/importlib.rst:1259
msgid ""
@@ -1962,6 +2056,18 @@ msgid ""
"framework would also contain ``Frameworks/foo.bar._whiz.framework/foo.bar."
"_whiz.origin``, containing the path to the ``.fwork`` file."
msgstr ""
"Por ejemplo, considere el caso de una importación ``from foo.bar import "
"_whiz``, donde ``_whiz`` se implementa con el módulo binario ``sources/foo/"
"bar/_whiz.abi3.so``, donde ``sources`` es la ubicación registrada en ``sys."
"path``, relativa al paquete de la aplicación. Este módulo *debe* "
"distribuirse como ``Frameworks/foo.bar._whiz.framework/foo.bar._whiz`` "
"(creando el nombre del marco a partir de la ruta de importación completa del "
"módulo), con un archivo ``Info.plist`` en el directorio ``.framework`` que "
"identifica el binario como un marco. El módulo ``foo.bar._whiz`` se "
"representaría en la ubicación original con un archivo marcador ``sources/foo/"
"bar/_whiz.abi3.fwork``, que contiene la ruta ``Frameworks/foo.bar._whiz/foo."
"bar._whiz``. El framework también contendría ``Frameworks/foo.bar._whiz."
"framework/foo.bar._whiz.origin``, que contiene la ruta al archivo ``.fwork``."

#: ../Doc/library/importlib.rst:1273
msgid ""
@@ -1971,6 +2077,11 @@ msgid ""
"However, the spec origin will reference the location of the *actual* binary "
"in the ``.framework`` folder."
msgstr ""
"Cuando se carga un módulo con este cargador, el ``__file__`` del módulo se "
"indicará como la ubicación del archivo ``.fwork``. Esto permite que el "
"código utilice el ``__file__`` de un módulo como ancla para recorrer el "
"sistema de archivos. Sin embargo, el origen de la especificación hará "
"referencia a la ubicación del binario *real* en la carpeta ``.framework``."

#: ../Doc/library/importlib.rst:1279
msgid ""
@@ -1982,15 +2093,21 @@ msgid ""
"with a build step in the Xcode project; see the iOS documentation for "
"details on how to construct this build step."
msgstr ""
"El proyecto Xcode que crea la aplicación es responsable de convertir los "
"archivos ``.so`` desde donde se encuentren en ``PYTHONPATH`` en marcos en la "
"carpeta ``Frameworks`` (lo que incluye quitar las extensiones del archivo "
"del módulo, agregar metadatos del marco y firmar el marco resultante), y "
"crear los archivos ``.fwork`` y ``.origin``. Esto generalmente se hará con "
"un paso de compilación en el proyecto Xcode; consulte la documentación de "
"iOS para obtener detalles sobre cómo construir este paso de compilación."

#: ../Doc/library/importlib.rst:1289
msgid ":ref:`Availability <availability>`: iOS."
msgstr ""
msgstr ":ref:`Availability <availability>`: iOS."

#: ../Doc/library/importlib.rst:1297
#, fuzzy
msgid "Path to the ``.fwork`` file for the extension module."
msgstr "Ruta al archivo del módulo."
msgstr "Ruta al archivo ``.fwork`` para el módulo de extensión."

#: ../Doc/library/importlib.rst:1301
msgid ":mod:`importlib.util` -- Utility code for importers"
@@ -2150,7 +2267,6 @@ msgstr ""
"relativa no válidos."

#: ../Doc/library/importlib.rst:1403
#, fuzzy
msgid ""
"Find the :term:`spec <module spec>` for a module, optionally relative to the "
"specified **package** name. If the module is in :data:`sys.modules`, then "
@@ -2159,13 +2275,13 @@ msgid ""
"Otherwise a search using :data:`sys.meta_path` is done. ``None`` is returned "
"if no spec is found."
msgstr ""
"Busca el :term:`spec <module spec>` para un módulo, opcionalmente relativo "
"al nombre del **package** especificado. Si el módulo está en :attr:`sys."
"Busque el :term:`spec <module spec>` de un módulo, opcionalmente relativa al "
"nombre del **paquete** especificado. Si el módulo está en :data:`sys."
"modules`, se retorna ``sys.modules[name].__spec__`` (a menos que la "
"especificación sea ``None`` o no esté establecida, en cuyo caso se lanza :"
"exc:`ValueError`). De lo contrario, se realiza una búsqueda utilizando :attr:"
"`sys.meta_path`. Se retorna ``None`` si no se encuentra ninguna "
"especificación."
"especificación sea ``None`` o no esté configurada, en cuyo caso se lanza una "
"excepción :exc:`ValueError`). De lo contrario, se realiza una búsqueda "
"utilizando :data:`sys.meta_path`. Se retorna ``None`` si no se encuentra "
"ninguna especificación."

#: ../Doc/library/importlib.rst:1410
msgid ""
@@ -2263,26 +2379,41 @@ msgid ""
"for a multi-phase init module that doesn't explicitly support a per-"
"interpreter GIL, when imported in an interpreter with its own GIL."
msgstr ""
"Un administrador de contexto que puede omitir temporalmente la comprobación "
"de compatibilidad para módulos de extensión. De manera predeterminada, la "
"comprobación está habilitada y fallará cuando se importe un módulo de "
"inicialización de una sola fase en un subintérprete. También fallará para un "
"módulo de inicialización de varias fases que no admita explícitamente una "
"GIL por intérprete, cuando se importe en un intérprete con su propia GIL."

#: ../Doc/library/importlib.rst:1477
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 ""
"Tenga en cuenta que esta función está pensada para dar cabida a un caso "
"inusual, que probablemente desaparecerá en algún momento. Es muy probable "
"que esto no sea lo que estaba buscando."

#: ../Doc/library/importlib.rst:1481
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 ""
"Puede obtener el mismo efecto que esta función implementando la interfaz "
"básica de init multifase (:pep:`489`) y mintiendo acerca del soporte para "
"múltiples intérpretes (o por intérprete GIL)."

#: ../Doc/library/importlib.rst:1486
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 ""
"El uso de esta función para desactivar la comprobación puede provocar un "
"comportamiento inesperado e incluso fallos. Solo debe utilizarse durante el "
"desarrollo de módulos de extensión."

#: ../Doc/library/importlib.rst:1494
msgid ""
@@ -2293,7 +2424,6 @@ msgstr ""
"módulo tiene acceso a un atributo."

#: ../Doc/library/importlib.rst:1497
#, fuzzy
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 "
@@ -2306,14 +2436,14 @@ msgid ""
"raised if such a substitution is detected."
msgstr ""
"Esta clase **solo** funciona con cargadores que definen :meth:`~importlib."
"abc.Loader.exec_module` ya que se requiere control sobre qué tipo de módulo "
"se usa para el módulo. Por esas mismas razones, el método del cargador :meth:"
"`~importlib.abc.Loader.create_module` debe retornar ``None`` o un tipo para "
"el cual su atributo ``__class__`` se puede mutar junto con no usar :term:"
"abc.Loader.exec_module`, ya que se requiere control sobre qué tipo de módulo "
"se usa para el módulo. Por esas mismas razones, el método :meth:`~importlib."
"abc.Loader.create_module` del cargador debe retornar ``None`` o un tipo para "
"el cual se pueda mutar su atributo ``__class__`` junto con no usar :term:"
"`slots <__slots__>`. Finalmente, los módulos que sustituyen el objeto "
"colocado en :attr:`sys.modules` no funcionarán ya que no hay forma de "
"colocado en :data:`sys.modules` no funcionarán ya que no hay forma de "
"reemplazar correctamente las referencias del módulo en todo el intérprete de "
"forma segura; :exc:`ValueError` se genera si se detecta tal sustitución."
"manera segura; :exc:`ValueError` se lanza si se detecta dicha sustitución."

#: ../Doc/library/importlib.rst:1508
msgid ""
@@ -2341,14 +2471,13 @@ msgstr ""
"BuiltinImporter` y :class:`importlib.machinery.ExtensionFileLoader`."

#: ../Doc/library/importlib.rst:1523
#, fuzzy
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 ""
"Un método estático que devuelve un invocable que crea un cargador diferido. "
"Esto está destinado a utilizarse en situaciones en las que el cargador se "
"Un método de clase que retorna un elemento invocable que crea un cargador "
"diferido. Está pensado para usarse en situaciones en las que el cargador se "
"pasa por clase en lugar de por instancia. ::"

#: ../Doc/library/importlib.rst:1528
@@ -2358,6 +2487,10 @@ msgid ""
"lazy_loader = importlib.util.LazyLoader.factory(loader)\n"
"finder = importlib.machinery.FileFinder(path, (lazy_loader, suffixes))"
msgstr ""
"suffixes = importlib.machinery.SOURCE_SUFFIXES\n"
"loader = importlib.machinery.SourceFileLoader\n"
"lazy_loader = importlib.util.LazyLoader.factory(loader)\n"
"finder = importlib.machinery.FileFinder(path, (lazy_loader, suffixes))"

#: ../Doc/library/importlib.rst:1536
msgid "Examples"
@@ -2380,6 +2513,9 @@ msgid ""
"\n"
"itertools = importlib.import_module('itertools')"
msgstr ""
"import importlib\n"
"\n"
"itertools = importlib.import_module('itertools')"

#: ../Doc/library/importlib.rst:1550
msgid "Checking if a module can be imported"
@@ -2420,6 +2556,22 @@ msgid ""
"else:\n"
" print(f\"can't find the {name!r} module\")"
msgstr ""
"import importlib.util\n"
"import sys\n"
"\n"
"# Con fines ilustrativos.\n"
"name = 'itertools'\n"
"\n"
"if name in sys.modules:\n"
"print(f\"{name!r} already in sys.modules\")\n"
"elif (spec := importlib.util.find_spec(name)) is not None:\n"
"# Si eligió realizar la importación real ...\n"
"module = importlib.util.module_from_spec(spec)\n"
"sys.modules[name] = module\n"
"spec.loader.exec_module(module)\n"
"print(f\"{name!r} ha sido importado\")\n"
"else:\n"
"print(f\"no puede ser encontrado el módulo {name!r}\")"

#: ../Doc/library/importlib.rst:1578
msgid "Importing a source file directly"
@@ -2434,15 +2586,20 @@ msgid ""
"`runpy.run_path` when the global namespace resulting from running a Python "
"file is appropriate."
msgstr ""
"Esta receta debe usarse con precaución: es una aproximación de una "
"declaración de importación donde se especifica directamente la ruta del "
"archivo, en lugar de buscar :data:`sys.path`. Primero se deben considerar "
"alternativas, como modificar :data:`sys.path` cuando se requiere un módulo "
"adecuado o usar :func:`runpy.run_path` cuando el espacio de nombres global "
"resultante de la ejecución de un archivo Python es apropiado."

#: ../Doc/library/importlib.rst:1587
#, fuzzy
msgid ""
"To import a Python source file directly from a path, use the following "
"recipe::"
msgstr ""
"Para importar un archivo fuente de Python directamente, use la siguiente "
"receta::"
"Para importar un archivo fuente de Python directamente desde una ruta, use "
"la siguiente receta:"

#: ../Doc/library/importlib.rst:1589
msgid ""
@@ -2466,6 +2623,25 @@ msgid ""
"# Similar outcome as `import json`.\n"
"json = import_from_path(module_name, file_path)"
msgstr ""
"import importlib.util\n"
"import sys\n"
"\n"
"\n"
"def import_from_path(module_name, file_path):\n"
"spec = importlib.util.spec_from_file_location(module_name, file_path)\n"
"module = importlib.util.module_from_spec(spec)\n"
"sys.modules[module_name] = module\n"
"spec.loader.exec_module(module)\n"
"return module\n"
"\n"
"\n"
"# Sólo con fines ilustrativos. (el uso de `json` es arbitrario).\n"
"import json\n"
"file_path = json.__file__\n"
"module_name = json.__name__\n"
"\n"
"# Resultado similar a `import json`.\n"
"json = import_from_path(module_name, file_path)"

#: ../Doc/library/importlib.rst:1611
msgid "Implementing lazy imports"
@@ -2494,13 +2670,28 @@ msgid ""
">>> lazy_typing.TYPE_CHECKING\n"
"False"
msgstr ""
">>> import importlib.util\n"
">>> import sys\n"
">>> def lazy_import(name):\n"
"...spec = importlib.util.find_spec(name)\n"
"...loader = importlib.util.LazyLoader(spec.loader)\n"
"...spec.loader = loader\n"
"...module = importlib.util.module_from_spec(spec)\n"
"...sys.modules[name] = module\n"
"...loader.exec_module(module)\n"
"...return module\n"
"...\n"
">>> lazy_typing = lazy_import(\"typing\")\n"
">>> #lazy_typing es un objeto de módulo real,\n"
">>> #pero aún no está cargado en la memoria.\n"
">>> lazy_typing.TYPE_CHECKING\n"
"False"

#: ../Doc/library/importlib.rst:1634
msgid "Setting up an importer"
msgstr "Configurar un importador"

#: ../Doc/library/importlib.rst:1636
#, fuzzy
msgid ""
"For deep customizations of import, you typically want to implement an :term:"
"`importer`. This means managing both the :term:`finder` and :term:`loader` "
@@ -2513,17 +2704,17 @@ msgid ""
"will use them (for creating an importer for yourself, read the documentation "
"for the appropriate classes defined within this package)::"
msgstr ""
"Para personalizaciones profundas de la importación, normalmente desea "
"implementar un :term:`importador`. Esto significa administrar tanto el lado :"
"term:`finder` como :term:`loader` de las cosas. Para los buscadores, hay dos "
"sabores para elegir según sus necesidades: un :term:`meta path finder` o un :"
"term:`path entry finder`. El primero es lo que pondrías en :attr:`sys."
"meta_path` mientras que el segundo es lo que creas usando un :term:`path "
"entry hook` en :attr:`sys.path_hooks` que funciona con :attr:`sys .path` "
"entradas para crear potencialmente un buscador. Este ejemplo le mostrará "
"cómo registrar sus propios importadores para que import los utilice (para "
"crear un importador para usted, lea la documentación de las clases "
"apropiadas definidas dentro de este paquete):"
"Para personalizaciones profundas de importación, normalmente querrá "
"implementar un :term:`importador`. Esto significa gestionar tanto el :term:"
"`buscador` como el :term:`cargador`. Para los buscadores hay dos opciones "
"para elegir según sus necesidades: un :term:`meta path finder` o un :term:"
"`path entry finder`. El primero es lo que pondría en :data:`sys.meta_path` "
"mientras que el segundo es lo que crea utilizando un :term:`path entry hook` "
"en :data:`sys.path_hooks` que funciona con entradas :data:`sys.path` para "
"crear potencialmente un buscador. Este ejemplo le mostrará cómo registrar "
"sus propios importadores para que la importación los utilice (para crear un "
"importador para usted, lea la documentación de las clases apropiadas "
"definidas dentro de este paquete)::"

#: ../Doc/library/importlib.rst:1647
msgid ""
@@ -2548,6 +2739,26 @@ msgid ""
"# of priority.\n"
"sys.path_hooks.append(SpamPathEntryFinder.path_hook(loader_details))"
msgstr ""
"import importlib.machinery\n"
"import sys\n"
"\n"
"# Sólo con fines ilustrativos.\n"
"SpamMetaPathFinder = importlib.machinery.PathFinder\n"
"SpamPathEntryFinder = importlib.machinery.FileFinder\n"
"detalles_del_cargador = (importlib.machinery.SourceFileLoader,\n"
"importlib.machinery.SOURCE_SUFFIXES)\n"
"\n"
"# Configuración de un meta buscador de rutas.\n"
"# Asegúrese de colocar el buscador en la ubicación adecuada en la lista en términos "
"de\n"
"# prioridad.\n"
"sys.meta_path.append(SpamMetaPathFinder)\n"
"\n"
"# Configuración de un buscador de entradas de ruta.\n"
"# Asegúrese de colocar el gancho de ruta en la ubicación adecuada en la lista en "
"términos\n"
"# de prioridad.\n"
"sys.path_hooks.append(SpamPathEntryFinder.path_hook(detalles_del_cargador))"

#: ../Doc/library/importlib.rst:1668
msgid "Approximating :func:`importlib.import_module`"
@@ -2598,11 +2809,40 @@ msgid ""
" setattr(parent_module, child_name, module)\n"
" return module"
msgstr ""
"import importlib.util\n"
"import sys\n"
"\n"
"def import_module(name, package=None):\n"
"\"\"\"Una implementación aproximada de la importación.\"\"\"\n"
"nombre_absoluto = importlib.util.resolve_name(name, package)\n"
"try:\n"
"return sys.modules[nombre_absoluto]\n"
"except KeyError:\n"
"pass\n"
"\n"
"path = None\n"
"if '.' in nombre_absoluto:\n"
"parent_name, _, child_name = nombre_absoluto.rpartition('.')\n"
"parent_module = import_module(parent_name)\n"
"path = parent_module.__spec__.submodule_search_locations\n"
"for finder in sys.meta_path:\n"
"spec = finder.find_spec(nombre_absoluto, path)\n"
"if spec is not None:\n"
"break\n"
"else:\n"
"msg = f'Ningún módulo llamado {nombre_absoluto!r}'\n"
"raise ModuleNotFoundError(msg, name=nombre_absoluto)\n"
"module = importlib.util.module_from_spec(spec)\n"
"sys.modules[nombre_absoluto] = module\n"
"spec.loader.exec_module(module)\n"
"if path is not None:\n"
"setattr(parent_module, child_name, module)\n"
"return module"

#: ../Doc/library/importlib.rst:443
msgid "universal newlines"
msgstr ""
msgstr "nuevas líneas universales"

#: ../Doc/library/importlib.rst:443
msgid "importlib.abc.InspectLoader.get_source method"
msgstr ""
msgstr "importlib.abc.InspectLoader.get_source method"