mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Replace use of strcmp() for sorting with sort_key()
This commit is contained in:
parent
b35fceb2df
commit
67cbdb9ad1
@ -20,7 +20,7 @@ from calibre.ptempfile import PersistentTemporaryFile
|
|||||||
from calibre.db.schema_upgrades import SchemaUpgrade
|
from calibre.db.schema_upgrades import SchemaUpgrade
|
||||||
from calibre.library.field_metadata import FieldMetadata
|
from calibre.library.field_metadata import FieldMetadata
|
||||||
from calibre.ebooks.metadata import title_sort, author_to_author_sort
|
from calibre.ebooks.metadata import title_sort, author_to_author_sort
|
||||||
from calibre.utils.icu import strcmp
|
from calibre.utils.icu import sort_key
|
||||||
from calibre.utils.config import to_json, from_json, prefs, tweaks
|
from calibre.utils.config import to_json, from_json, prefs, tweaks
|
||||||
from calibre.utils.date import utcfromtimestamp, parse_date
|
from calibre.utils.date import utcfromtimestamp, parse_date
|
||||||
from calibre.utils.filenames import (is_case_sensitive, samefile, hardlink_file)
|
from calibre.utils.filenames import (is_case_sensitive, samefile, hardlink_file)
|
||||||
@ -172,7 +172,9 @@ def _author_to_author_sort(x):
|
|||||||
return author_to_author_sort(x.replace('|', ','))
|
return author_to_author_sort(x.replace('|', ','))
|
||||||
|
|
||||||
def icu_collator(s1, s2):
|
def icu_collator(s1, s2):
|
||||||
return strcmp(force_unicode(s1, 'utf-8'), force_unicode(s2, 'utf-8'))
|
return cmp(sort_key(force_unicode(s1, 'utf-8')),
|
||||||
|
sort_key(force_unicode(s2, 'utf-8')))
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# Unused aggregators {{{
|
# Unused aggregators {{{
|
||||||
|
@ -6,7 +6,7 @@ import os, time, sys
|
|||||||
|
|
||||||
from calibre.constants import preferred_encoding, DEBUG
|
from calibre.constants import preferred_encoding, DEBUG
|
||||||
from calibre import isbytestring, force_unicode
|
from calibre import isbytestring, force_unicode
|
||||||
from calibre.utils.icu import strcmp
|
from calibre.utils.icu import sort_key
|
||||||
|
|
||||||
from calibre.devices.usbms.books import Book as Book_
|
from calibre.devices.usbms.books import Book as Book_
|
||||||
from calibre.devices.usbms.books import CollectionsBookList
|
from calibre.devices.usbms.books import CollectionsBookList
|
||||||
@ -239,8 +239,7 @@ class KTCollectionsBookList(CollectionsBookList):
|
|||||||
if y is None:
|
if y is None:
|
||||||
return -1
|
return -1
|
||||||
if isinstance(x, basestring) and isinstance(y, basestring):
|
if isinstance(x, basestring) and isinstance(y, basestring):
|
||||||
c = strcmp(force_unicode(x), force_unicode(y))
|
x, y = sort_key(force_unicode(x)), sort_key(force_unicode(y))
|
||||||
else:
|
|
||||||
c = cmp(x, y)
|
c = cmp(x, y)
|
||||||
if c != 0:
|
if c != 0:
|
||||||
return c
|
return c
|
||||||
|
@ -13,7 +13,7 @@ from calibre.devices.interface import BookList as _BookList
|
|||||||
from calibre.constants import preferred_encoding
|
from calibre.constants import preferred_encoding
|
||||||
from calibre import isbytestring, force_unicode
|
from calibre import isbytestring, force_unicode
|
||||||
from calibre.utils.config import device_prefs, tweaks
|
from calibre.utils.config import device_prefs, tweaks
|
||||||
from calibre.utils.icu import strcmp
|
from calibre.utils.icu import sort_key
|
||||||
from calibre.utils.formatter import EvalFormatter
|
from calibre.utils.formatter import EvalFormatter
|
||||||
|
|
||||||
class Book(Metadata):
|
class Book(Metadata):
|
||||||
@ -281,8 +281,7 @@ class CollectionsBookList(BookList):
|
|||||||
if y is None:
|
if y is None:
|
||||||
return -1
|
return -1
|
||||||
if isinstance(x, basestring) and isinstance(y, basestring):
|
if isinstance(x, basestring) and isinstance(y, basestring):
|
||||||
c = strcmp(force_unicode(x), force_unicode(y))
|
x, y = sort_key(force_unicode(x)), sort_key(force_unicode(y))
|
||||||
else:
|
|
||||||
c = cmp(x, y)
|
c = cmp(x, y)
|
||||||
if c != 0:
|
if c != 0:
|
||||||
return c
|
return c
|
||||||
|
@ -20,7 +20,7 @@ from calibre.ebooks.metadata import title_sort, author_to_author_sort
|
|||||||
from calibre.utils.date import parse_date, isoformat, local_tz, UNDEFINED_DATE
|
from calibre.utils.date import parse_date, isoformat, local_tz, UNDEFINED_DATE
|
||||||
from calibre import isbytestring, force_unicode
|
from calibre import isbytestring, force_unicode
|
||||||
from calibre.constants import iswindows, DEBUG, plugins
|
from calibre.constants import iswindows, DEBUG, plugins
|
||||||
from calibre.utils.icu import strcmp
|
from calibre.utils.icu import sort_key
|
||||||
from calibre import prints
|
from calibre import prints
|
||||||
|
|
||||||
from dateutil.tz import tzoffset
|
from dateutil.tz import tzoffset
|
||||||
@ -189,7 +189,8 @@ def pynocase(one, two, encoding='utf-8'):
|
|||||||
return cmp(one.lower(), two.lower())
|
return cmp(one.lower(), two.lower())
|
||||||
|
|
||||||
def icu_collator(s1, s2):
|
def icu_collator(s1, s2):
|
||||||
return strcmp(force_unicode(s1, 'utf-8'), force_unicode(s2, 'utf-8'))
|
return cmp(sort_key(force_unicode(s1, 'utf-8')),
|
||||||
|
sort_key(force_unicode(s2, 'utf-8')))
|
||||||
|
|
||||||
def load_c_extensions(conn, debug=DEBUG):
|
def load_c_extensions(conn, debug=DEBUG):
|
||||||
try:
|
try:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user