# Path: crowd_anki/history/anki_repo.py
# class AnkiRepo(ABC):
#     @abstractmethod
#     def stage_all(self):
#         pass
# 
#     @abstractmethod
#     def commit(self, message: str = None):
#         pass


import logging
from dataclasses import dataclass, field
from dulwich import porcelain
from dulwich.porcelain import GitStatus
from dulwich.repo import Repo
from itertools import chain
from pathlib import Path
from typing import Any
from .anki_repo import AnkiRepo



logger = logging.getLogger(__name__)


@dataclass
class DulwichAnkiRepo(AnkiRepo):

# Path: crowd_anki/history/anki_repo.py
# class AnkiRepo(ABC):
#     @abstractmethod
#     def stage_all(self):
#         pass
# 
#     @abstractmethod
#     def commit(self, message: str = None):
#         pass


# Path: crowd_anki/history/dulwich_repo.py
import logging
from dataclasses import dataclass, field
from dulwich import porcelain
from dulwich.porcelain import GitStatus
from dulwich.repo import Repo
from itertools import chain
from pathlib import Path
from typing import Any
from .anki_repo import AnkiRepo




logger = logging.getLogger(__name__)


@dataclass
class DulwichAnkiRepo(AnkiRepo):

    repo_path: Path