Introduction
Casefy (/keɪsfaɪ/) is a lightweight Python package to convert the casing of strings. It has no third-party dependencies and supports Unicode.
Installation
The latest release can be installed using pip:
pip install -U casefy
Casefy is also available as an Arch Linux AUR package.
Examples
Note: for more details, you can check the API Reference.
import casefy
# Alphanum3ric case (removes non-alphanumeric chars)
string = casefy.alphanumcase("foo - 123 ; bar!")
print(string) # foo123bar
# camelCase
string = casefy.camelcase("foo_bar")
print(string) # fooBar
string = casefy.camelcase("FooBar")
print(string) # fooBar
string = casefy.camelcase("FOO BAR")
print(string) # fooBar
# Capital Case
string = casefy.capitalcase("fooBar")
print(string) # FooBar
# CONST_CASE
string = casefy.constcase("fooBar")
print(string) # FOO_BAR
# kebab-case
string = casefy.kebabcase("fooBar")
print(string) # foo-bar
# lowercase
string = casefy.lowercase("fooBar")
print(string) # foobar
# PascalCase
string = casefy.pascalcase("foo_bar")
print(string) # FooBar
string = casefy.pascalcase("fooBar")
print(string) # FooBar
# Sentence case
string = casefy.sentencecase("fooBar")
print(string) # Foo bar
# Separator case
string = casefy.separatorcase("fooBar", separator="/")
print(string) # foo/bar
string = casefy.separatorcase("fooBARbaz", separator="%", keep_together=["BAR"])
print(string) # foo%bar%baz
# snake_case
string = casefy.snakecase("fooBar")
print(string) # foo_bar
string = casefy.snakecase("fooBARbaz", keep_together=["BAR"])
print(string) # foo_bar_baz
string = casefy.snakecase("FOO BAR")
print(string) # foo_bar
# Title Case
string = casefy.titlecase("fooBarBaz")
print(string) # Foo Bar Baz
# UPPERCASE
string = casefy.uppercase("fooBar")
print(string) # FOOBAR
# UPPER-KEBAB-CASE
string = casefy.upperkebabcase("fooBar")
print(string) # FOO-BAR
Contribute
If you find a bug, please open an issue. Pull Requests are also welcome!
Acknowledgements
This project started when I saw that the package
python-stringcase was
flagged-out-of-date in the Arch AUR Repository. The project
stringcase seems not to be
actively maintained anymore, so I decided to address its issues and pull
requests and solve them in this new package. I kept the API as similar as
possible, in order to facilitate any possible migration. I thank Taka
Okunishi (author of stringcase) and its
contributors for their work.
Related projects
-
case-conversionoffers a very similar functionality as this project. I probably wouldn't have written this package if I had known of it before. However, the code of Casefy is more lightweight and just enough for most cases. If you need more functionality, e.g., detecting the case of a string, go withcase-conversion. -
Inflection presents some overlap with this project as well, allowing the transformation of strings from CamelCase to underscored_string, but also singularizing and pluralizing English words.
License
Casefy is distributed under the MIT license.
Metadata
Release files for casefy 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| casefy-1.1.0.tar.gz | 123.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| casefy-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 130.4 kB
Release files / casefy-1.1.0.tar.gz
| Download URL | casefy-1.1.0.tar.gz |
|---|---|
| Size | 123.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
849d6e0f80506fac70ab8e18999a4ca1eb7d8f70941682383d64aa22a7497f8f
|
|
BLAKE2b-256 checksum How to use checksums |
48249c732e8e3585a1dc621c9c1349e55e87070c95d3c2d57bd8c5083ec8d731
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Release files / casefy-1.1.0-py3-none-any.whl
| Download URL | casefy-1.1.0-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a3dfcb14d85902d90702db1e9835760237f6a73ec0ae3b7e991ad767513a3cbc
|
|
BLAKE2b-256 checksum How to use checksums |
f16a1766f8c163951a3c9aeb30a4e6f5de9b2eed8389e3906c4cf30fcb475be6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|