Skip to main content

A string case conversion package.

Project description

Case Converter

pipline wheel coverage license

A robust python package for transforming string cases such as Hello, world! into helloWorld (camelcase).

General usage

from caseconverter import camelcase

camelcase("Hello, world!") # output: helloWorld

Available conversions

camelcase

from caseconverter import camelcase

camelcase("Hello, world!")
helloWorld

cobolcase

from caseconverter import cobolcase

cobolcase("Hello, world!")
HELLO-WORLD

flatcase

from caseconverter import flatcase

flatcase("Hello, world!")
helloworld

kebabcase

from caseconverter import kebabcase

kebabcase("Hello, world!")
hello-world

macrocase

from caseconverter import macrocase

macrocase("Hello, world!")
HELLO_WORLD

Additional options

delims_only : bool - Only consider delimiters as boundaries (default: False).

pascalcase

from caseconverter import pascalcase

pascalcase("Hello, world!")
HelloWorld

snakecase

from caseconverter import snakecase

snakecase("Hello, world!")
hello_world

titlecase

from caseconverter import titlecase

titlecase("Hello, world!")
Hello World

Options for all conversions

Stripping punctuation

Punctuation is stripped when doing a case conversion. However, should you wish to keep the punctuation you can do so by passing strip_punctuation=False.

camelcase("Hello, world!", strip_punctuation=False) # output: hello,World!

Delimeter customization

Default delimiters used to denote a token boundary.

DELIMITERS = " -_"

You can pass delims to each case conversion function to specify a custom set of delimiters.

# Use a pipe `|` as the only delimiter.
camelcase("Hello,|world!", delims="|") # output: helloWorld

Behavior

Delimiters

If multiple delimeter characters are identified next to eachother they will be considered as a single delimeter. For example, -_ contains 2 different delimeter characters and is considered a single delimeter.

Boundary definitions

Name Description
OnDelimeterUppercaseNext On a delimieter, upper case the following character
OnDelimeterLowercaseNext On a delimeter, lower case the following character
OnUpperPrecededByLowerAppendUpper On an upper case character followed by a lower case character, append the upper case character
OnUpperPrecededByLowerAppendLower On an upper case character preceeded by a lower case character append the lower case character
OnUpperPrecededByUpperAppendJoin On an upper case caharacter preceeded by an upper append the join character. Join characters are context dependent. Example: macro cast join character is _
OnUpperPrecededByUpperAppendCurrent On an upper case character preceeded by an upper case character append the upper case character

Contributing

  1. Write clean code.
  2. Write new tests for new use-cases.
  3. Test your code before raising a PR.
  4. Use black to format your code.

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

case_converter-1.2.0.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

case_converter-1.2.0-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file case_converter-1.2.0.tar.gz.

File metadata

  • Download URL: case_converter-1.2.0.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for case_converter-1.2.0.tar.gz
Algorithm Hash digest
SHA256 4e0281ae60d4335e57300bafd61cfb3fa65734587fe9efd32f6cec1a506685c5
MD5 af26857b5a5aacae38d9a72c9e37f760
BLAKE2b-256 8309f5b4cf1f5da361e7c6f5f5f5d8bbf313a57d01574194f84abed68447fbb6

See more details on using hashes here.

File details

Details for the file case_converter-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: case_converter-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for case_converter-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bb5bc6b1e121c394a6de6526cd3f8be0f5c5817c40d32251cce28a2cf4a72d8c
MD5 dd23a9b31b115ce650817dd09d8978d3
BLAKE2b-256 428e32a7ab1ac97de46e6a0d45b1fcfe1ad7ba9a523a6fb449662ccf39b9591e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page