API Reference¶
AI Summary
Complete API documentation for Python Manta. The main class is Parser which provides a unified parse() method with collectors for different data types. Data is returned as Pydantic models (HeaderInfo, GameInfo, ParseResult, etc.) for type safety and easy serialization. Main usage: Parser("match.dem").parse(header=True, game_info=True).
Overview¶
Python Manta provides a single main class and several data models:
Main Class¶
| Class | Description |
|---|---|
Parser |
Main parser class with unified parse() method |
Data Models¶
| Model | Description |
|---|---|
ParseResult |
Result from parse() containing all collected data |
HeaderInfo |
Demo file header metadata |
GameInfo |
Game information (draft, players, teams) |
DraftEvent |
Single pick/ban event |
PlayerInfo |
Player information from match |
MessagesResult |
Messages parsing results |
MessageEvent |
Single message from replay |
Quick Reference¶
from python_manta import Parser
# Create parser for a demo file
parser = Parser("match.dem")
# Parse header only
result = parser.parse(header=True)
print(f"Map: {result.header.map_name}")
# Parse multiple data types in single pass
result = parser.parse(header=True, game_info=True)
print(f"Map: {result.header.map_name}")
print(f"Match ID: {result.game_info.match_id}")
# Parse messages with filtering
result = parser.parse(messages={
"filter": "CDOTAUserMsg_ChatMessage",
"max_messages": 100
})
for msg in result.messages.messages:
print(f"[{msg.tick}] {msg.data}")
Collector Options¶
The parse() method accepts these collector options:
| Collector | Type | Description |
|---|---|---|
header |
bool |
Enable header parsing |
game_info |
bool |
Enable game info parsing (draft, players, teams) |
messages |
bool or dict |
Enable message parsing with optional filter |
Message Options¶
When using messages, you can pass a dictionary with:
| Key | Type | Description |
|---|---|---|
filter |
str |
Substring match for message types |
max_messages |
int |
Maximum messages to capture |