No description
Find a file
shastry fa7d8e30da
Nested loop continue logic fix
Continue the outer loop, break of the inner loop.

Else you get a usb_dir NoneType exception in os.path.join if there's a device without idProduct, idVendor, bcdDevice sysfs files.

```
Unable to open device <calibre.devices.kindle.driver.KINDLE2 object at 0x7f7a05c23e90>
Traceback (most recent call last):
  File "/usr/lib/calibre/calibre/gui2/device.py", line 201, in do_connect
    dev.open(detected_device, self.current_library_uuid)
  File "/usr/lib/calibre/calibre/devices/usbms/device.py", line 809, in open
    self.open_linux()
  File "/usr/lib/calibre/calibre/devices/usbms/device.py", line 560, in open_linux
    main, carda, cardb = self.find_device_nodes()
  File "/usr/lib/calibre/calibre/devices/usbms/device.py", line 471, in find_device_nodes
    ven, prod, bcd = map(e, ('idVendor', 'idProduct', 'bcdDevice'))
  File "/usr/lib/calibre/calibre/devices/usbms/device.py", line 470, in <lambda>
    e = lambda q : raw2num(open(j(usb_dir, q), 'rb').read().decode('utf-8'))
  File "/usr/lib/python2.7/posixpath.py", line 70, in join
    elif path == '' or path.endswith('/'):
AttributeError: 'NoneType' object has no attribute 'endswith'
```
2020-09-20 14:35:06 +05:30
.github Disable the Arch test in CI 2020-09-13 10:45:04 +05:30
bypy Move to SIP v5 2020-09-16 21:52:25 +05:30
format_docs Update "Page Mapping Header" information. 2019-11-29 13:53:48 -08:00
icons Remove useless __future__ imports 2020-08-22 18:47:55 +05:30
imgsrc Support Selection Handles on Vertical/RTL Books 2020-08-28 00:26:18 -07:00
manual Fix warnings from sphinx and gettext 2020-09-20 09:15:50 +05:30
recipes Update ProPublica 2020-09-13 21:39:44 +05:30
resources Use non-monospace fonts for textarea 2020-09-15 07:30:39 +05:30
setup Fix translatable strings not being extracted from .ui files 2020-09-20 09:20:07 +05:30
src Nested loop continue logic fix 2020-09-20 14:35:06 +05:30
.gitattributes Mark hunspell as vendored 2019-01-19 12:17:52 +05:30
.gitignore Remove reference to appcache in gitignore 2020-04-20 10:08:15 +05:30
=template.py Change shebangs to python from python2 2020-08-22 18:47:51 +05:30
Changelog.old.yaml Move old changelog entries 2018-06-25 08:14:49 +05:30
Changelog.yaml String changes 2020-09-13 16:07:26 +05:30
COPYRIGHT Get rid of msstdint.h 2020-08-22 18:47:57 +05:30
INSTALL.rst Change shebangs to python from python2 2020-08-22 18:47:51 +05:30
LICENSE http -> https 2019-04-24 05:29:51 +05:30
LICENSE.rtf http -> https 2019-04-24 05:29:51 +05:30
README.md Fix logo not rendering on GitHub 2020-08-25 14:35:38 +05:30
run-local Allow running calibre from source without needing to run either develop or install 2019-04-10 11:26:47 +05:30
session.vim Change shebangs to python from python2 2020-08-22 18:47:51 +05:30
setup.cfg Get rid of @dynamic_property 2019-05-15 20:39:48 +05:30
setup.py Remove useless __future__ imports 2020-08-22 18:47:55 +05:30
update-on-ox Fix update-on-ox 2019-09-13 09:12:39 +05:30

calibre

calibre is an e-book manager. It can view, convert, edit and catalog e-books in all of the major e-book formats. It can also talk to e-book reader devices. It can go out to the internet and fetch metadata for your books. It can download newspapers and convert them into e-books for convenient reading. It is cross platform, running on Linux, Windows and macOS.

For more information, see the calibre About page

Build Status

Screenshots

Screenshots page

Usage

See the User Manual

Development

Setting up a development environment for calibre

A tarball of the source code for the current calibre release.

Bugs

Bug reports and feature requests should be made in the calibre bug tracker at launchpad. GitHub is only used for code hosting and pull requests.

Support calibre

calibre is a result of the efforts of many volunteers from all over the world. If you find it useful, please consider contributing to support its development. Donate to support calibre development.

Building calibre binaries

See Build instructions for instructions on how to build the calibre binaries and installers for all the platforms calibre supports.