This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

The agile query language for semi-structured data. #JSON

Project Description

|Downloads| |License| |Build Status| |Code Health| |Coverage Status|

The agile NoSQL query language for semi-structured data

#Python #NoSQL #Javascript #JSON #nested-array-object

ObjectPath is a query language similar to XPath or JSONPath, but much more powerful thanks to embedded arithmetic calculations, comparison mechanisms and built-in functions. This makes the language more like SQL in terms of expressiveness, but it works over JSON documents rather than relations. ObjectPath can be considered a full-featured expression language. Besides selector mechanism there is also boolean logic, type system and string concatenation available. On top of that, the language implementations (Python at the moment; Javascript is in beta!) are secure and relatively fast.

More at ObjectPath site

ObjectPath img

ObjectPath makes it easy to find data in big nested JSON documents. It borrows the best parts from E4X, JSONPath, XPath and SQL. ObjectPath is to JSON documents what XPath is to XML. Other examples to ilustrate this kind of relationship are:

Scope Language
text documents regular expression
XML XPath
HTML CSS selectors
JSON documents ObjectPath

Documentation

ObjectPath Reference

What’s in this repo?

ObjectPathPY - Python implementation of ObjectPath, used in production for over two years without problems. Use objectpath.py file as a example of usage.

ObjectPathJS - beta version of Javascript implementation. Many tests passed, {} and functions are not implemented yet. Javascript implementation has the very same API as the Python version.

Command line usage

sh $ sudo pip install objectpath $ objectpath file.json or sh $ git clone https://github.com/adriank/ObjectPath.git $ cd ObjectPath $ python shell.py file.json

Python usage

$ sudo pip install objectpath
$ python
>>> from objectpath import *
>>> tree=Tree({"a":1})
>>> tree.execute("$.a")
1
>>>
$ git clone https://github.com/adriank/ObjectPath.git
$ cd ObjectPath
$ python
>>> from objectpath import *
>>> tree=Tree({"a":1})
>>> tree.execute("$.a")
1
>>>

License

AGPLv3

Using ObjectPath language in your project does not mean that your project is a derivative work, provided that you don’t - extend the language functionality, - make optimizations, - sub-class any of it’s modules.

AGPL v3 license has been chosen to ensure language consistency and provide a way to finance its development.

If AGPL v3 is too restrictive for you, please consider buying a commercial licenses provided by Asyncode. This is the preferred way of supporting this project financially.

Release History

Release History

This version
History Node

0.5

History Node

0.4.2

History Node

0.4.1

History Node

0.4

History Node

0.3

History Node

0.2

History Node

0.1

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
objectpath-0.5-py2.py3-none-any.whl (22.4 kB) Copy SHA256 Checksum SHA256 2.7 Wheel Oct 27, 2014
objectpath-0.5.tar.gz (16.7 kB) Copy SHA256 Checksum SHA256 Source Oct 27, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting