StringBender v0.2.0
Sub-class of Python str
that adds case conversion functions. They are useful for tranforming data model field names, ex: REST (camelCase) to Python (snake_case) when producing or consuming JSON.
Installation
From the command line:
pip install stringbender
Functions
StringBender provides the following static functions for converting the case of a specified string:
stringbender.camel
stringbender.kebob
stringbender.pascal
stringbender.snake
These helper methods call corresponding methods 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 function 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
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 astr
. This is the same asstr(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.