Skip to content

dpep/py_rekey

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rekey

Transform collections into dictionaries.

Install

pip install rekey

Usage

from rekey import rekey

# key a list of records by id
people = [
	{ 'id' : 1, 'name' : 'alice', 'age' : 30 },
	{ 'id' : 2, 'name' : 'bob', 'age' : 24 },
	{ 'id' : 3, 'name' : 'charlie', 'age' : 88 },
]
rekey(people, 'id')
=> {
	1 => { 'id' : 1, 'name' : 'alice', 'age' : 30},
	2 => { 'id' : 2, 'name' : 'bob', 'age' : 24},
	3 => { 'id' : 3, 'name' : 'charlie', 'age' : 88},
}

# create an id => value map
rekey(people, 'id', 'name')
=> {
	1 => 'alice',
	2 => 'bob',
	3 => 'charlie',
}


# use Rekeyables for built-in functionality

from rekey.rekeyable import RekeyableSet

Point = namedtuple('Point', ['name', 'x', 'y'])  # hashable
points = RekeyableSet([
		Point(name='home', x=1, y=2),
		Point(name='work', x=3, y=6),
])
points.rekey('name') 
=> {
		'home' : Point(name='home', x=1, y=2),
		'work' : Point(name='work', x=3, y=6),
}


# use the Rekeyable mixin to build your own

from rekey.rekeyable import Rekeyable
class MyDict(dict, Rekeyable): pass

MyDict({
	'home' : {'distance' : 1, 'weather' : 'sunny' },
	'work' : {'distance' : 5, 'weather' : 'foggy' },
}).rekey('weather', 'distance')
> {
	'sunny' : 1,
	'foggy' : 5,
}

Coverage Status installs

About

Transform collections into dictionaries.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages