Ojota is a ORM and flat file database engine.
Ojota is Free Software! you can check the code at https://github.com/MSA-Argentina/ojota
First we will define the data object
# The information is stored in a file called Persons.json
class Person(Ojota):
required_fields = ("name", "address", "age")
cache = Memcache()
# The information is stored in a file called Teams.yaml
class Team(Ojota):
pk_field = "id"
data_source = YAMLSource()
required_fields = ("id", "name", "color")
def __repr__(self):
return self.name
Just with that we can query the ORM objects
# Some Example queries
# "all" returns all the Person Objects
Person.all()
# "many will return filtered results
Person.many(age=30, sorted="name")
Person.many(age__lt=30, sorted="-name")
Person.many(sorted="name")
# "one" will get only one object
Team.one(1) # you can just send the primary key
Team.one(name="River Plate")
# You can sub-query over the results
persons = Person.all()
elders = persons.many(age__gt=30)
fat_elders = elders.many(weight__gt=50)
female_elders = elders.many(gender="F")
That's it your information will be stored in plain text and you will have a powerfull ORM to play with it
- JSON
- DSON
- YAML
- CSV
- JSON through web service
- XLS
- QuerySets with recursive filtering
- "Callbacks" support (you can add custom properties with a callback function)
- Hierarchical Objects support
With easy_install
sudo easy_install ojota
With pip
sudo pip install ojota
From source
git clone https://github.com/MSA-Argentina/ojota.git
sudo python setup.py install
- pyyaml - To fecth the data from a file with YAML format
- dogeon - To fecth the data from a file with DSON format
- request - To fetch JSON form web sevice
- flask -- To run the example web service.
You might also want to to take a look at Ojota's sister project called Havaiana http://havaiana.rtfd.org