norvelang


Namenorvelang JSON
Version 0.2.2 PyPI version JSON
download
home_pageNone
SummaryMulti-Source Data Processing Language
upload_time2025-10-08 23:15:27
maintainerNone
docs_urlNone
authorLoXewyX
requires_python>=3.8
licenseMIT
keywords query-language data-processing dsl pandas csv xlsx excel sqlite json xml interpreter python-api data-analysis sql-like mathematical-expressions joins aggregations domain-specific-language
VCS
bugtrack_url
requirements lark lark-cython openpyxl pandas pytest setuptools
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

```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

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "norvelang",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "query-language, data-processing, dsl, pandas, csv, xlsx, excel, sqlite, json, xml, interpreter, python-api, data-analysis, sql-like, mathematical-expressions, joins, aggregations, domain-specific-language",
    "author": "LoXewyX",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/f6/ed/19f524e157ff013d126d20e3d25a6588125ba0847dbfef379131958b7c16/norvelang-0.2.2.tar.gz",
    "platform": null,
    "description": "# Norvelang\n\nMulti-Source Data Processing Language\n\n## Features\n- PEMDAS-compliant mathematical expressions\n- String functions (upper, lower, len, contains, etc.)\n- SQL-like pipelines for CSV, JSON, XML, SQLite, Excel\n- Filtering and aggregation with grouping and joins\n- Function support in use and where clauses\n- Robust join handling with automatic column disambiguation\n- Clean, extensible grammar\n- CLI and Python API for interactive and programmatic use\n\n## Quick Start\n\n```norvelang\ndata.csv | use name, age | where age > 30\n```\n\n## Installation\n\n```powershell\nuv venv\n.venv\\Scripts\\activate\nuv pip install -r .\\requirements.txt\n```\n\n## Usage\n\n### Command Line\n```powershell\n# Run a sample file\npython -m norve samples/math.nv\n\n# Interactive REPL\npython -m norve\n\n# Use regular Lark parser (disable cython)\npython -m norve samples/queries.nv --no-lark-cython\n```\n\n### Python API\n```python\nimport norve\n\ndf = norve.execute_query('''data.csv | use name, age | limit 10''')\noutput = norve.execute_with_output('''data.csv | use name, age | limit 5''')\nvariables = {'my_table': 'users.csv'}\ndf = norve.execute_query('''let users = $my_table; $users | use name, age | limit 10''', variables=variables)\n```\n\n## Directory Structure\n\n```\nnorvelang/\n\u251c\u2500\u2500 norve/              # Core language implementation\n\u2502   \u251c\u2500\u2500 api/            # Python API\n\u2502   \u251c\u2500\u2500 ast/            # AST definitions\n\u2502   \u251c\u2500\u2500 error/          # Error handling\n\u2502   \u251c\u2500\u2500 interpreter/    # Pipeline execution\n\u2502   \u251c\u2500\u2500 transformer/    # AST transformation\n\u2502   \u251c\u2500\u2500 grammar.lark    # Grammar definition\n\u2502   \u2514\u2500\u2500 *.py            # Core modules\n\u251c\u2500\u2500 publish/            # Create new release on Github and PyPI\n\u251c\u2500\u2500 samples/            # Example .nv files\n\u251c\u2500\u2500 sample_data/        # Test data files\n\u251c\u2500\u2500 tests/              # Unit tests\n\u251c\u2500\u2500 requirements.txt    # Python dependencies\n\u2514\u2500\u2500 README.md           # This file\n```\n\n## Running Tests\n\n```bash\ncd tests\npytest -v\n```\n\n## Sample Files\n- math.nv: Math and function demos\n- queries.nv, queries2.nv: Data processing examples\n- data_sources.nv: Multi-format data\n- errors.nv: Error handling\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Multi-Source Data Processing Language",
    "version": "0.2.2",
    "project_urls": {
        "Bug Reports": "https://github.com/LoXewyX/Norvelang/issues",
        "Documentation": "https://github.com/LoXewyX/Norvelang/blob/main/README.md",
        "Homepage": "https://github.com/LoXewyX/Norvelang",
        "Source": "https://github.com/LoXewyX/Norvelang"
    },
    "split_keywords": [
        "query-language",
        " data-processing",
        " dsl",
        " pandas",
        " csv",
        " xlsx",
        " excel",
        " sqlite",
        " json",
        " xml",
        " interpreter",
        " python-api",
        " data-analysis",
        " sql-like",
        " mathematical-expressions",
        " joins",
        " aggregations",
        " domain-specific-language"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fa5468581a99898cc53045959db4c18551b3ce7ea71cacfd2410e1be0475de84",
                "md5": "82f085332215b24f7f4e2d80e700c3d8",
                "sha256": "49884223caa8f68ec6a4f30b27ee45160511f2cd1f76f5d0ffb131d9f291c706"
            },
            "downloads": -1,
            "filename": "norvelang-0.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "82f085332215b24f7f4e2d80e700c3d8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 57535,
            "upload_time": "2025-10-08T23:15:26",
            "upload_time_iso_8601": "2025-10-08T23:15:26.477078Z",
            "url": "https://files.pythonhosted.org/packages/fa/54/68581a99898cc53045959db4c18551b3ce7ea71cacfd2410e1be0475de84/norvelang-0.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f6ed19f524e157ff013d126d20e3d25a6588125ba0847dbfef379131958b7c16",
                "md5": "76d84478742c4d8eff7dfb8050a01b91",
                "sha256": "d45b6c98981bb890dcc0c5510985b3c2a30a3d87898549580be406f0b8bb27b4"
            },
            "downloads": -1,
            "filename": "norvelang-0.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "76d84478742c4d8eff7dfb8050a01b91",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 46570,
            "upload_time": "2025-10-08T23:15:27",
            "upload_time_iso_8601": "2025-10-08T23:15:27.749352Z",
            "url": "https://files.pythonhosted.org/packages/f6/ed/19f524e157ff013d126d20e3d25a6588125ba0847dbfef379131958b7c16/norvelang-0.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-08 23:15:27",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "LoXewyX",
    "github_project": "Norvelang",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "lark",
            "specs": []
        },
        {
            "name": "lark-cython",
            "specs": []
        },
        {
            "name": "openpyxl",
            "specs": []
        },
        {
            "name": "pandas",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "setuptools",
            "specs": []
        }
    ],
    "lcname": "norvelang"
}
        
Elapsed time: 2.05345s