Re: [python] alternativa textwrap.fill(), která by zarovnávala po česku?
On 2017-05-11, 09:22 GMT, Petr Viktorin wrote: > Jinak jestli se obáváš, že vlnovku budeš v textu potřebovat, > můžeš použít něco exotičtějšího, jako u'\x1a' > (https://en.wikipedia.org/wiki/Substitute_character#) Good point. Díky. Matěj -- https://matej.ceplovi.cz/blog/, Jabber: mc...@ceplovi.cz GPG Finger: 3C76 A027 CA45 AD70 98B5 BC1D 7920 5802 880B C9D8 Of course I'm respectable. I'm old. Politicians, ugly buildings, and whores all get respectable if they last long enough. --John Huston in "Chinatown." ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] alternativa textwrap.fill(), která by zarovnávala po česku?
On 05/11/2017 10:50 AM, Matěj Cepl wrote: On 2017-05-11, 07:31 GMT, Petr Přikryl wrote: Modul textwrap je psaný v Pythonu a nemá to ani 300 řádků (i s rozsáhlými docstringy). Přepište si to po svém, případně přidejte nějaký parametr typu "množina slov, která nemají zůstat na konci". Upstream first! https://fedoraproject.org/wiki/Staying_close_to_upstream_projects Ale jinak mi připadne jednodušší udělat takovej nějakej hack, který jsem udělal. A pokud to bude šikovné, pošlete to jako námět na vylepšení oficiálního textwrap. To nemá cenu, http://bugs.python.org/issue20491 už existuje a čeština není dost zajímavá, aby lezla do stdlib. To už bych očekával, že spíše https://pypi.python.org/pypi/pytextseg/ (podpora pro CJK jazyky) by měl větší šanci. Hlavně to nemá cenu proto, že v aktuálně vyvíjených verzích Pythonu je to opravené – do 2.7 už se podobné opravy nebackportují. Jinak jestli se obáváš, že vlnovku budeš v textu potřebovat, můžeš použít něco exotičtějšího, jako u'\x1a' (https://en.wikipedia.org/wiki/Substitute_character#) ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] alternativa textwrap.fill(), která by zarovnávala po česku?
On 2017-05-11, 07:31 GMT, Petr Přikryl wrote: > Modul textwrap je psaný v Pythonu a nemá to ani 300 řádků (i > s rozsáhlými docstringy). > Přepište si to po svém, případně přidejte nějaký parametr typu > "množina slov, která nemají zůstat na konci". Upstream first! https://fedoraproject.org/wiki/Staying_close_to_upstream_projects Ale jinak mi připadne jednodušší udělat takovej nějakej hack, který jsem udělal. > A pokud to bude šikovné, pošlete to jako námět na vylepšení > oficiálního textwrap. To nemá cenu, http://bugs.python.org/issue20491 už existuje a čeština není dost zajímavá, aby lezla do stdlib. To už bych očekával, že spíše https://pypi.python.org/pypi/pytextseg/ (podpora pro CJK jazyky) by měl větší šanci. Matěj -- https://matej.ceplovi.cz/blog/, Jabber: mc...@ceplovi.cz GPG Finger: 3C76 A027 CA45 AD70 98B5 BC1D 7920 5802 880B C9D8 Of course I'm respectable. I'm old. Politicians, ugly buildings, and whores all get respectable if they last long enough. --John Huston in "Chinatown." ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] alternativa textwrap.fill(), která by zarovnávala po česku?
Modul textwrap je psaný v Pythonu a nemá to ani 300 řádků (i s rozsáhlými docstringy). Přepište si to po svém, případně přidejte nějaký parametr typu "množina slov, která nemají zůstat na konci". A pokud to bude šikovné, pošlete to jako námět na vylepšení oficiálního textwrap. Přeji krásný den, Petr __ > Od: Matěj Cepl> Komu: python@py.cz > Datum: 11.05.2017 01:12 > Předmět: Re: [python] alternativa textwrap.fill(), kter > >On 2017-05-10, 22:28 GMT, Vláďa Macek wrote: >> print textwrap.fill(instr, width=65).replace(u'~', >> unichr(160)) > >No, udělal jsem v podstatě to: > >diff --git a/reflow.py b/reflow.py >index 22b08cf..757077c 100644 >--- a/reflow.py >+++ b/reflow.py >@@ -133,12 +133,18 @@ class ReflowPluginWindowActivatable(GObject.Object, > Gedit.WindowActivatable): > if isinstance(text, str): > text = unicode(text, 'utf8') > >+# we don't want to break on the non-breaking space >+# FIXME not sure whether there isn’t better replacement character >+text = text.replace(unichr(0xA0), '~') >+ > text = textwrap.fill(text, > width=self.get_gedit_margin(), > initial_indent=first_prefix, > subsequent_indent=prefix, > break_on_hyphens=False, > drop_whitespace=True) >+text = text.replace('~', unichr(0xA0)) >+ > return text > > def _get_line(self, index): > >Ale nejsem na to hrdej. Navíc přemýšlím, jestli někdy nebudu >chtít mít ~ znak v textu. Ale snad ne. > >Hezký den, > >Matěj > >-- >https://matej.ceplovi.cz/blog/, Jabber: mc...@ceplovi.cz >GPG Finger: 3C76 A027 CA45 AD70 98B5 BC1D 7920 5802 880B C9D8 > >Of course I'm respectable. I'm old. Politicians, ugly buildings, >and whores all get respectable if they last long enough. > --John Huston in "Chinatown." >___ >Python mailing list >python@py.cz >http://www.py.cz/mailman/listinfo/python > >Visit: http://www.py.cz > > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz