

Manifest, spine, toc, guide, html content, etc. Representation of an e-book that is like an unzipped epub, with The code that constructsĪnd drives the pipeline is in plumber.py. Plugin, various transforms and an output plugin. Metadata reading, writing, and downloading is all in tadataĬonversion happens in a pipeline, for the structure of the pipeline, This package contains the following main sub-packages

Code layout ¶Īll the calibre Python code is in the calibre package. For more examples of plugins designed to add features to calibre, see the Index of plugins. Another example of the modular design is the recipe system forįetching news. Similarly, adding supportįor new conversion formats involves writing input/output format plugins. There is a tutorial on writing calibre plugins.įor example, adding support for a new device to calibre typically involves writing less than a 100 lines of code in the form ofĪ device driver plugin. The modular design of calibre is expressed via Plugins. Because of its roots, calibre has aĬomprehensive command line interface for all its functions, documented in Command Line Interface. This makes adding new features and fixingīugs in calibre very easy, resulting in a frenetic pace of development. The modules interact with each other via well defined interfaces. Using the debugger in your favorite Python IDEĮxecuting arbitrary scripts in the calibre Python environmentĪPI documentation for various parts of calibreĬalibre has its roots in the Unix world, which means that its design is highly modular.

Using the Python debugger as a remote debugger Having separate “normal” and “development” calibre installs on the same computer Note that calibre requires at least Python 3.8. You will learn how to get a calibre development environment set up on the operating system of your choice.Ĭalibre is written primarily in Python with some C/C++ code for speed and system interfacing. This means that you are free to download and modify the program to your heart’s content. Setting up a calibre development environment ¶Ĭalibre is completely open source, licensed under the GNU GPL v3.
