🐫 Convert strings (and dictionary keys) between snake case, camel case and pascal case in Python. Inspired by Humps for Node
Project description
Convert strings (and dictionary keys) between snake case, camel case and pascal case in Python. Inspired by Humps for Node.
Installation
To install humps, simply use pipenv (or pip, of course):
$ pipenv install pyhumps
Usage
Converting strings
import humps humps.camelize('jack_in_the_box') # jackInTheBox humps.decamelize('rubyTuesdays') # ruby_tuesdays humps.pascalize('red_robin') # RedRobin
Converting dictionary keys
import humps array = [{'attrOne': 'foo'}, {'attrOne': 'bar'}] humps.decamelize(array) # [{'attr_one': 'foo'}, {'attr_one': 'bar'}] array = [{'attr_one': 'foo'}, {'attr_one': 'bar'}] humps.camelize(array) # [{'attrOne': 'foo'}, {'attrOne': 'bar'}] array = [{'attr_one': 'foo'}, {'attr_one': 'bar'}] humps.pascalize(array) # [{'AttrOne': 'foo'}, {'AttrOne': 'bar'}]
Checking character casing
import humps humps.is_camelcase('illWearYourGranddadsClothes') # True humps.is_pascalcase('ILookIncredible') # True humps.is_snakecase('im_in_this_big_ass_coat') # True humps.is_camelcase('from_that_thrift_shop') # False humps.is_snakecase('downTheRoad') # False # what about abbrevations, acronyms, and initialisms? No problem! humps.decamelize('APIResponse') # api_response
Humps Cookbook
Pythonic Boto3 API Wrapper
# aws.py import humps import boto3 def api(service, decamelize=True, *args, **kwargs): service, func = service.split(':') client = boto3.client(service) kwargs = humps.pascalize(kwargs) response = getattr(client, func)(*args, **kwargs) return (depascalize(response) if decamelize else response) # usage api('s3:download_file', bucket='bucket', key='hello.png', filename='hello.png')
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size pyhumps-1.6.1-py3-none-any.whl (5.0 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size pyhumps-1.6.1.tar.gz (6.2 kB) | File type Source | Python version None | Upload date | Hashes View |