Spaces:
Runtime error
Runtime error
Metadata-Version: 2.1 | |
Name: cassio | |
Version: 0.1.7 | |
Summary: A framework-agnostic Python library to seamlessly integrate Apache Cassandra(R) with ML/LLM/genAI workloads. | |
Home-page: https://cassio.org | |
License: Apache-2.0 | |
Keywords: cassandra,ai,llm,genai,astradb | |
Author: Stefano Lottini | |
Author-email: [email protected] | |
Requires-Python: >=3.8,<4.0 | |
Classifier: Development Status :: 5 - Production/Stable | |
Classifier: Intended Audience :: Developers | |
Classifier: License :: OSI Approved :: Apache Software License | |
Classifier: Programming Language :: Python :: 3 | |
Classifier: Programming Language :: Python :: 3.8 | |
Classifier: Programming Language :: Python :: 3.9 | |
Classifier: Programming Language :: Python :: 3.10 | |
Classifier: Programming Language :: Python :: 3.11 | |
Classifier: Programming Language :: Python :: 3 :: Only | |
Classifier: Programming Language :: Python :: 3.12 | |
Classifier: Topic :: Scientific/Engineering | |
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence | |
Requires-Dist: cassandra-driver (>=3.28.0,<4.0.0) | |
Requires-Dist: numpy (>=1.0) | |
Requires-Dist: requests (>=2.31.0,<3.0.0) | |
Project-URL: Repository, https://github.com/CassioML/cassio | |
Description-Content-Type: text/markdown | |
# 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._ | |