Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions slugify/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,23 +43,23 @@ def join_words(words, separator, max_length=None):
UPPER_TO_UPPER_LETTERS_RE = \
u'''
(
\p{Uppercase_Letter} {2,} # 2 or more adjacent letters - UP always
\\p{Uppercase_Letter} {2,} # 2 or more adjacent letters - UP always
|
\p{Uppercase_Letter} # target one uppercase letter, then
\\p{Uppercase_Letter} # target one uppercase letter, then
(?=
[^\p{Lowercase_Letter}…\p{Term}--,،﹐,]+ # not chars breaks possible UP (…abc.?!:;)
\p{Uppercase_Letter} {2} # and 2 uppercase letters
[^\\p{Lowercase_Letter}…\\p{Term}--,،﹐,]+ # not chars breaks possible UP (…abc.?!:;)
\\p{Uppercase_Letter} {2} # and 2 uppercase letters
)
|
(?<=
\p{Uppercase_Letter} {2} # 2 uppercase letters
[^\p{Lowercase_Letter}…\p{Term}--,،﹐,]+ # not chars breaks possible UP (…abc.?!:;), then
\\p{Uppercase_Letter} {2} # 2 uppercase letters
[^\\p{Lowercase_Letter}…\\p{Term}--,،﹐,]+ # not chars breaks possible UP (…abc.?!:;), then
)
\p{Uppercase_Letter} # target one uppercase letter, then
\\p{Uppercase_Letter} # target one uppercase letter, then
(?!
\p{Lowercase_Letter} # not lowercase letter
\\p{Lowercase_Letter} # not lowercase letter
|
[…\p{Term}--,،﹐,]\p{Uppercase_Letter} # and not dot (.?…!:;) with uppercase letter
[…\\p{Term}--,،﹐,]\\p{Uppercase_Letter} # and not dot (.?…!:;) with uppercase letter
)
)
'''
Expand Down Expand Up @@ -95,7 +95,7 @@ def pretranslate_dict_to_function(self, convert_dict):
convert_dict[letter_upper] = translation.capitalize()

self.convert_dict = convert_dict
PRETRANSLATE = re.compile(u'(\L<options>)', options=convert_dict)
PRETRANSLATE = re.compile(u'(\\L<options>)', options=convert_dict)

# translate some letters before translating
return lambda text: PRETRANSLATE.sub(lambda m: convert_dict[m.group(1)], text)
Expand Down Expand Up @@ -137,11 +137,11 @@ def set_stop_words(self, stop_words):
stop_words = property(fset=set_stop_words)

def calc_unwanted_chars_re(self):
unwanted_chars_re = u'[^\p{{AlNum}}{safe_chars}]+'.format(safe_chars=re.escape(self._safe_chars or ''))
unwanted_chars_re = u'[^\\p{{AlNum}}{safe_chars}]+'.format(safe_chars=re.escape(self._safe_chars or ''))
self.unwanted_chars_re = re.compile(unwanted_chars_re, re.IGNORECASE)

if self._stop_words:
unwanted_chars_and_words_re = unwanted_chars_re + u'|(?<!\p{AlNum})(?:\L<stop_words>)(?!\p{AlNum})'
unwanted_chars_and_words_re = unwanted_chars_re + u'|(?<!\\p{AlNum})(?:\\L<stop_words>)(?!\\p{AlNum})'
self.unwanted_chars_and_words_re = re.compile(unwanted_chars_and_words_re, re.IGNORECASE, stop_words=self._stop_words)
else:
self.unwanted_chars_and_words_re = None
Expand Down