Typed Python Case Insensitive Dictionary
Project description
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 git@github.com: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/
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for case-insensitive-dictionary-0.2.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e94726f97eb2c0ceac53209971db50ffc996def663e5e5080d0a1acb4a42280 |
|
MD5 | 75e1749d95e2c38d8c493f6830b8076f |
|
BLAKE2b-256 | 015e8de464e77e2bb6f0b47f2ac94f75cd46f4f14ba55529619e68ae5e81443e |
Close
Hashes for case_insensitive_dictionary-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8971780be1ba25e363db259515f0a2f003013465f82552e2f9aed08d5a9ca28 |
|
MD5 | 5313704303c37b76107ffff9b1eb0e20 |
|
BLAKE2b-256 | 9e942a5f43133bfd07d8c826f5fe277d54fb6c45c0c2ac5df3bc71c2ba8ff4ea |