Skip to main content

Querying object structures neatly

Project description

PyOPath

Test-status: Status

Overview

PyOPath is a Python library designed to facilitate querying structures of objects within application space. Inspired by XPath, JSONPath, and ObjectPath, PyOPath extends the querying capabilities beyond traditional XML and JSON documents to include a broader range of data structures.

Key Features

  • Flexible Querying: PyOPath allows querying of any kind of model as long as it meets certain criteria, expanding beyond the limitations of XML and JSON documents.

  • Application Space Integration: Unlike traditional querying libraries, PyOPath enables querying directly within the application's data structures, leveraging Python's runtime introspection capabilities.

Getting Started

To begin using PyOPath in your project:

  1. Install PyOPath via pip:

    pip install pyopath
    
  2. Import PyOPath into your Python script:

    import pyopath
    
  3. Start querying your application's data structures using PyOPath's compact syntax.

Example

# Assume we have a data structure 'my_data' representing a nested dictionary

my_data = {
    "name": "John",
    "age": 30,
    "address": {
        "city": "New York",
        "zipcode": "10001"
    },
    "pets": [
        {"type": "dog", "name": "Buddy"},
        {"type": "cat", "name": "Whiskers"}
    ]
}

# Querying the data structure with PyOPath

result = pyopath.query(my_data, "/address/city")
print(result)  # Output: "New York"

Roadmap

Currently, PyOPath is focused on building a robust XPath AST. Future plans include expanding query capabilities and enhancing integration with various data structures and application models.

Contributing

Contributions to PyOPath are welcome! Feel free to submit bug reports, feature requests, or pull requests via GitHub.

License

PyOPath is licensed under the MIT License. See the LICENSE file for details.

Notes and links

ply docs https://github.com/dabeaz/ply/blob/master/doc/ply.md https://ply.readthedocs.io/en/latest/ply.html

good parser review https://tratt.net/laurie/blog/2020/which_parsing_approach.html

another xpathy thing using ply https://github.com/emory-libraries/eulxml/blob/master/eulxml/xpath/__init__.py

parsing c with ply https://github.com/dabeaz/ply/blob/master/example/ansic/cparse.py

Sanxion documentation https://www.saxonica.com/documentation12/index.html#!expressions

xpath language reference https://www.w3.org/TR/xpath-31/#doc-xpath31-PostfixExpr

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

pyopath-0.0.1.tar.gz (21.8 kB view hashes)

Uploaded Source

Built Distribution

PyOPath-0.0.1-py3-none-any.whl (18.6 kB view hashes)

Uploaded Python 3

Supported by

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