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
File details
Details for the file case-insensitive-dictionary-0.2.1.tar.gz
.
File metadata
- Download URL: case-insensitive-dictionary-0.2.1.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.7 Linux/5.15.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e94726f97eb2c0ceac53209971db50ffc996def663e5e5080d0a1acb4a42280 |
|
MD5 | 75e1749d95e2c38d8c493f6830b8076f |
|
BLAKE2b-256 | 015e8de464e77e2bb6f0b47f2ac94f75cd46f4f14ba55529619e68ae5e81443e |
File details
Details for the file case_insensitive_dictionary-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: case_insensitive_dictionary-0.2.1-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.7 Linux/5.15.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8971780be1ba25e363db259515f0a2f003013465f82552e2f9aed08d5a9ca28 |
|
MD5 | 5313704303c37b76107ffff9b1eb0e20 |
|
BLAKE2b-256 | 9e942a5f43133bfd07d8c826f5fe277d54fb6c45c0c2ac5df3bc71c2ba8ff4ea |