Metadata-Version: 2.4
Name: isage-kernel
Version: 0.1.1
Summary: SAGE Kernel Module
Author-email: IntelliStream Team <intellistream@outlook.com>
License: MIT
Project-URL: Homepage, https://github.com/intellistream/SAGE
Project-URL: Repository, https://github.com/intellistream/SAGE.git
Project-URL: Documentation, https://intellistream.github.io/SAGE-Pub/
Project-URL: Issues, https://github.com/intellistream/SAGE/issues
Keywords: data,reasoning,kernel,dataflow,llm,ml,framework,rag,intellistream,cli,ai,sage
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Distributed Computing
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: pyyaml==6.0.2
Requires-Dist: python-dotenv==1.1.1
Requires-Dist: python_multipart==0.0.20
Requires-Dist: dill>=0.3.8
Requires-Dist: ray==2.48.0
Requires-Dist: grpcio==1.74.0
Requires-Dist: protobuf==6.31.1
Requires-Dist: msgpack==1.1.1
Requires-Dist: torch<=2.7.1,>=2.7.0
Requires-Dist: torchvision==0.22.1
Requires-Dist: httpx==0.28.1
Requires-Dist: socksio==1.0.0
Requires-Dist: psutil==6.1.0
Requires-Dist: numpy<3.0.0,>=1.25.0
Requires-Dist: Cython==3.1.2
Requires-Dist: pybind11==3.0.0
Requires-Dist: aioboto3==14.1.0
Requires-Dist: fastapi==0.115.12
Requires-Dist: uvicorn==0.34.3
Requires-Dist: h11==0.16.0
Requires-Dist: requests==2.32.4
Requires-Dist: aiohappyeyeballs==2.6.1
Requires-Dist: aiosignal==1.4.0
Requires-Dist: pydantic
Requires-Dist: PyYAML==6.0.2
Requires-Dist: python-dotenv==1.1.1
Requires-Dist: Jinja2==3.1.6
Requires-Dist: shellingham==1.5.4
Requires-Dist: tabulate>=0.9.0
Requires-Dist: colorama>=0.4.6
Requires-Dist: typer>=0.15.0
Requires-Dist: rich>=13.0.0
Requires-Dist: click>=8.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: PyYAML>=6.0
Requires-Dist: shellingham>=1.5.0
Requires-Dist: questionary>=1.10.0
Requires-Dist: prompt_toolkit>=3.0.50
Provides-Extra: sage
Requires-Dist: isage-common>=0.1.0; extra == "sage"
Provides-Extra: enterprise
Requires-Dist: isage-kernel[sage]; extra == "enterprise"
Requires-Dist: numpy>=1.25.0; extra == "enterprise"
Requires-Dist: scipy>=1.10.0; extra == "enterprise"
Requires-Dist: scikit-learn>=1.3.0; extra == "enterprise"
Requires-Dist: numba>=0.58.0; extra == "enterprise"
Requires-Dist: cython>=3.0.0; extra == "enterprise"
Requires-Dist: joblib>=1.3.0; extra == "enterprise"
Requires-Dist: tqdm>=4.65.0; extra == "enterprise"
Requires-Dist: psutil>=5.9.0; extra == "enterprise"
Requires-Dist: py-spy>=0.3.14; extra == "enterprise"
Requires-Dist: pyzmq>=25.0.0; extra == "enterprise"
Requires-Dist: redis>=4.5.0; extra == "enterprise"
Provides-Extra: enterprise-dev
Requires-Dist: isage-kernel[enterprise]; extra == "enterprise-dev"
Requires-Dist: pytest-benchmark>=4.0.0; extra == "enterprise-dev"
Requires-Dist: memory-profiler>=0.60.0; extra == "enterprise-dev"
Requires-Dist: line-profiler>=4.0.0; extra == "enterprise-dev"
Provides-Extra: enhanced
Requires-Dist: ipython>=8.0.0; extra == "enhanced"
Requires-Dist: colorama>=0.4.6; extra == "enhanced"
Requires-Dist: pygments>=2.15.0; extra == "enhanced"
Provides-Extra: dev
Requires-Dist: isage-kernel[sage]; extra == "dev"
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-benchmark>=4.0.0; extra == "dev"
Requires-Dist: pytest-mock>=3.10.0; extra == "dev"
Requires-Dist: pytest-timeout>=2.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Provides-Extra: web
Requires-Dist: fastapi>=0.100.0; extra == "web"
Requires-Dist: uvicorn>=0.23.0; extra == "web"
Requires-Dist: websockets>=11.0; extra == "web"
Provides-Extra: docs
Requires-Dist: sphinx>=7.0.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == "docs"
Requires-Dist: myst-parser>=2.0.0; extra == "docs"
Provides-Extra: commercial
Requires-Dist: isage-kernel[enterprise]; extra == "commercial"

# SAGE Kernel

> 🚀 SAGE 框架的核心内核包 - 整合了核心框架和命令行工具

## 📦 包含内容

**SAGE Kernel** 是 SAGE 框架的核心包，整合了原来的 `sage-kernel` 和 `sage-cli` 两个包的功能：

### 🏗️ 核心组件 (sage.core)
- **数据流处理框架**: 高性能的 dataflow-native 处理引擎
- **函数管理**: Function registry 和 operator 管理
- **配置系统**: 统一的配置管理和验证

### ⚙️ 任务管理 (sage.kernels.jobmanager)  
- **任务调度**: 分布式任务执行和调度
- **执行图**: DAG 执行图构建和优化
- **客户端接口**: JobManager 客户端和服务端

### 🔧 运行时系统 (sage.kernels.runtime)
- **服务工厂**: 任务和服务的动态创建
- **通信队列**: 高性能的进程间通信
- **服务管理**: 微服务架构的服务生命周期管理

### 💻 命令行工具 (sage.cli)
- **集群管理**: 分布式集群的部署和管理
- **任务提交**: 命令行任务提交和监控
- **配置管理**: 交互式配置设置和验证
- **扩展管理**: 插件和扩展的安装管理

## 🚀 快速开始

### 安装

```bash
# 从源码安装
pip install -e packages/sage-kernel

# 或者从 PyPI 安装（发布后）
pip install intellistream-sage-kernel
```

### 使用核心API

```python
from sage.core import Function, Config
from sage.kernels.jobmanager import JobManager
from sage.kernels.runtime import ServiceTaskFactory

# 创建并使用函数
@Function
def my_processor(data):
    return data * 2

# 使用 JobManager
job_manager = JobManager()
job = job_manager.submit_job(my_processor, data=[1, 2, 3])
```

### 使用命令行工具

```bash
# 启动 SAGE 集群
sage cluster start

# 提交任务
sage job submit my_job.py

# 管理配置
sage config set utils.provider openai
sage config show

# 查看帮助
sage --help
```

## 🏗️ 架构设计

```
sage-kernel/
├── src/sage/
│   ├── core/           # 核心框架
│   ├── jobmanager/     # 任务管理
│   ├── runtime/        # 运行时系统
│   └── cli/            # 命令行工具
├── tests/              # 标准化测试结构
│   ├── core/
│   ├── jobmanager/
│   ├── runtime/
│   └── cli/
└── pyproject.toml      # 统一配置
```

## 🧪 测试

```bash
# 运行所有测试
pytest

# 运行特定模块测试
pytest tests/core/
pytest tests/cli/

# 运行覆盖率测试
pytest --cov=sage --cov-report=html
```

## 🔧 开发环境

```bash
# 安装开发依赖
pip install -e "packages/sage-kernel[dev]"

# 安装增强CLI功能
pip install -e "packages/sage-kernel[enhanced]"

# 代码格式化
black src/ tests/
ruff check src/ tests/

# 类型检查
mypy src/sage
```

## 📚 依赖关系

### 内部依赖
- `sage-utils`: 基础工具包

### 外部核心依赖
- **ML/AI**: torch, transformers, sentence-transformers, faiss-cpu
- **Web/API**: fastapi, uvicorn, aiohttp
- **数据处理**: numpy, pandas, scipy, scikit-learn
- **CLI**: typer, rich, click, questionary
- **配置**: pydantic, PyYAML, python-dotenv

## 🎯 设计理念

### 单一内核原则
将核心框架和 CLI 工具合并到一个包中，遵循以下原则：

1. **统一入口**: 所有核心功能通过一个包提供
2. **逻辑分离**: 不同组件保持清晰的模块边界  
3. **依赖优化**: 避免循环依赖，清晰的依赖层次
4. **测试标准化**: 所有测试文件位于标准 `tests/` 目录

### CLI 集成策略
- CLI 功能完全集成到内核包中
- 通过入口点 `sage` 和 `sage-kernel` 提供命令行访问
- CLI 模块不污染核心 API 的导入

## 🔄 从旧包迁移

如果你之前使用 `sage-kernel` 或 `sage-cli`：

```python
# 旧代码
from sage_core import Function
from sage_cli.main import app

# 新代码  
from sage.core import Function
# CLI 通过命令行使用: sage command
```

## 📋 TODO

- [ ] 完善模块间的导入优化
- [ ] 添加性能基准测试
- [ ] 完善CLI命令的集成测试
- [ ] 优化依赖版本冲突问题
- [ ] 添加更多示例代码

## 🤝 贡献

请查看项目根目录的贡献指南。对于 kernel 相关的开发：

1. 确保测试位于 `tests/` 目录
2. 保持模块间的清晰边界
3. CLI 功能通过入口点而非直接导入使用
4. 遵循现有的代码风格和架构模式

---

🔗 **相关包**: [sage-utils](../sage-utils/) | [sage-extensions](../sage-extensions/) | [sage-lib](../sage-lib/)
