Published
Typed Python Case Insensitive Dictionary
pip install case-insensitive-dictionary
Package Downloads
Authors
Project URLs
Requires Python
>=3.7,<4.0
Case Insensitive Dict
Typed Python Case Insensitive Dictionary
Install
Install and update using pip.
$ pip install -U case-insensitive-dictionary
API Reference
Method | Description |
---|---|
clear() | Removes all elements from the dictionary. |
copy() | Returns a copy of the dictionary. |
get(key, default) | Returns the value (case-insensitively), of the item specified with the key. Falls back to the default value if the specified key does not exist. |
fromkeys(iterable, value) | Returns a dictionary with the specified keys and the specified value. |
keys() | Returns the dictionary's keys. |
values() | Returns the dictionary's values. |
items() | Returns the key-value pairs. |
pop(key) | Remove the specified item (case-insensitively). The value of the removed item is the return value. |
popitem() | Remove the last item that was inserted into the dictionary. For Python version <3.7, popitem() removes a random item. |
Example
CaseInsensitiveDict:
>>> from typing import Union
>>> from case_insensitive_dict import CaseInsensitiveDict
>>> case_insensitive_dict = CaseInsensitiveDict[Union[str, int], str](data={"Aa": "b", 1: "c"})
>>> case_insensitive_dict["aa"]
'b'
>>> case_insensitive_dict[1]
'c'
which also supports json encoding/decoding:
>>> import json
>>> from case_insensitive_dict import CaseInsensitiveDict, CaseInsensitiveDictJSONEncoder, case_insensitive_dict_json_decoder
>>> case_insensitive_dict = CaseInsensitiveDict[str, str](data={"Aa": "b"})
>>> json_string = json.dumps(obj=case_insensitive_dict, cls=CaseInsensitiveDictJSONEncoder)
>>> json_string
'{"Aa": "b"}'
>>> case_insensitive_dict = json.loads(s=json_string, object_hook=case_insensitive_dict_json_decoder)
>>> case_insensitive_dict
CaseInsensitiveDict({'Aa': 'b'})
Contributing
Contributions are welcome via pull requests.
First time setup
$ git clone [email protected]:DeveloperRSquared/case-insensitive-dict.git
$ cd case-insensitive-dict
$ poetry install
$ poetry shell
Tools including black, mypy etc. will run automatically if you install pre-commit using the instructions below
$ pre-commit install
$ pre-commit run --all-files
Running tests
$ poetry run pytest
Links
- Source Code: https://github.com/DeveloperRSquared/case-insensitive-dict/
- PyPI Releases: https://pypi.org/project/case-insensitive-dictionary/
- Issue Tracker: https://github.com/DeveloperRSquared/case-insensitive-dict/issues/