Skip to main content

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

Project description

Travis CI build status PyPI Package latest release Supported versions Supported implementations Wheel packaging support Test line coverage

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 goes well 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 using specialized markup such as the comment format when needed. 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 in production code” 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quoter-1.6.8.zip (53.5 kB view details)

Uploaded Source

Built Distribution

quoter-1.6.8-py2.py3-none-any.whl (16.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file quoter-1.6.8.zip.

File metadata

  • Download URL: quoter-1.6.8.zip
  • Upload date:
  • Size: 53.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for quoter-1.6.8.zip
Algorithm Hash digest
SHA256 0100bcb2cb632646c823b5ed871815aad81b6d32980a3cfdae00c0a7805f45ae
MD5 5948ce0d7ed7c161b201df02e8421ebb
BLAKE2b-256 878d8e0d730e4382517f1b25937dd6d36a5ddf77225fc3d4039178df03a1d3c5

See more details on using hashes here.

File details

Details for the file quoter-1.6.8-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for quoter-1.6.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c3797d0d87b9ef9ccb07713eeae3df7b25d041f0da308c82929714bb200e5fb1
MD5 a19710e77a3417fe5f61526259c2f4d7
BLAKE2b-256 0defe3691468631a88a36da4439185d7e88a398dd8e159f4b43f242e5c23d219

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page