calibre - en to es translation catalogue (104 entries)

en: Setting up a calibre development environment
es: Configurar un entorno de desarrollo de calibre

en: calibre is completely open source, licensed under the `GNU GPL v3 <https://www.gnu.org/licenses/gpl.html>`_. This means that you are free to download and modify the program to your heart's content. In this section, you will learn how to get a calibre development environment set up on the operating system of your choice. calibre is written primarily in `Python <https://www.python.org>`_ with some C/C++ code for speed and system interfacing. Note that calibre requires at least Python 3.8.
es: calibre es código completamente abierto, licenciado bajo la `GNU GPL v3 <https://www.gnu.org/licenses/gpl.html>`_. Esto significa que cualquiera es libre de descargar y modificar el programa a su gusto. En esta sección, se mostrará cómo configurar un entorno de desarrollo de calibre en el sistema operativo de su elección. calibre está escrito principalmente en `Python <https://www.python.org>`_, con algo de código C/C++ para mejorar la velocidad y la interfaz con el sistema. Tenga en cuenta que calibre requiere al menos Python 3.8.

en: Contents
es: Índice

en: Design philosophy
es: Filosofía del diseño

en: calibre has its roots in the Unix world, which means that its design is highly modular. The modules interact with each other via well defined interfaces. This makes adding new features and fixing bugs in calibre very easy, resulting in a frenetic pace of development. Because of its roots, calibre has a comprehensive command line interface for all its functions, documented in :doc:`generated/en/cli-index`.
es: calibre tiene sus raíces en el mundo Unix, lo que significa que su diseño es altamente modular. Los módulos interactúan entre sí a través de interfaces bien definidas. Esto hace que la añadir nuevas característicasy corregir errores en calibre sea muy fácil, lo que resulta en un ritmo frenético de desarrollo. Debido a sus raíces, calibre tiene una interfaz completa de línea de órdenes para todas sus funciones, documentadas en :doc:`generated/es/cli-index`.

en: The modular design of calibre is expressed via ``Plugins``. There is a :ref:`tutorial <customize>` on writing calibre plugins. For example, adding support for a new device to calibre typically involves writing less than a 100 lines of code in the form of a device driver plugin. You can browse the `built-in drivers <https://github.com/kovidgoyal/calibre/tree/master/src/calibre/devices>`_. Similarly, adding support for new conversion formats involves writing input/output format plugins. Another example of the modular design is the :ref:`recipe system <news>` for fetching news. For more examples of plugins designed to add features to calibre, see the `Index of plugins <https://www.mobileread.com/forums/showthread.php?p=1362767#post1362767>`_.
es: El diseño modular de calibre se manifiesta en los «complementos». Hay un :ref:`cursillo <customize>` sobre cómo escribir complementos para calibre. Por ejemplo, agregar soporte para un nuevo dispositivo en calibre implica escribir menos de 100 líneas de código en la forma de un complemento de controlador de dispositivo. Puede examinar los `controladores predefinidos <https://github.com/kovidgoyal/calibre/tree/master/src/calibre/devices>`_. Del mismo modo, agregar soporte para nuevos conversores de formato implica escribir complementos de formato de entrada o salida. Otro ejemplo de la construcción modular es el :ref:`sistema de fórmulas <news>` para la obtención de noticias. Para más ejemplos de complementos diseñados para agregar funciones a calibre, consulte el `índice de complementos <https://www.mobileread.com/forums/showthread.php?p=1362767#post1362767>`_ (en inglés).

en: Code layout
es: Estructura del código

en: All the calibre Python code is in the ``calibre`` package. This package contains the following main sub-packages
es: Todo el código Python de calibre está en el paquete ``calibre``. Este paquete contiene los siguientes subpaquetes principales

en: devices - All the device drivers. Just look through some of the built-in drivers to get an idea for how they work.
es: devices - Todos los controladores de dispositivos. Examite alguno de los controladores predefinidos para hacerse una idea de cómo funcionan.

en: For details, see: ``devices.interface`` which defines the interface supported by device drivers and ``devices.usbms`` which defines a generic driver that connects to a USBMS device. All USBMS based drivers in calibre inherit from it.
es: Para obtener más información, consulte: ``devices.interface`` que define la interfaz soportada por los controladores de dispositivos y ``devices.usbms`` que define un controlador genérico que se conecta a un dispositivo USBMS. Todos los controladores de dispositivos basados en USBMS ​​en calibre descienden de él.

en: e-books  - All the e-book conversion/metadata code. A good starting point is ``calibre.ebooks.conversion.cli`` which is the module powering the :command:`ebook-convert` command. The conversion process is controlled via ``conversion.plumber``. The format independent code is all in ``ebooks.oeb`` and the format dependent code is in ``ebooks.format_name``.
es: ebooks - Todo el código de conversión y metadatos de libros electrónicos. Un buen punto de partida es ``calibre.ebooks.conversion.cli`` que es el módulo que realiza las funciones de la orden :command:`ebook-convert`. El proceso de conversión se controla mediante ``conversion.plumber``. El código independiente de formato está todo en ``ebooks.oeb`` y el código dependiente de formato está ``ebooks.format_name``.

en: Metadata reading, writing, and downloading is all in ``ebooks.metadata``
es: La lectura, escritura y descarga de metadatos están en ``ebooks.metadata``

en: Conversion happens in a pipeline, for the structure of the pipeline, see :ref:`conversion-introduction`. The pipeline consists of an input plugin, various transforms and an output plugin. The code that constructs and drives the pipeline is in :file:`plumber.py`. The pipeline works on a representation of an e-book that is like an unzipped epub, with manifest, spine, toc, guide, html content, etc. The class that manages this representation is OEBBook in ``ebooks.oeb.base``. The various transformations that are applied to the book during conversions live in :file:`oeb/transforms/*.py`. And the input and output plugins live in :file:`conversion/plugins/*.py`.
es: La conversión tiene lugar en diferentes etapas, para ver la estructura de estas etapas vea :ref:`conversión-introduction`. Las etapas consisten en un complemento de entrada, diversas transformaciones y un complemento de salida. El código que controla las etapas está en :file:`plumber.py`. La sucesión de etapas trabaja sobre una representación del libro electrónico que es como un epub descomprimido, con manifiesto, lomo, índice, guía, contenidos html, etc. La clase que maneja esta representación es OEBBook en ``ebooks.oeb.base``. Las diversas transformaciones que se aplican al libro durante las conversiones están en :file:`oeb/transforms/*.py`. Los complementos de entrada y salida están en :file:`conversion/plugins/*.py`.

en: E-book editing happens using a different container object. It is documented in :ref:`polish_api`.
es: La modificación de libros electrónicos se realiza mediante un objeto contenedor diferente. Está documentado en :ref:`polish_api`.

en: db - The database back-end. See :ref:`db_api` for the interface to the calibre library.
es: db - El motor de base de datos. Vea :ref:`db_api` para más información sobre la interfaz de la biblioteca de calibre.

en: Content server: ``srv`` is the calibre Content server.
es: servidor de contenido: ``srv`` es el servidor de contenido de calibre.

en: gui2 - The Graphical User Interface. GUI initialization happens in ``gui2.main`` and ``gui2.ui``. The e-book-viewer is in ``gui2.viewer``. The e-book editor is in ``gui2.tweak_book``.
es: gui2 - La interfaz gráfica de usuario. La inicialización de la interfaz gráfica ocurre en ``gui2.main`` y ``gui2.ui``. El visor de libros electrónicos está en ``gui2.viewer``. El editor de libros electrónicos está en ``gui2.tweak_book``.

en: If you want to locate the entry points for all the various calibre executables, look at the ``entry_points`` structure in `linux.py <https://github.com/kovidgoyal/calibre/blob/master/src/calibre/linux.py>`_.
es: Si desea localizar los puntos de entrada de todos los ejecutables de calibre, vea la estructura ``entry_points`` en `linux.py <https://github.com/kovidgoyal/calibre/blob/master/src/calibre/linux.py>`_.

en: If you need help understanding the code, post in the `development forum <https://www.mobileread.com/forums/forumdisplay.php?f=240>`_ and you will most likely get help from one of calibre's many developers.
es: Si necesita ayuda para entender el código, escriba en el foro de desarrollo `<https://www.mobileread.com/forums/forumdisplay.php?f=240>`_ y probablemente obtendrá ayuda de uno de los muchos desarrolladores de calibre.

en: Getting the code
es: Obtener el código

en: You can get the calibre source code in two ways, using a version control system or directly downloading a :website_base:`tarball <dist/src>`.
es: Puede obtener el código fuente de calibre de dos maneras, usando un sistema de control de versiones o descargando directamente un :website_base:`tarball <dist/src>`_.

en: calibre uses `Git <https://www.git-scm.com/>`_, a distributed version control system. Git is available on all the platforms calibre supports.  After installing Git, you can get the calibre source code with the command::
es: calibre utiliza `Git <https://www.git-scm.com/>`_, un sistema de control de versiones distribuido. Git está disponible en todas las plataformas que soporta calibre. Una vez instalado Git, puede obtener el código fuente de calibre con la orden::

en: On Windows you will need the complete path name, that will be something like :file:`C:\\Program Files\\Git\\git.exe`.
es: En Windows necesitará la ruta completa, que será algo así como :file:`C:\\Archivos de programa\\Git\\git.exe`.

en: calibre is a very large project with a very long source control history, so the above can take a while (10 mins to an hour depending on your internet speed).
es: calibre es un gran proyecto con un extenso historial de control de código fuente, asi que esto puede tomar un tiempo (de 10 minutos a una hora, dependiendo de la velocidad de la conexión a Internet).

en: If you want to get the code faster, the source code for the latest release is always available as an :website_base:`archive <dist/src>`.
es: Si quiere obtener el código más rápidamente, el código fuente de la última versión está siempre disponible como un :website_base:`archivo <dist/src>`_.

en: To update a branch to the latest code, use the command::
es: Para actualizar el código de una rama a su versión más reciente, use la orden::

en: You can also browse the code at `GitHub <https://github.com/kovidgoyal/calibre>`_.
es: También puede explorar el código en `GitHub <https://github.com/kovidgoyal/calibre>`_.

en: Submitting your changes to be included
es: Enviar cambios para que se incluyan

en: If you only plan to make a few small changes, you can make your changes and create a "merge directive" which you can then attach to a ticket in the calibre `bug tracker <https://bugs.launchpad.net/calibre>`_. To do this, make your changes, then run::
es: Si sólo va a hacer algunos pequeños cambios, puede hacer los cambios y crear una «directiva de fusión» que luego puede adjuntar a un informe en el `registro de errores <https://bugs.launchpad.net/calibre>`_. Para ello, realice los cambios y después ejecute::

en: This will create a :file:`my-changes` file in the current folder, simply attach that to a ticket on the calibre `bug tracker <https://bugs.launchpad.net/calibre>`_. Note that this will include *all* the commits you have made. If you only want to send some commits, you have to change ``origin/master`` above. To send only the last commit, use::
es: Esto creará un archivo :file:`my-changes` en la carpeta actual, simplemente adjúntelo a un informe en el `registro de errores <https://bugs.launchpad.net/calibre>`_. Tenga en cuenta que esto incluirá *todos* los cambios que haya realizado. Si sólo desea enviar algunos cambios, tendrá que sustituir el ``origin/master`` anterior. Para enviar sólo el último cambio, use::

en: To send the last *n* commits, replace *1* with *n*, for example, for the last 3 commits::
es: Para enviar los últimos *n* cambios, sustituya *1* por *n*, por ejemplo, para los últimos 3 cambios::

en: Be careful to not include merges when using ``HEAD~n``.
es: Tenga cuidado de no incluir uniones cuando use ``HEAD~n``.

en: If you plan to do a lot of development on calibre, then the best method is to create a `GitHub <https://github.com>`__ account. Below is a basic guide to setting up your own fork of calibre in a way that will allow you to submit pull requests for inclusion into the main calibre repository:
es: Si planea realizar mucho desarrollo en calibre, el mejor método es crear una cuenta en `GitHub <https://github.com>`__. A continuación se muestra una guía básica para la creación de su propia derivación de calibre, de manera que le permitirá presentar una solicitud de colaboración para que se incluya en el repositorio principal de calibre:

en: Setup git on your machine as described in this article: `Setup Git <https://help.github.com/articles/set-up-git>`_
es: Configure git en el equipo como se describe en este artículo: `Setup Git <https://help.github.com/articles/set-up-git>`_ (en inglés)

en: Setup ssh keys for authentication to GitHub, as described here: `Generating SSH keys <https://help.github.com/articles/generating-ssh-keys>`_
es: Configure las claves SSH para la autenticación con GitHub, como se describe aquí: `Generating SSH keys <https://help.github.com/articles/generating-ssh-keys>`_ (en inglés)

en: Go to https://github.com/kovidgoyal/calibre and click the :guilabel:`Fork` button.
es: Vaya a https://github.com/kovidgoyal/calibre y pulse en el botón :guilabel:`Fork`.

en: In a Terminal do::
es: En una terminal escriba::

en: Replace <username> above with your GitHub username. That will get your fork checked out locally.
es: Sustituya el <username> de arriba por su nombre de usuario en GitHub. Esto hará que la derivación se actualice localmente.

en: You can make changes and commit them whenever you like. When you are ready to have your work merged, do a::
es: Puede hacer cambios y fijarlos siempre que lo desee. Cuando esté listo para que su trabajo se una con el repositorio principal, escriba::

en: and go to ``https://github.com/<username>/calibre`` and click the :guilabel:`Pull Request` button to generate a pull request that can be merged.
es: y vaya a ``https://github.com/<username>/calibre``, pulse en el botón :guilabel:`Pull Request` para generar una solicitud de contribución que pueda ser incluida.

en: You can update your local copy with code from the main repo at any time by doing::
es: Puede actualizar la copia local con código del repositorio principal en cualquier momento haciendo::

en: You should also keep an eye on the calibre `development forum <https://www.mobileread.com/forums/forumdisplay.php?f=240>`_. Before making major changes, you should discuss them in the forum or contact Kovid directly (his email address is all over the source code).
es: También debe mantener un ojo en el `foro de desarrollo de calibre <https://www.mobileread.com/forums/forumdisplay.php?f=240>`_. Antes de hacer cambios importantes, discútalos en el foro o contacte directamente con Kovid (su dirección de correo electrónico está por todo el código fuente).

en: Windows development environment
es: Entorno de desarrollo en Windows

en: You must also get the calibre source code separately as described above.
es: También debe obtener el código fuente de calibre por separado como se describe anteriormente.

en: Install calibre normally, using the `Windows installer <https://calibre-ebook.com/download_windows>`__. Then open a Command Prompt and change to the previously checked out calibre code folder. For example::
es: Instale calibre normalmente, usando el `instalador de Windows <https://calibre-ebook.com/download_windows>`__. A continuación, abra un símbolo del sistema y vaya a la carpeta del código de calibre previamente descargado. Por ejemplo::

en: calibre is the folder that contains the src and resources sub-folders.
es: ``calibre`` es la carpeta que contiene las subcarpetas ``src`` y ``resources``.

en: The next step is to set the environment variable ``CALIBRE_DEVELOP_FROM`` to the absolute path of the src folder. So, following the example above, it would be ``C:\Users\kovid\work\calibre\src``. `Here is a short guide <https://docs.python.org/using/windows.html#excursus-setting-environment-variables>`_ to setting environment variables on Windows.
es: El siguiente paso es establecer la variable de entorno ``CALIBRE_DEVELOP_FROM`` a la ruta absoluta de la carpeta ``src``. Siguiendo el ejemplo anterior, sería ``C:\Users\Kovid\work\calibre\src``. `He aquí una breve guía <https://docs.python.org/using/windows.html#excursus-setting-environment-variables>`_ (en inglés) para establecer variables de entorno en Windows.

en: Once you have set the environment variable, open a new command prompt and check that it was correctly set by using the command::
es: Una vez que haya establecido la variable de entorno, abra un nuevo símbolo del sistema y compruebe que se estableció correctamente utilizando la orden::

en: Setting this environment variable means that calibre will now load all its Python code from the specified location.
es: Al establecer esta variable de entorno, calibre cargará todo su código Python desde la ubicación especificada.

en: That's it! You are now ready to start hacking on the calibre code. For example, open the file :file:`src\\calibre\\__init__.py` in your favorite editor and add the line::
es: ¡Eso es todo! Ya está listo para comenzar a modificar el código de calibre. Por ejemplo, abra el archivo :file:`src\\calibre\\__init__.py` en su editor favorito y añada la línea::

en: near the top of the file. Now run the command :command:`calibredb`. The very first line of output should be ``Hello, world!``.
es: cerca del inicio del archivo. Ahora ejecute la orden :command:`calibredb`. La primera línea de salida deberá ser ``Hello, world!``.

en: You can also setup a calibre development environment inside the free Microsoft Visual Studio, if you like, following the instructions `here <https://www.mobileread.com/forums/showthread.php?t=251201>`_.
es: También puede configurar un entorno de desarrollo de calibre dentro de Microsoft Visual Studio, si lo desea, siguiendo `estas instrucciones <https://www.mobileread.com/forums/showthread.php?t=251201>`_ (en inglés).

en: macOS development environment
es: Entorno de desarrollo macOS

en: Install calibre normally using the `provided .dmg <https://calibre-ebook.com/download_osx>`__. Then open a Terminal and change to the previously checked out calibre code folder, for example::
es: Instale calibre normalmente, usando el `archivo .dmg suministrado <https://calibre-ebook.com/download_osx>`__. A continuación, abra una Terminal y vaya a la carpeta del código de calibre previamente descargado, por ejemplo::

en: calibre is the folder that contains the src and resources sub-folders. The calibre command line tools are found inside the calibre app bundle, in :file:`/Applications/calibre.app/Contents/MacOS` you should add this folder to your PATH environment variable, if you want to run the command line tools easily.
es: ``calibre`` es la carpeta que contiene las subcarpetas ``src`` y ``resources``. Las herramientas de líneas de órdenes de calibre se encuentran en el paquete de la aplicación calibre, en :file:`/Applications/calibre.app/Contents/MacOS`; debe añadir esta carpeta a la variable de entorno PATH si desea ejecutar estas herramientas cómodamente.

en: The next step is to create a bash script that will set the environment variable ``CALIBRE_DEVELOP_FROM`` to the absolute path of the src folder when running calibre in debug mode.
es: El siguiente paso es crear un script bash que establezca la variable de entorno ``CALIBRE_DEVELOP_FROM`` a la ruta absoluta de la carpeta ``src`` cuando ejecute calibre en modo de depuración.

en: Create a plain text file::
es: Cree un archivo de texto sencillo::

en: Save this file as :file:`/usr/local/bin/calibre-develop`, then set its permissions so that it can be executed::
es: Guarde este archivo como ``/usr/local/bin/calibre-develop``, después configure los permisos para poder ejecutarlo::

en: Once you have done this, run::
es: Una vez hecho esto, ejecute::

en: You should see some diagnostic information in the Terminal window as calibre starts up, and you should see an asterisk after the version number in the GUI window, indicating that you are running from source.
es: Debería aparecerer alguna información de diagnóstico en la ventana de la terminal mientras calibre se inicia, y debería ver un asterisco después del número de versión en la ventana de la interfaz gráfica, lo que indica que se está ejecutando desde el código fuente.

en: Linux development environment
es: Entorno de desarrollo Linux

en: calibre is primarily developed on Linux. You have two choices in setting up the development environment. You can install the calibre binary as normal and use that as a runtime environment to do your development. This approach is similar to that used in Windows and macOS. Alternatively, you can install calibre from source. Instructions for setting up a development environment from source are in the INSTALL file in the source tree. Here we will address using the binary as a runtime, which is the recommended method.
es: calibre está desarrollado principalmente en Linux. Tiene dos opciones para configurar el entorno de desarrollo. Puede instalar el binario de calibre de modo normal y usarlo como un entorno de ejecución para realizar su desarrollo. Este enfoque es similar al que se utiliza en Windows y macOS. Como alternativa, puede instalar calibre a partir del código fuente. Las instrucciones para configurar un entorno de desarrollo a partir del código fuente están en el archivo INSTALL en el árbol de origen. Aquí vamos a tratar el archivo binario como un entorno de ejecución, que es el método recomendado.

en: Install calibre using the `binary installer <https://calibre-ebook.com/download_linux>`_. Then open a terminal and change to the previously checked out calibre code folder, for example::
es: Instale calibre, usando el `instalador binario <https://calibre-ebook.com/download_linux>`__. A continuación, abra una terminal y vaya a la carpeta del código de calibre previamente descargado, por ejemplo::

en: The next step is to set the environment variable ``CALIBRE_DEVELOP_FROM`` to the absolute path of the src folder. So, following the example above, it would be ``/home/kovid/work/calibre/src``. How to set environment variables depends on your Linux distribution and what shell you are using.
es: El siguiente paso es establecer la variable de entorno ``CALIBRE_DEVELOP_FROM`` a la ruta absoluta de la carpeta ``src``. Siguiendo el ejemplo anterior, sería ``/home/kovid/work/calibre/src``. La manera de establecer variables de entorno depende de la distribución de Linux y la shell que esté utilizando.

en: It is recommended to use the binary installer provided from upstream. Should you insist on using a package provided by your distribution, use the ``CALIBRE_PYTHON_PATH`` and ``CALIBRE_RESOURCES_PATH`` variables instead.
es: Se recomienda usar el instalador binario suministrado en el repositorio oficial. Si insiste en usar un paquete provisto por su distribución, use las variables ``CALIBRE_PYTHON_PATH`` y ``CALIBRE_RESOURCES_PATH``.

en: Once you have set the environment variable, open a new terminal and check that it was correctly set by using the command::
es: Una vez que haya establecido la variable de entorno, abra una nueva sesión de terminal y compruebe que se ha establecido correctamente usando esta orden::

en: That's it! You are now ready to start hacking on the calibre code. For example, open the file :file:`src/calibre/__init__.py` in your favorite editor and add the line::
es: ¡Eso es todo! Ya está listo para empezar a modificar el código de calibre. Por ejemplo, abra el archivo :file:`src/calibre/__init__.py` en su editor favorito y añada la línea::

en: Having separate "normal" and "development" calibre installs on the same computer
es: Mantener una instalación «normal» y otra de «desarrollo» de calibre en el mismo equipo

en: The calibre source tree is very stable and rarely breaks, but if you feel the need to run from source on a separate test library and run the released calibre version with your everyday library, you can achieve this easily using .bat files or shell scripts to launch calibre. The example below shows how to do this on Windows using .bat files (the instructions for other platforms are the same, just use a shell script instead of a .bat file)
es: El árbol del código fuente de calibre es muy estable y rara vez se rompe, pero si siente la necesidad de ejecutar a partir del código fuente en una biblioteca de prueba separada y ejecutar la versión oficial de calibre en la biblioteca habitual, puede lograr esto fácilmente usando archivos .bat o scripts de shell para ejectuar calibre. El siguiente ejemplo muestra cómo hacer esto en Windows utilizando archivos .bat (las instrucciones para otras plataformas son las mismas, sólo tiene que utilizar un script de shell en lugar de un archivo .bat)

en: To launch the release version of calibre with your everyday library:
es: Para ejecutar la versión oficial de calibre con la biblioteca habitual:

en: calibre-normal.bat::
es: calibre-normal.bat::.

en: calibre-dev.bat::
es: calibre-dev.bat::.

en: Debugging tips
es: Consejos de depuración

en: Python is a dynamically typed language with excellent facilities for introspection. Kovid wrote the core calibre code without once using a debugger. There are many strategies to debug calibre code:
es: Python es un lenguaje de programación dinámico con excelentes prestaciones para la introspección. Kovid escribió el código central de calibre sin siquiera utilizar un depurador. Hay varias estrategias para depurar el código de calibre:

en: Using print statements
es: Usar sentencias de impresión

en: This is Kovid's favorite way to debug. Simply insert print statements at points of interest and run your program in the terminal. For example, you can start the GUI from the terminal as::
es: Ésta es la forma favorita de Kovid para depurar. Basta con insertar sentencias de impresión en los puntos de interés y ejecutar el programa en la terminal. Por ejemplo, puede iniciar la interfaz gráfica desde la terminal como::

en: Similarly, you can start the E-book viewer as::
es: Del mismo modo, se puede iniciar el visor de libros electrónicos como::

en: The e-book editor can be started as::
es: El editor de libros electrónicos puede iniciarse como::

en: Using an interactive Python interpreter
es: Usar un intérprete de Python interactivo

en: You can insert the following two lines of code to start an interactive Python session at that point::
es: Puede insertar las siguientes dos líneas de código para iniciar una sesión interactiva de Python en ese punto::

en: When running from the command line, this will start an interactive Python interpreter with access to all locally defined variables (variables in the local scope). The interactive prompt even has :kbd:`Tab` completion for object properties and you can use the various Python facilities for introspection, such as :func:`dir`, :func:`type`, :func:`repr`, etc.
es: Cuando se ejecuta desde la línea de órdenes, esto iniciará un intérprete interactivo de Python con acceso a todas las variables definidas localmente (variables en el ámbito local). El modo interactivo puede incluso completar con :kbd:`Tab` las propiedades de objetos y puede utilizar las diversas funciones de Python para la introspección, como :func:`dir`, :func:`type`, :func:`repr`, etc.

en: Using the Python debugger as a remote debugger
es: Usar el depurador de Python como un depurador remoto

en: You can use the builtin Python debugger (pdb) as a remote debugger from the command line. First, start the remote debugger at the point in the calibre code you are interested in, like this::
es: Puede utilizar el depurador incorporado de Python (pdb) como un depurador remoto desde la línea de órdenes. En primer lugar, inicie el depurador remoto en el punto del código de calibre en el que esté interesado, de esta forma::

en: Then run calibre, either as normal, or using one of the calibre-debug commands described in the previous section. Once the above point in the code is reached, calibre will freeze, waiting for the debugger to connect.
es: A continuación ejecute calibre, ya sea en modo normal o usando una de las órdenes de depuración de calibre descritas en la sección anterior. Una vez que se alcanza el punto del código anterior, calibre se detendrá, esperando a que se conecte el depurador.

en: Now open a terminal or command prompt and use the following command to start the debugging session::
es: Ahora abra una terminal o un símbolo de sistema y utilice el siguiente comando para iniciar la sesión de depuración::

en: You can read about how to use the Python debugger in the `Python stdlib docs for the pdb module <https://docs.python.org/library/pdb.html#debugger-commands>`_.
es: Puede leer acerca de cómo usar el depurador de Python en la `documentación de stdlib de Python para el módulo pdb <https://docs.python.org/library/pdb.html#debugger-commands>`_.

en: By default, the remote debugger will try to connect on port 4444. You can change it, by passing the port parameter to both the set_trace() and the cli() functions above, like this: ``set_trace(port=1234)`` and ``cli(port=1234)``.
es: De forma predeterminada, el depurador remoto intentará conectarse con el puerto 4444. Puede cambiarlo, pasando el parámetro de puerto tanto a la función set_trace() como a cli(), de este modo: ``set_trace(port=1234)`` y ``cli(port=1234)``.

en: The Python debugger cannot handle multiple threads, so you have to call set_trace once per thread, each time with a different port number.
es: El depurador de Python no puede manejar múltiples hilos, así que tiene que llamar set_trace una vez por hilo, cada vez con un número de puerto diferente.

en: Using the debugger in your favorite Python IDE
es: Usar el depurador en su IDE de Python favorito

en: It is possible to use the builtin debugger in your favorite Python IDE, if it supports remote debugging. The first step is to add the calibre src checkout to the ``PYTHONPATH`` in your IDE. In other words, the folder you set as ``CALIBRE_DEVELOP_FROM`` above, must also be in the ``PYTHONPATH`` of your IDE.
es: Es posible utilizar el depurador incorporado en su IDE de Python favorito, si éste admite depuración remota. El primer paso es añadir la el src de calibre descargado a ``PYTHONPATH`` en el IDE. En otras palabras, la carpeta que habilitó como ``CALIBRE_DEVELOP_FROM`` anteriormente también debe estar en el ``PYTHONPATH`` del IDE`.

en: Then place the IDE's remote debugger module into the :file:`src` sub-folder of the calibre source code checkout. Add whatever code is needed to launch the remote debugger to calibre at the point of interest, for example in the main function. Then run calibre as normal. Your IDE should now be able to connect to the remote debugger running inside calibre.
es: A continuación coloque el módulo depurador remoto del IDE en la subcarpeta :file:`src` del código fuente de calibre. Añada cualquier código que necesite para iniciar el depurador remoto en calibre en el punto de interés, por ejemplo, en la función main. A continuación, ejecute calibre de modo normal. El IDE ahora debería ser capaz de conectar con el depurador remoto ejecutándose dentro de calibre.

en: Executing arbitrary scripts in the calibre Python environment
es: Ejecutar scripts arbitrarios en el entorno Python de calibre

en: The :command:`calibre-debug` command provides a couple of handy switches to execute your own code, with access to the calibre modules::
es: La orden :command:`calibre-debug` suministra un par de interruptores útiles para ejecutar su propio código, con acceso a los módulos de calibre::

en: is great for testing a little snippet of code on the command line. It works in the same way as the -c switch to the Python interpreter::
es: es ideal para probar un pequeño fragmento de código en la línea de órdenes. Funciona de la misma manera que la opción -c del intérprete de Python::

en: can be used to execute your own Python script. It works in the same way as passing the script to the Python interpreter, except that the calibre environment is fully initialized, so you can use all the calibre code in your script. To use command line arguments with your script, use the form::
es: puede utilizarse para ejecutar su propio script de Python. Funciona de la misma manera que pasar el script por el intérprete de Python, excepto que el entorno de calibre está totalmente inicializado, así que puede utilizar todo el código de calibre en el script. Para utilizar argumentos de línea de órdenes con los scripts utilice la forma::

en: The ``--`` causes all subsequent arguments to be passed to your script.
es: El ``--`` hace que todos los argumentos posteriores sean pasados al script.

en: Using calibre in your projects
es: Usar calibre en sus proyectos

en: It is possible to directly use calibre functions/code in your Python project. Two ways exist to do this:
es: Es posible usar directamente las funciones y código de calibre en un proyecto de Python. Existen dos maneras de hacer esto:

en: Binary install of calibre
es: Instalación binaria de calibre

en: If you have a binary install of calibre, you can use the Python interpreter bundled with calibre, like this::
es: Si posee una instalación binaria de calibre, puede utilizar el intérprete de Python incluido con calibre, de esta forma::

en: Source install on Linux
es: Instalación de código fuente sobre Linux

en: In addition to using the above technique, if you do a source install on Linux, you can also directly import calibre, as follows::
es: Además de usar la técnica anterior, si realiza una instalación de código fuente en Linux, también puede importar directamente calibre de la siguiente manera::

en: It is essential that you import the init_calibre module before any other calibre modules/packages as it sets up the interpreter to run calibre code.
es: Es esencial que importe el módulo init_calibre antes que cualquier otro módulo o paquete de calibre, pues esto configura el intérprete para ejecutar el código de calibre.

en: API documentation for various parts of calibre
es: Documentación de la API de varias partes de calibre
