Metadata-Version: 2.2
Name: nocaselist
Version: 2.0.3
Summary: A case-insensitive list for Python
Home-page: https://github.com/pywbem/nocaselist
Author: Andreas Maier
Author-email: andreas.r.maier@gmx.de
Maintainer: Andreas Maier
Maintainer-email: andreas.r.maier@gmx.de
License: Apache Software License 2.0
Project-URL: Bug Tracker, https://github.com/pywbem/nocaselist/issues
Project-URL: Documentation, https://nocaselist.readthedocs.io/en/latest/
Project-URL: Source Code, https://github.com/pywbem/nocaselist
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS.md
Requires-Dist: typing-extensions<4.2.0,>=3.10; python_version == "3.6"
Requires-Dist: typing-extensions>=3.10; python_version >= "3.7" and python_version <= "3.9"
Provides-Extra: test
Requires-Dist: pytest>=7.0.0; extra == "test"
Requires-Dist: virtualenv<20.16.3,>=20.2.1; python_version <= "3.7" and extra == "test"
Requires-Dist: virtualenv>=20.23.0; python_version >= "3.8" and extra == "test"
Requires-Dist: six>=1.14.0; python_version <= "3.11" and extra == "test"
Requires-Dist: six>=1.16.0; python_version >= "3.12" and extra == "test"
Requires-Dist: packaging>=21.3; python_version == "3.6" and extra == "test"
Requires-Dist: packaging>=22.0; python_version >= "3.7" and extra == "test"
Requires-Dist: pluggy>=0.13.1; extra == "test"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: maintainer
Dynamic: maintainer-email
Dynamic: platform
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# nocaselist - A case-insensitive list for Python

[![Version on Pypi](https://img.shields.io/pypi/v/nocaselist.svg)](https://pypi.python.org/pypi/nocaselist/)
[![Test status (master)](https://github.com/pywbem/nocaselist/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/pywbem/nocaselist/actions/workflows/test.yml?query=branch%3Amaster)
[![Docs status (master)](https://readthedocs.org/projects/nocaselist/badge/?version=latest)](https://readthedocs.org/projects/nocaselist/builds/)
[![Test coverage (master)](https://coveralls.io/repos/github/pywbem/nocaselist/badge.svg?branch=master)](https://coveralls.io/github/pywbem/nocaselist?branch=master)

# Overview

Class
[NocaseList](https://nocaselist.readthedocs.io/en/stable/reference.html#nocaselist.NocaseList)
is a case-insensitive list that preserves the lexical case of its items.

Example:

    $ python
    >>> from nocaselist import NocaseList

    >>> list1 = NocaseList(['Alpha', 'Beta'])

    >>> print(list1)  # Any access is case-preserving
    ['Alpha', 'Beta']

    >>> 'ALPHA' in list1  # Any lookup or comparison is case-insensitive
    True

The
[NocaseList](https://nocaselist.readthedocs.io/en/stable/reference.html#nocaselist.NocaseList)
class supports the functionality of the built-in
[list class of Python 3.8](https://docs.python.org/3.8/library/stdtypes.html#list)
on all Python versions it supports (except for being case-insensitive, of
course).

The case-insensitivity is achieved by matching any key values as their
casefolded values. By default, the casefolding is performed with
[str.casefold()](https://docs.python.org/3/library/stdtypes.html#str.casefold)
for unicode string keys and with
[bytes.lower()](https://docs.python.org/3/library/stdtypes.html#bytes.lower)
for byte string keys. The default casefolding can be overridden with a
user-defined casefold method.

# Installation

To install the latest released version of the nocaselist package into
your active Python environment:

    $ pip install nocaselist

The nocaselist package has no prerequisite Python packages.

For more details and alternative ways to install, see
[Installation](https://nocaselist.readthedocs.io/en/stable/intro.html#installation).

# Documentation

- [Documentation](https://nocaselist.readthedocs.io/en/stable/)

# Change History

- [Change history](https://nocaselist.readthedocs.io/en/stable/changes.html)

# Contributing

For information on how to contribute to the nocaselist project, see
[Contributing](https://nocaselist.readthedocs.io/en/stable/development.html#contributing).

# License

The nocaselist project is provided under the [Apache Software License
2.0](https://raw.githubusercontent.com/pywbem/nocaselist/master/LICENSE).
