calibre - en to ru translation catalogue (104 entries)

en: Setting up a calibre development environment
ru: Настройка среды разработки 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.
ru: У calibre полностью открытый исходный код, лицензированный `GNU GPL v3 <https://www.gnu.org/licenses/gpl.html>`_. То есть вы можете загружать и изменять программу по собственному желанию. В этом разделе вы узнаете, как настроить среду разработки calibre на выбранной операционной системе. В основном calibre написана на `Python <https://www.python.org>`_ со вставками кода на C/C++ для повышения скорости и взаимодействия с системой. Обратите внимание, что calibre требует, как минимум, Python 3.8.

en: Contents
ru: Содержание

en: Design philosophy
ru: Философия разработки

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`.
ru: Истоки calibre лежат в мире Unix, что означает высокую модульность её дизайна. Модули взаимодействуют друг с другом через чётко определённые интерфейсы. Это заметно облегчает добавление новых возможностей и исправление ошибок, вызывая бурный темп развития. Из-за своих корней calibre имеет полноценный интерфейс командной строки для всех функций, задокументированный в разделе «:doc:`generated/ru/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 fewer than 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>`_.
ru: Модульная конструкция calibre выражается через «Плагины». Существует :ref:`tutorial` по написанию плагинов calibre. Напр., добавление поддержки нового устройства в calibre обычно включает в себя написание менее 100 строк кода в виде плагина драйвера устройства. Вы можете просмотреть `встроенные драйверы <https://github.com/kovidgoyal/calibre/tree/master/src/calibre/devices>`_. Точно так же добавление поддержки новых форматов преобразования включает в себя написание плагинов формата ввода/вывода. Другим примером модульного дизайна является :ref:`recipe system` для получения новостей. Дополнительные примеры плагинов, предназначенных для добавления функций в calibre, см. В разделе «Индекс плагинов <https://www.mobileread.com/forums/showthread.php?p=1362767#post1362767>`_.

en: Code layout
ru: Макет кода

en: All the calibre Python code is in the ``calibre`` package. This package contains the following main sub-packages
ru: Весь Python код calibre находится в пакете ``calibre``. Этот пакет содержит следующие основные подпакеты

en: devices - All the device drivers. Just look through some of the built-in drivers to get an idea for how they work.
ru: devices — все драйверы устройств. Просто просмотрите некоторые встроенные драйверы, чтобы понять, как они работают.

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.
ru: Подробнее см.: ``devices.interface``, определяющий интерфейс, поддерживаемый драйверами устройств, и ``devices.usbms``, определяющий универсальный драйвер, который подключается к устройству USBMS. Все драйверы calibre на базе USBMS наследуются от него.

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``.
ru: e-books — весь код преобразования электронных книг/метаданных. Хорошая отправная точка — ``calibre.ebooks.conversion.cli``, который является модулем, включающим команду :command:`ebook-convert`. Процесс преобразования контролируется через ``translation.plumber``. Код, не зависящий от формата, находится в ``ebooks.oeb``, а код, зависящий от формата, — в ``ebooks.format_name``.

en: Metadata reading, writing, and downloading is all in ``ebooks.metadata``
ru: Чтение, запись и загрузка метаданных — всё это в ``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`.
ru: Преобразование происходит в конвейере (о структуре конвейера см. :ref:`conversion-introduction`). Конвейер состоит из входного плагина, различных трансформаций и выходного плагина. Код, который создаёт и управляет конвейером, находится в :file:`plumber.py`. Конвейер работает над представлением электронной книги, похожей на разархивированный epub, с манифестом, spine, toc, guide, html-содержимым и т. д. Класс, который управляет этим представлением, — OEBBook в ``ebooks.oeb.base``, различные трансформации, применяемые к книге во время конвертации, находятся в :file:`oeb/transforms/*.py`. А входные и выходные плагины — в :file:`translation/plugins/*.py`.

en: E-book editing happens using a different container object. It is documented in :ref:`polish_api`.
ru: Редактирование электронной книги происходит с использованием другого объекта контейнера. Это задокументировано в :ref:`polish_api`.

en: db - The database back-end. See :ref:`db_api` for the interface to the calibre library.
ru: db — серверная часть базы данных. См.: :ref:`db_api` об интерфейсе библиотеки calibre.

en: Content server: ``srv`` is the calibre Content server.
ru: Контент-сервер: ``srv`` — это контент-сервер 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``.
ru: gui2 — графический интерфейс пользователя. Инициализация GUI происходит в ``gui2.main`` и ``gui2.ui``. Программа просмотра электронных книг находится в ``gui2.viewer``. Редактор электронных книг находится в ``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>`_.
ru: Если вы хотите найти точки входа для всех исполняемых файлов calibre различного уровня, посмотрите на структуру ``entry_points`` в `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.
ru: Если вам нужна помощь в понимании кода, отправьте сообщение на `форум разработчиков <https://www.mobileread.com/forums/forumdisplay.php?f=240>`_, и вы, скорее всего, получите помощь от одного из многих разработчиков calibre.

en: Getting the code
ru: Получение кода

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>`.
ru: Получить исходный код calibre можно двумя способами: при помощи системы управления версиями или прямой загрузкой архива :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::
ru: calibre использует `Git <https://www.git-scm.com/>`_, распределенную систему контроля версий. Git доступен на всех платформах, поддерживаемых calibre. После установки Git вы можете получить исходный код calibre с помощью команды::

en: On Windows you will need the complete path name, that will be something like :file:`C:\\Program Files\\Git\\git.exe`.
ru: В Windows вам потребуется полный путь, который будет выглядеть примерно так :file:`C:\\Program Files\\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).
ru: calibre — это очень большой проект с очень длинной историей управления исходным кодом, поэтому описанное выше может занять некоторое время (от 10 минут до часа в зависимости от скорости вашего интернета).

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>`.
ru: Хотите получить код быстрее - исходный код последней версии всегда доступен в виде :website_base:`archive <dist/src>`.

en: To update a branch to the latest code, use the command::
ru: Чтобы обновить ветку до последнего кода, используйте команду::

en: You can also browse the code at `GitHub <https://github.com/kovidgoyal/calibre>`_.
ru: Вы также можете просмотреть код на `GitHub <https://github.com/kovidgoyal/calibre>`_

en: Submitting your changes to be included
ru: Отправка ваших изменений для включения

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::
ru: Если вы планируете внести только несколько небольших изменений, вы можете внести свои изменения и создать «merge directive», которую затем можете прикрепить к заявке в `calibre bug tracker <https://bugs.launchpad.net/calibre>`_. Для этого внесите свои изменения, затем запустите::

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::
ru: Это создаст файл :file:`my-changes` в текущей папке, просто прикрепите его к тикету на трекере ошибок calibre <https://bugs.launchpad.net/calibre>`_. Обратите внимание, что сюда будут включены *все* сделанные вами коммиты. Если вы хотите отправить только несколько коммитов, вам нужно изменить ``origin/master`` выше. Чтобы отправить только последний коммит, используйте::

en: To send the last *n* commits, replace *1* with *n*, for example, for the last 3 commits::
ru: Чтобы отправить последние *n* коммитов, замените *1* на *n*, напр., для последних 3 коммитов::

en: Be careful to not include merges when using ``HEAD~n``.
ru: Будьте осторожны, чтобы не включать слияния при использовании ``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:
ru: Если вы планируете много заниматься разработкой, то лучше всего создать учетную запись `GitHub <https://github.com>`__. Ниже приведено основное руководство по настройке собственного форка calibre таким образом, чтобы вы могли отправлять пулл-реквесты для включения в основной репозиторий calibre:

en: Setup git on your machine as described in this article: `Setup Git <https://help.github.com/articles/set-up-git>`_
ru: Настройте git на своём компьютере, как описано в статье: `Setup Git <https://help.github.com/articles/set-up-git>`_

en: Setup ssh keys for authentication to GitHub, as described here: `Generating SSH keys <https://help.github.com/articles/generating-ssh-keys>`_
ru: Настройте ssh-ключи для аутентификации на GitHub, как описано здесь: `Генерация SSH-ключей <https://help.github.com/articles/generating-ssh-keys>`_

en: Go to https://github.com/kovidgoyal/calibre and click the :guilabel:`Fork` button.
ru: Перейдите на https://github.com/kovidgoyal/calibre и нажмите кнопку :guilabel:`Fork`.

en: In a Terminal do::
ru: В Терминале делай::

en: Replace <username> above with your GitHub username. That will get your fork checked out locally.
ru: Замените <username> выше своим именем пользователя GitHub. Это позволит проверить ваш форк локально.

en: You can make changes and commit them whenever you like. When you are ready to have your work merged, do a::
ru: Вы можете вносить изменения и коммитить их в любое время. Когда вы будете готовы объединить свою работу, сделайте::

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.
ru: и перейдите к ``https://github.com/<username>/calibre`` и нажмите кнопку :guilabel:`Pull Request`, чтобы сгенерировать пул-реквест, который можно объединить.

en: You can update your local copy with code from the main repo at any time by doing::
ru: Вы можете в любое время обновить свою локальную копию кодом из основного репозитория, выполнив::

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).
ru: Вам также следует следить за `форумом по разработке calibre <https://www.mobileread.com/forums/forumdisplay.php?f=240>`_. Прежде чем вносить серьезные изменения, вы должны обсудить их на форуме или напрямую связаться с Ковидом (его адрес электронной почты указан по всему исходному коду).

en: Windows development environment
ru: Среда разработки под Windows

en: You must also get the calibre source code separately as described above.
ru: Вы также должны получить исходный код calibre отдельно, как описано выше.

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::
ru: Установите calibre обычным образом, используя `Windows installer <https://calibre-ebook.com/download_windows>`__. Затем откройте командную строку и перейдите в ранее проверенную папку кода calibre. Напр.::

en: calibre is the folder that contains the src and resources sub-folders.
ru: calibre - это папка, содержащая подпапки src и 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.
ru: Следующий шаг -  установка переменной среды CALIBRE_DEVELOP_FROM = абсолютный путь к папке src. Итак, следуя приведенному выше примеру, это будет ``C:\Users\kovid\work\calibre\src``. `Вот краткое руководство <https://docs.python.org/using/windows.html#excursus-setting-environment-variables>`_ по настройке переменных среды в 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::
ru: После того, как вы установили переменную окружения, откройте новую командную строку и проверьте, что она была правильно установлена, используя команду::

en: Setting this environment variable means that calibre will now load all its Python code from the specified location.
ru: Установка этой переменной окружения означает, что calibre теперь будет загружать весь свой код Python из указанного места.

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::
ru: Это всё! Теперь вы готовы взломать код calibre. Напр., откройте файл :file:`src\\calibre\\__init__.py` в вашем любимом редакторе и добавьте строку::

en: near the top of the file. Now run the command :command:`calibredb`. The very first line of output should be ``Hello, world!``.
ru: в верхней части файла. Теперь запустите команду :command:`calibredb`. Самая первая строка вывода должна быть ``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>`_.
ru: Вы также можете настроить окужение разработки calibre в бесплатной Microsoft Visual Studio, если хотите, следуя инструкциям `здесь <https://www.mobileread.com/forums/showthread.php?t=251201>`_.

en: macOS development environment
ru: Среда разработки под 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::
ru: Установите calibre обычным образом, используя `предоставленный .dmg <https://calibre-ebook.com/download_osx>`__. Затем откройте Terminal и перейдите в ранее проверенную папку кода calibre. Напр.::

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.
ru: calibre - это папка, содержащая подпапки src и resources. Инструменты командной строки calibre находятся внутри пакета приложений calibre, в :file:`/Applications/calibre.app/Contents/MacOS`, вы должны добавить эту папку в переменную среды PATH, если вы хотите легко запускать инструменты командной строки.

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.
ru: Следующий шаг - создание сценария bash, который установит для переменной среды ``CALIBRE_DEVELOP_FROM`` абсолютный путь к папке src при запуске calibre в режиме отладки.

en: Create a plain text file::
ru: Создайте простой текстовый файл::

en: Save this file as :file:`/usr/local/bin/calibre-develop`, then set its permissions so that it can be executed::
ru: Сохраните этот файл как :file:`/usr/local/bin/calibre-develop`, затем установите ему права доступа так, чтобы он мог выполняться::

en: Once you have done this, run::
ru: Как только вы это сделали, запустите::

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.
ru: При запуске calibre вы должны увидеть диагностическую информацию в окне терминала, а в окне графического интерфейса вы увидите звездочку после номера версии, указывающую, что вы запустились из исходников.

en: Linux development environment
ru: Среда разработки под 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.
ru: calibre в основном разработан на Linux. У вас есть два варианта настройки среды разработки. Вы можете установить бинарный файл calibre как обычно и использовать его в качестве среды выполнения для разработки. Этот подход аналогичен тому, который используется в Windows и macOS. Кроме того, вы можете установить calibre из исходных кодов. Инструкции по настройке среды разработки из исходного кода находятся в файле INSTALL в дереве исходного кода. Здесь мы рассмотрим использование двоичного файла в качестве среды выполнения, что является рекомендуемым методом.

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::
ru: Установите calibre обычным образом, используя `binary installer <https://calibre-ebook.com/download_linux>`_. Затем откройте терминал и перейдите в ранее проверенную папку кода calibre. Напр.::

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.
ru: Следующий шаг - установка переменной среды CALIBRE_DEVELOP_FROM = абсолютный путь к папке src. Итак, следуя приведенному выше примеру, это будет /home/kovid/work/calibre/src. Как установить переменные среды, зависит от вашего дистрибутива Linux и используемой оболочки.

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. You can get these by running ``calibre-debug --paths``. But note that distribution calibre packages are often terminally broken and are completely unsupported.
ru: Рекомендуется использовать бинарный установщик, предоставленный из апстрима. Если вы настаиваете на использовании пакета, предоставленного вашим дистрибутивом, используйте вместо этого переменные ``CALIBRE_PYTHON_PATH`` и ``CALIBRE_RESOURCES_PATH``. Вы можете получить их, выполнив команду ``calibre-debug --paths``. Но обратите внимание, что дистрибутивные пакеты calibre часто безнадежно ломаются и полностью не поддерживаются.

en: Once you have set the environment variable, open a new terminal and check that it was correctly set by using the command::
ru: После того, как вы установили переменную окружения, откройте новый терминал и проверьте, что она была правильно установлена, используя команду::

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::
ru: Это всё! Теперь вы готовы взломать код calibre. Напр., откройте файл :file:`src\\calibre\\__init__.py` в вашем любимом редакторе и добавьте строку::

en: Having separate "normal" and "development" calibre installs on the same computer
ru: Раздельная установка «обычной» и «разрабатываемой» версий calibre на одном компьютере

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)
ru: Исходное дерево кодов calibre очень стабильно и редко ломается, но если вы чувствуете необходимость запуска из источника в отдельной тестовой библиотеке и запускаете выпущенную версию calibre с вашей повседневной библиотекой, вы можете легко добиться этого, используя файлы .bat или сценарии оболочки для запуска calibre. В приведенном ниже примере показано, как сделать это в Windows с использованием файлов .bat (инструкции для других платформ такие же, просто используйте сценарий оболочки вместо файла .bat)

en: To launch the release version of calibre with your everyday library:
ru: Для запуска стабильной версии Calibre с вашей основной библиотекой:

en: Debugging tips
ru: Советы по отладке

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:
ru: Python — это динамически типизированный язык с отличными возможностями для самоанализа. Ковид написал код ядра calibre без единого использования отладчика. Существует много стратегий для отладки кода calibre:

en: Using print statements
ru: Использование print statements

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::
ru: Это любимый способ отладки Ковида. Просто вставьте операторы печати в интересующие места и запустите вашу программу в терминале. Напр., вы можете запустить графический интерфейс из терминала как::

en: Similarly, you can start the E-book viewer as::
ru: Точно так же вы можете запустить просмотрщик электронных книг как::

en: The e-book editor can be started as::
ru: Редактор электронных книг может быть запущен так::

en: Using an interactive Python interpreter
ru: Использование интерактивного интерпретатора Python

en: You can insert the following two lines of code to start an interactive Python session at that point::
ru: Вы можете вставить следующие две строки кода, чтобы начать интерактивный сеанс Python в этой точке::

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.
ru: При запуске из командной строки запускается интерактивный интерпретатор Python с доступом ко всем локально определенным переменным (переменным в локальной области). Интерактивная подсказка даже имеет завершение по :kbd:`Tab` для свойств объекта, и вы можете использовать различные возможности Python для интроспекции, такие как :func:`dir`, :func:`type`, :func:`repr` и т. д.

en: Using the Python debugger as a remote debugger
ru: Использовать отладчик Python как удаленный отладчик

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::
ru: Вы можете использовать встроенный отладчик Python (pdb) в качестве удаленного отладчика из командной строки. Сначала запустите удаленный отладчик в интересующем вас месте кода calibre, напр.::

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.
ru: Затем запустите calibre, как обычно, или с помощью одной из команд отладки calibre, описанных в предыдущем разделе. Как только вышеуказанная точка в коде будет достигнута, calibre остановится, ожидая подключения отладчика.

en: Now open a terminal or command prompt and use the following command to start the debugging session::
ru: Теперь откройте терминал или командную строку и используйте следующую команду для запуска сеанса отладки::

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>`_.
ru: Прочитать о том, как использовать отладчик Python, можно в `Документации Python stdlib для модуля 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)``.
ru: По умолчанию удаленный отладчик будет пытаться подключиться к порту 4444. Вы можете изменить его, передав параметр порта обеим функциям set_trace() и cli(), описанным выше, напр.: ``set_trace(port=1234)`` и ``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.
ru: Отладчик Python не может обрабатывать несколько потоков, поэтому вы должны вызывать set_trace один раз для потока, каждый раз с другим номером порта.

en: Using the debugger in your favorite Python IDE
ru: Использование отладчика в вашей любимой Python IDE

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.
ru: Можно использовать встроенный отладчик в вашей любимой среде разработки Python, если он поддерживает удаленную отладку. Первый шаг - добавить проверку calibre src в PYTHONPATH в вашей среде IDE. Другими словами, папка, которую вы установили как CALIBRE_DEVELOP_FROM выше, также должна находиться в PYTHONPATH вашей 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.
ru: Затем поместите модуль удаленного отладчика IDE в подпапку :file:`src` проверки исходного кода calibre. Добавьте любой код, необходимый для запуска удаленного отладчика до нужного уровня, напр., в основной функции. Затем запустите calibre как обычно. Теперь ваша IDE должна иметь возможность подключаться к удаленному отладчику, работающему внутри calibre.

en: Executing arbitrary scripts in the calibre Python environment
ru: Выполнение произвольных скриптов в окружении Python calibre

en: The :command:`calibre-debug` command provides a couple of handy switches to execute your own code, with access to the calibre modules::
ru: Команда :command:`calibre-debug` предоставляет несколько удобных ключей для выполнения собственного кода с доступом к модулям 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::
ru: отлично подходит для тестирования небольшого фрагмента кода в командной строке. Он работает так же, как ключ -c для интерпретатора 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::
ru: может быть использован для выполнения вашего собственного скрипта Python. Он работает так же, как и передача скрипта интерпретатору Python, за исключением того, что окружение calibre полностью инициализировано, поэтому вы можете использовать весь код calibre в своем скрипте. Чтобы использовать аргументы командной строки с вашим скриптом, используйте форму::

en: The ``--`` causes all subsequent arguments to be passed to your script.
ru: ``--`` заставляет все последующие аргументы быть переданными в ваш скрипт.

en: Running the calibre test suite
ru: Запуск набора тестов Calibre

en: The calibre test suite can be run by::
ru: Набор тестов Calibre можно запустить с помощью:

en: Using calibre in your projects
ru: Использование calibre в собственных проектах

en: It is possible to directly use calibre functions/code in your Python project. Two ways exist to do this:
ru: Можно напрямую использовать функции/код calibre в вашем проекте Python. Существует два способа сделать это:

en: Binary install of calibre
ru: Установка исполняемого файла calibre

en: If you have a binary install of calibre, you can use the Python interpreter bundled with calibre, like this::
ru: Если у вас есть бинарная установка calibre, вы можете использовать интерпретатор Python в комплекте с calibre, напр.::

en: Source install on Linux
ru: Установка из исходного кода в 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::
ru: Помимо использования описанной выше техники, если вы выполняете установку из исходного кода в Linux, вы также можете напрямую импортировать calibre, как показано ниже::

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.
ru: Важно, чтобы вы импортировали модуль init_calibre перед любыми другими модулями/пакетами calibre, поскольку он настраивает интерпретатор для запуска кода calibre.

en: API documentation for various parts of calibre
ru: Документация API различных частей calibre
