Skip to main content

Typed Python Case Insensitive Dictionary

Project description

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

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

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

Uploaded Source

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

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.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page