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

norvelang-0.2.1.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.

norvelang-0.2.1-py3-none-any.whl (57.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: norvelang-0.2.1.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 norvelang-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d72b43c2edfb0acde61c5967f916df412824aa0b9cfa054765521aaa1d878d6b
MD5 ae83eacf3a42caebba1a8eb06ea72954
BLAKE2b-256 3dbaf64dd35a2201df0116f0445fdf0db6496a640cf78df9969cf7aff874dc41

See more details on using hashes here.

File details

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

File metadata

  • Download URL: norvelang-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 norvelang-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a5389288b3a130876aeebbd6dc7709e9a40cf3df6a613b75c166f84df0802f29
MD5 93108c625eafa4a1239f003481a4a2ea
BLAKE2b-256 03d8cc40f83bc97f45b692054aedecf5363afafeb943fe8e665b274ea9977ff2

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