本文整理汇总了Python中natsort.utils._natsort_key函数的典型用法代码示例。如果您正苦于以下问题:Python _natsort_key函数的具体用法?Python _natsort_key怎么用?Python _natsort_key使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了_natsort_key函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test__natsort_key_with_IGNORECASE_lowercases_text
def test__natsort_key_with_IGNORECASE_lowercases_text(x):
assume(not any(type(y) == float and isnan(y) for y in x))
s = ''.join(repr(y) if type(y) in (float, long, int) else y for y in x)
try:
assert _natsort_key(s, None, ns.IGNORECASE) == tuple(_number_extracter(s.casefold(), _int_nosign_re, *int_nosafe_nolocale_nogroup))
except AttributeError:
assert _natsort_key(s, None, ns.IGNORECASE) == tuple(_number_extracter(s.lower(), _int_nosign_re, *int_nosafe_nolocale_nogroup))
示例2: test__natsort_key_with_float_and_unsigned_splits_input_into_string_and_unsigned_float
def test__natsort_key_with_float_and_unsigned_splits_input_into_string_and_unsigned_float(x):
assume(not any(type(y) == float and isnan(y) for y in x))
s = ''.join(repr(y) if type(y) in (float, long, int) else y for y in x)
assert ns.U == ns.UNSIGNED
assert _natsort_key(s, None, ns.F | ns.U) == tuple(_number_extracter(s, _float_nosign_exp_re, *float_nosafe_nolocale_nogroup))
# Default is unsigned search
assert _natsort_key(s, None, ns.F) == tuple(_number_extracter(s, _float_nosign_exp_re, *float_nosafe_nolocale_nogroup))
示例3: test__natsort_key_with_bytes_input_only_applies_LOWERCASEFIRST_or_IGNORECASE_and_returns_in_tuple
def test__natsort_key_with_bytes_input_only_applies_LOWERCASEFIRST_or_IGNORECASE_and_returns_in_tuple():
if sys.version[0] == '3':
assert _natsort_key(b'Apple56', None, ns.I) == (b'Apple56',)
assert _natsort_key(b'Apple56', None, ns.LF) == (b'aPPLE56',)
assert _natsort_key(b'Apple56', None, ns.IC) == (b'apple56',)
assert _natsort_key(b'Apple56', None, ns.G) == (b'Apple56',)
else:
assert True
示例4: test__natsort_key_with_int_splits_input_into_string_and_unsigned_int
def test__natsort_key_with_int_splits_input_into_string_and_unsigned_int(x):
assume(not any(type(y) == float and isnan(y) for y in x))
s = ''.join(repr(y) if type(y) in (float, long, int) else y for y in x)
assert ns.I == ns.INT
assert _natsort_key(s, None, ns.INT) == tuple(_number_extracter(s, _int_nosign_re, *int_nosafe_nolocale_nogroup))
# Default is int search
assert _natsort_key(s, None, ns.NOEXP) == tuple(_number_extracter(s, _int_nosign_re, *int_nosafe_nolocale_nogroup))
# NOEXP is ignored for integers
assert _natsort_key(s, None, ns.I | ns.NOEXP) == tuple(_number_extracter(s, _int_nosign_re, *int_nosafe_nolocale_nogroup))
示例5: test__natsort_key_with_LOCALE_transforms_floats_according_to_the_current_locale_and_strxfrms_strings
def test__natsort_key_with_LOCALE_transforms_floats_according_to_the_current_locale_and_strxfrms_strings(x):
# Locale aware sorting
assume(not any(type(y) == float and isnan(y) for y in x))
s = ''.join(repr(y) if type(y) in (float, long, int) else y for y in x)
load_locale('en_US')
if dumb_sort():
assert _natsort_key(s, None, ns.LOCALE | ns.F) == tuple(_number_extracter(s.swapcase(), _float_nosign_exp_re, *float_nosafe_locale_group))
else:
assert _natsort_key(s, None, ns.LOCALE | ns.F) == tuple(_number_extracter(s, _float_nosign_exp_re, *float_nosafe_locale_nogroup))
locale.setlocale(locale.LC_NUMERIC, str(''))
示例6: test__natsort_key_with_float_and_signed_splits_input_into_string_and_signed_float_with_exponent
def test__natsort_key_with_float_and_signed_splits_input_into_string_and_signed_float_with_exponent(x):
assume(len(x) <= 10)
assume(not any(type(y) == float and isnan(y) for y in x))
s = ''.join(repr(y) if type(y) in (float, long, int) else y for y in x)
assert ns.F == ns.FLOAT
assert ns.S == ns.SIGNED
assert _natsort_key(s, None, ns.F | ns.S) == tuple(_number_extracter(s, _float_sign_exp_re, *float_nosafe_nolocale_nogroup))
示例7: test__natsort_key_with_tuple_input_returns_nested_tuples
def test__natsort_key_with_tuple_input_returns_nested_tuples(x):
# Iterables are parsed recursively so you can sort lists of lists.
assume(len(x) <= 10)
assume(not any(type(y) == float and isnan(y) for y in x))
s = ''.join(repr(y) if type(y) in (float, long, int) else y for y in x)
t = tuple(_number_extracter(s, _int_nosign_re, *int_nosafe_nolocale_nogroup))
assert _natsort_key((s, s), None, ns.I) == (t, t)
示例8: test__natsort_key_with_tuple_input_but_itemgetter_key_returns_split_second_element
def test__natsort_key_with_tuple_input_but_itemgetter_key_returns_split_second_element(x):
# A key is applied before recursion, but not in the recursive calls.
assume(len(x) <= 10)
assume(not any(type(y) == float and isnan(y) for y in x))
s = ''.join(repr(y) if type(y) in (float, long, int) else y for y in x)
t = tuple(_number_extracter(s, _int_nosign_re, *int_nosafe_nolocale_nogroup))
assert _natsort_key((s, s), itemgetter(1), ns.I) == t
示例9: assume
def test__natsort_key_with_GROUPLETTERS_and_LOWERCASEFIRST_inverts_text_first_then_doubles_letters_with_lowercase_letter_first(x):
assume(len(x) <= 10)
assume(not any(type(y) == float and isnan(y) for y in x))
s = ''.join(ichain([repr(y)] if type(y) in (float, long, int) else [low(y), y] for y in x))
s = ''.join(repr(y) if type(y) in (float, long, int) else y for y in x)
t = _number_extracter(s.swapcase(), _int_nosign_re, *int_nosafe_nolocale_nogroup)
assert _natsort_key(s, None, ns.G | ns.LF) == tuple(''.join(low(z) + z for z in y) if type(y) not in (float, long, int) else y for y in t)
示例10: test__natsort_key_with_LOCALE_and_UNGROUPLETTERS_places_space_before_string_with_capital_first_letter
def test__natsort_key_with_LOCALE_and_UNGROUPLETTERS_places_space_before_string_with_capital_first_letter():
# Locale aware sorting
locale.setlocale(locale.LC_NUMERIC, str('en_US.UTF-8'))
if use_pyicu:
from natsort.locale_help import get_pyicu_transform
from locale import getlocale
strxfrm = get_pyicu_transform(getlocale())
else:
from natsort.locale_help import strxfrm
assert _natsort_key('Apple56.5', None, ns.LOCALE | ns.UNGROUPLETTERS | ns.F) == (strxfrm(' Apple'), 56.5)
assert _natsort_key('apple56.5', None, ns.LOCALE | ns.UNGROUPLETTERS | ns.F) == (strxfrm('apple'), 56.5)
assert _natsort_key('12Apple56.5', None, ns.LOCALE | ns.UNGROUPLETTERS | ns.F) == (null_string, 12.0, strxfrm('Apple'), 56.5)
# The below are all aliases for UNGROUPLETTERS
assert ns.UNGROUPLETTERS == ns.UG
assert ns.UNGROUPLETTERS == ns.CAPITALFIRST
assert ns.UNGROUPLETTERS == ns.C
locale.setlocale(locale.LC_NUMERIC, str(''))
示例11: test__natsort_key_with_LOCALE_transforms_floats_according_to_the_current_locale_and_strxfrms_strings
def test__natsort_key_with_LOCALE_transforms_floats_according_to_the_current_locale_and_strxfrms_strings():
# Locale aware sorting
locale.setlocale(locale.LC_NUMERIC, str('en_US.UTF-8'))
if use_pyicu:
from natsort.locale_help import get_pyicu_transform
from locale import getlocale
strxfrm = get_pyicu_transform(getlocale())
else:
from natsort.locale_help import strxfrm
assert _natsort_key('Apple56.5', None, ns.LOCALE) == (strxfrm('Apple'), 56.5)
assert _natsort_key('Apple56,5', None, ns.LOCALE) == (strxfrm('Apple'), 56.0, strxfrm(','), 5.0)
locale.setlocale(locale.LC_NUMERIC, str('de_DE.UTF-8'))
if use_pyicu:
strxfrm = get_pyicu_transform(getlocale())
assert _natsort_key('Apple56.5', None, ns.LOCALE) == (strxfrm('Apple'), 56.5)
assert _natsort_key('Apple56,5', None, ns.LOCALE) == (strxfrm('Apple'), 56.5)
locale.setlocale(locale.LC_NUMERIC, str(''))
示例12: test__natsort_key_with_GROUPLETTERS_doubles_text_with_lowercase_letter_first
def test__natsort_key_with_GROUPLETTERS_doubles_text_with_lowercase_letter_first(x):
try:
low = py23_str.casefold
except AttributeError:
low = py23_str.lower
assume(len(x) <= 10)
assume(not any(type(y) == float and isnan(y) for y in x))
s = ''.join(ichain([repr(y)] if type(y) in (float, long, int) else [low(y), y] for y in x))
s = ''.join(repr(y) if type(y) in (float, long, int) else y for y in x)
t = _number_extracter(s, _int_nosign_re, *int_nosafe_nolocale_nogroup)
assert _natsort_key(s, None, ns.GROUPLETTERS) == tuple(''.join(low(z) + z for z in y) if type(y) not in (float, long, int) else y for y in t)
示例13: test_natsort_key_public_raises_DeprecationWarning_when_called
def test_natsort_key_public_raises_DeprecationWarning_when_called():
# Identical to _natsort_key
# But it raises a deprecation warning
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("always")
assert natsort_key('a-5.034e2') == _natsort_key('a-5.034e2', key=None, alg=ns.I)
assert len(w) == 1
assert "natsort_key is deprecated as of 3.4.0, please use natsort_keygen" in str(w[-1].message)
# It is called for each element in a list when sorting
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("always")
a = ['a2', 'a5', 'a9', 'a1', 'a4', 'a10', 'a6']
a.sort(key=natsort_key)
assert len(w) == 7
示例14: test__natsort_key_with_LOCALE_and_UNGROUPLETTERS_places_space_before_string_with_capital_first_letter
def test__natsort_key_with_LOCALE_and_UNGROUPLETTERS_places_space_before_string_with_capital_first_letter(x):
# Locale aware sorting
assume(not any(type(y) == float and isnan(y) for y in x))
s = ''.join(repr(y) if type(y) in (float, long, int) else y for y in x)
load_locale('en_US')
if dumb_sort():
t = tuple(_number_extracter(s.swapcase(), _float_nosign_exp_re, *float_nosafe_locale_group))
else:
t = tuple(_number_extracter(s, _float_nosign_exp_re, *float_nosafe_locale_nogroup))
if not t:
r = (t, t)
elif t[0] in (null_string, get_strxfrm()(b'\x00') if sys.version[0] == '2' and not use_pyicu else null_string):
r = ((b'' if use_pyicu else '',), t)
else:
r = ((s[0],), t)
assert _natsort_key(s, None, ns.LOCALE | ns.UNGROUPLETTERS | ns.F) == r
# The below are all aliases for UNGROUPLETTERS
assert ns.UNGROUPLETTERS == ns.UG
assert ns.UNGROUPLETTERS == ns.CAPITALFIRST
assert ns.UNGROUPLETTERS == ns.C
locale.setlocale(locale.LC_NUMERIC, str(''))
示例15: test__natsort_key_with_LOWERCASEFIRST_inverts_text_case
def test__natsort_key_with_LOWERCASEFIRST_inverts_text_case(x):
assume(len(x) <= 10)
assume(not any(type(y) == float and isnan(y) for y in x))
s = ''.join(repr(y) if type(y) in (float, long, int) else y for y in x)
assert _natsort_key(s, None, ns.LOWERCASEFIRST) == tuple(_number_extracter(s.swapcase(), _int_nosign_re, *int_nosafe_nolocale_nogroup))