calibre - en to uk translation catalogue (104 entries)

en: Setting up a calibre development environment
uk: Налаштовування середовища для розробки 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.
uk: Увесь початковий код 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
uk: Зміст

en: Design philosophy
uk: Засади структури програми

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`.
uk: calibre походить зі світу Unix, і це означає, що значна частина можливостей програми винесена у модулі. Ці модулі взаємодіють між собою за допомогою добре визначених інтерфейсів. Це робить додавання нових можливостей та виправлення вад у calibre дуже простим і надає розвитку програми шаленого темпу. Через своє походження calibre має всеосяжний інтерфейс командного рядка для усіх свої функціональних можливостей. Документацію з нього можна знайти у розділі :doc:`generated/uk/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>`_.
uk: Модульність calibre реалізується ``додатками``. У нашому підручнику є :ref:`розділ <customize>` щодо написання додатків до calibre. Наприклад, додавання підтримки нового пристрою у calibre типово полягає у написанні менш ніж 100 рядків коду у формі додатка драйвера пристрою. Ви можете ознайомитися зі списком `вбудованих драйверів <https://github.com/kovidgoyal/calibre/tree/master/src/calibre/devices>`_. Так само, додавання підтримки нових форматів перетворення полягає у написанні додатків форматів введення і виведення даних. Іншим прикладом модульної побудови є :ref:`система рецептів <news>` для отримання новин. З іншими прикладами додатків, розроблених для розширення можливостей calibre, можна ознайомитися `тут <https://www.mobileread.com/forums/showthread.php?p=1362767#post1362767>`_.

en: Code layout
uk: Структура коду

en: All the calibre Python code is in the ``calibre`` package. This package contains the following main sub-packages
uk: Увесь код мовою 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.
uk: 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.
uk: Докладніший опис можна знайти у ``devices.interface``, визначенні інтерфейсу підтримки драйверів пристроїв, та у ``devices.usbms``, визначенні типового драйвера, який встановлює з’єднання із пристроєм USBMS. Усі драйвери на основі USBMS у calibre успадковуються від цього драйвера.

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``.
uk: ebooks — увесь код, який пов’язано із перетворенням та метаданими електронних книг. Варто розпочати з ``calibre.ebooks.conversion.cli``, модуля, який забезпечує роботу програми :command:`ebook-convert`. Процесом перетворення керує ``conversion.plumber``. Незалежний від форматів код зберігається у ``ebooks.oeb``, а залежний від форматів — у ``ebooks.format_name``.

en: Metadata reading, writing, and downloading is all in ``ebooks.metadata``
uk: Засоби читання, записування та отримання метаданих зосереджено у ``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`.
uk: Перетворення виконується у конвеєрі. Зі структурою конвеєра можна ознайомитися у розділі :ref:`conversion-introduction`. Конвеєр складається із додатка вхідних даних, різноманітних перетворено та додатка вихідних даних. Код, який будує конвеєр і керує ним, зберігається у :file:`plumber.py`. Конвеєр працює над створенням представлення книги у формі розпакованого файла epub, із маніфестом manifest, вмістом, змістом, путівником, даними html тощо. Класом, який керує цим представленням, є клас OEBBook у ``ebooks.oeb.base``. Різноманітні перетворення, які застосовуються до книги під час обробки, зберігаються у :file:`oeb/transforms/*.py`. Код додатків вхідних і вихідних даних зберігається у :file:`conversion/plugins/*.py`.

en: E-book editing happens using a different container object. It is documented in :ref:`polish_api`.
uk: Редагування електронних книг відбувається за допомогою іншого об’єкта-контейнера. Його документовано у розділі :ref:`polish_api`.

en: db - The database back-end. See :ref:`db_api` for the interface to the calibre library.
uk: db — модуль бази даних. Див. розділ :ref:`db_api`, щоб дізнатися більше про інтерфейс бібліотеки calibre.

en: Content server: ``srv`` is the calibre Content server.
uk: Сервер даних: «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``.
uk: gui2 — графічний інтерфейс користувача. Ініціалізація інтерфейсу виконується у ``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>`_.
uk: Якщо вам потрібен доступ до усіх виконуваних файлів 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.
uk: Якщо хочете краще зрозуміти код, створіть тему із вашим питанням на `форумі розробників <https://www.mobileread.com/forums/forumdisplay.php?f=240>`_. Найімовірніше, там ви отримаєте кваліфіковану відповідь від одного з багатьох розробників calibre.

en: Getting the code
uk: Отримання коду

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>`.
uk: Отримати початковий код calibre можна у два способи: за допомогою системи керування версіями та безпосереднього отримання :website_base:`архіву з кодом програми <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::
uk: Для керування версіями у 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`.
uk: У 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).
uk: 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>`.
uk: Якщо ви хочете отримати код швидше, початковий код найсвіжішого випуску завжди можна отримати у форматі :website_base:`архіву <dist/src>`.

en: To update a branch to the latest code, use the command::
uk: Щоб оновити гілку до актуального стану, скористайтеся такою командою:

en: You can also browse the code at `GitHub <https://github.com/kovidgoyal/calibre>`_.
uk: Ви також можете переглядати код на `GitHub <https://github.com/kovidgoyal/calibre>`_.

en: Submitting your changes to be included
uk: Надсилання ваших змін для включення до програми

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::
uk: Якщо ви плануєте внести лише незначні зміни, ви можете створити з них «інструкцію об’єднання», а потім долучити її до квитка у `системі стеження за вадами <https://bugs.launchpad.net/calibre>`_ 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::
uk: У результаті у поточній теці буде створено файл :file:`my-changes`, який слід просто долучити до квитка у `системі стеження за вадами <https://bugs.launchpad.net/calibre>`_ calibre. Зауважте, що до латки буде включено *усі* внесені вами зміни. Якщо ви хочете надіслати лише частину змін, вам слід замінити ``origin/master`` у наведених вище командах. Щоб надіслати лише останню зміну, скористайтеся такою командою::

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

en: Be careful to not include merges when using ``HEAD~n``.
uk: Будьте обережні: не включайте об’єднання, якщо користуєтеся ``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:
uk: Якщо ви плануєте значний розвиток коду calibre, вам варто створити обліковий запис на `GitHub <https://github.com>`__. Нижче наведено базові настанови щодо створення власної копії коду calibre у спосіб, який надасть вам змогу надсилати запити щодо об’єднання (pull requests) для включення вашого коду до основного сховища коду calibre:

en: Setup git on your machine as described in this article: `Setup Git <https://help.github.com/articles/set-up-git>`_
uk: Налаштуйте 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>`_
uk: Налаштуйте ключі ssh для розпізнавання на GitHub, як це описано тут: `Generating SSH keys <https://help.github.com/articles/generating-ssh-keys>`_

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

en: In a Terminal do::
uk: У терміналі віддайте команди::

en: Replace <username> above with your GitHub username. That will get your fork checked out locally.
uk: Замініть <ім’я_користувача> у наведеній вище команді на ваше ім’я користувача GitHub. Таким чином, ви отримаєте копію клонованого сховища на вашому комп’ютері.

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

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.
uk: перейдіть на сторінку ``https://github.com/<ім’я користувача>/calibre`` і натисніть кнопку :guilabel:`Pull Request`, щоб створити запит на об’єднання.

en: You can update your local copy with code from the main repo at any time by doing::
uk: Ви будь-коли можете оновити вашу локальну копію кодом із основного сховища такою командою::

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

en: Windows development environment
uk: Середовище для розробки у Windows

en: You must also get the calibre source code separately as described above.
uk: Вам слід також окремо отримати початковий код 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::
uk: Встановіть calibre у звичний спосіб, за допомогою `пакунка для встановлення у Windows <https://calibre-ebook.com/download_windows>`__. Далі, відкрийте вікно командного рядка і перейдіть до отриманої теки з кодом calibre. Приклад::

en: calibre is the folder that contains the src and resources sub-folders.
uk: 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.
uk: Наступним кроком буде встановлення для змінної середовища ``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::
uk: Після встановлення змінної середовища відкрийте нове вікно командного рядка і перевірте, чи все працює, за допомогою такої команди::

en: Setting this environment variable means that calibre will now load all its Python code from the specified location.
uk: Встановлення цієї змінної середовища означає, що 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::
uk: Ось і все! Тепер ви готові до роботи з кодом 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!``.
uk: на початку файла. Тепер віддайте команду :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>`_.
uk: Ви також можете налаштувати середовище розробки calibre у вільній версії Microsoft Visual Studio, якщо хочете, виконавши настанови, викладені `тут <https://www.mobileread.com/forums/showthread.php?t=251201>`_.

en: macOS development environment
uk: Середовище розробки у 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::
uk: Встановіть calibre у звичний спосіб, за допомогою `пакунка для встановлення .dmg <https://calibre-ebook.com/download_osx>`__. Далі, відкрийте вікно термінала і перейдіть до отриманої теки з кодом 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.
uk: 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.
uk: Наступним кроком є створення скрипту bash, який визначити для змінної середовища ``CALIBRE_DEVELOP_FROM`` значення абсолютного шляху до теки src під час запуску calibre у режимі діагностики.

en: Create a plain text file::
uk: Створіть звичайний текстовий файл::

en: Save this file as :file:`/usr/local/bin/calibre-develop`, then set its permissions so that it can be executed::
uk: Збережіть цей файл як :file`/usr/bin/calibre-develop`. Далі, встановіть права доступу так, щоб його можна було виконувати::

en: Once you have done this, run::
uk: Щойно ви це зробите, віддайте команду::

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.
uk: Ви маєте побачити певну діагностичну інформацію у вікні термінала під час запуску calibre, і ви маєте побачити зірочку після номеру версії у вікні графічного інтерфейсу, що означає, що програму запущено із початкових кодів.

en: Linux development environment
uk: Середовище розробки у 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.
uk: Основним середовищем розробки 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::
uk: Встановіть calibre за допомогою `бінарного пакунка для встановлення <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.
uk: Наступним кроком є встановлення для змінної середовища ``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.
uk: Рекомендуємо скористатися двійковим пакунком для встановлення, який надають розробники програми. Якщо все ж хочете скористатися пакунком з вашого дистрибутиву, скористайтеся змінними ``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::
uk: Після встановлення змінної середовища відкрийте новий термінал і перевірте, чи все працює, за допомогою такої команди::

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::
uk: Ось і все! Тепер ви готові до роботи з кодом calibre. Наприклад, відкрийте файл :file:`src/calibre/__init__.py` у вашому улюбленому редакторі і додайте такий рядок::

en: Having separate "normal" and "development" calibre installs on the same computer
uk: Використання окремих «звичайного» і «розробницького» встановлень 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)
uk: Початкові коди calibre є доволі стабільними, критичні помилки у них є дуже рідкісним явищем, але якщо ви хочете запустити програму з початкових кодів на окремій тестовій бібліотеці і користуватися стабільною версією calibre для вашої справжньої бібліотеки, досягти цього можна за допомогою запуску calibre з файлів .bat або скриптів оболонки. У наведеному нижче прикладі показано, як досягти цього у Windows за допомогою файлів .bat (настанови для інших платформ дуже подібні, але у них використовуватиметься скрипт командної оболонки, а не файл .bat)

en: To launch the release version of calibre with your everyday library:
uk: Щоб запустити версію для випуску calibre з вашою щоденною бібліотекою, зробіть так:

en: Debugging tips
uk: Підказки щодо діагностики

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:
uk: Python — мова з динамічною типізацією та чудовими можливостями з інтроспекції. Ковід створив код основних бібліотек calibre без жодного застосування засобів діагностики. Втім, існує багато стратегій діагностування коду calibre:

en: Using print statements
uk: Використання інструкцій print

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::
uk: Цей улюблений спосіб діагностування Ковіда. Просто вставте інструкції print у потрібні вам місця у коді і запустіть програму з термінала. Наприклад, ви можете запустити графічний інтерфейс програми з термінала ось так::

en: Similarly, you can start the E-book viewer as::
uk: Так само, ви можете запустити засіб для перегляду електронних книг ось так::

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

en: Using an interactive Python interpreter
uk: Використання інтерактивного інтерпретатора Python

en: You can insert the following two lines of code to start an interactive Python session at that point::
uk: Ви можете вставити такі два рядки коду, щоб запустити інтерактивний сеанс 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.
uk: Якщо програму запущено з командного рядка, цей код запустити інтерактивний інтерпретатор Python із доступом до усіх локально визначених змінних (змінних у області local). У інтерактивному командному рядку передбачено навіть автоматичне доповнення за натисканням клавіші :kbd:`Tab` властивостей об’єктів. Ви також можете скористатися різноманітними можливостями Python для інтроспекції, зокрема :func:`dir`, :func:`type`, :func:`repr` тощо.

en: Using the Python debugger as a remote debugger
uk: Використання засобу діагностики 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::
uk: Ви можете скористатися вбудованим засобом діагностики 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.
uk: Далі, запустіть calibre у звичний спосіб або за допомогою команд calibre-debug, які описано у попередньому розділі. Щойно буде досягнуто визначеної вище точки у коді, роботу calibre буде призупинено, вона очікуватиме на з’єднання із засобом діагностики.

en: Now open a terminal or command prompt and use the following command to start the debugging session::
uk: Тепер відкрийте вікно термінала або командний рядок і віддайте таку команду, щоб розпочати сеанс діагностики::

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>`_.
uk: Дізнатися більше про те, як користуватися засобом діагностики python, можна за допомогою `документації щодо стандартної бібліотеки Python, модуль 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)``.
uk: Типово, засіб віддаленої діагностики намагатиметься встановити з’єднання на порту 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.
uk: Засіб діагностики Python не може працювати одночасно з декількома потоками виконання, тому вам слід викликати set_trace для кожного потоку, кожного разу на портах із різними номерами.

en: Using the debugger in your favorite Python IDE
uk: Використання засобу діагностики у вашому улюбленому комплексному середовищі розробки Python

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.
uk: Можна скористатися вбудованим засобом діагностики у вашому улюбленому комплексному середовищі для розробки, якщо там передбачено віддалену діагностику. Першим кроком є додавання адреси клону src calibre до змінної ``PYTHONPATH`` у вашому комплексному середовищі для розробки. Іншими словами, тека, яку ви визначили для змінної ``CALIBRE_DEVELOP_FROM`` вище, має також бути серед тек у змінній ``PYTHONPATH`` вашого комплексного середовища для розробки.

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.
uk: Далі, розташуйте модуль віддаленого засобу діагностики комплексного середовища розробки у підтеці :file:`src` клону початкового коду calibre. Додайте код, який потрібен для запуску віддаленого засобу діагностики у код calibre у потрібному вам місці, наприклад у функції main. Далі, запустіть calibre у звичний спосіб. Після цього ваше комплексне середовище розробки має з’єднатися із засобом віддаленої діагностики, запущеним у calibre.

en: Executing arbitrary scripts in the calibre Python environment
uk: Виконання довільних скриптів у середовищі 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::
uk: У програмі :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::
uk: чудово пасує для тестування невеличкого фрагмента коду у командному рядку. Працює так само, як перемикач -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::
uk: може бути використано для запуску вашого власного скрипту мовою Python. Працює так само, як передавання скрипту інтерпретатору Python, але із повністю ініціалізованим середовищем calibre. Отже, ви зможете скористатися усім кодом calibre у вашому скрипті. Щоб передати скрипту параметри командного рядка, скористайтеся таким форматом::

en: The ``--`` causes all subsequent arguments to be passed to your script.
uk: Додавання ``--`` спричинить передавання усіх наступних аргументів до вашого скрипту.

en: Running the calibre test suite
uk: Запуск комплексу для тестування calibre

en: The calibre test suite can be run by::
uk: Комплект засобів тестування calibre можна запустити такою командою::

en: Using calibre in your projects
uk: Використання calibre у ваших проектах

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

en: Binary install of calibre
uk: Зі встановленого бінарного пакунка calibre

en: If you have a binary install of calibre, you can use the Python interpreter bundled with calibre, like this::
uk: Якщо вами встановлено бінарний пакунок calibre, ви можете скористатися інтерпретатором Python, який міститься у ньому. Ось так::

en: Source install on Linux
uk: Зі встановлених початкових кодів у 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::
uk: Окрім використання описаної вище методики, якщо ви встановили програму з початкових кодів у 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.
uk: Дуже важливо імпортувати модуль init_calibre до будь-яких інших модулів або пакунків calibre, оскільки цей модуль налаштовує інтерпретатор на виконання коду calibre.

en: API documentation for various parts of calibre
uk: Документація з програмного інтерфейсу до різноманітних частин calibre
