carefree-pyo3


Namecarefree-pyo3 JSON
Version 0.1.12 PyPI version JSON
download
home_pagehttps://github.com/carefree0910/carefree-pyo3
Summaryrust → python made easy
upload_time2024-10-15 11:52:53
maintainerNone
docs_urlNone
authorcarefree0910 <syameimaru.saki@gmail.com>
requires_python>=3.8
licenseNone
keywords rust python numpy pandas
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # carefree-pyo3

`cfpyo3` is a collection of performant utilities.

## Installation

`carefree-pyo3` requires:
- Python 3.8 or higher.
- `numpy < 2.x`, because currently rust numpy doesn't support numpy 2.x.

```bash
pip install carefree-pyo3
```

## Test

```bash
pytest
```

## Benchmark (Rust)

```bash
cargo bench -F criterion -p cfpyo3_rs_core -- --verbose
```

## Architecture

This project is divided into four parts - looks clumsy, but I'll introduce them and explain their necessity.

### `cfpyo3_rs_core`

This is the Rust core of the project, and is meant to be responsible for the heavy lifting. Its necessity is almost self-explanatory.

### `cfpyo3_rs_bindings`

This one looks redundant at first glance, as we already have `cfpyo3_rs_py`. Initially this member did not exist, until I find some bindings in `cfpyo3_rs_py` very useful, want to reuse them, and failed because:

- It is not an `rlib`.
- Even I managed to make it an `rlib`, it's just not good to import the whole package because `cfpyo3_rs_py` itself is exposing lots of APIs to Python.

Another choice is to put these useful bindings in `cfpyo3_rs_core`, but then GitHub CI cannot build it for whatever reason.

So at last, this member is born.

### `cfpyo3_rs_py`

This is the 'direct' Python bindings of this project. It is just a REALLY thin wrapper around `cfpyo3_rs_core` and `cfpyo3_rs_bindings`, and is responsible for exposing the APIs to Python.

### `cfpyo3`

This is the Python package that users will interact with. It is a relatively thin wrapper that dispatches the calls to `cfpyo3_rs_py`.

> A typical use case is the `f32` & `f64` dispatch.


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/carefree0910/carefree-pyo3",
    "name": "carefree-pyo3",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "rust, python, numpy, pandas",
    "author": "carefree0910 <syameimaru.saki@gmail.com>",
    "author_email": "carefree0910 <syameimaru.saki@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/99/7b/333fbfaf1379b44d1f0e9f1a67c9c69ff188f2fac6ee80de21383872bf9a/carefree_pyo3-0.1.12.tar.gz",
    "platform": null,
    "description": "# carefree-pyo3\n\n`cfpyo3` is a collection of performant utilities.\n\n## Installation\n\n`carefree-pyo3` requires:\n- Python 3.8 or higher.\n- `numpy < 2.x`, because currently rust numpy doesn't support numpy 2.x.\n\n```bash\npip install carefree-pyo3\n```\n\n## Test\n\n```bash\npytest\n```\n\n## Benchmark (Rust)\n\n```bash\ncargo bench -F criterion -p cfpyo3_rs_core -- --verbose\n```\n\n## Architecture\n\nThis project is divided into four parts - looks clumsy, but I'll introduce them and explain their necessity.\n\n### `cfpyo3_rs_core`\n\nThis is the Rust core of the project, and is meant to be responsible for the heavy lifting. Its necessity is almost self-explanatory.\n\n### `cfpyo3_rs_bindings`\n\nThis one looks redundant at first glance, as we already have `cfpyo3_rs_py`. Initially this member did not exist, until I find some bindings in `cfpyo3_rs_py` very useful, want to reuse them, and failed because:\n\n- It is not an `rlib`.\n- Even I managed to make it an `rlib`, it's just not good to import the whole package because `cfpyo3_rs_py` itself is exposing lots of APIs to Python.\n\nAnother choice is to put these useful bindings in `cfpyo3_rs_core`, but then GitHub CI cannot build it for whatever reason.\n\nSo at last, this member is born.\n\n### `cfpyo3_rs_py`\n\nThis is the 'direct' Python bindings of this project. It is just a REALLY thin wrapper around `cfpyo3_rs_core` and `cfpyo3_rs_bindings`, and is responsible for exposing the APIs to Python.\n\n### `cfpyo3`\n\nThis is the Python package that users will interact with. It is a relatively thin wrapper that dispatches the calls to `cfpyo3_rs_py`.\n\n> A typical use case is the `f32` & `f64` dispatch.\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "rust \u2192 python made easy",
    "version": "0.1.12",
    "project_urls": {
        "Homepage": "https://github.com/carefree0910/carefree-pyo3"
    },
    "split_keywords": [
        "rust",
        " python",
        " numpy",
        " pandas"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4fdd8a5904e7ff46e97dc0432b0ba5ad588b924713e01a9250e797025b4a4b67",
                "md5": "653eace7552d984475d387056b9d44c0",
                "sha256": "128cd55fb9727e386dc086eb425a2ad0aa228aebf9552aede608b40c5b455d6c"
            },
            "downloads": -1,
            "filename": "carefree_pyo3-0.1.12-cp38-abi3-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "653eace7552d984475d387056b9d44c0",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 522873,
            "upload_time": "2024-10-15T11:52:52",
            "upload_time_iso_8601": "2024-10-15T11:52:52.679522Z",
            "url": "https://files.pythonhosted.org/packages/4f/dd/8a5904e7ff46e97dc0432b0ba5ad588b924713e01a9250e797025b4a4b67/carefree_pyo3-0.1.12-cp38-abi3-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "37cc348711aa7823f5d898c27d0aaa55a77404311f699aa50021cf7f506e468b",
                "md5": "5c0f516ad8b3ce3f48e5a6a6f9e4bd5a",
                "sha256": "fdc5b0bfbb3e2e251dd60b1c7664a294db0cf9fb1849668ae8e8e111decd9a9c"
            },
            "downloads": -1,
            "filename": "carefree_pyo3-0.1.12-cp38-abi3-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5c0f516ad8b3ce3f48e5a6a6f9e4bd5a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 477251,
            "upload_time": "2024-10-15T11:52:49",
            "upload_time_iso_8601": "2024-10-15T11:52:49.914066Z",
            "url": "https://files.pythonhosted.org/packages/37/cc/348711aa7823f5d898c27d0aaa55a77404311f699aa50021cf7f506e468b/carefree_pyo3-0.1.12-cp38-abi3-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "141663f5b7d73c83a4228e0ca29dc08d5001c0467afc635367dce4f8cf45edd3",
                "md5": "beb7b5b00fb3da14bb3402995420212f",
                "sha256": "0d4842867ff1128e634b6e82ba51d81a8f06d863b00bff706028f9514f3470ae"
            },
            "downloads": -1,
            "filename": "carefree_pyo3-0.1.12-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "beb7b5b00fb3da14bb3402995420212f",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 558310,
            "upload_time": "2024-10-15T11:52:56",
            "upload_time_iso_8601": "2024-10-15T11:52:56.893726Z",
            "url": "https://files.pythonhosted.org/packages/14/16/63f5b7d73c83a4228e0ca29dc08d5001c0467afc635367dce4f8cf45edd3/carefree_pyo3-0.1.12-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bacd3898c99aeda02eb16271dfc81c14a1a0aabe7daceda632cf71c909dc4a52",
                "md5": "67e754e46f63b33affb49431a498b151",
                "sha256": "65616b9429590d841214dc17dfb1f8126bb0792bbee7bfc237210b0f6aca6cff"
            },
            "downloads": -1,
            "filename": "carefree_pyo3-0.1.12-cp38-abi3-manylinux_2_24_aarch64.whl",
            "has_sig": false,
            "md5_digest": "67e754e46f63b33affb49431a498b151",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 532758,
            "upload_time": "2024-10-15T11:52:55",
            "upload_time_iso_8601": "2024-10-15T11:52:55.428096Z",
            "url": "https://files.pythonhosted.org/packages/ba/cd/3898c99aeda02eb16271dfc81c14a1a0aabe7daceda632cf71c909dc4a52/carefree_pyo3-0.1.12-cp38-abi3-manylinux_2_24_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cda0603e484d546d344a3d515de85d5f897e27626596b099839dcbd11c608dbf",
                "md5": "c82c4473c9bcbc6d2deb7ddd55537c27",
                "sha256": "c65d0553b697f3df79fafbc05ca1b4c0172366213450f571024912d3f6e63e4e"
            },
            "downloads": -1,
            "filename": "carefree_pyo3-0.1.12-cp38-abi3-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c82c4473c9bcbc6d2deb7ddd55537c27",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 406665,
            "upload_time": "2024-10-15T11:52:58",
            "upload_time_iso_8601": "2024-10-15T11:52:58.832552Z",
            "url": "https://files.pythonhosted.org/packages/cd/a0/603e484d546d344a3d515de85d5f897e27626596b099839dcbd11c608dbf/carefree_pyo3-0.1.12-cp38-abi3-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "997b333fbfaf1379b44d1f0e9f1a67c9c69ff188f2fac6ee80de21383872bf9a",
                "md5": "ff0dc5acee46bdebea4a53bccbfebc38",
                "sha256": "2dff3933d778301d69d346509f93ee1c3eccd57a18bea6cd884c1d168024c359"
            },
            "downloads": -1,
            "filename": "carefree_pyo3-0.1.12.tar.gz",
            "has_sig": false,
            "md5_digest": "ff0dc5acee46bdebea4a53bccbfebc38",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 54594,
            "upload_time": "2024-10-15T11:52:53",
            "upload_time_iso_8601": "2024-10-15T11:52:53.866407Z",
            "url": "https://files.pythonhosted.org/packages/99/7b/333fbfaf1379b44d1f0e9f1a67c9c69ff188f2fac6ee80de21383872bf9a/carefree_pyo3-0.1.12.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-15 11:52:53",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "carefree0910",
    "github_project": "carefree-pyo3",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "carefree-pyo3"
}
        
Elapsed time: 0.35513s