Incorporate long strings painlessly, beautifully into Python code.
Project description
paragraphs
Incorporate long strings painlessly, beautifully into Python code.
Examples
Easily edited, gq
-able, fill-paragraph
-able, comprehensive error messages.
from paragraphs import par
class SuddenDeathError(Exception):
def __init__(self, cause: str) -> None:
self.cause = cause
def __str__(self) -> str:
return par(
f"""
Y - e - e - e - es, Lord love you! Why should she die of
{self.cause}? She come through diphtheria right enough the year
before. I saw her with my own eyes. Fairly blue with it, she was.
They all thought she was dead; but my father, he kept ladling gin
down her throat till she came to so sudden that she bit the bowl
off the spoon.
What call would a woman with that strength in her have to die of
{self.cause}? What become of her new straw hat that should have
come to me? Somebody pinched it; and what I say is, them as pinched
it done her in."""
)
raise SuddenDeathError("influenza")
Nicely-formatted long string data. Spoilers for some old novels here, but these are the original titles.
author2titles = {
"Samuel Penhallow": [
par(
"""
The history of the wars of New-England with the Eastern Indians;
or, a narrative of their continued perfidy and cruelty, from the
10th of August, 1703, to the peace renewed 13th of July, 1713. And
from the 25th of July, 1722, to their submission 15th December,
1725, which was ratified August 5th, 1726"""
)
],
"Daniel Defoe": [
par(
"""
The Life and Strange Surprizing Adventures of Robinson Crusoe, Of
York, Mariner: Who lived Eight and Twenty Years, all alone in an
un-inhabited Island on the Coast of America, near the Mouth of the
Great River of Oroonoque; Having been cast on Shore by Shipwreck,
wherein all the Men perished but himself. With An Account how he
was at last as strangely deliver'd by Pyrates"""
),
par(
"""The Fortunes and Misfortunes of the Famous Moll Flanders Who was
born in Newgate, and during a life of continu’d Variety for
Threescore Years, besides her Childhood, was Twelve Years a Whore,
five times a Wife (whereof once to her brother) Twelve Years a
Thief, Eight Years a Transported Felon in Virginia, at last grew
Rich, liv’d Honest and died a Penitent"""
),
],
}
Installation
pip install paragraphs
Use
from paragraphs import par
PARAGRAPH = par(
"""Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
est laborum."""
)
# the above is equivalent to
PARAGRAPH = (
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod"
+ " tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim"
+ " veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea"
+ " commodo consequat. Duis aute irure dolor in reprehenderit in voluptate"
+ " velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint"
+ " occaecat cupidatat non proident, sunt in culpa qui officia deserunt"
+ " mollit anim id est laborum."
)
Features
Joins lines. Removes indentation and leading whitespace.
>>> par(
"""Lorem ipsum dolor
sit amet,"""
)
Lorem ipsum dolor sit amet,
Ignores one leading newline.
>>> par(
"""
Lorem ipsum dolor
sit amet,"""
)
Lorem ipsum dolor sit amet,
Separates paragraphs with double newline ("\n\n"
).
>>> par (
"""
Lorem ipsum dolor
sit amet,
consectetur
adipiscing
elit"""
)
Lorem ipsum dolor sit amet,
<blankline>
consectetur adipiscing elit
Retains one trailing newline (if present).
>>> par(
"""retains one trailing newline
"""
)
retains one trailing newline
<blankline>
>>> par("""no trailing newline""")
no trailing newline
Notes
converts all whitespace to " "
>>> par("""converts\tall\twhitespace\tto\<space>""")
converts all whitespace to <space>
compresses consecutive whitespace to " "
>>> par("""compresses consecutive whitespace""")
compresses consecutive whitespace
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 paragraphs-1.0.1.tar.gz
.
File metadata
- Download URL: paragraphs-1.0.1.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad393f2e99432740f36c115280aa454c53c8048e6a2cda0b81df4effc8043a60 |
|
MD5 | 83d2139ded80c1636b10cc8c05baa165 |
|
BLAKE2b-256 | 24712462530f2e70991c1d19c03423a0bc1cdde8e49a415762edaebe7c19f9a3 |
File details
Details for the file paragraphs-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: paragraphs-1.0.1-py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a189d8dfc6241b5caa9b3ae730ee6ccce53e483d3b45183d13f657f7d0d1b35 |
|
MD5 | d904ce6e6fd7ee6b562050cffe723f0b |
|
BLAKE2b-256 | 1879806f22675c50f9cc827376756186c8601ef52a9cf08d2c7b80964e1daba2 |