NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2717 most downloaded on PyPI
Ebook library which can handle EPUB2/EPUB3 format
Last release 11 months ago
26 Oct 2025
Ships fairly regularly
a new release about every 1.2 years
Most releases are documented
notes for 7 of 8 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
8 releases · first in 2013
Bug fix. Prevent None join error when HREF is not found on a link_node. by @ni-milicevic in #328
<meta> is added to the EpubHtml object by @changyy in #298Full Changelog: v0.19...v0.20
One column per quarter.
Added
* Add Read the docs configuration file (#333)
* Add pytest support and GitHub workflow (#349)
* Add extension method for <meta> to EpubHtml object (#298)
Changed
Fixed
* Fix the version in Sphinx documentation (#335)
* Bug fix: Prevent None join error when HREF is not found on a link_node (#328)
* Fix item.get_type() does not recognize webm (#312, #338)
* Add more informative text for future Contributors (#333)
Change deprecation check by @tjkuson in #283
Full Changelog: v0.18...v0.19
Added
* Add option to set toc page direction (#234)
* Add compresslevel parameter for zip compression (#287)
Changed
Fixed
* Throwing errors while writing EPUB is optional now and behavior will be changed in the future (#316)
* Fix lxml root warning (#305)
* Toning down metadata failure to an info log
* Check truth value of ignore_ncx deprecation, not just truthiness (#283)
* Add direction to the epub Nav page only if it was set
add direction for HTML tags by @maanijou in #174
scripted to EpubHtml properties if a script is added by @soroushj in #176Full Changelog: v0.17.1...v0.18
Added
* Add an example for embedding images into paragraph
* Add default option ignore_ncx to EpubReader and document it (#183)
* Add option to set custom title in toc page (#243)
* Add `scripted` to EpubHtml properties if a script is added (#176)
* Read un-zipped epub directories (#183)
* Add direction for HTML tags (#174)
Changed
Fixed
* Define format for the long description
* Fix dublin core typo in tutorial documentation (#256)
* Fix EpubImage lacks parameters (#231)
* Fix the issue toc can not loaded from epub file
* Fixed #218 - Use correct variable for static item ids
* Ignore NCX if Navigation Document exists
* Try hard to parse through broken XML, improve the compatibility
Fix spelling in README.md by @tylerwhipple in #172
Full Changelog: v0.17...v0.17.1
Added
* Initial SMIL support (#08_SMIL sample)
* Adding support for the EPUB3 pagebreak/page-list semantics
* Page lists are now attached to each EpubHtml item as well as to the book
Fixed
Fix relative path resolving by @olethanh in #122
samples/04_markdown_parse Python 2+3 compatible by @tantale in #143.gitignore by @tantale in #144Full Changelog: v0.16...v0.17
Added
* Add WAI-ARIA role to the nav element for accessibility
* Add ability to include playOrder into navPoint (#146)
* Add get_type method to EpubCover class (#147)
Changed
.gitignore (#144)samples/04_markdown_parse Python 2+3 compatible (#143)Fixed
* Fixed #161 - Provide default value for metadata
* Fixed #159 - Add doc-toc role programmatically for EPUB accessibility
* Fixed #137 - Create a PyPi compatible README.md file
* Fixed #139 - Correct MANIFEST.in file and rename CHANGES.TXT to CHANGES.txt
* Fixed #132 - Read the README.md file using utf-8 encoding
* Fixed #125 - Refactor writing of OPF file
* Fixed #123 - Remove unused test files
* Fixed #121 - Fix relative path resolving
* Don't cut off first character of body in EpubHtml.get_body_content()
* Fix for pop-up footnotes in EPUB 3
Set blank title if it is None by @clach04 in #94
Full Changelog: v0.15...v0.16
Added
* Add ability to set custom prefixes and namespaces to content.opf file
* Add bindings support (#70)
Changed
Fixed
* Fixed #119 - Plugin samples file uses obsolete API
* Fixed #112 - Get body content calls get content for no reason
* Fixed #111 - Initialize mimetype library only when it is being used
* Fixed #110 - Add .ttf extension to the list of font files
* Fixed #109 - spine: text orientation attribute
* Fixed #101 - Update list of authors
* Fixed #100 - Fix docstrings
* Fixed #99 - Change README.md to have ASCII encoding
* Fixed #98 - Underline tag gets deleted
* Fixed #97 - Sections are not pointing to any specific content
* Fixed #92 - set.cover not working in Python 3.4
* Fixed #85 - Epub2 guide types do not map completely to epub3 landmark types
* Fixed #84 - Set unique metadata function
* Fixed #83 - In the sample file read cover image in binary mode
* Fixed #82 - Ignore vim swapfiles
* Fixed #81 - Mimetypes library isn't aware of xhtml
* Fixed #72 - example for reading epub didn't work, wrong module level for ITEM_IMAGE
* Fixed #71 - Handling sections with content
* Fixed #69 - Correct rendition URL in OPF file
* Fixed #64 - embed <script> instead of <link> for javascripts
* Fixed #61 - Various fixes
* Fixed #36 - Implement API to add files which are not present in the manifest
* Missed doctype in the nav.xhtml file
* Removing some junk code left by git
* Remove trailing whitespace
* Tidy the code a bit
* Set blank title if it is None
* Ensure only new modified date is included
* Use relative paths in toc nav
* Allow overriding modification time for ePub document
Full Changelog : v0.10...v0.15
Full Changelog: v0.10...v0.15
Added
* Add basic documentation
* Support for guide (#37)
* Plugin which cleans content with Tidy HTML (#39)
* Add additional item types for audio and video files (#26)
Changed
Fixed
* Fixed #58 - Add basic documentation
* Fixed #50 - The EPUB2 guide is loaded
* Fixed #49 - The cover image item
* Fixed #48 - Load NAV document if NCX is missing
* Fixed #47 - Create head and body elements in any case
* Fixed #46 - Just a typo
* Fixed #45 - Don't parse the metadata tag itself
* Fixed #44 - Section navigation points point to the first chapter
* Fixed #43 - Update book title and UID fields after reading the metadata
* Fixed #42 - The container XML reflects the assigned EPUB folder
* Fixed #41 - Implement document type
* Fixed #40 - We must not use .wait() for waiting Popen to end
* Fixed #39 - Plugin which cleans content with Tidy HTML
* Fixed #35 - Delete temporary directory
* Fixed #34 - Mime type is not correctly guessed when adding items
* Fixed #32 - Put parsing function in the utils module
* Fixed #30 - Basic plugin for filtering non HTML5 content
* Fixed #27 - Do not create new title tag in chapter if it already exists
* Fixed #23 - Creating EPUB files does not work in Python 3.3
* Fixed #21 - Remove dependency of itertools module
* Fixed #19 - Handle properties in manifest file when writing to epub
* Fixed #18 - Decode filenames when reading them from zip file
* Fixed #17 - Read linear flag from spine structure
* Fixed #16 - EpubCoverHtml should extend EpubHtml and use it for processing HTML
* Fixed #15 - Cover file should also extend EpubHtml class
* Fixed #14 - Navigation xhtml file should behave like other xhtml files
* Fixed #13 - Item in spine could have flag linear
* Fixed #12 - Do not use ZIP_STORED for every item in zip file
* Fixed #11 - Preserve XML declaration when creating XML files
* Fixed #10 - Implement add_item method for EpubHtml
* Fixed #9 - Check type of Item in epub
* Fixed #8 - Wrong copyright info
* Fix zip paths to use correct path separator
* Updated license info in setup.py
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →