Re: [python] alternativa textwrap.fill(), která by zarovnávala po česku?

2017-05-11 Tema obsahu Matěj Cepl
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?

2017-05-11 Tema obsahu Petr Viktorin

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?

2017-05-11 Tema obsahu Matěj Cepl
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?

2017-05-11 Tema obsahu Petr Přikryl
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