Metadata-Version: 2.4
Name: ryoma_ai
Version: 0.1.4
Summary: AI Powered Data Platform
License-File: LICENSE
Keywords: Artificial Intelligence,Code Generation,Data Analysis
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Requires-Dist: amundsen-databuilder>=7.5.0
Requires-Dist: click>=8.0.0
Requires-Dist: datasketch>=1.6.5
Requires-Dist: httpx==0.27.2
Requires-Dist: ibis-framework>=9.0.0
Requires-Dist: ipython>=8.14.0
Requires-Dist: langchain-openai>=0.1.7
Requires-Dist: langchain<0.3.0,>=0.2.9
Requires-Dist: langgraph>=0.2.0
Requires-Dist: mock>=5.1.0
Requires-Dist: openai>=1.33.0
Requires-Dist: pandas>=2.2.2
Requires-Dist: prompt-toolkit>=3.0.0
Requires-Dist: pyarrow>=16.1.0
Requires-Dist: pydantic>=2.7.1
Requires-Dist: rich>=13.0.0
Requires-Dist: typer>=0.12.3
Requires-Dist: types-setuptools>=70.0.0.20240524
Provides-Extra: bigquery
Requires-Dist: amundsen-databuilder[bigquery]>=7.5.0; extra == 'bigquery'
Requires-Dist: ibis-framework[bigquery]>=9.0.0; extra == 'bigquery'
Provides-Extra: duckdb
Requires-Dist: duckdb>=1.0.0; extra == 'duckdb'
Requires-Dist: ibis-framework[duckdb]>=9.0.0; extra == 'duckdb'
Provides-Extra: dynamodb
Requires-Dist: aioboto3>=11.0.0; extra == 'dynamodb'
Requires-Dist: boto3>=1.28.0; extra == 'dynamodb'
Provides-Extra: iceberg
Requires-Dist: pyarrow>=14.0.0; extra == 'iceberg'
Requires-Dist: pyiceberg>=0.5.0; extra == 'iceberg'
Provides-Extra: mysql
Requires-Dist: amundsen-databuilder[rds]>=7.5.0; extra == 'mysql'
Requires-Dist: ibis-framework[mysql]>=9.0.0; extra == 'mysql'
Provides-Extra: postgres
Requires-Dist: ibis-framework[postgres]>=9.0.0; extra == 'postgres'
Requires-Dist: psycopg2>=2.9.2; extra == 'postgres'
Provides-Extra: pyspark
Requires-Dist: findspark>=1.4.2; extra == 'pyspark'
Requires-Dist: ibis-framework[pyspark]>=9.0.0; extra == 'pyspark'
Requires-Dist: pyspark>=3.2.0; extra == 'pyspark'
Provides-Extra: snowflake
Requires-Dist: amundsen-databuilder[snowflake]>=7.5.0; extra == 'snowflake'
Requires-Dist: ibis-framework[snowflake]>=9.0.0; extra == 'snowflake'
Provides-Extra: sqlite
Requires-Dist: ibis-framework[sqlite]>=9.0.0; extra == 'sqlite'
Description-Content-Type: text/markdown

# Ryoma

Ryoma lib is the core component of the project which includes:
- **Data Sources** that can be used to fetch data from different sources
- **Agents** that can be used to process data with AI models
- **Tools** that can be used by agent to process data

## Installation

### Basic Installation
```bash
pip install ryoma_ai
```

### Installing with Optional Dependencies

Ryoma AI uses lazy imports for datasource dependencies, so you only need to install the dependencies for the datasources you plan to use:

```bash
# For PostgreSQL support
pip install ryoma_ai[postgres]

# For MySQL support  
pip install ryoma_ai[mysql]

# For Snowflake support
pip install ryoma_ai[snowflake]

# For BigQuery support
pip install ryoma_ai[bigquery]

# For DuckDB support
pip install ryoma_ai[duckdb]

# For DynamoDB support
pip install ryoma_ai[dynamodb]

# For Apache Iceberg support
pip install ryoma_ai[iceberg]

# For PySpark support
pip install ryoma_ai[pyspark]

# Multiple datasources
pip install ryoma_ai[postgres,mysql,duckdb]
```

## Usage

```python
from ryoma_ai.datasource.postgres import PostgresDataSource
from ryoma_ai.agent.sql import SqlAgent

datasource = PostgresDataSource("postgresql://user:password@localhost/db")
sql_agent = SqlAgent("gpt-3.5-turbo").add_datasource(datasource)
sql_agent.stream("Get the top 10 rows from the data source")
```

## Documentation
Visit the [documentation](https://project-ryoma.github.io/ryoma/) for more information.
