Provides Dex, a Python container for indexing objects of any type.
Project description
Index your Python objects for fast lookup by their attributes.
Install
pip install ducks
Usage
The main container in ducks is called Dex.
from ducks import Dex
# make some objects
objects = [
{'x': 3, 'y': 'a'},
{'x': 6, 'y': 'b'},
{'x': 9, 'y': 'c'}
]
# Create a Dex containing the objects.
# Index on x and y.
dex = Dex(objects, ['x', 'y'])
# match objects
dex[{
'x': {'>': 5, '<': 10}, # where 5 < x < 10
'y': {'in': ['a', 'b']} # and y is 'a' or 'b'
}]
# result: [{'x': 6, 'y': 'b'}]
This is a Dex of dicts, but the objects can be any type.
Dex supports ==, !=, in, not in, <, <=, >, >=.
The indexes can be dict keys, object attributes, or custom functions.
Is Dex fast?
Yes. Here’s how Dex compares to other object-finders on an example task.
The closest thing to a Dex is an in-memory SQLite. While SQLite is a fantastic database, it requires more overhead. As such, Dex is generally faster.
Docs
There’s more to ducks than making a Dex of dicts. Continue in the docs.
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 ducks-0.5.1.tar.gz
.
File metadata
- Download URL: ducks-0.5.1.tar.gz
- Upload date:
- Size: 15.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.9.7 Linux/5.15.55-1-MANJARO
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e86c8ba950a88deacb6fa890460b082138d6bde1c4ba44fb78173d7ef9e71ca |
|
MD5 | 7b629b83e9ec004290f99d496c9032f2 |
|
BLAKE2b-256 | 8aa57a917a32a139967a420f95a430eccdc7cf6d997a2d4f6bbc83fdbc52b658 |
File details
Details for the file ducks-0.5.1-py3-none-any.whl
.
File metadata
- Download URL: ducks-0.5.1-py3-none-any.whl
- Upload date:
- Size: 20.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.9.7 Linux/5.15.55-1-MANJARO
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6b4ba4f720a4986ba4216e7b410a4ae840bc5114c1acad71650ac982921cc9d |
|
MD5 | b29b942c0e00d878559920317824b66c |
|
BLAKE2b-256 | 7b39777ea7c092a12bf8527f8ff9dc80cd0d679dffdd9fe8f3e3ee1646a6b499 |