Skip to main content

A sub-class of str that provides case conversion functions

Project description

StringBender

Sub-class of Python str that adds case conversion functions. They are especially useful for tranforming data model field names, ex: REST (camelCase) to Python (snake_case).

Table of Contents

Installation

From the command line:

pip install stringbender

Functions

StringBender provides the following static functions for converting the case of a specified string:

These helper methods call a corresponding method in the stringbender.String class and converts the output to str.

Usage:

from stringbender import camel, kebob, pascal, snake, String


# ================================================================================
# EXAMPLES                           # OUTPUT

s = "Hasta la vista baby"
print(camel(s))                      # hastaLaVistaBaby
print(kebob(s)                       # hasta-la-vista-baby
print(pascal(s))                     # HastaLaVistaBaby
print(snake(s))                      # hasta_la_vista_baby

# ================================================================================
# Using a StringBender method with a built-in function

# Create an instance of stringbender.String:
s = String("vote*for*pedro")

# Check the default output:
print(s.camel())                     # vote*For*Pedro (hmm... this isn't right)

# Pass in a custom delimiter:
print(s.replace("*", " ").camel())   # voteForPedro (Much better!)

# ================================================================================
# Using a list of delimiters
s = snake("Careful man, there's a beverage here!", delimiters=[",", "'", "!"])
print(snake(s))                      # careful_man_there_s_a_beverage_here

The String Class

stringbender.String


Methods
Optional argument definitions below

camel() (String) :

Combines all words and he first letter of the first word is lower case, while the first letter of every subsequent word is uppercase.

kebob() (String)

Creates a hyphen delimited lower-case string.

pascal() (String)

Combines all words, and capitalizes the first letter of each word.

snake() (String)

Creates an underscore delimited lower-case string.

as_str() (str)

Returns the value as a str. This is the same as str(String(...))

Constants

DEFAULT_DELIMITERS: List[str] = [" ", ".", "-", "_", ":", "\\"]

Optional Method Arguments

delimiters: List[str] = DEFAULT_DELIMITERS
Used to split the string into words.

split_on_first_upper: bool
Splits on the first occurence of a capital letter following a lowercase letter.

title_case: bool
For character-delimited strings (kebob, snake), This will capitalize the first letter of each word.

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

stringbender-0.3.0.tar.gz (6.8 kB view hashes)

Uploaded Source

Built Distribution

stringbender-0.3.0-py3-none-any.whl (5.5 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