kola


Namekola JSON
Version 0.8.0 PyPI version JSON
download
home_pageNone
Summarya Python Polars interface to kdb+/q
upload_time2024-03-31 05:17:11
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords q kdb polars dataframe arrow
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # kola

a Python [Polars](https://pola-rs.github.io/polars/) Interface to kdb+/q

## Basic Data Type Map

### Deserialization

#### Atom

| k type      | n   | size | python type | note                        |
| ----------- | --- | ---- | ----------- | --------------------------- |
| `boolean`   | 1   | 1    | `bool`      |                             |
| `guid`      | 2   | 16   | `str`       |                             |
| `byte`      | 4   | 1    | `int`       |                             |
| `short`     | 5   | 2    | `int`       |                             |
| `int`       | 6   | 4    | `int`       |                             |
| `long`      | 7   | 8    | `int`       |                             |
| `real`      | 8   | 4    | `float`     |                             |
| `float`     | 9   | 8    | `float`     |                             |
| `char`      | 10  | 1    | `str`       |                             |
| `string`    | 10  | 1    | `str`       |                             |
| `symbol`    | 11  | \*   | `str`       |                             |
| `timestamp` | 12  | 8    | `datetime`  |                             |
| `month`     | 13  | 4    | `-`         |                             |
| `date`      | 14  | 4    | `date`      | 0001.01.01 - 9999.12.31     |
| `datetime`  | 15  | 8    | `datetime`  |                             |
| `timespan`  | 16  | 8    | `timedelta` |                             |
| `minute`    | 17  | 4    | `time`      | 00:00 - 23:59               |
| `second`    | 18  | 4    | `time`      | 00:00:00 - 23:59:59         |
| `time`      | 19  | 4    | `time`      | 00:00:00.000 - 23:59:59.999 |

#### Composite Data Type

| k type           | n   | size | python type              |
| ---------------- | --- | ---- | ------------------------ |
| `boolean list`   | 1   | 1    | `pl.Boolean`             |
| `guid list`      | 2   | 16   | `pl.List(pl.Binary(16))` |
| `byte list`      | 4   | 1    | `pl.Uint8`               |
| `short list`     | 5   | 2    | `pl.Int16`               |
| `int list`       | 6   | 4    | `pl.Int32`               |
| `long list`      | 7   | 8    | `pl.Int64`               |
| `real list`      | 8   | 4    | `pl.Float32`             |
| `float list`     | 9   | 8    | `pl.Float64`             |
| `char list`      | 10  | 1    | `pl.Utf8`                |
| `string list`    | 10  | 1    | `pl.Utf8`                |
| `symbol list`    | 11  | \*   | `pl.Categorical`         |
| `timestamp list` | 12  | 8    | `pl.Datetime`            |
| `month list`     | 13  | 4    | `-`                      |
| `date list`      | 14  | 4    | `pl.Date`                |
| `datetime list`  | 15  | 8    | `pl.Datetime`            |
| `timespan list`  | 16  | 8    | `pl.Duration`            |
| `minute list`    | 17  | 4    | `pl.Time`                |
| `second list`    | 18  | 4    | `pl.Time`                |
| `time list`      | 19  | 4    | `pl.Time`                |
| `table`          | 98  | \*   | `pl.DataFrame`           |
| `dictionary`     | 99  | \*   | `-`                      |
| `keyed table`    | 99  | \*   | `pl.DataFrame`           |

> performance is impacted by converting guid to string, deserialize the uuid to 16 fixed binary list, use .hex() to convert binary to string if required

> real/float 0n is mapped to Polars null not NaN

> short/int/long 0Nh/i/j, 0Wh/i/j and -0Wh/i/j are mapped to null

```
df.with_columns([
    (pl.col("uuid").apply(lambda u: u.hex()))
    ])
```

### Serialization

#### Basic Data Type

| python type | k type      | note                        |
| ----------- | ----------- | --------------------------- |
| `bool`      | `boolean`   |                             |
| `int`       | `long`      |                             |
| `float`     | `float`     |                             |
| `str`       | `symbol`    |                             |
| `bytes`     | `string`    |                             |
| `datetime`  | `timestamp` |                             |
| `date`      | `date`      | 0001.01.01 - 9999.12.31     |
| `datetime`  | `datetime`  |                             |
| `timedelta` | `timespan`  |                             |
| `time`      | `time`      | 00:00:00.000 - 23:59:59.999 |

#### Dictionary, Series and DataFrame

| python type              | k type    |
| ------------------------ | --------- |
| `dict`                   | dict      |
| `pl.Boolean`             | boolean   |
| `pl.List(pl.Binary(16))` | guid      |
| `pl.Uint8`               | byte      |
| `pl.Int16`               | short     |
| `pl.Int32`               | int       |
| `pl.Int64`               | long      |
| `pl.Float32`             | real      |
| `pl.Float64`             | float     |
| `pl.Utf8`                | char      |
| `pl.Categorical`         | symbol    |
| `pl.Datetime`            | timestamp |
| `pl.Date`                | date      |
| `pl.Datetime`            | datetime  |
| `pl.Duration`            | timespan  |
| `pl.Time`                | time      |
| `pl.DataFrame`           | table     |

> Limited Support for dictionary as arguments, python `string` as keys and Python `Basic Data Types` and `pl.Series` as values.

### Quick Start

#### Create a Connection

```python
import polars as pl
import kola
q = kola.Q('localhost', 1800)
```

#### Connect(Optional)

Automatically connect when querying q process

```python
q.connect()
```

#### Disconnect

Automatically disconnect if any IO error

```python
q.disconnect()
```

#### String Query

```python
q.sync("select from trade where date=last date")
```

#### Functional Query

For functional query, `kola` supports Python [Basic Data Type](#basic-data-type), `pl.Series`, `pl.DataFrame` and Python Dictionary with string keys and Python [Basic Data Type](#basic-data-type) and `pl.Series` values.

```python
from datetime import date, time

q.sync(
    ".gw.query",
    "table",
    {
        "date": date(2023, 11, 21),
        "syms": pl.Series("", ["sym0", "sym1"], pl.Categorical),
        # 09:00
        "startTime": time(9),
        # 11:30
        "endTime": time(11, 30),
    },
)
```

#### Send DataFrame

```python
# pl_df is a Polars DataFrame
q.sync("upsert", "table", pl_df)
```

```python
# pd_df is a Pandas DataFrame, use pl.DateFrame to cast Pandas DataFrame
q.sync("upsert", "table", pl.DataFrame(pd_df))
```

#### Async Query

```python
# pl_df is a Polars DataFrame
q.asyn("upsert", "table", pl_df)
```

#### Polars Documentations

Refer to

- [User Guide](https://pola-rs.github.io/polars/user-guide/)
- [API Reference](https://pola-rs.github.io/polars/py-polars/html/reference/index.html)


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "kola",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "q, kdb, polars, dataframe, arrow",
    "author": null,
    "author_email": "Jo Shinonome <jo.shinonome@gmail.com>",
    "download_url": null,
    "platform": null,
    "description": "# kola\n\na Python [Polars](https://pola-rs.github.io/polars/) Interface to kdb+/q\n\n## Basic Data Type Map\n\n### Deserialization\n\n#### Atom\n\n| k type      | n   | size | python type | note                        |\n| ----------- | --- | ---- | ----------- | --------------------------- |\n| `boolean`   | 1   | 1    | `bool`      |                             |\n| `guid`      | 2   | 16   | `str`       |                             |\n| `byte`      | 4   | 1    | `int`       |                             |\n| `short`     | 5   | 2    | `int`       |                             |\n| `int`       | 6   | 4    | `int`       |                             |\n| `long`      | 7   | 8    | `int`       |                             |\n| `real`      | 8   | 4    | `float`     |                             |\n| `float`     | 9   | 8    | `float`     |                             |\n| `char`      | 10  | 1    | `str`       |                             |\n| `string`    | 10  | 1    | `str`       |                             |\n| `symbol`    | 11  | \\*   | `str`       |                             |\n| `timestamp` | 12  | 8    | `datetime`  |                             |\n| `month`     | 13  | 4    | `-`         |                             |\n| `date`      | 14  | 4    | `date`      | 0001.01.01 - 9999.12.31     |\n| `datetime`  | 15  | 8    | `datetime`  |                             |\n| `timespan`  | 16  | 8    | `timedelta` |                             |\n| `minute`    | 17  | 4    | `time`      | 00:00 - 23:59               |\n| `second`    | 18  | 4    | `time`      | 00:00:00 - 23:59:59         |\n| `time`      | 19  | 4    | `time`      | 00:00:00.000 - 23:59:59.999 |\n\n#### Composite Data Type\n\n| k type           | n   | size | python type              |\n| ---------------- | --- | ---- | ------------------------ |\n| `boolean list`   | 1   | 1    | `pl.Boolean`             |\n| `guid list`      | 2   | 16   | `pl.List(pl.Binary(16))` |\n| `byte list`      | 4   | 1    | `pl.Uint8`               |\n| `short list`     | 5   | 2    | `pl.Int16`               |\n| `int list`       | 6   | 4    | `pl.Int32`               |\n| `long list`      | 7   | 8    | `pl.Int64`               |\n| `real list`      | 8   | 4    | `pl.Float32`             |\n| `float list`     | 9   | 8    | `pl.Float64`             |\n| `char list`      | 10  | 1    | `pl.Utf8`                |\n| `string list`    | 10  | 1    | `pl.Utf8`                |\n| `symbol list`    | 11  | \\*   | `pl.Categorical`         |\n| `timestamp list` | 12  | 8    | `pl.Datetime`            |\n| `month list`     | 13  | 4    | `-`                      |\n| `date list`      | 14  | 4    | `pl.Date`                |\n| `datetime list`  | 15  | 8    | `pl.Datetime`            |\n| `timespan list`  | 16  | 8    | `pl.Duration`            |\n| `minute list`    | 17  | 4    | `pl.Time`                |\n| `second list`    | 18  | 4    | `pl.Time`                |\n| `time list`      | 19  | 4    | `pl.Time`                |\n| `table`          | 98  | \\*   | `pl.DataFrame`           |\n| `dictionary`     | 99  | \\*   | `-`                      |\n| `keyed table`    | 99  | \\*   | `pl.DataFrame`           |\n\n> performance is impacted by converting guid to string, deserialize the uuid to 16 fixed binary list, use .hex() to convert binary to string if required\n\n> real/float 0n is mapped to Polars null not NaN\n\n> short/int/long 0Nh/i/j, 0Wh/i/j and -0Wh/i/j are mapped to null\n\n```\ndf.with_columns([\n    (pl.col(\"uuid\").apply(lambda u: u.hex()))\n    ])\n```\n\n### Serialization\n\n#### Basic Data Type\n\n| python type | k type      | note                        |\n| ----------- | ----------- | --------------------------- |\n| `bool`      | `boolean`   |                             |\n| `int`       | `long`      |                             |\n| `float`     | `float`     |                             |\n| `str`       | `symbol`    |                             |\n| `bytes`     | `string`    |                             |\n| `datetime`  | `timestamp` |                             |\n| `date`      | `date`      | 0001.01.01 - 9999.12.31     |\n| `datetime`  | `datetime`  |                             |\n| `timedelta` | `timespan`  |                             |\n| `time`      | `time`      | 00:00:00.000 - 23:59:59.999 |\n\n#### Dictionary, Series and DataFrame\n\n| python type              | k type    |\n| ------------------------ | --------- |\n| `dict`                   | dict      |\n| `pl.Boolean`             | boolean   |\n| `pl.List(pl.Binary(16))` | guid      |\n| `pl.Uint8`               | byte      |\n| `pl.Int16`               | short     |\n| `pl.Int32`               | int       |\n| `pl.Int64`               | long      |\n| `pl.Float32`             | real      |\n| `pl.Float64`             | float     |\n| `pl.Utf8`                | char      |\n| `pl.Categorical`         | symbol    |\n| `pl.Datetime`            | timestamp |\n| `pl.Date`                | date      |\n| `pl.Datetime`            | datetime  |\n| `pl.Duration`            | timespan  |\n| `pl.Time`                | time      |\n| `pl.DataFrame`           | table     |\n\n> Limited Support for dictionary as arguments, python `string` as keys and Python `Basic Data Types` and `pl.Series` as values.\n\n### Quick Start\n\n#### Create a Connection\n\n```python\nimport polars as pl\nimport kola\nq = kola.Q('localhost', 1800)\n```\n\n#### Connect(Optional)\n\nAutomatically connect when querying q process\n\n```python\nq.connect()\n```\n\n#### Disconnect\n\nAutomatically disconnect if any IO error\n\n```python\nq.disconnect()\n```\n\n#### String Query\n\n```python\nq.sync(\"select from trade where date=last date\")\n```\n\n#### Functional Query\n\nFor functional query, `kola` supports Python [Basic Data Type](#basic-data-type), `pl.Series`, `pl.DataFrame` and Python Dictionary with string keys and Python [Basic Data Type](#basic-data-type) and `pl.Series` values.\n\n```python\nfrom datetime import date, time\n\nq.sync(\n    \".gw.query\",\n    \"table\",\n    {\n        \"date\": date(2023, 11, 21),\n        \"syms\": pl.Series(\"\", [\"sym0\", \"sym1\"], pl.Categorical),\n        # 09:00\n        \"startTime\": time(9),\n        # 11:30\n        \"endTime\": time(11, 30),\n    },\n)\n```\n\n#### Send DataFrame\n\n```python\n# pl_df is a Polars DataFrame\nq.sync(\"upsert\", \"table\", pl_df)\n```\n\n```python\n# pd_df is a Pandas DataFrame, use pl.DateFrame to cast Pandas DataFrame\nq.sync(\"upsert\", \"table\", pl.DataFrame(pd_df))\n```\n\n#### Async Query\n\n```python\n# pl_df is a Polars DataFrame\nq.asyn(\"upsert\", \"table\", pl_df)\n```\n\n#### Polars Documentations\n\nRefer to\n\n- [User Guide](https://pola-rs.github.io/polars/user-guide/)\n- [API Reference](https://pola-rs.github.io/polars/py-polars/html/reference/index.html)\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "a Python Polars interface to kdb+/q",
    "version": "0.8.0",
    "project_urls": {
        "Repository": "https://github.com/jshinonome/kola"
    },
    "split_keywords": [
        "q",
        " kdb",
        " polars",
        " dataframe",
        " arrow"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b78f8b6bbd8bfcdc0730b6e11f4f069125b2607e6e05ae612230d2f1cfc8de03",
                "md5": "74da99d3ba4ac040d2ff96b0cf1edb9e",
                "sha256": "662385c6a3d456accdfbf648fbbe8b37c2c7da50cc22093e7a7a5ff64137bbc5"
            },
            "downloads": -1,
            "filename": "kola-0.8.0-cp310-cp310-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "74da99d3ba4ac040d2ff96b0cf1edb9e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 3935607,
            "upload_time": "2024-03-31T05:17:11",
            "upload_time_iso_8601": "2024-03-31T05:17:11.938517Z",
            "url": "https://files.pythonhosted.org/packages/b7/8f/8b6bbd8bfcdc0730b6e11f4f069125b2607e6e05ae612230d2f1cfc8de03/kola-0.8.0-cp310-cp310-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dd23931f9653462966eea3da603932a9e0a60f068e57eca126446b11cf1b0f58",
                "md5": "342b84b2d3792c72682f50cdb7c946c3",
                "sha256": "6f2399eae730f7893c76d9413d9b43770d325bebc7663457f379e2758a77c04b"
            },
            "downloads": -1,
            "filename": "kola-0.8.0-cp310-cp310-manylinux_2_31_x86_64.whl",
            "has_sig": false,
            "md5_digest": "342b84b2d3792c72682f50cdb7c946c3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 7050838,
            "upload_time": "2024-03-31T05:05:12",
            "upload_time_iso_8601": "2024-03-31T05:05:12.856073Z",
            "url": "https://files.pythonhosted.org/packages/dd/23/931f9653462966eea3da603932a9e0a60f068e57eca126446b11cf1b0f58/kola-0.8.0-cp310-cp310-manylinux_2_31_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d035335a39807b80552a2e3d569bbf3aeb29a05b49243d30e00a96f502033975",
                "md5": "c92cafbb579761130b07b721eacbe5c1",
                "sha256": "b06be1be05a9cd4362990727c2f60993bc182a9b951687ca89197057b616a53f"
            },
            "downloads": -1,
            "filename": "kola-0.8.0-cp311-cp311-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c92cafbb579761130b07b721eacbe5c1",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 3936386,
            "upload_time": "2024-03-31T05:17:14",
            "upload_time_iso_8601": "2024-03-31T05:17:14.317268Z",
            "url": "https://files.pythonhosted.org/packages/d0/35/335a39807b80552a2e3d569bbf3aeb29a05b49243d30e00a96f502033975/kola-0.8.0-cp311-cp311-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "67e561fd5b1b5d746e1221e371d8ec1e55e66702105389641a54e584c3ed0540",
                "md5": "f3767843aa57e916a04dd106d8cade7d",
                "sha256": "a5f97c5e35f9ca65e1bf0a82ec492a43460a3512ad57c453c9e20b28fd3a21e7"
            },
            "downloads": -1,
            "filename": "kola-0.8.0-cp311-cp311-manylinux_2_34_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f3767843aa57e916a04dd106d8cade7d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 7584757,
            "upload_time": "2024-03-31T05:05:07",
            "upload_time_iso_8601": "2024-03-31T05:05:07.615421Z",
            "url": "https://files.pythonhosted.org/packages/67/e5/61fd5b1b5d746e1221e371d8ec1e55e66702105389641a54e584c3ed0540/kola-0.8.0-cp311-cp311-manylinux_2_34_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f3a2150c92ee210cc3f8831ca133a8d3380cb8cf0d6c246e2aa4da0a6bf1d075",
                "md5": "919c3cd36d19bd422bce6fd8f432e56a",
                "sha256": "3d9d9c16c8dd6177cdd2afb73ec662b4f75304b60706e18ff9a61fe4185834fe"
            },
            "downloads": -1,
            "filename": "kola-0.8.0-cp312-cp312-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "919c3cd36d19bd422bce6fd8f432e56a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 3936736,
            "upload_time": "2024-03-31T05:17:16",
            "upload_time_iso_8601": "2024-03-31T05:17:16.655489Z",
            "url": "https://files.pythonhosted.org/packages/f3/a2/150c92ee210cc3f8831ca133a8d3380cb8cf0d6c246e2aa4da0a6bf1d075/kola-0.8.0-cp312-cp312-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "876a717aac367d0b35438caf98f6411c7b8064af66f14edba86398afff9b9f37",
                "md5": "644bc36c838ecb4f836cfeb2ff0606d5",
                "sha256": "88a27baa0d9ed38cb74b6c6f9ebdbe419685257f80c8f5e12b9cd7c152c9b410"
            },
            "downloads": -1,
            "filename": "kola-0.8.0-cp312-cp312-manylinux_2_34_x86_64.whl",
            "has_sig": false,
            "md5_digest": "644bc36c838ecb4f836cfeb2ff0606d5",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 7585333,
            "upload_time": "2024-03-31T05:05:10",
            "upload_time_iso_8601": "2024-03-31T05:05:10.619977Z",
            "url": "https://files.pythonhosted.org/packages/87/6a/717aac367d0b35438caf98f6411c7b8064af66f14edba86398afff9b9f37/kola-0.8.0-cp312-cp312-manylinux_2_34_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6a9404eac7cdbf40c7b722305c24906497ed3a99e2a12534eae6651a82969895",
                "md5": "db81a6789940ce80844b3520a84d2551",
                "sha256": "d54e04fc1a73d2822e02838987b963e36f6c69b824b3ea7921a2b42e9e4c6d5c"
            },
            "downloads": -1,
            "filename": "kola-0.8.0-cp38-cp38-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "db81a6789940ce80844b3520a84d2551",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 3936173,
            "upload_time": "2024-03-31T05:17:18",
            "upload_time_iso_8601": "2024-03-31T05:17:18.959373Z",
            "url": "https://files.pythonhosted.org/packages/6a/94/04eac7cdbf40c7b722305c24906497ed3a99e2a12534eae6651a82969895/kola-0.8.0-cp38-cp38-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "101e5c85977bfc8d46471f98a6b5b6a274e2f9b65868d1787af7e967de9b8f50",
                "md5": "a431cb6c6364d202eebe97f4b4aa3af4",
                "sha256": "69cb2f70a06a3196caa80cf7bec634f2d08715ba788e618ae27956333e456462"
            },
            "downloads": -1,
            "filename": "kola-0.8.0-cp38-cp38-manylinux_2_31_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a431cb6c6364d202eebe97f4b4aa3af4",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 7050805,
            "upload_time": "2024-03-31T05:05:15",
            "upload_time_iso_8601": "2024-03-31T05:05:15.123461Z",
            "url": "https://files.pythonhosted.org/packages/10/1e/5c85977bfc8d46471f98a6b5b6a274e2f9b65868d1787af7e967de9b8f50/kola-0.8.0-cp38-cp38-manylinux_2_31_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "93b9f03ee97cbea42a52cda25f8e90927f29dc7ca4414244bced39bbb1d1ba99",
                "md5": "d7fa5916b8dd668c662382aad681c9a0",
                "sha256": "777f3c536c490ff2bbb7018aaee7ce299d181a68c118e4d6f933bf168d096a7f"
            },
            "downloads": -1,
            "filename": "kola-0.8.0-cp39-cp39-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d7fa5916b8dd668c662382aad681c9a0",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 3936577,
            "upload_time": "2024-03-31T05:17:20",
            "upload_time_iso_8601": "2024-03-31T05:17:20.670971Z",
            "url": "https://files.pythonhosted.org/packages/93/b9/f03ee97cbea42a52cda25f8e90927f29dc7ca4414244bced39bbb1d1ba99/kola-0.8.0-cp39-cp39-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dd6a08d5d44e7410e0d013cb9f1ff62b65cc1d136f89f9c30083b958c4914be9",
                "md5": "894f8023768fd4b43e4c9a14e57feab1",
                "sha256": "3317576e12edca44f5251053cc3342ae836d99299001a31c7542e33744b2d125"
            },
            "downloads": -1,
            "filename": "kola-0.8.0-cp39-cp39-manylinux_2_31_x86_64.whl",
            "has_sig": false,
            "md5_digest": "894f8023768fd4b43e4c9a14e57feab1",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 7050690,
            "upload_time": "2024-03-31T05:05:17",
            "upload_time_iso_8601": "2024-03-31T05:05:17.361272Z",
            "url": "https://files.pythonhosted.org/packages/dd/6a/08d5d44e7410e0d013cb9f1ff62b65cc1d136f89f9c30083b958c4914be9/kola-0.8.0-cp39-cp39-manylinux_2_31_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-31 05:17:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jshinonome",
    "github_project": "kola",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "kola"
}
        
Elapsed time: 0.24256s