Skip to main content

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

Project description

ObjectPath

[Fork and packaging notice]

This fork exists solely to publish installable packages to PyPI under tha-objectpath for the original ObjectPath project, which no longer publishes releases. It aims to provide packaging and distribution only; it does not attempt full-featured development or ongoing maintenance of the codebase. Upstream development remains with the original project by Adrian Kalbarczyk.

PyPI - Version PyPI - Downloads CI

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

Command line usage

$ sudo pip install tha-objectpath
$ objectpath file.json

or

$ git clone https://github.com/adriank/ObjectPath.git
$ cd ObjectPath
$ python shell.py file.json

Python usage

$ sudo pip install tha-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
>>>

CI/CD Configuration

The CI pipeline includes quality checks (black, isort, flake8, mypy) and security scans (safety, bandit). You can disable these jobs using GitHub repository variables:

To skip quality checks:

  1. Go to your repository → Settings → Secrets and variables → Actions
  2. Click "Variables" tab → "New repository variable"
  3. Name: SKIP_QUALITY, Value: true
  4. The quality checks job will be skipped in all CI runs

To skip security scans:

  1. Follow the same steps as above
  2. Name: SKIP_SECURITY, Value: true
  3. The security scans job will be skipped in all CI runs

Contributing & bugs

I appreciate all contributions and bugfix requests for ObjectPath, however since I don't code in Python anymore, this library is not maintained as of now. Since I can't fully assure that code contributed by others meets quality standards, I can't accept PRs.

If you feel you could maintain this code, ping me. I'd be more than happy to transfer this repo to a dedicated ObjectPath organization on GitHub and give the ownership to someone with more time for this project than me.

License

MIT

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

tha_objectpath-0.7.0.tar.gz (26.9 kB view details)

Uploaded Source

Built Distribution

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

tha_objectpath-0.7.0-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

Details for the file tha_objectpath-0.7.0.tar.gz.

File metadata

  • Download URL: tha_objectpath-0.7.0.tar.gz
  • Upload date:
  • Size: 26.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tha_objectpath-0.7.0.tar.gz
Algorithm Hash digest
SHA256 52faa52ed131cb9193d16d5f2908b6126e88b4dfd9fae028220d93a9ff002642
MD5 9e142172bfe580c84fc19347c0f4d607
BLAKE2b-256 ca14e5bae8433285d060a9f00270132f4bb1ceac60afa1bb8ec54df6498ad081

See more details on using hashes here.

File details

Details for the file tha_objectpath-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: tha_objectpath-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 22.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tha_objectpath-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c84a4ef20d6dc79ac67c3f17d905ae53fe3aa89cdb6ec213c82cc5c74a3961a1
MD5 6658678f989aa8614a815eb0477ff853
BLAKE2b-256 b087634d8ddbd2d7e2604de13647c209ca33edc6f314ae61cd64df030a8aaf7e

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