Snakelet is a Schema-less ORM-like system built in pure Python to reduce redundancy with Mongo Native Drivers and Object Management. This package contains a very simple implementation and will need to be expanded upon largely to remain relevant.
Registration only requires exposing the object to the Manager.
from snakelet.storage import Document, Manager
class Cat(Document):
pass
manager = Manager(database='felines')
manager.register(Cat)
Connecting to a database is fairly straightforward.
from snakelet.storage import Manager
manager = Manager(
database='felines',
host='localhost',
port=27017,
username='admin',
password='pass'
)
By default, Managers build and fetch collections in snake case, but this can be switched to camel case during instantiation.
from snakelet.storage import Manager
manager = Manager(
case='camel'
)
Finding, Saving, and Removal are also pretty straightforward.
pye = manager.Cat.find_one({'name': 'pyewacket'})
shoshana = Cat()
shoshana['name'] = 'shoshana'
shoshana['owner'] = 'schrodinger'
manager.save(shoshana)
schrodinger = manager.Cat.find({'owner': 'schrodinger'})
manager.remove(pye)
This feature set is fairly simple and has normal iterable bindings to ensure simple operation.
for page in manager.Cat.paginate(find={'name': 1}):
for cat in page:
print(cat['name'])