Skip to main content

Multi-Source Data Processing Language

Project description

Norvelang

Multi-Source Data Processing Language

Features

  • PEMDAS-compliant mathematical expressions
  • String functions (upper, lower, len, contains, etc.)
  • SQL-like pipelines for CSV, JSON, XML, SQLite, Excel
  • Filtering and aggregation with grouping and joins
  • Function support in use and where clauses
  • Robust join handling with automatic column disambiguation
  • Clean, extensible grammar
  • CLI and Python API for interactive and programmatic use

Quick Start

data.csv | use name, age | where age > 30

Installation

uv venv
.venv\Scripts\activate
uv pip install -r .\requirements.txt

Usage

Command Line

# Run a sample file
python -m norve samples/math.nv

# Interactive REPL
python -m norve

# Use regular Lark parser (disable cython)
python -m norve samples/queries.nv --no-lark-cython

Python API

import norve

df = norve.execute_query('''data.csv | use name, age | limit 10''')
output = norve.execute_with_output('''data.csv | use name, age | limit 5''')
variables = {'my_table': 'users.csv'}
df = norve.execute_query('''let users = $my_table; $users | use name, age | limit 10''', variables=variables)

Directory Structure

norvelang/
├── norve/              # Core language implementation
│   ├── api/            # Python API
│   ├── ast/            # AST definitions
│   ├── error/          # Error handling
│   ├── interpreter/    # Pipeline execution
│   ├── transformer/    # AST transformation
│   ├── grammar.lark    # Grammar definition
│   └── *.py            # Core modules
├── publish/            # Create new release on Github and PyPI
├── samples/            # Example .nv files
├── sample_data/        # Test data files
├── tests/              # Unit tests
├── requirements.txt    # Python dependencies
└── README.md           # This file

Running Tests

cd tests
pytest -v

Sample Files

  • math.nv: Math and function demos
  • queries.nv, queries2.nv: Data processing examples
  • data_sources.nv: Multi-format data
  • errors.nv: Error handling

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

norve-0.2.2.tar.gz (46.5 kB view details)

Uploaded Source

Built Distribution

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

norve-0.2.2-py3-none-any.whl (57.5 kB view details)

Uploaded Python 3

File details

Details for the file norve-0.2.2.tar.gz.

File metadata

  • Download URL: norve-0.2.2.tar.gz
  • Upload date:
  • Size: 46.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for norve-0.2.2.tar.gz
Algorithm Hash digest
SHA256 e02b3a627f60e37ee98a8b2bbe8f79a1f88c0a895770f86663bf3ecb959e640d
MD5 1f6439e6e3b1e27b81d528765a6bc622
BLAKE2b-256 7f004092d351b918e9f4936515ad863d6f291415067fcc41f046561f283aa15e

See more details on using hashes here.

File details

Details for the file norve-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: norve-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 57.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for norve-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 20428a1555549dd06649a3f90716f49466e721852740d9499e4f6b489a35a3f3
MD5 a7c9a11a87c8c04a34b475a7ac4fdb6e
BLAKE2b-256 865544e1daf6ff59de2139ff2720856c6d5020a6b250593d92bedfcf5db6155e

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