skip to navigation
skip to content

Not Logged In

quoter 1.5.6

Powerful way to construct text, HTML, and XML, plus a kick-ass join

Usage

from quoter import *

print single('this')       # 'this'
print double('that')       # "that"
print backticks('ls -l')   # `ls -l`
print braces('curlycue')   # {curlycue}
print braces('curlysue', padding=1)
                           # { curlysue }

Cute…but way too simple to be useful, right? Read on!

Let’s try something more complicated, where the output has to be intelligently based on context. Here’s a taste of quoting some HTML content:

print html.p("A para", ".focus")
print html.img('.large', src='file.jpg')
print html.br()
print html.comment("content ends here")

Yields:

<p class='focus'>A para</p>
<img class='large' src='file.jpg'>
<br>
<!-- content ends here -->

This clearly goes beyond “simply wrapping some text with other text.” The output format varies widely, correctly interpreting CSS Selector-based controls, using void/self-closing elements where needed, and specialized markup. The HTML quoter and its companion XML quoter are competitive in power and simplicity with bespoke markup-generating packages. (A similar generator for Markdown is also newly included, though it’s a the “demonsration” rather than “use” stage.)

Finally, quoter provides a drop-dead simple, highly functional, join function:

mylist = list("ABCD")
print join(mylist)
print join(mylist, sep=" | ", endcaps=braces)
print join(mylist, sep=" | ", endcaps=braces.but(padding=1))
print and_join(mylist)
print and_join(mylist[:2])
print and_join(mylist[:3])
print and_join(mylist, quoter=double, lastsep=" and ")

Yields:

A, B, C, D
{A | B | C | D}
{ A | B | C | D }
A and B
A, B, and C
A, B, C, and D
"A", "B", "C" and "D"

Which shows a range of separators, separation styles (both Oxford and non-Oxford commas), endcaps, padding, and individual item quoting. I daresay you will not find a more flexible or configurable join function anywhere else, in any programming language, at any price.

And if you like any particular style of formatting, make it your own:

>>> my_join = join.but(sep=" | ", endcaps=braces.but(padding=1))
>>> print my_join(mylist)
{ A | B | C | D }

Now you have a convenient specialized formatter to your own specifications.

See the rest of the story at Read the Docs.

 
File Type Py Version Uploaded on Size
quoter-1.5.6-py2.py3-none-any.whl (md5) Python Wheel 2.7 2015-08-25 15KB
quoter-1.5.6.tar.gz (md5) Source 2015-08-25 32KB
quoter-1.5.6.zip (md5) Source 2015-08-25 44KB
  • Downloads (All Versions):
  • 4 downloads in the last day
  • 2263 downloads in the last week
  • 11946 downloads in the last month