Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > cz.comp.lang.python > #3110
| X-Received | by 10.157.19.17 with SMTP id f17mr18498312ote.33.1471897817640; Mon, 22 Aug 2016 13:30:17 -0700 (PDT) |
|---|---|
| X-Received | by 10.36.36.10 with SMTP id f10mr729552ita.7.1471897817602; Mon, 22 Aug 2016 13:30:17 -0700 (PDT) |
| Path | csiph.com!feeder.erje.net!2.us.feeder.erje.net!news.glorb.com!f6no12122357ith.0!news-out.google.com!d130ni43645ith.0!nntp.google.com!f6no12122346ith.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail |
| Newsgroups | cz.comp.lang.python |
| Date | Mon, 22 Aug 2016 13:30:16 -0700 (PDT) |
| Complaints-To | groups-abuse@google.com |
| Injection-Info | glegroupsg2000goo.googlegroups.com; posting-host=78.102.123.171; posting-account=OLxF2goAAADWtpauRW_28PxP308IEwyB |
| NNTP-Posting-Host | 78.102.123.171 |
| User-Agent | G2/1.0 |
| MIME-Version | 1.0 |
| Message-ID | <9c794255-6876-450b-aec5-d7fcbea74037@googlegroups.com> (permalink) |
| Subject | PyFormat 0.1.0 released |
| From | Pavel Schön <pavel@schon.cz> |
| Injection-Date | Mon, 22 Aug 2016 20:30:17 +0000 |
| Content-Type | text/plain; charset=UTF-8 |
| Content-Transfer-Encoding | quoted-printable |
| Xref | csiph.com cz.comp.lang.python:3110 |
Show key headers only | View raw
Zdravím,
chtěl bych zde uvést nový projekt "PyFormat", který zpřístupňuje třídu boost::format z balíku C++ knihoven Boost.org. Pokud někdo používáte Boost, jistě znáte i boost::format.
Modul PyFormat funguje pro Python 2.x a 3.x a podporuje byte stringy i unicode stringy.
Mezi killer feature patří fakt, že formátovací string je syntakticky validován a zkompilován během inicializace a ne až při vyhodnocení, kdy už může být pozdě.
Dále je třeba zmínit, že format objekt lze hodnotami plnit postupně a ne nutně najednou. (operátor % vrací self)
Pomocí bitmasky lze konfigurovat, které chyby budou raisnuty a které ignorovány (např. nesprávný počet argumentů).
Nevýhoda je, že boost::format je relativně pomalý, takže se nedivte, pokud budou výsledky horší než u nativního formátování v pythonu. Ale cíl projektu není překonat nativní formátování co do rychlosti, ale co do features a robustnosti a poskytnout kompatibilní vrstvu pro další projekt, který má boost::format na vstupu-ale o tom zas jindy.
Třídy v modulu:
----------------
Format: bytestringy, Python2: __str__, Python3: __bytes__
UFormat: unicode stringy, Python2: __unicode__, Python3: __str__
Základy použití modulu:
---------------------------
>>> from pyformat import Format as F, UFormat as U
>>> fmt = U('%s %s %s')
>>> print(fmt % 'a' % 'b' % 'c')
a b c
>>> print(fmt % 1 % 2 % 3)
1 2 3
Klonování:
---------------
from pyformat import Format as F, UFormat as U
tmpl = U('foo %s') # parsed only once
def foo(i):
fmt = tmpl.clone() # clone parsed object (copy.copy() also works)
print(fmt % i)
foo(1)
foo(2)
foo(3)
Prohození:
-------------
>>> fmt1, fmt2 = U('first'), U('second')
>>> fmt1.swap(fmt2)
Projekt včetně popisu dalších featur je ke stažení na https://github.com/pavelschon/PyFormat
Budu rád za každý bug report a pull request.
Back to cz.comp.lang.python | Previous | Next — Next in thread | Find similar
PyFormat 0.1.0 released Pavel Schön <pavel@schon.cz> - 2016-08-22 13:30 -0700
Re: [python] PyFormat 0.1.0 released Pavel Schön <pavel@schon.cz> - 2016-08-22 14:43 -0700
Re: [python] PyFormat 0.1.0 released Lumír Balhar <frenzy.madness@gmail.com> - 2016-08-22 23:14 -0700
Re: [python] PyFormat 0.1.0 released Pavel Schön <pavel@schon.cz> - 2016-08-23 00:12 -0700
Re: [python] PyFormat 0.1.0 released Ondrej Tuma <konference@webjet.cz> - 2016-08-23 11:05 +0200
Re: [python] PyFormat 0.1.0 released Pavel Schön <pavel@schon.cz> - 2016-08-23 02:59 -0700
Re: [python] PyFormat 0.1.0 released Pavel Schön <pavel@schon.cz> - 2016-08-24 01:39 -0700
Re: [python] PyFormat 0.1.0 released Honza Král <honza.kral@gmail.com> - 2016-08-24 16:05 +0200
Re: [python] PyFormat 0.1.0 released Ken Mijime <kenaco666@gmail.com> - 2016-08-23 20:54 +0200
Re: [python] PyFormat 0.1.0 released Honza Král <honza.kral@gmail.com> - 2016-08-23 12:40 +0200
Re: [python] PyFormat 0.1.0 released Pavel Schön <pavel@schon.cz> - 2016-08-23 12:09 -0700
Re: PyFormat 0.1.0 released Pavel Schön <pavel@schon.cz> - 2016-08-23 02:01 -0700
Re: [python] PyFormat 0.1.0 released Ken Mijime <kenaco666@gmail.com> - 2016-08-23 11:08 +0200
Re: [python] PyFormat 0.1.0 released Ondrej Tuma <konference@webjet.cz> - 2016-08-23 11:09 +0200
Re: [python] PyFormat 0.1.0 released Petr Messner <petr.messner@gmail.com> - 2016-08-23 11:40 +0200
csiph-web