diff --git a/src/calibre/customize/__init__.py b/src/calibre/customize/__init__.py index 7a0cd04b01..cb19baa864 100644 --- a/src/calibre/customize/__init__.py +++ b/src/calibre/customize/__init__.py @@ -1,5 +1,4 @@ -from __future__ import with_statement -from __future__ import print_function +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py index 9321e7e9c8..74473cb2a0 100644 --- a/src/calibre/customize/builtins.py +++ b/src/calibre/customize/builtins.py @@ -1370,7 +1370,7 @@ plugins += [LookAndFeel, Behavior, Columns, Toolbar, Search, InputOptions, class StoreAmazonKindleStore(StoreBase): name = 'Amazon Kindle' - description = u'Kindle books from Amazon.' + description = 'Kindle books from Amazon.' actual_plugin = 'calibre.gui2.store.stores.amazon_plugin:AmazonKindleStore' headquarters = 'US' @@ -1380,8 +1380,8 @@ class StoreAmazonKindleStore(StoreBase): class StoreAmazonAUKindleStore(StoreBase): name = 'Amazon AU Kindle' - author = u'Kovid Goyal' - description = u'Kindle books from Amazon.' + author = 'Kovid Goyal' + description = 'Kindle books from Amazon.' actual_plugin = 'calibre.gui2.store.stores.amazon_au_plugin:AmazonKindleStore' headquarters = 'AU' @@ -1390,8 +1390,8 @@ class StoreAmazonAUKindleStore(StoreBase): class StoreAmazonCAKindleStore(StoreBase): name = 'Amazon CA Kindle' - author = u'Kovid Goyal' - description = u'Kindle books from Amazon.' + author = 'Kovid Goyal' + description = 'Kindle books from Amazon.' actual_plugin = 'calibre.gui2.store.stores.amazon_ca_plugin:AmazonKindleStore' headquarters = 'CA' @@ -1400,8 +1400,8 @@ class StoreAmazonCAKindleStore(StoreBase): class StoreAmazonINKindleStore(StoreBase): name = 'Amazon IN Kindle' - author = u'Kovid Goyal' - description = u'Kindle books from Amazon.' + author = 'Kovid Goyal' + description = 'Kindle books from Amazon.' actual_plugin = 'calibre.gui2.store.stores.amazon_in_plugin:AmazonKindleStore' headquarters = 'IN' @@ -1411,7 +1411,7 @@ class StoreAmazonINKindleStore(StoreBase): class StoreAmazonDEKindleStore(StoreBase): name = 'Amazon DE Kindle' author = 'Kovid Goyal' - description = u'Kindle Bücher von Amazon.' + description = 'Kindle Bücher von Amazon.' actual_plugin = 'calibre.gui2.store.stores.amazon_de_plugin:AmazonKindleStore' headquarters = 'DE' @@ -1421,7 +1421,7 @@ class StoreAmazonDEKindleStore(StoreBase): class StoreAmazonFRKindleStore(StoreBase): name = 'Amazon FR Kindle' author = 'Kovid Goyal' - description = u'Tous les e-books Kindle' + description = 'Tous les e-books Kindle' actual_plugin = 'calibre.gui2.store.stores.amazon_fr_plugin:AmazonKindleStore' headquarters = 'FR' @@ -1431,7 +1431,7 @@ class StoreAmazonFRKindleStore(StoreBase): class StoreAmazonITKindleStore(StoreBase): name = 'Amazon IT Kindle' author = 'Kovid Goyal' - description = u'e-book Kindle a prezzi incredibili' + description = 'e-book Kindle a prezzi incredibili' actual_plugin = 'calibre.gui2.store.stores.amazon_it_plugin:AmazonKindleStore' headquarters = 'IT' @@ -1441,7 +1441,7 @@ class StoreAmazonITKindleStore(StoreBase): class StoreAmazonESKindleStore(StoreBase): name = 'Amazon ES Kindle' author = 'Kovid Goyal' - description = u'e-book Kindle en España' + description = 'e-book Kindle en España' actual_plugin = 'calibre.gui2.store.stores.amazon_es_plugin:AmazonKindleStore' headquarters = 'ES' @@ -1451,7 +1451,7 @@ class StoreAmazonESKindleStore(StoreBase): class StoreAmazonUKKindleStore(StoreBase): name = 'Amazon UK Kindle' author = 'Kovid Goyal' - description = u'Kindle books from Amazon\'s UK web site. Also, includes French language e-books.' + description = 'Kindle books from Amazon\'s UK web site. Also, includes French language e-books.' actual_plugin = 'calibre.gui2.store.stores.amazon_uk_plugin:AmazonKindleStore' headquarters = 'UK' @@ -1460,7 +1460,7 @@ class StoreAmazonUKKindleStore(StoreBase): class StoreArchiveOrgStore(StoreBase): name = 'Archive.org' - description = u'An Internet library offering permanent access for researchers, historians, scholars, people with disabilities, and the general public to historical collections that exist in digital format.' # noqa + description = 'An Internet library offering permanent access for researchers, historians, scholars, people with disabilities, and the general public to historical collections that exist in digital format.' # noqa actual_plugin = 'calibre.gui2.store.stores.archive_org_plugin:ArchiveOrgStore' drm_free_only = True @@ -1470,7 +1470,7 @@ class StoreArchiveOrgStore(StoreBase): class StoreBubokPublishingStore(StoreBase): name = 'Bubok Spain' - description = u'Bubok Publishing is a publisher, library and store of books of authors from all around the world. They have a big amount of books of a lot of topics' # noqa + description = 'Bubok Publishing is a publisher, library and store of books of authors from all around the world. They have a big amount of books of a lot of topics' # noqa actual_plugin = 'calibre.gui2.store.stores.bubok_publishing_plugin:BubokPublishingStore' drm_free_only = True @@ -1480,7 +1480,7 @@ class StoreBubokPublishingStore(StoreBase): class StoreBubokPortugalStore(StoreBase): name = 'Bubok Portugal' - description = u'Bubok Publishing Portugal is a publisher, library and store of books of authors from Portugal. They have a big amount of books of a lot of topics' # noqa + description = 'Bubok Publishing Portugal is a publisher, library and store of books of authors from Portugal. They have a big amount of books of a lot of topics' # noqa actual_plugin = 'calibre.gui2.store.stores.bubok_portugal_plugin:BubokPortugalStore' drm_free_only = True @@ -1490,7 +1490,7 @@ class StoreBubokPortugalStore(StoreBase): class StoreBaenWebScriptionStore(StoreBase): name = 'Baen Ebooks' - description = u'Sci-Fi & Fantasy brought to you by Jim Baen.' + description = 'Sci-Fi & Fantasy brought to you by Jim Baen.' actual_plugin = 'calibre.gui2.store.stores.baen_webscription_plugin:BaenWebScriptionStore' drm_free_only = True @@ -1500,7 +1500,7 @@ class StoreBaenWebScriptionStore(StoreBase): class StoreBNStore(StoreBase): name = 'Barnes and Noble' - description = u'The world\'s largest book seller. As the ultimate destination for book lovers, Barnes & Noble.com offers an incredible array of content.' + description = 'The world\'s largest book seller. As the ultimate destination for book lovers, Barnes & Noble.com offers an incredible array of content.' actual_plugin = 'calibre.gui2.store.stores.bn_plugin:BNStore' headquarters = 'US' @@ -1510,7 +1510,7 @@ class StoreBNStore(StoreBase): class StoreBeamEBooksDEStore(StoreBase): name = 'Beam EBooks DE' author = 'Charles Haley' - description = u'Bei uns finden Sie: Tausende deutschsprachige e-books; Alle e-books ohne hartes DRM; PDF, ePub und Mobipocket Format; Sofortige Verfügbarkeit - 24 Stunden am Tag; Günstige Preise; e-books für viele Lesegeräte, PC,Mac und Smartphones; Viele Gratis e-books' # noqa + description = 'Bei uns finden Sie: Tausende deutschsprachige e-books; Alle e-books ohne hartes DRM; PDF, ePub und Mobipocket Format; Sofortige Verfügbarkeit - 24 Stunden am Tag; Günstige Preise; e-books für viele Lesegeräte, PC,Mac und Smartphones; Viele Gratis e-books' # noqa actual_plugin = 'calibre.gui2.store.stores.beam_ebooks_de_plugin:BeamEBooksDEStore' drm_free_only = True @@ -1519,9 +1519,9 @@ class StoreBeamEBooksDEStore(StoreBase): class StoreBiblioStore(StoreBase): - name = u'Библио.бг' + name = 'Библио.бг' author = 'Alex Stanev' - description = u'Електронна книжарница за книги и списания във формати ePUB и PDF. Част от заглавията са с активна DRM защита.' + description = 'Електронна книжарница за книги и списания във формати ePUB и PDF. Част от заглавията са с активна DRM защита.' actual_plugin = 'calibre.gui2.store.stores.biblio_plugin:BiblioStore' headquarters = 'BG' @@ -1529,9 +1529,9 @@ class StoreBiblioStore(StoreBase): class StoreChitankaStore(StoreBase): - name = u'Моята библиотека' + name = 'Моята библиотека' author = 'Alex Stanev' - description = u'Независим сайт за DRM свободна литература на български език' + description = 'Независим сайт за DRM свободна литература на български език' actual_plugin = 'calibre.gui2.store.stores.chitanka_plugin:ChitankaStore' drm_free_only = True @@ -1541,7 +1541,7 @@ class StoreChitankaStore(StoreBase): class StoreEbookNLStore(StoreBase): name = 'eBook.nl' - description = u'De eBookwinkel van Nederland' + description = 'De eBookwinkel van Nederland' actual_plugin = 'calibre.gui2.store.stores.ebook_nl_plugin:EBookNLStore' headquarters = 'NL' @@ -1551,8 +1551,8 @@ class StoreEbookNLStore(StoreBase): class StoreEbookpointStore(StoreBase): name = 'Ebookpoint' - author = u'Tomasz Długosz' - description = u'E-booki wolne od DRM, 3 formaty w pakiecie, wysyłanie na Kindle' + author = 'Tomasz Długosz' + description = 'E-booki wolne od DRM, 3 formaty w pakiecie, wysyłanie na Kindle' actual_plugin = 'calibre.gui2.store.stores.ebookpoint_plugin:EbookpointStore' drm_free_only = True @@ -1563,7 +1563,7 @@ class StoreEbookpointStore(StoreBase): class StoreEbookscomStore(StoreBase): name = 'eBooks.com' - description = u'Sells books in multiple electronic formats in all categories. Technical infrastructure is cutting edge, robust and scalable, with servers in the US and Europe.' # noqa + description = 'Sells books in multiple electronic formats in all categories. Technical infrastructure is cutting edge, robust and scalable, with servers in the US and Europe.' # noqa actual_plugin = 'calibre.gui2.store.stores.ebooks_com_plugin:EbookscomStore' headquarters = 'US' @@ -1573,7 +1573,7 @@ class StoreEbookscomStore(StoreBase): class StoreEbooksGratuitsStore(StoreBase): name = 'EbooksGratuits.com' - description = u'Ebooks Libres et Gratuits' + description = 'Ebooks Libres et Gratuits' actual_plugin = 'calibre.gui2.store.stores.ebooksgratuits_plugin:EbooksGratuitsStore' headquarters = 'FR' @@ -1582,8 +1582,8 @@ class StoreEbooksGratuitsStore(StoreBase): # class StoreEBookShoppeUKStore(StoreBase): # name = 'ebookShoppe UK' -# author = u'Charles Haley' -# description = u'We made this website in an attempt to offer the widest range of UK eBooks possible across and as many formats as we could manage.' +# author = 'Charles Haley' +# description = 'We made this website in an attempt to offer the widest range of UK eBooks possible across and as many formats as we could manage.' # actual_plugin = 'calibre.gui2.store.stores.ebookshoppe_uk_plugin:EBookShoppeUKStore' # # headquarters = 'UK' @@ -1592,9 +1592,9 @@ class StoreEbooksGratuitsStore(StoreBase): class StoreEKnigiStore(StoreBase): - name = u'еКниги' + name = 'еКниги' author = 'Alex Stanev' - description = u'Онлайн книжарница за електронни книги и аудио риалити романи' + description = 'Онлайн книжарница за електронни книги и аудио риалити романи' actual_plugin = 'calibre.gui2.store.stores.eknigi_plugin:eKnigiStore' headquarters = 'BG' @@ -1604,8 +1604,8 @@ class StoreEKnigiStore(StoreBase): class StoreEmpikStore(StoreBase): name = 'Empik' - author = u'Tomasz Długosz' - description = u'Empik to marka o unikalnym dziedzictwie i legendarne miejsce, dawne “okno na świat”. Jest obecna w polskim krajobrazie kulturalnym od 60 lat (wcześniej jako Kluby Międzynarodowej Prasy i Książki).' # noqa + author = 'Tomasz Długosz' + description = 'Empik to marka o unikalnym dziedzictwie i legendarne miejsce, dawne “okno na świat”. Jest obecna w polskim krajobrazie kulturalnym od 60 lat (wcześniej jako Kluby Międzynarodowej Prasy i Książki).' # noqa actual_plugin = 'calibre.gui2.store.stores.empik_plugin:EmpikStore' headquarters = 'PL' @@ -1615,7 +1615,7 @@ class StoreEmpikStore(StoreBase): class StoreFeedbooksStore(StoreBase): name = 'Feedbooks' - description = u'Feedbooks is a cloud publishing and distribution service, connected to a large ecosystem of reading systems and social networks. Provides a variety of genres from independent and classic books.' # noqa + description = 'Feedbooks is a cloud publishing and distribution service, connected to a large ecosystem of reading systems and social networks. Provides a variety of genres from independent and classic books.' # noqa actual_plugin = 'calibre.gui2.store.stores.feedbooks_plugin:FeedbooksStore' headquarters = 'FR' @@ -1624,7 +1624,7 @@ class StoreFeedbooksStore(StoreBase): class StoreGoogleBooksStore(StoreBase): name = 'Google Books' - description = u'Google Books' + description = 'Google Books' actual_plugin = 'calibre.gui2.store.stores.google_books_plugin:GoogleBooksStore' headquarters = 'US' @@ -1633,7 +1633,7 @@ class StoreGoogleBooksStore(StoreBase): class StoreGutenbergStore(StoreBase): name = 'Project Gutenberg' - description = u'The first producer of free e-books. Free in the United States because their copyright has expired. They may not be free of copyright in other countries. Readers outside of the United States must check the copyright laws of their countries before downloading or redistributing our e-books.' # noqa + description = 'The first producer of free e-books. Free in the United States because their copyright has expired. They may not be free of copyright in other countries. Readers outside of the United States must check the copyright laws of their countries before downloading or redistributing our e-books.' # noqa actual_plugin = 'calibre.gui2.store.stores.gutenberg_plugin:GutenbergStore' drm_free_only = True @@ -1643,7 +1643,7 @@ class StoreGutenbergStore(StoreBase): class StoreKoboStore(StoreBase): name = 'Kobo' - description = u'With over 2.3 million e-books to browse we have engaged readers in over 200 countries in Kobo eReading. Our e-book listings include New York Times Bestsellers, award winners, classics and more!' # noqa + description = 'With over 2.3 million e-books to browse we have engaged readers in over 200 countries in Kobo eReading. Our e-book listings include New York Times Bestsellers, award winners, classics and more!' # noqa actual_plugin = 'calibre.gui2.store.stores.kobo_plugin:KoboStore' headquarters = 'CA' @@ -1653,8 +1653,8 @@ class StoreKoboStore(StoreBase): class StoreLegimiStore(StoreBase): name = 'Legimi' - author = u'Tomasz Długosz' - description = u'E-booki w formacie EPUB, MOBI i PDF' + author = 'Tomasz Długosz' + description = 'E-booki w formacie EPUB, MOBI i PDF' actual_plugin = 'calibre.gui2.store.stores.legimi_plugin:LegimiStore' headquarters = 'PL' @@ -1665,7 +1665,7 @@ class StoreLegimiStore(StoreBase): class StoreLibreDEStore(StoreBase): name = 'ebook.de' author = 'Charles Haley' - description = u'All Ihre Bücher immer dabei. Suchen, finden, kaufen: so einfach wie nie. ebook.de war libre.de' + description = 'All Ihre Bücher immer dabei. Suchen, finden, kaufen: so einfach wie nie. ebook.de war libre.de' actual_plugin = 'calibre.gui2.store.stores.libri_de_plugin:LibreDEStore' headquarters = 'DE' @@ -1675,7 +1675,7 @@ class StoreLibreDEStore(StoreBase): class StoreLitResStore(StoreBase): name = 'LitRes' - description = u'e-books from LitRes.ru' + description = 'e-books from LitRes.ru' actual_plugin = 'calibre.gui2.store.stores.litres_plugin:LitResStore' author = 'Roman Mukhin' @@ -1687,7 +1687,7 @@ class StoreLitResStore(StoreBase): class StoreManyBooksStore(StoreBase): name = 'ManyBooks' - description = u'Public domain and creative commons works from many sources.' + description = 'Public domain and creative commons works from many sources.' actual_plugin = 'calibre.gui2.store.stores.manybooks_plugin:ManyBooksStore' drm_free_only = True @@ -1698,7 +1698,7 @@ class StoreManyBooksStore(StoreBase): class StoreMillsBoonUKStore(StoreBase): name = 'Mills and Boon UK' author = 'Charles Haley' - description = u'"Bring Romance to Life" "[A] hallmark for romantic fiction, recognised around the world."' + description = '"Bring Romance to Life" "[A] hallmark for romantic fiction, recognised around the world."' actual_plugin = 'calibre.gui2.store.stores.mills_boon_uk_plugin:MillsBoonUKStore' headquarters = 'UK' @@ -1708,7 +1708,7 @@ class StoreMillsBoonUKStore(StoreBase): class StoreMobileReadStore(StoreBase): name = 'MobileRead' - description = u'E-books handcrafted with the utmost care.' + description = 'E-books handcrafted with the utmost care.' actual_plugin = 'calibre.gui2.store.stores.mobileread.mobileread_plugin:MobileReadStore' drm_free_only = True @@ -1718,8 +1718,8 @@ class StoreMobileReadStore(StoreBase): class StoreNextoStore(StoreBase): name = 'Nexto' - author = u'Tomasz Długosz' - description = u'Największy w Polsce sklep internetowy z audiobookami mp3, ebookami pdf oraz prasą do pobrania on-line.' + author = 'Tomasz Długosz' + description = 'Największy w Polsce sklep internetowy z audiobookami mp3, ebookami pdf oraz prasą do pobrania on-line.' actual_plugin = 'calibre.gui2.store.stores.nexto_plugin:NextoStore' headquarters = 'PL' @@ -1729,7 +1729,7 @@ class StoreNextoStore(StoreBase): class StoreOpenBooksStore(StoreBase): name = 'Open Books' - description = u'Comprehensive listing of DRM free e-books from a variety of sources provided by users of calibre.' + description = 'Comprehensive listing of DRM free e-books from a variety of sources provided by users of calibre.' actual_plugin = 'calibre.gui2.store.stores.open_books_plugin:OpenBooksStore' drm_free_only = True @@ -1738,7 +1738,7 @@ class StoreOpenBooksStore(StoreBase): class StoreOzonRUStore(StoreBase): name = 'OZON.ru' - description = u'e-books from OZON.ru' + description = 'e-books from OZON.ru' actual_plugin = 'calibre.gui2.store.stores.ozon_ru_plugin:OzonRUStore' author = 'Roman Mukhin' @@ -1750,7 +1750,7 @@ class StoreOzonRUStore(StoreBase): class StorePragmaticBookshelfStore(StoreBase): name = 'Pragmatic Bookshelf' - description = u'The Pragmatic Bookshelf\'s collection of programming and tech books avaliable as e-books.' + description = 'The Pragmatic Bookshelf\'s collection of programming and tech books avaliable as e-books.' actual_plugin = 'calibre.gui2.store.stores.pragmatic_bookshelf_plugin:PragmaticBookshelfStore' drm_free_only = True @@ -1760,9 +1760,9 @@ class StorePragmaticBookshelfStore(StoreBase): class StorePublioStore(StoreBase): name = 'Publio' - description = u'Publio.pl to księgarnia internetowa, w której mogą Państwo nabyć e-booki i audiobooki.' + description = 'Publio.pl to księgarnia internetowa, w której mogą Państwo nabyć e-booki i audiobooki.' actual_plugin = 'calibre.gui2.store.stores.publio_plugin:PublioStore' - author = u'Tomasz Długosz' + author = 'Tomasz Długosz' headquarters = 'PL' formats = ['EPUB', 'MOBI', 'PDF'] @@ -1771,9 +1771,9 @@ class StorePublioStore(StoreBase): class StoreRW2010Store(StoreBase): name = 'RW2010' - description = u'Polski serwis self-publishingowy. Pliki PDF, EPUB i MOBI.' + description = 'Polski serwis self-publishingowy. Pliki PDF, EPUB i MOBI.' actual_plugin = 'calibre.gui2.store.stores.rw2010_plugin:RW2010Store' - author = u'Tomasz Długosz' + author = 'Tomasz Długosz' drm_free_only = True headquarters = 'PL' @@ -1782,7 +1782,7 @@ class StoreRW2010Store(StoreBase): class StoreSmashwordsStore(StoreBase): name = 'Smashwords' - description = u'An e-book publishing and distribution platform for e-book authors, publishers and readers. Covers many genres and formats.' + description = 'An e-book publishing and distribution platform for e-book authors, publishers and readers. Covers many genres and formats.' actual_plugin = 'calibre.gui2.store.stores.smashwords_plugin:SmashwordsStore' drm_free_only = True @@ -1792,9 +1792,9 @@ class StoreSmashwordsStore(StoreBase): class StoreSwiatEbookowStore(StoreBase): - name = u'Świat Ebooków' - author = u'Tomasz Długosz' - description = u'Ebooki maje tę zaletę, że są zawsze i wszędzie tam, gdzie tylko nas dopadnie ochota na czytanie.' + name = 'Świat Ebooków' + author = 'Tomasz Długosz' + description = 'Ebooki maje tę zaletę, że są zawsze i wszędzie tam, gdzie tylko nas dopadnie ochota na czytanie.' actual_plugin = 'calibre.gui2.store.stores.swiatebookow_plugin:SwiatEbookowStore' drm_free_only = True @@ -1805,8 +1805,8 @@ class StoreSwiatEbookowStore(StoreBase): class StoreVirtualoStore(StoreBase): name = 'Virtualo' - author = u'Tomasz Długosz' - description = u'Księgarnia internetowa, która oferuje bezpieczny i szeroki dostęp do książek w formie cyfrowej.' + author = 'Tomasz Długosz' + description = 'Księgarnia internetowa, która oferuje bezpieczny i szeroki dostęp do książek w formie cyfrowej.' actual_plugin = 'calibre.gui2.store.stores.virtualo_plugin:VirtualoStore' headquarters = 'PL' @@ -1816,7 +1816,7 @@ class StoreVirtualoStore(StoreBase): class StoreWeightlessBooksStore(StoreBase): name = 'Weightless Books' - description = u'An independent DRM-free e-book site devoted to e-books of all sorts.' + description = 'An independent DRM-free e-book site devoted to e-books of all sorts.' actual_plugin = 'calibre.gui2.store.stores.weightless_books_plugin:WeightlessBooksStore' drm_free_only = True @@ -1836,8 +1836,8 @@ class StoreWHSmithUKStore(StoreBase): class StoreWolneLekturyStore(StoreBase): name = 'Wolne Lektury' - author = u'Tomasz Długosz' - description = u'Wolne Lektury to biblioteka internetowa czynna 24 godziny na dobę, 365 dni w roku, której zasoby dostępne są całkowicie za darmo. Wszystkie dzieła są odpowiednio opracowane - opatrzone przypisami, motywami i udostępnione w kilku formatach - HTML, TXT, PDF, EPUB, MOBI, FB2.' # noqa + author = 'Tomasz Długosz' + description = 'Wolne Lektury to biblioteka internetowa czynna 24 godziny na dobę, 365 dni w roku, której zasoby dostępne są całkowicie za darmo. Wszystkie dzieła są odpowiednio opracowane - opatrzone przypisami, motywami i udostępnione w kilku formatach - HTML, TXT, PDF, EPUB, MOBI, FB2.' # noqa actual_plugin = 'calibre.gui2.store.stores.wolnelektury_plugin:WolneLekturyStore' headquarters = 'PL' @@ -1846,8 +1846,8 @@ class StoreWolneLekturyStore(StoreBase): class StoreWoblinkStore(StoreBase): name = 'Woblink' - author = u'Tomasz Długosz' - description = u'Czytanie zdarza się wszędzie!' + author = 'Tomasz Długosz' + description = 'Czytanie zdarza się wszędzie!' actual_plugin = 'calibre.gui2.store.stores.woblink_plugin:WoblinkStore' headquarters = 'PL' diff --git a/src/calibre/customize/conversion.py b/src/calibre/customize/conversion.py index 88e989b933..28c75f92a7 100644 --- a/src/calibre/customize/conversion.py +++ b/src/calibre/customize/conversion.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import, division, print_function, unicode_literals ''' Defines the plugin system for conversions. ''' diff --git a/src/calibre/customize/profiles.py b/src/calibre/customize/profiles.py index 1038d448be..6fb4be9721 100644 --- a/src/calibre/customize/profiles.py +++ b/src/calibre/customize/profiles.py @@ -1,5 +1,5 @@ # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai -from __future__ import with_statement +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL 3' __copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' diff --git a/src/calibre/customize/ui.py b/src/calibre/customize/ui.py index 3eac07234c..fdacc80b3b 100644 --- a/src/calibre/customize/ui.py +++ b/src/calibre/customize/ui.py @@ -1,5 +1,4 @@ -from __future__ import with_statement -from __future__ import print_function +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' diff --git a/src/calibre/devices/android/driver.py b/src/calibre/devices/android/driver.py index d79299f048..2b6d4e9560 100644 --- a/src/calibre/devices/android/driver.py +++ b/src/calibre/devices/android/driver.py @@ -425,7 +425,7 @@ class WEBOS(USBMS): im.thumbnail((52, 69), Image.ANTIALIAS) x, y = im.size - cover.paste(im, ((52-x)/2, (69-y)/2)) + cover.paste(im, ((52-x)//2, (69-y)//2)) cover2 = cover.resize((52, 69), Image.ANTIALIAS).convert('RGB') diff --git a/src/calibre/devices/cybook/t2b.py b/src/calibre/devices/cybook/t2b.py index 2d80281211..c6ff604bc6 100644 --- a/src/calibre/devices/cybook/t2b.py +++ b/src/calibre/devices/cybook/t2b.py @@ -40,7 +40,7 @@ def write_t2b(t2bfile, coverdata=None): t2bcover = Image.new('L', (96, 144), 'white') x, y = cover.size - t2bcover.paste(cover, ((96-x)/2, (144-y)/2)) + t2bcover.paste(cover, ((96-x)//2, (144-y)//2)) px = [] pxs = t2bcover.getdata() diff --git a/src/calibre/devices/hanvon/driver.py b/src/calibre/devices/hanvon/driver.py index c701477706..ef74181db2 100644 --- a/src/calibre/devices/hanvon/driver.py +++ b/src/calibre/devices/hanvon/driver.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2009, John Schember ' @@ -14,8 +15,8 @@ from calibre.devices.usbms.driver import USBMS def is_alex(device_info): - return device_info[3] == u'Linux 2.6.28 with pxa3xx_u2d' and \ - device_info[4] == u'Seleucia Disk' + return device_info[3] == 'Linux 2.6.28 with pxa3xx_u2d' and \ + device_info[4] == 'Seleucia Disk' class N516(USBMS): diff --git a/src/calibre/devices/jetbook/driver.py b/src/calibre/devices/jetbook/driver.py index 7b16071d50..edad664029 100644 --- a/src/calibre/devices/jetbook/driver.py +++ b/src/calibre/devices/jetbook/driver.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- - from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' diff --git a/src/calibre/devices/kindle/apnx.py b/src/calibre/devices/kindle/apnx.py index 89a673b25b..a272701429 100644 --- a/src/calibre/devices/kindle/apnx.py +++ b/src/calibre/devices/kindle/apnx.py @@ -147,7 +147,7 @@ class APNXBuilder(object): r0 = phead.section_data(0) text_length = struct.unpack('>I', r0[4:8])[0] - chars_per_page = int(text_length / page_count) + chars_per_page = int(text_length // page_count) while count < text_length: pages.append(count) count += chars_per_page diff --git a/src/calibre/devices/kindle/driver.py b/src/calibre/devices/kindle/driver.py index 6655c7769b..c8ebbf01ce 100644 --- a/src/calibre/devices/kindle/driver.py +++ b/src/calibre/devices/kindle/driver.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- - from __future__ import absolute_import, division, print_function, unicode_literals + __license__ = 'GPL v3' __copyright__ = '2009, John Schember ' __docformat__ = 'restructuredtext en' @@ -118,11 +118,11 @@ class KINDLE(USBMS): return mi def get_annotations(self, path_map): - MBP_FORMATS = [u'azw', u'mobi', u'prc', u'txt'] + MBP_FORMATS = ['azw', 'mobi', 'prc', 'txt'] mbp_formats = set(MBP_FORMATS) - PDR_FORMATS = [u'pdf'] + PDR_FORMATS = ['pdf'] pdr_formats = set(PDR_FORMATS) - TAN_FORMATS = [u'tpz', u'azw1'] + TAN_FORMATS = ['tpz', 'azw1'] tan_formats = set(TAN_FORMATS) def get_storage(): @@ -213,7 +213,7 @@ class KINDLE(USBMS): # Add the last-read location if bookmark.book_format == 'pdf': markup = _("%(time)s
Last page read: %(loc)d (%(pr)d%%)") % dict( - time=strftime(u'%x', timestamp.timetuple()), + time=strftime('%x', timestamp.timetuple()), loc=last_read_location, pr=percent_read) else: diff --git a/src/calibre/devices/prs505/__init__.py b/src/calibre/devices/prs505/__init__.py index 1a59cb81a6..f0290e7e27 100644 --- a/src/calibre/devices/prs505/__init__.py +++ b/src/calibre/devices/prs505/__init__.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import, division, print_function, unicode_literals + __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' @@ -9,4 +11,3 @@ CACHE_EXT = 'Sony Reader/database/cacheExt.xml' MEDIA_THUMBNAIL = 'database/thumbnail' CACHE_THUMBNAIL = 'Sony Reader/thumbnail' - diff --git a/src/calibre/devices/prs505/driver.py b/src/calibre/devices/prs505/driver.py index 0bd4d7b015..2a11f661e6 100644 --- a/src/calibre/devices/prs505/driver.py +++ b/src/calibre/devices/prs505/driver.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import, division, print_function, unicode_literals + __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' __docformat__ = 'restructuredtext en' diff --git a/src/calibre/devices/prs505/sony_cache.py b/src/calibre/devices/prs505/sony_cache.py index cb4eca51d1..0eb1d064bd 100644 --- a/src/calibre/devices/prs505/sony_cache.py +++ b/src/calibre/devices/prs505/sony_cache.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -16,10 +17,10 @@ from calibre.ebooks.chardet import xml_to_unicode from calibre.ebooks.metadata import authors_to_string, title_sort, \ authors_to_sort_string from polyglot.binary import from_base64_bytes -from polyglot.builtins import zip +from polyglot.builtins import unicode_type, zip ''' -cahceExt.xml +cacheExt.xml Periodical identifier sample from a PRS-650: @@ -65,8 +66,8 @@ INVERSE_MONTH_MAP = dict(zip(MONTH_MAP.values(), MONTH_MAP.keys())) def strptime(src): src = src.strip() src = src.split() - src[0] = str(DAY_MAP[src[0][:-1]])+',' - src[2] = str(MONTH_MAP[src[2]]) + src[0] = unicode_type(DAY_MAP[src[0][:-1]])+',' + src[2] = unicode_type(MONTH_MAP[src[2]]) return time.strptime(' '.join(src), '%w, %d %m %Y %H:%M:%S %Z') @@ -83,7 +84,7 @@ def strftime(epoch, zone=time.localtime): def uuid(): from uuid import uuid4 - return str(uuid4()).replace('-', '', 1).upper() + return unicode_type(uuid4()).replace('-', '', 1).upper() # }}} @@ -199,8 +200,8 @@ class XMLCache(object): playlist.set('title', title) if title in seen: for i in range(2, 1000): - if title+str(i) not in seen: - title = title+str(i) + if title+unicode_type(i) not in seen: + title = title+unicode_type(i) playlist.set('title', title) seen.add(title) break @@ -273,7 +274,7 @@ class XMLCache(object): nsmap=root.nsmap, attrib={ 'uuid' : uuid(), 'title': title, - 'id' : str(self.max_id(root)+1), + 'id' : unicode_type(self.max_id(root)+1), 'sourceid': '1' }) root.append(ans) @@ -312,13 +313,13 @@ class XMLCache(object): def ensure_media_xml_base_ids(root): for num, tag in enumerate(('library', 'watchSpecial')): for x in root.xpath('//*[local-name()="%s"]'%tag): - x.set('id', str(num)) + x.set('id', unicode_type(num)) def rebase_ids(root, base, sourceid, pl_sourceid): 'Rebase all ids and also make them consecutive' for item in root.xpath('//*[@sourceid]'): sid = pl_sourceid if item.tag.endswith('playlist') else sourceid - item.set('sourceid', str(sid)) + item.set('sourceid', unicode_type(sid)) # Only rebase ids of nodes that are immediate children of the # record root (that way playlist/itemnodes are unaffected items = root.xpath('child::*[@id]') @@ -328,8 +329,8 @@ class XMLCache(object): old = int(item.get('id')) new = base + i if old != new: - item.set('id', str(new)) - idmap[str(old)] = str(new) + item.set('id', unicode_type(new)) + idmap[unicode_type(old)] = unicode_type(new) return idmap self.prune_empty_playlists() @@ -358,7 +359,7 @@ class XMLCache(object): last_bl = max(self.roots.keys()) max_id = self.max_id(self.roots[last_bl]) - self.roots[0].set('nextID', str(max_id+1)) + self.roots[0].set('nextID', unicode_type(max_id+1)) debug_print('Finished running fix_ids()') # }}} @@ -515,7 +516,7 @@ class XMLCache(object): # Ensure each book has an ID. for rec in records: if rec.get('id', None) is None: - rec.set('id', str(self.max_id(root)+1)) + rec.set('id', unicode_type(self.max_id(root)+1)) ids = [x.get('id', None) for x in records] # Given that we set the ids, there shouldn't be any None's. But # better to be safe... @@ -572,7 +573,7 @@ class XMLCache(object): id_ = self.max_id(root)+1 attrib = { 'page':'0', 'part':'0','pageOffset':'0','scale':'0', - 'id':str(id_), 'sourceid':'1', 'path':lpath} + 'id':unicod_type(id_), 'sourceid':'1', 'path':lpath} ans = root.makeelement('{%s}text'%namespace, attrib=attrib, nsmap=root.nsmap) root.append(ans) return ans @@ -591,7 +592,7 @@ class XMLCache(object): if thumbnail and thumbnail[-1]: ans.text = '\n' + '\t\t' t = root.makeelement('{%s}thumbnail'%namespace, - attrib={'width':str(thumbnail[0]), 'height':str(thumbnail[1])}, + attrib={'width':unicode_type(thumbnail[0]), 'height':unicode_type(thumbnail[1])}, nsmap=root.nsmap) t.text = 'main_thumbnail.jpg' ans.append(t) @@ -629,7 +630,7 @@ class XMLCache(object): def clean(x): if isbytestring(x): x = x.decode(preferred_encoding, 'replace') - x.replace(u'\0', '') + x.replace('\0', '') return x def record_set(k, v): @@ -660,7 +661,7 @@ class XMLCache(object): date = strftime(timestamp, zone=tz) record.set('date', clean(date)) try: - record.set('size', clean(str(os.stat(path).st_size))) + record.set('size', clean(unicode_type(os.stat(path).st_size))) except: record.set('size', '0') title = book.title if book.title else _('Unknown') @@ -690,7 +691,7 @@ class XMLCache(object): record.set('sourceid', '1') if 'id' not in record.attrib: num = self.max_id(record.getroottree().getroot()) - record.set('id', str(num+1)) + record.set('id', unicode_type(num+1)) return (gtz_count, ltz_count, use_tz_var) # }}} diff --git a/src/calibre/devices/prst1/__init__.py b/src/calibre/devices/prst1/__init__.py index 44e754947e..0f9dc4e7f8 100644 --- a/src/calibre/devices/prst1/__init__.py +++ b/src/calibre/devices/prst1/__init__.py @@ -1,7 +1,7 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2011, Kovid Goyal ' __docformat__ = 'restructuredtext en' - diff --git a/src/calibre/ebooks/__init__.py b/src/calibre/ebooks/__init__.py index 8028840733..491fb4f56c 100644 --- a/src/calibre/ebooks/__init__.py +++ b/src/calibre/ebooks/__init__.py @@ -1,4 +1,5 @@ -from __future__ import with_statement +from __future__ import absolute_import, division, print_function, unicode_literals + __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' @@ -65,7 +66,7 @@ class HTMLRenderer(object): buf = QBuffer(ba) buf.open(QBuffer.WriteOnly) image.save(buf, 'JPEG') - self.data = str(ba.data()) + self.data = bytes(ba.data()) except Exception as e: self.exception = e self.traceback = traceback.format_exc() diff --git a/src/calibre/ebooks/css_transform_rules.py b/src/calibre/ebooks/css_transform_rules.py index a897b01f60..2f3e10e8ed 100644 --- a/src/calibre/ebooks/css_transform_rules.py +++ b/src/calibre/ebooks/css_transform_rules.py @@ -1,8 +1,8 @@ #!/usr/bin/env python2 # vim:fileencoding=utf-8 # License: GPLv3 Copyright: 2016, Kovid Goyal - from __future__ import absolute_import, division, print_function, unicode_literals + from functools import partial from collections import OrderedDict import operator, numbers @@ -12,7 +12,7 @@ from css_parser.css import Property, CSSRule from calibre import force_unicode from calibre.ebooks import parse_css_length from calibre.ebooks.oeb.normalize_css import normalizers, safe_parser -from polyglot.builtins import iteritems +from polyglot.builtins import iteritems, unicode_type def compile_pat(pat): @@ -161,7 +161,7 @@ def transform_number(val, op, raw): v = op(v, val) if int(v) == v: v = int(v) - return str(v) + u + return unicode_type(v) + u class Rule(object): @@ -379,7 +379,7 @@ def test(return_tests=False): # {{{ r = Rule(**rule) decl = StyleDeclaration(safe_parser().parseStyle(style)) r.process_declaration(decl) - return str(decl) + return unicode_type(decl) class TestTransforms(unittest.TestCase): longMessage = True diff --git a/src/calibre/ebooks/hyphenate.py b/src/calibre/ebooks/hyphenate.py index 1dfc08ad68..a244151739 100644 --- a/src/calibre/ebooks/hyphenate.py +++ b/src/calibre/ebooks/hyphenate.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import, division, print_function, unicode_literals + """ Hyphenation, using Frank Liang's algorithm. This module provides a single function to hyphenate words. hyphenate_word takes @@ -13,7 +15,6 @@ Ned Batchelder, July 2007. This Python code is in the public domain. """ -from __future__ import print_function import re