https://github.com/loxewyx/norvelang
Multi-Source Data Processing Language
https://github.com/loxewyx/norvelang
csv db declarative dsl-interpreter excel json lark-parser multiformat pipeline python-api sqlite sqlite3 xls xlsx xml
Last synced: about 1 month ago
JSON representation
Multi-Source Data Processing Language
- Host: GitHub
- URL: https://github.com/loxewyx/norvelang
- Owner: LoXewyX
- License: mit
- Created: 2025-09-21T01:38:30.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-09-25T12:28:28.000Z (9 months ago)
- Last Synced: 2025-09-25T12:29:13.404Z (9 months ago)
- Topics: csv, db, declarative, dsl-interpreter, excel, json, lark-parser, multiformat, pipeline, python-api, sqlite, sqlite3, xls, xlsx, xml
- Language: Python
- Homepage: https://pypi.org/project/norve/
- Size: 188 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Norvelang
Multi-Source Data Processing Language
## Features
- SQL-like pipelines for CSV, JSON, XML, SQLite, Excel
- Robust join handling with automatic column disambiguation
- Clean, extensible grammar
- CLI and Python API for interactive and programmatic use
## Quick Start
```norvelang
data.csv | use name, age | where age > 30
```
## Installation
```powershell
uv venv
.venv\Scripts\activate
uv pip install -r .\requirements.txt
```
## Usage
### Command Line
```powershell
# 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
```python
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
```bash
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