Hacker News new | ask | show | jobs
by cristoperb 1368 days ago
I once wrote a locking wrapper around the shelve module so I could use it as a thread- and multiprocess-safe key-value cache (including a wrapper around the requests modules `get()` to transparently cache/validate http resources according to headers):

https://github.com/cristoper/shelfcache

It works despite some cross-platform issues (flock and macos's version of gdbm interacting to create a deadlock), but if I were to do again I would just use sqlite (which Python's standard library has an interface for).

1 comments

> but if I were to do again I would just use sqlite

Yeah, I tried to use shelve for some very simple stuff because it seemed like a great fit, but ultimately found that I had a much better time with tortoise-orm on top of sqlite.

If you need any kind of real feature, just use sqlite.