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.1.tar.gz (46.6 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.1-py3-none-any.whl (57.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: norve-0.2.1.tar.gz
  • Upload date:
  • Size: 46.6 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.1.tar.gz
Algorithm Hash digest
SHA256 d8e39aafd87682ad2395f93f286e280bfe4de9d73d0be1a5d892e24e1f300706
MD5 77aa98810eeb8ede2369d853192233a5
BLAKE2b-256 e3171f09c734f17b0a6808d8701a5a4e930f5c1e85b34118a8bcbd53f8d7ef9b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: norve-0.2.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9dd6937bab00f68b74566276fa2f1389499dc467398ff1679e43cdb2e6d409a4
MD5 87cb241fbd52036b24edd12297dc9207
BLAKE2b-256 c990c46fae7137aeaecdaac556cb0b2a916e3cafdf404e599b5038a29824ee73

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