Powerful way to construct text, HTML, and XML, plus a kick-ass join
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0100bcb2cb632646c823b5ed871815aad81b6d32980a3cfdae00c0a7805f45ae |
|
MD5 | 5948ce0d7ed7c161b201df02e8421ebb |
|
BLAKE2b-256 | 878d8e0d730e4382517f1b25937dd6d36a5ddf77225fc3d4039178df03a1d3c5 |
File details
Details for the file quoter-1.6.8-py2.py3-none-any.whl
.
File metadata
- Download URL: quoter-1.6.8-py2.py3-none-any.whl
- Upload date:
- Size: 16.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3797d0d87b9ef9ccb07713eeae3df7b25d041f0da308c82929714bb200e5fb1 |
|
MD5 | a19710e77a3417fe5f61526259c2f4d7 |
|
BLAKE2b-256 | 0defe3691468631a88a36da4439185d7e88a398dd8e159f4b43f242e5c23d219 |