Skip to main content

An easy-to-use package to convert to camelCase or snake_case

Project description

snakecamel

Test - pytest codecov

A small utility to camelize (convert to camel-case) or snakeize (convert to snake-case) any object.

This is a very early-stage project & for the time-being is only there as a personal utility.

Usage

import snakecamel
>>> snakecamel.camelize("simple_string")
'simpleString
>>> snakecamel.snakeize("simpleString")
'simple_string'

General notes

  1. The library is designed to be very forgiving. It does not raise upon encountering an unknown type, it just skips it. This way, you can pass arbitrary objects to it & everything that can be camelized/snakeized, will be.
>>> import snakecamel
>>> snakecamel.camelize(50)
50
>>> from datetime import date
>>> snakecamel.camelize({"hello_world": "hello_world", 50: 50, date.today(): "today"})
{'helloWorld': 'hello_world', 50: 50, datetime.date(2022, 7, 31): 'today'}
  1. The library will try to re-construct the type you pass to it, so that if you pass different kinds of iterables, you'll get the same type returned. Unfortunately, that still does not work with mappings.
>>> import snakecamel
>>> snakecamel.camelize(["simple_string"])
['simpleString']
>>> snakecamel.camelize({"simple_string"})
{'simpleString'}
>>> snakecamel.camelize(("simple_string",))
('simpleString',)
>>> snakecamel.camelize("simple_string")
'simpleString'
  1. When camelizing/snakeizing mappings, you can choose to do so with keys only or keys & values.
>>> import snakecamel
>>> snakecamel.camelize({"simple_key": "simple_value"})
{'simpleKey': 'simple_value'}
>>> snakecamel.camelize({"simple_key": "simple_value"}, camelize_mapping_values=True)
{'simpleKey': 'simpleValue'}
  1. You can shoose between capitalized or non-capitalized camel case.
>>> import snakecamel
>>> snakecamel.camelize("simple_string")
'simpleString'
>>> snakecamel.camelize("simple_string", capitalized=True)
'SimpleString'

When snakeizing, you need to pass capitalized=True, if you want the first letter of a capitalized camel-case word to be lowercased.

>>> snakecamel.snakeize("simpleString")
'simple_string'
>>> snakecamel.snakeize("simpleString", capitalized=True)
'simple_string'
>>> snakecamel.snakeize("SimpleString")
'Simple_string'
>>> snakecamel.snakeize("SimpleString", capitalized=True)
'simple_string'
  1. When camelizing, you can choose whether you're stripping leading/trailing underscores or not.
import snakecamel
>>> import snakecamel
>>> snakecamel.camelize("_simple_string_")
'_simpleString_'
>>> snakecamel.camelize("_simple_string_", strip_underscores=True)
'simpleString'

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

snakecamel-0.1.0.tar.gz (4.6 kB view hashes)

Uploaded Source

Built Distribution

snakecamel-0.1.0-py3-none-any.whl (5.0 kB view hashes)

Uploaded Python 3

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