Multi-Source Data Processing Language
- 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
data.csv | use name, age | where age > 30
uv venv
.venv\Scripts\activate
uv pip install -r .\requirements.txt# 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-cythonimport 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)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
cd tests
pytest -v- math.nv: Math and function demos
- queries.nv, queries2.nv: Data processing examples
- data_sources.nv: Multi-format data
- errors.nv: Error handling