# HG changeset patch # User svartalf # Date 1271032995 -32400 # Node ID 7de2a6db5390925d8c92bed3a83a0ee6d2fb1743 # Parent 1f375806776b4dac73e6060575e4eb06225b7e73 Поправки к некоторым правилам diff -r 1f375806776b4dac73e6060575e4eb06225b7e73 -r 7de2a6db5390925d8c92bed3a83a0ee6d2fb1743 pytyph/rules/punctuation.py --- a/pytyph/rules/punctuation.py Fri Apr 09 17:47:25 2010 +0900 +++ b/pytyph/rules/punctuation.py Mon Apr 12 09:43:15 2010 +0900 @@ -24,7 +24,7 @@ Rule(ur'\s+(?=[\.,:;!\?…])', ''), # Расстановка пробелов после знака препинания - Rule(ur'(?<=[\.,:;!\?…])(?![\.,:;!\?…\s])\d', ' ',priority = 100), + Rule(ur'(?<=[\.,:;!\?…])(?![\.,:;!\?…\s])\b', ' ',priority=1), # Расстановка запятых перед а, но Rule(ur'(?<=[^,])(?=\s(?:а|но)\s)', ur','), @@ -42,7 +42,7 @@ # Многоточие отбивается от следующего слова пробелом и не отбивается # от предыдущего слова # TODO: Исключением является правило, когда многоточие находится в начале строки - Rule(r'\s+\.{2,}', u'… '), + Rule(r'\s*\.{2,}', u'… '), # Когда в одном месте встречаются и многоточие, и запятая, # запятая поглощается многоточием @@ -58,7 +58,7 @@ # TODO: Если многоточие стоит в начале предложения оно не отбивается пробелом # TODO: В числовых интервалах многоточие не отбивается пробелами - - # Многоточие - Rule(ur'\.{2,}', u'…'), + + # Длинное тире + Rule(u'\s*--', u' —'), ) diff -r 1f375806776b4dac73e6060575e4eb06225b7e73 -r 7de2a6db5390925d8c92bed3a83a0ee6d2fb1743 pytyph/tests/characters.py --- a/pytyph/tests/characters.py Fri Apr 09 17:47:25 2010 +0900 +++ b/pytyph/tests/characters.py Mon Apr 12 09:43:15 2010 +0900 @@ -11,10 +11,9 @@ def testCharacters(self): test = u'(c) (r) (tm) +- 100x100 1/2 1/3 10C №1 §32 §IV' - right = u'© ® ™ ± 100×100 ½ ⅓ 10 °C № 1 § 32 § IV' + right = u'© ® ™ ± 100×100 ½ ⅓ 10 °C № 1 § 32 § IV' self.assertEqual(self.typograph.process(test), right) if __name__ == '__main__': unittest.main() - diff -r 1f375806776b4dac73e6060575e4eb06225b7e73 -r 7de2a6db5390925d8c92bed3a83a0ee6d2fb1743 pytyph/tests/punctuation.py --- a/pytyph/tests/punctuation.py Fri Apr 09 17:47:25 2010 +0900 +++ b/pytyph/tests/punctuation.py Mon Apr 12 09:43:15 2010 +0900 @@ -11,11 +11,14 @@ def testPunct(self): test = u'опа... ;;; ,,, ::: -- - ' - right = u'опа… ;; ,,, :: — —' + right = u'опа… ;; ,,, :: — -' self.assertEqual(self.typograph.process(test), right) - + if __name__ == '__main__': unittest.main() - \ No newline at end of file +''' +u'\u043e\u043f\u0430…;,: -- -' != u'\u043e\u043f\u0430… ;; ,,, :: — —' + +''' diff -r 1f375806776b4dac73e6060575e4eb06225b7e73 -r 7de2a6db5390925d8c92bed3a83a0ee6d2fb1743 pytyph/typograph.py --- a/pytyph/typograph.py Fri Apr 09 17:47:25 2010 +0900 +++ b/pytyph/typograph.py Mon Apr 12 09:43:15 2010 +0900 @@ -27,6 +27,8 @@ for rule in self._rules: text = rule.process(text) + return text.strip() + def _pre_process(self, text): '''Пре-обработка текста'''