Skip to main content

Add your description here

Project description

uqal-core

The core engine of UQAL — a unified query abstraction layer that lets you write one query syntax and run it against any supported database.

uqal-core contains the parser, grammar builder, AST, module loader, and CLI. It is the runtime that all UQAL modules plug into.


What is UQAL?

UQAL is a database-agnostic query language. Instead of writing SQL for PostgreSQL, Cypher for Neo4j, and MQL for MongoDB separately, you write UQAL once and the appropriate module translates it into the native query for the connected database.

mydb.users.get_table(where active = true, fields id, name)

Installation

uv add uqal-core

Requires Python 3.12+.


Quick Start

# Start the interactive UQAL shell
uqal shell

# Run a query file
uqal run query.uqal

# List loaded modules
uqal list-modules

Modules

Database support comes from modules. Standard modules ship with uqal-core. Community modules are installed separately:

uv add uqal-postgis
uqal add-module community.postgis

Browse available modules: uqal-lang/uqal-modules


Development Setup

git clone https://github.com/uqal-lang/uqal-core
cd uqal-core
uv sync
uv run pytest

Dev scripts are in scripts/dev/:

# Parse and translate a query
uv run python scripts/dev/check_query.py "mydb.users.get_table()"

# Inspect the combined grammar
uv run python scripts/dev/inspect_grammar.py

# Validate a module implementation
uv run python scripts/dev/validate_module.py standard.postgresql

Contributing

uqal-core is maintained by the core team. See CONTRIBUTING for the development workflow.

To contribute a new database module, head to uqal-lang/uqal-modules.


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

uqal_core-0.1.0.tar.gz (130.0 kB view details)

Uploaded Source

Built Distribution

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

uqal_core-0.1.0-py3-none-any.whl (114.9 kB view details)

Uploaded Python 3

File details

Details for the file uqal_core-0.1.0.tar.gz.

File metadata

  • Download URL: uqal_core-0.1.0.tar.gz
  • Upload date:
  • Size: 130.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for uqal_core-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9c13a8d168df48925e11174319b34bf2c5341e39647580b29c43618528bf3ee1
MD5 2b1fc23fd3d27864e67c6743592dfbee
BLAKE2b-256 86347237e071a547a2ac402b70c1c4f2b2d7a2f5876e18cf671c7e622174880f

See more details on using hashes here.

Provenance

The following attestation bundles were made for uqal_core-0.1.0.tar.gz:

Publisher: publish.yml on uqal-lang/uqal-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uqal_core-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: uqal_core-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 114.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for uqal_core-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bf62e70dbece8c19081b7d0bb87cf942db05d4a03155ee6e70aa8ce2070caae4
MD5 722b7f3dddf94cb1d46651e5f2b382c6
BLAKE2b-256 177d698290f0943eca67cea737252b581f72459a0d7ff75ba48926c60cee6ae9

See more details on using hashes here.

Provenance

The following attestation bundles were made for uqal_core-0.1.0-py3-none-any.whl:

Publisher: publish.yml on uqal-lang/uqal-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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