https://github.com/dmlls/python-casefy
Easily convert between string cases.
https://github.com/dmlls/python-casefy
camelcase case converter kebab-case python snake-case string
Last synced: 8 months ago
JSON representation
Easily convert between string cases.
- Host: GitHub
- URL: https://github.com/dmlls/python-casefy
- Owner: dmlls
- License: mit
- Created: 2022-02-13T10:40:54.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-03-07T14:41:03.000Z (over 1 year ago)
- Last Synced: 2025-03-30T19:36:53.342Z (about 1 year ago)
- Topics: camelcase, case, converter, kebab-case, python, snake-case, string
- Language: Python
- Homepage: https://dmlls.github.io/python-casefy/
- Size: 2.86 MB
- Stars: 30
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

## 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](https://pypi.org/project/casefy/):
```shell
pip install -U casefy
```
Casefy is also [available](https://aur.archlinux.org/packages/python-casefy) as
an Arch Linux AUR package.
## Examples
Note: for more details, you can check the [API
Reference](https://dmlls.github.io/python-casefy/api.html).
```python
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`](https://aur.archlinux.org/pkgbase/python-stringcase) was
flagged-out-of-date in the Arch AUR Repository. The project
[stringcase](https://github.com/okunishinishi/python-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](https://github.com/okunishinishi) (author of stringcase) and its
contributors for their work.
## Related projects
- [`case-conversion`](https://github.com/AlejandroFrias/case-conversion) offers
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 with `case-conversion`.
- [Inflection](https://github.com/jpvanhal/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](https://github.com/dmlls/python-casefy/blob/main/LICENSE) license.