MAGATAMA Core - Knowledge Graph Engine for Code Analysis
Project description
magatama-core - Knowledge Graph Engine
MAGATAMA(YATA のフォーク)の コアライブラリパッケージです(パッケージ名
magatama-core/ import 名magatama_core)。
独立したライブラリとして、コード解析と知識グラフ構築機能を提供します。
特徴
- 🔍 マルチ言語解析: Python, TypeScript, JavaScript, Rust, Go
- 🕸️ 知識グラフ: NetworkX によるエンティティ・関係性グラフ
- 🔗 関係性検出: CALLS, IMPORTS, CONTAINS, INHERITS
- 💾 永続化: JSON / SQLite ストレージ
インストール
pip install magatama-core
オプション言語サポート
# Rust サポート
pip install magatama-core[rust]
# Go サポート
pip install magatama-core[go]
# 全言語サポート
pip install magatama-core[all-languages]
使用方法
基本的な使い方
from magatama_core.infrastructure.parsers import PythonParser
from magatama_core.infrastructure.storage import NetworkXKnowledgeGraph
from magatama_core.application.usecases import ParseFileUseCase
# パーサーとグラフを作成
parser = PythonParser()
graph = NetworkXKnowledgeGraph()
# ユースケースを設定
parse_file = ParseFileUseCase(
parsers={".py": parser},
knowledge_graph=graph,
)
# ファイルを解析
from pathlib import Path
result = parse_file.execute(Path("your_file.py"))
print(f"Entities: {result.entity_count}")
print(f"Relationships: {result.relationship_count}")
エンティティの検索
from magatama_core.domain.entities import EntityType
# 関数をすべて取得
functions = list(graph.entities.get_by_type(EntityType.FUNCTION))
# 名前で検索
all_entities = list(graph.entities.all())
matches = [e for e in all_entities if "process" in e.name.lower()]
グラフの永続化
from magatama_core.infrastructure.storage import JSONGraphSerializer
serializer = JSONGraphSerializer()
# 保存
serializer.save(graph, Path("graph.json"))
# 読み込み
loaded_graph = serializer.load(Path("graph.json"))
アーキテクチャ
magatama-core は Clean Architecture に基づいて設計されています:
magatama_core/
├── domain/ # ドメイン層
│ ├── entities/ # FunctionEntity, ClassEntity, etc.
│ ├── value_objects/ # EntityId, Location
│ └── repositories/ # インターフェース
├── application/ # アプリケーション層
│ ├── usecases/ # ParseFileUseCase, etc.
│ └── services/ # Benchmark, etc.
└── infrastructure/ # インフラ層
├── parsers/ # PythonParser, TypeScriptParser, etc.
└── storage/ # NetworkXKnowledgeGraph, SQLiteKnowledgeGraph
対応言語
| 言語 | 拡張子 | パーサー |
|---|---|---|
| Python | .py |
PythonParser |
| TypeScript | .ts, .tsx |
TypeScriptParser |
| JavaScript | .js, .jsx |
JavaScriptParser |
| Rust | .rs |
RustParser |
| Go | .go |
GoParser |
ライセンス
MIT License - 詳細は LICENSE を参照してください。
関連プロジェクト
- magatama-mcp - MCP Server
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
magatama_core-0.5.0.tar.gz
(152.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
magatama_core-0.5.0-py3-none-any.whl
(135.6 kB
view details)
File details
Details for the file magatama_core-0.5.0.tar.gz.
File metadata
- Download URL: magatama_core-0.5.0.tar.gz
- Upload date:
- Size: 152.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fe9daeba3e86733320ef4a89737ca9e94113803fa36b1c7ac8a345b995ba8c3
|
|
| MD5 |
f27150b6ccd977ad6d75a761e938eb3e
|
|
| BLAKE2b-256 |
3ad753ccd3a3ea5da89e6d0963c70b270cb940486c107aaa8822654032237e94
|
File details
Details for the file magatama_core-0.5.0-py3-none-any.whl.
File metadata
- Download URL: magatama_core-0.5.0-py3-none-any.whl
- Upload date:
- Size: 135.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1edf2173215aa73eea8ec5b0f969a8eef1f7073d40aa6ef12788d4f86b3e41fc
|
|
| MD5 |
8d432916e900d62c702b01da7a631cd9
|
|
| BLAKE2b-256 |
fc41a9a52e5c53220fede4b65d3302ef701e168dddcd3aedd41615c8ad85b914
|