An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

Casefy








Active Issues


## 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.