Share via


CaseInsensitiveDict Class

NOTE: This implementation is heavily inspired from the case insensitive dictionary from the requests library. Thank you !! Case insensitive dictionary implementation. The keys are expected to be strings and will be stored in lower case. case_insensitive_dict = CaseInsensitiveDict() case_insensitive_dict['Key'] = 'some_value' case_insensitive_dict['key'] == 'some_value' #True

Constructor

CaseInsensitiveDict(data: Mapping[str, Any] | Iterable[Tuple[str, Any]] | None = None, **kwargs: Any)

Parameters

Name Description
data

Initial data to store in the dictionary.

Default value: None

Methods

clear
copy
get
items
keys
lowerkey_items
pop

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem

as a 2-tuple; but raise KeyError if D is empty.

setdefault
update

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values

clear

clear() -> None.  Remove all items from D.

copy

copy() -> CaseInsensitiveDict

get

get(k, [d]) -> D[k] if k in D, else d.  d defaults to None.

Parameters

Name Description
key
Required
default
Default value: None

items

items() -> a set-like object providing a view on D's items

keys

keys() -> a set-like object providing a view on D's keys

lowerkey_items

lowerkey_items() -> Iterator[Tuple[str, Any]]

pop

If key is not found, d is returned if given, otherwise KeyError is raised.

pop(k, [d]) -> v, remove specified key and return the corresponding value.

Parameters

Name Description
key
Required
default

popitem

as a 2-tuple; but raise KeyError if D is empty.

popitem() -> (k, v), remove and return some (key, value) pair

setdefault

setdefault(k, [d]) -> D.get(k,d), also set D[k]=d if k not in D

Parameters

Name Description
key
Required
default
Default value: None

update

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

update([E], **F) -> None.  Update D from mapping/iterable E and F.

Positional-Only Parameters

Name Description
other
Default value: ()

values

values() -> an object providing a view on D's values