SQLite based queryable python indexes for dicts and lists
Project description
LiteIndex
in-process, thread and process safe, easy to use, query-able object storage implenetation for Python
Some use cases, benchmarks and examples:
- cache for a python function
- store and query large number of records without using up memory
- ultra-fast, query-able file storage (faster than creating files on disk and way better for querying)
- exchange data between threads or processes easily
- store application data locally in easy to query and stable format
- Trigger threads/ processes with your custom functions on any specific updates or deletes (combined with gevent or ray, this allows for a extremely easy to use and deploy sqs + lambda like pipeline)
- easily import from csv, tsv, jsonl, any iterable and run queries
pip install --upgrade liteindex
DefinedIndex
- Documentation
schema
has to be specified when creating a new DefinedIndex- Any python object can be stored in DefinedIndex
- Query language is copy of mongodb queries. All queries are documented.
- Querying can be done on
string
,number
,boolean
,json
,datetime
fields. - Math can be done on
number
fields blob
values can be queried for equality (same file), size.other
values can only be set, deleted, updated. Cannot be queried upon.- Insertion order is preserved
from liteindex import DefinedIndex
user_details_schema = {
"name": "string",
"age": "number",
"password": "string",
"verified": "boolean",
"address_details": "json",
"profile_picture": "blob",
"tag_line": "string",
"tag_line_embedding": "other",
"birth_day": "datetime"
}
# db path defaults to memory
index = DefinedIndex(
name="user_details",
schema=schema,
db_path="./test_db.liteindex"
)
AnyIndex (In development)
- Like mongodb, any python dict can be inserted at run time
- Doesn't need pre-defined structure unlike DefinedIndex
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
liteindex-0.0.2.dev3.tar.gz
(13.5 kB
view hashes)
Built Distribution
Close
Hashes for liteindex-0.0.2.dev3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 353addc59be9edd6a1e63dbd83a7bdfec87ef4953080fb65d33425a28864b225 |
|
MD5 | 3a06012aaab47de6d10c420ea629d3f2 |
|
BLAKE2b-256 | de86577f45b57b1f40082f71f55f03fed83094f7321a6ec4386c8d51fd88da99 |