Metadata-Version: 2.1
Name: mo-collections
Version: 5.603.24115
Summary: More Collections! Some useful data structures for dealing with Data
Home-page: https://github.com/klahnakoski/mo-collections
Author: Kyle Lahnakoski
Author-email: kyle@lahnakoski.com
License: MPL 2.0
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: mo-dots==9.603.24115
Requires-Dist: mo-future==7.584.24095
Requires-Dist: mo-kwargs==7.603.24115
Requires-Dist: mo-logs==8.603.24115
Provides-Extra: tests
Requires-Dist: mo-testing>=8.591.24112; extra == "tests"

# More Collections

Some useful data structures for collections of data


### Class `Index`

Provide indexing for a list. Inner properties can be used for keys, and keys can be tuples of properties.  

### Class `UniqueIndex`

Same as Index, but includes checks and optimization to ensure members' keys are unique.

### Class `Queue`

A `Queue` is a list, with `add()` and `pop()`. It ensures members in the queue are not duplicated by not adding the ones already found in the queue.

### Class `Matrix`

A multidimensional grid of values that can be used like a `Mapping` from a-tuple-of-coordinates to the value at that coordinate. Plus a few other convenience methods.

This is a naive implementation. The hope it is a simple facade to a faster implementation.

### Class `Relation`

Store the many-to-many relations between two domains     
