Skip to main content

A sub-class of the Python str class that adds case conversion functions.

Project description

StringBender

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

Table of Contents

Installation

From the command line:

pip install stringbender

or if you're using poetry:

poetry add 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.4.0.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

stringbender-0.4.0-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file stringbender-0.4.0.tar.gz.

File metadata

  • Download URL: stringbender-0.4.0.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.1 Linux/6.5.0-1025-azure

File hashes

Hashes for stringbender-0.4.0.tar.gz
Algorithm Hash digest
SHA256 b0e38588d8c57f3a1dc1c8526ef3ad107c898ef3c28a8cd98029080fc2400a62
MD5 32ff783548cb1534dc1bd7af11d59bb3
BLAKE2b-256 85c165fd71e90458ce5e1b0fd22fd86644d5941f197c5a29f442cb772eceef6b

See more details on using hashes here.

File details

Details for the file stringbender-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: stringbender-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.1 Linux/6.5.0-1025-azure

File hashes

Hashes for stringbender-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 639e3ae54714203b2c2d8a6a083a4e4210e7f92cfef84ff9ad8daff0fe855006
MD5 5833a72ebc9054cb5f4b507c18ed8d9d
BLAKE2b-256 5ec21ea69a29b770da8d0f48af0089337e36d70f8c732e775fc32d92f02488c0

See more details on using hashes here.

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