jasminum


Namejasminum JSON
Version 0.3.4 PyPI version JSON
download
home_pageNone
Summaryan implementation of the data analytics programming language jasmine
upload_time2025-01-08 14:52:22
maintainerNone
docs_urlNone
authorthe Jasmine authors
requires_python>=3.11
licenseNone
keywords jasmine jasminum polars dataframe arrow
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # jasminum

an implementation of the data analytics programming language jasmine powered by [Polars](https://pola.rs/)

## Installation

```
pip install jasminum
```

## Start a jasminum Process

`jasminum`

## Data Type

### Scalar

| name      | examples                             |
| --------- | ------------------------------------ |
| Null      | 0n, null                             |
| BOOLEAN   | 1b, 0b, true, false                  |
| INT       | 42                                   |
| DATE      | YYYY-MM-DD                           |
| TIME      | HH:mm:ss.sss                         |
| DATETIME  | YYYY-MM-DD[T]HH:mm:ss.sss            |
| TIMESTAMP | YYYY-MM-DD[D]HH:mm:ss.sssssssss      |
| DURATION  | 00000[D]HH:mm:ss.sss,1ns,1s,1m,1h,1D |
| FLOAT     | 4.2, inf, -inf                       |
| STRING    | "string"                             |
| CAT       | `cat, 'cat'                          |

`datetime` and `timestamp` are with timezone information. To convert a timezone

- `` t ~tz `Asia/Hong_Kong ``
- `` tz(t, `Asia/Hong_Kong) ``

### List(Mixed Data Types)

```
[1, null, `cat]
```

### Series

| name      | data type      |
| --------- | -------------- |
| bool      | Boolean        |
| f32       | Float32        |
| f64       | Float64        |
| i8        | Int8           |
| i16       | Int16          |
| i32       | Int32          |
| i64       | Int64          |
| u8        | UInt8          |
| u16       | UInt16         |
| u32       | UInt32         |
| u64       | UInt64         |
| date      | Date           |
| datetime  | Datetime("ms") |
| timestamp | Datetime("ns") |
| duration  | Duration       |
| time      | Time           |
| string    | String         |
| cat       | Categorical    |
| list      | List           |
| unknown   | Unknown        |

```
// empty series
`i8$[]

// non-empty series
// i64
1 0n -1

// i8
0i8 1 2

// u8
0n 1u8 3

// bool
1b 0b 1b 0n

// cats
`a`b`c
```

### Dataframe

a collection of series

```
// empty series
df[series1= `i32$[], series2= `f32$[]]


// non-empty series
df[series1 = `i32$0n 0n 0n, series2 = `f32$0n 2.0 3.0]
df[series1 = 0i32 0n 0n, series2 = 0n 2.0 3.0]
```

### Matrix (not yet implemented)

a 2d float array

```
// empty matrix
x[[], [], []]

// non-empty matrix
x[[1, 2], [2, 3], [4, null]]
```

### Dictionary

```
// empty map
{}

// non-empty map
{a:1, b:2, c:3}
// not yet implemented
dict(`a`b`c, 1 2 3)
```

### Variable Name

- Starts with alphabets, the var name can include alphabets, number and "\_"
- Starts with CJK character, the var name can include CJK character, alphabets, number and "\_"

### Control Flow

```
if(condition) {
  statement1;
  statement2;
}

while(condition) {
  statement1;
  statement2;
}
```

### Error Handling

```
try {
  statement1;
  statement2;
} catch (err) {
  statement1;
  statement2;
}

```

### Function

```
fn(param1, param2, ...){
  statement1;
  statement2;
  return statement3;
  raise "err";
}
```

### Function Call

```
fn(arg1, arg2, ...)
```

### Functional Call with Parted Args

fn2 is a function requires 2 arguments

```
fn2(arg1)
fn2(, arg2)
```

## Expression

### SQL

```
[select | update | delete] series1, series2, ...
  [
    by series1, series2, ...
    | dyn unit, series1, series2, ...
    | rolling unit, series1, series2, ...
  ]
  from table
  [ where condition1, condition2, ...]
  [ sort {series1, -series2, ...} ]
  [ take number ]

// functional query
// select
sel(dataframe, exprs, exprs, exprs)
// update
upd(dataframe, exprs, exprs, exprs)
// delete, no group by parameter
del(dataframe, exprs, exprs)
```

### Assignment

```
var1 = exp1
```

### Unary Operation

```
var1 var2
var1(var2)
```

### Binary Operation

```
var1 ~fn0 var2
fn0(var1, var2)
```

### Iteration

#### Each

```
var1 ~each series1
var1 ~each list1
var1 ~each dataframe1

// apply each for 1st param
f2(var1) ~each var2
// apply each for 2nd param
f2(,var2) ~each var1
```


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "jasminum",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "jasmine, jasminum, polars, dataframe, arrow",
    "author": "the Jasmine authors",
    "author_email": null,
    "download_url": null,
    "platform": null,
    "description": "# jasminum\n\nan implementation of the data analytics programming language jasmine powered by [Polars](https://pola.rs/)\n\n## Installation\n\n```\npip install jasminum\n```\n\n## Start a jasminum Process\n\n`jasminum`\n\n## Data Type\n\n### Scalar\n\n| name      | examples                             |\n| --------- | ------------------------------------ |\n| Null      | 0n, null                             |\n| BOOLEAN   | 1b, 0b, true, false                  |\n| INT       | 42                                   |\n| DATE      | YYYY-MM-DD                           |\n| TIME      | HH:mm:ss.sss                         |\n| DATETIME  | YYYY-MM-DD[T]HH:mm:ss.sss            |\n| TIMESTAMP | YYYY-MM-DD[D]HH:mm:ss.sssssssss      |\n| DURATION  | 00000[D]HH:mm:ss.sss,1ns,1s,1m,1h,1D |\n| FLOAT     | 4.2, inf, -inf                       |\n| STRING    | \"string\"                             |\n| CAT       | `cat, 'cat'                          |\n\n`datetime` and `timestamp` are with timezone information. To convert a timezone\n\n- `` t ~tz `Asia/Hong_Kong ``\n- `` tz(t, `Asia/Hong_Kong) ``\n\n### List(Mixed Data Types)\n\n```\n[1, null, `cat]\n```\n\n### Series\n\n| name      | data type      |\n| --------- | -------------- |\n| bool      | Boolean        |\n| f32       | Float32        |\n| f64       | Float64        |\n| i8        | Int8           |\n| i16       | Int16          |\n| i32       | Int32          |\n| i64       | Int64          |\n| u8        | UInt8          |\n| u16       | UInt16         |\n| u32       | UInt32         |\n| u64       | UInt64         |\n| date      | Date           |\n| datetime  | Datetime(\"ms\") |\n| timestamp | Datetime(\"ns\") |\n| duration  | Duration       |\n| time      | Time           |\n| string    | String         |\n| cat       | Categorical    |\n| list      | List           |\n| unknown   | Unknown        |\n\n```\n// empty series\n`i8$[]\n\n// non-empty series\n// i64\n1 0n -1\n\n// i8\n0i8 1 2\n\n// u8\n0n 1u8 3\n\n// bool\n1b 0b 1b 0n\n\n// cats\n`a`b`c\n```\n\n### Dataframe\n\na collection of series\n\n```\n// empty series\ndf[series1= `i32$[], series2= `f32$[]]\n\n\n// non-empty series\ndf[series1 = `i32$0n 0n 0n, series2 = `f32$0n 2.0 3.0]\ndf[series1 = 0i32 0n 0n, series2 = 0n 2.0 3.0]\n```\n\n### Matrix (not yet implemented)\n\na 2d float array\n\n```\n// empty matrix\nx[[], [], []]\n\n// non-empty matrix\nx[[1, 2], [2, 3], [4, null]]\n```\n\n### Dictionary\n\n```\n// empty map\n{}\n\n// non-empty map\n{a:1, b:2, c:3}\n// not yet implemented\ndict(`a`b`c, 1 2 3)\n```\n\n### Variable Name\n\n- Starts with alphabets, the var name can include alphabets, number and \"\\_\"\n- Starts with CJK character, the var name can include CJK character, alphabets, number and \"\\_\"\n\n### Control Flow\n\n```\nif(condition) {\n  statement1;\n  statement2;\n}\n\nwhile(condition) {\n  statement1;\n  statement2;\n}\n```\n\n### Error Handling\n\n```\ntry {\n  statement1;\n  statement2;\n} catch (err) {\n  statement1;\n  statement2;\n}\n\n```\n\n### Function\n\n```\nfn(param1, param2, ...){\n  statement1;\n  statement2;\n  return statement3;\n  raise \"err\";\n}\n```\n\n### Function Call\n\n```\nfn(arg1, arg2, ...)\n```\n\n### Functional Call with Parted Args\n\nfn2 is a function requires 2 arguments\n\n```\nfn2(arg1)\nfn2(, arg2)\n```\n\n## Expression\n\n### SQL\n\n```\n[select | update | delete] series1, series2, ...\n  [\n    by series1, series2, ...\n    | dyn unit, series1, series2, ...\n    | rolling unit, series1, series2, ...\n  ]\n  from table\n  [ where condition1, condition2, ...]\n  [ sort {series1, -series2, ...} ]\n  [ take number ]\n\n// functional query\n// select\nsel(dataframe, exprs, exprs, exprs)\n// update\nupd(dataframe, exprs, exprs, exprs)\n// delete, no group by parameter\ndel(dataframe, exprs, exprs)\n```\n\n### Assignment\n\n```\nvar1 = exp1\n```\n\n### Unary Operation\n\n```\nvar1 var2\nvar1(var2)\n```\n\n### Binary Operation\n\n```\nvar1 ~fn0 var2\nfn0(var1, var2)\n```\n\n### Iteration\n\n#### Each\n\n```\nvar1 ~each series1\nvar1 ~each list1\nvar1 ~each dataframe1\n\n// apply each for 1st param\nf2(var1) ~each var2\n// apply each for 2nd param\nf2(,var2) ~each var1\n```\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "an implementation of the data analytics programming language jasmine",
    "version": "0.3.4",
    "project_urls": {
        "Repository": "https://github.com/hinmeru/jasmine"
    },
    "split_keywords": [
        "jasmine",
        " jasminum",
        " polars",
        " dataframe",
        " arrow"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "98adf42d859aa3a8ec7a69a138468ad4b7a6a66430de6b4fe587d9d0ac8f786f",
                "md5": "3795dac0e78b55db3bcc3c66a528c392",
                "sha256": "cb4dca0be0b23f1cc62362281bfc169469d8c42fcef7fb3b69ebaf9d10f9bffe"
            },
            "downloads": -1,
            "filename": "jasminum-0.3.4-cp311-cp311-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3795dac0e78b55db3bcc3c66a528c392",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 5318165,
            "upload_time": "2025-01-08T14:52:22",
            "upload_time_iso_8601": "2025-01-08T14:52:22.584632Z",
            "url": "https://files.pythonhosted.org/packages/98/ad/f42d859aa3a8ec7a69a138468ad4b7a6a66430de6b4fe587d9d0ac8f786f/jasminum-0.3.4-cp311-cp311-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f7f1295c74e0d17ddfcbaf4ef562c19b188f40e1535153f98d73078500761401",
                "md5": "631b0293ecb43ade2081d94d47658c70",
                "sha256": "9de80f6801084a3c567f3d9cc0ca40dcbffe102a949595f9db0b7c23d799c471"
            },
            "downloads": -1,
            "filename": "jasminum-0.3.4-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "631b0293ecb43ade2081d94d47658c70",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 5731294,
            "upload_time": "2025-01-08T14:52:26",
            "upload_time_iso_8601": "2025-01-08T14:52:26.526089Z",
            "url": "https://files.pythonhosted.org/packages/f7/f1/295c74e0d17ddfcbaf4ef562c19b188f40e1535153f98d73078500761401/jasminum-0.3.4-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "469b4c4ac2f04974f18f9c3e9a85ad2bd55043c1a11c01cb9f7ffdc782bfb22e",
                "md5": "f1b4382691f9596a9eb27b8213254817",
                "sha256": "97f2a6bfdc54810ad0b9c998985bd0853b8d12d8d07488ce4a6d4d3ae2d98b72"
            },
            "downloads": -1,
            "filename": "jasminum-0.3.4-cp312-cp312-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f1b4382691f9596a9eb27b8213254817",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 5318319,
            "upload_time": "2025-01-08T14:52:28",
            "upload_time_iso_8601": "2025-01-08T14:52:28.615274Z",
            "url": "https://files.pythonhosted.org/packages/46/9b/4c4ac2f04974f18f9c3e9a85ad2bd55043c1a11c01cb9f7ffdc782bfb22e/jasminum-0.3.4-cp312-cp312-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b58738ec8c59fee7c0656dace70e67e21bdfd99fcf982abd682188f08e6d62bb",
                "md5": "d5e3cf07edea025c2a3f72db9a860727",
                "sha256": "90e45c86158e95b456666ad6c260b56c18fffd102b09f64f9cdb473bda97cfaa"
            },
            "downloads": -1,
            "filename": "jasminum-0.3.4-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "d5e3cf07edea025c2a3f72db9a860727",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 5731870,
            "upload_time": "2025-01-08T14:52:31",
            "upload_time_iso_8601": "2025-01-08T14:52:31.714783Z",
            "url": "https://files.pythonhosted.org/packages/b5/87/38ec8c59fee7c0656dace70e67e21bdfd99fcf982abd682188f08e6d62bb/jasminum-0.3.4-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c8b58ddca8007ea32220d488e069c0abad437a76b3886bf83c8862fe99347e4c",
                "md5": "e5a61a68a60e430d056f779ccf5b7eaa",
                "sha256": "45f776270bf8cb633263bbeafe7dc0a46fe5948056bad5a61eca1d2bbe9bb60d"
            },
            "downloads": -1,
            "filename": "jasminum-0.3.4-cp313-cp313-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e5a61a68a60e430d056f779ccf5b7eaa",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.11",
            "size": 5318415,
            "upload_time": "2025-01-08T14:52:35",
            "upload_time_iso_8601": "2025-01-08T14:52:35.646705Z",
            "url": "https://files.pythonhosted.org/packages/c8/b5/8ddca8007ea32220d488e069c0abad437a76b3886bf83c8862fe99347e4c/jasminum-0.3.4-cp313-cp313-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d5fb6f7da93cd8312b6e1b25cab918572d8a81efdd579f4e167906c59cdeb74d",
                "md5": "5893a9d04e12922d402f860cef327866",
                "sha256": "abc8224e437080f9e28f7dd771f686d1f2e8892dd3bb8be63f914bfc0344eb41"
            },
            "downloads": -1,
            "filename": "jasminum-0.3.4-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "5893a9d04e12922d402f860cef327866",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.11",
            "size": 5731775,
            "upload_time": "2025-01-08T14:52:39",
            "upload_time_iso_8601": "2025-01-08T14:52:39.886201Z",
            "url": "https://files.pythonhosted.org/packages/d5/fb/6f7da93cd8312b6e1b25cab918572d8a81efdd579f4e167906c59cdeb74d/jasminum-0.3.4-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-08 14:52:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hinmeru",
    "github_project": "jasmine",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "jasminum"
}
        
Elapsed time: 0.39682s