MCPcopy Index your code
hub / github.com/aiotinydb/aiotinydb

github.com/aiotinydb/aiotinydb @v2.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.0.0 ↗ · + Follow
95 symbols 340 edges 14 files 21 documented · 22% updated 3y ago★ 751 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

aiotinydb

PyPI PyPI PyPI Build Status Say Thanks!

asyncio compatibility shim for TinyDB

Enables usage of TinyDB in asyncio-aware contexts without slow syncronous IO.

See documentation on compatible version of TinyDB.

Basically all API calls from TinyDB are supported in AIOTinyDB. With the following exceptions: you should not use basic with syntax and close functions. Instead, you should use async with.

import asyncio
from aiotinydb import AIOTinyDB

async def test():
    async with AIOTinyDB('test.json') as db:
        db.insert(dict(counter=1))

loop = asyncio.new_event_loop()
loop.run_until_complete(test())
loop.close()

CPU-bound operations like db.search(), db.update() etc. are executed synchronously and may block the event loop under heavy load. Use multiprocessing if that's an issue (see #6 and examples/processpool.py for an example).

Middleware

Any middlewares you use should be async-aware. See example:

from tinydb.middlewares import CachingMiddleware as VanillaCachingMiddleware
from aiotinydb.middleware import AIOMiddleware

class CachingMiddleware(VanillaCachingMiddleware, AIOMiddlewareMixin):
    """
        Async-aware CachingMiddleware. For more info read
        docstring for `tinydb.middlewares.CachingMiddleware`
    """
    pass

If middleware requires some special handling on entry and exit, override __aenter__ and __aexit__.

Concurrent database access

Instances of AIOTinyDB support database access from multiple coroutines.

On unix-like systems, it's also possible to access one database concurrently from multiple processes when using AIOJSONStorage (the default) or AIOImmutableJSONStorage.

Installation

pip install aiotinydb

Core symbols most depended-on inside this repo

Shape

Method 59
Class 21
Function 15

Languages

Python100%

Modules by API surface

aiotinydb/storage.py14 symbols
tests/test_middleware.py13 symbols
tests/test_database.py13 symbols
aiotinydb/database.py12 symbols
aiotinydb/filelock.py9 symbols
examples/processpool.py8 symbols
aiotinydb/middleware.py7 symbols
tests/test_filelock.py5 symbols
aiotinydb/exceptions.py4 symbols
tests/__init__.py3 symbols
noxfile.py3 symbols
examples/numbersapi.py2 symbols

For agents

$ claude mcp add aiotinydb \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page