Skip to main content

clean up triple quotes

Project description

triple-quote-clean

TripleQuoteCleaner is a Python class that can be used to clean triple-quoted strings in a variety of ways. It's designed to be used in cases where you want to remove extraneous whitespace and/or add indentation to a triple-quoted string. This is useful when dealing with extensions/code that require some extraneous metadata in the string.

To use TripleQuoteCleaner, simply import it into your Python script:

from triple_quote_clean import TripleQuoteCleaner

Usage

Basic Usage

TripleQuoteCleaner is designed to be used with the >>, <<, < >, ** operators in Python. All the different operators were selected to allow for flexibility when considering the operator order, i.e. ** takes the highest priority and should be used when adding strings

Here's an example:

query = """--sql
    select *
    from some_database
"""

tqc                = TripleQuoteCleaner()
tqc.skip_top_lines = 1
output             = query >> tqc

In this example, the >> operator is used to "pipe" the query string into tqc. skip_top_lines is set to 1 so that the first line of the query (the "--sql" line) is skipped. The output of this code will be:

select *
from some_database

Indentation

TripleQuoteCleaner can also be used to add indentation to a triple-quoted string. Here's an example:

input_string = """hello world"""
tqc          = TripleQuoteCleaner()
output       = '\n' + input_string >> tqc.tab

In this example, tqc.tab is used to add one level of indentation to the output string. The output of this code will be:

    hello world

Guide Characters

Indentation can also be specified using a "guide character". This is useful if you want to maintain a certain level of tabs in all your paragraphs in your triple-quoted string. Here's an example:

query = """--sql
$$
    select *
    from some_database
"""

tqc                = TripleQuoteCleaner()
tqc.skip_top_lines = 1
output             = query >> tqc

In this example, tqc.guide_character is set to "$$" so that the 4 beginning spaces will be maintained . The output of this code will be:

    select *
    from some_database

Jinja Pipe

A jinja pipe is a simple wrapper over a jinja string render. For example

tqc = TripleQuoteCleaner(skip_top_lines=1)
 (
    JinjaPipe(columns=["hello", "these", "are", "some", "columns"])
    << tqc
    ** """--sql
    select
    {% for item in columns %}
        {% if loop.last%}
            nvl({{item}}, -1)
        {% else %}
            nvl({{item}}, -1),
        {% endif %}
    {% endfor %}
    from
        some.table
    """
)

will produce

select
    hello,
    these,
    are,
    some,
    columns,
    world
from
    some.table

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

triple-quote-clean-1.1.0.tar.gz (4.7 kB view hashes)

Uploaded Source

Built Distribution

triple_quote_clean-1.1.0-py3-none-any.whl (5.0 kB view hashes)

Uploaded Python 3

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