cassio


Namecassio JSON
Version 0.1.7 PyPI version JSON
download
home_pagehttps://cassio.org
SummaryA framework-agnostic Python library to seamlessly integrate Apache Cassandra(R) with ML/LLM/genAI workloads.
upload_time2024-04-22 21:48:08
maintainerNone
docs_urlNone
authorStefano Lottini
requires_python<4.0,>=3.8
licenseApache-2.0
keywords cassandra ai llm genai astradb
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # cassIO

A framework-agnostic Python library to seamlessly integrate Apache Cassandra with ML/LLM/genAI workloads.

**Note**: this is currently an alpha release.

## Users

Installation is as simple as:

```
pip install cassio
```

For example usages and integration with higher-level LLM frameworks
such as LangChain, please visit [cassio.org](https://cassio.org).

## CassIO developers

### Setup

To develop `cassio`, we use poetry

```shell
pip install poetry
```

Use poetry to install dependencies

```shell
poetry install
```

#### Use cassio current code in other Poetry base projects

If the integration is Poetry-based (e.g. LangChain itself), you should get this
in your `pyproject.toml`:

```
cassio = {path = "../../cassio", develop = true}
```

Then you do

```
poetry remove cassio                                      # if necessary
poetry lock --no-update
poetry install -E all --with dev --with test_integration  # or similar, this is for langchain
```

[Inspired from this](https://github.com/orgs/python-poetry/discussions/1135).
You also need a recent Poetry for this to work.

#### Versioning

We are still at `0.*`. Occasional breaking changes are to be expected,
but please think carefully. Later, a stronger versioning model will be adopted.

### Style and typing

Style is enforced through `black`, linting with `ruff`,
and typechecking with `mypy`.
The code should run through `make format` without issues.

### Python version coverage

At the moment we try to run tests under Python3.8 and Python3.10 to try and
catch versions-specific issues
(such as the newer `typing` syntax such as `typeA | typeB`, illegal on 3.8).

### Publishing

- Bump version in pyproject.toml
- Add to `CHANGES.txt`
- Commit the very code that will be built:
- `git tag v<x.y.z>; git push origin v<x.y.z>`

```
make build
poetry publish  # (login to PyPI ...)
```

### Testing

Please run tests (and add some coverage for new features). This is not
enforced other than to your conscience. Type `make` for the available tests.

To run the full tests (except specific tests targeting Cassandra),
there's `make test-all`.

#### Unit testing

```
make test-unit
```

#### Integration with the DB

Ensure the required environment variables are set (see for instance
the provided `TEMPLATE.testing.env`).
You need at least one of either Astra DB or a
Cassandra (5+) cluster to use.

Launch the tests with either of:

```
make test-integration

make test-astra-integration
make test-cassandra-integration
make test-testcontainerscassandra-integration
```

The last three above specify `TEST_DB_MODE` as either `LOCAL_CASSANDRA`, `TESTCONTAINERS_CASSANDRA` or
`ASTRA_DB`. Refer to `TEMPLATE.testing.env` for required environment variables in the specific cases.

_Note: Ideally you should test with both Astra DB and one Cassandra, since some tests are
skipped in either case._

            

Raw data

            {
    "_id": null,
    "home_page": "https://cassio.org",
    "name": "cassio",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": "cassandra, ai, llm, genai, astradb",
    "author": "Stefano Lottini",
    "author_email": "stefano.lottini@datastax.com",
    "download_url": "https://files.pythonhosted.org/packages/fc/7e/ac6c1230cc71db6a1077338a4b4800663eded8a0bd797d5881d3733a6a22/cassio-0.1.7.tar.gz",
    "platform": null,
    "description": "# cassIO\n\nA framework-agnostic Python library to seamlessly integrate Apache Cassandra with ML/LLM/genAI workloads.\n\n**Note**: this is currently an alpha release.\n\n## Users\n\nInstallation is as simple as:\n\n```\npip install cassio\n```\n\nFor example usages and integration with higher-level LLM frameworks\nsuch as LangChain, please visit [cassio.org](https://cassio.org).\n\n## CassIO developers\n\n### Setup\n\nTo develop `cassio`, we use poetry\n\n```shell\npip install poetry\n```\n\nUse poetry to install dependencies\n\n```shell\npoetry install\n```\n\n#### Use cassio current code in other Poetry base projects\n\nIf the integration is Poetry-based (e.g. LangChain itself), you should get this\nin your `pyproject.toml`:\n\n```\ncassio = {path = \"../../cassio\", develop = true}\n```\n\nThen you do\n\n```\npoetry remove cassio                                      # if necessary\npoetry lock --no-update\npoetry install -E all --with dev --with test_integration  # or similar, this is for langchain\n```\n\n[Inspired from this](https://github.com/orgs/python-poetry/discussions/1135).\nYou also need a recent Poetry for this to work.\n\n#### Versioning\n\nWe are still at `0.*`. Occasional breaking changes are to be expected,\nbut please think carefully. Later, a stronger versioning model will be adopted.\n\n### Style and typing\n\nStyle is enforced through `black`, linting with `ruff`,\nand typechecking with `mypy`.\nThe code should run through `make format` without issues.\n\n### Python version coverage\n\nAt the moment we try to run tests under Python3.8 and Python3.10 to try and\ncatch versions-specific issues\n(such as the newer `typing` syntax such as `typeA | typeB`, illegal on 3.8).\n\n### Publishing\n\n- Bump version in pyproject.toml\n- Add to `CHANGES.txt`\n- Commit the very code that will be built:\n- `git tag v<x.y.z>; git push origin v<x.y.z>`\n\n```\nmake build\npoetry publish  # (login to PyPI ...)\n```\n\n### Testing\n\nPlease run tests (and add some coverage for new features). This is not\nenforced other than to your conscience. Type `make` for the available tests.\n\nTo run the full tests (except specific tests targeting Cassandra),\nthere's `make test-all`.\n\n#### Unit testing\n\n```\nmake test-unit\n```\n\n#### Integration with the DB\n\nEnsure the required environment variables are set (see for instance\nthe provided `TEMPLATE.testing.env`).\nYou need at least one of either Astra DB or a\nCassandra (5+) cluster to use.\n\nLaunch the tests with either of:\n\n```\nmake test-integration\n\nmake test-astra-integration\nmake test-cassandra-integration\nmake test-testcontainerscassandra-integration\n```\n\nThe last three above specify `TEST_DB_MODE` as either `LOCAL_CASSANDRA`, `TESTCONTAINERS_CASSANDRA` or\n`ASTRA_DB`. Refer to `TEMPLATE.testing.env` for required environment variables in the specific cases.\n\n_Note: Ideally you should test with both Astra DB and one Cassandra, since some tests are\nskipped in either case._\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "A framework-agnostic Python library to seamlessly integrate Apache Cassandra(R) with ML/LLM/genAI workloads.",
    "version": "0.1.7",
    "project_urls": {
        "Homepage": "https://cassio.org",
        "Repository": "https://github.com/CassioML/cassio"
    },
    "split_keywords": [
        "cassandra",
        " ai",
        " llm",
        " genai",
        " astradb"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4aad8213b4de4ac492ebd61e4429b91e2b9a2ca8bba861b1dcfc8d8981e5e284",
                "md5": "7d6ece8c99ab0688a6f5022bc15ee0a2",
                "sha256": "08d1028a20d09bd207de0e17eaf7ae821b3c8e4788555e2d337aa440e0846d87"
            },
            "downloads": -1,
            "filename": "cassio-0.1.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7d6ece8c99ab0688a6f5022bc15ee0a2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 44932,
            "upload_time": "2024-04-22T21:48:06",
            "upload_time_iso_8601": "2024-04-22T21:48:06.440775Z",
            "url": "https://files.pythonhosted.org/packages/4a/ad/8213b4de4ac492ebd61e4429b91e2b9a2ca8bba861b1dcfc8d8981e5e284/cassio-0.1.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fc7eac6c1230cc71db6a1077338a4b4800663eded8a0bd797d5881d3733a6a22",
                "md5": "e1f03b2c3a9257265d58c448d9acef21",
                "sha256": "44f705dff8a9a1c48527db2c9e968686358c960fa21ba940d9e66de00639ad78"
            },
            "downloads": -1,
            "filename": "cassio-0.1.7.tar.gz",
            "has_sig": false,
            "md5_digest": "e1f03b2c3a9257265d58c448d9acef21",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 35238,
            "upload_time": "2024-04-22T21:48:08",
            "upload_time_iso_8601": "2024-04-22T21:48:08.532810Z",
            "url": "https://files.pythonhosted.org/packages/fc/7e/ac6c1230cc71db6a1077338a4b4800663eded8a0bd797d5881d3733a6a22/cassio-0.1.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-22 21:48:08",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "CassioML",
    "github_project": "cassio",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "cassio"
}
        
Elapsed time: 0.28749s