MAGATAMA Core - Knowledge Graph Engine for Code Analysis
Project description
magatama-core - Knowledge Graph Engine
MAGATAMA(YATA のフォーク)の コアライブラリパッケージです(パッケージ名
magatama-core/ import 名magatama_core)。
独立したライブラリとして、コード解析と知識グラフ構築機能を提供します。
特徴
- 🔍 マルチ言語解析: Python, TypeScript, Rust, Go, Java, C# ほか 24 言語
- 🕸️ 知識グラフ: 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
対応言語
合計 24 言語に対応しています(主要なものを抜粋)。全一覧は ルート README を参照。
| 言語 | 拡張子 | パーサー |
|---|---|---|
| Python | .py |
PythonParser |
| TypeScript | .ts, .tsx |
TypeScriptParser |
| JavaScript | .js, .jsx |
JavaScriptParser |
| Rust | .rs |
RustParser |
| Go | .go |
GoParser |
| Java / C# / C / C++ / Ruby / PHP ほか | — | (計 24 言語) |
ライセンス
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
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
File details
Details for the file magatama_core-0.5.1.tar.gz.
File metadata
- Download URL: magatama_core-0.5.1.tar.gz
- Upload date:
- Size: 152.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
458fd4dbabed379bd20354a41dadb21ea44df45bdb87d8f75bf367f2fda71a32
|
|
| MD5 |
15c4b3aef0b17c9f1e525e48bf23a385
|
|
| BLAKE2b-256 |
98861ab9a5f20f3e40c266ed23ec82160b300efdd0fe41b146421cb6272d6371
|
File details
Details for the file magatama_core-0.5.1-py3-none-any.whl.
File metadata
- Download URL: magatama_core-0.5.1-py3-none-any.whl
- Upload date:
- Size: 135.9 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 |
34d506831b59358129e56160f9f538b1870587cc26bae70f76ece28c8cbca403
|
|
| MD5 |
c3db63d0f1bc9356f97390fa66869334
|
|
| BLAKE2b-256 |
dfb03271b77e7bb936f2e2df2b820e8acae77a490efc9ab611760355e73cc0ef
|