Skip to content

JoshAshby/pyRethinkORM

Repository files navigation

RethinkORM v0.3.0

Build status - Master:

image

Latest PyPI version

Number of PyPI downloads

Build status - Dev:

image

RethinkORM is a small wrapper class to help make working with documents in RethinkDB easier, and in a more Pythonic way.

I recently found RethinkDB and was amazed at how easy everything seemed to be, however one thing that I've missed is how the data is just a Python List or Dict rather than a full wrapper class. So I figured a good way to learn the general use of the Python RethinkDB driver was to write a general wrapper class that functioned a bit like an ORM, providing some easier to work with data and objects.

A Few Minor Warnings

  1. I'm only a second year university student, and software isn't even my major; I'm working towards an Electrical and Computer Engineering degree, so not only do I have limited time to keep this maintained, but I also probably won't write the best code ever.
  2. This takes some influence from the Python Django RethinkDB ORM and other ORM systems, however I haven't really followed a standard pattern for the interface for this module. If someone wants to make this more standardized feel free to, and just submit a pull request, I'll look it over and probably will give it the go ahead. For more information see below.
  3. This is a very early release, things might break, and the code is honestly a little childish at best. In other words: It'll hopefully get better, but it might be a little limited right now.
  4. This project follows the semantic versioning specs. All Minor and patch versions will not break the major versions API, however an bump of the major version signifies that backwards compatibility will most likely be broken.

Documentation

Installation:

pip install RethinkORM

For more information, a short quick start, and information about running the test suit, please read the documentation kindly hosted on readthedocs.org

Contributing

All code for this can be found online at github. If something is broken, or a feature is missing, please submit a pull request or open an issue. Most things I probably won't have time to get around to looking at too deeply, so if you want it fixed, a pull request is the way to go. Besides that, I'm releasing this under the GPLv3 License as found in the LICENSE.txt file. Enjoy!