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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file snakecamel-0.1.0.tar.gz.

File metadata

  • Download URL: snakecamel-0.1.0.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.10.4 Linux/5.15.0-41-generic

File hashes

Hashes for snakecamel-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cab2fb350d11798f4866327261adc1079c1fc6f6fe1077e8624542a63766b767
MD5 76fd4e1c00727197ad3eb86ee380cbff
BLAKE2b-256 6afe3571bf8036a73e229d3080e67b79c90bfd3499f93bc1d0ecab95afe57a5b

See more details on using hashes here.

File details

Details for the file snakecamel-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: snakecamel-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.10.4 Linux/5.15.0-41-generic

File hashes

Hashes for snakecamel-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 79a004695db91ad6138a5afd91f0ca7499709a438fcc031c5aa81b6c043ef547
MD5 663f10f8a29ad8213b12a8dbfd4a188c
BLAKE2b-256 35171edac0df3dec425068ded36e058b274f5e45608ca94702f0d13ec982f403

See more details on using hashes here.

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