Ten dokument zawiera szczegółowy opis interfejsu programistycznego (API) biblioteki mdiss.
Klasa odpowiedzialna za parsowanie plików markdown i wyodrębnianie nieudanych poleceń.
from mdiss.parser import MarkdownParser
# Inicjalizacja parsera
parser = MarkdownParser()
parse_file(file_path: str) -> List[CommandData]Parsuje plik markdown i zwraca listę znalezionych poleceń.
Parametry:
file_path (str) - Ścieżka do pliku markdownZwraca:
List[CommandData] - Lista obiektów reprezentujących znalezione poleceniaPrzykład:
commands = parser.parse_file("failures.md")
for cmd in commands:
print(f"Komenda: {cmd.command}")
print(f"Status: {cmd.status}")
print(f"Kod błędu: {cmd.return_code}")
parse_content(content: str) -> List[Dict[str, str]]Parsuje zawartość markdown przekazaną jako ciąg znaków.
Parametry:
content (str) - Zawartość markdown do przeanalizowaniaZwraca:
List[Dict[str, str]] - Lista słowników zawierających znalezione bloki koduPrzykład:
content = """
```bash
echo "Test"
””” blocks = parser.parse_content(content)
## ErrorAnalyzer
Klasa analizująca błędy w nieudanych poleceniach i sugerująca rozwiązania.
```python
from mdiss.analyzer import ErrorAnalyzer
# Inicjalizacja analizatora
analyzer = ErrorAnalyzer()
analyze(command: CommandData) -> ErrorAnalysisAnalizuje pojedyncze nieudane polecenie.
Parametry:
command (CommandData) - Obiekt polecenia do analizyZwraca:
ErrorAnalysis - Obiekt zawierający szczegóły analizy błęduPrzykład:
analysis = analyzer.analyze(failed_command)
print(f"Kategoria błędu: {analysis.category}")
print(f"Prawdopodobieństwo: {analysis.confidence}")
print(f"Sugerowane rozwiązanie: {analysis.suggested_solution}")
get_statistics(commands: List[CommandData]) -> Dict[str, Any]Generuje statystyki na podstawie listy poleceń.
Parametry:
commands (List[CommandData]) - Lista poleceń do analizyZwraca:
Dict[str, Any] - Słownik ze statystykamiPrzykład:
stats = analyzer.get_statistics(commands)
print(f"Liczba błędów: {stats['failed_commands']}")
print(f"Wskaźnik powodzenia: {stats['success_rate']:.1%}")
Klasa do komunikacji z API GitHub w celu tworzenia i zarządzania zgłoszeniami.
from mdiss.github import GitHubClient, GitHubConfig
# Konfiguracja klienta
config = GitHubConfig(
token="your_github_token",
owner="repo_owner",
repo="repo_name"
)
client = GitHubClient(config)
create_issue(title: str, body: str, labels: List[str] = None) -> DictTworzy nowe zgłoszenie (issue) na GitHubie.
Parametry:
title (str) - Tytuł zgłoszeniabody (str) - Treść zgłoszenialabels (List[str], opcjonalne) - Etykiety do przypisania do zgłoszeniaZwraca:
Dict - Odpowiedź z API GitHubPrzykład:
issue = client.create_issue(
title="Naprawić błąd w module X",
body="Opis błędu...",
labels=["bug", "high-priority"]
)
Klasa reprezentująca pojedyncze polecenie wyodrębnione z pliku markdown.
Atrybuty:
command (str) - Treść poleceniastatus (str) - Status wykonania (np. “Failed”, “Success”)return_code (int) - Kod zwracany przez polecenieoutput (str) - Standardowe wyjście poleceniaerror_output (str) - Wyjście błędów poleceniametadata (Dict[str, Any]) - Dodatkowe metadaneWynik analizy błędu.
Atrybuty:
category (str) - Kategoria błęduconfidence (float) - Pewność analizy (0.0 - 1.0)suggested_solution (str) - Sugerowane rozwiązaniepriority (str) - Sugerowany priorytet (“low”, “medium”, “high”, “critical”)Wyjątek zgłaszany w przypadku błędu podczas parsowania pliku markdown.
Atrybuty:
message (str) - Komunikat błędufile_path (str, opcjonalnie) - Ścieżka do pliku, który spowodował błądWyjątek zgłaszany w przypadku błędu podczas komunikacji z API GitHub.
Atrybuty:
status_code (int) - Kod odpowiedzi HTTPresponse (Dict) - Pełna odpowiedź z APImessage (str) - Komunikat błędu
print(f”Priorytet: {analysis.priority}”)
print(f”Sugerowane rozwiązanie: {analysis.suggested_solution}”)
```Klasa do integracji z API GitHub do zarządzania zgłoszeniami.
__init__(self, config: GitHubConfig)Inicjalizuje klienta GitHub.
Parametry:
config - Obiekt konfiguracyjny GitHubConfigcreate_issue(self, command: FailedCommand) -> Optional[Dict]Tworzy nowe zgłoszenie na GitHubie na podstawie nieudanego polecenia.
Parametry:
command - Obiekt FailedCommandZwraca:
Przykład:
from mdiss import GitHubClient, GitHubConfig
config = GitHubConfig(
token="your_github_token",
owner="wronai",
repo="mdiss"
)
client = GitHubClient(config)
issue = client.create_issue(failed_command)
test_connection(self) -> boolTestuje połączenie z GitHub API.
Zwraca:
True jeśli połączenie powiodło się, w przeciwnym razie FalseFailedCommandReprezentuje nieudane polecenie wyodrębnione z pliku markdown.
Atrybuty:
title - Tytuł błęducommand - Treść poleceniasource - Źródło (ścieżka do pliku)command_type - Typ poleceniastatus - Status wykonaniareturn_code - Kod powrotuexecution_time - Czas wykonania w sekundachoutput - Standardowe wyjścieerror_output - Wyjście błędówmetadata - Dodatkowe metadaneErrorAnalysisWynik analizy błędu.
Atrybuty:
category - Kategoria błędupriority - Priorytet (CRITICAL, HIGH, MEDIUM, LOW)confidence - Pewność analizy (0-1)root_cause - Zidentyfikowana przyczyna błędusuggested_solution - Sugerowane rozwiązanieGitHubConfigKonfiguracja połączenia z GitHub.
Atrybuty:
token - Token dostępu GitHubowner - Właściciel repozytoriumrepo - Nazwa repozytoriumlabels - Lista etykiet do przypisania do zgłoszeńassignees - Lista osób do przypisania zgłoszeń