/regexdict

A normal Python dict, with sugar for regex searching over keys

Primary LanguagePythonMIT LicenseMIT

regexdict

PyPI version Build Status

Python dicts with sugar for regular expression searches over keys.

CJ Carey - perimosocordiae@github

Daryl Koopersmith - koop@github

Install

pip install Regex-Dict

Note that the PyPI package regexdict is not this package.

Create a new regexdict

The constructor has the same semantics as a regular Python dict.

from regexdict import regexdict

redict = regexdict({
	'applesauce': 10,
	'grapple': 7,
	'happily': 7
})

The resulting object behaves just like a normal dict, so long as you if you index it with non-slice keys.

Use a regex

Take advantage of the sugary slice syntax: redict[:pattern:(flags)]

redict[:'app':]      # Matches everything
redict[:'.app':]     # Matches 'grapple' and 'happily'
redict[:'apple':]    # Matches 'applesauce' and 'grapple'
redict[:'HAP':re.I]  # Matches 'happily' due to case insensitivity flag

Regex slice queries return a (possibly empty) iterator of (key, value) pairs.

Patterns may be strings or pre-compiled regex objects.

import re
app = re.compile('.app')

# Same result as redict[:'.app':]
redict[:app:]

The in operator

The in operator only recognizes compiled regexes and normal key values. No slice magic here, sorry!

app in redict  # ==> True