Skip to main content

Case Insensitive Dict

Typed Python Case Insensitive Dictionary

Publish

Python 3.7+ PyPI - License PyPI - Version

CodeQL codecov pre-commit.ci status

Imports: isort Code style: black Checked with mypy

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

case-insensitive-dictionary-0.2.1.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

case_insensitive_dictionary-0.2.1-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

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

Hashes for case-insensitive-dictionary-0.2.1.tar.gz
Algorithm Hash digest
SHA256 7e94726f97eb2c0ceac53209971db50ffc996def663e5e5080d0a1acb4a42280
MD5 75e1749d95e2c38d8c493f6830b8076f
BLAKE2b-256 015e8de464e77e2bb6f0b47f2ac94f75cd46f4f14ba55529619e68ae5e81443e

See more details on using hashes here.

File details

Details for the file case_insensitive_dictionary-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for case_insensitive_dictionary-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a8971780be1ba25e363db259515f0a2f003013465f82552e2f9aed08d5a9ca28
MD5 5313704303c37b76107ffff9b1eb0e20
BLAKE2b-256 9e942a5f43133bfd07d8c826f5fe277d54fb6c45c0c2ac5df3bc71c2ba8ff4ea

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 files

0.2.0

2 files

0.1.1

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page