Metadata-Version: 2.4
Name: cratedb-toolkit
Version: 0.0.48
Summary: CrateDB Toolkit
Author: The CrateDB Developers
Maintainer-email: Andreas Motl <andreas.motl@crate.io>, Hernan Cianfagna <hernan@crate.io>, Niklas Schmidtmer <niklas@crate.io>, Walter Behmann <walter@crate.io>
License-Expression: AGPL-3.0-or-later
Project-URL: Changelog, https://github.com/crate/cratedb-toolkit/blob/main/CHANGES.md
Project-URL: Documentation, https://cratedb-toolkit.readthedocs.io/
Project-URL: Homepage, https://cratedb-toolkit.readthedocs.io/
Project-URL: Issues, https://github.com/crate/cratedb-toolkit/issues
Project-URL: Repository, https://github.com/crate/cratedb-toolkit
Keywords: cratedb,cratedb-admin,cratedb-cloud,cratedb-diagnostics,cratedb-shell,data-processing,data-retention,managed-cratedb,toolkit
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Customer Service
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Manufacturing
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Telecommunications Industry
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
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.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Adaptive Technologies
Classifier: Topic :: Communications
Classifier: Topic :: Database
Classifier: Topic :: Documentation
Classifier: Topic :: Education
Classifier: Topic :: Internet
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Office/Business
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Embedded Systems
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Object Brokering
Classifier: Topic :: Software Development :: Pre-processors
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Version Control
Classifier: Topic :: System :: Archiving
Classifier: Topic :: System :: Benchmark
Classifier: Topic :: System :: Clustering
Classifier: Topic :: System :: Distributed Computing
Classifier: Topic :: System :: Hardware
Classifier: Topic :: System :: Logging
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: System :: Networking
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Text Processing
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: attrs<27
Requires-Dist: boltons<26
Requires-Dist: cattrs<27
Requires-Dist: click<8.4
Requires-Dist: click-aliases<2,>=1.0.4
Requires-Dist: colorama<1
Requires-Dist: colorlog
Requires-Dist: crash
Requires-Dist: cratedb-sqlparse==0.0.17
Requires-Dist: croud<1.16,>=1.13
Requires-Dist: importlib-metadata; python_version < "3.8"
Requires-Dist: importlib-resources; python_version < "3.9"
Requires-Dist: keyrings-cryptfile<2
Requires-Dist: orjsonl<2
Requires-Dist: pympler<1.2
Requires-Dist: python-dateutil<3
Requires-Dist: python-dotenv<2
Requires-Dist: python-slugify<9
Requires-Dist: pyyaml<7
Requires-Dist: requests<3,>=2.28
Requires-Dist: sqlalchemy-cratedb>=0.41.0
Requires-Dist: sqlparse<0.6
Requires-Dist: tqdm<5
Requires-Dist: typing-extensions<5; python_version <= "3.7"
Requires-Dist: vasuki<0.8
Requires-Dist: verlib2<0.4
Requires-Dist: yarl<1.24
Provides-Extra: cfr
Requires-Dist: duckdb<2; extra == "cfr"
Requires-Dist: marimo<0.24; extra == "cfr"
Requires-Dist: matplotlib<3.11; extra == "cfr"
Requires-Dist: numpy<2.5; extra == "cfr"
Requires-Dist: pandas<3.1; extra == "cfr"
Requires-Dist: polars<1.41; extra == "cfr"
Requires-Dist: pyarrow<25; extra == "cfr"
Requires-Dist: queryanonymizer<1.2; extra == "cfr"
Provides-Extra: datasets
Requires-Dist: datasets<5; extra == "datasets"
Requires-Dist: kaggle<2.2; extra == "datasets"
Provides-Extra: deltalake
Requires-Dist: cratedb-toolkit[io]; extra == "deltalake"
Requires-Dist: polars[deltalake]<1.41; extra == "deltalake"
Provides-Extra: develop
Requires-Dist: black[jupyter]<27; extra == "develop"
Requires-Dist: poethepoet<1; extra == "develop"
Requires-Dist: pyproject-fmt<3; extra == "develop"
Requires-Dist: ruff<0.16; extra == "develop"
Requires-Dist: ty==0.0.35; extra == "develop"
Requires-Dist: validate-pyproject<1; extra == "develop"
Provides-Extra: docs
Requires-Dist: furo; extra == "docs"
Requires-Dist: myst-parser[linkify]<6,>=0.18; extra == "docs"
Requires-Dist: roman-numerals-py<5; extra == "docs"
Requires-Dist: sphinx<8; extra == "docs"
Requires-Dist: sphinx-autobuild; extra == "docs"
Requires-Dist: sphinx-copybutton; extra == "docs"
Requires-Dist: sphinx-design-elements<1; extra == "docs"
Requires-Dist: sphinx-sitemap<3; extra == "docs"
Requires-Dist: sphinxcontrib-mermaid<3; extra == "docs"
Requires-Dist: sphinxext-opengraph<1; extra == "docs"
Provides-Extra: docs-api
Requires-Dist: beautifulsoup4; extra == "docs-api"
Requires-Dist: rich<16,>=3.3.2; extra == "docs-api"
Provides-Extra: dynamodb
Requires-Dist: boto3; extra == "dynamodb"
Requires-Dist: commons-codec>=0.0.20; extra == "dynamodb"
Requires-Dist: cratedb-toolkit[io-recipe]; extra == "dynamodb"
Provides-Extra: full
Requires-Dist: cratedb-toolkit[cfr,datasets,docs-api,io-curated,mcp,nlsql,service]; extra == "full"
Provides-Extra: iceberg
Requires-Dist: cratedb-toolkit[io]; extra == "iceberg"
Requires-Dist: pyiceberg[adlfs,bigquery,dynamodb,gcsfs,glue,hive,pyarrow,s3fs]<0.12,>=0.10; extra == "iceberg"
Provides-Extra: influxdb
Requires-Dist: cratedb-toolkit[io-base]; extra == "influxdb"
Requires-Dist: influxio<1,>=0.6; extra == "influxdb"
Requires-Dist: sqlalchemy>=2; extra == "influxdb"
Provides-Extra: io
Requires-Dist: cratedb-toolkit[io-base]; extra == "io"
Requires-Dist: sqlalchemy>=2; extra == "io"
Provides-Extra: io-base
Requires-Dist: cr8; extra == "io-base"
Requires-Dist: dask[dataframe,distributed]>=2020; extra == "io-base"
Requires-Dist: fsspec[http,s3]; extra == "io-base"
Requires-Dist: pandas<3.1,>=1; extra == "io-base"
Requires-Dist: polars<1.41; extra == "io-base"
Requires-Dist: universal-pathlib<0.4; extra == "io-base"
Provides-Extra: io-curated
Requires-Dist: cratedb-toolkit[influxdb,io,io-opentable,mongodb]; extra == "io-curated"
Provides-Extra: io-ingest
Requires-Dist: cratedb-toolkit[io-base]; extra == "io-ingest"
Requires-Dist: dlt<1.27,>=1.10; extra == "io-ingest"
Requires-Dist: dlt-cratedb>=0.0.1; extra == "io-ingest"
Requires-Dist: ingestr<0.15,>=0.13.61; extra == "io-ingest"
Requires-Dist: sqlalchemy<2,>=1; extra == "io-ingest"
Provides-Extra: io-opentable
Requires-Dist: cratedb-toolkit[deltalake,iceberg]; extra == "io-opentable"
Provides-Extra: io-recipe
Requires-Dist: tikray<0.4,>=0.2; extra == "io-recipe"
Provides-Extra: kinesis
Requires-Dist: aiobotocore<3.8; extra == "kinesis"
Requires-Dist: async-kinesis<3,>=2.4.0; extra == "kinesis"
Requires-Dist: botocore<1.44; extra == "kinesis"
Requires-Dist: commons-codec>=0.0.24; extra == "kinesis"
Requires-Dist: cratedb-toolkit[io-recipe]; extra == "kinesis"
Requires-Dist: lorrystream[carabas]>=0.0.6; extra == "kinesis"
Provides-Extra: mcp
Requires-Dist: mcp<1.28; python_version >= "3.10" and extra == "mcp"
Provides-Extra: mongodb
Requires-Dist: commons-codec[mongodb]>=0.0.22; extra == "mongodb"
Requires-Dist: cratedb-toolkit[io,io-recipe]; extra == "mongodb"
Requires-Dist: orjson<4,>=3.3.1; extra == "mongodb"
Requires-Dist: pymongo<4.17,>=3.10.1; extra == "mongodb"
Requires-Dist: python-bsonjs<0.8; extra == "mongodb"
Requires-Dist: rich<16,>=3.3.2; extra == "mongodb"
Requires-Dist: undatum<1.2; extra == "mongodb"
Provides-Extra: nlsql
Requires-Dist: llama-index-llms-anthropic<0.12; python_version >= "3.10" and extra == "nlsql"
Requires-Dist: llama-index-llms-azure-openai<0.6; python_version >= "3.10" and extra == "nlsql"
Requires-Dist: llama-index-llms-bedrock<0.6; python_version >= "3.10" and extra == "nlsql"
Requires-Dist: llama-index-llms-bedrock-converse<0.15; python_version >= "3.10" and extra == "nlsql"
Requires-Dist: llama-index-llms-google-genai<0.10; python_version >= "3.10" and extra == "nlsql"
Requires-Dist: llama-index-llms-huggingface-api<0.8; python_version >= "3.10" and extra == "nlsql"
Requires-Dist: llama-index-llms-llamafile<0.6; python_version >= "3.10" and extra == "nlsql"
Requires-Dist: llama-index-llms-mistralai<0.11; python_version >= "3.10" and extra == "nlsql"
Requires-Dist: llama-index-llms-ollama<0.11; python_version >= "3.10" and extra == "nlsql"
Requires-Dist: llama-index-llms-openai<0.8; python_version >= "3.10" and extra == "nlsql"
Requires-Dist: llama-index-llms-openai-like<0.8; python_version >= "3.10" and extra == "nlsql"
Requires-Dist: llama-index-llms-openrouter<0.6; python_version >= "3.10" and extra == "nlsql"
Provides-Extra: pymongo
Requires-Dist: jessiql==1.0.0rc1; extra == "pymongo"
Requires-Dist: numpy<2; extra == "pymongo"
Requires-Dist: pandas<2.2; extra == "pymongo"
Requires-Dist: pymongo<4.9; extra == "pymongo"
Requires-Dist: setuptools<81; extra == "pymongo"
Requires-Dist: sqlalchemy<2; extra == "pymongo"
Provides-Extra: release
Requires-Dist: build<2; extra == "release"
Requires-Dist: twine<7; extra == "release"
Provides-Extra: release-cfr
Requires-Dist: poethepoet<1; extra == "release-cfr"
Requires-Dist: pyinstaller<7; extra == "release-cfr"
Provides-Extra: service
Requires-Dist: fastapi<0.137; extra == "service"
Requires-Dist: uvicorn<0.47; extra == "service"
Provides-Extra: settings
Requires-Dist: cratedb-toolkit[docs-api]; extra == "settings"
Requires-Dist: docutils<0.23; extra == "settings"
Provides-Extra: test
Requires-Dist: azure-storage-blob<12.29; extra == "test"
Requires-Dist: cratedb-toolkit[testing]; extra == "test"
Requires-Dist: httpx<0.29; extra == "test"
Requires-Dist: ipywidgets<9; extra == "test"
Requires-Dist: markdown-it-py<5; extra == "test"
Requires-Dist: pueblo[dataframe,notebook,testing]>=0.0.11; extra == "test"
Requires-Dist: pydantic-core<3; extra == "test"
Requires-Dist: responses<0.27; extra == "test"
Requires-Dist: testcontainers[azurite,localstack,minio,postgres]; extra == "test"
Requires-Dist: types-docutils<0.21; extra == "test"
Provides-Extra: test-mongodb
Requires-Dist: cratedb-toolkit[test]; extra == "test-mongodb"
Requires-Dist: testcontainers[mongodb]; extra == "test-mongodb"
Provides-Extra: testing
Requires-Dist: pytest<10; extra == "testing"
Requires-Dist: pytest-cov<8; extra == "testing"
Requires-Dist: pytest-mock<4; extra == "testing"
Requires-Dist: testcontainers<4.15; extra == "testing"
Dynamic: license-file

# CrateDB Toolkit

[![Python versions](https://img.shields.io/pypi/pyversions/cratedb-toolkit.svg)](https://pypi.org/project/cratedb-toolkit/)
[![Downloads](https://pepy.tech/badge/cratedb-toolkit/month)](https://pepy.tech/project/cratedb-toolkit/)

[![License](https://img.shields.io/github/license/crate/cratedb-toolkit.svg)](https://github.com/crate/cratedb-toolkit/blob/main/LICENSE)
[![PyPI](https://img.shields.io/pypi/v/cratedb-toolkit.svg)](https://pypi.org/project/cratedb-toolkit/)
[![Status](https://img.shields.io/pypi/status/cratedb-toolkit.svg)](https://pypi.org/project/cratedb-toolkit/)
[![Test coverage](https://img.shields.io/codecov/c/gh/crate/cratedb-toolkit.svg)](https://codecov.io/gh/crate/cratedb-toolkit/)

» [Documentation]
| [Changelog]
| [Community Forum]
| [PyPI]
| [Issues]
| [Source code]
| [License]
| [CrateDB]

[![ci-main][ci-main-badge]][ci-main-workflow]
[![ci-cloud][ci-cloud-badge]][ci-cloud-workflow]
[![ci-nlsql][ci-nlsql-badge]][ci-nlsql-workflow]

[![ci-dynamodb][ci-dynamodb-badge]][ci-dynamodb-workflow]
[![ci-influxdb][ci-influxdb-badge]][ci-influxdb-workflow]
[![ci-kinesis][ci-kinesis-badge]][ci-kinesis-workflow]
[![ci-mongodb][ci-mongodb-badge]][ci-mongodb-workflow]
[![ci-postgresql][ci-postgresql-badge]][ci-postgresql-workflow]
[![ci-pymongo][ci-pymongo-badge]][ci-pymongo-workflow]


## About

This software package includes a range of modules and subsystems to work
with CrateDB and CrateDB Cloud efficiently.

You can use CrateDB Toolkit to run data I/O procedures and automation tasks
of different kinds around CrateDB and CrateDB Cloud. It can be used both as
a standalone program, and as a library.

It aims for [DWIM]-like usefulness and [UX], and provides CLI and HTTP
interfaces, and others.


## Install

Install package.
```shell
pip install --upgrade cratedb-toolkit
```

Verify installation.
```shell
ctk --version
```

Run with Docker.
```shell
alias ctk="docker run --rm ghcr.io/crate/cratedb-toolkit ctk"
ctk --version
```

## Contribute

Contributions are very much welcome. Please visit the [Documentation]
to learn how to spin up a sandbox environment on your workstation, or create
a [ticket][Issues] to report a bug or propose a feature.

## Status

Breaking changes should be expected until a 1.0 release, so version pinning is
strongly recommended, especially when using this software as a library.
For example:
```shell
pip install 'cratedb-toolkit[full]==0.0.38'
```


[Changelog]: https://github.com/crate/cratedb-toolkit/blob/main/CHANGES.md
[Community Forum]: https://community.crate.io/
[CrateDB]: https://crate.io/products/cratedb
[CrateDB Cloud]: https://console.cratedb.cloud/
[Documentation]: https://cratedb-toolkit.readthedocs.io/
[DWIM]: https://en.wikipedia.org/wiki/DWIM
[Issues]: https://github.com/crate/cratedb-toolkit/issues
[License]: https://github.com/crate/cratedb-toolkit/blob/main/LICENSE
[PyPI]: https://pypi.org/project/cratedb-toolkit/
[Source code]: https://github.com/crate/cratedb-toolkit
[UX]: https://en.wikipedia.org/wiki/User_experience

[ci-main-badge]: https://github.com/crate/cratedb-toolkit/actions/workflows/main.yml/badge.svg
[ci-main-workflow]: https://github.com/crate/cratedb-toolkit/actions/workflows/main.yml
[ci-cloud-badge]: https://github.com/crate/cratedb-toolkit/actions/workflows/cratedb-cloud.yml/badge.svg
[ci-cloud-workflow]: https://github.com/crate/cratedb-toolkit/actions/workflows/cratedb-cloud.yml
[ci-dynamodb-badge]: https://github.com/crate/cratedb-toolkit/actions/workflows/dynamodb.yml/badge.svg
[ci-dynamodb-workflow]: https://github.com/crate/cratedb-toolkit/actions/workflows/dynamodb.yml
[ci-influxdb-badge]: https://github.com/crate/cratedb-toolkit/actions/workflows/influxdb.yml/badge.svg
[ci-influxdb-workflow]: https://github.com/crate/cratedb-toolkit/actions/workflows/influxdb.yml
[ci-kinesis-badge]: https://github.com/crate/cratedb-toolkit/actions/workflows/kinesis.yml/badge.svg
[ci-kinesis-workflow]: https://github.com/crate/cratedb-toolkit/actions/workflows/kinesis.yml
[ci-mongodb-badge]: https://github.com/crate/cratedb-toolkit/actions/workflows/mongodb.yml/badge.svg
[ci-mongodb-workflow]: https://github.com/crate/cratedb-toolkit/actions/workflows/mongodb.yml
[ci-nlsql-badge]: https://github.com/crate/cratedb-toolkit/actions/workflows/nlsql.yml/badge.svg
[ci-nlsql-workflow]: https://github.com/crate/cratedb-toolkit/actions/workflows/nlsql.yml
[ci-postgresql-badge]: https://github.com/crate/cratedb-toolkit/actions/workflows/postgresql.yml/badge.svg
[ci-postgresql-workflow]: https://github.com/crate/cratedb-toolkit/actions/workflows/postgresql.yml
[ci-pymongo-badge]: https://github.com/crate/cratedb-toolkit/actions/workflows/pymongo.yml/badge.svg
[ci-pymongo-workflow]: https://github.com/crate/cratedb-toolkit/actions/workflows/pymongo.yml
