Skip to main content

Flat File Database with ORM

Project description

Welcome to Ojota’s documentation!

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

How does it works?

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

Supported data formats

  • JSON

  • DSON

  • YAML

  • CSV

  • JSON through web service

  • XLS

New Features for 2.0

  • QuerySets with recursive filtering

  • “Callbacks” support (you can add custom properties with a callback function)

  • Hierarchical Objects support

Installation

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

Optional dependencies

  • 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ojota-3.3.1.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ojota-3.3.1-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file ojota-3.3.1.tar.gz.

File metadata

  • Download URL: ojota-3.3.1.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for ojota-3.3.1.tar.gz
Algorithm Hash digest
SHA256 69cce51353affe574fb469686ca56b6e00b1cb3f568e2ea953c2f0bb76bbf3d9
MD5 2c2cb65ea2130d74d2143c0affadfe9a
BLAKE2b-256 6219a0ae72d831df659c09aeac3794956019e1ea86e0ffc709f0b863e4ebf358

See more details on using hashes here.

File details

Details for the file ojota-3.3.1-py3-none-any.whl.

File metadata

  • Download URL: ojota-3.3.1-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for ojota-3.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ba5ea3e4c8d6d75cba6f541488104547d18ea860b64a85f6dd9545bec9309043
MD5 1d7f86705b4ef4bf16a8497c39c5a2c1
BLAKE2b-256 5f8ddee1807cc2ef9ea433c0d9feb2f4a8316f860f8f8483c6b2b185195ccfb3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page